From 53e6050ee0c785d45e5e3f94fe0f7e0c0765b164 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 16 Jun 2025 09:10:25 -0700 Subject: [PATCH 001/372] outer loop timeout exit condition in ctrl process memory cache lookup --- src/ctrl/ctrl_core.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index e996b72f..aaf85595 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -1790,6 +1790,12 @@ ctrl_key_from_process_vaddr_range(CTRL_Handle process, Rng1U64 vaddr_range, B32 { break; } + + //- rjf: step 5: exit if out of time + if(os_now_microseconds() >= endt_us) + { + break; + } } if(out_is_stale) { From 5de7c06d3bdc41e2118fa98e3440d48a5c01ced1 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Tue, 17 Jun 2025 07:26:17 -0700 Subject: [PATCH 002/372] always zero param type keys --- src/eval/eval_types.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/eval/eval_types.c b/src/eval/eval_types.c index b1f22135..1dde0f1d 100644 --- a/src/eval/eval_types.c +++ b/src/eval/eval_types.c @@ -927,7 +927,7 @@ e_push_type_from_key(Arena *arena, E_TypeKey key) type->byte_size = bit_size_from_arch(e_base_ctx->modules[rdi_idx].arch)/8; type->direct_type_key = direct_type_key; type->count = count; - type->param_type_keys = push_array_no_zero(arena, E_TypeKey, type->count); + type->param_type_keys = push_array(arena, E_TypeKey, type->count); type->arch = e_base_ctx->modules[rdi_idx].arch; for(U32 idx = 0; idx < type->count; idx += 1) { From 401f1176532a04da0d35ae8608264431ac0c6fbb Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 18 Jun 2025 08:36:41 -0700 Subject: [PATCH 003/372] adjust step trap net build in case of memory read failure - ensure we get correct memory read, otherwise we can generate bad trap nets during heavy load. allow high vs. low priority in async rdi loading; use low-priority in pre-emptive case --- project.4coder | 4 +- src/ctrl/ctrl_core.c | 22 +-- src/dasm_cache/dasm_cache.c | 2 +- src/dbg_engine/dbg_engine_core.c | 16 +-- src/dbgi/dbgi.c | 8 +- src/dbgi/dbgi.h | 2 +- src/raddbg/raddbg_core.c | 10 +- src/raddbg/raddbg_eval.c | 2 +- src/raddbg/raddbg_views.c | 6 +- src/raddbg/raddbg_widgets.c | 4 +- src/rdi_from_pdb/rdi_from_pdb.c | 230 ++++++++----------------------- src/rdi_from_pdb/rdi_from_pdb.h | 7 - 12 files changed, 95 insertions(+), 218 deletions(-) diff --git a/project.4coder b/project.4coder index da1093ae..020bef78 100644 --- a/project.4coder +++ b/project.4coder @@ -46,7 +46,7 @@ load_paths = commands = { //- rjf: [raddbg] - // .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [textperf] // .f1 = { .win = "raddbg_stable --ipc kill_all && build no_meta telemetry textperf && raddbg_stable --ipc bring_to_front && raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, @@ -55,7 +55,7 @@ commands = // .f1 = { .win = "raddbg_stable --ipc kill_all && build no_meta tester", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [radbin] - .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: running target .f3 = { .win = "raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index aaf85595..1611c6b5 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -3293,7 +3293,7 @@ ctrl_call_stack_from_unwind(Arena *arena, CTRL_Entity *process, CTRL_Unwind *bas CTRL_Entity *module = ctrl_module_from_process_vaddr(process, rip_vaddr); U64 rip_voff = ctrl_voff_from_vaddr(module, rip_vaddr); DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, 0); + RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, 1, 0); RDI_Scope *scope = rdi_scope_from_voff(rdi, rip_voff); // rjf: build inline frames (minus parent & inline depth) @@ -3816,7 +3816,7 @@ ctrl_thread__append_resolved_module_user_bp_traps(Arena *arena, CTRL_EvalScope * CTRL_Entity *module_entity = ctrl_entity_from_handle(entity_ctx, module); CTRL_Entity *debug_info_path_entity = ctrl_entity_child_from_kind(module_entity, CTRL_EntityKind_DebugInfoPath); DI_Key dbgi_key = {debug_info_path_entity->string, debug_info_path_entity->timestamp}; - RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, max_U64); + RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, 1, max_U64); U64 base_vaddr = module_entity->vaddr_range.min; for(CTRL_UserBreakpointNode *n = user_bps->first; n != 0; n = n->next) { @@ -4390,7 +4390,7 @@ ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg, B32 asan_shadow_variable_exists_but_is_zero = 0; CTRL_Entity *dbg_path = ctrl_entity_child_from_kind(module, CTRL_EntityKind_DebugInfoPath); DI_Key dbgi_key = {dbg_path->string, dbg_path->timestamp}; - RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, max_U64); + RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, 1, max_U64); RDI_NameMap *unparsed_map = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_GlobalVariables); { RDI_ParsedNameMap map = {0}; @@ -4728,8 +4728,6 @@ ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg, (entity_ctx->entity_kind_counts[CTRL_EntityKind_Module] > 256 || entity_ctx->entity_kind_counts[CTRL_EntityKind_Module] == 1)) { - U64 endt_us = os_now_microseconds() + 1000000; - //- rjf: unpack event CTRL_Handle process_handle = ctrl_handle_make(CTRL_MachineID_Local, event->process); CTRL_Handle loaded_module_handle = ctrl_handle_make(CTRL_MachineID_Local, event->module); @@ -4881,13 +4879,17 @@ ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg, } } - //- rjf: for each pre-emptively loaded key, wait for the initial - // load task to be done + //- rjf: for each pre-emptively loaded key, try to grab RDI - kicking off parse for(DI_KeyNode *n = preemptively_loaded_keys.first; n != 0; n = n->next) { DI_Scope *di_scope = di_scope_open(); - RDI_Parsed *rdi = di_rdi_from_key(di_scope, &n->v, endt_us); + RDI_Parsed *rdi = di_rdi_from_key(di_scope, &n->v, 0, 0); di_scope_close(di_scope); + } + + //- rjf: close all pre-emptively loaded keys + for(DI_KeyNode *n = preemptively_loaded_keys.first; n != 0; n = n->next) + { di_close(&n->v); } } @@ -5019,7 +5021,7 @@ ctrl_thread__eval_scope_begin(Arena *arena, CTRL_Entity *thread) CTRL_Entity *dbg_path = ctrl_entity_child_from_kind(mod, CTRL_EntityKind_DebugInfoPath); DI_Key dbgi_key = {dbg_path->string, dbg_path->timestamp}; eval_modules[eval_module_idx].arch = arch; - eval_modules[eval_module_idx].rdi = di_rdi_from_key(scope->di_scope, &dbgi_key, max_U64); + eval_modules[eval_module_idx].rdi = di_rdi_from_key(scope->di_scope, &dbgi_key, 1, max_U64); eval_modules[eval_module_idx].vaddr_range = mod->vaddr_range; eval_modules[eval_module_idx].space = e_space_make(CTRL_EvalSpaceKind_Entity); eval_modules[eval_module_idx].space.u64_0 = (U64)process; @@ -5829,7 +5831,7 @@ ctrl_thread__run(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg) U64 module_base_vaddr = module->vaddr_range.min; CTRL_Entity *dbg_path = ctrl_entity_child_from_kind(module, CTRL_EntityKind_DebugInfoPath); DI_Key dbgi_key = {dbg_path->string, dbg_path->timestamp}; - RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, max_U64); + RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, 1, max_U64); RDI_NameMap *unparsed_map = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_Procedures); RDI_ParsedNameMap map = {0}; rdi_parsed_from_name_map(rdi, unparsed_map, &map); diff --git a/src/dasm_cache/dasm_cache.c b/src/dasm_cache/dasm_cache.c index c4ac8bd2..39cb7711 100644 --- a/src/dasm_cache/dasm_cache.c +++ b/src/dasm_cache/dasm_cache.c @@ -533,7 +533,7 @@ ASYNC_WORK_DEF(dasm_parse_work) RDI_Parsed *rdi = &rdi_parsed_nil; if(params.dbgi_key.path.size != 0) { - rdi = di_rdi_from_key(di_scope, ¶ms.dbgi_key, max_U64); + rdi = di_rdi_from_key(di_scope, ¶ms.dbgi_key, 1, max_U64); } //- rjf: hash -> data diff --git a/src/dbg_engine/dbg_engine_core.c b/src/dbg_engine/dbg_engine_core.c index 5339b8dd..62618361 100644 --- a/src/dbg_engine/dbg_engine_core.c +++ b/src/dbg_engine/dbg_engine_core.c @@ -475,7 +475,7 @@ d_trap_net_from_thread__step_over_line(Arena *arena, CTRL_Entity *thread) } // rjf: push trap for natural linear flow - if(good_line_info) + if(good_line_info && good_machine_code) { CTRL_Trap trap = {CTRL_TrapFlag_EndStepping, line_vaddr_rng.max}; ctrl_trap_list_push(arena, &result, &trap); @@ -631,7 +631,7 @@ d_trap_net_from_thread__step_into_line(Arena *arena, CTRL_Entity *thread) } // rjf: push trap for natural linear flow - if(good_line_info) + if(good_line_info && good_machine_code) { CTRL_Trap trap = {CTRL_TrapFlag_EndStepping, line_vaddr_rng.max}; ctrl_trap_list_push(arena, &result, &trap); @@ -654,7 +654,7 @@ d_voff_from_dbgi_key_symbol_name(DI_Key *dbgi_key, String8 symbol_name) DI_Scope *scope = di_scope_open(); U64 result = 0; { - RDI_Parsed *rdi = di_rdi_from_key(scope, dbgi_key, 0); + RDI_Parsed *rdi = di_rdi_from_key(scope, dbgi_key, 1, 0); RDI_NameMapKind name_map_kinds[] = { RDI_NameMapKind_GlobalVariables, @@ -734,7 +734,7 @@ d_lines_from_dbgi_key_voff(Arena *arena, DI_Key *dbgi_key, U64 voff) { Temp scratch = scratch_begin(&arena, 1); DI_Scope *scope = di_scope_open(); - RDI_Parsed *rdi = di_rdi_from_key(scope, dbgi_key, 0); + RDI_Parsed *rdi = di_rdi_from_key(scope, dbgi_key, 1, 0); D_LineList result = {0}; { //- rjf: gather line tables @@ -843,7 +843,7 @@ d_lines_array_from_dbgi_key_file_path_line_range(Arena *arena, DI_Key dbgi_key, String8 file_path_normalized = lower_from_str8(scratch.arena, path_normalized_from_string(scratch.arena, file_path)); // rjf: binary -> rdi - RDI_Parsed *rdi = di_rdi_from_key(scope, &dbgi_key, 0); + RDI_Parsed *rdi = di_rdi_from_key(scope, &dbgi_key, 1, 0); // rjf: file_path_normalized * rdi -> src_id B32 good_src_id = 0; @@ -941,7 +941,7 @@ d_lines_array_from_file_path_line_range(Arena *arena, String8 file_path, Rng1S64 { // rjf: binary -> rdi DI_Key key = dbgi_key_n->v; - RDI_Parsed *rdi = di_rdi_from_key(scope, &key, 0); + RDI_Parsed *rdi = di_rdi_from_key(scope, &key, 1, 0); // rjf: file_path_normalized * rdi -> src_id B32 good_src_id = 0; @@ -1302,7 +1302,7 @@ d_query_cached_locals_map_from_dbgi_key_voff(DI_Key *dbgi_key, U64 voff) if(node == 0) { DI_Scope *scope = di_scope_open(); - RDI_Parsed *rdi = di_rdi_from_key(scope, dbgi_key, 0); + RDI_Parsed *rdi = di_rdi_from_key(scope, dbgi_key, 1, 0); E_String2NumMap *map = e_push_locals_map_from_rdi_voff(cache->arena, rdi, voff); if(map->slots_count != 0) { @@ -1356,7 +1356,7 @@ d_query_cached_member_map_from_dbgi_key_voff(DI_Key *dbgi_key, U64 voff) if(node == 0) { DI_Scope *scope = di_scope_open(); - RDI_Parsed *rdi = di_rdi_from_key(scope, dbgi_key, 0); + RDI_Parsed *rdi = di_rdi_from_key(scope, dbgi_key, 1, 0); E_String2NumMap *map = e_push_member_map_from_rdi_voff(cache->arena, rdi, voff); if(map->slots_count != 0) { diff --git a/src/dbgi/dbgi.c b/src/dbgi/dbgi.c index be88fc8a..cec1e2e3 100644 --- a/src/dbgi/dbgi.c +++ b/src/dbgi/dbgi.c @@ -582,7 +582,7 @@ di_close(DI_Key *key) //~ rjf: Debug Info Cache Lookups internal RDI_Parsed * -di_rdi_from_key(DI_Scope *scope, DI_Key *key, U64 endt_us) +di_rdi_from_key(DI_Scope *scope, DI_Key *key, B32 high_priority, U64 endt_us) { ProfBeginFunction(); RDI_Parsed *result = &rdi_parsed_nil; @@ -631,7 +631,7 @@ di_rdi_from_key(DI_Scope *scope, DI_Key *key, U64 endt_us) ins_atomic_u64_eval_assign(&node->is_working, 1); DeferLoop(os_rw_mutex_drop_r(stripe->rw_mutex), os_rw_mutex_take_r(stripe->rw_mutex)) { - async_push_work(di_parse_work); + async_push_work(di_parse_work, .priority = high_priority ? ASYNC_Priority_High : ASYNC_Priority_Low); } } } @@ -1392,7 +1392,7 @@ di_search_thread__entry_point(void *p) RDI_Parsed **rdis = push_array(scratch.arena, RDI_Parsed *, rdis_count); for EachIndex(idx, rdis_count) { - rdis[idx] = di_rdi_from_key(di_scope, ¶ms.dbgi_keys.v[idx], max_U64); + rdis[idx] = di_rdi_from_key(di_scope, ¶ms.dbgi_keys.v[idx], 1, max_U64); } //- rjf: kick off search tasks @@ -1798,7 +1798,7 @@ ASYNC_WORK_DEF(di_match_work) { DI_Scope *di_scope = di_scope_open(); DI_Key key = params_keys.v[dbgi_idx]; - RDI_Parsed *rdi = di_rdi_from_key(di_scope, &key, os_now_microseconds()+1000); + RDI_Parsed *rdi = di_rdi_from_key(di_scope, &key, 1, os_now_microseconds()+1000); for EachElement(name_map_kind_idx, name_map_kinds) { RDI_NameMap *name_map = rdi_element_from_name_idx(rdi, NameMaps, name_map_kinds[name_map_kind_idx]); diff --git a/src/dbgi/dbgi.h b/src/dbgi/dbgi.h index 555e5e03..3d243cde 100644 --- a/src/dbgi/dbgi.h +++ b/src/dbgi/dbgi.h @@ -435,7 +435,7 @@ internal void di_close(DI_Key *key); //////////////////////////////// //~ rjf: Debug Info Cache Lookups -internal RDI_Parsed *di_rdi_from_key(DI_Scope *scope, DI_Key *key, U64 endt_us); +internal RDI_Parsed *di_rdi_from_key(DI_Scope *scope, DI_Key *key, B32 high_priority, U64 endt_us); //////////////////////////////// //~ rjf: Search Cache Lookups diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index b0f64205..2e7d4066 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -3279,7 +3279,7 @@ rd_view_ui(Rng2F32 rect) U64 voff = ctrl_voff_from_vaddr(module, vaddr); { DI_Scope *scope = di_scope_open(); - RDI_Parsed *rdi = di_rdi_from_key(scope, &dbgi_key, 0); + RDI_Parsed *rdi = di_rdi_from_key(scope, &dbgi_key, 1, 0); String8 name = {0}; if(name.size == 0) { @@ -3366,7 +3366,7 @@ rd_view_ui(Rng2F32 rect) U64 voff = ctrl_voff_from_vaddr(module, vaddr); { DI_Scope *scope = di_scope_open(); - RDI_Parsed *rdi = di_rdi_from_key(scope, &dbgi_key, 0); + RDI_Parsed *rdi = di_rdi_from_key(scope, &dbgi_key, 1, 0); if(name.size == 0) { RDI_Procedure *procedure = rdi_procedure_from_voff(rdi, voff); @@ -6417,7 +6417,7 @@ rd_window_frame(void) { DI_Scope *di_scope = di_scope_open(); DI_Key dbgi_key = ctrl_dbgi_key_from_module(ctrl_entity); - RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, 0); + RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, 1, 0); if(rdi->raw_data_size != 0) { ui_labelf("Symbols successfully loaded from %S", dbgi_key.path); @@ -11691,7 +11691,7 @@ rd_frame(void) CTRL_Entity *m = all_modules.v[eval_module_idx]; DI_Key dbgi_key = ctrl_dbgi_key_from_module(m); eval_modules[eval_module_idx].arch = m->arch; - eval_modules[eval_module_idx].rdi = di_rdi_from_key(rd_state->frame_di_scope, &dbgi_key, 0); + eval_modules[eval_module_idx].rdi = di_rdi_from_key(rd_state->frame_di_scope, &dbgi_key, 1, 0); eval_modules[eval_module_idx].vaddr_range = m->vaddr_range; eval_modules[eval_module_idx].space = rd_eval_space_from_ctrl_entity(ctrl_entity_ancestor_from_kind(m, CTRL_EntityKind_Process), RD_EvalSpaceKind_CtrlEntity); if(module == m) @@ -14403,7 +14403,7 @@ rd_frame(void) CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, CTRL_EntityKind_Process); CTRL_Entity *module = ctrl_module_from_process_vaddr(process, rip_vaddr); DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - RDI_Parsed *rdi = di_rdi_from_key(scope, &dbgi_key, 0); + RDI_Parsed *rdi = di_rdi_from_key(scope, &dbgi_key, 1, 0); U64 rip_voff = ctrl_voff_from_vaddr(module, rip_vaddr); D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, &dbgi_key, rip_voff); D_Line line = {0}; diff --git a/src/raddbg/raddbg_eval.c b/src/raddbg/raddbg_eval.c index dd45dcd7..a1be1801 100644 --- a/src/raddbg/raddbg_eval.c +++ b/src/raddbg/raddbg_eval.c @@ -1570,7 +1570,7 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(debug_info_table) RDI_Parsed **rdis = push_array(arena, RDI_Parsed *, rdis_count); for(U64 idx = 0; idx < rdis_count; idx += 1) { - rdis[idx] = di_rdi_from_key(rd_state->frame_di_scope, &dbgi_keys.v[idx], endt_us); + rdis[idx] = di_rdi_from_key(rd_state->frame_di_scope, &dbgi_keys.v[idx], 1, endt_us); } //- rjf: query all filtered items from dbgi searching system diff --git a/src/raddbg/raddbg_views.c b/src/raddbg/raddbg_views.c index b3468ba9..9bb8f6d7 100644 --- a/src/raddbg/raddbg_views.c +++ b/src/raddbg/raddbg_views.c @@ -2956,7 +2956,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory) CTRL_Entity *module = ctrl_module_from_process_vaddr(selected_process, f_rip_vaddr); U64 f_rip_voff = ctrl_voff_from_vaddr(module, f_rip_vaddr); DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - RDI_Parsed *rdi = di_rdi_from_key(scope, &dbgi_key, 0); + RDI_Parsed *rdi = di_rdi_from_key(scope, &dbgi_key, 1, 0); RDI_Procedure *procedure = rdi_procedure_from_voff(rdi, f_rip_voff); String8 procedure_name = {0}; procedure_name.str = rdi_string_from_idx(rdi, procedure->name_string_idx, &procedure_name.size); @@ -3071,7 +3071,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory) { U64 voff = ctrl_voff_from_vaddr(module, vaddr); DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - RDI_Parsed *rdi = di_rdi_from_key(scope, &dbgi_key, 0); + RDI_Parsed *rdi = di_rdi_from_key(scope, &dbgi_key, 1, 0); RDI_Procedure *procedure = rdi_procedure_from_voff(rdi, voff); RDI_Scope *root_scope = rdi_element_from_name_idx(rdi, Scopes, procedure->root_scope_idx); if(procedure->root_scope_idx != 0) @@ -3128,7 +3128,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory) { U64 voff = ctrl_voff_from_vaddr(module, vaddr); DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - RDI_Parsed *rdi = di_rdi_from_key(scope, &dbgi_key, 0); + RDI_Parsed *rdi = di_rdi_from_key(scope, &dbgi_key, 1, 0); RDI_GlobalVariable *gvar = rdi_global_variable_from_voff(rdi, voff); if(gvar->voff != 0) { diff --git a/src/raddbg/raddbg_widgets.c b/src/raddbg/raddbg_widgets.c index 571a7af0..200dbe28 100644 --- a/src/raddbg/raddbg_widgets.c +++ b/src/raddbg/raddbg_widgets.c @@ -555,7 +555,7 @@ rd_title_fstrs_from_ctrl_entity(Arena *arena, CTRL_Entity *entity, B32 include_e CTRL_Entity *module = ctrl_module_from_process_vaddr(process, rip_vaddr); U64 rip_voff = ctrl_voff_from_vaddr(module, rip_vaddr); DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, 0); + RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, 1, 0); if(rdi != &rdi_parsed_nil) { RDI_Procedure *procedure = rdi_procedure_from_voff(rdi, rip_voff); @@ -585,7 +585,7 @@ rd_title_fstrs_from_ctrl_entity(Arena *arena, CTRL_Entity *entity, B32 include_e { DI_Scope *di_scope = di_scope_open(); DI_Key dbgi_key = ctrl_dbgi_key_from_module(entity); - RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, 0); + RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, 1, 0); if(rdi->raw_data_size == 0) { dr_fstrs_push_new(arena, &result, ¶ms, str8_lit(" ")); diff --git a/src/rdi_from_pdb/rdi_from_pdb.c b/src/rdi_from_pdb/rdi_from_pdb.c index 66b15cba..b0025c42 100644 --- a/src/rdi_from_pdb/rdi_from_pdb.c +++ b/src/rdi_from_pdb/rdi_from_pdb.c @@ -38,124 +38,6 @@ p2r_hash_from_voff(U64 voff) return hash; } -//////////////////////////////// -//~ rjf: Command Line -> Conversion Inputs - -#if 0 -internal P2R_ConvertParams * -p2r_user2convert_from_cmdln(Arena *arena, CmdLine *cmdline) -{ - P2R_ConvertParams *result = push_array(arena, P2R_ConvertParams, 1); - - //- rjf: get input pdb - { - String8 input_name = cmd_line_string(cmdline, str8_lit("pdb")); - if(input_name.size == 0) - { - str8_list_push(arena, &result->errors, str8_lit("Missing required parameter: '--pdb:'")); - } - if(input_name.size > 0) - { - String8 input_data = os_data_from_file_path(arena, input_name); - if(input_data.size == 0) - { - str8_list_pushf(arena, &result->errors, "Could not load input PDB file from '%S'", input_name); - } - if(input_data.size != 0) - { - result->input_pdb_name = input_name; - result->input_pdb_data = input_data; - } - } - } - - //- rjf: get input exe - { - String8 input_name = cmd_line_string(cmdline, str8_lit("exe")); - if(input_name.size > 0) - { - String8 input_data = os_data_from_file_path(arena, input_name); - if(input_data.size == 0) - { - str8_list_pushf(arena, &result->errors, "Could not load input EXE file from '%S'", input_name); - } - if(input_data.size != 0) - { - result->input_exe_name = input_name; - result->input_exe_data = input_data; - } - } - } - - //- rjf: get output name - { - result->output_name = cmd_line_string(cmdline, str8_lit("out")); - if(result->output_name.size == 0) - { - str8_list_pushf(arena, &result->errors, "Missing required parameter: '--out:'"); - } - } - - //- rjf: define string -> section flag bits -#define FlagNameMapXList \ -Case("sections", BinarySections)\ -Case("units", Units)\ -Case("procedures", Procedures)\ -Case("globals", GlobalVariables)\ -Case("threadvars", ThreadVariables)\ -Case("scopes", Scopes)\ -Case("locals", Locals)\ -Case("types", Types)\ -Case("udts", UDTs)\ -Case("lines", LineInfo)\ -Case("globals_name_map", GlobalVariableNameMap)\ -Case("threadvars_name_map", ThreadVariableNameMap)\ -Case("procedure_name_map", ProcedureNameMap)\ -Case("type_name_map", TypeNameMap)\ -Case("link_name_map", LinkNameProcedureNameMap)\ -Case("source_path_name_map",NormalSourcePathNameMap)\ - - //- rjf: get section flags - { - result->flags = P2R_ConvertFlag_All; - String8List only_names = cmd_line_strings(cmdline, str8_lit("only")); - String8List omit_names = cmd_line_strings(cmdline, str8_lit("only")); - if(only_names.node_count != 0) - { - result->flags = 0; - for(String8Node *n = only_names.first; n != 0; n = n->next) - { - String8 string = n->string; -#define Case(str, flag) if(str8_match(string, str8_lit(str), StringMatchFlag_CaseInsensitive)) {result->flags |= P2R_ConvertFlag_##flag;} - FlagNameMapXList; -#undef Case - } - } - if(omit_names.node_count != 0) - { - for(String8Node *n = omit_names.first; n != 0; n = n->next) - { - String8 string = n->string; -#define Case(str, flag) if(str8_match(string, str8_lit(str), StringMatchFlag_CaseInsensitive)) {result->flags &= ~P2R_ConvertFlag_##flag;} - FlagNameMapXList; -#undef Case - } - } - } - - //- rjf: get other flags - { - if(cmd_line_has_flag(cmdline, str8_lit("deterministic"))) - { - result->flags |= P2R_ConvertFlag_Deterministic; - } - } - -#undef FlagNameMapXList - return result; -} -#endif - //////////////////////////////// //~ rjf: COFF <-> RDI Canonical Conversions @@ -577,29 +459,29 @@ ASYNC_WORK_DEF(p2r_comp_unit_contributions_parse_work) ProfScope("parse comp unit contributions") out = pdb_comp_unit_contribution_array_from_data(arena, in->data, in->coff_sections); ProfEnd(); return out; -} - -ASYNC_WORK_DEF(p2r_comp_unit_contributions_bucket_work) -{ - ProfBeginFunction(); - Arena *arena = async_root_thread_arena(p2r_async_root); - P2R_CompUnitContributionsBucketIn *in = (P2R_CompUnitContributionsBucketIn *)input; - P2R_CompUnitContributionsBucketOut *out = push_array(arena, P2R_CompUnitContributionsBucketOut, 1); - { - out->unit_ranges = push_array(arena, RDIM_Rng1U64ChunkList, in->comp_unit_count); - for(U64 idx = 0; idx < in->contributions.count; idx += 1) - { - PDB_CompUnitContribution *contribution = &in->contributions.contributions[idx]; - if(contribution->mod < in->comp_unit_count) - { - RDIM_Rng1U64 r = {contribution->voff_first, contribution->voff_opl}; - rdim_rng1u64_chunk_list_push(arena, &out->unit_ranges[contribution->mod], 256, r); - } - } - } - ProfEnd(); - return out; -} +} + +ASYNC_WORK_DEF(p2r_comp_unit_contributions_bucket_work) +{ + ProfBeginFunction(); + Arena *arena = async_root_thread_arena(p2r_async_root); + P2R_CompUnitContributionsBucketIn *in = (P2R_CompUnitContributionsBucketIn *)input; + P2R_CompUnitContributionsBucketOut *out = push_array(arena, P2R_CompUnitContributionsBucketOut, 1); + { + out->unit_ranges = push_array(arena, RDIM_Rng1U64ChunkList, in->comp_unit_count); + for(U64 idx = 0; idx < in->contributions.count; idx += 1) + { + PDB_CompUnitContribution *contribution = &in->contributions.contributions[idx]; + if(contribution->mod < in->comp_unit_count) + { + RDIM_Rng1U64 r = {contribution->voff_first, contribution->voff_opl}; + rdim_rng1u64_chunk_list_push(arena, &out->unit_ranges[contribution->mod], 256, r); + } + } + } + ProfEnd(); + return out; +} //////////////////////////////// //~ rjf: Unit Source File Gathering Tasks @@ -959,8 +841,8 @@ ASYNC_WORK_DEF(p2r_unit_convert_work) dst_unit->object_file = obj_name; dst_unit->archive_file = pdb_unit->group_name; dst_unit->language = p2r_rdi_language_from_cv_language(pdb_unit_sym->info.language); - dst_unit->line_table = line_table; - dst_unit->voff_ranges = in->comp_unit_ranges; + dst_unit->line_table = line_table; + dst_unit->voff_ranges = in->comp_unit_ranges; } //////////////////////////// @@ -3228,11 +3110,11 @@ ASYNC_WORK_DEF(p2r_symbol_stream_convert_work) U8 *name_ptr = val_ptr + val.encoded_size; String8 name = str8_cstring_capped(name_ptr, sym_data_opl); String8 val_data = str8_struct(&val64); - U64 container_name_opl = 0; - if(type != 0) - { - container_name_opl = p2r_end_of_cplusplus_container_name(type->name); - } + U64 container_name_opl = 0; + if(type != 0) + { + container_name_opl = p2r_end_of_cplusplus_container_name(type->name); + } String8 name_qualified = name; if(container_name_opl != 0) { @@ -3279,8 +3161,8 @@ internal RDIM_BakeParams p2r_convert(Arena *arena, ASYNC_Root *async_root, P2R_ConvertParams *in) { Temp scratch = scratch_begin(&arena, 1); - p2r_async_root = async_root; - + p2r_async_root = async_root; + ////////////////////////////////////////////////////////////// //- rjf: parse MSF structure // @@ -3451,40 +3333,40 @@ p2r_convert(Arena *arena, ASYNC_Root *async_root, P2R_ConvertParams *in) ////////////////////////////////////////////////////////////// //- rjf: do compilation unit parse - // + // PDB_CompUnitArray *comp_units = 0; - U64 comp_unit_count = 0; - { + U64 comp_unit_count = 0; + { P2R_CompUnitParseIn comp_unit_parse_in = {dbi ? pdb_data_from_dbi_range(dbi, PDB_DbiRange_ModuleInfo) : str8_zero()}; - ASYNC_Task *comp_unit_parse_task = !dbi ? 0 : async_task_launch(scratch.arena, p2r_comp_unit_parse_work, .input = &comp_unit_parse_in); - comp_units = async_task_join_struct(comp_unit_parse_task, PDB_CompUnitArray); - comp_unit_count = comp_units ? comp_units->count : 0; - } - + ASYNC_Task *comp_unit_parse_task = !dbi ? 0 : async_task_launch(scratch.arena, p2r_comp_unit_parse_work, .input = &comp_unit_parse_in); + comp_units = async_task_join_struct(comp_unit_parse_task, PDB_CompUnitArray); + comp_unit_count = comp_units ? comp_units->count : 0; + } + ////////////////////////////////////////////////////////////// //- rjf: do compilation unit contributions parse - // + // PDB_CompUnitContributionArray *comp_unit_contributions = 0; - U64 comp_unit_contribution_count = 0; - { + U64 comp_unit_contribution_count = 0; + { P2R_CompUnitContributionsParseIn comp_unit_contributions_parse_in = {dbi ? pdb_data_from_dbi_range(dbi, PDB_DbiRange_SecCon) : str8_zero(), coff_sections}; - ASYNC_Task *comp_unit_contributions_parse_task = !dbi ? 0 : async_task_launch(scratch.arena, p2r_comp_unit_contributions_parse_work, .input = &comp_unit_contributions_parse_in); + ASYNC_Task *comp_unit_contributions_parse_task = !dbi ? 0 : async_task_launch(scratch.arena, p2r_comp_unit_contributions_parse_work, .input = &comp_unit_contributions_parse_in); comp_unit_contributions = async_task_join_struct(comp_unit_contributions_parse_task, PDB_CompUnitContributionArray); - comp_unit_contribution_count = comp_unit_contributions ? comp_unit_contributions->count : 0; - } - + comp_unit_contribution_count = comp_unit_contributions ? comp_unit_contributions->count : 0; + } + ////////////////////////////////////////////////////////////// //- rjf: do compilation unit contributions bucket - // - RDIM_Rng1U64ChunkList *unit_ranges = 0; - if(comp_unit_contributions) - { + // + RDIM_Rng1U64ChunkList *unit_ranges = 0; + if(comp_unit_contributions) + { P2R_CompUnitContributionsBucketIn in = {comp_unit_count, *comp_unit_contributions}; - ASYNC_Task *task = async_task_launch(scratch.arena, p2r_comp_unit_contributions_bucket_work, .input = &in); - P2R_CompUnitContributionsBucketOut *out = async_task_join_struct(task, P2R_CompUnitContributionsBucketOut); - unit_ranges = out->unit_ranges; - } - + ASYNC_Task *task = async_task_launch(scratch.arena, p2r_comp_unit_contributions_bucket_work, .input = &in); + P2R_CompUnitContributionsBucketOut *out = async_task_join_struct(task, P2R_CompUnitContributionsBucketOut); + unit_ranges = out->unit_ranges; + } + ////////////////////////////////////////////////////////////// //- rjf: parse syms & line info for each compilation unit // diff --git a/src/rdi_from_pdb/rdi_from_pdb.h b/src/rdi_from_pdb/rdi_from_pdb.h index c9b2dcd5..921d6019 100644 --- a/src/rdi_from_pdb/rdi_from_pdb.h +++ b/src/rdi_from_pdb/rdi_from_pdb.h @@ -283,13 +283,6 @@ global ASYNC_Root *p2r_async_root = 0; internal U64 p2r_end_of_cplusplus_container_name(String8 str); internal U64 p2r_hash_from_voff(U64 voff); -//////////////////////////////// -//~ rjf: Command Line -> Conversion Inputs - -#if 0 -internal P2R_ConvertParams *p2r_user2convert_from_cmdln(Arena *arena, CmdLine *cmdline); -#endif - //////////////////////////////// //~ rjf: COFF => RDI Canonical Conversions From bee2570d3991d1e40e60669c1e6feeedae5de0d7 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 18 Jun 2025 09:56:47 -0700 Subject: [PATCH 004/372] fix double-load in radbin conversion path; fix incorrect mutation of potentially-nil trees when snapping to a file without a specific line; fix di_close path when work is occurring --- project.4coder | 3 +++ src/ctrl/ctrl_core.c | 10 +--------- src/dbgi/dbgi.c | 6 +++--- src/radbin/radbin.c | 10 ++++++---- src/raddbg/raddbg_core.c | 8 ++++---- src/rdi_make/rdi_make_local.c | 2 +- 6 files changed, 18 insertions(+), 21 deletions(-) diff --git a/project.4coder b/project.4coder index 020bef78..9da7220b 100644 --- a/project.4coder +++ b/project.4coder @@ -48,6 +48,9 @@ commands = //- rjf: [raddbg] .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + //- rjf: [scratch] + .f2 = { .win = "raddbg_stable --ipc kill_all && build radbin release telemetry && raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + //- rjf: [textperf] // .f1 = { .win = "raddbg_stable --ipc kill_all && build no_meta telemetry textperf && raddbg_stable --ipc bring_to_front && raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 1611c6b5..74d42c35 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -4879,15 +4879,7 @@ ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg, } } - //- rjf: for each pre-emptively loaded key, try to grab RDI - kicking off parse - for(DI_KeyNode *n = preemptively_loaded_keys.first; n != 0; n = n->next) - { - DI_Scope *di_scope = di_scope_open(); - RDI_Parsed *rdi = di_rdi_from_key(di_scope, &n->v, 0, 0); - di_scope_close(di_scope); - } - - //- rjf: close all pre-emptively loaded keys + //- rjf: close each pre-emptively loaded key for(DI_KeyNode *n = preemptively_loaded_keys.first; n != 0; n = n->next) { di_close(&n->v); diff --git a/src/dbgi/dbgi.c b/src/dbgi/dbgi.c index cec1e2e3..fc1801b9 100644 --- a/src/dbgi/dbgi.c +++ b/src/dbgi/dbgi.c @@ -531,7 +531,6 @@ di_close(DI_Key *key) DI_Slot *slot = &di_shared->slots[slot_idx]; DI_Stripe *stripe = &di_shared->stripes[stripe_idx]; log_infof("close_debug_info: {\"%S\", 0x%I64x}\n", key_normalized.path, key_normalized.min_timestamp); - B32 closed = 0; OS_MutexScopeW(stripe->rw_mutex) { //- rjf: find existing node @@ -544,7 +543,8 @@ di_close(DI_Key *key) if(node->ref_count == 0) for(;;) { //- rjf: release - if(ins_atomic_u64_eval(&node->touch_count) == 0) + if(ins_atomic_u64_eval(&node->touch_count) == 0 && + ins_atomic_u64_eval(&node->is_working) == 0) { di_string_release__stripe_mutex_w_guarded(stripe, node->key.path); if(node->file_base != 0) @@ -568,7 +568,7 @@ di_close(DI_Key *key) break; } - //- rjf: wait for touch count to go to 0 + //- rjf: wait for touch count / working marker to go to 0 os_condition_variable_wait_rw_w(stripe->cv, stripe->rw_mutex, max_U64); } } diff --git a/src/radbin/radbin.c b/src/radbin/radbin.c index 236c1d29..80752243 100644 --- a/src/radbin/radbin.c +++ b/src/radbin/radbin.c @@ -22,6 +22,7 @@ rb_entry_point(CmdLine *cmdline) //- rjf: analyze & load command line input files // RB_FileList input_files = {0}; + ProfScope("analyze & load command line input files") { String8List input_file_path_tasks = str8_list_copy(arena, &cmdline->inputs); for(String8Node *n = input_file_path_tasks.first; n != 0; n = n->next) @@ -31,6 +32,7 @@ rb_entry_point(CmdLine *cmdline) // RB_FileFormat file_format = RB_FileFormat_Null; RB_FileFormatFlags file_format_flags = 0; + ProfScope("do thin analysis of file") { OS_Handle file = os_file_open(OS_AccessFlag_Read, n->string); FileProperties props = os_properties_from_file(file); @@ -232,7 +234,7 @@ rb_entry_point(CmdLine *cmdline) //- rjf: load recognized files // String8 file_data = {0}; - if(file_format != RB_FileFormat_Null) + if(file_format != RB_FileFormat_Null) ProfScope("load recognized file") { file_data = os_data_from_file_path(arena, n->string); } @@ -240,7 +242,7 @@ rb_entry_point(CmdLine *cmdline) ////////////////////////// //- rjf: PE format => generate new implicit path tasks for PDBs // - if(file_format == RB_FileFormat_PE) + if(file_format == RB_FileFormat_PE) ProfScope("PE file => generate task for PDB") { Temp scratch = scratch_begin(&arena, 1); PE_BinInfo pe_bin_info = pe_bin_info_from_data(scratch.arena, file_data); @@ -656,8 +658,8 @@ rb_entry_point(CmdLine *cmdline) RB_File *pdb_file = rb_file_list_first(&input_files_from_format_table[RB_FileFormat_PDB]); String8 exe_path = exe_file->path; String8 pdb_path = pdb_file->path; - String8 exe_data = os_data_from_file_path(arena, exe_path); - String8 pdb_data = os_data_from_file_path(arena, pdb_path); + String8 exe_data = exe_file->data; + String8 pdb_data = pdb_file->data; // rjf: convert P2R_ConvertParams convert_params = {0}; diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 2e7d4066..7e62e953 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -15121,10 +15121,10 @@ rd_frame(void) vs->last_frame_index_built = 0; RD_Cfg *expr = rd_cfg_child_from_string_or_alloc(dst_tab, str8_lit("expression")); rd_cfg_new_replace(expr, rd_eval_string_from_file_path(scratch.arena, file_path)); - rd_cfg_new_replace(rd_cfg_child_from_string(dst_tab, str8_lit("cursor_line")), str8_lit("1")); - rd_cfg_new_replace(rd_cfg_child_from_string(dst_tab, str8_lit("cursor_column")), str8_lit("1")); - rd_cfg_new_replace(rd_cfg_child_from_string(dst_tab, str8_lit("mark_line")), str8_lit("1")); - rd_cfg_new_replace(rd_cfg_child_from_string(dst_tab, str8_lit("mark_column")), str8_lit("1")); + rd_cfg_new_replace(rd_cfg_child_from_string_or_alloc(dst_tab, str8_lit("cursor_line")), str8_lit("1")); + rd_cfg_new_replace(rd_cfg_child_from_string_or_alloc(dst_tab, str8_lit("cursor_column")), str8_lit("1")); + rd_cfg_new_replace(rd_cfg_child_from_string_or_alloc(dst_tab, str8_lit("mark_line")), str8_lit("1")); + rd_cfg_new_replace(rd_cfg_child_from_string_or_alloc(dst_tab, str8_lit("mark_column")), str8_lit("1")); } else if(dst_panel != &rd_nil_panel_node && dst_tab == &rd_nil_cfg) { diff --git a/src/rdi_make/rdi_make_local.c b/src/rdi_make/rdi_make_local.c index dd75baf1..3fd652cb 100644 --- a/src/rdi_make/rdi_make_local.c +++ b/src/rdi_make/rdi_make_local.c @@ -917,7 +917,7 @@ rdim_bake(Arena *arena, ASYNC_Root *async_root, RDIM_BakeParams *in_params) ASYNC_TaskList sort_bake_string_map_tasks = {0}; RDIM_BakeStringMapLoose *sorted_bake_string_map__in_progress = rdim_bake_string_map_loose_make(arena, &bake_string_map_topology); { - U64 slots_per_task = 4096; + U64 slots_per_task = 256; U64 num_tasks = (bake_string_map_topology.slots_count+slots_per_task-1)/slots_per_task; for(U64 task_idx = 0; task_idx < num_tasks; task_idx += 1) { From a1f71379f4f3c58d9ce04d75fd1855560a384dc5 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 18 Jun 2025 10:40:50 -0700 Subject: [PATCH 005/372] adjust thread extra string rendering to account for missing modules/rdi frames --- src/ctrl/ctrl_core.c | 5 ++++- src/raddbg/raddbg_widgets.c | 26 ++++++++++++++++++-------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 74d42c35..7a60663f 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -3472,7 +3472,10 @@ ctrl_call_stack_from_thread(CTRL_Scope *scope, CTRL_EntityCtx *entity_ctx, CTRL_ did_request = 1; is_working = 1; ins_atomic_u64_inc_eval(&node->working_count); - async_push_work(ctrl_call_stack_build_work, .priority = high_priority ? ASYNC_Priority_High : ASYNC_Priority_Low); + DeferLoop(os_rw_mutex_drop_r(stripe->rw_mutex), os_rw_mutex_take_r(stripe->rw_mutex)) + { + async_push_work(ctrl_call_stack_build_work, .priority = high_priority ? ASYNC_Priority_High : ASYNC_Priority_Low); + } } } diff --git a/src/raddbg/raddbg_widgets.c b/src/raddbg/raddbg_widgets.c index 200dbe28..b55cc3c9 100644 --- a/src/raddbg/raddbg_widgets.c +++ b/src/raddbg/raddbg_widgets.c @@ -548,22 +548,32 @@ rd_title_fstrs_from_ctrl_entity(Arena *arena, CTRL_Entity *entity, B32 include_e Arch arch = entity->arch; B32 call_stack_high_priority = ctrl_handle_match(entity->handle, rd_base_regs()->thread); CTRL_CallStack call_stack = ctrl_call_stack_from_thread(ctrl_scope, &d_state->ctrl_entity_store->ctx, entity, call_stack_high_priority, call_stack_high_priority ? rd_state->frame_eval_memread_endt_us : 0); - for(U64 idx = 0, limit = 10; idx < call_stack.frames_count && idx < limit; idx += 1) + B32 did_first_known = 0; + for(U64 idx = 0, limit = 10; + idx < call_stack.frames_count && idx < limit; + idx += 1) { CTRL_CallStackFrame *f = &call_stack.frames[call_stack.frames_count - 1 - idx]; U64 rip_vaddr = regs_rip_from_arch_block(arch, f->regs); CTRL_Entity *module = ctrl_module_from_process_vaddr(process, rip_vaddr); U64 rip_voff = ctrl_voff_from_vaddr(module, rip_vaddr); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, 1, 0); - if(rdi != &rdi_parsed_nil) + String8 name = {0}; { - RDI_Procedure *procedure = rdi_procedure_from_voff(rdi, rip_voff); - String8 name = {0}; - name.str = rdi_string_from_idx(rdi, procedure->name_string_idx, &name.size); - name = push_str8_copy(arena, name); + DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); + RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, 1, 0); + if(rdi != &rdi_parsed_nil) + { + RDI_Procedure *procedure = rdi_procedure_from_voff(rdi, rip_voff); + name.str = rdi_string_from_idx(rdi, procedure->name_string_idx, &name.size); + name = push_str8_copy(arena, name); + } + if(name.size == 0 && did_first_known) + { + name = str8_lit("???"); + } if(name.size != 0) { + did_first_known = 1; dr_fstrs_push_new(arena, &result, ¶ms, name, .size = extras_size, .color = symbol_color); if(idx+1 < call_stack.frames_count) { From df901b2497bdfc53fa346e846867f5fc64640df0 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 18 Jun 2025 12:42:34 -0700 Subject: [PATCH 006/372] pass over ctrl call stack lookup path, eliminate races between multiple retry loops --- src/ctrl/ctrl_core.c | 141 ++++++++++++++++++++----------------------- 1 file changed, 65 insertions(+), 76 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 7a60663f..faf87e31 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -3411,99 +3411,88 @@ ctrl_call_stack_from_thread(CTRL_Scope *scope, CTRL_EntityCtx *entity_ctx, CTRL_ //- rjf: loop: try to grab cached call stack; request; wait // B32 can_request = !ins_atomic_u64_eval(&ctrl_state->ctrl_thread_run_state); - B32 did_request = 0; - OS_MutexScopeR(stripe->rw_mutex) + for(;;) { - CTRL_CallStackCacheNode *taken_node = 0; - for(;;) + //- rjf: step 1: [read-only] try to look for current call stack; wait if working + B32 node_exists = 0; + B32 node_stale = 1; + B32 node_working = 0; + OS_MutexScopeR(stripe->rw_mutex) for(;;) { - //////////////////////////// - //- rjf: try to grab cached - // - B32 is_good = 0; - B32 is_stale = 1; - B32 is_working = 0; CTRL_CallStackCacheNode *node = 0; + for(CTRL_CallStackCacheNode *n = slot->first; n != 0; n = n->next) { - for(CTRL_CallStackCacheNode *n = slot->first; n != 0; n = n->next) + if(ctrl_handle_match(n->thread, handle)) { - if(ctrl_handle_match(n->thread, handle)) - { - node = n; - is_good = 1; - is_stale = (reg_gen > n->reg_gen || mem_gen > n->mem_gen); - is_working = (n->working_count > 0); - call_stack = n->call_stack; - taken_node = node; - break; - } + node = n; + node_exists = 1; + node_stale = (reg_gen > n->reg_gen || mem_gen > n->mem_gen); + node_working = (n->working_count > 0); + break; } } - - //////////////////////////// - //- rjf: create node if needed - // - if(!is_good) OS_MutexScopeRWPromote(stripe->rw_mutex) - { - node = 0; - for(CTRL_CallStackCacheNode *n = slot->first; n != 0; n = n->next) - { - if(ctrl_handle_match(n->thread, handle)) - { - node = n; - break; - } - } - if(node == 0) - { - node = push_array(stripe->arena, CTRL_CallStackCacheNode, 1); - DLLPushBack(slot->first, slot->last, node); - node->thread = thread->handle; - } - } - - //////////////////////////// - //- rjf: request if needed - // - if(can_request && node != 0 && !is_working && is_stale) - { - if(ctrl_u2csb_enqueue_req(thread->handle, endt_us)) - { - did_request = 1; - is_working = 1; - ins_atomic_u64_inc_eval(&node->working_count); - DeferLoop(os_rw_mutex_drop_r(stripe->rw_mutex), os_rw_mutex_take_r(stripe->rw_mutex)) - { - async_push_work(ctrl_call_stack_build_work, .priority = high_priority ? ASYNC_Priority_High : ASYNC_Priority_Low); - } - } - } - - //////////////////////////// - //- rjf: good, or timeout? -> exit - // - if(!can_request || !is_stale || os_now_microseconds() >= endt_us) + if(node_exists && (!node_stale || os_now_microseconds() >= endt_us)) { + call_stack = node->call_stack; + ctrl_scope_touch_call_stack_node__stripe_r_guarded(scope, stripe, node); break; } - - //////////////////////////// - //- rjf: time to wait for new result? -> wait - // - if(did_request && !is_working) - { - break; - } - else if(did_request) + else if(node_working) { os_condition_variable_wait_rw_r(stripe->cv, stripe->rw_mutex, endt_us); } + else + { + break; + } } - if(taken_node != 0) + + //- rjf: step 2: [write] node does not exist => create; request if new or stale + CTRL_CallStackCacheNode *node_to_request = 0; + if(!node_exists || node_stale) OS_MutexScopeW(stripe->rw_mutex) { - ctrl_scope_touch_call_stack_node__stripe_r_guarded(scope, stripe, taken_node); + CTRL_CallStackCacheNode *node = 0; + for(CTRL_CallStackCacheNode *n = slot->first; n != 0; n = n->next) + { + if(ctrl_handle_match(n->thread, handle)) + { + node = n; + break; + } + } + if(node == 0) + { + node = push_array(stripe->arena, CTRL_CallStackCacheNode, 1); + DLLPushBack(slot->first, slot->last, node); + node->thread = thread->handle; + } + if(can_request && node->working_count == 0) + { + node->working_count += 1; + node_to_request = node; + } + } + + //- rjf: step 3: request if needed + if(node_to_request != 0) + { + if(ctrl_u2csb_enqueue_req(thread->handle, endt_us)) + { + async_push_work(ctrl_call_stack_build_work, .priority = high_priority ? ASYNC_Priority_High : ASYNC_Priority_Low); + } + else OS_MutexScopeW(stripe->rw_mutex) + { + node_to_request->working_count -= 1; + } + } + + //- rjf: step 4: out of time => exit + if(os_now_microseconds() >= endt_us) + { + break; } } + return call_stack; } From 0ff246d13f6b5c478b16733e57c5484312e9ea97 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 18 Jun 2025 13:26:45 -0700 Subject: [PATCH 007/372] fixes to ctrl call stack lookup path --- src/ctrl/ctrl_core.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index faf87e31..afeaa858 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -3413,7 +3413,7 @@ ctrl_call_stack_from_thread(CTRL_Scope *scope, CTRL_EntityCtx *entity_ctx, CTRL_ B32 can_request = !ins_atomic_u64_eval(&ctrl_state->ctrl_thread_run_state); for(;;) { - //- rjf: step 1: [read-only] try to look for current call stack; wait if working + //- rjf: [read-only] try to look for current call stack; wait if working B32 node_exists = 0; B32 node_stale = 1; B32 node_working = 0; @@ -3431,7 +3431,7 @@ ctrl_call_stack_from_thread(CTRL_Scope *scope, CTRL_EntityCtx *entity_ctx, CTRL_ break; } } - if(node_exists && (!node_stale || os_now_microseconds() >= endt_us)) + if(node_exists && (!can_request || !node_stale || os_now_microseconds() >= endt_us)) { call_stack = node->call_stack; ctrl_scope_touch_call_stack_node__stripe_r_guarded(scope, stripe, node); @@ -3447,9 +3447,10 @@ ctrl_call_stack_from_thread(CTRL_Scope *scope, CTRL_EntityCtx *entity_ctx, CTRL_ } } - //- rjf: step 2: [write] node does not exist => create; request if new or stale + //- rjf: [write] node does not exist => create; request if new or stale + B32 need_request = (!node_exists || node_stale); CTRL_CallStackCacheNode *node_to_request = 0; - if(!node_exists || node_stale) OS_MutexScopeW(stripe->rw_mutex) + if(can_request && need_request) OS_MutexScopeW(stripe->rw_mutex) { CTRL_CallStackCacheNode *node = 0; for(CTRL_CallStackCacheNode *n = slot->first; n != 0; n = n->next) @@ -3466,14 +3467,14 @@ ctrl_call_stack_from_thread(CTRL_Scope *scope, CTRL_EntityCtx *entity_ctx, CTRL_ DLLPushBack(slot->first, slot->last, node); node->thread = thread->handle; } - if(can_request && node->working_count == 0) + if(node->working_count == 0) { node->working_count += 1; node_to_request = node; } } - //- rjf: step 3: request if needed + //- rjf: request if needed if(node_to_request != 0) { if(ctrl_u2csb_enqueue_req(thread->handle, endt_us)) @@ -3486,7 +3487,7 @@ ctrl_call_stack_from_thread(CTRL_Scope *scope, CTRL_EntityCtx *entity_ctx, CTRL_ } } - //- rjf: step 4: out of time => exit + //- rjf: out of time => exit if(os_now_microseconds() >= endt_us) { break; From 9f0da8d1b82b5600e888c5f7ba4af7e203bd82a7 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 18 Jun 2025 13:31:22 -0700 Subject: [PATCH 008/372] notes --- src/raddbg/raddbg_main.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index be6d8406..5c787061 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -31,6 +31,8 @@ // a way we can defer to the underlying shell in a non-horrible way...? // //- stepping or breakpoint oddness/fixes +// [ ] halting during a spoof-ridden step leaves the spoofs in place!!! +// (repro via LOTS of code on one line & halting) // [ ] stepping-onto a line with a conditional breakpoint, which fails, causes a // single step over the first instruction of that line, even if the thread // would've stopped at the first instruction due to the step, were that bp not From a812dc95ce6b5ed8662a98a6a225fb92579f5b88 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 18 Jun 2025 14:08:16 -0700 Subject: [PATCH 009/372] notes --- src/raddbg/raddbg_main.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index 5c787061..6599ba8a 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -17,6 +17,9 @@ // [ ] disassembly sometimes has a problem where source line annotations are // periodically removed/inserted... maybe updating on fs change when we // shouldn't, non-deterministic line annotation path? +// [ ] process memory cache sometimes is not correctly updating - best repro +// case so far is (for some reason?) only hover evaluation - only spotted +// on laptop in debug builds. g0 ctrl_bindings.bindings initialization. // //- watch improvements // [ ] *ALL* expressions in watch windows need to be editable. From 699cb5134ef1b3c58b90820b81529ac6582efdad Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 07:19:38 -0700 Subject: [PATCH 010/372] dwarf dump => dwarf layer; eliminate separate dwarf enum file --- project.4coder | 2 +- src/dwarf/dwarf.c | 267 +++++ src/dwarf/dwarf.h | 19 + src/dwarf/dwarf_coff.c | 2 - src/dwarf/dwarf_coff.h | 1 + src/dwarf/dwarf_dump.c | 2203 ++++++++++++++++++++++++++++++++++++++++ src/dwarf/dwarf_dump.h | 28 + src/dwarf/dwarf_elf.h | 3 +- src/dwarf/dwarf_enum.c | 268 ----- src/dwarf/dwarf_enum.h | 16 - src/raddump/raddump.c | 2201 --------------------------------------- src/raddump/raddump.h | 23 - 12 files changed, 2520 insertions(+), 2513 deletions(-) create mode 100644 src/dwarf/dwarf_dump.c create mode 100644 src/dwarf/dwarf_dump.h delete mode 100644 src/dwarf/dwarf_enum.c delete mode 100644 src/dwarf/dwarf_enum.h diff --git a/project.4coder b/project.4coder index 9da7220b..a2f9e48f 100644 --- a/project.4coder +++ b/project.4coder @@ -49,7 +49,7 @@ commands = .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [scratch] - .f2 = { .win = "raddbg_stable --ipc kill_all && build radbin release telemetry && raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f2 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [textperf] // .f1 = { .win = "raddbg_stable --ipc kill_all && build no_meta telemetry textperf && raddbg_stable --ipc bring_to_front && raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, diff --git a/src/dwarf/dwarf.c b/src/dwarf/dwarf.c index f0877ff8..f55f59b4 100644 --- a/src/dwarf/dwarf.c +++ b/src/dwarf/dwarf.c @@ -386,3 +386,270 @@ dw_pick_default_lower_bound(DW_Language lang) return lower_bound; } +//////////////////////////////// +//~ rjf: String <=> Enum + +internal String8 +dw_string_from_expr_op(Arena *arena, DW_Version ver, DW_Ext ext, DW_ExprOp op) +{ + String8 result = {0}; + +#define X(_N,...) case DW_ExprOp_##_N: result = str8_lit(Stringify(_N)); goto exit; + if (ext & DW_Ext_GNU) { + switch (op) { + DW_Expr_GNU_XList(X); + } + } + + switch (ver) { + case DW_Version_5: { + switch (op) { + DW_Expr_V5_XList(X) + } + } // fall-through + case DW_Version_4: { + switch (op) { + DW_Expr_V4_XList(X) + } + } // fall-through + case DW_Version_3: { + switch (op) { + DW_Expr_V3_XList(X) + } + } // fall-through + case DW_Version_2: + case DW_Version_1: + case DW_Version_Null: + break; + } +#undef X + + result = push_str8f(arena, "%x", op); + + exit:; + return result; +} + +internal String8 +dw_string_from_tag_kind(Arena *arena, DW_TagKind kind) +{ + switch (kind) { + case DW_Tag_Null: return str8_lit("Null"); +#define X(_N,_ID) case DW_Tag_##_N: return str8_lit(Stringify(_N)); + DW_Tag_V3_XList(X) + DW_Tag_V5_XList(X) + DW_Tag_GNU_XList(X) +#undef X + } + return push_str8f(arena, "%llx", kind); +} + +internal String8 +dw_string_from_attrib_kind(Arena *arena, DW_Version ver, DW_Ext ext, DW_AttribKind kind) +{ +#define X(_N,...) case DW_Attrib_##_N: return str8_lit(Stringify(_N)); + + while (ext) { + U64 z = 64-clz64(ext); + if (z == 0) { + break; + } + U64 flag = 1 << (z-1); + ext &= ~flag; + + switch (flag) { + case DW_Ext_Null: break; + case DW_Ext_GNU: switch (kind) { DW_AttribKind_GNU_XList(X) } break; + case DW_Ext_LLVM: switch (kind) { DW_AttribKind_LLVM_XList(X) } break; + case DW_Ext_APPLE: switch (kind) { DW_AttribKind_APPLE_XList(X) } break; + case DW_Ext_MIPS: switch (kind) { DW_AttribKind_MIPS_XList(X) } break; + default: InvalidPath; break; + } + } + + switch (ver) { + case DW_Version_5: { + switch (kind) { + DW_AttribKind_V5_XList(X) + } + } // fall-through + case DW_Version_4: { + switch (kind) { + DW_AttribKind_V4_XList(X) + } + } // fall-through + case DW_Version_3: { + switch (kind) { + DW_AttribKind_V3_XList(X) + } + } // fall-through + case DW_Version_2: { + switch (kind) { + DW_AttribKind_V2_XList(X) + } + } // fall-through + case DW_Version_1: { + } // fall-through + case DW_Version_Null: break; + } +#undef X + + return str8_zero(); +} + +internal String8 +dw_string_from_form_kind(Arena *arena, DW_Version ver, DW_FormKind kind) +{ +#define X(_N,...) case DW_Form_##_N: return str8_lit(Stringify(_N)); + switch (ver) { + case DW_Version_5: { + switch (kind) { + DW_Form_V5_XList(X) + } + } // fall-through + case DW_Version_4: { + switch (kind) { + DW_Form_V4_XList(X) + } + } // fall-through + case DW_Version_3: + case DW_Version_2: { + switch (kind) { + DW_Form_V2_XList(X) + } + } // fall-through + case DW_Version_Null: break; + } +#undef X + String8 result = push_str8f(arena, "%x", kind); + return result; +} + +internal String8 +dw_string_from_language(Arena *arena, DW_Language kind) +{ + switch (kind) { +#define X(_N,_ID) case DW_Language_##_N: return str8_lit(Stringify(_N)); + DW_Language_XList(X) +#undef X + } + return push_str8f(arena, "%x", kind); +} + +internal String8 +dw_string_from_inl(Arena *arena, DW_InlKind kind) +{ + switch (kind) { +#define X(_N,_ID) case _ID: return str8_lit(Stringify(_N)); + DW_Inl_XList(X) +#undef X + } + return push_str8f(arena, "%x", kind); +} + +internal String8 +dw_string_from_access_kind(Arena *arena, DW_AccessKind kind) +{ + switch (kind) { +#define X(_N,_ID) case _ID: return str8_lit(Stringify(_N)); + DW_AccessKind_XList(X) +#undef X + } + return push_str8f(arena, "%llx", kind); +} + +internal String8 +dw_string_from_calling_convetion(Arena *arena, DW_CallingConventionKind kind) +{ + switch (kind) { +#define X(_N,_ID) case _ID: return str8_lit(Stringify(_N)); + DW_CallingConventionKind_XList(X) +#undef X + } + return push_str8f(arena, "%llx", kind); +} + +internal String8 +dw_string_from_attrib_type_encoding(Arena *arena, DW_ATE kind) +{ + switch (kind) { +#define X(_N,_ID) case _ID: return str8_lit(Stringify(_N)); + DW_ATE_XList(X) +#undef X + } + return push_str8f(arena, "%llx", kind); +} + +internal String8 +dw_string_from_std_opcode(Arena *arena, DW_StdOpcode kind) +{ + switch (kind) { +#define X(_N,_ID) case DW_StdOpcode_##_N: return str8_lit(Stringify(_N)); + DW_StdOpcode_XList(X) +#undef X + } + return push_str8f(arena, "%x", kind); +} + +internal String8 +dw_string_from_ext_opcode(Arena *arena, DW_ExtOpcode kind) +{ + switch (kind) { +#define X(_N,_ID) case DW_ExtOpcode_##_N: return str8_lit(Stringify(_N)); + DW_ExtOpcode_XList(X) +#undef X + default: InvalidPath; break; + } + return push_str8f(arena, "%x", kind); +} + +internal String8 +dw_string_from_loc_list_entry_kind(Arena *arena, DW_LLE kind) +{ + NotImplemented; + return str8_zero(); +} + +internal String8 +dw_string_from_section_kind(Arena *arena, DW_SectionKind kind) +{ + NotImplemented; + return str8_zero(); +} + +internal String8 +dw_string_from_rng_list_entry_kind(Arena *arena, DW_RLE kind) +{ + NotImplemented; + return str8_zero(); +} + +internal String8 +dw_string_from_register(Arena *arena, Arch arch, U64 reg_id) +{ + String8 reg_str = str8_zero(); + switch (arch) { + case Arch_Null: break; + case Arch_x86: { + switch (reg_id) { +#define X(_N, _ID, ...) case DW_RegX86_##_N: reg_str = str8_lit(Stringify(_N)); break; + DW_Regs_X86_XList(X) +#undef X + } + } break; + case Arch_x64: { + switch (reg_id) { +#define X(_N, _ID, ...) case DW_RegX64_##_N: reg_str = str8_lit(Stringify(_N)); break; + DW_Regs_X64_XList(X) +#undef X + } + } break; + case Arch_arm32: NotImplemented; break; + case Arch_arm64: NotImplemented; break; + default: InvalidPath; break; + } + if (reg_str.size == 0) { + reg_str = push_str8f(arena, "%#llx", reg_id); + } + return reg_str; +} diff --git a/src/dwarf/dwarf.h b/src/dwarf/dwarf.h index d56adfdb..9fcf1a0e 100644 --- a/src/dwarf/dwarf.h +++ b/src/dwarf/dwarf.h @@ -1779,4 +1779,23 @@ internal DW_AttribClass dw_pick_attrib_value_class(DW_Version ver, DW_Ext ext, B internal U64 dw_pick_default_lower_bound(DW_Language lang); +//////////////////////////////// +//~ rjf: String <=> Enum + +internal String8 dw_string_from_expr_op(Arena *arena, DW_Version ver, DW_Ext ext, DW_ExprOp op); +internal String8 dw_string_from_tag_kind(Arena *arena, DW_TagKind kind); +internal String8 dw_string_from_attrib_kind(Arena *arena, DW_Version ver, DW_Ext ext, DW_AttribKind kind); +internal String8 dw_string_from_form_kind(Arena *arena, DW_Version ver, DW_FormKind kind); +internal String8 dw_string_from_language(Arena *arena, DW_Language kind); +internal String8 dw_string_from_inl(Arena *arena, DW_InlKind kind); +internal String8 dw_string_from_access_kind(Arena *arena, DW_AccessKind kind); +internal String8 dw_string_from_calling_convetion(Arena *arena, DW_CallingConventionKind kind); +internal String8 dw_string_from_attrib_type_encoding(Arena *arena, DW_ATE kind); +internal String8 dw_string_from_std_opcode(Arena *arena, DW_StdOpcode kind); +internal String8 dw_string_from_ext_opcode(Arena *arena, DW_ExtOpcode kind); +internal String8 dw_string_from_loc_list_entry_kind(Arena *arena, DW_LLE kind); +internal String8 dw_string_from_section_kind(Arena *arena, DW_SectionKind kind); +internal String8 dw_string_from_rng_list_entry_kind(Arena *arena, DW_RLE kind); +internal String8 dw_string_from_register(Arena *arena, Arch arch, U64 reg_id); + #endif // DWARF_H diff --git a/src/dwarf/dwarf_coff.c b/src/dwarf/dwarf_coff.c index a89ec810..9ddbcd89 100644 --- a/src/dwarf/dwarf_coff.c +++ b/src/dwarf/dwarf_coff.c @@ -64,5 +64,3 @@ dw_input_from_coff_section_table(Arena *arena, return input; } - - diff --git a/src/dwarf/dwarf_coff.h b/src/dwarf/dwarf_coff.h index 27441198..27f637d6 100644 --- a/src/dwarf/dwarf_coff.h +++ b/src/dwarf/dwarf_coff.h @@ -4,6 +4,7 @@ #ifndef DWARF_COFF_H #define DWARF_COFF_H +internal B32 dw_is_dwarf_present_coff_section_table(String8 raw_image, String8 string_table, U64 section_count, COFF_SectionHeader *section_table); internal DW_Input dw_input_from_coff_section_table(Arena *arena, String8 raw_image, String8 string_table, U64 section_count, COFF_SectionHeader *section_table); #endif // DWARF_COFF_H diff --git a/src/dwarf/dwarf_dump.c b/src/dwarf/dwarf_dump.c new file mode 100644 index 00000000..13c041aa --- /dev/null +++ b/src/dwarf/dwarf_dump.c @@ -0,0 +1,2203 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal String8 +dw_string_from_reg_off(Arena *arena, Arch arch, U64 reg_idx, S64 reg_off) +{ + Temp scratch = scratch_begin(&arena, 1); + String8 reg_str = dw_string_from_register(scratch.arena, arch, reg_idx); + String8 result = rd_string_from_reg_off(arena, reg_str, reg_off); + scratch_end(scratch); + return result; +} + +B32 is_global_var = 0; + +internal String8List +dw_string_list_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List result = {0}; + for (U64 cursor = 0; cursor < raw_data.size; ) { + U8 op = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &op); + + String8 op_value = str8_zero(); + U64 size_param = 0; + B32 is_signed = 0; + switch (op) { + case DW_ExprOp_Lit0: case DW_ExprOp_Lit1: case DW_ExprOp_Lit2: + case DW_ExprOp_Lit3: case DW_ExprOp_Lit4: case DW_ExprOp_Lit5: + case DW_ExprOp_Lit6: case DW_ExprOp_Lit7: case DW_ExprOp_Lit8: + case DW_ExprOp_Lit9: case DW_ExprOp_Lit10: case DW_ExprOp_Lit11: + case DW_ExprOp_Lit12: case DW_ExprOp_Lit13: case DW_ExprOp_Lit14: + case DW_ExprOp_Lit15: case DW_ExprOp_Lit16: case DW_ExprOp_Lit17: + case DW_ExprOp_Lit18: case DW_ExprOp_Lit19: case DW_ExprOp_Lit20: + case DW_ExprOp_Lit21: case DW_ExprOp_Lit22: case DW_ExprOp_Lit23: + case DW_ExprOp_Lit24: case DW_ExprOp_Lit25: case DW_ExprOp_Lit26: + case DW_ExprOp_Lit27: case DW_ExprOp_Lit28: case DW_ExprOp_Lit29: + case DW_ExprOp_Lit30: case DW_ExprOp_Lit31: { + U64 x = op - DW_ExprOp_Lit0; + op_value = push_str8f(scratch.arena, "%llu", x); + } break; + + case DW_ExprOp_Const1U:size_param = 1; goto const_n; + case DW_ExprOp_Const2U:size_param = 2; goto const_n; + case DW_ExprOp_Const4U:size_param = 4; goto const_n; + case DW_ExprOp_Const8U:size_param = 8; goto const_n; + case DW_ExprOp_Const1S:size_param = 1; is_signed = 1; goto const_n; + case DW_ExprOp_Const2S:size_param = 2; is_signed = 1; goto const_n; + case DW_ExprOp_Const4S:size_param = 4; is_signed = 1; goto const_n; + case DW_ExprOp_Const8S:size_param = 8; is_signed = 1; goto const_n; + const_n: + { + if (is_signed) { + S64 x = 0; + cursor += str8_deserial_read(raw_data, cursor, &x, size_param, 1); + x = extend_sign64(x, size_param); + op_value = push_str8f(scratch.arena, "%lld", x); + } else { + U64 x = 0; + cursor += str8_deserial_read(raw_data, cursor, &x, size_param, 1); + op_value = push_str8f(scratch.arena, "%llu", x); + } + } break; + + case DW_ExprOp_Addr: { + U64 addr = 0; + cursor += str8_deserial_read(raw_data, cursor, &addr, address_size, 1); + op_value = push_str8f(scratch.arena, "%#llx", addr); + } break; + + case DW_ExprOp_ConstU: { + U64 x = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &x); + op_value = push_str8f(scratch.arena, "%llu", x); + } break; + + case DW_ExprOp_ConstS: { + S64 x = 0; + cursor += str8_deserial_read_sleb128(raw_data, cursor, &x); + op_value = push_str8f(scratch.arena, "%lld", x); + } break; + + case DW_ExprOp_Reg0: case DW_ExprOp_Reg1: case DW_ExprOp_Reg2: + case DW_ExprOp_Reg3: case DW_ExprOp_Reg4: case DW_ExprOp_Reg5: + case DW_ExprOp_Reg6: case DW_ExprOp_Reg7: case DW_ExprOp_Reg8: + case DW_ExprOp_Reg9: case DW_ExprOp_Reg10: case DW_ExprOp_Reg11: + case DW_ExprOp_Reg12: case DW_ExprOp_Reg13: case DW_ExprOp_Reg14: + case DW_ExprOp_Reg15: case DW_ExprOp_Reg16: case DW_ExprOp_Reg17: + case DW_ExprOp_Reg18: case DW_ExprOp_Reg19: case DW_ExprOp_Reg20: + case DW_ExprOp_Reg21: case DW_ExprOp_Reg22: case DW_ExprOp_Reg23: + case DW_ExprOp_Reg24: case DW_ExprOp_Reg25: case DW_ExprOp_Reg26: + case DW_ExprOp_Reg27: case DW_ExprOp_Reg28: case DW_ExprOp_Reg29: + case DW_ExprOp_Reg30: case DW_ExprOp_Reg31: { + U64 reg_idx = op - DW_ExprOp_Reg0; + op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, 0); + } break; + + case DW_ExprOp_RegX: { + U64 reg_idx = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); + op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, 0); + } break; + + case DW_ExprOp_ImplicitValue: { + U64 value_size = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &value_size); + Rng1U64 value_range = rng_1u64(cursor, cursor + value_size); + String8 value_data = str8_substr(raw_data, value_range); + cursor += value_size; + + String8 value_str = rd_string_from_hex_u8(scratch.arena, value_data.str, value_data.size); + op_value = push_str8f(scratch.arena, "{ %S }", value_str); + } break; + + case DW_ExprOp_Piece: { + U64 size = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &size); + op_value = push_str8f(scratch.arena, "%u", size); + } break; + + case DW_ExprOp_BitPiece: { + U64 bit_size = 0, bit_off = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &bit_size); + cursor += str8_deserial_read_uleb128(raw_data, cursor, &bit_off); + op_value = push_str8f(scratch.arena, "bit size %llu, bit offset %llu", bit_size, bit_off); + } break; + + case DW_ExprOp_Pick: { + U8 stack_idx = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &stack_idx); + op_value = push_str8f(scratch.arena, "stack index %u", stack_idx); + } break; + + case DW_ExprOp_PlusUConst: { + U64 addend = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &addend); + op_value = push_str8f(arena, "addend %llu", addend); + } break; + + case DW_ExprOp_Skip: { + S16 x = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &x); + op_value = push_str8f(scratch.arena, "%+d bytes", x); + } break; + + case DW_ExprOp_Bra: { + S16 x = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &x); + op_value = push_str8f(scratch.arena, "%+d", x); + } break; + + case DW_ExprOp_BReg0: case DW_ExprOp_BReg1: case DW_ExprOp_BReg2: + case DW_ExprOp_BReg3: case DW_ExprOp_BReg4: case DW_ExprOp_BReg5: + case DW_ExprOp_BReg6: case DW_ExprOp_BReg7: case DW_ExprOp_BReg8: + case DW_ExprOp_BReg9: case DW_ExprOp_BReg10: case DW_ExprOp_BReg11: + case DW_ExprOp_BReg12: case DW_ExprOp_BReg13: case DW_ExprOp_BReg14: + case DW_ExprOp_BReg15: case DW_ExprOp_BReg16: case DW_ExprOp_BReg17: + case DW_ExprOp_BReg18: case DW_ExprOp_BReg19: case DW_ExprOp_BReg20: + case DW_ExprOp_BReg21: case DW_ExprOp_BReg22: case DW_ExprOp_BReg23: + case DW_ExprOp_BReg24: case DW_ExprOp_BReg25: case DW_ExprOp_BReg26: + case DW_ExprOp_BReg27: case DW_ExprOp_BReg28: case DW_ExprOp_BReg29: + case DW_ExprOp_BReg30: case DW_ExprOp_BReg31: { + U64 reg_idx = op - DW_ExprOp_BReg0; + S64 reg_off = 0; + cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); + op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off); + } break; + + case DW_ExprOp_FBReg: { + S64 reg_off = 0; + cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); + op_value = push_str8f(scratch.arena, "offset %lld", reg_off); + } break; + + case DW_ExprOp_BRegX: { + U64 reg_idx = 0; + S64 reg_off = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); + cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); + op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off); + } break; + + case DW_ExprOp_XDerefSize: + case DW_ExprOp_DerefSize: { + U8 x = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &x); + op_value = push_str8f(scratch.arena, "%u", x); + } break; + + case DW_ExprOp_Call2: { + U16 x = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &x); + op_value = push_str8f(scratch.arena, "%u", x); + } break; + case DW_ExprOp_Call4: { + U32 x = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &x); + op_value = push_str8f(arena, "%u", x); + } break; + case DW_ExprOp_CallRef: { + U64 x = 0; + cursor += str8_deserial_read_dwarf_uint(raw_data, cursor, format, &x); + op_value = push_str8f(scratch.arena, "%llu", x); + } break; + case DW_ExprOp_ImplicitPointer: + case DW_ExprOp_GNU_ImplicitPointer: { + U64 info_off = 0; + cursor += str8_deserial_read_dwarf_uint(raw_data, cursor, format, &info_off); + S64 ptr = 0; + cursor += str8_deserial_read_sleb128(raw_data, cursor, &ptr); + + op_value = push_str8f(scratch.arena, ".debug_info+%#llx, ptr %llx", info_off, ptr); + } break; + case DW_ExprOp_Convert: + case DW_ExprOp_GNU_Convert: { + U64 type_cu_off = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); + op_value = push_str8f(scratch.arena, "TypeCuOff %#llx", cu_base + type_cu_off); + } break; + case DW_ExprOp_GNU_ParameterRef: { + // TODO: always 4 bytes? + U32 cu_off = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &cu_off); + op_value = push_str8f(scratch.arena, "CuOff %#x", cu_base + cu_off); + } break; + case DW_ExprOp_DerefType: + case DW_ExprOp_GNU_DerefType: { + U8 deref_size = 0; + U64 type_cu_off = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &deref_size); + cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); + op_value = push_str8f(scratch.arena, "%#x, TypeCuOff %#llx", deref_size, cu_base + type_cu_off); + } break; + case DW_ExprOp_ConstType: + case DW_ExprOp_GNU_ConstType: { + U64 type_cu_off = 0; + U8 const_value_size = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); + cursor += str8_deserial_read_struct(raw_data, cursor, &const_value_size); + Rng1U64 const_value_range = rng_1u64(cursor, cursor + const_value_size); + String8 const_value_data = str8_substr(raw_data, const_value_range); + String8 const_value_str = rd_string_from_hex_u8(scratch.arena, const_value_data.str, const_value_data.size); + op_value = push_str8f(scratch.arena, "TypeCuOff %#llx, Const Value { %S }", cu_base + type_cu_off, const_value_str); + cursor += const_value_size; + } break; + case DW_ExprOp_RegvalType: + case DW_ExprOp_GNU_RegvalType: { + U64 reg_idx = 0, type_cu_off = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); + cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); + op_value = push_str8f(scratch.arena, "%S, TypeCuOff %#llx", dw_string_from_register(scratch.arena, arch, reg_idx), cu_base + type_cu_off); + } break; + case DW_ExprOp_EntryValue: + case DW_ExprOp_GNU_EntryValue: { + U64 block_size = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &block_size); + Rng1U64 block_range = rng_1u64(cursor, cursor + block_size); + String8 block_data = str8_substr(raw_data, block_range); + String8List block_expr = dw_string_list_from_expression(scratch.arena, block_data, cu_base, address_size, arch, ver, ext, format); + op_value = str8_list_join(scratch.arena, &block_expr, &(StringJoin){.pre = str8_lit("{ "), .sep = str8_lit(","), .post = str8_lit(" }")}); + cursor += block_size; + } break; + case DW_ExprOp_Addrx: { + U64 addr = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &addr); + op_value = push_str8f(scratch.arena, "%#llx", addr); + } break; + + case DW_ExprOp_CallFrameCfa: + case DW_ExprOp_FormTlsAddress: + case DW_ExprOp_PushObjectAddress: + case DW_ExprOp_Nop: + case DW_ExprOp_Eq: + case DW_ExprOp_Ge: + case DW_ExprOp_Gt: + case DW_ExprOp_Le: + case DW_ExprOp_Lt: + case DW_ExprOp_Ne: + case DW_ExprOp_Shl: + case DW_ExprOp_Shr: + case DW_ExprOp_Shra: + case DW_ExprOp_Xor: + case DW_ExprOp_XDeref: + case DW_ExprOp_Abs: + case DW_ExprOp_And: + case DW_ExprOp_Div: + case DW_ExprOp_Minus: + case DW_ExprOp_Mod: + case DW_ExprOp_Mul: + case DW_ExprOp_Neg: + case DW_ExprOp_Not: + case DW_ExprOp_Or: + case DW_ExprOp_Plus: + case DW_ExprOp_Rot: + case DW_ExprOp_Swap: + case DW_ExprOp_Deref: + case DW_ExprOp_Dup: + case DW_ExprOp_Drop: + case DW_ExprOp_Over: + case DW_ExprOp_StackValue: { + // no operands + } break; + } + + String8 opcode_str = dw_string_from_expr_op(scratch.arena, ver, ext, op); + if (op_value.size == 0) { + str8_list_pushf(arena, &result, "DW_OP_%S", opcode_str); + } else { + str8_list_pushf(arena, &result, "DW_OP_%S = %S", opcode_str, op_value); + } + } + scratch_end(scratch); + return result; +} + +internal String8 +dw_format_expression_single_line(Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = dw_string_list_from_expression(scratch.arena, raw_data, cu_base, address_size, arch, ver, ext, format); + String8 expression = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + scratch_end(scratch); + return expression; +} + +internal void +dw_print_cfi_program(Arena *arena, String8List *out, String8 indent, String8 raw_data, DW_CIEUnpacked *cie, DW_EhPtrCtx *ptr_ctx, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) +{ + Temp scratch = scratch_begin(&arena, 1); + + U64 address_bit_size = bit_size_from_arch(arch); + U64 address_size = address_bit_size / 8; + + for (U64 cursor = 0; cursor < raw_data.size; /* empty */) { + DW_CFA opcode = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &opcode); + + U64 operand = 0; + if ((opcode & DW_CFAMask_OpcodeHi) != 0) { + operand = opcode & DW_CFAMask_Operand; + opcode = opcode & DW_CFAMask_OpcodeHi; + } + + switch (opcode) { + case DW_CFA_Nop: { + rd_printf("DW_CFA_nop"); + } break; + case DW_CFA_SetLoc: { + U64 address = 0; + switch (arch) { + case Arch_x64: cursor += dw_unwind_parse_pointer_x64(raw_data.str, rng_1u64(0,raw_data.size), ptr_ctx, cie->addr_encoding, cursor, &address); break; + + default: NotImplemented; break; + } + rd_printf("DW_CFA_set_loc: %#llx", address); + } break; + case DW_CFA_AdvanceLoc1: { + U8 delta = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &delta); + + rd_printf("DW_CFA_advance_loc1: %+u", delta * cie->code_align_factor); + } break; + case DW_CFA_AdvanceLoc2: { + U16 delta = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &delta); + + rd_printf("DW_CFA_advance_loc2: %+u", delta * cie->code_align_factor); + } break; + case DW_CFA_AdvanceLoc4: { + U32 delta = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &delta); + + rd_printf("DW_CFA_advance_loc4: %+u", delta * cie->code_align_factor); + } break; + case DW_CFA_OffsetExt: { + U64 reg_idx = 0, reg_off = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_off); + + rd_printf("DW_CFA_offset_extended: %S register %llu (%S), offset %+llu", + dw_string_from_reg_off(scratch.arena, arch, reg_idx, (S64)reg_off * cie->data_align_factor)); + } break; + case DW_CFA_RestoreExt: { + rd_printf("DW_CFA_restore_extended"); + } break; + case DW_CFA_Undefined: { + U64 reg = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®); + + rd_printf("DW_CFA_undefined: %llu", reg); + } break; + case DW_CFA_SameValue: { + U64 reg = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®); + + rd_printf("DW_CFA_same_value: %S", dw_string_from_register(scratch.arena, arch, reg)); + } break; + case DW_CFA_Register: { + U64 reg_idx = 0, reg_off = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_off); + + rd_printf("DW_CFA_register: %S", dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off)); + } break; + case DW_CFA_RememberState: { + rd_printf("DW_CFA_remember_state"); + } break; + case DW_CFA_RestoreState: { + rd_printf("DW_CFA_restore_state"); + } break; + case DW_CFA_DefCfa: { + U64 reg_idx = 0, reg_off = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_off); + + rd_printf("DW_CFA_def_cfa: %S", dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off)); + } break; + case DW_CFA_DefCfaRegister: { + U64 reg = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®); + + rd_printf("DW_CFA_register: %llu (%S)", + reg, + dw_string_from_register(arena, arch, reg)); + } break; + case DW_CFA_DefCfaOffset: { + U64 offset = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &offset); + + rd_printf("DW_CFA_def_cfa_offset: %llu", offset); + } break; + case DW_CFA_DefCfaExpr: { + U64 block_size = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &block_size); + String8 raw_expr = str8_substr(raw_data, rng_1u64(cursor, cursor + block_size)); + cursor += block_size; + + rd_printf("DW_CFA_def_cfa_expression: %S", + dw_format_expression_single_line(scratch.arena, raw_expr, 0, address_size, arch, ver, ext, format)); + } break; + case DW_CFA_Expr: { + U64 reg = 0, block_size = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®); + cursor += str8_deserial_read_uleb128(raw_data, cursor, &block_size); + String8 raw_expr = str8_substr(raw_data, rng_1u64(cursor, cursor + block_size)); + cursor += block_size; + + rd_printf("DW_CFA_expression: %S, expression %S", + dw_string_from_register(scratch.arena, arch, reg), + dw_format_expression_single_line(scratch.arena, raw_expr, 0, address_size, arch, ver, ext, format)); + } break; + case DW_CFA_OffsetExtSf: { + U64 reg_idx = 0; + S64 reg_off = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); + cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); + + rd_printf("DW_CFA_offset_ext_sf: %S", dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off * cie->data_align_factor)); + } break; + case DW_CFA_DefCfaSf: { + U64 reg_idx = 0; + S64 reg_off = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); + cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); + + rd_printf("DW_CFA_def_cfa_sf: %S", dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off * cie->data_align_factor)); + } break; + case DW_CFA_ValOffset: { + U64 val = 0, offset = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &val); + cursor += str8_deserial_read_uleb128(raw_data, cursor, &offset); + + rd_printf("DW_CFA_val_offset: value %llu, offset %+llu", val, offset); + } break; + case DW_CFA_ValOffsetSf: { + U64 val = 0; + S64 offset = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &val); + cursor += str8_deserial_read_sleb128(raw_data, cursor, &offset); + + rd_printf("DW_CFA_val_offset_sf: value %llu, offset %+lld", val, offset); + } break; + case DW_CFA_ValExpr: { + U64 val = 0; + U64 block_size = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &val); + cursor += str8_deserial_read_uleb128(raw_data, cursor, &block_size); + String8 raw_expr = str8_substr(raw_data, rng_1u64(cursor, cursor + block_size)); + cursor += block_size; + + rd_printf("DW_CFA_val_expr: value %+llu, expression %S", + val, + dw_format_expression_single_line(scratch.arena, raw_expr, 0, address_size, arch, ver, ext, format)); + } break; + case DW_CFA_AdvanceLoc: { + rd_printf("DW_CFA_advance_loc: %+llu", operand); + } break; + case DW_CFA_Offset: { + U64 offset = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &offset); + S64 v = (S64)offset * cie->data_align_factor; + + rd_printf("DW_CFA_offset: %S", dw_string_from_reg_off(scratch.arena, arch, operand, v)); + } break; + case DW_CFA_Restore: { + rd_printf("DW_CFA_restore: %S", operand, dw_string_from_register(scratch.arena, arch, operand)); + } break; + default: { + rd_errorf("unknown CFI opcode %u", opcode); + } break; + } + } + + scratch_end(scratch); +} + +internal String8 +dw_format_eh_ptr_enc(Arena *arena, DW_EhPtrEnc enc) +{ + U8 type = enc & DW_EhPtrEnc_TypeMask; + String8 type_str = str8_lit("NULL"); + switch (type) { + case DW_EhPtrEnc_Ptr: type_str = str8_lit("PTR"); break; + case DW_EhPtrEnc_ULEB128: type_str = str8_lit("ULEB128"); break; + case DW_EhPtrEnc_UData2: type_str = str8_lit("UDATA2"); break; + case DW_EhPtrEnc_UData4: type_str = str8_lit("UDATA4"); break; + case DW_EhPtrEnc_UData8: type_str = str8_lit("UDATA8"); break; + case DW_EhPtrEnc_Signed: type_str = str8_lit("SIGNED"); break; + case DW_EhPtrEnc_SLEB128: type_str = str8_lit("SLEB128"); break; + case DW_EhPtrEnc_SData2: type_str = str8_lit("SDATA2"); break; + case DW_EhPtrEnc_SData4: type_str = str8_lit("SDATA4"); break; + case DW_EhPtrEnc_SData8: type_str = str8_lit("SDATA8"); break; + } + U8 modifier = enc & DW_EhPtrEnc_ModifyMask; + String8 modifier_str = str8_lit("NULL"); + switch (modifier) { + case DW_EhPtrEnc_PcRel: modifier_str = str8_lit("PCREL"); break; + case DW_EhPtrEnc_TextRel: modifier_str = str8_lit("TEXTREL"); break; + case DW_EhPtrEnc_DataRel: modifier_str = str8_lit("DATAREL"); break; + case DW_EhPtrEnc_FuncRel: modifier_str = str8_lit("FUNCREL"); break; + } + String8 indir_str = str8_lit(""); + if (enc & DW_EhPtrEnc_Indirect) { + indir_str = str8_lit("(INDIRECT)"); + } + return push_str8f(arena, "Type: %S, Modifier: %S %S", type_str, modifier_str, indir_str); +} + +internal void +dw_print_eh_frame(Arena *arena, String8List *out, String8 indent, String8 raw_eh_frame, Arch arch, DW_Version ver, DW_Ext ext, DW_EhPtrCtx *ptr_ctx) +{ + Temp scratch = scratch_begin(&arena, 1); + DW_CIEUnpacked cie = {0}; + + for (U64 cursor = 0; cursor < raw_eh_frame.size; ) { + U64 header_offset = cursor; + + U64 length = 0; // doesn't include bytes for size + cursor += dw_based_range_read_length(raw_eh_frame.str, rng_1u64(0,raw_eh_frame.size), cursor, &length); + + if (length == 0) { + break; // encountered exit marker + } + + U64 entry_start = cursor; + U64 entry_end = cursor + length; + + U32 entry_id = 0; // always 4-bytes, even when length is encoded as 64-bit integer + cursor += str8_deserial_read_struct(raw_eh_frame, cursor, &entry_id); + + // TODO: fix the freaking DW_EhPtrEnc_PCREL encoding. + // it assumes "frame_base" points to the first byte of .eh_frame + // but here base is start of ELF and we use range to select .eh_frame + // bytes to read, which breaks parsing. + String8 raw_frame = str8_substr(raw_eh_frame, rng_1u64(cursor, cursor + length - sizeof(entry_id))); + Rng1U64 cfi_range = rng_1u64(0,0); + + // CIE + if (entry_id == 0) { + dw_unwind_parse_cie_x64(raw_frame.str, rng_1u64(0,raw_frame.size), ptr_ctx, 0, &cie); + cfi_range = cie.cfi_range; + + rd_printf("CIE @ 0x%X, Length %u", header_offset, length); + rd_indent(); + rd_printf("LSDA Encoding: %S", dw_format_eh_ptr_enc(scratch.arena, cie.lsda_encoding)); + rd_printf("Address Encoding: %S", dw_format_eh_ptr_enc(scratch.arena, cie.addr_encoding)); + rd_printf("Augmentation: %S", cie.augmentation); + rd_printf("Code Align Factor: %llu", cie.code_align_factor); + rd_printf("Data Align Factor: %lld", cie.data_align_factor); + rd_printf("Return Address Register: %u", cie.ret_addr_reg); + rd_printf("Handler IP: %#llx", cie.handler_ip); + rd_unindent(); + } + // FDE + else { + DW_FDEUnpacked fde = {0}; + dw_unwind_parse_fde_x64(raw_eh_frame.str, rng_1u64(0,raw_eh_frame.size), ptr_ctx, &cie, 0, &fde); + cfi_range = fde.cfi_range; + + // calc parent CIE offset + AssertAlways(entry_start >= entry_id); + U64 cie_offset = entry_start - entry_id; NotImplemented; // TODO: syms_safe_sub_u64(range.min + entry_start, entry_id); + + rd_printf("FDE @ %#llx, Length %u, Parent CIE @ %#llx", header_offset, length, cie_offset); + rd_indent(); + rd_printf("IP Range: %#llx-%#llx", fde.ip_voff_range.min, fde.ip_voff_range.max); + rd_printf("LSDA IP: %#llx", fde.lsda_ip); + rd_unindent(); + } + + // print CFI program + rd_printf("CFI Program:"); + rd_indent(); + + DW_Format format = DW_FormatFromSize(length); + String8 raw_cfi = str8_substr(raw_eh_frame, cfi_range); + dw_print_cfi_program(scratch.arena, out, indent, raw_cfi, &cie, ptr_ctx, arch, ver, ext, format); + + rd_unindent(); + rd_newline(); + + // advance to next entry + cursor = entry_end; + } + + scratch_end(scratch); +} + +internal void +dw_print_debug_info(Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, Arch arch, B32 relaxed) +{ + Temp scratch = scratch_begin(&arena, 1); + + Rng1U64List cu_ranges = dw_unit_ranges_from_data(scratch.arena, input->sec[DW_Section_Info].data); + + if (cu_ranges.count > 0) { + rd_printf("# %S", input->sec[DW_Section_Info].name); + rd_indent(); + } + + U64 comp_idx = 0; + for (Rng1U64Node *cu_range_n = cu_ranges.first; cu_range_n != 0; cu_range_n = cu_range_n->next, ++comp_idx) { + Temp comp_temp = temp_begin(scratch.arena); + + U64 cu_base = cu_range_n->v.min; + Rng1U64 cu_range = cu_range_n->v; + DW_CompUnit cu = dw_cu_from_info_off(comp_temp.arena, input, lu_input, cu_range.min, relaxed); + + String8 cu_dir = dw_string_from_attrib (input, &cu, cu.tag, DW_Attrib_CompDir ); + String8 cu_name = dw_string_from_attrib (input, &cu, cu.tag, DW_Attrib_Name ); + String8 stmt_list = dw_line_ptr_from_attrib(input, &cu, cu.tag, DW_Attrib_StmtList); + + DW_LineVMHeader line_vm = {0}; + dw_read_line_vm_header(comp_temp.arena, stmt_list, 0, input, cu_dir, cu_name, cu.address_size, cu.str_offsets_lu, &line_vm); + + // print comp info + rd_printf("Compilation Unit #%u", comp_idx); + rd_indent(); + rd_printf("Version: %u", cu.version); + rd_printf("Address Size: %llu", cu.address_size); + rd_printf("Abbrev Offset: %#llx", cu.abbrev_off); + rd_printf("Info Range: %#llx-%#llx (%M)", cu.info_range.min, cu.info_range.max, dim_1u64(cu.info_range)); + rd_newline(); + + // prase tags + U32 tag_depth = 0; + for (U64 info_off = cu.first_tag_info_off; info_off < cu.info_range.max; ) { + Temp tag_temp = temp_begin(scratch.arena); + + U64 tag_info_off = info_off; + DW_Tag tag = {0}; + info_off += dw_read_tag_cu(tag_temp.arena, input, &cu, tag_info_off, &tag); + + String8 tag_str = dw_string_from_tag_kind(tag_temp.arena, tag.kind); + rd_printf("<%x><%llx> DW_Tag_%S (Abbrev Number: %llu)", tag_depth, tag_info_off, tag_str, tag.abbrev_id); + rd_indent(); + + // parse attributes + for (DW_AttribNode *attrib_n = tag.attribs.first; attrib_n != 0; attrib_n = attrib_n->next) { + Temp attrib_temp = temp_begin(tag_temp.arena); + + DW_Attrib *attrib = &attrib_n->v; + + String8List attrib_list = {0}; + + // attribute .debug_info offset + str8_list_pushf(attrib_temp.arena, &attrib_list, "<%llx> ", attrib->info_off); + + // attribute kind + String8 attrib_kind_str = dw_string_from_attrib_kind(attrib_temp.arena, cu.version, cu.ext, attrib->attrib_kind); + if (attrib_kind_str.size == 0) { + if (relaxed) { + attrib_kind_str = dw_string_from_attrib_kind(attrib_temp.arena, DW_Version_Last, cu.ext, attrib->attrib_kind); + } + } + if (attrib_kind_str.size == 0) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "Unknown(%#x) ", attrib->attrib_kind); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "DW_Attrib_%-20S ", attrib_kind_str); + } + + // form kind + String8 form_kind_str = dw_string_from_form_kind(scratch.arena, cu.version, attrib->form_kind); + str8_list_pushf(attrib_temp.arena, &attrib_list, "DW_Form_%-15S", form_kind_str); + + DW_AttribClass value_class = dw_value_class_from_attrib(&cu, attrib); + switch (value_class) { + default: { + str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unknown value class"); + } break; + case DW_AttribClass_Undefined: { + str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: undefined value class"); + } break; + case DW_AttribClass_Address: { + U64 address = dw_address_from_attrib_ptr(input, &cu, attrib); + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", address); + } break; + case DW_AttribClass_Block: { + String8 block = dw_block_from_attrib_ptr(input, &cu, attrib); + String8 block_str = rd_string_from_hex_u8(attrib_temp.arena, block.str, block.size); + str8_list_pushf(attrib_temp.arena, &attrib_list, "%S", block_str); + } break; + case DW_AttribClass_Const: { + U64 constant = dw_const_u64_from_attrib_ptr(input, &cu, attrib); + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", constant); + } break; + case DW_AttribClass_ExprLoc: { + String8 exprloc = dw_exprloc_from_attrib_ptr(input, &cu, attrib); + String8 exprloc_str = dw_format_expression_single_line(attrib_temp.arena, exprloc, cu_base, cu.address_size, arch, cu.version, cu.ext, cu.format); + str8_list_push(attrib_temp.arena, &attrib_list, exprloc_str); + } break; + case DW_AttribClass_Flag: { + B32 flag = dw_flag_from_attrib_ptr(input, &cu, attrib); + str8_list_pushf(attrib_temp.arena, &attrib_list, "%llu (%s)", flag, flag == 0 ? "false" : "true"); + } break; + case DW_AttribClass_LinePtr: { + if (attrib->form_kind == DW_Form_SecOffset) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, cu.version, attrib->form_kind)); + } + } break; + case DW_AttribClass_LocListPtr: { + if (attrib->form_kind == DW_Form_SecOffset) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, cu.version, attrib->form_kind)); + } + } break; + case DW_AttribClass_MacPtr: { + if (attrib->form_kind == DW_Form_SecOffset) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "\?\?\?"); + } + } break; + case DW_AttribClass_RngListPtr: { + if (attrib->form_kind == DW_Form_SecOffset) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "\?\?\?"); + } + } break; + case DW_AttribClass_RngList: { + if (attrib->form_kind == DW_Form_SecOffset) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "\?\?\?"); + } + } break; + case DW_AttribClass_Reference: { + if (attrib->form_kind == DW_Form_Ref1 || + attrib->form_kind == DW_Form_Ref2 || + attrib->form_kind == DW_Form_Ref4 || + attrib->form_kind == DW_Form_Ref8 || + attrib->form_kind == DW_Form_RefUData) { + U64 info_off = cu.info_range.min + attrib->form.ref; + str8_list_pushf(attrib_temp.arena, &attrib_list, "<%llx>", info_off); + if (!contains_1u64(cu.info_range, attrib->form.ref)) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "(ERROR: out of bounds reference)"); + } + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.ref); + } + } break; + case DW_AttribClass_String: { + if (attrib->form_kind == DW_Form_Strp) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } + String8 string = dw_string_from_attrib_ptr(input, &cu, attrib); + str8_list_pushf(attrib_temp.arena, &attrib_list, "(%S)", string); + } break; + case DW_AttribClass_StrOffsetsPtr: { + if (attrib->form_kind == DW_Form_SecOffset) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, cu.version, attrib->form_kind)); + } + } break; + case DW_AttribClass_AddrPtr: { + if (attrib->form_kind == DW_Form_SecOffset) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, cu.version, attrib->form_kind)); + } + } break; + } + + String8 attrib_str = {0}; + switch (attrib->attrib_kind) { + case DW_Attrib_Language: { + DW_Language lang = dw_const_u64_from_attrib_ptr(input, &cu, attrib); + attrib_str = dw_string_from_language(attrib_temp.arena, lang); + } break; + case DW_Attrib_DeclFile: { + U64 file_idx = dw_const_u64_from_attrib_ptr(input, &cu, attrib); + DW_LineFile *file = dw_file_from_attrib_ptr(&cu, &line_vm, attrib); + attrib_str = str8_lit("\?\?\?"); + if (file) { + attrib_str = dw_path_from_file(attrib_temp.arena, &line_vm, file); + } + } break; + case DW_Attrib_DeclLine: { + U64 line = dw_const_u64_from_attrib_ptr(input, &cu, attrib); + attrib_str = push_str8f(attrib_temp.arena, "%llu", line); + } break; + case DW_Attrib_Inline: { + DW_InlKind inl = dw_const_u64_from_attrib_ptr(input, &cu, attrib); + attrib_str = dw_string_from_inl(attrib_temp.arena, inl); + } break; + case DW_Attrib_Accessibility: { + DW_AccessKind access = dw_const_u64_from_attrib_ptr(input, &cu, attrib); + attrib_str = dw_string_from_access_kind(attrib_temp.arena, access); + } break; + case DW_Attrib_CallingConvention: { + DW_CallingConventionKind calling_convetion = dw_const_u64_from_attrib_ptr(input, &cu, attrib); + attrib_str = dw_string_from_calling_convetion(attrib_temp.arena, calling_convetion); + } break; + case DW_Attrib_Encoding: { + DW_ATE encoding = dw_const_u64_from_attrib_ptr(input, &cu, attrib); + attrib_str = dw_string_from_attrib_type_encoding(attrib_temp.arena, encoding); + } break; + } + + if (attrib_str.size) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "(%S)", attrib_str); + } + String8 print = str8_list_join(attrib_temp.arena, &attrib_list, &(StringJoin){.sep=str8_lit(" ")}); + rd_printf("%S", print); + + temp_end(attrib_temp); + } + + B32 is_ender_tag = tag.abbrev_id == 0; + if (tag.has_children) { + if (is_ender_tag) { + rd_errorf("null-tag cannot have children"); + } + rd_indent(); + tag_depth += 1; + } + if (is_ender_tag) { + if (tag_depth == 0) { + rd_errorf("malformed data detected, too many null tags"); + } else { + rd_unindent(); + tag_depth -= 1; + } + } + + rd_unindent(); + temp_end(tag_temp); + } + temp_end(comp_temp); + + rd_unindent(); + rd_newline(); + } + + if (cu_ranges.count > 0) { + rd_unindent(); + } + + scratch_end(scratch); +} + +internal void +dw_print_debug_abbrev(Arena *arena, String8List *out, String8 indent, DW_Input *input) +{ + Temp scratch = scratch_begin(&arena, 1); + + DW_Section abbrev = input->sec[DW_Section_Abbrev]; + String8 raw_abbrev = abbrev.data; + + if (raw_abbrev.size) { + rd_printf("# %S", input->sec[DW_Section_Abbrev].name); + rd_indent(); + } + + for (U64 cursor = 0; cursor < raw_abbrev.size; ) { + U64 id_off = cursor; + + U64 id = 0; + cursor += str8_deserial_read_uleb128(raw_abbrev, cursor, &id); + + if (id == 0) { + continue; // end of abbrev data for CU + } + + Temp temp = temp_begin(scratch.arena); + + U64 tag = 0; + U8 has_children = 0; + cursor += str8_deserial_read_uleb128(raw_abbrev, cursor, &tag); + cursor += str8_deserial_read_struct(raw_abbrev, cursor, &has_children); + + rd_printf("<%llx> %llu DW_Tag_%S %s", id_off, id, dw_string_from_tag_kind(temp.arena, tag), has_children ? "[has children]" : "[no children]"); + rd_indent(); + for (;;) { + U64 attrib_off = cursor; + + U64 attrib_id = 0, form_id = 0; + cursor += str8_deserial_read_uleb128(raw_abbrev, cursor, &attrib_id); + cursor += str8_deserial_read_uleb128(raw_abbrev, cursor, &form_id); + if (attrib_id == 0) { + break; + } + String8 attrib_str = dw_string_from_attrib_kind(temp.arena, DW_Version_Last, DW_Ext_All, attrib_id); + String8 form_str = dw_string_from_form_kind(temp.arena, DW_Version_Last, form_id); + rd_printf("<%llx> DW_Attrib_%-20S DW_Form_%S", attrib_off, attrib_str, form_str); + } + rd_unindent(); + + temp_end(temp); + } + + if (raw_abbrev.size) { + rd_unindent(); + } + + scratch_end(scratch); +} + +internal void +dw_print_debug_line(Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, B32 relaxed) +{ + Temp scratch = scratch_begin(&arena, 1); + + rd_printf("# .debug_line"); + + Rng1U64List unit_ranges = dw_unit_ranges_from_data(scratch.arena, input->sec[DW_Section_Line].data); + for (Rng1U64Node *unit_range_n = unit_ranges.first; unit_range_n != 0; unit_range_n = unit_range_n->next) { + Temp unit_temp = temp_begin(scratch.arena); + + String8 unit_data = str8_substr(input->sec[DW_Section_Line].data, unit_range_n->v); + String8 cu_dir = {0}; + String8 cu_name = {0}; + DW_ListUnit cu_str_offsets = {0}; + DW_LineVMHeader line_vm = {0}; + U64 line_vm_size = dw_read_line_vm_header(unit_temp.arena, unit_data, 0, input, cu_dir, cu_name, line_vm.address_size, &cu_str_offsets, &line_vm); + + if (line_vm_size == 0) { + continue; + } + + { + rd_printf("Header:", line_vm_size); + rd_indent(); + String8 opcode_lengths = rd_format_hex_array(unit_temp.arena, line_vm.opcode_lens, line_vm.num_opcode_lens); + rd_printf("Version: %u", line_vm.version ); + rd_printf("Line table offset: %#llx", line_vm.unit_range.min ); + rd_printf("Line table length: %llu", dim_1u64(line_vm.unit_range) ); + rd_printf("Version: %u", line_vm.version ); + rd_printf("Address size: %u", line_vm.address_size ); + rd_printf("Segment selector size: %u", line_vm.segment_selector_size); + rd_printf("Header length: %llu", line_vm.header_length ); + rd_printf("Min instruction length: %u", line_vm.min_inst_len ); + rd_printf("Max ops for instruction: %u", line_vm.max_ops_for_inst ); + rd_printf("Default Is Stmt: %u", line_vm.default_is_stmt ); + rd_printf("Line base: %d", line_vm.line_base ); + rd_printf("Line range: %u", line_vm.line_range ); + rd_printf("Opcode base: %u", line_vm.opcode_base ); + rd_printf("Opcode lengths: %S", opcode_lengths ); + rd_unindent(); + rd_newline(); + } + + { + rd_printf("Directory Table:"); + rd_indent(); + rd_printf("%-4s %-8s", "No.", "String"); + for (U64 dir_idx = 0; dir_idx < line_vm.dir_table.count; ++dir_idx) { + rd_printf("%-4llu %S", dir_idx, line_vm.dir_table.v[dir_idx]); + } + rd_unindent(); + rd_newline(); + } + + { + rd_printf("File Table:"); + rd_indent(); + rd_printf("%-4s %-8s %-8s %-33s %-8s %-8s", "No.", "DirIdx", "Time", "MD5", "Size", "Name"); + for (U64 file_idx = 0; file_idx < line_vm.file_table.count; ++file_idx) { + DW_LineFile *file = &line_vm.file_table.v[file_idx]; + rd_printf("%-4llu %-8llu %-8llu %016llx-%016llx %-8llu %S", + file_idx, + file->dir_idx, + file->modify_time, + file->md5_digest.u64[1], + file->md5_digest.u64[0], + file->file_size, + file->file_name); + } + rd_unindent(); + rd_newline(); + } + + { + rd_printf("Opcodes:"); + rd_indent(); + + String8 opcodes = str8_skip(unit_data, line_vm_size); + B32 end_of_seq = 0; + DW_LineVMState vm_state = {0}; + dw_line_vm_reset(&vm_state, line_vm.default_is_stmt); + + for (U64 cursor = 0; cursor < opcodes.size; ) { + Temp opcode_temp = temp_begin(unit_temp.arena); + + String8List opcode_fmt = {0}; + + // opcode offset + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "[%08llx]", cursor); + + // parse opcode + U8 opcode = 0; + cursor += str8_deserial_read_struct(opcodes, cursor, &opcode); + + // push opcode id + String8 opcode_str = dw_string_from_std_opcode(opcode_temp.arena, opcode); + str8_list_push(arena, &opcode_fmt, opcode_str); + + // format operands + switch (opcode) { + default: { + if (opcode >= line_vm.opcode_base) { + U32 adjusted_opcode = 0; + U32 op_advance = 0; + S32 line_advance = 0; + U64 addr_advance = 0; + if (line_vm.line_range > 0 && line_vm.max_ops_for_inst > 0) { + adjusted_opcode = (U32)(opcode - line_vm.opcode_base); + op_advance = adjusted_opcode / line_vm.line_range; + line_advance = (S32)line_vm.line_base + ((S32)adjusted_opcode) % (S32)line_vm.line_range; + addr_advance = line_vm.min_inst_len * ((vm_state.op_index+op_advance) / line_vm.max_ops_for_inst); + } + + vm_state.address += addr_advance; + vm_state.op_index = (vm_state.op_index + op_advance) % line_vm.max_ops_for_inst; + vm_state.line = (U32)((S32)vm_state.line + line_advance); + vm_state.basic_block = 0; + vm_state.prologue_end = 0; + vm_state.epilogue_begin = 0; + vm_state.discriminator = 0; + + end_of_seq = 0; + + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance line by %d, advance address by %lld", line_advance, addr_advance); + } else { + if (opcode > 0 && opcode <= line_vm.num_opcode_lens) { + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "skip operands:"); + U64 num_operands = line_vm.opcode_lens[opcode - 1]; + for (U8 i = 0; i < num_operands; i += 1){ + U64 operand = 0; + cursor += str8_deserial_read_uleb128(opcodes, cursor, &operand); + str8_list_pushf(opcode_temp.arena, &opcode_fmt, " %llx", operand); + } + } + } + }break; + + case DW_StdOpcode_Copy: { + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "Line = %u, Column = %u, Address = %#llx", vm_state.line, vm_state.column, vm_state.address); + end_of_seq = 0; + vm_state.discriminator = 0; + vm_state.basic_block = 0; + vm_state.prologue_end = 0; + vm_state.epilogue_begin = 0; + } break; + case DW_StdOpcode_AdvancePc: { + U64 advance = 0; + cursor += str8_deserial_read_uleb128(opcodes, cursor, &advance); + dw_line_vm_advance(&vm_state, advance, line_vm.min_inst_len, line_vm.max_ops_for_inst); + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance %#llx ; current address %#llx", advance, vm_state.address); + } break; + + case DW_StdOpcode_AdvanceLine: { + S64 advance = 0; + cursor += str8_deserial_read_sleb128(opcodes, cursor, &advance); + vm_state.line += advance; + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance %lld ; current line %u", advance, vm_state.line); + } break; + + case DW_StdOpcode_SetFile: { + U64 file_idx = 0; + cursor += str8_deserial_read_uleb128(opcodes, cursor, &file_idx); + vm_state.file_index = file_idx; + + String8 path = dw_path_from_file_idx(opcode_temp.arena, &line_vm, file_idx); + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu \"%S\"", file_idx, path); + } break; + + case DW_StdOpcode_SetColumn: { + U64 column = 0; + cursor += str8_deserial_read_uleb128(opcodes, cursor, &column); + vm_state.column = column; + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu", column); + } break; + + case DW_StdOpcode_NegateStmt: { + vm_state.is_stmt = !vm_state.is_stmt; + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "is_stmt = %u", vm_state.is_stmt); + } break; + + case DW_StdOpcode_SetBasicBlock: { + vm_state.basic_block = 1; + } break; + + case DW_StdOpcode_ConstAddPc: { + U64 advance = (0xffu - line_vm.opcode_base)/line_vm.line_range; + dw_line_vm_advance(&vm_state, advance, line_vm.min_inst_len, line_vm.max_ops_for_inst); + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%lld ; address %#llx", advance, vm_state.address); + }break; + + case DW_StdOpcode_FixedAdvancePc: { + U64 operand = 0; + cursor += str8_deserial_read_struct(opcodes, cursor, &operand); + vm_state.address += operand; + vm_state.op_index = 0; + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu", operand); + } break; + + case DW_StdOpcode_SetPrologueEnd: { + vm_state.prologue_end = 1; + } break; + + case DW_StdOpcode_SetEpilogueBegin: { + vm_state.epilogue_begin = 1; + } break; + + case DW_StdOpcode_SetIsa: { + U64 v = 0; + cursor += str8_deserial_read_uleb128(opcodes, cursor, &v); + vm_state.isa = v; + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu", v); + } break; + + case DW_StdOpcode_ExtendedOpcode: { + U64 length = 0; + U8 ext_opcode = 0; + + cursor += str8_deserial_read_uleb128(opcodes, cursor, &length); + U64 opcode_end = cursor + length; + + cursor += str8_deserial_read_struct(opcodes, cursor, &ext_opcode); + + String8 ext_opcode_str = dw_string_from_ext_opcode(opcode_temp.arena, ext_opcode); + //str8_list_pushf(opcode_temp.arena, &opcode_fmt, "length: %u", length); + str8_list_push(opcode_temp.arena, &opcode_fmt, ext_opcode_str); + switch (ext_opcode) { + case DW_ExtOpcode_EndSequence: { + vm_state.end_sequence = 1; + dw_line_vm_reset(&vm_state, line_vm.default_is_stmt); + end_of_seq = 1; + } break; + case DW_ExtOpcode_SetAddress: { + U64 address = 0; + cursor += str8_deserial_read(opcodes, cursor, &address, line_vm.address_size, line_vm.address_size); + vm_state.address = address; + vm_state.op_index = 0; + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%#llx", address); + } break; + case DW_ExtOpcode_DefineFile: { + String8 file_name = {0}; + cursor += str8_deserial_read_cstr(opcodes, cursor, &file_name); + + U64 dir_idx = 0, modify_time = 0, file_size = 0; + cursor += str8_deserial_read_uleb128(opcodes, cursor, &dir_idx); + cursor += str8_deserial_read_uleb128(opcodes, cursor, &modify_time); + cursor += str8_deserial_read_uleb128(opcodes, cursor, &file_size); + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%S Dir: %llu, Time: %llu, Size: %llu", file_name, dir_idx, modify_time, file_size); + } break; + case DW_ExtOpcode_SetDiscriminator: { + U64 v = 0; + cursor += str8_deserial_read_uleb128(opcodes, cursor, &v); + vm_state.discriminator = v; + str8_list_pushf(arena, &opcode_fmt, "%llu", v); + } break; + } + + cursor = opcode_end; + } break; + } + + String8 string = str8_list_join(opcode_temp.arena, &opcode_fmt, &(StringJoin){.sep=str8_lit(" ")}); + rd_printf("%S", string); + + temp_end(opcode_temp); + } + + rd_unindent(); + rd_newline(); + } + + temp_end(unit_temp); + } + + scratch_end(scratch); +} + +internal void +dw_print_debug_str(Arena *arena, String8List *out, String8 indent, DW_Input *input) +{ + String8 data = input->sec[DW_Section_Str].data; + rd_printf("# %S", input->sec[DW_Section_Str].name); + rd_indent(); + for (U64 cursor = 0, read_size = 0; cursor < data.size; cursor += read_size) { + String8 string = {0}; + read_size = str8_deserial_read_cstr(data, cursor, &string); + rd_printf("[%08llx] { %llu, \"%S\" }", cursor, string.size, string); + } + rd_unindent(); +} + +internal void +dw_print_debug_loc(Arena *arena, String8List *out, String8 indent, DW_Input *input, Arch arch, ExecutableImageKind image_type, B32 relaxed) +{ +#if 0 + DW_Section info = input->sec[DW_Section_Info]; + DW_Section loc = input->sec[DW_Section_Loc]; + + if (loc.data.size == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + rd_printf("# %S", input->sec[DW_Section_Loc].name); + rd_indent(); + + // TODO: warn about overlaps in ranges + + Rng1U64List cu_range_list = dw_comp_unit_ranges_from_info(scratch.arena, info); + + // parse debug_info for attributes with LOCLIST and store .debug_loc offsets + U64List *loc_lists = push_array(scratch.arena, U64List, cu_range_list.count); + U64 *address_sizes = push_array(scratch.arena, U64, cu_range_list.count); + U64 *address_bases = push_array(scratch.arena, U64, cu_range_list.count); + U64 *cu_bases = push_array(scratch.arena, U64, cu_range_list.count); + DW_Version *ver_arr = push_array(scratch.arena, DW_Version, cu_range_list.count); + DW_Ext *ext_arr = push_array(scratch.arena, DW_Ext, cu_range_list.count); + + U64 comp_idx = 0; + for (Rng1U64Node *cu_range_n = cu_range_list.first; cu_range_n != 0; cu_range_n = cu_range_n->next, ++comp_idx) { + Temp comp_temp = temp_begin(arena); + + Rng1U64 cu_range = cu_range_n->v; + DW_CompUnit cu = dw_comp_unit_from_info_off(comp_temp.arena, input, cu_range.min, relaxed); + + // store info about comp unit + address_sizes[comp_idx] = cu.address_size; + address_bases[comp_idx] = cu.base_addr; + ver_arr[comp_idx] = cu.version; + cu_bases[comp_idx] = cu_range_n->v.min; + + // parse tags + for (U64 info_off = cu.tags_range.min; info_off < cu.tags_range.max; /* empty */) { + Temp tag_temp = temp_begin(scratch.arena); + + DW_Tag tag = dw_tag_from_info_offset_cu(tag_temp.arena, input, &cu, ext_arr[comp_idx], info_off); + + // parse attribs + for (DW_AttribNode *attrib_node = tag.attribs.first; attrib_node != 0; attrib_node = attrib_node->next) { + DW_Attrib *attrib = &attrib_node->v; + B32 is_sect_offset = attrib->value_class == DW_AttribClass_LocListPtr || (attrib->value_class == DW_AttribClass_LocList && attrib->form_kind == DW_Form_SecOffset); + B32 is_sect_index = attrib->value_class == DW_AttribClass_LocList && attrib->form_kind == DW_Form_LocListx; + if (is_sect_offset) { + u64_list_push(scratch.arena, &loc_lists[comp_idx], attrib->value.v[0]); + } else if (is_sect_index) { + // TODO: support for section indexing + } + } + + // advance to next tag + info_off = tag.next_info_off; + + temp_end(tag_temp); + } + + temp_end(comp_temp); + } + + void *base = dw_base_from_sec(input, DW_Section_Loc); + Rng1U64 range = dw_range_from_sec(input, DW_Section_Loc); + + rd_printf(".debug_loc"); + rd_indent(); + rd_printf("%-8s %-8s %-8s %s", "Offset", "Min", "Max", "Expression"); + for (U32 comp_idx = 0; comp_idx < cu_range_list.count; ++comp_idx) { + Temp locs_temp = temp_begin(scratch.arena); + + DW_Version ver = ver_arr[comp_idx]; + DW_Ext ext = ext_arr[comp_idx]; + + U64Array locs = u64_array_from_list(locs_temp.arena, &loc_lists[comp_idx]); + u64_array_sort(locs.count, locs.v); + + U64Array locs_set = remove_duplicates_u64_array(locs_temp.arena, locs); + U64 address_size = address_sizes[comp_idx]; + U64 base_selector = (address_size == 8) ? max_U64 : max_U32; + + for (U64 loc_idx = 0; loc_idx < locs_set.count; ++loc_idx) { + U64 base_address = address_bases[comp_idx]; + for (U64 cursor = locs_set.v[loc_idx]; cursor < dim_1u64(range); /* empty */) { + Temp range_temp = temp_begin(arena); + + String8List list = {0}; + + // offset + str8_list_pushf(range_temp.arena, &list, "%08llx", cursor); + + // parse entry + U64 v0 = 0, v1 = 0; + cursor += dw_based_range_read(base, range, cursor, address_size, &v0); + cursor += dw_based_range_read(base, range, cursor, address_size, &v1); + + B32 is_list_end = v0 == 0 && v1 == 0; + if (is_list_end) { + str8_list_pushf(range_temp.arena, &list, ""); + } else if (v0 == base_selector) { + base_address = v1; + } else { + U16 expr_size = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &expr_size); + Rng1U64 expr_range = rng_1u64(range.min+cursor, range.min+cursor+expr_size); + cursor += expr_size; + + // format dwarf expression + B32 is_dwarf64 = (address_size == 8); + String8 raw_expr = str8((U8*)base+expr_range.min, dim_1u64(expr_range)); + String8 expression = dw_format_expression_single_line(range_temp.arena, raw_expr, cu_bases[comp_idx], address_size, arch, ver, ext, input->sec[DW_Section_Loc].mode); + + // push entry + U64 min = base_address + v0; + U64 max = base_address + v1; + str8_list_pushf(range_temp.arena, &list, "%08llx %08llx %S", min, max, expression); + } + + // print entry + String8 print = str8_list_join(range_temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); + rd_printf("%S", print); + + // cleanup temp + temp_end(range_temp); + + // exit check + if (is_list_end) { + break; + } + } + } + + temp_end(locs_temp); + } + rd_unindent(); + + rd_unindent(); + scratch_end(scratch); +#endif +} + +internal void +dw_print_debug_ranges(Arena *arena, String8List *out, String8 indent, DW_Input *input, Arch arch, ExecutableImageKind image_type, B32 relaxed) +{ + NotImplemented; +#if 0 + DW_Section ranges = input->sec[DW_Section_Ranges]; + void *base = dw_base_from_sec(input, DW_Section_Ranges); + Rng1U64 range = dw_range_from_sec(input, DW_Section_Ranges); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + Rng1U64List cu_range_list = dw_comp_unit_ranges_from_info(scratch.arena, sections->v[DW_Section_Info]); + + // parse debug_info for attributes with LOCLIST and store .debug_loc offsets + U64List *loc_lists = push_array(scratch.arena, U64List, cu_range_list.count); + U64 *address_sizes = push_array(scratch.arena, U64, cu_range_list.count); + U64 *address_bases = push_array(scratch.arena, U64, cu_range_list.count); + + { + U64 comp_idx = 0; + for (Rng1U64Node *cu_range_n = cu_range_list.first; cu_range_n != 0; cu_range_n = cu_range_n->next, ++comp_idx) { + Rng1U64 cu_range = cu_range_n->v; + DW_CompUnit cu = dw_comp_unit_from_info_offset(scratch.arena, sections, cu_range.min, relaxed); + + // store info about comp unit + address_sizes[comp_idx] = cu.address_size; + address_bases[comp_idx] = cu.base_addr; + + // parse tags + for (U64 info_off = cu.tags_range.min; info_off < cu.tags_range.max; /* empty */) { + DW_Tag tag = dw_tag_from_info_offset_cu(scratch.arena, sections, &cu, info_off); + + // parse attribs + for (DW_AttribNode *attrib_node = tag.attribs.first; attrib_node != 0; attrib_node = attrib_node->next) { + DW_Attrib *attrib = &attrib_node->v; + B32 is_sect_offset = attrib->value_class == DW_AttribClass_RngListPtr || (attrib->value_class == DW_AttribClass_RngList && attrib->form_kind == DW_Form_SecOffset); + B32 is_sect_index = attrib->value_class == DW_AttribClass_RngList && attrib->form_kind == DW_Form_RngListx; + if (is_sect_offset) { + u64_list_push(scratch.arena, &loc_lists[comp_idx], attrib->value.v[0]); + } else if (is_sect_index) { + // TODO: support for section indexing + } + } + + info_off = tag.next_info_off; + } + } + } + + rd_printf("# %S", sections->v[DW_Section_Ranges].name); + rd_indent(); + rd_printf("%-8s %-8s %-8s", "Offset", "Min", "Max"); + for (U32 comp_idx = 0; comp_idx < cu_range_list.count; ++comp_idx) { + U64Array locs = u64_array_from_list(scratch.arena, &loc_lists[comp_idx]); + u64_array_sort(locs.count, locs.v); + U64Array locs_set = remove_duplicates_u64_array(scratch.arena, locs); + U64 address_size = address_sizes[comp_idx]; + U64 base_selector = (address_size == 8) ? max_U64 : max_U32; + + for (U64 loc_idx = 0; loc_idx < locs_set.count; ++loc_idx) { + U64 base_address = address_bases[comp_idx]; + for (U64 cursor = locs_set.v[loc_idx]; cursor < dim_1u64(range); /* empty */) { + Temp range_temp = temp_begin(scratch.arena); + + String8List list = {0}; + + // offset + str8_list_pushf(range_temp.arena, &list, "%08llx", cursor); + + // parse entry + U64 v0 = 0, v1 = 0; + cursor += dw_based_range_read(base, range, cursor, address_size, &v0); + cursor += dw_based_range_read(base, range, cursor, address_size, &v1); + + B32 is_list_end = v0 == 0 && v1 == 0; + if (is_list_end) { + str8_list_pushf(range_temp.arena, &list, ""); + } else if (v0 == base_selector) { + base_address = v1; + } else { + // push entry + U64 min = base_address + v0; + U64 max = base_address + v1; + str8_list_pushf(range_temp.arena, &list, "%08llx %08llx", min, max); + } + + // print entry + String8 print = str8_list_join(range_temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); + rd_printf("%S", print); + + temp_end(range_temp); + + // exit check + if (is_list_end) { + break; + } + } + } + } +#endif +} + +internal void +dw_print_debug_aranges(Arena *arena, String8List *out, String8 indent, DW_Input *input) +{ + NotImplemented; +#if 0 + void *base = dw_base_from_sec(sections, DW_Section_ARanges); + Rng1U64 range = dw_range_from_sec(sections, DW_Section_ARanges); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + rd_printf("# %S", sections->v[DW_Section_ARanges].name); + rd_indent(); + for (U64 cursor = 0; cursor < dim_1u64(range); ) { + U64 unit_length = 0; + DW_Version version = 0; + U64 debug_info_offset = 0; + U8 address_size = 0; + U8 segment_selector_size = 0; + + cursor += dw_based_range_read_length(base, range, cursor, &unit_length); + U64 unit_opl = cursor + unit_length; + cursor += dw_based_range_read_struct(base, range, cursor, &version); + + B32 is_dwarf64 = unit_length >= max_U32; + U64 int_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); + cursor += dw_based_range_read(base, range, cursor, int_size, &debug_info_offset); + + cursor += dw_based_range_read_struct(base, range, cursor, &address_size); + cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); + + U64 tuple_size = address_size * 2 + segment_selector_size; + U64 bytes_too_far_past_boundary = cursor % tuple_size; + if (bytes_too_far_past_boundary > 0) { + cursor += tuple_size - bytes_too_far_past_boundary; + } + + rd_printf("Unit length: %llu", unit_length); + rd_printf("Version: %u", version); + rd_printf("Debug info offset: %#llx", debug_info_offset); + rd_printf("Address size: %u", address_size); + rd_printf("Segment selector size: %u", segment_selector_size); + + if (version != DW_Version_2) { + rd_warningf("Version value must be 2 (DWARF5 sepc, Feb 13, 2017)"); + } + + rd_indent(); + rd_printf("%-8s %-8s", "Offset", "Range"); + for (; cursor < unit_opl; ) { + Temp temp = temp_begin(arena); + + String8List list = {0}; + + str8_list_pushf(temp.arena, &list, "%08llx", cursor); + + U64 segment_selector = 0; + U64 address = 0; + U64 length = 0; + cursor += dw_based_range_read(base, range, cursor, segment_selector_size, &segment_selector); + cursor += dw_based_range_read(base, range, cursor, address_size, &address); + cursor += dw_based_range_read(base, range, cursor, address_size, &length); + + if (segment_selector == 0 && address == 0 && length == 0) { + str8_list_pushf(temp.arena, &list, ""); + } else { + if (segment_selector != 0) { + str8_list_pushf(temp.arena, &list, "%02llu:", segment_selector); + } + str8_list_pushf(temp.arena, &list, "%llx-%llx", address, address+length); + } + + String8 print = str8_list_join(temp.arena, &list, &(StringJoin){.sep=str8_lit(" ") }); + rd_printf("%S", print); + + temp_end(temp); + } + rd_unindent(); + rd_newline(); + } + rd_unindent(); + + scratch_end(scratch); +#endif +} + +internal void +dw_print_debug_addr(Arena *arena, String8List *out, String8 indent, DW_Input *input) +{ + NotImplemented; +#if 0 + void *base = dw_base_from_sec(sections, DW_Section_Addr); + Rng1U64 range = dw_range_from_sec(sections, DW_Section_Addr); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + rd_printf("# %S", sections->v[DW_Section_Addr].name); + rd_indent(); + for (U64 cursor = 0; cursor < dim_1u64(range); ) { + U64 unit_length = 0; + DW_Version version = 0; + U8 address_size = 0; + U8 segment_selector_size = 0; + + U64 unit_offset = cursor; + cursor += dw_based_range_read_length(base, range, cursor, &unit_length); + + U64 unit_opl = cursor + unit_length; + cursor += dw_based_range_read_struct(base, range, cursor, &version); + cursor += dw_based_range_read_struct(base, range, cursor, &address_size); + cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); + + U64 tuple_size = address_size * 2 + segment_selector_size; + U64 bytes_too_far_past_boundary = cursor % tuple_size; + if (bytes_too_far_past_boundary > 0) { + cursor += tuple_size - bytes_too_far_past_boundary; + } + + rd_printf("Unit @ %#llx, length %llu", unit_offset, unit_length); + rd_printf("Version: %u", version); + rd_printf("Address size: %u", address_size); + rd_printf("Segment selector size: %u", segment_selector_size); + + if (version != DW_Version_2) { + rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); + } + + rd_indent(); + rd_printf("%-8s %-8s", "Offset", "Address"); + for (; cursor < unit_opl; ) { + Temp temp = temp_begin(arena); + + String8List list = {0}; + + str8_list_pushf(temp.arena, &list, "%08X", cursor); + + U64 segment_selector = 0; + U64 address = 0; + cursor += dw_based_range_read(base, range, cursor, segment_selector_size, &segment_selector); + cursor += dw_based_range_read(base, range, cursor, address_size, &address); + + if (segment_selector == 0 && address == 0) { + str8_list_pushf(temp.arena, &list, ""); + } else { + if (segment_selector != 0) { + str8_list_pushf(temp.arena, &list, "%02u:", segment_selector); + } + str8_list_pushf(temp.arena, &list, "%llx", address); + } + + String8 print = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(" ")}); + rd_printf("%S", print); + + temp_end(temp); + } + rd_unindent(); + rd_newline(); + } + rd_unindent(); + + scratch_end(scratch); +#endif +} + +internal U64 +dw_based_range_read_address(void *base, Rng1U64 range, U64 offset, Rng1U64Array segment_ranges, U8 segment_selector_size, U8 address_size, U64 *address_out) +{ + U64 read_offset = offset; + + // read segment + U64 segment_selector = 0; + read_offset += dw_based_range_read(base, range, read_offset, segment_selector_size, &segment_selector); + + // read address + U64 address = 0; + read_offset += dw_based_range_read(base, range, read_offset, address_size, &address); + + // apply segment offset + B32 is_address_segment_relative = segment_selector_size > 0; + if (is_address_segment_relative) { + if (segment_selector < segment_ranges.count) { + address += segment_ranges.v[segment_selector].min; + } else { + Assert(!"invalid segment selector"); + } + } + + U64 read_size = (read_offset - offset); + return read_size; +} + +internal void +dw_print_debug_loclists(Arena *arena, String8List *out, String8 indent, DW_Input *input, Rng1U64Array segment_virtual_ranges, Arch arch) +{ + NotImplemented; +#if 0 + void *base = dw_base_from_sec(sections, DW_Section_LocLists); + Rng1U64 range = dw_range_from_sec(sections, DW_Section_LocLists); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + rd_printf("# %S", sections->v[DW_Section_LocLists].name); + rd_indent(); + for (U64 cursor = 0; cursor < dim_1u64(range); ) { + U64 unit_offset = cursor; + U64 unit_length = 0; + cursor += dw_based_range_read_length(base, range, cursor, &unit_length); + + U64 unit_opl = cursor + unit_length; + DW_Version version = 0; + U8 address_size = 0; + U8 segment_selector_size = 0; + U32 offset_entry_count = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &version); + cursor += dw_based_range_read_struct(base, range, cursor, &address_size); + cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); + cursor += dw_based_range_read_struct(base, range, cursor, &offset_entry_count); + + U64 past_header_offset = cursor; + B32 is_dwarf64 = unit_length > max_U32; + U64 offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); + + rd_printf("Unit @ %#llx, length %llu", unit_offset, unit_length); + rd_printf("Version: %u", version); + rd_printf("Address size: %u", address_size); + rd_printf("Segment selector size: %u", segment_selector_size); + rd_printf("Offset entry count: %u", offset_entry_count); + if (version != DW_Version_5) { + rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); + } + + if (offset_entry_count > 0) { + rd_printf("Offsets:"); + rd_indent(); + rd_printf("%-8s %-8s", "Index", "Offset"); + for (U64 offset_idx = 0; offset_idx < offset_entry_count; ++offset_idx) { + U64 offset = 0; + cursor += dw_based_range_read(base, range, cursor, offset_size, &offset); + rd_printf("%-8llu %llx", offset_idx, offset+past_header_offset); + } + rd_unindent(); + } + + rd_printf("Locations:"); + rd_indent(); + rd_printf("%-8s %-8s", "Offset", "Location"); + for (; cursor < unit_opl; ) { + Temp temp = temp_begin(arena); + + String8List list = {0}; + + str8_list_pushf(temp.arena, &list, "%08llx", cursor); + + U8 kind = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &kind); + str8_list_pushf(temp.arena, &list, "DW_LLE_%S", dw_string_from_loc_list_entry_kind(temp.arena, kind)); + + B32 has_loc_desc = 0; + switch (kind) { + case DW_LocListEntryKind_EndOfList: + break; + case DW_LocListEntryKind_DefaultLocation: { + has_loc_desc = 1; + } break; + case DW_LocListEntryKind_BaseAddress: { + U64 base_address = 0; + cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &base_address); + str8_list_pushf(temp.arena, &list, "%llx", base_address); + } break; + case DW_LocListEntryKind_StartLength: { + U64 start = 0; + U64 length = 0; + cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &start); + cursor += dw_based_range_read_uleb128(base, range, cursor, &length); + str8_list_pushf(temp.arena, &list, "%llx, %llx", start, length); + } break; + case DW_LocListEntryKind_StartEnd: { + U64 start = 0; + U64 end = 0; + cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &start); + cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &end); + str8_list_pushf(temp.arena, &list, "%llx, %llx", start, end); + } break; + case DW_LocListEntryKind_BaseAddressX: { + U64 base_addressx = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &base_addressx); + str8_list_pushf(temp.arena, &list, "%llx", base_addressx); + } break; + case DW_LocListEntryKind_StartXEndX: { + U64 startx = 0; + U64 endx = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); + cursor += dw_based_range_read_uleb128(base, range, cursor, &endx); + str8_list_pushf(temp.arena, &list, "%llx, %llx", startx, endx); + } break; + case DW_LocListEntryKind_OffsetPair: { + U64 a = 0; + U64 b = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &a); + cursor += dw_based_range_read_uleb128(base, range, cursor, &b); + str8_list_pushf(temp.arena, &list, "%llx, %llx", a, b); + + U8 expr_length = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &expr_length); + + String8 raw_expr = str8((U8*)base+cursor, expr_length); + cursor += expr_length; + + // TODO: we need actual cu base to format expression correctly + NotImplemented; + String8 expression = dw_format_expression_single_line(temp.arena, raw_expr, 0, address_size, arch, version, DW_Ext_Null, is_dwarf64); + str8_list_pushf(temp.arena, &list, "(%S)", expression); + } break; + case DW_LocListEntryKind_StartXLength: { + U64 startx = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); + U64 length = 0; + if (version < DW_Version_5) { + // pre-standard length + cursor += dw_based_range_read(base, range, cursor, sizeof(U32), &length); + } else { + cursor += dw_based_range_read_uleb128(base, range, cursor, &length); + } + } break; + } + + String8 print = str8_list_join(temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); + rd_printf("%S", print); + + temp_end(temp); + } + rd_unindent(); + rd_newline(); + } + rd_unindent(); + + scratch_end(scratch); +#endif +} + +internal void +dw_print_debug_rnglists(Arena *arena, String8List *out, String8 indent, DW_Input *input, Rng1U64Array segment_ranges) +{ + NotImplemented; +#if 0 + void *base = dw_base_from_sec(sections, DW_Section_RngLists); + Rng1U64 range = dw_range_from_sec(sections, DW_Section_RngLists); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + rd_printf("# %S", sections->v[DW_Section_RngLists].name); + rd_indent(); + for (U64 cursor = 0; cursor < dim_1u64(range); ) { + U64 unit_offset = cursor; + U64 unit_length = 0; + cursor += dw_based_range_read_length(base, range, cursor, &unit_length); + U64 unit_opl = cursor + unit_length; + DW_Version version = 0; + U8 address_size = 0; + U8 segment_selector_size = 0; + U32 offset_entry_count = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &version); + cursor += dw_based_range_read_struct(base, range, cursor, &address_size); + cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); + cursor += dw_based_range_read_struct(base, range, cursor, &offset_entry_count); + + U64 past_header_offset = cursor; + B32 is_dwarf64 = unit_length > max_U32; + U64 offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); + + rd_printf("Unit @ %#llx, length %llu", unit_offset, unit_length); + rd_printf("Version: %u", version); + rd_printf("Address size: %u", address_size); + rd_printf("Segment selector size: %u", segment_selector_size); + rd_printf("Offset entry count: %u", offset_entry_count); + + if (version != DW_Version_5) { + rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); + } + + if (offset_entry_count > 0) { + rd_printf("Offsets:"); + rd_indent(); + rd_printf("%-8s %-8s", "Index", "Offset"); + for (U64 offset_idx = 0; offset_idx < offset_entry_count; ++offset_idx) { + U64 offset = 0; + cursor += dw_based_range_read(base, range, cursor, offset_size, &offset); + rd_printf("%-8llu %llx", offset_idx, offset+past_header_offset); + } + rd_unindent(); + } + + rd_printf("Ranges:"); + rd_indent(); + rd_printf("%-8s %-8s", "Offset", "Range"); + for (; cursor < unit_opl; ) { + Temp temp = temp_begin(scratch.arena); + + String8List list = {0}; + + // offset + str8_list_pushf(temp.arena, &list, "%08llx", cursor); + + // opcode mnemonic + U8 kind = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &kind); + str8_list_pushf(temp.arena, &list, "DW_RLE_%S", dw_string_from_rng_list_entry_kind(temp.arena, kind)); + + // operand + switch (kind) { + case DW_RngListEntryKind_EndOfList: { + // empty + } break; + case DW_RngListEntryKind_BaseAddressX: { + U64 base_addressx = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &base_addressx); + str8_list_pushf(temp.arena, &list, "%llx", base_addressx); + } break; + case DW_RngListEntryKind_BaseAddress: { + U64 base_address = 0; + cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &base_address); + str8_list_pushf(temp.arena, &list, "%llx", base_address); + } break; + case DW_RngListEntryKind_OffsetPair: { + U64 min = 0; + U64 max = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &min); + cursor += dw_based_range_read_uleb128(base, range, cursor, &max); + str8_list_pushf(temp.arena, &list, "%llx, %llx", min, max); + } break; + case DW_RngListEntryKind_StartxLength: { + U64 startx = 0; + U64 length = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); + cursor += dw_based_range_read_uleb128(base, range, cursor, &length); + str8_list_pushf(temp.arena, &list, "%llx, %llx", startx, length); + } break; + case DW_RngListEntryKind_StartxEndx: { + U64 startx = 0; + U64 endx = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); + cursor += dw_based_range_read_uleb128(base, range, cursor, &endx); + str8_list_pushf(temp.arena, &list, "%llx, %llx", startx, endx); + } break; + case DW_RngListEntryKind_StartEnd: { + U64 start = 0; + U64 end = 0; + cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &start); + cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &end); + str8_list_pushf(temp.arena, &list, "%llx, %llx", start, end); + } break; + case DW_RngListEntryKind_StartLength: { + U64 start = 0; + U64 length = 0; + cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &start); + cursor += dw_based_range_read_uleb128(base, range, cursor, &length); + str8_list_pushf(temp.arena, &list, "%llx, %llx", start, length); + } break; + } + + // output row + String8 print = str8_list_join(temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); + rd_printf("%S", print); + + temp_end(temp); + } + rd_unindent(); + rd_newline(); + } + rd_unindent(); + + scratch_end(scratch); +#endif +} + +internal void +dw_format_string_table(Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_SectionKind sec) +{ + NotImplemented; +#if 0 + void *base = dw_base_from_sec(sections, sec); + Rng1U64 range = dw_range_from_sec(sections, sec); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + rd_printf("# %S", sections->v[sec].name); + rd_indent(); + for (U64 cursor = 0; cursor < dim_1u64(range); ) { + U64 unit_offset = cursor; + + U64 unit_length = 0; + cursor += dw_based_range_read_length(base, range, cursor, &unit_length); + U64 unit_opl = cursor + unit_length; + + DW_Version version = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &version); + + if (version != DW_Version_2) { + rd_warningf("Version value must be 2"); + } + + B32 is_dwarf64 = unit_length > max_U32; + U32 sec_offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); + + U64 debug_info_offset = 0, debug_info_length = 0; + cursor += dw_based_range_read(base, range, cursor, sec_offset_size, &debug_info_offset); + cursor += dw_based_range_read(base, range, cursor, sec_offset_size, &debug_info_length); + + rd_printf("Unit @ %#llx, length %llu", unit_offset, unit_length); + rd_printf("Version: %u", version); + rd_printf("Debug info offset: %#llx", debug_info_offset); + rd_printf("Debug info length: %#llx", debug_info_length); + + rd_printf("Entries:"); + rd_indent(); + rd_printf("%-8s %-8s", "Offset", "String"); + for (; cursor < unit_opl; ) { + U64 info_offset = 0; + cursor += dw_based_range_read(base, range, cursor, sec_offset_size, &info_offset); + String8 string = dw_based_range_read_string(base, range, cursor); + cursor += (string.size + 1); + + rd_printf("%08llx %S", info_offset, string); + } + rd_unindent(); + rd_newline(); + } + rd_unindent(); + + scratch_end(scratch); +#endif +} + +internal void +dw_print_debug_pubnames(Arena *arena, String8List *out, String8 indent, DW_Input *input) +{ + dw_format_string_table(arena, out, indent, input, DW_Section_PubNames); +} + +internal void +dw_print_debug_pubtypes(Arena *arena, String8List *out, String8 indent, DW_Input *input) +{ + dw_format_string_table(arena, out, indent, input, DW_Section_PubTypes); +} + +internal void +dw_print_debug_line_str(Arena *arena, String8List *out, String8 indent, DW_Input *input) +{ + NotImplemented; +#if 0 + void *base = dw_base_from_sec(sections, DW_Section_LineStr); + Rng1U64 range = dw_range_from_sec(sections, DW_Section_LineStr); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + rd_printf("# %S", sections->v[DW_Section_LineStr].name); + rd_indent(); + + rd_printf("%-8s %-8s", "Offset", "String"); + for (U64 cursor = 0; cursor < dim_1u64(range); ) { + U64 offset = cursor; + String8 string = dw_based_range_read_string(base, range, cursor); + cursor += (string.size + 1); + rd_printf("%08llX %S", offset, string); + } + rd_unindent(); + + scratch_end(scratch); +#endif +} + +internal void +dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 indent, DW_Input *input) +{ + NotImplemented; +#if 0 + void *base = dw_base_from_sec(sections, DW_Section_StrOffsets); + Rng1U64 range = dw_range_from_sec(sections, DW_Section_StrOffsets); + + void *debug_str_base = dw_base_from_sec(sections, DW_Section_Str); + Rng1U64 debug_str_range = dw_range_from_sec(sections, DW_Section_Str); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + rd_printf("# %S", sections->v[DW_Section_StrOffsets].name); + rd_indent(); + for (U64 cursor = 0; cursor < dim_1u64(range); ) { + U64 unit_offset = cursor; + + U64 unit_length = 0; + cursor += dw_based_range_read_length(base, range, cursor, &unit_length); + U64 unit_opl = cursor + unit_length; + + DW_Version version = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &version); + if (version != DW_Version_5) { + rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); + } + + U16 padding = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &padding); + if (padding != 0) { + rd_warningf("unexpected padding byte"); + } + + B32 is_dwarf64 = unit_length > max_U32; + U32 offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); + + rd_printf("Unit @ %#llX, length %lld", unit_offset, unit_length); + rd_printf("Version: %d", version); + rd_printf("Padding: %d", padding); + rd_indent(); + rd_printf("%-8s %-8s", "@", "Offset"); + for (; cursor < unit_opl; ) { + U64 read_at = cursor; + U64 offset = 0; + cursor += dw_based_range_read(base, range, cursor, offset_size, &offset); + rd_printf("%08llx %08llx", read_at, offset); + if (dim_1u64(debug_str_range) > 0) { + String8 string = dw_based_range_read_string(debug_str_base, debug_str_range, offset); + rd_printf(" %S", string); + } + rd_newline(); + } + rd_unindent(); + rd_newline(); + } + rd_unindent(); + + scratch_end(scratch); +#endif +} + +internal void +dw_format(Arena *arena, String8List *out, String8 indent, RD_Option opts, DW_Input *input, Arch arch, ExecutableImageKind image_type) +{ + Temp scratch = scratch_begin(&arena, 1); + + Rng1U64Array segment_vranges = {0}; + + DW_ListUnitInput lu_input = dw_list_unit_input_from_input(scratch.arena, input); + B32 relaxed = !!(opts & RD_Option_RelaxDwarfParser); + + if (opts & RD_Option_DebugInfo) { + dw_print_debug_info(arena, out, indent, input, lu_input, arch, relaxed); + } + if (opts & RD_Option_DebugAbbrev) { + dw_print_debug_abbrev(arena, out, indent, input); + } + if (opts & RD_Option_DebugLine) { + dw_print_debug_line(arena, out, indent, input, lu_input, relaxed); + } + if (opts & RD_Option_DebugStr) { + dw_print_debug_str(arena, out, indent, input); + } + if (opts & RD_Option_DebugLoc) { + dw_print_debug_loc(arena, out, indent, input, arch, image_type, relaxed); + } + if (opts & RD_Option_DebugRanges) { + dw_print_debug_ranges(arena, out, indent, input, arch, image_type, relaxed); + } + if (opts & RD_Option_DebugARanges) { + dw_print_debug_aranges(arena, out, indent, input); + } + if (opts & RD_Option_DebugAddr) { + dw_print_debug_addr(arena, out, indent, input); + } + if (opts & RD_Option_DebugLocLists) { + dw_print_debug_loclists(arena, out, indent, input, segment_vranges, arch); + } + if (opts & RD_Option_DebugRngLists) { + dw_print_debug_rnglists(arena, out, indent, input, segment_vranges); + } + if (opts & RD_Option_DebugPubNames) { + dw_print_debug_pubnames(arena, out, indent, input); + } + if (opts & RD_Option_DebugPubTypes) { + dw_print_debug_pubtypes(arena, out, indent, input); + } + if (opts & RD_Option_DebugLineStr) { + dw_print_debug_line_str(arena, out, indent, input); + } + if (opts & RD_Option_DebugStrOffsets) { + dw_print_debug_str_offsets(arena, out, indent, input); + } + + scratch_end(scratch); +} diff --git a/src/dwarf/dwarf_dump.h b/src/dwarf/dwarf_dump.h new file mode 100644 index 00000000..ee0709df --- /dev/null +++ b/src/dwarf/dwarf_dump.h @@ -0,0 +1,28 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef DWARF_DUMP_H +#define DWARF_DUMP_H + +internal String8List dw_string_list_from_expression (Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); +internal String8 dw_format_expression_single_line(Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); +internal String8 dw_format_eh_ptr_enc (Arena *arena, DW_EhPtrEnc enc); +internal void dw_print_cfi_program (Arena *arena, String8List *out, String8 indent, String8 raw_data, DW_CIEUnpacked *cie, DW_EhPtrCtx *ptr_ctx, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); + +internal void dw_print_eh_frame (Arena *arena, String8List *out, String8 indent, String8 raw_eh_frame, Arch arch, DW_Version ver, DW_Ext ext, DW_EhPtrCtx *ptr_ctx); +internal void dw_print_debug_info (Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, Arch arch, B32 relaxed); +internal void dw_print_debug_abbrev (Arena *arena, String8List *out, String8 indent, DW_Input *input); +internal void dw_print_debug_line (Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, B32 relaxed); +internal void dw_print_debug_str (Arena *arena, String8List *out, String8 indent, DW_Input *input); +internal void dw_print_debug_loc (Arena *arena, String8List *out, String8 indent, DW_Input *input, Arch arch, ExecutableImageKind image_type, B32 relaxed); +internal void dw_print_debug_ranges (Arena *arena, String8List *out, String8 indent, DW_Input *input, Arch arch, ExecutableImageKind image_type, B32 relaxed); +internal void dw_print_debug_aranges (Arena *arena, String8List *out, String8 indent, DW_Input *input); +internal void dw_print_debug_addr (Arena *arena, String8List *out, String8 indent, DW_Input *input); +internal void dw_print_debug_loclists (Arena *arena, String8List *out, String8 indent, DW_Input *input, Rng1U64Array segment_vranges, Arch arch); +internal void dw_print_debug_rnglists (Arena *arena, String8List *out, String8 indent, DW_Input *input, Rng1U64Array segment_vranges); +internal void dw_print_debug_pubnames (Arena *arena, String8List *out, String8 indent, DW_Input *input); +internal void dw_print_debug_pubtypes (Arena *arena, String8List *out, String8 indent, DW_Input *input); +internal void dw_print_debug_line_str (Arena *arena, String8List *out, String8 indent, DW_Input *input); +internal void dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 indent, DW_Input *input); + +#endif // DWARF_DUMP_H diff --git a/src/dwarf/dwarf_elf.h b/src/dwarf/dwarf_elf.h index 776e7b2c..a54c1487 100644 --- a/src/dwarf/dwarf_elf.h +++ b/src/dwarf/dwarf_elf.h @@ -4,8 +4,7 @@ #ifndef DWARF_ELF_H #define DWARF_ELF_H +internal B32 dw_is_dwarf_present_elf_section_table(String8 raw_image, ELF_BinInfo *bin); internal DW_Input dw_input_from_elf_section_table(Arena *arena, String8 raw_image, ELF_BinInfo *bin); #endif // DWARF_ELF_H - - diff --git a/src/dwarf/dwarf_enum.c b/src/dwarf/dwarf_enum.c deleted file mode 100644 index bbbba08c..00000000 --- a/src/dwarf/dwarf_enum.c +++ /dev/null @@ -1,268 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -internal String8 -dw_string_from_expr_op(Arena *arena, DW_Version ver, DW_Ext ext, DW_ExprOp op) -{ - String8 result = {0}; - -#define X(_N,...) case DW_ExprOp_##_N: result = str8_lit(Stringify(_N)); goto exit; - if (ext & DW_Ext_GNU) { - switch (op) { - DW_Expr_GNU_XList(X); - } - } - - switch (ver) { - case DW_Version_5: { - switch (op) { - DW_Expr_V5_XList(X) - } - } // fall-through - case DW_Version_4: { - switch (op) { - DW_Expr_V4_XList(X) - } - } // fall-through - case DW_Version_3: { - switch (op) { - DW_Expr_V3_XList(X) - } - } // fall-through - case DW_Version_2: - case DW_Version_1: - case DW_Version_Null: - break; - } -#undef X - - result = push_str8f(arena, "%x", op); - - exit:; - return result; -} - -internal String8 -dw_string_from_tag_kind(Arena *arena, DW_TagKind kind) -{ - switch (kind) { - case DW_Tag_Null: return str8_lit("Null"); -#define X(_N,_ID) case DW_Tag_##_N: return str8_lit(Stringify(_N)); - DW_Tag_V3_XList(X) - DW_Tag_V5_XList(X) - DW_Tag_GNU_XList(X) -#undef X - } - return push_str8f(arena, "%llx", kind); -} - -internal String8 -dw_string_from_attrib_kind(Arena *arena, DW_Version ver, DW_Ext ext, DW_AttribKind kind) -{ -#define X(_N,...) case DW_Attrib_##_N: return str8_lit(Stringify(_N)); - - while (ext) { - U64 z = 64-clz64(ext); - if (z == 0) { - break; - } - U64 flag = 1 << (z-1); - ext &= ~flag; - - switch (flag) { - case DW_Ext_Null: break; - case DW_Ext_GNU: switch (kind) { DW_AttribKind_GNU_XList(X) } break; - case DW_Ext_LLVM: switch (kind) { DW_AttribKind_LLVM_XList(X) } break; - case DW_Ext_APPLE: switch (kind) { DW_AttribKind_APPLE_XList(X) } break; - case DW_Ext_MIPS: switch (kind) { DW_AttribKind_MIPS_XList(X) } break; - default: InvalidPath; break; - } - } - - switch (ver) { - case DW_Version_5: { - switch (kind) { - DW_AttribKind_V5_XList(X) - } - } // fall-through - case DW_Version_4: { - switch (kind) { - DW_AttribKind_V4_XList(X) - } - } // fall-through - case DW_Version_3: { - switch (kind) { - DW_AttribKind_V3_XList(X) - } - } // fall-through - case DW_Version_2: { - switch (kind) { - DW_AttribKind_V2_XList(X) - } - } // fall-through - case DW_Version_1: { - } // fall-through - case DW_Version_Null: break; - } -#undef X - - return str8_zero(); -} - -internal String8 -dw_string_from_form_kind(Arena *arena, DW_Version ver, DW_FormKind kind) -{ -#define X(_N,...) case DW_Form_##_N: return str8_lit(Stringify(_N)); - switch (ver) { - case DW_Version_5: { - switch (kind) { - DW_Form_V5_XList(X) - } - } // fall-through - case DW_Version_4: { - switch (kind) { - DW_Form_V4_XList(X) - } - } // fall-through - case DW_Version_3: - case DW_Version_2: { - switch (kind) { - DW_Form_V2_XList(X) - } - } // fall-through - case DW_Version_Null: break; - } -#undef X - String8 result = push_str8f(arena, "%x", kind); - return result; -} - -internal String8 -dw_string_from_language(Arena *arena, DW_Language kind) -{ - switch (kind) { -#define X(_N,_ID) case DW_Language_##_N: return str8_lit(Stringify(_N)); - DW_Language_XList(X) -#undef X - } - return push_str8f(arena, "%x", kind); -} - -internal String8 -dw_string_from_inl(Arena *arena, DW_InlKind kind) -{ - switch (kind) { -#define X(_N,_ID) case _ID: return str8_lit(Stringify(_N)); - DW_Inl_XList(X) -#undef X - } - return push_str8f(arena, "%x", kind); -} - -internal String8 -dw_string_from_access_kind(Arena *arena, DW_AccessKind kind) -{ - switch (kind) { -#define X(_N,_ID) case _ID: return str8_lit(Stringify(_N)); - DW_AccessKind_XList(X) -#undef X - } - return push_str8f(arena, "%llx", kind); -} - -internal String8 -dw_string_from_calling_convetion(Arena *arena, DW_CallingConventionKind kind) -{ - switch (kind) { -#define X(_N,_ID) case _ID: return str8_lit(Stringify(_N)); - DW_CallingConventionKind_XList(X) -#undef X - } - return push_str8f(arena, "%llx", kind); -} - -internal String8 -dw_string_from_attrib_type_encoding(Arena *arena, DW_ATE kind) -{ - switch (kind) { -#define X(_N,_ID) case _ID: return str8_lit(Stringify(_N)); - DW_ATE_XList(X) -#undef X - } - return push_str8f(arena, "%llx", kind); -} - -internal String8 -dw_string_from_std_opcode(Arena *arena, DW_StdOpcode kind) -{ - switch (kind) { -#define X(_N,_ID) case DW_StdOpcode_##_N: return str8_lit(Stringify(_N)); - DW_StdOpcode_XList(X) -#undef X - } - return push_str8f(arena, "%x", kind); -} - -internal String8 -dw_string_from_ext_opcode(Arena *arena, DW_ExtOpcode kind) -{ - switch (kind) { -#define X(_N,_ID) case DW_ExtOpcode_##_N: return str8_lit(Stringify(_N)); - DW_ExtOpcode_XList(X) -#undef X - default: InvalidPath; break; - } - return push_str8f(arena, "%x", kind); -} - -internal String8 -dw_string_from_loc_list_entry_kind(Arena *arena, DW_LLE kind) -{ - NotImplemented; - return str8_zero(); -} - -internal String8 -dw_string_from_section_kind(Arena *arena, DW_SectionKind kind) -{ - NotImplemented; - return str8_zero(); -} - -internal String8 -dw_string_from_rng_list_entry_kind(Arena *arena, DW_RLE kind) -{ - NotImplemented; - return str8_zero(); -} - -internal String8 -dw_string_from_register(Arena *arena, Arch arch, U64 reg_id) -{ - String8 reg_str = str8_zero(); - switch (arch) { - case Arch_Null: break; - case Arch_x86: { - switch (reg_id) { -#define X(_N, _ID, ...) case DW_RegX86_##_N: reg_str = str8_lit(Stringify(_N)); break; - DW_Regs_X86_XList(X) -#undef X - } - } break; - case Arch_x64: { - switch (reg_id) { -#define X(_N, _ID, ...) case DW_RegX64_##_N: reg_str = str8_lit(Stringify(_N)); break; - DW_Regs_X64_XList(X) -#undef X - } - } break; - case Arch_arm32: NotImplemented; break; - case Arch_arm64: NotImplemented; break; - default: InvalidPath; break; - } - if (reg_str.size == 0) { - reg_str = push_str8f(arena, "%#llx", reg_id); - } - return reg_str; -} - diff --git a/src/dwarf/dwarf_enum.h b/src/dwarf/dwarf_enum.h deleted file mode 100644 index add27760..00000000 --- a/src/dwarf/dwarf_enum.h +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef DWARF_ENUM_H -#define DWARF_ENUM_H - -internal String8 dw_string_from_expr_op(Arena *arena, DW_Version ver, DW_Ext ext, DW_ExprOp op); -internal String8 dw_string_from_tag_kind(Arena *arena, DW_TagKind kind); -internal String8 dw_string_from_attrib_kind(Arena *arena, DW_Version ver, DW_Ext ext, DW_AttribKind kind); -internal String8 dw_string_from_form_kind(Arena *arena, DW_Version ver, DW_FormKind kind); -internal String8 dw_string_access_kind(Arena *arena, DW_AccessKind kind); - -//internal String8 dw_string_from_register(Arena *arena, Arch arch, U64 reg_id); - -#endif // DWARF_ENUM_H - diff --git a/src/raddump/raddump.c b/src/raddump/raddump.c index 2e626226..20a661b5 100644 --- a/src/raddump/raddump.c +++ b/src/raddump/raddump.c @@ -591,2207 +591,6 @@ rd_print_raw_data(Arena *arena, } } -internal String8 -dw_string_from_reg_off(Arena *arena, Arch arch, U64 reg_idx, S64 reg_off) -{ - Temp scratch = scratch_begin(&arena, 1); - String8 reg_str = dw_string_from_register(scratch.arena, arch, reg_idx); - String8 result = rd_string_from_reg_off(arena, reg_str, reg_off); - scratch_end(scratch); - return result; -} - -B32 is_global_var = 0; - -internal String8List -dw_string_list_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List result = {0}; - for (U64 cursor = 0; cursor < raw_data.size; ) { - U8 op = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &op); - - String8 op_value = str8_zero(); - U64 size_param = 0; - B32 is_signed = 0; - switch (op) { - case DW_ExprOp_Lit0: case DW_ExprOp_Lit1: case DW_ExprOp_Lit2: - case DW_ExprOp_Lit3: case DW_ExprOp_Lit4: case DW_ExprOp_Lit5: - case DW_ExprOp_Lit6: case DW_ExprOp_Lit7: case DW_ExprOp_Lit8: - case DW_ExprOp_Lit9: case DW_ExprOp_Lit10: case DW_ExprOp_Lit11: - case DW_ExprOp_Lit12: case DW_ExprOp_Lit13: case DW_ExprOp_Lit14: - case DW_ExprOp_Lit15: case DW_ExprOp_Lit16: case DW_ExprOp_Lit17: - case DW_ExprOp_Lit18: case DW_ExprOp_Lit19: case DW_ExprOp_Lit20: - case DW_ExprOp_Lit21: case DW_ExprOp_Lit22: case DW_ExprOp_Lit23: - case DW_ExprOp_Lit24: case DW_ExprOp_Lit25: case DW_ExprOp_Lit26: - case DW_ExprOp_Lit27: case DW_ExprOp_Lit28: case DW_ExprOp_Lit29: - case DW_ExprOp_Lit30: case DW_ExprOp_Lit31: { - U64 x = op - DW_ExprOp_Lit0; - op_value = push_str8f(scratch.arena, "%llu", x); - } break; - - case DW_ExprOp_Const1U:size_param = 1; goto const_n; - case DW_ExprOp_Const2U:size_param = 2; goto const_n; - case DW_ExprOp_Const4U:size_param = 4; goto const_n; - case DW_ExprOp_Const8U:size_param = 8; goto const_n; - case DW_ExprOp_Const1S:size_param = 1; is_signed = 1; goto const_n; - case DW_ExprOp_Const2S:size_param = 2; is_signed = 1; goto const_n; - case DW_ExprOp_Const4S:size_param = 4; is_signed = 1; goto const_n; - case DW_ExprOp_Const8S:size_param = 8; is_signed = 1; goto const_n; - const_n: - { - if (is_signed) { - S64 x = 0; - cursor += str8_deserial_read(raw_data, cursor, &x, size_param, 1); - x = extend_sign64(x, size_param); - op_value = push_str8f(scratch.arena, "%lld", x); - } else { - U64 x = 0; - cursor += str8_deserial_read(raw_data, cursor, &x, size_param, 1); - op_value = push_str8f(scratch.arena, "%llu", x); - } - } break; - - case DW_ExprOp_Addr: { - U64 addr = 0; - cursor += str8_deserial_read(raw_data, cursor, &addr, address_size, 1); - op_value = push_str8f(scratch.arena, "%#llx", addr); - } break; - - case DW_ExprOp_ConstU: { - U64 x = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &x); - op_value = push_str8f(scratch.arena, "%llu", x); - } break; - - case DW_ExprOp_ConstS: { - S64 x = 0; - cursor += str8_deserial_read_sleb128(raw_data, cursor, &x); - op_value = push_str8f(scratch.arena, "%lld", x); - } break; - - case DW_ExprOp_Reg0: case DW_ExprOp_Reg1: case DW_ExprOp_Reg2: - case DW_ExprOp_Reg3: case DW_ExprOp_Reg4: case DW_ExprOp_Reg5: - case DW_ExprOp_Reg6: case DW_ExprOp_Reg7: case DW_ExprOp_Reg8: - case DW_ExprOp_Reg9: case DW_ExprOp_Reg10: case DW_ExprOp_Reg11: - case DW_ExprOp_Reg12: case DW_ExprOp_Reg13: case DW_ExprOp_Reg14: - case DW_ExprOp_Reg15: case DW_ExprOp_Reg16: case DW_ExprOp_Reg17: - case DW_ExprOp_Reg18: case DW_ExprOp_Reg19: case DW_ExprOp_Reg20: - case DW_ExprOp_Reg21: case DW_ExprOp_Reg22: case DW_ExprOp_Reg23: - case DW_ExprOp_Reg24: case DW_ExprOp_Reg25: case DW_ExprOp_Reg26: - case DW_ExprOp_Reg27: case DW_ExprOp_Reg28: case DW_ExprOp_Reg29: - case DW_ExprOp_Reg30: case DW_ExprOp_Reg31: { - U64 reg_idx = op - DW_ExprOp_Reg0; - op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, 0); - } break; - - case DW_ExprOp_RegX: { - U64 reg_idx = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); - op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, 0); - } break; - - case DW_ExprOp_ImplicitValue: { - U64 value_size = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &value_size); - Rng1U64 value_range = rng_1u64(cursor, cursor + value_size); - String8 value_data = str8_substr(raw_data, value_range); - cursor += value_size; - - String8 value_str = rd_string_from_hex_u8(scratch.arena, value_data.str, value_data.size); - op_value = push_str8f(scratch.arena, "{ %S }", value_str); - } break; - - case DW_ExprOp_Piece: { - U64 size = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &size); - op_value = push_str8f(scratch.arena, "%u", size); - } break; - - case DW_ExprOp_BitPiece: { - U64 bit_size = 0, bit_off = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &bit_size); - cursor += str8_deserial_read_uleb128(raw_data, cursor, &bit_off); - op_value = push_str8f(scratch.arena, "bit size %llu, bit offset %llu", bit_size, bit_off); - } break; - - case DW_ExprOp_Pick: { - U8 stack_idx = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &stack_idx); - op_value = push_str8f(scratch.arena, "stack index %u", stack_idx); - } break; - - case DW_ExprOp_PlusUConst: { - U64 addend = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &addend); - op_value = push_str8f(arena, "addend %llu", addend); - } break; - - case DW_ExprOp_Skip: { - S16 x = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &x); - op_value = push_str8f(scratch.arena, "%+d bytes", x); - } break; - - case DW_ExprOp_Bra: { - S16 x = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &x); - op_value = push_str8f(scratch.arena, "%+d", x); - } break; - - case DW_ExprOp_BReg0: case DW_ExprOp_BReg1: case DW_ExprOp_BReg2: - case DW_ExprOp_BReg3: case DW_ExprOp_BReg4: case DW_ExprOp_BReg5: - case DW_ExprOp_BReg6: case DW_ExprOp_BReg7: case DW_ExprOp_BReg8: - case DW_ExprOp_BReg9: case DW_ExprOp_BReg10: case DW_ExprOp_BReg11: - case DW_ExprOp_BReg12: case DW_ExprOp_BReg13: case DW_ExprOp_BReg14: - case DW_ExprOp_BReg15: case DW_ExprOp_BReg16: case DW_ExprOp_BReg17: - case DW_ExprOp_BReg18: case DW_ExprOp_BReg19: case DW_ExprOp_BReg20: - case DW_ExprOp_BReg21: case DW_ExprOp_BReg22: case DW_ExprOp_BReg23: - case DW_ExprOp_BReg24: case DW_ExprOp_BReg25: case DW_ExprOp_BReg26: - case DW_ExprOp_BReg27: case DW_ExprOp_BReg28: case DW_ExprOp_BReg29: - case DW_ExprOp_BReg30: case DW_ExprOp_BReg31: { - U64 reg_idx = op - DW_ExprOp_BReg0; - S64 reg_off = 0; - cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); - op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off); - } break; - - case DW_ExprOp_FBReg: { - S64 reg_off = 0; - cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); - op_value = push_str8f(scratch.arena, "offset %lld", reg_off); - } break; - - case DW_ExprOp_BRegX: { - U64 reg_idx = 0; - S64 reg_off = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); - cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); - op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off); - } break; - - case DW_ExprOp_XDerefSize: - case DW_ExprOp_DerefSize: { - U8 x = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &x); - op_value = push_str8f(scratch.arena, "%u", x); - } break; - - case DW_ExprOp_Call2: { - U16 x = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &x); - op_value = push_str8f(scratch.arena, "%u", x); - } break; - case DW_ExprOp_Call4: { - U32 x = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &x); - op_value = push_str8f(arena, "%u", x); - } break; - case DW_ExprOp_CallRef: { - U64 x = 0; - cursor += str8_deserial_read_dwarf_uint(raw_data, cursor, format, &x); - op_value = push_str8f(scratch.arena, "%llu", x); - } break; - case DW_ExprOp_ImplicitPointer: - case DW_ExprOp_GNU_ImplicitPointer: { - U64 info_off = 0; - cursor += str8_deserial_read_dwarf_uint(raw_data, cursor, format, &info_off); - S64 ptr = 0; - cursor += str8_deserial_read_sleb128(raw_data, cursor, &ptr); - - op_value = push_str8f(scratch.arena, ".debug_info+%#llx, ptr %llx", info_off, ptr); - } break; - case DW_ExprOp_Convert: - case DW_ExprOp_GNU_Convert: { - U64 type_cu_off = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); - op_value = push_str8f(scratch.arena, "TypeCuOff %#llx", cu_base + type_cu_off); - } break; - case DW_ExprOp_GNU_ParameterRef: { - // TODO: always 4 bytes? - U32 cu_off = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &cu_off); - op_value = push_str8f(scratch.arena, "CuOff %#x", cu_base + cu_off); - } break; - case DW_ExprOp_DerefType: - case DW_ExprOp_GNU_DerefType: { - U8 deref_size = 0; - U64 type_cu_off = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &deref_size); - cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); - op_value = push_str8f(scratch.arena, "%#x, TypeCuOff %#llx", deref_size, cu_base + type_cu_off); - } break; - case DW_ExprOp_ConstType: - case DW_ExprOp_GNU_ConstType: { - U64 type_cu_off = 0; - U8 const_value_size = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); - cursor += str8_deserial_read_struct(raw_data, cursor, &const_value_size); - Rng1U64 const_value_range = rng_1u64(cursor, cursor + const_value_size); - String8 const_value_data = str8_substr(raw_data, const_value_range); - String8 const_value_str = rd_string_from_hex_u8(scratch.arena, const_value_data.str, const_value_data.size); - op_value = push_str8f(scratch.arena, "TypeCuOff %#llx, Const Value { %S }", cu_base + type_cu_off, const_value_str); - cursor += const_value_size; - } break; - case DW_ExprOp_RegvalType: - case DW_ExprOp_GNU_RegvalType: { - U64 reg_idx = 0, type_cu_off = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); - cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); - op_value = push_str8f(scratch.arena, "%S, TypeCuOff %#llx", dw_string_from_register(scratch.arena, arch, reg_idx), cu_base + type_cu_off); - } break; - case DW_ExprOp_EntryValue: - case DW_ExprOp_GNU_EntryValue: { - U64 block_size = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &block_size); - Rng1U64 block_range = rng_1u64(cursor, cursor + block_size); - String8 block_data = str8_substr(raw_data, block_range); - String8List block_expr = dw_string_list_from_expression(scratch.arena, block_data, cu_base, address_size, arch, ver, ext, format); - op_value = str8_list_join(scratch.arena, &block_expr, &(StringJoin){.pre = str8_lit("{ "), .sep = str8_lit(","), .post = str8_lit(" }")}); - cursor += block_size; - } break; - case DW_ExprOp_Addrx: { - U64 addr = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &addr); - op_value = push_str8f(scratch.arena, "%#llx", addr); - } break; - - case DW_ExprOp_CallFrameCfa: - case DW_ExprOp_FormTlsAddress: - case DW_ExprOp_PushObjectAddress: - case DW_ExprOp_Nop: - case DW_ExprOp_Eq: - case DW_ExprOp_Ge: - case DW_ExprOp_Gt: - case DW_ExprOp_Le: - case DW_ExprOp_Lt: - case DW_ExprOp_Ne: - case DW_ExprOp_Shl: - case DW_ExprOp_Shr: - case DW_ExprOp_Shra: - case DW_ExprOp_Xor: - case DW_ExprOp_XDeref: - case DW_ExprOp_Abs: - case DW_ExprOp_And: - case DW_ExprOp_Div: - case DW_ExprOp_Minus: - case DW_ExprOp_Mod: - case DW_ExprOp_Mul: - case DW_ExprOp_Neg: - case DW_ExprOp_Not: - case DW_ExprOp_Or: - case DW_ExprOp_Plus: - case DW_ExprOp_Rot: - case DW_ExprOp_Swap: - case DW_ExprOp_Deref: - case DW_ExprOp_Dup: - case DW_ExprOp_Drop: - case DW_ExprOp_Over: - case DW_ExprOp_StackValue: { - // no operands - } break; - } - - String8 opcode_str = dw_string_from_expr_op(scratch.arena, ver, ext, op); - if (op_value.size == 0) { - str8_list_pushf(arena, &result, "DW_OP_%S", opcode_str); - } else { - str8_list_pushf(arena, &result, "DW_OP_%S = %S", opcode_str, op_value); - } - } - scratch_end(scratch); - return result; -} - -internal String8 -dw_format_expression_single_line(Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = dw_string_list_from_expression(scratch.arena, raw_data, cu_base, address_size, arch, ver, ext, format); - String8 expression = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - scratch_end(scratch); - return expression; -} - -internal void -dw_print_cfi_program(Arena *arena, String8List *out, String8 indent, String8 raw_data, DW_CIEUnpacked *cie, DW_EhPtrCtx *ptr_ctx, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) -{ - Temp scratch = scratch_begin(&arena, 1); - - U64 address_bit_size = bit_size_from_arch(arch); - U64 address_size = address_bit_size / 8; - - for (U64 cursor = 0; cursor < raw_data.size; /* empty */) { - DW_CFA opcode = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &opcode); - - U64 operand = 0; - if ((opcode & DW_CFAMask_OpcodeHi) != 0) { - operand = opcode & DW_CFAMask_Operand; - opcode = opcode & DW_CFAMask_OpcodeHi; - } - - switch (opcode) { - case DW_CFA_Nop: { - rd_printf("DW_CFA_nop"); - } break; - case DW_CFA_SetLoc: { - U64 address = 0; - switch (arch) { - case Arch_x64: cursor += dw_unwind_parse_pointer_x64(raw_data.str, rng_1u64(0,raw_data.size), ptr_ctx, cie->addr_encoding, cursor, &address); break; - - default: NotImplemented; break; - } - rd_printf("DW_CFA_set_loc: %#llx", address); - } break; - case DW_CFA_AdvanceLoc1: { - U8 delta = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &delta); - - rd_printf("DW_CFA_advance_loc1: %+u", delta * cie->code_align_factor); - } break; - case DW_CFA_AdvanceLoc2: { - U16 delta = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &delta); - - rd_printf("DW_CFA_advance_loc2: %+u", delta * cie->code_align_factor); - } break; - case DW_CFA_AdvanceLoc4: { - U32 delta = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &delta); - - rd_printf("DW_CFA_advance_loc4: %+u", delta * cie->code_align_factor); - } break; - case DW_CFA_OffsetExt: { - U64 reg_idx = 0, reg_off = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_off); - - rd_printf("DW_CFA_offset_extended: %S register %llu (%S), offset %+llu", - dw_string_from_reg_off(scratch.arena, arch, reg_idx, (S64)reg_off * cie->data_align_factor)); - } break; - case DW_CFA_RestoreExt: { - rd_printf("DW_CFA_restore_extended"); - } break; - case DW_CFA_Undefined: { - U64 reg = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®); - - rd_printf("DW_CFA_undefined: %llu", reg); - } break; - case DW_CFA_SameValue: { - U64 reg = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®); - - rd_printf("DW_CFA_same_value: %S", dw_string_from_register(scratch.arena, arch, reg)); - } break; - case DW_CFA_Register: { - U64 reg_idx = 0, reg_off = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_off); - - rd_printf("DW_CFA_register: %S", dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off)); - } break; - case DW_CFA_RememberState: { - rd_printf("DW_CFA_remember_state"); - } break; - case DW_CFA_RestoreState: { - rd_printf("DW_CFA_restore_state"); - } break; - case DW_CFA_DefCfa: { - U64 reg_idx = 0, reg_off = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_off); - - rd_printf("DW_CFA_def_cfa: %S", dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off)); - } break; - case DW_CFA_DefCfaRegister: { - U64 reg = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®); - - rd_printf("DW_CFA_register: %llu (%S)", - reg, - dw_string_from_register(arena, arch, reg)); - } break; - case DW_CFA_DefCfaOffset: { - U64 offset = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &offset); - - rd_printf("DW_CFA_def_cfa_offset: %llu", offset); - } break; - case DW_CFA_DefCfaExpr: { - U64 block_size = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &block_size); - String8 raw_expr = str8_substr(raw_data, rng_1u64(cursor, cursor + block_size)); - cursor += block_size; - - rd_printf("DW_CFA_def_cfa_expression: %S", - dw_format_expression_single_line(scratch.arena, raw_expr, 0, address_size, arch, ver, ext, format)); - } break; - case DW_CFA_Expr: { - U64 reg = 0, block_size = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®); - cursor += str8_deserial_read_uleb128(raw_data, cursor, &block_size); - String8 raw_expr = str8_substr(raw_data, rng_1u64(cursor, cursor + block_size)); - cursor += block_size; - - rd_printf("DW_CFA_expression: %S, expression %S", - dw_string_from_register(scratch.arena, arch, reg), - dw_format_expression_single_line(scratch.arena, raw_expr, 0, address_size, arch, ver, ext, format)); - } break; - case DW_CFA_OffsetExtSf: { - U64 reg_idx = 0; - S64 reg_off = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); - cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); - - rd_printf("DW_CFA_offset_ext_sf: %S", dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off * cie->data_align_factor)); - } break; - case DW_CFA_DefCfaSf: { - U64 reg_idx = 0; - S64 reg_off = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); - cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); - - rd_printf("DW_CFA_def_cfa_sf: %S", dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off * cie->data_align_factor)); - } break; - case DW_CFA_ValOffset: { - U64 val = 0, offset = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &val); - cursor += str8_deserial_read_uleb128(raw_data, cursor, &offset); - - rd_printf("DW_CFA_val_offset: value %llu, offset %+llu", val, offset); - } break; - case DW_CFA_ValOffsetSf: { - U64 val = 0; - S64 offset = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &val); - cursor += str8_deserial_read_sleb128(raw_data, cursor, &offset); - - rd_printf("DW_CFA_val_offset_sf: value %llu, offset %+lld", val, offset); - } break; - case DW_CFA_ValExpr: { - U64 val = 0; - U64 block_size = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &val); - cursor += str8_deserial_read_uleb128(raw_data, cursor, &block_size); - String8 raw_expr = str8_substr(raw_data, rng_1u64(cursor, cursor + block_size)); - cursor += block_size; - - rd_printf("DW_CFA_val_expr: value %+llu, expression %S", - val, - dw_format_expression_single_line(scratch.arena, raw_expr, 0, address_size, arch, ver, ext, format)); - } break; - case DW_CFA_AdvanceLoc: { - rd_printf("DW_CFA_advance_loc: %+llu", operand); - } break; - case DW_CFA_Offset: { - U64 offset = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &offset); - S64 v = (S64)offset * cie->data_align_factor; - - rd_printf("DW_CFA_offset: %S", dw_string_from_reg_off(scratch.arena, arch, operand, v)); - } break; - case DW_CFA_Restore: { - rd_printf("DW_CFA_restore: %S", operand, dw_string_from_register(scratch.arena, arch, operand)); - } break; - default: { - rd_errorf("unknown CFI opcode %u", opcode); - } break; - } - } - - scratch_end(scratch); -} - -internal String8 -dw_format_eh_ptr_enc(Arena *arena, DW_EhPtrEnc enc) -{ - U8 type = enc & DW_EhPtrEnc_TypeMask; - String8 type_str = str8_lit("NULL"); - switch (type) { - case DW_EhPtrEnc_Ptr: type_str = str8_lit("PTR"); break; - case DW_EhPtrEnc_ULEB128: type_str = str8_lit("ULEB128"); break; - case DW_EhPtrEnc_UData2: type_str = str8_lit("UDATA2"); break; - case DW_EhPtrEnc_UData4: type_str = str8_lit("UDATA4"); break; - case DW_EhPtrEnc_UData8: type_str = str8_lit("UDATA8"); break; - case DW_EhPtrEnc_Signed: type_str = str8_lit("SIGNED"); break; - case DW_EhPtrEnc_SLEB128: type_str = str8_lit("SLEB128"); break; - case DW_EhPtrEnc_SData2: type_str = str8_lit("SDATA2"); break; - case DW_EhPtrEnc_SData4: type_str = str8_lit("SDATA4"); break; - case DW_EhPtrEnc_SData8: type_str = str8_lit("SDATA8"); break; - } - U8 modifier = enc & DW_EhPtrEnc_ModifyMask; - String8 modifier_str = str8_lit("NULL"); - switch (modifier) { - case DW_EhPtrEnc_PcRel: modifier_str = str8_lit("PCREL"); break; - case DW_EhPtrEnc_TextRel: modifier_str = str8_lit("TEXTREL"); break; - case DW_EhPtrEnc_DataRel: modifier_str = str8_lit("DATAREL"); break; - case DW_EhPtrEnc_FuncRel: modifier_str = str8_lit("FUNCREL"); break; - } - String8 indir_str = str8_lit(""); - if (enc & DW_EhPtrEnc_Indirect) { - indir_str = str8_lit("(INDIRECT)"); - } - return push_str8f(arena, "Type: %S, Modifier: %S %S", type_str, modifier_str, indir_str); -} - -internal void -dw_print_eh_frame(Arena *arena, String8List *out, String8 indent, String8 raw_eh_frame, Arch arch, DW_Version ver, DW_Ext ext, DW_EhPtrCtx *ptr_ctx) -{ - Temp scratch = scratch_begin(&arena, 1); - DW_CIEUnpacked cie = {0}; - - for (U64 cursor = 0; cursor < raw_eh_frame.size; ) { - U64 header_offset = cursor; - - U64 length = 0; // doesn't include bytes for size - cursor += dw_based_range_read_length(raw_eh_frame.str, rng_1u64(0,raw_eh_frame.size), cursor, &length); - - if (length == 0) { - break; // encountered exit marker - } - - U64 entry_start = cursor; - U64 entry_end = cursor + length; - - U32 entry_id = 0; // always 4-bytes, even when length is encoded as 64-bit integer - cursor += str8_deserial_read_struct(raw_eh_frame, cursor, &entry_id); - - // TODO: fix the freaking DW_EhPtrEnc_PCREL encoding. - // it assumes "frame_base" points to the first byte of .eh_frame - // but here base is start of ELF and we use range to select .eh_frame - // bytes to read, which breaks parsing. - String8 raw_frame = str8_substr(raw_eh_frame, rng_1u64(cursor, cursor + length - sizeof(entry_id))); - Rng1U64 cfi_range = rng_1u64(0,0); - - // CIE - if (entry_id == 0) { - dw_unwind_parse_cie_x64(raw_frame.str, rng_1u64(0,raw_frame.size), ptr_ctx, 0, &cie); - cfi_range = cie.cfi_range; - - rd_printf("CIE @ 0x%X, Length %u", header_offset, length); - rd_indent(); - rd_printf("LSDA Encoding: %S", dw_format_eh_ptr_enc(scratch.arena, cie.lsda_encoding)); - rd_printf("Address Encoding: %S", dw_format_eh_ptr_enc(scratch.arena, cie.addr_encoding)); - rd_printf("Augmentation: %S", cie.augmentation); - rd_printf("Code Align Factor: %llu", cie.code_align_factor); - rd_printf("Data Align Factor: %lld", cie.data_align_factor); - rd_printf("Return Address Register: %u", cie.ret_addr_reg); - rd_printf("Handler IP: %#llx", cie.handler_ip); - rd_unindent(); - } - // FDE - else { - DW_FDEUnpacked fde = {0}; - dw_unwind_parse_fde_x64(raw_eh_frame.str, rng_1u64(0,raw_eh_frame.size), ptr_ctx, &cie, 0, &fde); - cfi_range = fde.cfi_range; - - // calc parent CIE offset - AssertAlways(entry_start >= entry_id); - U64 cie_offset = entry_start - entry_id; NotImplemented; // TODO: syms_safe_sub_u64(range.min + entry_start, entry_id); - - rd_printf("FDE @ %#llx, Length %u, Parent CIE @ %#llx", header_offset, length, cie_offset); - rd_indent(); - rd_printf("IP Range: %#llx-%#llx", fde.ip_voff_range.min, fde.ip_voff_range.max); - rd_printf("LSDA IP: %#llx", fde.lsda_ip); - rd_unindent(); - } - - // print CFI program - rd_printf("CFI Program:"); - rd_indent(); - - DW_Format format = DW_FormatFromSize(length); - String8 raw_cfi = str8_substr(raw_eh_frame, cfi_range); - dw_print_cfi_program(scratch.arena, out, indent, raw_cfi, &cie, ptr_ctx, arch, ver, ext, format); - - rd_unindent(); - rd_newline(); - - // advance to next entry - cursor = entry_end; - } - - scratch_end(scratch); -} - -internal void -dw_print_debug_info(Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, Arch arch, B32 relaxed) -{ - Temp scratch = scratch_begin(&arena, 1); - - Rng1U64List cu_ranges = dw_unit_ranges_from_data(scratch.arena, input->sec[DW_Section_Info].data); - - if (cu_ranges.count > 0) { - rd_printf("# %S", input->sec[DW_Section_Info].name); - rd_indent(); - } - - U64 comp_idx = 0; - for (Rng1U64Node *cu_range_n = cu_ranges.first; cu_range_n != 0; cu_range_n = cu_range_n->next, ++comp_idx) { - Temp comp_temp = temp_begin(scratch.arena); - - U64 cu_base = cu_range_n->v.min; - Rng1U64 cu_range = cu_range_n->v; - DW_CompUnit cu = dw_cu_from_info_off(comp_temp.arena, input, lu_input, cu_range.min, relaxed); - - String8 cu_dir = dw_string_from_attrib (input, &cu, cu.tag, DW_Attrib_CompDir ); - String8 cu_name = dw_string_from_attrib (input, &cu, cu.tag, DW_Attrib_Name ); - String8 stmt_list = dw_line_ptr_from_attrib(input, &cu, cu.tag, DW_Attrib_StmtList); - - DW_LineVMHeader line_vm = {0}; - dw_read_line_vm_header(comp_temp.arena, stmt_list, 0, input, cu_dir, cu_name, cu.address_size, cu.str_offsets_lu, &line_vm); - - // print comp info - rd_printf("Compilation Unit #%u", comp_idx); - rd_indent(); - rd_printf("Version: %u", cu.version); - rd_printf("Address Size: %llu", cu.address_size); - rd_printf("Abbrev Offset: %#llx", cu.abbrev_off); - rd_printf("Info Range: %#llx-%#llx (%M)", cu.info_range.min, cu.info_range.max, dim_1u64(cu.info_range)); - rd_newline(); - - // prase tags - U32 tag_depth = 0; - for (U64 info_off = cu.first_tag_info_off; info_off < cu.info_range.max; ) { - Temp tag_temp = temp_begin(scratch.arena); - - U64 tag_info_off = info_off; - DW_Tag tag = {0}; - info_off += dw_read_tag_cu(tag_temp.arena, input, &cu, tag_info_off, &tag); - - String8 tag_str = dw_string_from_tag_kind(tag_temp.arena, tag.kind); - rd_printf("<%x><%llx> DW_Tag_%S (Abbrev Number: %llu)", tag_depth, tag_info_off, tag_str, tag.abbrev_id); - rd_indent(); - - // parse attributes - for (DW_AttribNode *attrib_n = tag.attribs.first; attrib_n != 0; attrib_n = attrib_n->next) { - Temp attrib_temp = temp_begin(tag_temp.arena); - - DW_Attrib *attrib = &attrib_n->v; - - String8List attrib_list = {0}; - - // attribute .debug_info offset - str8_list_pushf(attrib_temp.arena, &attrib_list, "<%llx> ", attrib->info_off); - - // attribute kind - String8 attrib_kind_str = dw_string_from_attrib_kind(attrib_temp.arena, cu.version, cu.ext, attrib->attrib_kind); - if (attrib_kind_str.size == 0) { - if (relaxed) { - attrib_kind_str = dw_string_from_attrib_kind(attrib_temp.arena, DW_Version_Last, cu.ext, attrib->attrib_kind); - } - } - if (attrib_kind_str.size == 0) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "Unknown(%#x) ", attrib->attrib_kind); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "DW_Attrib_%-20S ", attrib_kind_str); - } - - // form kind - String8 form_kind_str = dw_string_from_form_kind(scratch.arena, cu.version, attrib->form_kind); - str8_list_pushf(attrib_temp.arena, &attrib_list, "DW_Form_%-15S", form_kind_str); - - DW_AttribClass value_class = dw_value_class_from_attrib(&cu, attrib); - switch (value_class) { - default: { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unknown value class"); - } break; - case DW_AttribClass_Undefined: { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: undefined value class"); - } break; - case DW_AttribClass_Address: { - U64 address = dw_address_from_attrib_ptr(input, &cu, attrib); - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", address); - } break; - case DW_AttribClass_Block: { - String8 block = dw_block_from_attrib_ptr(input, &cu, attrib); - String8 block_str = rd_string_from_hex_u8(attrib_temp.arena, block.str, block.size); - str8_list_pushf(attrib_temp.arena, &attrib_list, "%S", block_str); - } break; - case DW_AttribClass_Const: { - U64 constant = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", constant); - } break; - case DW_AttribClass_ExprLoc: { - String8 exprloc = dw_exprloc_from_attrib_ptr(input, &cu, attrib); - String8 exprloc_str = dw_format_expression_single_line(attrib_temp.arena, exprloc, cu_base, cu.address_size, arch, cu.version, cu.ext, cu.format); - str8_list_push(attrib_temp.arena, &attrib_list, exprloc_str); - } break; - case DW_AttribClass_Flag: { - B32 flag = dw_flag_from_attrib_ptr(input, &cu, attrib); - str8_list_pushf(attrib_temp.arena, &attrib_list, "%llu (%s)", flag, flag == 0 ? "false" : "true"); - } break; - case DW_AttribClass_LinePtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, cu.version, attrib->form_kind)); - } - } break; - case DW_AttribClass_LocListPtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, cu.version, attrib->form_kind)); - } - } break; - case DW_AttribClass_MacPtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "\?\?\?"); - } - } break; - case DW_AttribClass_RngListPtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "\?\?\?"); - } - } break; - case DW_AttribClass_RngList: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "\?\?\?"); - } - } break; - case DW_AttribClass_Reference: { - if (attrib->form_kind == DW_Form_Ref1 || - attrib->form_kind == DW_Form_Ref2 || - attrib->form_kind == DW_Form_Ref4 || - attrib->form_kind == DW_Form_Ref8 || - attrib->form_kind == DW_Form_RefUData) { - U64 info_off = cu.info_range.min + attrib->form.ref; - str8_list_pushf(attrib_temp.arena, &attrib_list, "<%llx>", info_off); - if (!contains_1u64(cu.info_range, attrib->form.ref)) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "(ERROR: out of bounds reference)"); - } - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.ref); - } - } break; - case DW_AttribClass_String: { - if (attrib->form_kind == DW_Form_Strp) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } - String8 string = dw_string_from_attrib_ptr(input, &cu, attrib); - str8_list_pushf(attrib_temp.arena, &attrib_list, "(%S)", string); - } break; - case DW_AttribClass_StrOffsetsPtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, cu.version, attrib->form_kind)); - } - } break; - case DW_AttribClass_AddrPtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, cu.version, attrib->form_kind)); - } - } break; - } - - String8 attrib_str = {0}; - switch (attrib->attrib_kind) { - case DW_Attrib_Language: { - DW_Language lang = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - attrib_str = dw_string_from_language(attrib_temp.arena, lang); - } break; - case DW_Attrib_DeclFile: { - U64 file_idx = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - DW_LineFile *file = dw_file_from_attrib_ptr(&cu, &line_vm, attrib); - attrib_str = str8_lit("\?\?\?"); - if (file) { - attrib_str = dw_path_from_file(attrib_temp.arena, &line_vm, file); - } - } break; - case DW_Attrib_DeclLine: { - U64 line = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - attrib_str = push_str8f(attrib_temp.arena, "%llu", line); - } break; - case DW_Attrib_Inline: { - DW_InlKind inl = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - attrib_str = dw_string_from_inl(attrib_temp.arena, inl); - } break; - case DW_Attrib_Accessibility: { - DW_AccessKind access = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - attrib_str = dw_string_from_access_kind(attrib_temp.arena, access); - } break; - case DW_Attrib_CallingConvention: { - DW_CallingConventionKind calling_convetion = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - attrib_str = dw_string_from_calling_convetion(attrib_temp.arena, calling_convetion); - } break; - case DW_Attrib_Encoding: { - DW_ATE encoding = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - attrib_str = dw_string_from_attrib_type_encoding(attrib_temp.arena, encoding); - } break; - } - - if (attrib_str.size) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "(%S)", attrib_str); - } - String8 print = str8_list_join(attrib_temp.arena, &attrib_list, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", print); - - temp_end(attrib_temp); - } - - B32 is_ender_tag = tag.abbrev_id == 0; - if (tag.has_children) { - if (is_ender_tag) { - rd_errorf("null-tag cannot have children"); - } - rd_indent(); - tag_depth += 1; - } - if (is_ender_tag) { - if (tag_depth == 0) { - rd_errorf("malformed data detected, too many null tags"); - } else { - rd_unindent(); - tag_depth -= 1; - } - } - - rd_unindent(); - temp_end(tag_temp); - } - temp_end(comp_temp); - - rd_unindent(); - rd_newline(); - } - - if (cu_ranges.count > 0) { - rd_unindent(); - } - - scratch_end(scratch); -} - -internal void -dw_print_debug_abbrev(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - Temp scratch = scratch_begin(&arena, 1); - - DW_Section abbrev = input->sec[DW_Section_Abbrev]; - String8 raw_abbrev = abbrev.data; - - if (raw_abbrev.size) { - rd_printf("# %S", input->sec[DW_Section_Abbrev].name); - rd_indent(); - } - - for (U64 cursor = 0; cursor < raw_abbrev.size; ) { - U64 id_off = cursor; - - U64 id = 0; - cursor += str8_deserial_read_uleb128(raw_abbrev, cursor, &id); - - if (id == 0) { - continue; // end of abbrev data for CU - } - - Temp temp = temp_begin(scratch.arena); - - U64 tag = 0; - U8 has_children = 0; - cursor += str8_deserial_read_uleb128(raw_abbrev, cursor, &tag); - cursor += str8_deserial_read_struct(raw_abbrev, cursor, &has_children); - - rd_printf("<%llx> %llu DW_Tag_%S %s", id_off, id, dw_string_from_tag_kind(temp.arena, tag), has_children ? "[has children]" : "[no children]"); - rd_indent(); - for (;;) { - U64 attrib_off = cursor; - - U64 attrib_id = 0, form_id = 0; - cursor += str8_deserial_read_uleb128(raw_abbrev, cursor, &attrib_id); - cursor += str8_deserial_read_uleb128(raw_abbrev, cursor, &form_id); - if (attrib_id == 0) { - break; - } - String8 attrib_str = dw_string_from_attrib_kind(temp.arena, DW_Version_Last, DW_Ext_All, attrib_id); - String8 form_str = dw_string_from_form_kind(temp.arena, DW_Version_Last, form_id); - rd_printf("<%llx> DW_Attrib_%-20S DW_Form_%S", attrib_off, attrib_str, form_str); - } - rd_unindent(); - - temp_end(temp); - } - - if (raw_abbrev.size) { - rd_unindent(); - } - - scratch_end(scratch); -} - -internal void -dw_print_debug_line(Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, B32 relaxed) -{ - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# .debug_line"); - - Rng1U64List unit_ranges = dw_unit_ranges_from_data(scratch.arena, input->sec[DW_Section_Line].data); - for (Rng1U64Node *unit_range_n = unit_ranges.first; unit_range_n != 0; unit_range_n = unit_range_n->next) { - Temp unit_temp = temp_begin(scratch.arena); - - String8 unit_data = str8_substr(input->sec[DW_Section_Line].data, unit_range_n->v); - String8 cu_dir = {0}; - String8 cu_name = {0}; - DW_ListUnit cu_str_offsets = {0}; - DW_LineVMHeader line_vm = {0}; - U64 line_vm_size = dw_read_line_vm_header(unit_temp.arena, unit_data, 0, input, cu_dir, cu_name, line_vm.address_size, &cu_str_offsets, &line_vm); - - if (line_vm_size == 0) { - continue; - } - - { - rd_printf("Header:", line_vm_size); - rd_indent(); - String8 opcode_lengths = rd_format_hex_array(unit_temp.arena, line_vm.opcode_lens, line_vm.num_opcode_lens); - rd_printf("Version: %u", line_vm.version ); - rd_printf("Line table offset: %#llx", line_vm.unit_range.min ); - rd_printf("Line table length: %llu", dim_1u64(line_vm.unit_range) ); - rd_printf("Version: %u", line_vm.version ); - rd_printf("Address size: %u", line_vm.address_size ); - rd_printf("Segment selector size: %u", line_vm.segment_selector_size); - rd_printf("Header length: %llu", line_vm.header_length ); - rd_printf("Min instruction length: %u", line_vm.min_inst_len ); - rd_printf("Max ops for instruction: %u", line_vm.max_ops_for_inst ); - rd_printf("Default Is Stmt: %u", line_vm.default_is_stmt ); - rd_printf("Line base: %d", line_vm.line_base ); - rd_printf("Line range: %u", line_vm.line_range ); - rd_printf("Opcode base: %u", line_vm.opcode_base ); - rd_printf("Opcode lengths: %S", opcode_lengths ); - rd_unindent(); - rd_newline(); - } - - { - rd_printf("Directory Table:"); - rd_indent(); - rd_printf("%-4s %-8s", "No.", "String"); - for (U64 dir_idx = 0; dir_idx < line_vm.dir_table.count; ++dir_idx) { - rd_printf("%-4llu %S", dir_idx, line_vm.dir_table.v[dir_idx]); - } - rd_unindent(); - rd_newline(); - } - - { - rd_printf("File Table:"); - rd_indent(); - rd_printf("%-4s %-8s %-8s %-33s %-8s %-8s", "No.", "DirIdx", "Time", "MD5", "Size", "Name"); - for (U64 file_idx = 0; file_idx < line_vm.file_table.count; ++file_idx) { - DW_LineFile *file = &line_vm.file_table.v[file_idx]; - rd_printf("%-4llu %-8llu %-8llu %016llx-%016llx %-8llu %S", - file_idx, - file->dir_idx, - file->modify_time, - file->md5_digest.u64[1], - file->md5_digest.u64[0], - file->file_size, - file->file_name); - } - rd_unindent(); - rd_newline(); - } - - { - rd_printf("Opcodes:"); - rd_indent(); - - String8 opcodes = str8_skip(unit_data, line_vm_size); - B32 end_of_seq = 0; - DW_LineVMState vm_state = {0}; - dw_line_vm_reset(&vm_state, line_vm.default_is_stmt); - - for (U64 cursor = 0; cursor < opcodes.size; ) { - Temp opcode_temp = temp_begin(unit_temp.arena); - - String8List opcode_fmt = {0}; - - // opcode offset - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "[%08llx]", cursor); - - // parse opcode - U8 opcode = 0; - cursor += str8_deserial_read_struct(opcodes, cursor, &opcode); - - // push opcode id - String8 opcode_str = dw_string_from_std_opcode(opcode_temp.arena, opcode); - str8_list_push(arena, &opcode_fmt, opcode_str); - - // format operands - switch (opcode) { - default: { - if (opcode >= line_vm.opcode_base) { - U32 adjusted_opcode = 0; - U32 op_advance = 0; - S32 line_advance = 0; - U64 addr_advance = 0; - if (line_vm.line_range > 0 && line_vm.max_ops_for_inst > 0) { - adjusted_opcode = (U32)(opcode - line_vm.opcode_base); - op_advance = adjusted_opcode / line_vm.line_range; - line_advance = (S32)line_vm.line_base + ((S32)adjusted_opcode) % (S32)line_vm.line_range; - addr_advance = line_vm.min_inst_len * ((vm_state.op_index+op_advance) / line_vm.max_ops_for_inst); - } - - vm_state.address += addr_advance; - vm_state.op_index = (vm_state.op_index + op_advance) % line_vm.max_ops_for_inst; - vm_state.line = (U32)((S32)vm_state.line + line_advance); - vm_state.basic_block = 0; - vm_state.prologue_end = 0; - vm_state.epilogue_begin = 0; - vm_state.discriminator = 0; - - end_of_seq = 0; - - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance line by %d, advance address by %lld", line_advance, addr_advance); - } else { - if (opcode > 0 && opcode <= line_vm.num_opcode_lens) { - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "skip operands:"); - U64 num_operands = line_vm.opcode_lens[opcode - 1]; - for (U8 i = 0; i < num_operands; i += 1){ - U64 operand = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &operand); - str8_list_pushf(opcode_temp.arena, &opcode_fmt, " %llx", operand); - } - } - } - }break; - - case DW_StdOpcode_Copy: { - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "Line = %u, Column = %u, Address = %#llx", vm_state.line, vm_state.column, vm_state.address); - end_of_seq = 0; - vm_state.discriminator = 0; - vm_state.basic_block = 0; - vm_state.prologue_end = 0; - vm_state.epilogue_begin = 0; - } break; - case DW_StdOpcode_AdvancePc: { - U64 advance = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &advance); - dw_line_vm_advance(&vm_state, advance, line_vm.min_inst_len, line_vm.max_ops_for_inst); - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance %#llx ; current address %#llx", advance, vm_state.address); - } break; - - case DW_StdOpcode_AdvanceLine: { - S64 advance = 0; - cursor += str8_deserial_read_sleb128(opcodes, cursor, &advance); - vm_state.line += advance; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance %lld ; current line %u", advance, vm_state.line); - } break; - - case DW_StdOpcode_SetFile: { - U64 file_idx = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &file_idx); - vm_state.file_index = file_idx; - - String8 path = dw_path_from_file_idx(opcode_temp.arena, &line_vm, file_idx); - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu \"%S\"", file_idx, path); - } break; - - case DW_StdOpcode_SetColumn: { - U64 column = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &column); - vm_state.column = column; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu", column); - } break; - - case DW_StdOpcode_NegateStmt: { - vm_state.is_stmt = !vm_state.is_stmt; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "is_stmt = %u", vm_state.is_stmt); - } break; - - case DW_StdOpcode_SetBasicBlock: { - vm_state.basic_block = 1; - } break; - - case DW_StdOpcode_ConstAddPc: { - U64 advance = (0xffu - line_vm.opcode_base)/line_vm.line_range; - dw_line_vm_advance(&vm_state, advance, line_vm.min_inst_len, line_vm.max_ops_for_inst); - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%lld ; address %#llx", advance, vm_state.address); - }break; - - case DW_StdOpcode_FixedAdvancePc: { - U64 operand = 0; - cursor += str8_deserial_read_struct(opcodes, cursor, &operand); - vm_state.address += operand; - vm_state.op_index = 0; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu", operand); - } break; - - case DW_StdOpcode_SetPrologueEnd: { - vm_state.prologue_end = 1; - } break; - - case DW_StdOpcode_SetEpilogueBegin: { - vm_state.epilogue_begin = 1; - } break; - - case DW_StdOpcode_SetIsa: { - U64 v = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &v); - vm_state.isa = v; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu", v); - } break; - - case DW_StdOpcode_ExtendedOpcode: { - U64 length = 0; - U8 ext_opcode = 0; - - cursor += str8_deserial_read_uleb128(opcodes, cursor, &length); - U64 opcode_end = cursor + length; - - cursor += str8_deserial_read_struct(opcodes, cursor, &ext_opcode); - - String8 ext_opcode_str = dw_string_from_ext_opcode(opcode_temp.arena, ext_opcode); - //str8_list_pushf(opcode_temp.arena, &opcode_fmt, "length: %u", length); - str8_list_push(opcode_temp.arena, &opcode_fmt, ext_opcode_str); - switch (ext_opcode) { - case DW_ExtOpcode_EndSequence: { - vm_state.end_sequence = 1; - dw_line_vm_reset(&vm_state, line_vm.default_is_stmt); - end_of_seq = 1; - } break; - case DW_ExtOpcode_SetAddress: { - U64 address = 0; - cursor += str8_deserial_read(opcodes, cursor, &address, line_vm.address_size, line_vm.address_size); - vm_state.address = address; - vm_state.op_index = 0; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%#llx", address); - } break; - case DW_ExtOpcode_DefineFile: { - String8 file_name = {0}; - cursor += str8_deserial_read_cstr(opcodes, cursor, &file_name); - - U64 dir_idx = 0, modify_time = 0, file_size = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &dir_idx); - cursor += str8_deserial_read_uleb128(opcodes, cursor, &modify_time); - cursor += str8_deserial_read_uleb128(opcodes, cursor, &file_size); - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%S Dir: %llu, Time: %llu, Size: %llu", file_name, dir_idx, modify_time, file_size); - } break; - case DW_ExtOpcode_SetDiscriminator: { - U64 v = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &v); - vm_state.discriminator = v; - str8_list_pushf(arena, &opcode_fmt, "%llu", v); - } break; - } - - cursor = opcode_end; - } break; - } - - String8 string = str8_list_join(opcode_temp.arena, &opcode_fmt, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", string); - - temp_end(opcode_temp); - } - - rd_unindent(); - rd_newline(); - } - - temp_end(unit_temp); - } - - scratch_end(scratch); -} - -internal void -dw_print_debug_str(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - String8 data = input->sec[DW_Section_Str].data; - rd_printf("# %S", input->sec[DW_Section_Str].name); - rd_indent(); - for (U64 cursor = 0, read_size = 0; cursor < data.size; cursor += read_size) { - String8 string = {0}; - read_size = str8_deserial_read_cstr(data, cursor, &string); - rd_printf("[%08llx] { %llu, \"%S\" }", cursor, string.size, string); - } - rd_unindent(); -} - -internal void -dw_print_debug_loc(Arena *arena, String8List *out, String8 indent, DW_Input *input, Arch arch, ExecutableImageKind image_type, B32 relaxed) -{ -#if 0 - DW_Section info = input->sec[DW_Section_Info]; - DW_Section loc = input->sec[DW_Section_Loc]; - - if (loc.data.size == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", input->sec[DW_Section_Loc].name); - rd_indent(); - - // TODO: warn about overlaps in ranges - - Rng1U64List cu_range_list = dw_comp_unit_ranges_from_info(scratch.arena, info); - - // parse debug_info for attributes with LOCLIST and store .debug_loc offsets - U64List *loc_lists = push_array(scratch.arena, U64List, cu_range_list.count); - U64 *address_sizes = push_array(scratch.arena, U64, cu_range_list.count); - U64 *address_bases = push_array(scratch.arena, U64, cu_range_list.count); - U64 *cu_bases = push_array(scratch.arena, U64, cu_range_list.count); - DW_Version *ver_arr = push_array(scratch.arena, DW_Version, cu_range_list.count); - DW_Ext *ext_arr = push_array(scratch.arena, DW_Ext, cu_range_list.count); - - U64 comp_idx = 0; - for (Rng1U64Node *cu_range_n = cu_range_list.first; cu_range_n != 0; cu_range_n = cu_range_n->next, ++comp_idx) { - Temp comp_temp = temp_begin(arena); - - Rng1U64 cu_range = cu_range_n->v; - DW_CompUnit cu = dw_comp_unit_from_info_off(comp_temp.arena, input, cu_range.min, relaxed); - - // store info about comp unit - address_sizes[comp_idx] = cu.address_size; - address_bases[comp_idx] = cu.base_addr; - ver_arr[comp_idx] = cu.version; - cu_bases[comp_idx] = cu_range_n->v.min; - - // parse tags - for (U64 info_off = cu.tags_range.min; info_off < cu.tags_range.max; /* empty */) { - Temp tag_temp = temp_begin(scratch.arena); - - DW_Tag tag = dw_tag_from_info_offset_cu(tag_temp.arena, input, &cu, ext_arr[comp_idx], info_off); - - // parse attribs - for (DW_AttribNode *attrib_node = tag.attribs.first; attrib_node != 0; attrib_node = attrib_node->next) { - DW_Attrib *attrib = &attrib_node->v; - B32 is_sect_offset = attrib->value_class == DW_AttribClass_LocListPtr || (attrib->value_class == DW_AttribClass_LocList && attrib->form_kind == DW_Form_SecOffset); - B32 is_sect_index = attrib->value_class == DW_AttribClass_LocList && attrib->form_kind == DW_Form_LocListx; - if (is_sect_offset) { - u64_list_push(scratch.arena, &loc_lists[comp_idx], attrib->value.v[0]); - } else if (is_sect_index) { - // TODO: support for section indexing - } - } - - // advance to next tag - info_off = tag.next_info_off; - - temp_end(tag_temp); - } - - temp_end(comp_temp); - } - - void *base = dw_base_from_sec(input, DW_Section_Loc); - Rng1U64 range = dw_range_from_sec(input, DW_Section_Loc); - - rd_printf(".debug_loc"); - rd_indent(); - rd_printf("%-8s %-8s %-8s %s", "Offset", "Min", "Max", "Expression"); - for (U32 comp_idx = 0; comp_idx < cu_range_list.count; ++comp_idx) { - Temp locs_temp = temp_begin(scratch.arena); - - DW_Version ver = ver_arr[comp_idx]; - DW_Ext ext = ext_arr[comp_idx]; - - U64Array locs = u64_array_from_list(locs_temp.arena, &loc_lists[comp_idx]); - u64_array_sort(locs.count, locs.v); - - U64Array locs_set = remove_duplicates_u64_array(locs_temp.arena, locs); - U64 address_size = address_sizes[comp_idx]; - U64 base_selector = (address_size == 8) ? max_U64 : max_U32; - - for (U64 loc_idx = 0; loc_idx < locs_set.count; ++loc_idx) { - U64 base_address = address_bases[comp_idx]; - for (U64 cursor = locs_set.v[loc_idx]; cursor < dim_1u64(range); /* empty */) { - Temp range_temp = temp_begin(arena); - - String8List list = {0}; - - // offset - str8_list_pushf(range_temp.arena, &list, "%08llx", cursor); - - // parse entry - U64 v0 = 0, v1 = 0; - cursor += dw_based_range_read(base, range, cursor, address_size, &v0); - cursor += dw_based_range_read(base, range, cursor, address_size, &v1); - - B32 is_list_end = v0 == 0 && v1 == 0; - if (is_list_end) { - str8_list_pushf(range_temp.arena, &list, ""); - } else if (v0 == base_selector) { - base_address = v1; - } else { - U16 expr_size = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &expr_size); - Rng1U64 expr_range = rng_1u64(range.min+cursor, range.min+cursor+expr_size); - cursor += expr_size; - - // format dwarf expression - B32 is_dwarf64 = (address_size == 8); - String8 raw_expr = str8((U8*)base+expr_range.min, dim_1u64(expr_range)); - String8 expression = dw_format_expression_single_line(range_temp.arena, raw_expr, cu_bases[comp_idx], address_size, arch, ver, ext, input->sec[DW_Section_Loc].mode); - - // push entry - U64 min = base_address + v0; - U64 max = base_address + v1; - str8_list_pushf(range_temp.arena, &list, "%08llx %08llx %S", min, max, expression); - } - - // print entry - String8 print = str8_list_join(range_temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", print); - - // cleanup temp - temp_end(range_temp); - - // exit check - if (is_list_end) { - break; - } - } - } - - temp_end(locs_temp); - } - rd_unindent(); - - rd_unindent(); - scratch_end(scratch); -#endif -} - -internal void -dw_print_debug_ranges(Arena *arena, String8List *out, String8 indent, DW_Input *input, Arch arch, ExecutableImageKind image_type, B32 relaxed) -{ - NotImplemented; -#if 0 - DW_Section ranges = input->sec[DW_Section_Ranges]; - void *base = dw_base_from_sec(input, DW_Section_Ranges); - Rng1U64 range = dw_range_from_sec(input, DW_Section_Ranges); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - Rng1U64List cu_range_list = dw_comp_unit_ranges_from_info(scratch.arena, sections->v[DW_Section_Info]); - - // parse debug_info for attributes with LOCLIST and store .debug_loc offsets - U64List *loc_lists = push_array(scratch.arena, U64List, cu_range_list.count); - U64 *address_sizes = push_array(scratch.arena, U64, cu_range_list.count); - U64 *address_bases = push_array(scratch.arena, U64, cu_range_list.count); - - { - U64 comp_idx = 0; - for (Rng1U64Node *cu_range_n = cu_range_list.first; cu_range_n != 0; cu_range_n = cu_range_n->next, ++comp_idx) { - Rng1U64 cu_range = cu_range_n->v; - DW_CompUnit cu = dw_comp_unit_from_info_offset(scratch.arena, sections, cu_range.min, relaxed); - - // store info about comp unit - address_sizes[comp_idx] = cu.address_size; - address_bases[comp_idx] = cu.base_addr; - - // parse tags - for (U64 info_off = cu.tags_range.min; info_off < cu.tags_range.max; /* empty */) { - DW_Tag tag = dw_tag_from_info_offset_cu(scratch.arena, sections, &cu, info_off); - - // parse attribs - for (DW_AttribNode *attrib_node = tag.attribs.first; attrib_node != 0; attrib_node = attrib_node->next) { - DW_Attrib *attrib = &attrib_node->v; - B32 is_sect_offset = attrib->value_class == DW_AttribClass_RngListPtr || (attrib->value_class == DW_AttribClass_RngList && attrib->form_kind == DW_Form_SecOffset); - B32 is_sect_index = attrib->value_class == DW_AttribClass_RngList && attrib->form_kind == DW_Form_RngListx; - if (is_sect_offset) { - u64_list_push(scratch.arena, &loc_lists[comp_idx], attrib->value.v[0]); - } else if (is_sect_index) { - // TODO: support for section indexing - } - } - - info_off = tag.next_info_off; - } - } - } - - rd_printf("# %S", sections->v[DW_Section_Ranges].name); - rd_indent(); - rd_printf("%-8s %-8s %-8s", "Offset", "Min", "Max"); - for (U32 comp_idx = 0; comp_idx < cu_range_list.count; ++comp_idx) { - U64Array locs = u64_array_from_list(scratch.arena, &loc_lists[comp_idx]); - u64_array_sort(locs.count, locs.v); - U64Array locs_set = remove_duplicates_u64_array(scratch.arena, locs); - U64 address_size = address_sizes[comp_idx]; - U64 base_selector = (address_size == 8) ? max_U64 : max_U32; - - for (U64 loc_idx = 0; loc_idx < locs_set.count; ++loc_idx) { - U64 base_address = address_bases[comp_idx]; - for (U64 cursor = locs_set.v[loc_idx]; cursor < dim_1u64(range); /* empty */) { - Temp range_temp = temp_begin(scratch.arena); - - String8List list = {0}; - - // offset - str8_list_pushf(range_temp.arena, &list, "%08llx", cursor); - - // parse entry - U64 v0 = 0, v1 = 0; - cursor += dw_based_range_read(base, range, cursor, address_size, &v0); - cursor += dw_based_range_read(base, range, cursor, address_size, &v1); - - B32 is_list_end = v0 == 0 && v1 == 0; - if (is_list_end) { - str8_list_pushf(range_temp.arena, &list, ""); - } else if (v0 == base_selector) { - base_address = v1; - } else { - // push entry - U64 min = base_address + v0; - U64 max = base_address + v1; - str8_list_pushf(range_temp.arena, &list, "%08llx %08llx", min, max); - } - - // print entry - String8 print = str8_list_join(range_temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", print); - - temp_end(range_temp); - - // exit check - if (is_list_end) { - break; - } - } - } - } -#endif -} - -internal void -dw_print_debug_aranges(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - NotImplemented; -#if 0 - void *base = dw_base_from_sec(sections, DW_Section_ARanges); - Rng1U64 range = dw_range_from_sec(sections, DW_Section_ARanges); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", sections->v[DW_Section_ARanges].name); - rd_indent(); - for (U64 cursor = 0; cursor < dim_1u64(range); ) { - U64 unit_length = 0; - DW_Version version = 0; - U64 debug_info_offset = 0; - U8 address_size = 0; - U8 segment_selector_size = 0; - - cursor += dw_based_range_read_length(base, range, cursor, &unit_length); - U64 unit_opl = cursor + unit_length; - cursor += dw_based_range_read_struct(base, range, cursor, &version); - - B32 is_dwarf64 = unit_length >= max_U32; - U64 int_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); - cursor += dw_based_range_read(base, range, cursor, int_size, &debug_info_offset); - - cursor += dw_based_range_read_struct(base, range, cursor, &address_size); - cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); - - U64 tuple_size = address_size * 2 + segment_selector_size; - U64 bytes_too_far_past_boundary = cursor % tuple_size; - if (bytes_too_far_past_boundary > 0) { - cursor += tuple_size - bytes_too_far_past_boundary; - } - - rd_printf("Unit length: %llu", unit_length); - rd_printf("Version: %u", version); - rd_printf("Debug info offset: %#llx", debug_info_offset); - rd_printf("Address size: %u", address_size); - rd_printf("Segment selector size: %u", segment_selector_size); - - if (version != DW_Version_2) { - rd_warningf("Version value must be 2 (DWARF5 sepc, Feb 13, 2017)"); - } - - rd_indent(); - rd_printf("%-8s %-8s", "Offset", "Range"); - for (; cursor < unit_opl; ) { - Temp temp = temp_begin(arena); - - String8List list = {0}; - - str8_list_pushf(temp.arena, &list, "%08llx", cursor); - - U64 segment_selector = 0; - U64 address = 0; - U64 length = 0; - cursor += dw_based_range_read(base, range, cursor, segment_selector_size, &segment_selector); - cursor += dw_based_range_read(base, range, cursor, address_size, &address); - cursor += dw_based_range_read(base, range, cursor, address_size, &length); - - if (segment_selector == 0 && address == 0 && length == 0) { - str8_list_pushf(temp.arena, &list, ""); - } else { - if (segment_selector != 0) { - str8_list_pushf(temp.arena, &list, "%02llu:", segment_selector); - } - str8_list_pushf(temp.arena, &list, "%llx-%llx", address, address+length); - } - - String8 print = str8_list_join(temp.arena, &list, &(StringJoin){.sep=str8_lit(" ") }); - rd_printf("%S", print); - - temp_end(temp); - } - rd_unindent(); - rd_newline(); - } - rd_unindent(); - - scratch_end(scratch); -#endif -} - -internal void -dw_print_debug_addr(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - NotImplemented; -#if 0 - void *base = dw_base_from_sec(sections, DW_Section_Addr); - Rng1U64 range = dw_range_from_sec(sections, DW_Section_Addr); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", sections->v[DW_Section_Addr].name); - rd_indent(); - for (U64 cursor = 0; cursor < dim_1u64(range); ) { - U64 unit_length = 0; - DW_Version version = 0; - U8 address_size = 0; - U8 segment_selector_size = 0; - - U64 unit_offset = cursor; - cursor += dw_based_range_read_length(base, range, cursor, &unit_length); - - U64 unit_opl = cursor + unit_length; - cursor += dw_based_range_read_struct(base, range, cursor, &version); - cursor += dw_based_range_read_struct(base, range, cursor, &address_size); - cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); - - U64 tuple_size = address_size * 2 + segment_selector_size; - U64 bytes_too_far_past_boundary = cursor % tuple_size; - if (bytes_too_far_past_boundary > 0) { - cursor += tuple_size - bytes_too_far_past_boundary; - } - - rd_printf("Unit @ %#llx, length %llu", unit_offset, unit_length); - rd_printf("Version: %u", version); - rd_printf("Address size: %u", address_size); - rd_printf("Segment selector size: %u", segment_selector_size); - - if (version != DW_Version_2) { - rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); - } - - rd_indent(); - rd_printf("%-8s %-8s", "Offset", "Address"); - for (; cursor < unit_opl; ) { - Temp temp = temp_begin(arena); - - String8List list = {0}; - - str8_list_pushf(temp.arena, &list, "%08X", cursor); - - U64 segment_selector = 0; - U64 address = 0; - cursor += dw_based_range_read(base, range, cursor, segment_selector_size, &segment_selector); - cursor += dw_based_range_read(base, range, cursor, address_size, &address); - - if (segment_selector == 0 && address == 0) { - str8_list_pushf(temp.arena, &list, ""); - } else { - if (segment_selector != 0) { - str8_list_pushf(temp.arena, &list, "%02u:", segment_selector); - } - str8_list_pushf(temp.arena, &list, "%llx", address); - } - - String8 print = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", print); - - temp_end(temp); - } - rd_unindent(); - rd_newline(); - } - rd_unindent(); - - scratch_end(scratch); -#endif -} - -internal U64 -dw_based_range_read_address(void *base, Rng1U64 range, U64 offset, Rng1U64Array segment_ranges, U8 segment_selector_size, U8 address_size, U64 *address_out) -{ - U64 read_offset = offset; - - // read segment - U64 segment_selector = 0; - read_offset += dw_based_range_read(base, range, read_offset, segment_selector_size, &segment_selector); - - // read address - U64 address = 0; - read_offset += dw_based_range_read(base, range, read_offset, address_size, &address); - - // apply segment offset - B32 is_address_segment_relative = segment_selector_size > 0; - if (is_address_segment_relative) { - if (segment_selector < segment_ranges.count) { - address += segment_ranges.v[segment_selector].min; - } else { - Assert(!"invalid segment selector"); - } - } - - U64 read_size = (read_offset - offset); - return read_size; -} - -internal void -dw_print_debug_loclists(Arena *arena, String8List *out, String8 indent, DW_Input *input, Rng1U64Array segment_virtual_ranges, Arch arch) -{ - NotImplemented; -#if 0 - void *base = dw_base_from_sec(sections, DW_Section_LocLists); - Rng1U64 range = dw_range_from_sec(sections, DW_Section_LocLists); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", sections->v[DW_Section_LocLists].name); - rd_indent(); - for (U64 cursor = 0; cursor < dim_1u64(range); ) { - U64 unit_offset = cursor; - U64 unit_length = 0; - cursor += dw_based_range_read_length(base, range, cursor, &unit_length); - - U64 unit_opl = cursor + unit_length; - DW_Version version = 0; - U8 address_size = 0; - U8 segment_selector_size = 0; - U32 offset_entry_count = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &version); - cursor += dw_based_range_read_struct(base, range, cursor, &address_size); - cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); - cursor += dw_based_range_read_struct(base, range, cursor, &offset_entry_count); - - U64 past_header_offset = cursor; - B32 is_dwarf64 = unit_length > max_U32; - U64 offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); - - rd_printf("Unit @ %#llx, length %llu", unit_offset, unit_length); - rd_printf("Version: %u", version); - rd_printf("Address size: %u", address_size); - rd_printf("Segment selector size: %u", segment_selector_size); - rd_printf("Offset entry count: %u", offset_entry_count); - if (version != DW_Version_5) { - rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); - } - - if (offset_entry_count > 0) { - rd_printf("Offsets:"); - rd_indent(); - rd_printf("%-8s %-8s", "Index", "Offset"); - for (U64 offset_idx = 0; offset_idx < offset_entry_count; ++offset_idx) { - U64 offset = 0; - cursor += dw_based_range_read(base, range, cursor, offset_size, &offset); - rd_printf("%-8llu %llx", offset_idx, offset+past_header_offset); - } - rd_unindent(); - } - - rd_printf("Locations:"); - rd_indent(); - rd_printf("%-8s %-8s", "Offset", "Location"); - for (; cursor < unit_opl; ) { - Temp temp = temp_begin(arena); - - String8List list = {0}; - - str8_list_pushf(temp.arena, &list, "%08llx", cursor); - - U8 kind = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &kind); - str8_list_pushf(temp.arena, &list, "DW_LLE_%S", dw_string_from_loc_list_entry_kind(temp.arena, kind)); - - B32 has_loc_desc = 0; - switch (kind) { - case DW_LocListEntryKind_EndOfList: - break; - case DW_LocListEntryKind_DefaultLocation: { - has_loc_desc = 1; - } break; - case DW_LocListEntryKind_BaseAddress: { - U64 base_address = 0; - cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &base_address); - str8_list_pushf(temp.arena, &list, "%llx", base_address); - } break; - case DW_LocListEntryKind_StartLength: { - U64 start = 0; - U64 length = 0; - cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &start); - cursor += dw_based_range_read_uleb128(base, range, cursor, &length); - str8_list_pushf(temp.arena, &list, "%llx, %llx", start, length); - } break; - case DW_LocListEntryKind_StartEnd: { - U64 start = 0; - U64 end = 0; - cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &start); - cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &end); - str8_list_pushf(temp.arena, &list, "%llx, %llx", start, end); - } break; - case DW_LocListEntryKind_BaseAddressX: { - U64 base_addressx = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &base_addressx); - str8_list_pushf(temp.arena, &list, "%llx", base_addressx); - } break; - case DW_LocListEntryKind_StartXEndX: { - U64 startx = 0; - U64 endx = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); - cursor += dw_based_range_read_uleb128(base, range, cursor, &endx); - str8_list_pushf(temp.arena, &list, "%llx, %llx", startx, endx); - } break; - case DW_LocListEntryKind_OffsetPair: { - U64 a = 0; - U64 b = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &a); - cursor += dw_based_range_read_uleb128(base, range, cursor, &b); - str8_list_pushf(temp.arena, &list, "%llx, %llx", a, b); - - U8 expr_length = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &expr_length); - - String8 raw_expr = str8((U8*)base+cursor, expr_length); - cursor += expr_length; - - // TODO: we need actual cu base to format expression correctly - NotImplemented; - String8 expression = dw_format_expression_single_line(temp.arena, raw_expr, 0, address_size, arch, version, DW_Ext_Null, is_dwarf64); - str8_list_pushf(temp.arena, &list, "(%S)", expression); - } break; - case DW_LocListEntryKind_StartXLength: { - U64 startx = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); - U64 length = 0; - if (version < DW_Version_5) { - // pre-standard length - cursor += dw_based_range_read(base, range, cursor, sizeof(U32), &length); - } else { - cursor += dw_based_range_read_uleb128(base, range, cursor, &length); - } - } break; - } - - String8 print = str8_list_join(temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", print); - - temp_end(temp); - } - rd_unindent(); - rd_newline(); - } - rd_unindent(); - - scratch_end(scratch); -#endif -} - -internal void -dw_print_debug_rnglists(Arena *arena, String8List *out, String8 indent, DW_Input *input, Rng1U64Array segment_ranges) -{ - NotImplemented; -#if 0 - void *base = dw_base_from_sec(sections, DW_Section_RngLists); - Rng1U64 range = dw_range_from_sec(sections, DW_Section_RngLists); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", sections->v[DW_Section_RngLists].name); - rd_indent(); - for (U64 cursor = 0; cursor < dim_1u64(range); ) { - U64 unit_offset = cursor; - U64 unit_length = 0; - cursor += dw_based_range_read_length(base, range, cursor, &unit_length); - U64 unit_opl = cursor + unit_length; - DW_Version version = 0; - U8 address_size = 0; - U8 segment_selector_size = 0; - U32 offset_entry_count = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &version); - cursor += dw_based_range_read_struct(base, range, cursor, &address_size); - cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); - cursor += dw_based_range_read_struct(base, range, cursor, &offset_entry_count); - - U64 past_header_offset = cursor; - B32 is_dwarf64 = unit_length > max_U32; - U64 offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); - - rd_printf("Unit @ %#llx, length %llu", unit_offset, unit_length); - rd_printf("Version: %u", version); - rd_printf("Address size: %u", address_size); - rd_printf("Segment selector size: %u", segment_selector_size); - rd_printf("Offset entry count: %u", offset_entry_count); - - if (version != DW_Version_5) { - rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); - } - - if (offset_entry_count > 0) { - rd_printf("Offsets:"); - rd_indent(); - rd_printf("%-8s %-8s", "Index", "Offset"); - for (U64 offset_idx = 0; offset_idx < offset_entry_count; ++offset_idx) { - U64 offset = 0; - cursor += dw_based_range_read(base, range, cursor, offset_size, &offset); - rd_printf("%-8llu %llx", offset_idx, offset+past_header_offset); - } - rd_unindent(); - } - - rd_printf("Ranges:"); - rd_indent(); - rd_printf("%-8s %-8s", "Offset", "Range"); - for (; cursor < unit_opl; ) { - Temp temp = temp_begin(scratch.arena); - - String8List list = {0}; - - // offset - str8_list_pushf(temp.arena, &list, "%08llx", cursor); - - // opcode mnemonic - U8 kind = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &kind); - str8_list_pushf(temp.arena, &list, "DW_RLE_%S", dw_string_from_rng_list_entry_kind(temp.arena, kind)); - - // operand - switch (kind) { - case DW_RngListEntryKind_EndOfList: { - // empty - } break; - case DW_RngListEntryKind_BaseAddressX: { - U64 base_addressx = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &base_addressx); - str8_list_pushf(temp.arena, &list, "%llx", base_addressx); - } break; - case DW_RngListEntryKind_BaseAddress: { - U64 base_address = 0; - cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &base_address); - str8_list_pushf(temp.arena, &list, "%llx", base_address); - } break; - case DW_RngListEntryKind_OffsetPair: { - U64 min = 0; - U64 max = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &min); - cursor += dw_based_range_read_uleb128(base, range, cursor, &max); - str8_list_pushf(temp.arena, &list, "%llx, %llx", min, max); - } break; - case DW_RngListEntryKind_StartxLength: { - U64 startx = 0; - U64 length = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); - cursor += dw_based_range_read_uleb128(base, range, cursor, &length); - str8_list_pushf(temp.arena, &list, "%llx, %llx", startx, length); - } break; - case DW_RngListEntryKind_StartxEndx: { - U64 startx = 0; - U64 endx = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); - cursor += dw_based_range_read_uleb128(base, range, cursor, &endx); - str8_list_pushf(temp.arena, &list, "%llx, %llx", startx, endx); - } break; - case DW_RngListEntryKind_StartEnd: { - U64 start = 0; - U64 end = 0; - cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &start); - cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &end); - str8_list_pushf(temp.arena, &list, "%llx, %llx", start, end); - } break; - case DW_RngListEntryKind_StartLength: { - U64 start = 0; - U64 length = 0; - cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &start); - cursor += dw_based_range_read_uleb128(base, range, cursor, &length); - str8_list_pushf(temp.arena, &list, "%llx, %llx", start, length); - } break; - } - - // output row - String8 print = str8_list_join(temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", print); - - temp_end(temp); - } - rd_unindent(); - rd_newline(); - } - rd_unindent(); - - scratch_end(scratch); -#endif -} - -internal void -dw_format_string_table(Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_SectionKind sec) -{ - NotImplemented; -#if 0 - void *base = dw_base_from_sec(sections, sec); - Rng1U64 range = dw_range_from_sec(sections, sec); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", sections->v[sec].name); - rd_indent(); - for (U64 cursor = 0; cursor < dim_1u64(range); ) { - U64 unit_offset = cursor; - - U64 unit_length = 0; - cursor += dw_based_range_read_length(base, range, cursor, &unit_length); - U64 unit_opl = cursor + unit_length; - - DW_Version version = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &version); - - if (version != DW_Version_2) { - rd_warningf("Version value must be 2"); - } - - B32 is_dwarf64 = unit_length > max_U32; - U32 sec_offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); - - U64 debug_info_offset = 0, debug_info_length = 0; - cursor += dw_based_range_read(base, range, cursor, sec_offset_size, &debug_info_offset); - cursor += dw_based_range_read(base, range, cursor, sec_offset_size, &debug_info_length); - - rd_printf("Unit @ %#llx, length %llu", unit_offset, unit_length); - rd_printf("Version: %u", version); - rd_printf("Debug info offset: %#llx", debug_info_offset); - rd_printf("Debug info length: %#llx", debug_info_length); - - rd_printf("Entries:"); - rd_indent(); - rd_printf("%-8s %-8s", "Offset", "String"); - for (; cursor < unit_opl; ) { - U64 info_offset = 0; - cursor += dw_based_range_read(base, range, cursor, sec_offset_size, &info_offset); - String8 string = dw_based_range_read_string(base, range, cursor); - cursor += (string.size + 1); - - rd_printf("%08llx %S", info_offset, string); - } - rd_unindent(); - rd_newline(); - } - rd_unindent(); - - scratch_end(scratch); -#endif -} - -internal void -dw_print_debug_pubnames(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - dw_format_string_table(arena, out, indent, input, DW_Section_PubNames); -} - -internal void -dw_print_debug_pubtypes(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - dw_format_string_table(arena, out, indent, input, DW_Section_PubTypes); -} - -internal void -dw_print_debug_line_str(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - NotImplemented; -#if 0 - void *base = dw_base_from_sec(sections, DW_Section_LineStr); - Rng1U64 range = dw_range_from_sec(sections, DW_Section_LineStr); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", sections->v[DW_Section_LineStr].name); - rd_indent(); - - rd_printf("%-8s %-8s", "Offset", "String"); - for (U64 cursor = 0; cursor < dim_1u64(range); ) { - U64 offset = cursor; - String8 string = dw_based_range_read_string(base, range, cursor); - cursor += (string.size + 1); - rd_printf("%08llX %S", offset, string); - } - rd_unindent(); - - scratch_end(scratch); -#endif -} - -internal void -dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - NotImplemented; -#if 0 - void *base = dw_base_from_sec(sections, DW_Section_StrOffsets); - Rng1U64 range = dw_range_from_sec(sections, DW_Section_StrOffsets); - - void *debug_str_base = dw_base_from_sec(sections, DW_Section_Str); - Rng1U64 debug_str_range = dw_range_from_sec(sections, DW_Section_Str); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", sections->v[DW_Section_StrOffsets].name); - rd_indent(); - for (U64 cursor = 0; cursor < dim_1u64(range); ) { - U64 unit_offset = cursor; - - U64 unit_length = 0; - cursor += dw_based_range_read_length(base, range, cursor, &unit_length); - U64 unit_opl = cursor + unit_length; - - DW_Version version = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &version); - if (version != DW_Version_5) { - rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); - } - - U16 padding = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &padding); - if (padding != 0) { - rd_warningf("unexpected padding byte"); - } - - B32 is_dwarf64 = unit_length > max_U32; - U32 offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); - - rd_printf("Unit @ %#llX, length %lld", unit_offset, unit_length); - rd_printf("Version: %d", version); - rd_printf("Padding: %d", padding); - rd_indent(); - rd_printf("%-8s %-8s", "@", "Offset"); - for (; cursor < unit_opl; ) { - U64 read_at = cursor; - U64 offset = 0; - cursor += dw_based_range_read(base, range, cursor, offset_size, &offset); - rd_printf("%08llx %08llx", read_at, offset); - if (dim_1u64(debug_str_range) > 0) { - String8 string = dw_based_range_read_string(debug_str_base, debug_str_range, offset); - rd_printf(" %S", string); - } - rd_newline(); - } - rd_unindent(); - rd_newline(); - } - rd_unindent(); - - scratch_end(scratch); -#endif -} - -internal void -dw_format(Arena *arena, String8List *out, String8 indent, RD_Option opts, DW_Input *input, Arch arch, ExecutableImageKind image_type) -{ - Temp scratch = scratch_begin(&arena, 1); - - Rng1U64Array segment_vranges = {0}; - - DW_ListUnitInput lu_input = dw_list_unit_input_from_input(scratch.arena, input); - B32 relaxed = !!(opts & RD_Option_RelaxDwarfParser); - - if (opts & RD_Option_DebugInfo) { - dw_print_debug_info(arena, out, indent, input, lu_input, arch, relaxed); - } - if (opts & RD_Option_DebugAbbrev) { - dw_print_debug_abbrev(arena, out, indent, input); - } - if (opts & RD_Option_DebugLine) { - dw_print_debug_line(arena, out, indent, input, lu_input, relaxed); - } - if (opts & RD_Option_DebugStr) { - dw_print_debug_str(arena, out, indent, input); - } - if (opts & RD_Option_DebugLoc) { - dw_print_debug_loc(arena, out, indent, input, arch, image_type, relaxed); - } - if (opts & RD_Option_DebugRanges) { - dw_print_debug_ranges(arena, out, indent, input, arch, image_type, relaxed); - } - if (opts & RD_Option_DebugARanges) { - dw_print_debug_aranges(arena, out, indent, input); - } - if (opts & RD_Option_DebugAddr) { - dw_print_debug_addr(arena, out, indent, input); - } - if (opts & RD_Option_DebugLocLists) { - dw_print_debug_loclists(arena, out, indent, input, segment_vranges, arch); - } - if (opts & RD_Option_DebugRngLists) { - dw_print_debug_rnglists(arena, out, indent, input, segment_vranges); - } - if (opts & RD_Option_DebugPubNames) { - dw_print_debug_pubnames(arena, out, indent, input); - } - if (opts & RD_Option_DebugPubTypes) { - dw_print_debug_pubtypes(arena, out, indent, input); - } - if (opts & RD_Option_DebugLineStr) { - dw_print_debug_line_str(arena, out, indent, input); - } - if (opts & RD_Option_DebugStrOffsets) { - dw_print_debug_str_offsets(arena, out, indent, input); - } - - scratch_end(scratch); -} - // CodeView internal String8 diff --git a/src/raddump/raddump.h b/src/raddump/raddump.h index 84271d08..813e751c 100644 --- a/src/raddump/raddump.h +++ b/src/raddump/raddump.h @@ -187,29 +187,6 @@ internal void rd_print_disasm (Arena *arena, String8List *o internal String8 rd_format_hex_array(Arena *arena, U8 *ptr, U64 size); internal void rd_print_raw_data (Arena *arena, String8List *out, String8 indent, U64 bytes_per_row, U64 marker_count, RD_Marker *markers, String8 raw_data); -// DWARF - -internal String8List dw_string_list_from_expression (Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); -internal String8 dw_format_expression_single_line(Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); -internal String8 dw_format_eh_ptr_enc (Arena *arena, DW_EhPtrEnc enc); -internal void dw_print_cfi_program (Arena *arena, String8List *out, String8 indent, String8 raw_data, DW_CIEUnpacked *cie, DW_EhPtrCtx *ptr_ctx, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); - -internal void dw_print_eh_frame (Arena *arena, String8List *out, String8 indent, String8 raw_eh_frame, Arch arch, DW_Version ver, DW_Ext ext, DW_EhPtrCtx *ptr_ctx); -internal void dw_print_debug_info (Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, Arch arch, B32 relaxed); -internal void dw_print_debug_abbrev (Arena *arena, String8List *out, String8 indent, DW_Input *input); -internal void dw_print_debug_line (Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, B32 relaxed); -internal void dw_print_debug_str (Arena *arena, String8List *out, String8 indent, DW_Input *input); -internal void dw_print_debug_loc (Arena *arena, String8List *out, String8 indent, DW_Input *input, Arch arch, ExecutableImageKind image_type, B32 relaxed); -internal void dw_print_debug_ranges (Arena *arena, String8List *out, String8 indent, DW_Input *input, Arch arch, ExecutableImageKind image_type, B32 relaxed); -internal void dw_print_debug_aranges (Arena *arena, String8List *out, String8 indent, DW_Input *input); -internal void dw_print_debug_addr (Arena *arena, String8List *out, String8 indent, DW_Input *input); -internal void dw_print_debug_loclists (Arena *arena, String8List *out, String8 indent, DW_Input *input, Rng1U64Array segment_vranges, Arch arch); -internal void dw_print_debug_rnglists (Arena *arena, String8List *out, String8 indent, DW_Input *input, Rng1U64Array segment_vranges); -internal void dw_print_debug_pubnames (Arena *arena, String8List *out, String8 indent, DW_Input *input); -internal void dw_print_debug_pubtypes (Arena *arena, String8List *out, String8 indent, DW_Input *input); -internal void dw_print_debug_line_str (Arena *arena, String8List *out, String8 indent, DW_Input *input); -internal void dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 indent, DW_Input *input); - // CodeView internal void cv_print_binary_annots (Arena *arena, String8List *out, String8 indent, CV_Arch arch, String8 raw_data); From 058c1454e2638fd8005fdf50d4159361d92535d3 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 07:25:35 -0700 Subject: [PATCH 011/372] eliminate all extra enums files for formats --- src/codeview/codeview.c | 956 ++++++++++++++++++++++++++++++++++ src/codeview/codeview.h | 45 ++ src/codeview/codeview_enum.c | 962 ----------------------------------- src/codeview/codeview_enum.h | 51 -- src/coff/coff.c | 477 +++++++++++++++++ src/coff/coff.h | 23 + src/coff/coff_enum.c | 480 ----------------- src/coff/coff_enum.h | 27 - src/linker/lnk.c | 4 - src/msvc_crt/msvc_crt.c | 33 ++ src/msvc_crt/msvc_crt.h | 11 + src/msvc_crt/msvc_crt_enum.c | 34 -- src/msvc_crt/msvc_crt_enum.h | 9 - src/raddump/raddump_main.c | 8 - 14 files changed, 1545 insertions(+), 1575 deletions(-) delete mode 100644 src/codeview/codeview_enum.c delete mode 100644 src/codeview/codeview_enum.h delete mode 100644 src/coff/coff_enum.c delete mode 100644 src/coff/coff_enum.h delete mode 100644 src/msvc_crt/msvc_crt_enum.c delete mode 100644 src/msvc_crt/msvc_crt_enum.h diff --git a/src/codeview/codeview.c b/src/codeview/codeview.c index 742ead97..7f8cdea6 100644 --- a/src/codeview/codeview.c +++ b/src/codeview/codeview.c @@ -166,6 +166,9 @@ cv_map_encoded_base_pointer(CV_Arch arch, U32 encoded_frame_reg) } +//////////////////////////////// +//~ rjf: Enum -> String + internal String8 cv_string_from_inline_range_kind(CV_InlineRangeKind kind) { @@ -176,3 +179,956 @@ cv_string_from_inline_range_kind(CV_InlineRangeKind kind) return str8_zero(); } +internal String8 +cv_string_from_type_index_source(CV_TypeIndexSource ti_source) +{ + switch (ti_source) { + case CV_TypeIndexSource_NULL: return str8_lit(""); break; + case CV_TypeIndexSource_TPI: return str8_lit("TPI"); break; + case CV_TypeIndexSource_IPI: return str8_lit("IPI"); break; + case CV_TypeIndexSource_COUNT: break; + } + return str8_zero(); +} + +internal String8 +cv_string_from_language(CV_Language x) +{ + switch (x) { +#define X(_n,_i) case _i: return str8_lit(Stringify(_n)); + CV_LanguageXList(X) +#undef X + } + return str8_zero(); +} + +internal String8 +cv_string_from_numeric(Arena *arena, CV_NumericParsed num) +{ + String8 result = str8_zero(); + switch (num.kind) { + case CV_NumericKind_FLOAT16: NotImplemented; break; // TODO: format float16 + case CV_NumericKind_FLOAT32: result = push_str8f(arena, "%f", (F64)(*(F32*)num.val)); break; + case CV_NumericKind_FLOAT48: NotImplemented; break; // TODO: format float48 + case CV_NumericKind_FLOAT64: result = push_str8f(arena, "%f", *(F64*)num.val); break; + case CV_NumericKind_FLOAT80: NotImplemented; break; // TODO: format float80 + case CV_NumericKind_FLOAT128: NotImplemented; break; // TODO: format float128 + case CV_NumericKind_CHAR: result = push_str8f(arena, "%d", *(S8 *)num.val); break; + case CV_NumericKind_SHORT: result = push_str8f(arena, "%d", *(S16*)num.val); break; + case CV_NumericKind_LONG: result = push_str8f(arena, "%d", *(S32*)num.val); break; + case CV_NumericKind_QUADWORD: result = push_str8f(arena, "%lld", *(S64*)num.val); break; + case CV_NumericKind_USHORT: result = push_str8f(arena, "%u", *(U16*)num.val); break; + case CV_NumericKind_ULONG: result = push_str8f(arena, "%u", *(U32*)num.val); break; + case CV_NumericKind_UQUADWORD: result = push_str8f(arena, "%llu", *(U64*)num.val); break; + } + return result; +} + +internal String8 +cv_string_from_reg_id(Arena *arena, CV_Arch arch, U32 id) +{ + String8 result = str8_zero(); + switch (arch) { + case CV_Arch_8086: { + switch (id) { +#define X(_N, _ID, ...) case _ID: result = str8_lit(Stringify(_N)); break; + CV_Reg_X86_XList(X) +#undef X + } + } break; + case CV_Arch_X64: { + switch (id) { +#define X(_N, _ID, ...) case _ID: result = str8_lit(Stringify(_N)); break; + CV_Reg_X64_XList(X) +#undef X + } + } break; + default: NotImplemented; break; + } + if (result.size == 0) { + result = push_str8f(arena, "%x", id); + } + return result; +} + +internal String8 +cv_string_from_member_access(CV_MemberAccess x) +{ + switch (x) { + case CV_MemberAccess_Null: break; + case CV_MemberAccess_Private: return str8_lit("Private"); + case CV_MemberAccess_Protected: return str8_lit("Protected"); + case CV_MemberAccess_Public: return str8_lit("Public"); + } + return str8_zero(); +} + +internal String8 +cv_string_from_method_prop(CV_MethodProp x) +{ + switch (x) { + case CV_MethodProp_Vanilla: return str8_lit("Vanilla"); + case CV_MethodProp_Virtual: return str8_lit("Virtual"); + case CV_MethodProp_Static: return str8_lit("Static"); + case CV_MethodProp_Friend: return str8_lit("Friend"); + case CV_MethodProp_Intro: return str8_lit("Intro"); + case CV_MethodProp_PureVirtual: return str8_lit("PureVirtual"); + case CV_MethodProp_PureIntro: return str8_lit("PureIntro"); + } + return str8_zero(); +} + +internal String8 +cv_string_from_hfa(CV_HFAKind x) +{ + switch (x) { + case CV_HFAKind_None: return str8_lit("None"); + case CV_HFAKind_Float: return str8_lit("Float"); + case CV_HFAKind_Double: return str8_lit("Double"); + case CV_HFAKind_Other: return str8_lit("Other"); + } + return str8_zero(); +} + +internal String8 +cv_string_from_mcom(CV_MoComUDTKind x) +{ + switch (x) { + case CV_MoComUDTKind_None: return str8_lit("None"); + case CV_MoComUDTKind_Ref: return str8_lit("Ref"); + case CV_MoComUDTKind_Value: return str8_lit("Value"); + case CV_MoComUDTKind_Interface: return str8_lit("Interface"); + } + return str8_zero(); +} + +internal String8 +cv_string_from_binary_opcode(CV_InlineBinaryAnnotation x) +{ + switch (x) { + case CV_InlineBinaryAnnotation_Null: break; + case CV_InlineBinaryAnnotation_CodeOffset: return str8_lit("CodeOffset"); + case CV_InlineBinaryAnnotation_ChangeCodeOffsetBase: return str8_lit("ChangeCodeOffsetBase"); + case CV_InlineBinaryAnnotation_ChangeCodeOffset: return str8_lit("ChangeCodeOffset"); + case CV_InlineBinaryAnnotation_ChangeCodeLength: return str8_lit("ChangeCodeLength"); + case CV_InlineBinaryAnnotation_ChangeFile: return str8_lit("ChangeFile"); + case CV_InlineBinaryAnnotation_ChangeLineOffset: return str8_lit("ChangeLineOffset"); + case CV_InlineBinaryAnnotation_ChangeLineEndDelta: return str8_lit("ChangeLineEndDelta"); + case CV_InlineBinaryAnnotation_ChangeRangeKind: return str8_lit("ChangeRangeKind"); + case CV_InlineBinaryAnnotation_ChangeColumnStart: return str8_lit("ChangeColumnStart"); + case CV_InlineBinaryAnnotation_ChangeColumnEndDelta: return str8_lit("ChangeColumnEndDelta"); + case CV_InlineBinaryAnnotation_ChangeCodeOffsetAndLineOffset: return str8_lit("ChangeCodeOffsetAndLineOffset"); + case CV_InlineBinaryAnnotation_ChangeCodeLengthAndCodeOffset: return str8_lit("ChangeCodeLengthAndCodeOffset"); + case CV_InlineBinaryAnnotation_ChangeColumnEnd: return str8_lit("ChangeColumnEnd"); + } + return str8_zero(); +} + +internal String8 +cv_string_from_thunk_ordinal(CV_ThunkOrdinal x) +{ + switch (x) { + case CV_ThunkOrdinal_NoType: return str8_lit("NoType"); + case CV_ThunkOrdinal_Adjustor: return str8_lit("Adjustor"); + case CV_ThunkOrdinal_VCall: return str8_lit("VCall"); + case CV_ThunkOrdinal_PCode: return str8_lit("PCode"); + case CV_ThunkOrdinal_Load: return str8_lit("Load"); + case CV_ThunkOrdinal_TrampIncremental: return str8_lit("TrampIncremental"); + case CV_ThunkOrdinal_TrampBranchIsland: return str8_lit("TrampBranchIsland"); + } + return str8_zero(); +} + +internal String8 +cv_string_from_frame_cookie_kind(CV_FrameCookieKind x) +{ + switch (x) { + case CV_FrameCookieKind_Copy: return str8_lit("Copy"); + case CV_FrameCookieKind_XorSP: return str8_lit("XorSP"); + case CV_FrameCookieKind_XorBP: return str8_lit("XorR13"); + } + return str8_zero(); +} + +internal String8 +cv_string_from_generic_style(CV_GenericStyle x) +{ + switch (x) { + case CV_GenericStyle_VOID: return str8_lit("VOID"); + case CV_GenericStyle_REG: return str8_lit("REG"); + case CV_GenericStyle_ICAN: return str8_lit("ICAN"); + case CV_GenericStyle_ICAF: return str8_lit("ICAF"); + case CV_GenericStyle_IRAN: return str8_lit("IRAN"); + case CV_GenericStyle_IRAF: return str8_lit("IRAF"); + case CV_GenericStyle_UNUSED: return str8_lit("UNUSED"); + } + return str8_zero(); +} + +internal String8 +cv_string_from_trampoline_kind(CV_TrampolineKind x) +{ + switch (x) { + case CV_TrampolineKind_Incremental: return str8_lit("Incremental"); + case CV_TrampolineKind_BranchIsland: return str8_lit("BranchIsland"); + } + return str8_zero(); +} + +internal String8 +cv_string_from_virtual_table_shape_kind(CV_VirtualTableShape x) +{ + switch (x) { + case CV_VirtualTableShape_Near: return str8_lit("Near"); + case CV_VirtualTableShape_Far: return str8_lit("Far"); + case CV_VirtualTableShape_Thin: return str8_lit("Thin"); + case CV_VirtualTableShape_Outer: return str8_lit("Outer"); + case CV_VirtualTableShape_Meta: return str8_lit("Meta"); + case CV_VirtualTableShape_Near32: return str8_lit("Near32"); + case CV_VirtualTableShape_Far32: return str8_lit("Far32"); + } + return str8_zero(); +} + +internal String8 +cv_string_from_call_kind(CV_CallKind x) +{ + switch (x) { + case CV_CallKind_NearC: return str8_lit("NearC"); + case CV_CallKind_FarC: return str8_lit("FarC"); + case CV_CallKind_NearPascal: return str8_lit("NearPascal"); + case CV_CallKind_FarPascal: return str8_lit("FarPascal"); + case CV_CallKind_NearFast: return str8_lit("NearFast"); + case CV_CallKind_FarFast: return str8_lit("FarFast"); + case CV_CallKind_UNUSED: return str8_lit("UNUSED"); + case CV_CallKind_NearStd: return str8_lit("NearStd"); + case CV_CallKind_FarStd: return str8_lit("FarStd"); + case CV_CallKind_NearSys: return str8_lit("NearSys"); + case CV_CallKind_FarSys: return str8_lit("FarSys"); + case CV_CallKind_This: return str8_lit("This"); + case CV_CallKind_Mips: return str8_lit("Mips"); + case CV_CallKind_Generic: return str8_lit("Generic"); + case CV_CallKind_Alpha: return str8_lit("Alpha"); + case CV_CallKind_PPC: return str8_lit("PPC"); + case CV_CallKind_HitachiSuperH: return str8_lit("HitachiSuperH"); + case CV_CallKind_Arm: return str8_lit("Arm"); + case CV_CallKind_AM33: return str8_lit("AM33"); + case CV_CallKind_TriCore: return str8_lit("TriCore"); + case CV_CallKind_HitachiSuperH5: return str8_lit("HitachiSuperH5"); + case CV_CallKind_M32R: return str8_lit("M32R"); + case CV_CallKind_Clr: return str8_lit("Clr"); + case CV_CallKind_Inline: return str8_lit("Inline"); + case CV_CallKind_NearVector: return str8_lit("NearVector"); + } + return str8_zero(); +} + +internal String8 +cv_string_from_member_pointer_kind(CV_MemberPointerKind x) +{ + switch (x) { + case CV_MemberPointerKind_Undef: return str8_lit("Undef"); + case CV_MemberPointerKind_DataSingle: return str8_lit("DataSingle"); + case CV_MemberPointerKind_DataMultiple: return str8_lit("DataMultiple"); + case CV_MemberPointerKind_DataVirtual: return str8_lit("DataVirtual"); + case CV_MemberPointerKind_DataGeneral: return str8_lit("DataGeneral"); + case CV_MemberPointerKind_FuncSingle: return str8_lit("FuncSingle"); + case CV_MemberPointerKind_FuncMultiple: return str8_lit("FuncMultiple"); + case CV_MemberPointerKind_FuncGeneral: return str8_lit("FuncGeneral"); + } + return str8_zero(); +} + +internal String8 +cv_string_from_pointer_kind(CV_PointerKind x) +{ + switch (x) { + case CV_PointerKind_Near: return str8_lit("Near"); + case CV_PointerKind_Far: return str8_lit("Far"); + case CV_PointerKind_Huge: return str8_lit("Huge"); + case CV_PointerKind_BaseSeg: return str8_lit("BaseSeg"); + case CV_PointerKind_BaseVal: return str8_lit("BaseVal"); + case CV_PointerKind_BaseSegVal: return str8_lit("BaseSegVal"); + case CV_PointerKind_BaseAddr: return str8_lit("BaseAddr"); + case CV_PointerKind_BaseSegAddr: return str8_lit("BaseSegAddr"); + case CV_PointerKind_BaseType: return str8_lit("BaseType"); + case CV_PointerKind_BaseSelf: return str8_lit("BaseSelf"); + case CV_PointerKind_Near32: return str8_lit("Near32"); + case CV_PointerKind_Far32: return str8_lit("Far32"); + case CV_PointerKind_64: return str8_lit("64Bit"); + } + return str8_zero(); +} + +internal String8 +cv_string_from_pointer_mode(CV_PointerMode x) +{ + switch (x) { + case CV_PointerMode_Ptr: return str8_lit("Ptr"); + case CV_PointerMode_LRef: return str8_lit("LRef"); + case CV_PointerMode_PtrMem: return str8_lit("PtrMem"); + case CV_PointerMode_PtrMethod: return str8_lit("PtrMethod"); + case CV_PointerMode_RRef: return str8_lit("RRef"); + } + return str8_zero(); +} + +internal String8 +cv_string_from_c13_checksum_kind(CV_C13ChecksumKind x) +{ + switch (x) { + case CV_C13ChecksumKind_Null: break; + case CV_C13ChecksumKind_MD5: return str8_lit("MD5"); + case CV_C13ChecksumKind_SHA1: return str8_lit("SHA1"); + case CV_C13ChecksumKind_SHA256: return str8_lit("SHA256"); + } + return str8_zero(); +} + +internal String8 +cv_string_from_label_kind(Arena *arena, CV_LabelKind x) +{ + switch (x) { + case CV_LabelKind_Near: return str8_lit("Near"); + case CV_LabelKind_Far: return str8_lit("Far"); + } + return push_str8f(arena, "%#x", x); +} + +internal String8 +cv_string_from_c13_subsection_kind(CV_C13SubSectionKind x) +{ + switch (x) { +#define X(_N, _ID) case CV_C13SubSectionKind_##_N: return str8_lit(Stringify(_N)); + CV_C13SubSectionKindXList(X) +#undef X + } + return str8_zero(); +} + +internal String8 +cv_string_from_modifier_flags(Arena *arena, CV_ModifierFlags x) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + if (x & CV_ModifierFlag_Const) { + str8_list_pushf(scratch.arena, &list, "Const"); + } + if (x & CV_ModifierFlag_Volatile) { + str8_list_pushf(scratch.arena, &list, "Volatile"); + } + if (x & CV_ModifierFlag_Unaligned) { + str8_list_pushf(scratch.arena, &list, "Unaligned"); + } + String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + scratch_end(scratch); + return result; +} + +internal String8 +cv_string_from_pointer_attribs(Arena *arena, CV_PointerAttribs x) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8List list = {0}; + if (x & CV_PointerAttrib_IsFlat) { + x &= ~CV_PointerAttrib_IsFlat; + str8_list_pushf(scratch.arena, &list, "IsFlat"); + } + if (x & CV_PointerAttrib_Volatile) { + x &= ~CV_PointerAttrib_Volatile; + str8_list_pushf(scratch.arena, &list, "Volatile"); + } + if (x & CV_PointerAttrib_Const) { + x &= ~CV_PointerAttrib_Const; + str8_list_pushf(scratch.arena, &list, "Const"); + } + if (x & CV_PointerAttrib_Unaligned) { + x &= ~CV_PointerAttrib_Unaligned; + str8_list_pushf(scratch.arena, &list, "Unaligned"); + } + if (x & CV_PointerAttrib_Restricted) { + x &= ~CV_PointerAttrib_Restricted; + str8_list_pushf(scratch.arena, &list, "Restricted"); + } + if (x & CV_PointerAttrib_MOCOM) { + x &= ~CV_PointerAttrib_MOCOM; + str8_list_pushf(scratch.arena, &list, "MOCOM"); + } + if (x & CV_PointerAttrib_LRef) { + x &= ~CV_PointerAttrib_LRef; + str8_list_pushf(scratch.arena, &list, "LRef"); + } + if (x & CV_PointerAttrib_RRef) { + x &= ~CV_PointerAttrib_RRef; + str8_list_pushf(scratch.arena, &list, "RRef"); + } + + CV_PointerKind kind = CV_PointerAttribs_Extract_Kind(x); + CV_PointerMode mode = CV_PointerAttribs_Extract_Mode(x); + U64 size = CV_PointerAttribs_Extract_Size(x); + + x &= ~(0x1f|(0x7<<5)|(0x3f<<13)); + + if (kind) { + String8 kind_str = cv_string_from_pointer_kind(kind); + str8_list_pushf(scratch.arena, &list, "Kind=%S", kind_str); + } + if (mode) { + String8 mode_str = cv_string_from_pointer_mode(mode); + str8_list_pushf(scratch.arena, &list, "Mode=%S", mode_str); + } + if (size) { + str8_list_pushf(scratch.arena, &list, "Size=%llu", size); + } + + if (x != 0) { + str8_list_pushf(scratch.arena, &list, "Unknown=%x", x); + } + + String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + scratch_end(scratch); + return result; +} + +internal String8 +cv_string_from_function_attribs(Arena *arena, CV_FunctionAttribs x) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + if (x & CV_FunctionAttrib_CxxReturnUDT) { + str8_list_pushf(scratch.arena, &list, "CxxReturnUDT"); + } + if (x & CV_FunctionAttrib_Constructor) { + str8_list_pushf(scratch.arena, &list, "Constructor"); + } + if (x & CV_FunctionAttrib_ConstructorVBase) { + str8_list_pushf(scratch.arena, &list, "ConstructorVBase"); + } + String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + scratch_end(scratch); + return result; +} + +internal String8 +cv_string_from_export_flags(Arena *arena, CV_ExportFlags x) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + if (x & CV_ExportFlag_Constant) { + str8_list_pushf(scratch.arena, &list, "Constant"); + } + if (x & CV_ExportFlag_Data) { + str8_list_pushf(scratch.arena, &list, "Data"); + } + if (x & CV_ExportFlag_Private) { + str8_list_pushf(scratch.arena, &list, "Private"); + } + if (x & CV_ExportFlag_NoName) { + str8_list_pushf(scratch.arena, &list, "NoName"); + } + if (x & CV_ExportFlag_Ordinal) { + str8_list_pushf(scratch.arena, &list, "Ordinal"); + } + if (x & CV_ExportFlag_Forwarder) { + str8_list_pushf(scratch.arena, &list, "Forwarder"); + } + String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + scratch_end(scratch); + return result; +} + +internal String8 +cv_string_from_sepcode(Arena *arena, CV_SepcodeFlags x) +{ + Temp scratch = scratch_begin(&arena,1); + String8List list = {0}; + if (x & CV_SepcodeFlag_IsLexicalScope) { + str8_list_pushf(scratch.arena, &list, "IsLexicalScope"); + } + if (x & CV_SepcodeFlag_ReturnsToParent) { + str8_list_pushf(scratch.arena, &list, "ReturnsToParent"); + } + String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + scratch_end(scratch); + return result; +} + +internal String8 +cv_string_from_pub32_flags(Arena *arena, CV_Pub32Flags x) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + if (x & CV_Pub32Flag_Code) { + str8_list_pushf(scratch.arena, &list, "Code"); + } + if (x & CV_Pub32Flag_Function) { + str8_list_pushf(scratch.arena, &list, "Function"); + } + if (x & CV_Pub32Flag_ManagedCode) { + str8_list_pushf(scratch.arena, &list, "ManagedCode"); + } + if (x & CV_Pub32Flag_MSIL) { + str8_list_pushf(scratch.arena, &list, "MSIL"); + } + String8 result = str8_list_join(scratch.arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + scratch_end(scratch); + return result; +} + +internal String8 +cv_string_from_generic_flags(Arena *arena, CV_GenericFlags x) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + if (x & CV_GenericFlags_CSTYLE) { + str8_list_pushf(scratch.arena, &list, "CSTYLE"); + } + if (x & CV_GenericFlags_RSCLEAN) { + str8_list_pushf(scratch.arena, &list, "RSCLEAN"); + } + String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + scratch_end(scratch); + return result; +} + +internal String8 +cv_string_from_frame_proc_flags(Arena *arena, CV_FrameprocFlags x) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + if (x & CV_FrameprocFlag_UsesAlloca) { + str8_list_pushf(scratch.arena, &list, "UsesAlloca"); + } + if (x & CV_FrameprocFlag_UsesSetJmp) { + str8_list_pushf(scratch.arena, &list, "UsesSetJmp"); + } + if (x & CV_FrameprocFlag_UsesLongJmp) { + str8_list_pushf(scratch.arena, &list, "UsesLongJmp"); + } + if (x & CV_FrameprocFlag_UsesInlAsm) { + str8_list_pushf(scratch.arena, &list, "UsesInlAsm"); + } + if (x & CV_FrameprocFlag_UsesEH) { + str8_list_pushf(scratch.arena, &list, "UsesEH"); + } + if (x & CV_FrameprocFlag_Inline) { + str8_list_pushf(scratch.arena, &list, "Inline"); + } + if (x & CV_FrameprocFlag_HasSEH) { + str8_list_pushf(scratch.arena, &list, "HasSEH"); + } + if (x & CV_FrameprocFlag_Naked) { + str8_list_pushf(scratch.arena, &list, "Naked"); + } + if (x & CV_FrameprocFlag_HasSecurityChecks) { + str8_list_pushf(scratch.arena, &list, "HasSecurityChecks"); + } + if (x & CV_FrameprocFlag_AsyncEH) { + str8_list_pushf(scratch.arena, &list, "AsyncEH"); + } + if (x & CV_FrameprocFlag_GSNoStackOrdering) { + str8_list_pushf(scratch.arena, &list, "GSNoStackOrdering"); + } + if (x & CV_FrameprocFlag_WasInlined) { + str8_list_pushf(scratch.arena, &list, "WasInlined"); + } + if (x & CV_FrameprocFlag_GSCheck) { + str8_list_pushf(scratch.arena, &list, "GSCheck"); + } + if (x & CV_FrameprocFlag_SafeBuffers) { + str8_list_pushf(scratch.arena, &list, "SafeBuffers"); + } + if (x & CV_FrameprocFlag_PogoOn) { + str8_list_pushf(scratch.arena, &list, "PogoOn"); + } + if (x & CV_FrameprocFlag_PogoCountsValid) { + str8_list_pushf(scratch.arena, &list, "PogoCountsValid"); + } + if (x & CV_FrameprocFlag_OptSpeed) { + str8_list_pushf(scratch.arena, &list, "OptSpeed"); + } + if (x & CV_FrameprocFlag_HasCFG) { + str8_list_pushf(scratch.arena, &list, "HasCFG"); + } + if (x & CV_FrameprocFlag_HasCFW) { + str8_list_pushf(scratch.arena, &list, "HasCFW"); + } + String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + scratch_end(scratch); + return result; +} + +internal String8 +cv_string_from_type_props(Arena *arena, CV_TypeProps32 x) +{ + Temp scratch = scratch_begin(&arena, 1); + + U32 hfa = CV_TypeProps_Extract_HFA(x); + U32 mcom = CV_TypeProps_Extract_MOCOM(x); + + String8 hfa_str = cv_string_from_hfa(hfa); + String8 mcom_str = cv_string_from_mcom(mcom); + + String8 flags_str; + { + String8List list = {0}; + if (x & CV_TypeProp_Packed) { + x &= ~CV_TypeProp_Packed; + str8_list_pushf(scratch.arena, &list, "Packed"); + } + if (x & CV_TypeProp_HasConstructorsDestructors) { + x &= ~CV_TypeProp_HasConstructorsDestructors; + str8_list_pushf(scratch.arena, &list, "HasConstructorsDestructors"); + } + if (x & CV_TypeProp_OverloadedOperators) { + x &= ~CV_TypeProp_OverloadedOperators; + str8_list_pushf(scratch.arena, &list, "OverloadedOperators"); + } + if (x & CV_TypeProp_IsNested) { + x &= ~CV_TypeProp_IsNested; + str8_list_pushf(scratch.arena, &list, "IsNested"); + } + if (x & CV_TypeProp_ContainsNested) { + x &= ~CV_TypeProp_ContainsNested; + str8_list_pushf(scratch.arena, &list, "ContainsNested"); + } + if (x & CV_TypeProp_OverloadedAssignment) { + x &= ~CV_TypeProp_OverloadedAssignment; + str8_list_pushf(scratch.arena, &list, "OverloadedAssignment"); + } + if (x & CV_TypeProp_OverloadedCasting) { + x &= ~CV_TypeProp_OverloadedCasting; + str8_list_pushf(scratch.arena, &list, "OverloadedCasting"); + } + if (x & CV_TypeProp_FwdRef) { + x &= ~CV_TypeProp_FwdRef; + str8_list_pushf(scratch.arena, &list, "FwdRef"); + } + if (x & CV_TypeProp_Scoped) { + x &= ~CV_TypeProp_Scoped; + str8_list_pushf(scratch.arena, &list, "Scoped"); + } + if (x & CV_TypeProp_HasUniqueName) { + x &= ~CV_TypeProp_HasUniqueName; + str8_list_pushf(scratch.arena, &list, "HasUniqueName"); + } + if (x & CV_TypeProp_Sealed) { + x &= ~CV_TypeProp_Sealed; + str8_list_pushf(scratch.arena, &list, "Sealed"); + } + if (x & CV_TypeProp_Intrinsic) { + x &= ~CV_TypeProp_Intrinsic; + str8_list_pushf(scratch.arena, &list, "Intrinsic"); + } + if (x != 0) { + str8_list_pushf(scratch.arena, &list, "%x", x); + } + flags_str = str8_list_join(scratch.arena, &list, &(StringJoin){.sep=str8_lit(", ") }); + + if (hfa) { + str8_list_pushf(scratch.arena, &list, "HFA = %S", hfa_str); + } + if (mcom) { + str8_list_pushf(scratch.arena, &list, "MCOM = %S", mcom_str); + } + } + + String8 result = push_str8f(arena, "%S", flags_str); + + scratch_end(scratch); + return result; +} + +internal String8 +cv_string_from_local_flags(Arena *arena, CV_LocalFlags x) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + if (x & CV_LocalFlag_Param) { + str8_list_pushf(scratch.arena, &list, "Param"); + } + if (x & CV_LocalFlag_AddrTaken) { + str8_list_pushf(scratch.arena, &list, "AddrTaken"); + } + if (x & CV_LocalFlag_Compgen) { + str8_list_pushf(scratch.arena, &list, "Compgen"); + } + if (x & CV_LocalFlag_Aggregate) { + str8_list_pushf(scratch.arena, &list, "Aggregate"); + } + if (x & CV_LocalFlag_PartOfAggregate) { + str8_list_pushf(scratch.arena, &list, "PartOfAggregate"); + } + if (x & CV_LocalFlag_Aliased) { + str8_list_pushf(scratch.arena, &list, "Aliased"); + } + if (x & CV_LocalFlag_Alias) { + str8_list_pushf(scratch.arena, &list, "Alias"); + } + if (x & CV_LocalFlag_Retval) { + str8_list_pushf(scratch.arena, &list, "Retval"); + } + if (x & CV_LocalFlag_OptOut) { + str8_list_pushf(scratch.arena, &list, "OptOut"); + } + if (x & CV_LocalFlag_Global) { + str8_list_pushf(scratch.arena, &list, "Global"); + } + if (x & CV_LocalFlag_Static) { + str8_list_pushf(scratch.arena, &list, "Static"); + } + String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + scratch_end(scratch); + return result; +} + +internal String8 +cv_string_from_proc_flags(Arena *arena, CV_ProcFlags x) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + if (x & CV_ProcFlag_NoFPO) { + x &= ~CV_ProcFlag_NoFPO; + str8_list_pushf(scratch.arena, &list, "NoFPO"); + } + if (x & CV_ProcFlag_IntReturn) { + x &= ~CV_ProcFlag_IntReturn; + str8_list_pushf(scratch.arena, &list, "IntReturn"); + } + if (x & CV_ProcFlag_FarReturn) { + x &= ~CV_ProcFlag_FarReturn; + str8_list_pushf(scratch.arena, &list, "FarReturn"); + } + if (x & CV_ProcFlag_NeverReturn) { + x &= ~CV_ProcFlag_NeverReturn; + str8_list_pushf(scratch.arena, &list, "NeverReturn"); + } + if (x & CV_ProcFlag_NotReached) { + x &= ~CV_ProcFlag_NotReached; + str8_list_pushf(scratch.arena, &list, "NotReached"); + } + if (x & CV_ProcFlag_CustomCall) { + x &= ~CV_ProcFlag_CustomCall; + str8_list_pushf(scratch.arena, &list, "CustomCall"); + } + if (x & CV_ProcFlag_NoInline) { + x &= ~CV_ProcFlag_NoInline; + str8_list_pushf(scratch.arena, &list, "NoInline"); + } + if (x & CV_ProcFlag_OptDbgInfo) { + x &= ~CV_ProcFlag_OptDbgInfo; + str8_list_pushf(scratch.arena, &list, "OptDbgInfo"); + } + if (x != 0) { + str8_list_pushf(scratch.arena, &list, "%#x", x); + } + String8 result; + if (list.node_count == 0) { + result = str8_lit("None"); + } else { + result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + } + temp_end(scratch); + return result; +} + +internal String8 +cv_string_from_range_attribs(Arena *arena, CV_RangeAttribs x) +{ (void)arena; + String8 result = str8_lit("None"); + if (x == CV_RangeAttrib_Maybe) { + result = str8_lit("Maybe"); + } + return result; +} + +internal String8 +cv_string_from_defrange_register_rel_flags(Arena *arena, CV_DefrangeRegisterRelFlags x) +{ (void)arena; + String8 result = str8_lit("None"); + if (x == CV_DefrangeRegisterRelFlag_SpilledOutUDTMember) { + result = str8_lit("SpilledOutUDTMember"); + } + return result; +} + +internal String8 +cv_string_from_field_attribs(Arena *arena, CV_FieldAttribs attribs) +{ + Temp scratch = scratch_begin(&arena, 1); + + U32 access = CV_FieldAttribs_Extract_Access(attribs); + U32 mprop = CV_FieldAttribs_Extract_MethodProp(attribs); + attribs &= ~(0x3 | 0x7); + + String8 access_str = cv_string_from_member_access(access); + String8 mprop_str = cv_string_from_method_prop(mprop); + + String8List list = {0}; + { + if (attribs & CV_FieldAttrib_Pseudo) { + attribs &= ~CV_FieldAttrib_Pseudo; + str8_list_pushf(scratch.arena, &list, "Pseudo"); + } + if (attribs & CV_FieldAttrib_NoInherit) { + attribs &= ~CV_FieldAttrib_NoInherit; + str8_list_pushf(scratch.arena, &list, "NoInherit"); + } + if (attribs & CV_FieldAttrib_NoConstruct) { + attribs &= ~CV_FieldAttrib_NoConstruct; + str8_list_pushf(scratch.arena, &list, "NoConstruct"); + } + if (attribs & CV_FieldAttrib_CompilerGenated) { + attribs &= ~CV_FieldAttrib_CompilerGenated; + str8_list_pushf(scratch.arena, &list, "CompilerGenerated"); + } + if (attribs & CV_FieldAttrib_Sealed) { + attribs &= ~CV_FieldAttrib_Sealed; + str8_list_pushf(scratch.arena, &list, "Sealed"); + } + if (attribs) { + str8_list_pushf(scratch.arena, &list, "Unknown: %x", attribs); + } + } + + if (access) { + str8_list_pushf(scratch.arena, &list, "%S", access_str); + } + if (mprop) { + str8_list_pushf(scratch.arena, &list, "%S", mprop_str); + } + + String8 result = str8_list_join(scratch.arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + + scratch_end(scratch); + return result; +} + +internal String8 +cv_string_from_itype(Arena *arena, CV_TypeIndex min_itype, CV_TypeIndex itype) +{ + String8 result = str8_zero(); + if (itype < min_itype) { + String8 n = cv_type_name_from_basic_type((CV_BasicType)itype); + if (n.size) { + Temp scratch = scratch_begin(&arena, 1); + + U64 type = CV_BasicTypeFromTypeId(itype); + char *type_str = "???"; + switch (type) { + case CV_BasicType_NOTYPE: type_str = "NOTYPE"; break; + case CV_BasicType_ABS: type_str = "ABS"; break; + case CV_BasicType_SEGMENT: type_str = "SEGMENT"; break; + case CV_BasicType_VOID: type_str = "VOID"; break; + case CV_BasicType_CURRENCY: type_str = "CURRENCY"; break; + case CV_BasicType_NBASICSTR: type_str = "NBASICSTR"; break; + case CV_BasicType_FBASICSTR: type_str = "FBASICSTR"; break; + case CV_BasicType_NOTTRANS: type_str = "NOTTRANS"; break; + case CV_BasicType_HRESULT: type_str = "HRESULT"; break; + case CV_BasicType_CHAR: type_str = "CHAR"; break; + case CV_BasicType_SHORT: type_str = "SHORT"; break; + case CV_BasicType_LONG: type_str = "LONG"; break; + case CV_BasicType_QUAD: type_str = "QUAD"; break; + case CV_BasicType_OCT: type_str = "OCT"; break; + case CV_BasicType_UCHAR: type_str = "UCHAR"; break; + case CV_BasicType_USHORT: type_str = "USHORT"; break; + case CV_BasicType_ULONG: type_str = "ULONG"; break; + case CV_BasicType_UQUAD: type_str = "UQUAD"; break; + case CV_BasicType_UOCT: type_str = "UOCT"; break; + case CV_BasicType_BOOL8: type_str = "BOOL8"; break; + case CV_BasicType_BOOL16: type_str = "BOOL16"; break; + case CV_BasicType_BOOL32: type_str = "BOOL32"; break; + case CV_BasicType_BOOL64: type_str = "BOOL64"; break; + case CV_BasicType_FLOAT32: type_str = "FLOAT32"; break; + case CV_BasicType_FLOAT64: type_str = "FLOAT64"; break; + case CV_BasicType_FLOAT80: type_str = "FLOAT80"; break; + case CV_BasicType_FLOAT128: type_str = "FLOAT128"; break; + case CV_BasicType_FLOAT48: type_str = "FLOAT48"; break; + case CV_BasicType_FLOAT32PP: type_str = "FLOAT32PP"; break; + case CV_BasicType_FLOAT16: type_str = "FLOAT16"; break; + case CV_BasicType_COMPLEX32: type_str = "COMPLEX32"; break; + case CV_BasicType_COMPLEX64: type_str = "COMPLEX64"; break; + case CV_BasicType_COMPLEX80: type_str = "COMPLEX80"; break; + case CV_BasicType_COMPLEX128: type_str = "COMPLEX128"; break; + case CV_BasicType_BIT: type_str = "BIT"; break; + case CV_BasicType_PASCHAR: type_str = "PASCHAR"; break; + case CV_BasicType_BOOL32FF: type_str = "BOOL32FF"; break; + case CV_BasicType_INT8: type_str = "INT8"; break; + case CV_BasicType_UINT8: type_str = "UINT8"; break; + case CV_BasicType_RCHAR: type_str = "RCHAR"; break; + case CV_BasicType_WCHAR: type_str = "WCHAR"; break; + case CV_BasicType_INT16: type_str = "INT16"; break; + case CV_BasicType_UINT16: type_str = "UINT16"; break; + case CV_BasicType_INT32: type_str = "INT32"; break; + case CV_BasicType_UINT32: type_str = "UINT32"; break; + case CV_BasicType_INT64: type_str = "INT64"; break; + case CV_BasicType_UINT64: type_str = "UINT64"; break; + case CV_BasicType_INT128: type_str = "INT128"; break; + case CV_BasicType_UINT128: type_str = "UINT128"; break; + case CV_BasicType_CHAR16: type_str = "CHAR16"; break; + case CV_BasicType_CHAR32: type_str = "CHAR32"; break; + case CV_BasicType_CHAR8: type_str = "CHAR8"; break; + case CV_BasicType_PTR: type_str = "PTR"; break; + } + + U64 ptr = CV_BasicPointerKindFromTypeId(itype); + char *ptr_str = ""; + switch (ptr) { + case 0x1: ptr_str = "P"; break; + case 0x2: ptr_str = "PF"; break; + case 0x3: ptr_str = "PH"; break; + case 0x4: ptr_str = "32P"; break; + case 0x5: ptr_str = "32PF"; break; + case 0x6: ptr_str = "64P"; break; + } + + n = upper_from_str8(scratch.arena, n); + result = push_str8f(arena, "T_%s%s(%x)", ptr_str, type_str, itype); + scratch_end(scratch); + } else { + result = push_str8f(arena, "%x", itype); + } + } else { + result = push_str8f(arena, "%x", itype); + } + return result; +} + +internal String8 +cv_string_from_itemid(Arena *arena, CV_ItemId itemid) +{ + String8 result = push_str8f(arena, "%x", itemid); + return result; +} + +internal String8 +cv_string_from_symbol_type(Arena *arena, CV_SymKind symbol_type) +{ + String8 str = cv_string_from_sym_kind(symbol_type); + String8 result = push_str8f(arena, "S_%S", str); + return result; +} + +internal String8 +cv_string_from_symbol_kind(Arena *arena, CV_SymKind kind) +{ + String8 str = cv_string_from_sym_kind(kind); + String8 result = push_str8f(arena, "S_%S", str); + return result; +} + +internal String8 +cv_string_from_leaf_name(Arena *arena, U32 leaf_type) +{ + String8 str = cv_string_from_leaf_kind(leaf_type); + String8 result = push_str8f(arena, "LF_%S", str); + return result; +} + +internal String8 +cv_string_sec_off(Arena *arena, U32 sec, U32 off) +{ + return push_str8f(arena, "%04x:%08x", sec, off); +} + diff --git a/src/codeview/codeview.h b/src/codeview/codeview.h index e70a426d..da0a1395 100644 --- a/src/codeview/codeview.h +++ b/src/codeview/codeview.h @@ -2971,7 +2971,52 @@ internal CV_EncodedFramePtrReg cv_pick_fp_encoding(CV_SymFrameproc *frameproc, B internal CV_Reg cv_decode_fp_reg(CV_Arch arch, CV_EncodedFramePtrReg encoded_reg); internal U32 cv_map_encoded_base_pointer(CV_Arch arch, U32 encoded_frame_reg); + +//////////////////////////////// +//~ rjf: Enum -> String + internal String8 cv_string_from_inline_range_kind(CV_InlineRangeKind kind); +internal String8 cv_string_from_type_index_source(CV_TypeIndexSource ti_source); +internal String8 cv_string_from_language(CV_Language x); +internal String8 cv_string_from_numeric(Arena *arena, CV_NumericParsed num); +internal String8 cv_string_from_reg_id(Arena *arena, CV_Arch arch, U32 id); +internal String8 cv_string_from_member_access(CV_MemberAccess x); +internal String8 cv_string_from_method_prop(CV_MethodProp x); +internal String8 cv_string_from_hfa(CV_HFAKind x); +internal String8 cv_string_from_mcom(CV_MoComUDTKind x); +internal String8 cv_string_from_binary_opcode(CV_InlineBinaryAnnotation x); +internal String8 cv_string_from_thunk_ordinal(CV_ThunkOrdinal x); +internal String8 cv_string_from_frame_cookie_kind(CV_FrameCookieKind x); +internal String8 cv_string_from_generic_style(CV_GenericStyle x); +internal String8 cv_string_from_trampoline_kind(CV_TrampolineKind x); +internal String8 cv_string_from_virtual_table_shape_kind(CV_VirtualTableShape x); +internal String8 cv_string_from_call_kind(CV_CallKind x); +internal String8 cv_string_from_member_pointer_kind(CV_MemberPointerKind x); +internal String8 cv_string_from_pointer_kind(CV_PointerKind x); +internal String8 cv_string_from_pointer_mode(CV_PointerMode x); +internal String8 cv_string_from_c13_checksum_kind(CV_C13ChecksumKind x); +internal String8 cv_string_from_label_kind(Arena *arena, CV_LabelKind x); +internal String8 cv_string_from_c13_subsection_kind(CV_C13SubSectionKind x); +internal String8 cv_string_from_modifier_flags(Arena *arena, CV_ModifierFlags x); +internal String8 cv_string_from_pointer_attribs(Arena *arena, CV_PointerAttribs x); +internal String8 cv_string_from_function_attribs(Arena *arena, CV_FunctionAttribs x); +internal String8 cv_string_from_export_flags(Arena *arena, CV_ExportFlags x); +internal String8 cv_string_from_sepcode(Arena *arena, CV_SepcodeFlags x); +internal String8 cv_string_from_pub32_flags(Arena *arena, CV_Pub32Flags x); +internal String8 cv_string_from_generic_flags(Arena *arena, CV_GenericFlags x); +internal String8 cv_string_from_frame_proc_flags(Arena *arena, CV_FrameprocFlags x); +internal String8 cv_string_from_type_props(Arena *arena, CV_TypeProps32 x); +internal String8 cv_string_from_local_flags(Arena *arena, CV_LocalFlags x); +internal String8 cv_string_from_proc_flags(Arena *arena, CV_ProcFlags x); +internal String8 cv_string_from_range_attribs(Arena *arena, CV_RangeAttribs x); +internal String8 cv_string_from_defrange_register_rel_flags(Arena *arena, CV_DefrangeRegisterRelFlags x); +internal String8 cv_string_from_field_attribs(Arena *arena, CV_FieldAttribs attribs); +internal String8 cv_string_from_itype(Arena *arena, CV_TypeIndex min_itype, CV_TypeIndex itype); +internal String8 cv_string_from_itemid(Arena *arena, CV_ItemId itemid); +internal String8 cv_string_from_symbol_type(Arena *arena, CV_SymKind symbol_type); +internal String8 cv_string_from_symbol_kind(Arena *arena, CV_SymKind kind); +internal String8 cv_string_from_leaf_name(Arena *arena, U32 leaf_type); +internal String8 cv_string_sec_off(Arena *arena, U32 sec, U32 off); #endif // CODEVIEW_H diff --git a/src/codeview/codeview_enum.c b/src/codeview/codeview_enum.c deleted file mode 100644 index 061210ce..00000000 --- a/src/codeview/codeview_enum.c +++ /dev/null @@ -1,962 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -internal String8 -cv_string_from_unknown_value(Arena *arena, U32 x) -{ - return push_str8f(arena, "%#x", x); -} - -internal String8 -cv_string_from_type_index_source(CV_TypeIndexSource ti_source) -{ - switch (ti_source) { - case CV_TypeIndexSource_NULL: return str8_lit(""); break; - case CV_TypeIndexSource_TPI: return str8_lit("TPI"); break; - case CV_TypeIndexSource_IPI: return str8_lit("IPI"); break; - case CV_TypeIndexSource_COUNT: break; - } - return str8_zero(); -} - -internal String8 -cv_string_from_language(CV_Language x) -{ - switch (x) { -#define X(_n,_i) case _i: return str8_lit(Stringify(_n)); - CV_LanguageXList(X) -#undef X - } - return str8_zero(); -} - -internal String8 -cv_string_from_numeric(Arena *arena, CV_NumericParsed num) -{ - String8 result = str8_zero(); - switch (num.kind) { - case CV_NumericKind_FLOAT16: NotImplemented; break; // TODO: format float16 - case CV_NumericKind_FLOAT32: result = push_str8f(arena, "%f", (F64)(*(F32*)num.val)); break; - case CV_NumericKind_FLOAT48: NotImplemented; break; // TODO: format float48 - case CV_NumericKind_FLOAT64: result = push_str8f(arena, "%f", *(F64*)num.val); break; - case CV_NumericKind_FLOAT80: NotImplemented; break; // TODO: format float80 - case CV_NumericKind_FLOAT128: NotImplemented; break; // TODO: format float128 - case CV_NumericKind_CHAR: result = push_str8f(arena, "%d", *(S8 *)num.val); break; - case CV_NumericKind_SHORT: result = push_str8f(arena, "%d", *(S16*)num.val); break; - case CV_NumericKind_LONG: result = push_str8f(arena, "%d", *(S32*)num.val); break; - case CV_NumericKind_QUADWORD: result = push_str8f(arena, "%lld", *(S64*)num.val); break; - case CV_NumericKind_USHORT: result = push_str8f(arena, "%u", *(U16*)num.val); break; - case CV_NumericKind_ULONG: result = push_str8f(arena, "%u", *(U32*)num.val); break; - case CV_NumericKind_UQUADWORD: result = push_str8f(arena, "%llu", *(U64*)num.val); break; - } - return result; -} - -internal String8 -cv_string_from_reg_id(Arena *arena, CV_Arch arch, U32 id) -{ - String8 result = str8_zero(); - switch (arch) { - case CV_Arch_8086: { - switch (id) { -#define X(_N, _ID, ...) case _ID: result = str8_lit(Stringify(_N)); break; - CV_Reg_X86_XList(X) -#undef X - } - } break; - case CV_Arch_X64: { - switch (id) { -#define X(_N, _ID, ...) case _ID: result = str8_lit(Stringify(_N)); break; - CV_Reg_X64_XList(X) -#undef X - } - } break; - default: NotImplemented; break; - } - if (result.size == 0) { - result = push_str8f(arena, "%x", id); - } - return result; -} - -internal String8 -cv_string_from_member_access(CV_MemberAccess x) -{ - switch (x) { - case CV_MemberAccess_Null: break; - case CV_MemberAccess_Private: return str8_lit("Private"); - case CV_MemberAccess_Protected: return str8_lit("Protected"); - case CV_MemberAccess_Public: return str8_lit("Public"); - } - return str8_zero(); -} - -internal String8 -cv_string_from_method_prop(CV_MethodProp x) -{ - switch (x) { - case CV_MethodProp_Vanilla: return str8_lit("Vanilla"); - case CV_MethodProp_Virtual: return str8_lit("Virtual"); - case CV_MethodProp_Static: return str8_lit("Static"); - case CV_MethodProp_Friend: return str8_lit("Friend"); - case CV_MethodProp_Intro: return str8_lit("Intro"); - case CV_MethodProp_PureVirtual: return str8_lit("PureVirtual"); - case CV_MethodProp_PureIntro: return str8_lit("PureIntro"); - } - return str8_zero(); -} - -internal String8 -cv_string_from_hfa(CV_HFAKind x) -{ - switch (x) { - case CV_HFAKind_None: return str8_lit("None"); - case CV_HFAKind_Float: return str8_lit("Float"); - case CV_HFAKind_Double: return str8_lit("Double"); - case CV_HFAKind_Other: return str8_lit("Other"); - } - return str8_zero(); -} - -internal String8 -cv_string_from_mcom(CV_MoComUDTKind x) -{ - switch (x) { - case CV_MoComUDTKind_None: return str8_lit("None"); - case CV_MoComUDTKind_Ref: return str8_lit("Ref"); - case CV_MoComUDTKind_Value: return str8_lit("Value"); - case CV_MoComUDTKind_Interface: return str8_lit("Interface"); - } - return str8_zero(); -} - -internal String8 -cv_string_from_binary_opcode(CV_InlineBinaryAnnotation x) -{ - switch (x) { - case CV_InlineBinaryAnnotation_Null: break; - case CV_InlineBinaryAnnotation_CodeOffset: return str8_lit("CodeOffset"); - case CV_InlineBinaryAnnotation_ChangeCodeOffsetBase: return str8_lit("ChangeCodeOffsetBase"); - case CV_InlineBinaryAnnotation_ChangeCodeOffset: return str8_lit("ChangeCodeOffset"); - case CV_InlineBinaryAnnotation_ChangeCodeLength: return str8_lit("ChangeCodeLength"); - case CV_InlineBinaryAnnotation_ChangeFile: return str8_lit("ChangeFile"); - case CV_InlineBinaryAnnotation_ChangeLineOffset: return str8_lit("ChangeLineOffset"); - case CV_InlineBinaryAnnotation_ChangeLineEndDelta: return str8_lit("ChangeLineEndDelta"); - case CV_InlineBinaryAnnotation_ChangeRangeKind: return str8_lit("ChangeRangeKind"); - case CV_InlineBinaryAnnotation_ChangeColumnStart: return str8_lit("ChangeColumnStart"); - case CV_InlineBinaryAnnotation_ChangeColumnEndDelta: return str8_lit("ChangeColumnEndDelta"); - case CV_InlineBinaryAnnotation_ChangeCodeOffsetAndLineOffset: return str8_lit("ChangeCodeOffsetAndLineOffset"); - case CV_InlineBinaryAnnotation_ChangeCodeLengthAndCodeOffset: return str8_lit("ChangeCodeLengthAndCodeOffset"); - case CV_InlineBinaryAnnotation_ChangeColumnEnd: return str8_lit("ChangeColumnEnd"); - } - return str8_zero(); -} - -internal String8 -cv_string_from_thunk_ordinal(CV_ThunkOrdinal x) -{ - switch (x) { - case CV_ThunkOrdinal_NoType: return str8_lit("NoType"); - case CV_ThunkOrdinal_Adjustor: return str8_lit("Adjustor"); - case CV_ThunkOrdinal_VCall: return str8_lit("VCall"); - case CV_ThunkOrdinal_PCode: return str8_lit("PCode"); - case CV_ThunkOrdinal_Load: return str8_lit("Load"); - case CV_ThunkOrdinal_TrampIncremental: return str8_lit("TrampIncremental"); - case CV_ThunkOrdinal_TrampBranchIsland: return str8_lit("TrampBranchIsland"); - } - return str8_zero(); -} - -internal String8 -cv_string_from_frame_cookie_kind(CV_FrameCookieKind x) -{ - switch (x) { - case CV_FrameCookieKind_Copy: return str8_lit("Copy"); - case CV_FrameCookieKind_XorSP: return str8_lit("XorSP"); - case CV_FrameCookieKind_XorBP: return str8_lit("XorR13"); - } - return str8_zero(); -} - -internal String8 -cv_string_from_generic_style(CV_GenericStyle x) -{ - switch (x) { - case CV_GenericStyle_VOID: return str8_lit("VOID"); - case CV_GenericStyle_REG: return str8_lit("REG"); - case CV_GenericStyle_ICAN: return str8_lit("ICAN"); - case CV_GenericStyle_ICAF: return str8_lit("ICAF"); - case CV_GenericStyle_IRAN: return str8_lit("IRAN"); - case CV_GenericStyle_IRAF: return str8_lit("IRAF"); - case CV_GenericStyle_UNUSED: return str8_lit("UNUSED"); - } - return str8_zero(); -} - -internal String8 -cv_string_from_trampoline_kind(CV_TrampolineKind x) -{ - switch (x) { - case CV_TrampolineKind_Incremental: return str8_lit("Incremental"); - case CV_TrampolineKind_BranchIsland: return str8_lit("BranchIsland"); - } - return str8_zero(); -} - -internal String8 -cv_string_from_virtual_table_shape_kind(CV_VirtualTableShape x) -{ - switch (x) { - case CV_VirtualTableShape_Near: return str8_lit("Near"); - case CV_VirtualTableShape_Far: return str8_lit("Far"); - case CV_VirtualTableShape_Thin: return str8_lit("Thin"); - case CV_VirtualTableShape_Outer: return str8_lit("Outer"); - case CV_VirtualTableShape_Meta: return str8_lit("Meta"); - case CV_VirtualTableShape_Near32: return str8_lit("Near32"); - case CV_VirtualTableShape_Far32: return str8_lit("Far32"); - } - return str8_zero(); -} - -internal String8 -cv_string_from_call_kind(CV_CallKind x) -{ - switch (x) { - case CV_CallKind_NearC: return str8_lit("NearC"); - case CV_CallKind_FarC: return str8_lit("FarC"); - case CV_CallKind_NearPascal: return str8_lit("NearPascal"); - case CV_CallKind_FarPascal: return str8_lit("FarPascal"); - case CV_CallKind_NearFast: return str8_lit("NearFast"); - case CV_CallKind_FarFast: return str8_lit("FarFast"); - case CV_CallKind_UNUSED: return str8_lit("UNUSED"); - case CV_CallKind_NearStd: return str8_lit("NearStd"); - case CV_CallKind_FarStd: return str8_lit("FarStd"); - case CV_CallKind_NearSys: return str8_lit("NearSys"); - case CV_CallKind_FarSys: return str8_lit("FarSys"); - case CV_CallKind_This: return str8_lit("This"); - case CV_CallKind_Mips: return str8_lit("Mips"); - case CV_CallKind_Generic: return str8_lit("Generic"); - case CV_CallKind_Alpha: return str8_lit("Alpha"); - case CV_CallKind_PPC: return str8_lit("PPC"); - case CV_CallKind_HitachiSuperH: return str8_lit("HitachiSuperH"); - case CV_CallKind_Arm: return str8_lit("Arm"); - case CV_CallKind_AM33: return str8_lit("AM33"); - case CV_CallKind_TriCore: return str8_lit("TriCore"); - case CV_CallKind_HitachiSuperH5: return str8_lit("HitachiSuperH5"); - case CV_CallKind_M32R: return str8_lit("M32R"); - case CV_CallKind_Clr: return str8_lit("Clr"); - case CV_CallKind_Inline: return str8_lit("Inline"); - case CV_CallKind_NearVector: return str8_lit("NearVector"); - } - return str8_zero(); -} - -internal String8 -cv_string_from_member_pointer_kind(CV_MemberPointerKind x) -{ - switch (x) { - case CV_MemberPointerKind_Undef: return str8_lit("Undef"); - case CV_MemberPointerKind_DataSingle: return str8_lit("DataSingle"); - case CV_MemberPointerKind_DataMultiple: return str8_lit("DataMultiple"); - case CV_MemberPointerKind_DataVirtual: return str8_lit("DataVirtual"); - case CV_MemberPointerKind_DataGeneral: return str8_lit("DataGeneral"); - case CV_MemberPointerKind_FuncSingle: return str8_lit("FuncSingle"); - case CV_MemberPointerKind_FuncMultiple: return str8_lit("FuncMultiple"); - case CV_MemberPointerKind_FuncGeneral: return str8_lit("FuncGeneral"); - } - return str8_zero(); -} - -internal String8 -cv_string_from_pointer_kind(CV_PointerKind x) -{ - switch (x) { - case CV_PointerKind_Near: return str8_lit("Near"); - case CV_PointerKind_Far: return str8_lit("Far"); - case CV_PointerKind_Huge: return str8_lit("Huge"); - case CV_PointerKind_BaseSeg: return str8_lit("BaseSeg"); - case CV_PointerKind_BaseVal: return str8_lit("BaseVal"); - case CV_PointerKind_BaseSegVal: return str8_lit("BaseSegVal"); - case CV_PointerKind_BaseAddr: return str8_lit("BaseAddr"); - case CV_PointerKind_BaseSegAddr: return str8_lit("BaseSegAddr"); - case CV_PointerKind_BaseType: return str8_lit("BaseType"); - case CV_PointerKind_BaseSelf: return str8_lit("BaseSelf"); - case CV_PointerKind_Near32: return str8_lit("Near32"); - case CV_PointerKind_Far32: return str8_lit("Far32"); - case CV_PointerKind_64: return str8_lit("64Bit"); - } - return str8_zero(); -} - -internal String8 -cv_string_from_pointer_mode(CV_PointerMode x) -{ - switch (x) { - case CV_PointerMode_Ptr: return str8_lit("Ptr"); - case CV_PointerMode_LRef: return str8_lit("LRef"); - case CV_PointerMode_PtrMem: return str8_lit("PtrMem"); - case CV_PointerMode_PtrMethod: return str8_lit("PtrMethod"); - case CV_PointerMode_RRef: return str8_lit("RRef"); - } - return str8_zero(); -} - -internal String8 -cv_string_from_c13_checksum_kind(CV_C13ChecksumKind x) -{ - switch (x) { - case CV_C13ChecksumKind_Null: break; - case CV_C13ChecksumKind_MD5: return str8_lit("MD5"); - case CV_C13ChecksumKind_SHA1: return str8_lit("SHA1"); - case CV_C13ChecksumKind_SHA256: return str8_lit("SHA256"); - } - return str8_zero(); -} - -internal String8 -cv_string_from_label_kind(Arena *arena, CV_LabelKind x) -{ - switch (x) { - case CV_LabelKind_Near: return str8_lit("Near"); - case CV_LabelKind_Far: return str8_lit("Far"); - } - return cv_string_from_unknown_value(arena, x); -} - -internal String8 -cv_string_from_c13_subsection_kind(CV_C13SubSectionKind x) -{ - switch (x) { -#define X(_N, _ID) case CV_C13SubSectionKind_##_N: return str8_lit(Stringify(_N)); - CV_C13SubSectionKindXList(X) -#undef X - } - return str8_zero(); -} - -internal String8 -cv_string_from_modifier_flags(Arena *arena, CV_ModifierFlags x) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - if (x & CV_ModifierFlag_Const) { - str8_list_pushf(scratch.arena, &list, "Const"); - } - if (x & CV_ModifierFlag_Volatile) { - str8_list_pushf(scratch.arena, &list, "Volatile"); - } - if (x & CV_ModifierFlag_Unaligned) { - str8_list_pushf(scratch.arena, &list, "Unaligned"); - } - String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - scratch_end(scratch); - return result; -} - -internal String8 -cv_string_from_pointer_attribs(Arena *arena, CV_PointerAttribs x) -{ - Temp scratch = scratch_begin(&arena, 1); - - String8List list = {0}; - if (x & CV_PointerAttrib_IsFlat) { - x &= ~CV_PointerAttrib_IsFlat; - str8_list_pushf(scratch.arena, &list, "IsFlat"); - } - if (x & CV_PointerAttrib_Volatile) { - x &= ~CV_PointerAttrib_Volatile; - str8_list_pushf(scratch.arena, &list, "Volatile"); - } - if (x & CV_PointerAttrib_Const) { - x &= ~CV_PointerAttrib_Const; - str8_list_pushf(scratch.arena, &list, "Const"); - } - if (x & CV_PointerAttrib_Unaligned) { - x &= ~CV_PointerAttrib_Unaligned; - str8_list_pushf(scratch.arena, &list, "Unaligned"); - } - if (x & CV_PointerAttrib_Restricted) { - x &= ~CV_PointerAttrib_Restricted; - str8_list_pushf(scratch.arena, &list, "Restricted"); - } - if (x & CV_PointerAttrib_MOCOM) { - x &= ~CV_PointerAttrib_MOCOM; - str8_list_pushf(scratch.arena, &list, "MOCOM"); - } - if (x & CV_PointerAttrib_LRef) { - x &= ~CV_PointerAttrib_LRef; - str8_list_pushf(scratch.arena, &list, "LRef"); - } - if (x & CV_PointerAttrib_RRef) { - x &= ~CV_PointerAttrib_RRef; - str8_list_pushf(scratch.arena, &list, "RRef"); - } - - CV_PointerKind kind = CV_PointerAttribs_Extract_Kind(x); - CV_PointerMode mode = CV_PointerAttribs_Extract_Mode(x); - U64 size = CV_PointerAttribs_Extract_Size(x); - - x &= ~(0x1f|(0x7<<5)|(0x3f<<13)); - - if (kind) { - String8 kind_str = cv_string_from_pointer_kind(kind); - str8_list_pushf(scratch.arena, &list, "Kind=%S", kind_str); - } - if (mode) { - String8 mode_str = cv_string_from_pointer_mode(mode); - str8_list_pushf(scratch.arena, &list, "Mode=%S", mode_str); - } - if (size) { - str8_list_pushf(scratch.arena, &list, "Size=%llu", size); - } - - if (x != 0) { - str8_list_pushf(scratch.arena, &list, "Unknown=%x", x); - } - - String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - scratch_end(scratch); - return result; -} - -internal String8 -cv_string_from_function_attribs(Arena *arena, CV_FunctionAttribs x) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - if (x & CV_FunctionAttrib_CxxReturnUDT) { - str8_list_pushf(scratch.arena, &list, "CxxReturnUDT"); - } - if (x & CV_FunctionAttrib_Constructor) { - str8_list_pushf(scratch.arena, &list, "Constructor"); - } - if (x & CV_FunctionAttrib_ConstructorVBase) { - str8_list_pushf(scratch.arena, &list, "ConstructorVBase"); - } - String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - scratch_end(scratch); - return result; -} - -internal String8 -cv_string_from_export_flags(Arena *arena, CV_ExportFlags x) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - if (x & CV_ExportFlag_Constant) { - str8_list_pushf(scratch.arena, &list, "Constant"); - } - if (x & CV_ExportFlag_Data) { - str8_list_pushf(scratch.arena, &list, "Data"); - } - if (x & CV_ExportFlag_Private) { - str8_list_pushf(scratch.arena, &list, "Private"); - } - if (x & CV_ExportFlag_NoName) { - str8_list_pushf(scratch.arena, &list, "NoName"); - } - if (x & CV_ExportFlag_Ordinal) { - str8_list_pushf(scratch.arena, &list, "Ordinal"); - } - if (x & CV_ExportFlag_Forwarder) { - str8_list_pushf(scratch.arena, &list, "Forwarder"); - } - String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - scratch_end(scratch); - return result; -} - -internal String8 -cv_string_from_sepcode(Arena *arena, CV_SepcodeFlags x) -{ - Temp scratch = scratch_begin(&arena,1); - String8List list = {0}; - if (x & CV_SepcodeFlag_IsLexicalScope) { - str8_list_pushf(scratch.arena, &list, "IsLexicalScope"); - } - if (x & CV_SepcodeFlag_ReturnsToParent) { - str8_list_pushf(scratch.arena, &list, "ReturnsToParent"); - } - String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - scratch_end(scratch); - return result; -} - -internal String8 -cv_string_from_pub32_flags(Arena *arena, CV_Pub32Flags x) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - if (x & CV_Pub32Flag_Code) { - str8_list_pushf(scratch.arena, &list, "Code"); - } - if (x & CV_Pub32Flag_Function) { - str8_list_pushf(scratch.arena, &list, "Function"); - } - if (x & CV_Pub32Flag_ManagedCode) { - str8_list_pushf(scratch.arena, &list, "ManagedCode"); - } - if (x & CV_Pub32Flag_MSIL) { - str8_list_pushf(scratch.arena, &list, "MSIL"); - } - String8 result = str8_list_join(scratch.arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - scratch_end(scratch); - return result; -} - -internal String8 -cv_string_from_generic_flags(Arena *arena, CV_GenericFlags x) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - if (x & CV_GenericFlags_CSTYLE) { - str8_list_pushf(scratch.arena, &list, "CSTYLE"); - } - if (x & CV_GenericFlags_RSCLEAN) { - str8_list_pushf(scratch.arena, &list, "RSCLEAN"); - } - String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - scratch_end(scratch); - return result; -} - -internal String8 -cv_string_from_frame_proc_flags(Arena *arena, CV_FrameprocFlags x) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - if (x & CV_FrameprocFlag_UsesAlloca) { - str8_list_pushf(scratch.arena, &list, "UsesAlloca"); - } - if (x & CV_FrameprocFlag_UsesSetJmp) { - str8_list_pushf(scratch.arena, &list, "UsesSetJmp"); - } - if (x & CV_FrameprocFlag_UsesLongJmp) { - str8_list_pushf(scratch.arena, &list, "UsesLongJmp"); - } - if (x & CV_FrameprocFlag_UsesInlAsm) { - str8_list_pushf(scratch.arena, &list, "UsesInlAsm"); - } - if (x & CV_FrameprocFlag_UsesEH) { - str8_list_pushf(scratch.arena, &list, "UsesEH"); - } - if (x & CV_FrameprocFlag_Inline) { - str8_list_pushf(scratch.arena, &list, "Inline"); - } - if (x & CV_FrameprocFlag_HasSEH) { - str8_list_pushf(scratch.arena, &list, "HasSEH"); - } - if (x & CV_FrameprocFlag_Naked) { - str8_list_pushf(scratch.arena, &list, "Naked"); - } - if (x & CV_FrameprocFlag_HasSecurityChecks) { - str8_list_pushf(scratch.arena, &list, "HasSecurityChecks"); - } - if (x & CV_FrameprocFlag_AsyncEH) { - str8_list_pushf(scratch.arena, &list, "AsyncEH"); - } - if (x & CV_FrameprocFlag_GSNoStackOrdering) { - str8_list_pushf(scratch.arena, &list, "GSNoStackOrdering"); - } - if (x & CV_FrameprocFlag_WasInlined) { - str8_list_pushf(scratch.arena, &list, "WasInlined"); - } - if (x & CV_FrameprocFlag_GSCheck) { - str8_list_pushf(scratch.arena, &list, "GSCheck"); - } - if (x & CV_FrameprocFlag_SafeBuffers) { - str8_list_pushf(scratch.arena, &list, "SafeBuffers"); - } - if (x & CV_FrameprocFlag_PogoOn) { - str8_list_pushf(scratch.arena, &list, "PogoOn"); - } - if (x & CV_FrameprocFlag_PogoCountsValid) { - str8_list_pushf(scratch.arena, &list, "PogoCountsValid"); - } - if (x & CV_FrameprocFlag_OptSpeed) { - str8_list_pushf(scratch.arena, &list, "OptSpeed"); - } - if (x & CV_FrameprocFlag_HasCFG) { - str8_list_pushf(scratch.arena, &list, "HasCFG"); - } - if (x & CV_FrameprocFlag_HasCFW) { - str8_list_pushf(scratch.arena, &list, "HasCFW"); - } - String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - scratch_end(scratch); - return result; -} - -internal String8 -cv_string_from_type_props(Arena *arena, CV_TypeProps32 x) -{ - Temp scratch = scratch_begin(&arena, 1); - - U32 hfa = CV_TypeProps_Extract_HFA(x); - U32 mcom = CV_TypeProps_Extract_MOCOM(x); - - String8 hfa_str = cv_string_from_hfa(hfa); - String8 mcom_str = cv_string_from_mcom(mcom); - - String8 flags_str; - { - String8List list = {0}; - if (x & CV_TypeProp_Packed) { - x &= ~CV_TypeProp_Packed; - str8_list_pushf(scratch.arena, &list, "Packed"); - } - if (x & CV_TypeProp_HasConstructorsDestructors) { - x &= ~CV_TypeProp_HasConstructorsDestructors; - str8_list_pushf(scratch.arena, &list, "HasConstructorsDestructors"); - } - if (x & CV_TypeProp_OverloadedOperators) { - x &= ~CV_TypeProp_OverloadedOperators; - str8_list_pushf(scratch.arena, &list, "OverloadedOperators"); - } - if (x & CV_TypeProp_IsNested) { - x &= ~CV_TypeProp_IsNested; - str8_list_pushf(scratch.arena, &list, "IsNested"); - } - if (x & CV_TypeProp_ContainsNested) { - x &= ~CV_TypeProp_ContainsNested; - str8_list_pushf(scratch.arena, &list, "ContainsNested"); - } - if (x & CV_TypeProp_OverloadedAssignment) { - x &= ~CV_TypeProp_OverloadedAssignment; - str8_list_pushf(scratch.arena, &list, "OverloadedAssignment"); - } - if (x & CV_TypeProp_OverloadedCasting) { - x &= ~CV_TypeProp_OverloadedCasting; - str8_list_pushf(scratch.arena, &list, "OverloadedCasting"); - } - if (x & CV_TypeProp_FwdRef) { - x &= ~CV_TypeProp_FwdRef; - str8_list_pushf(scratch.arena, &list, "FwdRef"); - } - if (x & CV_TypeProp_Scoped) { - x &= ~CV_TypeProp_Scoped; - str8_list_pushf(scratch.arena, &list, "Scoped"); - } - if (x & CV_TypeProp_HasUniqueName) { - x &= ~CV_TypeProp_HasUniqueName; - str8_list_pushf(scratch.arena, &list, "HasUniqueName"); - } - if (x & CV_TypeProp_Sealed) { - x &= ~CV_TypeProp_Sealed; - str8_list_pushf(scratch.arena, &list, "Sealed"); - } - if (x & CV_TypeProp_Intrinsic) { - x &= ~CV_TypeProp_Intrinsic; - str8_list_pushf(scratch.arena, &list, "Intrinsic"); - } - if (x != 0) { - str8_list_pushf(scratch.arena, &list, "%x", x); - } - flags_str = str8_list_join(scratch.arena, &list, &(StringJoin){.sep=str8_lit(", ") }); - - if (hfa) { - str8_list_pushf(scratch.arena, &list, "HFA = %S", hfa_str); - } - if (mcom) { - str8_list_pushf(scratch.arena, &list, "MCOM = %S", mcom_str); - } - } - - String8 result = push_str8f(arena, "%S", flags_str); - - scratch_end(scratch); - return result; -} - -internal String8 -cv_string_from_local_flags(Arena *arena, CV_LocalFlags x) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - if (x & CV_LocalFlag_Param) { - str8_list_pushf(scratch.arena, &list, "Param"); - } - if (x & CV_LocalFlag_AddrTaken) { - str8_list_pushf(scratch.arena, &list, "AddrTaken"); - } - if (x & CV_LocalFlag_Compgen) { - str8_list_pushf(scratch.arena, &list, "Compgen"); - } - if (x & CV_LocalFlag_Aggregate) { - str8_list_pushf(scratch.arena, &list, "Aggregate"); - } - if (x & CV_LocalFlag_PartOfAggregate) { - str8_list_pushf(scratch.arena, &list, "PartOfAggregate"); - } - if (x & CV_LocalFlag_Aliased) { - str8_list_pushf(scratch.arena, &list, "Aliased"); - } - if (x & CV_LocalFlag_Alias) { - str8_list_pushf(scratch.arena, &list, "Alias"); - } - if (x & CV_LocalFlag_Retval) { - str8_list_pushf(scratch.arena, &list, "Retval"); - } - if (x & CV_LocalFlag_OptOut) { - str8_list_pushf(scratch.arena, &list, "OptOut"); - } - if (x & CV_LocalFlag_Global) { - str8_list_pushf(scratch.arena, &list, "Global"); - } - if (x & CV_LocalFlag_Static) { - str8_list_pushf(scratch.arena, &list, "Static"); - } - String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - scratch_end(scratch); - return result; -} - -internal String8 -cv_string_from_proc_flags(Arena *arena, CV_ProcFlags x) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - if (x & CV_ProcFlag_NoFPO) { - x &= ~CV_ProcFlag_NoFPO; - str8_list_pushf(scratch.arena, &list, "NoFPO"); - } - if (x & CV_ProcFlag_IntReturn) { - x &= ~CV_ProcFlag_IntReturn; - str8_list_pushf(scratch.arena, &list, "IntReturn"); - } - if (x & CV_ProcFlag_FarReturn) { - x &= ~CV_ProcFlag_FarReturn; - str8_list_pushf(scratch.arena, &list, "FarReturn"); - } - if (x & CV_ProcFlag_NeverReturn) { - x &= ~CV_ProcFlag_NeverReturn; - str8_list_pushf(scratch.arena, &list, "NeverReturn"); - } - if (x & CV_ProcFlag_NotReached) { - x &= ~CV_ProcFlag_NotReached; - str8_list_pushf(scratch.arena, &list, "NotReached"); - } - if (x & CV_ProcFlag_CustomCall) { - x &= ~CV_ProcFlag_CustomCall; - str8_list_pushf(scratch.arena, &list, "CustomCall"); - } - if (x & CV_ProcFlag_NoInline) { - x &= ~CV_ProcFlag_NoInline; - str8_list_pushf(scratch.arena, &list, "NoInline"); - } - if (x & CV_ProcFlag_OptDbgInfo) { - x &= ~CV_ProcFlag_OptDbgInfo; - str8_list_pushf(scratch.arena, &list, "OptDbgInfo"); - } - if (x != 0) { - str8_list_pushf(scratch.arena, &list, "%#x", x); - } - String8 result; - if (list.node_count == 0) { - result = str8_lit("None"); - } else { - result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - } - temp_end(scratch); - return result; -} - -internal String8 -cv_string_from_range_attribs(Arena *arena, CV_RangeAttribs x) -{ (void)arena; - String8 result = str8_lit("None"); - if (x == CV_RangeAttrib_Maybe) { - result = str8_lit("Maybe"); - } - return result; -} - -internal String8 -cv_string_from_defrange_register_rel_flags(Arena *arena, CV_DefrangeRegisterRelFlags x) -{ (void)arena; - String8 result = str8_lit("None"); - if (x == CV_DefrangeRegisterRelFlag_SpilledOutUDTMember) { - result = str8_lit("SpilledOutUDTMember"); - } - return result; -} - -internal String8 -cv_string_from_field_attribs(Arena *arena, CV_FieldAttribs attribs) -{ - Temp scratch = scratch_begin(&arena, 1); - - U32 access = CV_FieldAttribs_Extract_Access(attribs); - U32 mprop = CV_FieldAttribs_Extract_MethodProp(attribs); - attribs &= ~(0x3 | 0x7); - - String8 access_str = cv_string_from_member_access(access); - String8 mprop_str = cv_string_from_method_prop(mprop); - - String8List list = {0}; - { - if (attribs & CV_FieldAttrib_Pseudo) { - attribs &= ~CV_FieldAttrib_Pseudo; - str8_list_pushf(scratch.arena, &list, "Pseudo"); - } - if (attribs & CV_FieldAttrib_NoInherit) { - attribs &= ~CV_FieldAttrib_NoInherit; - str8_list_pushf(scratch.arena, &list, "NoInherit"); - } - if (attribs & CV_FieldAttrib_NoConstruct) { - attribs &= ~CV_FieldAttrib_NoConstruct; - str8_list_pushf(scratch.arena, &list, "NoConstruct"); - } - if (attribs & CV_FieldAttrib_CompilerGenated) { - attribs &= ~CV_FieldAttrib_CompilerGenated; - str8_list_pushf(scratch.arena, &list, "CompilerGenerated"); - } - if (attribs & CV_FieldAttrib_Sealed) { - attribs &= ~CV_FieldAttrib_Sealed; - str8_list_pushf(scratch.arena, &list, "Sealed"); - } - if (attribs) { - str8_list_pushf(scratch.arena, &list, "Unknown: %x", attribs); - } - } - - if (access) { - str8_list_pushf(scratch.arena, &list, "%S", access_str); - } - if (mprop) { - str8_list_pushf(scratch.arena, &list, "%S", mprop_str); - } - - String8 result = str8_list_join(scratch.arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - - scratch_end(scratch); - return result; -} - -internal String8 -cv_string_from_itype(Arena *arena, CV_TypeIndex min_itype, CV_TypeIndex itype) -{ - String8 result = str8_zero(); - if (itype < min_itype) { - String8 n = cv_type_name_from_basic_type((CV_BasicType)itype); - if (n.size) { - Temp scratch = scratch_begin(&arena, 1); - - U64 type = CV_BasicTypeFromTypeId(itype); - char *type_str = "???"; - switch (type) { - case CV_BasicType_NOTYPE: type_str = "NOTYPE"; break; - case CV_BasicType_ABS: type_str = "ABS"; break; - case CV_BasicType_SEGMENT: type_str = "SEGMENT"; break; - case CV_BasicType_VOID: type_str = "VOID"; break; - case CV_BasicType_CURRENCY: type_str = "CURRENCY"; break; - case CV_BasicType_NBASICSTR: type_str = "NBASICSTR"; break; - case CV_BasicType_FBASICSTR: type_str = "FBASICSTR"; break; - case CV_BasicType_NOTTRANS: type_str = "NOTTRANS"; break; - case CV_BasicType_HRESULT: type_str = "HRESULT"; break; - case CV_BasicType_CHAR: type_str = "CHAR"; break; - case CV_BasicType_SHORT: type_str = "SHORT"; break; - case CV_BasicType_LONG: type_str = "LONG"; break; - case CV_BasicType_QUAD: type_str = "QUAD"; break; - case CV_BasicType_OCT: type_str = "OCT"; break; - case CV_BasicType_UCHAR: type_str = "UCHAR"; break; - case CV_BasicType_USHORT: type_str = "USHORT"; break; - case CV_BasicType_ULONG: type_str = "ULONG"; break; - case CV_BasicType_UQUAD: type_str = "UQUAD"; break; - case CV_BasicType_UOCT: type_str = "UOCT"; break; - case CV_BasicType_BOOL8: type_str = "BOOL8"; break; - case CV_BasicType_BOOL16: type_str = "BOOL16"; break; - case CV_BasicType_BOOL32: type_str = "BOOL32"; break; - case CV_BasicType_BOOL64: type_str = "BOOL64"; break; - case CV_BasicType_FLOAT32: type_str = "FLOAT32"; break; - case CV_BasicType_FLOAT64: type_str = "FLOAT64"; break; - case CV_BasicType_FLOAT80: type_str = "FLOAT80"; break; - case CV_BasicType_FLOAT128: type_str = "FLOAT128"; break; - case CV_BasicType_FLOAT48: type_str = "FLOAT48"; break; - case CV_BasicType_FLOAT32PP: type_str = "FLOAT32PP"; break; - case CV_BasicType_FLOAT16: type_str = "FLOAT16"; break; - case CV_BasicType_COMPLEX32: type_str = "COMPLEX32"; break; - case CV_BasicType_COMPLEX64: type_str = "COMPLEX64"; break; - case CV_BasicType_COMPLEX80: type_str = "COMPLEX80"; break; - case CV_BasicType_COMPLEX128: type_str = "COMPLEX128"; break; - case CV_BasicType_BIT: type_str = "BIT"; break; - case CV_BasicType_PASCHAR: type_str = "PASCHAR"; break; - case CV_BasicType_BOOL32FF: type_str = "BOOL32FF"; break; - case CV_BasicType_INT8: type_str = "INT8"; break; - case CV_BasicType_UINT8: type_str = "UINT8"; break; - case CV_BasicType_RCHAR: type_str = "RCHAR"; break; - case CV_BasicType_WCHAR: type_str = "WCHAR"; break; - case CV_BasicType_INT16: type_str = "INT16"; break; - case CV_BasicType_UINT16: type_str = "UINT16"; break; - case CV_BasicType_INT32: type_str = "INT32"; break; - case CV_BasicType_UINT32: type_str = "UINT32"; break; - case CV_BasicType_INT64: type_str = "INT64"; break; - case CV_BasicType_UINT64: type_str = "UINT64"; break; - case CV_BasicType_INT128: type_str = "INT128"; break; - case CV_BasicType_UINT128: type_str = "UINT128"; break; - case CV_BasicType_CHAR16: type_str = "CHAR16"; break; - case CV_BasicType_CHAR32: type_str = "CHAR32"; break; - case CV_BasicType_CHAR8: type_str = "CHAR8"; break; - case CV_BasicType_PTR: type_str = "PTR"; break; - } - - U64 ptr = CV_BasicPointerKindFromTypeId(itype); - char *ptr_str = ""; - switch (ptr) { - case 0x1: ptr_str = "P"; break; - case 0x2: ptr_str = "PF"; break; - case 0x3: ptr_str = "PH"; break; - case 0x4: ptr_str = "32P"; break; - case 0x5: ptr_str = "32PF"; break; - case 0x6: ptr_str = "64P"; break; - } - - n = upper_from_str8(scratch.arena, n); - result = push_str8f(arena, "T_%s%s(%x)", ptr_str, type_str, itype); - scratch_end(scratch); - } else { - result = push_str8f(arena, "%x", itype); - } - } else { - result = push_str8f(arena, "%x", itype); - } - return result; -} - -internal String8 -cv_string_from_itemid(Arena *arena, CV_ItemId itemid) -{ - String8 result = push_str8f(arena, "%x", itemid); - return result; -} - -internal String8 -cv_string_from_symbol_type(Arena *arena, CV_SymKind symbol_type) -{ - String8 str = cv_string_from_sym_kind(symbol_type); - String8 result = push_str8f(arena, "S_%S", str); - return result; -} - -internal String8 -cv_string_from_symbol_kind(Arena *arena, CV_SymKind kind) -{ - String8 str = cv_string_from_sym_kind(kind); - String8 result = push_str8f(arena, "S_%S", str); - return result; -} - -internal String8 -cv_string_from_leaf_name(Arena *arena, U32 leaf_type) -{ - String8 str = cv_string_from_leaf_kind(leaf_type); - String8 result = push_str8f(arena, "LF_%S", str); - return result; -} - -internal String8 -cv_string_sec_off(Arena *arena, U32 sec, U32 off) -{ - return push_str8f(arena, "%04x:%08x", sec, off); -} - diff --git a/src/codeview/codeview_enum.h b/src/codeview/codeview_enum.h deleted file mode 100644 index 1dd0615a..00000000 --- a/src/codeview/codeview_enum.h +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef CODEVIEW_ENUM_H -#define CODEVIEW_ENUM_H - -internal String8 cv_string_from_type_index_source(CV_TypeIndexSource ti_source); -internal String8 cv_string_from_language(CV_Language x); -internal String8 cv_string_from_numeric(Arena *arena, CV_NumericParsed num); -internal String8 cv_string_from_reg_id(Arena *arena, CV_Arch arch, U32 id); -internal String8 cv_string_from_member_access(CV_MemberAccess x); -internal String8 cv_string_from_method_prop(CV_MethodProp x); -internal String8 cv_string_from_hfa(CV_HFAKind x); -internal String8 cv_string_from_mcom(CV_MoComUDTKind x); -internal String8 cv_string_from_binary_opcode(CV_InlineBinaryAnnotation x); -internal String8 cv_string_from_thunk_ordinal(CV_ThunkOrdinal x); -internal String8 cv_string_from_frame_cookie_kind(CV_FrameCookieKind x); -internal String8 cv_string_from_generic_style(CV_GenericStyle x); -internal String8 cv_string_from_trampoline_kind(CV_TrampolineKind x); -internal String8 cv_string_from_virtual_table_shape_kind(CV_VirtualTableShape x); -internal String8 cv_string_from_call_kind(CV_CallKind x); -internal String8 cv_string_from_member_pointer_kind(CV_MemberPointerKind x); -internal String8 cv_string_from_pointer_kind(CV_PointerKind x); -internal String8 cv_string_from_pointer_mode(CV_PointerMode x); -internal String8 cv_string_from_c13_checksum_kind(CV_C13ChecksumKind x); -internal String8 cv_string_from_label_kind(Arena *arena, CV_LabelKind x); -internal String8 cv_string_from_c13_subsection_kind(CV_C13SubSectionKind x); -internal String8 cv_string_from_modifier_flags(Arena *arena, CV_ModifierFlags x); -internal String8 cv_string_from_pointer_attribs(Arena *arena, CV_PointerAttribs x); -internal String8 cv_string_from_function_attribs(Arena *arena, CV_FunctionAttribs x); -internal String8 cv_string_from_export_flags(Arena *arena, CV_ExportFlags x); -internal String8 cv_string_from_sepcode(Arena *arena, CV_SepcodeFlags x); -internal String8 cv_string_from_pub32_flags(Arena *arena, CV_Pub32Flags x); -internal String8 cv_string_from_generic_flags(Arena *arena, CV_GenericFlags x); -internal String8 cv_string_from_frame_proc_flags(Arena *arena, CV_FrameprocFlags x); -internal String8 cv_string_from_type_props(Arena *arena, CV_TypeProps32 x); -internal String8 cv_string_from_local_flags(Arena *arena, CV_LocalFlags x); -internal String8 cv_string_from_proc_flags(Arena *arena, CV_ProcFlags x); -internal String8 cv_string_from_range_attribs(Arena *arena, CV_RangeAttribs x); -internal String8 cv_string_from_defrange_register_rel_flags(Arena *arena, CV_DefrangeRegisterRelFlags x); -internal String8 cv_string_from_field_attribs(Arena *arena, CV_FieldAttribs attribs); -internal String8 cv_string_from_itype(Arena *arena, CV_TypeIndex min_itype, CV_TypeIndex itype); -internal String8 cv_string_from_itemid(Arena *arena, CV_ItemId itemid); -internal String8 cv_string_from_symbol_type(Arena *arena, CV_SymKind symbol_type); -internal String8 cv_string_from_symbol_kind(Arena *arena, CV_SymKind kind); -internal String8 cv_string_from_leaf_name(Arena *arena, U32 leaf_type); -internal String8 cv_string_sec_off(Arena *arena, U32 sec, U32 off); - -#endif // CODEVIEW_ENUM_H - - diff --git a/src/coff/coff.c b/src/coff/coff.c index 582c38b2..81ec2bf8 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -358,3 +358,480 @@ coff_foff_from_voff(COFF_SectionHeader *sections, U64 section_count, U64 voff) return foff; } +//////////////////////////////// +//~ rjf: Enum -> String + +internal String8 +coff_string_from_time_stamp(Arena *arena, COFF_TimeStamp time_stamp) +{ + String8 result; + if (time_stamp == 0) { + result = str8_lit("0"); + } else if (time_stamp >= max_U32) { + result = str8_lit("-1"); + } else { + DateTime dt = date_time_from_unix_time(time_stamp); + result = push_date_time_string(arena, &dt); + } + return result; +} + +read_only struct +{ + String8 string; + COFF_MachineType machine; +} g_coff_machine_map[] = { + { str8_lit_comp(""), COFF_MachineType_Unknown }, + { str8_lit_comp("X86"), COFF_MachineType_X86 }, + { str8_lit_comp("Amd64"), COFF_MachineType_X64 }, + { str8_lit_comp("X64"), COFF_MachineType_X64 }, + { str8_lit_comp("Am33"), COFF_MachineType_Am33 }, + { str8_lit_comp("Arm"), COFF_MachineType_Arm }, + { str8_lit_comp("Arm64"), COFF_MachineType_Arm64 }, + { str8_lit_comp("ArmNt"), COFF_MachineType_ArmNt }, + { str8_lit_comp("Ebc"), COFF_MachineType_Ebc }, + { str8_lit_comp("Ia64"), COFF_MachineType_Ia64 }, + { str8_lit_comp("M32r"), COFF_MachineType_M32R }, + { str8_lit_comp("Mips16"), COFF_MachineType_Mips16 }, + { str8_lit_comp("MipsFpu"), COFF_MachineType_MipsFpu }, + { str8_lit_comp("MipsFpu16"), COFF_MachineType_MipsFpu16 }, + { str8_lit_comp("PowerPc"), COFF_MachineType_PowerPc }, + { str8_lit_comp("PowerPcFp"), COFF_MachineType_PowerPcFp }, + { str8_lit_comp("R4000"), COFF_MachineType_R4000 }, + { str8_lit_comp("RiscV32"), COFF_MachineType_RiscV32 }, + { str8_lit_comp("RiscV64"), COFF_MachineType_RiscV64 }, + { str8_lit_comp("Sh3"), COFF_MachineType_Sh3 }, + { str8_lit_comp("Sh3Dsp"), COFF_MachineType_Sh3Dsp }, + { str8_lit_comp("Sh4"), COFF_MachineType_Sh4 }, + { str8_lit_comp("Sh5"), COFF_MachineType_Sh5 }, + { str8_lit_comp("Thumb"), COFF_MachineType_Thumb }, + { str8_lit_comp("WceMipsV2"), COFF_MachineType_WceMipsV2 }, +}; + +read_only static struct { + char * name; + COFF_ImportType type; +} g_coff_import_header_type_map[] = { + { "Code", COFF_ImportHeader_Code }, + { "Data", COFF_ImportHeader_Data }, + { "Const", COFF_ImportHeader_Const }, +}; + +internal String8 +coff_string_from_comdat_select_type(COFF_ComdatSelectType type) +{ + String8 result = str8_zero(); + switch (type) { + case COFF_ComdatSelect_Null: result = str8_lit("Null"); break; + case COFF_ComdatSelect_NoDuplicates: result = str8_lit("NoDuplicates"); break; + case COFF_ComdatSelect_Any: result = str8_lit("Any"); break; + case COFF_ComdatSelect_SameSize: result = str8_lit("SameSize"); break; + case COFF_ComdatSelect_ExactMatch: result = str8_lit("ExactMatch"); break; + case COFF_ComdatSelect_Associative: result = str8_lit("Associative"); break; + case COFF_ComdatSelect_Largest: result = str8_lit("Largest"); break; + } + return result; +} + +internal String8 +coff_string_from_machine_type(COFF_MachineType machine) +{ + for (U64 i = 0; i < ArrayCount(g_coff_machine_map); ++i) { + if (g_coff_machine_map[i].machine == machine) { + return g_coff_machine_map[i].string; + } + } + return str8_zero(); +} + +internal String8 +coff_string_from_flags(Arena *arena, COFF_FileHeaderFlags flags) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + + if (flags & COFF_FileHeaderFlag_RelocStripped) { + str8_list_pushf(scratch.arena, &list, "Relocs Stripped"); + } + if (flags & COFF_FileHeaderFlag_ExecutableImage) { + str8_list_pushf(scratch.arena, &list, "Executable"); + } + if (flags & COFF_FileHeaderFlag_LineNumbersStripped) { + str8_list_pushf(scratch.arena, &list, "Line Numbers Stripped"); + } + if (flags & COFF_FileHeaderFlag_SymbolsStripped) { + str8_list_pushf(scratch.arena, &list, "Symbols Stripped"); + } + if (flags & COFF_FileHeaderFlag_LargeAddressAware) { + str8_list_pushf(scratch.arena, &list, "Large Address Aware"); + } + if (flags & COFF_FileHeaderFlag_32BitMachine) { + str8_list_pushf(scratch.arena, &list, "32-Bit Machine"); + } + if (flags & COFF_FileHeaderFlag_DebugStripped) { + str8_list_pushf(scratch.arena, &list, "Debug Stripped"); + } + if (flags & COFF_FileHeaderFlag_RemovableRunFromSwap) { + str8_list_pushf(scratch.arena, &list, "Removeable Run From Swap"); + } + if (flags & COFF_FileHeaderFlag_NetRunFromSwap) { + str8_list_pushf(scratch.arena, &list, "Net Run From Swap"); + } + if (flags & COFF_FileHeaderFlag_System) { + str8_list_pushf(scratch.arena, &list, "System"); + } + if (flags & COFF_FileHeaderFlag_Dll) { + str8_list_pushf(scratch.arena, &list, "DLL"); + } + if (flags & COFF_FileHeaderFlag_UpSystemOnly) { + str8_list_pushf(scratch.arena, &list, "Up System Only"); + } + + String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + + scratch_end(scratch); + return result; +} + +internal String8 +coff_string_from_section_flags(Arena *arena, COFF_SectionFlags flags) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + + if (flags & COFF_SectionFlag_TypeNoPad) { + str8_list_pushf(scratch.arena, &list, "TypeNoPad"); + } + if (flags & COFF_SectionFlag_CntCode) { + str8_list_pushf(scratch.arena, &list, "CntCode"); + } + if (flags & COFF_SectionFlag_CntInitializedData) { + str8_list_pushf(scratch.arena, &list, "CntInitializedData"); + } + if (flags & COFF_SectionFlag_CntUninitializedData) { + str8_list_pushf(scratch.arena, &list, "CntUninitializedData"); + } + if (flags & COFF_SectionFlag_LnkOther) { + str8_list_pushf(scratch.arena, &list, "LnkOther"); + } + if (flags & COFF_SectionFlag_LnkInfo) { + str8_list_pushf(scratch.arena, &list, "LnkInfo"); + } + if (flags & COFF_SectionFlag_LnkCOMDAT) { + str8_list_pushf(scratch.arena, &list, "LnkCOMDAT"); + } + if (flags & COFF_SectionFlag_GpRel) { + str8_list_pushf(scratch.arena, &list, "GpRel"); + } + if (flags & COFF_SectionFlag_Mem16Bit) { + str8_list_pushf(scratch.arena, &list, "Mem16Bit"); + } + if (flags & COFF_SectionFlag_MemLocked) { + str8_list_pushf(scratch.arena, &list, "MemLocked"); + } + if (flags & COFF_SectionFlag_MemPreload) { + str8_list_pushf(scratch.arena, &list, "MemPreload"); + } + if (flags & COFF_SectionFlag_LnkNRelocOvfl) { + str8_list_pushf(scratch.arena, &list, "LnkNRelocOvfl"); + } + if (flags & COFF_SectionFlag_MemDiscardable) { + str8_list_pushf(scratch.arena, &list, "MemDiscardable"); + } + if (flags & COFF_SectionFlag_MemNotCached) { + str8_list_pushf(scratch.arena, &list, "MemNotCached"); + } + if (flags & COFF_SectionFlag_MemNotPaged) { + str8_list_pushf(scratch.arena, &list, "MemNotPaged"); + } + if (flags & COFF_SectionFlag_MemShared) { + str8_list_pushf(scratch.arena, &list, "MemShared"); + } + if (flags & COFF_SectionFlag_MemExecute) { + str8_list_pushf(scratch.arena, &list, "MemExecute"); + } + if (flags & COFF_SectionFlag_MemRead) { + str8_list_pushf(scratch.arena, &list, "MemRead"); + } + if (flags & COFF_SectionFlag_MemWrite) { + str8_list_pushf(scratch.arena, &list, "MemWrite"); + } + + U64 align = coff_align_size_from_section_flags(flags); + if (align) { + str8_list_pushf(scratch.arena, &list, "Align=%u", align); + } + + if (!list.node_count) { + str8_list_pushf(scratch.arena, &list, "None"); + } + + StringJoin join = {0}; + join.sep = str8_lit(", "); + String8 result = str8_list_join(arena, &list, &join); + + scratch_end(scratch); + return result; +} + +internal String8 +coff_string_from_resource_memory_flags(Arena *arena, COFF_ResourceMemoryFlags flags) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8List list = {0}; + + if (flags & COFF_ResourceMemoryFlag_Moveable) { + flags &= COFF_ResourceMemoryFlag_Moveable; + str8_list_pushf(scratch.arena, &list, "Moveable"); + } + if (flags & COFF_ResourceMemoryFlag_Pure) { + flags &= COFF_ResourceMemoryFlag_Pure; + str8_list_pushf(scratch.arena, &list, "Pure"); + } + if (flags & COFF_ResourceMemoryFlag_Discardable) { + flags &= COFF_ResourceMemoryFlag_Discardable; + str8_list_pushf(scratch.arena, &list, "Discardable"); + } + if (flags != 0) { + str8_list_pushf(scratch.arena, &list, "%#x", flags); + } + + String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + + scratch_end(scratch); + return result; +} + +internal String8 +coff_string_from_import_header_type(COFF_ImportType type) +{ + for (U64 i = 0; i < ArrayCount(g_coff_import_header_type_map); ++i) { + if (g_coff_import_header_type_map[i].type == type) { + return str8_cstring(g_coff_import_header_type_map[i].name); + } + } + return str8(0,0); +} + +internal String8 +coff_string_from_sym_dtype(COFF_SymDType x) +{ + switch (x) { + case COFF_SymDType_Null: return str8_lit("Null"); + case COFF_SymDType_Ptr : return str8_lit("Ptr"); + case COFF_SymDType_Func: return str8_lit("Func"); + case COFF_SymDType_Array: return str8_lit("Array"); + } + return str8_zero(); +} + +internal String8 +coff_string_from_sym_type(COFF_SymType x) +{ + switch (x) { + case COFF_SymType_Null: return str8_lit("Null"); + case COFF_SymType_Void: return str8_lit("Void"); + case COFF_SymType_Char: return str8_lit("Char"); + case COFF_SymType_Short: return str8_lit("Short"); + case COFF_SymType_Int: return str8_lit("Int"); + case COFF_SymType_Long: return str8_lit("Long"); + case COFF_SymType_Float: return str8_lit("Float"); + case COFF_SymType_Double: return str8_lit("Double"); + case COFF_SymType_Struct: return str8_lit("Struct"); + case COFF_SymType_Union: return str8_lit("Union"); + case COFF_SymType_Enum: return str8_lit("Enum"); + case COFF_SymType_MemberOfEnumeration: return str8_lit("MOE"); + case COFF_SymType_Byte: return str8_lit("Byte"); + case COFF_SymType_Word: return str8_lit("Word"); + case COFF_SymType_UInt: return str8_lit("UInt"); + case COFF_SymType_DWord: return str8_lit("DWord"); + } + return str8_zero(); +} + +internal String8 +coff_string_from_sym_storage_class(COFF_SymStorageClass x) +{ + switch (x) { + case COFF_SymStorageClass_Null: break; + case COFF_SymStorageClass_EndOfFunction: return str8_lit("EndOfFunction"); + case COFF_SymStorageClass_Automatic: return str8_lit("Automatic"); + case COFF_SymStorageClass_External: return str8_lit("External"); + case COFF_SymStorageClass_Static: return str8_lit("Static"); + case COFF_SymStorageClass_Register: return str8_lit("Register"); + case COFF_SymStorageClass_ExternalDef: return str8_lit("Def"); + case COFF_SymStorageClass_Label: return str8_lit("Label"); + case COFF_SymStorageClass_UndefinedLabel: return str8_lit("UndefinedLabel"); + case COFF_SymStorageClass_MemberOfStruct: return str8_lit("Struct"); + case COFF_SymStorageClass_Argument: return str8_lit("Argument"); + case COFF_SymStorageClass_StructTag: return str8_lit("Tag"); + case COFF_SymStorageClass_MemberOfUnion: return str8_lit("Union"); + case COFF_SymStorageClass_UnionTag: return str8_lit("Tag"); + case COFF_SymStorageClass_TypeDefinition: return str8_lit("Definition"); + case COFF_SymStorageClass_UndefinedStatic: return str8_lit("Static"); + case COFF_SymStorageClass_EnumTag: return str8_lit("Tag"); + case COFF_SymStorageClass_MemberOfEnum: return str8_lit("Enum"); + case COFF_SymStorageClass_RegisterParam: return str8_lit("Param"); + case COFF_SymStorageClass_BitField: return str8_lit("Field"); + case COFF_SymStorageClass_Block: return str8_lit("Block"); + case COFF_SymStorageClass_Function: return str8_lit("Function"); + case COFF_SymStorageClass_EndOfStruct: return str8_lit("Struct"); + case COFF_SymStorageClass_File: return str8_lit("File"); + case COFF_SymStorageClass_Section: return str8_lit("Section"); + case COFF_SymStorageClass_WeakExternal: return str8_lit("External"); + case COFF_SymStorageClass_CLRToken: return str8_lit("Token"); + } + return str8_zero(); +} + +internal String8 +coff_string_from_weak_ext_type(COFF_WeakExtType x) +{ + switch (x) { + case COFF_WeakExt_NoLibrary: return str8_lit("NoLibrary"); + case COFF_WeakExt_SearchLibrary: return str8_lit("SearchLibrary"); + case COFF_WeakExt_SearchAlias: return str8_lit("SearchAlias"); + } + return str8_zero(); +} + +internal String8 +coff_string_from_reloc_x86(COFF_Reloc_X86 x) +{ + switch (x) { + case COFF_Reloc_X86_Abs: return str8_lit("Abs"); + case COFF_Reloc_X86_Dir16: return str8_lit("Dir16"); + case COFF_Reloc_X86_Rel16: return str8_lit("Rel16"); + case COFF_Reloc_X86_Unknown0: return str8_lit("Unknown0"); + case COFF_Reloc_X86_Unknown2: return str8_lit("Unknown2"); + case COFF_Reloc_X86_Unknown3: return str8_lit("Unknown3"); + case COFF_Reloc_X86_Dir32: return str8_lit("Dir32"); + case COFF_Reloc_X86_Dir32Nb: return str8_lit("Dir32Nb"); + case COFF_Reloc_X86_Seg12: return str8_lit("Seg12"); + case COFF_Reloc_X86_Section: return str8_lit("Section"); + case COFF_Reloc_X86_SecRel: return str8_lit("SecRel"); + case COFF_Reloc_X86_Token: return str8_lit("Token"); + case COFF_Reloc_X86_SecRel7: return str8_lit("SecRel7"); + case COFF_Reloc_X86_Unknown4: return str8_lit("Unknown4"); + case COFF_Reloc_X86_Unknown5: return str8_lit("Unknown5"); + case COFF_Reloc_X86_Unknown6: return str8_lit("Unknown6"); + case COFF_Reloc_X86_Unknown7: return str8_lit("Unknown7"); + case COFF_Reloc_X86_Unknown8: return str8_lit("Unknown8"); + case COFF_Reloc_X86_Unknown9: return str8_lit("Unknown9"); + case COFF_Reloc_X86_Rel32: return str8_lit("Rel32"); + } + return str8_zero(); +} + +internal String8 +coff_string_from_reloc_x64(COFF_Reloc_X64 x) +{ + switch (x) { + case COFF_Reloc_X64_Abs: return str8_lit("Abs"); + case COFF_Reloc_X64_Addr64: return str8_lit("Addr64"); + case COFF_Reloc_X64_Addr32: return str8_lit("Addr32"); + case COFF_Reloc_X64_Addr32Nb: return str8_lit("Addr32Nb"); + case COFF_Reloc_X64_Rel32: return str8_lit("Rel32"); + case COFF_Reloc_X64_Rel32_1: return str8_lit("Rel32_1"); + case COFF_Reloc_X64_Rel32_2: return str8_lit("Rel32_2"); + case COFF_Reloc_X64_Rel32_3: return str8_lit("Rel32_3"); + case COFF_Reloc_X64_Rel32_4: return str8_lit("Rel32_4"); + case COFF_Reloc_X64_Rel32_5: return str8_lit("Rel32_5"); + case COFF_Reloc_X64_Section: return str8_lit("Section"); + case COFF_Reloc_X64_SecRel: return str8_lit("SecRel"); + case COFF_Reloc_X64_SecRel7: return str8_lit("SecRel7"); + case COFF_Reloc_X64_Token: return str8_lit("Token"); + case COFF_Reloc_X64_SRel32: return str8_lit("SRel32"); + case COFF_Reloc_X64_Pair: return str8_lit("Pair"); + case COFF_Reloc_X64_SSpan32: return str8_lit("SSpan32"); + } + return str8_zero(); +} + +internal String8 +coff_string_from_reloc_arm(COFF_Reloc_Arm x) +{ + switch (x) { + case COFF_Reloc_Arm_Abs: return str8_lit("Abs"); + case COFF_Reloc_Arm_Addr32: return str8_lit("Addr32"); + case COFF_Reloc_Arm_Addr32Nb: return str8_lit("Addr32Nb"); + case COFF_Reloc_Arm_Branch24: return str8_lit("Branch24"); + case COFF_Reloc_Arm_Branch11: return str8_lit("Branch11"); + case COFF_Reloc_Arm_Unknown1: return str8_lit("Unknown1"); + case COFF_Reloc_Arm_Unknown2: return str8_lit("Unknown2"); + case COFF_Reloc_Arm_Unknown3: return str8_lit("Unknown3"); + case COFF_Reloc_Arm_Unknown4: return str8_lit("Unknown4"); + case COFF_Reloc_Arm_Unknown5: return str8_lit("Unknown5"); + case COFF_Reloc_Arm_Rel32: return str8_lit("Rel32"); + case COFF_Reloc_Arm_Section: return str8_lit("Section"); + case COFF_Reloc_Arm_SecRel: return str8_lit("SecRel"); + case COFF_Reloc_Arm_Mov32: return str8_lit("Mov32"); + case COFF_Reloc_Arm_ThumbMov32: return str8_lit("ThumbMov32"); + case COFF_Reloc_Arm_ThumbBranch20: return str8_lit("ThumbBranch20"); + case COFF_Reloc_Arm_Unused: return str8_lit("Unused"); + case COFF_Reloc_Arm_ThumbBranch24: return str8_lit("ThumbBranch24"); + case COFF_Reloc_Arm_ThumbBlx23: return str8_lit("ThumbBlx23"); + case COFF_Reloc_Arm_Pair: return str8_lit("Pair"); + } + return str8_zero(); +} + +internal String8 +coff_string_from_reloc_arm64(COFF_Reloc_Arm64 x) +{ + switch (x) { + case COFF_Reloc_Arm64_Abs: return str8_lit("Abs"); + case COFF_Reloc_Arm64_Addr32: return str8_lit("Addr32"); + case COFF_Reloc_Arm64_Addr32Nb: return str8_lit("Addr32Nb"); + case COFF_Reloc_Arm64_Branch26: return str8_lit("Branch26"); + case COFF_Reloc_Arm64_PageBaseRel21: return str8_lit("PageBaseRel21"); + case COFF_Reloc_Arm64_Rel21: return str8_lit("Rel21"); + case COFF_Reloc_Arm64_PageOffset12a: return str8_lit("PageOffset12a"); + case COFF_Reloc_Arm64_SecRel: return str8_lit("SecRel"); + case COFF_Reloc_Arm64_SecRelLow12a: return str8_lit("SecRelLow12a"); + case COFF_Reloc_Arm64_SecRelHigh12a: return str8_lit("SecRelHigh12a"); + case COFF_Reloc_Arm64_SecRelLow12l: return str8_lit("SecRelLow12l"); + case COFF_Reloc_Arm64_Token: return str8_lit("Token"); + case COFF_Reloc_Arm64_Section: return str8_lit("Section"); + case COFF_Reloc_Arm64_Addr64: return str8_lit("Addr64"); + case COFF_Reloc_Arm64_Branch19: return str8_lit("Branch19"); + case COFF_Reloc_Arm64_Branch14: return str8_lit("Branch14"); + case COFF_Reloc_Arm64_Rel32: return str8_lit("Rel32"); + } + return str8_zero(); +} + +internal String8 +coff_string_from_reloc(COFF_MachineType machine, COFF_RelocType x) +{ + switch (machine) { + case COFF_MachineType_X86: return coff_string_from_reloc_x86(x); + case COFF_MachineType_X64: return coff_string_from_reloc_x64(x); + case COFF_MachineType_Arm: return coff_string_from_reloc_arm(x); + case COFF_MachineType_Arm64: return coff_string_from_reloc_arm64(x); + } + return str8_zero(); +} + +internal COFF_MachineType +coff_machine_from_string(String8 string) +{ + for (U64 i = 0; i < ArrayCount(g_coff_machine_map); ++i) { + if (str8_match(g_coff_machine_map[i].string, string, StringMatchFlag_CaseInsensitive)) { + return g_coff_machine_map[i].machine; + } + } + return COFF_MachineType_Unknown; +} + +internal COFF_ImportType +coff_import_header_type_from_string(String8 name) +{ + for (U64 i = 0; i < ArrayCount(g_coff_import_header_type_map); ++i) { + if (str8_match(str8_cstring(g_coff_import_header_type_map[i].name), name, StringMatchFlag_CaseInsensitive)) { + return g_coff_import_header_type_map[i].type; + } + } + return COFF_ImportType_Invalid; +} diff --git a/src/coff/coff.h b/src/coff/coff.h index 8961ca3c..92328f66 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -601,4 +601,27 @@ internal U64 coff_default_dll_base_from_machine(COFF_MachineType machine); internal Arch arch_from_coff_machine(COFF_MachineType machine); internal U64 coff_foff_from_voff(COFF_SectionHeader *sections, U64 section_count, U64 voff); +//////////////////////////////// +//~ rjf: Enum <=> String + +internal String8 coff_string_from_time_stamp(Arena *arena, COFF_TimeStamp time_stamp); +internal String8 coff_string_from_comdat_select_type(COFF_ComdatSelectType type); +internal String8 coff_string_from_machine_type(COFF_MachineType machine); +internal String8 coff_string_from_flags(Arena *arena, COFF_FileHeaderFlags flags); +internal String8 coff_string_from_section_flags(Arena *arena, COFF_SectionFlags flags); +internal String8 coff_string_from_resource_memory_flags(Arena *arena, COFF_ResourceMemoryFlags flags); +internal String8 coff_string_from_import_header_type(COFF_ImportType type); +internal String8 coff_string_from_sym_dtype(COFF_SymDType x); +internal String8 coff_string_from_sym_type(COFF_SymType x); +internal String8 coff_string_from_sym_storage_class(COFF_SymStorageClass x); +internal String8 coff_string_from_weak_ext_type(COFF_WeakExtType x); +internal String8 coff_string_from_reloc_x86(COFF_Reloc_X86 x); +internal String8 coff_string_from_reloc_x64(COFF_Reloc_X64 x); +internal String8 coff_string_from_reloc_arm(COFF_Reloc_Arm x); +internal String8 coff_string_from_reloc_arm64(COFF_Reloc_Arm64 x); +internal String8 coff_string_from_reloc(COFF_MachineType machine, COFF_RelocType x); + +internal COFF_MachineType coff_machine_from_string(String8 string); +internal COFF_ImportType coff_import_header_type_from_string(String8 name); + #endif // COFF_H diff --git a/src/coff/coff_enum.c b/src/coff/coff_enum.c deleted file mode 100644 index 430f139d..00000000 --- a/src/coff/coff_enum.c +++ /dev/null @@ -1,480 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -internal String8 -coff_string_from_time_stamp(Arena *arena, COFF_TimeStamp time_stamp) -{ - String8 result; - if (time_stamp == 0) { - result = str8_lit("0"); - } else if (time_stamp >= max_U32) { - result = str8_lit("-1"); - } else { - DateTime dt = date_time_from_unix_time(time_stamp); - result = push_date_time_string(arena, &dt); - } - return result; -} - -read_only struct -{ - String8 string; - COFF_MachineType machine; -} g_coff_machine_map[] = { - { str8_lit_comp(""), COFF_MachineType_Unknown }, - { str8_lit_comp("X86"), COFF_MachineType_X86 }, - { str8_lit_comp("Amd64"), COFF_MachineType_X64 }, - { str8_lit_comp("X64"), COFF_MachineType_X64 }, - { str8_lit_comp("Am33"), COFF_MachineType_Am33 }, - { str8_lit_comp("Arm"), COFF_MachineType_Arm }, - { str8_lit_comp("Arm64"), COFF_MachineType_Arm64 }, - { str8_lit_comp("ArmNt"), COFF_MachineType_ArmNt }, - { str8_lit_comp("Ebc"), COFF_MachineType_Ebc }, - { str8_lit_comp("Ia64"), COFF_MachineType_Ia64 }, - { str8_lit_comp("M32r"), COFF_MachineType_M32R }, - { str8_lit_comp("Mips16"), COFF_MachineType_Mips16 }, - { str8_lit_comp("MipsFpu"), COFF_MachineType_MipsFpu }, - { str8_lit_comp("MipsFpu16"), COFF_MachineType_MipsFpu16 }, - { str8_lit_comp("PowerPc"), COFF_MachineType_PowerPc }, - { str8_lit_comp("PowerPcFp"), COFF_MachineType_PowerPcFp }, - { str8_lit_comp("R4000"), COFF_MachineType_R4000 }, - { str8_lit_comp("RiscV32"), COFF_MachineType_RiscV32 }, - { str8_lit_comp("RiscV64"), COFF_MachineType_RiscV64 }, - { str8_lit_comp("Sh3"), COFF_MachineType_Sh3 }, - { str8_lit_comp("Sh3Dsp"), COFF_MachineType_Sh3Dsp }, - { str8_lit_comp("Sh4"), COFF_MachineType_Sh4 }, - { str8_lit_comp("Sh5"), COFF_MachineType_Sh5 }, - { str8_lit_comp("Thumb"), COFF_MachineType_Thumb }, - { str8_lit_comp("WceMipsV2"), COFF_MachineType_WceMipsV2 }, -}; - -read_only static struct { - char * name; - COFF_ImportType type; -} g_coff_import_header_type_map[] = { - { "Code", COFF_ImportHeader_Code }, - { "Data", COFF_ImportHeader_Data }, - { "Const", COFF_ImportHeader_Const }, -}; - -internal String8 -coff_string_from_comdat_select_type(COFF_ComdatSelectType type) -{ - String8 result = str8_zero(); - switch (type) { - case COFF_ComdatSelect_Null: result = str8_lit("Null"); break; - case COFF_ComdatSelect_NoDuplicates: result = str8_lit("NoDuplicates"); break; - case COFF_ComdatSelect_Any: result = str8_lit("Any"); break; - case COFF_ComdatSelect_SameSize: result = str8_lit("SameSize"); break; - case COFF_ComdatSelect_ExactMatch: result = str8_lit("ExactMatch"); break; - case COFF_ComdatSelect_Associative: result = str8_lit("Associative"); break; - case COFF_ComdatSelect_Largest: result = str8_lit("Largest"); break; - } - return result; -} - -internal String8 -coff_string_from_machine_type(COFF_MachineType machine) -{ - for (U64 i = 0; i < ArrayCount(g_coff_machine_map); ++i) { - if (g_coff_machine_map[i].machine == machine) { - return g_coff_machine_map[i].string; - } - } - return str8_zero(); -} - -internal String8 -coff_string_from_flags(Arena *arena, COFF_FileHeaderFlags flags) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - - if (flags & COFF_FileHeaderFlag_RelocStripped) { - str8_list_pushf(scratch.arena, &list, "Relocs Stripped"); - } - if (flags & COFF_FileHeaderFlag_ExecutableImage) { - str8_list_pushf(scratch.arena, &list, "Executable"); - } - if (flags & COFF_FileHeaderFlag_LineNumbersStripped) { - str8_list_pushf(scratch.arena, &list, "Line Numbers Stripped"); - } - if (flags & COFF_FileHeaderFlag_SymbolsStripped) { - str8_list_pushf(scratch.arena, &list, "Symbols Stripped"); - } - if (flags & COFF_FileHeaderFlag_LargeAddressAware) { - str8_list_pushf(scratch.arena, &list, "Large Address Aware"); - } - if (flags & COFF_FileHeaderFlag_32BitMachine) { - str8_list_pushf(scratch.arena, &list, "32-Bit Machine"); - } - if (flags & COFF_FileHeaderFlag_DebugStripped) { - str8_list_pushf(scratch.arena, &list, "Debug Stripped"); - } - if (flags & COFF_FileHeaderFlag_RemovableRunFromSwap) { - str8_list_pushf(scratch.arena, &list, "Removeable Run From Swap"); - } - if (flags & COFF_FileHeaderFlag_NetRunFromSwap) { - str8_list_pushf(scratch.arena, &list, "Net Run From Swap"); - } - if (flags & COFF_FileHeaderFlag_System) { - str8_list_pushf(scratch.arena, &list, "System"); - } - if (flags & COFF_FileHeaderFlag_Dll) { - str8_list_pushf(scratch.arena, &list, "DLL"); - } - if (flags & COFF_FileHeaderFlag_UpSystemOnly) { - str8_list_pushf(scratch.arena, &list, "Up System Only"); - } - - String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - - scratch_end(scratch); - return result; -} - -internal String8 -coff_string_from_section_flags(Arena *arena, COFF_SectionFlags flags) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - - if (flags & COFF_SectionFlag_TypeNoPad) { - str8_list_pushf(scratch.arena, &list, "TypeNoPad"); - } - if (flags & COFF_SectionFlag_CntCode) { - str8_list_pushf(scratch.arena, &list, "CntCode"); - } - if (flags & COFF_SectionFlag_CntInitializedData) { - str8_list_pushf(scratch.arena, &list, "CntInitializedData"); - } - if (flags & COFF_SectionFlag_CntUninitializedData) { - str8_list_pushf(scratch.arena, &list, "CntUninitializedData"); - } - if (flags & COFF_SectionFlag_LnkOther) { - str8_list_pushf(scratch.arena, &list, "LnkOther"); - } - if (flags & COFF_SectionFlag_LnkInfo) { - str8_list_pushf(scratch.arena, &list, "LnkInfo"); - } - if (flags & COFF_SectionFlag_LnkCOMDAT) { - str8_list_pushf(scratch.arena, &list, "LnkCOMDAT"); - } - if (flags & COFF_SectionFlag_GpRel) { - str8_list_pushf(scratch.arena, &list, "GpRel"); - } - if (flags & COFF_SectionFlag_Mem16Bit) { - str8_list_pushf(scratch.arena, &list, "Mem16Bit"); - } - if (flags & COFF_SectionFlag_MemLocked) { - str8_list_pushf(scratch.arena, &list, "MemLocked"); - } - if (flags & COFF_SectionFlag_MemPreload) { - str8_list_pushf(scratch.arena, &list, "MemPreload"); - } - if (flags & COFF_SectionFlag_LnkNRelocOvfl) { - str8_list_pushf(scratch.arena, &list, "LnkNRelocOvfl"); - } - if (flags & COFF_SectionFlag_MemDiscardable) { - str8_list_pushf(scratch.arena, &list, "MemDiscardable"); - } - if (flags & COFF_SectionFlag_MemNotCached) { - str8_list_pushf(scratch.arena, &list, "MemNotCached"); - } - if (flags & COFF_SectionFlag_MemNotPaged) { - str8_list_pushf(scratch.arena, &list, "MemNotPaged"); - } - if (flags & COFF_SectionFlag_MemShared) { - str8_list_pushf(scratch.arena, &list, "MemShared"); - } - if (flags & COFF_SectionFlag_MemExecute) { - str8_list_pushf(scratch.arena, &list, "MemExecute"); - } - if (flags & COFF_SectionFlag_MemRead) { - str8_list_pushf(scratch.arena, &list, "MemRead"); - } - if (flags & COFF_SectionFlag_MemWrite) { - str8_list_pushf(scratch.arena, &list, "MemWrite"); - } - - U64 align = coff_align_size_from_section_flags(flags); - if (align) { - str8_list_pushf(scratch.arena, &list, "Align=%u", align); - } - - if (!list.node_count) { - str8_list_pushf(scratch.arena, &list, "None"); - } - - StringJoin join = {0}; - join.sep = str8_lit(", "); - String8 result = str8_list_join(arena, &list, &join); - - scratch_end(scratch); - return result; -} - -internal String8 -coff_string_from_resource_memory_flags(Arena *arena, COFF_ResourceMemoryFlags flags) -{ - Temp scratch = scratch_begin(&arena, 1); - - String8List list = {0}; - - if (flags & COFF_ResourceMemoryFlag_Moveable) { - flags &= COFF_ResourceMemoryFlag_Moveable; - str8_list_pushf(scratch.arena, &list, "Moveable"); - } - if (flags & COFF_ResourceMemoryFlag_Pure) { - flags &= COFF_ResourceMemoryFlag_Pure; - str8_list_pushf(scratch.arena, &list, "Pure"); - } - if (flags & COFF_ResourceMemoryFlag_Discardable) { - flags &= COFF_ResourceMemoryFlag_Discardable; - str8_list_pushf(scratch.arena, &list, "Discardable"); - } - if (flags != 0) { - str8_list_pushf(scratch.arena, &list, "%#x", flags); - } - - String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - - scratch_end(scratch); - return result; -} - -internal String8 -coff_string_from_import_header_type(COFF_ImportType type) -{ - for (U64 i = 0; i < ArrayCount(g_coff_import_header_type_map); ++i) { - if (g_coff_import_header_type_map[i].type == type) { - return str8_cstring(g_coff_import_header_type_map[i].name); - } - } - return str8(0,0); -} - -internal String8 -coff_string_from_sym_dtype(COFF_SymDType x) -{ - switch (x) { - case COFF_SymDType_Null: return str8_lit("Null"); - case COFF_SymDType_Ptr : return str8_lit("Ptr"); - case COFF_SymDType_Func: return str8_lit("Func"); - case COFF_SymDType_Array: return str8_lit("Array"); - } - return str8_zero(); -} - -internal String8 -coff_string_from_sym_type(COFF_SymType x) -{ - switch (x) { - case COFF_SymType_Null: return str8_lit("Null"); - case COFF_SymType_Void: return str8_lit("Void"); - case COFF_SymType_Char: return str8_lit("Char"); - case COFF_SymType_Short: return str8_lit("Short"); - case COFF_SymType_Int: return str8_lit("Int"); - case COFF_SymType_Long: return str8_lit("Long"); - case COFF_SymType_Float: return str8_lit("Float"); - case COFF_SymType_Double: return str8_lit("Double"); - case COFF_SymType_Struct: return str8_lit("Struct"); - case COFF_SymType_Union: return str8_lit("Union"); - case COFF_SymType_Enum: return str8_lit("Enum"); - case COFF_SymType_MemberOfEnumeration: return str8_lit("MOE"); - case COFF_SymType_Byte: return str8_lit("Byte"); - case COFF_SymType_Word: return str8_lit("Word"); - case COFF_SymType_UInt: return str8_lit("UInt"); - case COFF_SymType_DWord: return str8_lit("DWord"); - } - return str8_zero(); -} - -internal String8 -coff_string_from_sym_storage_class(COFF_SymStorageClass x) -{ - switch (x) { - case COFF_SymStorageClass_Null: break; - case COFF_SymStorageClass_EndOfFunction: return str8_lit("EndOfFunction"); - case COFF_SymStorageClass_Automatic: return str8_lit("Automatic"); - case COFF_SymStorageClass_External: return str8_lit("External"); - case COFF_SymStorageClass_Static: return str8_lit("Static"); - case COFF_SymStorageClass_Register: return str8_lit("Register"); - case COFF_SymStorageClass_ExternalDef: return str8_lit("Def"); - case COFF_SymStorageClass_Label: return str8_lit("Label"); - case COFF_SymStorageClass_UndefinedLabel: return str8_lit("UndefinedLabel"); - case COFF_SymStorageClass_MemberOfStruct: return str8_lit("Struct"); - case COFF_SymStorageClass_Argument: return str8_lit("Argument"); - case COFF_SymStorageClass_StructTag: return str8_lit("Tag"); - case COFF_SymStorageClass_MemberOfUnion: return str8_lit("Union"); - case COFF_SymStorageClass_UnionTag: return str8_lit("Tag"); - case COFF_SymStorageClass_TypeDefinition: return str8_lit("Definition"); - case COFF_SymStorageClass_UndefinedStatic: return str8_lit("Static"); - case COFF_SymStorageClass_EnumTag: return str8_lit("Tag"); - case COFF_SymStorageClass_MemberOfEnum: return str8_lit("Enum"); - case COFF_SymStorageClass_RegisterParam: return str8_lit("Param"); - case COFF_SymStorageClass_BitField: return str8_lit("Field"); - case COFF_SymStorageClass_Block: return str8_lit("Block"); - case COFF_SymStorageClass_Function: return str8_lit("Function"); - case COFF_SymStorageClass_EndOfStruct: return str8_lit("Struct"); - case COFF_SymStorageClass_File: return str8_lit("File"); - case COFF_SymStorageClass_Section: return str8_lit("Section"); - case COFF_SymStorageClass_WeakExternal: return str8_lit("External"); - case COFF_SymStorageClass_CLRToken: return str8_lit("Token"); - } - return str8_zero(); -} - -internal String8 -coff_string_from_weak_ext_type(COFF_WeakExtType x) -{ - switch (x) { - case COFF_WeakExt_NoLibrary: return str8_lit("NoLibrary"); - case COFF_WeakExt_SearchLibrary: return str8_lit("SearchLibrary"); - case COFF_WeakExt_SearchAlias: return str8_lit("SearchAlias"); - } - return str8_zero(); -} - -internal String8 -coff_string_from_reloc_x86(COFF_Reloc_X86 x) -{ - switch (x) { - case COFF_Reloc_X86_Abs: return str8_lit("Abs"); - case COFF_Reloc_X86_Dir16: return str8_lit("Dir16"); - case COFF_Reloc_X86_Rel16: return str8_lit("Rel16"); - case COFF_Reloc_X86_Unknown0: return str8_lit("Unknown0"); - case COFF_Reloc_X86_Unknown2: return str8_lit("Unknown2"); - case COFF_Reloc_X86_Unknown3: return str8_lit("Unknown3"); - case COFF_Reloc_X86_Dir32: return str8_lit("Dir32"); - case COFF_Reloc_X86_Dir32Nb: return str8_lit("Dir32Nb"); - case COFF_Reloc_X86_Seg12: return str8_lit("Seg12"); - case COFF_Reloc_X86_Section: return str8_lit("Section"); - case COFF_Reloc_X86_SecRel: return str8_lit("SecRel"); - case COFF_Reloc_X86_Token: return str8_lit("Token"); - case COFF_Reloc_X86_SecRel7: return str8_lit("SecRel7"); - case COFF_Reloc_X86_Unknown4: return str8_lit("Unknown4"); - case COFF_Reloc_X86_Unknown5: return str8_lit("Unknown5"); - case COFF_Reloc_X86_Unknown6: return str8_lit("Unknown6"); - case COFF_Reloc_X86_Unknown7: return str8_lit("Unknown7"); - case COFF_Reloc_X86_Unknown8: return str8_lit("Unknown8"); - case COFF_Reloc_X86_Unknown9: return str8_lit("Unknown9"); - case COFF_Reloc_X86_Rel32: return str8_lit("Rel32"); - } - return str8_zero(); -} - -internal String8 -coff_string_from_reloc_x64(COFF_Reloc_X64 x) -{ - switch (x) { - case COFF_Reloc_X64_Abs: return str8_lit("Abs"); - case COFF_Reloc_X64_Addr64: return str8_lit("Addr64"); - case COFF_Reloc_X64_Addr32: return str8_lit("Addr32"); - case COFF_Reloc_X64_Addr32Nb: return str8_lit("Addr32Nb"); - case COFF_Reloc_X64_Rel32: return str8_lit("Rel32"); - case COFF_Reloc_X64_Rel32_1: return str8_lit("Rel32_1"); - case COFF_Reloc_X64_Rel32_2: return str8_lit("Rel32_2"); - case COFF_Reloc_X64_Rel32_3: return str8_lit("Rel32_3"); - case COFF_Reloc_X64_Rel32_4: return str8_lit("Rel32_4"); - case COFF_Reloc_X64_Rel32_5: return str8_lit("Rel32_5"); - case COFF_Reloc_X64_Section: return str8_lit("Section"); - case COFF_Reloc_X64_SecRel: return str8_lit("SecRel"); - case COFF_Reloc_X64_SecRel7: return str8_lit("SecRel7"); - case COFF_Reloc_X64_Token: return str8_lit("Token"); - case COFF_Reloc_X64_SRel32: return str8_lit("SRel32"); - case COFF_Reloc_X64_Pair: return str8_lit("Pair"); - case COFF_Reloc_X64_SSpan32: return str8_lit("SSpan32"); - } - return str8_zero(); -} - -internal String8 -coff_string_from_reloc_arm(COFF_Reloc_Arm x) -{ - switch (x) { - case COFF_Reloc_Arm_Abs: return str8_lit("Abs"); - case COFF_Reloc_Arm_Addr32: return str8_lit("Addr32"); - case COFF_Reloc_Arm_Addr32Nb: return str8_lit("Addr32Nb"); - case COFF_Reloc_Arm_Branch24: return str8_lit("Branch24"); - case COFF_Reloc_Arm_Branch11: return str8_lit("Branch11"); - case COFF_Reloc_Arm_Unknown1: return str8_lit("Unknown1"); - case COFF_Reloc_Arm_Unknown2: return str8_lit("Unknown2"); - case COFF_Reloc_Arm_Unknown3: return str8_lit("Unknown3"); - case COFF_Reloc_Arm_Unknown4: return str8_lit("Unknown4"); - case COFF_Reloc_Arm_Unknown5: return str8_lit("Unknown5"); - case COFF_Reloc_Arm_Rel32: return str8_lit("Rel32"); - case COFF_Reloc_Arm_Section: return str8_lit("Section"); - case COFF_Reloc_Arm_SecRel: return str8_lit("SecRel"); - case COFF_Reloc_Arm_Mov32: return str8_lit("Mov32"); - case COFF_Reloc_Arm_ThumbMov32: return str8_lit("ThumbMov32"); - case COFF_Reloc_Arm_ThumbBranch20: return str8_lit("ThumbBranch20"); - case COFF_Reloc_Arm_Unused: return str8_lit("Unused"); - case COFF_Reloc_Arm_ThumbBranch24: return str8_lit("ThumbBranch24"); - case COFF_Reloc_Arm_ThumbBlx23: return str8_lit("ThumbBlx23"); - case COFF_Reloc_Arm_Pair: return str8_lit("Pair"); - } - return str8_zero(); -} - -internal String8 -coff_string_from_reloc_arm64(COFF_Reloc_Arm64 x) -{ - switch (x) { - case COFF_Reloc_Arm64_Abs: return str8_lit("Abs"); - case COFF_Reloc_Arm64_Addr32: return str8_lit("Addr32"); - case COFF_Reloc_Arm64_Addr32Nb: return str8_lit("Addr32Nb"); - case COFF_Reloc_Arm64_Branch26: return str8_lit("Branch26"); - case COFF_Reloc_Arm64_PageBaseRel21: return str8_lit("PageBaseRel21"); - case COFF_Reloc_Arm64_Rel21: return str8_lit("Rel21"); - case COFF_Reloc_Arm64_PageOffset12a: return str8_lit("PageOffset12a"); - case COFF_Reloc_Arm64_SecRel: return str8_lit("SecRel"); - case COFF_Reloc_Arm64_SecRelLow12a: return str8_lit("SecRelLow12a"); - case COFF_Reloc_Arm64_SecRelHigh12a: return str8_lit("SecRelHigh12a"); - case COFF_Reloc_Arm64_SecRelLow12l: return str8_lit("SecRelLow12l"); - case COFF_Reloc_Arm64_Token: return str8_lit("Token"); - case COFF_Reloc_Arm64_Section: return str8_lit("Section"); - case COFF_Reloc_Arm64_Addr64: return str8_lit("Addr64"); - case COFF_Reloc_Arm64_Branch19: return str8_lit("Branch19"); - case COFF_Reloc_Arm64_Branch14: return str8_lit("Branch14"); - case COFF_Reloc_Arm64_Rel32: return str8_lit("Rel32"); - } - return str8_zero(); -} - -internal String8 -coff_string_from_reloc(COFF_MachineType machine, COFF_RelocType x) -{ - switch (machine) { - case COFF_MachineType_X86: return coff_string_from_reloc_x86(x); - case COFF_MachineType_X64: return coff_string_from_reloc_x64(x); - case COFF_MachineType_Arm: return coff_string_from_reloc_arm(x); - case COFF_MachineType_Arm64: return coff_string_from_reloc_arm64(x); - } - return str8_zero(); -} - -internal COFF_MachineType -coff_machine_from_string(String8 string) -{ - for (U64 i = 0; i < ArrayCount(g_coff_machine_map); ++i) { - if (str8_match(g_coff_machine_map[i].string, string, StringMatchFlag_CaseInsensitive)) { - return g_coff_machine_map[i].machine; - } - } - return COFF_MachineType_Unknown; -} - -internal COFF_ImportType -coff_import_header_type_from_string(String8 name) -{ - for (U64 i = 0; i < ArrayCount(g_coff_import_header_type_map); ++i) { - if (str8_match(str8_cstring(g_coff_import_header_type_map[i].name), name, StringMatchFlag_CaseInsensitive)) { - return g_coff_import_header_type_map[i].type; - } - } - return COFF_ImportType_Invalid; -} - - - diff --git a/src/coff/coff_enum.h b/src/coff/coff_enum.h deleted file mode 100644 index 0c52eb28..00000000 --- a/src/coff/coff_enum.h +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef COFF_ENUM_H -#define COFF_ENUM_H - -internal String8 coff_string_from_time_stamp(Arena *arena, COFF_TimeStamp time_stamp); -internal String8 coff_string_from_comdat_select_type(COFF_ComdatSelectType type); -internal String8 coff_string_from_machine_type(COFF_MachineType machine); -internal String8 coff_string_from_flags(Arena *arena, COFF_FileHeaderFlags flags); -internal String8 coff_string_from_section_flags(Arena *arena, COFF_SectionFlags flags); -internal String8 coff_string_from_resource_memory_flags(Arena *arena, COFF_ResourceMemoryFlags flags); -internal String8 coff_string_from_import_header_type(COFF_ImportType type); -internal String8 coff_string_from_sym_dtype(COFF_SymDType x); -internal String8 coff_string_from_sym_type(COFF_SymType x); -internal String8 coff_string_from_sym_storage_class(COFF_SymStorageClass x); -internal String8 coff_string_from_weak_ext_type(COFF_WeakExtType x); -internal String8 coff_string_from_reloc_x86(COFF_Reloc_X86 x); -internal String8 coff_string_from_reloc_x64(COFF_Reloc_X64 x); -internal String8 coff_string_from_reloc_arm(COFF_Reloc_Arm x); -internal String8 coff_string_from_reloc_arm64(COFF_Reloc_Arm64 x); -internal String8 coff_string_from_reloc(COFF_MachineType machine, COFF_RelocType x); - -internal COFF_MachineType coff_machine_from_string(String8 string); -internal COFF_ImportType coff_import_header_type_from_string(String8 name); - -#endif // COFF_ENUM_H diff --git a/src/linker/lnk.c b/src/linker/lnk.c index b5fa1ea7..89ec472d 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -35,12 +35,10 @@ #include "os/os_inc.h" #include "path/path.h" #include "coff/coff.h" -#include "coff/coff_enum.h" #include "coff/coff_parse.h" #include "pe/pe.h" #include "codeview/codeview.h" #include "codeview/codeview_parse.h" -#include "codeview/codeview_enum.h" #include "msf/msf.h" #include "msf/msf_parse.h" #include "pdb/pdb.h" @@ -50,11 +48,9 @@ #include "os/os_inc.c" #include "path/path.c" #include "coff/coff.c" -#include "coff/coff_enum.c" #include "coff/coff_parse.c" #include "pe/pe.c" #include "codeview/codeview.c" -#include "codeview/codeview_enum.c" #include "codeview/codeview_parse.c" #include "msf/msf.c" #include "msf/msf_parse.c" diff --git a/src/msvc_crt/msvc_crt.c b/src/msvc_crt/msvc_crt.c index 6ea33e51..3431fa0a 100644 --- a/src/msvc_crt/msvc_crt.c +++ b/src/msvc_crt/msvc_crt.c @@ -486,3 +486,36 @@ mscrt_catch_blocks_from_data_x8664(Arena *arena, return result; } +//////////////////////////////// +//~ rjf: Enum -> String + +internal String8 +mscrt_string_from_eh_adjectives(Arena *arena, MSCRT_EhHandlerTypeFlags adjectives) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List adj_list = {0}; + if (adjectives & MSCRT_EhHandlerTypeFlag_IsConst) { + str8_list_pushf(scratch.arena, &adj_list, "Const"); + } + if (adjectives & MSCRT_EhHandlerTypeFlag_IsVolatile) { + str8_list_pushf(scratch.arena, &adj_list, "Volatile"); + } + if (adjectives & MSCRT_EhHandlerTypeFlag_IsUnaligned) { + str8_list_pushf(scratch.arena, &adj_list, "Unaligned"); + } + if (adjectives & MSCRT_EhHandlerTypeFlag_IsReference) { + str8_list_pushf(scratch.arena, &adj_list, "Reference"); + } + if (adjectives & MSCRT_EhHandlerTypeFlag_IsResumable) { + str8_list_pushf(scratch.arena, &adj_list, "Resumable"); + } + if (adjectives & MSCRT_EhHandlerTypeFlag_IsStdDotDot) { + str8_list_pushf(scratch.arena, &adj_list, "StdDotDot"); + } + if (adjectives & MSCRT_EhHandlerTypeFlag_IsComplusEH) { + str8_list_pushf(scratch.arena, &adj_list, "ComplusEH"); + } + String8 result = str8_list_join(arena, &adj_list, &(StringJoin){.sep=str8_lit(", ")}); + scratch_end(scratch); + return result; +} diff --git a/src/msvc_crt/msvc_crt.h b/src/msvc_crt/msvc_crt.h index 93599237..c160afa3 100644 --- a/src/msvc_crt/msvc_crt.h +++ b/src/msvc_crt/msvc_crt.h @@ -327,6 +327,17 @@ internal U64 mscrt_parse_unwind_map_v4 (Arena *arena, String8 raw_data, internal U64 mscrt_parse_try_block_map_array_v4(Arena *arena, String8 raw_data, U64 off, U64 section_count, COFF_SectionHeader *sections, U64 func_voff, MSCRT_TryBlockMapV4Array *map_out); internal U64 mscrt_parse_ip2state_map_v4 (Arena *arena, String8 raw_data, U64 off, U64 func_voff, MSCRT_IP2State32V4 *ip2state_map_out); internal U64 mscrt_parse_func_info_v4 (Arena *arena, String8 raw_data, U64 section_count, COFF_SectionHeader *sections, U64 off, U64 func_voff, MSCRT_ParsedFuncInfoV4 *func_info_out); +internal Rng1U64List +mscrt_catch_blocks_from_data_x8664(Arena *arena, + String8 raw_data, + U64 section_count, + COFF_SectionHeader *sections, + Rng1U64 except_frange); + +//////////////////////////////// +//~ rjf: Enum -> String + +internal String8 mscrt_string_from_eh_adjectives(Arena *arena, MSCRT_EhHandlerTypeFlags adjectives); #endif // MSVC_CRT diff --git a/src/msvc_crt/msvc_crt_enum.c b/src/msvc_crt/msvc_crt_enum.c deleted file mode 100644 index 40052496..00000000 --- a/src/msvc_crt/msvc_crt_enum.c +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -internal String8 -mscrt_string_from_eh_adjectives(Arena *arena, MSCRT_EhHandlerTypeFlags adjectives) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List adj_list = {0}; - if (adjectives & MSCRT_EhHandlerTypeFlag_IsConst) { - str8_list_pushf(scratch.arena, &adj_list, "Const"); - } - if (adjectives & MSCRT_EhHandlerTypeFlag_IsVolatile) { - str8_list_pushf(scratch.arena, &adj_list, "Volatile"); - } - if (adjectives & MSCRT_EhHandlerTypeFlag_IsUnaligned) { - str8_list_pushf(scratch.arena, &adj_list, "Unaligned"); - } - if (adjectives & MSCRT_EhHandlerTypeFlag_IsReference) { - str8_list_pushf(scratch.arena, &adj_list, "Reference"); - } - if (adjectives & MSCRT_EhHandlerTypeFlag_IsResumable) { - str8_list_pushf(scratch.arena, &adj_list, "Resumable"); - } - if (adjectives & MSCRT_EhHandlerTypeFlag_IsStdDotDot) { - str8_list_pushf(scratch.arena, &adj_list, "StdDotDot"); - } - if (adjectives & MSCRT_EhHandlerTypeFlag_IsComplusEH) { - str8_list_pushf(scratch.arena, &adj_list, "ComplusEH"); - } - String8 result = str8_list_join(arena, &adj_list, &(StringJoin){.sep=str8_lit(", ")}); - scratch_end(scratch); - return result; -} - diff --git a/src/msvc_crt/msvc_crt_enum.h b/src/msvc_crt/msvc_crt_enum.h deleted file mode 100644 index 8bc3440c..00000000 --- a/src/msvc_crt/msvc_crt_enum.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef MSVC_CRT_ENUM_H -#define MSVC_CRT_ENUM_H - -internal String8 mscrt_string_from_eh_adjectives(Arena *arena, MSCRT_EhHandlerTypeFlags adjectives); - -#endif // MSVC_CRT_ENUM_H diff --git a/src/raddump/raddump_main.c b/src/raddump/raddump_main.c index f3be6eb5..4aa16e69 100644 --- a/src/raddump/raddump_main.c +++ b/src/raddump/raddump_main.c @@ -31,16 +31,13 @@ #include "path/path.h" #include "linker/hash_table.h" #include "coff/coff.h" -#include "coff/coff_enum.h" #include "coff/coff_parse.h" #include "pe/pe.h" #include "elf/elf.h" #include "elf/elf_parse.h" #include "msvc_crt/msvc_crt.h" -#include "msvc_crt/msvc_crt_enum.h" #include "codeview/codeview.h" #include "codeview/codeview_parse.h" -#include "codeview/codeview_enum.h" #include "msf/msf.h" #include "msf/msf_parse.h" #include "pdb/pdb.h" @@ -51,7 +48,6 @@ #include "dwarf/dwarf_unwind.h" #include "dwarf/dwarf_coff.h" #include "dwarf/dwarf_elf.h" -#include "dwarf/dwarf_enum.h" #include "radcon/radcon.h" #include "radcon/radcon_coff.h" #include "radcon/radcon_cv.h" @@ -68,16 +64,13 @@ #include "path/path.c" #include "linker/hash_table.c" #include "coff/coff.c" -#include "coff/coff_enum.c" #include "coff/coff_parse.c" #include "pe/pe.c" #include "elf/elf.c" #include "elf/elf_parse.c" #include "msvc_crt/msvc_crt.c" -#include "msvc_crt/msvc_crt_enum.c" #include "codeview/codeview.c" #include "codeview/codeview_parse.c" -#include "codeview/codeview_enum.c" #include "msf/msf.c" #include "msf/msf_parse.c" #include "pdb/pdb.c" @@ -88,7 +81,6 @@ #include "dwarf/dwarf_unwind.c" #include "dwarf/dwarf_coff.c" #include "dwarf/dwarf_elf.c" -#include "dwarf/dwarf_enum.c" #include "radcon/radcon_coff.c" #include "radcon/radcon_cv.c" #include "radcon/radcon_elf.c" From f2dc9a7d4a9269184f3203cf587c5cf2e8592c35 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 07:29:24 -0700 Subject: [PATCH 012/372] fix codeview format/parse interleave --- src/codeview/codeview.c | 22 ---------------------- src/codeview/codeview.h | 1 - src/codeview/codeview_dump.c | 24 ++++++++++++++++++++++++ src/codeview/codeview_dump.h | 9 +++++++++ src/radbin/radbin_main.c | 2 ++ 5 files changed, 35 insertions(+), 23 deletions(-) create mode 100644 src/codeview/codeview_dump.c create mode 100644 src/codeview/codeview_dump.h diff --git a/src/codeview/codeview.c b/src/codeview/codeview.c index 7f8cdea6..bd32423e 100644 --- a/src/codeview/codeview.c +++ b/src/codeview/codeview.c @@ -202,28 +202,6 @@ cv_string_from_language(CV_Language x) return str8_zero(); } -internal String8 -cv_string_from_numeric(Arena *arena, CV_NumericParsed num) -{ - String8 result = str8_zero(); - switch (num.kind) { - case CV_NumericKind_FLOAT16: NotImplemented; break; // TODO: format float16 - case CV_NumericKind_FLOAT32: result = push_str8f(arena, "%f", (F64)(*(F32*)num.val)); break; - case CV_NumericKind_FLOAT48: NotImplemented; break; // TODO: format float48 - case CV_NumericKind_FLOAT64: result = push_str8f(arena, "%f", *(F64*)num.val); break; - case CV_NumericKind_FLOAT80: NotImplemented; break; // TODO: format float80 - case CV_NumericKind_FLOAT128: NotImplemented; break; // TODO: format float128 - case CV_NumericKind_CHAR: result = push_str8f(arena, "%d", *(S8 *)num.val); break; - case CV_NumericKind_SHORT: result = push_str8f(arena, "%d", *(S16*)num.val); break; - case CV_NumericKind_LONG: result = push_str8f(arena, "%d", *(S32*)num.val); break; - case CV_NumericKind_QUADWORD: result = push_str8f(arena, "%lld", *(S64*)num.val); break; - case CV_NumericKind_USHORT: result = push_str8f(arena, "%u", *(U16*)num.val); break; - case CV_NumericKind_ULONG: result = push_str8f(arena, "%u", *(U32*)num.val); break; - case CV_NumericKind_UQUADWORD: result = push_str8f(arena, "%llu", *(U64*)num.val); break; - } - return result; -} - internal String8 cv_string_from_reg_id(Arena *arena, CV_Arch arch, U32 id) { diff --git a/src/codeview/codeview.h b/src/codeview/codeview.h index da0a1395..fa8f4e09 100644 --- a/src/codeview/codeview.h +++ b/src/codeview/codeview.h @@ -2978,7 +2978,6 @@ internal U32 cv_map_encoded_base_pointer(CV_Arch arch, U32 enc internal String8 cv_string_from_inline_range_kind(CV_InlineRangeKind kind); internal String8 cv_string_from_type_index_source(CV_TypeIndexSource ti_source); internal String8 cv_string_from_language(CV_Language x); -internal String8 cv_string_from_numeric(Arena *arena, CV_NumericParsed num); internal String8 cv_string_from_reg_id(Arena *arena, CV_Arch arch, U32 id); internal String8 cv_string_from_member_access(CV_MemberAccess x); internal String8 cv_string_from_method_prop(CV_MethodProp x); diff --git a/src/codeview/codeview_dump.c b/src/codeview/codeview_dump.c new file mode 100644 index 00000000..3469f9b1 --- /dev/null +++ b/src/codeview/codeview_dump.c @@ -0,0 +1,24 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal String8 +cv_string_from_numeric(Arena *arena, CV_NumericParsed num) +{ + String8 result = str8_zero(); + switch (num.kind) { + case CV_NumericKind_FLOAT16: NotImplemented; break; // TODO: format float16 + case CV_NumericKind_FLOAT32: result = push_str8f(arena, "%f", (F64)(*(F32*)num.val)); break; + case CV_NumericKind_FLOAT48: NotImplemented; break; // TODO: format float48 + case CV_NumericKind_FLOAT64: result = push_str8f(arena, "%f", *(F64*)num.val); break; + case CV_NumericKind_FLOAT80: NotImplemented; break; // TODO: format float80 + case CV_NumericKind_FLOAT128: NotImplemented; break; // TODO: format float128 + case CV_NumericKind_CHAR: result = push_str8f(arena, "%d", *(S8 *)num.val); break; + case CV_NumericKind_SHORT: result = push_str8f(arena, "%d", *(S16*)num.val); break; + case CV_NumericKind_LONG: result = push_str8f(arena, "%d", *(S32*)num.val); break; + case CV_NumericKind_QUADWORD: result = push_str8f(arena, "%lld", *(S64*)num.val); break; + case CV_NumericKind_USHORT: result = push_str8f(arena, "%u", *(U16*)num.val); break; + case CV_NumericKind_ULONG: result = push_str8f(arena, "%u", *(U32*)num.val); break; + case CV_NumericKind_UQUADWORD: result = push_str8f(arena, "%llu", *(U64*)num.val); break; + } + return result; +} diff --git a/src/codeview/codeview_dump.h b/src/codeview/codeview_dump.h new file mode 100644 index 00000000..fe9c8a9e --- /dev/null +++ b/src/codeview/codeview_dump.h @@ -0,0 +1,9 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef CODEVIEW_DUMP_H +#define CODEVIEW_DUMP_H + +internal String8 cv_string_from_numeric(Arena *arena, CV_NumericParsed num); + +#endif // CODEVIEW_DUMP_H diff --git a/src/radbin/radbin_main.c b/src/radbin/radbin_main.c index 776931e8..4f5cefd3 100644 --- a/src/radbin/radbin_main.c +++ b/src/radbin/radbin_main.c @@ -33,6 +33,7 @@ #include "dwarf/dwarf_parse.h" #include "dwarf/dwarf_coff.h" #include "dwarf/dwarf_elf.h" +// #include "dwarf/dwarf_dump.h" #include "msf/msf.h" #include "msf/msf_parse.h" #include "pdb/pdb.h" @@ -64,6 +65,7 @@ #include "dwarf/dwarf_parse.c" #include "dwarf/dwarf_coff.c" #include "dwarf/dwarf_elf.c" +// #include "dwarf/dwarf_dump.c" #include "msf/msf.c" #include "msf/msf_parse.c" #include "pdb/pdb.c" From f590e9b6d5918e081a29043da27f7801faaed57a Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 07:38:34 -0700 Subject: [PATCH 013/372] eliminate separate path layer, merge into base strings layer --- src/base/base_strings.c | 222 ++++++++++++++++++++++++++ src/base/base_strings.h | 23 +++ src/dwarf/dwarf_dump.c | 2 +- src/dwarf/dwarf_inc.c | 10 ++ src/dwarf/dwarf_inc.h | 15 ++ src/linker/lnk.c | 2 - src/path/path.c | 224 -------------------------- src/path/path.h | 30 ---- src/radbin/radbin_main.c | 14 +- src/radcon/radcon_main.c | 2 - src/raddbg/raddbg_main.c | 2 - src/raddump/raddump_main.c | 2 - src/scratch/convertperf.c | 2 - src/scratch/parse_inline_sites.c | 260 +++++++++++++++---------------- src/tester/tester_main.c | 2 - 15 files changed, 402 insertions(+), 410 deletions(-) create mode 100644 src/dwarf/dwarf_inc.c create mode 100644 src/dwarf/dwarf_inc.h delete mode 100644 src/path/path.c delete mode 100644 src/path/path.h diff --git a/src/base/base_strings.c b/src/base/base_strings.c index 70840acf..d9443825 100644 --- a/src/base/base_strings.c +++ b/src/base/base_strings.c @@ -1497,6 +1497,228 @@ str8_txt_pt_pair_from_string(String8 string) return pair; } +//////////////////////////////// +//~ rjf: Relative <-> Absolute Path + +internal String8 +path_relative_dst_from_absolute_dst_src(Arena *arena, String8 dst, String8 src) +{ + Temp scratch = scratch_begin(&arena, 1); + + // rjf: gather path parts + String8 dst_name = str8_skip_last_slash(dst); + String8 src_folder = src; + String8 dst_folder = str8_chop_last_slash(dst); + String8List src_folders = str8_split_path(scratch.arena, src_folder); + String8List dst_folders = str8_split_path(scratch.arena, dst_folder); + + // rjf: count # of backtracks to get from src -> dest + U64 num_backtracks = src_folders.node_count; + for(String8Node *src_n = src_folders.first, *bp_n = dst_folders.first; + src_n != 0 && bp_n != 0; + src_n = src_n->next, bp_n = bp_n->next) + { + if(str8_match(src_n->string, bp_n->string, path_match_flags_from_os(operating_system_from_context()))) + { + num_backtracks -= 1; + } + else + { + break; + } + } + + // rjf: only build relative string if # of backtracks is not the entire `src`. + // if getting to `dst` from `src` requires erasing the entire `src`, then the + // only possible way to get to `dst` from `src` is via absolute path. + String8 dst_path = {0}; + if(num_backtracks >= src_folders.node_count) + { + dst_path = dst; + } + else + { + // rjf: build backtrack parts + String8List dst_path_strs = {0}; + for(U64 idx = 0; idx < num_backtracks; idx += 1) + { + str8_list_push(scratch.arena, &dst_path_strs, str8_lit("..")); + } + + // rjf: build parts of dst which are unique from src + { + B32 unique_from_src = 0; + for(String8Node *src_n = src_folders.first, *bp_n = dst_folders.first; + bp_n != 0; + bp_n = bp_n->next) + { + if(!unique_from_src && (src_n == 0 || !str8_match(src_n->string, bp_n->string, path_match_flags_from_os(operating_system_from_context())))) + { + unique_from_src = 1; + } + if(unique_from_src) + { + str8_list_push(scratch.arena, &dst_path_strs, bp_n->string); + } + if(src_n != 0) + { + src_n = src_n->next; + } + } + } + + // rjf: build file name + str8_list_push(scratch.arena, &dst_path_strs, dst_name); + + // rjf: join + StringJoin join = {0}; + { + join.sep = str8_lit("/"); + } + dst_path = str8_list_join(arena, &dst_path_strs, &join); + } + scratch_end(scratch); + return dst_path; +} + +internal String8 +path_absolute_dst_from_relative_dst_src(Arena *arena, String8 dst, String8 src) +{ + String8 result = dst; + PathStyle dst_style = path_style_from_str8(dst); + if(dst.size != 0 && dst_style == PathStyle_Relative) + { + Temp scratch = scratch_begin(&arena, 1); + String8 dst_from_src_absolute = push_str8f(scratch.arena, "%S/%S", src, dst); + String8List dst_from_src_absolute_parts = str8_split_path(scratch.arena, dst_from_src_absolute); + PathStyle dst_from_src_absolute_style = path_style_from_str8(src); + str8_path_list_resolve_dots_in_place(&dst_from_src_absolute_parts, dst_from_src_absolute_style); + result = str8_path_list_join_by_style(arena, &dst_from_src_absolute_parts, dst_from_src_absolute_style); + scratch_end(scratch); + } + return result; +} + +//////////////////////////////// +//~ rjf: Path Normalization + +internal String8List +path_normalized_list_from_string(Arena *arena, String8 path_string, PathStyle *style_out) +{ + // rjf: analyze path + PathStyle path_style = path_style_from_str8(path_string); + String8List path = str8_split_path(arena, path_string); + + // rjf: resolve dots + str8_path_list_resolve_dots_in_place(&path, path_style); + + // rjf: return + if(style_out != 0) + { + *style_out = path_style; + } + return path; +} + +internal String8 +path_normalized_from_string(Arena *arena, String8 path_string) +{ + Temp scratch = scratch_begin(&arena, 1); + PathStyle style = PathStyle_Relative; + String8List path = path_normalized_list_from_string(scratch.arena, path_string, &style); + String8 result = str8_path_list_join_by_style(arena, &path, style); + scratch_end(scratch); + return result; +} + +internal B32 +path_match_normalized(String8 left, String8 right) +{ + Temp scratch = scratch_begin(0, 0); + String8 left_normalized = path_normalized_from_string(scratch.arena, left); + String8 right_normalized = path_normalized_from_string(scratch.arena, right); + B32 result = str8_match(left_normalized, right_normalized, StringMatchFlag_CaseInsensitive); + scratch_end(scratch); + return result; +} + +//////////////////////////////// +//~ rjf: Misc. Path Helpers + +internal PathStyle +path_style_from_string(String8 string) +{ + for (U64 i = 0; i < ArrayCount(g_path_style_map); ++i) + { + if(str8_match(g_path_style_map[i].string, string, StringMatchFlag_CaseInsensitive)) + { + return g_path_style_map[i].path_style; + } + } + return PathStyle_Null; +} + +internal String8 +string_from_path_style(PathStyle style) +{ + Assert(style < ArrayCount(g_path_style_map)); + return g_path_style_map[style].string; +} + +internal String8 +path_separator_string_from_style(PathStyle style) +{ + String8 result = str8_zero(); + switch (style) + { + case PathStyle_Null: break; + case PathStyle_Relative: break; + case PathStyle_WindowsAbsolute: result = str8_lit("\\"); break; + case PathStyle_UnixAbsolute: result = str8_lit("/"); break; + } + return result; +} + +internal StringMatchFlags +path_match_flags_from_os(OperatingSystem os) +{ + StringMatchFlags flags = StringMatchFlag_SlashInsensitive; + switch(os) + { + default:{}break; + case OperatingSystem_Windows: + { + flags |= StringMatchFlag_CaseInsensitive; + }break; + case OperatingSystem_Linux: + case OperatingSystem_Mac: + { + // NOTE(rjf): no-op + }break; + } + return flags; +} + +internal String8 +path_convert_slashes(Arena *arena, String8 path, PathStyle path_style) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = str8_split_path(scratch.arena, path); + StringJoin join = {0}; + join.sep = path_separator_string_from_style(path_style); + String8 result = str8_list_join(arena, &list, &join); + scratch_end(scratch); + return result; +} + +internal String8 +path_replace_file_extension(Arena *arena, String8 file_name, String8 ext) +{ + String8 file_name_no_ext = str8_chop_last_dot(file_name); + String8 result = push_str8f(arena, "%S.%S", file_name_no_ext, ext); + return result; +} + //////////////////////////////// //~ rjf: UTF-8 & UTF-16 Decoding/Encoding diff --git a/src/base/base_strings.h b/src/base/base_strings.h index 7ab4679d..fead8e4d 100644 --- a/src/base/base_strings.h +++ b/src/base/base_strings.h @@ -328,6 +328,29 @@ internal String8 str8_path_list_join_by_style(Arena *arena, String8List *pat internal String8TxtPtPair str8_txt_pt_pair_from_string(String8 string); +//////////////////////////////// +//~ rjf: Relative <-> Absolute Path + +internal String8 path_relative_dst_from_absolute_dst_src(Arena *arena, String8 dst, String8 src); +internal String8 path_absolute_dst_from_relative_dst_src(Arena *arena, String8 dst, String8 src); + +//////////////////////////////// +//~ rjf: Path Normalization + +internal String8List path_normalized_list_from_string(Arena *arena, String8 path, PathStyle *style_out); +internal String8 path_normalized_from_string(Arena *arena, String8 path); +internal B32 path_match_normalized(String8 left, String8 right); + +//////////////////////////////// +//~ rjf: Misc. Path Helpers + +internal PathStyle path_style_from_string(String8 string); +internal String8 string_from_path_style(PathStyle style); +internal String8 path_separator_string_from_style(PathStyle style); +internal StringMatchFlags path_match_flags_from_os(OperatingSystem os); +internal String8 path_convert_slashes(Arena *arena, String8 path, PathStyle path_style); +internal String8 path_replace_file_extension(Arena *arena, String8 file_name, String8 ext); + //////////////////////////////// //~ rjf: UTF-8 & UTF-16 Decoding/Encoding diff --git a/src/dwarf/dwarf_dump.c b/src/dwarf/dwarf_dump.c index 13c041aa..10affdec 100644 --- a/src/dwarf/dwarf_dump.c +++ b/src/dwarf/dwarf_dump.c @@ -6,7 +6,7 @@ dw_string_from_reg_off(Arena *arena, Arch arch, U64 reg_idx, S64 reg_off) { Temp scratch = scratch_begin(&arena, 1); String8 reg_str = dw_string_from_register(scratch.arena, arch, reg_idx); - String8 result = rd_string_from_reg_off(arena, reg_str, reg_off); + String8 result = push_str8f(arena, "%S%+lld", reg_str, reg_off); scratch_end(scratch); return result; } diff --git a/src/dwarf/dwarf_inc.c b/src/dwarf/dwarf_inc.c new file mode 100644 index 00000000..4293d911 --- /dev/null +++ b/src/dwarf/dwarf_inc.c @@ -0,0 +1,10 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#include "dwarf/dwarf.c" +#include "dwarf/dwarf_expr.c" +#include "dwarf/dwarf_parse.c" +#include "dwarf/dwarf_coff.c" +#include "dwarf/dwarf_elf.c" +#include "dwarf/dwarf_unwind.c" +#include "dwarf/dwarf_dump.c" diff --git a/src/dwarf/dwarf_inc.h b/src/dwarf/dwarf_inc.h new file mode 100644 index 00000000..61f03873 --- /dev/null +++ b/src/dwarf/dwarf_inc.h @@ -0,0 +1,15 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef DWARF_INC_H +#define DWARF_INC_H + +#include "dwarf/dwarf.h" +#include "dwarf/dwarf_expr.h" +#include "dwarf/dwarf_parse.h" +#include "dwarf/dwarf_coff.h" +#include "dwarf/dwarf_elf.h" +#include "dwarf/dwarf_unwind.h" +#include "dwarf/dwarf_dump.h" + +#endif // DWARF_INC_H diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 89ec472d..10a1ab10 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -33,7 +33,6 @@ #include "base/base_inc.h" #include "os/os_inc.h" -#include "path/path.h" #include "coff/coff.h" #include "coff/coff_parse.h" #include "pe/pe.h" @@ -46,7 +45,6 @@ #include "base/base_inc.c" #include "os/os_inc.c" -#include "path/path.c" #include "coff/coff.c" #include "coff/coff_parse.c" #include "pe/pe.c" diff --git a/src/path/path.c b/src/path/path.c deleted file mode 100644 index 780fe27b..00000000 --- a/src/path/path.c +++ /dev/null @@ -1,224 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Relative <-> Absolute Path - -internal String8 -path_relative_dst_from_absolute_dst_src(Arena *arena, String8 dst, String8 src) -{ - Temp scratch = scratch_begin(&arena, 1); - - // rjf: gather path parts - String8 dst_name = str8_skip_last_slash(dst); - String8 src_folder = src; - String8 dst_folder = str8_chop_last_slash(dst); - String8List src_folders = str8_split_path(scratch.arena, src_folder); - String8List dst_folders = str8_split_path(scratch.arena, dst_folder); - - // rjf: count # of backtracks to get from src -> dest - U64 num_backtracks = src_folders.node_count; - for(String8Node *src_n = src_folders.first, *bp_n = dst_folders.first; - src_n != 0 && bp_n != 0; - src_n = src_n->next, bp_n = bp_n->next) - { - if(str8_match(src_n->string, bp_n->string, path_match_flags_from_os(operating_system_from_context()))) - { - num_backtracks -= 1; - } - else - { - break; - } - } - - // rjf: only build relative string if # of backtracks is not the entire `src`. - // if getting to `dst` from `src` requires erasing the entire `src`, then the - // only possible way to get to `dst` from `src` is via absolute path. - String8 dst_path = {0}; - if(num_backtracks >= src_folders.node_count) - { - dst_path = dst; - } - else - { - // rjf: build backtrack parts - String8List dst_path_strs = {0}; - for(U64 idx = 0; idx < num_backtracks; idx += 1) - { - str8_list_push(scratch.arena, &dst_path_strs, str8_lit("..")); - } - - // rjf: build parts of dst which are unique from src - { - B32 unique_from_src = 0; - for(String8Node *src_n = src_folders.first, *bp_n = dst_folders.first; - bp_n != 0; - bp_n = bp_n->next) - { - if(!unique_from_src && (src_n == 0 || !str8_match(src_n->string, bp_n->string, path_match_flags_from_os(operating_system_from_context())))) - { - unique_from_src = 1; - } - if(unique_from_src) - { - str8_list_push(scratch.arena, &dst_path_strs, bp_n->string); - } - if(src_n != 0) - { - src_n = src_n->next; - } - } - } - - // rjf: build file name - str8_list_push(scratch.arena, &dst_path_strs, dst_name); - - // rjf: join - StringJoin join = {0}; - { - join.sep = str8_lit("/"); - } - dst_path = str8_list_join(arena, &dst_path_strs, &join); - } - scratch_end(scratch); - return dst_path; -} - -internal String8 -path_absolute_dst_from_relative_dst_src(Arena *arena, String8 dst, String8 src) -{ - String8 result = dst; - PathStyle dst_style = path_style_from_str8(dst); - if(dst.size != 0 && dst_style == PathStyle_Relative) - { - Temp scratch = scratch_begin(&arena, 1); - String8 dst_from_src_absolute = push_str8f(scratch.arena, "%S/%S", src, dst); - String8List dst_from_src_absolute_parts = str8_split_path(scratch.arena, dst_from_src_absolute); - PathStyle dst_from_src_absolute_style = path_style_from_str8(src); - str8_path_list_resolve_dots_in_place(&dst_from_src_absolute_parts, dst_from_src_absolute_style); - result = str8_path_list_join_by_style(arena, &dst_from_src_absolute_parts, dst_from_src_absolute_style); - scratch_end(scratch); - } - return result; -} - -//////////////////////////////// -//~ rjf: Path Normalization - -internal String8List -path_normalized_list_from_string(Arena *arena, String8 path_string, PathStyle *style_out) -{ - // rjf: analyze path - PathStyle path_style = path_style_from_str8(path_string); - String8List path = str8_split_path(arena, path_string); - - // rjf: resolve dots - str8_path_list_resolve_dots_in_place(&path, path_style); - - // rjf: return - if(style_out != 0) - { - *style_out = path_style; - } - return path; -} - -internal String8 -path_normalized_from_string(Arena *arena, String8 path_string) -{ - Temp scratch = scratch_begin(&arena, 1); - PathStyle style = PathStyle_Relative; - String8List path = path_normalized_list_from_string(scratch.arena, path_string, &style); - String8 result = str8_path_list_join_by_style(arena, &path, style); - scratch_end(scratch); - return result; -} - -internal B32 -path_match_normalized(String8 left, String8 right) -{ - Temp scratch = scratch_begin(0, 0); - String8 left_normalized = path_normalized_from_string(scratch.arena, left); - String8 right_normalized = path_normalized_from_string(scratch.arena, right); - B32 result = str8_match(left_normalized, right_normalized, StringMatchFlag_CaseInsensitive); - scratch_end(scratch); - return result; -} - -//////////////////////////////// -//~ rjf: Basic Helpers - -internal PathStyle -path_style_from_string(String8 string) -{ - for (U64 i = 0; i < ArrayCount(g_path_style_map); ++i) - { - if(str8_match(g_path_style_map[i].string, string, StringMatchFlag_CaseInsensitive)) - { - return g_path_style_map[i].path_style; - } - } - return PathStyle_Null; -} - -internal String8 -string_from_path_style(PathStyle style) -{ - Assert(style < ArrayCount(g_path_style_map)); - return g_path_style_map[style].string; -} - -internal String8 -path_separator_string_from_style(PathStyle style) -{ - String8 result = str8_zero(); - switch (style) - { - case PathStyle_Null: break; - case PathStyle_Relative: break; - case PathStyle_WindowsAbsolute: result = str8_lit("\\"); break; - case PathStyle_UnixAbsolute: result = str8_lit("/"); break; - } - return result; -} - -internal StringMatchFlags -path_match_flags_from_os(OperatingSystem os) -{ - StringMatchFlags flags = StringMatchFlag_SlashInsensitive; - switch(os) - { - default:{}break; - case OperatingSystem_Windows: - { - flags |= StringMatchFlag_CaseInsensitive; - }break; - case OperatingSystem_Linux: - case OperatingSystem_Mac: - { - // NOTE(rjf): no-op - }break; - } - return flags; -} - -internal String8 -path_convert_slashes(Arena *arena, String8 path, PathStyle path_style) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = str8_split_path(scratch.arena, path); - StringJoin join = {0}; - join.sep = path_separator_string_from_style(path_style); - String8 result = str8_list_join(arena, &list, &join); - scratch_end(scratch); - return result; -} - -internal String8 -path_replace_file_extension(Arena *arena, String8 file_name, String8 ext) -{ - String8 file_name_no_ext = str8_chop_last_dot(file_name); - String8 result = push_str8f(arena, "%S.%S", file_name_no_ext, ext); - return result; -} diff --git a/src/path/path.h b/src/path/path.h deleted file mode 100644 index 55b626ff..00000000 --- a/src/path/path.h +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef PATH_H -#define PATH_H - -//////////////////////////////// -//~ rjf: Relative <-> Absolute Path - -internal String8 path_relative_dst_from_absolute_dst_src(Arena *arena, String8 dst, String8 src); -internal String8 path_absolute_dst_from_relative_dst_src(Arena *arena, String8 dst, String8 src); - -//////////////////////////////// -//~ rjf: Path Normalization - -internal String8List path_normalized_list_from_string(Arena *arena, String8 path, PathStyle *style_out); -internal String8 path_normalized_from_string(Arena *arena, String8 path); -internal B32 path_match_normalized(String8 left, String8 right); - -//////////////////////////////// -//~ rjf: Basic Helpers - -internal PathStyle path_style_from_string(String8 string); -internal String8 string_from_path_style(PathStyle style); -internal String8 path_separator_string_from_style(PathStyle style); -internal StringMatchFlags path_match_flags_from_os(OperatingSystem os); -internal String8 path_convert_slashes(Arena *arena, String8 path, PathStyle path_style); -internal String8 path_replace_file_extension(Arena *arena, String8 file_name, String8 ext); - -#endif //PATH_H diff --git a/src/radbin/radbin_main.c b/src/radbin/radbin_main.c index 4f5cefd3..85733775 100644 --- a/src/radbin/radbin_main.c +++ b/src/radbin/radbin_main.c @@ -18,7 +18,6 @@ #include "base/base_inc.h" #include "linker/hash_table.h" #include "os/os_inc.h" -#include "path/path.h" #include "async/async.h" #include "rdi_format/rdi_format_local.h" #include "rdi_make/rdi_make_local.h" @@ -29,11 +28,7 @@ #include "elf/elf_parse.h" #include "codeview/codeview.h" #include "codeview/codeview_parse.h" -#include "dwarf/dwarf.h" -#include "dwarf/dwarf_parse.h" -#include "dwarf/dwarf_coff.h" -#include "dwarf/dwarf_elf.h" -// #include "dwarf/dwarf_dump.h" +#include "dwarf/dwarf_inc.h" #include "msf/msf.h" #include "msf/msf_parse.h" #include "pdb/pdb.h" @@ -50,7 +45,6 @@ #include "base/base_inc.c" #include "linker/hash_table.c" #include "os/os_inc.c" -#include "path/path.c" #include "async/async.c" #include "rdi_format/rdi_format_local.c" #include "rdi_make/rdi_make_local.c" @@ -61,11 +55,7 @@ #include "elf/elf_parse.c" #include "codeview/codeview.c" #include "codeview/codeview_parse.c" -#include "dwarf/dwarf.c" -#include "dwarf/dwarf_parse.c" -#include "dwarf/dwarf_coff.c" -#include "dwarf/dwarf_elf.c" -// #include "dwarf/dwarf_dump.c" +#include "dwarf/dwarf_inc.c" #include "msf/msf.c" #include "msf/msf_parse.c" #include "pdb/pdb.c" diff --git a/src/radcon/radcon_main.c b/src/radcon/radcon_main.c index 38270579..0681750f 100644 --- a/src/radcon/radcon_main.c +++ b/src/radcon/radcon_main.c @@ -28,7 +28,6 @@ #include "base/base_inc.h" #include "os/os_inc.h" #include "async/async.h" -#include "path/path.h" #include "rdi_make/rdi_make_local.h" #include "linker/hash_table.h" #include "coff/coff.h" @@ -60,7 +59,6 @@ #include "base/base_inc.c" #include "os/os_inc.c" #include "async/async.c" -#include "path/path.c" #include "rdi_make/rdi_make_local.c" #include "linker/hash_table.c" #include "coff/coff.c" diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index 6599ba8a..e9ebbaa4 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -218,7 +218,6 @@ #include "file_stream/file_stream.h" #include "text_cache/text_cache.h" #include "mutable_text/mutable_text.h" -#include "path/path.h" #include "coff/coff.h" #include "coff/coff_parse.h" #include "pe/pe.h" @@ -272,7 +271,6 @@ #include "file_stream/file_stream.c" #include "text_cache/text_cache.c" #include "mutable_text/mutable_text.c" -#include "path/path.c" #include "coff/coff.c" #include "coff/coff_parse.c" #include "pe/pe.c" diff --git a/src/raddump/raddump_main.c b/src/raddump/raddump_main.c index 4aa16e69..aa00e753 100644 --- a/src/raddump/raddump_main.c +++ b/src/raddump/raddump_main.c @@ -28,7 +28,6 @@ #include "async/async.h" #include "rdi_format/rdi_format_local.h" #include "rdi_make/rdi_make_local.h" -#include "path/path.h" #include "linker/hash_table.h" #include "coff/coff.h" #include "coff/coff_parse.h" @@ -61,7 +60,6 @@ #include "async/async.c" #include "rdi_format/rdi_format_local.c" #include "rdi_make/rdi_make_local.c" -#include "path/path.c" #include "linker/hash_table.c" #include "coff/coff.c" #include "coff/coff_parse.c" diff --git a/src/scratch/convertperf.c b/src/scratch/convertperf.c index 717db40d..3043f1c2 100644 --- a/src/scratch/convertperf.c +++ b/src/scratch/convertperf.c @@ -16,7 +16,6 @@ //- rjf: [h] #include "base/base_inc.h" #include "os/os_inc.h" -#include "path/path.h" #include "async/async.h" #include "rdi_format/rdi_format_local.h" #include "dbgi/dbgi.h" @@ -24,7 +23,6 @@ //- rjf: [c] #include "base/base_inc.c" #include "os/os_inc.c" -#include "path/path.c" #include "async/async.c" #include "rdi_format/rdi_format_local.c" #include "dbgi/dbgi.c" diff --git a/src/scratch/parse_inline_sites.c b/src/scratch/parse_inline_sites.c index 45fc8138..f6ae9eed 100644 --- a/src/scratch/parse_inline_sites.c +++ b/src/scratch/parse_inline_sites.c @@ -32,13 +32,11 @@ #include "third_party/xxHash/xxhash.h" #include "linker/base_ext/base_inc.h" -#include "linker/path_ext/path.h" #include "linker/hash_table.h" #include "linker/thread_pool/thread_pool.h" #include "linker/codeview_ext/codeview.h" #include "linker/base_ext/base_inc.c" -#include "linker/path_ext/path.c" #include "linker/hash_table.c" #include "linker/thread_pool/thread_pool.c" #include "linker/codeview_ext/codeview.c" @@ -48,96 +46,96 @@ print_inline_binary_annotations(String8 binary_annots) { U32 code_offset = 0; S32 line_offset = 0; - + for (U64 cursor = 0; cursor < binary_annots.size; ) { U64 op_offset = cursor; CV_InlineBinaryAnnotation op = CV_InlineBinaryAnnotation_Null; cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &op); - + fprintf(stdout, "\t\t[%04llX] ", op_offset); switch (op) { - case CV_InlineBinaryAnnotation_Null: { - fprintf(stdout, "End"); - cursor = binary_annots.size; - } break; - case CV_InlineBinaryAnnotation_CodeOffset: { - U32 value = 0; - cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &value); - code_offset += value; - fprintf(stdout, "CodeOffset: 0x%X; Code 0x%X", value, code_offset); - } break; - case CV_InlineBinaryAnnotation_ChangeCodeOffsetBase: { - U32 delta; - cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &delta); - code_offset += delta; - fprintf(stdout, "ChangeCodeOffsetBase: 0x%X; Code 0x%X", delta, code_offset); - } break; - case CV_InlineBinaryAnnotation_ChangeCodeOffset: { - U32 delta = 0; - cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &delta); - code_offset += delta; - fprintf(stdout, "ChangeCodeOffset: 0x%X; Code 0x%X", delta, code_offset); - } break; - case CV_InlineBinaryAnnotation_ChangeCodeLength: { - U32 delta = 0; - cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &delta); - code_offset += delta; - fprintf(stdout, "ChangeCodeLength: 0x%X; Code End 0x%X", delta, code_offset); - } break; - case CV_InlineBinaryAnnotation_ChangeFile: { - U32 file_id = 0; - cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &file_id); - fprintf(stdout, "ChangeFile: 0x%X", file_id); - } break; - case CV_InlineBinaryAnnotation_ChangeLineOffset: { - S32 delta = 0; - cursor += cv_decode_inline_annot_s32(binary_annots, cursor, &delta); - line_offset += delta; - fprintf(stdout, "ChangeLineOffset: %d; Line %d", delta, line_offset); - } break; - case CV_InlineBinaryAnnotation_ChangeLineEndDelta: { - S32 end_delta = 0; - cursor += cv_decode_inline_annot_s32(binary_annots, cursor, &end_delta); - line_offset += end_delta; - fprintf(stdout, "ChangeLineEndDelta: %d; Line %d", end_delta, line_offset); - } break; - case CV_InlineBinaryAnnotation_ChangeRangeKind: { - CV_InlineRangeKind range_kind = 0; - cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &range_kind); - String8 range_kind_str = cv_string_from_inline_range_kind(range_kind); - fprintf(stdout, "ChangeRangeKind: %.*s (%u)", str8_varg(range_kind_str), range_kind); - } break; - case CV_InlineBinaryAnnotation_ChangeColumnStart: { - S32 delta = 0; - cursor += cv_decode_inline_annot_s32(binary_annots, cursor, &delta); - fprintf(stdout, "ChangeColumnStart: %d", delta); - } break; - case CV_InlineBinaryAnnotation_ChangeCodeOffsetAndLineOffset: { - U32 code_offset_and_line_offset = 0; - cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &code_offset_and_line_offset); - S32 line_delta = cv_inline_annot_signed_from_unsigned_operand(code_offset_and_line_offset >> 4); - U32 code_delta = code_offset_and_line_offset & 0xF; - line_offset += line_delta; - code_offset += code_delta; - fprintf(stdout, "ChnageCodeOffsetAndLineOffset: 0x%X %d; Code 0x%X Line %d", code_delta, line_delta, code_offset, line_offset); - } break; - case CV_InlineBinaryAnnotation_ChangeCodeLengthAndCodeOffset: { - U32 code_length_delta = 0; - U32 code_offset_delta = 0; - cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &code_length_delta); - cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &code_offset_delta); - code_offset += code_offset_delta; - fprintf(stdout, "ChangeCodeLengthAndCodeOffset: %u 0x%X; Code 0x%X Code End 0x%X", code_length_delta, code_offset_delta, code_offset, code_offset + code_length_delta); - code_offset += code_length_delta; - } break; - case CV_InlineBinaryAnnotation_ChangeColumnEnd: { - U32 column_end = 0; - cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &column_end); - fprintf(stdout, "ChangeColumnEnd: %u", column_end); - } break; - default: { - fprintf(stdout, "Unknown Inline Binary Annotation Op Code: 0x%X", op); - } break; + case CV_InlineBinaryAnnotation_Null: { + fprintf(stdout, "End"); + cursor = binary_annots.size; + } break; + case CV_InlineBinaryAnnotation_CodeOffset: { + U32 value = 0; + cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &value); + code_offset += value; + fprintf(stdout, "CodeOffset: 0x%X; Code 0x%X", value, code_offset); + } break; + case CV_InlineBinaryAnnotation_ChangeCodeOffsetBase: { + U32 delta; + cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &delta); + code_offset += delta; + fprintf(stdout, "ChangeCodeOffsetBase: 0x%X; Code 0x%X", delta, code_offset); + } break; + case CV_InlineBinaryAnnotation_ChangeCodeOffset: { + U32 delta = 0; + cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &delta); + code_offset += delta; + fprintf(stdout, "ChangeCodeOffset: 0x%X; Code 0x%X", delta, code_offset); + } break; + case CV_InlineBinaryAnnotation_ChangeCodeLength: { + U32 delta = 0; + cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &delta); + code_offset += delta; + fprintf(stdout, "ChangeCodeLength: 0x%X; Code End 0x%X", delta, code_offset); + } break; + case CV_InlineBinaryAnnotation_ChangeFile: { + U32 file_id = 0; + cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &file_id); + fprintf(stdout, "ChangeFile: 0x%X", file_id); + } break; + case CV_InlineBinaryAnnotation_ChangeLineOffset: { + S32 delta = 0; + cursor += cv_decode_inline_annot_s32(binary_annots, cursor, &delta); + line_offset += delta; + fprintf(stdout, "ChangeLineOffset: %d; Line %d", delta, line_offset); + } break; + case CV_InlineBinaryAnnotation_ChangeLineEndDelta: { + S32 end_delta = 0; + cursor += cv_decode_inline_annot_s32(binary_annots, cursor, &end_delta); + line_offset += end_delta; + fprintf(stdout, "ChangeLineEndDelta: %d; Line %d", end_delta, line_offset); + } break; + case CV_InlineBinaryAnnotation_ChangeRangeKind: { + CV_InlineRangeKind range_kind = 0; + cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &range_kind); + String8 range_kind_str = cv_string_from_inline_range_kind(range_kind); + fprintf(stdout, "ChangeRangeKind: %.*s (%u)", str8_varg(range_kind_str), range_kind); + } break; + case CV_InlineBinaryAnnotation_ChangeColumnStart: { + S32 delta = 0; + cursor += cv_decode_inline_annot_s32(binary_annots, cursor, &delta); + fprintf(stdout, "ChangeColumnStart: %d", delta); + } break; + case CV_InlineBinaryAnnotation_ChangeCodeOffsetAndLineOffset: { + U32 code_offset_and_line_offset = 0; + cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &code_offset_and_line_offset); + S32 line_delta = cv_inline_annot_signed_from_unsigned_operand(code_offset_and_line_offset >> 4); + U32 code_delta = code_offset_and_line_offset & 0xF; + line_offset += line_delta; + code_offset += code_delta; + fprintf(stdout, "ChnageCodeOffsetAndLineOffset: 0x%X %d; Code 0x%X Line %d", code_delta, line_delta, code_offset, line_offset); + } break; + case CV_InlineBinaryAnnotation_ChangeCodeLengthAndCodeOffset: { + U32 code_length_delta = 0; + U32 code_offset_delta = 0; + cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &code_length_delta); + cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &code_offset_delta); + code_offset += code_offset_delta; + fprintf(stdout, "ChangeCodeLengthAndCodeOffset: %u 0x%X; Code 0x%X Code End 0x%X", code_length_delta, code_offset_delta, code_offset, code_offset + code_length_delta); + code_offset += code_length_delta; + } break; + case CV_InlineBinaryAnnotation_ChangeColumnEnd: { + U32 column_end = 0; + cursor += cv_decode_inline_annot_u32(binary_annots, cursor, &column_end); + fprintf(stdout, "ChangeColumnEnd: %u", column_end); + } break; + default: { + fprintf(stdout, "Unknown Inline Binary Annotation Op Code: 0x%X", op); + } break; } fprintf(stdout, "\n"); } @@ -147,10 +145,10 @@ internal void entry_point(CmdLine *cmdl) { Arena *arena = arena_alloc(); - + B32 do_help = cmd_line_has_flag(cmdl, str8_lit("help")) || - cmd_line_has_flag(cmdl, str8_lit("h")) || - (cmdl->inputs.node_count == 0 && cmdl->options.count == 0); + cmd_line_has_flag(cmdl, str8_lit("h")) || + (cmdl->inputs.node_count == 0 && cmdl->options.count == 0); if (do_help) { fprintf(stdout, "Parse Inline Sites\n" @@ -160,7 +158,7 @@ entry_point(CmdLine *cmdl) "\t-help\n"); return; } - + // -comp_unit U64 single_comp_unit_idx = max_U64; B32 single_comp_unit_mode = cmd_line_has_argument(cmdl, str8_lit("comp_unit")); @@ -171,12 +169,12 @@ entry_point(CmdLine *cmdl) return; } } - + // -base_addr U64 base_addr = 0; String8 base_str = cmd_line_string(cmdl, str8_lit("base_addr")); try_u64_from_str8_c_rules(base_str, &base_addr); - + // -pdb String8 pdb_name; if (cmd_line_has_argument(cmdl, str8_lit("pdb"))) { @@ -196,21 +194,21 @@ entry_point(CmdLine *cmdl) return; } } - + // read PDB from disk String8 pdb_data = os_data_from_file_path(arena, pdb_name); if (pdb_data.size == 0) { fprintf(stderr, "ERROR: unable to load %.*s from disk\n", str8_varg(pdb_name)); return; } - + // parse msf MSF_Parsed *msf = msf_parsed_from_data(arena, pdb_data); if (!msf) { fprintf(stderr, "ERROR: unable to parse MSF\n"); return; } - + // find dbi String8 dbi_data = msf_data_from_stream(msf, PDB_FixedStream_Dbi); PDB_DbiParsed *dbi = pdb_dbi_from_data(arena, dbi_data); @@ -218,21 +216,21 @@ entry_point(CmdLine *cmdl) fprintf(stderr, "ERROR: unable to parse DBI\n"); return; } - + // find info stream String8 info_data = msf_data_from_stream(msf, PDB_FixedStream_Info); PDB_Info *info = pdb_info_from_data(arena, info_data); if (!info) { fprintf(stderr, "ERROR: unable to parse INFO\n"); } - + // parse named streams PDB_NamedStreamTable *named_streams = pdb_named_stream_table_from_info(arena, info); if (!named_streams) { fprintf(stderr, "ERROR: unable to parse named streams\n"); return; } - + // find string table MSF_StreamNumber strtbl_sn = named_streams->sn[PDB_NamedStream_StringTable]; String8 strtbl_data = msf_data_from_stream(msf, strtbl_sn); @@ -241,29 +239,29 @@ entry_point(CmdLine *cmdl) fprintf(stderr, "ERROR: unable to parse string table\n"); return; } - + // find IPI String8 ipi_data = msf_data_from_stream(msf, PDB_FixedStream_Ipi); PDB_TpiParsed *ipi = pdb_tpi_from_data(arena, ipi_data); String8 ipi_leaf_data = pdb_leaf_data_from_tpi(ipi); CV_LeafParsed *ipi_leaf_parsed = cv_leaf_from_data(arena, ipi_leaf_data, ipi->itype_first); - + // find sections MSF_StreamNumber section_stream = dbi->dbg_streams[PDB_DbiStream_SECTION_HEADER]; String8 section_data = msf_data_from_stream(msf, section_stream); COFF_SectionHeaderArray sections = pdb_coff_section_array_from_data(arena, section_data); - + // find comp units String8 comp_units_data = pdb_data_from_dbi_range(dbi, PDB_DbiRange_ModuleInfo); PDB_CompUnitArray *comp_units = pdb_comp_unit_array_from_data(arena, comp_units_data); - + if (single_comp_unit_mode) { if (single_comp_unit_idx >= comp_units->count) { fprintf(stderr, "comp unit idx %llu is out of bounds, PDB has %llu comp unit(s)\n", single_comp_unit_idx, comp_units->count); return; } } - + #if 0 // print run info DateTime now_time_universal = os_now_universal_time(); @@ -274,7 +272,7 @@ entry_point(CmdLine *cmdl) fprintf(stdout, "Size: %llu (bytes)\n", pdb_data.size); fprintf(stdout, "\n"); #endif - + // prepare iterator U64 comp_unit_idx; U64 comp_unit_count; @@ -285,42 +283,42 @@ entry_point(CmdLine *cmdl) comp_unit_idx = 0; comp_unit_count = comp_units->count; } - + for (; comp_unit_idx < comp_unit_count; ++comp_unit_idx) { PDB_CompUnit *comp_unit = comp_units->units[comp_unit_idx]; String8 symbol_data = pdb_data_from_unit_range(msf, comp_unit, PDB_DbiCompUnitRange_Symbols); String8 c13_data = pdb_data_from_unit_range(msf, comp_unit, PDB_DbiCompUnitRange_C13); - + // parse $$ CV_DebugS debug_s = cv_parse_debug_s_c13(arena, c13_data); - + // find $$FILE_CKSMS String8 file_chksms = cv_file_chksms_from_debug_s(debug_s); - + // parse $$INLINEE_LINES String8List ss_inlinee_lines = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_InlineeLines); CV_C13InlineeLinesParsedList inlinee_lines_parsed = cv_c13_inlinee_lines_from_sub_sections(arena, ss_inlinee_lines); - + // parse $$LINES U64 c13_lines_count = 0; CV_LineArray *c13_lines = 0; { String8List raw_lines_list = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_Lines); - + for (String8Node *raw_lines_node = raw_lines_list.first; raw_lines_node != 0; raw_lines_node = raw_lines_node->next) { Temp temp = temp_begin(arena); CV_C13LinesHeaderList parsed_list = cv_c13_lines_from_sub_sections(temp.arena, raw_lines_node->string, rng_1u64(0, raw_lines_node->string.size)); c13_lines_count += parsed_list.count; temp_end(temp); } - + c13_lines = push_array_no_zero(arena, CV_LineArray, c13_lines_count); - + U64 c13_lines_idx = 0; for (String8Node *raw_lines_node = raw_lines_list.first; raw_lines_node != 0; raw_lines_node = raw_lines_node->next) { String8 raw_lines = raw_lines_node->string; CV_C13LinesHeaderList parsed_list = cv_c13_lines_from_sub_sections(arena, raw_lines, rng_1u64(0, raw_lines.size)); - + for(CV_C13LinesHeaderNode *header_node = parsed_list.first; header_node != 0; header_node = header_node->next) { if (0 < header_node->v.sec_idx && header_node->v.sec_idx <= sections.count) { Assert(c13_lines_idx < c13_lines_count); @@ -332,32 +330,32 @@ entry_point(CmdLine *cmdl) } } } - + String8List raw_inlinee_lines = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_InlineeLines); CV_C13InlineeLinesParsedList inlinee_lines = cv_c13_inlinee_lines_from_sub_sections(arena, raw_inlinee_lines); - + CV_InlineeLinesAccel *inlinee_lines_accel = cv_c13_make_inlinee_lines_accel(arena, inlinee_lines); CV_LinesAccel *lines_accel = cv_c13_make_lines_accel(arena, c13_lines_count, c13_lines); - + fprintf(stdout, "[%llu] %.*s\n", comp_unit_idx, str8_varg(comp_unit->obj_name)); - + U64 scope_level = 0; U64 parent_voff = 0; String8 parent_name = str8_lit("???"); - + CV_SymbolList symbol_list = {0}; cv_parse_symbol_sub_section(arena, &symbol_list, 0, symbol_data, CV_SymbolAlign); - + for (CV_SymbolNode *symbol_n = symbol_list.first; symbol_n != 0; symbol_n = symbol_n->next) { CV_Symbol symbol = symbol_n->data; void *rec_raw = symbol.data.str; void *rec_opl = symbol.data.str + symbol.data.size; - + if (symbol.kind == CV_SymKind_LPROC32 || symbol.kind == CV_SymKind_GPROC32) { CV_SymProc32 *proc32 = rec_raw; parent_voff = sections.v[proc32->sec-1].voff + proc32->off; parent_name = str8_cstring_capped(proc32+1, rec_opl); - + scope_level += 1; } else if (symbol.kind == CV_SymKind_BLOCK32) { scope_level += 1; @@ -375,7 +373,7 @@ entry_point(CmdLine *cmdl) String8 binary_annots = str8_skip(symbol.data, sizeof(*inline_site)); CV_C13InlineeLinesParsed *inlinee_parsed = cv_c13_inlinee_lines_accel_find(inlinee_lines_accel, inline_site->inlinee); CV_InlineBinaryAnnotsParsed binary_annots_parse = cv_c13_parse_inline_binary_annots(arena, parent_voff, inlinee_parsed, binary_annots); - + String8 inlinee_name = str8_lit("???"); if (ipi->itype_first <= inline_site->inlinee && inline_site->inlinee < ipi->itype_opl) { @@ -390,15 +388,15 @@ entry_point(CmdLine *cmdl) inlinee_name = str8_cstring_capped(func_id + 1, leaf_opl); } } - - + + String8 first_ln = str8_lit("???"); String8 file_off = str8_lit("???"); if (inlinee_parsed) { first_ln = push_str8f(arena, "%u", inlinee_parsed->first_source_ln); file_off = push_str8f(arena, "0x%X", inlinee_parsed->file_off); } - + fprintf(stdout, "\tInline site @ %06llX, Parent VOFF: 0x%llX (%.*s), Inlinee: 0x%X (%.*s), First LN: %.*s, File Off: %.*s\n", (symbol.offset + sizeof(symbol.kind)), parent_voff, @@ -407,20 +405,20 @@ entry_point(CmdLine *cmdl) str8_varg(inlinee_name), str8_varg(first_ln), str8_varg(file_off)); - + fprintf(stdout, "\t\tOpcodes:\n"); print_inline_binary_annotations(binary_annots); fprintf(stdout, "\n"); - + fprintf(stdout, "\t\tLines:\n"); for (U64 lines_idx = 0; lines_idx < binary_annots_parse.lines_count; lines_idx += 1) { CV_LineArray lines = binary_annots_parse.lines[lines_idx]; - + CV_C13Checksum checksum = {0}; str8_deserial_read_struct(file_chksms, lines.file_off, &checksum); - + String8 file_name = pdb_strtbl_string_from_off(strtbl, checksum.name_off); - + fprintf(stdout, "\t\t%.*s\n", str8_varg(file_name)); for (U64 line_idx = 0; line_idx < lines.line_count; ++line_idx) { char *pre = (line_idx % 4) == 0 ? "\t\t\t" : "\t"; @@ -429,7 +427,7 @@ entry_point(CmdLine *cmdl) } } fprintf(stdout, "\n"); - + fprintf(stdout, "\t\tCode Ranges:\n"); U64 range_idx = 0; for (Rng1U64Node *range_n = binary_annots_parse.code_ranges.first; range_n != 0; range_n = range_n->next, ++range_idx) { diff --git a/src/tester/tester_main.c b/src/tester/tester_main.c index ae080379..604ca440 100644 --- a/src/tester/tester_main.c +++ b/src/tester/tester_main.c @@ -14,7 +14,6 @@ //- rjf: [h] #include "base/base_inc.h" #include "os/os_inc.h" -#include "path/path.h" #include "hash_store/hash_store.h" #include "rdi_format/rdi_format_local.h" #include "regs/regs.h" @@ -24,7 +23,6 @@ //- rjf: [c] #include "base/base_inc.c" #include "os/os_inc.c" -#include "path/path.c" #include "hash_store/hash_store.c" #include "rdi_format/rdi_format_local.c" #include "regs/regs.c" From 66c2d51a7d5d7960b2cf1ef741c599cd38ac58a5 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 08:02:36 -0700 Subject: [PATCH 014/372] pass over dwarf dump, get it building, eliminate reliance on one-off helpers from raddump --- src/base/base_strings.c | 17 +++++++++++++ src/base/base_strings.h | 5 ++++ src/dwarf/dwarf_dump.c | 54 ++++++++++++++++++++--------------------- src/dwarf/dwarf_dump.h | 49 +++++++++++++++++++++++++++++++++++++ src/raddump/raddump.c | 1 + 5 files changed, 99 insertions(+), 27 deletions(-) diff --git a/src/base/base_strings.c b/src/base/base_strings.c index d9443825..bbd485c9 100644 --- a/src/base/base_strings.c +++ b/src/base/base_strings.c @@ -1147,6 +1147,23 @@ str8_list_from_flags(Arena *arena, String8List *list, } } +//////////////////////////////// +//~ rjf: Basic Data Structure Stringification Helpers + +internal String8List +numeric_str8_list_from_data(Arena *arena, U32 radix, String8 data, U64 stride) +{ + String8List strs = {0}; + U64 count = data.size/stride; + for EachIndex(idx, count) + { + U64 val = 0; + MemoryCopy(&val, data.str + idx*stride, stride); + str8_list_push(arena, &strs, str8_from_u64(arena, val, radix, 0, 0)); + } + return strs; +} + //////////////////////////////// //~ rjf; String Arrays diff --git a/src/base/base_strings.h b/src/base/base_strings.h index fead8e4d..022676f3 100644 --- a/src/base/base_strings.h +++ b/src/base/base_strings.h @@ -285,6 +285,11 @@ internal String8List str8_list_split_by_string_chars(Arena *arena, String8List internal String8 str8_list_join(Arena *arena, String8List *list, StringJoin *optional_params); internal void str8_list_from_flags(Arena *arena, String8List *list, U32 flags, String8 *flag_string_table, U32 flag_string_count); +//////////////////////////////// +//~ rjf: Basic Data Stringification Helpers + +internal String8List numeric_str8_list_from_data(Arena *arena, U32 radix, String8 data, U64 stride); + //////////////////////////////// //~ rjf; String Arrays diff --git a/src/dwarf/dwarf_dump.c b/src/dwarf/dwarf_dump.c index 10affdec..a90fe145 100644 --- a/src/dwarf/dwarf_dump.c +++ b/src/dwarf/dwarf_dump.c @@ -11,8 +11,6 @@ dw_string_from_reg_off(Arena *arena, Arch arch, U64 reg_idx, S64 reg_off) return result; } -B32 is_global_var = 0; - internal String8List dw_string_list_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) { @@ -108,9 +106,8 @@ dw_string_list_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 Rng1U64 value_range = rng_1u64(cursor, cursor + value_size); String8 value_data = str8_substr(raw_data, value_range); cursor += value_size; - - String8 value_str = rd_string_from_hex_u8(scratch.arena, value_data.str, value_data.size); - op_value = push_str8f(scratch.arena, "{ %S }", value_str); + String8List value_strings = numeric_str8_list_from_data(scratch.arena, 16, value_data, 1); + op_value = str8_list_join(scratch.arena, &value_strings, &(StringJoin){.pre = str8_lit("{ "), .sep = str8_lit(", "), .post = str8_lit(" }")}); } break; case DW_ExprOp_Piece: { @@ -240,7 +237,8 @@ dw_string_list_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 cursor += str8_deserial_read_struct(raw_data, cursor, &const_value_size); Rng1U64 const_value_range = rng_1u64(cursor, cursor + const_value_size); String8 const_value_data = str8_substr(raw_data, const_value_range); - String8 const_value_str = rd_string_from_hex_u8(scratch.arena, const_value_data.str, const_value_data.size); + String8List const_value_strings = numeric_str8_list_from_data(scratch.arena, 16, const_value_data, 1); + String8 const_value_str = str8_list_join(scratch.arena, &const_value_strings, &(StringJoin){.sep = str8_lit(", ")}); op_value = push_str8f(scratch.arena, "TypeCuOff %#llx, Const Value { %S }", cu_base + type_cu_off, const_value_str); cursor += const_value_size; } break; @@ -717,9 +715,10 @@ dw_print_debug_info(Arena *arena, String8List *out, String8 indent, DW_Input *in str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", address); } break; case DW_AttribClass_Block: { - String8 block = dw_block_from_attrib_ptr(input, &cu, attrib); - String8 block_str = rd_string_from_hex_u8(attrib_temp.arena, block.str, block.size); - str8_list_pushf(attrib_temp.arena, &attrib_list, "%S", block_str); + String8 block = dw_block_from_attrib_ptr(input, &cu, attrib); + String8List block_strs = numeric_str8_list_from_data(attrib_temp.arena, 16, block, 1); + String8 block_str = str8_list_join(attrib_temp.arena, &block_strs, &(StringJoin){.sep = str8_lit(", ")}); + str8_list_push(attrib_temp.arena, &attrib_list, block_str); } break; case DW_AttribClass_Const: { U64 constant = dw_const_u64_from_attrib_ptr(input, &cu, attrib); @@ -967,7 +966,8 @@ dw_print_debug_line(Arena *arena, String8List *out, String8 indent, DW_Input *in { rd_printf("Header:", line_vm_size); rd_indent(); - String8 opcode_lengths = rd_format_hex_array(unit_temp.arena, line_vm.opcode_lens, line_vm.num_opcode_lens); + String8List opcode_length_strings = numeric_str8_list_from_data(unit_temp.arena, 16, str8(line_vm.opcode_lens, line_vm.num_opcode_lens), 1); + String8 opcode_lengths_string = str8_list_join(arena, &opcode_length_strings, &(StringJoin){.sep = str8_lit(", ")}); rd_printf("Version: %u", line_vm.version ); rd_printf("Line table offset: %#llx", line_vm.unit_range.min ); rd_printf("Line table length: %llu", dim_1u64(line_vm.unit_range) ); @@ -981,7 +981,7 @@ dw_print_debug_line(Arena *arena, String8List *out, String8 indent, DW_Input *in rd_printf("Line base: %d", line_vm.line_base ); rd_printf("Line range: %u", line_vm.line_range ); rd_printf("Opcode base: %u", line_vm.opcode_base ); - rd_printf("Opcode lengths: %S", opcode_lengths ); + rd_printf("Opcode lengths: %S", opcode_lengths_string ); rd_unindent(); rd_newline(); } @@ -2147,55 +2147,55 @@ dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 indent, DW_In } internal void -dw_format(Arena *arena, String8List *out, String8 indent, RD_Option opts, DW_Input *input, Arch arch, ExecutableImageKind image_type) +dw_format(Arena *arena, String8List *out, String8 indent, DW_DumpSubsetFlags subset_flags, DW_Input *input, Arch arch, ExecutableImageKind image_type) { Temp scratch = scratch_begin(&arena, 1); Rng1U64Array segment_vranges = {0}; DW_ListUnitInput lu_input = dw_list_unit_input_from_input(scratch.arena, input); - B32 relaxed = !!(opts & RD_Option_RelaxDwarfParser); + B32 relaxed = 1; - if (opts & RD_Option_DebugInfo) { + if (subset_flags & DW_DumpSubsetFlag_DebugInfo) { dw_print_debug_info(arena, out, indent, input, lu_input, arch, relaxed); } - if (opts & RD_Option_DebugAbbrev) { + if (subset_flags & DW_DumpSubsetFlag_DebugAbbrev) { dw_print_debug_abbrev(arena, out, indent, input); } - if (opts & RD_Option_DebugLine) { + if (subset_flags & DW_DumpSubsetFlag_DebugLine) { dw_print_debug_line(arena, out, indent, input, lu_input, relaxed); } - if (opts & RD_Option_DebugStr) { + if (subset_flags & DW_DumpSubsetFlag_DebugStr) { dw_print_debug_str(arena, out, indent, input); } - if (opts & RD_Option_DebugLoc) { + if (subset_flags & DW_DumpSubsetFlag_DebugLoc) { dw_print_debug_loc(arena, out, indent, input, arch, image_type, relaxed); } - if (opts & RD_Option_DebugRanges) { + if (subset_flags & DW_DumpSubsetFlag_DebugRanges) { dw_print_debug_ranges(arena, out, indent, input, arch, image_type, relaxed); } - if (opts & RD_Option_DebugARanges) { + if (subset_flags & DW_DumpSubsetFlag_DebugARanges) { dw_print_debug_aranges(arena, out, indent, input); } - if (opts & RD_Option_DebugAddr) { + if (subset_flags & DW_DumpSubsetFlag_DebugAddr) { dw_print_debug_addr(arena, out, indent, input); } - if (opts & RD_Option_DebugLocLists) { + if (subset_flags & DW_DumpSubsetFlag_DebugLocLists) { dw_print_debug_loclists(arena, out, indent, input, segment_vranges, arch); } - if (opts & RD_Option_DebugRngLists) { + if (subset_flags & DW_DumpSubsetFlag_DebugRngLists) { dw_print_debug_rnglists(arena, out, indent, input, segment_vranges); } - if (opts & RD_Option_DebugPubNames) { + if (subset_flags & DW_DumpSubsetFlag_DebugPubNames) { dw_print_debug_pubnames(arena, out, indent, input); } - if (opts & RD_Option_DebugPubTypes) { + if (subset_flags & DW_DumpSubsetFlag_DebugPubTypes) { dw_print_debug_pubtypes(arena, out, indent, input); } - if (opts & RD_Option_DebugLineStr) { + if (subset_flags & DW_DumpSubsetFlag_DebugLineStr) { dw_print_debug_line_str(arena, out, indent, input); } - if (opts & RD_Option_DebugStrOffsets) { + if (subset_flags & DW_DumpSubsetFlag_DebugStrOffsets) { dw_print_debug_str_offsets(arena, out, indent, input); } diff --git a/src/dwarf/dwarf_dump.h b/src/dwarf/dwarf_dump.h index ee0709df..66e2ff24 100644 --- a/src/dwarf/dwarf_dump.h +++ b/src/dwarf/dwarf_dump.h @@ -4,6 +4,53 @@ #ifndef DWARF_DUMP_H #define DWARF_DUMP_H +#define DW_DumpSubset_XList \ +X(DebugInfo, debug_info, "DEBUG INFO")\ +X(DebugAbbrev, debug_abbrev, "DEBUG ABBREV")\ +X(DebugLine, debug_line, "DEBUG LINE")\ +X(DebugStr, debug_str, "DEBUG STR")\ +X(DebugLoc, debug_loc, "DEBUG LOC")\ +X(DebugRanges, debug_ranges, "DEBUG RANGES")\ +X(DebugARanges, debug_aranges, "DEBUG ARANGES")\ +X(DebugAddr, debug_addr, "DEBUG ADDR")\ +X(DebugLocLists, debug_loclists, "DEBUG LOCLISTS")\ +X(DebugRngLists, debug_rnglists, "DEBUG RNGLISTS")\ +X(DebugPubNames, debug_pubnames, "DEBUG PUBNAMES")\ +X(DebugPubTypes, debug_pubtypes, "DEBUG PUBTYPES")\ +X(DebugLineStr, debug_linestr, "DEBUG LINESTR")\ +X(DebugStrOffsets, debug_stroff, "DEBUG STROFF")\ + +typedef enum DW_DumpSubset +{ +#define X(name, name_lower, title) DW_DumpSubset_##name, + DW_DumpSubset_XList +#undef X +} +DW_DumpSubset; + +typedef U32 DW_DumpSubsetFlags; +enum +{ +#define X(name, name_lower, title) DW_DumpSubsetFlag_##name = (1< Date: Thu, 19 Jun 2025 08:21:58 -0700 Subject: [PATCH 015/372] lib_rdi_format -> lib_rdi --- src/dwarf/dwarf_dump.h | 4 +- .../rdi_format.c => lib_rdi/rdi.c} | 720 ++-- .../rdi_format.h => lib_rdi/rdi.h} | 3148 ++++++++--------- .../rdi_parse.c} | 0 .../rdi_parse.h} | 466 +-- src/linker/lnk.c | 6 +- src/linker/rdi/rdi.c | 1 - src/linker/rdi/rdi.h | 4 - src/radbin/radbin_main.c | 4 +- src/raddbg/raddbg_main.c | 4 +- .../rdi_format.mdesk => rdi/rdi.mdesk} | 22 +- .../rdi_format_local.c => rdi/rdi_local.c} | 2514 ++++++------- .../rdi_format_local.h => rdi/rdi_local.h} | 204 +- 13 files changed, 3545 insertions(+), 3552 deletions(-) rename src/{lib_rdi_format/rdi_format.c => lib_rdi/rdi.c} (96%) rename src/{lib_rdi_format/rdi_format.h => lib_rdi/rdi.h} (96%) rename src/{lib_rdi_format/rdi_format_parse.c => lib_rdi/rdi_parse.c} (100%) rename src/{lib_rdi_format/rdi_format_parse.h => lib_rdi/rdi_parse.h} (96%) delete mode 100644 src/linker/rdi/rdi.c delete mode 100644 src/linker/rdi/rdi.h rename src/{rdi_format/rdi_format.mdesk => rdi/rdi.mdesk} (99%) rename src/{rdi_format/rdi_format_local.c => rdi/rdi_local.c} (97%) rename src/{rdi_format/rdi_format_local.h => rdi/rdi_local.h} (95%) diff --git a/src/dwarf/dwarf_dump.h b/src/dwarf/dwarf_dump.h index 66e2ff24..73c6ad7b 100644 --- a/src/dwarf/dwarf_dump.h +++ b/src/dwarf/dwarf_dump.h @@ -51,6 +51,7 @@ read_only global String8 dw_name_title_from_dump_subset_table[] = #undef X }; +internal String8 dw_string_from_reg_off(Arena *arena, Arch arch, U64 reg_idx, S64 reg_off); internal String8List dw_string_list_from_expression (Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); internal String8 dw_format_expression_single_line(Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); internal String8 dw_format_eh_ptr_enc (Arena *arena, DW_EhPtrEnc enc); @@ -71,7 +72,6 @@ internal void dw_print_debug_pubnames (Arena *arena, String8List *out, String8 internal void dw_print_debug_pubtypes (Arena *arena, String8List *out, String8 indent, DW_Input *input); internal void dw_print_debug_line_str (Arena *arena, String8List *out, String8 indent, DW_Input *input); internal void dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 indent, DW_Input *input); -internal void -dw_format(Arena *arena, String8List *out, String8 indent, DW_DumpSubsetFlags subset_flags, DW_Input *input, Arch arch, ExecutableImageKind image_type); +internal void dw_format(Arena *arena, String8List *out, String8 indent, DW_DumpSubsetFlags subset_flags, DW_Input *input, Arch arch, ExecutableImageKind image_type); #endif // DWARF_DUMP_H diff --git a/src/lib_rdi_format/rdi_format.c b/src/lib_rdi/rdi.c similarity index 96% rename from src/lib_rdi_format/rdi_format.c rename to src/lib_rdi/rdi.c index 5d301b95..73760f04 100644 --- a/src/lib_rdi_format/rdi_format.c +++ b/src/lib_rdi/rdi.c @@ -1,360 +1,360 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////////////////////////////////////// -//~ RAD Debug Info, (R)AD(D)BG(I) Format Library -// -// Defines standard RDI debug information format types and -// functions. - -#ifndef RDI_FORMAT_C -#define RDI_FORMAT_C - -RDI_U16 rdi_section_element_size_table[40] = -{ -sizeof(RDI_U8), -sizeof(RDI_TopLevelInfo), -sizeof(RDI_U8), -sizeof(RDI_U32), -sizeof(RDI_U32), -sizeof(RDI_BinarySection), -sizeof(RDI_FilePathNode), -sizeof(RDI_SourceFile), -sizeof(RDI_LineTable), -sizeof(RDI_U64), -sizeof(RDI_Line), -sizeof(RDI_Column), -sizeof(RDI_SourceLineMap), -sizeof(RDI_U32), -sizeof(RDI_U32), -sizeof(RDI_U64), -sizeof(RDI_Unit), -sizeof(RDI_VMapEntry), -sizeof(RDI_TypeNode), -sizeof(RDI_UDT), -sizeof(RDI_Member), -sizeof(RDI_EnumMember), -sizeof(RDI_GlobalVariable), -sizeof(RDI_VMapEntry), -sizeof(RDI_ThreadVariable), -sizeof(RDI_Constant), -sizeof(RDI_Procedure), -sizeof(RDI_Scope), -sizeof(RDI_U64), -sizeof(RDI_VMapEntry), -sizeof(RDI_InlineSite), -sizeof(RDI_Local), -sizeof(RDI_LocationBlock), -sizeof(RDI_U8), -sizeof(RDI_U8), -sizeof(RDI_U32), -sizeof(RDI_NameMap), -sizeof(RDI_NameMapBucket), -sizeof(RDI_NameMapNode), -sizeof(RDI_U8), -}; - -RDI_U8 rdi_section_is_required_table[40] = -{ -0, -0, -1, -1, -1, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -}; - -RDI_U16 rdi_eval_op_ctrlbits_table[52] = -{ -RDI_EVAL_CTRLBITS(0, 0, 0), -RDI_EVAL_CTRLBITS(0, 0, 0), -RDI_EVAL_CTRLBITS(1, 1, 0), -RDI_EVAL_CTRLBITS(2, 0, 0), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(4, 0, 1), -RDI_EVAL_CTRLBITS(0, 1, 1), -RDI_EVAL_CTRLBITS(8, 0, 1), -RDI_EVAL_CTRLBITS(4, 0, 1), -RDI_EVAL_CTRLBITS(4, 0, 1), -RDI_EVAL_CTRLBITS(0, 0, 0), -RDI_EVAL_CTRLBITS(0, 0, 0), -RDI_EVAL_CTRLBITS(1, 0, 1), -RDI_EVAL_CTRLBITS(2, 0, 1), -RDI_EVAL_CTRLBITS(4, 0, 1), -RDI_EVAL_CTRLBITS(8, 0, 1), -RDI_EVAL_CTRLBITS(16, 0, 1), -RDI_EVAL_CTRLBITS(1, 0, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(2, 1, 1), -RDI_EVAL_CTRLBITS(1, 0, 1), -RDI_EVAL_CTRLBITS(0, 1, 0), -RDI_EVAL_CTRLBITS(1, 0, 0), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(4, 0, 0), -RDI_EVAL_CTRLBITS(4, 0, 0), -RDI_EVAL_CTRLBITS(8, 0, 0), -RDI_EVAL_CTRLBITS(0, 0, 0), -}; - -struct {RDI_EvalConversionKind dst_typegroups[RDI_EvalTypeGroup_COUNT];} rdi_eval_typegroup_conversion_kind_matrix[6] = -{ -{{RDI_EvalConversionKind_OtherToOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther}}, -{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}}, -{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}}, -{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal}}, -{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop}}, -{{RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop}}, -}; - -struct {RDI_U8 *str; RDI_U64 size;} rdi_eval_conversion_kind_message_string_table[6] = -{ -{(RDI_U8 *)"", sizeof("")}, -{(RDI_U8 *)"", sizeof("")}, -{(RDI_U8 *)"Cannot convert between these types.", sizeof("Cannot convert between these types.")}, -{(RDI_U8 *)"Cannot convert to this type.", sizeof("Cannot convert to this type.")}, -{(RDI_U8 *)"Cannot convert this type.", sizeof("Cannot convert this type.")}, -{(RDI_U8 *)"", sizeof("")}, -}; - -RDI_PROC RDI_U64 -rdi_hash(RDI_U8 *ptr, RDI_U64 size) -{ - RDI_U64 result = 5381; - RDI_U8 *opl = ptr + size; - for(;ptr < opl; ptr += 1) - { - result = ((result << 5) + result) + *ptr; - } - return result; -} - -RDI_PROC RDI_U8 * -rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out) -{ -RDI_U8 *result = 0; -*size_out = 0; -switch (kind) -{ -default:{}break; -case RDI_TypeKind_NULL: {result = (RDI_U8*)"NULL"; *size_out = sizeof("NULL")-1;}break; -case RDI_TypeKind_Void: {result = (RDI_U8*)"Void"; *size_out = sizeof("Void")-1;}break; -case RDI_TypeKind_Handle: {result = (RDI_U8*)"Handle"; *size_out = sizeof("Handle")-1;}break; -case RDI_TypeKind_HResult: {result = (RDI_U8*)"HResult"; *size_out = sizeof("HResult")-1;}break; -case RDI_TypeKind_Char8: {result = (RDI_U8*)"Char8"; *size_out = sizeof("Char8")-1;}break; -case RDI_TypeKind_Char16: {result = (RDI_U8*)"Char16"; *size_out = sizeof("Char16")-1;}break; -case RDI_TypeKind_Char32: {result = (RDI_U8*)"Char32"; *size_out = sizeof("Char32")-1;}break; -case RDI_TypeKind_UChar8: {result = (RDI_U8*)"UChar8"; *size_out = sizeof("UChar8")-1;}break; -case RDI_TypeKind_UChar16: {result = (RDI_U8*)"UChar16"; *size_out = sizeof("UChar16")-1;}break; -case RDI_TypeKind_UChar32: {result = (RDI_U8*)"UChar32"; *size_out = sizeof("UChar32")-1;}break; -case RDI_TypeKind_U8: {result = (RDI_U8*)"U8"; *size_out = sizeof("U8")-1;}break; -case RDI_TypeKind_U16: {result = (RDI_U8*)"U16"; *size_out = sizeof("U16")-1;}break; -case RDI_TypeKind_U32: {result = (RDI_U8*)"U32"; *size_out = sizeof("U32")-1;}break; -case RDI_TypeKind_U64: {result = (RDI_U8*)"U64"; *size_out = sizeof("U64")-1;}break; -case RDI_TypeKind_U128: {result = (RDI_U8*)"U128"; *size_out = sizeof("U128")-1;}break; -case RDI_TypeKind_U256: {result = (RDI_U8*)"U256"; *size_out = sizeof("U256")-1;}break; -case RDI_TypeKind_U512: {result = (RDI_U8*)"U512"; *size_out = sizeof("U512")-1;}break; -case RDI_TypeKind_S8: {result = (RDI_U8*)"S8"; *size_out = sizeof("S8")-1;}break; -case RDI_TypeKind_S16: {result = (RDI_U8*)"S16"; *size_out = sizeof("S16")-1;}break; -case RDI_TypeKind_S32: {result = (RDI_U8*)"S32"; *size_out = sizeof("S32")-1;}break; -case RDI_TypeKind_S64: {result = (RDI_U8*)"S64"; *size_out = sizeof("S64")-1;}break; -case RDI_TypeKind_S128: {result = (RDI_U8*)"S128"; *size_out = sizeof("S128")-1;}break; -case RDI_TypeKind_S256: {result = (RDI_U8*)"S256"; *size_out = sizeof("S256")-1;}break; -case RDI_TypeKind_S512: {result = (RDI_U8*)"S512"; *size_out = sizeof("S512")-1;}break; -case RDI_TypeKind_Bool: {result = (RDI_U8*)"Bool"; *size_out = sizeof("Bool")-1;}break; -case RDI_TypeKind_F16: {result = (RDI_U8*)"F16"; *size_out = sizeof("F16")-1;}break; -case RDI_TypeKind_F32: {result = (RDI_U8*)"F32"; *size_out = sizeof("F32")-1;}break; -case RDI_TypeKind_F32PP: {result = (RDI_U8*)"F32PP"; *size_out = sizeof("F32PP")-1;}break; -case RDI_TypeKind_F48: {result = (RDI_U8*)"F48"; *size_out = sizeof("F48")-1;}break; -case RDI_TypeKind_F64: {result = (RDI_U8*)"F64"; *size_out = sizeof("F64")-1;}break; -case RDI_TypeKind_F80: {result = (RDI_U8*)"F80"; *size_out = sizeof("F80")-1;}break; -case RDI_TypeKind_F128: {result = (RDI_U8*)"F128"; *size_out = sizeof("F128")-1;}break; -case RDI_TypeKind_ComplexF32: {result = (RDI_U8*)"ComplexF32"; *size_out = sizeof("ComplexF32")-1;}break; -case RDI_TypeKind_ComplexF64: {result = (RDI_U8*)"ComplexF64"; *size_out = sizeof("ComplexF64")-1;}break; -case RDI_TypeKind_ComplexF80: {result = (RDI_U8*)"ComplexF80"; *size_out = sizeof("ComplexF80")-1;}break; -case RDI_TypeKind_ComplexF128: {result = (RDI_U8*)"ComplexF128"; *size_out = sizeof("ComplexF128")-1;}break; -case RDI_TypeKind_Modifier: {result = (RDI_U8*)"Modifier"; *size_out = sizeof("Modifier")-1;}break; -case RDI_TypeKind_Ptr: {result = (RDI_U8*)"Ptr"; *size_out = sizeof("Ptr")-1;}break; -case RDI_TypeKind_LRef: {result = (RDI_U8*)"LRef"; *size_out = sizeof("LRef")-1;}break; -case RDI_TypeKind_RRef: {result = (RDI_U8*)"RRef"; *size_out = sizeof("RRef")-1;}break; -case RDI_TypeKind_Array: {result = (RDI_U8*)"Array"; *size_out = sizeof("Array")-1;}break; -case RDI_TypeKind_Function: {result = (RDI_U8*)"Function"; *size_out = sizeof("Function")-1;}break; -case RDI_TypeKind_Method: {result = (RDI_U8*)"Method"; *size_out = sizeof("Method")-1;}break; -case RDI_TypeKind_MemberPtr: {result = (RDI_U8*)"MemberPtr"; *size_out = sizeof("MemberPtr")-1;}break; -case RDI_TypeKind_Struct: {result = (RDI_U8*)"Struct"; *size_out = sizeof("Struct")-1;}break; -case RDI_TypeKind_Class: {result = (RDI_U8*)"Class"; *size_out = sizeof("Class")-1;}break; -case RDI_TypeKind_Union: {result = (RDI_U8*)"Union"; *size_out = sizeof("Union")-1;}break; -case RDI_TypeKind_Enum: {result = (RDI_U8*)"Enum"; *size_out = sizeof("Enum")-1;}break; -case RDI_TypeKind_Alias: {result = (RDI_U8*)"Alias"; *size_out = sizeof("Alias")-1;}break; -case RDI_TypeKind_IncompleteStruct: {result = (RDI_U8*)"IncompleteStruct"; *size_out = sizeof("IncompleteStruct")-1;}break; -case RDI_TypeKind_IncompleteUnion: {result = (RDI_U8*)"IncompleteUnion"; *size_out = sizeof("IncompleteUnion")-1;}break; -case RDI_TypeKind_IncompleteClass: {result = (RDI_U8*)"IncompleteClass"; *size_out = sizeof("IncompleteClass")-1;}break; -case RDI_TypeKind_IncompleteEnum: {result = (RDI_U8*)"IncompleteEnum"; *size_out = sizeof("IncompleteEnum")-1;}break; -case RDI_TypeKind_Bitfield: {result = (RDI_U8*)"Bitfield"; *size_out = sizeof("Bitfield")-1;}break; -case RDI_TypeKind_Variadic: {result = (RDI_U8*)"Variadic"; *size_out = sizeof("Variadic")-1;}break; -case RDI_TypeKind_Count: {result = (RDI_U8*)"Count"; *size_out = sizeof("Count")-1;}break; -} -return result; -} - -RDI_PROC RDI_U32 -rdi_size_from_basic_type_kind(RDI_TypeKind kind) -{ -RDI_U32 result = 0; -switch(kind) -{ -default:{}break; -case RDI_TypeKind_Handle:{result = 0xFFFFFFFF;}break; -case RDI_TypeKind_HResult:{result = 4;}break; -case RDI_TypeKind_Char8:{result = 1;}break; -case RDI_TypeKind_Char16:{result = 2;}break; -case RDI_TypeKind_Char32:{result = 4;}break; -case RDI_TypeKind_UChar8:{result = 1;}break; -case RDI_TypeKind_UChar16:{result = 2;}break; -case RDI_TypeKind_UChar32:{result = 4;}break; -case RDI_TypeKind_U8:{result = 1;}break; -case RDI_TypeKind_U16:{result = 2;}break; -case RDI_TypeKind_U32:{result = 4;}break; -case RDI_TypeKind_U64:{result = 8;}break; -case RDI_TypeKind_U128:{result = 16;}break; -case RDI_TypeKind_U256:{result = 32;}break; -case RDI_TypeKind_U512:{result = 64;}break; -case RDI_TypeKind_S8:{result = 1;}break; -case RDI_TypeKind_S16:{result = 2;}break; -case RDI_TypeKind_S32:{result = 4;}break; -case RDI_TypeKind_S64:{result = 8;}break; -case RDI_TypeKind_S128:{result = 16;}break; -case RDI_TypeKind_S256:{result = 32;}break; -case RDI_TypeKind_S512:{result = 64;}break; -case RDI_TypeKind_Bool:{result = 1;}break; -case RDI_TypeKind_F16:{result = 2;}break; -case RDI_TypeKind_F32:{result = 4;}break; -case RDI_TypeKind_F32PP:{result = 4;}break; -case RDI_TypeKind_F48:{result = 6;}break; -case RDI_TypeKind_F64:{result = 8;}break; -case RDI_TypeKind_F80:{result = 10;}break; -case RDI_TypeKind_F128:{result = 16;}break; -case RDI_TypeKind_ComplexF32:{result = 8;}break; -case RDI_TypeKind_ComplexF64:{result = 16;}break; -case RDI_TypeKind_ComplexF80:{result = 20;}break; -case RDI_TypeKind_ComplexF128:{result = 32;}break; -} -return result; -} - -RDI_PROC RDI_U32 -rdi_addr_size_from_arch(RDI_Arch arch) -{ -RDI_U32 result = 0; -switch(arch) -{ -default:{}break; -case RDI_Arch_X86:{result = 4;}break; -case RDI_Arch_X64:{result = 8;}break; -} -return result; -} - -RDI_PROC RDI_EvalConversionKind -rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out) -{ - RDI_EvalConversionKind k = rdi_eval_typegroup_conversion_kind_matrix[in].dst_typegroups[out]; - return k; -} - -RDI_PROC RDI_S32 -rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group) -{ - RDI_S32 result = 0; - switch(op) - { - case RDI_EvalOp_Neg: case RDI_EvalOp_Add: case RDI_EvalOp_Sub: - case RDI_EvalOp_Mul: case RDI_EvalOp_Div: - case RDI_EvalOp_EqEq:case RDI_EvalOp_NtEq: - case RDI_EvalOp_LsEq:case RDI_EvalOp_GrEq: - case RDI_EvalOp_Less:case RDI_EvalOp_Grtr: - { - if(group != RDI_EvalTypeGroup_Other) - { - result = 1; - } - }break; - case RDI_EvalOp_Mod:case RDI_EvalOp_LShift:case RDI_EvalOp_RShift: - case RDI_EvalOp_BitNot:case RDI_EvalOp_BitAnd:case RDI_EvalOp_BitXor: - case RDI_EvalOp_BitOr:case RDI_EvalOp_LogNot:case RDI_EvalOp_LogAnd: - case RDI_EvalOp_LogOr: - { - if(group == RDI_EvalTypeGroup_S || group == RDI_EvalTypeGroup_U) - { - result = 1; - } - }break; - } - return result; -} - -RDI_PROC RDI_U8 * -rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out) -{ - *size_out = rdi_eval_conversion_kind_message_string_table[kind].size; - return rdi_eval_conversion_kind_message_string_table[kind].str; -} - -#endif // RDI_FORMAT_C +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////////////////////////////////////// +//~ (R)AD (D)ebug (I)nfo Format Library +// +// Defines standard RDI debug information format types and +// functions. + +#ifndef RDI_C +#define RDI_C + +RDI_U16 rdi_section_element_size_table[40] = +{ +sizeof(RDI_U8), +sizeof(RDI_TopLevelInfo), +sizeof(RDI_U8), +sizeof(RDI_U32), +sizeof(RDI_U32), +sizeof(RDI_BinarySection), +sizeof(RDI_FilePathNode), +sizeof(RDI_SourceFile), +sizeof(RDI_LineTable), +sizeof(RDI_U64), +sizeof(RDI_Line), +sizeof(RDI_Column), +sizeof(RDI_SourceLineMap), +sizeof(RDI_U32), +sizeof(RDI_U32), +sizeof(RDI_U64), +sizeof(RDI_Unit), +sizeof(RDI_VMapEntry), +sizeof(RDI_TypeNode), +sizeof(RDI_UDT), +sizeof(RDI_Member), +sizeof(RDI_EnumMember), +sizeof(RDI_GlobalVariable), +sizeof(RDI_VMapEntry), +sizeof(RDI_ThreadVariable), +sizeof(RDI_Constant), +sizeof(RDI_Procedure), +sizeof(RDI_Scope), +sizeof(RDI_U64), +sizeof(RDI_VMapEntry), +sizeof(RDI_InlineSite), +sizeof(RDI_Local), +sizeof(RDI_LocationBlock), +sizeof(RDI_U8), +sizeof(RDI_U8), +sizeof(RDI_U32), +sizeof(RDI_NameMap), +sizeof(RDI_NameMapBucket), +sizeof(RDI_NameMapNode), +sizeof(RDI_U8), +}; + +RDI_U8 rdi_section_is_required_table[40] = +{ +0, +0, +1, +1, +1, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +}; + +RDI_U16 rdi_eval_op_ctrlbits_table[52] = +{ +RDI_EVAL_CTRLBITS(0, 0, 0), +RDI_EVAL_CTRLBITS(0, 0, 0), +RDI_EVAL_CTRLBITS(1, 1, 0), +RDI_EVAL_CTRLBITS(2, 0, 0), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(4, 0, 1), +RDI_EVAL_CTRLBITS(0, 1, 1), +RDI_EVAL_CTRLBITS(8, 0, 1), +RDI_EVAL_CTRLBITS(4, 0, 1), +RDI_EVAL_CTRLBITS(4, 0, 1), +RDI_EVAL_CTRLBITS(0, 0, 0), +RDI_EVAL_CTRLBITS(0, 0, 0), +RDI_EVAL_CTRLBITS(1, 0, 1), +RDI_EVAL_CTRLBITS(2, 0, 1), +RDI_EVAL_CTRLBITS(4, 0, 1), +RDI_EVAL_CTRLBITS(8, 0, 1), +RDI_EVAL_CTRLBITS(16, 0, 1), +RDI_EVAL_CTRLBITS(1, 0, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(2, 1, 1), +RDI_EVAL_CTRLBITS(1, 0, 1), +RDI_EVAL_CTRLBITS(0, 1, 0), +RDI_EVAL_CTRLBITS(1, 0, 0), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(4, 0, 0), +RDI_EVAL_CTRLBITS(4, 0, 0), +RDI_EVAL_CTRLBITS(8, 0, 0), +RDI_EVAL_CTRLBITS(0, 0, 0), +}; + +struct {RDI_EvalConversionKind dst_typegroups[RDI_EvalTypeGroup_COUNT];} rdi_eval_typegroup_conversion_kind_matrix[6] = +{ +{{RDI_EvalConversionKind_OtherToOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther}}, +{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}}, +{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}}, +{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal}}, +{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop}}, +{{RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop}}, +}; + +struct {RDI_U8 *str; RDI_U64 size;} rdi_eval_conversion_kind_message_string_table[6] = +{ +{(RDI_U8 *)"", sizeof("")}, +{(RDI_U8 *)"", sizeof("")}, +{(RDI_U8 *)"Cannot convert between these types.", sizeof("Cannot convert between these types.")}, +{(RDI_U8 *)"Cannot convert to this type.", sizeof("Cannot convert to this type.")}, +{(RDI_U8 *)"Cannot convert this type.", sizeof("Cannot convert this type.")}, +{(RDI_U8 *)"", sizeof("")}, +}; + +RDI_PROC RDI_U64 +rdi_hash(RDI_U8 *ptr, RDI_U64 size) +{ + RDI_U64 result = 5381; + RDI_U8 *opl = ptr + size; + for(;ptr < opl; ptr += 1) + { + result = ((result << 5) + result) + *ptr; + } + return result; +} + +RDI_PROC RDI_U8 * +rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out) +{ +RDI_U8 *result = 0; +*size_out = 0; +switch (kind) +{ +default:{}break; +case RDI_TypeKind_NULL: {result = (RDI_U8*)"NULL"; *size_out = sizeof("NULL")-1;}break; +case RDI_TypeKind_Void: {result = (RDI_U8*)"Void"; *size_out = sizeof("Void")-1;}break; +case RDI_TypeKind_Handle: {result = (RDI_U8*)"Handle"; *size_out = sizeof("Handle")-1;}break; +case RDI_TypeKind_HResult: {result = (RDI_U8*)"HResult"; *size_out = sizeof("HResult")-1;}break; +case RDI_TypeKind_Char8: {result = (RDI_U8*)"Char8"; *size_out = sizeof("Char8")-1;}break; +case RDI_TypeKind_Char16: {result = (RDI_U8*)"Char16"; *size_out = sizeof("Char16")-1;}break; +case RDI_TypeKind_Char32: {result = (RDI_U8*)"Char32"; *size_out = sizeof("Char32")-1;}break; +case RDI_TypeKind_UChar8: {result = (RDI_U8*)"UChar8"; *size_out = sizeof("UChar8")-1;}break; +case RDI_TypeKind_UChar16: {result = (RDI_U8*)"UChar16"; *size_out = sizeof("UChar16")-1;}break; +case RDI_TypeKind_UChar32: {result = (RDI_U8*)"UChar32"; *size_out = sizeof("UChar32")-1;}break; +case RDI_TypeKind_U8: {result = (RDI_U8*)"U8"; *size_out = sizeof("U8")-1;}break; +case RDI_TypeKind_U16: {result = (RDI_U8*)"U16"; *size_out = sizeof("U16")-1;}break; +case RDI_TypeKind_U32: {result = (RDI_U8*)"U32"; *size_out = sizeof("U32")-1;}break; +case RDI_TypeKind_U64: {result = (RDI_U8*)"U64"; *size_out = sizeof("U64")-1;}break; +case RDI_TypeKind_U128: {result = (RDI_U8*)"U128"; *size_out = sizeof("U128")-1;}break; +case RDI_TypeKind_U256: {result = (RDI_U8*)"U256"; *size_out = sizeof("U256")-1;}break; +case RDI_TypeKind_U512: {result = (RDI_U8*)"U512"; *size_out = sizeof("U512")-1;}break; +case RDI_TypeKind_S8: {result = (RDI_U8*)"S8"; *size_out = sizeof("S8")-1;}break; +case RDI_TypeKind_S16: {result = (RDI_U8*)"S16"; *size_out = sizeof("S16")-1;}break; +case RDI_TypeKind_S32: {result = (RDI_U8*)"S32"; *size_out = sizeof("S32")-1;}break; +case RDI_TypeKind_S64: {result = (RDI_U8*)"S64"; *size_out = sizeof("S64")-1;}break; +case RDI_TypeKind_S128: {result = (RDI_U8*)"S128"; *size_out = sizeof("S128")-1;}break; +case RDI_TypeKind_S256: {result = (RDI_U8*)"S256"; *size_out = sizeof("S256")-1;}break; +case RDI_TypeKind_S512: {result = (RDI_U8*)"S512"; *size_out = sizeof("S512")-1;}break; +case RDI_TypeKind_Bool: {result = (RDI_U8*)"Bool"; *size_out = sizeof("Bool")-1;}break; +case RDI_TypeKind_F16: {result = (RDI_U8*)"F16"; *size_out = sizeof("F16")-1;}break; +case RDI_TypeKind_F32: {result = (RDI_U8*)"F32"; *size_out = sizeof("F32")-1;}break; +case RDI_TypeKind_F32PP: {result = (RDI_U8*)"F32PP"; *size_out = sizeof("F32PP")-1;}break; +case RDI_TypeKind_F48: {result = (RDI_U8*)"F48"; *size_out = sizeof("F48")-1;}break; +case RDI_TypeKind_F64: {result = (RDI_U8*)"F64"; *size_out = sizeof("F64")-1;}break; +case RDI_TypeKind_F80: {result = (RDI_U8*)"F80"; *size_out = sizeof("F80")-1;}break; +case RDI_TypeKind_F128: {result = (RDI_U8*)"F128"; *size_out = sizeof("F128")-1;}break; +case RDI_TypeKind_ComplexF32: {result = (RDI_U8*)"ComplexF32"; *size_out = sizeof("ComplexF32")-1;}break; +case RDI_TypeKind_ComplexF64: {result = (RDI_U8*)"ComplexF64"; *size_out = sizeof("ComplexF64")-1;}break; +case RDI_TypeKind_ComplexF80: {result = (RDI_U8*)"ComplexF80"; *size_out = sizeof("ComplexF80")-1;}break; +case RDI_TypeKind_ComplexF128: {result = (RDI_U8*)"ComplexF128"; *size_out = sizeof("ComplexF128")-1;}break; +case RDI_TypeKind_Modifier: {result = (RDI_U8*)"Modifier"; *size_out = sizeof("Modifier")-1;}break; +case RDI_TypeKind_Ptr: {result = (RDI_U8*)"Ptr"; *size_out = sizeof("Ptr")-1;}break; +case RDI_TypeKind_LRef: {result = (RDI_U8*)"LRef"; *size_out = sizeof("LRef")-1;}break; +case RDI_TypeKind_RRef: {result = (RDI_U8*)"RRef"; *size_out = sizeof("RRef")-1;}break; +case RDI_TypeKind_Array: {result = (RDI_U8*)"Array"; *size_out = sizeof("Array")-1;}break; +case RDI_TypeKind_Function: {result = (RDI_U8*)"Function"; *size_out = sizeof("Function")-1;}break; +case RDI_TypeKind_Method: {result = (RDI_U8*)"Method"; *size_out = sizeof("Method")-1;}break; +case RDI_TypeKind_MemberPtr: {result = (RDI_U8*)"MemberPtr"; *size_out = sizeof("MemberPtr")-1;}break; +case RDI_TypeKind_Struct: {result = (RDI_U8*)"Struct"; *size_out = sizeof("Struct")-1;}break; +case RDI_TypeKind_Class: {result = (RDI_U8*)"Class"; *size_out = sizeof("Class")-1;}break; +case RDI_TypeKind_Union: {result = (RDI_U8*)"Union"; *size_out = sizeof("Union")-1;}break; +case RDI_TypeKind_Enum: {result = (RDI_U8*)"Enum"; *size_out = sizeof("Enum")-1;}break; +case RDI_TypeKind_Alias: {result = (RDI_U8*)"Alias"; *size_out = sizeof("Alias")-1;}break; +case RDI_TypeKind_IncompleteStruct: {result = (RDI_U8*)"IncompleteStruct"; *size_out = sizeof("IncompleteStruct")-1;}break; +case RDI_TypeKind_IncompleteUnion: {result = (RDI_U8*)"IncompleteUnion"; *size_out = sizeof("IncompleteUnion")-1;}break; +case RDI_TypeKind_IncompleteClass: {result = (RDI_U8*)"IncompleteClass"; *size_out = sizeof("IncompleteClass")-1;}break; +case RDI_TypeKind_IncompleteEnum: {result = (RDI_U8*)"IncompleteEnum"; *size_out = sizeof("IncompleteEnum")-1;}break; +case RDI_TypeKind_Bitfield: {result = (RDI_U8*)"Bitfield"; *size_out = sizeof("Bitfield")-1;}break; +case RDI_TypeKind_Variadic: {result = (RDI_U8*)"Variadic"; *size_out = sizeof("Variadic")-1;}break; +case RDI_TypeKind_Count: {result = (RDI_U8*)"Count"; *size_out = sizeof("Count")-1;}break; +} +return result; +} + +RDI_PROC RDI_U32 +rdi_size_from_basic_type_kind(RDI_TypeKind kind) +{ +RDI_U32 result = 0; +switch(kind) +{ +default:{}break; +case RDI_TypeKind_Handle:{result = 0xFFFFFFFF;}break; +case RDI_TypeKind_HResult:{result = 4;}break; +case RDI_TypeKind_Char8:{result = 1;}break; +case RDI_TypeKind_Char16:{result = 2;}break; +case RDI_TypeKind_Char32:{result = 4;}break; +case RDI_TypeKind_UChar8:{result = 1;}break; +case RDI_TypeKind_UChar16:{result = 2;}break; +case RDI_TypeKind_UChar32:{result = 4;}break; +case RDI_TypeKind_U8:{result = 1;}break; +case RDI_TypeKind_U16:{result = 2;}break; +case RDI_TypeKind_U32:{result = 4;}break; +case RDI_TypeKind_U64:{result = 8;}break; +case RDI_TypeKind_U128:{result = 16;}break; +case RDI_TypeKind_U256:{result = 32;}break; +case RDI_TypeKind_U512:{result = 64;}break; +case RDI_TypeKind_S8:{result = 1;}break; +case RDI_TypeKind_S16:{result = 2;}break; +case RDI_TypeKind_S32:{result = 4;}break; +case RDI_TypeKind_S64:{result = 8;}break; +case RDI_TypeKind_S128:{result = 16;}break; +case RDI_TypeKind_S256:{result = 32;}break; +case RDI_TypeKind_S512:{result = 64;}break; +case RDI_TypeKind_Bool:{result = 1;}break; +case RDI_TypeKind_F16:{result = 2;}break; +case RDI_TypeKind_F32:{result = 4;}break; +case RDI_TypeKind_F32PP:{result = 4;}break; +case RDI_TypeKind_F48:{result = 6;}break; +case RDI_TypeKind_F64:{result = 8;}break; +case RDI_TypeKind_F80:{result = 10;}break; +case RDI_TypeKind_F128:{result = 16;}break; +case RDI_TypeKind_ComplexF32:{result = 8;}break; +case RDI_TypeKind_ComplexF64:{result = 16;}break; +case RDI_TypeKind_ComplexF80:{result = 20;}break; +case RDI_TypeKind_ComplexF128:{result = 32;}break; +} +return result; +} + +RDI_PROC RDI_U32 +rdi_addr_size_from_arch(RDI_Arch arch) +{ +RDI_U32 result = 0; +switch(arch) +{ +default:{}break; +case RDI_Arch_X86:{result = 4;}break; +case RDI_Arch_X64:{result = 8;}break; +} +return result; +} + +RDI_PROC RDI_EvalConversionKind +rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out) +{ + RDI_EvalConversionKind k = rdi_eval_typegroup_conversion_kind_matrix[in].dst_typegroups[out]; + return k; +} + +RDI_PROC RDI_S32 +rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group) +{ + RDI_S32 result = 0; + switch(op) + { + case RDI_EvalOp_Neg: case RDI_EvalOp_Add: case RDI_EvalOp_Sub: + case RDI_EvalOp_Mul: case RDI_EvalOp_Div: + case RDI_EvalOp_EqEq:case RDI_EvalOp_NtEq: + case RDI_EvalOp_LsEq:case RDI_EvalOp_GrEq: + case RDI_EvalOp_Less:case RDI_EvalOp_Grtr: + { + if(group != RDI_EvalTypeGroup_Other) + { + result = 1; + } + }break; + case RDI_EvalOp_Mod:case RDI_EvalOp_LShift:case RDI_EvalOp_RShift: + case RDI_EvalOp_BitNot:case RDI_EvalOp_BitAnd:case RDI_EvalOp_BitXor: + case RDI_EvalOp_BitOr:case RDI_EvalOp_LogNot:case RDI_EvalOp_LogAnd: + case RDI_EvalOp_LogOr: + { + if(group == RDI_EvalTypeGroup_S || group == RDI_EvalTypeGroup_U) + { + result = 1; + } + }break; + } + return result; +} + +RDI_PROC RDI_U8 * +rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out) +{ + *size_out = rdi_eval_conversion_kind_message_string_table[kind].size; + return rdi_eval_conversion_kind_message_string_table[kind].str; +} + +#endif // RDI_C diff --git a/src/lib_rdi_format/rdi_format.h b/src/lib_rdi/rdi.h similarity index 96% rename from src/lib_rdi_format/rdi_format.h rename to src/lib_rdi/rdi.h index 4127f15b..97eebe9c 100644 --- a/src/lib_rdi_format/rdi_format.h +++ b/src/lib_rdi/rdi.h @@ -1,1574 +1,1574 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////////////////////////////////////// -//~ RAD Debug Info, (R)AD(D)BG(I) Format Library -// -// Defines standard RDI debug information format types and -// functions. - -#ifndef RDI_FORMAT_H -#define RDI_FORMAT_H - -//////////////////////////////////////////////////////////////// -//~ Overridable Procedure Decoration - -#if !defined(RDI_PROC) -# define RDI_PROC static -#endif - -//////////////////////////////////////////////////////////////// -//~ Overridable Basic Integer Types - -#if !defined(RDI_U8) -# define RDI_U8 RDI_U8 -# define RDI_U16 RDI_U16 -# define RDI_U32 RDI_U32 -# define RDI_U64 RDI_U64 -# define RDI_S8 RDI_S8 -# define RDI_S16 RDI_S16 -# define RDI_S32 RDI_S32 -# define RDI_S64 RDI_S64 -#include -typedef uint8_t RDI_U8; -typedef uint16_t RDI_U16; -typedef uint32_t RDI_U32; -typedef uint64_t RDI_U64; -typedef int8_t RDI_S8; -typedef int16_t RDI_S16; -typedef int32_t RDI_S32; -typedef int64_t RDI_S64; -#endif - -//////////////////////////////////////////////////////////////// -//~ Overridable Enabling/Disabling Of Table Index Typechecking - -#if !defined(RDI_DISABLE_TABLE_INDEX_TYPECHECKING) -# define RDI_DISABLE_TABLE_INDEX_TYPECHECKING 0 -#endif - -//////////////////////////////////////////////////////////////// -//~ Format Constants - -// "raddbg\0\0" -#define RDI_MAGIC_CONSTANT 0x0000676264646172 -#define RDI_ENCODING_VERSION 12 - -//////////////////////////////////////////////////////////////// -//~ Format Types & Functions - -typedef RDI_U32 RDI_SectionKind; -typedef enum RDI_SectionKindEnum -{ -RDI_SectionKind_NULL = 0x0000, -RDI_SectionKind_TopLevelInfo = 0x0001, -RDI_SectionKind_StringData = 0x0002, -RDI_SectionKind_StringTable = 0x0003, -RDI_SectionKind_IndexRuns = 0x0004, -RDI_SectionKind_BinarySections = 0x0005, -RDI_SectionKind_FilePathNodes = 0x0006, -RDI_SectionKind_SourceFiles = 0x0007, -RDI_SectionKind_LineTables = 0x0008, -RDI_SectionKind_LineInfoVOffs = 0x0009, -RDI_SectionKind_LineInfoLines = 0x000A, -RDI_SectionKind_LineInfoColumns = 0x000B, -RDI_SectionKind_SourceLineMaps = 0x000C, -RDI_SectionKind_SourceLineMapNumbers = 0x000D, -RDI_SectionKind_SourceLineMapRanges = 0x000E, -RDI_SectionKind_SourceLineMapVOffs = 0x000F, -RDI_SectionKind_Units = 0x0010, -RDI_SectionKind_UnitVMap = 0x0011, -RDI_SectionKind_TypeNodes = 0x0012, -RDI_SectionKind_UDTs = 0x0013, -RDI_SectionKind_Members = 0x0014, -RDI_SectionKind_EnumMembers = 0x0015, -RDI_SectionKind_GlobalVariables = 0x0016, -RDI_SectionKind_GlobalVMap = 0x0017, -RDI_SectionKind_ThreadVariables = 0x0018, -RDI_SectionKind_Constants = 0x0019, -RDI_SectionKind_Procedures = 0x001A, -RDI_SectionKind_Scopes = 0x001B, -RDI_SectionKind_ScopeVOffData = 0x001C, -RDI_SectionKind_ScopeVMap = 0x001D, -RDI_SectionKind_InlineSites = 0x001E, -RDI_SectionKind_Locals = 0x001F, -RDI_SectionKind_LocationBlocks = 0x0020, -RDI_SectionKind_LocationData = 0x0021, -RDI_SectionKind_ConstantValueData = 0x0022, -RDI_SectionKind_ConstantValueTable = 0x0023, -RDI_SectionKind_NameMaps = 0x0024, -RDI_SectionKind_NameMapBuckets = 0x0025, -RDI_SectionKind_NameMapNodes = 0x0026, -RDI_SectionKind_COUNT = 0x0027, -} RDI_SectionKindEnum; - -typedef RDI_U32 RDI_SectionEncoding; -typedef enum RDI_SectionEncodingEnum -{ -RDI_SectionEncoding_Unpacked = 0, -RDI_SectionEncoding_LZB = 1, -} RDI_SectionEncodingEnum; - -typedef RDI_U32 RDI_Arch; -typedef enum RDI_ArchEnum -{ -RDI_Arch_NULL = 0, -RDI_Arch_X86 = 1, -RDI_Arch_X64 = 2, -} RDI_ArchEnum; - -typedef RDI_U8 RDI_RegCode; -typedef enum RDI_RegCodeEnum -{ -RDI_RegCode_nil, -} RDI_RegCodeEnum; - -typedef RDI_U8 RDI_RegCodeX86; -typedef enum RDI_RegCodeX86Enum -{ -RDI_RegCodeX86_nil = 0, -RDI_RegCodeX86_eax = 1, -RDI_RegCodeX86_ecx = 2, -RDI_RegCodeX86_edx = 3, -RDI_RegCodeX86_ebx = 4, -RDI_RegCodeX86_esp = 5, -RDI_RegCodeX86_ebp = 6, -RDI_RegCodeX86_esi = 7, -RDI_RegCodeX86_edi = 8, -RDI_RegCodeX86_fsbase = 9, -RDI_RegCodeX86_gsbase = 10, -RDI_RegCodeX86_eflags = 11, -RDI_RegCodeX86_eip = 12, -RDI_RegCodeX86_dr0 = 13, -RDI_RegCodeX86_dr1 = 14, -RDI_RegCodeX86_dr2 = 15, -RDI_RegCodeX86_dr3 = 16, -RDI_RegCodeX86_dr4 = 17, -RDI_RegCodeX86_dr5 = 18, -RDI_RegCodeX86_dr6 = 19, -RDI_RegCodeX86_dr7 = 20, -RDI_RegCodeX86_fpr0 = 21, -RDI_RegCodeX86_fpr1 = 22, -RDI_RegCodeX86_fpr2 = 23, -RDI_RegCodeX86_fpr3 = 24, -RDI_RegCodeX86_fpr4 = 25, -RDI_RegCodeX86_fpr5 = 26, -RDI_RegCodeX86_fpr6 = 27, -RDI_RegCodeX86_fpr7 = 28, -RDI_RegCodeX86_st0 = 29, -RDI_RegCodeX86_st1 = 30, -RDI_RegCodeX86_st2 = 31, -RDI_RegCodeX86_st3 = 32, -RDI_RegCodeX86_st4 = 33, -RDI_RegCodeX86_st5 = 34, -RDI_RegCodeX86_st6 = 35, -RDI_RegCodeX86_st7 = 36, -RDI_RegCodeX86_fcw = 37, -RDI_RegCodeX86_fsw = 38, -RDI_RegCodeX86_ftw = 39, -RDI_RegCodeX86_fop = 40, -RDI_RegCodeX86_fcs = 41, -RDI_RegCodeX86_fds = 42, -RDI_RegCodeX86_fip = 43, -RDI_RegCodeX86_fdp = 44, -RDI_RegCodeX86_mxcsr = 45, -RDI_RegCodeX86_mxcsr_mask = 46, -RDI_RegCodeX86_ss = 47, -RDI_RegCodeX86_cs = 48, -RDI_RegCodeX86_ds = 49, -RDI_RegCodeX86_es = 50, -RDI_RegCodeX86_fs = 51, -RDI_RegCodeX86_gs = 52, -RDI_RegCodeX86_ymm0 = 53, -RDI_RegCodeX86_ymm1 = 54, -RDI_RegCodeX86_ymm2 = 55, -RDI_RegCodeX86_ymm3 = 56, -RDI_RegCodeX86_ymm4 = 57, -RDI_RegCodeX86_ymm5 = 58, -RDI_RegCodeX86_ymm6 = 59, -RDI_RegCodeX86_ymm7 = 60, -} RDI_RegCodeX86Enum; - -typedef RDI_U8 RDI_RegCodeX64; -typedef enum RDI_RegCodeX64Enum -{ -RDI_RegCodeX64_nil = 0, -RDI_RegCodeX64_rax = 1, -RDI_RegCodeX64_rcx = 2, -RDI_RegCodeX64_rdx = 3, -RDI_RegCodeX64_rbx = 4, -RDI_RegCodeX64_rsp = 5, -RDI_RegCodeX64_rbp = 6, -RDI_RegCodeX64_rsi = 7, -RDI_RegCodeX64_rdi = 8, -RDI_RegCodeX64_r8 = 9, -RDI_RegCodeX64_r9 = 10, -RDI_RegCodeX64_r10 = 11, -RDI_RegCodeX64_r11 = 12, -RDI_RegCodeX64_r12 = 13, -RDI_RegCodeX64_r13 = 14, -RDI_RegCodeX64_r14 = 15, -RDI_RegCodeX64_r15 = 16, -RDI_RegCodeX64_es = 17, -RDI_RegCodeX64_cs = 18, -RDI_RegCodeX64_ss = 19, -RDI_RegCodeX64_ds = 20, -RDI_RegCodeX64_fs = 21, -RDI_RegCodeX64_gs = 22, -RDI_RegCodeX64_rip = 23, -RDI_RegCodeX64_rflags = 24, -RDI_RegCodeX64_dr0 = 25, -RDI_RegCodeX64_dr1 = 26, -RDI_RegCodeX64_dr2 = 27, -RDI_RegCodeX64_dr3 = 28, -RDI_RegCodeX64_dr4 = 29, -RDI_RegCodeX64_dr5 = 30, -RDI_RegCodeX64_dr6 = 31, -RDI_RegCodeX64_dr7 = 32, -RDI_RegCodeX64_st0 = 33, -RDI_RegCodeX64_st1 = 34, -RDI_RegCodeX64_st2 = 35, -RDI_RegCodeX64_st3 = 36, -RDI_RegCodeX64_st4 = 37, -RDI_RegCodeX64_st5 = 38, -RDI_RegCodeX64_st6 = 39, -RDI_RegCodeX64_st7 = 40, -RDI_RegCodeX64_fpr0 = 41, -RDI_RegCodeX64_fpr1 = 42, -RDI_RegCodeX64_fpr2 = 43, -RDI_RegCodeX64_fpr3 = 44, -RDI_RegCodeX64_fpr4 = 45, -RDI_RegCodeX64_fpr5 = 46, -RDI_RegCodeX64_fpr6 = 47, -RDI_RegCodeX64_fpr7 = 48, -RDI_RegCodeX64_zmm0 = 49, -RDI_RegCodeX64_zmm1 = 50, -RDI_RegCodeX64_zmm2 = 51, -RDI_RegCodeX64_zmm3 = 52, -RDI_RegCodeX64_zmm4 = 53, -RDI_RegCodeX64_zmm5 = 54, -RDI_RegCodeX64_zmm6 = 55, -RDI_RegCodeX64_zmm7 = 56, -RDI_RegCodeX64_zmm8 = 57, -RDI_RegCodeX64_zmm9 = 58, -RDI_RegCodeX64_zmm10 = 59, -RDI_RegCodeX64_zmm11 = 60, -RDI_RegCodeX64_zmm12 = 61, -RDI_RegCodeX64_zmm13 = 62, -RDI_RegCodeX64_zmm14 = 63, -RDI_RegCodeX64_zmm15 = 64, -RDI_RegCodeX64_zmm16 = 65, -RDI_RegCodeX64_zmm17 = 66, -RDI_RegCodeX64_zmm18 = 67, -RDI_RegCodeX64_zmm19 = 68, -RDI_RegCodeX64_zmm20 = 69, -RDI_RegCodeX64_zmm21 = 70, -RDI_RegCodeX64_zmm22 = 71, -RDI_RegCodeX64_zmm23 = 72, -RDI_RegCodeX64_zmm24 = 73, -RDI_RegCodeX64_zmm25 = 74, -RDI_RegCodeX64_zmm26 = 75, -RDI_RegCodeX64_zmm27 = 76, -RDI_RegCodeX64_zmm28 = 77, -RDI_RegCodeX64_zmm29 = 78, -RDI_RegCodeX64_zmm30 = 79, -RDI_RegCodeX64_zmm31 = 80, -RDI_RegCodeX64_k0 = 81, -RDI_RegCodeX64_k1 = 82, -RDI_RegCodeX64_k2 = 83, -RDI_RegCodeX64_k3 = 84, -RDI_RegCodeX64_k4 = 85, -RDI_RegCodeX64_k5 = 86, -RDI_RegCodeX64_k6 = 87, -RDI_RegCodeX64_k7 = 88, -RDI_RegCodeX64_mxcsr = 89, -RDI_RegCodeX64_fsbase = 90, -RDI_RegCodeX64_gsbase = 91, -RDI_RegCodeX64_fcw = 92, -RDI_RegCodeX64_fsw = 93, -RDI_RegCodeX64_ftw = 94, -RDI_RegCodeX64_fop = 95, -RDI_RegCodeX64_fcs = 96, -RDI_RegCodeX64_fds = 97, -RDI_RegCodeX64_fip = 98, -RDI_RegCodeX64_fdp = 99, -RDI_RegCodeX64_mxcsr_mask = 100, -} RDI_RegCodeX64Enum; - -typedef RDI_U32 RDI_BinarySectionFlags; -typedef enum RDI_BinarySectionFlagsEnum -{ -RDI_BinarySectionFlag_Read = 1<<0, -RDI_BinarySectionFlag_Write = 1<<1, -RDI_BinarySectionFlag_Execute = 1<<2, -} RDI_BinarySectionFlagsEnum; - -typedef RDI_U32 RDI_Language; -typedef enum RDI_LanguageEnum -{ -RDI_Language_NULL = 0, -RDI_Language_C = 1, -RDI_Language_CPlusPlus = 2, -RDI_Language_Masm = 3, -RDI_Language_COUNT = 4, -} RDI_LanguageEnum; - -typedef RDI_U16 RDI_TypeKind; -typedef enum RDI_TypeKindEnum -{ -RDI_TypeKind_NULL = 0x0000, -RDI_TypeKind_Void = 0x0001, -RDI_TypeKind_Handle = 0x0002, -RDI_TypeKind_HResult = 0x0003, -RDI_TypeKind_Char8 = 0x0004, -RDI_TypeKind_Char16 = 0x0005, -RDI_TypeKind_Char32 = 0x0006, -RDI_TypeKind_UChar8 = 0x0007, -RDI_TypeKind_UChar16 = 0x0008, -RDI_TypeKind_UChar32 = 0x0009, -RDI_TypeKind_U8 = 0x000A, -RDI_TypeKind_U16 = 0x000B, -RDI_TypeKind_U32 = 0x000C, -RDI_TypeKind_U64 = 0x000D, -RDI_TypeKind_U128 = 0x000E, -RDI_TypeKind_U256 = 0x000F, -RDI_TypeKind_U512 = 0x0010, -RDI_TypeKind_S8 = 0x0011, -RDI_TypeKind_S16 = 0x0012, -RDI_TypeKind_S32 = 0x0013, -RDI_TypeKind_S64 = 0x0014, -RDI_TypeKind_S128 = 0x0015, -RDI_TypeKind_S256 = 0x0016, -RDI_TypeKind_S512 = 0x0017, -RDI_TypeKind_Bool = 0x0018, -RDI_TypeKind_F16 = 0x0019, -RDI_TypeKind_F32 = 0x001A, -RDI_TypeKind_F32PP = 0x001B, -RDI_TypeKind_F48 = 0x001C, -RDI_TypeKind_F64 = 0x001D, -RDI_TypeKind_F80 = 0x001E, -RDI_TypeKind_F128 = 0x001F, -RDI_TypeKind_ComplexF32 = 0x0020, -RDI_TypeKind_ComplexF64 = 0x0021, -RDI_TypeKind_ComplexF80 = 0x0022, -RDI_TypeKind_ComplexF128 = 0x0023, -RDI_TypeKind_Modifier = 0x1000, -RDI_TypeKind_Ptr = 0x1001, -RDI_TypeKind_LRef = 0x1002, -RDI_TypeKind_RRef = 0x1003, -RDI_TypeKind_Array = 0x1004, -RDI_TypeKind_Function = 0x1005, -RDI_TypeKind_Method = 0x1006, -RDI_TypeKind_MemberPtr = 0x1007, -RDI_TypeKind_Struct = 0x2000, -RDI_TypeKind_Class = 0x2001, -RDI_TypeKind_Union = 0x2002, -RDI_TypeKind_Enum = 0x2003, -RDI_TypeKind_Alias = 0x2004, -RDI_TypeKind_IncompleteStruct = 0x2005, -RDI_TypeKind_IncompleteUnion = 0x2006, -RDI_TypeKind_IncompleteClass = 0x2007, -RDI_TypeKind_IncompleteEnum = 0x2008, -RDI_TypeKind_Bitfield = 0xF000, -RDI_TypeKind_Variadic = 0xF001, -RDI_TypeKind_Count = 0xF002, -RDI_TypeKind_FirstBuiltIn = RDI_TypeKind_Void, -RDI_TypeKind_LastBuiltIn = RDI_TypeKind_ComplexF128, -RDI_TypeKind_FirstConstructed = RDI_TypeKind_Modifier, -RDI_TypeKind_LastConstructed = RDI_TypeKind_MemberPtr, -RDI_TypeKind_FirstUserDefined = RDI_TypeKind_Struct, -RDI_TypeKind_LastRecord = RDI_TypeKind_Union, -RDI_TypeKind_FirstIncomplete = RDI_TypeKind_IncompleteStruct, -RDI_TypeKind_LastIncomplete = RDI_TypeKind_IncompleteEnum, -RDI_TypeKind_FirstRecord = RDI_TypeKind_Struct, -RDI_TypeKind_LastUserDefined = RDI_TypeKind_IncompleteEnum, -} RDI_TypeKindEnum; - -typedef RDI_U16 RDI_TypeModifierFlags; -typedef enum RDI_TypeModifierFlagsEnum -{ -RDI_TypeModifierFlag_Const = 1<<0, -RDI_TypeModifierFlag_Volatile = 1<<1, -RDI_TypeModifierFlag_Restrict = 1<<2, -} RDI_TypeModifierFlagsEnum; - -typedef RDI_U32 RDI_UDTFlags; -typedef enum RDI_UDTFlagsEnum -{ -RDI_UDTFlag_EnumMembers = 1<<0, -} RDI_UDTFlagsEnum; - -typedef RDI_U16 RDI_MemberKind; -typedef enum RDI_MemberKindEnum -{ -RDI_MemberKind_NULL = 0x0000, -RDI_MemberKind_DataField = 0x0001, -RDI_MemberKind_StaticData = 0x0002, -RDI_MemberKind_Method = 0x0100, -RDI_MemberKind_StaticMethod = 0x0101, -RDI_MemberKind_VirtualMethod = 0x0102, -RDI_MemberKind_VTablePtr = 0x0200, -RDI_MemberKind_Base = 0x0201, -RDI_MemberKind_VirtualBase = 0x0202, -RDI_MemberKind_NestedType = 0x0300, -} RDI_MemberKindEnum; - -typedef RDI_U32 RDI_LinkFlags; -typedef enum RDI_LinkFlagsEnum -{ -RDI_LinkFlag_External = 1<<0, -RDI_LinkFlag_TypeScoped = 1<<1, -RDI_LinkFlag_ProcScoped = 1<<2, -} RDI_LinkFlagsEnum; - -typedef RDI_U32 RDI_LocalKind; -typedef enum RDI_LocalKindEnum -{ -RDI_LocalKind_NULL = 0x0, -RDI_LocalKind_Parameter = 0x1, -RDI_LocalKind_Variable = 0x2, -} RDI_LocalKindEnum; - -typedef RDI_U8 RDI_LocationKind; -typedef enum RDI_LocationKindEnum -{ -RDI_LocationKind_NULL = 0x0, -RDI_LocationKind_AddrBytecodeStream = 0x1, -RDI_LocationKind_ValBytecodeStream = 0x2, -RDI_LocationKind_AddrRegPlusU16 = 0x3, -RDI_LocationKind_AddrAddrRegPlusU16 = 0x4, -RDI_LocationKind_ValReg = 0x5, -} RDI_LocationKindEnum; - -typedef RDI_U8 RDI_EvalOp; -typedef enum RDI_EvalOpEnum -{ -RDI_EvalOp_Stop = 0, -RDI_EvalOp_Noop = 1, -RDI_EvalOp_Cond = 2, -RDI_EvalOp_Skip = 3, -RDI_EvalOp_MemRead = 4, -RDI_EvalOp_RegRead = 5, -RDI_EvalOp_RegReadDyn = 6, -RDI_EvalOp_FrameOff = 7, -RDI_EvalOp_ModuleOff = 8, -RDI_EvalOp_TLSOff = 9, -RDI_EvalOp_ObjectOff = 10, -RDI_EvalOp_CFA = 11, -RDI_EvalOp_ConstU8 = 12, -RDI_EvalOp_ConstU16 = 13, -RDI_EvalOp_ConstU32 = 14, -RDI_EvalOp_ConstU64 = 15, -RDI_EvalOp_ConstU128 = 16, -RDI_EvalOp_ConstString = 17, -RDI_EvalOp_Abs = 18, -RDI_EvalOp_Neg = 19, -RDI_EvalOp_Add = 20, -RDI_EvalOp_Sub = 21, -RDI_EvalOp_Mul = 22, -RDI_EvalOp_Div = 23, -RDI_EvalOp_Mod = 24, -RDI_EvalOp_LShift = 25, -RDI_EvalOp_RShift = 26, -RDI_EvalOp_BitAnd = 27, -RDI_EvalOp_BitOr = 28, -RDI_EvalOp_BitXor = 29, -RDI_EvalOp_BitNot = 30, -RDI_EvalOp_LogAnd = 31, -RDI_EvalOp_LogOr = 32, -RDI_EvalOp_LogNot = 33, -RDI_EvalOp_EqEq = 34, -RDI_EvalOp_NtEq = 35, -RDI_EvalOp_LsEq = 36, -RDI_EvalOp_GrEq = 37, -RDI_EvalOp_Less = 38, -RDI_EvalOp_Grtr = 39, -RDI_EvalOp_Trunc = 40, -RDI_EvalOp_TruncSigned = 41, -RDI_EvalOp_Convert = 42, -RDI_EvalOp_Pick = 43, -RDI_EvalOp_Pop = 44, -RDI_EvalOp_Insert = 45, -RDI_EvalOp_ValueRead = 46, -RDI_EvalOp_ByteSwap = 47, -RDI_EvalOp_CallSiteValue = 48, -RDI_EvalOp_PartialValue = 49, -RDI_EvalOp_PartialValueBit = 50, -RDI_EvalOp_COUNT = 51, -} RDI_EvalOpEnum; - -typedef RDI_U8 RDI_EvalTypeGroup; -typedef enum RDI_EvalTypeGroupEnum -{ -RDI_EvalTypeGroup_Other = 0, -RDI_EvalTypeGroup_U = 1, -RDI_EvalTypeGroup_S = 2, -RDI_EvalTypeGroup_F32 = 3, -RDI_EvalTypeGroup_F64 = 4, -RDI_EvalTypeGroup_COUNT = 5, -} RDI_EvalTypeGroupEnum; - -typedef RDI_U8 RDI_EvalConversionKind; -typedef enum RDI_EvalConversionKindEnum -{ -RDI_EvalConversionKind_Noop = 0, -RDI_EvalConversionKind_Legal = 1, -RDI_EvalConversionKind_OtherToOther = 2, -RDI_EvalConversionKind_ToOther = 3, -RDI_EvalConversionKind_FromOther = 4, -RDI_EvalConversionKind_COUNT = 5, -} RDI_EvalConversionKindEnum; - -typedef RDI_U32 RDI_NameMapKind; -typedef enum RDI_NameMapKindEnum -{ -RDI_NameMapKind_NULL = 0, -RDI_NameMapKind_GlobalVariables = 1, -RDI_NameMapKind_ThreadVariables = 2, -RDI_NameMapKind_Constants = 3, -RDI_NameMapKind_Procedures = 4, -RDI_NameMapKind_Types = 5, -RDI_NameMapKind_LinkNameProcedures = 6, -RDI_NameMapKind_NormalSourcePaths = 7, -RDI_NameMapKind_COUNT = 8, -} RDI_NameMapKindEnum; - -#define RDI_Header_XList \ -X(RDI_U64, magic)\ -X(RDI_U32, encoding_version)\ -X(RDI_U32, data_section_off)\ -X(RDI_U32, data_section_count)\ - -#define RDI_SectionKind_XList \ -X(NULL, null, RDI_U8)\ -X(TopLevelInfo, top_level_info, RDI_TopLevelInfo)\ -X(StringData, string_data, RDI_U8)\ -X(StringTable, string_table, RDI_U32)\ -X(IndexRuns, index_runs, RDI_U32)\ -X(BinarySections, binary_sections, RDI_BinarySection)\ -X(FilePathNodes, file_path_nodes, RDI_FilePathNode)\ -X(SourceFiles, source_files, RDI_SourceFile)\ -X(LineTables, line_tables, RDI_LineTable)\ -X(LineInfoVOffs, line_info_voffs, RDI_U64)\ -X(LineInfoLines, line_info_lines, RDI_Line)\ -X(LineInfoColumns, line_info_columns, RDI_Column)\ -X(SourceLineMaps, source_line_maps, RDI_SourceLineMap)\ -X(SourceLineMapNumbers, source_line_map_numbers, RDI_U32)\ -X(SourceLineMapRanges, source_line_map_ranges, RDI_U32)\ -X(SourceLineMapVOffs, source_line_map_voffs, RDI_U64)\ -X(Units, units, RDI_Unit)\ -X(UnitVMap, unit_vmap, RDI_VMapEntry)\ -X(TypeNodes, type_nodes, RDI_TypeNode)\ -X(UDTs, udts, RDI_UDT)\ -X(Members, members, RDI_Member)\ -X(EnumMembers, enum_members, RDI_EnumMember)\ -X(GlobalVariables, global_variables, RDI_GlobalVariable)\ -X(GlobalVMap, global_vmap, RDI_VMapEntry)\ -X(ThreadVariables, thread_variables, RDI_ThreadVariable)\ -X(Constants, constants, RDI_Constant)\ -X(Procedures, procedures, RDI_Procedure)\ -X(Scopes, scopes, RDI_Scope)\ -X(ScopeVOffData, scope_voff_data, RDI_U64)\ -X(ScopeVMap, scope_vmap, RDI_VMapEntry)\ -X(InlineSites, inline_sites, RDI_InlineSite)\ -X(Locals, locals, RDI_Local)\ -X(LocationBlocks, location_blocks, RDI_LocationBlock)\ -X(LocationData, location_data, RDI_U8)\ -X(ConstantValueData, constant_value_data, RDI_U8)\ -X(ConstantValueTable, constant_value_table, RDI_U32)\ -X(NameMaps, name_maps, RDI_NameMap)\ -X(NameMapBuckets, name_map_buckets, RDI_NameMapBucket)\ -X(NameMapNodes, name_map_nodes, RDI_NameMapNode)\ - -#define RDI_SectionEncoding_XList \ -X(Unpacked)\ -X(LZB)\ - -#define RDI_Section_XList \ -X(RDI_SectionEncoding, encoding)\ -X(RDI_U32, pad)\ -X(RDI_U64, off)\ -X(RDI_U64, encoded_size)\ -X(RDI_U64, unpacked_size)\ - -#define RDI_VMapEntry_XList \ -X(RDI_U64, voff)\ -X(RDI_U64, idx)\ - -#define RDI_Arch_XList \ -X(NULL)\ -X(X86)\ -X(X64)\ - -#define RDI_RegCodeX86_XList \ -X(nil, 0)\ -X(eax, 1)\ -X(ecx, 2)\ -X(edx, 3)\ -X(ebx, 4)\ -X(esp, 5)\ -X(ebp, 6)\ -X(esi, 7)\ -X(edi, 8)\ -X(fsbase, 9)\ -X(gsbase, 10)\ -X(eflags, 11)\ -X(eip, 12)\ -X(dr0, 13)\ -X(dr1, 14)\ -X(dr2, 15)\ -X(dr3, 16)\ -X(dr4, 17)\ -X(dr5, 18)\ -X(dr6, 19)\ -X(dr7, 20)\ -X(fpr0, 21)\ -X(fpr1, 22)\ -X(fpr2, 23)\ -X(fpr3, 24)\ -X(fpr4, 25)\ -X(fpr5, 26)\ -X(fpr6, 27)\ -X(fpr7, 28)\ -X(st0, 29)\ -X(st1, 30)\ -X(st2, 31)\ -X(st3, 32)\ -X(st4, 33)\ -X(st5, 34)\ -X(st6, 35)\ -X(st7, 36)\ -X(fcw, 37)\ -X(fsw, 38)\ -X(ftw, 39)\ -X(fop, 40)\ -X(fcs, 41)\ -X(fds, 42)\ -X(fip, 43)\ -X(fdp, 44)\ -X(mxcsr, 45)\ -X(mxcsr_mask, 46)\ -X(ss, 47)\ -X(cs, 48)\ -X(ds, 49)\ -X(es, 50)\ -X(fs, 51)\ -X(gs, 52)\ -X(ymm0, 53)\ -X(ymm1, 54)\ -X(ymm2, 55)\ -X(ymm3, 56)\ -X(ymm4, 57)\ -X(ymm5, 58)\ -X(ymm6, 59)\ -X(ymm7, 60)\ - -#define RDI_RegCodeX64_XList \ -X(nil, 0)\ -X(rax, 1)\ -X(rcx, 2)\ -X(rdx, 3)\ -X(rbx, 4)\ -X(rsp, 5)\ -X(rbp, 6)\ -X(rsi, 7)\ -X(rdi, 8)\ -X(r8, 9)\ -X(r9, 10)\ -X(r10, 11)\ -X(r11, 12)\ -X(r12, 13)\ -X(r13, 14)\ -X(r14, 15)\ -X(r15, 16)\ -X(es, 17)\ -X(cs, 18)\ -X(ss, 19)\ -X(ds, 20)\ -X(fs, 21)\ -X(gs, 22)\ -X(rip, 23)\ -X(rflags, 24)\ -X(dr0, 25)\ -X(dr1, 26)\ -X(dr2, 27)\ -X(dr3, 28)\ -X(dr4, 29)\ -X(dr5, 30)\ -X(dr6, 31)\ -X(dr7, 32)\ -X(st0, 33)\ -X(st1, 34)\ -X(st2, 35)\ -X(st3, 36)\ -X(st4, 37)\ -X(st5, 38)\ -X(st6, 39)\ -X(st7, 40)\ -X(fpr0, 41)\ -X(fpr1, 42)\ -X(fpr2, 43)\ -X(fpr3, 44)\ -X(fpr4, 45)\ -X(fpr5, 46)\ -X(fpr6, 47)\ -X(fpr7, 48)\ -X(zmm0, 49)\ -X(zmm1, 50)\ -X(zmm2, 51)\ -X(zmm3, 52)\ -X(zmm4, 53)\ -X(zmm5, 54)\ -X(zmm6, 55)\ -X(zmm7, 56)\ -X(zmm8, 57)\ -X(zmm9, 58)\ -X(zmm10, 59)\ -X(zmm11, 60)\ -X(zmm12, 61)\ -X(zmm13, 62)\ -X(zmm14, 63)\ -X(zmm15, 64)\ -X(zmm16, 65)\ -X(zmm17, 66)\ -X(zmm18, 67)\ -X(zmm19, 68)\ -X(zmm20, 69)\ -X(zmm21, 70)\ -X(zmm22, 71)\ -X(zmm23, 72)\ -X(zmm24, 73)\ -X(zmm25, 74)\ -X(zmm26, 75)\ -X(zmm27, 76)\ -X(zmm28, 77)\ -X(zmm29, 78)\ -X(zmm30, 79)\ -X(zmm31, 80)\ -X(k0, 81)\ -X(k1, 82)\ -X(k2, 83)\ -X(k3, 84)\ -X(k4, 85)\ -X(k5, 86)\ -X(k6, 87)\ -X(k7, 88)\ -X(mxcsr, 89)\ -X(fsbase, 90)\ -X(gsbase, 91)\ -X(fcw, 92)\ -X(fsw, 93)\ -X(ftw, 94)\ -X(fop, 95)\ -X(fcs, 96)\ -X(fds, 97)\ -X(fip, 98)\ -X(fdp, 99)\ -X(mxcsr_mask, 100)\ - -#define RDI_TopLevelInfo_XList \ -X(RDI_Arch, arch)\ -X(RDI_U32, exe_name_string_idx)\ -X(RDI_U64, exe_hash)\ -X(RDI_U64, voff_max)\ -X(RDI_U32, producer_name_string_idx)\ - -#define RDI_BinarySectionFlags_XList \ -X(Read)\ -X(Write)\ -X(Execute)\ - -#define RDI_BinarySection_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_BinarySectionFlags, flags)\ -X(RDI_U64, voff_first)\ -X(RDI_U64, voff_opl)\ -X(RDI_U64, foff_first)\ -X(RDI_U64, foff_opl)\ - -#define RDI_FilePathNode_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, parent_path_node)\ -X(RDI_U32, first_child)\ -X(RDI_U32, next_sibling)\ -X(RDI_U32, source_file_idx)\ - -#define RDI_SourceFile_XList \ -X(RDI_U32, file_path_node_idx)\ -X(RDI_U32, normal_full_path_string_idx)\ -X(RDI_U32, source_line_map_idx)\ - -#define RDI_Unit_XList \ -X(RDI_U32, unit_name_string_idx)\ -X(RDI_U32, compiler_name_string_idx)\ -X(RDI_U32, source_file_path_node)\ -X(RDI_U32, object_file_path_node)\ -X(RDI_U32, archive_file_path_node)\ -X(RDI_U32, build_path_node)\ -X(RDI_Language, language)\ -X(RDI_U32, line_table_idx)\ - -#define RDI_LineTable_XList \ -X(RDI_U32, voffs_base_idx)\ -X(RDI_U32, lines_base_idx)\ -X(RDI_U32, cols_base_idx)\ -X(RDI_U32, lines_count)\ -X(RDI_U32, cols_count)\ - -#define RDI_Line_XList \ -X(RDI_U32, file_idx)\ -X(RDI_U32, line_num)\ - -#define RDI_Column_XList \ -X(RDI_U16, col_first)\ -X(RDI_U16, col_opl)\ - -#define RDI_SourceLineMapMemberTable \ -X(RDI_U32, line_count)\ -X(RDI_U32, voff_count)\ -X(RDI_U32, line_map_nums_base_idx)\ -X(RDI_U32, line_map_range_base_idx)\ -X(RDI_U32, line_map_voff_base_idx)\ - -#define RDI_Language_XList \ -X(NULL)\ -X(C)\ -X(CPlusPlus)\ -X(Masm)\ -X(COUNT)\ - -#define RDI_TypeKind_XList \ -X(NULL)\ -X(Void)\ -X(Handle)\ -X(HResult)\ -X(Char8)\ -X(Char16)\ -X(Char32)\ -X(UChar8)\ -X(UChar16)\ -X(UChar32)\ -X(U8)\ -X(U16)\ -X(U32)\ -X(U64)\ -X(U128)\ -X(U256)\ -X(U512)\ -X(S8)\ -X(S16)\ -X(S32)\ -X(S64)\ -X(S128)\ -X(S256)\ -X(S512)\ -X(Bool)\ -X(F16)\ -X(F32)\ -X(F32PP)\ -X(F48)\ -X(F64)\ -X(F80)\ -X(F128)\ -X(ComplexF32)\ -X(ComplexF64)\ -X(ComplexF80)\ -X(ComplexF128)\ -X(Modifier)\ -X(Ptr)\ -X(LRef)\ -X(RRef)\ -X(Array)\ -X(Function)\ -X(Method)\ -X(MemberPtr)\ -X(Struct)\ -X(Class)\ -X(Union)\ -X(Enum)\ -X(Alias)\ -X(IncompleteStruct)\ -X(IncompleteUnion)\ -X(IncompleteClass)\ -X(IncompleteEnum)\ -X(Bitfield)\ -X(Variadic)\ -X(Count)\ - -#define RDI_TypeModifierFlags_XList \ -X(Const)\ -X(Volatile)\ -X(Restrict)\ - -#define RDI_TypeNode_XList \ -X(RDI_TypeKind, kind)\ -X(RDI_U16, flags)\ -X(RDI_U32, byte_size)\ - -#define RDI_UDTFlags_XList \ -X(EnumMembers)\ - -#define RDI_UDT_XList \ -X(RDI_U32, self_type_idx)\ -X(RDI_UDTFlags, flags)\ -X(RDI_U32, member_first)\ -X(RDI_U32, member_count)\ -X(RDI_U32, file_idx)\ -X(RDI_U32, line)\ -X(RDI_U32, col)\ - -#define RDI_MemberKind_XList \ -X(NULL)\ -X(DataField)\ -X(StaticData)\ -X(Method)\ -X(StaticMethod)\ -X(VirtualMethod)\ -X(VTablePtr)\ -X(Base)\ -X(VirtualBase)\ -X(NestedType)\ - -#define RDI_Member_XList \ -X(RDI_MemberKind, kind)\ -X(RDI_U16, pad)\ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, type_idx)\ -X(RDI_U32, off)\ - -#define RDI_EnumMember_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, pad)\ -X(RDI_U64, val)\ - -#define RDI_LinkFlags_XList \ -X(External)\ -X(TypeScoped)\ -X(ProcScoped)\ - -#define RDI_LocalKind_XList \ -X(NULL)\ -X(Parameter)\ -X(Variable)\ - -#define RDI_LocationKind_XList \ -X(NULL)\ -X(AddrBytecodeStream)\ -X(ValBytecodeStream)\ -X(AddrRegPlusU16)\ -X(AddrAddrRegPlusU16)\ -X(ValReg)\ - -#define RDI_GlobalVariable_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_LinkFlags, link_flags)\ -X(RDI_U64, voff)\ -X(RDI_U32, type_idx)\ -X(RDI_U32, container_idx)\ - -#define RDI_ThreadVariable_XList \ -X(type, name_string_idx)\ -X(type, link_flags)\ -X(type, tls_off)\ -X(type, type_idx)\ -X(type, container_idx)\ - -#define RDI_Procedure_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, link_name_string_idx)\ -X(RDI_LinkFlags, link_flags)\ -X(RDI_U32, type_idx)\ -X(RDI_U32, root_scope_idx)\ -X(RDI_U32, container_idx)\ -X(RDI_U32, frame_base_location_first)\ -X(RDI_U32, frame_base_location_opl)\ - -#define RDI_Scope_XList \ -X(RDI_U32, proc_idx)\ -X(RDI_U32, parent_scope_idx)\ -X(RDI_U32, first_child_scope_idx)\ -X(RDI_U32, next_sibling_scope_idx)\ -X(RDI_U32, voff_range_first)\ -X(RDI_U32, voff_range_opl)\ -X(RDI_U32, local_first)\ -X(RDI_U32, local_count)\ -X(RDI_U32, static_local_idx_run_first)\ -X(RDI_U32, static_local_count)\ -X(RDI_U32, inline_site_idx)\ - -#define RDI_InlineSite_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, type_idx)\ -X(RDI_U32, owner_type_idx)\ -X(RDI_U32, line_table_idx)\ - -#define RDI_Local_XList \ -X(RDI_LocalKind, kind)\ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, type_idx)\ -X(RDI_U32, pad)\ -X(RDI_U32, location_first)\ -X(RDI_U32, location_opl)\ - -#define RDI_LocationBlock_XList \ -X(RDI_U32, scope_off_first)\ -X(RDI_U32, scope_off_opl)\ -X(RDI_U32, location_data_off)\ - -#define RDI_LocationBytecodeStream_XList \ -X(RDI_LocationKind, kind)\ - -#define RDI_LocationRegPlusU16_XList \ -X(RDI_LocationKind, kind)\ -X(RDI_RegCode, reg_code)\ -X(RDI_U16, offset)\ - -#define RDI_LocationReg_XList \ -X(RDI_LocationKind, kind)\ -X(RDI_RegCode, reg_code)\ - -#define RDI_EvalOp_XList \ -X(Stop)\ -X(Noop)\ -X(Cond)\ -X(Skip)\ -X(MemRead)\ -X(RegRead)\ -X(RegReadDyn)\ -X(FrameOff)\ -X(ModuleOff)\ -X(TLSOff)\ -X(ObjectOff)\ -X(CFA)\ -X(ConstU8)\ -X(ConstU16)\ -X(ConstU32)\ -X(ConstU64)\ -X(ConstU128)\ -X(ConstString)\ -X(Abs)\ -X(Neg)\ -X(Add)\ -X(Sub)\ -X(Mul)\ -X(Div)\ -X(Mod)\ -X(LShift)\ -X(RShift)\ -X(BitAnd)\ -X(BitOr)\ -X(BitXor)\ -X(BitNot)\ -X(LogAnd)\ -X(LogOr)\ -X(LogNot)\ -X(EqEq)\ -X(NtEq)\ -X(LsEq)\ -X(GrEq)\ -X(Less)\ -X(Grtr)\ -X(Trunc)\ -X(TruncSigned)\ -X(Convert)\ -X(Pick)\ -X(Pop)\ -X(Insert)\ -X(ValueRead)\ -X(ByteSwap)\ -X(CallSiteValue)\ -X(PartialValue)\ -X(PartialValueBit)\ - -#define RDI_EvalTypeGroup_XList \ -X(Other)\ -X(U)\ -X(S)\ -X(F32)\ -X(F64)\ - -#define RDI_EvalConversionKind_XList \ -X(Noop)\ -X(Legal)\ -X(OtherToOther)\ -X(ToOther)\ -X(FromOther)\ - -#define RDI_NameMapKind_XList \ -X(NULL)\ -X(GlobalVariables)\ -X(ThreadVariables)\ -X(Constants)\ -X(Procedures)\ -X(Types)\ -X(LinkNameProcedures)\ -X(NormalSourcePaths)\ - -#define RDI_NameMap_XList \ -X(RDI_U32, bucket_base_idx)\ -X(RDI_U32, node_base_idx)\ -X(RDI_U32, bucket_count)\ -X(RDI_U32, node_count)\ - -#define RDI_NameMapBucket_XList \ -X(RDI_U32, first_node)\ -X(RDI_U32, node_count)\ - -#define RDI_NameMapNode_XList \ -X(RDI_U32, string_idx)\ -X(RDI_U32, match_count)\ -X(RDI_U32, match_idx_or_idx_run_first)\ - -#if !RDI_DISABLE_TABLE_INDEX_TYPECHECKING -typedef struct RDI_U32_StringTable { RDI_U32 v; } RDI_U32_StringTable; -typedef struct RDI_U32_IndexRuns { RDI_U32 v; } RDI_U32_IndexRuns; -typedef struct RDI_U32_BinarySections { RDI_U32 v; } RDI_U32_BinarySections; -typedef struct RDI_U32_FilePathNodes { RDI_U32 v; } RDI_U32_FilePathNodes; -typedef struct RDI_U32_SourceFiles { RDI_U32 v; } RDI_U32_SourceFiles; -typedef struct RDI_U32_LineTables { RDI_U32 v; } RDI_U32_LineTables; -typedef struct RDI_U32_LineInfoVOffs { RDI_U32 v; } RDI_U32_LineInfoVOffs; -typedef struct RDI_U32_LineInfoLines { RDI_U32 v; } RDI_U32_LineInfoLines; -typedef struct RDI_U32_LineInfoColumns { RDI_U32 v; } RDI_U32_LineInfoColumns; -typedef struct RDI_U32_SourceLineMaps { RDI_U32 v; } RDI_U32_SourceLineMaps; -typedef struct RDI_U32_SourceLineMapNumbers { RDI_U32 v; } RDI_U32_SourceLineMapNumbers; -typedef struct RDI_U32_SourceLineMapRanges { RDI_U32 v; } RDI_U32_SourceLineMapRanges; -typedef struct RDI_U32_SourceLineMapVOffs { RDI_U32 v; } RDI_U32_SourceLineMapVOffs; -typedef struct RDI_U32_Units { RDI_U32 v; } RDI_U32_Units; -typedef struct RDI_U32_TypeNodes { RDI_U32 v; } RDI_U32_TypeNodes; -typedef struct RDI_U32_UDTs { RDI_U32 v; } RDI_U32_UDTs; -typedef struct RDI_U32_Members { RDI_U32 v; } RDI_U32_Members; -typedef struct RDI_U32_EnumMembers { RDI_U32 v; } RDI_U32_EnumMembers; -typedef struct RDI_U32_GlobalVariables { RDI_U32 v; } RDI_U32_GlobalVariables; -typedef struct RDI_U32_ThreadVariables { RDI_U32 v; } RDI_U32_ThreadVariables; -typedef struct RDI_U32_Constants { RDI_U32 v; } RDI_U32_Constants; -typedef struct RDI_U32_Procedures { RDI_U32 v; } RDI_U32_Procedures; -typedef struct RDI_U32_Scopes { RDI_U32 v; } RDI_U32_Scopes; -typedef struct RDI_U32_ScopeVOffData { RDI_U32 v; } RDI_U32_ScopeVOffData; -typedef struct RDI_U32_InlineSites { RDI_U32 v; } RDI_U32_InlineSites; -typedef struct RDI_U32_Locals { RDI_U32 v; } RDI_U32_Locals; -typedef struct RDI_U32_LocationBlocks { RDI_U32 v; } RDI_U32_LocationBlocks; -typedef struct RDI_U32_LocationData { RDI_U32 v; } RDI_U32_LocationData; -typedef struct RDI_U32_ConstantValueData { RDI_U32 v; } RDI_U32_ConstantValueData; -typedef struct RDI_U32_ConstantValueTable { RDI_U32 v; } RDI_U32_ConstantValueTable; -typedef struct RDI_U32_NameMaps { RDI_U32 v; } RDI_U32_NameMaps; -typedef struct RDI_U32_NameMapBuckets { RDI_U32 v; } RDI_U32_NameMapBuckets; -typedef struct RDI_U32_NameMapNodes { RDI_U32 v; } RDI_U32_NameMapNodes; -#else -typedef struct RDI_U32_Table { RDI_U32 v; } RDI_U32_Table; -typedef struct RDI_U64_Table { RDI_U64 v; } RDI_U64_Table; -typedef RDI_U32_Table RDI_U32_StringTable; -typedef RDI_U32_Table RDI_U32_IndexRuns; -typedef RDI_U32_Table RDI_U32_BinarySections; -typedef RDI_U32_Table RDI_U32_FilePathNodes; -typedef RDI_U32_Table RDI_U32_SourceFiles; -typedef RDI_U32_Table RDI_U32_LineTables; -typedef RDI_U32_Table RDI_U32_LineInfoVOffs; -typedef RDI_U32_Table RDI_U32_LineInfoLines; -typedef RDI_U32_Table RDI_U32_LineInfoColumns; -typedef RDI_U32_Table RDI_U32_SourceLineMaps; -typedef RDI_U32_Table RDI_U32_SourceLineMapNumbers; -typedef RDI_U32_Table RDI_U32_SourceLineMapRanges; -typedef RDI_U32_Table RDI_U32_SourceLineMapVOffs; -typedef RDI_U32_Table RDI_U32_Units; -typedef RDI_U32_Table RDI_U32_TypeNodes; -typedef RDI_U32_Table RDI_U32_UDTs; -typedef RDI_U32_Table RDI_U32_Members; -typedef RDI_U32_Table RDI_U32_EnumMembers; -typedef RDI_U32_Table RDI_U32_GlobalVariables; -typedef RDI_U32_Table RDI_U32_ThreadVariables; -typedef RDI_U32_Table RDI_U32_Constants; -typedef RDI_U32_Table RDI_U32_Procedures; -typedef RDI_U32_Table RDI_U32_Scopes; -typedef RDI_U32_Table RDI_U32_ScopeVOffData; -typedef RDI_U32_Table RDI_U32_InlineSites; -typedef RDI_U32_Table RDI_U32_Locals; -typedef RDI_U32_Table RDI_U32_LocationBlocks; -typedef RDI_U32_Table RDI_U32_LocationData; -typedef RDI_U32_Table RDI_U32_ConstantValueData; -typedef RDI_U32_Table RDI_U32_ConstantValueTable; -typedef RDI_U32_Table RDI_U32_NameMaps; -typedef RDI_U32_Table RDI_U32_NameMapBuckets; -typedef RDI_U32_Table RDI_U32_NameMapNodes; -#endif - -#define RDI_EVAL_CTRLBITS(decodeN,popN,pushN) (((decodeN) << 8) | ((popN) << 4) | ((pushN) << 0)) -#define RDI_DECODEN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 8) & 0xff) -#define RDI_POPN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 4) & 0xf) -#define RDI_PUSHN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 0) & 0xf) -#define RDI_EncodeRegReadParam(reg,bytesize,bytepos) ((reg)|((bytesize)<<8)|((bytepos)<<16)) - -typedef struct RDI_Header RDI_Header; -struct RDI_Header -{ -RDI_U64 magic; -RDI_U32 encoding_version; -RDI_U32 data_section_off; -RDI_U32 data_section_count; -}; - -typedef struct RDI_Section RDI_Section; -struct RDI_Section -{ -RDI_SectionEncoding encoding; -RDI_U32 pad; -RDI_U64 off; -RDI_U64 encoded_size; -RDI_U64 unpacked_size; -}; - -typedef struct RDI_VMapEntry RDI_VMapEntry; -struct RDI_VMapEntry -{ -RDI_U64 voff; -RDI_U64 idx; -}; - -typedef struct RDI_TopLevelInfo RDI_TopLevelInfo; -struct RDI_TopLevelInfo -{ -RDI_Arch arch; -RDI_U32 exe_name_string_idx; -RDI_U64 exe_hash; -RDI_U64 voff_max; -RDI_U32 producer_name_string_idx; -}; - -typedef struct RDI_BinarySection RDI_BinarySection; -struct RDI_BinarySection -{ -RDI_U32 name_string_idx; -RDI_BinarySectionFlags flags; -RDI_U64 voff_first; -RDI_U64 voff_opl; -RDI_U64 foff_first; -RDI_U64 foff_opl; -}; - -typedef struct RDI_FilePathNode RDI_FilePathNode; -struct RDI_FilePathNode -{ -RDI_U32 name_string_idx; -RDI_U32 parent_path_node; -RDI_U32 first_child; -RDI_U32 next_sibling; -RDI_U32 source_file_idx; -}; - -typedef struct RDI_SourceFile RDI_SourceFile; -struct RDI_SourceFile -{ -RDI_U32 file_path_node_idx; -RDI_U32 normal_full_path_string_idx; -RDI_U32 source_line_map_idx; -}; - -typedef struct RDI_Unit RDI_Unit; -struct RDI_Unit -{ -RDI_U32 unit_name_string_idx; -RDI_U32 compiler_name_string_idx; -RDI_U32 source_file_path_node; -RDI_U32 object_file_path_node; -RDI_U32 archive_file_path_node; -RDI_U32 build_path_node; -RDI_Language language; -RDI_U32 line_table_idx; -}; - -typedef struct RDI_LineTable RDI_LineTable; -struct RDI_LineTable -{ -RDI_U32 voffs_base_idx; -RDI_U32 lines_base_idx; -RDI_U32 cols_base_idx; -RDI_U32 lines_count; -RDI_U32 cols_count; -}; - -typedef struct RDI_Line RDI_Line; -struct RDI_Line -{ -RDI_U32 file_idx; -RDI_U32 line_num; -}; - -typedef struct RDI_Column RDI_Column; -struct RDI_Column -{ -RDI_U16 col_first; -RDI_U16 col_opl; -}; - -typedef struct RDI_SourceLineMap RDI_SourceLineMap; -struct RDI_SourceLineMap -{ -RDI_U32 line_count; -RDI_U32 voff_count; -RDI_U32 line_map_nums_base_idx; -RDI_U32 line_map_range_base_idx; -RDI_U32 line_map_voff_base_idx; -}; - -typedef struct RDI_TypeNode RDI_TypeNode; -struct RDI_TypeNode -{ -RDI_TypeKind kind; -RDI_U16 flags; -RDI_U32 byte_size; - - union - { - // kind is 'built-in' - struct - { - RDI_U32 name_string_idx; - } built_in; - - // kind is 'constructed' - struct - { - RDI_U32 direct_type_idx; - RDI_U32 count; - union - { - // when kind is 'Function' or 'Method' - RDI_U32 param_idx_run_first; - // when kind is 'MemberPtr' - RDI_U32 owner_type_idx; - }; - } - constructed; - - // kind is 'user defined' - struct - { - RDI_U32 name_string_idx; - RDI_U32 direct_type_idx; - RDI_U32 udt_idx; - } - user_defined; - - // (kind = Bitfield) - struct - { - RDI_U32 direct_type_idx; - RDI_U32 off; - RDI_U32 size; - } - bitfield; - } - ; -}; - -typedef struct RDI_UDT RDI_UDT; -struct RDI_UDT -{ -RDI_U32 self_type_idx; -RDI_UDTFlags flags; -RDI_U32 member_first; -RDI_U32 member_count; -RDI_U32 file_idx; -RDI_U32 line; -RDI_U32 col; -}; - -typedef struct RDI_Member RDI_Member; -struct RDI_Member -{ -RDI_MemberKind kind; -RDI_U16 pad; -RDI_U32 name_string_idx; -RDI_U32 type_idx; -RDI_U32 off; -}; - -typedef struct RDI_EnumMember RDI_EnumMember; -struct RDI_EnumMember -{ -RDI_U32 name_string_idx; -RDI_U32 pad; -RDI_U64 val; -}; - -typedef struct RDI_GlobalVariable RDI_GlobalVariable; -struct RDI_GlobalVariable -{ -RDI_U32 name_string_idx; -RDI_LinkFlags link_flags; -RDI_U64 voff; -RDI_U32 type_idx; -RDI_U32 container_idx; -}; - -typedef struct RDI_ThreadVariable RDI_ThreadVariable; -struct RDI_ThreadVariable -{ -RDI_U32 name_string_idx; -RDI_LinkFlags link_flags; -RDI_U32 tls_off; -RDI_U32 type_idx; -RDI_U32 container_idx; -}; - -typedef struct RDI_Constant RDI_Constant; -struct RDI_Constant -{ -RDI_U32 name_string_idx; -RDI_U32 type_idx; -RDI_U32 constant_value_idx; -}; - -typedef struct RDI_Procedure RDI_Procedure; -struct RDI_Procedure -{ -RDI_U32 name_string_idx; -RDI_U32 link_name_string_idx; -RDI_LinkFlags link_flags; -RDI_U32 type_idx; -RDI_U32 root_scope_idx; -RDI_U32 container_idx; -RDI_U32 frame_base_location_first; -RDI_U32 frame_base_location_opl; -}; - -typedef struct RDI_Scope RDI_Scope; -struct RDI_Scope -{ -RDI_U32 proc_idx; -RDI_U32 parent_scope_idx; -RDI_U32 first_child_scope_idx; -RDI_U32 next_sibling_scope_idx; -RDI_U32 voff_range_first; -RDI_U32 voff_range_opl; -RDI_U32 local_first; -RDI_U32 local_count; -RDI_U32 static_local_idx_run_first; -RDI_U32 static_local_count; -RDI_U32 inline_site_idx; -}; - -typedef struct RDI_InlineSite RDI_InlineSite; -struct RDI_InlineSite -{ -RDI_U32 name_string_idx; -RDI_U32 type_idx; -RDI_U32 owner_type_idx; -RDI_U32 line_table_idx; -}; - -typedef struct RDI_Local RDI_Local; -struct RDI_Local -{ -RDI_LocalKind kind; -RDI_U32 name_string_idx; -RDI_U32 type_idx; -RDI_U32 pad; -RDI_U32 location_first; -RDI_U32 location_opl; -}; - -typedef struct RDI_LocationBlock RDI_LocationBlock; -struct RDI_LocationBlock -{ -RDI_U32 scope_off_first; -RDI_U32 scope_off_opl; -RDI_U32 location_data_off; -}; - -typedef struct RDI_LocationBytecodeStream RDI_LocationBytecodeStream; -struct RDI_LocationBytecodeStream -{ -RDI_LocationKind kind; -}; - -typedef struct RDI_LocationRegPlusU16 RDI_LocationRegPlusU16; -struct RDI_LocationRegPlusU16 -{ -RDI_LocationKind kind; -RDI_RegCode reg_code; -RDI_U16 offset; -}; - -typedef struct RDI_LocationReg RDI_LocationReg; -struct RDI_LocationReg -{ -RDI_LocationKind kind; -RDI_RegCode reg_code; -}; - -typedef struct RDI_NameMap RDI_NameMap; -struct RDI_NameMap -{ -RDI_U32 bucket_base_idx; -RDI_U32 node_base_idx; -RDI_U32 bucket_count; -RDI_U32 node_count; -}; - -typedef struct RDI_NameMapBucket RDI_NameMapBucket; -struct RDI_NameMapBucket -{ -RDI_U32 first_node; -RDI_U32 node_count; -}; - -typedef struct RDI_NameMapNode RDI_NameMapNode; -struct RDI_NameMapNode -{ -RDI_U32 string_idx; -RDI_U32 match_count; -RDI_U32 match_idx_or_idx_run_first; -}; - -typedef RDI_TopLevelInfo RDI_SectionElementType_TopLevelInfo; -typedef RDI_U8 RDI_SectionElementType_StringData; -typedef RDI_U32 RDI_SectionElementType_StringTable; -typedef RDI_U32 RDI_SectionElementType_IndexRuns; -typedef RDI_BinarySection RDI_SectionElementType_BinarySections; -typedef RDI_FilePathNode RDI_SectionElementType_FilePathNodes; -typedef RDI_SourceFile RDI_SectionElementType_SourceFiles; -typedef RDI_LineTable RDI_SectionElementType_LineTables; -typedef RDI_U64 RDI_SectionElementType_LineInfoVOffs; -typedef RDI_Line RDI_SectionElementType_LineInfoLines; -typedef RDI_Column RDI_SectionElementType_LineInfoColumns; -typedef RDI_SourceLineMap RDI_SectionElementType_SourceLineMaps; -typedef RDI_U32 RDI_SectionElementType_SourceLineMapNumbers; -typedef RDI_U32 RDI_SectionElementType_SourceLineMapRanges; -typedef RDI_U64 RDI_SectionElementType_SourceLineMapVOffs; -typedef RDI_Unit RDI_SectionElementType_Units; -typedef RDI_VMapEntry RDI_SectionElementType_UnitVMap; -typedef RDI_TypeNode RDI_SectionElementType_TypeNodes; -typedef RDI_UDT RDI_SectionElementType_UDTs; -typedef RDI_Member RDI_SectionElementType_Members; -typedef RDI_EnumMember RDI_SectionElementType_EnumMembers; -typedef RDI_GlobalVariable RDI_SectionElementType_GlobalVariables; -typedef RDI_VMapEntry RDI_SectionElementType_GlobalVMap; -typedef RDI_ThreadVariable RDI_SectionElementType_ThreadVariables; -typedef RDI_Constant RDI_SectionElementType_Constants; -typedef RDI_Procedure RDI_SectionElementType_Procedures; -typedef RDI_Scope RDI_SectionElementType_Scopes; -typedef RDI_U64 RDI_SectionElementType_ScopeVOffData; -typedef RDI_VMapEntry RDI_SectionElementType_ScopeVMap; -typedef RDI_InlineSite RDI_SectionElementType_InlineSites; -typedef RDI_Local RDI_SectionElementType_Locals; -typedef RDI_LocationBlock RDI_SectionElementType_LocationBlocks; -typedef RDI_U8 RDI_SectionElementType_LocationData; -typedef RDI_U8 RDI_SectionElementType_ConstantValueData; -typedef RDI_U32 RDI_SectionElementType_ConstantValueTable; -typedef RDI_NameMap RDI_SectionElementType_NameMaps; -typedef RDI_NameMapBucket RDI_SectionElementType_NameMapBuckets; -typedef RDI_NameMapNode RDI_SectionElementType_NameMapNodes; - -RDI_PROC RDI_U64 rdi_hash(RDI_U8 *ptr, RDI_U64 size); -RDI_PROC RDI_U8 *rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out); -RDI_PROC RDI_U32 rdi_size_from_basic_type_kind(RDI_TypeKind kind); -RDI_PROC RDI_U32 rdi_addr_size_from_arch(RDI_Arch arch); -RDI_PROC RDI_EvalConversionKind rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out); -RDI_PROC RDI_S32 rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group); -RDI_PROC RDI_U8 *rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out); - -extern RDI_U16 rdi_section_element_size_table[40]; -extern RDI_U8 rdi_section_is_required_table[40]; -extern RDI_U16 rdi_eval_op_ctrlbits_table[52]; - -#endif // RDI_FORMAT_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////////////////////////////////////// +//~ (R)AD (D)ebug (I)nfo Format Library +// +// Defines standard RDI debug information format types and +// functions. + +#ifndef RDI_H +#define RDI_H + +//////////////////////////////////////////////////////////////// +//~ Overridable Procedure Decoration + +#if !defined(RDI_PROC) +# define RDI_PROC static +#endif + +//////////////////////////////////////////////////////////////// +//~ Overridable Basic Integer Types + +#if !defined(RDI_U8) +# define RDI_U8 RDI_U8 +# define RDI_U16 RDI_U16 +# define RDI_U32 RDI_U32 +# define RDI_U64 RDI_U64 +# define RDI_S8 RDI_S8 +# define RDI_S16 RDI_S16 +# define RDI_S32 RDI_S32 +# define RDI_S64 RDI_S64 +#include +typedef uint8_t RDI_U8; +typedef uint16_t RDI_U16; +typedef uint32_t RDI_U32; +typedef uint64_t RDI_U64; +typedef int8_t RDI_S8; +typedef int16_t RDI_S16; +typedef int32_t RDI_S32; +typedef int64_t RDI_S64; +#endif + +//////////////////////////////////////////////////////////////// +//~ Overridable Enabling/Disabling Of Table Index Typechecking + +#if !defined(RDI_DISABLE_TABLE_INDEX_TYPECHECKING) +# define RDI_DISABLE_TABLE_INDEX_TYPECHECKING 0 +#endif + +//////////////////////////////////////////////////////////////// +//~ Format Constants + +// "raddbg\0\0" +#define RDI_MAGIC_CONSTANT 0x0000676264646172 +#define RDI_ENCODING_VERSION 12 + +//////////////////////////////////////////////////////////////// +//~ Format Types & Functions + +typedef RDI_U32 RDI_SectionKind; +typedef enum RDI_SectionKindEnum +{ +RDI_SectionKind_NULL = 0x0000, +RDI_SectionKind_TopLevelInfo = 0x0001, +RDI_SectionKind_StringData = 0x0002, +RDI_SectionKind_StringTable = 0x0003, +RDI_SectionKind_IndexRuns = 0x0004, +RDI_SectionKind_BinarySections = 0x0005, +RDI_SectionKind_FilePathNodes = 0x0006, +RDI_SectionKind_SourceFiles = 0x0007, +RDI_SectionKind_LineTables = 0x0008, +RDI_SectionKind_LineInfoVOffs = 0x0009, +RDI_SectionKind_LineInfoLines = 0x000A, +RDI_SectionKind_LineInfoColumns = 0x000B, +RDI_SectionKind_SourceLineMaps = 0x000C, +RDI_SectionKind_SourceLineMapNumbers = 0x000D, +RDI_SectionKind_SourceLineMapRanges = 0x000E, +RDI_SectionKind_SourceLineMapVOffs = 0x000F, +RDI_SectionKind_Units = 0x0010, +RDI_SectionKind_UnitVMap = 0x0011, +RDI_SectionKind_TypeNodes = 0x0012, +RDI_SectionKind_UDTs = 0x0013, +RDI_SectionKind_Members = 0x0014, +RDI_SectionKind_EnumMembers = 0x0015, +RDI_SectionKind_GlobalVariables = 0x0016, +RDI_SectionKind_GlobalVMap = 0x0017, +RDI_SectionKind_ThreadVariables = 0x0018, +RDI_SectionKind_Constants = 0x0019, +RDI_SectionKind_Procedures = 0x001A, +RDI_SectionKind_Scopes = 0x001B, +RDI_SectionKind_ScopeVOffData = 0x001C, +RDI_SectionKind_ScopeVMap = 0x001D, +RDI_SectionKind_InlineSites = 0x001E, +RDI_SectionKind_Locals = 0x001F, +RDI_SectionKind_LocationBlocks = 0x0020, +RDI_SectionKind_LocationData = 0x0021, +RDI_SectionKind_ConstantValueData = 0x0022, +RDI_SectionKind_ConstantValueTable = 0x0023, +RDI_SectionKind_NameMaps = 0x0024, +RDI_SectionKind_NameMapBuckets = 0x0025, +RDI_SectionKind_NameMapNodes = 0x0026, +RDI_SectionKind_COUNT = 0x0027, +} RDI_SectionKindEnum; + +typedef RDI_U32 RDI_SectionEncoding; +typedef enum RDI_SectionEncodingEnum +{ +RDI_SectionEncoding_Unpacked = 0, +RDI_SectionEncoding_LZB = 1, +} RDI_SectionEncodingEnum; + +typedef RDI_U32 RDI_Arch; +typedef enum RDI_ArchEnum +{ +RDI_Arch_NULL = 0, +RDI_Arch_X86 = 1, +RDI_Arch_X64 = 2, +} RDI_ArchEnum; + +typedef RDI_U8 RDI_RegCode; +typedef enum RDI_RegCodeEnum +{ +RDI_RegCode_nil, +} RDI_RegCodeEnum; + +typedef RDI_U8 RDI_RegCodeX86; +typedef enum RDI_RegCodeX86Enum +{ +RDI_RegCodeX86_nil = 0, +RDI_RegCodeX86_eax = 1, +RDI_RegCodeX86_ecx = 2, +RDI_RegCodeX86_edx = 3, +RDI_RegCodeX86_ebx = 4, +RDI_RegCodeX86_esp = 5, +RDI_RegCodeX86_ebp = 6, +RDI_RegCodeX86_esi = 7, +RDI_RegCodeX86_edi = 8, +RDI_RegCodeX86_fsbase = 9, +RDI_RegCodeX86_gsbase = 10, +RDI_RegCodeX86_eflags = 11, +RDI_RegCodeX86_eip = 12, +RDI_RegCodeX86_dr0 = 13, +RDI_RegCodeX86_dr1 = 14, +RDI_RegCodeX86_dr2 = 15, +RDI_RegCodeX86_dr3 = 16, +RDI_RegCodeX86_dr4 = 17, +RDI_RegCodeX86_dr5 = 18, +RDI_RegCodeX86_dr6 = 19, +RDI_RegCodeX86_dr7 = 20, +RDI_RegCodeX86_fpr0 = 21, +RDI_RegCodeX86_fpr1 = 22, +RDI_RegCodeX86_fpr2 = 23, +RDI_RegCodeX86_fpr3 = 24, +RDI_RegCodeX86_fpr4 = 25, +RDI_RegCodeX86_fpr5 = 26, +RDI_RegCodeX86_fpr6 = 27, +RDI_RegCodeX86_fpr7 = 28, +RDI_RegCodeX86_st0 = 29, +RDI_RegCodeX86_st1 = 30, +RDI_RegCodeX86_st2 = 31, +RDI_RegCodeX86_st3 = 32, +RDI_RegCodeX86_st4 = 33, +RDI_RegCodeX86_st5 = 34, +RDI_RegCodeX86_st6 = 35, +RDI_RegCodeX86_st7 = 36, +RDI_RegCodeX86_fcw = 37, +RDI_RegCodeX86_fsw = 38, +RDI_RegCodeX86_ftw = 39, +RDI_RegCodeX86_fop = 40, +RDI_RegCodeX86_fcs = 41, +RDI_RegCodeX86_fds = 42, +RDI_RegCodeX86_fip = 43, +RDI_RegCodeX86_fdp = 44, +RDI_RegCodeX86_mxcsr = 45, +RDI_RegCodeX86_mxcsr_mask = 46, +RDI_RegCodeX86_ss = 47, +RDI_RegCodeX86_cs = 48, +RDI_RegCodeX86_ds = 49, +RDI_RegCodeX86_es = 50, +RDI_RegCodeX86_fs = 51, +RDI_RegCodeX86_gs = 52, +RDI_RegCodeX86_ymm0 = 53, +RDI_RegCodeX86_ymm1 = 54, +RDI_RegCodeX86_ymm2 = 55, +RDI_RegCodeX86_ymm3 = 56, +RDI_RegCodeX86_ymm4 = 57, +RDI_RegCodeX86_ymm5 = 58, +RDI_RegCodeX86_ymm6 = 59, +RDI_RegCodeX86_ymm7 = 60, +} RDI_RegCodeX86Enum; + +typedef RDI_U8 RDI_RegCodeX64; +typedef enum RDI_RegCodeX64Enum +{ +RDI_RegCodeX64_nil = 0, +RDI_RegCodeX64_rax = 1, +RDI_RegCodeX64_rcx = 2, +RDI_RegCodeX64_rdx = 3, +RDI_RegCodeX64_rbx = 4, +RDI_RegCodeX64_rsp = 5, +RDI_RegCodeX64_rbp = 6, +RDI_RegCodeX64_rsi = 7, +RDI_RegCodeX64_rdi = 8, +RDI_RegCodeX64_r8 = 9, +RDI_RegCodeX64_r9 = 10, +RDI_RegCodeX64_r10 = 11, +RDI_RegCodeX64_r11 = 12, +RDI_RegCodeX64_r12 = 13, +RDI_RegCodeX64_r13 = 14, +RDI_RegCodeX64_r14 = 15, +RDI_RegCodeX64_r15 = 16, +RDI_RegCodeX64_es = 17, +RDI_RegCodeX64_cs = 18, +RDI_RegCodeX64_ss = 19, +RDI_RegCodeX64_ds = 20, +RDI_RegCodeX64_fs = 21, +RDI_RegCodeX64_gs = 22, +RDI_RegCodeX64_rip = 23, +RDI_RegCodeX64_rflags = 24, +RDI_RegCodeX64_dr0 = 25, +RDI_RegCodeX64_dr1 = 26, +RDI_RegCodeX64_dr2 = 27, +RDI_RegCodeX64_dr3 = 28, +RDI_RegCodeX64_dr4 = 29, +RDI_RegCodeX64_dr5 = 30, +RDI_RegCodeX64_dr6 = 31, +RDI_RegCodeX64_dr7 = 32, +RDI_RegCodeX64_st0 = 33, +RDI_RegCodeX64_st1 = 34, +RDI_RegCodeX64_st2 = 35, +RDI_RegCodeX64_st3 = 36, +RDI_RegCodeX64_st4 = 37, +RDI_RegCodeX64_st5 = 38, +RDI_RegCodeX64_st6 = 39, +RDI_RegCodeX64_st7 = 40, +RDI_RegCodeX64_fpr0 = 41, +RDI_RegCodeX64_fpr1 = 42, +RDI_RegCodeX64_fpr2 = 43, +RDI_RegCodeX64_fpr3 = 44, +RDI_RegCodeX64_fpr4 = 45, +RDI_RegCodeX64_fpr5 = 46, +RDI_RegCodeX64_fpr6 = 47, +RDI_RegCodeX64_fpr7 = 48, +RDI_RegCodeX64_zmm0 = 49, +RDI_RegCodeX64_zmm1 = 50, +RDI_RegCodeX64_zmm2 = 51, +RDI_RegCodeX64_zmm3 = 52, +RDI_RegCodeX64_zmm4 = 53, +RDI_RegCodeX64_zmm5 = 54, +RDI_RegCodeX64_zmm6 = 55, +RDI_RegCodeX64_zmm7 = 56, +RDI_RegCodeX64_zmm8 = 57, +RDI_RegCodeX64_zmm9 = 58, +RDI_RegCodeX64_zmm10 = 59, +RDI_RegCodeX64_zmm11 = 60, +RDI_RegCodeX64_zmm12 = 61, +RDI_RegCodeX64_zmm13 = 62, +RDI_RegCodeX64_zmm14 = 63, +RDI_RegCodeX64_zmm15 = 64, +RDI_RegCodeX64_zmm16 = 65, +RDI_RegCodeX64_zmm17 = 66, +RDI_RegCodeX64_zmm18 = 67, +RDI_RegCodeX64_zmm19 = 68, +RDI_RegCodeX64_zmm20 = 69, +RDI_RegCodeX64_zmm21 = 70, +RDI_RegCodeX64_zmm22 = 71, +RDI_RegCodeX64_zmm23 = 72, +RDI_RegCodeX64_zmm24 = 73, +RDI_RegCodeX64_zmm25 = 74, +RDI_RegCodeX64_zmm26 = 75, +RDI_RegCodeX64_zmm27 = 76, +RDI_RegCodeX64_zmm28 = 77, +RDI_RegCodeX64_zmm29 = 78, +RDI_RegCodeX64_zmm30 = 79, +RDI_RegCodeX64_zmm31 = 80, +RDI_RegCodeX64_k0 = 81, +RDI_RegCodeX64_k1 = 82, +RDI_RegCodeX64_k2 = 83, +RDI_RegCodeX64_k3 = 84, +RDI_RegCodeX64_k4 = 85, +RDI_RegCodeX64_k5 = 86, +RDI_RegCodeX64_k6 = 87, +RDI_RegCodeX64_k7 = 88, +RDI_RegCodeX64_mxcsr = 89, +RDI_RegCodeX64_fsbase = 90, +RDI_RegCodeX64_gsbase = 91, +RDI_RegCodeX64_fcw = 92, +RDI_RegCodeX64_fsw = 93, +RDI_RegCodeX64_ftw = 94, +RDI_RegCodeX64_fop = 95, +RDI_RegCodeX64_fcs = 96, +RDI_RegCodeX64_fds = 97, +RDI_RegCodeX64_fip = 98, +RDI_RegCodeX64_fdp = 99, +RDI_RegCodeX64_mxcsr_mask = 100, +} RDI_RegCodeX64Enum; + +typedef RDI_U32 RDI_BinarySectionFlags; +typedef enum RDI_BinarySectionFlagsEnum +{ +RDI_BinarySectionFlag_Read = 1<<0, +RDI_BinarySectionFlag_Write = 1<<1, +RDI_BinarySectionFlag_Execute = 1<<2, +} RDI_BinarySectionFlagsEnum; + +typedef RDI_U32 RDI_Language; +typedef enum RDI_LanguageEnum +{ +RDI_Language_NULL = 0, +RDI_Language_C = 1, +RDI_Language_CPlusPlus = 2, +RDI_Language_Masm = 3, +RDI_Language_COUNT = 4, +} RDI_LanguageEnum; + +typedef RDI_U16 RDI_TypeKind; +typedef enum RDI_TypeKindEnum +{ +RDI_TypeKind_NULL = 0x0000, +RDI_TypeKind_Void = 0x0001, +RDI_TypeKind_Handle = 0x0002, +RDI_TypeKind_HResult = 0x0003, +RDI_TypeKind_Char8 = 0x0004, +RDI_TypeKind_Char16 = 0x0005, +RDI_TypeKind_Char32 = 0x0006, +RDI_TypeKind_UChar8 = 0x0007, +RDI_TypeKind_UChar16 = 0x0008, +RDI_TypeKind_UChar32 = 0x0009, +RDI_TypeKind_U8 = 0x000A, +RDI_TypeKind_U16 = 0x000B, +RDI_TypeKind_U32 = 0x000C, +RDI_TypeKind_U64 = 0x000D, +RDI_TypeKind_U128 = 0x000E, +RDI_TypeKind_U256 = 0x000F, +RDI_TypeKind_U512 = 0x0010, +RDI_TypeKind_S8 = 0x0011, +RDI_TypeKind_S16 = 0x0012, +RDI_TypeKind_S32 = 0x0013, +RDI_TypeKind_S64 = 0x0014, +RDI_TypeKind_S128 = 0x0015, +RDI_TypeKind_S256 = 0x0016, +RDI_TypeKind_S512 = 0x0017, +RDI_TypeKind_Bool = 0x0018, +RDI_TypeKind_F16 = 0x0019, +RDI_TypeKind_F32 = 0x001A, +RDI_TypeKind_F32PP = 0x001B, +RDI_TypeKind_F48 = 0x001C, +RDI_TypeKind_F64 = 0x001D, +RDI_TypeKind_F80 = 0x001E, +RDI_TypeKind_F128 = 0x001F, +RDI_TypeKind_ComplexF32 = 0x0020, +RDI_TypeKind_ComplexF64 = 0x0021, +RDI_TypeKind_ComplexF80 = 0x0022, +RDI_TypeKind_ComplexF128 = 0x0023, +RDI_TypeKind_Modifier = 0x1000, +RDI_TypeKind_Ptr = 0x1001, +RDI_TypeKind_LRef = 0x1002, +RDI_TypeKind_RRef = 0x1003, +RDI_TypeKind_Array = 0x1004, +RDI_TypeKind_Function = 0x1005, +RDI_TypeKind_Method = 0x1006, +RDI_TypeKind_MemberPtr = 0x1007, +RDI_TypeKind_Struct = 0x2000, +RDI_TypeKind_Class = 0x2001, +RDI_TypeKind_Union = 0x2002, +RDI_TypeKind_Enum = 0x2003, +RDI_TypeKind_Alias = 0x2004, +RDI_TypeKind_IncompleteStruct = 0x2005, +RDI_TypeKind_IncompleteUnion = 0x2006, +RDI_TypeKind_IncompleteClass = 0x2007, +RDI_TypeKind_IncompleteEnum = 0x2008, +RDI_TypeKind_Bitfield = 0xF000, +RDI_TypeKind_Variadic = 0xF001, +RDI_TypeKind_Count = 0xF002, +RDI_TypeKind_FirstBuiltIn = RDI_TypeKind_Void, +RDI_TypeKind_LastBuiltIn = RDI_TypeKind_ComplexF128, +RDI_TypeKind_FirstConstructed = RDI_TypeKind_Modifier, +RDI_TypeKind_LastConstructed = RDI_TypeKind_MemberPtr, +RDI_TypeKind_FirstUserDefined = RDI_TypeKind_Struct, +RDI_TypeKind_LastRecord = RDI_TypeKind_Union, +RDI_TypeKind_FirstIncomplete = RDI_TypeKind_IncompleteStruct, +RDI_TypeKind_LastIncomplete = RDI_TypeKind_IncompleteEnum, +RDI_TypeKind_FirstRecord = RDI_TypeKind_Struct, +RDI_TypeKind_LastUserDefined = RDI_TypeKind_IncompleteEnum, +} RDI_TypeKindEnum; + +typedef RDI_U16 RDI_TypeModifierFlags; +typedef enum RDI_TypeModifierFlagsEnum +{ +RDI_TypeModifierFlag_Const = 1<<0, +RDI_TypeModifierFlag_Volatile = 1<<1, +RDI_TypeModifierFlag_Restrict = 1<<2, +} RDI_TypeModifierFlagsEnum; + +typedef RDI_U32 RDI_UDTFlags; +typedef enum RDI_UDTFlagsEnum +{ +RDI_UDTFlag_EnumMembers = 1<<0, +} RDI_UDTFlagsEnum; + +typedef RDI_U16 RDI_MemberKind; +typedef enum RDI_MemberKindEnum +{ +RDI_MemberKind_NULL = 0x0000, +RDI_MemberKind_DataField = 0x0001, +RDI_MemberKind_StaticData = 0x0002, +RDI_MemberKind_Method = 0x0100, +RDI_MemberKind_StaticMethod = 0x0101, +RDI_MemberKind_VirtualMethod = 0x0102, +RDI_MemberKind_VTablePtr = 0x0200, +RDI_MemberKind_Base = 0x0201, +RDI_MemberKind_VirtualBase = 0x0202, +RDI_MemberKind_NestedType = 0x0300, +} RDI_MemberKindEnum; + +typedef RDI_U32 RDI_LinkFlags; +typedef enum RDI_LinkFlagsEnum +{ +RDI_LinkFlag_External = 1<<0, +RDI_LinkFlag_TypeScoped = 1<<1, +RDI_LinkFlag_ProcScoped = 1<<2, +} RDI_LinkFlagsEnum; + +typedef RDI_U32 RDI_LocalKind; +typedef enum RDI_LocalKindEnum +{ +RDI_LocalKind_NULL = 0x0, +RDI_LocalKind_Parameter = 0x1, +RDI_LocalKind_Variable = 0x2, +} RDI_LocalKindEnum; + +typedef RDI_U8 RDI_LocationKind; +typedef enum RDI_LocationKindEnum +{ +RDI_LocationKind_NULL = 0x0, +RDI_LocationKind_AddrBytecodeStream = 0x1, +RDI_LocationKind_ValBytecodeStream = 0x2, +RDI_LocationKind_AddrRegPlusU16 = 0x3, +RDI_LocationKind_AddrAddrRegPlusU16 = 0x4, +RDI_LocationKind_ValReg = 0x5, +} RDI_LocationKindEnum; + +typedef RDI_U8 RDI_EvalOp; +typedef enum RDI_EvalOpEnum +{ +RDI_EvalOp_Stop = 0, +RDI_EvalOp_Noop = 1, +RDI_EvalOp_Cond = 2, +RDI_EvalOp_Skip = 3, +RDI_EvalOp_MemRead = 4, +RDI_EvalOp_RegRead = 5, +RDI_EvalOp_RegReadDyn = 6, +RDI_EvalOp_FrameOff = 7, +RDI_EvalOp_ModuleOff = 8, +RDI_EvalOp_TLSOff = 9, +RDI_EvalOp_ObjectOff = 10, +RDI_EvalOp_CFA = 11, +RDI_EvalOp_ConstU8 = 12, +RDI_EvalOp_ConstU16 = 13, +RDI_EvalOp_ConstU32 = 14, +RDI_EvalOp_ConstU64 = 15, +RDI_EvalOp_ConstU128 = 16, +RDI_EvalOp_ConstString = 17, +RDI_EvalOp_Abs = 18, +RDI_EvalOp_Neg = 19, +RDI_EvalOp_Add = 20, +RDI_EvalOp_Sub = 21, +RDI_EvalOp_Mul = 22, +RDI_EvalOp_Div = 23, +RDI_EvalOp_Mod = 24, +RDI_EvalOp_LShift = 25, +RDI_EvalOp_RShift = 26, +RDI_EvalOp_BitAnd = 27, +RDI_EvalOp_BitOr = 28, +RDI_EvalOp_BitXor = 29, +RDI_EvalOp_BitNot = 30, +RDI_EvalOp_LogAnd = 31, +RDI_EvalOp_LogOr = 32, +RDI_EvalOp_LogNot = 33, +RDI_EvalOp_EqEq = 34, +RDI_EvalOp_NtEq = 35, +RDI_EvalOp_LsEq = 36, +RDI_EvalOp_GrEq = 37, +RDI_EvalOp_Less = 38, +RDI_EvalOp_Grtr = 39, +RDI_EvalOp_Trunc = 40, +RDI_EvalOp_TruncSigned = 41, +RDI_EvalOp_Convert = 42, +RDI_EvalOp_Pick = 43, +RDI_EvalOp_Pop = 44, +RDI_EvalOp_Insert = 45, +RDI_EvalOp_ValueRead = 46, +RDI_EvalOp_ByteSwap = 47, +RDI_EvalOp_CallSiteValue = 48, +RDI_EvalOp_PartialValue = 49, +RDI_EvalOp_PartialValueBit = 50, +RDI_EvalOp_COUNT = 51, +} RDI_EvalOpEnum; + +typedef RDI_U8 RDI_EvalTypeGroup; +typedef enum RDI_EvalTypeGroupEnum +{ +RDI_EvalTypeGroup_Other = 0, +RDI_EvalTypeGroup_U = 1, +RDI_EvalTypeGroup_S = 2, +RDI_EvalTypeGroup_F32 = 3, +RDI_EvalTypeGroup_F64 = 4, +RDI_EvalTypeGroup_COUNT = 5, +} RDI_EvalTypeGroupEnum; + +typedef RDI_U8 RDI_EvalConversionKind; +typedef enum RDI_EvalConversionKindEnum +{ +RDI_EvalConversionKind_Noop = 0, +RDI_EvalConversionKind_Legal = 1, +RDI_EvalConversionKind_OtherToOther = 2, +RDI_EvalConversionKind_ToOther = 3, +RDI_EvalConversionKind_FromOther = 4, +RDI_EvalConversionKind_COUNT = 5, +} RDI_EvalConversionKindEnum; + +typedef RDI_U32 RDI_NameMapKind; +typedef enum RDI_NameMapKindEnum +{ +RDI_NameMapKind_NULL = 0, +RDI_NameMapKind_GlobalVariables = 1, +RDI_NameMapKind_ThreadVariables = 2, +RDI_NameMapKind_Constants = 3, +RDI_NameMapKind_Procedures = 4, +RDI_NameMapKind_Types = 5, +RDI_NameMapKind_LinkNameProcedures = 6, +RDI_NameMapKind_NormalSourcePaths = 7, +RDI_NameMapKind_COUNT = 8, +} RDI_NameMapKindEnum; + +#define RDI_Header_XList \ +X(RDI_U64, magic)\ +X(RDI_U32, encoding_version)\ +X(RDI_U32, data_section_off)\ +X(RDI_U32, data_section_count)\ + +#define RDI_SectionKind_XList \ +X(NULL, null, RDI_U8)\ +X(TopLevelInfo, top_level_info, RDI_TopLevelInfo)\ +X(StringData, string_data, RDI_U8)\ +X(StringTable, string_table, RDI_U32)\ +X(IndexRuns, index_runs, RDI_U32)\ +X(BinarySections, binary_sections, RDI_BinarySection)\ +X(FilePathNodes, file_path_nodes, RDI_FilePathNode)\ +X(SourceFiles, source_files, RDI_SourceFile)\ +X(LineTables, line_tables, RDI_LineTable)\ +X(LineInfoVOffs, line_info_voffs, RDI_U64)\ +X(LineInfoLines, line_info_lines, RDI_Line)\ +X(LineInfoColumns, line_info_columns, RDI_Column)\ +X(SourceLineMaps, source_line_maps, RDI_SourceLineMap)\ +X(SourceLineMapNumbers, source_line_map_numbers, RDI_U32)\ +X(SourceLineMapRanges, source_line_map_ranges, RDI_U32)\ +X(SourceLineMapVOffs, source_line_map_voffs, RDI_U64)\ +X(Units, units, RDI_Unit)\ +X(UnitVMap, unit_vmap, RDI_VMapEntry)\ +X(TypeNodes, type_nodes, RDI_TypeNode)\ +X(UDTs, udts, RDI_UDT)\ +X(Members, members, RDI_Member)\ +X(EnumMembers, enum_members, RDI_EnumMember)\ +X(GlobalVariables, global_variables, RDI_GlobalVariable)\ +X(GlobalVMap, global_vmap, RDI_VMapEntry)\ +X(ThreadVariables, thread_variables, RDI_ThreadVariable)\ +X(Constants, constants, RDI_Constant)\ +X(Procedures, procedures, RDI_Procedure)\ +X(Scopes, scopes, RDI_Scope)\ +X(ScopeVOffData, scope_voff_data, RDI_U64)\ +X(ScopeVMap, scope_vmap, RDI_VMapEntry)\ +X(InlineSites, inline_sites, RDI_InlineSite)\ +X(Locals, locals, RDI_Local)\ +X(LocationBlocks, location_blocks, RDI_LocationBlock)\ +X(LocationData, location_data, RDI_U8)\ +X(ConstantValueData, constant_value_data, RDI_U8)\ +X(ConstantValueTable, constant_value_table, RDI_U32)\ +X(NameMaps, name_maps, RDI_NameMap)\ +X(NameMapBuckets, name_map_buckets, RDI_NameMapBucket)\ +X(NameMapNodes, name_map_nodes, RDI_NameMapNode)\ + +#define RDI_SectionEncoding_XList \ +X(Unpacked)\ +X(LZB)\ + +#define RDI_Section_XList \ +X(RDI_SectionEncoding, encoding)\ +X(RDI_U32, pad)\ +X(RDI_U64, off)\ +X(RDI_U64, encoded_size)\ +X(RDI_U64, unpacked_size)\ + +#define RDI_VMapEntry_XList \ +X(RDI_U64, voff)\ +X(RDI_U64, idx)\ + +#define RDI_Arch_XList \ +X(NULL)\ +X(X86)\ +X(X64)\ + +#define RDI_RegCodeX86_XList \ +X(nil, 0)\ +X(eax, 1)\ +X(ecx, 2)\ +X(edx, 3)\ +X(ebx, 4)\ +X(esp, 5)\ +X(ebp, 6)\ +X(esi, 7)\ +X(edi, 8)\ +X(fsbase, 9)\ +X(gsbase, 10)\ +X(eflags, 11)\ +X(eip, 12)\ +X(dr0, 13)\ +X(dr1, 14)\ +X(dr2, 15)\ +X(dr3, 16)\ +X(dr4, 17)\ +X(dr5, 18)\ +X(dr6, 19)\ +X(dr7, 20)\ +X(fpr0, 21)\ +X(fpr1, 22)\ +X(fpr2, 23)\ +X(fpr3, 24)\ +X(fpr4, 25)\ +X(fpr5, 26)\ +X(fpr6, 27)\ +X(fpr7, 28)\ +X(st0, 29)\ +X(st1, 30)\ +X(st2, 31)\ +X(st3, 32)\ +X(st4, 33)\ +X(st5, 34)\ +X(st6, 35)\ +X(st7, 36)\ +X(fcw, 37)\ +X(fsw, 38)\ +X(ftw, 39)\ +X(fop, 40)\ +X(fcs, 41)\ +X(fds, 42)\ +X(fip, 43)\ +X(fdp, 44)\ +X(mxcsr, 45)\ +X(mxcsr_mask, 46)\ +X(ss, 47)\ +X(cs, 48)\ +X(ds, 49)\ +X(es, 50)\ +X(fs, 51)\ +X(gs, 52)\ +X(ymm0, 53)\ +X(ymm1, 54)\ +X(ymm2, 55)\ +X(ymm3, 56)\ +X(ymm4, 57)\ +X(ymm5, 58)\ +X(ymm6, 59)\ +X(ymm7, 60)\ + +#define RDI_RegCodeX64_XList \ +X(nil, 0)\ +X(rax, 1)\ +X(rcx, 2)\ +X(rdx, 3)\ +X(rbx, 4)\ +X(rsp, 5)\ +X(rbp, 6)\ +X(rsi, 7)\ +X(rdi, 8)\ +X(r8, 9)\ +X(r9, 10)\ +X(r10, 11)\ +X(r11, 12)\ +X(r12, 13)\ +X(r13, 14)\ +X(r14, 15)\ +X(r15, 16)\ +X(es, 17)\ +X(cs, 18)\ +X(ss, 19)\ +X(ds, 20)\ +X(fs, 21)\ +X(gs, 22)\ +X(rip, 23)\ +X(rflags, 24)\ +X(dr0, 25)\ +X(dr1, 26)\ +X(dr2, 27)\ +X(dr3, 28)\ +X(dr4, 29)\ +X(dr5, 30)\ +X(dr6, 31)\ +X(dr7, 32)\ +X(st0, 33)\ +X(st1, 34)\ +X(st2, 35)\ +X(st3, 36)\ +X(st4, 37)\ +X(st5, 38)\ +X(st6, 39)\ +X(st7, 40)\ +X(fpr0, 41)\ +X(fpr1, 42)\ +X(fpr2, 43)\ +X(fpr3, 44)\ +X(fpr4, 45)\ +X(fpr5, 46)\ +X(fpr6, 47)\ +X(fpr7, 48)\ +X(zmm0, 49)\ +X(zmm1, 50)\ +X(zmm2, 51)\ +X(zmm3, 52)\ +X(zmm4, 53)\ +X(zmm5, 54)\ +X(zmm6, 55)\ +X(zmm7, 56)\ +X(zmm8, 57)\ +X(zmm9, 58)\ +X(zmm10, 59)\ +X(zmm11, 60)\ +X(zmm12, 61)\ +X(zmm13, 62)\ +X(zmm14, 63)\ +X(zmm15, 64)\ +X(zmm16, 65)\ +X(zmm17, 66)\ +X(zmm18, 67)\ +X(zmm19, 68)\ +X(zmm20, 69)\ +X(zmm21, 70)\ +X(zmm22, 71)\ +X(zmm23, 72)\ +X(zmm24, 73)\ +X(zmm25, 74)\ +X(zmm26, 75)\ +X(zmm27, 76)\ +X(zmm28, 77)\ +X(zmm29, 78)\ +X(zmm30, 79)\ +X(zmm31, 80)\ +X(k0, 81)\ +X(k1, 82)\ +X(k2, 83)\ +X(k3, 84)\ +X(k4, 85)\ +X(k5, 86)\ +X(k6, 87)\ +X(k7, 88)\ +X(mxcsr, 89)\ +X(fsbase, 90)\ +X(gsbase, 91)\ +X(fcw, 92)\ +X(fsw, 93)\ +X(ftw, 94)\ +X(fop, 95)\ +X(fcs, 96)\ +X(fds, 97)\ +X(fip, 98)\ +X(fdp, 99)\ +X(mxcsr_mask, 100)\ + +#define RDI_TopLevelInfo_XList \ +X(RDI_Arch, arch)\ +X(RDI_U32, exe_name_string_idx)\ +X(RDI_U64, exe_hash)\ +X(RDI_U64, voff_max)\ +X(RDI_U32, producer_name_string_idx)\ + +#define RDI_BinarySectionFlags_XList \ +X(Read)\ +X(Write)\ +X(Execute)\ + +#define RDI_BinarySection_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_BinarySectionFlags, flags)\ +X(RDI_U64, voff_first)\ +X(RDI_U64, voff_opl)\ +X(RDI_U64, foff_first)\ +X(RDI_U64, foff_opl)\ + +#define RDI_FilePathNode_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, parent_path_node)\ +X(RDI_U32, first_child)\ +X(RDI_U32, next_sibling)\ +X(RDI_U32, source_file_idx)\ + +#define RDI_SourceFile_XList \ +X(RDI_U32, file_path_node_idx)\ +X(RDI_U32, normal_full_path_string_idx)\ +X(RDI_U32, source_line_map_idx)\ + +#define RDI_Unit_XList \ +X(RDI_U32, unit_name_string_idx)\ +X(RDI_U32, compiler_name_string_idx)\ +X(RDI_U32, source_file_path_node)\ +X(RDI_U32, object_file_path_node)\ +X(RDI_U32, archive_file_path_node)\ +X(RDI_U32, build_path_node)\ +X(RDI_Language, language)\ +X(RDI_U32, line_table_idx)\ + +#define RDI_LineTable_XList \ +X(RDI_U32, voffs_base_idx)\ +X(RDI_U32, lines_base_idx)\ +X(RDI_U32, cols_base_idx)\ +X(RDI_U32, lines_count)\ +X(RDI_U32, cols_count)\ + +#define RDI_Line_XList \ +X(RDI_U32, file_idx)\ +X(RDI_U32, line_num)\ + +#define RDI_Column_XList \ +X(RDI_U16, col_first)\ +X(RDI_U16, col_opl)\ + +#define RDI_SourceLineMapMemberTable \ +X(RDI_U32, line_count)\ +X(RDI_U32, voff_count)\ +X(RDI_U32, line_map_nums_base_idx)\ +X(RDI_U32, line_map_range_base_idx)\ +X(RDI_U32, line_map_voff_base_idx)\ + +#define RDI_Language_XList \ +X(NULL)\ +X(C)\ +X(CPlusPlus)\ +X(Masm)\ +X(COUNT)\ + +#define RDI_TypeKind_XList \ +X(NULL)\ +X(Void)\ +X(Handle)\ +X(HResult)\ +X(Char8)\ +X(Char16)\ +X(Char32)\ +X(UChar8)\ +X(UChar16)\ +X(UChar32)\ +X(U8)\ +X(U16)\ +X(U32)\ +X(U64)\ +X(U128)\ +X(U256)\ +X(U512)\ +X(S8)\ +X(S16)\ +X(S32)\ +X(S64)\ +X(S128)\ +X(S256)\ +X(S512)\ +X(Bool)\ +X(F16)\ +X(F32)\ +X(F32PP)\ +X(F48)\ +X(F64)\ +X(F80)\ +X(F128)\ +X(ComplexF32)\ +X(ComplexF64)\ +X(ComplexF80)\ +X(ComplexF128)\ +X(Modifier)\ +X(Ptr)\ +X(LRef)\ +X(RRef)\ +X(Array)\ +X(Function)\ +X(Method)\ +X(MemberPtr)\ +X(Struct)\ +X(Class)\ +X(Union)\ +X(Enum)\ +X(Alias)\ +X(IncompleteStruct)\ +X(IncompleteUnion)\ +X(IncompleteClass)\ +X(IncompleteEnum)\ +X(Bitfield)\ +X(Variadic)\ +X(Count)\ + +#define RDI_TypeModifierFlags_XList \ +X(Const)\ +X(Volatile)\ +X(Restrict)\ + +#define RDI_TypeNode_XList \ +X(RDI_TypeKind, kind)\ +X(RDI_U16, flags)\ +X(RDI_U32, byte_size)\ + +#define RDI_UDTFlags_XList \ +X(EnumMembers)\ + +#define RDI_UDT_XList \ +X(RDI_U32, self_type_idx)\ +X(RDI_UDTFlags, flags)\ +X(RDI_U32, member_first)\ +X(RDI_U32, member_count)\ +X(RDI_U32, file_idx)\ +X(RDI_U32, line)\ +X(RDI_U32, col)\ + +#define RDI_MemberKind_XList \ +X(NULL)\ +X(DataField)\ +X(StaticData)\ +X(Method)\ +X(StaticMethod)\ +X(VirtualMethod)\ +X(VTablePtr)\ +X(Base)\ +X(VirtualBase)\ +X(NestedType)\ + +#define RDI_Member_XList \ +X(RDI_MemberKind, kind)\ +X(RDI_U16, pad)\ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, type_idx)\ +X(RDI_U32, off)\ + +#define RDI_EnumMember_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, pad)\ +X(RDI_U64, val)\ + +#define RDI_LinkFlags_XList \ +X(External)\ +X(TypeScoped)\ +X(ProcScoped)\ + +#define RDI_LocalKind_XList \ +X(NULL)\ +X(Parameter)\ +X(Variable)\ + +#define RDI_LocationKind_XList \ +X(NULL)\ +X(AddrBytecodeStream)\ +X(ValBytecodeStream)\ +X(AddrRegPlusU16)\ +X(AddrAddrRegPlusU16)\ +X(ValReg)\ + +#define RDI_GlobalVariable_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_LinkFlags, link_flags)\ +X(RDI_U64, voff)\ +X(RDI_U32, type_idx)\ +X(RDI_U32, container_idx)\ + +#define RDI_ThreadVariable_XList \ +X(type, name_string_idx)\ +X(type, link_flags)\ +X(type, tls_off)\ +X(type, type_idx)\ +X(type, container_idx)\ + +#define RDI_Procedure_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, link_name_string_idx)\ +X(RDI_LinkFlags, link_flags)\ +X(RDI_U32, type_idx)\ +X(RDI_U32, root_scope_idx)\ +X(RDI_U32, container_idx)\ +X(RDI_U32, frame_base_location_first)\ +X(RDI_U32, frame_base_location_opl)\ + +#define RDI_Scope_XList \ +X(RDI_U32, proc_idx)\ +X(RDI_U32, parent_scope_idx)\ +X(RDI_U32, first_child_scope_idx)\ +X(RDI_U32, next_sibling_scope_idx)\ +X(RDI_U32, voff_range_first)\ +X(RDI_U32, voff_range_opl)\ +X(RDI_U32, local_first)\ +X(RDI_U32, local_count)\ +X(RDI_U32, static_local_idx_run_first)\ +X(RDI_U32, static_local_count)\ +X(RDI_U32, inline_site_idx)\ + +#define RDI_InlineSite_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, type_idx)\ +X(RDI_U32, owner_type_idx)\ +X(RDI_U32, line_table_idx)\ + +#define RDI_Local_XList \ +X(RDI_LocalKind, kind)\ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, type_idx)\ +X(RDI_U32, pad)\ +X(RDI_U32, location_first)\ +X(RDI_U32, location_opl)\ + +#define RDI_LocationBlock_XList \ +X(RDI_U32, scope_off_first)\ +X(RDI_U32, scope_off_opl)\ +X(RDI_U32, location_data_off)\ + +#define RDI_LocationBytecodeStream_XList \ +X(RDI_LocationKind, kind)\ + +#define RDI_LocationRegPlusU16_XList \ +X(RDI_LocationKind, kind)\ +X(RDI_RegCode, reg_code)\ +X(RDI_U16, offset)\ + +#define RDI_LocationReg_XList \ +X(RDI_LocationKind, kind)\ +X(RDI_RegCode, reg_code)\ + +#define RDI_EvalOp_XList \ +X(Stop)\ +X(Noop)\ +X(Cond)\ +X(Skip)\ +X(MemRead)\ +X(RegRead)\ +X(RegReadDyn)\ +X(FrameOff)\ +X(ModuleOff)\ +X(TLSOff)\ +X(ObjectOff)\ +X(CFA)\ +X(ConstU8)\ +X(ConstU16)\ +X(ConstU32)\ +X(ConstU64)\ +X(ConstU128)\ +X(ConstString)\ +X(Abs)\ +X(Neg)\ +X(Add)\ +X(Sub)\ +X(Mul)\ +X(Div)\ +X(Mod)\ +X(LShift)\ +X(RShift)\ +X(BitAnd)\ +X(BitOr)\ +X(BitXor)\ +X(BitNot)\ +X(LogAnd)\ +X(LogOr)\ +X(LogNot)\ +X(EqEq)\ +X(NtEq)\ +X(LsEq)\ +X(GrEq)\ +X(Less)\ +X(Grtr)\ +X(Trunc)\ +X(TruncSigned)\ +X(Convert)\ +X(Pick)\ +X(Pop)\ +X(Insert)\ +X(ValueRead)\ +X(ByteSwap)\ +X(CallSiteValue)\ +X(PartialValue)\ +X(PartialValueBit)\ + +#define RDI_EvalTypeGroup_XList \ +X(Other)\ +X(U)\ +X(S)\ +X(F32)\ +X(F64)\ + +#define RDI_EvalConversionKind_XList \ +X(Noop)\ +X(Legal)\ +X(OtherToOther)\ +X(ToOther)\ +X(FromOther)\ + +#define RDI_NameMapKind_XList \ +X(NULL)\ +X(GlobalVariables)\ +X(ThreadVariables)\ +X(Constants)\ +X(Procedures)\ +X(Types)\ +X(LinkNameProcedures)\ +X(NormalSourcePaths)\ + +#define RDI_NameMap_XList \ +X(RDI_U32, bucket_base_idx)\ +X(RDI_U32, node_base_idx)\ +X(RDI_U32, bucket_count)\ +X(RDI_U32, node_count)\ + +#define RDI_NameMapBucket_XList \ +X(RDI_U32, first_node)\ +X(RDI_U32, node_count)\ + +#define RDI_NameMapNode_XList \ +X(RDI_U32, string_idx)\ +X(RDI_U32, match_count)\ +X(RDI_U32, match_idx_or_idx_run_first)\ + +#if !RDI_DISABLE_TABLE_INDEX_TYPECHECKING +typedef struct RDI_U32_StringTable { RDI_U32 v; } RDI_U32_StringTable; +typedef struct RDI_U32_IndexRuns { RDI_U32 v; } RDI_U32_IndexRuns; +typedef struct RDI_U32_BinarySections { RDI_U32 v; } RDI_U32_BinarySections; +typedef struct RDI_U32_FilePathNodes { RDI_U32 v; } RDI_U32_FilePathNodes; +typedef struct RDI_U32_SourceFiles { RDI_U32 v; } RDI_U32_SourceFiles; +typedef struct RDI_U32_LineTables { RDI_U32 v; } RDI_U32_LineTables; +typedef struct RDI_U32_LineInfoVOffs { RDI_U32 v; } RDI_U32_LineInfoVOffs; +typedef struct RDI_U32_LineInfoLines { RDI_U32 v; } RDI_U32_LineInfoLines; +typedef struct RDI_U32_LineInfoColumns { RDI_U32 v; } RDI_U32_LineInfoColumns; +typedef struct RDI_U32_SourceLineMaps { RDI_U32 v; } RDI_U32_SourceLineMaps; +typedef struct RDI_U32_SourceLineMapNumbers { RDI_U32 v; } RDI_U32_SourceLineMapNumbers; +typedef struct RDI_U32_SourceLineMapRanges { RDI_U32 v; } RDI_U32_SourceLineMapRanges; +typedef struct RDI_U32_SourceLineMapVOffs { RDI_U32 v; } RDI_U32_SourceLineMapVOffs; +typedef struct RDI_U32_Units { RDI_U32 v; } RDI_U32_Units; +typedef struct RDI_U32_TypeNodes { RDI_U32 v; } RDI_U32_TypeNodes; +typedef struct RDI_U32_UDTs { RDI_U32 v; } RDI_U32_UDTs; +typedef struct RDI_U32_Members { RDI_U32 v; } RDI_U32_Members; +typedef struct RDI_U32_EnumMembers { RDI_U32 v; } RDI_U32_EnumMembers; +typedef struct RDI_U32_GlobalVariables { RDI_U32 v; } RDI_U32_GlobalVariables; +typedef struct RDI_U32_ThreadVariables { RDI_U32 v; } RDI_U32_ThreadVariables; +typedef struct RDI_U32_Constants { RDI_U32 v; } RDI_U32_Constants; +typedef struct RDI_U32_Procedures { RDI_U32 v; } RDI_U32_Procedures; +typedef struct RDI_U32_Scopes { RDI_U32 v; } RDI_U32_Scopes; +typedef struct RDI_U32_ScopeVOffData { RDI_U32 v; } RDI_U32_ScopeVOffData; +typedef struct RDI_U32_InlineSites { RDI_U32 v; } RDI_U32_InlineSites; +typedef struct RDI_U32_Locals { RDI_U32 v; } RDI_U32_Locals; +typedef struct RDI_U32_LocationBlocks { RDI_U32 v; } RDI_U32_LocationBlocks; +typedef struct RDI_U32_LocationData { RDI_U32 v; } RDI_U32_LocationData; +typedef struct RDI_U32_ConstantValueData { RDI_U32 v; } RDI_U32_ConstantValueData; +typedef struct RDI_U32_ConstantValueTable { RDI_U32 v; } RDI_U32_ConstantValueTable; +typedef struct RDI_U32_NameMaps { RDI_U32 v; } RDI_U32_NameMaps; +typedef struct RDI_U32_NameMapBuckets { RDI_U32 v; } RDI_U32_NameMapBuckets; +typedef struct RDI_U32_NameMapNodes { RDI_U32 v; } RDI_U32_NameMapNodes; +#else +typedef struct RDI_U32_Table { RDI_U32 v; } RDI_U32_Table; +typedef struct RDI_U64_Table { RDI_U64 v; } RDI_U64_Table; +typedef RDI_U32_Table RDI_U32_StringTable; +typedef RDI_U32_Table RDI_U32_IndexRuns; +typedef RDI_U32_Table RDI_U32_BinarySections; +typedef RDI_U32_Table RDI_U32_FilePathNodes; +typedef RDI_U32_Table RDI_U32_SourceFiles; +typedef RDI_U32_Table RDI_U32_LineTables; +typedef RDI_U32_Table RDI_U32_LineInfoVOffs; +typedef RDI_U32_Table RDI_U32_LineInfoLines; +typedef RDI_U32_Table RDI_U32_LineInfoColumns; +typedef RDI_U32_Table RDI_U32_SourceLineMaps; +typedef RDI_U32_Table RDI_U32_SourceLineMapNumbers; +typedef RDI_U32_Table RDI_U32_SourceLineMapRanges; +typedef RDI_U32_Table RDI_U32_SourceLineMapVOffs; +typedef RDI_U32_Table RDI_U32_Units; +typedef RDI_U32_Table RDI_U32_TypeNodes; +typedef RDI_U32_Table RDI_U32_UDTs; +typedef RDI_U32_Table RDI_U32_Members; +typedef RDI_U32_Table RDI_U32_EnumMembers; +typedef RDI_U32_Table RDI_U32_GlobalVariables; +typedef RDI_U32_Table RDI_U32_ThreadVariables; +typedef RDI_U32_Table RDI_U32_Constants; +typedef RDI_U32_Table RDI_U32_Procedures; +typedef RDI_U32_Table RDI_U32_Scopes; +typedef RDI_U32_Table RDI_U32_ScopeVOffData; +typedef RDI_U32_Table RDI_U32_InlineSites; +typedef RDI_U32_Table RDI_U32_Locals; +typedef RDI_U32_Table RDI_U32_LocationBlocks; +typedef RDI_U32_Table RDI_U32_LocationData; +typedef RDI_U32_Table RDI_U32_ConstantValueData; +typedef RDI_U32_Table RDI_U32_ConstantValueTable; +typedef RDI_U32_Table RDI_U32_NameMaps; +typedef RDI_U32_Table RDI_U32_NameMapBuckets; +typedef RDI_U32_Table RDI_U32_NameMapNodes; +#endif + +#define RDI_EVAL_CTRLBITS(decodeN,popN,pushN) (((decodeN) << 8) | ((popN) << 4) | ((pushN) << 0)) +#define RDI_DECODEN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 8) & 0xff) +#define RDI_POPN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 4) & 0xf) +#define RDI_PUSHN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 0) & 0xf) +#define RDI_EncodeRegReadParam(reg,bytesize,bytepos) ((reg)|((bytesize)<<8)|((bytepos)<<16)) + +typedef struct RDI_Header RDI_Header; +struct RDI_Header +{ +RDI_U64 magic; +RDI_U32 encoding_version; +RDI_U32 data_section_off; +RDI_U32 data_section_count; +}; + +typedef struct RDI_Section RDI_Section; +struct RDI_Section +{ +RDI_SectionEncoding encoding; +RDI_U32 pad; +RDI_U64 off; +RDI_U64 encoded_size; +RDI_U64 unpacked_size; +}; + +typedef struct RDI_VMapEntry RDI_VMapEntry; +struct RDI_VMapEntry +{ +RDI_U64 voff; +RDI_U64 idx; +}; + +typedef struct RDI_TopLevelInfo RDI_TopLevelInfo; +struct RDI_TopLevelInfo +{ +RDI_Arch arch; +RDI_U32 exe_name_string_idx; +RDI_U64 exe_hash; +RDI_U64 voff_max; +RDI_U32 producer_name_string_idx; +}; + +typedef struct RDI_BinarySection RDI_BinarySection; +struct RDI_BinarySection +{ +RDI_U32 name_string_idx; +RDI_BinarySectionFlags flags; +RDI_U64 voff_first; +RDI_U64 voff_opl; +RDI_U64 foff_first; +RDI_U64 foff_opl; +}; + +typedef struct RDI_FilePathNode RDI_FilePathNode; +struct RDI_FilePathNode +{ +RDI_U32 name_string_idx; +RDI_U32 parent_path_node; +RDI_U32 first_child; +RDI_U32 next_sibling; +RDI_U32 source_file_idx; +}; + +typedef struct RDI_SourceFile RDI_SourceFile; +struct RDI_SourceFile +{ +RDI_U32 file_path_node_idx; +RDI_U32 normal_full_path_string_idx; +RDI_U32 source_line_map_idx; +}; + +typedef struct RDI_Unit RDI_Unit; +struct RDI_Unit +{ +RDI_U32 unit_name_string_idx; +RDI_U32 compiler_name_string_idx; +RDI_U32 source_file_path_node; +RDI_U32 object_file_path_node; +RDI_U32 archive_file_path_node; +RDI_U32 build_path_node; +RDI_Language language; +RDI_U32 line_table_idx; +}; + +typedef struct RDI_LineTable RDI_LineTable; +struct RDI_LineTable +{ +RDI_U32 voffs_base_idx; +RDI_U32 lines_base_idx; +RDI_U32 cols_base_idx; +RDI_U32 lines_count; +RDI_U32 cols_count; +}; + +typedef struct RDI_Line RDI_Line; +struct RDI_Line +{ +RDI_U32 file_idx; +RDI_U32 line_num; +}; + +typedef struct RDI_Column RDI_Column; +struct RDI_Column +{ +RDI_U16 col_first; +RDI_U16 col_opl; +}; + +typedef struct RDI_SourceLineMap RDI_SourceLineMap; +struct RDI_SourceLineMap +{ +RDI_U32 line_count; +RDI_U32 voff_count; +RDI_U32 line_map_nums_base_idx; +RDI_U32 line_map_range_base_idx; +RDI_U32 line_map_voff_base_idx; +}; + +typedef struct RDI_TypeNode RDI_TypeNode; +struct RDI_TypeNode +{ +RDI_TypeKind kind; +RDI_U16 flags; +RDI_U32 byte_size; + + union + { + // kind is 'built-in' + struct + { + RDI_U32 name_string_idx; + } built_in; + + // kind is 'constructed' + struct + { + RDI_U32 direct_type_idx; + RDI_U32 count; + union + { + // when kind is 'Function' or 'Method' + RDI_U32 param_idx_run_first; + // when kind is 'MemberPtr' + RDI_U32 owner_type_idx; + }; + } + constructed; + + // kind is 'user defined' + struct + { + RDI_U32 name_string_idx; + RDI_U32 direct_type_idx; + RDI_U32 udt_idx; + } + user_defined; + + // (kind = Bitfield) + struct + { + RDI_U32 direct_type_idx; + RDI_U32 off; + RDI_U32 size; + } + bitfield; + } + ; +}; + +typedef struct RDI_UDT RDI_UDT; +struct RDI_UDT +{ +RDI_U32 self_type_idx; +RDI_UDTFlags flags; +RDI_U32 member_first; +RDI_U32 member_count; +RDI_U32 file_idx; +RDI_U32 line; +RDI_U32 col; +}; + +typedef struct RDI_Member RDI_Member; +struct RDI_Member +{ +RDI_MemberKind kind; +RDI_U16 pad; +RDI_U32 name_string_idx; +RDI_U32 type_idx; +RDI_U32 off; +}; + +typedef struct RDI_EnumMember RDI_EnumMember; +struct RDI_EnumMember +{ +RDI_U32 name_string_idx; +RDI_U32 pad; +RDI_U64 val; +}; + +typedef struct RDI_GlobalVariable RDI_GlobalVariable; +struct RDI_GlobalVariable +{ +RDI_U32 name_string_idx; +RDI_LinkFlags link_flags; +RDI_U64 voff; +RDI_U32 type_idx; +RDI_U32 container_idx; +}; + +typedef struct RDI_ThreadVariable RDI_ThreadVariable; +struct RDI_ThreadVariable +{ +RDI_U32 name_string_idx; +RDI_LinkFlags link_flags; +RDI_U32 tls_off; +RDI_U32 type_idx; +RDI_U32 container_idx; +}; + +typedef struct RDI_Constant RDI_Constant; +struct RDI_Constant +{ +RDI_U32 name_string_idx; +RDI_U32 type_idx; +RDI_U32 constant_value_idx; +}; + +typedef struct RDI_Procedure RDI_Procedure; +struct RDI_Procedure +{ +RDI_U32 name_string_idx; +RDI_U32 link_name_string_idx; +RDI_LinkFlags link_flags; +RDI_U32 type_idx; +RDI_U32 root_scope_idx; +RDI_U32 container_idx; +RDI_U32 frame_base_location_first; +RDI_U32 frame_base_location_opl; +}; + +typedef struct RDI_Scope RDI_Scope; +struct RDI_Scope +{ +RDI_U32 proc_idx; +RDI_U32 parent_scope_idx; +RDI_U32 first_child_scope_idx; +RDI_U32 next_sibling_scope_idx; +RDI_U32 voff_range_first; +RDI_U32 voff_range_opl; +RDI_U32 local_first; +RDI_U32 local_count; +RDI_U32 static_local_idx_run_first; +RDI_U32 static_local_count; +RDI_U32 inline_site_idx; +}; + +typedef struct RDI_InlineSite RDI_InlineSite; +struct RDI_InlineSite +{ +RDI_U32 name_string_idx; +RDI_U32 type_idx; +RDI_U32 owner_type_idx; +RDI_U32 line_table_idx; +}; + +typedef struct RDI_Local RDI_Local; +struct RDI_Local +{ +RDI_LocalKind kind; +RDI_U32 name_string_idx; +RDI_U32 type_idx; +RDI_U32 pad; +RDI_U32 location_first; +RDI_U32 location_opl; +}; + +typedef struct RDI_LocationBlock RDI_LocationBlock; +struct RDI_LocationBlock +{ +RDI_U32 scope_off_first; +RDI_U32 scope_off_opl; +RDI_U32 location_data_off; +}; + +typedef struct RDI_LocationBytecodeStream RDI_LocationBytecodeStream; +struct RDI_LocationBytecodeStream +{ +RDI_LocationKind kind; +}; + +typedef struct RDI_LocationRegPlusU16 RDI_LocationRegPlusU16; +struct RDI_LocationRegPlusU16 +{ +RDI_LocationKind kind; +RDI_RegCode reg_code; +RDI_U16 offset; +}; + +typedef struct RDI_LocationReg RDI_LocationReg; +struct RDI_LocationReg +{ +RDI_LocationKind kind; +RDI_RegCode reg_code; +}; + +typedef struct RDI_NameMap RDI_NameMap; +struct RDI_NameMap +{ +RDI_U32 bucket_base_idx; +RDI_U32 node_base_idx; +RDI_U32 bucket_count; +RDI_U32 node_count; +}; + +typedef struct RDI_NameMapBucket RDI_NameMapBucket; +struct RDI_NameMapBucket +{ +RDI_U32 first_node; +RDI_U32 node_count; +}; + +typedef struct RDI_NameMapNode RDI_NameMapNode; +struct RDI_NameMapNode +{ +RDI_U32 string_idx; +RDI_U32 match_count; +RDI_U32 match_idx_or_idx_run_first; +}; + +typedef RDI_TopLevelInfo RDI_SectionElementType_TopLevelInfo; +typedef RDI_U8 RDI_SectionElementType_StringData; +typedef RDI_U32 RDI_SectionElementType_StringTable; +typedef RDI_U32 RDI_SectionElementType_IndexRuns; +typedef RDI_BinarySection RDI_SectionElementType_BinarySections; +typedef RDI_FilePathNode RDI_SectionElementType_FilePathNodes; +typedef RDI_SourceFile RDI_SectionElementType_SourceFiles; +typedef RDI_LineTable RDI_SectionElementType_LineTables; +typedef RDI_U64 RDI_SectionElementType_LineInfoVOffs; +typedef RDI_Line RDI_SectionElementType_LineInfoLines; +typedef RDI_Column RDI_SectionElementType_LineInfoColumns; +typedef RDI_SourceLineMap RDI_SectionElementType_SourceLineMaps; +typedef RDI_U32 RDI_SectionElementType_SourceLineMapNumbers; +typedef RDI_U32 RDI_SectionElementType_SourceLineMapRanges; +typedef RDI_U64 RDI_SectionElementType_SourceLineMapVOffs; +typedef RDI_Unit RDI_SectionElementType_Units; +typedef RDI_VMapEntry RDI_SectionElementType_UnitVMap; +typedef RDI_TypeNode RDI_SectionElementType_TypeNodes; +typedef RDI_UDT RDI_SectionElementType_UDTs; +typedef RDI_Member RDI_SectionElementType_Members; +typedef RDI_EnumMember RDI_SectionElementType_EnumMembers; +typedef RDI_GlobalVariable RDI_SectionElementType_GlobalVariables; +typedef RDI_VMapEntry RDI_SectionElementType_GlobalVMap; +typedef RDI_ThreadVariable RDI_SectionElementType_ThreadVariables; +typedef RDI_Constant RDI_SectionElementType_Constants; +typedef RDI_Procedure RDI_SectionElementType_Procedures; +typedef RDI_Scope RDI_SectionElementType_Scopes; +typedef RDI_U64 RDI_SectionElementType_ScopeVOffData; +typedef RDI_VMapEntry RDI_SectionElementType_ScopeVMap; +typedef RDI_InlineSite RDI_SectionElementType_InlineSites; +typedef RDI_Local RDI_SectionElementType_Locals; +typedef RDI_LocationBlock RDI_SectionElementType_LocationBlocks; +typedef RDI_U8 RDI_SectionElementType_LocationData; +typedef RDI_U8 RDI_SectionElementType_ConstantValueData; +typedef RDI_U32 RDI_SectionElementType_ConstantValueTable; +typedef RDI_NameMap RDI_SectionElementType_NameMaps; +typedef RDI_NameMapBucket RDI_SectionElementType_NameMapBuckets; +typedef RDI_NameMapNode RDI_SectionElementType_NameMapNodes; + +RDI_PROC RDI_U64 rdi_hash(RDI_U8 *ptr, RDI_U64 size); +RDI_PROC RDI_U8 *rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out); +RDI_PROC RDI_U32 rdi_size_from_basic_type_kind(RDI_TypeKind kind); +RDI_PROC RDI_U32 rdi_addr_size_from_arch(RDI_Arch arch); +RDI_PROC RDI_EvalConversionKind rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out); +RDI_PROC RDI_S32 rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group); +RDI_PROC RDI_U8 *rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out); + +extern RDI_U16 rdi_section_element_size_table[40]; +extern RDI_U8 rdi_section_is_required_table[40]; +extern RDI_U16 rdi_eval_op_ctrlbits_table[52]; + +#endif // RDI_H diff --git a/src/lib_rdi_format/rdi_format_parse.c b/src/lib_rdi/rdi_parse.c similarity index 100% rename from src/lib_rdi_format/rdi_format_parse.c rename to src/lib_rdi/rdi_parse.c diff --git a/src/lib_rdi_format/rdi_format_parse.h b/src/lib_rdi/rdi_parse.h similarity index 96% rename from src/lib_rdi_format/rdi_format_parse.h rename to src/lib_rdi/rdi_parse.h index f8b7e096..c5267b01 100644 --- a/src/lib_rdi_format/rdi_format_parse.h +++ b/src/lib_rdi/rdi_parse.h @@ -1,233 +1,233 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////////////////////////////////////// -//~ RAD Debug Info, (R)AD(D)BG(I) Format Parsing Library -// -// Defines helper types and functions for extracting data from -// RDI files. - -//////////////////////////////////////////////////////////////// -//~ Usage Samples -// -#if 0 -// Procedure Name -> Line -{ - RDI_Parsed *rdi = ...; - char *name = "mule_main"; - RDI_Procedure *procedure = rdi_procedure_from_name_cstr(rdi, name); // 1. name -> procedure - RDI_U64 procedure_first_voff = rdi_first_voff_from_procedure(rdi, procedure); // 2. procedure -> virtual offset - RDI_Line line = rdi_line_from_voff(rdi, procedure_first_voff); // 3. virtual offset -> line - RDI_SourceFile *file = rdi_source_file_from_line(rdi, &line); // 4. line -> source file - RDI_U64 file_path_size = 0; // 5. source file -> path - RDI_U8 *file_path = rdi_normal_path_from_source_file(rdi, file, &file_path_size); - printf("%s is at %.*s:%u\n", name, (int)file_path_size, file_path, line.line_num); -} - -// Line -> Procedure Name -{ - RDI_Parsed *rdi = ...; - char *path = "c:/devel/raddebugger/src/mule/mule_main.cpp"; - RDI_U32 line_num = 2557; - RDI_SourceFile *file = rdi_source_file_from_normal_path_cstr(rdi, path); // 1. path -> source file - RDI_U64 voff = rdi_first_voff_from_source_file_line_num(rdi, file, line_num); // 2. (source file, line) -> virtual offset - RDI_Procedure *procedure = rdi_procedure_from_voff(rdi, voff); // 3. virtual offset -> procedure - RDI_U64 name_size = 0; // 4. procedure -> name - RDI_U8 *name = rdi_name_from_procedure(rdi, procedure, &name_size); - printf("%s:%u is inside %.*s\n", path, line_num, (int)name_size, name); -} -#endif - -#ifndef RDI_FORMAT_PARSE_H -#define RDI_FORMAT_PARSE_H - -//////////////////////////////////////////////////////////////// -//~ Parsed Information Types - -typedef enum RDI_ParseStatus -{ - RDI_ParseStatus_Good = 0, - RDI_ParseStatus_HeaderDoesNotMatch = 1, - RDI_ParseStatus_UnsupportedVersionNumber = 2, - RDI_ParseStatus_InvalidDataSecionLayout = 3, - RDI_ParseStatus_MissingRequiredSection = 4, -} -RDI_ParseStatus; - -typedef struct RDI_Parsed RDI_Parsed; -struct RDI_Parsed -{ - RDI_U8 *raw_data; - RDI_U64 raw_data_size; - RDI_Section *sections; - RDI_U64 sections_count; -}; - -typedef struct RDI_ParsedLineTable RDI_ParsedLineTable; -struct RDI_ParsedLineTable -{ - // NOTE: Mapping VOFF -> LINE_INFO - // - // * [ voff[i], voff[i + 1] ) forms the voff range - // * for the line info at lines[i] (and cols[i] if i < col_count) - RDI_U64* voffs; // [count + 1] sorted - RDI_Line* lines; // [count] - RDI_Column* cols; // [col_count] - RDI_U64 count; - RDI_U64 col_count; -}; - -typedef struct RDI_ParsedSourceLineMap RDI_ParsedSourceLineMap; -struct RDI_ParsedSourceLineMap -{ - // NOTE: Mapping LINE_NUMBER -> VOFFs - // - // * nums[i] gives a line number - // * that line number has one or more associated voffs - // - // * to find all associated voffs for the line number nums[i] : - // * let k span over the range [ ranges[i], ranges[i + 1] ) - // * voffs[k] gives the associated voffs - RDI_U32* nums; // [count] sorted - RDI_U32* ranges; // [count + 1] - RDI_U64* voffs; // [voff_count] - RDI_U64 count; - RDI_U64 voff_count; -}; - -typedef struct RDI_ParsedNameMap RDI_ParsedNameMap; -struct RDI_ParsedNameMap -{ - RDI_NameMapBucket *buckets; - RDI_NameMapNode *nodes; - RDI_U64 bucket_count; - RDI_U64 node_count; -}; - -//////////////////////////////// -//~ Global Nils - -static union -{ - RDI_TopLevelInfo top_level_info; - RDI_BinarySection binary_section; - RDI_FilePathNode file_path_node; - RDI_SourceFile source_file; - RDI_LineTable line_table; - RDI_SourceLineMap source_line_map; - RDI_Line line; - RDI_Column column; - RDI_Unit unit; - RDI_VMapEntry vmap_entry; - RDI_TypeNode type_node; - RDI_UDT udt; - RDI_Member member; - RDI_EnumMember enum_member; - RDI_GlobalVariable global_variable; - RDI_ThreadVariable thread_variable; - RDI_Procedure procedure; - RDI_Scope scope; - RDI_U64 voff; - RDI_LocationBlock location_block; - RDI_Local local; -} -rdi_nil_element_union = {0}; -static RDI_Parsed rdi_parsed_nil = {0}; - -//////////////////////////////// -//~ Top-Level Parsing API - -RDI_PROC RDI_ParseStatus rdi_parse(RDI_U8 *data, RDI_U64 size, RDI_Parsed *out); - -//////////////////////////////// -//~ Base Parsed Info Extraction Helpers - -//- section table/element raw data extraction -RDI_PROC void *rdi_section_raw_data_from_kind(RDI_Parsed *rdi, RDI_SectionKind kind, RDI_SectionEncoding *encoding_out, RDI_U64 *size_out); -RDI_PROC void *rdi_section_raw_table_from_kind(RDI_Parsed *rdi, RDI_SectionKind kind, RDI_U64 *count_out); -RDI_PROC void *rdi_section_raw_element_from_kind_idx(RDI_Parsed *rdi, RDI_SectionKind kind, RDI_U64 idx); -#define rdi_table_from_name(rdi, name, count_out) ((RDI_SectionElementType_##name *)rdi_section_raw_table_from_kind((rdi), RDI_SectionKind_##name, (count_out))) -#define rdi_element_from_name_idx(rdi, name, idx) ((RDI_SectionElementType_##name *)rdi_section_raw_element_from_kind_idx((rdi), RDI_SectionKind_##name, (idx))) - -//- info about whole parse -RDI_PROC RDI_U64 rdi_decompressed_size_from_parsed(RDI_Parsed *rdi); - -//- strings -RDI_PROC RDI_U8 *rdi_string_from_idx(RDI_Parsed *rdi, RDI_U32 idx, RDI_U64 *len_out); - -//- index runs -RDI_PROC RDI_U32 *rdi_idx_run_from_first_count(RDI_Parsed *rdi, RDI_U32 raw_first, RDI_U32 raw_count, RDI_U32 *n_out); - -//- line info -RDI_PROC void rdi_parsed_from_line_table(RDI_Parsed *rdi, RDI_LineTable *line_table, RDI_ParsedLineTable *out); -RDI_PROC RDI_U64 rdi_line_info_idx_range_from_voff(RDI_ParsedLineTable *line_info, RDI_U64 voff, RDI_U64 *n_out); -RDI_PROC RDI_U64 rdi_line_info_idx_from_voff(RDI_ParsedLineTable *line_info, RDI_U64 voff); -RDI_PROC void rdi_parsed_from_source_line_map(RDI_Parsed *rdi, RDI_SourceLineMap *map, RDI_ParsedSourceLineMap *out); -RDI_PROC RDI_U64 *rdi_line_voffs_from_num(RDI_ParsedSourceLineMap *map, RDI_U32 linenum, RDI_U32 *n_out); - -//- vmap lookups -RDI_PROC RDI_U64 rdi_vmap_idx_from_voff(RDI_VMapEntry *vmap, RDI_U64 vmap_count, RDI_U64 voff); - -//- name maps -RDI_PROC RDI_NameMap *rdi_name_map_from_kind(RDI_Parsed *p, RDI_NameMapKind kind); -RDI_PROC void rdi_name_map_parse(RDI_Parsed* p, RDI_NameMap *mapptr, RDI_ParsedNameMap *out); -RDI_PROC RDI_NameMapNode *rdi_name_map_lookup(RDI_Parsed *p, RDI_ParsedNameMap *map, RDI_U8 *str, RDI_U64 len); -RDI_PROC RDI_U32 *rdi_matches_from_map_node(RDI_Parsed *p, RDI_NameMapNode *node, RDI_U32 *n_out); - -//////////////////////////////// -//~ High-Level Composite Lookup Functions - -//- procedures -RDI_PROC RDI_Procedure *rdi_procedure_from_name(RDI_Parsed *rdi, RDI_U8 *name, RDI_U64 name_size); -RDI_PROC RDI_Procedure *rdi_procedure_from_name_cstr(RDI_Parsed *rdi, char *cstr); -RDI_PROC RDI_U8 *rdi_name_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure, RDI_U64 *len_out); -RDI_PROC RDI_Scope *rdi_root_scope_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure); -RDI_PROC RDI_UDT *rdi_container_udt_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure); -RDI_PROC RDI_Procedure *rdi_container_procedure_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure); -RDI_PROC RDI_U64 rdi_first_voff_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure); -RDI_PROC RDI_U64 rdi_opl_voff_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure); -RDI_PROC RDI_Procedure *rdi_procedure_from_voff(RDI_Parsed *rdi, RDI_U64 voff); - -//- scopes -RDI_PROC RDI_U64 rdi_first_voff_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); -RDI_PROC RDI_U64 rdi_opl_voff_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); -RDI_PROC RDI_Scope *rdi_scope_from_voff(RDI_Parsed *rdi, RDI_U64 voff); -RDI_PROC RDI_Scope *rdi_parent_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); -RDI_PROC RDI_Procedure *rdi_procedure_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); -RDI_PROC RDI_InlineSite *rdi_inline_site_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); - -//- global variables -RDI_PROC RDI_GlobalVariable *rdi_global_variable_from_voff(RDI_Parsed *rdi, RDI_U64 voff); - -//- units -RDI_PROC RDI_Unit *rdi_unit_from_voff(RDI_Parsed *rdi, RDI_U64 voff); -RDI_PROC RDI_LineTable *rdi_line_table_from_unit(RDI_Parsed *rdi, RDI_Unit *unit); - -//- line tables -RDI_PROC RDI_Line rdi_line_from_voff(RDI_Parsed *rdi, RDI_U64 voff); -RDI_PROC RDI_Line rdi_line_from_line_table_voff(RDI_Parsed *rdi, RDI_LineTable *line_table, RDI_U64 voff); -RDI_PROC RDI_SourceFile *rdi_source_file_from_line(RDI_Parsed *rdi, RDI_Line *line); - -//- source files -RDI_PROC RDI_SourceFile *rdi_source_file_from_normal_path(RDI_Parsed *rdi, RDI_U8 *name, RDI_U64 name_size); -RDI_PROC RDI_SourceFile *rdi_source_file_from_normal_path_cstr(RDI_Parsed *rdi, char *cstr); -RDI_PROC RDI_U8 *rdi_normal_path_from_source_file(RDI_Parsed *rdi, RDI_SourceFile *src_file, RDI_U64 *len_out); -RDI_PROC RDI_FilePathNode *rdi_file_path_node_from_source_file(RDI_Parsed *rdi, RDI_SourceFile *src_file); -RDI_PROC RDI_SourceLineMap *rdi_source_line_map_from_source_file(RDI_Parsed *rdi, RDI_SourceFile *src_file); -RDI_PROC RDI_U64 rdi_first_voff_from_source_file_line_num(RDI_Parsed *rdi, RDI_SourceFile *src_file, RDI_U32 line_num); - -//- source line maps -RDI_PROC RDI_U64 rdi_first_voff_from_source_line_map_num(RDI_Parsed *rdi, RDI_SourceLineMap *map, RDI_U32 line_num); - -//- file path nodes -RDI_PROC RDI_FilePathNode *rdi_parent_from_file_path_node(RDI_Parsed *rdi, RDI_FilePathNode *node); -RDI_PROC RDI_U8 *rdi_name_from_file_path_node(RDI_Parsed *rdi, RDI_FilePathNode *node, RDI_U64 *len_out); - -//////////////////////////////// -//~ Parser Helpers - -#define rdi_parse__min(a,b) (((a)<(b))?(a):(b)) -RDI_PROC RDI_U64 rdi_cstring_length(char *cstr); -RDI_PROC RDI_U64 rdi_size_from_bytecode_stream(RDI_U8 *ptr, RDI_U8 *opl); - -#endif // RDI_FORMAT_PARSE_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////////////////////////////////////// +//~ (R)AD (D)ebug (I)nfo Format Parsing Library +// +// Defines helper types and functions for extracting data from +// RDI files. + +//////////////////////////////////////////////////////////////// +//~ Usage Samples +// +#if 0 +// Procedure Name -> Line +{ + RDI_Parsed *rdi = ...; + char *name = "mule_main"; + RDI_Procedure *procedure = rdi_procedure_from_name_cstr(rdi, name); // 1. name -> procedure + RDI_U64 procedure_first_voff = rdi_first_voff_from_procedure(rdi, procedure); // 2. procedure -> virtual offset + RDI_Line line = rdi_line_from_voff(rdi, procedure_first_voff); // 3. virtual offset -> line + RDI_SourceFile *file = rdi_source_file_from_line(rdi, &line); // 4. line -> source file + RDI_U64 file_path_size = 0; // 5. source file -> path + RDI_U8 *file_path = rdi_normal_path_from_source_file(rdi, file, &file_path_size); + printf("%s is at %.*s:%u\n", name, (int)file_path_size, file_path, line.line_num); +} + +// Line -> Procedure Name +{ + RDI_Parsed *rdi = ...; + char *path = "c:/devel/raddebugger/src/mule/mule_main.cpp"; + RDI_U32 line_num = 2557; + RDI_SourceFile *file = rdi_source_file_from_normal_path_cstr(rdi, path); // 1. path -> source file + RDI_U64 voff = rdi_first_voff_from_source_file_line_num(rdi, file, line_num); // 2. (source file, line) -> virtual offset + RDI_Procedure *procedure = rdi_procedure_from_voff(rdi, voff); // 3. virtual offset -> procedure + RDI_U64 name_size = 0; // 4. procedure -> name + RDI_U8 *name = rdi_name_from_procedure(rdi, procedure, &name_size); + printf("%s:%u is inside %.*s\n", path, line_num, (int)name_size, name); +} +#endif + +#ifndef RDI_PARSE_H +#define RDI_PARSE_H + +//////////////////////////////////////////////////////////////// +//~ Parsed Information Types + +typedef enum RDI_ParseStatus +{ + RDI_ParseStatus_Good = 0, + RDI_ParseStatus_HeaderDoesNotMatch = 1, + RDI_ParseStatus_UnsupportedVersionNumber = 2, + RDI_ParseStatus_InvalidDataSecionLayout = 3, + RDI_ParseStatus_MissingRequiredSection = 4, +} +RDI_ParseStatus; + +typedef struct RDI_Parsed RDI_Parsed; +struct RDI_Parsed +{ + RDI_U8 *raw_data; + RDI_U64 raw_data_size; + RDI_Section *sections; + RDI_U64 sections_count; +}; + +typedef struct RDI_ParsedLineTable RDI_ParsedLineTable; +struct RDI_ParsedLineTable +{ + // NOTE: Mapping VOFF -> LINE_INFO + // + // * [ voff[i], voff[i + 1] ) forms the voff range + // * for the line info at lines[i] (and cols[i] if i < col_count) + RDI_U64* voffs; // [count + 1] sorted + RDI_Line* lines; // [count] + RDI_Column* cols; // [col_count] + RDI_U64 count; + RDI_U64 col_count; +}; + +typedef struct RDI_ParsedSourceLineMap RDI_ParsedSourceLineMap; +struct RDI_ParsedSourceLineMap +{ + // NOTE: Mapping LINE_NUMBER -> VOFFs + // + // * nums[i] gives a line number + // * that line number has one or more associated voffs + // + // * to find all associated voffs for the line number nums[i] : + // * let k span over the range [ ranges[i], ranges[i + 1] ) + // * voffs[k] gives the associated voffs + RDI_U32* nums; // [count] sorted + RDI_U32* ranges; // [count + 1] + RDI_U64* voffs; // [voff_count] + RDI_U64 count; + RDI_U64 voff_count; +}; + +typedef struct RDI_ParsedNameMap RDI_ParsedNameMap; +struct RDI_ParsedNameMap +{ + RDI_NameMapBucket *buckets; + RDI_NameMapNode *nodes; + RDI_U64 bucket_count; + RDI_U64 node_count; +}; + +//////////////////////////////// +//~ Global Nils + +static union +{ + RDI_TopLevelInfo top_level_info; + RDI_BinarySection binary_section; + RDI_FilePathNode file_path_node; + RDI_SourceFile source_file; + RDI_LineTable line_table; + RDI_SourceLineMap source_line_map; + RDI_Line line; + RDI_Column column; + RDI_Unit unit; + RDI_VMapEntry vmap_entry; + RDI_TypeNode type_node; + RDI_UDT udt; + RDI_Member member; + RDI_EnumMember enum_member; + RDI_GlobalVariable global_variable; + RDI_ThreadVariable thread_variable; + RDI_Procedure procedure; + RDI_Scope scope; + RDI_U64 voff; + RDI_LocationBlock location_block; + RDI_Local local; +} +rdi_nil_element_union = {0}; +static RDI_Parsed rdi_parsed_nil = {0}; + +//////////////////////////////// +//~ Top-Level Parsing API + +RDI_PROC RDI_ParseStatus rdi_parse(RDI_U8 *data, RDI_U64 size, RDI_Parsed *out); + +//////////////////////////////// +//~ Base Parsed Info Extraction Helpers + +//- section table/element raw data extraction +RDI_PROC void *rdi_section_raw_data_from_kind(RDI_Parsed *rdi, RDI_SectionKind kind, RDI_SectionEncoding *encoding_out, RDI_U64 *size_out); +RDI_PROC void *rdi_section_raw_table_from_kind(RDI_Parsed *rdi, RDI_SectionKind kind, RDI_U64 *count_out); +RDI_PROC void *rdi_section_raw_element_from_kind_idx(RDI_Parsed *rdi, RDI_SectionKind kind, RDI_U64 idx); +#define rdi_table_from_name(rdi, name, count_out) ((RDI_SectionElementType_##name *)rdi_section_raw_table_from_kind((rdi), RDI_SectionKind_##name, (count_out))) +#define rdi_element_from_name_idx(rdi, name, idx) ((RDI_SectionElementType_##name *)rdi_section_raw_element_from_kind_idx((rdi), RDI_SectionKind_##name, (idx))) + +//- info about whole parse +RDI_PROC RDI_U64 rdi_decompressed_size_from_parsed(RDI_Parsed *rdi); + +//- strings +RDI_PROC RDI_U8 *rdi_string_from_idx(RDI_Parsed *rdi, RDI_U32 idx, RDI_U64 *len_out); + +//- index runs +RDI_PROC RDI_U32 *rdi_idx_run_from_first_count(RDI_Parsed *rdi, RDI_U32 raw_first, RDI_U32 raw_count, RDI_U32 *n_out); + +//- line info +RDI_PROC void rdi_parsed_from_line_table(RDI_Parsed *rdi, RDI_LineTable *line_table, RDI_ParsedLineTable *out); +RDI_PROC RDI_U64 rdi_line_info_idx_range_from_voff(RDI_ParsedLineTable *line_info, RDI_U64 voff, RDI_U64 *n_out); +RDI_PROC RDI_U64 rdi_line_info_idx_from_voff(RDI_ParsedLineTable *line_info, RDI_U64 voff); +RDI_PROC void rdi_parsed_from_source_line_map(RDI_Parsed *rdi, RDI_SourceLineMap *map, RDI_ParsedSourceLineMap *out); +RDI_PROC RDI_U64 *rdi_line_voffs_from_num(RDI_ParsedSourceLineMap *map, RDI_U32 linenum, RDI_U32 *n_out); + +//- vmap lookups +RDI_PROC RDI_U64 rdi_vmap_idx_from_voff(RDI_VMapEntry *vmap, RDI_U64 vmap_count, RDI_U64 voff); + +//- name maps +RDI_PROC RDI_NameMap *rdi_name_map_from_kind(RDI_Parsed *p, RDI_NameMapKind kind); +RDI_PROC void rdi_name_map_parse(RDI_Parsed* p, RDI_NameMap *mapptr, RDI_ParsedNameMap *out); +RDI_PROC RDI_NameMapNode *rdi_name_map_lookup(RDI_Parsed *p, RDI_ParsedNameMap *map, RDI_U8 *str, RDI_U64 len); +RDI_PROC RDI_U32 *rdi_matches_from_map_node(RDI_Parsed *p, RDI_NameMapNode *node, RDI_U32 *n_out); + +//////////////////////////////// +//~ High-Level Composite Lookup Functions + +//- procedures +RDI_PROC RDI_Procedure *rdi_procedure_from_name(RDI_Parsed *rdi, RDI_U8 *name, RDI_U64 name_size); +RDI_PROC RDI_Procedure *rdi_procedure_from_name_cstr(RDI_Parsed *rdi, char *cstr); +RDI_PROC RDI_U8 *rdi_name_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure, RDI_U64 *len_out); +RDI_PROC RDI_Scope *rdi_root_scope_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure); +RDI_PROC RDI_UDT *rdi_container_udt_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure); +RDI_PROC RDI_Procedure *rdi_container_procedure_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure); +RDI_PROC RDI_U64 rdi_first_voff_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure); +RDI_PROC RDI_U64 rdi_opl_voff_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure); +RDI_PROC RDI_Procedure *rdi_procedure_from_voff(RDI_Parsed *rdi, RDI_U64 voff); + +//- scopes +RDI_PROC RDI_U64 rdi_first_voff_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); +RDI_PROC RDI_U64 rdi_opl_voff_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); +RDI_PROC RDI_Scope *rdi_scope_from_voff(RDI_Parsed *rdi, RDI_U64 voff); +RDI_PROC RDI_Scope *rdi_parent_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); +RDI_PROC RDI_Procedure *rdi_procedure_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); +RDI_PROC RDI_InlineSite *rdi_inline_site_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); + +//- global variables +RDI_PROC RDI_GlobalVariable *rdi_global_variable_from_voff(RDI_Parsed *rdi, RDI_U64 voff); + +//- units +RDI_PROC RDI_Unit *rdi_unit_from_voff(RDI_Parsed *rdi, RDI_U64 voff); +RDI_PROC RDI_LineTable *rdi_line_table_from_unit(RDI_Parsed *rdi, RDI_Unit *unit); + +//- line tables +RDI_PROC RDI_Line rdi_line_from_voff(RDI_Parsed *rdi, RDI_U64 voff); +RDI_PROC RDI_Line rdi_line_from_line_table_voff(RDI_Parsed *rdi, RDI_LineTable *line_table, RDI_U64 voff); +RDI_PROC RDI_SourceFile *rdi_source_file_from_line(RDI_Parsed *rdi, RDI_Line *line); + +//- source files +RDI_PROC RDI_SourceFile *rdi_source_file_from_normal_path(RDI_Parsed *rdi, RDI_U8 *name, RDI_U64 name_size); +RDI_PROC RDI_SourceFile *rdi_source_file_from_normal_path_cstr(RDI_Parsed *rdi, char *cstr); +RDI_PROC RDI_U8 *rdi_normal_path_from_source_file(RDI_Parsed *rdi, RDI_SourceFile *src_file, RDI_U64 *len_out); +RDI_PROC RDI_FilePathNode *rdi_file_path_node_from_source_file(RDI_Parsed *rdi, RDI_SourceFile *src_file); +RDI_PROC RDI_SourceLineMap *rdi_source_line_map_from_source_file(RDI_Parsed *rdi, RDI_SourceFile *src_file); +RDI_PROC RDI_U64 rdi_first_voff_from_source_file_line_num(RDI_Parsed *rdi, RDI_SourceFile *src_file, RDI_U32 line_num); + +//- source line maps +RDI_PROC RDI_U64 rdi_first_voff_from_source_line_map_num(RDI_Parsed *rdi, RDI_SourceLineMap *map, RDI_U32 line_num); + +//- file path nodes +RDI_PROC RDI_FilePathNode *rdi_parent_from_file_path_node(RDI_Parsed *rdi, RDI_FilePathNode *node); +RDI_PROC RDI_U8 *rdi_name_from_file_path_node(RDI_Parsed *rdi, RDI_FilePathNode *node, RDI_U64 *len_out); + +//////////////////////////////// +//~ Parser Helpers + +#define rdi_parse__min(a,b) (((a)<(b))?(a):(b)) +RDI_PROC RDI_U64 rdi_cstring_length(char *cstr); +RDI_PROC RDI_U64 rdi_size_from_bytecode_stream(RDI_U8 *ptr, RDI_U8 *opl); + +#endif // RDI_FORMAT_PARSE_H diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 10a1ab10..1dea30a5 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -63,10 +63,8 @@ // RDI #include "rdi/rdi_overrides.h" -#include "lib_rdi_format/rdi_format.h" -#include "rdi/rdi.h" -#include "lib_rdi_format/rdi_format.c" -#include "rdi/rdi.c" +#include "lib_rdi/rdi.h" +#include "lib_rdi/rdi.c" //////////////////////////////// // Code Base Extensions diff --git a/src/linker/rdi/rdi.c b/src/linker/rdi/rdi.c deleted file mode 100644 index 8b137891..00000000 --- a/src/linker/rdi/rdi.c +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/linker/rdi/rdi.h b/src/linker/rdi/rdi.h deleted file mode 100644 index 531a62b0..00000000 --- a/src/linker/rdi/rdi.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - - - diff --git a/src/radbin/radbin_main.c b/src/radbin/radbin_main.c index 85733775..193c81a5 100644 --- a/src/radbin/radbin_main.c +++ b/src/radbin/radbin_main.c @@ -19,7 +19,7 @@ #include "linker/hash_table.h" #include "os/os_inc.h" #include "async/async.h" -#include "rdi_format/rdi_format_local.h" +#include "rdi/rdi_local.h" #include "rdi_make/rdi_make_local.h" #include "coff/coff.h" #include "coff/coff_parse.h" @@ -46,7 +46,7 @@ #include "linker/hash_table.c" #include "os/os_inc.c" #include "async/async.c" -#include "rdi_format/rdi_format_local.c" +#include "rdi/rdi_local.c" #include "rdi_make/rdi_make_local.c" #include "coff/coff.c" #include "coff/coff_parse.c" diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index e9ebbaa4..0af77b13 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -211,7 +211,7 @@ #include "linker/hash_table.h" #include "os/os_inc.h" #include "async/async.h" -#include "rdi_format/rdi_format_local.h" +#include "rdi/rdi_local.h" #include "rdi_make/rdi_make_local.h" #include "mdesk/mdesk.h" #include "hash_store/hash_store.h" @@ -264,7 +264,7 @@ #include "linker/hash_table.c" #include "os/os_inc.c" #include "async/async.c" -#include "rdi_format/rdi_format_local.c" +#include "rdi/rdi_local.c" #include "rdi_make/rdi_make_local.c" #include "mdesk/mdesk.c" #include "hash_store/hash_store.c" diff --git a/src/rdi_format/rdi_format.mdesk b/src/rdi/rdi.mdesk similarity index 99% rename from src/rdi_format/rdi_format.mdesk rename to src/rdi/rdi.mdesk index a43bae13..7dcd4eb0 100644 --- a/src/rdi_format/rdi_format.mdesk +++ b/src/rdi/rdi.mdesk @@ -5,20 +5,20 @@ //~ rjf: Generated File Format @option library -@gen_folder "lib_rdi_format" -@h_name "rdi_format.h" -@c_name "rdi_format.c" +@gen_folder "lib_rdi" +@h_name "rdi.h" +@c_name "rdi.c" @h_header { "////////////////////////////////////////////////////////////////"; - "//~ RAD Debug Info, (R)AD(D)BG(I) Format Library"; + "//~ (R)AD (D)ebug (I)nfo Format Library"; "//"; "// Defines standard RDI debug information format types and"; "// functions."; ""; - "#ifndef RDI_FORMAT_H"; - "#define RDI_FORMAT_H"; + "#ifndef RDI_H"; + "#define RDI_H"; ""; "////////////////////////////////////////////////////////////////"; "//~ Overridable Procedure Decoration"; @@ -71,25 +71,25 @@ @h_footer { - "#endif // RDI_FORMAT_H"; + "#endif // RDI_H"; } @c_header { "////////////////////////////////////////////////////////////////"; - "//~ RAD Debug Info, (R)AD(D)BG(I) Format Library"; + "//~ (R)AD (D)ebug (I)nfo Format Library"; "//"; "// Defines standard RDI debug information format types and"; "// functions."; ""; - "#ifndef RDI_FORMAT_C"; - "#define RDI_FORMAT_C"; + "#ifndef RDI_C"; + "#define RDI_C"; ""; } @c_footer { - "#endif // RDI_FORMAT_C"; + "#endif // RDI_C"; } //////////////////////////////// diff --git a/src/rdi_format/rdi_format_local.c b/src/rdi/rdi_local.c similarity index 97% rename from src/rdi_format/rdi_format_local.c rename to src/rdi/rdi_local.c index 11fe38f3..166bc023 100644 --- a/src/rdi_format/rdi_format_local.c +++ b/src/rdi/rdi_local.c @@ -1,1257 +1,1257 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#include "lib_rdi_format/rdi_format.c" -#include "lib_rdi_format/rdi_format_parse.c" - -//////////////////////////////// -//~ rjf: RDI Decompression - -internal void -rdi_decompress_parsed(U8 *decompressed_data, U64 decompressed_size, RDI_Parsed *og_rdi) -{ - // rjf: copy header - RDI_Header *src_header = (RDI_Header *)og_rdi->raw_data; - RDI_Header *dst_header = (RDI_Header *)decompressed_data; - { - MemoryCopy(dst_header, src_header, sizeof(RDI_Header)); - } - - // rjf: copy & adjust sections for decompressed version - if(og_rdi->sections_count != 0) - { - RDI_Section *dsec_base = (RDI_Section *)(decompressed_data + dst_header->data_section_off); - MemoryCopy(dsec_base, (U8 *)og_rdi->raw_data + src_header->data_section_off, sizeof(RDI_Section) * og_rdi->sections_count); - U64 off = dst_header->data_section_off + sizeof(RDI_Section) * og_rdi->sections_count; - off += 7; - off -= off%8; - for(U64 idx = 0; idx < og_rdi->sections_count; idx += 1) - { - dsec_base[idx].encoding = RDI_SectionEncoding_Unpacked; - dsec_base[idx].off = off; - dsec_base[idx].encoded_size = dsec_base[idx].unpacked_size; - off += dsec_base[idx].unpacked_size; - off += 7; - off -= off%8; - } - } - - // rjf: decompress sections into new decompressed file buffer - if(og_rdi->sections_count != 0) - { - RDI_Section *src_first = og_rdi->sections; - RDI_Section *dst_first = (RDI_Section *)(decompressed_data + dst_header->data_section_off); - RDI_Section *src_opl = src_first + og_rdi->sections_count; - RDI_Section *dst_opl = dst_first + og_rdi->sections_count; - for(RDI_Section *src = src_first, *dst = dst_first; - src < src_opl && dst < dst_opl; - src += 1, dst += 1) - { - rr_lzb_simple_decode((U8*)og_rdi->raw_data + src->off, src->encoded_size, - decompressed_data + dst->off, dst->unpacked_size); - } - } -} - -//////////////////////////////// -//~ rjf: Lookup Helpers - -internal String8 -str8_from_rdi_string_idx(RDI_Parsed *rdi, U32 idx) -{ - String8 result = {0}; - result.str = rdi_string_from_idx(rdi, idx, &result.size); - return result; -} - -//////////////////////////////// -//~ rjf: String <=> Enum - -internal String8 -rdi_string_from_data_section_kind(Arena *arena, RDI_SectionKind v) -{ - String8 result = {0}; - switch(v) - { - default:{result = push_str8f(arena, "", v);}break; -#define X(name, lower, type) case RDI_SectionKind_##name:{result = str8_lit(#name);}break; - RDI_SectionKind_XList -#undef X - } - return result; -} - -internal String8 -rdi_string_from_arch(Arena *arena, RDI_Arch v) -{ - String8 result = {0}; - switch(v) - { - default:{result = push_str8f(arena, "", v);} break; -#define X(name) case RDI_Arch_##name:{result = str8_lit(#name);} break; - RDI_Arch_XList -#undef X - } - return result; -} - -internal String8 -rdi_string_from_language(Arena *arena, RDI_Language v) -{ - String8 result = {0}; - switch(v) - { - default:{result = push_str8f(arena, "", v);}break; -#define X(name) case RDI_Language_##name:{result = str8_lit(#name);}break; - RDI_Language_XList -#undef X - } - return result; -} - -internal String8 -rdi_string_from_local_kind(Arena *arena, RDI_LocalKind v) -{ - String8 result = {0}; - switch(v) - { - default:{result = push_str8f(arena, "", v);}break; -#define X(name) case RDI_LocalKind_##name:{result = str8_lit(#name);}break; - RDI_LocalKind_XList -#undef X - } - return result; -} - -#if 0 -internal String8 -rdi_string_from_type_kind(Arena *arena, RDI_TypeKind v) -{ - String8 result = {0}; - switch(v) - { - default:{result = push_str8f(arena, "", v);}break; -#define X(name) case RDI_TypeKind_##name:{result = str8_lit(#name);}break; - RDI_TypeKind_XList -#undef X - } - return result; -} -#endif - -internal String8 -rdi_string_from_member_kind(Arena *arena, RDI_MemberKind v) -{ - String8 result = {0}; - switch(v) - { - default:{result = push_str8f(arena, "", v);}break; -#define X(name) case RDI_MemberKind_##name:{result = str8_lit(#name);}break; - RDI_MemberKind_XList -#undef X - } - return result; -} - -internal String8 -rdi_string_from_name_map_kind(RDI_NameMapKind kind) -{ - String8 result = {0}; - switch(kind) - { - default:{}break; -#define X(name) case RDI_NameMapKind_##name:{result = str8_lit(#name);}break; - RDI_NameMapKind_XList -#undef X - } - return result; -} - -internal String8 -rdi_string_from_reg_code_x86(U64 reg_code) -{ - String8 result = {0}; - switch(reg_code) - { - default:{}break; -#define X(name, value) case RDI_RegCodeX86_##name:{result = str8_lit(#name);}break; - RDI_RegCodeX86_XList -#undef X - } - return result; -} - -internal String8 -rdi_string_from_reg_code_x64(U64 reg_code) -{ - String8 result = {0}; - switch(reg_code) - { - default:{}break; -#define X(name, value) case RDI_RegCodeX64_##name:{result = str8_lit(#name);}break; - RDI_RegCodeX64_XList -#undef X - } - return result; -} - -internal String8 -rdi_string_from_reg_code(Arena *arena, RDI_Arch arch, U64 reg_code) -{ - String8 result = {0}; - switch(arch) - { - default: - case RDI_Arch_NULL: {result = push_str8f(arena, "??? (%llu)", reg_code);}break; - case RDI_Arch_X86: {result = rdi_string_from_reg_code_x86(reg_code);}break; - case RDI_Arch_X64: {result = rdi_string_from_reg_code_x64(reg_code);}break; - } - return result; -} - -internal String8 -rdi_string_from_eval_op(Arena *arena, RDI_EvalOp op) -{ - String8 result = {0}; - switch(op) - { - default:{result = push_str8f(arena, "%#x", op);}break; -#define X(name) case RDI_EvalOp_##name:{result = str8_lit("#name");}break; - RDI_EvalOp_XList -#undef X - } - return result; -} - -internal String8 -rdi_string_from_eval_type_group(Arena *arena, RDI_EvalTypeGroup eval_type_group) -{ - String8 result = {0}; - switch(eval_type_group) - { - default:{result = push_str8f(arena, "%#x", eval_type_group);}break; -#define X(name) case RDI_EvalTypeGroup_##name:{result = str8_lit("#name");}break; - RDI_EvalTypeGroup_XList -#undef X - } - return result; -} - -internal String8 -rdi_string_from_binary_section_flags(Arena *arena, RDI_BinarySectionFlags flags) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; -#define X(name) if (flags & RDI_BinarySectionFlag_##name) { flags &= ~RDI_BinarySectionFlag_##name; str8_list_push(scratch.arena, &list, str8_lit(#name)); } - RDI_BinarySectionFlags_XList; -#undef X - StringJoin join = {.sep = str8_lit("|")}; - String8 result = str8_list_join(arena, &list, &join); - if(result.size == 0) { result = str8_lit("None"); } - scratch_end(scratch); - return result; -} - -internal String8 -rdi_string_from_type_modifier_flags(Arena *arena, RDI_TypeModifierFlags flags) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; -#define X(name) if(flags & RDI_TypeModifierFlag_##name) { flags &= ~RDI_TypeModifierFlag_##name; str8_list_push(scratch.arena, &list, str8_lit(#name)); } - RDI_TypeModifierFlags_XList; -#undef X - StringJoin join = {.sep = str8_lit("|")}; - String8 result = str8_list_join(arena, &list, &join); - if(result.size == 0) { result = str8_lit("None"); } - scratch_end(scratch); - return result; -} - -internal String8 -rdi_string_from_udt_flags(Arena *arena, RDI_UDTFlags flags) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; -#define X(name) if (flags & RDI_UDTFlag_##name) { flags &= ~RDI_UDTFlag_##name; str8_list_push(scratch.arena, &list, str8_lit(#name)); } - RDI_UDTFlags_XList; -#undef X - StringJoin join = {.sep = str8_lit("|")}; - String8 result = str8_list_join(arena, &list, &join); - if(result.size == 0) { result = str8_lit("None"); } - scratch_end(scratch); - return result; -} - -internal String8 -rdi_string_from_link_flags(Arena *arena, RDI_LinkFlags flags) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; -#define X(name) if (flags & RDI_LinkFlag_##name) { flags &= ~RDI_LinkFlag_##name; str8_list_push(scratch.arena, &list, str8_lit(#name)); } - RDI_LinkFlags_XList; -#undef X - StringJoin join = {.sep = str8_lit("|")}; - String8 result = str8_list_join(arena, &list, &join); - if(result.size == 0) { result = str8_lit("None"); } - scratch_end(scratch); - return result; -} - -internal String8 -rdi_string_from_bytecode(Arena *arena, RDI_Arch arch, String8 bc) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List fmt = {0}; - for(U64 cursor = 0; cursor < bc.size; ) - { - RDI_EvalOp op = RDI_EvalOp_Stop; - cursor += str8_deserial_read_struct(bc, cursor, &op); - - U16 ctrlbits = rdi_eval_op_ctrlbits_table[op]; - U32 imm_size = RDI_DECODEN_FROM_CTRLBITS(ctrlbits); - - String8 imm = {0}; - cursor += str8_deserial_read_block(bc, cursor, imm_size, &imm); - if (imm.size != imm_size) { - str8_list_pushf(scratch.arena, &fmt, "(ERROR: not enough bytes to read immediate)"); - break; - } - - String8 imm_fmt = {0}; - switch (op) { - case RDI_EvalOp_Stop: goto exit; - case RDI_EvalOp_Noop: break; - case RDI_EvalOp_Cond: break; - case RDI_EvalOp_Skip: { - imm_fmt = push_str8f(scratch.arena, "%u", *(U16 *)imm.str); - } break; - case RDI_EvalOp_MemRead: { - imm_fmt = push_str8f(scratch.arena, "%u", *(U8 *)imm.str); - } break; - case RDI_EvalOp_RegRead: { - U32 regread = *(U32 *)imm.str; - RDI_RegCode reg_code = Extract8(regread, 0); - U8 byte_size = Extract8(regread, 1); - U8 byte_off = Extract8(regread, 2); - String8 reg_str = rdi_string_from_reg_code(scratch.arena, arch, reg_code); - imm_fmt = push_str8f(scratch.arena, "%S+%I64u, Size: %u", reg_str, byte_off, byte_size); - } break; - case RDI_EvalOp_RegReadDyn: break; - case RDI_EvalOp_FrameOff: { - imm_fmt = push_str8f(scratch.arena, "%+lld", *(S64 *)imm.str); - } break; - case RDI_EvalOp_ModuleOff: { - imm_fmt = push_str8f(scratch.arena, "%u", *(U32 *)imm.str); - } break; - case RDI_EvalOp_TLSOff: { - imm_fmt = push_str8f(scratch.arena, "%u", *(U32 *)imm.str); - } break; - case RDI_EvalOp_ConstU8: { - imm_fmt = push_str8f(scratch.arena, "%u", *(U8 *)imm.str); - } break; - case RDI_EvalOp_ConstU16: { - imm_fmt = push_str8f(scratch.arena, "%u", *(U16 *)imm.str); - } break; - case RDI_EvalOp_ConstU32: { - imm_fmt = push_str8f(scratch.arena, "%u", *(U32 *)imm.str); - } break; - case RDI_EvalOp_ConstU64: { - imm_fmt = push_str8f(scratch.arena, "%llu", *(U64 *)imm.str); - } break; - case RDI_EvalOp_ConstU128: { - imm_fmt = push_str8f(scratch.arena, "Lo: %llu, Hi: %llu", *(U64 *)imm.str, *((U64 *)imm.str + 1)); - } break; - case RDI_EvalOp_ConstString: { - U8 size = *(U8 *)imm.str; - String8 string = {0}; - cursor += str8_deserial_read_block(bc, cursor, size, &string); - - imm_fmt = push_str8f(scratch.arena, "(%u) \"%S\"", size, string); - } break; - case RDI_EvalOp_Abs: - case RDI_EvalOp_Neg: - case RDI_EvalOp_Add: - case RDI_EvalOp_Sub: - case RDI_EvalOp_Mul: - case RDI_EvalOp_Div: - case RDI_EvalOp_Mod: - case RDI_EvalOp_LShift: - case RDI_EvalOp_RShift: - case RDI_EvalOp_BitAnd: - case RDI_EvalOp_BitOr: - case RDI_EvalOp_BitXor: - case RDI_EvalOp_BitNot: - case RDI_EvalOp_LogAnd: - case RDI_EvalOp_LogOr: - case RDI_EvalOp_LogNot: - case RDI_EvalOp_EqEq: - case RDI_EvalOp_NtEq: - case RDI_EvalOp_LsEq: - case RDI_EvalOp_GrEq: - case RDI_EvalOp_Less: - case RDI_EvalOp_Grtr: { - U8 eval_type_group = *(U8 *)imm.str; - imm_fmt = rdi_string_from_eval_type_group(scratch.arena, eval_type_group); - } break; - case RDI_EvalOp_Trunc: - case RDI_EvalOp_TruncSigned: { - U8 trunc = *(U8 *)imm.str; - imm_fmt = push_str8f(scratch.arena, "%u", trunc); - } break; - case RDI_EvalOp_Convert: { - U16 convert = *(U16 *)imm.str; - U8 in = Extract8(convert, 0); - U8 out = Extract8(convert, 1); - String8 in_str = rdi_string_from_eval_type_group(scratch.arena, in); - String8 out_str = rdi_string_from_eval_type_group(scratch.arena, out); - imm_fmt = push_str8f(scratch.arena, "in: %S out: %S", in_str, out_str); - } break; - case RDI_EvalOp_Pick: { - U8 pick = *(U8 *)imm.str; - imm_fmt = push_str8f(scratch.arena, "%u", pick); - } break; - case RDI_EvalOp_Pop: break; - case RDI_EvalOp_Insert: { - U8 insert = *(U8 *)imm.str; - imm_fmt = push_str8f(scratch.arena, "%u", insert); - } break; - case RDI_EvalOp_ValueRead: { - U8 bytes_to_read = *(U8 *)imm.str; - imm_fmt = push_str8f(scratch.arena, "%u", bytes_to_read); - } break; - case RDI_EvalOp_ByteSwap: { - U8 byte_size = *(U8 *)imm.str; - imm_fmt = push_str8f(scratch.arena, "%u", byte_size); - } break; - case RDI_EvalOp_CallSiteValue: { - U32 call_site_bc_size = *(U32 *)imm.str; - String8 call_site_bc = {0}; - cursor += str8_deserial_read_block(bc, cursor, call_site_bc_size, &call_site_bc); - - String8 call_site_str = rdi_string_from_bytecode(scratch.arena, arch, call_site_bc); - imm_fmt = push_str8f(scratch.arena, "%S", call_site_str); - } break; - case RDI_EvalOp_PartialValue: { - U32 partial_value_size = *(U32 *)imm.str; - imm_fmt = push_str8f(scratch.arena, "%u", partial_value_size); - } break; - case RDI_EvalOp_PartialValueBit: { - U64 partial_value = *(U64 *)imm.str; - U32 bit_size = Extract32(partial_value, 0); - U32 bit_off = Extract32(partial_value, 1); - imm_fmt = push_str8f(scratch.arena, "Off: %u, Size: %u", bit_size, bit_off); - } break; - } - - String8 op_str = rdi_string_from_eval_op(scratch.arena, op); - if (imm_fmt.size) { - str8_list_pushf(scratch.arena, &fmt, "RDI_EvalOp_%S(%S)", op_str, imm_fmt); - } else { - str8_list_pushf(scratch.arena, &fmt, "RDI_EvalOp_%S", op_str); - } - } - exit:; - - String8 result = str8_list_join(arena, &fmt, &(StringJoin){.sep = str8_lit(", ")}); - - scratch_end(scratch); - return result; -} - -internal String8List -rdi_strings_from_locations(Arena *arena, RDI_Parsed *rdi, RDI_Arch arch, Rng1U64 location_block_range) -{ - String8List strings = {0}; - Temp scratch = scratch_begin(&arena, 1); - U64 location_block_count = 0; - U64 location_data_size = 0; - RDI_LocationBlock *location_block_array = rdi_table_from_name(rdi, LocationBlocks, &location_block_count); - RDI_U8 *location_data = rdi_table_from_name(rdi, LocationData, &location_data_size); - Rng1U64 location_block_range_clamped = r1u64(ClampTop(location_block_range.min, location_block_count), - ClampTop(location_block_range.max, location_block_count)); - for(U64 block_idx = location_block_range_clamped.min; - block_idx < location_block_range_clamped.max; - block_idx +=1) - { - String8 qualifier = {0}; - String8 location_info = {0}; - RDI_LocationBlock *block_ptr = &location_block_array[block_idx]; - if(block_ptr->scope_off_first == 0 && block_ptr->scope_off_opl == max_U32) - { - qualifier = str8_lit("*always*"); - } - else - { - qualifier = push_str8f(scratch.arena, "[%#08x, %#08x): ", block_ptr->scope_off_first, block_ptr->scope_off_opl); - } - if(block_ptr->location_data_off >= location_data_size) - { - location_info = push_str8f(scratch.arena, "", block_ptr->location_data_off); - } - else - { - U8 *loc_data_opl = location_data + location_data_size; - U8 *loc_base_ptr = location_data + block_ptr->location_data_off; - RDI_LocationKind kind = *(RDI_LocationKind *)loc_base_ptr; - switch(kind) - { - default: - { - location_info = push_str8f(scratch.arena, "\?\?\? (%u)", kind); - }break; - case RDI_LocationKind_AddrBytecodeStream: - { - String8 bc = str8_range(loc_base_ptr + 1, loc_data_opl); - String8 bc_str = rdi_string_from_bytecode(scratch.arena, arch, bc); - location_info = push_str8f(scratch.arena, "AddrBytecodeStream(%S)", bc_str); - }break; - case RDI_LocationKind_ValBytecodeStream: - { - String8 bc = str8_range(loc_base_ptr + 1, loc_data_opl); - String8 bc_str = rdi_string_from_bytecode(scratch.arena, arch, bc); - location_info = push_str8f(scratch.arena, "ValBytecodeStream(%S)", bc_str); - }break; - case RDI_LocationKind_AddrRegPlusU16: - { - if(loc_base_ptr + sizeof(RDI_LocationRegPlusU16) > loc_data_opl) - { - location_info = push_str8f(scratch.arena, "AddrRegPlusU16(\?\?\?)"); - } - else - { - RDI_LocationRegPlusU16 *loc = (RDI_LocationRegPlusU16*)loc_base_ptr; - location_info = push_str8f(scratch.arena, "AddrRegPlusU16(reg: %S, off: %u)", rdi_string_from_reg_code(scratch.arena, arch, loc->reg_code), loc->offset); - } - }break; - case RDI_LocationKind_AddrAddrRegPlusU16: - { - if(loc_base_ptr + sizeof(RDI_LocationRegPlusU16) > loc_data_opl) - { - location_info = push_str8f(scratch.arena, "AddrAddrRegPlusU16(\?\?\?)"); - } - else - { - RDI_LocationRegPlusU16 *loc = (RDI_LocationRegPlusU16 *)loc_base_ptr; - location_info = push_str8f(scratch.arena, "AddrAddrRegisterPlusU16(reg: %S, off: %u)", rdi_string_from_reg_code(scratch.arena, arch, loc->reg_code), loc->offset); - } - }break; - case RDI_LocationKind_ValReg: - { - if(loc_base_ptr + sizeof(RDI_LocationReg) > loc_data_opl) - { - location_info = push_str8f(scratch.arena, "ValReg(\?\?\?)"); - } - else - { - RDI_LocationReg *loc = (RDI_LocationReg*)loc_base_ptr; - location_info = push_str8f(scratch.arena, "ValReg(reg: %S)", rdi_string_from_reg_code(scratch.arena, arch, loc->reg_code)); - } - } break; - } - } - str8_list_pushf(arena, &strings, "%S: %S", qualifier, location_info); - } - scratch_end(scratch); - return strings; -} - -//////////////////////////////// -//~ rjf: RDI Dumping - -internal String8List -rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags flags) -{ - String8List strings = {0}; - String8 indent = str8_lit(" "); -#define dump(str) str8_list_push(arena, &strings, (str)) -#define dumpf(...) str8_list_pushf(arena, &strings, __VA_ARGS__) -#define DumpSubset(name) if(flags & RDI_DumpSubsetFlag_##name) DeferLoop(dumpf("# %S\n\n", rdi_name_title_from_dump_subset_table[RDI_DumpSubset_##name]), dump(str8_lit("\n"))) - - ////////////////////////////// - //- rjf: dump data sections - // - DumpSubset(DataSections) - { - for EachIndex(idx, rdi->sections_count) - { - Temp scratch = scratch_begin(&arena, 1); - RDI_SectionKind kind = (RDI_SectionKind)idx; - RDI_Section *section = &rdi->sections[idx]; - String8 kind_str = rdi_string_from_data_section_kind(scratch.arena, kind); - dumpf("data_section[%5llu] = {%#08llx, %7u, %7u}, %S\n", idx, section->off, section->encoded_size, section->unpacked_size, kind_str); - scratch_end(scratch); - } - } - - ////////////////////////////// - //- rjf: dump top-level-info - // - DumpSubset(TopLevelInfo) - { - RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); - Temp scratch = scratch_begin(&arena, 1); - dumpf("arch =%S\n", rdi_string_from_arch(scratch.arena, tli->arch)); - dumpf("exe_name ='%S'\n", str8_from_rdi_string_idx(rdi, tli->exe_name_string_idx)); - dumpf("voff_max =%#08llx\n", tli->voff_max); - dumpf("producer_name='%S'\n", str8_from_rdi_string_idx(rdi, tli->producer_name_string_idx)); - scratch_end(scratch); - } - - ////////////////////////////// - //- rjf: dump binary sections - // - DumpSubset(BinarySections) - { - U64 count = 0; - RDI_BinarySection *v = rdi_table_from_name(rdi, BinarySections, &count); - for EachIndex(idx, count) - { - Temp scratch = scratch_begin(&arena, 1); - RDI_BinarySection *bin_section = &v[idx]; - dumpf("binary_section[%I64u]:\n", idx); - dumpf(" name ='%S'\n", str8_from_rdi_string_idx(rdi, bin_section->name_string_idx)); - dumpf(" flags =%S\n", rdi_string_from_binary_section_flags(scratch.arena, bin_section->flags)); - dumpf(" voff_first=%#08x\n", bin_section->voff_first); - dumpf(" voff_opl =%#08x\n", bin_section->voff_opl); - dumpf(" foff_first=%#08x\n", bin_section->foff_first); - dumpf(" foff_opl =%#08x\n", bin_section->foff_opl); - scratch_end(scratch); - } - } - - ////////////////////////////// - //- rjf: dump file paths - // - DumpSubset(FilePaths) - { - U64 count = 0; - RDI_FilePathNode *v = rdi_table_from_name(rdi, FilePathNodes, &count); - RDI_FilePathNode *nil = &v[0]; - for EachIndex(idx, count) - { - RDI_FilePathNode *root = &v[idx]; - if(root->parent_path_node != 0) { continue; } - S64 depth = 0; - for(RDI_FilePathNode *n = root, *rec_next = nil; n != nil; n = rec_next) - { - // rjf: dump - if(n->source_file_idx == 0) - { - dumpf("%.*s[%I64u] '%S'\n", depth*2, indent.str, (U64)(n - v), str8_from_rdi_string_idx(rdi, n->name_string_idx)); - } - else - { - dumpf("%.*s[%I64u] '%S': source_file=%u\n", depth*2, indent.str, (U64)(n - v), str8_from_rdi_string_idx(rdi, n->name_string_idx), n->source_file_idx); - } - - // rjf: find next node - rec_next = nil; - if(n->first_child) - { - rec_next = rdi_element_from_name_idx(rdi, FilePathNodes, n->first_child); - depth += 1; - } - else for(RDI_FilePathNode *p = n; - p != nil && p != root; - p = rdi_element_from_name_idx(rdi, FilePathNodes, p->parent_path_node), depth -= 1) - { - if(p->next_sibling) - { - rec_next = rdi_element_from_name_idx(rdi, FilePathNodes, p->next_sibling); - break; - } - } - } - } - } - - ////////////////////////////// - //- rjf: dump source files - // - DumpSubset(SourceFiles) - { - U64 source_file_count = 0; - RDI_SourceFile *source_file_array = rdi_table_from_name(rdi, SourceFiles, &source_file_count); - for(U64 i = 0; i < source_file_count; ++i) - { - RDI_SourceFile *source_file = &source_file_array[i]; - dumpf("source_file[%4llu] = { file_path_node_idx = %4u, source_line_map = %4u, path = '%S' }\n", - i, - source_file->file_path_node_idx, - source_file->source_line_map_idx, - str8_from_rdi_string_idx(rdi, source_file->normal_full_path_string_idx)); - } - } - - ////////////////////////////// - //- rjf: dump units - // - DumpSubset(Units) - { - U64 count = 0; - RDI_Unit *v = rdi_table_from_name(rdi, Units, &count); - for EachIndex(idx, count) - { - RDI_Unit *unit = &v[idx]; - Temp scratch = scratch_begin(&arena, 1); - dumpf("unit[%I64u]:\n", idx); - dumpf(" unit_name ='%S'\n", str8_from_rdi_string_idx(rdi, unit->unit_name_string_idx)); - dumpf(" compiler_name ='%S'\n", str8_from_rdi_string_idx(rdi, unit->compiler_name_string_idx)); - dumpf(" source_file_path =%u\n", unit->source_file_path_node); - dumpf(" object_file_path =%u\n", unit->object_file_path_node); - dumpf(" archive_file_path=%u\n", unit->archive_file_path_node); - dumpf(" build_path =%u\n", unit->build_path_node); - dumpf(" language =%S\n", rdi_string_from_language(scratch.arena, unit->language)); - dumpf(" line_table_idx =%u\n", unit->line_table_idx); - scratch_end(scratch); - } - } - - ////////////////////////////// - //- rjf: dump unit vmap - // - DumpSubset(UnitVMap) - { - U64 count = 0; - RDI_VMapEntry *v = rdi_table_from_name(rdi, UnitVMap, &count); - for EachIndex(idx, count) - { - dumpf("%I64x -> #%I64u\n", v[idx].voff, v[idx].idx); - } - } - - ////////////////////////////// - //- rjf: dump line tables - // - DumpSubset(LineTables) - { - U64 count = 0; - RDI_LineTable *v = rdi_table_from_name(rdi, LineTables, &count); - for EachIndex(idx, count) - { - RDI_LineTable *line_table = &v[idx]; - RDI_ParsedLineTable parsed_line_table = {0}; - rdi_parsed_from_line_table(rdi, line_table, &parsed_line_table); - dumpf("line_table[%I64u]:\n", idx); - for EachIndex(line_idx, parsed_line_table.count) - { - U64 first = parsed_line_table.voffs[line_idx]; - U64 opl = parsed_line_table.voffs[line_idx + 1]; - RDI_Line *line = parsed_line_table.lines + line_idx; - RDI_Column *col = 0; - if(line_idx < parsed_line_table.col_count) - { - col = parsed_line_table.cols + line_idx; - } - if(col == 0) - { - dumpf(" [0x%08I64x,0x%08I64x) file=%u; line=%u\n", first, opl, line->file_idx, line->line_num); - } - else - { - dumpf(" [0x%08I64x,0x%08I64x) file=%u; line=%u; columns=[%u,%u)\n", first, opl, line->file_idx, line->line_num, col->col_first, col->col_opl); - } - } - } - } - - ////////////////////////////// - //- rjf: dump source line maps - // - DumpSubset(SourceLineMaps) - { - U64 count = 0; - RDI_SourceLineMap *v = rdi_table_from_name(rdi, SourceLineMaps, &count); - for EachIndex(idx, count) - { - Temp scratch = scratch_begin(&arena, 1); - RDI_ParsedSourceLineMap line_map = {0}; - rdi_parsed_from_source_line_map(rdi, &v[idx], &line_map); - dumpf("source_line_map[%I64u]:\n", idx); - for EachIndex(line_num_idx, line_map.count) - { - Temp temp = temp_begin(scratch.arena); - String8List list = {0}; - U32 voff_lo = line_map.ranges[line_num_idx]; - U32 voff_hi = ClampTop(line_map.ranges[line_num_idx + 1], line_map.voff_count); - for(U64 voff_idx = voff_lo; voff_idx < voff_hi; voff_idx += 1) - { - str8_list_pushf(temp.arena, &list, "%#llx", line_map.voffs[voff_idx]); - } - String8 voffs_string = str8_list_join(temp.arena, &list, &(StringJoin){.sep = str8_lit(", ")}); - dumpf(" %u: %S\n", line_map.nums[line_num_idx], voffs_string); - temp_end(temp); - } - scratch_end(scratch); - } - } - - ////////////////////////////// - //- rjf: dump type nodes - // - DumpSubset(TypeNodes) - { - U64 count = 0; - RDI_TypeNode *v = rdi_table_from_name(rdi, TypeNodes, &count); - for EachIndex(idx, count) - { - Temp scratch = scratch_begin(&arena, 1); - RDI_TypeNode *type = &v[idx]; - String8 type_kind_str = {0}; - type_kind_str.str = rdi_string_from_type_kind(type->kind, &type_kind_str.size); - dumpf("type[%I64u]:\n", idx); - dumpf(" kind =%S\n", type_kind_str); - if(type->kind == RDI_TypeKind_Modifier) - { - dumpf(" flags =%S\n", rdi_string_from_type_modifier_flags(scratch.arena, type->flags)); - } - else if(type->flags != 0) - { - dumpf(" flags=%#x (missing stringizer path)\n", type->flags); - } - dumpf(" byte_size =%u\n", type->byte_size); - if(RDI_TypeKind_FirstBuiltIn <= type->kind && type->kind <= RDI_TypeKind_LastBuiltIn) - { - dumpf(" built_in.name ='%S'\n", str8_from_rdi_string_idx(rdi, type->built_in.name_string_idx)); - } - else if(type->kind == RDI_TypeKind_Array) - { - dumpf(" constructed.direct_type =%u\n", type->constructed.direct_type_idx); - dumpf(" constructed.array_count =%u\n", type->constructed.count); - } - else if(type->kind == RDI_TypeKind_Function) - { - U32 param_idx_count = 0; - U32 *param_idx_array = rdi_idx_run_from_first_count(rdi, type->constructed.param_idx_run_first, type->constructed.count, ¶m_idx_count); - String8List param_idx_strings = {0}; - for(U32 param_idx = 0; param_idx < param_idx_count; param_idx += 1) - { - str8_list_pushf(scratch.arena, ¶m_idx_strings, "%u", param_idx_array[param_idx]); - } - String8 param_idx_str = str8_list_join(scratch.arena, ¶m_idx_strings, &(StringJoin){.pre = str8_lit("["), .sep = str8_lit(", "), .post = str8_lit("]")}); - dumpf(" constructed.params =%S\n", param_idx_str); - dumpf(" return_type =%u\n", type->constructed.direct_type_idx); - } - else if(type->kind == RDI_TypeKind_Method) - { - U32 param_idx_count = 0; - U32 *param_idx_array = rdi_idx_run_from_first_count(rdi, type->constructed.param_idx_run_first, type->constructed.count, ¶m_idx_count); - String8 this_type_str = str8_lit("\?\?\?"); - if(param_idx_count > 0) - { - this_type_str = push_str8f(scratch.arena, "%u", param_idx_array[0]); - param_idx_count -= 1; - param_idx_array += 1; - } - String8List param_idx_strings = {0}; - for(U32 param_idx = 0; param_idx < param_idx_count; param_idx += 1) - { - str8_list_pushf(scratch.arena, ¶m_idx_strings, "%u", param_idx_array[param_idx]); - } - String8 param_idx_str = str8_list_join(scratch.arena, ¶m_idx_strings, &(StringJoin){.pre = str8_lit("["), .sep = str8_lit(", "), .post = str8_lit("]")}); - dumpf(" constructed.this_type =%S\n", this_type_str); - dumpf(" constructed.params =%S\n", param_idx_str); - dumpf(" return_type =%u\n", type->constructed.direct_type_idx); - } - else if(RDI_TypeKind_FirstConstructed <= type->kind && type->kind <= RDI_TypeKind_LastConstructed) - { - dumpf(" constructed.direct_type =%u\n", type->constructed.direct_type_idx); - } - else if(RDI_TypeKind_FirstUserDefined <= type->kind && type->kind <= RDI_TypeKind_LastUserDefined) - { - dumpf(" user_defined.name ='%S'\n", str8_from_rdi_string_idx(rdi, type->user_defined.name_string_idx)); - dumpf(" user_defined.direct_type=%u\n", type->user_defined.direct_type_idx); - dumpf(" user_defined.udt =%u\n", type->user_defined.udt_idx); - } - else if(type->kind == RDI_TypeKind_Bitfield) - { - dumpf(" bitfield.off =%u\n", type->bitfield.off); - dumpf(" bitfield.size =%u\n", type->bitfield.size); - } - scratch_end(scratch); - } - } - - ////////////////////////////// - //- rjf: dump user defined types - // - DumpSubset(UserDefinedTypes) - { - U64 count = 0; - RDI_UDT *v = rdi_table_from_name(rdi, UDTs, &count); - U64 all_members_count = 0; - RDI_Member *all_members = rdi_table_from_name(rdi, Members, &all_members_count); - U64 all_enum_members_count = 0; - RDI_EnumMember *all_enum_members = rdi_table_from_name(rdi, EnumMembers, &all_enum_members_count); - for EachIndex(idx, count) - { - RDI_UDT *udt = &v[idx]; - Temp scratch = scratch_begin(&arena, 1); - dumpf("udt[%I64u]:\n", idx); - dumpf(" self_type=%u\n", udt->self_type_idx); - dumpf(" flags =%S\n", rdi_string_from_udt_flags(scratch.arena, udt->flags)); - if(udt->file_idx != 0) - { - dumpf(" loc ={file=%u; line=%u; col=%u}\n", udt->file_idx, udt->line, udt->col); - } - if(udt->flags & RDI_UDTFlag_EnumMembers) - { - U32 member_hi = ClampTop(udt->member_first + udt->member_count, all_enum_members_count); - U32 member_lo = ClampTop(udt->member_first, member_hi); - if(member_lo < member_hi) - { - dumpf(" enum_members=\n"); - dumpf(" {\n"); - for(U32 enum_member_idx = member_lo; enum_member_idx < member_hi; enum_member_idx += 1) - { - RDI_EnumMember *enum_member = &all_enum_members[enum_member_idx]; - dumpf(" { %llu, '%S' }\n", enum_member->val, str8_from_rdi_string_idx(rdi, enum_member->name_string_idx)); - } - dumpf(" }\n"); - } - } - else - { - U32 member_hi = ClampTop(udt->member_first + udt->member_count, all_members_count); - U32 member_lo = ClampTop(udt->member_first, member_hi); - if(member_lo < member_hi) - { - dumpf(" members=\n"); - dumpf(" {\n"); - for(U32 member_idx = member_lo; member_idx < member_hi; member_idx += 1) - { - RDI_Member *member = &all_members[member_idx]; - String8 kind_str = rdi_string_from_member_kind(scratch.arena, member->kind); - String8 name_str = str8_from_rdi_string_idx(rdi, member->name_string_idx); - dumpf(" { kind=%S, type=%u, off=%u, name='%S' }\n", kind_str, member->type_idx, member->off, name_str); - } - dumpf(" }\n"); - } - } - scratch_end(scratch); - } - } - - ////////////////////////////// - //- rjf: dump global variables - // - DumpSubset(GlobalVariables) - { - U64 count = 0; - RDI_GlobalVariable *v = rdi_table_from_name(rdi, GlobalVariables, &count); - for EachIndex(idx, count) - { - RDI_GlobalVariable *gvar = &v[idx]; - Temp scratch = scratch_begin(&arena, 1); - dumpf("global_variable[%I64u]:\n", idx); - dumpf(" name ='%S'\n", str8_from_rdi_string_idx(rdi, gvar->name_string_idx)); - dumpf(" link_flags =%S\n", rdi_string_from_link_flags(scratch.arena, gvar->link_flags)); - dumpf(" voff =%#08x\n", gvar->voff); - dumpf(" type_idx =%u\n", gvar->type_idx); - dumpf(" container_idx=%u\n", gvar->container_idx); - scratch_end(scratch); - } - } - - ////////////////////////////// - //- rjf: dump global variables vmap - // - DumpSubset(GlobalVariablesVMap) - { - U64 count = 0; - RDI_VMapEntry *v = rdi_table_from_name(rdi, GlobalVMap, &count); - for EachIndex(idx, count) - { - dumpf("%I64x -> #%I64u\n", v[idx].voff, v[idx].idx); - } - } - - ////////////////////////////// - //- rjf: dump thread variables - // - DumpSubset(ThreadVariables) - { - U64 count = 0; - RDI_ThreadVariable *v = rdi_table_from_name(rdi, ThreadVariables, &count); - for EachIndex(idx, count) - { - RDI_ThreadVariable *tvar = &v[idx]; - Temp scratch = scratch_begin(&arena, 1); - dumpf("thread_variable[%I64u]:\n", idx); - dumpf(" name ='%S'\n", str8_from_rdi_string_idx(rdi, tvar->name_string_idx)); - dumpf(" link_flags =%S\n", rdi_string_from_link_flags(scratch.arena, tvar->link_flags)); - dumpf(" tls_off =%#08x\n", tvar->tls_off); - dumpf(" type_idx =%u\n", tvar->type_idx); - dumpf(" container_idx=%u\n", tvar->container_idx); - scratch_end(scratch); - } - } - - ////////////////////////////// - //- rjf: dump constants - // - DumpSubset(Constants) - { - U64 count = 0; - RDI_Constant *v = rdi_table_from_name(rdi, Constants, &count); - for EachIndex(idx, count) - { - RDI_Constant *cnst = &v[idx]; - dumpf("constant[%I64u]:\n", idx); - dumpf(" name ='%S'\n", str8_from_rdi_string_idx(rdi, cnst->name_string_idx)); - dumpf(" type_idx ='%u'\n", cnst->type_idx); - } - } - - ////////////////////////////// - //- rjf: dump procedures - // - DumpSubset(Procedures) - { - RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); - U64 count = 0; - RDI_Procedure *v = rdi_table_from_name(rdi, Procedures, &count); - for EachIndex(idx, count) - { - RDI_Procedure *proc = &v[idx]; - Temp scratch = scratch_begin(&arena, 1); - String8List frame_base_location_strings = rdi_strings_from_locations(scratch.arena, rdi, tli->arch, r1u64(proc->frame_base_location_first, proc->frame_base_location_opl)); - dumpf("procedure[%I64u]:\n", idx); - dumpf(" name ='%S'\n", str8_from_rdi_string_idx(rdi, proc->name_string_idx)); - dumpf(" link_name ='%S'\n", str8_from_rdi_string_idx(rdi, proc->link_name_string_idx)); - dumpf(" link_flags =%S\n", rdi_string_from_link_flags(scratch.arena, proc->link_flags)); - dumpf(" type_idx =%u\n", proc->type_idx); - dumpf(" root_scope_idx =%u\n", proc->root_scope_idx); - dumpf(" container_idx =%u\n", proc->container_idx); - dumpf(" frame_base (first=%u, opl=%u)=\n", proc->frame_base_location_first, proc->frame_base_location_opl); - dumpf(" {\n"); - for(String8Node *n = frame_base_location_strings.first; n != 0; n = n->next) - { - dumpf(" %S\n", n->string); - } - dumpf(" }\n"); - scratch_end(scratch); - } - } - - ////////////////////////////// - //- rjf: dump scopes - // - DumpSubset(Scopes) - { - RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); - U64 scope_voffs_count = 0; - U64 *scope_voffs = rdi_table_from_name(rdi, ScopeVOffData, &scope_voffs_count); - U64 locals_count = 0; - RDI_Local *locals = rdi_table_from_name(rdi, Locals, &locals_count); - U64 count = 0; - RDI_Scope *v = rdi_table_from_name(rdi, Scopes, &count); - RDI_Scope *nil = &v[0]; - for EachIndex(idx, count) - { - if(v[idx].parent_scope_idx != 0) { continue; } - RDI_Scope *root = &v[idx]; - S64 depth = 0; - for(RDI_Scope *scope = root, *rec_next = nil; scope != nil; scope = rec_next) - { - // rjf: scope list(voff_range) => string - String8 voff_range_list_string = {0}; - { - U32 voff_range_lo = ClampTop(scope->voff_range_first, scope_voffs_count); - U32 voff_range_hi = ClampTop(scope->voff_range_opl, scope_voffs_count); - U32 voff_range_count = (voff_range_hi - voff_range_lo); - U64 *voff_ptr = scope_voffs + voff_range_lo; - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - for(U64 i = 0; i+2 <= voff_range_count; i += 2) - { - str8_list_pushf(scratch.arena, &list, "[%#llx, %#llx)", voff_ptr[i+0], voff_ptr[i+1]); - } - voff_range_list_string = str8_list_join(arena, &list, &(StringJoin){.sep = str8_lit(", ")}); - scratch_end(scratch); - } - - // rjf: scope procedure -> name - String8 procedure_name = str8_from_rdi_string_idx(rdi, rdi_element_from_name_idx(rdi, Procedures, scope->proc_idx)->name_string_idx); - if(procedure_name.size == 0) - { - procedure_name = str8_lit("???"); - } - - // rjf: scope inline site -> name - String8 inline_site_name = str8_from_rdi_string_idx(rdi, rdi_element_from_name_idx(rdi, InlineSites, scope->inline_site_idx)->name_string_idx); - if(inline_site_name.size == 0) - { - inline_site_name = str8_lit("???"); - } - - // rjf: dump - dumpf("%.*sscope[%I64u]:\n", depth*2, indent.str, (U64)(scope - v)); - dumpf("%.*s{\n", depth*2, indent.str); - dumpf("%.*s proc_idx =%u ('%S')\n", depth*2, indent.str, scope->proc_idx, procedure_name); - dumpf("%.*s first_child_scope_idx =%u\n", depth*2, indent.str, scope->first_child_scope_idx); - dumpf("%.*s next_sibling_scope_idx=%u\n", depth*2, indent.str, scope->next_sibling_scope_idx); - if(scope->inline_site_idx != 0) - { - dumpf("%.*s inline_site_idx =%u ('%S')\n", depth*2, indent.str, scope->inline_site_idx, inline_site_name); - } - dumpf("%.*s voff_ranges =%S\n", depth*2, indent.str, voff_range_list_string); - dumpf("%.*s locals=\n", depth*2, indent.str); - dumpf("%.*s {\n", depth*2, indent.str); - { - U32 local_lo = ClampTop(scope->local_first, locals_count); - U32 local_hi = ClampTop(local_lo + scope->local_count, locals_count); - if(local_lo < local_hi) - { - for(U32 local_idx = local_lo; local_idx < local_hi; local_idx += 1) - { - Temp scratch = scratch_begin(&arena, 1); - RDI_Local *local_ptr = &locals[local_idx]; - dumpf("%.*s local[%u]:\n", depth*2, indent.str, local_idx); - dumpf("%.*s kind =%S\n", depth*2, indent.str, rdi_string_from_local_kind(scratch.arena, local_ptr->kind)); - dumpf("%.*s name ='%S'\n", depth*2, indent.str, str8_from_rdi_string_idx(rdi, local_ptr->name_string_idx)); - dumpf("%.*s type_idx=%u\n", depth*2, indent.str, local_ptr->type_idx); - dumpf("%.*s locations=\n", depth*2, indent.str); - dumpf("%.*s {\n", depth*2, indent.str); - if(local_ptr->location_first < local_ptr->location_opl) - { - String8List locations_strings = rdi_strings_from_locations(arena, rdi, tli->arch, r1u64(local_ptr->location_first, local_ptr->location_opl)); - for(String8Node *n = locations_strings.first; n != 0; n = n->next) - { - dumpf("%.*s %S\n", depth*2, indent.str, n->string); - } - } - dumpf("%.*s }\n", depth*2, indent.str); - scratch_end(scratch); - } - } - } - dumpf("%.*s }\n", depth*2, indent.str); - - // rjf: get next recursion - rec_next = nil; - if(scope->first_child_scope_idx) - { - rec_next = rdi_element_from_name_idx(rdi, Scopes, scope->first_child_scope_idx); - depth += 1; - } - else for(RDI_Scope *p = scope; - p != nil; - p = rdi_element_from_name_idx(rdi, Scopes, p->parent_scope_idx), depth -= 1) - { - dumpf("%.*s} [/%I64u] \n", depth*2, indent.str, (U64)(p-v)); - if(p->next_sibling_scope_idx != 0) - { - rec_next = rdi_element_from_name_idx(rdi, Scopes, p->next_sibling_scope_idx); - break; - } - } - } - } - } - - ////////////////////////////// - //- rjf: dump scope vmap - // - DumpSubset(ScopeVMap) - { - U64 count = 0; - RDI_VMapEntry *v = rdi_table_from_name(rdi, ScopeVMap, &count); - for EachIndex(idx, count) - { - dumpf("%I64x -> #%I64u\n", v[idx].voff, v[idx].idx); - } - } - - ////////////////////////////// - //- rjf: dump inline sites - // - DumpSubset(InlineSites) - { - U64 count = 0; - RDI_InlineSite *v = rdi_table_from_name(rdi, InlineSites, &count); - for EachIndex(idx, count) - { - RDI_InlineSite *inline_site = &v[idx]; - Temp scratch = scratch_begin(&arena, 1); - String8 inline_site_idx = push_str8f(scratch.arena, "inline_site[%u]", idx); - String8 type_idx = push_str8f(scratch.arena, "type_idx = %u,", inline_site->type_idx); - String8 owner_type_idx = push_str8f(scratch.arena, "owner_type_idx = %u,", inline_site->owner_type_idx); - String8 line_table_idx = push_str8f(scratch.arena, "line_table_idx = %u,", inline_site->line_table_idx); - dumpf("%-20S = { %-25S %-25S %-25S name = '%-20S' }\n", - inline_site_idx, - type_idx, - owner_type_idx, - line_table_idx, - str8_from_rdi_string_idx(rdi, inline_site->name_string_idx)); - scratch_end(scratch); - } - } - - ////////////////////////////// - //- rjf: dump name maps - // - DumpSubset(NameMaps) - { - Temp scratch = scratch_begin(&arena, 1); - U64 count = 0; - RDI_NameMap *v = rdi_table_from_name(rdi, NameMaps, &count); - for EachIndex(idx, count) - { - if(idx > 0) { dumpf("\n"); } - RDI_ParsedNameMap name_map = {0}; - rdi_parsed_from_name_map(rdi, &v[idx], &name_map); - dumpf("name_map[%S]:\n", rdi_string_from_name_map_kind(idx)); - for EachIndex(bucket_idx, name_map.bucket_count) - { - if(name_map.buckets[bucket_idx].node_count == 0) { continue; } - dumpf(" bucket[%I64u]:\n", bucket_idx); - RDI_NameMapNode *node_ptr = name_map.nodes + name_map.buckets[bucket_idx].first_node; - RDI_NameMapNode *node_opl = node_ptr + name_map.buckets[bucket_idx].node_count; - for(;node_ptr < node_opl; node_ptr += 1) - { - Temp temp = temp_begin(scratch.arena); - String8 str = str8_from_rdi_string_idx(rdi, node_ptr->string_idx); - String8 indices = {0}; - if(node_ptr->match_count == 1) - { - indices = push_str8f(temp.arena, "%u", node_ptr->match_idx_or_idx_run_first); - } - else - { - U32 idx_count = 0; - U32 *idx_array = rdi_idx_run_from_first_count(rdi, node_ptr->match_idx_or_idx_run_first, node_ptr->match_count, &idx_count); - String8List idx_strings = {0}; - for(U32 idx_i = 0; idx_i < idx_count; idx_i += 1) - { - U32 idx = idx_array[idx_i]; - str8_list_pushf(temp.arena, &idx_strings, "%u"); - } - indices = str8_list_join(scratch.arena, &idx_strings, &(StringJoin){.sep = str8_lit(", ")}); - } - dumpf(" match \"%S\": %S\n", str, indices); - temp_end(temp); - } - } - } - scratch_end(scratch); - } - - ////////////////////////////// - //- rjf: dump strings - // - DumpSubset(Strings) - { - U64 count = 0; - U32 *v = rdi_table_from_name(rdi, StringTable, &count); - for EachIndex(idx, count) - { - dumpf("string[%I64u]: \"%S\"\n", idx, str8_from_rdi_string_idx(rdi, idx)); - } - } - -#undef DumpSubset -#undef dumpf -#undef dump - return strings; -} +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#include "lib_rdi/rdi.c" +#include "lib_rdi/rdi_parse.c" + +//////////////////////////////// +//~ rjf: RDI Decompression + +internal void +rdi_decompress_parsed(U8 *decompressed_data, U64 decompressed_size, RDI_Parsed *og_rdi) +{ + // rjf: copy header + RDI_Header *src_header = (RDI_Header *)og_rdi->raw_data; + RDI_Header *dst_header = (RDI_Header *)decompressed_data; + { + MemoryCopy(dst_header, src_header, sizeof(RDI_Header)); + } + + // rjf: copy & adjust sections for decompressed version + if(og_rdi->sections_count != 0) + { + RDI_Section *dsec_base = (RDI_Section *)(decompressed_data + dst_header->data_section_off); + MemoryCopy(dsec_base, (U8 *)og_rdi->raw_data + src_header->data_section_off, sizeof(RDI_Section) * og_rdi->sections_count); + U64 off = dst_header->data_section_off + sizeof(RDI_Section) * og_rdi->sections_count; + off += 7; + off -= off%8; + for(U64 idx = 0; idx < og_rdi->sections_count; idx += 1) + { + dsec_base[idx].encoding = RDI_SectionEncoding_Unpacked; + dsec_base[idx].off = off; + dsec_base[idx].encoded_size = dsec_base[idx].unpacked_size; + off += dsec_base[idx].unpacked_size; + off += 7; + off -= off%8; + } + } + + // rjf: decompress sections into new decompressed file buffer + if(og_rdi->sections_count != 0) + { + RDI_Section *src_first = og_rdi->sections; + RDI_Section *dst_first = (RDI_Section *)(decompressed_data + dst_header->data_section_off); + RDI_Section *src_opl = src_first + og_rdi->sections_count; + RDI_Section *dst_opl = dst_first + og_rdi->sections_count; + for(RDI_Section *src = src_first, *dst = dst_first; + src < src_opl && dst < dst_opl; + src += 1, dst += 1) + { + rr_lzb_simple_decode((U8*)og_rdi->raw_data + src->off, src->encoded_size, + decompressed_data + dst->off, dst->unpacked_size); + } + } +} + +//////////////////////////////// +//~ rjf: Lookup Helpers + +internal String8 +str8_from_rdi_string_idx(RDI_Parsed *rdi, U32 idx) +{ + String8 result = {0}; + result.str = rdi_string_from_idx(rdi, idx, &result.size); + return result; +} + +//////////////////////////////// +//~ rjf: String <=> Enum + +internal String8 +rdi_string_from_data_section_kind(Arena *arena, RDI_SectionKind v) +{ + String8 result = {0}; + switch(v) + { + default:{result = push_str8f(arena, "", v);}break; +#define X(name, lower, type) case RDI_SectionKind_##name:{result = str8_lit(#name);}break; + RDI_SectionKind_XList +#undef X + } + return result; +} + +internal String8 +rdi_string_from_arch(Arena *arena, RDI_Arch v) +{ + String8 result = {0}; + switch(v) + { + default:{result = push_str8f(arena, "", v);} break; +#define X(name) case RDI_Arch_##name:{result = str8_lit(#name);} break; + RDI_Arch_XList +#undef X + } + return result; +} + +internal String8 +rdi_string_from_language(Arena *arena, RDI_Language v) +{ + String8 result = {0}; + switch(v) + { + default:{result = push_str8f(arena, "", v);}break; +#define X(name) case RDI_Language_##name:{result = str8_lit(#name);}break; + RDI_Language_XList +#undef X + } + return result; +} + +internal String8 +rdi_string_from_local_kind(Arena *arena, RDI_LocalKind v) +{ + String8 result = {0}; + switch(v) + { + default:{result = push_str8f(arena, "", v);}break; +#define X(name) case RDI_LocalKind_##name:{result = str8_lit(#name);}break; + RDI_LocalKind_XList +#undef X + } + return result; +} + +#if 0 +internal String8 +rdi_string_from_type_kind(Arena *arena, RDI_TypeKind v) +{ + String8 result = {0}; + switch(v) + { + default:{result = push_str8f(arena, "", v);}break; +#define X(name) case RDI_TypeKind_##name:{result = str8_lit(#name);}break; + RDI_TypeKind_XList +#undef X + } + return result; +} +#endif + +internal String8 +rdi_string_from_member_kind(Arena *arena, RDI_MemberKind v) +{ + String8 result = {0}; + switch(v) + { + default:{result = push_str8f(arena, "", v);}break; +#define X(name) case RDI_MemberKind_##name:{result = str8_lit(#name);}break; + RDI_MemberKind_XList +#undef X + } + return result; +} + +internal String8 +rdi_string_from_name_map_kind(RDI_NameMapKind kind) +{ + String8 result = {0}; + switch(kind) + { + default:{}break; +#define X(name) case RDI_NameMapKind_##name:{result = str8_lit(#name);}break; + RDI_NameMapKind_XList +#undef X + } + return result; +} + +internal String8 +rdi_string_from_reg_code_x86(U64 reg_code) +{ + String8 result = {0}; + switch(reg_code) + { + default:{}break; +#define X(name, value) case RDI_RegCodeX86_##name:{result = str8_lit(#name);}break; + RDI_RegCodeX86_XList +#undef X + } + return result; +} + +internal String8 +rdi_string_from_reg_code_x64(U64 reg_code) +{ + String8 result = {0}; + switch(reg_code) + { + default:{}break; +#define X(name, value) case RDI_RegCodeX64_##name:{result = str8_lit(#name);}break; + RDI_RegCodeX64_XList +#undef X + } + return result; +} + +internal String8 +rdi_string_from_reg_code(Arena *arena, RDI_Arch arch, U64 reg_code) +{ + String8 result = {0}; + switch(arch) + { + default: + case RDI_Arch_NULL: {result = push_str8f(arena, "??? (%llu)", reg_code);}break; + case RDI_Arch_X86: {result = rdi_string_from_reg_code_x86(reg_code);}break; + case RDI_Arch_X64: {result = rdi_string_from_reg_code_x64(reg_code);}break; + } + return result; +} + +internal String8 +rdi_string_from_eval_op(Arena *arena, RDI_EvalOp op) +{ + String8 result = {0}; + switch(op) + { + default:{result = push_str8f(arena, "%#x", op);}break; +#define X(name) case RDI_EvalOp_##name:{result = str8_lit("#name");}break; + RDI_EvalOp_XList +#undef X + } + return result; +} + +internal String8 +rdi_string_from_eval_type_group(Arena *arena, RDI_EvalTypeGroup eval_type_group) +{ + String8 result = {0}; + switch(eval_type_group) + { + default:{result = push_str8f(arena, "%#x", eval_type_group);}break; +#define X(name) case RDI_EvalTypeGroup_##name:{result = str8_lit("#name");}break; + RDI_EvalTypeGroup_XList +#undef X + } + return result; +} + +internal String8 +rdi_string_from_binary_section_flags(Arena *arena, RDI_BinarySectionFlags flags) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; +#define X(name) if (flags & RDI_BinarySectionFlag_##name) { flags &= ~RDI_BinarySectionFlag_##name; str8_list_push(scratch.arena, &list, str8_lit(#name)); } + RDI_BinarySectionFlags_XList; +#undef X + StringJoin join = {.sep = str8_lit("|")}; + String8 result = str8_list_join(arena, &list, &join); + if(result.size == 0) { result = str8_lit("None"); } + scratch_end(scratch); + return result; +} + +internal String8 +rdi_string_from_type_modifier_flags(Arena *arena, RDI_TypeModifierFlags flags) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; +#define X(name) if(flags & RDI_TypeModifierFlag_##name) { flags &= ~RDI_TypeModifierFlag_##name; str8_list_push(scratch.arena, &list, str8_lit(#name)); } + RDI_TypeModifierFlags_XList; +#undef X + StringJoin join = {.sep = str8_lit("|")}; + String8 result = str8_list_join(arena, &list, &join); + if(result.size == 0) { result = str8_lit("None"); } + scratch_end(scratch); + return result; +} + +internal String8 +rdi_string_from_udt_flags(Arena *arena, RDI_UDTFlags flags) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; +#define X(name) if (flags & RDI_UDTFlag_##name) { flags &= ~RDI_UDTFlag_##name; str8_list_push(scratch.arena, &list, str8_lit(#name)); } + RDI_UDTFlags_XList; +#undef X + StringJoin join = {.sep = str8_lit("|")}; + String8 result = str8_list_join(arena, &list, &join); + if(result.size == 0) { result = str8_lit("None"); } + scratch_end(scratch); + return result; +} + +internal String8 +rdi_string_from_link_flags(Arena *arena, RDI_LinkFlags flags) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; +#define X(name) if (flags & RDI_LinkFlag_##name) { flags &= ~RDI_LinkFlag_##name; str8_list_push(scratch.arena, &list, str8_lit(#name)); } + RDI_LinkFlags_XList; +#undef X + StringJoin join = {.sep = str8_lit("|")}; + String8 result = str8_list_join(arena, &list, &join); + if(result.size == 0) { result = str8_lit("None"); } + scratch_end(scratch); + return result; +} + +internal String8 +rdi_string_from_bytecode(Arena *arena, RDI_Arch arch, String8 bc) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List fmt = {0}; + for(U64 cursor = 0; cursor < bc.size; ) + { + RDI_EvalOp op = RDI_EvalOp_Stop; + cursor += str8_deserial_read_struct(bc, cursor, &op); + + U16 ctrlbits = rdi_eval_op_ctrlbits_table[op]; + U32 imm_size = RDI_DECODEN_FROM_CTRLBITS(ctrlbits); + + String8 imm = {0}; + cursor += str8_deserial_read_block(bc, cursor, imm_size, &imm); + if (imm.size != imm_size) { + str8_list_pushf(scratch.arena, &fmt, "(ERROR: not enough bytes to read immediate)"); + break; + } + + String8 imm_fmt = {0}; + switch (op) { + case RDI_EvalOp_Stop: goto exit; + case RDI_EvalOp_Noop: break; + case RDI_EvalOp_Cond: break; + case RDI_EvalOp_Skip: { + imm_fmt = push_str8f(scratch.arena, "%u", *(U16 *)imm.str); + } break; + case RDI_EvalOp_MemRead: { + imm_fmt = push_str8f(scratch.arena, "%u", *(U8 *)imm.str); + } break; + case RDI_EvalOp_RegRead: { + U32 regread = *(U32 *)imm.str; + RDI_RegCode reg_code = Extract8(regread, 0); + U8 byte_size = Extract8(regread, 1); + U8 byte_off = Extract8(regread, 2); + String8 reg_str = rdi_string_from_reg_code(scratch.arena, arch, reg_code); + imm_fmt = push_str8f(scratch.arena, "%S+%I64u, Size: %u", reg_str, byte_off, byte_size); + } break; + case RDI_EvalOp_RegReadDyn: break; + case RDI_EvalOp_FrameOff: { + imm_fmt = push_str8f(scratch.arena, "%+lld", *(S64 *)imm.str); + } break; + case RDI_EvalOp_ModuleOff: { + imm_fmt = push_str8f(scratch.arena, "%u", *(U32 *)imm.str); + } break; + case RDI_EvalOp_TLSOff: { + imm_fmt = push_str8f(scratch.arena, "%u", *(U32 *)imm.str); + } break; + case RDI_EvalOp_ConstU8: { + imm_fmt = push_str8f(scratch.arena, "%u", *(U8 *)imm.str); + } break; + case RDI_EvalOp_ConstU16: { + imm_fmt = push_str8f(scratch.arena, "%u", *(U16 *)imm.str); + } break; + case RDI_EvalOp_ConstU32: { + imm_fmt = push_str8f(scratch.arena, "%u", *(U32 *)imm.str); + } break; + case RDI_EvalOp_ConstU64: { + imm_fmt = push_str8f(scratch.arena, "%llu", *(U64 *)imm.str); + } break; + case RDI_EvalOp_ConstU128: { + imm_fmt = push_str8f(scratch.arena, "Lo: %llu, Hi: %llu", *(U64 *)imm.str, *((U64 *)imm.str + 1)); + } break; + case RDI_EvalOp_ConstString: { + U8 size = *(U8 *)imm.str; + String8 string = {0}; + cursor += str8_deserial_read_block(bc, cursor, size, &string); + + imm_fmt = push_str8f(scratch.arena, "(%u) \"%S\"", size, string); + } break; + case RDI_EvalOp_Abs: + case RDI_EvalOp_Neg: + case RDI_EvalOp_Add: + case RDI_EvalOp_Sub: + case RDI_EvalOp_Mul: + case RDI_EvalOp_Div: + case RDI_EvalOp_Mod: + case RDI_EvalOp_LShift: + case RDI_EvalOp_RShift: + case RDI_EvalOp_BitAnd: + case RDI_EvalOp_BitOr: + case RDI_EvalOp_BitXor: + case RDI_EvalOp_BitNot: + case RDI_EvalOp_LogAnd: + case RDI_EvalOp_LogOr: + case RDI_EvalOp_LogNot: + case RDI_EvalOp_EqEq: + case RDI_EvalOp_NtEq: + case RDI_EvalOp_LsEq: + case RDI_EvalOp_GrEq: + case RDI_EvalOp_Less: + case RDI_EvalOp_Grtr: { + U8 eval_type_group = *(U8 *)imm.str; + imm_fmt = rdi_string_from_eval_type_group(scratch.arena, eval_type_group); + } break; + case RDI_EvalOp_Trunc: + case RDI_EvalOp_TruncSigned: { + U8 trunc = *(U8 *)imm.str; + imm_fmt = push_str8f(scratch.arena, "%u", trunc); + } break; + case RDI_EvalOp_Convert: { + U16 convert = *(U16 *)imm.str; + U8 in = Extract8(convert, 0); + U8 out = Extract8(convert, 1); + String8 in_str = rdi_string_from_eval_type_group(scratch.arena, in); + String8 out_str = rdi_string_from_eval_type_group(scratch.arena, out); + imm_fmt = push_str8f(scratch.arena, "in: %S out: %S", in_str, out_str); + } break; + case RDI_EvalOp_Pick: { + U8 pick = *(U8 *)imm.str; + imm_fmt = push_str8f(scratch.arena, "%u", pick); + } break; + case RDI_EvalOp_Pop: break; + case RDI_EvalOp_Insert: { + U8 insert = *(U8 *)imm.str; + imm_fmt = push_str8f(scratch.arena, "%u", insert); + } break; + case RDI_EvalOp_ValueRead: { + U8 bytes_to_read = *(U8 *)imm.str; + imm_fmt = push_str8f(scratch.arena, "%u", bytes_to_read); + } break; + case RDI_EvalOp_ByteSwap: { + U8 byte_size = *(U8 *)imm.str; + imm_fmt = push_str8f(scratch.arena, "%u", byte_size); + } break; + case RDI_EvalOp_CallSiteValue: { + U32 call_site_bc_size = *(U32 *)imm.str; + String8 call_site_bc = {0}; + cursor += str8_deserial_read_block(bc, cursor, call_site_bc_size, &call_site_bc); + + String8 call_site_str = rdi_string_from_bytecode(scratch.arena, arch, call_site_bc); + imm_fmt = push_str8f(scratch.arena, "%S", call_site_str); + } break; + case RDI_EvalOp_PartialValue: { + U32 partial_value_size = *(U32 *)imm.str; + imm_fmt = push_str8f(scratch.arena, "%u", partial_value_size); + } break; + case RDI_EvalOp_PartialValueBit: { + U64 partial_value = *(U64 *)imm.str; + U32 bit_size = Extract32(partial_value, 0); + U32 bit_off = Extract32(partial_value, 1); + imm_fmt = push_str8f(scratch.arena, "Off: %u, Size: %u", bit_size, bit_off); + } break; + } + + String8 op_str = rdi_string_from_eval_op(scratch.arena, op); + if (imm_fmt.size) { + str8_list_pushf(scratch.arena, &fmt, "RDI_EvalOp_%S(%S)", op_str, imm_fmt); + } else { + str8_list_pushf(scratch.arena, &fmt, "RDI_EvalOp_%S", op_str); + } + } + exit:; + + String8 result = str8_list_join(arena, &fmt, &(StringJoin){.sep = str8_lit(", ")}); + + scratch_end(scratch); + return result; +} + +internal String8List +rdi_strings_from_locations(Arena *arena, RDI_Parsed *rdi, RDI_Arch arch, Rng1U64 location_block_range) +{ + String8List strings = {0}; + Temp scratch = scratch_begin(&arena, 1); + U64 location_block_count = 0; + U64 location_data_size = 0; + RDI_LocationBlock *location_block_array = rdi_table_from_name(rdi, LocationBlocks, &location_block_count); + RDI_U8 *location_data = rdi_table_from_name(rdi, LocationData, &location_data_size); + Rng1U64 location_block_range_clamped = r1u64(ClampTop(location_block_range.min, location_block_count), + ClampTop(location_block_range.max, location_block_count)); + for(U64 block_idx = location_block_range_clamped.min; + block_idx < location_block_range_clamped.max; + block_idx +=1) + { + String8 qualifier = {0}; + String8 location_info = {0}; + RDI_LocationBlock *block_ptr = &location_block_array[block_idx]; + if(block_ptr->scope_off_first == 0 && block_ptr->scope_off_opl == max_U32) + { + qualifier = str8_lit("*always*"); + } + else + { + qualifier = push_str8f(scratch.arena, "[%#08x, %#08x): ", block_ptr->scope_off_first, block_ptr->scope_off_opl); + } + if(block_ptr->location_data_off >= location_data_size) + { + location_info = push_str8f(scratch.arena, "", block_ptr->location_data_off); + } + else + { + U8 *loc_data_opl = location_data + location_data_size; + U8 *loc_base_ptr = location_data + block_ptr->location_data_off; + RDI_LocationKind kind = *(RDI_LocationKind *)loc_base_ptr; + switch(kind) + { + default: + { + location_info = push_str8f(scratch.arena, "\?\?\? (%u)", kind); + }break; + case RDI_LocationKind_AddrBytecodeStream: + { + String8 bc = str8_range(loc_base_ptr + 1, loc_data_opl); + String8 bc_str = rdi_string_from_bytecode(scratch.arena, arch, bc); + location_info = push_str8f(scratch.arena, "AddrBytecodeStream(%S)", bc_str); + }break; + case RDI_LocationKind_ValBytecodeStream: + { + String8 bc = str8_range(loc_base_ptr + 1, loc_data_opl); + String8 bc_str = rdi_string_from_bytecode(scratch.arena, arch, bc); + location_info = push_str8f(scratch.arena, "ValBytecodeStream(%S)", bc_str); + }break; + case RDI_LocationKind_AddrRegPlusU16: + { + if(loc_base_ptr + sizeof(RDI_LocationRegPlusU16) > loc_data_opl) + { + location_info = push_str8f(scratch.arena, "AddrRegPlusU16(\?\?\?)"); + } + else + { + RDI_LocationRegPlusU16 *loc = (RDI_LocationRegPlusU16*)loc_base_ptr; + location_info = push_str8f(scratch.arena, "AddrRegPlusU16(reg: %S, off: %u)", rdi_string_from_reg_code(scratch.arena, arch, loc->reg_code), loc->offset); + } + }break; + case RDI_LocationKind_AddrAddrRegPlusU16: + { + if(loc_base_ptr + sizeof(RDI_LocationRegPlusU16) > loc_data_opl) + { + location_info = push_str8f(scratch.arena, "AddrAddrRegPlusU16(\?\?\?)"); + } + else + { + RDI_LocationRegPlusU16 *loc = (RDI_LocationRegPlusU16 *)loc_base_ptr; + location_info = push_str8f(scratch.arena, "AddrAddrRegisterPlusU16(reg: %S, off: %u)", rdi_string_from_reg_code(scratch.arena, arch, loc->reg_code), loc->offset); + } + }break; + case RDI_LocationKind_ValReg: + { + if(loc_base_ptr + sizeof(RDI_LocationReg) > loc_data_opl) + { + location_info = push_str8f(scratch.arena, "ValReg(\?\?\?)"); + } + else + { + RDI_LocationReg *loc = (RDI_LocationReg*)loc_base_ptr; + location_info = push_str8f(scratch.arena, "ValReg(reg: %S)", rdi_string_from_reg_code(scratch.arena, arch, loc->reg_code)); + } + } break; + } + } + str8_list_pushf(arena, &strings, "%S: %S", qualifier, location_info); + } + scratch_end(scratch); + return strings; +} + +//////////////////////////////// +//~ rjf: RDI Dumping + +internal String8List +rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags flags) +{ + String8List strings = {0}; + String8 indent = str8_lit(" "); +#define dump(str) str8_list_push(arena, &strings, (str)) +#define dumpf(...) str8_list_pushf(arena, &strings, __VA_ARGS__) +#define DumpSubset(name) if(flags & RDI_DumpSubsetFlag_##name) DeferLoop(dumpf("# %S\n\n", rdi_name_title_from_dump_subset_table[RDI_DumpSubset_##name]), dump(str8_lit("\n"))) + + ////////////////////////////// + //- rjf: dump data sections + // + DumpSubset(DataSections) + { + for EachIndex(idx, rdi->sections_count) + { + Temp scratch = scratch_begin(&arena, 1); + RDI_SectionKind kind = (RDI_SectionKind)idx; + RDI_Section *section = &rdi->sections[idx]; + String8 kind_str = rdi_string_from_data_section_kind(scratch.arena, kind); + dumpf("data_section[%5llu] = {%#08llx, %7u, %7u}, %S\n", idx, section->off, section->encoded_size, section->unpacked_size, kind_str); + scratch_end(scratch); + } + } + + ////////////////////////////// + //- rjf: dump top-level-info + // + DumpSubset(TopLevelInfo) + { + RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); + Temp scratch = scratch_begin(&arena, 1); + dumpf("arch =%S\n", rdi_string_from_arch(scratch.arena, tli->arch)); + dumpf("exe_name ='%S'\n", str8_from_rdi_string_idx(rdi, tli->exe_name_string_idx)); + dumpf("voff_max =%#08llx\n", tli->voff_max); + dumpf("producer_name='%S'\n", str8_from_rdi_string_idx(rdi, tli->producer_name_string_idx)); + scratch_end(scratch); + } + + ////////////////////////////// + //- rjf: dump binary sections + // + DumpSubset(BinarySections) + { + U64 count = 0; + RDI_BinarySection *v = rdi_table_from_name(rdi, BinarySections, &count); + for EachIndex(idx, count) + { + Temp scratch = scratch_begin(&arena, 1); + RDI_BinarySection *bin_section = &v[idx]; + dumpf("binary_section[%I64u]:\n", idx); + dumpf(" name ='%S'\n", str8_from_rdi_string_idx(rdi, bin_section->name_string_idx)); + dumpf(" flags =%S\n", rdi_string_from_binary_section_flags(scratch.arena, bin_section->flags)); + dumpf(" voff_first=%#08x\n", bin_section->voff_first); + dumpf(" voff_opl =%#08x\n", bin_section->voff_opl); + dumpf(" foff_first=%#08x\n", bin_section->foff_first); + dumpf(" foff_opl =%#08x\n", bin_section->foff_opl); + scratch_end(scratch); + } + } + + ////////////////////////////// + //- rjf: dump file paths + // + DumpSubset(FilePaths) + { + U64 count = 0; + RDI_FilePathNode *v = rdi_table_from_name(rdi, FilePathNodes, &count); + RDI_FilePathNode *nil = &v[0]; + for EachIndex(idx, count) + { + RDI_FilePathNode *root = &v[idx]; + if(root->parent_path_node != 0) { continue; } + S64 depth = 0; + for(RDI_FilePathNode *n = root, *rec_next = nil; n != nil; n = rec_next) + { + // rjf: dump + if(n->source_file_idx == 0) + { + dumpf("%.*s[%I64u] '%S'\n", depth*2, indent.str, (U64)(n - v), str8_from_rdi_string_idx(rdi, n->name_string_idx)); + } + else + { + dumpf("%.*s[%I64u] '%S': source_file=%u\n", depth*2, indent.str, (U64)(n - v), str8_from_rdi_string_idx(rdi, n->name_string_idx), n->source_file_idx); + } + + // rjf: find next node + rec_next = nil; + if(n->first_child) + { + rec_next = rdi_element_from_name_idx(rdi, FilePathNodes, n->first_child); + depth += 1; + } + else for(RDI_FilePathNode *p = n; + p != nil && p != root; + p = rdi_element_from_name_idx(rdi, FilePathNodes, p->parent_path_node), depth -= 1) + { + if(p->next_sibling) + { + rec_next = rdi_element_from_name_idx(rdi, FilePathNodes, p->next_sibling); + break; + } + } + } + } + } + + ////////////////////////////// + //- rjf: dump source files + // + DumpSubset(SourceFiles) + { + U64 source_file_count = 0; + RDI_SourceFile *source_file_array = rdi_table_from_name(rdi, SourceFiles, &source_file_count); + for(U64 i = 0; i < source_file_count; ++i) + { + RDI_SourceFile *source_file = &source_file_array[i]; + dumpf("source_file[%4llu] = { file_path_node_idx = %4u, source_line_map = %4u, path = '%S' }\n", + i, + source_file->file_path_node_idx, + source_file->source_line_map_idx, + str8_from_rdi_string_idx(rdi, source_file->normal_full_path_string_idx)); + } + } + + ////////////////////////////// + //- rjf: dump units + // + DumpSubset(Units) + { + U64 count = 0; + RDI_Unit *v = rdi_table_from_name(rdi, Units, &count); + for EachIndex(idx, count) + { + RDI_Unit *unit = &v[idx]; + Temp scratch = scratch_begin(&arena, 1); + dumpf("unit[%I64u]:\n", idx); + dumpf(" unit_name ='%S'\n", str8_from_rdi_string_idx(rdi, unit->unit_name_string_idx)); + dumpf(" compiler_name ='%S'\n", str8_from_rdi_string_idx(rdi, unit->compiler_name_string_idx)); + dumpf(" source_file_path =%u\n", unit->source_file_path_node); + dumpf(" object_file_path =%u\n", unit->object_file_path_node); + dumpf(" archive_file_path=%u\n", unit->archive_file_path_node); + dumpf(" build_path =%u\n", unit->build_path_node); + dumpf(" language =%S\n", rdi_string_from_language(scratch.arena, unit->language)); + dumpf(" line_table_idx =%u\n", unit->line_table_idx); + scratch_end(scratch); + } + } + + ////////////////////////////// + //- rjf: dump unit vmap + // + DumpSubset(UnitVMap) + { + U64 count = 0; + RDI_VMapEntry *v = rdi_table_from_name(rdi, UnitVMap, &count); + for EachIndex(idx, count) + { + dumpf("%I64x -> #%I64u\n", v[idx].voff, v[idx].idx); + } + } + + ////////////////////////////// + //- rjf: dump line tables + // + DumpSubset(LineTables) + { + U64 count = 0; + RDI_LineTable *v = rdi_table_from_name(rdi, LineTables, &count); + for EachIndex(idx, count) + { + RDI_LineTable *line_table = &v[idx]; + RDI_ParsedLineTable parsed_line_table = {0}; + rdi_parsed_from_line_table(rdi, line_table, &parsed_line_table); + dumpf("line_table[%I64u]:\n", idx); + for EachIndex(line_idx, parsed_line_table.count) + { + U64 first = parsed_line_table.voffs[line_idx]; + U64 opl = parsed_line_table.voffs[line_idx + 1]; + RDI_Line *line = parsed_line_table.lines + line_idx; + RDI_Column *col = 0; + if(line_idx < parsed_line_table.col_count) + { + col = parsed_line_table.cols + line_idx; + } + if(col == 0) + { + dumpf(" [0x%08I64x,0x%08I64x) file=%u; line=%u\n", first, opl, line->file_idx, line->line_num); + } + else + { + dumpf(" [0x%08I64x,0x%08I64x) file=%u; line=%u; columns=[%u,%u)\n", first, opl, line->file_idx, line->line_num, col->col_first, col->col_opl); + } + } + } + } + + ////////////////////////////// + //- rjf: dump source line maps + // + DumpSubset(SourceLineMaps) + { + U64 count = 0; + RDI_SourceLineMap *v = rdi_table_from_name(rdi, SourceLineMaps, &count); + for EachIndex(idx, count) + { + Temp scratch = scratch_begin(&arena, 1); + RDI_ParsedSourceLineMap line_map = {0}; + rdi_parsed_from_source_line_map(rdi, &v[idx], &line_map); + dumpf("source_line_map[%I64u]:\n", idx); + for EachIndex(line_num_idx, line_map.count) + { + Temp temp = temp_begin(scratch.arena); + String8List list = {0}; + U32 voff_lo = line_map.ranges[line_num_idx]; + U32 voff_hi = ClampTop(line_map.ranges[line_num_idx + 1], line_map.voff_count); + for(U64 voff_idx = voff_lo; voff_idx < voff_hi; voff_idx += 1) + { + str8_list_pushf(temp.arena, &list, "%#llx", line_map.voffs[voff_idx]); + } + String8 voffs_string = str8_list_join(temp.arena, &list, &(StringJoin){.sep = str8_lit(", ")}); + dumpf(" %u: %S\n", line_map.nums[line_num_idx], voffs_string); + temp_end(temp); + } + scratch_end(scratch); + } + } + + ////////////////////////////// + //- rjf: dump type nodes + // + DumpSubset(TypeNodes) + { + U64 count = 0; + RDI_TypeNode *v = rdi_table_from_name(rdi, TypeNodes, &count); + for EachIndex(idx, count) + { + Temp scratch = scratch_begin(&arena, 1); + RDI_TypeNode *type = &v[idx]; + String8 type_kind_str = {0}; + type_kind_str.str = rdi_string_from_type_kind(type->kind, &type_kind_str.size); + dumpf("type[%I64u]:\n", idx); + dumpf(" kind =%S\n", type_kind_str); + if(type->kind == RDI_TypeKind_Modifier) + { + dumpf(" flags =%S\n", rdi_string_from_type_modifier_flags(scratch.arena, type->flags)); + } + else if(type->flags != 0) + { + dumpf(" flags=%#x (missing stringizer path)\n", type->flags); + } + dumpf(" byte_size =%u\n", type->byte_size); + if(RDI_TypeKind_FirstBuiltIn <= type->kind && type->kind <= RDI_TypeKind_LastBuiltIn) + { + dumpf(" built_in.name ='%S'\n", str8_from_rdi_string_idx(rdi, type->built_in.name_string_idx)); + } + else if(type->kind == RDI_TypeKind_Array) + { + dumpf(" constructed.direct_type =%u\n", type->constructed.direct_type_idx); + dumpf(" constructed.array_count =%u\n", type->constructed.count); + } + else if(type->kind == RDI_TypeKind_Function) + { + U32 param_idx_count = 0; + U32 *param_idx_array = rdi_idx_run_from_first_count(rdi, type->constructed.param_idx_run_first, type->constructed.count, ¶m_idx_count); + String8List param_idx_strings = {0}; + for(U32 param_idx = 0; param_idx < param_idx_count; param_idx += 1) + { + str8_list_pushf(scratch.arena, ¶m_idx_strings, "%u", param_idx_array[param_idx]); + } + String8 param_idx_str = str8_list_join(scratch.arena, ¶m_idx_strings, &(StringJoin){.pre = str8_lit("["), .sep = str8_lit(", "), .post = str8_lit("]")}); + dumpf(" constructed.params =%S\n", param_idx_str); + dumpf(" return_type =%u\n", type->constructed.direct_type_idx); + } + else if(type->kind == RDI_TypeKind_Method) + { + U32 param_idx_count = 0; + U32 *param_idx_array = rdi_idx_run_from_first_count(rdi, type->constructed.param_idx_run_first, type->constructed.count, ¶m_idx_count); + String8 this_type_str = str8_lit("\?\?\?"); + if(param_idx_count > 0) + { + this_type_str = push_str8f(scratch.arena, "%u", param_idx_array[0]); + param_idx_count -= 1; + param_idx_array += 1; + } + String8List param_idx_strings = {0}; + for(U32 param_idx = 0; param_idx < param_idx_count; param_idx += 1) + { + str8_list_pushf(scratch.arena, ¶m_idx_strings, "%u", param_idx_array[param_idx]); + } + String8 param_idx_str = str8_list_join(scratch.arena, ¶m_idx_strings, &(StringJoin){.pre = str8_lit("["), .sep = str8_lit(", "), .post = str8_lit("]")}); + dumpf(" constructed.this_type =%S\n", this_type_str); + dumpf(" constructed.params =%S\n", param_idx_str); + dumpf(" return_type =%u\n", type->constructed.direct_type_idx); + } + else if(RDI_TypeKind_FirstConstructed <= type->kind && type->kind <= RDI_TypeKind_LastConstructed) + { + dumpf(" constructed.direct_type =%u\n", type->constructed.direct_type_idx); + } + else if(RDI_TypeKind_FirstUserDefined <= type->kind && type->kind <= RDI_TypeKind_LastUserDefined) + { + dumpf(" user_defined.name ='%S'\n", str8_from_rdi_string_idx(rdi, type->user_defined.name_string_idx)); + dumpf(" user_defined.direct_type=%u\n", type->user_defined.direct_type_idx); + dumpf(" user_defined.udt =%u\n", type->user_defined.udt_idx); + } + else if(type->kind == RDI_TypeKind_Bitfield) + { + dumpf(" bitfield.off =%u\n", type->bitfield.off); + dumpf(" bitfield.size =%u\n", type->bitfield.size); + } + scratch_end(scratch); + } + } + + ////////////////////////////// + //- rjf: dump user defined types + // + DumpSubset(UserDefinedTypes) + { + U64 count = 0; + RDI_UDT *v = rdi_table_from_name(rdi, UDTs, &count); + U64 all_members_count = 0; + RDI_Member *all_members = rdi_table_from_name(rdi, Members, &all_members_count); + U64 all_enum_members_count = 0; + RDI_EnumMember *all_enum_members = rdi_table_from_name(rdi, EnumMembers, &all_enum_members_count); + for EachIndex(idx, count) + { + RDI_UDT *udt = &v[idx]; + Temp scratch = scratch_begin(&arena, 1); + dumpf("udt[%I64u]:\n", idx); + dumpf(" self_type=%u\n", udt->self_type_idx); + dumpf(" flags =%S\n", rdi_string_from_udt_flags(scratch.arena, udt->flags)); + if(udt->file_idx != 0) + { + dumpf(" loc ={file=%u; line=%u; col=%u}\n", udt->file_idx, udt->line, udt->col); + } + if(udt->flags & RDI_UDTFlag_EnumMembers) + { + U32 member_hi = ClampTop(udt->member_first + udt->member_count, all_enum_members_count); + U32 member_lo = ClampTop(udt->member_first, member_hi); + if(member_lo < member_hi) + { + dumpf(" enum_members=\n"); + dumpf(" {\n"); + for(U32 enum_member_idx = member_lo; enum_member_idx < member_hi; enum_member_idx += 1) + { + RDI_EnumMember *enum_member = &all_enum_members[enum_member_idx]; + dumpf(" { %llu, '%S' }\n", enum_member->val, str8_from_rdi_string_idx(rdi, enum_member->name_string_idx)); + } + dumpf(" }\n"); + } + } + else + { + U32 member_hi = ClampTop(udt->member_first + udt->member_count, all_members_count); + U32 member_lo = ClampTop(udt->member_first, member_hi); + if(member_lo < member_hi) + { + dumpf(" members=\n"); + dumpf(" {\n"); + for(U32 member_idx = member_lo; member_idx < member_hi; member_idx += 1) + { + RDI_Member *member = &all_members[member_idx]; + String8 kind_str = rdi_string_from_member_kind(scratch.arena, member->kind); + String8 name_str = str8_from_rdi_string_idx(rdi, member->name_string_idx); + dumpf(" { kind=%S, type=%u, off=%u, name='%S' }\n", kind_str, member->type_idx, member->off, name_str); + } + dumpf(" }\n"); + } + } + scratch_end(scratch); + } + } + + ////////////////////////////// + //- rjf: dump global variables + // + DumpSubset(GlobalVariables) + { + U64 count = 0; + RDI_GlobalVariable *v = rdi_table_from_name(rdi, GlobalVariables, &count); + for EachIndex(idx, count) + { + RDI_GlobalVariable *gvar = &v[idx]; + Temp scratch = scratch_begin(&arena, 1); + dumpf("global_variable[%I64u]:\n", idx); + dumpf(" name ='%S'\n", str8_from_rdi_string_idx(rdi, gvar->name_string_idx)); + dumpf(" link_flags =%S\n", rdi_string_from_link_flags(scratch.arena, gvar->link_flags)); + dumpf(" voff =%#08x\n", gvar->voff); + dumpf(" type_idx =%u\n", gvar->type_idx); + dumpf(" container_idx=%u\n", gvar->container_idx); + scratch_end(scratch); + } + } + + ////////////////////////////// + //- rjf: dump global variables vmap + // + DumpSubset(GlobalVariablesVMap) + { + U64 count = 0; + RDI_VMapEntry *v = rdi_table_from_name(rdi, GlobalVMap, &count); + for EachIndex(idx, count) + { + dumpf("%I64x -> #%I64u\n", v[idx].voff, v[idx].idx); + } + } + + ////////////////////////////// + //- rjf: dump thread variables + // + DumpSubset(ThreadVariables) + { + U64 count = 0; + RDI_ThreadVariable *v = rdi_table_from_name(rdi, ThreadVariables, &count); + for EachIndex(idx, count) + { + RDI_ThreadVariable *tvar = &v[idx]; + Temp scratch = scratch_begin(&arena, 1); + dumpf("thread_variable[%I64u]:\n", idx); + dumpf(" name ='%S'\n", str8_from_rdi_string_idx(rdi, tvar->name_string_idx)); + dumpf(" link_flags =%S\n", rdi_string_from_link_flags(scratch.arena, tvar->link_flags)); + dumpf(" tls_off =%#08x\n", tvar->tls_off); + dumpf(" type_idx =%u\n", tvar->type_idx); + dumpf(" container_idx=%u\n", tvar->container_idx); + scratch_end(scratch); + } + } + + ////////////////////////////// + //- rjf: dump constants + // + DumpSubset(Constants) + { + U64 count = 0; + RDI_Constant *v = rdi_table_from_name(rdi, Constants, &count); + for EachIndex(idx, count) + { + RDI_Constant *cnst = &v[idx]; + dumpf("constant[%I64u]:\n", idx); + dumpf(" name ='%S'\n", str8_from_rdi_string_idx(rdi, cnst->name_string_idx)); + dumpf(" type_idx ='%u'\n", cnst->type_idx); + } + } + + ////////////////////////////// + //- rjf: dump procedures + // + DumpSubset(Procedures) + { + RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); + U64 count = 0; + RDI_Procedure *v = rdi_table_from_name(rdi, Procedures, &count); + for EachIndex(idx, count) + { + RDI_Procedure *proc = &v[idx]; + Temp scratch = scratch_begin(&arena, 1); + String8List frame_base_location_strings = rdi_strings_from_locations(scratch.arena, rdi, tli->arch, r1u64(proc->frame_base_location_first, proc->frame_base_location_opl)); + dumpf("procedure[%I64u]:\n", idx); + dumpf(" name ='%S'\n", str8_from_rdi_string_idx(rdi, proc->name_string_idx)); + dumpf(" link_name ='%S'\n", str8_from_rdi_string_idx(rdi, proc->link_name_string_idx)); + dumpf(" link_flags =%S\n", rdi_string_from_link_flags(scratch.arena, proc->link_flags)); + dumpf(" type_idx =%u\n", proc->type_idx); + dumpf(" root_scope_idx =%u\n", proc->root_scope_idx); + dumpf(" container_idx =%u\n", proc->container_idx); + dumpf(" frame_base (first=%u, opl=%u)=\n", proc->frame_base_location_first, proc->frame_base_location_opl); + dumpf(" {\n"); + for(String8Node *n = frame_base_location_strings.first; n != 0; n = n->next) + { + dumpf(" %S\n", n->string); + } + dumpf(" }\n"); + scratch_end(scratch); + } + } + + ////////////////////////////// + //- rjf: dump scopes + // + DumpSubset(Scopes) + { + RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); + U64 scope_voffs_count = 0; + U64 *scope_voffs = rdi_table_from_name(rdi, ScopeVOffData, &scope_voffs_count); + U64 locals_count = 0; + RDI_Local *locals = rdi_table_from_name(rdi, Locals, &locals_count); + U64 count = 0; + RDI_Scope *v = rdi_table_from_name(rdi, Scopes, &count); + RDI_Scope *nil = &v[0]; + for EachIndex(idx, count) + { + if(v[idx].parent_scope_idx != 0) { continue; } + RDI_Scope *root = &v[idx]; + S64 depth = 0; + for(RDI_Scope *scope = root, *rec_next = nil; scope != nil; scope = rec_next) + { + // rjf: scope list(voff_range) => string + String8 voff_range_list_string = {0}; + { + U32 voff_range_lo = ClampTop(scope->voff_range_first, scope_voffs_count); + U32 voff_range_hi = ClampTop(scope->voff_range_opl, scope_voffs_count); + U32 voff_range_count = (voff_range_hi - voff_range_lo); + U64 *voff_ptr = scope_voffs + voff_range_lo; + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + for(U64 i = 0; i+2 <= voff_range_count; i += 2) + { + str8_list_pushf(scratch.arena, &list, "[%#llx, %#llx)", voff_ptr[i+0], voff_ptr[i+1]); + } + voff_range_list_string = str8_list_join(arena, &list, &(StringJoin){.sep = str8_lit(", ")}); + scratch_end(scratch); + } + + // rjf: scope procedure -> name + String8 procedure_name = str8_from_rdi_string_idx(rdi, rdi_element_from_name_idx(rdi, Procedures, scope->proc_idx)->name_string_idx); + if(procedure_name.size == 0) + { + procedure_name = str8_lit("???"); + } + + // rjf: scope inline site -> name + String8 inline_site_name = str8_from_rdi_string_idx(rdi, rdi_element_from_name_idx(rdi, InlineSites, scope->inline_site_idx)->name_string_idx); + if(inline_site_name.size == 0) + { + inline_site_name = str8_lit("???"); + } + + // rjf: dump + dumpf("%.*sscope[%I64u]:\n", depth*2, indent.str, (U64)(scope - v)); + dumpf("%.*s{\n", depth*2, indent.str); + dumpf("%.*s proc_idx =%u ('%S')\n", depth*2, indent.str, scope->proc_idx, procedure_name); + dumpf("%.*s first_child_scope_idx =%u\n", depth*2, indent.str, scope->first_child_scope_idx); + dumpf("%.*s next_sibling_scope_idx=%u\n", depth*2, indent.str, scope->next_sibling_scope_idx); + if(scope->inline_site_idx != 0) + { + dumpf("%.*s inline_site_idx =%u ('%S')\n", depth*2, indent.str, scope->inline_site_idx, inline_site_name); + } + dumpf("%.*s voff_ranges =%S\n", depth*2, indent.str, voff_range_list_string); + dumpf("%.*s locals=\n", depth*2, indent.str); + dumpf("%.*s {\n", depth*2, indent.str); + { + U32 local_lo = ClampTop(scope->local_first, locals_count); + U32 local_hi = ClampTop(local_lo + scope->local_count, locals_count); + if(local_lo < local_hi) + { + for(U32 local_idx = local_lo; local_idx < local_hi; local_idx += 1) + { + Temp scratch = scratch_begin(&arena, 1); + RDI_Local *local_ptr = &locals[local_idx]; + dumpf("%.*s local[%u]:\n", depth*2, indent.str, local_idx); + dumpf("%.*s kind =%S\n", depth*2, indent.str, rdi_string_from_local_kind(scratch.arena, local_ptr->kind)); + dumpf("%.*s name ='%S'\n", depth*2, indent.str, str8_from_rdi_string_idx(rdi, local_ptr->name_string_idx)); + dumpf("%.*s type_idx=%u\n", depth*2, indent.str, local_ptr->type_idx); + dumpf("%.*s locations=\n", depth*2, indent.str); + dumpf("%.*s {\n", depth*2, indent.str); + if(local_ptr->location_first < local_ptr->location_opl) + { + String8List locations_strings = rdi_strings_from_locations(arena, rdi, tli->arch, r1u64(local_ptr->location_first, local_ptr->location_opl)); + for(String8Node *n = locations_strings.first; n != 0; n = n->next) + { + dumpf("%.*s %S\n", depth*2, indent.str, n->string); + } + } + dumpf("%.*s }\n", depth*2, indent.str); + scratch_end(scratch); + } + } + } + dumpf("%.*s }\n", depth*2, indent.str); + + // rjf: get next recursion + rec_next = nil; + if(scope->first_child_scope_idx) + { + rec_next = rdi_element_from_name_idx(rdi, Scopes, scope->first_child_scope_idx); + depth += 1; + } + else for(RDI_Scope *p = scope; + p != nil; + p = rdi_element_from_name_idx(rdi, Scopes, p->parent_scope_idx), depth -= 1) + { + dumpf("%.*s} [/%I64u] \n", depth*2, indent.str, (U64)(p-v)); + if(p->next_sibling_scope_idx != 0) + { + rec_next = rdi_element_from_name_idx(rdi, Scopes, p->next_sibling_scope_idx); + break; + } + } + } + } + } + + ////////////////////////////// + //- rjf: dump scope vmap + // + DumpSubset(ScopeVMap) + { + U64 count = 0; + RDI_VMapEntry *v = rdi_table_from_name(rdi, ScopeVMap, &count); + for EachIndex(idx, count) + { + dumpf("%I64x -> #%I64u\n", v[idx].voff, v[idx].idx); + } + } + + ////////////////////////////// + //- rjf: dump inline sites + // + DumpSubset(InlineSites) + { + U64 count = 0; + RDI_InlineSite *v = rdi_table_from_name(rdi, InlineSites, &count); + for EachIndex(idx, count) + { + RDI_InlineSite *inline_site = &v[idx]; + Temp scratch = scratch_begin(&arena, 1); + String8 inline_site_idx = push_str8f(scratch.arena, "inline_site[%u]", idx); + String8 type_idx = push_str8f(scratch.arena, "type_idx = %u,", inline_site->type_idx); + String8 owner_type_idx = push_str8f(scratch.arena, "owner_type_idx = %u,", inline_site->owner_type_idx); + String8 line_table_idx = push_str8f(scratch.arena, "line_table_idx = %u,", inline_site->line_table_idx); + dumpf("%-20S = { %-25S %-25S %-25S name = '%-20S' }\n", + inline_site_idx, + type_idx, + owner_type_idx, + line_table_idx, + str8_from_rdi_string_idx(rdi, inline_site->name_string_idx)); + scratch_end(scratch); + } + } + + ////////////////////////////// + //- rjf: dump name maps + // + DumpSubset(NameMaps) + { + Temp scratch = scratch_begin(&arena, 1); + U64 count = 0; + RDI_NameMap *v = rdi_table_from_name(rdi, NameMaps, &count); + for EachIndex(idx, count) + { + if(idx > 0) { dumpf("\n"); } + RDI_ParsedNameMap name_map = {0}; + rdi_parsed_from_name_map(rdi, &v[idx], &name_map); + dumpf("name_map[%S]:\n", rdi_string_from_name_map_kind(idx)); + for EachIndex(bucket_idx, name_map.bucket_count) + { + if(name_map.buckets[bucket_idx].node_count == 0) { continue; } + dumpf(" bucket[%I64u]:\n", bucket_idx); + RDI_NameMapNode *node_ptr = name_map.nodes + name_map.buckets[bucket_idx].first_node; + RDI_NameMapNode *node_opl = node_ptr + name_map.buckets[bucket_idx].node_count; + for(;node_ptr < node_opl; node_ptr += 1) + { + Temp temp = temp_begin(scratch.arena); + String8 str = str8_from_rdi_string_idx(rdi, node_ptr->string_idx); + String8 indices = {0}; + if(node_ptr->match_count == 1) + { + indices = push_str8f(temp.arena, "%u", node_ptr->match_idx_or_idx_run_first); + } + else + { + U32 idx_count = 0; + U32 *idx_array = rdi_idx_run_from_first_count(rdi, node_ptr->match_idx_or_idx_run_first, node_ptr->match_count, &idx_count); + String8List idx_strings = {0}; + for(U32 idx_i = 0; idx_i < idx_count; idx_i += 1) + { + U32 idx = idx_array[idx_i]; + str8_list_pushf(temp.arena, &idx_strings, "%u"); + } + indices = str8_list_join(scratch.arena, &idx_strings, &(StringJoin){.sep = str8_lit(", ")}); + } + dumpf(" match \"%S\": %S\n", str, indices); + temp_end(temp); + } + } + } + scratch_end(scratch); + } + + ////////////////////////////// + //- rjf: dump strings + // + DumpSubset(Strings) + { + U64 count = 0; + U32 *v = rdi_table_from_name(rdi, StringTable, &count); + for EachIndex(idx, count) + { + dumpf("string[%I64u]: \"%S\"\n", idx, str8_from_rdi_string_idx(rdi, idx)); + } + } + +#undef DumpSubset +#undef dumpf +#undef dump + return strings; +} diff --git a/src/rdi_format/rdi_format_local.h b/src/rdi/rdi_local.h similarity index 95% rename from src/rdi_format/rdi_format_local.h rename to src/rdi/rdi_local.h index 0dea0f1c..53b8f2b8 100644 --- a/src/rdi_format/rdi_format_local.h +++ b/src/rdi/rdi_local.h @@ -1,102 +1,102 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef RDI_FORMAT_LOCAL_H -#define RDI_FORMAT_LOCAL_H - -#include "lib_rdi_format/rdi_format.h" -#include "lib_rdi_format/rdi_format_parse.h" - -//////////////////////////////// -//~ rjf: RDI Dumping Flags - -#define RDI_DumpSubset_XList \ -X(DataSections, data_sections, "DATA SECTIONS")\ -X(TopLevelInfo, top_level_info, "TOP LEVEL INFO")\ -X(BinarySections, binary_sections, "BINARY SECTIONS")\ -X(FilePaths, file_paths, "FILE PATHS")\ -X(SourceFiles, source_files, "SOURCE FILES")\ -X(LineTables, line_tables, "LINE TABLES")\ -X(SourceLineMaps, source_line_maps, "SOURCE LINE MAPS")\ -X(Units, units, "UNITS")\ -X(UnitVMap, unit_vmap, "UNIT VMAP")\ -X(TypeNodes, type_nodes, "TYPE NODES")\ -X(UserDefinedTypes, user_defined_types, "USER DEFINED TYPES")\ -X(GlobalVariables, global_variables, "GLOBAL VARIABLES")\ -X(GlobalVariablesVMap, global_variables_vmap, "GLOBAL VARIABLE VMAP")\ -X(ThreadVariables, thread_variables, "THREAD VARIABLES")\ -X(Constants, constants, "CONSTANTS")\ -X(Procedures, procedures, "PROCEDURES")\ -X(Scopes, scopes, "SCOPES")\ -X(ScopeVMap, scope_vmap, "SCOPE VMAP")\ -X(InlineSites, inline_sites, "INLINE SITES")\ -X(NameMaps, name_maps, "NAME MAPS")\ -X(Strings, strings, "STRINGS")\ - -typedef enum RDI_DumpSubset -{ -#define X(name, name_lower, title) RDI_DumpSubset_##name, - RDI_DumpSubset_XList -#undef X -} -RDI_DumpSubset; - -typedef U32 RDI_DumpSubsetFlags; -enum -{ -#define X(name, name_lower, title) RDI_DumpSubsetFlag_##name = (1< Enum - -internal String8 rdi_string_from_data_section_kind(Arena *arena, RDI_SectionKind v); -internal String8 rdi_string_from_arch (Arena *arena, RDI_Arch v); -internal String8 rdi_string_from_language (Arena *arena, RDI_Language v); -internal String8 rdi_string_from_local_kind (Arena *arena, RDI_LocalKind v); -#if 0 // TODO(rjf): conflicts with RDI... -internal String8 rdi_string_from_type_kind (Arena *arena, RDI_TypeKind v); -#endif -internal String8 rdi_string_from_member_kind (Arena *arena, RDI_MemberKind v); -internal String8 rdi_string_from_name_map_kind(RDI_NameMapKind kind); - -internal String8 rdi_string_from_binary_section_flags(Arena *arena, RDI_BinarySectionFlags flags); -internal String8 rdi_string_from_type_modifier (Arena *arena, RDI_TypeModifierFlags flags); -internal String8 rdi_string_from_udt_flags (Arena *arena, RDI_UDTFlags flags); -internal String8 rdi_string_from_link_flags (Arena *arena, RDI_LinkFlags flags); -internal String8 rdi_string_from_bytecode(Arena *arena, RDI_Arch arch, String8 bc); -internal String8List rdi_strings_from_locations(Arena *arena, RDI_Parsed *rdi, RDI_Arch arch, Rng1U64 location_block_range); - -//////////////////////////////// -//~ rjf: RDI Dumping - -internal String8List rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags flags); - -#endif // RDI_FORMAT_LOCAL_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef RDI_FORMAT_LOCAL_H +#define RDI_FORMAT_LOCAL_H + +#include "lib_rdi/rdi.h" +#include "lib_rdi/rdi_parse.h" + +//////////////////////////////// +//~ rjf: RDI Dumping Flags + +#define RDI_DumpSubset_XList \ +X(DataSections, data_sections, "DATA SECTIONS")\ +X(TopLevelInfo, top_level_info, "TOP LEVEL INFO")\ +X(BinarySections, binary_sections, "BINARY SECTIONS")\ +X(FilePaths, file_paths, "FILE PATHS")\ +X(SourceFiles, source_files, "SOURCE FILES")\ +X(LineTables, line_tables, "LINE TABLES")\ +X(SourceLineMaps, source_line_maps, "SOURCE LINE MAPS")\ +X(Units, units, "UNITS")\ +X(UnitVMap, unit_vmap, "UNIT VMAP")\ +X(TypeNodes, type_nodes, "TYPE NODES")\ +X(UserDefinedTypes, user_defined_types, "USER DEFINED TYPES")\ +X(GlobalVariables, global_variables, "GLOBAL VARIABLES")\ +X(GlobalVariablesVMap, global_variables_vmap, "GLOBAL VARIABLE VMAP")\ +X(ThreadVariables, thread_variables, "THREAD VARIABLES")\ +X(Constants, constants, "CONSTANTS")\ +X(Procedures, procedures, "PROCEDURES")\ +X(Scopes, scopes, "SCOPES")\ +X(ScopeVMap, scope_vmap, "SCOPE VMAP")\ +X(InlineSites, inline_sites, "INLINE SITES")\ +X(NameMaps, name_maps, "NAME MAPS")\ +X(Strings, strings, "STRINGS")\ + +typedef enum RDI_DumpSubset +{ +#define X(name, name_lower, title) RDI_DumpSubset_##name, + RDI_DumpSubset_XList +#undef X +} +RDI_DumpSubset; + +typedef U32 RDI_DumpSubsetFlags; +enum +{ +#define X(name, name_lower, title) RDI_DumpSubsetFlag_##name = (1< Enum + +internal String8 rdi_string_from_data_section_kind(Arena *arena, RDI_SectionKind v); +internal String8 rdi_string_from_arch (Arena *arena, RDI_Arch v); +internal String8 rdi_string_from_language (Arena *arena, RDI_Language v); +internal String8 rdi_string_from_local_kind (Arena *arena, RDI_LocalKind v); +#if 0 // TODO(rjf): conflicts with RDI... +internal String8 rdi_string_from_type_kind (Arena *arena, RDI_TypeKind v); +#endif +internal String8 rdi_string_from_member_kind (Arena *arena, RDI_MemberKind v); +internal String8 rdi_string_from_name_map_kind(RDI_NameMapKind kind); + +internal String8 rdi_string_from_binary_section_flags(Arena *arena, RDI_BinarySectionFlags flags); +internal String8 rdi_string_from_type_modifier (Arena *arena, RDI_TypeModifierFlags flags); +internal String8 rdi_string_from_udt_flags (Arena *arena, RDI_UDTFlags flags); +internal String8 rdi_string_from_link_flags (Arena *arena, RDI_LinkFlags flags); +internal String8 rdi_string_from_bytecode(Arena *arena, RDI_Arch arch, String8 bc); +internal String8List rdi_strings_from_locations(Arena *arena, RDI_Parsed *rdi, RDI_Arch arch, Rng1U64 location_block_range); + +//////////////////////////////// +//~ rjf: RDI Dumping + +internal String8List rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags flags); + +#endif // RDI_FORMAT_LOCAL_H From db4831fafb4a604d36177dd549c4019f9ba1b2c9 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 08:25:35 -0700 Subject: [PATCH 016/372] include rad lzb codec directly in rdi parse library --- src/lib_rdi/rdi_parse.c | 1555 ++++++++++++++++++++++++++++++++++++++ src/radbin/radbin_main.c | 4 - src/raddbg/raddbg_main.c | 4 - 3 files changed, 1555 insertions(+), 8 deletions(-) diff --git a/src/lib_rdi/rdi_parse.c b/src/lib_rdi/rdi_parse.c index 7b7db4b9..2c36ccb4 100644 --- a/src/lib_rdi/rdi_parse.c +++ b/src/lib_rdi/rdi_parse.c @@ -862,3 +862,1558 @@ rdi_size_from_bytecode_stream(RDI_U8 *ptr, RDI_U8 *opl) } return bytecode_size; } + +//////////////////////////////// +//~ Compression/Decompression Implementation + +#ifndef _RAD_LZB_SIMPLE_H_ +#define _RAD_LZB_SIMPLE_H_ + +/*====================================================== + +To encode : + + Set up an rr_lzb_simple_context + + fill out m_tableSizeBits (14-16 is typical) + + allocate m_hashTable + + rr_lzb_simple_context c; + c.m_tableSizeBits = 14; + c.m_hashTable = OODLE_MALLOC_ARRAY(U16,RR_ONE_SA< +typedef uint8_t U8; +typedef uint16_t U16; +typedef uint32_t U32; +typedef uint64_t U64; +typedef int8_t S8; +typedef int16_t S16; +typedef int32_t S32; +typedef int64_t S64; + +typedef S64 SINTa; +typedef U64 RAD_U64; +typedef S64 RAD_S64; +typedef U32 RAD_U32; +typedef S32 RAD_S32; + +#define RADINLINE __inline + +#if defined(_MSC_VER) +# define RADFORCEINLINE __forceinline +#elif defined(__clang__) || defined(__GNUC__) +# define RADFORCEINLINE __attribute__((always_inline)) +#else +# error need force inline for this compiler +#endif + +#if _MSC_VER +# define RADLZB_TRAP() __debugbreak() +#elif __clang__ || __GNUC__ +# define RADLZB_TRAP() __builtin_trap() +#else +# error Unknown trap intrinsic for this compiler. +#endif + +#define RR_STRING_JOIN(arg1, arg2) RR_STRING_JOIN_DELAY(arg1, arg2) +#define RR_STRING_JOIN_DELAY(arg1, arg2) RR_STRING_JOIN_IMMEDIATE(arg1, arg2) +#define RR_STRING_JOIN_IMMEDIATE(arg1, arg2) arg1 ## arg2 + +#ifdef _MSC_VER +#define RR_NUMBERNAME(name) RR_STRING_JOIN(name,__COUNTER__) +#else +#define RR_NUMBERNAME(name) RR_STRING_JOIN(name,__LINE__) +#endif + +#define RR_COMPILER_ASSERT(exp) typedef char RR_NUMBERNAME(_dummy_array) [ (exp) ? 1 : -1 ] + +#if defined(__clang__) +# define Expect(expr, val) __builtin_expect((expr), (val)) +#else +# define Expect(expr, val) (expr) +#endif + +#define RAD_LIKELY(expr) Expect(expr,1) +#define RAD_UNLIKELY(expr) Expect(expr,0) + +#define __RADLITTLEENDIAN__ 1 +#define RAD_PTRBYTES 8 +#define RR_MIN(a,b) ( (a) < (b) ? (a) : (b) ) +#define RR_MAX(a,b) ( (a) > (b) ? (a) : (b) ) +#define RR_ASSERT_ALWAYS(c) do{if(!(c)) {RADLZB_TRAP();}}while(0) +#define RR_ASSERT(c) RR_ASSERT_ALWAYS(c) + +#define RR_PUT16_LE(ptr,val) *((U16 *)(ptr)) = (U16)(val) +#define RR_GET16_LE_UNALIGNED(ptr) *((const U16 *)(ptr)) + +static RADINLINE U32 +rrCtzBytes32(U32 val) +{ + // Don't get fancy here. Assumes val != 0. + if (val & 0x000000ffu) return 0; + if (val & 0x0000ff00u) return 1; + if (val & 0x00ff0000u) return 2; + return 3; +} + +static RADINLINE U32 +rrCtzBytes64(U64 val) +{ + U32 lo = (U32) val; + return lo ? rrCtzBytes32(lo) : 4 + rrCtzBytes32((U32) (val >> 32)); +} + +//~ + +//--------------------- + +typedef struct rr_lzb_simple_context rr_lzb_simple_context; +struct rr_lzb_simple_context +{ + U16 * m_hashTable; // must be allocated to sizeof(U16)*(1< + +//------------------------------------------------- +// UINTr = int the size of a register + +#ifdef __RAD64REGS__ + +#define RAD_UINTr RAD_U64 +#define RAD_SINTr RAD_S64 + +#define readR read64 +#define writeR write64 + +#define rrClzBytesR rrClzBytes64 +#define rrCtzBytesR rrCtzBytes64 + +#else + +#define RAD_UINTr RAD_U32 +#define RAD_SINTr RAD_S32 + +#define readR read32 +#define writeR write32 + +#define rrClzBytesR rrClzBytes32 +#define rrCtzBytesR rrCtzBytes32 + +#endif + +typedef RAD_SINTr SINTr; +typedef RAD_UINTr UINTr; + +#define OOINLINE RADFORCEINLINE + +#define if_unlikely(exp) if ( RAD_UNLIKELY( exp ) ) +#define if_likely( exp) if ( RAD_LIKELY( exp ) ) + +// Raw byte IO + +#if defined(__RADARM__) && !defined(__RAD64__) && defined(__GNUC__) + +// older GCCs don't turn the memcpy variant into loads/stores, but +// they do support this: +typedef union +{ + U16 u16; + U32 u32; + U64 u64; +} __attribute__((packed)) unaligned_type; + +static inline U16 read16(const void *ptr) { return ((const unaligned_type *)ptr)->u16; } +static inline void write16(void *ptr, U16 x) { ((unaligned_type *)ptr)->u16 = x; } + +static inline U32 read32(const void *ptr) { return ((const unaligned_type *)ptr)->u32; } +static inline void write32(void *ptr, U32 x) { ((unaligned_type *)ptr)->u32 = x; } + +static inline U64 read64(const void *ptr) { return ((const unaligned_type *)ptr)->u64; } +static inline void write64(void *ptr, U64 x) { ((unaligned_type *)ptr)->u64 = x; } + +#else + +// most C compilers we target are smart enough to turn this into single loads/stores +static inline U16 read16(const void *ptr) { U16 x; memcpy(&x, ptr, sizeof(x)); return x; } +static inline void write16(void *ptr, U16 x) { memcpy(ptr, &x, sizeof(x)); } + +static inline U32 read32(const void *ptr) { U32 x; memcpy(&x, ptr, sizeof(x)); return x; } +static inline void write32(void *ptr, U32 x) { memcpy(ptr, &x, sizeof(x)); } + +static inline U64 read64(const void *ptr) { U64 x; memcpy(&x, ptr, sizeof(x)); return x; } +static inline void write64(void *ptr, U64 x) { memcpy(ptr, &x, sizeof(x)); } + +#endif + +#define RR_PUT16_LE_UNALIGNED(ptr,val) RR_PUT16_LE(ptr,val) +#define RR_PUT16_LE_UNALIGNED_OFFSET(ptr,val,offset) RR_PUT16_LE_OFFSET(ptr,val,offset) + +//=========================================================================== + +static RADINLINE SINTa rrPtrDiffV(void * end, void *start) { return (SINTa)( ((char *)(end)) - ((char *)(start)) ); } + +// helper function to show I really am intending to put a pointer difference in an int : +static RADINLINE SINTa rrPtrDiff(SINTa val) { return val; } +static RADINLINE S32 rrPtrDiff32(SINTa val) { S32 ret = (S32) val; RR_ASSERT( (SINTa)ret == val ); return ret; } +static RADINLINE SINTr rrPtrDiffR(SINTa val) { SINTr ret = (SINTr) val; RR_ASSERT( (SINTa)ret == val ); return ret; } + +//================================================================= + +#define LZB_LRL_BITS 4 +#define LZB_LRL_ESCAPE 15 + +#define LZB_ML_BITS 4 +#define LZB_MLCONTROL_ESCAPE 15 + +#define LZB_SLIDING_WINDOW_POW2 16 +#define LZB_SLIDING_WINDOW_SIZE (1<>= 6; \ +if ( val < 128 ) *cp++ = (U8) val; \ +else { val -= 128; *cp++ = 128 + (U8) ( val&0x7F); val >>= 7; \ +if ( val < 128 ) *cp++ = (U8) val; \ +else { val -= 128; *cp++ = 128 + (U8) ( val&0x7F); val >>= 7; \ +if ( val < 128 ) *cp++ = (U8) val; \ +else { val -= 128; *cp++ = 128 + (U8) ( val&0x7F); val >>= 7; *cp++ = (U8) val; } } } } \ +} while(0) + +// max bytes consumed: 5 +#define LZB_AddExcessBW(cp,val) do { U32 b = *cp++; \ +if ( b < 192 ) val += b; \ +else { val += 192; val += (b-192); b = *cp++; \ +val += (b<<6); if ( b >= 128 ) { b = *cp++; \ +val += (b<<13); if ( b >= 128 ) { b = *cp++; \ +val += (b<<20); if ( b >= 128 ) { b = *cp++; \ +val += (b<<27); } } } } \ +} while(0) + +#define LZB_PutExcessLRL(cp,val) LZB_PutExcessBW(cp,val) +#define LZB_PutExcessML(cp,val) LZB_PutExcessBW(cp,val) + +#define LZB_AddExcessLRL(cp,val) LZB_AddExcessBW(cp,val) +#define LZB_AddExcessML(cp,val) LZB_AddExcessBW(cp,val) + +//============================================================================= +// match copies : + +// used for LRL : +static OOINLINE void copy_no_overlap_long(U8 * to, const U8 * from, SINTr length) +{ + for(int i=0;i= LZB_MML && ml < LZB_MATCHLEN_ESCAPE ); + + // overlap + // @@ err not awesome + to[0] = from[0]; + to[1] = from[1]; + to[2] = from[2]; + to[3] = from[3]; + to[4] = from[4]; + to[5] = from[5]; + to[6] = from[6]; + to[7] = from[7]; + if ( ml > 8 ) + { + to += 8; from += 8; ml -= 8; + // max of 10 more + while(ml--) + { + *to++ = *from++; + } + } +} + +static OOINLINE void copy_match_memset(U8 * to, int c, SINTr ml) +{ + RR_ASSERT( ml >= 4 ); + U32 four = c * 0x01010101; + U8 * end = to + ml; + write32(to, four); to += 4; + while(to>4); + + // copy 4 literals speculatively : + write32( rp , read32(cp) ); + + //RR_ASSERT( lrl >= 8 || ml_control >= 8 ); + + if ( lrl > 4 ) + { + // if lrl was <= 8 we did it, else need this : + if_unlikely ( lrl > 8 ) + { + if_unlikely ( lrl >= LZB_LRL_ESCAPE ) + { + LZB_AddExcessLRL( cp, lrl ); + + // hide the EOF check here ? + // has to be after the GetExcess + if_unlikely ( rp+lrl >= rpEnd ) + { + RR_ASSERT( rp+lrl == rpEnd ); + + copy_no_overlap_nooverrun(rp,cp,lrl); + + rp += lrl; + cp += lrl; + break; + } + else + { + // total undo of the previous copy + copy_no_overlap_long(rp,cp,lrl); + } + } + else // > 8 but not 0xF + { + // hide the EOF check here ? + if_unlikely ( rp+lrl >= rpEnd ) + { + if ( lrl == 9 ) + { + // may be a false 9 + lrl = rrPtrDiff32( rpEnd - rp ); + } + RR_ASSERT( rp+lrl == rpEnd ); + + copy_no_overlap_nooverrun(rp,cp,lrl); + + rp += lrl; + cp += lrl; + break; + } + else + { + write32( rp+4 , read32(cp+4) ); + // put 8 more : + write64( (rp+8) , read64((cp+8)) ); + } + } + } + else + { + write32( rp+4 , read32(cp+4) ); + } + } + + rp += lrl; + cp += lrl; + + RR_ASSERT( rp+LZB_MML <= rpEnd ); + + UINTr ml = ml_control + LZB_MML; + + // speculatively grab offset but don't advance cp yet + UINTr off = RR_GET16_LE_UNALIGNED(cp); + + if ( ml_control <= 8 ) + { + cp += 2; // consume offset + const U8 * match = rp - off; + + RR_ASSERT( ml <= 12 ); + + write64( rp , read64(match) ); + write32( rp+8 , read32(match+8) ); + + rp += ml; + continue; + } + else + { + + if_likely( ml_control < LZB_MLCONTROL_ESCAPE ) // short match + { + cp += 2; // consume offset + const U8 * match = rp - off; + + RR_ASSERT( off >= 8 || ml <= off ); + + write64( rp , read64(match) ); + write64( rp+8 , read64(match+8) ); + + if ( ml > 16 ) + { + write16( rp+16, read16(match+16) ); + } + } + else + { + // get 1-byte excess code + UINTr excesslow = off&127; + cp++; // consume 1 + + //if ( excess1 >= 128 ) + if ( off & 128 ) + { + ml_control = excesslow >> 3; + ml = ml_control + LZB_MML; + if ( ml_control == 0xF ) + { + // get more ml + LZB_AddExcessML( cp, ml ); + } + + UINTr myoff = off & 7; + + // low offset, can't do 8-byte grabs + if ( myoff == 1 ) + { + int c = rp[-1]; + copy_match_memset(rp,c,ml); + } + else + { + // shit but whatever, very rare + for(UINTr i=0;i>13); + return h; +} + +#define HashMatchFinder_Hash32 hmf_hash4_32 + +//================================================================================= + +#define LZB_Hash4 hmf_hash4_32 + +static RADINLINE U32 LZB_SecondHash4(U32 be4) +{ + const U32 m = 0x5bd1e995; + + U32 h = be4 * m; + h += (h>>11); + + return h; +} + +//============================================= + +static int RADFORCEINLINE GetNumBytesZeroNeverAllR(UINTr x) +{ + RR_ASSERT( x != 0 ); + +#if defined(__RADBIGENDIAN__) + // big endian, so earlier bytes are at the top + int nb = (int)rrClzBytesR(x); +#elif defined(__RADLITTLEENDIAN__) + // little endian, so earlier bytes are at the bottom + int nb = (int)rrCtzBytesR(x); +#else +#error wtf no endian set +#endif + + RR_ASSERT( nb >= 0 && nb < (int)sizeof(UINTr) ); + return nb; +} + +//=============================== + +static RADFORCEINLINE U8 * LZB_Output(U8 * cp, S32 lrl, const U8 * literals, S32 matchlen , S32 mo ) +{ + RR_ASSERT( lrl >= 0 ); + RR_ASSERT( matchlen >= LZB_MML ); + RR_ASSERT( mo > 0 && mo <= LZB_MAX_OFFSET ); + + //rrprintf("[%3d][%3d][%7d]\n",lrl,ml,mo); + + S32 sendml = matchlen - LZB_MML; + + U32 ml_in_control = RR_MIN(sendml,LZB_MLCONTROL_ESCAPE); + + if ( mo >= 8 ) // no overlap + { + if ( lrl < LZB_LRL_ESCAPE ) + { + U32 control = lrl | (ml_in_control<<4); + + *cp++ = (U8) control; + + write64(cp, read64(literals)); + if ( lrl > 8 ) + { + write64(cp+8, read64(literals+8)); + } + cp += lrl; + } + else + { + U32 control = LZB_LRL_ESCAPE | (ml_in_control<<4); + + *cp++ = (U8) control; + + U32 lrl_excess = lrl - LZB_LRL_ESCAPE; + LZB_PutExcessLRL(cp,lrl_excess); + + // @@ ? is this okay for overrun ? + lz_copysteptoend_overrunok(cp,literals,lrl); + } + + if ( ml_in_control < LZB_MLCONTROL_ESCAPE ) + { + RR_ASSERT( (U16)(mo) == mo ); + RR_PUT16_LE_UNALIGNED(cp,(U16)(mo)); + cp += 2; + } + else + { + U32 ml_excess = sendml - LZB_MLCONTROL_ESCAPE; + + // put special first byte, then offset, then remainder + if ( ml_excess < 127 ) + { + *cp++ = (U8)ml_excess; + + RR_ASSERT( (U16)(mo) == mo ); + RR_PUT16_LE_UNALIGNED(cp,(U16)(mo)); + cp += 2; + } + else + { + *cp++ = (U8)127; + + RR_ASSERT( (U16)(mo) == mo ); + RR_PUT16_LE_UNALIGNED(cp,(U16)(mo)); + cp += 2; + + ml_excess -= 127; + LZB_PutExcessML(cp,ml_excess); + } + } + } + else + { + U32 lrl_in_control = RR_MIN(lrl,LZB_LRL_ESCAPE); + + // overlap case + U32 control = (lrl_in_control) | (LZB_MLCONTROL_ESCAPE<<4); + + *cp++ = (U8) control; + + if ( lrl_in_control == LZB_LRL_ESCAPE ) + { + U32 lrl_excess = lrl - LZB_LRL_ESCAPE; + LZB_PutExcessLRL(cp,lrl_excess); + } + + lz_copysteptoend_overrunok(cp,literals,lrl); + //cp += lrl; + + // special excess1 : + UINTr excess1 = 128 + (ml_in_control<<3) + mo; + RR_ASSERT( excess1 < 256 ); + + *cp++ = (U8)excess1; + + if ( ml_in_control == LZB_MLCONTROL_ESCAPE ) + { + U32 ml_excess = sendml - LZB_MLCONTROL_ESCAPE; + LZB_PutExcessML(cp,ml_excess); + } + } + + return cp; +} + +#if LZB_FORCELASTLRL9 + +static RADINLINE U8 * LZB_OutputLast(U8 * cp, S32 lrl, const U8 * literals ) +{ + RR_ASSERT( lrl >= 0 ); + + //U32 ml = 0; + //U32 mo = 0; + + U32 lrl_in_control = RR_MIN(lrl,LZB_LRL_ESCAPE); + +#if LZB_END_WITH_LITERALS + // lrl_in_control must be at least 9 + lrl_in_control = RR_MAX(lrl_in_control,9); +#endif + + U32 control = lrl_in_control; + + *cp++ = (U8) control; + + if ( lrl_in_control == LZB_LRL_ESCAPE ) + { + U32 lrl_excess = lrl - LZB_LRL_ESCAPE; + LZB_PutExcessLRL(cp,lrl_excess); + } + + memmove(cp,literals,lrl); + cp += lrl; + + return cp; +} + +#else + +static RADINLINE U8 * LZB_OutputLast(U8 * cp, S32 lrl, const U8 * literals ) +{ + cp = LZB_Output(cp,lrl,literals,LZB_MML,1); + + // remove the offset we put : + cp -= 2; + + return cp; +} + +#endif + +//=============================================================== + +static void rr_lzb_simple_context_init(rr_lzb_simple_context * ctx) //, const void * base) +{ + RR_ASSERT( ctx->m_tableSizeBits >= 12 && ctx->m_tableSizeBits <= 24 ); + memset(ctx->m_hashTable,0,sizeof(U16)*((SINTa)1<m_tableSizeBits)); +} + +//=============================================================== + +/* +#define FAST_HASH_DEPTH_SHIFT (1) // more depth = more & more compression, +#define DO_FAST_2ND_HASH // rate= 30.69 mb/s , 15451369 <- turning this off is the best way to get more speed and less compression +/*/ +#define FAST_HASH_DEPTH_SHIFT (0) +#define DO_FAST_2ND_HASH +/**/ + +// lzt99, 24700820, 15475520, 16677179 +//encode only : 0.880 seconds, 1.62 b/hc, rate= 28.08 mb/s + +//#define FAST_HASH_DEPTH_SHIFT (1) // more depth = more & more compression, but slower + +#define DO_FAST_UPDATE_MATCH_HASHES 1 // helps compression a lot , like 0.30 +//#define DO_FAST_UPDATE_MATCH_HASHES 2 // helps compression a lot , like 0.30 +#define DO_FAST_LAZY_MATCH // also helps a lot , like 0.15 +#define DO_FAST_HASH_DWORD 1 + +#define FAST_MULTISTEP_LITERALS_SHIFT (5) + + +//----------------------- +// derived : + +/* +#define FAST_HASH_BITS (FAST_HASH_TOTAL_BITS-FAST_HASH_DEPTH_SHIFT) +#define FAST_HASH_SIZE (1< 1 +#define FAST_HASH_INDEX(h,d) ( ((h)< 1 + int hashCycle = 0; +#endif + + U16 * hashTable16 = fh->m_hashTable; + + int hashTableSizeBits = fh->m_tableSizeBits; + U32 hash_table_mask = (U32)((1UL<<(hashTableSizeBits - FAST_HASH_DEPTH_SHIFT)) - 1); + + const U8 * zeroPosPtr = (const U8 *)raw; + + // first byte is always a literal + rp++; + + for(;;) + { + S32 matchOff; + + UINTr failedMatches = (1<= 0 ); + +#ifdef DO_FAST_2ND_HASH + hash2 = ( LZB_SecondHash4(rp32) ) & hash_table_mask; +#endif + +#if FAST_HASH_DEPTH > 1 + for(int d=0;d= 0 ); + + hashrp = rp - matchOff; + + //if ( matchOff <= LZB_MAX_OFFSET ) + RR_ASSERT( matchOff <= LZB_MAX_OFFSET ); + { + const U32 hashrp32 = read32(hashrp); + + if ( rp32 == hashrp32 && matchOff != 0 ) + { + goto found_match; + } + } + } + +#ifdef DO_FAST_2ND_HASH + +#if FAST_HASH_DEPTH > 1 + for(int d=0;d= 0 ); + + hashrp = rp - matchOff; + + RR_ASSERT( matchOff <= LZB_MAX_OFFSET ); + { + const U32 hashrp32 = read32(hashrp); + + if ( rp32 == hashrp32 && matchOff != 0 ) + { + goto found_match; + } + } + } + +#endif + + //--------------------------- + // update hash : + + hashTable16[ FAST_HASH_INDEX(hash,hashCycle) ] = (U16) curpos; + +#ifdef DO_FAST_2ND_HASH + // do NOT step hashCycle ! + //hashCycle = (hashCycle+1)&FAST_HASH_CYCLE_MASK; + hashTable16[ FAST_HASH_INDEX(hash2,hashCycle) ] = (U16) curpos; +#endif + +#if FAST_HASH_DEPTH > 1 + hashCycle = (hashCycle+1)&FAST_HASH_CYCLE_MASK; +#endif + + UINTr stepLiterals = (failedMatches>>FAST_MULTISTEP_LITERALS_SHIFT); + RR_ASSERT( stepLiterals >= 1 ); + + ++failedMatches; + + rp += stepLiterals; + + if ( rp >= rpEndSafe ) + goto done; + + rp32 = read32(rp); + hash = FAST_HASH_FUNC(rp, rp32 ); + + } + + //------------------------------- + found_match: + + // found something + + //------------------------- + // update hash now so lazy can see it : + +#if 1 // pretty important to compression + hashTable16[ FAST_HASH_INDEX(hash,hashCycle) ] = (U16) curpos; + +#ifdef DO_FAST_2ND_HASH + // do NOT step hashCycle ! + //hashCycle = (hashCycle+1)&FAST_HASH_CYCLE_MASK; + hashTable16[ FAST_HASH_INDEX(hash2,hashCycle) ] = (U16) curpos; +#endif + +#if FAST_HASH_DEPTH > 1 + hashCycle = (hashCycle+1)&FAST_HASH_CYCLE_MASK; +#endif +#endif + + //----------------------------------- + + const U8 * match_start = rp; + rp += 4; + + while( rp < rpEndSafe ) + { + UINTr big1 = readR(rp); + UINTr big2 = readR(rp-matchOff); + + if ( big1 == big2 ) + { + rp += RAD_PTRBYTES; + continue; + } + else + { + rp += GetNumBytesZeroNeverAllR(big1^big2); + break; + } + } + rp = RR_MIN(rp,rpMatchEnd); + + //------------------------------- + // rp is now at the *end* of the match + + //------------------------------- + + // check lazy match too +#ifdef DO_FAST_LAZY_MATCH + if (rp< rpEndSafe) + { + const U8 * lazyrp = match_start + 1; + //SINTa lazypos = rrPtrDiff(lazyrp - zeroPosPtr); + SINTa lazypos = curpos + 1; + RR_ASSERT( lazypos == rrPtrDiff(lazyrp - zeroPosPtr) ); + + U32 lazyrp32 = read32(lazyrp); + + const U8 * lazyhashrp; + SINTa lazymatchOff; + + U32 lazyHash = FAST_HASH_FUNC(lazyrp, lazyrp32 ); + +#ifdef DO_FAST_2ND_HASH + U32 lazyhash2 = LZB_SecondHash4(lazyrp32) & hash_table_mask; +#endif + +#if FAST_HASH_DEPTH > 1 + for(int d=0;d= 0 ); + + RR_ASSERT( lazymatchOff <= LZB_MAX_OFFSET ); + { + lazyhashrp = lazyrp - lazymatchOff; + + const U32 hashrp32 = read32(lazyhashrp); + + if ( lazyrp32 == hashrp32 && lazymatchOff != 0 ) + { + goto lazy_found_match; + } + } + } + +#ifdef DO_FAST_2ND_HASH +#if FAST_HASH_DEPTH > 1 + for(int d=0;d= 0 ); + + RR_ASSERT( lazymatchOff <= LZB_MAX_OFFSET ); + { + lazyhashrp = lazyrp - lazymatchOff; + + const U32 hashrp32 = read32(lazyhashrp); + + if ( lazyrp32 == hashrp32 && lazymatchOff != 0 ) + { + goto lazy_found_match; + } + } + } +#endif + + if ( 0 ) + { + lazy_found_match: + + lazyrp += 4; + + while( lazyrp < rpEndSafe ) + { + UINTr big1 = readR(lazyrp); + UINTr big2 = readR(lazyrp-lazymatchOff); + + if ( big1 == big2 ) + { + lazyrp += RAD_PTRBYTES; + continue; + } + else + { + lazyrp += GetNumBytesZeroNeverAllR(big1^big2); + break; + } + } + lazyrp = RR_MIN(lazyrp,rpMatchEnd); + + //S32 lazymatchLen = rrPtrDiff32( lazyrp - (match_start+1) ); + //RR_ASSERT( lazymatchLen >= 4 ); + + if ( lazyrp >= rp+3 ) + { + // yes take the lazy match + + // put a literal : + match_start++; + + // I had a bug where lazypos was set wrong for the hash fill + // it set it to the *end* of the normal match + // and for some reason that helped compression WTF WTF + //SINTa lazypos = rrPtrDiff(rp - zeroPosPtr); // 233647528 + // with correct lazypos : 233651228 + + // really this shouldn't be necessary at all + // because I do an update of hash at all positions in the match including first! +#if 1 // with update disabled - 233690274 + + hashTable16[ FAST_HASH_INDEX(lazyHash,hashCycle) ] = (U16) lazypos; + +#ifdef DO_FAST_2ND_HASH + // do NOT step hashCycle ! + hashTable16[ FAST_HASH_INDEX(lazyhash2,hashCycle) ] = (U16) lazypos; +#endif + +#if FAST_HASH_DEPTH > 1 + hashCycle = (hashCycle+1)&FAST_HASH_CYCLE_MASK; +#endif + +#endif + + // and then drop out and do the lazy match : + //matchLen = lazymatchLen; + matchOff = (S32)lazymatchOff; + rp = lazyrp; + hashrp = lazyhashrp; + } + } + } +#endif + + //--------------------------------------------------- + + // back up start of match that we missed due to stepLiterals ! + // make sure we don't read off the start of the array + + // this costs a little speed and gains a little compression + // 15662162 at 121.58 mb/s + // 15776473 at 127.92 mb/s +#if 1 + /* + lzbf : 24,700,820 ->15,963,503 = 5.170 bpb = 1.547 to 1 + encode : 0.171 seconds, 83.60 b/kc, rate= 144.54 M/s + decode : 0.014 seconds, 1002.64 b/kc, rate= 1733.57 M/s + */ + { + // 144 M/s + // back up start of match that we missed + // make sure we don't read off the start of the array + + const U8 * rpm1 = match_start-1; + if ( rpm1 >= literals_start && hashrp > zeroPosPtr && rpm1[0] == hashrp[-1] ) + { + rpm1--; hashrp-= 2; + + while ( rpm1 >= literals_start && hashrp >= zeroPosPtr && rpm1[0] == *hashrp ) + { + rpm1--; + hashrp--; + } + + match_start = rpm1+1; + //rp = RR_MAX(rp,literals_start); + RR_ASSERT( match_start >= literals_start ); + } + } +#endif + + S32 matchLen = rrPtrDiff32( rp - match_start ); + RR_ASSERT( matchLen >= 4 ); + + //=============================================== + // chose a match + // output LRL (if any) and match + + S32 cur_lrl = rrPtrDiff32(match_start - literals_start); + + // catch expansion while writing : + if_unlikely ( cp+cur_lrl >= compExpandedPtr ) + { + return rawLen+1; + } + + cp = LZB_Output(cp,cur_lrl,literals_start,matchLen,matchOff); + + // skip the match : + literals_start = rp; + + if ( rp >= rpEndSafe ) + break; + + // step & update hashes : + // (I already did cur pos) +#ifdef DO_FAST_UPDATE_MATCH_HASHES + // don't bother if it takes us to the end : + // (this check is not for speed it's to avoid the access violation) + const U8 * ptr = match_start+1; + U16 pos16 = (U16) rrPtrDiff( ptr - zeroPosPtr ); + for(;ptr 0 ); +#endif + + if ( cur_lrl > 0 ) + { + // catch expansion while writing : + if ( cp+cur_lrl >= compExpandedPtr ) + { + return rawLen+1; + } + + cp = LZB_OutputLast(cp,cur_lrl,literals_start); + } + + SINTa compLen = rrPtrDiff( cp - (U8 *)comp ); + + return compLen; +} + +SINTa rr_lzb_simple_encode_fast(rr_lzb_simple_context * fh, + const void * raw, SINTa rawLen, void * comp) +{ + rr_lzb_simple_context_init(fh); //,raw); + + SINTa comp_len = rr_lzb_simple_encode_fast_sub(fh,raw,rawLen,comp); + if ( comp_len >= rawLen ) + { + memcpy(comp,raw,rawLen); + return rawLen; + } + return comp_len; +} + +#undef FAST_HASH_DEPTH_SHIFT + +#undef DO_FAST_UPDATE_MATCH_HASHES +#undef DO_FAST_LAZY_MATCH +#undef DO_FAST_2ND_HASH + +//===================================================== + +#define FAST_HASH_DEPTH_SHIFT (0) + +#undef FAST_MULTISTEP_LITERALS_SHIFT +#define FAST_MULTISTEP_LITERALS_SHIFT (4) + + + +//----------------------- +// derived : + +RR_COMPILER_ASSERT( FAST_HASH_DEPTH_SHIFT == 0 ); + +#undef FAST_HASH_FUNC +//#define FAST_HASH_FUNC(ptr,dword) ( LZB_Hash4(dword) & hash_table_mask ) +#define FAST_HASH_FUNC(ptr,dword) ( (((dword)*2654435761U)>>16) & hash_table_mask ) + + +// @@@@ ???? +#define LZBVF_DO_BACKUP 0 +//#define LZBVF_DO_BACKUP 1 + + +static SINTa rr_lzb_simple_encode_veryfast_sub(rr_lzb_simple_context * fh, + const void * raw, SINTa rawLen, void * comp) +{ + //SIMPLEPROFILE_SCOPE_N(lzbfast_sub,rawLen); + //THREADPROFILEFUNC(); + + U8 * cp = (U8 *)comp; + U8 * compExpandedPtr = cp + rawLen - 8; + + const U8 * rp = (const U8 *)raw; + const U8 * rpEnd = rp+rawLen; + + // we can match up to rpEnd + // but matches can't start past rpEndSafe + const U8 * rpMatchEnd = rpEnd - LZB_END_OF_BLOCK_NO_MATCH_ZONE; + + const U8 * rpEndSafe = rpMatchEnd - LZB_MML; + + if ( rpEndSafe <= (U8 *)raw ) + { + // can't compress + return rawLen+1; + } + + const U8 * literals_start = rp; + + U16 * hashTable16 = fh->m_hashTable; + int hashTableSizeBits = fh->m_tableSizeBits; + U32 hash_table_mask = (U32)((1UL<<(hashTableSizeBits)) - 1); + + const U8 * zeroPosPtr = (const U8 *)raw; + + // first byte is always a literal + rp++; + + for(;;) + { + U32 rp32 = read32(rp); + U32 hash = FAST_HASH_FUNC(rp, rp32 ); + const U8 * hashrp; + S32 matchOff; + UINTr failedMatches; + + // loop while no match found : + + // first loop with step = 1 + // @@ + //int step1count = (1<= 0 ); + + U16 hashpos16 = hashTable16[hash]; + hashTable16[ hash ] = (U16) curpos; + + matchOff = (U16)(curpos - hashpos16); + RR_ASSERT( matchOff >= 0 && matchOff <= LZB_MAX_OFFSET ); + hashrp = rp - matchOff; + + const U32 hashrp32 = read32(hashrp); + if ( rp32 == hashrp32 && matchOff != 0 ) + { + goto found_match; + } + + if ( ++rp >= rpEndSafe ) + goto done; + + rp32 = read32(rp); + hash = FAST_HASH_FUNC(rp, rp32 ); + } + + // step starts at 2 : + failedMatches = (2<= 0 ); + + U16 hashpos16 = hashTable16[hash]; + hashTable16[ hash ] = (U16) curpos; + + matchOff = (U16)(curpos - hashpos16); + RR_ASSERT( matchOff >= 0 && matchOff <= LZB_MAX_OFFSET ); + hashrp = rp - matchOff; + + const U32 hashrp32 = read32(hashrp); + + if ( rp32 == hashrp32 && matchOff != 0 ) + { + goto found_match; + } + + UINTr stepLiterals = (failedMatches>>FAST_MULTISTEP_LITERALS_SHIFT); + RR_ASSERT( stepLiterals >= 1 ); + + ++failedMatches; + + rp += stepLiterals; + + if ( rp >= rpEndSafe ) + goto done; + + rp32 = read32(rp); + hash = FAST_HASH_FUNC(rp, rp32 ); + } + + //------------------------------- + found_match:; + + // found something + +#if LZBVF_DO_BACKUP + + // alternative backup using counter : + S32 cur_lrl = rrPtrDiff32(rp - literals_start); + int neg_max_backup = - RR_MIN(cur_lrl , rrPtrDiff32(hashrp - zeroPosPtr) ); + int neg_backup = -1; + if( neg_backup >= neg_max_backup && rp[neg_backup] == hashrp[neg_backup] ) + { + neg_backup--; + while( neg_backup >= neg_max_backup && rp[neg_backup] == hashrp[neg_backup] ) + { + neg_backup--; + } + neg_backup++; + rp += neg_backup; + cur_lrl += neg_backup; + RR_ASSERT( cur_lrl >= 0 ); + RR_ASSERT( cur_lrl == rrPtrDiff32(rp - literals_start) ); + } + +#else + + S32 cur_lrl = rrPtrDiff32(rp - literals_start); + +#endif + + // catch expansion while writing : + if_unlikely ( cp+cur_lrl >= compExpandedPtr ) + { + return rawLen+1; + } + + RR_ASSERT( matchOff >= 1 ); + + //--------------------------------------- + // find rest of match len + // save pointer to start of match + // walk rp ahead to end of match + const U8 * match_start = rp; + rp += 4; + + while( rp < rpEndSafe ) + { + UINTr big1 = readR(rp); + UINTr big2 = readR(rp-matchOff); + + if ( big1 == big2 ) + { + rp += RAD_PTRBYTES; + continue; + } + else + { + rp += GetNumBytesZeroNeverAllR(big1^big2); + break; + } + } + rp = RR_MIN(rp,rpMatchEnd); + S32 matchLen = rrPtrDiff32( rp - match_start ); + + //=============================================== + // chose a match + // output LRL (if any) and match + + cp = LZB_Output(cp,cur_lrl,literals_start,matchLen,matchOff); + + // skip the match : + literals_start = rp; + + if ( rp >= rpEndSafe ) + goto done; + } + + done:; + + int cur_lrl = rrPtrDiff32(rpEnd - literals_start); +#if LZB_END_WITH_LITERALS + RR_ASSERT_ALWAYS(cur_lrl > 0 ); +#endif + + if ( cur_lrl > 0 ) + { + // catch expansion while writing : + if ( cp+cur_lrl >= compExpandedPtr ) + { + return rawLen+1; + } + + cp = LZB_OutputLast(cp,cur_lrl,literals_start); + } + + SINTa compLen = rrPtrDiff( cp - (U8 *)comp ); + + return compLen; +} + +SINTa rr_lzb_simple_encode_veryfast(rr_lzb_simple_context * fh, + const void * raw, SINTa rawLen, void * comp) +{ + rr_lzb_simple_context_init(fh); //,raw); + + SINTa comp_len = rr_lzb_simple_encode_veryfast_sub(fh,raw,rawLen,comp); + if ( comp_len >= rawLen ) + { + memcpy(comp,raw,rawLen); + return rawLen; + } + return comp_len; +} + +#undef FAST_HASH_DEPTH_SHIFT + +#undef DO_FAST_UPDATE_MATCH_HASHES +#undef DO_FAST_LAZY_MATCH +#undef DO_FAST_2ND_HASH + +//===================================================== +// vim:noet:sw=4:ts=4 diff --git a/src/radbin/radbin_main.c b/src/radbin/radbin_main.c index 193c81a5..a4ffadb7 100644 --- a/src/radbin/radbin_main.c +++ b/src/radbin/radbin_main.c @@ -10,10 +10,6 @@ //////////////////////////////// //~ rjf: Includes -//- rjf: [lib] -#include "third_party/rad_lzb_simple/rad_lzb_simple.h" -#include "third_party/rad_lzb_simple/rad_lzb_simple.c" - //- rjf: [h] #include "base/base_inc.h" #include "linker/hash_table.h" diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index 0af77b13..e81cc47f 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -202,10 +202,6 @@ //////////////////////////////// //~ rjf: Includes -//- rjf: [lib] -#include "third_party/rad_lzb_simple/rad_lzb_simple.h" -#include "third_party/rad_lzb_simple/rad_lzb_simple.c" - //- rjf: [h] #include "base/base_inc.h" #include "linker/hash_table.h" From e37ee72feb21fadc2ff3aa3dbf450b18fc71afe9 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 08:28:36 -0700 Subject: [PATCH 017/372] ditto --- src/lib_rdi/rdi_parse.c | 350 +++++++++++++++++++++++----------------- src/lib_rdi/rdi_parse.h | 3 + src/rdi/rdi_local.c | 49 ------ src/rdi/rdi_local.h | 5 - 4 files changed, 204 insertions(+), 203 deletions(-) diff --git a/src/lib_rdi/rdi_parse.c b/src/lib_rdi/rdi_parse.c index 2c36ccb4..b4ebc551 100644 --- a/src/lib_rdi/rdi_parse.c +++ b/src/lib_rdi/rdi_parse.c @@ -1,6 +1,159 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) +//////////////////////////////// +//~ Compression/Decompression Forward-Declares + +#ifndef _RAD_LZB_SIMPLE_H_ +#define _RAD_LZB_SIMPLE_H_ + +/*====================================================== + +To encode : + + Set up an rr_lzb_simple_context + + fill out m_tableSizeBits (14-16 is typical) + + allocate m_hashTable + + rr_lzb_simple_context c; + c.m_tableSizeBits = 14; + c.m_hashTable = OODLE_MALLOC_ARRAY(U16,RR_ONE_SA< +typedef uint8_t U8; +typedef uint16_t U16; +typedef uint32_t U32; +typedef uint64_t U64; +typedef int8_t S8; +typedef int16_t S16; +typedef int32_t S32; +typedef int64_t S64; + +typedef S64 SINTa; +typedef U64 RAD_U64; +typedef S64 RAD_S64; +typedef U32 RAD_U32; +typedef S32 RAD_S32; + +#define RADINLINE __inline + +#if defined(_MSC_VER) +# define RADFORCEINLINE __forceinline +#elif defined(__clang__) || defined(__GNUC__) +# define RADFORCEINLINE __attribute__((always_inline)) +#else +# error need force inline for this compiler +#endif + +#if _MSC_VER +# define RADLZB_TRAP() __debugbreak() +#elif __clang__ || __GNUC__ +# define RADLZB_TRAP() __builtin_trap() +#else +# error Unknown trap intrinsic for this compiler. +#endif + +#define RR_STRING_JOIN(arg1, arg2) RR_STRING_JOIN_DELAY(arg1, arg2) +#define RR_STRING_JOIN_DELAY(arg1, arg2) RR_STRING_JOIN_IMMEDIATE(arg1, arg2) +#define RR_STRING_JOIN_IMMEDIATE(arg1, arg2) arg1 ## arg2 + +#ifdef _MSC_VER +#define RR_NUMBERNAME(name) RR_STRING_JOIN(name,__COUNTER__) +#else +#define RR_NUMBERNAME(name) RR_STRING_JOIN(name,__LINE__) +#endif + +#define RR_COMPILER_ASSERT(exp) typedef char RR_NUMBERNAME(_dummy_array) [ (exp) ? 1 : -1 ] + +#if defined(__clang__) +# define Expect(expr, val) __builtin_expect((expr), (val)) +#else +# define Expect(expr, val) (expr) +#endif + +#define RAD_LIKELY(expr) Expect(expr,1) +#define RAD_UNLIKELY(expr) Expect(expr,0) + +#define __RADLITTLEENDIAN__ 1 +#define RAD_PTRBYTES 8 +#define RR_MIN(a,b) ( (a) < (b) ? (a) : (b) ) +#define RR_MAX(a,b) ( (a) > (b) ? (a) : (b) ) +#define RR_ASSERT_ALWAYS(c) do{if(!(c)) {RADLZB_TRAP();}}while(0) +#define RR_ASSERT(c) RR_ASSERT_ALWAYS(c) + +#define RR_PUT16_LE(ptr,val) *((U16 *)(ptr)) = (U16)(val) +#define RR_GET16_LE_UNALIGNED(ptr) *((const U16 *)(ptr)) + +static RADINLINE U32 +rrCtzBytes32(U32 val) +{ + // Don't get fancy here. Assumes val != 0. + if (val & 0x000000ffu) return 0; + if (val & 0x0000ff00u) return 1; + if (val & 0x00ff0000u) return 2; + return 3; +} + +static RADINLINE U32 +rrCtzBytes64(U64 val) +{ + U32 lo = (U32) val; + return lo ? rrCtzBytes32(lo) : 4 + rrCtzBytes32((U32) (val >> 32)); +} + +//~ + +//--------------------- + +typedef struct rr_lzb_simple_context rr_lzb_simple_context; +struct rr_lzb_simple_context +{ + U16 * m_hashTable; // must be allocated to sizeof(U16)*(1<raw_data; + RDI_Header *dst_header = (RDI_Header *)decompressed_data; + { + MemoryCopy(dst_header, src_header, sizeof(RDI_Header)); + } + + // rjf: copy & adjust sections for decompressed version + if(og_rdi->sections_count != 0) + { + RDI_Section *dsec_base = (RDI_Section *)(decompressed_data + dst_header->data_section_off); + MemoryCopy(dsec_base, (U8 *)og_rdi->raw_data + src_header->data_section_off, sizeof(RDI_Section) * og_rdi->sections_count); + U64 off = dst_header->data_section_off + sizeof(RDI_Section) * og_rdi->sections_count; + off += 7; + off -= off%8; + for(U64 idx = 0; idx < og_rdi->sections_count; idx += 1) + { + dsec_base[idx].encoding = RDI_SectionEncoding_Unpacked; + dsec_base[idx].off = off; + dsec_base[idx].encoded_size = dsec_base[idx].unpacked_size; + off += dsec_base[idx].unpacked_size; + off += 7; + off -= off%8; + } + } + + // rjf: decompress sections into new decompressed file buffer + if(og_rdi->sections_count != 0) + { + RDI_Section *src_first = og_rdi->sections; + RDI_Section *dst_first = (RDI_Section *)(decompressed_data + dst_header->data_section_off); + RDI_Section *src_opl = src_first + og_rdi->sections_count; + RDI_Section *dst_opl = dst_first + og_rdi->sections_count; + for(RDI_Section *src = src_first, *dst = dst_first; + src < src_opl && dst < dst_opl; + src += 1, dst += 1) + { + rr_lzb_simple_decode((U8*)og_rdi->raw_data + src->off, src->encoded_size, + decompressed_data + dst->off, dst->unpacked_size); + } + } +} + //- strings RDI_PROC RDI_U8 * @@ -866,155 +1067,6 @@ rdi_size_from_bytecode_stream(RDI_U8 *ptr, RDI_U8 *opl) //////////////////////////////// //~ Compression/Decompression Implementation -#ifndef _RAD_LZB_SIMPLE_H_ -#define _RAD_LZB_SIMPLE_H_ - -/*====================================================== - -To encode : - - Set up an rr_lzb_simple_context - - fill out m_tableSizeBits (14-16 is typical) - - allocate m_hashTable - - rr_lzb_simple_context c; - c.m_tableSizeBits = 14; - c.m_hashTable = OODLE_MALLOC_ARRAY(U16,RR_ONE_SA< -typedef uint8_t U8; -typedef uint16_t U16; -typedef uint32_t U32; -typedef uint64_t U64; -typedef int8_t S8; -typedef int16_t S16; -typedef int32_t S32; -typedef int64_t S64; - -typedef S64 SINTa; -typedef U64 RAD_U64; -typedef S64 RAD_S64; -typedef U32 RAD_U32; -typedef S32 RAD_S32; - -#define RADINLINE __inline - -#if defined(_MSC_VER) -# define RADFORCEINLINE __forceinline -#elif defined(__clang__) || defined(__GNUC__) -# define RADFORCEINLINE __attribute__((always_inline)) -#else -# error need force inline for this compiler -#endif - -#if _MSC_VER -# define RADLZB_TRAP() __debugbreak() -#elif __clang__ || __GNUC__ -# define RADLZB_TRAP() __builtin_trap() -#else -# error Unknown trap intrinsic for this compiler. -#endif - -#define RR_STRING_JOIN(arg1, arg2) RR_STRING_JOIN_DELAY(arg1, arg2) -#define RR_STRING_JOIN_DELAY(arg1, arg2) RR_STRING_JOIN_IMMEDIATE(arg1, arg2) -#define RR_STRING_JOIN_IMMEDIATE(arg1, arg2) arg1 ## arg2 - -#ifdef _MSC_VER -#define RR_NUMBERNAME(name) RR_STRING_JOIN(name,__COUNTER__) -#else -#define RR_NUMBERNAME(name) RR_STRING_JOIN(name,__LINE__) -#endif - -#define RR_COMPILER_ASSERT(exp) typedef char RR_NUMBERNAME(_dummy_array) [ (exp) ? 1 : -1 ] - -#if defined(__clang__) -# define Expect(expr, val) __builtin_expect((expr), (val)) -#else -# define Expect(expr, val) (expr) -#endif - -#define RAD_LIKELY(expr) Expect(expr,1) -#define RAD_UNLIKELY(expr) Expect(expr,0) - -#define __RADLITTLEENDIAN__ 1 -#define RAD_PTRBYTES 8 -#define RR_MIN(a,b) ( (a) < (b) ? (a) : (b) ) -#define RR_MAX(a,b) ( (a) > (b) ? (a) : (b) ) -#define RR_ASSERT_ALWAYS(c) do{if(!(c)) {RADLZB_TRAP();}}while(0) -#define RR_ASSERT(c) RR_ASSERT_ALWAYS(c) - -#define RR_PUT16_LE(ptr,val) *((U16 *)(ptr)) = (U16)(val) -#define RR_GET16_LE_UNALIGNED(ptr) *((const U16 *)(ptr)) - -static RADINLINE U32 -rrCtzBytes32(U32 val) -{ - // Don't get fancy here. Assumes val != 0. - if (val & 0x000000ffu) return 0; - if (val & 0x0000ff00u) return 1; - if (val & 0x00ff0000u) return 2; - return 3; -} - -static RADINLINE U32 -rrCtzBytes64(U64 val) -{ - U32 lo = (U32) val; - return lo ? rrCtzBytes32(lo) : 4 + rrCtzBytes32((U32) (val >> 32)); -} - -//~ - -//--------------------- - -typedef struct rr_lzb_simple_context rr_lzb_simple_context; -struct rr_lzb_simple_context -{ - U16 * m_hashTable; // must be allocated to sizeof(U16)*(1< //------------------------------------------------- diff --git a/src/lib_rdi/rdi_parse.h b/src/lib_rdi/rdi_parse.h index c5267b01..7ea6193c 100644 --- a/src/lib_rdi/rdi_parse.h +++ b/src/lib_rdi/rdi_parse.h @@ -152,6 +152,9 @@ RDI_PROC void *rdi_section_raw_element_from_kind_idx(RDI_Parsed *rdi, RDI_Sectio //- info about whole parse RDI_PROC RDI_U64 rdi_decompressed_size_from_parsed(RDI_Parsed *rdi); +//- decompression +internal void rdi_decompress_parsed(U8 *decompressed_data, U64 decompressed_size, RDI_Parsed *og_rdi); + //- strings RDI_PROC RDI_U8 *rdi_string_from_idx(RDI_Parsed *rdi, RDI_U32 idx, RDI_U64 *len_out); diff --git a/src/rdi/rdi_local.c b/src/rdi/rdi_local.c index 166bc023..d0a973e3 100644 --- a/src/rdi/rdi_local.c +++ b/src/rdi/rdi_local.c @@ -4,55 +4,6 @@ #include "lib_rdi/rdi.c" #include "lib_rdi/rdi_parse.c" -//////////////////////////////// -//~ rjf: RDI Decompression - -internal void -rdi_decompress_parsed(U8 *decompressed_data, U64 decompressed_size, RDI_Parsed *og_rdi) -{ - // rjf: copy header - RDI_Header *src_header = (RDI_Header *)og_rdi->raw_data; - RDI_Header *dst_header = (RDI_Header *)decompressed_data; - { - MemoryCopy(dst_header, src_header, sizeof(RDI_Header)); - } - - // rjf: copy & adjust sections for decompressed version - if(og_rdi->sections_count != 0) - { - RDI_Section *dsec_base = (RDI_Section *)(decompressed_data + dst_header->data_section_off); - MemoryCopy(dsec_base, (U8 *)og_rdi->raw_data + src_header->data_section_off, sizeof(RDI_Section) * og_rdi->sections_count); - U64 off = dst_header->data_section_off + sizeof(RDI_Section) * og_rdi->sections_count; - off += 7; - off -= off%8; - for(U64 idx = 0; idx < og_rdi->sections_count; idx += 1) - { - dsec_base[idx].encoding = RDI_SectionEncoding_Unpacked; - dsec_base[idx].off = off; - dsec_base[idx].encoded_size = dsec_base[idx].unpacked_size; - off += dsec_base[idx].unpacked_size; - off += 7; - off -= off%8; - } - } - - // rjf: decompress sections into new decompressed file buffer - if(og_rdi->sections_count != 0) - { - RDI_Section *src_first = og_rdi->sections; - RDI_Section *dst_first = (RDI_Section *)(decompressed_data + dst_header->data_section_off); - RDI_Section *src_opl = src_first + og_rdi->sections_count; - RDI_Section *dst_opl = dst_first + og_rdi->sections_count; - for(RDI_Section *src = src_first, *dst = dst_first; - src < src_opl && dst < dst_opl; - src += 1, dst += 1) - { - rr_lzb_simple_decode((U8*)og_rdi->raw_data + src->off, src->encoded_size, - decompressed_data + dst->off, dst->unpacked_size); - } - } -} - //////////////////////////////// //~ rjf: Lookup Helpers diff --git a/src/rdi/rdi_local.h b/src/rdi/rdi_local.h index 53b8f2b8..9b35144e 100644 --- a/src/rdi/rdi_local.h +++ b/src/rdi/rdi_local.h @@ -64,11 +64,6 @@ read_only global String8 rdi_name_title_from_dump_subset_table[] = #undef X }; -//////////////////////////////// -//~ rjf: RDI Decompression - -internal void rdi_decompress_parsed(U8 *decompressed_data, U64 decompressed_size, RDI_Parsed *og_rdi); - //////////////////////////////// //~ rjf: Lookup Helpers From 8dac256a1202072b3e2b08ccbd52201320f1079e Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 09:44:41 -0700 Subject: [PATCH 018/372] consistency pass over dwarf layer --- src/dwarf/dwarf.c | 66 +-- src/dwarf/dwarf.h | 48 +-- src/dwarf/dwarf_dump.c | 632 +++++++++++++++------------- src/dwarf/dwarf_dump.h | 2 +- src/dwarf/dwarf_parse.c | 40 +- src/radcon/radcon_dwarf.c | 298 ++++++------- src/raddump/raddump.c | 28 +- src/rdi_from_dwarf/rdi_from_dwarf.c | 286 ++++++------- 8 files changed, 729 insertions(+), 671 deletions(-) diff --git a/src/dwarf/dwarf.c b/src/dwarf/dwarf.c index f55f59b4..bf3bb821 100644 --- a/src/dwarf/dwarf.c +++ b/src/dwarf/dwarf.c @@ -70,10 +70,10 @@ dw_reg_pos_from_code(Arch arch, DW_Reg reg_code) } internal DW_AttribClass -dw_attrib_class_from_attrib_kind_v2(DW_AttribKind k) +dw_attrib_class_from_attrib_v2(DW_AttribKind k) { switch (k) { -#define X(_N,_C) case DW_Attrib_##_N: return _C; +#define X(_N,_C) case DW_AttribKind_##_N: return _C; DW_AttribKind_ClassFlags_V2_XList(X) #undef X } @@ -81,10 +81,10 @@ dw_attrib_class_from_attrib_kind_v2(DW_AttribKind k) } internal DW_AttribClass -dw_attrib_class_from_attrib_kind_v3(DW_AttribKind k) +dw_attrib_class_from_attrib_v3(DW_AttribKind k) { switch (k) { -#define X(_N,_C) case DW_Attrib_##_N: return _C; +#define X(_N,_C) case DW_AttribKind_##_N: return _C; DW_AttribKind_ClassFlags_V3_XList(X) #undef X } @@ -92,10 +92,10 @@ dw_attrib_class_from_attrib_kind_v3(DW_AttribKind k) } internal DW_AttribClass -dw_attrib_class_from_attrib_kind_v4(DW_AttribKind k) +dw_attrib_class_from_attrib_v4(DW_AttribKind k) { switch (k) { -#define X(_N,_C) case DW_Attrib_##_N: return _C; +#define X(_N,_C) case DW_AttribKind_##_N: return _C; DW_AttribKind_ClassFlags_V4_XList(X) #undef X } @@ -103,10 +103,10 @@ dw_attrib_class_from_attrib_kind_v4(DW_AttribKind k) } internal DW_AttribClass -dw_attrib_class_from_attrib_kind_v5(DW_AttribKind k) +dw_attrib_class_from_attrib_v5(DW_AttribKind k) { switch (k) { -#define X(_N,_C) case DW_Attrib_##_N: return _C; +#define X(_N,_C) case DW_AttribKind_##_N: return _C; DW_AttribKind_ClassFlags_V5_XList(X) #undef X } @@ -114,10 +114,10 @@ dw_attrib_class_from_attrib_kind_v5(DW_AttribKind k) } internal DW_AttribClass -dw_attrib_class_from_attrib_kind_gnu(DW_AttribKind k) +dw_attrib_class_from_attrib_gnu(DW_AttribKind k) { switch (k) { -#define X(_N,_C) case DW_Attrib_##_N: return _C; +#define X(_N,_C) case DW_AttribKind_##_N: return _C; DW_AttribKind_ClassFlags_GNU_XList(X) #undef X } @@ -125,10 +125,10 @@ dw_attrib_class_from_attrib_kind_gnu(DW_AttribKind k) } internal DW_AttribClass -dw_attrib_class_from_attrib_kind_llvm(DW_AttribKind k) +dw_attrib_class_from_attrib_llvm(DW_AttribKind k) { switch (k) { -#define X(_N,_C) case DW_Attrib_##_N: return _C; +#define X(_N,_C) case DW_AttribKind_##_N: return _C; DW_AttribKind_ClassFlags_LLVM_XList(X) #undef X } @@ -136,10 +136,10 @@ dw_attrib_class_from_attrib_kind_llvm(DW_AttribKind k) } internal DW_AttribClass -dw_attrib_class_from_attrib_kind_apple(DW_AttribKind k) +dw_attrib_class_from_attrib_apple(DW_AttribKind k) { switch (k) { -#define X(_N,_C) case DW_Attrib_##_N: return _C; +#define X(_N,_C) case DW_AttribKind_##_N: return _C; DW_AttribKind_ClassFlags_APPLE_XList(X) #undef X } @@ -147,10 +147,10 @@ dw_attrib_class_from_attrib_kind_apple(DW_AttribKind k) } internal DW_AttribClass -dw_attrib_class_from_attrib_kind_mips(DW_AttribKind k) +dw_attrib_class_from_attrib_mips(DW_AttribKind k) { switch (k) { -#define X(_N,_C) case DW_Attrib_##_N: return _C; +#define X(_N,_C) case DW_AttribKind_##_N: return _C; DW_AttribKind_ClassFlags_MIPS_XList(X) #undef X } @@ -158,7 +158,7 @@ dw_attrib_class_from_attrib_kind_mips(DW_AttribKind k) } internal DW_AttribClass -dw_attrib_class_from_attrib_kind(DW_Version ver, DW_Ext ext, DW_AttribKind k) +dw_attrib_class_from_attrib(DW_Version ver, DW_Ext ext, DW_AttribKind k) { DW_AttribClass result = DW_AttribClass_Null; @@ -172,10 +172,10 @@ dw_attrib_class_from_attrib_kind(DW_Version ver, DW_Ext ext, DW_AttribKind k) switch (flag) { case DW_Ext_Null: break; - case DW_Ext_GNU: result = dw_attrib_class_from_attrib_kind_gnu(k); break; - case DW_Ext_LLVM: result = dw_attrib_class_from_attrib_kind_llvm(k); break; - case DW_Ext_APPLE: result = dw_attrib_class_from_attrib_kind_apple(k); break; - case DW_Ext_MIPS: result = dw_attrib_class_from_attrib_kind_mips(k); break; + case DW_Ext_GNU: result = dw_attrib_class_from_attrib_gnu(k); break; + case DW_Ext_LLVM: result = dw_attrib_class_from_attrib_llvm(k); break; + case DW_Ext_APPLE: result = dw_attrib_class_from_attrib_apple(k); break; + case DW_Ext_MIPS: result = dw_attrib_class_from_attrib_mips(k); break; default: InvalidPath; break; } @@ -188,10 +188,10 @@ dw_attrib_class_from_attrib_kind(DW_Version ver, DW_Ext ext, DW_AttribKind k) switch (ver) { case DW_Version_Null: break; case DW_Version_1: AssertAlways(!"DWARF V1 is not supported"); break; - case DW_Version_2: result = dw_attrib_class_from_attrib_kind_v2(k); break; - case DW_Version_3: result = dw_attrib_class_from_attrib_kind_v3(k); break; - case DW_Version_4: result = dw_attrib_class_from_attrib_kind_v4(k); break; - case DW_Version_5: result = dw_attrib_class_from_attrib_kind_v5(k); break; + case DW_Version_2: result = dw_attrib_class_from_attrib_v2(k); break; + case DW_Version_3: result = dw_attrib_class_from_attrib_v3(k); break; + case DW_Version_4: result = dw_attrib_class_from_attrib_v4(k); break; + case DW_Version_5: result = dw_attrib_class_from_attrib_v5(k); break; default: InvalidPath; break; } } @@ -302,14 +302,14 @@ dw_pick_attrib_value_class(DW_Version ver, DW_Ext ext, B32 relaxed, DW_AttribKin // This function's purpose is to find the overlapping class between an // DW_AttribKind and DW_FormKind. - DW_AttribClass attrib_class = dw_attrib_class_from_attrib_kind(ver, ext, attrib_kind); + DW_AttribClass attrib_class = dw_attrib_class_from_attrib(ver, ext, attrib_kind); DW_AttribClass form_class = dw_attrib_class_from_form_kind(ver, form_kind); if(relaxed) { if(attrib_class == DW_AttribClass_Null || form_class == DW_AttribClass_Null) { - attrib_class = dw_attrib_class_from_attrib_kind(DW_Version_Last, ext, attrib_kind); + attrib_class = dw_attrib_class_from_attrib(DW_Version_Last, ext, attrib_kind); form_class = dw_attrib_class_from_form_kind(DW_Version_Last, form_kind); } } @@ -434,11 +434,11 @@ internal String8 dw_string_from_tag_kind(Arena *arena, DW_TagKind kind) { switch (kind) { - case DW_Tag_Null: return str8_lit("Null"); -#define X(_N,_ID) case DW_Tag_##_N: return str8_lit(Stringify(_N)); - DW_Tag_V3_XList(X) - DW_Tag_V5_XList(X) - DW_Tag_GNU_XList(X) + case DW_TagKind_Null: return str8_lit("Null"); +#define X(_N,_ID) case DW_TagKind_##_N: return str8_lit(Stringify(_N)); + DW_TagKind_V3_XList(X) + DW_TagKind_V5_XList(X) + DW_TagKind_GNU_XList(X) #undef X } return push_str8f(arena, "%llx", kind); @@ -447,7 +447,7 @@ dw_string_from_tag_kind(Arena *arena, DW_TagKind kind) internal String8 dw_string_from_attrib_kind(Arena *arena, DW_Version ver, DW_Ext ext, DW_AttribKind kind) { -#define X(_N,...) case DW_Attrib_##_N: return str8_lit(Stringify(_N)); +#define X(_N,...) case DW_AttribKind_##_N: return str8_lit(Stringify(_N)); while (ext) { U64 z = 64-clz64(ext); diff --git a/src/dwarf/dwarf.h b/src/dwarf/dwarf.h index 9fcf1a0e..afc167a3 100644 --- a/src/dwarf/dwarf.h +++ b/src/dwarf/dwarf.h @@ -188,7 +188,7 @@ typedef enum DW_IDCaseKindEnum #undef X } DW_IDCaseKindEnum; -#define DW_Tag_V3_XList(X) \ +#define DW_TagKind_V3_XList(X) \ X(ArrayType, 0x01) \ X(ClassType, 0x02) \ X(EntryPoint, 0x03) \ @@ -247,7 +247,7 @@ X(ImportedUnit, 0x3d) \ X(Condition, 0x3f) \ X(SharedType, 0x40) -#define DW_Tag_V5_XList(X) \ +#define DW_TagKind_V5_XList(X) \ X(TypeUnit, 0x41) \ X(RValueReferenceType, 0x42) \ X(TemplateAlias, 0x43) \ @@ -260,21 +260,21 @@ X(CallSiteParameter, 0x49) \ X(SkeletonUnit, 0x4A) \ X(ImmutableType, 0x4B) -#define DW_Tag_GNU_XList(X) \ +#define DW_TagKind_GNU_XList(X) \ X(GNU_CallSite, 0x4109) \ X(GNU_CallSiteParameter, 0x410a) typedef U64 DW_TagKind; typedef enum DW_TagKindEnum { - DW_Tag_Null, -#define X(_N,_ID) DW_Tag_##_N = _ID, - DW_Tag_V3_XList(X) - DW_Tag_V5_XList(X) - DW_Tag_GNU_XList(X) + DW_TagKind_Null, +#define X(_N,_ID) DW_TagKind_##_N = _ID, + DW_TagKind_V3_XList(X) + DW_TagKind_V5_XList(X) + DW_TagKind_GNU_XList(X) #undef X - DW_Tag_UserLo = 0x4080, - DW_Tag_UserHi = 0xffff + DW_TagKind_UserLo = 0x4080, + DW_TagKind_UserHi = 0xffff } DW_TagKindEnum; //- Attrib Class Encodings @@ -581,7 +581,7 @@ X(Producer, DW_AttribClass_String) X(Prototyped, DW_AttribClass_Flag) \ X(ReturnAddr, DW_AttribClass_Block|DW_AttribClass_Const) \ X(StartScope, DW_AttribClass_Const) \ -X(BitStride, DW_AttribClass_Const) /* dwarf-v1 DW_Attrib_stride_size*/ \ +X(BitStride, DW_AttribClass_Const) /* dwarf-v1 DW_AttribKind_stride_size*/ \ X(UpperBound, DW_AttribClass_Const|DW_AttribClass_Reference) \ X(AbstractOrigin, DW_AttribClass_Reference) \ X(Accessibility, DW_AttribClass_Const) \ @@ -1159,8 +1159,8 @@ X(MIPS_AssumedSize, DW_AttribClass_Reference) typedef U32 DW_AttribKind; typedef enum DW_AttribKindEnum { - DW_Attrib_Null, -#define X(_N,_ID,...) DW_Attrib_##_N = _ID, + DW_AttribKind_Null, +#define X(_N,_ID,...) DW_AttribKind_##_N = _ID, DW_AttribKind_V2_XList(X) DW_AttribKind_V3_XList(X) DW_AttribKind_V4_XList(X) @@ -1170,8 +1170,8 @@ typedef enum DW_AttribKindEnum DW_AttribKind_APPLE_XList(X) DW_AttribKind_MIPS_XList(X) #undef X - DW_Attrib_UserLo = 0x2000, - DW_Attrib_UserHi = 0x3fff + DW_AttribKind_UserLo = 0x2000, + DW_AttribKind_UserHi = 0x3fff } DW_AttribKindEnum; #define DW_ATE_XList(X) \ @@ -1744,18 +1744,18 @@ internal U64 dw_reg_pos_from_code(Arch arch, DW_Reg reg_code); //- Attrib Class Encodings // Speced Encodings -internal DW_AttribClass dw_attrib_class_from_attrib_kind_v2(DW_AttribKind k); -internal DW_AttribClass dw_attrib_class_from_attrib_kind_v3(DW_AttribKind k); -internal DW_AttribClass dw_attrib_class_from_attrib_kind_v4(DW_AttribKind k); -internal DW_AttribClass dw_attrib_class_from_attrib_kind_v5(DW_AttribKind k); +internal DW_AttribClass dw_attrib_class_from_attrib_v2(DW_AttribKind k); +internal DW_AttribClass dw_attrib_class_from_attrib_v3(DW_AttribKind k); +internal DW_AttribClass dw_attrib_class_from_attrib_v4(DW_AttribKind k); +internal DW_AttribClass dw_attrib_class_from_attrib_v5(DW_AttribKind k); // Extensions -internal DW_AttribClass dw_attrib_class_from_attrib_kind_gnu (DW_AttribKind k); -internal DW_AttribClass dw_attrib_class_from_attrib_kind_llvm (DW_AttribKind k); -internal DW_AttribClass dw_attrib_class_from_attrib_kind_apple(DW_AttribKind k); -internal DW_AttribClass dw_attrib_class_from_attrib_kind_mips (DW_AttribKind k); +internal DW_AttribClass dw_attrib_class_from_attrib_gnu (DW_AttribKind k); +internal DW_AttribClass dw_attrib_class_from_attrib_llvm (DW_AttribKind k); +internal DW_AttribClass dw_attrib_class_from_attrib_apple(DW_AttribKind k); +internal DW_AttribClass dw_attrib_class_from_attrib_mips (DW_AttribKind k); -internal DW_AttribClass dw_attrib_class_from_attrib_kind(DW_Version ver, DW_Ext ext, DW_AttribKind v); +internal DW_AttribClass dw_attrib_class_from_attrib(DW_Version ver, DW_Ext ext, DW_AttribKind v); //- Form Class Encodings diff --git a/src/dwarf/dwarf_dump.c b/src/dwarf/dwarf_dump.c index a90fe145..6ac790bb 100644 --- a/src/dwarf/dwarf_dump.c +++ b/src/dwarf/dwarf_dump.c @@ -628,260 +628,7 @@ dw_print_eh_frame(Arena *arena, String8List *out, String8 indent, String8 raw_eh internal void dw_print_debug_info(Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, Arch arch, B32 relaxed) { - Temp scratch = scratch_begin(&arena, 1); - Rng1U64List cu_ranges = dw_unit_ranges_from_data(scratch.arena, input->sec[DW_Section_Info].data); - - if (cu_ranges.count > 0) { - rd_printf("# %S", input->sec[DW_Section_Info].name); - rd_indent(); - } - - U64 comp_idx = 0; - for (Rng1U64Node *cu_range_n = cu_ranges.first; cu_range_n != 0; cu_range_n = cu_range_n->next, ++comp_idx) { - Temp comp_temp = temp_begin(scratch.arena); - - U64 cu_base = cu_range_n->v.min; - Rng1U64 cu_range = cu_range_n->v; - DW_CompUnit cu = dw_cu_from_info_off(comp_temp.arena, input, lu_input, cu_range.min, relaxed); - - String8 cu_dir = dw_string_from_attrib (input, &cu, cu.tag, DW_Attrib_CompDir ); - String8 cu_name = dw_string_from_attrib (input, &cu, cu.tag, DW_Attrib_Name ); - String8 stmt_list = dw_line_ptr_from_attrib(input, &cu, cu.tag, DW_Attrib_StmtList); - - DW_LineVMHeader line_vm = {0}; - dw_read_line_vm_header(comp_temp.arena, stmt_list, 0, input, cu_dir, cu_name, cu.address_size, cu.str_offsets_lu, &line_vm); - - // print comp info - rd_printf("Compilation Unit #%u", comp_idx); - rd_indent(); - rd_printf("Version: %u", cu.version); - rd_printf("Address Size: %llu", cu.address_size); - rd_printf("Abbrev Offset: %#llx", cu.abbrev_off); - rd_printf("Info Range: %#llx-%#llx (%M)", cu.info_range.min, cu.info_range.max, dim_1u64(cu.info_range)); - rd_newline(); - - // prase tags - U32 tag_depth = 0; - for (U64 info_off = cu.first_tag_info_off; info_off < cu.info_range.max; ) { - Temp tag_temp = temp_begin(scratch.arena); - - U64 tag_info_off = info_off; - DW_Tag tag = {0}; - info_off += dw_read_tag_cu(tag_temp.arena, input, &cu, tag_info_off, &tag); - - String8 tag_str = dw_string_from_tag_kind(tag_temp.arena, tag.kind); - rd_printf("<%x><%llx> DW_Tag_%S (Abbrev Number: %llu)", tag_depth, tag_info_off, tag_str, tag.abbrev_id); - rd_indent(); - - // parse attributes - for (DW_AttribNode *attrib_n = tag.attribs.first; attrib_n != 0; attrib_n = attrib_n->next) { - Temp attrib_temp = temp_begin(tag_temp.arena); - - DW_Attrib *attrib = &attrib_n->v; - - String8List attrib_list = {0}; - - // attribute .debug_info offset - str8_list_pushf(attrib_temp.arena, &attrib_list, "<%llx> ", attrib->info_off); - - // attribute kind - String8 attrib_kind_str = dw_string_from_attrib_kind(attrib_temp.arena, cu.version, cu.ext, attrib->attrib_kind); - if (attrib_kind_str.size == 0) { - if (relaxed) { - attrib_kind_str = dw_string_from_attrib_kind(attrib_temp.arena, DW_Version_Last, cu.ext, attrib->attrib_kind); - } - } - if (attrib_kind_str.size == 0) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "Unknown(%#x) ", attrib->attrib_kind); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "DW_Attrib_%-20S ", attrib_kind_str); - } - - // form kind - String8 form_kind_str = dw_string_from_form_kind(scratch.arena, cu.version, attrib->form_kind); - str8_list_pushf(attrib_temp.arena, &attrib_list, "DW_Form_%-15S", form_kind_str); - - DW_AttribClass value_class = dw_value_class_from_attrib(&cu, attrib); - switch (value_class) { - default: { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unknown value class"); - } break; - case DW_AttribClass_Undefined: { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: undefined value class"); - } break; - case DW_AttribClass_Address: { - U64 address = dw_address_from_attrib_ptr(input, &cu, attrib); - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", address); - } break; - case DW_AttribClass_Block: { - String8 block = dw_block_from_attrib_ptr(input, &cu, attrib); - String8List block_strs = numeric_str8_list_from_data(attrib_temp.arena, 16, block, 1); - String8 block_str = str8_list_join(attrib_temp.arena, &block_strs, &(StringJoin){.sep = str8_lit(", ")}); - str8_list_push(attrib_temp.arena, &attrib_list, block_str); - } break; - case DW_AttribClass_Const: { - U64 constant = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", constant); - } break; - case DW_AttribClass_ExprLoc: { - String8 exprloc = dw_exprloc_from_attrib_ptr(input, &cu, attrib); - String8 exprloc_str = dw_format_expression_single_line(attrib_temp.arena, exprloc, cu_base, cu.address_size, arch, cu.version, cu.ext, cu.format); - str8_list_push(attrib_temp.arena, &attrib_list, exprloc_str); - } break; - case DW_AttribClass_Flag: { - B32 flag = dw_flag_from_attrib_ptr(input, &cu, attrib); - str8_list_pushf(attrib_temp.arena, &attrib_list, "%llu (%s)", flag, flag == 0 ? "false" : "true"); - } break; - case DW_AttribClass_LinePtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, cu.version, attrib->form_kind)); - } - } break; - case DW_AttribClass_LocListPtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, cu.version, attrib->form_kind)); - } - } break; - case DW_AttribClass_MacPtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "\?\?\?"); - } - } break; - case DW_AttribClass_RngListPtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "\?\?\?"); - } - } break; - case DW_AttribClass_RngList: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "\?\?\?"); - } - } break; - case DW_AttribClass_Reference: { - if (attrib->form_kind == DW_Form_Ref1 || - attrib->form_kind == DW_Form_Ref2 || - attrib->form_kind == DW_Form_Ref4 || - attrib->form_kind == DW_Form_Ref8 || - attrib->form_kind == DW_Form_RefUData) { - U64 info_off = cu.info_range.min + attrib->form.ref; - str8_list_pushf(attrib_temp.arena, &attrib_list, "<%llx>", info_off); - if (!contains_1u64(cu.info_range, attrib->form.ref)) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "(ERROR: out of bounds reference)"); - } - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.ref); - } - } break; - case DW_AttribClass_String: { - if (attrib->form_kind == DW_Form_Strp) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } - String8 string = dw_string_from_attrib_ptr(input, &cu, attrib); - str8_list_pushf(attrib_temp.arena, &attrib_list, "(%S)", string); - } break; - case DW_AttribClass_StrOffsetsPtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, cu.version, attrib->form_kind)); - } - } break; - case DW_AttribClass_AddrPtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, cu.version, attrib->form_kind)); - } - } break; - } - - String8 attrib_str = {0}; - switch (attrib->attrib_kind) { - case DW_Attrib_Language: { - DW_Language lang = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - attrib_str = dw_string_from_language(attrib_temp.arena, lang); - } break; - case DW_Attrib_DeclFile: { - U64 file_idx = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - DW_LineFile *file = dw_file_from_attrib_ptr(&cu, &line_vm, attrib); - attrib_str = str8_lit("\?\?\?"); - if (file) { - attrib_str = dw_path_from_file(attrib_temp.arena, &line_vm, file); - } - } break; - case DW_Attrib_DeclLine: { - U64 line = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - attrib_str = push_str8f(attrib_temp.arena, "%llu", line); - } break; - case DW_Attrib_Inline: { - DW_InlKind inl = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - attrib_str = dw_string_from_inl(attrib_temp.arena, inl); - } break; - case DW_Attrib_Accessibility: { - DW_AccessKind access = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - attrib_str = dw_string_from_access_kind(attrib_temp.arena, access); - } break; - case DW_Attrib_CallingConvention: { - DW_CallingConventionKind calling_convetion = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - attrib_str = dw_string_from_calling_convetion(attrib_temp.arena, calling_convetion); - } break; - case DW_Attrib_Encoding: { - DW_ATE encoding = dw_const_u64_from_attrib_ptr(input, &cu, attrib); - attrib_str = dw_string_from_attrib_type_encoding(attrib_temp.arena, encoding); - } break; - } - - if (attrib_str.size) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "(%S)", attrib_str); - } - String8 print = str8_list_join(attrib_temp.arena, &attrib_list, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", print); - - temp_end(attrib_temp); - } - - B32 is_ender_tag = tag.abbrev_id == 0; - if (tag.has_children) { - if (is_ender_tag) { - rd_errorf("null-tag cannot have children"); - } - rd_indent(); - tag_depth += 1; - } - if (is_ender_tag) { - if (tag_depth == 0) { - rd_errorf("malformed data detected, too many null tags"); - } else { - rd_unindent(); - tag_depth -= 1; - } - } - - rd_unindent(); - temp_end(tag_temp); - } - temp_end(comp_temp); - - rd_unindent(); - rd_newline(); - } - - if (cu_ranges.count > 0) { - rd_unindent(); - } - - scratch_end(scratch); } internal void @@ -914,7 +661,7 @@ dw_print_debug_abbrev(Arena *arena, String8List *out, String8 indent, DW_Input * cursor += str8_deserial_read_uleb128(raw_abbrev, cursor, &tag); cursor += str8_deserial_read_struct(raw_abbrev, cursor, &has_children); - rd_printf("<%llx> %llu DW_Tag_%S %s", id_off, id, dw_string_from_tag_kind(temp.arena, tag), has_children ? "[has children]" : "[no children]"); + rd_printf("<%llx> %llu DW_TagKind_%S %s", id_off, id, dw_string_from_tag_kind(temp.arena, tag), has_children ? "[has children]" : "[no children]"); rd_indent(); for (;;) { U64 attrib_off = cursor; @@ -927,7 +674,7 @@ dw_print_debug_abbrev(Arena *arena, String8List *out, String8 indent, DW_Input * } String8 attrib_str = dw_string_from_attrib_kind(temp.arena, DW_Version_Last, DW_Ext_All, attrib_id); String8 form_str = dw_string_from_form_kind(temp.arena, DW_Version_Last, form_id); - rd_printf("<%llx> DW_Attrib_%-20S DW_Form_%S", attrib_off, attrib_str, form_str); + rd_printf("<%llx> DW_AttribKind_%-20S DW_Form_%S", attrib_off, attrib_str, form_str); } rd_unindent(); @@ -2146,58 +1893,369 @@ dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 indent, DW_In #endif } -internal void -dw_format(Arena *arena, String8List *out, String8 indent, DW_DumpSubsetFlags subset_flags, DW_Input *input, Arch arch, ExecutableImageKind image_type) +internal String8List +dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableImageKind image_type, DW_DumpSubsetFlags subset_flags) { + String8List strings = {0}; + String8 indent = str8_lit(" "); +#define dump(str) str8_list_push(arena, &strings, (str)) +#define dumpf(...) str8_list_pushf(arena, &strings, __VA_ARGS__) +#define DumpSubset(name) if(subset_flags & DW_DumpSubsetFlag_##name) DeferLoop(dumpf("# %S\n\n", dw_name_title_from_dump_subset_table[DW_DumpSubset_##name]), dump(str8_lit("\n"))) Temp scratch = scratch_begin(&arena, 1); - Rng1U64Array segment_vranges = {0}; - DW_ListUnitInput lu_input = dw_list_unit_input_from_input(scratch.arena, input); + Rng1U64List unit_ranges_list = dw_unit_ranges_from_data(scratch.arena, input->sec[DW_Section_Info].data); + Rng1U64Array unit_ranges = rng1u64_array_from_list(scratch.arena, &unit_ranges_list); B32 relaxed = 1; - if (subset_flags & DW_DumpSubsetFlag_DebugInfo) { - dw_print_debug_info(arena, out, indent, input, lu_input, arch, relaxed); + ////////////////////////////// + //- rjf: dump .debug_info + // + DumpSubset(DebugInfo) + { + for EachIndex(unit_idx, unit_ranges.count) + { + Temp unit_temp = temp_begin(scratch.arena); + + //- rjf: unpack unit + Rng1U64 unit_range = unit_ranges.v[unit_idx]; + DW_CompUnit unit = dw_cu_from_info_off(unit_temp.arena, input, lu_input, unit_range.min, relaxed); + String8 unit_dir = dw_string_from_attrib(input, &unit, unit.tag, DW_AttribKind_CompDir ); + String8 unit_name = dw_string_from_attrib(input, &unit, unit.tag, DW_AttribKind_Name ); + String8 stmt_list = dw_line_ptr_from_attrib(input, &unit, unit.tag, DW_AttribKind_StmtList); + DW_LineVMHeader line_vm = {0}; + dw_read_line_vm_header(unit_temp.arena, stmt_list, 0, input, unit_dir, unit_name, unit.address_size, unit.str_offsets_lu, &line_vm); + + //- rjf: log top-level unit info + dumpf("unit: // compile_unit[%u]\n{\n", unit_idx); + dumpf(" version: %u\n", unit.version); + dumpf(" address_size: %I64u\n", unit.address_size); + dumpf(" abbrev_off: 0x%I64x\n", unit.abbrev_off); + dumpf(" info_range: [0x%I64x, 0x%I64x) // (%M)\n", unit.info_range.min, unit.info_range.max, dim_1u64(unit.info_range)); + + //- rjf: log tags + S64 tag_depth = 0; + for(U64 info_off = unit.first_tag_info_off; info_off < unit.info_range.max;) + { + // rjf: unpack tag + Temp tag_temp = temp_begin(scratch.arena); + U64 tag_info_off = info_off; + DW_Tag tag = {0}; + info_off += dw_read_tag_cu(tag_temp.arena, input, &unit, tag_info_off, &tag); + + String8 tag_str = dw_string_from_tag_kind(tag_temp.arena, tag.kind); + rd_printf("<%x><%llx> DW_TagKind_%S (Abbrev Number: %llu)", tag_depth, tag_info_off, tag_str, tag.abbrev_id); + rd_indent(); + + // parse attributes + for (DW_AttribNode *attrib_n = tag.attribs.first; attrib_n != 0; attrib_n = attrib_n->next) { + Temp attrib_temp = temp_begin(tag_temp.arena); + + DW_Attrib *attrib = &attrib_n->v; + + String8List attrib_list = {0}; + + // attribute .debug_info offset + str8_list_pushf(attrib_temp.arena, &attrib_list, "<%llx> ", attrib->info_off); + + // attribute kind + String8 attrib_kind_str = dw_string_from_attrib_kind(attrib_temp.arena, unit.version, unit.ext, attrib->attrib_kind); + if (attrib_kind_str.size == 0) { + if (relaxed) { + attrib_kind_str = dw_string_from_attrib_kind(attrib_temp.arena, DW_Version_Last, unit.ext, attrib->attrib_kind); + } + } + if (attrib_kind_str.size == 0) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "Unknown(%#x) ", attrib->attrib_kind); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "DW_AttribKind_%-20S ", attrib_kind_str); + } + + // form kind + String8 form_kind_str = dw_string_from_form_kind(scratch.arena, unit.version, attrib->form_kind); + str8_list_pushf(attrib_temp.arena, &attrib_list, "DW_Form_%-15S", form_kind_str); + + DW_AttribClass value_class = dw_value_class_from_attrib(&unit, attrib); + switch (value_class) { + default: { + str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unknown value class"); + } break; + case DW_AttribClass_Undefined: { + str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: undefined value class"); + } break; + case DW_AttribClass_Address: { + U64 address = dw_address_from_attrib_ptr(input, &unit, attrib); + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", address); + } break; + case DW_AttribClass_Block: { + String8 block = dw_block_from_attrib_ptr(input, &unit, attrib); + String8List block_strs = numeric_str8_list_from_data(attrib_temp.arena, 16, block, 1); + String8 block_str = str8_list_join(attrib_temp.arena, &block_strs, &(StringJoin){.sep = str8_lit(", ")}); + str8_list_push(attrib_temp.arena, &attrib_list, block_str); + } break; + case DW_AttribClass_Const: { + U64 constant = dw_const_u64_from_attrib_ptr(input, &unit, attrib); + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", constant); + } break; + case DW_AttribClass_ExprLoc: { + String8 exprloc = dw_exprloc_from_attrib_ptr(input, &unit, attrib); + String8 exprloc_str = dw_format_expression_single_line(attrib_temp.arena, exprloc, unit_range.min, unit.address_size, arch, unit.version, unit.ext, unit.format); + str8_list_push(attrib_temp.arena, &attrib_list, exprloc_str); + } break; + case DW_AttribClass_Flag: { + B32 flag = dw_flag_from_attrib_ptr(input, &unit, attrib); + str8_list_pushf(attrib_temp.arena, &attrib_list, "%llu (%s)", flag, flag == 0 ? "false" : "true"); + } break; + case DW_AttribClass_LinePtr: { + if (attrib->form_kind == DW_Form_SecOffset) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, unit.version, attrib->form_kind)); + } + } break; + case DW_AttribClass_LocListPtr: { + if (attrib->form_kind == DW_Form_SecOffset) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, unit.version, attrib->form_kind)); + } + } break; + case DW_AttribClass_MacPtr: { + if (attrib->form_kind == DW_Form_SecOffset) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "\?\?\?"); + } + } break; + case DW_AttribClass_RngListPtr: { + if (attrib->form_kind == DW_Form_SecOffset) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "\?\?\?"); + } + } break; + case DW_AttribClass_RngList: { + if (attrib->form_kind == DW_Form_SecOffset) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "\?\?\?"); + } + } break; + case DW_AttribClass_Reference: { + if (attrib->form_kind == DW_Form_Ref1 || + attrib->form_kind == DW_Form_Ref2 || + attrib->form_kind == DW_Form_Ref4 || + attrib->form_kind == DW_Form_Ref8 || + attrib->form_kind == DW_Form_RefUData) { + U64 info_off = unit.info_range.min + attrib->form.ref; + str8_list_pushf(attrib_temp.arena, &attrib_list, "<%llx>", info_off); + if (!contains_1u64(unit.info_range, attrib->form.ref)) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "(ERROR: out of bounds reference)"); + } + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.ref); + } + } break; + case DW_AttribClass_String: { + if (attrib->form_kind == DW_Form_Strp) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } + String8 string = dw_string_from_attrib_ptr(input, &unit, attrib); + str8_list_pushf(attrib_temp.arena, &attrib_list, "(%S)", string); + } break; + case DW_AttribClass_StrOffsetsPtr: { + if (attrib->form_kind == DW_Form_SecOffset) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, unit.version, attrib->form_kind)); + } + } break; + case DW_AttribClass_AddrPtr: { + if (attrib->form_kind == DW_Form_SecOffset) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + } else { + str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, unit.version, attrib->form_kind)); + } + } break; + } + + String8 attrib_str = {0}; + switch (attrib->attrib_kind) { + case DW_AttribKind_Language: { + DW_Language lang = dw_const_u64_from_attrib_ptr(input, &unit, attrib); + attrib_str = dw_string_from_language(attrib_temp.arena, lang); + } break; + case DW_AttribKind_DeclFile: { + U64 file_idx = dw_const_u64_from_attrib_ptr(input, &unit, attrib); + DW_LineFile *file = dw_file_from_attrib_ptr(&unit, &line_vm, attrib); + attrib_str = str8_lit("\?\?\?"); + if (file) { + attrib_str = dw_path_from_file(attrib_temp.arena, &line_vm, file); + } + } break; + case DW_AttribKind_DeclLine: { + U64 line = dw_const_u64_from_attrib_ptr(input, &unit, attrib); + attrib_str = push_str8f(attrib_temp.arena, "%llu", line); + } break; + case DW_AttribKind_Inline: { + DW_InlKind inl = dw_const_u64_from_attrib_ptr(input, &unit, attrib); + attrib_str = dw_string_from_inl(attrib_temp.arena, inl); + } break; + case DW_AttribKind_Accessibility: { + DW_AccessKind access = dw_const_u64_from_attrib_ptr(input, &unit, attrib); + attrib_str = dw_string_from_access_kind(attrib_temp.arena, access); + } break; + case DW_AttribKind_CallingConvention: { + DW_CallingConventionKind calling_convetion = dw_const_u64_from_attrib_ptr(input, &unit, attrib); + attrib_str = dw_string_from_calling_convetion(attrib_temp.arena, calling_convetion); + } break; + case DW_AttribKind_Encoding: { + DW_ATE encoding = dw_const_u64_from_attrib_ptr(input, &unit, attrib); + attrib_str = dw_string_from_attrib_type_encoding(attrib_temp.arena, encoding); + } break; + } + + if (attrib_str.size) { + str8_list_pushf(attrib_temp.arena, &attrib_list, "(%S)", attrib_str); + } + String8 print = str8_list_join(attrib_temp.arena, &attrib_list, &(StringJoin){.sep=str8_lit(" ")}); + rd_printf("%S", print); + + temp_end(attrib_temp); + } + + B32 is_ender_tag = tag.abbrev_id == 0; + if (tag.has_children) { + if (is_ender_tag) { + rd_errorf("null-tag cannot have children"); + } + rd_indent(); + tag_depth += 1; + } + if (is_ender_tag) { + if (tag_depth == 0) { + rd_errorf("malformed data detected, too many null tags"); + } else { + rd_unindent(); + tag_depth -= 1; + } + } + + rd_unindent(); + temp_end(tag_temp); + } + temp_end(unit_temp); + dumpf("} // compile_unit[/%u]\n\n", unit_idx); + } } - if (subset_flags & DW_DumpSubsetFlag_DebugAbbrev) { - dw_print_debug_abbrev(arena, out, indent, input); + + ////////////////////////////// + //- rjf: dump .debug_abbrev + // + DumpSubset(DebugAbbrev) + { + // dw_print_debug_abbrev(arena, out, indent, input); } - if (subset_flags & DW_DumpSubsetFlag_DebugLine) { - dw_print_debug_line(arena, out, indent, input, lu_input, relaxed); + + ////////////////////////////// + //- rjf: dump .debug_line + // + DumpSubset(DebugLine) + { + // dw_print_debug_line(arena, out, indent, input, lu_input, relaxed); } - if (subset_flags & DW_DumpSubsetFlag_DebugStr) { - dw_print_debug_str(arena, out, indent, input); + + ////////////////////////////// + //- rjf: dump .debug_str + // + DumpSubset(DebugStr) + { + // dw_print_debug_str(arena, out, indent, input); } - if (subset_flags & DW_DumpSubsetFlag_DebugLoc) { - dw_print_debug_loc(arena, out, indent, input, arch, image_type, relaxed); + + ////////////////////////////// + //- rjf: dump .debug_loc + // + DumpSubset(DebugLoc) + { + // dw_print_debug_loc(arena, out, indent, input, arch, image_type, relaxed); } - if (subset_flags & DW_DumpSubsetFlag_DebugRanges) { - dw_print_debug_ranges(arena, out, indent, input, arch, image_type, relaxed); + + ////////////////////////////// + //- rjf: dump .debug_ranges + // + DumpSubset(DebugRanges) + { + // dw_print_debug_ranges(arena, out, indent, input, arch, image_type, relaxed); } - if (subset_flags & DW_DumpSubsetFlag_DebugARanges) { - dw_print_debug_aranges(arena, out, indent, input); + + ////////////////////////////// + //- rjf: dump .debug_aranges + // + DumpSubset(DebugARanges) + { + // dw_print_debug_aranges(arena, out, indent, input); } - if (subset_flags & DW_DumpSubsetFlag_DebugAddr) { - dw_print_debug_addr(arena, out, indent, input); + + ////////////////////////////// + //- rjf: dump .debug_addr + // + DumpSubset(DebugAddr) + { + // dw_print_debug_addr(arena, out, indent, input); } - if (subset_flags & DW_DumpSubsetFlag_DebugLocLists) { - dw_print_debug_loclists(arena, out, indent, input, segment_vranges, arch); + + ////////////////////////////// + //- rjf: dump .debug_loclists + // + DumpSubset(DebugLocLists) + { + // dw_print_debug_loclists(arena, out, indent, input, segment_vranges, arch); } - if (subset_flags & DW_DumpSubsetFlag_DebugRngLists) { - dw_print_debug_rnglists(arena, out, indent, input, segment_vranges); + + ////////////////////////////// + //- rjf: dump .debug_rnglists + // + DumpSubset(DebugRngLists) + { + // dw_print_debug_rnglists(arena, out, indent, input, segment_vranges); } - if (subset_flags & DW_DumpSubsetFlag_DebugPubNames) { - dw_print_debug_pubnames(arena, out, indent, input); + + ////////////////////////////// + //- rjf: dump .debug_pubnames + // + DumpSubset(DebugPubNames) + { + // dw_print_debug_pubnames(arena, out, indent, input); } - if (subset_flags & DW_DumpSubsetFlag_DebugPubTypes) { - dw_print_debug_pubtypes(arena, out, indent, input); + + ////////////////////////////// + //- rjf: dump .debug_pubtypes + // + DumpSubset(DebugPubTypes) + { + // dw_print_debug_pubtypes(arena, out, indent, input); } - if (subset_flags & DW_DumpSubsetFlag_DebugLineStr) { - dw_print_debug_line_str(arena, out, indent, input); + + ////////////////////////////// + //- rjf: dump .debug_linestr + // + DumpSubset(DebugLineStr) + { + // dw_print_debug_line_str(arena, out, indent, input); } - if (subset_flags & DW_DumpSubsetFlag_DebugStrOffsets) { - dw_print_debug_str_offsets(arena, out, indent, input); + + ////////////////////////////// + //- rjf: dump .debug_stroffs + // + DumpSubset(DebugStrOffsets) + { + // dw_print_debug_str_offsets(arena, out, indent, input); } scratch_end(scratch); +#undef DumpSubset +#undef dumpf +#undef dump + return strings; } diff --git a/src/dwarf/dwarf_dump.h b/src/dwarf/dwarf_dump.h index 73c6ad7b..4877b18e 100644 --- a/src/dwarf/dwarf_dump.h +++ b/src/dwarf/dwarf_dump.h @@ -72,6 +72,6 @@ internal void dw_print_debug_pubnames (Arena *arena, String8List *out, String8 internal void dw_print_debug_pubtypes (Arena *arena, String8List *out, String8 indent, DW_Input *input); internal void dw_print_debug_line_str (Arena *arena, String8List *out, String8 indent, DW_Input *input); internal void dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 indent, DW_Input *input); -internal void dw_format(Arena *arena, String8List *out, String8 indent, DW_DumpSubsetFlags subset_flags, DW_Input *input, Arch arch, ExecutableImageKind image_type); +internal String8List dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableImageKind image_type, DW_DumpSubsetFlags subset_flags); #endif // DWARF_DUMP_H diff --git a/src/dwarf/dwarf_parse.c b/src/dwarf/dwarf_parse.c index 67fd831d..26ebed99 100644 --- a/src/dwarf/dwarf_parse.c +++ b/src/dwarf/dwarf_parse.c @@ -1837,10 +1837,10 @@ dw_attrib_from_tag(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind k { DW_Attrib *attrib = dw_attrib_from_tag_(tag, kind); - if (attrib->attrib_kind == DW_Attrib_Null) { + if (attrib->attrib_kind == DW_AttribKind_Null) { if (cu && cu->tag_ht) { - DW_Attrib *ao_attrib = dw_attrib_from_tag_(tag, DW_Attrib_AbstractOrigin); - if (ao_attrib->attrib_kind == DW_Attrib_AbstractOrigin) { + DW_Attrib *ao_attrib = dw_attrib_from_tag_(tag, DW_AttribKind_AbstractOrigin); + if (ao_attrib->attrib_kind == DW_AttribKind_AbstractOrigin) { DW_Reference ref = dw_interp_ref(input, cu, ao_attrib->form_kind, ao_attrib->form); DW_TagNode *ref_tag = dw_tag_node_from_info_off(ref.cu, ref.info_off); attrib = dw_attrib_from_tag_(ref_tag->tag, kind); @@ -1855,7 +1855,7 @@ internal B32 dw_tag_has_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) { DW_Attrib *attrib = dw_attrib_from_tag(input, cu, tag, kind); - B32 has_attrib = attrib->attrib_kind != DW_Attrib_Null; + B32 has_attrib = attrib->attrib_kind != DW_AttribKind_Null; return has_attrib; } @@ -1940,18 +1940,18 @@ dw_file_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_LineVMHeader *line_vm, internal B32 dw_try_byte_size_from_tag(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, U64 *byte_size_out) { - B32 has_byte_size = dw_tag_has_attrib(input, cu, tag, DW_Attrib_ByteSize); - B32 has_bit_size = dw_tag_has_attrib(input, cu, tag, DW_Attrib_BitSize ); + B32 has_byte_size = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_ByteSize); + B32 has_bit_size = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_BitSize ); if (has_byte_size && has_bit_size) { Assert(!"ill formated byte size"); } if (has_byte_size) { - *byte_size_out = dw_const_u64_from_attrib(input, cu, tag, DW_Attrib_ByteSize); + *byte_size_out = dw_const_u64_from_attrib(input, cu, tag, DW_AttribKind_ByteSize); return 1; } else if (has_bit_size) { - U64 bit_size = dw_const_u64_from_attrib(input, cu, tag, DW_Attrib_BitSize); + U64 bit_size = dw_const_u64_from_attrib(input, cu, tag, DW_AttribKind_BitSize); *byte_size_out = bit_size / 8; return 1; } @@ -1985,13 +1985,13 @@ dw_u64_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind k DW_Attrib *attrib = dw_attrib_from_tag(input, cu, tag, kind); DW_AttribClass attrib_class = dw_value_class_from_attrib(cu, attrib); if (attrib_class == DW_AttribClass_Const || attrib_class == DW_AttribClass_Block) { - if (dw_tag_has_attrib(input, cu, tag, DW_Attrib_Type)) { + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Type)) { Temp scratch = scratch_begin(0,0); - DW_Reference type_ref = dw_ref_from_attrib(input, cu, tag, DW_Attrib_Type); + DW_Reference type_ref = dw_ref_from_attrib(input, cu, tag, DW_AttribKind_Type); DW_Tag type_tag = {0}; dw_read_tag_cu(scratch.arena, input, type_ref.cu, type_ref.info_off, &type_tag); U64 type_byte_size = dw_byte_size_from_tag(input, cu, type_tag); - DW_ATE type_encoding = dw_const_u64_from_attrib(input, type_ref.cu, type_tag, DW_Attrib_Encoding); + DW_ATE type_encoding = dw_const_u64_from_attrib(input, type_ref.cu, type_tag, DW_AttribKind_Encoding); if (type_encoding == DW_ATE_Unsigned || type_encoding == DW_ATE_UnsignedChar) { result = dw_interp_const64(type_byte_size, type_encoding, attrib->form_kind, attrib->form); } @@ -2121,15 +2121,15 @@ dw_cu_from_info_off(Arena *arena, DW_Input *input, DW_ListUnitInput lu_input, U6 dw_read_tag(arena, data, cursor, range.min, abbrev_table, abbrev_data, version, format, address_size, &cu_tag); // TODO: handle these unit types - Assert(cu_tag.kind != DW_Tag_SkeletonUnit); - Assert(cu_tag.kind != DW_Tag_TypeUnit); + Assert(cu_tag.kind != DW_TagKind_SkeletonUnit); + Assert(cu_tag.kind != DW_TagKind_TypeUnit); - if (cu_tag.kind == DW_Tag_CompileUnit || cu_tag.kind == DW_Tag_PartialUnit) { + if (cu_tag.kind == DW_TagKind_CompileUnit || cu_tag.kind == DW_TagKind_PartialUnit) { // fetch attribs for list sections - DW_Attrib *addr_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_Attrib_AddrBase ); - DW_Attrib *str_offsets_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_Attrib_StrOffsetsBase); - DW_Attrib *rnglists_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_Attrib_RngListsBase ); - DW_Attrib *loclists_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_Attrib_LocListsBase ); + DW_Attrib *addr_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_AttribKind_AddrBase ); + DW_Attrib *str_offsets_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_AttribKind_StrOffsetsBase); + DW_Attrib *rnglists_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_AttribKind_RngListsBase ); + DW_Attrib *loclists_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_AttribKind_LocListsBase ); // interp attribs as section offsets U64 addr_sec_off = dw_interp_sec_offset(addr_base_attrib->form_kind, addr_base_attrib->form ); @@ -2150,7 +2150,7 @@ dw_cu_from_info_off(Arena *arena, DW_Input *input, DW_ListUnitInput lu_input, U6 DW_ListUnit *loclists_lu = loclists_lu_idx < lu_input.loclist_count ? &lu_input.loclists[loclists_lu_idx] : 0; // find compile unit base address - DW_Attrib *low_pc_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_Attrib_LowPc); + DW_Attrib *low_pc_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_AttribKind_LowPc); U64 low_pc = dw_interp_address(address_size, max_U64, addr_lu, low_pc_attrib->form_kind, low_pc_attrib->form); // fill out compile unit @@ -2195,7 +2195,7 @@ dw_tag_tree_from_data(Arena *arena, String8 info_data, String8 abbrev_data, DW_C *cursor += tag_size; // is this sentinel tag? - if (tag.kind == DW_Tag_Null) { + if (tag.kind == DW_TagKind_Null) { break; } diff --git a/src/radcon/radcon_dwarf.c b/src/radcon/radcon_dwarf.c index 06ed7627..64583c87 100644 --- a/src/radcon/radcon_dwarf.c +++ b/src/radcon/radcon_dwarf.c @@ -78,7 +78,7 @@ d2r_type_from_attrib(Arena *arena, D2R_TypeTable *type_table, DW_Input *input, D if (value_class == DW_AttribClass_Reference) { // resolve reference - DW_Reference ref = dw_ref_from_attrib_ptr(input, cu, attrib); + DW_Reference ref = dw_ref_from_attrib(input, cu, attrib); // TODO: support for external compile unit references AssertAlways(ref.cu == cu); @@ -88,7 +88,7 @@ d2r_type_from_attrib(Arena *arena, D2R_TypeTable *type_table, DW_Input *input, D } else { Assert(!"unexpected attrib class"); } - } else if (attrib->attrib_kind == DW_Attrib_Null) { + } else if (attrib->attrib_kind == DW_AttribKind_Null) { type = rdim_builtin_type_from_kind(*type_table->types, RDI_TypeKind_NULL); } @@ -99,7 +99,7 @@ internal Rng1U64List d2r_range_list_from_tag(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 image_base, DW_Tag tag) { // collect non-contiguous range - Rng1U64List ranges = dw_rnglist_from_attrib(arena, input, cu, tag, DW_Attrib_Ranges); + Rng1U64List ranges = dw_rnglist_from_attrib(arena, input, cu, tag, DW_AttribKind_Ranges); // debase ranges for (Rng1U64Node *range_n = ranges.first; range_n != 0; range_n = range_n->next) { @@ -111,17 +111,17 @@ d2r_range_list_from_tag(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 imag } // collect contiguous range - DW_Attrib *lo_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_Attrib_LowPc); - DW_Attrib *hi_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_Attrib_HighPc); - if (lo_pc_attrib->attrib_kind != DW_Attrib_Null && hi_pc_attrib->attrib_kind != DW_Attrib_Null) { - U64 lo_pc = dw_address_from_attrib_ptr(input, cu, lo_pc_attrib); + DW_Attrib *lo_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_LowPc); + DW_Attrib *hi_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_HighPc); + if (lo_pc_attrib->attrib_kind != DW_AttribKind_Null && hi_pc_attrib->attrib_kind != DW_AttribKind_Null) { + U64 lo_pc = dw_address_from_attrib(input, cu, lo_pc_attrib); U64 hi_pc; DW_AttribClass hi_pc_class = dw_value_class_from_attrib(cu, hi_pc_attrib); if (hi_pc_class == DW_AttribClass_Address) { - hi_pc = dw_address_from_attrib_ptr(input, cu, hi_pc_attrib); + hi_pc = dw_address_from_attrib(input, cu, hi_pc_attrib); } else if (hi_pc_class == DW_AttribClass_Const) { - hi_pc = dw_const_u64_from_attrib_ptr(input, cu, hi_pc_attrib); + hi_pc = dw_const_u64_from_attrib(input, cu, hi_pc_attrib); hi_pc += lo_pc; } else { AssertAlways(!"undefined attrib encoding"); @@ -148,12 +148,12 @@ d2r_collect_proc_params(Arena *arena, D2R_TypeTable *type_table, DW_Input *input RDIM_TypeList list = {0}; B32 has_vargs = 0; for (DW_TagNode *i = cur_node->first_child; i != 0; i = i->sibling) { - if (i->tag.kind == DW_Tag_FormalParameter) { + if (i->tag.kind == DW_TagKind_FormalParameter) { RDIM_TypeNode *n = push_array(scratch.arena, RDIM_TypeNode, 1); - n->v = d2r_type_from_attrib(arena, type_table, input, cu, i->tag, DW_Attrib_Type); + n->v = d2r_type_from_attrib(arena, type_table, input, cu, i->tag, DW_AttribKind_Type); SLLQueuePush(list.first, list.last, n); ++list.count; - } else if (i->tag.kind == DW_Tag_UnspecifiedParameters) { + } else if (i->tag.kind == DW_TagKind_UnspecifiedParameters) { has_vargs = 1; } } @@ -590,9 +590,9 @@ SLLStackPush(stack, f); \ // find ref tag DW_TagNode *tag_node = dw_tag_node_from_info_off(cu, type_info_off); DW_Tag tag = tag_node->tag; - if (tag.kind == DW_Tag_BaseType) { + if (tag.kind == DW_TagKind_BaseType) { // extract encoding attribute - DW_ATE encoding = dw_const_u64_from_attrib(input, cu, tag, DW_Attrib_Encoding); + DW_ATE encoding = dw_const_u64_from_attrib(input, cu, tag, DW_AttribKind_Encoding); // DW_ATE -> RDI_EvalTypeGroup switch (encoding) { @@ -601,7 +601,7 @@ SLLStackPush(stack, f); \ case DW_ATE_UnsignedChar: case DW_ATE_Unsigned: out = RDI_EvalTypeGroup_U; break; case DW_ATE_Float: { - U64 byte_size = dw_const_u64_from_attrib(input, cu, tag, DW_Attrib_ByteSize); + U64 byte_size = dw_const_u64_from_attrib(input, cu, tag, DW_AttribKind_ByteSize); switch (byte_size) { case 4: out = RDI_EvalTypeGroup_F32; break; case 8: out = RDI_EvalTypeGroup_F64; break; @@ -864,7 +864,7 @@ d2r_locset_from_attrib(Arena *arena, Temp scratch = scratch_begin(&arena, 1); // extract location list from attrib - DW_LocList loclist = dw_loclist_from_attrib_ptr(scratch.arena, input, cu, attrib); + DW_LocList loclist = dw_loclist_from_attrib(scratch.arena, input, cu, attrib); // convert location list to RDIM location set for (DW_LocNode *loc_n = loclist.first; loc_n != 0; loc_n = loc_n->next) { @@ -876,7 +876,7 @@ d2r_locset_from_attrib(Arena *arena, scratch_end(scratch); } else if (attrib_class == DW_AttribClass_ExprLoc) { // extract expression from attrib - String8 expr = dw_exprloc_from_attrib_ptr(input, cu, attrib); + String8 expr = dw_exprloc_from_attrib(input, cu, attrib); // convert expression and inherit life-time ranges from enclosed scope RDIM_Location *location = d2r_transpile_expression(arena, input, image_base, cu->address_size, arch, cu->addr_lu, cu, expr); @@ -902,8 +902,8 @@ d2r_var_locset_from_tag(Arena *arena, { RDIM_LocationSet locset = {0}; - B32 has_const_value = dw_tag_has_attrib(input, cu, tag, DW_Attrib_ConstValue); - B32 has_location = dw_tag_has_attrib(input, cu, tag, DW_Attrib_Location); + B32 has_const_value = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_ConstValue); + B32 has_location = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Location); if (has_const_value && has_location) { // TODO: error handling @@ -912,7 +912,7 @@ d2r_var_locset_from_tag(Arena *arena, if (has_const_value) { // extract const value - U64 const_value = dw_u64_from_attrib(input, cu, tag, DW_Attrib_ConstValue); + U64 const_value = dw_u64_from_attrib(input, cu, tag, DW_AttribKind_ConstValue); // make value byte code RDIM_EvalBytecode bc = {0}; @@ -928,7 +928,7 @@ d2r_var_locset_from_tag(Arena *arena, rdim_location_set_push_case(arena, scopes, &locset, range_n->v, loc); } } else if (has_location) { - locset = d2r_locset_from_attrib(arena, input, cu, scopes, curr_scope, image_base, arch, tag, DW_Attrib_Location); + locset = d2r_locset_from_attrib(arena, input, cu, scopes, curr_scope, image_base, arch, tag, DW_AttribKind_Location); } return locset; @@ -1058,7 +1058,7 @@ d2r_push_scope(Arena *arena, RDIM_ScopeChunkList *scopes, U64 scope_chunk_cap, D // update scope hierarchy DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; - if (parent_tag_kind == DW_Tag_SubProgram || parent_tag_kind == DW_Tag_InlinedSubroutine || parent_tag_kind == DW_Tag_LexicalBlock) { + if (parent_tag_kind == DW_TagKind_SubProgram || parent_tag_kind == DW_TagKind_InlinedSubroutine || parent_tag_kind == DW_TagKind_LexicalBlock) { RDIM_Scope *parent = tag_stack->next->scope; scope->parent_scope = parent; @@ -1202,9 +1202,9 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) DW_LineTableParseResult *cu_line_tables = push_array(scratch.arena, DW_LineTableParseResult, cu_ranges.count); for (U64 cu_idx = 0; cu_idx < cu_ranges.count; ++cu_idx) { DW_CompUnit *cu = &cu_arr[cu_idx]; - String8 cu_stmt_list = dw_line_ptr_from_attrib(&input, cu, cu->tag, DW_Attrib_StmtList); - String8 cu_dir = dw_string_from_attrib(&input, cu, cu->tag, DW_Attrib_CompDir); - String8 cu_name = dw_string_from_attrib(&input, cu, cu->tag, DW_Attrib_Name); + String8 cu_stmt_list = dw_line_ptr_from_attrib(&input, cu, cu->tag, DW_AttribKind_StmtList); + String8 cu_dir = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_CompDir); + String8 cu_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_Name); cu_line_tables[cu_idx] = dw_parsed_line_table_from_data(scratch.arena, cu_stmt_list, &input, cu_dir, cu_name, cu->address_size, cu->str_offsets_lu); } ProfEnd(); @@ -1327,8 +1327,8 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) // build tag hash table for abstract origin resolution cu->tag_ht = dw_make_tag_hash_table(comp_temp.arena, tag_tree); - String8 dwo_name = dw_string_from_attrib(&input, cu, cu->tag, DW_Attrib_DwoName); - String8 gnu_dwo_name = dw_string_from_attrib(&input, cu, cu->tag, DW_Attrib_GNU_DwoName); + String8 dwo_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_DwoName); + String8 gnu_dwo_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_GNU_DwoName); if (dwo_name.size || gnu_dwo_name.size || cu->dwo_id) { // TODO: report that we dont support DWO continue; @@ -1337,10 +1337,10 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) // get unit's contribution ranges RDIM_Rng1U64List cu_voff_ranges = d2r_voff_ranges_from_cu_info_off(cu_contrib_map, cu_ranges.v[cu_idx].min); - String8 cu_name = dw_string_from_attrib(&input, cu, cu->tag, DW_Attrib_Name); - String8 cu_dir = dw_string_from_attrib(&input, cu, cu->tag, DW_Attrib_CompDir); - String8 cu_prod = dw_string_from_attrib(&input, cu, cu->tag, DW_Attrib_Producer); - DW_Language cu_lang = dw_const_u64_from_attrib(&input, cu, cu->tag, DW_Attrib_Language); + String8 cu_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_Name); + String8 cu_dir = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_CompDir); + String8 cu_prod = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_Producer); + DW_Language cu_lang = dw_const_u64_from_attrib(&input, cu, cu->tag, DW_AttribKind_Language); RDIM_Unit *unit = rdim_unit_chunk_list_push(arena, &units, UNIT_CHUNK_CAP); unit->unit_name = cu_name; @@ -1371,14 +1371,14 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) B32 visit_children = 1; switch (tag.kind) { - case DW_Tag_Null: { + case DW_TagKind_Null: { InvalidPath; } break; - case DW_Tag_ClassType: { + case DW_TagKind_ClassType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); + type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_Attrib_Declaration); + B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteClass; @@ -1391,16 +1391,16 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) type->kind = RDI_TypeKind_Class; type->byte_size = dw_byte_size_32_from_tag(&input, cu, tag); type->udt = udt; - type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); tag_stack->type = type; } } break; - case DW_Tag_StructureType: { + case DW_TagKind_StructureType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); + type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_Attrib_Declaration); + B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteStruct; @@ -1418,11 +1418,11 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) tag_stack->type = type; } } break; - case DW_Tag_UnionType: { + case DW_TagKind_UnionType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); + type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_Attrib_Declaration); + B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteUnion; @@ -1440,11 +1440,11 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) tag_stack->type = type; } } break; - case DW_Tag_EnumerationType: { + case DW_TagKind_EnumerationType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); + type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_Attrib_Declaration); + B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteEnum; @@ -1462,14 +1462,14 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) tag_stack->type = type; } } break; - case DW_Tag_SubroutineType: { + case DW_TagKind_SubroutineType: { // collect parameters RDIM_TypeList param_list = {0}; for (DW_TagNode *n = cur_node->first_child; n != 0; n = n->sibling) { - if (n->tag.kind == DW_Tag_FormalParameter) { - RDIM_Type *param_type = d2r_type_from_attrib(arena, type_table, &input, cu, n->tag, DW_Attrib_Type); + if (n->tag.kind == DW_TagKind_FormalParameter) { + RDIM_Type *param_type = d2r_type_from_attrib(arena, type_table, &input, cu, n->tag, DW_AttribKind_Type); rdim_type_list_push(comp_temp.arena, ¶m_list, param_type); - } else if (n->tag.kind == DW_Tag_UnspecifiedParameters) { + } else if (n->tag.kind == DW_TagKind_UnspecifiedParameters) { rdim_type_list_push(comp_temp.arena, ¶m_list, type_table->varg_type); } else { // TODO: error handling @@ -1478,7 +1478,7 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) } // init proceudre type - RDIM_Type *ret_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + RDIM_Type *ret_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Function; type->byte_size = arch_addr_size; @@ -1488,14 +1488,14 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) visit_children = 0; } break; - case DW_Tag_Typedef: { + case DW_TagKind_Typedef: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Alias; - type->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); - type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); } break; - case DW_Tag_BaseType: { - DW_ATE encoding = dw_const_u64_from_attrib(&input, cu, tag, DW_Attrib_Encoding); + case DW_TagKind_BaseType: { + DW_ATE encoding = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_Encoding); U64 byte_size = dw_byte_size_from_tag(&input, cu, tag); // convert base type encoding to RDI version @@ -1602,18 +1602,18 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Alias; - type->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); + type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); type->direct_type = base_type; } break; - case DW_Tag_PointerType: { - RDIM_Type *direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + case DW_TagKind_PointerType: { + RDIM_Type *direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); // TODO: - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Allocated)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Associated)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Alignment)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Name)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_AddressClass)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Allocated)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Associated)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Alignment)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Name)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_AddressClass)); U64 byte_size = arch_addr_size; if (cu->version == DW_Version_5 || cu->relaxed) { @@ -1625,39 +1625,39 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) type->byte_size = byte_size; type->direct_type = direct_type; } break; - case DW_Tag_RestrictType: { + case DW_TagKind_RestrictType: { // TODO: - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Alignment)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Name)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Alignment)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Name)); RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Modifier; type->byte_size = arch_addr_size; type->flags = RDI_TypeModifierFlag_Restrict; - type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); } break; - case DW_Tag_VolatileType: { + case DW_TagKind_VolatileType: { // TODO: - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Name)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Name)); RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Modifier; type->byte_size = arch_addr_size; type->flags = RDI_TypeModifierFlag_Volatile; - type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); } break; - case DW_Tag_ConstType: { + case DW_TagKind_ConstType: { // TODO: - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Name)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Alignment)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Name)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Alignment)); RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Modifier; type->byte_size = arch_addr_size; type->flags = RDI_TypeModifierFlag_Const; - type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); } break; - case DW_Tag_ArrayType: { + case DW_TagKind_ArrayType: { // * DWARF vs RDI Array Type Graph * // // For example lets take following decl: @@ -1668,7 +1668,7 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) // // foo -> DW_TAG_ArrayType -> (A0) DW_TAG_Subrange [2] // \ - // -> (B0) DW_TAG_PointerType -> (A1) DW_TAG_ArrayType -> DW_TAG_Subrange [3] -> DW_Tag_Subrange [4] + // -> (B0) DW_TAG_PointerType -> (A1) DW_TAG_ArrayType -> DW_TAG_Subrange [3] -> DW_TagKind_Subrange [4] // \ // -> (B1) DW_TAG_BaseType (int) // @@ -1688,7 +1688,7 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) U64 subrange_count = 0; RDIM_Type *t = type; for (DW_TagNode *n = cur_node->first_child; n != 0; n = n->sibling) { - if (n->tag.kind != DW_Tag_SubrangeType) { + if (n->tag.kind != DW_TagKind_SubrangeType) { // TODO: error handling AssertAlways(!"unexpected tag"); continue; @@ -1707,19 +1707,19 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) // resolve array lower bound U64 lower_bound = 0; - if (dw_tag_has_attrib(&input, cu, n->tag, DW_Attrib_LowerBound)) { - lower_bound = dw_u64_from_attrib(&input, cu, n->tag, DW_Attrib_LowerBound); + if (dw_tag_has_attrib(&input, cu, n->tag, DW_AttribKind_LowerBound)) { + lower_bound = dw_u64_from_attrib(&input, cu, n->tag, DW_AttribKind_LowerBound); } else { lower_bound = dw_pick_default_lower_bound(cu_lang); } // resolve array upper bound U64 upper_bound = 0; - if (dw_tag_has_attrib(&input, cu, n->tag, DW_Attrib_Count)) { - U64 count = dw_u64_from_attrib(&input, cu, n->tag, DW_Attrib_Count); + if (dw_tag_has_attrib(&input, cu, n->tag, DW_AttribKind_Count)) { + U64 count = dw_u64_from_attrib(&input, cu, n->tag, DW_AttribKind_Count); upper_bound = lower_bound + count; - } else if (dw_tag_has_attrib(&input, cu, n->tag, DW_Attrib_UpperBound)) { - upper_bound = dw_u64_from_attrib(&input, cu, n->tag, DW_Attrib_UpperBound); + } else if (dw_tag_has_attrib(&input, cu, n->tag, DW_AttribKind_UpperBound)) { + upper_bound = dw_u64_from_attrib(&input, cu, n->tag, DW_AttribKind_UpperBound); // turn upper bound into exclusive range upper_bound += 1; } else { @@ -1731,18 +1731,18 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) } Assert(t->direct_type == 0); - t->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + t->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); visit_children = 0; } break; - case DW_Tag_SubrangeType: { + case DW_TagKind_SubrangeType: { // TODO: error handling AssertAlways(!"unexpected tag"); } break; - case DW_Tag_Inheritance: { + case DW_TagKind_Inheritance: { DW_TagNode *parent_node = tag_stack->next->cur_node; - if (parent_node->tag.kind != DW_Tag_StructureType && - parent_node->tag.kind != DW_Tag_ClassType) { + if (parent_node->tag.kind != DW_TagKind_StructureType && + parent_node->tag.kind != DW_TagKind_ClassType) { // TODO: error handling AssertAlways(!"unexpected parent tag"); } @@ -1750,32 +1750,32 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) RDIM_Type *parent = tag_stack->next->type; RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, parent->udt); member->kind = RDI_MemberKind_Base; - member->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); - member->off = safe_cast_u32(dw_const_u32_from_attrib(&input, cu, tag, DW_Attrib_DataMemberLocation)); + member->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); + member->off = safe_cast_u32(dw_const_u32_from_attrib(&input, cu, tag, DW_AttribKind_DataMemberLocation)); } break; - case DW_Tag_Enumerator: { + case DW_TagKind_Enumerator: { DW_TagNode *parent_node = tag_stack->next->cur_node; - if (parent_node->tag.kind != DW_Tag_EnumerationType) { + if (parent_node->tag.kind != DW_TagKind_EnumerationType) { // TODO: error handling AssertAlways(!"unexpected parent tag"); } RDIM_Type *type = tag_stack->next->type; RDIM_UDTEnumVal *member = rdim_udt_push_enum_val(arena, &udts, type->udt); - member->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); - member->val = dw_const_u64_from_attrib(&input, cu, tag, DW_Attrib_ConstValue); + member->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + member->val = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_ConstValue); } break; - case DW_Tag_Member: { + case DW_TagKind_Member: { DW_TagNode *parent_node = tag_stack->next->cur_node; - if (parent_node->tag.kind != DW_Tag_StructureType && - parent_node->tag.kind != DW_Tag_ClassType && - parent_node->tag.kind != DW_Tag_UnionType && - parent_node->tag.kind != DW_Tag_EnumerationType) { + if (parent_node->tag.kind != DW_TagKind_StructureType && + parent_node->tag.kind != DW_TagKind_ClassType && + parent_node->tag.kind != DW_TagKind_UnionType && + parent_node->tag.kind != DW_TagKind_EnumerationType) { // TODO: error handling AssertAlways(!"unexpected parent tag"); } - DW_Attrib *data_member_location = dw_attrib_from_tag(&input, cu, tag, DW_Attrib_DataMemberLocation); + DW_Attrib *data_member_location = dw_attrib_from_tag(&input, cu, tag, DW_AttribKind_DataMemberLocation); DW_AttribClass data_member_location_class = dw_value_class_from_attrib(cu, data_member_location); if (data_member_location_class == DW_AttribClass_LocList) { AssertAlways(!"UDT member with multiple locations are not supported"); @@ -1784,19 +1784,19 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) RDIM_Type *type = tag_stack->next->type; RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, type->udt); member->kind = RDI_MemberKind_DataField; - member->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); - member->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); - member->off = dw_const_u64_from_attrib(&input, cu, tag, DW_Attrib_DataMemberLocation); + member->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + member->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); + member->off = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_DataMemberLocation); } break; - case DW_Tag_SubProgram: { - DW_InlKind inl = dw_u64_from_attrib(&input, cu, tag, DW_Attrib_Inline); + case DW_TagKind_SubProgram: { + DW_InlKind inl = dw_u64_from_attrib(&input, cu, tag, DW_AttribKind_Inline); switch (inl) { case DW_Inl_NotInlined: { U64 param_count = 0; RDIM_Type **params = d2r_collect_proc_params(arena, type_table, &input, cu, cur_node, ¶m_count); // get return type - RDIM_Type *ret_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + RDIM_Type *ret_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); // fill out proc type RDIM_Type *proc_type = d2r_create_type(arena, type_table); @@ -1808,12 +1808,12 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) // get container type RDIM_Type *container_type = 0; - if (dw_tag_has_attrib(&input, cu, tag, DW_Attrib_ContainingType)) { - container_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_ContainingType); + if (dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_ContainingType)) { + container_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_ContainingType); } // get frame base expression - String8 frame_base_expr = dw_exprloc_from_attrib(&input, cu, tag, DW_Attrib_FrameBase); + String8 frame_base_expr = dw_exprloc_from_attrib(&input, cu, tag, DW_AttribKind_FrameBase); // get proc container symbol RDIM_Symbol *proc = rdim_symbol_chunk_list_push(arena, &procs, PROC_CHUNK_CAP ); @@ -1824,20 +1824,20 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) root_scope->symbol = proc; // fill out proc - proc->is_extern = dw_flag_from_attrib(&input, cu, tag, DW_Attrib_External); - proc->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); - proc->link_name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_LinkageName); + proc->is_extern = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_External); + proc->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + proc->link_name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_LinkageName); proc->type = proc_type; proc->container_symbol = 0; proc->container_type = container_type; proc->root_scope = root_scope; - proc->frame_base = d2r_locset_from_attrib(arena, &input, cu, &scopes, root_scope, image_base, arch, tag, DW_Attrib_FrameBase); + proc->frame_base = d2r_locset_from_attrib(arena, &input, cu, &scopes, root_scope, image_base, arch, tag, DW_AttribKind_FrameBase); // sub program with user-defined parent tag is a method DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; - if (parent_tag_kind == DW_Tag_ClassType || parent_tag_kind == DW_Tag_StructureType) { + if (parent_tag_kind == DW_TagKind_ClassType || parent_tag_kind == DW_TagKind_StructureType) { RDI_MemberKind member_kind = RDI_MemberKind_NULL; - DW_VirtualityKind virtuality = dw_const_u64_from_attrib(&input, cu, tag, DW_Attrib_Virtuality); + DW_VirtualityKind virtuality = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_Virtuality); switch (virtuality) { case DW_VirtualityKind_None: member_kind = RDI_MemberKind_Method; break; case DW_VirtualityKind_Virtual: member_kind = RDI_MemberKind_VirtualMethod; break; @@ -1849,8 +1849,8 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, type->udt); member->kind = member_kind; member->type = type; - member->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); - } else if (parent_tag_kind != DW_Tag_CompileUnit) { + member->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + } else if (parent_tag_kind != DW_TagKind_CompileUnit) { //AssertAlways(!"unexpected tag"); } @@ -1864,12 +1864,12 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) default: InvalidPath; break; } } break; - case DW_Tag_InlinedSubroutine: { + case DW_TagKind_InlinedSubroutine: { U64 param_count = 0; RDIM_Type **params = d2r_collect_proc_params(arena, type_table, &input, cu, tag_stack->cur_node, ¶m_count); // get return type - RDIM_Type *ret_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + RDIM_Type *ret_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); // fill out proc type RDIM_Type *proc_type = d2r_create_type(arena, type_table); @@ -1881,13 +1881,13 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) // get container type RDIM_Type *owner = 0; - if (dw_tag_has_attrib(&input, cu, tag, DW_Attrib_ContainingType)) { - owner = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_ContainingType); + if (dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_ContainingType)) { + owner = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_ContainingType); } // fill out inline site RDIM_InlineSite *inline_site = rdim_inline_site_chunk_list_push(arena, &inline_sites, INLINE_SITE_CHUNK_CAP); - inline_site->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); + inline_site->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); inline_site->type = proc_type; inline_site->owner = owner; inline_site->line_table = 0; @@ -1897,14 +1897,14 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) RDIM_Scope *root_scope = d2r_push_scope(arena, &scopes, SCOPE_CHUNK_CAP, tag_stack, ranges); root_scope->inline_site = inline_site; } break; - case DW_Tag_Variable: { - String8 name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); - RDIM_Type *type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + case DW_TagKind_Variable: { + String8 name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + RDIM_Type *type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; - if (parent_tag_kind == DW_Tag_SubProgram || - parent_tag_kind == DW_Tag_InlinedSubroutine || - parent_tag_kind == DW_Tag_LexicalBlock) { + if (parent_tag_kind == DW_TagKind_SubProgram || + parent_tag_kind == DW_TagKind_InlinedSubroutine || + parent_tag_kind == DW_TagKind_LexicalBlock) { RDIM_Scope *scope = tag_stack->next->scope; RDIM_Local *local = rdim_scope_push_local(arena, &scopes, tag_stack->next->scope); local->kind = RDI_LocalKind_Variable; @@ -1920,52 +1920,52 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) } RDIM_Symbol *gvar = rdim_symbol_chunk_list_push(arena, &gvars, GVAR_CHUNK_CAP); - gvar->is_extern = dw_flag_from_attrib(&input, cu, tag, DW_Attrib_External); + gvar->is_extern = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_External); gvar->name = name; - gvar->link_name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_LinkageName); + gvar->link_name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_LinkageName); gvar->type = type; - //gvar->locset = d2r_locset_from_attrib(arena, &input, cu, &scopes, global_scope, image_base, arch, tag, DW_Attrib_Location); + //gvar->locset = d2r_locset_from_attrib(arena, &input, cu, &scopes, global_scope, image_base, arch, tag, DW_AttribKind_Location); gvar->container_symbol = 0; gvar->container_type = 0; // TODO: NotImplemented; } } break; - case DW_Tag_FormalParameter: { + case DW_TagKind_FormalParameter: { DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; - if (parent_tag_kind == DW_Tag_SubProgram || parent_tag_kind == DW_Tag_InlinedSubroutine) { + if (parent_tag_kind == DW_TagKind_SubProgram || parent_tag_kind == DW_TagKind_InlinedSubroutine) { RDIM_Scope *scope = tag_stack->next->scope; RDIM_Local *param = rdim_scope_push_local(arena, &scopes, scope); param->kind = RDI_LocalKind_Parameter; - param->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); - param->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + param->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + param->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); param->locset = d2r_var_locset_from_tag(arena, &input, cu, &scopes, scope, image_base, arch, tag); } else { // TODO: error handling AssertAlways(!"this is a local variable"); } } break; - case DW_Tag_LexicalBlock: { - if (tag_stack->next->cur_node->tag.kind == DW_Tag_SubProgram || - tag_stack->next->cur_node->tag.kind == DW_Tag_InlinedSubroutine || - tag_stack->next->cur_node->tag.kind == DW_Tag_LexicalBlock) { + case DW_TagKind_LexicalBlock: { + if (tag_stack->next->cur_node->tag.kind == DW_TagKind_SubProgram || + tag_stack->next->cur_node->tag.kind == DW_TagKind_InlinedSubroutine || + tag_stack->next->cur_node->tag.kind == DW_TagKind_LexicalBlock) { Rng1U64List ranges = d2r_range_list_from_tag(comp_temp.arena, &input, cu, image_base, tag); d2r_push_scope(arena, &scopes, SCOPE_CHUNK_CAP, tag_stack, ranges); } } break; - case DW_Tag_CallSite: { + case DW_TagKind_CallSite: { // TODO } break; - case DW_Tag_CallSiteParameter: { + case DW_TagKind_CallSiteParameter: { // TODO } break; - case DW_Tag_Label: - case DW_Tag_CompileUnit: - case DW_Tag_UnspecifiedParameters: + case DW_TagKind_Label: + case DW_TagKind_CompileUnit: + case DW_TagKind_UnspecifiedParameters: break; - case DW_Tag_Namespace: break; - case DW_Tag_ImportedDeclaration: break; - case DW_Tag_PtrToMemberType: break; - case DW_Tag_TemplateTypeParameter: break; - case DW_Tag_ReferenceType: break; + case DW_TagKind_Namespace: break; + case DW_TagKind_ImportedDeclaration: break; + case DW_TagKind_PtrToMemberType: break; + case DW_TagKind_TemplateTypeParameter: break; + case DW_TagKind_ReferenceType: break; default: NotImplemented; break; } diff --git a/src/raddump/raddump.c b/src/raddump/raddump.c index eac8940c..e9a72ce6 100644 --- a/src/raddump/raddump.c +++ b/src/raddump/raddump.c @@ -4934,29 +4934,29 @@ elf_print_dwarf_expressions(Arena *arena, String8List *out, String8 indent, Stri SLLStackPush(tag_stack, n); } - if (tag.kind == DW_Tag_Null) { + if (tag.kind == DW_TagKind_Null) { if (tag_stack) { struct TagNode *n = tag_stack; - if ((n->tag.kind == DW_Tag_SubProgram || n->tag.kind == DW_Tag_LexicalBlock)) { + if ((n->tag.kind == DW_TagKind_SubProgram || n->tag.kind == DW_TagKind_LexicalBlock)) { Assert(lexical_block_depth > 0); --lexical_block_depth; } SLLStackPop(tag_stack); SLLStackPush(free_tags, n); } - } else if (tag.kind == DW_Tag_LexicalBlock || tag.kind == DW_Tag_SubProgram) { + } else if (tag.kind == DW_TagKind_LexicalBlock || tag.kind == DW_TagKind_SubProgram) { ++lexical_block_depth; - if (tag.kind == DW_Tag_SubProgram) { - String8 expr = dw_exprloc_from_attrib(&dwarf_input, &cu, tag, DW_Attrib_FrameBase); + if (tag.kind == DW_TagKind_SubProgram) { + String8 expr = dw_exprloc_from_attrib(&dwarf_input, &cu, tag, DW_AttribKind_FrameBase); if (expr.size > 0) { String8 expr_str = dw_format_expression_single_line(comp_temp.arena, expr, cu_base, cu.address_size, arch, cu.version, cu.ext, cu.format); } } - } else if (tag.kind == DW_Tag_Variable || tag.kind == DW_Tag_FormalParameter) { + } else if (tag.kind == DW_Tag_VariaKindble || tag.kind == DW_Tag_FormalParameter) { #if 0 local_persist B32 is_global_var = 0; - String8 name = dw_string_from_attrib(&dwarf_input, &cu, tag, DW_Attrib_Name); - DW_Attrib *location_attrib = dw_attrib_from_tag(&dwarf_input, &cu, tag, DW_Attrib_Location); + String8 name = dw_string_from_attrib(&dwarf_input, &cu, tag, DW_AttribKind_Name); + DW_Attrib *location_attrib = dw_attrib_from_tag(&dwarf_input, &cu, tag, DW_AttribKind_Location); DW_AttribClass value_class = dw_value_class_from_attrib(&cu, location_attrib); if (value_class != DW_AttribClass_Null) { if (lexical_block_depth == 0) { @@ -4969,13 +4969,13 @@ elf_print_dwarf_expressions(Arena *arena, String8List *out, String8 indent, Stri rd_indent(); if (value_class == DW_AttribClass_LocListPtr || value_class == DW_AttribClass_LocList) { - DW_LocList location = dw_loclist_from_attrib_ptr(comp_temp.arena, &dwarf_input, &cu, location_attrib); + DW_LocList location = dw_loclist_from_attrib(comp_temp.arena, &dwarf_input, &cu, location_attrib); for (DW_LocNode *loc_n = location.first; loc_n != 0; loc_n = loc_n->next) { String8 expr_str = dw_format_expression_single_line(comp_temp.arena, loc_n->v.expr, cu_base, cu.address_size, arch, cu.version, cu.ext, cu.format); rd_printf("[%llx-%llx] %S", loc_n->v.range.min, loc_n->v.range.max, expr_str); } } else if (value_class == DW_AttribClass_ExprLoc) { - String8 expr = dw_exprloc_from_attrib_ptr(&dwarf_input, &cu, location_attrib); + String8 expr = dw_exprloc_from_attrib(&dwarf_input, &cu, location_attrib); String8 expr_str = dw_format_expression_single_line(comp_temp.arena, expr, cu_base, cu.address_size, arch, cu.version, cu.ext, cu.format); rd_printf("%S", expr_str); } @@ -4985,11 +4985,11 @@ elf_print_dwarf_expressions(Arena *arena, String8List *out, String8 indent, Stri } #if 0 - if (tag.kind == DW_Tag_LexicalBlock || tag.kind == DW_Tag_CompileUnit || tag.kind == DW_Tag_InlinedSubroutine || tag.kind == DW_Tag_SubProgram) { + if (tag.kind == DW_TagKind_LexicalBlock || tag.kind == DW_TagKind_CompileUnit || tag.kind == DW_TagKind_InlinedSubroutine || tag.kind == DW_TagKind_SubProgram) { Temp temp = temp_begin(comp_temp.arena); - DW_Attrib *ranges_attrib = dw_attrib_from_tag(&dwarf_input, &cu, tag, DW_Attrib_Ranges); - if (ranges_attrib->attrib_kind == DW_Attrib_Ranges) { - Rng1U64List ranges = dw_rnglist_from_attrib_ptr(temp.arena, &dwarf_input, &cu, ranges_attrib); + DW_Attrib *ranges_attrib = dw_attrib_from_tag(&dwarf_input, &cu, tag, DW_AttribKind_Ranges); + if (ranges_attrib->attrib_kind == DW_AttribKind_Ranges) { + Rng1U64List ranges = dw_rnglist_from_attrib(temp.arena, &dwarf_input, &cu, ranges_attrib); } temp_end(temp); } diff --git a/src/rdi_from_dwarf/rdi_from_dwarf.c b/src/rdi_from_dwarf/rdi_from_dwarf.c index f89a7560..78c17985 100644 --- a/src/rdi_from_dwarf/rdi_from_dwarf.c +++ b/src/rdi_from_dwarf/rdi_from_dwarf.c @@ -88,7 +88,7 @@ d2r_type_from_attrib(Arena *arena, D2R_TypeTable *type_table, DW_Input *input, D } else { Assert(!"unexpected attrib class"); } - } else if (attrib->attrib_kind == DW_Attrib_Null) { + } else if (attrib->attrib_kind == DW_AttribKind_Null) { type = rdim_builtin_type_from_kind(*type_table->types, RDI_TypeKind_NULL); } @@ -99,7 +99,7 @@ internal Rng1U64List d2r_range_list_from_tag(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 image_base, DW_Tag tag) { // collect non-contiguous range - Rng1U64List ranges = dw_rnglist_from_attrib(arena, input, cu, tag, DW_Attrib_Ranges); + Rng1U64List ranges = dw_rnglist_from_attrib(arena, input, cu, tag, DW_AttribKind_Ranges); // debase ranges for (Rng1U64Node *range_n = ranges.first; range_n != 0; range_n = range_n->next) { @@ -111,9 +111,9 @@ d2r_range_list_from_tag(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 imag } // collect contiguous range - DW_Attrib *lo_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_Attrib_LowPc); - DW_Attrib *hi_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_Attrib_HighPc); - if (lo_pc_attrib->attrib_kind != DW_Attrib_Null && hi_pc_attrib->attrib_kind != DW_Attrib_Null) { + DW_Attrib *lo_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_LowPc); + DW_Attrib *hi_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_HighPc); + if (lo_pc_attrib->attrib_kind != DW_AttribKind_Null && hi_pc_attrib->attrib_kind != DW_AttribKind_Null) { U64 lo_pc = dw_address_from_attrib_ptr(input, cu, lo_pc_attrib); U64 hi_pc; @@ -148,12 +148,12 @@ d2r_collect_proc_params(Arena *arena, D2R_TypeTable *type_table, DW_Input *input RDIM_TypeList list = {0}; B32 has_vargs = 0; for (DW_TagNode *i = cur_node->first_child; i != 0; i = i->sibling) { - if (i->tag.kind == DW_Tag_FormalParameter) { + if (i->tag.kind == DW_TagKind_FormalParameter) { RDIM_TypeNode *n = push_array(scratch.arena, RDIM_TypeNode, 1); - n->v = d2r_type_from_attrib(arena, type_table, input, cu, i->tag, DW_Attrib_Type); + n->v = d2r_type_from_attrib(arena, type_table, input, cu, i->tag, DW_AttribKind_Type); SLLQueuePush(list.first, list.last, n); ++list.count; - } else if (i->tag.kind == DW_Tag_UnspecifiedParameters) { + } else if (i->tag.kind == DW_TagKind_UnspecifiedParameters) { has_vargs = 1; } } @@ -590,9 +590,9 @@ SLLStackPush(stack, f); \ // find ref tag DW_TagNode *tag_node = dw_tag_node_from_info_off(cu, type_info_off); DW_Tag tag = tag_node->tag; - if (tag.kind == DW_Tag_BaseType) { + if (tag.kind == DW_TagKind_BaseType) { // extract encoding attribute - DW_ATE encoding = dw_const_u64_from_attrib(input, cu, tag, DW_Attrib_Encoding); + DW_ATE encoding = dw_const_u64_from_attrib(input, cu, tag, DW_AttribKind_Encoding); // DW_ATE -> RDI_EvalTypeGroup switch (encoding) { @@ -601,7 +601,7 @@ SLLStackPush(stack, f); \ case DW_ATE_UnsignedChar: case DW_ATE_Unsigned: out = RDI_EvalTypeGroup_U; break; case DW_ATE_Float: { - U64 byte_size = dw_const_u64_from_attrib(input, cu, tag, DW_Attrib_ByteSize); + U64 byte_size = dw_const_u64_from_attrib(input, cu, tag, DW_AttribKind_ByteSize); switch (byte_size) { case 4: out = RDI_EvalTypeGroup_F32; break; case 8: out = RDI_EvalTypeGroup_F64; break; @@ -902,8 +902,8 @@ d2r_var_locset_from_tag(Arena *arena, { RDIM_LocationSet locset = {0}; - B32 has_const_value = dw_tag_has_attrib(input, cu, tag, DW_Attrib_ConstValue); - B32 has_location = dw_tag_has_attrib(input, cu, tag, DW_Attrib_Location); + B32 has_const_value = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_ConstValue); + B32 has_location = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Location); if (has_const_value && has_location) { // TODO: error handling @@ -912,7 +912,7 @@ d2r_var_locset_from_tag(Arena *arena, if (has_const_value) { // extract const value - U64 const_value = dw_u64_from_attrib(input, cu, tag, DW_Attrib_ConstValue); + U64 const_value = dw_u64_from_attrib(input, cu, tag, DW_AttribKind_ConstValue); // make value byte code RDIM_EvalBytecode bc = {0}; @@ -928,7 +928,7 @@ d2r_var_locset_from_tag(Arena *arena, rdim_location_set_push_case(arena, scopes, &locset, range_n->v, loc); } } else if (has_location) { - locset = d2r_locset_from_attrib(arena, input, cu, scopes, curr_scope, image_base, arch, tag, DW_Attrib_Location); + locset = d2r_locset_from_attrib(arena, input, cu, scopes, curr_scope, image_base, arch, tag, DW_AttribKind_Location); } return locset; @@ -1058,7 +1058,7 @@ d2r_push_scope(Arena *arena, RDIM_ScopeChunkList *scopes, U64 scope_chunk_cap, D // update scope hierarchy DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; - if (parent_tag_kind == DW_Tag_SubProgram || parent_tag_kind == DW_Tag_InlinedSubroutine || parent_tag_kind == DW_Tag_LexicalBlock) { + if (parent_tag_kind == DW_TagKind_SubProgram || parent_tag_kind == DW_TagKind_InlinedSubroutine || parent_tag_kind == DW_TagKind_LexicalBlock) { RDIM_Scope *parent = tag_stack->next->scope; scope->parent_scope = parent; @@ -1211,9 +1211,9 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) DW_LineTableParseResult *cu_line_tables = push_array(scratch.arena, DW_LineTableParseResult, cu_ranges.count); for (U64 cu_idx = 0; cu_idx < cu_ranges.count; ++cu_idx) { DW_CompUnit *cu = &cu_arr[cu_idx]; - String8 cu_stmt_list = dw_line_ptr_from_attrib(&input, cu, cu->tag, DW_Attrib_StmtList); - String8 cu_dir = dw_string_from_attrib(&input, cu, cu->tag, DW_Attrib_CompDir); - String8 cu_name = dw_string_from_attrib(&input, cu, cu->tag, DW_Attrib_Name); + String8 cu_stmt_list = dw_line_ptr_from_attrib(&input, cu, cu->tag, DW_AttribKind_StmtList); + String8 cu_dir = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_CompDir); + String8 cu_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_Name); cu_line_tables[cu_idx] = dw_parsed_line_table_from_data(scratch.arena, cu_stmt_list, &input, cu_dir, cu_name, cu->address_size, cu->str_offsets_lu); } ProfEnd(); @@ -1336,8 +1336,8 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) // build tag hash table for abstract origin resolution cu->tag_ht = dw_make_tag_hash_table(comp_temp.arena, tag_tree); - String8 dwo_name = dw_string_from_attrib(&input, cu, cu->tag, DW_Attrib_DwoName); - String8 gnu_dwo_name = dw_string_from_attrib(&input, cu, cu->tag, DW_Attrib_GNU_DwoName); + String8 dwo_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_DwoName); + String8 gnu_dwo_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_GNU_DwoName); if (dwo_name.size || gnu_dwo_name.size || cu->dwo_id) { // TODO: report that we dont support DWO continue; @@ -1346,10 +1346,10 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) // get unit's contribution ranges RDIM_Rng1U64ChunkList cu_voff_ranges = d2r_voff_ranges_from_cu_info_off(cu_contrib_map, cu_ranges.v[cu_idx].min); - String8 cu_name = dw_string_from_attrib(&input, cu, cu->tag, DW_Attrib_Name); - String8 cu_dir = dw_string_from_attrib(&input, cu, cu->tag, DW_Attrib_CompDir); - String8 cu_prod = dw_string_from_attrib(&input, cu, cu->tag, DW_Attrib_Producer); - DW_Language cu_lang = dw_const_u64_from_attrib(&input, cu, cu->tag, DW_Attrib_Language); + String8 cu_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_Name); + String8 cu_dir = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_CompDir); + String8 cu_prod = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_Producer); + DW_Language cu_lang = dw_const_u64_from_attrib(&input, cu, cu->tag, DW_AttribKind_Language); RDIM_Unit *unit = rdim_unit_chunk_list_push(arena, &units, UNIT_CHUNK_CAP); unit->unit_name = cu_name; @@ -1380,14 +1380,14 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) B32 visit_children = 1; switch (tag.kind) { - case DW_Tag_Null: { + case DW_TagKind_Null: { InvalidPath; } break; - case DW_Tag_ClassType: { + case DW_TagKind_ClassType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); + type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_Attrib_Declaration); + B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteClass; @@ -1400,16 +1400,16 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) type->kind = RDI_TypeKind_Class; type->byte_size = dw_byte_size_32_from_tag(&input, cu, tag); type->udt = udt; - type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); tag_stack->type = type; } } break; - case DW_Tag_StructureType: { + case DW_TagKind_StructureType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); + type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_Attrib_Declaration); + B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteStruct; @@ -1427,11 +1427,11 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) tag_stack->type = type; } } break; - case DW_Tag_UnionType: { + case DW_TagKind_UnionType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); + type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_Attrib_Declaration); + B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteUnion; @@ -1449,11 +1449,11 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) tag_stack->type = type; } } break; - case DW_Tag_EnumerationType: { + case DW_TagKind_EnumerationType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); + type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_Attrib_Declaration); + B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteEnum; @@ -1471,14 +1471,14 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) tag_stack->type = type; } } break; - case DW_Tag_SubroutineType: { + case DW_TagKind_SubroutineType: { // collect parameters RDIM_TypeList param_list = {0}; for (DW_TagNode *n = cur_node->first_child; n != 0; n = n->sibling) { - if (n->tag.kind == DW_Tag_FormalParameter) { - RDIM_Type *param_type = d2r_type_from_attrib(arena, type_table, &input, cu, n->tag, DW_Attrib_Type); + if (n->tag.kind == DW_TagKind_FormalParameter) { + RDIM_Type *param_type = d2r_type_from_attrib(arena, type_table, &input, cu, n->tag, DW_AttribKind_Type); rdim_type_list_push(comp_temp.arena, ¶m_list, param_type); - } else if (n->tag.kind == DW_Tag_UnspecifiedParameters) { + } else if (n->tag.kind == DW_TagKind_UnspecifiedParameters) { rdim_type_list_push(comp_temp.arena, ¶m_list, type_table->varg_type); } else { // TODO: error handling @@ -1487,7 +1487,7 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) } // init proceudre type - RDIM_Type *ret_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + RDIM_Type *ret_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Function; type->byte_size = arch_addr_size; @@ -1497,14 +1497,14 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) visit_children = 0; } break; - case DW_Tag_Typedef: { + case DW_TagKind_Typedef: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Alias; - type->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); - type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); } break; - case DW_Tag_BaseType: { - DW_ATE encoding = dw_const_u64_from_attrib(&input, cu, tag, DW_Attrib_Encoding); + case DW_TagKind_BaseType: { + DW_ATE encoding = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_Encoding); U64 byte_size = dw_byte_size_from_tag(&input, cu, tag); // convert base type encoding to RDI version @@ -1611,18 +1611,18 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Alias; - type->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); + type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); type->direct_type = base_type; } break; - case DW_Tag_PointerType: { - RDIM_Type *direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + case DW_TagKind_PointerType: { + RDIM_Type *direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); // TODO: - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Allocated)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Associated)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Alignment)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Name)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_AddressClass)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Allocated)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Associated)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Alignment)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Name)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_AddressClass)); U64 byte_size = arch_addr_size; if (cu->version == DW_Version_5 || cu->relaxed) { @@ -1634,39 +1634,39 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) type->byte_size = byte_size; type->direct_type = direct_type; } break; - case DW_Tag_RestrictType: { + case DW_TagKind_RestrictType: { // TODO: - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Alignment)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Name)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Alignment)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Name)); RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Modifier; type->byte_size = arch_addr_size; type->flags = RDI_TypeModifierFlag_Restrict; - type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); } break; - case DW_Tag_VolatileType: { + case DW_TagKind_VolatileType: { // TODO: - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Name)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Name)); RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Modifier; type->byte_size = arch_addr_size; type->flags = RDI_TypeModifierFlag_Volatile; - type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); } break; - case DW_Tag_ConstType: { + case DW_TagKind_ConstType: { // TODO: - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Name)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_Attrib_Alignment)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Name)); + Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Alignment)); RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Modifier; type->byte_size = arch_addr_size; type->flags = RDI_TypeModifierFlag_Const; - type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); } break; - case DW_Tag_ArrayType: { + case DW_TagKind_ArrayType: { // * DWARF vs RDI Array Type Graph * // // For example lets take following decl: @@ -1677,7 +1677,7 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) // // foo -> DW_TAG_ArrayType -> (A0) DW_TAG_Subrange [2] // \ - // -> (B0) DW_TAG_PointerType -> (A1) DW_TAG_ArrayType -> DW_TAG_Subrange [3] -> DW_Tag_Subrange [4] + // -> (B0) DW_TAG_PointerType -> (A1) DW_TAG_ArrayType -> DW_TAG_Subrange [3] -> DW_TagKind_Subrange [4] // \ // -> (B1) DW_TAG_BaseType (int) // @@ -1697,7 +1697,7 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) U64 subrange_count = 0; RDIM_Type *t = type; for (DW_TagNode *n = cur_node->first_child; n != 0; n = n->sibling) { - if (n->tag.kind != DW_Tag_SubrangeType) { + if (n->tag.kind != DW_TagKind_SubrangeType) { // TODO: error handling AssertAlways(!"unexpected tag"); continue; @@ -1716,19 +1716,19 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) // resolve array lower bound U64 lower_bound = 0; - if (dw_tag_has_attrib(&input, cu, n->tag, DW_Attrib_LowerBound)) { - lower_bound = dw_u64_from_attrib(&input, cu, n->tag, DW_Attrib_LowerBound); + if (dw_tag_has_attrib(&input, cu, n->tag, DW_AttribKind_LowerBound)) { + lower_bound = dw_u64_from_attrib(&input, cu, n->tag, DW_AttribKind_LowerBound); } else { lower_bound = dw_pick_default_lower_bound(cu_lang); } // resolve array upper bound U64 upper_bound = 0; - if (dw_tag_has_attrib(&input, cu, n->tag, DW_Attrib_Count)) { - U64 count = dw_u64_from_attrib(&input, cu, n->tag, DW_Attrib_Count); + if (dw_tag_has_attrib(&input, cu, n->tag, DW_AttribKind_Count)) { + U64 count = dw_u64_from_attrib(&input, cu, n->tag, DW_AttribKind_Count); upper_bound = lower_bound + count; - } else if (dw_tag_has_attrib(&input, cu, n->tag, DW_Attrib_UpperBound)) { - upper_bound = dw_u64_from_attrib(&input, cu, n->tag, DW_Attrib_UpperBound); + } else if (dw_tag_has_attrib(&input, cu, n->tag, DW_AttribKind_UpperBound)) { + upper_bound = dw_u64_from_attrib(&input, cu, n->tag, DW_AttribKind_UpperBound); // turn upper bound into exclusive range upper_bound += 1; } else { @@ -1740,18 +1740,18 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) } Assert(t->direct_type == 0); - t->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + t->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); visit_children = 0; } break; - case DW_Tag_SubrangeType: { + case DW_TagKind_SubrangeType: { // TODO: error handling AssertAlways(!"unexpected tag"); } break; - case DW_Tag_Inheritance: { + case DW_TagKind_Inheritance: { DW_TagNode *parent_node = tag_stack->next->cur_node; - if (parent_node->tag.kind != DW_Tag_StructureType && - parent_node->tag.kind != DW_Tag_ClassType) { + if (parent_node->tag.kind != DW_TagKind_StructureType && + parent_node->tag.kind != DW_TagKind_ClassType) { // TODO: error handling AssertAlways(!"unexpected parent tag"); } @@ -1759,32 +1759,32 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) RDIM_Type *parent = tag_stack->next->type; RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, parent->udt); member->kind = RDI_MemberKind_Base; - member->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); - member->off = safe_cast_u32(dw_const_u32_from_attrib(&input, cu, tag, DW_Attrib_DataMemberLocation)); + member->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); + member->off = safe_cast_u32(dw_const_u32_from_attrib(&input, cu, tag, DW_AttribKind_DataMemberLocation)); } break; - case DW_Tag_Enumerator: { + case DW_TagKind_Enumerator: { DW_TagNode *parent_node = tag_stack->next->cur_node; - if (parent_node->tag.kind != DW_Tag_EnumerationType) { + if (parent_node->tag.kind != DW_TagKind_EnumerationType) { // TODO: error handling AssertAlways(!"unexpected parent tag"); } RDIM_Type *type = tag_stack->next->type; RDIM_UDTEnumVal *member = rdim_udt_push_enum_val(arena, &udts, type->udt); - member->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); - member->val = dw_const_u64_from_attrib(&input, cu, tag, DW_Attrib_ConstValue); + member->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + member->val = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_ConstValue); } break; - case DW_Tag_Member: { + case DW_TagKind_Member: { DW_TagNode *parent_node = tag_stack->next->cur_node; - if (parent_node->tag.kind != DW_Tag_StructureType && - parent_node->tag.kind != DW_Tag_ClassType && - parent_node->tag.kind != DW_Tag_UnionType && - parent_node->tag.kind != DW_Tag_EnumerationType) { + if (parent_node->tag.kind != DW_TagKind_StructureType && + parent_node->tag.kind != DW_TagKind_ClassType && + parent_node->tag.kind != DW_TagKind_UnionType && + parent_node->tag.kind != DW_TagKind_EnumerationType) { // TODO: error handling AssertAlways(!"unexpected parent tag"); } - DW_Attrib *data_member_location = dw_attrib_from_tag(&input, cu, tag, DW_Attrib_DataMemberLocation); + DW_Attrib *data_member_location = dw_attrib_from_tag(&input, cu, tag, DW_AttribKind_DataMemberLocation); DW_AttribClass data_member_location_class = dw_value_class_from_attrib(cu, data_member_location); if (data_member_location_class == DW_AttribClass_LocList) { AssertAlways(!"UDT member with multiple locations are not supported"); @@ -1793,19 +1793,19 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) RDIM_Type *type = tag_stack->next->type; RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, type->udt); member->kind = RDI_MemberKind_DataField; - member->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); - member->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); - member->off = dw_const_u64_from_attrib(&input, cu, tag, DW_Attrib_DataMemberLocation); + member->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + member->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); + member->off = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_DataMemberLocation); } break; - case DW_Tag_SubProgram: { - DW_InlKind inl = dw_u64_from_attrib(&input, cu, tag, DW_Attrib_Inline); + case DW_TagKind_SubProgram: { + DW_InlKind inl = dw_u64_from_attrib(&input, cu, tag, DW_AttribKind_Inline); switch (inl) { case DW_Inl_NotInlined: { U64 param_count = 0; RDIM_Type **params = d2r_collect_proc_params(arena, type_table, &input, cu, cur_node, ¶m_count); // get return type - RDIM_Type *ret_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + RDIM_Type *ret_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); // fill out proc type RDIM_Type *proc_type = d2r_create_type(arena, type_table); @@ -1817,12 +1817,12 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) // get container type RDIM_Type *container_type = 0; - if (dw_tag_has_attrib(&input, cu, tag, DW_Attrib_ContainingType)) { - container_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_ContainingType); + if (dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_ContainingType)) { + container_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_ContainingType); } // get frame base expression - String8 frame_base_expr = dw_exprloc_from_attrib(&input, cu, tag, DW_Attrib_FrameBase); + String8 frame_base_expr = dw_exprloc_from_attrib(&input, cu, tag, DW_AttribKind_FrameBase); // get proc container symbol RDIM_Symbol *proc = rdim_symbol_chunk_list_push(arena, &procs, PROC_CHUNK_CAP ); @@ -1833,20 +1833,20 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) root_scope->symbol = proc; // fill out proc - proc->is_extern = dw_flag_from_attrib(&input, cu, tag, DW_Attrib_External); - proc->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); - proc->link_name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_LinkageName); + proc->is_extern = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_External); + proc->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + proc->link_name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_LinkageName); proc->type = proc_type; proc->container_symbol = 0; proc->container_type = container_type; proc->root_scope = root_scope; - proc->frame_base = d2r_locset_from_attrib(arena, &input, cu, &scopes, root_scope, image_base, arch, tag, DW_Attrib_FrameBase); + proc->frame_base = d2r_locset_from_attrib(arena, &input, cu, &scopes, root_scope, image_base, arch, tag, DW_AttribKind_FrameBase); // sub program with user-defined parent tag is a method DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; - if (parent_tag_kind == DW_Tag_ClassType || parent_tag_kind == DW_Tag_StructureType) { + if (parent_tag_kind == DW_TagKind_ClassType || parent_tag_kind == DW_TagKind_StructureType) { RDI_MemberKind member_kind = RDI_MemberKind_NULL; - DW_VirtualityKind virtuality = dw_const_u64_from_attrib(&input, cu, tag, DW_Attrib_Virtuality); + DW_VirtualityKind virtuality = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_Virtuality); switch (virtuality) { case DW_VirtualityKind_None: member_kind = RDI_MemberKind_Method; break; case DW_VirtualityKind_Virtual: member_kind = RDI_MemberKind_VirtualMethod; break; @@ -1858,8 +1858,8 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, type->udt); member->kind = member_kind; member->type = type; - member->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); - } else if (parent_tag_kind != DW_Tag_CompileUnit) { + member->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + } else if (parent_tag_kind != DW_TagKind_CompileUnit) { //AssertAlways(!"unexpected tag"); } @@ -1873,12 +1873,12 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) default: InvalidPath; break; } } break; - case DW_Tag_InlinedSubroutine: { + case DW_TagKind_InlinedSubroutine: { U64 param_count = 0; RDIM_Type **params = d2r_collect_proc_params(arena, type_table, &input, cu, tag_stack->cur_node, ¶m_count); // get return type - RDIM_Type *ret_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + RDIM_Type *ret_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); // fill out proc type RDIM_Type *proc_type = d2r_create_type(arena, type_table); @@ -1890,13 +1890,13 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) // get container type RDIM_Type *owner = 0; - if (dw_tag_has_attrib(&input, cu, tag, DW_Attrib_ContainingType)) { - owner = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_ContainingType); + if (dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_ContainingType)) { + owner = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_ContainingType); } // fill out inline site RDIM_InlineSite *inline_site = rdim_inline_site_chunk_list_push(arena, &inline_sites, INLINE_SITE_CHUNK_CAP); - inline_site->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); + inline_site->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); inline_site->type = proc_type; inline_site->owner = owner; inline_site->line_table = 0; @@ -1906,14 +1906,14 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) RDIM_Scope *root_scope = d2r_push_scope(arena, &scopes, SCOPE_CHUNK_CAP, tag_stack, ranges); root_scope->inline_site = inline_site; } break; - case DW_Tag_Variable: { - String8 name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); - RDIM_Type *type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + case DW_TagKind_Variable: { + String8 name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + RDIM_Type *type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; - if (parent_tag_kind == DW_Tag_SubProgram || - parent_tag_kind == DW_Tag_InlinedSubroutine || - parent_tag_kind == DW_Tag_LexicalBlock) { + if (parent_tag_kind == DW_TagKind_SubProgram || + parent_tag_kind == DW_TagKind_InlinedSubroutine || + parent_tag_kind == DW_TagKind_LexicalBlock) { RDIM_Scope *scope = tag_stack->next->scope; RDIM_Local *local = rdim_scope_push_local(arena, &scopes, tag_stack->next->scope); local->kind = RDI_LocalKind_Variable; @@ -1929,52 +1929,52 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) } RDIM_Symbol *gvar = rdim_symbol_chunk_list_push(arena, &gvars, GVAR_CHUNK_CAP); - gvar->is_extern = dw_flag_from_attrib(&input, cu, tag, DW_Attrib_External); + gvar->is_extern = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_External); gvar->name = name; - gvar->link_name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_LinkageName); + gvar->link_name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_LinkageName); gvar->type = type; - //gvar->locset = d2r_locset_from_attrib(arena, &input, cu, &scopes, global_scope, image_base, arch, tag, DW_Attrib_Location); + //gvar->locset = d2r_locset_from_attrib(arena, &input, cu, &scopes, global_scope, image_base, arch, tag, DW_AttribKind_Location); gvar->container_symbol = 0; gvar->container_type = 0; // TODO: NotImplemented; } } break; - case DW_Tag_FormalParameter: { + case DW_TagKind_FormalParameter: { DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; - if (parent_tag_kind == DW_Tag_SubProgram || parent_tag_kind == DW_Tag_InlinedSubroutine) { + if (parent_tag_kind == DW_TagKind_SubProgram || parent_tag_kind == DW_TagKind_InlinedSubroutine) { RDIM_Scope *scope = tag_stack->next->scope; RDIM_Local *param = rdim_scope_push_local(arena, &scopes, scope); param->kind = RDI_LocalKind_Parameter; - param->name = dw_string_from_attrib(&input, cu, tag, DW_Attrib_Name); - param->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_Attrib_Type); + param->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + param->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); param->locset = d2r_var_locset_from_tag(arena, &input, cu, &scopes, scope, image_base, arch, tag); } else { // TODO: error handling AssertAlways(!"this is a local variable"); } } break; - case DW_Tag_LexicalBlock: { - if (tag_stack->next->cur_node->tag.kind == DW_Tag_SubProgram || - tag_stack->next->cur_node->tag.kind == DW_Tag_InlinedSubroutine || - tag_stack->next->cur_node->tag.kind == DW_Tag_LexicalBlock) { + case DW_TagKind_LexicalBlock: { + if (tag_stack->next->cur_node->tag.kind == DW_TagKind_SubProgram || + tag_stack->next->cur_node->tag.kind == DW_TagKind_InlinedSubroutine || + tag_stack->next->cur_node->tag.kind == DW_TagKind_LexicalBlock) { Rng1U64List ranges = d2r_range_list_from_tag(comp_temp.arena, &input, cu, image_base, tag); d2r_push_scope(arena, &scopes, SCOPE_CHUNK_CAP, tag_stack, ranges); } } break; - case DW_Tag_CallSite: { + case DW_TagKind_CallSite: { // TODO } break; - case DW_Tag_CallSiteParameter: { + case DW_TagKind_CallSiteParameter: { // TODO } break; - case DW_Tag_Label: - case DW_Tag_CompileUnit: - case DW_Tag_UnspecifiedParameters: + case DW_TagKind_Label: + case DW_TagKind_CompileUnit: + case DW_TagKind_UnspecifiedParameters: break; - case DW_Tag_Namespace: break; - case DW_Tag_ImportedDeclaration: break; - case DW_Tag_PtrToMemberType: break; - case DW_Tag_TemplateTypeParameter: break; - case DW_Tag_ReferenceType: break; + case DW_TagKind_Namespace: break; + case DW_TagKind_ImportedDeclaration: break; + case DW_TagKind_PtrToMemberType: break; + case DW_TagKind_TemplateTypeParameter: break; + case DW_TagKind_ReferenceType: break; default: NotImplemented; break; } From a2ab822eb58f48e5dd49029b009317bd7ae4b7b4 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 09:49:01 -0700 Subject: [PATCH 019/372] attrib -> attrib_kind; attrib_ptr -> attrib --- src/dwarf/dwarf_dump.c | 34 +++++------ src/dwarf/dwarf_parse.c | 90 ++++++++++++++-------------- src/dwarf/dwarf_parse.h | 58 +++++++++--------- src/radcon/radcon_dwarf.c | 92 ++++++++++++++--------------- src/raddump/raddump.c | 10 ++-- src/rdi_from_dwarf/rdi_from_dwarf.c | 92 ++++++++++++++--------------- 6 files changed, 188 insertions(+), 188 deletions(-) diff --git a/src/dwarf/dwarf_dump.c b/src/dwarf/dwarf_dump.c index 6ac790bb..9822508c 100644 --- a/src/dwarf/dwarf_dump.c +++ b/src/dwarf/dwarf_dump.c @@ -1920,9 +1920,9 @@ dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableI //- rjf: unpack unit Rng1U64 unit_range = unit_ranges.v[unit_idx]; DW_CompUnit unit = dw_cu_from_info_off(unit_temp.arena, input, lu_input, unit_range.min, relaxed); - String8 unit_dir = dw_string_from_attrib(input, &unit, unit.tag, DW_AttribKind_CompDir ); - String8 unit_name = dw_string_from_attrib(input, &unit, unit.tag, DW_AttribKind_Name ); - String8 stmt_list = dw_line_ptr_from_attrib(input, &unit, unit.tag, DW_AttribKind_StmtList); + String8 unit_dir = dw_string_from_tag_attrib_kind(input, &unit, unit.tag, DW_AttribKind_CompDir ); + String8 unit_name = dw_string_from_tag_attrib_kind(input, &unit, unit.tag, DW_AttribKind_Name ); + String8 stmt_list = dw_line_ptr_from_tag_attrib_kind(input, &unit, unit.tag, DW_AttribKind_StmtList); DW_LineVMHeader line_vm = {0}; dw_read_line_vm_header(unit_temp.arena, stmt_list, 0, input, unit_dir, unit_name, unit.address_size, unit.str_offsets_lu, &line_vm); @@ -1984,26 +1984,26 @@ dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableI str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: undefined value class"); } break; case DW_AttribClass_Address: { - U64 address = dw_address_from_attrib_ptr(input, &unit, attrib); + U64 address = dw_address_from_attrib(input, &unit, attrib); str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", address); } break; case DW_AttribClass_Block: { - String8 block = dw_block_from_attrib_ptr(input, &unit, attrib); + String8 block = dw_block_from_attrib(input, &unit, attrib); String8List block_strs = numeric_str8_list_from_data(attrib_temp.arena, 16, block, 1); String8 block_str = str8_list_join(attrib_temp.arena, &block_strs, &(StringJoin){.sep = str8_lit(", ")}); str8_list_push(attrib_temp.arena, &attrib_list, block_str); } break; case DW_AttribClass_Const: { - U64 constant = dw_const_u64_from_attrib_ptr(input, &unit, attrib); + U64 constant = dw_const_u64_from_attrib(input, &unit, attrib); str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", constant); } break; case DW_AttribClass_ExprLoc: { - String8 exprloc = dw_exprloc_from_attrib_ptr(input, &unit, attrib); + String8 exprloc = dw_exprloc_from_attrib(input, &unit, attrib); String8 exprloc_str = dw_format_expression_single_line(attrib_temp.arena, exprloc, unit_range.min, unit.address_size, arch, unit.version, unit.ext, unit.format); str8_list_push(attrib_temp.arena, &attrib_list, exprloc_str); } break; case DW_AttribClass_Flag: { - B32 flag = dw_flag_from_attrib_ptr(input, &unit, attrib); + B32 flag = dw_flag_from_attrib(input, &unit, attrib); str8_list_pushf(attrib_temp.arena, &attrib_list, "%llu (%s)", flag, flag == 0 ? "false" : "true"); } break; case DW_AttribClass_LinePtr: { @@ -2060,7 +2060,7 @@ dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableI if (attrib->form_kind == DW_Form_Strp) { str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); } - String8 string = dw_string_from_attrib_ptr(input, &unit, attrib); + String8 string = dw_string_from_attrib(input, &unit, attrib); str8_list_pushf(attrib_temp.arena, &attrib_list, "(%S)", string); } break; case DW_AttribClass_StrOffsetsPtr: { @@ -2082,35 +2082,35 @@ dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableI String8 attrib_str = {0}; switch (attrib->attrib_kind) { case DW_AttribKind_Language: { - DW_Language lang = dw_const_u64_from_attrib_ptr(input, &unit, attrib); + DW_Language lang = dw_const_u64_from_attrib(input, &unit, attrib); attrib_str = dw_string_from_language(attrib_temp.arena, lang); } break; case DW_AttribKind_DeclFile: { - U64 file_idx = dw_const_u64_from_attrib_ptr(input, &unit, attrib); - DW_LineFile *file = dw_file_from_attrib_ptr(&unit, &line_vm, attrib); + U64 file_idx = dw_const_u64_from_attrib(input, &unit, attrib); + DW_LineFile *file = dw_file_from_attrib(&unit, &line_vm, attrib); attrib_str = str8_lit("\?\?\?"); if (file) { attrib_str = dw_path_from_file(attrib_temp.arena, &line_vm, file); } } break; case DW_AttribKind_DeclLine: { - U64 line = dw_const_u64_from_attrib_ptr(input, &unit, attrib); + U64 line = dw_const_u64_from_attrib(input, &unit, attrib); attrib_str = push_str8f(attrib_temp.arena, "%llu", line); } break; case DW_AttribKind_Inline: { - DW_InlKind inl = dw_const_u64_from_attrib_ptr(input, &unit, attrib); + DW_InlKind inl = dw_const_u64_from_attrib(input, &unit, attrib); attrib_str = dw_string_from_inl(attrib_temp.arena, inl); } break; case DW_AttribKind_Accessibility: { - DW_AccessKind access = dw_const_u64_from_attrib_ptr(input, &unit, attrib); + DW_AccessKind access = dw_const_u64_from_attrib(input, &unit, attrib); attrib_str = dw_string_from_access_kind(attrib_temp.arena, access); } break; case DW_AttribKind_CallingConvention: { - DW_CallingConventionKind calling_convetion = dw_const_u64_from_attrib_ptr(input, &unit, attrib); + DW_CallingConventionKind calling_convetion = dw_const_u64_from_attrib(input, &unit, attrib); attrib_str = dw_string_from_calling_convetion(attrib_temp.arena, calling_convetion); } break; case DW_AttribKind_Encoding: { - DW_ATE encoding = dw_const_u64_from_attrib_ptr(input, &unit, attrib); + DW_ATE encoding = dw_const_u64_from_attrib(input, &unit, attrib); attrib_str = dw_string_from_attrib_type_encoding(attrib_temp.arena, encoding); } break; } diff --git a/src/dwarf/dwarf_parse.c b/src/dwarf/dwarf_parse.c index 26ebed99..d4642322 100644 --- a/src/dwarf/dwarf_parse.c +++ b/src/dwarf/dwarf_parse.c @@ -1675,7 +1675,7 @@ dw_value_class_from_attrib(DW_CompUnit *cu, DW_Attrib *attrib) } internal String8 -dw_exprloc_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) +dw_exprloc_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) { DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_ExprLoc || value_class == DW_AttribClass_Block); @@ -1683,7 +1683,7 @@ dw_exprloc_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) } internal U128 -dw_const_u128_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) +dw_const_u128_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) { DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); @@ -1691,7 +1691,7 @@ dw_const_u128_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attri } internal U64 -dw_const_u64_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) +dw_const_u64_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) { DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); @@ -1699,7 +1699,7 @@ dw_const_u64_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib } internal U32 -dw_const_u32_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) +dw_const_u32_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) { DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); @@ -1707,7 +1707,7 @@ dw_const_u32_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib } internal S64 -dw_const_s64_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) +dw_const_s64_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) { DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); @@ -1715,7 +1715,7 @@ dw_const_s64_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib } internal S32 -dw_const_s32_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) +dw_const_s32_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) { DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); @@ -1723,7 +1723,7 @@ dw_const_s32_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib } internal B32 -dw_flag_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) +dw_flag_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) { DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Flag); @@ -1731,7 +1731,7 @@ dw_flag_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) } internal U64 -dw_address_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) +dw_address_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) { DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); AssertAlways(value_class == DW_AttribClass_Null || @@ -1756,7 +1756,7 @@ dw_address_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) } internal String8 -dw_block_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) +dw_block_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) { DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Block); @@ -1764,7 +1764,7 @@ dw_block_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) } internal String8 -dw_string_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) +dw_string_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) { DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_String || value_class == DW_AttribClass_StrOffsetsPtr); @@ -1772,7 +1772,7 @@ dw_string_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) } internal String8 -dw_line_ptr_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) +dw_line_ptr_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) { DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_LinePtr); @@ -1780,7 +1780,7 @@ dw_line_ptr_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) } internal DW_LineFile * -dw_file_from_attrib_ptr(DW_CompUnit *cu, DW_LineVMHeader *line_vm, DW_Attrib *attrib) +dw_file_from_attrib(DW_CompUnit *cu, DW_LineVMHeader *line_vm, DW_Attrib *attrib) { DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); @@ -1788,7 +1788,7 @@ dw_file_from_attrib_ptr(DW_CompUnit *cu, DW_LineVMHeader *line_vm, DW_Attrib *at } internal DW_Reference -dw_ref_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) +dw_ref_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) { DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Reference); @@ -1796,7 +1796,7 @@ dw_ref_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) } internal DW_LocList -dw_loclist_from_attrib_ptr(Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) +dw_loclist_from_attrib(Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) { DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); AssertAlways(value_class == DW_AttribClass_Null || @@ -1806,7 +1806,7 @@ dw_loclist_from_attrib_ptr(Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_At } internal Rng1U64List -dw_rnglist_from_attrib_ptr(Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) +dw_rnglist_from_attrib(Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) { Rng1U64List rnglist = {0}; DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); @@ -1860,81 +1860,81 @@ dw_tag_has_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind ki } internal String8 -dw_exprloc_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +dw_exprloc_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) { - return dw_exprloc_from_attrib_ptr(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); + return dw_exprloc_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); } internal String8 -dw_block_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +dw_block_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) { - return dw_block_from_attrib_ptr(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); + return dw_block_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); } internal U128 -dw_const_u128_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +dw_const_u128_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) { - return dw_const_u128_from_attrib_ptr(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); + return dw_const_u128_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); } internal U64 -dw_const_u64_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +dw_const_u64_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) { - return dw_const_u64_from_attrib_ptr(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); + return dw_const_u64_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); } internal U32 -dw_const_u32_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +dw_const_u32_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) { - return dw_const_u32_from_attrib_ptr(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); + return dw_const_u32_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); } internal U64 -dw_address_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +dw_address_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) { - return dw_address_from_attrib_ptr(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); + return dw_address_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); } internal String8 -dw_string_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +dw_string_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) { - return dw_string_from_attrib_ptr(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); + return dw_string_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); } internal String8 -dw_line_ptr_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +dw_line_ptr_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) { - return dw_line_ptr_from_attrib_ptr(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); + return dw_line_ptr_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); } internal DW_Reference -dw_ref_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +dw_ref_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) { - return dw_ref_from_attrib_ptr(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); + return dw_ref_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); } internal DW_LocList -dw_loclist_from_attrib(Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +dw_loclist_from_tag_attrib_kind(Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) { - return dw_loclist_from_attrib_ptr(arena, input, cu, dw_attrib_from_tag(input, cu, tag, kind)); + return dw_loclist_from_attrib(arena, input, cu, dw_attrib_from_tag(input, cu, tag, kind)); } internal Rng1U64List -dw_rnglist_from_attrib(Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +dw_rnglist_from_tag_attrib_kind(Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) { - return dw_rnglist_from_attrib_ptr(arena, input, cu, dw_attrib_from_tag(input, cu, tag, kind)); + return dw_rnglist_from_attrib(arena, input, cu, dw_attrib_from_tag(input, cu, tag, kind)); } internal B32 -dw_flag_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +dw_flag_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) { - return dw_flag_from_attrib_ptr(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); + return dw_flag_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); } internal DW_LineFile * -dw_file_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_LineVMHeader *line_vm, DW_Tag tag, DW_AttribKind kind) +dw_file_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_LineVMHeader *line_vm, DW_Tag tag, DW_AttribKind kind) { - return dw_file_from_attrib_ptr(cu, line_vm, dw_attrib_from_tag(input, cu, tag, kind)); + return dw_file_from_attrib(cu, line_vm, dw_attrib_from_tag(input, cu, tag, kind)); } internal B32 @@ -1948,10 +1948,10 @@ dw_try_byte_size_from_tag(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, U64 *byt } if (has_byte_size) { - *byte_size_out = dw_const_u64_from_attrib(input, cu, tag, DW_AttribKind_ByteSize); + *byte_size_out = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_ByteSize); return 1; } else if (has_bit_size) { - U64 bit_size = dw_const_u64_from_attrib(input, cu, tag, DW_AttribKind_BitSize); + U64 bit_size = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_BitSize); *byte_size_out = bit_size / 8; return 1; } @@ -1987,11 +1987,11 @@ dw_u64_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind k if (attrib_class == DW_AttribClass_Const || attrib_class == DW_AttribClass_Block) { if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Type)) { Temp scratch = scratch_begin(0,0); - DW_Reference type_ref = dw_ref_from_attrib(input, cu, tag, DW_AttribKind_Type); + DW_Reference type_ref = dw_ref_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Type); DW_Tag type_tag = {0}; dw_read_tag_cu(scratch.arena, input, type_ref.cu, type_ref.info_off, &type_tag); U64 type_byte_size = dw_byte_size_from_tag(input, cu, type_tag); - DW_ATE type_encoding = dw_const_u64_from_attrib(input, type_ref.cu, type_tag, DW_AttribKind_Encoding); + DW_ATE type_encoding = dw_const_u64_from_tag_attrib_kind(input, type_ref.cu, type_tag, DW_AttribKind_Encoding); if (type_encoding == DW_ATE_Unsigned || type_encoding == DW_ATE_UnsignedChar) { result = dw_interp_const64(type_byte_size, type_encoding, attrib->form_kind, attrib->form); } diff --git a/src/dwarf/dwarf_parse.h b/src/dwarf/dwarf_parse.h index b89e45be..28736331 100644 --- a/src/dwarf/dwarf_parse.h +++ b/src/dwarf/dwarf_parse.h @@ -376,36 +376,36 @@ internal DW_Reference dw_interp_ref (DW_Input *input, DW_CompUnit *cu, DW internal DW_LocList dw_interp_loclist (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_FormKind form_kind, DW_Form form); internal Rng1U64List dw_interp_rnglist (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_FormKind form_kind, DW_Form form); -internal String8 dw_exprloc_from_attrib_ptr (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal U128 dw_const_u128_from_attrib_ptr(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal U64 dw_const_u64_from_attrib_ptr (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal U32 dw_const_u32_from_attrib_ptr (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal S64 dw_const_s64_from_attrib_ptr (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal S32 dw_const_s32_from_attrib_ptr (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal B32 dw_flag_from_attrib_ptr (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal U64 dw_address_from_attrib_ptr (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal String8 dw_block_from_attrib_ptr (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal String8 dw_string_from_attrib_ptr (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal String8 dw_line_ptr_from_attrib_ptr (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal DW_LineFile * dw_file_from_attrib_ptr (DW_CompUnit *cu, DW_LineVMHeader *line_vm, DW_Attrib *attrib); -internal DW_Reference dw_ref_from_attrib_ptr (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal DW_LocList dw_loclist_from_attrib_ptr (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal Rng1U64List dw_rnglist_from_attrib_ptr (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal String8 dw_exprloc_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal U128 dw_const_u128_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal U64 dw_const_u64_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal U32 dw_const_u32_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal S64 dw_const_s64_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal S32 dw_const_s32_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal B32 dw_flag_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal U64 dw_address_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal String8 dw_block_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal String8 dw_string_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal String8 dw_line_ptr_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal DW_LineFile * dw_file_from_attrib (DW_CompUnit *cu, DW_LineVMHeader *line_vm, DW_Attrib *attrib); +internal DW_Reference dw_ref_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal DW_LocList dw_loclist_from_attrib (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal Rng1U64List dw_rnglist_from_attrib (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal String8 dw_exprloc_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal U128 dw_const_u128_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal U64 dw_const_u64_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal U32 dw_const_u32_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal B32 dw_flag_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal U64 dw_address_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal String8 dw_block_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal String8 dw_string_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal String8 dw_line_ptr_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal String8 dw_line_ptr_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal DW_LineFile * dw_file_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_LineVMHeader *line_vm, DW_Tag tag, DW_AttribKind kind); -internal DW_Reference dw_ref_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal DW_LocList dw_loclist_from_attrib (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal Rng1U64List dw_rnglist_from_attrib (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal String8 dw_exprloc_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal U128 dw_const_u128_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal U64 dw_const_u64_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal U32 dw_const_u32_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal B32 dw_flag_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal U64 dw_address_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal String8 dw_block_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal String8 dw_string_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal String8 dw_line_ptr_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal String8 dw_line_ptr_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal DW_LineFile * dw_file_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_LineVMHeader *line_vm, DW_Tag tag, DW_AttribKind kind); +internal DW_Reference dw_ref_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal DW_LocList dw_loclist_from_tag_attrib_kind (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal Rng1U64List dw_rnglist_from_tag_attrib_kind (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); // compile unit diff --git a/src/radcon/radcon_dwarf.c b/src/radcon/radcon_dwarf.c index 64583c87..4bfbe168 100644 --- a/src/radcon/radcon_dwarf.c +++ b/src/radcon/radcon_dwarf.c @@ -78,7 +78,7 @@ d2r_type_from_attrib(Arena *arena, D2R_TypeTable *type_table, DW_Input *input, D if (value_class == DW_AttribClass_Reference) { // resolve reference - DW_Reference ref = dw_ref_from_attrib(input, cu, attrib); + DW_Reference ref = dw_ref_from_tag_attrib_kind(input, cu, attrib); // TODO: support for external compile unit references AssertAlways(ref.cu == cu); @@ -99,7 +99,7 @@ internal Rng1U64List d2r_range_list_from_tag(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 image_base, DW_Tag tag) { // collect non-contiguous range - Rng1U64List ranges = dw_rnglist_from_attrib(arena, input, cu, tag, DW_AttribKind_Ranges); + Rng1U64List ranges = dw_rnglist_from_tag_attrib_kind(arena, input, cu, tag, DW_AttribKind_Ranges); // debase ranges for (Rng1U64Node *range_n = ranges.first; range_n != 0; range_n = range_n->next) { @@ -114,14 +114,14 @@ d2r_range_list_from_tag(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 imag DW_Attrib *lo_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_LowPc); DW_Attrib *hi_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_HighPc); if (lo_pc_attrib->attrib_kind != DW_AttribKind_Null && hi_pc_attrib->attrib_kind != DW_AttribKind_Null) { - U64 lo_pc = dw_address_from_attrib(input, cu, lo_pc_attrib); + U64 lo_pc = dw_address_from_tag_attrib_kind(input, cu, lo_pc_attrib); U64 hi_pc; DW_AttribClass hi_pc_class = dw_value_class_from_attrib(cu, hi_pc_attrib); if (hi_pc_class == DW_AttribClass_Address) { - hi_pc = dw_address_from_attrib(input, cu, hi_pc_attrib); + hi_pc = dw_address_from_tag_attrib_kind(input, cu, hi_pc_attrib); } else if (hi_pc_class == DW_AttribClass_Const) { - hi_pc = dw_const_u64_from_attrib(input, cu, hi_pc_attrib); + hi_pc = dw_const_u64_from_tag_attrib_kind(input, cu, hi_pc_attrib); hi_pc += lo_pc; } else { AssertAlways(!"undefined attrib encoding"); @@ -592,7 +592,7 @@ SLLStackPush(stack, f); \ DW_Tag tag = tag_node->tag; if (tag.kind == DW_TagKind_BaseType) { // extract encoding attribute - DW_ATE encoding = dw_const_u64_from_attrib(input, cu, tag, DW_AttribKind_Encoding); + DW_ATE encoding = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Encoding); // DW_ATE -> RDI_EvalTypeGroup switch (encoding) { @@ -601,7 +601,7 @@ SLLStackPush(stack, f); \ case DW_ATE_UnsignedChar: case DW_ATE_Unsigned: out = RDI_EvalTypeGroup_U; break; case DW_ATE_Float: { - U64 byte_size = dw_const_u64_from_attrib(input, cu, tag, DW_AttribKind_ByteSize); + U64 byte_size = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_ByteSize); switch (byte_size) { case 4: out = RDI_EvalTypeGroup_F32; break; case 8: out = RDI_EvalTypeGroup_F64; break; @@ -838,7 +838,7 @@ d2r_transpile_expression(Arena *arena, DW_Input *input, U64 image_base, U64 addr internal RDIM_Location * d2r_location_from_attrib(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 image_base, Arch arch, DW_Tag tag, DW_AttribKind kind) { - String8 expr = dw_exprloc_from_attrib(input, cu, tag, kind); + String8 expr = dw_exprloc_from_tag_attrib_kind(input, cu, tag, kind); RDIM_Location *location = d2r_transpile_expression(arena, input, image_base, cu->address_size, arch, cu->addr_lu, cu, expr); return location; } @@ -864,7 +864,7 @@ d2r_locset_from_attrib(Arena *arena, Temp scratch = scratch_begin(&arena, 1); // extract location list from attrib - DW_LocList loclist = dw_loclist_from_attrib(scratch.arena, input, cu, attrib); + DW_LocList loclist = dw_loclist_from_tag_attrib_kind(scratch.arena, input, cu, attrib); // convert location list to RDIM location set for (DW_LocNode *loc_n = loclist.first; loc_n != 0; loc_n = loc_n->next) { @@ -876,7 +876,7 @@ d2r_locset_from_attrib(Arena *arena, scratch_end(scratch); } else if (attrib_class == DW_AttribClass_ExprLoc) { // extract expression from attrib - String8 expr = dw_exprloc_from_attrib(input, cu, attrib); + String8 expr = dw_exprloc_from_tag_attrib_kind(input, cu, attrib); // convert expression and inherit life-time ranges from enclosed scope RDIM_Location *location = d2r_transpile_expression(arena, input, image_base, cu->address_size, arch, cu->addr_lu, cu, expr); @@ -1202,9 +1202,9 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) DW_LineTableParseResult *cu_line_tables = push_array(scratch.arena, DW_LineTableParseResult, cu_ranges.count); for (U64 cu_idx = 0; cu_idx < cu_ranges.count; ++cu_idx) { DW_CompUnit *cu = &cu_arr[cu_idx]; - String8 cu_stmt_list = dw_line_ptr_from_attrib(&input, cu, cu->tag, DW_AttribKind_StmtList); - String8 cu_dir = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_CompDir); - String8 cu_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_Name); + String8 cu_stmt_list = dw_line_ptr_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_StmtList); + String8 cu_dir = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_CompDir); + String8 cu_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Name); cu_line_tables[cu_idx] = dw_parsed_line_table_from_data(scratch.arena, cu_stmt_list, &input, cu_dir, cu_name, cu->address_size, cu->str_offsets_lu); } ProfEnd(); @@ -1327,8 +1327,8 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) // build tag hash table for abstract origin resolution cu->tag_ht = dw_make_tag_hash_table(comp_temp.arena, tag_tree); - String8 dwo_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_DwoName); - String8 gnu_dwo_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_GNU_DwoName); + String8 dwo_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_DwoName); + String8 gnu_dwo_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_GNU_DwoName); if (dwo_name.size || gnu_dwo_name.size || cu->dwo_id) { // TODO: report that we dont support DWO continue; @@ -1337,10 +1337,10 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) // get unit's contribution ranges RDIM_Rng1U64List cu_voff_ranges = d2r_voff_ranges_from_cu_info_off(cu_contrib_map, cu_ranges.v[cu_idx].min); - String8 cu_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_Name); - String8 cu_dir = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_CompDir); - String8 cu_prod = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_Producer); - DW_Language cu_lang = dw_const_u64_from_attrib(&input, cu, cu->tag, DW_AttribKind_Language); + String8 cu_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Name); + String8 cu_dir = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_CompDir); + String8 cu_prod = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Producer); + DW_Language cu_lang = dw_const_u64_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Language); RDIM_Unit *unit = rdim_unit_chunk_list_push(arena, &units, UNIT_CHUNK_CAP); unit->unit_name = cu_name; @@ -1376,9 +1376,9 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) } break; case DW_TagKind_ClassType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); + B32 is_decl = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteClass; @@ -1398,9 +1398,9 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) } break; case DW_TagKind_StructureType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); + B32 is_decl = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteStruct; @@ -1420,9 +1420,9 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) } break; case DW_TagKind_UnionType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); + B32 is_decl = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteUnion; @@ -1442,9 +1442,9 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) } break; case DW_TagKind_EnumerationType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); + B32 is_decl = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteEnum; @@ -1491,11 +1491,11 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) case DW_TagKind_Typedef: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Alias; - type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); } break; case DW_TagKind_BaseType: { - DW_ATE encoding = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_Encoding); + DW_ATE encoding = dw_const_u64_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Encoding); U64 byte_size = dw_byte_size_from_tag(&input, cu, tag); // convert base type encoding to RDI version @@ -1602,7 +1602,7 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Alias; - type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); type->direct_type = base_type; } break; case DW_TagKind_PointerType: { @@ -1751,7 +1751,7 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, parent->udt); member->kind = RDI_MemberKind_Base; member->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - member->off = safe_cast_u32(dw_const_u32_from_attrib(&input, cu, tag, DW_AttribKind_DataMemberLocation)); + member->off = safe_cast_u32(dw_const_u32_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_DataMemberLocation)); } break; case DW_TagKind_Enumerator: { DW_TagNode *parent_node = tag_stack->next->cur_node; @@ -1762,8 +1762,8 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) RDIM_Type *type = tag_stack->next->type; RDIM_UDTEnumVal *member = rdim_udt_push_enum_val(arena, &udts, type->udt); - member->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); - member->val = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_ConstValue); + member->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); + member->val = dw_const_u64_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_ConstValue); } break; case DW_TagKind_Member: { DW_TagNode *parent_node = tag_stack->next->cur_node; @@ -1784,9 +1784,9 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) RDIM_Type *type = tag_stack->next->type; RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, type->udt); member->kind = RDI_MemberKind_DataField; - member->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + member->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); member->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - member->off = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_DataMemberLocation); + member->off = dw_const_u64_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_DataMemberLocation); } break; case DW_TagKind_SubProgram: { DW_InlKind inl = dw_u64_from_attrib(&input, cu, tag, DW_AttribKind_Inline); @@ -1813,7 +1813,7 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) } // get frame base expression - String8 frame_base_expr = dw_exprloc_from_attrib(&input, cu, tag, DW_AttribKind_FrameBase); + String8 frame_base_expr = dw_exprloc_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_FrameBase); // get proc container symbol RDIM_Symbol *proc = rdim_symbol_chunk_list_push(arena, &procs, PROC_CHUNK_CAP ); @@ -1824,9 +1824,9 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) root_scope->symbol = proc; // fill out proc - proc->is_extern = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_External); - proc->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); - proc->link_name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_LinkageName); + proc->is_extern = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_External); + proc->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); + proc->link_name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_LinkageName); proc->type = proc_type; proc->container_symbol = 0; proc->container_type = container_type; @@ -1837,7 +1837,7 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; if (parent_tag_kind == DW_TagKind_ClassType || parent_tag_kind == DW_TagKind_StructureType) { RDI_MemberKind member_kind = RDI_MemberKind_NULL; - DW_VirtualityKind virtuality = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_Virtuality); + DW_VirtualityKind virtuality = dw_const_u64_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Virtuality); switch (virtuality) { case DW_VirtualityKind_None: member_kind = RDI_MemberKind_Method; break; case DW_VirtualityKind_Virtual: member_kind = RDI_MemberKind_VirtualMethod; break; @@ -1849,7 +1849,7 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, type->udt); member->kind = member_kind; member->type = type; - member->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + member->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); } else if (parent_tag_kind != DW_TagKind_CompileUnit) { //AssertAlways(!"unexpected tag"); } @@ -1887,7 +1887,7 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) // fill out inline site RDIM_InlineSite *inline_site = rdim_inline_site_chunk_list_push(arena, &inline_sites, INLINE_SITE_CHUNK_CAP); - inline_site->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + inline_site->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); inline_site->type = proc_type; inline_site->owner = owner; inline_site->line_table = 0; @@ -1898,7 +1898,7 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) root_scope->inline_site = inline_site; } break; case DW_TagKind_Variable: { - String8 name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + String8 name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); RDIM_Type *type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; @@ -1920,9 +1920,9 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) } RDIM_Symbol *gvar = rdim_symbol_chunk_list_push(arena, &gvars, GVAR_CHUNK_CAP); - gvar->is_extern = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_External); + gvar->is_extern = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_External); gvar->name = name; - gvar->link_name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_LinkageName); + gvar->link_name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_LinkageName); gvar->type = type; //gvar->locset = d2r_locset_from_attrib(arena, &input, cu, &scopes, global_scope, image_base, arch, tag, DW_AttribKind_Location); gvar->container_symbol = 0; @@ -1935,7 +1935,7 @@ d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) RDIM_Scope *scope = tag_stack->next->scope; RDIM_Local *param = rdim_scope_push_local(arena, &scopes, scope); param->kind = RDI_LocalKind_Parameter; - param->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + param->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); param->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); param->locset = d2r_var_locset_from_tag(arena, &input, cu, &scopes, scope, image_base, arch, tag); } else { diff --git a/src/raddump/raddump.c b/src/raddump/raddump.c index e9a72ce6..4454e53c 100644 --- a/src/raddump/raddump.c +++ b/src/raddump/raddump.c @@ -4947,7 +4947,7 @@ elf_print_dwarf_expressions(Arena *arena, String8List *out, String8 indent, Stri } else if (tag.kind == DW_TagKind_LexicalBlock || tag.kind == DW_TagKind_SubProgram) { ++lexical_block_depth; if (tag.kind == DW_TagKind_SubProgram) { - String8 expr = dw_exprloc_from_attrib(&dwarf_input, &cu, tag, DW_AttribKind_FrameBase); + String8 expr = dw_exprloc_from_tag_attrib_kind(&dwarf_input, &cu, tag, DW_AttribKind_FrameBase); if (expr.size > 0) { String8 expr_str = dw_format_expression_single_line(comp_temp.arena, expr, cu_base, cu.address_size, arch, cu.version, cu.ext, cu.format); } @@ -4955,7 +4955,7 @@ elf_print_dwarf_expressions(Arena *arena, String8List *out, String8 indent, Stri } else if (tag.kind == DW_Tag_VariaKindble || tag.kind == DW_Tag_FormalParameter) { #if 0 local_persist B32 is_global_var = 0; - String8 name = dw_string_from_attrib(&dwarf_input, &cu, tag, DW_AttribKind_Name); + String8 name = dw_string_from_tag_attrib_kind(&dwarf_input, &cu, tag, DW_AttribKind_Name); DW_Attrib *location_attrib = dw_attrib_from_tag(&dwarf_input, &cu, tag, DW_AttribKind_Location); DW_AttribClass value_class = dw_value_class_from_attrib(&cu, location_attrib); if (value_class != DW_AttribClass_Null) { @@ -4969,13 +4969,13 @@ elf_print_dwarf_expressions(Arena *arena, String8List *out, String8 indent, Stri rd_indent(); if (value_class == DW_AttribClass_LocListPtr || value_class == DW_AttribClass_LocList) { - DW_LocList location = dw_loclist_from_attrib(comp_temp.arena, &dwarf_input, &cu, location_attrib); + DW_LocList location = dw_loclist_from_tag_attrib_kind(comp_temp.arena, &dwarf_input, &cu, location_attrib); for (DW_LocNode *loc_n = location.first; loc_n != 0; loc_n = loc_n->next) { String8 expr_str = dw_format_expression_single_line(comp_temp.arena, loc_n->v.expr, cu_base, cu.address_size, arch, cu.version, cu.ext, cu.format); rd_printf("[%llx-%llx] %S", loc_n->v.range.min, loc_n->v.range.max, expr_str); } } else if (value_class == DW_AttribClass_ExprLoc) { - String8 expr = dw_exprloc_from_attrib(&dwarf_input, &cu, location_attrib); + String8 expr = dw_exprloc_from_tag_attrib_kind(&dwarf_input, &cu, location_attrib); String8 expr_str = dw_format_expression_single_line(comp_temp.arena, expr, cu_base, cu.address_size, arch, cu.version, cu.ext, cu.format); rd_printf("%S", expr_str); } @@ -4989,7 +4989,7 @@ elf_print_dwarf_expressions(Arena *arena, String8List *out, String8 indent, Stri Temp temp = temp_begin(comp_temp.arena); DW_Attrib *ranges_attrib = dw_attrib_from_tag(&dwarf_input, &cu, tag, DW_AttribKind_Ranges); if (ranges_attrib->attrib_kind == DW_AttribKind_Ranges) { - Rng1U64List ranges = dw_rnglist_from_attrib(temp.arena, &dwarf_input, &cu, ranges_attrib); + Rng1U64List ranges = dw_rnglist_from_tag_attrib_kind(temp.arena, &dwarf_input, &cu, ranges_attrib); } temp_end(temp); } diff --git a/src/rdi_from_dwarf/rdi_from_dwarf.c b/src/rdi_from_dwarf/rdi_from_dwarf.c index 78c17985..4bee8f72 100644 --- a/src/rdi_from_dwarf/rdi_from_dwarf.c +++ b/src/rdi_from_dwarf/rdi_from_dwarf.c @@ -78,7 +78,7 @@ d2r_type_from_attrib(Arena *arena, D2R_TypeTable *type_table, DW_Input *input, D if (value_class == DW_AttribClass_Reference) { // resolve reference - DW_Reference ref = dw_ref_from_attrib_ptr(input, cu, attrib); + DW_Reference ref = dw_ref_from_attrib(input, cu, attrib); // TODO: support for external compile unit references AssertAlways(ref.cu == cu); @@ -99,7 +99,7 @@ internal Rng1U64List d2r_range_list_from_tag(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 image_base, DW_Tag tag) { // collect non-contiguous range - Rng1U64List ranges = dw_rnglist_from_attrib(arena, input, cu, tag, DW_AttribKind_Ranges); + Rng1U64List ranges = dw_rnglist_from_tag_attrib_kind(arena, input, cu, tag, DW_AttribKind_Ranges); // debase ranges for (Rng1U64Node *range_n = ranges.first; range_n != 0; range_n = range_n->next) { @@ -114,14 +114,14 @@ d2r_range_list_from_tag(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 imag DW_Attrib *lo_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_LowPc); DW_Attrib *hi_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_HighPc); if (lo_pc_attrib->attrib_kind != DW_AttribKind_Null && hi_pc_attrib->attrib_kind != DW_AttribKind_Null) { - U64 lo_pc = dw_address_from_attrib_ptr(input, cu, lo_pc_attrib); + U64 lo_pc = dw_address_from_attrib(input, cu, lo_pc_attrib); U64 hi_pc; DW_AttribClass hi_pc_class = dw_value_class_from_attrib(cu, hi_pc_attrib); if (hi_pc_class == DW_AttribClass_Address) { - hi_pc = dw_address_from_attrib_ptr(input, cu, hi_pc_attrib); + hi_pc = dw_address_from_attrib(input, cu, hi_pc_attrib); } else if (hi_pc_class == DW_AttribClass_Const) { - hi_pc = dw_const_u64_from_attrib_ptr(input, cu, hi_pc_attrib); + hi_pc = dw_const_u64_from_attrib(input, cu, hi_pc_attrib); hi_pc += lo_pc; } else { AssertAlways(!"undefined attrib encoding"); @@ -592,7 +592,7 @@ SLLStackPush(stack, f); \ DW_Tag tag = tag_node->tag; if (tag.kind == DW_TagKind_BaseType) { // extract encoding attribute - DW_ATE encoding = dw_const_u64_from_attrib(input, cu, tag, DW_AttribKind_Encoding); + DW_ATE encoding = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Encoding); // DW_ATE -> RDI_EvalTypeGroup switch (encoding) { @@ -601,7 +601,7 @@ SLLStackPush(stack, f); \ case DW_ATE_UnsignedChar: case DW_ATE_Unsigned: out = RDI_EvalTypeGroup_U; break; case DW_ATE_Float: { - U64 byte_size = dw_const_u64_from_attrib(input, cu, tag, DW_AttribKind_ByteSize); + U64 byte_size = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_ByteSize); switch (byte_size) { case 4: out = RDI_EvalTypeGroup_F32; break; case 8: out = RDI_EvalTypeGroup_F64; break; @@ -838,7 +838,7 @@ d2r_transpile_expression(Arena *arena, DW_Input *input, U64 image_base, U64 addr internal RDIM_Location * d2r_location_from_attrib(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 image_base, Arch arch, DW_Tag tag, DW_AttribKind kind) { - String8 expr = dw_exprloc_from_attrib(input, cu, tag, kind); + String8 expr = dw_exprloc_from_tag_attrib_kind(input, cu, tag, kind); RDIM_Location *location = d2r_transpile_expression(arena, input, image_base, cu->address_size, arch, cu->addr_lu, cu, expr); return location; } @@ -864,7 +864,7 @@ d2r_locset_from_attrib(Arena *arena, Temp scratch = scratch_begin(&arena, 1); // extract location list from attrib - DW_LocList loclist = dw_loclist_from_attrib_ptr(scratch.arena, input, cu, attrib); + DW_LocList loclist = dw_loclist_from_attrib(scratch.arena, input, cu, attrib); // convert location list to RDIM location set for (DW_LocNode *loc_n = loclist.first; loc_n != 0; loc_n = loc_n->next) { @@ -876,7 +876,7 @@ d2r_locset_from_attrib(Arena *arena, scratch_end(scratch); } else if (attrib_class == DW_AttribClass_ExprLoc) { // extract expression from attrib - String8 expr = dw_exprloc_from_attrib_ptr(input, cu, attrib); + String8 expr = dw_exprloc_from_attrib(input, cu, attrib); // convert expression and inherit life-time ranges from enclosed scope RDIM_Location *location = d2r_transpile_expression(arena, input, image_base, cu->address_size, arch, cu->addr_lu, cu, expr); @@ -1211,9 +1211,9 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) DW_LineTableParseResult *cu_line_tables = push_array(scratch.arena, DW_LineTableParseResult, cu_ranges.count); for (U64 cu_idx = 0; cu_idx < cu_ranges.count; ++cu_idx) { DW_CompUnit *cu = &cu_arr[cu_idx]; - String8 cu_stmt_list = dw_line_ptr_from_attrib(&input, cu, cu->tag, DW_AttribKind_StmtList); - String8 cu_dir = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_CompDir); - String8 cu_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_Name); + String8 cu_stmt_list = dw_line_ptr_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_StmtList); + String8 cu_dir = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_CompDir); + String8 cu_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Name); cu_line_tables[cu_idx] = dw_parsed_line_table_from_data(scratch.arena, cu_stmt_list, &input, cu_dir, cu_name, cu->address_size, cu->str_offsets_lu); } ProfEnd(); @@ -1336,8 +1336,8 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) // build tag hash table for abstract origin resolution cu->tag_ht = dw_make_tag_hash_table(comp_temp.arena, tag_tree); - String8 dwo_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_DwoName); - String8 gnu_dwo_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_GNU_DwoName); + String8 dwo_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_DwoName); + String8 gnu_dwo_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_GNU_DwoName); if (dwo_name.size || gnu_dwo_name.size || cu->dwo_id) { // TODO: report that we dont support DWO continue; @@ -1346,10 +1346,10 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) // get unit's contribution ranges RDIM_Rng1U64ChunkList cu_voff_ranges = d2r_voff_ranges_from_cu_info_off(cu_contrib_map, cu_ranges.v[cu_idx].min); - String8 cu_name = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_Name); - String8 cu_dir = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_CompDir); - String8 cu_prod = dw_string_from_attrib(&input, cu, cu->tag, DW_AttribKind_Producer); - DW_Language cu_lang = dw_const_u64_from_attrib(&input, cu, cu->tag, DW_AttribKind_Language); + String8 cu_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Name); + String8 cu_dir = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_CompDir); + String8 cu_prod = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Producer); + DW_Language cu_lang = dw_const_u64_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Language); RDIM_Unit *unit = rdim_unit_chunk_list_push(arena, &units, UNIT_CHUNK_CAP); unit->unit_name = cu_name; @@ -1385,9 +1385,9 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) } break; case DW_TagKind_ClassType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); + B32 is_decl = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteClass; @@ -1407,9 +1407,9 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) } break; case DW_TagKind_StructureType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); + B32 is_decl = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteStruct; @@ -1429,9 +1429,9 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) } break; case DW_TagKind_UnionType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); + B32 is_decl = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteUnion; @@ -1451,9 +1451,9 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) } break; case DW_TagKind_EnumerationType: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - B32 is_decl = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_Declaration); + B32 is_decl = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Declaration); if (is_decl) { type->kind = RDI_TypeKind_IncompleteEnum; @@ -1500,11 +1500,11 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) case DW_TagKind_Typedef: { RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Alias; - type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); } break; case DW_TagKind_BaseType: { - DW_ATE encoding = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_Encoding); + DW_ATE encoding = dw_const_u64_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Encoding); U64 byte_size = dw_byte_size_from_tag(&input, cu, tag); // convert base type encoding to RDI version @@ -1611,7 +1611,7 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); type->kind = RDI_TypeKind_Alias; - type->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); type->direct_type = base_type; } break; case DW_TagKind_PointerType: { @@ -1760,7 +1760,7 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, parent->udt); member->kind = RDI_MemberKind_Base; member->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - member->off = safe_cast_u32(dw_const_u32_from_attrib(&input, cu, tag, DW_AttribKind_DataMemberLocation)); + member->off = safe_cast_u32(dw_const_u32_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_DataMemberLocation)); } break; case DW_TagKind_Enumerator: { DW_TagNode *parent_node = tag_stack->next->cur_node; @@ -1771,8 +1771,8 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) RDIM_Type *type = tag_stack->next->type; RDIM_UDTEnumVal *member = rdim_udt_push_enum_val(arena, &udts, type->udt); - member->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); - member->val = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_ConstValue); + member->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); + member->val = dw_const_u64_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_ConstValue); } break; case DW_TagKind_Member: { DW_TagNode *parent_node = tag_stack->next->cur_node; @@ -1793,9 +1793,9 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) RDIM_Type *type = tag_stack->next->type; RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, type->udt); member->kind = RDI_MemberKind_DataField; - member->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + member->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); member->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - member->off = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_DataMemberLocation); + member->off = dw_const_u64_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_DataMemberLocation); } break; case DW_TagKind_SubProgram: { DW_InlKind inl = dw_u64_from_attrib(&input, cu, tag, DW_AttribKind_Inline); @@ -1822,7 +1822,7 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) } // get frame base expression - String8 frame_base_expr = dw_exprloc_from_attrib(&input, cu, tag, DW_AttribKind_FrameBase); + String8 frame_base_expr = dw_exprloc_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_FrameBase); // get proc container symbol RDIM_Symbol *proc = rdim_symbol_chunk_list_push(arena, &procs, PROC_CHUNK_CAP ); @@ -1833,9 +1833,9 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) root_scope->symbol = proc; // fill out proc - proc->is_extern = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_External); - proc->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); - proc->link_name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_LinkageName); + proc->is_extern = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_External); + proc->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); + proc->link_name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_LinkageName); proc->type = proc_type; proc->container_symbol = 0; proc->container_type = container_type; @@ -1846,7 +1846,7 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; if (parent_tag_kind == DW_TagKind_ClassType || parent_tag_kind == DW_TagKind_StructureType) { RDI_MemberKind member_kind = RDI_MemberKind_NULL; - DW_VirtualityKind virtuality = dw_const_u64_from_attrib(&input, cu, tag, DW_AttribKind_Virtuality); + DW_VirtualityKind virtuality = dw_const_u64_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Virtuality); switch (virtuality) { case DW_VirtualityKind_None: member_kind = RDI_MemberKind_Method; break; case DW_VirtualityKind_Virtual: member_kind = RDI_MemberKind_VirtualMethod; break; @@ -1858,7 +1858,7 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, type->udt); member->kind = member_kind; member->type = type; - member->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + member->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); } else if (parent_tag_kind != DW_TagKind_CompileUnit) { //AssertAlways(!"unexpected tag"); } @@ -1896,7 +1896,7 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) // fill out inline site RDIM_InlineSite *inline_site = rdim_inline_site_chunk_list_push(arena, &inline_sites, INLINE_SITE_CHUNK_CAP); - inline_site->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + inline_site->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); inline_site->type = proc_type; inline_site->owner = owner; inline_site->line_table = 0; @@ -1907,7 +1907,7 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) root_scope->inline_site = inline_site; } break; case DW_TagKind_Variable: { - String8 name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + String8 name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); RDIM_Type *type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; @@ -1929,9 +1929,9 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) } RDIM_Symbol *gvar = rdim_symbol_chunk_list_push(arena, &gvars, GVAR_CHUNK_CAP); - gvar->is_extern = dw_flag_from_attrib(&input, cu, tag, DW_AttribKind_External); + gvar->is_extern = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_External); gvar->name = name; - gvar->link_name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_LinkageName); + gvar->link_name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_LinkageName); gvar->type = type; //gvar->locset = d2r_locset_from_attrib(arena, &input, cu, &scopes, global_scope, image_base, arch, tag, DW_AttribKind_Location); gvar->container_symbol = 0; @@ -1944,7 +1944,7 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) RDIM_Scope *scope = tag_stack->next->scope; RDIM_Local *param = rdim_scope_push_local(arena, &scopes, scope); param->kind = RDI_LocalKind_Parameter; - param->name = dw_string_from_attrib(&input, cu, tag, DW_AttribKind_Name); + param->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); param->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); param->locset = d2r_var_locset_from_tag(arena, &input, cu, &scopes, scope, image_base, arch, tag); } else { From 7c35028a6b7f37b11144fb902787bc0338ee949b Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 10:29:47 -0700 Subject: [PATCH 020/372] .debug_info dumping pass --- src/dwarf/dwarf.c | 88 +- src/dwarf/dwarf_dump.c | 302 ++-- src/dwarf/dwarf_dump.h | 1 - src/radcon/radcon_coff.c | 80 - src/radcon/radcon_coff.h | 12 - src/radcon/radcon_cv.c | 252 --- src/radcon/radcon_cv.h | 10 - src/radcon/radcon_dwarf.c | 2150 ------------------------- src/radcon/radcon_dwarf.h | 42 - src/radcon/radcon_elf.c | 10 - src/radcon/radcon_elf.h | 9 - src/radcon/radcon_pdb.c | 3190 ------------------------------------- src/radcon/radcon_pdb.h | 238 --- 13 files changed, 178 insertions(+), 6206 deletions(-) delete mode 100644 src/radcon/radcon_coff.c delete mode 100644 src/radcon/radcon_coff.h delete mode 100644 src/radcon/radcon_cv.c delete mode 100644 src/radcon/radcon_cv.h delete mode 100644 src/radcon/radcon_dwarf.c delete mode 100644 src/radcon/radcon_dwarf.h delete mode 100644 src/radcon/radcon_elf.c delete mode 100644 src/radcon/radcon_elf.h delete mode 100644 src/radcon/radcon_pdb.c delete mode 100644 src/radcon/radcon_pdb.h diff --git a/src/dwarf/dwarf.c b/src/dwarf/dwarf.c index bf3bb821..47a555e2 100644 --- a/src/dwarf/dwarf.c +++ b/src/dwarf/dwarf.c @@ -447,54 +447,60 @@ dw_string_from_tag_kind(Arena *arena, DW_TagKind kind) internal String8 dw_string_from_attrib_kind(Arena *arena, DW_Version ver, DW_Ext ext, DW_AttribKind kind) { -#define X(_N,...) case DW_AttribKind_##_N: return str8_lit(Stringify(_N)); +#define X(_N,...) case DW_AttribKind_##_N:{result = str8_lit(Stringify(_N));}break; + String8 result = {0}; - while (ext) { - U64 z = 64-clz64(ext); - if (z == 0) { - break; - } - U64 flag = 1 << (z-1); - ext &= ~flag; - - switch (flag) { - case DW_Ext_Null: break; - case DW_Ext_GNU: switch (kind) { DW_AttribKind_GNU_XList(X) } break; - case DW_Ext_LLVM: switch (kind) { DW_AttribKind_LLVM_XList(X) } break; - case DW_Ext_APPLE: switch (kind) { DW_AttribKind_APPLE_XList(X) } break; - case DW_Ext_MIPS: switch (kind) { DW_AttribKind_MIPS_XList(X) } break; - default: InvalidPath; break; + //- rjf: try extensions + if(result.size != 0) + { + while(ext) + { + U64 z = 64-clz64(ext); + if(z == 0) + { + break; + } + U64 flag = 1 << (z-1); + ext &= ~flag; + switch(flag) + { + default:{}break; + case DW_Ext_Null: break; + case DW_Ext_GNU: switch (kind) { DW_AttribKind_GNU_XList(X) } break; + case DW_Ext_LLVM: switch (kind) { DW_AttribKind_LLVM_XList(X) } break; + case DW_Ext_APPLE: switch (kind) { DW_AttribKind_APPLE_XList(X) } break; + case DW_Ext_MIPS: switch (kind) { DW_AttribKind_MIPS_XList(X) } break; + } } } - switch (ver) { - case DW_Version_5: { - switch (kind) { - DW_AttribKind_V5_XList(X) + //- rjf: try version + if(result.size == 0) + { + for(U64 retry = 0; retry < 2; retry += 1) + { + DW_Version version = retry ? DW_Version_5 : ver; + switch(version) + { + case DW_Version_5: { switch(kind) { DW_AttribKind_V5_XList(X) } } // fall-through + case DW_Version_4: { switch(kind) { DW_AttribKind_V4_XList(X) } } // fall-through + case DW_Version_3: { switch(kind) { DW_AttribKind_V3_XList(X) } } // fall-through + case DW_Version_2: { switch(kind) { DW_AttribKind_V2_XList(X) } } // fall-through + case DW_Version_1: {}break; + case DW_Version_Null:{}break; + default:{}break; } - } // fall-through - case DW_Version_4: { - switch (kind) { - DW_AttribKind_V4_XList(X) - } - } // fall-through - case DW_Version_3: { - switch (kind) { - DW_AttribKind_V3_XList(X) - } - } // fall-through - case DW_Version_2: { - switch (kind) { - DW_AttribKind_V2_XList(X) - } - } // fall-through - case DW_Version_1: { - } // fall-through - case DW_Version_Null: break; + } } + + //- rjf: fallback + if(result.size == 0) + { + result = push_str8f(arena, "#%u", kind); + } + #undef X - - return str8_zero(); + return result; } internal String8 diff --git a/src/dwarf/dwarf_dump.c b/src/dwarf/dwarf_dump.c index 9822508c..08e9fb54 100644 --- a/src/dwarf/dwarf_dump.c +++ b/src/dwarf/dwarf_dump.c @@ -625,12 +625,6 @@ dw_print_eh_frame(Arena *arena, String8List *out, String8 indent, String8 raw_eh scratch_end(scratch); } -internal void -dw_print_debug_info(Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, Arch arch, B32 relaxed) -{ - -} - internal void dw_print_debug_abbrev(Arena *arena, String8List *out, String8 indent, DW_Input *input) { @@ -1927,7 +1921,7 @@ dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableI dw_read_line_vm_header(unit_temp.arena, stmt_list, 0, input, unit_dir, unit_name, unit.address_size, unit.str_offsets_lu, &line_vm); //- rjf: log top-level unit info - dumpf("unit: // compile_unit[%u]\n{\n", unit_idx); + dumpf("unit: // compile_unit[%I64u]\n{\n", unit_idx); dumpf(" version: %u\n", unit.version); dumpf(" address_size: %I64u\n", unit.address_size); dumpf(" abbrev_off: 0x%I64x\n", unit.abbrev_off); @@ -1935,213 +1929,179 @@ dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableI //- rjf: log tags S64 tag_depth = 0; - for(U64 info_off = unit.first_tag_info_off; info_off < unit.info_range.max;) + U64 tag_idx = 0; + for(U64 info_off = unit.first_tag_info_off; info_off < unit.info_range.max; tag_idx += 1) { - // rjf: unpack tag Temp tag_temp = temp_begin(scratch.arena); + + // rjf: unpack tag + String8 tag_indent = str8_prefix(indent, (tag_depth+1)*2); U64 tag_info_off = info_off; DW_Tag tag = {0}; info_off += dw_read_tag_cu(tag_temp.arena, input, &unit, tag_info_off, &tag); - String8 tag_str = dw_string_from_tag_kind(tag_temp.arena, tag.kind); - rd_printf("<%x><%llx> DW_TagKind_%S (Abbrev Number: %llu)", tag_depth, tag_info_off, tag_str, tag.abbrev_id); - rd_indent(); + // rjf: log top-level tag info + dumpf("%Stag: // compile_unit[%I64u].tag[%I64u]\n%S{\n", tag_indent, unit_idx, tag_idx, tag_indent); + dumpf("%S kind: %S\n", tag_indent, dw_string_from_tag_kind(tag_temp.arena, tag.kind)); + dumpf("%S info_off: 0x%I64x\n", tag_indent, tag_info_off); + dumpf("%S abbrev_id: %I64u\n", tag_indent, tag.abbrev_id); - // parse attributes - for (DW_AttribNode *attrib_n = tag.attribs.first; attrib_n != 0; attrib_n = attrib_n->next) { + // rjf: log attribs + for(DW_AttribNode *attrib_n = tag.attribs.first; + attrib_n != 0; + attrib_n = attrib_n->next) + { Temp attrib_temp = temp_begin(tag_temp.arena); - DW_Attrib *attrib = &attrib_n->v; - String8List attrib_list = {0}; + // rjf: log attrib begin + dumpf("%S attrib: {"); - // attribute .debug_info offset - str8_list_pushf(attrib_temp.arena, &attrib_list, "<%llx> ", attrib->info_off); - - // attribute kind - String8 attrib_kind_str = dw_string_from_attrib_kind(attrib_temp.arena, unit.version, unit.ext, attrib->attrib_kind); - if (attrib_kind_str.size == 0) { - if (relaxed) { - attrib_kind_str = dw_string_from_attrib_kind(attrib_temp.arena, DW_Version_Last, unit.ext, attrib->attrib_kind); - } - } - if (attrib_kind_str.size == 0) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "Unknown(%#x) ", attrib->attrib_kind); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "DW_AttribKind_%-20S ", attrib_kind_str); - } - - // form kind - String8 form_kind_str = dw_string_from_form_kind(scratch.arena, unit.version, attrib->form_kind); - str8_list_pushf(attrib_temp.arena, &attrib_list, "DW_Form_%-15S", form_kind_str); + // rjf: log basic info + dumpf(" off: 0x%I64x", attrib->info_off); + dumpf(", kind: %S", dw_string_from_attrib_kind(attrib_temp.arena, unit.version, unit.ext, attrib->attrib_kind)); + dumpf(", form_kind: %S", dw_string_from_form_kind(attrib_temp.arena, unit.version, attrib->form_kind)); + // rjf: log attrib's value based on vlass + dumpf(", "); DW_AttribClass value_class = dw_value_class_from_attrib(&unit, attrib); - switch (value_class) { - default: { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unknown value class"); - } break; - case DW_AttribClass_Undefined: { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: undefined value class"); - } break; - case DW_AttribClass_Address: { - U64 address = dw_address_from_attrib(input, &unit, attrib); - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", address); - } break; - case DW_AttribClass_Block: { + switch(value_class) + { + default: {dumpf("`unknown value class`");}break; + case DW_AttribClass_Undefined: {dumpf("`undefined value class`");}break; + case DW_AttribClass_Address: {dumpf("0x%I64x", dw_address_from_attrib(input, &unit, attrib));}break; + case DW_AttribClass_Const: {dumpf("0x%I64x", dw_const_u64_from_attrib(input, &unit, attrib));}break; + case DW_AttribClass_Block: + { String8 block = dw_block_from_attrib(input, &unit, attrib); String8List block_strs = numeric_str8_list_from_data(attrib_temp.arena, 16, block, 1); String8 block_str = str8_list_join(attrib_temp.arena, &block_strs, &(StringJoin){.sep = str8_lit(", ")}); - str8_list_push(attrib_temp.arena, &attrib_list, block_str); - } break; - case DW_AttribClass_Const: { - U64 constant = dw_const_u64_from_attrib(input, &unit, attrib); - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", constant); - } break; - case DW_AttribClass_ExprLoc: { - String8 exprloc = dw_exprloc_from_attrib(input, &unit, attrib); + dump(block_str); + }break; + case DW_AttribClass_ExprLoc: + { + String8 exprloc = dw_exprloc_from_attrib(input, &unit, attrib); String8 exprloc_str = dw_format_expression_single_line(attrib_temp.arena, exprloc, unit_range.min, unit.address_size, arch, unit.version, unit.ext, unit.format); - str8_list_push(attrib_temp.arena, &attrib_list, exprloc_str); - } break; - case DW_AttribClass_Flag: { + dump(exprloc_str); + }break; + case DW_AttribClass_Flag: + { B32 flag = dw_flag_from_attrib(input, &unit, attrib); - str8_list_pushf(attrib_temp.arena, &attrib_list, "%llu (%s)", flag, flag == 0 ? "false" : "true"); - } break; - case DW_AttribClass_LinePtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, unit.version, attrib->form_kind)); + dumpf("%llu: %s", flag, flag == 0 ? "false" : "true"); + }break; + case DW_AttribClass_LinePtr: + case DW_AttribClass_LocListPtr: + case DW_AttribClass_MacPtr: + case DW_AttribClass_RngListPtr: + case DW_AttribClass_RngList: + case DW_AttribClass_StrOffsetsPtr: + case DW_AttribClass_AddrPtr: + { + if(attrib->form_kind == DW_Form_SecOffset) + { + dumpf("0x%I64x", attrib->form.sec_offset); } - } break; - case DW_AttribClass_LocListPtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, unit.version, attrib->form_kind)); + else + { + dumpf("`unexpected form kind %S`", dw_string_from_form_kind(attrib_temp.arena, unit.version, attrib->form_kind)); } - } break; - case DW_AttribClass_MacPtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "\?\?\?"); - } - } break; - case DW_AttribClass_RngListPtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "\?\?\?"); - } - } break; - case DW_AttribClass_RngList: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "\?\?\?"); - } - } break; - case DW_AttribClass_Reference: { - if (attrib->form_kind == DW_Form_Ref1 || - attrib->form_kind == DW_Form_Ref2 || - attrib->form_kind == DW_Form_Ref4 || - attrib->form_kind == DW_Form_Ref8 || - attrib->form_kind == DW_Form_RefUData) { + }break; + case DW_AttribClass_Reference: + { + if(attrib->form_kind == DW_Form_Ref1 || + attrib->form_kind == DW_Form_Ref2 || + attrib->form_kind == DW_Form_Ref4 || + attrib->form_kind == DW_Form_Ref8 || + attrib->form_kind == DW_Form_RefUData) + { U64 info_off = unit.info_range.min + attrib->form.ref; - str8_list_pushf(attrib_temp.arena, &attrib_list, "<%llx>", info_off); - if (!contains_1u64(unit.info_range, attrib->form.ref)) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "(ERROR: out of bounds reference)"); + dumpf("0x%I64x", info_off); + if(!contains_1u64(unit.info_range, attrib->form.ref)) + { + dumpf(": `(out of this unit's bounds)`"); } - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.ref); } - } break; - case DW_AttribClass_String: { - if (attrib->form_kind == DW_Form_Strp) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); + else + { + dumpf("0x%I64x", attrib->form.ref); + } + }break; + case DW_AttribClass_String: + { + if(attrib->form_kind == DW_Form_Strp) + { + dumpf("0x%I64x", attrib->form.sec_offset); } String8 string = dw_string_from_attrib(input, &unit, attrib); - str8_list_pushf(attrib_temp.arena, &attrib_list, "(%S)", string); - } break; - case DW_AttribClass_StrOffsetsPtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, unit.version, attrib->form_kind)); - } - } break; - case DW_AttribClass_AddrPtr: { - if (attrib->form_kind == DW_Form_SecOffset) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "%#llx", attrib->form.sec_offset); - } else { - str8_list_pushf(attrib_temp.arena, &attrib_list, "ERROR: unexpected form %S", dw_string_from_form_kind(attrib_temp.arena, unit.version, attrib->form_kind)); - } - } break; + dumpf(": \"%S\"", string); + }break; } - String8 attrib_str = {0}; - switch (attrib->attrib_kind) { - case DW_AttribKind_Language: { + // rjf: extend attrib's value with enum info + switch(attrib->attrib_kind) + { + case DW_AttribKind_Language: + { DW_Language lang = dw_const_u64_from_attrib(input, &unit, attrib); - attrib_str = dw_string_from_language(attrib_temp.arena, lang); - } break; - case DW_AttribKind_DeclFile: { + dumpf(": %S", dw_string_from_language(attrib_temp.arena, lang)); + }break; + case DW_AttribKind_DeclFile: + { U64 file_idx = dw_const_u64_from_attrib(input, &unit, attrib); DW_LineFile *file = dw_file_from_attrib(&unit, &line_vm, attrib); - attrib_str = str8_lit("\?\?\?"); - if (file) { - attrib_str = dw_path_from_file(attrib_temp.arena, &line_vm, file); + if(file != 0) + { + dumpf(": %S", dw_path_from_file(attrib_temp.arena, &line_vm, file)); } - } break; - case DW_AttribKind_DeclLine: { - U64 line = dw_const_u64_from_attrib(input, &unit, attrib); - attrib_str = push_str8f(attrib_temp.arena, "%llu", line); - } break; - case DW_AttribKind_Inline: { + }break; + case DW_AttribKind_DeclLine: + { + dumpf(": %I64u", dw_const_u64_from_attrib(input, &unit, attrib)); + }break; + case DW_AttribKind_Inline: + { DW_InlKind inl = dw_const_u64_from_attrib(input, &unit, attrib); - attrib_str = dw_string_from_inl(attrib_temp.arena, inl); - } break; - case DW_AttribKind_Accessibility: { + dumpf(": %S", dw_string_from_inl(attrib_temp.arena, inl)); + }break; + case DW_AttribKind_Accessibility: + { DW_AccessKind access = dw_const_u64_from_attrib(input, &unit, attrib); - attrib_str = dw_string_from_access_kind(attrib_temp.arena, access); - } break; - case DW_AttribKind_CallingConvention: { + dumpf(": %S", dw_string_from_access_kind(attrib_temp.arena, access)); + }break; + case DW_AttribKind_CallingConvention: + { DW_CallingConventionKind calling_convetion = dw_const_u64_from_attrib(input, &unit, attrib); - attrib_str = dw_string_from_calling_convetion(attrib_temp.arena, calling_convetion); - } break; - case DW_AttribKind_Encoding: { + dumpf(": %S", dw_string_from_calling_convetion(attrib_temp.arena, calling_convetion)); + }break; + case DW_AttribKind_Encoding: + { DW_ATE encoding = dw_const_u64_from_attrib(input, &unit, attrib); - attrib_str = dw_string_from_attrib_type_encoding(attrib_temp.arena, encoding); - } break; + dumpf(": %S", dw_string_from_attrib_type_encoding(attrib_temp.arena, encoding)); + }break; } - if (attrib_str.size) { - str8_list_pushf(attrib_temp.arena, &attrib_list, "(%S)", attrib_str); - } - String8 print = str8_list_join(attrib_temp.arena, &attrib_list, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", print); + // rjf: log attrib end + dumpf(" }\n"); temp_end(attrib_temp); } - B32 is_ender_tag = tag.abbrev_id == 0; - if (tag.has_children) { - if (is_ender_tag) { - rd_errorf("null-tag cannot have children"); - } - rd_indent(); - tag_depth += 1; - } - if (is_ender_tag) { - if (tag_depth == 0) { - rd_errorf("malformed data detected, too many null tags"); - } else { - rd_unindent(); - tag_depth -= 1; - } + // rjf: log tag closes + if(!tag.has_children || tag.abbrev_id == 0) + { + dumpf("%S}\n", tag_indent); + } + + // rjf: indent/unindent + if(tag.has_children) + { + tag_depth += 1; + } + if(tag.abbrev_id) + { + tag_depth -= 1; } - rd_unindent(); temp_end(tag_temp); } temp_end(unit_temp); diff --git a/src/dwarf/dwarf_dump.h b/src/dwarf/dwarf_dump.h index 4877b18e..88d8544c 100644 --- a/src/dwarf/dwarf_dump.h +++ b/src/dwarf/dwarf_dump.h @@ -58,7 +58,6 @@ internal String8 dw_format_eh_ptr_enc (Arena *arena, DW_EhPtrEnc internal void dw_print_cfi_program (Arena *arena, String8List *out, String8 indent, String8 raw_data, DW_CIEUnpacked *cie, DW_EhPtrCtx *ptr_ctx, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); internal void dw_print_eh_frame (Arena *arena, String8List *out, String8 indent, String8 raw_eh_frame, Arch arch, DW_Version ver, DW_Ext ext, DW_EhPtrCtx *ptr_ctx); -internal void dw_print_debug_info (Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, Arch arch, B32 relaxed); internal void dw_print_debug_abbrev (Arena *arena, String8List *out, String8 indent, DW_Input *input); internal void dw_print_debug_line (Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, B32 relaxed); internal void dw_print_debug_str (Arena *arena, String8List *out, String8 indent, DW_Input *input); diff --git a/src/radcon/radcon_coff.c b/src/radcon/radcon_coff.c deleted file mode 100644 index 7ce5b4bb..00000000 --- a/src/radcon/radcon_coff.c +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -internal RDI_Arch -c2r_rdi_arch_from_coff_machine(COFF_MachineType machine) -{ - switch (machine) { - case COFF_MachineType_X86: return RDI_Arch_X86; - case COFF_MachineType_X64: return RDI_Arch_X64; - - case COFF_MachineType_Unknown: - case COFF_MachineType_Am33: - case COFF_MachineType_Arm: - case COFF_MachineType_Arm64: - case COFF_MachineType_ArmNt: - case COFF_MachineType_Ebc: - case COFF_MachineType_Ia64: - case COFF_MachineType_M32R: - case COFF_MachineType_Mips16: - case COFF_MachineType_MipsFpu: - case COFF_MachineType_MipsFpu16: - case COFF_MachineType_PowerPc: - case COFF_MachineType_PowerPcFp: - case COFF_MachineType_R4000: - case COFF_MachineType_RiscV32: - case COFF_MachineType_RiscV64: - case COFF_MachineType_Sh3: - case COFF_MachineType_Sh3Dsp: - case COFF_MachineType_Sh4: - case COFF_MachineType_Sh5: - case COFF_MachineType_Thumb: - case COFF_MachineType_WceMipsV2: - NotImplemented; - default: - return RDI_Arch_NULL; - } -} - -internal RDI_BinarySectionFlags -c2r_rdi_binary_section_flags_from_coff_section_flags(COFF_SectionFlags flags) -{ - RDI_BinarySectionFlags result = 0; - if(flags & COFF_SectionFlag_MemRead) - { - result |= RDI_BinarySectionFlag_Read; - } - if(flags & COFF_SectionFlag_MemWrite) - { - result |= RDI_BinarySectionFlag_Write; - } - if(flags & COFF_SectionFlag_MemExecute) - { - result |= RDI_BinarySectionFlag_Execute; - } - return(result); -} - -internal RDIM_BinarySectionList -c2r_rdi_binary_sections_from_coff_sections(Arena *arena, String8 image_data, String8 string_table, U64 sectab_count, COFF_SectionHeader *sectab) -{ - ProfBeginFunction(); - - RDIM_BinarySectionList binary_sections = {0}; - - for (U64 isec = 0; isec < sectab_count; ++isec) { - COFF_SectionHeader *coff_sec = §ab[isec]; - RDIM_BinarySection *sec = rdim_binary_section_list_push(arena, &binary_sections); - - sec->name = coff_name_from_section_header(string_table, coff_sec); - sec->flags = c2r_rdi_binary_section_flags_from_coff_section_flags(coff_sec->flags); - sec->voff_first = coff_sec->voff; - sec->voff_opl = coff_sec->voff + coff_sec->vsize; - sec->foff_first = coff_sec->foff; - sec->foff_opl = coff_sec->foff + coff_sec->fsize; - } - - ProfEnd(); - return binary_sections; -} - diff --git a/src/radcon/radcon_coff.h b/src/radcon/radcon_coff.h deleted file mode 100644 index 1b29c820..00000000 --- a/src/radcon/radcon_coff.h +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef RADCON_COFF_H -#define RADCON_COFF_H - -internal RDI_Arch c2r_rdi_arch_from_coff_machine(COFF_MachineType machine); -internal RDI_BinarySectionFlags c2r_rdi_binary_section_flags_from_coff_section_flags(COFF_SectionFlags flags); -internal RDIM_BinarySectionList c2r_rdi_binary_sections_from_coff_sections(Arena *arena, String8 image_data, String8 string_table, U64 sectab_count, COFF_SectionHeader *sectab); - -#endif // RADCON_COFF_H - diff --git a/src/radcon/radcon_cv.c b/src/radcon/radcon_cv.c deleted file mode 100644 index 6b687feb..00000000 --- a/src/radcon/radcon_cv.c +++ /dev/null @@ -1,252 +0,0 @@ -//////////////////////////////// -//~ rjf: CodeView <-> RDI Canonical Conversions - -internal RDI_Arch -cv2r_rdi_arch_from_cv_arch(CV_Arch cv_arch) -{ - RDI_Arch result = 0; - switch(cv_arch) - { - case CV_Arch_8086: result = RDI_Arch_X86; break; - case CV_Arch_X64: result = RDI_Arch_X64; break; - //case CV_Arch_8080: break; - //case CV_Arch_80286: break; - //case CV_Arch_80386: break; - //case CV_Arch_80486: break; - //case CV_Arch_PENTIUM: break; - //case CV_Arch_PENTIUMII: break; - //case CV_Arch_PENTIUMIII: break; - //case CV_Arch_MIPS: break; - //case CV_Arch_MIPS16: break; - //case CV_Arch_MIPS32: break; - //case CV_Arch_MIPS64: break; - //case CV_Arch_MIPSI: break; - //case CV_Arch_MIPSII: break; - //case CV_Arch_MIPSIII: break; - //case CV_Arch_MIPSIV: break; - //case CV_Arch_MIPSV: break; - //case CV_Arch_M68000: break; - //case CV_Arch_M68010: break; - //case CV_Arch_M68020: break; - //case CV_Arch_M68030: break; - //case CV_Arch_M68040: break; - //case CV_Arch_ALPHA: break; - //case CV_Arch_ALPHA_21164: break; - //case CV_Arch_ALPHA_21164A: break; - //case CV_Arch_ALPHA_21264: break; - //case CV_Arch_ALPHA_21364: break; - //case CV_Arch_PPC601: break; - //case CV_Arch_PPC603: break; - //case CV_Arch_PPC604: break; - //case CV_Arch_PPC620: break; - //case CV_Arch_PPCFP: break; - //case CV_Arch_PPCBE: break; - //case CV_Arch_SH3: break; - //case CV_Arch_SH3E: break; - //case CV_Arch_SH3DSP: break; - //case CV_Arch_SH4: break; - //case CV_Arch_SHMEDIA: break; - //case CV_Arch_ARM3: break; - //case CV_Arch_ARM4: break; - //case CV_Arch_ARM4T: break; - //case CV_Arch_ARM5: break; - //case CV_Arch_ARM5T: break; - //case CV_Arch_ARM6: break; - //case CV_Arch_ARM_XMAC: break; - //case CV_Arch_ARM_WMMX: break; - //case CV_Arch_ARM7: break; - //case CV_Arch_OMNI: break; - //case CV_Arch_IA64_1: break; - //case CV_Arch_IA64_2: break; - //case CV_Arch_CEE: break; - //case CV_Arch_AM33: break; - //case CV_Arch_M32R: break; - //case CV_Arch_TRICORE: break; - //case CV_Arch_EBC: break; - //case CV_Arch_THUMB: break; - //case CV_Arch_ARMNT: break; - //case CV_Arch_ARM64: break; - //case CV_Arch_D3D11_SHADER: break; - } - return(result); -} - -internal RDI_RegCode -cv2r_rdi_reg_code_from_cv_reg_code(RDI_Arch arch, CV_Reg reg_code) -{ - RDI_RegCode result = 0; - switch(arch) - { - case RDI_Arch_X86: - { - switch(reg_code) - { -#define X(CVN,C,RDN,BP,BZ) case C: result = RDI_RegCodeX86_##RDN; break; - CV_Reg_X86_XList(X) -#undef X - } - }break; - case RDI_Arch_X64: - { - switch(reg_code) - { -#define X(CVN,C,RDN,BP,BZ) case C: result = RDI_RegCodeX64_##RDN; break; - CV_Reg_X64_XList(X) -#undef X - } - }break; - } - return(result); -} - -internal RDI_Language -cv2r_rdi_language_from_cv_language(CV_Language cv_language) -{ - RDI_Language result = 0; - switch(cv_language) - { - case CV_Language_C: result = RDI_Language_C; break; - case CV_Language_CXX: result = RDI_Language_CPlusPlus; break; - //case CV_Language_FORTRAN: result = ; break; - //case CV_Language_MASM: result = ; break; - //case CV_Language_PASCAL: result = ; break; - //case CV_Language_BASIC: result = ; break; - //case CV_Language_COBOL: result = ; break; - //case CV_Language_LINK: result = ; break; - //case CV_Language_CVTRES: result = ; break; - //case CV_Language_CVTPGD: result = ; break; - //case CV_Language_CSHARP: result = ; break; - //case CV_Language_VB: result = ; break; - //case CV_Language_ILASM: result = ; break; - //case CV_Language_JAVA: result = ; break; - //case CV_Language_JSCRIPT: result = ; break; - //case CV_Language_MSIL: result = ; break; - //case CV_Language_HLSL: result = ; break; - } - return(result); -} - -internal RDI_RegCode -cv2r_reg_code_from_arch_encoded_fp_reg(RDI_Arch arch, CV_EncodedFramePtrReg encoded_reg) -{ - RDI_RegCode result = 0; - switch(arch) - { - case RDI_Arch_X86: - { - switch(encoded_reg) - { - case CV_EncodedFramePtrReg_StackPtr: - { - // TODO(allen): support CV_AllReg_VFRAME - // TODO(allen): error - }break; - case CV_EncodedFramePtrReg_FramePtr: - { - result = RDI_RegCodeX86_ebp; - }break; - case CV_EncodedFramePtrReg_BasePtr: - { - result = RDI_RegCodeX86_ebx; - }break; - } - }break; - case RDI_Arch_X64: - { - switch(encoded_reg) - { - case CV_EncodedFramePtrReg_StackPtr: - { - result = RDI_RegCodeX64_rsp; - }break; - case CV_EncodedFramePtrReg_FramePtr: - { - result = RDI_RegCodeX64_rbp; - }break; - case CV_EncodedFramePtrReg_BasePtr: - { - result = RDI_RegCodeX64_r13; - }break; - } - }break; - } - return(result); -} - - -internal RDI_TypeKind -cv2r_rdi_type_kind_from_cv_basic_type(CV_BasicType basic_type) -{ - RDI_TypeKind result = RDI_TypeKind_NULL; - switch(basic_type) - { - case CV_BasicType_VOID: {result = RDI_TypeKind_Void;}break; - case CV_BasicType_HRESULT: {result = RDI_TypeKind_HResult;}break; - - case CV_BasicType_RCHAR: - case CV_BasicType_CHAR: - case CV_BasicType_CHAR8: - {result = RDI_TypeKind_Char8;}break; - - case CV_BasicType_UCHAR: {result = RDI_TypeKind_UChar8;}break; - case CV_BasicType_WCHAR: {result = RDI_TypeKind_UChar16;}break; - case CV_BasicType_CHAR16: {result = RDI_TypeKind_Char16;}break; - case CV_BasicType_CHAR32: {result = RDI_TypeKind_Char32;}break; - - case CV_BasicType_BOOL8: - case CV_BasicType_INT8: - {result = RDI_TypeKind_S8;}break; - - case CV_BasicType_BOOL16: - case CV_BasicType_INT16: - case CV_BasicType_SHORT: - {result = RDI_TypeKind_S16;}break; - - case CV_BasicType_BOOL32: - case CV_BasicType_INT32: - case CV_BasicType_LONG: - {result = RDI_TypeKind_S32;}break; - - case CV_BasicType_BOOL64: - case CV_BasicType_INT64: - case CV_BasicType_QUAD: - {result = RDI_TypeKind_S64;}break; - - case CV_BasicType_INT128: - case CV_BasicType_OCT: - {result = RDI_TypeKind_S128;}break; - - case CV_BasicType_UINT8: {result = RDI_TypeKind_U8;}break; - - case CV_BasicType_UINT16: - case CV_BasicType_USHORT: - {result = RDI_TypeKind_U16;}break; - - case CV_BasicType_UINT32: - case CV_BasicType_ULONG: - {result = RDI_TypeKind_U32;}break; - - case CV_BasicType_UINT64: - case CV_BasicType_UQUAD: - {result = RDI_TypeKind_U64;}break; - - case CV_BasicType_UINT128: - case CV_BasicType_UOCT: - {result = RDI_TypeKind_U128;}break; - - case CV_BasicType_FLOAT16:{result = RDI_TypeKind_F16;}break; - case CV_BasicType_FLOAT32:{result = RDI_TypeKind_F32;}break; - case CV_BasicType_FLOAT32PP:{result = RDI_TypeKind_F32PP;}break; - case CV_BasicType_FLOAT48:{result = RDI_TypeKind_F48;}break; - case CV_BasicType_FLOAT64:{result = RDI_TypeKind_F64;}break; - case CV_BasicType_FLOAT80:{result = RDI_TypeKind_F80;}break; - case CV_BasicType_FLOAT128:{result = RDI_TypeKind_F128;}break; - case CV_BasicType_COMPLEX32:{result = RDI_TypeKind_ComplexF32;}break; - case CV_BasicType_COMPLEX64:{result = RDI_TypeKind_ComplexF64;}break; - case CV_BasicType_COMPLEX80:{result = RDI_TypeKind_ComplexF80;}break; - case CV_BasicType_COMPLEX128:{result = RDI_TypeKind_ComplexF128;}break; - case CV_BasicType_PTR:{result = RDI_TypeKind_Handle;}break; - } - return result; -} - diff --git a/src/radcon/radcon_cv.h b/src/radcon/radcon_cv.h deleted file mode 100644 index 014a4c9e..00000000 --- a/src/radcon/radcon_cv.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once - -//////////////////////////////// -//~ rjf: CodeView => RDI Canonical Conversions - -internal RDI_Arch cv2r_rdi_arch_from_cv_arch(CV_Arch arch); -internal RDI_RegCode cv2r_rdi_reg_code_from_cv_reg_code(RDI_Arch arch, CV_Reg reg_code); -internal RDI_Language cv2r_rdi_language_from_cv_language(CV_Language language); -internal RDI_RegCode cv2r_reg_code_from_arch_encoded_fp_reg(RDI_Arch arch, CV_EncodedFramePtrReg encoded_reg); -internal RDI_TypeKind cv2r_rdi_type_kind_from_cv_basic_type(CV_BasicType basic_type); diff --git a/src/radcon/radcon_dwarf.c b/src/radcon/radcon_dwarf.c deleted file mode 100644 index 4bfbe168..00000000 --- a/src/radcon/radcon_dwarf.c +++ /dev/null @@ -1,2150 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -// TODO: -// -// [ ] Currently converter relies on clang's -gdwarf-aranges to generate compile unit ranges, -// however it is optional and in case it is missing converter has to generate the ranges from scopes. -// [ ] Error handling - -internal RDI_RegCode -d2r_rdi_reg_from_dw_reg_code_x64(U64 reg_code) -{ - switch (reg_code) { -#define X(reg_name_dw, reg_code_dw, reg_name_rdi, reg_pos, reg_size) case DW_RegX64_##reg_name_dw: return RDI_RegCodeX64_##reg_name_rdi; - DW_Regs_X64_XList(X) -#undef X - } - InvalidPath; - return 0; -} - -internal RDI_RegCode -d2r_rdi_reg_from_dw_reg_code_x86(U64 reg_code) -{ - switch (reg_code) { -#define X(reg_name_dw, reg_code_dw, reg_name_rdi, reg_pos, reg_size) case DW_RegX86_##reg_name_dw: return RDI_RegCodeX86_##reg_name_rdi; - DW_Regs_X86_XList(X) -#undef X - } - InvalidPath; - return 0; -} - -internal RDI_RegCode -d2r_rdi_reg_from_dw_reg_code(Arch arch, U64 reg_code) -{ - switch (arch) { - case Arch_Null: return 0; - case Arch_x64: return d2r_rdi_reg_from_dw_reg_code_x64(reg_code); - case Arch_x86: return d2r_rdi_reg_from_dw_reg_code_x86(reg_code); - default: InvalidPath; - } - return 0; -} - -internal RDIM_Type * -d2r_create_type(Arena *arena, D2R_TypeTable *type_table) -{ - RDIM_Type *type = rdim_type_chunk_list_push(arena, type_table->types, type_table->type_chunk_cap); - return type; -} - -internal RDIM_Type * -d2r_find_or_create_type_from_offset(Arena *arena, D2R_TypeTable *type_table, U64 info_off) -{ - RDIM_Type *type = 0; - KeyValuePair *is_type_present = hash_table_search_u64(type_table->ht, info_off); - if (is_type_present) { - type = is_type_present->value_raw; - } else { - type = d2r_create_type(arena, type_table); - hash_table_push_u64_raw(arena, type_table->ht, info_off, type); - } - return type; -} - -internal RDIM_Type * -d2r_type_from_attrib(Arena *arena, D2R_TypeTable *type_table, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - RDIM_Type *type = 0; - - // find attrib - DW_Attrib *attrib = dw_attrib_from_tag(input, cu, tag, kind); - - // does tag have this attribute? - if (attrib->attrib_kind == kind) { - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - - if (value_class == DW_AttribClass_Reference) { - // resolve reference - DW_Reference ref = dw_ref_from_tag_attrib_kind(input, cu, attrib); - - // TODO: support for external compile unit references - AssertAlways(ref.cu == cu); - - // find or create type - type = d2r_find_or_create_type_from_offset(arena, type_table, ref.info_off); - } else { - Assert(!"unexpected attrib class"); - } - } else if (attrib->attrib_kind == DW_AttribKind_Null) { - type = rdim_builtin_type_from_kind(*type_table->types, RDI_TypeKind_NULL); - } - - return type; -} - -internal Rng1U64List -d2r_range_list_from_tag(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 image_base, DW_Tag tag) -{ - // collect non-contiguous range - Rng1U64List ranges = dw_rnglist_from_tag_attrib_kind(arena, input, cu, tag, DW_AttribKind_Ranges); - - // debase ranges - for (Rng1U64Node *range_n = ranges.first; range_n != 0; range_n = range_n->next) { - // TODO: error handling - AssertAlways(range_n->v.min >= image_base); - AssertAlways(range_n->v.max >= image_base); - range_n->v.min -= image_base; - range_n->v.max -= image_base; - } - - // collect contiguous range - DW_Attrib *lo_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_LowPc); - DW_Attrib *hi_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_HighPc); - if (lo_pc_attrib->attrib_kind != DW_AttribKind_Null && hi_pc_attrib->attrib_kind != DW_AttribKind_Null) { - U64 lo_pc = dw_address_from_tag_attrib_kind(input, cu, lo_pc_attrib); - - U64 hi_pc; - DW_AttribClass hi_pc_class = dw_value_class_from_attrib(cu, hi_pc_attrib); - if (hi_pc_class == DW_AttribClass_Address) { - hi_pc = dw_address_from_tag_attrib_kind(input, cu, hi_pc_attrib); - } else if (hi_pc_class == DW_AttribClass_Const) { - hi_pc = dw_const_u64_from_tag_attrib_kind(input, cu, hi_pc_attrib); - hi_pc += lo_pc; - } else { - AssertAlways(!"undefined attrib encoding"); - } - - // TODO: error handling - AssertAlways(lo_pc >= image_base); - AssertAlways(hi_pc >= image_base); - AssertAlways(lo_pc <= hi_pc); - - U64 lo_voff = lo_pc - image_base; - U64 hi_voff = hi_pc - image_base; - rng1u64_list_push(arena, &ranges, rng_1u64(lo_voff, hi_voff)); - } - - return ranges; -} - -internal RDIM_Type ** -d2r_collect_proc_params(Arena *arena, D2R_TypeTable *type_table, DW_Input *input, DW_CompUnit *cu, DW_TagNode *cur_node, U64 *param_count_out) -{ - Temp scratch = scratch_begin(&arena, 1); - - RDIM_TypeList list = {0}; - B32 has_vargs = 0; - for (DW_TagNode *i = cur_node->first_child; i != 0; i = i->sibling) { - if (i->tag.kind == DW_TagKind_FormalParameter) { - RDIM_TypeNode *n = push_array(scratch.arena, RDIM_TypeNode, 1); - n->v = d2r_type_from_attrib(arena, type_table, input, cu, i->tag, DW_AttribKind_Type); - SLLQueuePush(list.first, list.last, n); - ++list.count; - } else if (i->tag.kind == DW_TagKind_UnspecifiedParameters) { - has_vargs = 1; - } - } - - if (has_vargs) { - RDIM_TypeNode *n = push_array(scratch.arena, RDIM_TypeNode, 1); - n->v = type_table->varg_type; - SLLQueuePush(list.first, list.last, n); - ++list.count; - } - - // collect params - *param_count_out = list.count; - RDIM_Type **params = rdim_array_from_type_list(arena, list); - - scratch_end(scratch); - return params; -} - -internal RDI_TypeKind -d2r_unsigned_type_kind_from_size(U64 byte_size) -{ - RDI_TypeKind result = RDI_TypeKind_NULL; - switch (byte_size) { - case 1: result = RDI_TypeKind_U8; break; - case 2: result = RDI_TypeKind_U16; break; - case 4: result = RDI_TypeKind_U32; break; - case 8: result = RDI_TypeKind_U64; break; - } - return result; -} - -internal RDI_TypeKind -d2r_signed_type_kind_from_size(U64 byte_size) -{ - RDI_TypeKind result = RDI_TypeKind_NULL; - switch (byte_size) { - case 1: result = RDI_TypeKind_S8; break; - case 2: result = RDI_TypeKind_S16; break; - case 4: result = RDI_TypeKind_S32; break; - case 8: result = RDI_TypeKind_S64; break; - } - return result; -} - -internal RDI_EvalTypeGroup -d2r_type_group_from_type_kind(RDI_TypeKind x) -{ - switch (x) { - case RDI_TypeKind_NULL: - case RDI_TypeKind_Void: - case RDI_TypeKind_Handle: - break; - case RDI_TypeKind_UChar8: - case RDI_TypeKind_UChar16: - case RDI_TypeKind_UChar32: - case RDI_TypeKind_U8: - case RDI_TypeKind_U16: - case RDI_TypeKind_U32: - case RDI_TypeKind_U64: - case RDI_TypeKind_U128: - case RDI_TypeKind_U256: - case RDI_TypeKind_U512: - return RDI_EvalTypeGroup_U; - case RDI_TypeKind_Char8: - case RDI_TypeKind_Char16: - case RDI_TypeKind_Char32: - case RDI_TypeKind_S8: - case RDI_TypeKind_S16: - case RDI_TypeKind_S32: - case RDI_TypeKind_S64: - case RDI_TypeKind_S128: - case RDI_TypeKind_S256: - case RDI_TypeKind_S512: - return RDI_EvalTypeGroup_S; - case RDI_TypeKind_F32: - return RDI_EvalTypeGroup_F32; - case RDI_TypeKind_F64: - return RDI_EvalTypeGroup_F64; - default: InvalidPath; - } - return RDI_EvalTypeGroup_Other; -} - -internal RDIM_EvalBytecode -d2r_bytecode_from_expression(Arena *arena, - DW_Input *input, - U64 image_base, - U64 address_size, - Arch arch, - DW_ListUnit *addr_lu, - String8 expr, - DW_CompUnit *cu, - B32 *is_addr_out) -{ - Temp scratch = scratch_begin(&arena, 1); - - RDIM_EvalBytecode bc = {0}; - - *is_addr_out = 0; - - struct Frame { - struct Frame *next; - RDI_EvalTypeGroup value_type; - }; - struct Frame *stack = 0; -#define push_of_type(type) do { \ -struct Frame *f = push_array(scratch.arena, struct Frame, 1); \ -f->value_type = d2r_type_group_from_type_kind(type); \ -SLLStackPush(stack, f); \ -} while (0) -#define pop_type() stack->value_type; SLLStackPop(stack) -#define peek_type() stack->value_type - - - RDI_TypeKind addr_type_kind = RDI_TypeKind_NULL; - if (address_size == 4) { - addr_type_kind = RDI_TypeKind_U32; - } else if (address_size == 8) { - addr_type_kind = RDI_TypeKind_U64; - } - - - for (U64 cursor = 0; cursor < expr.size; ) { - U8 op = 0; - cursor += str8_deserial_read_struct(expr, cursor, &op); - - U64 size_param; - switch (op) { - case DW_ExprOp_Lit0: case DW_ExprOp_Lit1: case DW_ExprOp_Lit2: - case DW_ExprOp_Lit3: case DW_ExprOp_Lit4: case DW_ExprOp_Lit5: - case DW_ExprOp_Lit6: case DW_ExprOp_Lit7: case DW_ExprOp_Lit8: - case DW_ExprOp_Lit9: case DW_ExprOp_Lit10: case DW_ExprOp_Lit11: - case DW_ExprOp_Lit12: case DW_ExprOp_Lit13: case DW_ExprOp_Lit14: - case DW_ExprOp_Lit15: case DW_ExprOp_Lit16: case DW_ExprOp_Lit17: - case DW_ExprOp_Lit18: case DW_ExprOp_Lit19: case DW_ExprOp_Lit20: - case DW_ExprOp_Lit21: case DW_ExprOp_Lit22: case DW_ExprOp_Lit23: - case DW_ExprOp_Lit24: case DW_ExprOp_Lit25: case DW_ExprOp_Lit26: - case DW_ExprOp_Lit27: case DW_ExprOp_Lit28: case DW_ExprOp_Lit29: - case DW_ExprOp_Lit30: case DW_ExprOp_Lit31: { - U64 lit = op - DW_ExprOp_Lit0; - - rdim_bytecode_push_uconst(arena, &bc, lit); - push_of_type(RDI_TypeKind_U64); - } break; - - case DW_ExprOp_Const1U: { - U8 val = 0; - cursor += str8_deserial_read_struct(expr, cursor, &val); - - rdim_bytecode_push_uconst(arena, &bc, val); - push_of_type(RDI_TypeKind_U8); - } break; - case DW_ExprOp_Const2U: { - U16 val = 0; - cursor += str8_deserial_read_struct(expr, cursor, &val); - - rdim_bytecode_push_uconst(arena, &bc, val); - push_of_type(RDI_TypeKind_U16); - } break; - case DW_ExprOp_Const4U: { - U32 val = 0; - cursor += str8_deserial_read_struct(expr, cursor, &val); - - rdim_bytecode_push_uconst(arena, &bc, val); - push_of_type(RDI_TypeKind_U32); - } break; - case DW_ExprOp_Const8U: { - U64 val = 0; - cursor += str8_deserial_read_struct(expr, cursor, &val); - - rdim_bytecode_push_uconst(arena, &bc, val); - push_of_type(RDI_TypeKind_U64); - } break; - - case DW_ExprOp_Const1S: { - S8 val = 0; - cursor += str8_deserial_read_struct(expr, cursor, &val); - - rdim_bytecode_push_sconst(arena, &bc, val); - push_of_type(RDI_TypeKind_S8); - } break; - case DW_ExprOp_Const2S: { - S16 val = 0; - cursor += str8_deserial_read_struct(expr, cursor, &val); - - rdim_bytecode_push_sconst(arena, &bc, val); - push_of_type(RDI_TypeKind_S16); - } break; - case DW_ExprOp_Const4S: { - S32 val = 0; - cursor += str8_deserial_read_struct(expr, cursor, &val); - - rdim_bytecode_push_sconst(arena, &bc, val); - push_of_type(RDI_TypeKind_S32); - } break; - case DW_ExprOp_Const8S: { - S64 val = 0; - cursor += str8_deserial_read_struct(expr, cursor, &val); - - rdim_bytecode_push_sconst(arena, &bc, val); - push_of_type(RDI_TypeKind_S64); - } break; - - case DW_ExprOp_ConstU: { - U64 val = 0; - cursor += str8_deserial_read_uleb128(expr, cursor, &val); - - rdim_bytecode_push_uconst(arena, &bc, val); - push_of_type(RDI_TypeKind_U64); - } break; - - case DW_ExprOp_ConstS: { - S64 val = 0; - cursor += str8_deserial_read_sleb128(expr, cursor, &val); - - rdim_bytecode_push_sconst(arena, &bc, val); - push_of_type(RDI_TypeKind_S64); - } break; - - case DW_ExprOp_Addr: { - U64 addr = 0; - cursor += str8_deserial_read(expr, cursor, &addr, address_size, address_size); - if (addr >= image_base) { - U64 voff = addr - image_base; - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_ModuleOff, voff); - push_of_type(addr_type_kind); - } else { - // TODO: error handling - AssertAlways(!"unable to relocate address"); - } - - *is_addr_out = 1; - } break; - - case DW_ExprOp_Reg0: case DW_ExprOp_Reg1: case DW_ExprOp_Reg2: - case DW_ExprOp_Reg3: case DW_ExprOp_Reg4: case DW_ExprOp_Reg5: - case DW_ExprOp_Reg6: case DW_ExprOp_Reg7: case DW_ExprOp_Reg8: - case DW_ExprOp_Reg9: case DW_ExprOp_Reg10: case DW_ExprOp_Reg11: - case DW_ExprOp_Reg12: case DW_ExprOp_Reg13: case DW_ExprOp_Reg14: - case DW_ExprOp_Reg15: case DW_ExprOp_Reg16: case DW_ExprOp_Reg17: - case DW_ExprOp_Reg18: case DW_ExprOp_Reg19: case DW_ExprOp_Reg20: - case DW_ExprOp_Reg21: case DW_ExprOp_Reg22: case DW_ExprOp_Reg23: - case DW_ExprOp_Reg24: case DW_ExprOp_Reg25: case DW_ExprOp_Reg26: - case DW_ExprOp_Reg27: case DW_ExprOp_Reg28: case DW_ExprOp_Reg29: - case DW_ExprOp_Reg30: case DW_ExprOp_Reg31: { - U64 reg_code_dw = op - DW_ExprOp_Reg0; - U64 reg_size = dw_reg_size_from_code(arch, reg_code_dw); - U64 reg_pos = dw_reg_pos_from_code(arch, reg_code_dw); - - RDI_RegCode reg_code_rdi = d2r_rdi_reg_from_dw_reg_code(arch, reg_code_dw); - U32 regread_param = RDI_EncodeRegReadParam(reg_code_rdi, reg_size, reg_pos); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegRead, regread_param); - push_of_type(d2r_unsigned_type_kind_from_size(reg_size)); - } break; - - case DW_ExprOp_RegX: { - U64 reg_code_dw = 0; - cursor += str8_deserial_read_uleb128(expr, cursor, ®_code_dw); - - U64 reg_size = dw_reg_size_from_code(arch, reg_code_dw); - U64 reg_pos = dw_reg_pos_from_code(arch, reg_code_dw); - - RDI_RegCode reg_code_rdi = d2r_rdi_reg_from_dw_reg_code(arch, reg_code_dw); - U32 regread_param = RDI_EncodeRegReadParam(reg_code_rdi, reg_size, reg_pos); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegRead, regread_param); - push_of_type(d2r_unsigned_type_kind_from_size(reg_size)); - - *is_addr_out = 1; - } break; - - case DW_ExprOp_ImplicitValue: { - U64 val_size = 0; - String8 val = {0}; - cursor += str8_deserial_read_uleb128(expr, cursor, &val_size); - cursor += str8_deserial_read_block(expr, cursor, val_size, &val); - if (val.size <= sizeof(U64)) { - U64 val64 = 0; - MemoryCopy(&val64, val.str, val.size); - - rdim_bytecode_push_uconst(arena, &bc, val64); - push_of_type(d2r_unsigned_type_kind_from_size(val_size)); - } else { - // TODO: currenlty no way to encode string in RDIM_EvalBytecodeOp - NotImplemented; - } - } break; - - case DW_ExprOp_Piece: { - U64 piece_byte_size = 0; - cursor += str8_deserial_read_uleb128(expr, cursor, &piece_byte_size); - - U64 partial_value_size32 = safe_cast_u32(piece_byte_size); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_PartialValue, partial_value_size32); - } break; - - case DW_ExprOp_BitPiece: { - U64 piece_bit_size = 0; - U64 piece_bit_off = 0; - cursor += str8_deserial_read_uleb128(expr, cursor, &piece_bit_size); - cursor += str8_deserial_read_uleb128(expr, cursor, &piece_bit_off); - - U32 piece_bit_size32 = safe_cast_u32(piece_bit_size); - U32 piece_bit_off32 = safe_cast_u32(piece_bit_off); - - U64 partial_value = ((U64)piece_bit_size32 << 32) | (U64)piece_bit_off32; - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_PartialValueBit, partial_value); - } break; - - case DW_ExprOp_Pick: { - U8 stack_idx = 0; - cursor += str8_deserial_read_struct(expr, cursor, &stack_idx); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Pick, stack_idx); - } break; - - case DW_ExprOp_PlusUConst: { - U64 addend = 0; - cursor += str8_deserial_read_uleb128(expr, cursor, &addend); - rdim_bytecode_push_uconst(arena, &bc, addend); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Add, RDI_EvalTypeGroup_U); - } break; - - case DW_ExprOp_Skip: { - S16 skip = 0; - cursor += str8_deserial_read_struct(expr, cursor, &skip); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Skip, skip); - } break; - - case DW_ExprOp_Bra: { - NotImplemented; - } break; - - case DW_ExprOp_BReg0: case DW_ExprOp_BReg1: case DW_ExprOp_BReg2: - case DW_ExprOp_BReg3: case DW_ExprOp_BReg4: case DW_ExprOp_BReg5: - case DW_ExprOp_BReg6: case DW_ExprOp_BReg7: case DW_ExprOp_BReg8: - case DW_ExprOp_BReg9: case DW_ExprOp_BReg10: case DW_ExprOp_BReg11: - case DW_ExprOp_BReg12: case DW_ExprOp_BReg13: case DW_ExprOp_BReg14: - case DW_ExprOp_BReg15: case DW_ExprOp_BReg16: case DW_ExprOp_BReg17: - case DW_ExprOp_BReg18: case DW_ExprOp_BReg19: case DW_ExprOp_BReg20: - case DW_ExprOp_BReg21: case DW_ExprOp_BReg22: case DW_ExprOp_BReg23: - case DW_ExprOp_BReg24: case DW_ExprOp_BReg25: case DW_ExprOp_BReg26: - case DW_ExprOp_BReg27: case DW_ExprOp_BReg28: case DW_ExprOp_BReg29: - case DW_ExprOp_BReg30: case DW_ExprOp_BReg31: { - U64 reg_code_dw = op - DW_ExprOp_BReg0; - S64 reg_off = 0; - cursor += str8_deserial_read_sleb128(expr, cursor, ®_off); - - RDI_RegCode reg_code_rdi = d2r_rdi_reg_from_dw_reg_code(arch, reg_code_dw); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegReadDyn, reg_code_rdi); - if (reg_off > 0) { - rdim_bytecode_push_sconst(arena, &bc, reg_off); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Add, RDI_EvalTypeGroup_S); - } - push_of_type(RDI_TypeKind_S64); - - *is_addr_out = 1; - } break; - - case DW_ExprOp_BRegX: { - U64 reg_code_dw = 0; - S64 reg_off = 0; - cursor += str8_deserial_read_uleb128(expr, cursor, ®_code_dw); - cursor += str8_deserial_read_sleb128(expr, cursor, ®_off); - - RDI_RegCode reg_code_rdi = d2r_rdi_reg_from_dw_reg_code(arch, reg_code_dw); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegReadDyn, reg_code_rdi); - if (reg_off > 0) { - rdim_bytecode_push_sconst(arena, &bc, reg_off); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Add, RDI_EvalTypeGroup_S); - } - push_of_type(RDI_TypeKind_S64); - - *is_addr_out = 1; - } break; - - case DW_ExprOp_FBReg: { - S64 frame_off = 0; - cursor += str8_deserial_read_sleb128(expr, cursor, &frame_off); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_FrameOff, frame_off); - - *is_addr_out = 1; - } break; - - case DW_ExprOp_Deref: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_MemRead, address_size); - } break; - - case DW_ExprOp_DerefSize: { - U8 deref_size_in_bytes = 0; - cursor += str8_deserial_read_struct(expr, cursor, &deref_size_in_bytes); - if (0 < deref_size_in_bytes && deref_size_in_bytes <= address_size) { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_MemRead, deref_size_in_bytes); - } else { - // TODO: error handling - AssertAlways(!"ill formed expression"); - } - } break; - - case DW_ExprOp_XDerefSize: { - // TODO: error handling - AssertAlways(!"no suitable conversion"); - } break; - - case DW_ExprOp_Call2: - case DW_ExprOp_Call4: - case DW_ExprOp_CallRef: { - // TODO: error handling - AssertAlways(!"calls are not supported"); - } break; - - case DW_ExprOp_ImplicitPointer: - case DW_ExprOp_GNU_ImplicitPointer: { - // TODO: - AssertAlways(!"sample"); - } break; - - case DW_ExprOp_Convert: - case DW_ExprOp_GNU_Convert: { - U64 type_info_off = 0; - cursor += str8_deserial_read_uleb128(expr, cursor, &type_info_off); - - RDI_EvalTypeGroup in = stack ? d2r_type_group_from_type_kind(stack->value_type) : RDI_EvalTypeGroup_Other; - RDI_EvalTypeGroup out = RDI_EvalTypeGroup_Other; - - if (type_info_off == 0) { - // - // 2.5.1 - // Instead of a base type, elements can have a generic type, - // which is an integral type that has the size of an address - // on the target machine and unspecified signedness. - // - out = d2r_type_group_from_type_kind(addr_type_kind); - } else { - // find ref tag - DW_TagNode *tag_node = dw_tag_node_from_info_off(cu, type_info_off); - DW_Tag tag = tag_node->tag; - if (tag.kind == DW_TagKind_BaseType) { - // extract encoding attribute - DW_ATE encoding = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Encoding); - - // DW_ATE -> RDI_EvalTypeGroup - switch (encoding) { - case DW_ATE_SignedChar: - case DW_ATE_Signed: out = RDI_EvalTypeGroup_S; break; - case DW_ATE_UnsignedChar: - case DW_ATE_Unsigned: out = RDI_EvalTypeGroup_U; break; - case DW_ATE_Float: { - U64 byte_size = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_ByteSize); - switch (byte_size) { - case 4: out = RDI_EvalTypeGroup_F32; break; - case 8: out = RDI_EvalTypeGroup_F64; break; - default: InvalidPath; - } - } break; - default: InvalidPath; - } - } else { - AssertAlways(!"unexpected tag"); // TODO: error handling - } - } - - if (in == RDI_EvalTypeGroup_Other) { - push_of_type(out); - break; - } - - // TODO: error handling - AssertAlways(in != RDI_EvalTypeGroup_Other); - AssertAlways(out != RDI_EvalTypeGroup_Other); - - U16 operand = (U16)in | ((U16)out << 8); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Convert, operand); - } break; - - case DW_ExprOp_GNU_ParameterRef: { - // TODO: - AssertAlways(!"sample"); - } break; - - case DW_ExprOp_DerefType: - case DW_ExprOp_GNU_DerefType: { - // TODO: - AssertAlways(!"sample"); - } break; - - case DW_ExprOp_ConstType: - case DW_ExprOp_GNU_ConstType: { - // TODO: - AssertAlways(!"sample"); - } break; - - case DW_ExprOp_RegvalType: { - // TODO: - AssertAlways(!"sample"); - } break; - - case DW_ExprOp_EntryValue: - case DW_ExprOp_GNU_EntryValue: { - U64 entry_value_expr_size = 0; - String8 entry_value_expr = {0}; - cursor += str8_deserial_read_uleb128(expr, cursor, &entry_value_expr_size); - cursor += str8_deserial_read_block(expr, cursor, entry_value_expr_size, &entry_value_expr); - - B32 dummy = 0; - RDIM_EvalBytecode call_site_bc = d2r_bytecode_from_expression(arena, input, image_base, address_size, arch, addr_lu, entry_value_expr, cu, &dummy); - - U32 encoded_size32 = safe_cast_u32(call_site_bc.encoded_size); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_CallSiteValue, encoded_size32); - rdim_bytecode_concat_in_place(&bc, &call_site_bc); - } break; - - case DW_ExprOp_Addrx: { - U64 addr_idx = 0; - cursor += str8_deserial_read_uleb128(expr, cursor, &addr_idx); - U64 addr = dw_addr_from_list_unit(addr_lu, addr_idx); - if (addr != max_U64) { - if (addr >= image_base) { - U64 voff = addr - image_base; - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_ModuleOff, voff); - } else { - // TODO: error handling - AssertAlways(!"unable to relocate address"); - } - } else { - // TODO: error handling - AssertAlways(!"out of bounds index"); - } - } break; - - case DW_ExprOp_CallFrameCfa: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_FrameOff, 0); - } break; - - case DW_ExprOp_FormTlsAddress: { - // TODO: - AssertAlways(!"RDI_EvalOp_TLSOff accepts immediate"); - } break; - - case DW_ExprOp_PushObjectAddress: { - AssertAlways(!"sample"); - } break; - - case DW_ExprOp_Nop: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Noop, 0); - } break; - - case DW_ExprOp_Eq: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_EqEq, peek_type()); - } break; - - case DW_ExprOp_Ge: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_GrEq, peek_type()); - } break; - - case DW_ExprOp_Gt: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Grtr, peek_type()); - } break; - - case DW_ExprOp_Le: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_LsEq, peek_type()); - } break; - - case DW_ExprOp_Lt: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Less, peek_type()); - } break; - - case DW_ExprOp_Ne: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_NtEq, peek_type()); - } break; - - case DW_ExprOp_Shl: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_LShift, peek_type()); - } break; - - case DW_ExprOp_Shr: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RShift, RDI_EvalTypeGroup_U); - } break; - - case DW_ExprOp_Shra: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RShift, RDI_EvalTypeGroup_S); - } break; - - case DW_ExprOp_Xor: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_BitXor, peek_type()); - } break; - - case DW_ExprOp_XDeref: { - // TODO: error handling - Assert(!"multiple address spaces are not supported"); - } break; - - case DW_ExprOp_Abs: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Abs, peek_type()); - } break; - - case DW_ExprOp_And: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_BitAnd, peek_type()); - } break; - - case DW_ExprOp_Div: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Div, peek_type()); - } break; - - case DW_ExprOp_Minus: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Sub, peek_type()); - } break; - - case DW_ExprOp_Mod: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Mod, peek_type()); - } break; - - case DW_ExprOp_Mul: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Mul, peek_type()); - } break; - - case DW_ExprOp_Neg: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Neg, peek_type()); - } break; - - case DW_ExprOp_Not: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_BitNot, peek_type()); - } break; - - case DW_ExprOp_Or: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_BitOr, peek_type()); - } break; - - case DW_ExprOp_Plus: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Add, peek_type()); - } break; - - case DW_ExprOp_Rot: { - AssertAlways(!"no suitable conversion"); - } break; - - case DW_ExprOp_Swap: { - AssertAlways(!"no suitable conversion"); - } break; - - case DW_ExprOp_Dup: { - AssertAlways(!"no suitable conversion"); - } break; - - case DW_ExprOp_Drop: { - AssertAlways(!"no suitable conversion"); - } break; - - case DW_ExprOp_Over: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Pick, 1); - } break; - - case DW_ExprOp_StackValue: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Stop, 0); - } break; - - default: InvalidPath; break; - } - } - -#undef peek_type -#undef pop_type -#undef push_of_type - scratch_end(scratch); - return bc; -} - -internal RDIM_Location * -d2r_transpile_expression(Arena *arena, DW_Input *input, U64 image_base, U64 address_size, Arch arch, DW_ListUnit *addr_lu, DW_CompUnit *cu, String8 expr) -{ - RDIM_Location *loc = 0; - if (expr.size) { - B32 is_addr = 0; - RDIM_EvalBytecode bytecode = d2r_bytecode_from_expression(arena, input, image_base, address_size, arch, addr_lu, expr, cu, &is_addr); - - loc = push_array(arena, RDIM_Location, 1); - loc->kind = is_addr ? RDI_LocationKind_AddrBytecodeStream : RDI_LocationKind_ValBytecodeStream; - loc->bytecode = bytecode; - } - return loc; -} - -internal RDIM_Location * -d2r_location_from_attrib(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 image_base, Arch arch, DW_Tag tag, DW_AttribKind kind) -{ - String8 expr = dw_exprloc_from_tag_attrib_kind(input, cu, tag, kind); - RDIM_Location *location = d2r_transpile_expression(arena, input, image_base, cu->address_size, arch, cu->addr_lu, cu, expr); - return location; -} - -internal RDIM_LocationSet -d2r_locset_from_attrib(Arena *arena, - DW_Input *input, - DW_CompUnit *cu, - RDIM_ScopeChunkList *scopes, - RDIM_Scope *curr_scope, - U64 image_base, - Arch arch, - DW_Tag tag, - DW_AttribKind kind) -{ - RDIM_LocationSet locset = {0}; - - // extract attrib from tag - DW_Attrib *attrib = dw_attrib_from_tag(input, cu, tag, kind); - DW_AttribClass attrib_class = dw_value_class_from_attrib(cu, attrib); - - if (attrib_class == DW_AttribClass_LocList || attrib_class == DW_AttribClass_LocListPtr) { - Temp scratch = scratch_begin(&arena, 1); - - // extract location list from attrib - DW_LocList loclist = dw_loclist_from_tag_attrib_kind(scratch.arena, input, cu, attrib); - - // convert location list to RDIM location set - for (DW_LocNode *loc_n = loclist.first; loc_n != 0; loc_n = loc_n->next) { - RDIM_Location *location = d2r_transpile_expression(arena, input, image_base, cu->address_size, arch, cu->addr_lu, cu, loc_n->v.expr); - RDIM_Rng1U64 voff_range = { .min = loc_n->v.range.min - image_base, .max = loc_n->v.range.max - image_base }; - rdim_location_set_push_case(arena, scopes, &locset, voff_range, location); - } - - scratch_end(scratch); - } else if (attrib_class == DW_AttribClass_ExprLoc) { - // extract expression from attrib - String8 expr = dw_exprloc_from_tag_attrib_kind(input, cu, attrib); - - // convert expression and inherit life-time ranges from enclosed scope - RDIM_Location *location = d2r_transpile_expression(arena, input, image_base, cu->address_size, arch, cu->addr_lu, cu, expr); - for (RDIM_Rng1U64Node *range_n = curr_scope->voff_ranges.first; range_n != 0; range_n = range_n->next) { - rdim_location_set_push_case(arena, scopes, &locset, range_n->v, location); - } - } else if (attrib_class != DW_AttribClass_Null) { - AssertAlways(!"unexpected attrib class"); - } - - return locset; -} - -internal RDIM_LocationSet -d2r_var_locset_from_tag(Arena *arena, - DW_Input *input, - DW_CompUnit *cu, - RDIM_ScopeChunkList *scopes, - RDIM_Scope *curr_scope, - U64 image_base, - Arch arch, - DW_Tag tag) -{ - RDIM_LocationSet locset = {0}; - - B32 has_const_value = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_ConstValue); - B32 has_location = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Location); - - if (has_const_value && has_location) { - // TODO: error handling - AssertAlways(!"unexpected variable encoding"); - } - - if (has_const_value) { - // extract const value - U64 const_value = dw_u64_from_attrib(input, cu, tag, DW_AttribKind_ConstValue); - - // make value byte code - RDIM_EvalBytecode bc = {0}; - rdim_bytecode_push_uconst(arena, &bc, const_value); - - // fill out location - RDIM_Location *loc = push_array(arena, RDIM_Location, 1); - loc->kind = RDI_LocationKind_ValBytecodeStream; - loc->bytecode = bc; - - // push location cases - for (RDIM_Rng1U64Node *range_n = curr_scope->voff_ranges.first; range_n != 0; range_n = range_n->next) { - rdim_location_set_push_case(arena, scopes, &locset, range_n->v, loc); - } - } else if (has_location) { - locset = d2r_locset_from_attrib(arena, input, cu, scopes, curr_scope, image_base, arch, tag, DW_AttribKind_Location); - } - - return locset; -} - -internal D2R_CompUnitContribMap -d2r_cu_contrib_map_from_aranges(Arena *arena, DW_Input *input, U64 image_base) -{ - Temp scratch = scratch_begin(&arena, 1); - - String8 aranges_data = input->sec[DW_Section_ARanges].data; - Rng1U64List unit_range_list = dw_unit_ranges_from_data(scratch.arena, aranges_data); - - D2R_CompUnitContribMap cm = {0}; - cm.count = 0; - cm.info_off_arr = push_array(arena, U64, unit_range_list.count); - cm.voff_range_arr = push_array(arena, RDIM_Rng1U64List, unit_range_list.count); - - for (Rng1U64Node *range_n = unit_range_list.first; range_n != 0; range_n = range_n->next) { - String8 unit_data = str8_substr(aranges_data, range_n->v); - U64 unit_cursor = 0; - - U64 unit_length = 0; - U64 unit_length_size = str8_deserial_read_dwarf_packed_size(unit_data, unit_cursor, &unit_length); - if (unit_length_size == 0) { - continue; - } - unit_cursor += unit_length_size; - - DW_Version version = 0; - U64 version_size = str8_deserial_read_struct(unit_data, unit_cursor, &version); - if (version_size == 0) { - continue; - } - unit_cursor += version; - - if (version != DW_Version_2) { - AssertAlways(!"unknown .debug_aranges version"); - continue; - } - - DW_Format unit_format = DW_FormatFromSize(unit_length); - U64 cu_info_off = 0; - U64 cu_info_off_size = str8_deserial_read_dwarf_uint(unit_data, unit_cursor, unit_format, &cu_info_off); - if (cu_info_off_size == 0) { - continue; - } - unit_cursor += cu_info_off_size; - - U8 address_size = 0; - U64 address_size_size = str8_deserial_read_struct(unit_data, unit_cursor, &address_size); - if (address_size_size == 0) { - continue; - } - unit_cursor += address_size_size; - - U8 segment_selector_size = 0; - U64 segment_selector_size_size = str8_deserial_read_struct(unit_data, unit_cursor, &segment_selector_size); - if (segment_selector_size_size == 0) { - continue; - } - unit_cursor += segment_selector_size_size; - - U64 tuple_size = address_size * 2 + segment_selector_size; - U64 bytes_too_far_past_boundary = unit_cursor % tuple_size; - if (bytes_too_far_past_boundary > 0) { - unit_cursor += tuple_size - bytes_too_far_past_boundary; - } - - RDIM_Rng1U64List voff_ranges = {0}; - if (segment_selector_size == 0) { - while (unit_cursor + address_size * 2 <= unit_data.size) { - U64 address = 0; - U64 length = 0; - unit_cursor += str8_deserial_read(unit_data, unit_cursor, &address, address_size, address_size); - unit_cursor += str8_deserial_read(unit_data, unit_cursor, &length, address_size, address_size); - - if (address == 0 && length == 0) { - break; - } - - // TODO: error handling - AssertAlways(address >= image_base); - - U64 min = address - image_base; - U64 max = min + length; - rdim_rng1u64_list_push(arena, &voff_ranges, (RDIM_Rng1U64){.min = min, .max = max}); - } - } else { - // TODO: segment relative addressing - NotImplemented; - } - - U64 map_idx = cm.count++; - cm.info_off_arr[map_idx] = cu_info_off; - cm.voff_range_arr[map_idx] = voff_ranges; - } - - scratch_end(scratch); - return cm; -} - -internal RDIM_Rng1U64ChunkList -d2r_voff_ranges_from_cu_info_off(D2R_CompUnitContribMap map, U64 info_off) -{ - RDIM_Rng1U64ChunkList voff_ranges = {0}; - U64 voff_list_idx = u64_array_bsearch(map.info_off_arr, map.count, info_off); - if (voff_list_idx < map.count) { - voff_ranges = map.voff_range_arr[voff_list_idx]; - } - return voff_ranges; -} - -internal RDIM_Scope * -d2r_push_scope(Arena *arena, RDIM_ScopeChunkList *scopes, U64 scope_chunk_cap, D2R_TagNode *tag_stack, Rng1U64List ranges) -{ - // fill out scope - RDIM_Scope *scope = rdim_scope_chunk_list_push(arena, scopes, scope_chunk_cap); - - // push ranges - for (Rng1U64Node *i = ranges.first; i != 0; i = i->next) { - rdim_scope_push_voff_range(arena, scopes, scope, (RDIM_Rng1U64){.min = i->v.min, i->v.max}); - } - - // associate scope with tag - tag_stack->scope = scope; - - // update scope hierarchy - DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; - if (parent_tag_kind == DW_TagKind_SubProgram || parent_tag_kind == DW_TagKind_InlinedSubroutine || parent_tag_kind == DW_TagKind_LexicalBlock) { - RDIM_Scope *parent = tag_stack->next->scope; - - scope->parent_scope = parent; - scope->symbol = parent->symbol; - - if (parent->last_child) { - parent->last_child->next_sibling = scope; - } - SLLQueuePush_N(parent->first_child, parent->last_child, scope, next_sibling); - } - - return scope; -} - -internal RDIM_BakeParams -d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) -{ - Temp scratch = scratch_begin(&arena, 1); - - //////////////////////////////// - - ProfBegin("compute exe hash"); - U64 exe_hash = rdi_hash(in->image_data.str, in->image_data.size); - ProfEnd(); - - //////////////////////////////// - - Arch arch = Arch_Null; - U64 image_base = 0; - RDIM_BinarySectionList binary_sections = {0}; - DW_Input input = {0}; - - if (in->image == ExecutableImageKind_CoffPe) { - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, in->image_data); - - // get image arch - arch = pe.arch; - - // get image base - image_base = pe.image_base; - - // get image sections - String8 raw_sections = str8_substr(in->image_data, pe.section_table_range); - U64 section_count = raw_sections.size / sizeof(COFF_SectionHeader); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)raw_sections.str; - - // convert sections - String8 string_table = str8_substr(in->image_data, pe.string_table_range); - binary_sections = c2r_rdi_binary_sections_from_coff_sections(arena, in->image_data, string_table, section_count, section_table); - - // make DWARF input - input = dw_input_from_coff_section_table(scratch.arena, in->image_data, string_table, section_count, section_table); - } else if (in->image == ExecutableImageKind_Elf32 || in->image == ExecutableImageKind_Elf64) { - ELF_BinInfo elf = elf_bin_from_data(in->debug_data); - - // get image arch - arch = arch_from_elf_machine(elf.hdr.e_machine); - - // get image base - image_base = elf_base_addr_from_bin(&elf.hdr); - - // get image sections - ELF_Shdr64Array shdrs = elf_shdr64_array_from_bin(scratch.arena, in->debug_data, &elf.hdr); - - // convert sections - binary_sections = e2r_rdi_binary_sections_from_elf_section_table(arena, shdrs); - - // make DWARF input - input = dw_input_from_elf_section_table(scratch.arena, in->debug_data, &elf); - } else { - InvalidPath; - } - - //////////////////////////////// - - RDIM_TopLevelInfo top_level_info = rdim_make_top_level_info(in->image_name, arch, exe_hash, binary_sections); - - //////////////////////////////// - - U64 arch_addr_size = rdi_addr_size_from_arch(arch); - - //////////////////////////////// - - static const U64 UNIT_CHUNK_CAP = 256; - static const U64 UDT_CHUNK_CAP = 256; - static const U64 TYPE_CHUNK_CAP = 256; - static const U64 GVAR_CHUNK_CAP = 256; - static const U64 TVAR_CHUNK_CAP = 256; - static const U64 PROC_CHUNK_CAP = 256; - static const U64 SCOPE_CHUNK_CAP = 256; - static const U64 INLINE_SITE_CHUNK_CAP = 256; - static const U64 SRC_FILE_CAP = 256; - static const U64 LINE_TABLE_CAP = 256; - - RDIM_UnitChunkList units = {0}; - RDIM_UDTChunkList udts = {0}; - RDIM_TypeChunkList types = rdim_init_type_chunk_list(arena, arch); - RDIM_SymbolChunkList gvars = {0}; - RDIM_SymbolChunkList tvars = {0}; - RDIM_SymbolChunkList procs = {0}; - RDIM_ScopeChunkList scopes = {0}; - RDIM_InlineSiteChunkList inline_sites = {0}; - RDIM_SrcFileChunkList src_files = {0}; - RDIM_LineTableChunkList line_tables = {0}; - - //////////////////////////////// - - RDIM_Scope *global_scope = rdim_scope_chunk_list_push(arena, &scopes, SCOPE_CHUNK_CAP); - - //////////////////////////////// - - ProfBegin("Make Unit Contrib Map"); - D2R_CompUnitContribMap cu_contrib_map = {0}; - if (input.sec[DW_Section_ARanges].data.size > 0) { - cu_contrib_map = d2r_cu_contrib_map_from_aranges(arena, &input, image_base); - } else { - // TODO: synthesize cu ranges from scopes - NotImplemented; - } - ProfEnd(); - - ProfBegin("Parse Comop Unit Ranges"); - DW_ListUnitInput lu_input = dw_list_unit_input_from_input(scratch.arena, &input); - Rng1U64List cu_range_list = dw_unit_ranges_from_data(scratch.arena, input.sec[DW_Section_Info].data); - Rng1U64Array cu_ranges = rng1u64_array_from_list(scratch.arena, &cu_range_list); - ProfEnd(); - - //////////////////////////////// - - ProfBegin("Parse Compile Unit Headers"); - B32 is_parse_relaxed = !(in->flags & RC_Flag_StrictDwarfParse); - DW_CompUnit *cu_arr = push_array(scratch.arena, DW_CompUnit, cu_ranges.count); - for (U64 cu_idx = 0; cu_idx < cu_ranges.count; ++cu_idx) { - cu_arr[cu_idx] = dw_cu_from_info_off(scratch.arena, &input, lu_input, cu_ranges.v[cu_idx].min, is_parse_relaxed); - } - ProfEnd(); - - //////////////////////////////// - - ProfBegin("Parse Line Tables"); - DW_LineTableParseResult *cu_line_tables = push_array(scratch.arena, DW_LineTableParseResult, cu_ranges.count); - for (U64 cu_idx = 0; cu_idx < cu_ranges.count; ++cu_idx) { - DW_CompUnit *cu = &cu_arr[cu_idx]; - String8 cu_stmt_list = dw_line_ptr_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_StmtList); - String8 cu_dir = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_CompDir); - String8 cu_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Name); - cu_line_tables[cu_idx] = dw_parsed_line_table_from_data(scratch.arena, cu_stmt_list, &input, cu_dir, cu_name, cu->address_size, cu->str_offsets_lu); - } - ProfEnd(); - - //////////////////////////////// - - ProfBegin("Convert Line Tables"); - - HashTable *source_file_ht = hash_table_init(scratch.arena, 0x4000); - RDIM_LineTable **cu_line_tables_rdi = push_array(scratch.arena, RDIM_LineTable *, cu_ranges.count); - - for (U64 cu_idx = 0; cu_idx < cu_ranges.count; ++cu_idx) { - cu_line_tables_rdi[cu_idx] = rdim_line_table_chunk_list_push(arena, &line_tables, LINE_TABLE_CAP); - - DW_LineTableParseResult *line_table = &cu_line_tables[cu_idx]; - DW_LineVMFileArray *dir_table = &line_table->vm_header.dir_table; - DW_LineVMFileArray *file_table = &line_table->vm_header.file_table; - RDIM_SrcFile **src_file_map = push_array(scratch.arena, RDIM_SrcFile *, file_table->count); - for (U64 file_idx = 0; file_idx < file_table->count; ++file_idx) { - DW_LineFile *file = &file_table->v[file_idx]; - String8 file_path = dw_path_from_file_idx(scratch.arena, &line_table->vm_header, file_idx); - String8List file_path_split = str8_split_path(scratch.arena, file_path); - str8_path_list_resolve_dots_in_place(&file_path_split, PathStyle_WindowsAbsolute); - String8 file_path_resolved = str8_path_list_join_by_style(scratch.arena, &file_path_split, PathStyle_WindowsAbsolute); - String8 file_path_normalized = lower_from_str8(scratch.arena, file_path_resolved); - RDIM_SrcFile *src_file = hash_table_search_path_raw(source_file_ht, file_path_normalized); - if (src_file == 0) { - src_file = rdim_src_file_chunk_list_push(arena, &src_files, SRC_FILE_CAP); - src_file->normal_full_path = push_str8_copy(arena, file_path_normalized); - hash_table_push_path_raw(scratch.arena, source_file_ht, src_file->normal_full_path, src_file); - } - src_file_map[file_idx] = src_file; - } - - for (DW_LineSeqNode *line_seq = line_table->first_seq; line_seq != 0; line_seq = line_seq->next) { - if (line_seq->count == 0) { - continue; - } - - U64 *voffs = push_array(arena, U64, line_seq->count); - U32 *line_nums = push_array(arena, U32, line_seq->count); - U16 *col_nums = 0; - U64 line_idx = 0; - - DW_LineNode *file_line_n = line_seq->first; - U64 file_line_count = 0; - - for (DW_LineNode *line_n = file_line_n; line_n != 0; line_n = line_n->next) { - if (file_line_n->v.file_index != line_n->v.file_index || line_n->next == 0) { - U64 file_index = file_line_n->v.file_index; - U64 *file_voffs = &voffs[line_idx]; - U32 *file_line_nums = &line_nums[line_idx]; - U16 *file_col_nums = 0; - - U64 lines_written = 0; - U64 prev_ln = max_U64; - DW_LineNode *sentinel = line_n->v.file_index != file_line_n->v.file_index ? line_n : 0; - for (; file_line_n != sentinel; file_line_n = file_line_n->next) { - if (file_line_n->v.line != prev_ln) { - // TODO: error handling - AssertAlways(file_line_n->v.address >= image_base); - - voffs[line_idx] = file_line_n->v.address - image_base; - line_nums[line_idx] = file_line_n->v.line; - - ++lines_written; - ++line_idx; - - prev_ln = file_line_n->v.line; - } - } - - RDIM_SrcFile *src_file = src_file_map[file_index]; - RDIM_LineSequence *line_seq = rdim_line_table_push_sequence(arena, &line_tables, cu_line_tables_rdi[cu_idx], src_file, file_voffs, file_line_nums, file_col_nums, lines_written); - rdim_src_file_push_line_sequence(arena, &src_files, src_file, line_seq); - - file_line_count = 1; - } else { - ++file_line_count; - } - } - - // handle last line - if (file_line_n) { - U64 file_index = file_line_n->v.file_index; - U64 *file_voffs = &voffs[line_idx]; - U32 *file_line_nums = &line_nums[line_idx]; - U16 *file_col_nums = 0; - - for (; file_line_n != 0; file_line_n = file_line_n->next, ++line_idx) { - // TODO: error handling - AssertAlways(file_line_n->v.address >= image_base); - voffs[line_idx] = file_line_n->v.address - image_base; - line_nums[line_idx] = file_line_n->v.line; - } - - RDIM_SrcFile *src_file = src_file_map[file_index]; - RDIM_LineSequence *line_seq = rdim_line_table_push_sequence(arena, &line_tables, cu_line_tables_rdi[cu_idx], src_file, file_voffs, file_line_nums, file_col_nums, file_line_count); - rdim_src_file_push_line_sequence(arena, &src_files, src_file, line_seq); - } - - //Assert(line_idx == line_seq->count); - } - } - - ProfEnd(); - - //////////////////////////////// - - ProfBegin("Convert Units"); - - for (U64 cu_idx = 0; cu_idx < cu_ranges.count; ++cu_idx) { - Temp comp_temp = temp_begin(scratch.arena); - - DW_CompUnit *cu = &cu_arr[cu_idx]; - - // parse and build tag tree - DW_TagTree tag_tree = dw_tag_tree_from_cu(comp_temp.arena, &input, cu); - - // build tag hash table for abstract origin resolution - cu->tag_ht = dw_make_tag_hash_table(comp_temp.arena, tag_tree); - - String8 dwo_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_DwoName); - String8 gnu_dwo_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_GNU_DwoName); - if (dwo_name.size || gnu_dwo_name.size || cu->dwo_id) { - // TODO: report that we dont support DWO - continue; - } - - // get unit's contribution ranges - RDIM_Rng1U64List cu_voff_ranges = d2r_voff_ranges_from_cu_info_off(cu_contrib_map, cu_ranges.v[cu_idx].min); - - String8 cu_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Name); - String8 cu_dir = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_CompDir); - String8 cu_prod = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Producer); - DW_Language cu_lang = dw_const_u64_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Language); - - RDIM_Unit *unit = rdim_unit_chunk_list_push(arena, &units, UNIT_CHUNK_CAP); - unit->unit_name = cu_name; - unit->compiler_name = cu_prod; - unit->source_file = str8_zero(); - unit->object_file = str8_zero(); - unit->archive_file = str8_zero(); - unit->build_path = cu_dir; - unit->language = rdi_language_from_dw_language(cu_lang); - unit->line_table = cu_line_tables_rdi[cu_idx]; - unit->voff_ranges = cu_voff_ranges; - - D2R_TypeTable *type_table = push_array(comp_temp.arena, D2R_TypeTable, 1); - type_table->ht = hash_table_init(comp_temp.arena, 0x4000); - type_table->types = &types; - type_table->type_chunk_cap = TYPE_CHUNK_CAP; - type_table->varg_type = d2r_create_type(arena, type_table); - type_table->varg_type->kind = RDI_TypeKind_Variadic; - - D2R_TagNode *free_tags = push_array(comp_temp.arena, D2R_TagNode, 1); - D2R_TagNode *tag_stack = push_array(comp_temp.arena, D2R_TagNode, 1); - tag_stack->cur_node = tag_tree.root; - - while (tag_stack) { - while (tag_stack->cur_node) { - DW_TagNode *cur_node = tag_stack->cur_node; - DW_Tag tag = cur_node->tag; - B32 visit_children = 1; - - switch (tag.kind) { - case DW_TagKind_Null: { - InvalidPath; - } break; - case DW_TagKind_ClassType: { - RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - - B32 is_decl = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Declaration); - if (is_decl) { - type->kind = RDI_TypeKind_IncompleteClass; - - Assert(!cur_node->first_child); - visit_children = 0; - } else { - RDIM_UDT *udt = rdim_udt_chunk_list_push(arena, &udts, UDT_CHUNK_CAP); - udt->self_type = type; - - type->kind = RDI_TypeKind_Class; - type->byte_size = dw_byte_size_32_from_tag(&input, cu, tag); - type->udt = udt; - type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - - tag_stack->type = type; - } - } break; - case DW_TagKind_StructureType: { - RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - - B32 is_decl = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Declaration); - if (is_decl) { - type->kind = RDI_TypeKind_IncompleteStruct; - - // TODO: error handling - Assert(!cur_node->first_child); - visit_children = 0; - } else { - RDIM_UDT *udt = rdim_udt_chunk_list_push(arena, &udts, UDT_CHUNK_CAP); - udt->self_type = type; - - type->kind = RDI_TypeKind_Struct; - type->udt = udt; - type->byte_size = dw_byte_size_32_from_tag(&input, cu, tag); - - tag_stack->type = type; - } - } break; - case DW_TagKind_UnionType: { - RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - - B32 is_decl = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Declaration); - if (is_decl) { - type->kind = RDI_TypeKind_IncompleteUnion; - - // TODO: error handling - Assert(!cur_node->first_child); - visit_children = 0; - } else { - RDIM_UDT *udt = rdim_udt_chunk_list_push(arena, &udts, UDT_CHUNK_CAP); - udt->self_type = type; - - type->kind = RDI_TypeKind_Union; - type->byte_size = dw_byte_size_32_from_tag(&input, cu, tag); - type->udt = udt; - - tag_stack->type = type; - } - } break; - case DW_TagKind_EnumerationType: { - RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - - B32 is_decl = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Declaration); - if (is_decl) { - type->kind = RDI_TypeKind_IncompleteEnum; - - // TODO: error handling - Assert(!cur_node->first_child); - visit_children = 0; - } else { - RDIM_UDT *udt = rdim_udt_chunk_list_push(arena, &udts, UDT_CHUNK_CAP); - udt->self_type = type; - - type->kind = RDI_TypeKind_Enum; - type->byte_size = dw_byte_size_32_from_tag(&input, cu, tag); - type->udt = udt; - - tag_stack->type = type; - } - } break; - case DW_TagKind_SubroutineType: { - // collect parameters - RDIM_TypeList param_list = {0}; - for (DW_TagNode *n = cur_node->first_child; n != 0; n = n->sibling) { - if (n->tag.kind == DW_TagKind_FormalParameter) { - RDIM_Type *param_type = d2r_type_from_attrib(arena, type_table, &input, cu, n->tag, DW_AttribKind_Type); - rdim_type_list_push(comp_temp.arena, ¶m_list, param_type); - } else if (n->tag.kind == DW_TagKind_UnspecifiedParameters) { - rdim_type_list_push(comp_temp.arena, ¶m_list, type_table->varg_type); - } else { - // TODO: error handling - AssertAlways(!"unexpected tag"); - } - } - - // init proceudre type - RDIM_Type *ret_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_Function; - type->byte_size = arch_addr_size; - type->direct_type = ret_type; - type->count = param_list.count; - type->param_types = rdim_array_from_type_list(arena, param_list); - - visit_children = 0; - } break; - case DW_TagKind_Typedef: { - RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_Alias; - type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - } break; - case DW_TagKind_BaseType: { - DW_ATE encoding = dw_const_u64_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Encoding); - U64 byte_size = dw_byte_size_from_tag(&input, cu, tag); - - // convert base type encoding to RDI version - RDI_TypeKind kind = RDI_TypeKind_NULL; - switch (encoding) { - case DW_ATE_Null: kind = RDI_TypeKind_NULL; break; - case DW_ATE_Address: kind = RDI_TypeKind_Void; break; - case DW_ATE_Boolean: kind = RDI_TypeKind_Bool; break; - case DW_ATE_ComplexFloat: { - switch (byte_size) { - case 4: kind = RDI_TypeKind_ComplexF32; break; - case 8: kind = RDI_TypeKind_ComplexF64; break; - case 10: kind = RDI_TypeKind_ComplexF80; break; - case 16: kind = RDI_TypeKind_ComplexF128; break; - default: AssertAlways(!"unexpected size"); break; // TODO: error handling - } - } break; - case DW_ATE_Float: { - switch (byte_size) { - case 2: kind = RDI_TypeKind_F16; break; - case 4: kind = RDI_TypeKind_F32; break; - case 6: kind = RDI_TypeKind_F48; break; - case 8: kind = RDI_TypeKind_F64; break; - case 16: kind = RDI_TypeKind_F128; break; - default: AssertAlways(!"unexpected size"); break; // TODO: error handling - } - } break; - case DW_ATE_Signed: { - switch (byte_size) { - case 1: kind = RDI_TypeKind_S8; break; - case 2: kind = RDI_TypeKind_S16; break; - case 4: kind = RDI_TypeKind_S32; break; - case 8: kind = RDI_TypeKind_S64; break; - case 16: kind = RDI_TypeKind_S128; break; - case 32: kind = RDI_TypeKind_S256; break; - case 64: kind = RDI_TypeKind_S512; break; - default: AssertAlways(!"unexpected size"); break; // TODO: error handling - } - } break; - case DW_ATE_SignedChar: { - switch (byte_size) { - case 1: kind = RDI_TypeKind_Char8; break; - case 2: kind = RDI_TypeKind_Char16; break; - case 4: kind = RDI_TypeKind_Char32; break; - default: AssertAlways(!"unexpected size"); break; // TODO: error handling - } - } break; - case DW_ATE_Unsigned: { - switch (byte_size) { - case 1: kind = RDI_TypeKind_U8; break; - case 2: kind = RDI_TypeKind_U16; break; - case 4: kind = RDI_TypeKind_U32; break; - case 8: kind = RDI_TypeKind_U64; break; - case 16: kind = RDI_TypeKind_U128; break; - case 32: kind = RDI_TypeKind_U256; break; - case 64: kind = RDI_TypeKind_U512; break; - default: AssertAlways(!"unexpected size"); break; // TODO: error handling - } - } break; - case DW_ATE_UnsignedChar: { - switch (byte_size) { - case 1: kind = RDI_TypeKind_UChar8; break; - case 2: kind = RDI_TypeKind_UChar16; break; - case 4: kind = RDI_TypeKind_UChar32; break; - default: AssertAlways(!"unexpected size"); break; // TODO: error handling - } - } break; - case DW_ATE_ImaginaryFloat: { - NotImplemented; - } break; - case DW_ATE_PackedDecimal: { - NotImplemented; - } break; - case DW_ATE_NumericString: { - NotImplemented; - } break; - case DW_ATE_Edited: { - NotImplemented; - } break; - case DW_ATE_SignedFixed: { - NotImplemented; - } break; - case DW_ATE_UnsignedFixed: { - NotImplemented; - } break; - case DW_ATE_DecimalFloat: { - NotImplemented; - } break; - case DW_ATE_Utf: { - NotImplemented; - } break; - case DW_ATE_Ucs: { - NotImplemented; - } break; - case DW_ATE_Ascii: { - NotImplemented; - } break; - default: AssertAlways(!"unexpected base type encoding"); break; // TODO: error handling - } - - RDIM_Type *base_type = rdim_builtin_type_from_kind(types, kind); - base_type->kind = kind; - base_type->byte_size = byte_size; - - RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_Alias; - type->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - type->direct_type = base_type; - } break; - case DW_TagKind_PointerType: { - RDIM_Type *direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - - // TODO: - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Allocated)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Associated)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Alignment)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Name)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_AddressClass)); - - U64 byte_size = arch_addr_size; - if (cu->version == DW_Version_5 || cu->relaxed) { - dw_try_byte_size_from_tag(&input, cu, tag, &byte_size); - } - - RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_Ptr; - type->byte_size = byte_size; - type->direct_type = direct_type; - } break; - case DW_TagKind_RestrictType: { - // TODO: - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Alignment)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Name)); - - RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_Modifier; - type->byte_size = arch_addr_size; - type->flags = RDI_TypeModifierFlag_Restrict; - type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - } break; - case DW_TagKind_VolatileType: { - // TODO: - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Name)); - - RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_Modifier; - type->byte_size = arch_addr_size; - type->flags = RDI_TypeModifierFlag_Volatile; - type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - } break; - case DW_TagKind_ConstType: { - // TODO: - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Name)); - Assert(!dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_Alignment)); - - RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_Modifier; - type->byte_size = arch_addr_size; - type->flags = RDI_TypeModifierFlag_Const; - type->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - } break; - case DW_TagKind_ArrayType: { - // * DWARF vs RDI Array Type Graph * - // - // For example lets take following decl: - // - // int (*foo[2])[3][4]; - // - // This compiles to in DWARF: - // - // foo -> DW_TAG_ArrayType -> (A0) DW_TAG_Subrange [2] - // \ - // -> (B0) DW_TAG_PointerType -> (A1) DW_TAG_ArrayType -> DW_TAG_Subrange [3] -> DW_TagKind_Subrange [4] - // \ - // -> (B1) DW_TAG_BaseType (int) - // - // RDI expects: - // - // foo -> Array (2) -> Pointer -> Array (3) -> Array (4) -> int - // - // Note that DWARF forks the graph on DW_TAG_ArrayType to describe array ranges in branch A and - // in branch B describes array type which might be a struct, pointer, base type, or any other type tag. - // However, in RDI we have a simple list of type nodes and to convert we need to append type nodes from - // B to A. - - RDIM_Type *type = d2r_find_or_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_Array; - type->direct_type = 0; - - U64 subrange_count = 0; - RDIM_Type *t = type; - for (DW_TagNode *n = cur_node->first_child; n != 0; n = n->sibling) { - if (n->tag.kind != DW_TagKind_SubrangeType) { - // TODO: error handling - AssertAlways(!"unexpected tag"); - continue; - } - - if (subrange_count > 0) { - // init array type node - RDIM_Type *s = d2r_create_type(arena, type_table); - s->kind = RDI_TypeKind_Array; - s->direct_type = 0; - - // append new array type node - t->direct_type = s; - t = s; - } - - // resolve array lower bound - U64 lower_bound = 0; - if (dw_tag_has_attrib(&input, cu, n->tag, DW_AttribKind_LowerBound)) { - lower_bound = dw_u64_from_attrib(&input, cu, n->tag, DW_AttribKind_LowerBound); - } else { - lower_bound = dw_pick_default_lower_bound(cu_lang); - } - - // resolve array upper bound - U64 upper_bound = 0; - if (dw_tag_has_attrib(&input, cu, n->tag, DW_AttribKind_Count)) { - U64 count = dw_u64_from_attrib(&input, cu, n->tag, DW_AttribKind_Count); - upper_bound = lower_bound + count; - } else if (dw_tag_has_attrib(&input, cu, n->tag, DW_AttribKind_UpperBound)) { - upper_bound = dw_u64_from_attrib(&input, cu, n->tag, DW_AttribKind_UpperBound); - // turn upper bound into exclusive range - upper_bound += 1; - } else { - // zero size array - } - - t->count = upper_bound - lower_bound; - ++subrange_count; - } - - Assert(t->direct_type == 0); - t->direct_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - - visit_children = 0; - } break; - case DW_TagKind_SubrangeType: { - // TODO: error handling - AssertAlways(!"unexpected tag"); - } break; - case DW_TagKind_Inheritance: { - DW_TagNode *parent_node = tag_stack->next->cur_node; - if (parent_node->tag.kind != DW_TagKind_StructureType && - parent_node->tag.kind != DW_TagKind_ClassType) { - // TODO: error handling - AssertAlways(!"unexpected parent tag"); - } - - RDIM_Type *parent = tag_stack->next->type; - RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, parent->udt); - member->kind = RDI_MemberKind_Base; - member->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - member->off = safe_cast_u32(dw_const_u32_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_DataMemberLocation)); - } break; - case DW_TagKind_Enumerator: { - DW_TagNode *parent_node = tag_stack->next->cur_node; - if (parent_node->tag.kind != DW_TagKind_EnumerationType) { - // TODO: error handling - AssertAlways(!"unexpected parent tag"); - } - - RDIM_Type *type = tag_stack->next->type; - RDIM_UDTEnumVal *member = rdim_udt_push_enum_val(arena, &udts, type->udt); - member->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - member->val = dw_const_u64_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_ConstValue); - } break; - case DW_TagKind_Member: { - DW_TagNode *parent_node = tag_stack->next->cur_node; - if (parent_node->tag.kind != DW_TagKind_StructureType && - parent_node->tag.kind != DW_TagKind_ClassType && - parent_node->tag.kind != DW_TagKind_UnionType && - parent_node->tag.kind != DW_TagKind_EnumerationType) { - // TODO: error handling - AssertAlways(!"unexpected parent tag"); - } - - DW_Attrib *data_member_location = dw_attrib_from_tag(&input, cu, tag, DW_AttribKind_DataMemberLocation); - DW_AttribClass data_member_location_class = dw_value_class_from_attrib(cu, data_member_location); - if (data_member_location_class == DW_AttribClass_LocList) { - AssertAlways(!"UDT member with multiple locations are not supported"); - } - - RDIM_Type *type = tag_stack->next->type; - RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, type->udt); - member->kind = RDI_MemberKind_DataField; - member->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - member->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - member->off = dw_const_u64_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_DataMemberLocation); - } break; - case DW_TagKind_SubProgram: { - DW_InlKind inl = dw_u64_from_attrib(&input, cu, tag, DW_AttribKind_Inline); - switch (inl) { - case DW_Inl_NotInlined: { - U64 param_count = 0; - RDIM_Type **params = d2r_collect_proc_params(arena, type_table, &input, cu, cur_node, ¶m_count); - - // get return type - RDIM_Type *ret_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - - // fill out proc type - RDIM_Type *proc_type = d2r_create_type(arena, type_table); - proc_type->kind = RDI_TypeKind_Function; - proc_type->byte_size = arch_addr_size; - proc_type->direct_type = ret_type; - proc_type->count = param_count; - proc_type->param_types = params; - - // get container type - RDIM_Type *container_type = 0; - if (dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_ContainingType)) { - container_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_ContainingType); - } - - // get frame base expression - String8 frame_base_expr = dw_exprloc_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_FrameBase); - - // get proc container symbol - RDIM_Symbol *proc = rdim_symbol_chunk_list_push(arena, &procs, PROC_CHUNK_CAP ); - - // make scope - Rng1U64List ranges = d2r_range_list_from_tag(comp_temp.arena, &input, cu, image_base, tag); - RDIM_Scope *root_scope = d2r_push_scope(arena, &scopes, SCOPE_CHUNK_CAP, tag_stack, ranges); - root_scope->symbol = proc; - - // fill out proc - proc->is_extern = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_External); - proc->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - proc->link_name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_LinkageName); - proc->type = proc_type; - proc->container_symbol = 0; - proc->container_type = container_type; - proc->root_scope = root_scope; - proc->frame_base = d2r_locset_from_attrib(arena, &input, cu, &scopes, root_scope, image_base, arch, tag, DW_AttribKind_FrameBase); - - // sub program with user-defined parent tag is a method - DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; - if (parent_tag_kind == DW_TagKind_ClassType || parent_tag_kind == DW_TagKind_StructureType) { - RDI_MemberKind member_kind = RDI_MemberKind_NULL; - DW_VirtualityKind virtuality = dw_const_u64_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Virtuality); - switch (virtuality) { - case DW_VirtualityKind_None: member_kind = RDI_MemberKind_Method; break; - case DW_VirtualityKind_Virtual: member_kind = RDI_MemberKind_VirtualMethod; break; - case DW_VirtualityKind_PureVirtual: member_kind = RDI_MemberKind_VirtualMethod; break; // TODO: create kind for pure virutal - //default: InvalidPath; break; - } - - RDIM_Type *type = tag_stack->next->type; - RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, type->udt); - member->kind = member_kind; - member->type = type; - member->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - } else if (parent_tag_kind != DW_TagKind_CompileUnit) { - //AssertAlways(!"unexpected tag"); - } - - tag_stack->scope = root_scope; - } break; - case DW_Inl_DeclaredNotInlined: - case DW_Inl_DeclaredInlined: - case DW_Inl_Inlined: { - visit_children = 0; - } break; - default: InvalidPath; break; - } - } break; - case DW_TagKind_InlinedSubroutine: { - U64 param_count = 0; - RDIM_Type **params = d2r_collect_proc_params(arena, type_table, &input, cu, tag_stack->cur_node, ¶m_count); - - // get return type - RDIM_Type *ret_type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - - // fill out proc type - RDIM_Type *proc_type = d2r_create_type(arena, type_table); - proc_type->kind = RDI_TypeKind_Function; - proc_type->byte_size = arch_addr_size; - proc_type->direct_type = ret_type; - proc_type->count = param_count; - proc_type->param_types = params; - - // get container type - RDIM_Type *owner = 0; - if (dw_tag_has_attrib(&input, cu, tag, DW_AttribKind_ContainingType)) { - owner = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_ContainingType); - } - - // fill out inline site - RDIM_InlineSite *inline_site = rdim_inline_site_chunk_list_push(arena, &inline_sites, INLINE_SITE_CHUNK_CAP); - inline_site->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - inline_site->type = proc_type; - inline_site->owner = owner; - inline_site->line_table = 0; - - // make scope - Rng1U64List ranges = d2r_range_list_from_tag(comp_temp.arena, &input, cu, image_base, tag); - RDIM_Scope *root_scope = d2r_push_scope(arena, &scopes, SCOPE_CHUNK_CAP, tag_stack, ranges); - root_scope->inline_site = inline_site; - } break; - case DW_TagKind_Variable: { - String8 name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - RDIM_Type *type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - - DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; - if (parent_tag_kind == DW_TagKind_SubProgram || - parent_tag_kind == DW_TagKind_InlinedSubroutine || - parent_tag_kind == DW_TagKind_LexicalBlock) { - RDIM_Scope *scope = tag_stack->next->scope; - RDIM_Local *local = rdim_scope_push_local(arena, &scopes, tag_stack->next->scope); - local->kind = RDI_LocalKind_Variable; - local->name = name; - local->type = type; - local->locset = d2r_var_locset_from_tag(arena, &input, cu, &scopes, scope, image_base, arch, tag); - } else { - - // NOTE: due to a bug in clang in stb_sprint.h local variables - // are declared in global scope without a name - if (name.size == 0) { - break; - } - - RDIM_Symbol *gvar = rdim_symbol_chunk_list_push(arena, &gvars, GVAR_CHUNK_CAP); - gvar->is_extern = dw_flag_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_External); - gvar->name = name; - gvar->link_name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_LinkageName); - gvar->type = type; - //gvar->locset = d2r_locset_from_attrib(arena, &input, cu, &scopes, global_scope, image_base, arch, tag, DW_AttribKind_Location); - gvar->container_symbol = 0; - gvar->container_type = 0; // TODO: NotImplemented; - } - } break; - case DW_TagKind_FormalParameter: { - DW_TagKind parent_tag_kind = tag_stack->next->cur_node->tag.kind; - if (parent_tag_kind == DW_TagKind_SubProgram || parent_tag_kind == DW_TagKind_InlinedSubroutine) { - RDIM_Scope *scope = tag_stack->next->scope; - RDIM_Local *param = rdim_scope_push_local(arena, &scopes, scope); - param->kind = RDI_LocalKind_Parameter; - param->name = dw_string_from_tag_attrib_kind(&input, cu, tag, DW_AttribKind_Name); - param->type = d2r_type_from_attrib(arena, type_table, &input, cu, tag, DW_AttribKind_Type); - param->locset = d2r_var_locset_from_tag(arena, &input, cu, &scopes, scope, image_base, arch, tag); - } else { - // TODO: error handling - AssertAlways(!"this is a local variable"); - } - } break; - case DW_TagKind_LexicalBlock: { - if (tag_stack->next->cur_node->tag.kind == DW_TagKind_SubProgram || - tag_stack->next->cur_node->tag.kind == DW_TagKind_InlinedSubroutine || - tag_stack->next->cur_node->tag.kind == DW_TagKind_LexicalBlock) { - Rng1U64List ranges = d2r_range_list_from_tag(comp_temp.arena, &input, cu, image_base, tag); - d2r_push_scope(arena, &scopes, SCOPE_CHUNK_CAP, tag_stack, ranges); - } - } break; - case DW_TagKind_CallSite: { - // TODO - } break; - case DW_TagKind_CallSiteParameter: { - // TODO - } break; - case DW_TagKind_Label: - case DW_TagKind_CompileUnit: - case DW_TagKind_UnspecifiedParameters: - break; - case DW_TagKind_Namespace: break; - case DW_TagKind_ImportedDeclaration: break; - case DW_TagKind_PtrToMemberType: break; - case DW_TagKind_TemplateTypeParameter: break; - case DW_TagKind_ReferenceType: break; - default: NotImplemented; break; - } - - if (tag_stack->cur_node->first_child && visit_children) { - D2R_TagNode *frame = free_tags; - if (frame) { - SLLStackPop(free_tags); - MemoryZeroStruct(frame); - } else { - frame = push_array(scratch.arena, D2R_TagNode, 1); - } - frame->cur_node = tag_stack->cur_node->first_child; - SLLStackPush(tag_stack, frame); - } else { - tag_stack->cur_node = tag_stack->cur_node->sibling; - } - } - - // recycle free frame - D2R_TagNode *frame = tag_stack; - SLLStackPop(tag_stack); - SLLStackPush(free_tags, frame); - - if (tag_stack) { - tag_stack->cur_node = tag_stack->cur_node->sibling; - } - } - - temp_end(comp_temp); - } - - ProfEnd(); - - { - for (RDIM_TypeChunkNode *chunk_n = types.first; chunk_n != 0; chunk_n = chunk_n->next) { - for (U64 i = 0; i < chunk_n->count; ++i) { - RDIM_Type *type = &chunk_n->v[i]; - if (type->kind == RDI_TypeKind_Alias) { - for (RDIM_Type *t = type->direct_type; t != 0; t = t->direct_type) { - if (t->byte_size != 0) { - type->byte_size = t->byte_size; - break; - } - } - } - } - } - } - - { - RDIM_TypeNode *type_stack = 0; - RDIM_TypeNode *free_types = 0; - - for (RDIM_TypeChunkNode *chunk_n = types.first; chunk_n != 0; chunk_n = chunk_n->next) { - for (U64 i = 0; i < chunk_n->count; ++i) { - RDIM_Type *type = &chunk_n->v[i]; - if (type->kind == RDI_TypeKind_Array) { - if (type->byte_size != 0) - continue; - - RDIM_Type *t; - for (t = type; t != 0 && t->kind == RDI_TypeKind_Array; t = t->direct_type) { - RDIM_TypeNode *f = free_types; - if (f == 0) { - f = push_array(scratch.arena, RDIM_TypeNode, 1); - } else { - SLLStackPop(free_types); - } - f->v = t; - SLLStackPush(type_stack, f); - } - - U64 base_type_size = 0; - if (t) { - base_type_size = t->byte_size; - } - - U64 array_size = base_type_size; - while (type_stack) { - if (type_stack->v->count) { - array_size *= type_stack->v->count; - } else { - array_size += type_stack->v->byte_size; - } - SLLStackPop(type_stack); - } - - type->count = 0; - type->byte_size = array_size; - - // recycle frames - free_types = type_stack; - type_stack = 0; - } - } - } - } - - //////////////////////////////// - - RDIM_BakeParams bake_params = {0}; - bake_params.top_level_info = top_level_info; - bake_params.binary_sections = binary_sections; - bake_params.units = units; - bake_params.types = types; - bake_params.udts = udts; - bake_params.src_files = src_files; - bake_params.line_tables = line_tables; - bake_params.global_variables = gvars; - bake_params.thread_variables = tvars; - bake_params.procedures = procs; - bake_params.scopes = scopes; - bake_params.inline_sites = inline_sites; - - scratch_end(scratch); - return bake_params; -} - -internal RDI_Language -rdi_language_from_dw_language(DW_Language v) -{ - RDI_Language result = RDI_Language_NULL; - switch (v) { - case DW_Language_Null: result = RDI_Language_NULL; break; - - case DW_Language_C89: - case DW_Language_C99: - case DW_Language_C11: - case DW_Language_C: - result = RDI_Language_C; - break; - - case DW_Language_CPlusPlus03: - case DW_Language_CPlusPlus11: - case DW_Language_CPlusPlus14: - case DW_Language_CPlusPlus: - result = RDI_Language_CPlusPlus; - break; - - default: NotImplemented; break; - } - return result; -} - -internal RDI_RegCodeX86 -rdi_reg_from_dw_reg_x86(DW_RegX86 v) -{ - RDI_RegCodeX86 result = RDI_RegCode_nil; - switch (v) { -#define X(reg_dw, val_dw, reg_rdi, ...) case DW_RegX86_##reg_dw: result = RDI_RegCodeX86_##reg_rdi; break; - DW_Regs_X86_XList(X) -#undef X - default: NotImplemented; break; - } - return result; -} - -internal B32 -rdi_reg_from_dw_reg_x64(DW_RegX64 v, RDI_RegCodeX64 *code_out, U64 *off_out, U64 *size_out) -{ - RDI_RegCodeX64 result = RDI_RegCode_nil; - switch (v) { -#define X(reg_dw, val_dw, reg_rdi, off, size) case DW_RegX64_##reg_dw: result = RDI_RegCodeX64_##reg_rdi; *off_out = off; *size_out = size; break; - DW_Regs_X64_XList(X) -#undef X - default: NotImplemented; break; - } - return result; -} - -internal B32 -rdi_reg_from_dw_reg(Arch arch, DW_Reg v, RDI_RegCode *code_out, U64 *off_out, U64 *size_out) -{ - RDI_RegCode result = RDI_RegCode_nil; - switch (arch) { - case Arch_Null: break; - case Arch_x86: ; break; - case Arch_x64: return rdi_reg_from_dw_reg_x64(v, code_out, off_out, size_out); - default: NotImplemented; break; - } - return 0; -} diff --git a/src/radcon/radcon_dwarf.h b/src/radcon/radcon_dwarf.h deleted file mode 100644 index 7e802ca6..00000000 --- a/src/radcon/radcon_dwarf.h +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef RADCON_DWARF_H -#define RADCON_DWARF_H - -typedef struct D2R_TypeTable -{ - HashTable *ht; - RDIM_TypeChunkList *types; - U64 type_chunk_cap; - RDIM_Type *varg_type; -} D2R_TypeTable; - -typedef struct D2R_TagNode -{ - struct D2R_TagNode *next; - DW_TagNode *cur_node; - RDIM_Type *type; - RDIM_Scope *scope; -} D2R_TagNode; - -typedef struct D2R_CompUnitContribMap -{ - U64 count; - U64 *info_off_arr; - RDIM_Rng1U64ChunkList *voff_range_arr; -} D2R_CompUnitContribMap; - -//////////////////////////////// - -internal RDIM_BakeParams * d2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in); - -//////////////////////////////// - -internal RDI_Language rdi_language_from_dw_language(DW_Language v); -internal RDI_RegCodeX86 rdi_reg_from_dw_reg_x86(DW_RegX86 v); -internal B32 rdi_reg_from_dw_reg_x64(DW_RegX64 v, RDI_RegCodeX64 *code_out, U64 *off_out, U64 *size_out); -internal B32 rdi_reg_from_dw_reg(Arch arch, DW_Reg v, RDI_RegCode *code_out, U64 *off_out, U64 *size_out); - -#endif // RADCON_DWARF_H - diff --git a/src/radcon/radcon_elf.c b/src/radcon/radcon_elf.c deleted file mode 100644 index 4ff07e9f..00000000 --- a/src/radcon/radcon_elf.c +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -internal RDIM_BinarySectionList -e2r_rdi_binary_sections_from_elf_section_table(Arena *arena, ELF_Shdr64Array shdrs) -{ - RDIM_BinarySectionList result = {0}; - return result; -} - diff --git a/src/radcon/radcon_elf.h b/src/radcon/radcon_elf.h deleted file mode 100644 index 9625ff18..00000000 --- a/src/radcon/radcon_elf.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef RADCON_ELF_H -#define RADCON_ELF_H - -internal RDIM_BinarySectionList e2r_rdi_binary_sections_from_elf_section_table(Arena *arena, ELF_Shdr64Array shdrs); - -#endif // RADCON_ELF_H diff --git a/src/radcon/radcon_pdb.c b/src/radcon/radcon_pdb.c deleted file mode 100644 index 752b2286..00000000 --- a/src/radcon/radcon_pdb.c +++ /dev/null @@ -1,3190 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -// TODO(rjf): eliminate redundant null checks, just always allocate -// empty results, and have nulls gracefully fall through -// -// (search for != 0 instances, inserted to prevent prior crashes) - -global RDIM_LocalState *g_p2r_local_state = 0; - -//////////////////////////////// -//~ rjf: Basic Helpers - -internal U64 -p2r_end_of_cplusplus_container_name(String8 str) -{ - // NOTE: This finds the index one past the last "::" contained in str. - // if no "::" is contained in str, then the returned index is 0. - // The intent is that [0,clamp_bot(0,result - 2)) gives the - // "container name" and [result,str.size) gives the leaf name. - U64 result = 0; - if(str.size >= 2) - { - for(U64 i = str.size; i >= 2; i -= 1) - { - if(str.str[i - 2] == ':' && str.str[i - 1] == ':') - { - result = i; - break; - } - } - } - return(result); -} - -internal U64 -p2r_hash_from_voff(U64 voff) -{ - U64 hash = (voff >> 3) ^ ((7 & voff) << 6); - return hash; -} - -//////////////////////////////// -//~ rjf: Location Info Building Helpers - -internal RDIM_Location * -p2r_location_from_addr_reg_off(Arena *arena, RDI_Arch arch, RDI_RegCode reg_code, U32 reg_byte_size, U32 reg_byte_pos, S64 offset, B32 extra_indirection) -{ - RDIM_Location *result = 0; - if(0 <= offset && offset <= (S64)max_U16) - { - if(extra_indirection) - { - result = rdim_push_location_addr_addr_reg_plus_u16(arena, reg_code, (U16)offset); - } - else - { - result = rdim_push_location_addr_reg_plus_u16(arena, reg_code, (U16)offset); - } - } - else - { - RDIM_EvalBytecode bytecode = {0}; - U32 regread_param = RDI_EncodeRegReadParam(reg_code, reg_byte_size, reg_byte_pos); - rdim_bytecode_push_op(arena, &bytecode, RDI_EvalOp_RegRead, regread_param); - rdim_bytecode_push_sconst(arena, &bytecode, offset); - rdim_bytecode_push_op(arena, &bytecode, RDI_EvalOp_Add, 0); - if(extra_indirection) - { - U64 addr_size = rdi_addr_size_from_arch(arch); - rdim_bytecode_push_op(arena, &bytecode, RDI_EvalOp_MemRead, addr_size); - } - result = rdim_push_location_addr_bytecode_stream(arena, &bytecode); - } - return result; -} - -internal void -p2r_location_over_lvar_addr_range(Arena *arena, RDIM_ScopeChunkList *scopes, RDIM_LocationSet *locset, RDIM_Location *location, CV_LvarAddrRange *range, COFF_SectionHeader *section, CV_LvarAddrGap *gaps, U64 gap_count) -{ - //- rjf: extract range info - U64 voff_first = 0; - U64 voff_opl = 0; - if(section != 0) - { - voff_first = section->voff + range->off; - voff_opl = voff_first + range->len; - } - - //- rjf: emit ranges - CV_LvarAddrGap *gap_ptr = gaps; - U64 voff_cursor = voff_first; - for(U64 i = 0; i < gap_count; i += 1, gap_ptr += 1) - { - U64 voff_gap_first = voff_first + gap_ptr->off; - U64 voff_gap_opl = voff_gap_first + gap_ptr->len; - if(voff_cursor < voff_gap_first) - { - RDIM_Rng1U64 voff_range = {voff_cursor, voff_gap_first}; - rdim_location_set_push_case(arena, scopes, locset, voff_range, location); - } - voff_cursor = voff_gap_opl; - } - - //- rjf: emit remaining range - if(voff_cursor < voff_opl) - { - RDIM_Rng1U64 voff_range = {voff_cursor, voff_opl}; - rdim_location_set_push_case(arena, scopes, locset, voff_range, location); - } -} - -//////////////////////////////// -//~ rjf: Initial Parsing & Preparation Pass Tasks - -ASYNC_WORK_DEF(p2r_exe_hash_work) -{ - ProfBeginFunction(); - Arena *arena = g_p2r_local_state->work_thread_arenas[thread_idx]; - P2R_EXEHashIn *in = (P2R_EXEHashIn *)input; - U64 *out = push_array(arena, U64, 1); - ProfScope("hash exe") *out = rdi_hash(in->exe_data.str, in->exe_data.size); - ProfEnd(); - return out; -} - -ASYNC_WORK_DEF(p2r_tpi_hash_parse_work) -{ - ProfBeginFunction(); - Arena *arena = g_p2r_local_state->work_thread_arenas[thread_idx]; - P2R_TPIHashParseIn *in = (P2R_TPIHashParseIn *)input; - void *out = 0; - ProfScope("parse tpi hash") out = pdb_tpi_hash_from_data(arena, in->strtbl, in->tpi, in->hash_data, in->aux_data); - ProfEnd(); - return out; -} - -ASYNC_WORK_DEF(p2r_tpi_leaf_parse_work) -{ - ProfBeginFunction(); - Arena *arena = g_p2r_local_state->work_thread_arenas[thread_idx]; - P2R_TPILeafParseIn *in = (P2R_TPILeafParseIn *)input; - void *out = 0; - ProfScope("parse tpi leaf") out = cv_leaf_from_data(arena, in->leaf_data, in->itype_first); - ProfEnd(); - return out; -} - -ASYNC_WORK_DEF(p2r_symbol_stream_parse_work) -{ - ProfBeginFunction(); - Arena *arena = g_p2r_local_state->work_thread_arenas[thread_idx]; - P2R_SymbolStreamParseIn *in = (P2R_SymbolStreamParseIn *)input; - void *out = 0; - ProfScope("parse symbol stream") out = cv_sym_from_data(arena, in->data, 4); - ProfEnd(); - return out; -} - -ASYNC_WORK_DEF(p2r_c13_stream_parse_work) -{ - ProfBeginFunction(); - Arena *arena = g_p2r_local_state->work_thread_arenas[thread_idx]; - P2R_C13StreamParseIn *in = (P2R_C13StreamParseIn *)input; - void *out = 0; - ProfScope("parse c13 stream") out = cv_c13_parsed_from_data(arena, in->data, in->strtbl, in->coff_sections); - ProfEnd(); - return out; -} - -ASYNC_WORK_DEF(p2r_comp_unit_parse_work) -{ - ProfBeginFunction(); - Arena *arena = g_p2r_local_state->work_thread_arenas[thread_idx]; - P2R_CompUnitParseIn *in = (P2R_CompUnitParseIn *)input; - void *out = 0; - ProfScope("parse comp units") out = pdb_comp_unit_array_from_data(arena, in->data); - ProfEnd(); - return out; -} - -ASYNC_WORK_DEF(p2r_comp_unit_contributions_parse_work) -{ - ProfBeginFunction(); - Arena *arena = g_p2r_local_state->work_thread_arenas[thread_idx]; - P2R_CompUnitContributionsParseIn *in = (P2R_CompUnitContributionsParseIn *)input; - void *out = 0; - ProfScope("parse comp unit contributions") out = pdb_comp_unit_contribution_array_from_data(arena, in->data, in->coff_sections); - ProfEnd(); - return out; -} - -//////////////////////////////// -//~ rjf: Unit Conversion Tasks - -ASYNC_WORK_DEF(p2r_units_convert_work) -{ - ProfBeginFunction(); - Arena *arena = g_p2r_local_state->work_thread_arenas[thread_idx]; - Temp scratch = scratch_begin(&arena, 1); - P2R_UnitConvertIn *in = (P2R_UnitConvertIn *)input; - P2R_UnitConvertOut *out = push_array(arena, P2R_UnitConvertOut, 1); - ProfScope("build units, initial src file map, & collect unit source files") - if(in->comp_units != 0) - { - U64 units_chunk_cap = in->comp_units->count; - P2R_SrcFileMap src_file_map = {0}; - src_file_map.slots_count = 65536; - src_file_map.slots = push_array(scratch.arena, P2R_SrcFileNode *, src_file_map.slots_count); - - //////////////////////////// - //- rjf: pass 1: build per-unit info & per-unit line tables - // - ProfScope("pass 1: build per-unit info & per-unit line tables") - for(U64 comp_unit_idx = 0; comp_unit_idx < in->comp_units->count; comp_unit_idx += 1) - { - PDB_CompUnit *pdb_unit = in->comp_units->units[comp_unit_idx]; - CV_SymParsed *pdb_unit_sym = in->comp_unit_syms[comp_unit_idx]; - CV_C13Parsed *pdb_unit_c13 = in->comp_unit_c13s[comp_unit_idx]; - - //- rjf: produce unit name - String8 unit_name = pdb_unit->obj_name; - if(unit_name.size != 0) - { - String8 unit_name_past_last_slash = str8_skip_last_slash(unit_name); - if(unit_name_past_last_slash.size != 0) - { - unit_name = unit_name_past_last_slash; - } - } - - //- rjf: produce obj name - String8 obj_name = pdb_unit->obj_name; - if(str8_match(obj_name, str8_lit("* Linker *"), 0) || - str8_match(obj_name, str8_lit("Import:"), StringMatchFlag_RightSideSloppy)) - { - MemoryZeroStruct(&obj_name); - } - - //- rjf: build this unit's line table, fill out primary line info (inline info added after) - RDIM_LineTable *line_table = 0; - for(CV_C13SubSectionNode *node = pdb_unit_c13->first_sub_section; - node != 0; - node = node->next) - { - if(node->kind == CV_C13SubSectionKind_Lines) - { - for(CV_C13LinesParsedNode *lines_n = node->lines_first; - lines_n != 0; - lines_n = lines_n->next) - { - CV_C13LinesParsed *lines = &lines_n->v; - - // rjf: file name -> normalized file path - String8 file_path = lines->file_name; - String8 file_path_normalized = lower_from_str8(scratch.arena, str8_skip_chop_whitespace(file_path)); - for(U64 idx = 0; idx < file_path_normalized.size; idx += 1) - { - if(file_path_normalized.str[idx] == '\\') - { - file_path_normalized.str[idx] = '/'; - } - } - - // rjf: normalized file path -> source file node - U64 file_path_normalized_hash = rdi_hash(file_path_normalized.str, file_path_normalized.size); - U64 src_file_slot = file_path_normalized_hash%src_file_map.slots_count; - P2R_SrcFileNode *src_file_node = 0; - for(P2R_SrcFileNode *n = src_file_map.slots[src_file_slot]; n != 0; n = n->next) - { - if(str8_match(n->src_file->normal_full_path, file_path_normalized, 0)) - { - src_file_node = n; - break; - } - } - if(src_file_node == 0) - { - src_file_node = push_array(scratch.arena, P2R_SrcFileNode, 1); - SLLStackPush(src_file_map.slots[src_file_slot], src_file_node); - src_file_node->src_file = rdim_src_file_chunk_list_push(arena, &out->src_files, 4096); - src_file_node->src_file->normal_full_path = push_str8_copy(arena, file_path_normalized); - } - - // rjf: push sequence into both line table & source file's line map - if(lines->line_count != 0) - { - if(line_table == 0) - { - line_table = rdim_line_table_chunk_list_push(arena, &out->line_tables, 256); - } - RDIM_LineSequence *seq = rdim_line_table_push_sequence(arena, &out->line_tables, line_table, src_file_node->src_file, lines->voffs, lines->line_nums, lines->col_nums, lines->line_count); - rdim_src_file_push_line_sequence(arena, &out->src_files, src_file_node->src_file, seq); - } - } - } - } - - //- rjf: build unit - RDIM_Unit *dst_unit = rdim_unit_chunk_list_push(arena, &out->units, units_chunk_cap); - dst_unit->unit_name = unit_name; - dst_unit->compiler_name = pdb_unit_sym->info.compiler_name; - dst_unit->object_file = obj_name; - dst_unit->archive_file = pdb_unit->group_name; - dst_unit->language = cv2r_rdi_language_from_cv_language(pdb_unit_sym->info.language); - dst_unit->line_table = line_table; - } - - //////////////////////////// - //- rjf: pass 2: build per-unit voff ranges from comp unit contributions table - // - PDB_CompUnitContribution *contrib_ptr = in->comp_unit_contributions->contributions; - PDB_CompUnitContribution *contrib_opl = contrib_ptr + in->comp_unit_contributions->count; - ProfScope("pass 2: build per-unit voff ranges from comp unit contributions table") - for(;contrib_ptr < contrib_opl; contrib_ptr += 1) - { - if(contrib_ptr->mod < in->comp_units->count) - { - RDIM_Unit *unit = &out->units.first->v[contrib_ptr->mod]; - RDIM_Rng1U64 range = {contrib_ptr->voff_first, contrib_ptr->voff_opl}; - rdim_rng1u64_list_push(arena, &unit->voff_ranges, range); - } - } - - //////////////////////////// - //- rjf: pass 3: parse all inlinee line tables - // - out->units_first_inline_site_line_tables = push_array(arena, RDIM_LineTable *, in->comp_units->count); - ProfScope("pass 3: parse all inlinee line tables") - for(U64 comp_unit_idx = 0; comp_unit_idx < in->comp_units->count; comp_unit_idx += 1) - { - CV_SymParsed *unit_sym = in->comp_unit_syms[comp_unit_idx]; - CV_C13Parsed *unit_c13 = in->comp_unit_c13s[comp_unit_idx]; - CV_RecRange *rec_ranges_first = unit_sym->sym_ranges.ranges; - CV_RecRange *rec_ranges_opl = rec_ranges_first+unit_sym->sym_ranges.count; - U64 base_voff = 0; - for(CV_RecRange *rec_range = rec_ranges_first; - rec_range < rec_ranges_opl; - rec_range += 1) - { - //- rjf: rec range -> symbol info range - U64 sym_off_first = rec_range->off + 2; - U64 sym_off_opl = rec_range->off + rec_range->hdr.size; - - //- rjf: skip invalid ranges - if(sym_off_opl > unit_sym->data.size || sym_off_first > unit_sym->data.size || sym_off_first > sym_off_opl) - { - continue; - } - - //- rjf: unpack symbol info - CV_SymKind kind = rec_range->hdr.kind; - U64 sym_header_struct_size = cv_header_struct_size_from_sym_kind(kind); - void *sym_header_struct_base = unit_sym->data.str + sym_off_first; - void *sym_data_opl = unit_sym->data.str + sym_off_opl; - - //- rjf: skip bad sizes - if(sym_off_first + sym_header_struct_size > sym_off_opl) - { - continue; - } - - //- rjf: process symbol - switch(kind) - { - default:{}break; - - //- rjf: LPROC32/GPROC32 (gather base address) - case CV_SymKind_LPROC32: - case CV_SymKind_GPROC32: - { - CV_SymProc32 *proc32 = (CV_SymProc32 *)sym_header_struct_base; - COFF_SectionHeader *section = (0 < proc32->sec && proc32->sec <= in->coff_sections.count) ? &in->coff_sections.v[proc32->sec-1] : 0; - if(section != 0) - { - base_voff = section->voff + proc32->off; - } - }break; - - //- rjf: INLINESITE - case CV_SymKind_INLINESITE: - { - // rjf: unpack sym - CV_SymInlineSite *sym = (CV_SymInlineSite *)sym_header_struct_base; - String8 binary_annots = str8((U8 *)(sym+1), rec_range->hdr.size - sizeof(rec_range->hdr.kind) - sizeof(*sym)); - - // rjf: map inlinee -> parsed cv c13 inlinee line info - CV_C13InlineeLinesParsed *inlinee_lines_parsed = 0; - { - U64 hash = cv_hash_from_item_id(sym->inlinee); - U64 slot_idx = hash%unit_c13->inlinee_lines_parsed_slots_count; - for(CV_C13InlineeLinesParsedNode *n = unit_c13->inlinee_lines_parsed_slots[slot_idx]; n != 0; n = n->hash_next) - { - if(n->v.inlinee == sym->inlinee) - { - inlinee_lines_parsed = &n->v; - break; - } - } - } - - // rjf: build line table, fill with parsed binary annotations - - if(inlinee_lines_parsed != 0) - { - // rjf: grab checksums sub-section - CV_C13SubSectionNode *file_chksms = unit_c13->file_chksms_sub_section; - - // rjf: gathered lines - typedef struct LineChunk LineChunk; - struct LineChunk - { - LineChunk *next; - U64 cap; - U64 count; - U64 *voffs; // [line_count + 1] (sorted) - U32 *line_nums; // [line_count] - U16 *col_nums; // [2*line_count] - }; - LineChunk *first_line_chunk = 0; - LineChunk *last_line_chunk = 0; - U64 total_line_chunk_line_count = 0; - U32 last_file_off = max_U32; - U32 curr_file_off = max_U32; - RDIM_LineTable* line_table = 0; - - CV_C13InlineSiteDecoder decoder = cv_c13_inline_site_decoder_init(inlinee_lines_parsed->file_off, inlinee_lines_parsed->first_source_ln, base_voff); - for(;;) - { - CV_C13InlineSiteDecoderStep step = cv_c13_inline_site_decoder_step(&decoder, binary_annots); - - if(step.flags & CV_C13InlineSiteDecoderStepFlag_EmitFile) - { - last_file_off = curr_file_off; - curr_file_off = step.file_off; - } - if(step.flags == 0 && total_line_chunk_line_count > 0) - { - last_file_off = curr_file_off; - curr_file_off = max_U32; - } - if((last_file_off != max_U32 && last_file_off != curr_file_off)) - { - String8 seq_file_name = {0}; - - if(last_file_off + sizeof(CV_C13Checksum) <= file_chksms->size) - { - CV_C13Checksum *checksum = (CV_C13Checksum*)(unit_c13->data.str + file_chksms->off + last_file_off); - U32 name_off = checksum->name_off; - seq_file_name = pdb_strtbl_string_from_off(in->pdb_strtbl, name_off); - } - - // rjf: file name -> normalized file path - String8 file_path = seq_file_name; - String8 file_path_normalized = lower_from_str8(scratch.arena, str8_skip_chop_whitespace(file_path)); - for(U64 idx = 0; idx < file_path_normalized.size; idx += 1) - { - if(file_path_normalized.str[idx] == '\\') - { - file_path_normalized.str[idx] = '/'; - } - } - - // rjf: normalized file path -> source file node - U64 file_path_normalized_hash = rdi_hash(file_path_normalized.str, file_path_normalized.size); - U64 src_file_slot = file_path_normalized_hash%src_file_map.slots_count; - P2R_SrcFileNode *src_file_node = 0; - for(P2R_SrcFileNode *n = src_file_map.slots[src_file_slot]; n != 0; n = n->next) - { - if(str8_match(n->src_file->normal_full_path, file_path_normalized, 0)) - { - src_file_node = n; - break; - } - } - if(src_file_node == 0) - { - src_file_node = push_array(scratch.arena, P2R_SrcFileNode, 1); - SLLStackPush(src_file_map.slots[src_file_slot], src_file_node); - src_file_node->src_file = rdim_src_file_chunk_list_push(arena, &out->src_files, 4096); - src_file_node->src_file->normal_full_path = push_str8_copy(arena, file_path_normalized); - } - - // rjf: gather all lines - RDI_U64 *voffs = push_array_no_zero(arena, RDI_U64, total_line_chunk_line_count+1); - RDI_U32 *line_nums = push_array_no_zero(arena, RDI_U32, total_line_chunk_line_count); - RDI_U64 line_count = total_line_chunk_line_count; - { - U64 dst_idx = 0; - for(LineChunk *chunk = first_line_chunk; chunk != 0; chunk = chunk->next) - { - MemoryCopy(voffs+dst_idx, chunk->voffs, sizeof(U64)*(chunk->count+1)); - MemoryCopy(line_nums+dst_idx, chunk->line_nums, sizeof(U32)*chunk->count); - dst_idx += chunk->count; - } - } - - // rjf: push - if(line_count != 0) - { - if(line_table == 0) - { - line_table = rdim_line_table_chunk_list_push(arena, &out->line_tables, 256); - if(out->units_first_inline_site_line_tables[comp_unit_idx] == 0) - { - out->units_first_inline_site_line_tables[comp_unit_idx] = line_table; - } - } - RDIM_LineSequence *seq = rdim_line_table_push_sequence(arena, &out->line_tables, line_table, src_file_node->src_file, voffs, line_nums, 0, line_count); - rdim_src_file_push_line_sequence(arena, &out->src_files, src_file_node->src_file, seq); - } - - // rjf: clear line chunks for subsequent sequences - first_line_chunk = last_line_chunk = 0; - total_line_chunk_line_count = 0; - } - - if(step.flags & CV_C13InlineSiteDecoderStepFlag_EmitLine) - { - LineChunk *chunk = last_line_chunk; - if(chunk == 0 || chunk->count+1 >= chunk->cap) - { - chunk = push_array(scratch.arena, LineChunk, 1); - SLLQueuePush(first_line_chunk, last_line_chunk, chunk); - chunk->cap = 256; - chunk->voffs = push_array_no_zero(scratch.arena, U64, chunk->cap); - chunk->line_nums = push_array_no_zero(scratch.arena, U32, chunk->cap); - } - chunk->voffs[chunk->count] = step.line_voff; - chunk->voffs[chunk->count+1] = step.line_voff_end; - chunk->line_nums[chunk->count] = step.ln; - chunk->count += 1; - total_line_chunk_line_count += 1; - } - - if(step.flags == 0) - { - break; - } - } - } - }break; - } - } - } - } - scratch_end(scratch); - ProfEnd(); - return out; -} - -//////////////////////////////// -//~ rjf: Link Name Map Building Tasks - -ASYNC_WORK_DEF(p2r_link_name_map_build_work) -{ - ProfBeginFunction(); - Arena *arena = g_p2r_local_state->work_thread_arenas[thread_idx]; - P2R_LinkNameMapBuildIn *in = (P2R_LinkNameMapBuildIn *)input; - CV_RecRange *rec_ranges_first = in->sym->sym_ranges.ranges; - CV_RecRange *rec_ranges_opl = rec_ranges_first + in->sym->sym_ranges.count; - for(CV_RecRange *rec_range = rec_ranges_first; - rec_range < rec_ranges_opl; - rec_range += 1) - { - //- rjf: unpack symbol range info - CV_SymKind kind = rec_range->hdr.kind; - U64 header_struct_size = cv_header_struct_size_from_sym_kind(kind); - U8 *sym_first = in->sym->data.str + rec_range->off + 2; - U8 *sym_opl = sym_first + rec_range->hdr.size; - - //- rjf: skip bad ranges - if(sym_opl > in->sym->data.str + in->sym->data.size || sym_first + header_struct_size > in->sym->data.str + in->sym->data.size) - { - continue; - } - - //- rjf: consume symbol - switch(kind) - { - default:{}break; - case CV_SymKind_PUB32: - { - // rjf: unpack sym - CV_SymPub32 *pub32 = (CV_SymPub32 *)sym_first; - String8 name = str8_cstring_capped(pub32+1, sym_opl); - COFF_SectionHeader *section = (0 < pub32->sec && pub32->sec <= in->coff_sections.count) ? &in->coff_sections.v[pub32->sec-1] : 0; - U64 voff = 0; - if(section != 0) - { - voff = section->voff + pub32->off; - } - - // rjf: commit to link name map - U64 hash = p2r_hash_from_voff(voff); - U64 bucket_idx = hash%in->link_name_map->buckets_count; - P2R_LinkNameNode *node = push_array(arena, P2R_LinkNameNode, 1); - SLLStackPush(in->link_name_map->buckets[bucket_idx], node); - node->voff = voff; - node->name = name; - in->link_name_map->link_name_count += 1; - in->link_name_map->bucket_collision_count += (node->next != 0); - }break; - } - } - ProfEnd(); - return 0; -} - -//////////////////////////////// -//~ rjf: UDT Conversion Tasks - -ASYNC_WORK_DEF(p2r_udt_convert_work) -{ - ProfBeginFunction(); - Arena *arena = g_p2r_local_state->work_thread_arenas[thread_idx]; - P2R_UDTConvertIn *in = (P2R_UDTConvertIn *)input; -#define p2r_type_ptr_from_itype(itype) ((in->itype_type_ptrs && (itype) < in->tpi_leaf->itype_opl) ? (in->itype_type_ptrs[itype]) : 0) - RDIM_UDTChunkList *udts = push_array(arena, RDIM_UDTChunkList, 1); - RDI_U64 udts_chunk_cap = 1024; - ProfScope("convert UDT info") - { - for(CV_TypeId itype = in->itype_first; itype < in->itype_opl; itype += 1) - { - //- rjf: skip basics - if(itype < in->tpi_leaf->itype_first) { continue; } - - //- rjf: grab type for this itype - skip if empty - RDIM_Type *dst_type = in->itype_type_ptrs[itype]; - if(dst_type == 0) { continue; } - - //- rjf: unpack itype leaf range - skip if out-of-range - CV_RecRange *range = &in->tpi_leaf->leaf_ranges.ranges[itype-in->tpi_leaf->itype_first]; - CV_LeafKind kind = range->hdr.kind; - U64 header_struct_size = cv_header_struct_size_from_leaf_kind(kind); - U8 *itype_leaf_first = in->tpi_leaf->data.str + range->off+2; - U8 *itype_leaf_opl = itype_leaf_first + range->hdr.size-2; - if(range->off+range->hdr.size > in->tpi_leaf->data.size || - range->off+2+header_struct_size > in->tpi_leaf->data.size || - range->hdr.size < 2) - { - continue; - } - - //- rjf: build UDT - CV_TypeId field_itype = 0; - switch(kind) - { - default:{}break; - - //////////////////////// - //- rjf: structs/unions/classes -> equip members - // - case CV_LeafKind_CLASS: - case CV_LeafKind_STRUCTURE: - { - CV_LeafStruct *lf = (CV_LeafStruct *)itype_leaf_first; - if(lf->props & CV_TypeProp_FwdRef) - { - break; - } - field_itype = lf->field_itype; - }goto equip_members; - case CV_LeafKind_UNION: - { - CV_LeafUnion *lf = (CV_LeafUnion *)itype_leaf_first; - if(lf->props & CV_TypeProp_FwdRef) - { - break; - } - field_itype = lf->field_itype; - }goto equip_members; - case CV_LeafKind_CLASS2: - case CV_LeafKind_STRUCT2: - { - CV_LeafStruct2 *lf = (CV_LeafStruct2 *)itype_leaf_first; - if(lf->props & CV_TypeProp_FwdRef) - { - break; - } - field_itype = lf->field_itype; - }goto equip_members; - equip_members: - { - Temp scratch = scratch_begin(&arena, 1); - - //- rjf: grab UDT info - RDIM_UDT *dst_udt = dst_type->udt; - if(dst_udt == 0) - { - dst_udt = dst_type->udt = rdim_udt_chunk_list_push(arena, udts, udts_chunk_cap); - dst_udt->self_type = dst_type; - } - - //- rjf: gather all fields - typedef struct FieldListTask FieldListTask; - struct FieldListTask - { - FieldListTask *next; - CV_TypeId itype; - }; - FieldListTask start_fl_task = {0, field_itype}; - FieldListTask *fl_todo_stack = &start_fl_task; - FieldListTask *fl_done_stack = 0; - for(;fl_todo_stack != 0;) - { - //- rjf: take & unpack task - FieldListTask *fl_task = fl_todo_stack; - SLLStackPop(fl_todo_stack); - SLLStackPush(fl_done_stack, fl_task); - CV_TypeId field_list_itype = fl_task->itype; - - //- rjf: skip bad itypes - if(field_list_itype < in->tpi_leaf->itype_first || in->tpi_leaf->itype_opl <= field_list_itype) - { - continue; - } - - //- rjf: field list itype -> range - CV_RecRange *range = &in->tpi_leaf->leaf_ranges.ranges[field_list_itype-in->tpi_leaf->itype_first]; - - //- rjf: skip bad headers - if(range->off+range->hdr.size > in->tpi_leaf->data.size || - range->hdr.size < 2 || - range->hdr.kind != CV_LeafKind_FIELDLIST) - { - continue; - } - - //- rjf: loop over all fields - { - U8 *field_list_first = in->tpi_leaf->data.str+range->off+2; - U8 *field_list_opl = field_list_first+range->hdr.size-2; - for(U8 *read_ptr = field_list_first, *next_read_ptr = field_list_opl; - read_ptr < field_list_opl; - read_ptr = next_read_ptr) - { - // rjf: unpack field - CV_LeafKind field_kind = *(CV_LeafKind *)read_ptr; - U64 field_leaf_header_size = cv_header_struct_size_from_leaf_kind(field_kind); - U8 *field_leaf_first = read_ptr+2; - U8 *field_leaf_opl = field_list_opl; - next_read_ptr = field_leaf_opl; - - // rjf: skip out-of-bounds fields - if(field_leaf_first+field_leaf_header_size > field_list_opl) - { - continue; - } - - // rjf: process field - switch(field_kind) - { - //- rjf: unhandled/invalid cases - default: - { - // TODO(rjf): log - }break; - - //- rjf: INDEX - case CV_LeafKind_INDEX: - { - // rjf: unpack leaf - CV_LeafIndex *lf = (CV_LeafIndex *)field_leaf_first; - CV_TypeId new_itype = lf->itype; - - // rjf: bump next read pointer past header - next_read_ptr = (U8 *)(lf+1); - - // rjf: determine if index itype is new - B32 is_new = 1; - for(FieldListTask *t = fl_done_stack; t != 0; t = t->next) - { - if(t->itype == new_itype) - { - is_new = 0; - break; - } - } - - // rjf: if new -> push task to follow new itype - if(is_new) - { - FieldListTask *new_task = push_array(scratch.arena, FieldListTask, 1); - SLLStackPush(fl_todo_stack, new_task); - new_task->itype = new_itype; - } - }break; - - //- rjf: MEMBER - case CV_LeafKind_MEMBER: - { - // TODO(rjf): log on bad offset - - // rjf: unpack leaf - CV_LeafMember *lf = (CV_LeafMember *)field_leaf_first; - U8 *offset_ptr = (U8 *)(lf+1); - CV_NumericParsed offset = cv_numeric_from_data_range(offset_ptr, field_leaf_opl); - U64 offset64 = cv_u64_from_numeric(&offset); - U8 *name_ptr = offset_ptr + offset.encoded_size; - String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = name.str+name.size+1; - - // rjf: emit member - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_DataField; - mem->name = name; - mem->type = p2r_type_ptr_from_itype(lf->itype); - mem->off = (U32)offset64; - }break; - - //- rjf: STMEMBER - case CV_LeafKind_STMEMBER: - { - // TODO(rjf): handle attribs - - // rjf: unpack leaf - CV_LeafStMember *lf = (CV_LeafStMember *)field_leaf_first; - U8 *name_ptr = (U8 *)(lf+1); - String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = name.str+name.size+1; - - // rjf: emit member - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_StaticData; - mem->name = name; - mem->type = p2r_type_ptr_from_itype(lf->itype); - }break; - - //- rjf: METHOD - case CV_LeafKind_METHOD: - { - // rjf: unpack leaf - CV_LeafMethod *lf = (CV_LeafMethod *)field_leaf_first; - U8 *name_ptr = (U8 *)(lf+1); - String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = name.str+name.size+1; - - //- rjf: method list itype -> range - CV_RecRange *method_list_range = &in->tpi_leaf->leaf_ranges.ranges[lf->list_itype-in->tpi_leaf->itype_first]; - - //- rjf: skip bad method lists - if(method_list_range->off+method_list_range->hdr.size > in->tpi_leaf->data.size || - method_list_range->hdr.size < 2 || - method_list_range->hdr.kind != CV_LeafKind_METHODLIST) - { - break; - } - - //- rjf: loop through all methods & emit members - U8 *method_list_first = in->tpi_leaf->data.str + method_list_range->off + 2; - U8 *method_list_opl = method_list_first + method_list_range->hdr.size-2; - for(U8 *method_read_ptr = method_list_first, *next_method_read_ptr = method_list_opl; - method_read_ptr < method_list_opl; - method_read_ptr = next_method_read_ptr) - { - CV_LeafMethodListMember *method = (CV_LeafMethodListMember*)method_read_ptr; - CV_MethodProp prop = CV_FieldAttribs_Extract_MethodProp(method->attribs); - RDIM_Type *method_type = p2r_type_ptr_from_itype(method->itype); - next_method_read_ptr = (U8 *)(method+1); - - // TODO(allen): PROBLEM - // We only get offsets for virtual functions (the "vbaseoff") from - // "Intro" and "PureIntro". In C++ inheritance, when we have a chain - // of inheritance (let's just talk single inheritance for now) the - // first class in the chain that introduces a new virtual function - // has this "Intro" method. If a later class in the chain redefines - // the virtual function it only has a "Virtual" method which does - // not update the offset. There is a "Virtual" and "PureVirtual" - // variant of "Virtual". The "Pure" in either case means there - // is no concrete procedure. When there is no "Pure" the method - // should have a corresponding procedure symbol id. - // - // The issue is we will want to mark all of our virtual methods as - // virtual and give them an offset, but that means we have to do - // some extra figuring to propogate offsets from "Intro" methods - // to "Virtual" methods in inheritance trees. That is - IF we want - // to start preserving the offsets of virtuals. There is room in - // the method struct to make this work, but for now I've just - // decided to drop this information. It is not urgently useful to - // us and greatly complicates matters. - - // rjf: read vbaseoff - U32 vbaseoff = 0; - if(prop == CV_MethodProp_Intro || prop == CV_MethodProp_PureIntro) - { - if(next_method_read_ptr+4 <= method_list_opl) - { - vbaseoff = *(U32 *)next_method_read_ptr; - } - next_method_read_ptr += 4; - } - - // rjf: emit method - switch(prop) - { - default: - { - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_Method; - mem->name = name; - mem->type = method_type; - }break; - case CV_MethodProp_Static: - { - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_StaticMethod; - mem->name = name; - mem->type = method_type; - }break; - case CV_MethodProp_Virtual: - case CV_MethodProp_PureVirtual: - case CV_MethodProp_Intro: - case CV_MethodProp_PureIntro: - { - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_VirtualMethod; - mem->name = name; - mem->type = method_type; - }break; - } - } - - }break; - - //- rjf: ONEMETHOD - case CV_LeafKind_ONEMETHOD: - { - // TODO(rjf): handle attribs - - // rjf: unpack leaf - CV_LeafOneMethod *lf = (CV_LeafOneMethod *)field_leaf_first; - CV_MethodProp prop = CV_FieldAttribs_Extract_MethodProp(lf->attribs); - U8 *vbaseoff_ptr = (U8 *)(lf+1); - U8 *vbaseoff_opl_ptr = vbaseoff_ptr; - U32 vbaseoff = 0; - if(prop == CV_MethodProp_Intro || prop == CV_MethodProp_PureIntro) - { - vbaseoff = *(U32 *)(vbaseoff_ptr); - vbaseoff_opl_ptr += sizeof(U32); - } - U8 *name_ptr = vbaseoff_opl_ptr; - String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); - RDIM_Type *method_type = p2r_type_ptr_from_itype(lf->itype); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = name.str+name.size+1; - - // rjf: emit method - switch(prop) - { - default: - { - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_Method; - mem->name = name; - mem->type = method_type; - }break; - - case CV_MethodProp_Static: - { - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_StaticMethod; - mem->name = name; - mem->type = method_type; - }break; - - case CV_MethodProp_Virtual: - case CV_MethodProp_PureVirtual: - case CV_MethodProp_Intro: - case CV_MethodProp_PureIntro: - { - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_VirtualMethod; - mem->name = name; - mem->type = method_type; - }break; - } - }break; - - //- rjf: NESTTYPE - case CV_LeafKind_NESTTYPE: - { - // rjf: unpack leaf - CV_LeafNestType *lf = (CV_LeafNestType *)field_leaf_first; - U8 *name_ptr = (U8 *)(lf+1); - String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = name.str+name.size+1; - - // rjf: emit member - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_NestedType; - mem->name = name; - mem->type = p2r_type_ptr_from_itype(lf->itype); - }break; - - //- rjf: NESTTYPEEX - case CV_LeafKind_NESTTYPEEX: - { - // TODO(rjf): handle attribs - - // rjf: unpack leaf - CV_LeafNestTypeEx *lf = (CV_LeafNestTypeEx *)field_leaf_first; - U8 *name_ptr = (U8 *)(lf+1); - String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = name.str+name.size+1; - - // rjf: emit member - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_NestedType; - mem->name = name; - mem->type = p2r_type_ptr_from_itype(lf->itype); - }break; - - //- rjf: BCLASS - case CV_LeafKind_BCLASS: - { - // TODO(rjf): log on bad offset - - // rjf: unpack leaf - CV_LeafBClass *lf = (CV_LeafBClass *)field_leaf_first; - U8 *offset_ptr = (U8 *)(lf+1); - CV_NumericParsed offset = cv_numeric_from_data_range(offset_ptr, field_leaf_opl); - U64 offset64 = cv_u64_from_numeric(&offset); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = offset_ptr+offset.encoded_size; - - // rjf: emit member - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_Base; - mem->type = p2r_type_ptr_from_itype(lf->itype); - mem->off = (U32)offset64; - }break; - - //- rjf: VBCLASS/IVBCLASS - case CV_LeafKind_VBCLASS: - case CV_LeafKind_IVBCLASS: - { - // TODO(rjf): log on bad offsets - // TODO(rjf): handle attribs - // TODO(rjf): offsets? - - // rjf: unpack leaf - CV_LeafVBClass *lf = (CV_LeafVBClass *)field_leaf_first; - U8 *num1_ptr = (U8 *)(lf+1); - CV_NumericParsed num1 = cv_numeric_from_data_range(num1_ptr, field_leaf_opl); - U8 *num2_ptr = num1_ptr + num1.encoded_size; - CV_NumericParsed num2 = cv_numeric_from_data_range(num2_ptr, field_leaf_opl); - - // rjf: bump next read pointer past header - next_read_ptr = (U8 *)(lf+1); - - // rjf: emit member - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_VirtualBase; - mem->type = p2r_type_ptr_from_itype(lf->itype); - }break; - - //- rjf: VFUNCTAB - case CV_LeafKind_VFUNCTAB: - { - CV_LeafVFuncTab *lf = (CV_LeafVFuncTab *)field_leaf_first; - - // rjf: bump next read pointer past header - next_read_ptr = (U8 *)(lf+1); - - // NOTE(rjf): currently no-op this case - (void)lf; - }break; - } - - // rjf: align-up next field - next_read_ptr = (U8 *)AlignPow2((U64)next_read_ptr, 4); - } - } - } - - scratch_end(scratch); - }break; - - //////////////////////// - //- rjf: enums -> equip enumerates - // - case CV_LeafKind_ENUM: - { - CV_LeafEnum *lf = (CV_LeafEnum *)itype_leaf_first; - if(lf->props & CV_TypeProp_FwdRef) - { - break; - } - field_itype = lf->field_itype; - }goto equip_enum_vals; - equip_enum_vals:; - { - Temp scratch = scratch_begin(&arena, 1); - - //- rjf: grab UDT info - RDIM_UDT *dst_udt = dst_type->udt; - if(dst_udt == 0) - { - dst_udt = dst_type->udt = rdim_udt_chunk_list_push(arena, udts, udts_chunk_cap); - dst_udt->self_type = dst_type; - } - - //- rjf: gather all fields - typedef struct FieldListTask FieldListTask; - struct FieldListTask - { - FieldListTask *next; - CV_TypeId itype; - }; - FieldListTask start_fl_task = {0, field_itype}; - FieldListTask *fl_todo_stack = &start_fl_task; - FieldListTask *fl_done_stack = 0; - for(;fl_todo_stack != 0;) - { - //- rjf: take & unpack task - FieldListTask *fl_task = fl_todo_stack; - SLLStackPop(fl_todo_stack); - SLLStackPush(fl_done_stack, fl_task); - CV_TypeId field_list_itype = fl_task->itype; - - //- rjf: skip bad itypes - if(field_list_itype < in->tpi_leaf->itype_first || in->tpi_leaf->itype_opl <= field_list_itype) - { - continue; - } - - //- rjf: field list itype -> range - CV_RecRange *range = &in->tpi_leaf->leaf_ranges.ranges[field_list_itype-in->tpi_leaf->itype_first]; - - //- rjf: skip bad headers - if(range->off+range->hdr.size > in->tpi_leaf->data.size || - range->hdr.size < 2 || - range->hdr.kind != CV_LeafKind_FIELDLIST) - { - continue; - } - - //- rjf: loop over all fields - { - U8 *field_list_first = in->tpi_leaf->data.str+range->off+2; - U8 *field_list_opl = field_list_first+range->hdr.size-2; - for(U8 *read_ptr = field_list_first, *next_read_ptr = field_list_opl; - read_ptr < field_list_opl; - read_ptr = next_read_ptr) - { - // rjf: unpack field - CV_LeafKind field_kind = *(CV_LeafKind *)read_ptr; - U64 field_leaf_header_size = cv_header_struct_size_from_leaf_kind(field_kind); - U8 *field_leaf_first = read_ptr+2; - U8 *field_leaf_opl = field_leaf_first+range->hdr.size-2; - next_read_ptr = field_leaf_opl; - - // rjf: skip out-of-bounds fields - if(field_leaf_first+field_leaf_header_size > field_list_opl) - { - continue; - } - - // rjf: process field - switch(field_kind) - { - //- rjf: unhandled/invalid cases - default: - { - // TODO(rjf): log - }break; - - //- rjf: INDEX - case CV_LeafKind_INDEX: - { - // rjf: unpack leaf - CV_LeafIndex *lf = (CV_LeafIndex *)field_leaf_first; - CV_TypeId new_itype = lf->itype; - - // rjf: determine if index itype is new - B32 is_new = 1; - for(FieldListTask *t = fl_done_stack; t != 0; t = t->next) - { - if(t->itype == new_itype) - { - is_new = 0; - break; - } - } - - // rjf: if new -> push task to follow new itype - if(is_new) - { - FieldListTask *new_task = push_array(scratch.arena, FieldListTask, 1); - SLLStackPush(fl_todo_stack, new_task); - new_task->itype = new_itype; - } - }break; - - //- rjf: ENUMERATE - case CV_LeafKind_ENUMERATE: - { - // TODO(rjf): attribs - - // rjf: unpack leaf - CV_LeafEnumerate *lf = (CV_LeafEnumerate *)field_leaf_first; - U8 *val_ptr = (U8 *)(lf+1); - CV_NumericParsed val = cv_numeric_from_data_range(val_ptr, field_leaf_opl); - U64 val64 = cv_u64_from_numeric(&val); - U8 *name_ptr = val_ptr + val.encoded_size; - String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = name.str+name.size+1; - - // rjf: emit member - RDIM_UDTEnumVal *enum_val = rdim_udt_push_enum_val(arena, udts, dst_udt); - enum_val->name = name; - enum_val->val = val64; - }break; - } - - // rjf: align-up next field - next_read_ptr = (U8 *)AlignPow2((U64)next_read_ptr, 4); - } - } - } - - scratch_end(scratch); - }break; - } - } - } -#undef p2r_type_ptr_from_itype - ProfEnd(); - return udts; -} - -//////////////////////////////// -//~ rjf: Symbol Stream Conversion Path & Thread - -ASYNC_WORK_DEF(p2r_symbol_stream_convert_work) -{ - ProfBeginFunction(); - Arena *arena = g_p2r_local_state->work_thread_arenas[thread_idx]; - Temp scratch = scratch_begin(&arena, 1); - P2R_SymbolStreamConvertIn *in = (P2R_SymbolStreamConvertIn *)input; -#define p2r_type_ptr_from_itype(itype) ((in->itype_type_ptrs && (itype) < in->tpi_leaf->itype_opl) ? (in->itype_type_ptrs[itype]) : 0) - - ////////////////////////// - //- rjf: set up outputs for this sym stream - // - U64 sym_procedures_chunk_cap = 1024; - U64 sym_global_variables_chunk_cap = 1024; - U64 sym_thread_variables_chunk_cap = 1024; - U64 sym_scopes_chunk_cap = 1024; - U64 sym_inline_sites_chunk_cap = 1024; - RDIM_SymbolChunkList sym_procedures = {0}; - RDIM_SymbolChunkList sym_global_variables = {0}; - RDIM_SymbolChunkList sym_thread_variables = {0}; - RDIM_ScopeChunkList sym_scopes = {0}; - RDIM_InlineSiteChunkList sym_inline_sites = {0}; - - ////////////////////////// - //- rjf: symbols pass 1: produce procedure frame info map (procedure -> frame info) - // - U64 procedure_frameprocs_count = 0; - U64 procedure_frameprocs_cap = (in->sym_ranges_opl - in->sym_ranges_first); - CV_SymFrameproc **procedure_frameprocs = push_array_no_zero(scratch.arena, CV_SymFrameproc *, procedure_frameprocs_cap); - ProfScope("symbols pass 1: produce procedure frame info map (procedure -> frame info)") - { - U64 procedure_num = 0; - CV_RecRange *rec_ranges_first = in->sym->sym_ranges.ranges + in->sym_ranges_first; - CV_RecRange *rec_ranges_opl = in->sym->sym_ranges.ranges + in->sym_ranges_opl; - for(CV_RecRange *rec_range = rec_ranges_first; - rec_range < rec_ranges_opl; - rec_range += 1) - { - //- rjf: rec range -> symbol info range - U64 sym_off_first = rec_range->off + 2; - U64 sym_off_opl = rec_range->off + rec_range->hdr.size; - - //- rjf: skip invalid ranges - if(sym_off_opl > in->sym->data.size || sym_off_first > in->sym->data.size || sym_off_first > sym_off_opl) - { - continue; - } - - //- rjf: unpack symbol info - CV_SymKind kind = rec_range->hdr.kind; - U64 sym_header_struct_size = cv_header_struct_size_from_sym_kind(kind); - void *sym_header_struct_base = in->sym->data.str + sym_off_first; - - //- rjf: skip bad sizes - if(sym_off_first + sym_header_struct_size > sym_off_opl) - { - continue; - } - - //- rjf: consume symbol based on kind - switch(kind) - { - default:{}break; - - //- rjf: FRAMEPROC - case CV_SymKind_FRAMEPROC: - { - if(procedure_num == 0) { break; } - if(procedure_num > procedure_frameprocs_cap) { break; } - CV_SymFrameproc *frameproc = (CV_SymFrameproc*)sym_header_struct_base; - procedure_frameprocs[procedure_num-1] = frameproc; - procedure_frameprocs_count = Max(procedure_frameprocs_count, procedure_num); - }break; - - //- rjf: LPROC32/GPROC32 - case CV_SymKind_LPROC32: - case CV_SymKind_GPROC32: - { - procedure_num += 1; - }break; - } - } - U64 scratch_overkill = sizeof(procedure_frameprocs[0])*(procedure_frameprocs_cap-procedure_frameprocs_count); - arena_pop(scratch.arena, scratch_overkill); - } - - ////////////////////////// - //- rjf: symbols pass 2: construct all symbols, given procedure frame info map - // - ProfScope("symbols pass 2: construct all symbols, given procedure frame info map") - { - RDIM_LocationSet *defrange_target = 0; - B32 defrange_target_is_param = 0; - U64 procedure_num = 0; - U64 procedure_base_voff = 0; - CV_RecRange *rec_ranges_first = in->sym->sym_ranges.ranges + in->sym_ranges_first; - CV_RecRange *rec_ranges_opl = in->sym->sym_ranges.ranges + in->sym_ranges_opl; - typedef struct P2R_ScopeNode P2R_ScopeNode; - struct P2R_ScopeNode - { - P2R_ScopeNode *next; - RDIM_Scope *scope; - }; - P2R_ScopeNode *top_scope_node = 0; - P2R_ScopeNode *free_scope_node = 0; - RDIM_LineTable *inline_site_line_table = in->first_inline_site_line_table; - for(CV_RecRange *rec_range = rec_ranges_first; - rec_range < rec_ranges_opl; - rec_range += 1) - { - //- rjf: rec range -> symbol info range - U64 sym_off_first = rec_range->off + 2; - U64 sym_off_opl = rec_range->off + rec_range->hdr.size; - - //- rjf: skip invalid ranges - if(sym_off_opl > in->sym->data.size || sym_off_first > in->sym->data.size || sym_off_first > sym_off_opl) - { - continue; - } - - //- rjf: unpack symbol info - CV_SymKind kind = rec_range->hdr.kind; - U64 sym_header_struct_size = cv_header_struct_size_from_sym_kind(kind); - void *sym_header_struct_base = in->sym->data.str + sym_off_first; - void *sym_data_opl = in->sym->data.str + sym_off_opl; - - //- rjf: skip bad sizes - if(sym_off_first + sym_header_struct_size > sym_off_opl) - { - continue; - } - - //- rjf: consume symbol based on kind - switch(kind) - { - default:{}break; - - //- rjf: END - case CV_SymKind_END: - { - P2R_ScopeNode *n = top_scope_node; - if(n != 0) - { - SLLStackPop(top_scope_node); - SLLStackPush(free_scope_node, n); - } - defrange_target = 0; - defrange_target_is_param = 0; - }break; - - //- rjf: BLOCK32 - case CV_SymKind_BLOCK32: - { - // rjf: unpack sym - CV_SymBlock32 *block32 = (CV_SymBlock32 *)sym_header_struct_base; - - // rjf: build scope, insert into current parent scope - RDIM_Scope *scope = rdim_scope_chunk_list_push(arena, &sym_scopes, sym_scopes_chunk_cap); - { - if(top_scope_node == 0) - { - // TODO(rjf): log - } - if(top_scope_node != 0) - { - RDIM_Scope *top_scope = top_scope_node->scope; - SLLQueuePush_N(top_scope->first_child, top_scope->last_child, scope, next_sibling); - scope->parent_scope = top_scope; - scope->symbol = top_scope->symbol; - } - COFF_SectionHeader *section = (0 < block32->sec && block32->sec <= in->coff_sections.count) ? &in->coff_sections.v[block32->sec-1] : 0; - if(section != 0) - { - U64 voff_first = section->voff + block32->off; - U64 voff_last = voff_first + block32->len; - RDIM_Rng1U64 voff_range = {voff_first, voff_last}; - rdim_scope_push_voff_range(arena, &sym_scopes, scope, voff_range); - } - } - - // rjf: push this scope to scope stack - { - P2R_ScopeNode *node = free_scope_node; - if(node != 0) { SLLStackPop(free_scope_node); } - else { node = push_array_no_zero(scratch.arena, P2R_ScopeNode, 1); } - node->scope = scope; - SLLStackPush(top_scope_node, node); - } - }break; - - //- rjf: LDATA32/GDATA32 - case CV_SymKind_LDATA32: - case CV_SymKind_GDATA32: - { - // rjf: unpack sym - CV_SymData32 *data32 = (CV_SymData32 *)sym_header_struct_base; - String8 name = str8_cstring_capped(data32+1, sym_data_opl); - COFF_SectionHeader *section = (0 < data32->sec && data32->sec <= in->coff_sections.count) ? &in->coff_sections.v[data32->sec-1] : 0; - U64 voff = (section ? section->voff : 0) + data32->off; - - // rjf: determine if this is an exact duplicate global - // - // PDB likes to have duplicates of these spread across different - // symbol streams so we deduplicate across the entire translation - // context. - // - B32 is_duplicate = 0; - { - // TODO(rjf): @important global symbol dedup - } - - // rjf: is not duplicate -> push new global - if(!is_duplicate) - { - // rjf: unpack global variable's type - RDIM_Type *type = p2r_type_ptr_from_itype(data32->itype); - - // rjf: unpack global's container type - RDIM_Type *container_type = 0; - U64 container_name_opl = p2r_end_of_cplusplus_container_name(name); - if(container_name_opl > 2) - { - String8 container_name = str8(name.str, container_name_opl - 2); - CV_TypeId cv_type_id = pdb_tpi_first_itype_from_name(in->tpi_hash, in->tpi_leaf, container_name, 0); - container_type = p2r_type_ptr_from_itype(cv_type_id); - } - - // rjf: unpack global's container symbol - RDIM_Symbol *container_symbol = 0; - if(container_type == 0 && top_scope_node != 0) - { - container_symbol = top_scope_node->scope->symbol; - } - - // form a VOFF location -#if 0 - RDIM_LocationSet locset = {0}; - RDIM_Location *voff_loc = rdim_push_location_voff(arena, voff); - rdim_location_set_push_case(arena, &locset, (RDIM_Rng1U64){0,max_U64}, voff_loc); -#endif - - // rjf: build symbol - RDIM_Symbol *symbol = rdim_symbol_chunk_list_push(arena, &sym_global_variables, sym_global_variables_chunk_cap); - symbol->is_extern = (kind == CV_SymKind_GDATA32); - symbol->name = name; - symbol->type = type; - //symbol->locset = locset; - symbol->container_symbol = container_symbol; - symbol->container_type = container_type; - } - }break; - - //- rjf: LPROC32/GPROC32 - case CV_SymKind_LPROC32: - case CV_SymKind_GPROC32: - { - // rjf: unpack sym - CV_SymProc32 *proc32 = (CV_SymProc32 *)sym_header_struct_base; - String8 name = str8_cstring_capped(proc32+1, sym_data_opl); - RDIM_Type *type = p2r_type_ptr_from_itype(proc32->itype); - - // rjf: unpack proc's container type - RDIM_Type *container_type = 0; - U64 container_name_opl = p2r_end_of_cplusplus_container_name(name); - if(container_name_opl > 2 && in->tpi_hash != 0 && in->tpi_leaf != 0) - { - String8 container_name = str8(name.str, container_name_opl - 2); - CV_TypeId cv_type_id = pdb_tpi_first_itype_from_name(in->tpi_hash, in->tpi_leaf, container_name, 0); - container_type = p2r_type_ptr_from_itype(cv_type_id); - } - - // rjf: unpack proc's container symbol - RDIM_Symbol *container_symbol = 0; - if(container_type == 0 && top_scope_node != 0) - { - container_symbol = top_scope_node->scope->symbol; - } - - // rjf: build procedure's root scope - // - // NOTE: even if there could be a containing scope at this point (which should be - // illegal in C/C++ but not necessarily in another language) we would not use - // it here because these scopes refer to the ranges of code that make up a - // procedure *not* the namespaces, so a procedure's root scope always has - // no parent. - RDIM_Scope *procedure_root_scope = rdim_scope_chunk_list_push(arena, &sym_scopes, sym_scopes_chunk_cap); - { - COFF_SectionHeader *section = (0 < proc32->sec && proc32->sec <= in->coff_sections.count) ? &in->coff_sections.v[proc32->sec-1] : 0; - if(section != 0) - { - U64 voff_first = section->voff + proc32->off; - U64 voff_last = voff_first + proc32->len; - RDIM_Rng1U64 voff_range = {voff_first, voff_last}; - rdim_scope_push_voff_range(arena, &sym_scopes, procedure_root_scope, voff_range); - procedure_base_voff = voff_first; - } - } - - // rjf: root scope voff minimum range -> link name - String8 link_name = {0}; - if(procedure_root_scope->voff_ranges.min != 0) - { - U64 voff = procedure_root_scope->voff_ranges.min; - U64 hash = p2r_hash_from_voff(voff); - U64 bucket_idx = hash%in->link_name_map->buckets_count; - P2R_LinkNameNode *node = 0; - for(P2R_LinkNameNode *n = in->link_name_map->buckets[bucket_idx]; n != 0; n = n->next) - { - if(n->voff == voff) - { - link_name = n->name; - break; - } - } - } - - // rjf: build procedure symbol - RDIM_Symbol *procedure_symbol = rdim_symbol_chunk_list_push(arena, &sym_procedures, sym_procedures_chunk_cap); - procedure_symbol->is_extern = (kind == CV_SymKind_GPROC32); - procedure_symbol->name = name; - procedure_symbol->link_name = link_name; - procedure_symbol->type = type; - procedure_symbol->container_symbol = container_symbol; - procedure_symbol->container_type = container_type; - procedure_symbol->root_scope = procedure_root_scope; - - // rjf: fill root scope's symbol - procedure_root_scope->symbol = procedure_symbol; - - // rjf: push scope to scope stack - { - P2R_ScopeNode *node = free_scope_node; - if(node != 0) { SLLStackPop(free_scope_node); } - else { node = push_array_no_zero(scratch.arena, P2R_ScopeNode, 1); } - node->scope = procedure_root_scope; - SLLStackPush(top_scope_node, node); - } - - // rjf: increment procedure counter - procedure_num += 1; - }break; - - //- rjf: REGREL32 - case CV_SymKind_REGREL32: - { - // TODO(rjf): apparently some of the information here may end up being - // redundant with "better" information from CV_SymKind_LOCAL record. - // we don't currently handle this, but if those cases arise then it - // will obviously be better to prefer the better information from both - // records. - - // rjf: no containing scope? -> malformed data; locals cannot be produced - // outside of a containing scope - if(top_scope_node == 0) - { - break; - } - - // rjf: unpack sym - CV_SymRegrel32 *regrel32 = (CV_SymRegrel32 *)sym_header_struct_base; - String8 name = str8_cstring_capped(regrel32+1, sym_data_opl); - RDIM_Type *type = p2r_type_ptr_from_itype(regrel32->itype); - CV_Reg cv_reg = regrel32->reg; - U32 var_off = regrel32->reg_off; - - // rjf: determine if this is a parameter - RDI_LocalKind local_kind = RDI_LocalKind_Variable; - { - B32 is_stack_reg = 0; - switch(in->arch) - { - default:{}break; - case RDI_Arch_X86:{is_stack_reg = (cv_reg == CV_Regx86_ESP);}break; - case RDI_Arch_X64:{is_stack_reg = (cv_reg == CV_Regx64_RSP);}break; - } - if(is_stack_reg) - { - U32 frame_size = 0xFFFFFFFF; - if(procedure_num != 0 && procedure_frameprocs[procedure_num-1] != 0 && procedure_num < procedure_frameprocs_count) - { - CV_SymFrameproc *frameproc = procedure_frameprocs[procedure_num-1]; - frame_size = frameproc->frame_size; - } - if(var_off > frame_size) - { - local_kind = RDI_LocalKind_Parameter; - } - } - } - - // TODO(rjf): is this correct? - // rjf: redirect type, if 0, and if outside frame, to the return type of the - // containing procedure - if(local_kind == RDI_LocalKind_Parameter && regrel32->itype == 0 && - top_scope_node->scope->symbol != 0 && - top_scope_node->scope->symbol->type != 0) - { - type = top_scope_node->scope->symbol->type->direct_type; - } - - // rjf: build local - RDIM_Scope *scope = top_scope_node->scope; - RDIM_Local *local = rdim_scope_push_local(arena, &sym_scopes, scope); - local->kind = local_kind; - local->name = name; - local->type = type; - - // rjf: add location info to local - if(type != 0) - { - // rjf: determine if we need an extra indirection to the value - B32 extra_indirection_to_value = 0; - switch(in->arch) - { - case RDI_Arch_X86: - { - extra_indirection_to_value = (local_kind == RDI_LocalKind_Parameter && (type->byte_size > 4 || !IsPow2OrZero(type->byte_size))); - }break; - case RDI_Arch_X64: - { - extra_indirection_to_value = (local_kind == RDI_LocalKind_Parameter && (type->byte_size > 8 || !IsPow2OrZero(type->byte_size))); - }break; - } - - // rjf: get raddbg register code - RDI_RegCode reg_code = cv2r_rdi_reg_code_from_cv_reg_code(in->arch, cv_reg); - // TODO(rjf): real byte_size & byte_pos from cv_reg goes here - U32 byte_size = 8; - U32 byte_pos = 0; - - // rjf: set location case - RDIM_Location *loc = p2r_location_from_addr_reg_off(arena, in->arch, reg_code, byte_size, byte_pos, (S64)(S32)var_off, extra_indirection_to_value); - RDIM_Rng1U64 voff_range = {0, max_U64}; - rdim_location_set_push_case(arena, &sym_scopes, &local->locset, voff_range, loc); - } - }break; - - //- rjf: LTHREAD32/GTHREAD32 - case CV_SymKind_LTHREAD32: - case CV_SymKind_GTHREAD32: - { - // rjf: unpack sym - CV_SymThread32 *thread32 = (CV_SymThread32 *)sym_header_struct_base; - String8 name = str8_cstring_capped(thread32+1, sym_data_opl); - U32 tls_off = thread32->tls_off; - RDIM_Type *type = p2r_type_ptr_from_itype(thread32->itype); - - // rjf: unpack thread variable's container type - RDIM_Type *container_type = 0; - U64 container_name_opl = p2r_end_of_cplusplus_container_name(name); - if(container_name_opl > 2) - { - String8 container_name = str8(name.str, container_name_opl - 2); - CV_TypeId cv_type_id = pdb_tpi_first_itype_from_name(in->tpi_hash, in->tpi_leaf, container_name, 0); - container_type = p2r_type_ptr_from_itype(cv_type_id); - } - - // rjf: unpack thread variable's container symbol - RDIM_Symbol *container_symbol = 0; - if(container_type == 0 && top_scope_node != 0) - { - container_symbol = top_scope_node->scope->symbol; - } - - // form TLS OFF location -#if 0 - RDIM_LocationSet locset = {0}; - RDIM_Location *tls_off_loc = rdim_push_location_tls_off(arena, tls_off); - rdim_location_set_push_case(arena, &locset, (RDIM_Rng1U64){0,max_U64}, tls_off_loc); -#endif - - // rjf: build symbol - RDIM_Symbol *tvar = rdim_symbol_chunk_list_push(arena, &sym_thread_variables, sym_thread_variables_chunk_cap); - tvar->name = name; - tvar->type = type; - tvar->is_extern = (kind == CV_SymKind_GTHREAD32); - //tvar->locset = locset; - tvar->container_type = container_type; - tvar->container_symbol = container_symbol; - }break; - - //- rjf: LOCAL - case CV_SymKind_LOCAL: - { - // rjf: no containing scope? -> malformed data; locals cannot be produced - // outside of a containing scope - if(top_scope_node == 0) - { - break; - } - - // rjf: unpack sym - CV_SymLocal *slocal = (CV_SymLocal *)sym_header_struct_base; - String8 name = str8_cstring_capped(slocal+1, sym_data_opl); - RDIM_Type *type = p2r_type_ptr_from_itype(slocal->itype); - - // rjf: determine if this symbol encodes the beginning of a global modification - B32 is_global_modification = 0; - if((slocal->flags & CV_LocalFlag_Global) || - (slocal->flags & CV_LocalFlag_Static)) - { - is_global_modification = 1; - } - - // rjf: is global modification -> emit global modification symbol - if(is_global_modification) - { - // TODO(rjf): add global modification symbols - defrange_target = 0; - defrange_target_is_param = 0; - } - - // rjf: is not a global modification -> emit a local variable - if(!is_global_modification) - { - // rjf: determine local kind - RDI_LocalKind local_kind = RDI_LocalKind_Variable; - if(slocal->flags & CV_LocalFlag_Param) - { - local_kind = RDI_LocalKind_Parameter; - } - - // rjf: build local - RDIM_Scope *scope = top_scope_node->scope; - RDIM_Local *local = rdim_scope_push_local(arena, &sym_scopes, scope); - local->kind = local_kind; - local->name = name; - local->type = type; - - // rjf: save defrange target, for subsequent defrange symbols - defrange_target = &local->locset; - defrange_target_is_param = (local_kind == RDI_LocalKind_Parameter); - } - }break; - - //- rjf: DEFRANGE_REGISTESR - case CV_SymKind_DEFRANGE_REGISTER: - { - // rjf: no defrange target? -> somehow we got to a defrange symbol without first seeing - // a local - break immediately - if(defrange_target == 0) - { - break; - } - - // rjf: unpack sym - CV_SymDefrangeRegister *defrange_register = (CV_SymDefrangeRegister*)sym_header_struct_base; - CV_Reg cv_reg = defrange_register->reg; - CV_LvarAddrRange *range = &defrange_register->range; - COFF_SectionHeader *range_section = (0 < range->sec && range->sec <= in->coff_sections.count) ? &in->coff_sections.v[range->sec-1] : 0; - CV_LvarAddrGap *gaps = (CV_LvarAddrGap*)(defrange_register+1); - U64 gap_count = ((U8*)sym_data_opl - (U8*)gaps) / sizeof(*gaps); - RDI_RegCode reg_code = cv2r_rdi_reg_code_from_cv_reg_code(in->arch, cv_reg); - - // rjf: build location - RDIM_Location *location = rdim_push_location_val_reg(arena, reg_code); - - // rjf: emit locations over ranges - p2r_location_over_lvar_addr_range(arena, &sym_scopes, defrange_target, location, range, range_section, gaps, gap_count); - }break; - - //- rjf: DEFRANGE_FRAMEPOINTER_REL - case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL: - { - // rjf: no defrange target? -> somehow we got to a defrange symbol without first seeing - // a local - break immediately - if(defrange_target == 0) - { - break; - } - - // rjf: find current procedure's frameproc - CV_SymFrameproc *frameproc = 0; - if(procedure_num != 0 && procedure_num <= procedure_frameprocs_count && procedure_frameprocs[procedure_num-1] != 0) - { - frameproc = procedure_frameprocs[procedure_num-1]; - } - - // rjf: no current valid frameproc? -> somehow we got a to a framepointer-relative defrange - // without having an actually active procedure - break - if(frameproc == 0) - { - break; - } - - // rjf: unpack sym - CV_SymDefrangeFramepointerRel *defrange_fprel = (CV_SymDefrangeFramepointerRel*)sym_header_struct_base; - CV_LvarAddrRange *range = &defrange_fprel->range; - COFF_SectionHeader *range_section = (0 < range->sec && range->sec <= in->coff_sections.count) ? &in->coff_sections.v[range->sec-1] : 0; - CV_LvarAddrGap *gaps = (CV_LvarAddrGap*)(defrange_fprel + 1); - U64 gap_count = ((U8*)sym_data_opl - (U8*)gaps) / sizeof(*gaps); - - // rjf: select frame pointer register - CV_EncodedFramePtrReg encoded_fp_reg = cv_pick_fp_encoding(frameproc, defrange_target_is_param); - RDI_RegCode fp_register_code = cv2r_reg_code_from_arch_encoded_fp_reg(in->arch, encoded_fp_reg); - - // rjf: build location - B32 extra_indirection = 0; - U32 byte_size = rdi_addr_size_from_arch(in->arch); - U32 byte_pos = 0; - S64 var_off = (S64)defrange_fprel->off; - RDIM_Location *location = p2r_location_from_addr_reg_off(arena, in->arch, fp_register_code, byte_size, byte_pos, var_off, extra_indirection); - - // rjf: emit locations over ranges - p2r_location_over_lvar_addr_range(arena, &sym_scopes, defrange_target, location, range, range_section, gaps, gap_count); - }break; - - //- rjf: DEFRANGE_SUBFIELD_REGISTER - case CV_SymKind_DEFRANGE_SUBFIELD_REGISTER: - { - // rjf: no defrange target? -> somehow we got to a defrange symbol without first seeing - // a local - break immediately - if(defrange_target == 0) - { - break; - } - - // rjf: unpack sym - CV_SymDefrangeSubfieldRegister *defrange_subfield_register = (CV_SymDefrangeSubfieldRegister*)sym_header_struct_base; - CV_Reg cv_reg = defrange_subfield_register->reg; - CV_LvarAddrRange *range = &defrange_subfield_register->range; - COFF_SectionHeader *range_section = (0 < range->sec && range->sec <= in->coff_sections.count) ? &in->coff_sections.v[range->sec-1] : 0; - CV_LvarAddrGap *gaps = (CV_LvarAddrGap*)(defrange_subfield_register + 1); - U64 gap_count = ((U8*)sym_data_opl - (U8*)gaps) / sizeof(*gaps); - RDI_RegCode reg_code = cv2r_rdi_reg_code_from_cv_reg_code(in->arch, cv_reg); - - // rjf: skip "subfield" location info - currently not supported - if(defrange_subfield_register->field_offset != 0) - { - break; - } - - // rjf: build location - RDIM_Location *location = rdim_push_location_val_reg(arena, reg_code); - - // rjf: emit locations over ranges - p2r_location_over_lvar_addr_range(arena, &sym_scopes, defrange_target, location, range, range_section, gaps, gap_count); - }break; - - //- rjf: DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE - case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE: - { - // rjf: no defrange target? -> somehow we got to a defrange symbol without first seeing - // a local - break immediately - if(defrange_target == 0) - { - break; - } - - // rjf: find current procedure's frameproc - CV_SymFrameproc *frameproc = 0; - if(procedure_num != 0 && procedure_num <= procedure_frameprocs_count && procedure_frameprocs[procedure_num-1] != 0) - { - frameproc = procedure_frameprocs[procedure_num-1]; - } - - // rjf: no current valid frameproc? -> somehow we got a to a framepointer-relative defrange - // without having an actually active procedure - break - if(frameproc == 0) - { - break; - } - - // rjf: unpack sym - CV_SymDefrangeFramepointerRelFullScope *defrange_fprel_full_scope = (CV_SymDefrangeFramepointerRelFullScope*)sym_header_struct_base; - CV_EncodedFramePtrReg encoded_fp_reg = cv_pick_fp_encoding(frameproc, defrange_target_is_param); - RDI_RegCode fp_register_code = cv2r_reg_code_from_arch_encoded_fp_reg(in->arch, encoded_fp_reg); - - // rjf: build location - B32 extra_indirection = 0; - U32 byte_size = rdi_addr_size_from_arch(in->arch); - U32 byte_pos = 0; - S64 var_off = (S64)defrange_fprel_full_scope->off; - RDIM_Location *location = p2r_location_from_addr_reg_off(arena, in->arch, fp_register_code, byte_size, byte_pos, var_off, extra_indirection); - - // rjf: emit location over ranges - RDIM_Rng1U64 voff_range = {0, max_U64}; - rdim_location_set_push_case(arena, &sym_scopes, defrange_target, voff_range, location); - }break; - - //- rjf: DEFRANGE_REGISTER_REL - case CV_SymKind_DEFRANGE_REGISTER_REL: - { - // rjf: no defrange target? -> somehow we got to a defrange symbol without first seeing - // a local - break immediately - if(defrange_target == 0) - { - break; - } - - // rjf: unpack sym - CV_SymDefrangeRegisterRel *defrange_register_rel = (CV_SymDefrangeRegisterRel*)sym_header_struct_base; - CV_Reg cv_reg = defrange_register_rel->reg; - RDI_RegCode reg_code = cv2r_rdi_reg_code_from_cv_reg_code(in->arch, cv_reg); - CV_LvarAddrRange *range = &defrange_register_rel->range; - COFF_SectionHeader *range_section = (0 < range->sec && range->sec <= in->coff_sections.count) ? &in->coff_sections.v[range->sec-1] : 0; - CV_LvarAddrGap *gaps = (CV_LvarAddrGap*)(defrange_register_rel + 1); - U64 gap_count = ((U8*)sym_data_opl - (U8*)gaps) / sizeof(*gaps); - - // rjf: build location - // TODO(rjf): offset & size from cv_reg code - U32 byte_size = rdi_addr_size_from_arch(in->arch); - U32 byte_pos = 0; - B32 extra_indirection_to_value = 0; - S64 var_off = defrange_register_rel->reg_off; - RDIM_Location *location = p2r_location_from_addr_reg_off(arena, in->arch, reg_code, byte_size, byte_pos, var_off, extra_indirection_to_value); - - // rjf: emit locations over ranges - p2r_location_over_lvar_addr_range(arena, &sym_scopes, defrange_target, location, range, range_section, gaps, gap_count); - }break; - - //- rjf: FILESTATIC - case CV_SymKind_FILESTATIC: - { - CV_SymFileStatic *file_static = (CV_SymFileStatic*)sym_header_struct_base; - String8 name = str8_cstring_capped(file_static+1, sym_data_opl); - RDIM_Type *type = p2r_type_ptr_from_itype(file_static->itype); - // TODO(rjf): emit a global modifier symbol - defrange_target = 0; - defrange_target_is_param = 0; - }break; - - //- rjf: INLINESITE - case CV_SymKind_INLINESITE: - { - // rjf: unpack sym - CV_SymInlineSite *sym = (CV_SymInlineSite *)sym_header_struct_base; - String8 binary_annots = str8((U8 *)(sym+1), rec_range->hdr.size - sizeof(rec_range->hdr.kind) - sizeof(*sym)); - - // rjf: extract external info about inline site - String8 name = str8_zero(); - RDIM_Type *type = 0; - RDIM_Type *owner = 0; - if(in->ipi_leaf != 0 && in->ipi_leaf->itype_first <= sym->inlinee && sym->inlinee < in->ipi_leaf->itype_opl) - { - CV_RecRange rec_range = in->ipi_leaf->leaf_ranges.ranges[sym->inlinee - in->ipi_leaf->itype_first]; - String8 rec_data = str8_substr(in->ipi_leaf->data, rng_1u64(rec_range.off, rec_range.off + rec_range.hdr.size)); - void *raw_leaf = rec_data.str + sizeof(U16); - - // rjf: extract method inline info - if(rec_range.hdr.kind == CV_LeafKind_MFUNC_ID && - rec_range.hdr.size >= sizeof(CV_LeafMFuncId)) - { - CV_LeafMFuncId *mfunc_id = (CV_LeafMFuncId*)raw_leaf; - name = str8_cstring_capped(mfunc_id + 1, rec_data.str + rec_data.size); - type = p2r_type_ptr_from_itype(mfunc_id->itype); - owner = mfunc_id->owner_itype != 0 ? p2r_type_ptr_from_itype(mfunc_id->owner_itype) : 0; - } - - // rjf: extract non-method function inline info - else if(rec_range.hdr.kind == CV_LeafKind_FUNC_ID && - rec_range.hdr.size >= sizeof(CV_LeafFuncId)) - { - CV_LeafFuncId *func_id = (CV_LeafFuncId*)raw_leaf; - name = str8_cstring_capped(func_id + 1, rec_data.str + rec_data.size); - type = p2r_type_ptr_from_itype(func_id->itype); - owner = func_id->scope_string_id != 0 ? p2r_type_ptr_from_itype(func_id->scope_string_id) : 0; - } - } - - // rjf: build inline site - RDIM_InlineSite *inline_site = rdim_inline_site_chunk_list_push(arena, &sym_inline_sites, sym_inline_sites_chunk_cap); - inline_site->name = name; - inline_site->type = type; - inline_site->owner = owner; - inline_site->line_table = inline_site_line_table; - - // rjf: increment to next inline site line table in this unit - if(inline_site_line_table != 0 && inline_site_line_table->chunk != 0) - { - RDIM_LineTableChunkNode *chunk = inline_site_line_table->chunk; - U64 current_idx = (U64)(inline_site_line_table - chunk->v); - if(current_idx+1 < chunk->count) - { - inline_site_line_table += 1; - } - else - { - chunk = chunk->next; - inline_site_line_table = 0; - if(chunk != 0) - { - inline_site_line_table = chunk->v; - } - } - } - - // rjf: build scope - RDIM_Scope *scope = rdim_scope_chunk_list_push(arena, &sym_scopes, sym_scopes_chunk_cap); - scope->inline_site = inline_site; - if(top_scope_node == 0) - { - // TODO(rjf): log - } - if(top_scope_node != 0) - { - RDIM_Scope *top_scope = top_scope_node->scope; - SLLQueuePush_N(top_scope->first_child, top_scope->last_child, scope, next_sibling); - scope->parent_scope = top_scope; - scope->symbol = top_scope->symbol; - } - - // rjf: push this scope to scope stack - { - P2R_ScopeNode *node = free_scope_node; - if(node != 0) { SLLStackPop(free_scope_node); } - else { node = push_array_no_zero(scratch.arena, P2R_ScopeNode, 1); } - node->scope = scope; - SLLStackPush(top_scope_node, node); - } - - // rjf: parse offset ranges of this inline site - attach to scope - { - CV_C13InlineSiteDecoder decoder = cv_c13_inline_site_decoder_init(0, 0, procedure_base_voff); - for(;;) - { - CV_C13InlineSiteDecoderStep step = cv_c13_inline_site_decoder_step(&decoder, binary_annots); - - if(step.flags & CV_C13InlineSiteDecoderStepFlag_EmitRange) - { - // rjf: build new range & add to scope - RDIM_Rng1U64 voff_range = { step.range.min, step.range.max }; - rdim_scope_push_voff_range(arena, &sym_scopes, scope, voff_range); - } - - if(step.flags & CV_C13InlineSiteDecoderStepFlag_ExtendLastRange) - { - if(scope->voff_ranges.last != 0) - { - scope->voff_ranges.last->v.max = step.range.max; - } - } - - if(step.flags == 0) - { - break; - } - } - } - }break; - - //- rjf: INLINESITE_END - case CV_SymKind_INLINESITE_END: - { - P2R_ScopeNode *n = top_scope_node; - if(n != 0) - { - SLLStackPop(top_scope_node); - SLLStackPush(free_scope_node, n); - } - defrange_target = 0; - defrange_target_is_param = 0; - }break; - } - } - } - - ////////////////////////// - //- rjf: allocate & fill output - // - P2R_SymbolStreamConvertOut *out = push_array(arena, P2R_SymbolStreamConvertOut, 1); - { - out->procedures = sym_procedures; - out->global_variables = sym_global_variables; - out->thread_variables = sym_thread_variables; - out->scopes = sym_scopes; - out->inline_sites = sym_inline_sites; - } - -#undef p2r_type_ptr_from_itype - scratch_end(scratch); - ProfEnd(); - return out; -} - -//////////////////////////////// -//~ rjf: Top-Level Conversion Entry Point - -internal RDIM_BakeParams -p2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in) -{ - Temp scratch = scratch_begin(&arena, 1); - - g_p2r_local_state = local_state; - - ////////////////////////////////////////////////////////////// - //- rjf: parse MSF structure - // - MSF_Parsed *msf = 0; - if(in->debug_data.size != 0) ProfScope("parse MSF structure") - { - msf = msf_parsed_from_data(arena, in->debug_data); - } - - ////////////////////////////////////////////////////////////// - //- rjf: parse PDB auth_guid & named streams table - // - PDB_NamedStreamTable *named_streams = 0; - Guid auth_guid = {0}; - if(msf != 0) ProfScope("parse PDB auth_guid & named streams table") - { - Temp scratch = scratch_begin(&arena, 1); - String8 info_data = msf_data_from_stream(msf, PDB_FixedStream_Info); - PDB_Info *info = pdb_info_from_data(scratch.arena, info_data); - named_streams = pdb_named_stream_table_from_info(arena, info); - MemoryCopyStruct(&auth_guid, &info->auth_guid); - scratch_end(scratch); - - if (info->features & PDB_FeatureFlag_MINIMAL_DBG_INFO) { - fprintf(stderr, "ERROR: PDB was linked with /DEBUG:FASTLINK (partial debug info is not supported). Please relink using /DEBUG:FULL."); - os_abort(1); - } - } - - ////////////////////////////////////////////////////////////// - //- rjf: parse PDB strtbl - // - PDB_Strtbl *strtbl = 0; - String8 raw_strtbl = str8_zero(); - if(named_streams != 0) ProfScope("parse PDB strtbl") - { - MSF_StreamNumber strtbl_sn = named_streams->sn[PDB_NamedStream_StringTable]; - String8 strtbl_data = msf_data_from_stream(msf, strtbl_sn); - strtbl = pdb_strtbl_from_data(arena, strtbl_data); - raw_strtbl = str8_substr(strtbl_data, rng_1u64(strtbl->strblock_min, strtbl->strblock_max)); - } - - ////////////////////////////////////////////////////////////// - //- rjf: parse dbi - // - PDB_DbiParsed *dbi = 0; - if(msf != 0) ProfScope("parse dbi") - { - String8 dbi_data = msf_data_from_stream(msf, PDB_FixedStream_Dbi); - dbi = pdb_dbi_from_data(arena, dbi_data); - } - - ////////////////////////////////////////////////////////////// - //- rjf: parse tpi - // - PDB_TpiParsed *tpi = 0; - if(msf != 0) ProfScope("parse tpi") - { - String8 tpi_data = msf_data_from_stream(msf, PDB_FixedStream_Tpi); - tpi = pdb_tpi_from_data(arena, tpi_data); - } - - ////////////////////////////////////////////////////////////// - //- rjf: parse ipi - // - PDB_TpiParsed *ipi = 0; - if(msf != 0) ProfScope("parse ipi") - { - String8 ipi_data = msf_data_from_stream(msf, PDB_FixedStream_Ipi); - ipi = pdb_tpi_from_data(arena, ipi_data); - } - - ////////////////////////////////////////////////////////////// - //- rjf: parse coff sections - // - COFF_SectionHeaderArray coff_sections = {0}; - if(dbi != 0) ProfScope("parse coff sections") - { - MSF_StreamNumber section_stream = dbi->dbg_streams[PDB_DbiStream_SECTION_HEADER]; - String8 section_data = msf_data_from_stream(msf, section_stream); - coff_sections = pdb_coff_section_array_from_data(arena, section_data); - } - - ////////////////////////////////////////////////////////////// - //- rjf: parse gsi - // - PDB_GsiParsed *gsi = 0; - if(dbi != 0) ProfScope("parse gsi") - { - String8 gsi_data = msf_data_from_stream(msf, dbi->gsi_sn); - gsi = pdb_gsi_from_data(arena, gsi_data); - } - - ////////////////////////////////////////////////////////////// - //- rjf: parse psi - // - PDB_GsiParsed *psi_gsi_part = 0; - if(dbi != 0) ProfScope("parse psi") - { - String8 psi_data = msf_data_from_stream(msf, dbi->psi_sn); - String8 psi_data_gsi_part = str8_range(psi_data.str + sizeof(PDB_PsiHeader), psi_data.str + psi_data.size); - psi_gsi_part = pdb_gsi_from_data(arena, psi_data_gsi_part); - } - - ////////////////////////////////////////////////////////////// - //- rjf: kickoff EXE hash - // - P2R_EXEHashIn exe_hash_in = {in->image_data}; - ASYNC_Task *exe_hash_task = async_task_launch(scratch.arena, p2r_exe_hash_work, .input = &exe_hash_in); - - ////////////////////////////////////////////////////////////// - //- rjf: kickoff TPI hash parse - // - P2R_TPIHashParseIn tpi_hash_in = {0}; - ASYNC_Task *tpi_hash_task = 0; - if(tpi != 0) - { - tpi_hash_in.strtbl = strtbl; - tpi_hash_in.tpi = tpi; - tpi_hash_in.hash_data = msf_data_from_stream(msf, tpi->hash_sn); - tpi_hash_in.aux_data = msf_data_from_stream(msf, tpi->hash_sn_aux); - tpi_hash_task = async_task_launch(scratch.arena, p2r_tpi_hash_parse_work, .input = &tpi_hash_in); - } - - ////////////////////////////////////////////////////////////// - //- rjf: kickoff TPI leaf parse - // - P2R_TPILeafParseIn tpi_leaf_in = {0}; - ASYNC_Task *tpi_leaf_task = 0; - if(tpi != 0) - { - tpi_leaf_in.leaf_data = pdb_leaf_data_from_tpi(tpi); - tpi_leaf_in.itype_first = tpi->itype_first; - tpi_leaf_task = async_task_launch(scratch.arena, p2r_tpi_leaf_parse_work, .input = &tpi_leaf_in); - } - - ////////////////////////////////////////////////////////////// - //- rjf: kickoff IPI hash parse - // - P2R_TPIHashParseIn ipi_hash_in = {0}; - ASYNC_Task *ipi_hash_task = 0; - if(ipi != 0) - { - ipi_hash_in.strtbl = strtbl; - ipi_hash_in.tpi = ipi; - ipi_hash_in.hash_data = msf_data_from_stream(msf, ipi->hash_sn); - ipi_hash_in.aux_data = msf_data_from_stream(msf, ipi->hash_sn_aux); - ipi_hash_task = async_task_launch(scratch.arena, p2r_tpi_hash_parse_work, .input = &ipi_hash_in); - } - - ////////////////////////////////////////////////////////////// - //- rjf: kickoff IPI leaf parse - // - P2R_TPILeafParseIn ipi_leaf_in = {0}; - ASYNC_Task *ipi_leaf_task = 0; - if(ipi != 0) - { - ipi_leaf_in.leaf_data = pdb_leaf_data_from_tpi(ipi); - ipi_leaf_in.itype_first = ipi->itype_first; - ipi_leaf_task = async_task_launch(scratch.arena, p2r_tpi_leaf_parse_work, .input = &ipi_leaf_in); - } - - ////////////////////////////////////////////////////////////// - //- rjf: kickoff top-level global symbol stream parse - // - P2R_SymbolStreamParseIn sym_parse_in = {dbi ? msf_data_from_stream(msf, dbi->sym_sn) : str8_zero()}; - ASYNC_Task *sym_parse_task = !dbi ? 0 : async_task_launch(scratch.arena, p2r_symbol_stream_parse_work, .input = &sym_parse_in); - - ////////////////////////////////////////////////////////////// - //- rjf: kickoff compilation unit parses - // - P2R_CompUnitParseIn comp_unit_parse_in = {dbi ? pdb_data_from_dbi_range(dbi, PDB_DbiRange_ModuleInfo) : str8_zero()}; - P2R_CompUnitContributionsParseIn comp_unit_contributions_parse_in = {dbi ? pdb_data_from_dbi_range(dbi, PDB_DbiRange_SecCon) : str8_zero(), coff_sections}; - ASYNC_Task *comp_unit_parse_task = !dbi ? 0 : async_task_launch(scratch.arena, p2r_comp_unit_parse_work, .input = &comp_unit_parse_in); - ASYNC_Task *comp_unit_contributions_parse_task = !dbi ? 0 : async_task_launch(scratch.arena, p2r_comp_unit_contributions_parse_work, .input = &comp_unit_contributions_parse_in); - - ////////////////////////////////////////////////////////////// - //- rjf: join compilation unit parses - // - PDB_CompUnitArray *comp_units = 0; - U64 comp_unit_count = 0; - PDB_CompUnitContributionArray *comp_unit_contributions = 0; - U64 comp_unit_contribution_count = 0; - { - comp_units = async_task_join_struct(comp_unit_parse_task, PDB_CompUnitArray); - comp_unit_contributions = async_task_join_struct(comp_unit_contributions_parse_task, PDB_CompUnitContributionArray); - comp_unit_count = comp_units ? comp_units->count : 0; - comp_unit_contribution_count = comp_unit_contributions ? comp_unit_contributions->count : 0; - } - - ////////////////////////////////////////////////////////////// - //- rjf: parse syms & line info for each compilation unit - // - CV_SymParsed **sym_for_unit = push_array(arena, CV_SymParsed *, comp_unit_count); - CV_C13Parsed **c13_for_unit = push_array(arena, CV_C13Parsed *, comp_unit_count); - if(comp_units != 0) ProfScope("parse syms & line info for each compilation unit") - { - //- rjf: kick off tasks - P2R_SymbolStreamParseIn *sym_tasks_inputs = push_array(scratch.arena, P2R_SymbolStreamParseIn, comp_unit_count); - ASYNC_Task **sym_tasks = push_array(scratch.arena, ASYNC_Task *, comp_unit_count); - P2R_C13StreamParseIn *c13_tasks_inputs = push_array(scratch.arena, P2R_C13StreamParseIn, comp_unit_count); - ASYNC_Task **c13_tasks = push_array(scratch.arena, ASYNC_Task *, comp_unit_count); - for(U64 idx = 0; idx < comp_unit_count; idx += 1) - { - PDB_CompUnit *unit = comp_units->units[idx]; - sym_tasks_inputs[idx].data = pdb_data_from_unit_range(msf, unit, PDB_DbiCompUnitRange_Symbols); - sym_tasks[idx] = async_task_launch(scratch.arena, p2r_symbol_stream_parse_work, .input = &sym_tasks_inputs[idx]); - c13_tasks_inputs[idx].data = pdb_data_from_unit_range(msf, unit, PDB_DbiCompUnitRange_C13); - c13_tasks_inputs[idx].strtbl = raw_strtbl; - c13_tasks_inputs[idx].coff_sections = coff_sections; - c13_tasks[idx] = async_task_launch(scratch.arena, p2r_c13_stream_parse_work, .input = &c13_tasks_inputs[idx]); - } - - //- rjf: join tasks - for(U64 idx = 0; idx < comp_unit_count; idx += 1) - { - sym_for_unit[idx] = async_task_join_struct(sym_tasks[idx], CV_SymParsed); - c13_for_unit[idx] = async_task_join_struct(c13_tasks[idx], CV_C13Parsed); - } - } - - ////////////////////////////////////////////////////////////// - //- rjf: determine architecture - // - RDI_Arch arch = c2r_rdi_arch_from_coff_machine(dbi->machine_type); - U64 arch_addr_size = rdi_addr_size_from_arch(arch); - - ////////////////////////////////////////////////////////////// - //- rjf: join EXE hash - // - U64 exe_hash = *async_task_join_struct(exe_hash_task, U64); - - ////////////////////////////////////////////////////////////// - //- rjf: build binary sections list - // - RDIM_BinarySectionList binary_sections = c2r_rdi_binary_sections_from_coff_sections(arena, str8_zero(), str8_zero(), coff_sections.count, coff_sections.v); - - ////////////////////////////////////////////////////////////// - //- rjf: produce top-level-info - // - RDIM_TopLevelInfo top_level_info = rdim_make_top_level_info(in->image_name, arch_from_coff_machine(dbi->machine_type), exe_hash, binary_sections); - - ////////////////////////////////////////////////////////////// - //- rjf: kick off unit conversion & source file collection - // - P2R_UnitConvertIn unit_convert_in = {strtbl, coff_sections, comp_units, comp_unit_contributions, sym_for_unit, c13_for_unit}; - ASYNC_Task *unit_convert_task = async_task_launch(scratch.arena, p2r_units_convert_work, .input = &unit_convert_in); - - ////////////////////////////////////////////////////////////// - //- rjf: join global sym stream parse - // - CV_SymParsed *sym = async_task_join_struct(sym_parse_task, CV_SymParsed); - - ////////////////////////////// - //- rjf: predict symbol count - // - U64 symbol_count_prediction = 0; - ProfScope("predict symbol count") - { - U64 rec_range_count = 0; - if(sym != 0) - { - rec_range_count += sym->sym_ranges.count; - } - for(U64 comp_unit_idx = 0; comp_unit_idx < comp_unit_count; comp_unit_idx += 1) - { - CV_SymParsed *unit_sym = sym_for_unit[comp_unit_idx]; - rec_range_count += unit_sym->sym_ranges.count; - } - symbol_count_prediction = rec_range_count/8; - if(symbol_count_prediction < 256) - { - symbol_count_prediction = 256; - } - } - - ////////////////////////////////////////////////////////////// - //- rjf: kick off link name map production - // - P2R_LinkNameMap link_name_map__in_progress = {0}; - P2R_LinkNameMapBuildIn link_name_map_build_in = {0}; - ASYNC_Task *link_name_map_task = 0; - if(sym != 0) ProfScope("kick off link name map build task") - { - link_name_map__in_progress.buckets_count = symbol_count_prediction; - link_name_map__in_progress.buckets = push_array(arena, P2R_LinkNameNode *, link_name_map__in_progress.buckets_count); - link_name_map_build_in.sym = sym; - link_name_map_build_in.coff_sections = coff_sections; - link_name_map_build_in.link_name_map = &link_name_map__in_progress; - link_name_map_task = async_task_launch(scratch.arena, p2r_link_name_map_build_work, .input = &link_name_map_build_in); - } - - ////////////////////////////////////////////////////////////// - //- rjf: join ipi/tpi hash/leaf parses - // - PDB_TpiHashParsed *tpi_hash = 0; - CV_LeafParsed *tpi_leaf = 0; - PDB_TpiHashParsed *ipi_hash = 0; - CV_LeafParsed *ipi_leaf = 0; - { - tpi_hash = async_task_join_struct(tpi_hash_task, PDB_TpiHashParsed); - tpi_leaf = async_task_join_struct(tpi_leaf_task, CV_LeafParsed); - ipi_hash = async_task_join_struct(ipi_hash_task, PDB_TpiHashParsed); - ipi_leaf = async_task_join_struct(ipi_leaf_task, CV_LeafParsed); - } - - ////////////////////////////////////////////////////////////// - //- rjf: types pass 1: construct all types from TPI - // - // this doesn't gather struct/class/union/enum members, which is done by - // subsequent passes, to build RDI "UDT" information, which is distinct - // from regular type info. - // - RDIM_Type **itype_type_ptrs = 0; - RDIM_TypeChunkList all_types = rdim_init_type_chunk_list(arena, arch); -#define p2r_type_ptr_from_itype(itype) (((itype) < tpi_leaf->itype_opl) ? itype_type_ptrs[itype] : 0) - if(in->flags & RC_Flag_Types) ProfScope("types pass 1: construct all root/stub types from TPI") - { - itype_type_ptrs = push_array(arena, RDIM_Type *, tpi_leaf->itype_opl); - - ////////////////////////// - //- build basic types - // - { - RDIM_DataModel data_model = rdim_infer_data_model(OperatingSystem_Windows, top_level_info.arch); - RDI_TypeKind short_type = rdim_short_type_from_data_model(data_model); - RDI_TypeKind long_type = rdim_long_type_from_data_model(data_model); - RDI_TypeKind long_long_type = rdim_long_long_type_from_data_model(data_model); - RDI_TypeKind ushort_type = rdim_unsigned_short_type_from_data_model(data_model); - RDI_TypeKind ulong_type = rdim_unsigned_long_type_from_data_model(data_model); - RDI_TypeKind ulong_long_type = rdim_unsigned_long_long_type_from_data_model(data_model); - RDI_TypeKind ptr_type = rdim_pointer_size_t_type_from_data_model(data_model); - - struct - { - char * name; - RDI_TypeKind kind_rdi; - CV_LeafKind kind_cv; - B32 make_pointer_near; - B32 make_pointer_32; - B32 make_pointer_64; - } - table[] = - { - { "" , RDI_TypeKind_NULL , CV_BasicType_NOTYPE , 0, 0, 0 }, - { "void" , RDI_TypeKind_Void , CV_BasicType_VOID , 1, 1, 1 }, - { "HRESULT" , RDI_TypeKind_Handle , CV_BasicType_HRESULT , 0, 1, 1 }, - { "signed char" , RDI_TypeKind_Char8 , CV_BasicType_CHAR , 1, 1, 1 }, - { "short" , short_type , CV_BasicType_SHORT , 1, 1, 1 }, - { "long" , long_type , CV_BasicType_LONG , 1, 1, 1 }, - { "long long" , long_long_type , CV_BasicType_QUAD , 1, 1, 1 }, - { "__int128" , RDI_TypeKind_S128 , CV_BasicType_OCT , 1, 1, 1 }, // Clang type - { "unsigned char" , RDI_TypeKind_UChar8 , CV_BasicType_UCHAR , 1, 1, 1 }, - { "unsigned short" , ushort_type , CV_BasicType_USHORT , 1, 1, 1 }, - { "unsigned long" , ulong_type , CV_BasicType_ULONG , 1, 1, 1 }, - { "unsigned long long" , ulong_long_type , CV_BasicType_UQUAD , 1, 1, 1 }, - { "__uint128" , RDI_TypeKind_U128 , CV_BasicType_UOCT , 1, 1, 1 }, // Clang type - { "bool" , RDI_TypeKind_S8 , CV_BasicType_BOOL8 , 1, 1, 1 }, - { "__bool16" , RDI_TypeKind_S16 , CV_BasicType_BOOL16 , 1, 1, 1 }, // not real C type - { "__bool32" , RDI_TypeKind_S32 , CV_BasicType_BOOL32 , 1, 1, 1 }, // not real C type - { "float" , RDI_TypeKind_F32 , CV_BasicType_FLOAT32 , 1, 1, 1 }, - { "double" , RDI_TypeKind_F64 , CV_BasicType_FLOAT64 , 1, 1, 1 }, - { "long double" , RDI_TypeKind_F80 , CV_BasicType_FLOAT80 , 1, 1, 1 }, - { "__float128" , RDI_TypeKind_F128 , CV_BasicType_FLOAT128 , 1, 1, 1 }, // Clang type - { "__float48" , RDI_TypeKind_F48 , CV_BasicType_FLOAT48 , 1, 1, 1 }, // not real C type - { "__float32pp" , RDI_TypeKind_F32PP , CV_BasicType_FLOAT32PP , 1, 1, 1 }, // not real C type - { "_Complex float" , RDI_TypeKind_ComplexF32 , CV_BasicType_COMPLEX32 , 0, 0, 0 }, - { "_Complex double" , RDI_TypeKind_ComplexF64 , CV_BasicType_COMPLEX64 , 0, 0, 0 }, - { "_Complex long double" , RDI_TypeKind_ComplexF80 , CV_BasicType_COMPLEX80 , 0, 0, 0 }, - { "_Complex __float128" , RDI_TypeKind_ComplexF128, CV_BasicType_COMPLEX128 , 0, 0, 0 }, - { "__int8" , RDI_TypeKind_S8 , CV_BasicType_INT8 , 1, 1, 1 }, - { "__uint8" , RDI_TypeKind_U8 , CV_BasicType_UINT8 , 1, 1, 1 }, - { "__int16" , RDI_TypeKind_S16 , CV_BasicType_INT16 , 1, 1, 1 }, - { "__uint16" , RDI_TypeKind_U16 , CV_BasicType_UINT16 , 1, 1, 1 }, - { "int" , RDI_TypeKind_S32 , CV_BasicType_INT32 , 1, 1, 1 }, - { "unsigned int" , RDI_TypeKind_U32 , CV_BasicType_UINT32 , 1, 1, 1 }, - { "__int64" , RDI_TypeKind_S64 , CV_BasicType_INT64 , 1, 1, 1 }, - { "__uint64" , RDI_TypeKind_U64 , CV_BasicType_UINT64 , 1, 1, 1 }, - { "__int128" , RDI_TypeKind_S128 , CV_BasicType_INT128 , 1, 1, 1 }, - { "__uint128" , RDI_TypeKind_U128 , CV_BasicType_UINT128 , 1, 1, 1 }, - { "char" , RDI_TypeKind_Char8 , CV_BasicType_RCHAR , 1, 1, 1 }, // always ASCII - { "wchar_t" , RDI_TypeKind_UChar16 , CV_BasicType_WCHAR , 1, 1, 1 }, // on windows always UTF-16 - { "char8_t" , RDI_TypeKind_Char8 , CV_BasicType_CHAR8 , 1, 1, 1 }, // always UTF-8 - { "char16_t" , RDI_TypeKind_Char16 , CV_BasicType_CHAR16 , 1, 1, 1 }, // always UTF-16 - { "char32_t" , RDI_TypeKind_Char32 , CV_BasicType_CHAR32 , 1, 1, 1 }, // always UTF-32 - { "__pointer" , ptr_type , CV_BasicType_PTR , 0, 0, 0 } - }; - - for(U64 i = 0; i < ArrayCount(table); i += 1) - { - RDIM_Type *type = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - type->kind = RDI_TypeKind_Alias; - type->name = str8_cstring(table[i].name); - type->direct_type = rdim_builtin_type_from_kind(all_types, table[i].kind_rdi); - itype_type_ptrs[table[i].kind_cv] = type; - - if(table[i].make_pointer_near) - { - CV_TypeIndex near_ptr_itype = table[i].kind_cv | 0x100; - RDIM_Type *ptr_near = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - ptr_near->kind = RDI_TypeKind_Ptr; - ptr_near->byte_size = 2; - ptr_near->direct_type = type; - itype_type_ptrs[near_ptr_itype] = ptr_near; - } - if(table[i].make_pointer_32) - { - CV_TypeIndex ptr_32_itype = table[i].kind_cv | 0x400; - RDIM_Type *ptr_32 = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - ptr_32->kind = RDI_TypeKind_Ptr; - ptr_32->byte_size = 4; - ptr_32->direct_type = type; - itype_type_ptrs[ptr_32_itype] = ptr_32; - } - if(table[i].make_pointer_64) - { - CV_TypeIndex ptr_64_itype = table[i].kind_cv | 0x600; - RDIM_Type *ptr_64 = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - ptr_64->kind = RDI_TypeKind_Ptr; - ptr_64->byte_size = 8; - ptr_64->direct_type = type; - itype_type_ptrs[ptr_64_itype] = ptr_64; - } - } - } - - ////////////////////////// - //- rjf: build complex type - // - for(CV_TypeId itype = tpi_leaf->itype_first; itype < tpi_leaf->itype_opl; itype += 1) - { - RDIM_Type *dst_type = 0; - CV_RecRange *range = &tpi_leaf->leaf_ranges.ranges[itype-tpi_leaf->itype_first]; - CV_LeafKind kind = range->hdr.kind; - U64 header_struct_size = cv_header_struct_size_from_leaf_kind(kind); - - if(range->off+range->hdr.size <= tpi_leaf->data.size && - range->off+2+header_struct_size <= tpi_leaf->data.size && - range->hdr.size >= 2) - { - U8 *itype_leaf_first = tpi_leaf->data.str + range->off+2; - U8 *itype_leaf_opl = itype_leaf_first + range->hdr.size-2; - switch(kind) - { - //- rjf: MODIFIER - case CV_LeafKind_MODIFIER: - { - // rjf: unpack leaf - CV_LeafModifier *lf = (CV_LeafModifier *)itype_leaf_first; - - // rjf: cv -> rdi flags - RDI_TypeModifierFlags flags = 0; - if(lf->flags & CV_ModifierFlag_Const) {flags |= RDI_TypeModifierFlag_Const;} - if(lf->flags & CV_ModifierFlag_Volatile) {flags |= RDI_TypeModifierFlag_Volatile;} - - // rjf: fill type - if(flags == 0) - { - dst_type = p2r_type_ptr_from_itype(lf->itype); - } - else - { - dst_type = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - dst_type->kind = RDI_TypeKind_Modifier; - dst_type->flags = flags; - dst_type->direct_type = p2r_type_ptr_from_itype(lf->itype); - dst_type->byte_size = dst_type->direct_type ? dst_type->direct_type->byte_size : 0; - } - }break; - - //- rjf: POINTER - case CV_LeafKind_POINTER: - { - // TODO(rjf): if ptr_mode in {PtrMem, PtrMethod} then output a member pointer instead - - // rjf: unpack leaf - CV_LeafPointer *lf = (CV_LeafPointer *)itype_leaf_first; - RDIM_Type *direct_type = p2r_type_ptr_from_itype(lf->itype); - CV_PointerKind ptr_kind = CV_PointerAttribs_Extract_Kind(lf->attribs); - CV_PointerMode ptr_mode = CV_PointerAttribs_Extract_Mode(lf->attribs); - U32 ptr_size = CV_PointerAttribs_Extract_Size(lf->attribs); - - // rjf: cv -> rdi modifier flags - RDI_TypeModifierFlags modifier_flags = 0; - if(lf->attribs & CV_PointerAttrib_Const) {modifier_flags |= RDI_TypeModifierFlag_Const;} - if(lf->attribs & CV_PointerAttrib_Volatile) {modifier_flags |= RDI_TypeModifierFlag_Volatile;} - if(lf->attribs & CV_PointerAttrib_Restricted) {modifier_flags |= RDI_TypeModifierFlag_Restrict;} - - // rjf: cv info -> rdi pointer type kind - RDI_TypeKind type_kind = RDI_TypeKind_Ptr; - { - if(lf->attribs & CV_PointerAttrib_LRef) - { - type_kind = RDI_TypeKind_LRef; - } - else if(lf->attribs & CV_PointerAttrib_RRef) - { - type_kind = RDI_TypeKind_RRef; - } - if(ptr_mode == CV_PointerMode_LRef) - { - type_kind = RDI_TypeKind_LRef; - } - else if(ptr_mode == CV_PointerMode_RRef) - { - type_kind = RDI_TypeKind_RRef; - } - } - - // rjf: fill type - if(modifier_flags != 0) - { - RDIM_Type *pointer_type = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - dst_type = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - dst_type->kind = RDI_TypeKind_Modifier; - dst_type->flags = modifier_flags; - dst_type->direct_type = pointer_type; - dst_type->byte_size = arch_addr_size; - pointer_type->kind = type_kind; - pointer_type->byte_size = arch_addr_size; - pointer_type->direct_type = direct_type; - } - else - { - dst_type = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - dst_type->kind = type_kind; - dst_type->byte_size = arch_addr_size; - dst_type->direct_type = direct_type; - } - }break; - - //- rjf: PROCEDURE - case CV_LeafKind_PROCEDURE: - { - // TODO(rjf): handle call_kind & attribs - - // rjf: unpack leaf - CV_LeafProcedure *lf = (CV_LeafProcedure *)itype_leaf_first; - RDIM_Type *ret_type = p2r_type_ptr_from_itype(lf->ret_itype); - - // rjf: fill type's basics - dst_type = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - dst_type->kind = RDI_TypeKind_Function; - dst_type->byte_size = arch_addr_size; - dst_type->direct_type = ret_type; - - // rjf: unpack arglist range - CV_RecRange *arglist_range = &tpi_leaf->leaf_ranges.ranges[lf->arg_itype-tpi_leaf->itype_first]; - if(arglist_range->hdr.kind != CV_LeafKind_ARGLIST || - arglist_range->hdr.size<2 || - arglist_range->off + arglist_range->hdr.size > tpi_leaf->data.size) - { - break; - } - U8 *arglist_first = tpi_leaf->data.str + arglist_range->off + 2; - U8 *arglist_opl = arglist_first+arglist_range->hdr.size-2; - if(arglist_first + sizeof(CV_LeafArgList) > arglist_opl) - { - break; - } - - // rjf: unpack arglist info - CV_LeafArgList *arglist = (CV_LeafArgList*)arglist_first; - CV_TypeId *arglist_itypes_base = (CV_TypeId *)(arglist+1); - U32 arglist_itypes_count = arglist->count; - - // rjf: build param type array - RDIM_Type **params = push_array(arena, RDIM_Type *, arglist_itypes_count); - for(U32 idx = 0; idx < arglist_itypes_count; idx += 1) - { - params[idx] = p2r_type_ptr_from_itype(arglist_itypes_base[idx]); - } - - // rjf: fill dst type - dst_type->count = arglist_itypes_count; - dst_type->param_types = params; - }break; - - //- rjf: MFUNCTION - case CV_LeafKind_MFUNCTION: - { - // TODO(rjf): handle call_kind & attribs - // TODO(rjf): preserve "this_adjust" - - // rjf: unpack leaf - CV_LeafMFunction *lf = (CV_LeafMFunction *)itype_leaf_first; - RDIM_Type *ret_type = p2r_type_ptr_from_itype(lf->ret_itype); - - // rjf: fill type - dst_type = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - dst_type->kind = (lf->this_itype != 0) ? RDI_TypeKind_Method : RDI_TypeKind_Function; - dst_type->byte_size = arch_addr_size; - dst_type->direct_type = ret_type; - - // rjf: unpack arglist range - CV_RecRange *arglist_range = &tpi_leaf->leaf_ranges.ranges[lf->arg_itype-tpi_leaf->itype_first]; - if(arglist_range->hdr.kind != CV_LeafKind_ARGLIST || - arglist_range->hdr.size<2 || - arglist_range->off + arglist_range->hdr.size > tpi_leaf->data.size) - { - break; - } - U8 *arglist_first = tpi_leaf->data.str + arglist_range->off + 2; - U8 *arglist_opl = arglist_first+arglist_range->hdr.size-2; - if(arglist_first + sizeof(CV_LeafArgList) > arglist_opl) - { - break; - } - - // rjf: unpack arglist info - CV_LeafArgList *arglist = (CV_LeafArgList*)arglist_first; - CV_TypeId *arglist_itypes_base = (CV_TypeId *)(arglist+1); - U32 arglist_itypes_count = arglist->count; - - // rjf: build param type array - U64 num_this_extras = 1; - if(lf->this_itype == 0) - { - num_this_extras = 0; - } - RDIM_Type **params = push_array(arena, RDIM_Type *, arglist_itypes_count+num_this_extras); - for(U32 idx = 0; idx < arglist_itypes_count; idx += 1) - { - params[idx+num_this_extras] = p2r_type_ptr_from_itype(arglist_itypes_base[idx]); - } - if(lf->this_itype != 0) - { - params[0] = p2r_type_ptr_from_itype(lf->this_itype); - } - - // rjf: fill dst type - dst_type->count = arglist_itypes_count+num_this_extras; - dst_type->param_types = params; - }break; - - //- rjf: BITFIELD - case CV_LeafKind_BITFIELD: - { - // rjf: unpack leaf - CV_LeafBitField *lf = (CV_LeafBitField *)itype_leaf_first; - RDIM_Type *direct_type = p2r_type_ptr_from_itype(lf->itype); - - // rjf: fill type - dst_type = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - dst_type->kind = RDI_TypeKind_Bitfield; - dst_type->off = lf->pos; - dst_type->count = lf->len; - dst_type->byte_size = direct_type?direct_type->byte_size:0; - dst_type->direct_type = direct_type; - }break; - - //- rjf: ARRAY - case CV_LeafKind_ARRAY: - { - // rjf: unpack leaf - CV_LeafArray *lf = (CV_LeafArray *)itype_leaf_first; - RDIM_Type *direct_type = p2r_type_ptr_from_itype(lf->entry_itype); - U8 *numeric_ptr = (U8*)(lf + 1); - CV_NumericParsed array_count = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); - U64 full_size = cv_u64_from_numeric(&array_count); - - // rjf: fill type - dst_type = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - dst_type->kind = RDI_TypeKind_Array; - dst_type->direct_type = direct_type; - dst_type->byte_size = full_size; - }break; - - //- rjf: CLASS/STRUCTURE - case CV_LeafKind_CLASS: - case CV_LeafKind_STRUCTURE: - { - // TODO(rjf): handle props - - // rjf: unpack leaf - CV_LeafStruct *lf = (CV_LeafStruct *)itype_leaf_first; - U8 *numeric_ptr = (U8*)(lf + 1); - CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); - U64 size_u64 = cv_u64_from_numeric(&size); - U8 *name_ptr = numeric_ptr + size.encoded_size; - String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); - - // rjf: fill type - dst_type = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - if(lf->props & CV_TypeProp_FwdRef) - { - dst_type->kind = (kind == CV_LeafKind_CLASS ? RDI_TypeKind_IncompleteClass : RDI_TypeKind_IncompleteStruct); - } - else - { - dst_type->kind = (kind == CV_LeafKind_CLASS ? RDI_TypeKind_Class : RDI_TypeKind_Struct); - } - - B32 do_unique_name_lookup = (((lf->props & CV_TypeProp_Scoped) != 0) && - ((lf->props & CV_TypeProp_HasUniqueName) != 0)); - if(do_unique_name_lookup) - { - U8 *unique_name_ptr = name_ptr + name.size + 1; - dst_type->link_name = str8_cstring_capped(unique_name_ptr, itype_leaf_opl); - } - - dst_type->name = name; - dst_type->byte_size = safe_cast_u32(size_u64); - }break; - - //- rjf: CLASS2/STRUCT2 - case CV_LeafKind_CLASS2: - case CV_LeafKind_STRUCT2: - { - // TODO(rjf): handle props - - // rjf: unpack leaf - CV_LeafStruct2 *lf = (CV_LeafStruct2 *)itype_leaf_first; - U8 *numeric_ptr = (U8*)(lf + 1); - CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); - U64 size_u64 = cv_u64_from_numeric(&size); - U8 *name_ptr = numeric_ptr + size.encoded_size; - String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); - - // rjf: fill type - dst_type = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - if(lf->props & CV_TypeProp_FwdRef) - { - dst_type->kind = (kind == CV_LeafKind_CLASS2 ? RDI_TypeKind_IncompleteClass : RDI_TypeKind_IncompleteStruct); - dst_type->name = name; - } - else - { - dst_type->kind = (kind == CV_LeafKind_CLASS2 ? RDI_TypeKind_Class : RDI_TypeKind_Struct); - dst_type->byte_size = (U32)size_u64; - dst_type->name = name; - } - - B32 do_unique_name_lookup = (((lf->props & CV_TypeProp_Scoped) != 0) && - ((lf->props & CV_TypeProp_HasUniqueName) != 0)); - if(do_unique_name_lookup) - { - U8 *unique_name_ptr = name_ptr + name.size + 1; - dst_type->link_name = str8_cstring_capped(unique_name_ptr, itype_leaf_opl); - } - }break; - - //- rjf: UNION - case CV_LeafKind_UNION: - { - // TODO(rjf): handle props - - // rjf: unpack leaf - CV_LeafUnion *lf = (CV_LeafUnion *)itype_leaf_first; - U8 *numeric_ptr = (U8*)(lf + 1); - CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); - U64 size_u64 = cv_u64_from_numeric(&size); - U8 *name_ptr = numeric_ptr + size.encoded_size; - String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); - - // rjf: fill type - dst_type = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - if(lf->props & CV_TypeProp_FwdRef) - { - dst_type->kind = RDI_TypeKind_IncompleteUnion; - dst_type->name = name; - } - else - { - dst_type->kind = RDI_TypeKind_Union; - dst_type->byte_size = (U32)size_u64; - dst_type->name = name; - } - - B32 do_unique_name_lookup = (((lf->props & CV_TypeProp_Scoped) != 0) && - ((lf->props & CV_TypeProp_HasUniqueName) != 0)); - if(do_unique_name_lookup) - { - U8 *unique_name_ptr = name_ptr + name.size + 1; - dst_type->link_name = str8_cstring_capped(unique_name_ptr, itype_leaf_opl); - } - }break; - - //- rjf: ENUM - case CV_LeafKind_ENUM: - { - // TODO(rjf): handle props - - // rjf: unpack leaf - CV_LeafEnum *lf = (CV_LeafEnum *)itype_leaf_first; - RDIM_Type *direct_type = p2r_type_ptr_from_itype(lf->base_itype); - U8 *name_ptr = (U8 *)(lf + 1); - String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); - - // rjf: fill type - dst_type = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); - if(lf->props & CV_TypeProp_FwdRef) - { - dst_type->kind = RDI_TypeKind_IncompleteEnum; - dst_type->name = name; - } - else - { - dst_type->kind = RDI_TypeKind_Enum; - dst_type->direct_type = direct_type; - dst_type->byte_size = direct_type ? direct_type->byte_size : 0; - dst_type->name = name; - } - - B32 do_unique_name_lookup = (((lf->props & CV_TypeProp_Scoped) != 0) && - ((lf->props & CV_TypeProp_HasUniqueName) != 0)); - if(do_unique_name_lookup) - { - U8 *unique_name_ptr = name_ptr + name.size + 1; - dst_type->link_name = str8_cstring_capped(unique_name_ptr, itype_leaf_opl); - } - }break; - } - } - - //- rjf: store finalized type to this itype's slot - itype_type_ptrs[itype] = dst_type; - } - } - - ////////////////////////////////////////////////////////////// - //- rjf: types pass 2: kick off UDT build - // - U64 udt_task_size_itypes = 4096; - U64 udt_tasks_count = (tpi_leaf->itype_opl+(udt_task_size_itypes-1))/udt_task_size_itypes; - P2R_UDTConvertIn *udt_tasks_inputs = push_array(scratch.arena, P2R_UDTConvertIn, udt_tasks_count); - ASYNC_Task **udt_tasks = push_array(scratch.arena, ASYNC_Task *, udt_tasks_count); - if(in->flags & RC_Flag_UDTs) ProfScope("types pass 2: kick off UDT build") - { - for(U64 idx = 0; idx < udt_tasks_count; idx += 1) - { - udt_tasks_inputs[idx].tpi_leaf = tpi_leaf; - udt_tasks_inputs[idx].itype_first = idx*udt_task_size_itypes; - udt_tasks_inputs[idx].itype_opl = udt_tasks_inputs[idx].itype_first + udt_task_size_itypes; - udt_tasks_inputs[idx].itype_opl = ClampTop(udt_tasks_inputs[idx].itype_opl, tpi_leaf->itype_opl); - udt_tasks_inputs[idx].itype_type_ptrs = itype_type_ptrs; - udt_tasks[idx] = async_task_launch(scratch.arena, p2r_udt_convert_work, .input = &udt_tasks_inputs[idx]); - } - } - - ////////////////////////////////////////////////////////////// - //- rjf: join link name map building task - // - P2R_LinkNameMap *link_name_map = 0; - ProfScope("join link name map building task") - { - async_task_join(link_name_map_task); - link_name_map = &link_name_map__in_progress; - } - - ////////////////////////////////////////////////////////////// - //- rjf: join unit conversion & src file & line table tasks - // - RDIM_UnitChunkList all_units = {0}; - RDIM_SrcFileChunkList all_src_files = {0}; - RDIM_LineTableChunkList all_line_tables = {0}; - RDIM_LineTable **units_first_inline_site_line_tables = 0; - ProfScope("join unit conversion & src file tasks") - { - P2R_UnitConvertOut *out = async_task_join_struct(unit_convert_task, P2R_UnitConvertOut); - all_units = out->units; - all_src_files = out->src_files; - all_line_tables = out->line_tables; - units_first_inline_site_line_tables = out->units_first_inline_site_line_tables; - } - - ////////////////////////////////////////////////////////////// - //- rjf: produce symbols from all streams - // - RDIM_SymbolChunkList all_procedures = {0}; - RDIM_SymbolChunkList all_global_variables = {0}; - RDIM_SymbolChunkList all_thread_variables = {0}; - RDIM_ScopeChunkList all_scopes = {0}; - RDIM_InlineSiteChunkList all_inline_sites = {0}; - ProfScope("produce symbols from all streams") - { - //////////////////////////// - //- rjf: kick off all symbol conversion tasks - // - U64 global_stream_subdivision_tasks_count = sym ? (sym->sym_ranges.count+16383)/16384 : 0; - U64 global_stream_syms_per_task = sym ? sym->sym_ranges.count/global_stream_subdivision_tasks_count : 0; - U64 tasks_count = comp_unit_count + global_stream_subdivision_tasks_count; - P2R_SymbolStreamConvertIn *tasks_inputs = push_array(scratch.arena, P2R_SymbolStreamConvertIn, tasks_count); - ASYNC_Task **tasks = push_array(scratch.arena, ASYNC_Task *, tasks_count); - ProfScope("kick off all symbol conversion tasks") - { - for(U64 idx = 0; idx < tasks_count; idx += 1) - { - tasks_inputs[idx].arch = arch; - tasks_inputs[idx].coff_sections = coff_sections; - tasks_inputs[idx].tpi_hash = tpi_hash; - tasks_inputs[idx].tpi_leaf = tpi_leaf; - tasks_inputs[idx].ipi_leaf = ipi_leaf; - tasks_inputs[idx].itype_type_ptrs = itype_type_ptrs; - tasks_inputs[idx].link_name_map = link_name_map; - if(idx < global_stream_subdivision_tasks_count) - { - tasks_inputs[idx].sym = sym; - tasks_inputs[idx].sym_ranges_first= idx*global_stream_syms_per_task; - tasks_inputs[idx].sym_ranges_opl = tasks_inputs[idx].sym_ranges_first + global_stream_syms_per_task; - tasks_inputs[idx].sym_ranges_opl = ClampTop(tasks_inputs[idx].sym_ranges_opl, sym->sym_ranges.count); - } - else - { - tasks_inputs[idx].sym = sym_for_unit[idx-global_stream_subdivision_tasks_count]; - tasks_inputs[idx].sym_ranges_first= 0; - tasks_inputs[idx].sym_ranges_opl = sym_for_unit[idx-global_stream_subdivision_tasks_count]->sym_ranges.count; - tasks_inputs[idx].first_inline_site_line_table = units_first_inline_site_line_tables[idx-global_stream_subdivision_tasks_count]; - } - tasks[idx] = async_task_launch(scratch.arena, p2r_symbol_stream_convert_work, .input = &tasks_inputs[idx]); - } - } - - //////////////////////////// - //- rjf: join tasks, merge with top-level collections - // - ProfScope("join tasks, merge with top-level collections") - { - for(U64 idx = 0; idx < tasks_count; idx += 1) - { - P2R_SymbolStreamConvertOut *out = async_task_join_struct(tasks[idx], P2R_SymbolStreamConvertOut); - rdim_symbol_chunk_list_concat_in_place(&all_procedures, &out->procedures); - rdim_symbol_chunk_list_concat_in_place(&all_global_variables, &out->global_variables); - rdim_symbol_chunk_list_concat_in_place(&all_thread_variables, &out->thread_variables); - rdim_scope_chunk_list_concat_in_place(&all_scopes, &out->scopes); - rdim_inline_site_chunk_list_concat_in_place(&all_inline_sites,&out->inline_sites); - } - } - } - - ////////////////////////////////////////////////////////////// - //- rjf: types pass 5: join UDT build tasks - // - RDIM_UDTChunkList all_udts = {0}; - for(U64 idx = 0; idx < udt_tasks_count; idx += 1) - { - RDIM_UDTChunkList *udts = async_task_join_struct(udt_tasks[idx], RDIM_UDTChunkList); - rdim_udt_chunk_list_concat_in_place(&all_udts, udts); - } - - ////////////////////////////////////////////////////////////// - //- rjf: fill output - // - RDIM_BakeParams *out = push_array(arena, RDIM_BakeParams, 1); - { - out->top_level_info = top_level_info; - out->binary_sections = binary_sections; - out->units = all_units; - out->types = all_types; - out->udts = all_udts; - out->src_files = all_src_files; - out->line_tables = all_line_tables; - out->global_variables = all_global_variables; - out->thread_variables = all_thread_variables; - out->procedures = all_procedures; - out->scopes = all_scopes; - out->inline_sites = all_inline_sites; - } - - scratch_end(scratch); - return out; -} - -//////////////////////////////// - -internal B32 -p2r_has_symbol_ref(String8 msf_data, String8List symbol_list, MSF_RawStreamTable *st) -{ - Temp scratch = scratch_begin(0,0); - - B32 has_ref = 0; - - String8 dbi_data = msf_data_from_stream_number(scratch.arena, msf_data, st, PDB_FixedStream_Dbi); - PDB_DbiParsed *dbi = pdb_dbi_from_data(scratch.arena, dbi_data); - if(dbi) - { - String8 gsi_data = msf_data_from_stream_number(scratch.arena, msf_data, st, dbi->gsi_sn); - PDB_GsiParsed *gsi_parsed = pdb_gsi_from_data(scratch.arena, gsi_data); - if(gsi_parsed) - { - String8 symbol_data = msf_data_from_stream_number(scratch.arena, msf_data, st, dbi->sym_sn); - - for(String8Node *symbol_n = symbol_list.first; symbol_n != 0; symbol_n = symbol_n->next) - { - U64 symbol_off = pdb_gsi_symbol_from_string(gsi_parsed, symbol_data, symbol_n->string); - if(symbol_off < symbol_data.size) - { - has_ref = 1; - break; - } - } - } - } - - scratch_end(scratch); - return has_ref; -} - -internal B32 -p2r_has_file_ref(String8 msf_data, String8List file_list, MSF_RawStreamTable *st) -{ - Temp scratch = scratch_begin(0,0); - - B32 has_ref = 0; - - String8 info_data = msf_data_from_stream_number(scratch.arena, msf_data, st, PDB_FixedStream_Info); - PDB_Info *info = pdb_info_from_data(scratch.arena, info_data); - if(info) - { - PDB_NamedStreamTable *named_streams = pdb_named_stream_table_from_info(scratch.arena, info); - if(named_streams) - { - MSF_StreamNumber strtbl_sn = named_streams->sn[PDB_NamedStream_StringTable]; - String8 strtbl_data = msf_data_from_stream_number(scratch.arena, msf_data, st, strtbl_sn); - PDB_Strtbl *strtbl = pdb_strtbl_from_data(scratch.arena, strtbl_data); - if(strtbl) - { - for(String8Node *file_n = file_list.first; file_n != 0; file_n = file_n->next) - { - U32 off = pdb_strtbl_off_from_string(strtbl, file_n->string); - if(off != max_U32) - { - has_ref = 1; - break; - } - } - } - } - } - - scratch_end(scratch); - return has_ref; -} - -internal B32 -p2r_has_symbol_or_file_ref(String8 msf_data, String8List symbol_list, String8List file_list) -{ - Temp scratch = scratch_begin(0,0); - - B32 has_ref = 0; - - MSF_RawStreamTable *st = msf_raw_stream_table_from_data(scratch.arena, msf_data); - - if(!has_ref && symbol_list.node_count) - { - has_ref = p2r_has_symbol_ref(msf_data, symbol_list, st); - } - - if(!has_ref && file_list.node_count) - { - has_ref = p2r_has_file_ref(msf_data, file_list, st); - } - - scratch_end(scratch); - return has_ref; -} - diff --git a/src/radcon/radcon_pdb.h b/src/radcon/radcon_pdb.h deleted file mode 100644 index 89c8472c..00000000 --- a/src/radcon/radcon_pdb.h +++ /dev/null @@ -1,238 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef RADCON_PDB_H -#define RADCON_PDB_H - -//////////////////////////////// -//~ rjf: Initial PDB Information Extraction & Conversion Preparation Task Types - -//- rjf: tpi hash parsing - -typedef struct P2R_TPIHashParseIn P2R_TPIHashParseIn; -struct P2R_TPIHashParseIn -{ - PDB_Strtbl *strtbl; - PDB_TpiParsed *tpi; - String8 hash_data; - String8 aux_data; -}; - -//- rjf: tpi leaves parsing - -typedef struct P2R_TPILeafParseIn P2R_TPILeafParseIn; -struct P2R_TPILeafParseIn -{ - String8 leaf_data; - CV_TypeId itype_first; -}; - -//- rjf: exe hashing - -typedef struct P2R_EXEHashIn P2R_EXEHashIn; -struct P2R_EXEHashIn -{ - String8 exe_data; -}; - -//- rjf: symbol stream parsing - -typedef struct P2R_SymbolStreamParseIn P2R_SymbolStreamParseIn; -struct P2R_SymbolStreamParseIn -{ - String8 data; -}; - -//- rjf: c13 line info stream parsing - -typedef struct P2R_C13StreamParseIn P2R_C13StreamParseIn; -struct P2R_C13StreamParseIn -{ - String8 data; - String8 strtbl; - COFF_SectionHeaderArray coff_sections; -}; - -//- rjf: comp unit parsing - -typedef struct P2R_CompUnitParseIn P2R_CompUnitParseIn; -struct P2R_CompUnitParseIn -{ - String8 data; -}; - -//- rjf: comp unit contribution table parsing - -typedef struct P2R_CompUnitContributionsParseIn P2R_CompUnitContributionsParseIn; -struct P2R_CompUnitContributionsParseIn -{ - String8 data; - COFF_SectionHeaderArray coff_sections; -}; - -//////////////////////////////// -//~ rjf: Conversion Data Structure & Task Types - -//- rjf: link name map (voff -> string) - -typedef struct P2R_LinkNameNode P2R_LinkNameNode; -struct P2R_LinkNameNode -{ - P2R_LinkNameNode *next; - U64 voff; - String8 name; -}; - -typedef struct P2R_LinkNameMap P2R_LinkNameMap; -struct P2R_LinkNameMap -{ - P2R_LinkNameNode **buckets; - U64 buckets_count; - U64 bucket_collision_count; - U64 link_name_count; -}; - -//- rjf: normalized file path -> source file map - -typedef struct P2R_SrcFileNode P2R_SrcFileNode; -struct P2R_SrcFileNode -{ - P2R_SrcFileNode *next; - RDIM_SrcFile *src_file; -}; - -typedef struct P2R_SrcFileMap P2R_SrcFileMap; -struct P2R_SrcFileMap -{ - P2R_SrcFileNode **slots; - U64 slots_count; -}; - -//- rjf: unit conversion tasks - -typedef struct P2R_UnitConvertIn P2R_UnitConvertIn; -struct P2R_UnitConvertIn -{ - PDB_Strtbl *pdb_strtbl; - COFF_SectionHeaderArray coff_sections; - PDB_CompUnitArray *comp_units; - PDB_CompUnitContributionArray *comp_unit_contributions; - CV_SymParsed **comp_unit_syms; - CV_C13Parsed **comp_unit_c13s; -}; - -typedef struct P2R_UnitConvertOut P2R_UnitConvertOut; -struct P2R_UnitConvertOut -{ - RDIM_UnitChunkList units; - RDIM_SrcFileChunkList src_files; - RDIM_LineTableChunkList line_tables; - RDIM_LineTable **units_first_inline_site_line_tables; -}; - -//- rjf: link name map building tasks - -typedef struct P2R_LinkNameMapBuildIn P2R_LinkNameMapBuildIn; -struct P2R_LinkNameMapBuildIn -{ - CV_SymParsed *sym; - COFF_SectionHeaderArray coff_sections; - P2R_LinkNameMap *link_name_map; -}; - -//- rjf: udt conversion - -typedef struct P2R_UDTConvertIn P2R_UDTConvertIn; -struct P2R_UDTConvertIn -{ - CV_LeafParsed *tpi_leaf; - CV_TypeId itype_first; - CV_TypeId itype_opl; - RDIM_Type **itype_type_ptrs; -}; - -//- rjf: symbol stream conversion - -typedef struct P2R_SymbolStreamConvertIn P2R_SymbolStreamConvertIn; -struct P2R_SymbolStreamConvertIn -{ - RDI_Arch arch; - COFF_SectionHeaderArray coff_sections; - PDB_TpiHashParsed *tpi_hash; - CV_LeafParsed *tpi_leaf; - CV_LeafParsed *ipi_leaf; - CV_SymParsed *sym; - U64 sym_ranges_first; - U64 sym_ranges_opl; - RDIM_Type **itype_type_ptrs; - P2R_LinkNameMap *link_name_map; - RDIM_LineTable *first_inline_site_line_table; -}; - -typedef struct P2R_SymbolStreamConvertOut P2R_SymbolStreamConvertOut; -struct P2R_SymbolStreamConvertOut -{ - RDIM_SymbolChunkList procedures; - RDIM_SymbolChunkList global_variables; - RDIM_SymbolChunkList thread_variables; - RDIM_ScopeChunkList scopes; - RDIM_InlineSiteChunkList inline_sites; -}; - -//////////////////////////////// -//~ rjf: Basic Helpers - -internal U64 p2r_end_of_cplusplus_container_name(String8 str); -internal U64 p2r_hash_from_voff(U64 voff); - -//////////////////////////////// -//~ rjf: Location Info Building Helpers - -internal RDIM_Location *p2r_location_from_addr_reg_off(Arena *arena, RDI_Arch arch, RDI_RegCode reg_code, U32 reg_byte_size, U32 reg_byte_pos, S64 offset, B32 extra_indirection); -internal RDI_RegCode p2r_reg_code_from_arch_encoded_fp_reg(RDI_Arch arch, CV_EncodedFramePtrReg encoded_reg); -internal void p2r_location_over_lvar_addr_range(Arena *arena, RDIM_ScopeChunkList *scopes, RDIM_LocationSet *locset, RDIM_Location *location, CV_LvarAddrRange *range, COFF_SectionHeader *section, CV_LvarAddrGap *gaps, U64 gap_count); - -//////////////////////////////// -//~ rjf: Initial Parsing & Preparation Pass Tasks - -ASYNC_WORK_DEF(p2r_exe_hash_work); -ASYNC_WORK_DEF(p2r_tpi_hash_parse_work); -ASYNC_WORK_DEF(p2r_tpi_leaf_work); -ASYNC_WORK_DEF(p2r_symbol_stream_parse_work); -ASYNC_WORK_DEF(p2r_c13_stream_parse_work); -ASYNC_WORK_DEF(p2r_comp_unit_parse_work); -ASYNC_WORK_DEF(p2r_comp_unit_contributions_parse_work); - -//////////////////////////////// -//~ rjf: Unit Conversion Tasks - -ASYNC_WORK_DEF(p2r_units_convert_work); - -//////////////////////////////// -//~ rjf: Link Name Map Building Tasks - -ASYNC_WORK_DEF(p2r_link_name_map_build_work); - -//////////////////////////////// -//~ rjf: UDT Conversion Tasks - -ASYNC_WORK_DEF(p2r_udt_convert_work); - -//////////////////////////////// -//~ rjf: Symbol Stream Conversion Tasks - -ASYNC_WORK_DEF(p2r_symbol_stream_convert_work); - -//////////////////////////////// -//~ rjf: Top-Level Conversion Entry Point - -internal RDIM_BakeParams p2r_convert(Arena *arena, RDIM_LocalState *local_state, RC_Context *in); - -//////////////////////////////// - -internal B32 p2r_has_symbol_ref(String8 msf_data, String8List symbol_list, MSF_RawStreamTable *st); -internal B32 p2r_has_file_ref(String8 msf_data, String8List file_list, MSF_RawStreamTable *st); -internal B32 p2r_has_symbol_or_file_ref(String8 msf_data, String8List symbol_list, String8List file_list); - -#endif // RADCON_PDB_H - From 8eab0e16b86d388b7cca77767bbcf09214beb57a Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 10:41:42 -0700 Subject: [PATCH 021/372] pass over .debug_abbrev dump --- src/dwarf/dwarf_dump.c | 98 +++++++++++++++++------------------------- src/dwarf/dwarf_dump.h | 1 - 2 files changed, 40 insertions(+), 59 deletions(-) diff --git a/src/dwarf/dwarf_dump.c b/src/dwarf/dwarf_dump.c index 08e9fb54..a750bde9 100644 --- a/src/dwarf/dwarf_dump.c +++ b/src/dwarf/dwarf_dump.c @@ -625,63 +625,6 @@ dw_print_eh_frame(Arena *arena, String8List *out, String8 indent, String8 raw_eh scratch_end(scratch); } -internal void -dw_print_debug_abbrev(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - Temp scratch = scratch_begin(&arena, 1); - - DW_Section abbrev = input->sec[DW_Section_Abbrev]; - String8 raw_abbrev = abbrev.data; - - if (raw_abbrev.size) { - rd_printf("# %S", input->sec[DW_Section_Abbrev].name); - rd_indent(); - } - - for (U64 cursor = 0; cursor < raw_abbrev.size; ) { - U64 id_off = cursor; - - U64 id = 0; - cursor += str8_deserial_read_uleb128(raw_abbrev, cursor, &id); - - if (id == 0) { - continue; // end of abbrev data for CU - } - - Temp temp = temp_begin(scratch.arena); - - U64 tag = 0; - U8 has_children = 0; - cursor += str8_deserial_read_uleb128(raw_abbrev, cursor, &tag); - cursor += str8_deserial_read_struct(raw_abbrev, cursor, &has_children); - - rd_printf("<%llx> %llu DW_TagKind_%S %s", id_off, id, dw_string_from_tag_kind(temp.arena, tag), has_children ? "[has children]" : "[no children]"); - rd_indent(); - for (;;) { - U64 attrib_off = cursor; - - U64 attrib_id = 0, form_id = 0; - cursor += str8_deserial_read_uleb128(raw_abbrev, cursor, &attrib_id); - cursor += str8_deserial_read_uleb128(raw_abbrev, cursor, &form_id); - if (attrib_id == 0) { - break; - } - String8 attrib_str = dw_string_from_attrib_kind(temp.arena, DW_Version_Last, DW_Ext_All, attrib_id); - String8 form_str = dw_string_from_form_kind(temp.arena, DW_Version_Last, form_id); - rd_printf("<%llx> DW_AttribKind_%-20S DW_Form_%S", attrib_off, attrib_str, form_str); - } - rd_unindent(); - - temp_end(temp); - } - - if (raw_abbrev.size) { - rd_unindent(); - } - - scratch_end(scratch); -} - internal void dw_print_debug_line(Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, B32 relaxed) { @@ -2114,7 +2057,46 @@ dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableI // DumpSubset(DebugAbbrev) { - // dw_print_debug_abbrev(arena, out, indent, input); + Temp scratch = scratch_begin(&arena, 1); + DW_Section abbrev = input->sec[DW_Section_Abbrev]; + S64 depth = 0; + U64 idx = 0; + for(U64 cursor = 0; cursor < abbrev.data.size; idx += 1) + { + // rjf: read id & advance + U64 id_off = cursor; + U64 id = 0; + cursor += str8_deserial_read_uleb128(abbrev.data, cursor, &id); + if(id == 0) { continue; } + + // rjf: unpack abbrev + U64 tag = 0; + U8 has_children = 0; + cursor += str8_deserial_read_uleb128(abbrev.data, cursor, &tag); + cursor += str8_deserial_read_struct(abbrev.data, cursor, &has_children); + + // rjf: log abbrev + Temp temp = temp_begin(scratch.arena); + dumpf("abbrev: // abbrev[%I64u]\n{\n", idx); + dumpf(" offset: 0x%I64x\n", id_off); + dumpf(" id: %I64u\n", id); + dumpf(" tag_kind: %S\n", dw_string_from_tag_kind(temp.arena, tag)); + dumpf(" has_children: %s\n", has_children ? "true" : "false"); + for(;;) + { + U64 attrib_off = cursor; + U64 attrib_id = 0, form_id = 0; + cursor += str8_deserial_read_uleb128(abbrev.data, cursor, &attrib_id); + cursor += str8_deserial_read_uleb128(abbrev.data, cursor, &form_id); + if(attrib_id == 0) { break; } + String8 attrib_str = dw_string_from_attrib_kind(temp.arena, DW_Version_Last, DW_Ext_All, attrib_id); + String8 form_str = dw_string_from_form_kind(temp.arena, DW_Version_Last, form_id); + rd_printf(" attrib: { offset: 0x%I64x, kind: %S, form_kind: %S }\n", attrib_off, attrib_str, form_str); + } + dumpf("}\n"); + temp_end(temp); + } + scratch_end(scratch); } ////////////////////////////// diff --git a/src/dwarf/dwarf_dump.h b/src/dwarf/dwarf_dump.h index 88d8544c..a4bbaaf4 100644 --- a/src/dwarf/dwarf_dump.h +++ b/src/dwarf/dwarf_dump.h @@ -58,7 +58,6 @@ internal String8 dw_format_eh_ptr_enc (Arena *arena, DW_EhPtrEnc internal void dw_print_cfi_program (Arena *arena, String8List *out, String8 indent, String8 raw_data, DW_CIEUnpacked *cie, DW_EhPtrCtx *ptr_ctx, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); internal void dw_print_eh_frame (Arena *arena, String8List *out, String8 indent, String8 raw_eh_frame, Arch arch, DW_Version ver, DW_Ext ext, DW_EhPtrCtx *ptr_ctx); -internal void dw_print_debug_abbrev (Arena *arena, String8List *out, String8 indent, DW_Input *input); internal void dw_print_debug_line (Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, B32 relaxed); internal void dw_print_debug_str (Arena *arena, String8List *out, String8 indent, DW_Input *input); internal void dw_print_debug_loc (Arena *arena, String8List *out, String8 indent, DW_Input *input, Arch arch, ExecutableImageKind image_type, B32 relaxed); From 056942a792eb07c71c8f72404a8ba83c78e889aa Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 11:00:24 -0700 Subject: [PATCH 022/372] remaining dwarf dumping coverage --- src/dwarf/dwarf_dump.c | 598 ++++++++++++++++++++--------------------- src/dwarf/dwarf_dump.h | 18 +- src/raddump/raddump.c | 6 +- 3 files changed, 306 insertions(+), 316 deletions(-) diff --git a/src/dwarf/dwarf_dump.c b/src/dwarf/dwarf_dump.c index a750bde9..32dfa9d9 100644 --- a/src/dwarf/dwarf_dump.c +++ b/src/dwarf/dwarf_dump.c @@ -1,6 +1,9 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) +//////////////////////////////// +//~ rjf: Stringification Helpers + internal String8 dw_string_from_reg_off(Arena *arena, Arch arch, U64 reg_idx, S64 reg_off) { @@ -313,7 +316,7 @@ dw_string_list_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 } internal String8 -dw_format_expression_single_line(Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) +dw_single_line_string_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) { Temp scratch = scratch_begin(&arena, 1); String8List list = dw_string_list_from_expression(scratch.arena, raw_data, cu_base, address_size, arch, ver, ext, format); @@ -323,7 +326,7 @@ dw_format_expression_single_line(Arena *arena, String8 raw_data, U64 cu_base, U6 } internal void -dw_print_cfi_program(Arena *arena, String8List *out, String8 indent, String8 raw_data, DW_CIEUnpacked *cie, DW_EhPtrCtx *ptr_ctx, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) +dw_string_from_cfi_program(Arena *arena, String8List *out, String8 indent, String8 raw_data, DW_CIEUnpacked *cie, DW_EhPtrCtx *ptr_ctx, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) { Temp scratch = scratch_begin(&arena, 1); @@ -435,7 +438,7 @@ dw_print_cfi_program(Arena *arena, String8List *out, String8 indent, String8 raw cursor += block_size; rd_printf("DW_CFA_def_cfa_expression: %S", - dw_format_expression_single_line(scratch.arena, raw_expr, 0, address_size, arch, ver, ext, format)); + dw_single_line_string_from_expression(scratch.arena, raw_expr, 0, address_size, arch, ver, ext, format)); } break; case DW_CFA_Expr: { U64 reg = 0, block_size = 0; @@ -446,7 +449,7 @@ dw_print_cfi_program(Arena *arena, String8List *out, String8 indent, String8 raw rd_printf("DW_CFA_expression: %S, expression %S", dw_string_from_register(scratch.arena, arch, reg), - dw_format_expression_single_line(scratch.arena, raw_expr, 0, address_size, arch, ver, ext, format)); + dw_single_line_string_from_expression(scratch.arena, raw_expr, 0, address_size, arch, ver, ext, format)); } break; case DW_CFA_OffsetExtSf: { U64 reg_idx = 0; @@ -489,7 +492,7 @@ dw_print_cfi_program(Arena *arena, String8List *out, String8 indent, String8 raw rd_printf("DW_CFA_val_expr: value %+llu, expression %S", val, - dw_format_expression_single_line(scratch.arena, raw_expr, 0, address_size, arch, ver, ext, format)); + dw_single_line_string_from_expression(scratch.arena, raw_expr, 0, address_size, arch, ver, ext, format)); } break; case DW_CFA_AdvanceLoc: { rd_printf("DW_CFA_advance_loc: %+llu", operand); @@ -514,7 +517,7 @@ dw_print_cfi_program(Arena *arena, String8List *out, String8 indent, String8 raw } internal String8 -dw_format_eh_ptr_enc(Arena *arena, DW_EhPtrEnc enc) +dw_string_from_eh_ptr_enc(Arena *arena, DW_EhPtrEnc enc) { U8 type = enc & DW_EhPtrEnc_TypeMask; String8 type_str = str8_lit("NULL"); @@ -581,8 +584,8 @@ dw_print_eh_frame(Arena *arena, String8List *out, String8 indent, String8 raw_eh rd_printf("CIE @ 0x%X, Length %u", header_offset, length); rd_indent(); - rd_printf("LSDA Encoding: %S", dw_format_eh_ptr_enc(scratch.arena, cie.lsda_encoding)); - rd_printf("Address Encoding: %S", dw_format_eh_ptr_enc(scratch.arena, cie.addr_encoding)); + rd_printf("LSDA Encoding: %S", dw_string_from_eh_ptr_enc(scratch.arena, cie.lsda_encoding)); + rd_printf("Address Encoding: %S", dw_string_from_eh_ptr_enc(scratch.arena, cie.addr_encoding)); rd_printf("Augmentation: %S", cie.augmentation); rd_printf("Code Align Factor: %llu", cie.code_align_factor); rd_printf("Data Align Factor: %lld", cie.data_align_factor); @@ -613,7 +616,7 @@ dw_print_eh_frame(Arena *arena, String8List *out, String8 indent, String8 raw_eh DW_Format format = DW_FormatFromSize(length); String8 raw_cfi = str8_substr(raw_eh_frame, cfi_range); - dw_print_cfi_program(scratch.arena, out, indent, raw_cfi, &cie, ptr_ctx, arch, ver, ext, format); + dw_string_from_cfi_program(scratch.arena, out, indent, raw_cfi, &cie, ptr_ctx, arch, ver, ext, format); rd_unindent(); rd_newline(); @@ -625,298 +628,6 @@ dw_print_eh_frame(Arena *arena, String8List *out, String8 indent, String8 raw_eh scratch_end(scratch); } -internal void -dw_print_debug_line(Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, B32 relaxed) -{ - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# .debug_line"); - - Rng1U64List unit_ranges = dw_unit_ranges_from_data(scratch.arena, input->sec[DW_Section_Line].data); - for (Rng1U64Node *unit_range_n = unit_ranges.first; unit_range_n != 0; unit_range_n = unit_range_n->next) { - Temp unit_temp = temp_begin(scratch.arena); - - String8 unit_data = str8_substr(input->sec[DW_Section_Line].data, unit_range_n->v); - String8 cu_dir = {0}; - String8 cu_name = {0}; - DW_ListUnit cu_str_offsets = {0}; - DW_LineVMHeader line_vm = {0}; - U64 line_vm_size = dw_read_line_vm_header(unit_temp.arena, unit_data, 0, input, cu_dir, cu_name, line_vm.address_size, &cu_str_offsets, &line_vm); - - if (line_vm_size == 0) { - continue; - } - - { - rd_printf("Header:", line_vm_size); - rd_indent(); - String8List opcode_length_strings = numeric_str8_list_from_data(unit_temp.arena, 16, str8(line_vm.opcode_lens, line_vm.num_opcode_lens), 1); - String8 opcode_lengths_string = str8_list_join(arena, &opcode_length_strings, &(StringJoin){.sep = str8_lit(", ")}); - rd_printf("Version: %u", line_vm.version ); - rd_printf("Line table offset: %#llx", line_vm.unit_range.min ); - rd_printf("Line table length: %llu", dim_1u64(line_vm.unit_range) ); - rd_printf("Version: %u", line_vm.version ); - rd_printf("Address size: %u", line_vm.address_size ); - rd_printf("Segment selector size: %u", line_vm.segment_selector_size); - rd_printf("Header length: %llu", line_vm.header_length ); - rd_printf("Min instruction length: %u", line_vm.min_inst_len ); - rd_printf("Max ops for instruction: %u", line_vm.max_ops_for_inst ); - rd_printf("Default Is Stmt: %u", line_vm.default_is_stmt ); - rd_printf("Line base: %d", line_vm.line_base ); - rd_printf("Line range: %u", line_vm.line_range ); - rd_printf("Opcode base: %u", line_vm.opcode_base ); - rd_printf("Opcode lengths: %S", opcode_lengths_string ); - rd_unindent(); - rd_newline(); - } - - { - rd_printf("Directory Table:"); - rd_indent(); - rd_printf("%-4s %-8s", "No.", "String"); - for (U64 dir_idx = 0; dir_idx < line_vm.dir_table.count; ++dir_idx) { - rd_printf("%-4llu %S", dir_idx, line_vm.dir_table.v[dir_idx]); - } - rd_unindent(); - rd_newline(); - } - - { - rd_printf("File Table:"); - rd_indent(); - rd_printf("%-4s %-8s %-8s %-33s %-8s %-8s", "No.", "DirIdx", "Time", "MD5", "Size", "Name"); - for (U64 file_idx = 0; file_idx < line_vm.file_table.count; ++file_idx) { - DW_LineFile *file = &line_vm.file_table.v[file_idx]; - rd_printf("%-4llu %-8llu %-8llu %016llx-%016llx %-8llu %S", - file_idx, - file->dir_idx, - file->modify_time, - file->md5_digest.u64[1], - file->md5_digest.u64[0], - file->file_size, - file->file_name); - } - rd_unindent(); - rd_newline(); - } - - { - rd_printf("Opcodes:"); - rd_indent(); - - String8 opcodes = str8_skip(unit_data, line_vm_size); - B32 end_of_seq = 0; - DW_LineVMState vm_state = {0}; - dw_line_vm_reset(&vm_state, line_vm.default_is_stmt); - - for (U64 cursor = 0; cursor < opcodes.size; ) { - Temp opcode_temp = temp_begin(unit_temp.arena); - - String8List opcode_fmt = {0}; - - // opcode offset - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "[%08llx]", cursor); - - // parse opcode - U8 opcode = 0; - cursor += str8_deserial_read_struct(opcodes, cursor, &opcode); - - // push opcode id - String8 opcode_str = dw_string_from_std_opcode(opcode_temp.arena, opcode); - str8_list_push(arena, &opcode_fmt, opcode_str); - - // format operands - switch (opcode) { - default: { - if (opcode >= line_vm.opcode_base) { - U32 adjusted_opcode = 0; - U32 op_advance = 0; - S32 line_advance = 0; - U64 addr_advance = 0; - if (line_vm.line_range > 0 && line_vm.max_ops_for_inst > 0) { - adjusted_opcode = (U32)(opcode - line_vm.opcode_base); - op_advance = adjusted_opcode / line_vm.line_range; - line_advance = (S32)line_vm.line_base + ((S32)adjusted_opcode) % (S32)line_vm.line_range; - addr_advance = line_vm.min_inst_len * ((vm_state.op_index+op_advance) / line_vm.max_ops_for_inst); - } - - vm_state.address += addr_advance; - vm_state.op_index = (vm_state.op_index + op_advance) % line_vm.max_ops_for_inst; - vm_state.line = (U32)((S32)vm_state.line + line_advance); - vm_state.basic_block = 0; - vm_state.prologue_end = 0; - vm_state.epilogue_begin = 0; - vm_state.discriminator = 0; - - end_of_seq = 0; - - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance line by %d, advance address by %lld", line_advance, addr_advance); - } else { - if (opcode > 0 && opcode <= line_vm.num_opcode_lens) { - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "skip operands:"); - U64 num_operands = line_vm.opcode_lens[opcode - 1]; - for (U8 i = 0; i < num_operands; i += 1){ - U64 operand = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &operand); - str8_list_pushf(opcode_temp.arena, &opcode_fmt, " %llx", operand); - } - } - } - }break; - - case DW_StdOpcode_Copy: { - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "Line = %u, Column = %u, Address = %#llx", vm_state.line, vm_state.column, vm_state.address); - end_of_seq = 0; - vm_state.discriminator = 0; - vm_state.basic_block = 0; - vm_state.prologue_end = 0; - vm_state.epilogue_begin = 0; - } break; - case DW_StdOpcode_AdvancePc: { - U64 advance = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &advance); - dw_line_vm_advance(&vm_state, advance, line_vm.min_inst_len, line_vm.max_ops_for_inst); - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance %#llx ; current address %#llx", advance, vm_state.address); - } break; - - case DW_StdOpcode_AdvanceLine: { - S64 advance = 0; - cursor += str8_deserial_read_sleb128(opcodes, cursor, &advance); - vm_state.line += advance; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance %lld ; current line %u", advance, vm_state.line); - } break; - - case DW_StdOpcode_SetFile: { - U64 file_idx = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &file_idx); - vm_state.file_index = file_idx; - - String8 path = dw_path_from_file_idx(opcode_temp.arena, &line_vm, file_idx); - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu \"%S\"", file_idx, path); - } break; - - case DW_StdOpcode_SetColumn: { - U64 column = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &column); - vm_state.column = column; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu", column); - } break; - - case DW_StdOpcode_NegateStmt: { - vm_state.is_stmt = !vm_state.is_stmt; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "is_stmt = %u", vm_state.is_stmt); - } break; - - case DW_StdOpcode_SetBasicBlock: { - vm_state.basic_block = 1; - } break; - - case DW_StdOpcode_ConstAddPc: { - U64 advance = (0xffu - line_vm.opcode_base)/line_vm.line_range; - dw_line_vm_advance(&vm_state, advance, line_vm.min_inst_len, line_vm.max_ops_for_inst); - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%lld ; address %#llx", advance, vm_state.address); - }break; - - case DW_StdOpcode_FixedAdvancePc: { - U64 operand = 0; - cursor += str8_deserial_read_struct(opcodes, cursor, &operand); - vm_state.address += operand; - vm_state.op_index = 0; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu", operand); - } break; - - case DW_StdOpcode_SetPrologueEnd: { - vm_state.prologue_end = 1; - } break; - - case DW_StdOpcode_SetEpilogueBegin: { - vm_state.epilogue_begin = 1; - } break; - - case DW_StdOpcode_SetIsa: { - U64 v = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &v); - vm_state.isa = v; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu", v); - } break; - - case DW_StdOpcode_ExtendedOpcode: { - U64 length = 0; - U8 ext_opcode = 0; - - cursor += str8_deserial_read_uleb128(opcodes, cursor, &length); - U64 opcode_end = cursor + length; - - cursor += str8_deserial_read_struct(opcodes, cursor, &ext_opcode); - - String8 ext_opcode_str = dw_string_from_ext_opcode(opcode_temp.arena, ext_opcode); - //str8_list_pushf(opcode_temp.arena, &opcode_fmt, "length: %u", length); - str8_list_push(opcode_temp.arena, &opcode_fmt, ext_opcode_str); - switch (ext_opcode) { - case DW_ExtOpcode_EndSequence: { - vm_state.end_sequence = 1; - dw_line_vm_reset(&vm_state, line_vm.default_is_stmt); - end_of_seq = 1; - } break; - case DW_ExtOpcode_SetAddress: { - U64 address = 0; - cursor += str8_deserial_read(opcodes, cursor, &address, line_vm.address_size, line_vm.address_size); - vm_state.address = address; - vm_state.op_index = 0; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%#llx", address); - } break; - case DW_ExtOpcode_DefineFile: { - String8 file_name = {0}; - cursor += str8_deserial_read_cstr(opcodes, cursor, &file_name); - - U64 dir_idx = 0, modify_time = 0, file_size = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &dir_idx); - cursor += str8_deserial_read_uleb128(opcodes, cursor, &modify_time); - cursor += str8_deserial_read_uleb128(opcodes, cursor, &file_size); - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%S Dir: %llu, Time: %llu, Size: %llu", file_name, dir_idx, modify_time, file_size); - } break; - case DW_ExtOpcode_SetDiscriminator: { - U64 v = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &v); - vm_state.discriminator = v; - str8_list_pushf(arena, &opcode_fmt, "%llu", v); - } break; - } - - cursor = opcode_end; - } break; - } - - String8 string = str8_list_join(opcode_temp.arena, &opcode_fmt, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", string); - - temp_end(opcode_temp); - } - - rd_unindent(); - rd_newline(); - } - - temp_end(unit_temp); - } - - scratch_end(scratch); -} - -internal void -dw_print_debug_str(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - String8 data = input->sec[DW_Section_Str].data; - rd_printf("# %S", input->sec[DW_Section_Str].name); - rd_indent(); - for (U64 cursor = 0, read_size = 0; cursor < data.size; cursor += read_size) { - String8 string = {0}; - read_size = str8_deserial_read_cstr(data, cursor, &string); - rd_printf("[%08llx] { %llu, \"%S\" }", cursor, string.size, string); - } - rd_unindent(); -} - internal void dw_print_debug_loc(Arena *arena, String8List *out, String8 indent, DW_Input *input, Arch arch, ExecutableImageKind image_type, B32 relaxed) { @@ -1033,7 +744,7 @@ dw_print_debug_loc(Arena *arena, String8List *out, String8 indent, DW_Input *inp // format dwarf expression B32 is_dwarf64 = (address_size == 8); String8 raw_expr = str8((U8*)base+expr_range.min, dim_1u64(expr_range)); - String8 expression = dw_format_expression_single_line(range_temp.arena, raw_expr, cu_bases[comp_idx], address_size, arch, ver, ext, input->sec[DW_Section_Loc].mode); + String8 expression = dw_single_line_string_from_expression(range_temp.arena, raw_expr, cu_bases[comp_idx], address_size, arch, ver, ext, input->sec[DW_Section_Loc].mode); // push entry U64 min = base_address + v0; @@ -1491,7 +1202,7 @@ dw_print_debug_loclists(Arena *arena, String8List *out, String8 indent, DW_Input // TODO: we need actual cu base to format expression correctly NotImplemented; - String8 expression = dw_format_expression_single_line(temp.arena, raw_expr, 0, address_size, arch, version, DW_Ext_Null, is_dwarf64); + String8 expression = dw_single_line_string_from_expression(temp.arena, raw_expr, 0, address_size, arch, version, DW_Ext_Null, is_dwarf64); str8_list_pushf(temp.arena, &list, "(%S)", expression); } break; case DW_LocListEntryKind_StartXLength: { @@ -1830,6 +1541,9 @@ dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 indent, DW_In #endif } +//////////////////////////////// +//~ rjf: Dump Entry Point + internal String8List dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableImageKind image_type, DW_DumpSubsetFlags subset_flags) { @@ -1837,7 +1551,7 @@ dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableI String8 indent = str8_lit(" "); #define dump(str) str8_list_push(arena, &strings, (str)) #define dumpf(...) str8_list_pushf(arena, &strings, __VA_ARGS__) -#define DumpSubset(name) if(subset_flags & DW_DumpSubsetFlag_##name) DeferLoop(dumpf("# %S\n\n", dw_name_title_from_dump_subset_table[DW_DumpSubset_##name]), dump(str8_lit("\n"))) +#define DumpSubset(name) if(subset_flags & DW_DumpSubsetFlag_##name) DeferLoop(dumpf("// %S\n\n", dw_name_title_from_dump_subset_table[DW_DumpSubset_##name]), dump(str8_lit("\n"))) Temp scratch = scratch_begin(&arena, 1); Rng1U64Array segment_vranges = {0}; DW_ListUnitInput lu_input = dw_list_unit_input_from_input(scratch.arena, input); @@ -1924,7 +1638,7 @@ dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableI case DW_AttribClass_ExprLoc: { String8 exprloc = dw_exprloc_from_attrib(input, &unit, attrib); - String8 exprloc_str = dw_format_expression_single_line(attrib_temp.arena, exprloc, unit_range.min, unit.address_size, arch, unit.version, unit.ext, unit.format); + String8 exprloc_str = dw_single_line_string_from_expression(attrib_temp.arena, exprloc, unit_range.min, unit.address_size, arch, unit.version, unit.ext, unit.format); dump(exprloc_str); }break; case DW_AttribClass_Flag: @@ -2104,15 +1818,283 @@ dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableI // DumpSubset(DebugLine) { - // dw_print_debug_line(arena, out, indent, input, lu_input, relaxed); + for EachIndex(unit_idx, unit_ranges.count) + { + Temp unit_temp = temp_begin(scratch.arena); + + // rjf: unpack unit + String8 unit_data = str8_substr(input->sec[DW_Section_Line].data, unit_ranges.v[unit_idx]); + String8 cu_dir = {0}; + String8 cu_name = {0}; + DW_ListUnit cu_str_offsets = {0}; + DW_LineVMHeader line_vm = {0}; + U64 line_vm_size = dw_read_line_vm_header(unit_temp.arena, unit_data, 0, input, cu_dir, cu_name, line_vm.address_size, &cu_str_offsets, &line_vm); + if(line_vm_size == 0) + { + continue; + } + + // rjf: begin logging line table + dumpf("line_table: // line_table[%I64u]\n{\n", unit_idx); + + // rjf: log line table header + DeferLoop(dumpf(" header:\n {\n"), dumpf(" }\n\n")) + { + String8List opcode_length_strings = numeric_str8_list_from_data(unit_temp.arena, 16, str8(line_vm.opcode_lens, line_vm.num_opcode_lens), 1); + String8 opcode_lengths_string = str8_list_join(arena, &opcode_length_strings, &(StringJoin){.sep = str8_lit(", ")}); + dumpf(" version: %u\n", line_vm.version ); + dumpf(" line_table_off: 0x%I64x\n", line_vm.unit_range.min ); + dumpf(" line_table_size: %I64u\n", dim_1u64(line_vm.unit_range) ); + dumpf(" address_size: %u\n", line_vm.address_size ); + dumpf(" segment_selector_size: %u\n", line_vm.segment_selector_size); + dumpf(" header_length: %I64u\n", line_vm.header_length ); + dumpf(" min_instruction_length: %u\n", line_vm.min_inst_len ); + dumpf(" max_ops_for_instruction: %u\n", line_vm.max_ops_for_inst ); + dumpf(" default_is_stmt: %u\n", line_vm.default_is_stmt ); + dumpf(" line_base: %d\n", line_vm.line_base ); + dumpf(" line_range: %u\n", line_vm.line_range ); + dumpf(" opcode_base: %u\n", line_vm.opcode_base ); + dumpf(" opcode_lengths: %S\n", opcode_lengths_string ); + } + + // rjf: log directory table + DeferLoop(dumpf(" directory_table:\n {\n"), dumpf(" }\n\n")) + { + dumpf(" // %-4s %-8s\n", "no.", "name"); + for EachIndex(dir_idx, line_vm.dir_table.count) + { + dumpf(" { %-4llu %S }\n", dir_idx, line_vm.dir_table.v[dir_idx]); + } + } + + // rjf: log file table + DeferLoop(dumpf(" file_table:\n {\n"), dumpf(" }\n\n")) + { + dumpf("// %-4s %-8s %-8s %-33s %-8s %-8s\n", "no.", "dir_idx", "time", "md5", "size", "name"); + for EachIndex(file_idx, line_vm.file_table.count) + { + DW_LineFile *file = &line_vm.file_table.v[file_idx]; + dumpf("{ %-4llu %-8llu %-8llu %016llx-%016llx %-8llu %S }\n", + file_idx, + file->dir_idx, + file->modify_time, + file->md5_digest.u64[1], + file->md5_digest.u64[0], + file->file_size, + file->file_name); + } + } + + // rjf: log opcodes + DeferLoop(dumpf(" opcodes:\n {\n"), dumpf(" }\n\n")) + { + String8 opcodes = str8_skip(unit_data, line_vm_size); + B32 end_of_seq = 0; + DW_LineVMState vm_state = {0}; + dw_line_vm_reset(&vm_state, line_vm.default_is_stmt); + for(U64 cursor = 0; cursor < opcodes.size;) + { + Temp opcode_temp = temp_begin(unit_temp.arena); + String8List opcode_fmt = {0}; + + // opcode offset + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "[%08llx]", cursor); + + // parse opcode + U8 opcode = 0; + cursor += str8_deserial_read_struct(opcodes, cursor, &opcode); + + // push opcode id + String8 opcode_str = dw_string_from_std_opcode(opcode_temp.arena, opcode); + str8_list_push(arena, &opcode_fmt, opcode_str); + + // format operands + switch(opcode) + { + default: + { + if(opcode >= line_vm.opcode_base) + { + U32 adjusted_opcode = 0; + U32 op_advance = 0; + S32 line_advance = 0; + U64 addr_advance = 0; + if(line_vm.line_range > 0 && line_vm.max_ops_for_inst > 0) + { + adjusted_opcode = (U32)(opcode - line_vm.opcode_base); + op_advance = adjusted_opcode / line_vm.line_range; + line_advance = (S32)line_vm.line_base + ((S32)adjusted_opcode) % (S32)line_vm.line_range; + addr_advance = line_vm.min_inst_len * ((vm_state.op_index+op_advance) / line_vm.max_ops_for_inst); + } + vm_state.address += addr_advance; + vm_state.op_index = (vm_state.op_index + op_advance) % line_vm.max_ops_for_inst; + vm_state.line = (U32)((S32)vm_state.line + line_advance); + vm_state.basic_block = 0; + vm_state.prologue_end = 0; + vm_state.epilogue_begin = 0; + vm_state.discriminator = 0; + end_of_seq = 0; + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance line by %d, advance address by %lld", line_advance, addr_advance); + } + else + { + if(opcode > 0 && opcode <= line_vm.num_opcode_lens) + { + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "skip operands:"); + U64 num_operands = line_vm.opcode_lens[opcode - 1]; + for(U8 i = 0; i < num_operands; i += 1) + { + U64 operand = 0; + cursor += str8_deserial_read_uleb128(opcodes, cursor, &operand); + str8_list_pushf(opcode_temp.arena, &opcode_fmt, " %llx", operand); + } + } + } + }break; + case DW_StdOpcode_Copy: + { + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "Line = %u, Column = %u, Address = %#llx", vm_state.line, vm_state.column, vm_state.address); + end_of_seq = 0; + vm_state.discriminator = 0; + vm_state.basic_block = 0; + vm_state.prologue_end = 0; + vm_state.epilogue_begin = 0; + }break; + case DW_StdOpcode_AdvancePc: + { + U64 advance = 0; + cursor += str8_deserial_read_uleb128(opcodes, cursor, &advance); + dw_line_vm_advance(&vm_state, advance, line_vm.min_inst_len, line_vm.max_ops_for_inst); + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance %#llx ; current address %#llx", advance, vm_state.address); + }break; + case DW_StdOpcode_AdvanceLine: + { + S64 advance = 0; + cursor += str8_deserial_read_sleb128(opcodes, cursor, &advance); + vm_state.line += advance; + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance %lld ; current line %u", advance, vm_state.line); + }break; + case DW_StdOpcode_SetFile: + { + U64 file_idx = 0; + cursor += str8_deserial_read_uleb128(opcodes, cursor, &file_idx); + vm_state.file_index = file_idx; + String8 path = dw_path_from_file_idx(opcode_temp.arena, &line_vm, file_idx); + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu \"%S\"", file_idx, path); + }break; + case DW_StdOpcode_SetColumn: + { + U64 column = 0; + cursor += str8_deserial_read_uleb128(opcodes, cursor, &column); + vm_state.column = column; + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu", column); + }break; + case DW_StdOpcode_NegateStmt: + { + vm_state.is_stmt = !vm_state.is_stmt; + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "is_stmt = %u", vm_state.is_stmt); + }break; + case DW_StdOpcode_SetBasicBlock: + { + vm_state.basic_block = 1; + }break; + case DW_StdOpcode_ConstAddPc: + { + U64 advance = (0xffu - line_vm.opcode_base)/line_vm.line_range; + dw_line_vm_advance(&vm_state, advance, line_vm.min_inst_len, line_vm.max_ops_for_inst); + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%lld ; address %#llx", advance, vm_state.address); + }break; + case DW_StdOpcode_FixedAdvancePc: + { + U64 operand = 0; + cursor += str8_deserial_read_struct(opcodes, cursor, &operand); + vm_state.address += operand; + vm_state.op_index = 0; + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu", operand); + }break; + case DW_StdOpcode_SetPrologueEnd: + { + vm_state.prologue_end = 1; + }break; + case DW_StdOpcode_SetEpilogueBegin: + { + vm_state.epilogue_begin = 1; + }break; + case DW_StdOpcode_SetIsa: + { + U64 v = 0; + cursor += str8_deserial_read_uleb128(opcodes, cursor, &v); + vm_state.isa = v; + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu", v); + }break; + case DW_StdOpcode_ExtendedOpcode: + { + U64 length = 0; + U8 ext_opcode = 0; + cursor += str8_deserial_read_uleb128(opcodes, cursor, &length); + U64 opcode_end = cursor + length; + cursor += str8_deserial_read_struct(opcodes, cursor, &ext_opcode); + String8 ext_opcode_str = dw_string_from_ext_opcode(opcode_temp.arena, ext_opcode); + //str8_list_pushf(opcode_temp.arena, &opcode_fmt, "length: %u", length); + str8_list_push(opcode_temp.arena, &opcode_fmt, ext_opcode_str); + switch(ext_opcode) + { + case DW_ExtOpcode_EndSequence: + { + vm_state.end_sequence = 1; + dw_line_vm_reset(&vm_state, line_vm.default_is_stmt); + end_of_seq = 1; + }break; + case DW_ExtOpcode_SetAddress: + { + U64 address = 0; + cursor += str8_deserial_read(opcodes, cursor, &address, line_vm.address_size, line_vm.address_size); + vm_state.address = address; + vm_state.op_index = 0; + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%#llx", address); + }break; + case DW_ExtOpcode_DefineFile: + { + String8 file_name = {0}; + cursor += str8_deserial_read_cstr(opcodes, cursor, &file_name); + U64 dir_idx = 0, modify_time = 0, file_size = 0; + cursor += str8_deserial_read_uleb128(opcodes, cursor, &dir_idx); + cursor += str8_deserial_read_uleb128(opcodes, cursor, &modify_time); + cursor += str8_deserial_read_uleb128(opcodes, cursor, &file_size); + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%S Dir: %llu, Time: %llu, Size: %llu", file_name, dir_idx, modify_time, file_size); + }break; + case DW_ExtOpcode_SetDiscriminator: + { + U64 v = 0; + cursor += str8_deserial_read_uleb128(opcodes, cursor, &v); + vm_state.discriminator = v; + str8_list_pushf(arena, &opcode_fmt, "%llu", v); + }break; + } + cursor = opcode_end; + }break; + } + String8 string = str8_list_join(opcode_temp.arena, &opcode_fmt, &(StringJoin){.sep=str8_lit(" ")}); + dumpf("%S\n", string); + temp_end(opcode_temp); + } + } + temp_end(unit_temp); + } } ////////////////////////////// //- rjf: dump .debug_str // - DumpSubset(DebugStr) + DumpSubset(DebugStr) DeferLoop(dumpf("strings:\n{\n"), dumpf("}\n\n")) { - // dw_print_debug_str(arena, out, indent, input); + String8 data = input->sec[DW_Section_Str].data; + for(U64 cursor = 0, read_size = 0; cursor < data.size; cursor += read_size) + { + String8 string = {0}; + read_size = str8_deserial_read_cstr(data, cursor, &string); + dumpf(" { 0x%08I64x %llu \"%S\" }\n", cursor, string.size, string); + } } ////////////////////////////// diff --git a/src/dwarf/dwarf_dump.h b/src/dwarf/dwarf_dump.h index a4bbaaf4..c93faa53 100644 --- a/src/dwarf/dwarf_dump.h +++ b/src/dwarf/dwarf_dump.h @@ -4,6 +4,9 @@ #ifndef DWARF_DUMP_H #define DWARF_DUMP_H +//////////////////////////////// +//~ rjf: Dump Subset Types + #define DW_DumpSubset_XList \ X(DebugInfo, debug_info, "DEBUG INFO")\ X(DebugAbbrev, debug_abbrev, "DEBUG ABBREV")\ @@ -51,15 +54,16 @@ read_only global String8 dw_name_title_from_dump_subset_table[] = #undef X }; +//////////////////////////////// +//~ rjf: Stringification Helpers + internal String8 dw_string_from_reg_off(Arena *arena, Arch arch, U64 reg_idx, S64 reg_off); internal String8List dw_string_list_from_expression (Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); -internal String8 dw_format_expression_single_line(Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); -internal String8 dw_format_eh_ptr_enc (Arena *arena, DW_EhPtrEnc enc); -internal void dw_print_cfi_program (Arena *arena, String8List *out, String8 indent, String8 raw_data, DW_CIEUnpacked *cie, DW_EhPtrCtx *ptr_ctx, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); +internal String8 dw_single_line_string_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); +internal String8 dw_string_from_eh_ptr_enc (Arena *arena, DW_EhPtrEnc enc); +internal void dw_string_from_cfi_program (Arena *arena, String8List *out, String8 indent, String8 raw_data, DW_CIEUnpacked *cie, DW_EhPtrCtx *ptr_ctx, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); internal void dw_print_eh_frame (Arena *arena, String8List *out, String8 indent, String8 raw_eh_frame, Arch arch, DW_Version ver, DW_Ext ext, DW_EhPtrCtx *ptr_ctx); -internal void dw_print_debug_line (Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_ListUnitInput lu_input, B32 relaxed); -internal void dw_print_debug_str (Arena *arena, String8List *out, String8 indent, DW_Input *input); internal void dw_print_debug_loc (Arena *arena, String8List *out, String8 indent, DW_Input *input, Arch arch, ExecutableImageKind image_type, B32 relaxed); internal void dw_print_debug_ranges (Arena *arena, String8List *out, String8 indent, DW_Input *input, Arch arch, ExecutableImageKind image_type, B32 relaxed); internal void dw_print_debug_aranges (Arena *arena, String8List *out, String8 indent, DW_Input *input); @@ -70,6 +74,10 @@ internal void dw_print_debug_pubnames (Arena *arena, String8List *out, String8 internal void dw_print_debug_pubtypes (Arena *arena, String8List *out, String8 indent, DW_Input *input); internal void dw_print_debug_line_str (Arena *arena, String8List *out, String8 indent, DW_Input *input); internal void dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 indent, DW_Input *input); + +//////////////////////////////// +//~ rjf: Dump Entry Point + internal String8List dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableImageKind image_type, DW_DumpSubsetFlags subset_flags); #endif // DWARF_DUMP_H diff --git a/src/raddump/raddump.c b/src/raddump/raddump.c index 4454e53c..defb847c 100644 --- a/src/raddump/raddump.c +++ b/src/raddump/raddump.c @@ -4949,7 +4949,7 @@ elf_print_dwarf_expressions(Arena *arena, String8List *out, String8 indent, Stri if (tag.kind == DW_TagKind_SubProgram) { String8 expr = dw_exprloc_from_tag_attrib_kind(&dwarf_input, &cu, tag, DW_AttribKind_FrameBase); if (expr.size > 0) { - String8 expr_str = dw_format_expression_single_line(comp_temp.arena, expr, cu_base, cu.address_size, arch, cu.version, cu.ext, cu.format); + String8 expr_str = dw_single_line_string_from_expression(comp_temp.arena, expr, cu_base, cu.address_size, arch, cu.version, cu.ext, cu.format); } } } else if (tag.kind == DW_Tag_VariaKindble || tag.kind == DW_Tag_FormalParameter) { @@ -4971,12 +4971,12 @@ elf_print_dwarf_expressions(Arena *arena, String8List *out, String8 indent, Stri if (value_class == DW_AttribClass_LocListPtr || value_class == DW_AttribClass_LocList) { DW_LocList location = dw_loclist_from_tag_attrib_kind(comp_temp.arena, &dwarf_input, &cu, location_attrib); for (DW_LocNode *loc_n = location.first; loc_n != 0; loc_n = loc_n->next) { - String8 expr_str = dw_format_expression_single_line(comp_temp.arena, loc_n->v.expr, cu_base, cu.address_size, arch, cu.version, cu.ext, cu.format); + String8 expr_str = dw_single_line_string_from_expression(comp_temp.arena, loc_n->v.expr, cu_base, cu.address_size, arch, cu.version, cu.ext, cu.format); rd_printf("[%llx-%llx] %S", loc_n->v.range.min, loc_n->v.range.max, expr_str); } } else if (value_class == DW_AttribClass_ExprLoc) { String8 expr = dw_exprloc_from_tag_attrib_kind(&dwarf_input, &cu, location_attrib); - String8 expr_str = dw_format_expression_single_line(comp_temp.arena, expr, cu_base, cu.address_size, arch, cu.version, cu.ext, cu.format); + String8 expr_str = dw_single_line_string_from_expression(comp_temp.arena, expr, cu_base, cu.address_size, arch, cu.version, cu.ext, cu.format); rd_printf("%S", expr_str); } rd_unindent(); From 052d32d534e7d9891c0549191ff058ff810fc650 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 11:12:10 -0700 Subject: [PATCH 023/372] sketch out dwarf in radbin --- src/radbin/radbin.c | 90 +++++++++++++++++++++++++++++----------- src/raddbg/raddbg_main.c | 10 +---- 2 files changed, 67 insertions(+), 33 deletions(-) diff --git a/src/radbin/radbin.c b/src/radbin/radbin.c index 80752243..fed78b97 100644 --- a/src/radbin/radbin.c +++ b/src/radbin/radbin.c @@ -845,21 +845,33 @@ rb_entry_point(CmdLine *cmdline) #define X(name, name_lower, title) fprintf(stderr, " - " #name_lower "\n"); RDI_DumpSubset_XList #undef X + + fprintf(stderr, "-------------------------------------------------------------------------------\n\n"); + + fprintf(stderr, "DWARF INFO SUBSET NAMES\n\n"); +#define X(name, name_lower, title) fprintf(stderr, " - " #name_lower "\n"); + DW_DumpSubset_XList +#undef X } //- rjf: unpack dump subset flags RDI_DumpSubsetFlags rdi_dump_subset_flags = RDI_DumpSubsetFlag_All; + DW_DumpSubsetFlags dw_dump_subset_flags = DW_DumpSubsetFlag_All; { String8List only_names = cmd_line_strings(cmdline, str8_lit("only")); if(only_names.node_count != 0) { rdi_dump_subset_flags = 0; + dw_dump_subset_flags = 0; } for(String8Node *n = only_names.first; n != 0; n = n->next) { if(0){} #define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { rdi_dump_subset_flags |= RDI_DumpSubsetFlag_##name; } RDI_DumpSubset_XList +#undef X +#define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { dw_dump_subset_flags |= DW_DumpSubsetFlag_##name; } + DW_DumpSubset_XList #undef X } String8List omit_names = cmd_line_strings(cmdline, str8_lit("omit")); @@ -868,6 +880,9 @@ rb_entry_point(CmdLine *cmdline) if(0){} #define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { rdi_dump_subset_flags &= ~RDI_DumpSubsetFlag_##name; } RDI_DumpSubset_XList +#undef X +#define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { dw_dump_subset_flags &= ~DW_DumpSubsetFlag_##name; } + DW_DumpSubset_XList #undef X } } @@ -877,11 +892,51 @@ rb_entry_point(CmdLine *cmdline) for(RB_FileNode *n = input_files.first; n != 0; n = n->next) { RB_File *f = n->v; - str8_list_pushf(arena, &output_blobs, "# %S (%S)\n\n", deterministic ? str8_skip_last_slash(f->path) : f->path, f->format ? rb_file_format_display_name_table[f->format] : str8_lit("Unsupported format")); + str8_list_pushf(arena, &output_blobs, "// %S (%S)\n\n", deterministic ? str8_skip_last_slash(f->path) : f->path, f->format ? rb_file_format_display_name_table[f->format] : str8_lit("Unsupported format")); + + //- rjf: dump file info based on format switch(f->format) { default:{}break; + //- rjf: PDB + case RB_FileFormat_PDB: + { + // TODO(rjf) + }break; + + //- rjf: PE + case RB_FileFormat_PE: + { + // TODO(rjf) + }break; + + //- rjf: COFF OBJ + case RB_FileFormat_COFF_OBJ: + { + // TODO(rjf) + }break; + + //- rjf: COFF big OBJ + case RB_FileFormat_COFF_BigOBJ: + { + // TODO(rjf) + }break; + + //- rjf: COFF archive + case RB_FileFormat_COFF_Archive: + case RB_FileFormat_COFF_ThinArchive: + { + // TODO(rjf) + }break; + + //- rjf: ELF + case RB_FileFormat_ELF32: + case RB_FileFormat_ELF64: + { + // TODO(rjf) + }break; + //- rjf: RDI file case RB_FileFormat_RDI: { @@ -902,31 +957,16 @@ rb_entry_point(CmdLine *cmdline) }break; } }break; - - //- rjf: COFF archive - case RB_FileFormat_COFF_Archive: - case RB_FileFormat_COFF_ThinArchive: + } + + //- rjf: dump file extension info + if(f->format_flags & RB_FileFormatFlag_HasDWARF) + { + str8_list_pushf(arena, &output_blobs, "// %S (%S) (DWARF)\n\n", deterministic ? str8_skip_last_slash(f->path) : f->path, f->format ? rb_file_format_display_name_table[f->format] : str8_lit("Unsupported format")); { - // TODO(rjf) - }break; - - //- rjf: COFF big OBJ - case RB_FileFormat_COFF_BigOBJ: - { - // TODO(rjf) - }break; - - //- rjf: COFF OBJ - case RB_FileFormat_COFF_OBJ: - { - // TODO(rjf) - }break; - - //- rjf: PE - case RB_FileFormat_PE: - { - // TODO(rjf) - }break; + + String8List dump = dw_dump_list_from_sections(); + } } } diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index e81cc47f..aac84d3b 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -226,10 +226,7 @@ #include "pdb/pdb.h" #include "pdb/pdb_parse.h" #include "pdb/pdb_stringize.h" -#include "dwarf/dwarf.h" -#include "dwarf/dwarf_parse.h" -#include "dwarf/dwarf_coff.h" -#include "dwarf/dwarf_elf.h" +#include "dwarf/dwarf_inc.h" #include "rdi_from_coff/rdi_from_coff.h" #include "rdi_from_elf/rdi_from_elf.h" #include "rdi_from_pdb/rdi_from_pdb.h" @@ -279,10 +276,7 @@ #include "pdb/pdb.c" #include "pdb/pdb_parse.c" #include "pdb/pdb_stringize.c" -#include "dwarf/dwarf.c" -#include "dwarf/dwarf_parse.c" -#include "dwarf/dwarf_coff.c" -#include "dwarf/dwarf_elf.c" +#include "dwarf/dwarf_inc.c" #include "rdi_from_coff/rdi_from_coff.c" #include "rdi_from_elf/rdi_from_elf.c" #include "rdi_from_pdb/rdi_from_pdb.c" From b28b7307888a7d7fec09f6daa40158d306f6cf40 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 13:37:28 -0700 Subject: [PATCH 024/372] plug in dwarf dumping to radbin --- src/dwarf/dwarf_dump.c | 4 ++-- src/dwarf/dwarf_dump.h | 2 +- src/radbin/radbin.c | 45 ++++++++++++++++++++++++++++++++++++------ 3 files changed, 42 insertions(+), 9 deletions(-) diff --git a/src/dwarf/dwarf_dump.c b/src/dwarf/dwarf_dump.c index 32dfa9d9..93438e39 100644 --- a/src/dwarf/dwarf_dump.c +++ b/src/dwarf/dwarf_dump.c @@ -1545,7 +1545,7 @@ dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 indent, DW_In //~ rjf: Dump Entry Point internal String8List -dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableImageKind image_type, DW_DumpSubsetFlags subset_flags) +dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, DW_DumpSubsetFlags subset_flags) { String8List strings = {0}; String8 indent = str8_lit(" "); @@ -1805,7 +1805,7 @@ dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableI if(attrib_id == 0) { break; } String8 attrib_str = dw_string_from_attrib_kind(temp.arena, DW_Version_Last, DW_Ext_All, attrib_id); String8 form_str = dw_string_from_form_kind(temp.arena, DW_Version_Last, form_id); - rd_printf(" attrib: { offset: 0x%I64x, kind: %S, form_kind: %S }\n", attrib_off, attrib_str, form_str); + dumpf(" attrib: { offset: 0x%I64x, kind: %S, form_kind: %S }\n", attrib_off, attrib_str, form_str); } dumpf("}\n"); temp_end(temp); diff --git a/src/dwarf/dwarf_dump.h b/src/dwarf/dwarf_dump.h index c93faa53..394386f3 100644 --- a/src/dwarf/dwarf_dump.h +++ b/src/dwarf/dwarf_dump.h @@ -78,6 +78,6 @@ internal void dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 //////////////////////////////// //~ rjf: Dump Entry Point -internal String8List dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, ExecutableImageKind image_type, DW_DumpSubsetFlags subset_flags); +internal String8List dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, DW_DumpSubsetFlags subset_flags); #endif // DWARF_DUMP_H diff --git a/src/radbin/radbin.c b/src/radbin/radbin.c index fed78b97..1106bb06 100644 --- a/src/radbin/radbin.c +++ b/src/radbin/radbin.c @@ -845,6 +845,7 @@ rb_entry_point(CmdLine *cmdline) #define X(name, name_lower, title) fprintf(stderr, " - " #name_lower "\n"); RDI_DumpSubset_XList #undef X + fprintf(stderr, "\n"); fprintf(stderr, "-------------------------------------------------------------------------------\n\n"); @@ -852,6 +853,7 @@ rb_entry_point(CmdLine *cmdline) #define X(name, name_lower, title) fprintf(stderr, " - " #name_lower "\n"); DW_DumpSubset_XList #undef X + fprintf(stderr, "\n"); } //- rjf: unpack dump subset flags @@ -888,12 +890,46 @@ rb_entry_point(CmdLine *cmdline) } //- rjf: dump input files in order - String8List dump = {0}; for(RB_FileNode *n = input_files.first; n != 0; n = n->next) { RB_File *f = n->v; str8_list_pushf(arena, &output_blobs, "// %S (%S)\n\n", deterministic ? str8_skip_last_slash(f->path) : f->path, f->format ? rb_file_format_display_name_table[f->format] : str8_lit("Unsupported format")); + //- rjf: unpack file parses + Arch arch = Arch_Null; + PE_BinInfo pe = {0}; + ELF_BinInfo elf = {0}; + DW_Input dw = {0}; + { + if(f->format == RB_FileFormat_PE) + { + pe = pe_bin_info_from_data(arena, f->data); + arch = pe.arch; + } + if(f->format == RB_FileFormat_ELF32 || + f->format == RB_FileFormat_ELF64) + { + elf = elf_bin_from_data(f->data); + arch = arch_from_elf_machine(elf.hdr.e_machine); + } + if(f->format_flags & RB_FileFormatFlag_HasDWARF) + { + if(f->format == RB_FileFormat_PE) + { + String8 raw_sections = str8_substr(f->data, pe.section_table_range); + U64 section_count = raw_sections.size / sizeof(COFF_SectionHeader); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)raw_sections.str; + String8 string_table = str8_substr(f->data, pe.string_table_range); + dw = dw_input_from_coff_section_table(arena, f->data, string_table, section_count, section_table); + } + else if(f->format == RB_FileFormat_ELF32 || + f->format == RB_FileFormat_ELF64) + { + dw = dw_input_from_elf_section_table(arena, f->data, &elf); + } + } + } + //- rjf: dump file info based on format switch(f->format) { @@ -964,14 +1000,11 @@ rb_entry_point(CmdLine *cmdline) { str8_list_pushf(arena, &output_blobs, "// %S (%S) (DWARF)\n\n", deterministic ? str8_skip_last_slash(f->path) : f->path, f->format ? rb_file_format_display_name_table[f->format] : str8_lit("Unsupported format")); { - - String8List dump = dw_dump_list_from_sections(); + String8List dump = dw_dump_list_from_sections(arena, &dw, arch, dw_dump_subset_flags); + str8_list_concat_in_place(&output_blobs, &dump); } } } - - //- rjf: join with output - str8_list_concat_in_place(&output_blobs, &dump); }break; } From bfe90f5906a9394ae4bb88b324337f1bf637341e Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 14:48:13 -0700 Subject: [PATCH 025/372] plug in thin pdb analysis to determine if waiting on a full RDI conversion is necessary - do not wait if RDI is determined to be unnecessary given breakpoints! --- project.4coder | 2 +- src/ctrl/ctrl_core.c | 115 ++++++++++++++++++++++++++++---- src/ctrl/ctrl_core.h | 2 +- src/pdb/pdb_parse.c | 99 +++++++++++++++++++++++++++ src/pdb/pdb_parse.h | 7 +- src/rdi_from_pdb/rdi_from_pdb.c | 92 ------------------------- src/rdi_from_pdb/rdi_from_pdb.h | 6 -- 7 files changed, 208 insertions(+), 115 deletions(-) diff --git a/project.4coder b/project.4coder index a2f9e48f..9da7220b 100644 --- a/project.4coder +++ b/project.4coder @@ -49,7 +49,7 @@ commands = .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [scratch] - .f2 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f2 = { .win = "raddbg_stable --ipc kill_all && build radbin release telemetry && raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [textperf] // .f1 = { .win = "raddbg_stable --ipc kill_all && build no_meta telemetry textperf && raddbg_stable --ipc bring_to_front && raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index afeaa858..35dad822 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -3803,13 +3803,14 @@ internal void ctrl_thread__append_resolved_module_user_bp_traps(Arena *arena, CTRL_EvalScope *eval_scope, CTRL_Handle process, CTRL_Handle module, CTRL_UserBreakpointList *user_bps, DMN_TrapChunkList *traps_out) { if(user_bps->first == 0) { return; } + ProfBeginFunction(); Temp scratch = scratch_begin(&arena, 1); DI_Scope *di_scope = eval_scope->di_scope; CTRL_EntityCtx *entity_ctx = &ctrl_state->ctrl_thread_entity_store->ctx; CTRL_Entity *module_entity = ctrl_entity_from_handle(entity_ctx, module); CTRL_Entity *debug_info_path_entity = ctrl_entity_child_from_kind(module_entity, CTRL_EntityKind_DebugInfoPath); DI_Key dbgi_key = {debug_info_path_entity->string, debug_info_path_entity->timestamp}; - RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, 1, max_U64); + RDI_Parsed *rdi = di_rdi_from_key(di_scope, &dbgi_key, 1, 0); U64 base_vaddr = module_entity->vaddr_range.min; for(CTRL_UserBreakpointNode *n = user_bps->first; n != 0; n = n->next) { @@ -3885,6 +3886,7 @@ ctrl_thread__append_resolved_module_user_bp_traps(Arena *arena, CTRL_EvalScope * } } scratch_end(scratch); + ProfEnd(); } internal void @@ -4717,7 +4719,8 @@ ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg, // modules (a very bad heuristic that may or may not inform us that we are // dealing with insane-town projects) // - if(event->kind == DMN_EventKind_LoadModule && + if(0 && + event->kind == DMN_EventKind_LoadModule && (entity_ctx->entity_kind_counts[CTRL_EntityKind_Module] > 256 || entity_ctx->entity_kind_counts[CTRL_EntityKind_Module] == 1)) { @@ -4864,6 +4867,14 @@ ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg, DI_Key key = {push_str8f(scratch.arena, "%S/%S", t->path, info.name), info.props.modified}; di_open(&key); di_key_list_push(scratch.arena, &preemptively_loaded_keys, &key); + if(preemptively_loaded_keys.count >= Max(1, async_thread_count()/2)) + { + for(DI_KeyNode *n = preemptively_loaded_keys.first; n != 0; n = n->next) + { + di_close(&n->v); + } + MemoryZeroStruct(&preemptively_loaded_keys); + } } } os_file_iter_end(it); @@ -4871,12 +4882,6 @@ ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg, } } } - - //- rjf: close each pre-emptively loaded key - for(DI_KeyNode *n = preemptively_loaded_keys.first; n != 0; n = n->next) - { - di_close(&n->v); - } } } @@ -4963,7 +4968,7 @@ ctrl_eval_space_read(void *u, E_Space space, void *out, Rng1U64 range) //- rjf: control thread eval scopes internal CTRL_EvalScope * -ctrl_thread__eval_scope_begin(Arena *arena, CTRL_Entity *thread) +ctrl_thread__eval_scope_begin(Arena *arena, CTRL_UserBreakpointList *user_bps, CTRL_Entity *thread) { CTRL_EntityCtx *entity_ctx = &ctrl_state->ctrl_thread_entity_store->ctx; CTRL_EvalScope *scope = push_array(arena, CTRL_EvalScope, 1); @@ -5005,8 +5010,90 @@ ctrl_thread__eval_scope_begin(Arena *arena, CTRL_Entity *thread) if(mod->kind != CTRL_EntityKind_Module) { continue; } CTRL_Entity *dbg_path = ctrl_entity_child_from_kind(mod, CTRL_EntityKind_DebugInfoPath); DI_Key dbgi_key = {dbg_path->string, dbg_path->timestamp}; + + //- rjf: try to obtain this module's RDI + RDI_Parsed *rdi = di_rdi_from_key(scope->di_scope, &dbgi_key, 1, 0); + + //- rjf: if this RDI is not yet ready => determine if we need to wait for it + B32 rdi_is_necessary = 1; + if(rdi == &rdi_parsed_nil) ProfScope("determine if RDI is necessary") + { + OS_Handle file = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead, dbgi_key.path); + { + //- rjf: determine if file is PDB + B32 file_is_pdb = 0; + if(!file_is_pdb) + { + U8 msf70_magic_maybe[sizeof(msf_msf70_magic)] = {0}; + os_file_read(file, r1u64(0, sizeof(msf70_magic_maybe)), msf70_magic_maybe); + if(MemoryMatch(msf70_magic_maybe, msf_msf70_magic, sizeof(msf70_magic_maybe))) + { + file_is_pdb = 1; + } + } + if(!file_is_pdb) + { + U8 msf20_magic_maybe[sizeof(msf_msf20_magic)] = {0}; + os_file_read(file, r1u64(0, sizeof(msf20_magic_maybe)), msf20_magic_maybe); + if(MemoryMatch(msf20_magic_maybe, msf_msf20_magic, sizeof(msf20_magic_maybe))) + { + file_is_pdb = 1; + } + } + + //- rjf: file is PDB -> do thin parse & lookup of all breakpoint files/symbols. + // if any are found in the PDB, then this RDI is necessary. + if(file_is_pdb) + { + Temp scratch = scratch_begin(&arena, 1); + + // rjf: gather breakpoint-referenced symbols + String8List symbols = {0}; + { + // TODO(rjf) + } + + // rjf: gather breakpoint-referenced file paths + String8List files = {0}; + { + for(CTRL_UserBreakpointNode *n = user_bps->first; n != 0; n = n->next) + { + if(n->v.kind != CTRL_UserBreakpointKind_FileNameAndLineColNumber) + { + continue; + } + str8_list_push(scratch.arena, &files, n->v.string); + } + } + + // rjf: check file + { + FileProperties props = os_properties_from_file(file); + OS_Handle map = os_file_map_open(OS_AccessFlag_Read, file); + void *file_base = os_file_map_view_open(map, OS_AccessFlag_Read, r1u64(0, props.size)); + String8 file_data = str8(file_base, props.size); + { + rdi_is_necessary = pdb_has_symbol_or_file_ref(file_data, symbols, files); + } + os_file_map_view_close(map, file_base, r1u64(0, props.size)); + os_file_map_close(map); + } + + scratch_end(scratch); + } + } + os_file_close(file); + } + + //- rjf: if this RDI is necessary, but we do not have it => wait for it forever + if(rdi == &rdi_parsed_nil && rdi_is_necessary) + { + rdi = di_rdi_from_key(scope->di_scope, &dbgi_key, 1, max_U64); + } + + //- rjf: fill evaluation module info eval_modules[eval_module_idx].arch = arch; - eval_modules[eval_module_idx].rdi = di_rdi_from_key(scope->di_scope, &dbgi_key, 1, max_U64); + eval_modules[eval_module_idx].rdi = rdi; eval_modules[eval_module_idx].vaddr_range = mod->vaddr_range; eval_modules[eval_module_idx].space = e_space_make(CTRL_EvalSpaceKind_Entity); eval_modules[eval_module_idx].space.u64_0 = (U64)process; @@ -5440,7 +5527,7 @@ ctrl_thread__run(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg) DMN_TrapChunkList user_traps = {0}; { CTRL_Entity *thread = ctrl_entity_from_handle(entity_ctx, target_thread); - CTRL_EvalScope *eval_scope = ctrl_thread__eval_scope_begin(scratch.arena, thread); + CTRL_EvalScope *eval_scope = ctrl_thread__eval_scope_begin(scratch.arena, &msg->user_bps, thread); for(CTRL_Entity *machine = entity_ctx->root->first; machine != &ctrl_entity_nil; machine = machine->next) @@ -5732,7 +5819,7 @@ ctrl_thread__run(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg) }break; case DMN_EventKind_CreateProcess: { - CTRL_EvalScope *eval_scope = ctrl_thread__eval_scope_begin(scratch.arena, &ctrl_entity_nil); + CTRL_EvalScope *eval_scope = ctrl_thread__eval_scope_begin(scratch.arena, &msg->user_bps, &ctrl_entity_nil); { DMN_TrapChunkList new_traps = {0}; ctrl_thread__append_resolved_process_user_bp_traps(scratch.arena, eval_scope, ctrl_handle_make(CTRL_MachineID_Local, event->process), &msg->user_bps, &new_traps); @@ -5755,7 +5842,7 @@ ctrl_thread__run(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg) case DMN_EventKind_LoadModule: { CTRL_Entity *thread = ctrl_entity_from_handle(entity_ctx, ctrl_handle_make(CTRL_MachineID_Local, event->thread)); - CTRL_EvalScope *eval_scope = ctrl_thread__eval_scope_begin(scratch.arena, thread); + CTRL_EvalScope *eval_scope = ctrl_thread__eval_scope_begin(scratch.arena, &msg->user_bps, thread); { DMN_TrapChunkList new_traps = {0}; ctrl_thread__append_resolved_module_user_bp_traps(scratch.arena, eval_scope, ctrl_handle_make(CTRL_MachineID_Local, event->process), ctrl_handle_make(CTRL_MachineID_Local, event->module), &msg->user_bps, &new_traps); @@ -6152,7 +6239,7 @@ ctrl_thread__run(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg) // rjf: evaluate hit stop conditions if(conditions.node_count != 0) ProfScope("evaluate hit stop conditions") { - CTRL_EvalScope *eval_scope = ctrl_thread__eval_scope_begin(temp.arena, thread); + CTRL_EvalScope *eval_scope = ctrl_thread__eval_scope_begin(temp.arena, &msg->user_bps, thread); for(String8Node *condition_n = conditions.first; condition_n != 0; condition_n = condition_n->next) { // rjf: evaluate diff --git a/src/ctrl/ctrl_core.h b/src/ctrl/ctrl_core.h index 8bac1f4c..651726ac 100644 --- a/src/ctrl/ctrl_core.h +++ b/src/ctrl/ctrl_core.h @@ -1099,7 +1099,7 @@ internal DMN_Event *ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ internal B32 ctrl_eval_space_read(void *u, E_Space space, void *out, Rng1U64 vaddr_range); //- rjf: control thread eval scopes -internal CTRL_EvalScope *ctrl_thread__eval_scope_begin(Arena *arena, CTRL_Entity *thread); +internal CTRL_EvalScope *ctrl_thread__eval_scope_begin(Arena *arena, CTRL_UserBreakpointList *user_bps, CTRL_Entity *thread); internal void ctrl_thread__eval_scope_end(CTRL_EvalScope *scope); //- rjf: log flusher diff --git a/src/pdb/pdb_parse.c b/src/pdb/pdb_parse.c index dd4bbd8a..36f5e7ad 100644 --- a/src/pdb/pdb_parse.c +++ b/src/pdb/pdb_parse.c @@ -1067,3 +1067,102 @@ pdb_strtbl_off_from_string(PDB_Strtbl *strtbl, String8 string) return result; } + +//////////////////////////////// +//~ rjf: Thin Lookup Fast Paths + +internal B32 +pdb_has_symbol_ref(String8 msf_data, String8List symbol_list, MSF_RawStreamTable *st) +{ + Temp scratch = scratch_begin(0,0); + + B32 has_ref = 0; + + String8 dbi_data = msf_data_from_stream_number(scratch.arena, msf_data, st, PDB_FixedStream_Dbi); + PDB_DbiParsed *dbi = pdb_dbi_from_data(scratch.arena, dbi_data); + if(dbi) + { + String8 gsi_data = msf_data_from_stream_number(scratch.arena, msf_data, st, dbi->gsi_sn); + PDB_GsiParsed *gsi_parsed = pdb_gsi_from_data(scratch.arena, gsi_data); + if(gsi_parsed) + { + String8 symbol_data = msf_data_from_stream_number(scratch.arena, msf_data, st, dbi->sym_sn); + + for(String8Node *symbol_n = symbol_list.first; symbol_n != 0; symbol_n = symbol_n->next) + { + U64 symbol_off = pdb_gsi_symbol_from_string(gsi_parsed, symbol_data, symbol_n->string); + if(symbol_off < symbol_data.size) + { + has_ref = 1; + break; + } + } + } + } + + scratch_end(scratch); + return has_ref; +} + +internal B32 +pdb_has_file_ref(String8 msf_data, String8List file_list, MSF_RawStreamTable *st) +{ + Temp scratch = scratch_begin(0,0); + + B32 has_ref = 0; + + String8 info_data = msf_data_from_stream_number(scratch.arena, msf_data, st, PDB_FixedStream_Info); + PDB_Info *info = pdb_info_from_data(scratch.arena, info_data); + if(info) + { + PDB_NamedStreamTable *named_streams = pdb_named_stream_table_from_info(scratch.arena, info); + if(named_streams) + { + MSF_StreamNumber strtbl_sn = named_streams->sn[PDB_NamedStream_StringTable]; + String8 strtbl_data = msf_data_from_stream_number(scratch.arena, msf_data, st, strtbl_sn); + PDB_Strtbl *strtbl = pdb_strtbl_from_data(scratch.arena, strtbl_data); + if(strtbl) + { + for(String8Node *file_n = file_list.first; file_n != 0; file_n = file_n->next) + { + Temp temp = temp_begin(scratch.arena); + String8 path = file_n->string; + String8 path_pdbstyle = path_convert_slashes(temp.arena, path, PathStyle_WindowsAbsolute); + U32 off = pdb_strtbl_off_from_string(strtbl, path_pdbstyle); + temp_end(temp); + if(off != max_U32) + { + has_ref = 1; + break; + } + } + } + } + } + + scratch_end(scratch); + return has_ref; +} + +internal B32 +pdb_has_symbol_or_file_ref(String8 msf_data, String8List symbol_list, String8List file_list) +{ + Temp scratch = scratch_begin(0,0); + + B32 has_ref = 0; + + MSF_RawStreamTable *st = msf_raw_stream_table_from_data(scratch.arena, msf_data); + + if(!has_ref && symbol_list.node_count) + { + has_ref = pdb_has_symbol_ref(msf_data, symbol_list, st); + } + + if(!has_ref && file_list.node_count) + { + has_ref = pdb_has_file_ref(msf_data, file_list, st); + } + + scratch_end(scratch); + return has_ref; +} diff --git a/src/pdb/pdb_parse.h b/src/pdb/pdb_parse.h index 6b028ef4..9474c1a3 100644 --- a/src/pdb/pdb_parse.h +++ b/src/pdb/pdb_parse.h @@ -242,6 +242,11 @@ internal String8 pdb_strtbl_string_from_index(PDB_Strtbl *strtbl, PDB_StringIndex idx); internal U32 pdb_strtbl_off_from_string(PDB_Strtbl *strtbl, String8 string); +//////////////////////////////// +//~ rjf: Thin Lookup Fast Paths + +internal B32 pdb_has_symbol_ref(String8 msf_data, String8List symbol_list, MSF_RawStreamTable *st); +internal B32 pdb_has_file_ref(String8 msf_data, String8List file_list, MSF_RawStreamTable *st); +internal B32 pdb_has_symbol_or_file_ref(String8 msf_data, String8List symbol_list, String8List file_list); #endif // PDB_PARSE_H - diff --git a/src/rdi_from_pdb/rdi_from_pdb.c b/src/rdi_from_pdb/rdi_from_pdb.c index b0025c42..93fc40f4 100644 --- a/src/rdi_from_pdb/rdi_from_pdb.c +++ b/src/rdi_from_pdb/rdi_from_pdb.c @@ -4387,95 +4387,3 @@ p2r_convert(Arena *arena, ASYNC_Root *async_root, P2R_ConvertParams *in) //////////////////////////////// -internal B32 -p2r_has_symbol_ref(String8 msf_data, String8List symbol_list, MSF_RawStreamTable *st) -{ - Temp scratch = scratch_begin(0,0); - - B32 has_ref = 0; - - String8 dbi_data = msf_data_from_stream_number(scratch.arena, msf_data, st, PDB_FixedStream_Dbi); - PDB_DbiParsed *dbi = pdb_dbi_from_data(scratch.arena, dbi_data); - if(dbi) - { - String8 gsi_data = msf_data_from_stream_number(scratch.arena, msf_data, st, dbi->gsi_sn); - PDB_GsiParsed *gsi_parsed = pdb_gsi_from_data(scratch.arena, gsi_data); - if(gsi_parsed) - { - String8 symbol_data = msf_data_from_stream_number(scratch.arena, msf_data, st, dbi->sym_sn); - - for(String8Node *symbol_n = symbol_list.first; symbol_n != 0; symbol_n = symbol_n->next) - { - U64 symbol_off = pdb_gsi_symbol_from_string(gsi_parsed, symbol_data, symbol_n->string); - if(symbol_off < symbol_data.size) - { - has_ref = 1; - break; - } - } - } - } - - scratch_end(scratch); - return has_ref; -} - -internal B32 -p2r_has_file_ref(String8 msf_data, String8List file_list, MSF_RawStreamTable *st) -{ - Temp scratch = scratch_begin(0,0); - - B32 has_ref = 0; - - String8 info_data = msf_data_from_stream_number(scratch.arena, msf_data, st, PDB_FixedStream_Info); - PDB_Info *info = pdb_info_from_data(scratch.arena, info_data); - if(info) - { - PDB_NamedStreamTable *named_streams = pdb_named_stream_table_from_info(scratch.arena, info); - if(named_streams) - { - MSF_StreamNumber strtbl_sn = named_streams->sn[PDB_NamedStream_StringTable]; - String8 strtbl_data = msf_data_from_stream_number(scratch.arena, msf_data, st, strtbl_sn); - PDB_Strtbl *strtbl = pdb_strtbl_from_data(scratch.arena, strtbl_data); - if(strtbl) - { - for(String8Node *file_n = file_list.first; file_n != 0; file_n = file_n->next) - { - U32 off = pdb_strtbl_off_from_string(strtbl, file_n->string); - if(off != max_U32) - { - has_ref = 1; - break; - } - } - } - } - } - - scratch_end(scratch); - return has_ref; -} - -internal B32 -p2r_has_symbol_or_file_ref(String8 msf_data, String8List symbol_list, String8List file_list) -{ - Temp scratch = scratch_begin(0,0); - - B32 has_ref = 0; - - MSF_RawStreamTable *st = msf_raw_stream_table_from_data(scratch.arena, msf_data); - - if(!has_ref && symbol_list.node_count) - { - has_ref = p2r_has_symbol_ref(msf_data, symbol_list, st); - } - - if(!has_ref && file_list.node_count) - { - has_ref = p2r_has_file_ref(msf_data, file_list, st); - } - - scratch_end(scratch); - return has_ref; -} - diff --git a/src/rdi_from_pdb/rdi_from_pdb.h b/src/rdi_from_pdb/rdi_from_pdb.h index 921d6019..90c61514 100644 --- a/src/rdi_from_pdb/rdi_from_pdb.h +++ b/src/rdi_from_pdb/rdi_from_pdb.h @@ -356,10 +356,4 @@ ASYNC_WORK_DEF(p2r_symbol_stream_convert_work); internal RDIM_BakeParams p2r_convert(Arena *arena, ASYNC_Root *async_root, P2R_ConvertParams *in); -//////////////////////////////// - -internal B32 p2r_has_symbol_ref(String8 msf_data, String8List symbol_list, MSF_RawStreamTable *st); -internal B32 p2r_has_file_ref(String8 msf_data, String8List file_list, MSF_RawStreamTable *st); -internal B32 p2r_has_symbol_or_file_ref(String8 msf_data, String8List symbol_list, String8List file_list); - #endif // RDI_FROM_PDB_H From d532f62aaaf8206eb8838209e78fb77e1072d7ff Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 14:53:13 -0700 Subject: [PATCH 026/372] plug in expression-based breakpoints to RDI-necessary-checking path --- src/ctrl/ctrl_core.c | 48 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 35dad822..8a3c2c71 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -5050,7 +5050,53 @@ ctrl_thread__eval_scope_begin(Arena *arena, CTRL_UserBreakpointList *user_bps, C // rjf: gather breakpoint-referenced symbols String8List symbols = {0}; { - // TODO(rjf) + for(CTRL_UserBreakpointNode *n = user_bps->first; n != 0; n = n->next) + { + if(n->v.kind != CTRL_UserBreakpointKind_Expression) + { + continue; + } + E_Parse addr_parse = e_parse_from_string(n->v.string); + E_Parse cnd_parse = e_parse_from_string(n->v.condition); + E_Expr *exprs[] = {addr_parse.expr, cnd_parse.expr}; + for EachElement(idx, exprs) + { + typedef struct ExprWalkTask ExprWalkTask; + struct ExprWalkTask + { + ExprWalkTask *next; + E_Expr *expr; + }; + ExprWalkTask start_task = {0, exprs[idx]}; + ExprWalkTask *first_task = &start_task; + for(ExprWalkTask *t = first_task; t != 0; t = t->next) + { + E_Expr *expr = t->expr; + if(expr->ref != &e_expr_nil) + { + expr = expr->ref; + } + if(expr->kind == E_ExprKind_LeafIdentifier) + { + str8_list_push(scratch.arena, &symbols, expr->string); + } + if(expr->next != &e_expr_nil) + { + ExprWalkTask *task = push_array(scratch.arena, ExprWalkTask, 1); + task->expr = expr->next; + task->next = t->next; + t->next = task; + } + if(expr->first != &e_expr_nil) + { + ExprWalkTask *task = push_array(scratch.arena, ExprWalkTask, 1); + task->expr = expr->first; + task->next = t->next; + t->next = task; + } + } + } + } } // rjf: gather breakpoint-referenced file paths From fa242b3d8094a16e40af86eda2054cf317d7bedd Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 15:26:56 -0700 Subject: [PATCH 027/372] #if 0 broken code; fix clang build --- src/dwarf/dwarf_dump.c | 4 ++++ src/dwarf/dwarf_dump.h | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/dwarf/dwarf_dump.c b/src/dwarf/dwarf_dump.c index 93438e39..f63c49a2 100644 --- a/src/dwarf/dwarf_dump.c +++ b/src/dwarf/dwarf_dump.c @@ -325,6 +325,8 @@ dw_single_line_string_from_expression(Arena *arena, String8 raw_data, U64 cu_bas return expression; } +#if 0 + internal void dw_string_from_cfi_program(Arena *arena, String8List *out, String8 indent, String8 raw_data, DW_CIEUnpacked *cie, DW_EhPtrCtx *ptr_ctx, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) { @@ -1541,6 +1543,8 @@ dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 indent, DW_In #endif } +#endif + //////////////////////////////// //~ rjf: Dump Entry Point diff --git a/src/dwarf/dwarf_dump.h b/src/dwarf/dwarf_dump.h index 394386f3..257dd09b 100644 --- a/src/dwarf/dwarf_dump.h +++ b/src/dwarf/dwarf_dump.h @@ -61,6 +61,8 @@ internal String8 dw_string_from_reg_off(Arena *arena, Arch arch, U64 reg_idx, S6 internal String8List dw_string_list_from_expression (Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); internal String8 dw_single_line_string_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); internal String8 dw_string_from_eh_ptr_enc (Arena *arena, DW_EhPtrEnc enc); + +#if 0 internal void dw_string_from_cfi_program (Arena *arena, String8List *out, String8 indent, String8 raw_data, DW_CIEUnpacked *cie, DW_EhPtrCtx *ptr_ctx, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); internal void dw_print_eh_frame (Arena *arena, String8List *out, String8 indent, String8 raw_eh_frame, Arch arch, DW_Version ver, DW_Ext ext, DW_EhPtrCtx *ptr_ctx); @@ -74,6 +76,7 @@ internal void dw_print_debug_pubnames (Arena *arena, String8List *out, String8 internal void dw_print_debug_pubtypes (Arena *arena, String8List *out, String8 indent, DW_Input *input); internal void dw_print_debug_line_str (Arena *arena, String8List *out, String8 indent, DW_Input *input); internal void dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 indent, DW_Input *input); +#endif //////////////////////////////// //~ rjf: Dump Entry Point From 248a155579f762fc6d432e3bf2a160ee7d22584c Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 16:48:07 -0700 Subject: [PATCH 028/372] checkpoint on dump parseability pass --- project.4coder | 2 +- src/coff/coff_dump.c | 819 +++++++++++++++++++++++++++++++++++++++ src/coff/coff_dump.h | 22 ++ src/coff/coff_inc.c | 6 + src/coff/coff_inc.h | 11 + src/radbin/radbin_main.c | 6 +- src/raddump/raddump.c | 817 -------------------------------------- src/raddump/raddump.h | 15 - src/rdi/rdi_local.c | 36 +- 9 files changed, 881 insertions(+), 853 deletions(-) create mode 100644 src/coff/coff_dump.c create mode 100644 src/coff/coff_dump.h create mode 100644 src/coff/coff_inc.c create mode 100644 src/coff/coff_inc.h diff --git a/project.4coder b/project.4coder index 9da7220b..2d3c8b01 100644 --- a/project.4coder +++ b/project.4coder @@ -49,7 +49,7 @@ commands = .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [scratch] - .f2 = { .win = "raddbg_stable --ipc kill_all && build radbin release telemetry && raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f2 = { .win = "raddbg_stable --ipc kill_all && build radbin && pushd build && radbin.exe mule_main.rdi --out:a.dump && popd", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [textperf] // .f1 = { .win = "raddbg_stable --ipc kill_all && build no_meta telemetry textperf && raddbg_stable --ipc bring_to_front && raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, diff --git a/src/coff/coff_dump.c b/src/coff/coff_dump.c new file mode 100644 index 00000000..2d74d087 --- /dev/null +++ b/src/coff/coff_dump.c @@ -0,0 +1,819 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#if 0 +internal void +coff_print_archive_member_header(Arena *arena, String8List *out, String8 indent, COFF_ParsedArchiveMemberHeader header, String8 long_names) +{ + Temp scratch = scratch_begin(&arena, 1); + String8 time_stamp = coff_string_from_time_stamp(scratch.arena, header.time_stamp); + + rd_printf("Name : %S" , header.name ); + rd_printf("Time Stamp: (%#x) %S" , header.time_stamp, time_stamp ); + rd_printf("User ID : %u" , header.user_id ); + rd_printf("Group ID : %u" , header.group_id); + rd_printf("Mode : %S" , header.mode ); + rd_printf("Data : [%#llx-%#llx)", header.data_range.min, header.data_range.max); + + scratch_end(scratch); +} + +internal void +coff_print_section_table(Arena *arena, + String8List *out, + String8 indent, + String8 string_table, + COFF_Symbol32Array symbol_table, + U64 section_count, + COFF_SectionHeader *section_table) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8 *symlinks = push_array(scratch.arena, String8, section_count); + for (U64 i = 0; i < symbol_table.count; ++i) { + COFF_Symbol32 *symbol = symbol_table.v+i; + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol->section_number, symbol->value, symbol->storage_class); + if (interp == COFF_SymbolValueInterp_Regular && + symbol->aux_symbol_count == 0 && + (symbol->storage_class == COFF_SymStorageClass_External || symbol->storage_class == COFF_SymStorageClass_Static)) { + if (symbol->section_number > 0 && symbol->section_number <= symbol_table.count) { + COFF_SectionHeader *header = section_table+(symbol->section_number-1); + if (header->flags & COFF_SectionFlag_LnkCOMDAT) { + symlinks[symbol->section_number-1] = coff_read_symbol_name(string_table, &symbol->name); + } + } + } + i += symbol->aux_symbol_count; + } + + if (section_count) { + rd_printf("# Section Table"); + rd_indent(); + + rd_printf("%-4s %-8s %-8s %-8s %-8s %-8s %-8s %-8s %-8s %-8s %-5s %-10s %s", + "No.", + "Name", + "VirtSize", + "VirtOff", + "FileSize", + "FileOff", + "RelocOff", + "LinesOff", + "RelocCnt", + "LineCnt", + "Align", + "Flags", + "Symlink"); + + for (U64 i = 0; i < section_count; ++i) { + COFF_SectionHeader *header = section_table+i; + + String8 name = str8_cstring_capped(header->name, header->name+sizeof(header->name)); + String8 full_name = coff_name_from_section_header(string_table, header); + + String8 align; + { + U64 align_size = coff_align_size_from_section_flags(header->flags); + align = push_str8f(scratch.arena, "%u", align_size); + } + + String8 flags; + { + String8List mem_flags = {0}; + if (header->flags & COFF_SectionFlag_MemRead) { + str8_list_pushf(scratch.arena, &mem_flags, "r"); + } + if (header->flags & COFF_SectionFlag_MemWrite) { + str8_list_pushf(scratch.arena, &mem_flags, "w"); + } + if (header->flags & COFF_SectionFlag_MemExecute) { + str8_list_pushf(scratch.arena, &mem_flags, "x"); + } + + String8List cnt_flags = {0}; + if (header->flags & COFF_SectionFlag_CntCode) { + str8_list_pushf(scratch.arena, &cnt_flags, "c"); + } + if (header->flags & COFF_SectionFlag_CntInitializedData) { + str8_list_pushf(scratch.arena, &cnt_flags, "d"); + } + if (header->flags & COFF_SectionFlag_CntUninitializedData) { + str8_list_pushf(scratch.arena, &cnt_flags, "u"); + } + + String8List mem_extra_flags = {0}; + if (header->flags & COFF_SectionFlag_MemShared) { + str8_list_pushf(scratch.arena, &mem_flags, "s"); + } + if (header->flags & COFF_SectionFlag_Mem16Bit) { + str8_list_pushf(scratch.arena, &mem_extra_flags, "h"); + } + if (header->flags & COFF_SectionFlag_MemLocked) { + str8_list_pushf(scratch.arena, &mem_extra_flags, "l"); + } + if (header->flags & COFF_SectionFlag_MemDiscardable) { + str8_list_pushf(scratch.arena, &mem_extra_flags, "d"); + } + if (header->flags & COFF_SectionFlag_MemNotCached) { + str8_list_pushf(scratch.arena, &mem_extra_flags, "c"); + } + if (header->flags & COFF_SectionFlag_MemNotPaged) { + str8_list_pushf(scratch.arena, &mem_extra_flags, "p"); + } + + String8List lnk_flags = {0}; + if (header->flags & COFF_SectionFlag_LnkRemove) { + str8_list_pushf(scratch.arena, &lnk_flags, "r"); + } + if (header->flags & COFF_SectionFlag_LnkCOMDAT) { + str8_list_pushf(scratch.arena, &lnk_flags, "c"); + } + if (header->flags & COFF_SectionFlag_LnkOther) { + str8_list_pushf(scratch.arena, &lnk_flags, "o"); + } + if (header->flags & COFF_SectionFlag_LnkInfo) { + str8_list_pushf(scratch.arena, &lnk_flags, "i"); + } + if (header->flags & COFF_SectionFlag_LnkNRelocOvfl) { + str8_list_pushf(scratch.arena, &lnk_flags, "f"); + } + + String8List other_flags = {0}; + if (header->flags & COFF_SectionFlag_TypeNoPad) { + str8_list_pushf(scratch.arena, &other_flags, "n"); + } + if (header->flags & COFF_SectionFlag_GpRel) { + str8_list_pushf(scratch.arena, &other_flags, "g"); + } + + String8 mem = str8_list_join(scratch.arena, &mem_flags, 0); + String8 cnt = str8_list_join(scratch.arena, &cnt_flags, 0); + String8 lnk = str8_list_join(scratch.arena, &lnk_flags, 0); + String8 ext = str8_list_join(scratch.arena, &mem_extra_flags, 0); + String8 oth = str8_list_join(scratch.arena, &other_flags, 0); + + String8List f = {0}; + str8_list_push(scratch.arena, &f, mem); + str8_list_push(scratch.arena, &f, cnt); + str8_list_push(scratch.arena, &f, ext); + str8_list_push(scratch.arena, &f, lnk); + str8_list_push(scratch.arena, &f, oth); + + flags = str8_list_join(scratch.arena, &f, &(StringJoin){ .sep = str8_lit("-") }); + + if (!flags.size) { + flags = str8_lit("none"); + } + } + + String8List l = {0}; + str8_list_pushf(scratch.arena, &l, "%-4x", i+1 ); + str8_list_pushf(scratch.arena, &l, "%-8S", name ); + str8_list_pushf(scratch.arena, &l, "%08x", header->vsize ); + str8_list_pushf(scratch.arena, &l, "%08x", header->voff ); + str8_list_pushf(scratch.arena, &l, "%08x", header->fsize ); + str8_list_pushf(scratch.arena, &l, "%08x", header->foff ); + str8_list_pushf(scratch.arena, &l, "%08x", header->relocs_foff); + str8_list_pushf(scratch.arena, &l, "%08x", header->lines_foff ); + str8_list_pushf(scratch.arena, &l, "%08x", header->reloc_count); + str8_list_pushf(scratch.arena, &l, "%08x", header->line_count ); + str8_list_pushf(scratch.arena, &l, "%-5S", align ); + str8_list_pushf(scratch.arena, &l, "%-10S", flags ); + if (symlinks[i].size > 0) { + str8_list_pushf(scratch.arena, &l, "%S", symlinks[i]); + } else { + str8_list_pushf(scratch.arena, &l, "[no symlink]"); + } + + String8 line = str8_list_join(scratch.arena, &l, &(StringJoin){ .sep = str8_lit(" "), }); + rd_printf("%S", line); + + if (full_name.size != name.size) { + rd_indent(); + rd_printf("Full Name: %S", full_name); + rd_unindent(); + } + } + + rd_newline(); + rd_printf("Flags:"); + rd_indent(); + rd_printf("r = MemRead w = MemWrite x = MemExecute"); + rd_printf("c = CntCode d = InitializedData u = UninitializedData"); + rd_printf("s = MemShared h = Mem16bit l = MemLocked d = MemDiscardable c = MemNotCached p = MemNotPaged"); + rd_printf("r = LnkRemove c = LnkComdat o = LnkOther i = LnkInfo f = LnkNRelocOvfl"); + rd_printf("g = GpRel n = TypeNoPad"); + rd_unindent(); + + rd_unindent(); + rd_newline(); + } + + scratch_end(scratch); +} + +internal void +coff_disasm_sections(Arena *arena, + String8List *out, + String8 indent, + String8 raw_data, + COFF_MachineType machine, + U64 image_base, + B32 is_obj, + RD_MarkerArray *section_markers, + U64 section_count, + COFF_SectionHeader *sections) +{ + if (section_count) { + for (U64 sect_idx = 0; sect_idx < section_count; ++sect_idx) { + COFF_SectionHeader *sect = sections+sect_idx; + if (sect->flags & COFF_SectionFlag_CntCode) { + U64 sect_off = is_obj ? sect->foff : sect->voff; + U64 sect_size = is_obj ? sect->fsize : sect->vsize; + String8 raw_code = str8_substr(raw_data, rng_1u64(sect->foff, sect->foff+sect_size)); + U64 sect_number = sect_idx+1; + RD_MarkerArray markers = section_markers[sect_number]; + + rd_printf("# Disassembly [Section No. %#llx]", sect_number); + rd_indent(); + rd_print_disasm(arena, out, indent, arch_from_coff_machine(machine), image_base, sect_off, markers.count, markers.v, raw_code); + rd_unindent(); + } + } + } +} + +internal void +coff_raw_data_sections(Arena *arena, + String8List *out, + String8 indent, + String8 raw_data, + B32 is_obj, + RD_MarkerArray *section_markers, + U64 section_count, + COFF_SectionHeader *section_table) +{ + if (section_count) { + for (U64 sect_idx = 0; sect_idx < section_count; ++sect_idx) { + COFF_SectionHeader *sect = section_table+sect_idx; + if (sect->fsize > 0) { + U64 sect_size = is_obj ? sect->fsize : sect->vsize; + String8 raw_sect = str8_substr(raw_data, rng_1u64(sect->foff, sect->foff+sect_size)); + RD_MarkerArray markers = section_markers[sect_idx]; + + rd_printf("# Raw Data [Section No. %#llx]", (sect_idx+1)); + rd_indent(); + rd_print_raw_data(arena, out, indent, 32, markers.count, markers.v, raw_sect); + rd_unindent(); + rd_newline(); + } + } + } +} + +internal void +coff_print_relocs(Arena *arena, + String8List *out, + String8 indent, + String8 raw_data, + String8 string_table, + COFF_MachineType machine, + U64 sect_count, + COFF_SectionHeader *sect_headers, + COFF_Symbol32Array symbols) +{ + Temp scratch = scratch_begin(&arena, 1); + + B32 print_header = 1; + + for (U64 sect_idx = 0; sect_idx < sect_count; ++sect_idx) { + COFF_SectionHeader *sect_header = sect_headers+sect_idx; + COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(raw_data, sect_header); + + if (reloc_info.count) { + if (print_header) { + print_header = 0; + rd_printf("# Relocations"); + rd_indent(); + } + + rd_printf("## Section %llx", sect_idx); + rd_indent(); + + rd_printf("%-4s %-8s %-16s %-16s %-8s %-7s", "No.", "Offset", "Type", "ApplyTo", "SymIdx", "SymName"); + + for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; ++reloc_idx) { + COFF_Reloc *reloc = (COFF_Reloc*)(raw_data.str + reloc_info.array_off) + reloc_idx; + String8 type = coff_string_from_reloc(machine, reloc->type); + U64 apply_size = coff_apply_size_from_reloc(machine, reloc->type); + + U64 apply_foff = sect_header->foff + reloc->apply_off; + if (apply_foff + apply_size > raw_data.size) { + rd_errorf("out of bounds apply file offset %#llx in relocation %#llx", apply_foff, reloc_idx); + break; + } + + U64 raw_apply; + AssertAlways(apply_size <= sizeof(raw_apply)); + MemoryCopy(&raw_apply, raw_data.str + apply_foff, apply_size); + S64 apply = extend_sign64(raw_apply, apply_size); + + if (reloc->isymbol > symbols.count) { + rd_errorf("out of bounds symbol index %u in relocation %#llx", reloc->isymbol, reloc_idx); + break; + } + + COFF_Symbol32 *symbol = symbols.v+reloc->isymbol; + String8 symbol_name = coff_read_symbol_name(string_table, &symbol->name); + + String8List line = {0}; + str8_list_pushf(scratch.arena, &line, "%-4x", reloc_idx ); + str8_list_pushf(scratch.arena, &line, "%08x", reloc->apply_off); + str8_list_pushf(scratch.arena, &line, "%-16S", type ); + str8_list_pushf(scratch.arena, &line, "%016x", apply ); + str8_list_pushf(scratch.arena, &line, "%S", symbol_name ); + + String8 l = str8_list_join(scratch.arena, &line, &(StringJoin){.sep=str8_lit(" ")}); + rd_printf("%S", l); + } + + rd_unindent(); + } + } + + if (!print_header) { + rd_unindent(); + } + rd_newline(); + + scratch_end(scratch); +} + +internal void +coff_print_symbol_table(Arena *arena, + String8List *out, + String8 indent, + String8 raw_data, + B32 is_big_obj, + String8 string_table, + COFF_Symbol32Array symbols) +{ + Temp scratch = scratch_begin(&arena, 1); + + if (symbols.count) { + rd_printf("# Symbol Table"); + rd_indent(); + + rd_printf("%-4s %-8s %-10s %-4s %-4s %-4s %-16s %-20s", + "No.", "Value", "SectNum", "Aux", "Msb", "Lsb", "Storage", "Name"); + + for (U64 i = 0; i < symbols.count; ++i) { + COFF_Symbol32 *symbol = &symbols.v[i]; + String8 name = coff_read_symbol_name(string_table, &symbol->name); + String8 msb = coff_string_from_sym_dtype(symbol->type.u.msb); + String8 lsb = coff_string_from_sym_type(symbol->type.u.lsb); + String8 storage_class = coff_string_from_sym_storage_class(symbol->storage_class); + String8 section_number; + switch (symbol->section_number) { + case COFF_Symbol_UndefinedSection: section_number = str8_lit("Undef"); break; + case COFF_Symbol_AbsSection32: section_number = str8_lit("Abs"); break; + case COFF_Symbol_DebugSection32: section_number = str8_lit("Debug"); break; + default: section_number = push_str8f(scratch.arena, "%010x", symbol->section_number); break; + } + + String8List line = {0}; + str8_list_pushf(scratch.arena, &line, "%-4x", i ); + str8_list_pushf(scratch.arena, &line, "%08x", symbol->value ); + str8_list_pushf(scratch.arena, &line, "%-10S", section_number ); + str8_list_pushf(scratch.arena, &line, "%-4u", symbol->aux_symbol_count); + str8_list_pushf(scratch.arena, &line, "%-4S", msb ); + str8_list_pushf(scratch.arena, &line, "%-4S", lsb ); + str8_list_pushf(scratch.arena, &line, "%-16S", storage_class ); + str8_list_pushf(scratch.arena, &line, "%S", name ); + + String8 l = str8_list_join(scratch.arena, &line, &(StringJoin){.sep = str8_lit(" ")}); + rd_printf("%S", l); + + rd_indent(); + for (U64 k=i+1, c = i+symbol->aux_symbol_count; k <= c; ++k) { + void *raw_aux = &symbols.v[k]; + switch (symbol->storage_class) { + case COFF_SymStorageClass_External: { + COFF_SymbolFuncDef *func_def = (COFF_SymbolFuncDef*)&symbols.v[k]; + rd_printf("Tag Index %#x, Total Size %#x, Line Numbers %#x, Next Function %#x", + func_def->tag_index, func_def->total_size, func_def->ptr_to_ln, func_def->ptr_to_next_func); + } break; + case COFF_SymStorageClass_Function: { + COFF_SymbolFunc *func = raw_aux; + rd_printf("Ordinal Line Number %#x, Next Function %#x", func->ln, func->ptr_to_next_func); + } break; + case COFF_SymStorageClass_WeakExternal: { + COFF_SymbolWeakExt *weak = raw_aux; + String8 type = coff_string_from_weak_ext_type(weak->characteristics); + rd_printf("Tag Index %#x, Characteristics %S", weak->tag_index, type); + } break; + case COFF_SymStorageClass_File: { + COFF_SymbolFile *file = raw_aux; + String8 name = str8_cstring_capped(file->name, file->name+sizeof(file->name)); + rd_printf("Name %S", name); + } break; + case COFF_SymStorageClass_Static: { + COFF_SymbolSecDef *sd = raw_aux; + String8 selection = coff_string_from_comdat_select_type(sd->selection); + U32 number = sd->number_lo; + if (is_big_obj) { + number |= (U32)sd->number_hi << 16; + } + if (number) { + rd_printf("Length %x, Reloc Count %u, Line Count %u, Checksum %x, Section %x, Selection %S", + sd->length, sd->number_of_relocations, sd->number_of_ln, sd->check_sum, number, selection); + } else { + rd_printf("Length %x, Reloc Count %u, Line Count %u, Checksum %x", + sd->length, sd->number_of_relocations, sd->number_of_ln, sd->check_sum); + } + } break; + default: { + rd_printf("???"); + } break; + } + } + + i += symbol->aux_symbol_count; + rd_unindent(); + } + + rd_unindent(); + rd_newline(); + } + + scratch_end(scratch); +} + +internal void +coff_print_big_obj_header(Arena *arena, String8List *out, String8 indent, COFF_BigObjHeader *header) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8 time_stamp = coff_string_from_time_stamp(scratch.arena, header->time_stamp); + String8 machine = coff_string_from_machine_type(header->machine); + + rd_printf("# Big Obj"); + rd_indent(); + rd_printf("Time Stamp : %#x (%S)", header->time_stamp, time_stamp); + rd_printf("Machine : %#x (%S)", header->machine, machine ); + rd_printf("Section Count: %u", header->section_count ); + rd_printf("Symbol Table : %#x", header->symbol_table_foff); + rd_printf("Symbol Count : %u", header->symbol_count ); + rd_unindent(); + + scratch_end(scratch); +} + +internal void +coff_print_file_header(Arena *arena, String8List *out, String8 indent, COFF_FileHeader *header) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8 time_stamp = coff_string_from_time_stamp(scratch.arena, header->time_stamp); + String8 machine = coff_string_from_machine_type(header->machine); + String8 flags = coff_string_from_flags(scratch.arena, header->flags); + + rd_printf("# COFF File Header"); + rd_indent(); + rd_printf("Time Stamp : %#x (%S)", header->time_stamp, time_stamp ); + rd_printf("Machine : %#x %S", header->machine, machine ); + rd_printf("Section Count : %u", header->section_count ); + rd_printf("Symbol Table : %#x", header->symbol_table_foff ); + rd_printf("Symbol Count : %u", header->symbol_count ); + rd_printf("Optional Header Size: %#x (%m)", header->optional_header_size, header->optional_header_size); + rd_printf("Flags : %#x (%S)", header->flags, flags ); + rd_unindent(); + + scratch_end(scratch); +} + +internal void +coff_print_import(Arena *arena, String8List *out, String8 indent, COFF_ParsedArchiveImportHeader *header) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8 machine = coff_string_from_machine_type(header->machine); + String8 time_stamp = coff_string_from_time_stamp(scratch.arena, header->time_stamp); + + rd_printf("# Import"); + rd_indent(); + rd_printf("Version : %u", header->version ); + rd_printf("Machine : %S", machine ); + rd_printf("Time Stamp: %#x (%S)", header->time_stamp, time_stamp ); + rd_printf("Data Size : %#x (%m)", header->data_size, header->data_size); + rd_printf("Hint : %u", header->hint_or_ordinal); + rd_printf("Type : %u", header->type ); + rd_printf("Import By : %u", header->import_by ); + rd_printf("Function : %S", header->func_name ); + rd_printf("DLL : %S", header->dll_name ); + rd_unindent(); + + scratch_end(scratch); +} + +internal void +coff_print_big_obj(Arena *arena, String8List *out, String8 indent, String8 raw_data, RD_Option opts) +{ + Temp scratch = scratch_begin(&arena, 1); + + COFF_FileHeaderInfo header_info = coff_file_header_info_from_data(raw_data); + + String8 raw_header = str8_substr(raw_data, header_info.header_range); + String8 raw_section_table = str8_substr(raw_data, header_info.section_table_range); + String8 raw_string_table = str8_substr(raw_data, header_info.string_table_range); + + COFF_BigObjHeader *big_obj = (COFF_BigObjHeader *)raw_header.str; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)raw_section_table.str; + COFF_Symbol32Array symbol_table = coff_symbol_array_from_data_32(scratch.arena, raw_data, header_info.symbol_table_range.min, big_obj->symbol_count); + + if (opts & RD_Option_Headers) { + coff_print_big_obj_header(arena, out, indent, big_obj); + rd_newline(); + } + + if (opts & RD_Option_Sections) { + Rng1U64 sect_headers_range = rng_1u64(sizeof(*big_obj), sizeof(*big_obj) + sizeof(COFF_SectionHeader)*big_obj->section_count); + Rng1U64 symbols_range = rng_1u64(big_obj->symbol_table_foff, big_obj->symbol_table_foff + sizeof(COFF_Symbol32)*big_obj->symbol_count); + + if (sect_headers_range.max > raw_data.size) { + rd_errorf("not enough bytes to read big obj section headers"); + goto exit; + } + if (big_obj->symbol_count) { + if (symbols_range.max > raw_data.size) { + rd_errorf("not enough bytes to read big obj symbol table"); + goto exit; + } + if (contains_1u64(symbols_range, sect_headers_range.min) || + contains_1u64(symbols_range, sect_headers_range.max)) { + rd_errorf("section headers and symbol table ranges overlap"); + goto exit; + } + } + + coff_print_section_table(arena, out, indent, raw_string_table, symbol_table, big_obj->section_count, section_table); + rd_newline(); + } + + if (opts & RD_Option_Relocs) { + coff_print_relocs(arena, out, indent, raw_data, raw_string_table, big_obj->machine, big_obj->section_count, section_table, symbol_table); + rd_newline(); + } + + if (opts & RD_Option_Symbols) { + coff_print_symbol_table(arena, out, indent, raw_data, 1, raw_string_table, symbol_table); + rd_newline(); + } + + exit:; + scratch_end(scratch); +} + +internal void +coff_print_obj(Arena *arena, String8List *out, String8 indent, String8 raw_data, RD_Option opts) +{ + Temp scratch = scratch_begin(&arena, 1); + + COFF_FileHeaderInfo header_info = coff_file_header_info_from_data(raw_data); + + String8 raw_header = str8_substr(raw_data, header_info.header_range); + String8 raw_section_table = str8_substr(raw_data, header_info.section_table_range); + String8 raw_string_table = str8_substr(raw_data, header_info.string_table_range); + + COFF_FileHeader *header = (COFF_FileHeader *)raw_header.str; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)raw_section_table.str; + COFF_Symbol32Array symbol_table = coff_symbol_array_from_data_16(scratch.arena, raw_data, header_info.symbol_table_range.min, header->symbol_count); + Arch arch = arch_from_coff_machine(header->machine); + + if (opts & RD_Option_Headers) { + coff_print_file_header(arena, out, indent, header); + rd_newline(); + } + + if (opts & RD_Option_Sections) { + Rng1U64 sect_headers_range = rng_1u64(sizeof(*header), sizeof(*header) + sizeof(COFF_SectionHeader)*header->section_count); + Rng1U64 symbols_range = rng_1u64(header->symbol_table_foff, header->symbol_table_foff + sizeof(COFF_Symbol16)*header->symbol_count); + + if (sect_headers_range.max > raw_data.size) { + rd_errorf("not enough bytes to read obj section headers"); + goto exit; + } + if (header->symbol_count) { + if (symbols_range.max > raw_data.size) { + rd_errorf("not enough bytes to read obj symbol table"); + goto exit; + } + if (contains_1u64(symbols_range, sect_headers_range.min) || + contains_1u64(symbols_range, sect_headers_range.max)) { + rd_errorf("section headers and symbol table ranges overlap"); + goto exit; + } + } + + coff_print_section_table(arena, out, indent, raw_string_table, symbol_table, header->section_count, section_table); + rd_newline(); + } + + if (opts & RD_Option_Relocs) { + coff_print_relocs(arena, out, indent, raw_data, raw_string_table, header->machine, header->section_count, section_table, symbol_table); + rd_newline(); + } + + if (opts & RD_Option_Symbols) { + coff_print_symbol_table(arena, out, indent, raw_data, 0, raw_string_table, symbol_table); + rd_newline(); + } + + RD_MarkerArray *section_markers = 0; + if (opts & (RD_Option_Disasm|RD_Option_Rawdata)) { + section_markers = rd_section_markers_from_coff_symbol_table(scratch.arena, raw_string_table, header->section_count, symbol_table); + } + + if (opts & RD_Option_Rawdata) { + coff_raw_data_sections(arena, out, indent, raw_data, 1, section_markers, header->section_count, section_table); + } + + if (opts & RD_Option_Disasm) { + coff_disasm_sections(arena, out, indent, raw_data, header->machine, 0, 1, section_markers, header->section_count, section_table); + rd_newline(); + } + + if (opts & RD_Option_Codeview) { + cv_format_debug_sections(arena, out, indent, raw_data, raw_string_table, header->section_count, section_table); + } + + if (opts & RD_Option_Dwarf) { + DW_Input dwarf_input = dw_input_from_coff_section_table(scratch.arena, raw_data, raw_string_table, header->section_count, section_table); + dw_format(arena, out, indent, opts, &dwarf_input, arch, ExecutableImageKind_CoffPe); + } + + exit:; + scratch_end(scratch); +} + +internal void +coff_print_archive(Arena *arena, String8List *out, String8 indent, String8 raw_archive, RD_Option opts) +{ + Temp scratch = scratch_begin(&arena, 1); + + COFF_ArchiveParse archive_parse = coff_archive_parse_from_data(raw_archive); + + if (archive_parse.error.size) { + rd_errorf("%S", archive_parse.error); + return; + } + + COFF_ArchiveFirstMember first_member = archive_parse.first_member; + { + rd_printf("# First Header"); + rd_indent(); + + rd_printf("Symbol Count : %u", first_member.symbol_count); + rd_printf("String Table Size: %#llx (%M)", first_member.string_table.size, first_member.string_table.size); + + rd_printf("Members:"); + rd_indent(); + + String8List string_table = str8_split_by_string_chars(scratch.arena, first_member.string_table, str8_lit("\0"), 0); + + if (string_table.node_count == first_member.member_offset_count) { + String8Node *string_n = string_table.first; + + for (U64 i = 0; i < string_table.node_count; ++i, string_n = string_n->next) { + U32 offset = from_be_u32(first_member.member_offsets[i]); + rd_printf("[%4u] %#08x %S", i, offset, string_n->string); + } + } else { + rd_errorf("Member offset count (%llu) doesn't match string table count (%llu)", first_member.member_offset_count); + } + + rd_unindent(); + rd_unindent(); + rd_newline(); + } + + if (archive_parse.has_second_header) { + COFF_ArchiveSecondMember second_member = archive_parse.second_member; + + rd_printf("# Second Header"); + rd_indent(); + + rd_printf("Member Count : %u", second_member.member_count); + rd_printf("Symbol Count : %u", second_member.symbol_count); + rd_printf("String Table Size: %#llx (%M)", second_member.string_table.size, second_member.string_table.size); + + String8List string_table = str8_split_by_string_chars(scratch.arena, second_member.string_table, str8_lit("\0"), 0); + + rd_printf("Members:"); + rd_indent(); + if (second_member.symbol_index_count == second_member.symbol_count) { + String8Node *string_n = string_table.first; + for (U64 i = 0; i < second_member.symbol_count; ++i, string_n = string_n->next) { + U16 symbol_number = second_member.symbol_indices[i]; + if (symbol_number > 0 && symbol_number <= second_member.member_offset_count) { + U16 symbol_idx = symbol_number - 1; + U32 member_offset = second_member.member_offsets[i]; + rd_printf("[%4u] %#08x %S", i, member_offset, string_n->string); + } else { + rd_errorf("[%4u] Out of bounds symbol number %u", i, symbol_number); + break; + } + } + } else { + rd_errorf("Symbol index count %u doesn't match symbol count %u", + second_member.symbol_index_count, second_member.symbol_count); + } + rd_unindent(); + + rd_unindent(); + rd_newline(); + } + + if (archive_parse.has_long_names && opts & RD_Option_LongNames) { + rd_printf("# Long Names"); + rd_indent(); + + String8List long_names = str8_split_by_string_chars(scratch.arena, archive_parse.long_names, str8_lit("\0"), 0); + U64 name_idx = 0; + for (String8Node *name_n = long_names.first; name_n != 0; name_n = name_n->next, ++name_idx) { + U64 offset = (U64)(name_n->string.str - archive_parse.long_names.str); + rd_printf("[%-4u] %#08x %S", name_idx, offset, name_n->string); + } + + rd_unindent(); + rd_newline(); + } + + U64 member_offset_count = 0; + U32 *member_offsets = 0; + if (archive_parse.has_second_header) { + member_offset_count = archive_parse.second_member.member_offset_count; + member_offsets = archive_parse.second_member.member_offsets; + } else { + HashTable *ht = hash_table_init(scratch.arena, 0x1000); + for (U64 i = 0; i < archive_parse.first_member.member_offset_count; ++i) { + U32 member_offset = from_be_u32(archive_parse.first_member.member_offsets[i]); + if (!hash_table_search_u32(ht, member_offset)) { + hash_table_push_u32_raw(scratch.arena, ht, member_offset, 0); + } + } + member_offset_count = ht->count; + member_offsets = keys_from_hash_table_u32(scratch.arena, ht); + radsort(member_offsets, member_offset_count, u32_is_before); + } + + rd_printf("# Members"); + rd_indent(); + + for (U64 i = 0; i < member_offset_count; ++i) { + U64 next_member_offset = i+1 < member_offset_count ? member_offsets[i+1] : raw_archive.size; + U64 member_offset = member_offsets[i]; + String8 raw_member = str8_substr(raw_archive, rng_1u64(member_offset, next_member_offset)); + COFF_ArchiveMember member = coff_archive_member_from_data(raw_member); + COFF_DataType member_type = coff_data_type_from_data(member.data); + + rd_printf("Member @ %#llx", member_offset); + rd_indent(); + + if (opts & RD_Option_Headers) { + coff_print_archive_member_header(arena, out, indent, member.header, archive_parse.long_names); + rd_newline(); + } + + switch (member_type) { + case COFF_DataType_Obj: { + coff_print_obj(arena, out, indent, member.data, opts); + } break; + case COFF_DataType_BigObj: { + coff_print_big_obj(arena, out, indent, member.data, opts); + } break; + case COFF_DataType_Import: { + if (opts & RD_Option_Headers) { + COFF_ParsedArchiveImportHeader header = {0}; + U64 parse_size = coff_parse_import(member.data, 0, &header); + if (parse_size) { + coff_print_import(arena, out, indent, &header); + } else { + rd_errorf("not enough bytes to parse import header"); + } + } + } break; + case COFF_DataType_Null: { + rd_errorf("unknown member format", member_offset); + } break; + } + + rd_unindent(); + rd_newline(); + } + + rd_unindent(); + + scratch_end(scratch); +} +#endif diff --git a/src/coff/coff_dump.h b/src/coff/coff_dump.h new file mode 100644 index 00000000..89afcecb --- /dev/null +++ b/src/coff/coff_dump.h @@ -0,0 +1,22 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef COFF_DUMP_H +#define COFF_DUMP_H + +#if 0 +internal void coff_print_archive_member_header(Arena *arena, String8List *out, String8 indent, COFF_ParsedArchiveMemberHeader header, String8 long_names); +internal void coff_print_section_table (Arena *arena, String8List *out, String8 indent, String8 string_table, COFF_Symbol32Array symbols, U64 sect_count, COFF_SectionHeader *sect_headers); +internal void coff_disasm_sections (Arena *arena, String8List *out, String8 indent, String8 raw_data, COFF_MachineType machine, U64 image_base, B32 is_obj, RD_MarkerArray *section_markers, U64 section_count, COFF_SectionHeader *sections); +internal void coff_raw_data_sections (Arena *arena, String8List *out, String8 indent, String8 raw_data, B32 is_obj, RD_MarkerArray *section_markers, U64 section_count, COFF_SectionHeader *sections); +internal void coff_print_relocs (Arena *arena, String8List *out, String8 indent, String8 raw_data, String8 string_table, COFF_MachineType machine, U64 sect_count, COFF_SectionHeader *sect_headers, COFF_Symbol32Array symbols); +internal void coff_print_symbol_table (Arena *arena, String8List *out, String8 indent, String8 raw_data, B32 is_big_obj, String8 string_table, COFF_Symbol32Array symbols); +internal void coff_print_big_obj_header (Arena *arena, String8List *out, String8 indent, COFF_BigObjHeader *header); +internal void coff_print_file_header (Arena *arena, String8List *out, String8 indent, COFF_FileHeader *header); +internal void coff_print_import (Arena *arena, String8List *out, String8 indent, COFF_ParsedArchiveImportHeader *header); +internal void coff_print_big_obj (Arena *arena, String8List *out, String8 indent, String8 raw_data, RD_Option opts); +internal void coff_print_obj (Arena *arena, String8List *out, String8 indent, String8 raw_data, RD_Option opts); +internal void coff_print_archive (Arena *arena, String8List *out, String8 indent, String8 raw_archive, RD_Option opts); +#endif + +#endif // COFF_DUMP_H diff --git a/src/coff/coff_inc.c b/src/coff/coff_inc.c new file mode 100644 index 00000000..d31310d4 --- /dev/null +++ b/src/coff/coff_inc.c @@ -0,0 +1,6 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#include "coff/coff.c" +#include "coff/coff_parse.c" +#include "coff/coff_dump.c" diff --git a/src/coff/coff_inc.h b/src/coff/coff_inc.h new file mode 100644 index 00000000..7688ac63 --- /dev/null +++ b/src/coff/coff_inc.h @@ -0,0 +1,11 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef COFF_INC_H +#define COFF_INC_H + +#include "coff/coff.h" +#include "coff/coff_parse.h" +#include "coff/coff_dump.h" + +#endif // COFF_INC_H diff --git a/src/radbin/radbin_main.c b/src/radbin/radbin_main.c index a4ffadb7..f0f6f8b4 100644 --- a/src/radbin/radbin_main.c +++ b/src/radbin/radbin_main.c @@ -17,8 +17,7 @@ #include "async/async.h" #include "rdi/rdi_local.h" #include "rdi_make/rdi_make_local.h" -#include "coff/coff.h" -#include "coff/coff_parse.h" +#include "coff/coff_inc.h" #include "pe/pe.h" #include "elf/elf.h" #include "elf/elf_parse.h" @@ -44,8 +43,7 @@ #include "async/async.c" #include "rdi/rdi_local.c" #include "rdi_make/rdi_make_local.c" -#include "coff/coff.c" -#include "coff/coff_parse.c" +#include "coff/coff_inc.c" #include "pe/pe.c" #include "elf/elf.c" #include "elf/elf_parse.c" diff --git a/src/raddump/raddump.c b/src/raddump/raddump.c index defb847c..17785cb9 100644 --- a/src/raddump/raddump.c +++ b/src/raddump/raddump.c @@ -2541,823 +2541,6 @@ cv_format_debug_sections(Arena *arena, String8List *out, String8 indent, String8 } } -// COFF - -internal void -coff_print_archive_member_header(Arena *arena, String8List *out, String8 indent, COFF_ParsedArchiveMemberHeader header, String8 long_names) -{ - Temp scratch = scratch_begin(&arena, 1); - String8 time_stamp = coff_string_from_time_stamp(scratch.arena, header.time_stamp); - - rd_printf("Name : %S" , header.name ); - rd_printf("Time Stamp: (%#x) %S" , header.time_stamp, time_stamp ); - rd_printf("User ID : %u" , header.user_id ); - rd_printf("Group ID : %u" , header.group_id); - rd_printf("Mode : %S" , header.mode ); - rd_printf("Data : [%#llx-%#llx)", header.data_range.min, header.data_range.max); - - scratch_end(scratch); -} - -internal void -coff_print_section_table(Arena *arena, - String8List *out, - String8 indent, - String8 string_table, - COFF_Symbol32Array symbol_table, - U64 section_count, - COFF_SectionHeader *section_table) -{ - Temp scratch = scratch_begin(&arena, 1); - - String8 *symlinks = push_array(scratch.arena, String8, section_count); - for (U64 i = 0; i < symbol_table.count; ++i) { - COFF_Symbol32 *symbol = symbol_table.v+i; - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol->section_number, symbol->value, symbol->storage_class); - if (interp == COFF_SymbolValueInterp_Regular && - symbol->aux_symbol_count == 0 && - (symbol->storage_class == COFF_SymStorageClass_External || symbol->storage_class == COFF_SymStorageClass_Static)) { - if (symbol->section_number > 0 && symbol->section_number <= symbol_table.count) { - COFF_SectionHeader *header = section_table+(symbol->section_number-1); - if (header->flags & COFF_SectionFlag_LnkCOMDAT) { - symlinks[symbol->section_number-1] = coff_read_symbol_name(string_table, &symbol->name); - } - } - } - i += symbol->aux_symbol_count; - } - - if (section_count) { - rd_printf("# Section Table"); - rd_indent(); - - rd_printf("%-4s %-8s %-8s %-8s %-8s %-8s %-8s %-8s %-8s %-8s %-5s %-10s %s", - "No.", - "Name", - "VirtSize", - "VirtOff", - "FileSize", - "FileOff", - "RelocOff", - "LinesOff", - "RelocCnt", - "LineCnt", - "Align", - "Flags", - "Symlink"); - - for (U64 i = 0; i < section_count; ++i) { - COFF_SectionHeader *header = section_table+i; - - String8 name = str8_cstring_capped(header->name, header->name+sizeof(header->name)); - String8 full_name = coff_name_from_section_header(string_table, header); - - String8 align; - { - U64 align_size = coff_align_size_from_section_flags(header->flags); - align = push_str8f(scratch.arena, "%u", align_size); - } - - String8 flags; - { - String8List mem_flags = {0}; - if (header->flags & COFF_SectionFlag_MemRead) { - str8_list_pushf(scratch.arena, &mem_flags, "r"); - } - if (header->flags & COFF_SectionFlag_MemWrite) { - str8_list_pushf(scratch.arena, &mem_flags, "w"); - } - if (header->flags & COFF_SectionFlag_MemExecute) { - str8_list_pushf(scratch.arena, &mem_flags, "x"); - } - - String8List cnt_flags = {0}; - if (header->flags & COFF_SectionFlag_CntCode) { - str8_list_pushf(scratch.arena, &cnt_flags, "c"); - } - if (header->flags & COFF_SectionFlag_CntInitializedData) { - str8_list_pushf(scratch.arena, &cnt_flags, "d"); - } - if (header->flags & COFF_SectionFlag_CntUninitializedData) { - str8_list_pushf(scratch.arena, &cnt_flags, "u"); - } - - String8List mem_extra_flags = {0}; - if (header->flags & COFF_SectionFlag_MemShared) { - str8_list_pushf(scratch.arena, &mem_flags, "s"); - } - if (header->flags & COFF_SectionFlag_Mem16Bit) { - str8_list_pushf(scratch.arena, &mem_extra_flags, "h"); - } - if (header->flags & COFF_SectionFlag_MemLocked) { - str8_list_pushf(scratch.arena, &mem_extra_flags, "l"); - } - if (header->flags & COFF_SectionFlag_MemDiscardable) { - str8_list_pushf(scratch.arena, &mem_extra_flags, "d"); - } - if (header->flags & COFF_SectionFlag_MemNotCached) { - str8_list_pushf(scratch.arena, &mem_extra_flags, "c"); - } - if (header->flags & COFF_SectionFlag_MemNotPaged) { - str8_list_pushf(scratch.arena, &mem_extra_flags, "p"); - } - - String8List lnk_flags = {0}; - if (header->flags & COFF_SectionFlag_LnkRemove) { - str8_list_pushf(scratch.arena, &lnk_flags, "r"); - } - if (header->flags & COFF_SectionFlag_LnkCOMDAT) { - str8_list_pushf(scratch.arena, &lnk_flags, "c"); - } - if (header->flags & COFF_SectionFlag_LnkOther) { - str8_list_pushf(scratch.arena, &lnk_flags, "o"); - } - if (header->flags & COFF_SectionFlag_LnkInfo) { - str8_list_pushf(scratch.arena, &lnk_flags, "i"); - } - if (header->flags & COFF_SectionFlag_LnkNRelocOvfl) { - str8_list_pushf(scratch.arena, &lnk_flags, "f"); - } - - String8List other_flags = {0}; - if (header->flags & COFF_SectionFlag_TypeNoPad) { - str8_list_pushf(scratch.arena, &other_flags, "n"); - } - if (header->flags & COFF_SectionFlag_GpRel) { - str8_list_pushf(scratch.arena, &other_flags, "g"); - } - - String8 mem = str8_list_join(scratch.arena, &mem_flags, 0); - String8 cnt = str8_list_join(scratch.arena, &cnt_flags, 0); - String8 lnk = str8_list_join(scratch.arena, &lnk_flags, 0); - String8 ext = str8_list_join(scratch.arena, &mem_extra_flags, 0); - String8 oth = str8_list_join(scratch.arena, &other_flags, 0); - - String8List f = {0}; - str8_list_push(scratch.arena, &f, mem); - str8_list_push(scratch.arena, &f, cnt); - str8_list_push(scratch.arena, &f, ext); - str8_list_push(scratch.arena, &f, lnk); - str8_list_push(scratch.arena, &f, oth); - - flags = str8_list_join(scratch.arena, &f, &(StringJoin){ .sep = str8_lit("-") }); - - if (!flags.size) { - flags = str8_lit("none"); - } - } - - String8List l = {0}; - str8_list_pushf(scratch.arena, &l, "%-4x", i+1 ); - str8_list_pushf(scratch.arena, &l, "%-8S", name ); - str8_list_pushf(scratch.arena, &l, "%08x", header->vsize ); - str8_list_pushf(scratch.arena, &l, "%08x", header->voff ); - str8_list_pushf(scratch.arena, &l, "%08x", header->fsize ); - str8_list_pushf(scratch.arena, &l, "%08x", header->foff ); - str8_list_pushf(scratch.arena, &l, "%08x", header->relocs_foff); - str8_list_pushf(scratch.arena, &l, "%08x", header->lines_foff ); - str8_list_pushf(scratch.arena, &l, "%08x", header->reloc_count); - str8_list_pushf(scratch.arena, &l, "%08x", header->line_count ); - str8_list_pushf(scratch.arena, &l, "%-5S", align ); - str8_list_pushf(scratch.arena, &l, "%-10S", flags ); - if (symlinks[i].size > 0) { - str8_list_pushf(scratch.arena, &l, "%S", symlinks[i]); - } else { - str8_list_pushf(scratch.arena, &l, "[no symlink]"); - } - - String8 line = str8_list_join(scratch.arena, &l, &(StringJoin){ .sep = str8_lit(" "), }); - rd_printf("%S", line); - - if (full_name.size != name.size) { - rd_indent(); - rd_printf("Full Name: %S", full_name); - rd_unindent(); - } - } - - rd_newline(); - rd_printf("Flags:"); - rd_indent(); - rd_printf("r = MemRead w = MemWrite x = MemExecute"); - rd_printf("c = CntCode d = InitializedData u = UninitializedData"); - rd_printf("s = MemShared h = Mem16bit l = MemLocked d = MemDiscardable c = MemNotCached p = MemNotPaged"); - rd_printf("r = LnkRemove c = LnkComdat o = LnkOther i = LnkInfo f = LnkNRelocOvfl"); - rd_printf("g = GpRel n = TypeNoPad"); - rd_unindent(); - - rd_unindent(); - rd_newline(); - } - - scratch_end(scratch); -} - -internal void -coff_disasm_sections(Arena *arena, - String8List *out, - String8 indent, - String8 raw_data, - COFF_MachineType machine, - U64 image_base, - B32 is_obj, - RD_MarkerArray *section_markers, - U64 section_count, - COFF_SectionHeader *sections) -{ - if (section_count) { - for (U64 sect_idx = 0; sect_idx < section_count; ++sect_idx) { - COFF_SectionHeader *sect = sections+sect_idx; - if (sect->flags & COFF_SectionFlag_CntCode) { - U64 sect_off = is_obj ? sect->foff : sect->voff; - U64 sect_size = is_obj ? sect->fsize : sect->vsize; - String8 raw_code = str8_substr(raw_data, rng_1u64(sect->foff, sect->foff+sect_size)); - U64 sect_number = sect_idx+1; - RD_MarkerArray markers = section_markers[sect_number]; - - rd_printf("# Disassembly [Section No. %#llx]", sect_number); - rd_indent(); - rd_print_disasm(arena, out, indent, arch_from_coff_machine(machine), image_base, sect_off, markers.count, markers.v, raw_code); - rd_unindent(); - } - } - } -} - -internal void -coff_raw_data_sections(Arena *arena, - String8List *out, - String8 indent, - String8 raw_data, - B32 is_obj, - RD_MarkerArray *section_markers, - U64 section_count, - COFF_SectionHeader *section_table) -{ - if (section_count) { - for (U64 sect_idx = 0; sect_idx < section_count; ++sect_idx) { - COFF_SectionHeader *sect = section_table+sect_idx; - if (sect->fsize > 0) { - U64 sect_size = is_obj ? sect->fsize : sect->vsize; - String8 raw_sect = str8_substr(raw_data, rng_1u64(sect->foff, sect->foff+sect_size)); - RD_MarkerArray markers = section_markers[sect_idx]; - - rd_printf("# Raw Data [Section No. %#llx]", (sect_idx+1)); - rd_indent(); - rd_print_raw_data(arena, out, indent, 32, markers.count, markers.v, raw_sect); - rd_unindent(); - rd_newline(); - } - } - } -} - -internal void -coff_print_relocs(Arena *arena, - String8List *out, - String8 indent, - String8 raw_data, - String8 string_table, - COFF_MachineType machine, - U64 sect_count, - COFF_SectionHeader *sect_headers, - COFF_Symbol32Array symbols) -{ - Temp scratch = scratch_begin(&arena, 1); - - B32 print_header = 1; - - for (U64 sect_idx = 0; sect_idx < sect_count; ++sect_idx) { - COFF_SectionHeader *sect_header = sect_headers+sect_idx; - COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(raw_data, sect_header); - - if (reloc_info.count) { - if (print_header) { - print_header = 0; - rd_printf("# Relocations"); - rd_indent(); - } - - rd_printf("## Section %llx", sect_idx); - rd_indent(); - - rd_printf("%-4s %-8s %-16s %-16s %-8s %-7s", "No.", "Offset", "Type", "ApplyTo", "SymIdx", "SymName"); - - for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; ++reloc_idx) { - COFF_Reloc *reloc = (COFF_Reloc*)(raw_data.str + reloc_info.array_off) + reloc_idx; - String8 type = coff_string_from_reloc(machine, reloc->type); - U64 apply_size = coff_apply_size_from_reloc(machine, reloc->type); - - U64 apply_foff = sect_header->foff + reloc->apply_off; - if (apply_foff + apply_size > raw_data.size) { - rd_errorf("out of bounds apply file offset %#llx in relocation %#llx", apply_foff, reloc_idx); - break; - } - - U64 raw_apply; - AssertAlways(apply_size <= sizeof(raw_apply)); - MemoryCopy(&raw_apply, raw_data.str + apply_foff, apply_size); - S64 apply = extend_sign64(raw_apply, apply_size); - - if (reloc->isymbol > symbols.count) { - rd_errorf("out of bounds symbol index %u in relocation %#llx", reloc->isymbol, reloc_idx); - break; - } - - COFF_Symbol32 *symbol = symbols.v+reloc->isymbol; - String8 symbol_name = coff_read_symbol_name(string_table, &symbol->name); - - String8List line = {0}; - str8_list_pushf(scratch.arena, &line, "%-4x", reloc_idx ); - str8_list_pushf(scratch.arena, &line, "%08x", reloc->apply_off); - str8_list_pushf(scratch.arena, &line, "%-16S", type ); - str8_list_pushf(scratch.arena, &line, "%016x", apply ); - str8_list_pushf(scratch.arena, &line, "%S", symbol_name ); - - String8 l = str8_list_join(scratch.arena, &line, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", l); - } - - rd_unindent(); - } - } - - if (!print_header) { - rd_unindent(); - } - rd_newline(); - - scratch_end(scratch); -} - -internal void -coff_print_symbol_table(Arena *arena, - String8List *out, - String8 indent, - String8 raw_data, - B32 is_big_obj, - String8 string_table, - COFF_Symbol32Array symbols) -{ - Temp scratch = scratch_begin(&arena, 1); - - if (symbols.count) { - rd_printf("# Symbol Table"); - rd_indent(); - - rd_printf("%-4s %-8s %-10s %-4s %-4s %-4s %-16s %-20s", - "No.", "Value", "SectNum", "Aux", "Msb", "Lsb", "Storage", "Name"); - - for (U64 i = 0; i < symbols.count; ++i) { - COFF_Symbol32 *symbol = &symbols.v[i]; - String8 name = coff_read_symbol_name(string_table, &symbol->name); - String8 msb = coff_string_from_sym_dtype(symbol->type.u.msb); - String8 lsb = coff_string_from_sym_type(symbol->type.u.lsb); - String8 storage_class = coff_string_from_sym_storage_class(symbol->storage_class); - String8 section_number; - switch (symbol->section_number) { - case COFF_Symbol_UndefinedSection: section_number = str8_lit("Undef"); break; - case COFF_Symbol_AbsSection32: section_number = str8_lit("Abs"); break; - case COFF_Symbol_DebugSection32: section_number = str8_lit("Debug"); break; - default: section_number = push_str8f(scratch.arena, "%010x", symbol->section_number); break; - } - - String8List line = {0}; - str8_list_pushf(scratch.arena, &line, "%-4x", i ); - str8_list_pushf(scratch.arena, &line, "%08x", symbol->value ); - str8_list_pushf(scratch.arena, &line, "%-10S", section_number ); - str8_list_pushf(scratch.arena, &line, "%-4u", symbol->aux_symbol_count); - str8_list_pushf(scratch.arena, &line, "%-4S", msb ); - str8_list_pushf(scratch.arena, &line, "%-4S", lsb ); - str8_list_pushf(scratch.arena, &line, "%-16S", storage_class ); - str8_list_pushf(scratch.arena, &line, "%S", name ); - - String8 l = str8_list_join(scratch.arena, &line, &(StringJoin){.sep = str8_lit(" ")}); - rd_printf("%S", l); - - rd_indent(); - for (U64 k=i+1, c = i+symbol->aux_symbol_count; k <= c; ++k) { - void *raw_aux = &symbols.v[k]; - switch (symbol->storage_class) { - case COFF_SymStorageClass_External: { - COFF_SymbolFuncDef *func_def = (COFF_SymbolFuncDef*)&symbols.v[k]; - rd_printf("Tag Index %#x, Total Size %#x, Line Numbers %#x, Next Function %#x", - func_def->tag_index, func_def->total_size, func_def->ptr_to_ln, func_def->ptr_to_next_func); - } break; - case COFF_SymStorageClass_Function: { - COFF_SymbolFunc *func = raw_aux; - rd_printf("Ordinal Line Number %#x, Next Function %#x", func->ln, func->ptr_to_next_func); - } break; - case COFF_SymStorageClass_WeakExternal: { - COFF_SymbolWeakExt *weak = raw_aux; - String8 type = coff_string_from_weak_ext_type(weak->characteristics); - rd_printf("Tag Index %#x, Characteristics %S", weak->tag_index, type); - } break; - case COFF_SymStorageClass_File: { - COFF_SymbolFile *file = raw_aux; - String8 name = str8_cstring_capped(file->name, file->name+sizeof(file->name)); - rd_printf("Name %S", name); - } break; - case COFF_SymStorageClass_Static: { - COFF_SymbolSecDef *sd = raw_aux; - String8 selection = coff_string_from_comdat_select_type(sd->selection); - U32 number = sd->number_lo; - if (is_big_obj) { - number |= (U32)sd->number_hi << 16; - } - if (number) { - rd_printf("Length %x, Reloc Count %u, Line Count %u, Checksum %x, Section %x, Selection %S", - sd->length, sd->number_of_relocations, sd->number_of_ln, sd->check_sum, number, selection); - } else { - rd_printf("Length %x, Reloc Count %u, Line Count %u, Checksum %x", - sd->length, sd->number_of_relocations, sd->number_of_ln, sd->check_sum); - } - } break; - default: { - rd_printf("???"); - } break; - } - } - - i += symbol->aux_symbol_count; - rd_unindent(); - } - - rd_unindent(); - rd_newline(); - } - - scratch_end(scratch); -} - -internal void -coff_print_big_obj_header(Arena *arena, String8List *out, String8 indent, COFF_BigObjHeader *header) -{ - Temp scratch = scratch_begin(&arena, 1); - - String8 time_stamp = coff_string_from_time_stamp(scratch.arena, header->time_stamp); - String8 machine = coff_string_from_machine_type(header->machine); - - rd_printf("# Big Obj"); - rd_indent(); - rd_printf("Time Stamp : %#x (%S)", header->time_stamp, time_stamp); - rd_printf("Machine : %#x (%S)", header->machine, machine ); - rd_printf("Section Count: %u", header->section_count ); - rd_printf("Symbol Table : %#x", header->symbol_table_foff); - rd_printf("Symbol Count : %u", header->symbol_count ); - rd_unindent(); - - scratch_end(scratch); -} - -internal void -coff_print_file_header(Arena *arena, String8List *out, String8 indent, COFF_FileHeader *header) -{ - Temp scratch = scratch_begin(&arena, 1); - - String8 time_stamp = coff_string_from_time_stamp(scratch.arena, header->time_stamp); - String8 machine = coff_string_from_machine_type(header->machine); - String8 flags = coff_string_from_flags(scratch.arena, header->flags); - - rd_printf("# COFF File Header"); - rd_indent(); - rd_printf("Time Stamp : %#x (%S)", header->time_stamp, time_stamp ); - rd_printf("Machine : %#x %S", header->machine, machine ); - rd_printf("Section Count : %u", header->section_count ); - rd_printf("Symbol Table : %#x", header->symbol_table_foff ); - rd_printf("Symbol Count : %u", header->symbol_count ); - rd_printf("Optional Header Size: %#x (%m)", header->optional_header_size, header->optional_header_size); - rd_printf("Flags : %#x (%S)", header->flags, flags ); - rd_unindent(); - - scratch_end(scratch); -} - -internal void -coff_print_import(Arena *arena, String8List *out, String8 indent, COFF_ParsedArchiveImportHeader *header) -{ - Temp scratch = scratch_begin(&arena, 1); - - String8 machine = coff_string_from_machine_type(header->machine); - String8 time_stamp = coff_string_from_time_stamp(scratch.arena, header->time_stamp); - - rd_printf("# Import"); - rd_indent(); - rd_printf("Version : %u", header->version ); - rd_printf("Machine : %S", machine ); - rd_printf("Time Stamp: %#x (%S)", header->time_stamp, time_stamp ); - rd_printf("Data Size : %#x (%m)", header->data_size, header->data_size); - rd_printf("Hint : %u", header->hint_or_ordinal); - rd_printf("Type : %u", header->type ); - rd_printf("Import By : %u", header->import_by ); - rd_printf("Function : %S", header->func_name ); - rd_printf("DLL : %S", header->dll_name ); - rd_unindent(); - - scratch_end(scratch); -} - -internal void -coff_print_big_obj(Arena *arena, String8List *out, String8 indent, String8 raw_data, RD_Option opts) -{ - Temp scratch = scratch_begin(&arena, 1); - - COFF_FileHeaderInfo header_info = coff_file_header_info_from_data(raw_data); - - String8 raw_header = str8_substr(raw_data, header_info.header_range); - String8 raw_section_table = str8_substr(raw_data, header_info.section_table_range); - String8 raw_string_table = str8_substr(raw_data, header_info.string_table_range); - - COFF_BigObjHeader *big_obj = (COFF_BigObjHeader *)raw_header.str; - COFF_SectionHeader *section_table = (COFF_SectionHeader *)raw_section_table.str; - COFF_Symbol32Array symbol_table = coff_symbol_array_from_data_32(scratch.arena, raw_data, header_info.symbol_table_range.min, big_obj->symbol_count); - - if (opts & RD_Option_Headers) { - coff_print_big_obj_header(arena, out, indent, big_obj); - rd_newline(); - } - - if (opts & RD_Option_Sections) { - Rng1U64 sect_headers_range = rng_1u64(sizeof(*big_obj), sizeof(*big_obj) + sizeof(COFF_SectionHeader)*big_obj->section_count); - Rng1U64 symbols_range = rng_1u64(big_obj->symbol_table_foff, big_obj->symbol_table_foff + sizeof(COFF_Symbol32)*big_obj->symbol_count); - - if (sect_headers_range.max > raw_data.size) { - rd_errorf("not enough bytes to read big obj section headers"); - goto exit; - } - if (big_obj->symbol_count) { - if (symbols_range.max > raw_data.size) { - rd_errorf("not enough bytes to read big obj symbol table"); - goto exit; - } - if (contains_1u64(symbols_range, sect_headers_range.min) || - contains_1u64(symbols_range, sect_headers_range.max)) { - rd_errorf("section headers and symbol table ranges overlap"); - goto exit; - } - } - - coff_print_section_table(arena, out, indent, raw_string_table, symbol_table, big_obj->section_count, section_table); - rd_newline(); - } - - if (opts & RD_Option_Relocs) { - coff_print_relocs(arena, out, indent, raw_data, raw_string_table, big_obj->machine, big_obj->section_count, section_table, symbol_table); - rd_newline(); - } - - if (opts & RD_Option_Symbols) { - coff_print_symbol_table(arena, out, indent, raw_data, 1, raw_string_table, symbol_table); - rd_newline(); - } - - exit:; - scratch_end(scratch); -} - -internal void -coff_print_obj(Arena *arena, String8List *out, String8 indent, String8 raw_data, RD_Option opts) -{ - Temp scratch = scratch_begin(&arena, 1); - - COFF_FileHeaderInfo header_info = coff_file_header_info_from_data(raw_data); - - String8 raw_header = str8_substr(raw_data, header_info.header_range); - String8 raw_section_table = str8_substr(raw_data, header_info.section_table_range); - String8 raw_string_table = str8_substr(raw_data, header_info.string_table_range); - - COFF_FileHeader *header = (COFF_FileHeader *)raw_header.str; - COFF_SectionHeader *section_table = (COFF_SectionHeader *)raw_section_table.str; - COFF_Symbol32Array symbol_table = coff_symbol_array_from_data_16(scratch.arena, raw_data, header_info.symbol_table_range.min, header->symbol_count); - Arch arch = arch_from_coff_machine(header->machine); - - if (opts & RD_Option_Headers) { - coff_print_file_header(arena, out, indent, header); - rd_newline(); - } - - if (opts & RD_Option_Sections) { - Rng1U64 sect_headers_range = rng_1u64(sizeof(*header), sizeof(*header) + sizeof(COFF_SectionHeader)*header->section_count); - Rng1U64 symbols_range = rng_1u64(header->symbol_table_foff, header->symbol_table_foff + sizeof(COFF_Symbol16)*header->symbol_count); - - if (sect_headers_range.max > raw_data.size) { - rd_errorf("not enough bytes to read obj section headers"); - goto exit; - } - if (header->symbol_count) { - if (symbols_range.max > raw_data.size) { - rd_errorf("not enough bytes to read obj symbol table"); - goto exit; - } - if (contains_1u64(symbols_range, sect_headers_range.min) || - contains_1u64(symbols_range, sect_headers_range.max)) { - rd_errorf("section headers and symbol table ranges overlap"); - goto exit; - } - } - - coff_print_section_table(arena, out, indent, raw_string_table, symbol_table, header->section_count, section_table); - rd_newline(); - } - - if (opts & RD_Option_Relocs) { - coff_print_relocs(arena, out, indent, raw_data, raw_string_table, header->machine, header->section_count, section_table, symbol_table); - rd_newline(); - } - - if (opts & RD_Option_Symbols) { - coff_print_symbol_table(arena, out, indent, raw_data, 0, raw_string_table, symbol_table); - rd_newline(); - } - - RD_MarkerArray *section_markers = 0; - if (opts & (RD_Option_Disasm|RD_Option_Rawdata)) { - section_markers = rd_section_markers_from_coff_symbol_table(scratch.arena, raw_string_table, header->section_count, symbol_table); - } - - if (opts & RD_Option_Rawdata) { - coff_raw_data_sections(arena, out, indent, raw_data, 1, section_markers, header->section_count, section_table); - } - - if (opts & RD_Option_Disasm) { - coff_disasm_sections(arena, out, indent, raw_data, header->machine, 0, 1, section_markers, header->section_count, section_table); - rd_newline(); - } - - if (opts & RD_Option_Codeview) { - cv_format_debug_sections(arena, out, indent, raw_data, raw_string_table, header->section_count, section_table); - } - - if (opts & RD_Option_Dwarf) { - DW_Input dwarf_input = dw_input_from_coff_section_table(scratch.arena, raw_data, raw_string_table, header->section_count, section_table); - dw_format(arena, out, indent, opts, &dwarf_input, arch, ExecutableImageKind_CoffPe); - } - - exit:; - scratch_end(scratch); -} - -internal void -coff_print_archive(Arena *arena, String8List *out, String8 indent, String8 raw_archive, RD_Option opts) -{ - Temp scratch = scratch_begin(&arena, 1); - - COFF_ArchiveParse archive_parse = coff_archive_parse_from_data(raw_archive); - - if (archive_parse.error.size) { - rd_errorf("%S", archive_parse.error); - return; - } - - COFF_ArchiveFirstMember first_member = archive_parse.first_member; - { - rd_printf("# First Header"); - rd_indent(); - - rd_printf("Symbol Count : %u", first_member.symbol_count); - rd_printf("String Table Size: %#llx (%M)", first_member.string_table.size, first_member.string_table.size); - - rd_printf("Members:"); - rd_indent(); - - String8List string_table = str8_split_by_string_chars(scratch.arena, first_member.string_table, str8_lit("\0"), 0); - - if (string_table.node_count == first_member.member_offset_count) { - String8Node *string_n = string_table.first; - - for (U64 i = 0; i < string_table.node_count; ++i, string_n = string_n->next) { - U32 offset = from_be_u32(first_member.member_offsets[i]); - rd_printf("[%4u] %#08x %S", i, offset, string_n->string); - } - } else { - rd_errorf("Member offset count (%llu) doesn't match string table count (%llu)", first_member.member_offset_count); - } - - rd_unindent(); - rd_unindent(); - rd_newline(); - } - - if (archive_parse.has_second_header) { - COFF_ArchiveSecondMember second_member = archive_parse.second_member; - - rd_printf("# Second Header"); - rd_indent(); - - rd_printf("Member Count : %u", second_member.member_count); - rd_printf("Symbol Count : %u", second_member.symbol_count); - rd_printf("String Table Size: %#llx (%M)", second_member.string_table.size, second_member.string_table.size); - - String8List string_table = str8_split_by_string_chars(scratch.arena, second_member.string_table, str8_lit("\0"), 0); - - rd_printf("Members:"); - rd_indent(); - if (second_member.symbol_index_count == second_member.symbol_count) { - String8Node *string_n = string_table.first; - for (U64 i = 0; i < second_member.symbol_count; ++i, string_n = string_n->next) { - U16 symbol_number = second_member.symbol_indices[i]; - if (symbol_number > 0 && symbol_number <= second_member.member_offset_count) { - U16 symbol_idx = symbol_number - 1; - U32 member_offset = second_member.member_offsets[i]; - rd_printf("[%4u] %#08x %S", i, member_offset, string_n->string); - } else { - rd_errorf("[%4u] Out of bounds symbol number %u", i, symbol_number); - break; - } - } - } else { - rd_errorf("Symbol index count %u doesn't match symbol count %u", - second_member.symbol_index_count, second_member.symbol_count); - } - rd_unindent(); - - rd_unindent(); - rd_newline(); - } - - if (archive_parse.has_long_names && opts & RD_Option_LongNames) { - rd_printf("# Long Names"); - rd_indent(); - - String8List long_names = str8_split_by_string_chars(scratch.arena, archive_parse.long_names, str8_lit("\0"), 0); - U64 name_idx = 0; - for (String8Node *name_n = long_names.first; name_n != 0; name_n = name_n->next, ++name_idx) { - U64 offset = (U64)(name_n->string.str - archive_parse.long_names.str); - rd_printf("[%-4u] %#08x %S", name_idx, offset, name_n->string); - } - - rd_unindent(); - rd_newline(); - } - - U64 member_offset_count = 0; - U32 *member_offsets = 0; - if (archive_parse.has_second_header) { - member_offset_count = archive_parse.second_member.member_offset_count; - member_offsets = archive_parse.second_member.member_offsets; - } else { - HashTable *ht = hash_table_init(scratch.arena, 0x1000); - for (U64 i = 0; i < archive_parse.first_member.member_offset_count; ++i) { - U32 member_offset = from_be_u32(archive_parse.first_member.member_offsets[i]); - if (!hash_table_search_u32(ht, member_offset)) { - hash_table_push_u32_raw(scratch.arena, ht, member_offset, 0); - } - } - member_offset_count = ht->count; - member_offsets = keys_from_hash_table_u32(scratch.arena, ht); - radsort(member_offsets, member_offset_count, u32_is_before); - } - - rd_printf("# Members"); - rd_indent(); - - for (U64 i = 0; i < member_offset_count; ++i) { - U64 next_member_offset = i+1 < member_offset_count ? member_offsets[i+1] : raw_archive.size; - U64 member_offset = member_offsets[i]; - String8 raw_member = str8_substr(raw_archive, rng_1u64(member_offset, next_member_offset)); - COFF_ArchiveMember member = coff_archive_member_from_data(raw_member); - COFF_DataType member_type = coff_data_type_from_data(member.data); - - rd_printf("Member @ %#llx", member_offset); - rd_indent(); - - if (opts & RD_Option_Headers) { - coff_print_archive_member_header(arena, out, indent, member.header, archive_parse.long_names); - rd_newline(); - } - - switch (member_type) { - case COFF_DataType_Obj: { - coff_print_obj(arena, out, indent, member.data, opts); - } break; - case COFF_DataType_BigObj: { - coff_print_big_obj(arena, out, indent, member.data, opts); - } break; - case COFF_DataType_Import: { - if (opts & RD_Option_Headers) { - COFF_ParsedArchiveImportHeader header = {0}; - U64 parse_size = coff_parse_import(member.data, 0, &header); - if (parse_size) { - coff_print_import(arena, out, indent, &header); - } else { - rd_errorf("not enough bytes to parse import header"); - } - } - } break; - case COFF_DataType_Null: { - rd_errorf("unknown member format", member_offset); - } break; - } - - rd_unindent(); - rd_newline(); - } - - rd_unindent(); - - scratch_end(scratch); -} - // MSVC CRT internal void diff --git a/src/raddump/raddump.h b/src/raddump/raddump.h index 813e751c..2a11230c 100644 --- a/src/raddump/raddump.h +++ b/src/raddump/raddump.h @@ -203,21 +203,6 @@ internal void cv_print_string_table (Arena *arena, String8List *out, String8 i internal void cv_print_inlinee_lines (Arena *arena, String8List *out, String8 indent, String8 raw_data); internal void cv_print_symbols_section(Arena *arena, String8List *out, String8 indent, CV_Arch arch, String8 raw_ss); -// COFF - -internal void coff_print_archive_member_header(Arena *arena, String8List *out, String8 indent, COFF_ParsedArchiveMemberHeader header, String8 long_names); -internal void coff_print_section_table (Arena *arena, String8List *out, String8 indent, String8 string_table, COFF_Symbol32Array symbols, U64 sect_count, COFF_SectionHeader *sect_headers); -internal void coff_disasm_sections (Arena *arena, String8List *out, String8 indent, String8 raw_data, COFF_MachineType machine, U64 image_base, B32 is_obj, RD_MarkerArray *section_markers, U64 section_count, COFF_SectionHeader *sections); -internal void coff_raw_data_sections (Arena *arena, String8List *out, String8 indent, String8 raw_data, B32 is_obj, RD_MarkerArray *section_markers, U64 section_count, COFF_SectionHeader *sections); -internal void coff_print_relocs (Arena *arena, String8List *out, String8 indent, String8 raw_data, String8 string_table, COFF_MachineType machine, U64 sect_count, COFF_SectionHeader *sect_headers, COFF_Symbol32Array symbols); -internal void coff_print_symbol_table (Arena *arena, String8List *out, String8 indent, String8 raw_data, B32 is_big_obj, String8 string_table, COFF_Symbol32Array symbols); -internal void coff_print_big_obj_header (Arena *arena, String8List *out, String8 indent, COFF_BigObjHeader *header); -internal void coff_print_file_header (Arena *arena, String8List *out, String8 indent, COFF_FileHeader *header); -internal void coff_print_import (Arena *arena, String8List *out, String8 indent, COFF_ParsedArchiveImportHeader *header); -internal void coff_print_big_obj (Arena *arena, String8List *out, String8 indent, String8 raw_data, RD_Option opts); -internal void coff_print_obj (Arena *arena, String8List *out, String8 indent, String8 raw_data, RD_Option opts); -internal void coff_print_archive (Arena *arena, String8List *out, String8 indent, String8 raw_archive, RD_Option opts); - // MSVC CRT internal void mscrt_print_eh_handler_type32(Arena *arena, String8List *out, String8 indent, RDI_Parsed *rdi, MSCRT_EhHandlerType32 *handler); diff --git a/src/rdi/rdi_local.c b/src/rdi/rdi_local.c index d0a973e3..da99890e 100644 --- a/src/rdi/rdi_local.c +++ b/src/rdi/rdi_local.c @@ -516,12 +516,12 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla String8 indent = str8_lit(" "); #define dump(str) str8_list_push(arena, &strings, (str)) #define dumpf(...) str8_list_pushf(arena, &strings, __VA_ARGS__) -#define DumpSubset(name) if(flags & RDI_DumpSubsetFlag_##name) DeferLoop(dumpf("# %S\n\n", rdi_name_title_from_dump_subset_table[RDI_DumpSubset_##name]), dump(str8_lit("\n"))) +#define DumpSubset(name) if(flags & RDI_DumpSubsetFlag_##name) DeferLoop(dumpf("////////////////////////////////\n//~ %S\n\n", rdi_name_title_from_dump_subset_table[RDI_DumpSubset_##name]), dump(str8_lit("\n"))) ////////////////////////////// //- rjf: dump data sections // - DumpSubset(DataSections) + DumpSubset(DataSections) DeferLoop(dumpf("data_sections:\n{\n"), dumpf("}\n")) { for EachIndex(idx, rdi->sections_count) { @@ -529,7 +529,7 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla RDI_SectionKind kind = (RDI_SectionKind)idx; RDI_Section *section = &rdi->sections[idx]; String8 kind_str = rdi_string_from_data_section_kind(scratch.arena, kind); - dumpf("data_section[%5llu] = {%#08llx, %7u, %7u}, %S\n", idx, section->off, section->encoded_size, section->unpacked_size, kind_str); + dumpf(" {%#08llx %7u %7u %*s} // data_section[%I64u]\n", section->off, section->encoded_size, section->unpacked_size, 24, kind_str.str, idx); scratch_end(scratch); } } @@ -537,35 +537,39 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla ////////////////////////////// //- rjf: dump top-level-info // - DumpSubset(TopLevelInfo) + DumpSubset(TopLevelInfo) DeferLoop(dumpf("top_level_info:\n{\n"), dumpf("}\n")) { RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); Temp scratch = scratch_begin(&arena, 1); - dumpf("arch =%S\n", rdi_string_from_arch(scratch.arena, tli->arch)); - dumpf("exe_name ='%S'\n", str8_from_rdi_string_idx(rdi, tli->exe_name_string_idx)); - dumpf("voff_max =%#08llx\n", tli->voff_max); - dumpf("producer_name='%S'\n", str8_from_rdi_string_idx(rdi, tli->producer_name_string_idx)); + dumpf(" arch: %S\n", rdi_string_from_arch(scratch.arena, tli->arch)); + dumpf(" exe_name: '%S'\n", str8_from_rdi_string_idx(rdi, tli->exe_name_string_idx)); + dumpf(" voff_max: %#08llx\n", tli->voff_max); + dumpf(" producer_name: '%S'\n", str8_from_rdi_string_idx(rdi, tli->producer_name_string_idx)); scratch_end(scratch); } ////////////////////////////// //- rjf: dump binary sections // - DumpSubset(BinarySections) + DumpSubset(BinarySections) DeferLoop(dumpf("binary_sections:\n{\n"), dumpf("}\n")) { U64 count = 0; RDI_BinarySection *v = rdi_table_from_name(rdi, BinarySections, &count); + dumpf(" // %-16s %-16s %-12s %-12s %-12s %-12s\n", "name", "flags", "voff_first", "voff_opl", "foff_first", "foff_opl"); for EachIndex(idx, count) { Temp scratch = scratch_begin(&arena, 1); RDI_BinarySection *bin_section = &v[idx]; - dumpf("binary_section[%I64u]:\n", idx); - dumpf(" name ='%S'\n", str8_from_rdi_string_idx(rdi, bin_section->name_string_idx)); - dumpf(" flags =%S\n", rdi_string_from_binary_section_flags(scratch.arena, bin_section->flags)); - dumpf(" voff_first=%#08x\n", bin_section->voff_first); - dumpf(" voff_opl =%#08x\n", bin_section->voff_opl); - dumpf(" foff_first=%#08x\n", bin_section->foff_first); - dumpf(" foff_opl =%#08x\n", bin_section->foff_opl); + String8 name = str8_from_rdi_string_idx(rdi, bin_section->name_string_idx); + String8 flags = rdi_string_from_binary_section_flags(scratch.arena, bin_section->flags); + dumpf(" { %-16.*s %-16.*s 0x%-10I64x 0x%-10I64x 0x%-10I64x 0x%-10I64x } // binary_section[%I64u]\n", + str8_varg(name), + str8_varg(flags), + bin_section->voff_first, + bin_section->voff_opl, + bin_section->foff_first, + bin_section->foff_opl, + idx); scratch_end(scratch); } } From 327f0f128a8e0a2de79a7135376be727dea23d20 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 19 Jun 2025 21:15:16 -0700 Subject: [PATCH 029/372] more parseability coverage on rdi dumping --- src/dwarf/dwarf_dump.c | 4 +-- src/rdi/rdi_local.c | 63 +++++++++++++++++++++++------------------- 2 files changed, 37 insertions(+), 30 deletions(-) diff --git a/src/dwarf/dwarf_dump.c b/src/dwarf/dwarf_dump.c index f63c49a2..9a1a784e 100644 --- a/src/dwarf/dwarf_dump.c +++ b/src/dwarf/dwarf_dump.c @@ -1874,11 +1874,11 @@ dw_dump_list_from_sections(Arena *arena, DW_Input *input, Arch arch, DW_DumpSubs // rjf: log file table DeferLoop(dumpf(" file_table:\n {\n"), dumpf(" }\n\n")) { - dumpf("// %-4s %-8s %-8s %-33s %-8s %-8s\n", "no.", "dir_idx", "time", "md5", "size", "name"); + dumpf(" // %-4s %-8s %-8s %-33s %-8s %-8s\n", "no.", "dir_idx", "time", "md5", "size", "name"); for EachIndex(file_idx, line_vm.file_table.count) { DW_LineFile *file = &line_vm.file_table.v[file_idx]; - dumpf("{ %-4llu %-8llu %-8llu %016llx-%016llx %-8llu %S }\n", + dumpf(" { %-4llu %-8llu %-8llu %016llx-%016llx %-8llu %S }\n", file_idx, file->dir_idx, file->modify_time, diff --git a/src/rdi/rdi_local.c b/src/rdi/rdi_local.c index da99890e..5fda8730 100644 --- a/src/rdi/rdi_local.c +++ b/src/rdi/rdi_local.c @@ -555,16 +555,16 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla { U64 count = 0; RDI_BinarySection *v = rdi_table_from_name(rdi, BinarySections, &count); - dumpf(" // %-16s %-16s %-12s %-12s %-12s %-12s\n", "name", "flags", "voff_first", "voff_opl", "foff_first", "foff_opl"); + dumpf(" // %-16s %-16s %-12s %-12s %-12s %s\n", "name", "flags", "voff_first", "voff_opl", "foff_first", "foff_opl"); for EachIndex(idx, count) { Temp scratch = scratch_begin(&arena, 1); RDI_BinarySection *bin_section = &v[idx]; String8 name = str8_from_rdi_string_idx(rdi, bin_section->name_string_idx); String8 flags = rdi_string_from_binary_section_flags(scratch.arena, bin_section->flags); - dumpf(" { %-16.*s %-16.*s 0x%-10I64x 0x%-10I64x 0x%-10I64x 0x%-10I64x } // binary_section[%I64u]\n", - str8_varg(name), - str8_varg(flags), + dumpf(" { %-16S %-16S 0x%-10I64x 0x%-10I64x 0x%-10I64x 0x%-10I64x } // binary_section[%I64u]\n", + push_str8f(scratch.arena, "'%S'", name), + push_str8f(scratch.arena, "`%S`", flags), bin_section->voff_first, bin_section->voff_opl, bin_section->foff_first, @@ -577,7 +577,7 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla ////////////////////////////// //- rjf: dump file paths // - DumpSubset(FilePaths) + DumpSubset(FilePaths) DeferLoop(dumpf("file_path_tree:\n{\n"), dumpf("}\n")) { U64 count = 0; RDI_FilePathNode *v = rdi_table_from_name(rdi, FilePathNodes, &count); @@ -586,23 +586,28 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla { RDI_FilePathNode *root = &v[idx]; if(root->parent_path_node != 0) { continue; } - S64 depth = 0; + S64 depth = 1; for(RDI_FilePathNode *n = root, *rec_next = nil; n != nil; n = rec_next) { // rjf: dump if(n->source_file_idx == 0) { - dumpf("%.*s[%I64u] '%S'\n", depth*2, indent.str, (U64)(n - v), str8_from_rdi_string_idx(rdi, n->name_string_idx)); + dumpf("%.*s'%S'%s // file_path_node[%I64u]\n", + depth*2, indent.str, + str8_from_rdi_string_idx(rdi, n->name_string_idx), + n->first_child ? ":" : "", + (U64)(n - v)); } else { - dumpf("%.*s[%I64u] '%S': source_file=%u\n", depth*2, indent.str, (U64)(n - v), str8_from_rdi_string_idx(rdi, n->name_string_idx), n->source_file_idx); + dumpf("%.*s'%S': source_file: %u // file_path_node[%I64u]\n", depth*2, indent.str, str8_from_rdi_string_idx(rdi, n->name_string_idx), n->source_file_idx, (U64)(n - v)); } // rjf: find next node rec_next = nil; if(n->first_child) { + dumpf("%.*s{\n", depth*2, indent.str); rec_next = rdi_element_from_name_idx(rdi, FilePathNodes, n->first_child); depth += 1; } @@ -615,6 +620,7 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla rec_next = rdi_element_from_name_idx(rdi, FilePathNodes, p->next_sibling); break; } + dumpf("%.*s}\n", (depth-1)*2, indent.str); } } } @@ -623,25 +629,25 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla ////////////////////////////// //- rjf: dump source files // - DumpSubset(SourceFiles) + DumpSubset(SourceFiles) DeferLoop(dumpf("source_files:\n{\n"), dumpf("}\n")) { - U64 source_file_count = 0; - RDI_SourceFile *source_file_array = rdi_table_from_name(rdi, SourceFiles, &source_file_count); - for(U64 i = 0; i < source_file_count; ++i) + U64 count = 0; + RDI_SourceFile *v = rdi_table_from_name(rdi, SourceFiles, &count); + for EachIndex(idx, count) { - RDI_SourceFile *source_file = &source_file_array[i]; - dumpf("source_file[%4llu] = { file_path_node_idx = %4u, source_line_map = %4u, path = '%S' }\n", - i, + RDI_SourceFile *source_file = &v[idx]; + dumpf(" { file_path_node_idx: %4u, source_line_map: %4u, path: %-192S } // source_file[%I64u]\n", source_file->file_path_node_idx, source_file->source_line_map_idx, - str8_from_rdi_string_idx(rdi, source_file->normal_full_path_string_idx)); + push_str8f(arena, "'%S'", str8_from_rdi_string_idx(rdi, source_file->normal_full_path_string_idx)), + idx); } } ////////////////////////////// //- rjf: dump units // - DumpSubset(Units) + DumpSubset(Units) DeferLoop(dumpf("units:\n{"), dumpf("}\n")) { U64 count = 0; RDI_Unit *v = rdi_table_from_name(rdi, Units, &count); @@ -649,15 +655,16 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla { RDI_Unit *unit = &v[idx]; Temp scratch = scratch_begin(&arena, 1); - dumpf("unit[%I64u]:\n", idx); - dumpf(" unit_name ='%S'\n", str8_from_rdi_string_idx(rdi, unit->unit_name_string_idx)); - dumpf(" compiler_name ='%S'\n", str8_from_rdi_string_idx(rdi, unit->compiler_name_string_idx)); - dumpf(" source_file_path =%u\n", unit->source_file_path_node); - dumpf(" object_file_path =%u\n", unit->object_file_path_node); - dumpf(" archive_file_path=%u\n", unit->archive_file_path_node); - dumpf(" build_path =%u\n", unit->build_path_node); - dumpf(" language =%S\n", rdi_string_from_language(scratch.arena, unit->language)); - dumpf(" line_table_idx =%u\n", unit->line_table_idx); + dumpf("\n // unit[%I64u]\n {\n", idx); + dumpf(" unit_name: '%S'\n", str8_from_rdi_string_idx(rdi, unit->unit_name_string_idx)); + dumpf(" compiler_name: '%S'\n", str8_from_rdi_string_idx(rdi, unit->compiler_name_string_idx)); + dumpf(" source_file_path: %u\n", unit->source_file_path_node); + dumpf(" object_file_path: %u\n", unit->object_file_path_node); + dumpf(" archive_file_path: %u\n", unit->archive_file_path_node); + dumpf(" build_path: %u\n", unit->build_path_node); + dumpf(" language: %S\n", rdi_string_from_language(scratch.arena, unit->language)); + dumpf(" line_table_idx: %u\n", unit->line_table_idx); + dumpf(" }\n"); scratch_end(scratch); } } @@ -665,13 +672,13 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla ////////////////////////////// //- rjf: dump unit vmap // - DumpSubset(UnitVMap) + DumpSubset(UnitVMap) DeferLoop(dumpf("unit_vmap:\n{\n"), dumpf("}\n")) { U64 count = 0; RDI_VMapEntry *v = rdi_table_from_name(rdi, UnitVMap, &count); for EachIndex(idx, count) { - dumpf("%I64x -> #%I64u\n", v[idx].voff, v[idx].idx); + dumpf(" {0x%I64x => %I64u}\n", v[idx].voff, v[idx].idx); } } From ad995374bb4f46e0f2df5d38433b479d1a0c9634 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 20 Jun 2025 07:57:16 -0700 Subject: [PATCH 030/372] cache module requirement disqualifications; reuse within scope of same run (& thus same user bps) --- src/ctrl/ctrl_core.c | 208 ++++++++++++++++++++++++------------------- src/ctrl/ctrl_core.h | 16 ++++ 2 files changed, 132 insertions(+), 92 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 8a3c2c71..af4a9fdd 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -1552,6 +1552,7 @@ ctrl_init(void) ctrl_state->ctrl_thread_entity_ctx_rw_mutex = os_rw_mutex_alloc(); ctrl_state->ctrl_thread_entity_store = ctrl_entity_ctx_rw_store_alloc(); ctrl_state->ctrl_thread_eval_cache = e_cache_alloc(); + ctrl_state->ctrl_thread_msg_process_arena = arena_alloc(); ctrl_state->dmn_event_arena = arena_alloc(); ctrl_state->user_entry_point_arena = arena_alloc(); ctrl_state->dbg_dir_arena = arena_alloc(); @@ -3708,9 +3709,75 @@ ctrl_thread__entry_point(void *p) log_infof("user2ctrl_msg:{kind:\"%S\"}\n", ctrl_string_from_msg_kind(msg->kind)); } - //- rjf: unpack per-message parameterizations & store + //- rjf: reset per-message state + arena_clear(ctrl_state->ctrl_thread_msg_process_arena); + ctrl_state->module_req_cache_slots_count = 1024; + ctrl_state->module_req_cache_slots = push_array(ctrl_state->ctrl_thread_msg_process_arena, CTRL_ModuleReqCacheNode *, ctrl_state->module_req_cache_slots_count); + MemoryZeroStruct(&ctrl_state->msg_user_bp_touched_files); + MemoryZeroStruct(&ctrl_state->msg_user_bp_touched_symbols); + MemoryCopyArray(ctrl_state->exception_code_filters, msg->exception_code_filters); + + //- rjf: gather all touched symbols by user breakpoints { - MemoryCopyArray(ctrl_state->exception_code_filters, msg->exception_code_filters); + Temp scratch = scratch_begin(0, 0); + for(CTRL_UserBreakpointNode *n = msg->user_bps.first; n != 0; n = n->next) + { + if(n->v.kind != CTRL_UserBreakpointKind_Expression) + { + continue; + } + E_Parse addr_parse = e_parse_from_string(n->v.string); + E_Parse cnd_parse = e_parse_from_string(n->v.condition); + E_Expr *exprs[] = {addr_parse.expr, cnd_parse.expr}; + for EachElement(idx, exprs) + { + typedef struct ExprWalkTask ExprWalkTask; + struct ExprWalkTask + { + ExprWalkTask *next; + E_Expr *expr; + }; + ExprWalkTask start_task = {0, exprs[idx]}; + ExprWalkTask *first_task = &start_task; + for(ExprWalkTask *t = first_task; t != 0; t = t->next) + { + E_Expr *expr = t->expr; + if(expr->ref != &e_expr_nil) + { + expr = expr->ref; + } + if(expr->kind == E_ExprKind_LeafIdentifier) + { + str8_list_push(ctrl_state->ctrl_thread_msg_process_arena, &ctrl_state->msg_user_bp_touched_symbols, expr->string); + } + if(expr->next != &e_expr_nil) + { + ExprWalkTask *task = push_array(scratch.arena, ExprWalkTask, 1); + task->expr = expr->next; + task->next = t->next; + t->next = task; + } + if(expr->first != &e_expr_nil) + { + ExprWalkTask *task = push_array(scratch.arena, ExprWalkTask, 1); + task->expr = expr->first; + task->next = t->next; + t->next = task; + } + } + } + } + scratch_end(scratch); + } + + //- rjf: gather all touched files by user breakpoints + for(CTRL_UserBreakpointNode *n = msg->user_bps.first; n != 0; n = n->next) + { + if(n->v.kind != CTRL_UserBreakpointKind_FileNameAndLineColNumber) + { + continue; + } + str8_list_push(ctrl_state->ctrl_thread_msg_process_arena, &ctrl_state->msg_user_bp_touched_files, n->v.string); } //- rjf: process message @@ -5018,117 +5085,74 @@ ctrl_thread__eval_scope_begin(Arena *arena, CTRL_UserBreakpointList *user_bps, C B32 rdi_is_necessary = 1; if(rdi == &rdi_parsed_nil) ProfScope("determine if RDI is necessary") { - OS_Handle file = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead, dbgi_key.path); + // rjf: find cached result + U64 hash = ctrl_hash_from_handle(mod->handle); + U64 slot_idx = hash%ctrl_state->module_req_cache_slots_count; + CTRL_ModuleReqCacheNode *slot = ctrl_state->module_req_cache_slots[slot_idx]; + CTRL_ModuleReqCacheNode *node = 0; + for(CTRL_ModuleReqCacheNode *n = slot; slot != 0; slot = slot->next) { - //- rjf: determine if file is PDB - B32 file_is_pdb = 0; - if(!file_is_pdb) + if(ctrl_handle_match(n->module, mod->handle)) { - U8 msf70_magic_maybe[sizeof(msf_msf70_magic)] = {0}; - os_file_read(file, r1u64(0, sizeof(msf70_magic_maybe)), msf70_magic_maybe); - if(MemoryMatch(msf70_magic_maybe, msf_msf70_magic, sizeof(msf70_magic_maybe))) - { - file_is_pdb = 1; - } + node = n; + break; } - if(!file_is_pdb) + } + + // rjf: cached? -> take cached result + if(node != 0) + { + rdi_is_necessary = node->required; + } + + // rjf: not cached -> compute & store + else ProfScope("cache miss") + { + OS_Handle file = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead, dbgi_key.path); { - U8 msf20_magic_maybe[sizeof(msf_msf20_magic)] = {0}; - os_file_read(file, r1u64(0, sizeof(msf20_magic_maybe)), msf20_magic_maybe); - if(MemoryMatch(msf20_magic_maybe, msf_msf20_magic, sizeof(msf20_magic_maybe))) + //- rjf: determine if file is PDB + B32 file_is_pdb = 0; + if(!file_is_pdb) { - file_is_pdb = 1; - } - } - - //- rjf: file is PDB -> do thin parse & lookup of all breakpoint files/symbols. - // if any are found in the PDB, then this RDI is necessary. - if(file_is_pdb) - { - Temp scratch = scratch_begin(&arena, 1); - - // rjf: gather breakpoint-referenced symbols - String8List symbols = {0}; - { - for(CTRL_UserBreakpointNode *n = user_bps->first; n != 0; n = n->next) + U8 msf70_magic_maybe[sizeof(msf_msf70_magic)] = {0}; + os_file_read(file, r1u64(0, sizeof(msf70_magic_maybe)), msf70_magic_maybe); + if(MemoryMatch(msf70_magic_maybe, msf_msf70_magic, sizeof(msf70_magic_maybe))) { - if(n->v.kind != CTRL_UserBreakpointKind_Expression) - { - continue; - } - E_Parse addr_parse = e_parse_from_string(n->v.string); - E_Parse cnd_parse = e_parse_from_string(n->v.condition); - E_Expr *exprs[] = {addr_parse.expr, cnd_parse.expr}; - for EachElement(idx, exprs) - { - typedef struct ExprWalkTask ExprWalkTask; - struct ExprWalkTask - { - ExprWalkTask *next; - E_Expr *expr; - }; - ExprWalkTask start_task = {0, exprs[idx]}; - ExprWalkTask *first_task = &start_task; - for(ExprWalkTask *t = first_task; t != 0; t = t->next) - { - E_Expr *expr = t->expr; - if(expr->ref != &e_expr_nil) - { - expr = expr->ref; - } - if(expr->kind == E_ExprKind_LeafIdentifier) - { - str8_list_push(scratch.arena, &symbols, expr->string); - } - if(expr->next != &e_expr_nil) - { - ExprWalkTask *task = push_array(scratch.arena, ExprWalkTask, 1); - task->expr = expr->next; - task->next = t->next; - t->next = task; - } - if(expr->first != &e_expr_nil) - { - ExprWalkTask *task = push_array(scratch.arena, ExprWalkTask, 1); - task->expr = expr->first; - task->next = t->next; - t->next = task; - } - } - } + file_is_pdb = 1; + } + } + if(!file_is_pdb) + { + U8 msf20_magic_maybe[sizeof(msf_msf20_magic)] = {0}; + os_file_read(file, r1u64(0, sizeof(msf20_magic_maybe)), msf20_magic_maybe); + if(MemoryMatch(msf20_magic_maybe, msf_msf20_magic, sizeof(msf20_magic_maybe))) + { + file_is_pdb = 1; } } - // rjf: gather breakpoint-referenced file paths - String8List files = {0}; - { - for(CTRL_UserBreakpointNode *n = user_bps->first; n != 0; n = n->next) - { - if(n->v.kind != CTRL_UserBreakpointKind_FileNameAndLineColNumber) - { - continue; - } - str8_list_push(scratch.arena, &files, n->v.string); - } - } - - // rjf: check file + //- rjf: file is PDB -> do thin parse & lookup of all breakpoint files/symbols. + // if any are found in the PDB, then this RDI is necessary. + if(file_is_pdb) { FileProperties props = os_properties_from_file(file); OS_Handle map = os_file_map_open(OS_AccessFlag_Read, file); void *file_base = os_file_map_view_open(map, OS_AccessFlag_Read, r1u64(0, props.size)); String8 file_data = str8(file_base, props.size); { - rdi_is_necessary = pdb_has_symbol_or_file_ref(file_data, symbols, files); + rdi_is_necessary = pdb_has_symbol_or_file_ref(file_data, ctrl_state->msg_user_bp_touched_symbols, ctrl_state->msg_user_bp_touched_files); } os_file_map_view_close(map, file_base, r1u64(0, props.size)); os_file_map_close(map); } - - scratch_end(scratch); } + os_file_close(file); + node = push_array(ctrl_state->ctrl_thread_msg_process_arena, CTRL_ModuleReqCacheNode, 1); + node->next = slot; + ctrl_state->module_req_cache_slots[slot_idx] = node; + node->module = mod->handle; + node->required = rdi_is_necessary; } - os_file_close(file); } //- rjf: if this RDI is necessary, but we do not have it => wait for it forever diff --git a/src/ctrl/ctrl_core.h b/src/ctrl/ctrl_core.h index 651726ac..f7d5b1af 100644 --- a/src/ctrl/ctrl_core.h +++ b/src/ctrl/ctrl_core.h @@ -756,6 +756,17 @@ struct CTRL_TCTX CTRL_ScopeCallStackTouch *free_call_stack_touch; }; +//////////////////////////////// +//~ rjf: Module Requirement Cache Types + +typedef struct CTRL_ModuleReqCacheNode CTRL_ModuleReqCacheNode; +struct CTRL_ModuleReqCacheNode +{ + CTRL_ModuleReqCacheNode *next; + CTRL_Handle module; + B32 required; +}; + //////////////////////////////// //~ rjf: Wakeup Hook Function Types @@ -806,6 +817,7 @@ struct CTRL_State OS_Handle ctrl_thread_entity_ctx_rw_mutex; CTRL_EntityCtxRWStore *ctrl_thread_entity_store; E_Cache *ctrl_thread_eval_cache; + Arena *ctrl_thread_msg_process_arena; Arena *dmn_event_arena; DMN_EventNode *first_dmn_event_node; DMN_EventNode *last_dmn_event_node; @@ -816,6 +828,10 @@ struct CTRL_State U64 process_counter; Arena *dbg_dir_arena; CTRL_DbgDirNode *dbg_dir_root; + U64 module_req_cache_slots_count; + CTRL_ModuleReqCacheNode **module_req_cache_slots; + String8List msg_user_bp_touched_files; + String8List msg_user_bp_touched_symbols; // rjf: user -> memstream ring buffer U64 u2ms_ring_size; From 995f65ee1ab9dab867b689606014f86e6838d42b Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 20 Jun 2025 09:08:25 -0700 Subject: [PATCH 031/372] rdi dump parseability pass --- src/rdi/rdi_local.c | 227 ++++++++++++++++++++++++-------------------- 1 file changed, 122 insertions(+), 105 deletions(-) diff --git a/src/rdi/rdi_local.c b/src/rdi/rdi_local.c index 5fda8730..b67ccdca 100644 --- a/src/rdi/rdi_local.c +++ b/src/rdi/rdi_local.c @@ -516,13 +516,14 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla String8 indent = str8_lit(" "); #define dump(str) str8_list_push(arena, &strings, (str)) #define dumpf(...) str8_list_pushf(arena, &strings, __VA_ARGS__) -#define DumpSubset(name) if(flags & RDI_DumpSubsetFlag_##name) DeferLoop(dumpf("////////////////////////////////\n//~ %S\n\n", rdi_name_title_from_dump_subset_table[RDI_DumpSubset_##name]), dump(str8_lit("\n"))) +#define DumpSubset(name) if(flags & RDI_DumpSubsetFlag_##name) DeferLoop(dumpf("////////////////////////////////\n//~ %S\n\n%S:\n{", rdi_name_title_from_dump_subset_table[RDI_DumpSubset_##name], rdi_name_lowercase_from_dump_subset_table[RDI_DumpSubset_##name]), dump(str8_lit("}\n\n"))) ////////////////////////////// //- rjf: dump data sections // - DumpSubset(DataSections) DeferLoop(dumpf("data_sections:\n{\n"), dumpf("}\n")) + DumpSubset(DataSections) { + dumpf("\n"); for EachIndex(idx, rdi->sections_count) { Temp scratch = scratch_begin(&arena, 1); @@ -537,10 +538,11 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla ////////////////////////////// //- rjf: dump top-level-info // - DumpSubset(TopLevelInfo) DeferLoop(dumpf("top_level_info:\n{\n"), dumpf("}\n")) + DumpSubset(TopLevelInfo) { RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); Temp scratch = scratch_begin(&arena, 1); + dumpf("\n"); dumpf(" arch: %S\n", rdi_string_from_arch(scratch.arena, tli->arch)); dumpf(" exe_name: '%S'\n", str8_from_rdi_string_idx(rdi, tli->exe_name_string_idx)); dumpf(" voff_max: %#08llx\n", tli->voff_max); @@ -551,11 +553,11 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla ////////////////////////////// //- rjf: dump binary sections // - DumpSubset(BinarySections) DeferLoop(dumpf("binary_sections:\n{\n"), dumpf("}\n")) + DumpSubset(BinarySections) { U64 count = 0; RDI_BinarySection *v = rdi_table_from_name(rdi, BinarySections, &count); - dumpf(" // %-16s %-16s %-12s %-12s %-12s %s\n", "name", "flags", "voff_first", "voff_opl", "foff_first", "foff_opl"); + dumpf("\n // %-16s %-16s %-12s %-12s %-12s %s\n", "name", "flags", "voff_first", "voff_opl", "foff_first", "foff_opl"); for EachIndex(idx, count) { Temp scratch = scratch_begin(&arena, 1); @@ -577,8 +579,9 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla ////////////////////////////// //- rjf: dump file paths // - DumpSubset(FilePaths) DeferLoop(dumpf("file_path_tree:\n{\n"), dumpf("}\n")) + DumpSubset(FilePaths) { + dumpf("\n"); U64 count = 0; RDI_FilePathNode *v = rdi_table_from_name(rdi, FilePathNodes, &count); RDI_FilePathNode *nil = &v[0]; @@ -629,25 +632,26 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla ////////////////////////////// //- rjf: dump source files // - DumpSubset(SourceFiles) DeferLoop(dumpf("source_files:\n{\n"), dumpf("}\n")) + DumpSubset(SourceFiles) { U64 count = 0; RDI_SourceFile *v = rdi_table_from_name(rdi, SourceFiles, &count); for EachIndex(idx, count) { RDI_SourceFile *source_file = &v[idx]; - dumpf(" { file_path_node_idx: %4u, source_line_map: %4u, path: %-192S } // source_file[%I64u]\n", + dumpf("\n { file_path_node_idx: %4u, source_line_map: %4u, path: %-192S } // source_file[%I64u]", source_file->file_path_node_idx, source_file->source_line_map_idx, push_str8f(arena, "'%S'", str8_from_rdi_string_idx(rdi, source_file->normal_full_path_string_idx)), idx); } + dumpf("\n"); } ////////////////////////////// //- rjf: dump units // - DumpSubset(Units) DeferLoop(dumpf("units:\n{"), dumpf("}\n")) + DumpSubset(Units) { U64 count = 0; RDI_Unit *v = rdi_table_from_name(rdi, Units, &count); @@ -656,14 +660,14 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla RDI_Unit *unit = &v[idx]; Temp scratch = scratch_begin(&arena, 1); dumpf("\n // unit[%I64u]\n {\n", idx); - dumpf(" unit_name: '%S'\n", str8_from_rdi_string_idx(rdi, unit->unit_name_string_idx)); - dumpf(" compiler_name: '%S'\n", str8_from_rdi_string_idx(rdi, unit->compiler_name_string_idx)); - dumpf(" source_file_path: %u\n", unit->source_file_path_node); - dumpf(" object_file_path: %u\n", unit->object_file_path_node); + dumpf(" unit_name: '%S'\n", str8_from_rdi_string_idx(rdi, unit->unit_name_string_idx)); + dumpf(" compiler_name: '%S'\n", str8_from_rdi_string_idx(rdi, unit->compiler_name_string_idx)); + dumpf(" source_file_path: %u\n", unit->source_file_path_node); + dumpf(" object_file_path: %u\n", unit->object_file_path_node); dumpf(" archive_file_path: %u\n", unit->archive_file_path_node); - dumpf(" build_path: %u\n", unit->build_path_node); - dumpf(" language: %S\n", rdi_string_from_language(scratch.arena, unit->language)); - dumpf(" line_table_idx: %u\n", unit->line_table_idx); + dumpf(" build_path: %u\n", unit->build_path_node); + dumpf(" language: %S\n", rdi_string_from_language(scratch.arena, unit->language)); + dumpf(" line_table_idx: %u\n", unit->line_table_idx); dumpf(" }\n"); scratch_end(scratch); } @@ -672,10 +676,11 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla ////////////////////////////// //- rjf: dump unit vmap // - DumpSubset(UnitVMap) DeferLoop(dumpf("unit_vmap:\n{\n"), dumpf("}\n")) + DumpSubset(UnitVMap) { U64 count = 0; RDI_VMapEntry *v = rdi_table_from_name(rdi, UnitVMap, &count); + dumpf("\n"); for EachIndex(idx, count) { dumpf(" {0x%I64x => %I64u}\n", v[idx].voff, v[idx].idx); @@ -694,7 +699,7 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla RDI_LineTable *line_table = &v[idx]; RDI_ParsedLineTable parsed_line_table = {0}; rdi_parsed_from_line_table(rdi, line_table, &parsed_line_table); - dumpf("line_table[%I64u]:\n", idx); + dumpf("\n // line_table[%I64u]\n {\n", idx); for EachIndex(line_idx, parsed_line_table.count) { U64 first = parsed_line_table.voffs[line_idx]; @@ -707,13 +712,14 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla } if(col == 0) { - dumpf(" [0x%08I64x,0x%08I64x) file=%u; line=%u\n", first, opl, line->file_idx, line->line_num); + dumpf(" { [0x%08I64x, 0x%08I64x) file: %u, line: %u }\n", first, opl, line->file_idx, line->line_num); } else { - dumpf(" [0x%08I64x,0x%08I64x) file=%u; line=%u; columns=[%u,%u)\n", first, opl, line->file_idx, line->line_num, col->col_first, col->col_opl); + dumpf(" { [0x%08I64x, 0x%08I64x) file: %u, line: %u, columns: [%u, %u) }\n", first, opl, line->file_idx, line->line_num, col->col_first, col->col_opl); } } + dumpf(" }\n"); } } @@ -729,7 +735,7 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla Temp scratch = scratch_begin(&arena, 1); RDI_ParsedSourceLineMap line_map = {0}; rdi_parsed_from_source_line_map(rdi, &v[idx], &line_map); - dumpf("source_line_map[%I64u]:\n", idx); + dumpf("\n // source_line_map[%I64u]\n {\n", idx); for EachIndex(line_num_idx, line_map.count) { Temp temp = temp_begin(scratch.arena); @@ -741,9 +747,10 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla str8_list_pushf(temp.arena, &list, "%#llx", line_map.voffs[voff_idx]); } String8 voffs_string = str8_list_join(temp.arena, &list, &(StringJoin){.sep = str8_lit(", ")}); - dumpf(" %u: %S\n", line_map.nums[line_num_idx], voffs_string); + dumpf(" %u: (%S)\n", line_map.nums[line_num_idx], voffs_string); temp_end(temp); } + dumpf(" }\n"); scratch_end(scratch); } } @@ -761,25 +768,25 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla RDI_TypeNode *type = &v[idx]; String8 type_kind_str = {0}; type_kind_str.str = rdi_string_from_type_kind(type->kind, &type_kind_str.size); - dumpf("type[%I64u]:\n", idx); - dumpf(" kind =%S\n", type_kind_str); + dumpf("\n // type[%I64u]\n {\n", idx); + dumpf(" kind: %S\n", type_kind_str); if(type->kind == RDI_TypeKind_Modifier) { - dumpf(" flags =%S\n", rdi_string_from_type_modifier_flags(scratch.arena, type->flags)); + dumpf(" flags: %S\n", rdi_string_from_type_modifier_flags(scratch.arena, type->flags)); } else if(type->flags != 0) { - dumpf(" flags=%#x (missing stringizer path)\n", type->flags); + dumpf(" flags: %#x (missing stringizer path)\n", type->flags); } - dumpf(" byte_size =%u\n", type->byte_size); + dumpf(" byte_size: %u\n", type->byte_size); if(RDI_TypeKind_FirstBuiltIn <= type->kind && type->kind <= RDI_TypeKind_LastBuiltIn) { - dumpf(" built_in.name ='%S'\n", str8_from_rdi_string_idx(rdi, type->built_in.name_string_idx)); + dumpf(" name: '%S'\n", str8_from_rdi_string_idx(rdi, type->built_in.name_string_idx)); } else if(type->kind == RDI_TypeKind_Array) { - dumpf(" constructed.direct_type =%u\n", type->constructed.direct_type_idx); - dumpf(" constructed.array_count =%u\n", type->constructed.count); + dumpf(" constructed__direct_type: %u\n", type->constructed.direct_type_idx); + dumpf(" constructed__array_count: %u\n", type->constructed.count); } else if(type->kind == RDI_TypeKind_Function) { @@ -791,8 +798,8 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla str8_list_pushf(scratch.arena, ¶m_idx_strings, "%u", param_idx_array[param_idx]); } String8 param_idx_str = str8_list_join(scratch.arena, ¶m_idx_strings, &(StringJoin){.pre = str8_lit("["), .sep = str8_lit(", "), .post = str8_lit("]")}); - dumpf(" constructed.params =%S\n", param_idx_str); - dumpf(" return_type =%u\n", type->constructed.direct_type_idx); + dumpf(" constructed__params: %S\n", param_idx_str); + dumpf(" return_type: %u\n", type->constructed.direct_type_idx); } else if(type->kind == RDI_TypeKind_Method) { @@ -811,25 +818,26 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla str8_list_pushf(scratch.arena, ¶m_idx_strings, "%u", param_idx_array[param_idx]); } String8 param_idx_str = str8_list_join(scratch.arena, ¶m_idx_strings, &(StringJoin){.pre = str8_lit("["), .sep = str8_lit(", "), .post = str8_lit("]")}); - dumpf(" constructed.this_type =%S\n", this_type_str); - dumpf(" constructed.params =%S\n", param_idx_str); - dumpf(" return_type =%u\n", type->constructed.direct_type_idx); + dumpf(" constructed__this_type: %S\n", this_type_str); + dumpf(" constructed__params: %S\n", param_idx_str); + dumpf(" return_type: %u\n", type->constructed.direct_type_idx); } else if(RDI_TypeKind_FirstConstructed <= type->kind && type->kind <= RDI_TypeKind_LastConstructed) { - dumpf(" constructed.direct_type =%u\n", type->constructed.direct_type_idx); + dumpf(" constructed__direct_type: %u\n", type->constructed.direct_type_idx); } else if(RDI_TypeKind_FirstUserDefined <= type->kind && type->kind <= RDI_TypeKind_LastUserDefined) { - dumpf(" user_defined.name ='%S'\n", str8_from_rdi_string_idx(rdi, type->user_defined.name_string_idx)); - dumpf(" user_defined.direct_type=%u\n", type->user_defined.direct_type_idx); - dumpf(" user_defined.udt =%u\n", type->user_defined.udt_idx); + dumpf(" name: '%S'\n", str8_from_rdi_string_idx(rdi, type->user_defined.name_string_idx)); + dumpf(" user_defined__direct_type: %u\n", type->user_defined.direct_type_idx); + dumpf(" user_defined__udt: %u\n", type->user_defined.udt_idx); } else if(type->kind == RDI_TypeKind_Bitfield) { - dumpf(" bitfield.off =%u\n", type->bitfield.off); - dumpf(" bitfield.size =%u\n", type->bitfield.size); + dumpf(" bitfield__off: %u\n", type->bitfield.off); + dumpf(" bitfield__size: %u\n", type->bitfield.size); } + dumpf(" }\n"); scratch_end(scratch); } } @@ -849,12 +857,12 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla { RDI_UDT *udt = &v[idx]; Temp scratch = scratch_begin(&arena, 1); - dumpf("udt[%I64u]:\n", idx); - dumpf(" self_type=%u\n", udt->self_type_idx); - dumpf(" flags =%S\n", rdi_string_from_udt_flags(scratch.arena, udt->flags)); + dumpf("\n // udt[%I64u]\n {\n", idx); + dumpf(" self_type: %u\n", udt->self_type_idx); + dumpf(" flags: `%S`\n", rdi_string_from_udt_flags(scratch.arena, udt->flags)); if(udt->file_idx != 0) { - dumpf(" loc ={file=%u; line=%u; col=%u}\n", udt->file_idx, udt->line, udt->col); + dumpf(" loc: {file: %u, line: %u, col: %u}\n", udt->file_idx, udt->line, udt->col); } if(udt->flags & RDI_UDTFlag_EnumMembers) { @@ -862,14 +870,14 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla U32 member_lo = ClampTop(udt->member_first, member_hi); if(member_lo < member_hi) { - dumpf(" enum_members=\n"); - dumpf(" {\n"); + dumpf(" enum_members:\n"); + dumpf(" {\n"); for(U32 enum_member_idx = member_lo; enum_member_idx < member_hi; enum_member_idx += 1) { RDI_EnumMember *enum_member = &all_enum_members[enum_member_idx]; - dumpf(" { %llu, '%S' }\n", enum_member->val, str8_from_rdi_string_idx(rdi, enum_member->name_string_idx)); + dumpf(" '%S': %I64u\n", str8_from_rdi_string_idx(rdi, enum_member->name_string_idx), enum_member->val); } - dumpf(" }\n"); + dumpf(" }\n"); } } else @@ -878,18 +886,19 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla U32 member_lo = ClampTop(udt->member_first, member_hi); if(member_lo < member_hi) { - dumpf(" members=\n"); - dumpf(" {\n"); + dumpf(" members:\n"); + dumpf(" {\n"); for(U32 member_idx = member_lo; member_idx < member_hi; member_idx += 1) { RDI_Member *member = &all_members[member_idx]; String8 kind_str = rdi_string_from_member_kind(scratch.arena, member->kind); String8 name_str = str8_from_rdi_string_idx(rdi, member->name_string_idx); - dumpf(" { kind=%S, type=%u, off=%u, name='%S' }\n", kind_str, member->type_idx, member->off, name_str); + dumpf(" '%S': { kind: %S, type: %u, off: %u }\n", name_str, kind_str, member->type_idx, member->off); } - dumpf(" }\n"); + dumpf(" }\n"); } } + dumpf(" }\n"); scratch_end(scratch); } } @@ -905,12 +914,12 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla { RDI_GlobalVariable *gvar = &v[idx]; Temp scratch = scratch_begin(&arena, 1); - dumpf("global_variable[%I64u]:\n", idx); - dumpf(" name ='%S'\n", str8_from_rdi_string_idx(rdi, gvar->name_string_idx)); - dumpf(" link_flags =%S\n", rdi_string_from_link_flags(scratch.arena, gvar->link_flags)); - dumpf(" voff =%#08x\n", gvar->voff); - dumpf(" type_idx =%u\n", gvar->type_idx); - dumpf(" container_idx=%u\n", gvar->container_idx); + dumpf("\n '%S': // global_variable[%I64u]\n {\n", str8_from_rdi_string_idx(rdi, gvar->name_string_idx), idx); + dumpf(" link_flags: `%S`\n", rdi_string_from_link_flags(scratch.arena, gvar->link_flags)); + dumpf(" voff: %#08x\n", gvar->voff); + dumpf(" type_idx: %u\n", gvar->type_idx); + dumpf(" container_idx: %u\n", gvar->container_idx); + dumpf(" }\n"); scratch_end(scratch); } } @@ -922,9 +931,10 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla { U64 count = 0; RDI_VMapEntry *v = rdi_table_from_name(rdi, GlobalVMap, &count); + dumpf("\n"); for EachIndex(idx, count) { - dumpf("%I64x -> #%I64u\n", v[idx].voff, v[idx].idx); + dumpf(" {0x%I64x => %I64u}\n", v[idx].voff, v[idx].idx); } } @@ -939,12 +949,12 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla { RDI_ThreadVariable *tvar = &v[idx]; Temp scratch = scratch_begin(&arena, 1); - dumpf("thread_variable[%I64u]:\n", idx); - dumpf(" name ='%S'\n", str8_from_rdi_string_idx(rdi, tvar->name_string_idx)); - dumpf(" link_flags =%S\n", rdi_string_from_link_flags(scratch.arena, tvar->link_flags)); - dumpf(" tls_off =%#08x\n", tvar->tls_off); - dumpf(" type_idx =%u\n", tvar->type_idx); - dumpf(" container_idx=%u\n", tvar->container_idx); + dumpf("\n '%S': // thread_variable[%I64u]\n {\n", str8_from_rdi_string_idx(rdi, tvar->name_string_idx), idx); + dumpf(" link_flags: `%S`\n", rdi_string_from_link_flags(scratch.arena, tvar->link_flags)); + dumpf(" tls_off: %#08x\n", tvar->tls_off); + dumpf(" type_idx: %u\n", tvar->type_idx); + dumpf(" container_idx: %u\n", tvar->container_idx); + dumpf(" }\n"); scratch_end(scratch); } } @@ -959,9 +969,9 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla for EachIndex(idx, count) { RDI_Constant *cnst = &v[idx]; - dumpf("constant[%I64u]:\n", idx); - dumpf(" name ='%S'\n", str8_from_rdi_string_idx(rdi, cnst->name_string_idx)); - dumpf(" type_idx ='%u'\n", cnst->type_idx); + dumpf("\n '%S': // constant[%I64u]\n {\n", str8_from_rdi_string_idx(rdi, cnst->name_string_idx), idx); + dumpf(" type_idx: %u\n", cnst->type_idx); + dumpf(" }\n"); } } @@ -978,19 +988,19 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla RDI_Procedure *proc = &v[idx]; Temp scratch = scratch_begin(&arena, 1); String8List frame_base_location_strings = rdi_strings_from_locations(scratch.arena, rdi, tli->arch, r1u64(proc->frame_base_location_first, proc->frame_base_location_opl)); - dumpf("procedure[%I64u]:\n", idx); - dumpf(" name ='%S'\n", str8_from_rdi_string_idx(rdi, proc->name_string_idx)); - dumpf(" link_name ='%S'\n", str8_from_rdi_string_idx(rdi, proc->link_name_string_idx)); - dumpf(" link_flags =%S\n", rdi_string_from_link_flags(scratch.arena, proc->link_flags)); - dumpf(" type_idx =%u\n", proc->type_idx); - dumpf(" root_scope_idx =%u\n", proc->root_scope_idx); - dumpf(" container_idx =%u\n", proc->container_idx); - dumpf(" frame_base (first=%u, opl=%u)=\n", proc->frame_base_location_first, proc->frame_base_location_opl); - dumpf(" {\n"); + dumpf("\n '%S': // procedure[%I64u]\n {\n", str8_from_rdi_string_idx(rdi, proc->name_string_idx), idx); + dumpf(" link_name: '%S'\n", str8_from_rdi_string_idx(rdi, proc->link_name_string_idx)); + dumpf(" link_flags: `%S`\n", rdi_string_from_link_flags(scratch.arena, proc->link_flags)); + dumpf(" type_idx: %u\n", proc->type_idx); + dumpf(" root_scope_idx: %u\n", proc->root_scope_idx); + dumpf(" container_idx: %u\n", proc->container_idx); + dumpf(" frame_base: // (first: %u, opl: %u)\n", proc->frame_base_location_first, proc->frame_base_location_opl); + dumpf(" {\n"); for(String8Node *n = frame_base_location_strings.first; n != 0; n = n->next) { - dumpf(" %S\n", n->string); + dumpf(" %S\n", n->string); } + dumpf(" }\n"); dumpf(" }\n"); scratch_end(scratch); } @@ -1001,6 +1011,7 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla // DumpSubset(Scopes) { + dumpf("\n"); RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); U64 scope_voffs_count = 0; U64 *scope_voffs = rdi_table_from_name(rdi, ScopeVOffData, &scope_voffs_count); @@ -1013,7 +1024,7 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla { if(v[idx].parent_scope_idx != 0) { continue; } RDI_Scope *root = &v[idx]; - S64 depth = 0; + S64 depth = 1; for(RDI_Scope *scope = root, *rec_next = nil; scope != nil; scope = rec_next) { // rjf: scope list(voff_range) => string @@ -1048,17 +1059,17 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla } // rjf: dump - dumpf("%.*sscope[%I64u]:\n", depth*2, indent.str, (U64)(scope - v)); + dumpf("%.*s// scope[%I64u]\n", depth*2, indent.str, (U64)(scope - v)); dumpf("%.*s{\n", depth*2, indent.str); - dumpf("%.*s proc_idx =%u ('%S')\n", depth*2, indent.str, scope->proc_idx, procedure_name); - dumpf("%.*s first_child_scope_idx =%u\n", depth*2, indent.str, scope->first_child_scope_idx); - dumpf("%.*s next_sibling_scope_idx=%u\n", depth*2, indent.str, scope->next_sibling_scope_idx); + dumpf("%.*s proc_idx: %u // %S\n", depth*2, indent.str, scope->proc_idx, procedure_name); + dumpf("%.*s first_child_scope_idx: %u\n", depth*2, indent.str, scope->first_child_scope_idx); + dumpf("%.*s next_sibling_scope_idx: %u\n", depth*2, indent.str, scope->next_sibling_scope_idx); if(scope->inline_site_idx != 0) { - dumpf("%.*s inline_site_idx =%u ('%S')\n", depth*2, indent.str, scope->inline_site_idx, inline_site_name); + dumpf("%.*s inline_site_idx: %u ('%S')\n", depth*2, indent.str, scope->inline_site_idx, inline_site_name); } - dumpf("%.*s voff_ranges =%S\n", depth*2, indent.str, voff_range_list_string); - dumpf("%.*s locals=\n", depth*2, indent.str); + dumpf("%.*s voff_ranges: %S\n", depth*2, indent.str, voff_range_list_string); + dumpf("%.*s locals:\n", depth*2, indent.str); dumpf("%.*s {\n", depth*2, indent.str); { U32 local_lo = ClampTop(scope->local_first, locals_count); @@ -1069,11 +1080,11 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla { Temp scratch = scratch_begin(&arena, 1); RDI_Local *local_ptr = &locals[local_idx]; - dumpf("%.*s local[%u]:\n", depth*2, indent.str, local_idx); - dumpf("%.*s kind =%S\n", depth*2, indent.str, rdi_string_from_local_kind(scratch.arena, local_ptr->kind)); - dumpf("%.*s name ='%S'\n", depth*2, indent.str, str8_from_rdi_string_idx(rdi, local_ptr->name_string_idx)); - dumpf("%.*s type_idx=%u\n", depth*2, indent.str, local_ptr->type_idx); - dumpf("%.*s locations=\n", depth*2, indent.str); + dumpf("%.*s '%S': // local[%u]\n", depth*2, indent.str, str8_from_rdi_string_idx(rdi, local_ptr->name_string_idx), local_idx); + dumpf("%.*s {\n", depth*2, indent.str); + dumpf("%.*s kind: %S\n", depth*2, indent.str, rdi_string_from_local_kind(scratch.arena, local_ptr->kind)); + dumpf("%.*s type_idx: %u\n", depth*2, indent.str, local_ptr->type_idx); + dumpf("%.*s locations:\n", depth*2, indent.str); dumpf("%.*s {\n", depth*2, indent.str); if(local_ptr->location_first < local_ptr->location_opl) { @@ -1084,6 +1095,7 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla } } dumpf("%.*s }\n", depth*2, indent.str); + dumpf("%.*s }\n", depth*2, indent.str); scratch_end(scratch); } } @@ -1101,7 +1113,7 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla p != nil; p = rdi_element_from_name_idx(rdi, Scopes, p->parent_scope_idx), depth -= 1) { - dumpf("%.*s} [/%I64u] \n", depth*2, indent.str, (U64)(p-v)); + dumpf("%.*s} // scope[/%I64u] \n", depth*2, indent.str, (U64)(p-v)); if(p->next_sibling_scope_idx != 0) { rec_next = rdi_element_from_name_idx(rdi, Scopes, p->next_sibling_scope_idx); @@ -1119,9 +1131,10 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla { U64 count = 0; RDI_VMapEntry *v = rdi_table_from_name(rdi, ScopeVMap, &count); + dumpf("\n"); for EachIndex(idx, count) { - dumpf("%I64x -> #%I64u\n", v[idx].voff, v[idx].idx); + dumpf(" {0x%I64x => %I64u}\n", v[idx].voff, v[idx].idx); } } @@ -1137,17 +1150,19 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla RDI_InlineSite *inline_site = &v[idx]; Temp scratch = scratch_begin(&arena, 1); String8 inline_site_idx = push_str8f(scratch.arena, "inline_site[%u]", idx); - String8 type_idx = push_str8f(scratch.arena, "type_idx = %u,", inline_site->type_idx); - String8 owner_type_idx = push_str8f(scratch.arena, "owner_type_idx = %u,", inline_site->owner_type_idx); - String8 line_table_idx = push_str8f(scratch.arena, "line_table_idx = %u,", inline_site->line_table_idx); - dumpf("%-20S = { %-25S %-25S %-25S name = '%-20S' }\n", - inline_site_idx, + String8 type_idx = push_str8f(scratch.arena, "type_idx: %u,", inline_site->type_idx); + String8 owner_type_idx = push_str8f(scratch.arena, "owner_type_idx: %u,", inline_site->owner_type_idx); + String8 line_table_idx = push_str8f(scratch.arena, "line_table_idx: %u,", inline_site->line_table_idx); + String8 name = push_str8f(scratch.arena, "'%S'", str8_from_rdi_string_idx(rdi, inline_site->name_string_idx)); + dumpf("\n { %-25S %-25S %-25S name: %-64S } // %S", type_idx, owner_type_idx, line_table_idx, - str8_from_rdi_string_idx(rdi, inline_site->name_string_idx)); + name, + inline_site_idx); scratch_end(scratch); } + dumpf("\n"); } ////////////////////////////// @@ -1160,14 +1175,13 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla RDI_NameMap *v = rdi_table_from_name(rdi, NameMaps, &count); for EachIndex(idx, count) { - if(idx > 0) { dumpf("\n"); } RDI_ParsedNameMap name_map = {0}; rdi_parsed_from_name_map(rdi, &v[idx], &name_map); - dumpf("name_map[%S]:\n", rdi_string_from_name_map_kind(idx)); + dumpf("\n // name_map[%I64u] (%S)\n {\n", idx, rdi_string_from_name_map_kind(idx)); for EachIndex(bucket_idx, name_map.bucket_count) { if(name_map.buckets[bucket_idx].node_count == 0) { continue; } - dumpf(" bucket[%I64u]:\n", bucket_idx); + dumpf(" %I64u:\n {\n", bucket_idx, bucket_idx); RDI_NameMapNode *node_ptr = name_map.nodes + name_map.buckets[bucket_idx].first_node; RDI_NameMapNode *node_opl = node_ptr + name_map.buckets[bucket_idx].node_count; for(;node_ptr < node_opl; node_ptr += 1) @@ -1191,10 +1205,12 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla } indices = str8_list_join(scratch.arena, &idx_strings, &(StringJoin){.sep = str8_lit(", ")}); } - dumpf(" match \"%S\": %S\n", str, indices); + dumpf(" \"%S\": %S\n", str, indices); temp_end(temp); } + dumpf(" }\n"); } + dumpf(" }\n"); } scratch_end(scratch); } @@ -1208,8 +1224,9 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla U32 *v = rdi_table_from_name(rdi, StringTable, &count); for EachIndex(idx, count) { - dumpf("string[%I64u]: \"%S\"\n", idx, str8_from_rdi_string_idx(rdi, idx)); + dumpf("\n \"%S\" // string[%I64u]", str8_from_rdi_string_idx(rdi, idx), idx); } + dumpf("\n"); } #undef DumpSubset From ce9f7f691a98b0e832c5d5bfaebfdecf1c7c65ba Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 20 Jun 2025 10:55:45 -0700 Subject: [PATCH 032/372] always-refresh dev option --- src/dbg_engine/dbg_engine.mdesk | 1 + src/dbg_engine/generated/dbg_engine.meta.h | 2 ++ src/dwarf/dwarf_parse.c | 2 +- src/raddbg/raddbg_core.c | 4 ++-- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/dbg_engine/dbg_engine.mdesk b/src/dbg_engine/dbg_engine.mdesk index a92649e2..7ab14cad 100644 --- a/src/dbg_engine/dbg_engine.mdesk +++ b/src/dbg_engine/dbg_engine.mdesk @@ -65,6 +65,7 @@ D_CmdTable: // | | | | @table(name) D_DevToggleTable: { + {always_refresh} {simulate_lag} {draw_ui_text_pos} {draw_ui_focus_debug} diff --git a/src/dbg_engine/generated/dbg_engine.meta.h b/src/dbg_engine/generated/dbg_engine.meta.h index d91994c8..4c8d2908 100644 --- a/src/dbg_engine/generated/dbg_engine.meta.h +++ b/src/dbg_engine/generated/dbg_engine.meta.h @@ -44,6 +44,7 @@ D_CmdKind_Attach, D_CmdKind_COUNT, } D_CmdKind; +global B32 DEV_always_refresh = 0; global B32 DEV_simulate_lag = 0; global B32 DEV_draw_ui_text_pos = 0; global B32 DEV_draw_ui_focus_debug = 0; @@ -54,6 +55,7 @@ global B32 DEV_cmd_context_tooltips = 0; global B32 DEV_updating_indicator = 0; struct {B32 *value_ptr; String8 name;} DEV_toggle_table[] = { +{&DEV_always_refresh, str8_lit_comp("always_refresh")}, {&DEV_simulate_lag, str8_lit_comp("simulate_lag")}, {&DEV_draw_ui_text_pos, str8_lit_comp("draw_ui_text_pos")}, {&DEV_draw_ui_focus_debug, str8_lit_comp("draw_ui_focus_debug")}, diff --git a/src/dwarf/dwarf_parse.c b/src/dwarf/dwarf_parse.c index d4642322..70db8920 100644 --- a/src/dwarf/dwarf_parse.c +++ b/src/dwarf/dwarf_parse.c @@ -2324,7 +2324,7 @@ dw_read_line_file(String8 data, DW_LNCT lnct = enc_arr[enc_idx*2 + 0]; DW_FormKind form_kind = enc_arr[enc_idx*2 + 1]; DW_Form form = {0}; - U64 bytes_read; + U64 bytes_read = 0; switch (lnct) { case DW_LNCT_Path: { bytes_read = dw_read_form(data, cursor, version, format, address_size, form_kind, max_U64, &form); diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 7e62e953..4fb8bb96 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -11294,7 +11294,7 @@ rd_frame(void) OS_EventList events = {0}; if(rd_state->frame_depth == 1) { - events = os_get_events(scratch.arena, rd_state->num_frames_requested == 0); + events = os_get_events(scratch.arena, rd_state->num_frames_requested == 0 && !DEV_always_refresh); } ////////////////////////////// @@ -11333,7 +11333,7 @@ rd_frame(void) F32 target_hz = os_get_gfx_info()->default_refresh_rate; if(rd_state->frame_index > 32) { - F32 possible_alternate_hz_targets[] = {target_hz, 60.f, 120.f, 144.f, 240.f}; + F32 possible_alternate_hz_targets[] = {target_hz, 60.f, 75.f, 120.f, 144.f, 165.f, 240.f, 360.f}; F32 best_target_hz = target_hz; S64 best_target_hz_frame_time_us_diff = max_S64; for(U64 idx = 0; idx < ArrayCount(possible_alternate_hz_targets); idx += 1) From 7e08b58cd84b26621ee465d49a7585cebd63acd7 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 20 Jun 2025 12:34:13 -0700 Subject: [PATCH 033/372] render/d3d11: switch to flip_discard model --- src/render/d3d11/render_d3d11.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/render/d3d11/render_d3d11.c b/src/render/d3d11/render_d3d11.c index c53dac66..e2119eee 100644 --- a/src/render/d3d11/render_d3d11.c +++ b/src/render/d3d11/render_d3d11.c @@ -517,14 +517,14 @@ r_window_equip(OS_Handle handle) { swapchain_desc.Width = 0; // NOTE(rjf): use window width swapchain_desc.Height = 0; // NOTE(rjf): use window height - swapchain_desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM_SRGB; + swapchain_desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; swapchain_desc.Stereo = FALSE; swapchain_desc.SampleDesc.Count = 1; swapchain_desc.SampleDesc.Quality = 0; swapchain_desc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; swapchain_desc.BufferCount = 2; swapchain_desc.Scaling = DXGI_SCALING_STRETCH; - swapchain_desc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; + swapchain_desc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; swapchain_desc.AlphaMode = DXGI_ALPHA_MODE_UNSPECIFIED; swapchain_desc.Flags = 0; } @@ -540,8 +540,11 @@ r_window_equip(OS_Handle handle) r_d3d11_state->dxgi_factory->lpVtbl->MakeWindowAssociation(r_d3d11_state->dxgi_factory, hwnd, DXGI_MWA_NO_ALT_ENTER); //- rjf: create framebuffer & view + D3D11_RENDER_TARGET_VIEW_DESC framebuffer_rtv_desc = {0}; + framebuffer_rtv_desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM_SRGB; + framebuffer_rtv_desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D; window->swapchain->lpVtbl->GetBuffer(window->swapchain, 0, &IID_ID3D11Texture2D, (void **)(&window->framebuffer)); - r_d3d11_state->device->lpVtbl->CreateRenderTargetView(r_d3d11_state->device, (ID3D11Resource *)window->framebuffer, 0, &window->framebuffer_rtv); + r_d3d11_state->device->lpVtbl->CreateRenderTargetView(r_d3d11_state->device, (ID3D11Resource *)window->framebuffer, &framebuffer_rtv_desc, &window->framebuffer_rtv); result = r_d3d11_handle_from_window(window); } @@ -886,7 +889,10 @@ r_window_begin_frame(OS_Handle window, R_Handle window_equip) wnd->framebuffer->lpVtbl->Release(wnd->framebuffer); wnd->swapchain->lpVtbl->ResizeBuffers(wnd->swapchain, 0, 0, 0, DXGI_FORMAT_UNKNOWN, 0); wnd->swapchain->lpVtbl->GetBuffer(wnd->swapchain, 0, &IID_ID3D11Texture2D, (void **)(&wnd->framebuffer)); - r_d3d11_state->device->lpVtbl->CreateRenderTargetView(r_d3d11_state->device, (ID3D11Resource *)wnd->framebuffer, 0, &wnd->framebuffer_rtv); + D3D11_RENDER_TARGET_VIEW_DESC framebuffer_rtv_desc = {0}; + framebuffer_rtv_desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM_SRGB; + framebuffer_rtv_desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D; + r_d3d11_state->device->lpVtbl->CreateRenderTargetView(r_d3d11_state->device, (ID3D11Resource *)wnd->framebuffer, &framebuffer_rtv_desc, &wnd->framebuffer_rtv); // rjf: create stage color targets { From 7960a0546a216da98dbe7c203a473003ba53bd81 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 20 Jun 2025 13:45:42 -0700 Subject: [PATCH 034/372] fix rd cfg debug stringification for new hs apis --- src/raddbg/raddbg_core.c | 23 +++++++++++++---------- src/raddbg/raddbg_core.h | 8 ++++---- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 4fb8bb96..090b5e0e 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -10785,10 +10785,10 @@ rd_init(CmdLine *cmdln) rd_state->user_path_arena = arena_alloc(); rd_state->project_path_arena = arena_alloc(); rd_state->theme_path_arena = arena_alloc(); - rd_state->user_cfg_string_key = hs_hash_from_data(str8_lit("raddbg_user_data_string_key")); - rd_state->project_cfg_string_key = hs_hash_from_data(str8_lit("raddbg_project_data_string_key")); - rd_state->cmdln_cfg_string_key = hs_hash_from_data(str8_lit("raddbg_cmdln_data_string_key")); - rd_state->transient_cfg_string_key = hs_hash_from_data(str8_lit("raddbg_transient_data_string_key")); + rd_state->user_cfg_string_key = hs_key_make(hs_root_alloc(), hs_id_make(0, 0)); + rd_state->project_cfg_string_key = hs_key_make(hs_root_alloc(), hs_id_make(0, 0)); + rd_state->cmdln_cfg_string_key = hs_key_make(hs_root_alloc(), hs_id_make(0, 0)); + rd_state->transient_cfg_string_key = hs_key_make(hs_root_alloc(), hs_id_make(0, 0)); for(U64 idx = 0; idx < ArrayCount(rd_state->frame_arenas); idx += 1) { rd_state->frame_arenas[idx] = arena_alloc(); @@ -11079,7 +11079,7 @@ rd_frame(void) { struct { - U128 key; + HS_Key key; String8 name; } table[] = @@ -11092,7 +11092,9 @@ rd_frame(void) for EachElement(idx, table) { Arena *arena = arena_alloc(); - String8 data = rd_string_from_cfg_tree(arena, rd_cfg_child_from_string(rd_state->root_cfg, table[idx].name)); + String8 data = rd_string_from_cfg_tree(arena, + str8_zero(), + rd_cfg_child_from_string(rd_state->root_cfg, table[idx].name)); hs_submit_data(table[idx].key, &arena, data); } } @@ -12249,7 +12251,7 @@ rd_frame(void) { struct { - U128 key; + HS_Key key; String8 name; } table[] = @@ -12262,12 +12264,13 @@ rd_frame(void) for EachElement(idx, table) { HS_Scope *hs_scope = hs_scope_open(); - U128 key = table[idx].key; + HS_Key key = table[idx].key; U128 hash = hs_hash_from_key(key, 0); String8 data = hs_data_from_hash(hs_scope, hash); E_Space space = e_space_make(E_SpaceKind_HashStoreKey); - E_Expr *expr = e_push_expr(scratch.arena, E_ExprKind_LeafOffset, 0); - space.u128 = key; + E_Expr *expr = e_push_expr(scratch.arena, E_ExprKind_LeafOffset, r1u64(0, 0)); + space.u64_0 = key.root.u64[0]; + space.u128 = key.id.u128[0]; expr->space = space; expr->mode = E_Mode_Offset; expr->type_key = e_type_key_cons_array(e_type_key_basic(E_TypeKind_U8), data.size, 0); diff --git a/src/raddbg/raddbg_core.h b/src/raddbg/raddbg_core.h index f202ca7f..d558f57a 100644 --- a/src/raddbg/raddbg_core.h +++ b/src/raddbg/raddbg_core.h @@ -570,10 +570,10 @@ struct RD_State F32 tooltip_animation_rate; // rjf: serialized config debug string keys - U128 user_cfg_string_key; - U128 project_cfg_string_key; - U128 cmdln_cfg_string_key; - U128 transient_cfg_string_key; + HS_Key user_cfg_string_key; + HS_Key project_cfg_string_key; + HS_Key cmdln_cfg_string_key; + HS_Key transient_cfg_string_key; // rjf: schema table MD_NodePtrList *schemas; From 65f00f3b17257403fa661ad0bef104c827afa2a4 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 20 Jun 2025 13:52:51 -0700 Subject: [PATCH 035/372] do not scale swapchain framebuffer contents --- src/render/d3d11/render_d3d11.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/render/d3d11/render_d3d11.c b/src/render/d3d11/render_d3d11.c index e2119eee..ca533e80 100644 --- a/src/render/d3d11/render_d3d11.c +++ b/src/render/d3d11/render_d3d11.c @@ -523,7 +523,7 @@ r_window_equip(OS_Handle handle) swapchain_desc.SampleDesc.Quality = 0; swapchain_desc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; swapchain_desc.BufferCount = 2; - swapchain_desc.Scaling = DXGI_SCALING_STRETCH; + swapchain_desc.Scaling = DXGI_SCALING_NONE; swapchain_desc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; swapchain_desc.AlphaMode = DXGI_ALPHA_MODE_UNSPECIFIED; swapchain_desc.Flags = 0; From b6eca01e2ace5cc5b3feced32219f2780940bc59 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sat, 21 Jun 2025 09:24:08 -0700 Subject: [PATCH 036/372] upgrade textual command -> cmd-regs-filling path, to use expression evaluation when possible, and to use fuzzy filtering over associated query lists when possible --- src/raddbg/generated/raddbg.meta.c | 60 ++++++++++- src/raddbg/generated/raddbg.meta.h | 9 +- src/raddbg/raddbg.mdesk | 10 +- src/raddbg/raddbg_core.c | 164 ++++++++++++++++++++++------- src/raddbg/raddbg_core.h | 2 +- src/raddbg/raddbg_eval.c | 1 + src/raddbg/raddbg_main.c | 18 +--- 7 files changed, 199 insertions(+), 65 deletions(-) diff --git a/src/raddbg/generated/raddbg.meta.c b/src/raddbg/generated/raddbg.meta.c index 78607454..223fb76b 100644 --- a/src/raddbg/generated/raddbg.meta.c +++ b/src/raddbg/generated/raddbg.meta.c @@ -60,7 +60,7 @@ str8_lit_comp(""), str8_lit_comp(""), }; -RD_VocabInfo rd_vocab_info_table[345] = +RD_VocabInfo rd_vocab_info_table[346] = { {str8_lit_comp("type_view"), str8_lit_comp("type_views"), str8_lit_comp("Type View"), str8_lit_comp("Type Views"), RD_IconKind_Binoculars}, {str8_lit_comp("file_path_map"), str8_lit_comp("file_path_maps"), str8_lit_comp("File Path Map"), str8_lit_comp("File Path Maps"), RD_IconKind_FileOutline}, @@ -205,6 +205,7 @@ RD_VocabInfo rd_vocab_info_table[345] = {str8_lit_comp("exit"), str8_lit_comp(""), str8_lit_comp("Exit"), str8_lit_comp(""), RD_IconKind_X}, {str8_lit_comp("open_palette"), str8_lit_comp(""), str8_lit_comp("Open Palette"), str8_lit_comp(""), RD_IconKind_List}, {str8_lit_comp("run_command"), str8_lit_comp(""), str8_lit_comp("Run Command"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("run_ext_driver_text_command"), str8_lit_comp(""), str8_lit_comp("Run External Driver Text Command"), str8_lit_comp(""), RD_IconKind_Null}, {str8_lit_comp("os_event"), str8_lit_comp(""), str8_lit_comp("OS Event"), str8_lit_comp(""), RD_IconKind_Null}, {str8_lit_comp("select_thread"), str8_lit_comp(""), str8_lit_comp("Select Thread"), str8_lit_comp(""), RD_IconKind_Thread}, {str8_lit_comp("select_unwind"), str8_lit_comp(""), str8_lit_comp("Select Unwind"), str8_lit_comp(""), RD_IconKind_Null}, @@ -437,7 +438,58 @@ RD_NameSchemaInfo rd_name_schema_info_table[24] = {str8_lit_comp("thread"), str8_lit_comp("x:{'label':code_string, 'id':u64, @no_expand 'active':bool, 'call_stack':query}")}, }; -Rng1U64 rd_reg_slot_range_table[48] = +String8 rd_reg_slot_code_name_table[47] = +{ +{0}, +str8_lit_comp("machine"), +str8_lit_comp("module"), +str8_lit_comp("process"), +str8_lit_comp("thread"), +str8_lit_comp("ctrl_entity"), +str8_lit_comp("window"), +str8_lit_comp("panel"), +str8_lit_comp("tab"), +str8_lit_comp("view"), +str8_lit_comp("prev_tab"), +str8_lit_comp("dst_panel"), +str8_lit_comp("cfg"), +str8_lit_comp("cfg_list"), +str8_lit_comp("eval_space"), +str8_lit_comp("unwind_count"), +str8_lit_comp("inline_depth"), +str8_lit_comp("file_path"), +str8_lit_comp("cursor"), +str8_lit_comp("mark"), +str8_lit_comp("text_key"), +str8_lit_comp("lang_kind"), +str8_lit_comp("lines"), +str8_lit_comp("dbgi_key"), +str8_lit_comp("vaddr"), +str8_lit_comp("voff"), +str8_lit_comp("vaddr_range"), +str8_lit_comp("voff_range"), +str8_lit_comp("expr"), +str8_lit_comp("ui_key"), +str8_lit_comp("src_ui_key"), +str8_lit_comp("off_px"), +str8_lit_comp("reg_slot"), +str8_lit_comp("pid"), +str8_lit_comp("force_confirm"), +str8_lit_comp("force_focus"), +str8_lit_comp("prefer_disasm"), +str8_lit_comp("no_rich_tooltip"), +str8_lit_comp("do_implicit_root"), +str8_lit_comp("do_lister"), +str8_lit_comp("do_big_rows"), +str8_lit_comp("all_windows"), +str8_lit_comp("non_graphical"), +str8_lit_comp("dir2"), +str8_lit_comp("string"), +str8_lit_comp("cmd_name"), +str8_lit_comp("os_event"), +}; + +Rng1U64 rd_reg_slot_range_table[47] = { {0}, {OffsetOf(RD_Regs, machine), OffsetOf(RD_Regs, machine) + sizeof(CTRL_Handle)}, @@ -485,11 +537,10 @@ Rng1U64 rd_reg_slot_range_table[48] = {OffsetOf(RD_Regs, dir2), OffsetOf(RD_Regs, dir2) + sizeof(Dir2)}, {OffsetOf(RD_Regs, string), OffsetOf(RD_Regs, string) + sizeof(String8)}, {OffsetOf(RD_Regs, cmd_name), OffsetOf(RD_Regs, cmd_name) + sizeof(String8)}, -{OffsetOf(RD_Regs, params_tree), OffsetOf(RD_Regs, params_tree) + sizeof(MD_Node *)}, {OffsetOf(RD_Regs, os_event), OffsetOf(RD_Regs, os_event) + sizeof(OS_Event *)}, }; -RD_CmdKindInfo rd_cmd_kind_info_table[238] = +RD_CmdKindInfo rd_cmd_kind_info_table[239] = { {0}, { str8_lit_comp("launch_and_run"), str8_lit_comp("Starts debugging a new instance of a target, then runs."), str8_lit_comp("launch,start,run,target"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, @@ -527,6 +578,7 @@ RD_CmdKindInfo rd_cmd_kind_info_table[238] = { str8_lit_comp("exit"), str8_lit_comp("Exits the debugger."), str8_lit_comp("quit,close,abort"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("open_palette"), str8_lit_comp("Opens the palette."), str8_lit_comp("help,cmd,lister"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("run_command"), str8_lit_comp("Runs a command from the command palette."), str8_lit_comp("help,cmd"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_CmdName, str8_lit_comp("query:commands"), str8_lit_comp("commands"), CTRL_EntityKind_Null}}, +{ str8_lit_comp("run_ext_driver_text_command"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("os_event"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("select_thread"), str8_lit_comp("Selects a thread."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Thread, str8_lit_comp("query:threads"), str8_lit_comp(""), CTRL_EntityKind_Thread}}, { str8_lit_comp("select_unwind"), str8_lit_comp("Selects an unwind frame number for the selected thread."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("query:call_stack"), str8_lit_comp(""), CTRL_EntityKind_Null}}, diff --git a/src/raddbg/generated/raddbg.meta.h b/src/raddbg/generated/raddbg.meta.h index 837729b0..ab93e4d1 100644 --- a/src/raddbg/generated/raddbg.meta.h +++ b/src/raddbg/generated/raddbg.meta.h @@ -54,7 +54,6 @@ RD_RegSlot_NonGraphical, RD_RegSlot_Dir2, RD_RegSlot_String, RD_RegSlot_CmdName, -RD_RegSlot_ParamsTree, RD_RegSlot_OSEvent, RD_RegSlot_COUNT, } RD_RegSlot; @@ -97,6 +96,7 @@ RD_CmdKind_Attach, RD_CmdKind_Exit, RD_CmdKind_OpenPalette, RD_CmdKind_RunCommand, +RD_CmdKind_RunExternalDriverTextCommand, RD_CmdKind_OSEvent, RD_CmdKind_SelectThread, RD_CmdKind_SelectUnwind, @@ -483,7 +483,6 @@ B32 non_graphical; Dir2 dir2; String8 string; String8 cmd_name; -MD_Node * params_tree; OS_Event * os_event; }; @@ -581,15 +580,15 @@ Z(getting_started)\ .dir2 = rd_regs()->dir2,\ .string = rd_regs()->string,\ .cmd_name = rd_regs()->cmd_name,\ -.params_tree = rd_regs()->params_tree,\ .os_event = rd_regs()->os_event,\ C_LINKAGE_BEGIN extern String8 rd_tab_fast_path_view_name_table[24]; extern String8 rd_tab_fast_path_query_name_table[24]; -extern RD_VocabInfo rd_vocab_info_table[345]; +extern RD_VocabInfo rd_vocab_info_table[346]; extern RD_NameSchemaInfo rd_name_schema_info_table[24]; -extern Rng1U64 rd_reg_slot_range_table[48]; +extern String8 rd_reg_slot_code_name_table[47]; +extern Rng1U64 rd_reg_slot_range_table[47]; extern String8 rd_binding_version_remap_old_name_table[8]; extern String8 rd_binding_version_remap_new_name_table[8]; extern String8 rd_icon_kind_text_table[75]; diff --git a/src/raddbg/raddbg.mdesk b/src/raddbg/raddbg.mdesk index d5fd675e..c5bf82d2 100644 --- a/src/raddbg/raddbg.mdesk +++ b/src/raddbg/raddbg.mdesk @@ -753,7 +753,6 @@ RD_RegTable: {Dir2 dir2 Dir2 } {String8 string String } {String8 cmd_name CmdName } - {`MD_Node *` params_tree ParamsTree } {`OS_Event *` os_event OSEvent } } @@ -769,6 +768,12 @@ RD_RegTable: @expand(RD_RegTable a) `$(a.c_type) $(a.name_lower)` } +@data(String8) rd_reg_slot_code_name_table: +{ + `{0}`, + @expand(RD_RegTable a) `str8_lit_comp("$(a.name_lower)")` +} + @data(Rng1U64) rd_reg_slot_range_table: { `{0}`, @@ -796,8 +801,9 @@ RD_CmdTable: // | | | | //- rjf: palette {OpenPalette 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 List "open_palette" "Open Palette" "Opens the palette." "help,cmd,lister" "" } - //- rjf: command runner + //- rjf: command runners {RunCommand 1 1 0 0 "query:commands" CmdName commands Nil Null 0 0 0 0 0 1 1 Null "run_command" "Run Command" "Runs a command from the command palette." "help,cmd" "" } + {RunExternalDriverTextCommand 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 1 1 Null "run_ext_driver_text_command" "Run External Driver Text Command" "" "" "" } //- rjf: os event passthrough {OSEvent 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "os_event" "OS Event" "" "" "" } diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 090b5e0e..90259dca 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -46,7 +46,6 @@ rd_regs_copy_contents(Arena *arena, RD_Regs *dst, RD_Regs *src) dst->expr = push_str8_copy(arena, src->expr); dst->string = push_str8_copy(arena, src->string); dst->cmd_name = push_str8_copy(arena, src->cmd_name); - dst->params_tree = md_tree_copy(arena, src->params_tree); if(dst->cfg_list.count == 0 && dst->cfg != 0) { rd_cfg_id_list_push(arena, &dst->cfg_list, dst->cfg); @@ -5518,7 +5517,7 @@ rd_view_ui(Rng2F32 rect) RD_CmdKindInfo *cmd_kind_info = rd_cmd_kind_info_from_string(cmd_name); RD_RegsScope() { - rd_regs_fill_slot_from_string(cmd_kind_info->query.slot, input); + rd_regs_fill_slot_from_string(cmd_kind_info->query.slot, str8_zero(), input); rd_cmd(RD_CmdKind_CompleteQuery); } } @@ -10591,12 +10590,15 @@ rd_pop_regs(void) } internal void -rd_regs_fill_slot_from_string(RD_RegSlot slot, String8 string) +rd_regs_fill_slot_from_string(RD_RegSlot slot, String8 query_expr, String8 string) { - String8 error = {0}; switch(slot) { + //- rjf: basic string cases default: + { + rd_regs()->string = push_str8_copy(rd_frame_arena(), string); + }break; case RD_RegSlot_String: case RD_RegSlot_FilePath: { @@ -10611,28 +10613,95 @@ rd_regs_fill_slot_from_string(RD_RegSlot slot, String8 string) rd_regs()->cursor = pair.pt; } }break; - case RD_RegSlot_Cfg: - if(str8_match(str8_prefix(string, 1), str8_lit("$"), 0)) - { - String8 numeric_part = str8_skip(string, 1); - RD_CfgID id = u64_from_str8(numeric_part, 16); - rd_regs()->cfg = id; - }break; case RD_RegSlot_Expr: { rd_regs()->expr = push_str8_copy(rd_frame_arena(), string); }break; + case RD_RegSlot_CmdName: + { + rd_regs()->cmd_name = push_str8_copy(rd_frame_arena(), string); + }break; + + //- rjf: ctrl entities + case RD_RegSlot_Machine: + case RD_RegSlot_Module: + case RD_RegSlot_Process: + case RD_RegSlot_Thread: + case RD_RegSlot_CtrlEntity: + { + + }break; + + //- rjf: cfgs + case RD_RegSlot_Cfg: + case RD_RegSlot_Window: + case RD_RegSlot_Panel: + case RD_RegSlot_Tab: + case RD_RegSlot_View: + case RD_RegSlot_PrevTab: + case RD_RegSlot_DstPanel: + { + B32 good = 0; + if(!good && str8_match(str8_prefix(string, 1), str8_lit("$"), 0)) + { + String8 numeric_part = str8_skip(string, 1); + RD_CfgID id = u64_from_str8(numeric_part, 16); + rd_regs()->cfg = id; + good = 1; + } + if(!good && query_expr.size != 0) + { + Temp scratch = scratch_begin(0, 0); + RD_Cfg *immediate = rd_immediate_cfg_from_keyf("###regs_fill_slot_view"); + RD_Cfg *view = rd_cfg_newf(immediate, "watch"); + rd_cfg_newf(view, "lister"); + RD_ViewState *vs = rd_view_state_from_cfg(view); + EV_View *eval_view = vs->ev_view; + { + ev_key_set_expansion(eval_view, ev_key_root(), ev_key_make(ev_hash_from_key(ev_key_root()), 1), 1); + E_Eval eval = e_eval_from_string(query_expr); + EV_BlockTree block_tree = {0}; + EV_BlockRangeList block_ranges = {0}; + // TODO(rjf): @cleanup we only need to do this because we implicitly use + // view info in the block tree build via raddbg-layer eval hooks, but we + // should really keep all parameterization info in eval views themselves, + // to not couple block tree building with frontend state... + RD_RegsScope(.window = 0, .panel = 0, .view = view->id) + { + block_tree = ev_block_tree_from_eval(scratch.arena, eval_view, string, eval); + block_ranges = ev_block_range_list_from_tree(scratch.arena, &block_tree); + if(block_ranges.first != 0) + { + block_ranges.count -= 1; + block_ranges.first = block_ranges.first->next; + } + } + EV_Row *row = ev_row_from_num(scratch.arena, eval_view, &block_ranges, 1); + rd_regs()->cfg = rd_cfg_from_eval_space(row->eval.space)->id; + good = (rd_regs()->cfg != 0); + } + scratch_end(scratch); + } + if(!good) + { + E_Eval eval = e_eval_from_string(string); + rd_regs()->cfg = rd_cfg_from_eval_space(eval.space)->id; + good = (rd_regs()->cfg != 0); + } + }break; + + //- rjf: line numbers case RD_RegSlot_Cursor: { - U64 v = 0; - if(try_u64_from_str8_c_rules(string, &v)) + E_Eval eval = e_value_eval_from_eval(e_eval_from_string(string)); + if(eval.msgs.max_kind == E_MsgKind_Null) { rd_regs()->cursor.column = 1; - rd_regs()->cursor.line = v; + rd_regs()->cursor.line = (S64)eval.value.u64; } else { - log_user_error(str8_lit("Couldn't interpret as a line number.")); + log_user_errorf("Couldn't interpret \"`%S`\" as a line number.", string); } }break; case RD_RegSlot_Vaddr: goto use_numeric_eval; @@ -10653,30 +10722,7 @@ rd_regs_fill_slot_from_string(RD_RegSlot slot, String8 string) eval = e_value_eval_from_eval(eval); } U64 u64 = eval.value.u64; - switch(slot) - { - default:{}break; - case RD_RegSlot_Vaddr: - { - rd_regs()->vaddr = u64; - }break; - case RD_RegSlot_Voff: - { - rd_regs()->voff = u64; - }break; - case RD_RegSlot_UnwindCount: - { - rd_regs()->unwind_count = u64; - }break; - case RD_RegSlot_InlineDepth: - { - rd_regs()->inline_depth = u64; - }break; - case RD_RegSlot_PID: - { - rd_regs()->pid = u64; - }break; - } + MemoryCopy((U8 *)(rd_regs()) + rd_reg_slot_range_table[slot].min, &u64, dim_1u64(rd_reg_slot_range_table[slot])); } else { @@ -12721,6 +12767,46 @@ rd_frame(void) } }break; + //- rjf: external driver textual commands + case RD_CmdKind_RunExternalDriverTextCommand: + { + String8 msg = rd_regs()->string; + String8List msg_parts = str8_split(scratch.arena, msg, (U8 *)" ", 1, 0); + CmdLine msg_cmd_line = cmd_line_from_string_list(scratch.arena, msg_parts); + String8 cmd_kind_name = str8_list_first(&msg_cmd_line.inputs); + RD_CmdKindInfo *cmd_kind_info = rd_cmd_kind_info_from_string(cmd_kind_name); + if(cmd_kind_info != &rd_nil_cmd_kind_info) RD_RegsScope() + { + for EachNonZeroEnumVal(RD_RegSlot, s) + { + String8 reg_slot_name = rd_reg_slot_code_name_table[s]; + String8 value = cmd_line_string(&msg_cmd_line, reg_slot_name); + if(value.size != 0) + { + rd_regs_fill_slot_from_string(s, cmd_kind_info->query.expr, value); + } + } + String8 primary_args_string = {0}; + if(msg_cmd_line.inputs.first != 0) + { + String8List primary_args_strings = {0}; + for(String8Node *n = msg_cmd_line.inputs.first->next; n != 0; n = n->next) + { + str8_list_push(scratch.arena, &primary_args_strings, n->string); + } + primary_args_string = str8_list_join(scratch.arena, &primary_args_strings, &(StringJoin){.sep = str8_lit(" ")}); + } + rd_regs_fill_slot_from_string(cmd_kind_info->query.slot, cmd_kind_info->query.expr, primary_args_string); + rd_push_cmd(cmd_kind_name, rd_regs()); + rd_request_frame(); + } + else + { + log_user_errorf("`%S` is not a command.", cmd_kind_name); + rd_request_frame(); + } + }break; + //- rjf: exiting case RD_CmdKind_Exit: { diff --git a/src/raddbg/raddbg_core.h b/src/raddbg/raddbg_core.h index d558f57a..1555917f 100644 --- a/src/raddbg/raddbg_core.h +++ b/src/raddbg/raddbg_core.h @@ -1028,7 +1028,7 @@ internal RD_Regs *rd_push_regs_(RD_Regs *regs); #define rd_push_regs(...) rd_push_regs_(&(RD_Regs){rd_regs_lit_init_top __VA_ARGS__}) internal RD_Regs *rd_pop_regs(void); #define RD_RegsScope(...) DeferLoop(rd_push_regs(__VA_ARGS__), rd_pop_regs()) -internal void rd_regs_fill_slot_from_string(RD_RegSlot slot, String8 string); +internal void rd_regs_fill_slot_from_string(RD_RegSlot slot, String8 query_expr, String8 string); //////////////////////////////// //~ rjf: Commands diff --git a/src/raddbg/raddbg_eval.c b/src/raddbg/raddbg_eval.c index a1be1801..10adf0f8 100644 --- a/src/raddbg/raddbg_eval.c +++ b/src/raddbg/raddbg_eval.c @@ -795,6 +795,7 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(cfgs_slice) } //- rjf: fill + // TODO(rjf): @cleanup don't smuggle this through like this... if(rd_cfg_child_from_string(rd_cfg_from_id(rd_regs()->view), str8_lit("lister")) == &rd_nil_cfg) { accel->cmds = ext->cmds; diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index aac84d3b..0f7385c3 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -645,11 +645,7 @@ entry_point(CmdLine *cmd_line) if(dst_ws != &rd_nil_window_state) { dst_ws->window_temporarily_focused_ipc = 1; - U64 first_space_pos = str8_find_needle(msg, 0, str8_lit(" "), 0); - String8 cmd_kind_name_string = str8_prefix(msg, first_space_pos); - String8 cmd_args_string = str8_skip_chop_whitespace(str8_skip(msg, first_space_pos)); - RD_CmdKindInfo *cmd_kind_info = rd_cmd_kind_info_from_string(cmd_kind_name_string); - if(cmd_kind_info != &rd_nil_cmd_kind_info) RD_RegsScope() + RD_RegsScope() { if(dst_ws->cfg_id != rd_regs()->window) { @@ -661,14 +657,7 @@ entry_point(CmdLine *cmd_line) rd_regs()->view = panel_tree.focused->selected_tab->id; scratch_end(scratch); } - rd_regs_fill_slot_from_string(cmd_kind_info->query.slot, cmd_args_string); - rd_push_cmd(cmd_kind_name_string, rd_regs()); - rd_request_frame(); - } - else - { - log_user_errorf("\"%S\" is not a command.", cmd_kind_name_string); - rd_request_frame(); + rd_cmd(RD_CmdKind_RunExternalDriverTextCommand, .string = msg); } } } @@ -782,8 +771,9 @@ entry_point(CmdLine *cmd_line) IPCInfo *ipc_info = (IPCInfo *)ipc_sender2main_shared_memory_base; U8 *buffer = (U8 *)(ipc_info+1); U64 buffer_max = IPC_SHARED_MEMORY_BUFFER_SIZE - sizeof(IPCInfo); + String8List parts = os_string_list_from_argcv(scratch.arena, cmd_line->argc - 1, cmd_line->argv + 1); StringJoin join = {str8_lit(""), str8_lit(" "), str8_lit("")}; - String8 msg = str8_list_join(scratch.arena, &cmd_line->inputs, &join); + String8 msg = str8_list_join(scratch.arena, &parts, &join); ipc_info->msg_size = Min(buffer_max, msg.size); MemoryCopy(buffer, msg.str, ipc_info->msg_size); os_semaphore_drop(ipc_sender2main_signal_semaphore); From 2595427189ed5ee1c403c8613cbb2777e0eb8bf0 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sat, 21 Jun 2025 09:57:25 -0700 Subject: [PATCH 037/372] request frames on all ipc receives --- src/raddbg/raddbg_core.c | 2 -- src/raddbg/raddbg_main.c | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 90259dca..d4ca95f4 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -12798,12 +12798,10 @@ rd_frame(void) } rd_regs_fill_slot_from_string(cmd_kind_info->query.slot, cmd_kind_info->query.expr, primary_args_string); rd_push_cmd(cmd_kind_name, rd_regs()); - rd_request_frame(); } else { log_user_errorf("`%S` is not a command.", cmd_kind_name); - rd_request_frame(); } }break; diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index 0f7385c3..d5781081 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -658,6 +658,7 @@ entry_point(CmdLine *cmd_line) scratch_end(scratch); } rd_cmd(RD_CmdKind_RunExternalDriverTextCommand, .string = msg); + rd_request_frame(); } } } From 6dbc275129538e814f3a6ed6eae13d45c20c0a91 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sat, 21 Jun 2025 11:22:05 -0700 Subject: [PATCH 038/372] command coverage for target/bp modifications; allow full path matches when fuzzy searching through cfgs --- src/raddbg/generated/raddbg.meta.c | 8 ++++++-- src/raddbg/generated/raddbg.meta.h | 4 +++- src/raddbg/raddbg.mdesk | 2 ++ src/raddbg/raddbg_core.c | 8 +++++--- src/raddbg/raddbg_eval.c | 4 ++-- src/raddbg/raddbg_views.c | 2 +- src/raddbg/raddbg_widgets.c | 9 +++++++-- src/raddbg/raddbg_widgets.h | 2 +- 8 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/raddbg/generated/raddbg.meta.c b/src/raddbg/generated/raddbg.meta.c index 223fb76b..1af489d6 100644 --- a/src/raddbg/generated/raddbg.meta.c +++ b/src/raddbg/generated/raddbg.meta.c @@ -60,7 +60,7 @@ str8_lit_comp(""), str8_lit_comp(""), }; -RD_VocabInfo rd_vocab_info_table[346] = +RD_VocabInfo rd_vocab_info_table[348] = { {str8_lit_comp("type_view"), str8_lit_comp("type_views"), str8_lit_comp("Type View"), str8_lit_comp("Type Views"), RD_IconKind_Binoculars}, {str8_lit_comp("file_path_map"), str8_lit_comp("file_path_maps"), str8_lit_comp("File Path Map"), str8_lit_comp("File Path Maps"), RD_IconKind_FileOutline}, @@ -353,6 +353,7 @@ RD_VocabInfo rd_vocab_info_table[346] = {str8_lit_comp("add_address_breakpoint"), str8_lit_comp(""), str8_lit_comp("Add Address Breakpoint"), str8_lit_comp(""), RD_IconKind_CircleFilled}, {str8_lit_comp("add_function_breakpoint"), str8_lit_comp(""), str8_lit_comp("Add Function Breakpoint"), str8_lit_comp(""), RD_IconKind_CircleFilled}, {str8_lit_comp("toggle_breakpoint"), str8_lit_comp(""), str8_lit_comp("Toggle Line Breakpoint"), str8_lit_comp(""), RD_IconKind_CircleFilled}, +{str8_lit_comp("remove_breakpoint"), str8_lit_comp(""), str8_lit_comp("Remove Breakpoint"), str8_lit_comp(""), RD_IconKind_Trash}, {str8_lit_comp("enable_breakpoint"), str8_lit_comp(""), str8_lit_comp("Enable Breakpoint"), str8_lit_comp(""), RD_IconKind_CheckFilled}, {str8_lit_comp("disable_breakpoint"), str8_lit_comp(""), str8_lit_comp("Disable Breakpoint"), str8_lit_comp(""), RD_IconKind_CheckHollow}, {str8_lit_comp("clear_breakpoints"), str8_lit_comp(""), str8_lit_comp("Clear Breakpoints"), str8_lit_comp(""), RD_IconKind_Trash}, @@ -371,6 +372,7 @@ RD_VocabInfo rd_vocab_info_table[346] = {str8_lit_comp("select_target"), str8_lit_comp(""), str8_lit_comp("Select Target"), str8_lit_comp(""), RD_IconKind_Target}, {str8_lit_comp("enable_target"), str8_lit_comp(""), str8_lit_comp("Enable Target"), str8_lit_comp(""), RD_IconKind_CheckFilled}, {str8_lit_comp("disable_target"), str8_lit_comp(""), str8_lit_comp("Disable Target"), str8_lit_comp(""), RD_IconKind_CheckHollow}, +{str8_lit_comp("remove_target"), str8_lit_comp(""), str8_lit_comp("Remove Target"), str8_lit_comp(""), RD_IconKind_Trash}, {str8_lit_comp("register_as_jit_debugger"), str8_lit_comp(""), str8_lit_comp("Register As Just-In-Time (JIT) Debugger"), str8_lit_comp(""), RD_IconKind_Null}, {str8_lit_comp("find_code_location"), str8_lit_comp(""), str8_lit_comp("Find Code Location"), str8_lit_comp(""), RD_IconKind_FileOutline}, {str8_lit_comp("search"), str8_lit_comp(""), str8_lit_comp("Search"), str8_lit_comp(""), RD_IconKind_Find}, @@ -540,7 +542,7 @@ Rng1U64 rd_reg_slot_range_table[47] = {OffsetOf(RD_Regs, os_event), OffsetOf(RD_Regs, os_event) + sizeof(OS_Event *)}, }; -RD_CmdKindInfo rd_cmd_kind_info_table[239] = +RD_CmdKindInfo rd_cmd_kind_info_table[241] = { {0}, { str8_lit_comp("launch_and_run"), str8_lit_comp("Starts debugging a new instance of a target, then runs."), str8_lit_comp("launch,start,run,target"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, @@ -726,6 +728,7 @@ RD_CmdKindInfo rd_cmd_kind_info_table[239] = { str8_lit_comp("add_address_breakpoint"), str8_lit_comp("Places a breakpoint on the specified address."), str8_lit_comp(""), str8_lit_comp("$breakpoints,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Expr, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("add_function_breakpoint"), str8_lit_comp("Places a breakpoint on the first address of the specified function."), str8_lit_comp(""), str8_lit_comp("$breakpoints,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_String, str8_lit_comp("query:procedures"), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("toggle_breakpoint"), str8_lit_comp("Places or removes a breakpoint at a given location (file path and line number, address, or symbol name)."), str8_lit_comp(""), str8_lit_comp("$text_pt,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*1)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, +{ str8_lit_comp("remove_breakpoint"), str8_lit_comp("Removes an existing breakpoint."), str8_lit_comp("delete"), str8_lit_comp("$breakpoints,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:breakpoints"), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("enable_breakpoint"), str8_lit_comp("Enables a breakpoint."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:breakpoints"), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("disable_breakpoint"), str8_lit_comp("Disables a breakpoint."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:breakpoints"), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("clear_breakpoints"), str8_lit_comp("Removes all breakpoints."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, @@ -744,6 +747,7 @@ RD_CmdKindInfo rd_cmd_kind_info_table[239] = { str8_lit_comp("select_target"), str8_lit_comp("Selects a target."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("enable_target"), str8_lit_comp("Enables a target, in addition to all targets currently enabled."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("disable_target"), str8_lit_comp("Disables a target."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, +{ str8_lit_comp("remove_target"), str8_lit_comp("Removes a target."), str8_lit_comp("delete"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("register_as_jit_debugger"), str8_lit_comp("Registers the RAD debugger as the just-in-time (JIT) debugger used by the operating system."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("find_code_location"), str8_lit_comp("Finds a specific source code location given file, line, and column coordinates. Opens the file if necessary."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("search"), str8_lit_comp("Begins searching within the active interface."), str8_lit_comp("sort,search,filter,find"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*1)|(RD_QueryFlag_SelectOldInput*1)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*1), RD_RegSlot_String, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, diff --git a/src/raddbg/generated/raddbg.meta.h b/src/raddbg/generated/raddbg.meta.h index ab93e4d1..51fc6b6f 100644 --- a/src/raddbg/generated/raddbg.meta.h +++ b/src/raddbg/generated/raddbg.meta.h @@ -244,6 +244,7 @@ RD_CmdKind_AddBreakpoint, RD_CmdKind_AddAddressBreakpoint, RD_CmdKind_AddFunctionBreakpoint, RD_CmdKind_ToggleBreakpoint, +RD_CmdKind_RemoveBreakpoint, RD_CmdKind_EnableBreakpoint, RD_CmdKind_DisableBreakpoint, RD_CmdKind_ClearBreakpoints, @@ -262,6 +263,7 @@ RD_CmdKind_AddTarget, RD_CmdKind_SelectTarget, RD_CmdKind_EnableTarget, RD_CmdKind_DisableTarget, +RD_CmdKind_RemoveTarget, RD_CmdKind_RegisterAsJITDebugger, RD_CmdKind_FindCodeLocation, RD_CmdKind_Search, @@ -585,7 +587,7 @@ Z(getting_started)\ C_LINKAGE_BEGIN extern String8 rd_tab_fast_path_view_name_table[24]; extern String8 rd_tab_fast_path_query_name_table[24]; -extern RD_VocabInfo rd_vocab_info_table[346]; +extern RD_VocabInfo rd_vocab_info_table[348]; extern RD_NameSchemaInfo rd_name_schema_info_table[24]; extern String8 rd_reg_slot_code_name_table[47]; extern Rng1U64 rd_reg_slot_range_table[47]; diff --git a/src/raddbg/raddbg.mdesk b/src/raddbg/raddbg.mdesk index c5bf82d2..fcd29be3 100644 --- a/src/raddbg/raddbg.mdesk +++ b/src/raddbg/raddbg.mdesk @@ -1007,6 +1007,7 @@ RD_CmdTable: // | | | | {AddAddressBreakpoint 1 0 0 0 "" Expr null Nil Null 0 0 0 0 1 1 1 CircleFilled "add_address_breakpoint" "Add Address Breakpoint" "Places a breakpoint on the specified address." "" "$breakpoints," } {AddFunctionBreakpoint 1 0 0 0 "query:procedures" String null Nil Null 0 0 0 0 1 1 1 CircleFilled "add_function_breakpoint" "Add Function Breakpoint" "Places a breakpoint on the first address of the specified function." "" "$breakpoints," } {ToggleBreakpoint 1 1 1 0 "" Null null Nil Null 0 0 0 0 0 0 0 CircleFilled "toggle_breakpoint" "Toggle Line Breakpoint" "Places or removes a breakpoint at a given location (file path and line number, address, or symbol name)." "" "$text_pt," } + {RemoveBreakpoint 1 0 0 0 "query:breakpoints" Cfg null Nil Null 0 0 0 0 1 1 1 Trash "remove_breakpoint" "Remove Breakpoint" "Removes an existing breakpoint." "delete" "$breakpoints," } {EnableBreakpoint 1 1 0 0 "query:breakpoints" Cfg null Breakpoint Null 0 0 0 0 1 1 1 CheckFilled "enable_breakpoint" "Enable Breakpoint" "Enables a breakpoint." "" "" } {DisableBreakpoint 1 1 0 0 "query:breakpoints" Cfg null Breakpoint Null 0 0 0 0 1 1 1 CheckHollow "disable_breakpoint" "Disable Breakpoint" "Disables a breakpoint." "" "" } {ClearBreakpoints 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Trash "clear_breakpoints" "Clear Breakpoints" "Removes all breakpoints." "" "" } @@ -1037,6 +1038,7 @@ RD_CmdTable: // | | | | {SelectTarget 1 1 0 0 "query:targets" Cfg null Target Null 0 0 0 0 0 1 1 Target "select_target" "Select Target" "Selects a target." "" "" } {EnableTarget 1 1 0 0 "query:targets" Cfg null Target Null 0 0 0 0 0 1 1 CheckFilled "enable_target" "Enable Target" "Enables a target, in addition to all targets currently enabled." "" "" } {DisableTarget 1 1 0 0 "query:targets" Cfg null Target Null 0 0 0 0 0 1 1 CheckHollow "disable_target" "Disable Target" "Disables a target." "" "" } + {RemoveTarget 1 1 0 0 "query:targets" Cfg null Target Null 0 0 0 0 0 1 1 Trash "remove_target" "Remove Target" "Removes a target." "delete" "" } //- rjf: attaching {RegisterAsJITDebugger 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "register_as_jit_debugger" "Register As Just-In-Time (JIT) Debugger" "Registers the RAD debugger as the just-in-time (JIT) debugger used by the operating system." "" "" } diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index d4ca95f4..1a8059b6 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -6366,7 +6366,7 @@ rd_window_frame(void) { // rjf: unpack RD_Cfg *cfg = rd_cfg_from_id(regs->cfg); - DR_FStrList fstrs = rd_title_fstrs_from_cfg(scratch.arena, cfg); + DR_FStrList fstrs = rd_title_fstrs_from_cfg(scratch.arena, cfg, 0); // rjf: title UI_PrefWidth(ui_children_sum(1)) UI_Row UI_PrefWidth(ui_text_dim(5, 1)) @@ -6534,7 +6534,7 @@ rd_window_frame(void) { UI_Row UI_PrefWidth(ui_text_dim(10, 1)) { - DR_FStrList fstrs = rd_title_fstrs_from_cfg(scratch.arena, view); + DR_FStrList fstrs = rd_title_fstrs_from_cfg(scratch.arena, view, 0); UI_Box *name_box = ui_build_box_from_key(UI_BoxFlag_DrawText, ui_key_zero()); ui_box_equip_display_fstrs(name_box, &fstrs); } @@ -8956,7 +8956,7 @@ rd_window_frame(void) { TabTask *t = push_array(scratch.arena, TabTask, 1); t->tab = tab; - t->fstrs = rd_title_fstrs_from_cfg(scratch.arena, tab); + t->fstrs = rd_title_fstrs_from_cfg(scratch.arena, tab, 0); F32 tab_width_target = dr_dim_from_fstrs(ui_top_tab_size(), &t->fstrs).x + tab_close_width_px + ui_top_font_size()*1.f; tab_width_target = Min(max_tab_width_px, tab_width_target); t->tab_width = floor_f32(ui_anim(ui_key_from_stringf(ui_key_zero(), "tab_width_%p", tab), tab_width_target, .initial = reset ? tab_width_target : 0, .rate = rd_state->menu_animation_rate)); @@ -15500,6 +15500,8 @@ rd_frame(void) rd_cfg_new_replacef(enabled_root, "0"); }break; case RD_CmdKind_RemoveCfg: + case RD_CmdKind_RemoveBreakpoint: + case RD_CmdKind_RemoveTarget: { RD_Cfg *cfg = rd_cfg_from_id(rd_regs()->cfg); rd_cfg_release(cfg); diff --git a/src/raddbg/raddbg_eval.c b/src/raddbg/raddbg_eval.c index 10adf0f8..e548ed48 100644 --- a/src/raddbg/raddbg_eval.c +++ b/src/raddbg/raddbg_eval.c @@ -783,7 +783,7 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(cfgs_slice) for EachIndex(idx, ext->cfgs.count) { RD_Cfg *cfg = ext->cfgs.v[idx]; - DR_FStrList fstrs = rd_title_fstrs_from_cfg(scratch.arena, cfg); + DR_FStrList fstrs = rd_title_fstrs_from_cfg(scratch.arena, cfg, 1); String8 string = dr_string_from_fstrs(scratch.arena, &fstrs); FuzzyMatchRangeList fuzzy_matches = fuzzy_match_find(scratch.arena, filter, string); if(fuzzy_matches.count == fuzzy_matches.needle_part_count) @@ -839,7 +839,7 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(cfgs_query) MemoryZeroStruct(&children__filtered); for(RD_CfgNode *n = children.first; n != 0; n = n->next) { - DR_FStrList cfg_fstrs = rd_title_fstrs_from_cfg(scratch.arena, n->v); + DR_FStrList cfg_fstrs = rd_title_fstrs_from_cfg(scratch.arena, n->v, 1); String8 cfg_string = dr_string_from_fstrs(scratch.arena, &cfg_fstrs); FuzzyMatchRangeList ranges = fuzzy_match_find(scratch.arena, filter, cfg_string); if(ranges.count == ranges.needle_part_count) diff --git a/src/raddbg/raddbg_views.c b/src/raddbg/raddbg_views.c index 9bb8f6d7..53ab8126 100644 --- a/src/raddbg/raddbg_views.c +++ b/src/raddbg/raddbg_views.c @@ -1642,7 +1642,7 @@ rd_info_from_watch_row_cell(Arena *arena, EV_Row *row, EV_StringFlags string_fla //- rjf: cfg evaluation -> button for cfg else if(result.cfg != &rd_nil_cfg) { - result.expr_fstrs = rd_title_fstrs_from_cfg(arena, result.cfg); + result.expr_fstrs = rd_title_fstrs_from_cfg(arena, result.cfg, 0); result.flags |= RD_WatchCellFlag_Button; } diff --git a/src/raddbg/raddbg_widgets.c b/src/raddbg/raddbg_widgets.c index b55cc3c9..65bc1aa3 100644 --- a/src/raddbg/raddbg_widgets.c +++ b/src/raddbg/raddbg_widgets.c @@ -5,7 +5,7 @@ //~ rjf: UI Widgets: Fancy Title Strings internal DR_FStrList -rd_title_fstrs_from_cfg(Arena *arena, RD_Cfg *cfg) +rd_title_fstrs_from_cfg(Arena *arena, RD_Cfg *cfg, B32 include_extras) { DR_FStrList result = {0}; { @@ -288,7 +288,12 @@ rd_title_fstrs_from_cfg(Arena *arena, RD_Cfg *cfg) //- rjf: push text location if(loc.file_path.size != 0) { - String8 location_string = push_str8f(arena, "%S:%I64d:%I64d", str8_skip_last_slash(loc.file_path), loc.pt.line, loc.pt.column); + String8 path = loc.file_path; + if(!include_extras) + { + path = str8_skip_last_slash(loc.file_path); + } + String8 location_string = push_str8f(arena, "%S:%I64d:%I64d", path, loc.pt.line, loc.pt.column); dr_fstrs_push_new(arena, &result, ¶ms, location_string); dr_fstrs_push_new(arena, &result, ¶ms, str8_lit(" ")); start_secondary(); diff --git a/src/raddbg/raddbg_widgets.h b/src/raddbg/raddbg_widgets.h index 5556ae64..54d638c8 100644 --- a/src/raddbg/raddbg_widgets.h +++ b/src/raddbg/raddbg_widgets.h @@ -135,7 +135,7 @@ struct RD_CodeSliceSignal //////////////////////////////// //~ rjf: UI Widgets: Fancy Title Strings -internal DR_FStrList rd_title_fstrs_from_cfg(Arena *arena, RD_Cfg *cfg); +internal DR_FStrList rd_title_fstrs_from_cfg(Arena *arena, RD_Cfg *cfg, B32 include_extras); internal DR_FStrList rd_title_fstrs_from_ctrl_entity(Arena *arena, CTRL_Entity *entity, B32 include_extras); internal DR_FStrList rd_title_fstrs_from_code_name(Arena *arena, String8 code_name); internal DR_FStrList rd_title_fstrs_from_file_path(Arena *arena, String8 file_path); From 185056a5cddd270b5ba2fe4faf1d1c88776cf4dc Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sat, 21 Jun 2025 12:10:07 -0700 Subject: [PATCH 039/372] breakpoint list command --- src/raddbg/generated/raddbg.meta.c | 6 ++++-- src/raddbg/generated/raddbg.meta.h | 3 ++- src/raddbg/raddbg.mdesk | 1 + src/raddbg/raddbg_core.c | 19 +++++++++++-------- src/raddbg/raddbg_main.c | 3 ++- 5 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/raddbg/generated/raddbg.meta.c b/src/raddbg/generated/raddbg.meta.c index 1af489d6..2d387a5d 100644 --- a/src/raddbg/generated/raddbg.meta.c +++ b/src/raddbg/generated/raddbg.meta.c @@ -60,7 +60,7 @@ str8_lit_comp(""), str8_lit_comp(""), }; -RD_VocabInfo rd_vocab_info_table[348] = +RD_VocabInfo rd_vocab_info_table[349] = { {str8_lit_comp("type_view"), str8_lit_comp("type_views"), str8_lit_comp("Type View"), str8_lit_comp("Type Views"), RD_IconKind_Binoculars}, {str8_lit_comp("file_path_map"), str8_lit_comp("file_path_maps"), str8_lit_comp("File Path Map"), str8_lit_comp("File Path Maps"), RD_IconKind_FileOutline}, @@ -357,6 +357,7 @@ RD_VocabInfo rd_vocab_info_table[348] = {str8_lit_comp("enable_breakpoint"), str8_lit_comp(""), str8_lit_comp("Enable Breakpoint"), str8_lit_comp(""), RD_IconKind_CheckFilled}, {str8_lit_comp("disable_breakpoint"), str8_lit_comp(""), str8_lit_comp("Disable Breakpoint"), str8_lit_comp(""), RD_IconKind_CheckHollow}, {str8_lit_comp("clear_breakpoints"), str8_lit_comp(""), str8_lit_comp("Clear Breakpoints"), str8_lit_comp(""), RD_IconKind_Trash}, +{str8_lit_comp("list_breakpoints"), str8_lit_comp(""), str8_lit_comp("List Breakpoints"), str8_lit_comp(""), RD_IconKind_Null}, {str8_lit_comp("add_watch_pin"), str8_lit_comp(""), str8_lit_comp("Add Watch Pin"), str8_lit_comp(""), RD_IconKind_Pin}, {str8_lit_comp("toggle_watch_pin"), str8_lit_comp(""), str8_lit_comp("Toggle Watch Pin"), str8_lit_comp(""), RD_IconKind_Pin}, {str8_lit_comp("add_type_view"), str8_lit_comp(""), str8_lit_comp("Add Type View"), str8_lit_comp(""), RD_IconKind_Binoculars}, @@ -542,7 +543,7 @@ Rng1U64 rd_reg_slot_range_table[47] = {OffsetOf(RD_Regs, os_event), OffsetOf(RD_Regs, os_event) + sizeof(OS_Event *)}, }; -RD_CmdKindInfo rd_cmd_kind_info_table[241] = +RD_CmdKindInfo rd_cmd_kind_info_table[242] = { {0}, { str8_lit_comp("launch_and_run"), str8_lit_comp("Starts debugging a new instance of a target, then runs."), str8_lit_comp("launch,start,run,target"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, @@ -732,6 +733,7 @@ RD_CmdKindInfo rd_cmd_kind_info_table[241] = { str8_lit_comp("enable_breakpoint"), str8_lit_comp("Enables a breakpoint."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:breakpoints"), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("disable_breakpoint"), str8_lit_comp("Disables a breakpoint."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:breakpoints"), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("clear_breakpoints"), str8_lit_comp("Removes all breakpoints."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, +{ str8_lit_comp("list_breakpoints"), str8_lit_comp("Lists all breakpoints."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("add_watch_pin"), str8_lit_comp("Places a watch pin at a given location (file path and line number or address)."), str8_lit_comp(""), str8_lit_comp("$watch_pins,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Expr, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("toggle_watch_pin"), str8_lit_comp("Places or removes a watch pin at a given location (file path and line number or address)."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Expr, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("add_type_view"), str8_lit_comp("Adds a new type view."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_String, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, diff --git a/src/raddbg/generated/raddbg.meta.h b/src/raddbg/generated/raddbg.meta.h index 51fc6b6f..9fab341a 100644 --- a/src/raddbg/generated/raddbg.meta.h +++ b/src/raddbg/generated/raddbg.meta.h @@ -248,6 +248,7 @@ RD_CmdKind_RemoveBreakpoint, RD_CmdKind_EnableBreakpoint, RD_CmdKind_DisableBreakpoint, RD_CmdKind_ClearBreakpoints, +RD_CmdKind_ListBreakpoints, RD_CmdKind_AddWatchPin, RD_CmdKind_ToggleWatchPin, RD_CmdKind_AddTypeView, @@ -587,7 +588,7 @@ Z(getting_started)\ C_LINKAGE_BEGIN extern String8 rd_tab_fast_path_view_name_table[24]; extern String8 rd_tab_fast_path_query_name_table[24]; -extern RD_VocabInfo rd_vocab_info_table[348]; +extern RD_VocabInfo rd_vocab_info_table[349]; extern RD_NameSchemaInfo rd_name_schema_info_table[24]; extern String8 rd_reg_slot_code_name_table[47]; extern Rng1U64 rd_reg_slot_range_table[47]; diff --git a/src/raddbg/raddbg.mdesk b/src/raddbg/raddbg.mdesk index fcd29be3..6d2d6ce3 100644 --- a/src/raddbg/raddbg.mdesk +++ b/src/raddbg/raddbg.mdesk @@ -1011,6 +1011,7 @@ RD_CmdTable: // | | | | {EnableBreakpoint 1 1 0 0 "query:breakpoints" Cfg null Breakpoint Null 0 0 0 0 1 1 1 CheckFilled "enable_breakpoint" "Enable Breakpoint" "Enables a breakpoint." "" "" } {DisableBreakpoint 1 1 0 0 "query:breakpoints" Cfg null Breakpoint Null 0 0 0 0 1 1 1 CheckHollow "disable_breakpoint" "Disable Breakpoint" "Disables a breakpoint." "" "" } {ClearBreakpoints 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Trash "clear_breakpoints" "Clear Breakpoints" "Removes all breakpoints." "" "" } + {ListBreakpoints 0 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "list_breakpoints" "List Breakpoints" "Lists all breakpoints." "" "" } //- rjf: watch pins {AddWatchPin 1 1 0 0 "" Expr null Nil Null 0 0 0 0 1 1 1 Pin "add_watch_pin" "Add Watch Pin" "Places a watch pin at a given location (file path and line number or address)." "" "$watch_pins," } diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 1a8059b6..08276030 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -10596,18 +10596,12 @@ rd_regs_fill_slot_from_string(RD_RegSlot slot, String8 query_expr, String8 strin { //- rjf: basic string cases default: - { - rd_regs()->string = push_str8_copy(rd_frame_arena(), string); - }break; case RD_RegSlot_String: case RD_RegSlot_FilePath: { String8TxtPtPair pair = str8_txt_pt_pair_from_string(string); - if(pair.pt.line == 0 || slot == RD_RegSlot_String) - { - rd_regs()->string = push_str8_copy(rd_frame_arena(), string); - } - else + rd_regs()->string = push_str8_copy(rd_frame_arena(), string); + if(pair.pt.line != 0) { rd_regs()->file_path = push_str8_copy(rd_frame_arena(), pair.string); rd_regs()->cursor = pair.pt; @@ -15642,6 +15636,15 @@ rd_frame(void) rd_cfg_release(n->v); } }break; + case RD_CmdKind_ListBreakpoints: + { + RD_CfgList list = rd_cfg_top_level_list_from_string(scratch.arena, str8_lit("breakpoint")); + for(RD_CfgNode *n = list.first; n != 0; n = n->next) + { + String8 string = rd_string_from_cfg_tree(rd_state->cmd_output_arena, str8_zero(), n->v); + str8_list_push(rd_state->cmd_output_arena, &rd_state->cmd_outputs, string); + } + }break; //- rjf: watch pins case RD_CmdKind_AddWatchPin: diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index d5781081..91b5943f 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -765,7 +765,8 @@ entry_point(CmdLine *cmd_line) //- rjf: got resources -> write message B32 wrote_message = 0; - if(ipc_sender2main_shared_memory_base != 0 && + if(dst_pid != 0 && + ipc_sender2main_shared_memory_base != 0 && os_semaphore_take(ipc_sender2main_lock_semaphore, max_U64)) { wrote_message = 1; From 5f1a0e27a8160b8761bb44cfdafcecdd6c080035 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sat, 21 Jun 2025 12:30:00 -0700 Subject: [PATCH 040/372] sketch out event buffer opening/closing --- src/raddbg/generated/raddbg.meta.c | 8 ++++++-- src/raddbg/generated/raddbg.meta.h | 4 +++- src/raddbg/raddbg.mdesk | 4 ++++ src/raddbg/raddbg_core.c | 9 +++++++++ 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/raddbg/generated/raddbg.meta.c b/src/raddbg/generated/raddbg.meta.c index 2d387a5d..76f0087d 100644 --- a/src/raddbg/generated/raddbg.meta.c +++ b/src/raddbg/generated/raddbg.meta.c @@ -60,7 +60,7 @@ str8_lit_comp(""), str8_lit_comp(""), }; -RD_VocabInfo rd_vocab_info_table[349] = +RD_VocabInfo rd_vocab_info_table[351] = { {str8_lit_comp("type_view"), str8_lit_comp("type_views"), str8_lit_comp("Type View"), str8_lit_comp("Type Views"), RD_IconKind_Binoculars}, {str8_lit_comp("file_path_map"), str8_lit_comp("file_path_maps"), str8_lit_comp("File Path Map"), str8_lit_comp("File Path Maps"), RD_IconKind_FileOutline}, @@ -385,6 +385,8 @@ RD_VocabInfo rd_vocab_info_table[349] = {str8_lit_comp("complete_query"), str8_lit_comp(""), str8_lit_comp("Complete Query"), str8_lit_comp(""), RD_IconKind_Null}, {str8_lit_comp("cancel_query"), str8_lit_comp(""), str8_lit_comp("Cancel Query"), str8_lit_comp(""), RD_IconKind_Null}, {str8_lit_comp("update_query"), str8_lit_comp(""), str8_lit_comp("Update Query"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("open_event_buffer"), str8_lit_comp(""), str8_lit_comp("Open Event Buffer"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("close_event_buffer"), str8_lit_comp(""), str8_lit_comp("Close Event Buffer"), str8_lit_comp(""), RD_IconKind_Null}, {str8_lit_comp("toggle_dev_menu"), str8_lit_comp(""), str8_lit_comp("Toggle Developer Menu"), str8_lit_comp(""), RD_IconKind_Null}, {str8_lit_comp("log_marker"), str8_lit_comp(""), str8_lit_comp("Log Marker"), str8_lit_comp(""), RD_IconKind_Null}, {str8_lit_comp("watches"), str8_lit_comp(""), str8_lit_comp("Watch"), str8_lit_comp(""), RD_IconKind_Binoculars}, @@ -543,7 +545,7 @@ Rng1U64 rd_reg_slot_range_table[47] = {OffsetOf(RD_Regs, os_event), OffsetOf(RD_Regs, os_event) + sizeof(OS_Event *)}, }; -RD_CmdKindInfo rd_cmd_kind_info_table[242] = +RD_CmdKindInfo rd_cmd_kind_info_table[244] = { {0}, { str8_lit_comp("launch_and_run"), str8_lit_comp("Starts debugging a new instance of a target, then runs."), str8_lit_comp("launch,start,run,target"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, @@ -761,6 +763,8 @@ RD_CmdKindInfo rd_cmd_kind_info_table[242] = { str8_lit_comp("complete_query"), str8_lit_comp("Completes and closes a query."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("cancel_query"), str8_lit_comp("Closes a query."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("update_query"), str8_lit_comp("Updates a query input."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, +{ str8_lit_comp("open_event_buffer"), str8_lit_comp("Opens a new event buffer, to which debugger events will be written, for external processing."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, +{ str8_lit_comp("close_event_buffer"), str8_lit_comp("Closes an existing event buffer."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Cfg, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("toggle_dev_menu"), str8_lit_comp("Opens and closes the developer menu."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("log_marker"), str8_lit_comp("Logs a marker in the application log, to denote specific points in time within the log."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("watches"), str8_lit_comp("Opens a Watch tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, diff --git a/src/raddbg/generated/raddbg.meta.h b/src/raddbg/generated/raddbg.meta.h index 9fab341a..d98fbe38 100644 --- a/src/raddbg/generated/raddbg.meta.h +++ b/src/raddbg/generated/raddbg.meta.h @@ -276,6 +276,8 @@ RD_CmdKind_PushQuery, RD_CmdKind_CompleteQuery, RD_CmdKind_CancelQuery, RD_CmdKind_UpdateQuery, +RD_CmdKind_OpenEventBuffer, +RD_CmdKind_CloseEventBuffer, RD_CmdKind_ToggleDevMenu, RD_CmdKind_LogMarker, RD_CmdKind_OpenWatch, @@ -588,7 +590,7 @@ Z(getting_started)\ C_LINKAGE_BEGIN extern String8 rd_tab_fast_path_view_name_table[24]; extern String8 rd_tab_fast_path_query_name_table[24]; -extern RD_VocabInfo rd_vocab_info_table[349]; +extern RD_VocabInfo rd_vocab_info_table[351]; extern RD_NameSchemaInfo rd_name_schema_info_table[24]; extern String8 rd_reg_slot_code_name_table[47]; extern Rng1U64 rd_reg_slot_range_table[47]; diff --git a/src/raddbg/raddbg.mdesk b/src/raddbg/raddbg.mdesk index 6d2d6ce3..949f8e20 100644 --- a/src/raddbg/raddbg.mdesk +++ b/src/raddbg/raddbg.mdesk @@ -1062,6 +1062,10 @@ RD_CmdTable: // | | | | {CancelQuery 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "cancel_query" "Cancel Query" "Closes a query." "" "" } {UpdateQuery 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "update_query" "Update Query" "Updates a query input." "" "" } + //- rjf: event buffers + {OpenEventBuffer 0 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "open_event_buffer" "Open Event Buffer" "Opens a new event buffer, to which debugger events will be written, for external processing." "" "" } + {CloseEventBuffer 0 1 0 0 "" Cfg null Nil Null 0 0 0 0 0 0 0 Null "close_event_buffer" "Close Event Buffer" "Closes an existing event buffer." "" "" } + //- rjf: developer commands {ToggleDevMenu 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "toggle_dev_menu" "Toggle Developer Menu" "Opens and closes the developer menu." "" "" } {LogMarker 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "log_marker" "Log Marker" "Logs a marker in the application log, to denote specific points in time within the log." "" "" } diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 08276030..12b5f436 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -15453,6 +15453,14 @@ rd_frame(void) MemoryCopy(vs->query_buffer, rd_regs()->string.str, vs->query_string_size); }break; + //- rjf: event buffers + case RD_CmdKind_OpenEventBuffer: + { + RD_Cfg *transient = rd_cfg_child_from_string(rd_state->root_cfg, str8_lit("transient")); + RD_Cfg *buffer = rd_cfg_new(transient, str8_lit("event_buffer")); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, "$%I64x", buffer->id); + }break; + //- rjf: developer commands case RD_CmdKind_ToggleDevMenu: { @@ -15496,6 +15504,7 @@ rd_frame(void) case RD_CmdKind_RemoveCfg: case RD_CmdKind_RemoveBreakpoint: case RD_CmdKind_RemoveTarget: + case RD_CmdKind_CloseEventBuffer: { RD_Cfg *cfg = rd_cfg_from_id(rd_regs()->cfg); rd_cfg_release(cfg); From a2608261d1ee8e655641fa526d959fa24f93fb63 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 25 Jun 2025 07:56:51 -0700 Subject: [PATCH 041/372] always wait for initial module debug info --- src/ctrl/ctrl_core.c | 7 +- src/lib_rdi/rdi.c | 720 +++++----- src/lib_rdi/rdi.h | 3148 +++++++++++++++++++++--------------------- 3 files changed, 1940 insertions(+), 1935 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index af4a9fdd..daa5104e 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -5070,6 +5070,7 @@ ctrl_thread__eval_scope_begin(Arena *arena, CTRL_UserBreakpointList *user_bps, C process = process->next) { if(process->kind != CTRL_EntityKind_Process) { continue; } + U64 process_mod_idx = 0; for(CTRL_Entity *mod = process->first; mod != &ctrl_entity_nil; mod = mod->next) @@ -5082,8 +5083,11 @@ ctrl_thread__eval_scope_begin(Arena *arena, CTRL_UserBreakpointList *user_bps, C RDI_Parsed *rdi = di_rdi_from_key(scope->di_scope, &dbgi_key, 1, 0); //- rjf: if this RDI is not yet ready => determine if we need to wait for it + // + // (we *always* wait for the initial module) + // B32 rdi_is_necessary = 1; - if(rdi == &rdi_parsed_nil) ProfScope("determine if RDI is necessary") + if(process_mod_idx > 0 && rdi == &rdi_parsed_nil) ProfScope("determine if RDI is necessary") { // rjf: find cached result U64 hash = ctrl_hash_from_handle(mod->handle); @@ -5172,6 +5176,7 @@ ctrl_thread__eval_scope_begin(Arena *arena, CTRL_UserBreakpointList *user_bps, C eval_modules_primary = &eval_modules[eval_module_idx]; } eval_module_idx += 1; + process_mod_idx += 1; } } } diff --git a/src/lib_rdi/rdi.c b/src/lib_rdi/rdi.c index 73760f04..29e98bdb 100644 --- a/src/lib_rdi/rdi.c +++ b/src/lib_rdi/rdi.c @@ -1,360 +1,360 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////////////////////////////////////// -//~ (R)AD (D)ebug (I)nfo Format Library -// -// Defines standard RDI debug information format types and -// functions. - -#ifndef RDI_C -#define RDI_C - -RDI_U16 rdi_section_element_size_table[40] = -{ -sizeof(RDI_U8), -sizeof(RDI_TopLevelInfo), -sizeof(RDI_U8), -sizeof(RDI_U32), -sizeof(RDI_U32), -sizeof(RDI_BinarySection), -sizeof(RDI_FilePathNode), -sizeof(RDI_SourceFile), -sizeof(RDI_LineTable), -sizeof(RDI_U64), -sizeof(RDI_Line), -sizeof(RDI_Column), -sizeof(RDI_SourceLineMap), -sizeof(RDI_U32), -sizeof(RDI_U32), -sizeof(RDI_U64), -sizeof(RDI_Unit), -sizeof(RDI_VMapEntry), -sizeof(RDI_TypeNode), -sizeof(RDI_UDT), -sizeof(RDI_Member), -sizeof(RDI_EnumMember), -sizeof(RDI_GlobalVariable), -sizeof(RDI_VMapEntry), -sizeof(RDI_ThreadVariable), -sizeof(RDI_Constant), -sizeof(RDI_Procedure), -sizeof(RDI_Scope), -sizeof(RDI_U64), -sizeof(RDI_VMapEntry), -sizeof(RDI_InlineSite), -sizeof(RDI_Local), -sizeof(RDI_LocationBlock), -sizeof(RDI_U8), -sizeof(RDI_U8), -sizeof(RDI_U32), -sizeof(RDI_NameMap), -sizeof(RDI_NameMapBucket), -sizeof(RDI_NameMapNode), -sizeof(RDI_U8), -}; - -RDI_U8 rdi_section_is_required_table[40] = -{ -0, -0, -1, -1, -1, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -}; - -RDI_U16 rdi_eval_op_ctrlbits_table[52] = -{ -RDI_EVAL_CTRLBITS(0, 0, 0), -RDI_EVAL_CTRLBITS(0, 0, 0), -RDI_EVAL_CTRLBITS(1, 1, 0), -RDI_EVAL_CTRLBITS(2, 0, 0), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(4, 0, 1), -RDI_EVAL_CTRLBITS(0, 1, 1), -RDI_EVAL_CTRLBITS(8, 0, 1), -RDI_EVAL_CTRLBITS(4, 0, 1), -RDI_EVAL_CTRLBITS(4, 0, 1), -RDI_EVAL_CTRLBITS(0, 0, 0), -RDI_EVAL_CTRLBITS(0, 0, 0), -RDI_EVAL_CTRLBITS(1, 0, 1), -RDI_EVAL_CTRLBITS(2, 0, 1), -RDI_EVAL_CTRLBITS(4, 0, 1), -RDI_EVAL_CTRLBITS(8, 0, 1), -RDI_EVAL_CTRLBITS(16, 0, 1), -RDI_EVAL_CTRLBITS(1, 0, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(2, 1, 1), -RDI_EVAL_CTRLBITS(1, 0, 1), -RDI_EVAL_CTRLBITS(0, 1, 0), -RDI_EVAL_CTRLBITS(1, 0, 0), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(4, 0, 0), -RDI_EVAL_CTRLBITS(4, 0, 0), -RDI_EVAL_CTRLBITS(8, 0, 0), -RDI_EVAL_CTRLBITS(0, 0, 0), -}; - -struct {RDI_EvalConversionKind dst_typegroups[RDI_EvalTypeGroup_COUNT];} rdi_eval_typegroup_conversion_kind_matrix[6] = -{ -{{RDI_EvalConversionKind_OtherToOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther}}, -{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}}, -{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}}, -{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal}}, -{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop}}, -{{RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop}}, -}; - -struct {RDI_U8 *str; RDI_U64 size;} rdi_eval_conversion_kind_message_string_table[6] = -{ -{(RDI_U8 *)"", sizeof("")}, -{(RDI_U8 *)"", sizeof("")}, -{(RDI_U8 *)"Cannot convert between these types.", sizeof("Cannot convert between these types.")}, -{(RDI_U8 *)"Cannot convert to this type.", sizeof("Cannot convert to this type.")}, -{(RDI_U8 *)"Cannot convert this type.", sizeof("Cannot convert this type.")}, -{(RDI_U8 *)"", sizeof("")}, -}; - -RDI_PROC RDI_U64 -rdi_hash(RDI_U8 *ptr, RDI_U64 size) -{ - RDI_U64 result = 5381; - RDI_U8 *opl = ptr + size; - for(;ptr < opl; ptr += 1) - { - result = ((result << 5) + result) + *ptr; - } - return result; -} - -RDI_PROC RDI_U8 * -rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out) -{ -RDI_U8 *result = 0; -*size_out = 0; -switch (kind) -{ -default:{}break; -case RDI_TypeKind_NULL: {result = (RDI_U8*)"NULL"; *size_out = sizeof("NULL")-1;}break; -case RDI_TypeKind_Void: {result = (RDI_U8*)"Void"; *size_out = sizeof("Void")-1;}break; -case RDI_TypeKind_Handle: {result = (RDI_U8*)"Handle"; *size_out = sizeof("Handle")-1;}break; -case RDI_TypeKind_HResult: {result = (RDI_U8*)"HResult"; *size_out = sizeof("HResult")-1;}break; -case RDI_TypeKind_Char8: {result = (RDI_U8*)"Char8"; *size_out = sizeof("Char8")-1;}break; -case RDI_TypeKind_Char16: {result = (RDI_U8*)"Char16"; *size_out = sizeof("Char16")-1;}break; -case RDI_TypeKind_Char32: {result = (RDI_U8*)"Char32"; *size_out = sizeof("Char32")-1;}break; -case RDI_TypeKind_UChar8: {result = (RDI_U8*)"UChar8"; *size_out = sizeof("UChar8")-1;}break; -case RDI_TypeKind_UChar16: {result = (RDI_U8*)"UChar16"; *size_out = sizeof("UChar16")-1;}break; -case RDI_TypeKind_UChar32: {result = (RDI_U8*)"UChar32"; *size_out = sizeof("UChar32")-1;}break; -case RDI_TypeKind_U8: {result = (RDI_U8*)"U8"; *size_out = sizeof("U8")-1;}break; -case RDI_TypeKind_U16: {result = (RDI_U8*)"U16"; *size_out = sizeof("U16")-1;}break; -case RDI_TypeKind_U32: {result = (RDI_U8*)"U32"; *size_out = sizeof("U32")-1;}break; -case RDI_TypeKind_U64: {result = (RDI_U8*)"U64"; *size_out = sizeof("U64")-1;}break; -case RDI_TypeKind_U128: {result = (RDI_U8*)"U128"; *size_out = sizeof("U128")-1;}break; -case RDI_TypeKind_U256: {result = (RDI_U8*)"U256"; *size_out = sizeof("U256")-1;}break; -case RDI_TypeKind_U512: {result = (RDI_U8*)"U512"; *size_out = sizeof("U512")-1;}break; -case RDI_TypeKind_S8: {result = (RDI_U8*)"S8"; *size_out = sizeof("S8")-1;}break; -case RDI_TypeKind_S16: {result = (RDI_U8*)"S16"; *size_out = sizeof("S16")-1;}break; -case RDI_TypeKind_S32: {result = (RDI_U8*)"S32"; *size_out = sizeof("S32")-1;}break; -case RDI_TypeKind_S64: {result = (RDI_U8*)"S64"; *size_out = sizeof("S64")-1;}break; -case RDI_TypeKind_S128: {result = (RDI_U8*)"S128"; *size_out = sizeof("S128")-1;}break; -case RDI_TypeKind_S256: {result = (RDI_U8*)"S256"; *size_out = sizeof("S256")-1;}break; -case RDI_TypeKind_S512: {result = (RDI_U8*)"S512"; *size_out = sizeof("S512")-1;}break; -case RDI_TypeKind_Bool: {result = (RDI_U8*)"Bool"; *size_out = sizeof("Bool")-1;}break; -case RDI_TypeKind_F16: {result = (RDI_U8*)"F16"; *size_out = sizeof("F16")-1;}break; -case RDI_TypeKind_F32: {result = (RDI_U8*)"F32"; *size_out = sizeof("F32")-1;}break; -case RDI_TypeKind_F32PP: {result = (RDI_U8*)"F32PP"; *size_out = sizeof("F32PP")-1;}break; -case RDI_TypeKind_F48: {result = (RDI_U8*)"F48"; *size_out = sizeof("F48")-1;}break; -case RDI_TypeKind_F64: {result = (RDI_U8*)"F64"; *size_out = sizeof("F64")-1;}break; -case RDI_TypeKind_F80: {result = (RDI_U8*)"F80"; *size_out = sizeof("F80")-1;}break; -case RDI_TypeKind_F128: {result = (RDI_U8*)"F128"; *size_out = sizeof("F128")-1;}break; -case RDI_TypeKind_ComplexF32: {result = (RDI_U8*)"ComplexF32"; *size_out = sizeof("ComplexF32")-1;}break; -case RDI_TypeKind_ComplexF64: {result = (RDI_U8*)"ComplexF64"; *size_out = sizeof("ComplexF64")-1;}break; -case RDI_TypeKind_ComplexF80: {result = (RDI_U8*)"ComplexF80"; *size_out = sizeof("ComplexF80")-1;}break; -case RDI_TypeKind_ComplexF128: {result = (RDI_U8*)"ComplexF128"; *size_out = sizeof("ComplexF128")-1;}break; -case RDI_TypeKind_Modifier: {result = (RDI_U8*)"Modifier"; *size_out = sizeof("Modifier")-1;}break; -case RDI_TypeKind_Ptr: {result = (RDI_U8*)"Ptr"; *size_out = sizeof("Ptr")-1;}break; -case RDI_TypeKind_LRef: {result = (RDI_U8*)"LRef"; *size_out = sizeof("LRef")-1;}break; -case RDI_TypeKind_RRef: {result = (RDI_U8*)"RRef"; *size_out = sizeof("RRef")-1;}break; -case RDI_TypeKind_Array: {result = (RDI_U8*)"Array"; *size_out = sizeof("Array")-1;}break; -case RDI_TypeKind_Function: {result = (RDI_U8*)"Function"; *size_out = sizeof("Function")-1;}break; -case RDI_TypeKind_Method: {result = (RDI_U8*)"Method"; *size_out = sizeof("Method")-1;}break; -case RDI_TypeKind_MemberPtr: {result = (RDI_U8*)"MemberPtr"; *size_out = sizeof("MemberPtr")-1;}break; -case RDI_TypeKind_Struct: {result = (RDI_U8*)"Struct"; *size_out = sizeof("Struct")-1;}break; -case RDI_TypeKind_Class: {result = (RDI_U8*)"Class"; *size_out = sizeof("Class")-1;}break; -case RDI_TypeKind_Union: {result = (RDI_U8*)"Union"; *size_out = sizeof("Union")-1;}break; -case RDI_TypeKind_Enum: {result = (RDI_U8*)"Enum"; *size_out = sizeof("Enum")-1;}break; -case RDI_TypeKind_Alias: {result = (RDI_U8*)"Alias"; *size_out = sizeof("Alias")-1;}break; -case RDI_TypeKind_IncompleteStruct: {result = (RDI_U8*)"IncompleteStruct"; *size_out = sizeof("IncompleteStruct")-1;}break; -case RDI_TypeKind_IncompleteUnion: {result = (RDI_U8*)"IncompleteUnion"; *size_out = sizeof("IncompleteUnion")-1;}break; -case RDI_TypeKind_IncompleteClass: {result = (RDI_U8*)"IncompleteClass"; *size_out = sizeof("IncompleteClass")-1;}break; -case RDI_TypeKind_IncompleteEnum: {result = (RDI_U8*)"IncompleteEnum"; *size_out = sizeof("IncompleteEnum")-1;}break; -case RDI_TypeKind_Bitfield: {result = (RDI_U8*)"Bitfield"; *size_out = sizeof("Bitfield")-1;}break; -case RDI_TypeKind_Variadic: {result = (RDI_U8*)"Variadic"; *size_out = sizeof("Variadic")-1;}break; -case RDI_TypeKind_Count: {result = (RDI_U8*)"Count"; *size_out = sizeof("Count")-1;}break; -} -return result; -} - -RDI_PROC RDI_U32 -rdi_size_from_basic_type_kind(RDI_TypeKind kind) -{ -RDI_U32 result = 0; -switch(kind) -{ -default:{}break; -case RDI_TypeKind_Handle:{result = 0xFFFFFFFF;}break; -case RDI_TypeKind_HResult:{result = 4;}break; -case RDI_TypeKind_Char8:{result = 1;}break; -case RDI_TypeKind_Char16:{result = 2;}break; -case RDI_TypeKind_Char32:{result = 4;}break; -case RDI_TypeKind_UChar8:{result = 1;}break; -case RDI_TypeKind_UChar16:{result = 2;}break; -case RDI_TypeKind_UChar32:{result = 4;}break; -case RDI_TypeKind_U8:{result = 1;}break; -case RDI_TypeKind_U16:{result = 2;}break; -case RDI_TypeKind_U32:{result = 4;}break; -case RDI_TypeKind_U64:{result = 8;}break; -case RDI_TypeKind_U128:{result = 16;}break; -case RDI_TypeKind_U256:{result = 32;}break; -case RDI_TypeKind_U512:{result = 64;}break; -case RDI_TypeKind_S8:{result = 1;}break; -case RDI_TypeKind_S16:{result = 2;}break; -case RDI_TypeKind_S32:{result = 4;}break; -case RDI_TypeKind_S64:{result = 8;}break; -case RDI_TypeKind_S128:{result = 16;}break; -case RDI_TypeKind_S256:{result = 32;}break; -case RDI_TypeKind_S512:{result = 64;}break; -case RDI_TypeKind_Bool:{result = 1;}break; -case RDI_TypeKind_F16:{result = 2;}break; -case RDI_TypeKind_F32:{result = 4;}break; -case RDI_TypeKind_F32PP:{result = 4;}break; -case RDI_TypeKind_F48:{result = 6;}break; -case RDI_TypeKind_F64:{result = 8;}break; -case RDI_TypeKind_F80:{result = 10;}break; -case RDI_TypeKind_F128:{result = 16;}break; -case RDI_TypeKind_ComplexF32:{result = 8;}break; -case RDI_TypeKind_ComplexF64:{result = 16;}break; -case RDI_TypeKind_ComplexF80:{result = 20;}break; -case RDI_TypeKind_ComplexF128:{result = 32;}break; -} -return result; -} - -RDI_PROC RDI_U32 -rdi_addr_size_from_arch(RDI_Arch arch) -{ -RDI_U32 result = 0; -switch(arch) -{ -default:{}break; -case RDI_Arch_X86:{result = 4;}break; -case RDI_Arch_X64:{result = 8;}break; -} -return result; -} - -RDI_PROC RDI_EvalConversionKind -rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out) -{ - RDI_EvalConversionKind k = rdi_eval_typegroup_conversion_kind_matrix[in].dst_typegroups[out]; - return k; -} - -RDI_PROC RDI_S32 -rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group) -{ - RDI_S32 result = 0; - switch(op) - { - case RDI_EvalOp_Neg: case RDI_EvalOp_Add: case RDI_EvalOp_Sub: - case RDI_EvalOp_Mul: case RDI_EvalOp_Div: - case RDI_EvalOp_EqEq:case RDI_EvalOp_NtEq: - case RDI_EvalOp_LsEq:case RDI_EvalOp_GrEq: - case RDI_EvalOp_Less:case RDI_EvalOp_Grtr: - { - if(group != RDI_EvalTypeGroup_Other) - { - result = 1; - } - }break; - case RDI_EvalOp_Mod:case RDI_EvalOp_LShift:case RDI_EvalOp_RShift: - case RDI_EvalOp_BitNot:case RDI_EvalOp_BitAnd:case RDI_EvalOp_BitXor: - case RDI_EvalOp_BitOr:case RDI_EvalOp_LogNot:case RDI_EvalOp_LogAnd: - case RDI_EvalOp_LogOr: - { - if(group == RDI_EvalTypeGroup_S || group == RDI_EvalTypeGroup_U) - { - result = 1; - } - }break; - } - return result; -} - -RDI_PROC RDI_U8 * -rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out) -{ - *size_out = rdi_eval_conversion_kind_message_string_table[kind].size; - return rdi_eval_conversion_kind_message_string_table[kind].str; -} - -#endif // RDI_C +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////////////////////////////////////// +//~ (R)AD (D)ebug (I)nfo Format Library +// +// Defines standard RDI debug information format types and +// functions. + +#ifndef RDI_C +#define RDI_C + +RDI_U16 rdi_section_element_size_table[40] = +{ +sizeof(RDI_U8), +sizeof(RDI_TopLevelInfo), +sizeof(RDI_U8), +sizeof(RDI_U32), +sizeof(RDI_U32), +sizeof(RDI_BinarySection), +sizeof(RDI_FilePathNode), +sizeof(RDI_SourceFile), +sizeof(RDI_LineTable), +sizeof(RDI_U64), +sizeof(RDI_Line), +sizeof(RDI_Column), +sizeof(RDI_SourceLineMap), +sizeof(RDI_U32), +sizeof(RDI_U32), +sizeof(RDI_U64), +sizeof(RDI_Unit), +sizeof(RDI_VMapEntry), +sizeof(RDI_TypeNode), +sizeof(RDI_UDT), +sizeof(RDI_Member), +sizeof(RDI_EnumMember), +sizeof(RDI_GlobalVariable), +sizeof(RDI_VMapEntry), +sizeof(RDI_ThreadVariable), +sizeof(RDI_Constant), +sizeof(RDI_Procedure), +sizeof(RDI_Scope), +sizeof(RDI_U64), +sizeof(RDI_VMapEntry), +sizeof(RDI_InlineSite), +sizeof(RDI_Local), +sizeof(RDI_LocationBlock), +sizeof(RDI_U8), +sizeof(RDI_U8), +sizeof(RDI_U32), +sizeof(RDI_NameMap), +sizeof(RDI_NameMapBucket), +sizeof(RDI_NameMapNode), +sizeof(RDI_U8), +}; + +RDI_U8 rdi_section_is_required_table[40] = +{ +0, +0, +1, +1, +1, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +}; + +RDI_U16 rdi_eval_op_ctrlbits_table[52] = +{ +RDI_EVAL_CTRLBITS(0, 0, 0), +RDI_EVAL_CTRLBITS(0, 0, 0), +RDI_EVAL_CTRLBITS(1, 1, 0), +RDI_EVAL_CTRLBITS(2, 0, 0), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(4, 0, 1), +RDI_EVAL_CTRLBITS(0, 1, 1), +RDI_EVAL_CTRLBITS(8, 0, 1), +RDI_EVAL_CTRLBITS(4, 0, 1), +RDI_EVAL_CTRLBITS(4, 0, 1), +RDI_EVAL_CTRLBITS(0, 0, 0), +RDI_EVAL_CTRLBITS(0, 0, 0), +RDI_EVAL_CTRLBITS(1, 0, 1), +RDI_EVAL_CTRLBITS(2, 0, 1), +RDI_EVAL_CTRLBITS(4, 0, 1), +RDI_EVAL_CTRLBITS(8, 0, 1), +RDI_EVAL_CTRLBITS(16, 0, 1), +RDI_EVAL_CTRLBITS(1, 0, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(2, 1, 1), +RDI_EVAL_CTRLBITS(1, 0, 1), +RDI_EVAL_CTRLBITS(0, 1, 0), +RDI_EVAL_CTRLBITS(1, 0, 0), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(4, 0, 0), +RDI_EVAL_CTRLBITS(4, 0, 0), +RDI_EVAL_CTRLBITS(8, 0, 0), +RDI_EVAL_CTRLBITS(0, 0, 0), +}; + +struct {RDI_EvalConversionKind dst_typegroups[RDI_EvalTypeGroup_COUNT];} rdi_eval_typegroup_conversion_kind_matrix[6] = +{ +{{RDI_EvalConversionKind_OtherToOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther}}, +{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}}, +{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}}, +{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal}}, +{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop}}, +{{RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop}}, +}; + +struct {RDI_U8 *str; RDI_U64 size;} rdi_eval_conversion_kind_message_string_table[6] = +{ +{(RDI_U8 *)"", sizeof("")}, +{(RDI_U8 *)"", sizeof("")}, +{(RDI_U8 *)"Cannot convert between these types.", sizeof("Cannot convert between these types.")}, +{(RDI_U8 *)"Cannot convert to this type.", sizeof("Cannot convert to this type.")}, +{(RDI_U8 *)"Cannot convert this type.", sizeof("Cannot convert this type.")}, +{(RDI_U8 *)"", sizeof("")}, +}; + +RDI_PROC RDI_U64 +rdi_hash(RDI_U8 *ptr, RDI_U64 size) +{ + RDI_U64 result = 5381; + RDI_U8 *opl = ptr + size; + for(;ptr < opl; ptr += 1) + { + result = ((result << 5) + result) + *ptr; + } + return result; +} + +RDI_PROC RDI_U8 * +rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out) +{ +RDI_U8 *result = 0; +*size_out = 0; +switch (kind) +{ +default:{}break; +case RDI_TypeKind_NULL: {result = (RDI_U8*)"NULL"; *size_out = sizeof("NULL")-1;}break; +case RDI_TypeKind_Void: {result = (RDI_U8*)"Void"; *size_out = sizeof("Void")-1;}break; +case RDI_TypeKind_Handle: {result = (RDI_U8*)"Handle"; *size_out = sizeof("Handle")-1;}break; +case RDI_TypeKind_HResult: {result = (RDI_U8*)"HResult"; *size_out = sizeof("HResult")-1;}break; +case RDI_TypeKind_Char8: {result = (RDI_U8*)"Char8"; *size_out = sizeof("Char8")-1;}break; +case RDI_TypeKind_Char16: {result = (RDI_U8*)"Char16"; *size_out = sizeof("Char16")-1;}break; +case RDI_TypeKind_Char32: {result = (RDI_U8*)"Char32"; *size_out = sizeof("Char32")-1;}break; +case RDI_TypeKind_UChar8: {result = (RDI_U8*)"UChar8"; *size_out = sizeof("UChar8")-1;}break; +case RDI_TypeKind_UChar16: {result = (RDI_U8*)"UChar16"; *size_out = sizeof("UChar16")-1;}break; +case RDI_TypeKind_UChar32: {result = (RDI_U8*)"UChar32"; *size_out = sizeof("UChar32")-1;}break; +case RDI_TypeKind_U8: {result = (RDI_U8*)"U8"; *size_out = sizeof("U8")-1;}break; +case RDI_TypeKind_U16: {result = (RDI_U8*)"U16"; *size_out = sizeof("U16")-1;}break; +case RDI_TypeKind_U32: {result = (RDI_U8*)"U32"; *size_out = sizeof("U32")-1;}break; +case RDI_TypeKind_U64: {result = (RDI_U8*)"U64"; *size_out = sizeof("U64")-1;}break; +case RDI_TypeKind_U128: {result = (RDI_U8*)"U128"; *size_out = sizeof("U128")-1;}break; +case RDI_TypeKind_U256: {result = (RDI_U8*)"U256"; *size_out = sizeof("U256")-1;}break; +case RDI_TypeKind_U512: {result = (RDI_U8*)"U512"; *size_out = sizeof("U512")-1;}break; +case RDI_TypeKind_S8: {result = (RDI_U8*)"S8"; *size_out = sizeof("S8")-1;}break; +case RDI_TypeKind_S16: {result = (RDI_U8*)"S16"; *size_out = sizeof("S16")-1;}break; +case RDI_TypeKind_S32: {result = (RDI_U8*)"S32"; *size_out = sizeof("S32")-1;}break; +case RDI_TypeKind_S64: {result = (RDI_U8*)"S64"; *size_out = sizeof("S64")-1;}break; +case RDI_TypeKind_S128: {result = (RDI_U8*)"S128"; *size_out = sizeof("S128")-1;}break; +case RDI_TypeKind_S256: {result = (RDI_U8*)"S256"; *size_out = sizeof("S256")-1;}break; +case RDI_TypeKind_S512: {result = (RDI_U8*)"S512"; *size_out = sizeof("S512")-1;}break; +case RDI_TypeKind_Bool: {result = (RDI_U8*)"Bool"; *size_out = sizeof("Bool")-1;}break; +case RDI_TypeKind_F16: {result = (RDI_U8*)"F16"; *size_out = sizeof("F16")-1;}break; +case RDI_TypeKind_F32: {result = (RDI_U8*)"F32"; *size_out = sizeof("F32")-1;}break; +case RDI_TypeKind_F32PP: {result = (RDI_U8*)"F32PP"; *size_out = sizeof("F32PP")-1;}break; +case RDI_TypeKind_F48: {result = (RDI_U8*)"F48"; *size_out = sizeof("F48")-1;}break; +case RDI_TypeKind_F64: {result = (RDI_U8*)"F64"; *size_out = sizeof("F64")-1;}break; +case RDI_TypeKind_F80: {result = (RDI_U8*)"F80"; *size_out = sizeof("F80")-1;}break; +case RDI_TypeKind_F128: {result = (RDI_U8*)"F128"; *size_out = sizeof("F128")-1;}break; +case RDI_TypeKind_ComplexF32: {result = (RDI_U8*)"ComplexF32"; *size_out = sizeof("ComplexF32")-1;}break; +case RDI_TypeKind_ComplexF64: {result = (RDI_U8*)"ComplexF64"; *size_out = sizeof("ComplexF64")-1;}break; +case RDI_TypeKind_ComplexF80: {result = (RDI_U8*)"ComplexF80"; *size_out = sizeof("ComplexF80")-1;}break; +case RDI_TypeKind_ComplexF128: {result = (RDI_U8*)"ComplexF128"; *size_out = sizeof("ComplexF128")-1;}break; +case RDI_TypeKind_Modifier: {result = (RDI_U8*)"Modifier"; *size_out = sizeof("Modifier")-1;}break; +case RDI_TypeKind_Ptr: {result = (RDI_U8*)"Ptr"; *size_out = sizeof("Ptr")-1;}break; +case RDI_TypeKind_LRef: {result = (RDI_U8*)"LRef"; *size_out = sizeof("LRef")-1;}break; +case RDI_TypeKind_RRef: {result = (RDI_U8*)"RRef"; *size_out = sizeof("RRef")-1;}break; +case RDI_TypeKind_Array: {result = (RDI_U8*)"Array"; *size_out = sizeof("Array")-1;}break; +case RDI_TypeKind_Function: {result = (RDI_U8*)"Function"; *size_out = sizeof("Function")-1;}break; +case RDI_TypeKind_Method: {result = (RDI_U8*)"Method"; *size_out = sizeof("Method")-1;}break; +case RDI_TypeKind_MemberPtr: {result = (RDI_U8*)"MemberPtr"; *size_out = sizeof("MemberPtr")-1;}break; +case RDI_TypeKind_Struct: {result = (RDI_U8*)"Struct"; *size_out = sizeof("Struct")-1;}break; +case RDI_TypeKind_Class: {result = (RDI_U8*)"Class"; *size_out = sizeof("Class")-1;}break; +case RDI_TypeKind_Union: {result = (RDI_U8*)"Union"; *size_out = sizeof("Union")-1;}break; +case RDI_TypeKind_Enum: {result = (RDI_U8*)"Enum"; *size_out = sizeof("Enum")-1;}break; +case RDI_TypeKind_Alias: {result = (RDI_U8*)"Alias"; *size_out = sizeof("Alias")-1;}break; +case RDI_TypeKind_IncompleteStruct: {result = (RDI_U8*)"IncompleteStruct"; *size_out = sizeof("IncompleteStruct")-1;}break; +case RDI_TypeKind_IncompleteUnion: {result = (RDI_U8*)"IncompleteUnion"; *size_out = sizeof("IncompleteUnion")-1;}break; +case RDI_TypeKind_IncompleteClass: {result = (RDI_U8*)"IncompleteClass"; *size_out = sizeof("IncompleteClass")-1;}break; +case RDI_TypeKind_IncompleteEnum: {result = (RDI_U8*)"IncompleteEnum"; *size_out = sizeof("IncompleteEnum")-1;}break; +case RDI_TypeKind_Bitfield: {result = (RDI_U8*)"Bitfield"; *size_out = sizeof("Bitfield")-1;}break; +case RDI_TypeKind_Variadic: {result = (RDI_U8*)"Variadic"; *size_out = sizeof("Variadic")-1;}break; +case RDI_TypeKind_Count: {result = (RDI_U8*)"Count"; *size_out = sizeof("Count")-1;}break; +} +return result; +} + +RDI_PROC RDI_U32 +rdi_size_from_basic_type_kind(RDI_TypeKind kind) +{ +RDI_U32 result = 0; +switch(kind) +{ +default:{}break; +case RDI_TypeKind_Handle:{result = 0xFFFFFFFF;}break; +case RDI_TypeKind_HResult:{result = 4;}break; +case RDI_TypeKind_Char8:{result = 1;}break; +case RDI_TypeKind_Char16:{result = 2;}break; +case RDI_TypeKind_Char32:{result = 4;}break; +case RDI_TypeKind_UChar8:{result = 1;}break; +case RDI_TypeKind_UChar16:{result = 2;}break; +case RDI_TypeKind_UChar32:{result = 4;}break; +case RDI_TypeKind_U8:{result = 1;}break; +case RDI_TypeKind_U16:{result = 2;}break; +case RDI_TypeKind_U32:{result = 4;}break; +case RDI_TypeKind_U64:{result = 8;}break; +case RDI_TypeKind_U128:{result = 16;}break; +case RDI_TypeKind_U256:{result = 32;}break; +case RDI_TypeKind_U512:{result = 64;}break; +case RDI_TypeKind_S8:{result = 1;}break; +case RDI_TypeKind_S16:{result = 2;}break; +case RDI_TypeKind_S32:{result = 4;}break; +case RDI_TypeKind_S64:{result = 8;}break; +case RDI_TypeKind_S128:{result = 16;}break; +case RDI_TypeKind_S256:{result = 32;}break; +case RDI_TypeKind_S512:{result = 64;}break; +case RDI_TypeKind_Bool:{result = 1;}break; +case RDI_TypeKind_F16:{result = 2;}break; +case RDI_TypeKind_F32:{result = 4;}break; +case RDI_TypeKind_F32PP:{result = 4;}break; +case RDI_TypeKind_F48:{result = 6;}break; +case RDI_TypeKind_F64:{result = 8;}break; +case RDI_TypeKind_F80:{result = 10;}break; +case RDI_TypeKind_F128:{result = 16;}break; +case RDI_TypeKind_ComplexF32:{result = 8;}break; +case RDI_TypeKind_ComplexF64:{result = 16;}break; +case RDI_TypeKind_ComplexF80:{result = 20;}break; +case RDI_TypeKind_ComplexF128:{result = 32;}break; +} +return result; +} + +RDI_PROC RDI_U32 +rdi_addr_size_from_arch(RDI_Arch arch) +{ +RDI_U32 result = 0; +switch(arch) +{ +default:{}break; +case RDI_Arch_X86:{result = 4;}break; +case RDI_Arch_X64:{result = 8;}break; +} +return result; +} + +RDI_PROC RDI_EvalConversionKind +rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out) +{ + RDI_EvalConversionKind k = rdi_eval_typegroup_conversion_kind_matrix[in].dst_typegroups[out]; + return k; +} + +RDI_PROC RDI_S32 +rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group) +{ + RDI_S32 result = 0; + switch(op) + { + case RDI_EvalOp_Neg: case RDI_EvalOp_Add: case RDI_EvalOp_Sub: + case RDI_EvalOp_Mul: case RDI_EvalOp_Div: + case RDI_EvalOp_EqEq:case RDI_EvalOp_NtEq: + case RDI_EvalOp_LsEq:case RDI_EvalOp_GrEq: + case RDI_EvalOp_Less:case RDI_EvalOp_Grtr: + { + if(group != RDI_EvalTypeGroup_Other) + { + result = 1; + } + }break; + case RDI_EvalOp_Mod:case RDI_EvalOp_LShift:case RDI_EvalOp_RShift: + case RDI_EvalOp_BitNot:case RDI_EvalOp_BitAnd:case RDI_EvalOp_BitXor: + case RDI_EvalOp_BitOr:case RDI_EvalOp_LogNot:case RDI_EvalOp_LogAnd: + case RDI_EvalOp_LogOr: + { + if(group == RDI_EvalTypeGroup_S || group == RDI_EvalTypeGroup_U) + { + result = 1; + } + }break; + } + return result; +} + +RDI_PROC RDI_U8 * +rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out) +{ + *size_out = rdi_eval_conversion_kind_message_string_table[kind].size; + return rdi_eval_conversion_kind_message_string_table[kind].str; +} + +#endif // RDI_C diff --git a/src/lib_rdi/rdi.h b/src/lib_rdi/rdi.h index 97eebe9c..5692f306 100644 --- a/src/lib_rdi/rdi.h +++ b/src/lib_rdi/rdi.h @@ -1,1574 +1,1574 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////////////////////////////////////// -//~ (R)AD (D)ebug (I)nfo Format Library -// -// Defines standard RDI debug information format types and -// functions. - -#ifndef RDI_H -#define RDI_H - -//////////////////////////////////////////////////////////////// -//~ Overridable Procedure Decoration - -#if !defined(RDI_PROC) -# define RDI_PROC static -#endif - -//////////////////////////////////////////////////////////////// -//~ Overridable Basic Integer Types - -#if !defined(RDI_U8) -# define RDI_U8 RDI_U8 -# define RDI_U16 RDI_U16 -# define RDI_U32 RDI_U32 -# define RDI_U64 RDI_U64 -# define RDI_S8 RDI_S8 -# define RDI_S16 RDI_S16 -# define RDI_S32 RDI_S32 -# define RDI_S64 RDI_S64 -#include -typedef uint8_t RDI_U8; -typedef uint16_t RDI_U16; -typedef uint32_t RDI_U32; -typedef uint64_t RDI_U64; -typedef int8_t RDI_S8; -typedef int16_t RDI_S16; -typedef int32_t RDI_S32; -typedef int64_t RDI_S64; -#endif - -//////////////////////////////////////////////////////////////// -//~ Overridable Enabling/Disabling Of Table Index Typechecking - -#if !defined(RDI_DISABLE_TABLE_INDEX_TYPECHECKING) -# define RDI_DISABLE_TABLE_INDEX_TYPECHECKING 0 -#endif - -//////////////////////////////////////////////////////////////// -//~ Format Constants - -// "raddbg\0\0" -#define RDI_MAGIC_CONSTANT 0x0000676264646172 -#define RDI_ENCODING_VERSION 12 - -//////////////////////////////////////////////////////////////// -//~ Format Types & Functions - -typedef RDI_U32 RDI_SectionKind; -typedef enum RDI_SectionKindEnum -{ -RDI_SectionKind_NULL = 0x0000, -RDI_SectionKind_TopLevelInfo = 0x0001, -RDI_SectionKind_StringData = 0x0002, -RDI_SectionKind_StringTable = 0x0003, -RDI_SectionKind_IndexRuns = 0x0004, -RDI_SectionKind_BinarySections = 0x0005, -RDI_SectionKind_FilePathNodes = 0x0006, -RDI_SectionKind_SourceFiles = 0x0007, -RDI_SectionKind_LineTables = 0x0008, -RDI_SectionKind_LineInfoVOffs = 0x0009, -RDI_SectionKind_LineInfoLines = 0x000A, -RDI_SectionKind_LineInfoColumns = 0x000B, -RDI_SectionKind_SourceLineMaps = 0x000C, -RDI_SectionKind_SourceLineMapNumbers = 0x000D, -RDI_SectionKind_SourceLineMapRanges = 0x000E, -RDI_SectionKind_SourceLineMapVOffs = 0x000F, -RDI_SectionKind_Units = 0x0010, -RDI_SectionKind_UnitVMap = 0x0011, -RDI_SectionKind_TypeNodes = 0x0012, -RDI_SectionKind_UDTs = 0x0013, -RDI_SectionKind_Members = 0x0014, -RDI_SectionKind_EnumMembers = 0x0015, -RDI_SectionKind_GlobalVariables = 0x0016, -RDI_SectionKind_GlobalVMap = 0x0017, -RDI_SectionKind_ThreadVariables = 0x0018, -RDI_SectionKind_Constants = 0x0019, -RDI_SectionKind_Procedures = 0x001A, -RDI_SectionKind_Scopes = 0x001B, -RDI_SectionKind_ScopeVOffData = 0x001C, -RDI_SectionKind_ScopeVMap = 0x001D, -RDI_SectionKind_InlineSites = 0x001E, -RDI_SectionKind_Locals = 0x001F, -RDI_SectionKind_LocationBlocks = 0x0020, -RDI_SectionKind_LocationData = 0x0021, -RDI_SectionKind_ConstantValueData = 0x0022, -RDI_SectionKind_ConstantValueTable = 0x0023, -RDI_SectionKind_NameMaps = 0x0024, -RDI_SectionKind_NameMapBuckets = 0x0025, -RDI_SectionKind_NameMapNodes = 0x0026, -RDI_SectionKind_COUNT = 0x0027, -} RDI_SectionKindEnum; - -typedef RDI_U32 RDI_SectionEncoding; -typedef enum RDI_SectionEncodingEnum -{ -RDI_SectionEncoding_Unpacked = 0, -RDI_SectionEncoding_LZB = 1, -} RDI_SectionEncodingEnum; - -typedef RDI_U32 RDI_Arch; -typedef enum RDI_ArchEnum -{ -RDI_Arch_NULL = 0, -RDI_Arch_X86 = 1, -RDI_Arch_X64 = 2, -} RDI_ArchEnum; - -typedef RDI_U8 RDI_RegCode; -typedef enum RDI_RegCodeEnum -{ -RDI_RegCode_nil, -} RDI_RegCodeEnum; - -typedef RDI_U8 RDI_RegCodeX86; -typedef enum RDI_RegCodeX86Enum -{ -RDI_RegCodeX86_nil = 0, -RDI_RegCodeX86_eax = 1, -RDI_RegCodeX86_ecx = 2, -RDI_RegCodeX86_edx = 3, -RDI_RegCodeX86_ebx = 4, -RDI_RegCodeX86_esp = 5, -RDI_RegCodeX86_ebp = 6, -RDI_RegCodeX86_esi = 7, -RDI_RegCodeX86_edi = 8, -RDI_RegCodeX86_fsbase = 9, -RDI_RegCodeX86_gsbase = 10, -RDI_RegCodeX86_eflags = 11, -RDI_RegCodeX86_eip = 12, -RDI_RegCodeX86_dr0 = 13, -RDI_RegCodeX86_dr1 = 14, -RDI_RegCodeX86_dr2 = 15, -RDI_RegCodeX86_dr3 = 16, -RDI_RegCodeX86_dr4 = 17, -RDI_RegCodeX86_dr5 = 18, -RDI_RegCodeX86_dr6 = 19, -RDI_RegCodeX86_dr7 = 20, -RDI_RegCodeX86_fpr0 = 21, -RDI_RegCodeX86_fpr1 = 22, -RDI_RegCodeX86_fpr2 = 23, -RDI_RegCodeX86_fpr3 = 24, -RDI_RegCodeX86_fpr4 = 25, -RDI_RegCodeX86_fpr5 = 26, -RDI_RegCodeX86_fpr6 = 27, -RDI_RegCodeX86_fpr7 = 28, -RDI_RegCodeX86_st0 = 29, -RDI_RegCodeX86_st1 = 30, -RDI_RegCodeX86_st2 = 31, -RDI_RegCodeX86_st3 = 32, -RDI_RegCodeX86_st4 = 33, -RDI_RegCodeX86_st5 = 34, -RDI_RegCodeX86_st6 = 35, -RDI_RegCodeX86_st7 = 36, -RDI_RegCodeX86_fcw = 37, -RDI_RegCodeX86_fsw = 38, -RDI_RegCodeX86_ftw = 39, -RDI_RegCodeX86_fop = 40, -RDI_RegCodeX86_fcs = 41, -RDI_RegCodeX86_fds = 42, -RDI_RegCodeX86_fip = 43, -RDI_RegCodeX86_fdp = 44, -RDI_RegCodeX86_mxcsr = 45, -RDI_RegCodeX86_mxcsr_mask = 46, -RDI_RegCodeX86_ss = 47, -RDI_RegCodeX86_cs = 48, -RDI_RegCodeX86_ds = 49, -RDI_RegCodeX86_es = 50, -RDI_RegCodeX86_fs = 51, -RDI_RegCodeX86_gs = 52, -RDI_RegCodeX86_ymm0 = 53, -RDI_RegCodeX86_ymm1 = 54, -RDI_RegCodeX86_ymm2 = 55, -RDI_RegCodeX86_ymm3 = 56, -RDI_RegCodeX86_ymm4 = 57, -RDI_RegCodeX86_ymm5 = 58, -RDI_RegCodeX86_ymm6 = 59, -RDI_RegCodeX86_ymm7 = 60, -} RDI_RegCodeX86Enum; - -typedef RDI_U8 RDI_RegCodeX64; -typedef enum RDI_RegCodeX64Enum -{ -RDI_RegCodeX64_nil = 0, -RDI_RegCodeX64_rax = 1, -RDI_RegCodeX64_rcx = 2, -RDI_RegCodeX64_rdx = 3, -RDI_RegCodeX64_rbx = 4, -RDI_RegCodeX64_rsp = 5, -RDI_RegCodeX64_rbp = 6, -RDI_RegCodeX64_rsi = 7, -RDI_RegCodeX64_rdi = 8, -RDI_RegCodeX64_r8 = 9, -RDI_RegCodeX64_r9 = 10, -RDI_RegCodeX64_r10 = 11, -RDI_RegCodeX64_r11 = 12, -RDI_RegCodeX64_r12 = 13, -RDI_RegCodeX64_r13 = 14, -RDI_RegCodeX64_r14 = 15, -RDI_RegCodeX64_r15 = 16, -RDI_RegCodeX64_es = 17, -RDI_RegCodeX64_cs = 18, -RDI_RegCodeX64_ss = 19, -RDI_RegCodeX64_ds = 20, -RDI_RegCodeX64_fs = 21, -RDI_RegCodeX64_gs = 22, -RDI_RegCodeX64_rip = 23, -RDI_RegCodeX64_rflags = 24, -RDI_RegCodeX64_dr0 = 25, -RDI_RegCodeX64_dr1 = 26, -RDI_RegCodeX64_dr2 = 27, -RDI_RegCodeX64_dr3 = 28, -RDI_RegCodeX64_dr4 = 29, -RDI_RegCodeX64_dr5 = 30, -RDI_RegCodeX64_dr6 = 31, -RDI_RegCodeX64_dr7 = 32, -RDI_RegCodeX64_st0 = 33, -RDI_RegCodeX64_st1 = 34, -RDI_RegCodeX64_st2 = 35, -RDI_RegCodeX64_st3 = 36, -RDI_RegCodeX64_st4 = 37, -RDI_RegCodeX64_st5 = 38, -RDI_RegCodeX64_st6 = 39, -RDI_RegCodeX64_st7 = 40, -RDI_RegCodeX64_fpr0 = 41, -RDI_RegCodeX64_fpr1 = 42, -RDI_RegCodeX64_fpr2 = 43, -RDI_RegCodeX64_fpr3 = 44, -RDI_RegCodeX64_fpr4 = 45, -RDI_RegCodeX64_fpr5 = 46, -RDI_RegCodeX64_fpr6 = 47, -RDI_RegCodeX64_fpr7 = 48, -RDI_RegCodeX64_zmm0 = 49, -RDI_RegCodeX64_zmm1 = 50, -RDI_RegCodeX64_zmm2 = 51, -RDI_RegCodeX64_zmm3 = 52, -RDI_RegCodeX64_zmm4 = 53, -RDI_RegCodeX64_zmm5 = 54, -RDI_RegCodeX64_zmm6 = 55, -RDI_RegCodeX64_zmm7 = 56, -RDI_RegCodeX64_zmm8 = 57, -RDI_RegCodeX64_zmm9 = 58, -RDI_RegCodeX64_zmm10 = 59, -RDI_RegCodeX64_zmm11 = 60, -RDI_RegCodeX64_zmm12 = 61, -RDI_RegCodeX64_zmm13 = 62, -RDI_RegCodeX64_zmm14 = 63, -RDI_RegCodeX64_zmm15 = 64, -RDI_RegCodeX64_zmm16 = 65, -RDI_RegCodeX64_zmm17 = 66, -RDI_RegCodeX64_zmm18 = 67, -RDI_RegCodeX64_zmm19 = 68, -RDI_RegCodeX64_zmm20 = 69, -RDI_RegCodeX64_zmm21 = 70, -RDI_RegCodeX64_zmm22 = 71, -RDI_RegCodeX64_zmm23 = 72, -RDI_RegCodeX64_zmm24 = 73, -RDI_RegCodeX64_zmm25 = 74, -RDI_RegCodeX64_zmm26 = 75, -RDI_RegCodeX64_zmm27 = 76, -RDI_RegCodeX64_zmm28 = 77, -RDI_RegCodeX64_zmm29 = 78, -RDI_RegCodeX64_zmm30 = 79, -RDI_RegCodeX64_zmm31 = 80, -RDI_RegCodeX64_k0 = 81, -RDI_RegCodeX64_k1 = 82, -RDI_RegCodeX64_k2 = 83, -RDI_RegCodeX64_k3 = 84, -RDI_RegCodeX64_k4 = 85, -RDI_RegCodeX64_k5 = 86, -RDI_RegCodeX64_k6 = 87, -RDI_RegCodeX64_k7 = 88, -RDI_RegCodeX64_mxcsr = 89, -RDI_RegCodeX64_fsbase = 90, -RDI_RegCodeX64_gsbase = 91, -RDI_RegCodeX64_fcw = 92, -RDI_RegCodeX64_fsw = 93, -RDI_RegCodeX64_ftw = 94, -RDI_RegCodeX64_fop = 95, -RDI_RegCodeX64_fcs = 96, -RDI_RegCodeX64_fds = 97, -RDI_RegCodeX64_fip = 98, -RDI_RegCodeX64_fdp = 99, -RDI_RegCodeX64_mxcsr_mask = 100, -} RDI_RegCodeX64Enum; - -typedef RDI_U32 RDI_BinarySectionFlags; -typedef enum RDI_BinarySectionFlagsEnum -{ -RDI_BinarySectionFlag_Read = 1<<0, -RDI_BinarySectionFlag_Write = 1<<1, -RDI_BinarySectionFlag_Execute = 1<<2, -} RDI_BinarySectionFlagsEnum; - -typedef RDI_U32 RDI_Language; -typedef enum RDI_LanguageEnum -{ -RDI_Language_NULL = 0, -RDI_Language_C = 1, -RDI_Language_CPlusPlus = 2, -RDI_Language_Masm = 3, -RDI_Language_COUNT = 4, -} RDI_LanguageEnum; - -typedef RDI_U16 RDI_TypeKind; -typedef enum RDI_TypeKindEnum -{ -RDI_TypeKind_NULL = 0x0000, -RDI_TypeKind_Void = 0x0001, -RDI_TypeKind_Handle = 0x0002, -RDI_TypeKind_HResult = 0x0003, -RDI_TypeKind_Char8 = 0x0004, -RDI_TypeKind_Char16 = 0x0005, -RDI_TypeKind_Char32 = 0x0006, -RDI_TypeKind_UChar8 = 0x0007, -RDI_TypeKind_UChar16 = 0x0008, -RDI_TypeKind_UChar32 = 0x0009, -RDI_TypeKind_U8 = 0x000A, -RDI_TypeKind_U16 = 0x000B, -RDI_TypeKind_U32 = 0x000C, -RDI_TypeKind_U64 = 0x000D, -RDI_TypeKind_U128 = 0x000E, -RDI_TypeKind_U256 = 0x000F, -RDI_TypeKind_U512 = 0x0010, -RDI_TypeKind_S8 = 0x0011, -RDI_TypeKind_S16 = 0x0012, -RDI_TypeKind_S32 = 0x0013, -RDI_TypeKind_S64 = 0x0014, -RDI_TypeKind_S128 = 0x0015, -RDI_TypeKind_S256 = 0x0016, -RDI_TypeKind_S512 = 0x0017, -RDI_TypeKind_Bool = 0x0018, -RDI_TypeKind_F16 = 0x0019, -RDI_TypeKind_F32 = 0x001A, -RDI_TypeKind_F32PP = 0x001B, -RDI_TypeKind_F48 = 0x001C, -RDI_TypeKind_F64 = 0x001D, -RDI_TypeKind_F80 = 0x001E, -RDI_TypeKind_F128 = 0x001F, -RDI_TypeKind_ComplexF32 = 0x0020, -RDI_TypeKind_ComplexF64 = 0x0021, -RDI_TypeKind_ComplexF80 = 0x0022, -RDI_TypeKind_ComplexF128 = 0x0023, -RDI_TypeKind_Modifier = 0x1000, -RDI_TypeKind_Ptr = 0x1001, -RDI_TypeKind_LRef = 0x1002, -RDI_TypeKind_RRef = 0x1003, -RDI_TypeKind_Array = 0x1004, -RDI_TypeKind_Function = 0x1005, -RDI_TypeKind_Method = 0x1006, -RDI_TypeKind_MemberPtr = 0x1007, -RDI_TypeKind_Struct = 0x2000, -RDI_TypeKind_Class = 0x2001, -RDI_TypeKind_Union = 0x2002, -RDI_TypeKind_Enum = 0x2003, -RDI_TypeKind_Alias = 0x2004, -RDI_TypeKind_IncompleteStruct = 0x2005, -RDI_TypeKind_IncompleteUnion = 0x2006, -RDI_TypeKind_IncompleteClass = 0x2007, -RDI_TypeKind_IncompleteEnum = 0x2008, -RDI_TypeKind_Bitfield = 0xF000, -RDI_TypeKind_Variadic = 0xF001, -RDI_TypeKind_Count = 0xF002, -RDI_TypeKind_FirstBuiltIn = RDI_TypeKind_Void, -RDI_TypeKind_LastBuiltIn = RDI_TypeKind_ComplexF128, -RDI_TypeKind_FirstConstructed = RDI_TypeKind_Modifier, -RDI_TypeKind_LastConstructed = RDI_TypeKind_MemberPtr, -RDI_TypeKind_FirstUserDefined = RDI_TypeKind_Struct, -RDI_TypeKind_LastRecord = RDI_TypeKind_Union, -RDI_TypeKind_FirstIncomplete = RDI_TypeKind_IncompleteStruct, -RDI_TypeKind_LastIncomplete = RDI_TypeKind_IncompleteEnum, -RDI_TypeKind_FirstRecord = RDI_TypeKind_Struct, -RDI_TypeKind_LastUserDefined = RDI_TypeKind_IncompleteEnum, -} RDI_TypeKindEnum; - -typedef RDI_U16 RDI_TypeModifierFlags; -typedef enum RDI_TypeModifierFlagsEnum -{ -RDI_TypeModifierFlag_Const = 1<<0, -RDI_TypeModifierFlag_Volatile = 1<<1, -RDI_TypeModifierFlag_Restrict = 1<<2, -} RDI_TypeModifierFlagsEnum; - -typedef RDI_U32 RDI_UDTFlags; -typedef enum RDI_UDTFlagsEnum -{ -RDI_UDTFlag_EnumMembers = 1<<0, -} RDI_UDTFlagsEnum; - -typedef RDI_U16 RDI_MemberKind; -typedef enum RDI_MemberKindEnum -{ -RDI_MemberKind_NULL = 0x0000, -RDI_MemberKind_DataField = 0x0001, -RDI_MemberKind_StaticData = 0x0002, -RDI_MemberKind_Method = 0x0100, -RDI_MemberKind_StaticMethod = 0x0101, -RDI_MemberKind_VirtualMethod = 0x0102, -RDI_MemberKind_VTablePtr = 0x0200, -RDI_MemberKind_Base = 0x0201, -RDI_MemberKind_VirtualBase = 0x0202, -RDI_MemberKind_NestedType = 0x0300, -} RDI_MemberKindEnum; - -typedef RDI_U32 RDI_LinkFlags; -typedef enum RDI_LinkFlagsEnum -{ -RDI_LinkFlag_External = 1<<0, -RDI_LinkFlag_TypeScoped = 1<<1, -RDI_LinkFlag_ProcScoped = 1<<2, -} RDI_LinkFlagsEnum; - -typedef RDI_U32 RDI_LocalKind; -typedef enum RDI_LocalKindEnum -{ -RDI_LocalKind_NULL = 0x0, -RDI_LocalKind_Parameter = 0x1, -RDI_LocalKind_Variable = 0x2, -} RDI_LocalKindEnum; - -typedef RDI_U8 RDI_LocationKind; -typedef enum RDI_LocationKindEnum -{ -RDI_LocationKind_NULL = 0x0, -RDI_LocationKind_AddrBytecodeStream = 0x1, -RDI_LocationKind_ValBytecodeStream = 0x2, -RDI_LocationKind_AddrRegPlusU16 = 0x3, -RDI_LocationKind_AddrAddrRegPlusU16 = 0x4, -RDI_LocationKind_ValReg = 0x5, -} RDI_LocationKindEnum; - -typedef RDI_U8 RDI_EvalOp; -typedef enum RDI_EvalOpEnum -{ -RDI_EvalOp_Stop = 0, -RDI_EvalOp_Noop = 1, -RDI_EvalOp_Cond = 2, -RDI_EvalOp_Skip = 3, -RDI_EvalOp_MemRead = 4, -RDI_EvalOp_RegRead = 5, -RDI_EvalOp_RegReadDyn = 6, -RDI_EvalOp_FrameOff = 7, -RDI_EvalOp_ModuleOff = 8, -RDI_EvalOp_TLSOff = 9, -RDI_EvalOp_ObjectOff = 10, -RDI_EvalOp_CFA = 11, -RDI_EvalOp_ConstU8 = 12, -RDI_EvalOp_ConstU16 = 13, -RDI_EvalOp_ConstU32 = 14, -RDI_EvalOp_ConstU64 = 15, -RDI_EvalOp_ConstU128 = 16, -RDI_EvalOp_ConstString = 17, -RDI_EvalOp_Abs = 18, -RDI_EvalOp_Neg = 19, -RDI_EvalOp_Add = 20, -RDI_EvalOp_Sub = 21, -RDI_EvalOp_Mul = 22, -RDI_EvalOp_Div = 23, -RDI_EvalOp_Mod = 24, -RDI_EvalOp_LShift = 25, -RDI_EvalOp_RShift = 26, -RDI_EvalOp_BitAnd = 27, -RDI_EvalOp_BitOr = 28, -RDI_EvalOp_BitXor = 29, -RDI_EvalOp_BitNot = 30, -RDI_EvalOp_LogAnd = 31, -RDI_EvalOp_LogOr = 32, -RDI_EvalOp_LogNot = 33, -RDI_EvalOp_EqEq = 34, -RDI_EvalOp_NtEq = 35, -RDI_EvalOp_LsEq = 36, -RDI_EvalOp_GrEq = 37, -RDI_EvalOp_Less = 38, -RDI_EvalOp_Grtr = 39, -RDI_EvalOp_Trunc = 40, -RDI_EvalOp_TruncSigned = 41, -RDI_EvalOp_Convert = 42, -RDI_EvalOp_Pick = 43, -RDI_EvalOp_Pop = 44, -RDI_EvalOp_Insert = 45, -RDI_EvalOp_ValueRead = 46, -RDI_EvalOp_ByteSwap = 47, -RDI_EvalOp_CallSiteValue = 48, -RDI_EvalOp_PartialValue = 49, -RDI_EvalOp_PartialValueBit = 50, -RDI_EvalOp_COUNT = 51, -} RDI_EvalOpEnum; - -typedef RDI_U8 RDI_EvalTypeGroup; -typedef enum RDI_EvalTypeGroupEnum -{ -RDI_EvalTypeGroup_Other = 0, -RDI_EvalTypeGroup_U = 1, -RDI_EvalTypeGroup_S = 2, -RDI_EvalTypeGroup_F32 = 3, -RDI_EvalTypeGroup_F64 = 4, -RDI_EvalTypeGroup_COUNT = 5, -} RDI_EvalTypeGroupEnum; - -typedef RDI_U8 RDI_EvalConversionKind; -typedef enum RDI_EvalConversionKindEnum -{ -RDI_EvalConversionKind_Noop = 0, -RDI_EvalConversionKind_Legal = 1, -RDI_EvalConversionKind_OtherToOther = 2, -RDI_EvalConversionKind_ToOther = 3, -RDI_EvalConversionKind_FromOther = 4, -RDI_EvalConversionKind_COUNT = 5, -} RDI_EvalConversionKindEnum; - -typedef RDI_U32 RDI_NameMapKind; -typedef enum RDI_NameMapKindEnum -{ -RDI_NameMapKind_NULL = 0, -RDI_NameMapKind_GlobalVariables = 1, -RDI_NameMapKind_ThreadVariables = 2, -RDI_NameMapKind_Constants = 3, -RDI_NameMapKind_Procedures = 4, -RDI_NameMapKind_Types = 5, -RDI_NameMapKind_LinkNameProcedures = 6, -RDI_NameMapKind_NormalSourcePaths = 7, -RDI_NameMapKind_COUNT = 8, -} RDI_NameMapKindEnum; - -#define RDI_Header_XList \ -X(RDI_U64, magic)\ -X(RDI_U32, encoding_version)\ -X(RDI_U32, data_section_off)\ -X(RDI_U32, data_section_count)\ - -#define RDI_SectionKind_XList \ -X(NULL, null, RDI_U8)\ -X(TopLevelInfo, top_level_info, RDI_TopLevelInfo)\ -X(StringData, string_data, RDI_U8)\ -X(StringTable, string_table, RDI_U32)\ -X(IndexRuns, index_runs, RDI_U32)\ -X(BinarySections, binary_sections, RDI_BinarySection)\ -X(FilePathNodes, file_path_nodes, RDI_FilePathNode)\ -X(SourceFiles, source_files, RDI_SourceFile)\ -X(LineTables, line_tables, RDI_LineTable)\ -X(LineInfoVOffs, line_info_voffs, RDI_U64)\ -X(LineInfoLines, line_info_lines, RDI_Line)\ -X(LineInfoColumns, line_info_columns, RDI_Column)\ -X(SourceLineMaps, source_line_maps, RDI_SourceLineMap)\ -X(SourceLineMapNumbers, source_line_map_numbers, RDI_U32)\ -X(SourceLineMapRanges, source_line_map_ranges, RDI_U32)\ -X(SourceLineMapVOffs, source_line_map_voffs, RDI_U64)\ -X(Units, units, RDI_Unit)\ -X(UnitVMap, unit_vmap, RDI_VMapEntry)\ -X(TypeNodes, type_nodes, RDI_TypeNode)\ -X(UDTs, udts, RDI_UDT)\ -X(Members, members, RDI_Member)\ -X(EnumMembers, enum_members, RDI_EnumMember)\ -X(GlobalVariables, global_variables, RDI_GlobalVariable)\ -X(GlobalVMap, global_vmap, RDI_VMapEntry)\ -X(ThreadVariables, thread_variables, RDI_ThreadVariable)\ -X(Constants, constants, RDI_Constant)\ -X(Procedures, procedures, RDI_Procedure)\ -X(Scopes, scopes, RDI_Scope)\ -X(ScopeVOffData, scope_voff_data, RDI_U64)\ -X(ScopeVMap, scope_vmap, RDI_VMapEntry)\ -X(InlineSites, inline_sites, RDI_InlineSite)\ -X(Locals, locals, RDI_Local)\ -X(LocationBlocks, location_blocks, RDI_LocationBlock)\ -X(LocationData, location_data, RDI_U8)\ -X(ConstantValueData, constant_value_data, RDI_U8)\ -X(ConstantValueTable, constant_value_table, RDI_U32)\ -X(NameMaps, name_maps, RDI_NameMap)\ -X(NameMapBuckets, name_map_buckets, RDI_NameMapBucket)\ -X(NameMapNodes, name_map_nodes, RDI_NameMapNode)\ - -#define RDI_SectionEncoding_XList \ -X(Unpacked)\ -X(LZB)\ - -#define RDI_Section_XList \ -X(RDI_SectionEncoding, encoding)\ -X(RDI_U32, pad)\ -X(RDI_U64, off)\ -X(RDI_U64, encoded_size)\ -X(RDI_U64, unpacked_size)\ - -#define RDI_VMapEntry_XList \ -X(RDI_U64, voff)\ -X(RDI_U64, idx)\ - -#define RDI_Arch_XList \ -X(NULL)\ -X(X86)\ -X(X64)\ - -#define RDI_RegCodeX86_XList \ -X(nil, 0)\ -X(eax, 1)\ -X(ecx, 2)\ -X(edx, 3)\ -X(ebx, 4)\ -X(esp, 5)\ -X(ebp, 6)\ -X(esi, 7)\ -X(edi, 8)\ -X(fsbase, 9)\ -X(gsbase, 10)\ -X(eflags, 11)\ -X(eip, 12)\ -X(dr0, 13)\ -X(dr1, 14)\ -X(dr2, 15)\ -X(dr3, 16)\ -X(dr4, 17)\ -X(dr5, 18)\ -X(dr6, 19)\ -X(dr7, 20)\ -X(fpr0, 21)\ -X(fpr1, 22)\ -X(fpr2, 23)\ -X(fpr3, 24)\ -X(fpr4, 25)\ -X(fpr5, 26)\ -X(fpr6, 27)\ -X(fpr7, 28)\ -X(st0, 29)\ -X(st1, 30)\ -X(st2, 31)\ -X(st3, 32)\ -X(st4, 33)\ -X(st5, 34)\ -X(st6, 35)\ -X(st7, 36)\ -X(fcw, 37)\ -X(fsw, 38)\ -X(ftw, 39)\ -X(fop, 40)\ -X(fcs, 41)\ -X(fds, 42)\ -X(fip, 43)\ -X(fdp, 44)\ -X(mxcsr, 45)\ -X(mxcsr_mask, 46)\ -X(ss, 47)\ -X(cs, 48)\ -X(ds, 49)\ -X(es, 50)\ -X(fs, 51)\ -X(gs, 52)\ -X(ymm0, 53)\ -X(ymm1, 54)\ -X(ymm2, 55)\ -X(ymm3, 56)\ -X(ymm4, 57)\ -X(ymm5, 58)\ -X(ymm6, 59)\ -X(ymm7, 60)\ - -#define RDI_RegCodeX64_XList \ -X(nil, 0)\ -X(rax, 1)\ -X(rcx, 2)\ -X(rdx, 3)\ -X(rbx, 4)\ -X(rsp, 5)\ -X(rbp, 6)\ -X(rsi, 7)\ -X(rdi, 8)\ -X(r8, 9)\ -X(r9, 10)\ -X(r10, 11)\ -X(r11, 12)\ -X(r12, 13)\ -X(r13, 14)\ -X(r14, 15)\ -X(r15, 16)\ -X(es, 17)\ -X(cs, 18)\ -X(ss, 19)\ -X(ds, 20)\ -X(fs, 21)\ -X(gs, 22)\ -X(rip, 23)\ -X(rflags, 24)\ -X(dr0, 25)\ -X(dr1, 26)\ -X(dr2, 27)\ -X(dr3, 28)\ -X(dr4, 29)\ -X(dr5, 30)\ -X(dr6, 31)\ -X(dr7, 32)\ -X(st0, 33)\ -X(st1, 34)\ -X(st2, 35)\ -X(st3, 36)\ -X(st4, 37)\ -X(st5, 38)\ -X(st6, 39)\ -X(st7, 40)\ -X(fpr0, 41)\ -X(fpr1, 42)\ -X(fpr2, 43)\ -X(fpr3, 44)\ -X(fpr4, 45)\ -X(fpr5, 46)\ -X(fpr6, 47)\ -X(fpr7, 48)\ -X(zmm0, 49)\ -X(zmm1, 50)\ -X(zmm2, 51)\ -X(zmm3, 52)\ -X(zmm4, 53)\ -X(zmm5, 54)\ -X(zmm6, 55)\ -X(zmm7, 56)\ -X(zmm8, 57)\ -X(zmm9, 58)\ -X(zmm10, 59)\ -X(zmm11, 60)\ -X(zmm12, 61)\ -X(zmm13, 62)\ -X(zmm14, 63)\ -X(zmm15, 64)\ -X(zmm16, 65)\ -X(zmm17, 66)\ -X(zmm18, 67)\ -X(zmm19, 68)\ -X(zmm20, 69)\ -X(zmm21, 70)\ -X(zmm22, 71)\ -X(zmm23, 72)\ -X(zmm24, 73)\ -X(zmm25, 74)\ -X(zmm26, 75)\ -X(zmm27, 76)\ -X(zmm28, 77)\ -X(zmm29, 78)\ -X(zmm30, 79)\ -X(zmm31, 80)\ -X(k0, 81)\ -X(k1, 82)\ -X(k2, 83)\ -X(k3, 84)\ -X(k4, 85)\ -X(k5, 86)\ -X(k6, 87)\ -X(k7, 88)\ -X(mxcsr, 89)\ -X(fsbase, 90)\ -X(gsbase, 91)\ -X(fcw, 92)\ -X(fsw, 93)\ -X(ftw, 94)\ -X(fop, 95)\ -X(fcs, 96)\ -X(fds, 97)\ -X(fip, 98)\ -X(fdp, 99)\ -X(mxcsr_mask, 100)\ - -#define RDI_TopLevelInfo_XList \ -X(RDI_Arch, arch)\ -X(RDI_U32, exe_name_string_idx)\ -X(RDI_U64, exe_hash)\ -X(RDI_U64, voff_max)\ -X(RDI_U32, producer_name_string_idx)\ - -#define RDI_BinarySectionFlags_XList \ -X(Read)\ -X(Write)\ -X(Execute)\ - -#define RDI_BinarySection_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_BinarySectionFlags, flags)\ -X(RDI_U64, voff_first)\ -X(RDI_U64, voff_opl)\ -X(RDI_U64, foff_first)\ -X(RDI_U64, foff_opl)\ - -#define RDI_FilePathNode_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, parent_path_node)\ -X(RDI_U32, first_child)\ -X(RDI_U32, next_sibling)\ -X(RDI_U32, source_file_idx)\ - -#define RDI_SourceFile_XList \ -X(RDI_U32, file_path_node_idx)\ -X(RDI_U32, normal_full_path_string_idx)\ -X(RDI_U32, source_line_map_idx)\ - -#define RDI_Unit_XList \ -X(RDI_U32, unit_name_string_idx)\ -X(RDI_U32, compiler_name_string_idx)\ -X(RDI_U32, source_file_path_node)\ -X(RDI_U32, object_file_path_node)\ -X(RDI_U32, archive_file_path_node)\ -X(RDI_U32, build_path_node)\ -X(RDI_Language, language)\ -X(RDI_U32, line_table_idx)\ - -#define RDI_LineTable_XList \ -X(RDI_U32, voffs_base_idx)\ -X(RDI_U32, lines_base_idx)\ -X(RDI_U32, cols_base_idx)\ -X(RDI_U32, lines_count)\ -X(RDI_U32, cols_count)\ - -#define RDI_Line_XList \ -X(RDI_U32, file_idx)\ -X(RDI_U32, line_num)\ - -#define RDI_Column_XList \ -X(RDI_U16, col_first)\ -X(RDI_U16, col_opl)\ - -#define RDI_SourceLineMapMemberTable \ -X(RDI_U32, line_count)\ -X(RDI_U32, voff_count)\ -X(RDI_U32, line_map_nums_base_idx)\ -X(RDI_U32, line_map_range_base_idx)\ -X(RDI_U32, line_map_voff_base_idx)\ - -#define RDI_Language_XList \ -X(NULL)\ -X(C)\ -X(CPlusPlus)\ -X(Masm)\ -X(COUNT)\ - -#define RDI_TypeKind_XList \ -X(NULL)\ -X(Void)\ -X(Handle)\ -X(HResult)\ -X(Char8)\ -X(Char16)\ -X(Char32)\ -X(UChar8)\ -X(UChar16)\ -X(UChar32)\ -X(U8)\ -X(U16)\ -X(U32)\ -X(U64)\ -X(U128)\ -X(U256)\ -X(U512)\ -X(S8)\ -X(S16)\ -X(S32)\ -X(S64)\ -X(S128)\ -X(S256)\ -X(S512)\ -X(Bool)\ -X(F16)\ -X(F32)\ -X(F32PP)\ -X(F48)\ -X(F64)\ -X(F80)\ -X(F128)\ -X(ComplexF32)\ -X(ComplexF64)\ -X(ComplexF80)\ -X(ComplexF128)\ -X(Modifier)\ -X(Ptr)\ -X(LRef)\ -X(RRef)\ -X(Array)\ -X(Function)\ -X(Method)\ -X(MemberPtr)\ -X(Struct)\ -X(Class)\ -X(Union)\ -X(Enum)\ -X(Alias)\ -X(IncompleteStruct)\ -X(IncompleteUnion)\ -X(IncompleteClass)\ -X(IncompleteEnum)\ -X(Bitfield)\ -X(Variadic)\ -X(Count)\ - -#define RDI_TypeModifierFlags_XList \ -X(Const)\ -X(Volatile)\ -X(Restrict)\ - -#define RDI_TypeNode_XList \ -X(RDI_TypeKind, kind)\ -X(RDI_U16, flags)\ -X(RDI_U32, byte_size)\ - -#define RDI_UDTFlags_XList \ -X(EnumMembers)\ - -#define RDI_UDT_XList \ -X(RDI_U32, self_type_idx)\ -X(RDI_UDTFlags, flags)\ -X(RDI_U32, member_first)\ -X(RDI_U32, member_count)\ -X(RDI_U32, file_idx)\ -X(RDI_U32, line)\ -X(RDI_U32, col)\ - -#define RDI_MemberKind_XList \ -X(NULL)\ -X(DataField)\ -X(StaticData)\ -X(Method)\ -X(StaticMethod)\ -X(VirtualMethod)\ -X(VTablePtr)\ -X(Base)\ -X(VirtualBase)\ -X(NestedType)\ - -#define RDI_Member_XList \ -X(RDI_MemberKind, kind)\ -X(RDI_U16, pad)\ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, type_idx)\ -X(RDI_U32, off)\ - -#define RDI_EnumMember_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, pad)\ -X(RDI_U64, val)\ - -#define RDI_LinkFlags_XList \ -X(External)\ -X(TypeScoped)\ -X(ProcScoped)\ - -#define RDI_LocalKind_XList \ -X(NULL)\ -X(Parameter)\ -X(Variable)\ - -#define RDI_LocationKind_XList \ -X(NULL)\ -X(AddrBytecodeStream)\ -X(ValBytecodeStream)\ -X(AddrRegPlusU16)\ -X(AddrAddrRegPlusU16)\ -X(ValReg)\ - -#define RDI_GlobalVariable_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_LinkFlags, link_flags)\ -X(RDI_U64, voff)\ -X(RDI_U32, type_idx)\ -X(RDI_U32, container_idx)\ - -#define RDI_ThreadVariable_XList \ -X(type, name_string_idx)\ -X(type, link_flags)\ -X(type, tls_off)\ -X(type, type_idx)\ -X(type, container_idx)\ - -#define RDI_Procedure_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, link_name_string_idx)\ -X(RDI_LinkFlags, link_flags)\ -X(RDI_U32, type_idx)\ -X(RDI_U32, root_scope_idx)\ -X(RDI_U32, container_idx)\ -X(RDI_U32, frame_base_location_first)\ -X(RDI_U32, frame_base_location_opl)\ - -#define RDI_Scope_XList \ -X(RDI_U32, proc_idx)\ -X(RDI_U32, parent_scope_idx)\ -X(RDI_U32, first_child_scope_idx)\ -X(RDI_U32, next_sibling_scope_idx)\ -X(RDI_U32, voff_range_first)\ -X(RDI_U32, voff_range_opl)\ -X(RDI_U32, local_first)\ -X(RDI_U32, local_count)\ -X(RDI_U32, static_local_idx_run_first)\ -X(RDI_U32, static_local_count)\ -X(RDI_U32, inline_site_idx)\ - -#define RDI_InlineSite_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, type_idx)\ -X(RDI_U32, owner_type_idx)\ -X(RDI_U32, line_table_idx)\ - -#define RDI_Local_XList \ -X(RDI_LocalKind, kind)\ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, type_idx)\ -X(RDI_U32, pad)\ -X(RDI_U32, location_first)\ -X(RDI_U32, location_opl)\ - -#define RDI_LocationBlock_XList \ -X(RDI_U32, scope_off_first)\ -X(RDI_U32, scope_off_opl)\ -X(RDI_U32, location_data_off)\ - -#define RDI_LocationBytecodeStream_XList \ -X(RDI_LocationKind, kind)\ - -#define RDI_LocationRegPlusU16_XList \ -X(RDI_LocationKind, kind)\ -X(RDI_RegCode, reg_code)\ -X(RDI_U16, offset)\ - -#define RDI_LocationReg_XList \ -X(RDI_LocationKind, kind)\ -X(RDI_RegCode, reg_code)\ - -#define RDI_EvalOp_XList \ -X(Stop)\ -X(Noop)\ -X(Cond)\ -X(Skip)\ -X(MemRead)\ -X(RegRead)\ -X(RegReadDyn)\ -X(FrameOff)\ -X(ModuleOff)\ -X(TLSOff)\ -X(ObjectOff)\ -X(CFA)\ -X(ConstU8)\ -X(ConstU16)\ -X(ConstU32)\ -X(ConstU64)\ -X(ConstU128)\ -X(ConstString)\ -X(Abs)\ -X(Neg)\ -X(Add)\ -X(Sub)\ -X(Mul)\ -X(Div)\ -X(Mod)\ -X(LShift)\ -X(RShift)\ -X(BitAnd)\ -X(BitOr)\ -X(BitXor)\ -X(BitNot)\ -X(LogAnd)\ -X(LogOr)\ -X(LogNot)\ -X(EqEq)\ -X(NtEq)\ -X(LsEq)\ -X(GrEq)\ -X(Less)\ -X(Grtr)\ -X(Trunc)\ -X(TruncSigned)\ -X(Convert)\ -X(Pick)\ -X(Pop)\ -X(Insert)\ -X(ValueRead)\ -X(ByteSwap)\ -X(CallSiteValue)\ -X(PartialValue)\ -X(PartialValueBit)\ - -#define RDI_EvalTypeGroup_XList \ -X(Other)\ -X(U)\ -X(S)\ -X(F32)\ -X(F64)\ - -#define RDI_EvalConversionKind_XList \ -X(Noop)\ -X(Legal)\ -X(OtherToOther)\ -X(ToOther)\ -X(FromOther)\ - -#define RDI_NameMapKind_XList \ -X(NULL)\ -X(GlobalVariables)\ -X(ThreadVariables)\ -X(Constants)\ -X(Procedures)\ -X(Types)\ -X(LinkNameProcedures)\ -X(NormalSourcePaths)\ - -#define RDI_NameMap_XList \ -X(RDI_U32, bucket_base_idx)\ -X(RDI_U32, node_base_idx)\ -X(RDI_U32, bucket_count)\ -X(RDI_U32, node_count)\ - -#define RDI_NameMapBucket_XList \ -X(RDI_U32, first_node)\ -X(RDI_U32, node_count)\ - -#define RDI_NameMapNode_XList \ -X(RDI_U32, string_idx)\ -X(RDI_U32, match_count)\ -X(RDI_U32, match_idx_or_idx_run_first)\ - -#if !RDI_DISABLE_TABLE_INDEX_TYPECHECKING -typedef struct RDI_U32_StringTable { RDI_U32 v; } RDI_U32_StringTable; -typedef struct RDI_U32_IndexRuns { RDI_U32 v; } RDI_U32_IndexRuns; -typedef struct RDI_U32_BinarySections { RDI_U32 v; } RDI_U32_BinarySections; -typedef struct RDI_U32_FilePathNodes { RDI_U32 v; } RDI_U32_FilePathNodes; -typedef struct RDI_U32_SourceFiles { RDI_U32 v; } RDI_U32_SourceFiles; -typedef struct RDI_U32_LineTables { RDI_U32 v; } RDI_U32_LineTables; -typedef struct RDI_U32_LineInfoVOffs { RDI_U32 v; } RDI_U32_LineInfoVOffs; -typedef struct RDI_U32_LineInfoLines { RDI_U32 v; } RDI_U32_LineInfoLines; -typedef struct RDI_U32_LineInfoColumns { RDI_U32 v; } RDI_U32_LineInfoColumns; -typedef struct RDI_U32_SourceLineMaps { RDI_U32 v; } RDI_U32_SourceLineMaps; -typedef struct RDI_U32_SourceLineMapNumbers { RDI_U32 v; } RDI_U32_SourceLineMapNumbers; -typedef struct RDI_U32_SourceLineMapRanges { RDI_U32 v; } RDI_U32_SourceLineMapRanges; -typedef struct RDI_U32_SourceLineMapVOffs { RDI_U32 v; } RDI_U32_SourceLineMapVOffs; -typedef struct RDI_U32_Units { RDI_U32 v; } RDI_U32_Units; -typedef struct RDI_U32_TypeNodes { RDI_U32 v; } RDI_U32_TypeNodes; -typedef struct RDI_U32_UDTs { RDI_U32 v; } RDI_U32_UDTs; -typedef struct RDI_U32_Members { RDI_U32 v; } RDI_U32_Members; -typedef struct RDI_U32_EnumMembers { RDI_U32 v; } RDI_U32_EnumMembers; -typedef struct RDI_U32_GlobalVariables { RDI_U32 v; } RDI_U32_GlobalVariables; -typedef struct RDI_U32_ThreadVariables { RDI_U32 v; } RDI_U32_ThreadVariables; -typedef struct RDI_U32_Constants { RDI_U32 v; } RDI_U32_Constants; -typedef struct RDI_U32_Procedures { RDI_U32 v; } RDI_U32_Procedures; -typedef struct RDI_U32_Scopes { RDI_U32 v; } RDI_U32_Scopes; -typedef struct RDI_U32_ScopeVOffData { RDI_U32 v; } RDI_U32_ScopeVOffData; -typedef struct RDI_U32_InlineSites { RDI_U32 v; } RDI_U32_InlineSites; -typedef struct RDI_U32_Locals { RDI_U32 v; } RDI_U32_Locals; -typedef struct RDI_U32_LocationBlocks { RDI_U32 v; } RDI_U32_LocationBlocks; -typedef struct RDI_U32_LocationData { RDI_U32 v; } RDI_U32_LocationData; -typedef struct RDI_U32_ConstantValueData { RDI_U32 v; } RDI_U32_ConstantValueData; -typedef struct RDI_U32_ConstantValueTable { RDI_U32 v; } RDI_U32_ConstantValueTable; -typedef struct RDI_U32_NameMaps { RDI_U32 v; } RDI_U32_NameMaps; -typedef struct RDI_U32_NameMapBuckets { RDI_U32 v; } RDI_U32_NameMapBuckets; -typedef struct RDI_U32_NameMapNodes { RDI_U32 v; } RDI_U32_NameMapNodes; -#else -typedef struct RDI_U32_Table { RDI_U32 v; } RDI_U32_Table; -typedef struct RDI_U64_Table { RDI_U64 v; } RDI_U64_Table; -typedef RDI_U32_Table RDI_U32_StringTable; -typedef RDI_U32_Table RDI_U32_IndexRuns; -typedef RDI_U32_Table RDI_U32_BinarySections; -typedef RDI_U32_Table RDI_U32_FilePathNodes; -typedef RDI_U32_Table RDI_U32_SourceFiles; -typedef RDI_U32_Table RDI_U32_LineTables; -typedef RDI_U32_Table RDI_U32_LineInfoVOffs; -typedef RDI_U32_Table RDI_U32_LineInfoLines; -typedef RDI_U32_Table RDI_U32_LineInfoColumns; -typedef RDI_U32_Table RDI_U32_SourceLineMaps; -typedef RDI_U32_Table RDI_U32_SourceLineMapNumbers; -typedef RDI_U32_Table RDI_U32_SourceLineMapRanges; -typedef RDI_U32_Table RDI_U32_SourceLineMapVOffs; -typedef RDI_U32_Table RDI_U32_Units; -typedef RDI_U32_Table RDI_U32_TypeNodes; -typedef RDI_U32_Table RDI_U32_UDTs; -typedef RDI_U32_Table RDI_U32_Members; -typedef RDI_U32_Table RDI_U32_EnumMembers; -typedef RDI_U32_Table RDI_U32_GlobalVariables; -typedef RDI_U32_Table RDI_U32_ThreadVariables; -typedef RDI_U32_Table RDI_U32_Constants; -typedef RDI_U32_Table RDI_U32_Procedures; -typedef RDI_U32_Table RDI_U32_Scopes; -typedef RDI_U32_Table RDI_U32_ScopeVOffData; -typedef RDI_U32_Table RDI_U32_InlineSites; -typedef RDI_U32_Table RDI_U32_Locals; -typedef RDI_U32_Table RDI_U32_LocationBlocks; -typedef RDI_U32_Table RDI_U32_LocationData; -typedef RDI_U32_Table RDI_U32_ConstantValueData; -typedef RDI_U32_Table RDI_U32_ConstantValueTable; -typedef RDI_U32_Table RDI_U32_NameMaps; -typedef RDI_U32_Table RDI_U32_NameMapBuckets; -typedef RDI_U32_Table RDI_U32_NameMapNodes; -#endif - -#define RDI_EVAL_CTRLBITS(decodeN,popN,pushN) (((decodeN) << 8) | ((popN) << 4) | ((pushN) << 0)) -#define RDI_DECODEN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 8) & 0xff) -#define RDI_POPN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 4) & 0xf) -#define RDI_PUSHN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 0) & 0xf) -#define RDI_EncodeRegReadParam(reg,bytesize,bytepos) ((reg)|((bytesize)<<8)|((bytepos)<<16)) - -typedef struct RDI_Header RDI_Header; -struct RDI_Header -{ -RDI_U64 magic; -RDI_U32 encoding_version; -RDI_U32 data_section_off; -RDI_U32 data_section_count; -}; - -typedef struct RDI_Section RDI_Section; -struct RDI_Section -{ -RDI_SectionEncoding encoding; -RDI_U32 pad; -RDI_U64 off; -RDI_U64 encoded_size; -RDI_U64 unpacked_size; -}; - -typedef struct RDI_VMapEntry RDI_VMapEntry; -struct RDI_VMapEntry -{ -RDI_U64 voff; -RDI_U64 idx; -}; - -typedef struct RDI_TopLevelInfo RDI_TopLevelInfo; -struct RDI_TopLevelInfo -{ -RDI_Arch arch; -RDI_U32 exe_name_string_idx; -RDI_U64 exe_hash; -RDI_U64 voff_max; -RDI_U32 producer_name_string_idx; -}; - -typedef struct RDI_BinarySection RDI_BinarySection; -struct RDI_BinarySection -{ -RDI_U32 name_string_idx; -RDI_BinarySectionFlags flags; -RDI_U64 voff_first; -RDI_U64 voff_opl; -RDI_U64 foff_first; -RDI_U64 foff_opl; -}; - -typedef struct RDI_FilePathNode RDI_FilePathNode; -struct RDI_FilePathNode -{ -RDI_U32 name_string_idx; -RDI_U32 parent_path_node; -RDI_U32 first_child; -RDI_U32 next_sibling; -RDI_U32 source_file_idx; -}; - -typedef struct RDI_SourceFile RDI_SourceFile; -struct RDI_SourceFile -{ -RDI_U32 file_path_node_idx; -RDI_U32 normal_full_path_string_idx; -RDI_U32 source_line_map_idx; -}; - -typedef struct RDI_Unit RDI_Unit; -struct RDI_Unit -{ -RDI_U32 unit_name_string_idx; -RDI_U32 compiler_name_string_idx; -RDI_U32 source_file_path_node; -RDI_U32 object_file_path_node; -RDI_U32 archive_file_path_node; -RDI_U32 build_path_node; -RDI_Language language; -RDI_U32 line_table_idx; -}; - -typedef struct RDI_LineTable RDI_LineTable; -struct RDI_LineTable -{ -RDI_U32 voffs_base_idx; -RDI_U32 lines_base_idx; -RDI_U32 cols_base_idx; -RDI_U32 lines_count; -RDI_U32 cols_count; -}; - -typedef struct RDI_Line RDI_Line; -struct RDI_Line -{ -RDI_U32 file_idx; -RDI_U32 line_num; -}; - -typedef struct RDI_Column RDI_Column; -struct RDI_Column -{ -RDI_U16 col_first; -RDI_U16 col_opl; -}; - -typedef struct RDI_SourceLineMap RDI_SourceLineMap; -struct RDI_SourceLineMap -{ -RDI_U32 line_count; -RDI_U32 voff_count; -RDI_U32 line_map_nums_base_idx; -RDI_U32 line_map_range_base_idx; -RDI_U32 line_map_voff_base_idx; -}; - -typedef struct RDI_TypeNode RDI_TypeNode; -struct RDI_TypeNode -{ -RDI_TypeKind kind; -RDI_U16 flags; -RDI_U32 byte_size; - - union - { - // kind is 'built-in' - struct - { - RDI_U32 name_string_idx; - } built_in; - - // kind is 'constructed' - struct - { - RDI_U32 direct_type_idx; - RDI_U32 count; - union - { - // when kind is 'Function' or 'Method' - RDI_U32 param_idx_run_first; - // when kind is 'MemberPtr' - RDI_U32 owner_type_idx; - }; - } - constructed; - - // kind is 'user defined' - struct - { - RDI_U32 name_string_idx; - RDI_U32 direct_type_idx; - RDI_U32 udt_idx; - } - user_defined; - - // (kind = Bitfield) - struct - { - RDI_U32 direct_type_idx; - RDI_U32 off; - RDI_U32 size; - } - bitfield; - } - ; -}; - -typedef struct RDI_UDT RDI_UDT; -struct RDI_UDT -{ -RDI_U32 self_type_idx; -RDI_UDTFlags flags; -RDI_U32 member_first; -RDI_U32 member_count; -RDI_U32 file_idx; -RDI_U32 line; -RDI_U32 col; -}; - -typedef struct RDI_Member RDI_Member; -struct RDI_Member -{ -RDI_MemberKind kind; -RDI_U16 pad; -RDI_U32 name_string_idx; -RDI_U32 type_idx; -RDI_U32 off; -}; - -typedef struct RDI_EnumMember RDI_EnumMember; -struct RDI_EnumMember -{ -RDI_U32 name_string_idx; -RDI_U32 pad; -RDI_U64 val; -}; - -typedef struct RDI_GlobalVariable RDI_GlobalVariable; -struct RDI_GlobalVariable -{ -RDI_U32 name_string_idx; -RDI_LinkFlags link_flags; -RDI_U64 voff; -RDI_U32 type_idx; -RDI_U32 container_idx; -}; - -typedef struct RDI_ThreadVariable RDI_ThreadVariable; -struct RDI_ThreadVariable -{ -RDI_U32 name_string_idx; -RDI_LinkFlags link_flags; -RDI_U32 tls_off; -RDI_U32 type_idx; -RDI_U32 container_idx; -}; - -typedef struct RDI_Constant RDI_Constant; -struct RDI_Constant -{ -RDI_U32 name_string_idx; -RDI_U32 type_idx; -RDI_U32 constant_value_idx; -}; - -typedef struct RDI_Procedure RDI_Procedure; -struct RDI_Procedure -{ -RDI_U32 name_string_idx; -RDI_U32 link_name_string_idx; -RDI_LinkFlags link_flags; -RDI_U32 type_idx; -RDI_U32 root_scope_idx; -RDI_U32 container_idx; -RDI_U32 frame_base_location_first; -RDI_U32 frame_base_location_opl; -}; - -typedef struct RDI_Scope RDI_Scope; -struct RDI_Scope -{ -RDI_U32 proc_idx; -RDI_U32 parent_scope_idx; -RDI_U32 first_child_scope_idx; -RDI_U32 next_sibling_scope_idx; -RDI_U32 voff_range_first; -RDI_U32 voff_range_opl; -RDI_U32 local_first; -RDI_U32 local_count; -RDI_U32 static_local_idx_run_first; -RDI_U32 static_local_count; -RDI_U32 inline_site_idx; -}; - -typedef struct RDI_InlineSite RDI_InlineSite; -struct RDI_InlineSite -{ -RDI_U32 name_string_idx; -RDI_U32 type_idx; -RDI_U32 owner_type_idx; -RDI_U32 line_table_idx; -}; - -typedef struct RDI_Local RDI_Local; -struct RDI_Local -{ -RDI_LocalKind kind; -RDI_U32 name_string_idx; -RDI_U32 type_idx; -RDI_U32 pad; -RDI_U32 location_first; -RDI_U32 location_opl; -}; - -typedef struct RDI_LocationBlock RDI_LocationBlock; -struct RDI_LocationBlock -{ -RDI_U32 scope_off_first; -RDI_U32 scope_off_opl; -RDI_U32 location_data_off; -}; - -typedef struct RDI_LocationBytecodeStream RDI_LocationBytecodeStream; -struct RDI_LocationBytecodeStream -{ -RDI_LocationKind kind; -}; - -typedef struct RDI_LocationRegPlusU16 RDI_LocationRegPlusU16; -struct RDI_LocationRegPlusU16 -{ -RDI_LocationKind kind; -RDI_RegCode reg_code; -RDI_U16 offset; -}; - -typedef struct RDI_LocationReg RDI_LocationReg; -struct RDI_LocationReg -{ -RDI_LocationKind kind; -RDI_RegCode reg_code; -}; - -typedef struct RDI_NameMap RDI_NameMap; -struct RDI_NameMap -{ -RDI_U32 bucket_base_idx; -RDI_U32 node_base_idx; -RDI_U32 bucket_count; -RDI_U32 node_count; -}; - -typedef struct RDI_NameMapBucket RDI_NameMapBucket; -struct RDI_NameMapBucket -{ -RDI_U32 first_node; -RDI_U32 node_count; -}; - -typedef struct RDI_NameMapNode RDI_NameMapNode; -struct RDI_NameMapNode -{ -RDI_U32 string_idx; -RDI_U32 match_count; -RDI_U32 match_idx_or_idx_run_first; -}; - -typedef RDI_TopLevelInfo RDI_SectionElementType_TopLevelInfo; -typedef RDI_U8 RDI_SectionElementType_StringData; -typedef RDI_U32 RDI_SectionElementType_StringTable; -typedef RDI_U32 RDI_SectionElementType_IndexRuns; -typedef RDI_BinarySection RDI_SectionElementType_BinarySections; -typedef RDI_FilePathNode RDI_SectionElementType_FilePathNodes; -typedef RDI_SourceFile RDI_SectionElementType_SourceFiles; -typedef RDI_LineTable RDI_SectionElementType_LineTables; -typedef RDI_U64 RDI_SectionElementType_LineInfoVOffs; -typedef RDI_Line RDI_SectionElementType_LineInfoLines; -typedef RDI_Column RDI_SectionElementType_LineInfoColumns; -typedef RDI_SourceLineMap RDI_SectionElementType_SourceLineMaps; -typedef RDI_U32 RDI_SectionElementType_SourceLineMapNumbers; -typedef RDI_U32 RDI_SectionElementType_SourceLineMapRanges; -typedef RDI_U64 RDI_SectionElementType_SourceLineMapVOffs; -typedef RDI_Unit RDI_SectionElementType_Units; -typedef RDI_VMapEntry RDI_SectionElementType_UnitVMap; -typedef RDI_TypeNode RDI_SectionElementType_TypeNodes; -typedef RDI_UDT RDI_SectionElementType_UDTs; -typedef RDI_Member RDI_SectionElementType_Members; -typedef RDI_EnumMember RDI_SectionElementType_EnumMembers; -typedef RDI_GlobalVariable RDI_SectionElementType_GlobalVariables; -typedef RDI_VMapEntry RDI_SectionElementType_GlobalVMap; -typedef RDI_ThreadVariable RDI_SectionElementType_ThreadVariables; -typedef RDI_Constant RDI_SectionElementType_Constants; -typedef RDI_Procedure RDI_SectionElementType_Procedures; -typedef RDI_Scope RDI_SectionElementType_Scopes; -typedef RDI_U64 RDI_SectionElementType_ScopeVOffData; -typedef RDI_VMapEntry RDI_SectionElementType_ScopeVMap; -typedef RDI_InlineSite RDI_SectionElementType_InlineSites; -typedef RDI_Local RDI_SectionElementType_Locals; -typedef RDI_LocationBlock RDI_SectionElementType_LocationBlocks; -typedef RDI_U8 RDI_SectionElementType_LocationData; -typedef RDI_U8 RDI_SectionElementType_ConstantValueData; -typedef RDI_U32 RDI_SectionElementType_ConstantValueTable; -typedef RDI_NameMap RDI_SectionElementType_NameMaps; -typedef RDI_NameMapBucket RDI_SectionElementType_NameMapBuckets; -typedef RDI_NameMapNode RDI_SectionElementType_NameMapNodes; - -RDI_PROC RDI_U64 rdi_hash(RDI_U8 *ptr, RDI_U64 size); -RDI_PROC RDI_U8 *rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out); -RDI_PROC RDI_U32 rdi_size_from_basic_type_kind(RDI_TypeKind kind); -RDI_PROC RDI_U32 rdi_addr_size_from_arch(RDI_Arch arch); -RDI_PROC RDI_EvalConversionKind rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out); -RDI_PROC RDI_S32 rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group); -RDI_PROC RDI_U8 *rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out); - -extern RDI_U16 rdi_section_element_size_table[40]; -extern RDI_U8 rdi_section_is_required_table[40]; -extern RDI_U16 rdi_eval_op_ctrlbits_table[52]; - -#endif // RDI_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////////////////////////////////////// +//~ (R)AD (D)ebug (I)nfo Format Library +// +// Defines standard RDI debug information format types and +// functions. + +#ifndef RDI_H +#define RDI_H + +//////////////////////////////////////////////////////////////// +//~ Overridable Procedure Decoration + +#if !defined(RDI_PROC) +# define RDI_PROC static +#endif + +//////////////////////////////////////////////////////////////// +//~ Overridable Basic Integer Types + +#if !defined(RDI_U8) +# define RDI_U8 RDI_U8 +# define RDI_U16 RDI_U16 +# define RDI_U32 RDI_U32 +# define RDI_U64 RDI_U64 +# define RDI_S8 RDI_S8 +# define RDI_S16 RDI_S16 +# define RDI_S32 RDI_S32 +# define RDI_S64 RDI_S64 +#include +typedef uint8_t RDI_U8; +typedef uint16_t RDI_U16; +typedef uint32_t RDI_U32; +typedef uint64_t RDI_U64; +typedef int8_t RDI_S8; +typedef int16_t RDI_S16; +typedef int32_t RDI_S32; +typedef int64_t RDI_S64; +#endif + +//////////////////////////////////////////////////////////////// +//~ Overridable Enabling/Disabling Of Table Index Typechecking + +#if !defined(RDI_DISABLE_TABLE_INDEX_TYPECHECKING) +# define RDI_DISABLE_TABLE_INDEX_TYPECHECKING 0 +#endif + +//////////////////////////////////////////////////////////////// +//~ Format Constants + +// "raddbg\0\0" +#define RDI_MAGIC_CONSTANT 0x0000676264646172 +#define RDI_ENCODING_VERSION 12 + +//////////////////////////////////////////////////////////////// +//~ Format Types & Functions + +typedef RDI_U32 RDI_SectionKind; +typedef enum RDI_SectionKindEnum +{ +RDI_SectionKind_NULL = 0x0000, +RDI_SectionKind_TopLevelInfo = 0x0001, +RDI_SectionKind_StringData = 0x0002, +RDI_SectionKind_StringTable = 0x0003, +RDI_SectionKind_IndexRuns = 0x0004, +RDI_SectionKind_BinarySections = 0x0005, +RDI_SectionKind_FilePathNodes = 0x0006, +RDI_SectionKind_SourceFiles = 0x0007, +RDI_SectionKind_LineTables = 0x0008, +RDI_SectionKind_LineInfoVOffs = 0x0009, +RDI_SectionKind_LineInfoLines = 0x000A, +RDI_SectionKind_LineInfoColumns = 0x000B, +RDI_SectionKind_SourceLineMaps = 0x000C, +RDI_SectionKind_SourceLineMapNumbers = 0x000D, +RDI_SectionKind_SourceLineMapRanges = 0x000E, +RDI_SectionKind_SourceLineMapVOffs = 0x000F, +RDI_SectionKind_Units = 0x0010, +RDI_SectionKind_UnitVMap = 0x0011, +RDI_SectionKind_TypeNodes = 0x0012, +RDI_SectionKind_UDTs = 0x0013, +RDI_SectionKind_Members = 0x0014, +RDI_SectionKind_EnumMembers = 0x0015, +RDI_SectionKind_GlobalVariables = 0x0016, +RDI_SectionKind_GlobalVMap = 0x0017, +RDI_SectionKind_ThreadVariables = 0x0018, +RDI_SectionKind_Constants = 0x0019, +RDI_SectionKind_Procedures = 0x001A, +RDI_SectionKind_Scopes = 0x001B, +RDI_SectionKind_ScopeVOffData = 0x001C, +RDI_SectionKind_ScopeVMap = 0x001D, +RDI_SectionKind_InlineSites = 0x001E, +RDI_SectionKind_Locals = 0x001F, +RDI_SectionKind_LocationBlocks = 0x0020, +RDI_SectionKind_LocationData = 0x0021, +RDI_SectionKind_ConstantValueData = 0x0022, +RDI_SectionKind_ConstantValueTable = 0x0023, +RDI_SectionKind_NameMaps = 0x0024, +RDI_SectionKind_NameMapBuckets = 0x0025, +RDI_SectionKind_NameMapNodes = 0x0026, +RDI_SectionKind_COUNT = 0x0027, +} RDI_SectionKindEnum; + +typedef RDI_U32 RDI_SectionEncoding; +typedef enum RDI_SectionEncodingEnum +{ +RDI_SectionEncoding_Unpacked = 0, +RDI_SectionEncoding_LZB = 1, +} RDI_SectionEncodingEnum; + +typedef RDI_U32 RDI_Arch; +typedef enum RDI_ArchEnum +{ +RDI_Arch_NULL = 0, +RDI_Arch_X86 = 1, +RDI_Arch_X64 = 2, +} RDI_ArchEnum; + +typedef RDI_U8 RDI_RegCode; +typedef enum RDI_RegCodeEnum +{ +RDI_RegCode_nil, +} RDI_RegCodeEnum; + +typedef RDI_U8 RDI_RegCodeX86; +typedef enum RDI_RegCodeX86Enum +{ +RDI_RegCodeX86_nil = 0, +RDI_RegCodeX86_eax = 1, +RDI_RegCodeX86_ecx = 2, +RDI_RegCodeX86_edx = 3, +RDI_RegCodeX86_ebx = 4, +RDI_RegCodeX86_esp = 5, +RDI_RegCodeX86_ebp = 6, +RDI_RegCodeX86_esi = 7, +RDI_RegCodeX86_edi = 8, +RDI_RegCodeX86_fsbase = 9, +RDI_RegCodeX86_gsbase = 10, +RDI_RegCodeX86_eflags = 11, +RDI_RegCodeX86_eip = 12, +RDI_RegCodeX86_dr0 = 13, +RDI_RegCodeX86_dr1 = 14, +RDI_RegCodeX86_dr2 = 15, +RDI_RegCodeX86_dr3 = 16, +RDI_RegCodeX86_dr4 = 17, +RDI_RegCodeX86_dr5 = 18, +RDI_RegCodeX86_dr6 = 19, +RDI_RegCodeX86_dr7 = 20, +RDI_RegCodeX86_fpr0 = 21, +RDI_RegCodeX86_fpr1 = 22, +RDI_RegCodeX86_fpr2 = 23, +RDI_RegCodeX86_fpr3 = 24, +RDI_RegCodeX86_fpr4 = 25, +RDI_RegCodeX86_fpr5 = 26, +RDI_RegCodeX86_fpr6 = 27, +RDI_RegCodeX86_fpr7 = 28, +RDI_RegCodeX86_st0 = 29, +RDI_RegCodeX86_st1 = 30, +RDI_RegCodeX86_st2 = 31, +RDI_RegCodeX86_st3 = 32, +RDI_RegCodeX86_st4 = 33, +RDI_RegCodeX86_st5 = 34, +RDI_RegCodeX86_st6 = 35, +RDI_RegCodeX86_st7 = 36, +RDI_RegCodeX86_fcw = 37, +RDI_RegCodeX86_fsw = 38, +RDI_RegCodeX86_ftw = 39, +RDI_RegCodeX86_fop = 40, +RDI_RegCodeX86_fcs = 41, +RDI_RegCodeX86_fds = 42, +RDI_RegCodeX86_fip = 43, +RDI_RegCodeX86_fdp = 44, +RDI_RegCodeX86_mxcsr = 45, +RDI_RegCodeX86_mxcsr_mask = 46, +RDI_RegCodeX86_ss = 47, +RDI_RegCodeX86_cs = 48, +RDI_RegCodeX86_ds = 49, +RDI_RegCodeX86_es = 50, +RDI_RegCodeX86_fs = 51, +RDI_RegCodeX86_gs = 52, +RDI_RegCodeX86_ymm0 = 53, +RDI_RegCodeX86_ymm1 = 54, +RDI_RegCodeX86_ymm2 = 55, +RDI_RegCodeX86_ymm3 = 56, +RDI_RegCodeX86_ymm4 = 57, +RDI_RegCodeX86_ymm5 = 58, +RDI_RegCodeX86_ymm6 = 59, +RDI_RegCodeX86_ymm7 = 60, +} RDI_RegCodeX86Enum; + +typedef RDI_U8 RDI_RegCodeX64; +typedef enum RDI_RegCodeX64Enum +{ +RDI_RegCodeX64_nil = 0, +RDI_RegCodeX64_rax = 1, +RDI_RegCodeX64_rcx = 2, +RDI_RegCodeX64_rdx = 3, +RDI_RegCodeX64_rbx = 4, +RDI_RegCodeX64_rsp = 5, +RDI_RegCodeX64_rbp = 6, +RDI_RegCodeX64_rsi = 7, +RDI_RegCodeX64_rdi = 8, +RDI_RegCodeX64_r8 = 9, +RDI_RegCodeX64_r9 = 10, +RDI_RegCodeX64_r10 = 11, +RDI_RegCodeX64_r11 = 12, +RDI_RegCodeX64_r12 = 13, +RDI_RegCodeX64_r13 = 14, +RDI_RegCodeX64_r14 = 15, +RDI_RegCodeX64_r15 = 16, +RDI_RegCodeX64_es = 17, +RDI_RegCodeX64_cs = 18, +RDI_RegCodeX64_ss = 19, +RDI_RegCodeX64_ds = 20, +RDI_RegCodeX64_fs = 21, +RDI_RegCodeX64_gs = 22, +RDI_RegCodeX64_rip = 23, +RDI_RegCodeX64_rflags = 24, +RDI_RegCodeX64_dr0 = 25, +RDI_RegCodeX64_dr1 = 26, +RDI_RegCodeX64_dr2 = 27, +RDI_RegCodeX64_dr3 = 28, +RDI_RegCodeX64_dr4 = 29, +RDI_RegCodeX64_dr5 = 30, +RDI_RegCodeX64_dr6 = 31, +RDI_RegCodeX64_dr7 = 32, +RDI_RegCodeX64_st0 = 33, +RDI_RegCodeX64_st1 = 34, +RDI_RegCodeX64_st2 = 35, +RDI_RegCodeX64_st3 = 36, +RDI_RegCodeX64_st4 = 37, +RDI_RegCodeX64_st5 = 38, +RDI_RegCodeX64_st6 = 39, +RDI_RegCodeX64_st7 = 40, +RDI_RegCodeX64_fpr0 = 41, +RDI_RegCodeX64_fpr1 = 42, +RDI_RegCodeX64_fpr2 = 43, +RDI_RegCodeX64_fpr3 = 44, +RDI_RegCodeX64_fpr4 = 45, +RDI_RegCodeX64_fpr5 = 46, +RDI_RegCodeX64_fpr6 = 47, +RDI_RegCodeX64_fpr7 = 48, +RDI_RegCodeX64_zmm0 = 49, +RDI_RegCodeX64_zmm1 = 50, +RDI_RegCodeX64_zmm2 = 51, +RDI_RegCodeX64_zmm3 = 52, +RDI_RegCodeX64_zmm4 = 53, +RDI_RegCodeX64_zmm5 = 54, +RDI_RegCodeX64_zmm6 = 55, +RDI_RegCodeX64_zmm7 = 56, +RDI_RegCodeX64_zmm8 = 57, +RDI_RegCodeX64_zmm9 = 58, +RDI_RegCodeX64_zmm10 = 59, +RDI_RegCodeX64_zmm11 = 60, +RDI_RegCodeX64_zmm12 = 61, +RDI_RegCodeX64_zmm13 = 62, +RDI_RegCodeX64_zmm14 = 63, +RDI_RegCodeX64_zmm15 = 64, +RDI_RegCodeX64_zmm16 = 65, +RDI_RegCodeX64_zmm17 = 66, +RDI_RegCodeX64_zmm18 = 67, +RDI_RegCodeX64_zmm19 = 68, +RDI_RegCodeX64_zmm20 = 69, +RDI_RegCodeX64_zmm21 = 70, +RDI_RegCodeX64_zmm22 = 71, +RDI_RegCodeX64_zmm23 = 72, +RDI_RegCodeX64_zmm24 = 73, +RDI_RegCodeX64_zmm25 = 74, +RDI_RegCodeX64_zmm26 = 75, +RDI_RegCodeX64_zmm27 = 76, +RDI_RegCodeX64_zmm28 = 77, +RDI_RegCodeX64_zmm29 = 78, +RDI_RegCodeX64_zmm30 = 79, +RDI_RegCodeX64_zmm31 = 80, +RDI_RegCodeX64_k0 = 81, +RDI_RegCodeX64_k1 = 82, +RDI_RegCodeX64_k2 = 83, +RDI_RegCodeX64_k3 = 84, +RDI_RegCodeX64_k4 = 85, +RDI_RegCodeX64_k5 = 86, +RDI_RegCodeX64_k6 = 87, +RDI_RegCodeX64_k7 = 88, +RDI_RegCodeX64_mxcsr = 89, +RDI_RegCodeX64_fsbase = 90, +RDI_RegCodeX64_gsbase = 91, +RDI_RegCodeX64_fcw = 92, +RDI_RegCodeX64_fsw = 93, +RDI_RegCodeX64_ftw = 94, +RDI_RegCodeX64_fop = 95, +RDI_RegCodeX64_fcs = 96, +RDI_RegCodeX64_fds = 97, +RDI_RegCodeX64_fip = 98, +RDI_RegCodeX64_fdp = 99, +RDI_RegCodeX64_mxcsr_mask = 100, +} RDI_RegCodeX64Enum; + +typedef RDI_U32 RDI_BinarySectionFlags; +typedef enum RDI_BinarySectionFlagsEnum +{ +RDI_BinarySectionFlag_Read = 1<<0, +RDI_BinarySectionFlag_Write = 1<<1, +RDI_BinarySectionFlag_Execute = 1<<2, +} RDI_BinarySectionFlagsEnum; + +typedef RDI_U32 RDI_Language; +typedef enum RDI_LanguageEnum +{ +RDI_Language_NULL = 0, +RDI_Language_C = 1, +RDI_Language_CPlusPlus = 2, +RDI_Language_Masm = 3, +RDI_Language_COUNT = 4, +} RDI_LanguageEnum; + +typedef RDI_U16 RDI_TypeKind; +typedef enum RDI_TypeKindEnum +{ +RDI_TypeKind_NULL = 0x0000, +RDI_TypeKind_Void = 0x0001, +RDI_TypeKind_Handle = 0x0002, +RDI_TypeKind_HResult = 0x0003, +RDI_TypeKind_Char8 = 0x0004, +RDI_TypeKind_Char16 = 0x0005, +RDI_TypeKind_Char32 = 0x0006, +RDI_TypeKind_UChar8 = 0x0007, +RDI_TypeKind_UChar16 = 0x0008, +RDI_TypeKind_UChar32 = 0x0009, +RDI_TypeKind_U8 = 0x000A, +RDI_TypeKind_U16 = 0x000B, +RDI_TypeKind_U32 = 0x000C, +RDI_TypeKind_U64 = 0x000D, +RDI_TypeKind_U128 = 0x000E, +RDI_TypeKind_U256 = 0x000F, +RDI_TypeKind_U512 = 0x0010, +RDI_TypeKind_S8 = 0x0011, +RDI_TypeKind_S16 = 0x0012, +RDI_TypeKind_S32 = 0x0013, +RDI_TypeKind_S64 = 0x0014, +RDI_TypeKind_S128 = 0x0015, +RDI_TypeKind_S256 = 0x0016, +RDI_TypeKind_S512 = 0x0017, +RDI_TypeKind_Bool = 0x0018, +RDI_TypeKind_F16 = 0x0019, +RDI_TypeKind_F32 = 0x001A, +RDI_TypeKind_F32PP = 0x001B, +RDI_TypeKind_F48 = 0x001C, +RDI_TypeKind_F64 = 0x001D, +RDI_TypeKind_F80 = 0x001E, +RDI_TypeKind_F128 = 0x001F, +RDI_TypeKind_ComplexF32 = 0x0020, +RDI_TypeKind_ComplexF64 = 0x0021, +RDI_TypeKind_ComplexF80 = 0x0022, +RDI_TypeKind_ComplexF128 = 0x0023, +RDI_TypeKind_Modifier = 0x1000, +RDI_TypeKind_Ptr = 0x1001, +RDI_TypeKind_LRef = 0x1002, +RDI_TypeKind_RRef = 0x1003, +RDI_TypeKind_Array = 0x1004, +RDI_TypeKind_Function = 0x1005, +RDI_TypeKind_Method = 0x1006, +RDI_TypeKind_MemberPtr = 0x1007, +RDI_TypeKind_Struct = 0x2000, +RDI_TypeKind_Class = 0x2001, +RDI_TypeKind_Union = 0x2002, +RDI_TypeKind_Enum = 0x2003, +RDI_TypeKind_Alias = 0x2004, +RDI_TypeKind_IncompleteStruct = 0x2005, +RDI_TypeKind_IncompleteUnion = 0x2006, +RDI_TypeKind_IncompleteClass = 0x2007, +RDI_TypeKind_IncompleteEnum = 0x2008, +RDI_TypeKind_Bitfield = 0xF000, +RDI_TypeKind_Variadic = 0xF001, +RDI_TypeKind_Count = 0xF002, +RDI_TypeKind_FirstBuiltIn = RDI_TypeKind_Void, +RDI_TypeKind_LastBuiltIn = RDI_TypeKind_ComplexF128, +RDI_TypeKind_FirstConstructed = RDI_TypeKind_Modifier, +RDI_TypeKind_LastConstructed = RDI_TypeKind_MemberPtr, +RDI_TypeKind_FirstUserDefined = RDI_TypeKind_Struct, +RDI_TypeKind_LastRecord = RDI_TypeKind_Union, +RDI_TypeKind_FirstIncomplete = RDI_TypeKind_IncompleteStruct, +RDI_TypeKind_LastIncomplete = RDI_TypeKind_IncompleteEnum, +RDI_TypeKind_FirstRecord = RDI_TypeKind_Struct, +RDI_TypeKind_LastUserDefined = RDI_TypeKind_IncompleteEnum, +} RDI_TypeKindEnum; + +typedef RDI_U16 RDI_TypeModifierFlags; +typedef enum RDI_TypeModifierFlagsEnum +{ +RDI_TypeModifierFlag_Const = 1<<0, +RDI_TypeModifierFlag_Volatile = 1<<1, +RDI_TypeModifierFlag_Restrict = 1<<2, +} RDI_TypeModifierFlagsEnum; + +typedef RDI_U32 RDI_UDTFlags; +typedef enum RDI_UDTFlagsEnum +{ +RDI_UDTFlag_EnumMembers = 1<<0, +} RDI_UDTFlagsEnum; + +typedef RDI_U16 RDI_MemberKind; +typedef enum RDI_MemberKindEnum +{ +RDI_MemberKind_NULL = 0x0000, +RDI_MemberKind_DataField = 0x0001, +RDI_MemberKind_StaticData = 0x0002, +RDI_MemberKind_Method = 0x0100, +RDI_MemberKind_StaticMethod = 0x0101, +RDI_MemberKind_VirtualMethod = 0x0102, +RDI_MemberKind_VTablePtr = 0x0200, +RDI_MemberKind_Base = 0x0201, +RDI_MemberKind_VirtualBase = 0x0202, +RDI_MemberKind_NestedType = 0x0300, +} RDI_MemberKindEnum; + +typedef RDI_U32 RDI_LinkFlags; +typedef enum RDI_LinkFlagsEnum +{ +RDI_LinkFlag_External = 1<<0, +RDI_LinkFlag_TypeScoped = 1<<1, +RDI_LinkFlag_ProcScoped = 1<<2, +} RDI_LinkFlagsEnum; + +typedef RDI_U32 RDI_LocalKind; +typedef enum RDI_LocalKindEnum +{ +RDI_LocalKind_NULL = 0x0, +RDI_LocalKind_Parameter = 0x1, +RDI_LocalKind_Variable = 0x2, +} RDI_LocalKindEnum; + +typedef RDI_U8 RDI_LocationKind; +typedef enum RDI_LocationKindEnum +{ +RDI_LocationKind_NULL = 0x0, +RDI_LocationKind_AddrBytecodeStream = 0x1, +RDI_LocationKind_ValBytecodeStream = 0x2, +RDI_LocationKind_AddrRegPlusU16 = 0x3, +RDI_LocationKind_AddrAddrRegPlusU16 = 0x4, +RDI_LocationKind_ValReg = 0x5, +} RDI_LocationKindEnum; + +typedef RDI_U8 RDI_EvalOp; +typedef enum RDI_EvalOpEnum +{ +RDI_EvalOp_Stop = 0, +RDI_EvalOp_Noop = 1, +RDI_EvalOp_Cond = 2, +RDI_EvalOp_Skip = 3, +RDI_EvalOp_MemRead = 4, +RDI_EvalOp_RegRead = 5, +RDI_EvalOp_RegReadDyn = 6, +RDI_EvalOp_FrameOff = 7, +RDI_EvalOp_ModuleOff = 8, +RDI_EvalOp_TLSOff = 9, +RDI_EvalOp_ObjectOff = 10, +RDI_EvalOp_CFA = 11, +RDI_EvalOp_ConstU8 = 12, +RDI_EvalOp_ConstU16 = 13, +RDI_EvalOp_ConstU32 = 14, +RDI_EvalOp_ConstU64 = 15, +RDI_EvalOp_ConstU128 = 16, +RDI_EvalOp_ConstString = 17, +RDI_EvalOp_Abs = 18, +RDI_EvalOp_Neg = 19, +RDI_EvalOp_Add = 20, +RDI_EvalOp_Sub = 21, +RDI_EvalOp_Mul = 22, +RDI_EvalOp_Div = 23, +RDI_EvalOp_Mod = 24, +RDI_EvalOp_LShift = 25, +RDI_EvalOp_RShift = 26, +RDI_EvalOp_BitAnd = 27, +RDI_EvalOp_BitOr = 28, +RDI_EvalOp_BitXor = 29, +RDI_EvalOp_BitNot = 30, +RDI_EvalOp_LogAnd = 31, +RDI_EvalOp_LogOr = 32, +RDI_EvalOp_LogNot = 33, +RDI_EvalOp_EqEq = 34, +RDI_EvalOp_NtEq = 35, +RDI_EvalOp_LsEq = 36, +RDI_EvalOp_GrEq = 37, +RDI_EvalOp_Less = 38, +RDI_EvalOp_Grtr = 39, +RDI_EvalOp_Trunc = 40, +RDI_EvalOp_TruncSigned = 41, +RDI_EvalOp_Convert = 42, +RDI_EvalOp_Pick = 43, +RDI_EvalOp_Pop = 44, +RDI_EvalOp_Insert = 45, +RDI_EvalOp_ValueRead = 46, +RDI_EvalOp_ByteSwap = 47, +RDI_EvalOp_CallSiteValue = 48, +RDI_EvalOp_PartialValue = 49, +RDI_EvalOp_PartialValueBit = 50, +RDI_EvalOp_COUNT = 51, +} RDI_EvalOpEnum; + +typedef RDI_U8 RDI_EvalTypeGroup; +typedef enum RDI_EvalTypeGroupEnum +{ +RDI_EvalTypeGroup_Other = 0, +RDI_EvalTypeGroup_U = 1, +RDI_EvalTypeGroup_S = 2, +RDI_EvalTypeGroup_F32 = 3, +RDI_EvalTypeGroup_F64 = 4, +RDI_EvalTypeGroup_COUNT = 5, +} RDI_EvalTypeGroupEnum; + +typedef RDI_U8 RDI_EvalConversionKind; +typedef enum RDI_EvalConversionKindEnum +{ +RDI_EvalConversionKind_Noop = 0, +RDI_EvalConversionKind_Legal = 1, +RDI_EvalConversionKind_OtherToOther = 2, +RDI_EvalConversionKind_ToOther = 3, +RDI_EvalConversionKind_FromOther = 4, +RDI_EvalConversionKind_COUNT = 5, +} RDI_EvalConversionKindEnum; + +typedef RDI_U32 RDI_NameMapKind; +typedef enum RDI_NameMapKindEnum +{ +RDI_NameMapKind_NULL = 0, +RDI_NameMapKind_GlobalVariables = 1, +RDI_NameMapKind_ThreadVariables = 2, +RDI_NameMapKind_Constants = 3, +RDI_NameMapKind_Procedures = 4, +RDI_NameMapKind_Types = 5, +RDI_NameMapKind_LinkNameProcedures = 6, +RDI_NameMapKind_NormalSourcePaths = 7, +RDI_NameMapKind_COUNT = 8, +} RDI_NameMapKindEnum; + +#define RDI_Header_XList \ +X(RDI_U64, magic)\ +X(RDI_U32, encoding_version)\ +X(RDI_U32, data_section_off)\ +X(RDI_U32, data_section_count)\ + +#define RDI_SectionKind_XList \ +X(NULL, null, RDI_U8)\ +X(TopLevelInfo, top_level_info, RDI_TopLevelInfo)\ +X(StringData, string_data, RDI_U8)\ +X(StringTable, string_table, RDI_U32)\ +X(IndexRuns, index_runs, RDI_U32)\ +X(BinarySections, binary_sections, RDI_BinarySection)\ +X(FilePathNodes, file_path_nodes, RDI_FilePathNode)\ +X(SourceFiles, source_files, RDI_SourceFile)\ +X(LineTables, line_tables, RDI_LineTable)\ +X(LineInfoVOffs, line_info_voffs, RDI_U64)\ +X(LineInfoLines, line_info_lines, RDI_Line)\ +X(LineInfoColumns, line_info_columns, RDI_Column)\ +X(SourceLineMaps, source_line_maps, RDI_SourceLineMap)\ +X(SourceLineMapNumbers, source_line_map_numbers, RDI_U32)\ +X(SourceLineMapRanges, source_line_map_ranges, RDI_U32)\ +X(SourceLineMapVOffs, source_line_map_voffs, RDI_U64)\ +X(Units, units, RDI_Unit)\ +X(UnitVMap, unit_vmap, RDI_VMapEntry)\ +X(TypeNodes, type_nodes, RDI_TypeNode)\ +X(UDTs, udts, RDI_UDT)\ +X(Members, members, RDI_Member)\ +X(EnumMembers, enum_members, RDI_EnumMember)\ +X(GlobalVariables, global_variables, RDI_GlobalVariable)\ +X(GlobalVMap, global_vmap, RDI_VMapEntry)\ +X(ThreadVariables, thread_variables, RDI_ThreadVariable)\ +X(Constants, constants, RDI_Constant)\ +X(Procedures, procedures, RDI_Procedure)\ +X(Scopes, scopes, RDI_Scope)\ +X(ScopeVOffData, scope_voff_data, RDI_U64)\ +X(ScopeVMap, scope_vmap, RDI_VMapEntry)\ +X(InlineSites, inline_sites, RDI_InlineSite)\ +X(Locals, locals, RDI_Local)\ +X(LocationBlocks, location_blocks, RDI_LocationBlock)\ +X(LocationData, location_data, RDI_U8)\ +X(ConstantValueData, constant_value_data, RDI_U8)\ +X(ConstantValueTable, constant_value_table, RDI_U32)\ +X(NameMaps, name_maps, RDI_NameMap)\ +X(NameMapBuckets, name_map_buckets, RDI_NameMapBucket)\ +X(NameMapNodes, name_map_nodes, RDI_NameMapNode)\ + +#define RDI_SectionEncoding_XList \ +X(Unpacked)\ +X(LZB)\ + +#define RDI_Section_XList \ +X(RDI_SectionEncoding, encoding)\ +X(RDI_U32, pad)\ +X(RDI_U64, off)\ +X(RDI_U64, encoded_size)\ +X(RDI_U64, unpacked_size)\ + +#define RDI_VMapEntry_XList \ +X(RDI_U64, voff)\ +X(RDI_U64, idx)\ + +#define RDI_Arch_XList \ +X(NULL)\ +X(X86)\ +X(X64)\ + +#define RDI_RegCodeX86_XList \ +X(nil, 0)\ +X(eax, 1)\ +X(ecx, 2)\ +X(edx, 3)\ +X(ebx, 4)\ +X(esp, 5)\ +X(ebp, 6)\ +X(esi, 7)\ +X(edi, 8)\ +X(fsbase, 9)\ +X(gsbase, 10)\ +X(eflags, 11)\ +X(eip, 12)\ +X(dr0, 13)\ +X(dr1, 14)\ +X(dr2, 15)\ +X(dr3, 16)\ +X(dr4, 17)\ +X(dr5, 18)\ +X(dr6, 19)\ +X(dr7, 20)\ +X(fpr0, 21)\ +X(fpr1, 22)\ +X(fpr2, 23)\ +X(fpr3, 24)\ +X(fpr4, 25)\ +X(fpr5, 26)\ +X(fpr6, 27)\ +X(fpr7, 28)\ +X(st0, 29)\ +X(st1, 30)\ +X(st2, 31)\ +X(st3, 32)\ +X(st4, 33)\ +X(st5, 34)\ +X(st6, 35)\ +X(st7, 36)\ +X(fcw, 37)\ +X(fsw, 38)\ +X(ftw, 39)\ +X(fop, 40)\ +X(fcs, 41)\ +X(fds, 42)\ +X(fip, 43)\ +X(fdp, 44)\ +X(mxcsr, 45)\ +X(mxcsr_mask, 46)\ +X(ss, 47)\ +X(cs, 48)\ +X(ds, 49)\ +X(es, 50)\ +X(fs, 51)\ +X(gs, 52)\ +X(ymm0, 53)\ +X(ymm1, 54)\ +X(ymm2, 55)\ +X(ymm3, 56)\ +X(ymm4, 57)\ +X(ymm5, 58)\ +X(ymm6, 59)\ +X(ymm7, 60)\ + +#define RDI_RegCodeX64_XList \ +X(nil, 0)\ +X(rax, 1)\ +X(rcx, 2)\ +X(rdx, 3)\ +X(rbx, 4)\ +X(rsp, 5)\ +X(rbp, 6)\ +X(rsi, 7)\ +X(rdi, 8)\ +X(r8, 9)\ +X(r9, 10)\ +X(r10, 11)\ +X(r11, 12)\ +X(r12, 13)\ +X(r13, 14)\ +X(r14, 15)\ +X(r15, 16)\ +X(es, 17)\ +X(cs, 18)\ +X(ss, 19)\ +X(ds, 20)\ +X(fs, 21)\ +X(gs, 22)\ +X(rip, 23)\ +X(rflags, 24)\ +X(dr0, 25)\ +X(dr1, 26)\ +X(dr2, 27)\ +X(dr3, 28)\ +X(dr4, 29)\ +X(dr5, 30)\ +X(dr6, 31)\ +X(dr7, 32)\ +X(st0, 33)\ +X(st1, 34)\ +X(st2, 35)\ +X(st3, 36)\ +X(st4, 37)\ +X(st5, 38)\ +X(st6, 39)\ +X(st7, 40)\ +X(fpr0, 41)\ +X(fpr1, 42)\ +X(fpr2, 43)\ +X(fpr3, 44)\ +X(fpr4, 45)\ +X(fpr5, 46)\ +X(fpr6, 47)\ +X(fpr7, 48)\ +X(zmm0, 49)\ +X(zmm1, 50)\ +X(zmm2, 51)\ +X(zmm3, 52)\ +X(zmm4, 53)\ +X(zmm5, 54)\ +X(zmm6, 55)\ +X(zmm7, 56)\ +X(zmm8, 57)\ +X(zmm9, 58)\ +X(zmm10, 59)\ +X(zmm11, 60)\ +X(zmm12, 61)\ +X(zmm13, 62)\ +X(zmm14, 63)\ +X(zmm15, 64)\ +X(zmm16, 65)\ +X(zmm17, 66)\ +X(zmm18, 67)\ +X(zmm19, 68)\ +X(zmm20, 69)\ +X(zmm21, 70)\ +X(zmm22, 71)\ +X(zmm23, 72)\ +X(zmm24, 73)\ +X(zmm25, 74)\ +X(zmm26, 75)\ +X(zmm27, 76)\ +X(zmm28, 77)\ +X(zmm29, 78)\ +X(zmm30, 79)\ +X(zmm31, 80)\ +X(k0, 81)\ +X(k1, 82)\ +X(k2, 83)\ +X(k3, 84)\ +X(k4, 85)\ +X(k5, 86)\ +X(k6, 87)\ +X(k7, 88)\ +X(mxcsr, 89)\ +X(fsbase, 90)\ +X(gsbase, 91)\ +X(fcw, 92)\ +X(fsw, 93)\ +X(ftw, 94)\ +X(fop, 95)\ +X(fcs, 96)\ +X(fds, 97)\ +X(fip, 98)\ +X(fdp, 99)\ +X(mxcsr_mask, 100)\ + +#define RDI_TopLevelInfo_XList \ +X(RDI_Arch, arch)\ +X(RDI_U32, exe_name_string_idx)\ +X(RDI_U64, exe_hash)\ +X(RDI_U64, voff_max)\ +X(RDI_U32, producer_name_string_idx)\ + +#define RDI_BinarySectionFlags_XList \ +X(Read)\ +X(Write)\ +X(Execute)\ + +#define RDI_BinarySection_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_BinarySectionFlags, flags)\ +X(RDI_U64, voff_first)\ +X(RDI_U64, voff_opl)\ +X(RDI_U64, foff_first)\ +X(RDI_U64, foff_opl)\ + +#define RDI_FilePathNode_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, parent_path_node)\ +X(RDI_U32, first_child)\ +X(RDI_U32, next_sibling)\ +X(RDI_U32, source_file_idx)\ + +#define RDI_SourceFile_XList \ +X(RDI_U32, file_path_node_idx)\ +X(RDI_U32, normal_full_path_string_idx)\ +X(RDI_U32, source_line_map_idx)\ + +#define RDI_Unit_XList \ +X(RDI_U32, unit_name_string_idx)\ +X(RDI_U32, compiler_name_string_idx)\ +X(RDI_U32, source_file_path_node)\ +X(RDI_U32, object_file_path_node)\ +X(RDI_U32, archive_file_path_node)\ +X(RDI_U32, build_path_node)\ +X(RDI_Language, language)\ +X(RDI_U32, line_table_idx)\ + +#define RDI_LineTable_XList \ +X(RDI_U32, voffs_base_idx)\ +X(RDI_U32, lines_base_idx)\ +X(RDI_U32, cols_base_idx)\ +X(RDI_U32, lines_count)\ +X(RDI_U32, cols_count)\ + +#define RDI_Line_XList \ +X(RDI_U32, file_idx)\ +X(RDI_U32, line_num)\ + +#define RDI_Column_XList \ +X(RDI_U16, col_first)\ +X(RDI_U16, col_opl)\ + +#define RDI_SourceLineMapMemberTable \ +X(RDI_U32, line_count)\ +X(RDI_U32, voff_count)\ +X(RDI_U32, line_map_nums_base_idx)\ +X(RDI_U32, line_map_range_base_idx)\ +X(RDI_U32, line_map_voff_base_idx)\ + +#define RDI_Language_XList \ +X(NULL)\ +X(C)\ +X(CPlusPlus)\ +X(Masm)\ +X(COUNT)\ + +#define RDI_TypeKind_XList \ +X(NULL)\ +X(Void)\ +X(Handle)\ +X(HResult)\ +X(Char8)\ +X(Char16)\ +X(Char32)\ +X(UChar8)\ +X(UChar16)\ +X(UChar32)\ +X(U8)\ +X(U16)\ +X(U32)\ +X(U64)\ +X(U128)\ +X(U256)\ +X(U512)\ +X(S8)\ +X(S16)\ +X(S32)\ +X(S64)\ +X(S128)\ +X(S256)\ +X(S512)\ +X(Bool)\ +X(F16)\ +X(F32)\ +X(F32PP)\ +X(F48)\ +X(F64)\ +X(F80)\ +X(F128)\ +X(ComplexF32)\ +X(ComplexF64)\ +X(ComplexF80)\ +X(ComplexF128)\ +X(Modifier)\ +X(Ptr)\ +X(LRef)\ +X(RRef)\ +X(Array)\ +X(Function)\ +X(Method)\ +X(MemberPtr)\ +X(Struct)\ +X(Class)\ +X(Union)\ +X(Enum)\ +X(Alias)\ +X(IncompleteStruct)\ +X(IncompleteUnion)\ +X(IncompleteClass)\ +X(IncompleteEnum)\ +X(Bitfield)\ +X(Variadic)\ +X(Count)\ + +#define RDI_TypeModifierFlags_XList \ +X(Const)\ +X(Volatile)\ +X(Restrict)\ + +#define RDI_TypeNode_XList \ +X(RDI_TypeKind, kind)\ +X(RDI_U16, flags)\ +X(RDI_U32, byte_size)\ + +#define RDI_UDTFlags_XList \ +X(EnumMembers)\ + +#define RDI_UDT_XList \ +X(RDI_U32, self_type_idx)\ +X(RDI_UDTFlags, flags)\ +X(RDI_U32, member_first)\ +X(RDI_U32, member_count)\ +X(RDI_U32, file_idx)\ +X(RDI_U32, line)\ +X(RDI_U32, col)\ + +#define RDI_MemberKind_XList \ +X(NULL)\ +X(DataField)\ +X(StaticData)\ +X(Method)\ +X(StaticMethod)\ +X(VirtualMethod)\ +X(VTablePtr)\ +X(Base)\ +X(VirtualBase)\ +X(NestedType)\ + +#define RDI_Member_XList \ +X(RDI_MemberKind, kind)\ +X(RDI_U16, pad)\ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, type_idx)\ +X(RDI_U32, off)\ + +#define RDI_EnumMember_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, pad)\ +X(RDI_U64, val)\ + +#define RDI_LinkFlags_XList \ +X(External)\ +X(TypeScoped)\ +X(ProcScoped)\ + +#define RDI_LocalKind_XList \ +X(NULL)\ +X(Parameter)\ +X(Variable)\ + +#define RDI_LocationKind_XList \ +X(NULL)\ +X(AddrBytecodeStream)\ +X(ValBytecodeStream)\ +X(AddrRegPlusU16)\ +X(AddrAddrRegPlusU16)\ +X(ValReg)\ + +#define RDI_GlobalVariable_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_LinkFlags, link_flags)\ +X(RDI_U64, voff)\ +X(RDI_U32, type_idx)\ +X(RDI_U32, container_idx)\ + +#define RDI_ThreadVariable_XList \ +X(type, name_string_idx)\ +X(type, link_flags)\ +X(type, tls_off)\ +X(type, type_idx)\ +X(type, container_idx)\ + +#define RDI_Procedure_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, link_name_string_idx)\ +X(RDI_LinkFlags, link_flags)\ +X(RDI_U32, type_idx)\ +X(RDI_U32, root_scope_idx)\ +X(RDI_U32, container_idx)\ +X(RDI_U32, frame_base_location_first)\ +X(RDI_U32, frame_base_location_opl)\ + +#define RDI_Scope_XList \ +X(RDI_U32, proc_idx)\ +X(RDI_U32, parent_scope_idx)\ +X(RDI_U32, first_child_scope_idx)\ +X(RDI_U32, next_sibling_scope_idx)\ +X(RDI_U32, voff_range_first)\ +X(RDI_U32, voff_range_opl)\ +X(RDI_U32, local_first)\ +X(RDI_U32, local_count)\ +X(RDI_U32, static_local_idx_run_first)\ +X(RDI_U32, static_local_count)\ +X(RDI_U32, inline_site_idx)\ + +#define RDI_InlineSite_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, type_idx)\ +X(RDI_U32, owner_type_idx)\ +X(RDI_U32, line_table_idx)\ + +#define RDI_Local_XList \ +X(RDI_LocalKind, kind)\ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, type_idx)\ +X(RDI_U32, pad)\ +X(RDI_U32, location_first)\ +X(RDI_U32, location_opl)\ + +#define RDI_LocationBlock_XList \ +X(RDI_U32, scope_off_first)\ +X(RDI_U32, scope_off_opl)\ +X(RDI_U32, location_data_off)\ + +#define RDI_LocationBytecodeStream_XList \ +X(RDI_LocationKind, kind)\ + +#define RDI_LocationRegPlusU16_XList \ +X(RDI_LocationKind, kind)\ +X(RDI_RegCode, reg_code)\ +X(RDI_U16, offset)\ + +#define RDI_LocationReg_XList \ +X(RDI_LocationKind, kind)\ +X(RDI_RegCode, reg_code)\ + +#define RDI_EvalOp_XList \ +X(Stop)\ +X(Noop)\ +X(Cond)\ +X(Skip)\ +X(MemRead)\ +X(RegRead)\ +X(RegReadDyn)\ +X(FrameOff)\ +X(ModuleOff)\ +X(TLSOff)\ +X(ObjectOff)\ +X(CFA)\ +X(ConstU8)\ +X(ConstU16)\ +X(ConstU32)\ +X(ConstU64)\ +X(ConstU128)\ +X(ConstString)\ +X(Abs)\ +X(Neg)\ +X(Add)\ +X(Sub)\ +X(Mul)\ +X(Div)\ +X(Mod)\ +X(LShift)\ +X(RShift)\ +X(BitAnd)\ +X(BitOr)\ +X(BitXor)\ +X(BitNot)\ +X(LogAnd)\ +X(LogOr)\ +X(LogNot)\ +X(EqEq)\ +X(NtEq)\ +X(LsEq)\ +X(GrEq)\ +X(Less)\ +X(Grtr)\ +X(Trunc)\ +X(TruncSigned)\ +X(Convert)\ +X(Pick)\ +X(Pop)\ +X(Insert)\ +X(ValueRead)\ +X(ByteSwap)\ +X(CallSiteValue)\ +X(PartialValue)\ +X(PartialValueBit)\ + +#define RDI_EvalTypeGroup_XList \ +X(Other)\ +X(U)\ +X(S)\ +X(F32)\ +X(F64)\ + +#define RDI_EvalConversionKind_XList \ +X(Noop)\ +X(Legal)\ +X(OtherToOther)\ +X(ToOther)\ +X(FromOther)\ + +#define RDI_NameMapKind_XList \ +X(NULL)\ +X(GlobalVariables)\ +X(ThreadVariables)\ +X(Constants)\ +X(Procedures)\ +X(Types)\ +X(LinkNameProcedures)\ +X(NormalSourcePaths)\ + +#define RDI_NameMap_XList \ +X(RDI_U32, bucket_base_idx)\ +X(RDI_U32, node_base_idx)\ +X(RDI_U32, bucket_count)\ +X(RDI_U32, node_count)\ + +#define RDI_NameMapBucket_XList \ +X(RDI_U32, first_node)\ +X(RDI_U32, node_count)\ + +#define RDI_NameMapNode_XList \ +X(RDI_U32, string_idx)\ +X(RDI_U32, match_count)\ +X(RDI_U32, match_idx_or_idx_run_first)\ + +#if !RDI_DISABLE_TABLE_INDEX_TYPECHECKING +typedef struct RDI_U32_StringTable { RDI_U32 v; } RDI_U32_StringTable; +typedef struct RDI_U32_IndexRuns { RDI_U32 v; } RDI_U32_IndexRuns; +typedef struct RDI_U32_BinarySections { RDI_U32 v; } RDI_U32_BinarySections; +typedef struct RDI_U32_FilePathNodes { RDI_U32 v; } RDI_U32_FilePathNodes; +typedef struct RDI_U32_SourceFiles { RDI_U32 v; } RDI_U32_SourceFiles; +typedef struct RDI_U32_LineTables { RDI_U32 v; } RDI_U32_LineTables; +typedef struct RDI_U32_LineInfoVOffs { RDI_U32 v; } RDI_U32_LineInfoVOffs; +typedef struct RDI_U32_LineInfoLines { RDI_U32 v; } RDI_U32_LineInfoLines; +typedef struct RDI_U32_LineInfoColumns { RDI_U32 v; } RDI_U32_LineInfoColumns; +typedef struct RDI_U32_SourceLineMaps { RDI_U32 v; } RDI_U32_SourceLineMaps; +typedef struct RDI_U32_SourceLineMapNumbers { RDI_U32 v; } RDI_U32_SourceLineMapNumbers; +typedef struct RDI_U32_SourceLineMapRanges { RDI_U32 v; } RDI_U32_SourceLineMapRanges; +typedef struct RDI_U32_SourceLineMapVOffs { RDI_U32 v; } RDI_U32_SourceLineMapVOffs; +typedef struct RDI_U32_Units { RDI_U32 v; } RDI_U32_Units; +typedef struct RDI_U32_TypeNodes { RDI_U32 v; } RDI_U32_TypeNodes; +typedef struct RDI_U32_UDTs { RDI_U32 v; } RDI_U32_UDTs; +typedef struct RDI_U32_Members { RDI_U32 v; } RDI_U32_Members; +typedef struct RDI_U32_EnumMembers { RDI_U32 v; } RDI_U32_EnumMembers; +typedef struct RDI_U32_GlobalVariables { RDI_U32 v; } RDI_U32_GlobalVariables; +typedef struct RDI_U32_ThreadVariables { RDI_U32 v; } RDI_U32_ThreadVariables; +typedef struct RDI_U32_Constants { RDI_U32 v; } RDI_U32_Constants; +typedef struct RDI_U32_Procedures { RDI_U32 v; } RDI_U32_Procedures; +typedef struct RDI_U32_Scopes { RDI_U32 v; } RDI_U32_Scopes; +typedef struct RDI_U32_ScopeVOffData { RDI_U32 v; } RDI_U32_ScopeVOffData; +typedef struct RDI_U32_InlineSites { RDI_U32 v; } RDI_U32_InlineSites; +typedef struct RDI_U32_Locals { RDI_U32 v; } RDI_U32_Locals; +typedef struct RDI_U32_LocationBlocks { RDI_U32 v; } RDI_U32_LocationBlocks; +typedef struct RDI_U32_LocationData { RDI_U32 v; } RDI_U32_LocationData; +typedef struct RDI_U32_ConstantValueData { RDI_U32 v; } RDI_U32_ConstantValueData; +typedef struct RDI_U32_ConstantValueTable { RDI_U32 v; } RDI_U32_ConstantValueTable; +typedef struct RDI_U32_NameMaps { RDI_U32 v; } RDI_U32_NameMaps; +typedef struct RDI_U32_NameMapBuckets { RDI_U32 v; } RDI_U32_NameMapBuckets; +typedef struct RDI_U32_NameMapNodes { RDI_U32 v; } RDI_U32_NameMapNodes; +#else +typedef struct RDI_U32_Table { RDI_U32 v; } RDI_U32_Table; +typedef struct RDI_U64_Table { RDI_U64 v; } RDI_U64_Table; +typedef RDI_U32_Table RDI_U32_StringTable; +typedef RDI_U32_Table RDI_U32_IndexRuns; +typedef RDI_U32_Table RDI_U32_BinarySections; +typedef RDI_U32_Table RDI_U32_FilePathNodes; +typedef RDI_U32_Table RDI_U32_SourceFiles; +typedef RDI_U32_Table RDI_U32_LineTables; +typedef RDI_U32_Table RDI_U32_LineInfoVOffs; +typedef RDI_U32_Table RDI_U32_LineInfoLines; +typedef RDI_U32_Table RDI_U32_LineInfoColumns; +typedef RDI_U32_Table RDI_U32_SourceLineMaps; +typedef RDI_U32_Table RDI_U32_SourceLineMapNumbers; +typedef RDI_U32_Table RDI_U32_SourceLineMapRanges; +typedef RDI_U32_Table RDI_U32_SourceLineMapVOffs; +typedef RDI_U32_Table RDI_U32_Units; +typedef RDI_U32_Table RDI_U32_TypeNodes; +typedef RDI_U32_Table RDI_U32_UDTs; +typedef RDI_U32_Table RDI_U32_Members; +typedef RDI_U32_Table RDI_U32_EnumMembers; +typedef RDI_U32_Table RDI_U32_GlobalVariables; +typedef RDI_U32_Table RDI_U32_ThreadVariables; +typedef RDI_U32_Table RDI_U32_Constants; +typedef RDI_U32_Table RDI_U32_Procedures; +typedef RDI_U32_Table RDI_U32_Scopes; +typedef RDI_U32_Table RDI_U32_ScopeVOffData; +typedef RDI_U32_Table RDI_U32_InlineSites; +typedef RDI_U32_Table RDI_U32_Locals; +typedef RDI_U32_Table RDI_U32_LocationBlocks; +typedef RDI_U32_Table RDI_U32_LocationData; +typedef RDI_U32_Table RDI_U32_ConstantValueData; +typedef RDI_U32_Table RDI_U32_ConstantValueTable; +typedef RDI_U32_Table RDI_U32_NameMaps; +typedef RDI_U32_Table RDI_U32_NameMapBuckets; +typedef RDI_U32_Table RDI_U32_NameMapNodes; +#endif + +#define RDI_EVAL_CTRLBITS(decodeN,popN,pushN) (((decodeN) << 8) | ((popN) << 4) | ((pushN) << 0)) +#define RDI_DECODEN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 8) & 0xff) +#define RDI_POPN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 4) & 0xf) +#define RDI_PUSHN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 0) & 0xf) +#define RDI_EncodeRegReadParam(reg,bytesize,bytepos) ((reg)|((bytesize)<<8)|((bytepos)<<16)) + +typedef struct RDI_Header RDI_Header; +struct RDI_Header +{ +RDI_U64 magic; +RDI_U32 encoding_version; +RDI_U32 data_section_off; +RDI_U32 data_section_count; +}; + +typedef struct RDI_Section RDI_Section; +struct RDI_Section +{ +RDI_SectionEncoding encoding; +RDI_U32 pad; +RDI_U64 off; +RDI_U64 encoded_size; +RDI_U64 unpacked_size; +}; + +typedef struct RDI_VMapEntry RDI_VMapEntry; +struct RDI_VMapEntry +{ +RDI_U64 voff; +RDI_U64 idx; +}; + +typedef struct RDI_TopLevelInfo RDI_TopLevelInfo; +struct RDI_TopLevelInfo +{ +RDI_Arch arch; +RDI_U32 exe_name_string_idx; +RDI_U64 exe_hash; +RDI_U64 voff_max; +RDI_U32 producer_name_string_idx; +}; + +typedef struct RDI_BinarySection RDI_BinarySection; +struct RDI_BinarySection +{ +RDI_U32 name_string_idx; +RDI_BinarySectionFlags flags; +RDI_U64 voff_first; +RDI_U64 voff_opl; +RDI_U64 foff_first; +RDI_U64 foff_opl; +}; + +typedef struct RDI_FilePathNode RDI_FilePathNode; +struct RDI_FilePathNode +{ +RDI_U32 name_string_idx; +RDI_U32 parent_path_node; +RDI_U32 first_child; +RDI_U32 next_sibling; +RDI_U32 source_file_idx; +}; + +typedef struct RDI_SourceFile RDI_SourceFile; +struct RDI_SourceFile +{ +RDI_U32 file_path_node_idx; +RDI_U32 normal_full_path_string_idx; +RDI_U32 source_line_map_idx; +}; + +typedef struct RDI_Unit RDI_Unit; +struct RDI_Unit +{ +RDI_U32 unit_name_string_idx; +RDI_U32 compiler_name_string_idx; +RDI_U32 source_file_path_node; +RDI_U32 object_file_path_node; +RDI_U32 archive_file_path_node; +RDI_U32 build_path_node; +RDI_Language language; +RDI_U32 line_table_idx; +}; + +typedef struct RDI_LineTable RDI_LineTable; +struct RDI_LineTable +{ +RDI_U32 voffs_base_idx; +RDI_U32 lines_base_idx; +RDI_U32 cols_base_idx; +RDI_U32 lines_count; +RDI_U32 cols_count; +}; + +typedef struct RDI_Line RDI_Line; +struct RDI_Line +{ +RDI_U32 file_idx; +RDI_U32 line_num; +}; + +typedef struct RDI_Column RDI_Column; +struct RDI_Column +{ +RDI_U16 col_first; +RDI_U16 col_opl; +}; + +typedef struct RDI_SourceLineMap RDI_SourceLineMap; +struct RDI_SourceLineMap +{ +RDI_U32 line_count; +RDI_U32 voff_count; +RDI_U32 line_map_nums_base_idx; +RDI_U32 line_map_range_base_idx; +RDI_U32 line_map_voff_base_idx; +}; + +typedef struct RDI_TypeNode RDI_TypeNode; +struct RDI_TypeNode +{ +RDI_TypeKind kind; +RDI_U16 flags; +RDI_U32 byte_size; + + union + { + // kind is 'built-in' + struct + { + RDI_U32 name_string_idx; + } built_in; + + // kind is 'constructed' + struct + { + RDI_U32 direct_type_idx; + RDI_U32 count; + union + { + // when kind is 'Function' or 'Method' + RDI_U32 param_idx_run_first; + // when kind is 'MemberPtr' + RDI_U32 owner_type_idx; + }; + } + constructed; + + // kind is 'user defined' + struct + { + RDI_U32 name_string_idx; + RDI_U32 direct_type_idx; + RDI_U32 udt_idx; + } + user_defined; + + // (kind = Bitfield) + struct + { + RDI_U32 direct_type_idx; + RDI_U32 off; + RDI_U32 size; + } + bitfield; + } + ; +}; + +typedef struct RDI_UDT RDI_UDT; +struct RDI_UDT +{ +RDI_U32 self_type_idx; +RDI_UDTFlags flags; +RDI_U32 member_first; +RDI_U32 member_count; +RDI_U32 file_idx; +RDI_U32 line; +RDI_U32 col; +}; + +typedef struct RDI_Member RDI_Member; +struct RDI_Member +{ +RDI_MemberKind kind; +RDI_U16 pad; +RDI_U32 name_string_idx; +RDI_U32 type_idx; +RDI_U32 off; +}; + +typedef struct RDI_EnumMember RDI_EnumMember; +struct RDI_EnumMember +{ +RDI_U32 name_string_idx; +RDI_U32 pad; +RDI_U64 val; +}; + +typedef struct RDI_GlobalVariable RDI_GlobalVariable; +struct RDI_GlobalVariable +{ +RDI_U32 name_string_idx; +RDI_LinkFlags link_flags; +RDI_U64 voff; +RDI_U32 type_idx; +RDI_U32 container_idx; +}; + +typedef struct RDI_ThreadVariable RDI_ThreadVariable; +struct RDI_ThreadVariable +{ +RDI_U32 name_string_idx; +RDI_LinkFlags link_flags; +RDI_U32 tls_off; +RDI_U32 type_idx; +RDI_U32 container_idx; +}; + +typedef struct RDI_Constant RDI_Constant; +struct RDI_Constant +{ +RDI_U32 name_string_idx; +RDI_U32 type_idx; +RDI_U32 constant_value_idx; +}; + +typedef struct RDI_Procedure RDI_Procedure; +struct RDI_Procedure +{ +RDI_U32 name_string_idx; +RDI_U32 link_name_string_idx; +RDI_LinkFlags link_flags; +RDI_U32 type_idx; +RDI_U32 root_scope_idx; +RDI_U32 container_idx; +RDI_U32 frame_base_location_first; +RDI_U32 frame_base_location_opl; +}; + +typedef struct RDI_Scope RDI_Scope; +struct RDI_Scope +{ +RDI_U32 proc_idx; +RDI_U32 parent_scope_idx; +RDI_U32 first_child_scope_idx; +RDI_U32 next_sibling_scope_idx; +RDI_U32 voff_range_first; +RDI_U32 voff_range_opl; +RDI_U32 local_first; +RDI_U32 local_count; +RDI_U32 static_local_idx_run_first; +RDI_U32 static_local_count; +RDI_U32 inline_site_idx; +}; + +typedef struct RDI_InlineSite RDI_InlineSite; +struct RDI_InlineSite +{ +RDI_U32 name_string_idx; +RDI_U32 type_idx; +RDI_U32 owner_type_idx; +RDI_U32 line_table_idx; +}; + +typedef struct RDI_Local RDI_Local; +struct RDI_Local +{ +RDI_LocalKind kind; +RDI_U32 name_string_idx; +RDI_U32 type_idx; +RDI_U32 pad; +RDI_U32 location_first; +RDI_U32 location_opl; +}; + +typedef struct RDI_LocationBlock RDI_LocationBlock; +struct RDI_LocationBlock +{ +RDI_U32 scope_off_first; +RDI_U32 scope_off_opl; +RDI_U32 location_data_off; +}; + +typedef struct RDI_LocationBytecodeStream RDI_LocationBytecodeStream; +struct RDI_LocationBytecodeStream +{ +RDI_LocationKind kind; +}; + +typedef struct RDI_LocationRegPlusU16 RDI_LocationRegPlusU16; +struct RDI_LocationRegPlusU16 +{ +RDI_LocationKind kind; +RDI_RegCode reg_code; +RDI_U16 offset; +}; + +typedef struct RDI_LocationReg RDI_LocationReg; +struct RDI_LocationReg +{ +RDI_LocationKind kind; +RDI_RegCode reg_code; +}; + +typedef struct RDI_NameMap RDI_NameMap; +struct RDI_NameMap +{ +RDI_U32 bucket_base_idx; +RDI_U32 node_base_idx; +RDI_U32 bucket_count; +RDI_U32 node_count; +}; + +typedef struct RDI_NameMapBucket RDI_NameMapBucket; +struct RDI_NameMapBucket +{ +RDI_U32 first_node; +RDI_U32 node_count; +}; + +typedef struct RDI_NameMapNode RDI_NameMapNode; +struct RDI_NameMapNode +{ +RDI_U32 string_idx; +RDI_U32 match_count; +RDI_U32 match_idx_or_idx_run_first; +}; + +typedef RDI_TopLevelInfo RDI_SectionElementType_TopLevelInfo; +typedef RDI_U8 RDI_SectionElementType_StringData; +typedef RDI_U32 RDI_SectionElementType_StringTable; +typedef RDI_U32 RDI_SectionElementType_IndexRuns; +typedef RDI_BinarySection RDI_SectionElementType_BinarySections; +typedef RDI_FilePathNode RDI_SectionElementType_FilePathNodes; +typedef RDI_SourceFile RDI_SectionElementType_SourceFiles; +typedef RDI_LineTable RDI_SectionElementType_LineTables; +typedef RDI_U64 RDI_SectionElementType_LineInfoVOffs; +typedef RDI_Line RDI_SectionElementType_LineInfoLines; +typedef RDI_Column RDI_SectionElementType_LineInfoColumns; +typedef RDI_SourceLineMap RDI_SectionElementType_SourceLineMaps; +typedef RDI_U32 RDI_SectionElementType_SourceLineMapNumbers; +typedef RDI_U32 RDI_SectionElementType_SourceLineMapRanges; +typedef RDI_U64 RDI_SectionElementType_SourceLineMapVOffs; +typedef RDI_Unit RDI_SectionElementType_Units; +typedef RDI_VMapEntry RDI_SectionElementType_UnitVMap; +typedef RDI_TypeNode RDI_SectionElementType_TypeNodes; +typedef RDI_UDT RDI_SectionElementType_UDTs; +typedef RDI_Member RDI_SectionElementType_Members; +typedef RDI_EnumMember RDI_SectionElementType_EnumMembers; +typedef RDI_GlobalVariable RDI_SectionElementType_GlobalVariables; +typedef RDI_VMapEntry RDI_SectionElementType_GlobalVMap; +typedef RDI_ThreadVariable RDI_SectionElementType_ThreadVariables; +typedef RDI_Constant RDI_SectionElementType_Constants; +typedef RDI_Procedure RDI_SectionElementType_Procedures; +typedef RDI_Scope RDI_SectionElementType_Scopes; +typedef RDI_U64 RDI_SectionElementType_ScopeVOffData; +typedef RDI_VMapEntry RDI_SectionElementType_ScopeVMap; +typedef RDI_InlineSite RDI_SectionElementType_InlineSites; +typedef RDI_Local RDI_SectionElementType_Locals; +typedef RDI_LocationBlock RDI_SectionElementType_LocationBlocks; +typedef RDI_U8 RDI_SectionElementType_LocationData; +typedef RDI_U8 RDI_SectionElementType_ConstantValueData; +typedef RDI_U32 RDI_SectionElementType_ConstantValueTable; +typedef RDI_NameMap RDI_SectionElementType_NameMaps; +typedef RDI_NameMapBucket RDI_SectionElementType_NameMapBuckets; +typedef RDI_NameMapNode RDI_SectionElementType_NameMapNodes; + +RDI_PROC RDI_U64 rdi_hash(RDI_U8 *ptr, RDI_U64 size); +RDI_PROC RDI_U8 *rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out); +RDI_PROC RDI_U32 rdi_size_from_basic_type_kind(RDI_TypeKind kind); +RDI_PROC RDI_U32 rdi_addr_size_from_arch(RDI_Arch arch); +RDI_PROC RDI_EvalConversionKind rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out); +RDI_PROC RDI_S32 rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group); +RDI_PROC RDI_U8 *rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out); + +extern RDI_U16 rdi_section_element_size_table[40]; +extern RDI_U8 rdi_section_is_required_table[40]; +extern RDI_U16 rdi_eval_op_ctrlbits_table[52]; + +#endif // RDI_H From 10a49ca331d3ccf45ba92548e8cd72b68149bdb4 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 25 Jun 2025 08:32:48 -0700 Subject: [PATCH 042/372] actually, rely on entry point trap calculation to do exe-rdi waiting; adjust default fonts to be more consistent with windows --- data/JetBrainsMono-Regular.ttf | Bin 0 -> 273900 bytes data/segoeui.ttf | Bin 0 -> 955804 bytes src/ctrl/ctrl_core.c | 4 +- src/raddbg/generated/raddbg.meta.h | 23381 ++++++++++++++++++++++----- src/raddbg/raddbg.mdesk | 9 +- src/ui/ui_core.c | 6 +- 6 files changed, 19222 insertions(+), 4178 deletions(-) create mode 100644 data/JetBrainsMono-Regular.ttf create mode 100644 data/segoeui.ttf diff --git a/data/JetBrainsMono-Regular.ttf b/data/JetBrainsMono-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dff66cc50702c75abd025dcf49f62a4dcc2d72de GIT binary patch literal 273900 zcmc${4V+a|`~QEfz1KQT&r?l_$#LeKnMzF=sZ2F8W_nU#Buo!9QxhSC5JCt^2yurH zLg?m{5aRA8gb+dqJt1@xLX_tJzRo%)!_EEueZSw|@AV(Ax6j(^@mlLzd+oLNIcFzE zM4ItGE7|?~^zE0k*4-fCeK{gQhyE2u95wEXTl-5mzf>e~bN{1`E^Ghc%hM!$b&bgA zoFk6fuS@f84X28j+0;@s=G5v5!}BXY5ZSw{NZH9_&Y2i%SJ`wgk<-W{^G}#?;;Eze z3ojNKHCLobqZ6yonm~Lu?KMKPP8@&U3FG(3yHI5McnMxE88^1NCbwgi*58Ko?&FA% zZuO4kcqqsD<4&D8Y3Ppwn{vEeB)4Sz>0_$1y5`l0oL8aI|CNy1<(}(m)a5b6A5?jT20}~pL^7f2!2h+ zYoXL%z5O3}%Ht$~7Xcs!1aWNwqCEO0^B}j>IHFox`Ea|3jkGtsDm< z{{s!uX{t5<7br{DF$%5x52#(*rs_%mO*)ZZ$@J?|!e@hOh8)5JK*#yd_)oU|Z_*O9 zr)VARL2cCbD?s~N7q#!t$doyd^gr@vefgip>HO1i`Xg$0rXT-Fk0xJT_T>1FWcsV) zQU3pseW+W}vHL6k9ZOn2I2d%yhW;Y!2aX)`mg>Z*>jru|p^u^sKpA%8(;tm^82x<1sYyLJb@{S#8YkJH{Csk_dr zJ$g>m<-h8erq^lze;w97s~vg{JpxaH_FdO9QMbxqSYGUM8ru&#B3K=YKO(J<(kYFtXY5!O1jj>92y&C=@-=XI)VaXK7DkAz{6 z@u&806zI87*KV~>?N=Kz*Tan689TN9aySOG{VUVxc;tfCsWb)kqvla`ZBTT~GPY~J zOuDwMtMg86)Hq%5 zG@P*|({HskgQjQDIx_WXyK0A01UfHtZ1w`JSI18Ks`&<{Rom3MGRHbjI=3{BmQ|Z| z{$|oMs`FaY^jPcEx^@2NfX+p=N$XHDYmKUsiOZyGJ!-2SYuQY?o?{x;eyd%Xb57gQ zu;$fxwSRE>I8(lq;~`K68rFR33+=DYL57T+%c=a#%f_(V-=N`YM?_lhH{hs*SsE5An zU_5uV0&Ld0ceWsWf@f!(yqgHq?#?ERk@~y_GCt6?K*v<)hx$tW@H_NwnYiOX&&Q6C zS)*wumDUASpXfa31Ui>AujbS9dvCY{v>t6o728v3?a^A$HSErG*r95t&IjsB%}K5E zUib`j4*d;uJ<#^FKAl5qhpLuIqB?)IZq1{r`BXEowx#OUHBQqMolDr9ir2m>T0Rrj z{-`b5UyWBAGI1K8iPQMHXj-P6wx@m5aaUi|%~v<9`Lu4$qnhd4kAzFoWb9Jgwf{Pv zy8fzt!$JL~W1Z=9M%7M*Ig#2o>6p%i%r#3@ZFwKkcBjUaxtFR-Rom41)ILRzwaj8r zdowm_d|m2}h1#k4wVcMM`?$LgnR4Z%={(Xgp`R)LXc}#3_&<>v6TP0QZ&h`S)HaQXYtbyUk}{O`)vInJc*)=XWhdY=5@ zxONM5fyQUTnd7=~e-%#UT|s%MTRs)f`uWFr(YQfAzHVCGaH{N{={%ah;Lr1GnY!ib zhW}_w-D9;OW8d%M^*qz|(&>MiN9{`IN!gVN*Xe&IJyUnx`Z95UrFF+Sljo29{9XKC z*jl%qy5myUmXw`3xB8^{59fbs?&zABLD##?+M#n_*P1%>G*N*p%NQ^^rY4uoqxJ#-Ur%2Q^>6OIv=#Y!|KFo zx}IlmfnJv~*9je?%(X|?YHeTZX%D)-#nR~7{XA${MZ=l){-CM#peyNrMsMO3t(S7C zyhjqIEj}ZttbG|C;8@qtI@g_)e}?!nnRYXCE|vBJX%SF6Gxh2i{T0JWJJjb*jh)Vk z#eiRS>Hex7do9kNUq3+E8~*wUyaO+C%(YR&yY45zgUy4Ng34d$M=Jd8 zAM$D4^nC~8uXXS0KzObvvzM&9m(}o&yU5oFeH5*RtKg0Fv6d%Z*?B5;eovVFKwUKd zj@Q^@mXrQ9VfwjiHu=xR&WkwyjAQNZvwz5=ZKUhcvYD{%!FTol?RW=cuW6~asawOT zei5(xS8Y?-bu4Mj!CgH#-cFc)r_N!WtMoH9H&xXadVbt1va102L}=GQmrd?ZFKtTOSDQ;6YM0hg$1dLo+W7C-r04T`Ekj*ee}_8gaqJK5$8lYLmrgx; zUYrD7I1kyo{BHd`n&YFnT@a1u&q4_KKHRi<>N7h%4yAzz$F|AWd=NOFkNN7!d}%EE zNe{Wm>~AhMGtCX=HglIrn%B)L^Ojj{-Zg8?2WGAL+{N2+OSdBG;AK`hKaC!SR9@mUKCCbXM{7uyTS*;WcYIUM);m>WcRWO+tZfY zBkV{!%HC*iv-jAA_6hs6ecyg!zpy_v_%eEV^p5DyF%xST%Z}y5TE*hA{8-yqQLJmM zXYAluzu1J>d9m|jlVexK7Q`NoEsi}C`$t}o*Ep|5UaP#l^7hV)=jG>h&MVEkI`5Xe zJM!k{-II5J-h+96&wDoS<-FB-ALf0M_i5hdyf5R8;w|DW<9o%U@q&2Ac#n8Vym!1j z-Zy?|d{F$b_|W*V@v-r<;*;Z7#czq<8($n>5`QMXJpN+*mH6xNRq+k+Zxb%jFwr`( zPoiz2eWGLH{KVCXn-YIdyq?&VpO>FsFstCsg1ZVHDp*NE4D*=BYIt%EKpPd$mJUc^&t zQl649vfEPyVfSz%o|=lMt_`mb?+G6a7lyBd?^t7-*j$@$d)YqrNPE1UX>YZ6+lTGr z_9?r@uC<%&Has;2Pt8qxss)~Eo%U3hSdUmqtPh@=nDW$=*h7EtRLi_Q>v(E<-pst) z@zmXU_vSs2_S7mo^)a6M98XES37%?=rxNjY@vgf))ql6AM#WE#pC7+8er^1=l&7AK zKZmDQq&@X@B1mN6sWyrHl&88UuEJBd;i(<@lAkD$f}0BF7Ccz6sNnU2)p+XjI-Z)l z+f%3EsX6Ulz*C>K`yu72EAf=WQ*+lP>v}4Dlyh+&{!0A?-D_F>^sn}S+M{Zx)K0Cv zxb~u2R)*jHcD=XjR!-Xa;XlIL(d@9XriCYjHQ~tc=x}J*KloY>VvSf2%Xa;P|1Zy! z{&gwq=DN($zw7qiBI~~p+4%IvMH>fg?6)zG@E#lMZQ?Wfjh!|Bh8s5Au<@T8Pu@_o zF?VBhW6O<=H-_uyuD^BD!<4*v{j5#1*Wa}1=8b&!AeH;$4Igb-%YScdczFYsY@oLr z?%Xhc<91D5zk;I(%6#3>eElQquUUTsp*`2%w*Hd!Kcp&1|8M=!^?gz$ZX|c3_1Wu- ze8Pq|RX04dVM!{LtHy>lK80^L?D0waPhxuX@fRO|^zo-3zxMIVpM3wxcc0{c(&*#c zKECziTRy%(WNqzQY+2g^?*6dT2lL*4{rz3<|MI~tZS&ji;nvva!mq=Bxu5l04(2|1 zE*Kb&w|qrGmrfg4tD)ci!tLQN;m&ZEwU*VBJXt=?=d%rL^WXBOQ<{*gwTAWoHf{@T zk?lu_E1tc=&asQ^V$P$b_F22!zGzq2SL`bL0cpyH-)eJQ5%tf_hFjfS4gdLHCZ|tz zQ{1I)*6(w=Y1DCTI(@pko1+JT?~*vYoQ_ZK4lQs?+$-*Nx7K~9agiW`Pb2A`Mz6_MBLW!FoONLJUZahV$bU9&1QE^CPA-_w7K37-u+hbMt2#8c~T(7T-QpaT#k?< z`BnDfHE?%A-PjdT9)7d{`p8ZHlCbN_Hp zM5eeU=EZQV%?m5tlacA}X}b^CN*B4z7P-g6E|IIl(7eQX9uM=la_%q9`SMHy*@N#L zwUX8nl`hg&_T~CKQ2Ize=`V2^C8tQWjFCxllHEhjky&z`TrW4s19E{GD6h-2@}j&g zE9EU&Eg#6&vOzwTuS}LP#u_Idn>^FmBurb=%M{wyriU46hM1$xG3E@@+ngmivWi{8 zKcuC+DQ#qp>?0p?%~>mZ^F%r!pRk8mCtYQ$w3CfoiMB{L`BvJ?Cf25(rI-992g?rW zEx$;a?2<#|S2^4?lEJ2d^fiGTW*W)>PPz)yREC&lrnw9?IdY8ILyk7BMD$SlU zg6~ruXZDeiCTjMU<4sH^ngeCD$(OTCcRA0Luv0lirkHZM*p$hormtLX2FO&?UoJEK zWQI9Ht~Q6ubaNP2$#HVK87ni*QF5m_QRbK$xx<_w^UQd8(3~j`$s%*UEH;znQFDPA zB-5n3oN9{XX1>Q%UtZuFOWWmaQ_S`DN7+-}k#kK?xxySO*O&@<#GD&BF)}uCW#p2` zw8)IeRgtNYlOv}@PK%rwIV&Y7#UJ zng=a{mO-mv5B3Fn1_gZEs(sKd*f;19bP75Lh3x8zgC0Rn&@;$p->`qsHRu*}5B3X+ z*hB0U!9nJiptso(9L!Fm)chJ8Vs-^(><`NW3Hk&k=o9Dw#E#}=X(F#kQ+ZVy$qE+WWqjl8IrgQ` zOO`C>J7)is{pDYBfP5nd%6HO1K9fS(ES=;F=`3GLNBLX^nfh|5sV66!PBPx?CpD&> zoM85q6HNyhXFAGQ(_T(9`^yA#fSh5v%9*B{oNl_vjb?=0WR8=+nNf0!sg_&KXt~Xd zk=dq7{%+2e1!kf=Y|fFSnG{xsqr>CEG2y7NDm*@{am(Cu;Q?-`dnP=I-ENPtBs@5b zh26sL!Qb8UuGa0c=h`#uS@vvuo;}}AvS-?f_8fbGz0l6ESJ~^`?+!*}g| z;g@!_EwCNKufh$sVYtyAXB&i{+QM*+?PObpKik8?)wXlEHvHJ`Z^wjh+EUv){3QH> zD^kqXw+Gw3!q06}JKRR?-r)|eR&TM>&bEzhGutHmDcoX9*lizVN3i2=VRP&uw#+&k z34gUm+hgr9wvyd=g`HqewWrzf_H=uaJ;k1EkFrDTQ1*UQ>qt+-Gi+8|&t}>)Z@?wY%P3 z=}vX0xI5iA_cwQiyV1?$I(56d!QJdma_6}--L-DIo8%sFv)z1mhP%aGH_! z%$?{ia2L6$?gY2az2jc8U2PY8fIZN5v)#iV!)@UYcAy<#4-LNyzYVvB@7sR1ukGW$ zaa-MY?tAyO`^D{W@3}SZ1GmV%;2w3KxUV9{edJzt+ucv@4fmE??cR28x-ITk_r6=< z-gP_Ohg>&5c0WYK{p?n`7u~;HXP4!Axt6Z0YvQ`Orfz@N&~x| z<|3}AJK7!La$FC0lsn8dcfDP;JKX-{j<>(Mp{}(%$W^()_6K*I-Qk9~JzPh(mn*eD z+wWbu+uJ!;>~h^9?npPt^>Ic1MPM<(#2dqx2HSU?s65buiMA9a_wE< z_I07%Y_~XLzq6k^vESOyT%|kIe&vpJ1MHWs#*MJwxG`?H{o2;rt@cxQjO%Z|aHHKY z`!5%Fc`o7dT|3v-6}bIecXxp6;Oe_<*VtKCgFAKCTxE&Hzh*lysy@I(8yeUH1tjdnHn9_zUG z_<%c*<@N>kPXDwoaqqayK4+f_2Zx7;gTlkYBiS!M9zGc^4xb1g3zx92@OMC^-%sd1 zj8!K^xD1VX!e`MuPuLlad%}~^geUBY=6k{yP@WVhwis>eagU+xJmD#5d)Sw~d^y^| z6Y>Orl`Dm9iSmtLCDimzo{(=6v%;kaDbF4tMaW$MS6*RfBf)A^ZQ|)msP&b2tnSJ* zAJ{$7-X6;n4zAECLan3J!=6dFT6?%abM+Q>O~O7(*mrnzZ2G3re(N~)2krZSG^OaF zX|(*nG)JI=(j18nPIDA`7#t46K=Ub8pu0ome9$uN6WO^5`#8@f=+HD*q51?wxfYHA z9lyIk{jPQ255viZt4nm(#RGUrDnss=idz z*DKQuMAer{A9x+!fPSzljrQ@)G^5bB(wu_6ou(RHon{RBPMS&RyJ>U|zvtmTNw}Bs zoP)lfW)}KEn(NRHVJ%z_AEnVb^>LaD&`&(vYl*B&qy1Q)Mt!m&jgH;MG-~^%G&&xi zrqTX=mPY&Zc^b8AbDFQwFVbk;U#8JIzN*6(!eFw{e|d~Swfr~4TXbt0?bEj&lZSri zF`d!xJx1r%Hjh#N{@^ja&>uaf5dF!Mdgig6Fqj_b&mJ=p{l#O3pgUkEd5%VZ^_Vlz zT^`dLt@UtEst;;XaCa)&pH!ciFWgh6;Eq*H8a)TJpQ*mKM4dbtC+K{?F zv`2G2ItRJK_P<&>2-QA-`pQH-x}V?qn5{?fUUnlJd7 zd-W8$k1z!u^{vjK)I2%_)xLrHpZl{Ex)0#K&7))7!K3>H?&Cb_6XslM-t|R0rO~;- z+)d5j!_fWGsNZzFK=&!!2YNWvszEq4pni z&%(10kNT~@NB1>68}X=b4^6W-I?$tg9G-o6VyKQa=pKP*C>|XH^$qAAhi5Dv^|Ov0 z=>9_Y5Gi#0bnNt8KMy@BjgF0u9q1lG&;JzKZyh_3DX5N%qW#vf0J#_)mPW^BxJNEU zbzBr35A8F^<*1H}qGO=_1euDCN~7ac<&n$K>NGl*+E0)f=$JIx?;4L>jgC#DV{?K> zrlTjO(eWGSk-6weX*BL+kKB%)l1A$r?~$44scCflPV>l}=;>*+oe3V9gPxH_Z9LN> zccAJUMQv2Sg6^|;#^KR6&++KK$()-;>zL%xJ(TYMQhUHf==pWHfH3GDh^J}4aUo&Q zeUedsE1Fk*sp!1B&co9;;WvdTcn&A#22Z#Gy)8{kRL2o?|7-3_Q-nU^k(<$E8vJcu z^XM-U&FdcB@L`O`~)3GmqYfna@3`YvGrK zLHF9`t2D*vHjm!JnIAlQT{SyBJarWFt4H@ZW|t?mN3SKUP&R1okt4`Akf~PzY=4!Ci6JfpuFTzXgX)i}# z_C%O(0pq4bu0-GWL@q%;@I>%?@S!KdxfU>%)e0PfPQjkwxal2 zKg-i|(KhrL=9X>b(evIm@tAdJQ;(k0HXB+{b_JRPEeX>P+Y0s~{3eS3^_hXecAF3Q z-mFL4ddw!YoyTlMnHP3n@_dSRfR2Q}Knp!)Gup{xzCk;~e&pGP7Qq3GmD=7Fx)EkR z+V0SkF!tGAP)=Cw>H~cVW0O7$Qvz+jzb8<;2Ed`jW0M^Sg9vN;gFS)Tb(lxj4|_Nq zK_2F`Wj-l^j?EBHfF1TIPoU#B)T8T=J=zoOj~)Y+l+}I=gW-hfryb$Z^~sL(=-Osk z-<3eec$6n#?CeaBuKo6UPtXj#!DD_xZ}bE@Hn)1rcJww+P=em=F+ZdCc!Gn_hdt&O z^bt?c8%=u54s@X>I2e80qwBhT!V{FDPkD5Ww@-V5L(nxIUGMGto}dh6T~u`4x2%my zfM4y$9!>|bpLhcGv(7UJ^t{oz1p&UdpLqfbSe?@l=v>fw20@7G{DVN}#Wqi1(H}f~ zrXvl$^ys=4o#N5wG|@{ux@U=A>d|LB(aSu#--%B3=rf+^I3ypJ7BF z^zf;aL?80VtLOrcK2eVT-J{P!qRaB-B>I>~pUXsLj9(^VeUFOke(@|{?^qE9d`vCf^I;wVqKA(uHtstGz7d-l`BKo37 zpLs{sAE3`UqB?e<&xWJw577JXsQLi(S#ngz9rS)Zy3(W1Mx(EJ^!_jUx<|&NZ+P_n zFS^PjHRzijz2}U+<6y=RJU^~h}WTaT$ibx`n$Xrn)P^j;xl#KYR3kC1yM!^F7wk6Efdp*`AOwiM4`RV>#N(yv$>*qc0zRV?ZWk4N|Mgv_^C%;T1!c^=0(6N`I7{2t5qguT$Vo{;$* zEArSLD1MER*J)q6dcu=XP3wsb%+**497MPn?d=IQ?qE--+Q$>BU45Y+`I$?x2_D@$ z#~AC_dBjK1^F6wEh)wo{%%Rv6xQgq-CiEe|SK*5&zEO0q7hCMnePK+;9dvIP`-dlF z9P(&S3GPN4dxHB>{GzyjqAfiE^CS-+Deid`|K#DD;1Lu*D8WKB?r~3{jIE;gE_t0j zZaG@&(S1YSbdRe=ulBfI=uD427rowNIXCle@Yu7^8$FhJn>Pz?V)`J&tuE?-P&v9A#}$>{L{bNw?Rb ztQ(5kAc8AW*s-Yb=$<|vcy#|74?Q7e;?`qFqt2uI<~Vav(LHgzo+tbY&GLlWR(+4| z<>L)J;YL)C!5)V;^60)l-oz8qhj>$u?zQ9Do^TD?%%l76cyo{L@#D-*CHxs>ek$Qd zXlsw|i{pEGLdG@DJXLhh9*=tTo*i;u5dM_B~ z99F`g(6c<@7W90N)p6w%h ziq-MB&0|kO=Xk7+>+K$^<9&xm@9pAudi0(zKG&o7dGWhEdQTX?+oSiB@q0X0eLl}) zbuQfNu_vO7J$m0BU*ZXOqECD5ICQB;p9{pF@z{FkbMQQU3DD)9@I&-PkKSL#S9rp= z(U(2p_vkAgy(f;p?g>9YS9!v9=mw8|`#1izC)|X7;|aH;TRrv!^jlB3p0AT&lj1ZS zdK_>Vi!z6Zl?n+fe$ig!nPR`KE-7bE1JKtUw!jLVS^E?QvhAZ9I;CB=+{W*HF%% z#6HyjDw^-n`{P7`$9;yj^*H*KXzy{Kq8&YMBg*=txUuMg9*6%E#U6JZ%KD?Y8E8+B zyBh7~aoXP!kGm2*$m5uw3DzgYor1DnD2}<7DD}8;=pi1*oKBQ^+!biK$K8nb@wl02 zUyr*K?dNgK>jeH*oQ}f)kK26aq3SKJPMMrrYYek~UjgIl)$sy%8LDN#sl949xC>DAF}RCRogd()qUsxP z+E?`-xOM1sk9!Bb+T&hAZ}PayQS~3_v%Q4c!92BHQ0))c15rI6<`V9P>R1DBY?Ord zpYaQ~q1rdF15x!WzOn;QokI|QhtBte-=YtA!mX%|DTME%4|(*tVPb*D_C^2hv3=0j zJ?=|%2kfN3-=M$3F2b~xFCOM*_&wBl+y`jH;})UyJnjWF%i|tJ>wDZM zXakS?3T^0#XgiHO?jy9Z$Gwa;@wn}1Q;+)z&GxuA&}JU@7TVn7R--LE?rk*3x{h#^ghEZ;$&Jje6V<=sq5XN%CVJ z_cNO3ajVdT$GwQ+0LA@l_tzN3btcRhDUNY1z$c39h2j^*(We6Zqd4Yd0X|Y3<5xiA zienxY;3LH`mIYcDxcyOlq&R$1fR7Z{1=VA4_@^L^>qHnIDVA|4&^Ev_w+pmhaM}(& zQd}X5j}*&XD!@mIKEEu$M~YJ$@sZ+sqS_yDN2B;iaYvx|NO77MA1ST}ijNd`6pD`& zcNmI~6sK+CE5-Fj@t5MNQT(O2!%_UDSmsy({!-lWDE?9`^Q0i|aYIpjr#Q7G-{THK z3p}n0ZR>G^(RLnvUR%)K<(0 z&|`2~cYlxFg%0qz3iMEq({kD#IOait_6?lQLG>Rv^_$KuZ~?0G2Auj(=P0-k)q25h zMs>WvZb8+r;0&ts73_DY&L`04{slVk0k=rOF&_IZdaOr3D=4V+IMrbur~Mf2v0tGh zJWk8$c!AS?>zo7oC93lqTn(z@4o=HedF(f6wa1M?M|+&MqsL&sMzuWHT6C<(ZbeV< z*iX?DJx=>H&g0Z4CwcU2Yn*vplWf$>Zvy=XqQ~Ss7DIR+_dI?NpJa0v>^4JH_=^pz4dbP*SM`w8K{pd9wdmnnO$KH!x z=dtt9nI8KPdOh4oTTh^~JoX;+Cb*OM1?XJ3i|`6m?Vy}}1zqH^Z=#QS>^taUkA5Cj z@R-N0M<4gtw@_^l?7Qd^kNp^Z(qlKEPkHS7=+hqiA-dFK-$tMD*!R$9J@ymyA0E3A zUFNZ?(SLgE8uU4jU57sJv76B49{U0Mf=55+D|itY1FPvTd#u){V*&Oh^i_{ldslj_ zw*R`vYMXC(toBcBV$7`e<1>#{TRw-ch}Sy4@mTHmj~+|^+Hx)^kt+0bPox^X(&O+` z+qrNT=LLRj$2?Qq!)Qy7dj#FX zq=d|)c0a&RwEH)aeOq~KIXci2evL9d`%WYO(Yt>FBH=E=4kE7sXkNZ|+9b>re zZpInEuVakXJxcf`z8*W;V|${MQ9|ZJ?FdhJD0-YHr2X1oJ?=-odX}9+f;+{$Qw%+L zHa-{a1-%L1gO)-c!t>F7DI|Cp9S9Y~FG7dFDTJ9zNhypa<><=3!(y>POQgw>gOZV> zhF2!L<|f+@t2!Yz{piYMP*DA3mSoA8F^SQ+d3i}0mXz{DA8L~Fsy&hb zvA(gSEvTkX^~x(Mll2m1$*e>f9-v57r(`5G+>Au5W?{Y2Wid_E?&f;)_5Vp%)ptzN zb;u*JJT^TxowgPhxdKM$$jYjU-0C62Dig!Qs#{9DgeQ{B4B5zm+CUMikg+b6aSySDoQ!=}dF2rKVrsV^* zX9Vz2GFy*^aFm_$S2HTgP7O+oF&Km4$!6tMvFTN@WHW}XQ?hyCprMruZB3tH`N_s( z6O%e6TNDmDvU1Q-J~B6t_!g=7oWh0Dy!`0Oh0U9nCrx!(vROwx<(OJ!3!CcyviV=q zw89r*K}F?4Jr5bKvgvr3X0towB`B5&Gaocvi*P1u>M(lJAN%_g`+H~og$oyov`8?> zHvDT1Z)0nT|jXX{LH% zPFBa{)g5!=Oz&3ov1P|j$vp}e8r9Z}x9XmS3q#et3Kv?{+`@%UwN2r|i0a;j3+t&y z3m0ao?o+t1zG}xpM#GPPGE&7zCt{tG<~TiDIwcG1B(~a}c!p2xR41|R?!+^FVysY- zO*{T&Kk3wCzN^~Ly8X+ee=+Qe(?8V&{Zq}Sf2sxaPqi)mQ*B58RNK=()qUxoY6tqK z+PN@Rk~)$0D~weoTUW(c^h}k`iE1?2S?6p~VRFBY$^AGV_vcjT&y4-k6EaaBD>d_8^teVJhO z`BQ5(URrS_=dVxiMDfC|rlt0^JL5qI{k zl2!$=&awWwBrvpxPM_XC(Vr!#k_#WJE?1;tV_N1g!aZ5LS|#@&n`JpINM&2tNXn88 z%R7#p-Z>GAl}xA3Ucb*4>+I`GMiOP2+_7Ypt|_HQRz7NDE|&YKZR_?LR;DX$0~T%C z$AUz^s$>Lj|NeC4%rYJQRmqlD)o}80QDw2S<<+@_tA?>Y{IN_mrm_Af`c)U_CTO7_ z{X|l&P~V?4f+4yjM_5E~hGW8U1^I&|)L5-oD>WkI|LK+Vx3-upC7H2^VS#I#9*aZ? z!*tN@q+|mYlUS@@qQ5q(UhJJoOLfMNbW(;^c8-;BL09VoA4#RVU6G6waC9h1yZ0{M ziT^(HsuF2$vGR9H9-L_{HTr3HRp|!jk6q5VxRmvyvyNiF?@j6ce>TDXC$m_` zTi3CYL~(9jo%xbCENy3h7T}&8Govzqqh1~J)Mq*_>E7%ffgLf0Bl39t|9=c{Fg0=Fz~hh1^R>IiX5IT-yl^D}2=WxZ#9++z8EQ zG8l!P;U z@DPG$>Y!`3WEn?iajhk&c_#Xx<~ci+M-w#9ITSu)XC z$uPfSQs#o*Nw@)AF@)`;xt434zvY{-Q0kR&e|^aQc}_a$L20AIdBH~athQOL>$wK$ zs3F0?pm(HmWFMD`YE<@Yi)GE0HC|SKS)`Qbk`2k$tn67S-Tj}&Jt-mA^o99m+L7EX zOsmx6nm!BL>+zB-@e$HzSnk4h8ue7x6fw4R+L)oKoFwR9X`_l@Ku{cMAKA;fCLNZT z+RKyn8ZP909(6Sl>BGJ7f9r3!43`StXZr#7$8EXy9vp1qO{zt;+iM4t@>|*mby7D4 zo&QsMSU+99zx3AuFuiIoFr~HUaFjX@dz*{Ga&unV&Kh(zY~k#+&<09?rypiKOochX zp2(~O@&)7z$QN{l!9X3sWS9jDc)~CVX2N`)ahUC_9-1XUxh&eKPaE}Vqdslar;YlwQGY66OMPsqzY;dVPQFo|1BK8BMv63y!B&w* zRM?2)M%(xzcO%G$5*P~Of%+P+5otpEO|Y%Wa##!GZ%Y2A;5g*d)@d4~&G_kc1VmPNcbo8lcV=r9e9^Xs5+AksNHx!Oom{uoPCq7Lk^eX_*ft zK)Wqzx8+or1B-z+TTO%+K-pH5ZAIBul-+}}d$bX0Ex_@f9Pi2TUXx+7NbX43Dbj}H zHnU&>Ea%@hoCGsrKHrGl1mxK#2S|?%2GU~N_@-VXSON4cUJCRlPJiOlU@k0yRX|&* zPuHiSb6_#71nSmLc2l2ta-7d`KF6s~7bwFCAZ;ENpDYjd(!vKhW3Ds`(oq1*tjow_a$$KSv)nH2H4vXdplxp$E_lTSrCI_ zsDN=W1;|%OzC!X9ZccrHT{^W!i(mj$@#Xb(uw7)oY>^^tD8h#Qv1fnU+n@e*$>EFj zh0q5^igYF1O@K1pw~8EyO$RQ3<**jE@sgBAK)zzi6jP>nBFun!uoPCq7LguSq$hcM z=EHJc?9yJO1UpJpOQ8}bz%-c43tmV&C~HCwl`&aQ?@r{ z4_*Q5V7o|Z1&o80unDmFkik#`qWwce+73Q&7AikVDeXzAp5e$GTb^mPNDXN+;}A#(a0emF4&WX-zqXiU?dQC3GG}m9w>9^P{7v9$Ul|xQ%RpnotKY; zog!B>f_&%-Ns%jOh)m0Y1tM2b&sCFQ9ni*f%1mD^a&-|<=hd52KUS9+tx@7;tOVM; zrUoVgbzMUn*G_6PrzTG)nWG>;k#NU+#;{coQqW!x^!V+F6gx)g|sPmqAu#_LX zSHc9Kt$QhVZw*X_&9GhMKJ31aeD|${wXlVk3{^lCQ11RIylf~2ML_%WXTn@a^5UU< z=n8#cC{WJ>)bjxKJU~4U>=bzr8y_P5p^<=X56ysiK;DN|1NjzMXafs?_`eSjc{m5K z@e#t0Y!gW?=Osk6zpw%*vxqtu4F&9Y6n(UYAL18639J@*Y&>k`Wkl0}dLE~*Pt1oU zyo9I-Ho;C_LX-oPdy@K|90?O)2F&BdM00ov5%nyc%FBncfpK_-a?fnz1w_REgX0tn zM3&9w$7$I5PuhB}5|;6@p_#m3s5MOH1w)NsE>QMG>V2sVtl_0XlX#g>g~%(^^(uK^ zod8>Tc~A{63@U*oBCn&bqpL*Z&3qv67J1%Y&bD_bF9Mn-@-Ff3!I~l<{(ba=DZJc= z^tH78QG1b(vG0={K3U5KY+hdo*tCIs8?bBRRG{8X^I<11>mmL#Z2D{xKU~WK%50{d zFR1Se!e3UvCSJxfkFEDOUcNH`wu^jCnXikX5+=cHSORNcJ3q>64aHCilVCP1fi-Tl^^iam+!G{+XRsx$o~U< z`H{RoZsEl}*#A=@42JPA0~Wvvpv-oGX}la}059;N>@WGy2da3954xiUsBgy{k)71B zb1E-%!OmTz)y{?`KwY()dDbw2=LmcXX)1wF7=wJ^ZN1@0SRuypsibQJ(O zz&uzkJO={eTkhngJvBgmt+tBUqX-7T6j&vuHT~X`GJ9E=0Bd+z&m>qarVaM&-3Gdf z;n%7rMmSa?CQqO>Ooq8);uB#8&<1;U!=BwFuq}}fw3Q%V0$U2Gqb>Q`CV~3fZV}Ti z8`=Z;+ASB;9vj+E1L|$R1lEY@fNdR$fIJ<>^CF%KG3=jBr)6UHqn)CmV!F`Q0p#gA zUrcw(AGl6T@oX_Y2=`b39QPamNin_XN3X6x{k^E4{jDjP1mroWHBfJF?Crgl7v<2_ z!IWX2YD!1KQXsw*+y9C~=tmj#m5&qCr<|%JnOR`C|H0?*Qx^uvyHZqz@Dzeh}fo z17NF|!)Cy0AbdD!M@$q`F&T(EG7D;8Hmra(Vuo~uxxDCxc7~EZbQUkR$%dtXoyYWn zC1Q>xojstbtOWWvjJV+yK-m%4H-a`skUnw%%mn&z9Q7SHSj_Pj=JE0xbksOlC8nxM zOtk>{MmGZL9lch}m{Oq5n$2QPpxzTpV40Y4MSKeYJ(+%-vWZ6mNnSET`f0RrdOpnO zg)&olkqmlf1?=R-F%yBfvzCgPNc|Hjb2eqp9tY$*CkIGBHw(JLY%!B4JBfVf%@K3{ zBv>Wpg7z>2wuqTb`s6BDBIZKkFPz28VFm#8UxeKkt>y(W*)SApfVhj-in)Zmm#z_W zSrJSF?3+qi_D|*tj<1+4=1THhxme6J;-_sAa}{-7Mfs~VyiLq>%1$2-OT=6~0kG$4 z>X|VBW{SBc2k6hW0@Qac<*us$!ZR(9Zzi@}KNyyYxq;&wR*Jc?7^c7qF|(-qrYbS) zd(7Vm&mIR0#N1LS=GGcsXww?D@F-@knA?YnxuZnPodT=G%*}^sfUS3tcGr9{cW1*y zSS{ur>b+;Vn0b`FcZQhzx&ra{j~A9zp#J&W#XL|6)b}9q4-x-RF>DpHU;xne-#Pv} zU5-Xv+s39wnrLh4!68fb43HauDcOL%lN85RS19%};?FcnC9jCvoB0rfpT z1C|1DPmu2k@;yPmC&>2%aZAXzgnUb;0r{3}74sx*JV~A>my3DILNUyQRbrl@j(?JG zc@|Uxb-XY|%!|aoI9tq1gT<`i_+`>wseyH3UM26Vr9c}ivw`r+S+GLPYpr2CEEDrO zX|Ge}b>d&&F6Ir=-Y9`8SO9CqtfHM&6)*v20_9d=!<)pvN!~Xp|K?O!3DogcSD^e` zo5Z|Lxwn_{a-kfc{nb1977h8|N%E2*^1Mqu?@a{Cu89HRHPrvUg^@59sPltLmiUGbJ|W*H)cpy^>jQ`DX>n==L3MUpKlklxdImOA`|j{LAftx z!)7sG((ad({c@?8uLSzQWLTVf9BH-?{#PR){$KOOeBB19>+4xS8{g!^IG6)F#cUl6 zgxL$3Z$|?4d`Fw#(Z+Yn#e7fx?`Oa!G24oP@U|_yaEb5_Gl4$*SP10*ag~^#+Q39u zB4&Fw427j)e$IjMKs~?E&tH;ab~FOo+_6B+PQp70?i+SNN+M<0`@Widzm1660DPeXPH6s8VOot18wE>k)UN8SRp|x^0wM60eg~Q zkGT@Gu7Yh6?73Wmy|ze@OB-!suu6ix$HP_$qC)}QhrIi2mmo$RG1|=|K0X*Gz%&UG zgcH=2zf^*P9GECUTk^D{{dQ|5XivTE$-}e0pgnoolXqXV!%hi0lHSQejRc+P$9^*< zD4H$7{8Mc+LmY^^7_9fhp{`a3I!GL8F99kj4 zz^*Vufad_*}}LJ6nQDZ6r94yywlA;QT7sD!~QRIeC)=7cQ0HBGN9R{fkRsy985`5?nGE zX#3J4SO(<1EDI`Orvy`DFjs=hi-EYymrHO3dAY6!SCa3_NiYYfW7<5RooQ<&xT;Em z=>i;IO?bvQ39gwX!L{VQj`G)SlVD~apxpK2CAgt0?3Ccf8GsEp5}q|#f}61UCem(R zA_2EA!7WoHxUB@{OE8D>w>OgD4*GE?_06Ts-COwL2|*z`aSRKaoy9vm#eLl!9e5NQiYTTlUn|K0}X!deL)ChlSE ze3-T#p{_?J!3-e%k;Op%N67ccRtb{SmuwA%Pzpm~983nvEF_)h3Bkgtutb7Ijez4t zvw-rCPLN=63@Tx@1dmbIW5hkSK!V3}pbCh8A`2+9Bpb%VJfOZMD`6dMlYq|#gD2?+ z*ZP2G4Z)Mt`6PLtoB~T>s{~Iili+FcJUv^2rPRN4vjopJ@1AnhOIT{aP@@1N*% zgC%$#o1UjX&y#QY0tsHAe=iVzaSku0n*j5Hx>ppzBne*5hmzfdd_Kow&1ZL^M5Mm# zU)s4oA9)65un3DZ=Z}QOgvSd1V#_E?$Q&V(RWIVmA2xH5JvtuHEU#IC;h!OEHr&kH zb*(AfwK|7?`1ONd+nyTq`gMBHi?zQCb+x69dXg=LrTaEEmKzSSToG(Aj)sa4b2Q06 z%W^m$hGmhhUbAM+BK7y|ctDE-S|r*f>a{qaUE8+pB9VGso;~lG5k(&rl`SdGZXN{9 zv$dh;o-<9>mmbr&@i7Ne8UJQjs=e@WK5sNc)QemnjQ-R3n}W(Z@jInmWU0mk5iO_n z)OHNo@?Gh6kyOsz^-cPHx!v*4{6#$fmSNp?cIW@c@8W;6ch+CT>%Rw>>EDUr&fWDa z%f#=tHPo4Un`-}MJe;2=Scm3C9;wrW$-t$l9yeU{aoq`UjR zVRs+-w+{tV8I|gfSnEbL zs24c?Jq^aWMe}CalxoT;rGE|U?@h1rS|(c3p=JlP%hD%uJo;@mQO^_S~aIGs-p1t5;vwkpsH4YMB$M*D@L)iSU3f-Me*do503& z;J7zx&gkEx;~@oS)m(8-&+@XK=T1KO&_fTN9DGnStay0C&~-Vi^YN#edwO^4*8A5L zfYt$y>~sX|F1rSVPhOq_N2x!H$9Fg{%QQIfRRnv-z{bTesWW3 zgZiePYi~@w%#80Yp^exuGDRZ%+cx|Hn`ejh%$fA&|6}gU1LM4^d%ye5KH5CmcWE@z zjP`vrT1TVBl4UI(OO`Er;8SkaP{ zUhg4#Md*7K`%2RHL8has%##2CpQb1|iYI_uK_h&rs(iFbzRbx=PemWQ)1>ocE|%JC zc6n%;4r0jpFOIHub*+xBtPGBi53Z;;I+lmR|2(wP5!^l~Tm#!dBfQG4y)Q#4QG9`R zFup}VIw`AI5_J)a(@9KcShNZQZc@TNEh#R-j>x3Fn(lNsY;^oNTwdN68^%DJcYb<0 zek8|^i5=r2kT9HIU>gu!Xgth!PK?iD<}>F1w{e2s4`Q5FUZd&DyGthZ0+dn|< zw3axp)3BCB%5ix@*KD$&HY=T0lL|DvMM$eY3q+JV($@@9SymEwKz_xf38f;Xh>mRf zkAzYzE4UJl?-aoMolOI90N?q$>@g!6uIsRwulWo9!KRv_#Gp zP1|6#qqW1=maYo#wp;yE{`LXiQef~#Q3?B4{ult9G{RgL?Tsj3B z@VIzCc43@R`yjDhw+|BAb^ScCUDwa&Zf>D@V?W5}Ur`}_Bk!esDBB-o-A<4Wg*yf5 zY@(A1$Am!`S5*+CbJA>5weulC*5O>h|6KUr{?N;z(97zL@H3)w-7SLQt5`}tf2Q!v zEG3ULA2P5~%xI<)$PN?EZe2ABI)zegs>RY}!P4eI|3d#PT3-Gy%~mGQAP~8YexNbZ z{~T>z*Z!FqyqErX`DHb2{1W~fU;h=oT|9OR=E`$o8V8uhOdHH?4RifD&lP+I+frzU zA&y36Q^}4~(B*~B3Vn6$eeVVW&zIGur8VHPrZnvL5 zJTx{oq*~WsIeZ?=j(6i7>TS#iKq>fq{Tcp-4M688crI0G2-I2xaEysfcUh{E>c|B5 zON|11EUV3sf>wJYF`!I;Va>L#Ln=i@!omtcRU~Kx0By{Mcdbx z@Ls|_OiCF{Puk8n#MA?rIW8R~S!z;D4u{c}k6lJb)}@fx4nX4q=_=>wyF8Z}e&$2s zhdf8^nRu6Mzg4^{+c5@dd&~AKpf1rQuD`GtYH%BAmSRK5`e#MfRc{^92XPZT&NM=2 z>^7?f#~UusC6Fe`pwpDJoE$l5i`R#N`*JKa_~XYzk3TN9i{|aY?IIL@@l5bc_=nh_ zNP58Yfz&{@GzRK2QVr0(@o1n+Fv2h5h#>&Th@@so6iA?4EP*^=+Oo(vh3VDd!&SjJ zA|2cA-oJGB9)sCxr5fj8I z%rwxA5P!Zzr*I#i!Ualxt|Q+`M3NR5j~D_{n*l87UkrHtuVLtW$!j@Y+P89CI_^McoPskv4O$#_PxRC_VQi6on~^S*-0bwCj3U^~ zX(G)We`sUpdNlJ%n$Dtr`Sj^!`swNK@97Q%?5B^4j-#hfuZ92T(bGGJ{9?OqI%8}+ z2Bz_WI2tFm>+(IZU6=3FE^#yY933~CgB~nxBWfr8obV>n&m|^9-z#Q)TYgW+&8S`K z?Xq3R&E)$DpOfu6ZYJA_#MU-76Aha8mmz6hPkOJTxQsu3YdvCuDo2Klosc@@?2@DSiBsO69;(Yb$Cg| zvaku7Y!QRr-0|kp#D#QQ3de)p1#RP-t!E~$=dFs|Gdi8?X#AL$Y}av1IWMAvY=5^p z%zIC^6CGsx2Q^$#wiBIY`}B(GspE}vuwRJxOO!h0pge({WWGym z1qX>FD8Lm$69_))Q((E2DhB-9psXb8OE_a*S*cLmm8ErMb;X70sTPw`B1&{Ux7|lL zqXsr%<5(=Z0b_{YLT~X6b*9N}ROcyi76OF)h_;))?yYX@kQmg7ntN57pA=fpLcY1lg)46NJae8^ySJU$^Wux7JJ9_$Wlvm%=&_`fVOV6D(-thJ1 zlXYWiclc@Xu9l(o|G<1}!W6X(Il^=0^(TcPUhh{}XOZi#%f4#tr+#hyUzF=_Pk|4l zKqzK)q9{PW*a`$rp^3ekf=0HW8MdGeTTCngfd;skVpYi=wAfYNaHwoS7x6RCKb2SzkOv3iW2R`sb_&-dB!bW>- zb8{_z?1$&X>AAxtHQB-Gm!`wh!K~VnU{9Mk-PY677Ji_u2jqvmBE5|CBRez$(h8v# zKrLJ)4wFzeoiVHwWI56R$|?3roOrA)F;)z4ID!t(|K#xPw;z7!p`Ovvo`=*M=a!ex zg`X97j`jJWec)X<)ifO^mrhvlDolA;q3}XMLIQ&&V@t>4a^3 z=QveeIgwX}LLVGl>Nvmh!4Gy14t0G{z41tEsCVD3*MxDv*BQV&gUE$T2mfR#PNg&8 z&4f^Z-jg7P@#g+XnrNRo1^Y`WF3bjsMRr(~%Yw<8JQd~yiI5k+7UC1DM!V_IZMPjd zbX&Lg-1mtD___99#JOb=SUz`dIs6wx2MfOP+wFZK;2#_FhyS7vD5c8Sy%Y3LhmF`4 zXtoKJ&<*LABb-uO1(@v`YM+8^w z!^55TsW*T}Y(JV4{)*@b|FyVxw7X{n`w=#x>g4@+C#VqJkBRNN?zA5|F2)PFF8k}c z(>CnWEueD^WBf)Fp)?o4OQ7o8Fb%^Jb_ccy=_?V8zZCw5+-$ZrYDA5GyW0bY z<3?B}FOQi(G#`CiXe!{}-c)~L>yGw?KL27zXxQr=tn-{6+j$4j|Gur;y6Xp0%d%HT zy60M2_H?!O_qSGerIcr%m^g5nWD$><=l+Lrb5CrSI4yK&oJBOpKFtqc=!o+Jn9M4m zf{O&QsD_9iz-%@yf!|m>Y~lw<_C@7l#1F9X3A!JkPw6eH$f~c%PT~i6b7YKq1^!lg z1$NB84pk2u)L0KeAmf&q*Qc`PEl5IZU9Z~)egaLwPjU@(ej>S4jD1l~ySC7x3KO=4 zgk{#E+k!;ylEoY`B+8ZYib`iyW~J3u43R;YUR#cZ83tlQcaylhIN#wunr~n1fAO)Y z#f}35LtVWiBfSlOe3x%PP4(|@n|sc5a$jJnV|rU(@5s~(gWc=D28)mkgAE-950L+J zC=h`4MDh}x4)>2RuY$p~<%SQ=6oJ(8^Mq1dlvkEt=Ez7(wOdU_C0FEX5Tw`ZBrh9A z=;ZRj<0qH>-M{FupILn7?f#)*c(hI~ho4+LGd?nK z>C(UmM&YCV47ynqXP}huE3t^fsdLh(%T>*_FO4mU=-hlpy!?!MAHbXom}B%A86>4m zLSVxJ8f2`B{kWZzR-xflFZuf1~4wq_DVY0p%YzSv02_E1(H@S=?Y_K*;bM# zzKCp;bJBTP^2`mC7J>~-h)^QnlAgva;SjKaHAg3q7Itn*$ff@9u~1K6Z*S-p`>7>0 zbNy$;t@QWuNxYYz&$N7iX{pCrB)03eSz^1s7iBx??D9FfZ4?5=ChcX}uG<8O&(Uoo z*-kcr>@RI2U;#KIW(?buLW*(8gKcLH!dR!MbZjmAUo!f1X|V6*dpz^{U^s9?H@Bo^rtz> z=jb@1>`ye5?X1UY@0E6sq=|0#NLmr@DBE@1F$CO^VuH$*-IDc-B~%O+7vwL8!9&VH z#Na6a%R`@1Rua0At&=5`vJ&!pq}XBSl#6oxsMYM8C|MoZQBy}q%M6!JmC${?0Uq(U_HXVgDBaL1nbh<>l>d7r$6{lMEv~Z5Z?`RonqrAr55V zP7u`^&ZXn|rAnzIKVRZpF%OTv#buB|Plj9e%ydC(R4vABOM^zMs+x>FJNBL$gqvSA znnr=;{J=SylQZg6i(~%fR^1f?nVAC>>o>pyJSOJ7$KrS|v0dMfvYluq`|JBLu|M-9 z<_rsqG1feqb57v$#$Zh?61?#1)K@vjI`_fJn=dDK9}vZ&*gLUeJqHV*7Nqgnuv7Ay>#NoUj6gGiO$eg})#^7XFNw38{_K zq4jS}6J7YZJpU)+=#tp3>+iCi{3x=&?*A&l`1&!vd_oxWuwNuVk8NY%!ZE`m%mVo{t1azr?BB#SS<`s(U0ej9EGiMNV{@MGb-Fe^8Wo$Mp&hxi|i0Yenlu91*!_^)+fkW8clbPNK=Dg?^mEGuvqy7O{U?MlAL*CjW3 ztYh#g861~jlHNZ&y?urd-h~-w(ec04aH(rM21_%JhjgU(z)5>iv1|Hw@tBmV3_;I* zO>G9^>{jl&o-eS18U_W7AfoeH%)%1Uc?TwKP{jahS|MfucND?I-?S@EuP&{>=A_>n zC@Luy3Zl~7CGNc3EJsE+{}rsLB=>yX$kHZ^BVV6Zet=ot^vI?7_xq z@8jp%18T^0V*cPQdsXZ1mcgkj^}as);$+)IUEM8^$+HJ`hwnMq)-w_CO?vAaz07w! zXM+QL^hI8~TL_cDnkKfNqUJC7J1&2 zaqU+k?VpKjkB;}mChf`c0$NRBsbhU@2CpDTBN-z(*JDaImEL+jseVdENz*c!vRHmk73FnKHzNJ^M_5jbI=c}l|+n>KvY z1k=#GqFaUoNub2&E|Kp_{08E2l0b}dKpq9?WcLY3`!a71TWUB0qZrO z{As|R19hTKSg=^*R~^7@+a!%oD^@`B*3)(&(vZ0g^E(9xt8~!~OlG7as6tt`rR&nj z8(A5A&1|(?d{f`s8}M}cgwogJ8|WNpZ*6KsBvEBWc}X#a&XS0NN{w)$EfEpb))r^Y zL%E`mRe-pWXjKp%f%I8=Kk_MP((BI#rgshPtSm2c?-=iG88(>)8V7>kttv0C+7%qA z8?ahO&b_k=pMJpU*-_@Mu`i5o-#1><;3*&2*-~BIvUl{|N2?pE%Lk@gtE*eZ)P$$8 z(Gz~6(Q~xDzOJ434%3!p)3ch4Tjo7NF|h(?VzyGD-14Lyu~h(EG^Ybt7Z$4q;tjy% z!0rb`vPdcKO!yquNtf11gZkiZ$;}Z;Nl{KkZbe2KCog1+Y|Y)`adA|MrA?!hbX00Y zBnV`}AGC;22>$S${+Z?FQ(b{Tmv3Oe-q(RRfGc-;{l^zSzHof1cj(G+&xrpKKj9$c ze@fx=Yx9`nfj1R%j6H${%yYRJqLHiU!zMz^@r4Tq7ta|&hQUt4dpig5&vQT?A6Y(m zc+T53=$&(8S_Li8) z6R5pUK&fiF2o56O%2ABDGkz~tIAJKdo%I#dX~%!~BvvV^ZdTgJ!wKVv zg^-U3+y?ZCRM&X*l@|j1U&)Ah8{!**Y*V@wAX+O5_zsw)g*3j!$o3C99mk#w_=^f%f zFl~t?t8Lp@jwT?^JoG z-{0BQ*9ZPR#QfVkK07%l6O5wUfM*?MF6gUyHP3T&$zZ{yeTE^f;=;c}RMYjxPJ3jXa0eo^*8C zeumn?6Ee=D8PV&F%3TuiY*tJ##sT)jWnnN`kb+>fsucIZ=QgtlP*7N$2W&zM`)Jtk z6*E3FBkN$}R|y$~eO+JcaaUFpq`(Nt;39qmsXL_M)Rd1|-#$IC0K5 z)MH;db7pDzbogq2-&#h<)au#7s&n|KulW6a{lHF}yk{04Sv+%QamhQdb$eYPD^13P zsHr6bBO?P5dXi2o>2q46596oUGdVyshXR}Wod)2ViSav8U{O(FZfRcWmh@C4Q^D_q z;GzV-lWt1`PM3x>olWF+n&|bfW`t}f_bi`;->LW4eegT+z_;$?X~64Lf^lR0q|bLUbn(3@CpTVXnnQu$#s_h0d7@z%3`@26V3rXh?oKS49qsn{QpYGQI8N9}m3n zf_TUDnSt@??laTj+n7ft5To79^76!!IY_UAcSy?1a!i}fJh29bP?rdD1eYLQZ;`ZB z#OoCWDx+Nth8|)Zota{~?G5Bmc#M>icu`SymB(p|MEJpRh&-eiF^Q9%66NB~g^z!z zsRIQTrg~m26j5r5-x!(3EhI_r0B--H zulMjAl9pHeLnDFkV>C~CDfyesD!ha@Z{CEZ0-wTPVO+1_Ul#Lmab3BlSP?&a^%{rI z;yV~Aun3GDqJU_&M%WF;&h7Z7O~&=hQ1_lm1G*U(lV?=OAZ)~&%s%~TVS8#?T$&Eo zQ#`PI2V}GMj$71IO#j68lNxT6*nVP@_TzEw(K#I1q@CwR;{lc(owG-qvjt~{#H|wF ze^j%(WjkcEHjlHh{Yf@!?PsVR`)(Gt2;PJ2hbrYsX@NITNE0u9fY`ve2<@bYLuky4 zDK^Af!6OUPd=YY&k{zW$uS1|P(f;S)%`~MdPyvO9B_$*ibYgY}z?Y4G zry&|X3%QVp(c=IH2OI(#arn|n#OK$p+=30f_G0+A;eYw} zf5#)hlS{zA@eaHjncUci>;p$TI0=}J8+#h4JmyZh%oKN)rc?*2^trQ0Q80HDBqogy z;0m1m6wFM1aVOT0a!|-K-j*ZYI=1IaBHvy9`0R-I>Gb+nDm=7D`MKmf5Lx{Ghd^I? zpY${SK*=Hhi-V6sgUa#sP!K3zv~v>i=vs^wdgbKgvZE?1Y6l^}3U(2E&W6^%F0XoETYE94#W1^xp);`0S``tf{nC}BV)G;^a@3A+Zltxk_4%ZOvl zhim~NA|5=bv|3C^Ex-$l0)-$d*oh-_DV`FliT)v{`QuTQt}ItpRV5N_ zDRczJ1|vXu8_tZ#;n6##np)hIttrCN;`a9MDlaZ7-(Fr+T&}vusv2u6D{FW3hZn>j zIX!M?cwYaT#xKvXX5d>B*X0o=ho1%dC`$qy2l1sPKokY?cHCmgRakB9fD%#qf74L5&-!G;aF;1#svth+U$4!Ux1t;Urw>Ic-_Ha7jo{XHzf>6`(bqm-gc5aCWPmiOnoLS zU^(UwX@u$y6u<^`DzVGn0Ld39NtKSQDnug|=@Lpi>M2)DUrS1c==b{jIy(EwS|0D8 zIUutk#NM6(I`~zMP9K@OB|1lvrE)G38z$TF71$4rkQ;Hi5CeSn$Xtj)Woolr2wj!m z05R6DoI88);MsF4R6d}4c-VUO$lKP=oLPI@k+Z?Uz{7z-{sXk<_w%|{FpZ;jA;uNc z9<>YO+oN`2e0$WsdqritP{`+RunW08nO*n_;yB^k(Y_b83ty3Tq1GO?3+eq=BK@Ow zA+?hZBHtgi3(5X#jI>AXzxa7X?LTTK9Ya2c?LS4XUorfhdC(rY`D0Ynp%Np$+JL6e{c$Rphn0cUC;|-Zpu?u<{<_ucM_E_4*_CKo1 zoC^6IqMhu2HeyrL^J!1W_R}%#TViE(L~|m{TEPP^SJH=2XP? z<(!K0GNE{?%IeGOONs#Vo0U>gs-raIX^I$5MDwT-9dAB~v%aB%3Y*NTXspX;6Z(;8 zRz+@88AI$Rmf!E+SD39ORX7F%kI*i~AD}(uRD2)$#uQHSQpKZe4~$Yyg}bUC71B*h zseoim%$1-SMe`}j%M_)|Q|>7)B!wU*QG&&YOq9SxC{eyCQJDb@ctqC*9pIInqUW-mpLX zqpf|9X8p?E!0r@bvsPk@A^S*&Qfz=y zY=%`k(iy~(JeE@}Dmiq_DJlbPwKe4J>h!fV)pXQ$ILk_k3jw=1GO(Q0qB;$VSYBiu zk)z;OW8GVXj$oPH9xYoTik3#)UDt-DriQB93K5-D&{jP(_1(&{!YbpeeWJ6vtpL&Q zg>9u}m6c`XZue8~aF>@=+V_n8cKhx^loqHe+`avggYJg%LjRcjeX_y*TXzHhA(Tn_ z7t|Ewf>Nj#o%I#UktZGTzAQpVh&Ti?y zIQAsMMx?-Offv*XreMEZjI4|wD-wdVT%gT*ssO6V3**8=Xl7^`D~=}^RhGSu`Bnd73WrtBa!O=O@{M8OnYnaXi-3`~yWWJtA4 z1a|Kao$K*KfAacQ7n_6l8{54PTs|~!otbdg)mM+&a;=m7+opE} zO5C-T-PY{vcTd6s$GmyGJa3$*Jn!YC?W~LO{JcEBZauG~?ak+PVBQ7;=XDH{`W#o^ z>CNSJ#5_UwwRS6AHLaQ5t()a_ydeqoQcvGvw`*Q-&+E}MEjFjaZ{9h&DRqmq;!jCv ztn06{;34n|cu3No?SIf1HjA3C{s5jXRANd+*c-)uBOt?Q;B<~9(2moC#1hgubThnG zsjYNYIvZlrIkaS_oQ*jhOcV`cgln>Y!8_3IpXyv0>~8i?ZtL!9^bQSqJBHNUzWwb@ z)4rZinjz)Lw%+;n>22NJ+k%709UAFee;H%_6SBb|b5j(m86fn!M+7R%h-8#Ja=K(3 ztA<=7o8(XSPh7=?xoXeoT(G`!{i~P}p4EhTTh*^XHh2RRRAjgt2^Bzk$e)RWhP)RR zXtxY^kZUW2OnCx5aEUmnP8#T;yW%ADu`)dU(T|2+c)?k8Wyhcxn*Pv-ro&%E6kp8y zirBM8?}PH3VplDw>9`vAYOB?D0C|sHHUgPYyeB^wki7ga6-7sUaQ{VIfP~A(;03c6 z`1RMWVE|W#r++^FC=KD!@db=w$KV3(L7un42|fT;3_JE#H52#7F=ji;m@SPJxFXS} zO1YQns#z_iLU4=^RT6AM2^QnsxOG7RN^_ASW(~k=*&@||MYdOMi*{kN_1Pd%>*Kzm zpw0^7XjhVc(~4s+6Vt9zDq*(cznpAm3MOsRQ-rvZT4eeXand)Hu<@=cZtl<*;e#?e zMAl6kPaE^btcjK-!Zg9&z$7ZPvtg-DXW}*Y~_^C!0||U$+@$`>(Zj zkD1%S3uH6D2wpIVt1s&K{bqgX-EX!p*`CS!{>_FlkS(;aFXg!)W?!3!Zl@*ATeop# zJK1S+-qOaEc`kG6dlAPxHGVY}yj%=}L@}HMilRX0=JOsNvL)y`{RFfW;bU07Nk82i zu(`4_k!5Q}MjKW7fCPY2i9Anfzq$wtu5gEV`A1yibxmg%7f(M!YwzE>)h`xcuGY1O zUtBtMiqAldS)JpvaUp>h>JW?YUd%-c8GYL3Cs$ zxjR!4;fBr$cW`NTE=D8RU z=cw_+Da{U-?L-qfM`^DKSZRt{fjK7RzL0lHKWUQZzWnm@OBYhM7)|N+3yYsu-QfqE zeGW&TQ=DGEL1zxkRvc7rvU~%Tg&AfboLce=W1M;v|C>*Kxji)1X@DR#8MlVE8ZAOK z8@jhItn?cJI$KSH7{Oa}y$**rSKJl-*ZK|d*5ZDLqrW(O7g!DS;c+qVA@(gs4kfnh zaz(b2T#@~CxsuqQc@p!M7{43XQeyr~&*blw|I+&OXO7-#Ni!PKEVmy0%wHZoZ%H#5 zGpy%Dkw|$wrO;|EOnE%~>+nn0Qc3__r(DCkJ79CtTBa!#fih5tka%bgFeYg+kynlx zBb!~OzvTI1(qF`%?fl!NOV)IQA>DHOV)$p*{z)~4|7&*rmM!(!V%IvkFF-qfKGP0b zeGKgq+jZK>cA}l^uhXsrSQN$?X}_SplJxodK9|p-eJ-D)?{jYFeJk5}-$uqsye`{y zUJtQOMSj?g`7eCjy;1&4NVKDvz(Xkev^6B|m=1;S;rthVF4N`qIJzXZN6s)B2jiQv zzaHO0`YG~_QFr=YJVz)4_`MD~V4U9=J|ZmX8~Tk0p1CH{pP}+xvW^r#i+xgW<1s#@ z#j$Je0Ig*Et(w1Z0D1zw+XL?zBG^?keGb}E|4&l80qOE0%fRjM4d4osNF6Ednb0NL z11;&$C!tH?vIlncNeAP`Nuc~v4*tj0o}l$1@DG|F`-p&P3_NrBGNyC+@-x%FS`04! zYC8NM_$&O6)0hhAM3_@0bhrYADk77(b_7-Ld^0aS}>K~OR5DEs6*p&5e_zckcalnGjeb< zyH+CV@Q^;dj24WnJE#&KU%F5-G)fr1_@NuOXNWC%}bQ0l8HDs&~8 zEQ8lklB1MKP?ifi`(svc#sptvw9@eKme5e*ifR$R%=d&#fF{@{bdZowne=7@YLO4B zBfwqUko*DV9|Lx)Fq$pG2E0=`xN1`b%8?@%95yC`C{4Ci1j@pvr{SJd(go&&)F8&M z5~c>vV!}5N#-QPAP(4(t8r(CP8u!gW(}pjh1D)WO>rI);zMpWC@fC)P#|yu#7&E7*=*}q+~ZILw&z3 z*swFu-hF(bvEaK;)wCU(w^?s%-_h8(qx~>pTb+Z0mQT1_THK$gYHj^e%~sLA(-m{-=+7x6dglY`=CIG=NrIl0oM zF$EB{@D(oZ?c(pI*Z-w^4q6N7i1De%n2vJX$K|+h z{toiB3^G4UX(f{wao!XutHp}Qc!?z%GDpa6$Gkil^!B!lkMB9mYbxK#=hb_dh7VznVT_Tncwo)LvxRdBpL6>b9%J;p zqVK8Pf0D;8Yh@Tsh~~uTk*Y)GXV(&@K{yDek&}&>#e(dzoU+*I#GDWu0HRMP3o=+% z&A>UaG(H0bJ5!hW)SX3S? zD=aKSu!Xy!#^tJs23!2?-^h>)q7=L?xcmrvEnh*c$vm<@5|WAI%#i#ykxYDS`*f25 z$CTB)b#BO%N(M;d)c7hK5bp3@xm_tKUAZD7{L5TlYN{_+ycMR$V))~{uXrrHuO7wN zqS!}byDo2JJINKdFj*-U!^o+Q6Y@s_3%IQ_z&XjqvzA!l6&rBvK=(`L60}9 zs4Wkg58!tj`sEVNh!hYrj1QITcp0cH3MGN)=yaErv>jZr;gDgtvRpR@#U(`ILi_s= zfW2++c~9V*-~8sZ=n9@27z=iv3x>Z&SmOxZ=~6v#f}yr}X>jg3-hq`aqQAkvNToz$ zpa5}Z&^*Zuq6k4`RU;-B0fNYw47gYX$d9nAlJ=6NTHt8Qa#jMV273^s^+^b6bY6%xQZklHjFbT2hL%cRHToW!pD=2*Fz~qabv!E zbm@e;aomfSFM|acU!t)CV^HouBp0&pHELEs#;5|pGnDP1DrwADCrgH6=fwHPZq`WjEA ztGu+ZAj^@OmzI}2Qku4xu3ROhhxky5%T6MLCqBW=de>ePX z<;s!k8GONmoH%rFI#ZNGsP9Pu=HO77+yOsaQJ^gGQw~tn@|62YOE2KK@bc91lA`>) z?9B8uIZs`g)aRC!Y^_DTQwD>7I(AC`OP`7QyNy$c;a>yf%dI#Fql#Q9GbRe57{%Q& z(^;m|kEa6_1H2vIL7&kw4i=tKKI;+r#{8TtQjfJ;;B3$)1hO@gZ^o1}2ai7-I|&sW zo0MPm{nw?Sj*s#Q#OI-^9kw1hF7$sB-Wi@8|aS$nOKe=p3wc)O&i?7!= zP`zn4eZOj|HaNE+0|nbMTp8fmqC(Wb+=3CNJ1c3!3LkE%;_7|~AFx=G(?D%aFAuJ{ zn;g}D5>JW#thDR_kE=YlJqbmkzMNv^!RrN7&QhaBDKs2mJW1gyP;L19CzqYsqOuXA z5u$|an{C=D;N0*zXHL+QNMD0BgsCG}mGU(+Q96(_xR9->2h~N-zNkNl>p6%F?G)VR z8gFQ#8FM|@@CUjB!#D_~Q>X|6OWK~gPw2C8ItKQo<`a_b8+}5uUDp{P>olK`Y}a)L z*-n_SY?rzL%SQ4EK}uQ>MSRbEDR(!Rkd?8HxU0XK4d{!I8c_(NpI^UY=amxN;?XPEk9%qw4cBwhw! zckAH@=0bLm_=MMSXMstVCVa>@7EuqV;r&n(d9zfMM^(x78#4VTdd3gq{Gv1duE-fr z(?M!%;Dv$(jTqPW<3A{j&IXGbc00gcLQ*Gmw5O45=vom#Aq0n2DG1SV0|0+ujIc3gae zoOdf0*=93C;7OxUvQjlVE5N$M+8g(8q&GzRBb^*?uo{)4`qNpa+H4lSg^%vF>O?rK zK-uhzNH|A#AmQ4(6k`ft+s(ha7aZm+EEGy%V_{=mjk^lfs*rD%h0I|@nHv?jG6=X8 z6^$xovjR#%?T}JL$V!Jna_XNhbrWj#$AAk${5SmB`mM~nzE(CG}7=lU|Nhb^ft@!dbR7uq8k83x+AWEK8BN4q~5q34- zHw3p#dxtnTb9kR-%5_C*!*LlFc2Dy)T3w}WQ)97klxD-hVH*d2J*Ah)s%r; zjTBIPQB^)I{!;ugXk3KYp$8*%(TD@1#m;0sbHJOh*HIr0RnY)??2Q&jGb=l(fIOB* zrP9GBm>wqZ;Kr|^4wUva_|EXHXo<9{k}ADK8dO@`kZDheBspTK2*8V^b;lNX0zfG; z8#+2$Lax%nN<*uuuf^+cGT7U4J@p}9h4{-RkEgLDuP8UuUE5syw6D0_jqvP-+(MfB zQ{s!_W2iksxi`ol#Qa#YVO8X>aKXN<$-#;?qza6)#ef#|K z(rwdPIeUzQe6x5j#sTtRESK;*`EBK0Ly@Sucm?3@@V34u!G=>=uybkoiVqfKrTKZ93bI? zy@6DEB46rkl5++|O(WPfOG8+Eg2w>L72G__bs*D0OVpzWo(Z&ahTK>LfEP}p);4*- zv9pWl5*)g|fHZLcbJ-4?g)_jYJ}ZhOLi#y#d~}hI*<8@zsDveVek2&aqvv;DHHq@e z-zmL)L|k1z^PS6=zoYhruT09=;V>mx7=( znD2S(!qLWw<|7Mt-n;)C{&7~k1z7S|L_hz~eN%hFe@Z_XLp$`{T*v~xm(VR^TH$Vo zzwu(kcZ3*MoMKeTpO2q18QDj!@Nx>1CTk`?H**Uh2#d+c_YzvT_JrHhmdk!5Vn#hG zQI-hDk-|@x9u8#T_ydV(tIs8F!uUw~kiv={4F)ZLO1Mo1(!`fX<%tTcD zz|2<{Q>k^IA+!hOEWdkUkHMsV51GM-D|e0+sHcEvKU%eOEPwq$tS7&NdHkEao_bAc zioc+`nUHe4?)*FT)9&-)n${R&_RZgk-(rjz%H;S}61#b%AxhrF1Jxx)5HVB^tBZVs z(Gx%`Yr|C-H9!%p>p*U`*`nRxM10F!V0L9^)_cHB7eaq!QFrb(?b>lbJdbOq?hBv4 z=T73wZFm>%)53W7@^~Q&=>9HYjCH^mwC|Yid84mD!Ng&DH@)BuJ41yl%+FU8qzISiqauG{0R{`?#F6Jn zWdVltB`Sl|L6Io5({NguT{#{Hxf!&m6l}_yy$imM#okcgLWggmcX#L5*gNslSrBaB z-~ZgeqIZ1UyEyP%|Ni#ihsBS^0?+l0j`lql7^8Kn#yUw}C#+m3@Zbn|e!$aI2Y}?O zs;m;IPze1+6SQ1t-z9k!Od7$xNrH)wU0ygE>hHqcbr}bCiM;TSo7=@(C~}N)f6r3A zW7sCR>k+BFs%e*eGTCCxn?(w7U*r~FkidlCAC`;|;^K$l+e6+bN&4D zJmy}^f$nEOO^85+CT{7$CWK__A~*J#Z3gX$c(Pxey>0vXU3lPG^)mlps2FQ6#yZ1v zK%Eg>F`!y@(Vdxe>JT0uGur4~>NZPB?09M1IjSMtwe!Nrg`NF8YW*c=Z!kUH&igQh z?3SJ6z6(xT)2^&>U%&aNksd}UbUx3ZpN$BCh z6`yZq@Zop$jE(iY3&QqU++sl&R*d!bj*;(Odmr5^6RQ(}&YG|!-8`ZbX}8LxMRX#Z zIZ57o@8y@)s^3@rqnWl{3ppDv*VaYgU1@;cG`qbOxr(l0rBzN_)4> z&278<7NZ#1CKh@ttE($}O~Ed|nje04cI3jytomTM?Z_gsNiI~%FwYBbEA}cDeKf7!6!ssrs68^||UDXA5EuS^oeLpyR{*d=B)eps41gTH4cY12u zCbu&~3(^AuSqqXWrsRkrPZLFG+oTqx*SL0J-KCc|ri>~IaGs4^VgJ4F4fXU;{)4=7 z?bH%oPjF)T9rV}IDGU)jIK{q58YAVgX<-$hDeMY`TGJheXCzz$AX^b;BLWUA776qeYSq1=%_|C4xhPN* z>0>Z3x0=W?#Ts!@Oet{mg`FF{5|OU0&~l;>Xl2(J1LBqiu4Yj}5haUKufPE-_ub=j z3o|ndbK_I<^HVjAjWzhOADn$G{AsZD*WS5%Wo38xuGxdzyS?JA-tKO1_%3fZ=GKYz zptG3dCL)5Mf*_IsnW*3rx}wY^FXY0Bq$zGNe{frKM&6b@X$E<$q#0*vH&?;>fl)!% zr-FO4b2}dyoak5{_?OVx`)|MJ9^cks5y(Ee9lAJFWV)2=9$_5q>4s{F{fu~WTHjL2 z$K!9%82{>5d9DMPYboBF zr64W~yv}+iHYH5f6{!>wL?#zc-a!t9lNK*g;Uw~k_vuP!Q!q~L#JoXA;1Yb7z0_&( z3&N3*e`qw4@u8bML{Ckp%_40>tD!^0d`f>hcIz(>>?u1!L8P0eCw|^t9UE0LdU)scaf3_j{EI1JDkDb8z zM3{dXq<@*x73cs>VD{oBMa>mbhFwU(f~2g(%{)6ZBOM1U0y(Vl2Q1{LK|js1NYSEm z7B>W=@FRYn`!|12kN@@_|G)LyPc4fvY7T#9>9qLN*}%|HAlx<_xchFDcE#M;mf<Lq#_1HAq&w1y?_T_b1qRz?EXC@ChYRbP1@0&<+%-5SmlWDByyxnKH@A ztzE%E*bN&L;+OZ|KXc#1>tA^IzFqIU|6>#SbsXYtVm@*$2aSucI%#u#j?Yv6-S8yh zyBJx(-b6d-IEOug+k9}*WjdX#u##wuU}$Iwa7j@e1t>ML##KrR?56Y-WLeO?n2w4} zsxu%*2-6Xg7W$U>9NiT1)nG6TP+#5^@=ftP8B@~c(XdR&0@Oi^i6=w&Ak%SI(W1#H#^2=zmYZBGUIEDv)d6-#&eI@?y3zB)@^slgYdKP z-@XP8D^qUMJo(hYq(EPWXhKx#8ZM}`;!qST;59Sde9%KWb6unxq8p870}jeack~8` zjRS0vzqkYDx5)^7HJ|(@xZ%TMEHjniod!hTB z1jA3*tg6_Kb;h}FzzGXG5J3%*?Ne5gSD9aln>TT7pIH|fa44dV8c+c)TSk^jBC5S| z=GLQ6e(KTGo&LquGb`PLgWdSCpIuqM{T{nxZ$|nbH#GasE-kN|4UYMj=~__y0aAh* z^I*m_pkEpAAvz@6RFNJs=JW61>Z||A{K&uvh5>fRn`>^B;X6TMLW1J#wT>hOj7 zY7e!zD$fS4(l$C0hSW5?t8`k;lEei(v5=s$ls^9Tonowc<>hWB0u*M&-+1G zV8FU5>?8r}F5V35j(o5=*4;5nLsjo_G-BH`OBA|7x(?Q z(YY4TfNLZ(U%tTmQr1jH?52X>K@*PM1g$|K=tUHBx+&IO{DxRJZWBf|Hobx)G!{$7 zTh8o0H)oh5e`aFZ^owh2P;nynE#4tKh?i-v{G%MltRR!nl!D zRa77`Zi*so5cRrs7byo4gK_Jgt9Z5*_R!H#SBtm3x3~Smxh5Y1>g&B~NIg8;6j~$h zJ+Ww+9dp$-cxsxaYAane6(s|c+qY^AJPwQ&bHSeCII|3;GT=-nPlm*|!8%cVn-)07 zA)O?IZ|m^3&oIB+VEy4q`U7#g->#c45r2a~^P2kkk}xDH){~#lJWcfj>AoMF`*<%< z9_W9R=L?+~C$rRR8UG=L7L2BW59l4Kxd|WvdpEjbtD##yu=;0TSo_#9)&1g&;a9@n z|K%_7PJTAOvw+`ui+YIPS#a}JZLYw%D5xZYlS5=+Jjrl!eDZtYv&i!Q#rtPt);LA+ z1S;`+aw^9mlSE|>D0k(|hyFDb`d1?G`i)=ylGaqKHwd$xlbEUs9E zfW|wtICZ=OdAR!ToCks5BfM!)nlYAY=sOax9}M(^1*GXNI4rezG78QsMUz0-O{J!( z*Tv5pRff-DtK^ibjGkLIqUU`J?YOi#6hy9i8OT)QSZ z7Vyu-4)xma#0N%t-b*zt-rF;R;bT5hZ$kcqIKec7;VV#S06qwkqL81go}JM`ty#8o*8L2QCIabw}>0kK*Te zavXlH-BWLKLX0qsoFk8tsBeEQ^pX9y9Gm~hN7{Y9_K&FUzuvzyxG>$+(9i@j;$4uW ztQRE46M)8qo#TaZ*m)GN*Ww8P3~qSmpImy@F2uKVtin-8fLD)I0BhV#N4-cb#<>0K+Jt~gd%h3uNQ*B1rkczC|{1}Z313C z2pSV!{^9Yf9-JEGAV(Zt4qk%Lj={?%u1;`5LO(oG??!O1{%C2xY@z6pOGIl;WUu_z7XZA1=qq0TJ|9dOVeW)2zQ;9DHVWYwgxq z@tyFG_Z{0&Us(%)ooV35+7k_uV(eIlH-WL!X%aiK7>wONbN^T$4e6fypY5xxsj2K! z-OoJp%Z`&2xCX_%0s(aI*0wG!J59|u9n$D7-JA) zq`HgJ2k-`w5HVUJAPPj(u{}r?3pm##>I2XNA-oa1Jrdc3lutL0Z_p>l=c6mQ&Msoy z_CvERUBi7f!BYQlXUncbJY=FP);C%+U%MwDNqeOBK57*vtKCkELa`FXWSimcAp|Z% zmxB>$K*R@}2yl2A&6MFvh^UU`6)VM*f(Zix{+QA_2OJ3C6wq9+k{l@^?ZQ0?pZZkH zO$i~jn{Ly2ifc*#wW#kIK+)vyQXz4P$2WuSuZzbQzb+onoXvPVugiZ1j|Z$vij>T$ z*k}viKRUBKga41>)}(QFU7fqCw$?sBHS;Ug{S(IMUz(a9>1ce3(#-J(&8r_Yro0fs zxi-h*A(1pJJ_Al!RQbux$i-KHJ-Zo;r&3-R6seLfDDyb?35xH3SNF)V`5%SOUOMu? z11&v0|CGMBFF3z`;~)M(ls?r`U)KVD1_qD!-%u)*p#ZLmAqXC!lnAJ_QbZ4mY5)qM z>UB{V-nK;5$V$1STBYLRm8RO*6mY~sE8?LbBtCKVA;^AP<=@IRvT>!-Cq5zTWM4RR zZDy!Xr0Gi@<%1tn!G9U&fl6zeVe-YBV)DGDIQk7d_y{n0*yx}B^iQULJpKOZpO8F^ z>OZfK$wNzg9Za5$7%E=ib>XhR`Oxx})u-;82)0~VVN>R}|M2`}Tpu8mebBW~nFjhx zax6aXEgP_S61!}P<25<^;DHAg|0C7?!yl5>{qvt=kM}~?h0cYX+1q$-+V8J}!}Gxl zeHY#1aCod`EdEAYm~i-~7vGv{HyCUwx6eNf9DaNp8q9kts4`N8xOM%;_!_hr%ySI$ zB;9W_96olz;&J!{rIko3-lr?B4Z(=&N>j$G@GgpvqYn18VessVhO^q zTtL!qxW@~48igFwLC&!^8Wc}r9%sA^xd9e^{`@lT@e*@ed$fDJa5FFN@lu=RMP7^j z`bA#hYuZI#SaZfssNRo?yi6TaK|A9b+@2fPE^T<~pBL9I>%OC15EXT7M#titH^<_g zZyt+}%Fbk1Joy<8oIZWy*Zn=+fjfHoe;u%&UV7j1$K`8N5C8AsfX4$Q zo^2$yiFl5l=$JA0^mD)Fe%=TxN#ltw}U|TG&@uj4AADtjN<()+!*fX0sQ$G;#{>Md>vpv zO%P*<+T@>1u*vaz#3oncaCnNQz-J7>zcIG{#=yEy%Ye}oKiu@lffW*1-*B1fBCa^q z!S%y)?cKw;(sZcHJ9n7Xsi+-JzD+tW6JnzA`z6pF{$l8{U*|QJc01KeNLAbc7qVgq z4^otB!k)wdGJ$I-98ybcG+F^+XSHPsgOe^_F`HYzbo&>>-#;vJR?{*~#w_xqh+l*c zh>x}J%gqhpLE2i!#t@UvXJG&96Z#mVv6>i(7OM#kD1z?FHxd%sZj3tA8nKDVBS5xK zlQLCYOabo2WyQEsF*iHCD5FR^)ofOIZ(Q_d_V}O#Tm+f}L3WxhWk0>Fm9#Ivrp2tB zSPoxbKDjgYCid_&)h@uP5f>u@83nY6XpUG}&|Rl#s)CR;rX}D^jgAZ`I*e9W!XP8v zVAIlU#tk+g3d%K6 zp%md3$5rw}uwMepX*8PP@iCcdOjBA8UWyfw95LB|@#jR7NNg-`v$QLK&jhG9|IF5rzA0$KxkDy07O$OIiugG6McWycSBkwRw{owJjE>S`bv+#>uW5+>fI=g87-6V$~OP{z|L-fA+ zF0_*@a4S`^J^Wwwc9H?`|2{!2SieA|9r0K(?HreN^D1mxg=mHTf6x67aR0aC-xSM1 z?T>N$r?~wp{tenf$;#(Le?`6Xi=+9n$yqBLZV?^TG@f^&Buwog*2yE7Z9123u zE!e^4i}=)HKzQhyVhR+eCg; zxc0fCw~W81zyw^!=x`_sGDeVphG?IR%*;%_WKqT{QNR?1@L-5lgv=hpn3~9o{`H~7 z`S7!$YcwF~O8+{BhwBsAm#zXcL9GSY!CAnsR-fDwd)G6{!-AtJw5CPV#|&nbWjRu0HlZA^2b7dUnL&_Q|Q zL(DbLa06@CJg*^}Prv1P826Wu@+R-FC6?-*M%&9sT_~CMaukTTl3}`gag7>-H9E3k1s3C_Pwnz}2ze7z4+AkW7RksWez` ztcjI#GuF6*pCHb%y2dn<{#1&ItfXp`smM76D+)*}#K;mzOx63UWpp$^9MaOwN=p|DD=x*Vbxo&gCo=)+O@bgRW7(2h*HB{v4_l<0|pE0M5fUBsO^wLwJa>VhVsA@V=%{7y zc<%&a0s0%aZl4?|si<*P)=o9mcp7S5W6-WJpS7E#q>~`{Fh7u!39W97nh7qiR;C=K zDi+k_p+XJX%@1&!gR1Z#=49jA2P)hkelXH#uej^b^75_sgg+<#{Bxn{cl=>fYtd7+ zV_VV-Q`{xXV?*znKQ$ftMDRq@WOY?quiL{ip8c+L@0pqJ3e)vDic#DoJ}L(#`EHvicLkz=7$sQCjf` zmcc^#bP{1M*msDXAt_3^APrRFyjc5)8u2+FQBC^C(i?<2aJWa#<*-+c$Cp5#L%Y zU~0F{({jJDgryB9w)%#LeGfk{ICJ*F?WMIfBX#Na;`rM}zyL7m%c>pjSWZpq z%VigPX)(`lpN{d6wA9@}%lt4cU{&7A@TKLGhv&RqL;kl{b*H;&ZD|awr?7vK?mq(3 zNuFeulyyuN1$7cwGs#8a7kSMTUEQr@i)@P&N?Ljv#qVqBX$f&>HGxI1cQGIwf7;rO zzqT?7>7D8<8VU6>g8TUu;LG6{^M9iIM__|CVSMUU|1B-+&^;9VKFN_&#*R#n48>TqUw zC?g|9AdqANh`@GmrS@v7{GlKa0q^E>o7Gx(Re2e{RGQ~3bD$PGGzEqYDFrnL2a3f^ zMo~=W9>fSI4&Ch8*H+=L&MgsQq%+vNue~kQYwg@R=rv!v21V!L_T62UMN^Oa!`)-z zd#!Ul480U0(6Zrg=dD#I!vdBGC#YfTt%0pK=;1K6 z$=oLEjmEptc!TXWf9o!P-&CJ}*RAu{t{q!I2)l%?1`5hh_M?2Nytu^aEFPX3?r9kSJ`%9c@A&+lGxkMOZ{yc$nwx9B z^de|$N1ZwXfT_vQn*s2o$yv_CtP(VrXBZLa=Y35 zXZV!*GY@eb3-J)1QySY&_$;++_-v#MB;mJ%?$_tnkajo4V! z7l#e>I^ZN)e~Ohw_q~DAf_&K7ND-%dEGhUf)o#o)A&v{7vMB_eplFeSf>_w)me-ct z{CN53!4rMSEf6XLwtnh$%nAR>2Bk#|jbF{e2@_CkcH7;ls7PnOTWYQ-3HGKG zR}@zv#T6O8*?7*thUb_r{@xFwtAhUT2lW47EL<9kyfPhJ>RpuAUfJrvqHGBa!rye_5D*=Yu*bvIFQ-c_^ zKuU~Ji%EknOPGzSWI*1HvA$Waj0Hw=+1su_w?wgri&k>}YNv(8jv+$y*`(+zED%bK z+vO}RDX1^3&(4&WYbp66KP5&CvQiTjd7Aky1tRvA%Y{Nd+1I;=J(XwF?lYC1p`I4M z)#5KLac*~(^!0tU&%S&73yp)0>1oGc;}^zvceS>5P1ILE{d9Hxu9tV=|4jFTm`H5B z-a_CePPG<3d*o$jLp|cSNUX#XffTr}1TFIZcNDHDbh_yNcazs3E%e;HtlV4_ZuS8v z$q}~u9p2K??wwnvQfvl8O3K;!FClpDlP%L7-tcdu-bZWabZzV5m^)gmB)K-pzq;(51yi*(B$U({m;F3 zGD%aw_kD%QEO$HSfBxscFZNYN#DQj-E}eebms1lT-tGUAy)mqhHN24@rKTtHmqp#? z%5{6?jM_1*KWYj9b`j{7WNmhm{BEZzACwL!>I`BkDUT1FO(CzCXOW=a3SV$sW`zBV zax=IIJmfP5>Jd>|uQ(KpRrlU=?=5vN*0C)ex3pjNy`Ic$QM6@}QR$_Z!s1o(Fe{Js zXITcJQQ(PWSEjtYY{aS-!D<%;L0gj;@)hT~u`yt;)zu+LUMCtQ>Td@CQ`a?8?r?Q8 zNJsGg)BB}|0p^&0KD zWQc?%B4mg72K|Cn%v^l&%udFimo)zfu5-_1Enp3B5#wcf-i#GWuvGgGcGfs ziMh4_2>o6G_OMomhW};XrI+q|2#_AmuW&dj@`s--E-ft_8UhTM-oRHul%tJDn;`NrflflXJd2?+bU>NRPhpaU{Bl2d{LhU^(A zHLuhSf;9^Dg91Q|arTJ(5;MtvXHoe;90}WD`PX6ju`tGfyTe<dhClv z-!iueZCmKph0jywP=#~01dM)-oNW}L8bP6tAQ5+Q=(Upot?@Q8L&*Xv#M)Z}MA!ydlj zhIis|JR%&PKdj+;x74TLQd2T{ZwJ>xJ zgDYH7EO>G}tq!*o7-Co#yKiCk;>fP?8vp0n&ATslDQkf}EFKSs<+5EzlJ0>j_8XeB z#P@I?V4n%UfK%v6BpgPO8J&pb1R|-xCnM+-)&vBVFTgf*d{NWnh?1g;gqB5N=6eRv zchno<{L~geG7g_;{eAuCzjN~FYFdP3_pRkvg|D!6Z^^mTI)E<&y9MF-v~P)blP{6t z62PqqX%%v==*VQiK=Doi(SI<(^1LSl%F@!BE4y^(305cXp@p6w;b6x+6Tu0G5%wq0;=>LMWY?u$xtb4xDzMK=I@V9S;R^0$G|@^_7_$tb^E zv1Mxn!{e}B&G|b?GJc^#7)bP11WJkv3vyj1Nrw(MDBTLE3gQ*C^CYI5h1m|9bb_pR zWG|D1wN3|>Z*dekizs;~;5A~D`Ve`QG#*bmRPGR$S5}1f_x3vSh~3Xz+|zOX3ul1* z)K?^p?aNOO?{$Cs1r6+BaRh{ec)yznNE6;^UV2VLTCrcVU`fmu%7maWk{Cv$h6~IG zC8rJ8U;?%l_Ua5miBRFeAkLz76wJ~f=#);01}ylB6$tvh9xmO2s^E56_FRvJqqMRN zi!=oi8ea)L@W{pk_#2QR@Rra~$KfC(nURDZh7KJX*XgB1rkkCc=-w9i49d;nm36w9Dgk#vF zFk>I3Z8!}w4Zey*61D1k6b4PNjdu@K3zuMskj@pW0ZNx}yQVW&@xsu;IZ|JYinOVm z9WxlZBGY57y|vMEI|eU1cgw!W#-UiEE_$GA^%VzqA8Bl>KewsVS6bWB*|@*CD^yk; zdwgi)>V!Yxs4bdl-**144ZWkCO{Fc4+TsiPXD&LIeZ6+vU6;SEIy&Uc+1k-M<*vye ziIlfnEKr$f-WrW0xgQouJ@&WaQsR=nQoRU8#}T)I0wJoHZzM5aWk0k;19u=n5J79Cnm1%gDR`n={7V^QNk z3nz_pVq0t@?xb)|O{hlD0Y?_9B|rfOK1m|hUpjtQ?IXYZ(x)C`Tl(d1^sydx zvwWKA<>%#%R9sB~DV`0}Adk(+#wWUDun@7$(Pjef4v@m;PqNZ*W)9$>mz82w05Cz)V!7ST_v-cCA4y33;brKjj;-Fj0H_oF*4JRnJcp2mDNkg#DF)O1OA)QK}~!-c>!BDyWwU*}^F~K=CPQi6x*P z1_NX%P)bNF68R4xDY$Y&jc`~0acpYq*loRSErU`-+B0+Tq7$~{Rq>(TV8!EoYj3k# z?QL=M>-zbqR9=^{7|bNWto zHz|W7B79B(O?JdzV8Yfh!iLK>RV&c!$z5xB888@esQ41#KouHR zI16Crj;EHi@=F|QY2}w(h|y8~(RPLs4V?akNUs2&Q=N09iaJyig%TP8Pd~X5*n!w; z+ldpl)v=Myo8@oC<8Nl67O3x7|$P*dtrA<+|+6Biqhj!|u%OiQXLTru8I# zP5R^V^$hsStY)mIM_bRuAI`d-T)0iGr*xL}RL{bCN@T)&zx5=c5^}M+o~l2HqC`kY zS5V)_v7QSD0E;3cyPR)e8AsG5y&@j}8rHFsuV`;knR)-_`?l<_i7?%KFd3=gi@9O& zzM&1GD3^$0E_>8DP<`Jvz^5PZ$-!E>Aa{Bdi-F%;l!wB(zAVZh0R4mjtdmIpfr(EK z6Q2Ri{UFp}O-b@hSqvbo=3`T9t-VnnOtToM>+15j$hbu5Y>3|=c^`EU2rvm#8U;OBo1J!lGmw}xNLfTSK{=&LpaPxlF^jx;}*}7;?uDqRnHn&?@ za^Po|N{5}GhKPf6^SWW$dXV9djMT)_+t$D~goYGoJZduWR&2R0Qsc;d~WEARq(- zz66~-jt@3W9>+(7g-!z1#@fK0Md*hqu6#D)=n4x2AyV!wD+m+@u$l850e`KTTBRZI ztS$!JBh5isJp9CsaH{*3lm|Ci6STEEcV2JS*@j}HTM(i+WIM5G_)ubCAmOsvei)DQ z#XA*dzbvofcv)4xX8tFuCtlzfsgp}|ca*FZv*Z~2uCu@TzUn^B_F%)l&EeV_RP0Zf+y)KwRs5FbUM>imV#@vTB@aX@j6QBU-9gTL_ld5MM7YnC(l!caCfphq_>R9 z1|4Mz6Xlwz5+SDqm`REaO2J(pYb&os2Tr`)g@tase*d-GSmZAG@0j|f5x+k|FJGPm z@nB9z-uyPgY*`HBP2rKN*(2)w{Rl+3`Wt~FkOr;6M0Bye#v&Xj`dpnEcA^pOkd4N6 z>i`DYTvA2PQijAxec&gaQzzxYpCaz#3Q&5&@&Ih%V!QZ&d zP8NH)dLjVXN;?tV#Lsdb>Q2KxQ4x)l z`+X(F7<`f47B*Jr)P*ias9HXB+hn-ZV$ zM?U6{u>N>i(NF6N-LC+Pg5ADy+DrXy@>&u8sIa^dVLc7y^2RW`%vWoa{p>PNl^KO2 zu(LFLA~{~6dmrJP;+q=nD@<52VeBr1w+Dt36@Ueb1&BemqP`mGl&~=2)pj5_0;!f9 zYD-U=NWg5gBE?i|X?-w?85}OJNGF(7UV{_NMH%D$?1o(*%xVh6o7Fk02}Xx)v}38jS3G`Wg3bpOovUtUtE-p z>az-LiU1q@k_}(eGT3N)lwiZd{oWfkT&W^iX2r8tgpDKMBiQJ%Z z80kpG=%%I=no`imhY(k?5gvo51cE4+>A(~y1;PkH)M#uWwiwmU0zH!`E{ViGHMnB= z*%JxqWh4#YY56E>pop%NnM5i?3N=#Aq!lkz<I25%I&{HjoN z{}!K*YER3LbB4dD?~%dA)BV)O($uWaf4U&+VCNBBxAItAzqSyMO*JB`?ej9Mgu3JwZ-m=hQ`X{p(;;7Rm*h^ z@ycLPBqM4aizT-VcU3o52J-@@kbO)0$mVsdJKAZ9B7D8HE;FOMx@IsdWQqBU8?wy3 zw2l&wmCF&o2kRhd6a9%E7Xl+8g-QZk9;O*(4W|(A$9vQgi8W)-bH)lK7fwjUHK(#z zSS`uYp|V)D<^VP?Ln#CYG22|$*4cK|RVTjpz3<9ck$Ai`(atUl-+nu(6k_n;{HIa3 z>Z9HYj$>5ggJML_Vmn1IFY?0t!?x4P-A7LN%g3f7hhOEkQ&g%kWKXZd+n0A88DZa+ zU#uET;W))RuWUQTI1hPwmU`9W&3c&{g-vz*omx?Pc^QxSOy!|1@o_P z(KBT`4RX1=hT@}YqBc;QC8kq_4W^q;LqU?8agoPfke_ZkMa@8@V)6ij$CzqJfugb;A_cFH|um^;S*a;@4S3mZ2~EaQk>WOSUHsC=e}X>Ma=m z`MDlfwhiU8Psr!xmbsj^jBGo*ZvK_Ka=J=#d-CqWq`)Mn3VU*MdkR}QOcfg{)uOUe zMCq9}RDkupZK$Y53g06{#}Hy`n6LG#&wcgi)s0_z>8qFD$ZCeY=1U zxTYd;juLS+THWp_dE?GoZ>f_1CvSbzDZS17x$aMyoQ_lB+GwwsBY%-?p1-}R^PS9! zJT@zT6K!5N3=}(RkjIX|C!pF<36Hsji~_P$11hx{UW}E1^^{wY7pr|9wjqC(@1fUV2rh#BO8LfcOY!Qen&i|0p^EmAYP>2bwpp3r z_ZEjs!fuzf$W{dFO*YHcj2&ut1k{XWRnTK;ni;F0(3xFFns)TW2dPWMV7yRi_hOt`jceAlvqU@o%8$3N`3q_{78e&50Y!L!Al~!CEWis6V?ILG$kfc5)htnp zS>wPVhb6N6C}xfLfw2*`)Oy$C4}bW@i|-l}TW_4Xc>cmMfF1XQD^9e+x0OejM**~S zN9;K!9iw$o-C0!cTy2SrUy&)2>&*!n$m!jvL`0FoiEJI zbm5L&M_T%Rz*etgy5>!h_`qPtjzbr0Z#cB-Idu%MM^Sz=R--48ATf*E@bL#e&ttHX zVCl)X#tqD>b0}q1gf^RVMZuyP3CQn|=z9M&qzA94~D7UF1FCLz0!a;HkFcDEY z0t&866jirk;0I?g=vT$3jK*_Xcg^%EQ+G4BY8z%jb;iA|KVrvGfc5aM1KNx$58cMsSWAWL6uC;5s@G`f}_SNi)v1<88qCE#4 zv~Xr}LtozpdU1RO%7~P&Z4$;HVL_-u2spKo$y2cQ0zz6!Gi>G&oY)P8iTregUUEz+ zRcjJVu>0}N0`Ch&&ag+BPJUyO{Zy94PaJ+~{rpF8TS@2!e5l`8G3+0WLSLdg7e#j< z7J*hE8bjncj$E|wfWA*ctBR%3NNEWZYO5oS(Z+zUq`b7;mMs*sVwHTPr3%sp;yXxf zEk;IQ4Qw#*r#`cazP)Xu-7URM)18TJO}#DMqiwVO&Aq+NvA(`oBAHC!WyZn2oycLD zXl>b8Tf4EPbpq|icJ_6mh|7cBjg8&(l0QEjZyz3Rk0V$Dpc4}KlZQDH4j_IH5C+m? z+3~Xk8y6fF)4&8J+5>?wZfH#k4&Vw`&~GFcsRPUuA|1^uH6e+T?K@K*PpeBHV2j+KPs3Y|BP)-TmN+0oeSS1Mp#s6w*f(EXNsw@k&zk_H#r_C z!PH%nSK@LgG&|)%PDP>^Bs&X|eUKn*XSwhsYn1varnmIg#s`nb2j$b2-lc?Ebj$zA z;+2hS=HCIycFIpyHWCb(fU2{i12FUoROkQwsHs=*7W#6c3N@wJA&S{jAm!^o>rw?F zC{q*0^oi(D<<4;Rs@B$3lVZ#E&hDMfLy6tdUbgL6!^Un$)V``bK0F*xY>UOVC3-I? zs&K4sEFZ(VB7Z`(V@!p>UBqz1LPO#cto_*A$DsEr<)!l|*FM>@9dKfHV9$l;mx{{D8n%$tV-HG>@w*R>qlQMBXG zp&jz$I}Wi!gB?XQ0sJAn(CEkOd<|lRyS2qG<9p$5Gy>mgEE)^=&@mGrS8DcW z!h6Co;%8+Pk?m#@@^dI`35@(0xHy>GQ3Q#=Lde%CotvlpNvKmz{!VmS=c`o4%9gJZ z-xx+8=Ww7dO*}b~MK&KK#6p3b-quh{)+A?iS*sd1@BA=o+?Ch%#|Ps5;SzS;*kAqS z>_a;Srq4&7!zULGv*%etLSUyL%+CuM4+-MK^YafjMll^6ziHuO_8ZoQ;~;;^ah87k z1|0t}zh1ZE@vCwF=lJ#d6^~zs>mT9A4J#hMmXD8~Z(Q;C6*&F^zuu%BUo!q1aew9c z8QSqBSL!u`!S{ui3R^zi&&QuDtW*FVeWXVI=-a{o`F7v%Ho2MYY;k16nz zKbE@wCLqOc*y9TPl;fx{vv~Xl9RD%D9`IY?_|>@obNqV1Z-wL6;rd7Talmhd z(enYn6^>tl<1g^*0YBxqm_EK6aew9cfZqz&Uy18~#>Wr%DaWPs>#xT3&+_Ad-wOBt zBy+Ln#a|W4RIcRGyb{#&uWXx}WiJnw4YH;&oT! zx@Y+@%hG#-)_;;+#GaRW5K&V|nVp(aHkM{8UZ;eZrWb!Qyl;==!O6)%dX?ALm*d4Q z+A?_A;O5QvvnA17d09nsbH!zq%?d5M2^~y+BXvNNTB>U$({!!1q=;&|mL(sxlv29Z zO((8BwCx}}+QoXu2M6TKx_}D84Y=ozF|UHN>sn)EKv8sxwY-8161?0#=vtNn+sv{MlaeG0m@^(?pN;w}2zx{bk5PrWs(gSrL){_?+Q=Cas~DI> z0ikeRUAX+?`P1 zNv>A`^H$Bx50!Ej4I@+ zTl~evfdJa3KUePYl+%mmC1Rf)WzS+>If|xo7F|jqYiq?33gs@ybCftsa7B*aZ?xng z$5^cwsAwx>TS;H%KOWVYgTsDi3f9+@BL$ot{ejIj+R?jyeXl3(`^rn& zQiHGD#$^JMd0ZM#Um_EnfK2fs=lRg=R*;D<$ML85aX3>~IDQ-FnIse7{wwgz6X2OI za-N9$ufP*8$ML85aom4}yHa2W`*D4f7Pc#-pm zAW6{6bTo`hP4VNp8tFWOej=r)>4mjLg-r046$XofDLoA|nj~n75K)7Av_cvyl8w5- zi4CiJH|Y9wwf<-w%U$2KZep;!t}YU(1G`+`bK}r>U#!sAP?=mk+SRkZQ$s8T-!I4b zpHj!aIx)CZN7Ho7MO_U57AG`4O-vs?RrJ?bj5_?3npR7ug>-kYrYu9n3HEH%_33N; z6}7qJG;+*l7$c8h2JE8VhCEM0#rW!xMEBTO_sxSFep4L^*1%0%L-N+5ER4MD6=dN> zSr5k*yj&vdUCC^abx3|H6mC`|>4lrQB)mx9NcWCW?DwMHhbUp_MbuFegm8iUeWE7NMNECG?rcjTCg97R4~QBL7&0T8JS zx7&obAl4r6y9#vS8Lo?zYII=rC(lhq$Re;?y;!A*CsRBF5x(e)=a20Us z8SteNA(>c{yP{5sB3&pEJCo8a7x4;uCGd)B+jFhbrgHKUR{ zQB@iBmQmysF_s)OTDNB*G4COR&BP*B>Ci=qBVxO3k+MFSt?Ln>|%@s4(n+*82e9k2f9x9iI zx`7{L&K@p8q9!Ih=V^1Cein0NS3GdE@5+Pm^m(~hcs|&leBcq=#LsB`(D+wf_X1#Q zMEE&h!7N3#4j>B3BC2-kZbi<%0P{f=W6Lq>a84=Q$ZSOs*NsSgMXoEc9gEp$*$Cyr zWHg)h2o{TRn>90AGFptu!bDF>SpVPOWg<~tT3QH>Q5q?Yl!rq>zt2-vSW*bMQ5x-{ zjBf+~AXIUH_$-t2>s2{l0z#*Q@V3_ec%ZZdGEvFeJAN@<+1&peNB0ycPqbF&mz3n^ zm$Y=&#kvj6k?L0YJlYJ4Fa=F{Kl_ZTCyJy$6Ak+0!fUWc+z;6U-{pO(Jz}3?kH8-L zG`pJpNLt19N|nIqFW+uevyY#JuH&K)Lp`jYpd3+TSc#M zWn~yIcJ*lgjeVn|eK+=xc2?&GNBhdxRy1s=d$OjtwoPC=hmhLuVE3M}eU?B`hf^I_ZWF>4n(-{*y@GeGYK@6~^^Z z#Me*^F6;ti;O7>9gq|Sk0Iq6L>=Z|`GNGlWMTnBoRAHQonkFq7czGmJp7vsQguUJ{ zz2r&l6GkKo&tfi@;n|eas8$_vrw@Rf)2gq$5TQ9DK8wMaUU9)M)=Tm6!6?2X)_qFjUv%jc>e{#kuDm*n@; zECdG%8D_ z!iGtido!C0yxxM6;!5f!9+|;8UKp8qbRIHA=@19u$*Wo)5GL4pz(` zRNyTw?#&#_WM88P`3myA^S9D-`P@E+xxJ3LQ60JSh9As=x*SB*7vvaJa0VKq6Ag8s z(UOA@^^eR6y}p|YGKSO>4aeU5OcVt~eu7Y3;PU2r@FZuh2Ytn%c*H0KgD4OfxZ)#1 zP3NTmd#)}qJlu8ZrTsH4HRH|gi;%mQ3OkQCZtHH@+$2pcf#E^a4Sboy&?_8L=LFFm z>dysO8dT!f? zjj89p7c;(S5~F7s3T`z(SCcgTd!Yl(C5W+_80BT=_qnm zWp?#-WqLF5|4i*UISo#o%@`gH8w#=uVvb8Mb;R(&fFF!DowLz?PVH8Eyr7^hhsOHs z!u9O?kg+Yqjew5ehscLVwGyNOp~3(H5vam|9@&fNR8IP@RuaVsDU#w)DLsZ>&;IrH z+i$<=fb`|0{7_Q9A&Gn6gnM7j?~UCLDM^ua(0>y2k*awJka-l6z=ToC!LjpPX+5x- z;uz`0u72w#-1n~slI+|h8>PbUqHrnh`!BdJ)xh^AO2ME|0ZwUBaTu<5A+5|kQ4`9n zqW>PhpFCpP^$U_Y63{S1PSg>`X0r8sI`n;sBppaI2&F~nRqVr+xtEyONiUAvnHjQn7Ui{ZZ=e> zcI&f$-MO>F+*7CQ*o_B_dtXQqJy9USNA=ICa{@9EkY_4cQEng5-IJXmvP`oGhAp7x zj850Q#+D^oEG-sTttpcP*YF}1uDfzQ}u|Lo?dR)Wq zmp?njb|@FoSOqiUA?zRD=aisO`Xq3nn#yh3rZjdbh2yItF z%CKEgCmG`g&7Hw$^}++W>5%tf}RT0#{$JA&QC)G<4BD;HAZ#N2H#X= zbNYN z4MriH2+#}^-at9+*ay6M2Qu1mK&kRZQB)d7AZ|dsVD4>o?iw#p?u8qH3t+a;bVvu_ z_Y#)hOJxIK0HFU;W)f7J^K#GtT6fTtKK@;WE57&BD1`&~Lv&p)lq3qta6;4@zo$qA z0GlHjV2t724*qid_}ua1Y#;lOe1m)g&btXG|KNjM@8Q?8;w!Jb=gKQnH{fHK#XX3J z=mpedM*#p(ISQ@>1rdb9IW`fcT0A}~f53L(;d95?x$Io|(>REe$T$A|4|HuCo_o)g z>DOv&rWgDP4@^i*yaIRAG%XqdEf_D9q{A4L^}=fL#kyO0{*rspfR1D7Mb50nDSpr8 z_aOd1N%xq$TV3xfu|{uTe+Pvv!w+UdIxa&DDaC`NNyn*s0vE(lG=or2VaG5IRf1l6 z&O{;$hk`<|!V`sagqz?~fu}swg>PNbPSazlT;E#X-#6xUUex68id}i-)WHl-;JC+G zQd;B}?8DrC_S( z!V9Yf)=FCxq+NCoS_U8ju!4}E!&DHL!W6h)Z@=mGNg)0fj`z6cLN50ZOxG(gg}D`0 z1K|SD4y3gc6~VSt>KMVcOdu^&&VX2cmQyCa8TC~7Yl zEaq>x*q0`K#ib=q&+&jKhIwJXCLIU#0zYWG1(JobT{L-w8YW%C63h!( z1hS2K9q10XV+cv+MOVrXcpo%e;`hPx1zfl3gIs6F^Km9Uex>Kf7w!;?7XFBNd_dXC zjr+yfZ*~q30}Yw*D(oCr2%m<$^N-nVP;bmlwrw>6jodY)$QWO3&M+6{@5;^3wp5X^5#m?sZ9en(=3)@6Jo)?tPLBVH(bk0XH4B*Ht`x5&v&_65WT2L|2Z&;2L z`My~gvDpN{R%$DSxJ?fx2_ISX6y`>8h$MzUR9*U={a4yZ4ySzr7gphR3!nNWkWTtb3S?tvu(jUc9$V?A0^#h0D3mE$)eC&!3Krwk?*f^@e zY58#3CGRmL;MuFV=N0gu(6a?`P?6Wf!IbX0_)JFvz)|Zo2_tTsh>%>y>jMESsKY=& zVwdc!v}EV!?#eGRXRt5r$ZvKQH#;3I#nuP}Y7PFxKMDSjvK9D4{$-ek+wHdLV1ihF zSL5=hyqWftyVE`|d*a0_JikN;i}j)j6xBkteRxg`b|N+TrM;Pk57?ea!4eD>1LQfP zz^Ls5^HB(ji`&EhvS%KDY|oQV%J)6~*xo0f48Qf(fB%_Ye4YV3r}h8kIk8Z^+vwqc zS8HaqZ{U)XeL?IMUjjZy7P`eAdWX-U2Y4M3p2zn>j@LaJ zUh@wk5S%{Hez=a^kN7jvnfF0VGD!RODr0*Gzfa+J?)xH@OtJJ)rCt1{_`Vp-dW@NN z8*y%h{34Esazl#t8ihzAwBi!4pwkm2MxKSMlHEDChuujek%*#n`qi}iSt!mHnR*;+ z=p8#lZKDaqIa^~qEP!_RdOX3(9(mWs9+^_ewelE2d}qzVA@;UZ2Cr^XxcuwT9-(|F zWg+|)h3TW?im$>+Oc{dJ3}sa*CR`=xiEJydSt$q8bRZ?@DP0Z1VKFZCdCKC0Wzt&|+4LLq>( zUNc(a^LdYA45x>5-@q8Y4G2H+sG~ryFLKdm-<#@i{={MJF4E~s^Z92QABO{b8*6H& zJPBYssYmHUqgrHX8YU&RDS0}95C#MKZgjiZRZq>gi9h)9?4wn6-}Wse7v7Au|4Es< zdhZ;XyDihS!rZa8>2tRrOxKcQ$w2{Io1O06eqjl@vI(9MM&zK{~lHi`u5L(`tN)c zeS0O)KEE&|j0)F&b7V~+X@x2J2ODH2s-n<{vzXp$$R-#0E~0!Aio;1#LI;OI6rU)| z48|JE(hHzUP2f71Y}89JStRtLclSVdSE94EIo4Q%sD{8$aA>J5hrHErO{VN3XSL

k`rao1i6vydQ%xjP$IoB8UQi}!T|(cEJa|d@CP^E zS#UGW7)i!~_@-StvlQ$)aG)zFnRUB19XwcFCz_?ky4ohmEY?*YJT(WT}!POF%e)sh7v zRH+EyDZ`D_N?J+@oRss!#ho7>&GBR>9&?5R1aqqAP7wK9FmV2ree?`JNVa?p8|x=$ zi2OL&Eaj)uJR(0jb&BZfi-={YLX1U7DxZIs!@T@K{62RAzZWRKpZ*4Zr{iBzj^9DY z&&TmT^k@p{iWa(+{NMStQ9iC8FZ@mTwetIE(rD;7-Ph++G$2e&8e3Oj$@dHQyUQ_CX;bGJ0nXn8d0UjY)*Yap%!HzUFv;I$1t^JzWxt* zqeS}$yocGGF`W(K-K~r(3l(EJjU%XN73l1!t?_vUp}(hNxO1qvv8KH?9tnA?eN|ep zfE9vpfW-af!2x24DAj3r?O?6a)N;W1@+?ef#?{&#_lt=#s65j zzw=^6Qul+(3gSjom(%Hu8{sm6NTJv5%D^InpiD!o?4oF+pddor0PR9GOFGwpZW8LL zq-iN9Qkagfs0h8j5JjXkm`8t-LVIDRH4{}`ln8)KkZ6@H@x%h+Rm;E2clj$S{CK?~ z2Irnx{LD^71N1ErHKSSM(-i@KH0lpjz%q#`Vn1AlJ#;7bP*7KRhrnn*+=HD2dZ_G} z)Hz3#eMUzym!gG3xZI@eFWlz`u;bP8{aT^!;|jiyAHi<@t@=Cd-;h+n_pec^;QN}! z@B{e1+c^EGntu)FfY&`q`+HA{R#%T_g_!)Jm>{#)7*+)nABYb#ioxV z3JR4xpfK%0u0EiQvcNND;BiX^*#sPj)6)J~Kze7wM5R^;U;KIj z)1{i`)d_kOmP1GnTyO%c6NptZW|=IK4z@N#W@t1Kv`?iy8Q4TEAXrAUIt0;M;c8|w z8&N@e#cM&U%1ZO|T?l3h`AaLxqWLBH2tsh>xxj?qmsSO^#q^C(eq9jm(@2y2xuwLY z2tnufgfhhN+?!{kIe$nd-|{>1lZ#Ol1j{=RuahZd0)`DLEE@pJlc>be09bN)Xv;>afg~6F{*3C|#XZ1ZA4D8jJ3y=O*9ZB<()>?U-$w`%e64^i ziIQT`G!%l~J7~!ejn*tg@1c7lBpFncAnB1d3<>OHdqo&ITH94sB3_rekDv*M`VZxM zfT-}BdyEvMf!C4%4iD)3qF>(A*wEk)<6BmDg9L1r|Oied%#?G>z! z9HaFD1nGghX3ru(#gyw5jSiD>4+uhz!I3lLvI7Y4h@;Wxj9^3k2Ai`SCPURIEo%qzgk@O9yFUW;;crjTXI%$gz0 za}dyhdGJf8Fb@VGX3e(lSb~Arzr3=R=e^}eQDeoZ+C3rRv+`vtL0|x~_5983 zkbJ)~PnJlVCTk)Mf?b9p%%F4gKLIr-e@med5~ARi_bJwv7zIPwVOPio{}HS%mW{~} z!U;JryJO2pESKe2SPt5%P;``2jgBfzG@o&$16SJAcq&{yBRJ?%$MQ=j5>=HIh^!Lo zYb#=vG1M9bIu(VALo0F@H#V(j*;Y-DwMv&M_8&geCq-6*lI5*s|iy z>bGTaS@&yF$nB@(?`T2@hb4H%)qthMwXIs=0Y%uYAyvz6hNT*u)MgPS5GbdPIV703 zsfr;C3JyosRBn#Ts^i*LVWQ26aCXXWI<~^Kq62(bz0$=MG`c~~G@zQ(odY4PDc~oQ ze?_^!HUI(FQ>H7`Em7K*?o5nVvb$lnk0EAU{~j=<_%*;47EF?E;Uo0@c+=kV=6-V) zXi`X<=qo7H>%)jT&PM}ICGPka%i!raB_okf3q|I8?KEVe*MtV48IfMuiliDRyaJku zXyb&O4v0gRj9Evv$m~|LB%qwqjF6eBn*v-2ABEgp+f<&*oujkaT5Ouyk$B&GDALpiq1hYdR)80zjq zuyiVHQEn(LD)f2_3(LULKx6&`vMu$Uj6xf&2aVa6*khrlG!hEnXCi+a3tEtuo26q; z6vIb}WD;~uu=Qdci(C%7&T4J3LguB^Dh)We7ZC`Jnl8a^4O;f%mB6)vSwdy|JU-J6 z94C4q=P$wPw^pFD%5MaoC*ShE#hmz{0Vj>#;v*tC=^tQWIE~N?4vRL<-v`j|X;io_ zaSciX0U`z|6!3XUZE$`8CP6?U7{&h7~6_IezWn#1tvhf6LFbR$m-?M?|V3cqd=AoOHY+o7}z zN%X-6+^F1uIV{YflK9lsi=vN}SX8!)S#z?jGn(i_+gHfR#icpRF9jn&@3v$+VnF%d$v&j;5go((GCIGwP@Ju zMq6MNA}ah`>(VfJRa&bM-<{itvF~I}TDUw-;ZMWt2$5O%Fb^)=fgFb(&T%FZ8>(0q z8xHtI!_YrA1L8NhN43(ja!IuR`_4cK>Q2)h`IP1kpJhtAgWanKuiTQ@+E8~+=exZt z%r0{0j(fM?dB8nx9X~pH@9Im|+tm3&fBp;fMi@iP_*m*(8+i`s+=oQvo&2z{TfKq%TBz<0bOqr!jD$Kp1#pslx(C)j^6a{ zuj2Y0?|yX2bL3n+=Vi>tCioI%R*MnLRDwsCA|lcPoNa=QXPaaAMkJ1=jJ*skR(DKw ziJdU4am%eIM=qA%#Z0~;|7qthCU4F_F=I={f6Nb)?FqgYt}_Ou_OFwzqn&%dMA)8` zF_0}5eQQx42#+S;)_Vaq6QLH0AvFbH>JXa_U=Ok|<{#le{>8jGF4fIFxOe{F@SUe} zsIXRiM{^F0;WG-poPLVq0>>NJ)7n1)P{_M+{5BjnQ9hRe#y%B7h!#=OMR?^;9pd9K z0_J1L$&+^@`-7hLsykPHm4cbqOXl9*xxbxpKbRtLKipIljsuCr!x#YW=d{!PjJTgW zhCeaNC-J*;nSYy-i}JVLUdhaZdD)y7`}+zWbJC?ydMg5k5N;w!J3xJ!$!JYwO&Ma= zd5}EbQc?2DqfJ03;brr<=DgzZN%8p3VaYi6&M?LVyX`Y8!g|hWoXcLX$!WC%Cup)gPR{zYj5nC)~c)`u)Zu1CAb;IhfjJhb_>2a0W95$rF zD+qhW406(DKrv!83;w>uJ~>yzXY%@m?Df-+GJ1RW+h@#&&uGb<81mb$MSe{+ssRIc z5k-N3k!AbaAQ&8!z@V2JQMG}wi{|EbLo6vd$UgHCv?r{TLFz(ZH-q)pn1wd%bYBDAmr(^{{LkOmhvhe!JtqH-l?}8a8@2N-ISmgtM#w?!kunG(G8bv!bA{lH3F+KpoM!aE5Q@nr#wv*mR z6)ho==mS@@$1VXPvkyGLM$xSNK&3QR38M7Tx%L3xc-XI5&j zL&f0G?LZK!D#8%-N{ex~B6|tfS+fv^=x)S-k@83{MW;_`_C6QlkrYp)UHkC04IAS9 z@!r*~4Q;*StKWf8v$S<^@Ss4NFH6_`+3;DGZ-L`OTK(=bJW;p2ZeqXF?{Nk{Pi zxSjcwz@%?fbJ_U#DWaTu3RCQ~(Ip{zni3S4eSGK6@%Z>|X;NyatZcyB?(y5}D=O-* zx!ip2#7z_DnlJyjapzc7vq9c#Xs#ODY5X`_-_T`dH<}S{!*L@joG(_17Xx|`VQ-?0 zsvaRdrZ6{?`o9*Tk&+H$UG0Q@Xb2!59DdLP1Gq_m`ae1M6Xs9_5_xa-IZ!9hz?^s{knW)7%MWr~S zuD!G+Z#=QOrDe4*9t_5P9QRgXjcn3xtPpj?Lmi}Wfx`x!rY=;NfvHBlQRCK}6LnEAAc#!w@rFE?)d>R?# z@Sp~(RVg1R9AhY3!!l;k4Gyxxgka8Q7PDoC5m76GQtO?9;;L7?0B%aN3F)EgHDI;M z6^H^zgrd=sVkShZqOd*(e6-SvrlQzLk>rTd_*S?r$dOOZGjy7)5254@-=v_oK58Aj zw4#X-?2KiOZJS!xF@kz3hYn3{-8#vPBW2AU9nCH6?KiW#>ke!!pE}Udcxilie0*3I zXPeqb`a4QG`g;>4iQb=*N1F)_Wc!+72aO8b66c^!k)_0&2Wc1wthh8EiYBI% zCQ-X}wPi)ciZDDuTh6#EBgnoQ_h-6K@_*lM@xsGJsaXUBHz;rjV_jeLTMx*g-6M&A>s{!$ZN61 z>Xj~a$lz0uA;o|WP(=T)yQiC)rn`^-;Sa}K zdU{%p-<}*#vZ4Ad9qs4Tk0)yh?uAKwhZRW#6&T~Tu<3j?RvNu(%r6g(~2hn8%Vj+g}>U{b= z!`UUyL)&*8WK-R-)l-X%dw8s zKOP;2uxUj}pFU1KdU8^z9TrlY1r_B)34Q0h&SI~VSJq%$CQG3h65KiCcll`Csrp`O zvS*CxCkHl6_M%ZlG<3n>+NrV0jk_mD5*%uLTGUta@ zuRoA^|5q&gH?{YzYOUzXEOpNGkLhXa#?Gutj&+l&=CP$N){3E{p}*a037UWGu1B0z{wTbqxfUXW0W z^L+W}1D5H|ax2kg87T2Zwbm34<}`THKBw2N+KG4q4_@p;>WBZ(et6JZT;fBIORx4W z_iLZ{I(%;7$H+xH2WVT3{M(8^7SEYQbd4(ZQuzfpYnT(>J2GLY!2=F>s| zzNewQxw^W!ydl}znoRo~j>ck9dc`U&Ih99;ox?{fb1aqFrKQ=+e_(Yz=ZC}R_c)a| zj1B6cPzPD+c0@=+`4G(Cgi8qoRjP}kGY9k(x810Zg;)i4@Xt@bEdTDMm+Hh>(nk?1 z;5f;yc;W|7eqYgxgtwpb759JkJ+Jp&erCN0=R6W~9>c7RSNj1?xr%87bJZIK86=vhxikutz$rT8Nk|B=9btD8dQo$lt+dDSa+dDStDO7q|O^%tzdRaF8 z8m^ZGIfFJAJFRTVF_#CGNKH;Q74O&!c0MpW0r~v{u;kB9(Oh{xv`A1U* z;`cI486XR78d=~MuS^!scJ)M}q^yi6M47M5=k+YQEjXRXdLKGLQqfsx1yUQIVK1La zFTT2Z^)FX*b8Q$jy#~C;Le++%@^aWY?)N zDL(fky#Qe*Ai|tYNOOSniZyaz-*Mmu3zPDT`tZAmaHDIG_b$f82!ipDL+rF=TCfX; zaO5!hA0ok;3cJwagFKXoZgkNTAQiU9*#uvv=((@W3ysf8eFbDjZ z0Bp`a2Li#uB(I_hTL{wLsP-x-ZW+J+Qe6Kp8f$*E=nDVCx{<$OrHgvCE6 zCr1ynODu*ECAiojrW-H)*krsPuWNqBF8$AKKa)THpWARQ=5vj3FP8QVTxJ!t`aNK} zC_0nMjQ|cKp^gHH6%(RD-VNAJY8Zo3l^ocE`iV;2o*%LVTdx)BxtGTT<5@nTA954b zi!7%c6F>x2cBV}QRMc|KG}hJrS^b&c#wP(biy6n1AJ97F&{QEs`r+?fOOo{6eR znlT3Gf?OGFs)tOkN+=#zNYxM_PN~14>P_CzhvM-M4Y6YR_rsHu!>su2=0u|T?Kh~8 z_#6H4{i}8k?u+-Ivu5X-bNX*@ZwfcH_ZPZL+=cyugsg#lal80&z=?QbSE2*fK#Yx7 zIzrzpP_O?zXQX0F8kbD}++G$6m6Zj9KULqKSKrzH36*F9xBU8A~Xjon)48yTn1F$vWfEWasgzP(J|ZEIorW% z<>y0*0PLncfkcSa_P6ZlIMK1AC5azPk|p?!Wc4o!-#~AZ-vMeLY%IA>$nx2|qLG`S zbljq{uP!AC$W)lh#R{4_JDa}ng;M_?{@^eD!Z$jbx|=#H{iXJZz0?mCK@$FeBKima zKd#vlbWd9|wOS$H2CPzDq_So2@40BGhk}Ls4U;kIv(Y(tMeG-{Jq*3vu$OK|$CoEz zCnP#V_E?CU(4m*)G%5RbdBV9xNeL%ne>1C;e~t+5k2E*m)7(t-KoZ8m&m?gbzpq6| zBoO%vO;x$G5zK69B|V6)sHAtc>~kW{cnm#?UgM}rHm1DT9A_MycTm6KgV5(ZyhcNB zq6@?gb~Ew~8(_Od6%yp2ksgYkSX95yFeMmthEbah@w6zNQH&H{SI%PfGNK72cBWS^ zW7u63Yem`u(SyHk*+1D{6t?SF+*0xpP8z|LAG87tWrXXagyWSovm1f2AJFPgN_#~0bwd)3eEGa5ZTm`r|4 z`;5UcWbF&c5hmVCbq|qKMwTex2zEXYg7aXUcNPu|UymIjtn{B9h62iMLz~CD$CxM=Py66(N0`G?KfQODkX zUsT$(Ubv@#@EqcEhz!G>@O z=~&QLmq}HqFHRLMrR^Zd62!!EI+Ii@e(F*gYU#O<6SK0i!dc;fkD{f4N$}qw@i^sW zMoJM=bSt#5Q>8>GS0ZOC1Ng0yY47B-bg1+3`eCS!e+JN7coBybi7?f?I#2|T} zvuz-+EH6K|DD^?1*IySK*stNqh$h0=$50qa{smhBR3`8S6F2|?8@SW&x8r3q8A^~G zt#S>hzN!nNk&__UvY__T06`}o>KPvDXY(f9x;=W$#*c}Lz4FJ5^}cW{ z7WN@d;HVtPD=p2#i#2-6W8w0qa?fi19lsIG7vRr&9de~v2qt`dZhTfs9|y2?UT>cQ zBN0Gq)&V8RDhnyiNu1~5P1BQ8R3cA$axT7s+lMPvIW?E0C`48(H2_2nVq}j>D-a5Z zp{%CU<0m=IVTUZLMAV~iBObx^Rr^AAGgQEB{q~3F@oGBmbSW*AEB(CjS>{uz&Wy z#Z^}h#4!2$wT7WO33A|NKH&Hp9uP2l4y%l+~5 zp4lgpWwuQAWHMQsq-nEFo21R8OS+`AX-k(BAzf0sP)b__Dq1N!3dkZB1%%!!D)wFx zrQ%gUyr2>gh0EoFEPpRty^0%`tDyc$bNc^&-}juEGigd&^xn^ZDI_zQIp;mk`@GNl zywCpNJ!zH(9C|fpr4wJdHvPwb2fVUhH>DOtDd7x3P8|gdWY|&Xz>6-6Ttn%g zp%nilzYEI_RgnJR<)PhlKs@uE#~xez*kj+(>jvH!dg6(pHze)$%q=l_CG}4^TD{^9}hk+7LVVTdEdYCKmbQoBu>aNni>0rxz9}c-bOr+lR@(o-b0XlEOHF*Mn$Q*9o6H78gEu zEc8Iz^2Ke7m$z-*)U|2r^LzI;?A;5&;jP8XmoL^s<8N))vSq`CAF2BY{^!1@j@AYp z?QSVYHfgYd17mQvz>;M3MbA1?q5go&$E$*nB`i74a18so;UB}#p-uaRaFsw+R|U*!nX9c zxaJx8J+1+~a2x5&sq|=w4P7- zh`TM6vq%5p;NbW_$cU*_RbN3tUzPDaz>vX9nCCTlu_b--kkdC1F+AjuiVN!EsoE}2 zIZ!>2WQzU4ri(7)sqD`H?rk`evZbP8k}jiY zCL`S@HSjw55d9TH=fG6g_#n<<0P$-fM*!C9AEx{67l=RlQmb$qulMxzEJ1?trQzwda7*+oh_{CS z3jUwoYJ!pU|xve@@jw& zk2NtF3^t&X5%3w4*tG0fX2lLiJCH{N(r*!_SbuKAhc0bdxv6{0{L7L9$sM2kuwne7 zSu8Z}XlU*0{_uvmi+1i@acS;_tDEO+>^g8@h4K9r7q8fCK|UxW8ebL7dTXUU=>zAV75MD_nOzP_k)mbN{9; zAY`X_W?8~`O(Ntt9>;1<44;G76uwjFkxu7{d0c+pL>_1N=#s~MKf~e9dN9r7zE?Fn z7@S=tQbqu4LfZ>Wb&xr!XBTLwQ;l;JoK8xe8UCs&xkA<~$StT~;3Opv@>eN(u*AF) zCYSt136p!p{S+LH3q*L24>>blp|&)&stz z@CIC<2S0YkGKy+A>*1$#?}6DC2Ps=W1-!mJs88Va2Xgno?VW=Pc92jUsNU-W)Gp6< z%q!s40^2lit{;&?h~3zT_#Z!X^p)um;UL}5Aziu$F(8<`FR)(@ihK5-)~LgXA7hwJ z->jaQGdkK@r`9Dxi7Q{nrZR8)qPw1IjuXvzP#H@rb<3m8-vyP zs~(^9wfa08!j0wfZBcFL9Z~H{LbP&#uYDhUEr2+>YD8Dun(`N5S5}$3lB+OX?JzEN zdRO{{?gvA|ae)2^C?JY*5D*YY0$xObx-+{HKIinVeE(a9Q!%6?)Yia(B;z5mEg6H7 zOOu1i?yW)#5NDMWmjk7p59mg((B;1%+GJ_>zF;%x3%wrseMyLcXJ|n%@=xC zHuTjF3?0IM`c=0UpEp3$@fBBytqt>ocMTna4H+wG!$~=z_r(;&IH%i>x9>*qd&dwM3oY- zkE;VYh(19`8TO9ff0c&aMLz|3w$GrGt8-uc#ZmCaA2^Z`9idfpcVD` z=iF0k%=bV35#Hn3y0+@rcK|SJ^A>4|R8?Upm=BX5vp^u&V2Lajm$*0@W0Cn}C#t}9 z;xur?q8@+%kDJo#R$bda_8+VJMh+Z1qc8QZGnzI@&ey+Y&Lf-F?f#4L`@zx6{{5fc zD%&@mMSAkgXS23L0Dg%o?fg`zq6Dpcav6w+r{{v%n&)7pBo(kKhjTZGi=obV(Gcnk zl^?OrrI3+GOj47b?1JGGpC?0)qQzj+rSfb;_z`B}0&Y1IB^`y+v)PpT!Vg;hAOfkr zMLWK?L7$}6gq(^~P}0RjYkrUXBvkV4nn25J}1u6+i)`28x6pdVi7cFNb5A_4I9Lhx8U+s$L zoZhXF!K5q@$O&9?s?UR5MD9Il`5MW+m8^+~E!$3`Y?Mf@`qQ=6&>@?w9{KTv%T-D3@qJl+GQ!@V7shy=Lis z=dHWcI3_L)Z>^OTq7)1hX%8+hxZil({}0h#aWqYP^_{hunOL-E&1co7rC%3S&3%<~ zMi+hc$@wPjOqvf#CRdw{DiL^wXNJ7v{B(7^dEJh)TpMU*_j~PF27K@C}LG&!x z`{CcMxLCZNmcVzS?s=p!a1OS8-E8 zYey#sz$gPl8+`7v;}0RG`5`ji5mEZW-nj!SAQZ1n^`-9k)&-)@c-H4jb+0?WXYQij z??!emrJiv3F!coSO>y&i#iENsF?EFRLq{NwtkmF_LtwLxKIH;%%6J0+Lsx)gAUIZ_ z@ypXi)qT*Iey9MYU>^(;P{&76!EFZNMrty}zdCcmt^o-?Fgazhp>pkX(6<%f5TRd%Fvsr%J=KK|R$Rsh2Yo1e} zuP`H{r8)pRqUO5>COa5`aYn(y37#OJXyTQzAgaPyR=qWBPNgP@(e#vKR{Wv3OCw4#Rm+NGA`DHow`t3eE3AgQD z=sTwE*D~@?H0Af(t@b89m7Zs6c^N+^2Dhwe$7y*JT#|IB+v*k4doaP*NF9%Bm;J1a zALD(VHNk0NX_Q9BJ;BG>=ViPpgM7FT={M;H6|Yu#BV|yaX%eI>+TrLq16Ehfv!00s zGf{#vRVH~!=9;Xphf@VW7!F~R7c=z$oY=M{+oJ=f6Tox<3}8jY^9i z{ML?LpamH@Im(P`G`To-0YfN32cz1z#XI79=&J)t-ibl!#~gO!yDXPoX$l+#R>o^4 zeleWN0g%d@#H=KG(xc)Y;|JpAZ(lL=JT4#5j_4urB=+@I_K7p=e}cnXF~XLm+;SwH zo(G#O%Zddi%VMWF)BuC7dwe|bWbu8+j*siZh=6-YoGI%#pqiZQZ&yaknJJayNLM0K zKnuW)hKbAG%68-K(1T}wefchLuEUw`kHn^Han zUXNTP2qAtchyHtLFA@W>_Sw+pW%Ms{#S(dXeH#M)ly@9jS)49?hJohkXg~j@o`p+h zom=B@mABXQEF7GTx6X>Tvhtd!UsM)0S0ekWm~mHSweo|5i)RhaTD+;SrAobtPOa*V zRh7BV>}aeWWVbr}Qh!U|ga+RP^FXS#W>#;=Mdb$6%_&DQd1nkRFBkL0aQxHx4;MQo zjV6=O+K_VU!nukQYy*rW`tq6tGRT^1nyV_9AW|Qyr;DeZYN&Knn6@&cTF}>{Y=)R0 z63CSAqTW#$8EWr=FJjr;z6ED?&VsXI%940@PEFO(sa<`Wx?jUjeSCb{B~$h-hA*S~ zoR3fW_!4+5!l5-{Yx|l?u{YMc)%a=ew*JoHO5@rR0No3}OBsB60p|Fgm`13<+3BO# zZum!h2r_N5ZT?x~;zR)Lk&$Hb)Iobi(uGSo42EY0nzTFq%WiDrxY>3#yPg04y}kr1 ze=9^gA=UuML5!bNP(eGk9&{ls7_W`fBNA0fTU76*^Is)v$y6(}20i7107~#v*U*_iFznufRcVOMvVMp(Z6)MJ8 zj+?}|tZS0P7(t}1VE;378RDis$O|wm!kNIH-(Jem|? z@jLO6!z;u^;-VERjO&f-Wz4qFn3J_g+8xlZfzC<97~mr&JE35i&d3%g z+*mNF@F_TcA`!Sd;Pr_+C}f}#Vmq1^g3?6bvJ1Yp$?HbyvB!7t%ooIqL&is|+jDX{ z;`&S#JGBlTc>~WXg{=koyfBs{!-~!`oezcJ??lx;1i&~D_X6tz<9yH&f!s|sybi&I zORi=`uS>307(?FORK31^T7`p&4cRG=qIu)44Qpl(di3c_*G;*$DV1v4wXu8lte)=K zv;7y24sG0(Y%A{CxMFs=v}@^>zOm5@hX(qG=FG>h{sGFgXQOxWdx-dQ>-#Z(UAq%& z!1}C||Ef>YqZZ1tEZ_i7qS&;~_?dD`BHRnJ{UEX2$Btd6H_14if)t(k+9H6Y0=d~~ zjgI5OnBH{uHH+5m-mo{e^WX;kt?|%Be;-rN!@Ua;`BIn)gI=}8U>_Rwdc?x$I3^Hz z1C|kmDJytv(KTmp*o`Qgw^-F>ZS3za8V?Z{Cd|6qiQRxPTTu6u@#uaH@NnB@;E8p@ zP)2~Q*uOeK%j($=5Zos8y-SrP{R1`5*x6I#EdiY zkgn(0kn7HII2<#XVBImv<+_e6HQob}aK;%qpu?H+M)!tXRRm)=)zmsQUKI|p=Xh7g z)SlL!hPtYjcuPr9s4`rcr&__I{D8=10xQBVlbz^1iWn^rrvr5caQLWmR&~VV=`6pW zNWAXC&!q;17);^!;4|V6i;cWFOaa1=n1j!j;ETZ&{;Dibh=jO#(d_=&i{vk37h?*= z3pJJfl{NC0QJ?vCe!}`Vp}CK}2VCw+<8r3908;X|9!gF@0e;&3rqa@0Ae`(v0jxq) z%|(8*Cuh42ui-$*;rF8jNDwVCOw`Vt^qy?w=1b(NyWO~3mqkW~Q^`dOd%7(Q4=r7| zYSF4WsqO_m3y@BUc)Y5a@tMctI-+o0KMAhs84qaih z{@RyJ3DKWS_KVba#6xq9#eF4}qN1dvvhq)DJ)&oN-BjJtTHDs$-G+D0*2-9^D2v6A zo&9k7o%pBOo&BA&k5Q9m3mFGiD^^o6bb#46fY_ zgeIonao?!e=*{5wvhoC2Cp3E0b-)>cuc^sHJA|%({NWR~sS3h#(@l$Sy6MxYTW?LF zD=Dr%D5j$x^&*VRp57<63gF`OiI#)jlJ-HJqoYHkqhk8Dfo=F7S7O|xmW15ARtss! ztyZia7Hx3({Vaumh$p<2p)uM9UQR=NNDGC-LDVZjjeB_0J0Ywk+aZ)9K}Fo}-SmZR z+rD5+MM=)zEb~>CTsYt5S$HY3zVJ-eEdMtQRH&hUcGgo7W&jT2bnVB(sB(ZoxZN)1 z0Jx!4!`ieg97gCwVHjpF3liTXkWi1G1RA4NJac#gM2A(*hf_-;m#_+P?J94gm9SyG zd^($l020diNKd1D>)epz_9J)FxxBVU#ilhi*0k2P9-mnl0PD8LPshPeB#D#T*xuVe z7eA?)in?x7ry94LZ}F_y+%4UEqHF^vm*|Mg~{QqVQFz6s*$gO)zd$cCt#+8AEDR0+r9q- z+>WB;H8oXLSU$6AT~(qA{=3rRNM*E=K`}M)ns`3rR;-$&5M)$DSR%_bL{kx$`PibO z^75i+x0PMMdSw?zYw$i3=kIK~Qc%A@f{@ zY%sS2DmG>VjRpBA_aX16nDIkI4peEF1EB0P@YiPHBt5v6puN99a z^&A>FRW`DMSNP^{>4uGy4z;<97R?pY$N!>x$GSH4)3~`};hcs!3s;P-pa7_H@;gm< zW~RC__%`F}CV>ZGbrK%TAp&ulIv3I*%~OpgO_gElmUaFr#B{ z>x7$=nyyW+57vib@mM^>&^j0$+hb(<$c9F*Gy7ZkOTb)EQUtLSwzos~+_Qb(b?|C> zigVX&-&bV4yX&s)Yy2g?+=gJ$KI`3e`v%9x4mxz7ySU(d>ve2wXD%|wh2x<0O6GPU z;(3+41YJvUB{FS>R6(03&qf<_)Y4#~UKwW{BV{Tv>L6m1*R9_f}VJp0v_5@g?(@Fx(O3UIkMKW4TK)RAy!BSi-l==^ZK8RW!)7#qD$w2F- zraZ=2tH5f8SSMN#ZQWeMIY_yU@ztvC7#{@Xgt6k3nRKx{UR~e-N$@!dwX-nxNK4D` zdd60-9$EuM0#>E0xN5(Os}3ezh^uzh*Sdn91QZD*1RH;@h5@AVMSX4UA5}*1e<$94 z97(};dDQU^#)JLJ#INiRp24pz)*R7-gv|xGP>^c)UG`yi!qbL(&3UPN@qwBb^&f#S zXrn4t#20=x~O3M&5xZV)8IPVna=4;HEPWo1P&1zn}P z7L^vki(^kjpLkqQTT*gQq|oAbqPc6%oG$(_y%#@^n2Aci?`v=G<48Ys}%y7d4Im39-wGB9K5oF2?c{@l^XjjTc@6SUd;~f$ZHmxKswExJu~eqVfb0o24Q?AcKM**YwHA!_WcX;W zcpb^JdTjjH;s-|0gt4;YAXV%r73NF~stOv7_pTGo>x?QrX7q?3u*fv`qo!4WMlP0m zW0-XW_$i_pktxN{Wf!97xsMdRG0RLWL+4vG8TE#JVObG}fumlil$`*y7I{jLX45#+ z*N(qJqtOvFz823KzmMjgpQOWSC%}+n!NA~Y1V+NP#`utlFl2gwO%4N&N9)<^L@NE* zpF!k7=5Bh?GvG>alh7SYpAYy@~RM1#?Tj> zC^#7aA=%SHIUieUC_P!av$ywV>wkbGX=pEKXf5O~ldmJt|T zClnZu7Z&$s3yK(j2s#|LovFhq2?I#c9Ms{MwSu=&0&r}gsA1}G5QSm=DQQZ=$w2!Y zLJ6a=y?chNA_D7t8>!1}^d*;Fy3pgAf8mn3o4Q7mo9C-JT6x>2n8#VFmBf({7-v|K z6h~oY0SU?!1-nq15YrKD$Bk6m*Fdopv3U4@z?Q0QCT|1R&?VFM*dQzP1oOP$U2d>R z@GrRXNCt4&QPjcey<-@Fh3{?lZ6%P?2t2t! zew;AAH(L#=zb?|Lp09$@iTPXr6D|s`B6Wd@<$jVCgy3ssrPgvx5eEuAya0Ci+ z^Y%nUFgL#-xCiSCrfjbZrTIN>zck$jklX=@p&&O zSv_URvLvFa(Y6aE3@hn#P9VBE5e4@#>rYLR+31l1+hjS9C;p~?pto-3)TSb2QuAGF zQ_OsK3ZIFW^JgzYl66tEBK_v2^t<$%Nj?I$GP&*^MBqbmgE1WL8p#5#1{FHV84$M1 z^Pe^Q1U*DZx>Kyd4JL#L6tpdAchoC)WHRwzkDk@`a@&W#yFNGUbcJ%e4(qQx{q%U< zZ#&j8_5Bs>_rG~<5&I@!+OlOEv%lBN%=#3@e_LL2Hg+hEY&_5 zC8%pa?*p%}5~ZN?b+#W{cMQGcAUFR-#ib~HN^2g^b=d!#yP z%z4Pq!%gt}dgxEK`+X@$WchyK{=0uH+y6VJ?2>NaJfd%ee=8pxwpMFH(!ijGY8Q(K z=FINyn$}!jTU}8S3!{*^X%*|bqf(*@AgzV_iuM?qY22a>p$RfG&Qq9`Pxx|h1`@A(*O!Ta+f|ed zZ7f^gyQ(Kq@7freT^5;Ye4;+lliLz0n;qH+@uaV-Cr};0|2f z@=_fB1)9L)6?zsPhUe~F;L~;Af}L~uZrs4TtSRc5+7SsR}Rwxe&xVn)(F^m^ClBJp9y1Y70=xb}@_0{#22o#Tm3sCq{&49rsP~^GC z=v`rsElkjuKwX`P#Nu4%IF=PNflV_jLv(O&mH1)RUgPU9eL0;5c?mu;x~uk1n9zcr zo(0CylA@v#{22eiKeN`M7&;N8wCZ>ytaMBz9P{kNg2}T}njzp;E=BleNuo3niz?_% zGej2j0t6{!#0bEqp`;$&6?rM?Bf;uZD_cg^QTsGQa6l^`xAqP@(kq?QqiOOO`38MoVIRtqY_5dVd;v6q< z<>R0S&Kny@Jq@jmtpzc3c9Xfq=@Ls5sD{}jiaXTRyT};erX%sxBmFIV9#fac@4lyM z$azn3X=#zsR8n-;T}6l^Zdq1!_vhn7S@Y7nON&2$Pf>~S-rZHpr%oM;-_tTwb=T*s zmKo2M#P0cg5vrxhwb8&2cYq&OBG1NL8<5Zk&YgzyC5x_L;vzLk%0lE-;c4Yg+qqcQ zI%QI)HTzmcA)LgqT8t@+;$*5X$0pO2rC740YamL>SP#B3+QW+qsZN*@>3T?1m&MEC zg{6h1!GiZ;R48;?@9Bh-&J~5a7f;YvXWu9-|K{yJYsT6cXLWl;3x6B`DnH3u9dXXg zvwD3mzwGNhYvz#r&A-WOK{VJ4(@>u`Pm88POjCe6niVJzG@vTk@vwjq4-C`OS?kiL z9WE%;hn$hThhS22iO(I(EAxyW(6{@_0)Kzrf4m{bY}I}*V{P(iC!~c33GxVGfbt;i z>mxYuRCx@XvO%Ukgp={0hvsup51yDjDM|{ebBx>Y zk%yXE1a|JF`bNYmpcV=&pFBeu@N%4L#YxgCiNxhdFiah;HVIbQ3GNA}1)4JY?=C4Z zW{4*O#s0guz4}_)Q`N2^S0wjo*Gl8EWw43uoN3&aQ(YiRRvI5w<2S&6$-0Je z4N!|8+Z}5FjA<7a%fO8&YCWL#Yz(di99a4^<2_^ip}dH5NG~i9{oCL8kMsUMQ0CLO zk00=sGEx%&QTAz+FxRJQ%r#g{#KW+J7ukkHA;wyST2DNfWMLQ)6F6w}z%t`9tb#ai zrg3XdBC>3mxO%1WODuxeflsgq@;QF2!#ueTu+h_aWy&(x@5lQ}f@t{1%=TK;Y-*=$ z0?i%hTDtYMSGV2mFAj(&j2R^*ZK7Djp3aS68LG{>{9bRA_{rdZ5$2d>BUAVnUw|GUVElI^kwct+1`8lA*RR(-T#g-B0pph|>C>TqtPM4YHX;WBy|_azL_o^e zFjWBK*$UwYR7j2pMIs@XkfE5M8b^9YCRxGjl|S`bfSUZv164Y?mcyERz z21mEKBe!#h9{nK*Ns6yj$N}rk&0c4OQmY1fc$ZPTW{*zv;!mQ(39A!d-NS5`v%P}=-4GbVoG7~!% zMG;B2swxb>tA9y%qPaX83znCyy5YwILua%vsBSJREDA*`zc_u?U@Q(ls@xhf^USsaC5^B;w&9f6+aPo$wp)Ubp`8-`)T~Z@A%x zp&M=hn3CQsI5#|$p9i9{;Dp%9tjAp{1!K38Ceh~wlFfSXK!*k}E2U<3H7^m&+5lt8 zx&oo`rqM`N@TsN48Qh)zXoYd{UzcCL{yO7b;lFOf<(C80E6@3@1dd>4!I!6P_*M=8 z${@1RL?kGIh|Dm8^@t9VSXA{>aO`9=3iErF>w_{m=-LyO*>M&EnP8Z~9(ovUz3Z+m z`%Kh5_)TDr`&8jAPh0n`007G%t^(@?bJZ>;J!oP#FlE}P*OTu8Ys`p1o-V&f1-%Jh z52t)U8JsX~W}b{k{VT+$<)p7L&L0t5<+LRc+vg46fXX0N)@leH*8pfswgJIF7{Gj$ zWr9)3Na)0-L5%WF@v&QPy<_06TW{6thK$>R#`n_b4Og#D)ehgWY^PWcD8*2uCSF&g zh+CoqSqe%`U`)EKSlBL4X@tE=%=~D{Mg9F3Evcv=a6eKw+esA7*gAkZv_s414-84X z;i1P6xBQM{0d_lmUl4bknTTJ+3o_ytDj4Yd*t<_0cD(mi|D#7Qk$67#GVr_tk+qkk zg1IP>;mE@Z>!_%MNImm#szsy{xFG`%HJnY#8MqY>%@TAJrs5M%bd@4?$-KdP zxI!+;7ERt5Wm34fexp$?e!kKCy#fE~FB!Vz!$X(sn|JBHc_<03ANv#hG#ll7b2NAy zu;V?PwO3mVT@-xfV%RWH_}$I=*DhJZP|iNVeI69&zx%{5pLo~8gX0sA_P=!$ljD@M z1pFbp!AEvH6d)$J$C(TMw?_i^JGh-h0xCx$x4T{*5Rm;n+l`yV1ATqQkl4L_+nc{i zT+8+**BUPyFUz^l!Q5wIW;tAKI;+9%P>Du)I->=Y_(eN6xT8IYEiTS)!))8$eZn#8 z=p~q|ZP8&eAGb7Bjms#lN^x}Z zi@?@7&5%j?6tQtcdt&${mT&*no7=XF-NsN~pLoEyDFIEZUQQPCd;n{4pInPDsM8lN zfL#r0fC(U^ddYOr49{e`n#V0XD0PH7xokHI}!EdD_3vom6V}TZB7b5A!Y9hW-gvR5xN|~JaY9%0{ zcPOyVe-x159F<$lq%ioau3cnI6VEL&J|Y&+{@)92k8 zFTJ8Pey1q<-eZsLx(goBH4HiuUqSHVJI_9A#8C=XK3m0$?U2ugFM`ho?$GL2EJmvf zD51*IhiDQ@#2BH7u`F0v8<(nFC!b6~zP(eRY-g0zR{vW*?6-Kc*ptPYd~!gV>u!=k^W4mS3JHMcylcWZtby6-u5q6CzyIJ}LyoGxt? z&z=U`61*0*MUpw9h=%!ah??^315CCkI#`tA@FgIPQq-Gn0(7iPL!vx1X>fQPqD&EL zpNorP)p=fk6K)6^?-nP}@W)d!CE!m)g1ObP^5FenEf}qiMGAZs^*CQ0Rk2tVxR);x z4HraWRmDGkHby!kzP178CfKrJ^MOu*H3Gg+$yAb1)&UkoMuM5c3YK}3@lkR0W81zv z@ZC557ULY+d5Gg2`zc~x_v?$Wez03pc?f!GoCx6;k{|)riDL;-H8$H9@0HH+rC z5ScH{R41`m0S-vzro~D{(`HeWM+{0Ruy9r4brnndiEYpRWKe=3977DA1sI6rGh={( zk49~7DplaYE~zOm%tvgmQ`DA$u{%r$(B)3A_<{f!vHwZ}dJ_Va$dd0|fs!X}THu@}DhMM<0TK1i!4 zu6rLu>>qDHZSsc{J*#`3IF)<;%Lv-;5onREov6OP^&I`S@g25%P*w5d_c&%AebRmp z>++xMIgXzlr3nq>F6YBIrjy>|yz)IrewlmTuP=%EWIB6sa%&%tFG95~jP z_ngwYI@V;?RU16Xv)Y4$X4@8t1MR>`uRoA={n$ybAG2RCnon|lJjf%)hA$A^B`3e< zl8N^`e)4-BpKy2sRkdIe$NrRcKhA3C z6}F7`^qh!6Nv}`q8*$5R`fcofB)C>5U1K}!9Q_00K`x?+*zx=1lR*M$WLSKSwcNQr zC!ULaeXN;ih_UKDR$$J>if3k3Df*7<;iGKT+Hp+}A~)tDgL4p$q?OPY&O&FyO-Ly^ zPrE?7P`gC?sCJolrFN}$y>^rKY3+98GT)S?h#)QUl#u$z9t?N-%^wd z6$-wZ%#X|V-um47%%XCBZl`eTa}Pe}dwy?yW?g5E#m}wJxMQqq?Vs^;>pJVbbsb?j zm1htZ>t5^Cg3tP!V_KhaOzX#b2CuWOo$NE~Ui;kmnFTBF<@?F-H`%@RXINtpFV;BL zys;|}oBxTenYXXwt??oG_uJ}?{A+KoXtuuD+iScaFTh85uP(+%xc&ufvcuf%Z(A4R z8l$RL+{?fDt-Od2#usnnZ`|Ii-pjA$Q{)49;|u&B(8;glxcCF3ALflO;NkLeIo4k5 zf%uElF~Le-!hv45K9%3n#usEPXci2j zix9}zLW>^DA-khzdSwLRcr-#H>XxZClALU{mk?HfV7!V7#0)1Y5~an3X1wZTag&Hw zMetQzc4TwQNW2Mv&DuUsl(`3X4=`Z0Jhi#cJpoF5$&&Sao2Y)Zwi%tT3#vmXvihUO#l^D{;@slJjm-(e@1KTte9mcpy-mIP$A8eA zm{q)3Y@3y6Ze0BP++aKusxHXI2>Na2)$4idto8W1c-HsQ1LxKjWv;Cq#6y}J9UQ8$ z+3$HK3w2jfFQeIb z8jPl^4Zo7cQ#M}5>+C(65mqK!G^^{4r{8?@P4lKV-~9EjGxV$OW6yTKmvt%7vmMXj zy)hK>wVo&Me-mw6ZJW}~^1*jJM2S2^=uYh<_&G< zwBX=C^^gcL*paa@IbPcs$Ft81HQ#|59X3Mbuu8uvUXVX59j9QEKrhZd>DYmR%^~qK zexJU!%{a<=$%+FL$CMQ?J^-$qYD^X_kn_&K>DCa*q;jJ8u&WXEV|f&1WFVHnTmWZg z0Tg&??AzzjR}Uy=Aa{>mF~hXct~ z4RP;q52nlZp@;>8cs5FJOzc;UPlb*rx9=o(8;@JbW9*^TSA@ zT^wZKcCCnWFY7ySue@eD_6nbA@fJ*G?fBjL#_6!ku+9KwC<`tZ<83%$I#DeLDuiqq zwT-v{07@wvfY!zx64vowi68!40^BAZ!}s*ub&LB|mOKQ5T}@`2)CubF}Wy znxo5_oI5lh@`UE6=J?sAPPXtg zt3!Zgu`B>p9IJ(=-%l5cKi`iQ7YLN~IVD4oher;!Au9xc-5?Ybhz#O7JM~SBEW}ON(@nY3^#O) zAP~#3%!+^`8&VD-FXO_PcyB&XoMU`SyeJ=M>~eIB9^I-Q#WgVJYk!uL5v8(#AHr_Z z8LD`!^90Wd%TgoAkH-`b;6a}n^%7tC+T2u1hN!?tCVXfQ$mn}}gCxH!s1yhgZK`|+!v{0S%aO=K6cbIW zh-Kna#W|yg#`hl@HU7Xy>yM1zH#!P7FpnT$y|mZFQ{7+^^!z#;PZ@UU9>$cWf8YD_sa`r4?Y>gdPD}1Ar=V5^ez!*tjEX(RA4U(o=D6zU>!V|GUWz8du5%B{g z883_)yIgM{Dc}#*#;Nv`i5qH}!>QFWMEUCcoID3>HDIlBT>-2TN(Lb#)#GuaMGxe{ z5!4$-;j2(ctyCx$q7fk+2%_^kwpsR?6=2OA5_McLbg#DWwnL+%qldCK9G6Z`Hf!T4 zTH@XVylVeL6XvOP+5}EhprJ+nshBY2@4>OgaptbSpac` z1s(+hPzb}WBvb%MG6BM(_NE;c@N9<(i<@EffCcf$C^ZEzRH;k$#XK1-VZg#43rzpVp=&<7ka)acF;$CngNP!H{(Xxt%OkNWki741OswVbhw^L%_Vs5JSHVhBvb4j2u8prlxB&3)`OegA9LtR;Msx8IDh z(T?wrtel0;)xJ*oe0=aWAGQF_svox&OeHXajL#N^^4YDan0G5r8Sj?Er(j&0N28 zAjA2XO{2CaMwqm^+Qf|jYT$p8BJxbCz_5_oto5^vD>1I{v^mdPaNCF+sAO3qeHT^54Nw>xn=Qgb61=6iRWkb&Pn$**{#XD<+ir=j%|!n z*neprE4Lr#gtgis*XktkiX>H#D3?XT4{d{d>7?EYReaB~AWM)%Ce6NlJRWj z2jFlopXxfYlpuJpS`UX-i~HKsIP6NbO9>1J&S?M~-FF-K4CRCI2Xe1H;Hsj@~cVRPrbZ5Bdb9;gQk)j*D?c z1`fz2fCC40n>?nU7O1%_3%+puu5E8fQG@#5%({z>~O%fo2vrr^;CJt#1DAh__ z$iE4z{dB>h2mK+9DN4o@$0Mcyq6EG3bsHT@b6hsQ$>FWiG9*Ha3@uSO z0Wy?Yz-zBrdH`3|uA|%wdWV(YriZGc_1ucf0XhggUL!sEXx)>}stz9M-nKB2IQPIx z2xPA>+R-z5=I6E;Rk+^LFEZm=^35>6-GB?k#Bq_^gbl;MkKmD&w{K1)7Hse4xLZDV z=4j83MQU8|`IImFTs;9Qa7 zkm4Dm1EVW=MN0CKT;`2|c~CyZkPK&#wfo`P7Fxg$kr$1Bm|raDqy}vuBm;2ki#FfB zadQE~$3p*jeHn$38F^JBLq8A1Bivj$j<|PptM1{ozStrdn%| z)j22CACACIHBo;!E!&Ue)7*KcT|nBr zNFF6$i1QHQsXwHkKTrq!-_Rc1WnEYP5y7{4JKKqusTPeKb-SFpg$;#z$LrFxZl_&mKxtMM#XaDYur6Y%roNsW!@vBHvNHe zq$!u4Twa$VL6Dj(_Y%#ArahMXNy?)2r>ui0p(`TIk=Q5F7Mb2-7)#0i>2nS|9vvxRFi>Dzk0~gdH zlq{~Sx*S{Dbw{dj76mC_&*($HX98mLrd=;Q%+QlaitJ4B)(t8ojdDn~IRBLzsL|_7V ziL?VIta40B$FiU|OG;6tmt)F8=UHlC8cgXTRov0!)RHz#8^i~(msm=gBxwu1Hg2bA z@AS_V6RosurB4+TR(a0(7$qn5N*4?p+$8u`381IwPa=@YQf0#U!E9#MaRmS@TaJQ_ zGQJ7hY5S94L^HWDV52?pbk9L$N3)K>ti5`=eK{?AkmBTNzoX46rtqh1eWzo;%#t0_ z7EH-k%r*Y2{lW@Lcp^<0<+*$MG6{jBVbs3HgpI5MYy83d!sl8iA;*FCF}KH3p8{z;9iaA3M;GT~bi-Q@H(JC}+DqV12;9|uMx z5M!IDgJ;gEFr&~Y#ON$s3MK6t7YrG=VhvxRx_aF_Q#iQ2g9?j~auZmLnP)8jJ8(!c zeJdb@3{^5!Gvq@0X(j)shKGu{>dB0Po6KN5X&)*3W7XrN22H_FMkbkYZ&LO%pFyllFU)_ej}ZK9X{ed{j2x)HAq|Oq;mnB+hW5$!+3N@l(?>`4FdrtwdJDnE*)W zziUy4El0&XQ7VKC3oE{qHu3!lgw5%|8n6e9A&N6>{2tXvelNl;`u>)d@%?Od3>G}^ z*t_~v)H{o4)!G@U#lbwbXomR|S{o`C?}vi}U~BsUh07^i$n3&jPBd_UL~1twD2xiN zyfj)}Sk3-mUbhwz5jOLUnYHOqqKXZ3Q1uNdFGy>$HH!Z~Lz_1b%^!B@T`M>5Sk)`s z!+p&i9nJX3*|O%bHCxs$JYc+Q{O6a3HZ1M!c&wvW{vzBCz+dt6HwV$gk?Y)h z>{h)DeZdsZpqxOG$qpY=A&A^5S)|&DzCbHB6HwSb#fS~ zaBk-YWW%|gXnvtOc~5U`NH!+pl|}W%_4Yof6I-*gULmXBu{te!eZGIj+nwc!L^*!m zGhbJ%y>WTEQG`s1T`Ye)rdO9&B&t3*>u^t2@?Uzs$OTcoFwpDkH1qvhnpM7E z`}F2yOR~PUswv)N&uKixe7`g%xGAiLwI|N=>sqv^i$95}Qxny#ttZa!yINh>wP zF_~^hdBVAgbf3x-&+0Q)2TSCkDmvDps4G`bA6`wOv?LPn37#U^o}Z`|Es>s|&Z#=^ zjY@v)(F&bid{CQSW)|n^F1YvVgR^xJUUB*2#h0&WQ!mEPky(taVcn}(De@!bK$lxb#h4T}A+KCZs{8{lI9l0-C#WSccPX7Yxk>U)1(UlD`9geHO zpAcjNb|E|3P96|PQ@aSaJ8lpu|%t`M&d4jMO_X`8UMz^M-2qxejzR-+;Q$%mfL zvgf&1_uybbOF-1KbxW+cN5G=o%T({@c-8TJpZ#FX_J+ajHs<1R#2xim?r=O@Soo;P zK>pc$efkmc&ZE7~aPDT~ciVD<$McV)&+4y?*A1Y5n>c8UbgTtN+CX#Un>pwd5+vmL z0i+1YgOcGKj6K&}`xy;%6?i8a8c5rUdj!@e;Rd@77UbooSvHIAx;oKG5!Bf3NJJgz zof$>}+1f|mXnW()nil7tzu&WG=T7|Vsi{E2X&qggNyNggH~e6nCj zlIFUGW-rYR@d~LB2Gaf^Ad&@&~}ro3(M|q=;z3sXl^{2$%xXUAar~7jO-#{>+fc!HZolhhgP^Y z?!X4bjwB7YefJ}e8XptUEx92VR_Ik>a4CkwJ?N)bxUOUTJV~s;gGo!pTDexI-9Gq0 z1ODK9B6D=mzMgLwfTvWnrVE2iWis#&)nilRcY+XlK(bYjUP z(B^F9DfU#3dv4V~HbaqT*Mi==R>t-YLg$GAtL!zmssj9N1y0khHM-A^tydckA z(FAcy2`cD-DFc0FwPhAt_Lzn2J7Z?S{phiEE;e*`u?M1y?cH52Hg|W8$lvg+q@q<$Y$>c3BIObKdJt-AKV5r-3;2H4Mz52)YlH_UUXypA~y_l1k`+{ z4w1*qW9gq^pv*Jxg^ZzMxs(){B>8YT zpkO2zpi_;a8tpQiM!rG)jCSM(@k|=*IBQ4$KzGmR+Nmqg^NqM>G)+Bw+SHF;+1{C) z-Z8buIpROxcwF4=S-WWV0+cN8p1xq&k~!t^!I~*cr!~}0t1L+^x|?VO{jbvc5o+$! z>zt)nJC7UH80F_lEMy)2bL%YN${x#S@o)Gcg5;3+#N>)R{2feWOdtNlmup#Gp3w4w zc}VaIsKVKZxuJL!$El_=CpkGeoqHCo857lYRo5DY;y0@X#LN}OMb-5y|Zz zU)8@R<#|>%IdyrywnoYGO^r3JwXK!qMTz3XX~^@FOSH$y@!TNXF5DdW(OW0V@5UF7 zFAsseegooSo)M4Bd6k}`Or^w!)vW;k>jwXe z;5ktdj07G&E@(AgyJ)Rk$p9-7RAfq2LLNcnnED15Z z?vlIix&+KX%s)6bc2IHy`7F@>pY%9v3R77ByMa7qNkut&SLll+T7VEdO*VYeHaJ~0 zpCZnzuBNCk9LmqtridvlD`hI($tZ&3q7k+>;mL`zIJ6(sccRG{&QV|pg2Okv=MDCk zl+P-UFOHYbsw|&(#@wFieI8GrfA!$AE6?|jxVoF4JF~gri6i=^pWKU;gai z>X~hA2#!*FRlz$|Tbx=jDa1}RU4z3A?Gn@ZhA7~Tgu|vLp*2lyn%dHAp8?71G-g2a z!3k&aHSwEMn8=-^M4lzLpr-0<>=rY246Ca-PFmw53R7+^>_o7j$r2bBIKFyxWs74a z78GY}dQ3Mg=%@+dbHhPSfe%a`sjG-A6^JZFktqn8&>0|TdOfxRA{^Wi7p^!eF0>g_ zkR%-tKQ$WUGaUPmzS81o#86J#a{^kKR;#T_t*EW^d(cBdK1)u7q9)QMUE3gGfc-i> zFy}z(r8x(||CE21<>lhpS|VOiUKq(O%PT_@#DI&nEgV5+q!Sv!y6JILP!CV&TIq?i zf;y;*m3xP-tTzG;R}3xO-QT}^;ey?B=Ink@yic=Hr2Lpi*0sV$}f$GNX~U3Z4KQp)oizesvF8yg@KSoCJ$&Fxg%#i$;82 zO)D*qR7NZFbG>07`rVmGwWh%pvui*On+9a9N4{&g^7D2XFJF)sG3g_jJo;7r&*OuT{%($~>p(`- z`VNM^+UdoI&P|2dQ0k0)6lp>a6lBw61duemPQdE~ykLDYWmrH|ftgdn%lzsbKg$<* z+>%t%@IomH2Sr*(fkBn6e z;Ps;CN06MD$9<09%T)dM-A{SBCRi-UBhiSOXu&Xw7CF$qQ&Q^@BX9&Yk3!;|BS#b{ zdGCqyjZYh|L3}q>i=9V~z>=5Q%cMzGK7;KP#zd$;k}Ly2AjuNV`QYx_qWN-#*X{G# zcbQ-Avf?5vFV;W_3CvGdL~2{|JPTIte;a9H`Qv1cmL*WFzeT9V>qMsYmx)xUgjX3a zSadr6vbgFG)*nD^7T>GT7Nq7y!e|2KbcArm*{xe?zh-)~tp^F{Vh9bj%8QF+e^CVW zo7s-UGqxCeym(~crl<#vhER?UEvz7uDX@R+(EYB`!u3x+HBwma1Xud81R1<@{GSV3 za^2;j<=ejUm2E?za!+ncq28CpPxEl*qh4Mln3n@)KoUT{0*VUm=bW6`td)8-St~?g z*x4nJtX3|81WepaU};2k!U67eI49(Eh5avq*S_=W>{lgFZwA zls-}`x7WBzd@LOI`l_*$GyC^rN5sX(&PR;lhkd!ao@Xo&A2|ZBAp4tp2eSVeS_2OM ztMRe->ze*R!vmd76KHTt5hCK#`<8-6( zRGKKw6M#fnR>Jl6TAbhFN+e61QnDpV!qzDT-Xt}-chK9zSK?o@{jR&VugNX;pkInL z#TIdeL-^1(1?}I?FDQ2VP%Z27{}H^Sq=#^!Du5gPtsU{sS_K->Zd@f1zr}`k;}b{r z8U2rlFPnHD{dhLNQdPZ6wJoX9d;z-#+RyFRz&vvT{{2`8$-m$(XXy+uE(mA2umQMp zwrJp2{xzE4FGliMSW2?{(vspLSyKbWz(~E$>|EyplX@NK=mf$|iuR-|N=wd#Ml0C* zpGw^YA`YdD`@hruj?muuj`2gx<*nHRv+q(YtL|%{>OX(Y*l_TmB<(|o0Ax08mq9}Q z^56pjSgyJQ!s|hyjXj(R=z&Cmvr6qd?5k~>KNlVuzt1iwl*V^&FZbxB2eWpzoKKR$Ap&F)uquAejWtS-m4=h3sbI$lzen8?qumvW&& zm4pKhj}u*)J={yME>IY8dmuc45G=V$v8hS-Qdt!9@@LAG+4d6R7$)naW3qT7@Q&)9 zqjnR!4>bhev8G{M#;!TV1?P{A?Zid{-vlfcufRLX%&-8kGn<`xA;N}IGh4}9VzURL zE_i~^)-f%BtDU{xc%&?W z`3-Ighs2Z{Ky3jJrND_7NSyKz#MuIVQyMGu`^<&+TIWkU8-&Y>g`G(>SY-J^c6m0r z&5xbJ?<_AIdFsjag{3aP?)b4O47KPf9D$zl&=8Nn<)Lynj==HnNwp#iM?P@*xv5m7 zAmD{r1pWDd7M$D;EHEY}d3{F6#6f5ZnOOo`8dYIz*)Z6RWmU#u_{Ud`z^ku{cV6~~ zA+F{8RBh2kH~?=N-;G$JU(C^$mi7dL-DTt7z!S4z^T39KTBiZjh@@EyWCsuVeil#w z2l_ZKhQwf3uy8^`d_O@OG*hOChwGuvdaSMTVqkqvnw~y?0ROn2(%u1^oeLCXMj=`L zEnq{H6JVxbrWltjd*p+>=3$t8i1LAu50WMgFP`!P#FyUB2aJCe3Zt%_gPxiOboC(g z6HsX$Or$K_i-4MIFf}^+QP-H1IxH!50}KXYc{rqLB}Jjia3$^wqU|qA5XC?u?Qrax zT6rQCO;Tr9eoZLu=j__BVdu!o*-LSTUp#ZxteG=s^&QrWM$SKf`aU899)0!po#JLIFn}o5 z4jsEi+<*Eu18N}f86^%0=ko^-TI36i?bBXK+aKc^d}U?O)y0x{Rb{c$xd@gp#NMh^ zGmStVa3)%TSW*_|-V(dXkv32hgEDLYVozFefd12-jG>uxy_jfZ^rcw ztsi!~80MbPZcf4Q3P8$=b&t-TVOvw!wMJw=^-)mec?#PYcFUYb3 z+7UgZe+{y1HMW|xV;}pH=KH$P|LNG5D9%pm>#4)6(c>CKNi*jL*gFs~QdvRXQJbh}tZXcfh04R_MoG#qiP(eQ2riZ z6BEtfFG-HLkfMSZ;MbX zf7gigb6qQc-$G2&$3pvIWxvC5_H9 z7YK%DKnBGIt|y$B&{}~U-TUq!Hkumu7s{_CU0T?!x&v{B6l@^g;FUFvP!2)b)|FpN z#OTwLA-PDRPl%Q$O~01@3plpWBy>I;TlnYD*20#p$upq>o|LtzRpr>v2?0rp&P}N7 zsvD}PmGKF)`x#=4ry)~eQ$qDUyOBEJIeFL-%K zIxeh%Mg4FOw^c}2v3YpXO4->7v!rq+M+!yr#yxvB;^&T%L}^8&p|7VqmA9j(FRw%W zo$~M5F1ohw*|W`fYWp7XujRGnEgzjdckb*P<{BTLJNu5g{NNL_=UTB}wpb|miZCx( z`y3)pjvL{CvlMC|XunrgU*FPr2sWtI_6F*7*;^ z{FSI}52O7_xUI8;uE?JG;Xf3_;|2d6nQ#1Qx_@50xw&~p$y9xIUETQOQ%h!yiP(Y# z#yL~)kFrh#=g>UILeNTCsu;Tfmg4lLz}Hpk1Y*Z93-p|J}V`+G4r z0gL&CdWXIfW4IqgKto&8|IOT&z{gotecyYZ*)x-5GMP-4NivhkWU}wcWX~i`leTHn zbZ^o^nl{}_Te`5x5?KYSs4Rj--iqJ?Dg`R?qJYY)A|NUvsJOf!pu#JnuM0HIlkb1- z^UP$jwL$&9-&dF=&pgYy=bn4+*^eviad~*K{bS>c)$j8qogd`~D^)5U&RHiL6=|XY ztI_n3&46>mA^hhFd(0kl=mQNW9%y>tgnZu?_Z`>evW=oq9GUyN!N#Aw(DcId@_kd| z^Z5P~`Ht&CsI6Ry`o>ew3y1KuF!pY9D0JVwFO`+PbnksHm6f3!?b6@;dI`P%1`8?) z^VI|ykSsyjY$S3nY$+lgJzmMcYY^8YVC%tvxs=GEGn+2A+rSPj#9R>f0Y|IJYL)H* z>o9|43@(6R9JJ#g2Ci8El9OhZda{v}!(s5w7FxQ}Pj~nr;W)I?5-Mqzn zBCGr6WjEhxNf9E&l6RT2bH(Om=YODo`wITyjt;&;ec(A)vBOd9S~c+=UvcfVpZUs- zHsyq&qX)8y%A6vYQ`^TwgfX;C66()CBbZw`h;#=*X?e0_zw+;r@>xj zvnIe@ZZcU0;Vw6gIJn7TTIu&O*51<87_J3(3HW;b%W|_Zveaa1@@@B%^6nz_7Ck1Q zvq1t4MKySxs|Ny*uR=9c(?N3i5XPR?%2O(_~|JCjm{%~V@ZMfD315HPtM^z$0% zsE(pM&?y;OBIv_xQq15^sGw>zLGnOS+Xxm;TOYP<8CA|&S$|O>XO-oJbwzbxzu6vl zaw2-4gm}nim5eu@^U_|Zi(NIk?t*F;aJ(zilo`Hw?d6LZxw3? zhDP_CvoBCkTwH+H$)2k=@HN*RyXv6&=l+cwdJZpJ>GO849Xh;I{nF^6US3{Ra-_7P zvh;9Cl^kEjX{Hjkx`3w+X^4UN4PU88>=ra zT3OS1yt$^arkUuV1N!QFSVuN+aFQdi$dMY(c|)HG^kmv8H>EFoLnmg+P^(KcUQd7`CW~ef@5AlAlK~fKZMs_`58tsal z3(FfUgw`iWY9PDcus;(Ytk?$Q1ix)REbanVMv;64pl$xuTw4iRytQ#%#oG4TD{I@^Yw7GO>8-Y1^7J^oRI*04RbpmC3D`1Uo?s@9 z1P3XtSu8_^BA?(Qfd$tBG0_4)q(lrBF+(&x{#cox&sk%*rYgTOAHh#$rHCxg@whdd z*yqJbkgD-a!wWP<$?oNr6|>h)!-o1+6c>b%p@a49EuE3(`ufbAoXq+e$an`Bn8L>? zer{vs;>=r*9(^3akJ+?llK4SUC->+AiZ#m1KuAX-)D&#dZ_{}*|>9iVo4(Y->%;FD{q@CwZ^(* zr?ooO)#gPPJ&fa4RAl}(=$!H(8s%J`sTbO;{x|vz#TzT)byi-wX!Ytv^eU*RCIb6&6-k7Z%c10KNNp{#kxR{8TY35Dmp5XyuGQA{LQWE`Q&J4n2Po zFS3wQJo!n{g{`odT_UsO|W5HlbI@{#^_Yd8F z|2}cSz#DH2Oxyr?yK(csV%~CCA=ycNFd&id!XijS(8POkXh$ns!A2-6TZMw@X?7dS z;W^XehGrgX@eSXAsPc31et(%-uLLu;27#Npvz%8j$;mUv`r z<`iat9XGHe@dFH<8bAUNmCyS1068#G`4lMF06aOQ6m@aLmIq&o8$vQ!yV4;Px5S?d3qC_sKD@S;+DS~tYO1TIjK?4yw@y28RUST*~SX5s>aeDZODcOlt zZRj38i2mQ;vI@T?(d|xjQ0u&=iZ?2nB{X|ET747qYqq>_4bhYzA*@7Fr9J1h zw4B$obWe+VwS8&0c}r?_a@WRh@^t%>hVW8b#|3?F^dITyIK1Lwb;4cRT2V6NAHvyiS;K%rLUk5g!iIKfY@LF%UB4Z1WNLci;oDn8}6gMEH)` zXYqmIkgEkvf}uatj6>ejc4ev^SV!^;a*p`gS2n-5?bQ|imo4e98EQbEIy9kMap{sJ zm-6(V;g_HNz30-t#-X~pp~l9IwLLwT^!HubqrvL~&?VwG=r~r!Hb>4W%oP@yeFATk zFp_N<-q6b_=L5opWh?>7dzPzXyiZy*D9xS(4Fg;0^>XGd^Ol8>@JMklq%0y_3;oP^ z7DZSiri{dUB3Y>cYVqz`KsEGX7uG5qDggxx)&0Zj73JkCsvC!ryAtYh%UfH^bL$ei zl80Oa4?_Ow7wtgSj7Sq@blIq6mH>Lr-=f8-QYmhMs?;8t%zRT&x3 zXq@eGoJGj-*b~{A&n-5vaX8!J2I@d;5~X%TnY#gw17uwwN(oA`DPbqGSuE1$PbnTY z%L*EBb!BO>x5$f}w}K!@d)lBA&pv4Be9)`_F_CKCv46LrtF~mv!04K5GIDb=uAOiE ztrdmUrmH^q!H2TkXpZFVua|8#(`F|Wd{-t3WjSi_fJ1f zysxCUx~jLNv9+qIb>dS^d_~i`igg5GjDHi{8Ei44$B}9ckHgp${1jLz;hzzGEWyo4 zmBB1AKq;_6^6D9Y>il^+h&p4A2X3>*kYlhV#&8Pzccw>}%vg{{Y%Rw4tp!_(M6uaK zTZ)MpkOu`s$F`Pu%wqLT;Wf6k%m9~zNMKTMli)WKufsq1Z2yBFjm$*r=FY*B-?MFf z1)%GAt<+)9VJjp3K$Di;4(uZ7VvNqx_C(~e;Two>@qvLcPzr68#Hd+lH($Bh+1 z8%3Vao0;xOEq9m42yNaK0RfK;9@5?sz$`*Wb!*ng8A##I&Q+ad!C-k=FlXJPr{Li$6F8xmUb!wk&b1h z`D?yBb7Y&_HYWOJpg~+;@Mw}%6X2~Fj%@N}rzl9zTTYUT6{dPJC*gl-#FqjLjgdrc+3bm8 zKbR5hnvA=&A)-YB8kq&{LF}^N)p04d4#a)LGiI#S85RVX4@iDNe>jarAJ`bSB^V5L zTisB^U|Y9n1Jcy^cXU3jHuDu9NXv3MGt)0o9~kZ$DR}yO8Fk&YfFgcO0iwj*43`7U zPaD*9actUXG&dnSeoY@uz>cKEbWc(uaFif@miC!rLD)lVFeH-bzKW@#Tz*-9rvo_{ zR(quHvddOgCoXL!UzL*fEb!R z!=8?uqbQ~mXJYznj*}?yTrsy-B%XZc@O%)yC%-GYCB7@z*CO_!tW3pfE9bD`LnluG z+i!y`Yqi=AGBoO&H4$>q+C)IkHN!7pHJPk~3@)!N@D5o`2uEqB8(3^uTL0V~um!-9 z&dR_c3k&jmZkN5nQ86#ZpxZ}P2W;nNpeA6OgE#}Vm53kl_%>{JMx%KU z3)DCQS}_|}CLqS1{Dl4-7b+6i>Jn>3h!6>I(#$L)aVW>(qA`3bKqCKh0rn4k_LUg?L zY2!uED8;_urH$s=nAk4CJwoDo(>2%R<*i=Bc`qom``Cw<~gPh5Y z1=`ouSE~=)c%ynm-&tTci<7hbu!xpX{#a=sgMz;xk3hNryR~RS7OYNi@*zuJQH;Yj zlNEGmTv1qBT zQ{VWbDY7FH*&Z?d54ZtzV1zSPVkecICc*F!FkzaruQfJL2$mT8cXY3t?nT z;AT4#`^~f^BX)sO{mJ!gq1rBqiDt8woSo=N^rSk?4zt6Fz};jizoCl;4jg2?9?%y{^+BR?!BWzdgUta;IF^h_$(G*8dcWC-V|jB!VWtFi4(F?1-k$G_)h>tOc zVBJI1iYQk%sXyj5{CFv#x%1efW1m`b$L))6JJ!KVd3}AUx}_w1>m7G2I(Dq*j@!F# zKZfUjAJ3nd^ZC|U&xfU4e?ECP$sqwSf)p*I!%$pOUthwH^BVQXYR{5mw=KT?jwPQ0 z6dmCberG9KVxw1e&oMmtj-F%37Tv*^b@GdN{{47<5_qWxku-kD-$kJLDmEG!Vccdm zqJbV)cECfah~z|JHwpWWBu4_0QBs_ylpS#XGUs}R=$Xwfjz0!CtCCL2l45C5BZILo z&T1mjYc;_)n3xJg#s;DxGr$pb=b^|uELwL>0N+pyM;?(!kua88(NbR`x`5!)iT~KU z_qM%z`6YWFUiRwVy>H0Ba6rA5zoBM!v{dk0N(t*DCH4Hyv9U4r1zt+;_$ogz|Co0M zdoRTiB~Wc6#Lt_J2<(#$c4Dmq$^NTo{z%z23}=%a*#eW9Uje&yY2D5Eu5Wzy^~dgd z_E~Ymz{CXuc-L%bqm!?~5A`xAtUc0_!YxZF67d=oA(5?q5i@}8fNTudj?wUq!_Z9y z=$IJ+W{7vu|0T=Pp+E)<3DV&uH>DagMPu%}>86|3;dRrezx~{&Z{jx(4%~U?z~I2; zuf2xdhO<%R;{R2=i|2PmI`A}@4vDJ4Nhz=u;t>26%&>!ME}>^GK8#XqM-n@hNE!na z8Vo5;r=9AT0)jwTi9eh_}DtJS(9bAGbyPOF^xGZi3Sv)30@tAEk^B_LVwvm)HVKduS zR#lSgXw$|G>sAe{=v&&;wJ6fo)DW(#9IhHJFD)$aO30P zlxHHM0^;-tl{6y?lIvCplwXQkwWHZf(Lh*`C>TsMIhCrvNZYSuJ-C61-_hX>2EE?k z=l1UXKnHyZ^2@bP^-2Aw4p{GNJLG#^_uih`y6*0}jt+XS?b+Kc^7Yf-Jsj3Acr|*V z_RFTO+S;ze^wveU!TYp7fo9ozyBaY=zrbqDq)5gLL=qS>v0)j-@)U#>ECop*?jBny zRAuaHkU(NxJ|Pm5H8=$^i&Wboh>kmQ$TUmeUGE6KNbk=%5Vhz6P!m=}ItKEHc=eJO)M!dT%3@G$%!x{j^L$+|KDt z!^)trgy}vIDSt#`1k2(aAJ=tGMF&cEN3bf+-9aE(k1H6y$BoR*ezYQ34M=45BJyQHdW!{Ju~8T`_WKp;cC zIwSB_<@$r29S2L&%+BOWkGHq9b-2EMxV5y`>#0n3n$wC8b#xwF54WhIk83Y>@BsF0 z8SntT5cT7%O6br8GbcV^Q?8WlLk@mX?;0rlye=9SJrX6~P_-9Bv+MZ5?ga-n#=C zCu#h6o0>0uT#+-y+|U@}p{MCO8}w&{_snpDa{e|s&bPt>=^%fcq$J1;BqVC|LP8=u z{BiUWqXQ#m`LA-8?KDhWYeJ0YcI4~1Sz5%Egn}~5Bx{8Dd4W4yfX5*{9R^tnZX&9} zr#Vp+j8;_e%F0kljzor(n6I-EdtoBS27<1v0#3#-e^V8@qmjfM z^_#l05f37N#Z*jlC;4ijEx|wy9)UD$TsAg4w%Lf352_`Aya^z6zL4g04`cN;Rh8u> zK4gP=I@3G!aAt=y4FS!Pv&lVqhClZGsKI43eY6XWV4mi*o!E3%y_af%{!Qi_q(aNA zlhtOUxwzP%;fkV=5|d)2TryZJgarvCW(bE!Ac3HW#3_iOD~l1sT!k3s;<`}KpPS>Q zJqarqwU)K?k&ptjTQnH~3<+IuA^d38x0nP20b6&;NZE&%1_Cd5vwj-Dzn>;Lyf5S} zsVl8%t7~uf`u$$ND<#qCOiXb&oe9NU2?X-Q- zMF|Ne7{pDc1lVd}u3S-C3Z@kvNtsqlb8>%U z0oIP}%P!+BcwKkqX;v?8d8q~e)A~b?G5GP?<@lRf4_WPKmgmF(!ZE-GV5Nh}8kR`p z@l$X=J`mlHI?IUeZ*3_93Kn&=^tARMFuu90c{&0dU_c1hSU3Wv*=J3%Aa_(eUI;?I z9<$iOj6~*Iyv~Z9!!ZMHRexC%jJKVgFyLyq05a5cke-T-l`5$HncP!>(AxJ8IqM@s+ z;j+sq_~VMRV&`JMqP?QL?a2Mv?z9}BL$03^ef?~YY@LA-hlY7{wTY{T$<*#7-%D9+lp5N!A~OWawPP}D{Ty3lZ-(ZwR7iuT5uGU-#BfsC0E zPcdBJ9$Ft$EwozlkwvA8nxQ;aluxG$J>qHMOK2YV+d^>RoX<0NR_x5_uro+n(eTvB zI+0g&USxNT<{z8Bj%HKI+1zA=vfibO7j;Hjno1i>8)h!1_sx3G;!9fy`h0V{+0Kf* zIrENUbf&GfR))B`h6*jNZaVVb7nQY^w$gT0K7;qXZz`LiV=f3iajM-y*v_o@JI+uG z40++NAvY2lXqr12Wmd>I3SEgK7?ONTD1!if8c~ppA^Qj^(wmV0(@425Wb;E2Fv@)K za<7>peIcdk`9WlPK@bS?cqXGpnd>$VFU7k@`RDSok9Jsln_ zZs}Rtw)OC#k-9@mo?8XJ6qR|MNGuzStV2{N)#0#MjaG|s42rpxLUY87eLYS$)=&I-W~jvPXODj>rZHc*01=0OFkXXJKX7JAhj?=m z-pG$*hZg`9K7j*NcYs<1GY`y7oI36)CL~~DPS8BwprEcW$Or|%9jOkO7-3%Y$fohp zj1CkmtBJa8zD$Xg$>#M-kYu@-XOZ_t*j+`5iAApG5GT33$5G#L^=HZ zSwL2_U^x`CK?>X5f&z?Cn&8YYg33RwQaSiK4I9ZtI72%bD--7qMqsC(UXh$uB;{3+ z#*7qYI9JHXsim5e*=3GGQMx9XxCJhTL;XXtBC4>U77^4=9V%M40hE-Y0B z15z_V35sEi1_}^m!s0Nd1o?RgBMAC^D9~p_z6cs>r+HAItxl`X7UE=e0I%>!vkKA^ z0yH17U^1k_$yKZVXeiPl`qdF0a``M)zf-j=Us~5$5<1wkdU(~)`t3vgk+x-3#rqep zIJZx^`tF2)`t;~aL!U%#1QgNYw&M2c!o~z&>iK=E&a;2z%L#iov@Y&xC|hLDP2JJm zzY`gR7^fNW=vX zdRCv8nq7`OL?p7*A+fP8i2CPL6U}4Pt}Da`4AW2_NcNf@glP%t7tf%0fj(W<=w!39)x2h%E)xKToTHMAONlo1xG zslq5tR$1BoY@?h$=QAf={o3pS_pOKyxE zT&&om;X;}C1^CJq@Re$0fp)P?kwMgrgHIT2#F1cCxXsAXyo&f5l|*XjOSUH|2r?KJ zi9&Li)|T2D&LV9sU9DZ{H_}|&48^sqC`8G}l$cG0)mSyJc1C$l7>4$Fc#ouZ?3;1C zC>Z5M{^%E;vg6{&FMk>3O!wYf*Va+Xf8fjCf9}bX^83Ky)6ZOW71)%xS$^yrSyQEc zY2S#>vj(>gG&j_@y4ynfH*l{3Zs=-j>(btdMhxRu>UdekRB74GJMXqbGL0+ zw`SAYO)L6(S1(_^bV<+Rj`p^ea9tHLLp4(ec(g;}Y#CpcF%xI+19uC;xofy;hL4F^9dH%gH1)fqd@zcpW zWUf^RR_sf@s-^Pxp73MyE11gUHzEddMC*!`q`PkQ~}g4RqTl=_cKT~uBz=Shd0q$n)ohk!BmGNpDku9 z**WalNW$8soyht(ITE8;{~b1LH?+H>h!juei4LBKbZW}{M>&>g>c2h3Y;qbIvj0<) zT#CcNMq)>(1VHoI?_nCY!{XK$yFSJ2#4?q|0P0q+>glF}0Pw$_v-+In%eq(gtn7$1 zH-=%JEiDNyE?7LXNPrt;YF!9^yw=bG=2#4d5%7x+u1>OIlF;PL>yOMuzM@b zs>PKWoz?ziR7ljOHPIq?dYVXe@lYVL;Ii75{*XVMw zk@&+j#fuksL(_1I9gMj#?p9fjOmhYi4^@8X8@uB0p`AOl3BTs5D{dIO;o=JqU4HoT z^Y-jGxbxtakxfGz)~{LBx4e6M&-ODDLGHhe2>xj*iKmz!%p!`Z8WiIVvwnIB62UfY1TA7 z`2-(Vi%-rdGQxk(U!Hqz{xtBb>6J#dV4vdZ=O^#ucZ;`SZSB$Wqf>!48B0uofRus2 z8WdnCL+UtaB&r7*!v}zpV=zptn3j!7f-!;^FcPQw`62PyiF4K}i`1(J)axOCKhFZf zAL{9y8+PJP+!xuDbYna^g{1^ipiYxo5rj$Bk1T*tjY|oH z;Y0Mh$DbcEZZueokM926?{__pS^}r;35fnlqs{o1`g8T?e==AMlT4^zN8aCK$h*r& z?mR3$aNR?PMrsKjO<6NYyukD$f&>~gISq}&NSjlT2Dl;!FHf*Ah-^w+8}JAHrG6VA zK?ZDfJ=7U0wH*%Eqb&~(q#;3otUr)qq1Pe01ZW5!s;Cw=rM{}VPO*vVibID6w;63p zLC3y*kq`<2Z5vdt7}_^bQgV0WGOKl2^|Dlf4*z1nAB*b( z

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∾bGws?nU8IVIx^3JSIFY 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 z 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%0DFN@c%JWvSX^{fQiwL!i%LnY@oc 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 Xj?H%Mi`MMaKE7z(SNaY3JNy1W)~&gk literal 0 HcmV?d00001 diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index daa5104e..1eb12eac 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -5070,7 +5070,6 @@ ctrl_thread__eval_scope_begin(Arena *arena, CTRL_UserBreakpointList *user_bps, C process = process->next) { if(process->kind != CTRL_EntityKind_Process) { continue; } - U64 process_mod_idx = 0; for(CTRL_Entity *mod = process->first; mod != &ctrl_entity_nil; mod = mod->next) @@ -5087,7 +5086,7 @@ ctrl_thread__eval_scope_begin(Arena *arena, CTRL_UserBreakpointList *user_bps, C // (we *always* wait for the initial module) // B32 rdi_is_necessary = 1; - if(process_mod_idx > 0 && rdi == &rdi_parsed_nil) ProfScope("determine if RDI is necessary") + if(rdi == &rdi_parsed_nil) ProfScope("determine if RDI is necessary") { // rjf: find cached result U64 hash = ctrl_hash_from_handle(mod->handle); @@ -5176,7 +5175,6 @@ ctrl_thread__eval_scope_begin(Arena *arena, CTRL_UserBreakpointList *user_bps, C eval_modules_primary = &eval_modules[eval_module_idx]; } eval_module_idx += 1; - process_mod_idx += 1; } } } diff --git a/src/raddbg/generated/raddbg.meta.h b/src/raddbg/generated/raddbg.meta.h index d98fbe38..1473a73d 100644 --- a/src/raddbg/generated/raddbg.meta.h +++ b/src/raddbg/generated/raddbg.meta.h @@ -993,4181 +993,19226 @@ read_only global U8 rd_icon_font_bytes__data[] = read_only global String8 rd_icon_font_bytes = {rd_icon_font_bytes__data, sizeof(rd_icon_font_bytes__data)}; read_only global U8 rd_default_main_font_bytes__data[] = { -0x00,0x01,0x00,0x00,0x00,0x13,0x01,0x00,0x00,0x04,0x00,0x30,0x44,0x53,0x49,0x47,0x00,0x00,0x00,0x01,0x00,0x02,0x6b,0x84,0x00,0x00,0x00,0x08,0x47,0x44,0x45,0x46,0x18,0x60,0x18,0x61,0x00,0x00,0x01,0x3c,0x00,0x00,0x00,0x48,0x47,0x50,0x4f,0x53,0x15,0x2a,0x60,0x11,0x00,0x00,0x01,0x84,0x00,0x00,0x8b,0xa0,0x47,0x53,0x55,0x42, -0xc8,0x26,0xca,0x04,0x00,0x00,0x8d,0x24,0x00,0x00,0x02,0x96,0x4f,0x53,0x2f,0x32,0xb8,0xa3,0x29,0xc5,0x00,0x00,0x8f,0xbc,0x00,0x00,0x00,0x60,0x63,0x6d,0x61,0x70,0x11,0xca,0x4e,0x34,0x00,0x00,0x90,0x1c,0x00,0x00,0x06,0xd6,0x63,0x76,0x74,0x20,0x07,0x19,0x19,0xc9,0x00,0x02,0x61,0xe4,0x00,0x00,0x00,0x26,0x66,0x70,0x67,0x6d, -0x94,0xa8,0xf4,0x54,0x00,0x02,0x62,0x0c,0x00,0x00,0x09,0x25,0x67,0x61,0x73,0x70,0x00,0x00,0x00,0x10,0x00,0x02,0x61,0xdc,0x00,0x00,0x00,0x08,0x67,0x6c,0x79,0x66,0xc4,0xd2,0x88,0x18,0x00,0x00,0x96,0xf4,0x00,0x01,0x5a,0xf4,0x68,0x65,0x61,0x64,0x14,0xa0,0xb2,0xb9,0x00,0x01,0xf1,0xe8,0x00,0x00,0x00,0x36,0x68,0x68,0x65,0x61, -0x0c,0xf7,0x0a,0xd3,0x00,0x01,0xf2,0x20,0x00,0x00,0x00,0x24,0x68,0x6d,0x74,0x78,0x6e,0xd8,0x76,0xc7,0x00,0x01,0xf2,0x44,0x00,0x00,0x10,0x34,0x6b,0x65,0x72,0x6e,0x77,0x61,0x6c,0x7d,0x00,0x02,0x02,0x78,0x00,0x00,0x30,0x12,0x6c,0x6f,0x63,0x61,0x04,0x9d,0x5b,0x88,0x00,0x02,0x32,0x8c,0x00,0x00,0x08,0x1c,0x6d,0x61,0x78,0x70, -0x05,0x55,0x0a,0x7d,0x00,0x02,0x3a,0xa8,0x00,0x00,0x00,0x20,0x6e,0x61,0x6d,0x65,0x02,0xa4,0x9f,0xae,0x00,0x02,0x3a,0xc8,0x00,0x00,0x03,0x3e,0x70,0x6f,0x73,0x74,0xd8,0xe3,0x62,0xc5,0x00,0x02,0x3e,0x08,0x00,0x00,0x23,0xd3,0x70,0x72,0x65,0x70,0x0e,0xfb,0xc8,0x9f,0x00,0x02,0x6b,0x34,0x00,0x00,0x00,0x4d,0x00,0x01,0x00,0x00, -0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x08,0x01,0xa9,0x01,0xa9,0x00,0x01,0x02,0x2e,0x02,0x34,0x00,0x01,0x03,0x24,0x03,0x2f,0x00,0x01,0x03,0x48,0x03,0x48,0x00,0x01,0x03,0x4f,0x03,0x50,0x00,0x01,0x03,0x52,0x03,0x52,0x00,0x01,0x03,0x68,0x03,0x6a,0x00,0x01,0x03,0xfb,0x03,0xfb,0x00,0x01,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0a,0x00,0x1e,0x00,0x2c,0x00,0x01,0x44,0x46,0x4c,0x54,0x00,0x08,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x00,0x00,0x01,0x6b,0x65,0x72,0x6e,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x0e,0x4b,0xb8,0x54,0x92, -0x70,0x84,0x00,0x01,0x77,0xc6,0x00,0x04,0x00,0x00,0x01,0x99,0x03,0x3c,0x03,0x42,0x03,0x48,0x03,0xba,0x03,0xc4,0x03,0xd6,0x03,0xfc,0x04,0x12,0x04,0x1c,0x04,0x3e,0x04,0x60,0x04,0x66,0x04,0xb4,0x04,0xe2,0x05,0x04,0x05,0x26,0x05,0x4c,0x05,0x72,0x05,0x78,0x06,0x62,0x06,0x68,0x06,0x8e,0x06,0xb4,0x07,0x16,0x07,0xa8,0x07,0xca, -0x07,0xe8,0x08,0x02,0x08,0x08,0x08,0x16,0x08,0x38,0x08,0x52,0x08,0x60,0x08,0x7e,0x08,0x84,0x08,0xa2,0x09,0x14,0x09,0x86,0x09,0xf8,0x0a,0x6a,0x0a,0xdc,0x0b,0x4e,0x0b,0x60,0x0b,0x76,0x0b,0x8c,0x0b,0xa2,0x0b,0xb8,0x0b,0xda,0x0b,0xfc,0x0c,0x1e,0x0c,0x40,0x0c,0x66,0x0c,0x88,0x0c,0xae,0x0c,0xd4,0x0c,0xfa,0x0d,0x20,0x0d,0x46, -0x0d,0x4c,0x0d,0x52,0x0d,0x58,0x0d,0x5e,0x0d,0xf0,0x0e,0x0e,0x0e,0x2c,0x0e,0x4a,0x0e,0x68,0x0e,0x86,0x0e,0xa4,0x0e,0xaa,0x0e,0xb0,0x0e,0xb6,0x0e,0xbc,0x0e,0xde,0x0f,0x00,0x0f,0x22,0x0f,0x44,0x0f,0x66,0x0f,0x84,0x0f,0x9e,0x0f,0xbc,0x10,0x2e,0x10,0x4c,0x10,0xbe,0x10,0xdc,0x11,0x4e,0x11,0x6c,0x11,0x7e,0x11,0x90,0x11,0xa2, -0x11,0xb4,0x11,0xda,0x12,0x00,0x12,0x16,0x12,0x1c,0x12,0x32,0x12,0x38,0x12,0x4e,0x12,0x54,0x12,0x6a,0x12,0x70,0x12,0x86,0x12,0x8c,0x12,0xae,0x12,0xd0,0x12,0xf2,0x13,0x14,0x13,0x36,0x13,0x58,0x13,0x5e,0x13,0xac,0x13,0xda,0x14,0x08,0x14,0x36,0x14,0x64,0x14,0x86,0x14,0xa8,0x14,0xca,0x14,0xf0,0x15,0x12,0x15,0x38,0x15,0x5a, -0x15,0x80,0x15,0xa2,0x15,0xb0,0x15,0xbe,0x15,0xcc,0x16,0xb6,0x17,0xa0,0x18,0x8a,0x18,0x90,0x18,0x96,0x18,0x9c,0x18,0xa2,0x18,0xa8,0x18,0xae,0x18,0xd4,0x19,0x66,0x19,0x84,0x1a,0x16,0x1a,0x38,0x1a,0x5a,0x1a,0x7c,0x1a,0xee,0x1b,0x0c,0x1b,0x12,0x1b,0x84,0x1b,0x9a,0x1b,0xbc,0x1b,0xde,0x1c,0x04,0x1c,0x96,0x1d,0x08,0x1d,0x12, -0x1d,0xd8,0x1e,0x4a,0x1e,0x60,0x1e,0x82,0x1e,0xa4,0x1e,0xca,0x1e,0xec,0x1f,0x3a,0x1f,0xac,0x1f,0xce,0x1f,0xf0,0x1f,0xf6,0x20,0x1c,0x20,0x42,0x20,0x4c,0x21,0x36,0x21,0xc8,0x21,0xce,0x22,0x30,0x22,0x36,0x22,0x58,0x22,0xea,0x22,0xf0,0x23,0x0e,0x23,0x18,0x23,0x42,0x23,0x58,0x23,0x72,0x23,0x90,0x23,0x96,0x23,0xb8,0x23,0xd2, -0x23,0xd8,0x24,0x0e,0x24,0x14,0x24,0x2e,0x24,0x50,0x24,0x66,0x24,0x7c,0x24,0xaa,0x25,0x70,0x25,0x92,0x25,0xb4,0x25,0xba,0x25,0xe0,0x26,0x06,0x26,0x28,0x26,0x76,0x26,0xc4,0x26,0xe6,0x27,0x58,0x27,0x7a,0x27,0x84,0x28,0x4a,0x28,0x78,0x28,0x8e,0x28,0xf0,0x29,0x06,0x29,0x28,0x29,0x76,0x29,0x98,0x29,0xba,0x29,0xdc,0x2a,0x02, -0x2a,0x28,0x2a,0x3a,0x2b,0x24,0x2b,0x72,0x2b,0xd4,0x2b,0xf6,0x2c,0x18,0x2c,0x4a,0x2c,0x70,0x2c,0x96,0x2c,0xa0,0x2c,0xaa,0x2c,0xc8,0x2c,0xe2,0x2c,0xf4,0x2c,0xfe,0x2d,0x14,0x2d,0x1a,0x2d,0x20,0x2d,0x36,0x2d,0x58,0x2d,0x72,0x2d,0xb0,0x2d,0xce,0x2d,0xe8,0x2d,0xee,0x2e,0x08,0x2e,0x1e,0x2e,0x40,0x2e,0x62,0x2e,0x7c,0x2e,0x82, -0x2e,0x88,0x2e,0x8e,0x2e,0x98,0x2e,0xba,0x2e,0xdc,0x2e,0xfa,0x2f,0x20,0x2f,0x42,0x2f,0xb4,0x2f,0xd6,0x2f,0xfc,0x30,0x1a,0x30,0x40,0x30,0x5e,0x30,0x78,0x31,0x3e,0x31,0x48,0x32,0x0e,0x32,0x70,0x32,0x76,0x32,0xc4,0x33,0x12,0x33,0x60,0x33,0xae,0x33,0xd0,0x33,0xe2,0x34,0xcc,0x35,0x5e,0x35,0x7c,0x36,0x0e,0x36,0x70,0x36,0x76, -0x36,0x98,0x36,0xfa,0x37,0x00,0x37,0x22,0x37,0x44,0x37,0x66,0x37,0xd8,0x37,0xf6,0x38,0x68,0x38,0x86,0x38,0x9c,0x38,0xa2,0x38,0xa8,0x38,0xae,0x39,0x10,0x39,0x16,0x39,0x3c,0x39,0x5e,0x39,0x80,0x39,0x9a,0x39,0xe8,0x3a,0x06,0x3a,0x54,0x3a,0x72,0x3a,0xc0,0x3a,0xde,0x3b,0xa4,0x3b,0xae,0x3b,0xb8,0x3c,0x1a,0x3c,0x20,0x3c,0x92, -0x3c,0xb0,0x3c,0xd2,0x3c,0xf8,0x3d,0x1e,0x3d,0x44,0x3d,0xb6,0x3d,0xd4,0x3e,0x46,0x3e,0x64,0x3e,0xd6,0x3e,0xf4,0x3f,0x66,0x3f,0x84,0x3f,0xf6,0x40,0x14,0x40,0x86,0x40,0xa4,0x41,0x16,0x41,0x34,0x41,0xa6,0x41,0xc4,0x42,0x36,0x42,0x54,0x42,0xc6,0x42,0xe4,0x43,0x56,0x43,0x74,0x43,0xe6,0x44,0x04,0x44,0x1a,0x44,0x20,0x44,0x36, -0x44,0x3c,0x44,0x52,0x44,0x58,0x44,0x6e,0x44,0x74,0x44,0x8a,0x44,0x90,0x44,0xa6,0x44,0xac,0x44,0xc2,0x44,0xc8,0x44,0xde,0x44,0xe4,0x45,0x06,0x45,0x28,0x45,0x4e,0x45,0x70,0x45,0x96,0x45,0xb8,0x45,0xde,0x46,0x00,0x46,0x26,0x46,0x48,0x46,0x6e,0x46,0x90,0x46,0xb6,0x46,0xd8,0x46,0xfe,0x47,0x20,0x47,0x42,0x47,0x48,0x47,0x4e, -0x47,0xe0,0x47,0xfe,0x48,0x90,0x48,0xae,0x49,0x40,0x49,0x5e,0x49,0xf0,0x4a,0x0e,0x4a,0x34,0x4a,0x3a,0x4a,0x40,0x4a,0x46,0x4a,0x4c,0x4a,0x52,0x4a,0x58,0x4a,0x5e,0x4a,0x84,0x4a,0x8e,0x4a,0x94,0x4a,0xa6,0x4a,0xd0,0x4a,0xe6,0x4a,0xf8,0x4b,0x0a,0x4b,0x30,0x4b,0x36,0x4b,0x4c,0x4b,0x56,0x4b,0x68,0x4b,0x8e,0x4b,0xa4,0x00,0x01, -0x00,0x5a,0x00,0x0b,0x00,0x01,0x00,0x5a,0x00,0x0b,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51, -0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x02,0x02,0x16, -0x00,0x0b,0x02,0xb9,0xff,0xe6,0x00,0x04,0x00,0x0c,0xff,0xe6,0x00,0x40,0xff,0xf4,0x00,0x60,0xff,0xef,0x02,0x68,0xff,0xed,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x05, -0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x02,0x00,0x55,0xff,0xe6,0x03,0x71,0xff,0xc0,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4, -0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x13,0x00,0x5a,0xff,0xc1,0x01,0x80,0xff,0xc5,0x01,0x9e,0xff,0xb4,0x01,0xdd,0xff,0xd7,0x01,0xee,0xff,0xb9,0x02,0x0d, -0xff,0xb2,0x02,0x27,0xff,0xd2,0x02,0x2b,0xff,0xc8,0x02,0x4c,0xff,0xa0,0x02,0x64,0xff,0xc5,0x02,0x83,0xff,0xe4,0x02,0xb0,0xff,0xcc,0x02,0xb2,0xff,0xcc,0x02,0xba,0xff,0xcb,0x02,0xbb,0xff,0xef,0x03,0x75,0xff,0xe8,0x03,0x79,0xff,0xe6,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe7,0x00,0x0b,0x00,0x5a,0xff,0xa4,0x03,0x71,0x00,0x13, -0x03,0x75,0xff,0xf3,0x03,0x79,0xff,0xf1,0x03,0x82,0xff,0xf2,0x03,0xdb,0xff,0xf1,0x03,0xec,0xff,0x3b,0x03,0xed,0xff,0xda,0x03,0xee,0xff,0x54,0x03,0xef,0xff,0x91,0x03,0xf1,0xff,0x3f,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1, -0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8, -0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x09,0x00,0x57,0x00,0x0e,0x00,0x88,0xff,0x9f,0x01,0x8e,0xff,0xf5,0x01,0x95,0xff,0xde,0x01,0x9b,0xff,0xe5,0x01,0xc0,0xff,0xa8,0x01,0xe0,0xff,0xca,0x02,0xab,0xff,0xe3,0x03,0x71,0xff,0xc6,0x00,0x01,0x03,0x71,0x00,0x0e,0x00,0x3a,0x00,0x55,0xff,0xb5, -0x00,0x5a,0xff,0xc7,0x00,0x6d,0xfe,0xb8,0x00,0x7d,0xff,0x28,0x00,0x88,0xff,0x4d,0x00,0xa8,0xff,0x8e,0x00,0xba,0xff,0xa1,0x01,0x80,0xff,0xae,0x01,0x8e,0xff,0xc9,0x01,0x8f,0xff,0x7e,0x01,0x93,0xff,0x67,0x01,0x9a,0xff,0x87,0x01,0x9b,0xff,0x65,0x01,0x9e,0xff,0x9e,0x01,0xa0,0xff,0x6a,0x01,0xa1,0xff,0xa9,0x01,0xa2,0xff,0x73, -0x01,0xa3,0xff,0x5e,0x01,0xc0,0xff,0xa5,0x01,0xd8,0x00,0x0f,0x01,0xdd,0xff,0xe4,0x01,0xde,0xff,0xa0,0x01,0xe0,0xff,0x74,0x01,0xe3,0xff,0x80,0x01,0xee,0xff,0xb2,0x01,0xf7,0xff,0x7d,0x01,0xf9,0xff,0x80,0x01,0xfb,0xff,0x79,0x02,0x0b,0xff,0x7d,0x02,0x0d,0xff,0x7f,0x02,0x27,0xff,0x98,0x02,0x2b,0xff,0xda,0x02,0x3a,0xff,0x81, -0x02,0x3c,0xff,0x98,0x02,0x48,0xff,0x7d,0x02,0x4c,0xff,0xb3,0x02,0x52,0xff,0xa0,0x02,0x64,0xff,0x7c,0x02,0x66,0xff,0x7c,0x02,0x67,0xff,0x9a,0x02,0x68,0xff,0x6c,0x02,0x83,0xff,0xe6,0x02,0xab,0xff,0x6b,0x02,0xb0,0xff,0x92,0x02,0xb2,0xff,0xad,0x02,0xb6,0xff,0x7b,0x02,0xb9,0x00,0x0f,0x02,0xba,0xff,0x91,0x02,0xbb,0xff,0xf2, -0x03,0x71,0xff,0xaf,0x03,0x75,0xff,0xb9,0x03,0x79,0xff,0xb9,0x03,0x82,0xff,0xb9,0x03,0xdb,0xff,0xb9,0x03,0xeb,0xff,0xbc,0x03,0xec,0xff,0xf1,0x03,0xef,0xff,0xf1,0x03,0xf0,0xff,0xed,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x09,0x00,0x0c,0x00,0x14,0x00,0x40,0x00,0x11,0x00,0x55,0xff,0xe2,0x00,0x60,0x00,0x13,0x03,0x71,0xff,0xb4, -0x03,0x75,0xff,0xd9,0x03,0x79,0xff,0xd9,0x03,0x82,0xff,0xd9,0x03,0xdb,0xff,0xd9,0x00,0x09,0x00,0x0c,0x00,0x0f,0x00,0x40,0x00,0x0c,0x00,0x55,0xff,0xeb,0x00,0x60,0x00,0x0e,0x03,0x71,0xff,0xcb,0x03,0x75,0xff,0xe9,0x03,0x79,0xff,0xe7,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe7,0x00,0x18,0x01,0x80,0xff,0xd4,0x01,0x8e,0xff,0xf0, -0x01,0x92,0xff,0xed,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xe0,0x01,0xa0,0xff,0xe7,0x01,0xa2,0xff,0xe5,0x01,0xa3,0xff,0xee,0x01,0xc0,0x00,0x12,0x01,0xdd,0xff,0xe9,0x01,0xee,0xff,0xd7,0x02,0x4c,0xff,0xd7,0x02,0x64,0xff,0xd3,0x02,0x67,0xff,0xd6,0x02,0x68,0xff,0xc5,0x02,0x83,0xff,0xe7,0x02,0xaf,0x00,0x0d,0x02,0xb1,0x00,0x0c, -0x02,0xba,0xff,0xd6,0x02,0xbb,0xff,0xf2,0x03,0x75,0xff,0xe9,0x03,0x79,0xff,0xe7,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe9,0x00,0x24,0x00,0x09,0xff,0xe2,0x00,0x0c,0x00,0x14,0x00,0x0d,0xff,0xcf,0x00,0x40,0x00,0x12,0x00,0x49,0xff,0xea,0x00,0x55,0xff,0xd8,0x00,0x57,0xff,0xea,0x00,0x60,0x00,0x13,0x00,0x6d,0xff,0xae,0x00,0x7d, -0xff,0xcd,0x00,0x88,0xff,0xa0,0x00,0xa8,0xff,0xc1,0x00,0xba,0xff,0xc0,0x01,0x80,0xff,0xd0,0x01,0x8c,0xff,0xea,0x01,0x8e,0xff,0xee,0x01,0x8f,0xff,0xc6,0x01,0x90,0x00,0x0d,0x01,0x92,0xff,0xe9,0x01,0x93,0xff,0xd6,0x01,0x9a,0xff,0xe8,0x01,0x9b,0xff,0xba,0x01,0x9e,0xff,0xe9,0x01,0xa0,0xff,0xcb,0x01,0xa1,0xff,0xe8,0x01,0xa2, -0xff,0xda,0x01,0xa3,0xff,0xc7,0x03,0x3d,0xff,0xd3,0x03,0x71,0xff,0xab,0x03,0x75,0xff,0xcd,0x03,0x79,0xff,0xcb,0x03,0x82,0xff,0xcb,0x03,0xdb,0xff,0xcb,0x03,0xec,0xff,0xf3,0x03,0xef,0xff,0xf3,0x03,0xf0,0xff,0xef,0x00,0x08,0x00,0x5a,0xff,0xe5,0x01,0x80,0xff,0xcb,0x01,0xa2,0xff,0xe4,0x03,0x71,0x00,0x0d,0x03,0x75,0xff,0xed, -0x03,0x79,0xff,0xeb,0x03,0x82,0xff,0xec,0x03,0xdb,0xff,0xec,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x06,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xe8,0x01,0xe0,0xff,0xee,0x01,0xee,0xff,0xeb,0x02,0x4c,0xff,0xec, -0x02,0xba,0xff,0xec,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x40,0x00,0x12,0x00,0x60,0x00,0x13,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x06,0x01,0x9e,0xff,0xea, -0x01,0xa1,0xff,0xe8,0x01,0xe0,0xff,0xee,0x01,0xee,0xff,0xeb,0x02,0x4c,0xff,0xec,0x02,0xba,0xff,0xec,0x00,0x03,0x00,0x49,0x00,0x0f,0x00,0x57,0x00,0x11,0x00,0x5a,0x00,0x11,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1, -0x00,0x01,0x02,0x27,0xff,0xf1,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95, -0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82, -0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5, -0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd, -0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64, -0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x1c,0x00,0x22,0xff,0xc3, -0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2, -0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80, -0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba, -0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8, -0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7, -0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x04,0x00,0x0c,0xff,0xe6,0x00,0x40,0xff,0xf4,0x00,0x60,0xff,0xef,0x02,0x68,0xff,0xed,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a, -0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x08,0x01,0xc0,0x00,0x15, -0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08, -0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9, -0xff,0xe4,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf, -0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95, -0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x09,0x00,0x88, -0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0, -0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x24,0x00,0x09,0xff,0xe2,0x00,0x0c,0x00,0x14,0x00,0x0d,0xff,0xcf,0x00,0x40,0x00,0x12,0x00,0x49,0xff,0xea,0x00,0x55,0xff,0xd8,0x00,0x57,0xff,0xea,0x00,0x60, -0x00,0x13,0x00,0x6d,0xff,0xae,0x00,0x7d,0xff,0xcd,0x00,0x88,0xff,0xa0,0x00,0xa8,0xff,0xc1,0x00,0xba,0xff,0xc0,0x01,0x80,0xff,0xd0,0x01,0x8c,0xff,0xea,0x01,0x8e,0xff,0xee,0x01,0x8f,0xff,0xc6,0x01,0x90,0x00,0x0d,0x01,0x92,0xff,0xe9,0x01,0x93,0xff,0xd6,0x01,0x9a,0xff,0xe8,0x01,0x9b,0xff,0xba,0x01,0x9e,0xff,0xe9,0x01,0xa0, -0xff,0xcb,0x01,0xa1,0xff,0xe8,0x01,0xa2,0xff,0xda,0x01,0xa3,0xff,0xc7,0x03,0x3d,0xff,0xd3,0x03,0x71,0xff,0xab,0x03,0x75,0xff,0xcd,0x03,0x79,0xff,0xcb,0x03,0x82,0xff,0xcb,0x03,0xdb,0xff,0xcb,0x03,0xec,0xff,0xf3,0x03,0xef,0xff,0xf3,0x03,0xf0,0xff,0xef,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3, -0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1, -0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3, -0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x08, -0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba, -0xff,0xec,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0, -0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0, -0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x06,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xe8,0x01,0xe0,0xff,0xee,0x01,0xee,0xff,0xeb,0x02,0x4c,0xff,0xec,0x02,0xba,0xff,0xec,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x1c, -0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd, -0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c, -0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f, -0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4, -0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8, -0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7, -0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x04,0x00,0x0c,0xff,0xe6,0x00,0x40,0xff,0xf4,0x00,0x60,0xff,0xef,0x02,0x68,0xff,0xed, -0x00,0x04,0x00,0x0c,0xff,0xe6,0x00,0x40,0xff,0xf4,0x00,0x60,0xff,0xef,0x02,0x68,0xff,0xed,0x00,0x04,0x00,0x0c,0xff,0xe6,0x00,0x40,0xff,0xf4,0x00,0x60,0xff,0xef,0x02,0x68,0xff,0xed,0x00,0x04,0x00,0x0c,0xff,0xe6,0x00,0x40,0xff,0xf4,0x00,0x60,0xff,0xef,0x02,0x68,0xff,0xed,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3, -0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0, -0xff,0xf5,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x05,0x00,0x49,0xff,0xee, -0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0, -0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64, -0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63, -0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0, -0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x13,0x00,0x5a,0xff,0xc1,0x01,0x80,0xff,0xc5,0x01,0x9e,0xff,0xb4,0x01,0xdd,0xff,0xd7,0x01,0xee,0xff,0xb9,0x02,0x0d,0xff,0xb2,0x02,0x27,0xff,0xd2,0x02,0x2b, -0xff,0xc8,0x02,0x4c,0xff,0xa0,0x02,0x64,0xff,0xc5,0x02,0x83,0xff,0xe4,0x02,0xb0,0xff,0xcc,0x02,0xb2,0xff,0xcc,0x02,0xba,0xff,0xcb,0x02,0xbb,0xff,0xef,0x03,0x75,0xff,0xe8,0x03,0x79,0xff,0xe6,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe7,0x00,0x0b,0x00,0x5a,0xff,0xa4,0x03,0x71,0x00,0x13,0x03,0x75,0xff,0xf3,0x03,0x79,0xff,0xf1, -0x03,0x82,0xff,0xf2,0x03,0xdb,0xff,0xf1,0x03,0xec,0xff,0x3b,0x03,0xed,0xff,0xda,0x03,0xee,0xff,0x54,0x03,0xef,0xff,0x91,0x03,0xf1,0xff,0x3f,0x00,0x0b,0x00,0x5a,0xff,0xa4,0x03,0x71,0x00,0x13,0x03,0x75,0xff,0xf3,0x03,0x79,0xff,0xf1,0x03,0x82,0xff,0xf2,0x03,0xdb,0xff,0xf1,0x03,0xec,0xff,0x3b,0x03,0xed,0xff,0xda,0x03,0xee, -0xff,0x54,0x03,0xef,0xff,0x91,0x03,0xf1,0xff,0x3f,0x00,0x0b,0x00,0x5a,0xff,0xa4,0x03,0x71,0x00,0x13,0x03,0x75,0xff,0xf3,0x03,0x79,0xff,0xf1,0x03,0x82,0xff,0xf2,0x03,0xdb,0xff,0xf1,0x03,0xec,0xff,0x3b,0x03,0xed,0xff,0xda,0x03,0xee,0xff,0x54,0x03,0xef,0xff,0x91,0x03,0xf1,0xff,0x3f,0x00,0x0b,0x00,0x5a,0xff,0xa4,0x03,0x71, -0x00,0x13,0x03,0x75,0xff,0xf3,0x03,0x79,0xff,0xf1,0x03,0x82,0xff,0xf2,0x03,0xdb,0xff,0xf1,0x03,0xec,0xff,0x3b,0x03,0xed,0xff,0xda,0x03,0xee,0xff,0x54,0x03,0xef,0xff,0x91,0x03,0xf1,0xff,0x3f,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3, -0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4, -0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea, -0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x08,0x01,0x9e,0xff,0xea, -0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0, -0xff,0xf5,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x03,0x00,0x49,0x00,0x0f,0x00,0x57,0x00,0x11,0x00,0x5a,0x00,0x11,0x00,0x03,0x00,0x49,0x00,0x0f,0x00,0x57,0x00,0x11,0x00,0x5a,0x00,0x11, -0x00,0x03,0x00,0x49,0x00,0x0f,0x00,0x57,0x00,0x11,0x00,0x5a,0x00,0x11,0x00,0x3a,0x00,0x55,0xff,0xb5,0x00,0x5a,0xff,0xc7,0x00,0x6d,0xfe,0xb8,0x00,0x7d,0xff,0x28,0x00,0x88,0xff,0x4d,0x00,0xa8,0xff,0x8e,0x00,0xba,0xff,0xa1,0x01,0x80,0xff,0xae,0x01,0x8e,0xff,0xc9,0x01,0x8f,0xff,0x7e,0x01,0x93,0xff,0x67,0x01,0x9a,0xff,0x87, -0x01,0x9b,0xff,0x65,0x01,0x9e,0xff,0x9e,0x01,0xa0,0xff,0x6a,0x01,0xa1,0xff,0xa9,0x01,0xa2,0xff,0x73,0x01,0xa3,0xff,0x5e,0x01,0xc0,0xff,0xa5,0x01,0xd8,0x00,0x0f,0x01,0xdd,0xff,0xe4,0x01,0xde,0xff,0xa0,0x01,0xe0,0xff,0x74,0x01,0xe3,0xff,0x80,0x01,0xee,0xff,0xb2,0x01,0xf7,0xff,0x7d,0x01,0xf9,0xff,0x80,0x01,0xfb,0xff,0x79, -0x02,0x0b,0xff,0x7d,0x02,0x0d,0xff,0x7f,0x02,0x27,0xff,0x98,0x02,0x2b,0xff,0xda,0x02,0x3a,0xff,0x81,0x02,0x3c,0xff,0x98,0x02,0x48,0xff,0x7d,0x02,0x4c,0xff,0xb3,0x02,0x52,0xff,0xa0,0x02,0x64,0xff,0x7c,0x02,0x66,0xff,0x7c,0x02,0x67,0xff,0x9a,0x02,0x68,0xff,0x6c,0x02,0x83,0xff,0xe6,0x02,0xab,0xff,0x6b,0x02,0xb0,0xff,0x92, -0x02,0xb2,0xff,0xad,0x02,0xb6,0xff,0x7b,0x02,0xb9,0x00,0x0f,0x02,0xba,0xff,0x91,0x02,0xbb,0xff,0xf2,0x03,0x71,0xff,0xaf,0x03,0x75,0xff,0xb9,0x03,0x79,0xff,0xb9,0x03,0x82,0xff,0xb9,0x03,0xdb,0xff,0xb9,0x03,0xeb,0xff,0xbc,0x03,0xec,0xff,0xf1,0x03,0xef,0xff,0xf1,0x03,0xf0,0xff,0xed,0x00,0x3a,0x00,0x55,0xff,0xb5,0x00,0x5a, -0xff,0xc7,0x00,0x6d,0xfe,0xb8,0x00,0x7d,0xff,0x28,0x00,0x88,0xff,0x4d,0x00,0xa8,0xff,0x8e,0x00,0xba,0xff,0xa1,0x01,0x80,0xff,0xae,0x01,0x8e,0xff,0xc9,0x01,0x8f,0xff,0x7e,0x01,0x93,0xff,0x67,0x01,0x9a,0xff,0x87,0x01,0x9b,0xff,0x65,0x01,0x9e,0xff,0x9e,0x01,0xa0,0xff,0x6a,0x01,0xa1,0xff,0xa9,0x01,0xa2,0xff,0x73,0x01,0xa3, -0xff,0x5e,0x01,0xc0,0xff,0xa5,0x01,0xd8,0x00,0x0f,0x01,0xdd,0xff,0xe4,0x01,0xde,0xff,0xa0,0x01,0xe0,0xff,0x74,0x01,0xe3,0xff,0x80,0x01,0xee,0xff,0xb2,0x01,0xf7,0xff,0x7d,0x01,0xf9,0xff,0x80,0x01,0xfb,0xff,0x79,0x02,0x0b,0xff,0x7d,0x02,0x0d,0xff,0x7f,0x02,0x27,0xff,0x98,0x02,0x2b,0xff,0xda,0x02,0x3a,0xff,0x81,0x02,0x3c, -0xff,0x98,0x02,0x48,0xff,0x7d,0x02,0x4c,0xff,0xb3,0x02,0x52,0xff,0xa0,0x02,0x64,0xff,0x7c,0x02,0x66,0xff,0x7c,0x02,0x67,0xff,0x9a,0x02,0x68,0xff,0x6c,0x02,0x83,0xff,0xe6,0x02,0xab,0xff,0x6b,0x02,0xb0,0xff,0x92,0x02,0xb2,0xff,0xad,0x02,0xb6,0xff,0x7b,0x02,0xb9,0x00,0x0f,0x02,0xba,0xff,0x91,0x02,0xbb,0xff,0xf2,0x03,0x71, -0xff,0xaf,0x03,0x75,0xff,0xb9,0x03,0x79,0xff,0xb9,0x03,0x82,0xff,0xb9,0x03,0xdb,0xff,0xb9,0x03,0xeb,0xff,0xbc,0x03,0xec,0xff,0xf1,0x03,0xef,0xff,0xf1,0x03,0xf0,0xff,0xed,0x00,0x3a,0x00,0x55,0xff,0xb5,0x00,0x5a,0xff,0xc7,0x00,0x6d,0xfe,0xb8,0x00,0x7d,0xff,0x28,0x00,0x88,0xff,0x4d,0x00,0xa8,0xff,0x8e,0x00,0xba,0xff,0xa1, -0x01,0x80,0xff,0xae,0x01,0x8e,0xff,0xc9,0x01,0x8f,0xff,0x7e,0x01,0x93,0xff,0x67,0x01,0x9a,0xff,0x87,0x01,0x9b,0xff,0x65,0x01,0x9e,0xff,0x9e,0x01,0xa0,0xff,0x6a,0x01,0xa1,0xff,0xa9,0x01,0xa2,0xff,0x73,0x01,0xa3,0xff,0x5e,0x01,0xc0,0xff,0xa5,0x01,0xd8,0x00,0x0f,0x01,0xdd,0xff,0xe4,0x01,0xde,0xff,0xa0,0x01,0xe0,0xff,0x74, -0x01,0xe3,0xff,0x80,0x01,0xee,0xff,0xb2,0x01,0xf7,0xff,0x7d,0x01,0xf9,0xff,0x80,0x01,0xfb,0xff,0x79,0x02,0x0b,0xff,0x7d,0x02,0x0d,0xff,0x7f,0x02,0x27,0xff,0x98,0x02,0x2b,0xff,0xda,0x02,0x3a,0xff,0x81,0x02,0x3c,0xff,0x98,0x02,0x48,0xff,0x7d,0x02,0x4c,0xff,0xb3,0x02,0x52,0xff,0xa0,0x02,0x64,0xff,0x7c,0x02,0x66,0xff,0x7c, -0x02,0x67,0xff,0x9a,0x02,0x68,0xff,0x6c,0x02,0x83,0xff,0xe6,0x02,0xab,0xff,0x6b,0x02,0xb0,0xff,0x92,0x02,0xb2,0xff,0xad,0x02,0xb6,0xff,0x7b,0x02,0xb9,0x00,0x0f,0x02,0xba,0xff,0x91,0x02,0xbb,0xff,0xf2,0x03,0x71,0xff,0xaf,0x03,0x75,0xff,0xb9,0x03,0x79,0xff,0xb9,0x03,0x82,0xff,0xb9,0x03,0xdb,0xff,0xb9,0x03,0xeb,0xff,0xbc, -0x03,0xec,0xff,0xf1,0x03,0xef,0xff,0xf1,0x03,0xf0,0xff,0xed,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x09,0x00,0x0c,0x00,0x0f,0x00,0x40,0x00,0x0c,0x00,0x55,0xff,0xeb,0x00,0x60, -0x00,0x0e,0x03,0x71,0xff,0xcb,0x03,0x75,0xff,0xe9,0x03,0x79,0xff,0xe7,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe7,0x00,0x24,0x00,0x09,0xff,0xe2,0x00,0x0c,0x00,0x14,0x00,0x0d,0xff,0xcf,0x00,0x40,0x00,0x12,0x00,0x49,0xff,0xea,0x00,0x55,0xff,0xd8,0x00,0x57,0xff,0xea,0x00,0x60,0x00,0x13,0x00,0x6d,0xff,0xae,0x00,0x7d,0xff,0xcd, -0x00,0x88,0xff,0xa0,0x00,0xa8,0xff,0xc1,0x00,0xba,0xff,0xc0,0x01,0x80,0xff,0xd0,0x01,0x8c,0xff,0xea,0x01,0x8e,0xff,0xee,0x01,0x8f,0xff,0xc6,0x01,0x90,0x00,0x0d,0x01,0x92,0xff,0xe9,0x01,0x93,0xff,0xd6,0x01,0x9a,0xff,0xe8,0x01,0x9b,0xff,0xba,0x01,0x9e,0xff,0xe9,0x01,0xa0,0xff,0xcb,0x01,0xa1,0xff,0xe8,0x01,0xa2,0xff,0xda, -0x01,0xa3,0xff,0xc7,0x03,0x3d,0xff,0xd3,0x03,0x71,0xff,0xab,0x03,0x75,0xff,0xcd,0x03,0x79,0xff,0xcb,0x03,0x82,0xff,0xcb,0x03,0xdb,0xff,0xcb,0x03,0xec,0xff,0xf3,0x03,0xef,0xff,0xf3,0x03,0xf0,0xff,0xef,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0, -0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x24,0x00,0x09,0xff,0xe2,0x00,0x0c,0x00,0x14,0x00,0x0d,0xff,0xcf,0x00,0x40,0x00,0x12,0x00,0x49,0xff,0xea,0x00,0x55,0xff,0xd8,0x00,0x57,0xff,0xea,0x00,0x60,0x00,0x13,0x00,0x6d,0xff,0xae,0x00,0x7d,0xff,0xcd,0x00,0x88,0xff,0xa0,0x00,0xa8,0xff,0xc1,0x00,0xba,0xff,0xc0,0x01,0x80,0xff,0xd0, -0x01,0x8c,0xff,0xea,0x01,0x8e,0xff,0xee,0x01,0x8f,0xff,0xc6,0x01,0x90,0x00,0x0d,0x01,0x92,0xff,0xe9,0x01,0x93,0xff,0xd6,0x01,0x9a,0xff,0xe8,0x01,0x9b,0xff,0xba,0x01,0x9e,0xff,0xe9,0x01,0xa0,0xff,0xcb,0x01,0xa1,0xff,0xe8,0x01,0xa2,0xff,0xda,0x01,0xa3,0xff,0xc7,0x03,0x3d,0xff,0xd3,0x03,0x71,0xff,0xab,0x03,0x75,0xff,0xcd, -0x03,0x79,0xff,0xcb,0x03,0x82,0xff,0xcb,0x03,0xdb,0xff,0xcb,0x03,0xec,0xff,0xf3,0x03,0xef,0xff,0xf3,0x03,0xf0,0xff,0xef,0x00,0x08,0x00,0x5a,0xff,0xe5,0x01,0x80,0xff,0xcb,0x01,0xa2,0xff,0xe4,0x03,0x71,0x00,0x0d,0x03,0x75,0xff,0xed,0x03,0x79,0xff,0xeb,0x03,0x82,0xff,0xec,0x03,0xdb,0xff,0xec,0x00,0x08,0x00,0x5a,0xff,0xe5, -0x01,0x80,0xff,0xcb,0x01,0xa2,0xff,0xe4,0x03,0x71,0x00,0x0d,0x03,0x75,0xff,0xed,0x03,0x79,0xff,0xeb,0x03,0x82,0xff,0xec,0x03,0xdb,0xff,0xec,0x00,0x08,0x00,0x5a,0xff,0xe5,0x01,0x80,0xff,0xcb,0x01,0xa2,0xff,0xe4,0x03,0x71,0x00,0x0d,0x03,0x75,0xff,0xed,0x03,0x79,0xff,0xeb,0x03,0x82,0xff,0xec,0x03,0xdb,0xff,0xec,0x00,0x1c, -0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd, -0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c, -0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x01,0x00,0x5a,0x00,0x0b,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee, -0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef, -0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08, -0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71, -0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x24,0x00,0x09,0xff,0xe2,0x00,0x0c,0x00,0x14,0x00,0x0d,0xff,0xcf,0x00,0x40,0x00,0x12,0x00,0x49,0xff,0xea,0x00,0x55,0xff,0xd8,0x00,0x57,0xff,0xea,0x00,0x60,0x00,0x13,0x00,0x6d,0xff,0xae,0x00,0x7d,0xff,0xcd,0x00,0x88,0xff,0xa0,0x00,0xa8,0xff,0xc1,0x00,0xba,0xff,0xc0,0x01,0x80,0xff,0xd0, -0x01,0x8c,0xff,0xea,0x01,0x8e,0xff,0xee,0x01,0x8f,0xff,0xc6,0x01,0x90,0x00,0x0d,0x01,0x92,0xff,0xe9,0x01,0x93,0xff,0xd6,0x01,0x9a,0xff,0xe8,0x01,0x9b,0xff,0xba,0x01,0x9e,0xff,0xe9,0x01,0xa0,0xff,0xcb,0x01,0xa1,0xff,0xe8,0x01,0xa2,0xff,0xda,0x01,0xa3,0xff,0xc7,0x03,0x3d,0xff,0xd3,0x03,0x71,0xff,0xab,0x03,0x75,0xff,0xcd, -0x03,0x79,0xff,0xcb,0x03,0x82,0xff,0xcb,0x03,0xdb,0xff,0xcb,0x03,0xec,0xff,0xf3,0x03,0xef,0xff,0xf3,0x03,0xf0,0xff,0xef,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8, -0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee, -0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x02,0x02,0x16,0x00,0x0b,0x02,0xb9,0xff,0xe6,0x00,0x31,0x00,0x55,0xff,0x6d,0x00,0x5a,0xff,0x8c,0x00,0x6d,0xfd,0xbf,0x00,0x7d,0xfe,0x7d,0x00,0x88,0xfe,0xbc,0x00,0xa8,0xff,0x2b,0x00,0xba,0xff,0x4b,0x01,0x80,0xff,0x61,0x01,0x8e,0xff,0x8f,0x01,0x8f,0xff,0x0f,0x01,0x93, -0xfe,0xe8,0x01,0x9a,0xff,0x1f,0x01,0x9b,0xfe,0xe5,0x01,0x9e,0xff,0x46,0x01,0xa0,0xfe,0xed,0x01,0xa1,0xff,0x59,0x01,0xa2,0xfe,0xfd,0x01,0xa3,0xfe,0xd9,0x01,0xc0,0xff,0x52,0x01,0xd8,0x00,0x05,0x01,0xdd,0xff,0xbd,0x01,0xde,0xff,0x49,0x01,0xe0,0xfe,0xfe,0x01,0xe3,0xff,0x13,0x01,0xee,0xff,0x68,0x01,0xf7,0xff,0x0e,0x01,0xf9, -0xff,0x13,0x01,0xfb,0xff,0x07,0x02,0x0b,0xff,0x0e,0x02,0x0d,0xff,0x11,0x02,0x27,0xff,0x3c,0x02,0x2b,0xff,0xac,0x02,0x3a,0xff,0x15,0x02,0x3c,0xff,0x3c,0x02,0x48,0xff,0x0e,0x02,0x4c,0xff,0x6a,0x02,0x52,0xff,0x49,0x02,0x64,0xff,0x0c,0x02,0x66,0xff,0x0c,0x02,0x67,0xff,0x3f,0x02,0x68,0xfe,0xf1,0x02,0x83,0xff,0xc0,0x02,0xab, -0xfe,0xef,0x02,0xb0,0xff,0x31,0x02,0xb2,0xff,0x5f,0x02,0xb6,0xff,0x0a,0x02,0xb9,0x00,0x05,0x02,0xba,0xff,0x30,0x02,0xbb,0xff,0xd5,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13, -0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1, -0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x08,0x00,0x5a,0xff,0xe5,0x01,0x80,0xff,0xcb,0x01,0xa2,0xff,0xe4,0x03,0x71,0x00,0x0d,0x03,0x75,0xff,0xed,0x03,0x79,0xff,0xeb,0x03,0x82,0xff,0xec, -0x03,0xdb,0xff,0xec,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0, -0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x13,0x00,0x5a,0xff,0xc1,0x01,0x80,0xff,0xc5,0x01,0x9e,0xff,0xb4,0x01,0xdd,0xff,0xd7, -0x01,0xee,0xff,0xb9,0x02,0x0d,0xff,0xb2,0x02,0x27,0xff,0xd2,0x02,0x2b,0xff,0xc8,0x02,0x4c,0xff,0xa0,0x02,0x64,0xff,0xc5,0x02,0x83,0xff,0xe4,0x02,0xb0,0xff,0xcc,0x02,0xb2,0xff,0xcc,0x02,0xba,0xff,0xcb,0x02,0xbb,0xff,0xef,0x03,0x75,0xff,0xe8,0x03,0x79,0xff,0xe6,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe7,0x00,0x1c,0x00,0x22, -0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83, -0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5, -0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x01,0x01,0x95,0x00,0x0d,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79, -0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x09,0x00,0x57,0x00,0x0e,0x00,0x88,0xff,0x9f,0x01,0x8e,0xff,0xf5,0x01,0x95,0xff,0xde,0x01,0x9b,0xff,0xe5,0x01,0xc0,0xff,0xa8,0x01,0xe0,0xff,0xca,0x02,0xab,0xff,0xe3, -0x03,0x71,0xff,0xc6,0x00,0x02,0x01,0x80,0xff,0xc2,0x01,0x95,0x00,0x10,0x00,0x3a,0x00,0x55,0xff,0xb5,0x00,0x5a,0xff,0xc7,0x00,0x6d,0xfe,0xb8,0x00,0x7d,0xff,0x28,0x00,0x88,0xff,0x4d,0x00,0xa8,0xff,0x8e,0x00,0xba,0xff,0xa1,0x01,0x80,0xff,0xae,0x01,0x8e,0xff,0xc9,0x01,0x8f,0xff,0x7e,0x01,0x93,0xff,0x67,0x01,0x9a,0xff,0x87, -0x01,0x9b,0xff,0x65,0x01,0x9e,0xff,0x9e,0x01,0xa0,0xff,0x6a,0x01,0xa1,0xff,0xa9,0x01,0xa2,0xff,0x73,0x01,0xa3,0xff,0x5e,0x01,0xc0,0xff,0xa5,0x01,0xd8,0x00,0x0f,0x01,0xdd,0xff,0xe4,0x01,0xde,0xff,0xa0,0x01,0xe0,0xff,0x74,0x01,0xe3,0xff,0x80,0x01,0xee,0xff,0xb2,0x01,0xf7,0xff,0x7d,0x01,0xf9,0xff,0x80,0x01,0xfb,0xff,0x79, -0x02,0x0b,0xff,0x7d,0x02,0x0d,0xff,0x7f,0x02,0x27,0xff,0x98,0x02,0x2b,0xff,0xda,0x02,0x3a,0xff,0x81,0x02,0x3c,0xff,0x98,0x02,0x48,0xff,0x7d,0x02,0x4c,0xff,0xb3,0x02,0x52,0xff,0xa0,0x02,0x64,0xff,0x7c,0x02,0x66,0xff,0x7c,0x02,0x67,0xff,0x9a,0x02,0x68,0xff,0x6c,0x02,0x83,0xff,0xe6,0x02,0xab,0xff,0x6b,0x02,0xb0,0xff,0x92, -0x02,0xb2,0xff,0xad,0x02,0xb6,0xff,0x7b,0x02,0xb9,0x00,0x0f,0x02,0xba,0xff,0x91,0x02,0xbb,0xff,0xf2,0x03,0x71,0xff,0xaf,0x03,0x75,0xff,0xb9,0x03,0x79,0xff,0xb9,0x03,0x82,0xff,0xb9,0x03,0xdb,0xff,0xb9,0x03,0xeb,0xff,0xbc,0x03,0xec,0xff,0xf1,0x03,0xef,0xff,0xf1,0x03,0xf0,0xff,0xed,0x00,0x24,0x00,0x09,0xff,0xe2,0x00,0x0c, -0x00,0x14,0x00,0x0d,0xff,0xcf,0x00,0x40,0x00,0x12,0x00,0x49,0xff,0xea,0x00,0x55,0xff,0xd8,0x00,0x57,0xff,0xea,0x00,0x60,0x00,0x13,0x00,0x6d,0xff,0xae,0x00,0x7d,0xff,0xcd,0x00,0x88,0xff,0xa0,0x00,0xa8,0xff,0xc1,0x00,0xba,0xff,0xc0,0x01,0x80,0xff,0xd0,0x01,0x8c,0xff,0xea,0x01,0x8e,0xff,0xee,0x01,0x8f,0xff,0xc6,0x01,0x90, -0x00,0x0d,0x01,0x92,0xff,0xe9,0x01,0x93,0xff,0xd6,0x01,0x9a,0xff,0xe8,0x01,0x9b,0xff,0xba,0x01,0x9e,0xff,0xe9,0x01,0xa0,0xff,0xcb,0x01,0xa1,0xff,0xe8,0x01,0xa2,0xff,0xda,0x01,0xa3,0xff,0xc7,0x03,0x3d,0xff,0xd3,0x03,0x71,0xff,0xab,0x03,0x75,0xff,0xcd,0x03,0x79,0xff,0xcb,0x03,0x82,0xff,0xcb,0x03,0xdb,0xff,0xcb,0x03,0xec, -0xff,0xf3,0x03,0xef,0xff,0xf3,0x03,0xf0,0xff,0xef,0x00,0x01,0x01,0x95,0xff,0xe2,0x00,0x18,0x01,0x80,0xff,0xd4,0x01,0x8e,0xff,0xf0,0x01,0x92,0xff,0xed,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xe0,0x01,0xa0,0xff,0xe7,0x01,0xa2,0xff,0xe5,0x01,0xa3,0xff,0xee,0x01,0xc0,0x00,0x12,0x01,0xdd,0xff,0xe9,0x01,0xee,0xff,0xd7,0x02,0x4c, -0xff,0xd7,0x02,0x64,0xff,0xd3,0x02,0x67,0xff,0xd6,0x02,0x68,0xff,0xc5,0x02,0x83,0xff,0xe7,0x02,0xaf,0x00,0x0d,0x02,0xb1,0x00,0x0c,0x02,0xba,0xff,0xd6,0x02,0xbb,0xff,0xf2,0x03,0x75,0xff,0xe9,0x03,0x79,0xff,0xe7,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe9,0x00,0x01,0x01,0x9b,0xff,0xf2,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0, -0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x24,0x00,0x09,0xff,0xe2,0x00,0x0c,0x00,0x14,0x00,0x0d,0xff,0xcf,0x00,0x40,0x00,0x12,0x00,0x49,0xff,0xea,0x00,0x55,0xff,0xd8,0x00,0x57,0xff,0xea,0x00,0x60,0x00,0x13,0x00,0x6d,0xff,0xae, -0x00,0x7d,0xff,0xcd,0x00,0x88,0xff,0xa0,0x00,0xa8,0xff,0xc1,0x00,0xba,0xff,0xc0,0x01,0x80,0xff,0xd0,0x01,0x8c,0xff,0xea,0x01,0x8e,0xff,0xee,0x01,0x8f,0xff,0xc6,0x01,0x90,0x00,0x0d,0x01,0x92,0xff,0xe9,0x01,0x93,0xff,0xd6,0x01,0x9a,0xff,0xe8,0x01,0x9b,0xff,0xba,0x01,0x9e,0xff,0xe9,0x01,0xa0,0xff,0xcb,0x01,0xa1,0xff,0xe8, -0x01,0xa2,0xff,0xda,0x01,0xa3,0xff,0xc7,0x03,0x3d,0xff,0xd3,0x03,0x71,0xff,0xab,0x03,0x75,0xff,0xcd,0x03,0x79,0xff,0xcb,0x03,0x82,0xff,0xcb,0x03,0xdb,0xff,0xcb,0x03,0xec,0xff,0xf3,0x03,0xef,0xff,0xf3,0x03,0xf0,0xff,0xef,0x00,0x01,0x01,0x95,0x00,0x0e,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b, -0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x02,0x01,0x9e,0xff,0xed,0x01,0xa1,0xff,0xec,0x00,0x0a,0x01,0x8e,0xff,0xee,0x01,0x8f,0xff,0xe6,0x01,0x92,0xff,0xeb,0x01,0x93,0xff,0xe9,0x01,0x98,0xff,0xf0,0x01,0x9a,0xff,0xe7,0x01,0x9e,0xff,0xe3,0x01,0xa0,0xff,0xce,0x01,0xa2,0xff,0xd4, -0x01,0xa3,0xff,0xdb,0x00,0x05,0x01,0x92,0xff,0xec,0x01,0x95,0x00,0x0f,0x01,0x9a,0xff,0xea,0x01,0x9e,0xff,0xdc,0x01,0xa0,0xff,0xe7,0x00,0x06,0x00,0x49,0xff,0xe9,0x01,0x92,0xff,0xee,0x01,0x95,0x00,0x10,0x01,0x9a,0xff,0xec,0x01,0x9e,0xff,0xbe,0x01,0xa1,0xff,0xda,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a, -0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x01,0x01,0x95,0x00,0x0f,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x06,0x01,0x9e,0xff,0xea, -0x01,0xa1,0xff,0xe8,0x01,0xe0,0xff,0xee,0x01,0xee,0xff,0xeb,0x02,0x4c,0xff,0xec,0x02,0xba,0xff,0xec,0x00,0x01,0x01,0x9e,0x00,0x0b,0x00,0x0d,0x00,0x49,0x00,0x0c,0x01,0x8e,0xff,0xed,0x01,0x9a,0x00,0x0b,0x01,0x9e,0x00,0x0c,0x03,0x71,0xff,0xbf,0x03,0x75,0xff,0xee,0x03,0x79,0xff,0xec,0x03,0x82,0xff,0xed,0x03,0xdb,0xff,0xec, -0x03,0xeb,0xff,0xf5,0x03,0xec,0x00,0x0e,0x03,0xee,0x00,0x0d,0x03,0xf1,0x00,0x0d,0x00,0x01,0x01,0xa1,0xff,0xe1,0x00,0x06,0x00,0x49,0x00,0x0b,0x01,0x8e,0xff,0xee,0x01,0x8f,0xff,0xf2,0x01,0xa0,0xff,0xf1,0x01,0xa1,0x00,0x0f,0x01,0xa3,0xff,0xef,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d, -0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x0b, -0x01,0xd8,0xff,0xd4,0x01,0xee,0xff,0xc9,0x02,0x0d,0xff,0xe5,0x02,0x2b,0xff,0xe3,0x02,0x4c,0xff,0xc4,0x02,0x63,0xff,0xe1,0x02,0xaf,0xff,0xd4,0x02,0xb0,0xff,0xf5,0x02,0xb1,0xff,0xe7,0x02,0xb9,0xff,0xd2,0x02,0xba,0xff,0xc9,0x00,0x31,0x00,0x55,0xff,0x6d,0x00,0x5a,0xff,0x8c,0x00,0x6d,0xfd,0xbf,0x00,0x7d,0xfe,0x7d,0x00,0x88, -0xfe,0xbc,0x00,0xa8,0xff,0x2b,0x00,0xba,0xff,0x4b,0x01,0x80,0xff,0x61,0x01,0x8e,0xff,0x8f,0x01,0x8f,0xff,0x0f,0x01,0x93,0xfe,0xe8,0x01,0x9a,0xff,0x1f,0x01,0x9b,0xfe,0xe5,0x01,0x9e,0xff,0x46,0x01,0xa0,0xfe,0xed,0x01,0xa1,0xff,0x59,0x01,0xa2,0xfe,0xfd,0x01,0xa3,0xfe,0xd9,0x01,0xc0,0xff,0x52,0x01,0xd8,0x00,0x05,0x01,0xdd, -0xff,0xbd,0x01,0xde,0xff,0x49,0x01,0xe0,0xfe,0xfe,0x01,0xe3,0xff,0x13,0x01,0xee,0xff,0x68,0x01,0xf7,0xff,0x0e,0x01,0xf9,0xff,0x13,0x01,0xfb,0xff,0x07,0x02,0x0b,0xff,0x0e,0x02,0x0d,0xff,0x11,0x02,0x27,0xff,0x3c,0x02,0x2b,0xff,0xac,0x02,0x3a,0xff,0x15,0x02,0x3c,0xff,0x3c,0x02,0x48,0xff,0x0e,0x02,0x4c,0xff,0x6a,0x02,0x52, -0xff,0x49,0x02,0x64,0xff,0x0c,0x02,0x66,0xff,0x0c,0x02,0x67,0xff,0x3f,0x02,0x68,0xfe,0xf1,0x02,0x83,0xff,0xc0,0x02,0xab,0xfe,0xef,0x02,0xb0,0xff,0x31,0x02,0xb2,0xff,0x5f,0x02,0xb6,0xff,0x0a,0x02,0xb9,0x00,0x05,0x02,0xba,0xff,0x30,0x02,0xbb,0xff,0xd5,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4, -0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x09,0x01,0xd8, -0xff,0xc3,0x01,0xee,0xff,0xcf,0x02,0x4c,0xff,0xce,0x02,0x63,0xff,0xe7,0x02,0x67,0xff,0xdf,0x02,0xaf,0xff,0xd1,0x02,0xb1,0xff,0xec,0x02,0xb9,0xff,0xa0,0x02,0xba,0xff,0xd1,0x00,0x09,0x01,0xd8,0xff,0xc3,0x01,0xee,0xff,0xcf,0x02,0x4c,0xff,0xce,0x02,0x63,0xff,0xe7,0x02,0x67,0xff,0xdf,0x02,0xaf,0xff,0xd1,0x02,0xb1,0xff,0xec, -0x02,0xb9,0xff,0xa0,0x02,0xba,0xff,0xd1,0x00,0x08,0x01,0xd8,0xff,0xc9,0x01,0xee,0xff,0xdf,0x02,0x0d,0xff,0xed,0x02,0x2b,0xff,0xeb,0x02,0x4c,0xff,0xdf,0x02,0x67,0xff,0xe9,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xe0,0x00,0x13,0x00,0x5a,0xff,0xc1,0x01,0x80,0xff,0xc5,0x01,0x9e,0xff,0xb4,0x01,0xdd,0xff,0xd7,0x01,0xee,0xff,0xb9, -0x02,0x0d,0xff,0xb2,0x02,0x27,0xff,0xd2,0x02,0x2b,0xff,0xc8,0x02,0x4c,0xff,0xa0,0x02,0x64,0xff,0xc5,0x02,0x83,0xff,0xe4,0x02,0xb0,0xff,0xcc,0x02,0xb2,0xff,0xcc,0x02,0xba,0xff,0xcb,0x02,0xbb,0xff,0xef,0x03,0x75,0xff,0xe8,0x03,0x79,0xff,0xe6,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe7,0x00,0x13,0x01,0xc0,0xff,0xae,0x01,0xd8, -0x00,0x12,0x01,0xde,0xff,0xe0,0x01,0xe0,0xff,0xad,0x01,0xe3,0xff,0xd6,0x01,0xf7,0xff,0xdf,0x01,0xfb,0xff,0xd2,0x02,0x0b,0xff,0xe0,0x02,0x27,0xff,0xce,0x02,0x3a,0xff,0xdd,0x02,0x3c,0xff,0xe2,0x02,0x48,0xff,0xe0,0x02,0x52,0xff,0xe0,0x02,0x64,0xff,0xe9,0x02,0x66,0xff,0xde,0x02,0x68,0xff,0xda,0x02,0xab,0xff,0xbd,0x02,0xb6, -0xff,0xdf,0x02,0xb9,0x00,0x11,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82, -0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79, -0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x08,0x01,0xd8,0xff,0xe6,0x01,0xee,0xff,0xd0,0x02,0x4c,0xff,0xce,0x02,0x63,0xff,0xe8,0x02,0xaf,0xff,0xe7,0x02,0xb1,0xff,0xed,0x02,0xb9,0xff,0xe6,0x02,0xba,0xff,0xd0,0x00,0x02,0x02,0x16, -0x00,0x0b,0x02,0xb9,0xff,0xe6,0x00,0x31,0x00,0x55,0xff,0x6d,0x00,0x5a,0xff,0x8c,0x00,0x6d,0xfd,0xbf,0x00,0x7d,0xfe,0x7d,0x00,0x88,0xfe,0xbc,0x00,0xa8,0xff,0x2b,0x00,0xba,0xff,0x4b,0x01,0x80,0xff,0x61,0x01,0x8e,0xff,0x8f,0x01,0x8f,0xff,0x0f,0x01,0x93,0xfe,0xe8,0x01,0x9a,0xff,0x1f,0x01,0x9b,0xfe,0xe5,0x01,0x9e,0xff,0x46, -0x01,0xa0,0xfe,0xed,0x01,0xa1,0xff,0x59,0x01,0xa2,0xfe,0xfd,0x01,0xa3,0xfe,0xd9,0x01,0xc0,0xff,0x52,0x01,0xd8,0x00,0x05,0x01,0xdd,0xff,0xbd,0x01,0xde,0xff,0x49,0x01,0xe0,0xfe,0xfe,0x01,0xe3,0xff,0x13,0x01,0xee,0xff,0x68,0x01,0xf7,0xff,0x0e,0x01,0xf9,0xff,0x13,0x01,0xfb,0xff,0x07,0x02,0x0b,0xff,0x0e,0x02,0x0d,0xff,0x11, -0x02,0x27,0xff,0x3c,0x02,0x2b,0xff,0xac,0x02,0x3a,0xff,0x15,0x02,0x3c,0xff,0x3c,0x02,0x48,0xff,0x0e,0x02,0x4c,0xff,0x6a,0x02,0x52,0xff,0x49,0x02,0x64,0xff,0x0c,0x02,0x66,0xff,0x0c,0x02,0x67,0xff,0x3f,0x02,0x68,0xfe,0xf1,0x02,0x83,0xff,0xc0,0x02,0xab,0xfe,0xef,0x02,0xb0,0xff,0x31,0x02,0xb2,0xff,0x5f,0x02,0xb6,0xff,0x0a, -0x02,0xb9,0x00,0x05,0x02,0xba,0xff,0x30,0x02,0xbb,0xff,0xd5,0x00,0x0b,0x01,0xc0,0x00,0x14,0x01,0xd8,0xff,0xe0,0x01,0xe0,0x00,0x13,0x02,0x63,0xff,0xe1,0x02,0x64,0xff,0xe0,0x02,0x68,0xff,0xe1,0x02,0x83,0xff,0xe9,0x02,0xaf,0xff,0xdf,0x02,0xb1,0xff,0xde,0x02,0xb9,0xff,0xdf,0x02,0xbb,0xff,0xf2,0x00,0x05,0x00,0x49,0xff,0xee, -0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x18,0x01,0x80,0xff,0xd4,0x01,0x8e,0xff,0xf0,0x01,0x92,0xff,0xed,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xe0,0x01,0xa0,0xff,0xe7,0x01,0xa2,0xff,0xe5,0x01,0xa3,0xff,0xee,0x01,0xc0,0x00,0x12,0x01,0xdd,0xff,0xe9,0x01,0xee,0xff,0xd7,0x02,0x4c, -0xff,0xd7,0x02,0x64,0xff,0xd3,0x02,0x67,0xff,0xd6,0x02,0x68,0xff,0xc5,0x02,0x83,0xff,0xe7,0x02,0xaf,0x00,0x0d,0x02,0xb1,0x00,0x0c,0x02,0xba,0xff,0xd6,0x02,0xbb,0xff,0xf2,0x03,0x75,0xff,0xe9,0x03,0x79,0xff,0xe7,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe9,0x00,0x05,0x00,0x1a,0xff,0xf2,0x01,0xd8,0xff,0xf1,0x02,0xaf,0xff,0xf2, -0x02,0xb1,0xff,0xf2,0x02,0xb9,0xff,0xf2,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x13,0x00,0x5a,0xff,0xc1,0x01,0x80,0xff,0xc5,0x01,0x9e,0xff,0xb4,0x01,0xdd,0xff,0xd7,0x01,0xee,0xff,0xb9, -0x02,0x0d,0xff,0xb2,0x02,0x27,0xff,0xd2,0x02,0x2b,0xff,0xc8,0x02,0x4c,0xff,0xa0,0x02,0x64,0xff,0xc5,0x02,0x83,0xff,0xe4,0x02,0xb0,0xff,0xcc,0x02,0xb2,0xff,0xcc,0x02,0xba,0xff,0xcb,0x02,0xbb,0xff,0xef,0x03,0x75,0xff,0xe8,0x03,0x79,0xff,0xe6,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe7,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0, -0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0, -0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed, -0x03,0xf0,0xff,0xf5,0x00,0x09,0x00,0x57,0x00,0x0e,0x00,0x88,0xff,0x9f,0x01,0x8e,0xff,0xf5,0x01,0x95,0xff,0xde,0x01,0x9b,0xff,0xe5,0x01,0xc0,0xff,0xa8,0x01,0xe0,0xff,0xca,0x02,0xab,0xff,0xe3,0x03,0x71,0xff,0xc6,0x00,0x04,0x00,0x0c,0xff,0xe6,0x00,0x40,0xff,0xf4,0x00,0x60,0xff,0xef,0x02,0x68,0xff,0xed,0x00,0x3a,0x00,0x55, -0xff,0xb5,0x00,0x5a,0xff,0xc7,0x00,0x6d,0xfe,0xb8,0x00,0x7d,0xff,0x28,0x00,0x88,0xff,0x4d,0x00,0xa8,0xff,0x8e,0x00,0xba,0xff,0xa1,0x01,0x80,0xff,0xae,0x01,0x8e,0xff,0xc9,0x01,0x8f,0xff,0x7e,0x01,0x93,0xff,0x67,0x01,0x9a,0xff,0x87,0x01,0x9b,0xff,0x65,0x01,0x9e,0xff,0x9e,0x01,0xa0,0xff,0x6a,0x01,0xa1,0xff,0xa9,0x01,0xa2, -0xff,0x73,0x01,0xa3,0xff,0x5e,0x01,0xc0,0xff,0xa5,0x01,0xd8,0x00,0x0f,0x01,0xdd,0xff,0xe4,0x01,0xde,0xff,0xa0,0x01,0xe0,0xff,0x74,0x01,0xe3,0xff,0x80,0x01,0xee,0xff,0xb2,0x01,0xf7,0xff,0x7d,0x01,0xf9,0xff,0x80,0x01,0xfb,0xff,0x79,0x02,0x0b,0xff,0x7d,0x02,0x0d,0xff,0x7f,0x02,0x27,0xff,0x98,0x02,0x2b,0xff,0xda,0x02,0x3a, -0xff,0x81,0x02,0x3c,0xff,0x98,0x02,0x48,0xff,0x7d,0x02,0x4c,0xff,0xb3,0x02,0x52,0xff,0xa0,0x02,0x64,0xff,0x7c,0x02,0x66,0xff,0x7c,0x02,0x67,0xff,0x9a,0x02,0x68,0xff,0x6c,0x02,0x83,0xff,0xe6,0x02,0xab,0xff,0x6b,0x02,0xb0,0xff,0x92,0x02,0xb2,0xff,0xad,0x02,0xb6,0xff,0x7b,0x02,0xb9,0x00,0x0f,0x02,0xba,0xff,0x91,0x02,0xbb, -0xff,0xf2,0x03,0x71,0xff,0xaf,0x03,0x75,0xff,0xb9,0x03,0x79,0xff,0xb9,0x03,0x82,0xff,0xb9,0x03,0xdb,0xff,0xb9,0x03,0xeb,0xff,0xbc,0x03,0xec,0xff,0xf1,0x03,0xef,0xff,0xf1,0x03,0xf0,0xff,0xed,0x00,0x13,0x01,0xc0,0xff,0xae,0x01,0xd8,0x00,0x12,0x01,0xde,0xff,0xe0,0x01,0xe0,0xff,0xad,0x01,0xe3,0xff,0xd6,0x01,0xf7,0xff,0xdf, -0x01,0xfb,0xff,0xd2,0x02,0x0b,0xff,0xe0,0x02,0x27,0xff,0xce,0x02,0x3a,0xff,0xdd,0x02,0x3c,0xff,0xe2,0x02,0x48,0xff,0xe0,0x02,0x52,0xff,0xe0,0x02,0x64,0xff,0xe9,0x02,0x66,0xff,0xde,0x02,0x68,0xff,0xda,0x02,0xab,0xff,0xbd,0x02,0xb6,0xff,0xdf,0x02,0xb9,0x00,0x11,0x00,0x18,0x01,0x80,0xff,0xd4,0x01,0x8e,0xff,0xf0,0x01,0x92, -0xff,0xed,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xe0,0x01,0xa0,0xff,0xe7,0x01,0xa2,0xff,0xe5,0x01,0xa3,0xff,0xee,0x01,0xc0,0x00,0x12,0x01,0xdd,0xff,0xe9,0x01,0xee,0xff,0xd7,0x02,0x4c,0xff,0xd7,0x02,0x64,0xff,0xd3,0x02,0x67,0xff,0xd6,0x02,0x68,0xff,0xc5,0x02,0x83,0xff,0xe7,0x02,0xaf,0x00,0x0d,0x02,0xb1,0x00,0x0c,0x02,0xba, -0xff,0xd6,0x02,0xbb,0xff,0xf2,0x03,0x75,0xff,0xe9,0x03,0x79,0xff,0xe7,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe9,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0, -0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x0c,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xe6,0x01,0xd9,0xff,0xf4,0x01,0xe0,0x00,0x12,0x01,0xee,0xff,0xe7,0x02,0x4c,0xff,0xe7,0x02,0x63,0xff,0xe5,0x02,0x64,0xff,0xe8,0x02,0xaf,0xff,0xe6, -0x02,0xb1,0xff,0xe6,0x02,0xb9,0xff,0xe6,0x02,0xba,0xff,0xe7,0x00,0x09,0x01,0xd8,0xff,0xc3,0x01,0xee,0xff,0xcf,0x02,0x4c,0xff,0xce,0x02,0x63,0xff,0xe7,0x02,0x67,0xff,0xdf,0x02,0xaf,0xff,0xd1,0x02,0xb1,0xff,0xec,0x02,0xb9,0xff,0xa0,0x02,0xba,0xff,0xd1,0x00,0x09,0x01,0xd8,0xff,0xc3,0x01,0xee,0xff,0xcf,0x02,0x4c,0xff,0xce, -0x02,0x63,0xff,0xe7,0x02,0x67,0xff,0xdf,0x02,0xaf,0xff,0xd1,0x02,0xb1,0xff,0xec,0x02,0xb9,0xff,0xa0,0x02,0xba,0xff,0xd1,0x00,0x02,0x01,0xc0,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x02,0x01,0xc0,0xff,0xe1,0x01,0xe0,0xff,0xe4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0, -0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x06,0x01,0xe0,0xff,0xee,0x01,0xee,0xff,0xee,0x02,0x0d,0xff,0xf4,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xef,0x02,0xba,0xff,0xef,0x00,0x04,0x01,0xee,0xff,0xf4,0x02,0x0d,0xff,0xf5,0x02,0x4c,0xff,0xf5,0x02,0xba,0xff,0xf5,0x00,0x02,0x01,0xe0,0xff,0xc9,0x02,0x27,0xff,0xee, -0x00,0x05,0x01,0xe0,0x00,0x14,0x01,0xee,0xff,0xed,0x02,0x4c,0xff,0xed,0x02,0x64,0xff,0xed,0x02,0xba,0xff,0xed,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x01,0x02,0x27,0xff,0xf1,0x00,0x05,0x02,0x27,0xff,0xeb,0x03,0x75,0xff,0xeb,0x03,0x79,0xff,0xe9,0x03,0x82,0xff,0xeb,0x03,0xdb,0xff,0xeb,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1, -0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x06,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xe8,0x01,0xe0,0xff,0xee,0x01,0xee,0xff,0xeb,0x02,0x4c,0xff,0xec,0x02,0xba,0xff,0xec,0x00,0x0f,0x00,0x49,0x00,0x0d,0x01,0xe0,0xff,0xc8,0x02,0x27, -0xff,0xec,0x02,0x2b,0x00,0x0c,0x02,0xb0,0x00,0x0b,0x02,0xb2,0x00,0x0b,0x03,0x71,0xff,0xbf,0x03,0x75,0xff,0xee,0x03,0x79,0xff,0xec,0x03,0x82,0xff,0xed,0x03,0xdb,0xff,0xec,0x03,0xeb,0xff,0xf5,0x03,0xec,0x00,0x0e,0x03,0xee,0x00,0x0d,0x03,0xf1,0x00,0x0d,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b, -0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x06,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xe8,0x01,0xe0,0xff,0xee,0x01,0xee,0xff,0xeb,0x02,0x4c,0xff,0xec,0x02,0xba,0xff,0xec,0x00,0x01,0x02,0x27,0xff,0xf1,0x00,0x06,0x01,0xe0,0x00,0x14,0x01,0xee,0xff,0xf0,0x01,0xfb,0x00,0x0c,0x02,0x4c, -0xff,0xf0,0x02,0x64,0xff,0xf0,0x02,0xba,0xff,0xf0,0x00,0x05,0x01,0xe0,0x00,0x12,0x01,0xee,0xff,0xe3,0x02,0x4c,0xff,0xe2,0x02,0x64,0xff,0xe3,0x02,0xba,0xff,0xe3,0x00,0x08,0x01,0xee,0xff,0xba,0x02,0x0d,0xff,0xd9,0x02,0x2b,0xff,0xdb,0x02,0x4c,0xff,0xa0,0x02,0x64,0xff,0xed,0x02,0xb0,0xff,0xf0,0x02,0xb2,0xff,0xf2,0x02,0xba, -0xff,0xba,0x00,0x08,0x01,0xee,0xff,0xba,0x02,0x0d,0xff,0xd9,0x02,0x2b,0xff,0xdb,0x02,0x4c,0xff,0xa0,0x02,0x64,0xff,0xed,0x02,0xb0,0xff,0xf0,0x02,0xb2,0xff,0xf2,0x02,0xba,0xff,0xba,0x00,0x06,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xe8,0x01,0xe0,0xff,0xee,0x01,0xee,0xff,0xeb,0x02,0x4c,0xff,0xec,0x02,0xba,0xff,0xec,0x00,0x01, -0x01,0xe0,0xff,0xef,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x02,0x01,0xe0,0xff,0xc9,0x02,0x27,0xff,0xee,0x00,0x08,0x01,0xee,0xff,0xba,0x02,0x0d,0xff,0xd9,0x02,0x2b,0xff,0xdb,0x02,0x4c,0xff,0xa0,0x02,0x64,0xff,0xed,0x02,0xb0,0xff,0xf0,0x02,0xb2,0xff,0xf2,0x02,0xba,0xff,0xba,0x00,0x08,0x01,0xee, -0xff,0xba,0x02,0x0d,0xff,0xd9,0x02,0x2b,0xff,0xdb,0x02,0x4c,0xff,0xa0,0x02,0x64,0xff,0xed,0x02,0xb0,0xff,0xf0,0x02,0xb2,0xff,0xf2,0x02,0xba,0xff,0xba,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x09,0x01,0xd8, -0xff,0xc3,0x01,0xee,0xff,0xcf,0x02,0x4c,0xff,0xce,0x02,0x63,0xff,0xe7,0x02,0x67,0xff,0xdf,0x02,0xaf,0xff,0xd1,0x02,0xb1,0xff,0xec,0x02,0xb9,0xff,0xa0,0x02,0xba,0xff,0xd1,0x00,0x08,0x01,0xee,0xff,0xba,0x02,0x0d,0xff,0xd9,0x02,0x2b,0xff,0xdb,0x02,0x4c,0xff,0xa0,0x02,0x64,0xff,0xed,0x02,0xb0,0xff,0xf0,0x02,0xb2,0xff,0xf2, -0x02,0xba,0xff,0xba,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67, -0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea, -0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x09,0x00,0x0c,0x00,0x14,0x00,0x40,0x00,0x11,0x00,0x55,0xff,0xe2,0x00,0x60,0x00,0x13,0x03,0x71,0xff,0xb4,0x03,0x75,0xff,0xd9,0x03,0x79,0xff,0xd9,0x03,0x82,0xff,0xd9,0x03,0xdb,0xff,0xd9,0x00,0x07, -0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x09,0x00,0x0c,0x00,0x14,0x00,0x40,0x00,0x11,0x00,0x55,0xff,0xe2,0x00,0x60,0x00,0x13,0x03,0x71,0xff,0xb4,0x03,0x75,0xff,0xd9,0x03,0x79,0xff,0xd9,0x03,0x82,0xff,0xd9,0x03,0xdb, -0xff,0xd9,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x06,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xe8,0x01,0xe0,0xff,0xee,0x01,0xee,0xff,0xeb,0x02,0x4c,0xff,0xec,0x02,0xba,0xff,0xec,0x00,0x31,0x00,0x55,0xff,0x6d, -0x00,0x5a,0xff,0x8c,0x00,0x6d,0xfd,0xbf,0x00,0x7d,0xfe,0x7d,0x00,0x88,0xfe,0xbc,0x00,0xa8,0xff,0x2b,0x00,0xba,0xff,0x4b,0x01,0x80,0xff,0x61,0x01,0x8e,0xff,0x8f,0x01,0x8f,0xff,0x0f,0x01,0x93,0xfe,0xe8,0x01,0x9a,0xff,0x1f,0x01,0x9b,0xfe,0xe5,0x01,0x9e,0xff,0x46,0x01,0xa0,0xfe,0xed,0x01,0xa1,0xff,0x59,0x01,0xa2,0xfe,0xfd, -0x01,0xa3,0xfe,0xd9,0x01,0xc0,0xff,0x52,0x01,0xd8,0x00,0x05,0x01,0xdd,0xff,0xbd,0x01,0xde,0xff,0x49,0x01,0xe0,0xfe,0xfe,0x01,0xe3,0xff,0x13,0x01,0xee,0xff,0x68,0x01,0xf7,0xff,0x0e,0x01,0xf9,0xff,0x13,0x01,0xfb,0xff,0x07,0x02,0x0b,0xff,0x0e,0x02,0x0d,0xff,0x11,0x02,0x27,0xff,0x3c,0x02,0x2b,0xff,0xac,0x02,0x3a,0xff,0x15, -0x02,0x3c,0xff,0x3c,0x02,0x48,0xff,0x0e,0x02,0x4c,0xff,0x6a,0x02,0x52,0xff,0x49,0x02,0x64,0xff,0x0c,0x02,0x66,0xff,0x0c,0x02,0x67,0xff,0x3f,0x02,0x68,0xfe,0xf1,0x02,0x83,0xff,0xc0,0x02,0xab,0xfe,0xef,0x02,0xb0,0xff,0x31,0x02,0xb2,0xff,0x5f,0x02,0xb6,0xff,0x0a,0x02,0xb9,0x00,0x05,0x02,0xba,0xff,0x30,0x02,0xbb,0xff,0xd5, -0x00,0x02,0x01,0xe0,0xff,0xc9,0x02,0x27,0xff,0xee,0x00,0x31,0x00,0x55,0xff,0x6d,0x00,0x5a,0xff,0x8c,0x00,0x6d,0xfd,0xbf,0x00,0x7d,0xfe,0x7d,0x00,0x88,0xfe,0xbc,0x00,0xa8,0xff,0x2b,0x00,0xba,0xff,0x4b,0x01,0x80,0xff,0x61,0x01,0x8e,0xff,0x8f,0x01,0x8f,0xff,0x0f,0x01,0x93,0xfe,0xe8,0x01,0x9a,0xff,0x1f,0x01,0x9b,0xfe,0xe5, -0x01,0x9e,0xff,0x46,0x01,0xa0,0xfe,0xed,0x01,0xa1,0xff,0x59,0x01,0xa2,0xfe,0xfd,0x01,0xa3,0xfe,0xd9,0x01,0xc0,0xff,0x52,0x01,0xd8,0x00,0x05,0x01,0xdd,0xff,0xbd,0x01,0xde,0xff,0x49,0x01,0xe0,0xfe,0xfe,0x01,0xe3,0xff,0x13,0x01,0xee,0xff,0x68,0x01,0xf7,0xff,0x0e,0x01,0xf9,0xff,0x13,0x01,0xfb,0xff,0x07,0x02,0x0b,0xff,0x0e, -0x02,0x0d,0xff,0x11,0x02,0x27,0xff,0x3c,0x02,0x2b,0xff,0xac,0x02,0x3a,0xff,0x15,0x02,0x3c,0xff,0x3c,0x02,0x48,0xff,0x0e,0x02,0x4c,0xff,0x6a,0x02,0x52,0xff,0x49,0x02,0x64,0xff,0x0c,0x02,0x66,0xff,0x0c,0x02,0x67,0xff,0x3f,0x02,0x68,0xfe,0xf1,0x02,0x83,0xff,0xc0,0x02,0xab,0xfe,0xef,0x02,0xb0,0xff,0x31,0x02,0xb2,0xff,0x5f, -0x02,0xb6,0xff,0x0a,0x02,0xb9,0x00,0x05,0x02,0xba,0xff,0x30,0x02,0xbb,0xff,0xd5,0x00,0x18,0x01,0x80,0xff,0xd4,0x01,0x8e,0xff,0xf0,0x01,0x92,0xff,0xed,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xe0,0x01,0xa0,0xff,0xe7,0x01,0xa2,0xff,0xe5,0x01,0xa3,0xff,0xee,0x01,0xc0,0x00,0x12,0x01,0xdd,0xff,0xe9,0x01,0xee,0xff,0xd7,0x02,0x4c, -0xff,0xd7,0x02,0x64,0xff,0xd3,0x02,0x67,0xff,0xd6,0x02,0x68,0xff,0xc5,0x02,0x83,0xff,0xe7,0x02,0xaf,0x00,0x0d,0x02,0xb1,0x00,0x0c,0x02,0xba,0xff,0xd6,0x02,0xbb,0xff,0xf2,0x03,0x75,0xff,0xe9,0x03,0x79,0xff,0xe7,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe9,0x00,0x01,0x02,0x27,0xff,0xf1,0x00,0x13,0x00,0x5a,0xff,0xc1,0x01,0x80, -0xff,0xc5,0x01,0x9e,0xff,0xb4,0x01,0xdd,0xff,0xd7,0x01,0xee,0xff,0xb9,0x02,0x0d,0xff,0xb2,0x02,0x27,0xff,0xd2,0x02,0x2b,0xff,0xc8,0x02,0x4c,0xff,0xa0,0x02,0x64,0xff,0xc5,0x02,0x83,0xff,0xe4,0x02,0xb0,0xff,0xcc,0x02,0xb2,0xff,0xcc,0x02,0xba,0xff,0xcb,0x02,0xbb,0xff,0xef,0x03,0x75,0xff,0xe8,0x03,0x79,0xff,0xe6,0x03,0x82, -0xff,0xe7,0x03,0xdb,0xff,0xe7,0x00,0x13,0x00,0x5a,0xff,0xc1,0x01,0x80,0xff,0xc5,0x01,0x9e,0xff,0xb4,0x01,0xdd,0xff,0xd7,0x01,0xee,0xff,0xb9,0x02,0x0d,0xff,0xb2,0x02,0x27,0xff,0xd2,0x02,0x2b,0xff,0xc8,0x02,0x4c,0xff,0xa0,0x02,0x64,0xff,0xc5,0x02,0x83,0xff,0xe4,0x02,0xb0,0xff,0xcc,0x02,0xb2,0xff,0xcc,0x02,0xba,0xff,0xcb, -0x02,0xbb,0xff,0xef,0x03,0x75,0xff,0xe8,0x03,0x79,0xff,0xe6,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe7,0x00,0x13,0x00,0x5a,0xff,0xc1,0x01,0x80,0xff,0xc5,0x01,0x9e,0xff,0xb4,0x01,0xdd,0xff,0xd7,0x01,0xee,0xff,0xb9,0x02,0x0d,0xff,0xb2,0x02,0x27,0xff,0xd2,0x02,0x2b,0xff,0xc8,0x02,0x4c,0xff,0xa0,0x02,0x64,0xff,0xc5,0x02,0x83, -0xff,0xe4,0x02,0xb0,0xff,0xcc,0x02,0xb2,0xff,0xcc,0x02,0xba,0xff,0xcb,0x02,0xbb,0xff,0xef,0x03,0x75,0xff,0xe8,0x03,0x79,0xff,0xe6,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe7,0x00,0x13,0x00,0x5a,0xff,0xc1,0x01,0x80,0xff,0xc5,0x01,0x9e,0xff,0xb4,0x01,0xdd,0xff,0xd7,0x01,0xee,0xff,0xb9,0x02,0x0d,0xff,0xb2,0x02,0x27,0xff,0xd2, -0x02,0x2b,0xff,0xc8,0x02,0x4c,0xff,0xa0,0x02,0x64,0xff,0xc5,0x02,0x83,0xff,0xe4,0x02,0xb0,0xff,0xcc,0x02,0xb2,0xff,0xcc,0x02,0xba,0xff,0xcb,0x02,0xbb,0xff,0xef,0x03,0x75,0xff,0xe8,0x03,0x79,0xff,0xe6,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe7,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64, -0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x04,0x00,0x0c,0xff,0xe6,0x00,0x40,0xff,0xf4,0x00,0x60,0xff,0xef,0x02,0x68,0xff,0xed,0x00,0x3a,0x00,0x55,0xff,0xb5,0x00,0x5a,0xff,0xc7,0x00,0x6d,0xfe,0xb8,0x00,0x7d,0xff,0x28,0x00,0x88,0xff,0x4d,0x00,0xa8,0xff,0x8e,0x00,0xba, -0xff,0xa1,0x01,0x80,0xff,0xae,0x01,0x8e,0xff,0xc9,0x01,0x8f,0xff,0x7e,0x01,0x93,0xff,0x67,0x01,0x9a,0xff,0x87,0x01,0x9b,0xff,0x65,0x01,0x9e,0xff,0x9e,0x01,0xa0,0xff,0x6a,0x01,0xa1,0xff,0xa9,0x01,0xa2,0xff,0x73,0x01,0xa3,0xff,0x5e,0x01,0xc0,0xff,0xa5,0x01,0xd8,0x00,0x0f,0x01,0xdd,0xff,0xe4,0x01,0xde,0xff,0xa0,0x01,0xe0, -0xff,0x74,0x01,0xe3,0xff,0x80,0x01,0xee,0xff,0xb2,0x01,0xf7,0xff,0x7d,0x01,0xf9,0xff,0x80,0x01,0xfb,0xff,0x79,0x02,0x0b,0xff,0x7d,0x02,0x0d,0xff,0x7f,0x02,0x27,0xff,0x98,0x02,0x2b,0xff,0xda,0x02,0x3a,0xff,0x81,0x02,0x3c,0xff,0x98,0x02,0x48,0xff,0x7d,0x02,0x4c,0xff,0xb3,0x02,0x52,0xff,0xa0,0x02,0x64,0xff,0x7c,0x02,0x66, -0xff,0x7c,0x02,0x67,0xff,0x9a,0x02,0x68,0xff,0x6c,0x02,0x83,0xff,0xe6,0x02,0xab,0xff,0x6b,0x02,0xb0,0xff,0x92,0x02,0xb2,0xff,0xad,0x02,0xb6,0xff,0x7b,0x02,0xb9,0x00,0x0f,0x02,0xba,0xff,0x91,0x02,0xbb,0xff,0xf2,0x03,0x71,0xff,0xaf,0x03,0x75,0xff,0xb9,0x03,0x79,0xff,0xb9,0x03,0x82,0xff,0xb9,0x03,0xdb,0xff,0xb9,0x03,0xeb, -0xff,0xbc,0x03,0xec,0xff,0xf1,0x03,0xef,0xff,0xf1,0x03,0xf0,0xff,0xed,0x00,0x24,0x00,0x09,0xff,0xe2,0x00,0x0c,0x00,0x14,0x00,0x0d,0xff,0xcf,0x00,0x40,0x00,0x12,0x00,0x49,0xff,0xea,0x00,0x55,0xff,0xd8,0x00,0x57,0xff,0xea,0x00,0x60,0x00,0x13,0x00,0x6d,0xff,0xae,0x00,0x7d,0xff,0xcd,0x00,0x88,0xff,0xa0,0x00,0xa8,0xff,0xc1, -0x00,0xba,0xff,0xc0,0x01,0x80,0xff,0xd0,0x01,0x8c,0xff,0xea,0x01,0x8e,0xff,0xee,0x01,0x8f,0xff,0xc6,0x01,0x90,0x00,0x0d,0x01,0x92,0xff,0xe9,0x01,0x93,0xff,0xd6,0x01,0x9a,0xff,0xe8,0x01,0x9b,0xff,0xba,0x01,0x9e,0xff,0xe9,0x01,0xa0,0xff,0xcb,0x01,0xa1,0xff,0xe8,0x01,0xa2,0xff,0xda,0x01,0xa3,0xff,0xc7,0x03,0x3d,0xff,0xd3, -0x03,0x71,0xff,0xab,0x03,0x75,0xff,0xcd,0x03,0x79,0xff,0xcb,0x03,0x82,0xff,0xcb,0x03,0xdb,0xff,0xcb,0x03,0xec,0xff,0xf3,0x03,0xef,0xff,0xf3,0x03,0xf0,0xff,0xef,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x24, -0x00,0x09,0xff,0xe2,0x00,0x0c,0x00,0x14,0x00,0x0d,0xff,0xcf,0x00,0x40,0x00,0x12,0x00,0x49,0xff,0xea,0x00,0x55,0xff,0xd8,0x00,0x57,0xff,0xea,0x00,0x60,0x00,0x13,0x00,0x6d,0xff,0xae,0x00,0x7d,0xff,0xcd,0x00,0x88,0xff,0xa0,0x00,0xa8,0xff,0xc1,0x00,0xba,0xff,0xc0,0x01,0x80,0xff,0xd0,0x01,0x8c,0xff,0xea,0x01,0x8e,0xff,0xee, -0x01,0x8f,0xff,0xc6,0x01,0x90,0x00,0x0d,0x01,0x92,0xff,0xe9,0x01,0x93,0xff,0xd6,0x01,0x9a,0xff,0xe8,0x01,0x9b,0xff,0xba,0x01,0x9e,0xff,0xe9,0x01,0xa0,0xff,0xcb,0x01,0xa1,0xff,0xe8,0x01,0xa2,0xff,0xda,0x01,0xa3,0xff,0xc7,0x03,0x3d,0xff,0xd3,0x03,0x71,0xff,0xab,0x03,0x75,0xff,0xcd,0x03,0x79,0xff,0xcb,0x03,0x82,0xff,0xcb, -0x03,0xdb,0xff,0xcb,0x03,0xec,0xff,0xf3,0x03,0xef,0xff,0xf3,0x03,0xf0,0xff,0xef,0x00,0x18,0x01,0x80,0xff,0xd4,0x01,0x8e,0xff,0xf0,0x01,0x92,0xff,0xed,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xe0,0x01,0xa0,0xff,0xe7,0x01,0xa2,0xff,0xe5,0x01,0xa3,0xff,0xee,0x01,0xc0,0x00,0x12,0x01,0xdd,0xff,0xe9,0x01,0xee,0xff,0xd7,0x02,0x4c, -0xff,0xd7,0x02,0x64,0xff,0xd3,0x02,0x67,0xff,0xd6,0x02,0x68,0xff,0xc5,0x02,0x83,0xff,0xe7,0x02,0xaf,0x00,0x0d,0x02,0xb1,0x00,0x0c,0x02,0xba,0xff,0xd6,0x02,0xbb,0xff,0xf2,0x03,0x75,0xff,0xe9,0x03,0x79,0xff,0xe7,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe9,0x00,0x01,0x02,0x27,0xff,0xf1,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0, -0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x18,0x01,0x80,0xff,0xd4,0x01,0x8e,0xff,0xf0,0x01,0x92,0xff,0xed,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xe0,0x01,0xa0,0xff,0xe7,0x01,0xa2,0xff,0xe5,0x01,0xa3,0xff,0xee,0x01,0xc0,0x00,0x12, -0x01,0xdd,0xff,0xe9,0x01,0xee,0xff,0xd7,0x02,0x4c,0xff,0xd7,0x02,0x64,0xff,0xd3,0x02,0x67,0xff,0xd6,0x02,0x68,0xff,0xc5,0x02,0x83,0xff,0xe7,0x02,0xaf,0x00,0x0d,0x02,0xb1,0x00,0x0c,0x02,0xba,0xff,0xd6,0x02,0xbb,0xff,0xf2,0x03,0x75,0xff,0xe9,0x03,0x79,0xff,0xe7,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe9,0x00,0x01,0x02,0x27, -0xff,0xf1,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1, -0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82, -0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79, -0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57, -0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf, -0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3, -0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x18,0x01,0x80,0xff,0xd4,0x01,0x8e,0xff,0xf0,0x01,0x92,0xff,0xed,0x01,0x95, -0x00,0x11,0x01,0x9e,0xff,0xe0,0x01,0xa0,0xff,0xe7,0x01,0xa2,0xff,0xe5,0x01,0xa3,0xff,0xee,0x01,0xc0,0x00,0x12,0x01,0xdd,0xff,0xe9,0x01,0xee,0xff,0xd7,0x02,0x4c,0xff,0xd7,0x02,0x64,0xff,0xd3,0x02,0x67,0xff,0xd6,0x02,0x68,0xff,0xc5,0x02,0x83,0xff,0xe7,0x02,0xaf,0x00,0x0d,0x02,0xb1,0x00,0x0c,0x02,0xba,0xff,0xd6,0x02,0xbb, -0xff,0xf2,0x03,0x75,0xff,0xe9,0x03,0x79,0xff,0xe7,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe9,0x00,0x01,0x02,0x27,0xff,0xf1,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x08, -0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba, -0xff,0xec,0x00,0x06,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xe8,0x01,0xe0,0xff,0xee,0x01,0xee,0xff,0xeb,0x02,0x4c,0xff,0xec,0x02,0xba,0xff,0xec,0x00,0x13,0x01,0xc0,0xff,0xae,0x01,0xd8,0x00,0x12,0x01,0xde,0xff,0xe0,0x01,0xe0,0xff,0xad,0x01,0xe3,0xff,0xd6,0x01,0xf7,0xff,0xdf,0x01,0xfb,0xff,0xd2,0x02,0x0b,0xff,0xe0,0x02,0x27, -0xff,0xce,0x02,0x3a,0xff,0xdd,0x02,0x3c,0xff,0xe2,0x02,0x48,0xff,0xe0,0x02,0x52,0xff,0xe0,0x02,0x64,0xff,0xe9,0x02,0x66,0xff,0xde,0x02,0x68,0xff,0xda,0x02,0xab,0xff,0xbd,0x02,0xb6,0xff,0xdf,0x02,0xb9,0x00,0x11,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c, -0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x13,0x01,0xc0,0xff,0xae,0x01,0xd8,0x00,0x12,0x01,0xde,0xff,0xe0,0x01,0xe0,0xff,0xad,0x01,0xe3,0xff,0xd6,0x01,0xf7,0xff,0xdf,0x01,0xfb,0xff,0xd2,0x02,0x0b,0xff,0xe0,0x02,0x27,0xff,0xce,0x02,0x3a,0xff,0xdd,0x02,0x3c,0xff,0xe2,0x02,0x48,0xff,0xe0,0x02,0x52,0xff,0xe0,0x02,0x64, -0xff,0xe9,0x02,0x66,0xff,0xde,0x02,0x68,0xff,0xda,0x02,0xab,0xff,0xbd,0x02,0xb6,0xff,0xdf,0x02,0xb9,0x00,0x11,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x13,0x01,0xc0,0xff,0xae,0x01,0xd8,0x00,0x12,0x01,0xde, -0xff,0xe0,0x01,0xe0,0xff,0xad,0x01,0xe3,0xff,0xd6,0x01,0xf7,0xff,0xdf,0x01,0xfb,0xff,0xd2,0x02,0x0b,0xff,0xe0,0x02,0x27,0xff,0xce,0x02,0x3a,0xff,0xdd,0x02,0x3c,0xff,0xe2,0x02,0x48,0xff,0xe0,0x02,0x52,0xff,0xe0,0x02,0x64,0xff,0xe9,0x02,0x66,0xff,0xde,0x02,0x68,0xff,0xda,0x02,0xab,0xff,0xbd,0x02,0xb6,0xff,0xdf,0x02,0xb9, -0x00,0x11,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x31,0x00,0x55,0xff,0x6d,0x00,0x5a,0xff,0x8c,0x00,0x6d,0xfd,0xbf,0x00,0x7d,0xfe,0x7d,0x00,0x88,0xfe,0xbc,0x00,0xa8,0xff,0x2b,0x00,0xba,0xff,0x4b,0x01,0x80, -0xff,0x61,0x01,0x8e,0xff,0x8f,0x01,0x8f,0xff,0x0f,0x01,0x93,0xfe,0xe8,0x01,0x9a,0xff,0x1f,0x01,0x9b,0xfe,0xe5,0x01,0x9e,0xff,0x46,0x01,0xa0,0xfe,0xed,0x01,0xa1,0xff,0x59,0x01,0xa2,0xfe,0xfd,0x01,0xa3,0xfe,0xd9,0x01,0xc0,0xff,0x52,0x01,0xd8,0x00,0x05,0x01,0xdd,0xff,0xbd,0x01,0xde,0xff,0x49,0x01,0xe0,0xfe,0xfe,0x01,0xe3, -0xff,0x13,0x01,0xee,0xff,0x68,0x01,0xf7,0xff,0x0e,0x01,0xf9,0xff,0x13,0x01,0xfb,0xff,0x07,0x02,0x0b,0xff,0x0e,0x02,0x0d,0xff,0x11,0x02,0x27,0xff,0x3c,0x02,0x2b,0xff,0xac,0x02,0x3a,0xff,0x15,0x02,0x3c,0xff,0x3c,0x02,0x48,0xff,0x0e,0x02,0x4c,0xff,0x6a,0x02,0x52,0xff,0x49,0x02,0x64,0xff,0x0c,0x02,0x66,0xff,0x0c,0x02,0x67, -0xff,0x3f,0x02,0x68,0xfe,0xf1,0x02,0x83,0xff,0xc0,0x02,0xab,0xfe,0xef,0x02,0xb0,0xff,0x31,0x02,0xb2,0xff,0x5f,0x02,0xb6,0xff,0x0a,0x02,0xb9,0x00,0x05,0x02,0xba,0xff,0x30,0x02,0xbb,0xff,0xd5,0x00,0x02,0x01,0xe0,0xff,0xc9,0x02,0x27,0xff,0xee,0x00,0x02,0x01,0xe0,0xff,0xc9,0x02,0x27,0xff,0xee,0x00,0x18,0x01,0x80,0xff,0xd4, -0x01,0x8e,0xff,0xf0,0x01,0x92,0xff,0xed,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xe0,0x01,0xa0,0xff,0xe7,0x01,0xa2,0xff,0xe5,0x01,0xa3,0xff,0xee,0x01,0xc0,0x00,0x12,0x01,0xdd,0xff,0xe9,0x01,0xee,0xff,0xd7,0x02,0x4c,0xff,0xd7,0x02,0x64,0xff,0xd3,0x02,0x67,0xff,0xd6,0x02,0x68,0xff,0xc5,0x02,0x83,0xff,0xe7,0x02,0xaf,0x00,0x0d, -0x02,0xb1,0x00,0x0c,0x02,0xba,0xff,0xd6,0x02,0xbb,0xff,0xf2,0x03,0x75,0xff,0xe9,0x03,0x79,0xff,0xe7,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe9,0x00,0x01,0x02,0x27,0xff,0xf1,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11, -0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5, -0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4, -0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x09,0x00,0x0c,0x00,0x0f,0x00,0x40,0x00,0x0c,0x00,0x55,0xff,0xeb,0x00,0x60,0x00,0x0e,0x03,0x71,0xff,0xcb,0x03,0x75,0xff,0xe9,0x03,0x79,0xff,0xe7,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe7,0x00,0x09,0x00,0x0c,0x00,0x0f, -0x00,0x40,0x00,0x0c,0x00,0x55,0xff,0xeb,0x00,0x60,0x00,0x0e,0x03,0x71,0xff,0xcb,0x03,0x75,0xff,0xe9,0x03,0x79,0xff,0xe7,0x03,0x82,0xff,0xe7,0x03,0xdb,0xff,0xe7,0x00,0x09,0x00,0x0c,0x00,0x0f,0x00,0x40,0x00,0x0c,0x00,0x55,0xff,0xeb,0x00,0x60,0x00,0x0e,0x03,0x71,0xff,0xcb,0x03,0x75,0xff,0xe9,0x03,0x79,0xff,0xe7,0x03,0x82, -0xff,0xe7,0x03,0xdb,0xff,0xe7,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b, -0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d, -0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5, -0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd, -0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1, -0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5, -0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef, -0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75, -0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2, -0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b, -0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d, -0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5, -0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd, -0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1, -0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5, -0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef, -0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75, -0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2, -0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b, -0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d, -0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5, -0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd, -0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef,0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1, -0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75,0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5, -0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2,0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x1c,0x00,0x22,0xff,0xc3,0x00,0x57,0xff,0xef, -0x00,0x5a,0xff,0xdf,0x01,0x45,0xff,0xee,0x01,0x80,0xff,0xe5,0x01,0x82,0xff,0xd1,0x01,0x95,0x00,0x11,0x01,0x9e,0xff,0xc8,0x01,0xc0,0x00,0x13,0x01,0xd8,0xff,0xc5,0x01,0xee,0xff,0xca,0x02,0x4c,0xff,0x9f,0x02,0x63,0xff,0x51,0x02,0x64,0xff,0x7b,0x02,0x67,0xff,0xca,0x02,0x68,0xff,0xdd,0x02,0x83,0xff,0xf2,0x02,0xaf,0xff,0x75, -0x02,0xb1,0xff,0xca,0x02,0xb9,0xff,0x4f,0x02,0xba,0xff,0x8c,0x03,0x79,0xff,0xf5,0x03,0x82,0xff,0xf5,0x03,0xec,0xff,0xc7,0x03,0xed,0xff,0xf1,0x03,0xee,0xff,0xcd,0x03,0xef,0xff,0xdd,0x03,0xf1,0xff,0xc4,0x00,0x07,0x01,0xee,0xff,0xf0,0x02,0x0d,0xff,0xf1,0x02,0x2b,0xff,0xf3,0x02,0x4c,0xff,0xf1,0x02,0xb0,0xff,0xf3,0x02,0xb2, -0xff,0xe9,0x02,0xba,0xff,0xd3,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x05, -0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea, -0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed, -0x03,0xf1,0xff,0xf0,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x05,0x00,0x49,0xff,0xee,0x00,0x5a,0xff,0xea,0x03,0xee,0xff,0xf0,0x03,0xef,0xff,0xed,0x03,0xf1,0xff,0xf0,0x00,0x01,0x01,0xee,0xff,0xf5,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3, -0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x08,0x01,0xc0,0x00,0x15,0x01,0xe0,0x00,0x15,0x02,0x63,0xff,0xe4,0x02,0x64,0xff,0xe5,0x02,0x67,0xff,0xe4,0x02,0xaf,0xff,0xe3,0x02,0xb1,0xff,0xe2,0x02,0xb9,0xff,0xe4,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf, -0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0, -0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x09,0x00,0x88,0xff,0xdf, -0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba, -0xff,0xec,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c, -0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d, -0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1, -0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5, -0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5,0x02,0xba,0xff,0xec,0x00,0x08,0x01,0x9e,0xff,0xea,0x01,0xa1,0xff,0xea,0x01,0xee,0xff,0xea,0x02,0x0d,0xff,0xf0,0x02,0x2b,0xff,0xf1,0x02,0x4c,0xff,0xeb,0x02,0xb0,0xff,0xf5, -0x02,0xba,0xff,0xec,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x01,0x03,0x71,0xff,0xeb,0x00,0x24,0x00,0x09,0xff,0xe2,0x00,0x0c,0x00,0x14,0x00,0x0d,0xff,0xcf,0x00,0x40,0x00,0x12,0x00,0x49,0xff,0xea,0x00,0x55,0xff,0xd8,0x00,0x57,0xff,0xea,0x00,0x60,0x00,0x13,0x00,0x6d,0xff,0xae,0x00,0x7d,0xff,0xcd,0x00,0x88,0xff,0xa0,0x00,0xa8, -0xff,0xc1,0x00,0xba,0xff,0xc0,0x01,0x80,0xff,0xd0,0x01,0x8c,0xff,0xea,0x01,0x8e,0xff,0xee,0x01,0x8f,0xff,0xc6,0x01,0x90,0x00,0x0d,0x01,0x92,0xff,0xe9,0x01,0x93,0xff,0xd6,0x01,0x9a,0xff,0xe8,0x01,0x9b,0xff,0xba,0x01,0x9e,0xff,0xe9,0x01,0xa0,0xff,0xcb,0x01,0xa1,0xff,0xe8,0x01,0xa2,0xff,0xda,0x01,0xa3,0xff,0xc7,0x03,0x3d, -0xff,0xd3,0x03,0x71,0xff,0xab,0x03,0x75,0xff,0xcd,0x03,0x79,0xff,0xcb,0x03,0x82,0xff,0xcb,0x03,0xdb,0xff,0xcb,0x03,0xec,0xff,0xf3,0x03,0xef,0xff,0xf3,0x03,0xf0,0xff,0xef,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1, -0x00,0x24,0x00,0x09,0xff,0xe2,0x00,0x0c,0x00,0x14,0x00,0x0d,0xff,0xcf,0x00,0x40,0x00,0x12,0x00,0x49,0xff,0xea,0x00,0x55,0xff,0xd8,0x00,0x57,0xff,0xea,0x00,0x60,0x00,0x13,0x00,0x6d,0xff,0xae,0x00,0x7d,0xff,0xcd,0x00,0x88,0xff,0xa0,0x00,0xa8,0xff,0xc1,0x00,0xba,0xff,0xc0,0x01,0x80,0xff,0xd0,0x01,0x8c,0xff,0xea,0x01,0x8e, -0xff,0xee,0x01,0x8f,0xff,0xc6,0x01,0x90,0x00,0x0d,0x01,0x92,0xff,0xe9,0x01,0x93,0xff,0xd6,0x01,0x9a,0xff,0xe8,0x01,0x9b,0xff,0xba,0x01,0x9e,0xff,0xe9,0x01,0xa0,0xff,0xcb,0x01,0xa1,0xff,0xe8,0x01,0xa2,0xff,0xda,0x01,0xa3,0xff,0xc7,0x03,0x3d,0xff,0xd3,0x03,0x71,0xff,0xab,0x03,0x75,0xff,0xcd,0x03,0x79,0xff,0xcb,0x03,0x82, -0xff,0xcb,0x03,0xdb,0xff,0xcb,0x03,0xec,0xff,0xf3,0x03,0xef,0xff,0xf3,0x03,0xf0,0xff,0xef,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x24,0x00,0x09,0xff,0xe2,0x00,0x0c,0x00,0x14,0x00,0x0d,0xff,0xcf,0x00,0x40, -0x00,0x12,0x00,0x49,0xff,0xea,0x00,0x55,0xff,0xd8,0x00,0x57,0xff,0xea,0x00,0x60,0x00,0x13,0x00,0x6d,0xff,0xae,0x00,0x7d,0xff,0xcd,0x00,0x88,0xff,0xa0,0x00,0xa8,0xff,0xc1,0x00,0xba,0xff,0xc0,0x01,0x80,0xff,0xd0,0x01,0x8c,0xff,0xea,0x01,0x8e,0xff,0xee,0x01,0x8f,0xff,0xc6,0x01,0x90,0x00,0x0d,0x01,0x92,0xff,0xe9,0x01,0x93, -0xff,0xd6,0x01,0x9a,0xff,0xe8,0x01,0x9b,0xff,0xba,0x01,0x9e,0xff,0xe9,0x01,0xa0,0xff,0xcb,0x01,0xa1,0xff,0xe8,0x01,0xa2,0xff,0xda,0x01,0xa3,0xff,0xc7,0x03,0x3d,0xff,0xd3,0x03,0x71,0xff,0xab,0x03,0x75,0xff,0xcd,0x03,0x79,0xff,0xcb,0x03,0x82,0xff,0xcb,0x03,0xdb,0xff,0xcb,0x03,0xec,0xff,0xf3,0x03,0xef,0xff,0xf3,0x03,0xf0, -0xff,0xef,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b,0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x24,0x00,0x09,0xff,0xe2,0x00,0x0c,0x00,0x14,0x00,0x0d,0xff,0xcf,0x00,0x40,0x00,0x12,0x00,0x49,0xff,0xea,0x00,0x55,0xff,0xd8,0x00,0x57,0xff,0xea,0x00,0x60, -0x00,0x13,0x00,0x6d,0xff,0xae,0x00,0x7d,0xff,0xcd,0x00,0x88,0xff,0xa0,0x00,0xa8,0xff,0xc1,0x00,0xba,0xff,0xc0,0x01,0x80,0xff,0xd0,0x01,0x8c,0xff,0xea,0x01,0x8e,0xff,0xee,0x01,0x8f,0xff,0xc6,0x01,0x90,0x00,0x0d,0x01,0x92,0xff,0xe9,0x01,0x93,0xff,0xd6,0x01,0x9a,0xff,0xe8,0x01,0x9b,0xff,0xba,0x01,0x9e,0xff,0xe9,0x01,0xa0, -0xff,0xcb,0x01,0xa1,0xff,0xe8,0x01,0xa2,0xff,0xda,0x01,0xa3,0xff,0xc7,0x03,0x3d,0xff,0xd3,0x03,0x71,0xff,0xab,0x03,0x75,0xff,0xcd,0x03,0x79,0xff,0xcb,0x03,0x82,0xff,0xcb,0x03,0xdb,0xff,0xcb,0x03,0xec,0xff,0xf3,0x03,0xef,0xff,0xf3,0x03,0xf0,0xff,0xef,0x00,0x07,0x00,0x49,0x00,0x0d,0x01,0x8e,0xff,0xf5,0x01,0x9a,0x00,0x0b, -0x01,0x9b,0xff,0xea,0x01,0x9e,0x00,0x0c,0x01,0xe0,0xff,0xc8,0x02,0x27,0xff,0xf1,0x00,0x09,0x00,0x88,0xff,0xdf,0x01,0x79,0xff,0xf3,0x01,0x7d,0xff,0xf0,0x01,0x95,0xff,0xea,0x01,0xc0,0xff,0xdf,0x01,0xd8,0xff,0xe0,0x02,0xb9,0xff,0xe0,0x03,0x71,0xff,0xed,0x03,0xf0,0xff,0xf5,0x00,0x01,0x00,0x5a,0x00,0x0b,0x00,0x01,0x00,0x5a, -0x00,0x0b,0x00,0x01,0x00,0x5a,0x00,0x0b,0x00,0x01,0x00,0x5a,0x00,0x0b,0x00,0x01,0x00,0x5a,0x00,0x0b,0x00,0x01,0x00,0x5a,0x00,0x0b,0x00,0x01,0x00,0x5a,0x00,0x0b,0x00,0x09,0x03,0x75,0xff,0xf2,0x03,0x79,0xff,0xf2,0x03,0x82,0xff,0xf2,0x03,0xdb,0xff,0xf2,0x03,0xec,0xff,0xc0,0x03,0xed,0xff,0xec,0x03,0xee,0xff,0xc7,0x03,0xef, -0xff,0xd8,0x03,0xf1,0xff,0xbf,0x00,0x02,0x03,0xee,0xff,0xee,0x03,0xef,0xff,0xf5,0x00,0x01,0x03,0x71,0xff,0xd2,0x00,0x04,0x03,0x75,0xff,0xeb,0x03,0x79,0xff,0xe9,0x03,0x82,0xff,0xeb,0x03,0xdb,0xff,0xeb,0x00,0x0a,0x03,0x71,0x00,0x11,0x03,0x75,0xff,0xf0,0x03,0x79,0xff,0xee,0x03,0x82,0xff,0xef,0x03,0xdb,0xff,0xf0,0x03,0xec, -0xff,0xbb,0x03,0xed,0xff,0xec,0x03,0xee,0xff,0xb7,0x03,0xef,0xff,0xd5,0x03,0xf1,0xff,0xb4,0x00,0x05,0x03,0x71,0xff,0xf3,0x03,0xec,0xff,0xee,0x03,0xee,0xff,0xf1,0x03,0xf0,0xff,0xec,0x03,0xf1,0xff,0xea,0x00,0x04,0x03,0xec,0xff,0xe9,0x03,0xee,0xff,0xeb,0x03,0xef,0xff,0xf1,0x03,0xf1,0xff,0xe5,0x00,0x04,0x03,0xec,0xff,0xf2, -0x03,0xee,0xff,0xf1,0x03,0xef,0xff,0xf5,0x03,0xf1,0xff,0xee,0x00,0x09,0x03,0x71,0xff,0xbf,0x03,0x75,0xff,0xee,0x03,0x79,0xff,0xec,0x03,0x82,0xff,0xed,0x03,0xdb,0xff,0xec,0x03,0xeb,0xff,0xf5,0x03,0xec,0x00,0x0e,0x03,0xee,0x00,0x0d,0x03,0xf1,0x00,0x0d,0x00,0x01,0x03,0x71,0xff,0xef,0x00,0x05,0x03,0x71,0xff,0xc7,0x03,0x75, -0xff,0xf2,0x03,0x79,0xff,0xf0,0x03,0x82,0xff,0xf0,0x03,0xdb,0xff,0xf0,0x00,0x02,0x03,0x71,0xff,0xdc,0x03,0xec,0x00,0x0e,0x00,0x04,0x03,0x75,0xff,0xed,0x03,0x79,0xff,0xeb,0x03,0x82,0xff,0xeb,0x03,0xdb,0xff,0xeb,0x00,0x09,0x03,0x71,0xff,0xc0,0x03,0x75,0xff,0xed,0x03,0x79,0xff,0xeb,0x03,0x82,0xff,0xeb,0x03,0xdb,0xff,0xeb, -0x03,0xec,0x00,0x0f,0x03,0xee,0x00,0x10,0x03,0xef,0x00,0x0d,0x03,0xf1,0x00,0x10,0x00,0x05,0x03,0x71,0x00,0x0c,0x03,0x75,0xff,0xf0,0x03,0x79,0xff,0xf0,0x03,0x82,0xff,0xf0,0x03,0xdb,0xff,0xf0,0x00,0x01,0x03,0x71,0xff,0xd5,0x00,0x01,0x2f,0x52,0x00,0x04,0x00,0x00,0x00,0x0b,0x00,0x20,0x00,0x76,0x03,0x78,0x03,0xf2,0x04,0x58, -0x04,0x9a,0x05,0xb8,0x06,0xae,0x06,0xcc,0x07,0x0e,0x07,0xf4,0x00,0x15,0x00,0x39,0x00,0x14,0x00,0x3a,0x00,0x12,0x00,0x3c,0x00,0x16,0x00,0x9f,0x00,0x16,0x01,0x36,0x00,0x12,0x01,0x38,0x00,0x16,0x01,0x3a,0x00,0x16,0x01,0x69,0x00,0x16,0x01,0x7f,0x00,0x16,0x01,0x85,0x00,0x16,0x02,0x20,0x00,0x14,0x02,0x22,0x00,0x14,0x02,0x59, -0x00,0x16,0x02,0x5b,0x00,0x16,0x02,0xc3,0x00,0x12,0x02,0xc5,0x00,0x12,0x02,0xc7,0x00,0x12,0x03,0x1b,0x00,0x16,0x03,0x1d,0x00,0x16,0x03,0x1f,0x00,0x16,0x03,0x21,0x00,0x16,0x00,0xc0,0x00,0x0f,0xff,0x16,0x00,0x11,0xff,0x16,0x00,0x1d,0xff,0x16,0x00,0x24,0xff,0xc5,0x00,0x44,0xff,0xde,0x00,0x46,0xff,0xeb,0x00,0x47,0xff,0xeb, -0x00,0x48,0xff,0xeb,0x00,0x4a,0xff,0xeb,0x00,0x52,0xff,0xeb,0x00,0x54,0xff,0xeb,0x00,0x58,0xff,0xea,0x00,0x59,0xff,0xe8,0x00,0x5c,0xff,0xe8,0x00,0x82,0xff,0xc5,0x00,0x83,0xff,0xc5,0x00,0x84,0xff,0xc5,0x00,0x85,0xff,0xc5,0x00,0x86,0xff,0xc5,0x00,0x87,0xff,0xc5,0x00,0xa2,0xff,0xde,0x00,0xa3,0xff,0xde,0x00,0xa4,0xff,0xde, -0x00,0xa5,0xff,0xde,0x00,0xa6,0xff,0xde,0x00,0xa7,0xff,0xde,0x00,0xa9,0xff,0xeb,0x00,0xaa,0xff,0xeb,0x00,0xab,0xff,0xeb,0x00,0xac,0xff,0xeb,0x00,0xad,0xff,0xeb,0x00,0xb4,0xff,0xeb,0x00,0xb5,0xff,0xeb,0x00,0xb6,0xff,0xeb,0x00,0xb7,0xff,0xeb,0x00,0xb8,0xff,0xeb,0x00,0xbb,0xff,0xea,0x00,0xbc,0xff,0xea,0x00,0xbd,0xff,0xea, -0x00,0xbe,0xff,0xea,0x00,0xbf,0xff,0xe8,0x00,0xc1,0xff,0xe8,0x00,0xc2,0xff,0xc5,0x00,0xc3,0xff,0xde,0x00,0xc4,0xff,0xc5,0x00,0xc5,0xff,0xde,0x00,0xc6,0xff,0xc5,0x00,0xc7,0xff,0xde,0x00,0xc9,0xff,0xeb,0x00,0xcb,0xff,0xeb,0x00,0xcd,0xff,0xeb,0x00,0xcf,0xff,0xeb,0x00,0xd1,0xff,0xeb,0x00,0xd5,0xff,0xeb,0x00,0xd7,0xff,0xeb, -0x00,0xd9,0xff,0xeb,0x00,0xdb,0xff,0xeb,0x00,0xdd,0xff,0xeb,0x00,0xdf,0xff,0xeb,0x00,0xe1,0xff,0xeb,0x00,0xe3,0xff,0xeb,0x00,0xe5,0xff,0xeb,0x01,0x0f,0xff,0xeb,0x01,0x11,0xff,0xeb,0x01,0x13,0xff,0xeb,0x01,0x15,0xff,0xeb,0x01,0x2b,0xff,0xea,0x01,0x2d,0xff,0xea,0x01,0x2f,0xff,0xea,0x01,0x31,0xff,0xea,0x01,0x33,0xff,0xea, -0x01,0x35,0xff,0xea,0x01,0x39,0xff,0xe8,0x01,0x44,0xff,0xeb,0x01,0x46,0xff,0xea,0x01,0x48,0xff,0xc5,0x01,0x49,0xff,0xde,0x01,0x63,0xff,0xc5,0x01,0x6c,0xff,0xc5,0x01,0x6f,0xff,0xc5,0x01,0x76,0xff,0xc5,0x01,0x86,0xff,0xeb,0x01,0x8a,0xff,0xea,0x01,0x8b,0xff,0xeb,0x01,0x8d,0xff,0xe8,0x01,0x97,0xff,0xe8,0x01,0x99,0xff,0xeb, -0x01,0x9c,0xff,0xeb,0x01,0x9d,0xff,0xeb,0x01,0x9f,0xff,0xea,0x01,0xa5,0xff,0xea,0x01,0xa6,0xff,0xeb,0x01,0xa7,0xff,0xea,0x01,0xbc,0xff,0xc5,0x01,0xdc,0xff,0xde,0x01,0xe1,0xff,0xeb,0x01,0xea,0xff,0xeb,0x01,0xed,0xff,0xeb,0x01,0xef,0xff,0xe8,0x01,0xf0,0xff,0xeb,0x01,0xfc,0xff,0xeb,0x01,0xfd,0xff,0xeb,0x02,0x00,0xff,0xeb, -0x02,0x0a,0xff,0xe8,0x02,0x12,0xff,0xc5,0x02,0x1f,0xff,0xeb,0x02,0x21,0xff,0xe8,0x02,0x23,0xff,0xe8,0x02,0x25,0xff,0xeb,0x02,0x29,0xff,0xeb,0x02,0x2d,0xff,0xeb,0x02,0x54,0xff,0xeb,0x02,0x56,0xff,0xeb,0x02,0x5a,0xff,0xe8,0x02,0x7b,0xff,0xc5,0x02,0x7c,0xff,0xde,0x02,0x7d,0xff,0xc5,0x02,0x7e,0xff,0xde,0x02,0x82,0xff,0xeb, -0x02,0x84,0xff,0xeb,0x02,0x86,0xff,0xeb,0x02,0x92,0xff,0xeb,0x02,0x94,0xff,0xeb,0x02,0x96,0xff,0xeb,0x02,0x9a,0xff,0xe8,0x02,0x9c,0xff,0xe8,0x02,0x9e,0xff,0xe8,0x02,0xac,0xff,0xeb,0x02,0xad,0xff,0xeb,0x02,0xae,0xff,0xeb,0x02,0xb8,0xff,0xeb,0x02,0xbf,0xff,0xc5,0x02,0xc0,0xff,0xde,0x02,0xc9,0xff,0xc5,0x02,0xca,0xff,0xde, -0x02,0xcb,0xff,0xc5,0x02,0xcc,0xff,0xde,0x02,0xcd,0xff,0xc5,0x02,0xce,0xff,0xde,0x02,0xcf,0xff,0xc5,0x02,0xd0,0xff,0xde,0x02,0xd1,0xff,0xc5,0x02,0xd2,0xff,0xde,0x02,0xd3,0xff,0xc5,0x02,0xd4,0xff,0xde,0x02,0xd5,0xff,0xc5,0x02,0xd6,0xff,0xde,0x02,0xd7,0xff,0xc5,0x02,0xd8,0xff,0xde,0x02,0xd9,0xff,0xc5,0x02,0xda,0xff,0xde, -0x02,0xdb,0xff,0xc5,0x02,0xdc,0xff,0xde,0x02,0xdd,0xff,0xc5,0x02,0xde,0xff,0xde,0x02,0xdf,0xff,0xc5,0x02,0xe0,0xff,0xde,0x02,0xe2,0xff,0xeb,0x02,0xe4,0xff,0xeb,0x02,0xe6,0xff,0xeb,0x02,0xe8,0xff,0xeb,0x02,0xea,0xff,0xeb,0x02,0xec,0xff,0xeb,0x02,0xee,0xff,0xeb,0x02,0xf0,0xff,0xeb,0x02,0xf6,0xff,0xeb,0x02,0xf8,0xff,0xeb, -0x02,0xfa,0xff,0xeb,0x02,0xfc,0xff,0xeb,0x02,0xfe,0xff,0xeb,0x03,0x00,0xff,0xeb,0x03,0x02,0xff,0xeb,0x03,0x04,0xff,0xeb,0x03,0x06,0xff,0xeb,0x03,0x08,0xff,0xeb,0x03,0x0a,0xff,0xeb,0x03,0x0c,0xff,0xeb,0x03,0x0e,0xff,0xea,0x03,0x10,0xff,0xea,0x03,0x12,0xff,0xea,0x03,0x14,0xff,0xea,0x03,0x16,0xff,0xea,0x03,0x18,0xff,0xea, -0x03,0x1a,0xff,0xea,0x03,0x1c,0xff,0xe8,0x03,0x1e,0xff,0xe8,0x03,0x20,0xff,0xe8,0x03,0x22,0xff,0xe8,0x03,0x36,0xff,0x16,0x03,0x3a,0xff,0x16,0x03,0x3e,0xff,0x16,0x03,0x3f,0xff,0x16,0x00,0x1e,0x00,0x37,0xff,0xd5,0x00,0x39,0xff,0xe4,0x00,0x3a,0xff,0xec,0x00,0x3c,0xff,0xdd,0x00,0x9f,0xff,0xdd,0x01,0x24,0xff,0xd5,0x01,0x26, -0xff,0xd5,0x01,0x36,0xff,0xec,0x01,0x38,0xff,0xdd,0x01,0x3a,0xff,0xdd,0x01,0x69,0xff,0xdd,0x01,0x7f,0xff,0xdd,0x01,0x85,0xff,0xdd,0x01,0xae,0xff,0xd5,0x01,0xb7,0xff,0xd5,0x01,0xce,0xff,0xd5,0x02,0x20,0xff,0xe4,0x02,0x22,0xff,0xe4,0x02,0x4b,0xff,0xd5,0x02,0x57,0xff,0xd5,0x02,0x59,0xff,0xdd,0x02,0x5b,0xff,0xdd,0x02,0x5f, -0xff,0xd5,0x02,0xc3,0xff,0xec,0x02,0xc5,0xff,0xec,0x02,0xc7,0xff,0xec,0x03,0x1b,0xff,0xdd,0x03,0x1d,0xff,0xdd,0x03,0x1f,0xff,0xdd,0x03,0x21,0xff,0xdd,0x00,0x19,0x00,0x37,0xff,0xb0,0x00,0x39,0xff,0xed,0x00,0x3c,0xff,0xd0,0x00,0x9f,0xff,0xd0,0x01,0x24,0xff,0xb0,0x01,0x26,0xff,0xb0,0x01,0x38,0xff,0xd0,0x01,0x3a,0xff,0xd0, -0x01,0x69,0xff,0xd0,0x01,0x7f,0xff,0xd0,0x01,0x85,0xff,0xd0,0x01,0xae,0xff,0xb0,0x01,0xb7,0xff,0xb0,0x01,0xce,0xff,0xb0,0x02,0x20,0xff,0xed,0x02,0x22,0xff,0xed,0x02,0x4b,0xff,0xb0,0x02,0x57,0xff,0xb0,0x02,0x59,0xff,0xd0,0x02,0x5b,0xff,0xd0,0x02,0x5f,0xff,0xb0,0x03,0x1b,0xff,0xd0,0x03,0x1d,0xff,0xd0,0x03,0x1f,0xff,0xd0, -0x03,0x21,0xff,0xd0,0x00,0x10,0x00,0x2d,0xff,0xee,0x00,0x38,0xff,0xee,0x00,0x9b,0xff,0xee,0x00,0x9c,0xff,0xee,0x00,0x9d,0xff,0xee,0x00,0x9e,0xff,0xee,0x00,0xf6,0xff,0xee,0x01,0x2a,0xff,0xee,0x01,0x2c,0xff,0xee,0x01,0x2e,0xff,0xee,0x01,0x30,0xff,0xee,0x01,0x32,0xff,0xee,0x01,0x34,0xff,0xee,0x01,0xb4,0xff,0xee,0x03,0x0d, -0xff,0xee,0x03,0x0f,0xff,0xee,0x00,0x47,0x00,0x05,0x00,0x10,0x00,0x0a,0x00,0x10,0x00,0x46,0xff,0xe8,0x00,0x47,0xff,0xe8,0x00,0x48,0xff,0xe8,0x00,0x4a,0xff,0xe8,0x00,0x54,0xff,0xe8,0x00,0xa9,0xff,0xe8,0x00,0xaa,0xff,0xe8,0x00,0xab,0xff,0xe8,0x00,0xac,0xff,0xe8,0x00,0xad,0xff,0xe8,0x00,0xc9,0xff,0xe8,0x00,0xcb,0xff,0xe8, -0x00,0xcd,0xff,0xe8,0x00,0xcf,0xff,0xe8,0x00,0xd1,0xff,0xe8,0x00,0xd5,0xff,0xe8,0x00,0xd7,0xff,0xe8,0x00,0xd9,0xff,0xe8,0x00,0xdb,0xff,0xe8,0x00,0xdd,0xff,0xe8,0x00,0xdf,0xff,0xe8,0x00,0xe1,0xff,0xe8,0x00,0xe3,0xff,0xe8,0x00,0xe5,0xff,0xe8,0x01,0x15,0xff,0xe8,0x01,0x44,0xff,0xe8,0x01,0x51,0x00,0x10,0x01,0x86,0xff,0xe8, -0x01,0x8b,0xff,0xe8,0x01,0x9c,0xff,0xe8,0x01,0x9d,0xff,0xe8,0x01,0xe1,0xff,0xe8,0x01,0xed,0xff,0xe8,0x01,0xf0,0xff,0xe8,0x01,0xfc,0xff,0xe8,0x01,0xfd,0xff,0xe8,0x02,0x00,0xff,0xe8,0x02,0x25,0xff,0xe8,0x02,0x29,0xff,0xe8,0x02,0x2d,0xff,0xe8,0x02,0x54,0xff,0xe8,0x02,0x56,0xff,0xe8,0x02,0x82,0xff,0xe8,0x02,0x84,0xff,0xe8, -0x02,0x86,0xff,0xe8,0x02,0x94,0xff,0xe8,0x02,0xac,0xff,0xe8,0x02,0xad,0xff,0xe8,0x02,0xae,0xff,0xe8,0x02,0xb8,0xff,0xe8,0x02,0xe2,0xff,0xe8,0x02,0xe4,0xff,0xe8,0x02,0xe6,0xff,0xe8,0x02,0xe8,0xff,0xe8,0x02,0xea,0xff,0xe8,0x02,0xec,0xff,0xe8,0x02,0xee,0xff,0xe8,0x02,0xf0,0xff,0xe8,0x03,0x04,0xff,0xe8,0x03,0x06,0xff,0xe8, -0x03,0x08,0xff,0xe8,0x03,0x0c,0xff,0xe8,0x03,0x34,0x00,0x10,0x03,0x35,0x00,0x10,0x03,0x37,0x00,0x10,0x03,0x38,0x00,0x10,0x03,0x39,0x00,0x10,0x03,0x41,0x00,0x10,0x03,0x42,0x00,0x10,0x00,0x3d,0x00,0x46,0xff,0xec,0x00,0x47,0xff,0xec,0x00,0x48,0xff,0xec,0x00,0x4a,0xff,0xec,0x00,0x54,0xff,0xec,0x00,0xa9,0xff,0xec,0x00,0xaa, -0xff,0xec,0x00,0xab,0xff,0xec,0x00,0xac,0xff,0xec,0x00,0xad,0xff,0xec,0x00,0xc9,0xff,0xec,0x00,0xcb,0xff,0xec,0x00,0xcd,0xff,0xec,0x00,0xcf,0xff,0xec,0x00,0xd1,0xff,0xec,0x00,0xd5,0xff,0xec,0x00,0xd7,0xff,0xec,0x00,0xd9,0xff,0xec,0x00,0xdb,0xff,0xec,0x00,0xdd,0xff,0xec,0x00,0xdf,0xff,0xec,0x00,0xe1,0xff,0xec,0x00,0xe3, -0xff,0xec,0x00,0xe5,0xff,0xec,0x01,0x15,0xff,0xec,0x01,0x44,0xff,0xec,0x01,0x86,0xff,0xec,0x01,0x8b,0xff,0xec,0x01,0x9c,0xff,0xec,0x01,0x9d,0xff,0xec,0x01,0xe1,0xff,0xec,0x01,0xed,0xff,0xec,0x01,0xf0,0xff,0xec,0x01,0xfc,0xff,0xec,0x01,0xfd,0xff,0xec,0x02,0x00,0xff,0xec,0x02,0x25,0xff,0xec,0x02,0x29,0xff,0xec,0x02,0x2d, -0xff,0xec,0x02,0x54,0xff,0xec,0x02,0x56,0xff,0xec,0x02,0x82,0xff,0xec,0x02,0x84,0xff,0xec,0x02,0x86,0xff,0xec,0x02,0x94,0xff,0xec,0x02,0xac,0xff,0xec,0x02,0xad,0xff,0xec,0x02,0xae,0xff,0xec,0x02,0xb8,0xff,0xec,0x02,0xe2,0xff,0xec,0x02,0xe4,0xff,0xec,0x02,0xe6,0xff,0xec,0x02,0xe8,0xff,0xec,0x02,0xea,0xff,0xec,0x02,0xec, -0xff,0xec,0x02,0xee,0xff,0xec,0x02,0xf0,0xff,0xec,0x03,0x04,0xff,0xec,0x03,0x06,0xff,0xec,0x03,0x08,0xff,0xec,0x03,0x0c,0xff,0xec,0x00,0x07,0x00,0x0f,0xff,0x84,0x00,0x11,0xff,0x84,0x00,0x1d,0xff,0x84,0x03,0x36,0xff,0x84,0x03,0x3a,0xff,0x84,0x03,0x3e,0xff,0x84,0x03,0x3f,0xff,0x84,0x00,0x10,0x00,0x2d,0xff,0xec,0x00,0x38, -0xff,0xec,0x00,0x9b,0xff,0xec,0x00,0x9c,0xff,0xec,0x00,0x9d,0xff,0xec,0x00,0x9e,0xff,0xec,0x00,0xf6,0xff,0xec,0x01,0x2a,0xff,0xec,0x01,0x2c,0xff,0xec,0x01,0x2e,0xff,0xec,0x01,0x30,0xff,0xec,0x01,0x32,0xff,0xec,0x01,0x34,0xff,0xec,0x01,0xb4,0xff,0xec,0x03,0x0d,0xff,0xec,0x03,0x0f,0xff,0xec,0x00,0x39,0x00,0x26,0xff,0xf3, -0x00,0x2a,0xff,0xf3,0x00,0x32,0xff,0xf3,0x00,0x34,0xff,0xf3,0x00,0x89,0xff,0xf3,0x00,0x94,0xff,0xf3,0x00,0x95,0xff,0xf3,0x00,0x96,0xff,0xf3,0x00,0x97,0xff,0xf3,0x00,0x98,0xff,0xf3,0x00,0x9a,0xff,0xf3,0x00,0xc8,0xff,0xf3,0x00,0xca,0xff,0xf3,0x00,0xcc,0xff,0xf3,0x00,0xce,0xff,0xf3,0x00,0xde,0xff,0xf3,0x00,0xe0,0xff,0xf3, -0x00,0xe2,0xff,0xf3,0x00,0xe4,0xff,0xf3,0x01,0x0e,0xff,0xf3,0x01,0x10,0xff,0xf3,0x01,0x12,0xff,0xf3,0x01,0x14,0xff,0xf3,0x01,0x43,0xff,0xf3,0x01,0x4c,0xff,0xf3,0x01,0x68,0xff,0xf3,0x01,0x73,0xff,0xf3,0x01,0x7a,0xff,0xf3,0x01,0xb0,0xff,0xf3,0x01,0xca,0xff,0xf3,0x01,0xcd,0xff,0xf3,0x02,0x0c,0xff,0xf3,0x02,0x1e,0xff,0xf3, -0x02,0x24,0xff,0xf3,0x02,0x26,0xff,0xf3,0x02,0x28,0xff,0xf3,0x02,0x2a,0xff,0xf3,0x02,0x2c,0xff,0xf3,0x02,0x53,0xff,0xf3,0x02,0x55,0xff,0xf3,0x02,0x91,0xff,0xf3,0x02,0x93,0xff,0xf3,0x02,0x95,0xff,0xf3,0x02,0xb7,0xff,0xf3,0x02,0xf5,0xff,0xf3,0x02,0xf7,0xff,0xf3,0x02,0xf9,0xff,0xf3,0x02,0xfb,0xff,0xf3,0x02,0xfd,0xff,0xf3, -0x02,0xff,0xff,0xf3,0x03,0x01,0xff,0xf3,0x03,0x03,0xff,0xf3,0x03,0x05,0xff,0xf3,0x03,0x07,0xff,0xf3,0x03,0x09,0xff,0xf3,0x03,0x0b,0xff,0xf3,0x03,0x23,0xff,0xf3,0x00,0x39,0x00,0x26,0xff,0xe6,0x00,0x2a,0xff,0xe6,0x00,0x32,0xff,0xe6,0x00,0x34,0xff,0xe6,0x00,0x89,0xff,0xe6,0x00,0x94,0xff,0xe6,0x00,0x95,0xff,0xe6,0x00,0x96, -0xff,0xe6,0x00,0x97,0xff,0xe6,0x00,0x98,0xff,0xe6,0x00,0x9a,0xff,0xe6,0x00,0xc8,0xff,0xe6,0x00,0xca,0xff,0xe6,0x00,0xcc,0xff,0xe6,0x00,0xce,0xff,0xe6,0x00,0xde,0xff,0xe6,0x00,0xe0,0xff,0xe6,0x00,0xe2,0xff,0xe6,0x00,0xe4,0xff,0xe6,0x01,0x0e,0xff,0xe6,0x01,0x10,0xff,0xe6,0x01,0x12,0xff,0xe6,0x01,0x14,0xff,0xe6,0x01,0x43, -0xff,0xe6,0x01,0x4c,0xff,0xe6,0x01,0x68,0xff,0xe6,0x01,0x73,0xff,0xe6,0x01,0x7a,0xff,0xe6,0x01,0xb0,0xff,0xe6,0x01,0xca,0xff,0xe6,0x01,0xcd,0xff,0xe6,0x02,0x0c,0xff,0xe6,0x02,0x1e,0xff,0xe6,0x02,0x24,0xff,0xe6,0x02,0x26,0xff,0xe6,0x02,0x28,0xff,0xe6,0x02,0x2a,0xff,0xe6,0x02,0x2c,0xff,0xe6,0x02,0x53,0xff,0xe6,0x02,0x55, -0xff,0xe6,0x02,0x91,0xff,0xe6,0x02,0x93,0xff,0xe6,0x02,0x95,0xff,0xe6,0x02,0xb7,0xff,0xe6,0x02,0xf5,0xff,0xe6,0x02,0xf7,0xff,0xe6,0x02,0xf9,0xff,0xe6,0x02,0xfb,0xff,0xe6,0x02,0xfd,0xff,0xe6,0x02,0xff,0xff,0xe6,0x03,0x01,0xff,0xe6,0x03,0x03,0xff,0xe6,0x03,0x05,0xff,0xe6,0x03,0x07,0xff,0xe6,0x03,0x09,0xff,0xe6,0x03,0x0b, -0xff,0xe6,0x03,0x23,0xff,0xe6,0x00,0x01,0x26,0x92,0x00,0x04,0x00,0x00,0x00,0x1f,0x00,0x48,0x01,0x22,0x01,0xc0,0x04,0x5a,0x06,0x20,0x06,0xf2,0x07,0xe8,0x09,0xae,0x09,0xe0,0x0b,0x5a,0x0b,0x8c,0x0c,0x0a,0x0d,0xec,0x0e,0x5e,0x0f,0x2c,0x11,0x3a,0x11,0xec,0x13,0x4e,0x14,0x04,0x14,0x86,0x14,0xe0,0x15,0xa2,0x16,0x18,0x16,0x2a, -0x16,0x54,0x17,0xa6,0x19,0xe8,0x1a,0x0a,0x1b,0x20,0x1b,0x9e,0x1b,0xc8,0x00,0x36,0x00,0x24,0xff,0xe4,0x00,0x3b,0xff,0xd2,0x00,0x3c,0xff,0xd3,0x00,0x82,0xff,0xe4,0x00,0x83,0xff,0xe4,0x00,0x84,0xff,0xe4,0x00,0x85,0xff,0xe4,0x00,0x86,0xff,0xe4,0x00,0x87,0xff,0xe4,0x00,0x9f,0xff,0xd3,0x00,0xc2,0xff,0xe4,0x00,0xc4,0xff,0xe4, -0x00,0xc6,0xff,0xe4,0x01,0x38,0xff,0xd3,0x01,0x3a,0xff,0xd3,0x01,0x48,0xff,0xe4,0x01,0x63,0xff,0xe4,0x01,0x69,0xff,0xd3,0x01,0x6c,0xff,0xe4,0x01,0x6f,0xff,0xe4,0x01,0x76,0xff,0xe4,0x01,0x7f,0xff,0xd3,0x01,0x81,0xff,0xd2,0x01,0x85,0xff,0xd3,0x01,0xbc,0xff,0xe4,0x01,0xc2,0xff,0xd2,0x01,0xd1,0xff,0xd2,0x02,0x12,0xff,0xe4, -0x02,0x41,0xff,0xd2,0x02,0x59,0xff,0xd3,0x02,0x5b,0xff,0xd3,0x02,0x5d,0xff,0xd2,0x02,0x6c,0xff,0xd2,0x02,0x7b,0xff,0xe4,0x02,0x7d,0xff,0xe4,0x02,0x87,0xff,0xd2,0x02,0xa7,0xff,0xd2,0x02,0xbf,0xff,0xe4,0x02,0xc9,0xff,0xe4,0x02,0xcb,0xff,0xe4,0x02,0xcd,0xff,0xe4,0x02,0xcf,0xff,0xe4,0x02,0xd1,0xff,0xe4,0x02,0xd3,0xff,0xe4, -0x02,0xd5,0xff,0xe4,0x02,0xd7,0xff,0xe4,0x02,0xd9,0xff,0xe4,0x02,0xdb,0xff,0xe4,0x02,0xdd,0xff,0xe4,0x02,0xdf,0xff,0xe4,0x03,0x1b,0xff,0xd3,0x03,0x1d,0xff,0xd3,0x03,0x1f,0xff,0xd3,0x03,0x21,0xff,0xd3,0x00,0x27,0x00,0x0f,0xff,0x1e,0x00,0x11,0xff,0x1e,0x00,0x1d,0xff,0x1e,0x00,0x24,0xff,0xcd,0x00,0x82,0xff,0xcd,0x00,0x83, -0xff,0xcd,0x00,0x84,0xff,0xcd,0x00,0x85,0xff,0xcd,0x00,0x86,0xff,0xcd,0x00,0x87,0xff,0xcd,0x00,0xc2,0xff,0xcd,0x00,0xc4,0xff,0xcd,0x00,0xc6,0xff,0xcd,0x01,0x48,0xff,0xcd,0x01,0x63,0xff,0xcd,0x01,0x6c,0xff,0xcd,0x01,0x6f,0xff,0xcd,0x01,0x76,0xff,0xcd,0x01,0xbc,0xff,0xcd,0x02,0x12,0xff,0xcd,0x02,0x7b,0xff,0xcd,0x02,0x7d, -0xff,0xcd,0x02,0xbf,0xff,0xcd,0x02,0xc9,0xff,0xcd,0x02,0xcb,0xff,0xcd,0x02,0xcd,0xff,0xcd,0x02,0xcf,0xff,0xcd,0x02,0xd1,0xff,0xcd,0x02,0xd3,0xff,0xcd,0x02,0xd5,0xff,0xcd,0x02,0xd7,0xff,0xcd,0x02,0xd9,0xff,0xcd,0x02,0xdb,0xff,0xcd,0x02,0xdd,0xff,0xcd,0x02,0xdf,0xff,0xcd,0x03,0x36,0xff,0x1e,0x03,0x3a,0xff,0x1e,0x03,0x3e, -0xff,0x1e,0x03,0x3f,0xff,0x1e,0x00,0xa6,0x00,0x46,0xff,0xdc,0x00,0x47,0xff,0xdc,0x00,0x48,0xff,0xdc,0x00,0x4a,0xff,0xdc,0x00,0x50,0xff,0xf3,0x00,0x51,0xff,0xf3,0x00,0x52,0xff,0xd6,0x00,0x53,0xff,0xf3,0x00,0x54,0xff,0xdc,0x00,0x58,0xff,0xdd,0x00,0x59,0xff,0xe1,0x00,0x5c,0xff,0xe1,0x00,0xa9,0xff,0xdc,0x00,0xaa,0xff,0xdc, -0x00,0xab,0xff,0xdc,0x00,0xac,0xff,0xdc,0x00,0xad,0xff,0xdc,0x00,0xb3,0xff,0xf3,0x00,0xb4,0xff,0xd6,0x00,0xb5,0xff,0xd6,0x00,0xb6,0xff,0xd6,0x00,0xb7,0xff,0xd6,0x00,0xb8,0xff,0xd6,0x00,0xbb,0xff,0xdd,0x00,0xbc,0xff,0xdd,0x00,0xbd,0xff,0xdd,0x00,0xbe,0xff,0xdd,0x00,0xbf,0xff,0xe1,0x00,0xc1,0xff,0xe1,0x00,0xc9,0xff,0xdc, -0x00,0xcb,0xff,0xdc,0x00,0xcd,0xff,0xdc,0x00,0xcf,0xff,0xdc,0x00,0xd1,0xff,0xdc,0x00,0xd5,0xff,0xdc,0x00,0xd7,0xff,0xdc,0x00,0xd9,0xff,0xdc,0x00,0xdb,0xff,0xdc,0x00,0xdd,0xff,0xdc,0x00,0xdf,0xff,0xdc,0x00,0xe1,0xff,0xdc,0x00,0xe3,0xff,0xdc,0x00,0xe5,0xff,0xdc,0x01,0x06,0xff,0xf3,0x01,0x08,0xff,0xf3,0x01,0x0a,0xff,0xf3, -0x01,0x0b,0xff,0xf3,0x01,0x0f,0xff,0xd6,0x01,0x11,0xff,0xd6,0x01,0x13,0xff,0xd6,0x01,0x15,0xff,0xdc,0x01,0x2b,0xff,0xdd,0x01,0x2d,0xff,0xdd,0x01,0x2f,0xff,0xdd,0x01,0x31,0xff,0xdd,0x01,0x33,0xff,0xdd,0x01,0x35,0xff,0xdd,0x01,0x39,0xff,0xe1,0x01,0x44,0xff,0xdc,0x01,0x46,0xff,0xdd,0x01,0x86,0xff,0xdc,0x01,0x88,0xff,0xf3, -0x01,0x8a,0xff,0xdd,0x01,0x8b,0xff,0xdc,0x01,0x8d,0xff,0xe1,0x01,0x91,0xff,0xf3,0x01,0x97,0xff,0xe1,0x01,0x99,0xff,0xd6,0x01,0x9c,0xff,0xdc,0x01,0x9d,0xff,0xdc,0x01,0x9f,0xff,0xdd,0x01,0xa5,0xff,0xdd,0x01,0xa6,0xff,0xd6,0x01,0xa7,0xff,0xdd,0x01,0xdf,0xff,0xf3,0x01,0xe1,0xff,0xdc,0x01,0xe4,0xff,0xf3,0x01,0xe5,0xff,0xf3, -0x01,0xe6,0xff,0xf3,0x01,0xe8,0xff,0xf3,0x01,0xe9,0xff,0xf3,0x01,0xea,0xff,0xd6,0x01,0xeb,0xff,0xf3,0x01,0xec,0xff,0xf3,0x01,0xed,0xff,0xdc,0x01,0xef,0xff,0xe1,0x01,0xf0,0xff,0xdc,0x01,0xf2,0xff,0xf3,0x01,0xf4,0xff,0xf3,0x01,0xf5,0xff,0xf3,0x01,0xf8,0xff,0xf3,0x01,0xfa,0xff,0xf3,0x01,0xfc,0xff,0xdc,0x01,0xfd,0xff,0xdc, -0x01,0xff,0xff,0xf3,0x02,0x00,0xff,0xdc,0x02,0x06,0xff,0xf3,0x02,0x08,0xff,0xf3,0x02,0x09,0xff,0xf3,0x02,0x0a,0xff,0xe1,0x02,0x1f,0xff,0xd6,0x02,0x21,0xff,0xe1,0x02,0x23,0xff,0xe1,0x02,0x25,0xff,0xdc,0x02,0x29,0xff,0xdc,0x02,0x2d,0xff,0xdc,0x02,0x36,0xff,0xf3,0x02,0x46,0xff,0xf3,0x02,0x4e,0xff,0xf3,0x02,0x50,0xff,0xf3, -0x02,0x54,0xff,0xdc,0x02,0x56,0xff,0xdc,0x02,0x5a,0xff,0xe1,0x02,0x73,0xff,0xf3,0x02,0x75,0xff,0xf3,0x02,0x79,0xff,0xf3,0x02,0x82,0xff,0xdc,0x02,0x84,0xff,0xdc,0x02,0x86,0xff,0xdc,0x02,0x8e,0xff,0xf3,0x02,0x90,0xff,0xf3,0x02,0x92,0xff,0xd6,0x02,0x94,0xff,0xdc,0x02,0x96,0xff,0xd6,0x02,0x9a,0xff,0xe1,0x02,0x9c,0xff,0xe1, -0x02,0x9e,0xff,0xe1,0x02,0xa2,0xff,0xf3,0x02,0xa4,0xff,0xf3,0x02,0xa6,0xff,0xf3,0x02,0xac,0xff,0xdc,0x02,0xad,0xff,0xdc,0x02,0xae,0xff,0xdc,0x02,0xb8,0xff,0xdc,0x02,0xc2,0xff,0xf3,0x02,0xe2,0xff,0xdc,0x02,0xe4,0xff,0xdc,0x02,0xe6,0xff,0xdc,0x02,0xe8,0xff,0xdc,0x02,0xea,0xff,0xdc,0x02,0xec,0xff,0xdc,0x02,0xee,0xff,0xdc, -0x02,0xf0,0xff,0xdc,0x02,0xf6,0xff,0xd6,0x02,0xf8,0xff,0xd6,0x02,0xfa,0xff,0xd6,0x02,0xfc,0xff,0xd6,0x02,0xfe,0xff,0xd6,0x03,0x00,0xff,0xd6,0x03,0x02,0xff,0xd6,0x03,0x04,0xff,0xdc,0x03,0x06,0xff,0xdc,0x03,0x08,0xff,0xdc,0x03,0x0a,0xff,0xd6,0x03,0x0c,0xff,0xdc,0x03,0x0e,0xff,0xdd,0x03,0x10,0xff,0xdd,0x03,0x12,0xff,0xdd, -0x03,0x14,0xff,0xdd,0x03,0x16,0xff,0xdd,0x03,0x18,0xff,0xdd,0x03,0x1a,0xff,0xdd,0x03,0x1c,0xff,0xe1,0x03,0x1e,0xff,0xe1,0x03,0x20,0xff,0xe1,0x03,0x22,0xff,0xe1,0x00,0x71,0x00,0x05,0xff,0xda,0x00,0x0a,0xff,0xda,0x00,0x46,0xff,0xf0,0x00,0x47,0xff,0xf0,0x00,0x48,0xff,0xf0,0x00,0x4a,0xff,0xf0,0x00,0x54,0xff,0xf0,0x00,0x58, -0xff,0xef,0x00,0x59,0xff,0xdc,0x00,0x5c,0xff,0xdc,0x00,0xa9,0xff,0xf0,0x00,0xaa,0xff,0xf0,0x00,0xab,0xff,0xf0,0x00,0xac,0xff,0xf0,0x00,0xad,0xff,0xf0,0x00,0xbb,0xff,0xef,0x00,0xbc,0xff,0xef,0x00,0xbd,0xff,0xef,0x00,0xbe,0xff,0xef,0x00,0xbf,0xff,0xdc,0x00,0xc1,0xff,0xdc,0x00,0xc9,0xff,0xf0,0x00,0xcb,0xff,0xf0,0x00,0xcd, -0xff,0xf0,0x00,0xcf,0xff,0xf0,0x00,0xd1,0xff,0xf0,0x00,0xd5,0xff,0xf0,0x00,0xd7,0xff,0xf0,0x00,0xd9,0xff,0xf0,0x00,0xdb,0xff,0xf0,0x00,0xdd,0xff,0xf0,0x00,0xdf,0xff,0xf0,0x00,0xe1,0xff,0xf0,0x00,0xe3,0xff,0xf0,0x00,0xe5,0xff,0xf0,0x01,0x15,0xff,0xf0,0x01,0x2b,0xff,0xef,0x01,0x2d,0xff,0xef,0x01,0x2f,0xff,0xef,0x01,0x31, -0xff,0xef,0x01,0x33,0xff,0xef,0x01,0x35,0xff,0xef,0x01,0x39,0xff,0xdc,0x01,0x44,0xff,0xf0,0x01,0x46,0xff,0xef,0x01,0x51,0xff,0xda,0x01,0x86,0xff,0xf0,0x01,0x8a,0xff,0xef,0x01,0x8b,0xff,0xf0,0x01,0x8d,0xff,0xdc,0x01,0x97,0xff,0xdc,0x01,0x9c,0xff,0xf0,0x01,0x9d,0xff,0xf0,0x01,0x9f,0xff,0xef,0x01,0xa5,0xff,0xef,0x01,0xa7, -0xff,0xef,0x01,0xe1,0xff,0xf0,0x01,0xed,0xff,0xf0,0x01,0xef,0xff,0xdc,0x01,0xf0,0xff,0xf0,0x01,0xfc,0xff,0xf0,0x01,0xfd,0xff,0xf0,0x02,0x00,0xff,0xf0,0x02,0x0a,0xff,0xdc,0x02,0x21,0xff,0xdc,0x02,0x23,0xff,0xdc,0x02,0x25,0xff,0xf0,0x02,0x29,0xff,0xf0,0x02,0x2d,0xff,0xf0,0x02,0x54,0xff,0xf0,0x02,0x56,0xff,0xf0,0x02,0x5a, -0xff,0xdc,0x02,0x82,0xff,0xf0,0x02,0x84,0xff,0xf0,0x02,0x86,0xff,0xf0,0x02,0x94,0xff,0xf0,0x02,0x9a,0xff,0xdc,0x02,0x9c,0xff,0xdc,0x02,0x9e,0xff,0xdc,0x02,0xac,0xff,0xf0,0x02,0xad,0xff,0xf0,0x02,0xae,0xff,0xf0,0x02,0xb8,0xff,0xf0,0x02,0xe2,0xff,0xf0,0x02,0xe4,0xff,0xf0,0x02,0xe6,0xff,0xf0,0x02,0xe8,0xff,0xf0,0x02,0xea, -0xff,0xf0,0x02,0xec,0xff,0xf0,0x02,0xee,0xff,0xf0,0x02,0xf0,0xff,0xf0,0x03,0x04,0xff,0xf0,0x03,0x06,0xff,0xf0,0x03,0x08,0xff,0xf0,0x03,0x0c,0xff,0xf0,0x03,0x0e,0xff,0xef,0x03,0x10,0xff,0xef,0x03,0x12,0xff,0xef,0x03,0x14,0xff,0xef,0x03,0x16,0xff,0xef,0x03,0x18,0xff,0xef,0x03,0x1a,0xff,0xef,0x03,0x1c,0xff,0xdc,0x03,0x1e, -0xff,0xdc,0x03,0x20,0xff,0xdc,0x03,0x22,0xff,0xdc,0x03,0x34,0xff,0xda,0x03,0x35,0xff,0xda,0x03,0x37,0xff,0xda,0x03,0x38,0xff,0xda,0x03,0x39,0xff,0xda,0x03,0x41,0xff,0xda,0x03,0x42,0xff,0xda,0x00,0x34,0x00,0x05,0xff,0xa0,0x00,0x0a,0xff,0xa0,0x00,0x58,0xff,0xf1,0x00,0x59,0xff,0xc5,0x00,0x5c,0xff,0xc5,0x00,0xbb,0xff,0xf1, -0x00,0xbc,0xff,0xf1,0x00,0xbd,0xff,0xf1,0x00,0xbe,0xff,0xf1,0x00,0xbf,0xff,0xc5,0x00,0xc1,0xff,0xc5,0x01,0x2b,0xff,0xf1,0x01,0x2d,0xff,0xf1,0x01,0x2f,0xff,0xf1,0x01,0x31,0xff,0xf1,0x01,0x33,0xff,0xf1,0x01,0x35,0xff,0xf1,0x01,0x39,0xff,0xc5,0x01,0x46,0xff,0xf1,0x01,0x51,0xff,0xa0,0x01,0x8a,0xff,0xf1,0x01,0x8d,0xff,0xc5, -0x01,0x97,0xff,0xc5,0x01,0x9f,0xff,0xf1,0x01,0xa5,0xff,0xf1,0x01,0xa7,0xff,0xf1,0x01,0xef,0xff,0xc5,0x02,0x0a,0xff,0xc5,0x02,0x21,0xff,0xc5,0x02,0x23,0xff,0xc5,0x02,0x5a,0xff,0xc5,0x02,0x9a,0xff,0xc5,0x02,0x9c,0xff,0xc5,0x02,0x9e,0xff,0xc5,0x03,0x0e,0xff,0xf1,0x03,0x10,0xff,0xf1,0x03,0x12,0xff,0xf1,0x03,0x14,0xff,0xf1, -0x03,0x16,0xff,0xf1,0x03,0x18,0xff,0xf1,0x03,0x1a,0xff,0xf1,0x03,0x1c,0xff,0xc5,0x03,0x1e,0xff,0xc5,0x03,0x20,0xff,0xc5,0x03,0x22,0xff,0xc5,0x03,0x34,0xff,0xa0,0x03,0x35,0xff,0xa0,0x03,0x37,0xff,0xa0,0x03,0x38,0xff,0xa0,0x03,0x39,0xff,0xa0,0x03,0x41,0xff,0xa0,0x03,0x42,0xff,0xa0,0x00,0x3d,0x00,0x46,0xff,0xe7,0x00,0x47, -0xff,0xe7,0x00,0x48,0xff,0xe7,0x00,0x4a,0xff,0xe7,0x00,0x54,0xff,0xe7,0x00,0xa9,0xff,0xe7,0x00,0xaa,0xff,0xe7,0x00,0xab,0xff,0xe7,0x00,0xac,0xff,0xe7,0x00,0xad,0xff,0xe7,0x00,0xc9,0xff,0xe7,0x00,0xcb,0xff,0xe7,0x00,0xcd,0xff,0xe7,0x00,0xcf,0xff,0xe7,0x00,0xd1,0xff,0xe7,0x00,0xd5,0xff,0xe7,0x00,0xd7,0xff,0xe7,0x00,0xd9, -0xff,0xe7,0x00,0xdb,0xff,0xe7,0x00,0xdd,0xff,0xe7,0x00,0xdf,0xff,0xe7,0x00,0xe1,0xff,0xe7,0x00,0xe3,0xff,0xe7,0x00,0xe5,0xff,0xe7,0x01,0x15,0xff,0xe7,0x01,0x44,0xff,0xe7,0x01,0x86,0xff,0xe7,0x01,0x8b,0xff,0xe7,0x01,0x9c,0xff,0xe7,0x01,0x9d,0xff,0xe7,0x01,0xe1,0xff,0xe7,0x01,0xed,0xff,0xe7,0x01,0xf0,0xff,0xe7,0x01,0xfc, -0xff,0xe7,0x01,0xfd,0xff,0xe7,0x02,0x00,0xff,0xe7,0x02,0x25,0xff,0xe7,0x02,0x29,0xff,0xe7,0x02,0x2d,0xff,0xe7,0x02,0x54,0xff,0xe7,0x02,0x56,0xff,0xe7,0x02,0x82,0xff,0xe7,0x02,0x84,0xff,0xe7,0x02,0x86,0xff,0xe7,0x02,0x94,0xff,0xe7,0x02,0xac,0xff,0xe7,0x02,0xad,0xff,0xe7,0x02,0xae,0xff,0xe7,0x02,0xb8,0xff,0xe7,0x02,0xe2, -0xff,0xe7,0x02,0xe4,0xff,0xe7,0x02,0xe6,0xff,0xe7,0x02,0xe8,0xff,0xe7,0x02,0xea,0xff,0xe7,0x02,0xec,0xff,0xe7,0x02,0xee,0xff,0xe7,0x02,0xf0,0xff,0xe7,0x03,0x04,0xff,0xe7,0x03,0x06,0xff,0xe7,0x03,0x08,0xff,0xe7,0x03,0x0c,0xff,0xe7,0x00,0x71,0x00,0x05,0x00,0x0c,0x00,0x0a,0x00,0x0c,0x00,0x46,0xff,0xe8,0x00,0x47,0xff,0xe8, -0x00,0x48,0xff,0xe8,0x00,0x4a,0xff,0xe8,0x00,0x52,0xff,0xea,0x00,0x54,0xff,0xe8,0x00,0x59,0x00,0x0b,0x00,0x5c,0x00,0x0b,0x00,0xa9,0xff,0xe8,0x00,0xaa,0xff,0xe8,0x00,0xab,0xff,0xe8,0x00,0xac,0xff,0xe8,0x00,0xad,0xff,0xe8,0x00,0xb4,0xff,0xea,0x00,0xb5,0xff,0xea,0x00,0xb6,0xff,0xea,0x00,0xb7,0xff,0xea,0x00,0xb8,0xff,0xea, -0x00,0xbf,0x00,0x0b,0x00,0xc1,0x00,0x0b,0x00,0xc9,0xff,0xe8,0x00,0xcb,0xff,0xe8,0x00,0xcd,0xff,0xe8,0x00,0xcf,0xff,0xe8,0x00,0xd1,0xff,0xe8,0x00,0xd5,0xff,0xe8,0x00,0xd7,0xff,0xe8,0x00,0xd9,0xff,0xe8,0x00,0xdb,0xff,0xe8,0x00,0xdd,0xff,0xe8,0x00,0xdf,0xff,0xe8,0x00,0xe1,0xff,0xe8,0x00,0xe3,0xff,0xe8,0x00,0xe5,0xff,0xe8, -0x01,0x0f,0xff,0xea,0x01,0x11,0xff,0xea,0x01,0x13,0xff,0xea,0x01,0x15,0xff,0xe8,0x01,0x39,0x00,0x0b,0x01,0x44,0xff,0xe8,0x01,0x51,0x00,0x0c,0x01,0x86,0xff,0xe8,0x01,0x8b,0xff,0xe8,0x01,0x8d,0x00,0x0b,0x01,0x97,0x00,0x0b,0x01,0x99,0xff,0xea,0x01,0x9c,0xff,0xe8,0x01,0x9d,0xff,0xe8,0x01,0xa6,0xff,0xea,0x01,0xe1,0xff,0xe8, -0x01,0xea,0xff,0xea,0x01,0xed,0xff,0xe8,0x01,0xef,0x00,0x0b,0x01,0xf0,0xff,0xe8,0x01,0xfc,0xff,0xe8,0x01,0xfd,0xff,0xe8,0x02,0x00,0xff,0xe8,0x02,0x0a,0x00,0x0b,0x02,0x1f,0xff,0xea,0x02,0x21,0x00,0x0b,0x02,0x23,0x00,0x0b,0x02,0x25,0xff,0xe8,0x02,0x29,0xff,0xe8,0x02,0x2d,0xff,0xe8,0x02,0x54,0xff,0xe8,0x02,0x56,0xff,0xe8, -0x02,0x5a,0x00,0x0b,0x02,0x82,0xff,0xe8,0x02,0x84,0xff,0xe8,0x02,0x86,0xff,0xe8,0x02,0x92,0xff,0xea,0x02,0x94,0xff,0xe8,0x02,0x96,0xff,0xea,0x02,0x9a,0x00,0x0b,0x02,0x9c,0x00,0x0b,0x02,0x9e,0x00,0x0b,0x02,0xac,0xff,0xe8,0x02,0xad,0xff,0xe8,0x02,0xae,0xff,0xe8,0x02,0xb8,0xff,0xe8,0x02,0xe2,0xff,0xe8,0x02,0xe4,0xff,0xe8, -0x02,0xe6,0xff,0xe8,0x02,0xe8,0xff,0xe8,0x02,0xea,0xff,0xe8,0x02,0xec,0xff,0xe8,0x02,0xee,0xff,0xe8,0x02,0xf0,0xff,0xe8,0x02,0xf6,0xff,0xea,0x02,0xf8,0xff,0xea,0x02,0xfa,0xff,0xea,0x02,0xfc,0xff,0xea,0x02,0xfe,0xff,0xea,0x03,0x00,0xff,0xea,0x03,0x02,0xff,0xea,0x03,0x04,0xff,0xe8,0x03,0x06,0xff,0xe8,0x03,0x08,0xff,0xe8, -0x03,0x0a,0xff,0xea,0x03,0x0c,0xff,0xe8,0x03,0x1c,0x00,0x0b,0x03,0x1e,0x00,0x0b,0x03,0x20,0x00,0x0b,0x03,0x22,0x00,0x0b,0x03,0x34,0x00,0x0c,0x03,0x35,0x00,0x0c,0x03,0x37,0x00,0x0c,0x03,0x38,0x00,0x0c,0x03,0x39,0x00,0x0c,0x03,0x41,0x00,0x0c,0x03,0x42,0x00,0x0c,0x00,0x0c,0x00,0x5b,0xff,0xed,0x00,0x5d,0xff,0xed,0x01,0x3c, -0xff,0xed,0x01,0x3e,0xff,0xed,0x01,0x40,0xff,0xed,0x01,0xe2,0xff,0xed,0x01,0xf1,0xff,0xed,0x02,0x42,0xff,0xed,0x02,0x5e,0xff,0xed,0x02,0x6d,0xff,0xed,0x02,0x88,0xff,0xed,0x02,0xa8,0xff,0xed,0x00,0x5e,0x00,0x05,0x00,0x0b,0x00,0x0a,0x00,0x0b,0x00,0x46,0xff,0xeb,0x00,0x47,0xff,0xeb,0x00,0x48,0xff,0xeb,0x00,0x4a,0xff,0xeb, -0x00,0x52,0xff,0xe9,0x00,0x54,0xff,0xeb,0x00,0xa9,0xff,0xeb,0x00,0xaa,0xff,0xeb,0x00,0xab,0xff,0xeb,0x00,0xac,0xff,0xeb,0x00,0xad,0xff,0xeb,0x00,0xb4,0xff,0xe9,0x00,0xb5,0xff,0xe9,0x00,0xb6,0xff,0xe9,0x00,0xb7,0xff,0xe9,0x00,0xb8,0xff,0xe9,0x00,0xc9,0xff,0xeb,0x00,0xcb,0xff,0xeb,0x00,0xcd,0xff,0xeb,0x00,0xcf,0xff,0xeb, -0x00,0xd1,0xff,0xeb,0x00,0xd5,0xff,0xeb,0x00,0xd7,0xff,0xeb,0x00,0xd9,0xff,0xeb,0x00,0xdb,0xff,0xeb,0x00,0xdd,0xff,0xeb,0x00,0xdf,0xff,0xeb,0x00,0xe1,0xff,0xeb,0x00,0xe3,0xff,0xeb,0x00,0xe5,0xff,0xeb,0x01,0x0f,0xff,0xe9,0x01,0x11,0xff,0xe9,0x01,0x13,0xff,0xe9,0x01,0x15,0xff,0xeb,0x01,0x44,0xff,0xeb,0x01,0x51,0x00,0x0b, -0x01,0x86,0xff,0xeb,0x01,0x8b,0xff,0xeb,0x01,0x99,0xff,0xe9,0x01,0x9c,0xff,0xeb,0x01,0x9d,0xff,0xeb,0x01,0xa6,0xff,0xe9,0x01,0xe1,0xff,0xeb,0x01,0xea,0xff,0xe9,0x01,0xed,0xff,0xeb,0x01,0xf0,0xff,0xeb,0x01,0xfc,0xff,0xeb,0x01,0xfd,0xff,0xeb,0x02,0x00,0xff,0xeb,0x02,0x1f,0xff,0xe9,0x02,0x25,0xff,0xeb,0x02,0x29,0xff,0xeb, -0x02,0x2d,0xff,0xeb,0x02,0x54,0xff,0xeb,0x02,0x56,0xff,0xeb,0x02,0x82,0xff,0xeb,0x02,0x84,0xff,0xeb,0x02,0x86,0xff,0xeb,0x02,0x92,0xff,0xe9,0x02,0x94,0xff,0xeb,0x02,0x96,0xff,0xe9,0x02,0xac,0xff,0xeb,0x02,0xad,0xff,0xeb,0x02,0xae,0xff,0xeb,0x02,0xb8,0xff,0xeb,0x02,0xe2,0xff,0xeb,0x02,0xe4,0xff,0xeb,0x02,0xe6,0xff,0xeb, -0x02,0xe8,0xff,0xeb,0x02,0xea,0xff,0xeb,0x02,0xec,0xff,0xeb,0x02,0xee,0xff,0xeb,0x02,0xf0,0xff,0xeb,0x02,0xf6,0xff,0xe9,0x02,0xf8,0xff,0xe9,0x02,0xfa,0xff,0xe9,0x02,0xfc,0xff,0xe9,0x02,0xfe,0xff,0xe9,0x03,0x00,0xff,0xe9,0x03,0x02,0xff,0xe9,0x03,0x04,0xff,0xeb,0x03,0x06,0xff,0xeb,0x03,0x08,0xff,0xeb,0x03,0x0a,0xff,0xe9, -0x03,0x0c,0xff,0xeb,0x03,0x34,0x00,0x0b,0x03,0x35,0x00,0x0b,0x03,0x37,0x00,0x0b,0x03,0x38,0x00,0x0b,0x03,0x39,0x00,0x0b,0x03,0x41,0x00,0x0b,0x03,0x42,0x00,0x0b,0x00,0x0c,0x00,0x5b,0xff,0xf2,0x00,0x5d,0xff,0xf2,0x01,0x3c,0xff,0xf2,0x01,0x3e,0xff,0xf2,0x01,0x40,0xff,0xf2,0x01,0xe2,0xff,0xf2,0x01,0xf1,0xff,0xf2,0x02,0x42, -0xff,0xf2,0x02,0x5e,0xff,0xf2,0x02,0x6d,0xff,0xf2,0x02,0x88,0xff,0xf2,0x02,0xa8,0xff,0xf2,0x00,0x1f,0x00,0x59,0xff,0xf4,0x00,0x5b,0xff,0xf2,0x00,0x5c,0xff,0xf4,0x00,0x5d,0xff,0xf3,0x00,0xbf,0xff,0xf4,0x00,0xc1,0xff,0xf4,0x01,0x39,0xff,0xf4,0x01,0x3c,0xff,0xf3,0x01,0x3e,0xff,0xf3,0x01,0x40,0xff,0xf3,0x01,0x8d,0xff,0xf4, -0x01,0x97,0xff,0xf4,0x01,0xe2,0xff,0xf2,0x01,0xef,0xff,0xf4,0x01,0xf1,0xff,0xf2,0x02,0x0a,0xff,0xf4,0x02,0x21,0xff,0xf4,0x02,0x23,0xff,0xf4,0x02,0x42,0xff,0xf2,0x02,0x5a,0xff,0xf4,0x02,0x5e,0xff,0xf2,0x02,0x6d,0xff,0xf2,0x02,0x88,0xff,0xf2,0x02,0x9a,0xff,0xf4,0x02,0x9c,0xff,0xf4,0x02,0x9e,0xff,0xf4,0x02,0xa8,0xff,0xf2, -0x03,0x1c,0xff,0xf4,0x03,0x1e,0xff,0xf4,0x03,0x20,0xff,0xf4,0x03,0x22,0xff,0xf4,0x00,0x78,0x00,0x05,0xff,0xca,0x00,0x0a,0xff,0xca,0x00,0x37,0xff,0xd2,0x00,0x39,0xff,0xd4,0x00,0x3b,0xff,0xf4,0x00,0x3c,0xff,0xd3,0x00,0x50,0xff,0xd1,0x00,0x51,0xff,0xd1,0x00,0x53,0xff,0xd1,0x00,0x59,0xff,0xe6,0x00,0x5b,0xff,0xef,0x00,0x5c, -0xff,0xe6,0x00,0x9f,0xff,0xd3,0x00,0xb3,0xff,0xd1,0x00,0xbf,0xff,0xe6,0x00,0xc1,0xff,0xe6,0x01,0x06,0xff,0xd1,0x01,0x08,0xff,0xd1,0x01,0x0a,0xff,0xd1,0x01,0x0b,0xff,0xd1,0x01,0x24,0xff,0xd2,0x01,0x26,0xff,0xd2,0x01,0x38,0xff,0xd3,0x01,0x39,0xff,0xe6,0x01,0x3a,0xff,0xd3,0x01,0x51,0xff,0xca,0x01,0x69,0xff,0xd3,0x01,0x7f, -0xff,0xd3,0x01,0x81,0xff,0xf4,0x01,0x85,0xff,0xd3,0x01,0x88,0xff,0xd1,0x01,0x8d,0xff,0xe6,0x01,0x91,0xff,0xd1,0x01,0x97,0xff,0xe6,0x01,0xae,0xff,0xd2,0x01,0xb7,0xff,0xd2,0x01,0xba,0xff,0xed,0x01,0xc2,0xff,0xf4,0x01,0xce,0xff,0xd2,0x01,0xcf,0xff,0xed,0x01,0xd1,0xff,0xf4,0x01,0xd3,0xff,0xe1,0x01,0xdf,0xff,0xd1,0x01,0xe2, -0xff,0xef,0x01,0xe4,0xff,0xd1,0x01,0xe5,0xff,0xd1,0x01,0xe6,0xff,0xd1,0x01,0xe8,0xff,0xd1,0x01,0xe9,0xff,0xd1,0x01,0xeb,0xff,0xd1,0x01,0xec,0xff,0xd1,0x01,0xef,0xff,0xe6,0x01,0xf1,0xff,0xef,0x01,0xf2,0xff,0xd1,0x01,0xf4,0xff,0xd1,0x01,0xf5,0xff,0xd1,0x01,0xf8,0xff,0xd1,0x01,0xfa,0xff,0xd1,0x01,0xff,0xff,0xd1,0x02,0x06, -0xff,0xd1,0x02,0x08,0xff,0xd1,0x02,0x09,0xff,0xd1,0x02,0x0a,0xff,0xe6,0x02,0x20,0xff,0xd4,0x02,0x21,0xff,0xe6,0x02,0x22,0xff,0xd4,0x02,0x23,0xff,0xe6,0x02,0x36,0xff,0xd1,0x02,0x41,0xff,0xf4,0x02,0x42,0xff,0xef,0x02,0x46,0xff,0xd1,0x02,0x4b,0xff,0xd2,0x02,0x4e,0xff,0xd1,0x02,0x50,0xff,0xd1,0x02,0x57,0xff,0xd2,0x02,0x59, -0xff,0xd3,0x02,0x5a,0xff,0xe6,0x02,0x5b,0xff,0xd3,0x02,0x5d,0xff,0xf4,0x02,0x5e,0xff,0xef,0x02,0x5f,0xff,0xd2,0x02,0x61,0xff,0xe1,0x02,0x6c,0xff,0xf4,0x02,0x6d,0xff,0xef,0x02,0x73,0xff,0xd1,0x02,0x75,0xff,0xd1,0x02,0x76,0xff,0xe1,0x02,0x79,0xff,0xd1,0x02,0x87,0xff,0xf4,0x02,0x88,0xff,0xef,0x02,0x8e,0xff,0xd1,0x02,0x90, -0xff,0xd1,0x02,0x99,0xff,0xed,0x02,0x9a,0xff,0xe6,0x02,0x9b,0xff,0xed,0x02,0x9c,0xff,0xe6,0x02,0x9d,0xff,0xed,0x02,0x9e,0xff,0xe6,0x02,0x9f,0xff,0xe1,0x02,0xa2,0xff,0xd1,0x02,0xa4,0xff,0xd1,0x02,0xa6,0xff,0xd1,0x02,0xa7,0xff,0xf4,0x02,0xa8,0xff,0xef,0x02,0xc2,0xff,0xd1,0x03,0x1b,0xff,0xd3,0x03,0x1c,0xff,0xe6,0x03,0x1d, -0xff,0xd3,0x03,0x1e,0xff,0xe6,0x03,0x1f,0xff,0xd3,0x03,0x20,0xff,0xe6,0x03,0x21,0xff,0xd3,0x03,0x22,0xff,0xe6,0x03,0x34,0xff,0xca,0x03,0x35,0xff,0xca,0x03,0x37,0xff,0xca,0x03,0x38,0xff,0xca,0x03,0x39,0xff,0xca,0x03,0x41,0xff,0xca,0x03,0x42,0xff,0xca,0x00,0x1c,0x00,0x37,0xff,0xbe,0x00,0x59,0xff,0xef,0x00,0x5c,0xff,0xef, -0x00,0xbf,0xff,0xef,0x00,0xc1,0xff,0xef,0x01,0x24,0xff,0xbe,0x01,0x26,0xff,0xbe,0x01,0x39,0xff,0xef,0x01,0x8d,0xff,0xef,0x01,0x97,0xff,0xef,0x01,0xae,0xff,0xbe,0x01,0xb7,0xff,0xbe,0x01,0xce,0xff,0xbe,0x01,0xef,0xff,0xef,0x02,0x0a,0xff,0xef,0x02,0x21,0xff,0xef,0x02,0x23,0xff,0xef,0x02,0x4b,0xff,0xbe,0x02,0x57,0xff,0xbe, -0x02,0x5a,0xff,0xef,0x02,0x5f,0xff,0xbe,0x02,0x9a,0xff,0xef,0x02,0x9c,0xff,0xef,0x02,0x9e,0xff,0xef,0x03,0x1c,0xff,0xef,0x03,0x1e,0xff,0xef,0x03,0x20,0xff,0xef,0x03,0x22,0xff,0xef,0x00,0x33,0x00,0x37,0xff,0xe6,0x00,0x39,0xff,0xe7,0x00,0x3b,0xff,0xf2,0x00,0x3c,0xff,0xe7,0x00,0x5b,0xff,0xf1,0x00,0x9f,0xff,0xe7,0x01,0x24, -0xff,0xe6,0x01,0x26,0xff,0xe6,0x01,0x38,0xff,0xe7,0x01,0x3a,0xff,0xe7,0x01,0x69,0xff,0xe7,0x01,0x7f,0xff,0xe7,0x01,0x81,0xff,0xf2,0x01,0x85,0xff,0xe7,0x01,0xae,0xff,0xe6,0x01,0xb7,0xff,0xe6,0x01,0xba,0xff,0xee,0x01,0xc2,0xff,0xf2,0x01,0xce,0xff,0xe6,0x01,0xcf,0xff,0xee,0x01,0xd1,0xff,0xf2,0x01,0xd3,0xff,0xe8,0x01,0xe2, -0xff,0xf1,0x01,0xf1,0xff,0xf1,0x02,0x20,0xff,0xe7,0x02,0x22,0xff,0xe7,0x02,0x41,0xff,0xf2,0x02,0x42,0xff,0xf1,0x02,0x4b,0xff,0xe6,0x02,0x57,0xff,0xe6,0x02,0x59,0xff,0xe7,0x02,0x5b,0xff,0xe7,0x02,0x5d,0xff,0xf2,0x02,0x5e,0xff,0xf1,0x02,0x5f,0xff,0xe6,0x02,0x61,0xff,0xe8,0x02,0x6c,0xff,0xf2,0x02,0x6d,0xff,0xf1,0x02,0x76, -0xff,0xe8,0x02,0x87,0xff,0xf2,0x02,0x88,0xff,0xf1,0x02,0x99,0xff,0xee,0x02,0x9b,0xff,0xee,0x02,0x9d,0xff,0xee,0x02,0x9f,0xff,0xe8,0x02,0xa7,0xff,0xf2,0x02,0xa8,0xff,0xf1,0x03,0x1b,0xff,0xe7,0x03,0x1d,0xff,0xe7,0x03,0x1f,0xff,0xe7,0x03,0x21,0xff,0xe7,0x00,0x83,0x00,0x24,0x00,0x10,0x00,0x26,0xff,0xe8,0x00,0x2a,0xff,0xe8, -0x00,0x32,0xff,0xe8,0x00,0x34,0xff,0xe8,0x00,0x37,0xff,0xe0,0x00,0x39,0xff,0xe0,0x00,0x3c,0xff,0xdf,0x00,0x82,0x00,0x10,0x00,0x83,0x00,0x10,0x00,0x84,0x00,0x10,0x00,0x85,0x00,0x10,0x00,0x86,0x00,0x10,0x00,0x87,0x00,0x10,0x00,0x89,0xff,0xe8,0x00,0x94,0xff,0xe8,0x00,0x95,0xff,0xe8,0x00,0x96,0xff,0xe8,0x00,0x97,0xff,0xe8, -0x00,0x98,0xff,0xe8,0x00,0x9a,0xff,0xe8,0x00,0x9f,0xff,0xdf,0x00,0xc2,0x00,0x10,0x00,0xc4,0x00,0x10,0x00,0xc6,0x00,0x10,0x00,0xc8,0xff,0xe8,0x00,0xca,0xff,0xe8,0x00,0xcc,0xff,0xe8,0x00,0xce,0xff,0xe8,0x00,0xde,0xff,0xe8,0x00,0xe0,0xff,0xe8,0x00,0xe2,0xff,0xe8,0x00,0xe4,0xff,0xe8,0x01,0x0e,0xff,0xe8,0x01,0x10,0xff,0xe8, -0x01,0x12,0xff,0xe8,0x01,0x14,0xff,0xe8,0x01,0x24,0xff,0xe0,0x01,0x26,0xff,0xe0,0x01,0x38,0xff,0xdf,0x01,0x3a,0xff,0xdf,0x01,0x43,0xff,0xe8,0x01,0x48,0x00,0x10,0x01,0x4c,0xff,0xe8,0x01,0x63,0x00,0x10,0x01,0x68,0xff,0xe8,0x01,0x69,0xff,0xdf,0x01,0x6c,0x00,0x10,0x01,0x6f,0x00,0x10,0x01,0x73,0xff,0xe8,0x01,0x76,0x00,0x10, -0x01,0x7a,0xff,0xe8,0x01,0x7f,0xff,0xdf,0x01,0x85,0xff,0xdf,0x01,0xae,0xff,0xe0,0x01,0xb0,0xff,0xe8,0x01,0xb5,0x00,0x10,0x01,0xb7,0xff,0xe0,0x01,0xbc,0x00,0x10,0x01,0xc7,0x00,0x10,0x01,0xca,0xff,0xe8,0x01,0xcd,0xff,0xe8,0x01,0xce,0xff,0xe0,0x01,0xd3,0xff,0xe1,0x01,0xe7,0x00,0x10,0x01,0xf3,0xff,0xe0,0x02,0x05,0x00,0x10, -0x02,0x0c,0xff,0xe8,0x02,0x12,0x00,0x10,0x02,0x1e,0xff,0xe8,0x02,0x20,0xff,0xe0,0x02,0x22,0xff,0xe0,0x02,0x24,0xff,0xe8,0x02,0x26,0xff,0xe8,0x02,0x28,0xff,0xe8,0x02,0x2a,0xff,0xe8,0x02,0x2c,0xff,0xe8,0x02,0x4b,0xff,0xe0,0x02,0x53,0xff,0xe8,0x02,0x55,0xff,0xe8,0x02,0x57,0xff,0xe0,0x02,0x59,0xff,0xdf,0x02,0x5b,0xff,0xdf, -0x02,0x5f,0xff,0xe0,0x02,0x61,0xff,0xe1,0x02,0x62,0xff,0xe0,0x02,0x70,0x00,0x10,0x02,0x71,0x00,0x10,0x02,0x76,0xff,0xe1,0x02,0x77,0xff,0xe0,0x02,0x7b,0x00,0x10,0x02,0x7d,0x00,0x10,0x02,0x91,0xff,0xe8,0x02,0x93,0xff,0xe8,0x02,0x95,0xff,0xe8,0x02,0x9f,0xff,0xe1,0x02,0xa0,0xff,0xe0,0x02,0xb3,0x00,0x10,0x02,0xb7,0xff,0xe8, -0x02,0xbd,0x00,0x10,0x02,0xbe,0x00,0x10,0x02,0xbf,0x00,0x10,0x02,0xc9,0x00,0x10,0x02,0xcb,0x00,0x10,0x02,0xcd,0x00,0x10,0x02,0xcf,0x00,0x10,0x02,0xd1,0x00,0x10,0x02,0xd3,0x00,0x10,0x02,0xd5,0x00,0x10,0x02,0xd7,0x00,0x10,0x02,0xd9,0x00,0x10,0x02,0xdb,0x00,0x10,0x02,0xdd,0x00,0x10,0x02,0xdf,0x00,0x10,0x02,0xf5,0xff,0xe8, -0x02,0xf7,0xff,0xe8,0x02,0xf9,0xff,0xe8,0x02,0xfb,0xff,0xe8,0x02,0xfd,0xff,0xe8,0x02,0xff,0xff,0xe8,0x03,0x01,0xff,0xe8,0x03,0x03,0xff,0xe8,0x03,0x05,0xff,0xe8,0x03,0x07,0xff,0xe8,0x03,0x09,0xff,0xe8,0x03,0x0b,0xff,0xe8,0x03,0x1b,0xff,0xdf,0x03,0x1d,0xff,0xdf,0x03,0x1f,0xff,0xdf,0x03,0x21,0xff,0xdf,0x03,0x23,0xff,0xe8, -0x00,0x2c,0x00,0x37,0xff,0xf1,0x00,0x39,0xff,0xf4,0x00,0x3b,0xff,0xf4,0x00,0x3c,0xff,0xf0,0x00,0x9f,0xff,0xf0,0x01,0x24,0xff,0xf1,0x01,0x26,0xff,0xf1,0x01,0x38,0xff,0xf0,0x01,0x3a,0xff,0xf0,0x01,0x69,0xff,0xf0,0x01,0x7f,0xff,0xf0,0x01,0x81,0xff,0xf4,0x01,0x85,0xff,0xf0,0x01,0xae,0xff,0xf1,0x01,0xb5,0xff,0xf5,0x01,0xb7, -0xff,0xf1,0x01,0xba,0xff,0xf3,0x01,0xc2,0xff,0xf4,0x01,0xc7,0xff,0xf5,0x01,0xce,0xff,0xf1,0x01,0xcf,0xff,0xf3,0x01,0xd1,0xff,0xf4,0x02,0x20,0xff,0xf4,0x02,0x22,0xff,0xf4,0x02,0x41,0xff,0xf4,0x02,0x4b,0xff,0xf1,0x02,0x57,0xff,0xf1,0x02,0x59,0xff,0xf0,0x02,0x5b,0xff,0xf0,0x02,0x5d,0xff,0xf4,0x02,0x5f,0xff,0xf1,0x02,0x6c, -0xff,0xf4,0x02,0x70,0xff,0xf5,0x02,0x87,0xff,0xf4,0x02,0x99,0xff,0xf3,0x02,0x9b,0xff,0xf3,0x02,0x9d,0xff,0xf3,0x02,0xa7,0xff,0xf4,0x02,0xb3,0xff,0xf5,0x02,0xbd,0xff,0xf5,0x03,0x1b,0xff,0xf0,0x03,0x1d,0xff,0xf0,0x03,0x1f,0xff,0xf0,0x03,0x21,0xff,0xf0,0x00,0x58,0x00,0x24,0x00,0x0f,0x00,0x37,0xff,0xe6,0x00,0x39,0xff,0xe6, -0x00,0x3b,0x00,0x0e,0x00,0x3c,0xff,0xe6,0x00,0x82,0x00,0x0f,0x00,0x83,0x00,0x0f,0x00,0x84,0x00,0x0f,0x00,0x85,0x00,0x0f,0x00,0x86,0x00,0x0f,0x00,0x87,0x00,0x0f,0x00,0x9f,0xff,0xe6,0x00,0xc2,0x00,0x0f,0x00,0xc4,0x00,0x0f,0x00,0xc6,0x00,0x0f,0x01,0x24,0xff,0xe6,0x01,0x26,0xff,0xe6,0x01,0x38,0xff,0xe6,0x01,0x3a,0xff,0xe6, -0x01,0x48,0x00,0x0f,0x01,0x63,0x00,0x0f,0x01,0x69,0xff,0xe6,0x01,0x6c,0x00,0x0f,0x01,0x6f,0x00,0x0f,0x01,0x76,0x00,0x0f,0x01,0x7f,0xff,0xe6,0x01,0x81,0x00,0x0e,0x01,0x85,0xff,0xe6,0x01,0xae,0xff,0xe6,0x01,0xb5,0x00,0x0e,0x01,0xb7,0xff,0xe6,0x01,0xba,0x00,0x0b,0x01,0xbc,0x00,0x0f,0x01,0xc2,0x00,0x0e,0x01,0xc7,0x00,0x0e, -0x01,0xce,0xff,0xe6,0x01,0xcf,0x00,0x0b,0x01,0xd1,0x00,0x0e,0x01,0xd3,0xff,0xe5,0x01,0xe7,0x00,0x0f,0x01,0xf3,0xff,0xe8,0x02,0x05,0x00,0x0f,0x02,0x12,0x00,0x0f,0x02,0x20,0xff,0xe6,0x02,0x22,0xff,0xe6,0x02,0x41,0x00,0x0e,0x02,0x4b,0xff,0xe6,0x02,0x57,0xff,0xe6,0x02,0x59,0xff,0xe6,0x02,0x5b,0xff,0xe6,0x02,0x5d,0x00,0x0e, -0x02,0x5f,0xff,0xe6,0x02,0x61,0xff,0xe5,0x02,0x62,0xff,0xe8,0x02,0x6c,0x00,0x0e,0x02,0x70,0x00,0x0e,0x02,0x71,0x00,0x0f,0x02,0x76,0xff,0xe5,0x02,0x77,0xff,0xe8,0x02,0x7b,0x00,0x0f,0x02,0x7d,0x00,0x0f,0x02,0x87,0x00,0x0e,0x02,0x99,0x00,0x0b,0x02,0x9b,0x00,0x0b,0x02,0x9d,0x00,0x0b,0x02,0x9f,0xff,0xe5,0x02,0xa0,0xff,0xe8, -0x02,0xa7,0x00,0x0e,0x02,0xb3,0x00,0x0e,0x02,0xbd,0x00,0x0e,0x02,0xbe,0x00,0x0f,0x02,0xbf,0x00,0x0f,0x02,0xc9,0x00,0x0f,0x02,0xcb,0x00,0x0f,0x02,0xcd,0x00,0x0f,0x02,0xcf,0x00,0x0f,0x02,0xd1,0x00,0x0f,0x02,0xd3,0x00,0x0f,0x02,0xd5,0x00,0x0f,0x02,0xd7,0x00,0x0f,0x02,0xd9,0x00,0x0f,0x02,0xdb,0x00,0x0f,0x02,0xdd,0x00,0x0f, -0x02,0xdf,0x00,0x0f,0x03,0x1b,0xff,0xe6,0x03,0x1d,0xff,0xe6,0x03,0x1f,0xff,0xe6,0x03,0x21,0xff,0xe6,0x00,0x2d,0x00,0x37,0xff,0xe3,0x00,0x3b,0xff,0xe5,0x00,0x3c,0xff,0xe4,0x00,0x9f,0xff,0xe4,0x01,0x24,0xff,0xe3,0x01,0x26,0xff,0xe3,0x01,0x38,0xff,0xe4,0x01,0x3a,0xff,0xe4,0x01,0x69,0xff,0xe4,0x01,0x7f,0xff,0xe4,0x01,0x81, -0xff,0xe5,0x01,0x85,0xff,0xe4,0x01,0xae,0xff,0xe3,0x01,0xb5,0xff,0xe5,0x01,0xb7,0xff,0xe3,0x01,0xba,0xff,0xe9,0x01,0xc2,0xff,0xe5,0x01,0xc7,0xff,0xe5,0x01,0xce,0xff,0xe3,0x01,0xcf,0xff,0xe9,0x01,0xd1,0xff,0xe5,0x01,0xe7,0xff,0xea,0x02,0x05,0xff,0xea,0x02,0x41,0xff,0xe5,0x02,0x4b,0xff,0xe3,0x02,0x57,0xff,0xe3,0x02,0x59, -0xff,0xe4,0x02,0x5b,0xff,0xe4,0x02,0x5d,0xff,0xe5,0x02,0x5f,0xff,0xe3,0x02,0x6c,0xff,0xe5,0x02,0x70,0xff,0xe5,0x02,0x71,0xff,0xea,0x02,0x87,0xff,0xe5,0x02,0x99,0xff,0xe9,0x02,0x9b,0xff,0xe9,0x02,0x9d,0xff,0xe9,0x02,0xa7,0xff,0xe5,0x02,0xb3,0xff,0xe5,0x02,0xbd,0xff,0xe5,0x02,0xbe,0xff,0xea,0x03,0x1b,0xff,0xe4,0x03,0x1d, -0xff,0xe4,0x03,0x1f,0xff,0xe4,0x03,0x21,0xff,0xe4,0x00,0x20,0x00,0x37,0xff,0xe2,0x00,0x3b,0xff,0xe4,0x01,0x24,0xff,0xe2,0x01,0x26,0xff,0xe2,0x01,0x81,0xff,0xe4,0x01,0xae,0xff,0xe2,0x01,0xb5,0xff,0xe4,0x01,0xb7,0xff,0xe2,0x01,0xba,0xff,0xe9,0x01,0xc2,0xff,0xe4,0x01,0xc7,0xff,0xe4,0x01,0xce,0xff,0xe2,0x01,0xcf,0xff,0xe9, -0x01,0xd1,0xff,0xe4,0x01,0xe7,0xff,0xeb,0x02,0x05,0xff,0xeb,0x02,0x41,0xff,0xe4,0x02,0x4b,0xff,0xe2,0x02,0x57,0xff,0xe2,0x02,0x5d,0xff,0xe4,0x02,0x5f,0xff,0xe2,0x02,0x6c,0xff,0xe4,0x02,0x70,0xff,0xe4,0x02,0x71,0xff,0xeb,0x02,0x87,0xff,0xe4,0x02,0x99,0xff,0xe9,0x02,0x9b,0xff,0xe9,0x02,0x9d,0xff,0xe9,0x02,0xa7,0xff,0xe4, -0x02,0xb3,0xff,0xe4,0x02,0xbd,0xff,0xe4,0x02,0xbe,0xff,0xeb,0x00,0x16,0x00,0x37,0xff,0xeb,0x00,0x3c,0xff,0xf3,0x00,0x9f,0xff,0xf3,0x01,0x24,0xff,0xeb,0x01,0x26,0xff,0xeb,0x01,0x38,0xff,0xf3,0x01,0x3a,0xff,0xf3,0x01,0x69,0xff,0xf3,0x01,0x7f,0xff,0xf3,0x01,0x85,0xff,0xf3,0x01,0xae,0xff,0xeb,0x01,0xb7,0xff,0xeb,0x01,0xce, -0xff,0xeb,0x02,0x4b,0xff,0xeb,0x02,0x57,0xff,0xeb,0x02,0x59,0xff,0xf3,0x02,0x5b,0xff,0xf3,0x02,0x5f,0xff,0xeb,0x03,0x1b,0xff,0xf3,0x03,0x1d,0xff,0xf3,0x03,0x1f,0xff,0xf3,0x03,0x21,0xff,0xf3,0x00,0x30,0x00,0x50,0xff,0xef,0x00,0x51,0xff,0xef,0x00,0x53,0xff,0xef,0x00,0x5b,0xff,0xf0,0x00,0xb3,0xff,0xef,0x01,0x06,0xff,0xef, -0x01,0x08,0xff,0xef,0x01,0x0a,0xff,0xef,0x01,0x0b,0xff,0xef,0x01,0x88,0xff,0xef,0x01,0x91,0xff,0xef,0x01,0xdf,0xff,0xef,0x01,0xe2,0xff,0xf0,0x01,0xe4,0xff,0xef,0x01,0xe5,0xff,0xef,0x01,0xe6,0xff,0xef,0x01,0xe8,0xff,0xef,0x01,0xe9,0xff,0xef,0x01,0xeb,0xff,0xef,0x01,0xec,0xff,0xef,0x01,0xf1,0xff,0xf0,0x01,0xf2,0xff,0xef, -0x01,0xf4,0xff,0xef,0x01,0xf5,0xff,0xef,0x01,0xf8,0xff,0xef,0x01,0xfa,0xff,0xef,0x01,0xff,0xff,0xef,0x02,0x06,0xff,0xef,0x02,0x08,0xff,0xef,0x02,0x09,0xff,0xef,0x02,0x36,0xff,0xef,0x02,0x42,0xff,0xf0,0x02,0x46,0xff,0xef,0x02,0x4e,0xff,0xef,0x02,0x50,0xff,0xef,0x02,0x5e,0xff,0xf0,0x02,0x6d,0xff,0xf0,0x02,0x73,0xff,0xef, -0x02,0x75,0xff,0xef,0x02,0x79,0xff,0xef,0x02,0x88,0xff,0xf0,0x02,0x8e,0xff,0xef,0x02,0x90,0xff,0xef,0x02,0xa2,0xff,0xef,0x02,0xa4,0xff,0xef,0x02,0xa6,0xff,0xef,0x02,0xa8,0xff,0xf0,0x02,0xc2,0xff,0xef,0x00,0x1d,0x00,0x05,0xff,0xf2,0x00,0x0a,0xff,0xf2,0x00,0x59,0xff,0xf5,0x00,0x5c,0xff,0xf5,0x00,0xbf,0xff,0xf5,0x00,0xc1, -0xff,0xf5,0x01,0x39,0xff,0xf5,0x01,0x51,0xff,0xf2,0x01,0x8d,0xff,0xf5,0x01,0x97,0xff,0xf5,0x01,0xef,0xff,0xf5,0x02,0x0a,0xff,0xf5,0x02,0x21,0xff,0xf5,0x02,0x23,0xff,0xf5,0x02,0x5a,0xff,0xf5,0x02,0x9a,0xff,0xf5,0x02,0x9c,0xff,0xf5,0x02,0x9e,0xff,0xf5,0x03,0x1c,0xff,0xf5,0x03,0x1e,0xff,0xf5,0x03,0x20,0xff,0xf5,0x03,0x22, -0xff,0xf5,0x03,0x34,0xff,0xf2,0x03,0x35,0xff,0xf2,0x03,0x37,0xff,0xf2,0x03,0x38,0xff,0xf2,0x03,0x39,0xff,0xf2,0x03,0x41,0xff,0xf2,0x03,0x42,0xff,0xf2,0x00,0x04,0x01,0xf3,0xff,0xed,0x02,0x62,0xff,0xed,0x02,0x77,0xff,0xed,0x02,0xa0,0xff,0xed,0x00,0x0a,0x00,0x05,0xff,0xf5,0x00,0x0a,0xff,0xf5,0x01,0x51,0xff,0xf5,0x03,0x34, -0xff,0xf5,0x03,0x35,0xff,0xf5,0x03,0x37,0xff,0xf5,0x03,0x38,0xff,0xf5,0x03,0x39,0xff,0xf5,0x03,0x41,0xff,0xf5,0x03,0x42,0xff,0xf5,0x00,0x54,0x00,0x46,0xff,0xf0,0x00,0x47,0xff,0xf0,0x00,0x48,0xff,0xf0,0x00,0x4a,0xff,0xf0,0x00,0x52,0xff,0xeb,0x00,0x54,0xff,0xf0,0x00,0xa9,0xff,0xf0,0x00,0xaa,0xff,0xf0,0x00,0xab,0xff,0xf0, -0x00,0xac,0xff,0xf0,0x00,0xad,0xff,0xf0,0x00,0xb4,0xff,0xeb,0x00,0xb5,0xff,0xeb,0x00,0xb6,0xff,0xeb,0x00,0xb7,0xff,0xeb,0x00,0xb8,0xff,0xeb,0x00,0xc9,0xff,0xf0,0x00,0xcb,0xff,0xf0,0x00,0xcd,0xff,0xf0,0x00,0xcf,0xff,0xf0,0x00,0xd1,0xff,0xf0,0x00,0xd5,0xff,0xf0,0x00,0xd7,0xff,0xf0,0x00,0xd9,0xff,0xf0,0x00,0xdb,0xff,0xf0, -0x00,0xdd,0xff,0xf0,0x00,0xdf,0xff,0xf0,0x00,0xe1,0xff,0xf0,0x00,0xe3,0xff,0xf0,0x00,0xe5,0xff,0xf0,0x01,0x0f,0xff,0xeb,0x01,0x11,0xff,0xeb,0x01,0x13,0xff,0xeb,0x01,0x15,0xff,0xf0,0x01,0x44,0xff,0xf0,0x01,0x86,0xff,0xf0,0x01,0x8b,0xff,0xf0,0x01,0x99,0xff,0xeb,0x01,0x9c,0xff,0xf0,0x01,0x9d,0xff,0xf0,0x01,0xa6,0xff,0xeb, -0x01,0xe1,0xff,0xf0,0x01,0xea,0xff,0xeb,0x01,0xed,0xff,0xf0,0x01,0xf0,0xff,0xf0,0x01,0xfc,0xff,0xf0,0x01,0xfd,0xff,0xf0,0x02,0x00,0xff,0xf0,0x02,0x1f,0xff,0xeb,0x02,0x25,0xff,0xf0,0x02,0x29,0xff,0xf0,0x02,0x2d,0xff,0xf0,0x02,0x54,0xff,0xf0,0x02,0x56,0xff,0xf0,0x02,0x82,0xff,0xf0,0x02,0x84,0xff,0xf0,0x02,0x86,0xff,0xf0, -0x02,0x92,0xff,0xeb,0x02,0x94,0xff,0xf0,0x02,0x96,0xff,0xeb,0x02,0xac,0xff,0xf0,0x02,0xad,0xff,0xf0,0x02,0xae,0xff,0xf0,0x02,0xb8,0xff,0xf0,0x02,0xe2,0xff,0xf0,0x02,0xe4,0xff,0xf0,0x02,0xe6,0xff,0xf0,0x02,0xe8,0xff,0xf0,0x02,0xea,0xff,0xf0,0x02,0xec,0xff,0xf0,0x02,0xee,0xff,0xf0,0x02,0xf0,0xff,0xf0,0x02,0xf6,0xff,0xeb, -0x02,0xf8,0xff,0xeb,0x02,0xfa,0xff,0xeb,0x02,0xfc,0xff,0xeb,0x02,0xfe,0xff,0xeb,0x03,0x00,0xff,0xeb,0x03,0x02,0xff,0xeb,0x03,0x04,0xff,0xf0,0x03,0x06,0xff,0xf0,0x03,0x08,0xff,0xf0,0x03,0x0a,0xff,0xeb,0x03,0x0c,0xff,0xf0,0x00,0x90,0x00,0x05,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x44,0xff,0xf0,0x00,0x46,0xff,0xee,0x00,0x47, -0xff,0xee,0x00,0x48,0xff,0xee,0x00,0x4a,0xff,0xee,0x00,0x52,0xff,0xea,0x00,0x54,0xff,0xee,0x00,0x59,0x00,0x0b,0x00,0x5c,0x00,0x0b,0x00,0xa2,0xff,0xf0,0x00,0xa3,0xff,0xf0,0x00,0xa4,0xff,0xf0,0x00,0xa5,0xff,0xf0,0x00,0xa6,0xff,0xf0,0x00,0xa7,0xff,0xf0,0x00,0xa9,0xff,0xee,0x00,0xaa,0xff,0xee,0x00,0xab,0xff,0xee,0x00,0xac, -0xff,0xee,0x00,0xad,0xff,0xee,0x00,0xb4,0xff,0xea,0x00,0xb5,0xff,0xea,0x00,0xb6,0xff,0xea,0x00,0xb7,0xff,0xea,0x00,0xb8,0xff,0xea,0x00,0xbf,0x00,0x0b,0x00,0xc1,0x00,0x0b,0x00,0xc3,0xff,0xf0,0x00,0xc5,0xff,0xf0,0x00,0xc7,0xff,0xf0,0x00,0xc9,0xff,0xee,0x00,0xcb,0xff,0xee,0x00,0xcd,0xff,0xee,0x00,0xcf,0xff,0xee,0x00,0xd1, -0xff,0xee,0x00,0xd5,0xff,0xee,0x00,0xd7,0xff,0xee,0x00,0xd9,0xff,0xee,0x00,0xdb,0xff,0xee,0x00,0xdd,0xff,0xee,0x00,0xdf,0xff,0xee,0x00,0xe1,0xff,0xee,0x00,0xe3,0xff,0xee,0x00,0xe5,0xff,0xee,0x01,0x0f,0xff,0xea,0x01,0x11,0xff,0xea,0x01,0x13,0xff,0xea,0x01,0x15,0xff,0xee,0x01,0x39,0x00,0x0b,0x01,0x44,0xff,0xee,0x01,0x49, -0xff,0xf0,0x01,0x51,0x00,0x0d,0x01,0x86,0xff,0xee,0x01,0x8b,0xff,0xee,0x01,0x8d,0x00,0x0b,0x01,0x97,0x00,0x0b,0x01,0x99,0xff,0xea,0x01,0x9c,0xff,0xee,0x01,0x9d,0xff,0xee,0x01,0xa6,0xff,0xea,0x01,0xdc,0xff,0xf0,0x01,0xe1,0xff,0xee,0x01,0xe7,0xff,0xd7,0x01,0xea,0xff,0xea,0x01,0xed,0xff,0xee,0x01,0xef,0x00,0x0b,0x01,0xf0, -0xff,0xee,0x01,0xfc,0xff,0xee,0x01,0xfd,0xff,0xee,0x02,0x00,0xff,0xee,0x02,0x05,0xff,0xd7,0x02,0x0a,0x00,0x0b,0x02,0x1f,0xff,0xea,0x02,0x21,0x00,0x0b,0x02,0x23,0x00,0x0b,0x02,0x25,0xff,0xee,0x02,0x29,0xff,0xee,0x02,0x2d,0xff,0xee,0x02,0x54,0xff,0xee,0x02,0x56,0xff,0xee,0x02,0x5a,0x00,0x0b,0x02,0x71,0xff,0xd7,0x02,0x7c, -0xff,0xf0,0x02,0x7e,0xff,0xf0,0x02,0x82,0xff,0xee,0x02,0x84,0xff,0xee,0x02,0x86,0xff,0xee,0x02,0x92,0xff,0xea,0x02,0x94,0xff,0xee,0x02,0x96,0xff,0xea,0x02,0x9a,0x00,0x0b,0x02,0x9c,0x00,0x0b,0x02,0x9e,0x00,0x0b,0x02,0xac,0xff,0xee,0x02,0xad,0xff,0xee,0x02,0xae,0xff,0xee,0x02,0xb8,0xff,0xee,0x02,0xbe,0xff,0xd7,0x02,0xc0, -0xff,0xf0,0x02,0xca,0xff,0xf0,0x02,0xcc,0xff,0xf0,0x02,0xce,0xff,0xf0,0x02,0xd0,0xff,0xf0,0x02,0xd2,0xff,0xf0,0x02,0xd4,0xff,0xf0,0x02,0xd6,0xff,0xf0,0x02,0xd8,0xff,0xf0,0x02,0xda,0xff,0xf0,0x02,0xdc,0xff,0xf0,0x02,0xde,0xff,0xf0,0x02,0xe0,0xff,0xf0,0x02,0xe2,0xff,0xee,0x02,0xe4,0xff,0xee,0x02,0xe6,0xff,0xee,0x02,0xe8, -0xff,0xee,0x02,0xea,0xff,0xee,0x02,0xec,0xff,0xee,0x02,0xee,0xff,0xee,0x02,0xf0,0xff,0xee,0x02,0xf6,0xff,0xea,0x02,0xf8,0xff,0xea,0x02,0xfa,0xff,0xea,0x02,0xfc,0xff,0xea,0x02,0xfe,0xff,0xea,0x03,0x00,0xff,0xea,0x03,0x02,0xff,0xea,0x03,0x04,0xff,0xee,0x03,0x06,0xff,0xee,0x03,0x08,0xff,0xee,0x03,0x0a,0xff,0xea,0x03,0x0c, -0xff,0xee,0x03,0x1c,0x00,0x0b,0x03,0x1e,0x00,0x0b,0x03,0x20,0x00,0x0b,0x03,0x22,0x00,0x0b,0x03,0x34,0x00,0x0d,0x03,0x35,0x00,0x0d,0x03,0x37,0x00,0x0d,0x03,0x38,0x00,0x0d,0x03,0x39,0x00,0x0d,0x03,0x41,0x00,0x0d,0x03,0x42,0x00,0x0d,0x00,0x08,0x01,0xe7,0x00,0x10,0x01,0xf3,0xff,0xf0,0x02,0x05,0x00,0x10,0x02,0x62,0xff,0xf0, -0x02,0x71,0x00,0x10,0x02,0x77,0xff,0xf0,0x02,0xa0,0xff,0xf0,0x02,0xbe,0x00,0x10,0x00,0x45,0x00,0x46,0xff,0xee,0x00,0x47,0xff,0xee,0x00,0x48,0xff,0xee,0x00,0x4a,0xff,0xee,0x00,0x54,0xff,0xee,0x00,0xa9,0xff,0xee,0x00,0xaa,0xff,0xee,0x00,0xab,0xff,0xee,0x00,0xac,0xff,0xee,0x00,0xad,0xff,0xee,0x00,0xc9,0xff,0xee,0x00,0xcb, -0xff,0xee,0x00,0xcd,0xff,0xee,0x00,0xcf,0xff,0xee,0x00,0xd1,0xff,0xee,0x00,0xd5,0xff,0xee,0x00,0xd7,0xff,0xee,0x00,0xd9,0xff,0xee,0x00,0xdb,0xff,0xee,0x00,0xdd,0xff,0xee,0x00,0xdf,0xff,0xee,0x00,0xe1,0xff,0xee,0x00,0xe3,0xff,0xee,0x00,0xe5,0xff,0xee,0x01,0x15,0xff,0xee,0x01,0x44,0xff,0xee,0x01,0x86,0xff,0xee,0x01,0x8b, -0xff,0xee,0x01,0x9c,0xff,0xee,0x01,0x9d,0xff,0xee,0x01,0xe1,0xff,0xee,0x01,0xe7,0x00,0x0e,0x01,0xed,0xff,0xee,0x01,0xf0,0xff,0xee,0x01,0xf3,0xff,0xe3,0x01,0xfc,0xff,0xee,0x01,0xfd,0xff,0xee,0x02,0x00,0xff,0xee,0x02,0x05,0x00,0x0e,0x02,0x25,0xff,0xee,0x02,0x29,0xff,0xee,0x02,0x2d,0xff,0xee,0x02,0x54,0xff,0xee,0x02,0x56, -0xff,0xee,0x02,0x62,0xff,0xe3,0x02,0x71,0x00,0x0e,0x02,0x77,0xff,0xe3,0x02,0x82,0xff,0xee,0x02,0x84,0xff,0xee,0x02,0x86,0xff,0xee,0x02,0x94,0xff,0xee,0x02,0xa0,0xff,0xe3,0x02,0xac,0xff,0xee,0x02,0xad,0xff,0xee,0x02,0xae,0xff,0xee,0x02,0xb8,0xff,0xee,0x02,0xbe,0x00,0x0e,0x02,0xe2,0xff,0xee,0x02,0xe4,0xff,0xee,0x02,0xe6, -0xff,0xee,0x02,0xe8,0xff,0xee,0x02,0xea,0xff,0xee,0x02,0xec,0xff,0xee,0x02,0xee,0xff,0xee,0x02,0xf0,0xff,0xee,0x03,0x04,0xff,0xee,0x03,0x06,0xff,0xee,0x03,0x08,0xff,0xee,0x03,0x0c,0xff,0xee,0x00,0x1f,0x00,0x59,0xff,0xf4,0x00,0x5b,0xff,0xf0,0x00,0x5c,0xff,0xf4,0x00,0xbf,0xff,0xf4,0x00,0xc1,0xff,0xf4,0x01,0x39,0xff,0xf4, -0x01,0x8d,0xff,0xf4,0x01,0x97,0xff,0xf4,0x01,0xe2,0xff,0xf0,0x01,0xe7,0xff,0xf3,0x01,0xef,0xff,0xf4,0x01,0xf1,0xff,0xf0,0x02,0x05,0xff,0xf3,0x02,0x0a,0xff,0xf4,0x02,0x21,0xff,0xf4,0x02,0x23,0xff,0xf4,0x02,0x42,0xff,0xf0,0x02,0x5a,0xff,0xf4,0x02,0x5e,0xff,0xf0,0x02,0x6d,0xff,0xf0,0x02,0x71,0xff,0xf3,0x02,0x88,0xff,0xf0, -0x02,0x9a,0xff,0xf4,0x02,0x9c,0xff,0xf4,0x02,0x9e,0xff,0xf4,0x02,0xa8,0xff,0xf0,0x02,0xbe,0xff,0xf3,0x03,0x1c,0xff,0xf4,0x03,0x1e,0xff,0xf4,0x03,0x20,0xff,0xf4,0x03,0x22,0xff,0xf4,0x00,0x0a,0x00,0x05,0xff,0xd6,0x00,0x0a,0xff,0xd6,0x01,0x51,0xff,0xd6,0x03,0x34,0xff,0xd6,0x03,0x35,0xff,0xd6,0x03,0x37,0xff,0xd6,0x03,0x38, -0xff,0xd6,0x03,0x39,0xff,0xd6,0x03,0x41,0xff,0xd6,0x03,0x42,0xff,0xd6,0x00,0x0a,0x00,0x05,0xff,0xf5,0x00,0x0a,0xff,0xf5,0x01,0x51,0xff,0xf5,0x03,0x34,0xff,0xf5,0x03,0x35,0xff,0xf5,0x03,0x37,0xff,0xf5,0x03,0x38,0xff,0xf5,0x03,0x39,0xff,0xf5,0x03,0x41,0xff,0xf5,0x03,0x42,0xff,0xf5,0x00,0x02,0x0a,0xe2,0x00,0x04,0x00,0x00, -0x0d,0xe8,0x14,0x6a,0x00,0x20,0x00,0x1d,0x00,0x00,0x00,0x11,0xff,0xce,0xff,0x8f,0x00,0x12,0xff,0xf5,0xff,0xef,0xff,0xb1,0xff,0xf4,0xff,0xbb,0xff,0x7f,0xff,0xf5,0x00,0x0c,0xff,0xa9,0xff,0xa2,0xff,0xc9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe5,0x00,0x00,0x00,0x00,0xff,0xe8,0xff,0xc9,0x00,0x00,0xff,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11, -0x00,0x00,0xff,0xe5,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe3,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe4,0xff,0xe4,0x00,0x00,0x00,0x12,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe1,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe5,0x00,0x00,0x00,0x00,0xff,0xea,0xff,0xd5,0x00,0x00,0x00,0x00,0xff,0xeb,0xff,0xea,0xff,0x9a,0xff,0xe9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0xff,0xe3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xed,0x00,0x00,0x00,0x00, -0xff,0xef,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xed,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xcb,0xff,0xb8,0xff,0x7c,0xff,0x7e,0xff,0xe4,0x00,0x00,0x00,0x00,0xff,0x9d,0x00,0x0f,0x00,0x10,0xff,0xa1,0xff,0xc4,0x00,0x10, -0x00,0x10,0x00,0x00,0x00,0x00,0xff,0xb1,0x00,0x00,0xff,0x26,0x00,0x00,0xff,0x9d,0xff,0xb3,0xff,0x18,0xff,0x93,0xff,0xf0,0xff,0x8f,0xff,0x8c,0x00,0x00,0x00,0x00,0xff,0x92,0xff,0x72,0xff,0x0c,0xff,0x0f,0xff,0xbd,0x00,0x00,0x00,0x00,0xff,0x44,0x00,0x05,0x00,0x07,0xff,0x4b,0xff,0x86,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x00, -0xff,0x3e,0x00,0x00,0xfe,0x7a,0x00,0x00,0xff,0x44,0xff,0x6a,0xfe,0x62,0xff,0x33,0xff,0xd1,0xff,0x2c,0xff,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xec,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0xff,0xec,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xd8,0xff,0xa3,0x00,0x00,0xff,0xe1,0x00,0x00,0x00,0x00,0xff,0xe5,0x00,0x00,0x00,0x00,0xff,0xe9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe6,0x00,0x00, -0xff,0xc0,0xff,0xe9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x7b,0x00,0x00,0x00,0x00,0xff,0xbf,0xff,0xca,0xff,0x76,0x00,0x00,0xff,0x71,0xfe,0xed,0xff,0xd4,0x00,0x00,0xff,0x51,0xff,0x11,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xc9,0x00,0x0f,0x00,0x00,0xff,0xd9,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x76,0xff,0xe1,0xfe,0xbc,0xff,0xe6,0xff,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf5,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xea,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf5, -0x00,0x00,0x00,0x00,0xff,0xf3,0x00,0x00,0x00,0x00,0xff,0xd2,0x00,0x00,0x00,0x00,0xff,0xe4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xb5,0x00,0x00,0xff,0x1f,0x00,0x00,0xff,0xd4,0x00,0x00,0xff,0xdb,0x00,0x00,0x00,0x00,0xff,0xd2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0xff,0xe1,0xff,0xd1,0x00,0x11,0xff,0xe7, -0x00,0x00,0x00,0x00,0xff,0xeb,0x00,0x00,0x00,0x00,0xff,0xeb,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe6,0x00,0x00,0xff,0xd2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xec,0x00,0x00,0x00,0x00,0xff,0xe3,0xff,0xa0,0x00,0x00,0xff,0xbf, -0x00,0x11,0x00,0x11,0xff,0xd9,0xff,0xe2,0x00,0x12,0x00,0x12,0x00,0x00,0x00,0x00,0xff,0xae,0x00,0x0d,0xff,0x2d,0x00,0x00,0xff,0xbf,0xff,0xe9,0xff,0xcc,0xff,0xd8,0xff,0xf0,0xff,0xb7,0xff,0xc6,0xff,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe1,0x00,0x00,0x00,0x0e,0xff,0xed, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xd5,0x00,0x00,0xff,0x85,0x00,0x00,0xff,0xe1,0x00,0x00,0xff,0xc4,0x00,0x00,0x00,0x00,0xff,0xdf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xe5,0x00,0x00,0x00,0x00,0xff,0xe6,0x00,0x00,0x00,0x00,0xff,0xeb,0x00,0x00,0x00,0x00,0xff,0xed,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xeb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xca,0x00,0x00,0xff,0xe9,0xff,0xbb,0xff,0xe9,0x00,0x00,0x00,0x00,0xff,0xbd,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0xff,0xa5, -0x00,0x00,0xfe,0x6d,0x00,0x00,0xff,0xbd,0x00,0x00,0xff,0x89,0xff,0x9a,0x00,0x00,0xff,0x91,0xff,0xd2,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xbd,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf5,0x00,0x00,0xff,0xf2,0x00,0x00,0x00,0x00,0xff,0xe3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf1,0x00,0x00, -0xff,0xf0,0x00,0x00,0x00,0x00,0xff,0xec,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xeb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xd7,0x00,0x00,0x00,0x00, -0x00,0x0f,0xff,0xf1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x95,0x00,0x00,0xff,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0xff,0xec,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x85,0x00,0x00,0xff,0xed,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xec,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xec,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x95,0xff,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x96,0x00,0x00, -0x00,0x00,0x00,0x00,0xff,0xc5,0x00,0x00,0x00,0x00,0xff,0xec,0x00,0x00,0xff,0xce,0xff,0xd6,0x00,0x00,0x00,0x00,0xff,0xf5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xc0,0x00,0x00,0x00,0x00,0xfe,0xf5,0x00,0x00,0x00,0x00,0xff,0xc8,0xff,0xad,0xff,0xe7,0xff,0xeb,0x00,0x00,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x00, -0xff,0xc9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xdd,0xff,0xed,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x79,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xf5,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x99,0x00,0x05,0x00,0x0a,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2b,0x00,0x2c,0x00,0x2d,0x00,0x2e,0x00,0x2f,0x00,0x30,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x34,0x00,0x37,0x00,0x38,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x44, -0x00,0x45,0x00,0x48,0x00,0x49,0x00,0x52,0x00,0x53,0x00,0x55,0x00,0x59,0x00,0x5b,0x00,0x5c,0x00,0x82,0x00,0x83,0x00,0x84,0x00,0x85,0x00,0x86,0x00,0x87,0x00,0x89,0x00,0x8a,0x00,0x8b,0x00,0x8c,0x00,0x8d,0x00,0x8e,0x00,0x8f,0x00,0x90,0x00,0x91,0x00,0x92,0x00,0x93,0x00,0x94,0x00,0x95,0x00,0x96,0x00,0x97,0x00,0x98,0x00,0x9b, -0x00,0x9c,0x00,0x9d,0x00,0x9e,0x00,0x9f,0x00,0xa2,0x00,0xa3,0x00,0xa4,0x00,0xa5,0x00,0xa6,0x00,0xa7,0x00,0xaa,0x00,0xab,0x00,0xac,0x00,0xad,0x00,0xb4,0x00,0xb5,0x00,0xb6,0x00,0xb7,0x00,0xb8,0x00,0xbf,0x00,0xc0,0x00,0xc1,0x00,0xc2,0x00,0xc3,0x00,0xc4,0x00,0xc5,0x00,0xc6,0x00,0xc7,0x00,0xc8,0x00,0xca,0x00,0xcc,0x00,0xce, -0x00,0xd0,0x00,0xd2,0x00,0xd4,0x00,0xd5,0x00,0xd6,0x00,0xd7,0x00,0xd8,0x00,0xd9,0x00,0xda,0x00,0xdb,0x00,0xdc,0x00,0xdd,0x00,0xe6,0x00,0xea,0x00,0xec,0x00,0xee,0x00,0xf0,0x00,0xf2,0x00,0xf6,0x00,0xf8,0x00,0xfb,0x00,0xfd,0x00,0xff,0x01,0x01,0x01,0x05,0x01,0x07,0x01,0x09,0x01,0x0e,0x01,0x0f,0x01,0x10,0x01,0x11,0x01,0x12, -0x01,0x13,0x01,0x17,0x01,0x19,0x01,0x1b,0x01,0x24,0x01,0x26,0x01,0x28,0x01,0x2a,0x01,0x2c,0x01,0x2e,0x01,0x30,0x01,0x32,0x01,0x34,0x01,0x36,0x01,0x38,0x01,0x39,0x01,0x3a,0x01,0x3b,0x01,0x3d,0x01,0x3f,0x01,0x48,0x01,0x49,0x01,0x51,0x01,0x63,0x01,0x65,0x01,0x66,0x01,0x67,0x01,0x68,0x01,0x69,0x01,0x6c,0x01,0x6d,0x01,0x6e, -0x01,0x6f,0x01,0x70,0x01,0x71,0x01,0x72,0x01,0x73,0x01,0x74,0x01,0x75,0x01,0x76,0x01,0x77,0x01,0x78,0x01,0x79,0x01,0x7a,0x01,0x7c,0x01,0x7d,0x01,0x7e,0x01,0x7f,0x01,0x80,0x01,0x81,0x01,0x82,0x01,0x84,0x01,0x85,0x01,0x8b,0x01,0x8d,0x01,0x8e,0x01,0x90,0x01,0x93,0x01,0x95,0x01,0x97,0x01,0x98,0x01,0x99,0x01,0x9b,0x01,0x9d, -0x01,0x9e,0x01,0xa0,0x01,0xa1,0x01,0xa6,0x01,0xac,0x01,0xad,0x01,0xae,0x01,0xaf,0x01,0xb2,0x01,0xb3,0x01,0xb4,0x01,0xb5,0x01,0xb6,0x01,0xb7,0x01,0xb8,0x01,0xba,0x01,0xbb,0x01,0xbc,0x01,0xbd,0x01,0xbe,0x01,0xbf,0x01,0xc0,0x01,0xc1,0x01,0xc2,0x01,0xc3,0x01,0xc4,0x01,0xc6,0x01,0xc7,0x01,0xc8,0x01,0xc9,0x01,0xca,0x01,0xcc, -0x01,0xcd,0x01,0xce,0x01,0xcf,0x01,0xd1,0x01,0xd2,0x01,0xd4,0x01,0xd5,0x01,0xd6,0x01,0xd8,0x01,0xd9,0x01,0xda,0x01,0xdc,0x01,0xdd,0x01,0xde,0x01,0xdf,0x01,0xe0,0x01,0xe1,0x01,0xe2,0x01,0xe6,0x01,0xea,0x01,0xec,0x01,0xee,0x01,0xef,0x01,0xf0,0x01,0xf1,0x01,0xf2,0x01,0xf5,0x01,0xf6,0x01,0xf8,0x01,0xf9,0x01,0xfa,0x01,0xfc, -0x01,0xfd,0x01,0xff,0x02,0x05,0x02,0x06,0x02,0x0a,0x02,0x0e,0x02,0x0f,0x02,0x12,0x02,0x1f,0x02,0x20,0x02,0x21,0x02,0x22,0x02,0x23,0x02,0x3a,0x02,0x3b,0x02,0x3c,0x02,0x3d,0x02,0x41,0x02,0x42,0x02,0x45,0x02,0x47,0x02,0x49,0x02,0x4b,0x02,0x4d,0x02,0x55,0x02,0x57,0x02,0x59,0x02,0x5a,0x02,0x5b,0x02,0x5d,0x02,0x5e,0x02,0x6b, -0x02,0x6c,0x02,0x6d,0x02,0x74,0x02,0x78,0x02,0x7a,0x02,0x7b,0x02,0x7c,0x02,0x7d,0x02,0x7e,0x02,0x81,0x02,0x82,0x02,0x84,0x02,0x86,0x02,0x87,0x02,0x88,0x02,0x91,0x02,0x92,0x02,0x96,0x02,0x98,0x02,0x99,0x02,0x9a,0x02,0x9b,0x02,0x9c,0x02,0x9d,0x02,0x9e,0x02,0xa1,0x02,0xa2,0x02,0xa6,0x02,0xa7,0x02,0xa8,0x02,0xbf,0x02,0xc0, -0x02,0xc1,0x02,0xc3,0x02,0xc5,0x02,0xc7,0x02,0xc9,0x02,0xca,0x02,0xcb,0x02,0xcc,0x02,0xcd,0x02,0xce,0x02,0xcf,0x02,0xd0,0x02,0xd1,0x02,0xd2,0x02,0xd3,0x02,0xd4,0x02,0xd5,0x02,0xd6,0x02,0xd7,0x02,0xd8,0x02,0xd9,0x02,0xda,0x02,0xdb,0x02,0xdc,0x02,0xdd,0x02,0xde,0x02,0xdf,0x02,0xe0,0x02,0xe1,0x02,0xe2,0x02,0xe3,0x02,0xe4, -0x02,0xe5,0x02,0xe6,0x02,0xe7,0x02,0xe8,0x02,0xe9,0x02,0xea,0x02,0xeb,0x02,0xec,0x02,0xed,0x02,0xee,0x02,0xef,0x02,0xf0,0x02,0xf1,0x02,0xf3,0x02,0xf5,0x02,0xf6,0x02,0xf7,0x02,0xf8,0x02,0xf9,0x02,0xfa,0x02,0xfb,0x02,0xfc,0x02,0xfd,0x02,0xfe,0x02,0xff,0x03,0x00,0x03,0x01,0x03,0x02,0x03,0x0a,0x03,0x0d,0x03,0x0f,0x03,0x1b, -0x03,0x1c,0x03,0x1d,0x03,0x1e,0x03,0x1f,0x03,0x20,0x03,0x21,0x03,0x22,0x03,0x23,0x03,0x34,0x03,0x35,0x03,0x37,0x03,0x38,0x03,0x39,0x03,0x41,0x03,0x42,0x03,0x71,0x03,0x76,0x03,0x78,0x03,0x7d,0x03,0x7e,0x03,0x82,0x03,0xdb,0x03,0xdc,0x03,0xec,0x03,0xed,0x03,0xee,0x03,0xef,0x03,0xf0,0x03,0xf1,0x03,0xf2,0x04,0x0a,0x00,0x01, -0x00,0x0b,0x00,0x0b,0x00,0x29,0x00,0x34,0x00,0x35,0x00,0x3e,0x00,0x49,0x00,0x4e,0x00,0x5a,0x00,0x5e,0x01,0x79,0x01,0x7d,0x00,0x01,0x00,0x1f,0x01,0x80,0x01,0x82,0x01,0x90,0x01,0x93,0x01,0x95,0x01,0x98,0x01,0x9e,0x01,0xa0,0x01,0xa1,0x01,0xa2,0x01,0xa3,0x01,0xae,0x01,0xb7,0x01,0xbd,0x01,0xc0,0x01,0xc3,0x01,0xd5,0x01,0xd9, -0x01,0xda,0x01,0xdb,0x01,0xdd,0x01,0xde,0x01,0xe0,0x01,0xe3,0x01,0xe6,0x01,0xee,0x01,0xf2,0x01,0xf5,0x01,0xfa,0x02,0x00,0x02,0x2d,0x00,0x01,0x01,0x81,0x00,0x05,0x00,0x0a,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x2b,0x00,0x2c,0x00,0x2d,0x00,0x2e,0x00,0x2f,0x00,0x30,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x37, -0x00,0x38,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x48,0x00,0x4b,0x00,0x50,0x00,0x51,0x00,0x52,0x00,0x53,0x00,0x55,0x00,0x59,0x00,0x5b,0x00,0x5c,0x00,0x5d,0x00,0x82,0x00,0x83,0x00,0x84,0x00,0x85,0x00,0x86,0x00,0x87,0x00,0x89,0x00,0x8a,0x00,0x8b,0x00,0x8c,0x00,0x8d,0x00,0x8e, -0x00,0x8f,0x00,0x90,0x00,0x91,0x00,0x92,0x00,0x93,0x00,0x94,0x00,0x95,0x00,0x96,0x00,0x97,0x00,0x98,0x00,0x9b,0x00,0x9c,0x00,0x9d,0x00,0x9e,0x00,0x9f,0x00,0xa2,0x00,0xa3,0x00,0xa4,0x00,0xa5,0x00,0xa6,0x00,0xa7,0x00,0xa9,0x00,0xaa,0x00,0xab,0x00,0xac,0x00,0xad,0x00,0xb3,0x00,0xb4,0x00,0xb5,0x00,0xb6,0x00,0xb7,0x00,0xb8, -0x00,0xbf,0x00,0xc0,0x00,0xc1,0x00,0xc2,0x00,0xc3,0x00,0xc4,0x00,0xc5,0x00,0xc6,0x00,0xc7,0x00,0xc8,0x00,0xc9,0x00,0xca,0x00,0xcb,0x00,0xcc,0x00,0xcd,0x00,0xce,0x00,0xcf,0x00,0xd0,0x00,0xd2,0x00,0xd4,0x00,0xd5,0x00,0xd6,0x00,0xd7,0x00,0xd8,0x00,0xd9,0x00,0xda,0x00,0xdb,0x00,0xdc,0x00,0xdd,0x00,0xe6,0x00,0xe7,0x00,0xea, -0x00,0xec,0x00,0xee,0x00,0xf0,0x00,0xf2,0x00,0xf6,0x00,0xf8,0x00,0xfb,0x00,0xfd,0x00,0xff,0x01,0x01,0x01,0x05,0x01,0x06,0x01,0x07,0x01,0x08,0x01,0x09,0x01,0x0a,0x01,0x0b,0x01,0x0e,0x01,0x0f,0x01,0x10,0x01,0x11,0x01,0x12,0x01,0x13,0x01,0x17,0x01,0x19,0x01,0x1b,0x01,0x24,0x01,0x26,0x01,0x28,0x01,0x2a,0x01,0x2c,0x01,0x2e, -0x01,0x30,0x01,0x32,0x01,0x34,0x01,0x36,0x01,0x38,0x01,0x39,0x01,0x3a,0x01,0x3b,0x01,0x3c,0x01,0x3d,0x01,0x3e,0x01,0x3f,0x01,0x40,0x01,0x48,0x01,0x49,0x01,0x51,0x01,0x63,0x01,0x65,0x01,0x66,0x01,0x67,0x01,0x68,0x01,0x69,0x01,0x6c,0x01,0x6d,0x01,0x6e,0x01,0x6f,0x01,0x70,0x01,0x71,0x01,0x72,0x01,0x73,0x01,0x74,0x01,0x75, -0x01,0x76,0x01,0x77,0x01,0x78,0x01,0x7a,0x01,0x7c,0x01,0x7e,0x01,0x7f,0x01,0x81,0x01,0x84,0x01,0x85,0x01,0x88,0x01,0x8d,0x01,0x91,0x01,0x97,0x01,0x99,0x01,0x9b,0x01,0xa6,0x01,0xac,0x01,0xad,0x01,0xaf,0x01,0xb2,0x01,0xb3,0x01,0xb4,0x01,0xb5,0x01,0xb6,0x01,0xb8,0x01,0xba,0x01,0xbb,0x01,0xbc,0x01,0xbe,0x01,0xbf,0x01,0xc1, -0x01,0xc2,0x01,0xc4,0x01,0xc6,0x01,0xc7,0x01,0xc8,0x01,0xc9,0x01,0xca,0x01,0xcc,0x01,0xcd,0x01,0xce,0x01,0xcf,0x01,0xd1,0x01,0xd2,0x01,0xd4,0x01,0xd6,0x01,0xd8,0x01,0xdc,0x01,0xdf,0x01,0xe1,0x01,0xe2,0x01,0xea,0x01,0xec,0x01,0xed,0x01,0xef,0x01,0xf0,0x01,0xf1,0x01,0xf6,0x01,0xf8,0x01,0xf9,0x01,0xfc,0x01,0xfd,0x01,0xff, -0x02,0x05,0x02,0x06,0x02,0x0a,0x02,0x0e,0x02,0x0f,0x02,0x12,0x02,0x1f,0x02,0x20,0x02,0x21,0x02,0x22,0x02,0x23,0x02,0x3a,0x02,0x3b,0x02,0x3c,0x02,0x3d,0x02,0x41,0x02,0x42,0x02,0x45,0x02,0x47,0x02,0x49,0x02,0x4b,0x02,0x4d,0x02,0x55,0x02,0x56,0x02,0x57,0x02,0x59,0x02,0x5a,0x02,0x5b,0x02,0x5d,0x02,0x5e,0x02,0x66,0x02,0x6b, -0x02,0x6c,0x02,0x6d,0x02,0x74,0x02,0x78,0x02,0x7a,0x02,0x7b,0x02,0x7c,0x02,0x7d,0x02,0x7e,0x02,0x81,0x02,0x82,0x02,0x84,0x02,0x86,0x02,0x87,0x02,0x88,0x02,0x91,0x02,0x92,0x02,0x96,0x02,0x98,0x02,0x99,0x02,0x9a,0x02,0x9b,0x02,0x9c,0x02,0x9d,0x02,0x9e,0x02,0xa1,0x02,0xa2,0x02,0xa6,0x02,0xa7,0x02,0xa8,0x02,0xbf,0x02,0xc0, -0x02,0xc1,0x02,0xc2,0x02,0xc3,0x02,0xc5,0x02,0xc7,0x02,0xc9,0x02,0xca,0x02,0xcb,0x02,0xcc,0x02,0xcd,0x02,0xce,0x02,0xcf,0x02,0xd0,0x02,0xd1,0x02,0xd2,0x02,0xd3,0x02,0xd4,0x02,0xd5,0x02,0xd6,0x02,0xd7,0x02,0xd8,0x02,0xd9,0x02,0xda,0x02,0xdb,0x02,0xdc,0x02,0xdd,0x02,0xde,0x02,0xdf,0x02,0xe0,0x02,0xe1,0x02,0xe2,0x02,0xe3, -0x02,0xe4,0x02,0xe5,0x02,0xe6,0x02,0xe7,0x02,0xe8,0x02,0xe9,0x02,0xea,0x02,0xeb,0x02,0xec,0x02,0xed,0x02,0xee,0x02,0xef,0x02,0xf0,0x02,0xf1,0x02,0xf3,0x02,0xf5,0x02,0xf6,0x02,0xf7,0x02,0xf8,0x02,0xf9,0x02,0xfa,0x02,0xfb,0x02,0xfc,0x02,0xfd,0x02,0xfe,0x02,0xff,0x03,0x00,0x03,0x01,0x03,0x02,0x03,0x0a,0x03,0x0d,0x03,0x0f, -0x03,0x1b,0x03,0x1c,0x03,0x1d,0x03,0x1e,0x03,0x1f,0x03,0x20,0x03,0x21,0x03,0x22,0x03,0x23,0x03,0x34,0x03,0x35,0x03,0x37,0x03,0x38,0x03,0x39,0x03,0x41,0x03,0x42,0x00,0x01,0x00,0x05,0x03,0x3e,0x00,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x03,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x0c,0x00,0x09,0x00,0x0a,0x00,0x02,0x00,0x02, -0x00,0x03,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0c,0x00,0x0d,0x00,0x10,0x00,0x0e,0x00,0x0f,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x15,0x00,0x14,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x17, -0x00,0x18,0x00,0x15,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1b,0x00,0x19,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x05,0x00,0x05,0x00,0x05,0x00,0x05,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02, -0x00,0x03,0x00,0x02,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x13,0x00,0x13,0x00,0x13,0x00,0x13,0x00,0x13,0x00,0x00,0x00,0x14,0x00,0x16,0x00,0x16,0x00,0x16,0x00,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x17,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x15,0x00,0x19,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x13,0x00,0x04,0x00,0x14,0x00,0x04,0x00,0x14,0x00,0x04,0x00,0x14,0x00,0x04,0x00,0x14,0x00,0x03,0x00,0x00, -0x00,0x03,0x00,0x00,0x00,0x05,0x00,0x16,0x00,0x05,0x00,0x16,0x00,0x05,0x00,0x16,0x00,0x05,0x00,0x16,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00, -0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x02,0x00,0x17,0x00,0x02,0x00,0x17,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x18,0x00,0x03,0x00,0x18, -0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00, -0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x0f,0x00,0x19,0x00,0x0f,0x00,0x11,0x00,0x1c,0x00,0x11,0x00,0x1c,0x00,0x11,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x02,0x00,0x02,0x00,0x03,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x07,0x00,0x00,0x00,0x05,0x00,0x11, -0x00,0x02,0x00,0x03,0x00,0x02,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x06,0x00,0x0f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x05,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00, -0x00,0x02,0x00,0x02,0x00,0x0c,0x00,0x1e,0x00,0x1e,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x12,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x07,0x00,0x00,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x09,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x03,0x00,0x00,0x00,0x0b,0x00,0x04,0x00,0x06,0x00,0x12,0x00,0x00,0x00,0x0e, -0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x16,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x15,0x00,0x14,0x00,0x00,0x00,0x19,0x00,0x15,0x00,0x1b, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x1f,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x16,0x00,0x16,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x00,0x1f,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x0d,0x00,0x19,0x00,0x0d,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x07,0x00,0x08,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x14,0x00,0x06,0x00,0x00,0x00,0x0f,0x00,0x19,0x00,0x0f,0x00,0x00,0x00,0x0e,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x0e,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x16,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x16,0x00,0x0e,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03, -0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x15,0x00,0x12,0x00,0x19,0x00,0x12,0x00,0x19,0x00,0x12,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x0e,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x02,0x00,0x17,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x13,0x00,0x00, -0x00,0x13,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x13,0x00,0x05,0x00,0x16,0x00,0x05,0x00,0x16,0x00,0x05,0x00,0x16,0x00,0x05,0x00,0x16,0x00,0x05,0x00,0x16,0x00,0x05,0x00,0x16,0x00,0x05,0x00,0x16,0x00,0x05,0x00,0x16,0x00,0x02, -0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x18,0x00,0x03,0x00,0x18,0x00,0x03,0x00,0x18,0x00,0x03,0x00,0x18,0x00,0x03,0x00,0x18,0x00,0x03,0x00,0x18,0x00,0x03,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x19,0x00,0x0f,0x00,0x19,0x00,0x0f,0x00,0x19,0x00,0x0f,0x00,0x19,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x1d,0x00,0x1d,0x00,0x00,0x00,0x1d,0x00,0x1d,0x00,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x00,0x1d,0x00,0x01,0x00,0x05,0x03,0x3e,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x17, -0x00,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x19,0x00,0x0a,0x00,0x06,0x00,0x0d,0x00,0x09,0x00,0x12,0x00,0x0e,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x15,0x00,0x15,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18, -0x00,0x18,0x00,0x08,0x00,0x18,0x00,0x15,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x0b,0x00,0x02,0x00,0x00,0x00,0x16,0x00,0x02,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x05,0x00,0x05,0x00,0x05,0x00,0x05,0x00,0x00,0x00,0x05,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x1a,0x00,0x1a,0x00,0x1a,0x00,0x1a,0x00,0x1a,0x00,0x1a,0x00,0x00,0x00,0x15,0x00,0x15,0x00,0x15,0x00,0x15,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x0b,0x00,0x0b,0x00,0x0b,0x00,0x0b,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x1a,0x00,0x11,0x00,0x1a,0x00,0x11,0x00,0x1a,0x00,0x05,0x00,0x15,0x00,0x05,0x00,0x15,0x00,0x05,0x00,0x15,0x00,0x05,0x00,0x15,0x00,0x00, -0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x05,0x00,0x15,0x00,0x05,0x00,0x15,0x00,0x05,0x00,0x15,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x08,0x00,0x05, -0x00,0x08,0x00,0x05,0x00,0x08,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x1b,0x00,0x19,0x00,0x1b,0x00,0x19,0x00,0x1b,0x00,0x19,0x00,0x1b,0x00,0x0a,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0b,0x00,0x06,0x00,0x0b,0x00,0x06,0x00,0x0b,0x00,0x06, -0x00,0x0b,0x00,0x06,0x00,0x0b,0x00,0x06,0x00,0x0b,0x00,0x09,0x00,0x00,0x00,0x0e,0x00,0x02,0x00,0x0e,0x00,0x14,0x00,0x0c,0x00,0x14,0x00,0x0c,0x00,0x14,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x11,0x00,0x1a,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x19,0x00,0x1b,0x00,0x00, -0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x00, -0x00,0x14,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x15,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x0b,0x00,0x15,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x15,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x00,0x08,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x05, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x0a,0x00,0x10,0x00,0x00, -0x00,0x12,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x04,0x00,0x18,0x00,0x18,0x00,0x08,0x00,0x18,0x00,0x18,0x00,0x15,0x00,0x00,0x00,0x02,0x00,0x15, -0x00,0x16,0x00,0x18,0x00,0x03,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x15,0x00,0x15,0x00,0x00,0x00,0x18,0x00,0x15,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x02,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x08,0x00,0x0d,0x00,0x02,0x00,0x0d,0x00,0x02,0x00,0x05,0x00,0x15,0x00,0x05,0x00,0x00,0x00,0x05,0x00,0x15,0x00,0x05,0x00,0x00,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18, -0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x15,0x00,0x05,0x00,0x15,0x00,0x0a,0x00,0x00,0x00,0x0e,0x00,0x02,0x00,0x0e,0x00,0x00,0x00,0x12,0x00,0x16,0x00,0x0a,0x00,0x00,0x00,0x0f,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x16,0x00,0x00,0x00,0x00,0x00,0x01, -0x00,0x04,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x0f,0x00,0x03,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x11,0x00,0x1a,0x00,0x11,0x00,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x12,0x00,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18, -0x00,0x05,0x00,0x08,0x00,0x05,0x00,0x15,0x00,0x05,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x02,0x00,0x10,0x00,0x02,0x00,0x10,0x00,0x02,0x00,0x0f,0x00,0x03,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x12,0x00,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x15,0x00,0x15,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x11,0x00,0x1a,0x00,0x00,0x00,0x18,0x00,0x09,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x11,0x00,0x1a,0x00,0x11,0x00,0x1a,0x00,0x11,0x00,0x1a,0x00,0x11,0x00,0x1a, -0x00,0x11,0x00,0x1a,0x00,0x11,0x00,0x1a,0x00,0x11,0x00,0x1a,0x00,0x11,0x00,0x1a,0x00,0x11,0x00,0x1a,0x00,0x11,0x00,0x1a,0x00,0x11,0x00,0x1a,0x00,0x11,0x00,0x1a,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x08,0x00,0x05,0x00,0x08,0x00,0x05,0x00,0x08,0x00,0x05,0x00,0x08,0x00,0x05,0x00,0x08,0x00,0x05,0x00,0x08,0x00,0x05,0x00,0x08,0x00,0x05,0x00,0x15,0x00,0x05,0x00,0x15,0x00,0x05,0x00,0x15,0x00,0x05,0x00,0x08,0x00,0x05,0x00,0x15,0x00,0x06,0x00,0x0b,0x00,0x06,0x00,0x0b, -0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x0e,0x00,0x02,0x00,0x0e,0x00,0x02,0x00,0x0e,0x00,0x02,0x00,0x0e,0x00,0x02,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17, -0x00,0x17,0x00,0x17,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x13,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x13,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x01,0x00,0x00,0x00,0x0a,0x00,0x20,0x00,0x3a,0x00,0x01,0x44,0x46,0x4c,0x54,0x00,0x08,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x02, -0x00,0x00,0x00,0x01,0x00,0x02,0x6c,0x69,0x67,0x61,0x00,0x0e,0x73,0x6d,0x63,0x70,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x06,0x00,0x0e,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x04,0x00,0x00,0x00,0x01,0x01,0xc6,0x00,0x02,0x01,0xd0,0x00,0xdc,0x03,0x71,0x03,0x74,0x03,0x75, -0x03,0x76,0x03,0x77,0x03,0x78,0x03,0x79,0x03,0x7a,0x03,0x7b,0x03,0x7c,0x03,0x7d,0x03,0x7e,0x03,0x7f,0x03,0x81,0x03,0x82,0x04,0x0a,0x03,0xdb,0x03,0xdc,0x03,0xeb,0x03,0xec,0x03,0xed,0x03,0xee,0x03,0xef,0x03,0xf0,0x03,0xf1,0x03,0xf2,0x03,0x71,0x03,0x74,0x03,0x75,0x03,0x76,0x03,0x77,0x03,0x78,0x03,0x79,0x03,0x7a,0x03,0x7b, -0x03,0x7c,0x03,0x7d,0x03,0x7e,0x03,0x7f,0x03,0x81,0x03,0x82,0x04,0x0a,0x03,0xdb,0x03,0xdc,0x03,0xeb,0x03,0xec,0x03,0xed,0x03,0xee,0x03,0xef,0x03,0xf0,0x03,0xf1,0x03,0xf2,0x03,0xd7,0x03,0xd6,0x03,0xd5,0x03,0xd4,0x03,0xd3,0x03,0xd2,0x03,0xd0,0x03,0xcf,0x03,0xce,0x03,0xcd,0x03,0xcc,0x03,0xcb,0x03,0xca,0x03,0xc9,0x03,0xc8, -0x03,0xd9,0x03,0xc7,0x03,0xc6,0x03,0xc5,0x03,0xc4,0x03,0xc3,0x03,0xc2,0x03,0xc1,0x03,0xc0,0x03,0x6c,0x03,0xbe,0x03,0xbd,0x03,0x84,0x03,0xd7,0x03,0xd6,0x03,0xd5,0x03,0xd4,0x03,0xd3,0x03,0xd2,0x03,0xd0,0x03,0xcf,0x03,0xce,0x03,0xcd,0x03,0xcc,0x03,0xcb,0x03,0xca,0x03,0xc9,0x03,0xc8,0x03,0xd9,0x03,0xc7,0x03,0xc6,0x03,0xc5, -0x03,0xc4,0x03,0xc3,0x03,0xc2,0x03,0xc1,0x03,0xc0,0x03,0x6c,0x03,0xbe,0x03,0xbd,0x03,0x88,0x03,0xbc,0x03,0xbc,0x03,0xbb,0x03,0xbb,0x03,0xba,0x03,0xba,0x03,0xb9,0x03,0xb9,0x03,0xb8,0x03,0xb8,0x03,0xb6,0x03,0xb6,0x03,0xb5,0x03,0xb5,0x03,0xda,0x03,0xda,0x03,0xb4,0x03,0xb4,0x03,0xb3,0x03,0xb3,0x03,0xb2,0x03,0xb2,0x03,0xb1, -0x03,0xb1,0x03,0xb0,0x03,0xb0,0x03,0xaf,0x03,0xaf,0x03,0xae,0x03,0xae,0x03,0xac,0x03,0xac,0x03,0xab,0x03,0xab,0x03,0xaa,0x03,0xaa,0x03,0xa9,0x03,0xa9,0x03,0xa8,0x03,0xa8,0x03,0xa7,0x03,0xa7,0x03,0xa6,0x03,0xa5,0x03,0xa5,0x03,0xa4,0x03,0xa4,0x03,0xa3,0x03,0xa3,0x03,0xa2,0x03,0xa2,0x03,0xa1,0x03,0xa1,0x03,0xa0,0x03,0xa0, -0x03,0x9f,0x03,0x9f,0x03,0x9e,0x03,0x9e,0x03,0x9d,0x03,0x9d,0x03,0x9c,0x03,0x9c,0x03,0x9b,0x03,0x9b,0x03,0x9a,0x03,0x9a,0x03,0x99,0x03,0x99,0x03,0x98,0x03,0x98,0x03,0x97,0x03,0x97,0x03,0x96,0x03,0x96,0x03,0x95,0x03,0x95,0x03,0x6b,0x03,0x6b,0x03,0x93,0x03,0x93,0x03,0x92,0x03,0x92,0x03,0x91,0x03,0x91,0x03,0xd8,0x03,0xd8, -0x03,0x90,0x03,0x90,0x03,0x8f,0x03,0x8f,0x03,0x8e,0x03,0x8e,0x03,0x8d,0x03,0x8d,0x03,0x8c,0x03,0x8c,0x03,0x8b,0x03,0x8b,0x03,0x8a,0x03,0x8a,0x03,0x89,0x03,0x89,0x03,0x88,0x03,0x87,0x03,0x87,0x03,0x86,0x03,0x86,0x03,0x85,0x03,0x85,0x03,0xd1,0x03,0xd1,0x00,0x01,0x00,0x82,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x03,0x64, -0x00,0x02,0x00,0x4c,0x00,0x02,0x00,0x12,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x82,0x00,0x87,0x00,0x34,0x00,0x89,0x00,0x98,0x00,0x3a,0x00,0x9b,0x00,0x9f,0x00,0x4a,0x00,0xa1,0x00,0xa7,0x00,0x4f,0x00,0xa9,0x00,0xb8,0x00,0x56,0x00,0xbb,0x00,0xbf,0x00,0x66,0x00,0xc1,0x00,0xcb,0x00,0x6b,0x00,0xce, -0x00,0xe1,0x00,0x76,0x00,0xe4,0x00,0xe7,0x00,0x8a,0x00,0xea,0x00,0xf2,0x00,0x8e,0x00,0xf6,0x00,0xf9,0x00,0x97,0x00,0xfb,0x01,0x02,0x00,0x9b,0x01,0x05,0x01,0x0a,0x00,0xa3,0x01,0x0e,0x01,0x13,0x00,0xa9,0x01,0x16,0x01,0x40,0x00,0xaf,0x01,0x48,0x01,0x49,0x00,0xda,0x00,0x01,0x00,0x01,0x00,0x49,0x00,0x00,0x00,0x03,0x04,0x99, -0x01,0x90,0x00,0x05,0x00,0x04,0x05,0x9a,0x05,0x33,0x00,0x00,0x01,0x1f,0x05,0x9a,0x05,0x33,0x00,0x00,0x03,0xd1,0x00,0x66,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0x02,0xef,0x50,0x00,0x20,0x5b,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x70,0x79,0x72,0x73,0x00,0x40,0x00,0x00,0xff,0xfd, -0x06,0x00,0xfe,0x00,0x00,0x66,0x07,0x9a,0x02,0x00,0x20,0x00,0x01,0x9f,0x4f,0x01,0x00,0x00,0x04,0x3a,0x05,0xb0,0x00,0x00,0x00,0x20,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x04,0x7e,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x03,0x00,0x01,0x00,0x00,0x02,0x26,0x00,0x06,0x02,0x0a,0x00,0x00,0x00,0x00, -0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x00,0x00,0x00,0x03,0x00,0x04,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x00,0x1d,0x00,0x1e,0x00,0x1f,0x00,0x20,0x00,0x21, -0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x2b,0x00,0x2c,0x00,0x2d,0x00,0x2e,0x00,0x2f,0x00,0x30,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x38,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40,0x00,0x41, -0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47,0x00,0x48,0x00,0x49,0x00,0x4a,0x00,0x4b,0x00,0x4c,0x00,0x4d,0x00,0x4e,0x00,0x4f,0x00,0x50,0x00,0x51,0x00,0x52,0x00,0x53,0x00,0x54,0x00,0x55,0x00,0x56,0x00,0x57,0x00,0x58,0x00,0x59,0x00,0x5a,0x00,0x5b,0x00,0x5c,0x00,0x5d,0x00,0x5e,0x00,0x5f,0x00,0x60,0x00,0x61, -0x00,0x00,0x00,0x86,0x00,0x87,0x00,0x89,0x00,0x8b,0x00,0x93,0x00,0x98,0x00,0x9e,0x00,0xa3,0x00,0xa2,0x00,0xa4,0x00,0xa6,0x00,0xa5,0x00,0xa7,0x00,0xa9,0x00,0xab,0x00,0xaa,0x00,0xac,0x00,0xad,0x00,0xaf,0x00,0xae,0x00,0xb0,0x00,0xb1,0x00,0xb3,0x00,0xb5,0x00,0xb4,0x00,0xb6,0x00,0xb8,0x00,0xb7,0x00,0xbc,0x00,0xbb,0x00,0xbd, -0x00,0xbe,0x03,0x3b,0x00,0x72,0x00,0x64,0x00,0x65,0x00,0x69,0x03,0x3d,0x00,0x78,0x00,0xa1,0x00,0x70,0x00,0x6b,0x03,0x51,0x00,0x76,0x00,0x6a,0x03,0x5f,0x00,0x88,0x00,0x9a,0x03,0x5c,0x00,0x73,0x03,0x60,0x03,0x61,0x00,0x67,0x00,0x77,0x03,0x57,0x03,0x59,0x03,0x58,0x01,0x9a,0x03,0x5d,0x00,0x6c,0x00,0x7c,0x01,0x83,0x00,0xa8, -0x00,0xba,0x00,0x81,0x00,0x63,0x00,0x6e,0x03,0x5b,0x01,0x42,0x03,0x5e,0x01,0x6f,0x00,0x6d,0x00,0x7d,0x03,0x3f,0x00,0x03,0x00,0x82,0x00,0x85,0x00,0x97,0x01,0x14,0x01,0x15,0x03,0x30,0x03,0x31,0x03,0x38,0x03,0x39,0x03,0x34,0x03,0x35,0x00,0xb9,0x03,0x62,0x00,0xc1,0x01,0x3a,0x03,0x46,0x03,0x4d,0x03,0x43,0x03,0x44,0x03,0x64, -0x03,0x65,0x03,0x3c,0x00,0x79,0x03,0x36,0x03,0x3a,0x03,0x40,0x00,0x84,0x00,0x8c,0x00,0x83,0x00,0x8d,0x00,0x8a,0x00,0x8f,0x00,0x90,0x00,0x91,0x00,0x8e,0x00,0x95,0x00,0x96,0x00,0x00,0x00,0x94,0x00,0x9c,0x00,0x9d,0x00,0x9b,0x00,0xf3,0x01,0x52,0x01,0x58,0x00,0x71,0x01,0x54,0x01,0x55,0x01,0x56,0x00,0x7a,0x01,0x59,0x01,0x57, -0x01,0x53,0x00,0x04,0x02,0x58,0x00,0x00,0x00,0x92,0x00,0x80,0x00,0x06,0x00,0x12,0x00,0x00,0x00,0x09,0x00,0x0d,0x00,0x7e,0x01,0x7f,0x01,0x92,0x01,0xa1,0x01,0xb0,0x01,0xf0,0x01,0xff,0x02,0x19,0x02,0x37,0x02,0xbc,0x02,0xc7,0x02,0xc9,0x02,0xdd,0x02,0xf3,0x03,0x01,0x03,0x03,0x03,0x09,0x03,0x0f,0x03,0x23,0x03,0x8a,0x03,0x8c, -0x03,0xa1,0x03,0xce,0x03,0xd2,0x03,0xd6,0x04,0x86,0x05,0x13,0x1e,0x01,0x1e,0x3f,0x1e,0x85,0x1e,0xf9,0x1f,0x4d,0x20,0x0b,0x20,0x15,0x20,0x1e,0x20,0x22,0x20,0x26,0x20,0x30,0x20,0x33,0x20,0x3a,0x20,0x3c,0x20,0x44,0x20,0x74,0x20,0x7f,0x20,0xa4,0x20,0xa7,0x20,0xac,0x21,0x05,0x21,0x13,0x21,0x16,0x21,0x22,0x21,0x26,0x21,0x2e, -0x21,0x5e,0x22,0x02,0x22,0x06,0x22,0x0f,0x22,0x12,0x22,0x1a,0x22,0x1e,0x22,0x2b,0x22,0x48,0x22,0x60,0x22,0x65,0x25,0xca,0xf6,0xc3,0xfb,0x04,0xfe,0xff,0xff,0xfd,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x0d,0x00,0x20,0x00,0xa0,0x01,0x92,0x01,0xa0,0x01,0xaf,0x01,0xf0,0x01,0xfa,0x02,0x18,0x02,0x37,0x02,0xbc,0x02,0xc6, -0x02,0xc9,0x02,0xd8,0x02,0xf3,0x03,0x00,0x03,0x03,0x03,0x09,0x03,0x0f,0x03,0x23,0x03,0x84,0x03,0x8c,0x03,0x8e,0x03,0xa3,0x03,0xd1,0x03,0xd6,0x04,0x00,0x04,0x88,0x1e,0x00,0x1e,0x3e,0x1e,0x80,0x1e,0xa0,0x1f,0x4d,0x20,0x00,0x20,0x13,0x20,0x17,0x20,0x20,0x20,0x25,0x20,0x30,0x20,0x32,0x20,0x39,0x20,0x3c,0x20,0x44,0x20,0x74, -0x20,0x7f,0x20,0xa3,0x20,0xa7,0x20,0xab,0x21,0x05,0x21,0x13,0x21,0x16,0x21,0x22,0x21,0x26,0x21,0x2e,0x21,0x5b,0x22,0x02,0x22,0x06,0x22,0x0f,0x22,0x11,0x22,0x1a,0x22,0x1e,0x22,0x2b,0x22,0x48,0x22,0x60,0x22,0x64,0x25,0xca,0xf6,0xc3,0xfb,0x01,0xfe,0xff,0xff,0xfc,0xff,0xff,0x00,0x01,0x04,0x03,0xff,0xf5,0xff,0xe3,0xff,0xc2, -0xff,0xb0,0xff,0xa3,0xff,0x96,0xff,0x57,0xff,0x4e,0xff,0x36,0xff,0x19,0xfe,0x95,0xfe,0x8c,0xfd,0xa8,0xfe,0x7c,0xfe,0x67,0xfe,0x5b,0xfe,0x5a,0xfe,0x55,0xfe,0x50,0xfe,0x3d,0xfd,0xdd,0xfd,0xdc,0xfd,0xdb,0xfd,0xda,0xfd,0xd8,0xfd,0xd5,0xfd,0xac,0xfd,0xab,0xe4,0xbf,0xe4,0x83,0xe4,0x43,0xe4,0x29,0xe3,0xd6,0xe3,0x24,0xe3,0x1d, -0xe3,0x1c,0xe3,0x1b,0xe3,0x19,0xe3,0x10,0xe3,0x0f,0xe3,0x0a,0xe3,0x09,0xe3,0x02,0xe2,0xd3,0xe2,0xc9,0xe2,0xa6,0xe2,0xa4,0xe2,0xa1,0xe2,0x49,0xe2,0x3c,0xe2,0x3a,0xe2,0x2f,0xe0,0x5d,0xe2,0x24,0xe1,0xf8,0xe1,0x55,0xdf,0x69,0xe1,0x49,0xe1,0x48,0xe1,0x41,0xe1,0x3e,0xe1,0x32,0xe1,0x16,0xe0,0xff,0xe0,0xfc,0xdd,0x98,0x0c,0xa0, -0x08,0x63,0x04,0x69,0x03,0x6d,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x04,0x00,0x80,0x44,0x53,0x49,0x47,0x63,0xbc,0x04,0x48,0x00,0x0c,0x94,0x20,0x00,0x00,0x23,0xa0,0x47,0x44,0x45,0x46,0xb9,0xab,0xc5,0xc1,0x00,0x0c,0xb7,0xc0,0x00,0x00,0x03,0x58,0x47,0x50,0x4f,0x53,0x5b,0xad,0x7e,0xc2,0x00,0x0c,0xbb,0x18,0x00,0x01,0x4c,0xc8,0x47,0x53,0x55,0x42, +0x62,0x6c,0x1b,0xf3,0x00,0x0e,0x07,0xe0,0x00,0x00,0x8d,0x2e,0x4c,0x54,0x53,0x48,0x69,0x2b,0xe4,0xa7,0x00,0x00,0x55,0xe8,0x00,0x00,0x14,0xe4,0x4d,0x45,0x52,0x47,0x00,0x16,0x00,0x01,0x00,0x0e,0x95,0x10,0x00,0x00,0x00,0x0c,0x4f,0x53,0x2f,0x32,0x5f,0x62,0x3d,0x91,0x00,0x00,0x02,0x08,0x00,0x00,0x00,0x60,0x56,0x44,0x4d,0x58, +0x76,0x58,0x7d,0xd3,0x00,0x00,0x6a,0xcc,0x00,0x00,0x05,0xe0,0x63,0x6d,0x61,0x70,0x33,0x66,0x8a,0xbf,0x00,0x01,0xd3,0xd8,0x00,0x00,0x1c,0xe4,0x63,0x76,0x74,0x20,0x82,0x03,0x5d,0xdb,0x00,0x02,0x03,0x58,0x00,0x00,0x0a,0x22,0x66,0x70,0x67,0x6d,0x49,0x44,0xd8,0x67,0x00,0x01,0xf0,0xbc,0x00,0x00,0x0a,0x5c,0x67,0x61,0x73,0x70, +0x00,0x1b,0x00,0x23,0x00,0x0c,0x94,0x10,0x00,0x00,0x00,0x10,0x67,0x6c,0x79,0x66,0x2b,0xa3,0xa5,0xc9,0x00,0x02,0x61,0x00,0x00,0x09,0x4b,0xfc,0x68,0x64,0x6d,0x78,0xf0,0x92,0x4d,0xb8,0x00,0x00,0x70,0xac,0x00,0x01,0x63,0x2c,0x68,0x65,0x61,0x64,0xf3,0x00,0x6d,0x9b,0x00,0x00,0x01,0x8c,0x00,0x00,0x00,0x36,0x68,0x68,0x65,0x61, +0x14,0x0e,0x1d,0xa4,0x00,0x00,0x01,0xc4,0x00,0x00,0x00,0x24,0x68,0x6d,0x74,0x78,0x5e,0x06,0x4f,0x2c,0x00,0x00,0x02,0x68,0x00,0x00,0x53,0x80,0x6b,0x65,0x72,0x6e,0xcc,0xce,0xe6,0xda,0x00,0x0b,0xac,0xfc,0x00,0x00,0xc2,0x6a,0x6c,0x6f,0x63,0x61,0x5a,0x85,0x46,0xd0,0x00,0x02,0x0d,0x7c,0x00,0x00,0x53,0x84,0x6d,0x61,0x78,0x70, +0x1a,0xb0,0x0d,0xea,0x00,0x00,0x01,0xe8,0x00,0x00,0x00,0x20,0x6d,0x65,0x74,0x61,0x4d,0x44,0xb7,0xb7,0x00,0x0e,0x95,0x1c,0x00,0x00,0x00,0x80,0x6e,0x61,0x6d,0x65,0x4e,0xc3,0x16,0xb3,0x00,0x0c,0x6f,0x68,0x00,0x00,0x24,0x88,0x70,0x6f,0x73,0x74,0xff,0x51,0x00,0x77,0x00,0x0c,0x93,0xf0,0x00,0x00,0x00,0x20,0x70,0x72,0x65,0x70, +0x93,0xee,0x1e,0xb9,0x00,0x01,0xfb,0x18,0x00,0x00,0x08,0x40,0x00,0x01,0x00,0x00,0x00,0x05,0x9e,0xb8,0xa0,0x2c,0x85,0x86,0x5f,0x0f,0x3c,0xf5,0x00,0x1b,0x08,0x00,0x00,0x00,0x00,0x00,0xaf,0xf5,0x3c,0xaf,0x00,0x00,0x00,0x00,0xd8,0x6f,0x46,0x1c,0xfb,0x6b,0xfc,0xb6,0x0f,0xfe,0x0a,0x63,0x00,0x00,0x00,0x09,0x00,0x01,0x00,0x01, +0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x08,0xa2,0xfd,0xfe,0x00,0x00,0x0f,0xf4,0xfb,0x6b,0xfa,0xd1,0x0f,0xfe,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0xe0,0x00,0x01,0x00,0x00,0x14,0xe0,0x02,0xb9,0x00,0x20,0x00,0xa3,0x00,0x07,0x00,0x02,0x00,0x10,0x00,0x2f,0x00,0x86,0x00,0x00, +0x05,0x0e,0x0a,0x5c,0x00,0x04,0x00,0x01,0x00,0x03,0x04,0x4f,0x01,0x90,0x00,0x05,0x00,0x08,0x05,0x9a,0x05,0x33,0x00,0x00,0x01,0x1b,0x05,0x9a,0x05,0x33,0x00,0x00,0x03,0xd1,0x00,0x66,0x02,0x12,0x08,0x05,0x02,0x0b,0x05,0x02,0x04,0x02,0x04,0x02,0x02,0x03,0xe4,0x00,0x2e,0xff,0xc0,0x00,0xe4,0x7f,0x00,0x00,0x00,0x09,0x00,0x00, +0x00,0x00,0x4d,0x53,0x20,0x20,0x00,0x40,0x00,0x0d,0xff,0xfd,0x05,0xd3,0xfe,0x51,0x01,0x0d,0x08,0xa2,0x02,0x02,0x20,0x00,0x01,0xff,0x00,0x00,0x00,0x00,0x04,0x00,0x05,0x9a,0x00,0x00,0x00,0x20,0x00,0x17,0x05,0x2a,0x00,0xa6,0x00,0x00,0x00,0x00,0x00,0xc7,0x00,0x00,0x02,0x31,0x00,0x00,0x02,0x46,0x00,0xb4,0x03,0x23,0x00,0xa3, +0x04,0xba,0x00,0x21,0x04,0x50,0x00,0xa2,0x06,0x8c,0x00,0x50,0x06,0x67,0x00,0x77,0x01,0xd7,0x00,0xa3,0x02,0x6a,0x00,0x8c,0x02,0x6a,0x00,0x16,0x03,0x56,0x00,0x4c,0x05,0x79,0x00,0xe8,0x01,0xbc,0x00,0x27,0x03,0x33,0x00,0x90,0x01,0xbc,0x00,0x70,0x03,0x1e,0xff,0xe4,0x04,0x50,0x00,0x56,0x04,0x50,0x00,0xe4,0x04,0x50,0x00,0x6d, +0x04,0x50,0x00,0x7b,0x04,0x50,0x00,0x0e,0x04,0x50,0x00,0xa4,0x04,0x50,0x00,0x6f,0x04,0x50,0x00,0x62,0x04,0x50,0x00,0x5a,0x04,0x50,0x00,0x5e,0x01,0xbc,0x00,0x70,0x01,0xbc,0x00,0x27,0x05,0x79,0x01,0x10,0x05,0x79,0x00,0xe8,0x05,0x79,0x01,0x10,0x03,0x96,0x00,0x83,0x07,0xa4,0x00,0xac,0x05,0x29,0x00,0x16,0x04,0x96,0x00,0xbc, +0x04,0xf4,0x00,0x5e,0x05,0x9c,0x00,0xbc,0x04,0x0c,0x00,0xbc,0x03,0xe8,0x00,0xbc,0x05,0x7d,0x00,0x5e,0x05,0xae,0x00,0xbc,0x02,0x21,0x00,0xbc,0x02,0xdb,0x00,0x14,0x04,0xa4,0x00,0xbc,0x03,0xc4,0x00,0xbc,0x07,0x2f,0x00,0xbc,0x05,0xfc,0x00,0xbc,0x06,0x08,0x00,0x5e,0x04,0x7b,0x00,0xbc,0x06,0x08,0x00,0x5e,0x04,0xc9,0x00,0xbc, +0x04,0x40,0x00,0x79,0x04,0x31,0x00,0x29,0x05,0x7f,0x00,0xaa,0x04,0xf8,0x00,0x12,0x07,0x79,0x00,0x1a,0x04,0xb8,0x00,0x1a,0x04,0x6c,0x00,0x12,0x04,0x90,0x00,0x21,0x02,0x6a,0x00,0xc8,0x03,0x08,0xff,0xe6,0x02,0x6a,0x00,0x35,0x05,0x79,0x00,0xe6,0x03,0x52,0x00,0x00,0x02,0x25,0x00,0x52,0x04,0x12,0x00,0x5a,0x04,0xb4,0x00,0xa6, +0x03,0xb2,0x00,0x60,0x04,0xb6,0x00,0x60,0x04,0x2f,0x00,0x60,0x02,0x81,0x00,0x35,0x04,0xb6,0x00,0x60,0x04,0x87,0x00,0xa6,0x01,0xf0,0x00,0x90,0x01,0xf0,0xff,0x3a,0x03,0xfa,0x00,0xa6,0x01,0xf0,0x00,0xa6,0x06,0xe4,0x00,0xa6,0x04,0x87,0x00,0xa6,0x04,0xb0,0x00,0x60,0x04,0xb4,0x00,0xa6,0x04,0xb6,0x00,0x60,0x02,0xc8,0x00,0xa6, +0x03,0x65,0x00,0x68,0x02,0xb6,0x00,0x2b,0x04,0x87,0x00,0x90,0x03,0xd5,0x00,0x0e,0x05,0xc8,0x00,0x18,0x03,0xac,0x00,0x1a,0x03,0xdf,0x00,0x0e,0x03,0x9e,0x00,0x21,0x02,0x6a,0x00,0x5c,0x01,0xea,0x00,0xac,0x02,0x6a,0x00,0x42,0x05,0x79,0x00,0xd1,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x16,0x04,0xf4,0x00,0x5e,0x04,0x0c,0x00,0xbc, +0x05,0xfc,0x00,0xbc,0x06,0x08,0x00,0x5e,0x05,0x7f,0x00,0xaa,0x04,0x12,0x00,0x5a,0x04,0x12,0x00,0x5a,0x04,0x12,0x00,0x5a,0x04,0x12,0x00,0x5a,0x04,0x12,0x00,0x5a,0x04,0x12,0x00,0x5a,0x03,0xb2,0x00,0x60,0x04,0x2f,0x00,0x60,0x04,0x2f,0x00,0x60,0x04,0x2f,0x00,0x60,0x04,0x2f,0x00,0x60,0x01,0xf0,0x00,0x58,0x01,0xf0,0xff,0xec, +0x01,0xf0,0xff,0xd3,0x01,0xf0,0xff,0xc9,0x04,0x87,0x00,0xa6,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0x87,0x00,0x90,0x04,0x87,0x00,0x90,0x04,0x87,0x00,0x90,0x04,0x87,0x00,0x90,0x03,0x00,0x00,0x30,0x03,0x04,0x00,0x6c,0x04,0x50,0x00,0xb8,0x04,0x50,0x00,0x6a, +0x03,0x96,0x00,0x83,0x03,0x40,0x00,0xa4,0x03,0xaa,0x00,0x54,0x04,0x5a,0x00,0xa6,0x03,0x33,0x00,0x90,0x07,0x1f,0x01,0x38,0x07,0x1f,0x00,0xa2,0x06,0x2f,0x00,0x4c,0x02,0x42,0x00,0x87,0x03,0x50,0x00,0x7d,0x05,0x7b,0x00,0xe8,0x06,0xe2,0x00,0x0a,0x06,0x08,0x00,0x5e,0x06,0x89,0x00,0x52,0x05,0x79,0x00,0xe8,0x05,0x7b,0x00,0xe8, +0x05,0x7b,0x00,0xe8,0x04,0x50,0x00,0x44,0x04,0x9e,0x00,0xa6,0x04,0x48,0x00,0x4e,0x04,0xef,0x00,0x33,0x06,0x08,0x00,0xbc,0x04,0x51,0x00,0xbe,0x03,0x23,0x00,0x52,0x03,0x72,0x00,0x4e,0x06,0x0a,0x00,0x64,0x06,0xa8,0x00,0x5a,0x04,0xb0,0x00,0x31,0x03,0x96,0x00,0x8f,0x02,0x31,0x00,0x00,0x02,0x46,0x00,0xb4,0x05,0x79,0x00,0xe8, +0x05,0x33,0x00,0x7b,0x04,0x50,0x00,0x5e,0x05,0x7b,0x00,0xd1,0x05,0x28,0x00,0x33,0x04,0x0c,0x00,0x5c,0x04,0x0c,0x00,0x5a,0x05,0xdd,0x00,0x8c,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x16,0x06,0x08,0x00,0x5e,0x07,0x72,0x00,0x5e,0x07,0x6c,0x00,0x60,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x03,0x04,0x00,0x6a,0x03,0x04,0x00,0x6e, +0x01,0xd5,0x00,0x6a,0x01,0xd5,0x00,0x6e,0x05,0x79,0x00,0xe8,0x04,0xab,0x00,0x6c,0x03,0xdf,0x00,0x0e,0x04,0x6c,0x00,0x12,0x01,0x62,0xfe,0xc8,0x04,0x50,0x00,0x66,0x02,0x87,0x00,0x5c,0x02,0x87,0x00,0x5c,0x04,0x70,0x00,0x35,0x04,0x70,0x00,0x35,0x03,0x00,0x00,0x30,0x01,0xbc,0x00,0x70,0x01,0xd5,0x00,0x58,0x03,0x04,0x00,0x58, +0x09,0xae,0x00,0x50,0x05,0x29,0x00,0x16,0x04,0x0c,0x00,0xbc,0x05,0x29,0x00,0x16,0x04,0x0c,0x00,0xbc,0x04,0x0c,0x00,0xbc,0x02,0x21,0x00,0x78,0x02,0x21,0xff,0xfc,0x02,0x21,0xff,0xf1,0x02,0x21,0x00,0x1b,0x06,0x08,0x00,0x5e,0x06,0x08,0x00,0x5e,0x06,0x08,0x00,0x5e,0x05,0x7f,0x00,0xaa,0x05,0x7f,0x00,0xaa,0x05,0x7f,0x00,0xaa, +0x01,0xf0,0x00,0xa6,0x02,0xf8,0x00,0x5c,0x02,0xb2,0x00,0x23,0x02,0x7b,0x00,0x3e,0x02,0x6e,0x00,0x25,0x01,0x9c,0x00,0x6c,0x02,0x3e,0x00,0x52,0x01,0xa4,0x00,0x33,0x02,0x98,0x00,0x40,0x01,0x7b,0x00,0x3e,0x02,0xf8,0x00,0x66,0x03,0xc4,0x00,0x21,0x02,0x31,0x00,0x16,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x90,0x00,0x21, +0x03,0x9e,0x00,0x21,0x01,0xea,0x00,0xac,0x05,0x9c,0x00,0x1c,0x04,0x79,0x00,0x60,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x7b,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x05,0x79,0x00,0xe8,0x05,0x79,0x01,0x0c,0x02,0xcf,0x00,0x50,0x02,0xee,0x00,0x68,0x02,0xee,0x00,0x81,0x07,0x72,0x00,0x50,0x07,0x40,0x00,0x50,0x07,0x9e,0x00,0x81, +0x03,0xe8,0x00,0x1c,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x02,0x21,0x00,0xad,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0xf4,0x00,0x5e,0x03,0xb2,0x00,0x60,0x04,0xf4,0x00,0x5e,0x03,0xb2,0x00,0x60,0x04,0xb6,0x00,0x60,0x03,0x52,0x00,0x00,0x01,0xbc,0x00,0x70,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16, +0x04,0x12,0x00,0x5a,0x05,0x9c,0x00,0xbc,0x05,0x65,0x00,0x60,0x05,0x9c,0x00,0x1c,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x03,0xc4,0x00,0xbc,0x01,0xf0,0x00,0x8e,0x03,0xc4,0x00,0xbc,0x02,0x75,0x00,0xa6,0x03,0xc4,0x00,0xbc,0x02,0x85,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6, +0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0x97,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x04,0x31,0x00,0x29,0x03,0x85,0x00,0x2b,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90, +0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x03,0xc6,0x00,0xbc,0x06,0x08,0x00,0x5e,0x06,0x08,0x00,0x60,0x04,0xea,0x00,0x5a,0x04,0xac,0x00,0x5c,0x03,0x81,0x00,0x52,0x04,0x99,0x00,0x61,0x03,0xe6,0x00,0x22,0x05,0x98,0x00,0x60,0x03,0x52,0x00,0x00, +0x03,0xd7,0x00,0xb4,0x03,0x23,0x00,0x6e,0x08,0xe2,0x00,0xbc,0x04,0xfc,0x00,0xbc,0x03,0xf6,0x00,0x90,0x04,0xd9,0xff,0xd7,0x01,0xd5,0x00,0x82,0x03,0x04,0x00,0x8d,0x06,0x6e,0x00,0x96,0x02,0x96,0x00,0x0e,0x04,0xd5,0x00,0x92,0x02,0xd5,0x00,0x83,0x02,0xd5,0x00,0x83,0x04,0xd5,0x00,0xb2,0x02,0xd5,0x00,0x70,0x05,0x29,0x00,0x16, +0x04,0x12,0x00,0x5a,0x04,0xf4,0x00,0x5e,0x03,0xb2,0x00,0x60,0x04,0xf4,0x00,0x5e,0x03,0xb2,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x05,0x7d,0x00,0x5e, +0x04,0xb6,0x00,0x60,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xae,0x00,0x1c,0x04,0x87,0x00,0x1e,0x02,0x21,0xff,0xd0,0x01,0xf0,0xff,0xad,0x02,0x21,0x00,0x13,0x01,0xf0,0xff,0xef,0x02,0x21,0xff,0xfe,0x01,0xf0,0xff,0xdb,0x02,0x21,0x00,0x50,0x01,0xf0,0x00,0x37,0x02,0xdb,0x00,0x14,0x01,0xf0,0xff,0x3a,0x04,0xa4,0x00,0xbc, +0x03,0xfa,0x00,0xa6,0x03,0xfa,0x00,0xa6,0x03,0xc4,0x00,0xbc,0x01,0xf0,0x00,0x27,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68, +0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x01,0xee,0x00,0xa6,0x05,0x29,0x00,0x16, +0x04,0x12,0x00,0x5a,0x06,0xe2,0x00,0x0a,0x06,0xa8,0x00,0x5a,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x31,0x01,0xbc,0x00,0x70,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x01,0xd5,0x00,0x6e,0x03,0x52,0x00,0x00, +0x04,0x50,0x00,0x6a,0x04,0xcd,0x00,0x55,0x07,0x60,0x00,0x50,0x07,0x60,0x00,0x81,0x07,0x6e,0x00,0x8c,0x07,0x23,0x00,0xa2,0x03,0x1e,0x00,0xdb,0x03,0x1e,0x00,0xdb,0x01,0xbc,0x00,0x27,0x02,0x2e,0x00,0xce,0x02,0x2e,0xff,0xda,0x05,0x29,0x00,0x16,0x04,0x90,0xff,0xc5,0x06,0x31,0xff,0xc5,0x03,0x07,0xff,0xc6,0x06,0x68,0xff,0xd1, +0x05,0x56,0xff,0xb3,0x06,0x9c,0xff,0xd1,0x02,0x22,0xff,0xb2,0x05,0x29,0x00,0x16,0x04,0x96,0x00,0xbc,0x04,0x0c,0x00,0xbc,0x04,0x90,0x00,0x21,0x05,0xae,0x00,0xbc,0x02,0x21,0x00,0xbc,0x04,0xa4,0x00,0xbc,0x05,0x08,0x00,0x18,0x07,0x2f,0x00,0xbc,0x05,0xfc,0x00,0xbc,0x04,0x14,0x00,0x3a,0x06,0x08,0x00,0x5e,0x05,0xb4,0x00,0xbc, +0x04,0x7b,0x00,0xbc,0x04,0x21,0x00,0x2e,0x04,0x31,0x00,0x29,0x04,0x6c,0x00,0x12,0x04,0xb8,0x00,0x1a,0x06,0x35,0x00,0x88,0x06,0x0a,0x00,0x64,0x02,0x21,0xff,0xf1,0x04,0x6c,0x00,0x12,0x04,0xea,0x00,0x5a,0x03,0x81,0x00,0x52,0x04,0x9a,0x00,0x82,0x02,0x22,0x00,0xa6,0x04,0x6c,0x00,0x14,0x04,0x62,0x00,0xa7,0x04,0x27,0x00,0x05, +0x03,0x89,0x00,0x4c,0x04,0x9a,0x00,0x82,0x04,0xb1,0x00,0x61,0x02,0x22,0x00,0xa6,0x04,0x31,0x00,0xa6,0x03,0xfc,0xff,0xfe,0x04,0x9e,0x00,0xa7,0x04,0x35,0x00,0x0c,0x03,0x8f,0x00,0x4d,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0xa1,0x03,0xaf,0x00,0x57,0x04,0x6c,0x00,0x14,0x04,0x4e,0x00,0x0c,0x06,0x00,0x00,0x98,0x06,0x77,0x00,0x77, +0x02,0x22,0xff,0xed,0x04,0x6c,0x00,0x14,0x04,0xb0,0x00,0x60,0x04,0x6c,0x00,0x14,0x06,0x77,0x00,0x77,0x04,0x0c,0x00,0xbc,0x05,0x9a,0x00,0x29,0x03,0xc6,0x00,0xbc,0x04,0xf0,0x00,0x5e,0x04,0x40,0x00,0x79,0x02,0x21,0xff,0xf1,0x07,0xd9,0x00,0x10,0x07,0xde,0x00,0xbc,0x05,0xc8,0x00,0x29,0x04,0xa4,0x00,0xbc,0x04,0x8a,0x00,0x3c, +0x05,0xab,0x00,0xbc,0x05,0x29,0x00,0x16,0x04,0x93,0x00,0xbc,0x04,0x96,0x00,0xbc,0x03,0xc6,0x00,0xbc,0x05,0x8c,0x00,0x0f,0x04,0x0c,0x00,0xbc,0x06,0xef,0xff,0xea,0x04,0x52,0x00,0x60,0x05,0xfe,0x00,0xbc,0x05,0xfe,0x00,0xbc,0x04,0xa4,0x00,0xbc,0x05,0x62,0x00,0x10,0x07,0x2f,0x00,0xbc,0x05,0xae,0x00,0xbc,0x06,0x08,0x00,0x5e, +0x05,0xb4,0x00,0xbc,0x04,0x7b,0x00,0xbc,0x04,0xf4,0x00,0x5e,0x04,0x31,0x00,0x29,0x04,0x8a,0x00,0x3c,0x05,0xd0,0x00,0x5e,0x04,0xb8,0x00,0x1a,0x05,0xf0,0x00,0xbc,0x05,0x4a,0x00,0xa6,0x07,0x98,0x00,0xbc,0x07,0xd7,0x00,0xbc,0x05,0xa5,0x00,0x29,0x06,0x44,0x00,0xbc,0x04,0x9c,0x00,0xbc,0x04,0xee,0x00,0x68,0x08,0x26,0x00,0xbc, +0x04,0xba,0x00,0x3d,0x04,0x12,0x00,0x5a,0x04,0xa2,0x00,0x77,0x04,0x3d,0x00,0xa6,0x03,0x10,0x00,0xa6,0x04,0x60,0x00,0x12,0x04,0x2f,0x00,0x60,0x05,0xf8,0x00,0x04,0x03,0x91,0x00,0x50,0x04,0xa6,0x00,0xa6,0x04,0xa6,0x00,0xa6,0x03,0xfa,0x00,0xa6,0x04,0x37,0x00,0x10,0x05,0x9e,0x00,0xa6,0x04,0x9e,0x00,0xa6,0x04,0xb0,0x00,0x60, +0x04,0x9e,0x00,0xa6,0x04,0xb4,0x00,0xa6,0x03,0xb2,0x00,0x60,0x03,0x48,0x00,0x1e,0x03,0xdf,0x00,0x0e,0x05,0x7d,0x00,0x60,0x03,0xac,0x00,0x1a,0x04,0xcd,0x00,0xa6,0x04,0x85,0x00,0x98,0x06,0x66,0x00,0xa6,0x06,0x98,0x00,0xa6,0x04,0xba,0x00,0x1e,0x05,0xad,0x00,0xa6,0x04,0x08,0x00,0xa6,0x03,0xb2,0x00,0x5a,0x06,0x81,0x00,0xa6, +0x04,0x06,0x00,0x3e,0x04,0x2f,0x00,0x60,0x04,0x9e,0x00,0x27,0x03,0x10,0x00,0xa6,0x03,0xb2,0x00,0x60,0x03,0x65,0x00,0x68,0x01,0xf0,0xff,0xd3,0x06,0x52,0x00,0x10,0x06,0x74,0x00,0xa6,0x04,0x8a,0x00,0x27,0x03,0xfa,0x00,0xa6,0x03,0xdf,0x00,0x0e,0x04,0x9e,0x00,0xa6,0x03,0xc0,0x00,0xbc,0x03,0x20,0x00,0xa6,0x08,0x00,0x00,0x00, +0x08,0xfa,0x00,0xbc,0x05,0x04,0x00,0x11,0x02,0xcf,0x00,0x2f,0x02,0xee,0x00,0x7b,0x02,0xee,0x00,0x4d,0x02,0xee,0x00,0x41,0x01,0xf0,0x00,0xa6,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x72,0x00,0x64,0x06,0x1a,0x00,0x5e,0x04,0xc7,0x00,0x60,0x05,0xaa,0x00,0xaa,0x04,0xb4,0x00,0x90,0x02,0x6e,0x00,0xab,0x02,0xaa,0x00,0xf2, +0x02,0x25,0x00,0x66,0x02,0x25,0x00,0x64,0x03,0xd3,0x00,0x42,0x03,0xd3,0x00,0x42,0x03,0xd3,0x00,0x6c,0x03,0xd3,0x00,0xa9,0x02,0x6e,0x00,0x25,0x02,0x6e,0x00,0x38,0x02,0x6e,0x00,0x25,0x03,0xd3,0x00,0xa9,0x02,0x6e,0x00,0xab,0x03,0xd3,0x00,0xa9,0x02,0x6e,0x00,0x25,0x02,0x6e,0x00,0x38,0x02,0x6e,0x00,0x25,0x03,0xd3,0x00,0xa9, +0x03,0xd3,0x00,0x6c,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0xff,0xe8,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16, +0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc, +0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0x0e,0x04,0x2f,0x00,0x0c,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x02,0x21,0x00,0x9a,0x01,0xf0,0x00,0x88,0x02,0x21,0x00,0xb2,0x01,0xf0,0x00,0x90,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e, +0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x30,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x1a,0x00,0x5e,0x04,0xc7,0x00,0x60,0x06,0x1a,0x00,0x5e,0x04,0xc7,0x00,0x60,0x06,0x1a,0x00,0x5e, +0x04,0xc7,0x00,0x60,0x06,0x1a,0x00,0x5e,0x04,0xc7,0x00,0x60,0x06,0x1a,0x00,0x5e,0x04,0xc7,0x00,0x60,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0xaa,0x00,0xaa,0x04,0xb4,0x00,0x90,0x05,0xaa,0x00,0xaa,0x04,0xb4,0x00,0x90,0x05,0xaa,0x00,0xaa,0x04,0xb4,0x00,0x90,0x05,0xaa,0x00,0xaa, +0x04,0xb4,0x00,0x90,0x05,0xaa,0x00,0xaa,0x04,0xb4,0x00,0x90,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x05,0xfe,0x00,0xbc,0x04,0xa6,0x00,0xa6,0x02,0x21,0x00,0xbc, +0x02,0xdb,0x00,0x14,0x01,0xf0,0x00,0x90,0x01,0xf0,0xff,0x3a,0x04,0x1e,0x00,0x29,0x03,0x48,0x00,0x1e,0x07,0x48,0xff,0xea,0x06,0x3e,0x00,0x04,0x04,0xe6,0x00,0xbc,0x04,0x3e,0x00,0xa6,0x04,0xa4,0x00,0xbc,0x03,0xf6,0x00,0xa6,0x05,0xf0,0x00,0xbc,0x04,0xcd,0x00,0xa6,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x6c,0x00,0x12, +0x03,0xdf,0x00,0x0e,0x05,0x04,0x00,0x1a,0x03,0xf2,0x00,0x1a,0x05,0x3e,0x00,0xa6,0x04,0x85,0x00,0x98,0x05,0x4a,0x00,0xa6,0x04,0x87,0x00,0xa6,0x05,0xc4,0x00,0x56,0x04,0x2f,0x00,0x52,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x02,0x6e,0x00,0x3e,0x02,0x6e,0x00,0x3e,0x02,0x6e,0x00,0x3e,0x02,0x6e,0x00,0x3e,0x03,0x50,0x00,0x7d, +0x03,0x50,0x00,0x7d,0x03,0xd3,0x00,0xa9,0x03,0xd3,0x00,0xa9,0x03,0xd3,0x00,0xa9,0x03,0xd3,0x00,0xa9,0x02,0x25,0x00,0x14,0x02,0x25,0x00,0x14,0x02,0x6e,0x00,0x1e,0x02,0x6e,0x00,0x1e,0x02,0x6e,0x00,0x14,0x02,0x6e,0x00,0x14,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x04,0x96,0x00,0xbc, +0x04,0xb4,0x00,0xa6,0x04,0x96,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x04,0x96,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x04,0xf4,0x00,0x5e,0x03,0xb2,0x00,0x60,0x05,0x9c,0x00,0xbc,0x04,0xb6,0x00,0x60,0x05,0x9c,0x00,0xbc,0x04,0xb6,0x00,0x60,0x05,0x9c,0x00,0xbc,0x04,0xb6,0x00,0x60,0x05,0x9c,0x00,0xbc,0x04,0xb6,0x00,0x60,0x05,0x9c,0x00,0xbc, +0x04,0xb6,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x03,0xe8,0x00,0xbc,0x02,0x81,0x00,0x35,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x05,0xae,0x00,0xbc, +0x04,0x87,0x00,0xa6,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xae,0x00,0xa0,0x04,0x87,0x00,0x8c,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x02,0x21,0xff,0xcf,0x01,0xf0,0xff,0xb9,0x02,0x21,0xff,0xf2,0x01,0xf0,0xff,0xd4,0x04,0xa4,0x00,0xbc,0x03,0xfa,0x00,0xa6,0x04,0xa4,0x00,0xbc, +0x03,0xfa,0x00,0xa6,0x04,0xa4,0x00,0xbc,0x03,0xfa,0x00,0xa6,0x03,0xc4,0x00,0xbc,0x01,0xf0,0x00,0x95,0x03,0xc4,0x00,0xbc,0x01,0xf0,0xff,0xfa,0x03,0xc4,0x00,0xbc,0x01,0xf0,0xff,0xfc,0x03,0xc4,0x00,0xbc,0x01,0xf0,0xff,0xdf,0x07,0x2f,0x00,0xbc,0x06,0xe4,0x00,0xa6,0x07,0x2f,0x00,0xbc,0x06,0xe4,0x00,0xa6,0x07,0x2f,0x00,0xbc, +0x06,0xe4,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e, +0x04,0xb0,0x00,0x60,0x04,0x7b,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x04,0x7b,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x40,0x00,0x79, +0x03,0x65,0x00,0x68,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x05,0x7f,0x00,0xaa, +0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x04,0xf8,0x00,0x12,0x03,0xd5,0x00,0x0e,0x04,0xf8,0x00,0x12,0x03,0xd5,0x00,0x0e,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x07,0x79,0x00,0x1a, +0x05,0xc8,0x00,0x18,0x04,0xb8,0x00,0x1a,0x03,0xac,0x00,0x1a,0x04,0xb8,0x00,0x1a,0x03,0xac,0x00,0x1a,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x04,0x87,0x00,0xa6,0x02,0xb6,0x00,0x2b,0x05,0xc8,0x00,0x18, +0x03,0xdf,0x00,0x0e,0x04,0x12,0x00,0x5a,0x01,0xee,0x00,0x4e,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x16,0x05,0xee,0xff,0xbc,0x05,0xee,0xff,0xbe,0x05,0xee,0xff,0xbc, +0x05,0xee,0xff,0xbe,0x05,0xee,0xff,0xbc,0x05,0xee,0xff,0xbc,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x04,0x90,0xff,0xbd,0x04,0x90,0xff,0xbe,0x05,0xb2,0xff,0xbc,0x05,0xb2,0xff,0xc0,0x05,0xb2,0xff,0xbd,0x05,0xb2,0xff,0xbf,0x04,0x9a,0x00,0x82, +0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x06,0x30,0xff,0xbd,0x06,0x30,0xff,0xbe,0x07,0x56,0xff,0xbc,0x07,0x56,0xff,0xc0,0x07,0x56,0xff,0xbd,0x07,0x56,0xff,0xbf,0x07,0x56,0xff,0xbc,0x07,0x56,0xff,0xbc,0x02,0x22,0x00,0x94, +0x02,0x22,0x00,0x6e,0x02,0x22,0xff,0xdd,0x02,0x22,0xff,0xb3,0x02,0x22,0x00,0x1b,0x02,0x22,0xff,0xea,0x02,0x22,0xff,0xc0,0x02,0x22,0xff,0xc0,0x03,0x06,0xff,0xbd,0x03,0x06,0xff,0xbe,0x03,0xf8,0xff,0xbd,0x03,0xf8,0xff,0xc0,0x04,0x2a,0xff,0xbc,0x04,0x34,0xff,0xbf,0x04,0x2a,0xff,0xbd,0x04,0x2a,0xff,0xbd,0x04,0xb0,0x00,0x60, +0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x06,0x6e,0xff,0xbd,0x06,0x6e,0xff,0xbe,0x07,0xa0,0xff,0xbc,0x07,0xa0,0xff,0xbe,0x07,0xa0,0xff,0xbc,0x07,0xa0,0xff,0xbe,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14, +0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x05,0x56,0xff,0xbe,0x06,0x8c,0xff,0xc0,0x06,0x8c,0xff,0xbf,0x06,0x8c,0xff,0xbc,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x9c,0xff,0xbd, +0x06,0x9c,0xff,0xbe,0x07,0xa6,0xff,0xbc,0x07,0xa6,0xff,0xc0,0x07,0xa6,0xff,0xbd,0x07,0xa6,0xff,0xbf,0x07,0xa6,0xff,0xbc,0x07,0xa6,0xff,0xbc,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x02,0x22,0x00,0x34,0x02,0x22,0x00,0xa6,0x04,0xb0,0x00,0x60, +0x04,0xb0,0x00,0x60,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x16,0x05,0xee,0xff,0xbd, +0x05,0xee,0xff,0xc1,0x05,0xee,0xff,0xbd,0x05,0xee,0xff,0xbf,0x05,0xee,0xff,0xbd,0x05,0xee,0xff,0xbc,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x06,0x31,0xff,0xbc,0x06,0x30,0xff,0xbe,0x07,0x56,0xff,0xbc, +0x07,0x56,0xff,0xbe,0x07,0x56,0xff,0xbc,0x07,0x56,0xff,0xbe,0x07,0x56,0xff,0xbc,0x07,0x56,0xff,0xbc,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x9c,0xff,0xbc,0x06,0x9c,0xff,0xbe,0x07,0xa6,0xff,0xbc, +0x07,0xa6,0xff,0xbe,0x07,0xa6,0xff,0xbc,0x07,0xa6,0xff,0xbe,0x07,0xa6,0xff,0xbc,0x07,0xa6,0xff,0xbc,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x16,0x05,0x29,0xff,0xfb,0x05,0x29,0x00,0x16, +0x05,0x29,0x00,0x16,0x04,0xb0,0x01,0xe4,0x04,0xb0,0x01,0xba,0x04,0xb0,0x01,0xe4,0x04,0xb0,0x01,0x40,0x04,0xb0,0x01,0x33,0x04,0x9a,0x00,0x83,0x04,0x9a,0x00,0x83,0x04,0x9a,0x00,0x83,0x04,0x9a,0x00,0x83,0x04,0x9a,0x00,0x83,0x04,0x90,0xff,0xac,0x04,0x90,0xff,0xc4,0x06,0x31,0xff,0xac,0x06,0x31,0xff,0xc4,0x05,0xae,0x00,0xbc, +0x04,0xb0,0x01,0x4a,0x04,0xb0,0x01,0x42,0x04,0xb0,0x01,0x33,0x02,0x22,0xff,0xec,0x02,0x22,0xff,0xfa,0x02,0x22,0xff,0xb2,0x02,0x22,0xff,0xb2,0x02,0x22,0xff,0xdf,0x02,0x22,0xff,0xd5,0x02,0x21,0xff,0xfe,0x02,0x21,0x00,0x12,0x02,0xe8,0xff,0xae,0x03,0x07,0xff,0xc6,0x04,0xb0,0x01,0x44,0x04,0xb0,0x01,0x38,0x04,0xb0,0x01,0x33, +0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0xb0,0x00,0xa1,0x04,0xb0,0x00,0xa1,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x12,0x04,0x6c,0x00,0x12,0x05,0x56,0xff,0x96,0x05,0x56,0xff,0xb2,0x05,0x04,0xff,0xbe,0x04,0xb0,0x01,0x02,0x04,0xb0,0x01,0x02,0x04,0xb0,0x01,0xd1, +0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x9c,0xff,0xac,0x06,0x9c,0xff,0xd1,0x06,0xb3,0xff,0xac,0x06,0x9c,0xff,0xd1,0x06,0x0a,0x00,0x64,0x04,0xb0,0x01,0xd1,0x04,0xb0,0x01,0xe2,0x00,0x00,0xfe,0xe8,0x00,0x00,0xfe,0xc0,0x00,0x00,0xff,0x02,0x00,0x00,0xfe,0x58, +0x00,0x00,0xfe,0xee,0x00,0x00,0xff,0x9e,0x00,0x00,0xfe,0xdd,0x00,0x00,0xff,0x33,0x00,0x00,0xfe,0xdd,0x00,0x00,0xfe,0xe8,0x00,0x00,0xff,0xcb,0x00,0x00,0xff,0x58,0x00,0x00,0xfe,0xdd,0x00,0x00,0xfe,0xee,0x00,0x00,0xfe,0xee,0x00,0x00,0xff,0x8c,0x00,0x00,0xff,0x8c,0x00,0x00,0xff,0x8c,0x00,0x00,0x00,0x2f,0x00,0x00,0xff,0x3e, +0x00,0x00,0xff,0x3e,0x00,0x00,0xff,0x48,0x00,0x00,0xff,0x48,0x00,0x00,0xff,0x16,0x00,0x00,0xff,0x52,0x00,0x00,0xff,0xa6,0x00,0x00,0xff,0x4c,0x00,0x00,0xff,0x4c,0x00,0x00,0xff,0x4c,0x00,0x00,0xff,0x03,0x00,0x00,0xff,0x1a,0x00,0x00,0xff,0x1a,0x00,0x00,0xfe,0xdd,0x00,0x00,0xff,0x35,0x00,0x00,0xff,0x9c,0x00,0x00,0xff,0x56, +0x00,0x00,0xff,0x5d,0x00,0x00,0xff,0xcb,0x00,0x00,0xfe,0x9c,0x00,0x00,0xfe,0xb1,0x00,0x00,0xfe,0xe8,0x00,0x00,0xfe,0xe8,0x00,0x00,0xfe,0xee,0x00,0x00,0xfe,0xe9,0x00,0x00,0xfe,0xc0,0x00,0x00,0xff,0x05,0x00,0x00,0xfe,0x57,0x00,0x00,0xfe,0x57,0x00,0x00,0xfe,0xc0,0x00,0x00,0xff,0x02,0x00,0x00,0xfe,0x58,0x00,0x00,0xfe,0x66, +0x00,0x00,0xfe,0x70,0x00,0x00,0xff,0xa6,0x00,0x00,0xfe,0x9c,0x00,0x00,0xff,0x44,0x00,0x00,0xfe,0xa5,0x00,0x00,0xff,0x30,0x00,0x00,0xff,0x9e,0x00,0x00,0xfe,0x57,0x00,0x00,0xfe,0x70,0x00,0x00,0x00,0x0a,0x00,0x00,0xfe,0xc0,0x00,0x00,0xff,0x9c,0x00,0x00,0xfe,0xaa,0x00,0x00,0xff,0x64,0x00,0x00,0xfe,0x9c,0x00,0x00,0xfe,0x2a, +0x00,0x00,0xff,0x58,0x00,0x00,0xff,0x4c,0x00,0x00,0xfe,0xc0,0x00,0x00,0xfe,0xc0,0x00,0x00,0xfe,0xc0,0x00,0x00,0xfe,0xa8,0x00,0x00,0xff,0x5c,0x00,0x00,0xfd,0x0e,0x00,0x00,0xfc,0xe6,0x00,0x00,0xfd,0xaf,0x04,0xb4,0x00,0x21,0x04,0xe8,0xff,0xac,0x04,0x93,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x04,0x9e,0x00,0x33,0x04,0xb4,0x00,0x21, +0x04,0xf6,0x00,0x6a,0x04,0xf6,0x00,0x5e,0x03,0xba,0x00,0x60,0x05,0x9c,0x00,0x1c,0x05,0xee,0xff,0xac,0x04,0x94,0x00,0x5c,0x04,0xb4,0x00,0x60,0x04,0xbc,0x00,0x60,0x04,0x0e,0x00,0x5a,0x04,0x54,0x00,0x70,0x03,0xe8,0xff,0x9a,0x05,0x89,0x00,0x5e,0x04,0xf8,0x00,0x12,0x06,0xfe,0x00,0xa6,0x02,0x4e,0x00,0xb8,0x02,0x3a,0x00,0x29, +0x04,0xa4,0x00,0xbc,0x03,0xfc,0x00,0xa6,0x01,0xf0,0x00,0x14,0x03,0xfc,0xff,0xfe,0x07,0x23,0x00,0xb8,0x05,0xfc,0xff,0x9a,0x04,0x9a,0x00,0x83,0x06,0x08,0x00,0x5e,0x07,0xc0,0x00,0x5e,0x06,0x52,0x00,0x60,0x04,0xcf,0xff,0xac,0x04,0xb4,0x00,0xa6,0x04,0x9c,0x00,0xbc,0x04,0x40,0x00,0x62,0x03,0x65,0x00,0x56,0x04,0x21,0x00,0x2d, +0x02,0x5e,0xff,0x83,0x02,0xb8,0x00,0x2b,0x04,0x33,0xff,0xcd,0x02,0xb8,0x00,0x2b,0x04,0x33,0x00,0x27,0x06,0x0a,0x00,0x62,0x05,0xb2,0x00,0xb8,0x04,0x8e,0x00,0x0f,0x04,0x23,0x00,0x0e,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x04,0xe2,0x00,0x0a,0x04,0xe2,0x00,0x5e,0x03,0x89,0x00,0x1e,0x03,0x46,0x00,0x0a,0x04,0x50,0x00,0x60, +0x04,0x50,0x00,0x74,0x03,0x0a,0x00,0x48,0x03,0x27,0x00,0x1e,0x04,0x5e,0x00,0xa6,0x01,0xea,0x00,0xac,0x03,0x10,0x00,0xac,0x03,0xa6,0x00,0x33,0x02,0x46,0x00,0xb4,0x09,0xe8,0x00,0xbc,0x09,0x1c,0x00,0xbc,0x08,0x33,0x00,0x60,0x06,0xd9,0x00,0xbc,0x05,0xc2,0x00,0xbc,0x04,0x01,0x00,0xa6,0x08,0x94,0x00,0xbc,0x07,0xbe,0x00,0xbc, +0x06,0x77,0x00,0xa6,0x05,0x29,0x00,0x16,0x04,0x0a,0x00,0x52,0x02,0x21,0xff,0xf7,0x01,0xf0,0xff,0xdf,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa, +0x04,0x87,0x00,0x90,0x04,0x2f,0x00,0x52,0x05,0x29,0x00,0x16,0x04,0x0a,0x00,0x52,0x05,0x29,0x00,0x16,0x04,0x0a,0x00,0x52,0x06,0xe2,0x00,0x0a,0x06,0xa0,0x00,0x52,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x04,0xa4,0x00,0xbc,0x03,0xfa,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60, +0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0xe2,0x00,0x0a,0x03,0x89,0xff,0xdd,0x01,0xf0,0xff,0x3a,0x09,0xe8,0x00,0xbc,0x09,0x1c,0x00,0xbc,0x08,0x33,0x00,0x60,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x07,0xfe,0x00,0xbc,0x05,0x83,0x00,0xbc,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0x29,0x00,0x16,0x04,0x0a,0x00,0x52, +0x05,0x29,0x00,0x16,0x04,0x0a,0x00,0x52,0x04,0x0c,0x00,0x9e,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x02,0x21,0xff,0x86,0x01,0xf0,0xff,0x6e,0x02,0x21,0xff,0xf8,0x01,0xf0,0xff,0xe6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0x9a,0x00,0xa0,0x02,0xc8,0x00,0x04, +0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0x9a,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x04,0x08,0x00,0x10,0x03,0x70,0x00,0x1e,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xdf,0x00,0xbc,0x04,0xb8,0x00,0x3e,0x04,0x89,0x00,0x48,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x05,0x29,0x00,0x16, +0x04,0x0a,0x00,0x52,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0xb0,0x01,0x33,0x04,0x0a,0x01,0x08,0x04,0x87,0x01,0x1c,0x04,0x87,0x01,0x1c,0x04,0xb0,0x01,0x23, +0x04,0x0a,0x00,0x90,0x04,0xb6,0x00,0x60,0x04,0xb4,0x00,0xa6,0x04,0xb6,0x00,0xa6,0x03,0xba,0x00,0x5a,0x03,0xba,0x00,0x60,0x04,0xb6,0x00,0x60,0x04,0xb6,0x00,0x60,0x04,0x2f,0x00,0x52,0x04,0xe6,0x00,0x50,0x03,0x4e,0x00,0x60,0x03,0x4e,0x00,0x5a,0x04,0x0e,0x00,0x5a,0x04,0x68,0x00,0x60,0x02,0x38,0xff,0x81,0x04,0xb6,0x00,0x60, +0x04,0xb6,0x00,0x60,0x04,0x3c,0x00,0x60,0x03,0xd5,0x00,0x0e,0x03,0xa8,0x00,0x0a,0x04,0x87,0x00,0x90,0x04,0x87,0x00,0xa6,0x04,0x87,0x00,0xa6,0x02,0x18,0x00,0x0a,0x02,0x3a,0x00,0x94,0x02,0x90,0x00,0x4c,0x02,0x3e,0xff,0xec,0x03,0x02,0xff,0xec,0x01,0xee,0x00,0xa6,0x04,0xd3,0x00,0xa6,0x06,0xe4,0x00,0xa6,0x06,0xe4,0x00,0xa6, +0x06,0xe4,0x00,0xa6,0x04,0x72,0xff,0x96,0x04,0x72,0x00,0xa6,0x04,0xb0,0x00,0xa6,0x04,0xb0,0x00,0x60,0x05,0x96,0x00,0x60,0x05,0xc4,0x00,0x60,0x05,0x1a,0x00,0x60,0x02,0xc8,0x00,0x0c,0x02,0xc8,0x00,0x0c,0x02,0xc8,0x00,0x0c,0x02,0xc8,0x00,0xa6,0x02,0xc8,0x00,0xa6,0x02,0xae,0x00,0x90,0x02,0xae,0x00,0x0c,0x03,0xa2,0x00,0xa6, +0x03,0xa2,0x00,0xa6,0x03,0x2f,0x00,0x68,0x01,0xfa,0xff,0x92,0x02,0x10,0xff,0x9e,0x02,0x4e,0xff,0xa6,0x02,0x44,0xff,0x44,0x02,0xb8,0x00,0x38,0x02,0xb8,0x00,0x2b,0x04,0xcb,0x00,0x21,0x04,0xc2,0x00,0x60,0x04,0x77,0x00,0x90,0x03,0xd5,0x00,0x0c,0x05,0xc8,0x00,0x18,0x03,0xdf,0x00,0x0c,0x03,0x56,0x00,0x0a,0x03,0x9e,0x00,0x21, +0x04,0x18,0x00,0x21,0x03,0x89,0xff,0xdd,0x03,0x89,0xff,0xea,0x02,0xec,0x00,0x1c,0x02,0xec,0x00,0x04,0x02,0xec,0x00,0x00,0x03,0xba,0x00,0x60,0x04,0xf2,0x00,0x60,0x03,0xdf,0x00,0xa6,0x04,0x62,0x00,0x5c,0x04,0x3c,0x00,0x60,0x04,0x87,0x00,0xa6,0x01,0xee,0xff,0x18,0x03,0xfc,0x00,0x04,0x03,0x14,0x00,0xa6,0x04,0xb6,0x00,0x60, +0x02,0xec,0x00,0x1c,0x02,0xec,0x00,0x04,0x07,0x54,0x00,0x60,0x07,0x98,0x00,0x60,0x07,0xcf,0x00,0x60,0x04,0xe8,0x00,0x2b,0x03,0xcf,0x00,0x2b,0x05,0xbe,0x00,0x2b,0x06,0x58,0x00,0x35,0x04,0xa4,0x00,0x98,0x04,0x8e,0x00,0xa6,0x03,0xf4,0x00,0x31,0x03,0xf4,0x00,0x74,0x04,0x62,0x00,0xa6,0x04,0xba,0x00,0x14,0x04,0x85,0x00,0x12, +0x05,0x6c,0xff,0xb1,0x04,0x85,0x00,0x12,0x05,0x1a,0x00,0x60,0x06,0x6a,0x00,0x00,0x04,0x90,0x00,0x00,0x05,0x9e,0x00,0x56,0x04,0xb0,0x00,0x60,0x04,0xa8,0x00,0x5e,0x03,0xa4,0x00,0x60,0x03,0xfc,0x00,0xbc,0x03,0x9c,0x00,0x90,0x04,0xc4,0x00,0x48,0x04,0x04,0x00,0x33,0x04,0xe4,0x00,0x00,0x03,0xf2,0xff,0x7b,0x07,0x23,0x00,0xb8, +0x06,0xe4,0x00,0xa6,0x04,0xd5,0x00,0x33,0x04,0x14,0x00,0x33,0x05,0x16,0x00,0x00,0x04,0x44,0xff,0xec,0x04,0xe2,0x00,0x48,0x03,0xae,0x00,0x3e,0x04,0xc4,0x00,0x14,0x03,0xe2,0x00,0x14,0x05,0x4c,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0x85,0x00,0x0a,0x03,0x44,0x00,0x00,0x04,0x90,0x00,0x00,0x04,0xa8,0x00,0xa2,0x03,0xb2,0x00,0x60, +0x01,0xf0,0xff,0x3a,0x06,0x08,0x00,0x5e,0x03,0xbc,0x00,0x60,0x03,0xbc,0x00,0x60,0x06,0xe8,0x00,0x1e,0x05,0x6c,0x00,0x1e,0x05,0x2b,0x00,0x29,0x04,0xa4,0x00,0x29,0x07,0x44,0x00,0xbc,0x05,0xb8,0x00,0xa6,0x05,0x52,0x00,0x16,0x03,0xfe,0x00,0x0c,0x06,0xfc,0x00,0xbc,0x05,0x87,0x00,0xa6,0x05,0xd3,0x00,0x29,0x04,0x85,0x00,0x1e, +0x07,0x70,0x00,0xbc,0x05,0xfe,0x00,0xa6,0x04,0x52,0x00,0x31,0x03,0x99,0x00,0x21,0x06,0x44,0x00,0x66,0x06,0x14,0x00,0x66,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x05,0xc2,0x00,0x12,0x04,0xa0,0x00,0x0e,0x05,0xc2,0x00,0x12,0x04,0xa0,0x00,0x0e,0x0a,0x7f,0x00,0x5e,0x08,0xf2,0x00,0x58,0x06,0x9c,0x00,0x5e,0x05,0x33,0x00,0x60, +0x09,0x08,0x00,0x5e,0x07,0x27,0x00,0x60,0x06,0xe8,0x00,0x1e,0x05,0x6c,0x00,0x1e,0x04,0xb4,0x00,0x5e,0x03,0x81,0x00,0x60,0x04,0x00,0x00,0x2d,0x03,0x27,0x00,0x52,0x03,0x4c,0x00,0x5e,0x00,0x00,0xff,0x90,0x00,0x00,0xff,0x86,0x07,0xe2,0x00,0x21,0x07,0x98,0x00,0x35,0x04,0x9c,0x00,0x29,0x04,0x0c,0x00,0x2d,0x04,0x7c,0x00,0xbc, +0x04,0xb5,0x00,0xa6,0x04,0x8c,0x00,0xbc,0x04,0x04,0x00,0xa6,0x04,0x52,0x00,0x60,0x03,0xa2,0x00,0x58,0x04,0xa4,0x00,0x12,0x03,0xfa,0x00,0x27,0x05,0xae,0x00,0x29,0x04,0xa6,0x00,0x1e,0x06,0xb8,0x00,0xbc,0x05,0x4e,0x00,0xa6,0x08,0x16,0x00,0xbc,0x06,0xb0,0x00,0xa6,0x05,0xc6,0x00,0x5e,0x04,0x74,0x00,0x60,0x04,0xf4,0x00,0x5e, +0x03,0xb2,0x00,0x60,0x04,0x35,0x00,0x29,0x03,0x48,0x00,0x1e,0x06,0xfa,0x00,0x29,0x05,0x79,0x00,0x1e,0x05,0x7f,0x00,0xa6,0x04,0xb4,0x00,0x98,0x06,0xae,0x00,0x29,0x05,0x10,0x00,0x29,0x06,0xae,0x00,0x29,0x05,0x10,0x00,0x29,0x02,0x21,0x00,0xbc,0x06,0xef,0xff,0xea,0x05,0xf8,0x00,0x04,0x04,0xa4,0x00,0xbe,0x04,0x0c,0x00,0xa6, +0x05,0xae,0x00,0xbc,0x04,0x9e,0x00,0xa6,0x05,0x3e,0x00,0xa6,0x04,0x85,0x00,0x98,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x06,0xe2,0x00,0x0a,0x06,0xa8,0x00,0x5a,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x05,0xc4,0x00,0x56,0x04,0x2f,0x00,0x52,0x05,0xc4,0x00,0x56,0x04,0x2f,0x00,0x52, +0x06,0xef,0xff,0xea,0x05,0xf8,0x00,0x04,0x04,0x52,0x00,0x60,0x03,0x91,0x00,0x50,0x04,0x2f,0x00,0x52,0x03,0x89,0xff,0xdd,0x05,0xfe,0x00,0xbc,0x04,0xa6,0x00,0xa6,0x05,0xfe,0x00,0xbc,0x04,0xa6,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0xee,0x00,0x68,0x03,0xb2,0x00,0x5a, +0x04,0x8a,0x00,0x3c,0x03,0xdf,0x00,0x0e,0x04,0x8a,0x00,0x3c,0x03,0xdf,0x00,0x0e,0x04,0x8a,0x00,0x3c,0x03,0xdf,0x00,0x0e,0x05,0x4a,0x00,0xa6,0x04,0x85,0x00,0x98,0x06,0x44,0x00,0xbc,0x05,0xad,0x00,0xa6,0x04,0x8e,0x00,0x56,0x04,0xb6,0x00,0x60,0x06,0xd3,0x00,0x64,0x06,0xe2,0x00,0x60,0x06,0x70,0x00,0x29,0x05,0xc6,0x00,0x1e, +0x04,0x77,0x00,0x29,0x03,0xcb,0x00,0x1e,0x07,0x3e,0x00,0x18,0x06,0x5e,0x00,0x14,0x07,0xea,0x00,0xbc,0x06,0xcb,0x00,0xa6,0x05,0xb8,0x00,0x5e,0x04,0x3e,0x00,0x60,0x05,0x66,0x00,0x29,0x04,0xc8,0x00,0x1e,0x04,0xb0,0x01,0x33,0x04,0x87,0x01,0x1c,0x04,0x87,0x01,0x1c,0x04,0x0a,0x01,0x08,0x04,0xb0,0x01,0x23,0x02,0xaa,0xff,0x8c, +0x00,0x00,0xff,0x27,0x00,0x00,0xff,0x21,0x00,0x00,0xff,0xcb,0x00,0x00,0xff,0x04,0x00,0x00,0xff,0x2b,0x00,0x00,0xff,0x2b,0x00,0x00,0xff,0x14,0x00,0x00,0xff,0x2b,0x00,0x00,0xfe,0x96,0x00,0x00,0xff,0x9c,0x00,0x00,0xff,0x6a,0x00,0x00,0xff,0x10,0x00,0x00,0xff,0x23,0x01,0xd5,0x00,0x72,0x01,0xd5,0x00,0x72,0x04,0xb0,0x01,0xba, +0x02,0xb0,0x00,0x66,0x02,0xb0,0x00,0x66,0x01,0x4e,0xff,0xbe,0x01,0xb2,0x00,0x66,0x01,0xb2,0x00,0x0a,0x01,0xb2,0x00,0x0a,0x02,0x3e,0x00,0x66,0x03,0x2d,0x00,0x14,0x02,0x3a,0x00,0x0a,0x01,0xd5,0x00,0x82,0x03,0x04,0x00,0x8d,0x01,0xc7,0x00,0x6a,0x01,0xc7,0x00,0x6e,0x01,0xc7,0x00,0x6e,0x02,0xaa,0x00,0xfb,0x02,0xaa,0x00,0xfb, +0x01,0xba,0x00,0x14,0x01,0xba,0x00,0x0a,0x04,0xac,0x00,0x72,0x04,0xac,0x00,0x70,0x04,0xac,0x00,0x66,0x04,0xac,0x00,0x66,0x02,0xaa,0x01,0x20,0x02,0x42,0x00,0x87,0x02,0x25,0x00,0x52,0x02,0xaa,0x01,0x20,0x02,0x7b,0x00,0x3e,0x02,0x25,0x00,0x52,0x02,0x42,0x00,0x87,0x02,0x39,0x00,0xb6,0x02,0x39,0x00,0xb6,0x02,0xaa,0x00,0xfb, +0x02,0xaa,0x00,0xfb,0x02,0xaa,0x00,0xa0,0x02,0xaa,0x00,0xa0,0x02,0xaa,0x00,0xa0,0x02,0x7b,0x00,0x3e,0x02,0xaa,0x00,0x79,0x02,0xb0,0x00,0x48,0x02,0x56,0x00,0x0a,0x01,0x4c,0x00,0x66,0x01,0xf0,0x00,0x3e,0x02,0x42,0x00,0x14,0x01,0xba,0x00,0x0a,0x03,0x10,0x00,0x96,0x03,0x10,0x00,0x96,0x03,0x10,0x00,0x96,0x03,0x10,0x00,0x96, +0x03,0x10,0x00,0x96,0x02,0xaa,0x00,0x62,0x02,0xaa,0x00,0x62,0x02,0xaa,0x00,0x3c,0x03,0x52,0x00,0x00,0x02,0xaa,0x00,0x6e,0x01,0xf0,0xff,0x3a,0x02,0x18,0x00,0x0a,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x43,0x04,0x57,0x00,0x43,0x04,0x57,0x00,0x43,0x04,0x57,0x00,0x43, +0x04,0x57,0x00,0x43,0x03,0x10,0x00,0x43,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x03,0x10,0x00,0x2f,0x04,0x57,0x00,0x25,0x04,0x57,0x00,0x25,0x04,0x57,0x00,0x25,0x04,0x57,0x00,0x25,0x04,0x57,0x00,0x25,0x03,0x10,0x00,0x2f,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a, +0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x03,0x10,0x00,0x1a,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x03,0x10,0x00,0x42,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42, +0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x03,0x10,0x00,0x42,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x03,0x10,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x03,0x10,0x00,0x2f, +0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x03,0x10,0x00,0x26,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x03,0x10,0x00,0x42,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x42, +0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x03,0x10,0x00,0x42,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x03,0x10,0x00,0x26,0x04,0x57,0x00,0x23,0x04,0x57,0x00,0x23,0x04,0x57,0x00,0x23,0x04,0x57,0x00,0x23,0x04,0x57,0x00,0x23, +0x03,0x10,0x00,0x23,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x03,0x10,0x00,0x2f,0x04,0x57,0x00,0x4b,0x04,0x57,0x00,0x4b,0x04,0x57,0x00,0x4b,0x04,0x57,0x00,0x4b,0x04,0x57,0x00,0x4b,0x03,0x10,0x00,0x4b,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96, +0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x03,0x10,0x00,0x42,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x03,0x10,0x00,0x1a,0x04,0x57,0x00,0x24,0x04,0x57,0x00,0x24,0x04,0x57,0x00,0x24, +0x04,0x57,0x00,0x24,0x04,0x57,0x00,0x24,0x03,0x10,0x00,0x24,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x03,0x10,0x00,0x2f,0x04,0x57,0x00,0x4e,0x04,0x57,0x00,0x4e,0x04,0x57,0x00,0x4e,0x04,0x57,0x00,0x4e,0x04,0x57,0x00,0x4e,0x03,0x10,0x00,0x4e,0x04,0x57,0x00,0x96, +0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x54,0x00,0x00,0xff,0x54,0x00,0x00,0xfd,0xa7,0x00,0x00,0xff,0x68,0x05,0x27,0x00,0x60,0x02,0x60,0x00,0xa6,0x05,0x0e,0x00,0xa6,0x02,0xb6,0x00,0x2b,0x04,0xbc,0xff,0xdb,0x04,0xbc,0xff,0xdb,0x02,0xaa,0x00,0x85,0x02,0xaa,0x00,0x85, +0x02,0xaa,0x00,0xc8,0x02,0xaa,0x00,0xc8,0x02,0xaa,0x00,0x87,0x02,0x25,0x00,0x52,0x02,0x98,0x00,0x28,0x02,0x98,0x00,0x28,0x02,0xb2,0x00,0x23,0x02,0x39,0x00,0xad,0x02,0xaa,0x00,0x98,0x02,0xaa,0x00,0x98,0x02,0xaa,0x00,0x98,0x02,0xaa,0x00,0x98,0x02,0xaa,0xff,0xf0,0x02,0xaa,0xff,0xf2,0x02,0xaa,0x00,0x3a,0x00,0x00,0xff,0x74, +0x00,0x00,0xff,0xa6,0x00,0x00,0xfe,0xee,0x00,0x00,0xff,0x30,0x00,0x00,0xff,0x74,0x00,0x00,0xff,0x74,0x00,0x00,0xfe,0xa1,0x00,0x00,0xff,0xa6,0x00,0x00,0xfc,0xe6,0x00,0x00,0xfc,0xe6,0x00,0x00,0xfc,0xe6,0x04,0x7b,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x03,0xc0,0x00,0x0a,0x05,0x4a,0x00,0x00,0x06,0xa2,0x00,0x52,0x03,0xdf,0x00,0x3e, +0x03,0xb2,0x00,0x60,0x04,0x66,0x00,0xa6,0x04,0x70,0x00,0x3c,0x03,0x56,0x00,0xa6,0x03,0x4c,0x00,0x5a,0x01,0xee,0x00,0x8e,0x02,0x62,0x00,0x14,0x03,0xfa,0x00,0xa6,0x03,0x23,0x00,0x42,0x05,0x9e,0x00,0xa6,0x04,0xa6,0x00,0xa6,0x04,0xb0,0x00,0x60,0x03,0xcd,0x00,0x5a,0x04,0xf2,0x00,0x60,0x04,0xf2,0x00,0x60,0x04,0xf2,0x00,0x4c, +0x07,0x70,0x00,0x52,0x04,0x4a,0x00,0x60,0x04,0xc2,0x00,0x60,0x04,0xc2,0x00,0x60,0x03,0xb2,0x00,0xa6,0x03,0xa2,0x00,0x1e,0x03,0xa2,0x00,0x1e,0x03,0x48,0x00,0x1e,0x04,0x46,0x00,0x90,0x04,0x89,0x00,0x66,0x05,0xbe,0x00,0x3e,0x04,0x89,0x00,0x66,0x03,0xd5,0x00,0x0e,0x05,0xc8,0x00,0x18,0x03,0x9e,0x00,0x21,0x03,0x58,0x00,0x50, +0x03,0x4a,0x00,0x50,0x04,0x3a,0x00,0x14,0x03,0x10,0x00,0xa6,0x03,0xc0,0x00,0x0a,0x04,0x9e,0x00,0xa6,0x03,0xb2,0x00,0xa6,0x04,0xba,0x00,0x60,0x04,0x7d,0x00,0x0a,0x02,0xe2,0x00,0x0a,0x03,0xe6,0xff,0xf6,0x02,0xc6,0x00,0x7b,0x02,0xdb,0x00,0x23,0x03,0x46,0x00,0x7b,0x02,0x72,0x00,0x7b,0x02,0x72,0x00,0x48,0x03,0x46,0x00,0x3e, +0x03,0x64,0x00,0x7b,0x01,0x79,0x00,0x7b,0x01,0xd3,0x00,0x0a,0x02,0xd5,0x00,0x7b,0x02,0x44,0x00,0x7b,0x04,0x31,0x00,0x7b,0x03,0x81,0x00,0x7b,0x03,0x81,0x00,0x7b,0x03,0x68,0x00,0x3e,0x03,0x0c,0x00,0x3e,0x02,0xb6,0x00,0x7b,0x02,0xc2,0x00,0x7b,0x02,0x52,0x00,0x0a,0x03,0x50,0x00,0x74,0x04,0x35,0x00,0x10,0x02,0x85,0x00,0x3e, +0x02,0x85,0x00,0x66,0x02,0xc6,0x00,0x3e,0x03,0xdf,0x00,0x48,0x02,0xc6,0x00,0x66,0x02,0xc6,0x00,0x3e,0x02,0x7d,0x00,0x3e,0x02,0x7d,0x00,0x48,0x02,0x1c,0x00,0x3e,0x02,0x1c,0x00,0x42,0x02,0xc6,0x00,0x3e,0x01,0x4e,0x00,0x58,0x02,0x6a,0x00,0x66,0x03,0xfa,0x00,0x66,0x02,0xb0,0x00,0x66,0x02,0xbc,0x00,0x3e,0x02,0x29,0x00,0x3e, +0x02,0xbc,0x00,0x3e,0x02,0xbc,0x00,0x3e,0x02,0xbe,0x00,0x66,0x01,0x9c,0x00,0x0a,0x02,0xa6,0x00,0x5c,0x02,0x9c,0x00,0x3e,0x03,0xfa,0x00,0x60,0x02,0x40,0x00,0x0a,0x02,0x8e,0x00,0x14,0x02,0xac,0x00,0x60,0x02,0x56,0xff,0xec,0x02,0xbc,0x00,0x3e,0x03,0x44,0x00,0x3e,0x02,0x62,0xff,0xf6,0x01,0x4e,0x00,0x58,0x01,0xb2,0x00,0x66, +0x02,0xa6,0x00,0x5c,0x02,0x40,0x00,0x0a,0x02,0xac,0x00,0x60,0x02,0x56,0xff,0xec,0x02,0xc6,0x00,0x66,0x03,0x44,0x00,0x3e,0x02,0x62,0xff,0xf6,0x04,0xa6,0x00,0xfc,0x01,0x4e,0x00,0x58,0x02,0xc6,0x00,0x66,0x04,0x57,0x00,0x42,0x07,0x04,0x00,0x8f,0x04,0xfe,0x00,0x74,0x04,0x50,0x00,0x76,0x04,0x50,0x00,0x76,0x06,0xe4,0x00,0xa6, +0x05,0x2a,0x00,0x23,0x06,0xda,0x00,0xbc,0x05,0xf4,0x00,0x14,0x04,0x37,0x00,0x64,0x04,0xb6,0x00,0x60,0x04,0x00,0x00,0x2a,0x03,0x96,0x00,0x29,0x09,0x00,0x00,0x2c,0x03,0xa4,0x00,0x30,0x04,0xb5,0x00,0x26,0x07,0x1f,0x00,0xa2,0x07,0x7a,0x00,0x60,0x07,0x7a,0x00,0x60,0x05,0x06,0x00,0x16,0x05,0x29,0x00,0x16,0x04,0xf4,0x00,0x16, +0x03,0xb2,0x00,0x21,0x03,0xc4,0x00,0x12,0x04,0x31,0xff,0xef,0x03,0x65,0x00,0x68,0x03,0x9e,0x00,0x21,0x04,0x16,0x00,0x30,0x01,0x9c,0x00,0x6c,0x00,0x00,0xff,0x2b,0x00,0x00,0xfe,0xbd,0x00,0x00,0xff,0x60,0x00,0x00,0xfc,0xe6,0x04,0xb0,0x00,0x21,0x04,0xf4,0x00,0x68,0x04,0xf4,0x00,0x5e,0x04,0xf4,0x00,0x68,0x03,0xc6,0x00,0xbc, +0x03,0x10,0x00,0xa6,0x04,0xb4,0xff,0xbb,0x04,0xb6,0x00,0x60,0x02,0x81,0xff,0xf8,0x06,0xe4,0xff,0xc0,0x04,0x87,0xff,0xc0,0x04,0xb4,0xff,0xbb,0x02,0xc8,0xff,0xbb,0x02,0xae,0xff,0xa5,0x03,0xb5,0x00,0x27,0x02,0xb6,0xff,0xef,0x03,0x9e,0x00,0x21,0x04,0xb6,0x00,0xa6,0x03,0xb1,0x00,0x7a,0x04,0x9f,0x00,0x60,0x07,0x3d,0x00,0x16, +0x05,0x2e,0x00,0x16,0x02,0x90,0x00,0x4a,0x02,0x22,0xff,0xfb,0x04,0xb4,0x00,0x22,0x04,0x46,0x00,0x22,0x04,0xc2,0x00,0x14,0x04,0xb4,0x00,0xa6,0x04,0xb6,0x00,0x60,0x02,0x81,0x00,0x35,0x04,0xb6,0x00,0x60,0x03,0xfa,0x00,0xa6,0x01,0xf0,0x00,0x5c,0x06,0xe4,0x00,0xa6,0x04,0x87,0x00,0xa6,0x04,0xb4,0x00,0xa6,0x02,0xc8,0x00,0x5c, +0x03,0x65,0x00,0x68,0x03,0x76,0xff,0x92,0x03,0xd5,0x00,0x0e,0x03,0xac,0x00,0x1a,0x03,0x9e,0x00,0x21,0x04,0x12,0x00,0x5a,0x04,0xb6,0x00,0x60,0x04,0xb6,0x00,0x60,0x04,0x2f,0x00,0x60,0x03,0x81,0x00,0x52,0x03,0x91,0x00,0x50,0x05,0xe0,0x00,0x52,0x01,0xf0,0x00,0x90,0x03,0xba,0x00,0x5a,0x01,0xfa,0xff,0x92,0x04,0x87,0x00,0x90, +0x03,0x89,0xff,0xdd,0x02,0xc6,0x00,0x66,0x02,0x22,0x00,0x3e,0x02,0x26,0x00,0x3d,0x02,0xbd,0x00,0x3e,0x02,0x1c,0x00,0x42,0x01,0x77,0x00,0x0a,0x01,0x4e,0xff,0xdd,0x02,0xc6,0x00,0x3e,0x02,0xa6,0x00,0x5c,0x01,0x4e,0x00,0x0f,0x01,0x74,0x00,0x66,0x01,0x62,0x00,0x11,0x01,0x62,0x00,0x11,0x01,0x4e,0xff,0x87,0x01,0x74,0x00,0x66, +0x01,0x4c,0x00,0x31,0x01,0xcb,0x00,0x66,0x03,0xfa,0x00,0x66,0x03,0xfa,0x00,0x60,0x02,0xb0,0xff,0xbc,0x02,0xb0,0x00,0x66,0x02,0xd0,0x00,0x66,0x02,0xb0,0x00,0x3e,0x02,0xef,0x00,0x3e,0x01,0xd8,0x00,0x42,0x01,0x4e,0xff,0xc9,0x01,0x9c,0x00,0x0a,0x02,0xa6,0x00,0x05,0x02,0xbd,0x00,0x3e,0x02,0xa2,0x00,0x5c,0x02,0x93,0x00,0x5c, +0x02,0x40,0x00,0x0b,0x02,0x17,0x00,0x1a,0x02,0x17,0x00,0x1a,0x02,0x5b,0x00,0x1a,0x02,0x12,0xff,0xfb,0x02,0xbd,0x00,0x3e,0x00,0x00,0xff,0x3e,0x00,0x00,0xff,0x3e,0x00,0x00,0xff,0x9c,0x00,0x00,0xfe,0xdd,0x01,0xbc,0x00,0x70,0x02,0x85,0x00,0x3e,0x02,0x7d,0x00,0x3e,0x02,0xbc,0x00,0x3e,0x02,0x23,0x00,0x12,0x02,0x7d,0x00,0x48, +0x04,0x51,0x00,0x54,0x04,0x51,0x00,0x0c,0x04,0x51,0x00,0x69,0x04,0x51,0x00,0x56,0x02,0xaa,0x00,0x42,0x00,0x00,0xff,0x50,0x00,0x00,0xff,0x50,0x00,0x00,0xff,0x50,0x00,0x00,0xff,0x29,0x03,0xb5,0x00,0x27,0x02,0x7b,0x00,0x3e,0x02,0x23,0x00,0x12,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a, +0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x02,0x22,0xff,0xf9,0x02,0x22,0x00,0x02,0x02,0x22,0xff,0xfc,0x02,0x22,0xff,0xe5,0x02,0x22,0xff,0xee,0x02,0x22,0xff,0xee,0x02,0x22,0xff,0xee,0x02,0x22,0xff,0xee,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14, +0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x02,0x22,0xff,0xd3,0x02,0x22,0xff,0xd3,0x02,0x22,0xff,0xd3,0x02,0x22,0xff,0xd3,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4, +0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x04,0x51,0x00,0xbc,0x02,0xee,0x00,0x48,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0x6a,0x00,0xcc,0x02,0x6a,0x00,0x64,0x01,0x60,0x00,0x5b, +0x02,0xee,0x00,0x68,0x02,0xee,0x00,0x81,0x02,0xcf,0x00,0x50,0x02,0xee,0x00,0x48,0x02,0xcf,0x00,0x2f,0x02,0xee,0x00,0x7b,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x4d,0x02,0xee,0x00,0x41,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0x6a,0x00,0xcc,0x02,0x6a,0x00,0x64,0x02,0xee,0x00,0x48, +0x02,0xcf,0x00,0x50,0x02,0xee,0x00,0x68,0x02,0xee,0x00,0x81,0x02,0xcf,0x00,0x2f,0x02,0xee,0x00,0x7b,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x4d,0x02,0xee,0x00,0x41,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0x6a,0x00,0xcc,0x02,0x6a,0x00,0x64,0x06,0x46,0x00,0xbc,0x05,0x0d,0x00,0xa6, +0x05,0xaa,0x00,0x10,0x04,0x9f,0x00,0x10,0x05,0xf8,0x00,0xbc,0x05,0x06,0x00,0xa6,0x07,0x78,0x00,0xbc,0x06,0x06,0x00,0xa6,0x04,0x50,0x00,0x5a,0x03,0x04,0x00,0x6e,0x04,0x1d,0x00,0x8d,0x05,0x79,0x00,0xe8,0x04,0x47,0x00,0x5e,0x06,0x8e,0x00,0xbc,0x05,0x9e,0x00,0xa6,0x00,0x00,0xff,0xdc,0x00,0x00,0xff,0x25,0x00,0x00,0xff,0xdc, +0x00,0x00,0xfe,0x51,0x02,0x01,0x00,0xab,0x02,0x01,0x00,0x49,0x02,0x01,0xff,0xa2,0x02,0x01,0x00,0x49,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba, +0x08,0x04,0xff,0xba,0x03,0x56,0x00,0xb9,0x02,0x01,0x00,0x2b,0x04,0x02,0x00,0x2b,0x04,0xad,0x00,0x2b,0x03,0x57,0x00,0x62,0x04,0x02,0x00,0x4f,0x04,0x02,0xff,0xef,0x04,0xad,0xff,0xf4,0x04,0xad,0x00,0x49,0x04,0x02,0x00,0x22,0x08,0x04,0xff,0xba,0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x65,0x04,0xae,0xff,0xba, +0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x65,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x05,0x2a,0x00,0xa6,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x02,0xac,0xff,0xba,0x04,0xae,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x53,0x05,0x58,0x00,0x67,0x04,0x02,0x00,0xa1,0x02,0xac,0xff,0xba,0x06,0xae,0x00,0x9a, +0x04,0x02,0x00,0xa1,0x06,0xae,0x00,0x9a,0x02,0x01,0x00,0x6f,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x04,0xad,0x00,0x49,0x04,0xad,0x00,0x49,0x04,0xad,0xff,0xa2,0x06,0xae,0x00,0x82,0x02,0x01,0x00,0x00,0x04,0xad,0xff,0xa2,0x02,0x01,0x00,0x6f, +0x04,0x02,0x00,0xab,0x03,0x57,0x00,0x5a,0x02,0x01,0xff,0xa2,0x02,0x01,0x00,0x49,0x04,0x02,0x00,0x00,0x02,0x01,0x00,0x49,0x06,0x03,0x00,0x82,0x02,0x01,0x00,0xab,0x07,0x59,0x00,0xab,0x04,0x02,0x00,0xab,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0x02,0x00,0x52, +0x04,0x02,0x00,0x52,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x09,0x5a,0x00,0x9b,0x09,0x5a,0x00,0x9b,0x0a,0xb1,0x00,0x9b,0x0a,0xb1,0x00,0x9b,0x06,0xae,0x00,0x19,0x06,0xae,0x00,0x19,0x04,0x02,0x00,0x65,0x04,0x02,0x00,0x65,0x01,0x56,0xff,0xba,0x08,0x04,0x00,0xab,0x06,0x03,0x00,0x9b,0x06,0xae,0x00,0xab,0x05,0x58,0x00,0x9b, +0x04,0xad,0x00,0x39,0x05,0x58,0x00,0x9b,0x04,0x02,0x00,0xab,0x04,0x02,0x00,0x00,0x06,0x03,0x00,0x9a,0x06,0x03,0x00,0x9a,0x00,0x00,0x00,0x05,0x00,0x00,0xff,0x33,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x05,0x00,0x00,0xff,0xbf,0x00,0x00,0x00,0x05,0x00,0x00,0xff,0xd4,0x00,0x00,0x00,0x45,0x04,0xad,0x00,0x52,0x02,0x01,0x00,0x52, +0x05,0x2a,0x00,0xa6,0x00,0x00,0xff,0xa2,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x02,0xac,0xff,0xba,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x03,0x57,0x00,0x00, +0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x04,0x02,0x00,0xa1,0x04,0x02,0x00,0xab,0x03,0x56,0x00,0xb9,0x02,0x01,0x00,0x2b,0x04,0x02,0x00,0x2b,0x04,0xad,0x00,0x2b,0x04,0x02,0x00,0x2b,0x04,0xae,0x00,0x72,0x04,0x02,0x00,0x2f, +0x04,0xad,0xff,0xf4,0x04,0xad,0x00,0x49,0x04,0x02,0x00,0x22,0x05,0x58,0x00,0x9b,0x05,0x2a,0x00,0xa6,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0x02,0x00,0x52,0x03,0x57,0x00,0x00,0x05,0x58,0x00,0x9b,0x04,0x02,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0x02,0xff,0xba,0x04,0x02,0x00,0xab,0x04,0x02,0x00,0xab,0x07,0x59,0x00,0x72, +0x02,0xac,0x00,0x72,0x07,0x59,0x00,0x72,0x02,0xac,0x00,0x72,0x02,0x01,0x00,0x2d,0x04,0xae,0x00,0x7c,0x03,0x1d,0x00,0x42,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x08,0x04,0x00,0xa1,0x04,0x02,0x00,0x57,0x00,0x00,0x00,0xc4,0x00,0x00,0xff,0x17,0x00,0x00,0x00,0x10, +0x05,0x2a,0x00,0xa6,0x00,0x00,0xff,0xc2,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x06,0x03,0x00,0x9b,0x05,0x2a,0x00,0xa6,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x49,0x02,0x01,0xff,0x97,0x02,0x01,0xff,0x97,0x02,0x01,0xff,0xc2,0x02,0x01,0xff,0xc2,0x02,0x01,0xff,0xc2,0x02,0x01,0xff,0xc2, +0x03,0x57,0x00,0xab,0x03,0x57,0x00,0xab,0x04,0x02,0x00,0x00,0x04,0x02,0xff,0xe7,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba, +0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e, +0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x04,0x02,0x00,0x00, +0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x0a,0xb1,0x00,0x9b,0x08,0x04,0xff,0xba,0x0a,0xb1,0x00,0x9b,0x08,0x04,0xff,0xba,0x06,0xae,0x00,0x19,0x04,0x02,0x00,0x65,0x04,0xad,0x00,0x65, +0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x08,0x04,0x00,0xab,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9b, +0x06,0x03,0x00,0x9b,0x08,0xaf,0x00,0x19,0x08,0x04,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab, +0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b, +0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x04,0x58,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x06,0xae,0x00,0x32, +0x07,0x58,0x00,0x1e,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x04,0x02,0x00,0x00,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x00,0x00,0xff,0xa8,0x00,0x00,0xff,0xb7,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x1d,0x00,0x00,0xff,0x2b,0x08,0xfc,0x00,0x2d,0x08,0xad,0x01,0x46, +0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x16,0x00,0x00,0xff,0x2b,0x00,0x00,0xff,0xc9,0x02,0x01,0x00,0x4d,0x03,0x57,0x00,0x21,0x00,0x00,0xff,0x82,0x00,0x00,0x00,0x32,0x04,0xcd,0x00,0x64,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x16,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba, +0x0a,0xb1,0x00,0x9b,0x08,0x04,0xff,0xba,0x04,0x02,0x00,0x65,0x04,0xad,0x00,0x65,0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x03,0x57,0x00,0x5a,0x04,0xad,0x00,0x39,0x04,0xad,0xff,0xc2,0x04,0xad,0xff,0xc2,0x04,0xad,0x00,0x34,0x04,0xad,0x00,0x34,0x04,0xad,0x00,0x3a,0x04,0xad,0x00,0x3a,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52, +0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x65,0x04,0x02,0x00,0x52,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x02,0xfe,0x00,0x00,0x04,0xad,0xff,0x97,0x04,0xad,0xff,0x97,0x04,0xc1,0x00,0x66,0x09,0xd0,0x00,0x73,0x06,0xa8,0x00,0x73, +0x04,0x40,0x00,0x49,0x0c,0x2d,0x00,0x73,0x08,0xaf,0x00,0x49,0x02,0xac,0x00,0x46,0x04,0xad,0x00,0x32,0x00,0x00,0xff,0xc9,0x00,0x00,0xff,0xe9,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0x88,0x00,0x00,0xff,0xc4,0x00,0x00,0x00,0xc4,0x00,0x00,0xff,0xbf,0x00,0x00,0x00,0x32,0x00,0x00,0xff,0xc6,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52, +0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x06,0x03,0x00,0x53,0x05,0x58,0x00,0x67,0x05,0x58,0xff,0xba,0x04,0x02,0xff,0xba,0x00,0x00,0xfe,0x93,0x00,0x00,0xfe,0xa9,0x00,0x00,0xfe,0x91,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x0a,0x05,0x00,0xa1,0x0c,0x06,0x00,0x9b,0x00,0x00,0xff,0xd4, +0x00,0x00,0xff,0xd4,0x00,0x00,0xff,0xd4,0x00,0x00,0xff,0x6c,0x00,0x00,0xff,0xd4,0x04,0xad,0x00,0x35,0x04,0x02,0x00,0x65,0x00,0x00,0xff,0xe7,0x00,0x00,0xff,0xdf,0x00,0x00,0xff,0xdf,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x05,0x07,0x59,0x00,0xab,0x03,0x56,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba, +0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba, +0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x03,0x57,0x00,0x00,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x04,0x02,0x00,0x65,0x04,0xad,0x00,0x65,0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x65,0x04,0xad,0x00,0x65,0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x65,0x04,0xad,0x00,0x65,0x04,0xae,0xff,0xba, +0x04,0xad,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba, +0x04,0xad,0x00,0x39,0x04,0xae,0xff,0xba,0x04,0xad,0x00,0x39,0x04,0xae,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00, +0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x05,0x2a,0x00,0xa6,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x00,0x00,0xff,0x1a,0x04,0x00,0xff,0x1a,0x04,0x00,0x01,0x9f,0x04,0x00,0x01,0xb3,0x02,0xf4,0x00,0x14,0x04,0x96,0x00,0x1c,0x05,0x7f,0x00,0x1e,0x05,0x07,0x00,0x18,0x04,0x0c,0x00,0x8b,0x04,0x2f,0x00,0x60,0x02,0xdb,0x00,0x14, +0x01,0xf0,0xff,0x3a,0x06,0x01,0x00,0x5e,0x04,0xb6,0x00,0x60,0x04,0xc9,0x00,0x1c,0x02,0xc8,0x00,0x1c,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x03,0xcd,0x00,0x5a,0x03,0xb2,0x00,0x60,0x03,0xcd,0x00,0x5a,0x01,0xf0,0x00,0xa6,0x04,0x1e,0x00,0x29,0x03,0x48,0x00,0x1e,0x04,0xf4,0x00,0x1a,0x03,0xe0,0x00,0x1a,0x04,0xb8,0x00,0x1a, +0x03,0xac,0x00,0x1a,0x04,0x54,0x00,0x70,0x03,0x81,0x00,0x52,0x05,0x62,0x00,0x10,0x04,0x37,0x00,0x10,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0xdb,0x05,0xed,0x00,0x35,0x03,0x9c,0x00,0x48, +0x03,0xcd,0x00,0x5a,0x03,0xc4,0x00,0x1c,0x02,0x4a,0x00,0x14,0x04,0x19,0x00,0x27,0x04,0x7b,0x00,0x1c,0x04,0xc9,0x00,0xbc,0x04,0x12,0x00,0x5a,0x02,0xb6,0xff,0xb5,0x05,0xf0,0x00,0xbc,0x04,0xb3,0x00,0xa6,0x05,0x1c,0x00,0xbc,0x04,0x4a,0x00,0xa6,0x04,0xf5,0x00,0x21,0x03,0xfb,0x00,0x21,0x04,0x8d,0x00,0x4b,0x04,0x1f,0x00,0xbc, +0x03,0x2b,0x00,0xa6,0x05,0x98,0x00,0x60,0x02,0xf7,0x00,0xaf,0x03,0x4f,0x00,0xaf,0x03,0x5a,0x00,0xaf,0x03,0xde,0x00,0x75,0x04,0xc9,0x00,0x75,0x04,0xc9,0x00,0x75,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0xaa,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x55,0x00,0x00,0x04,0x50,0x00,0x00, +0x01,0xbc,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x18,0x00,0x00,0x01,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00, +0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x04,0x02,0x00,0xab,0x04,0x02,0x00,0xa1,0x07,0x6c,0x00,0x79,0x03,0x64,0x00,0x3f,0x06,0x08,0x00,0x5e,0x04,0xb6,0x00,0x60,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x04,0xf5,0x00,0xb0,0x00,0x00,0xfc,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x60,0x00,0x4a,0x07,0x60,0x00,0x8d,0x06,0xe7,0x00,0x96,0x03,0xc7,0x00,0x96,0x06,0xe7,0x00,0xe7,0x03,0xc7,0x00,0x96,0x06,0xe5,0x00,0x96,0x05,0x28,0x00,0x33,0x05,0x78,0x00,0xe6,0x05,0x9d,0x00,0xe6,0x05,0x92,0x00,0xe6,0x06,0x1e,0x00,0xe6, +0x06,0xe4,0x00,0xa5,0x08,0x00,0x00,0xa5,0x06,0xe4,0x00,0x50,0x06,0xe4,0x00,0xa5,0x06,0xe4,0x00,0x50,0x06,0xe4,0x00,0xa5,0x06,0xe4,0x00,0x8c,0x06,0xe4,0x02,0x0d,0x06,0xe4,0x00,0xa5,0x05,0x7a,0x00,0x5e,0x05,0x7a,0x00,0x5e,0x05,0x7a,0x00,0x5e,0x05,0x7a,0x00,0xcd,0x05,0xe8,0x00,0x5e,0x04,0xa0,0x00,0x0e,0x08,0x7e,0x00,0x1a, +0x06,0x9d,0x00,0x18,0x03,0xc7,0x00,0x96,0x03,0xc7,0x00,0x96,0x02,0x46,0x00,0xb4,0x02,0x46,0x00,0xb4,0x02,0x46,0x00,0xb4,0x02,0xf8,0x00,0x63,0x01,0xbc,0x00,0x70,0x04,0x82,0x00,0xe8,0x01,0xd7,0x00,0x94,0x01,0xd7,0x00,0xa3,0x06,0xae,0x03,0x9b,0x05,0x10,0x02,0xd6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xa4,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xa5,0x00,0x00,0xff,0xcd,0x03,0x33,0x00,0x4b,0x00,0x00,0xfe,0xd2,0x01,0x9d,0x00,0x94,0x00,0x00,0x02,0x00,0x00,0x00,0xfd,0x3c,0x01,0xbc,0x00,0x70, +0x00,0x00,0xff,0x9c,0x00,0x00,0xff,0x9c,0x05,0x18,0x00,0xa5,0x04,0x90,0x00,0x50,0x03,0x82,0x00,0x31,0x03,0xd9,0x00,0x20,0x05,0x6c,0x00,0xb8,0x02,0x25,0x00,0xbe,0x02,0xb2,0x00,0x31,0x05,0x65,0x00,0xbe,0x05,0x72,0x00,0xa0,0x02,0x25,0x00,0xbe,0x04,0x78,0x00,0x2f,0x04,0x5c,0x00,0x4e,0x04,0x68,0x00,0x59,0x05,0x8d,0x00,0xbe, +0x05,0x65,0x00,0xa4,0x02,0x25,0x00,0xbe,0x03,0x32,0x00,0x67,0x05,0x68,0x00,0x96,0x04,0xd6,0x00,0x59,0x04,0xe4,0x00,0x6c,0x05,0x0c,0x00,0x96,0x04,0x85,0x00,0x1e,0x04,0xaf,0x00,0x4b,0x05,0x4f,0x00,0x42,0x04,0x79,0x00,0x2f,0x06,0x47,0x00,0x6e,0x05,0xcf,0x00,0x34,0x04,0x2e,0x00,0xbe,0x04,0x2e,0x00,0xbe,0x04,0x2e,0x00,0xbe, +0x01,0xd5,0x00,0x6e,0x03,0x04,0x00,0x6e,0x04,0x78,0x00,0x2f,0x04,0x78,0x00,0x2f,0x04,0x68,0xff,0x51,0x04,0x68,0xff,0x51,0x04,0x53,0x00,0xbe,0x04,0xd6,0x00,0x59,0x05,0x18,0x00,0xa5,0x03,0xd9,0x00,0x20,0x05,0x6c,0x00,0xb8,0x04,0x5c,0x00,0x4e,0x04,0x68,0x00,0x59,0x05,0x8d,0x00,0xbe,0x04,0x79,0x00,0x2f,0x05,0xcf,0x00,0x34, +0x04,0x6a,0x00,0x5f,0x06,0x47,0x00,0x6e,0x06,0x47,0x00,0x61,0x06,0x47,0x00,0x6e,0x06,0x47,0x00,0x61,0x05,0x18,0x00,0xa5,0x05,0x18,0x00,0xa5,0x05,0x18,0x00,0xa5,0x04,0x90,0x00,0x50,0x03,0x82,0x00,0x31,0x03,0xd9,0x00,0x20,0x05,0x6c,0x00,0xb8,0x02,0x6b,0xff,0xfb,0x02,0xda,0xff,0xfa,0x05,0x72,0x00,0xa0,0x02,0x6b,0xff,0xfb, +0x04,0x78,0x00,0x2f,0x04,0x5c,0x00,0x4e,0x04,0x68,0x00,0x59,0x05,0x65,0x00,0xa4,0x03,0x32,0x00,0x67,0x05,0x68,0x00,0x96,0x04,0xe4,0x00,0x6c,0x05,0x0c,0x00,0x96,0x04,0xaf,0x00,0x4b,0x05,0x4f,0x00,0x42,0x04,0x79,0x00,0x2f,0x06,0x47,0x00,0x6e,0x05,0xcf,0x00,0x34,0x02,0x25,0x00,0xb5,0x04,0x90,0x00,0x50,0x04,0x5c,0x00,0x4e, +0x05,0x0c,0x00,0x96,0x05,0x38,0x00,0x59,0x09,0x9a,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x18,0x00,0xa5,0x04,0x68,0x00,0x59,0x05,0x38,0x00,0x59,0x05,0x52,0x00,0x59,0x05,0x38,0x00,0x59,0x00,0x00,0xff,0x43,0x00,0x00,0xff,0x15,0x00,0x00,0xff,0x73,0x00,0x00,0xff,0xa1,0x00,0x00,0xff,0x49,0x00,0x00,0xff,0x45,0x00,0x00,0xff,0x61, +0x00,0x00,0xfe,0xab,0x00,0x00,0xfe,0x26,0x00,0x00,0x00,0x64,0x00,0x00,0xff,0x42,0x00,0x00,0xff,0x45,0x00,0x00,0x00,0x64,0x00,0x00,0xfe,0xe1,0x00,0x00,0xfe,0x06,0x00,0x00,0xff,0x17,0x00,0x00,0xff,0x5b,0x00,0x00,0xff,0x43,0x00,0x00,0xff,0x6a,0x00,0x00,0xff,0x4b,0x00,0x00,0xff,0x45,0x00,0x00,0xfe,0xe1,0x00,0x00,0xff,0x68, +0x00,0x00,0xff,0x45,0x00,0x00,0xff,0x17,0x00,0x00,0xff,0x43,0x00,0x00,0xff,0x4b,0x00,0x00,0xff,0x6a,0x00,0x00,0x00,0x64,0x00,0x00,0xfd,0x87,0x00,0x00,0xff,0x29,0x00,0x00,0xff,0xa4,0x03,0x32,0x00,0xab,0x02,0x25,0x00,0xb6,0x00,0x00,0xfe,0xb2,0x06,0x08,0x00,0x5e,0x05,0x22,0x00,0x33,0x05,0x55,0x00,0x64,0x05,0xa6,0x00,0x5a, +0x04,0x68,0x00,0x64,0x05,0x55,0x00,0x64,0x05,0xf6,0x00,0x32,0x06,0x19,0x00,0x5e,0x03,0xc4,0x00,0x20,0x05,0x08,0x00,0x8c,0x05,0xf6,0x00,0x32,0x05,0xe2,0x00,0x5c,0x05,0x4a,0x00,0xc9,0x06,0x08,0x00,0x5e,0x06,0x7f,0x00,0x32,0x06,0x36,0x00,0x32,0x05,0x55,0x00,0x64,0x04,0x68,0x00,0xb0,0x04,0x7b,0x00,0xbc,0x06,0x08,0x00,0x5e, +0x05,0xa6,0x00,0x5a,0x04,0x94,0x00,0x32,0x05,0x7f,0x00,0xaa,0x05,0x6b,0x00,0xa6,0x05,0x4a,0x00,0xa6,0x05,0x6b,0x00,0xc9,0x05,0x7d,0x00,0x5e,0x05,0xe2,0x00,0x5c,0x04,0x9c,0x00,0xbc,0x05,0x19,0x00,0x64,0x05,0x6b,0x00,0xc9,0x05,0x3b,0x00,0x32,0x06,0x31,0x00,0x32,0x05,0x0e,0x00,0xc9,0x04,0xf4,0x00,0x5e,0x05,0x22,0x00,0x33, +0x05,0x5a,0x00,0x96,0x06,0x8c,0x00,0x52,0x03,0xf8,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x07,0x00,0x00,0x60,0x04,0x51,0x00,0x60,0x04,0x51,0x00,0x60,0x06,0x2c,0x00,0x3c,0x07,0x21,0x00,0x60,0x04,0xe1,0x00,0x60,0x04,0x51,0x00,0x60,0x08,0x66,0x00,0x60,0x04,0x88,0x00,0x60,0x04,0x88,0x00,0x60,0x06,0x0e,0x00,0x60, +0x04,0x51,0x00,0x60,0x04,0x51,0x00,0x3f,0x06,0x0e,0x00,0x60,0x04,0x7d,0x00,0x9a,0x06,0x08,0x00,0x5e,0x06,0x82,0x00,0x60,0x06,0xff,0x00,0x40,0x04,0x51,0x00,0x60,0x06,0x2e,0x00,0x60,0x04,0x51,0x00,0x60,0x05,0x3b,0x00,0x32,0x04,0x58,0x00,0xa6,0x04,0xeb,0x00,0x60,0x04,0x88,0x00,0x60,0x05,0x0d,0x00,0x32,0x04,0x50,0x00,0x50, +0x04,0xd6,0x00,0xae,0x06,0x27,0x00,0x21,0x04,0x53,0x00,0x60,0x04,0xf5,0x00,0x60,0x05,0x4f,0x00,0x32,0x04,0x51,0x00,0x5e,0x04,0x51,0x00,0x60,0x04,0xc4,0x00,0x52,0x07,0xa8,0x00,0x60,0x04,0x51,0x00,0x60,0x04,0x51,0x00,0x5f,0x04,0xb0,0x00,0x60,0x04,0xb1,0x00,0x40,0x03,0x64,0x00,0x70,0x02,0xa8,0x00,0x32,0x04,0x75,0x00,0x28, +0x04,0x75,0x00,0x28,0x04,0x75,0x00,0x28,0x04,0x48,0x00,0x30,0x04,0x75,0x00,0x28,0x07,0x10,0x00,0x28,0x04,0x75,0xff,0x3f,0x07,0x13,0x00,0x5b,0x03,0xf4,0x00,0x28,0x04,0x75,0x00,0x59,0x07,0x17,0x00,0x31,0x05,0x51,0x00,0x30,0x04,0x75,0x00,0x31,0x07,0x13,0x00,0x5b,0x05,0xf2,0x00,0x28,0x05,0xf2,0x00,0x28,0x07,0x0c,0x00,0x59, +0x04,0x9c,0x00,0x59,0x04,0x75,0x00,0x42,0x07,0x13,0x00,0x5b,0x07,0x13,0x00,0x5b,0x04,0x72,0x00,0x71,0x04,0x75,0x00,0x28,0x04,0x75,0x00,0x28,0x04,0x75,0x00,0x5b,0x04,0x75,0x00,0x2f,0x04,0x75,0x00,0x42,0x07,0x0c,0x00,0x59,0x07,0x10,0x00,0x3f,0x04,0xb0,0x00,0x21,0x04,0x75,0x00,0x42,0x04,0x89,0xff,0x8a,0x07,0x17,0x00,0x31, +0x04,0xc5,0x00,0x2f,0x04,0x56,0x00,0x35,0x04,0x75,0x00,0x46,0x04,0x75,0x00,0x28,0x07,0x0c,0x00,0x59,0x06,0x3a,0x00,0xaa,0x05,0x7f,0x00,0xaa,0x05,0x86,0x00,0x5e,0x05,0x94,0x00,0x78,0x05,0x7f,0x00,0xaa,0x05,0xa8,0x00,0x64,0x04,0xff,0x00,0xbc,0x05,0x7f,0x00,0xaa,0x06,0x3f,0x00,0xaa,0x05,0x86,0x00,0x5e,0x05,0x33,0x00,0xaa, +0x04,0x58,0x00,0xbc,0x06,0x53,0x00,0xbc,0x05,0x62,0x00,0x5e,0x05,0x7f,0x00,0xaa,0x04,0x90,0x00,0x21,0x05,0x54,0x00,0x5e,0x05,0x94,0x00,0x78,0x05,0xf6,0x00,0x62,0x05,0xc6,0x00,0xaa,0x04,0xab,0x00,0x5e,0x05,0x94,0xff,0xf6,0x05,0x54,0x00,0x5e,0x05,0xcf,0x00,0xaa,0x05,0x54,0x00,0x5e,0x06,0x33,0x00,0x82,0x05,0x9a,0x00,0x64, +0x05,0xc6,0x00,0xaa,0x05,0xcf,0x00,0xaa,0x05,0x7a,0x00,0x5e,0x05,0x19,0x00,0x64,0x05,0x9d,0x00,0xaa,0x05,0x6f,0x00,0x90,0x05,0xc6,0x00,0xaa,0x06,0x56,0x00,0x5e,0x05,0x3f,0x00,0x14,0x06,0x08,0x00,0x5e,0x05,0xcb,0x00,0x86,0x00,0xca,0x00,0x00,0x00,0xe1,0x00,0x00,0x01,0x35,0x00,0x00,0x01,0x92,0x00,0x00,0x01,0x35,0x00,0x00, +0x02,0x29,0x00,0x00,0x02,0xce,0x00,0x00,0x06,0xe4,0x00,0x90,0x04,0x87,0x00,0xa6,0x04,0xf2,0x00,0x60,0x04,0xc3,0x00,0xa6,0x04,0x87,0x00,0xa6,0x04,0xec,0x00,0x60,0x04,0x87,0x00,0xa6,0x04,0x87,0x00,0xa6,0x05,0x2b,0x00,0xa6,0x04,0xca,0x00,0x5e,0x04,0x87,0x00,0xa6,0x02,0x76,0x00,0xa6,0x06,0xb1,0x00,0xa6,0x04,0xb0,0x00,0x60, +0x04,0x87,0x00,0x90,0x04,0x87,0x00,0xa6,0x04,0x57,0x00,0x60,0x04,0xd4,0x00,0xa6,0x04,0x18,0x00,0x60,0x04,0xa5,0x00,0x90,0x02,0x26,0xff,0x70,0x04,0xb0,0xff,0xf6,0x04,0x26,0x00,0x60,0x04,0x87,0x00,0xa6,0x03,0x4c,0x00,0x60,0x06,0xe4,0x00,0x90,0x04,0x64,0x00,0x60,0x04,0x87,0x00,0xa6,0x04,0x87,0x00,0x90,0x04,0xbe,0x00,0x90, +0x06,0xa6,0x00,0x8f,0x04,0x87,0x00,0xa6,0x04,0xb6,0x00,0x60,0x03,0x26,0x00,0xa6,0x06,0xa6,0x00,0x8f,0x04,0xb4,0x00,0x00,0x04,0xb0,0x00,0x60,0x05,0x7f,0x00,0x60,0x05,0x72,0x00,0x90,0x01,0xbc,0x00,0x70,0x02,0x42,0x00,0x2a,0x09,0x0e,0x00,0x90,0x08,0xf8,0x00,0x90,0x08,0xf8,0x00,0x90,0x09,0x0e,0x00,0x90,0x0b,0x67,0x00,0x90, +0x04,0x50,0x00,0x83,0x04,0x50,0x00,0x37,0x01,0xf0,0x00,0x90,0x04,0x50,0x00,0x5c,0x03,0x1e,0x00,0x79,0x04,0x50,0x00,0x99,0x04,0x50,0x00,0x7b,0x04,0x7d,0x00,0x32,0x04,0x50,0x00,0xa4,0x04,0x50,0x00,0x6f,0x04,0x1e,0x00,0x45,0x04,0x50,0x00,0x5a,0x04,0x50,0x00,0x5e,0x04,0x50,0x00,0x5c,0x04,0x50,0x00,0xe8,0x04,0x50,0x00,0x99, +0x04,0x50,0x00,0x7b,0x04,0x50,0x00,0x32,0x04,0x50,0x00,0xa4,0x04,0x50,0x00,0x6f,0x04,0x50,0x00,0x60,0x04,0x50,0x00,0x5a,0x04,0x50,0x00,0x5e,0x04,0x50,0x00,0x56,0x03,0x1e,0x00,0x53,0x04,0x50,0x00,0x6d,0x04,0x50,0x00,0x7b,0x04,0x7d,0x00,0x32,0x04,0x50,0x00,0xa4,0x04,0x50,0x00,0x6f,0x04,0x1e,0x00,0x45,0x04,0x50,0x00,0x5a, +0x04,0x50,0x00,0x5e,0x04,0x50,0x00,0x56,0x04,0x50,0x00,0xa8,0x04,0x50,0x00,0x60,0x04,0x50,0x00,0x83,0x04,0x50,0x00,0x0e,0x04,0x50,0x00,0xa4,0x04,0x50,0x00,0x6e,0x04,0x50,0x00,0x56,0x04,0x50,0x00,0x64,0x04,0x50,0x00,0x5e,0x02,0xee,0x00,0x48,0x02,0xee,0x00,0x50,0x02,0xee,0x00,0x68,0x02,0xee,0x00,0x81,0x02,0xee,0x00,0x2f, +0x02,0xee,0x00,0x7b,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x4d,0x02,0xee,0x00,0x41,0x02,0xee,0x00,0x49,0x04,0x04,0x00,0x00,0x03,0xec,0x00,0xb0,0x04,0x0f,0x00,0x58,0x04,0xac,0x00,0xb0,0x03,0x70,0x00,0xb0,0x03,0x5b,0x00,0xb0,0x04,0x94,0x00,0x58,0x04,0xe9,0x00,0xb0,0x02,0x04,0x00,0xb0,0x02,0x81,0x00,0x11,0x03,0xec,0x00,0xb0, +0x03,0x4c,0x00,0xb0,0x06,0x12,0x00,0xb0,0x05,0x2a,0x00,0xb0,0x04,0xed,0x00,0x58,0x03,0xe0,0x00,0xb0,0x04,0xed,0x00,0x58,0x03,0xf8,0x00,0xb0,0x03,0x5d,0x00,0x68,0x03,0x85,0x00,0x19,0x04,0xc2,0x00,0x9c,0x04,0x15,0x00,0x00,0x06,0x69,0x00,0x05,0x04,0x02,0x00,0x1e,0x03,0xbb,0x00,0x14,0x03,0xdb,0x00,0x29,0x05,0x9f,0xff,0xf8, +0x06,0x31,0x00,0x58,0x03,0x4c,0x00,0x38,0x05,0x01,0x00,0x41,0x03,0xe0,0x00,0xb0,0x04,0xac,0x00,0x2d,0x04,0x33,0x00,0xa6,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x0f,0x00,0x58,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0, +0x03,0x70,0x00,0xb0,0x02,0x04,0xff,0xfc,0x02,0x04,0x00,0x87,0x02,0x04,0xff,0xe9,0x02,0x04,0xff,0xe0,0x05,0x2a,0x00,0xb0,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x03,0xbb,0x00,0x14, +0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x0f,0x00,0x58,0x04,0x0f,0x00,0x58,0x04,0x94,0x00,0x58,0x04,0xac,0x00,0xb0,0x04,0xac,0x00,0x2d,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0,0x04,0x94,0x00,0x58,0x04,0x94,0x00,0x58,0x04,0x0f,0x00,0x58, +0x04,0xe9,0x00,0xb0,0x04,0xe9,0x00,0x2d,0x02,0x04,0xff,0xc3,0x02,0x04,0x00,0x04,0x02,0x04,0xff,0xf1,0x02,0x04,0x00,0x3f,0x02,0x04,0x00,0xa0,0x04,0x85,0x00,0xb0,0x02,0x81,0x00,0x11,0x03,0xec,0x00,0xb0,0x03,0x4c,0x00,0xb0,0x03,0x4c,0x00,0xb0,0x03,0x4c,0x00,0xb0,0x03,0x4c,0x00,0xb0,0x05,0x2a,0x00,0xb0,0x05,0x2a,0x00,0xb0, +0x05,0x2a,0x00,0xb0,0x05,0x38,0x00,0xb0,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x03,0xf8,0x00,0xb0,0x03,0xf8,0x00,0xb0,0x03,0xf8,0x00,0xb0,0x03,0x5d,0x00,0x68,0x03,0x5d,0x00,0x68,0x03,0x5d,0x00,0x68,0x03,0x5d,0x00,0x68,0x03,0x85,0x00,0x19,0x03,0x85,0x00,0x19,0x03,0x85,0x00,0x19,0x03,0x85,0x00,0x19, +0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x06,0x69,0x00,0x05,0x06,0x69,0x00,0x05,0x06,0x69,0x00,0x05,0x06,0x69,0x00,0x05,0x03,0xbb,0x00,0x14,0x03,0xbb,0x00,0x14,0x03,0xbb,0x00,0x14,0x03,0xdb,0x00,0x29,0x03,0xdb,0x00,0x29,0x03,0xdb,0x00,0x29, +0x04,0x04,0x00,0x00,0x05,0x9f,0xff,0xf8,0x05,0x01,0x00,0x41,0x04,0x04,0x00,0x00,0x03,0xec,0x00,0xb0,0x03,0x22,0x00,0x9c,0x04,0x4a,0x00,0x2a,0x03,0x70,0x00,0xb0,0x03,0xdb,0x00,0x29,0x04,0xe9,0x00,0xb0,0x04,0xed,0x00,0x58,0x02,0x04,0x00,0xb0,0x03,0xec,0x00,0xb0,0x04,0x15,0x00,0x00,0x06,0x12,0x00,0xb0,0x05,0x2a,0x00,0xb0, +0x03,0x95,0x00,0x49,0x04,0xed,0x00,0x58,0x04,0xe7,0x00,0xb0,0x03,0xe0,0x00,0xb0,0x03,0xac,0x00,0x30,0x03,0x85,0x00,0x19,0x03,0xbb,0x00,0x14,0x05,0x02,0x00,0x50,0x04,0x02,0x00,0x1e,0x05,0x40,0x00,0x7d,0x05,0x10,0x00,0x58,0x04,0x04,0x00,0x00,0x03,0x70,0x00,0xb0,0x04,0xe9,0x00,0xb0,0x02,0x04,0x00,0x87,0x04,0xed,0x00,0x58, +0x03,0xbb,0x00,0x14,0x05,0x10,0x00,0x58,0x02,0x04,0xff,0xe0,0x03,0xbb,0x00,0x14,0x03,0x70,0x00,0xb0,0x04,0x8d,0x00,0x22,0x03,0x36,0x00,0xb0,0x04,0x19,0x00,0x58,0x03,0x5d,0x00,0x68,0x02,0x04,0x00,0xb0,0x02,0x04,0xff,0xe0,0x02,0x81,0x00,0x11,0x06,0x80,0x00,0x0d,0x06,0x94,0x00,0xb0,0x04,0xe1,0x00,0x22,0x03,0xec,0x00,0xb0, +0x03,0xf4,0x00,0x36,0x04,0xdf,0x00,0xb0,0x04,0x04,0x00,0x00,0x03,0xe7,0x00,0xb0,0x03,0xec,0x00,0xb0,0x03,0x36,0x00,0xb0,0x04,0xaf,0x00,0x12,0x03,0x70,0x00,0xb0,0x05,0xe7,0x00,0x00,0x03,0x88,0x00,0x50,0x05,0x2a,0x00,0xb0,0x05,0x2a,0x00,0xb0,0x03,0xec,0x00,0xb0,0x04,0x8a,0x00,0x0d,0x06,0x12,0x00,0xb0,0x04,0xe9,0x00,0xb0, +0x04,0xed,0x00,0x58,0x04,0xe7,0x00,0xb0,0x03,0xe0,0x00,0xb0,0x04,0x0f,0x00,0x58,0x03,0x85,0x00,0x19,0x03,0xf4,0x00,0x36,0x05,0x02,0x00,0x50,0x04,0x02,0x00,0x1e,0x05,0x11,0x00,0xb0,0x04,0x60,0x00,0x7d,0x06,0x73,0x00,0xb0,0x06,0xa4,0x00,0xb0,0x04,0x89,0x00,0x22,0x05,0xa1,0x00,0xb0,0x03,0xec,0x00,0xb0,0x04,0x1e,0x00,0x54, +0x06,0xe0,0x00,0xb0,0x03,0xe9,0x00,0x12,0x03,0x31,0x00,0xb0,0x04,0xa5,0x00,0x35,0x04,0xa7,0x00,0x35,0x04,0xfa,0x00,0x35,0x07,0x1e,0x00,0x35,0x07,0x1e,0x00,0x35,0x05,0x45,0x00,0x57,0x04,0x0f,0x00,0x58,0x04,0x94,0x00,0x58,0x03,0x5d,0x00,0x68,0x04,0x96,0x00,0xbc,0x04,0x7b,0x00,0xbc,0x04,0x7b,0x00,0x52,0x05,0x9c,0x00,0xbc, +0x04,0x31,0x00,0x29,0x04,0x31,0x00,0x27,0x05,0x7d,0x00,0x5e,0x04,0xa4,0x00,0xbc,0x04,0xa4,0x00,0x02,0x02,0xdb,0x00,0x14,0x04,0xf4,0x00,0x5e,0x04,0xf4,0x00,0x68,0x04,0x90,0x00,0x21,0x03,0xe8,0x00,0xbc,0x03,0xe8,0x00,0x54,0x07,0x2f,0x00,0xbc,0x05,0xfc,0x00,0xbc,0x03,0xc4,0x00,0xbc,0x04,0x40,0x00,0x79,0x04,0xc9,0x00,0xbc, +0x04,0xc9,0x00,0x09,0x04,0xf8,0x00,0x12,0x04,0xf8,0x00,0x12,0x05,0xae,0x00,0xbc,0x05,0x7d,0x00,0x91,0x02,0xdb,0x00,0xb0,0x07,0x79,0x00,0x1a,0x04,0xb8,0x00,0x1a,0x04,0x6c,0x00,0x12,0x04,0x96,0x00,0x67,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x17,0x04,0x0c,0x00,0xbc,0x04,0x0c,0x00,0x58,0x02,0x21,0x00,0xbc,0x06,0x08,0x00,0x5e, +0x05,0x7f,0x00,0xaa,0x05,0x7f,0x00,0xaa,0x03,0xc4,0x00,0x20,0x05,0x9c,0x00,0x5e,0x01,0xbc,0x00,0x70,0x01,0xbc,0x00,0x27,0x03,0x78,0x00,0x70,0x03,0x78,0x00,0x70,0x01,0xbc,0x00,0x27,0x01,0xbc,0x00,0x70,0x04,0xef,0x00,0x90,0x03,0x33,0x00,0x90,0x02,0x21,0x00,0x30,0x06,0x08,0x00,0x5e,0x05,0xa6,0x00,0x77,0x02,0x46,0x00,0xb4, +0x01,0xbc,0x00,0x5c,0x01,0xbc,0x00,0x5e,0x03,0x96,0x00,0x83,0x03,0x04,0x00,0x6f,0x03,0x04,0x00,0x68,0x01,0xd5,0x00,0x6f,0x01,0xd5,0x00,0x74,0x01,0xd5,0x00,0x62,0x03,0x04,0x00,0x68,0x05,0x65,0x00,0x60,0x03,0xc4,0x00,0xbc,0x02,0x75,0x00,0xa6,0x04,0xd9,0xff,0xe4,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x04,0xa4,0x00,0xbc, +0x03,0xfa,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x03,0x85,0x00,0x2b,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x01,0xbc,0x00,0x5e,0x01,0xd5,0x00,0x74,0x03,0x1f,0x01,0x3d,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x05,0x58,0xff,0xba,0x05,0x58,0xff,0xba,0x05,0x58,0xff,0xba, +0x07,0x59,0x00,0x1e,0x06,0x03,0x00,0x7c,0x07,0x59,0x00,0x7c,0x02,0x01,0x00,0x76,0x00,0x00,0xff,0xc8,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x37,0x02,0x01,0x00,0x70,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x04,0x02,0x00,0x00,0x02,0xac,0xff,0xba, +0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x0a,0xb0,0x00,0x9b, +0x08,0x04,0xff,0xba,0x0a,0xb0,0x00,0x9b,0x08,0x04,0xff,0xba,0x06,0xae,0x00,0x19,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x06,0xae,0x00,0x19,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba, +0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x08,0x04,0x00,0xab,0x06,0x03,0x00,0x9b,0x06,0xae,0x00,0xab, +0x04,0x02,0xff,0xba,0x04,0xad,0x00,0x39,0x04,0xad,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0xff,0xba,0x06,0x03,0x00,0x53,0x04,0x02,0xff,0xba,0x04,0x02,0x00,0x00,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x00,0x00,0xff,0xd4,0x00,0x00,0xff,0xd8,0x00,0x00,0xff,0xd4,0x00,0x00,0xff,0xd4, +0x00,0x00,0xff,0x6c,0x00,0x00,0x00,0x05,0x00,0x00,0xff,0xf8,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x05,0x02,0x01,0x00,0x4f,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x9b,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x02,0x01,0x00,0x49,0x04,0x02,0x00,0x00,0x04,0x02,0xff,0xe7, +0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba, +0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52, +0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x0a,0xb0,0x00,0x9b,0x08,0x04,0xff,0xba,0x0a,0xb0,0x00,0x9b,0x08,0x04,0xff,0xba,0x06,0xae,0x00,0x19,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x08,0x04,0x00,0xab, +0x08,0x04,0x00,0xab,0x08,0x04,0x00,0xab,0x08,0x04,0x00,0xab,0x08,0x04,0x00,0xab,0x08,0x04,0x00,0xab,0x06,0x03,0x00,0x9b,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9b,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x08,0xaf,0x00,0x19,0x08,0x04,0xff,0xba,0x07,0x59,0x00,0xab, +0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab, +0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b, +0x02,0xac,0xff,0xba,0x05,0x58,0xff,0xba,0x04,0x02,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x57,0x04,0x02,0x00,0x57,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba, +0x04,0x02,0x00,0x00,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x00,0x00,0x00,0x81,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x0a,0xb1,0x00,0x9b,0x08,0x04,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba, +0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x03,0x57,0x00,0x00,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x08,0x04,0x00,0xab, +0x08,0x04,0x00,0xab,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x04,0xad,0x00,0x39,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x39,0x04,0xad,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba, +0x04,0xae,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xae,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x09,0x5a,0x00,0x9b,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e, +0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x02,0xac,0x00,0x17,0x02,0xac,0x00,0x17,0x02,0xac,0x00,0x16,0x02,0xac,0x00,0x16,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a, +0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x17,0x04,0xad,0x00,0x17,0x04,0xad,0x00,0x16,0x04,0xad,0x00,0x16,0x07,0x59,0x00,0x72,0x02,0xac,0x00,0x72,0x07,0x59,0x00,0x72,0x02,0xac,0x00,0x72,0x04,0xae,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x09,0x5a,0x00,0x9b,0x09,0x5a,0x00,0x9b, +0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x06,0xae,0x00,0xab,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x02,0x01,0x00,0xa4,0x02,0x01,0x00,0x03,0x02,0x01,0x00,0xa4,0x02,0x01,0x00,0x03,0x02,0x01,0x00,0x03,0x02,0x01,0xff,0x62, +0x02,0x01,0x00,0x03,0x02,0x01,0xff,0xc6,0x00,0x00,0xff,0x97,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x89,0x02,0x01,0x00,0x60,0x02,0xac,0x00,0x1e,0x02,0x01,0x00,0x3c,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x30,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xa2,0x02,0xac,0x00,0x49,0x02,0xac,0x00,0x72,0x02,0xac,0x00,0x72, +0x02,0xac,0xff,0x97,0x02,0xac,0xff,0xc2,0x02,0xac,0x00,0x34,0x02,0xac,0x00,0x3a,0x03,0x57,0x00,0x17,0x03,0x57,0x00,0x16,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8, +0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8, +0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6, +0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39, +0x03,0x57,0x00,0x39,0x05,0x58,0x00,0x82,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x06,0x03,0x00,0x1e,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x04,0xad,0x00,0x72, +0x06,0xae,0x00,0x72,0x04,0xad,0x00,0x72,0x06,0xae,0x00,0x72,0x04,0xad,0x00,0x72,0x06,0xae,0x00,0x72,0x04,0xad,0x00,0x72,0x06,0xae,0x00,0x72,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x02,0x01,0xff,0xf1,0x02,0x01,0xff,0xea,0x04,0x02,0x00,0xa1,0x03,0x57,0x00,0x39,0x04,0xa9,0x00,0x64,0x05,0x19,0x00,0x65, +0x04,0x90,0x00,0x21,0x04,0x51,0x00,0x5f,0x04,0x70,0x00,0x0a,0x04,0xb0,0x00,0x60,0x04,0x51,0xff,0xe6,0x04,0x55,0x00,0x2d,0x04,0x50,0x00,0x72,0x04,0x50,0x00,0xa1,0x04,0x50,0x00,0xc2,0x04,0x50,0x01,0x1f,0x04,0x50,0x00,0xf7,0x04,0x50,0x01,0x08,0x04,0x50,0x00,0xe1,0x04,0x50,0x00,0xa1,0x04,0x50,0x00,0xa9,0x04,0x50,0x00,0xbc, +0x04,0x26,0x00,0x76,0x03,0xb0,0x00,0x8a,0x04,0x61,0x00,0x6d,0x04,0x32,0x00,0x76,0x04,0xb4,0x00,0x6c,0x04,0xe2,0x00,0x97,0x04,0xe7,0x00,0x90,0x05,0x40,0x00,0x76,0x04,0xa3,0x00,0x80,0x04,0x87,0x00,0x76,0x05,0x35,0x00,0x96,0x04,0x1e,0x00,0x64,0x05,0x59,0x00,0x78,0x06,0x0d,0x00,0x82,0x05,0x1d,0x00,0x8c,0x05,0xfa,0x00,0x96, +0x06,0xa1,0x00,0x64,0x05,0x18,0x00,0x87,0x06,0x1c,0x00,0x78,0x05,0x81,0x00,0x96,0x04,0x84,0x00,0x98,0x04,0x84,0x01,0x00,0x04,0x84,0x00,0x5d,0x04,0x84,0x00,0x6b,0x04,0x84,0x00,0x94,0x04,0x84,0x00,0x59,0x04,0x84,0x00,0x7d,0x04,0x84,0x00,0xbf,0x04,0x84,0x00,0x2b,0x04,0x84,0x00,0x2b,0x04,0x3e,0x00,0x76,0x03,0xb2,0x00,0x2d, +0x04,0x52,0x00,0x7c,0x04,0xd7,0x00,0x0f,0x04,0xce,0x00,0x0a,0x05,0x44,0x00,0x16,0x04,0x94,0x00,0x41,0x05,0x2c,0x00,0x36,0x04,0x99,0x00,0x80,0x04,0xc2,0x00,0x7d,0x04,0xd1,0x00,0x82,0x04,0x15,0x00,0x82,0x04,0x15,0x00,0x96,0x06,0x00,0x00,0x82,0x05,0x6f,0x00,0x64,0x05,0x87,0x00,0x64,0x05,0x64,0x00,0x64,0x05,0x6f,0x00,0x64, +0x04,0xbe,0x00,0xb4,0x04,0xa6,0x00,0x82,0x04,0xa5,0x00,0x77,0x05,0xe4,0x00,0x50,0x06,0x2c,0x00,0x50,0x06,0x03,0x00,0x8c,0x06,0x1b,0x00,0x50,0x07,0x62,0x00,0x8c,0x07,0x62,0x00,0x50,0x05,0x9b,0x00,0x50,0x07,0x62,0x00,0x32,0x07,0x62,0x00,0x50,0x05,0xde,0x00,0x72,0x06,0xfc,0x00,0x74,0x06,0xc4,0x00,0x60,0x04,0x74,0x00,0x58, +0x06,0x24,0x00,0x73,0x06,0xcc,0x00,0x5d,0x06,0x1a,0x00,0x73,0x04,0xc0,0x00,0x70,0x06,0xce,0x00,0x74,0x05,0xe8,0x00,0x73,0x05,0x87,0x00,0x82,0x05,0x9d,0x00,0x82,0x04,0xd6,0x00,0x64,0x05,0x25,0x00,0x82,0x05,0xf8,0x00,0x6e,0x06,0x5a,0x00,0x82,0x05,0x93,0x00,0x64,0x04,0xee,0x00,0x6e,0x05,0xa7,0x00,0x82,0x04,0xa8,0x00,0x82, +0x04,0x46,0x00,0x5d,0x07,0x60,0x00,0x00,0x07,0x58,0x00,0x64,0x07,0x5d,0x00,0x64,0x06,0x96,0x00,0x61,0x07,0x62,0x00,0x61,0x07,0x62,0x00,0x64,0x05,0x78,0x00,0x46,0x07,0x62,0x00,0x64,0x07,0x62,0x00,0x61,0x05,0xad,0x00,0x82,0x06,0x25,0x00,0x82,0x06,0x44,0x00,0xb4,0x05,0xf5,0x00,0x82,0x05,0xcd,0x00,0x82,0x05,0xcd,0x00,0x82, +0x05,0x29,0x00,0x50,0x07,0x0c,0x00,0x82,0x06,0x1e,0x00,0x82,0x06,0x9d,0x00,0x82,0x05,0xb7,0x00,0x78,0x05,0xb3,0x00,0x78,0x04,0xa2,0x00,0x78,0x05,0xe9,0x00,0x50,0x05,0x89,0x00,0x78,0x05,0x89,0x00,0x78,0x06,0xd0,0x00,0x78,0x06,0x10,0x00,0x64,0x05,0xcb,0x00,0x70,0x07,0x2d,0x00,0x78,0x04,0x56,0x00,0x78,0x04,0x10,0x00,0x64, +0x04,0x78,0x00,0x78,0x04,0x4b,0x00,0x78,0x04,0xe5,0x00,0x78,0x04,0xff,0x00,0x78,0x05,0x94,0x00,0x78,0x05,0xde,0x00,0x64,0x04,0xa0,0x00,0x78,0x04,0x8e,0x00,0x78,0x04,0x84,0x00,0x80,0x04,0x5d,0x00,0x7f,0x04,0x8b,0x00,0x3a,0x04,0x5d,0x00,0x7f,0x04,0x5d,0x00,0x80,0x04,0x8b,0x00,0x80,0x04,0x8b,0x00,0x80,0x04,0x9f,0x00,0x80, +0x04,0x84,0x00,0x80,0x04,0x8b,0x00,0x80,0x04,0x8b,0x00,0x80,0x04,0x11,0x00,0x66,0x04,0x3c,0x00,0x80,0x04,0xb8,0x00,0x66,0x04,0xf5,0x00,0x66,0x04,0xd3,0x00,0x80,0x04,0xd3,0x00,0x80,0x03,0xaa,0x00,0x67,0x04,0x84,0x00,0x80,0x04,0x84,0x00,0x80,0x04,0xb4,0x00,0xa0,0x04,0xd9,0x00,0x8c,0x06,0x1f,0x00,0x64,0x06,0xbe,0x00,0xa0, +0x05,0x3c,0x00,0xa0,0x05,0x3c,0x00,0xa0,0x05,0x01,0x00,0x7b,0x06,0x25,0x00,0xa0,0x05,0x1a,0x00,0xa0,0x05,0x78,0x00,0xe9,0x04,0x1a,0x00,0x84,0x03,0xcc,0x00,0x69,0x04,0xb5,0x00,0x84,0x04,0x80,0x00,0x84,0x03,0xc9,0x00,0x84,0x03,0xf3,0x00,0x84,0x04,0x61,0x00,0x84,0x04,0x6c,0x00,0x84,0x03,0xdb,0x00,0x70,0x03,0xb7,0x00,0x84, +0x05,0x02,0x00,0x60,0x03,0xa4,0x00,0x50,0x04,0x5c,0x00,0x2d,0x03,0xf6,0x00,0x50,0x04,0x62,0x00,0x60,0x06,0x3f,0x00,0x60,0x04,0x81,0x00,0x77,0x06,0x9e,0x00,0x60,0x04,0x4a,0x00,0x0a,0x04,0x85,0x00,0x60,0x04,0x8f,0x00,0x60,0x05,0xf2,0x00,0x82,0x02,0x81,0x00,0xf0,0x06,0x51,0x00,0x64,0x05,0x7c,0x00,0x64,0x05,0xbe,0x00,0xb4, +0x05,0x48,0x00,0xb4,0x04,0x7c,0x00,0x64,0x06,0x01,0x00,0x00,0x04,0xd0,0x00,0x82,0x06,0x41,0x00,0x64,0x04,0xd5,0x00,0x67,0x04,0xd5,0x00,0x84,0x04,0xd5,0x00,0x67,0x04,0xd5,0x00,0x3f,0x04,0xd5,0x00,0x6b,0x04,0xd5,0x00,0x5c,0x04,0x9f,0x00,0xd6,0x04,0xd5,0x00,0x59,0x04,0xd5,0x00,0x7b,0x04,0xd5,0x00,0x8b,0x02,0x21,0x00,0x30, +0x02,0x21,0xff,0xd0,0x02,0x21,0xff,0xf9,0x02,0x21,0xff,0x86,0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x30,0x02,0x21,0xff,0xfd,0x03,0x89,0xff,0xbe,0x03,0x9f,0xff,0xbd,0x03,0x98,0xff,0xc1,0x03,0x9f,0xff,0xbe,0x03,0xb9,0xff,0xc0,0x03,0x9f,0xff,0xbe,0x02,0x79,0xff,0xbf,0x02,0x7b,0xff,0xbe,0x02,0x21,0xff,0xfe,0x02,0x21,0xff,0xf2, +0x02,0x21,0xff,0xf2,0x02,0x21,0xff,0xf2,0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x30,0x04,0xfc,0x00,0x30,0x02,0x21,0xff,0xd1,0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x1c,0x02,0x7b,0xff,0xc7,0x02,0x7b,0xff,0xc7,0x02,0x21,0xff,0xf3,0x02,0x21,0xff,0xf8,0x02,0x21,0x00,0x12,0x02,0x5d,0xff,0xaf, +0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x14,0x02,0x21,0xff,0xff,0x07,0x38,0x00,0xbc,0x07,0x38,0x00,0xbc,0x07,0x38,0x00,0xbc,0x07,0x38,0x00,0xbc,0x03,0xe8,0x00,0x93,0x05,0xee,0x00,0x48,0x05,0xcd,0x00,0x6c,0x03,0xe8,0x00,0x60,0x03,0x40,0x00,0x77,0x03,0xe8,0x00,0x3e,0x04,0x2f,0x00,0x96,0x04,0x78,0x00,0x2e,0x03,0xe8,0x00,0x5c, +0x06,0xbf,0x00,0x73,0x06,0x92,0x00,0x73,0x06,0xe7,0x00,0x75,0x03,0x8a,0x00,0x19,0x08,0x0c,0x00,0xaa,0x03,0xe8,0x00,0x60,0x06,0xaf,0x00,0x73,0x06,0xaf,0x00,0x75,0x06,0xbb,0x00,0x82,0x06,0x77,0x00,0x93,0x04,0x86,0x00,0x69,0x03,0xe8,0x00,0x6b,0x03,0xe8,0x00,0x6b,0x06,0x3e,0x00,0x96,0x04,0xae,0x00,0x20,0x06,0x35,0x00,0xaa, +0x05,0x65,0x00,0x12,0x04,0x45,0x00,0x57,0x03,0xa0,0x00,0x26,0x03,0x40,0x00,0x25,0x08,0x27,0x00,0x28,0x03,0x4c,0x00,0x2b,0x04,0x44,0x00,0x22,0x03,0xe9,0x00,0x4c,0x03,0xe9,0x00,0x0b,0x03,0xe9,0x00,0x5f,0x03,0xe9,0x00,0x4e,0x03,0xe9,0x00,0xaa,0x0a,0xe5,0x00,0x8c,0x06,0xaf,0x00,0x6e,0x06,0xaf,0x00,0x80,0x03,0x6e,0x00,0xb2, +0x02,0x03,0x00,0xb2,0x03,0xa5,0x00,0x53,0x01,0xe5,0x00,0x2b,0x03,0xb3,0x00,0xa6,0x01,0xe5,0x00,0x7a,0x01,0xe5,0x00,0x7a,0x01,0xe5,0x00,0x2b,0x03,0xd7,0x00,0x00,0x04,0xae,0x00,0x6a,0x04,0xae,0x00,0x68,0x04,0x5f,0x00,0x00,0x03,0x04,0x00,0x6f,0x03,0x04,0x00,0x68,0x01,0xd5,0x00,0x6f,0x01,0xd5,0x00,0x74,0x01,0xd5,0x00,0x62, +0x03,0x04,0x00,0x68,0x01,0xd5,0x00,0x74,0x03,0x4c,0x00,0x90,0x06,0xe4,0x00,0x8d,0x01,0xbc,0x00,0x70,0x07,0x38,0x00,0xbc,0x07,0x38,0x00,0xbc,0x07,0x38,0x00,0xbc,0x04,0xad,0x00,0xab,0x04,0xad,0x00,0xab,0x06,0xae,0x00,0xa1,0x06,0xae,0x00,0xa1,0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00, +0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00,0x09,0x5a,0x00,0x9a,0x09,0x5a,0x00,0x9a,0x05,0x58,0xff,0xba,0x09,0x5a,0x00,0x9a,0x09,0x5a,0x00,0x9a,0x05,0x58,0xff,0xba,0x00,0x00,0xff,0x0e,0x00,0x00,0xff,0x36,0x00,0x00,0xff,0x72,0x00,0x00,0xfe,0xfc,0x00,0x00,0xfe,0x84,0x00,0x00,0xff,0x46, +0x00,0x00,0xff,0x2c,0x00,0x00,0xff,0x20,0x00,0x00,0xfe,0xec,0x00,0x00,0xff,0x2c,0x00,0x00,0xff,0x04,0x00,0x00,0xff,0x2c,0x00,0x00,0xff,0x15,0x00,0x00,0xff,0x40,0x00,0x00,0xff,0x3e,0x00,0x00,0xff,0x23,0x00,0x00,0xff,0x06,0x00,0x00,0xff,0x2f,0x00,0x00,0xfe,0xba,0x00,0x00,0xfe,0x93,0x00,0x00,0xff,0x04,0x00,0x00,0xfe,0x94, +0x00,0x00,0xff,0x36,0x00,0x00,0xff,0x21,0x00,0x00,0xff,0x27,0x00,0x00,0xff,0x18,0x00,0x00,0xfe,0xf7,0x00,0x00,0xfe,0xa2,0x00,0x00,0xfe,0xc2,0x00,0x00,0xff,0x07,0x00,0x00,0xfe,0xee,0x00,0x00,0xfe,0xb2,0x04,0xa9,0x00,0x21,0x03,0xc1,0x00,0x21,0x04,0xa9,0x00,0x21,0x03,0xc1,0x00,0x21,0x04,0x40,0x00,0x77,0x03,0x65,0x00,0x70, +0x02,0xd9,0x00,0xbc,0x02,0xc9,0x00,0xa6,0x05,0x7f,0x00,0xaa,0x04,0x61,0x00,0x7d,0x05,0xbb,0x00,0x48,0x03,0x72,0x00,0x19,0x09,0x08,0x00,0x5e,0x07,0x26,0x00,0x60,0x04,0xbe,0xff,0xf3,0x04,0x6d,0x00,0x32,0x07,0x5f,0x00,0x33,0x06,0x55,0x00,0x1c,0x06,0xc1,0x00,0xbb,0x05,0xfe,0x00,0xa6,0x08,0x26,0x00,0x60,0x06,0x81,0x00,0x63, +0x07,0x67,0x00,0xbc,0x06,0x30,0x00,0xa6,0x05,0x29,0x00,0x16,0x03,0xd1,0x00,0x0a,0x05,0xd3,0x00,0x29,0x04,0xb1,0x00,0x1e,0x07,0x67,0x00,0xbc,0x05,0xda,0x00,0xa6,0x06,0x03,0x00,0x1e,0x04,0xdf,0x00,0x05,0x05,0xf0,0x00,0x3e,0x04,0xcd,0x00,0x3e,0x06,0xe8,0x00,0x0f,0x05,0x51,0x00,0x12,0x07,0x05,0x00,0x10,0x05,0x57,0x00,0x10, +0x08,0xd3,0x00,0xbc,0x06,0xbe,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x09,0xb6,0x00,0x5e,0x07,0x1e,0x00,0x60,0x06,0x55,0x00,0x7e,0x00,0x00,0xfe,0xc2,0x07,0xe2,0x00,0x6f,0x07,0xe2,0x01,0x13,0x07,0xe2,0x00,0x26,0x03,0xd1,0x00,0x7d,0x00,0x00,0xfe,0x9c,0x00,0x00,0xff,0x33, +0x04,0xa6,0x00,0xfc,0x04,0x01,0x01,0x33,0x05,0x98,0x00,0x0f,0x04,0x76,0x00,0x12,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x67,0x08,0x9c,0x00,0x60,0x07,0x3b,0x00,0x50,0x07,0x8f,0x00,0xa6,0x06,0xe1,0x00,0x98,0x05,0xbe,0x00,0x0f,0x04,0xa4,0x00,0x12,0x05,0x96,0x00,0x29,0x04,0xb0,0x00,0x1e,0x04,0x31,0x00,0x29,0x03,0x48,0x00,0x1e, +0x05,0xeb,0x00,0xae,0x04,0xc7,0x00,0x8f,0x04,0x31,0x00,0x29,0x03,0x48,0x00,0x1e,0x06,0x8e,0x00,0x29,0x05,0x54,0x00,0x1e,0x05,0x4a,0x00,0xa6,0x04,0x87,0x00,0xa6,0x07,0xd1,0x00,0xbc,0x06,0x8f,0x00,0xa6,0x04,0x50,0x00,0x2b,0x04,0x99,0x00,0x32,0x05,0xdc,0x00,0xe7,0x05,0xdc,0x00,0xe7,0x06,0x78,0x00,0x00,0x03,0x96,0x00,0x83, +0x01,0x9a,0x00,0x00,0x03,0xac,0x00,0xac,0x05,0x7a,0x00,0x5e,0x03,0x73,0x00,0x30,0x08,0x00,0x00,0xe6,0x08,0x00,0x00,0xe6,0x01,0xf0,0x00,0x37,0x00,0x00,0xfd,0x33,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00, +0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x03,0x33,0x00,0x90,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x04,0x50,0x00,0x53,0x04,0xb0,0x00,0xbb,0x04,0xb0,0x01,0x01, +0x04,0xb0,0x00,0xaf,0x04,0xb0,0x00,0xc2,0x04,0xb0,0x00,0x6a,0x04,0xb0,0x00,0x64,0x04,0xb0,0x00,0x39,0x04,0xb0,0x00,0x2e,0x04,0xb0,0x00,0x79,0x04,0xb0,0x00,0x81,0x06,0x04,0x00,0xfd,0x06,0x04,0x01,0x70,0x06,0x04,0x00,0xb9,0x06,0x04,0x00,0x7d,0x06,0x04,0x00,0xff,0x06,0x04,0x00,0x8c,0x06,0x04,0x00,0x1f,0x06,0x04,0x00,0xf5, +0x06,0x04,0x00,0x3a,0x06,0x04,0x00,0xaf,0x04,0xc4,0x00,0xb7,0x04,0xc4,0x01,0x2a,0x04,0xc4,0x00,0x7d,0x04,0xc4,0x00,0x8b,0x04,0xc4,0x00,0xb4,0x04,0xc4,0x00,0x79,0x04,0xc4,0x00,0x9d,0x04,0xc4,0x00,0xdf,0x04,0xc4,0x00,0x4b,0x04,0xc4,0x00,0x4b,0x05,0x14,0x00,0xe1,0x05,0x14,0x00,0xdc,0x05,0x14,0x00,0xa6,0x05,0x14,0x00,0x68, +0x05,0x14,0x00,0x2d,0x05,0x14,0x00,0x0c,0x05,0x14,0x00,0x68,0x05,0x14,0x00,0x4d,0x05,0x14,0x00,0xab,0x05,0x14,0x00,0x7d,0x05,0x28,0x00,0xad,0x05,0x28,0x01,0x15,0x05,0x28,0x01,0x15,0x05,0x28,0x00,0x2f,0x05,0x28,0x00,0x40,0x05,0x28,0x00,0x34,0x05,0x28,0x00,0x55,0x05,0x28,0x00,0x4f,0x05,0x28,0x00,0xc1,0x05,0x28,0x00,0xdc, +0x07,0x44,0x01,0xbd,0x07,0x44,0x01,0x00,0x07,0x44,0x00,0xd2,0x07,0x44,0x00,0xff,0x07,0x44,0x00,0xf8,0x07,0x44,0x00,0x5c,0x07,0x44,0x00,0x27,0x07,0x44,0x01,0x1a,0x07,0x44,0x00,0x48,0x07,0x44,0x00,0x23,0x06,0x68,0x00,0xbf,0x06,0x68,0x00,0x34,0x06,0x68,0x00,0x45,0x06,0x68,0x01,0x78,0x06,0x68,0x00,0x9e,0x06,0x68,0x00,0x36, +0x06,0x68,0x00,0x99,0x06,0x68,0x01,0x4a,0x06,0x68,0x00,0x28,0x06,0x68,0x00,0x99,0x05,0xdc,0x00,0xac,0x05,0xdc,0x00,0xa1,0x05,0xdc,0x00,0xf6,0x05,0xdc,0x00,0xdd,0x05,0xdc,0x00,0x60,0x05,0xdc,0x00,0x43,0x05,0xdc,0x00,0x7e,0x05,0xdc,0x00,0xd6,0x05,0xdc,0x00,0x8d,0x05,0xdc,0x01,0x0d,0x07,0x1c,0x01,0xc8,0x07,0x1c,0x00,0x24, +0x07,0x1c,0x00,0x37,0x07,0x1c,0x00,0x32,0x07,0x1c,0x00,0x7e,0x07,0x1c,0x00,0x37,0x07,0x1c,0x00,0x46,0x07,0x1c,0x01,0x25,0x07,0x1c,0x00,0x4b,0x07,0x1c,0x00,0x3d,0x06,0x68,0x00,0xdf,0x06,0x68,0x00,0xa3,0x06,0x68,0x00,0xc6,0x06,0x68,0x00,0xbb,0x06,0x68,0x00,0xcf,0x06,0x68,0x00,0xcf,0x06,0x68,0x01,0x08,0x06,0x68,0x00,0x35, +0x06,0x68,0x00,0xa7,0x06,0x68,0x00,0x67,0x06,0x68,0x00,0xd0,0x06,0x68,0x00,0xd2,0x06,0x68,0x01,0x47,0x06,0x68,0x00,0xa3,0x06,0x68,0x00,0xdd,0x06,0x68,0x00,0xdd,0x06,0x68,0x00,0x44,0x06,0x68,0x00,0x9a,0x06,0x68,0x00,0xb9,0x06,0x68,0x00,0x15,0x05,0x78,0x01,0x09,0x05,0x78,0x01,0x22,0x05,0x78,0x00,0xf8,0x05,0x78,0x01,0x0e, +0x05,0x78,0x00,0xb7,0x05,0x78,0x00,0x78,0x05,0x78,0x00,0x6c,0x05,0x78,0x00,0x3b,0x05,0x78,0x00,0xcb,0x05,0x78,0x00,0xe3,0x04,0x10,0x00,0x47,0x04,0x10,0x00,0x5a,0x04,0x10,0x00,0x44,0x04,0x10,0x00,0x5a,0x04,0x10,0x00,0x5a,0x04,0x10,0x00,0x44,0x04,0x10,0x00,0x44,0x04,0x10,0x00,0x30,0x04,0x10,0x00,0x47,0x04,0x10,0x00,0x44, +0x04,0x88,0x00,0x80,0x04,0x88,0x00,0xa3,0x04,0x88,0x00,0x9b,0x04,0x88,0x00,0x5d,0x04,0x88,0x00,0x31,0x04,0x88,0x00,0x57,0x04,0x88,0x00,0x57,0x04,0x88,0x00,0xd7,0x04,0x88,0x00,0x83,0x04,0x88,0x00,0x83,0x06,0x04,0x01,0x48,0x06,0x04,0x01,0x21,0x06,0x04,0x00,0x74,0x06,0x04,0x00,0x43,0x06,0x04,0x00,0xf0,0x06,0x04,0x00,0xd6, +0x06,0x04,0x01,0x0f,0x06,0x04,0x00,0x8f,0x06,0x04,0x01,0x0b,0x06,0x04,0x01,0x20,0x04,0x4c,0x00,0x9d,0x04,0x4c,0x00,0xb6,0x04,0x4c,0x00,0x36,0x04,0x4c,0x00,0x5a,0x04,0x4c,0x00,0xc5,0x04,0x4c,0x00,0xab,0x04,0x4c,0x00,0x79,0x04,0x4c,0x00,0x74,0x04,0x4c,0x00,0xa8,0x04,0x4c,0x00,0xce,0x05,0xc8,0x00,0xc3,0x05,0xc8,0x01,0x6a, +0x05,0xc8,0x01,0x08,0x05,0xc8,0x01,0x20,0x05,0xc8,0x01,0x21,0x05,0xc8,0x00,0x3c,0x05,0xc8,0x01,0x05,0x05,0xc8,0x00,0x50,0x05,0xc8,0x00,0xc9,0x05,0xc8,0x01,0x01,0x05,0xc8,0x00,0xd6,0x06,0x04,0x00,0x8b,0x06,0x04,0x02,0xb1,0x06,0x04,0x00,0x1f,0x06,0x04,0x00,0xb7,0x06,0x04,0x00,0xd7,0x06,0x04,0x00,0xf9,0x06,0x04,0x01,0x37, +0x06,0x04,0x00,0x33,0x06,0x04,0x01,0x1c,0x06,0x04,0x00,0x45,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x9c,0x00,0x00,0xfe,0xe6,0x00,0x00,0xff,0x9c,0x03,0x82,0x00,0x31,0x03,0xd9,0x00,0x20,0x05,0x6c,0x00,0xb8,0x05,0xcf,0x00,0x34,0x02,0x39,0x00,0x6d,0x01,0xac,0x00,0x5a,0x02,0x39,0x00,0x5b, +0x01,0xac,0x00,0x4e,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xf1,0x00,0x29,0x05,0x05,0x00,0x2b,0x04,0x6b,0x00,0x66,0x03,0xc5,0x00,0x26,0x04,0x45,0x00,0x51,0x03,0xda,0x00,0x21,0x04,0xba,0x00,0x51,0x04,0x90,0x00,0x21,0x03,0x5b,0x00,0xb0,0x03,0x5d,0x00,0x68,0x09,0x08,0x00,0x16,0x06,0x8b,0x00,0x5a,0x09,0x39,0x00,0x16, +0x07,0x16,0x00,0x5a,0x07,0xe4,0x00,0x16,0x06,0xc3,0x00,0x5a,0x07,0x36,0x00,0x16,0x05,0x44,0x00,0x5a,0x07,0x36,0x00,0x16,0x05,0x44,0x00,0x5a,0x07,0x36,0x00,0x16,0x05,0x44,0x00,0x5a,0x04,0xf4,0x00,0x68,0x03,0xb2,0x00,0x50,0x04,0xa4,0x00,0x12,0x03,0xfa,0x00,0x27,0x04,0xa4,0x00,0xbc,0x03,0xfa,0x00,0xa6,0x04,0xa4,0x00,0x12, +0x03,0xfa,0x00,0x27,0x04,0x5b,0x00,0xbc,0x02,0x82,0x00,0xa6,0x03,0xc4,0x00,0x12,0x01,0xf0,0x00,0x1e,0x06,0x08,0x00,0x00,0x04,0xb0,0x00,0x00,0x06,0xdf,0x00,0x5e,0x05,0x64,0x00,0x60,0x0a,0xa5,0x00,0x5e,0x07,0xf8,0x00,0x60,0x04,0x7b,0x00,0x19,0x04,0xb4,0x00,0x1e,0x05,0x83,0x00,0x1e,0x05,0xa6,0x00,0x05,0x06,0x79,0x00,0x0a, +0x06,0xe5,0x00,0x05,0x06,0x08,0x00,0x5e,0x04,0xb6,0x00,0x60,0x07,0xd4,0x00,0x5e,0x06,0x42,0x00,0x60,0x04,0x5c,0x00,0x1e,0x03,0x2e,0x00,0x0f,0x04,0x79,0x00,0x3d,0x03,0xee,0x00,0x0f,0x04,0xf8,0x00,0x12,0x03,0xd5,0xff,0xe8,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x04,0xea,0x00,0x55,0x04,0x2d,0x00,0x3e,0x04,0x7b,0x00,0x12, +0x04,0xb4,0x00,0x27,0x04,0x7b,0x00,0x12,0x04,0xb4,0x00,0x27,0x03,0xd9,0x00,0xbc,0x03,0x32,0x00,0xa6,0x03,0xcd,0x00,0x60,0x03,0x19,0x00,0x1e,0x03,0xc8,0x00,0x14,0x02,0xf2,0xff,0x76,0x04,0x24,0x00,0x38,0x04,0x2a,0x00,0x43,0x02,0x69,0x00,0x28,0x05,0x65,0x00,0x60,0x02,0x9f,0x00,0xa6,0x07,0xa9,0x00,0xa6,0x05,0x4d,0x00,0xa6, +0x02,0xc8,0x00,0xa6,0x04,0xa7,0x00,0xa6,0x04,0xea,0x00,0x2b,0x03,0xb0,0xff,0xec,0x06,0x08,0x00,0x0f,0x04,0x79,0x00,0x60,0x03,0x08,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0xa4,0x00,0x5a,0x04,0xa4,0x00,0x59,0x04,0x9f,0x00,0x60,0x03,0xc4,0x00,0x20,0x01,0xf0,0x00,0xa6,0x06,0x15,0x00,0xbc,0x04,0xc9,0x00,0xa6,0x02,0xf4,0x00,0xbc, +0x02,0xc8,0x00,0xa6,0x04,0xfa,0x00,0x5e,0x03,0xac,0x00,0x60,0x05,0xae,0x00,0xbc,0x03,0x17,0xff,0xe5,0x06,0x3d,0x00,0xbc,0x04,0xcd,0x00,0xa6,0x04,0xf4,0x00,0x00,0x03,0xb2,0x00,0x00,0x05,0x7d,0x00,0x01,0x04,0xb6,0x00,0x00,0x04,0xa4,0x00,0x12,0x03,0xfa,0x00,0x26,0x05,0xfc,0x00,0x12,0x04,0x87,0x00,0x19,0x04,0xc9,0x00,0x12, +0x02,0xc8,0x00,0x23,0x04,0x40,0x00,0x45,0x03,0x65,0x00,0x60,0x06,0x00,0xff,0xac,0x03,0x64,0x00,0x19,0x04,0x3e,0x00,0x3e,0x06,0xe4,0x00,0x90,0x03,0xe8,0x00,0x54,0x04,0x7b,0x00,0x52,0x07,0x2f,0x00,0xbd,0x02,0x21,0x00,0xbc,0x09,0x2b,0x00,0x1a,0x07,0x25,0x00,0x50,0x07,0x31,0x00,0x50,0x09,0x76,0x00,0x4a,0x07,0x11,0x00,0x50, +0x07,0x53,0x00,0x8d,0x07,0x53,0x00,0x81,0x07,0x07,0x00,0x2f,0x07,0x17,0x00,0x50,0x07,0x60,0x00,0x7b,0x04,0x21,0x00,0x50,0x03,0xc4,0x00,0xbc,0x04,0xf4,0x00,0x5e,0x05,0x9c,0x00,0xbc,0x07,0x2f,0x00,0xbc,0x05,0x9c,0x00,0x1a,0x07,0x8c,0x00,0x1a,0x01,0xf0,0x00,0xa6,0x03,0xb2,0x00,0x60,0x04,0xb6,0x00,0x60,0x06,0xe4,0x00,0xa6, +0x08,0x3c,0x00,0x5e,0x05,0x9c,0x00,0xbc,0x08,0x3c,0x00,0x5e,0x04,0xf4,0x00,0x68,0x04,0xf4,0x00,0x5e,0x06,0x5c,0x01,0x05,0x05,0x9c,0x00,0xbc,0x09,0x18,0x00,0x5e,0x07,0x60,0x00,0x48,0x04,0x27,0x00,0x00,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e, +0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x06,0xae,0x00,0x19,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x06,0xae,0x00,0x19,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x08,0x04,0x00,0xab,0x06,0x03,0x00,0x9b,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9b,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba, +0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x04,0xad,0x00,0x39,0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x39,0x06,0x03,0x00,0x82,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0xae,0x00,0x82,0x06,0x03,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0xae,0x00,0x9a,0x03,0x57,0xff,0xa6,0x03,0x57,0xff,0xa6, +0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x1c,0x00,0x02,0x04,0x1c,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xbf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x00,0x0c,0x66,0x00,0x73, +0x04,0x1f,0x00,0xbc,0x03,0x2b,0x00,0xa6,0x04,0x83,0x00,0x50,0x04,0x38,0x00,0x50,0x05,0xfe,0x00,0xbc,0x04,0xa6,0x00,0xa6,0x04,0xa4,0x00,0xbc,0x07,0x02,0x00,0x10,0x05,0x5a,0x00,0x10,0x05,0xfe,0x00,0xbc,0x06,0x04,0x00,0xa6,0x06,0xa5,0x00,0x3d,0x06,0x8a,0x00,0x3e,0x04,0xa4,0x00,0xbc,0x03,0xfa,0x00,0xa6,0x08,0x09,0x00,0x10, +0x06,0x73,0x00,0x10,0x08,0x57,0x00,0xbc,0x06,0xda,0x00,0xa6,0x05,0x7d,0x00,0xa6,0x04,0xb4,0x00,0x98,0x02,0x81,0x00,0x35,0x02,0x81,0x00,0x35,0x04,0xac,0x00,0x5c,0x05,0x2c,0x00,0xbc,0x03,0x44,0x00,0x1e,0x04,0xcc,0x00,0x81,0x04,0x21,0x00,0x77,0x04,0xa2,0x00,0x06,0x03,0xdf,0xff,0xbd,0x05,0xea,0x00,0xbc,0x06,0x68,0x00,0x60, +0x03,0x34,0x00,0x78,0x04,0xb0,0x00,0x60,0x03,0x70,0x00,0x49,0x01,0xae,0x00,0x06,0x02,0xf7,0x00,0x1c,0x04,0x40,0x00,0x79,0x04,0x68,0x00,0x21,0x01,0xbb,0x00,0x70,0x01,0xbc,0x00,0x70,0x01,0x78,0x00,0x27,0x01,0xbc,0x00,0x6f,0x03,0x00,0x00,0x30,0x03,0x00,0x01,0x2e,0x03,0x00,0x00,0x30,0x03,0x96,0x00,0x83,0x0b,0xe8,0x00,0x00, +0x0f,0xf4,0x00,0x00,0x02,0xb7,0x00,0x25,0x03,0x4c,0x00,0x5b,0x01,0x11,0xff,0xda,0x02,0x21,0xff,0xf7,0x03,0x1b,0x00,0x0c,0x03,0x72,0x00,0x5b,0x02,0x89,0x00,0x5a,0x03,0xf3,0x00,0x1e,0x04,0x38,0x00,0x5c,0x03,0x0f,0x00,0x64,0x03,0x0f,0x00,0x64,0x03,0x0f,0x00,0x64,0x03,0x0f,0x00,0x64,0x03,0x0f,0x00,0x64,0x03,0x0f,0x00,0x96, +0x03,0x0f,0x00,0x96,0x03,0x0f,0x00,0x96,0x03,0x0f,0x00,0x96,0x03,0x0f,0x00,0x96,0x03,0xc3,0x00,0x96,0x03,0xc3,0x00,0x96,0x03,0xc3,0x00,0x96,0x03,0xc3,0x00,0x96,0x03,0xc3,0x00,0x96,0x0a,0xa0,0x00,0xb4,0x04,0x50,0x00,0x40,0x06,0x18,0x00,0x32,0x07,0x57,0x00,0x26,0x07,0x2f,0x00,0xbc,0x05,0x29,0x00,0x16,0x03,0xb2,0x00,0x60, +0x04,0x87,0x00,0xa6,0x05,0xc2,0x00,0x6e,0x05,0xe0,0x00,0x75,0x03,0xe8,0xff,0x9a,0x02,0x81,0x00,0x35,0x05,0x4a,0x00,0x5e,0x04,0x26,0x00,0x60,0x05,0x72,0x00,0x5e,0x04,0x70,0x00,0x60,0x05,0x4a,0x00,0x5e,0x04,0x43,0x00,0x60,0x04,0x52,0x00,0x60,0x05,0xf3,0x00,0x5e,0x04,0xbd,0x00,0x28,0x04,0xa4,0x00,0x02,0x04,0x31,0x00,0x29, +0x05,0xfe,0x00,0x32,0x04,0xea,0xff,0xf9,0x06,0xa8,0x00,0x5a,0x03,0xa4,0x00,0x64,0x04,0x2f,0x00,0x13,0x05,0x10,0x00,0x29,0x02,0x81,0x00,0x35,0x04,0xb6,0x00,0x60,0x02,0xb7,0x00,0x00,0x02,0xc7,0x00,0x23,0x01,0xf0,0xff,0xf6,0x07,0x04,0x00,0xa6,0x04,0xa8,0x00,0xa6,0x04,0x87,0x00,0xa6,0x04,0x2d,0x00,0x64,0x04,0x2d,0x00,0x54, +0x04,0xb0,0x00,0x80,0x07,0x6c,0x00,0x60,0x07,0x6c,0x00,0x60,0x07,0x8d,0x00,0x60,0x07,0xf8,0x00,0x60,0x07,0xf8,0x00,0x60,0x04,0x61,0x00,0x7d,0x03,0xff,0x00,0xb0,0x02,0x42,0x00,0xa6,0x04,0x01,0x00,0xa6,0x03,0xaa,0x00,0x1c,0x04,0xde,0x00,0x1c,0x03,0xa3,0x00,0x3c,0x05,0x57,0x00,0x3c,0x01,0xfa,0xff,0x92,0x04,0x87,0x00,0x90, +0x04,0xcb,0x00,0x21,0x06,0xe4,0x00,0xa6,0x06,0xe4,0x00,0xa6,0x04,0xeb,0x00,0x0e,0x04,0x4e,0x00,0x0c,0x04,0x9c,0x00,0x0c,0x04,0x4e,0x00,0x0c,0x04,0x2c,0x00,0x1a,0x03,0xac,0xff,0x1f,0x04,0x2c,0xff,0x1f,0x03,0xac,0xfe,0xc8,0x03,0xdf,0x00,0x0e,0x02,0x6e,0x00,0x25,0x02,0xb2,0x00,0x64,0x01,0xf4,0x00,0x00,0x01,0xbf,0x00,0x00, +0x02,0xe4,0x00,0x00,0x04,0xa0,0x00,0x60,0x05,0x10,0x00,0x58,0x02,0x58,0x00,0xcf,0x02,0x58,0x00,0xcf,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x67,0x02,0x58,0x00,0xcf,0x02,0x58,0x00,0xcf, +0x02,0x58,0x00,0x8b,0x02,0x8a,0x00,0x0c,0x02,0x8a,0x00,0x0c,0x00,0x00,0xff,0xd4,0x02,0x4e,0xff,0xba,0x02,0x4e,0xff,0xba,0x02,0x4e,0xff,0xba,0x02,0x01,0x00,0x05,0x02,0x01,0x00,0x05,0x0d,0x74,0x00,0x52,0x07,0xf5,0x00,0x32,0x06,0xf9,0x00,0x32,0x08,0x63,0x00,0x32,0x02,0x4e,0x00,0x29,0x02,0x4e,0xff,0xba,0x02,0x9e,0x00,0x05, +0x03,0x2a,0x00,0x9a,0x02,0x0c,0x00,0x05,0x02,0x26,0x00,0x15,0x02,0x4e,0xff,0xba,0x02,0x4e,0x00,0x21,0x02,0x4e,0xff,0xba,0x02,0x4e,0x00,0x29,0x02,0x4e,0xff,0xba,0x02,0x4e,0xff,0xf8,0x02,0x4e,0xff,0xba,0x02,0x4e,0x00,0x69,0x02,0x4e,0xff,0xba,0x02,0x4e,0xff,0xba,0x00,0x00,0xff,0xe7,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba, +0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0x12,0x00,0xc4,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x0a,0xb1,0x00,0x9b,0x08,0x04,0xff,0xba,0x08,0x04,0xff,0xba,0x0a,0xb0,0x00,0x9b,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0x00,0xab,0x04,0x02,0x00,0xab,0x03,0x57,0x00,0x00, +0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x8c,0x00,0x00,0xfe,0x45,0x02,0xdb,0x00,0x14,0x05,0xfa,0x00,0xbc,0x04,0xcd,0x00,0xa6,0x05,0xae,0xff,0x98,0x04,0x9e,0xff,0x5c,0x0a,0x08,0x00,0x0f,0x08,0x46,0x00,0x12,0x05,0x8c,0x00,0x0f,0x04,0x60,0x00,0x12,0x05,0x9e,0x00,0x10,0x04,0x65,0x00,0x10,0x0a,0xa5,0x00,0x5e,0x07,0xf8,0x00,0x60, +0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x03,0x1b,0x00,0x0c,0x02,0x89,0x00,0x5a,0x04,0xf2,0x00,0x28,0x00,0x00,0xff,0x38,0x05,0x76,0x00,0x50,0x04,0x50,0x00,0xbc,0x02,0xb0,0x00,0x66,0x02,0x6a,0x00,0x66,0x01,0x4c,0x00,0x66,0x03,0xfa,0x00,0x66,0x02,0xb0,0x00,0x66,0x02,0xbe,0x00,0x66,0x02,0x09,0x00,0x3c,0x01,0x9c,0x00,0x0a, +0x03,0xb1,0x00,0x1e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x01,0xbc,0x00,0x70,0x04,0x31,0x00,0x29,0x03,0x68,0x00,0x20,0x04,0xb8,0x00,0x1a,0x04,0x96,0x00,0xbc,0x04,0x62,0x00,0xa7,0x07,0xb2,0x00,0x5a, +0x06,0x77,0x00,0x77,0x06,0x74,0x00,0xa6,0x06,0x50,0x00,0xa6,0x06,0x89,0x00,0x60,0x07,0x8a,0x00,0x90,0x05,0x03,0x00,0x35,0x05,0x7c,0x00,0x68,0x04,0xcf,0x00,0x50,0x03,0x25,0x00,0x50,0x07,0x6e,0x00,0x3c,0x09,0x01,0x00,0x54,0x03,0x85,0x00,0x74,0x09,0x3d,0xff,0xf8,0x04,0x02,0x00,0x65,0x06,0xae,0x00,0xab,0x07,0x59,0x00,0xab, +0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x03,0x57,0x00,0x00,0x06,0x03,0x00,0x9a,0x08,0x04,0x00,0xab,0x06,0x03,0x00,0x9b,0x05,0x58,0x00,0x9b,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x2b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x32,0x00,0x00,0xfc,0xe6,0x00,0x00,0xfb,0x6b,0x00,0x00,0xfb,0x9b, +0x00,0x00,0xfc,0x00,0x00,0x00,0xfd,0x71,0x00,0x00,0xfd,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xfe,0x04,0x64,0x00,0xdc,0x00,0x00,0xfe,0xd4,0x04,0xad,0x00,0x65,0x04,0xad,0xff,0xba,0x04,0xae,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba, +0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x03,0xf1,0xff,0xba,0x03,0xf1,0xff,0xba,0x00,0x00,0xfe,0x84,0x03,0x57,0x00,0x00,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9b,0x04,0x02,0xff,0xba, +0x04,0x02,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0x58,0x00,0xab,0x02,0x58,0x00,0xd4,0x02,0x58,0x00,0x66,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x7f,0x02,0x58,0x00,0x4f,0x02,0x58,0x00,0x35,0x02,0x58,0x00,0x1b,0x02,0x58,0x00,0x1b,0x02,0x58,0x00,0x35,0x02,0x58,0x00,0x53,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x59,0x02,0x58,0x00,0x2b, +0x02,0x58,0x00,0x4d,0x0c,0x05,0x00,0xa1,0x0c,0x05,0x00,0xa1,0x07,0x0a,0x00,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0a,0x00,0x73,0x07,0x0a,0x00,0x73,0x03,0x4d,0x00,0xf2,0x03,0x4d,0x01,0x2f,0x03,0x4d,0x00,0x76,0x03,0x4d,0x00,0x25,0x03,0x4d,0x00,0xab,0x03,0x4d,0x00,0x62,0x03,0x4d,0x00,0x42,0x03,0x4d,0x00,0x1c, +0x03,0x4d,0x00,0x1d,0x03,0x4d,0x00,0x3c,0x03,0x4d,0x00,0x69,0x03,0x4d,0x00,0x3c,0x03,0x4d,0x00,0x6f,0x03,0x4d,0x00,0x41,0x03,0x4d,0x00,0x6b,0x03,0x57,0x00,0x39,0x05,0x58,0x00,0x9a,0x04,0xf1,0x00,0x55,0x05,0x26,0x00,0x78,0x05,0x30,0x00,0x78,0x07,0x1a,0x00,0x82,0x05,0x27,0x00,0x64,0x05,0x0b,0x00,0x6e,0x06,0x62,0x00,0x28, +0x07,0xce,0x00,0x82,0x05,0x34,0x00,0x82,0x05,0x0b,0x00,0x6e,0x08,0x8a,0x00,0x82,0x05,0x14,0x00,0x82,0x05,0x14,0x00,0xa0,0x07,0x7a,0x00,0x82,0x05,0x0b,0x00,0x6e,0x05,0x63,0x00,0x64,0x06,0x52,0x00,0x82,0x05,0x1a,0x00,0xa0,0x06,0x28,0x00,0x6e,0x06,0xc3,0x00,0x0a,0x07,0x4d,0x00,0x55,0x05,0x1d,0x00,0x5a,0x06,0x24,0x00,0x82, +0x05,0x31,0x00,0x6e,0x05,0x93,0x00,0x32,0x04,0xf8,0x00,0xa0,0x05,0x95,0x00,0x82,0x05,0x00,0x00,0x6e,0x05,0x45,0x00,0x50,0x05,0x7b,0x00,0x32,0x05,0x00,0x00,0xa0,0x06,0x3a,0x00,0x50,0x04,0xc8,0x00,0x50,0x05,0x4e,0x00,0x82,0x06,0x48,0x00,0x64,0x04,0xf2,0x00,0x64,0x05,0x01,0x00,0x64,0x04,0x8d,0x00,0x6e,0x06,0x47,0x00,0x6e, +0x05,0x23,0x00,0x76,0x05,0x31,0x00,0xa0,0x05,0x30,0x00,0x78,0x05,0x96,0x00,0x82,0x03,0x93,0x00,0x00,0x04,0x39,0x00,0x00,0x05,0x23,0x00,0x62,0x06,0x48,0x00,0x64,0x06,0x36,0x00,0x78,0x04,0x56,0x00,0xbe,0x00,0x00,0x14,0xe0,0x19,0x01,0x25,0x01,0x01,0x01,0x22,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x0c,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x01,0x01,0x0c,0x2c,0x01,0x01,0x24,0x01,0x01,0x01,0x03,0x0c,0x01,0x01,0x01,0x01,0x01,0x09,0x22,0x27,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x2e,0x01,0x0c,0x2e,0x0c,0x01,0x01,0x0c,0x01,0x0d,0x0c,0x0c,0x0c, +0x2e,0x01,0x01,0x01,0x0c,0x19,0x0c,0x01,0x01,0x16,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x01,0x03,0x0c,0x09,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x23,0x01,0x2a,0x2a,0x01,0x01,0x24,0x1c,0x01,0x0c,0x2a, +0x01,0x1c,0x1c,0x01,0x0c,0x0f,0x01,0x01,0x01,0x01,0x01,0x0c,0x04,0x0c,0x01,0x01,0x01,0x01,0x1f,0x01,0x1c,0x27,0x01,0x01,0x0e,0x01,0x01,0x0c,0x01,0x08,0x01,0x01,0x01,0x01,0x19,0x19,0x01,0x01,0x01,0x0c,0x1b,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x09, +0x09,0x09,0x01,0x01,0x2f,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0e,0x01,0x01,0x01,0x16,0x01,0x01,0x0c,0x0c,0x01,0x01,0x0c,0x01,0x01,0x01,0x10,0x10,0x01,0x01,0x01,0x01,0x2c,0x2e,0x01,0x01,0x01,0x0d,0x01,0x0d,0x01,0x2e,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x03,0x0c,0x03,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x0c,0x09,0x0c,0x01,0x16,0x01,0x16,0x01,0x01,0x0e,0x24,0x0c,0x01,0x15,0x29,0x0d,0x01,0x01,0x01,0x01,0x05,0x0c,0x01,0x19,0x01,0x01,0x12,0x19,0x19,0x19,0x19,0x19,0x01,0x01,0x0d,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2e,0x2c, +0x2e,0x2c,0x2e,0x01,0x0c,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x24,0x01,0x01,0x0c,0x0c,0x01,0x01,0x03,0x0c,0x03,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x27,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x04,0x0c,0x0c,0x0c,0x27,0x0c,0x27,0x0c,0x27,0x0c,0x0c,0x01, +0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x03,0x01,0x0c,0x01,0x01,0x01,0x01,0x0c,0x01,0x0e,0x0c,0x01,0x0c,0x24,0x01,0x0c,0x01,0x0c,0x01,0x1b,0x01,0x0c,0x0c,0x01,0x01,0x04,0x0e,0x01,0x01,0x0c,0x0c,0x27,0x0c,0x01, +0x0e,0x0d,0x01,0x0c,0x0c,0x0c,0x0d,0x01,0x01,0x01,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x0d,0x0d,0x07,0x07,0x01,0x1b,0x01,0x01,0x0c,0x01,0x01,0x0d,0x01,0x01,0x0c,0x01,0x22,0x20,0x0e,0x1a,0x01,0x1f,0x01,0x2c,0x01,0x22,0x01,0x0c,0x01,0x0c,0x0d,0x01,0x0e,0x26,0x26,0x26,0x0c,0x26,0x0d, +0x0e,0x0c,0x0e,0x0c,0x01,0x01,0x01,0x2c,0x01,0x0e,0x0c,0x0e,0x26,0x22,0x01,0x01,0x01,0x01,0x01,0x01,0x0e,0x0c,0x01,0x01,0x01,0x0e,0x2d,0x0c,0x0c,0x01,0x0e,0x01,0x01,0x01,0x2e,0x01,0x01,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x0c,0x25,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x25,0x0c, +0x25,0x0c,0x25,0x0c,0x25,0x0c,0x25,0x09,0x0c,0x09,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x07,0x26,0x01,0x24,0x01,0x01,0x23,0x01,0x28,0x01,0x29,0x22,0x01,0x02,0x22,0x0e,0x0c,0x0e,0x0c,0x0e,0x01,0x02,0x01,0x0c,0x20,0x0c,0x01,0x01,0x01,0x0c,0x01,0x01,0x01, +0x01,0x24,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x0d,0x01,0x01,0x2e,0x01,0x2e,0x01,0x2e,0x01,0x2e,0x01,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x2c,0x2e,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x01,0x01,0x01,0x01, +0x0c,0x01,0x0c,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x01,0x0d,0x01,0x0d,0x03,0x0c,0x03,0x0c,0x03,0x0c,0x03,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x22,0x19,0x22,0x19,0x27,0x0c,0x27,0x0c,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x16,0x01,0x16,0x01,0x16,0x0c,0x01,0x0c,0x01,0x01,0x01,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x01,0x01,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x22,0x22,0x22, +0x22,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2a,0x2a,0x02,0x02,0x19,0x01,0x19,0x19,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, +0x0d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x24,0x24,0x01,0x01,0x0c,0x0c,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x01,0x01,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01, +0x01,0x01,0x0d,0x0d,0x0d,0x0d,0x0d,0x01,0x01,0x29,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x17,0x01,0x01,0x01,0x01,0x01,0x01,0x2d,0x01,0x1e,0x01,0x01,0x01,0x01,0x0d,0x01,0x01,0x22,0x05,0x01,0x01,0x01,0x04,0x01,0x04,0x01,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x32,0x1a,0x15,0x1a,0x15,0x01,0x22,0x25,0x01,0x01,0x16,0x0a,0x0a,0x01,0x01,0x01,0x01,0x1a,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x13,0x15,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2e,0x2c,0x2e,0x01,0x0c, +0x01,0x01,0x01,0x01,0x0a,0x01,0x01,0x01,0x13,0x15,0x2c,0x2e,0x01,0x01,0x03,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x09,0x0c,0x09,0x0c,0x01,0x01,0x01,0x0c,0x30,0x01,0x01,0x01,0x16,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x2e,0x01,0x2e,0x2d,0x2d,0x2e,0x2e,0x01,0x29,0x01,0x01,0x01,0x01,0x0a,0x2e,0x2e,0x01,0x19,0x01,0x01,0x01,0x01,0x16,0x01,0x28,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x32,0x03,0x01,0x01,0x1f,0x1a,0x1a,0x01,0x01,0x01,0x19,0x01,0x01, +0x01,0x16,0x2b,0x01,0x01,0x1b,0x1b,0x1b,0x2d,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x2e,0x1b,0x1b,0x07,0x0b,0x16,0x17,0x01,0x01,0x01,0x01,0x25,0x02,0x02,0x01,0x22,0x01,0x2e,0x01,0x1e,0x01,0x01,0x01,0x01,0x07,0x01,0x04,0x2a,0x01,0x01,0x01,0x02,0x01,0x01,0x19,0x01,0x01,0x01,0x0a,0x1a,0x01,0x01,0x26,0x01,0x01,0x01,0x01, +0x07,0x01,0x01,0x01,0x01,0x01,0x0c,0x2e,0x01,0x01,0x01,0x01,0x01,0x08,0x05,0x01,0x01,0x01,0x01,0x07,0x01,0x0b,0x1f,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x01,0x01,0x1f,0x01,0x01,0x0c,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0b,0x01,0x01,0x22,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x26,0x01,0x01,0x2f,0x01,0x0a, +0x2d,0x01,0x01,0x01,0x01,0x2c,0x01,0x09,0x01,0x01,0x10,0x01,0x10,0x01,0x0d,0x0e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x0e,0x0d,0x26,0x01,0x01,0x07,0x26,0x07,0x26,0x0c,0x0c,0x01,0x0c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x20,0x0c,0x1f,0x01,0x25,0x2e,0x01,0x01, +0x01,0x0a,0x01,0x01,0x26,0x01,0x30,0x01,0x01,0x22,0x15,0x2f,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x2d,0x2d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x16,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30, +0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30, +0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2f,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x01,0x01,0x1f,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x0d,0x26,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x0c,0x16,0x01,0x01,0x01,0x0c,0x01,0x0e,0x01,0x22,0x01,0x2c,0x29,0x01,0x24,0x01,0x01, +0x01,0x01,0x2f,0x14,0x01,0x19,0x1f,0x01,0x01,0x01,0x1c,0x01,0x01,0x01,0x01,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x25,0x25,0x01,0x01,0x01,0x02,0x01,0x14,0x01,0x14,0x14,0x01,0x01,0x01,0x01,0x02,0x01,0x25,0x01,0x01,0x14,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x26,0x01,0x01,0x30,0x01,0x05,0x01, +0x01,0x01,0x19,0x01,0x01,0x26,0x2e,0x01,0x01,0x01,0x01,0x01,0x2a,0x18,0x18,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x16,0x2f,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x0d,0x01,0x01,0x01,0x0c,0x2e,0x0c,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x16,0x2e,0x01,0x01,0x01,0x01,0x28,0x01,0x01,0x01,0x01,0x0c,0x2e,0x0c,0x2e,0x0c,0x01,0x0d,0x0c, +0x0c,0x01,0x01,0x01,0x19,0x01,0x16,0x01,0x2e,0x2e,0x01,0x01,0x26,0x01,0x01,0x2d,0x03,0x0c,0x01,0x01,0x01,0x01,0x01,0x25,0x1f,0x01,0x01,0x01,0x01,0x01,0x1b,0x1b,0x01,0x01,0x01,0x1e,0x02,0x02,0x01,0x01,0x1c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2a,0x01,0x01,0x2d,0x2d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x14, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x01, +0x01,0x01,0x10,0x10,0x01,0x10,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x10,0x01,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x25,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x2c,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x19,0x19,0x19,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x30,0x01,0x01,0x01,0x01,0x01,0x19,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x19,0x19,0x19,0x19,0x01,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01, +0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2c,0x05,0x01,0x01,0x01,0x0c,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x30,0x01,0x01, +0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x2c,0x01,0x01,0x2c,0x01,0x01,0x01,0x30,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x01,0x01,0x01,0x24,0x01,0x01,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x01, +0x01,0x01,0x01,0x0d,0x01,0x1b,0x26,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2a,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x22,0x29,0x13,0x01,0x01,0x04,0x1e,0x01,0x01,0x06,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x08,0x2f,0x01,0x2e,0x27,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x13,0x01,0x13,0x01,0x27,0x32,0x01,0x1d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x1b,0x13,0x13,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x10,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x01,0x2f,0x01,0x01,0x01,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2b,0x01,0x01,0x01,0x01,0x08,0x2b,0x17,0x17,0x17,0x19,0x01,0x12,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x01,0x01,0x01, +0x01,0x2b,0x01,0x08,0x08,0x08,0x08,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x01,0x08,0x01,0x01,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x2b,0x01,0x01,0x01,0x08,0x2b,0x01,0x01,0x01,0x2b,0x01,0x01,0x01,0x01,0x01,0x01,0xfd,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x01,0x20,0x01,0x09,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x01,0x20,0x01,0x2c,0x01,0x01,0x01,0x01,0x28,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x18,0x01,0x01,0x1f,0x10, +0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x01,0x0c,0x01,0x28,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x24,0x01,0x01,0x01,0x01,0x2f,0x01,0x24,0x24,0x24,0x0f,0x24,0x30,0x24,0x0e,0x02,0x24,0x17,0x01,0x24,0x0e,0x26,0x26,0x16,0x01,0x24,0x0e,0x0e,0x01,0x24,0x24,0x24,0x24,0x24,0x16,0x30,0x01,0x24, +0x01,0x17,0x01,0x01,0x24,0x24,0x16,0x01,0x09,0x16,0x27,0x09,0x01,0x0d,0x09,0x11,0x16,0x1f,0x01,0x01,0x1b,0x09,0x01,0x01,0x27,0x01,0x0a,0x01,0x27,0x01,0x2b,0x01,0x15,0x01,0x0a,0x2b,0x01,0x01,0x01,0x01,0x0a,0x01,0x11,0x01,0x01,0x06,0x01,0x01,0x1d,0x01,0x01,0x01,0x01,0x01,0x01,0x16,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x0c,0x30,0x01,0x2b,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x0c,0x01,0x04,0x01,0x2e,0x30,0x04,0x01,0x0c,0x09,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x23,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x02,0x2d,0x01,0x01,0x31,0x01,0x01,0x01,0x1d,0x01,0x01,0x01,0x01,0x01,0x01,0x15,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x19,0x19,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x2d,0x2d,0x2d,0x2d,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1d,0x1d,0x1d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1d,0x01,0x01,0x01,0x01,0x31,0x01,0x19,0x31,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x1e,0x01,0x01,0x2d,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x16,0x01,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x01,0x01,0x01,0x32,0x01,0x01,0x01,0x01,0x01,0x01,0x2d,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x24,0x0d,0x01,0x01,0x0c,0x01,0x01,0x03,0x01, +0x01,0x01,0x01,0x22,0x22,0x01,0x2c,0x24,0x27,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x09,0x09,0x01,0x01,0x0c,0x0c,0x01,0x01,0x0c,0x0c,0x01,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x2c,0x2e,0x01,0x0c,0x03,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x01, +0x01,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2c,0x01,0x01,0x2c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x30,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x07,0x01,0x01,0x01,0x01,0x0c,0x01,0x25,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x16,0x01,0x01,0x0a,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x28,0x01,0x03,0x01,0x01,0x25,0x01,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x01,0x01,0x14,0x01,0x01,0x01,0x01,0x15,0x01,0x01,0x31,0x31,0x01,0x01,0x01,0x18,0x01,0x01,0x26,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x05, +0x01,0x2d,0x1d,0x0b,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x12,0x01,0x2c,0x01,0x07,0x01,0x01,0x01,0x2d,0x01,0x01,0x01,0x32,0x01,0x01,0x01,0x01,0x1f,0x01,0x01,0x01,0x01,0x16,0x01,0x1b,0x01,0x29,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x23,0x01,0x01,0x12,0x01,0x01,0x0d,0x27,0x01,0x01,0x25,0x20,0x01,0x17,0x01,0x01,0x17, +0x17,0x01,0x20,0x17,0x17,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x20,0x20,0x01,0x01,0x01,0x24,0x01,0x01,0x01,0x01,0x1e,0x32,0x01,0x15,0x01,0x01,0x01,0x02,0x16,0x01,0x1d,0x01,0x01,0x01,0x01,0x02,0x01,0x11,0x01,0x01,0x01,0x01,0x01,0x26,0x01,0x01,0x01,0x01,0x01,0x22,0x01,0x01,0x01,0x19,0x19,0x19,0x19,0x19,0x19,0x01,0x19,0x19, +0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0b,0x01,0x1e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x17,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1e,0x01,0x01,0x01,0x01,0x01,0x12,0x01,0x11,0x2b,0x01,0x01,0x01,0x01,0x01,0x01,0x2a,0x01,0x01,0x01,0x01,0x01, +0x30,0x01,0x01,0x01,0x01,0x01,0x1b,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1e,0x01,0x01,0x01,0x01,0x01,0x14,0x29,0x14,0x14,0x14,0x01,0x30,0x30,0x2c,0x01,0x01,0x19,0x19,0x19,0x01,0x19,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x07,0x01,0x07,0x01,0x01,0x01,0x01,0x01,0x09,0x16,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x25,0x01,0x07,0x01,0x01,0x01,0x01,0x01,0x17,0x01,0x01,0x01,0x01,0x01,0x01,0x22,0x01,0x0c,0x01, +0x01,0x01,0x01,0x24,0x01,0x01,0x01,0x01,0x08,0x01,0x25,0x01,0x01,0x01,0x01,0x17,0x01,0x01,0x26,0x01,0x06,0x1b,0x01,0x01,0x01,0x1b,0x01,0x1a,0x01,0x01,0x01,0x01,0x01,0x01,0x1a,0x25,0x01,0x01,0x25,0x01,0x20,0x01,0x17,0x1a,0x01,0x15,0x2c,0x2c,0x23,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27, +0x27,0x27,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x32,0x32, +0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x2b,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x14,0x01,0x01,0x01,0x22,0x01,0x01,0x2d,0x01,0x01,0x01,0x01,0x26,0x2b,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x02,0x01,0x02,0x2e,0x01,0x01,0x01,0x01,0x01,0x28,0x18,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x22,0x19,0x27,0x01,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1d,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x32,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x31,0x01,0x01,0x01,0x01,0x01,0x01,0x17,0x1a,0x01,0x01,0x01,0x2c,0x2e,0x01,0x02,0x03, +0x01,0x01,0x01,0x01,0x01,0x01,0x2f,0x22,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x06,0x01,0x1f,0x07,0x07,0x01,0x17,0x01,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x0d,0x12,0x01,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x1b,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x25,0x25,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1f,0x01,0x01,0x01,0x13,0x07,0x26,0x01,0x01,0x01,0x07,0x01,0x01,0x01,0x01, +0x02,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0a,0x01,0x01,0x02,0x13,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x20,0x01,0x01,0x01,0x20,0x01,0x0d,0x01,0x01,0x01,0x01,0x07,0x24,0x04,0x01,0x01,0x10,0x0c,0x2e,0x01,0x25,0x01,0x01,0x07,0x01,0x01,0x01,0x01,0x08,0x08,0x0a,0x01,0x01,0x16,0x10,0x01,0x01,0x0d,0x01,0x01,0x01,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2f, +0x2c,0x11,0x01,0x01,0x10,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x22,0x01,0x01,0x20,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x2c,0x01, +0x01,0x01,0x01,0x01,0x01,0x24,0x03,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x01,0x0b,0x01,0x01,0x01,0x01,0x0a,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x1c,0x01,0x01,0x01,0x01,0x0d,0x2d,0x01,0x2a,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x2c,0x2c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x2c,0x01,0x01,0x2c,0x01,0x01,0x2c,0x02,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, +0x1e,0x1e,0x1e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x32,0x01,0x18,0x30,0x01,0x01,0x18,0x26,0x01,0x01,0x18,0x18,0x01,0x01,0x1e,0x01,0x2b,0x01,0x01,0x1d,0x30,0x01,0x22,0x31,0x01,0x01,0x1c,0x01,0x01,0x2f,0x01,0x08,0x01,0x01, +0x1e,0x08,0x08,0x30,0x01,0x01,0x01,0x01,0x08,0x08,0x01,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x0c,0x00,0xf8,0x08,0xff,0x00,0x08,0x00,0x09,0xff,0xfe,0x00,0x09,0x00,0x0a,0xff,0xfe,0x00,0x0a,0x00,0x0a,0xff,0xfe,0x00,0x0b,0x00,0x0b,0xff,0xfe,0x00,0x0c,0x00,0x0c,0xff,0xfd,0x00,0x0d,0x00,0x0e,0xff,0xfd, +0x00,0x0e,0x00,0x0f,0xff,0xfc,0x00,0x0f,0x00,0x10,0xff,0xfc,0x00,0x10,0x00,0x11,0xff,0xfc,0x00,0x11,0x00,0x12,0xff,0xfb,0x00,0x12,0x00,0x14,0xff,0xfb,0x00,0x13,0x00,0x14,0xff,0xfb,0x00,0x14,0x00,0x17,0xff,0xfb,0x00,0x15,0x00,0x18,0xff,0xfa,0x00,0x16,0x00,0x18,0xff,0xfa,0x00,0x17,0x00,0x19,0xff,0xfa,0x00,0x18,0x00,0x1a, +0xff,0xfa,0x00,0x19,0x00,0x1c,0xff,0xf9,0x00,0x1a,0x00,0x1d,0xff,0xf9,0x00,0x1b,0x00,0x1e,0xff,0xf9,0x00,0x1c,0x00,0x1f,0xff,0xf9,0x00,0x1d,0x00,0x20,0xff,0xf8,0x00,0x1e,0x00,0x21,0xff,0xf8,0x00,0x1f,0x00,0x22,0xff,0xf8,0x00,0x20,0x00,0x24,0xff,0xf7,0x00,0x21,0x00,0x24,0xff,0xf7,0x00,0x22,0x00,0x25,0xff,0xf7,0x00,0x23, +0x00,0x26,0xff,0xf7,0x00,0x24,0x00,0x27,0xff,0xf7,0x00,0x25,0x00,0x28,0xff,0xf6,0x00,0x26,0x00,0x29,0xff,0xf6,0x00,0x27,0x00,0x2a,0xff,0xf6,0x00,0x28,0x00,0x2b,0xff,0xf5,0x00,0x29,0x00,0x2c,0xff,0xf5,0x00,0x2a,0x00,0x2e,0xff,0xf5,0x00,0x2b,0x00,0x2f,0xff,0xf4,0x00,0x2c,0x00,0x30,0xff,0xf4,0x00,0x2d,0x00,0x31,0xff,0xf4, +0x00,0x2e,0x00,0x32,0xff,0xf4,0x00,0x2f,0x00,0x32,0xff,0xf4,0x00,0x30,0x00,0x34,0xff,0xf3,0x00,0x31,0x00,0x35,0xff,0xf3,0x00,0x32,0x00,0x36,0xff,0xf3,0x00,0x33,0x00,0x37,0xff,0xf3,0x00,0x34,0x00,0x38,0xff,0xf2,0x00,0x35,0x00,0x39,0xff,0xf2,0x00,0x36,0x00,0x3a,0xff,0xf2,0x00,0x37,0x00,0x3c,0xff,0xf2,0x00,0x38,0x00,0x3c, +0xff,0xf2,0x00,0x39,0x00,0x3d,0xff,0xf1,0x00,0x3a,0x00,0x3e,0xff,0xf1,0x00,0x3b,0x00,0x3f,0xff,0xf1,0x00,0x3c,0x00,0x41,0xff,0xf0,0x00,0x3d,0x00,0x42,0xff,0xf0,0x00,0x3e,0x00,0x44,0xff,0xf0,0x00,0x3f,0x00,0x45,0xff,0xf0,0x00,0x40,0x00,0x45,0xff,0xef,0x00,0x41,0x00,0x46,0xff,0xef,0x00,0x42,0x00,0x47,0xff,0xef,0x00,0x43, +0x00,0x48,0xff,0xef,0x00,0x44,0x00,0x49,0xff,0xee,0x00,0x45,0x00,0x4a,0xff,0xee,0x00,0x46,0x00,0x4b,0xff,0xee,0x00,0x47,0x00,0x4c,0xff,0xee,0x00,0x48,0x00,0x4d,0xff,0xed,0x00,0x49,0x00,0x4f,0xff,0xed,0x00,0x4a,0x00,0x50,0xff,0xed,0x00,0x4b,0x00,0x51,0xff,0xed,0x00,0x4c,0x00,0x51,0xff,0xec,0x00,0x4d,0x00,0x52,0xff,0xec, +0x00,0x4e,0x00,0x54,0xff,0xec,0x00,0x4f,0x00,0x55,0xff,0xec,0x00,0x50,0x00,0x56,0xff,0xec,0x00,0x51,0x00,0x57,0xff,0xeb,0x00,0x52,0x00,0x58,0xff,0xeb,0x00,0x53,0x00,0x59,0xff,0xeb,0x00,0x54,0x00,0x5a,0xff,0xea,0x00,0x55,0x00,0x5b,0xff,0xea,0x00,0x56,0x00,0x5c,0xff,0xea,0x00,0x57,0x00,0x5e,0xff,0xea,0x00,0x58,0x00,0x5e, +0xff,0xea,0x00,0x59,0x00,0x5f,0xff,0xe9,0x00,0x5a,0x00,0x61,0xff,0xe9,0x00,0x5b,0x00,0x61,0xff,0xe9,0x00,0x5c,0x00,0x63,0xff,0xe8,0x00,0x5d,0x00,0x64,0xff,0xe8,0x00,0x5e,0x00,0x65,0xff,0xe8,0x00,0x5f,0x00,0x66,0xff,0xe7,0x00,0x60,0x00,0x67,0xff,0xe7,0x00,0x61,0x00,0x69,0xff,0xe7,0x00,0x62,0x00,0x69,0xff,0xe7,0x00,0x63, +0x00,0x6a,0xff,0xe7,0x00,0x64,0x00,0x6b,0xff,0xe6,0x00,0x65,0x00,0x6d,0xff,0xe6,0x00,0x66,0x00,0x6e,0xff,0xe6,0x00,0x67,0x00,0x6f,0xff,0xe6,0x00,0x68,0x00,0x70,0xff,0xe5,0x00,0x69,0x00,0x71,0xff,0xe5,0x00,0x6a,0x00,0x72,0xff,0xe5,0x00,0x6b,0x00,0x73,0xff,0xe5,0x00,0x6c,0x00,0x75,0xff,0xe4,0x00,0x6d,0x00,0x76,0xff,0xe4, +0x00,0x6e,0x00,0x76,0xff,0xe4,0x00,0x6f,0x00,0x77,0xff,0xe4,0x00,0x70,0x00,0x79,0xff,0xe4,0x00,0x71,0x00,0x79,0xff,0xe3,0x00,0x72,0x00,0x7b,0xff,0xe3,0x00,0x73,0x00,0x7b,0xff,0xe3,0x00,0x74,0x00,0x7c,0xff,0xe3,0x00,0x75,0x00,0x7d,0xff,0xe2,0x00,0x76,0x00,0x7e,0xff,0xe2,0x00,0x77,0x00,0x80,0xff,0xe2,0x00,0x78,0x00,0x80, +0xff,0xe1,0x00,0x79,0x00,0x82,0xff,0xe1,0x00,0x7a,0x00,0x82,0xff,0xe1,0x00,0x7b,0x00,0x84,0xff,0xe1,0x00,0x7c,0x00,0x85,0xff,0xe1,0x00,0x7d,0x00,0x86,0xff,0xe0,0x00,0x7e,0x00,0x87,0xff,0xe0,0x00,0x7f,0x00,0x88,0xff,0xe0,0x00,0x80,0x00,0x89,0xff,0xdf,0x00,0x81,0x00,0x8a,0xff,0xdf,0x00,0x82,0x00,0x8c,0xff,0xdf,0x00,0x83, +0x00,0x8d,0xff,0xdf,0x00,0x84,0x00,0x8e,0xff,0xde,0x00,0x85,0x00,0x8e,0xff,0xdf,0x00,0x86,0x00,0x8f,0xff,0xde,0x00,0x87,0x00,0x90,0xff,0xde,0x00,0x88,0x00,0x92,0xff,0xde,0x00,0x89,0x00,0x93,0xff,0xdd,0x00,0x8a,0x00,0x94,0xff,0xdd,0x00,0x8b,0x00,0x95,0xff,0xdd,0x00,0x8c,0x00,0x96,0xff,0xdc,0x00,0x8d,0x00,0x97,0xff,0xdc, +0x00,0x8e,0x00,0x99,0xff,0xdc,0x00,0x8f,0x00,0x9a,0xff,0xdc,0x00,0x90,0x00,0x9a,0xff,0xdb,0x00,0x91,0x00,0x9b,0xff,0xdb,0x00,0x92,0x00,0x9c,0xff,0xdb,0x00,0x93,0x00,0x9e,0xff,0xdb,0x00,0x94,0x00,0x9f,0xff,0xda,0x00,0x95,0x00,0xa0,0xff,0xda,0x00,0x96,0x00,0xa1,0xff,0xda,0x00,0x97,0x00,0xa2,0xff,0xda,0x00,0x98,0x00,0xa3, +0xff,0xd9,0x00,0x99,0x00,0xa4,0xff,0xd9,0x00,0x9a,0x00,0xa5,0xff,0xd9,0x00,0x9b,0x00,0xa6,0xff,0xd9,0x00,0x9c,0x00,0xa7,0xff,0xd8,0x00,0x9d,0x00,0xa8,0xff,0xd8,0x00,0x9e,0x00,0xa9,0xff,0xd8,0x00,0x9f,0x00,0xab,0xff,0xd8,0x00,0xa0,0x00,0xab,0xff,0xd7,0x00,0xa1,0x00,0xad,0xff,0xd7,0x00,0xa2,0x00,0xae,0xff,0xd7,0x00,0xa3, +0x00,0xaf,0xff,0xd7,0x00,0xa4,0x00,0xb1,0xff,0xd6,0x00,0xa5,0x00,0xb1,0xff,0xd6,0x00,0xa6,0x00,0xb2,0xff,0xd6,0x00,0xa7,0x00,0xb3,0xff,0xd6,0x00,0xa8,0x00,0xb3,0xff,0xd5,0x00,0xa9,0x00,0xb6,0xff,0xd5,0x00,0xaa,0x00,0xb7,0xff,0xd5,0x00,0xab,0x00,0xb8,0xff,0xd5,0x00,0xac,0x00,0xb8,0xff,0xd4,0x00,0xad,0x00,0xb9,0xff,0xd4, +0x00,0xae,0x00,0xba,0xff,0xd4,0x00,0xaf,0x00,0xbb,0xff,0xd3,0x00,0xb0,0x00,0xbe,0xff,0xd3,0x00,0xb1,0x00,0xbe,0xff,0xd3,0x00,0xb2,0x00,0xbf,0xff,0xd3,0x00,0xb3,0x00,0xc0,0xff,0xd3,0x00,0xb4,0x00,0xc1,0xff,0xd2,0x00,0xb5,0x00,0xc2,0xff,0xd2,0x00,0xb6,0x00,0xc3,0xff,0xd2,0x00,0xb7,0x00,0xc5,0xff,0xd2,0x00,0xb8,0x00,0xc5, +0xff,0xd1,0x00,0xb9,0x00,0xc6,0xff,0xd1,0x00,0xba,0x00,0xc8,0xff,0xd1,0x00,0xbb,0x00,0xc9,0xff,0xd1,0x00,0xbc,0x00,0xca,0xff,0xd0,0x00,0xbd,0x00,0xcb,0xff,0xd0,0x00,0xbe,0x00,0xcb,0xff,0xd0,0x00,0xbf,0x00,0xcd,0xff,0xd0,0x00,0xc0,0x00,0xcd,0xff,0xcf,0x00,0xc1,0x00,0xcf,0xff,0xcf,0x00,0xc2,0x00,0xd0,0xff,0xcf,0x00,0xc3, +0x00,0xd0,0xff,0xcf,0x00,0xc4,0x00,0xd1,0xff,0xce,0x00,0xc5,0x00,0xd3,0xff,0xce,0x00,0xc6,0x00,0xd4,0xff,0xce,0x00,0xc7,0x00,0xd5,0xff,0xce,0x00,0xc8,0x00,0xd6,0xff,0xcd,0x00,0xc9,0x00,0xd7,0xff,0xcd,0x00,0xca,0x00,0xd8,0xff,0xcd,0x00,0xcb,0x00,0xd9,0xff,0xcd,0x00,0xcc,0x00,0xda,0xff,0xcc,0x00,0xcd,0x00,0xdc,0xff,0xcc, +0x00,0xce,0x00,0xdc,0xff,0xcc,0x00,0xcf,0x00,0xdd,0xff,0xcc,0x00,0xd0,0x00,0xde,0xff,0xcb,0x00,0xd1,0x00,0xe0,0xff,0xcb,0x00,0xd2,0x00,0xe1,0xff,0xcb,0x00,0xd3,0x00,0xe2,0xff,0xcb,0x00,0xd4,0x00,0xe3,0xff,0xca,0x00,0xd5,0x00,0xe4,0xff,0xca,0x00,0xd6,0x00,0xe5,0xff,0xca,0x00,0xd7,0x00,0xe6,0xff,0xca,0x00,0xd8,0x00,0xe7, +0xff,0xc9,0x00,0xd9,0x00,0xe8,0xff,0xc9,0x00,0xda,0x00,0xea,0xff,0xc9,0x00,0xdb,0x00,0xeb,0xff,0xc9,0x00,0xdc,0x00,0xeb,0xff,0xc8,0x00,0xdd,0x00,0xed,0xff,0xc8,0x00,0xde,0x00,0xee,0xff,0xc8,0x00,0xdf,0x00,0xee,0xff,0xc8,0x00,0xe0,0x00,0xf0,0xff,0xc7,0x00,0xe1,0x00,0xf1,0xff,0xc7,0x00,0xe2,0x00,0xf3,0xff,0xc6,0x00,0xe3, +0x00,0xf3,0xff,0xc6,0x00,0xe4,0x00,0xf4,0xff,0xc6,0x00,0xe5,0x00,0xf5,0xff,0xc6,0x00,0xe6,0x00,0xf6,0xff,0xc6,0x00,0xe7,0x00,0xf8,0xff,0xc6,0x00,0xe8,0x00,0xf8,0xff,0xc5,0x00,0xe9,0x00,0xfa,0xff,0xc5,0x00,0xea,0x00,0xfb,0xff,0xc5,0x00,0xeb,0x00,0xfb,0xff,0xc5,0x00,0xec,0x00,0xfd,0xff,0xc4,0x00,0xed,0x00,0xfd,0xff,0xc4, +0x00,0xee,0x00,0xff,0xff,0xc4,0x00,0xef,0x01,0x01,0xff,0xc4,0x00,0xf0,0x01,0x01,0xff,0xc3,0x00,0xf1,0x01,0x03,0xff,0xc3,0x00,0xf2,0x01,0x03,0xff,0xc3,0x00,0xf3,0x01,0x04,0xff,0xc3,0x00,0xf4,0x01,0x05,0xff,0xc2,0x00,0xf5,0x01,0x07,0xff,0xc2,0x00,0xf6,0x01,0x08,0xff,0xc2,0x00,0xf7,0x01,0x09,0xff,0xc2,0x00,0xf8,0x01,0x0a, +0xff,0xc1,0x00,0xf9,0x01,0x0b,0xff,0xc1,0x00,0xfa,0x01,0x0c,0xff,0xc1,0x00,0xfb,0x01,0x0d,0xff,0xc1,0x00,0xfc,0x01,0x0f,0xff,0xc0,0x00,0xfd,0x01,0x10,0xff,0xc0,0x00,0xfe,0x01,0x10,0xff,0xc0,0x00,0xff,0x01,0x11,0xff,0xc0,0x00,0x00,0x00,0x11,0x00,0x00,0x14,0xe4,0x0b,0x16,0x07,0x00,0x01,0x03,0x03,0x04,0x07,0x06,0x09,0x09, +0x03,0x03,0x03,0x05,0x08,0x03,0x04,0x03,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x08,0x08,0x08,0x05,0x0b,0x07,0x06,0x07,0x08,0x06,0x06,0x08,0x08,0x03,0x04,0x06,0x05,0x0a,0x08,0x09,0x06,0x08,0x07,0x06,0x06,0x08,0x07,0x0b,0x06,0x05,0x06,0x03,0x04,0x03,0x08,0x05,0x03,0x06,0x07,0x05,0x07,0x06,0x04, +0x07,0x07,0x03,0x03,0x06,0x03,0x09,0x07,0x07,0x07,0x07,0x04,0x05,0x04,0x07,0x05,0x09,0x05,0x05,0x05,0x03,0x03,0x03,0x08,0x07,0x07,0x07,0x06,0x08,0x09,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x04,0x06,0x06,0x05,0x04,0x05,0x06, +0x04,0x0a,0x0a,0x09,0x03,0x05,0x08,0x09,0x09,0x09,0x08,0x08,0x08,0x06,0x07,0x06,0x07,0x08,0x06,0x04,0x05,0x09,0x09,0x07,0x05,0x03,0x03,0x08,0x07,0x06,0x08,0x07,0x06,0x06,0x09,0x07,0x07,0x09,0x0a,0x0a,0x06,0x0b,0x04,0x04,0x03,0x03,0x08,0x06,0x05,0x05,0x02,0x06,0x03,0x03,0x06,0x06,0x04,0x03,0x03,0x04,0x0d,0x07,0x06,0x07, +0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x09,0x09,0x08,0x08,0x08,0x03,0x04,0x04,0x03,0x03,0x02,0x03,0x02,0x04,0x02,0x04,0x05,0x03,0x06,0x05,0x06,0x05,0x03,0x08,0x07,0x05,0x05,0x06,0x07,0x08,0x08,0x04,0x04,0x04,0x0a,0x0a,0x0a,0x05,0x08,0x07,0x03,0x06,0x05,0x07,0x05,0x07,0x05,0x07,0x05,0x03,0x07,0x06,0x07,0x06,0x08,0x07,0x08, +0x06,0x06,0x06,0x06,0x05,0x03,0x05,0x03,0x05,0x03,0x08,0x07,0x08,0x07,0x09,0x07,0x07,0x04,0x07,0x04,0x06,0x05,0x06,0x04,0x06,0x05,0x08,0x07,0x08,0x07,0x06,0x05,0x06,0x05,0x05,0x08,0x07,0x07,0x07,0x05,0x07,0x05,0x09,0x05,0x05,0x04,0x0c,0x07,0x06,0x07,0x03,0x04,0x09,0x04,0x07,0x04,0x04,0x07,0x04,0x07,0x06,0x07,0x05,0x07, +0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x06,0x06,0x06,0x05,0x03,0x08,0x07,0x08,0x07,0x09,0x07,0x09,0x07,0x07,0x04,0x06,0x05,0x06,0x04,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x0b,0x09,0x05,0x05,0x03,0x07,0x06,0x09,0x09,0x09, +0x07,0x03,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x05,0x05,0x03,0x05,0x06,0x07,0x0a,0x0a,0x0a,0x0a,0x04,0x04,0x03,0x03,0x03,0x07,0x06,0x09,0x04,0x09,0x07,0x09,0x03,0x07,0x06,0x06,0x06,0x08,0x03,0x06,0x07,0x0a,0x08,0x06,0x09,0x08,0x06,0x06,0x06,0x05,0x06,0x09,0x09,0x03,0x05,0x07,0x05,0x07,0x03,0x07,0x06,0x06,0x05,0x07,0x07,0x03, +0x06,0x05,0x07,0x06,0x05,0x07,0x07,0x05,0x07,0x06,0x09,0x09,0x03,0x07,0x07,0x07,0x09,0x06,0x08,0x05,0x07,0x06,0x03,0x0b,0x0b,0x08,0x06,0x06,0x08,0x07,0x06,0x06,0x05,0x08,0x06,0x0b,0x06,0x08,0x08,0x06,0x07,0x0a,0x08,0x09,0x08,0x06,0x07,0x06,0x06,0x07,0x06,0x08,0x07,0x0b,0x0b,0x08,0x09,0x06,0x07,0x0b,0x07,0x06,0x07,0x06, +0x05,0x06,0x06,0x09,0x05,0x07,0x07,0x06,0x06,0x08,0x07,0x07,0x07,0x07,0x05,0x05,0x05,0x09,0x05,0x07,0x07,0x09,0x09,0x07,0x08,0x06,0x05,0x09,0x06,0x06,0x07,0x05,0x05,0x05,0x03,0x09,0x09,0x07,0x06,0x05,0x07,0x05,0x04,0x0b,0x0c,0x07,0x04,0x04,0x04,0x04,0x03,0x06,0x05,0x06,0x09,0x07,0x08,0x07,0x03,0x04,0x03,0x03,0x05,0x05, +0x05,0x05,0x03,0x03,0x03,0x05,0x03,0x05,0x03,0x03,0x03,0x05,0x05,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x07,0x09,0x07,0x09,0x07,0x09, +0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x04,0x06,0x06,0x08,0x07,0x03,0x04,0x03,0x03,0x06,0x05,0x0b,0x09,0x07,0x06,0x06,0x05,0x08,0x07,0x05,0x05,0x05,0x05,0x07,0x05,0x07, +0x07,0x07,0x07,0x08,0x06,0x08,0x07,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x06,0x06,0x07,0x06,0x06,0x07,0x06,0x07,0x06,0x07,0x07,0x05,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x08,0x07,0x08,0x07,0x08,0x07,0x08, +0x07,0x08,0x07,0x08,0x07,0x03,0x03,0x03,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x03,0x05,0x03,0x05,0x03,0x05,0x03,0x0a,0x09,0x0a,0x09,0x0a,0x09,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x06,0x07,0x06,0x07,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x06,0x05,0x06,0x05,0x06,0x05,0x06, +0x05,0x06,0x05,0x06,0x04,0x06,0x04,0x06,0x04,0x06,0x04,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x07,0x05,0x07,0x05,0x0b,0x09,0x0b,0x09,0x06,0x05,0x06,0x05,0x05,0x05,0x06,0x05,0x06,0x05,0x06,0x05,0x07,0x04,0x09,0x05,0x06,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x05, +0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x05,0x05,0x07,0x07,0x03,0x03,0x07,0x07,0x07,0x07,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a, +0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x09,0x09,0x08,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x06,0x06,0x06,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x07,0x05,0x05,0x07,0x07,0x07,0x06,0x06,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x07,0x06,0x06,0x06,0x06,0x07,0x07,0x05,0x08,0x08,0x06,0x06,0x07,0x06,0x06,0x05,0x08,0x07,0x0a,0x03,0x03,0x06,0x05,0x03,0x05, +0x0a,0x08,0x06,0x08,0x0b,0x09,0x07,0x06,0x06,0x06,0x05,0x06,0x03,0x04,0x06,0x04,0x06,0x08,0x08,0x06,0x06,0x06,0x05,0x07,0x07,0x05,0x05,0x06,0x06,0x04,0x04,0x06,0x03,0x04,0x05,0x03,0x0e,0x0d,0x0b,0x09,0x08,0x06,0x0c,0x0b,0x09,0x07,0x06,0x03,0x03,0x09,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x06,0x07,0x06, +0x07,0x06,0x09,0x09,0x08,0x06,0x08,0x07,0x06,0x06,0x08,0x06,0x08,0x06,0x07,0x05,0x03,0x0e,0x0d,0x0b,0x08,0x07,0x0b,0x08,0x08,0x07,0x07,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x07,0x09,0x07,0x06,0x04,0x07,0x04,0x08,0x07,0x08,0x07,0x06,0x05,0x08,0x07,0x08,0x06,0x06,0x06,0x05,0x07,0x06,0x09,0x07,0x09, +0x07,0x09,0x07,0x09,0x07,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x06,0x06,0x06,0x07,0x05,0x05,0x06,0x06,0x03,0x06,0x07,0x06,0x05,0x05,0x06,0x06,0x06,0x03,0x03,0x04,0x03,0x04,0x03,0x07,0x09,0x09,0x09,0x06,0x06,0x06,0x06,0x08,0x08,0x07,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x04,0x03,0x03, +0x03,0x03,0x04,0x04,0x07,0x07,0x06,0x05,0x08,0x05,0x05,0x05,0x06,0x05,0x05,0x04,0x04,0x04,0x05,0x07,0x05,0x06,0x06,0x06,0x03,0x05,0x04,0x06,0x04,0x04,0x0a,0x0a,0x0b,0x07,0x05,0x08,0x09,0x06,0x06,0x05,0x05,0x06,0x07,0x06,0x07,0x06,0x07,0x09,0x06,0x08,0x06,0x06,0x05,0x05,0x05,0x07,0x06,0x07,0x05,0x0a,0x09,0x07,0x06,0x07, +0x06,0x07,0x05,0x07,0x05,0x07,0x06,0x06,0x04,0x06,0x06,0x05,0x03,0x08,0x05,0x05,0x0a,0x07,0x07,0x06,0x0a,0x08,0x07,0x05,0x0a,0x08,0x08,0x06,0x0a,0x08,0x06,0x05,0x09,0x08,0x08,0x06,0x08,0x06,0x08,0x06,0x0e,0x0c,0x09,0x07,0x0c,0x0a,0x0a,0x07,0x06,0x05,0x06,0x04,0x05,0x00,0x00,0x0b,0x0a,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x05,0x06,0x05,0x08,0x06,0x09,0x07,0x0b,0x09,0x08,0x06,0x07,0x05,0x06,0x05,0x0a,0x08,0x08,0x06,0x09,0x07,0x09,0x07,0x03,0x0b,0x09,0x06,0x06,0x08,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x09,0x09,0x06,0x06,0x08,0x06,0x08,0x06,0x0b,0x09,0x06,0x05,0x06,0x05,0x08,0x07,0x08,0x07,0x09,0x07,0x08,0x07,0x07,0x05,0x06,0x05,0x06,0x05, +0x06,0x05,0x07,0x07,0x09,0x08,0x06,0x07,0x09,0x09,0x09,0x08,0x06,0x05,0x0a,0x09,0x0b,0x09,0x08,0x06,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x06,0x04,0x04,0x02,0x02,0x02,0x02,0x03,0x04,0x03,0x03,0x04,0x02,0x02,0x02,0x04,0x04,0x02,0x02,0x06,0x06, +0x06,0x06,0x04,0x03,0x03,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x02,0x03,0x03,0x02,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x04,0x03,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04, +0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06, +0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x07,0x03,0x07,0x04,0x07,0x07,0x04,0x04,0x04,0x04,0x04,0x03, +0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x05,0x07,0x09,0x05,0x05,0x06,0x06,0x05,0x05,0x03,0x03,0x06,0x04,0x08,0x07,0x07,0x05,0x07,0x07,0x07,0x0a,0x06,0x07,0x07,0x05,0x05,0x05,0x05,0x06,0x06,0x08,0x06,0x05,0x09,0x05,0x05,0x05,0x06,0x05,0x05, +0x07,0x05,0x07,0x06,0x04,0x05,0x04,0x04,0x05,0x03,0x03,0x05,0x05,0x02,0x03,0x04,0x03,0x06,0x05,0x05,0x05,0x04,0x04,0x04,0x03,0x05,0x06,0x03,0x03,0x04,0x05,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x02,0x03,0x05,0x04,0x04,0x03,0x04,0x04,0x04,0x02,0x04,0x04,0x05,0x03,0x04,0x04,0x03,0x04,0x04,0x03,0x02,0x02,0x04,0x03,0x04,0x03, +0x04,0x04,0x03,0x06,0x02,0x04,0x06,0x0a,0x07,0x06,0x06,0x09,0x07,0x09,0x08,0x06,0x06,0x06,0x05,0x0c,0x05,0x06,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x05,0x05,0x06,0x05,0x05,0x06,0x02,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x05,0x04,0x07,0x07,0x04,0x09,0x06,0x07,0x04,0x04,0x05,0x04,0x05,0x06,0x05,0x06,0x0a,0x07,0x04,0x03,0x06, +0x06,0x07,0x07,0x07,0x04,0x07,0x06,0x03,0x09,0x07,0x07,0x04,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x05,0x05,0x08,0x03,0x05,0x03,0x07,0x05,0x04,0x03,0x03,0x04,0x03,0x02,0x02,0x04,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x03,0x02,0x02,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03, +0x03,0x04,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x04,0x03,0x03,0x06,0x06,0x06,0x06,0x04,0x00,0x00,0x00,0x00,0x05,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0f,0x0f,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x02,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x09,0x07,0x08,0x06,0x08,0x07,0x0a,0x08,0x06,0x04,0x06,0x08,0x06,0x09,0x08,0x00,0x00,0x00,0x00,0x03,0x03,0x03, +0x03,0x04,0x04,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x09,0x0b,0x05,0x03,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06,0x0b,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x06,0x06,0x06,0x04,0x06,0x04,0x08,0x07,0x06,0x04,0x09,0x06,0x09,0x03,0x04,0x06,0x06,0x07,0x07,0x07,0x06,0x06,0x06,0x09,0x03,0x06,0x03,0x06,0x05,0x03,0x03, +0x06,0x03,0x08,0x03,0x0a,0x06,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x0d,0x0d,0x0f,0x0f,0x09,0x09,0x06,0x06,0x02,0x0b,0x08,0x09,0x07,0x06,0x07,0x06,0x06,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x03,0x07,0x00,0x07,0x07,0x07,0x04,0x06,0x06,0x0a,0x04,0x0a,0x04,0x06,0x07,0x06,0x05,0x0a,0x06,0x0a,0x06, +0x08,0x09,0x04,0x06,0x06,0x05,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x0a,0x04,0x06,0x05,0x07,0x06,0x04,0x06,0x06,0x06,0x0a,0x04,0x0a,0x04,0x03,0x06,0x04,0x0b,0x06,0x06,0x07,0x07,0x0b,0x06,0x00,0x00,0x00,0x07,0x00,0x07,0x07,0x07,0x07,0x08,0x07,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x06,0x06, +0x08,0x09,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x06,0x05,0x05,0x05,0x0d,0x09,0x0d,0x09,0x0d,0x09,0x0f,0x0b,0x0f,0x0b,0x09,0x06,0x06,0x06,0x06,0x0b,0x0b, +0x06,0x06,0x0b,0x06,0x06,0x0b,0x06,0x06,0x0b,0x06,0x06,0x08,0x08,0x0c,0x0b,0x0a,0x06,0x09,0x06,0x09,0x06,0x09,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x07,0x04,0x07,0x04,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x0a,0x08,0x09,0x04, +0x06,0x08,0x09,0x08,0x09,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x07,0x00,0x00,0x00,0x0d,0x09,0x0f,0x0b,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x04,0x06,0x06,0x07,0x0e,0x09,0x06,0x11,0x0c,0x04, +0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x05,0x05,0x08,0x07,0x07,0x06,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x0e,0x11,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x05,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x06,0x06,0x06,0x06,0x07,0x06,0x06,0x06,0x05,0x0d, +0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0b,0x06,0x06,0x0b,0x06,0x06,0x0a,0x06,0x06,0x0a,0x06,0x06,0x0a,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x07,0x04,0x04,0x05,0x05,0x0d,0x09,0x07,0x06,0x06,0x00,0x06,0x06,0x06,0x04,0x06,0x08,0x07,0x06,0x06,0x04,0x03,0x08,0x06,0x07, +0x04,0x06,0x05,0x05,0x05,0x05,0x03,0x06,0x05,0x07,0x05,0x06,0x05,0x06,0x05,0x07,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x05,0x05,0x05,0x03,0x06,0x06,0x07,0x06,0x04,0x08,0x06,0x07,0x06,0x07,0x05,0x06,0x06,0x04,0x08,0x04,0x05,0x05,0x05,0x07,0x07,0x06,0x0b,0x06,0x0b,0x04,0x03,0x02,0x06,0x02,0x01,0x00,0x02, +0x02,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x0a,0x05,0x08,0x07,0x0b,0x09,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x09,0x05,0x09,0x05,0x09,0x07,0x08,0x08,0x08,0x08,0x09,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x06,0x0c,0x09,0x05,0x05,0x03, +0x03,0x03,0x04,0x03,0x06,0x03,0x03,0x09,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0x07,0x06,0x05,0x05,0x07,0x03,0x04,0x07,0x07,0x03,0x06,0x06,0x06,0x08,0x07,0x03,0x04,0x07,0x07,0x07,0x07,0x06,0x06,0x07,0x06,0x09,0x08,0x06,0x06,0x06,0x03,0x04,0x06,0x06, +0x06,0x06,0x06,0x07,0x07,0x05,0x07,0x06,0x06,0x08,0x06,0x08,0x06,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x06,0x05,0x05,0x07,0x03,0x04,0x07,0x03,0x06,0x06,0x06,0x07,0x04,0x07,0x07,0x07,0x06,0x07,0x06,0x09,0x08,0x03,0x06,0x06,0x07,0x07,0x0d,0x00,0x07,0x06,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x03,0x00,0x08,0x07,0x07,0x08,0x06,0x07,0x08,0x08,0x05,0x07,0x08,0x08,0x07,0x08,0x09,0x09,0x07,0x06,0x06,0x08,0x08,0x06,0x08,0x07,0x07,0x07,0x08,0x08,0x06,0x07,0x07,0x07,0x09,0x07,0x07,0x07,0x07,0x09,0x05,0x06, +0x06,0x0a,0x06,0x06,0x08,0x0a,0x07,0x06,0x0c,0x06,0x06,0x08,0x06,0x06,0x08,0x06,0x08,0x09,0x0a,0x06,0x09,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x08,0x06,0x07,0x07,0x06,0x06,0x07,0x0b,0x06,0x06,0x06,0x06,0x05,0x04,0x06,0x06,0x06,0x06,0x06,0x0a,0x06,0x0a,0x05,0x06,0x0a,0x07,0x06,0x0a,0x08,0x08,0x0a,0x06,0x06,0x0a,0x0a, +0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x06,0x06,0x06,0x0a,0x07,0x06,0x06,0x06,0x0a,0x09,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x09,0x08,0x07,0x06,0x09,0x07,0x08,0x06,0x07,0x08,0x08,0x08,0x06,0x08,0x07,0x08,0x07,0x09,0x08,0x08,0x08,0x08,0x07,0x08,0x07,0x08,0x09,0x07,0x08,0x08,0x01,0x01,0x02,0x02,0x02,0x03,0x04,0x09,0x06, +0x07,0x07,0x06,0x07,0x06,0x06,0x07,0x07,0x06,0x03,0x09,0x06,0x06,0x07,0x06,0x07,0x06,0x06,0x03,0x06,0x06,0x07,0x05,0x09,0x06,0x06,0x07,0x07,0x09,0x06,0x06,0x04,0x09,0x06,0x07,0x08,0x07,0x03,0x03,0x0c,0x0c,0x0c,0x0c,0x10,0x06,0x06,0x03,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x05,0x06,0x06,0x05,0x05,0x06,0x07,0x03,0x03,0x05,0x05,0x08,0x07,0x07,0x05,0x07,0x05,0x05,0x05,0x07,0x06,0x09,0x06,0x05,0x05,0x08,0x09,0x05,0x07,0x05, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x06,0x03,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x08,0x07,0x06,0x05,0x04,0x06,0x05,0x05,0x07,0x07,0x03,0x05,0x06,0x08,0x07,0x05,0x07,0x07,0x05,0x05,0x05,0x05,0x07,0x06,0x07,0x07,0x06,0x05,0x07,0x03,0x07,0x05,0x07,0x03,0x05, +0x05,0x06,0x04,0x06,0x05,0x03,0x03,0x03,0x09,0x09,0x07,0x05,0x05,0x07,0x06,0x05,0x05,0x04,0x06,0x05,0x08,0x05,0x07,0x07,0x05,0x06,0x08,0x07,0x07,0x07,0x05,0x06,0x05,0x05,0x07,0x06,0x07,0x06,0x09,0x09,0x06,0x08,0x05,0x06,0x09,0x05,0x04,0x06,0x06,0x07,0x0a,0x0a,0x07,0x06,0x06,0x05,0x06,0x06,0x06,0x08,0x06,0x06,0x08,0x06, +0x06,0x04,0x07,0x07,0x06,0x06,0x05,0x0a,0x08,0x05,0x06,0x07,0x07,0x07,0x07,0x08,0x08,0x04,0x0b,0x06,0x05,0x06,0x07,0x07,0x06,0x06,0x03,0x09,0x08,0x08,0x05,0x08,0x03,0x03,0x05,0x05,0x03,0x03,0x07,0x04,0x03,0x09,0x08,0x03,0x02,0x02,0x05,0x04,0x04,0x03,0x03,0x03,0x04,0x07,0x05,0x03,0x07,0x08,0x07,0x06,0x06,0x08,0x07,0x07, +0x04,0x05,0x06,0x05,0x02,0x03,0x04,0x06,0x04,0x07,0x07,0x07,0x0a,0x08,0x0a,0x03,0x00,0x00,0x00,0x00,0x00,0x03,0x08,0x09,0x04,0x04,0x06,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x06,0x06,0x06,0x06,0x06,0x0d,0x09,0x0d,0x09,0x0f,0x0b,0x0f,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x06,0x06,0x0a,0x0a,0x06,0x06,0x08,0x09,0x04, +0x04,0x08,0x09,0x04,0x04,0x08,0x09,0x04,0x04,0x0b,0x08,0x09,0x06,0x06,0x06,0x07,0x04,0x07,0x08,0x06,0x06,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0a,0x04,0x08,0x06,0x06,0x03,0x06,0x06,0x06,0x06,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0d,0x09,0x0d,0x09,0x0d,0x09,0x0f,0x0b,0x0f,0x0b,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x06,0x06,0x08,0x06,0x06,0x0a,0x06,0x0c,0x0b,0x0a,0x06,0x09,0x06,0x09,0x06,0x09,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x07, +0x07,0x07,0x07,0x07,0x04,0x07,0x07,0x04,0x04,0x07,0x04,0x07,0x04,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04,0x06,0x04,0x04,0x04,0x04,0x00,0x0d,0x09,0x0f,0x0b,0x0a,0x06,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x06,0x06,0x06,0x06,0x05,0x0d,0x09,0x0b,0x0b,0x0a,0x0a,0x0a, +0x06,0x06,0x06,0x06,0x07,0x04,0x07,0x04,0x07,0x04,0x0d,0x09,0x06,0x07,0x06,0x06,0x06,0x07,0x06,0x06,0x0d,0x0d,0x09,0x09,0x05,0x05,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x04,0x08,0x09,0x04,0x04,0x08,0x09,0x04,0x04,0x08,0x09,0x04,0x04,0x06,0x06,0x06,0x06,0x0a,0x04,0x0a,0x04,0x06,0x07,0x06,0x06,0x0d,0x0d,0x09,0x09,0x0d,0x0d, +0x09,0x09,0x09,0x09,0x06,0x06,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x03,0x03,0x04,0x03,0x00,0x00,0x00,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, +0x0a,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x09,0x06,0x09,0x06,0x09,0x06,0x09,0x07,0x07,0x07,0x03,0x03,0x06,0x05,0x06,0x07,0x06,0x06,0x06,0x07, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x07,0x07,0x07,0x06,0x06,0x07,0x06,0x07,0x08,0x07,0x08,0x09,0x07,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x07,0x07,0x07,0x06,0x07,0x06,0x07,0x07,0x06,0x06,0x08,0x07,0x08,0x07,0x07,0x07,0x06,0x06,0x08, +0x08,0x08,0x08,0x0a,0x0a,0x08,0x0a,0x0a,0x08,0x0a,0x09,0x06,0x08,0x09,0x08,0x07,0x09,0x08,0x08,0x08,0x07,0x07,0x08,0x09,0x08,0x07,0x08,0x06,0x06,0x0a,0x0a,0x0a,0x09,0x0a,0x0a,0x08,0x0a,0x0a,0x08,0x08,0x09,0x08,0x08,0x08,0x07,0x0a,0x08,0x09,0x08,0x08,0x06,0x08,0x08,0x08,0x09,0x08,0x08,0x0a,0x06,0x06,0x06,0x06,0x07,0x07, +0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x05,0x06,0x06,0x06,0x07,0x08,0x09,0x07,0x07,0x07,0x08,0x07,0x08,0x06,0x05,0x06,0x06,0x05,0x05,0x06,0x06,0x05,0x05,0x07,0x05,0x06,0x05,0x06,0x09,0x06,0x09,0x06,0x06,0x06,0x08,0x03,0x09,0x08,0x08,0x07,0x06,0x08,0x07, +0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x05,0x08,0x08,0x05,0x04,0x05,0x06,0x06,0x05,0x09,0x09,0x09,0x05, +0x0b,0x05,0x09,0x09,0x09,0x09,0x06,0x05,0x05,0x09,0x06,0x09,0x07,0x06,0x05,0x04,0x0b,0x05,0x06,0x05,0x05,0x05,0x05,0x05,0x0f,0x09,0x09,0x05,0x03,0x05,0x03,0x05,0x03,0x03,0x03,0x05,0x06,0x06,0x06,0x04,0x04,0x03,0x03,0x03,0x04,0x03,0x05,0x09,0x03,0x0a,0x0a,0x0a,0x06,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x0d,0x0d,0x07,0x0d,0x0d,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x05,0x06,0x05,0x06,0x05,0x04,0x04,0x08,0x06,0x08,0x05,0x0c,0x0a,0x07,0x06,0x0a,0x09,0x09,0x08,0x0b,0x09,0x0a,0x09,0x07,0x05, +0x08,0x06,0x0a,0x08,0x08,0x07,0x08,0x07,0x0a,0x07,0x0a,0x07,0x0c,0x09,0x08,0x06,0x08,0x06,0x0d,0x0a,0x09,0x00,0x0b,0x0b,0x0b,0x05,0x00,0x00,0x06,0x06,0x08,0x06,0x06,0x05,0x0c,0x0a,0x0a,0x09,0x08,0x06,0x08,0x06,0x06,0x05,0x08,0x07,0x06,0x05,0x09,0x07,0x07,0x06,0x0b,0x09,0x06,0x06,0x08,0x08,0x09,0x05,0x02,0x05,0x08,0x05, +0x0b,0x0b,0x03,0x00,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x04,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x05,0x07,0x08,0x03,0x02,0x03,0x02,0x08,0x06,0x08,0x07,0x06,0x05,0x06,0x05,0x07,0x06,0x05,0x05,0x0c,0x09,0x0d,0x0a,0x0b,0x09,0x0a,0x07,0x0a,0x07,0x0a,0x07,0x07,0x05,0x06,0x05,0x06,0x05,0x06,0x05,0x06,0x03,0x05, +0x03,0x08,0x06,0x09,0x07,0x0f,0x0b,0x06,0x06,0x08,0x08,0x09,0x09,0x08,0x06,0x0b,0x09,0x06,0x04,0x06,0x05,0x07,0x05,0x0a,0x08,0x07,0x06,0x06,0x06,0x06,0x06,0x05,0x04,0x05,0x04,0x05,0x04,0x06,0x06,0x03,0x07,0x04,0x0b,0x07,0x04,0x06,0x07,0x05,0x08,0x06,0x04,0x04,0x06,0x06,0x06,0x05,0x03,0x08,0x07,0x04,0x04,0x07,0x05,0x08, +0x04,0x09,0x07,0x07,0x05,0x08,0x06,0x06,0x05,0x08,0x06,0x07,0x04,0x06,0x05,0x08,0x05,0x06,0x09,0x05,0x06,0x0a,0x03,0x0d,0x0a,0x0a,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x05,0x07,0x08,0x0a,0x08,0x0a,0x03,0x05,0x07,0x09,0x0b,0x08,0x0b,0x07,0x07,0x09,0x08,0x0d,0x0a,0x06,0x0a,0x04,0x0a,0x04,0x06,0x06,0x06,0x06,0x09,0x09, +0x09,0x09,0x0b,0x06,0x06,0x0b,0x08,0x06,0x06,0x08,0x07,0x04,0x04,0x07,0x06,0x06,0x06,0x06,0x08,0x04,0x04,0x09,0x08,0x04,0x04,0x09,0x05,0x05,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x06,0x04,0x06,0x06, +0x08,0x07,0x06,0x0a,0x07,0x08,0x08,0x09,0x09,0x06,0x05,0x0b,0x09,0x0b,0x09,0x08,0x06,0x03,0x03,0x06,0x07,0x04,0x07,0x06,0x06,0x05,0x08,0x09,0x04,0x06,0x05,0x02,0x04,0x06,0x06,0x02,0x02,0x02,0x02,0x04,0x04,0x04,0x05,0x10,0x16,0x04,0x05,0x01,0x03,0x04,0x05,0x03,0x05,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, +0x05,0x05,0x05,0x05,0x05,0x0f,0x06,0x08,0x0a,0x0a,0x07,0x05,0x07,0x08,0x08,0x05,0x03,0x07,0x06,0x07,0x06,0x07,0x06,0x06,0x08,0x07,0x06,0x06,0x08,0x07,0x09,0x05,0x06,0x07,0x04,0x06,0x04,0x04,0x03,0x0a,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0a,0x0b,0x0b,0x06,0x06,0x03,0x06,0x05,0x07,0x05,0x07,0x03,0x06,0x07,0x09,0x09,0x07, +0x06,0x06,0x06,0x06,0x05,0x06,0x05,0x05,0x03,0x04,0x03,0x02,0x04,0x06,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x03,0x03,0x13,0x0b,0x0a,0x0c,0x03,0x03,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x0a,0x04,0x04,0x0a,0x03,0x06, +0x06,0x0f,0x0b,0x0b,0x0f,0x0a,0x06,0x06,0x0a,0x06,0x06,0x05,0x05,0x00,0x00,0x04,0x08,0x07,0x08,0x06,0x0e,0x0b,0x08,0x06,0x08,0x06,0x0f,0x0b,0x08,0x06,0x04,0x03,0x07,0x00,0x08,0x06,0x04,0x03,0x02,0x05,0x04,0x04,0x03,0x02,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x06,0x05,0x06,0x06,0x06,0x0b,0x09,0x09,0x09,0x09, +0x0a,0x07,0x08,0x07,0x04,0x0a,0x0c,0x05,0x0d,0x06,0x09,0x0a,0x0a,0x0a,0x05,0x08,0x0b,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x06,0x06,0x09,0x06,0x06,0x0a,0x04,0x04,0x0a,0x04,0x04,0x0a,0x05,0x05,0x00,0x05,0x09,0x04,0x04,0x0b,0x06,0x06,0x08,0x06,0x06,0x07,0x03,0x03, +0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x11,0x11,0x0a,0x00,0x00,0x0a,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x07,0x07,0x0a,0x07,0x07,0x09,0x0b,0x07,0x07,0x0c,0x07,0x07,0x0a,0x07,0x07,0x09,0x07,0x08,0x09,0x0a,0x07,0x08,0x07,0x08,0x07,0x08, +0x07,0x07,0x08,0x07,0x09,0x07,0x07,0x09,0x07,0x07,0x06,0x09,0x07,0x07,0x07,0x08,0x05,0x06,0x07,0x09,0x09,0x06,0x00,0x00,0x0c,0x18,0x08,0x00,0x01,0x03,0x03,0x05,0x07,0x06,0x0a,0x0a,0x03,0x04,0x04,0x05,0x08,0x03,0x05,0x03,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x08,0x08,0x08,0x05,0x0b,0x08,0x07, +0x08,0x08,0x06,0x06,0x08,0x09,0x03,0x04,0x07,0x06,0x0b,0x09,0x09,0x07,0x09,0x07,0x06,0x06,0x08,0x07,0x0b,0x07,0x07,0x07,0x04,0x05,0x04,0x08,0x05,0x03,0x06,0x07,0x06,0x07,0x06,0x04,0x07,0x07,0x03,0x03,0x06,0x03,0x0b,0x07,0x07,0x07,0x07,0x04,0x05,0x04,0x07,0x06,0x09,0x06,0x06,0x05,0x04,0x03,0x04,0x08,0x08,0x08,0x08,0x06, +0x09,0x09,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x05,0x06,0x06,0x05,0x05,0x06,0x07,0x05,0x0b,0x0b,0x09,0x03,0x05,0x08,0x0a,0x09,0x0a,0x08,0x08,0x08,0x06,0x07,0x06,0x07,0x09,0x06,0x05,0x05,0x09,0x0a,0x07,0x05,0x03,0x03,0x08, +0x08,0x06,0x08,0x08,0x06,0x06,0x09,0x08,0x08,0x09,0x0b,0x0b,0x06,0x0c,0x05,0x05,0x03,0x03,0x08,0x07,0x06,0x07,0x02,0x06,0x04,0x04,0x07,0x07,0x05,0x03,0x03,0x05,0x0f,0x08,0x06,0x08,0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x09,0x09,0x08,0x08,0x08,0x03,0x04,0x04,0x04,0x04,0x02,0x03,0x02,0x04,0x02,0x04,0x06,0x03,0x06,0x05,0x07, +0x05,0x03,0x08,0x07,0x07,0x06,0x07,0x07,0x08,0x08,0x04,0x04,0x04,0x0b,0x0b,0x0b,0x06,0x08,0x07,0x03,0x06,0x05,0x08,0x06,0x08,0x06,0x07,0x05,0x03,0x08,0x06,0x08,0x06,0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x03,0x06,0x04,0x06,0x04,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x04,0x07,0x04,0x06,0x05,0x06,0x04,0x06,0x05,0x08,0x07, +0x08,0x07,0x07,0x05,0x07,0x05,0x06,0x09,0x09,0x07,0x07,0x05,0x07,0x06,0x09,0x05,0x06,0x05,0x0d,0x07,0x06,0x07,0x03,0x05,0x0a,0x04,0x07,0x04,0x04,0x07,0x04,0x08,0x06,0x08,0x06,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x07,0x08,0x07,0x08,0x07,0x09,0x07,0x09,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x07, +0x06,0x06,0x06,0x03,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x04,0x06,0x05,0x06,0x04,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x0b,0x09,0x07,0x06,0x03,0x08,0x06,0x0a,0x0a,0x09,0x07,0x03,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x07,0x06,0x03,0x05,0x06,0x07,0x0b,0x0b,0x0b,0x0b,0x05,0x05,0x03,0x03,0x03,0x08,0x07,0x09,0x05,0x0a, +0x08,0x0a,0x03,0x08,0x07,0x06,0x07,0x09,0x03,0x07,0x08,0x0b,0x09,0x06,0x09,0x09,0x07,0x06,0x06,0x07,0x07,0x09,0x09,0x03,0x07,0x07,0x05,0x07,0x03,0x07,0x07,0x06,0x05,0x07,0x07,0x03,0x06,0x06,0x07,0x06,0x05,0x07,0x07,0x06,0x07,0x06,0x09,0x0b,0x03,0x07,0x07,0x07,0x0b,0x06,0x08,0x06,0x07,0x06,0x03,0x0c,0x0c,0x09,0x07,0x07, +0x09,0x08,0x07,0x07,0x06,0x08,0x06,0x0b,0x07,0x09,0x09,0x07,0x08,0x0b,0x09,0x09,0x09,0x07,0x08,0x06,0x07,0x09,0x07,0x09,0x08,0x0b,0x0c,0x08,0x09,0x07,0x07,0x0c,0x07,0x06,0x07,0x06,0x05,0x06,0x06,0x09,0x05,0x07,0x07,0x06,0x07,0x09,0x07,0x07,0x07,0x07,0x06,0x05,0x06,0x09,0x06,0x07,0x07,0x0b,0x0b,0x07,0x09,0x06,0x06,0x0a, +0x06,0x06,0x07,0x05,0x06,0x05,0x03,0x09,0x0a,0x07,0x06,0x06,0x07,0x06,0x05,0x0c,0x0d,0x08,0x04,0x04,0x04,0x04,0x03,0x06,0x05,0x07,0x09,0x07,0x08,0x07,0x04,0x04,0x03,0x03,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x06,0x04,0x06,0x04,0x04,0x04,0x06,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08, +0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08, +0x07,0x08,0x07,0x07,0x06,0x07,0x06,0x07,0x06,0x06,0x04,0x06,0x06,0x09,0x07,0x03,0x04,0x03,0x03,0x06,0x05,0x0c,0x09,0x07,0x06,0x07,0x06,0x09,0x07,0x07,0x06,0x07,0x06,0x08,0x06,0x08,0x07,0x08,0x07,0x09,0x06,0x09,0x07,0x04,0x04,0x04,0x04,0x05,0x05,0x06,0x06,0x06,0x06,0x03,0x03,0x04,0x04,0x04,0x04,0x06,0x06,0x08,0x06,0x07, +0x07,0x07,0x07,0x07,0x07,0x08,0x06,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x08,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x03,0x03,0x03,0x03,0x07,0x06,0x07,0x06,0x07,0x06,0x06,0x03,0x06,0x03,0x06,0x03,0x06,0x03,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0b,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x06,0x05,0x06,0x05,0x06,0x05,0x06,0x05,0x06,0x05,0x06,0x04,0x06,0x04,0x06,0x04,0x06,0x04,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x07,0x06,0x07,0x06,0x0b,0x09,0x0b, +0x09,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x05,0x07,0x05,0x07,0x05,0x07,0x04,0x09,0x06,0x06,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x03, +0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x05,0x05,0x07,0x07,0x03,0x03,0x07, +0x07,0x07,0x07,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08, +0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x07,0x07,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x02,0x58,0x00,0x00,0x00,0x92,0x00,0x80,0x00,0x06,0x00,0x12,0x00,0x00,0x00,0x09,0x00,0x0d,0x00,0x7e,0x01,0x7f,0x01,0x92,0x01,0xa1,0x01,0xb0,0x01,0xf0,0x01,0xff,0x02,0x19,0x02,0x37, -0x02,0xbc,0x02,0xc7,0x02,0xc9,0x02,0xdd,0x02,0xf3,0x03,0x01,0x03,0x03,0x03,0x09,0x03,0x0f,0x03,0x23,0x03,0x8a,0x03,0x8c,0x03,0xa1,0x03,0xce,0x03,0xd2,0x03,0xd6,0x04,0x86,0x05,0x13,0x1e,0x01,0x1e,0x3f,0x1e,0x85,0x1e,0xf9,0x1f,0x4d,0x20,0x0b,0x20,0x15,0x20,0x1e,0x20,0x22,0x20,0x26,0x20,0x30,0x20,0x33,0x20,0x3a,0x20,0x3c, -0x20,0x44,0x20,0x74,0x20,0x7f,0x20,0xa4,0x20,0xa7,0x20,0xac,0x21,0x05,0x21,0x13,0x21,0x16,0x21,0x22,0x21,0x26,0x21,0x2e,0x21,0x5e,0x22,0x02,0x22,0x06,0x22,0x0f,0x22,0x12,0x22,0x1a,0x22,0x1e,0x22,0x2b,0x22,0x48,0x22,0x60,0x22,0x65,0x25,0xca,0xf6,0xc3,0xfb,0x04,0xfe,0xff,0xff,0xfd,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x09, -0x00,0x0d,0x00,0x20,0x00,0xa0,0x01,0x92,0x01,0xa0,0x01,0xaf,0x01,0xf0,0x01,0xfa,0x02,0x18,0x02,0x37,0x02,0xbc,0x02,0xc6,0x02,0xc9,0x02,0xd8,0x02,0xf3,0x03,0x00,0x03,0x03,0x03,0x09,0x03,0x0f,0x03,0x23,0x03,0x84,0x03,0x8c,0x03,0x8e,0x03,0xa3,0x03,0xd1,0x03,0xd6,0x04,0x00,0x04,0x88,0x1e,0x00,0x1e,0x3e,0x1e,0x80,0x1e,0xa0, -0x1f,0x4d,0x20,0x00,0x20,0x13,0x20,0x17,0x20,0x20,0x20,0x25,0x20,0x30,0x20,0x32,0x20,0x39,0x20,0x3c,0x20,0x44,0x20,0x74,0x20,0x7f,0x20,0xa3,0x20,0xa7,0x20,0xab,0x21,0x05,0x21,0x13,0x21,0x16,0x21,0x22,0x21,0x26,0x21,0x2e,0x21,0x5b,0x22,0x02,0x22,0x06,0x22,0x0f,0x22,0x11,0x22,0x1a,0x22,0x1e,0x22,0x2b,0x22,0x48,0x22,0x60, -0x22,0x64,0x25,0xca,0xf6,0xc3,0xfb,0x01,0xfe,0xff,0xff,0xfc,0xff,0xff,0x00,0x01,0x04,0x03,0xff,0xf5,0xff,0xe3,0xff,0xc2,0xff,0xb0,0xff,0xa3,0xff,0x96,0xff,0x57,0xff,0x4e,0xff,0x36,0xff,0x19,0xfe,0x95,0xfe,0x8c,0xfd,0xa8,0xfe,0x7c,0xfe,0x67,0xfe,0x5b,0xfe,0x5a,0xfe,0x55,0xfe,0x50,0xfe,0x3d,0xfd,0xdd,0xfd,0xdc,0xfd,0xdb, -0xfd,0xda,0xfd,0xd8,0xfd,0xd5,0xfd,0xac,0xfd,0xab,0xe4,0xbf,0xe4,0x83,0xe4,0x43,0xe4,0x29,0xe3,0xd6,0xe3,0x24,0xe3,0x1d,0xe3,0x1c,0xe3,0x1b,0xe3,0x19,0xe3,0x10,0xe3,0x0f,0xe3,0x0a,0xe3,0x09,0xe3,0x02,0xe2,0xd3,0xe2,0xc9,0xe2,0xa6,0xe2,0xa4,0xe2,0xa1,0xe2,0x49,0xe2,0x3c,0xe2,0x3a,0xe2,0x2f,0xe0,0x5d,0xe2,0x24,0xe1,0xf8, -0xe1,0x55,0xdf,0x69,0xe1,0x49,0xe1,0x48,0xe1,0x41,0xe1,0x3e,0xe1,0x32,0xe1,0x16,0xe0,0xff,0xe0,0xfc,0xdd,0x98,0x0c,0xa0,0x08,0x63,0x04,0x69,0x03,0x6d,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x08,0x09,0x07,0x07,0x07,0x06,0x07,0x06,0x08,0x07,0x0a,0x03,0x03,0x07,0x06,0x03,0x06,0x0b,0x09,0x07,0x09,0x0c,0x09,0x07,0x07,0x07,0x06,0x05,0x06,0x04,0x04,0x06,0x04,0x06,0x09,0x09,0x07,0x06,0x07,0x05,0x07,0x07,0x05,0x05,0x06, +0x06,0x05,0x05,0x07,0x03,0x05,0x05,0x03,0x0f,0x0e,0x0c,0x0a,0x09,0x06,0x0d,0x0c,0x0a,0x08,0x06,0x03,0x03,0x09,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x06,0x08,0x06,0x08,0x06,0x0a,0x0a,0x08,0x07,0x08,0x07,0x07,0x06,0x09,0x07,0x09,0x07,0x07,0x05,0x03,0x0f,0x0e,0x0c,0x08,0x07,0x0c,0x08,0x09,0x07,0x08,0x06, +0x08,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x07,0x09,0x07,0x07,0x04,0x07,0x04,0x08,0x07,0x08,0x07,0x06,0x05,0x09,0x07,0x09,0x07,0x07,0x07,0x05,0x08,0x06,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x06,0x07,0x06,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x06,0x06,0x07,0x07,0x06,0x07,0x05,0x05,0x06,0x07,0x03,0x07, +0x07,0x06,0x06,0x05,0x07,0x07,0x07,0x03,0x03,0x04,0x03,0x05,0x03,0x07,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x08,0x09,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x04,0x04,0x07,0x07,0x07,0x06,0x09,0x06,0x05,0x05,0x06,0x05,0x05,0x04,0x04,0x04,0x06,0x07,0x06,0x07,0x06,0x07,0x03,0x06,0x05,0x07, +0x04,0x04,0x0b,0x0b,0x0c,0x07,0x06,0x09,0x0a,0x07,0x07,0x06,0x06,0x07,0x07,0x07,0x08,0x07,0x08,0x0a,0x07,0x08,0x07,0x07,0x05,0x06,0x05,0x07,0x06,0x07,0x06,0x0b,0x0a,0x07,0x06,0x08,0x06,0x07,0x06,0x07,0x06,0x08,0x07,0x07,0x05,0x07,0x07,0x06,0x03,0x09,0x06,0x06,0x0a,0x08,0x08,0x07,0x0b,0x09,0x08,0x06,0x0a,0x08,0x09,0x07, +0x0b,0x09,0x06,0x05,0x09,0x09,0x09,0x07,0x09,0x07,0x09,0x07,0x10,0x0d,0x0a,0x08,0x0e,0x0b,0x0a,0x08,0x07,0x05,0x06,0x05,0x05,0x00,0x00,0x0c,0x0b,0x07,0x06,0x07,0x07,0x07,0x06,0x06,0x05,0x07,0x06,0x09,0x07,0x0a,0x08,0x0c,0x0a,0x09,0x07,0x07,0x06,0x06,0x05,0x0a,0x08,0x08,0x07,0x0a,0x08,0x0a,0x08,0x03,0x0b,0x09,0x07,0x06, +0x09,0x07,0x08,0x07,0x08,0x06,0x08,0x06,0x0a,0x0a,0x06,0x06,0x09,0x06,0x09,0x06,0x0b,0x09,0x07,0x05,0x06,0x05,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x08,0x07,0x09,0x09,0x07,0x07,0x0a,0x0a,0x0a,0x09,0x07,0x06,0x0b,0x0a,0x0c,0x0a,0x09,0x06,0x08,0x07,0x07,0x07,0x07,0x06,0x07,0x04, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x07,0x04,0x04,0x02,0x03,0x03,0x03,0x03,0x05,0x03,0x03,0x05,0x03,0x03,0x03,0x04,0x04,0x03,0x03,0x07,0x07,0x07,0x07,0x04,0x03,0x03,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x02,0x03,0x03,0x03,0x05,0x05,0x05,0x05, +0x05,0x04,0x04,0x04,0x05,0x04,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05, +0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07, +0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x08,0x04,0x07,0x07,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x06,0x08,0x0a,0x06, +0x06,0x07,0x07,0x05,0x05,0x03,0x04,0x06,0x05,0x09,0x07,0x07,0x06,0x07,0x07,0x07,0x0b,0x06,0x07,0x07,0x06,0x05,0x05,0x05,0x06,0x07,0x09,0x07,0x06,0x09,0x05,0x05,0x05,0x06,0x05,0x06,0x07,0x06,0x07,0x07,0x04,0x06,0x04,0x04,0x05,0x04,0x04,0x05,0x05,0x02,0x03,0x04,0x03,0x06,0x05,0x05,0x05,0x05,0x04,0x04,0x03,0x05,0x06,0x04, +0x04,0x04,0x06,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x02,0x04,0x06,0x04,0x04,0x03,0x04,0x04,0x04,0x02,0x04,0x04,0x06,0x03,0x04,0x04,0x04,0x04,0x05,0x04,0x02,0x03,0x04,0x03,0x04,0x04,0x04,0x05,0x04,0x07,0x02,0x04,0x07,0x0b,0x07,0x06,0x06,0x0a,0x08,0x0a,0x09,0x06,0x07,0x06,0x05,0x0e,0x05,0x07,0x0b,0x0b,0x0b,0x08,0x08,0x08, +0x06,0x06,0x06,0x05,0x05,0x06,0x02,0x00,0x00,0x00,0x00,0x07,0x07,0x08,0x07,0x06,0x05,0x07,0x07,0x04,0x0a,0x07,0x07,0x04,0x04,0x06,0x04,0x05,0x07,0x06,0x07,0x0b,0x08,0x04,0x03,0x07,0x06,0x07,0x07,0x07,0x04,0x07,0x06,0x03,0x0b,0x07,0x07,0x04,0x05,0x05,0x06,0x06,0x05,0x06,0x07,0x07,0x06,0x05,0x05,0x09,0x03,0x06,0x03,0x07, +0x05,0x04,0x03,0x03,0x04,0x03,0x02,0x02,0x04,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x06,0x06,0x04,0x04,0x04,0x04,0x04,0x03,0x02,0x02,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x04,0x03,0x04,0x00,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x03,0x04,0x06,0x06,0x06,0x06,0x04,0x00,0x00,0x00,0x00,0x06,0x04,0x03,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x02,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x09,0x08,0x09,0x07,0x09,0x08,0x0b,0x09,0x06,0x05,0x06,0x08,0x06,0x0a,0x08,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0c,0x05,0x03,0x06,0x07,0x05,0x06,0x06,0x07,0x07,0x06,0x0c,0x07,0x07,0x07,0x07, +0x07,0x07,0x06,0x06,0x08,0x06,0x06,0x06,0x04,0x07,0x04,0x09,0x08,0x06,0x04,0x0a,0x06,0x0a,0x03,0x04,0x07,0x07,0x08,0x08,0x08,0x07,0x07,0x07,0x0a,0x03,0x07,0x03,0x06,0x05,0x03,0x03,0x06,0x03,0x09,0x03,0x0b,0x06,0x0b,0x0b,0x07,0x07,0x07,0x06,0x06,0x05,0x05,0x0e,0x0e,0x10,0x10,0x0a,0x0a,0x06,0x06,0x02,0x0c,0x09,0x0a,0x08, +0x07,0x08,0x06,0x06,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x03,0x08,0x00,0x08,0x08,0x08,0x04,0x06,0x06,0x0b,0x04,0x0b,0x04,0x07,0x08,0x07,0x05,0x0b,0x06,0x0b,0x06,0x09,0x0a,0x04,0x06,0x06,0x05,0x03,0x06,0x07,0x06,0x07,0x06,0x07,0x07,0x06,0x08,0x08,0x0b,0x04,0x06,0x05,0x08,0x06,0x04,0x06,0x06,0x06,0x0b, +0x04,0x0b,0x04,0x03,0x07,0x05,0x0c,0x06,0x06,0x08,0x08,0x0c,0x06,0x00,0x00,0x00,0x08,0x00,0x08,0x08,0x08,0x08,0x09,0x08,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x06,0x06,0x09,0x0a,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x08,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x06,0x05,0x05,0x05,0x0e,0x0a,0x0e,0x0a,0x0e,0x0a,0x10,0x0c,0x10,0x0c,0x0a,0x06,0x07,0x07,0x07,0x0c,0x0c,0x06,0x06,0x0c,0x06,0x06,0x0c,0x06,0x06,0x0c,0x06,0x06,0x09,0x09,0x0d,0x0c,0x0b,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0b,0x06,0x0b,0x06,0x0b, +0x06,0x0b,0x06,0x0b,0x06,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0x08,0x04,0x07,0x08,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0b,0x09,0x0a,0x04,0x06,0x09,0x0a,0x09,0x0a,0x00,0x00,0x00,0x00,0x00,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x07,0x00,0x00,0x00,0x0e,0x0a, +0x10,0x0c,0x06,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x0b,0x0b,0x04,0x07,0x07,0x07,0x0f,0x0a,0x06,0x12,0x0d,0x04,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x05,0x05,0x09,0x08,0x08,0x06,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x0f,0x12,0x00, +0x00,0x00,0x00,0x00,0x07,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x05,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x07,0x07,0x07,0x07,0x08,0x07,0x06,0x06,0x05,0x0e,0x0a,0x06,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x0c,0x06,0x06,0x0c,0x06,0x06,0x0b,0x06,0x06,0x0b,0x06,0x06,0x0b,0x06,0x06, +0x07,0x07,0x07,0x07,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0x04,0x05,0x05,0x0e,0x0a,0x08,0x07,0x07,0x00,0x06,0x06,0x06,0x04,0x07,0x08,0x08,0x06,0x06,0x04,0x03,0x09,0x07,0x07,0x04,0x07,0x06,0x06,0x06,0x06,0x03,0x06,0x05,0x07,0x06,0x07,0x06,0x07,0x05,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x05, +0x06,0x06,0x03,0x06,0x07,0x07,0x06,0x04,0x09,0x07,0x08,0x06,0x07,0x06,0x07,0x06,0x05,0x08,0x04,0x05,0x05,0x06,0x07,0x07,0x06,0x0c,0x06,0x0c,0x04,0x03,0x02,0x06,0x03,0x02,0x00,0x02,0x03,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x0b,0x05,0x09,0x07,0x0b,0x09,0x07,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x0b,0x0b,0x0a,0x06,0x0a,0x06,0x0a,0x08,0x08,0x08,0x08,0x09,0x0a,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x08,0x09,0x07,0x0d,0x0a,0x06,0x06,0x03,0x03,0x03,0x04,0x03,0x07,0x03,0x03,0x0a,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x02,0x00,0x00,0x03, +0x00,0x00,0x08,0x07,0x05,0x06,0x08,0x03,0x04,0x08,0x08,0x03,0x07,0x07,0x07,0x08,0x08,0x03,0x05,0x08,0x07,0x07,0x08,0x07,0x07,0x08,0x07,0x09,0x09,0x06,0x06,0x06,0x03,0x05,0x07,0x07,0x07,0x07,0x06,0x07,0x08,0x06,0x08,0x07,0x07,0x08,0x07,0x09,0x07,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x07,0x05,0x06,0x08,0x04,0x04,0x08,0x04, +0x07,0x07,0x07,0x08,0x05,0x08,0x07,0x08,0x07,0x08,0x07,0x09,0x09,0x03,0x07,0x07,0x08,0x08,0x0e,0x00,0x08,0x07,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x03,0x00,0x09,0x08,0x08,0x08, +0x07,0x08,0x09,0x09,0x06,0x08,0x09,0x09,0x08,0x09,0x0a,0x09,0x08,0x07,0x07,0x09,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x09,0x07,0x08,0x08,0x08,0x09,0x08,0x07,0x08,0x08,0x0a,0x06,0x07,0x07,0x0b,0x06,0x06,0x09,0x0b,0x07,0x06,0x0d,0x07,0x07,0x09,0x06,0x06,0x09,0x07,0x09,0x0a,0x0b,0x06,0x09,0x06,0x08,0x07,0x07,0x07,0x08,0x06, +0x07,0x09,0x06,0x07,0x08,0x06,0x06,0x07,0x0b,0x06,0x06,0x07,0x07,0x05,0x04,0x07,0x07,0x07,0x06,0x07,0x0b,0x07,0x0b,0x06,0x07,0x0b,0x08,0x07,0x0b,0x09,0x09,0x0b,0x07,0x07,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x07,0x07,0x07,0x0b,0x07,0x07,0x07,0x07,0x0b,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x08,0x08, +0x07,0x09,0x08,0x08,0x07,0x08,0x08,0x09,0x09,0x07,0x08,0x08,0x09,0x08,0x09,0x08,0x09,0x09,0x08,0x08,0x08,0x08,0x09,0x0a,0x08,0x09,0x09,0x01,0x01,0x02,0x02,0x02,0x03,0x04,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x07,0x07,0x04,0x0a,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x03,0x07,0x06,0x07,0x05,0x0a,0x07,0x07,0x07,0x07, +0x0a,0x07,0x07,0x05,0x0a,0x07,0x07,0x08,0x08,0x03,0x03,0x0e,0x0d,0x0d,0x0e,0x11,0x06,0x06,0x03,0x06,0x05,0x06,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x06,0x07,0x05,0x05,0x07,0x07,0x03,0x04,0x06,0x05,0x09,0x08,0x07,0x06,0x07,0x06,0x05,0x05,0x07,0x06,0x0a,0x06,0x06,0x06,0x08,0x09,0x05,0x08,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06, +0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x06,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x07,0x04,0x06,0x05,0x05,0x05,0x05,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x08,0x08,0x06,0x06,0x05,0x06,0x05,0x06,0x07,0x07,0x03,0x06,0x06,0x09,0x08,0x05,0x07,0x07,0x06,0x06,0x05,0x06,0x08,0x06,0x08,0x08,0x06,0x05,0x07,0x03,0x07,0x06,0x08,0x03,0x06,0x05,0x07,0x05,0x06,0x05,0x03,0x03,0x04,0x0a,0x0a,0x07,0x06,0x06,0x07,0x06,0x06,0x06,0x05,0x07,0x05,0x09,0x05,0x08,0x08,0x06,0x07,0x09,0x07, +0x07,0x07,0x06,0x06,0x05,0x06,0x08,0x06,0x08,0x07,0x0a,0x0a,0x07,0x08,0x06,0x06,0x0a,0x06,0x05,0x07,0x07,0x07,0x0b,0x0b,0x08,0x06,0x07,0x05,0x07,0x07,0x07,0x08,0x06,0x06,0x08,0x07,0x07,0x04,0x08,0x07,0x07,0x06,0x06,0x0b,0x09,0x06,0x06,0x07,0x07,0x07,0x07,0x09,0x08,0x04,0x0b,0x07,0x07,0x07,0x08,0x08,0x06,0x06,0x03,0x09, +0x08,0x08,0x06,0x08,0x03,0x03,0x05,0x05,0x03,0x03,0x07,0x05,0x03,0x09,0x08,0x03,0x03,0x03,0x05,0x05,0x05,0x03,0x03,0x03,0x05,0x08,0x06,0x04,0x07,0x08,0x07,0x07,0x06,0x09,0x07,0x07,0x04,0x05,0x06,0x05,0x03,0x03,0x05,0x06,0x04,0x08,0x08,0x08,0x0b,0x09,0x0b,0x03,0x00,0x00,0x00,0x00,0x00,0x03,0x09,0x0a,0x04,0x04,0x06,0x04, +0x0b,0x04,0x0b,0x04,0x0b,0x04,0x07,0x07,0x07,0x06,0x06,0x0e,0x0a,0x0e,0x0a,0x10,0x0c,0x10,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x06,0x06,0x0b,0x0b,0x06,0x06,0x09,0x0a,0x04,0x04,0x09,0x0a,0x04,0x04,0x09,0x0a,0x04,0x04,0x0c,0x09,0x0a,0x06,0x07,0x07,0x08,0x04,0x08,0x09,0x06,0x06,0x04,0x04,0x04,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0b,0x04,0x09,0x06,0x06,0x03,0x06,0x06,0x06,0x06,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0e,0x0a,0x0e,0x0a,0x0e,0x0a,0x10,0x0c,0x10,0x0c,0x0a,0x0a,0x0a,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x09,0x06,0x06,0x09,0x06,0x06,0x0b,0x06,0x0d,0x0c,0x0b,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x08,0x08,0x08,0x08,0x08,0x04,0x08,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04, +0x06,0x04,0x04,0x04,0x04,0x00,0x0e,0x0a,0x10,0x0c,0x0b,0x06,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x07,0x07,0x06,0x06,0x05,0x0e,0x0a,0x0c,0x0c,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x07,0x08,0x04,0x08,0x04,0x08,0x04,0x0e,0x0a,0x07,0x08,0x07,0x07,0x07,0x08,0x07,0x07,0x0e,0x0e,0x0a,0x0a,0x05,0x05,0x07,0x07, +0x07,0x07,0x04,0x04,0x04,0x04,0x09,0x0a,0x04,0x04,0x09,0x0a,0x04,0x04,0x09,0x0a,0x04,0x04,0x07,0x07,0x07,0x07,0x0b,0x04,0x0b,0x04,0x07,0x08,0x07,0x07,0x0e,0x0e,0x0a,0x0a,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x03,0x03,0x04,0x03,0x00,0x00,0x00,0x0a,0x04,0x04,0x04,0x04, +0x04,0x04,0x04,0x04,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, +0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x0a,0x07,0x0a,0x07,0x0a,0x07,0x0a,0x08,0x08,0x08,0x03,0x03,0x06,0x05,0x07,0x08,0x07,0x06,0x07,0x07,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x06,0x07,0x07,0x07,0x08,0x07,0x07,0x08,0x06,0x08,0x09,0x08,0x09, +0x0a,0x08,0x09,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x07,0x07,0x08,0x07,0x08,0x07,0x07,0x07,0x06,0x06,0x09,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x0b,0x0b,0x08,0x0b,0x0b,0x09,0x0a,0x0a,0x07,0x09,0x0a,0x09,0x07,0x0a,0x09,0x08,0x08,0x07,0x08,0x09,0x0a,0x08,0x07,0x08,0x07, +0x06,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x08,0x0b,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x0b,0x09,0x0a,0x09,0x09,0x07,0x09,0x08,0x08,0x0a,0x09,0x09,0x0b,0x07,0x06,0x07,0x06,0x07,0x08,0x08,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x07,0x09,0x0a, +0x08,0x08,0x08,0x09,0x08,0x08,0x06,0x06,0x07,0x07,0x06,0x06,0x07,0x07,0x06,0x06,0x08,0x05,0x07,0x06,0x07,0x09,0x07,0x0a,0x06,0x07,0x07,0x09,0x04,0x09,0x08,0x09,0x08,0x07,0x09,0x07,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x06,0x05,0x04,0x04,0x03,0x03, +0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x03,0x03,0x03,0x04,0x04,0x03,0x03,0x03,0x04,0x03,0x03,0x03,0x0b,0x0b,0x0b,0x0b,0x06,0x09,0x09,0x06,0x05,0x06,0x06,0x07,0x06,0x0a,0x0a,0x0a,0x05,0x0c,0x06,0x0a,0x0a,0x0a,0x0a,0x07,0x06,0x06,0x09,0x07,0x09,0x08,0x06,0x05,0x05,0x0c,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x10,0x0a,0x0a,0x05, +0x03,0x05,0x03,0x06,0x03,0x03,0x03,0x06,0x07,0x07,0x07,0x05,0x05,0x03,0x03,0x03,0x05,0x03,0x05,0x0a,0x03,0x0b,0x0b,0x0b,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x08,0x0e,0x0e,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x06,0x07,0x06,0x06,0x05,0x04,0x04,0x08,0x07,0x09,0x05,0x0e,0x0b,0x07,0x07,0x0b,0x0a,0x0a,0x09,0x0c,0x0a,0x0b,0x09,0x08,0x06,0x09,0x07,0x0b,0x09,0x09,0x07,0x09,0x07,0x0a,0x08,0x0b,0x08,0x0d,0x0a,0x09,0x07,0x09,0x07,0x0f,0x0b,0x0a,0x00,0x0c,0x0c,0x0c,0x06,0x00,0x00, +0x07,0x06,0x08,0x07,0x06,0x05,0x0d,0x0b,0x0b,0x0a,0x09,0x07,0x08,0x07,0x06,0x05,0x09,0x07,0x06,0x05,0x0a,0x08,0x08,0x07,0x0c,0x0a,0x06,0x07,0x09,0x09,0x0a,0x05,0x02,0x06,0x08,0x05,0x0c,0x0c,0x03,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x05,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x06,0x07,0x07, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, +0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x06,0x08,0x09,0x03,0x03,0x03, +0x03,0x09,0x07,0x09,0x08,0x07,0x06,0x06,0x06,0x07,0x07,0x05,0x05,0x0e,0x0a,0x0e,0x0b,0x0c,0x0a,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x04,0x06,0x03,0x09,0x07,0x0a,0x08,0x10,0x0c,0x07,0x07,0x08,0x08,0x0a,0x0a,0x09,0x07,0x0c,0x09,0x07,0x05,0x07,0x06,0x07,0x06,0x0b,0x09,0x07,0x06,0x07, +0x07,0x07,0x07,0x06,0x05,0x06,0x05,0x06,0x04,0x06,0x06,0x04,0x08,0x04,0x0b,0x08,0x04,0x07,0x07,0x06,0x09,0x07,0x05,0x04,0x07,0x07,0x07,0x06,0x03,0x09,0x07,0x04,0x04,0x07,0x06,0x09,0x05,0x09,0x07,0x07,0x06,0x08,0x07,0x07,0x06,0x09,0x07,0x07,0x04,0x06,0x05,0x09,0x05,0x06,0x0a,0x06,0x07,0x0b,0x03,0x0e,0x0b,0x0b,0x0e,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x06,0x06,0x08,0x08,0x0b,0x08,0x0b,0x03,0x06,0x07,0x0b,0x0c,0x08,0x0c,0x07,0x07,0x0a,0x08,0x0e,0x0b,0x06,0x0b,0x04,0x0b,0x04,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0c,0x06,0x06,0x0c,0x09,0x06,0x06,0x09,0x08,0x04,0x04,0x08,0x07,0x07,0x07,0x07,0x09,0x04,0x04,0x0a,0x09,0x04,0x04,0x0a,0x05,0x05, +0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x06,0x05,0x07,0x06,0x09,0x07,0x07,0x0b,0x08,0x09,0x09,0x0a,0x0a,0x07,0x06,0x0c,0x0a,0x0d,0x0a,0x08,0x07,0x04,0x04,0x07,0x08,0x05,0x07,0x06,0x07,0x06,0x09,0x0a, +0x05,0x07,0x05,0x03,0x04,0x06,0x07,0x03,0x03,0x02,0x03,0x05,0x05,0x05,0x05,0x12,0x18,0x04,0x05,0x02,0x03,0x05,0x05,0x04,0x06,0x06,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x10,0x06,0x09,0x0b,0x0b,0x08,0x06,0x07,0x09,0x09,0x06,0x04,0x08,0x06,0x08,0x07,0x08,0x06,0x07,0x09,0x07,0x07,0x06, +0x09,0x07,0x0a,0x05,0x06,0x08,0x04,0x07,0x04,0x04,0x03,0x0b,0x07,0x07,0x06,0x06,0x07,0x0b,0x0b,0x0b,0x0c,0x0c,0x07,0x06,0x03,0x06,0x06,0x07,0x05,0x08,0x03,0x07,0x07,0x0a,0x0a,0x07,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04,0x03,0x03,0x04,0x07,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x04,0x00,0x03,0x03,0x03,0x03,0x03,0x14,0x0c,0x0a,0x0d,0x03,0x03,0x04,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x0b,0x04,0x04,0x0b,0x03,0x06,0x06,0x10,0x0c,0x0c,0x10,0x0b,0x06,0x06,0x0b,0x06,0x06,0x05,0x05,0x00,0x00,0x04,0x09,0x07,0x09,0x07,0x0f,0x0c,0x08,0x07,0x08,0x07,0x10,0x0c, +0x09,0x07,0x05,0x04,0x07,0x00,0x08,0x06,0x04,0x04,0x02,0x06,0x04,0x04,0x03,0x02,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x06,0x05,0x07,0x07,0x07,0x0c,0x0b,0x0a,0x09,0x0a,0x0b,0x08,0x08,0x07,0x05,0x0b,0x0e,0x05,0x0e,0x06,0x0a,0x0b,0x0b,0x0b,0x05,0x09,0x0c,0x09,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x07,0x07,0x0a,0x06,0x06,0x0b,0x04,0x04,0x0b,0x04,0x04,0x0b,0x06,0x06,0x00,0x05,0x0a,0x04,0x04,0x0c,0x06,0x06,0x09,0x06,0x06,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x12,0x12,0x0b,0x00,0x00,0x0b,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, +0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x08,0x07,0x08,0x08,0x0b,0x08,0x08,0x0a,0x0c,0x08,0x08,0x0d,0x08,0x08,0x0b,0x08,0x08,0x09,0x08,0x09,0x0a,0x0b,0x08,0x09,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x09,0x07,0x08,0x09,0x07,0x08,0x07,0x09,0x08,0x08,0x08,0x08,0x05,0x06,0x08,0x09,0x09,0x07,0x00,0x00,0x0d,0x1a,0x08,0x00, +0x01,0x04,0x04,0x05,0x08,0x07,0x0b,0x0a,0x03,0x04,0x04,0x05,0x09,0x03,0x05,0x03,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x09,0x09,0x09,0x06,0x0c,0x08,0x07,0x08,0x09,0x07,0x06,0x09,0x09,0x03,0x05,0x08,0x06,0x0c,0x0a,0x0a,0x07,0x0a,0x08,0x07,0x07,0x09,0x08,0x0c,0x08,0x07,0x07,0x04,0x05,0x04,0x09, +0x05,0x03,0x07,0x08,0x06,0x08,0x07,0x04,0x08,0x07,0x03,0x03,0x06,0x03,0x0b,0x07,0x08,0x08,0x08,0x05,0x06,0x04,0x07,0x06,0x09,0x06,0x06,0x06,0x04,0x03,0x04,0x09,0x08,0x08,0x08,0x07,0x0a,0x0a,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x07,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07, +0x05,0x05,0x07,0x07,0x06,0x05,0x06,0x07,0x05,0x0c,0x0c,0x0a,0x04,0x05,0x09,0x0b,0x0a,0x0b,0x09,0x09,0x09,0x07,0x08,0x07,0x08,0x0a,0x07,0x05,0x06,0x0a,0x0b,0x08,0x06,0x04,0x04,0x09,0x08,0x07,0x09,0x08,0x07,0x07,0x09,0x08,0x08,0x0a,0x0c,0x0c,0x07,0x0d,0x05,0x05,0x03,0x03,0x09,0x08,0x06,0x07,0x02,0x07,0x04,0x04,0x07,0x07, +0x05,0x03,0x03,0x05,0x10,0x08,0x07,0x08,0x07,0x07,0x03,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x03,0x05,0x04,0x04,0x04,0x03,0x04,0x03,0x04,0x02,0x05,0x06,0x03,0x07,0x06,0x07,0x06,0x03,0x09,0x07,0x07,0x06,0x07,0x08,0x09,0x09,0x05,0x05,0x05,0x0c,0x0c,0x0c,0x06,0x09,0x08,0x03,0x07,0x06,0x08,0x06,0x08,0x06,0x08,0x05, +0x03,0x08,0x07,0x08,0x07,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x06,0x03,0x06,0x04,0x06,0x04,0x0a,0x07,0x0a,0x07,0x0a,0x08,0x08,0x05,0x08,0x05,0x07,0x06,0x07,0x04,0x07,0x06,0x09,0x07,0x09,0x07,0x07,0x06,0x07,0x06,0x06,0x0a,0x09,0x08,0x08,0x06,0x07,0x06,0x09,0x05,0x06,0x05,0x0e,0x08,0x06,0x08,0x03,0x05,0x0a,0x04,0x08,0x05, +0x05,0x08,0x05,0x08,0x07,0x08,0x06,0x08,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x07,0x09,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x03,0x08,0x06,0x06,0x06,0x03,0x0a,0x07,0x0a,0x07,0x0a,0x08,0x0a,0x08,0x08,0x05,0x07,0x06,0x07,0x04,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x0c,0x09, +0x07,0x06,0x03,0x08,0x07,0x0b,0x0b,0x0a,0x08,0x03,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x07,0x06,0x03,0x05,0x07,0x08,0x0c,0x0c,0x0c,0x0c,0x05,0x05,0x03,0x04,0x04,0x08,0x07,0x0a,0x05,0x0a,0x09,0x0b,0x03,0x08,0x07,0x07,0x07,0x09,0x03,0x08,0x08,0x0c,0x0a,0x07,0x0a,0x09,0x07,0x07,0x07,0x07,0x08,0x0b,0x0a,0x03,0x07,0x08,0x06,0x07, +0x03,0x07,0x07,0x07,0x06,0x07,0x08,0x03,0x07,0x06,0x07,0x07,0x06,0x08,0x08,0x06,0x07,0x07,0x09,0x0b,0x03,0x07,0x08,0x07,0x0b,0x07,0x09,0x06,0x08,0x07,0x03,0x0d,0x0d,0x09,0x08,0x07,0x09,0x08,0x07,0x07,0x06,0x09,0x07,0x0b,0x07,0x0a,0x0a,0x08,0x09,0x0c,0x09,0x0a,0x09,0x07,0x08,0x07,0x07,0x09,0x08,0x0a,0x09,0x0d,0x0e,0x09, +0x0a,0x07,0x08,0x0d,0x08,0x07,0x08,0x07,0x05,0x07,0x07,0x09,0x06,0x07,0x07,0x06,0x07,0x09,0x07,0x08,0x07,0x08,0x06,0x05,0x06,0x09,0x06,0x07,0x07,0x0b,0x0b,0x08,0x09,0x07,0x06,0x0b,0x07,0x07,0x07,0x05,0x06,0x06,0x03,0x0b,0x0b,0x07,0x06,0x06,0x07,0x06,0x05,0x0d,0x0f,0x08,0x05,0x05,0x05,0x05,0x03,0x07,0x06,0x07,0x0a,0x08, +0x09,0x08,0x04,0x04,0x03,0x03,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x06,0x04,0x06,0x04,0x04,0x04,0x06,0x06,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03, +0x03,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x09,0x07,0x09,0x07,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x04,0x07,0x07,0x0a,0x07,0x03,0x05,0x03,0x03,0x07,0x05,0x0c,0x0a,0x08,0x07,0x08,0x06,0x0a, +0x07,0x07,0x07,0x07,0x07,0x08,0x06,0x09,0x07,0x09,0x07,0x09,0x07,0x0a,0x08,0x04,0x04,0x04,0x04,0x05,0x05,0x06,0x06,0x06,0x06,0x03,0x03,0x04,0x04,0x04,0x04,0x07,0x07,0x08,0x07,0x07,0x08,0x07,0x08,0x07,0x08,0x08,0x06,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06, +0x04,0x09,0x08,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x03,0x03,0x03,0x03,0x08,0x06,0x08,0x06,0x08,0x06,0x06,0x03,0x06,0x03,0x06,0x03,0x06,0x03,0x0c,0x0b,0x0c,0x0b,0x0c,0x0b,0x0a,0x07,0x0a,0x07,0x0a,0x07,0x0a,0x07,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x07,0x08,0x07,0x08,0x08,0x05,0x08,0x05,0x08,0x05,0x08, +0x05,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x06,0x08,0x06,0x0c,0x09,0x0c,0x09,0x08,0x06,0x08,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x04,0x09,0x06,0x07,0x03,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x06,0x06,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x07, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x08,0x08,0x06,0x06,0x07,0x07,0x03,0x03,0x08,0x08,0x07,0x07,0x0b,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x09,0x08,0x08,0x08,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05, +0x05,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x08,0x08,0x07,0x07,0x07,0x07,0x09,0x09,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x06,0x09,0x0a,0x07,0x08,0x08,0x07,0x07,0x06,0x09, +0x08,0x0b,0x04,0x04,0x08,0x06,0x03,0x06,0x0c,0x0a,0x07,0x0a,0x0d,0x0a,0x08,0x08,0x07,0x07,0x06,0x07,0x04,0x04,0x07,0x04,0x07,0x0a,0x09,0x07,0x07,0x07,0x06,0x08,0x08,0x06,0x05,0x07,0x07,0x05,0x05,0x07,0x03,0x05,0x06,0x04,0x10,0x0f,0x0d,0x0b,0x09,0x07,0x0e,0x0d,0x0b,0x08,0x07,0x03,0x03,0x0a,0x08,0x09,0x07,0x09,0x07,0x09, +0x07,0x09,0x07,0x09,0x07,0x07,0x08,0x07,0x08,0x07,0x0b,0x0b,0x09,0x08,0x09,0x08,0x08,0x06,0x0a,0x08,0x0a,0x08,0x08,0x06,0x03,0x10,0x0f,0x0d,0x09,0x08,0x0d,0x09,0x0a,0x07,0x08,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x0a,0x08,0x0a,0x08,0x07,0x05,0x08,0x05,0x09,0x07,0x09,0x07,0x07,0x06,0x09,0x07,0x0a,0x08, +0x07,0x07,0x06,0x08,0x07,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x07,0x06,0x08,0x07,0x07,0x07,0x08,0x07,0x08,0x08,0x08,0x06,0x06,0x08,0x08,0x07,0x08,0x05,0x05,0x07,0x07,0x04,0x08,0x08,0x07,0x06,0x06,0x07,0x07,0x07,0x03,0x04,0x04,0x04,0x05,0x03,0x08,0x0b,0x0b,0x0b,0x07,0x07,0x08,0x08,0x09,0x09,0x08,0x05,0x05,0x05,0x05, +0x05,0x04,0x04,0x06,0x06,0x05,0x03,0x03,0x04,0x04,0x04,0x04,0x08,0x08,0x07,0x06,0x09,0x06,0x05,0x06,0x07,0x06,0x06,0x05,0x05,0x05,0x06,0x08,0x06,0x07,0x07,0x07,0x03,0x06,0x05,0x08,0x05,0x05,0x0c,0x0c,0x0d,0x08,0x06,0x09,0x0a,0x08,0x07,0x06,0x06,0x07,0x08,0x07,0x09,0x07,0x08,0x0a,0x07,0x09,0x08,0x08,0x06,0x06,0x06,0x08, +0x07,0x08,0x06,0x0c,0x0b,0x08,0x07,0x08,0x07,0x08,0x06,0x08,0x06,0x09,0x08,0x07,0x05,0x07,0x08,0x06,0x03,0x0a,0x06,0x06,0x0b,0x09,0x08,0x08,0x0c,0x09,0x09,0x06,0x0b,0x09,0x09,0x07,0x0c,0x0a,0x07,0x06,0x0a,0x0a,0x0a,0x08,0x09,0x08,0x09,0x08,0x11,0x0f,0x0b,0x08,0x0f,0x0c,0x0b,0x09,0x08,0x06,0x07,0x05,0x05,0x00,0x00,0x0d, +0x0c,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x06,0x08,0x06,0x09,0x08,0x0b,0x09,0x0d,0x0b,0x09,0x07,0x08,0x06,0x07,0x05,0x0b,0x09,0x09,0x08,0x0b,0x08,0x0b,0x08,0x03,0x0b,0x09,0x08,0x07,0x09,0x08,0x09,0x07,0x08,0x07,0x08,0x07,0x0b,0x0b,0x07,0x07,0x09,0x07,0x09,0x07,0x0b,0x09,0x07,0x06,0x07,0x06,0x0a,0x07,0x0a,0x07,0x0a,0x08, +0x0a,0x08,0x08,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x09,0x07,0x0a,0x09,0x07,0x08,0x0b,0x0b,0x0a,0x09,0x07,0x06,0x0c,0x0a,0x0d,0x0b,0x09,0x07,0x09,0x08,0x08,0x07,0x07,0x07,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x08,0x04,0x04,0x02,0x03,0x03,0x03,0x04,0x05,0x04,0x03,0x05,0x03, +0x03,0x03,0x04,0x04,0x03,0x03,0x08,0x08,0x08,0x08,0x04,0x04,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x02,0x03,0x04,0x03,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x05,0x04,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07, +0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07, +0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x08,0x04, +0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x08,0x06,0x09,0x0b,0x06,0x06,0x07,0x07,0x05,0x05,0x03,0x04,0x06,0x05,0x09,0x07,0x08,0x06,0x08,0x08,0x08,0x0c,0x07,0x08,0x08,0x06,0x06,0x06,0x05,0x07,0x07,0x09,0x07, +0x06,0x09,0x06,0x05,0x05,0x07,0x05,0x06,0x07,0x06,0x08,0x07,0x05,0x06,0x05,0x05,0x05,0x04,0x04,0x05,0x06,0x02,0x03,0x05,0x04,0x07,0x06,0x06,0x06,0x05,0x04,0x04,0x04,0x05,0x07,0x04,0x04,0x05,0x06,0x05,0x05,0x04,0x04,0x03,0x03,0x05,0x02,0x04,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x06,0x04,0x04,0x04,0x04,0x04, +0x05,0x04,0x02,0x03,0x04,0x04,0x04,0x04,0x05,0x05,0x04,0x08,0x02,0x05,0x07,0x0b,0x08,0x07,0x07,0x0b,0x08,0x0b,0x0a,0x07,0x08,0x07,0x06,0x0f,0x06,0x08,0x0c,0x0c,0x0c,0x08,0x08,0x08,0x06,0x06,0x07,0x06,0x06,0x07,0x03,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x06,0x05,0x08,0x08,0x04,0x0b,0x07,0x08,0x05,0x04,0x06,0x04,0x06, +0x08,0x06,0x08,0x0c,0x08,0x04,0x03,0x08,0x07,0x08,0x08,0x08,0x04,0x08,0x06,0x03,0x0b,0x07,0x08,0x05,0x06,0x06,0x06,0x06,0x06,0x07,0x08,0x08,0x07,0x06,0x06,0x0a,0x03,0x06,0x03,0x07,0x06,0x05,0x03,0x03,0x04,0x03,0x02,0x02,0x05,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x06,0x06,0x04,0x04,0x05,0x04,0x05,0x03,0x02,0x03, +0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x00,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x03,0x04,0x07,0x07,0x07,0x07,0x04,0x00,0x00,0x00,0x00,0x06,0x04,0x03,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x02,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x0a,0x08,0x09,0x08,0x0a,0x08,0x0c,0x0a,0x07,0x05,0x07,0x09,0x07,0x0b, +0x09,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0d,0x05,0x03,0x07,0x08,0x05,0x07,0x07,0x08,0x08,0x07,0x0d,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x08,0x07,0x07,0x07,0x04,0x08,0x04,0x0a,0x09,0x07,0x04,0x0b,0x07,0x0b,0x03,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x0b,0x03,0x08,0x03,0x07,0x05,0x03,0x03,0x07,0x03,0x0a,0x03,0x0c,0x07,0x0c,0x0c,0x08,0x08,0x08,0x07,0x07,0x05,0x05,0x0f,0x0f,0x11,0x11,0x0b,0x0b,0x07,0x07,0x02,0x0d,0x0a,0x0b,0x09,0x08,0x09,0x07,0x07,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x03,0x08,0x00,0x08,0x08,0x08,0x04,0x07,0x07,0x0c,0x04,0x0c,0x04, +0x08,0x09,0x08,0x05,0x0c,0x07,0x0c,0x07,0x0a,0x0b,0x04,0x07,0x07,0x05,0x03,0x07,0x08,0x07,0x08,0x07,0x08,0x08,0x07,0x09,0x08,0x0c,0x04,0x07,0x05,0x09,0x07,0x04,0x07,0x07,0x07,0x0c,0x04,0x0c,0x04,0x03,0x08,0x05,0x0d,0x07,0x07,0x08,0x08,0x0d,0x07,0x00,0x00,0x00,0x08,0x00,0x08,0x08,0x08,0x08,0x0a,0x08,0x00,0x00,0x03,0x03, +0x03,0x03,0x03,0x03,0x05,0x05,0x07,0x07,0x0a,0x0b,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x05,0x05,0x07,0x05,0x05,0x05,0x0f,0x0b,0x0f,0x0b,0x0f,0x0b,0x11,0x0d,0x11, +0x0d,0x0b,0x07,0x08,0x08,0x08,0x0d,0x0d,0x07,0x07,0x0d,0x07,0x07,0x0d,0x07,0x07,0x0d,0x07,0x07,0x0a,0x0a,0x0e,0x0d,0x0c,0x07,0x0b,0x07,0x0b,0x07,0x0b,0x07,0x0c,0x07,0x0c,0x07,0x0c,0x07,0x0c,0x07,0x0c,0x07,0x09,0x04,0x09,0x04,0x09,0x04,0x09,0x04,0x09,0x04,0x09,0x09,0x04,0x09,0x04,0x07,0x09,0x08,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x0b,0x0c,0x0a,0x0b,0x04,0x07,0x0a,0x0b,0x0a,0x0b,0x00,0x00,0x00,0x00,0x00,0x0f,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x08,0x00,0x00,0x00,0x0f,0x0b,0x11,0x0d,0x07,0x08,0x08,0x08,0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x0c,0x0c,0x05,0x08, +0x08,0x08,0x10,0x0b,0x07,0x14,0x0e,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x05,0x05,0x0a,0x09,0x09,0x07,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x10,0x14,0x00,0x00,0x00,0x00,0x00,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x05,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x08,0x08, +0x08,0x08,0x09,0x08,0x07,0x07,0x05,0x0f,0x0b,0x07,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x0d,0x07,0x07,0x0d,0x07,0x07,0x0c,0x07,0x07,0x0c,0x07,0x07,0x0c,0x07,0x07,0x08,0x08,0x08,0x08,0x09,0x04,0x09,0x04,0x09,0x04,0x09,0x09,0x04,0x04,0x05,0x05,0x0f,0x0b,0x08,0x08,0x08,0x00,0x07,0x07,0x07,0x05,0x07,0x09, +0x08,0x07,0x07,0x05,0x03,0x0a,0x08,0x08,0x05,0x07,0x06,0x06,0x06,0x06,0x03,0x07,0x05,0x08,0x06,0x08,0x06,0x07,0x06,0x09,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x06,0x06,0x06,0x04,0x07,0x07,0x08,0x07,0x04,0x0a,0x08,0x08,0x07,0x08,0x06,0x07,0x07,0x05,0x09,0x05,0x05,0x05,0x06,0x08,0x08,0x07,0x0d,0x07,0x0d, +0x04,0x03,0x02,0x07,0x03,0x02,0x00,0x02,0x03,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x0c,0x06,0x0a,0x08,0x0c,0x09,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0b,0x06,0x0b,0x06,0x0b,0x08,0x09,0x09,0x09,0x0a,0x0b,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09, +0x09,0x0a,0x08,0x0e,0x0b,0x06,0x06,0x04,0x04,0x04,0x05,0x03,0x07,0x03,0x03,0x0b,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x08,0x07,0x06,0x06,0x09,0x03,0x04,0x09,0x09,0x03,0x07,0x07,0x07,0x09,0x09,0x03,0x05,0x09,0x08,0x08,0x08,0x07,0x08,0x09,0x07,0x0a, +0x09,0x07,0x07,0x07,0x03,0x05,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x06,0x09,0x07,0x07,0x09,0x07,0x09,0x07,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x07,0x06,0x06,0x09,0x04,0x05,0x09,0x04,0x07,0x07,0x07,0x09,0x05,0x09,0x08,0x08,0x08,0x09,0x07,0x0a,0x09,0x03,0x07,0x07,0x08,0x08,0x10,0x00,0x08,0x07,0x08,0x08,0x08,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x03,0x00,0x0a,0x08,0x09,0x09,0x07,0x09,0x0a,0x0a,0x06,0x08,0x0a,0x0a,0x09,0x0a,0x0b,0x0a,0x09,0x07,0x07,0x0a,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x0a,0x07,0x08,0x09,0x09, +0x0a,0x08,0x08,0x08,0x09,0x0b,0x06,0x08,0x08,0x0b,0x07,0x07,0x0a,0x0c,0x08,0x07,0x0e,0x07,0x07,0x0a,0x07,0x07,0x0a,0x07,0x0a,0x0b,0x0b,0x07,0x0a,0x07,0x09,0x07,0x08,0x07,0x08,0x07,0x08,0x0a,0x07,0x08,0x09,0x07,0x07,0x08,0x0c,0x07,0x07,0x08,0x08,0x06,0x04,0x07,0x07,0x07,0x07,0x07,0x0b,0x07,0x0c,0x06,0x07,0x0c,0x09,0x07, +0x0c,0x0a,0x0a,0x0b,0x07,0x07,0x0c,0x0c,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x08,0x07,0x07,0x0c,0x08,0x07,0x07,0x07,0x0b,0x0a,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x0a,0x09,0x08,0x07,0x0a,0x09,0x09,0x07,0x09,0x09,0x0a,0x09,0x08,0x09,0x09,0x09,0x09,0x0a,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x0a,0x09,0x0a,0x09,0x01, +0x01,0x02,0x03,0x02,0x04,0x05,0x0b,0x07,0x08,0x08,0x07,0x08,0x07,0x07,0x08,0x08,0x07,0x04,0x0b,0x08,0x07,0x07,0x07,0x08,0x07,0x08,0x03,0x08,0x07,0x07,0x05,0x0b,0x07,0x07,0x07,0x08,0x0b,0x07,0x08,0x05,0x0b,0x08,0x08,0x09,0x09,0x03,0x04,0x0f,0x0f,0x0f,0x0f,0x13,0x07,0x07,0x03,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x06,0x07,0x08,0x06,0x05,0x07,0x08,0x03,0x04,0x06,0x05,0x0a,0x08,0x08,0x06,0x08,0x06,0x05,0x06,0x08,0x07,0x0a, +0x07,0x06,0x06,0x09,0x0a,0x05,0x08,0x06,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x08,0x08,0x03,0x03,0x03,0x03,0x03,0x07,0x04,0x06,0x05,0x05, +0x05,0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x09,0x08,0x07,0x06,0x05,0x07,0x06,0x06,0x08,0x08,0x03,0x06,0x07,0x0a,0x08,0x06,0x08,0x08,0x06,0x06,0x06,0x06,0x08,0x07,0x09,0x08,0x07, +0x06,0x08,0x03,0x08,0x06,0x08,0x03,0x06,0x06,0x07,0x05,0x07,0x05,0x03,0x03,0x04,0x0b,0x0b,0x08,0x06,0x06,0x08,0x07,0x06,0x06,0x05,0x08,0x06,0x0a,0x06,0x08,0x08,0x06,0x07,0x0a,0x08,0x08,0x08,0x06,0x07,0x06,0x06,0x08,0x07,0x08,0x07,0x0a,0x0b,0x07,0x09,0x06,0x07,0x0b,0x06,0x05,0x08,0x08,0x08,0x0c,0x0c,0x09,0x07,0x07,0x05, +0x07,0x07,0x07,0x09,0x07,0x07,0x09,0x08,0x08,0x05,0x08,0x08,0x07,0x06,0x06,0x0c,0x0a,0x06,0x07,0x08,0x08,0x08,0x08,0x09,0x09,0x05,0x0c,0x08,0x07,0x07,0x08,0x08,0x07,0x07,0x03,0x0a,0x09,0x09,0x06,0x09,0x03,0x03,0x06,0x06,0x03,0x03,0x08,0x05,0x03,0x0a,0x09,0x04,0x03,0x03,0x06,0x05,0x05,0x03,0x03,0x03,0x05,0x09,0x06,0x04, +0x08,0x09,0x08,0x08,0x06,0x0a,0x07,0x08,0x05,0x06,0x07,0x06,0x03,0x03,0x05,0x07,0x04,0x09,0x09,0x09,0x0c,0x0a,0x0c,0x03,0x00,0x00,0x00,0x00,0x00,0x03,0x0a,0x0b,0x04,0x04,0x07,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x08,0x08,0x08,0x07,0x07,0x0f,0x0b,0x0f,0x0b,0x11,0x0d,0x11,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x07, +0x07,0x0c,0x0c,0x07,0x07,0x0a,0x0b,0x04,0x04,0x0a,0x0b,0x04,0x04,0x0a,0x0b,0x04,0x04,0x0d,0x0a,0x0b,0x07,0x08,0x08,0x09,0x04,0x09,0x0a,0x07,0x07,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0c,0x04,0x0a,0x07,0x07,0x03,0x07,0x07,0x07,0x07,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04, +0x0c,0x04,0x0c,0x04,0x0c,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0f,0x0b,0x0f,0x0b,0x0f,0x0b,0x11,0x0d,0x11,0x0d,0x0b,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x07,0x07,0x0a,0x07,0x07,0x0c,0x07,0x0e,0x0d,0x0c,0x07,0x0b,0x07,0x0b,0x07,0x0b,0x07,0x0c,0x07,0x0c,0x07,0x0c, +0x07,0x0c,0x07,0x0c,0x07,0x0c,0x07,0x09,0x09,0x09,0x09,0x09,0x04,0x09,0x09,0x04,0x04,0x09,0x04,0x09,0x04,0x09,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0x00,0x0f,0x0b,0x11,0x0d,0x0c,0x07,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x08,0x08,0x07,0x07, +0x05,0x0f,0x0b,0x0d,0x0d,0x0c,0x0c,0x0c,0x08,0x08,0x08,0x08,0x09,0x04,0x09,0x04,0x09,0x04,0x0f,0x0b,0x08,0x09,0x08,0x08,0x08,0x09,0x08,0x08,0x0f,0x0f,0x0b,0x0b,0x05,0x05,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x0a,0x0b,0x04,0x04,0x0a,0x0b,0x04,0x04,0x0a,0x0b,0x04,0x04,0x08,0x08,0x08,0x08,0x0c,0x04,0x0c,0x04,0x08,0x09, +0x08,0x08,0x0f,0x0f,0x0b,0x0b,0x0f,0x0f,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x03,0x03,0x04,0x03,0x00,0x00,0x00,0x0b,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x09,0x09,0x09,0x03,0x03, +0x07,0x05,0x08,0x08,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x08,0x08,0x08,0x09,0x08,0x07,0x08,0x07,0x09,0x0a,0x08,0x0a,0x0b,0x08,0x0a,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x08,0x08,0x09,0x07,0x08,0x07,0x08,0x08,0x07,0x07,0x0a, +0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x09,0x0c,0x0c,0x0a,0x0b,0x0b,0x07,0x0a,0x0b,0x0a,0x08,0x0b,0x0a,0x09,0x09,0x08,0x08,0x0a,0x0a,0x09,0x08,0x09,0x08,0x07,0x0c,0x0c,0x0c,0x0b,0x0c,0x0c,0x09,0x0c,0x0c,0x09,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x0b,0x0a,0x0b,0x09,0x09,0x08,0x0a,0x09,0x09,0x0b,0x0a, +0x09,0x0c,0x07,0x07,0x07,0x07,0x08,0x08,0x09,0x0a,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x06,0x07,0x07,0x08,0x08,0x0a,0x0b,0x09,0x09,0x08,0x0a,0x08,0x09,0x07,0x06,0x08,0x07,0x06,0x06,0x07,0x07,0x06,0x06,0x08,0x06,0x07,0x06,0x07,0x0a,0x07,0x0b,0x07,0x07,0x07,0x0a, +0x04,0x0a,0x09,0x09,0x09,0x07,0x0a,0x08,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x08,0x03,0x03,0x03,0x04,0x04,0x03,0x03,0x03,0x04,0x03,0x03,0x03,0x0c,0x0c,0x0c,0x0c,0x06,0x0a,0x09,0x06,0x05, +0x06,0x07,0x07,0x06,0x0b,0x0b,0x0b,0x06,0x0d,0x06,0x0b,0x0b,0x0b,0x0b,0x07,0x06,0x06,0x0a,0x08,0x0a,0x09,0x07,0x06,0x05,0x0d,0x05,0x07,0x06,0x06,0x06,0x06,0x06,0x12,0x0b,0x0b,0x06,0x03,0x06,0x03,0x06,0x03,0x03,0x03,0x06,0x08,0x08,0x07,0x05,0x05,0x03,0x03,0x03,0x05,0x03,0x05,0x0b,0x03,0x0c,0x0c,0x0c,0x08,0x08,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x09,0x0f,0x0f,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x06,0x08,0x06,0x07,0x06,0x05,0x05,0x09,0x07,0x09,0x06,0x0f,0x0c,0x08,0x07,0x0c,0x0a, +0x0b,0x0a,0x0d,0x0b,0x0c,0x0a,0x08,0x06,0x09,0x08,0x0c,0x0a,0x0a,0x08,0x0a,0x08,0x0b,0x09,0x0b,0x09,0x0e,0x0b,0x0a,0x08,0x0a,0x08,0x10,0x0c,0x0a,0x00,0x0d,0x0d,0x0d,0x06,0x00,0x00,0x08,0x07,0x09,0x07,0x07,0x06,0x0e,0x0c,0x0c,0x0b,0x09,0x08,0x09,0x08,0x07,0x05,0x0a,0x08,0x07,0x05,0x0b,0x09,0x09,0x07,0x0d,0x0b,0x07,0x07, +0x0a,0x0a,0x0b,0x06,0x03,0x06,0x09,0x06,0x0d,0x0d,0x03,0x00,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x05,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x09,0x09,0x04,0x03,0x04,0x03,0x09,0x07,0x0a,0x08,0x07,0x06,0x07,0x06,0x08,0x07,0x05,0x05,0x0f,0x0b,0x0f,0x0c,0x0d,0x0b,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x08,0x06,0x08, +0x06,0x08,0x06,0x08,0x06,0x07,0x04,0x06,0x03,0x0a,0x08,0x0b,0x09,0x11,0x0d,0x07,0x08,0x09,0x09,0x0b,0x0b,0x0a,0x08,0x0d,0x0a,0x07,0x05,0x07,0x06,0x08,0x06,0x0c,0x09,0x08,0x07,0x07,0x08,0x07,0x08,0x06,0x05,0x06,0x05,0x06,0x05,0x07,0x07,0x04,0x09,0x04,0x0c,0x09,0x05,0x08,0x08,0x06,0x0a,0x07,0x05,0x05,0x08,0x08,0x08,0x06, +0x03,0x0a,0x08,0x05,0x05,0x08,0x06,0x09,0x05,0x0a,0x08,0x08,0x06,0x09,0x08,0x08,0x06,0x0a,0x07,0x08,0x05,0x07,0x06,0x0a,0x06,0x07,0x0b,0x06,0x07,0x0c,0x03,0x0f,0x0c,0x0c,0x0f,0x0b,0x0c,0x0c,0x0b,0x0c,0x0c,0x07,0x06,0x08,0x09,0x0c,0x09,0x0c,0x03,0x06,0x08,0x0b,0x0d,0x09,0x0d,0x08,0x08,0x0a,0x09,0x0f,0x0c,0x07,0x0c,0x04, +0x0c,0x04,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x0d,0x07,0x07,0x0d,0x0a,0x07,0x07,0x0a,0x09,0x04,0x04,0x09,0x08,0x08,0x08,0x08,0x0a,0x04,0x04,0x0b,0x0a,0x04,0x04,0x0b,0x05,0x05,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x14,0x07,0x05,0x07,0x07,0x0a,0x07,0x08,0x0b,0x09,0x0a,0x0a,0x0b,0x0b,0x08,0x06,0x0d,0x0a,0x0e,0x0b,0x09,0x08,0x04,0x04,0x08,0x08,0x05,0x08,0x07,0x08,0x06,0x0a,0x0a,0x05,0x08,0x06,0x03,0x05,0x07,0x07,0x03,0x03,0x02,0x03,0x05,0x05,0x05,0x06,0x13,0x1a,0x04,0x05,0x02,0x03,0x05,0x06,0x04,0x06,0x07,0x05,0x05, +0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x11,0x07,0x0a,0x0c,0x0c,0x08,0x06,0x07,0x09,0x0a,0x06,0x04,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x0a,0x08,0x08,0x07,0x0a,0x08,0x0b,0x06,0x07,0x08,0x04,0x08,0x04,0x05,0x03,0x0b,0x08,0x07,0x07,0x07,0x08,0x0c,0x0c,0x0c,0x0d,0x0d,0x07,0x07,0x04,0x07,0x06,0x08, +0x06,0x09,0x03,0x07,0x08,0x0b,0x0b,0x08,0x07,0x07,0x07,0x07,0x06,0x07,0x06,0x06,0x04,0x04,0x03,0x03,0x05,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x04,0x04,0x04,0x03,0x03,0x16,0x0d,0x0b,0x0e,0x04,0x04,0x04,0x05,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, +0x04,0x00,0x0c,0x04,0x04,0x0c,0x03,0x07,0x07,0x11,0x0d,0x0d,0x11,0x0c,0x07,0x07,0x0c,0x07,0x07,0x05,0x05,0x00,0x00,0x05,0x0a,0x08,0x09,0x08,0x10,0x0d,0x09,0x07,0x09,0x07,0x11,0x0d,0x0a,0x08,0x05,0x04,0x08,0x00,0x09,0x07,0x04,0x04,0x02,0x06,0x04,0x04,0x03,0x03,0x06,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x07,0x06, +0x08,0x07,0x07,0x0d,0x0b,0x0a,0x0a,0x0b,0x0c,0x08,0x09,0x08,0x05,0x0c,0x0f,0x06,0x0f,0x07,0x0b,0x0c,0x0c,0x0c,0x05,0x0a,0x0d,0x0a,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x08,0x08,0x08,0x0b,0x07,0x07,0x0c,0x04,0x04,0x0c,0x04,0x04,0x0c,0x06,0x06,0x00,0x05,0x0b,0x04,0x04,0x0d, +0x07,0x07,0x0a,0x07,0x07,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x14,0x14,0x0b,0x00,0x00,0x0b,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x08,0x08,0x08,0x0c,0x08,0x08,0x0a,0x0d,0x08,0x08,0x0e,0x08,0x08,0x0c,0x08,0x09,0x0a,0x08,0x0a, +0x0b,0x0c,0x08,0x0a,0x08,0x09,0x08,0x09,0x08,0x09,0x09,0x08,0x0a,0x08,0x09,0x0a,0x08,0x08,0x07,0x0a,0x08,0x08,0x08,0x09,0x06,0x07,0x08,0x0a,0x0a,0x07,0x00,0x00,0x0f,0x1e,0x0a,0x00,0x01,0x04,0x04,0x06,0x09,0x08,0x0c,0x0c,0x03,0x05,0x05,0x06,0x0a,0x03,0x06,0x03,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x03, +0x03,0x0a,0x0a,0x0a,0x07,0x0e,0x0a,0x09,0x09,0x0b,0x08,0x07,0x0a,0x0b,0x04,0x05,0x09,0x07,0x0d,0x0b,0x0b,0x08,0x0b,0x09,0x08,0x08,0x0a,0x09,0x0e,0x09,0x08,0x09,0x05,0x06,0x05,0x0a,0x06,0x04,0x08,0x09,0x07,0x09,0x08,0x05,0x09,0x08,0x04,0x04,0x07,0x04,0x0d,0x08,0x09,0x09,0x09,0x05,0x06,0x05,0x08,0x07,0x0b,0x07,0x07,0x07, +0x05,0x04,0x05,0x0a,0x0a,0x0a,0x09,0x08,0x0b,0x0b,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x08,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x06,0x06,0x08,0x08,0x07,0x06,0x07,0x08,0x06,0x0d,0x0d,0x0c,0x04,0x06,0x0a,0x0d,0x0b,0x0c,0x0a,0x0a,0x0a,0x08,0x09,0x08,0x09,0x0b,0x08,0x06, +0x06,0x0b,0x0c,0x09,0x07,0x04,0x04,0x0a,0x0a,0x08,0x0a,0x0a,0x08,0x08,0x0b,0x0a,0x0a,0x0b,0x0e,0x0e,0x08,0x0f,0x06,0x06,0x03,0x03,0x0a,0x09,0x07,0x08,0x03,0x08,0x05,0x05,0x08,0x08,0x06,0x03,0x03,0x06,0x12,0x0a,0x08,0x0a,0x08,0x08,0x04,0x04,0x04,0x04,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x04,0x06,0x05,0x05,0x05,0x03,0x04,0x03, +0x05,0x03,0x06,0x07,0x04,0x08,0x06,0x09,0x07,0x04,0x0b,0x08,0x08,0x07,0x08,0x09,0x0a,0x0a,0x05,0x06,0x06,0x0e,0x0e,0x0e,0x07,0x0a,0x09,0x04,0x08,0x06,0x09,0x07,0x09,0x07,0x09,0x06,0x03,0x0a,0x08,0x0a,0x08,0x0b,0x0a,0x0b,0x08,0x08,0x08,0x08,0x07,0x04,0x07,0x05,0x07,0x05,0x0b,0x08,0x0b,0x08,0x0b,0x09,0x09,0x05,0x09,0x05, +0x08,0x06,0x08,0x05,0x08,0x07,0x0a,0x08,0x0a,0x08,0x09,0x07,0x09,0x07,0x07,0x0b,0x0b,0x09,0x09,0x07,0x09,0x07,0x0a,0x06,0x07,0x06,0x11,0x09,0x07,0x09,0x03,0x06,0x0c,0x05,0x09,0x05,0x05,0x09,0x05,0x0a,0x08,0x09,0x07,0x09,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x09,0x0a,0x09,0x0a,0x09,0x0b,0x08,0x0b,0x08,0x04,0x04,0x04, +0x04,0x04,0x04,0x04,0x04,0x05,0x04,0x09,0x07,0x07,0x07,0x04,0x0b,0x08,0x0b,0x08,0x0b,0x09,0x0b,0x09,0x09,0x05,0x08,0x06,0x08,0x05,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0e,0x0b,0x08,0x07,0x04,0x0a,0x08,0x0d,0x0c,0x0b,0x09,0x03,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x08,0x07,0x03,0x06,0x08,0x09,0x0e,0x0e,0x0e,0x0d,0x06,0x06, +0x03,0x04,0x04,0x0a,0x09,0x0c,0x06,0x0c,0x0a,0x0c,0x04,0x0a,0x09,0x08,0x09,0x0b,0x04,0x09,0x09,0x0d,0x0b,0x08,0x0b,0x0b,0x08,0x08,0x08,0x08,0x09,0x0c,0x0b,0x04,0x08,0x09,0x07,0x09,0x04,0x08,0x08,0x08,0x07,0x09,0x09,0x04,0x08,0x07,0x09,0x08,0x07,0x09,0x09,0x07,0x08,0x08,0x0b,0x0c,0x04,0x08,0x09,0x08,0x0c,0x08,0x0b,0x07, +0x09,0x08,0x04,0x0f,0x0f,0x0b,0x09,0x09,0x0b,0x0a,0x09,0x09,0x07,0x0a,0x08,0x0d,0x08,0x0b,0x0b,0x09,0x0a,0x0d,0x0b,0x0b,0x0b,0x08,0x09,0x08,0x09,0x0b,0x09,0x0b,0x0a,0x0e,0x0f,0x0b,0x0c,0x09,0x09,0x0f,0x09,0x08,0x09,0x08,0x06,0x08,0x08,0x0b,0x07,0x09,0x09,0x07,0x08,0x0b,0x09,0x09,0x09,0x09,0x07,0x06,0x07,0x0a,0x07,0x09, +0x08,0x0c,0x0c,0x09,0x0b,0x08,0x07,0x0c,0x08,0x08,0x09,0x06,0x07,0x06,0x04,0x0c,0x0c,0x09,0x07,0x07,0x09,0x07,0x06,0x0f,0x11,0x09,0x05,0x06,0x06,0x06,0x04,0x08,0x06,0x08,0x0b,0x09,0x0b,0x09,0x05,0x05,0x04,0x04,0x07,0x07,0x07,0x07,0x05,0x05,0x05,0x07,0x05,0x07,0x05,0x05,0x05,0x07,0x07,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a, +0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0a,0x08,0x0a, +0x08,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x05,0x08,0x08,0x0b,0x09,0x04,0x05,0x04,0x04,0x08,0x06,0x0e,0x0c,0x09,0x08,0x09,0x07,0x0b,0x09,0x08,0x07,0x08,0x07,0x09,0x07,0x0a,0x08,0x0a,0x08,0x0b,0x08,0x0b,0x09,0x05,0x05,0x05,0x05,0x06,0x06,0x07,0x07,0x07,0x07,0x04,0x04,0x05, +0x05,0x05,0x05,0x08,0x08,0x0a,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x05,0x0a,0x09,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x04,0x04,0x04,0x04,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x04,0x07,0x04,0x07, +0x04,0x07,0x04,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x09,0x08,0x09,0x09,0x05,0x09,0x05,0x09,0x05,0x09,0x05,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x05,0x08,0x05,0x08,0x05,0x08,0x05,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a, +0x08,0x09,0x07,0x09,0x07,0x0e,0x0b,0x0e,0x0b,0x09,0x07,0x09,0x07,0x08,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x05,0x0b,0x07,0x08,0x04,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c, +0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x07,0x07,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x09, +0x09,0x07,0x07,0x09,0x09,0x04,0x04,0x09,0x09,0x08,0x08,0x0c,0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0b,0x09,0x09,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x06,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x09,0x09,0x08,0x08,0x08,0x08,0x0a,0x0a,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d, +0x0c,0x0b,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x0b,0x0b,0x09,0x09,0x09,0x08,0x08,0x07,0x0a,0x09,0x0d,0x04,0x04,0x09,0x07,0x04,0x07,0x0d,0x0b,0x09,0x0b,0x0f,0x0c,0x09,0x09,0x09,0x08,0x06,0x08,0x04,0x05,0x08,0x05,0x08,0x0b,0x0b,0x09, +0x08,0x09,0x07,0x09,0x09,0x07,0x06,0x08,0x08,0x06,0x06,0x08,0x04,0x06,0x07,0x04,0x13,0x11,0x0f,0x0d,0x0b,0x08,0x10,0x0f,0x0c,0x0a,0x08,0x04,0x04,0x0b,0x09,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x08,0x0a,0x08,0x0a,0x08,0x0d,0x0c,0x0a,0x09,0x0a,0x09,0x09,0x07,0x0b,0x09,0x0b,0x09,0x09,0x07,0x04,0x13,0x11,0x0f, +0x0a,0x09,0x0f,0x0a,0x0b,0x08,0x0a,0x08,0x0a,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x0b,0x09,0x0b,0x09,0x09,0x05,0x09,0x05,0x0a,0x08,0x0a,0x08,0x08,0x06,0x0b,0x08,0x0b,0x09,0x09,0x09,0x07,0x0a,0x08,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x07,0x09,0x08,0x08,0x08,0x09,0x08,0x09,0x09,0x09,0x07,0x07,0x09,0x09, +0x08,0x09,0x06,0x06,0x08,0x08,0x04,0x09,0x09,0x08,0x07,0x07,0x08,0x08,0x08,0x04,0x04,0x05,0x04,0x06,0x04,0x09,0x0d,0x0d,0x0d,0x08,0x08,0x09,0x09,0x0a,0x0b,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x06,0x04,0x04,0x04,0x04,0x05,0x05,0x09,0x09,0x08,0x07,0x0b,0x07,0x06,0x07,0x08,0x07,0x07,0x05,0x05,0x05,0x07,0x09, +0x07,0x08,0x08,0x08,0x04,0x07,0x06,0x09,0x05,0x05,0x0e,0x0e,0x0f,0x09,0x07,0x0b,0x0c,0x09,0x09,0x07,0x07,0x08,0x09,0x08,0x0a,0x08,0x0a,0x0c,0x09,0x0b,0x09,0x09,0x07,0x07,0x07,0x09,0x08,0x09,0x07,0x0d,0x0d,0x09,0x08,0x0a,0x08,0x09,0x07,0x09,0x07,0x0a,0x09,0x08,0x06,0x09,0x09,0x07,0x04,0x0b,0x07,0x07,0x0d,0x0a,0x0a,0x09, +0x0e,0x0b,0x0a,0x07,0x0d,0x0a,0x0b,0x08,0x0e,0x0b,0x08,0x07,0x0c,0x0b,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x14,0x11,0x0c,0x0a,0x11,0x0d,0x0d,0x0a,0x09,0x07,0x08,0x06,0x06,0x00,0x00,0x0f,0x0e,0x09,0x08,0x08,0x09,0x09,0x08,0x08,0x07,0x09,0x07,0x0b,0x09,0x0d,0x0a,0x0f,0x0d,0x0b,0x08,0x09,0x07,0x08,0x06,0x0d,0x0a,0x0a,0x09,0x0d, +0x0a,0x0d,0x0a,0x04,0x0d,0x0b,0x09,0x08,0x0b,0x09,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0d,0x0c,0x08,0x08,0x0b,0x08,0x0b,0x08,0x0d,0x0b,0x08,0x07,0x08,0x07,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x0a,0x08,0x0c,0x0b,0x09,0x09,0x0d,0x0d,0x0c,0x0b,0x08,0x07,0x0e,0x0c,0x0f,0x0d,0x0b,0x08, +0x0a,0x09,0x09,0x08,0x08,0x08,0x09,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x09,0x05,0x05,0x02,0x03,0x03,0x03,0x04,0x06,0x04,0x03,0x06,0x03,0x03,0x03,0x05,0x05,0x03,0x03,0x09,0x09,0x09,0x09,0x05,0x04,0x04,0x05,0x05,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04, +0x02,0x04,0x04,0x03,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x06,0x05,0x04,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08, +0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x08, +0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x0a,0x04,0x09,0x05,0x09,0x09,0x05,0x05,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x08,0x09,0x07,0x0a,0x0c,0x07,0x07,0x08,0x08,0x06,0x06,0x04,0x04,0x07,0x06,0x0b,0x09,0x09,0x07,0x09,0x09,0x09,0x0e,0x08,0x09,0x09,0x07,0x07,0x07,0x06,0x08,0x09,0x0b,0x09,0x07,0x0b,0x07,0x06,0x06,0x08,0x06,0x07,0x09,0x07,0x09,0x08,0x05,0x07,0x05,0x05,0x06,0x05,0x05,0x06,0x06,0x03,0x03,0x05,0x04,0x08,0x07,0x07, +0x06,0x06,0x05,0x05,0x04,0x06,0x08,0x05,0x05,0x05,0x07,0x05,0x05,0x05,0x05,0x04,0x04,0x05,0x02,0x05,0x07,0x05,0x05,0x04,0x05,0x05,0x05,0x03,0x05,0x05,0x07,0x04,0x05,0x05,0x04,0x05,0x06,0x04,0x02,0x03,0x05,0x04,0x05,0x04,0x05,0x06,0x04,0x09,0x02,0x05,0x08,0x0d,0x09,0x08,0x08,0x0d,0x0a,0x0d,0x0b,0x08,0x09,0x08,0x07,0x11, +0x07,0x09,0x0d,0x0e,0x0e,0x09,0x0a,0x09,0x07,0x07,0x08,0x06,0x07,0x08,0x03,0x00,0x00,0x00,0x00,0x09,0x09,0x09,0x09,0x07,0x06,0x09,0x09,0x05,0x0d,0x08,0x09,0x05,0x05,0x07,0x05,0x07,0x09,0x07,0x09,0x0e,0x0a,0x05,0x04,0x09,0x08,0x09,0x09,0x09,0x05,0x09,0x07,0x04,0x0d,0x08,0x09,0x05,0x06,0x06,0x07,0x07,0x07,0x08,0x09,0x09, +0x08,0x07,0x07,0x0b,0x04,0x07,0x04,0x08,0x07,0x05,0x04,0x04,0x05,0x04,0x03,0x02,0x05,0x05,0x02,0x03,0x03,0x03,0x02,0x03,0x02,0x03,0x07,0x07,0x05,0x05,0x05,0x05,0x06,0x03,0x02,0x03,0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x05,0x00,0x00,0x00,0x00,0x03,0x05,0x05,0x05,0x04,0x05,0x08,0x08,0x08,0x08,0x05,0x00,0x00,0x00, +0x00,0x07,0x05,0x04,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x08,0x08,0x08,0x08,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x03,0x06,0x06,0x05,0x06,0x05,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x06,0x05,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x0c,0x09,0x0b,0x09,0x0b,0x09,0x0e,0x0b,0x08,0x06,0x08,0x0a,0x08,0x0c,0x0b,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x0d,0x0d,0x0f,0x06,0x04,0x08,0x09,0x06,0x08,0x08, +0x09,0x09,0x08,0x0f,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x0a,0x08,0x08,0x08,0x05,0x09,0x05,0x0b,0x0a,0x08,0x05,0x0d,0x08,0x0d,0x04,0x05,0x09,0x09,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x0d,0x04,0x09,0x04,0x08,0x06,0x04,0x04,0x08,0x04,0x0b,0x04,0x0e,0x08,0x0e,0x0e,0x09,0x09,0x09,0x08,0x08,0x06,0x06,0x12,0x12,0x14,0x14,0x0d, +0x0d,0x08,0x08,0x03,0x0f,0x0b,0x0d,0x0a,0x09,0x0a,0x08,0x08,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x04,0x0a,0x00,0x0a,0x0a,0x0a,0x05,0x08,0x08,0x0e,0x05,0x0e,0x05,0x09,0x0a,0x09,0x06,0x0e,0x08,0x0e,0x08,0x0b,0x0d,0x05,0x08,0x08,0x06,0x04,0x08,0x09,0x08,0x09,0x08,0x09,0x09,0x08,0x0a,0x0a,0x0e,0x05,0x08, +0x06,0x0a,0x08,0x05,0x08,0x08,0x08,0x0e,0x05,0x0e,0x05,0x04,0x09,0x06,0x0f,0x08,0x08,0x0a,0x0a,0x0f,0x08,0x00,0x00,0x00,0x0a,0x00,0x0a,0x0a,0x0a,0x0a,0x0b,0x0a,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x08,0x08,0x0b,0x0d,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x08,0x06,0x06,0x06,0x12,0x0d,0x12,0x0d,0x12,0x0d,0x14,0x0f,0x14,0x0f,0x0d,0x08,0x09,0x09,0x09,0x0f,0x0f,0x08,0x08,0x0f,0x08,0x08,0x0f,0x08,0x08,0x0f,0x08,0x08,0x0b,0x0b,0x10,0x0f,0x0e,0x08,0x0d,0x08,0x0d, +0x08,0x0d,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x0a,0x05,0x0a,0x05,0x08,0x0a,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0e,0x0b,0x0d,0x05,0x08,0x0b,0x0d,0x0b,0x0d,0x00,0x00,0x00,0x00,0x00,0x11,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x06, +0x00,0x00,0x09,0x00,0x00,0x00,0x12,0x0d,0x14,0x0f,0x08,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x0e,0x0e,0x06,0x09,0x09,0x09,0x12,0x0c,0x08,0x17,0x10,0x05,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x06,0x06,0x0b,0x0a,0x0a,0x08,0x00,0x00, +0x00,0x05,0x05,0x05,0x05,0x13,0x17,0x00,0x00,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x06,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x09,0x09,0x09,0x09,0x0a,0x09,0x08,0x08,0x06,0x12,0x0d,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x0f,0x08,0x08,0x0f,0x08,0x08,0x0e, +0x08,0x08,0x0e,0x08,0x08,0x0e,0x08,0x08,0x09,0x09,0x09,0x09,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x0a,0x05,0x05,0x06,0x06,0x12,0x0d,0x0a,0x09,0x09,0x00,0x08,0x08,0x08,0x06,0x09,0x0a,0x09,0x08,0x08,0x05,0x04,0x0b,0x09,0x09,0x05,0x08,0x07,0x07,0x07,0x07,0x04,0x08,0x06,0x09,0x07,0x09,0x07,0x08,0x07,0x0a,0x08,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x07,0x07,0x07,0x04,0x08,0x08,0x09,0x08,0x05,0x0b,0x09,0x0a,0x08,0x09,0x07,0x09,0x08,0x06,0x0a,0x06,0x06,0x06,0x07,0x09,0x09,0x08,0x0f,0x08,0x0f,0x05,0x04,0x03,0x08,0x03,0x02,0x00,0x02,0x03,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x0e,0x06,0x0b, +0x09,0x0e,0x0b,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0e,0x0d,0x07,0x0d,0x07,0x0d,0x0a,0x0a,0x0b,0x0a,0x0b,0x0d,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x0b,0x09,0x10,0x0c,0x07,0x07,0x04,0x04,0x04,0x06,0x03,0x08,0x03,0x03,0x0d,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x06,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x0a,0x09,0x07,0x07,0x0a,0x04,0x05,0x0a,0x0a,0x04,0x08,0x08,0x08,0x0a,0x0a,0x04,0x06,0x0a,0x09,0x09,0x09,0x08,0x09,0x0a,0x08,0x0c,0x0b,0x08,0x08,0x08,0x03,0x06,0x08,0x08,0x08,0x08,0x08,0x09,0x0a,0x07,0x0a,0x08,0x08,0x0a,0x08,0x0b,0x08,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a, +0x09,0x07,0x07,0x0a,0x05,0x05,0x0a,0x05,0x08,0x08,0x08,0x0a,0x06,0x0a,0x09,0x09,0x09,0x0a,0x08,0x0c,0x0b,0x04,0x09,0x08,0x09,0x0a,0x12,0x00,0x0a,0x08,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x06,0x04,0x00,0x0b,0x0a,0x0a,0x0b,0x08,0x0a,0x0b,0x0b,0x07,0x09,0x0b,0x0b,0x0a,0x0b,0x0c,0x0c,0x0a,0x08,0x08,0x0b,0x0b,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x09,0x0a,0x0a,0x0a,0x0c,0x09,0x09,0x0a,0x0a,0x0c,0x07,0x09,0x09,0x0d,0x08,0x08,0x0c,0x0d,0x09,0x08,0x10,0x09,0x09,0x0b,0x08,0x08,0x0b,0x08,0x0b,0x0c,0x0d,0x08, +0x0c,0x08,0x0a,0x08,0x09,0x09,0x09,0x08,0x09,0x0c,0x08,0x09,0x0a,0x08,0x08,0x09,0x0e,0x08,0x08,0x09,0x09,0x06,0x05,0x08,0x08,0x08,0x08,0x08,0x0d,0x08,0x0d,0x07,0x08,0x0d,0x0a,0x08,0x0d,0x0b,0x0b,0x0d,0x09,0x08,0x0d,0x0d,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0d,0x09,0x08,0x09,0x0d,0x09,0x08,0x08,0x08,0x0d,0x0c,0x0a,0x0a, +0x0a,0x0a,0x0b,0x09,0x0a,0x0c,0x0a,0x0a,0x08,0x0c,0x0a,0x0a,0x09,0x0a,0x0a,0x0b,0x0b,0x09,0x0a,0x0a,0x0b,0x0a,0x0c,0x0b,0x0b,0x0b,0x0a,0x0a,0x0b,0x0a,0x0b,0x0c,0x0a,0x0b,0x0b,0x01,0x02,0x02,0x03,0x02,0x04,0x05,0x0d,0x08,0x09,0x09,0x08,0x09,0x08,0x08,0x0a,0x09,0x08,0x05,0x0d,0x09,0x08,0x08,0x08,0x09,0x08,0x09,0x04,0x09, +0x08,0x08,0x06,0x0d,0x08,0x08,0x08,0x09,0x0c,0x08,0x09,0x06,0x0c,0x09,0x09,0x0a,0x0a,0x03,0x04,0x11,0x11,0x11,0x11,0x15,0x08,0x08,0x04,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x07,0x08,0x09,0x06,0x06,0x09,0x09,0x04,0x05,0x07,0x06,0x0b,0x0a,0x09,0x07,0x09,0x07,0x06,0x07,0x09,0x08,0x0c,0x08,0x07,0x07,0x0b,0x0c,0x06,0x09,0x07,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x04,0x0a,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x06,0x06,0x06,0x06,0x06,0x09,0x09,0x08,0x09,0x09,0x04,0x04,0x04,0x04,0x04,0x08,0x05,0x07,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c, +0x0c,0x0c,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x0b,0x09,0x08,0x07,0x06,0x08,0x06,0x07,0x09,0x09,0x04,0x07,0x08,0x0b,0x0a,0x07,0x09,0x09,0x07,0x07,0x07,0x07,0x09,0x08,0x0a,0x0a,0x08,0x06,0x09,0x04,0x09,0x07,0x0a,0x04,0x07,0x06,0x09,0x06,0x08,0x06,0x04,0x04,0x05,0x0c,0x0c,0x09,0x07,0x07,0x09,0x08,0x07,0x07,0x06,0x09,0x06, +0x0b,0x07,0x0a,0x0a,0x07,0x09,0x0b,0x09,0x09,0x09,0x07,0x08,0x07,0x07,0x09,0x08,0x0a,0x08,0x0c,0x0c,0x09,0x0b,0x07,0x08,0x0d,0x07,0x06,0x09,0x09,0x09,0x0d,0x0d,0x0a,0x08,0x09,0x06,0x09,0x08,0x08,0x0b,0x08,0x08,0x0a,0x09,0x09,0x05,0x09,0x09,0x09,0x07,0x07,0x0d,0x0b,0x07,0x08,0x09,0x09,0x09,0x09,0x0b,0x0a,0x05,0x0e,0x09, +0x08,0x09,0x0a,0x0a,0x08,0x08,0x04,0x0b,0x0a,0x0a,0x07,0x0b,0x03,0x03,0x07,0x07,0x03,0x03,0x09,0x06,0x04,0x0b,0x0b,0x04,0x03,0x03,0x07,0x06,0x06,0x03,0x03,0x03,0x06,0x0a,0x07,0x05,0x09,0x0a,0x09,0x09,0x07,0x0b,0x08,0x09,0x05,0x07,0x08,0x06,0x03,0x03,0x06,0x08,0x05,0x0a,0x0a,0x0a,0x0e,0x0b,0x0e,0x04,0x00,0x00,0x00,0x00, +0x00,0x04,0x0b,0x0d,0x05,0x05,0x08,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x09,0x09,0x09,0x08,0x08,0x12,0x0d,0x12,0x0d,0x14,0x0f,0x14,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x08,0x08,0x0e,0x0e,0x08,0x08,0x0b,0x0d,0x05,0x05,0x0b,0x0d,0x05,0x05,0x0b,0x0d,0x05,0x05,0x0f,0x0b,0x0d,0x08,0x09,0x09,0x0a,0x05,0x0a,0x0b,0x08, +0x08,0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0e,0x05,0x0b,0x08,0x08,0x04,0x08,0x08,0x08,0x08,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x12,0x0d,0x12,0x0d,0x12,0x0d, +0x14,0x0f,0x14,0x0f,0x0d,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0b,0x08,0x08,0x0b,0x08,0x08,0x0e,0x08,0x10,0x0f,0x0e,0x08,0x0d,0x08,0x0d,0x08,0x0d,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x05,0x0a,0x0a,0x05,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x08,0x09,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x05,0x05,0x08,0x05,0x05,0x05,0x05,0x00,0x12,0x0d,0x14,0x0f,0x0e,0x08,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x09,0x09,0x08,0x08,0x06,0x12,0x0d,0x0f,0x0f,0x0e,0x0e,0x0e,0x09,0x09,0x09,0x09,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x12,0x0d,0x09,0x0a,0x09,0x09,0x09,0x0a,0x09,0x09, +0x12,0x12,0x0d,0x0d,0x06,0x06,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x0b,0x0d,0x05,0x05,0x0b,0x0d,0x05,0x05,0x0b,0x0d,0x05,0x05,0x09,0x09,0x09,0x09,0x0e,0x05,0x0e,0x05,0x09,0x0a,0x09,0x09,0x12,0x12,0x0d,0x0d,0x12,0x12,0x0d,0x0d,0x0d,0x0d,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x04,0x04,0x05,0x04, +0x00,0x00,0x00,0x0d,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0d,0x09,0x0d,0x09,0x0d,0x09,0x0d,0x0a,0x0a,0x0a,0x04,0x04,0x08,0x06,0x09,0x0a,0x09,0x08,0x08,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x08,0x09,0x09,0x09,0x0a, +0x09,0x08,0x0a,0x08,0x0a,0x0b,0x0a,0x0b,0x0c,0x0a,0x0b,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x09,0x09,0x0a,0x09,0x0a,0x09,0x09,0x09,0x08,0x08,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x0b,0x0c,0x0b,0x0b,0x0e,0x0e,0x0b,0x0e,0x0e,0x0b,0x0d,0x0d,0x08,0x0c,0x0d,0x0b,0x09,0x0d,0x0b,0x0a,0x0b, +0x09,0x0a,0x0b,0x0c,0x0a,0x09,0x0b,0x09,0x08,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0a,0x0e,0x0e,0x0b,0x0c,0x0c,0x0b,0x0b,0x0b,0x0a,0x0d,0x0b,0x0c,0x0b,0x0b,0x09,0x0b,0x0a,0x0a,0x0d,0x0b,0x0b,0x0d,0x08,0x08,0x08,0x08,0x09,0x09,0x0a,0x0b,0x09,0x09,0x08,0x08,0x09,0x08,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x08,0x08,0x09,0x09,0x09, +0x09,0x07,0x08,0x08,0x09,0x09,0x0b,0x0d,0x0a,0x0a,0x09,0x0c,0x0a,0x0a,0x08,0x07,0x09,0x08,0x07,0x07,0x08,0x08,0x07,0x07,0x09,0x07,0x08,0x07,0x08,0x0c,0x08,0x0c,0x08,0x08,0x09,0x0b,0x05,0x0c,0x0a,0x0b,0x0a,0x08,0x0b,0x09,0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x07, +0x07,0x07,0x07,0x07,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x09,0x04,0x04,0x04,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x0e,0x0e,0x0e,0x0e,0x07,0x0b,0x0b,0x07,0x06,0x07,0x08,0x08,0x07,0x0d,0x0c,0x0d,0x07,0x0f,0x07,0x0d,0x0d,0x0d,0x0c,0x08,0x07,0x07,0x0c,0x09,0x0c,0x0a,0x08,0x07,0x06,0x0f,0x06,0x08,0x07, +0x07,0x07,0x07,0x07,0x14,0x0d,0x0d,0x06,0x04,0x07,0x04,0x07,0x04,0x04,0x04,0x07,0x09,0x09,0x08,0x06,0x06,0x03,0x03,0x03,0x06,0x03,0x06,0x0d,0x03,0x0e,0x0e,0x0e,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x12,0x12,0x0a,0x12,0x12,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x07,0x09,0x07,0x08,0x06,0x05,0x05,0x0a,0x08,0x0b,0x06,0x11,0x0d,0x09,0x08,0x0e,0x0c,0x0d,0x0b,0x0f,0x0c,0x0e,0x0c,0x0a,0x07,0x0b,0x09,0x0e,0x0b,0x0b,0x09,0x0b,0x09,0x0d,0x0a,0x0d,0x0a,0x11,0x0d,0x0b,0x09,0x0b,0x09,0x12,0x0d, +0x0c,0x00,0x0f,0x0f,0x0f,0x07,0x00,0x00,0x09,0x08,0x0a,0x08,0x08,0x06,0x10,0x0e,0x0e,0x0d,0x0b,0x09,0x0a,0x09,0x08,0x06,0x0b,0x09,0x08,0x06,0x0c,0x0a,0x0a,0x08,0x0f,0x0c,0x08,0x09,0x0b,0x0b,0x0c,0x07,0x03,0x07,0x0a,0x06,0x0f,0x0f,0x04,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x06,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00, +0x00,0x07,0x07,0x0a,0x0b,0x04,0x03,0x04,0x03,0x0b,0x08,0x0b,0x09,0x08,0x07,0x08,0x07,0x09,0x09,0x06,0x06,0x11,0x0c,0x11,0x0d,0x0f,0x0d,0x0e,0x0a,0x0e,0x0a,0x0e,0x0a,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x05,0x07,0x04,0x0b,0x09,0x0d,0x0a,0x14,0x0f,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0b,0x09,0x0f,0x0c,0x08,0x06,0x08, +0x07,0x09,0x07,0x0e,0x0b,0x09,0x08,0x08,0x09,0x08,0x09,0x07,0x06,0x07,0x06,0x07,0x06,0x08,0x08,0x05,0x0a,0x05,0x0e,0x0a,0x05,0x09,0x09,0x07,0x0b,0x08,0x06,0x05,0x09,0x09,0x09,0x07,0x04,0x0b,0x09,0x06,0x05,0x09,0x07,0x0b,0x06,0x0c,0x09,0x09,0x07,0x0a,0x09,0x09,0x07,0x0b,0x08,0x09,0x05,0x08,0x06,0x0b,0x06,0x08,0x0d,0x07, +0x08,0x0d,0x04,0x11,0x0d,0x0d,0x12,0x0d,0x0e,0x0e,0x0d,0x0d,0x0e,0x08,0x07,0x09,0x0b,0x0d,0x0b,0x0e,0x04,0x07,0x09,0x0d,0x0f,0x0b,0x0f,0x09,0x09,0x0c,0x0b,0x11,0x0e,0x08,0x0e,0x05,0x0e,0x05,0x09,0x09,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x0f,0x08,0x08,0x0f,0x0b,0x08,0x08,0x0b,0x0a,0x05,0x05,0x0a,0x09,0x09,0x09,0x09,0x0b,0x05, +0x05,0x0d,0x0b,0x05,0x05,0x0d,0x06,0x06,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x08,0x06,0x08,0x08,0x0b,0x09,0x09,0x0d,0x0a,0x0b,0x0b,0x0c,0x0c,0x09,0x07,0x0f,0x0c,0x10,0x0d,0x0a,0x09,0x05,0x05,0x09, +0x0a,0x06,0x09,0x08,0x09,0x07,0x0b,0x0c,0x06,0x09,0x06,0x03,0x06,0x08,0x08,0x03,0x03,0x03,0x03,0x06,0x06,0x06,0x07,0x16,0x1e,0x05,0x06,0x02,0x04,0x06,0x06,0x05,0x07,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x14,0x08,0x0b,0x0e,0x0d,0x0a,0x07,0x08,0x0b,0x0b,0x07,0x05,0x0a,0x08,0x0a, +0x08,0x0a,0x08,0x08,0x0b,0x09,0x09,0x08,0x0b,0x09,0x0c,0x07,0x08,0x0a,0x05,0x09,0x05,0x05,0x04,0x0d,0x09,0x08,0x08,0x08,0x09,0x0e,0x0e,0x0e,0x0f,0x0f,0x08,0x08,0x04,0x08,0x07,0x09,0x07,0x0a,0x04,0x08,0x09,0x0d,0x0d,0x09,0x08,0x09,0x08,0x08,0x07,0x08,0x07,0x07,0x05,0x05,0x04,0x03,0x05,0x09,0x0a,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x00,0x04,0x04,0x04,0x04,0x04,0x19,0x0f,0x0d,0x10,0x04,0x04,0x05,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x0e,0x05,0x05,0x0e,0x04,0x08,0x08,0x14,0x0f,0x0f,0x14,0x0e,0x08,0x08,0x0e,0x08,0x08,0x06,0x06,0x00,0x00,0x05,0x0b,0x09,0x0b,0x09, +0x13,0x10,0x0a,0x08,0x0b,0x08,0x14,0x0f,0x0b,0x09,0x06,0x05,0x09,0x00,0x0a,0x08,0x05,0x05,0x02,0x07,0x05,0x05,0x04,0x03,0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x08,0x06,0x09,0x09,0x08,0x0e,0x0c,0x0c,0x0c,0x0c,0x0e,0x09,0x0a,0x09,0x06,0x0e,0x11,0x07,0x11,0x08,0x0d,0x0e,0x0e,0x0e,0x06,0x0b,0x0f,0x0b,0x0a,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x09,0x09,0x09,0x0d,0x08,0x08,0x0e,0x05,0x05,0x0e,0x05,0x05,0x0e,0x07,0x07,0x00,0x06,0x0d,0x05,0x05,0x0f,0x08,0x08,0x0b,0x08,0x08,0x0a,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x17,0x17,0x0d,0x00,0x00,0x0d,0x0d, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x09,0x0a,0x0a,0x0d,0x0a,0x09,0x0c,0x0f,0x0a,0x09,0x10,0x0a,0x0a,0x0e,0x09,0x0a,0x0c,0x0a,0x0c,0x0d,0x0e,0x0a,0x0c,0x0a,0x0a,0x09,0x0a,0x09,0x0a,0x0a,0x09,0x0c,0x09,0x0a,0x0c,0x09,0x09,0x09,0x0c,0x0a,0x0a,0x0a,0x0a,0x07,0x08,0x0a,0x0c, +0x0c,0x08,0x00,0x00,0x10,0x20,0x0a,0x00,0x02,0x04,0x05,0x06,0x09,0x09,0x0d,0x0d,0x04,0x05,0x05,0x07,0x0b,0x03,0x06,0x03,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x03,0x03,0x0b,0x0b,0x0b,0x07,0x0f,0x0a,0x09,0x0a,0x0b,0x08,0x08,0x0b,0x0b,0x04,0x06,0x09,0x08,0x0e,0x0c,0x0c,0x09,0x0c,0x0a,0x09,0x08,0x0b,0x0a, +0x0f,0x09,0x09,0x09,0x05,0x06,0x05,0x0b,0x07,0x04,0x08,0x09,0x07,0x09,0x08,0x05,0x09,0x09,0x04,0x04,0x08,0x04,0x0e,0x09,0x09,0x09,0x09,0x06,0x07,0x05,0x09,0x08,0x0c,0x07,0x08,0x07,0x05,0x04,0x05,0x0b,0x0a,0x0a,0x0a,0x08,0x0c,0x0c,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x09,0x09,0x07,0x07,0x07,0x09,0x06,0x0e,0x0e,0x0c,0x05,0x07,0x0b,0x0e,0x0c,0x0d,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x0a,0x0c,0x09,0x06,0x07,0x0c,0x0d,0x09,0x07,0x04,0x05,0x0b,0x0a,0x09,0x0b,0x0a,0x08,0x08,0x0c,0x0a,0x0a,0x0c,0x0f,0x0f,0x08,0x10,0x06,0x06,0x04,0x04,0x0b,0x09, +0x08,0x09,0x03,0x09,0x05,0x05,0x09,0x09,0x06,0x03,0x04,0x06,0x13,0x0a,0x08,0x0a,0x08,0x08,0x04,0x04,0x04,0x04,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x04,0x06,0x05,0x05,0x05,0x03,0x04,0x03,0x05,0x03,0x06,0x08,0x04,0x09,0x07,0x09,0x07,0x04,0x0b,0x09,0x09,0x08,0x09,0x09,0x0b,0x0b,0x06,0x06,0x06,0x0f,0x0f,0x0f,0x08,0x0b,0x09,0x04, +0x09,0x07,0x0a,0x07,0x0a,0x07,0x09,0x07,0x03,0x0a,0x08,0x0a,0x08,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x08,0x08,0x04,0x08,0x05,0x08,0x05,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0a,0x06,0x0a,0x06,0x09,0x07,0x08,0x05,0x08,0x07,0x0b,0x09,0x0b,0x09,0x09,0x07,0x09,0x07,0x08,0x0c,0x0c,0x0a,0x09,0x07,0x09,0x08,0x0b,0x07,0x08,0x06,0x12,0x0a, +0x08,0x0a,0x04,0x06,0x0d,0x05,0x0a,0x06,0x06,0x0a,0x06,0x0a,0x08,0x0a,0x07,0x0a,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x09,0x08,0x08,0x08,0x04,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0a,0x06,0x09,0x07,0x08,0x05,0x0b,0x09, +0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0f,0x0c,0x09,0x08,0x04,0x0a,0x08,0x0e,0x0d,0x0c,0x09,0x03,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x09,0x08,0x04,0x07,0x09,0x0a,0x0f,0x0f,0x0f,0x0e,0x06,0x06,0x03,0x04,0x04,0x0a,0x09,0x0c,0x06,0x0d,0x0b,0x0d,0x04,0x0a,0x09,0x08,0x09,0x0b,0x04,0x09,0x0a,0x0e,0x0c,0x08,0x0c,0x0b,0x09,0x08,0x08,0x09, +0x09,0x0c,0x0c,0x04,0x09,0x0a,0x07,0x09,0x04,0x09,0x09,0x08,0x07,0x09,0x09,0x04,0x08,0x08,0x09,0x08,0x07,0x09,0x09,0x07,0x09,0x09,0x0c,0x0d,0x04,0x09,0x09,0x09,0x0d,0x08,0x0b,0x08,0x0a,0x09,0x04,0x10,0x10,0x0c,0x09,0x09,0x0b,0x0a,0x09,0x09,0x08,0x0b,0x08,0x0e,0x09,0x0c,0x0c,0x09,0x0b,0x0e,0x0b,0x0c,0x0b,0x09,0x0a,0x08, +0x09,0x0c,0x09,0x0c,0x0b,0x0f,0x10,0x0b,0x0d,0x09,0x0a,0x10,0x09,0x08,0x09,0x08,0x06,0x09,0x08,0x0c,0x07,0x09,0x09,0x08,0x08,0x0b,0x09,0x09,0x09,0x09,0x07,0x07,0x08,0x0b,0x07,0x0a,0x09,0x0d,0x0d,0x09,0x0b,0x08,0x07,0x0d,0x08,0x08,0x09,0x06,0x07,0x07,0x04,0x0d,0x0d,0x09,0x08,0x08,0x09,0x08,0x06,0x10,0x12,0x0a,0x06,0x06, +0x06,0x06,0x04,0x09,0x07,0x09,0x0c,0x0a,0x0b,0x09,0x05,0x05,0x04,0x04,0x08,0x08,0x08,0x08,0x05,0x05,0x05,0x08,0x05,0x08,0x05,0x05,0x05,0x08,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x09,0x08,0x09,0x08,0x09,0x08,0x08,0x05,0x08,0x08,0x0c,0x09,0x04,0x06,0x04,0x04,0x08, +0x07,0x0f,0x0c,0x0a,0x08,0x09,0x08,0x0c,0x0a,0x09,0x08,0x09,0x08,0x0a,0x08,0x0a,0x09,0x0b,0x09,0x0c,0x08,0x0c,0x09,0x05,0x05,0x05,0x05,0x07,0x07,0x08,0x08,0x08,0x08,0x04,0x04,0x05,0x05,0x05,0x05,0x08,0x08,0x0a,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x07,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x05,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x04,0x04,0x04,0x04,0x09,0x08,0x09,0x08,0x09,0x08,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x09,0x09,0x09, +0x09,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x05,0x08,0x05,0x08,0x05,0x08,0x05,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0a,0x08,0x0a,0x08,0x0f,0x0c,0x0f,0x0c,0x09,0x07,0x09,0x07,0x09,0x08,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x05,0x0c,0x08,0x08,0x04,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09, +0x09,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x07,0x07,0x09,0x09,0x04,0x04,0x09,0x09,0x09,0x09,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0b,0x09,0x09,0x09,0x04, +0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0a,0x09,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x0a,0x09,0x09,0x09,0x09,0x0a,0x0a,0x07,0x0b, +0x0c,0x09,0x09,0x09,0x08,0x09,0x08,0x0b,0x0a,0x0e,0x05,0x04,0x09,0x08,0x04,0x08,0x0e,0x0c,0x09,0x0c,0x10,0x0d,0x0a,0x09,0x09,0x09,0x07,0x08,0x05,0x05,0x08,0x05,0x08,0x0c,0x0b,0x09,0x08,0x09,0x07,0x0a,0x0a,0x07,0x07,0x09,0x09,0x06,0x06,0x09,0x04,0x06,0x07,0x05,0x14,0x12,0x10,0x0e,0x0c,0x08,0x11,0x0f,0x0d,0x0a,0x08,0x04, +0x04,0x0c,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x0a,0x08,0x0a,0x08,0x0e,0x0d,0x0b,0x09,0x0b,0x09,0x09,0x08,0x0c,0x09,0x0c,0x09,0x0a,0x07,0x04,0x14,0x12,0x10,0x0b,0x09,0x10,0x0b,0x0c,0x09,0x0a,0x08,0x0a,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x0c,0x09,0x0c,0x09,0x09,0x06,0x0a,0x06,0x0b,0x09, +0x0b,0x09,0x08,0x07,0x0b,0x09,0x0c,0x09,0x09,0x09,0x07,0x0a,0x08,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x09,0x08,0x09,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x07,0x07,0x09,0x09,0x08,0x0a,0x07,0x07,0x08,0x09,0x04,0x09,0x09,0x08,0x08,0x07,0x09,0x09,0x09,0x04,0x04,0x05,0x04,0x06,0x04,0x0a,0x0e,0x0e,0x0e,0x09,0x09,0x09, +0x09,0x0b,0x0c,0x0a,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x07,0x07,0x06,0x04,0x04,0x05,0x05,0x05,0x05,0x0a,0x0a,0x09,0x08,0x0c,0x08,0x07,0x07,0x08,0x07,0x07,0x06,0x06,0x06,0x07,0x0a,0x08,0x09,0x08,0x09,0x04,0x08,0x06,0x09,0x06,0x06,0x0f,0x0f,0x10,0x0a,0x08,0x0b,0x0d,0x09,0x09,0x08,0x08,0x09,0x09,0x09,0x0b,0x09,0x0a,0x0d, +0x09,0x0b,0x09,0x09,0x07,0x08,0x07,0x0a,0x08,0x0a,0x08,0x0e,0x0e,0x0a,0x08,0x0a,0x09,0x0a,0x07,0x0a,0x08,0x0b,0x09,0x09,0x07,0x09,0x09,0x07,0x04,0x0c,0x07,0x07,0x0e,0x0b,0x0a,0x09,0x0f,0x0b,0x0b,0x08,0x0e,0x0b,0x0c,0x09,0x0f,0x0c,0x09,0x07,0x0d,0x0c,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x15,0x12,0x0d,0x0a,0x12,0x0e,0x0e,0x0b, +0x09,0x07,0x08,0x06,0x07,0x00,0x00,0x10,0x0f,0x09,0x08,0x09,0x09,0x09,0x08,0x09,0x07,0x09,0x08,0x0b,0x09,0x0d,0x0b,0x10,0x0d,0x0c,0x09,0x0a,0x07,0x08,0x07,0x0e,0x0b,0x0b,0x09,0x0d,0x0a,0x0d,0x0a,0x04,0x0e,0x0c,0x09,0x08,0x0b,0x09,0x0a,0x09,0x0a,0x08,0x0a,0x08,0x0e,0x0d,0x08,0x08,0x0c,0x08,0x0c,0x08,0x0e,0x0c,0x09,0x07, +0x08,0x07,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0a,0x07,0x09,0x08,0x09,0x08,0x09,0x08,0x0b,0x09,0x0d,0x0b,0x09,0x09,0x0e,0x0e,0x0d,0x0c,0x09,0x08,0x0e,0x0d,0x10,0x0e,0x0b,0x08,0x0b,0x0a,0x09,0x09,0x09,0x08,0x09,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x09,0x05,0x05,0x03,0x03, +0x03,0x03,0x04,0x06,0x04,0x04,0x06,0x04,0x04,0x04,0x05,0x05,0x03,0x03,0x09,0x09,0x09,0x09,0x05,0x05,0x04,0x05,0x05,0x04,0x05,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x04,0x05,0x03,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x07,0x05,0x04,0x04,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09, +0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x00, +0x00,0x00,0x00,0x00,0x0a,0x05,0x0a,0x05,0x09,0x09,0x05,0x05,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x09,0x08,0x0b,0x0d,0x08,0x07,0x09,0x09,0x07,0x07,0x04,0x05,0x08,0x06,0x0b,0x09,0x09,0x08,0x0a,0x0a,0x0a,0x0f,0x09,0x0a,0x0a, +0x07,0x07,0x07,0x07,0x09,0x09,0x0b,0x09,0x08,0x0c,0x07,0x07,0x07,0x08,0x06,0x08,0x09,0x07,0x09,0x09,0x06,0x08,0x06,0x06,0x07,0x05,0x05,0x07,0x07,0x03,0x04,0x06,0x05,0x08,0x07,0x07,0x07,0x06,0x05,0x06,0x05,0x07,0x08,0x05,0x05,0x06,0x08,0x06,0x06,0x05,0x05,0x04,0x04,0x06,0x03,0x05,0x08,0x05,0x05,0x04,0x05,0x05,0x05,0x03, +0x05,0x05,0x08,0x05,0x05,0x05,0x05,0x05,0x07,0x05,0x03,0x03,0x05,0x05,0x05,0x05,0x06,0x07,0x05,0x09,0x03,0x06,0x09,0x0e,0x0a,0x09,0x09,0x0e,0x0a,0x0e,0x0c,0x08,0x09,0x08,0x07,0x12,0x07,0x09,0x0e,0x0f,0x0f,0x0a,0x0a,0x0a,0x07,0x08,0x08,0x07,0x07,0x08,0x03,0x00,0x00,0x00,0x00,0x09,0x0a,0x0a,0x0a,0x08,0x06,0x09,0x09,0x05, +0x0e,0x09,0x09,0x06,0x05,0x07,0x05,0x07,0x09,0x07,0x09,0x0e,0x0a,0x05,0x04,0x09,0x09,0x0a,0x09,0x09,0x05,0x09,0x08,0x04,0x0e,0x09,0x09,0x06,0x07,0x07,0x08,0x07,0x07,0x08,0x09,0x09,0x08,0x07,0x07,0x0c,0x04,0x07,0x04,0x09,0x07,0x06,0x04,0x04,0x05,0x04,0x03,0x03,0x06,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x08,0x08, +0x05,0x05,0x06,0x05,0x06,0x04,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x05,0x04,0x05,0x00,0x00,0x00,0x00,0x03,0x05,0x05,0x05,0x04,0x05,0x09,0x09,0x09,0x09,0x05,0x00,0x00,0x00,0x00,0x07,0x05,0x04,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x04,0x04,0x04,0x04,0x09,0x09,0x09,0x09,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x0d,0x0a,0x0b,0x09,0x0c,0x0a, +0x0f,0x0c,0x09,0x06,0x08,0x0b,0x09,0x0d,0x0b,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x0d,0x0d,0x10,0x07,0x04,0x08,0x09,0x07,0x08,0x08,0x09,0x09,0x08,0x10,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x0a,0x08,0x08,0x08,0x05,0x09,0x05,0x0c,0x0b,0x08,0x05,0x0d,0x08,0x0d,0x04,0x05, +0x09,0x09,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x0d,0x04,0x09,0x04,0x08,0x07,0x04,0x04,0x08,0x04,0x0c,0x04,0x0f,0x08,0x0f,0x0f,0x09,0x09,0x09,0x08,0x08,0x07,0x07,0x13,0x13,0x15,0x15,0x0d,0x0d,0x08,0x08,0x03,0x10,0x0c,0x0d,0x0b,0x09,0x0b,0x08,0x08,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x04,0x0a,0x00,0x0a,0x0a, +0x0a,0x05,0x08,0x08,0x0f,0x05,0x0f,0x05,0x09,0x0b,0x09,0x07,0x0f,0x08,0x0f,0x08,0x0c,0x0d,0x05,0x08,0x08,0x07,0x04,0x08,0x09,0x08,0x09,0x08,0x09,0x09,0x08,0x0b,0x0a,0x0f,0x05,0x08,0x07,0x0b,0x08,0x05,0x08,0x08,0x08,0x0f,0x05,0x0f,0x05,0x04,0x09,0x06,0x10,0x08,0x08,0x0a,0x0a,0x10,0x08,0x00,0x00,0x00,0x0a,0x00,0x0a,0x0a, +0x0a,0x0a,0x0c,0x0a,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x07,0x08,0x08,0x0c,0x0d,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x13, +0x0d,0x13,0x0d,0x13,0x0d,0x15,0x10,0x15,0x10,0x0d,0x08,0x09,0x09,0x09,0x10,0x10,0x08,0x08,0x10,0x08,0x08,0x10,0x08,0x08,0x10,0x08,0x08,0x0c,0x0c,0x11,0x10,0x0f,0x08,0x0d,0x08,0x0d,0x08,0x0d,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0b,0x05,0x0b,0x05,0x0b,0x05,0x0b,0x05,0x0b,0x05,0x0b,0x0b,0x05,0x0b,0x05, +0x09,0x0b,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0f,0x0c,0x0d,0x05,0x08,0x0c,0x0d,0x0c,0x0d,0x00,0x00,0x00,0x00,0x00,0x12,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x07,0x00,0x00,0x0a,0x00,0x00,0x00,0x13,0x0d,0x15,0x10,0x08,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x08,0x0f,0x0f,0x06,0x09,0x09,0x0a,0x14,0x0d,0x09,0x18,0x11,0x05,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x07,0x07,0x0c,0x0b,0x0b,0x08,0x00,0x00,0x00,0x05,0x05,0x05,0x05,0x14,0x18,0x00,0x00,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x07,0x0f,0x05,0x0f,0x05,0x0f,0x05, +0x0f,0x05,0x0f,0x05,0x0f,0x05,0x09,0x09,0x09,0x09,0x0b,0x09,0x08,0x08,0x07,0x13,0x0d,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x10,0x08,0x08,0x10,0x08,0x08,0x0f,0x08,0x08,0x0f,0x08,0x08,0x0f,0x08,0x08,0x09,0x09,0x09,0x09,0x0b,0x05,0x0b,0x05,0x0b,0x05,0x0b,0x0b,0x05,0x05,0x07,0x07,0x13,0x0d,0x0a,0x09, +0x09,0x00,0x08,0x08,0x08,0x06,0x09,0x0b,0x0a,0x08,0x08,0x06,0x04,0x0c,0x09,0x0a,0x06,0x09,0x08,0x08,0x07,0x08,0x04,0x08,0x07,0x0a,0x08,0x09,0x07,0x09,0x07,0x0b,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x07,0x08,0x08,0x05,0x08,0x09,0x0a,0x08,0x05,0x0c,0x09,0x0a,0x09,0x0a,0x08,0x09,0x08,0x06,0x0b,0x06,0x07, +0x07,0x08,0x0a,0x0a,0x08,0x10,0x08,0x10,0x05,0x04,0x03,0x09,0x03,0x02,0x00,0x02,0x04,0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x0f,0x07,0x0c,0x09,0x0f,0x0c,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0e,0x08,0x0e,0x08,0x0e,0x0a,0x0b,0x0b,0x0b,0x0c,0x0e,0x10,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0b,0x0c,0x09,0x11,0x0d,0x08,0x08,0x05,0x05,0x05,0x06,0x03,0x09,0x04,0x04,0x0d,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x0a,0x09,0x07,0x08,0x0b,0x04,0x05,0x0b,0x0b,0x04,0x09,0x09,0x09,0x0b,0x0b,0x04,0x06,0x0b, +0x0a,0x0a,0x0a,0x09,0x09,0x0b,0x09,0x0d,0x0c,0x08,0x08,0x08,0x04,0x06,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x08,0x0b,0x09,0x09,0x0b,0x09,0x0c,0x09,0x0d,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x09,0x07,0x08,0x0b,0x05,0x06,0x0b,0x05,0x09,0x09,0x09,0x0b,0x06,0x0b,0x0a,0x0a,0x09,0x0b,0x09,0x0d,0x0c,0x04,0x09,0x09,0x0a,0x0a,0x13,0x00, +0x0a,0x09,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x04,0x00,0x0c,0x0a,0x0b,0x0b,0x09,0x0b,0x0c,0x0c,0x08,0x0a,0x0c,0x0c,0x0b,0x0c,0x0d,0x0c,0x0b,0x09,0x09,0x0c,0x0b,0x09,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0c,0x09,0x0a,0x0b,0x0a,0x0c,0x0a,0x0a,0x0a,0x0b,0x0d,0x08,0x09,0x09,0x0e,0x09,0x09,0x0c,0x0e,0x0a,0x09,0x11,0x09,0x09,0x0c,0x09,0x09,0x0c,0x09,0x0c,0x0d,0x0e,0x09,0x0c,0x09,0x0a,0x09,0x0a,0x09,0x0a,0x09,0x0a,0x0c,0x09,0x0a,0x0b,0x09,0x09,0x0a,0x0f,0x09,0x09,0x09,0x09,0x07,0x05,0x09,0x09,0x09,0x09,0x09, +0x0e,0x09,0x0e,0x08,0x09,0x0e,0x0b,0x09,0x0e,0x0c,0x0c,0x0e,0x09,0x09,0x0e,0x0e,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x0e,0x09,0x09,0x09,0x0e,0x0a,0x09,0x09,0x09,0x0e,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0b,0x0d,0x0b,0x0a,0x09,0x0d,0x0b,0x0b,0x09,0x0b,0x0b,0x0c,0x0c,0x09,0x0b,0x0b,0x0c,0x0b,0x0c,0x0b,0x0c,0x0c,0x0b,0x0a, +0x0b,0x0b,0x0c,0x0d,0x0b,0x0c,0x0c,0x02,0x02,0x02,0x03,0x02,0x04,0x06,0x0e,0x09,0x0a,0x0a,0x09,0x0a,0x09,0x09,0x0a,0x0a,0x09,0x05,0x0d,0x09,0x09,0x09,0x09,0x0a,0x08,0x09,0x04,0x09,0x08,0x09,0x07,0x0e,0x09,0x09,0x09,0x09,0x0d,0x09,0x09,0x06,0x0d,0x09,0x09,0x0b,0x0b,0x03,0x05,0x12,0x12,0x12,0x12,0x17,0x09,0x09,0x04,0x09, +0x06,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x09,0x07,0x07,0x09,0x0a,0x04,0x05,0x08,0x07,0x0c,0x0a,0x0a, +0x08,0x0a,0x08,0x07,0x07,0x0a,0x08,0x0d,0x08,0x07,0x08,0x0b,0x0c,0x07,0x0a,0x08,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x04,0x04,0x04,0x04,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x08,0x0a,0x0a,0x04,0x04, +0x04,0x04,0x04,0x09,0x05,0x08,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0d,0x0d,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x0b,0x0a,0x08,0x08,0x06,0x09,0x07,0x08,0x0a,0x0a,0x04,0x08,0x08,0x0c,0x0a,0x07,0x0a,0x0a,0x08, +0x07,0x07,0x07,0x0a,0x08,0x0b,0x0a,0x08,0x07,0x0a,0x04,0x0a,0x07,0x0a,0x04,0x07,0x07,0x09,0x06,0x08,0x07,0x04,0x04,0x05,0x0d,0x0d,0x0a,0x08,0x08,0x0a,0x08,0x08,0x08,0x06,0x09,0x07,0x0c,0x07,0x0a,0x0a,0x08,0x09,0x0c,0x0a,0x0a,0x0a,0x08,0x08,0x07,0x08,0x0a,0x08,0x0a,0x09,0x0d,0x0d,0x09,0x0b,0x08,0x08,0x0e,0x08,0x06,0x09, +0x09,0x0a,0x0e,0x0e,0x0b,0x08,0x09,0x07,0x09,0x09,0x09,0x0b,0x08,0x08,0x0b,0x09,0x09,0x06,0x0a,0x0a,0x09,0x08,0x08,0x0e,0x0c,0x08,0x09,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x06,0x0f,0x09,0x09,0x09,0x0a,0x0a,0x08,0x08,0x04,0x0c,0x0b,0x0b,0x08,0x0b,0x03,0x03,0x07,0x07,0x03,0x03,0x0a,0x06,0x04,0x0c,0x0b,0x05,0x03,0x03,0x07,0x06, +0x06,0x04,0x04,0x04,0x06,0x0b,0x08,0x05,0x0a,0x0b,0x09,0x09,0x08,0x0c,0x09,0x0a,0x06,0x07,0x09,0x07,0x03,0x04,0x06,0x08,0x05,0x0b,0x0b,0x0b,0x0f,0x0c,0x0f,0x04,0x00,0x00,0x00,0x00,0x00,0x04,0x0c,0x0d,0x05,0x05,0x08,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x09,0x09,0x09,0x08,0x08,0x13,0x0d,0x13,0x0d,0x15,0x10,0x15,0x10,0x0d, +0x0d,0x0d,0x0d,0x0d,0x0d,0x0f,0x0f,0x08,0x08,0x0f,0x0f,0x08,0x08,0x0c,0x0d,0x05,0x05,0x0c,0x0d,0x05,0x05,0x0c,0x0d,0x05,0x05,0x10,0x0c,0x0d,0x08,0x09,0x09,0x0b,0x05,0x0b,0x0c,0x08,0x08,0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0f,0x05,0x0c,0x08,0x08,0x04,0x08,0x08,0x08,0x08,0x0f,0x05, +0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x13,0x0d,0x13,0x0d,0x13,0x0d,0x15,0x10,0x15,0x10,0x0d,0x0d,0x0d,0x10,0x10,0x10,0x10,0x10,0x10,0x0c,0x08,0x08,0x0c,0x08,0x08,0x0f,0x08,0x11,0x10,0x0f,0x08,0x0d,0x08,0x0d, +0x08,0x0d,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x05,0x0b,0x0b,0x05,0x05,0x0b,0x05,0x0b,0x05,0x0b,0x08,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x05,0x05,0x08,0x05,0x05,0x05,0x05,0x00,0x13,0x0d,0x15,0x10,0x0f,0x08,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05, +0x0f,0x05,0x0f,0x05,0x09,0x09,0x08,0x08,0x07,0x13,0x0d,0x10,0x10,0x0f,0x0f,0x0f,0x09,0x09,0x09,0x09,0x0b,0x05,0x0b,0x05,0x0b,0x05,0x13,0x0d,0x09,0x0b,0x09,0x09,0x09,0x0b,0x09,0x09,0x13,0x13,0x0d,0x0d,0x07,0x07,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x0c,0x0d,0x05,0x05,0x0c,0x0d,0x05,0x05,0x0c,0x0d,0x05,0x05,0x09,0x09, +0x09,0x09,0x0f,0x05,0x0f,0x05,0x09,0x0b,0x09,0x09,0x13,0x13,0x0d,0x0d,0x13,0x13,0x0d,0x0d,0x0d,0x0d,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x04,0x04,0x05,0x04,0x00,0x00,0x00,0x0d,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x0d,0x09,0x0d,0x09, +0x0d,0x09,0x0d,0x0b,0x0b,0x0b,0x04,0x04,0x08,0x07,0x09,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x07,0x09,0x08,0x09,0x0a,0x0a,0x0b,0x09,0x09,0x0a,0x08,0x0b,0x0c,0x0a,0x0c,0x0d,0x0a,0x0c,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x07,0x09,0x0a,0x0a,0x0b, +0x09,0x0a,0x09,0x0a,0x0a,0x08,0x08,0x0c,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0b,0x0f,0x0f,0x0c,0x0e,0x0e,0x09,0x0c,0x0e,0x0c,0x0a,0x0e,0x0c,0x0b,0x0b,0x0a,0x0a,0x0c,0x0d,0x0b,0x0a,0x0b,0x09,0x09,0x0f,0x0f,0x0f,0x0d,0x0f,0x0f,0x0b,0x0f,0x0f,0x0b,0x0c,0x0d,0x0c,0x0c,0x0c,0x0a,0x0e,0x0c,0x0d, +0x0b,0x0b,0x09,0x0c,0x0b,0x0b,0x0e,0x0c,0x0c,0x0e,0x09,0x08,0x09,0x09,0x0a,0x0a,0x0b,0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x09,0x0a,0x0a,0x0a,0x07,0x09,0x09,0x09,0x0a,0x0c,0x0d,0x0a,0x0a,0x0a,0x0c,0x0a,0x0b,0x08,0x08,0x09,0x09,0x08,0x08,0x09,0x09,0x08,0x07,0x0a,0x07,0x09,0x08, +0x09,0x0d,0x09,0x0d,0x09,0x09,0x09,0x0c,0x05,0x0d,0x0b,0x0b,0x0b,0x09,0x0c,0x0a,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0a,0x0a,0x0a,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x0a,0x04,0x04,0x04,0x05,0x05,0x04,0x04,0x04,0x05,0x04,0x04,0x04,0x0e, +0x0e,0x0e,0x0e,0x08,0x0c,0x0c,0x08,0x07,0x08,0x08,0x09,0x08,0x0e,0x0d,0x0e,0x07,0x10,0x08,0x0d,0x0d,0x0d,0x0d,0x09,0x08,0x08,0x0c,0x09,0x0c,0x0b,0x09,0x07,0x07,0x10,0x07,0x09,0x08,0x08,0x08,0x08,0x08,0x16,0x0d,0x0d,0x07,0x04,0x07,0x04,0x07,0x04,0x04,0x04,0x08,0x09,0x09,0x09,0x06,0x06,0x04,0x04,0x04,0x06,0x04,0x07,0x0e, +0x03,0x0e,0x0e,0x0e,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x13,0x13,0x0b,0x13,0x13,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x08,0x09,0x08,0x09,0x07,0x06,0x06,0x0b,0x09, +0x0b,0x07,0x12,0x0e,0x09,0x09,0x0f,0x0d,0x0e,0x0c,0x10,0x0d,0x0f,0x0c,0x0a,0x08,0x0c,0x09,0x0f,0x0c,0x0c,0x0a,0x0c,0x0a,0x0e,0x0b,0x0e,0x0b,0x12,0x0d,0x0c,0x09,0x0c,0x09,0x13,0x0e,0x0d,0x00,0x10,0x10,0x10,0x08,0x00,0x00,0x09,0x08,0x0b,0x09,0x09,0x07,0x11,0x0e,0x0f,0x0e,0x0b,0x09,0x0b,0x09,0x08,0x07,0x0c,0x0a,0x08,0x07, +0x0d,0x0b,0x0b,0x09,0x10,0x0d,0x09,0x09,0x0c,0x0c,0x0d,0x07,0x03,0x07,0x0b,0x07,0x10,0x10,0x04,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x06,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x08,0x0b,0x0c,0x04,0x03,0x04,0x03,0x0b,0x09,0x0c,0x0a,0x09,0x08,0x09,0x08,0x09,0x09,0x07,0x07,0x12,0x0d,0x12,0x0e,0x10,0x0e,0x0e, +0x0b,0x0e,0x0b,0x0e,0x0b,0x0a,0x07,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x05,0x08,0x04,0x0c,0x09,0x0e,0x0b,0x15,0x10,0x09,0x09,0x0b,0x0b,0x0d,0x0e,0x0c,0x09,0x10,0x0d,0x09,0x06,0x09,0x08,0x0a,0x08,0x0f,0x0c,0x0a,0x08,0x09,0x09,0x09,0x09,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x08,0x05,0x0b,0x05,0x0f,0x0b,0x06,0x09,0x0a,0x07, +0x0c,0x09,0x06,0x06,0x09,0x09,0x09,0x08,0x04,0x0c,0x0a,0x06,0x06,0x0a,0x07,0x0b,0x06,0x0c,0x0a,0x0a,0x07,0x0b,0x09,0x09,0x08,0x0c,0x09,0x0a,0x06,0x09,0x07,0x0c,0x07,0x08,0x0e,0x08,0x09,0x0e,0x04,0x12,0x0e,0x0e,0x13,0x0e,0x0f,0x0f,0x0e,0x0e,0x0f,0x08,0x08,0x0a,0x0b,0x0e,0x0b,0x0f,0x04,0x07,0x09,0x0e,0x10,0x0b,0x10,0x0a, +0x0a,0x0d,0x0b,0x12,0x0f,0x08,0x0f,0x05,0x0f,0x05,0x09,0x09,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x10,0x08,0x08,0x10,0x0c,0x08,0x08,0x0c,0x0b,0x05,0x05,0x0b,0x09,0x09,0x09,0x09,0x0c,0x05,0x05,0x0d,0x0c,0x05,0x05,0x0d,0x07,0x07,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x08,0x06,0x09,0x08,0x0c,0x09,0x09,0x0e,0x0b,0x0c,0x0c,0x0d,0x0d,0x09,0x08,0x10,0x0d,0x11,0x0e,0x0b,0x09,0x05,0x05,0x09,0x0a,0x07,0x0a,0x08,0x09,0x08,0x0c,0x0d,0x06,0x09,0x07,0x03,0x06,0x09,0x09,0x03,0x03,0x03,0x03,0x06,0x06,0x06,0x07,0x18,0x20,0x05,0x07,0x02, +0x04,0x06,0x07,0x05,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x15,0x09,0x0c,0x0f,0x0e,0x0a,0x07,0x09,0x0c,0x0c,0x08,0x05,0x0b,0x08,0x0b,0x09,0x0b,0x09,0x09,0x0c,0x09,0x09,0x08,0x0c,0x0a,0x0d,0x07,0x08,0x0a,0x05,0x09,0x05,0x06,0x04,0x0e,0x09,0x09,0x08,0x08,0x09,0x0f,0x0f,0x0f, +0x10,0x10,0x09,0x08,0x05,0x08,0x07,0x0a,0x07,0x0b,0x04,0x09,0x0a,0x0e,0x0e,0x0a,0x09,0x09,0x09,0x08,0x07,0x08,0x07,0x08,0x05,0x05,0x04,0x04,0x06,0x09,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x05,0x05,0x05,0x04,0x04,0x1b,0x10,0x0e,0x11,0x05,0x05,0x05,0x06,0x04,0x04,0x05, +0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x0f,0x05,0x05,0x0f,0x04,0x08,0x08,0x15,0x10,0x10,0x15,0x0f,0x08,0x08,0x0f,0x08,0x08,0x07,0x07,0x00,0x00,0x06,0x0c,0x0a,0x0b,0x09,0x14,0x11,0x0b,0x09,0x0b,0x09,0x15,0x10,0x0c,0x09,0x06,0x05,0x0a,0x00,0x0b,0x09,0x05,0x05,0x03,0x08,0x05,0x05,0x04,0x03,0x07,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x03,0x08,0x07,0x09,0x09,0x09,0x0f,0x0d,0x0d,0x0d,0x0d,0x0f,0x0a,0x0b,0x0a,0x06,0x0f,0x12,0x07,0x12,0x08,0x0d,0x0f,0x0f,0x0f,0x07,0x0c,0x10,0x0c,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x09,0x09,0x09,0x0d,0x08,0x08,0x0f,0x05,0x05,0x0f,0x05,0x05,0x0f, +0x08,0x08,0x00,0x07,0x0d,0x05,0x05,0x10,0x08,0x08,0x0c,0x08,0x08,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x18,0x18,0x0e,0x00,0x00,0x0e,0x0e,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0a,0x0a,0x0a,0x0e,0x0a,0x0a,0x0d,0x10,0x0a,0x0a,0x11, +0x0a,0x0a,0x0f,0x0a,0x0b,0x0d,0x0a,0x0c,0x0e,0x0f,0x0a,0x0c,0x0a,0x0b,0x0a,0x0b,0x0a,0x0b,0x0b,0x0a,0x0c,0x0a,0x0b,0x0d,0x0a,0x0a,0x09,0x0d,0x0a,0x0a,0x0a,0x0b,0x07,0x08,0x0a,0x0d,0x0c,0x09,0x00,0x00,0x11,0x22,0x0b,0x00,0x02,0x05,0x05,0x07,0x0a,0x09,0x0e,0x0e,0x04,0x05,0x05,0x07,0x0c,0x04,0x07,0x04,0x07,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x04,0x04,0x0c,0x0c,0x0c,0x08,0x10,0x0b,0x0a,0x0b,0x0c,0x09,0x08,0x0c,0x0c,0x05,0x06,0x0a,0x08,0x0f,0x0d,0x0d,0x0a,0x0d,0x0a,0x09,0x09,0x0c,0x0b,0x10,0x0a,0x09,0x0a,0x05,0x06,0x05,0x0c,0x07,0x05,0x09,0x0a,0x08,0x0a,0x09,0x05,0x0a,0x0a,0x04,0x04,0x08,0x04,0x0f,0x0a,0x0a,0x0a,0x0a,0x06, +0x07,0x06,0x0a,0x08,0x0c,0x08,0x08,0x08,0x05,0x04,0x05,0x0c,0x0b,0x0b,0x0b,0x09,0x0d,0x0d,0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x04,0x04,0x04,0x04,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x09,0x09,0x08,0x07,0x08,0x09,0x07,0x0f,0x0f,0x0d,0x05,0x07,0x0c,0x0f,0x0d,0x0e,0x0c,0x0c, +0x0c,0x09,0x0a,0x09,0x0a,0x0d,0x09,0x07,0x07,0x0d,0x0e,0x0a,0x08,0x05,0x05,0x0c,0x0b,0x09,0x0c,0x0b,0x09,0x09,0x0c,0x0b,0x0b,0x0d,0x10,0x10,0x09,0x11,0x06,0x06,0x04,0x04,0x0c,0x0a,0x08,0x09,0x03,0x09,0x05,0x05,0x09,0x09,0x06,0x04,0x04,0x06,0x15,0x0b,0x09,0x0b,0x09,0x09,0x05,0x05,0x05,0x05,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c, +0x04,0x06,0x06,0x05,0x05,0x03,0x05,0x03,0x06,0x03,0x06,0x08,0x05,0x09,0x07,0x0a,0x08,0x04,0x0c,0x0a,0x09,0x08,0x0a,0x0a,0x0c,0x0c,0x06,0x06,0x06,0x10,0x0f,0x10,0x08,0x0c,0x0a,0x05,0x09,0x07,0x0b,0x08,0x0b,0x08,0x0a,0x07,0x04,0x0b,0x09,0x0b,0x09,0x0c,0x0b,0x0c,0x09,0x09,0x09,0x09,0x08,0x04,0x08,0x05,0x08,0x05,0x0d,0x0a, +0x0d,0x0a,0x0d,0x0a,0x0a,0x06,0x0a,0x06,0x09,0x07,0x09,0x06,0x09,0x07,0x0c,0x0a,0x0c,0x0a,0x0a,0x08,0x0a,0x08,0x08,0x0d,0x0d,0x0a,0x0a,0x07,0x0a,0x08,0x0c,0x07,0x08,0x07,0x13,0x0b,0x08,0x0a,0x04,0x06,0x0e,0x06,0x0a,0x06,0x06,0x0a,0x06,0x0b,0x09,0x0b,0x08,0x0b,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0a,0x0c,0x0a,0x0c, +0x0a,0x0c,0x0a,0x0c,0x0a,0x05,0x04,0x05,0x04,0x05,0x04,0x05,0x04,0x06,0x04,0x0a,0x08,0x08,0x08,0x04,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0a,0x06,0x09,0x07,0x09,0x06,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x10,0x0c,0x09,0x08,0x04,0x0b,0x09,0x0f,0x0e,0x0d,0x0a,0x04,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x09,0x08,0x04,0x07, +0x09,0x0a,0x10,0x10,0x10,0x0f,0x07,0x07,0x04,0x05,0x05,0x0b,0x0a,0x0d,0x06,0x0e,0x0b,0x0e,0x05,0x0b,0x0a,0x09,0x0a,0x0c,0x05,0x0a,0x0b,0x0f,0x0d,0x09,0x0d,0x0c,0x0a,0x09,0x09,0x09,0x0a,0x0d,0x0d,0x05,0x09,0x0a,0x07,0x0a,0x05,0x09,0x09,0x09,0x08,0x0a,0x0a,0x05,0x09,0x08,0x0a,0x09,0x08,0x0a,0x0a,0x08,0x09,0x09,0x0d,0x0e, +0x05,0x09,0x0a,0x09,0x0e,0x09,0x0c,0x08,0x0b,0x09,0x05,0x11,0x11,0x0c,0x0a,0x0a,0x0c,0x0b,0x0a,0x0a,0x08,0x0c,0x09,0x0f,0x09,0x0d,0x0d,0x0a,0x0b,0x0f,0x0c,0x0d,0x0c,0x0a,0x0b,0x09,0x0a,0x0c,0x0a,0x0d,0x0b,0x10,0x11,0x0c,0x0d,0x0a,0x0a,0x11,0x0a,0x09,0x0a,0x09,0x07,0x09,0x09,0x0d,0x08,0x0a,0x0a,0x08,0x09,0x0c,0x0a,0x0a, +0x0a,0x0a,0x08,0x07,0x08,0x0c,0x08,0x0a,0x0a,0x0e,0x0e,0x0a,0x0c,0x09,0x08,0x0e,0x09,0x09,0x0a,0x07,0x08,0x07,0x04,0x0d,0x0e,0x0a,0x08,0x08,0x0a,0x08,0x07,0x11,0x13,0x0b,0x06,0x06,0x06,0x06,0x04,0x09,0x07,0x09,0x0d,0x0a,0x0c,0x0a,0x05,0x06,0x05,0x05,0x08,0x08,0x08,0x08,0x05,0x05,0x05,0x08,0x05,0x08,0x05,0x05,0x05,0x08, +0x08,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x05,0x04,0x05,0x04,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d, +0x0a,0x0d,0x0a,0x0d,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x06,0x09,0x09,0x0d,0x0a,0x05,0x06,0x04,0x04,0x09,0x07,0x0f,0x0d,0x0a,0x09,0x0a,0x08,0x0d,0x0a,0x09,0x08,0x09,0x08,0x0b,0x08,0x0b,0x0a,0x0b,0x0a,0x0c,0x09,0x0d,0x0a,0x05,0x05,0x05,0x05,0x07, +0x07,0x08,0x08,0x08,0x08,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x09,0x0b,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x08,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x05,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x05,0x04,0x05,0x04,0x0a,0x08,0x0a, +0x08,0x0a,0x08,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x06,0x09,0x06,0x09,0x06,0x09,0x06,0x0c, +0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0b,0x08,0x0b,0x08,0x10,0x0c,0x10,0x0c,0x0a,0x08,0x0a,0x08,0x09,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x06,0x0c,0x08,0x09,0x04,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x10,0x10,0x10,0x10,0x10,0x10,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x08,0x08,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x10,0x10,0x10,0x10,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, +0x0e,0x10,0x10,0x10,0x10,0x10,0x10,0x0a,0x0a,0x07,0x07,0x0a,0x0a,0x05,0x05,0x0a,0x0a,0x09,0x09,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x10, +0x10,0x10,0x10,0x10,0x10,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0c,0x0a,0x0a,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x0a,0x0a,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0d,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x08,0x0c,0x0d,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x0c,0x0b,0x0f,0x05,0x05,0x0a,0x08,0x04,0x08,0x0f,0x0d,0x0a,0x0d,0x10,0x0d,0x0a,0x0a,0x0a,0x09,0x07,0x09, +0x05,0x06,0x09,0x06,0x09,0x0d,0x0c,0x0a,0x09,0x0a,0x08,0x0a,0x0a,0x08,0x07,0x09,0x09,0x06,0x07,0x09,0x04,0x07,0x08,0x05,0x15,0x13,0x11,0x0f,0x0c,0x09,0x12,0x10,0x0e,0x0b,0x09,0x05,0x04,0x0d,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x09,0x0b,0x09,0x0b,0x09,0x0f,0x0e,0x0c,0x0a,0x0c,0x0a,0x0a,0x08,0x0d,0x0a, +0x0d,0x0a,0x0a,0x08,0x04,0x15,0x13,0x11,0x0c,0x0a,0x11,0x0c,0x0d,0x0a,0x0b,0x09,0x0b,0x09,0x09,0x09,0x09,0x09,0x05,0x04,0x05,0x04,0x0d,0x0a,0x0d,0x0a,0x0a,0x06,0x0a,0x06,0x0c,0x0a,0x0c,0x0a,0x09,0x07,0x0c,0x0a,0x0c,0x0a,0x0a,0x0a,0x08,0x0b,0x09,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x09,0x08,0x0a,0x09,0x0a,0x0a,0x0a, +0x09,0x0a,0x0a,0x0a,0x08,0x08,0x0a,0x0a,0x09,0x0a,0x07,0x07,0x09,0x09,0x05,0x0a,0x0a,0x09,0x08,0x08,0x0a,0x0a,0x0a,0x04,0x05,0x05,0x05,0x06,0x04,0x0a,0x0f,0x0f,0x0f,0x09,0x09,0x0a,0x0a,0x0c,0x0c,0x0b,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x07,0x04,0x04,0x05,0x05,0x06,0x06,0x0a,0x0a,0x09,0x08,0x0c,0x08,0x07,0x08, +0x09,0x08,0x08,0x06,0x06,0x06,0x08,0x0b,0x08,0x09,0x09,0x0a,0x04,0x08,0x07,0x0a,0x06,0x06,0x10,0x10,0x11,0x0a,0x08,0x0c,0x0d,0x0a,0x0a,0x08,0x08,0x09,0x0a,0x0a,0x0c,0x0a,0x0b,0x0e,0x0a,0x0c,0x0a,0x0a,0x08,0x08,0x08,0x0a,0x09,0x0a,0x08,0x0f,0x0f,0x0a,0x09,0x0b,0x09,0x0a,0x08,0x0a,0x08,0x0b,0x0a,0x0a,0x07,0x0a,0x0a,0x08, +0x04,0x0d,0x08,0x08,0x0f,0x0c,0x0b,0x0a,0x0f,0x0c,0x0b,0x08,0x0f,0x0c,0x0c,0x0a,0x10,0x0d,0x09,0x08,0x0d,0x0d,0x0d,0x0a,0x0c,0x0a,0x0c,0x0a,0x16,0x13,0x0e,0x0b,0x13,0x0f,0x0f,0x0c,0x0a,0x07,0x09,0x07,0x07,0x00,0x00,0x11,0x10,0x0a,0x09,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x0a,0x08,0x0c,0x0a,0x0e,0x0b,0x11,0x0e,0x0c,0x09,0x0b, +0x08,0x09,0x07,0x0f,0x0c,0x0c,0x0a,0x0e,0x0b,0x0e,0x0b,0x05,0x0f,0x0d,0x0a,0x09,0x0c,0x0a,0x0b,0x0a,0x0b,0x09,0x0b,0x09,0x0f,0x0e,0x09,0x09,0x0c,0x09,0x0c,0x09,0x0f,0x0d,0x09,0x08,0x09,0x08,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0b,0x0a,0x0d,0x0c,0x0a,0x0a,0x0f,0x0f,0x0e,0x0c, +0x09,0x08,0x0f,0x0e,0x11,0x0e,0x0c,0x09,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x0a,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x0a,0x06,0x06,0x03,0x04,0x04,0x04,0x05,0x07,0x05,0x04,0x06,0x04,0x04,0x04,0x06,0x06,0x04,0x04,0x0a,0x0a,0x0a,0x0a,0x06,0x05,0x05,0x06,0x05,0x05,0x05,0x05,0x05,0x06, +0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x05,0x03,0x04,0x05,0x04,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x07,0x06,0x04,0x04,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x0b,0x05,0x0b,0x06,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x08,0x0b,0x0e,0x08,0x08,0x09,0x09,0x07,0x07,0x04,0x05,0x08,0x07,0x0c,0x0a,0x0a,0x08,0x0b,0x0b,0x0b,0x10,0x09,0x0a,0x0a,0x08,0x08,0x08,0x07,0x09,0x0a,0x0c,0x0a,0x08,0x0c,0x08,0x07,0x07,0x09,0x07,0x08,0x0a,0x08,0x0a,0x0a,0x06,0x08,0x06,0x06,0x07,0x05,0x05,0x07, +0x07,0x03,0x04,0x06,0x05,0x09,0x07,0x07,0x07,0x06,0x06,0x06,0x05,0x07,0x09,0x05,0x05,0x06,0x08,0x06,0x06,0x05,0x05,0x04,0x04,0x06,0x03,0x05,0x08,0x06,0x06,0x05,0x06,0x06,0x06,0x03,0x06,0x06,0x08,0x05,0x05,0x06,0x05,0x06,0x07,0x05,0x03,0x04,0x06,0x05,0x06,0x05,0x06,0x07,0x05,0x0a,0x03,0x06,0x09,0x0f,0x0b,0x09,0x09,0x0f, +0x0b,0x0f,0x0d,0x09,0x0a,0x09,0x08,0x13,0x08,0x0a,0x0f,0x10,0x10,0x0b,0x0b,0x0b,0x08,0x08,0x09,0x07,0x08,0x09,0x03,0x00,0x00,0x00,0x00,0x0a,0x0b,0x0b,0x0b,0x08,0x07,0x0a,0x0a,0x05,0x0f,0x0a,0x0a,0x06,0x06,0x08,0x06,0x08,0x0a,0x08,0x0a,0x0f,0x0b,0x05,0x05,0x0a,0x09,0x0a,0x0a,0x0a,0x05,0x0a,0x08,0x04,0x0f,0x0a,0x0a,0x06, +0x07,0x07,0x08,0x08,0x08,0x09,0x0a,0x0a,0x09,0x07,0x08,0x0c,0x04,0x08,0x04,0x0a,0x08,0x06,0x05,0x05,0x06,0x04,0x03,0x03,0x06,0x06,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x04,0x03,0x03,0x06,0x06,0x06,0x05,0x05,0x04,0x04,0x05,0x04,0x06,0x00,0x00,0x00,0x00,0x04,0x05,0x05,0x06,0x05,0x05, +0x09,0x09,0x09,0x09,0x06,0x00,0x00,0x00,0x00,0x08,0x05,0x05,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x03, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x0d,0x0b,0x0c,0x0a,0x0d,0x0b,0x10,0x0d,0x09,0x06,0x09,0x0c,0x09,0x0e,0x0c,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x06,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e, +0x11,0x07,0x04,0x09,0x0a,0x07,0x09,0x09,0x0a,0x0a,0x09,0x11,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x0b,0x09,0x09,0x09,0x06,0x0a,0x06,0x0d,0x0b,0x09,0x06,0x0e,0x09,0x0e,0x04,0x06,0x0a,0x0a,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0e,0x04,0x0a,0x04,0x09,0x07,0x04,0x04,0x09,0x04,0x0d,0x04,0x10,0x09,0x10,0x10,0x0a,0x0a,0x0a,0x09, +0x09,0x07,0x07,0x14,0x14,0x17,0x17,0x0e,0x0e,0x09,0x09,0x03,0x11,0x0d,0x0e,0x0b,0x0a,0x0b,0x09,0x09,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x04,0x0b,0x00,0x0b,0x0b,0x0b,0x06,0x09,0x09,0x10,0x06,0x10,0x06,0x0a,0x0b,0x0a,0x07,0x10,0x09,0x10,0x09,0x0d,0x0e,0x06,0x09,0x09,0x07,0x04,0x09,0x0a,0x09,0x0a,0x09, +0x0a,0x0a,0x09,0x0b,0x0b,0x10,0x06,0x09,0x07,0x0b,0x09,0x06,0x09,0x09,0x09,0x10,0x06,0x10,0x06,0x04,0x0a,0x07,0x11,0x09,0x09,0x0b,0x0b,0x11,0x09,0x00,0x00,0x00,0x0b,0x00,0x0b,0x0b,0x0b,0x0b,0x0d,0x0b,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x07,0x09,0x09,0x0d,0x0e,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06, +0x10,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x09,0x07,0x07,0x07,0x14,0x0e,0x14,0x0e,0x14,0x0e,0x17,0x11,0x17,0x11,0x0e,0x09,0x0a,0x0a,0x0a,0x11,0x11,0x09,0x09,0x11,0x09,0x09,0x11,0x09,0x09,0x11,0x09,0x09,0x0d, +0x0d,0x12,0x11,0x10,0x09,0x0e,0x09,0x0e,0x09,0x0e,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x0b,0x06,0x0b,0x06,0x09,0x0b,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x10,0x0d,0x0e,0x06,0x09,0x0d,0x0e,0x0d,0x0e,0x00,0x00,0x00,0x00,0x00,0x13,0x12, +0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x07,0x00,0x00,0x0a,0x00,0x00,0x00,0x14,0x0e,0x17,0x11,0x09,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x10,0x10,0x06,0x0a,0x0a,0x0a,0x15,0x0e,0x09,0x1a,0x12,0x06,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x09, +0x07,0x07,0x0d,0x0b,0x0b,0x09,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x15,0x1a,0x00,0x00,0x00,0x00,0x00,0x0a,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x07,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x0a,0x0a,0x0a,0x0a,0x0b,0x0a,0x09,0x09,0x07,0x14,0x0e,0x09,0x0a,0x0a,0x0a,0x09,0x0a,0x0a,0x0a,0x09,0x0a,0x0a, +0x0a,0x11,0x09,0x09,0x11,0x09,0x09,0x10,0x09,0x09,0x10,0x09,0x09,0x10,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x0b,0x06,0x06,0x07,0x07,0x14,0x0e,0x0b,0x0a,0x0a,0x00,0x09,0x09,0x09,0x06,0x0a,0x0c,0x0b,0x09,0x09,0x06,0x04,0x0d,0x0a,0x0a,0x06,0x09,0x08,0x08,0x08,0x08,0x04,0x09,0x07,0x0b,0x08,0x0a, +0x08,0x09,0x07,0x0b,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x08,0x08,0x08,0x05,0x09,0x0a,0x0a,0x09,0x06,0x0d,0x0a,0x0b,0x09,0x0b,0x08,0x0a,0x09,0x07,0x0c,0x06,0x07,0x07,0x08,0x0a,0x0a,0x09,0x11,0x09,0x11,0x06,0x04,0x03,0x09,0x04,0x02,0x00,0x02,0x04,0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x09,0x09,0x10,0x07,0x0d,0x0a,0x10,0x0c,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x0f,0x08,0x0f,0x08,0x0f,0x0b,0x0c,0x0c,0x0c,0x0d,0x0f,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0c,0x0d,0x0a,0x12,0x0e,0x08,0x08,0x05,0x05,0x05,0x06,0x04,0x0a,0x04,0x04,0x0e,0x0b,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x03,0x00,0x00,0x04,0x00,0x00,0x0b,0x0a,0x07,0x08,0x0c,0x05,0x06,0x0b,0x0c,0x05,0x0a,0x09,0x09,0x0c,0x0b,0x05,0x07,0x0b,0x0a,0x0a,0x0b,0x0a,0x0a,0x0b,0x0a,0x0d,0x0c,0x09,0x09,0x09,0x04,0x06,0x0a,0x0a,0x09,0x09,0x09,0x0a,0x0b,0x08,0x0c,0x09,0x09,0x0c,0x0a,0x0c, +0x09,0x0d,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x0a,0x07,0x08,0x0c,0x05,0x06,0x0c,0x05,0x0a,0x09,0x09,0x0b,0x07,0x0b,0x0a,0x0b,0x0a,0x0b,0x0a,0x0d,0x0c,0x05,0x0a,0x09,0x0b,0x0b,0x14,0x00,0x0b,0x09,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x05,0x00,0x0d,0x0b,0x0b,0x0c,0x09,0x0b,0x0d,0x0d,0x08,0x0b,0x0d,0x0d,0x0b,0x0d,0x0e,0x0d,0x0b,0x09,0x0a,0x0d,0x0c,0x0a,0x0c,0x0c,0x0b,0x0c,0x0c,0x0d,0x0a,0x0b,0x0c,0x0b,0x0d,0x0b,0x0b,0x0b,0x0b,0x0e,0x08,0x0a,0x0a,0x0f,0x09,0x09,0x0d,0x0f,0x0a,0x09,0x12,0x0a,0x0a,0x0d, +0x09,0x09,0x0d,0x0a,0x0d,0x0e,0x0f,0x09,0x0d,0x09,0x0b,0x09,0x0a,0x0a,0x0b,0x09,0x0a,0x0d,0x09,0x0b,0x0b,0x09,0x09,0x0a,0x10,0x09,0x09,0x0a,0x0a,0x07,0x06,0x09,0x09,0x09,0x09,0x09,0x0f,0x09,0x0f,0x08,0x09,0x0f,0x0b,0x09,0x0f,0x0d,0x0d,0x0f,0x0a,0x09,0x0f,0x0f,0x09,0x09,0x09,0x09,0x09,0x09,0x0f,0x0f,0x0a,0x09,0x0a,0x0f, +0x0a,0x09,0x09,0x09,0x0f,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0c,0x0d,0x0c,0x0b,0x09,0x0d,0x0b,0x0c,0x0a,0x0b,0x0c,0x0d,0x0c,0x0a,0x0c,0x0b,0x0c,0x0b,0x0d,0x0c,0x0c,0x0c,0x0c,0x0b,0x0c,0x0c,0x0c,0x0d,0x0b,0x0d,0x0c,0x02,0x02,0x03,0x03,0x03,0x05,0x06,0x0f,0x0a,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0a,0x0a,0x05,0x0e,0x0a, +0x0a,0x0a,0x09,0x0a,0x09,0x0a,0x05,0x0a,0x09,0x0a,0x07,0x0f,0x09,0x0a,0x0a,0x0a,0x0e,0x0a,0x0a,0x07,0x0e,0x0a,0x0a,0x0c,0x0c,0x04,0x05,0x13,0x13,0x13,0x13,0x18,0x09,0x09,0x04,0x09,0x07,0x09,0x09,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0a,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x08,0x09,0x0a,0x07,0x07,0x0a,0x0a,0x04,0x05,0x08,0x07,0x0d,0x0b,0x0a,0x08,0x0a,0x08,0x07,0x07,0x0a,0x09,0x0e,0x09,0x08,0x08,0x0c,0x0d,0x07,0x0b,0x08,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07, +0x07,0x04,0x04,0x04,0x04,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x09,0x0a,0x0a,0x04,0x04,0x04,0x04,0x04,0x0a,0x05,0x08,0x07,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x0c,0x0b,0x09,0x08,0x07,0x09,0x07,0x08,0x0a,0x0a,0x04,0x08,0x09,0x0d,0x0b,0x08,0x0a,0x0a,0x08,0x08,0x07,0x08,0x0b,0x09,0x0b,0x0b,0x09,0x07,0x0a,0x04,0x0a,0x08,0x0b,0x04,0x08,0x07,0x0a,0x07,0x09,0x07,0x04,0x04,0x05,0x0e,0x0e,0x0a,0x08, +0x08,0x0a,0x09,0x08,0x08,0x07,0x0a,0x07,0x0d,0x08,0x0b,0x0b,0x08,0x0a,0x0d,0x0a,0x0a,0x0a,0x08,0x09,0x07,0x08,0x0b,0x09,0x0b,0x09,0x0e,0x0e,0x0a,0x0c,0x08,0x09,0x0f,0x08,0x07,0x0a,0x0a,0x0b,0x0f,0x0f,0x0b,0x09,0x0a,0x07,0x0a,0x0a,0x0a,0x0c,0x09,0x09,0x0c,0x0a,0x0a,0x06,0x0b,0x0b,0x0a,0x08,0x08,0x0f,0x0d,0x08,0x09,0x0a, +0x0a,0x0b,0x0b,0x0c,0x0c,0x06,0x10,0x0a,0x09,0x0a,0x0b,0x0b,0x09,0x09,0x05,0x0d,0x0c,0x0c,0x08,0x0c,0x04,0x04,0x07,0x07,0x04,0x04,0x0a,0x07,0x05,0x0d,0x0c,0x05,0x04,0x04,0x08,0x06,0x06,0x04,0x04,0x04,0x06,0x0b,0x08,0x05,0x0a,0x0c,0x0a,0x0a,0x08,0x0d,0x0a,0x0a,0x06,0x07,0x09,0x07,0x04,0x04,0x07,0x09,0x06,0x0b,0x0b,0x0b, +0x10,0x0d,0x10,0x04,0x00,0x00,0x00,0x00,0x00,0x04,0x0d,0x0e,0x06,0x06,0x09,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x0a,0x0a,0x0a,0x09,0x09,0x14,0x0e,0x14,0x0e,0x17,0x11,0x17,0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x10,0x10,0x09,0x09,0x10,0x10,0x09,0x09,0x0d,0x0e,0x06,0x06,0x0d,0x0e,0x06,0x06,0x0d,0x0e,0x06,0x06,0x11,0x0d,0x0e, +0x09,0x0a,0x0a,0x0b,0x06,0x0b,0x0d,0x09,0x09,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x10,0x06,0x0d,0x09,0x09,0x04,0x09,0x09,0x09,0x09,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x14,0x0e,0x14,0x0e,0x14,0x0e,0x17,0x11,0x17,0x11,0x0e,0x0e,0x0e,0x11,0x11,0x11,0x11,0x11,0x11,0x0d,0x09,0x09,0x0d,0x09,0x09,0x10,0x09,0x12,0x11,0x10,0x09,0x0e,0x09,0x0e,0x09,0x0e,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x06,0x0b,0x0b,0x06,0x06,0x0b,0x06,0x0b, +0x06,0x0b,0x09,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x09,0x06,0x06,0x06,0x06,0x00,0x14,0x0e,0x17,0x11,0x10,0x09,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x0a,0x0a,0x09,0x09,0x07,0x14,0x0e,0x11,0x11,0x10,0x10,0x10,0x0a,0x0a,0x0a,0x0a,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x14,0x0e, +0x0a,0x0b,0x0a,0x0a,0x0a,0x0b,0x0a,0x0a,0x14,0x14,0x0e,0x0e,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x0d,0x0e,0x06,0x06,0x0d,0x0e,0x06,0x06,0x0d,0x0e,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x10,0x06,0x10,0x06,0x0a,0x0b,0x0a,0x0a,0x14,0x14,0x0e,0x0e,0x14,0x14,0x0e,0x0e,0x0e,0x0e,0x09,0x09,0x04,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x00,0x00,0x04,0x04,0x06,0x04,0x00,0x00,0x00,0x0e,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0e,0x0a,0x0e,0x0a,0x0e,0x0a,0x0e,0x0b,0x0b,0x0b,0x04,0x04,0x09,0x07,0x0a,0x0b,0x0a,0x09,0x09,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x08,0x09,0x09,0x0a,0x0a,0x0a,0x0b,0x0a,0x0a,0x0b,0x09,0x0b,0x0d,0x0b,0x0d,0x0e,0x0b,0x0d,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x08,0x09,0x0a,0x0a,0x0b,0x0a,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x0d,0x0c,0x0c,0x0b,0x0c,0x0a,0x0a,0x0a,0x0d,0x0d,0x0d,0x0d,0x10,0x10,0x0c,0x10,0x10,0x0c,0x0f,0x0e,0x09, +0x0d,0x0e,0x0d,0x0a,0x0e,0x0d,0x0c,0x0c,0x0a,0x0b,0x0d,0x0e,0x0c,0x0a,0x0c,0x0a,0x09,0x10,0x10,0x10,0x0e,0x10,0x10,0x0c,0x10,0x10,0x0c,0x0d,0x0d,0x0d,0x0c,0x0c,0x0b,0x0f,0x0d,0x0e,0x0c,0x0c,0x0a,0x0d,0x0c,0x0c,0x0e,0x0d,0x0c,0x0f,0x09,0x09,0x0a,0x09,0x0a,0x0b,0x0c,0x0c,0x0a,0x0a,0x0a,0x09,0x0a,0x09,0x09,0x0a,0x0a,0x0a, +0x0a,0x0a,0x0a,0x09,0x09,0x0a,0x0b,0x0a,0x0a,0x08,0x0a,0x0a,0x0a,0x0a,0x0d,0x0e,0x0b,0x0b,0x0b,0x0d,0x0b,0x0c,0x09,0x08,0x0a,0x0a,0x08,0x08,0x09,0x09,0x08,0x08,0x0b,0x08,0x09,0x08,0x09,0x0d,0x0a,0x0e,0x09,0x0a,0x0a,0x0d,0x05,0x0d,0x0c,0x0c,0x0b,0x0a,0x0d,0x0a,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x05, +0x05,0x05,0x05,0x05,0x05,0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x0f,0x0f,0x0f,0x0f,0x08,0x0d,0x0c,0x08,0x07,0x08,0x09,0x0a,0x08,0x0e,0x0e,0x0f,0x08,0x11,0x08,0x0e,0x0e,0x0e,0x0e,0x0a,0x08,0x08,0x0d,0x0a,0x0d, +0x0b,0x09,0x08,0x07,0x11,0x07,0x09,0x08,0x08,0x08,0x08,0x08,0x17,0x0e,0x0e,0x07,0x04,0x08,0x04,0x08,0x04,0x04,0x04,0x08,0x0a,0x0a,0x09,0x06,0x06,0x04,0x04,0x04,0x06,0x04,0x07,0x0f,0x04,0x0f,0x0f,0x0f,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x14,0x14,0x0b,0x14,0x14,0x0b,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x08,0x0a,0x08,0x09,0x07,0x06,0x06,0x0c,0x09,0x0c,0x07,0x13,0x0f,0x0a,0x09,0x10,0x0d,0x0e,0x0d,0x11,0x0e,0x10,0x0d,0x0b,0x08,0x0c,0x0a,0x10,0x0c,0x0d,0x0a,0x0d,0x0a,0x0f,0x0b,0x0f,0x0b, +0x13,0x0e,0x0d,0x0a,0x0d,0x0a,0x15,0x0f,0x0d,0x00,0x11,0x11,0x11,0x08,0x00,0x00,0x0a,0x09,0x0c,0x09,0x09,0x07,0x12,0x0f,0x10,0x0f,0x0c,0x0a,0x0c,0x0a,0x09,0x07,0x0d,0x0a,0x09,0x07,0x0e,0x0b,0x0b,0x0a,0x11,0x0e,0x09,0x0a,0x0c,0x0c,0x0e,0x08,0x03,0x08,0x0c,0x07,0x11,0x11,0x04,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x07,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, +0x0d,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x08,0x0c,0x0c,0x05,0x04,0x05,0x04,0x0c,0x0a,0x0d,0x0b,0x09,0x08,0x09,0x08,0x0a,0x0a,0x07,0x07,0x13,0x0e,0x14,0x0f,0x11,0x0e,0x0f,0x0b,0x0f,0x0b,0x0f,0x0b,0x0b,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x09,0x05,0x08,0x04,0x0d,0x0a,0x0f,0x0b,0x17,0x11,0x0a,0x0a,0x0c,0x0c,0x0e, +0x0f,0x0d,0x0a,0x11,0x0d,0x09,0x07,0x0a,0x08,0x0b,0x08,0x10,0x0c,0x0a,0x09,0x0a,0x0a,0x0a,0x0a,0x08,0x07,0x08,0x07,0x08,0x06,0x09,0x09,0x05,0x0b,0x06,0x10,0x0b,0x06,0x0a,0x0a,0x08,0x0d,0x0a,0x06,0x06,0x0a,0x0a,0x0a,0x08,0x04,0x0d,0x0a,0x06,0x06,0x0b,0x08,0x0c,0x07,0x0d,0x0a,0x0b,0x08,0x0c,0x0a,0x0a,0x08,0x0d,0x0a,0x0a, +0x06,0x09,0x07,0x0d,0x07,0x09,0x0f,0x08,0x0a,0x0f,0x05,0x13,0x0f,0x0f,0x14,0x0f,0x10,0x10,0x0f,0x0f,0x10,0x09,0x08,0x0b,0x0c,0x0f,0x0c,0x10,0x04,0x08,0x0a,0x0f,0x12,0x0c,0x12,0x0b,0x0b,0x0e,0x0c,0x13,0x10,0x09,0x10,0x06,0x10,0x06,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x11,0x09,0x09,0x11,0x0d,0x09,0x09,0x0d,0x0b,0x06, +0x06,0x0b,0x0a,0x0a,0x0a,0x0a,0x0d,0x06,0x06,0x0e,0x0d,0x06,0x06,0x0e,0x07,0x07,0x09,0x09,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x09,0x07,0x0a,0x09,0x0d,0x0a,0x0a,0x0f,0x0b,0x0d,0x0d,0x0e,0x0e,0x0a,0x08,0x11, +0x0e,0x12,0x0f,0x0c,0x0a,0x05,0x05,0x0a,0x0b,0x07,0x0a,0x09,0x0a,0x08,0x0d,0x0e,0x07,0x0a,0x07,0x04,0x06,0x09,0x09,0x04,0x04,0x03,0x04,0x06,0x06,0x06,0x08,0x19,0x22,0x06,0x07,0x02,0x05,0x07,0x07,0x05,0x08,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x17,0x09,0x0d,0x10,0x0f,0x0b,0x08, +0x0a,0x0c,0x0c,0x08,0x05,0x0b,0x09,0x0c,0x09,0x0b,0x09,0x09,0x0d,0x0a,0x0a,0x09,0x0d,0x0a,0x0e,0x08,0x09,0x0b,0x05,0x0a,0x06,0x06,0x04,0x0f,0x0a,0x0a,0x09,0x09,0x0a,0x10,0x10,0x10,0x11,0x11,0x09,0x08,0x05,0x09,0x08,0x0a,0x08,0x0b,0x04,0x0a,0x0a,0x0f,0x0f,0x0a,0x09,0x0a,0x09,0x09,0x08,0x09,0x08,0x08,0x05,0x06,0x04,0x04, +0x06,0x0a,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x05,0x05,0x05,0x04,0x04,0x1d,0x11,0x0f,0x12,0x05,0x05,0x06,0x07,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x10,0x06,0x06,0x10,0x04,0x09,0x09,0x17,0x11,0x11,0x17,0x10,0x09,0x09,0x10,0x09,0x09,0x07, +0x07,0x00,0x00,0x06,0x0d,0x0a,0x0c,0x0a,0x15,0x12,0x0c,0x09,0x0c,0x09,0x17,0x11,0x0d,0x0a,0x07,0x05,0x0b,0x00,0x0c,0x09,0x06,0x05,0x03,0x08,0x06,0x06,0x04,0x03,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x09,0x07,0x0a,0x0a,0x09,0x10,0x0e,0x0e,0x0d,0x0e,0x10,0x0b,0x0c,0x0a,0x07,0x10,0x13,0x07,0x14,0x09,0x0e,0x10, +0x10,0x10,0x07,0x0d,0x11,0x0d,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x0a,0x0a,0x0a,0x0e,0x09,0x09,0x10,0x06,0x06,0x10,0x06,0x06,0x10,0x08,0x08,0x00,0x07,0x0e,0x06,0x06,0x11,0x09,0x09,0x0d,0x09,0x09,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, +0x05,0x1a,0x1a,0x0f,0x00,0x00,0x0f,0x0f,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0f,0x0b,0x0b,0x0e,0x11,0x0b,0x0b,0x12,0x0b,0x0b,0x10,0x0b,0x0b,0x0d,0x0b,0x0d,0x0e,0x10,0x0b,0x0d,0x0b,0x0c,0x0b,0x0c,0x0b,0x0b,0x0c,0x0b,0x0d,0x0a,0x0b,0x0d,0x0b,0x0b,0x0a,0x0d, +0x0b,0x0b,0x0b,0x0c,0x08,0x09,0x0b,0x0d,0x0d,0x09,0x00,0x00,0x13,0x26,0x0c,0x00,0x02,0x05,0x05,0x07,0x0b,0x0a,0x10,0x0f,0x04,0x06,0x06,0x08,0x0d,0x04,0x08,0x04,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x04,0x04,0x0d,0x0d,0x0d,0x09,0x12,0x0c,0x0b,0x0c,0x0d,0x0a,0x09,0x0d,0x0d,0x05,0x07,0x0b,0x09,0x11,0x0e, +0x0e,0x0b,0x0e,0x0b,0x0a,0x0a,0x0d,0x0c,0x12,0x0b,0x0b,0x0b,0x06,0x07,0x06,0x0d,0x08,0x05,0x0a,0x0b,0x09,0x0b,0x0a,0x06,0x0b,0x0b,0x05,0x05,0x09,0x05,0x10,0x0b,0x0b,0x0b,0x0b,0x07,0x08,0x06,0x0b,0x09,0x0e,0x09,0x09,0x09,0x06,0x05,0x06,0x0d,0x0c,0x0c,0x0c,0x0a,0x0e,0x0e,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0a,0x0a, +0x0a,0x0a,0x05,0x05,0x05,0x05,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x0a,0x0a,0x09,0x08,0x09,0x0a,0x08,0x11,0x11,0x0f,0x05,0x08,0x0d,0x10,0x0e,0x10,0x0d,0x0d,0x0d,0x0a,0x0b,0x0a,0x0c,0x0e,0x0a,0x07,0x08,0x0e,0x10,0x0b,0x09,0x05,0x05,0x0d,0x0c,0x0a,0x0d,0x0c,0x0a,0x0a,0x0e,0x0c,0x0c,0x0e,0x12,0x12, +0x0a,0x13,0x07,0x07,0x04,0x04,0x0d,0x0b,0x09,0x0b,0x03,0x0a,0x06,0x06,0x0b,0x0b,0x07,0x04,0x04,0x07,0x17,0x0c,0x0a,0x0c,0x0a,0x0a,0x05,0x05,0x05,0x05,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x05,0x07,0x06,0x06,0x06,0x04,0x05,0x04,0x06,0x04,0x07,0x09,0x05,0x0a,0x08,0x0b,0x09,0x05,0x0d,0x0b,0x0b,0x09,0x0b,0x0b,0x0d,0x0d,0x07,0x07, +0x07,0x12,0x11,0x12,0x09,0x0d,0x0b,0x05,0x0a,0x08,0x0c,0x09,0x0c,0x09,0x0b,0x08,0x04,0x0c,0x0a,0x0c,0x0a,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x09,0x05,0x09,0x06,0x09,0x06,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0b,0x07,0x0b,0x07,0x0a,0x08,0x0a,0x06,0x0a,0x08,0x0d,0x0b,0x0d,0x0b,0x0b,0x09,0x0b,0x09,0x09,0x0e,0x0e,0x0c,0x0b,0x08, +0x0b,0x09,0x0d,0x08,0x09,0x07,0x15,0x0c,0x09,0x0c,0x04,0x07,0x0f,0x06,0x0b,0x07,0x07,0x0b,0x07,0x0c,0x0a,0x0c,0x09,0x0c,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x05,0x0b,0x09,0x09,0x09,0x05,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b, +0x0b,0x07,0x0a,0x08,0x0a,0x06,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x12,0x0e,0x0b,0x09,0x05,0x0c,0x0a,0x10,0x10,0x0e,0x0b,0x04,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0b,0x09,0x04,0x08,0x0a,0x0b,0x12,0x12,0x12,0x11,0x07,0x07,0x04,0x05,0x05,0x0c,0x0b,0x0f,0x07,0x0f,0x0d,0x10,0x05,0x0c,0x0b,0x0a,0x0b,0x0d,0x05,0x0b,0x0c,0x11, +0x0e,0x0a,0x0e,0x0e,0x0b,0x0a,0x0a,0x0b,0x0b,0x0f,0x0e,0x05,0x0b,0x0c,0x08,0x0b,0x05,0x0b,0x0a,0x0a,0x08,0x0b,0x0b,0x05,0x0a,0x09,0x0b,0x0a,0x08,0x0b,0x0b,0x09,0x0b,0x0a,0x0e,0x0f,0x05,0x0b,0x0b,0x0b,0x0f,0x0a,0x0d,0x09,0x0c,0x0a,0x05,0x13,0x13,0x0e,0x0b,0x0b,0x0d,0x0c,0x0b,0x0b,0x09,0x0d,0x0a,0x10,0x0a,0x0e,0x0e,0x0b, +0x0d,0x11,0x0d,0x0e,0x0e,0x0b,0x0c,0x0a,0x0b,0x0e,0x0b,0x0e,0x0d,0x12,0x13,0x0d,0x0f,0x0b,0x0c,0x13,0x0b,0x0a,0x0b,0x0a,0x07,0x0a,0x0a,0x0e,0x08,0x0b,0x0b,0x09,0x0a,0x0d,0x0b,0x0b,0x0b,0x0b,0x09,0x08,0x09,0x0d,0x09,0x0b,0x0b,0x0f,0x10,0x0b,0x0d,0x0a,0x09,0x0f,0x0a,0x0a,0x0b,0x07,0x09,0x08,0x05,0x0f,0x0f,0x0b,0x09,0x09, +0x0b,0x09,0x07,0x13,0x15,0x0c,0x07,0x07,0x07,0x07,0x05,0x0a,0x08,0x0b,0x0e,0x0b,0x0d,0x0b,0x06,0x06,0x05,0x05,0x09,0x09,0x09,0x09,0x06,0x06,0x06,0x09,0x06,0x09,0x06,0x06,0x06,0x09,0x09,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0a,0x0a,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x05,0x05,0x05,0x05,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0a,0x06,0x0a, +0x0a,0x0e,0x0b,0x05,0x07,0x05,0x05,0x0a,0x08,0x11,0x0f,0x0c,0x0a,0x0b,0x09,0x0e,0x0b,0x0b,0x09,0x0b,0x09,0x0c,0x09,0x0c,0x0b,0x0d,0x0b,0x0e,0x0a,0x0e,0x0b,0x06,0x06,0x06,0x06,0x08,0x08,0x09,0x09,0x09,0x09,0x05,0x05,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0c,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x09,0x0d,0x0b,0x0d,0x0b,0x0d, +0x0b,0x0d,0x0b,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x06,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x05,0x05,0x05,0x05,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x09,0x05,0x09,0x05,0x09,0x05,0x09,0x05,0x11,0x10,0x11,0x10,0x11,0x10,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e, +0x0b,0x0e,0x0b,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x0b,0x07,0x0b,0x07,0x0b,0x07,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0c,0x09,0x0c,0x09,0x12,0x0e,0x12,0x0e,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b, +0x09,0x0b,0x06,0x0e,0x09,0x0a,0x05,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x09,0x09,0x0a, +0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x12,0x12,0x12,0x12,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x10,0x10,0x10,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x12,0x12,0x12,0x12,0x12,0x12,0x0c,0x0c,0x08,0x08,0x0b,0x0b,0x05,0x05,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x12,0x12,0x12,0x12,0x12,0x12,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0b,0x0f,0x0f,0x0d,0x0b,0x0b,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x0d,0x0c,0x0b,0x0b,0x0b,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x10,0x10,0x0e,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0c, +0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x09,0x0d,0x0e,0x0b,0x0b,0x0b,0x0a,0x0a,0x09,0x0d,0x0c,0x11,0x05,0x05,0x0b,0x09,0x05,0x09,0x11,0x0e,0x0b,0x0e,0x12,0x0f,0x0b,0x0b,0x0b,0x0a,0x08,0x0a,0x06,0x06,0x0a,0x06,0x0a,0x0e,0x0e,0x0b,0x0a,0x0b,0x09,0x0c,0x0c,0x08,0x08,0x0a,0x0a,0x07,0x07,0x0a,0x05,0x07,0x09,0x05,0x18,0x16,0x13,0x10, +0x0e,0x0a,0x14,0x12,0x0f,0x0c,0x0a,0x05,0x05,0x0e,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0a,0x0c,0x0a,0x0c,0x0a,0x10,0x10,0x0d,0x0b,0x0d,0x0b,0x0b,0x09,0x0e,0x0b,0x0e,0x0b,0x0c,0x08,0x05,0x18,0x16,0x13,0x0d,0x0b,0x13,0x0d,0x0e,0x0b,0x0c,0x0a,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x05,0x05,0x05,0x05,0x0e,0x0b, +0x0e,0x0b,0x0b,0x07,0x0b,0x07,0x0d,0x0b,0x0d,0x0b,0x0a,0x08,0x0d,0x0b,0x0e,0x0b,0x0b,0x0b,0x09,0x0c,0x0a,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0b,0x09,0x0b,0x0a,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x0b,0x09,0x09,0x0b,0x0b,0x0a,0x0c,0x08,0x08,0x0a,0x0a,0x05,0x0b,0x0b,0x0a,0x09,0x09,0x0b,0x0b,0x0b,0x05,0x05,0x06,0x05,0x07, +0x05,0x0b,0x10,0x10,0x10,0x0b,0x0b,0x0b,0x0b,0x0d,0x0e,0x0c,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x09,0x09,0x08,0x05,0x05,0x05,0x05,0x06,0x06,0x0b,0x0b,0x0b,0x09,0x0e,0x09,0x08,0x09,0x0a,0x08,0x08,0x07,0x07,0x07,0x09,0x0c,0x09,0x0a,0x0a,0x0b,0x05,0x09,0x07,0x0b,0x07,0x07,0x11,0x12,0x13,0x0c,0x09,0x0e,0x0f,0x0b,0x0b,0x09, +0x09,0x0a,0x0b,0x0b,0x0d,0x0b,0x0c,0x0f,0x0b,0x0d,0x0b,0x0b,0x09,0x09,0x09,0x0b,0x0a,0x0c,0x09,0x11,0x10,0x0b,0x0a,0x0c,0x0a,0x0c,0x09,0x0b,0x09,0x0d,0x0b,0x0b,0x08,0x0b,0x0b,0x09,0x05,0x0e,0x09,0x09,0x10,0x0d,0x0c,0x0b,0x11,0x0e,0x0d,0x09,0x11,0x0d,0x0e,0x0b,0x12,0x0e,0x0a,0x09,0x0f,0x0e,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b, +0x19,0x15,0x10,0x0c,0x15,0x11,0x10,0x0d,0x0b,0x08,0x0a,0x07,0x08,0x00,0x00,0x13,0x12,0x0b,0x0a,0x0b,0x0b,0x0b,0x0a,0x0a,0x09,0x0b,0x09,0x0d,0x0b,0x10,0x0d,0x13,0x10,0x0e,0x0b,0x0c,0x09,0x0a,0x08,0x11,0x0d,0x0d,0x0b,0x10,0x0c,0x10,0x0c,0x05,0x10,0x0e,0x0b,0x0a,0x0d,0x0b,0x0c,0x0b,0x0c,0x0a,0x0c,0x0a,0x10,0x10,0x0a,0x0a, +0x0e,0x0a,0x0e,0x0a,0x10,0x0e,0x0a,0x08,0x0a,0x08,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0c,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0d,0x0b,0x0f,0x0d,0x0b,0x0b,0x10,0x10,0x0f,0x0e,0x0b,0x09,0x11,0x0f,0x13,0x10,0x0e,0x0a,0x0d,0x0b,0x0b,0x0b,0x0b,0x0a,0x0b,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x04,0x04,0x0b,0x06,0x06,0x03,0x04,0x04,0x04,0x05,0x08,0x05,0x04,0x07,0x04,0x04,0x04,0x06,0x06,0x04,0x04,0x0b,0x0b,0x0b,0x0b,0x06,0x05,0x05,0x06,0x06,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x05,0x05,0x04,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x08,0x06,0x05,0x05,0x0a,0x0a,0x0a,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x07,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a, +0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x0c,0x06,0x0c,0x06,0x0b,0x0b,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0b,0x09,0x0d,0x10,0x09,0x09,0x0a,0x0b,0x08,0x08,0x05,0x06,0x09,0x07,0x0d,0x0b,0x0b, +0x09,0x0c,0x0c,0x0c,0x12,0x0a,0x0b,0x0b,0x09,0x09,0x09,0x08,0x0a,0x0b,0x0e,0x0b,0x09,0x0e,0x09,0x08,0x08,0x0a,0x07,0x09,0x0b,0x09,0x0b,0x0b,0x07,0x09,0x07,0x07,0x08,0x06,0x06,0x08,0x08,0x04,0x04,0x07,0x05,0x0a,0x08,0x08,0x08,0x07,0x06,0x07,0x06,0x08,0x0a,0x06,0x06,0x07,0x09,0x07,0x07,0x06,0x06,0x05,0x05,0x07,0x03,0x06, +0x09,0x06,0x07,0x05,0x07,0x07,0x07,0x04,0x06,0x06,0x09,0x05,0x06,0x06,0x06,0x07,0x08,0x06,0x03,0x04,0x06,0x05,0x06,0x06,0x07,0x08,0x06,0x0b,0x03,0x07,0x0a,0x11,0x0c,0x0a,0x0a,0x10,0x0c,0x10,0x0e,0x0a,0x0b,0x0a,0x09,0x15,0x09,0x0b,0x11,0x12,0x12,0x0c,0x0c,0x0c,0x09,0x09,0x0a,0x08,0x09,0x0a,0x04,0x00,0x00,0x00,0x00,0x0b, +0x0c,0x0c,0x0c,0x09,0x07,0x0b,0x0b,0x06,0x10,0x0b,0x0b,0x07,0x06,0x09,0x06,0x09,0x0b,0x09,0x0b,0x11,0x0c,0x06,0x05,0x0b,0x0a,0x0b,0x0b,0x0b,0x06,0x0b,0x09,0x05,0x10,0x0b,0x0b,0x07,0x08,0x08,0x09,0x09,0x09,0x0a,0x0b,0x0b,0x0a,0x08,0x08,0x0e,0x05,0x09,0x05,0x0b,0x08,0x07,0x05,0x05,0x07,0x05,0x03,0x03,0x07,0x06,0x03,0x03, +0x03,0x03,0x03,0x03,0x03,0x04,0x09,0x09,0x06,0x06,0x07,0x06,0x07,0x04,0x03,0x04,0x06,0x07,0x06,0x06,0x05,0x05,0x05,0x06,0x05,0x07,0x00,0x00,0x00,0x00,0x04,0x06,0x06,0x07,0x05,0x06,0x0a,0x0a,0x0a,0x0a,0x06,0x00,0x00,0x00,0x00,0x09,0x06,0x05,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x05,0x05,0x05,0x05,0x0b,0x0b,0x0b,0x0b,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x06,0x06,0x0f,0x0c,0x0d,0x0b,0x0e,0x0c,0x12,0x0e,0x0a,0x07,0x0a,0x0d,0x0a,0x10,0x0d,0x00,0x00,0x00,0x00,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x10,0x10,0x13,0x08,0x05,0x0a,0x0b,0x08,0x0a,0x0a,0x0b,0x0b,0x0a,0x13,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0c,0x0a,0x0a,0x0a,0x06,0x0b,0x06,0x0e, +0x0d,0x0a,0x06,0x10,0x0a,0x10,0x05,0x06,0x0b,0x0b,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x10,0x05,0x0b,0x05,0x0a,0x08,0x05,0x05,0x0a,0x05,0x0e,0x05,0x11,0x0a,0x11,0x11,0x0b,0x0b,0x0b,0x0a,0x0a,0x08,0x08,0x16,0x16,0x19,0x19,0x10,0x10,0x0a,0x0a,0x03,0x13,0x0e,0x10,0x0d,0x0b,0x0d,0x0a,0x0a,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x0b,0x05,0x0c,0x00,0x0c,0x0c,0x0c,0x06,0x0a,0x0a,0x11,0x06,0x11,0x06,0x0b,0x0d,0x0b,0x08,0x11,0x0a,0x11,0x0a,0x0e,0x10,0x06,0x0a,0x0a,0x08,0x05,0x0a,0x0b,0x0a,0x0b,0x0a,0x0b,0x0b,0x0a,0x0d,0x0c,0x11,0x06,0x0a,0x08,0x0d,0x0a,0x06,0x0a,0x0a,0x0a,0x11,0x06,0x11,0x06,0x05,0x0b,0x07,0x13,0x0a,0x0a,0x0c,0x0c,0x13, +0x0a,0x00,0x00,0x00,0x0c,0x00,0x0c,0x0c,0x0c,0x0c,0x0e,0x0c,0x00,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x08,0x08,0x0a,0x0a,0x0e,0x10,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, +0x08,0x08,0x08,0x0a,0x08,0x08,0x08,0x16,0x10,0x16,0x10,0x16,0x10,0x19,0x13,0x19,0x13,0x10,0x0a,0x0b,0x0b,0x0b,0x13,0x13,0x0a,0x0a,0x13,0x0a,0x0a,0x13,0x0a,0x0a,0x13,0x0a,0x0a,0x0e,0x0e,0x15,0x13,0x11,0x0a,0x10,0x0a,0x10,0x0a,0x10,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x0d,0x06,0x0d,0x06,0x0d,0x06,0x0d, +0x06,0x0d,0x06,0x0d,0x0d,0x06,0x0d,0x06,0x0a,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x10,0x11,0x0e,0x10,0x06,0x0a,0x0e,0x10,0x0e,0x10,0x00,0x00,0x00,0x00,0x00,0x15,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x08,0x00,0x00,0x0b,0x00,0x00,0x00,0x16,0x10,0x19,0x13,0x0a,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x11,0x11,0x07,0x0b,0x0b,0x0b,0x17,0x10,0x0a,0x1d,0x15,0x06,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x08,0x08,0x0e,0x0d,0x0d,0x0a,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x18,0x1d,0x00,0x00,0x00,0x00,0x00,0x0b,0x0a,0x00,0x00,0x00,0x00,0x00,0x00, +0x11,0x08,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0b,0x0b,0x0d,0x0b,0x0a,0x0a,0x08,0x16,0x10,0x0a,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x0b,0x13,0x0a,0x0a,0x13,0x0a,0x0a,0x11,0x0a,0x0a,0x11,0x0a,0x0a,0x11,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0d,0x06,0x0d,0x06,0x0d,0x06,0x0d,0x0d, +0x06,0x06,0x08,0x08,0x16,0x10,0x0c,0x0b,0x0b,0x00,0x0a,0x0a,0x0a,0x07,0x0b,0x0d,0x0c,0x0a,0x0a,0x07,0x05,0x0e,0x0b,0x0b,0x07,0x0b,0x09,0x09,0x09,0x09,0x05,0x0a,0x08,0x0c,0x09,0x0b,0x09,0x0a,0x08,0x0d,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x09,0x09,0x09,0x05,0x0a,0x0b,0x0b,0x0a,0x06,0x0e,0x0b,0x0c,0x0a, +0x0c,0x09,0x0b,0x0a,0x08,0x0d,0x07,0x08,0x08,0x09,0x0b,0x0b,0x0a,0x13,0x0a,0x13,0x06,0x05,0x03,0x0a,0x04,0x02,0x00,0x03,0x04,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x12,0x08,0x0e,0x0b,0x12,0x0e,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x12,0x10,0x09,0x10,0x09,0x10,0x0c, +0x0d,0x0d,0x0d,0x0f,0x10,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0d,0x0d,0x0d,0x0d,0x0e,0x0b,0x14,0x10,0x09,0x09,0x05,0x05,0x05,0x07,0x04,0x0b,0x04,0x04,0x10,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x0c,0x0b,0x08,0x09,0x0d,0x05,0x06,0x0d,0x0d,0x05, +0x0b,0x0a,0x0a,0x0d,0x0d,0x05,0x08,0x0d,0x0b,0x0c,0x0c,0x0b,0x0b,0x0d,0x0b,0x0f,0x0e,0x0a,0x0a,0x0a,0x04,0x07,0x0b,0x0b,0x0a,0x0a,0x0a,0x0b,0x0c,0x09,0x0d,0x0a,0x0a,0x0d,0x0b,0x0e,0x0a,0x0f,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0b,0x08,0x09,0x0d,0x06,0x07,0x0d,0x06,0x0b,0x0a,0x0a,0x0d,0x08,0x0d,0x0c,0x0c,0x0b,0x0d,0x0b,0x0f, +0x0e,0x05,0x0b,0x0a,0x0c,0x0c,0x17,0x00,0x0c,0x0a,0x0c,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x05,0x00,0x0e,0x0c,0x0d,0x0d,0x0a,0x0d,0x0e,0x0e,0x09,0x0c,0x0e,0x0e,0x0d,0x0e,0x0f,0x0f, +0x0d,0x0a,0x0b,0x0e,0x0d,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0b,0x0c,0x0d,0x0c,0x0f,0x0c,0x0c,0x0c,0x0d,0x10,0x09,0x0b,0x0b,0x11,0x0a,0x0a,0x0f,0x11,0x0c,0x0a,0x14,0x0b,0x0b,0x0e,0x0a,0x0a,0x0e,0x0b,0x0e,0x0f,0x11,0x0a,0x0f,0x0a,0x0c,0x0a,0x0c,0x0b,0x0c,0x0a,0x0b,0x0f,0x0a,0x0c,0x0d,0x0a,0x0a,0x0b,0x12,0x0a,0x0a,0x0b, +0x0b,0x08,0x06,0x0b,0x0b,0x0b,0x0a,0x0b,0x11,0x0b,0x11,0x09,0x0b,0x11,0x0d,0x0b,0x11,0x0e,0x0e,0x11,0x0b,0x0b,0x11,0x11,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x11,0x11,0x0b,0x0b,0x0b,0x11,0x0b,0x0a,0x0b,0x0b,0x11,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0d,0x0f,0x0d,0x0c,0x0a,0x0f,0x0d,0x0d,0x0b,0x0d,0x0d,0x0e,0x0e,0x0b,0x0d,0x0d, +0x0e,0x0d,0x0f,0x0d,0x0e,0x0e,0x0d,0x0c,0x0d,0x0d,0x0e,0x0f,0x0c,0x0e,0x0e,0x02,0x02,0x03,0x04,0x03,0x05,0x07,0x10,0x0b,0x0c,0x0b,0x0b,0x0c,0x0b,0x0b,0x0c,0x0b,0x0b,0x06,0x10,0x0b,0x0b,0x0b,0x0a,0x0b,0x0a,0x0b,0x05,0x0b,0x0a,0x0b,0x08,0x10,0x0a,0x0b,0x0b,0x0b,0x10,0x0b,0x0b,0x07,0x10,0x0b,0x0b,0x0d,0x0d,0x04,0x05,0x16, +0x15,0x15,0x16,0x1b,0x0a,0x0a,0x05,0x0a,0x07,0x0a,0x0a,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x09,0x0a,0x0b,0x08,0x08,0x0b, +0x0c,0x05,0x06,0x09,0x08,0x0e,0x0c,0x0c,0x09,0x0c,0x09,0x08,0x08,0x0b,0x0a,0x0f,0x0a,0x09,0x09,0x0d,0x0f,0x08,0x0c,0x09,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x08,0x05,0x05,0x05,0x05,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x08, +0x08,0x0b,0x0b,0x0a,0x0c,0x0c,0x05,0x05,0x05,0x05,0x05,0x0b,0x06,0x09,0x08,0x08,0x08,0x08,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x0f,0x0f,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0d,0x0c,0x0a,0x09,0x07,0x0a,0x08,0x09,0x0c,0x0c,0x05, +0x09,0x0a,0x0e,0x0c,0x09,0x0c,0x0c,0x09,0x09,0x08,0x09,0x0c,0x0a,0x0c,0x0c,0x0a,0x08,0x0c,0x05,0x0c,0x09,0x0c,0x05,0x09,0x08,0x0b,0x08,0x0a,0x08,0x05,0x05,0x06,0x0f,0x10,0x0c,0x09,0x09,0x0c,0x0a,0x09,0x09,0x08,0x0b,0x08,0x0e,0x08,0x0c,0x0c,0x09,0x0b,0x0e,0x0c,0x0c,0x0c,0x09,0x0a,0x08,0x09,0x0c,0x0a,0x0c,0x0a,0x0f,0x10, +0x0b,0x0d,0x09,0x0a,0x10,0x09,0x08,0x0b,0x0b,0x0c,0x11,0x11,0x0d,0x0a,0x0b,0x08,0x0b,0x0b,0x0b,0x0d,0x0a,0x0a,0x0d,0x0b,0x0b,0x07,0x0c,0x0c,0x0b,0x09,0x09,0x11,0x0e,0x09,0x0a,0x0b,0x0b,0x0c,0x0c,0x0d,0x0d,0x07,0x12,0x0b,0x0b,0x0b,0x0c,0x0c,0x0a,0x0a,0x05,0x0e,0x0d,0x0d,0x09,0x0d,0x04,0x04,0x08,0x08,0x04,0x04,0x0c,0x08, +0x05,0x0e,0x0d,0x05,0x04,0x04,0x09,0x07,0x07,0x04,0x04,0x04,0x07,0x0d,0x09,0x06,0x0c,0x0d,0x0b,0x0b,0x09,0x0e,0x0b,0x0b,0x07,0x08,0x0a,0x08,0x04,0x04,0x07,0x0a,0x06,0x0d,0x0d,0x0d,0x11,0x0e,0x11,0x05,0x00,0x00,0x00,0x00,0x00,0x05,0x0e,0x10,0x06,0x06,0x0a,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0b,0x0a,0x0a,0x16, +0x10,0x16,0x10,0x19,0x13,0x19,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x11,0x11,0x0a,0x0a,0x11,0x11,0x0a,0x0a,0x0e,0x10,0x06,0x06,0x0e,0x10,0x06,0x06,0x0e,0x10,0x06,0x06,0x13,0x0e,0x10,0x0a,0x0b,0x0b,0x0d,0x06,0x0d,0x0e,0x0a,0x0a,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x11,0x06,0x0e,0x0a, +0x0a,0x05,0x0a,0x0a,0x0a,0x0a,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x16,0x10,0x16,0x10,0x16,0x10,0x19,0x13,0x19,0x13,0x10,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x0e,0x0a,0x0a,0x0e,0x0a,0x0a,0x11, +0x0a,0x15,0x13,0x11,0x0a,0x10,0x0a,0x10,0x0a,0x10,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x0d,0x0d,0x0d,0x0d,0x0d,0x06,0x0d,0x0d,0x06,0x06,0x0d,0x06,0x0d,0x06,0x0d,0x0a,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x0a,0x06,0x06,0x06,0x06,0x00,0x16,0x10,0x19,0x13,0x11,0x0a, +0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0a,0x0a,0x08,0x16,0x10,0x13,0x13,0x11,0x11,0x11,0x0b,0x0b,0x0b,0x0b,0x0d,0x06,0x0d,0x06,0x0d,0x06,0x16,0x10,0x0b,0x0d,0x0b,0x0b,0x0b,0x0d,0x0b,0x0b,0x16,0x16,0x10,0x10,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x06,0x06,0x06,0x06,0x0e,0x10,0x06,0x06,0x0e,0x10, +0x06,0x06,0x0e,0x10,0x06,0x06,0x0b,0x0b,0x0b,0x0b,0x11,0x06,0x11,0x06,0x0b,0x0d,0x0b,0x0b,0x16,0x16,0x10,0x10,0x16,0x16,0x10,0x10,0x10,0x10,0x0a,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x00,0x05,0x05,0x06,0x05,0x00,0x00,0x00,0x10,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0d,0x0d,0x0d, +0x0d,0x0d,0x0d,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x0d,0x0d,0x0d,0x05,0x05,0x0a,0x08,0x0b,0x0c,0x0b,0x0a,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0a,0x0a,0x0b,0x0c,0x0c,0x0c,0x0b,0x0b,0x0c,0x0a,0x0d,0x0e,0x0c,0x0e,0x10,0x0c,0x0f,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0b,0x0b,0x0a,0x09,0x0a,0x0c,0x0b,0x0d,0x0b,0x0c,0x0b,0x0b,0x0b,0x0a,0x0a,0x0e,0x0d,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x0e,0x0f,0x0e,0x0f,0x12,0x12,0x0d,0x12,0x12,0x0e,0x11,0x10,0x0b,0x0f,0x10,0x0e,0x0b,0x10,0x0e,0x0d,0x0d,0x0b,0x0c,0x0e,0x0f,0x0d,0x0c,0x0d,0x0b,0x0a,0x12,0x11,0x11,0x10,0x12,0x12,0x0d,0x12,0x12,0x0d,0x0f, +0x0f,0x0e,0x0e,0x0e,0x0c,0x11,0x0f,0x10,0x0e,0x0e,0x0b,0x0e,0x0d,0x0d,0x10,0x0e,0x0e,0x11,0x0a,0x0a,0x0b,0x0a,0x0c,0x0c,0x0d,0x0e,0x0b,0x0b,0x0b,0x0a,0x0b,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0b,0x0c,0x0b,0x0b,0x09,0x0b,0x0b,0x0b,0x0c,0x0f,0x10,0x0c,0x0c,0x0c,0x0f,0x0c,0x0d,0x0a,0x09,0x0b,0x0b,0x09,0x09, +0x0a,0x0b,0x09,0x09,0x0c,0x09,0x0a,0x09,0x0a,0x0f,0x0b,0x10,0x0a,0x0b,0x0b,0x0e,0x06,0x0f,0x0d,0x0e,0x0d,0x0b,0x0e,0x0b,0x0f,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x08,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x0c,0x05,0x05,0x05,0x06,0x06, +0x05,0x05,0x05,0x06,0x05,0x05,0x05,0x11,0x11,0x11,0x11,0x09,0x0e,0x0e,0x09,0x08,0x09,0x0a,0x0b,0x09,0x10,0x10,0x10,0x08,0x13,0x09,0x10,0x10,0x10,0x0f,0x0b,0x09,0x09,0x0f,0x0b,0x0f,0x0d,0x0a,0x09,0x08,0x13,0x08,0x0a,0x09,0x09,0x09,0x09,0x09,0x1a,0x10,0x10,0x08,0x05,0x09,0x05,0x09,0x05,0x05,0x05,0x09,0x0b,0x0b,0x0a,0x07, +0x07,0x04,0x04,0x04,0x07,0x04,0x08,0x10,0x04,0x11,0x11,0x11,0x0b,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x16,0x16,0x0d,0x16,0x16,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x09, +0x0b,0x09,0x0a,0x08,0x07,0x07,0x0d,0x0a,0x0e,0x08,0x15,0x11,0x0b,0x0b,0x12,0x0f,0x10,0x0e,0x13,0x0f,0x12,0x0f,0x0c,0x09,0x0e,0x0b,0x12,0x0e,0x0e,0x0c,0x0e,0x0b,0x10,0x0d,0x11,0x0d,0x15,0x10,0x0e,0x0b,0x0e,0x0b,0x17,0x11,0x0f,0x00,0x13,0x13,0x13,0x09,0x00,0x00,0x0b,0x0a,0x0d,0x0b,0x0a,0x08,0x14,0x11,0x12,0x10,0x0e,0x0b, +0x0d,0x0b,0x0a,0x08,0x0e,0x0b,0x0a,0x08,0x10,0x0d,0x0d,0x0b,0x13,0x10,0x0a,0x0b,0x0e,0x0e,0x0f,0x09,0x04,0x09,0x0d,0x08,0x13,0x13,0x05,0x00,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x08,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x09,0x0d,0x0e,0x05,0x04,0x05,0x04,0x0d,0x0b,0x0e,0x0c,0x0b,0x09,0x0a,0x09,0x0b,0x0b,0x08, +0x08,0x15,0x10,0x16,0x11,0x13,0x10,0x11,0x0d,0x11,0x0d,0x11,0x0d,0x0c,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0a,0x06,0x09,0x05,0x0e,0x0b,0x10,0x0d,0x19,0x13,0x0b,0x0b,0x0d,0x0d,0x0f,0x10,0x0e,0x0b,0x13,0x0f,0x0a,0x08,0x0b,0x09,0x0c,0x09,0x12,0x0e,0x0c,0x0a,0x0b,0x0b,0x0b,0x0b,0x09,0x08,0x09,0x07,0x09,0x07,0x0a,0x0a,0x06, +0x0d,0x06,0x12,0x0d,0x07,0x0b,0x0c,0x09,0x0e,0x0b,0x07,0x07,0x0b,0x0b,0x0b,0x09,0x05,0x0e,0x0b,0x07,0x07,0x0c,0x09,0x0d,0x07,0x0f,0x0b,0x0c,0x09,0x0d,0x0b,0x0b,0x09,0x0e,0x0b,0x0b,0x07,0x0a,0x08,0x0e,0x08,0x0a,0x10,0x09,0x0b,0x11,0x05,0x16,0x11,0x11,0x16,0x11,0x11,0x11,0x11,0x11,0x12,0x0a,0x09,0x0c,0x0d,0x11,0x0d,0x12, +0x05,0x09,0x0b,0x10,0x14,0x0d,0x14,0x0c,0x0c,0x0f,0x0d,0x16,0x12,0x0a,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0b,0x0b,0x10,0x10,0x10,0x10,0x13,0x0a,0x0a,0x13,0x0e,0x0a,0x0a,0x0e,0x0d,0x06,0x06,0x0d,0x0b,0x0b,0x0b,0x0b,0x0e,0x06,0x06,0x10,0x0e,0x06,0x06,0x10,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x0a,0x08,0x0b,0x0a,0x0e,0x0b,0x0b,0x11,0x0d,0x0e,0x0e,0x10,0x10,0x0b,0x09,0x13,0x0f,0x14,0x10,0x0d,0x0b,0x06,0x06,0x0b,0x0c,0x08,0x0b,0x0a,0x0b,0x09,0x0e,0x0f,0x08,0x0b,0x08,0x04,0x07,0x0a,0x0a,0x04,0x04,0x03,0x04,0x07, +0x07,0x07,0x09,0x1c,0x26,0x06,0x08,0x03,0x05,0x07,0x08,0x06,0x09,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x19,0x0a,0x0e,0x11,0x11,0x0c,0x09,0x0b,0x0e,0x0e,0x09,0x06,0x0d,0x0a,0x0d,0x0b,0x0d,0x0a,0x0a,0x0e,0x0b,0x0b,0x0a,0x0e,0x0c,0x10,0x09,0x0a,0x0c,0x06,0x0b,0x06,0x07,0x05,0x11, +0x0b,0x0b,0x0a,0x0a,0x0b,0x12,0x12,0x12,0x13,0x13,0x0a,0x09,0x05,0x0a,0x09,0x0c,0x09,0x0d,0x05,0x0b,0x0b,0x10,0x10,0x0c,0x0a,0x0b,0x0a,0x0a,0x09,0x0a,0x09,0x09,0x06,0x06,0x05,0x04,0x07,0x0b,0x0c,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x05,0x05,0x05,0x05,0x05,0x20,0x13,0x11, +0x14,0x05,0x05,0x06,0x08,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x11,0x06,0x06,0x11,0x05,0x0a,0x0a,0x19,0x13,0x13,0x19,0x11,0x0a,0x0a,0x11,0x0a,0x0a,0x08,0x08,0x00,0x00,0x07,0x0e,0x0b,0x0d,0x0b,0x18,0x14,0x0d,0x0a,0x0d,0x0a,0x19,0x13,0x0e,0x0b,0x07,0x06,0x0c,0x00,0x0d,0x0a,0x06,0x06,0x03,0x09, +0x06,0x07,0x05,0x04,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x0a,0x08,0x0b,0x0b,0x0a,0x12,0x0f,0x0f,0x0f,0x10,0x12,0x0c,0x0d,0x0b,0x07,0x12,0x15,0x08,0x16,0x0a,0x10,0x11,0x11,0x11,0x08,0x0e,0x13,0x0e,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x0b,0x0b,0x0b,0x10,0x0a, +0x0a,0x11,0x06,0x06,0x11,0x06,0x06,0x11,0x09,0x09,0x00,0x08,0x10,0x06,0x06,0x13,0x0a,0x0a,0x0e,0x0a,0x0a,0x0d,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x1d,0x1d,0x11,0x00,0x00,0x11,0x11,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0c,0x0c,0x0c, +0x11,0x0c,0x0c,0x0f,0x13,0x0c,0x0c,0x14,0x0c,0x0c,0x12,0x0c,0x0d,0x0f,0x0c,0x0f,0x10,0x11,0x0c,0x0f,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0d,0x0c,0x0f,0x0b,0x0d,0x0f,0x0c,0x0c,0x0b,0x0f,0x0c,0x0c,0x0c,0x0d,0x08,0x0a,0x0c,0x0f,0x0f,0x0a,0x00,0x00,0x15,0x2a,0x0e,0x00,0x02,0x06,0x06,0x08,0x0c,0x0b,0x11,0x11,0x05,0x06,0x06,0x09, +0x0e,0x05,0x08,0x05,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x05,0x05,0x0e,0x0e,0x0e,0x09,0x14,0x0e,0x0c,0x0d,0x0f,0x0b,0x0a,0x0e,0x0f,0x06,0x08,0x0c,0x0a,0x13,0x10,0x10,0x0c,0x10,0x0d,0x0b,0x0b,0x0e,0x0d,0x14,0x0c,0x0c,0x0c,0x06,0x08,0x06,0x0e,0x09,0x06,0x0b,0x0c,0x0a,0x0c,0x0b,0x07,0x0c,0x0c,0x05,0x05, +0x0a,0x05,0x12,0x0c,0x0c,0x0c,0x0c,0x07,0x09,0x07,0x0c,0x0a,0x0f,0x0a,0x0a,0x0a,0x06,0x05,0x06,0x0e,0x0e,0x0e,0x0d,0x0b,0x10,0x10,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x0b,0x0b,0x05,0x05,0x05,0x05,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x08,0x08,0x0b,0x0b,0x09,0x09,0x0a,0x0b,0x08,0x13,0x13,0x10, +0x06,0x09,0x0e,0x12,0x10,0x11,0x0e,0x0e,0x0e,0x0b,0x0c,0x0b,0x0d,0x10,0x0b,0x08,0x09,0x10,0x11,0x0c,0x09,0x06,0x06,0x0e,0x0e,0x0b,0x0e,0x0e,0x0b,0x0b,0x0f,0x0e,0x0e,0x10,0x14,0x13,0x0b,0x15,0x08,0x08,0x05,0x05,0x0e,0x0c,0x0a,0x0c,0x04,0x0b,0x07,0x07,0x0c,0x0c,0x08,0x05,0x05,0x08,0x19,0x0e,0x0b,0x0e,0x0b,0x0b,0x06,0x06, +0x06,0x06,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x05,0x08,0x07,0x07,0x06,0x04,0x06,0x04,0x07,0x04,0x08,0x0a,0x06,0x0b,0x09,0x0c,0x0a,0x05,0x0f,0x0c,0x0c,0x0a,0x0c,0x0c,0x0e,0x0e,0x07,0x08,0x08,0x14,0x13,0x14,0x0a,0x0e,0x0c,0x06,0x0b,0x09,0x0d,0x0a,0x0d,0x0a,0x0c,0x09,0x05,0x0e,0x0b,0x0e,0x0b,0x0f,0x0e,0x0f,0x0b,0x0b,0x0b,0x0b, +0x0a,0x05,0x0a,0x06,0x0a,0x07,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x0d,0x07,0x0d,0x07,0x0b,0x09,0x0b,0x07,0x0b,0x09,0x0e,0x0c,0x0e,0x0c,0x0c,0x0a,0x0c,0x0a,0x0a,0x10,0x10,0x0d,0x0c,0x09,0x0c,0x0a,0x0f,0x09,0x0a,0x08,0x17,0x0d,0x0a,0x0d,0x05,0x08,0x11,0x07,0x0d,0x07,0x07,0x0d,0x07,0x0e,0x0b,0x0d,0x0a,0x0d,0x0a,0x0b,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0f,0x0c,0x0f,0x0c,0x06,0x05,0x06,0x05,0x06,0x05,0x06,0x05,0x08,0x05,0x0c,0x0a,0x0a,0x0a,0x05,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x0d,0x07,0x0b,0x09,0x0b,0x07,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x14,0x0f,0x0c,0x0a,0x05,0x0e,0x0b,0x12,0x11,0x10,0x0c,0x05,0x14,0x0f, +0x14,0x0f,0x14,0x0f,0x0c,0x0a,0x05,0x09,0x0b,0x0d,0x13,0x13,0x14,0x13,0x08,0x08,0x05,0x06,0x06,0x0e,0x0c,0x10,0x08,0x11,0x0e,0x11,0x06,0x0e,0x0c,0x0b,0x0c,0x0f,0x06,0x0c,0x0d,0x13,0x10,0x0b,0x10,0x0f,0x0c,0x0b,0x0b,0x0c,0x0c,0x10,0x10,0x06,0x0c,0x0d,0x09,0x0c,0x06,0x0c,0x0c,0x0b,0x09,0x0c,0x0c,0x06,0x0b,0x0a,0x0c,0x0b, +0x09,0x0c,0x0c,0x0a,0x0c,0x0b,0x10,0x11,0x06,0x0c,0x0c,0x0c,0x11,0x0b,0x0f,0x0a,0x0d,0x0b,0x06,0x15,0x15,0x0f,0x0c,0x0c,0x0f,0x0e,0x0c,0x0c,0x0a,0x0f,0x0b,0x12,0x0b,0x10,0x10,0x0c,0x0e,0x13,0x0f,0x10,0x0f,0x0c,0x0d,0x0b,0x0c,0x0f,0x0c,0x10,0x0e,0x14,0x15,0x0f,0x10,0x0c,0x0d,0x15,0x0c,0x0b,0x0c,0x0b,0x08,0x0b,0x0b,0x10, +0x09,0x0c,0x0c,0x0a,0x0b,0x0f,0x0c,0x0c,0x0c,0x0c,0x0a,0x09,0x0a,0x0e,0x0a,0x0d,0x0c,0x11,0x11,0x0c,0x0f,0x0b,0x0a,0x11,0x0b,0x0b,0x0c,0x08,0x0a,0x09,0x05,0x11,0x11,0x0c,0x0a,0x0a,0x0c,0x0a,0x08,0x15,0x18,0x0d,0x07,0x08,0x08,0x08,0x05,0x0b,0x09,0x0c,0x10,0x0d,0x0f,0x0c,0x06,0x07,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x06,0x06, +0x06,0x0a,0x06,0x0a,0x06,0x06,0x06,0x0a,0x0a,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x06,0x05,0x06,0x05,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10, +0x0c,0x10,0x0c,0x10,0x0d,0x10,0x0d,0x10,0x0d,0x10,0x0d,0x10,0x0d,0x0e,0x0c,0x0e,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0b,0x07,0x0b,0x0b,0x10,0x0c,0x06,0x08,0x05,0x05,0x0b,0x09,0x13,0x10,0x0d,0x0b,0x0c,0x0a,0x10,0x0d,0x0c,0x0a,0x0c,0x0a,0x0d,0x0a,0x0e,0x0c,0x0e,0x0c,0x0f, +0x0b,0x10,0x0c,0x06,0x06,0x06,0x06,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x06,0x0b,0x0b,0x0e,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d,0x0a,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x07,0x0e,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f, +0x0c,0x06,0x05,0x06,0x05,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x13,0x12,0x13,0x12,0x13,0x12,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d,0x07,0x0d,0x07,0x0d,0x07,0x0d,0x07,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b, +0x07,0x0b,0x07,0x0b,0x07,0x0b,0x07,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0d,0x0a,0x0d,0x0a,0x14,0x0f,0x14,0x0f,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x07,0x0f,0x0a,0x0b,0x05,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x10,0x10,0x10,0x10,0x10,0x10,0x09,0x09,0x09,0x09,0x09, +0x09,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x14,0x14,0x14,0x14,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x14,0x14,0x14,0x14,0x14,0x14,0x0d,0x0d,0x09,0x09,0x0c,0x0c,0x06,0x06,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x10,0x10,0x10,0x10,0x10,0x10,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x14,0x14,0x14,0x14,0x14,0x14,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x0f,0x0c,0x0c,0x0c,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0e,0x0e,0x0d,0x0c,0x0c,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x11,0x10,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0d,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x0a,0x0f,0x10,0x0c,0x0c,0x0c,0x0b,0x0b,0x0a,0x0f,0x0d,0x12,0x06,0x06,0x0c,0x0a,0x05,0x0a,0x13,0x10,0x0c,0x10, +0x14,0x11,0x0d,0x0c,0x0c,0x0b,0x09,0x0b,0x06,0x07,0x0b,0x07,0x0b,0x10,0x0f,0x0c,0x0b,0x0c,0x0a,0x0d,0x0d,0x09,0x09,0x0b,0x0b,0x08,0x08,0x0b,0x05,0x08,0x0a,0x06,0x1a,0x18,0x16,0x12,0x0f,0x0b,0x17,0x14,0x11,0x0e,0x0b,0x06,0x05,0x10,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0b,0x0e,0x0b,0x0e,0x0b,0x12,0x11, +0x0e,0x0c,0x0e,0x0c,0x0c,0x0a,0x10,0x0c,0x10,0x0c,0x0d,0x09,0x05,0x1a,0x18,0x16,0x0e,0x0c,0x15,0x0e,0x10,0x0c,0x0e,0x0b,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x06,0x05,0x06,0x05,0x10,0x0c,0x10,0x0c,0x0c,0x07,0x0d,0x07,0x0e,0x0c,0x0e,0x0c,0x0b,0x09,0x0f,0x0c,0x0f,0x0c,0x0c,0x0c,0x0a,0x0e,0x0b,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10, +0x0c,0x0c,0x0a,0x0c,0x0b,0x0c,0x0c,0x0c,0x0b,0x0c,0x0c,0x0c,0x0a,0x0a,0x0c,0x0c,0x0b,0x0d,0x09,0x09,0x0b,0x0c,0x06,0x0c,0x0c,0x0b,0x0a,0x0a,0x0c,0x0c,0x0c,0x06,0x06,0x07,0x06,0x08,0x05,0x0d,0x12,0x12,0x12,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0d,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x08,0x05,0x05,0x06,0x06,0x07,0x07, +0x0d,0x0c,0x0c,0x0a,0x0f,0x0a,0x09,0x0a,0x0b,0x09,0x09,0x08,0x08,0x08,0x0a,0x0d,0x0a,0x0c,0x0b,0x0c,0x05,0x0a,0x08,0x0c,0x08,0x08,0x13,0x14,0x15,0x0d,0x0a,0x0f,0x11,0x0c,0x0c,0x0a,0x0a,0x0c,0x0c,0x0c,0x0e,0x0c,0x0d,0x11,0x0c,0x0f,0x0c,0x0c,0x0a,0x0a,0x09,0x0d,0x0b,0x0d,0x0a,0x13,0x12,0x0d,0x0b,0x0d,0x0b,0x0d,0x0a,0x0d, +0x0a,0x0e,0x0c,0x0c,0x09,0x0c,0x0c,0x0a,0x05,0x10,0x0a,0x0a,0x12,0x0e,0x0e,0x0c,0x13,0x0f,0x0e,0x0a,0x12,0x0f,0x0f,0x0c,0x14,0x10,0x0b,0x09,0x10,0x10,0x10,0x0c,0x0f,0x0c,0x0f,0x0c,0x1c,0x17,0x11,0x0e,0x18,0x13,0x12,0x0e,0x0c,0x09,0x0b,0x08,0x09,0x00,0x00,0x15,0x14,0x0c,0x0b,0x0c,0x0c,0x0c,0x0b,0x0b,0x0a,0x0c,0x0a,0x0f, +0x0c,0x12,0x0e,0x15,0x12,0x0f,0x0c,0x0d,0x0a,0x0b,0x09,0x12,0x0e,0x0e,0x0c,0x12,0x0d,0x12,0x0d,0x06,0x12,0x10,0x0c,0x0b,0x0f,0x0c,0x0e,0x0c,0x0e,0x0b,0x0e,0x0b,0x12,0x11,0x0b,0x0b,0x0f,0x0b,0x0f,0x0b,0x12,0x10,0x0b,0x09,0x0b,0x09,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x0d,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0e,0x0c, +0x10,0x0f,0x0c,0x0c,0x12,0x12,0x11,0x0f,0x0c,0x0a,0x13,0x11,0x15,0x12,0x0f,0x0b,0x0e,0x0d,0x0c,0x0c,0x0c,0x0b,0x0c,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x05,0x0c,0x07,0x07,0x03,0x04,0x04,0x04,0x06,0x08,0x06,0x05,0x08,0x05,0x05,0x05,0x07,0x07,0x05,0x05,0x0c,0x0c,0x0c,0x0c,0x07,0x06, +0x06,0x07,0x07,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x03,0x05,0x06,0x05,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x09,0x07,0x05,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b, +0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b, +0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x0e,0x06,0x0d,0x07,0x0c,0x0c,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x06, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0a,0x0e,0x11,0x0a,0x0a,0x0c,0x0c,0x09,0x09,0x05,0x06,0x0a,0x08,0x0f,0x0c,0x0c,0x0a,0x0d,0x0d,0x0d,0x14,0x0b,0x0c,0x0c,0x0a,0x0a,0x0a,0x09,0x0b,0x0c,0x0f,0x0c,0x0a,0x0f,0x0a,0x09,0x09,0x0b,0x08,0x0a,0x0c,0x0a,0x0c,0x0c, +0x08,0x0a,0x07,0x08,0x09,0x06,0x06,0x09,0x09,0x04,0x05,0x07,0x06,0x0b,0x09,0x09,0x09,0x08,0x07,0x07,0x06,0x09,0x0b,0x07,0x07,0x07,0x0a,0x07,0x07,0x07,0x07,0x06,0x06,0x07,0x03,0x06,0x0a,0x07,0x07,0x06,0x07,0x07,0x07,0x04,0x07,0x07,0x0a,0x06,0x07,0x07,0x06,0x07,0x09,0x06,0x03,0x04,0x07,0x06,0x07,0x06,0x07,0x09,0x06,0x0c, +0x03,0x07,0x0b,0x12,0x0d,0x0b,0x0b,0x12,0x0e,0x12,0x10,0x0b,0x0c,0x0b,0x09,0x18,0x0a,0x0c,0x13,0x14,0x14,0x0d,0x0e,0x0d,0x0a,0x0a,0x0b,0x09,0x0a,0x0b,0x04,0x00,0x00,0x00,0x00,0x0c,0x0d,0x0d,0x0d,0x0a,0x08,0x0c,0x0c,0x07,0x12,0x0c,0x0c,0x07,0x07,0x0a,0x07,0x0a,0x0c,0x0a,0x0c,0x13,0x0e,0x07,0x06,0x0c,0x0b,0x0c,0x0c,0x0c, +0x07,0x0c,0x0a,0x05,0x12,0x0c,0x0c,0x07,0x09,0x09,0x0a,0x0a,0x0a,0x0b,0x0c,0x0c,0x0b,0x09,0x09,0x0f,0x05,0x0a,0x05,0x0c,0x09,0x07,0x06,0x06,0x07,0x06,0x04,0x03,0x07,0x07,0x03,0x04,0x04,0x04,0x03,0x04,0x03,0x05,0x0a,0x0a,0x07,0x07,0x07,0x07,0x08,0x05,0x03,0x04,0x07,0x07,0x07,0x07,0x06,0x05,0x05,0x06,0x05,0x07,0x00,0x00, +0x00,0x00,0x05,0x07,0x07,0x07,0x06,0x07,0x0b,0x0b,0x0b,0x0b,0x07,0x00,0x00,0x00,0x00,0x0a,0x07,0x06,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x06,0x06,0x06,0x06,0x0c,0x0c,0x0c,0x0c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x0b,0x08, +0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x04,0x08,0x08,0x07,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x08,0x07,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x10,0x0d,0x0f,0x0c,0x10,0x0d,0x14,0x10,0x0b,0x08,0x0b,0x0e,0x0b,0x11,0x0f,0x00,0x00,0x00,0x00,0x05,0x05,0x05,0x05,0x07,0x07,0x07, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x12,0x12,0x15,0x09,0x05,0x0b,0x0c,0x09,0x0b,0x0b,0x0c,0x0c,0x0b,0x15,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0e,0x0b,0x0b,0x0b,0x07,0x0c,0x07,0x10,0x0e,0x0b,0x07,0x12,0x0b,0x12,0x05,0x07,0x0c,0x0c,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x12,0x05,0x0c,0x05,0x0b,0x09,0x05,0x05,0x0b,0x05,0x10,0x05, +0x13,0x0b,0x13,0x13,0x0c,0x0c,0x0c,0x0b,0x0b,0x09,0x09,0x19,0x19,0x1c,0x1c,0x12,0x12,0x0b,0x0b,0x04,0x15,0x10,0x12,0x0e,0x0c,0x0e,0x0b,0x0b,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x05,0x0e,0x00,0x0e,0x0e,0x0e,0x07,0x0b,0x0b,0x13,0x07,0x13,0x07,0x0c,0x0e,0x0c,0x09,0x13,0x0b,0x13,0x0b,0x10,0x12,0x07,0x0b, +0x0b,0x09,0x05,0x0b,0x0c,0x0b,0x0c,0x0b,0x0c,0x0c,0x0b,0x0e,0x0e,0x13,0x07,0x0b,0x09,0x0e,0x0b,0x07,0x0b,0x0b,0x0b,0x13,0x07,0x13,0x07,0x05,0x0c,0x08,0x15,0x0b,0x0b,0x0e,0x0e,0x15,0x0b,0x00,0x00,0x00,0x0e,0x00,0x0e,0x0e,0x0e,0x0e,0x10,0x0e,0x00,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x09,0x0b,0x0b,0x10,0x12,0x13,0x07, +0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x0b,0x09,0x09,0x09,0x19,0x12,0x19,0x12,0x19,0x12,0x1c,0x15,0x1c,0x15,0x12,0x0b,0x0c,0x0c,0x0c,0x15,0x15,0x0b,0x0b,0x15,0x0b, +0x0b,0x15,0x0b,0x0b,0x15,0x0b,0x0b,0x10,0x10,0x17,0x15,0x13,0x0b,0x12,0x0b,0x12,0x0b,0x12,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x0e,0x07,0x0e,0x07,0x0b,0x0e,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x12,0x13,0x10,0x12,0x07,0x0b,0x10,0x12,0x10, +0x12,0x00,0x00,0x00,0x00,0x00,0x18,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x09,0x00,0x00,0x0d,0x00,0x00,0x00,0x19,0x12,0x1c,0x15,0x0b,0x0c,0x0c,0x0c,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x13,0x13,0x08,0x0c,0x0c,0x0c,0x1a,0x11,0x0b,0x20,0x17,0x07,0x0c,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0b,0x09,0x09,0x10,0x0e,0x0e,0x0b,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x1a,0x20,0x00,0x00,0x00,0x00,0x00,0x0c,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x09,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0c,0x0c,0x0e,0x0c,0x0b,0x0b,0x09,0x19,0x12,0x0b,0x0c,0x0c, +0x0c,0x0b,0x0c,0x0c,0x0c,0x0b,0x0c,0x0c,0x0c,0x15,0x0b,0x0b,0x15,0x0b,0x0b,0x13,0x0b,0x0b,0x13,0x0b,0x0b,0x13,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x0e,0x07,0x07,0x09,0x09,0x19,0x12,0x0e,0x0c,0x0c,0x00,0x0b,0x0b,0x0b,0x08,0x0c,0x0e,0x0d,0x0b,0x0b,0x08,0x05,0x10,0x0c,0x0d,0x07,0x0c,0x0a,0x0a, +0x0a,0x0a,0x05,0x0b,0x09,0x0d,0x0a,0x0c,0x0a,0x0b,0x09,0x0e,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x09,0x0a,0x0a,0x06,0x0b,0x0c,0x0d,0x0b,0x07,0x10,0x0c,0x0d,0x0b,0x0d,0x0a,0x0c,0x0b,0x08,0x0f,0x08,0x09,0x09,0x0a,0x0d,0x0d,0x0b,0x15,0x0b,0x15,0x07,0x05,0x04,0x0b,0x05,0x03,0x00,0x03,0x05,0x00,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x13,0x09,0x10,0x0c,0x14,0x0f,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x13,0x12,0x0a,0x12,0x0a,0x12,0x0e,0x0e,0x0f,0x0f,0x10,0x12,0x15,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0e,0x0e,0x0e,0x0e,0x10,0x0c,0x16,0x11,0x0a,0x0a,0x06,0x06,0x06,0x08,0x05, +0x0c,0x05,0x05,0x12,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x0d,0x0c,0x09,0x0a,0x0e,0x06,0x07,0x0e,0x0e,0x06,0x0c,0x0b,0x0c,0x0f,0x0e,0x06,0x08,0x0e,0x0d,0x0d,0x0d,0x0c,0x0c,0x0e,0x0c,0x10,0x0f,0x0b,0x0b,0x0b,0x05,0x08,0x0c,0x0c,0x0c,0x0c,0x0b,0x0d, +0x0d,0x0a,0x0e,0x0b,0x0c,0x0f,0x0c,0x0f,0x0c,0x10,0x10,0x10,0x10,0x0d,0x0d,0x0d,0x0c,0x09,0x0a,0x0e,0x06,0x07,0x0e,0x06,0x0c,0x0b,0x0c,0x0e,0x08,0x0e,0x0d,0x0d,0x0c,0x0e,0x0c,0x10,0x0f,0x06,0x0c,0x0b,0x0d,0x0e,0x19,0x00,0x0d,0x0c,0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x06,0x00,0x10,0x0d,0x0e,0x0f,0x0c,0x0e,0x10,0x10,0x0a,0x0d,0x10,0x0f,0x0e,0x10,0x11,0x10,0x0e,0x0c,0x0c,0x10,0x0f,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x0c,0x0d,0x0e,0x0e,0x10,0x0d,0x0d,0x0d,0x0e,0x11,0x0a,0x0c,0x0c,0x12,0x0b,0x0b, +0x10,0x13,0x0d,0x0b,0x16,0x0c,0x0c,0x10,0x0b,0x0b,0x10,0x0c,0x10,0x11,0x12,0x0b,0x10,0x0b,0x0e,0x0b,0x0d,0x0c,0x0d,0x0b,0x0d,0x10,0x0b,0x0d,0x0e,0x0b,0x0b,0x0d,0x14,0x0b,0x0b,0x0c,0x0c,0x09,0x07,0x0c,0x0c,0x0c,0x0b,0x0c,0x13,0x0c,0x13,0x0a,0x0c,0x13,0x0e,0x0c,0x13,0x10,0x10,0x13,0x0c,0x0c,0x13,0x13,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x13,0x13,0x0c,0x0c,0x0c,0x13,0x0d,0x0b,0x0c,0x0c,0x13,0x10,0x0e,0x0f,0x0f,0x0e,0x0f,0x0d,0x0e,0x10,0x0f,0x0e,0x0b,0x11,0x0e,0x0e,0x0c,0x0e,0x0f,0x10,0x0f,0x0c,0x0f,0x0e,0x0f,0x0e,0x10,0x0f,0x0f,0x0f,0x0e,0x0d,0x0f,0x0e,0x0f,0x11,0x0e,0x10,0x0f,0x02,0x02,0x03,0x04,0x03,0x06,0x07,0x12,0x0c,0x0d,0x0d,0x0c,0x0d, +0x0c,0x0c,0x0e,0x0d,0x0c,0x06,0x12,0x0c,0x0c,0x0c,0x0b,0x0d,0x0b,0x0c,0x06,0x0c,0x0b,0x0c,0x09,0x12,0x0c,0x0c,0x0c,0x0c,0x11,0x0c,0x0c,0x08,0x11,0x0c,0x0c,0x0e,0x0e,0x05,0x06,0x18,0x18,0x18,0x18,0x1e,0x0b,0x0b,0x05,0x0b,0x08,0x0b,0x0b,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, +0x08,0x0b,0x0b,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0a,0x0b,0x0c,0x09,0x09,0x0c,0x0d,0x05,0x07,0x0a,0x09,0x10,0x0e,0x0d,0x0a,0x0d,0x0a,0x09,0x09,0x0c,0x0b,0x11,0x0b,0x0a,0x0a,0x0f,0x10,0x09,0x0d,0x0a,0x0c,0x0b,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c,0x0c,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0b,0x0d,0x0d,0x05,0x05,0x05,0x05,0x05,0x0c,0x07,0x0a,0x09,0x09,0x09,0x09,0x0e,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x11,0x11,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0f,0x0d,0x0b,0x0a,0x08,0x0b,0x09,0x0a,0x0d,0x0d,0x05,0x0a,0x0b,0x10,0x0e,0x09,0x0d,0x0d,0x0a,0x0a,0x09,0x0a,0x0d,0x0b,0x0e,0x0d,0x0b,0x09,0x0d,0x05,0x0d,0x0a,0x0d,0x05,0x0a,0x09,0x0c,0x08,0x0b, +0x09,0x05,0x05,0x07,0x11,0x11,0x0d,0x0a,0x0a,0x0d,0x0b,0x0a,0x0a,0x08,0x0c,0x09,0x10,0x09,0x0e,0x0e,0x0a,0x0c,0x10,0x0d,0x0d,0x0d,0x0a,0x0b,0x09,0x0a,0x0d,0x0b,0x0d,0x0b,0x11,0x11,0x0c,0x0f,0x0a,0x0b,0x12,0x0a,0x08,0x0c,0x0c,0x0d,0x13,0x13,0x0e,0x0b,0x0c,0x09,0x0c,0x0c,0x0c,0x0f,0x0b,0x0b,0x0e,0x0c,0x0c,0x08,0x0d,0x0d, +0x0c,0x0a,0x0a,0x13,0x10,0x0a,0x0b,0x0d,0x0d,0x0d,0x0d,0x0f,0x0e,0x08,0x14,0x0c,0x0c,0x0c,0x0e,0x0e,0x0b,0x0b,0x06,0x10,0x0e,0x0e,0x0a,0x0f,0x05,0x05,0x09,0x09,0x05,0x05,0x0d,0x08,0x06,0x10,0x0f,0x06,0x05,0x05,0x09,0x08,0x08,0x05,0x05,0x05,0x08,0x0e,0x0a,0x06,0x0d,0x0e,0x0c,0x0c,0x0a,0x10,0x0c,0x0d,0x07,0x09,0x0b,0x09, +0x05,0x05,0x08,0x0b,0x07,0x0e,0x0e,0x0e,0x13,0x10,0x13,0x05,0x00,0x00,0x00,0x00,0x00,0x05,0x10,0x12,0x07,0x07,0x0b,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0c,0x0b,0x0b,0x19,0x12,0x19,0x12,0x1c,0x15,0x1c,0x15,0x12,0x12,0x12,0x12,0x12,0x12,0x13,0x13,0x0b,0x0b,0x13,0x13,0x0b,0x0b,0x10,0x12,0x07,0x07,0x10,0x12,0x07, +0x07,0x10,0x12,0x07,0x07,0x15,0x10,0x12,0x0b,0x0c,0x0c,0x0e,0x07,0x0e,0x10,0x0b,0x0b,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x13,0x07,0x10,0x0b,0x0b,0x05,0x0b,0x0b,0x0b,0x0b,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x19,0x12,0x19,0x12,0x19,0x12,0x1c,0x15,0x1c,0x15,0x12,0x12,0x12,0x15,0x15,0x15,0x15,0x15,0x15,0x10,0x0b,0x0b,0x10,0x0b,0x0b,0x13,0x0b,0x17,0x15,0x13,0x0b,0x12,0x0b,0x12,0x0b,0x12,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x0e,0x0e,0x0e,0x0e,0x0e, +0x07,0x0e,0x0e,0x07,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x0b,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x0b,0x07,0x07,0x07,0x07,0x00,0x19,0x12,0x1c,0x15,0x13,0x0b,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0b,0x0b,0x09,0x19,0x12,0x15,0x15,0x13,0x13,0x13,0x0c,0x0c,0x0c,0x0c, +0x0e,0x07,0x0e,0x07,0x0e,0x07,0x19,0x12,0x0c,0x0e,0x0c,0x0c,0x0c,0x0e,0x0c,0x0c,0x19,0x19,0x12,0x12,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x07,0x07,0x07,0x07,0x10,0x12,0x07,0x07,0x10,0x12,0x07,0x07,0x10,0x12,0x07,0x07,0x0c,0x0c,0x0c,0x0c,0x13,0x07,0x13,0x07,0x0c,0x0e,0x0c,0x0c,0x19,0x19,0x12,0x12,0x19,0x19,0x12,0x12,0x12,0x12, +0x0b,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x00,0x05,0x05,0x07,0x05,0x00,0x00,0x00,0x12,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x05,0x05, +0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x12,0x0c,0x12,0x0c,0x12,0x0c,0x12,0x0e,0x0e,0x0e,0x05,0x05,0x0b,0x09,0x0c,0x0d,0x0c,0x0b,0x0c,0x0c,0x0b,0x0b,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0c,0x0b,0x0c,0x0d,0x0d,0x0e,0x0c,0x0c,0x0e,0x0b,0x0e,0x10,0x0d,0x10,0x11,0x0d,0x10,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0a,0x0b,0x0d,0x0d,0x0e,0x0c,0x0e,0x0c,0x0c,0x0d,0x0b,0x0b,0x10,0x0e,0x0f,0x0e,0x0e,0x0c,0x0c,0x0c,0x0f,0x10,0x10,0x10,0x13, +0x13,0x0f,0x13,0x13,0x0f,0x12,0x12,0x0c,0x10,0x12,0x10,0x0c,0x12,0x10,0x0f,0x0f,0x0d,0x0e,0x10,0x11,0x0f,0x0d,0x0f,0x0c,0x0b,0x13,0x13,0x13,0x11,0x13,0x13,0x0e,0x13,0x13,0x0f,0x10,0x10,0x10,0x0f,0x0f,0x0e,0x13,0x10,0x11,0x0f,0x0f,0x0c,0x10,0x0f,0x0f,0x12,0x10,0x0f,0x13,0x0b,0x0b,0x0c,0x0b,0x0d,0x0d,0x0f,0x0f,0x0c,0x0c, +0x0c,0x0b,0x0c,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0c,0x0d,0x0d,0x0d,0x0a,0x0c,0x0c,0x0c,0x0d,0x10,0x12,0x0e,0x0e,0x0d,0x10,0x0d,0x0e,0x0b,0x0a,0x0c,0x0c,0x0a,0x0a,0x0c,0x0c,0x0a,0x0a,0x0d,0x0a,0x0b,0x0a,0x0c,0x10,0x0c,0x11,0x0b,0x0c,0x0c,0x10,0x07,0x11,0x0e,0x0f,0x0e,0x0c,0x10,0x0d,0x10,0x0d,0x0d,0x0d, +0x0d,0x0d,0x0d,0x0c,0x0d,0x0d,0x0d,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x0a,0x09,0x0a,0x0a,0x0a,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0d,0x06,0x06,0x06,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x13,0x13,0x13,0x0a,0x10,0x0f,0x0a,0x09,0x0a,0x0b,0x0c,0x0a,0x12,0x11,0x12,0x09,0x15,0x0a,0x12,0x12, +0x12,0x11,0x0c,0x0a,0x0a,0x10,0x0c,0x10,0x0e,0x0b,0x0a,0x09,0x15,0x09,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x1d,0x12,0x12,0x09,0x05,0x0a,0x05,0x0a,0x05,0x05,0x05,0x0a,0x0c,0x0c,0x0b,0x08,0x08,0x05,0x05,0x05,0x08,0x05,0x09,0x12,0x05,0x13,0x13,0x13,0x0c,0x0c,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x19,0x19,0x0e,0x19, +0x19,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0a,0x0c,0x0a,0x0b,0x09,0x07,0x07,0x0e,0x0c,0x0f,0x09,0x18,0x13,0x0c,0x0c,0x13,0x11,0x12,0x10,0x15,0x11,0x13,0x10,0x0e,0x0a,0x0f,0x0c,0x13,0x0f, +0x10,0x0d,0x10,0x0d,0x12,0x0e,0x12,0x0e,0x17,0x12,0x10,0x0c,0x10,0x0c,0x19,0x13,0x11,0x00,0x15,0x15,0x15,0x0a,0x00,0x00,0x0c,0x0b,0x0f,0x0c,0x0b,0x09,0x17,0x13,0x14,0x12,0x0f,0x0c,0x0f,0x0c,0x0b,0x09,0x10,0x0d,0x0b,0x09,0x11,0x0e,0x0e,0x0c,0x15,0x11,0x0b,0x0c,0x0f,0x0f,0x11,0x09,0x04,0x0a,0x0e,0x09,0x15,0x15,0x05,0x00, +0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x08,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x0a,0x0e,0x0f,0x06,0x04,0x06,0x04,0x0f,0x0c,0x10,0x0d,0x0c,0x0a,0x0b,0x0a,0x0c,0x0c,0x09,0x09,0x18,0x11,0x18,0x13,0x15,0x12,0x13,0x0e,0x13,0x0e,0x13,0x0e,0x0d,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0b,0x07,0x0a,0x05,0x10,0x0c,0x12, +0x0e,0x1c,0x15,0x0c,0x0c,0x0e,0x0f,0x11,0x12,0x10,0x0c,0x15,0x10,0x0b,0x08,0x0c,0x0a,0x0d,0x0a,0x14,0x0f,0x0d,0x0b,0x0c,0x0c,0x0c,0x0c,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0b,0x0b,0x06,0x0e,0x07,0x14,0x0e,0x07,0x0c,0x0d,0x0a,0x10,0x0c,0x08,0x07,0x0c,0x0c,0x0c,0x0a,0x05,0x10,0x0d,0x08,0x07,0x0d,0x0a,0x0f,0x08,0x10,0x0d,0x0d, +0x0a,0x0e,0x0c,0x0c,0x0a,0x10,0x0c,0x0d,0x07,0x0b,0x09,0x10,0x09,0x0b,0x12,0x0a,0x0c,0x13,0x06,0x18,0x13,0x13,0x19,0x13,0x13,0x13,0x12,0x13,0x13,0x0b,0x0a,0x0d,0x0f,0x13,0x0f,0x14,0x05,0x0a,0x0c,0x12,0x16,0x0f,0x16,0x0d,0x0d,0x11,0x0f,0x18,0x13,0x0b,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0c,0x0c,0x12,0x12,0x12,0x12,0x15,0x0b, +0x0b,0x15,0x10,0x0b,0x0b,0x10,0x0e,0x07,0x07,0x0e,0x0c,0x0c,0x0c,0x0c,0x10,0x07,0x07,0x12,0x10,0x07,0x07,0x12,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x0b,0x08,0x0c,0x0b,0x10,0x0c,0x0c,0x12, +0x0e,0x10,0x10,0x11,0x11,0x0c,0x0a,0x15,0x11,0x16,0x12,0x0e,0x0c,0x07,0x07,0x0c,0x0e,0x09,0x0d,0x0b,0x0c,0x0a,0x10,0x11,0x08,0x0c,0x09,0x04,0x08,0x0b,0x0c,0x05,0x05,0x04,0x05,0x08,0x08,0x08,0x09,0x1f,0x2a,0x07,0x09,0x03,0x06,0x08,0x09,0x07,0x0a,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a, +0x0a,0x1c,0x0b,0x10,0x13,0x13,0x0e,0x0a,0x0c,0x0f,0x0f,0x0a,0x07,0x0e,0x0b,0x0e,0x0c,0x0e,0x0b,0x0b,0x10,0x0c,0x0c,0x0b,0x10,0x0d,0x11,0x0a,0x0b,0x0d,0x07,0x0c,0x07,0x07,0x05,0x12,0x0c,0x0c,0x0b,0x0b,0x0c,0x13,0x13,0x14,0x15,0x15,0x0c,0x0a,0x06,0x0b,0x0a,0x0d,0x0a,0x0e,0x05,0x0c,0x0d,0x12,0x12,0x0d,0x0b,0x0c,0x0b,0x0b, +0x0a,0x0b,0x0a,0x0a,0x06,0x07,0x05,0x05,0x08,0x0c,0x0d,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x00,0x06,0x06,0x06,0x05,0x05,0x23,0x15,0x12,0x16,0x06,0x06,0x07,0x08,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x13,0x07,0x07,0x13,0x05,0x0b,0x0b,0x1c,0x15,0x15, +0x1c,0x13,0x0b,0x0b,0x13,0x0b,0x0b,0x09,0x09,0x00,0x00,0x08,0x10,0x0d,0x0f,0x0c,0x1a,0x16,0x0f,0x0b,0x0f,0x0c,0x1c,0x15,0x10,0x0c,0x08,0x07,0x0d,0x00,0x0e,0x0b,0x07,0x06,0x03,0x0a,0x07,0x07,0x05,0x04,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x05,0x0b,0x09,0x0c,0x0c,0x0c,0x14,0x11,0x11,0x11,0x11,0x14,0x0d,0x0e,0x0d, +0x08,0x14,0x18,0x09,0x18,0x0b,0x12,0x13,0x13,0x13,0x09,0x10,0x15,0x10,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x0c,0x0c,0x12,0x0b,0x0b,0x13,0x07,0x07,0x13,0x07,0x07,0x13,0x0a,0x0a,0x00,0x09,0x12,0x07,0x07,0x15,0x0b,0x0b,0x10,0x0b,0x0b,0x0e,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x20,0x20,0x12,0x00,0x00,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x0d,0x0e,0x0e,0x13,0x0e,0x0d,0x11,0x14,0x0e,0x0d,0x16,0x0d,0x0d,0x14,0x0d,0x0e,0x11,0x0d,0x10,0x12,0x13,0x0d,0x10,0x0e,0x0f,0x0d,0x0f,0x0d,0x0e,0x0e,0x0d, +0x10,0x0d,0x0e,0x10,0x0d,0x0d,0x0c,0x10,0x0d,0x0e,0x0e,0x0f,0x09,0x0b,0x0d,0x10,0x10,0x0b,0x00,0x00,0x18,0x30,0x10,0x00,0x02,0x07,0x07,0x09,0x0e,0x0d,0x14,0x13,0x06,0x07,0x07,0x0a,0x10,0x05,0x0a,0x05,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x05,0x05,0x10,0x10,0x10,0x0b,0x17,0x0f,0x0e,0x0f,0x11,0x0c,0x0c, +0x10,0x11,0x06,0x09,0x0e,0x0b,0x16,0x12,0x12,0x0d,0x12,0x0e,0x0d,0x0d,0x10,0x0f,0x16,0x0e,0x0d,0x0e,0x07,0x09,0x07,0x10,0x0a,0x06,0x0c,0x0e,0x0b,0x0e,0x0d,0x08,0x0e,0x0e,0x06,0x06,0x0c,0x06,0x15,0x0e,0x0e,0x0e,0x0e,0x08,0x0a,0x08,0x0e,0x0c,0x11,0x0b,0x0c,0x0b,0x07,0x06,0x07,0x10,0x0f,0x0f,0x0f,0x0c,0x12,0x12,0x10,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0d,0x0d,0x0d,0x0d,0x06,0x06,0x06,0x06,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x09,0x09,0x0d,0x0d,0x0b,0x0a,0x0b,0x0d,0x0a,0x15,0x15,0x13,0x07,0x0a,0x10,0x15,0x12,0x14,0x10,0x10,0x10,0x0d,0x0e,0x0d,0x0f,0x12,0x0d,0x09,0x0a,0x12,0x14,0x0e,0x0b,0x07,0x07,0x10,0x10,0x0d,0x10,0x0f, +0x0c,0x0c,0x12,0x0f,0x0f,0x12,0x16,0x16,0x0c,0x18,0x09,0x09,0x06,0x06,0x10,0x0e,0x0c,0x0d,0x04,0x0d,0x08,0x08,0x0d,0x0d,0x09,0x05,0x06,0x09,0x1d,0x0f,0x0c,0x0f,0x0c,0x0c,0x06,0x06,0x06,0x06,0x12,0x12,0x12,0x10,0x10,0x10,0x06,0x09,0x08,0x07,0x07,0x05,0x07,0x05,0x08,0x04,0x09,0x0b,0x07,0x0d,0x0a,0x0e,0x0b,0x06,0x11,0x0d, +0x0d,0x0c,0x0d,0x0e,0x10,0x10,0x08,0x09,0x09,0x16,0x16,0x17,0x0c,0x10,0x0e,0x06,0x0d,0x0a,0x0f,0x0b,0x0f,0x0b,0x0e,0x0a,0x05,0x0f,0x0c,0x0f,0x0c,0x11,0x10,0x11,0x0c,0x0d,0x0c,0x0d,0x0b,0x06,0x0b,0x07,0x0b,0x08,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0e,0x08,0x0e,0x08,0x0d,0x0a,0x0d,0x08,0x0d,0x0b,0x10,0x0e,0x10,0x0e,0x0e,0x0b, +0x0e,0x0b,0x0b,0x12,0x12,0x0f,0x0e,0x0b,0x0e,0x0c,0x11,0x0a,0x0c,0x09,0x1b,0x0f,0x0c,0x0f,0x06,0x09,0x13,0x08,0x0f,0x09,0x09,0x0f,0x09,0x0f,0x0c,0x0f,0x0b,0x0f,0x0b,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x11,0x0e,0x11,0x0e,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x06,0x0e,0x0c,0x0c,0x0b,0x06, +0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0e,0x08,0x0d,0x0a,0x0d,0x08,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x16,0x11,0x0d,0x0c,0x06,0x0f,0x0c,0x15,0x14,0x12,0x0e,0x05,0x16,0x11,0x16,0x11,0x16,0x11,0x0d,0x0c,0x06,0x0a,0x0d,0x0e,0x16,0x16,0x16,0x15,0x09,0x09,0x05,0x07,0x07,0x0f,0x0e,0x13,0x09,0x13,0x10,0x14,0x06,0x0f, +0x0e,0x0c,0x0e,0x11,0x06,0x0e,0x0f,0x16,0x12,0x0c,0x12,0x11,0x0d,0x0c,0x0d,0x0d,0x0e,0x13,0x12,0x06,0x0d,0x0f,0x0b,0x0e,0x06,0x0d,0x0d,0x0c,0x0b,0x0e,0x0e,0x06,0x0d,0x0c,0x0e,0x0d,0x0b,0x0e,0x0e,0x0b,0x0d,0x0d,0x12,0x13,0x06,0x0d,0x0e,0x0d,0x13,0x0c,0x11,0x0b,0x0f,0x0d,0x06,0x18,0x18,0x11,0x0e,0x0e,0x11,0x0f,0x0e,0x0e, +0x0b,0x11,0x0c,0x15,0x0d,0x12,0x12,0x0e,0x10,0x16,0x11,0x12,0x11,0x0d,0x0f,0x0d,0x0e,0x11,0x0e,0x12,0x10,0x17,0x18,0x11,0x13,0x0e,0x0f,0x18,0x0e,0x0c,0x0e,0x0d,0x09,0x0d,0x0d,0x12,0x0b,0x0e,0x0e,0x0c,0x0d,0x11,0x0e,0x0e,0x0e,0x0e,0x0b,0x0a,0x0c,0x10,0x0b,0x0e,0x0e,0x13,0x14,0x0e,0x11,0x0c,0x0b,0x14,0x0c,0x0d,0x0e,0x09, +0x0b,0x0a,0x06,0x13,0x13,0x0e,0x0c,0x0c,0x0e,0x0b,0x09,0x18,0x1b,0x0f,0x08,0x09,0x09,0x09,0x06,0x0d,0x0a,0x0d,0x12,0x0e,0x11,0x0e,0x07,0x08,0x06,0x06,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x0b,0x07,0x0b,0x07,0x07,0x07,0x0b,0x0b,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f, +0x0c,0x0f,0x0c,0x0f,0x0c,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x06,0x06,0x06,0x06,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x10,0x0e,0x10,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x0d, +0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x08,0x0c,0x0d,0x12,0x0e,0x06,0x09,0x06,0x06,0x0c,0x0a,0x16,0x13,0x0f,0x0d,0x0e,0x0c,0x12,0x0e,0x0d,0x0c,0x0d,0x0c,0x0f,0x0c,0x10,0x0e,0x10,0x0e,0x11,0x0d,0x12,0x0e,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x06,0x06,0x07,0x07,0x07,0x07,0x0c,0x0d,0x0f,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0f,0x0b,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x08,0x10,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x06,0x06,0x06,0x06,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x16,0x15,0x16,0x15,0x16,0x15,0x12,0x0e,0x12, +0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0d,0x0e,0x0d,0x0e,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x08,0x0d,0x08,0x0d,0x08,0x0d,0x08,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x0f,0x0c,0x0f,0x0c,0x16,0x11,0x16,0x11,0x0e,0x0b,0x0e, +0x0b,0x0d,0x0c,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x08,0x11,0x0c,0x0c,0x06,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x12,0x12,0x12,0x12,0x12,0x12,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x11,0x11,0x11,0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x09,0x09,0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x17,0x17,0x17,0x17,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x10,0x14,0x14,0x14,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x14,0x17,0x17,0x17,0x17,0x17,0x17,0x0f,0x0f,0x0b,0x0b,0x0e,0x0e,0x06,0x06,0x0e,0x0e,0x0d,0x0d,0x13, +0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x12,0x12,0x12,0x12,0x12,0x12,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x14,0x17,0x17,0x17,0x17,0x17,0x17,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x11,0x0e,0x0e,0x0e,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x09,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x0d,0x0d,0x0d,0x0d,0x10,0x10,0x0f,0x0e,0x0e,0x0e,0x13,0x13,0x13,0x13,0x13,0x14,0x14,0x14,0x14,0x12,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xab,0x00,0x00,0x01,0x71,0x05,0xb0,0x00,0x03, -0x00,0x07,0x00,0x31,0x40,0x0a,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x07,0x16,0x00,0x03,0x03,0x02,0x00,0x00,0x1b,0x00,0x02,0x02,0x08,0x02,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x33,0x13,0x23,0x35,0x33,0x01,0x70,0xc5, -0xc5,0x01,0xc6,0xc6,0x01,0xde,0x03,0xd2,0xfa,0x50,0xcc,0x00,0x00,0x02,0x00,0x7e,0x03,0xa8,0x02,0x79,0x05,0xb0,0x00,0x04,0x00,0x0a,0x00,0x2e,0x40,0x0a,0x0a,0x09,0x07,0x06,0x04,0x03,0x02,0x01,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x17,0x05,0x00,0x02,0x00,0x01,0x01,0x15,0x02,0x01,0x00,0x00,0x01,0x00,0x00,0x1b,0x03, -0x01,0x01,0x01,0x07,0x00,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x07,0x23,0x11,0x33,0x01,0x07,0x23,0x37,0x11,0x33,0x02,0x79,0x65,0x61,0xc6,0xfe,0xcb,0x65,0x61,0x01,0xc5,0x04,0xa2,0xfa,0x02,0x08,0xfe,0xf2,0xfa,0xf0,0x01,0x18,0x00,0x00,0x02,0x00,0x46,0x00,0x00,0x04,0xa2,0x05,0xb0,0x00,0x1b,0x00,0x1f,0x00,0x8d,0x40,0x22,0x1f,0x1e, -0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x10,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x2c,0x0e,0x0b,0x02,0x03,0x0c,0x02,0x02,0x00,0x01,0x03,0x00,0x00,0x00,0x1d,0x08,0x01,0x06,0x06,0x07,0x16, -0x0f,0x0a,0x02,0x04,0x04,0x05,0x00,0x00,0x1b,0x09,0x07,0x02,0x05,0x05,0x0a,0x16,0x0d,0x01,0x01,0x01,0x08,0x01,0x17,0x05,0x1b,0x40,0x2a,0x09,0x07,0x02,0x05,0x0f,0x0a,0x02,0x04,0x03,0x05,0x04,0x00,0x02,0x1d,0x0e,0x0b,0x02,0x03,0x0c,0x02,0x02,0x00,0x01,0x03,0x00,0x00,0x00,0x1d,0x08,0x01,0x06,0x06,0x07,0x16,0x0d,0x01,0x01, -0x01,0x08,0x01,0x17,0x04,0x59,0xb0,0x2f,0x2b,0x01,0x23,0x03,0x23,0x13,0x23,0x35,0x21,0x13,0x21,0x35,0x21,0x13,0x33,0x03,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x03,0x33,0x15,0x23,0x03,0x23,0x03,0x33,0x13,0x23,0x02,0xc8,0xff,0x50,0x97,0x50,0xec,0x01,0x08,0x44,0xff,0x00,0x01,0x1c,0x52,0x97,0x52,0xff,0x52,0x97,0x52,0xc7,0xe2, -0x44,0xdb,0xf7,0x50,0x98,0x93,0xff,0x44,0xff,0x01,0x9a,0xfe,0x66,0x01,0x9a,0x8c,0x01,0x5c,0x8e,0x01,0xa0,0xfe,0x60,0x01,0xa0,0xfe,0x60,0x8e,0xfe,0xa4,0x8c,0xfe,0x66,0x02,0x26,0x01,0x5c,0x00,0x00,0x00,0x00,0x01,0x00,0x7f,0xff,0x30,0x04,0x26,0x06,0x9d,0x00,0x2c,0x00,0x5b,0x40,0x0e,0x2b,0x29,0x27,0x26,0x21,0x20,0x14,0x12, -0x10,0x0f,0x0b,0x0a,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x40,0x0c,0x09,0x02,0x02,0x00,0x25,0x01,0x05,0x04,0x22,0x1f,0x02,0x03,0x05,0x03,0x15,0x00,0x01,0x02,0x04,0x02,0x01,0x04,0x29,0x00,0x04,0x05,0x02,0x04,0x05,0x27,0x00,0x00,0x00,0x02,0x01,0x00,0x02,0x01,0x00,0x1d,0x00,0x05,0x03,0x03,0x05,0x01,0x00,0x1a,0x00, -0x05,0x05,0x03,0x00,0x00,0x1b,0x00,0x03,0x05,0x03,0x00,0x00,0x18,0x07,0xb0,0x2f,0x2b,0x01,0x34,0x26,0x27,0x2e,0x01,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x1e,0x01,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x01,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x2e,0x01,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x03,0x61, -0x7f,0x93,0xca,0xce,0xbe,0xa6,0x9e,0xa7,0xb9,0xc4,0x7e,0x6f,0x76,0x76,0x7a,0x9e,0xcc,0xc6,0xce,0xb4,0x9d,0xac,0xdc,0x04,0x02,0xbe,0x9c,0x70,0x81,0x91,0x01,0x78,0x5a,0x7f,0x32,0x3d,0xcc,0xaa,0xa5,0xd0,0x15,0xdd,0xde,0x16,0xe6,0xc1,0x7f,0x9e,0x7b,0x6b,0x61,0x78,0x36,0x42,0xc5,0xa9,0xac,0xcb,0x13,0xc0,0xbf,0x12,0xd7,0xd0, -0x05,0x9a,0x83,0x7b,0x00,0x05,0x00,0x68,0xff,0xeb,0x05,0x83,0x05,0xc5,0x00,0x0d,0x00,0x1b,0x00,0x29,0x00,0x37,0x00,0x3b,0x00,0x59,0x40,0x12,0x35,0x33,0x2e,0x2c,0x27,0x25,0x20,0x1e,0x19,0x17,0x12,0x10,0x0b,0x09,0x04,0x02,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x3a,0x3b,0x3a,0x02,0x02,0x03,0x39,0x38,0x02,0x06,0x07, -0x02,0x15,0x00,0x02,0x00,0x01,0x04,0x02,0x01,0x01,0x00,0x1d,0x00,0x04,0x00,0x07,0x06,0x04,0x07,0x01,0x00,0x1d,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0d,0x16,0x00,0x06,0x06,0x05,0x01,0x00,0x1b,0x00,0x05,0x05,0x0e,0x05,0x17,0x07,0xb0,0x2f,0x2b,0x13,0x34,0x36,0x33,0x32,0x16,0x1d,0x01,0x14,0x06,0x23,0x22,0x26, -0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x34,0x36,0x33,0x32,0x16,0x1d,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x05,0x27,0x01,0x17,0x68,0xa4,0x89,0x89,0xa4,0xa3,0x88,0x8a,0xa5,0x92,0x51,0x4c,0x49,0x50,0x51,0x4a,0x4b, -0x50,0x02,0x2f,0xa4,0x89,0x88,0xa5,0xa4,0x87,0x8a,0xa5,0x92,0x51,0x4c,0x49,0x50,0x52,0x49,0x4a,0x51,0xfe,0x0f,0x6d,0x02,0xc7,0x6d,0x04,0x98,0x7f,0xae,0xad,0x80,0x4d,0x7f,0xac,0xac,0x7f,0x4a,0x67,0x66,0x4b,0x4d,0x4a,0x69,0x69,0x4a,0xfc,0xcd,0x7f,0xad,0xad,0x7f,0x4e,0x80,0xac,0xac,0x80,0x4b,0x67,0x67,0x4b,0x4e,0x4a,0x68, -0x68,0x4a,0xf7,0x43,0x04,0x72,0x43,0x00,0x00,0x03,0x00,0x40,0xff,0xeb,0x04,0xd0,0x05,0xc5,0x00,0x21,0x00,0x2c,0x00,0x39,0x00,0x9d,0x40,0x12,0x23,0x22,0x38,0x36,0x22,0x2c,0x23,0x2c,0x20,0x1e,0x1b,0x1a,0x15,0x14,0x0a,0x08,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x3c,0x30,0x10,0x03,0x03,0x01,0x05, -0x26,0x25,0x18,0x11,0x04,0x04,0x01,0x1c,0x01,0x02,0x04,0x03,0x15,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0d,0x16,0x00,0x01,0x01,0x02,0x01,0x00,0x1b,0x03,0x01,0x02,0x02,0x08,0x16,0x06,0x01,0x04,0x04,0x02,0x01,0x00,0x1b,0x03,0x01,0x02,0x02,0x08,0x02,0x17,0x07,0x1b,0x40,0x3a,0x30,0x10,0x03,0x03,0x01,0x05,0x26, -0x25,0x18,0x11,0x04,0x04,0x01,0x1c,0x01,0x02,0x04,0x03,0x15,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0d,0x16,0x00,0x01,0x01,0x02,0x00,0x00,0x1b,0x00,0x02,0x02,0x08,0x16,0x06,0x01,0x04,0x04,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17,0x07,0x59,0xb0,0x2f,0x2b,0x13,0x34,0x36,0x37,0x2e,0x01,0x35,0x34,0x36, -0x33,0x32,0x16,0x15,0x14,0x06,0x0f,0x01,0x01,0x3e,0x01,0x35,0x33,0x14,0x06,0x07,0x17,0x07,0x23,0x27,0x0e,0x01,0x23,0x22,0x24,0x05,0x32,0x36,0x37,0x01,0x07,0x0e,0x01,0x15,0x14,0x16,0x03,0x14,0x16,0x17,0x37,0x3e,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x40,0x8d,0x8c,0x4e,0x4c,0xc3,0xab,0x9e,0xc6,0x69,0x67,0x6d,0x01,0x54,0x29, -0x2e,0xb0,0x4e,0x4a,0xb9,0x02,0xe5,0x55,0x50,0xc2,0x68,0xd9,0xfe,0xff,0x01,0xda,0x48,0x8c,0x3e,0xfe,0x97,0x28,0x5b,0x3b,0x8e,0x0f,0x36,0x36,0x8a,0x39,0x29,0x61,0x4e,0x51,0x58,0x01,0x88,0x7a,0xb7,0x5c,0x63,0x9b,0x52,0xa9,0xb7,0xb6,0x80,0x62,0x8f,0x4b,0x50,0xfe,0x67,0x41,0x9e,0x58,0x84,0xe0,0x59,0xdf,0x05,0x66,0x3c,0x3f, -0xe6,0x4c,0x31,0x2e,0x01,0xb3,0x1d,0x44,0x7c,0x32,0x71,0x92,0x03,0xe2,0x35,0x73,0x44,0x5f,0x26,0x59,0x36,0x3d,0x5e,0x71,0x00,0x01,0x00,0x7e,0x03,0xb7,0x01,0x44,0x05,0xb0,0x00,0x05,0x00,0x27,0x40,0x06,0x05,0x04,0x02,0x01,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x14,0x00,0x01,0x00,0x01,0x01,0x15,0x00,0x00,0x00,0x01, -0x00,0x00,0x1b,0x00,0x01,0x01,0x07,0x00,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x03,0x23,0x13,0x35,0x33,0x01,0x44,0x65,0x61,0x01,0xc5,0x04,0xd1,0xfe,0xe6,0x01,0x09,0xf0,0x00,0x01,0x00,0x84,0xfe,0x31,0x02,0x9d,0x06,0x64,0x00,0x11,0x00,0x2f,0x40,0x04,0x0e,0x0d,0x01,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x16,0x58,0x40,0x0c, -0x0c,0x05,0x02,0x00,0x13,0x00,0x00,0x00,0x0c,0x00,0x17,0x02,0x1b,0x40,0x0a,0x0c,0x05,0x02,0x00,0x13,0x00,0x00,0x00,0x22,0x02,0x59,0xb0,0x2f,0x2b,0x13,0x10,0x00,0x37,0x1f,0x01,0x06,0x02,0x11,0x15,0x10,0x12,0x17,0x07,0x23,0x26,0x00,0x11,0x84,0x01,0x3e,0xaf,0x06,0x26,0x89,0xcb,0xca,0x8a,0x26,0x06,0xaf,0xfe,0xc2,0x02,0x4f, -0x01,0x8a,0x02,0x2e,0x5d,0x01,0x74,0x6b,0xfe,0x28,0xfe,0xa5,0x0d,0xfe,0xa5,0xfe,0x28,0x74,0x6c,0x5d,0x02,0x2d,0x01,0x8b,0x00,0x01,0x00,0x06,0xfe,0x31,0x02,0x1f,0x06,0x64,0x00,0x11,0x00,0x3f,0x40,0x06,0x0e,0x0d,0x04,0x03,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x16,0x58,0x40,0x13,0x0c,0x05,0x02,0x00,0x01,0x01, -0x15,0x00,0x01,0x00,0x01,0x2b,0x00,0x00,0x00,0x0c,0x00,0x17,0x03,0x1b,0x40,0x11,0x0c,0x05,0x02,0x00,0x01,0x01,0x15,0x00,0x01,0x00,0x01,0x2b,0x00,0x00,0x00,0x22,0x03,0x59,0xb0,0x2f,0x2b,0x01,0x10,0x00,0x07,0x23,0x27,0x36,0x12,0x11,0x35,0x10,0x02,0x27,0x37,0x33,0x16,0x00,0x11,0x02,0x1f,0xfe,0xc1,0xae,0x06,0x26,0x87,0xcd, -0xd3,0x81,0x26,0x06,0xae,0x01,0x3f,0x02,0x46,0xfe,0x75,0xfd,0xd3,0x5d,0x6c,0x69,0x01,0xe1,0x01,0x5d,0x0d,0x01,0x56,0x01,0xe3,0x6e,0x6c,0x5d,0xfd,0xd2,0xfe,0x76,0x00,0x01,0x00,0x58,0x01,0x86,0x03,0x1b,0x04,0x39,0x00,0x0e,0x00,0x28,0x40,0x04,0x05,0x04,0x01,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x17,0x0e,0x0d,0x0c,0x0b, -0x0a,0x09,0x08,0x07,0x06,0x03,0x02,0x01,0x00,0x0d,0x00,0x12,0x00,0x00,0x00,0x0a,0x00,0x17,0x02,0xb0,0x2f,0x2b,0x01,0x27,0x37,0x17,0x27,0x33,0x03,0x37,0x17,0x07,0x17,0x07,0x27,0x07,0x27,0x01,0x44,0xec,0x31,0xec,0x0a,0xa1,0x0a,0xe9,0x30,0xf2,0x99,0x84,0x8c,0x87,0x85,0x02,0xb8,0x43,0x9a,0x5a,0xfe,0xfe,0xfc,0x59,0x9c,0x44, -0xc8,0x60,0xda,0xd2,0x5c,0x00,0x00,0x00,0x00,0x01,0x00,0x4e,0x00,0x92,0x04,0x34,0x04,0xb6,0x00,0x0b,0x00,0x3e,0x40,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x23,0x00,0x05,0x00,0x02,0x05,0x00,0x00,0x1a,0x04,0x01,0x00,0x03,0x01,0x01,0x02,0x00,0x01,0x00, -0x00,0x1d,0x00,0x05,0x05,0x02,0x00,0x00,0x1b,0x00,0x02,0x05,0x02,0x00,0x00,0x18,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x02,0xa5,0x01,0x8f,0xfe,0x71,0xc5,0xfe,0x6e,0x01,0x92,0xc5,0x03,0x0f,0xb2,0xfe,0x35,0x01,0xcb,0xb2,0x01,0xa7,0x00,0x00,0x00,0x01,0x00,0x30,0xfe,0xfe,0x01,0x3b, -0x00,0xdd,0x00,0x05,0x00,0x31,0x40,0x06,0x05,0x04,0x02,0x01,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1e,0x03,0x00,0x02,0x00,0x01,0x01,0x15,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x1a,0x00,0x01,0x01,0x00,0x00,0x00,0x1b,0x00,0x00,0x01,0x00,0x00,0x00,0x18,0x04,0xb0,0x2f,0x2b,0x25,0x03,0x23,0x13,0x35,0x33,0x01,0x3b,0x96, -0x75,0x46,0xc5,0x30,0xfe,0xce,0x01,0x3c,0xa3,0x00,0x00,0x00,0x00,0x01,0x00,0xa7,0x02,0x1a,0x02,0xf5,0x02,0xb4,0x00,0x03,0x00,0x2a,0x40,0x06,0x03,0x02,0x01,0x00,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x1a,0x00,0x01,0x01,0x00,0x00,0x00,0x1b,0x00,0x00,0x01,0x00,0x00,0x00,0x18, -0x03,0xb0,0x2f,0x2b,0x01,0x21,0x35,0x21,0x02,0xf5,0xfd,0xb2,0x02,0x4e,0x02,0x1a,0x9a,0x00,0x00,0x00,0x00,0x01,0x00,0xa1,0x00,0x00,0x01,0x66,0x00,0xca,0x00,0x03,0x00,0x21,0x40,0x06,0x03,0x02,0x01,0x00,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x0e,0x00,0x01,0x01,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x08,0x00,0x17,0x02, -0xb0,0x2f,0x2b,0x21,0x23,0x35,0x33,0x01,0x66,0xc5,0xc5,0xca,0x00,0x01,0x00,0x10,0xff,0x83,0x03,0x17,0x05,0xb0,0x00,0x03,0x00,0x1f,0x40,0x06,0x03,0x02,0x01,0x00,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x0c,0x00,0x00,0x01,0x00,0x2c,0x00,0x01,0x01,0x07,0x01,0x17,0x02,0xb0,0x2f,0x2b,0x17,0x23,0x01,0x33,0xb8,0xa8,0x02, -0x60,0xa7,0x7d,0x06,0x2d,0x00,0x00,0x00,0x00,0x02,0x00,0x71,0xff,0xeb,0x04,0x10,0x05,0xc5,0x00,0x0d,0x00,0x1b,0x00,0x31,0x40,0x0a,0x19,0x17,0x12,0x10,0x0b,0x09,0x04,0x02,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1a,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0d,0x16,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x00, -0x00,0x00,0x0e,0x00,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x14,0x02,0x23,0x22,0x02,0x35,0x11,0x34,0x12,0x33,0x32,0x12,0x15,0x27,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x04,0x10,0xfb,0xd4,0xd3,0xfd,0xfb,0xd3,0xd4,0xfd,0xc5,0x8c,0x80,0x7f,0x8a,0x8d,0x7e,0x80,0x8a,0x02,0x02,0xf7,0xfe,0xe0,0x01,0x20,0xf7, -0x01,0xac,0xf5,0x01,0x22,0xfe,0xde,0xf5,0x29,0x9d,0xb6,0xb6,0x9d,0xfe,0x03,0x9d,0xb8,0xb7,0x9e,0x00,0x00,0x01,0x00,0xc3,0x00,0x00,0x02,0xc6,0x05,0xc5,0x00,0x05,0x00,0x24,0x40,0x06,0x03,0x02,0x01,0x00,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x11,0x05,0x04,0x02,0x01,0x13,0x00,0x01,0x00,0x01,0x2b,0x00,0x00,0x00,0x08, -0x00,0x17,0x03,0xb0,0x2f,0x2b,0x21,0x23,0x11,0x05,0x35,0x25,0x02,0xc6,0xc6,0xfe,0xc3,0x02,0x03,0x04,0xfa,0x03,0x98,0x36,0x00,0x01,0x00,0x85,0x00,0x00,0x04,0x1e,0x05,0xc5,0x00,0x1a,0x00,0x45,0x40,0x0c,0x1a,0x19,0x12,0x10,0x0d,0x0c,0x0a,0x08,0x01,0x00,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2c,0x0e,0x01,0x02,0x01, -0x02,0x01,0x00,0x04,0x02,0x15,0x00,0x02,0x01,0x04,0x01,0x02,0x04,0x29,0x00,0x01,0x01,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0d,0x16,0x00,0x04,0x04,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x08,0x00,0x17,0x06,0xb0,0x2f,0x2b,0x29,0x01,0x35,0x01,0x3e,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x27,0x26,0x36,0x33,0x32,0x16,0x15, -0x14,0x06,0x07,0x01,0x17,0x21,0x04,0x1e,0xfc,0x78,0x01,0xc9,0x7a,0x57,0x76,0x68,0x81,0x87,0xbe,0x02,0x05,0xf8,0xd5,0xc3,0xe0,0x7f,0x82,0xfe,0x91,0x02,0x02,0x97,0x87,0x02,0x21,0x94,0xaf,0x59,0x65,0x81,0x9e,0x76,0x06,0xb2,0xf7,0xd8,0xab,0x73,0xdc,0xa6,0xfe,0x52,0x05,0x00,0x00,0x00,0x00,0x01,0x00,0x73,0xff,0xeb,0x04,0x0f, -0x05,0xc5,0x00,0x2a,0x00,0x66,0x40,0x16,0x01,0x00,0x29,0x27,0x23,0x21,0x1f,0x1e,0x1b,0x19,0x0f,0x0d,0x0a,0x09,0x07,0x05,0x00,0x2a,0x01,0x2a,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x43,0x0b,0x01,0x02,0x01,0x14,0x01,0x07,0x00,0x1d,0x01,0x06,0x05,0x03,0x15,0x00,0x02,0x01,0x00,0x01,0x02,0x00,0x29,0x00,0x05,0x07,0x06, -0x07,0x05,0x06,0x29,0x08,0x01,0x00,0x00,0x07,0x05,0x00,0x07,0x01,0x00,0x1d,0x00,0x01,0x01,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0d,0x16,0x00,0x06,0x06,0x04,0x01,0x00,0x1b,0x00,0x04,0x04,0x0e,0x04,0x17,0x08,0xb0,0x2f,0x2b,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x27,0x26,0x24,0x33,0x32,0x16,0x15,0x14,0x06, -0x07,0x1e,0x01,0x15,0x14,0x06,0x23,0x22,0x24,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x2b,0x01,0x35,0x02,0x43,0x84,0x6d,0x77,0x75,0x72,0x95,0xbc,0x03,0x05,0x01,0x02,0xc9,0xcb,0xe6,0x6b,0x60,0x6e,0x73,0xfd,0xca,0xba,0xfe,0xe5,0x05,0x02,0xbc,0x99,0x79,0x78,0x8a,0x7f,0x88,0xa2,0x03,0x3c,0x83,0x76,0x6e,0x87, -0x8d,0x6a,0x06,0xa4,0xe8,0xcd,0xc7,0x66,0xa8,0x2f,0x2c,0xb3,0x7f,0xc8,0xe3,0xdb,0xb4,0x06,0x6a,0x91,0x95,0x78,0x89,0x88,0x99,0x00,0x00,0x00,0x00,0x02,0x00,0x48,0x00,0x00,0x04,0x46,0x05,0xb0,0x00,0x0a,0x00,0x0f,0x00,0x3d,0x40,0x0e,0x0c,0x0b,0x0a,0x09,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90, -0x50,0x58,0x40,0x22,0x0d,0x01,0x00,0x04,0x08,0x01,0x01,0x00,0x02,0x15,0x05,0x01,0x00,0x03,0x01,0x01,0x02,0x00,0x01,0x00,0x00,0x1d,0x00,0x04,0x04,0x07,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x35,0x01,0x33,0x01,0x21,0x11,0x27,0x07,0x03,0x7d,0xc9,0xc9,0xc4,0xfd,0x8f, -0x02,0x65,0xd0,0xfd,0x9e,0x01,0x9e,0x06,0x13,0x01,0xea,0x9a,0xfe,0xb0,0x01,0x50,0x6f,0x03,0xf1,0xfc,0x3a,0x02,0xab,0x01,0x32,0x00,0x00,0x00,0x00,0x01,0x00,0x98,0xff,0xeb,0x04,0x13,0x05,0xb0,0x00,0x1f,0x00,0x58,0x40,0x10,0x1d,0x1b,0x17,0x15,0x13,0x12,0x0f,0x0d,0x09,0x07,0x04,0x03,0x02,0x01,0x07,0x07,0x2b,0x4b,0xb0,0x90, -0x50,0x58,0x40,0x3b,0x05,0x01,0x06,0x02,0x1f,0x00,0x02,0x04,0x06,0x11,0x01,0x05,0x04,0x03,0x15,0x00,0x04,0x06,0x05,0x06,0x04,0x05,0x29,0x00,0x02,0x00,0x06,0x04,0x02,0x06,0x01,0x00,0x1d,0x00,0x01,0x01,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x07,0x16,0x00,0x05,0x05,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17,0x07,0xb0, -0x2f,0x2b,0x1b,0x01,0x21,0x15,0x21,0x03,0x3e,0x01,0x37,0x36,0x12,0x15,0x14,0x02,0x23,0x22,0x26,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0xaf,0x54,0x02,0xd9,0xfd,0xcd,0x2f,0x2f,0x72,0x49,0xca,0xe5,0xeb,0xe1,0xb9,0xf6,0x05,0x02,0xb2,0x89,0x6d,0x7d,0x8a,0x8b,0x7c,0x74,0x68,0x19,0x02,0x87, -0x03,0x29,0xaf,0xfe,0x5d,0x23,0x2d,0x01,0x02,0xfe,0xff,0xe0,0xdb,0xfe,0xf6,0xca,0xc4,0x06,0x77,0x83,0xb0,0x99,0x8b,0xac,0x46,0x49,0x00,0x00,0x00,0x02,0x00,0x89,0xff,0xeb,0x04,0x28,0x05,0xc5,0x00,0x1a,0x00,0x27,0x00,0x5b,0x40,0x16,0x1c,0x1b,0x01,0x00,0x23,0x21,0x1b,0x27,0x1c,0x27,0x15,0x13,0x0f,0x0d,0x08,0x06,0x00,0x1a, -0x01,0x1a,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x38,0x03,0x01,0x01,0x00,0x04,0x01,0x02,0x01,0x0b,0x01,0x04,0x02,0x1e,0x01,0x05,0x04,0x04,0x15,0x00,0x02,0x07,0x01,0x04,0x05,0x02,0x04,0x01,0x00,0x1d,0x00,0x01,0x01,0x00,0x01,0x00,0x1b,0x06,0x01,0x00,0x00,0x0d,0x16,0x00,0x05,0x05,0x03,0x01,0x00,0x1b,0x00,0x03,0x03, -0x0e,0x03,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x1d,0x01,0x3e,0x01,0x33,0x32,0x16,0x15,0x14,0x02,0x23,0x22,0x00,0x19,0x01,0x10,0x00,0x13,0x22,0x06,0x07,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x81,0x56,0xa8,0x37,0x2a,0x39,0x7e,0x54,0x89,0xab,0x3d,0xa7,0x60,0xbc,0xdb,0xf5, -0xd0,0xca,0xfe,0xf0,0x01,0x23,0xa6,0x5d,0x85,0x23,0xa1,0x75,0x7b,0x85,0x8f,0x05,0xc5,0x22,0x1a,0x97,0x19,0x1f,0xea,0xb3,0x71,0x3d,0x46,0xfc,0xcd,0xe0,0xfe,0xf5,0x01,0x33,0x01,0x0a,0x01,0x4f,0x01,0x00,0x01,0x4e,0xfd,0x47,0x4f,0x43,0x65,0xb9,0xd7,0xbb,0x96,0x8e,0xa8,0x00,0x00,0x00,0x00,0x01,0x00,0x61,0x00,0x00,0x04,0x27, -0x05,0xb0,0x00,0x0c,0x00,0x2d,0x40,0x08,0x0c,0x0b,0x0a,0x09,0x05,0x04,0x03,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x18,0x00,0x01,0x01,0x01,0x14,0x00,0x01,0x01,0x02,0x00,0x00,0x1b,0x00,0x02,0x02,0x07,0x16,0x00,0x00,0x00,0x08,0x00,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x00,0x02,0x11,0x15,0x23,0x35,0x10,0x12,0x13,0x21,0x35,0x21, -0x04,0x27,0xfe,0xec,0xc2,0xc5,0xf3,0xe6,0xfc,0xfc,0x03,0xc6,0x05,0x15,0xfe,0xb8,0xfe,0x0a,0xfe,0xc8,0x9f,0x9f,0x01,0x4a,0x02,0x11,0x01,0x1b,0x9b,0x00,0x00,0x00,0x00,0x03,0x00,0x66,0xff,0xeb,0x04,0x1a,0x05,0xc5,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x46,0x40,0x0e,0x2e,0x2c,0x28,0x26,0x22,0x20,0x1c,0x1a,0x16,0x14,0x0a,0x08, -0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2b,0x0f,0x03,0x02,0x02,0x05,0x01,0x15,0x00,0x05,0x00,0x02,0x03,0x05,0x02,0x01,0x00,0x1d,0x00,0x04,0x04,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0d,0x16,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x14,0x06,0x07,0x1e,0x01,0x15,0x14, -0x04,0x23,0x22,0x24,0x35,0x34,0x36,0x37,0x2e,0x01,0x35,0x34,0x36,0x33,0x32,0x16,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xf2,0x80,0x6a,0x7c,0x96,0xfe,0xfb,0xca,0xd6,0xfe,0xf1,0x99,0x82,0x70,0x82,0xf5,0xc5,0xba,0xef,0x9c,0x9b,0x72,0x7c, -0xa2,0xa1,0x7f,0x72,0x99,0x29,0x83,0x61,0x6b,0x8a,0x8c,0x6b,0x61,0x81,0x04,0x3c,0x72,0xad,0x2b,0x2b,0xbc,0x7b,0xc9,0xdc,0xdc,0xc9,0x7b,0xbc,0x2c,0x2a,0xad,0x72,0xbf,0xca,0xcb,0xfc,0x9a,0x77,0x9a,0x9a,0x77,0x7b,0x94,0x95,0x03,0x1f,0x69,0x88,0x83,0x6e,0x6f,0x8a,0x8a,0x00,0x00,0x00,0x00,0x02,0x00,0x5d,0xff,0xeb,0x03,0xf8, -0x05,0xc5,0x00,0x1a,0x00,0x27,0x00,0x5b,0x40,0x16,0x1c,0x1b,0x01,0x00,0x23,0x21,0x1b,0x27,0x1c,0x27,0x15,0x13,0x0e,0x0c,0x08,0x06,0x00,0x1a,0x01,0x1a,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x38,0x1e,0x01,0x04,0x05,0x04,0x01,0x01,0x04,0x18,0x01,0x00,0x01,0x17,0x01,0x03,0x00,0x04,0x15,0x07,0x01,0x04,0x00,0x01,0x00, -0x04,0x01,0x01,0x00,0x1d,0x00,0x05,0x05,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0d,0x16,0x06,0x01,0x00,0x00,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17,0x06,0xb0,0x2f,0x2b,0x25,0x32,0x36,0x3d,0x01,0x0e,0x01,0x23,0x22,0x02,0x35,0x34,0x12,0x33,0x32,0x00,0x15,0x11,0x14,0x00,0x23,0x22,0x26,0x27,0x37,0x1e,0x01,0x13,0x32, -0x36,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0xf5,0x8e,0xaf,0x30,0x8f,0x55,0xd2,0xef,0xfe,0xbb,0xda,0x01,0x08,0xfe,0xe0,0xe3,0x4d,0xa1,0x46,0x1e,0x42,0x7f,0x7e,0x67,0x8d,0x20,0x92,0x84,0x6b,0x8f,0x84,0x85,0xc4,0xb4,0x7c,0x47,0x49,0x01,0x03,0xe6,0xdc,0x01,0x17,0xfe,0xee,0xfa,0xfe,0x46,0xfb,0xfe,0xe7,0x20, -0x1f,0x96,0x20,0x1b,0x01,0xfe,0x5e,0x49,0xac,0xa3,0xb1,0xbf,0x99,0x96,0xb9,0x00,0xff,0xff,0x00,0xa1,0x00,0x00,0x01,0x66,0x04,0x36,0x00,0x26,0x00,0x11,0x00,0x00,0x01,0x07,0x00,0x11,0x00,0x00,0x03,0x6c,0x00,0x09,0xb1,0x01,0x01,0xb8,0x03,0x6c,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x63,0xfe,0xfe,0x01,0x6e,0x04,0x36,0x00,0x27, -0x00,0x11,0x00,0x01,0x03,0x6c,0x01,0x06,0x00,0x0f,0x33,0x00,0x00,0x09,0xb1,0x00,0x01,0xb8,0x03,0x6c,0xb0,0x0d,0x2b,0x00,0x00,0x01,0x00,0x47,0x00,0x6b,0x03,0x77,0x03,0xf5,0x00,0x09,0x00,0x07,0x40,0x02,0x00,0x07,0x2b,0x00,0x00,0x01,0x07,0x15,0x17,0x05,0x15,0x01,0x35,0x01,0x15,0x01,0x48,0x55,0x55,0x02,0x2f,0xfc,0xd0,0x03, -0x30,0x02,0x43,0x12,0x06,0x13,0xe4,0xc9,0x01,0x7b,0x95,0x01,0x7a,0xc9,0x00,0x00,0x00,0x02,0x00,0x98,0x01,0x97,0x03,0xda,0x03,0xdb,0x00,0x03,0x00,0x07,0x00,0x38,0x40,0x0a,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x21,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x00,0x1d,0x00,0x03, -0x02,0x02,0x03,0x00,0x00,0x1a,0x00,0x03,0x03,0x02,0x00,0x00,0x1b,0x00,0x02,0x03,0x02,0x00,0x00,0x18,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x03,0xda,0xfc,0xbe,0x03,0x42,0xfc,0xbe,0x03,0x42,0x03,0x37,0xa4,0xfd,0xbc,0xa4,0x00,0x01,0x00,0x88,0x00,0x57,0x03,0xe0,0x03,0xe1,0x00,0x09,0x00,0x07,0x40,0x02, -0x00,0x07,0x2b,0x00,0x00,0x13,0x35,0x01,0x15,0x01,0x35,0x25,0x37,0x35,0x27,0x88,0x03,0x58,0xfc,0xa8,0x02,0x56,0x55,0x55,0x03,0x1e,0xc3,0xfe,0x86,0x95,0xfe,0x85,0xc4,0xee,0x11,0x06,0x14,0x00,0x00,0x00,0x00,0x02,0x00,0x3a,0x00,0x00,0x03,0x76,0x05,0xc5,0x00,0x1a,0x00,0x1e,0x00,0x4f,0x40,0x12,0x00,0x00,0x1e,0x1d,0x1c,0x1b, -0x00,0x1a,0x00,0x1a,0x12,0x10,0x0d,0x0c,0x0a,0x08,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x30,0x0e,0x01,0x01,0x00,0x01,0x15,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x29,0x06,0x01,0x03,0x05,0x00,0x03,0x05,0x27,0x00,0x00,0x00,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0d,0x16,0x00,0x05,0x05,0x04,0x00,0x00,0x1b,0x00,0x04,0x04, -0x08,0x04,0x17,0x07,0xb0,0x2f,0x2b,0x01,0x3e,0x01,0x37,0x3e,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x27,0x26,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x0e,0x01,0x15,0x13,0x23,0x35,0x33,0x01,0x63,0x01,0x30,0x66,0x63,0x54,0x71,0x69,0x5b,0x80,0xbc,0x03,0x03,0xe9,0xb4,0xc5,0xda,0x8d,0x74,0x36,0x17,0x07,0xce,0xce,0x01, -0x9a,0x91,0x70,0x5c,0x75,0x7e,0x59,0x6a,0x72,0x63,0x60,0x06,0xa1,0xc2,0xc9,0xb4,0x81,0xd6,0x70,0x36,0x56,0x5b,0xfe,0x66,0xd0,0x00,0x00,0x00,0x00,0x02,0x00,0x60,0xfe,0x3b,0x06,0xd5,0x05,0x97,0x00,0x33,0x00,0x43,0x01,0x32,0x40,0x18,0x42,0x40,0x38,0x36,0x32,0x30,0x2c,0x2a,0x25,0x23,0x1f,0x1d,0x19,0x17,0x14,0x13,0x10,0x0e, -0x0a,0x08,0x04,0x02,0x0b,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x14,0x58,0x40,0x4d,0x12,0x01,0x03,0x02,0x3e,0x06,0x02,0x04,0x0a,0x27,0x01,0x06,0x00,0x28,0x01,0x07,0x06,0x04,0x15,0x00,0x03,0x02,0x0a,0x02,0x03,0x0a,0x29,0x00,0x02,0x00,0x0a,0x04,0x02,0x0a,0x01,0x00,0x1d,0x00,0x05,0x05,0x08,0x01,0x00,0x1b,0x00,0x08, -0x08,0x07,0x16,0x09,0x01,0x04,0x04,0x00,0x01,0x00,0x1b,0x01,0x01,0x00,0x00,0x0e,0x16,0x00,0x06,0x06,0x07,0x01,0x00,0x1b,0x00,0x07,0x07,0x12,0x07,0x17,0x09,0x1b,0x4b,0xb0,0x28,0x58,0x40,0x59,0x12,0x01,0x03,0x02,0x3e,0x06,0x02,0x09,0x0a,0x27,0x01,0x06,0x00,0x28,0x01,0x07,0x06,0x04,0x15,0x00,0x03,0x02,0x0a,0x02,0x03,0x0a, -0x29,0x00,0x02,0x00,0x0a,0x09,0x02,0x0a,0x01,0x00,0x1d,0x00,0x05,0x05,0x08,0x01,0x00,0x1b,0x00,0x08,0x08,0x07,0x16,0x00,0x09,0x09,0x00,0x01,0x00,0x1b,0x01,0x01,0x00,0x00,0x0e,0x16,0x00,0x04,0x04,0x00,0x01,0x00,0x1b,0x01,0x01,0x00,0x00,0x0e,0x16,0x00,0x06,0x06,0x07,0x01,0x00,0x1b,0x00,0x07,0x07,0x12,0x07,0x17,0x0b,0x1b, -0x40,0x57,0x12,0x01,0x03,0x02,0x3e,0x06,0x02,0x09,0x0a,0x27,0x01,0x06,0x00,0x28,0x01,0x07,0x06,0x04,0x15,0x00,0x03,0x02,0x0a,0x02,0x03,0x0a,0x29,0x00,0x08,0x00,0x05,0x02,0x08,0x05,0x01,0x00,0x1d,0x00,0x02,0x00,0x0a,0x09,0x02,0x0a,0x01,0x00,0x1d,0x00,0x09,0x09,0x00,0x01,0x00,0x1b,0x01,0x01,0x00,0x00,0x0e,0x16,0x00,0x04, -0x04,0x00,0x01,0x00,0x1b,0x01,0x01,0x00,0x00,0x0e,0x16,0x00,0x06,0x06,0x07,0x01,0x00,0x1b,0x00,0x07,0x07,0x12,0x07,0x17,0x0a,0x59,0x59,0xb0,0x2f,0x2b,0x01,0x06,0x02,0x23,0x22,0x26,0x27,0x0e,0x01,0x23,0x22,0x26,0x37,0x1a,0x01,0x33,0x32,0x16,0x17,0x07,0x33,0x03,0x06,0x16,0x33,0x32,0x36,0x37,0x12,0x00,0x21,0x20,0x00,0x03, -0x02,0x00,0x21,0x32,0x36,0x37,0x17,0x0e,0x01,0x23,0x20,0x00,0x13,0x12,0x00,0x21,0x20,0x00,0x01,0x06,0x16,0x33,0x32,0x36,0x37,0x26,0x36,0x37,0x13,0x2e,0x01,0x23,0x22,0x06,0x06,0xc4,0x09,0xde,0xdd,0x49,0x6a,0x17,0x32,0x90,0x60,0x7d,0x8a,0x12,0x17,0xe5,0xa5,0x69,0x80,0x4b,0x04,0x06,0x33,0x09,0x3d,0x33,0x7b,0x94,0x08,0x10, -0xfe,0xc0,0xfe,0xb0,0xfe,0xcc,0xfe,0x89,0x0f,0x12,0x01,0x50,0x01,0x3a,0x58,0xb5,0x3e,0x26,0x43,0xcf,0x63,0xfe,0x84,0xfe,0x61,0x12,0x13,0x01,0xcc,0x01,0x74,0x01,0x7b,0x01,0x95,0xfb,0xfb,0x0b,0x41,0x4a,0x40,0x6a,0x2c,0x01,0x01,0x02,0x2f,0x1a,0x39,0x1f,0x7d,0x84,0x01,0xf6,0xd6,0xfe,0xcb,0x53,0x4c,0x50,0x4f,0xf1,0xc4,0x01, -0x03,0x01,0x39,0x34,0x36,0x04,0xfd,0xb7,0x6e,0x53,0xe3,0xaf,0x01,0x7e,0x01,0xab,0xfe,0x32,0xfe,0x8d,0xfe,0x88,0xfe,0x4b,0x2b,0x23,0x6b,0x2a,0x2f,0x01,0xf3,0x01,0xb0,0x01,0xa7,0x02,0x12,0xfe,0x0c,0xfd,0xfd,0x8e,0x94,0x31,0x3f,0x0c,0x1b,0x10,0x02,0x1a,0x0c,0x0e,0xdb,0x00,0x00,0x00,0x00,0x02,0x00,0x2b,0x00,0x00,0x04,0xe3, -0x05,0xb0,0x00,0x07,0x00,0x0b,0x00,0x3a,0x40,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1f,0x00,0x05,0x02,0x04,0x02,0x05,0x04,0x29,0x00,0x04,0x00,0x00,0x01,0x04,0x00,0x00,0x02,0x1d,0x00,0x02,0x02,0x07,0x16,0x03,0x01,0x01,0x01,0x08,0x01,0x17,0x04,0xb0, -0x2f,0x2b,0x01,0x21,0x03,0x23,0x01,0x33,0x01,0x23,0x01,0x21,0x03,0x23,0x03,0x9a,0xfd,0xdc,0x82,0xc9,0x02,0x0d,0xa9,0x02,0x02,0xc9,0xfd,0x95,0x01,0xb3,0xd4,0x06,0x01,0x77,0xfe,0x89,0x05,0xb0,0xfa,0x50,0x02,0x1c,0x02,0x71,0x00,0x03,0x00,0xaa,0x00,0x00,0x04,0xcd,0x05,0xb0,0x00,0x0e,0x00,0x18,0x00,0x21,0x00,0x4f,0x40,0x16, -0x0f,0x0f,0x00,0x00,0x21,0x1f,0x1b,0x19,0x0f,0x18,0x0f,0x16,0x12,0x10,0x00,0x0e,0x00,0x0d,0x03,0x01,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2c,0x08,0x01,0x03,0x04,0x01,0x15,0x00,0x04,0x07,0x01,0x03,0x02,0x04,0x03,0x01,0x00,0x1d,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x07,0x16,0x00,0x02,0x02,0x01,0x01, -0x00,0x1b,0x06,0x01,0x01,0x01,0x08,0x01,0x17,0x06,0xb0,0x2f,0x2b,0x33,0x11,0x21,0x32,0x04,0x15,0x14,0x06,0x07,0x1e,0x01,0x15,0x14,0x04,0x23,0x01,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x27,0x23,0x25,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0xaa,0x01,0xdb,0xe4,0x01,0x02,0x74,0x60,0x8f,0xa7,0xfe,0xfc,0xde,0xfe,0x84,0x01,0x7c, -0x87,0x95,0x98,0x81,0x0d,0xfe,0x8e,0x01,0x3f,0x6e,0x8a,0x95,0x8c,0xfe,0xea,0x05,0xb0,0xc5,0xc5,0x5e,0x95,0x27,0x14,0xd0,0x8d,0xc8,0xd3,0x02,0xab,0xfd,0xef,0x85,0x7a,0x79,0x94,0x05,0x9a,0x79,0x6c,0x76,0x75,0x00,0x00,0x00,0x00,0x01,0x00,0x76,0xff,0xeb,0x04,0xbf,0x05,0xc5,0x00,0x1d,0x00,0x53,0x40,0x12,0x00,0x00,0x00,0x1d, -0x00,0x1d,0x1b,0x19,0x14,0x12,0x10,0x0f,0x0c,0x0a,0x05,0x03,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x34,0x0e,0x01,0x02,0x03,0x01,0x01,0x04,0x05,0x02,0x15,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x29,0x06,0x01,0x05,0x04,0x03,0x05,0x04,0x27,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0d,0x16,0x00,0x04,0x04,0x00, -0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17,0x07,0xb0,0x2f,0x2b,0x01,0x17,0x16,0x00,0x23,0x22,0x00,0x19,0x01,0x10,0x00,0x33,0x32,0x00,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x02,0x15,0x11,0x14,0x12,0x33,0x32,0x36,0x35,0x04,0xb9,0x02,0x04,0xfe,0xd8,0xf3,0xf7,0xfe,0xc9,0x01,0x37,0xf7,0xf7,0x01,0x24,0x04,0x02,0xbd,0xb4,0xa4, -0xa5,0xc4,0xc4,0xa5,0xa4,0xb4,0x01,0xd2,0x06,0xcd,0xfe,0xec,0x01,0x5e,0x01,0x0d,0x01,0x03,0x01,0x0d,0x01,0x5f,0xfe,0xf9,0xd9,0x06,0x99,0xb2,0xfe,0xf6,0xc5,0xfe,0xfb,0xc7,0xfe,0xf6,0xb1,0x9c,0x00,0x00,0x00,0x02,0x00,0xaa,0x00,0x00,0x04,0xec,0x05,0xb0,0x00,0x09,0x00,0x13,0x00,0x3b,0x40,0x12,0x0a,0x0a,0x00,0x00,0x0a,0x13, -0x0a,0x12,0x0d,0x0b,0x00,0x09,0x00,0x08,0x03,0x01,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1c,0x05,0x01,0x03,0x03,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x07,0x16,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x04,0x01,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x33,0x11,0x21,0x20,0x00,0x11,0x15,0x10,0x00,0x21,0x01,0x11,0x21, -0x32,0x12,0x3d,0x01,0x34,0x02,0x23,0xaa,0x01,0xca,0x01,0x1d,0x01,0x5b,0xfe,0xa5,0xfe,0xe3,0xfe,0xfb,0x01,0x05,0xca,0xe9,0xe9,0xca,0x05,0xb0,0xfe,0xa1,0xfe,0xea,0xc7,0xfe,0xe9,0xfe,0xa3,0x05,0x15,0xfb,0x85,0x01,0x0a,0xd0,0xc9,0xce,0x01,0x0a,0x00,0x01,0x00,0xaa,0x00,0x00,0x04,0x2b,0x05,0xb0,0x00,0x0b,0x00,0x3f,0x40,0x0e, -0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x24,0x00,0x05,0x00,0x00,0x01,0x05,0x00,0x00,0x00,0x1d,0x00,0x04,0x04,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x07,0x16,0x00,0x01,0x01,0x02,0x00,0x00,0x1b,0x00,0x02,0x02,0x08,0x02,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x21,0x11, -0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x03,0xc5,0xfd,0xaa,0x02,0xbc,0xfc,0x7f,0x03,0x76,0xfd,0x4f,0x02,0x56,0x02,0xa3,0xfd,0xf7,0x9a,0x05,0xb0,0x9b,0xfe,0x29,0x00,0x00,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x04,0x3b,0x05,0xb0,0x00,0x09,0x00,0x36,0x40,0x0c,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x05,0x07, -0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1d,0x00,0x04,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x1d,0x00,0x03,0x03,0x02,0x00,0x00,0x1b,0x00,0x02,0x02,0x07,0x16,0x00,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x23,0x11,0x21,0x15,0x21,0x11,0x21,0x03,0xd5,0xfd,0x9a,0xc5,0x03,0x91,0xfd,0x34,0x02,0x66,0x02,0x84,0xfd, -0x7c,0x05,0xb0,0x9b,0xfe,0x0a,0x00,0x00,0x00,0x01,0x00,0x79,0xff,0xeb,0x04,0xc1,0x05,0xc5,0x00,0x20,0x00,0x54,0x40,0x10,0x20,0x1f,0x1e,0x1d,0x1a,0x18,0x13,0x11,0x0f,0x0e,0x0b,0x09,0x04,0x02,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x37,0x0d,0x01,0x02,0x03,0x1c,0x00,0x02,0x04,0x05,0x02,0x15,0x00,0x02,0x03,0x06,0x03, -0x02,0x06,0x29,0x00,0x06,0x00,0x05,0x04,0x06,0x05,0x00,0x00,0x1d,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0d,0x16,0x00,0x04,0x04,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17,0x07,0xb0,0x2f,0x2b,0x25,0x06,0x04,0x23,0x22,0x00,0x19,0x01,0x10,0x00,0x33,0x32,0x00,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15, -0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x11,0x21,0x35,0x21,0x04,0xc1,0x34,0xfe,0xff,0xcd,0xfc,0xfe,0xb6,0x01,0x3e,0xfb,0xf3,0x01,0x1a,0x04,0x02,0xbd,0xac,0x9e,0xa7,0xcc,0xd8,0xa8,0x81,0x97,0x25,0xfe,0xb6,0x02,0x0f,0xc4,0x51,0x88,0x01,0x4e,0x01,0x09,0x01,0x2c,0x01,0x09,0x01,0x4e,0xfe,0xfd,0xc8,0x06,0x85,0xb1,0xfa,0xc0,0xfe, -0xd2,0xc2,0xfb,0x43,0x2e,0x01,0x48,0x9a,0x00,0x01,0x00,0xaa,0x00,0x00,0x04,0xf7,0x05,0xb0,0x00,0x0b,0x00,0x33,0x40,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x18,0x00,0x04,0x00,0x01,0x00,0x04,0x01,0x00,0x00,0x1d,0x05,0x01,0x03,0x03,0x07,0x16,0x02,0x01, -0x00,0x00,0x08,0x00,0x17,0x03,0xb0,0x2f,0x2b,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x04,0xf7,0xc5,0xfd,0x3d,0xc5,0xc5,0x02,0xc3,0xc5,0x02,0x83,0xfd,0x7d,0x05,0xb0,0xfd,0x6e,0x02,0x92,0x00,0x00,0x00,0x00,0x01,0x00,0xbe,0x00,0x00,0x01,0x84,0x05,0xb0,0x00,0x03,0x00,0x1f,0x40,0x06,0x03,0x02,0x01,0x00, -0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x0c,0x00,0x01,0x01,0x07,0x16,0x00,0x00,0x00,0x08,0x00,0x17,0x02,0xb0,0x2f,0x2b,0x21,0x23,0x11,0x33,0x01,0x84,0xc6,0xc6,0x05,0xb0,0x00,0x00,0x01,0x00,0x4a,0xff,0xeb,0x03,0xbc,0x05,0xb0,0x00,0x10,0x00,0x38,0x40,0x0a,0x0e,0x0c,0x0a,0x09,0x06,0x04,0x01,0x00,0x04,0x07,0x2b,0x4b, -0xb0,0x90,0x50,0x58,0x40,0x21,0x08,0x01,0x03,0x02,0x01,0x15,0x00,0x02,0x00,0x03,0x00,0x02,0x03,0x29,0x00,0x00,0x00,0x07,0x16,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x33,0x11,0x14,0x06,0x23,0x22,0x26,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x02,0xf7,0xc5,0xf7,0xc5, -0xc9,0xed,0x05,0x02,0xbd,0x7e,0x74,0x6d,0x8a,0x05,0xb0,0xfb,0xf6,0xcb,0xf0,0xd5,0xcb,0x06,0x88,0x84,0x9e,0x83,0x00,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0x01,0x05,0xb0,0x00,0x0e,0x00,0x39,0x40,0x0e,0x0e,0x0d,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1e,0x0b,0x01, -0x00,0x03,0x01,0x15,0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x00,0x1d,0x04,0x01,0x02,0x02,0x07,0x16,0x05,0x01,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x33,0x17,0x09,0x01,0x07,0x23,0x01,0xef,0x80,0xc5,0xc5,0x6c,0x02,0x1c,0xde,0x02,0xfd,0xb2,0x02,0x78,0x02,0xef,0x02,0x92, -0xfd,0x6e,0x05,0xb0,0xfd,0x7c,0x02,0x84,0x05,0xfd,0x4f,0xfd,0x0b,0x05,0x00,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x04,0x35,0x05,0xb0,0x00,0x05,0x00,0x28,0x40,0x08,0x05,0x04,0x03,0x02,0x01,0x00,0x03,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x13,0x00,0x02,0x02,0x07,0x16,0x00,0x00,0x00,0x01,0x00,0x02,0x1b,0x00,0x01,0x01,0x08, -0x01,0x17,0x03,0xb0,0x2f,0x2b,0x25,0x21,0x15,0x21,0x11,0x33,0x01,0x6f,0x02,0xc6,0xfc,0x75,0xc5,0x9a,0x9a,0x05,0xb0,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x06,0x48,0x05,0xb0,0x00,0x0f,0x00,0x39,0x40,0x0e,0x0f,0x0e,0x0d,0x0c,0x09,0x08,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1e,0x0b,0x06, -0x02,0x00,0x01,0x01,0x15,0x00,0x00,0x01,0x02,0x01,0x00,0x02,0x29,0x05,0x01,0x01,0x01,0x07,0x16,0x04,0x03,0x02,0x02,0x02,0x08,0x02,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x33,0x01,0x33,0x11,0x23,0x11,0x27,0x01,0x23,0x01,0x07,0x11,0x23,0x11,0x21,0x03,0x7c,0x06,0x01,0xd1,0xf5,0xc5,0x06,0xfe,0x47,0x89,0xfe,0x3a,0x06,0xc5,0x01,0x03, -0x01,0x11,0x04,0x9f,0xfa,0x50,0x04,0x43,0x01,0xfb,0xbc,0x04,0x68,0x01,0xfb,0x99,0x05,0xb0,0x00,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x04,0xf7,0x05,0xb0,0x00,0x0b,0x00,0x2c,0x40,0x0a,0x0b,0x0a,0x07,0x06,0x05,0x04,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x15,0x09,0x03,0x02,0x00,0x02,0x01,0x15,0x03,0x01,0x02, -0x02,0x07,0x16,0x01,0x01,0x00,0x00,0x08,0x00,0x17,0x03,0xb0,0x2f,0x2b,0x21,0x23,0x01,0x07,0x11,0x23,0x11,0x33,0x01,0x37,0x11,0x33,0x04,0xf7,0xc5,0xfd,0x43,0x06,0xc5,0xc5,0x02,0xbd,0x06,0xc5,0x04,0x58,0x02,0xfb,0xaa,0x05,0xb0,0xfb,0xa9,0x02,0x04,0x55,0x00,0x00,0x00,0x02,0x00,0x71,0xff,0xeb,0x05,0x02,0x05,0xc5,0x00,0x0d, -0x00,0x1b,0x00,0x31,0x40,0x0a,0x19,0x17,0x12,0x10,0x0b,0x09,0x04,0x02,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1a,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0d,0x16,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x10,0x00,0x21,0x22,0x00,0x19,0x01,0x10,0x00,0x33, -0x20,0x00,0x11,0x27,0x34,0x02,0x23,0x22,0x02,0x15,0x11,0x14,0x12,0x33,0x32,0x36,0x35,0x05,0x02,0xfe,0xb5,0xfe,0xf8,0xff,0xfe,0xc1,0x01,0x3f,0xff,0x01,0x08,0x01,0x4b,0xc5,0xd8,0xb6,0xac,0xcd,0xcd,0xac,0xb7,0xd7,0x02,0x56,0xfe,0xf5,0xfe,0xa0,0x01,0x60,0x01,0x0b,0x01,0x03,0x01,0x0a,0x01,0x62,0xfe,0x9f,0xfe,0xf5,0x02,0xc8, -0x01,0x00,0xff,0x00,0xc8,0xfe,0xfb,0xca,0xff,0x00,0xff,0xcb,0x00,0x02,0x00,0xaa,0x00,0x00,0x04,0xc3,0x05,0xb0,0x00,0x0a,0x00,0x13,0x00,0x3b,0x40,0x10,0x00,0x00,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x05,0x03,0x02,0x01,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1e,0x00,0x03,0x05,0x01,0x02,0x00,0x03,0x02,0x01,0x00, -0x1d,0x00,0x04,0x04,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x07,0x16,0x00,0x00,0x00,0x08,0x00,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x11,0x23,0x11,0x21,0x32,0x04,0x15,0x14,0x04,0x23,0x25,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x01,0x6f,0xc5,0x02,0x2d,0xe9,0x01,0x03,0xfe,0xfd,0xe9,0xfe,0x98,0x01,0x68,0x94,0x92,0x93,0x93,0xfe,0x98, -0x02,0x48,0xfd,0xb8,0x05,0xb0,0xf0,0xc4,0xc6,0xee,0x9a,0x9f,0x79,0x79,0xa2,0x00,0x00,0x02,0x00,0x71,0xff,0x71,0x05,0x5a,0x05,0xc5,0x00,0x13,0x00,0x21,0x00,0x40,0x40,0x0a,0x1f,0x1d,0x18,0x16,0x11,0x0f,0x0a,0x08,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x29,0x03,0x01,0x03,0x02,0x06,0x04,0x02,0x00,0x03,0x02,0x15,0x05, -0x01,0x00,0x12,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0d,0x16,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x14,0x06,0x07,0x17,0x07,0x27,0x0e,0x01,0x23,0x22,0x00,0x19,0x01,0x10,0x00,0x33,0x20,0x00,0x11,0x27,0x34,0x02,0x23,0x22,0x02,0x15,0x11,0x14,0x12,0x33,0x32, -0x36,0x35,0x05,0x02,0x43,0x3e,0xd9,0x87,0xde,0x46,0xa4,0x5c,0xff,0xfe,0xc1,0x01,0x3f,0xff,0x01,0x08,0x01,0x4b,0xc5,0xd8,0xb6,0xac,0xcd,0xcd,0xac,0xb7,0xd7,0x02,0x56,0x73,0xcd,0x51,0xd3,0x81,0xd5,0x2d,0x2e,0x01,0x60,0x01,0x0b,0x01,0x03,0x01,0x0a,0x01,0x62,0xfe,0x9f,0xfe,0xf5,0x02,0xc8,0x01,0x00,0xff,0x00,0xc8,0xfe,0xfb, -0xca,0xff,0x00,0xff,0xcb,0x00,0x00,0x00,0x00,0x02,0x00,0xaa,0x00,0x00,0x04,0xc6,0x05,0xaf,0x00,0x1a,0x00,0x23,0x00,0x48,0x40,0x12,0x00,0x00,0x23,0x21,0x1d,0x1b,0x00,0x1a,0x00,0x19,0x13,0x12,0x05,0x03,0x02,0x01,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x29,0x0a,0x01,0x03,0x04,0x11,0x01,0x00,0x03,0x02,0x15,0x00,0x04, -0x06,0x01,0x03,0x00,0x04,0x03,0x01,0x00,0x1d,0x00,0x05,0x05,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x07,0x16,0x02,0x01,0x00,0x00,0x08,0x00,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x01,0x1d,0x01,0x14,0x16,0x17,0x15,0x23,0x2e,0x01,0x3d,0x01,0x34,0x26,0x23,0x25,0x21,0x32,0x36,0x35, -0x34,0x26,0x23,0x21,0x01,0x6f,0xc5,0x01,0xf2,0xef,0xfc,0x75,0x70,0x78,0x69,0x1e,0x25,0xcb,0x27,0x16,0x8a,0x74,0xfe,0xaf,0x01,0x19,0xa7,0x93,0x8f,0x97,0xfe,0xd3,0x02,0x77,0xfd,0x89,0x05,0xaf,0xd4,0xca,0x70,0xa6,0x31,0x27,0xaf,0x81,0x89,0x44,0x6c,0x22,0x18,0x22,0x84,0x46,0x85,0x76,0x90,0x9b,0x7f,0x82,0x7b,0x87,0x00,0x00, -0x00,0x01,0x00,0x6d,0xff,0xeb,0x04,0x77,0x05,0xc5,0x00,0x27,0x00,0x4e,0x40,0x0e,0x26,0x24,0x22,0x21,0x1e,0x1c,0x12,0x10,0x0e,0x0d,0x0a,0x08,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x33,0x0c,0x01,0x01,0x02,0x20,0x01,0x05,0x04,0x02,0x15,0x00,0x01,0x02,0x04,0x02,0x01,0x04,0x29,0x00,0x04,0x05,0x02,0x04,0x05,0x27,0x00, -0x02,0x02,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0d,0x16,0x00,0x05,0x05,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17,0x07,0xb0,0x2f,0x2b,0x01,0x34,0x26,0x27,0x2e,0x01,0x35,0x34,0x24,0x33,0x32,0x00,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x01,0x15,0x14,0x04,0x23,0x22,0x24,0x3f,0x01,0x33,0x14, -0x16,0x33,0x32,0x36,0x03,0xb2,0x8e,0xb3,0xde,0xf9,0x01,0x0c,0xd6,0xe6,0x01,0x11,0x04,0x03,0xbc,0xad,0x87,0x8a,0x93,0xa1,0xb5,0xdc,0xe6,0xfe,0xeb,0xdf,0xd3,0xfe,0xbd,0x05,0x02,0xbc,0xd0,0x83,0x8c,0xa3,0x01,0x6f,0x63,0x86,0x2f,0x37,0xd6,0xa2,0xab,0xe4,0xfe,0xfb,0xae,0x06,0x7c,0xa2,0x86,0x6b,0x5f,0x7f,0x30,0x39,0xde,0xa3, -0xb0,0xd6,0xec,0xc6,0x06,0x89,0x95,0x7e,0x00,0x01,0x00,0x25,0x00,0x00,0x04,0xa4,0x05,0xb0,0x00,0x07,0x00,0x2b,0x40,0x0a,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x14,0x02,0x01,0x00,0x00,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x07,0x16,0x00,0x01,0x01,0x08,0x01,0x17,0x03,0xb0,0x2f, -0x2b,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x04,0xa4,0xfe,0x20,0xc5,0xfe,0x26,0x04,0x7f,0x05,0x15,0xfa,0xeb,0x05,0x15,0x9b,0x00,0x00,0x00,0x00,0x01,0x00,0x93,0xff,0xeb,0x04,0xdc,0x05,0xb0,0x00,0x11,0x00,0x30,0x40,0x0e,0x00,0x00,0x00,0x11,0x00,0x11,0x0e,0x0c,0x09,0x08,0x05,0x03,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58, -0x40,0x15,0x04,0x03,0x02,0x01,0x01,0x07,0x16,0x00,0x02,0x02,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x11,0x14,0x00,0x23,0x22,0x00,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x04,0xdc,0xfe,0xc8,0xf6,0xed,0xfe,0xd2,0xc5,0xbf,0x97,0xa0,0xc9,0x05,0xb0,0xfc,0x39,0xf0,0xfe,0xf2, -0x01,0x0f,0xef,0x03,0xc7,0xfc,0x39,0xa7,0xbd,0xbd,0xa7,0x03,0xc7,0x00,0x00,0x00,0x00,0x01,0x00,0x16,0x00,0x00,0x04,0xf9,0x05,0xb0,0x00,0x09,0x00,0x2c,0x40,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x02,0x01,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x15,0x00,0x00,0x01,0x02,0x01,0x00,0x02,0x29,0x03,0x01,0x01,0x01,0x07,0x16, -0x00,0x02,0x02,0x08,0x02,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x17,0x33,0x37,0x01,0x33,0x01,0x23,0x01,0x33,0x02,0x64,0x21,0x06,0x21,0x01,0x78,0xd5,0xfd,0xe3,0xa9,0xfd,0xe3,0xd6,0x01,0x7e,0x79,0x79,0x04,0x32,0xfa,0x50,0x05,0xb0,0x00,0x01,0x00,0x25,0x00,0x00,0x06,0xbf,0x05,0xb0,0x00,0x15,0x00,0x3b,0x40,0x10,0x15,0x14,0x13,0x12, -0x10,0x0f,0x0d,0x0c,0x0b,0x0a,0x08,0x07,0x05,0x04,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1e,0x00,0x04,0x00,0x01,0x00,0x04,0x01,0x29,0x00,0x01,0x03,0x00,0x01,0x03,0x27,0x06,0x02,0x02,0x00,0x00,0x07,0x16,0x05,0x01,0x03,0x03,0x08,0x03,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x1f,0x01,0x37,0x01,0x33,0x01,0x17,0x33,0x37,0x13, -0x33,0x01,0x23,0x01,0x27,0x23,0x07,0x01,0x23,0x01,0x33,0x01,0xce,0x19,0x06,0x22,0x01,0x02,0xc1,0x01,0x04,0x22,0x06,0x1b,0xd0,0xd6,0xfe,0xa0,0xb0,0xfe,0xdd,0x16,0x06,0x15,0xfe,0xd9,0xb0,0xfe,0xa1,0xd5,0x01,0xf9,0xbf,0x01,0xc0,0x03,0xb7,0xfc,0x49,0xc3,0xc3,0x03,0xb7,0xfa,0x50,0x03,0xf2,0x83,0x83,0xfc,0x0e,0x05,0xb0,0x00, -0x00,0x01,0x00,0x42,0x00,0x00,0x04,0xd6,0x05,0xb0,0x00,0x0b,0x00,0x2e,0x40,0x0a,0x0b,0x0a,0x08,0x07,0x05,0x04,0x02,0x01,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x17,0x09,0x06,0x03,0x00,0x04,0x01,0x00,0x01,0x15,0x03,0x01,0x00,0x00,0x07,0x16,0x02,0x01,0x01,0x01,0x08,0x01,0x17,0x03,0xb0,0x2f,0x2b,0x09,0x01,0x33,0x09, -0x01,0x23,0x09,0x01,0x23,0x09,0x01,0x33,0x02,0x8a,0x01,0x54,0xee,0xfe,0x32,0x01,0xd8,0xeb,0xfe,0xa3,0xfe,0xa2,0xee,0x01,0xd8,0xfe,0x32,0xec,0x03,0x78,0x02,0x38,0xfd,0x2e,0xfd,0x22,0x02,0x42,0xfd,0xbe,0x02,0xde,0x02,0xd2,0x00,0x01,0x00,0x28,0x00,0x00,0x04,0xe2,0x05,0xb0,0x00,0x08,0x00,0x2a,0x40,0x08,0x08,0x07,0x05,0x04, -0x02,0x01,0x03,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x15,0x06,0x03,0x00,0x03,0x01,0x00,0x01,0x15,0x02,0x01,0x00,0x00,0x07,0x16,0x00,0x01,0x01,0x08,0x01,0x17,0x03,0xb0,0x2f,0x2b,0x09,0x01,0x33,0x01,0x11,0x23,0x11,0x01,0x33,0x02,0x85,0x01,0x7c,0xe1,0xfe,0x01,0xc4,0xfe,0x09,0xe1,0x02,0xcc,0x02,0xe4,0xfc,0x50,0xfe,0x00, -0x02,0x0f,0x03,0xa1,0x00,0x01,0x00,0x61,0x00,0x00,0x04,0x6d,0x05,0xb0,0x00,0x09,0x00,0x3b,0x40,0x0a,0x08,0x07,0x06,0x05,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x24,0x09,0x01,0x02,0x03,0x04,0x01,0x01,0x00,0x02,0x15,0x00,0x02,0x02,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x07,0x16,0x00,0x00,0x00,0x01, -0x00,0x00,0x1b,0x00,0x01,0x01,0x08,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x25,0x21,0x15,0x21,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x3f,0x03,0x2e,0xfb,0xf4,0x03,0x0a,0xfd,0x01,0x03,0xe0,0x9a,0x9a,0x92,0x04,0x83,0x9b,0x8d,0x00,0x00,0x00,0x01,0x00,0x8f,0xfe,0xc8,0x02,0x10,0x06,0x80,0x00,0x07,0x00,0x38,0x40,0x0a,0x07,0x06,0x05,0x04, -0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x21,0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x00,0x1d,0x00,0x01,0x02,0x02,0x01,0x00,0x00,0x1a,0x00,0x01,0x01,0x02,0x00,0x00,0x1b,0x00,0x02,0x01,0x02,0x00,0x00,0x18,0x04,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x33,0x15,0x21,0x11,0x21,0x02,0x10,0xbc,0xbc,0xfe,0x7f, -0x01,0x81,0x05,0xe5,0xf9,0x7e,0x9b,0x07,0xb8,0x00,0x00,0x00,0x00,0x01,0x00,0x27,0xff,0x83,0x03,0x41,0x05,0xb0,0x00,0x03,0x00,0x1f,0x40,0x06,0x03,0x02,0x01,0x00,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x0c,0x00,0x01,0x00,0x01,0x2c,0x00,0x00,0x00,0x07,0x00,0x17,0x02,0xb0,0x2f,0x2b,0x13,0x33,0x01,0x23,0x27,0xba,0x02, -0x60,0xba,0x05,0xb0,0xf9,0xd3,0x00,0x00,0x00,0x01,0x00,0x0b,0xfe,0xc8,0x01,0x8d,0x06,0x80,0x00,0x07,0x00,0x38,0x40,0x0a,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x21,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x00,0x00,0x1d,0x00,0x02,0x01,0x01,0x02,0x00,0x00,0x1a,0x00,0x02,0x02,0x01, -0x00,0x00,0x1b,0x00,0x01,0x02,0x01,0x00,0x00,0x18,0x04,0xb0,0x2f,0x2b,0x13,0x21,0x11,0x21,0x35,0x33,0x11,0x23,0x0b,0x01,0x82,0xfe,0x7e,0xbd,0xbd,0x06,0x80,0xf8,0x48,0x9b,0x06,0x82,0x00,0x01,0x00,0x3d,0x02,0xd9,0x03,0x18,0x05,0xb0,0x00,0x09,0x00,0x2b,0x40,0x0a,0x08,0x07,0x05,0x04,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b, -0xb0,0x90,0x50,0x58,0x40,0x14,0x00,0x03,0x01,0x00,0x01,0x03,0x00,0x29,0x02,0x01,0x00,0x00,0x2a,0x00,0x01,0x01,0x07,0x01,0x17,0x03,0xb0,0x2f,0x2b,0x13,0x23,0x01,0x33,0x01,0x23,0x03,0x27,0x23,0x07,0xf4,0xb7,0x01,0x2b,0x86,0x01,0x2a,0xb5,0xa6,0x10,0x06,0x10,0x02,0xd9,0x02,0xd7,0xfd,0x29,0x01,0xa3,0x46,0x46,0x00,0x00,0x00, -0x00,0x01,0x00,0x04,0xff,0x66,0x03,0x9f,0x00,0x00,0x00,0x03,0x00,0x2a,0x40,0x06,0x03,0x02,0x01,0x00,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x1a,0x00,0x01,0x01,0x00,0x00,0x00,0x1b,0x00,0x00,0x01,0x00,0x00,0x00,0x18,0x03,0xb0,0x2f,0x2b,0x05,0x21,0x35,0x21,0x03,0x9f,0xfc,0x65, -0x03,0x9b,0x9a,0x9a,0x00,0x01,0x00,0x52,0x04,0xe4,0x01,0xea,0x05,0xee,0x00,0x04,0x00,0x31,0x40,0x06,0x04,0x03,0x01,0x00,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x0c,0x00,0x00,0x01,0x00,0x2c,0x00,0x01,0x01,0x09,0x01,0x17,0x02,0x1b,0x40,0x0a,0x00,0x01,0x00,0x01,0x2b,0x00,0x00,0x00,0x22,0x02,0x59, -0xb0,0x2f,0x2b,0x01,0x23,0x03,0x37,0x33,0x01,0xea,0x9e,0xfa,0x03,0xe6,0x04,0xe4,0x01,0x04,0x06,0x00,0x00,0x02,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x04,0x4e,0x00,0x20,0x00,0x2b,0x00,0xa7,0x40,0x1a,0x22,0x21,0x00,0x00,0x27,0x25,0x21,0x2b,0x22,0x2b,0x00,0x20,0x00,0x20,0x1a,0x18,0x15,0x14,0x12,0x10,0x0d,0x0b,0x07,0x05,0x0a,0x07, -0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x3a,0x16,0x01,0x03,0x02,0x24,0x03,0x02,0x06,0x07,0x02,0x15,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x29,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x01,0x00,0x1d,0x00,0x02,0x02,0x04,0x01,0x00,0x1b,0x00,0x04,0x04,0x10,0x16,0x09,0x01,0x06,0x06,0x00,0x01,0x00,0x1b,0x08,0x05,0x02, -0x00,0x00,0x0e,0x00,0x17,0x07,0x1b,0x40,0x3e,0x16,0x01,0x03,0x02,0x24,0x03,0x02,0x06,0x07,0x02,0x15,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x29,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x01,0x00,0x1d,0x00,0x02,0x02,0x04,0x01,0x00,0x1b,0x00,0x04,0x04,0x10,0x16,0x08,0x01,0x05,0x05,0x08,0x16,0x09,0x01,0x06,0x06,0x00,0x01,0x00,0x1b, -0x00,0x00,0x00,0x0e,0x00,0x17,0x08,0x59,0xb0,0x2f,0x2b,0x21,0x2e,0x01,0x27,0x0e,0x01,0x23,0x22,0x26,0x35,0x34,0x36,0x3b,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x07,0x27,0x26,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x16,0x17,0x25,0x32,0x36,0x37,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x28,0x0a,0x0b,0x01,0x37,0xb1,0x66,0xa9, -0xb1,0xfb,0xd7,0xd6,0x74,0x6a,0x60,0x76,0xbb,0x02,0x07,0xeb,0xba,0xb8,0xe0,0x0c,0x10,0xfd,0xee,0x6b,0xac,0x1a,0xdd,0x77,0x8f,0x5a,0x31,0x4b,0x26,0x4e,0x69,0xad,0x98,0x9b,0xaf,0x6b,0x5f,0x6f,0x60,0x43,0x02,0x06,0x76,0xc4,0xbb,0xb0,0xfd,0xf7,0x3a,0x6c,0x34,0x90,0x6e,0x47,0xb0,0x78,0x51,0x48,0x54,0x00,0x00,0x02,0x00,0x8f, -0xff,0xeb,0x04,0x2b,0x06,0x18,0x00,0x11,0x00,0x1f,0x00,0x7f,0x40,0x0e,0x1d,0x1b,0x16,0x14,0x0f,0x0d,0x0a,0x09,0x08,0x07,0x04,0x02,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x2c,0x0b,0x01,0x04,0x03,0x19,0x18,0x06,0x03,0x05,0x04,0x02,0x15,0x00,0x02,0x02,0x09,0x16,0x00,0x04,0x04,0x03,0x01,0x00,0x1b, -0x00,0x03,0x03,0x10,0x16,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x01,0x01,0x00,0x00,0x0e,0x00,0x17,0x06,0x1b,0x40,0x30,0x0b,0x01,0x04,0x03,0x19,0x18,0x06,0x03,0x05,0x04,0x02,0x15,0x00,0x02,0x02,0x09,0x16,0x00,0x04,0x04,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x10,0x16,0x00,0x01,0x01,0x08,0x16,0x00,0x05,0x05,0x00,0x01,0x00,0x1b, -0x00,0x00,0x00,0x0e,0x00,0x17,0x07,0x59,0xb0,0x2f,0x2b,0x01,0x14,0x02,0x23,0x22,0x26,0x27,0x07,0x23,0x11,0x33,0x11,0x3e,0x01,0x33,0x32,0x12,0x11,0x23,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x1e,0x01,0x33,0x32,0x36,0x35,0x04,0x2b,0xe1,0xc5,0x6c,0x9f,0x34,0x20,0x97,0xc5,0x33,0x97,0x65,0xc8,0xe0,0xc5,0x89,0x8c,0x5b,0x7d,0x25, -0x26,0x7b,0x5e,0x8b,0x88,0x01,0xf4,0xea,0xfe,0xe1,0x55,0x53,0x93,0x06,0x18,0xfd,0xa2,0x48,0x4c,0xfe,0xc0,0xfe,0xfb,0xba,0xeb,0x59,0x4b,0xfe,0x2b,0x50,0x5a,0xc6,0xa3,0x00,0x00,0x00,0x00,0x01,0x00,0x61,0xff,0xeb,0x03,0xd9,0x04,0x4e,0x00,0x1d,0x00,0x53,0x40,0x12,0x01,0x00,0x18,0x16,0x14,0x13,0x10,0x0e,0x09,0x07,0x04,0x03, -0x00,0x1d,0x01,0x1d,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x34,0x12,0x01,0x04,0x05,0x05,0x01,0x00,0x01,0x02,0x15,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x29,0x00,0x01,0x00,0x05,0x01,0x00,0x27,0x00,0x05,0x05,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x10,0x16,0x06,0x01,0x00,0x00,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0e,0x02, -0x17,0x07,0xb0,0x2f,0x2b,0x25,0x32,0x36,0x35,0x33,0x17,0x16,0x06,0x23,0x22,0x02,0x3d,0x01,0x34,0x12,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x02,0x3d,0x5b,0x88,0xb2,0x03,0x04,0xf8,0xa4,0xe4,0xf8,0xf9,0xe3,0xb5,0xe7,0x04,0x02,0xb3,0x81,0x62,0x91,0x85,0x83,0x85,0x79,0x58,0x06,0x8c,0xd9, -0x01,0x36,0xe7,0x2a,0xe5,0x01,0x37,0xe0,0xa3,0x06,0x63,0x8b,0xe1,0xa0,0x2a,0xa3,0xe0,0x00,0x00,0x00,0x00,0x02,0x00,0x62,0xff,0xeb,0x03,0xf5,0x06,0x18,0x00,0x11,0x00,0x1f,0x00,0x85,0x40,0x0e,0x1d,0x1b,0x16,0x14,0x0f,0x0d,0x0a,0x09,0x08,0x07,0x04,0x02,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x2f, -0x06,0x01,0x05,0x00,0x19,0x18,0x02,0x04,0x05,0x0b,0x01,0x02,0x04,0x03,0x15,0x00,0x01,0x01,0x09,0x16,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x10,0x16,0x00,0x04,0x04,0x02,0x01,0x00,0x1b,0x03,0x01,0x02,0x02,0x08,0x02,0x17,0x06,0x1b,0x40,0x33,0x06,0x01,0x05,0x00,0x19,0x18,0x02,0x04,0x05,0x0b,0x01,0x02,0x04,0x03, -0x15,0x00,0x01,0x01,0x09,0x16,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x10,0x16,0x00,0x02,0x02,0x08,0x16,0x00,0x04,0x04,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17,0x07,0x59,0xb0,0x2f,0x2b,0x13,0x10,0x12,0x33,0x32,0x16,0x17,0x11,0x33,0x11,0x23,0x27,0x0e,0x01,0x23,0x22,0x02,0x35,0x33,0x14,0x16,0x33,0x32, -0x36,0x37,0x11,0x2e,0x01,0x23,0x22,0x06,0x15,0x62,0xdf,0xc9,0x5f,0x93,0x34,0xc5,0x97,0x1e,0x35,0x9c,0x67,0xc6,0xe0,0xc5,0x86,0x8d,0x58,0x78,0x26,0x26,0x79,0x55,0x8e,0x87,0x02,0x09,0x01,0x05,0x01,0x40,0x46,0x43,0x02,0x53,0xf9,0xe8,0x89,0x4e,0x50,0x01,0x1f,0xea,0xa4,0xc5,0x50,0x48,0x01,0xf9,0x43,0x4f,0xea,0xbb,0x00,0x00, -0x00,0x02,0x00,0x61,0xff,0xeb,0x03,0xe2,0x04,0x4e,0x00,0x16,0x00,0x1f,0x00,0x54,0x40,0x16,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x11,0x0f,0x0c,0x0b,0x08,0x06,0x00,0x16,0x01,0x16,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x31,0x13,0x0d,0x02,0x03,0x02,0x14,0x01,0x00,0x03,0x02,0x15,0x00,0x05,0x00,0x02,0x03, -0x05,0x02,0x00,0x00,0x1d,0x07,0x01,0x04,0x04,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x10,0x16,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x06,0x01,0x00,0x00,0x0e,0x00,0x17,0x06,0xb0,0x2f,0x2b,0x05,0x22,0x00,0x3d,0x01,0x34,0x00,0x33,0x32,0x12,0x1d,0x01,0x21,0x07,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x0e,0x01,0x03,0x22,0x06,0x07,0x17, -0x21,0x35,0x34,0x26,0x02,0x4f,0xe9,0xfe,0xfb,0x01,0x0d,0xc2,0xd9,0xd9,0xfd,0x4c,0x03,0x90,0x94,0x64,0x97,0x36,0x4d,0x3a,0xbe,0xa5,0x67,0x87,0x0f,0x02,0x01,0xe8,0x74,0x15,0x01,0x2a,0xf3,0x2c,0xe9,0x01,0x31,0xfe,0xf2,0xe0,0x68,0x05,0xa3,0xcb,0x39,0x32,0x80,0x38,0x4d,0x03,0xc8,0x9f,0x7c,0x05,0x10,0x76,0x9a,0x00,0x00,0x00, -0x00,0x01,0x00,0x38,0x00,0x00,0x02,0xc9,0x06,0x2d,0x00,0x17,0x00,0x49,0x40,0x14,0x00,0x00,0x00,0x17,0x00,0x17,0x16,0x15,0x14,0x13,0x10,0x0e,0x09,0x07,0x04,0x03,0x02,0x01,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x28,0x0b,0x01,0x03,0x02,0x01,0x15,0x00,0x03,0x03,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0f,0x16,0x05,0x01, -0x00,0x00,0x01,0x00,0x00,0x1b,0x04,0x01,0x01,0x01,0x0a,0x16,0x07,0x01,0x06,0x06,0x08,0x06,0x17,0x06,0xb0,0x2f,0x2b,0x33,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x1d,0x01,0x33,0x15,0x23,0x11,0xe1,0xa9,0xa9,0xb5,0xa2,0x22,0x45,0x2a,0x18,0x12,0x33,0x1c,0x56,0x54,0xc4,0xc4,0x03, -0xa8,0x92,0x89,0xad,0xbd,0x0b,0x0a,0x96,0x04,0x06,0x67,0x62,0x89,0x92,0xfc,0x58,0x00,0x02,0x00,0x6c,0xfe,0x4b,0x04,0x00,0x04,0x4e,0x00,0x1d,0x00,0x2b,0x00,0x9f,0x40,0x10,0x29,0x27,0x22,0x20,0x1b,0x19,0x14,0x12,0x0d,0x0b,0x08,0x07,0x04,0x02,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x19,0x58,0x40,0x3b,0x25,0x24, -0x06,0x03,0x05,0x06,0x17,0x01,0x04,0x05,0x10,0x01,0x03,0x04,0x0f,0x01,0x02,0x03,0x04,0x15,0x00,0x06,0x06,0x00,0x01,0x00,0x1b,0x01,0x01,0x00,0x00,0x10,0x16,0x00,0x05,0x05,0x04,0x01,0x00,0x1b,0x00,0x04,0x04,0x0e,0x16,0x00,0x03,0x03,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x12,0x02,0x17,0x07,0x1b,0x40,0x3f,0x25,0x24,0x06,0x03, -0x05,0x06,0x17,0x01,0x04,0x05,0x10,0x01,0x03,0x04,0x0f,0x01,0x02,0x03,0x04,0x15,0x00,0x01,0x01,0x0a,0x16,0x00,0x06,0x06,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x10,0x16,0x00,0x05,0x05,0x04,0x01,0x00,0x1b,0x00,0x04,0x04,0x0e,0x16,0x00,0x03,0x03,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x12,0x02,0x17,0x08,0x59,0xb0,0x2f,0x2b,0x13, -0x10,0x12,0x33,0x32,0x16,0x17,0x37,0x33,0x11,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x3d,0x01,0x0e,0x01,0x23,0x22,0x02,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x37,0x11,0x2e,0x01,0x23,0x22,0x06,0x15,0x6c,0xdf,0xc8,0x67,0x9c,0x35,0x18,0x9d,0xf2,0xe4,0x4e,0xb5,0x45,0x1e,0x39,0xa1,0x4e,0x90,0x83,0x35,0x94, -0x61,0xc6,0xdf,0xc5,0x86,0x8c,0x59,0x78,0x27,0x26,0x7a,0x56,0x8d,0x87,0x02,0x09,0x01,0x05,0x01,0x40,0x53,0x4e,0x8d,0xfb,0xc0,0xd0,0xdf,0x2b,0x25,0x99,0x1e,0x25,0x83,0x86,0x7b,0x44,0x46,0x01,0x1f,0xea,0xa3,0xc6,0x51,0x4a,0x01,0xf2,0x45,0x51,0xea,0xbb,0x00,0x00,0x00,0x01,0x00,0x8f,0x00,0x00,0x04,0x00,0x06,0x18,0x00,0x13, -0x00,0x39,0x40,0x0c,0x13,0x12,0x11,0x10,0x0d,0x0b,0x08,0x07,0x04,0x02,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x20,0x0f,0x00,0x02,0x01,0x02,0x01,0x15,0x00,0x04,0x04,0x09,0x16,0x00,0x02,0x02,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x10,0x16,0x03,0x01,0x01,0x01,0x08,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x3e,0x01,0x33,0x32, -0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x33,0x01,0x54,0x38,0xa3,0x63,0xad,0xc1,0xc5,0x73,0x72,0x58,0x82,0x28,0xc5,0xc5,0x03,0xa9,0x4e,0x57,0xd0,0xd8,0xfd,0x5a,0x02,0xa8,0x86,0x80,0x45,0x3e,0xfc,0xd5,0x06,0x18,0x00,0x02,0x00,0x9f,0x00,0x00,0x01,0x64,0x06,0x18,0x00,0x03,0x00,0x07,0x00,0x2f, -0x40,0x0a,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x18,0x00,0x02,0x02,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x09,0x16,0x00,0x01,0x01,0x0a,0x16,0x00,0x00,0x00,0x08,0x00,0x17,0x04,0xb0,0x2f,0x2b,0x21,0x23,0x11,0x33,0x11,0x23,0x35,0x33,0x01,0x64,0xc5,0xc5,0xc5,0xc5,0x04,0x3a,0x01, -0x15,0xc9,0x00,0x00,0x00,0x02,0xff,0xbe,0xfe,0x4b,0x01,0x72,0x06,0x18,0x00,0x0f,0x00,0x13,0x00,0x43,0x40,0x10,0x00,0x00,0x13,0x12,0x11,0x10,0x00,0x0f,0x00,0x0f,0x0c,0x0a,0x05,0x03,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x26,0x07,0x01,0x00,0x01,0x01,0x15,0x00,0x03,0x03,0x04,0x00,0x00,0x1b,0x00,0x04,0x04,0x09,0x16, -0x05,0x01,0x02,0x02,0x0a,0x16,0x00,0x01,0x01,0x00,0x01,0x02,0x1b,0x00,0x00,0x00,0x12,0x00,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x11,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x35,0x11,0x13,0x23,0x35,0x33,0x01,0x72,0xac,0x99,0x1f,0x33,0x1d,0x0e,0x0e,0x34,0x11,0x41,0x4d,0xbf,0xc5,0xc5,0x04,0x3a,0xfb,0x6d,0xa7, -0xb5,0x09,0x09,0x9b,0x05,0x07,0x58,0x63,0x04,0x93,0x01,0x19,0xc5,0x00,0x00,0x00,0x00,0x01,0x00,0x90,0x00,0x00,0x04,0x0b,0x06,0x18,0x00,0x0c,0x00,0x3d,0x40,0x0e,0x0c,0x0b,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x22,0x0a,0x01,0x00,0x03,0x01,0x15,0x00,0x03,0x00,0x00, -0x01,0x03,0x00,0x00,0x00,0x1d,0x00,0x02,0x02,0x09,0x16,0x00,0x04,0x04,0x0a,0x16,0x05,0x01,0x01,0x01,0x08,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x33,0x09,0x01,0x23,0x01,0xba,0x65,0xc5,0xc5,0x63,0x01,0x45,0xec,0xfe,0x77,0x01,0xab,0xe9,0x01,0xf3,0xfe,0x0d,0x06,0x18,0xfc,0x78,0x01,0xaa, -0xfe,0x0d,0xfd,0xb9,0x00,0x01,0x00,0x9f,0x00,0x00,0x01,0x64,0x06,0x18,0x00,0x03,0x00,0x1f,0x40,0x06,0x03,0x02,0x01,0x00,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x0c,0x00,0x01,0x01,0x09,0x16,0x00,0x00,0x00,0x08,0x00,0x17,0x02,0xb0,0x2f,0x2b,0x21,0x23,0x11,0x33,0x01,0x64,0xc5,0xc5,0x06,0x18,0x00,0x00,0x01,0x00,0x8f, -0x00,0x00,0x06,0x6f,0x04,0x4e,0x00,0x23,0x00,0x73,0x40,0x16,0x00,0x00,0x00,0x23,0x00,0x23,0x22,0x21,0x1e,0x1c,0x19,0x18,0x14,0x12,0x0f,0x0e,0x0b,0x09,0x05,0x03,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x19,0x58,0x40,0x22,0x20,0x16,0x07,0x01,0x04,0x02,0x03,0x01,0x15,0x05,0x01,0x03,0x03,0x00,0x01,0x00,0x1b,0x08, -0x07,0x01,0x03,0x00,0x00,0x10,0x16,0x06,0x04,0x02,0x02,0x02,0x08,0x02,0x17,0x04,0x1b,0x40,0x26,0x20,0x16,0x07,0x01,0x04,0x02,0x03,0x01,0x15,0x08,0x01,0x07,0x07,0x0a,0x16,0x05,0x01,0x03,0x03,0x00,0x01,0x00,0x1b,0x01,0x01,0x00,0x00,0x10,0x16,0x06,0x04,0x02,0x02,0x02,0x08,0x02,0x17,0x05,0x59,0xb0,0x2f,0x2b,0x01,0x17,0x3e, -0x01,0x33,0x32,0x16,0x17,0x3e,0x01,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x01,0x3f,0x0e,0x35,0xa3,0x6c,0x6c,0x9b,0x27,0x34,0xa7,0x70,0xa5,0xc0,0xc5,0x6e,0x6d,0x65,0x7d,0x0b,0xc6,0x71,0x6a,0x5a,0x74,0x1f,0xc5,0x04,0x3a,0x8e,0x4d, -0x55,0x64,0x64,0x5d,0x6b,0xe3,0xe4,0xfd,0x79,0x02,0x89,0xa0,0x85,0x8c,0x6b,0x08,0xfd,0x51,0x02,0x89,0x98,0x8d,0x4a,0x43,0xfc,0xdf,0x04,0x3a,0x00,0x01,0x00,0x8f,0x00,0x00,0x03,0xfd,0x04,0x4e,0x00,0x13,0x00,0x63,0x40,0x10,0x00,0x00,0x00,0x13,0x00,0x13,0x12,0x11,0x0e,0x0c,0x09,0x08,0x05,0x03,0x06,0x07,0x2b,0x4b,0xb0,0x90, -0x50,0x58,0x4b,0xb0,0x19,0x58,0x40,0x1d,0x10,0x01,0x02,0x01,0x02,0x01,0x15,0x00,0x02,0x02,0x00,0x01,0x00,0x1b,0x05,0x04,0x02,0x00,0x00,0x10,0x16,0x03,0x01,0x01,0x01,0x08,0x01,0x17,0x04,0x1b,0x40,0x21,0x10,0x01,0x02,0x01,0x02,0x01,0x15,0x05,0x01,0x04,0x04,0x0a,0x16,0x00,0x02,0x02,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x10, -0x16,0x03,0x01,0x01,0x01,0x08,0x01,0x17,0x05,0x59,0xb0,0x2f,0x2b,0x01,0x17,0x3e,0x01,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x01,0x3f,0x0e,0x36,0xa3,0x68,0xaf,0xc0,0xc5,0x71,0x74,0x5b,0x7f,0x25,0xc5,0x04,0x3a,0xa1,0x56,0x5f,0xcd,0xd6,0xfd,0x55,0x02,0xa7,0x8f,0x78,0x49,0x42,0xfc, -0xdd,0x04,0x3a,0x00,0x00,0x02,0x00,0x61,0xff,0xeb,0x04,0x2a,0x04,0x4e,0x00,0x0d,0x00,0x1b,0x00,0x31,0x40,0x0a,0x19,0x17,0x12,0x10,0x0b,0x09,0x04,0x02,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1a,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x10,0x16,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01, -0x17,0x04,0xb0,0x2f,0x2b,0x13,0x34,0x00,0x33,0x32,0x00,0x1d,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x61,0x01,0x04,0xdf,0xe1,0x01,0x05,0xfe,0xfc,0xe0,0xe0,0xfe,0xfb,0xc5,0x91,0x8f,0x8d,0x92,0x93,0x8e,0x8d,0x91,0x02,0x27,0xf0,0x01,0x37,0xfe,0xca,0xf1,0x16, -0xf2,0xfe,0xcc,0x01,0x35,0xf1,0xac,0xe0,0xe0,0xac,0x16,0xaa,0xe2,0xe2,0xaa,0x00,0x00,0x02,0x00,0x8f,0xfe,0x60,0x04,0x29,0x04,0x4e,0x00,0x11,0x00,0x1f,0x00,0x87,0x40,0x0e,0x1d,0x1b,0x16,0x14,0x0f,0x0d,0x0a,0x09,0x08,0x07,0x04,0x02,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x19,0x58,0x40,0x30,0x19,0x18,0x02,0x05, -0x04,0x06,0x01,0x00,0x05,0x02,0x15,0x0b,0x01,0x04,0x01,0x14,0x00,0x04,0x04,0x02,0x01,0x00,0x1b,0x03,0x01,0x02,0x02,0x0a,0x16,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x16,0x00,0x01,0x01,0x0c,0x01,0x17,0x07,0x1b,0x40,0x34,0x19,0x18,0x02,0x05,0x04,0x06,0x01,0x00,0x05,0x02,0x15,0x0b,0x01,0x04,0x01,0x14,0x00, -0x02,0x02,0x0a,0x16,0x00,0x04,0x04,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x10,0x16,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x16,0x00,0x01,0x01,0x0c,0x01,0x17,0x08,0x59,0xb0,0x2f,0x2b,0x01,0x14,0x02,0x23,0x22,0x26,0x27,0x11,0x23,0x11,0x33,0x17,0x3e,0x01,0x33,0x32,0x12,0x11,0x23,0x34,0x26,0x23,0x22,0x06,0x07, -0x11,0x1e,0x01,0x33,0x32,0x36,0x35,0x04,0x29,0xe0,0xc5,0x64,0x97,0x35,0xc5,0x97,0x1f,0x35,0x9e,0x69,0xc9,0xdf,0xc5,0x91,0x8d,0x55,0x78,0x25,0x25,0x78,0x57,0x8c,0x90,0x01,0xf4,0xea,0xfe,0xe1,0x43,0x43,0xfd,0xef,0x05,0xda,0x8c,0x4e,0x52,0xfe,0xc1,0xfe,0xfa,0xb8,0xed,0x4d,0x43,0xfd,0xf5,0x43,0x4b,0xcd,0xa2,0x00,0x00,0x00, -0x00,0x02,0x00,0x62,0xfe,0x60,0x03,0xea,0x04,0x4e,0x00,0x11,0x00,0x1f,0x00,0x85,0x40,0x0e,0x1d,0x1b,0x16,0x14,0x0f,0x0d,0x0a,0x09,0x08,0x07,0x04,0x02,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x19,0x58,0x40,0x2f,0x06,0x01,0x05,0x00,0x19,0x18,0x02,0x04,0x05,0x0b,0x01,0x03,0x04,0x03,0x15,0x00,0x05,0x05,0x00,0x01, -0x00,0x1b,0x01,0x01,0x00,0x00,0x10,0x16,0x00,0x04,0x04,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x16,0x00,0x02,0x02,0x0c,0x02,0x17,0x06,0x1b,0x40,0x33,0x06,0x01,0x05,0x01,0x19,0x18,0x02,0x04,0x05,0x0b,0x01,0x03,0x04,0x03,0x15,0x00,0x01,0x01,0x0a,0x16,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x10,0x16,0x00,0x04, -0x04,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x16,0x00,0x02,0x02,0x0c,0x02,0x17,0x07,0x59,0xb0,0x2f,0x2b,0x13,0x10,0x12,0x33,0x32,0x16,0x17,0x37,0x33,0x11,0x23,0x11,0x0e,0x01,0x23,0x22,0x02,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x37,0x11,0x2e,0x01,0x23,0x22,0x06,0x15,0x62,0xdf,0xc9,0x62,0x96,0x35,0x1c,0x97,0xc5,0x34,0x8e, -0x5b,0xc6,0xe0,0xc5,0x87,0x8c,0x51,0x73,0x27,0x27,0x73,0x4f,0x8d,0x88,0x02,0x09,0x01,0x05,0x01,0x40,0x4b,0x47,0x7e,0xfa,0x26,0x02,0x06,0x3d,0x3e,0x01,0x1f,0xea,0xa4,0xcb,0x48,0x41,0x02,0x22,0x3d,0x46,0xef,0xbb,0x00,0x00,0x00,0x01,0x00,0x8f,0x00,0x00,0x02,0xaa,0x04,0x4e,0x00,0x0f,0x00,0x67,0x40,0x0a,0x0d,0x0b,0x08,0x07, -0x06,0x05,0x02,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x19,0x58,0x40,0x22,0x09,0x01,0x00,0x02,0x04,0x01,0x01,0x00,0x02,0x15,0x0f,0x01,0x02,0x13,0x00,0x00,0x00,0x02,0x01,0x00,0x1b,0x03,0x01,0x02,0x02,0x0a,0x16,0x00,0x01,0x01,0x08,0x01,0x17,0x05,0x1b,0x40,0x26,0x0f,0x01,0x02,0x03,0x09,0x01,0x00,0x02,0x04, -0x01,0x01,0x00,0x03,0x15,0x00,0x02,0x02,0x0a,0x16,0x00,0x00,0x00,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x10,0x16,0x00,0x01,0x01,0x08,0x01,0x17,0x05,0x59,0xb0,0x2f,0x2b,0x01,0x27,0x22,0x06,0x07,0x11,0x23,0x11,0x33,0x17,0x3e,0x01,0x33,0x32,0x16,0x17,0x02,0x8f,0x65,0x4e,0x6b,0x1d,0xc5,0xb0,0x13,0x2e,0x87,0x58,0x16,0x28,0x0d, -0x03,0x8c,0x06,0x4a,0x43,0xfc,0xfb,0x04,0x3a,0x9e,0x54,0x5e,0x07,0x04,0x00,0x00,0x00,0x01,0x00,0x67,0xff,0xeb,0x03,0xc9,0x04,0x4e,0x00,0x27,0x00,0x4e,0x40,0x0e,0x26,0x24,0x22,0x21,0x1e,0x1c,0x12,0x10,0x0e,0x0d,0x0a,0x08,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x33,0x0c,0x01,0x01,0x02,0x20,0x01,0x05,0x04,0x02,0x15, -0x00,0x01,0x02,0x04,0x02,0x01,0x04,0x29,0x00,0x04,0x05,0x02,0x04,0x05,0x27,0x00,0x02,0x02,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x10,0x16,0x00,0x05,0x05,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17,0x07,0xb0,0x2f,0x2b,0x01,0x34,0x26,0x27,0x2e,0x01,0x35,0x34,0x36,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06, -0x15,0x14,0x16,0x17,0x1e,0x01,0x15,0x14,0x06,0x23,0x22,0x26,0x3f,0x01,0x33,0x1e,0x01,0x33,0x32,0x36,0x03,0x04,0x63,0x8a,0xbf,0xcd,0xe1,0xb3,0xb8,0xe4,0x05,0x02,0xbc,0x7b,0x5e,0x68,0x67,0x59,0x8b,0xc7,0xce,0xe9,0xbc,0xcf,0xee,0x06,0x02,0xbc,0x05,0x92,0x62,0x69,0x77,0x01,0x23,0x41,0x52,0x1f,0x29,0x94,0x7c,0x84,0xbc,0xc8, -0x85,0x06,0x46,0x72,0x5e,0x41,0x40,0x46,0x1d,0x2a,0x9a,0x7c,0x90,0xb6,0xd2,0x8c,0x06,0x69,0x61,0x59,0x00,0x01,0x00,0x30,0xff,0xeb,0x02,0x78,0x05,0x3f,0x00,0x17,0x00,0x4d,0x40,0x14,0x00,0x00,0x00,0x17,0x00,0x17,0x16,0x15,0x14,0x13,0x10,0x0e,0x09,0x07,0x04,0x03,0x02,0x01,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2c, -0x0b,0x01,0x02,0x01,0x0c,0x01,0x03,0x02,0x02,0x15,0x07,0x01,0x06,0x00,0x06,0x2b,0x04,0x01,0x01,0x01,0x00,0x00,0x00,0x1b,0x05,0x01,0x00,0x00,0x0a,0x16,0x00,0x02,0x02,0x03,0x01,0x02,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x11,0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x0e,0x01,0x23,0x22, -0x26,0x35,0x11,0x23,0x35,0x33,0x11,0x01,0xa1,0xcd,0xcd,0x3f,0x34,0x11,0x2a,0x0e,0x1b,0x16,0x56,0x2a,0x78,0x8e,0xac,0xac,0x05,0x3f,0xfe,0xfb,0x92,0xfd,0x6f,0x4c,0x3e,0x09,0x05,0x87,0x12,0x17,0x91,0x9b,0x02,0x91,0x92,0x01,0x05,0x00,0x00,0x00,0x00,0x01,0x00,0x8b,0xff,0xeb,0x03,0xfc,0x04,0x3a,0x00,0x13,0x00,0x5d,0x40,0x0c, -0x13,0x12,0x11,0x10,0x0d,0x0b,0x08,0x07,0x04,0x02,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x1c,0x0f,0x00,0x02,0x02,0x01,0x01,0x15,0x03,0x01,0x01,0x01,0x0a,0x16,0x00,0x02,0x02,0x00,0x01,0x00,0x1b,0x04,0x01,0x00,0x00,0x0e,0x00,0x17,0x04,0x1b,0x40,0x20,0x0f,0x00,0x02,0x02,0x01,0x01,0x15,0x03,0x01, -0x01,0x01,0x0a,0x16,0x00,0x04,0x04,0x08,0x16,0x00,0x02,0x02,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17,0x05,0x59,0xb0,0x2f,0x2b,0x25,0x0e,0x01,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x11,0x33,0x11,0x23,0x03,0x3e,0x33,0xa0,0x69,0xb1,0xc6,0xc5,0x66,0x6c,0x69,0x89,0x23,0xc5,0xb1,0xa0,0x57, -0x5e,0xe2,0xef,0x02,0x7e,0xfd,0x80,0xad,0x82,0x55,0x4e,0x03,0x0c,0xfb,0xc6,0x00,0x00,0x01,0x00,0x2e,0x00,0x00,0x03,0xe4,0x04,0x3a,0x00,0x09,0x00,0x2c,0x40,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x02,0x01,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x15,0x00,0x00,0x01,0x02,0x01,0x00,0x02,0x29,0x03,0x01,0x01,0x01,0x0a,0x16, -0x00,0x02,0x02,0x08,0x02,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x17,0x33,0x37,0x13,0x33,0x01,0x23,0x01,0x33,0x01,0xf8,0x11,0x06,0x13,0xf9,0xc9,0xfe,0x72,0x95,0xfe,0x6d,0xca,0x01,0x3f,0x4c,0x4c,0x02,0xfb,0xfb,0xc6,0x04,0x3a,0x00,0x00,0x01,0x00,0x2d,0x00,0x00,0x05,0xdc,0x04,0x3a,0x00,0x15,0x00,0x6b,0x40,0x12,0x15,0x14,0x13,0x12, -0x10,0x0f,0x0d,0x0c,0x0b,0x0a,0x08,0x07,0x05,0x04,0x02,0x01,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x1f,0x58,0x40,0x1f,0x00,0x05,0x01,0x00,0x01,0x05,0x00,0x29,0x02,0x01,0x00,0x04,0x01,0x00,0x04,0x27,0x07,0x03,0x02,0x01,0x01,0x0a,0x16,0x06,0x01,0x04,0x04,0x08,0x04,0x17,0x04,0x1b,0x40,0x25,0x00,0x05,0x01,0x00, -0x01,0x05,0x00,0x29,0x00,0x00,0x02,0x01,0x00,0x02,0x27,0x00,0x02,0x04,0x01,0x02,0x04,0x27,0x07,0x03,0x02,0x01,0x01,0x0a,0x16,0x06,0x01,0x04,0x04,0x08,0x04,0x17,0x05,0x59,0xb0,0x2f,0x2b,0x01,0x17,0x33,0x37,0x13,0x33,0x13,0x17,0x33,0x37,0x13,0x33,0x01,0x23,0x03,0x27,0x23,0x07,0x03,0x23,0x01,0x33,0x01,0xa4,0x19,0x06,0x1a, -0xd8,0x9e,0xd9,0x1c,0x06,0x20,0xa0,0xce,0xfe,0xc6,0x9f,0xd6,0x29,0x06,0x26,0xd2,0x9f,0xfe,0xc6,0xcd,0x01,0x8a,0x8b,0x8b,0x02,0xb0,0xfd,0x50,0x9b,0x9b,0x02,0xb0,0xfb,0xc6,0x02,0x93,0xac,0xac,0xfd,0x6d,0x04,0x3a,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x00,0x03,0xd4,0x04,0x3a,0x00,0x0b,0x00,0x2e,0x40,0x0a,0x0b,0x0a,0x08,0x07, -0x05,0x04,0x02,0x01,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x17,0x09,0x06,0x03,0x00,0x04,0x01,0x00,0x01,0x15,0x03,0x01,0x00,0x00,0x0a,0x16,0x02,0x01,0x01,0x01,0x08,0x01,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x13,0x33,0x09,0x01,0x23,0x0b,0x01,0x23,0x09,0x01,0x33,0x01,0xfe,0xe6,0xe6,0xfe,0xa1,0x01,0x69,0xe2,0xf0,0xf0,0xe4, -0x01,0x69,0xfe,0xa1,0xe3,0x02,0xab,0x01,0x8f,0xfd,0xe9,0xfd,0xdd,0x01,0x99,0xfe,0x67,0x02,0x23,0x02,0x17,0x00,0x00,0x00,0x00,0x01,0x00,0x1a,0xfe,0x4b,0x03,0xe8,0x04,0x3a,0x00,0x15,0x00,0x3f,0x40,0x0c,0x15,0x14,0x10,0x0e,0x09,0x07,0x04,0x03,0x02,0x01,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x26,0x0c,0x01,0x03,0x00, -0x0b,0x01,0x02,0x03,0x02,0x15,0x00,0x00,0x01,0x03,0x01,0x00,0x03,0x29,0x04,0x01,0x01,0x01,0x0a,0x16,0x00,0x03,0x03,0x02,0x01,0x02,0x1b,0x00,0x02,0x02,0x12,0x02,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x17,0x33,0x01,0x33,0x01,0x0e,0x01,0x23,0x22,0x26,0x27,0x37,0x26,0x16,0x33,0x32,0x36,0x3f,0x01,0x01,0x33,0x01,0xda,0x23,0x06,0x01, -0x0a,0xdb,0xfe,0x39,0x29,0x99,0x82,0x18,0x4a,0x14,0x14,0x06,0x53,0x0b,0x3f,0x50,0x1b,0x2f,0xfe,0x6e,0xdc,0x01,0x91,0x88,0x03,0x31,0xfb,0x20,0x6d,0xa2,0x0b,0x05,0x9b,0x01,0x06,0x70,0x44,0x71,0x04,0x24,0x00,0x01,0x00,0x5e,0x00,0x00,0x03,0xba,0x04,0x3a,0x00,0x09,0x00,0x3b,0x40,0x0a,0x08,0x07,0x06,0x05,0x03,0x02,0x01,0x00, -0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x24,0x09,0x01,0x02,0x03,0x04,0x01,0x01,0x00,0x02,0x15,0x00,0x02,0x02,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x0a,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x08,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x25,0x21,0x15,0x21,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x49,0x02,0x71,0xfc, -0xa4,0x02,0x49,0xfd,0xbe,0x03,0x33,0x9a,0x9a,0x8a,0x03,0x14,0x9c,0x86,0x00,0x00,0x00,0x01,0x00,0x3f,0xfe,0x94,0x02,0x9f,0x06,0x3d,0x00,0x1e,0x00,0x3a,0x40,0x06,0x09,0x08,0x07,0x06,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x27,0x17,0x01,0x00,0x01,0x01,0x15,0x10,0x0f,0x02,0x01,0x13,0x1e,0x00,0x02,0x00,0x12,0x00,0x01, -0x00,0x00,0x01,0x01,0x00,0x1a,0x00,0x01,0x01,0x00,0x01,0x00,0x1b,0x00,0x00,0x01,0x00,0x01,0x00,0x18,0x06,0xb0,0x2f,0x2b,0x01,0x2e,0x01,0x3d,0x01,0x34,0x26,0x23,0x35,0x32,0x36,0x3d,0x01,0x34,0x36,0x37,0x17,0x0e,0x01,0x1d,0x01,0x14,0x06,0x07,0x1e,0x01,0x1d,0x01,0x14,0x16,0x17,0x02,0x77,0xc3,0xa4,0x67,0x6a,0x6a,0x67,0xa4, -0xc3,0x28,0x6e,0x5c,0x55,0x55,0x55,0x55,0x5c,0x6e,0xfe,0x94,0x37,0xf0,0xaa,0xcd,0x70,0x7d,0x93,0x7b,0x71,0xce,0xab,0xef,0x37,0x75,0x23,0xb5,0x84,0xce,0x69,0xa0,0x2d,0x2e,0xa1,0x67,0xcd,0x84,0xb3,0x24,0x00,0x01,0x00,0x91,0xfe,0xf2,0x01,0x56,0x05,0xb0,0x00,0x03,0x00,0x21,0x40,0x06,0x03,0x02,0x01,0x00,0x02,0x07,0x2b,0x4b, -0xb0,0x90,0x50,0x58,0x40,0x0e,0x00,0x00,0x00,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x07,0x00,0x17,0x02,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x33,0x01,0x56,0xc5,0xc5,0xfe,0xf2,0x06,0xbe,0x00,0x00,0x01,0x00,0x15,0xfe,0x94,0x02,0x76,0x06,0x3d,0x00,0x1e,0x00,0x3a,0x40,0x06,0x18,0x17,0x16,0x15,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58, -0x40,0x27,0x07,0x01,0x01,0x00,0x01,0x15,0x0f,0x0e,0x02,0x00,0x13,0x1e,0x00,0x02,0x01,0x12,0x00,0x00,0x01,0x01,0x00,0x01,0x00,0x1a,0x00,0x00,0x00,0x01,0x01,0x00,0x1b,0x00,0x01,0x00,0x01,0x01,0x00,0x18,0x06,0xb0,0x2f,0x2b,0x17,0x3e,0x01,0x3d,0x01,0x34,0x36,0x37,0x2e,0x01,0x3d,0x01,0x34,0x26,0x27,0x37,0x1e,0x01,0x1d,0x01, -0x14,0x16,0x33,0x15,0x22,0x06,0x1d,0x01,0x14,0x06,0x07,0x15,0x6d,0x5e,0x5a,0x5e,0x5e,0x5a,0x5e,0x6d,0x29,0xc2,0xa5,0x65,0x6c,0x6c,0x65,0xa5,0xc2,0xf6,0x24,0xb3,0x84,0xcd,0x6b,0xa0,0x2b,0x29,0xa0,0x6d,0xce,0x84,0xb5,0x23,0x75,0x37,0xef,0xab,0xce,0x71,0x7b,0x93,0x7d,0x70,0xcd,0xaa,0xf0,0x37,0x00,0x00,0x00,0x01,0x00,0x80, -0x01,0x91,0x04,0xf0,0x03,0x23,0x00,0x19,0x00,0x44,0x40,0x0a,0x17,0x15,0x11,0x0f,0x0a,0x08,0x04,0x02,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2d,0x19,0x00,0x02,0x01,0x02,0x0d,0x0c,0x02,0x00,0x03,0x02,0x15,0x00,0x02,0x00,0x01,0x03,0x02,0x01,0x01,0x00,0x1d,0x00,0x03,0x00,0x00,0x03,0x01,0x00,0x1a,0x00,0x03,0x03,0x00, -0x01,0x00,0x1b,0x00,0x00,0x03,0x00,0x01,0x00,0x18,0x05,0xb0,0x2f,0x2b,0x01,0x14,0x06,0x23,0x22,0x26,0x27,0x2e,0x01,0x23,0x22,0x06,0x15,0x27,0x34,0x36,0x33,0x32,0x16,0x17,0x1e,0x01,0x33,0x32,0x36,0x35,0x04,0xf0,0xae,0x82,0x5a,0x93,0x55,0x3b,0x62,0x32,0x43,0x5f,0x8d,0xab,0x84,0x58,0x96,0x55,0x3a,0x60,0x34,0x42,0x61,0x02, -0xe4,0x89,0xca,0x42,0x4a,0x30,0x30,0x6a,0x4b,0x12,0x88,0xc1,0x45,0x46,0x33,0x2e,0x72,0x4d,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x06,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x90,0xfe,0x8a,0x01,0x55,0x04,0x3a,0x00,0x03,0x00,0x07,0x00,0x50,0x40,0x0a,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x04,0x07, -0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x1a,0x00,0x02,0x02,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x0a,0x16,0x00,0x01,0x01,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x0c,0x00,0x17,0x04,0x1b,0x40,0x17,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x1c,0x00,0x02,0x02,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x0a,0x02,0x17,0x03, -0x59,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x33,0x11,0x23,0x35,0x33,0x01,0x55,0xc5,0xc5,0xc5,0xc5,0xfe,0x8a,0x03,0xd2,0x01,0x10,0xce,0x00,0x00,0x00,0x00,0x01,0x00,0x61,0xff,0x0b,0x03,0xda,0x05,0x26,0x00,0x23,0x00,0x65,0x40,0x12,0x01,0x00,0x1e,0x1c,0x1a,0x19,0x14,0x13,0x0a,0x09,0x04,0x03,0x00,0x23,0x01,0x23,0x07,0x07,0x2b,0x4b, -0xb0,0x90,0x50,0x58,0x40,0x46,0x15,0x12,0x02,0x05,0x03,0x18,0x01,0x04,0x05,0x05,0x01,0x00,0x01,0x0b,0x08,0x02,0x02,0x00,0x04,0x15,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x29,0x00,0x01,0x00,0x05,0x01,0x00,0x27,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x01,0x00,0x1d,0x06,0x01,0x00,0x02,0x02,0x00,0x01,0x00,0x1a,0x06,0x01,0x00,0x00, -0x02,0x00,0x00,0x1b,0x00,0x02,0x00,0x02,0x00,0x00,0x18,0x07,0xb0,0x2f,0x2b,0x25,0x32,0x36,0x35,0x33,0x17,0x16,0x06,0x07,0x15,0x23,0x35,0x26,0x02,0x3d,0x01,0x34,0x12,0x37,0x35,0x33,0x15,0x1e,0x01,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x02,0x3d,0x5b,0x88,0xb4,0x02,0x03,0xb2,0x83,0xc6,0xb8,0xc5,0xc6, -0xb7,0xc6,0x8c,0xaa,0x03,0x03,0xb4,0x81,0x62,0x91,0x85,0x83,0x85,0x79,0x58,0x05,0x74,0xc6,0x1f,0xed,0xe9,0x1f,0x01,0x28,0xcd,0x2a,0xca,0x01,0x28,0x21,0xe1,0xe3,0x1e,0xd1,0x8a,0x05,0x63,0x8b,0xe1,0xa0,0x2a,0xa3,0xe0,0x00,0x00,0x01,0x00,0x46,0x00,0x00,0x04,0x57,0x05,0xc5,0x00,0x22,0x00,0x5d,0x40,0x1a,0x00,0x00,0x00,0x22, -0x00,0x22,0x21,0x20,0x1d,0x1b,0x19,0x18,0x15,0x13,0x10,0x0f,0x0e,0x0d,0x09,0x08,0x07,0x06,0x05,0x04,0x0b,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x36,0x17,0x01,0x06,0x07,0x01,0x15,0x00,0x06,0x07,0x04,0x07,0x06,0x04,0x29,0x08,0x01,0x04,0x0a,0x09,0x02,0x03,0x00,0x04,0x03,0x00,0x00,0x1d,0x00,0x07,0x07,0x05,0x01,0x00,0x1b, -0x00,0x05,0x05,0x0d,0x16,0x02,0x01,0x00,0x00,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x08,0x01,0x17,0x07,0xb0,0x2f,0x2b,0x01,0x17,0x14,0x06,0x07,0x21,0x07,0x21,0x35,0x33,0x3e,0x01,0x35,0x27,0x23,0x35,0x33,0x03,0x34,0x36,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x13,0x21,0x15,0x01,0xae,0x06,0x1f,0x1d,0x02, -0xdf,0x01,0xfc,0x30,0x0a,0x30,0x30,0x06,0xa4,0x9e,0x0a,0xe0,0xbc,0xc8,0xdc,0x04,0x02,0xbe,0x7e,0x62,0x63,0x74,0x0a,0x01,0xa2,0x02,0x67,0x95,0x5a,0xa3,0x3b,0x9a,0x9a,0x0d,0xc4,0x67,0x95,0x9b,0x01,0x0e,0xcc,0xe9,0xd1,0xac,0x06,0x76,0x72,0x95,0x85,0xfe,0xf2,0x9b,0x00,0x02,0x00,0x68,0xff,0xe5,0x05,0x5a,0x04,0xf1,0x00,0x23, -0x00,0x2f,0x00,0x50,0x40,0x0a,0x2e,0x2c,0x28,0x26,0x16,0x14,0x04,0x02,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x39,0x1a,0x18,0x12,0x10,0x04,0x03,0x01,0x21,0x1b,0x0f,0x09,0x04,0x02,0x03,0x22,0x08,0x06,0x00,0x04,0x00,0x02,0x03,0x15,0x19,0x11,0x02,0x01,0x13,0x23,0x07,0x02,0x00,0x12,0x00,0x01,0x00,0x03,0x02,0x01,0x03, -0x01,0x00,0x1d,0x00,0x02,0x02,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17,0x06,0xb0,0x2f,0x2b,0x25,0x0e,0x01,0x23,0x22,0x26,0x27,0x07,0x27,0x37,0x2e,0x01,0x35,0x34,0x36,0x37,0x27,0x37,0x17,0x3e,0x01,0x33,0x32,0x16,0x17,0x37,0x17,0x07,0x1e,0x01,0x15,0x14,0x06,0x07,0x17,0x07,0x01,0x14,0x12,0x33,0x32,0x12,0x35,0x34, -0x02,0x23,0x22,0x02,0x04,0x49,0x4d,0xb9,0x65,0x65,0xb9,0x4b,0x82,0x8b,0x8a,0x32,0x35,0x39,0x36,0x92,0x8b,0x8f,0x4a,0xb2,0x60,0x61,0xb2,0x4b,0x92,0x8c,0x96,0x34,0x39,0x35,0x30,0x8e,0x8c,0xfc,0x73,0xf1,0xac,0xaa,0xf1,0xf1,0xaa,0xac,0xf1,0x6c,0x3e,0x42,0x41,0x3d,0x84,0x8a,0x8c,0x4c,0xb5,0x63,0x66,0xbc,0x4e,0x95,0x8b,0x92, -0x37,0x3d,0x3e,0x38,0x95,0x8c,0x99,0x4e,0xb9,0x65,0x62,0xb3,0x4c,0x8f,0x8b,0x02,0x7b,0xbc,0xfe,0xf7,0x01,0x09,0xbc,0xba,0x01,0x08,0xfe,0xf8,0x00,0x01,0x00,0x1e,0x00,0x00,0x04,0xaf,0x05,0xb0,0x00,0x16,0x00,0x50,0x40,0x18,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03, -0x02,0x01,0x0b,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2b,0x00,0x01,0x01,0x00,0x01,0x15,0x09,0x01,0x01,0x08,0x01,0x02,0x03,0x01,0x02,0x00,0x02,0x1d,0x07,0x01,0x03,0x06,0x01,0x04,0x05,0x03,0x04,0x00,0x00,0x1d,0x0a,0x01,0x00,0x00,0x07,0x16,0x00,0x05,0x05,0x08,0x05,0x17,0x05,0xb0,0x2f,0x2b,0x09,0x01,0x33,0x01,0x21,0x15, -0x21,0x15,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x01,0x33,0x02,0x67,0x01,0x68,0xe0,0xfe,0x5e,0x01,0x38,0xfe,0x81,0x01,0x7f,0xfe,0x81,0xc5,0xfe,0x89,0x01,0x77,0xfe,0x89,0x01,0x37,0xfe,0x5d,0xe2,0x03,0x19,0x02,0x97,0xfd,0x32,0x7b,0xa7,0x7a,0xfe,0xba,0x01,0x46,0x7a,0xa7,0x7b,0x02,0xce,0x00,0x00, -0x00,0x02,0x00,0x91,0xfe,0xf2,0x01,0x56,0x05,0xb0,0x00,0x03,0x00,0x07,0x00,0x33,0x40,0x0e,0x00,0x00,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x02,0x01,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x18,0x00,0x00,0x04,0x01,0x01,0x00,0x01,0x00,0x00,0x1c,0x00,0x02,0x02,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x07,0x02,0x17,0x03, -0xb0,0x2f,0x2b,0x13,0x11,0x33,0x19,0x01,0x23,0x11,0x33,0x91,0xc5,0xc5,0xc5,0xfe,0xf2,0x03,0x18,0xfc,0xe8,0x03,0xc8,0x02,0xf6,0x00,0x00,0x00,0x00,0x02,0x00,0x5a,0xfe,0x11,0x04,0x7c,0x05,0xc5,0x00,0x33,0x00,0x45,0x00,0x52,0x40,0x0e,0x2c,0x2a,0x28,0x27,0x24,0x22,0x12,0x10,0x0e,0x0d,0x0a,0x08,0x06,0x07,0x2b,0x4b,0xb0,0x90, -0x50,0x58,0x40,0x37,0x26,0x01,0x04,0x05,0x40,0x37,0x1d,0x03,0x04,0x01,0x04,0x0c,0x01,0x02,0x01,0x03,0x15,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x29,0x00,0x01,0x02,0x05,0x01,0x02,0x27,0x00,0x02,0x00,0x00,0x02,0x00,0x01,0x00,0x1c,0x00,0x05,0x05,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0d,0x05,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x14, -0x06,0x07,0x1e,0x01,0x15,0x14,0x04,0x23,0x22,0x24,0x3f,0x02,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x2e,0x01,0x35,0x34,0x36,0x37,0x2e,0x01,0x35,0x34,0x24,0x33,0x32,0x04,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x01,0x25,0x2e,0x01,0x27,0x0e,0x01,0x15,0x14,0x16,0x17,0x1e,0x01,0x17,0x3e,0x01, -0x35,0x34,0x26,0x04,0x7c,0x60,0x57,0x45,0x46,0xfe,0xf6,0xe1,0xdd,0xfe,0xd2,0x05,0x02,0xbc,0xc1,0x87,0x89,0x9d,0x90,0xcc,0xef,0xe2,0x5e,0x57,0x44,0x44,0x01,0x0c,0xe0,0xe9,0x01,0x04,0x04,0x03,0xbc,0x9e,0x8c,0x91,0x96,0x86,0xd3,0xf4,0xdf,0xfd,0xdf,0x2f,0x53,0x24,0x49,0x49,0x88,0xd2,0x38,0x4a,0x21,0x48,0x50,0x93,0x01,0xaf, -0x5e,0x8c,0x28,0x33,0x88,0x62,0xac,0xc3,0xcd,0xdc,0x06,0x02,0x8f,0x87,0x77,0x5b,0x5b,0x65,0x3f,0x3f,0xba,0xb1,0x5b,0x8d,0x29,0x32,0x8b,0x61,0xa6,0xc9,0xdf,0xca,0x06,0x76,0x9e,0x77,0x5b,0x63,0x63,0x3a,0x45,0xb5,0x53,0x0c,0x19,0x0f,0x13,0x64,0x45,0x64,0x67,0x3b,0x11,0x16,0x0c,0x14,0x63,0x45,0x5b,0x6b,0x00,0x02,0x00,0xaa, -0x04,0xe8,0x03,0x5b,0x05,0xb0,0x00,0x03,0x00,0x07,0x00,0x27,0x40,0x0a,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x10,0x02,0x01,0x00,0x00,0x01,0x00,0x00,0x1b,0x03,0x01,0x01,0x01,0x07,0x00,0x17,0x02,0xb0,0x2f,0x2b,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x5b,0xdb,0xdb,0xfe, -0x2a,0xdb,0xdb,0x04,0xe8,0xc8,0xc8,0xc8,0x00,0x03,0x00,0x58,0xff,0xeb,0x05,0xe3,0x05,0xc4,0x00,0x1d,0x00,0x29,0x00,0x35,0x00,0x6f,0x40,0x1a,0x00,0x00,0x34,0x32,0x2e,0x2c,0x28,0x26,0x22,0x20,0x00,0x1d,0x00,0x1d,0x1b,0x19,0x14,0x12,0x10,0x0f,0x0c,0x0a,0x05,0x03,0x0b,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x48,0x0e,0x01, -0x02,0x03,0x01,0x01,0x04,0x05,0x02,0x15,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x29,0x0a,0x01,0x05,0x04,0x03,0x05,0x04,0x27,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x01,0x00,0x1d,0x00,0x04,0x00,0x00,0x06,0x04,0x00,0x01,0x00,0x1d,0x00,0x07,0x07,0x08,0x01,0x00,0x1b,0x00,0x08,0x08,0x0d,0x16,0x00,0x06,0x06,0x09,0x01,0x02,0x1b,0x00, -0x09,0x09,0x0e,0x09,0x17,0x09,0xb0,0x2f,0x2b,0x01,0x17,0x16,0x06,0x23,0x22,0x26,0x3d,0x01,0x34,0x36,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x25,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x03,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x04, -0x57,0x02,0x04,0xb0,0x9d,0xa0,0xbc,0xbc,0xa0,0x9d,0xb1,0x04,0x02,0x92,0x5b,0x5b,0x5e,0x66,0x66,0x5e,0x5b,0x5a,0xfd,0x0c,0x01,0x57,0xf6,0xf5,0x01,0x58,0xfe,0xa8,0xf5,0xf6,0xfe,0xa9,0x79,0x01,0x9e,0x01,0x28,0x01,0x27,0x01,0x9e,0xfe,0x61,0xfe,0xda,0xfe,0xd8,0xfe,0x62,0x02,0x54,0x06,0x97,0x9d,0xd5,0xae,0x77,0xad,0xd6,0x9e, -0x95,0x06,0x5f,0x57,0x8d,0x72,0x78,0x75,0x8c,0x56,0x62,0x85,0xfe,0xf7,0xfe,0x94,0x01,0x6c,0x01,0x09,0x01,0x07,0x01,0x6a,0xfe,0x96,0xfe,0xf9,0x01,0x3b,0x01,0xb0,0xfe,0x50,0xfe,0xc5,0xfe,0xc4,0xfe,0x4e,0x01,0xb2,0x00,0x00,0x00,0x02,0x00,0x78,0x02,0xb4,0x03,0x13,0x05,0xc5,0x00,0x20,0x00,0x2b,0x00,0xd7,0x40,0x18,0x22,0x21, -0x00,0x00,0x27,0x25,0x21,0x2b,0x22,0x2b,0x00,0x20,0x00,0x20,0x1a,0x18,0x12,0x10,0x0d,0x0b,0x07,0x05,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x16,0x58,0x40,0x35,0x16,0x14,0x02,0x01,0x02,0x24,0x01,0x05,0x06,0x03,0x01,0x00,0x05,0x03,0x15,0x08,0x01,0x05,0x07,0x04,0x02,0x00,0x05,0x00,0x01,0x00,0x1c,0x00,0x02,0x02, -0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0d,0x16,0x00,0x06,0x06,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x10,0x06,0x17,0x06,0x1b,0x4b,0xb0,0x23,0x58,0x40,0x33,0x16,0x14,0x02,0x01,0x02,0x24,0x01,0x05,0x06,0x03,0x01,0x00,0x05,0x03,0x15,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x01,0x00,0x1d,0x08,0x01,0x05,0x07,0x04,0x02,0x00,0x05,0x00, -0x01,0x00,0x1c,0x00,0x02,0x02,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0d,0x02,0x17,0x05,0x1b,0x40,0x3a,0x16,0x14,0x02,0x01,0x02,0x24,0x01,0x05,0x06,0x03,0x01,0x04,0x05,0x03,0x15,0x07,0x01,0x04,0x05,0x00,0x05,0x04,0x00,0x29,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x01,0x00,0x1d,0x08,0x01,0x05,0x00,0x00,0x05,0x00,0x01,0x00,0x1c, -0x00,0x02,0x02,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0d,0x02,0x17,0x06,0x59,0x59,0xb0,0x2f,0x2b,0x01,0x2e,0x01,0x27,0x0e,0x01,0x23,0x22,0x26,0x35,0x34,0x36,0x3b,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x2f,0x01,0x26,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x16,0x17,0x25,0x32,0x36,0x37,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0x02, -0x65,0x08,0x0a,0x03,0x21,0x71,0x4d,0x77,0x82,0xa9,0xa1,0x8b,0x3c,0x3a,0x43,0x49,0xa2,0x01,0x06,0xa9,0x8c,0x86,0x9c,0x0c,0x0e,0xfe,0x88,0x33,0x6d,0x12,0x8a,0x4b,0x53,0x3a,0x02,0xc2,0x15,0x30,0x1a,0x2f,0x3e,0x7a,0x6a,0x6e,0x78,0x34,0x3f,0x44,0x36,0x31,0x0d,0x06,0x62,0x82,0x8e,0x86,0xfe,0xc6,0x32,0x58,0x2b,0x7d,0x3c,0x23, -0x6e,0x42,0x2e,0x2d,0x30,0x00,0x00,0x00,0xff,0xff,0x00,0x61,0x00,0x75,0x03,0x6b,0x03,0x92,0x00,0x26,0x03,0x43,0xf5,0xdd,0x01,0x07,0x03,0x43,0x01,0x44,0xff,0xdd,0x00,0x12,0xb1,0x00,0x01,0xb8,0xff,0xdd,0xb0,0x0d,0x2b,0xb1,0x01,0x01,0xb8,0xff,0xdd,0xb0,0x0d,0x2b,0x00,0x01,0x00,0x7f,0x01,0x77,0x03,0xc2,0x03,0x22,0x00,0x05, -0x00,0x56,0x40,0x08,0x05,0x04,0x03,0x02,0x01,0x00,0x03,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x0a,0x58,0x40,0x1d,0x00,0x00,0x01,0x01,0x00,0x20,0x00,0x02,0x01,0x01,0x02,0x00,0x00,0x1a,0x00,0x02,0x02,0x01,0x00,0x00,0x1b,0x00,0x01,0x02,0x01,0x00,0x00,0x18,0x04,0x1b,0x40,0x1c,0x00,0x00,0x01,0x00,0x2c,0x00,0x02,0x01, -0x01,0x02,0x00,0x00,0x1a,0x00,0x02,0x02,0x01,0x00,0x00,0x1b,0x00,0x01,0x02,0x01,0x00,0x00,0x18,0x04,0x59,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x21,0x35,0x21,0x03,0xc2,0xc6,0xfd,0x83,0x03,0x43,0x01,0x77,0x01,0x06,0xa5,0x00,0x00,0xff,0xff,0x00,0xa7,0x02,0x1a,0x02,0xf5,0x02,0xb4,0x02,0x06,0x00,0x10,0x00,0x00,0x00,0x04,0x00,0x58, -0xff,0xeb,0x05,0xe3,0x05,0xc4,0x00,0x0b,0x00,0x17,0x00,0x32,0x00,0x3b,0x00,0x69,0x40,0x1a,0x18,0x18,0x3b,0x39,0x35,0x33,0x18,0x32,0x18,0x31,0x2b,0x2a,0x1d,0x1b,0x1a,0x19,0x16,0x14,0x10,0x0e,0x0a,0x08,0x04,0x02,0x0b,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x42,0x22,0x01,0x07,0x08,0x29,0x01,0x04,0x07,0x02,0x15,0x06,0x01, -0x04,0x07,0x02,0x07,0x04,0x02,0x29,0x00,0x05,0x00,0x09,0x08,0x05,0x09,0x01,0x00,0x1d,0x00,0x08,0x0a,0x01,0x07,0x04,0x08,0x07,0x01,0x00,0x1d,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0d,0x16,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x08,0xb0,0x2f,0x2b,0x13,0x10,0x00,0x21,0x20,0x00,0x11, -0x10,0x00,0x21,0x20,0x00,0x13,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x01,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x01,0x1d,0x01,0x14,0x16,0x17,0x15,0x23,0x2e,0x01,0x3d,0x01,0x34,0x26,0x23,0x27,0x33,0x3e,0x01,0x35,0x34,0x26,0x2b,0x01,0x58,0x01,0x9e,0x01,0x28,0x01,0x27,0x01,0x9e,0xfe,0x61, -0xfe,0xda,0xfe,0xd8,0xfe,0x62,0x79,0x01,0x57,0xf6,0xf4,0x01,0x58,0xfe,0xa9,0xf5,0xf6,0xfe,0xa9,0x01,0xbc,0x95,0x01,0x18,0x98,0xad,0x42,0x3f,0x42,0x3b,0x07,0x0a,0x99,0x09,0x04,0x43,0x4d,0x9f,0x98,0x41,0x5b,0x4f,0x62,0x83,0x02,0xd9,0x01,0x3b,0x01,0xb0,0xfe,0x50,0xfe,0xc5,0xfe,0xc4,0xfe,0x4e,0x01,0xb2,0x01,0x3c,0xfe,0xf6, -0xfe,0x95,0x01,0x6c,0x01,0x09,0x01,0x08,0x01,0x69,0xfe,0x97,0xfe,0xad,0xfe,0xae,0x03,0x52,0x83,0x7e,0x3e,0x5e,0x1f,0x1a,0x6a,0x4b,0x38,0x29,0x41,0x15,0x10,0x15,0x51,0x2a,0x36,0x48,0x44,0x82,0x01,0x3f,0x38,0x49,0x3b,0x00,0x00,0x01,0x00,0x7b,0x05,0x1e,0x03,0x4c,0x05,0xb0,0x00,0x03,0x00,0x21,0x40,0x06,0x03,0x02,0x01,0x00, -0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x0e,0x00,0x00,0x00,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x07,0x00,0x17,0x02,0xb0,0x2f,0x2b,0x01,0x21,0x35,0x21,0x03,0x4c,0xfd,0x2f,0x02,0xd1,0x05,0x1e,0x92,0x00,0x02,0x00,0x80,0x03,0xbf,0x02,0x7d,0x05,0xc5,0x00,0x0b,0x00,0x17,0x00,0x31,0x40,0x0a,0x16,0x14,0x10,0x0e,0x0a,0x08, -0x04,0x02,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1a,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0d,0x16,0x00,0x01,0x01,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0a,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x13,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22, -0x06,0x80,0x98,0x69,0x67,0x95,0x94,0x68,0x6a,0x97,0x83,0x49,0x35,0x34,0x47,0x48,0x33,0x35,0x49,0x04,0xc0,0x6a,0x9b,0x9b,0x6a,0x6c,0x95,0x95,0x6c,0x37,0x48,0x48,0x37,0x37,0x4b,0x4b,0x00,0x02,0x00,0x63,0x00,0x04,0x03,0xf7,0x04,0xf3,0x00,0x0b,0x00,0x0f,0x00,0x43,0x40,0x12,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06, -0x05,0x04,0x03,0x02,0x01,0x00,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x24,0x04,0x01,0x00,0x03,0x01,0x01,0x02,0x00,0x01,0x00,0x00,0x1d,0x00,0x05,0x00,0x02,0x07,0x05,0x02,0x00,0x00,0x1d,0x00,0x07,0x07,0x06,0x00,0x00,0x1b,0x00,0x06,0x06,0x08,0x06,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35, -0x21,0x11,0x33,0x01,0x21,0x35,0x21,0x02,0x91,0x01,0x66,0xfe,0x9a,0xb1,0xfe,0x83,0x01,0x7d,0xb1,0x01,0x3a,0xfc,0xbd,0x03,0x43,0x03,0x58,0x9a,0xfe,0x63,0x01,0x9d,0x9a,0x01,0x9b,0xfb,0x11,0x9b,0x00,0x00,0x00,0x01,0x00,0x71,0x02,0x9b,0x02,0xca,0x05,0xc7,0x00,0x1a,0x00,0x43,0x40,0x0c,0x1a,0x19,0x12,0x10,0x0d,0x0c,0x0a,0x08, -0x01,0x00,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2a,0x0e,0x01,0x02,0x01,0x01,0x15,0x02,0x01,0x04,0x01,0x14,0x00,0x02,0x01,0x04,0x01,0x02,0x04,0x29,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x00,0x1c,0x00,0x01,0x01,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0d,0x01,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x21,0x35,0x01,0x3e,0x01,0x35, -0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x27,0x26,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x0f,0x01,0x17,0x21,0x02,0xca,0xfd,0xb0,0x01,0x2e,0x45,0x2c,0x39,0x3a,0x43,0x49,0xa1,0x02,0x06,0xa8,0x8d,0x87,0x98,0x59,0x74,0x99,0x02,0x01,0x69,0x02,0x9b,0x82,0x01,0x06,0x3c,0x4b,0x2a,0x32,0x3e,0x40,0x32,0x06,0x63,0x8c,0x80,0x74,0x50,0x70, -0x69,0x87,0x06,0x00,0x00,0x01,0x00,0x6a,0x02,0x8f,0x02,0xe4,0x05,0xc6,0x00,0x2a,0x00,0xad,0x40,0x16,0x01,0x00,0x29,0x27,0x23,0x21,0x1f,0x1e,0x1b,0x19,0x0f,0x0d,0x0a,0x09,0x07,0x05,0x00,0x2a,0x01,0x2a,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x1d,0x58,0x40,0x42,0x0b,0x01,0x02,0x01,0x14,0x01,0x07,0x00,0x1d,0x01, -0x06,0x05,0x03,0x15,0x00,0x02,0x01,0x00,0x01,0x02,0x00,0x29,0x00,0x05,0x07,0x06,0x07,0x05,0x06,0x29,0x00,0x06,0x00,0x04,0x06,0x04,0x01,0x00,0x1c,0x00,0x01,0x01,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0d,0x16,0x00,0x07,0x07,0x00,0x01,0x00,0x1b,0x08,0x01,0x00,0x00,0x10,0x07,0x17,0x08,0x1b,0x40,0x40,0x0b,0x01,0x02,0x01,0x14, -0x01,0x07,0x00,0x1d,0x01,0x06,0x05,0x03,0x15,0x00,0x02,0x01,0x00,0x01,0x02,0x00,0x29,0x00,0x05,0x07,0x06,0x07,0x05,0x06,0x29,0x08,0x01,0x00,0x00,0x07,0x05,0x00,0x07,0x01,0x00,0x1d,0x00,0x06,0x00,0x04,0x06,0x04,0x01,0x00,0x1c,0x00,0x01,0x01,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0d,0x01,0x17,0x07,0x59,0xb0,0x2f,0x2b,0x01, -0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x27,0x26,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x01,0x15,0x14,0x06,0x23,0x22,0x26,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x2b,0x01,0x35,0x01,0xa8,0x43,0x41,0x49,0x45,0x38,0x45,0xa2,0x02,0x06,0xa9,0x7e,0x91,0xa8,0x47,0x3e,0x46,0x4c,0xb4,0x92,0x7f, -0xb5,0x06,0x01,0xa3,0x4b,0x3f,0x48,0x54,0x49,0x49,0x84,0x04,0x71,0x39,0x34,0x2b,0x3a,0x30,0x28,0x06,0x5e,0x77,0x77,0x6e,0x37,0x5b,0x1a,0x17,0x60,0x44,0x6f,0x7c,0x74,0x6f,0x06,0x2e,0x39,0x3b,0x30,0x3e,0x39,0x7e,0x00,0x00,0x00,0x01,0x00,0x83,0x04,0xe4,0x02,0x24,0x05,0xee,0x00,0x04,0x00,0x31,0x40,0x06,0x04,0x03,0x01,0x00, -0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x0c,0x00,0x01,0x00,0x01,0x2c,0x00,0x00,0x00,0x09,0x00,0x17,0x02,0x1b,0x40,0x0a,0x00,0x00,0x01,0x00,0x2b,0x00,0x01,0x01,0x22,0x02,0x59,0xb0,0x2f,0x2b,0x01,0x33,0x17,0x01,0x23,0x01,0x3c,0xe6,0x02,0xfe,0xf3,0x94,0x05,0xee,0x06,0xfe,0xfc,0x00,0x01,0x00,0x99, -0xfe,0x60,0x03,0xf2,0x04,0x3a,0x00,0x15,0x00,0x77,0x40,0x12,0x00,0x00,0x00,0x15,0x00,0x15,0x14,0x13,0x10,0x0e,0x0b,0x0a,0x09,0x08,0x05,0x03,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x26,0x07,0x01,0x00,0x01,0x12,0x0c,0x02,0x02,0x00,0x02,0x15,0x06,0x05,0x02,0x01,0x01,0x0a,0x16,0x00,0x00,0x00,0x02, -0x01,0x00,0x1b,0x03,0x01,0x02,0x02,0x08,0x16,0x00,0x04,0x04,0x0c,0x04,0x17,0x05,0x1b,0x40,0x2a,0x07,0x01,0x00,0x01,0x12,0x0c,0x02,0x02,0x00,0x02,0x15,0x06,0x05,0x02,0x01,0x01,0x0a,0x16,0x00,0x02,0x02,0x08,0x16,0x00,0x00,0x00,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x16,0x00,0x04,0x04,0x0c,0x04,0x17,0x06,0x59,0xb0,0x2f, -0x2b,0x01,0x11,0x1e,0x01,0x33,0x32,0x36,0x37,0x11,0x33,0x11,0x23,0x27,0x0e,0x01,0x23,0x22,0x26,0x27,0x11,0x23,0x11,0x01,0x5d,0x02,0x6f,0x64,0x62,0x79,0x20,0xc5,0xb1,0x09,0x2c,0x7f,0x53,0x48,0x6d,0x28,0xc4,0x04,0x3a,0xfd,0x7e,0xb2,0x81,0x48,0x46,0x03,0x27,0xfb,0xc6,0x6c,0x3f,0x42,0x21,0x23,0xfe,0x31,0x05,0xda,0x00,0x00, -0x00,0x01,0x00,0x3f,0x00,0x00,0x03,0x44,0x05,0xb0,0x00,0x0a,0x00,0x2d,0x40,0x0c,0x00,0x00,0x00,0x0a,0x00,0x0a,0x09,0x07,0x03,0x01,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x14,0x00,0x00,0x00,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x07,0x16,0x03,0x01,0x02,0x02,0x08,0x02,0x17,0x03,0xb0,0x2f,0x2b,0x21,0x11,0x23,0x22,0x00, -0x35,0x34,0x00,0x33,0x21,0x11,0x02,0x7f,0x54,0xe9,0xfe,0xfd,0x01,0x03,0xe9,0x01,0x19,0x02,0x08,0x01,0x03,0xd1,0xcf,0x01,0x05,0xfa,0x50,0x00,0x00,0x01,0x00,0xa1,0x02,0x70,0x01,0x67,0x03,0x44,0x00,0x03,0x00,0x2a,0x40,0x06,0x03,0x02,0x01,0x00,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x00,0x01,0x00, -0x00,0x1a,0x00,0x01,0x01,0x00,0x00,0x00,0x1b,0x00,0x00,0x01,0x00,0x00,0x00,0x18,0x03,0xb0,0x2f,0x2b,0x01,0x23,0x35,0x33,0x01,0x67,0xc6,0xc6,0x02,0x70,0xd4,0x00,0x00,0x01,0x00,0x77,0xfe,0x4d,0x01,0xaf,0x00,0x00,0x00,0x0f,0x00,0x58,0x40,0x0c,0x00,0x00,0x00,0x0f,0x00,0x0f,0x09,0x08,0x07,0x06,0x04,0x07,0x2b,0x4b,0xb0,0x90, -0x50,0x58,0x4b,0xb0,0x09,0x58,0x40,0x1c,0x0e,0x01,0x02,0x01,0x02,0x01,0x15,0x03,0x01,0x02,0x01,0x01,0x02,0x1f,0x00,0x01,0x01,0x00,0x01,0x02,0x1b,0x00,0x00,0x00,0x12,0x00,0x17,0x04,0x1b,0x40,0x1b,0x0e,0x01,0x02,0x01,0x02,0x01,0x15,0x03,0x01,0x02,0x01,0x02,0x2b,0x00,0x01,0x01,0x00,0x01,0x02,0x1b,0x00,0x00,0x00,0x12,0x00, -0x17,0x04,0x59,0xb0,0x2f,0x2b,0x21,0x07,0x1e,0x01,0x15,0x14,0x06,0x23,0x27,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x01,0x24,0x0c,0x41,0x56,0x9e,0x93,0x07,0x48,0x58,0x48,0x57,0x20,0x34,0x0b,0x52,0x50,0x60,0x72,0x6d,0x31,0x31,0x30,0x26,0x07,0x87,0x00,0x01,0x00,0x5f,0x02,0x99,0x01,0x8c,0x05,0xc5,0x00,0x05,0x00,0x22,0x40,0x06, -0x03,0x02,0x01,0x00,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x0f,0x05,0x04,0x02,0x01,0x13,0x00,0x01,0x00,0x01,0x2b,0x00,0x00,0x00,0x22,0x03,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x23,0x35,0x25,0x01,0x8c,0xae,0x7f,0x01,0x2d,0x02,0x99,0x02,0x8f,0x86,0x17,0x00,0x00,0x00,0x02,0x00,0x78,0x02,0xb3,0x03,0x2b,0x05,0xc5,0x00,0x0d, -0x00,0x1b,0x00,0x2e,0x40,0x0a,0x19,0x17,0x12,0x10,0x0b,0x09,0x04,0x02,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x17,0x00,0x02,0x00,0x01,0x02,0x01,0x01,0x00,0x1c,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0d,0x03,0x17,0x03,0xb0,0x2f,0x2b,0x13,0x34,0x36,0x33,0x32,0x16,0x1d,0x01,0x14,0x06,0x23,0x22,0x26,0x35, -0x33,0x14,0x16,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x78,0xbc,0x9d,0x9e,0xbc,0xbb,0x9d,0x9e,0xbd,0xad,0x58,0x56,0x53,0x59,0x5a,0x54,0x54,0x58,0x04,0x76,0x94,0xbb,0xbb,0x94,0x75,0x95,0xb9,0xb9,0x95,0x58,0x69,0x6a,0x57,0x75,0x54,0x6b,0x6b,0x54,0xff,0xff,0x00,0x74,0x00,0xaa,0x03,0x83,0x03,0xa2,0x00,0x26, -0x03,0x44,0x16,0x00,0x00,0x07,0x03,0x44,0x01,0x70,0x00,0x00,0xff,0xff,0x00,0xb8,0x00,0x00,0x05,0xe2,0x05,0xc4,0x00,0x27,0x04,0x03,0x00,0x59,0x02,0x98,0x00,0x27,0x03,0x46,0x01,0x18,0x00,0x08,0x01,0x07,0x03,0xff,0x02,0xba,0x00,0x00,0x00,0x11,0xb1,0x00,0x01,0xb8,0x02,0x98,0xb0,0x0d,0x2b,0xb1,0x01,0x01,0xb0,0x08,0xb0,0x0d, -0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0xb8,0x00,0x00,0x05,0xf5,0x05,0xc4,0x00,0x27,0x03,0x46,0x01,0x25,0x00,0x08,0x00,0x27,0x04,0x03,0x00,0x59,0x02,0x98,0x01,0x07,0x04,0x01,0x03,0x2b,0x00,0x00,0x00,0x11,0xb1,0x00,0x01,0xb0,0x08,0xb0,0x0d,0x2b,0xb1,0x01,0x01,0xb8,0x02,0x98,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x7a, -0x00,0x00,0x06,0x9f,0x05,0xc7,0x00,0x27,0x03,0x46,0x01,0xcf,0x00,0x08,0x00,0x27,0x03,0xff,0x03,0x77,0x00,0x00,0x01,0x07,0x04,0x00,0x00,0x10,0x02,0x9b,0x00,0x11,0xb1,0x00,0x01,0xb0,0x08,0xb0,0x0d,0x2b,0xb1,0x03,0x01,0xb8,0x02,0x9b,0xb0,0x0d,0x2b,0x00,0x00,0x00,0x00,0x02,0x00,0x72,0xfe,0x76,0x03,0xad,0x04,0x3b,0x00,0x1a, -0x00,0x1e,0x00,0x84,0x40,0x12,0x00,0x00,0x1e,0x1d,0x1c,0x1b,0x00,0x1a,0x00,0x1a,0x12,0x10,0x0d,0x0c,0x0a,0x08,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x2e,0x58,0x40,0x30,0x0e,0x01,0x00,0x01,0x01,0x15,0x06,0x01,0x03,0x05,0x01,0x05,0x03,0x01,0x29,0x00,0x01,0x00,0x05,0x01,0x00,0x27,0x00,0x05,0x05,0x04,0x00,0x00, -0x1b,0x00,0x04,0x04,0x0a,0x16,0x00,0x00,0x00,0x02,0x01,0x02,0x1b,0x00,0x02,0x02,0x0c,0x02,0x17,0x07,0x1b,0x40,0x2d,0x0e,0x01,0x00,0x01,0x01,0x15,0x06,0x01,0x03,0x05,0x01,0x05,0x03,0x01,0x29,0x00,0x01,0x00,0x05,0x01,0x00,0x27,0x00,0x00,0x00,0x02,0x00,0x02,0x01,0x02,0x1c,0x00,0x05,0x05,0x04,0x00,0x00,0x1b,0x00,0x04,0x04, -0x0a,0x05,0x17,0x06,0x59,0xb0,0x2f,0x2b,0x01,0x0e,0x01,0x07,0x0e,0x01,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x17,0x16,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x3e,0x01,0x35,0x03,0x33,0x15,0x23,0x02,0x85,0x02,0x30,0x65,0x64,0x53,0x70,0x6a,0x5a,0x81,0xbc,0x03,0x02,0xe9,0xb3,0xc6,0xd9,0x8c,0x75,0x35,0x18,0x07,0xce,0xce, -0x02,0xa0,0x92,0x70,0x5b,0x76,0x7e,0x57,0x6a,0x72,0x63,0x60,0x06,0xa1,0xc2,0xc9,0xb4,0x7f,0xd5,0x72,0x35,0x56,0x5c,0x01,0x9b,0xd1,0x00,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x07,0x4b,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xf1,0x01,0x5d,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00, -0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x07,0x47,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0xab,0x01,0x59,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x59,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x07,0x48,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x01,0x52,0x00,0xab,0x01,0x5d,0x00,0x09,0xb1,0x02, -0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x07,0x54,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x01,0x58,0x00,0xa6,0x01,0x61,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x61,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x07,0x0d,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x6a, -0x00,0x86,0x01,0x5d,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x07,0x6f,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x01,0x56,0x01,0x32,0x01,0xaa,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0xaa,0xb0,0x0d,0x2b,0x00,0x00,0x02,0x00,0x0e,0x00,0x00,0x07,0x84,0x05,0xb0,0x00,0x0f, -0x00,0x13,0x00,0x56,0x40,0x14,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x35,0x12,0x01,0x05,0x04,0x01,0x15,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x00,0x00,0x1d,0x00,0x08,0x00,0x01,0x07,0x08,0x01,0x00,0x00,0x1d,0x00,0x04,0x04,0x03, -0x00,0x00,0x1b,0x00,0x03,0x03,0x07,0x16,0x00,0x07,0x07,0x00,0x00,0x00,0x1b,0x02,0x01,0x00,0x00,0x08,0x00,0x17,0x07,0xb0,0x2f,0x2b,0x29,0x01,0x03,0x21,0x03,0x23,0x01,0x21,0x15,0x21,0x13,0x21,0x15,0x21,0x13,0x21,0x01,0x21,0x03,0x27,0x07,0x84,0xfc,0x81,0x0f,0xfd,0xd3,0xc9,0xf2,0x03,0x71,0x03,0xc7,0xfd,0x4d,0x14,0x02,0x4e, -0xfd,0xb8,0x16,0x02,0xc1,0xfa,0xac,0x01,0xbf,0x1f,0x05,0x01,0x5e,0xfe,0xa2,0x05,0xb0,0x9b,0xfe,0x2e,0x9b,0xfd,0xf2,0x01,0x77,0x02,0xc6,0x02,0xff,0xff,0x00,0x76,0xfe,0x44,0x04,0xbf,0x05,0xc5,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0x7a,0x01,0xce,0xff,0xf7,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf7,0xb0,0x0d,0x2b,0x00, -0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x2b,0x07,0x4b,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xd4,0x01,0x5d,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x2b,0x07,0x47,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x8e,0x01,0x59,0x00,0x09,0xb1,0x01, -0x01,0xb8,0x01,0x59,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x2b,0x07,0x48,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x01,0x52,0x00,0x8e,0x01,0x5d,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x2b,0x07,0x0d,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x6a, -0x00,0x69,0x01,0x5d,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0xff,0xdd,0x00,0x00,0x01,0x84,0x07,0x4b,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x43,0xff,0x8b,0x01,0x5d,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xbe,0x00,0x00,0x02,0x68,0x07,0x47,0x02,0x26, -0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x76,0x00,0x44,0x01,0x59,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x59,0xb0,0x0d,0x2b,0x00,0xff,0xff,0xff,0xf0,0x00,0x00,0x02,0x56,0x07,0x48,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x01,0x52,0xff,0x45,0x01,0x5d,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0xff,0xca, -0x00,0x00,0x02,0x7b,0x07,0x0d,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x6a,0xff,0x20,0x01,0x5d,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0x00,0x02,0x00,0x02,0x00,0x00,0x04,0xec,0x05,0xb0,0x00,0x0d,0x00,0x1b,0x00,0x4a,0x40,0x16,0x00,0x00,0x1b,0x1a,0x19,0x17,0x12,0x10,0x0f,0x0e,0x00,0x0d,0x00,0x0c, -0x07,0x05,0x04,0x03,0x02,0x01,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x27,0x07,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x00,0x00,0x1d,0x00,0x06,0x06,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x07,0x16,0x00,0x05,0x05,0x03,0x01,0x00,0x1b,0x08,0x01,0x03,0x03,0x08,0x03,0x17,0x05,0xb0,0x2f,0x2b,0x33,0x11,0x23,0x35,0x33,0x11, -0x21,0x20,0x00,0x11,0x15,0x10,0x00,0x21,0x13,0x21,0x11,0x21,0x32,0x12,0x3d,0x01,0x34,0x02,0x23,0x21,0x11,0x21,0xaa,0xa8,0xa8,0x01,0xca,0x01,0x1d,0x01,0x5b,0xfe,0xa5,0xfe,0xe3,0x0f,0xfe,0xec,0x01,0x05,0xca,0xe9,0xe9,0xca,0xfe,0xfb,0x01,0x14,0x02,0x97,0x9b,0x02,0x7e,0xfe,0xa1,0xfe,0xea,0xc7,0xfe,0xe9,0xfe,0xa3,0x02,0x97, -0xfe,0x03,0x01,0x0a,0xd0,0xc9,0xce,0x01,0x0a,0xfe,0x1d,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xf7,0x07,0x54,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x01,0x58,0x00,0xed,0x01,0x61,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x61,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x02,0x07,0x60,0x02,0x26,0x00,0x32,0x00,0x00, -0x01,0x07,0x00,0x43,0x01,0x23,0x01,0x72,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x72,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x02,0x07,0x5c,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0xdd,0x01,0x6e,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x6e,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x02, -0x07,0x5d,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x01,0x52,0x00,0xdd,0x01,0x72,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x72,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x02,0x07,0x69,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x01,0x58,0x00,0xd8,0x01,0x76,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x76,0xb0,0x0d,0x2b,0x00, -0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x02,0x07,0x22,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x6a,0x00,0xb8,0x01,0x72,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x72,0xb0,0x0d,0x2b,0x00,0x00,0x01,0x00,0x58,0x00,0xe1,0x03,0xe1,0x04,0x79,0x00,0x0b,0x00,0x07,0x40,0x02,0x00,0x07,0x2b,0x00,0x00,0x13,0x09,0x01,0x37,0x09,0x01,0x17, -0x09,0x01,0x07,0x09,0x01,0x58,0x01,0x47,0xfe,0xb9,0x7e,0x01,0x46,0x01,0x47,0x7e,0xfe,0xb8,0x01,0x48,0x7e,0xfe,0xb9,0xfe,0xba,0x01,0x5f,0x01,0x4e,0x01,0x4e,0x7e,0xfe,0xb3,0x01,0x4d,0x7e,0xfe,0xb2,0xfe,0xb2,0x7e,0x01,0x4c,0xfe,0xb4,0x00,0x00,0x00,0x03,0x00,0x71,0xff,0xa2,0x05,0x02,0x05,0xed,0x00,0x19,0x00,0x25,0x00,0x31, -0x00,0x93,0x40,0x0e,0x2f,0x2d,0x23,0x21,0x15,0x14,0x11,0x0f,0x08,0x07,0x04,0x02,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x38,0x13,0x01,0x04,0x02,0x1f,0x16,0x02,0x05,0x04,0x06,0x01,0x00,0x05,0x03,0x15,0x09,0x01,0x05,0x01,0x14,0x00,0x01,0x00,0x01,0x2c,0x00,0x03,0x03,0x09,0x16,0x00,0x04,0x04,0x02, -0x01,0x00,0x1b,0x00,0x02,0x02,0x0d,0x16,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17,0x08,0x1b,0x40,0x38,0x13,0x01,0x04,0x02,0x1f,0x16,0x02,0x05,0x04,0x06,0x01,0x00,0x05,0x03,0x15,0x09,0x01,0x05,0x01,0x14,0x00,0x03,0x02,0x03,0x2b,0x00,0x01,0x00,0x01,0x2c,0x00,0x04,0x04,0x02,0x01,0x00,0x1b,0x00,0x02, -0x02,0x0d,0x16,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17,0x08,0x59,0xb0,0x2f,0x2b,0x01,0x10,0x00,0x21,0x22,0x26,0x27,0x07,0x23,0x37,0x2e,0x01,0x35,0x11,0x10,0x00,0x33,0x32,0x16,0x17,0x37,0x33,0x07,0x1e,0x01,0x15,0x01,0x14,0x16,0x1f,0x01,0x01,0x2e,0x01,0x23,0x22,0x02,0x15,0x21,0x34,0x26,0x2f,0x01, -0x01,0x1e,0x01,0x33,0x32,0x36,0x35,0x05,0x02,0xfe,0xb5,0xfe,0xf8,0x55,0x97,0x40,0x5b,0x95,0x8b,0x54,0x59,0x01,0x3f,0xff,0x5e,0xa9,0x48,0x51,0x95,0x84,0x4d,0x55,0xfc,0x34,0x26,0x23,0x06,0x02,0x20,0x32,0x7c,0x48,0xac,0xcd,0x03,0x07,0x21,0x1e,0x06,0xfd,0xe3,0x2c,0x6a,0x3e,0xb7,0xd7,0x02,0x56,0xfe,0xf5,0xfe,0xa0,0x29,0x28, -0x9a,0xea,0x54,0xec,0x8a,0x01,0x03,0x01,0x0a,0x01,0x62,0x33,0x2e,0x89,0xdd,0x54,0xe2,0x81,0xfe,0xfd,0x55,0x92,0x34,0x01,0x03,0x94,0x29,0x2c,0xff,0x00,0xc8,0x4b,0x86,0x32,0x01,0xfc,0x71,0x22,0x22,0xff,0xcb,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0xff,0xeb,0x04,0xdc,0x07,0x4b,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0x43, -0x01,0x22,0x01,0x5d,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x93,0xff,0xeb,0x04,0xdc,0x07,0x47,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0xdc,0x01,0x59,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x59,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x93,0xff,0xeb,0x04,0xdc,0x07,0x48,0x02,0x26, -0x00,0x38,0x00,0x00,0x01,0x07,0x01,0x52,0x00,0xdc,0x01,0x5d,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x93,0xff,0xeb,0x04,0xdc,0x07,0x0d,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0x6a,0x00,0xb7,0x01,0x5d,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x28, -0x00,0x00,0x04,0xe2,0x07,0x46,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0xa9,0x01,0x58,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x58,0xb0,0x0d,0x2b,0x00,0x00,0x02,0x00,0xa3,0x00,0x00,0x04,0x61,0x05,0xb0,0x00,0x0c,0x00,0x15,0x00,0x45,0x40,0x16,0x0d,0x0d,0x00,0x00,0x0d,0x15,0x0d,0x14,0x10,0x0e,0x00,0x0c,0x00,0x0c, -0x0b,0x0a,0x09,0x07,0x03,0x01,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x22,0x00,0x00,0x07,0x01,0x05,0x04,0x00,0x05,0x01,0x00,0x1d,0x00,0x04,0x00,0x01,0x02,0x04,0x01,0x01,0x00,0x1d,0x06,0x01,0x03,0x03,0x07,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x11,0x21,0x32,0x04,0x15,0x14,0x04,0x23,0x21,0x11, -0x23,0x11,0x13,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x01,0x68,0x01,0x0d,0xe8,0x01,0x04,0xfe,0xfc,0xe8,0xfe,0xf3,0xc5,0xc5,0x01,0x0d,0x93,0x93,0x93,0x93,0x05,0xb0,0xfe,0xdb,0xec,0xbd,0xbe,0xeb,0xfe,0xc7,0x05,0xb0,0xfe,0x41,0xfd,0xe2,0x9c,0x71,0x72,0x9f,0x00,0x00,0x01,0x00,0x89,0xff,0xeb,0x04,0x70,0x06,0x13,0x00,0x27, -0x00,0x6f,0x40,0x0c,0x25,0x23,0x19,0x17,0x12,0x10,0x06,0x04,0x01,0x00,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x25,0x15,0x01,0x03,0x04,0x14,0x01,0x00,0x03,0x02,0x15,0x00,0x04,0x04,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x09,0x16,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x02,0x01,0x00,0x00,0x08,0x00,0x17, -0x05,0x1b,0x40,0x29,0x15,0x01,0x03,0x04,0x14,0x01,0x00,0x03,0x02,0x15,0x00,0x04,0x04,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x09,0x16,0x00,0x00,0x00,0x08,0x16,0x00,0x03,0x03,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0e,0x02,0x17,0x06,0x59,0xb0,0x2f,0x2b,0x21,0x23,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x15,0x14,0x00,0x15, -0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x35,0x34,0x00,0x35,0x34,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x4d,0xc4,0xeb,0xb7,0xa1,0xca,0x81,0x01,0x5b,0xd1,0xb2,0x54,0xb1,0x25,0x2c,0x2b,0x82,0x3d,0x6c,0x66,0xfe,0xa5,0x8d,0x66,0x42,0x68,0x80,0x04,0x3a,0xdf,0xfa,0xac,0xa7,0x76,0xdc,0x39,0x52,0xfe, -0xe4,0x8b,0xa7,0xaa,0x29,0x1e,0x9f,0x1c,0x30,0x5f,0x4e,0x54,0x01,0x1f,0x92,0x50,0xdd,0x4c,0x5d,0x6c,0xa7,0x98,0x00,0x00,0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x06,0x09,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0x94,0x00,0x1b,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x6a, -0xff,0xeb,0x03,0xf3,0x06,0x05,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x4e,0x00,0x17,0x00,0x08,0xb1,0x02,0x01,0xb0,0x17,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x06,0x06,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x01,0x52,0x4e,0x1b,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1b,0xb0,0x0d,0x2b, -0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x06,0x12,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x01,0x58,0x49,0x1f,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1f,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x05,0xcb,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x00,0x6a,0x29,0x1b,0x00,0x08,0xb1,0x02,0x02,0xb0,0x1b,0xb0,0x0d,0x2b, -0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x06,0x2d,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x01,0x56,0x00,0xd5,0x00,0x68,0x00,0x08,0xb1,0x02,0x02,0xb0,0x68,0xb0,0x0d,0x2b,0x00,0x00,0x00,0x03,0x00,0x58,0xff,0xeb,0x06,0x9a,0x04,0x4e,0x00,0x2e,0x00,0x39,0x00,0x42,0x00,0x73,0x40,0x26,0x3b,0x3a,0x30,0x2f,0x01,0x00,0x3f,0x3e, -0x3a,0x42,0x3b,0x42,0x35,0x33,0x2f,0x39,0x30,0x39,0x29,0x27,0x24,0x23,0x20,0x1e,0x1a,0x18,0x12,0x10,0x0d,0x0b,0x07,0x05,0x00,0x2e,0x01,0x2e,0x0f,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x40,0x1c,0x16,0x14,0x03,0x02,0x03,0x32,0x2b,0x25,0x03,0x04,0x07,0x06,0x2c,0x01,0x00,0x07,0x03,0x15,0x0b,0x01,0x02,0x09,0x01,0x06,0x07, -0x02,0x06,0x01,0x00,0x1d,0x0e,0x0a,0x02,0x03,0x03,0x04,0x01,0x00,0x1b,0x05,0x01,0x04,0x04,0x10,0x16,0x0d,0x08,0x02,0x07,0x07,0x00,0x01,0x00,0x1b,0x01,0x0c,0x02,0x00,0x00,0x0e,0x00,0x17,0x06,0xb0,0x2f,0x2b,0x05,0x22,0x26,0x27,0x0e,0x01,0x23,0x22,0x26,0x35,0x34,0x36,0x3b,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x2f,0x01, -0x26,0x36,0x33,0x32,0x16,0x17,0x3e,0x01,0x33,0x32,0x12,0x1d,0x01,0x21,0x07,0x1e,0x01,0x33,0x32,0x36,0x37,0x17,0x0e,0x01,0x25,0x32,0x36,0x37,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x22,0x06,0x07,0x17,0x21,0x35,0x34,0x26,0x05,0x0c,0x88,0xd0,0x42,0x38,0xdf,0xa0,0xaa,0xb9,0xe6,0xdc,0xe5,0x68,0x61,0x67,0x7a,0xbc,0x02,0x05, -0xe6,0xbe,0x72,0xaf,0x32,0x40,0xaf,0x65,0xd6,0xe7,0xfd,0x3b,0x02,0x01,0x9d,0x9b,0x67,0x85,0x4e,0x43,0x35,0xbc,0xfc,0x4a,0x4c,0xa6,0x2b,0xe3,0x78,0x87,0x64,0x03,0x5c,0x71,0x8a,0x0b,0x02,0x01,0xfc,0x78,0x15,0x61,0x5a,0x4f,0x6c,0xae,0x97,0x9d,0xac,0x57,0x6a,0x79,0x6e,0x4e,0x12,0x06,0x8a,0xb5,0x51,0x4d,0x4b,0x53,0xfe,0xfc, -0xe4,0x77,0x05,0x9f,0xc6,0x37,0x33,0x8a,0x2c,0x4e,0x9a,0x57,0x39,0xd6,0x6f,0x50,0x4a,0x5d,0x03,0x2e,0xa9,0x85,0x05,0x1f,0x7a,0x9a,0x00,0x00,0xff,0xff,0x00,0x61,0xfe,0x44,0x03,0xd9,0x04,0x4e,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x00,0x7a,0x01,0x4b,0xff,0xf7,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf7,0xb0,0x0d,0x2b,0x00, -0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xe2,0x06,0x0a,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0x84,0x00,0x1c,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1c,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xe2,0x06,0x06,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x3e,0x00,0x18,0x00,0x08,0xb1,0x02, -0x01,0xb0,0x18,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xe2,0x06,0x07,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x01,0x52,0x3e,0x1c,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1c,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xe2,0x05,0xcc,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x00,0x6a,0x19,0x1c,0x00,0x08, -0xb1,0x02,0x02,0xb0,0x1c,0xb0,0x0d,0x2b,0xff,0xff,0xff,0xb8,0x00,0x00,0x01,0x5e,0x05,0xf4,0x02,0x26,0x00,0xf3,0x00,0x00,0x01,0x07,0x00,0x43,0xff,0x66,0x00,0x06,0x00,0x08,0xb1,0x01,0x01,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x02,0x43,0x05,0xf0,0x02,0x26,0x00,0xf3,0x00,0x00,0x01,0x06,0x00,0x76, -0x1f,0x02,0x00,0x08,0xb1,0x01,0x01,0xb0,0x02,0xb0,0x0d,0x2b,0xff,0xff,0xff,0xcb,0x00,0x00,0x02,0x31,0x05,0xf1,0x02,0x26,0x00,0xf3,0x00,0x00,0x01,0x07,0x01,0x52,0xff,0x20,0x00,0x06,0x00,0x08,0xb1,0x01,0x01,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0xff,0xa5,0x00,0x00,0x02,0x56,0x05,0xb6,0x02,0x26,0x00,0xf3,0x00,0x00, -0x01,0x07,0x00,0x6a,0xfe,0xfb,0x00,0x06,0x00,0x08,0xb1,0x01,0x02,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0x00,0x02,0x00,0x48,0xff,0xeb,0x04,0x30,0x05,0xed,0x00,0x20,0x00,0x2d,0x00,0x4c,0x40,0x0e,0x22,0x21,0x29,0x27,0x21,0x2d,0x22,0x2d,0x0e,0x0c,0x08,0x06,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x31,0x11,0x10,0x02,0x03, -0x01,0x25,0x01,0x02,0x03,0x02,0x15,0x20,0x1f,0x1e,0x1b,0x1a,0x17,0x16,0x15,0x14,0x00,0x0a,0x01,0x13,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x01,0x00,0x1d,0x04,0x01,0x02,0x02,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x16,0x12,0x1d,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x16, -0x17,0x37,0x2e,0x01,0x27,0x05,0x27,0x25,0x2e,0x01,0x27,0x37,0x1e,0x01,0x17,0x37,0x17,0x01,0x32,0x36,0x3d,0x01,0x2e,0x01,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x69,0x5f,0x68,0xfe,0xe0,0xd7,0xda,0xfe,0xe9,0x01,0x14,0xd5,0x5a,0x9f,0x34,0x04,0x09,0x55,0x44,0xfe,0xde,0x4d,0x01,0x00,0x27,0x53,0x2c,0x3c,0x4f,0x90,0x3f,0xda,0x4d, -0xfe,0x11,0x85,0xa9,0x23,0xa1,0x76,0x83,0xa1,0xa4,0x05,0x11,0x68,0xfe,0xed,0xa3,0xdc,0xf5,0xfe,0xc9,0x01,0x18,0xcf,0xe4,0x01,0x1c,0x4a,0x3c,0x05,0x6d,0xb0,0x42,0xa5,0x66,0x92,0x16,0x22,0x0e,0xa4,0x13,0x42,0x2e,0x7d,0x66,0xfb,0x04,0xe4,0xae,0x94,0x3b,0x51,0xd0,0x95,0x84,0xc9,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x03,0xfd, -0x06,0x12,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x06,0x01,0x58,0x60,0x1f,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1f,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x2a,0x06,0x09,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xaf,0x00,0x1b,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x61, -0xff,0xeb,0x04,0x2a,0x06,0x05,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x69,0x00,0x17,0x00,0x08,0xb1,0x02,0x01,0xb0,0x17,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x2a,0x06,0x06,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x01,0x52,0x69,0x1b,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1b,0xb0,0x0d,0x2b, -0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x2a,0x06,0x12,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x01,0x58,0x64,0x1f,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1f,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x2a,0x05,0xcb,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x00,0x6a,0x44,0x1b,0x00,0x08,0xb1,0x02,0x02,0xb0,0x1b,0xb0,0x0d,0x2b, -0x00,0x03,0x00,0x47,0x00,0xb4,0x04,0x2d,0x04,0xb2,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x46,0x40,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2b,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x00,0x00,0x1d,0x00,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x00,0x1d,0x00,0x05, -0x04,0x04,0x05,0x00,0x00,0x1a,0x00,0x05,0x05,0x04,0x00,0x00,0x1b,0x00,0x04,0x05,0x04,0x00,0x00,0x18,0x05,0xb0,0x2f,0x2b,0x01,0x21,0x35,0x21,0x25,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x04,0x2d,0xfc,0x1a,0x03,0xe6,0xfe,0x71,0xc6,0xc6,0xc6,0xc6,0x02,0x55,0xbc,0xd6,0xcb,0xfc,0x02,0xcb,0x00,0x03,0x00,0x61,0xff,0x79,0x04,0x2a, -0x04,0xb9,0x00,0x19,0x00,0x25,0x00,0x31,0x00,0x5e,0x40,0x12,0x2f,0x2d,0x2a,0x29,0x23,0x21,0x1e,0x1d,0x15,0x14,0x11,0x0f,0x08,0x07,0x04,0x02,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x3f,0x09,0x06,0x02,0x05,0x00,0x16,0x13,0x02,0x02,0x07,0x02,0x15,0x00,0x01,0x00,0x01,0x2b,0x00,0x06,0x05,0x04,0x05,0x06,0x04,0x29,0x00, -0x04,0x07,0x05,0x04,0x07,0x27,0x00,0x03,0x02,0x03,0x2c,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x10,0x16,0x00,0x07,0x07,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0e,0x02,0x17,0x09,0xb0,0x2f,0x2b,0x13,0x34,0x00,0x33,0x32,0x16,0x17,0x37,0x33,0x07,0x1e,0x01,0x1d,0x01,0x14,0x00,0x23,0x22,0x26,0x27,0x07,0x23,0x37,0x2e, -0x01,0x35,0x33,0x14,0x16,0x17,0x33,0x01,0x2e,0x01,0x23,0x22,0x06,0x15,0x21,0x34,0x26,0x27,0x23,0x01,0x1e,0x01,0x33,0x32,0x36,0x35,0x61,0x01,0x04,0xdf,0x38,0x67,0x2e,0x4a,0x81,0x68,0x58,0x5e,0xfe,0xfc,0xe0,0x33,0x5c,0x2a,0x48,0x81,0x64,0x60,0x67,0xc5,0x28,0x29,0x06,0x01,0x4c,0x1d,0x43,0x25,0x8d,0x91,0x02,0x3f,0x23,0x20, -0x06,0xfe,0xb9,0x18,0x38,0x21,0x8d,0x92,0x02,0x27,0xf0,0x01,0x37,0x16,0x14,0x95,0xd3,0x4a,0xe8,0x8d,0x16,0xf2,0xfe,0xcc,0x11,0x10,0x93,0xcc,0x47,0xf0,0x95,0x5b,0x97,0x30,0x02,0xa2,0x10,0x12,0xe2,0xaa,0x50,0x8d,0x2f,0xfd,0x69,0x0c,0x0b,0xe0,0xac,0x00,0x00,0x00,0xff,0xff,0x00,0x8b,0xff,0xeb,0x03,0xfc,0x05,0xf4,0x02,0x26, -0x00,0x58,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xad,0x00,0x06,0x00,0x08,0xb1,0x01,0x01,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x8b,0xff,0xeb,0x03,0xfc,0x05,0xf0,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x67,0x00,0x02,0x00,0x08,0xb1,0x01,0x01,0xb0,0x02,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x8b, -0xff,0xeb,0x03,0xfc,0x05,0xf1,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x01,0x52,0x67,0x06,0x00,0x08,0xb1,0x01,0x01,0xb0,0x06,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x8b,0xff,0xeb,0x03,0xfc,0x05,0xb6,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x00,0x6a,0x42,0x06,0x00,0x08,0xb1,0x01,0x02,0xb0,0x06,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x1a, -0xfe,0x4b,0x03,0xe8,0x05,0xf0,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x25,0x00,0x02,0x00,0x08,0xb1,0x01,0x01,0xb0,0x02,0xb0,0x0d,0x2b,0x00,0x00,0x00,0x02,0x00,0x99,0xfe,0x60,0x04,0x33,0x06,0x18,0x00,0x11,0x00,0x1f,0x00,0x4e,0x40,0x0e,0x1d,0x1b,0x16,0x14,0x0f,0x0d,0x0a,0x09,0x08,0x07,0x04,0x02,0x06,0x07, -0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x33,0x0b,0x01,0x04,0x03,0x19,0x18,0x02,0x05,0x04,0x06,0x01,0x00,0x05,0x03,0x15,0x00,0x02,0x02,0x09,0x16,0x00,0x04,0x04,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x10,0x16,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x16,0x00,0x01,0x01,0x0c,0x01,0x17,0x07,0xb0,0x2f,0x2b,0x01,0x14, -0x02,0x23,0x22,0x26,0x27,0x11,0x23,0x11,0x33,0x11,0x3e,0x01,0x33,0x32,0x12,0x11,0x23,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x1e,0x01,0x33,0x32,0x36,0x35,0x04,0x33,0xe0,0xc5,0x64,0x97,0x35,0xc5,0xc5,0x35,0x96,0x62,0xc9,0xdf,0xc5,0x91,0x8d,0x55,0x78,0x25,0x25,0x78,0x57,0x8c,0x90,0x01,0xf4,0xea,0xfe,0xe1,0x43,0x43,0xfd,0xef, -0x07,0xb8,0xfd,0xaa,0x44,0x48,0xfe,0xc1,0xfe,0xfa,0xb8,0xed,0x4d,0x43,0xfd,0xf5,0x43,0x4b,0xcd,0xa2,0xff,0xff,0x00,0x1a,0xfe,0x4b,0x03,0xe8,0x05,0xb6,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x06,0x00,0x6a,0x00,0x06,0x00,0x08,0xb1,0x01,0x02,0xb0,0x06,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x06,0xfa,0x02,0x26, -0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x71,0x00,0xaa,0x01,0x4a,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x4a,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x05,0xb8,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x00,0x71,0x4d,0x08,0x00,0x08,0xb1,0x02,0x01,0xb0,0x08,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3, -0x07,0x4e,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x01,0x54,0x00,0xdc,0x01,0x9e,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x9e,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x06,0x0c,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x01,0x54,0x7f,0x5c,0x00,0x08,0xb1,0x02,0x01,0xb0,0x5c,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x2b, -0xfe,0x50,0x05,0x1a,0x05,0xb0,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x07,0x01,0x57,0x03,0x47,0x00,0x00,0xff,0xff,0x00,0x6a,0xfe,0x50,0x04,0x2a,0x04,0x4e,0x02,0x26,0x00,0x44,0x00,0x00,0x00,0x07,0x01,0x57,0x02,0x57,0x00,0x00,0xff,0xff,0x00,0x76,0xff,0xeb,0x04,0xbf,0x07,0x5c,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0x76, -0x01,0xc9,0x01,0x6e,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x6e,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xd9,0x06,0x05,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x46,0x00,0x17,0x00,0x08,0xb1,0x01,0x01,0xb0,0x17,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x76,0xff,0xeb,0x04,0xbf,0x07,0x5d,0x02,0x26, -0x00,0x26,0x00,0x00,0x01,0x07,0x01,0x52,0x00,0xc9,0x01,0x72,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x72,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xd9,0x06,0x06,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x06,0x01,0x52,0x46,0x1b,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x76,0xff,0xeb,0x04,0xbf, -0x07,0x22,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x01,0x55,0x01,0x99,0x01,0x72,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x72,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xd9,0x05,0xcb,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x01,0x55,0x01,0x16,0x00,0x1b,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0x00,0x00, -0xff,0xff,0x00,0x76,0xff,0xeb,0x04,0xbf,0x07,0x5e,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x01,0x53,0x00,0xe0,0x01,0x73,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x73,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xd9,0x06,0x07,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x06,0x01,0x53,0x5d,0x1c,0x00,0x08,0xb1,0x01,0x01,0xb0, -0x1c,0xb0,0x0d,0x2b,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xec,0x07,0x49,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x01,0x53,0x00,0x9d,0x01,0x5e,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x5e,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x62,0xff,0xeb,0x05,0x1d,0x06,0x18,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x03,0x63,0x03,0xdd,0x05,0x25, -0x00,0x09,0xb1,0x02,0x01,0xb8,0x05,0x25,0xb0,0x0d,0x2b,0x00,0x00,0x02,0x00,0x02,0x00,0x00,0x04,0xec,0x05,0xb0,0x00,0x0d,0x00,0x1b,0x00,0x4a,0x40,0x16,0x00,0x00,0x1b,0x1a,0x19,0x17,0x12,0x10,0x0f,0x0e,0x00,0x0d,0x00,0x0c,0x07,0x05,0x04,0x03,0x02,0x01,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x27,0x07,0x01,0x01,0x04, -0x01,0x00,0x05,0x01,0x00,0x00,0x00,0x1d,0x00,0x06,0x06,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x07,0x16,0x00,0x05,0x05,0x03,0x01,0x00,0x1b,0x08,0x01,0x03,0x03,0x08,0x03,0x17,0x05,0xb0,0x2f,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x20,0x00,0x11,0x15,0x10,0x00,0x21,0x13,0x21,0x11,0x21,0x32,0x12,0x3d,0x01,0x34,0x02,0x23,0x21, -0x11,0x21,0xaa,0xa8,0xa8,0x01,0xca,0x01,0x1d,0x01,0x5b,0xfe,0xa5,0xfe,0xe3,0x0f,0xfe,0xec,0x01,0x05,0xca,0xe9,0xe9,0xca,0xfe,0xfb,0x01,0x14,0x02,0x97,0x9b,0x02,0x7e,0xfe,0xa1,0xfe,0xea,0xc7,0xfe,0xe9,0xfe,0xa3,0x02,0x97,0xfe,0x03,0x01,0x0a,0xd0,0xc9,0xce,0x01,0x0a,0xfe,0x1d,0x00,0x00,0x02,0x00,0x62,0xff,0xeb,0x04,0xba, -0x06,0x18,0x00,0x19,0x00,0x27,0x00,0xa5,0x40,0x16,0x25,0x23,0x1e,0x1c,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x0f,0x0d,0x08,0x06,0x03,0x02,0x01,0x00,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x3b,0x11,0x01,0x09,0x03,0x21,0x20,0x02,0x08,0x09,0x04,0x01,0x01,0x08,0x03,0x15,0x07,0x01,0x05,0x04,0x01, -0x00,0x03,0x05,0x00,0x00,0x00,0x1d,0x00,0x06,0x06,0x09,0x16,0x00,0x09,0x09,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x10,0x16,0x00,0x08,0x08,0x01,0x01,0x00,0x1b,0x02,0x01,0x01,0x01,0x08,0x01,0x17,0x07,0x1b,0x40,0x3f,0x11,0x01,0x09,0x03,0x21,0x20,0x02,0x08,0x09,0x04,0x01,0x01,0x08,0x03,0x15,0x07,0x01,0x05,0x04,0x01,0x00,0x03, -0x05,0x00,0x00,0x00,0x1d,0x00,0x06,0x06,0x09,0x16,0x00,0x09,0x09,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x10,0x16,0x00,0x01,0x01,0x08,0x16,0x00,0x08,0x08,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0e,0x02,0x17,0x08,0x59,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x23,0x27,0x0e,0x01,0x23,0x22,0x02,0x3d,0x01,0x10,0x12,0x33,0x32,0x16,0x17,0x11, -0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x11,0x2e,0x01,0x23,0x22,0x06,0x15,0x04,0xba,0xc5,0x97,0x1e,0x35,0x9c,0x67,0xc6,0xe0,0xdf,0xc9,0x5f,0x93,0x34,0xf7,0xf7,0xc5,0xc5,0xfc,0x6d,0x86,0x8d,0x58,0x78,0x26,0x26,0x79,0x55,0x8e,0x87,0x04,0xcf,0xfb,0x31,0x89,0x4e,0x50,0x01,0x1f,0xea,0x15,0x01, -0x05,0x01,0x40,0x46,0x43,0x01,0x0a,0x9b,0xae,0xae,0xfc,0x8a,0xa4,0xc5,0x50,0x48,0x01,0xf9,0x43,0x4f,0xea,0xbb,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x2b,0x06,0xfa,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x71,0x00,0x8d,0x01,0x4a,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x4a,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61, -0xff,0xeb,0x03,0xe2,0x05,0xb9,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x00,0x71,0x3d,0x09,0x00,0x08,0xb1,0x02,0x01,0xb0,0x09,0xb0,0x0d,0x2b,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x2b,0x07,0x4e,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x01,0x54,0x00,0xbf,0x01,0x9e,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x9e,0xb0,0x0d,0x2b,0x00, -0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xe2,0x06,0x0d,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x01,0x54,0x6f,0x5d,0x00,0x08,0xb1,0x02,0x01,0xb0,0x5d,0xb0,0x0d,0x2b,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x2b,0x07,0x0d,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x01,0x55,0x01,0x5e,0x01,0x5d,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5d, -0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xe2,0x05,0xcc,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x01,0x55,0x01,0x0e,0x00,0x1c,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1c,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0xaa,0xfe,0x50,0x04,0x2b,0x05,0xb0,0x02,0x26,0x00,0x28,0x00,0x00,0x00,0x07,0x01,0x57,0x01,0x29,0x00,0x00, -0xff,0xff,0x00,0x61,0xfe,0x8c,0x03,0xe2,0x04,0x4e,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x01,0x57,0x01,0xf0,0x00,0x3c,0x00,0x08,0xb1,0x02,0x01,0xb0,0x3c,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x2b,0x07,0x49,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x01,0x53,0x00,0xa5,0x01,0x5e,0x00,0x09,0xb1,0x01, -0x01,0xb8,0x01,0x5e,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xe2,0x06,0x08,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x01,0x53,0x55,0x1d,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1d,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x79,0xff,0xeb,0x04,0xc1,0x07,0x5d,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x01,0x52,0x00,0xc0,0x01,0x72, -0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x72,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6c,0xfe,0x4b,0x04,0x00,0x06,0x06,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x06,0x01,0x52,0x5a,0x1b,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x79,0xff,0xeb,0x04,0xc1,0x07,0x63,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x01,0x54, -0x00,0xf1,0x01,0xb3,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0xb3,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6c,0xfe,0x4b,0x04,0x00,0x06,0x0c,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x01,0x54,0x00,0x8b,0x00,0x5c,0x00,0x08,0xb1,0x02,0x01,0xb0,0x5c,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x79,0xff,0xeb,0x04,0xc1,0x07,0x22,0x02,0x26, -0x00,0x2a,0x00,0x00,0x01,0x07,0x01,0x55,0x01,0x90,0x01,0x72,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x72,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6c,0xfe,0x4b,0x04,0x00,0x05,0xcb,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x01,0x55,0x01,0x2a,0x00,0x1b,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x79, -0xfe,0x11,0x04,0xc1,0x05,0xc5,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0xa5,0xfe,0x97,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0x97,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6c,0xfe,0x4b,0x04,0x00,0x06,0x70,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x03,0x73,0x01,0x2e,0x00,0x59,0x00,0x08,0xb1,0x02,0x01,0xb0,0x59,0xb0, -0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xf7,0x07,0x48,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x01,0x52,0x00,0xeb,0x01,0x5d,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x04,0x00,0x07,0x47,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x01,0x52,0x00,0x20,0x01,0x5c, -0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5c,0xb0,0x0d,0x2b,0x00,0x00,0x02,0x00,0x1f,0x00,0x00,0x05,0x8f,0x05,0xb0,0x00,0x13,0x00,0x17,0x00,0x4d,0x40,0x1a,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x0c,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x26, -0x08,0x06,0x02,0x00,0x0b,0x05,0x02,0x01,0x0a,0x00,0x01,0x00,0x00,0x1d,0x00,0x0a,0x00,0x03,0x02,0x0a,0x03,0x00,0x00,0x1d,0x09,0x01,0x07,0x07,0x07,0x16,0x04,0x01,0x02,0x02,0x08,0x02,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x01,0x21,0x35, -0x21,0x04,0xff,0x90,0x90,0xc5,0xfd,0x3d,0xc5,0x93,0x93,0xc5,0x02,0xc3,0xc5,0xfc,0x78,0x02,0xc3,0xfd,0x3d,0x04,0x91,0x91,0xfc,0x00,0x02,0x83,0xfd,0x7d,0x04,0x00,0x91,0x01,0x1f,0xfe,0xe1,0x01,0x1f,0xfd,0x6e,0xe2,0x00,0x00,0x00,0x01,0xff,0xe4,0x00,0x00,0x04,0x00,0x06,0x18,0x00,0x1b,0x00,0x4d,0x40,0x14,0x1b,0x1a,0x19,0x18, -0x17,0x16,0x15,0x14,0x13,0x12,0x0f,0x0d,0x0a,0x09,0x06,0x04,0x01,0x00,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2c,0x11,0x02,0x02,0x02,0x03,0x01,0x15,0x08,0x01,0x06,0x05,0x01,0x00,0x01,0x06,0x00,0x00,0x00,0x1d,0x00,0x07,0x07,0x09,0x16,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x10,0x16,0x04,0x01,0x02,0x02, -0x08,0x02,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x3e,0x01,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x02,0x65,0xfe,0xef,0x38,0xa3,0x63,0xad,0xc1,0xc5,0x73,0x72,0x58,0x82,0x28,0xc5,0xab,0xab,0xc5,0x01,0x11,0x04,0xcf,0xfe,0xda,0x4e,0x57,0xd0,0xd8, -0xfd,0x5a,0x02,0xa8,0x86,0x80,0x45,0x3e,0xfc,0xd5,0x04,0xcf,0x9b,0xae,0xae,0x00,0xff,0xff,0xff,0xc7,0x00,0x00,0x02,0x7d,0x07,0x54,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x01,0x58,0xff,0x40,0x01,0x61,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x61,0xb0,0x0d,0x2b,0x00,0xff,0xff,0xff,0xa2,0x00,0x00,0x02,0x58,0x05,0xfd,0x02,0x26, -0x00,0xf3,0x00,0x00,0x01,0x07,0x01,0x58,0xff,0x1b,0x00,0x0a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x0a,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0xff,0xbf,0x00,0x00,0x02,0x90,0x06,0xfa,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x71,0xff,0x44,0x01,0x4a,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x4a,0xb0,0x0d,0x2b,0x00,0xff,0xff,0xff,0x9a, -0x00,0x00,0x02,0x6b,0x05,0xa4,0x02,0x26,0x00,0xf3,0x00,0x00,0x01,0x07,0x00,0x71,0xff,0x1f,0xff,0xf4,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf4,0xb0,0x0d,0x2b,0x00,0xff,0xff,0xff,0xf7,0x00,0x00,0x02,0x4e,0x07,0x4e,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x01,0x54,0xff,0x76,0x01,0x9e,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x9e, -0xb0,0x0d,0x2b,0x00,0xff,0xff,0xff,0xd2,0x00,0x00,0x02,0x29,0x05,0xf7,0x02,0x26,0x00,0xf3,0x00,0x00,0x01,0x07,0x01,0x54,0xff,0x51,0x00,0x47,0x00,0x08,0xb1,0x01,0x01,0xb0,0x47,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x2d,0xfe,0x50,0x01,0xbc,0x05,0xb0,0x02,0x26,0x00,0x2c,0x00,0x00,0x00,0x06,0x01,0x57,0xe9,0x00,0x00,0x00, -0xff,0xff,0x00,0x0d,0xfe,0x50,0x01,0x9c,0x06,0x18,0x02,0x26,0x00,0x4c,0x00,0x00,0x00,0x06,0x01,0x57,0xc9,0x00,0x00,0x00,0xff,0xff,0x00,0xb4,0x00,0x00,0x01,0x8e,0x07,0x0d,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x01,0x55,0x00,0x14,0x01,0x5d,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0x00,0x01,0x00,0x99, -0x00,0x00,0x01,0x5e,0x04,0x3a,0x00,0x03,0x00,0x1f,0x40,0x06,0x03,0x02,0x01,0x00,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x0c,0x00,0x01,0x01,0x0a,0x16,0x00,0x00,0x00,0x08,0x00,0x17,0x02,0xb0,0x2f,0x2b,0x21,0x23,0x11,0x33,0x01,0x5e,0xc5,0xc5,0x04,0x3a,0x00,0xff,0xff,0x00,0xbe,0xff,0xeb,0x05,0xff,0x05,0xb0,0x00,0x26, -0x00,0x2c,0x00,0x00,0x00,0x07,0x00,0x2d,0x02,0x43,0x00,0x00,0xff,0xff,0x00,0x9f,0xfe,0x4b,0x03,0x76,0x06,0x18,0x00,0x26,0x00,0x4c,0x00,0x00,0x00,0x07,0x00,0x4d,0x02,0x04,0x00,0x00,0xff,0xff,0x00,0x4a,0xff,0xeb,0x04,0x85,0x07,0x3c,0x02,0x26,0x00,0x2d,0x00,0x00,0x01,0x07,0x01,0x52,0x01,0x74,0x01,0x51,0x00,0x09,0xb1,0x01, -0x01,0xb8,0x01,0x51,0xb0,0x0d,0x2b,0x00,0xff,0xff,0xff,0xbc,0xfe,0x4b,0x02,0x43,0x05,0xde,0x02,0x26,0x01,0x50,0x00,0x00,0x01,0x07,0x01,0x52,0xff,0x32,0xff,0xf3,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf3,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xaa,0xfe,0x22,0x05,0x01,0x05,0xb0,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x03,0x63, -0x01,0x78,0xfe,0xa8,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0xa8,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x90,0xfe,0x24,0x04,0x0b,0x06,0x18,0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0x1f,0xfe,0xaa,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0xaa,0xb0,0x0d,0x2b,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x04,0x40,0x04,0x3a,0x00,0x0e, -0x00,0x39,0x40,0x0e,0x0e,0x0d,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1e,0x0b,0x01,0x00,0x03,0x01,0x15,0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x00,0x1d,0x04,0x01,0x02,0x02,0x0a,0x16,0x05,0x01,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x23,0x11, -0x33,0x11,0x33,0x01,0x33,0x17,0x09,0x01,0x07,0x23,0x01,0xc3,0x65,0xc5,0xc5,0x54,0x01,0x84,0xe7,0x02,0xfe,0x3e,0x01,0xe3,0x02,0xf1,0x01,0xcb,0xfe,0x35,0x04,0x3a,0xfe,0x37,0x01,0xc9,0x05,0xfd,0xfe,0xfd,0xd2,0x05,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x35,0x07,0x08,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0x76, -0x00,0x2d,0x01,0x1a,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x1a,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x9f,0x00,0x00,0x02,0x49,0x07,0x53,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x00,0x76,0x00,0x25,0x01,0x65,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x65,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xaa,0xfe,0x24,0x04,0x35,0x05,0xb0,0x02,0x26, -0x00,0x2f,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0x72,0xfe,0xaa,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0xaa,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6e,0xfe,0x24,0x01,0x64,0x06,0x18,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x03,0x63,0x00,0x09,0xfe,0xaa,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0xaa,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xaa, -0x00,0x00,0x04,0x35,0x05,0xb1,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0xd8,0x04,0xbe,0x00,0x09,0xb1,0x01,0x01,0xb8,0x04,0xbe,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x9f,0x00,0x00,0x02,0xad,0x06,0x18,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0x6d,0x05,0x25,0x00,0x09,0xb1,0x01,0x01,0xb8,0x05,0x25, -0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x35,0x05,0xb0,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x01,0x55,0x01,0xbc,0xfd,0xc8,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfd,0xc8,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x9f,0x00,0x00,0x02,0x69,0x06,0x18,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x01,0x55,0x00,0xef,0xfd,0xb7, -0x00,0x09,0xb1,0x01,0x01,0xb8,0xfd,0xb7,0xb0,0x0d,0x2b,0x00,0x00,0x01,0x00,0x28,0x00,0x00,0x04,0x2e,0x05,0xb0,0x00,0x0d,0x00,0x35,0x40,0x08,0x0d,0x0c,0x07,0x06,0x05,0x04,0x03,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x20,0x0b,0x0a,0x09,0x08,0x03,0x02,0x01,0x00,0x08,0x00,0x02,0x01,0x15,0x00,0x02,0x02,0x07,0x16,0x00,0x00, -0x00,0x01,0x00,0x02,0x1b,0x00,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x25,0x15,0x05,0x11,0x21,0x15,0x21,0x11,0x07,0x35,0x37,0x11,0x33,0x01,0x68,0x01,0x0d,0xfe,0xf3,0x02,0xc6,0xfc,0x75,0x7b,0x7b,0xc5,0x03,0x4b,0x56,0xa6,0x56,0xfd,0xf5,0x9a,0x02,0x67,0x27,0xa6,0x27,0x02,0xa3,0x00,0x00,0x00,0x00,0x01,0x00,0x25, -0x00,0x00,0x02,0x0e,0x06,0x18,0x00,0x0b,0x00,0x2c,0x40,0x06,0x0b,0x0a,0x05,0x04,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x19,0x09,0x08,0x07,0x06,0x03,0x02,0x01,0x00,0x08,0x00,0x01,0x01,0x15,0x00,0x01,0x01,0x09,0x16,0x00,0x00,0x00,0x08,0x00,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x37,0x15,0x07,0x11,0x23,0x11,0x07,0x35,0x37, -0x11,0x33,0x01,0x78,0x96,0x96,0xc5,0x8e,0x8e,0xc5,0x03,0x68,0x3a,0xa5,0x3a,0xfd,0x3d,0x02,0x78,0x36,0xa5,0x36,0x02,0xfb,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xf7,0x07,0x47,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0xf2,0x01,0x59,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x59,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8f, -0x00,0x00,0x03,0xfd,0x06,0x05,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x65,0x00,0x17,0x00,0x08,0xb1,0x01,0x01,0xb0,0x17,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0xaa,0xfe,0x24,0x04,0xf7,0x05,0xb0,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0xd6,0xfe,0xaa,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0xaa, -0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8f,0xfe,0x24,0x03,0xfd,0x04,0x4e,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0x49,0xfe,0xaa,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0xaa,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xf7,0x07,0x49,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x01,0x53,0x01,0x09,0x01,0x5e, -0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5e,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x03,0xfd,0x06,0x07,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x06,0x01,0x53,0x7c,0x1c,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1c,0xb0,0x0d,0x2b,0xff,0xff,0xff,0xdf,0x00,0x00,0x03,0xfd,0x06,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x03,0x63, -0xff,0x7a,0x05,0x25,0x00,0x09,0xb1,0x01,0x01,0xb8,0x05,0x25,0xb0,0x0d,0x2b,0x00,0x00,0x01,0x00,0xa1,0xfe,0x4b,0x04,0xee,0x05,0xb0,0x00,0x18,0x00,0x4b,0x40,0x10,0x00,0x00,0x00,0x18,0x00,0x18,0x15,0x14,0x13,0x12,0x0c,0x0a,0x05,0x03,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2e,0x17,0x11,0x02,0x02,0x03,0x08,0x01,0x01, -0x02,0x07,0x01,0x00,0x01,0x03,0x15,0x0f,0x01,0x02,0x01,0x14,0x05,0x04,0x02,0x03,0x03,0x07,0x16,0x00,0x02,0x02,0x08,0x16,0x00,0x01,0x01,0x00,0x01,0x02,0x1b,0x00,0x00,0x00,0x12,0x00,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x11,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x3d,0x01,0x01,0x07,0x11,0x23,0x11,0x33,0x01, -0x37,0x11,0x04,0xee,0xac,0x9a,0x1f,0x34,0x1d,0x0e,0x0d,0x44,0x11,0x3c,0x45,0xfd,0x43,0x06,0xc5,0xc5,0x02,0xbd,0x06,0x05,0xb0,0xf9,0xf7,0xa7,0xb5,0x09,0x09,0x96,0x05,0x08,0x67,0x5a,0x59,0x04,0x58,0x02,0xfb,0xaa,0x05,0xb0,0xfb,0xa8,0x02,0x04,0x56,0x00,0x00,0x00,0x00,0x01,0x00,0x8f,0xfe,0x4b,0x03,0xf5,0x04,0x4e,0x00,0x1f, -0x00,0x83,0x40,0x12,0x00,0x00,0x00,0x1f,0x00,0x1f,0x1e,0x1d,0x1a,0x18,0x13,0x11,0x0c,0x0a,0x05,0x03,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x19,0x58,0x40,0x2c,0x1c,0x01,0x02,0x04,0x03,0x0e,0x01,0x01,0x02,0x02,0x15,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x06,0x05,0x02,0x00,0x00,0x10,0x16,0x00,0x04,0x04,0x08,0x16, -0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x12,0x01,0x17,0x06,0x1b,0x40,0x30,0x1c,0x01,0x02,0x04,0x03,0x0e,0x01,0x01,0x02,0x02,0x15,0x06,0x01,0x05,0x05,0x0a,0x16,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x10,0x16,0x00,0x04,0x04,0x08,0x16,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x12,0x01,0x17, -0x07,0x59,0xb0,0x2f,0x2b,0x01,0x17,0x3e,0x01,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x01,0x3f,0x0d,0x36,0xa0,0x65,0xae,0xc0,0xac,0x9a,0x1f,0x35,0x1c,0x0e,0x0d,0x43,0x12,0x3d,0x44,0x72,0x74,0x55,0x7b,0x26,0xc5,0x04,0x3a, -0x96,0x51,0x59,0xcd,0xd6,0xfc,0xfc,0xa7,0xb5,0x09,0x09,0xa0,0x05,0x07,0x5e,0x58,0x03,0x00,0x8f,0x78,0x42,0x3b,0xfc,0xcf,0x04,0x3a,0x00,0x00,0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x02,0x07,0x0f,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x71,0x00,0xdc,0x01,0x5f,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x5f,0xb0,0x0d,0x2b,0x00, -0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x2a,0x05,0xb8,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x00,0x71,0x68,0x08,0x00,0x08,0xb1,0x02,0x01,0xb0,0x08,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x02,0x07,0x63,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x01,0x54,0x01,0x0e,0x01,0xb3,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0xb3, -0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x2a,0x06,0x0c,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x01,0x54,0x00,0x9a,0x00,0x5c,0x00,0x08,0xb1,0x02,0x01,0xb0,0x5c,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x02,0x07,0x60,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x01,0x59,0x01,0x6a,0x01,0x72, -0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x72,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x40,0x06,0x09,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x01,0x59,0x00,0xf6,0x00,0x1b,0x00,0x08,0xb1,0x02,0x02,0xb0,0x1b,0xb0,0x0d,0x2b,0x00,0x00,0x00,0x02,0x00,0x68,0xff,0xeb,0x07,0x0a,0x05,0xc5,0x00,0x17,0x00,0x25,0x00,0xfb, -0x40,0x1a,0x19,0x18,0x20,0x1e,0x18,0x25,0x19,0x25,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0c,0x0a,0x05,0x03,0x01,0x00,0x0b,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x33,0x1c,0x01,0x04,0x02,0x1b,0x01,0x00,0x07,0x02,0x15,0x00,0x05,0x00,0x06,0x07,0x05,0x06,0x00,0x00,0x1d,0x09,0x01,0x04,0x04, -0x02,0x01,0x00,0x1b,0x03,0x01,0x02,0x02,0x0d,0x16,0x0a,0x08,0x02,0x07,0x07,0x00,0x01,0x00,0x1b,0x01,0x01,0x00,0x00,0x08,0x00,0x17,0x06,0x1b,0x4b,0xb0,0x19,0x58,0x40,0x4a,0x1c,0x01,0x04,0x09,0x1b,0x01,0x00,0x07,0x02,0x15,0x00,0x05,0x00,0x06,0x07,0x05,0x06,0x00,0x00,0x1d,0x00,0x09,0x09,0x02,0x01,0x00,0x1b,0x00,0x02,0x02, -0x0d,0x16,0x00,0x04,0x04,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x07,0x16,0x0a,0x08,0x02,0x07,0x07,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x08,0x16,0x0a,0x08,0x02,0x07,0x07,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x0a,0x1b,0x40,0x47,0x1c,0x01,0x04,0x09,0x1b,0x01,0x08,0x07,0x02,0x15,0x00,0x05,0x00,0x06,0x07,0x05,0x06, -0x00,0x00,0x1d,0x00,0x09,0x09,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0d,0x16,0x00,0x04,0x04,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x07,0x16,0x00,0x07,0x07,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x08,0x16,0x0a,0x01,0x08,0x08,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x0a,0x59,0x59,0xb0,0x2f,0x2b,0x29,0x01,0x0e,0x01,0x23, -0x22,0x00,0x19,0x01,0x10,0x00,0x33,0x32,0x16,0x17,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x05,0x32,0x36,0x37,0x11,0x2e,0x01,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x07,0x0a,0xfc,0xaf,0x5c,0x82,0x43,0xf9,0xfe,0xc9,0x01,0x35,0xf9,0x45,0x8f,0x4f,0x03,0x46,0xfd,0x4f,0x02,0x56,0xfd,0xaa,0x02,0xbc,0xfb,0x8e,0x3d,0x7a,0x3a, -0x3d,0x7a,0x3c,0xa9,0xc0,0xc2,0x0a,0x0b,0x01,0x4c,0x01,0x09,0x01,0x30,0x01,0x09,0x01,0x4c,0x0c,0x09,0x9b,0xfe,0x29,0x9b,0xfd,0xf7,0x14,0x09,0x09,0x04,0x7f,0x08,0x0b,0xe3,0xd5,0xfe,0xce,0xd6,0xe4,0x00,0x00,0x03,0x00,0x61,0xff,0xeb,0x06,0xee,0x04,0x4e,0x00,0x22,0x00,0x30,0x00,0x39,0x00,0x65,0x40,0x1e,0x32,0x31,0x01,0x00, -0x36,0x35,0x31,0x39,0x32,0x39,0x2e,0x2c,0x27,0x25,0x1d,0x1b,0x18,0x17,0x14,0x12,0x0e,0x0c,0x07,0x05,0x00,0x22,0x01,0x22,0x0c,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x3a,0x10,0x01,0x09,0x07,0x1f,0x19,0x03,0x03,0x05,0x04,0x20,0x01,0x00,0x05,0x03,0x15,0x00,0x09,0x00,0x04,0x05,0x09,0x04,0x00,0x00,0x1d,0x0b,0x08,0x02,0x07, -0x07,0x02,0x01,0x00,0x1b,0x03,0x01,0x02,0x02,0x10,0x16,0x06,0x01,0x05,0x05,0x00,0x01,0x00,0x1b,0x01,0x0a,0x02,0x00,0x00,0x0e,0x00,0x17,0x06,0xb0,0x2f,0x2b,0x05,0x22,0x26,0x27,0x0e,0x01,0x23,0x22,0x00,0x3d,0x01,0x34,0x00,0x33,0x32,0x16,0x17,0x3e,0x01,0x33,0x32,0x12,0x1d,0x01,0x21,0x07,0x14,0x16,0x33,0x32,0x36,0x37,0x17, -0x0e,0x01,0x01,0x14,0x16,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x22,0x06,0x07,0x17,0x21,0x35,0x34,0x26,0x05,0x5b,0x87,0xcc,0x3f,0x40,0xc5,0x7e,0xe0,0xfe,0xfb,0x01,0x04,0xdf,0x80,0xc8,0x40,0x40,0xc0,0x70,0xd9,0xd9,0xfd,0x4c,0x03,0x90,0x94,0x64,0x97,0x36,0x4d,0x3a,0xbe,0xfb,0x45,0x91,0x8f,0x8d,0x92, -0x93,0x8e,0x8d,0x91,0x04,0x16,0x67,0x87,0x0f,0x02,0x01,0xe8,0x74,0x15,0x67,0x5f,0x5e,0x68,0x01,0x35,0xf1,0x16,0xf0,0x01,0x37,0x6c,0x60,0x60,0x6c,0xfe,0xf2,0xe0,0x68,0x05,0xa3,0xcb,0x39,0x32,0x80,0x38,0x4d,0x02,0x26,0xac,0xe0,0xe0,0xac,0x16,0xaa,0xe2,0xe2,0xaa,0x01,0x8c,0x9f,0x7c,0x05,0x10,0x76,0x9a,0xff,0xff,0x00,0xaa, -0x00,0x00,0x04,0xc6,0x07,0x47,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x85,0x01,0x59,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x59,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x02,0xe4,0x06,0x05,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x00,0x76,0x00,0xc0,0x00,0x17,0x00,0x08,0xb1,0x01,0x01,0xb0,0x17,0xb0, -0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0xaa,0xfe,0x24,0x04,0xc6,0x05,0xaf,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0x69,0xfe,0xaa,0x00,0x09,0xb1,0x02,0x01,0xb8,0xfe,0xaa,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6b,0xfe,0x24,0x02,0xaa,0x04,0x4e,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x03,0x63,0x00,0x06,0xfe,0xaa, -0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0xaa,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xc6,0x07,0x49,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x01,0x53,0x00,0x9c,0x01,0x5e,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x5e,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0xda,0x06,0x07,0x02,0x26,0x00,0x55,0x00,0x00, -0x01,0x06,0x01,0x53,0xd8,0x1c,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1c,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x6d,0xff,0xeb,0x04,0x77,0x07,0x5c,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x94,0x01,0x6e,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x6e,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x67,0xff,0xeb,0x03,0xc9,0x06,0x05,0x02,0x26, -0x00,0x56,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x3a,0x00,0x17,0x00,0x08,0xb1,0x01,0x01,0xb0,0x17,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x6d,0xff,0xeb,0x04,0x77,0x07,0x5d,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x01,0x52,0x00,0x94,0x01,0x72,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x72,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x67, -0xff,0xeb,0x03,0xc9,0x06,0x06,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x06,0x01,0x52,0x3a,0x1b,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x6d,0xfe,0x44,0x04,0x77,0x05,0xc5,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x00,0x7a,0x01,0x99,0xff,0xf7,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf7,0xb0,0x0d,0x2b,0x00, -0xff,0xff,0x00,0x67,0xfe,0x45,0x03,0xc9,0x04,0x4e,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x07,0x00,0x7a,0x01,0x3f,0xff,0xf8,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf8,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6d,0xff,0xeb,0x04,0x77,0x07,0x5e,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x01,0x53,0x00,0xab,0x01,0x73,0x00,0x09,0xb1,0x01, -0x01,0xb8,0x01,0x73,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x67,0xff,0xeb,0x03,0xc9,0x06,0x07,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x06,0x01,0x53,0x51,0x1c,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1c,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x25,0xfe,0x24,0x04,0xa4,0x05,0xb0,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0x6c,0xfe,0xaa, -0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0xaa,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x30,0xfe,0x1a,0x02,0x78,0x05,0x3f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x03,0x63,0x00,0xdd,0xfe,0xa0,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0xa0,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x25,0x00,0x00,0x04,0xa4,0x07,0x48,0x02,0x26,0x00,0x37,0x00,0x00, -0x01,0x07,0x01,0x53,0x00,0x9f,0x01,0x5d,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x30,0xff,0xeb,0x03,0x09,0x06,0x33,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0xc9,0x05,0x40,0x00,0x09,0xb1,0x01,0x01,0xb8,0x05,0x40,0xb0,0x0d,0x2b,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x04,0xa4, -0x05,0xb0,0x00,0x0f,0x00,0x3f,0x40,0x12,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x20,0x07,0x01,0x03,0x02,0x01,0x00,0x01,0x03,0x00,0x00,0x00,0x1d,0x06,0x01,0x04,0x04,0x05,0x00,0x00,0x1b,0x00,0x05,0x05,0x07,0x16,0x00,0x01,0x01,0x08,0x01, -0x17,0x04,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x03,0xa0,0xdc,0xc5,0xe0,0xe0,0xfe,0x26,0x04,0x7f,0xfe,0x20,0xdc,0x03,0x34,0xfc,0xcc,0x03,0x34,0x9b,0x01,0x46,0x9b,0x9b,0xfe,0xba,0x00,0x00,0x01,0x00,0x06,0xff,0xeb,0x02,0x87,0x05,0x3f,0x00,0x1f,0x00,0x61,0x40,0x1c, -0x00,0x00,0x00,0x1f,0x00,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x14,0x12,0x0d,0x0b,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x0c,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x38,0x0f,0x01,0x04,0x03,0x10,0x01,0x05,0x04,0x02,0x15,0x0b,0x01,0x0a,0x00,0x0a,0x2b,0x07,0x01,0x02,0x06,0x01,0x03,0x04,0x02,0x03,0x00,0x00,0x1d, -0x08,0x01,0x01,0x01,0x00,0x00,0x00,0x1b,0x09,0x01,0x00,0x00,0x0a,0x16,0x00,0x04,0x04,0x05,0x01,0x02,0x1b,0x00,0x05,0x05,0x0e,0x05,0x17,0x07,0xb0,0x2f,0x2b,0x01,0x11,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x0e,0x01,0x23,0x22,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x11,0x01, -0xa1,0xcd,0xcd,0xe6,0xe6,0x3f,0x34,0x11,0x2a,0x0e,0x1b,0x16,0x56,0x2a,0x78,0x8e,0xd6,0xd6,0xac,0xac,0x05,0x3f,0xfe,0xfb,0x92,0xb5,0x9b,0xfe,0xbf,0x4c,0x3e,0x09,0x05,0x87,0x12,0x17,0x91,0x9b,0x01,0x41,0x9b,0xb5,0x92,0x01,0x05,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0xff,0xeb,0x04,0xdc,0x07,0x54,0x02,0x26,0x00,0x38,0x00,0x00, -0x01,0x07,0x01,0x58,0x00,0xd7,0x01,0x61,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x61,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8b,0xff,0xeb,0x03,0xfc,0x05,0xfd,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x01,0x58,0x62,0x0a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x0a,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x93,0xff,0xeb,0x04,0xdc,0x06,0xfa,0x02,0x26, -0x00,0x38,0x00,0x00,0x01,0x07,0x00,0x71,0x00,0xdb,0x01,0x4a,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x4a,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8b,0xff,0xeb,0x03,0xfc,0x05,0xa4,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x00,0x71,0x66,0xf4,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf4,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x93, -0xff,0xeb,0x04,0xdc,0x07,0x4e,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x01,0x54,0x01,0x0d,0x01,0x9e,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x9e,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8b,0xff,0xeb,0x03,0xfc,0x05,0xf7,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x01,0x54,0x00,0x98,0x00,0x47,0x00,0x08,0xb1,0x01,0x01,0xb0,0x47,0xb0, -0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x93,0xff,0xeb,0x04,0xdc,0x07,0x6f,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x01,0x56,0x01,0x63,0x01,0xaa,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0xaa,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8b,0xff,0xeb,0x03,0xfc,0x06,0x18,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x01,0x56,0x00,0xee,0x00,0x53, -0x00,0x08,0xb1,0x01,0x02,0xb0,0x53,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x93,0xff,0xeb,0x04,0xdc,0x07,0x4b,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x01,0x59,0x01,0x69,0x01,0x5d,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8b,0xff,0xeb,0x04,0x3e,0x05,0xf4,0x02,0x26,0x00,0x58,0x00,0x00, -0x01,0x07,0x01,0x59,0x00,0xf4,0x00,0x06,0x00,0x08,0xb1,0x01,0x02,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x93,0xfe,0x50,0x04,0xdc,0x05,0xb0,0x02,0x26,0x00,0x38,0x00,0x00,0x00,0x07,0x01,0x57,0x01,0xa9,0x00,0x00,0xff,0xff,0x00,0x8b,0xfe,0x50,0x04,0x32,0x04,0x3a,0x02,0x26,0x00,0x58,0x00,0x00,0x00,0x07,0x01,0x57, -0x02,0x5f,0x00,0x00,0xff,0xff,0x00,0x25,0x00,0x00,0x06,0xbf,0x07,0x48,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x01,0x52,0x01,0x94,0x01,0x5d,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x2d,0x00,0x00,0x05,0xdc,0x05,0xf1,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07,0x01,0x52,0x01,0x28,0x00,0x06, -0x00,0x08,0xb1,0x01,0x01,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x28,0x00,0x00,0x04,0xe2,0x07,0x47,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x01,0x52,0x00,0xa9,0x01,0x5c,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5c,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x1a,0xfe,0x4b,0x03,0xe8,0x05,0xf1,0x02,0x26,0x00,0x5c,0x00,0x00, -0x01,0x06,0x01,0x52,0x25,0x06,0x00,0x08,0xb1,0x01,0x01,0xb0,0x06,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x28,0x00,0x00,0x04,0xe2,0x07,0x0c,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0x6a,0x00,0x84,0x01,0x5c,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x5c,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0x00,0x00,0x04,0x6d,0x07,0x47,0x02,0x26, -0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x84,0x01,0x59,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x59,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x5e,0x00,0x00,0x03,0xba,0x05,0xf0,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x2f,0x00,0x02,0x00,0x08,0xb1,0x01,0x01,0xb0,0x02,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x61, -0x00,0x00,0x04,0x6d,0x07,0x0d,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x01,0x55,0x01,0x54,0x01,0x5d,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x5e,0x00,0x00,0x03,0xba,0x05,0xb6,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x01,0x55,0x00,0xff,0x00,0x06,0x00,0x08,0xb1,0x01,0x01,0xb0,0x06,0xb0, -0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x61,0x00,0x00,0x04,0x6d,0x07,0x49,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x01,0x53,0x00,0x9b,0x01,0x5e,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5e,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x5e,0x00,0x00,0x03,0xba,0x05,0xf2,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x06,0x01,0x53,0x46,0x07,0x00,0x08, -0xb1,0x01,0x01,0xb0,0x07,0xb0,0x0d,0x2b,0x00,0x01,0x00,0x9f,0x00,0x00,0x02,0x87,0x06,0x2d,0x00,0x0f,0x00,0x33,0x40,0x0c,0x00,0x00,0x00,0x0f,0x00,0x0f,0x0c,0x0a,0x05,0x03,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1a,0x07,0x01,0x01,0x00,0x01,0x15,0x00,0x01,0x01,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0f,0x16,0x03,0x01, -0x02,0x02,0x08,0x02,0x17,0x04,0xb0,0x2f,0x2b,0x33,0x11,0x34,0x36,0x33,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x15,0x11,0x9f,0xb6,0xa2,0x21,0x45,0x2a,0x18,0x14,0x2c,0x19,0x57,0x5b,0x04,0xc3,0xad,0xbd,0x0b,0x0a,0x91,0x05,0x06,0x6d,0x62,0xfb,0x3d,0x00,0x00,0x00,0x01,0xff,0xe9,0xfe,0x4b,0x02,0xc0,0x06,0x2d,0x00,0x23, -0x00,0x55,0x40,0x12,0x23,0x22,0x1f,0x1d,0x18,0x16,0x13,0x12,0x11,0x10,0x0d,0x0b,0x06,0x04,0x01,0x00,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x36,0x1a,0x01,0x06,0x05,0x09,0x01,0x02,0x00,0x08,0x01,0x01,0x02,0x03,0x15,0x00,0x06,0x06,0x05,0x01,0x00,0x1b,0x00,0x05,0x05,0x0f,0x16,0x03,0x01,0x00,0x00,0x04,0x00,0x00,0x1b, -0x07,0x01,0x04,0x04,0x0a,0x16,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x12,0x01,0x17,0x07,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x35,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x1d,0x01,0x33,0x02,0x61,0xc4,0xab,0x9a, -0x20,0x34,0x1b,0x0e,0x0c,0x43,0x12,0x3c,0x44,0xa9,0xa9,0xb5,0xa2,0x22,0x45,0x2a,0x18,0x12,0x33,0x1b,0x57,0x54,0xc4,0x03,0xa8,0xfb,0xff,0xa7,0xb5,0x09,0x09,0x96,0x05,0x08,0x67,0x5a,0x04,0x01,0x92,0x89,0xad,0xbd,0x0b,0x0a,0x96,0x04,0x06,0x67,0x62,0x89,0x00,0x00,0x00,0x02,0x00,0x6c,0xff,0xeb,0x05,0xff,0x06,0x75,0x00,0x17, -0x00,0x25,0x00,0x42,0x40,0x0c,0x23,0x21,0x1c,0x1a,0x11,0x10,0x0b,0x09,0x04,0x02,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x29,0x0d,0x01,0x03,0x01,0x14,0x01,0x04,0x03,0x02,0x15,0x00,0x02,0x01,0x02,0x2b,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0d,0x16,0x00,0x04,0x04,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e, -0x00,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x10,0x00,0x21,0x22,0x00,0x19,0x01,0x10,0x00,0x33,0x32,0x16,0x17,0x3e,0x01,0x35,0x33,0x14,0x06,0x07,0x1e,0x01,0x15,0x27,0x34,0x02,0x23,0x22,0x02,0x15,0x11,0x14,0x12,0x33,0x32,0x36,0x35,0x04,0xfd,0xfe,0xb5,0xfe,0xf8,0xff,0xfe,0xc1,0x01,0x3f,0xff,0x78,0xce,0x4f,0x7b,0x80,0xc5,0xb0,0xa2, -0x26,0x2a,0xc5,0xd8,0xb6,0xac,0xcd,0xcd,0xac,0xb7,0xd7,0x02,0x56,0xfe,0xf5,0xfe,0xa0,0x01,0x60,0x01,0x0b,0x01,0x03,0x01,0x0a,0x01,0x62,0x50,0x49,0x0b,0xab,0x93,0xc0,0xf3,0x24,0x47,0xa6,0x58,0x02,0xc8,0x01,0x00,0xff,0x00,0xc8,0xfe,0xfb,0xca,0xff,0x00,0xff,0xcb,0x00,0x02,0x00,0x61,0xff,0xeb,0x04,0xe8,0x04,0xc7,0x00,0x17, -0x00,0x25,0x00,0x42,0x40,0x0c,0x23,0x21,0x1c,0x1a,0x15,0x13,0x0a,0x09,0x04,0x02,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x29,0x06,0x01,0x04,0x00,0x0d,0x01,0x03,0x04,0x02,0x15,0x00,0x01,0x00,0x01,0x2b,0x00,0x04,0x04,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x10,0x16,0x00,0x03,0x03,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0e, -0x02,0x17,0x06,0xb0,0x2f,0x2b,0x13,0x34,0x00,0x33,0x32,0x16,0x17,0x3e,0x01,0x35,0x33,0x14,0x06,0x07,0x1e,0x01,0x1d,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x61,0x01,0x04,0xdf,0x66,0xaa,0x40,0x52,0x50,0xb2,0x85,0x81,0x23,0x25,0xfe,0xfc,0xe0,0xe0,0xfe,0xfb, -0xc5,0x91,0x8f,0x8d,0x92,0x93,0x8e,0x8d,0x91,0x02,0x27,0xf0,0x01,0x37,0x46,0x3f,0x12,0x84,0x68,0x8f,0xbc,0x20,0x42,0x9d,0x56,0x16,0xf2,0xfe,0xcc,0x01,0x35,0xf1,0xac,0xe0,0xe0,0xac,0x16,0xaa,0xe2,0xe2,0xaa,0x00,0x00,0x00,0x00,0x01,0x00,0x93,0xff,0xeb,0x06,0x57,0x06,0x37,0x00,0x1b,0x00,0x6f,0x40,0x10,0x00,0x00,0x00,0x1b, -0x00,0x1b,0x18,0x16,0x13,0x12,0x0f,0x0d,0x06,0x05,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x21,0x58,0x40,0x25,0x07,0x01,0x02,0x00,0x0a,0x01,0x02,0x03,0x02,0x02,0x15,0x00,0x00,0x00,0x09,0x16,0x05,0x04,0x02,0x02,0x02,0x07,0x16,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x05,0x1b,0x40,0x25, -0x07,0x01,0x02,0x00,0x0a,0x01,0x02,0x03,0x02,0x02,0x15,0x00,0x00,0x02,0x00,0x2b,0x05,0x04,0x02,0x02,0x02,0x07,0x16,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x05,0x59,0xb0,0x2f,0x2b,0x01,0x15,0x17,0x3e,0x01,0x35,0x33,0x17,0x16,0x06,0x07,0x11,0x14,0x00,0x23,0x22,0x00,0x35,0x11,0x33,0x11,0x14,0x16, -0x33,0x32,0x36,0x35,0x11,0x04,0xdc,0x06,0x56,0x5c,0xbe,0x03,0x02,0xc4,0xb7,0xfe,0xc8,0xf6,0xed,0xfe,0xd2,0xc5,0xbf,0x97,0xa0,0xc9,0x05,0xb0,0xb2,0x02,0x1b,0xa3,0x7d,0x05,0xc1,0xf3,0x22,0xfd,0x8d,0xf0,0xfe,0xf2,0x01,0x0f,0xef,0x03,0xc7,0xfc,0x39,0xa7,0xbd,0xbd,0xa7,0x03,0xc7,0x00,0x00,0x01,0x00,0x8b,0xff,0xeb,0x05,0x6a, -0x04,0xcb,0x00,0x1d,0x00,0x8d,0x40,0x14,0x00,0x00,0x00,0x1d,0x00,0x1d,0x1b,0x1a,0x18,0x17,0x14,0x12,0x0f,0x0e,0x0b,0x09,0x06,0x05,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x30,0x01,0x01,0x02,0x06,0x19,0x16,0x07,0x04,0x04,0x03,0x05,0x02,0x15,0x07,0x01,0x06,0x02,0x06,0x2b,0x00,0x05,0x02,0x03,0x02, -0x05,0x03,0x29,0x04,0x01,0x02,0x02,0x0a,0x16,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x01,0x01,0x00,0x00,0x08,0x00,0x17,0x06,0x1b,0x40,0x34,0x01,0x01,0x02,0x06,0x19,0x16,0x07,0x04,0x04,0x03,0x05,0x02,0x15,0x07,0x01,0x06,0x02,0x06,0x2b,0x00,0x05,0x02,0x03,0x02,0x05,0x03,0x29,0x04,0x01,0x02,0x02,0x0a,0x16,0x00,0x00,0x00,0x08, -0x16,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x07,0x59,0xb0,0x2f,0x2b,0x01,0x17,0x16,0x06,0x07,0x11,0x23,0x27,0x0e,0x01,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x11,0x33,0x15,0x17,0x3e,0x01,0x35,0x05,0x64,0x03,0x03,0xb1,0xbd,0xb1,0x0d,0x33,0xa0,0x69,0xb1,0xc6,0xc5,0x66, -0x6c,0x69,0x89,0x23,0xc5,0x06,0x64,0x55,0x04,0xcb,0x06,0xb1,0xc0,0x0e,0xfc,0xba,0xa0,0x57,0x5e,0xe2,0xef,0x02,0x7e,0xfd,0x80,0xad,0x82,0x55,0x4e,0x03,0x0c,0x72,0x02,0x07,0x80,0x7e,0xff,0xff,0xff,0xbc,0xfe,0x4b,0x02,0x4b,0x05,0xdf,0x02,0x26,0x01,0x50,0x00,0x00,0x01,0x07,0x01,0x53,0xff,0x49,0xff,0xf4,0x00,0x09,0xb1,0x01, -0x01,0xb8,0xff,0xf4,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x08,0x25,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x02,0x01,0x41,0x01,0xb3,0x00,0x09,0xb1,0x02,0x03,0xb8,0x01,0xb3,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x06,0xe3,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x04,0x02, -0x00,0xe4,0x00,0x71,0x00,0x08,0xb1,0x02,0x03,0xb0,0x71,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x0e,0x00,0x00,0x07,0x84,0x07,0x47,0x02,0x26,0x00,0x88,0x00,0x00,0x01,0x07,0x00,0x76,0x02,0xee,0x01,0x59,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x59,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x58,0xff,0xeb,0x06,0x9a,0x06,0x06,0x02,0x26, -0x00,0xa8,0x00,0x00,0x01,0x07,0x00,0x76,0x02,0x9c,0x00,0x18,0x00,0x08,0xb1,0x03,0x01,0xb0,0x18,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x71,0xff,0xa2,0x05,0x02,0x07,0x85,0x02,0x26,0x00,0x9a,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0xdd,0x01,0x97,0x00,0x09,0xb1,0x03,0x01,0xb8,0x01,0x97,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61, -0xff,0x79,0x04,0x2a,0x06,0x04,0x02,0x26,0x00,0xba,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x3e,0x00,0x16,0x00,0x08,0xb1,0x03,0x01,0xb0,0x16,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x6d,0xfe,0x10,0x04,0x77,0x05,0xc5,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0x78,0xfe,0x96,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0x96, -0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x67,0xfe,0x11,0x03,0xc9,0x04,0x4e,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0x1e,0xfe,0x97,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0x97,0xb0,0x0d,0x2b,0x00,0x00,0x01,0xff,0xbc,0xfe,0x4b,0x01,0x70,0x04,0x3a,0x00,0x0f,0x00,0x37,0x40,0x0c,0x00,0x00,0x00,0x0f,0x00,0x0f,0x0c,0x0a, -0x05,0x03,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1e,0x08,0x01,0x01,0x02,0x07,0x01,0x00,0x01,0x02,0x15,0x03,0x01,0x02,0x02,0x0a,0x16,0x00,0x01,0x01,0x00,0x01,0x02,0x1b,0x00,0x00,0x00,0x12,0x00,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x11,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x35,0x11,0x01,0x70,0xac, -0x99,0x1f,0x33,0x1d,0x0e,0x0e,0x41,0x12,0x3b,0x45,0x04,0x3a,0xfb,0x6d,0xa7,0xb5,0x09,0x09,0x96,0x05,0x08,0x67,0x5a,0x04,0x93,0x00,0x00,0x00,0xff,0xff,0x00,0xa0,0x03,0x95,0x01,0x66,0x05,0xb0,0x02,0x06,0x03,0x35,0x00,0x00,0x00,0x01,0x00,0xab,0x04,0xe4,0x03,0x11,0x05,0xeb,0x00,0x08,0x00,0x45,0x40,0x08,0x08,0x07,0x05,0x04, -0x02,0x01,0x03,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x15,0x06,0x03,0x00,0x03,0x00,0x02,0x01,0x15,0x01,0x01,0x00,0x02,0x00,0x2c,0x00,0x02,0x02,0x09,0x02,0x17,0x03,0x1b,0x40,0x13,0x06,0x03,0x00,0x03,0x00,0x02,0x01,0x15,0x00,0x02,0x00,0x02,0x2b,0x01,0x01,0x00,0x00,0x22,0x03,0x59,0xb0,0x2f,0x2b,0x01, -0x15,0x23,0x27,0x07,0x23,0x35,0x37,0x33,0x03,0x11,0xa1,0x93,0x92,0xa0,0xf6,0x78,0x04,0xfd,0x19,0x94,0x94,0x1a,0xed,0x00,0x00,0x01,0x00,0x8c,0x04,0xe4,0x03,0x02,0x05,0xeb,0x00,0x08,0x00,0x45,0x40,0x08,0x08,0x07,0x05,0x04,0x02,0x01,0x03,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x15,0x06,0x03,0x00,0x03, -0x01,0x00,0x01,0x15,0x00,0x01,0x00,0x01,0x2c,0x02,0x01,0x00,0x00,0x09,0x00,0x17,0x03,0x1b,0x40,0x13,0x06,0x03,0x00,0x03,0x01,0x00,0x01,0x15,0x02,0x01,0x00,0x01,0x00,0x2b,0x00,0x01,0x01,0x22,0x03,0x59,0xb0,0x2f,0x2b,0x01,0x37,0x33,0x15,0x05,0x23,0x27,0x35,0x33,0x01,0xc5,0x93,0xaa,0xfe,0xff,0x77,0xfe,0xa6,0x05,0x57,0x94, -0x12,0xf5,0xf3,0x14,0x00,0x01,0x00,0x81,0x04,0xa4,0x02,0xd8,0x05,0xb0,0x00,0x0f,0x00,0x34,0x40,0x0e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x0d,0x0b,0x09,0x08,0x05,0x03,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x19,0x07,0x01,0x02,0x02,0x01,0x01,0x15,0x00,0x02,0x00,0x00,0x02,0x00,0x01,0x00,0x1c,0x04,0x03,0x02,0x01,0x01,0x07, -0x01,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x17,0x16,0x06,0x23,0x22,0x26,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x02,0xd2,0x02,0x04,0xa2,0x89,0x8a,0xa2,0x05,0x02,0x97,0x44,0x4a,0x48,0x46,0x05,0xb0,0x06,0x74,0x92,0x92,0x74,0x06,0x42,0x52,0x53,0x41,0x00,0x00,0x00,0x00,0x01,0x00,0xa0,0x04,0xe7,0x01,0x7a,0x05,0xb0,0x00,0x03, -0x00,0x21,0x40,0x06,0x03,0x02,0x01,0x00,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x0e,0x00,0x00,0x00,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x07,0x00,0x17,0x02,0xb0,0x2f,0x2b,0x01,0x23,0x35,0x33,0x01,0x7a,0xda,0xda,0x04,0xe7,0xc9,0x00,0x00,0x00,0x02,0x00,0xa5,0x04,0x78,0x02,0x02,0x05,0xc5,0x00,0x0b,0x00,0x17,0x00,0x2e, -0x40,0x0a,0x16,0x14,0x10,0x0e,0x0a,0x08,0x04,0x02,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x17,0x00,0x02,0x00,0x01,0x02,0x01,0x01,0x00,0x1c,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0d,0x03,0x17,0x03,0xb0,0x2f,0x2b,0x13,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x32,0x36, -0x35,0x34,0x26,0x23,0x22,0x06,0xa5,0x67,0x49,0x48,0x65,0x65,0x48,0x4a,0x66,0x64,0x2d,0x1f,0x1e,0x2b,0x2b,0x1e,0x20,0x2c,0x05,0x1c,0x48,0x61,0x61,0x48,0x49,0x5b,0x5c,0x48,0x1f,0x2b,0x2a,0x20,0x20,0x2d,0x2d,0x00,0x00,0x00,0x00,0x01,0x00,0x44,0xfe,0x50,0x01,0xd3,0x00,0x39,0x00,0x13,0x00,0x2d,0x40,0x06,0x0e,0x0c,0x07,0x05, -0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1a,0x0a,0x01,0x01,0x00,0x01,0x15,0x13,0x09,0x00,0x03,0x00,0x13,0x00,0x00,0x00,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x12,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x21,0x0e,0x01,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x0e,0x01,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x01,0x84,0x46,0x4f,0x2d, -0x33,0x1b,0x2e,0x1a,0x21,0x24,0x57,0x3c,0x5f,0x79,0x79,0x7f,0x34,0x5f,0x36,0x2a,0x30,0x0f,0x0b,0x7b,0x13,0x19,0x6e,0x63,0x50,0x90,0x38,0x00,0x00,0x01,0x00,0x87,0x04,0xe1,0x03,0x3d,0x05,0xf3,0x00,0x13,0x00,0xaf,0x40,0x0a,0x11,0x0f,0x0e,0x0c,0x07,0x05,0x04,0x02,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58, -0x40,0x2c,0x00,0x01,0x03,0x02,0x0a,0x01,0x00,0x01,0x02,0x15,0x13,0x01,0x02,0x13,0x09,0x01,0x00,0x12,0x00,0x01,0x01,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0d,0x16,0x00,0x00,0x00,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x07,0x00,0x17,0x07,0x1b,0x4b,0xb0,0x24,0x58,0x40,0x29,0x00,0x01,0x03,0x02,0x0a,0x01,0x00,0x01,0x02,0x15,0x13, -0x01,0x02,0x13,0x09,0x01,0x00,0x12,0x00,0x03,0x00,0x00,0x03,0x00,0x01,0x00,0x1c,0x00,0x01,0x01,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0d,0x01,0x17,0x06,0x1b,0x40,0x33,0x00,0x01,0x03,0x02,0x0a,0x01,0x00,0x01,0x02,0x15,0x13,0x01,0x02,0x13,0x09,0x01,0x00,0x12,0x00,0x03,0x01,0x00,0x03,0x01,0x00,0x1a,0x00,0x02,0x00,0x01,0x00, -0x02,0x01,0x01,0x00,0x1d,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x00,0x00,0x03,0x00,0x01,0x00,0x18,0x07,0x59,0x59,0xb0,0x2f,0x2b,0x01,0x14,0x06,0x23,0x22,0x26,0x23,0x22,0x06,0x15,0x27,0x34,0x36,0x33,0x32,0x16,0x33,0x32,0x36,0x35,0x03,0x3d,0x77,0x5a,0x47,0x9a,0x33,0x2b,0x3a,0x6c,0x76,0x5b,0x38,0xa8,0x34,0x29,0x3c,0x05,0xd3, -0x5e,0x82,0x5d,0x41,0x2e,0x1a,0x5d,0x89,0x5e,0x41,0x2f,0x00,0x00,0x02,0x00,0x64,0x04,0xe4,0x03,0x4a,0x05,0xee,0x00,0x05,0x00,0x0a,0x00,0x49,0x40,0x0a,0x0a,0x09,0x07,0x06,0x04,0x03,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x10,0x03,0x01,0x01,0x01,0x00,0x00,0x00,0x1b,0x02,0x01,0x00,0x00, -0x09,0x01,0x17,0x02,0x1b,0x40,0x1a,0x02,0x01,0x00,0x01,0x01,0x00,0x00,0x00,0x1a,0x02,0x01,0x00,0x00,0x01,0x00,0x00,0x1b,0x03,0x01,0x01,0x00,0x01,0x00,0x00,0x18,0x03,0x59,0xb0,0x2f,0x2b,0x01,0x33,0x17,0x01,0x23,0x27,0x03,0x33,0x17,0x03,0x23,0x02,0x62,0xe5,0x03,0xfe,0xd4,0xab,0x02,0x55,0xd3,0x02,0xf0,0x9d,0x05,0xee,0x06, -0xfe,0xfc,0x05,0x01,0x05,0x05,0xfe,0xfb,0x00,0x02,0x00,0xb6,0xfe,0x85,0x01,0xec,0xff,0xac,0x00,0x0b,0x00,0x17,0x00,0x58,0x40,0x0a,0x16,0x14,0x10,0x0e,0x0a,0x08,0x04,0x02,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x1b,0x58,0x40,0x18,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x01,0x00,0x1d,0x00,0x02,0x02,0x01,0x01,0x00, -0x1b,0x00,0x01,0x01,0x0c,0x01,0x17,0x03,0x1b,0x40,0x21,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x01,0x00,0x1d,0x00,0x02,0x01,0x01,0x02,0x01,0x00,0x1a,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x00,0x01,0x02,0x01,0x01,0x00,0x18,0x04,0x59,0xb0,0x2f,0x2b,0x17,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x37,0x14,0x16,0x33, -0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0xb6,0x5b,0x42,0x3f,0x5a,0x59,0x40,0x42,0x5b,0x59,0x28,0x1c,0x1a,0x26,0x26,0x1a,0x1c,0x28,0xea,0x41,0x55,0x55,0x41,0x3f,0x52,0x52,0x3f,0x1a,0x26,0x25,0x1b,0x1e,0x27,0x28,0x00,0x00,0xff,0xff,0xfc,0xe6,0x04,0xf0,0xfe,0x02,0x06,0x4f,0x01,0x47,0x00,0x43,0xfc,0xad,0xfe,0x7b,0x2c,0x9c, -0x54,0x80,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x7b,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0xfd,0x81,0x04,0xef,0xfe,0x9e,0x06,0x50,0x01,0x47,0x00,0x76,0xfd,0x28,0xfe,0x76,0x2b,0xb1,0x54,0xc0,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x76,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0xfc,0x8c,0x04,0xe1,0xff,0x42,0x05,0xf3,0x00,0x07, -0x01,0x58,0xfc,0x05,0x00,0x00,0x00,0x00,0x00,0x01,0xfd,0x5b,0x04,0xda,0xfe,0x93,0x06,0x76,0x00,0x0f,0x00,0x43,0x40,0x0e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x09,0x08,0x07,0x06,0x02,0x01,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x28,0x0e,0x01,0x03,0x00,0x01,0x15,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x01,0x00,0x1d,0x00,0x00, -0x03,0x03,0x00,0x01,0x00,0x1a,0x00,0x00,0x00,0x03,0x00,0x00,0x1b,0x04,0x01,0x03,0x00,0x03,0x00,0x00,0x18,0x05,0xb0,0x2f,0x2b,0x01,0x27,0x3e,0x01,0x35,0x34,0x26,0x23,0x37,0x32,0x16,0x15,0x14,0x06,0x0f,0x01,0xfd,0x6f,0x01,0x4c,0x41,0x57,0x49,0x07,0x93,0x9e,0x56,0x41,0x01,0x04,0xda,0x9a,0x04,0x20,0x25,0x27,0x26,0x6c,0x67, -0x56,0x46,0x49,0x09,0x47,0x00,0x00,0x00,0x00,0x02,0xfc,0x2c,0x04,0xe4,0xff,0x12,0x05,0xee,0x00,0x05,0x00,0x0a,0x00,0x49,0x40,0x0a,0x0a,0x09,0x07,0x06,0x05,0x04,0x02,0x01,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x10,0x02,0x01,0x00,0x00,0x01,0x00,0x00,0x1b,0x03,0x01,0x01,0x01,0x09,0x00,0x17,0x02, -0x1b,0x40,0x1a,0x03,0x01,0x01,0x00,0x00,0x01,0x00,0x00,0x1a,0x03,0x01,0x01,0x01,0x00,0x00,0x00,0x1b,0x02,0x01,0x00,0x01,0x00,0x00,0x00,0x18,0x03,0x59,0xb0,0x2f,0x2b,0x01,0x07,0x23,0x01,0x37,0x33,0x01,0x23,0x03,0x37,0x33,0xfe,0x05,0x02,0xab,0xfe,0xd4,0x03,0xe5,0x01,0xfe,0x9d,0xf1,0x02,0xd4,0x04,0xe9,0x05,0x01,0x04,0x06, -0xfe,0xf6,0x01,0x05,0x05,0x00,0x00,0x00,0x00,0x01,0xfd,0x3c,0xfe,0xaf,0xfe,0x16,0xff,0x77,0x00,0x03,0x00,0x2a,0x40,0x06,0x03,0x02,0x01,0x00,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x1a,0x00,0x01,0x01,0x00,0x00,0x00,0x1b,0x00,0x00,0x01,0x00,0x00,0x00,0x18,0x03,0xb0,0x2f,0x2b, -0x01,0x23,0x35,0x33,0xfe,0x16,0xda,0xda,0xfe,0xaf,0xc8,0x00,0x00,0x01,0x00,0xce,0x04,0xf8,0x01,0xbc,0x06,0x07,0x00,0x03,0x00,0x21,0x40,0x06,0x03,0x02,0x01,0x00,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x0e,0x00,0x01,0x01,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x09,0x01,0x17,0x02,0xb0,0x2f,0x2b,0x13,0x33,0x03,0x23,0xec, -0xd0,0x9b,0x53,0x06,0x07,0xfe,0xf1,0x00,0x00,0x03,0x00,0xa1,0x04,0xe8,0x03,0x65,0x06,0xc2,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x35,0x40,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1a,0x00,0x04,0x00,0x05,0x01,0x04,0x05,0x00,0x00,0x1d,0x02,0x01,0x00,0x00, -0x01,0x00,0x00,0x1b,0x03,0x01,0x01,0x01,0x07,0x00,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x13,0x33,0x03,0x23,0x03,0x65,0xc7,0xc7,0xfe,0x02,0xc6,0xc6,0x8a,0xda,0x7f,0x8e,0x04,0xe8,0xc8,0xc8,0xc8,0x01,0x12,0xfe,0xfa,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x06,0x07,0x02,0x26,0x00,0x24,0x00,0x00, -0x00,0x06,0x01,0x61,0xf9,0x00,0x00,0x00,0xff,0xff,0x00,0xa1,0x02,0x70,0x01,0x67,0x03,0x44,0x00,0x06,0x00,0x79,0x00,0x00,0xff,0xff,0xff,0x80,0x00,0x00,0x04,0x2b,0x06,0x09,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x01,0x61,0xfe,0xb2,0x00,0x02,0x00,0x08,0xb1,0x01,0x01,0xb0,0x02,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0xff,0xb1, -0x00,0x00,0x04,0xf7,0x06,0x09,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x01,0x61,0xfe,0xe3,0x00,0x02,0x00,0x08,0xb1,0x01,0x01,0xb0,0x02,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0xff,0xbf,0x00,0x00,0x01,0x84,0x06,0x08,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x01,0x61,0xfe,0xf1,0x00,0x01,0x00,0x08,0xb1,0x01,0x01,0xb0,0x01,0xb0, -0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x3c,0xff,0xeb,0x05,0x02,0x06,0x07,0x02,0x26,0x00,0x32,0x00,0x00,0x00,0x07,0x01,0x61,0xff,0x6e,0x00,0x00,0xff,0xff,0xff,0x3c,0x00,0x00,0x04,0xe2,0x06,0x07,0x02,0x26,0x00,0x3c,0x00,0x00,0x00,0x07,0x01,0x61,0xfe,0x6e,0x00,0x00,0xff,0xff,0x00,0x33,0x00,0x00,0x04,0xd0,0x06,0x07,0x02,0x26, -0x01,0x83,0x00,0x00,0x00,0x07,0x01,0x61,0xff,0x65,0x00,0x00,0xff,0xff,0xff,0xcc,0xff,0xeb,0x02,0x90,0x06,0x79,0x02,0x26,0x01,0x93,0x00,0x00,0x01,0x07,0x01,0x62,0xff,0x2b,0xff,0xb7,0x00,0x09,0xb1,0x01,0x03,0xb8,0xff,0xb7,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x05,0xb0,0x02,0x06,0x00,0x24,0x00,0x00, -0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xcd,0x05,0xb0,0x02,0x06,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0xa3,0x00,0x00,0x04,0x20,0x05,0xb0,0x00,0x05,0x00,0x28,0x40,0x08,0x05,0x04,0x03,0x02,0x01,0x00,0x03,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x13,0x00,0x00,0x00,0x02,0x00,0x00,0x1b,0x00,0x02,0x02,0x07,0x16,0x00,0x01,0x01,0x08, -0x01,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x23,0x11,0x21,0x04,0x20,0xfd,0x48,0xc5,0x03,0x7d,0x05,0x15,0xfa,0xeb,0x05,0xb0,0x00,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x05,0x70,0x05,0xb0,0x00,0x03,0x00,0x07,0x00,0x32,0x40,0x0a,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1b, -0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x29,0x00,0x00,0x00,0x07,0x16,0x00,0x02,0x02,0x01,0x00,0x02,0x1b,0x00,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x33,0x01,0x21,0x25,0x21,0x01,0x23,0x02,0x87,0xa9,0x02,0x40,0xfa,0xae,0x01,0x08,0x03,0x46,0xfe,0x70,0x06,0x05,0xb0,0xfa,0x50,0x9a,0x04,0x1a,0x00,0xff,0xff,0x00,0xaa, -0x00,0x00,0x04,0x2b,0x05,0xb0,0x02,0x06,0x00,0x28,0x00,0x00,0xff,0xff,0x00,0x61,0x00,0x00,0x04,0x6d,0x05,0xb0,0x02,0x06,0x00,0x3d,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xf7,0x05,0xb0,0x02,0x06,0x00,0x2b,0x00,0x00,0x00,0x03,0x00,0x71,0xff,0xeb,0x05,0x02,0x05,0xc5,0x00,0x03,0x00,0x11,0x00,0x1f,0x00,0x3f,0x40,0x0e, -0x1d,0x1b,0x16,0x14,0x0f,0x0d,0x08,0x06,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x24,0x00,0x01,0x00,0x00,0x05,0x01,0x00,0x00,0x00,0x1d,0x00,0x04,0x04,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0d,0x16,0x00,0x05,0x05,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0e,0x02,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x21,0x35, -0x21,0x05,0x10,0x00,0x21,0x22,0x00,0x19,0x01,0x10,0x00,0x33,0x20,0x00,0x11,0x27,0x34,0x02,0x23,0x22,0x02,0x15,0x11,0x14,0x12,0x33,0x32,0x36,0x35,0x03,0xbf,0xfe,0x03,0x01,0xfd,0x01,0x43,0xfe,0xb5,0xfe,0xf8,0xff,0xfe,0xc1,0x01,0x3f,0xff,0x01,0x08,0x01,0x4b,0xc5,0xd8,0xb6,0xac,0xcd,0xcd,0xac,0xb7,0xd7,0x02,0x93,0x9a,0xd7, -0xfe,0xf5,0xfe,0xa0,0x01,0x60,0x01,0x0b,0x01,0x03,0x01,0x0a,0x01,0x62,0xfe,0x9f,0xfe,0xf5,0x02,0xc8,0x01,0x00,0xff,0x00,0xc8,0xfe,0xfb,0xca,0xff,0x00,0xff,0xcb,0xff,0xff,0x00,0xbe,0x00,0x00,0x01,0x84,0x05,0xb0,0x02,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x05,0x01,0x05,0xb0,0x02,0x06,0x00,0x2e,0x00,0x00, -0x00,0x01,0x00,0x31,0x00,0x00,0x05,0x07,0x05,0xb0,0x00,0x07,0x00,0x2c,0x40,0x0a,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x15,0x00,0x00,0x02,0x01,0x02,0x00,0x01,0x29,0x00,0x02,0x02,0x07,0x16,0x03,0x01,0x01,0x01,0x08,0x01,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x23,0x01,0x23,0x01,0x33, -0x01,0x23,0x02,0x9f,0x06,0xfe,0x61,0xc9,0x02,0x16,0xaa,0x02,0x16,0xc9,0x04,0x93,0xfb,0x6d,0x05,0xb0,0xfa,0x50,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x06,0x48,0x05,0xb0,0x02,0x06,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xf7,0x05,0xb0,0x02,0x06,0x00,0x31,0x00,0x00,0x00,0x03,0x00,0x7b,0x00,0x00,0x04,0x24, -0x05,0xb0,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x3f,0x40,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x24,0x00,0x02,0x00,0x03,0x00,0x02,0x03,0x00,0x00,0x1d,0x00,0x05,0x05,0x04,0x00,0x00,0x1b,0x00,0x04,0x04,0x07,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x1b,0x00, -0x01,0x01,0x08,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x37,0x21,0x15,0x21,0x13,0x21,0x15,0x21,0x03,0x21,0x15,0x21,0x7b,0x03,0xa9,0xfc,0x57,0x53,0x02,0xf9,0xfd,0x07,0x52,0x03,0x9c,0xfc,0x64,0x9a,0x9a,0x03,0x41,0x9b,0x03,0x0a,0x9b,0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x02,0x05,0xc5,0x02,0x06,0x00,0x32,0x00,0x00,0x00,0x01,0x00,0xa8, -0x00,0x00,0x04,0xf7,0x05,0xb0,0x00,0x07,0x00,0x2b,0x40,0x0a,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x14,0x00,0x01,0x01,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x07,0x16,0x02,0x01,0x00,0x00,0x08,0x00,0x17,0x03,0xb0,0x2f,0x2b,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x04,0xf7,0xc5, -0xfd,0x3b,0xc5,0x04,0x4f,0x05,0x15,0xfa,0xeb,0x05,0xb0,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xc3,0x05,0xb0,0x02,0x06,0x00,0x33,0x00,0x00,0x00,0x01,0x00,0x46,0x00,0x00,0x04,0x48,0x05,0xb0,0x00,0x0e,0x00,0x41,0x40,0x0a,0x0c,0x0b,0x0a,0x09,0x05,0x04,0x03,0x02,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2a,0x08,0x01, -0x03,0x02,0x0e,0x07,0x00,0x03,0x00,0x03,0x06,0x01,0x01,0x00,0x03,0x15,0x00,0x03,0x03,0x02,0x00,0x00,0x1b,0x00,0x02,0x02,0x07,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x08,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x09,0x01,0x17,0x21,0x15,0x21,0x35,0x09,0x01,0x35,0x21,0x15,0x21,0x07,0x01,0x02,0xf6,0xfe,0x43,0x03,0x03, -0x0c,0xfb,0xfe,0x01,0xe0,0xfe,0x20,0x03,0xd0,0xfd,0x26,0x03,0x01,0xbd,0x02,0xcb,0xfd,0xd5,0x05,0x9b,0x93,0x02,0x45,0x02,0x45,0x93,0x9b,0x05,0xfd,0xd3,0x00,0x00,0xff,0xff,0x00,0x25,0x00,0x00,0x04,0xa4,0x05,0xb0,0x02,0x06,0x00,0x37,0x00,0x00,0xff,0xff,0x00,0x28,0x00,0x00,0x04,0xe2,0x05,0xb0,0x02,0x06,0x00,0x3c,0x00,0x00, -0x00,0x03,0x00,0x54,0x00,0x00,0x05,0x4d,0x05,0xb0,0x00,0x11,0x00,0x1a,0x00,0x23,0x00,0x50,0x40,0x16,0x22,0x21,0x1e,0x1d,0x19,0x18,0x15,0x14,0x11,0x10,0x0f,0x0e,0x0a,0x09,0x08,0x07,0x06,0x05,0x01,0x00,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2d,0x20,0x1f,0x17,0x16,0x04,0x06,0x07,0x01,0x15,0x04,0x01,0x00,0x08,0x01, -0x07,0x06,0x00,0x07,0x01,0x00,0x1d,0x09,0x01,0x06,0x03,0x01,0x01,0x02,0x06,0x01,0x01,0x00,0x1d,0x00,0x05,0x05,0x07,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x16,0x00,0x15,0x14,0x00,0x07,0x15,0x23,0x35,0x26,0x00,0x35,0x34,0x00,0x37,0x35,0x33,0x01,0x14,0x16,0x3f,0x01,0x11,0x27,0x26,0x06,0x05,0x34,0x26, -0x23,0x07,0x11,0x17,0x16,0x36,0x03,0x34,0xe6,0x01,0x33,0xfe,0xcd,0xe6,0xc5,0xe8,0xfe,0xcd,0x01,0x33,0xe8,0xc5,0xfd,0xe3,0xb1,0xa1,0x06,0x06,0xa0,0xb2,0x03,0x72,0xb2,0x9d,0x06,0x06,0x9d,0xb2,0x04,0xcd,0x05,0xfe,0xe5,0xda,0xdd,0xfe,0xe3,0x04,0xd5,0xd5,0x03,0x01,0x1c,0xdd,0xdb,0x01,0x1e,0x04,0xe2,0xfd,0x21,0xa1,0xbb,0x01, -0x02,0x02,0xb3,0x02,0x01,0xbd,0x9e,0x9f,0xbb,0x02,0xfd,0x4d,0x02,0x01,0xbd,0x00,0xff,0xff,0x00,0x42,0x00,0x00,0x04,0xd6,0x05,0xb0,0x02,0x06,0x00,0x3b,0x00,0x00,0x00,0x01,0x00,0x57,0x00,0x00,0x05,0x1b,0x05,0xb0,0x00,0x19,0x00,0x2e,0x40,0x0a,0x19,0x18,0x12,0x11,0x0c,0x0b,0x06,0x05,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58, -0x40,0x17,0x17,0x0d,0x0a,0x00,0x04,0x01,0x00,0x01,0x15,0x03,0x02,0x02,0x00,0x00,0x07,0x16,0x00,0x01,0x01,0x08,0x01,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x17,0x3e,0x01,0x35,0x11,0x33,0x11,0x14,0x00,0x07,0x11,0x23,0x11,0x26,0x00,0x35,0x11,0x33,0x11,0x14,0x16,0x17,0x37,0x11,0x33,0x03,0x13,0x06,0x90,0xad,0xc5,0xfe,0xe2,0xea,0xc6, -0xe3,0xfe,0xed,0xc4,0xa4,0x88,0x06,0xc6,0x01,0xe5,0x02,0x13,0xd3,0xac,0x02,0x3b,0xfd,0xc5,0xf5,0xfe,0xd7,0x18,0xfe,0xc1,0x01,0x40,0x18,0x01,0x28,0xf5,0x02,0x3b,0xfd,0xc5,0xaa,0xd2,0x14,0x01,0x03,0xca,0x00,0x01,0x00,0x70,0x00,0x00,0x04,0xd0,0x05,0xc5,0x00,0x23,0x00,0x3e,0x40,0x0e,0x23,0x22,0x21,0x20,0x1a,0x18,0x12,0x11, -0x10,0x0f,0x08,0x06,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x23,0x0e,0x00,0x02,0x02,0x00,0x01,0x15,0x00,0x00,0x00,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0d,0x16,0x04,0x01,0x02,0x02,0x01,0x00,0x00,0x1b,0x05,0x01,0x01,0x01,0x08,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x25,0x36,0x12,0x3d,0x01,0x34,0x26,0x23,0x22,0x06,0x1d,0x01, -0x14,0x12,0x17,0x15,0x21,0x35,0x33,0x26,0x02,0x3d,0x01,0x10,0x00,0x33,0x32,0x00,0x11,0x15,0x14,0x02,0x07,0x21,0x15,0x21,0x02,0xdf,0x8d,0x9d,0xc1,0xaa,0xa9,0xc0,0xa1,0x8f,0xfe,0x11,0xfd,0x78,0x8b,0x01,0x35,0xf9,0xf9,0x01,0x37,0x8b,0x76,0x01,0x03,0xfe,0x0f,0x9f,0x19,0x01,0x1f,0xfb,0x76,0xe9,0xf9,0xf9,0xe9,0x76,0xfb,0xfe, -0xe0,0x18,0x9f,0x9a,0x5c,0x01,0x35,0xa7,0x74,0x01,0x1c,0x01,0x63,0xfe,0x9d,0xfe,0xe4,0x74,0xa7,0xfe,0xcc,0x5d,0x9a,0x00,0xff,0xff,0xff,0xca,0x00,0x00,0x02,0x7b,0x07,0x0d,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x6a,0xff,0x20,0x01,0x5d,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x28, -0x00,0x00,0x04,0xe2,0x07,0x0c,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0x6a,0x00,0x84,0x01,0x5c,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x5c,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x62,0xff,0xeb,0x04,0x80,0x06,0x0e,0x02,0x26,0x01,0x8b,0x00,0x00,0x01,0x07,0x01,0x61,0x01,0x75,0x00,0x07,0x00,0x08,0xb1,0x02,0x01,0xb0,0x07,0xb0, -0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x62,0xff,0xed,0x03,0xe9,0x06,0x0d,0x02,0x26,0x01,0x8f,0x00,0x00,0x01,0x07,0x01,0x61,0x01,0x2b,0x00,0x06,0x00,0x08,0xb1,0x01,0x01,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x8f,0xfe,0x61,0x03,0xf5,0x06,0x0e,0x02,0x26,0x01,0x91,0x00,0x00,0x01,0x07,0x01,0x61,0x01,0x46,0x00,0x07, -0x00,0x08,0xb1,0x01,0x01,0xb0,0x07,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0xc5,0xff,0xeb,0x02,0x73,0x05,0xfa,0x02,0x26,0x01,0x93,0x00,0x00,0x01,0x06,0x01,0x61,0x32,0xf3,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf3,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8d,0xff,0xeb,0x04,0x26,0x06,0x79,0x02,0x26,0x01,0x9f,0x00,0x00, -0x01,0x06,0x01,0x62,0x54,0xb7,0x00,0x09,0xb1,0x01,0x03,0xb8,0xff,0xb7,0xb0,0x0d,0x2b,0x00,0x00,0x00,0x00,0x02,0x00,0x62,0xff,0xeb,0x04,0x80,0x04,0x4e,0x00,0x1c,0x00,0x2b,0x00,0xcf,0x40,0x14,0x00,0x00,0x29,0x27,0x21,0x1f,0x00,0x1c,0x00,0x1c,0x19,0x17,0x12,0x10,0x0c,0x0a,0x05,0x03,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58, -0x4b,0xb0,0x17,0x58,0x40,0x2e,0x1b,0x01,0x06,0x03,0x25,0x23,0x02,0x00,0x06,0x0e,0x08,0x02,0x01,0x00,0x03,0x15,0x00,0x06,0x06,0x03,0x01,0x00,0x1b,0x07,0x04,0x02,0x03,0x03,0x10,0x16,0x05,0x01,0x00,0x00,0x01,0x01,0x02,0x1b,0x02,0x01,0x01,0x01,0x0e,0x01,0x17,0x05,0x1b,0x4b,0xb0,0x21,0x58,0x40,0x32,0x1b,0x01,0x06,0x04,0x25, -0x23,0x02,0x00,0x06,0x0e,0x08,0x02,0x01,0x00,0x03,0x15,0x07,0x01,0x04,0x04,0x0a,0x16,0x00,0x06,0x06,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x10,0x16,0x05,0x01,0x00,0x00,0x01,0x01,0x02,0x1b,0x02,0x01,0x01,0x01,0x0e,0x01,0x17,0x06,0x1b,0x40,0x3e,0x1b,0x01,0x06,0x04,0x25,0x23,0x02,0x00,0x06,0x0e,0x08,0x02,0x01,0x05,0x03,0x15, -0x07,0x01,0x04,0x04,0x0a,0x16,0x00,0x06,0x06,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x10,0x16,0x00,0x00,0x00,0x01,0x01,0x02,0x1b,0x02,0x01,0x01,0x01,0x0e,0x16,0x00,0x05,0x05,0x01,0x01,0x00,0x1b,0x02,0x01,0x01,0x01,0x0e,0x01,0x17,0x08,0x59,0x59,0xb0,0x2f,0x2b,0x01,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x0e,0x01,0x23,0x22, -0x26,0x27,0x0e,0x01,0x23,0x22,0x02,0x3d,0x01,0x10,0x12,0x33,0x32,0x16,0x17,0x37,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x35,0x11,0x2e,0x01,0x23,0x22,0x06,0x15,0x03,0xe9,0x29,0x23,0x0f,0x1a,0x0b,0x17,0x1d,0x3c,0x25,0x4b,0x64,0x18,0x37,0x99,0x63,0xc6,0xe0,0xdf,0xc9,0x65,0x9b,0x37,0x33,0xfd,0xb3,0x87,0x8c,0x51,0x72,0x27,0x27, -0x73,0x4e,0x8d,0x88,0x04,0x39,0xfc,0xdb,0x48,0x38,0x03,0x04,0x8e,0x14,0x0e,0x40,0x45,0x42,0x43,0x01,0x1f,0xea,0x15,0x01,0x05,0x01,0x40,0x48,0x44,0x77,0xfd,0xbb,0xa4,0xcb,0x47,0x40,0x08,0x02,0x1d,0x3c,0x46,0xef,0xbb,0x00,0x00,0x02,0x00,0x9d,0xfe,0x81,0x04,0x4f,0x05,0xc5,0x00,0x14,0x00,0x2a,0x00,0x9f,0x40,0x18,0x16,0x15, -0x01,0x00,0x29,0x27,0x23,0x21,0x1c,0x1a,0x15,0x2a,0x16,0x2a,0x11,0x10,0x0d,0x0b,0x00,0x14,0x01,0x14,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x1f,0x58,0x40,0x39,0x06,0x01,0x06,0x03,0x1f,0x01,0x05,0x06,0x0f,0x01,0x01,0x05,0x03,0x15,0x08,0x01,0x03,0x00,0x06,0x05,0x03,0x06,0x01,0x00,0x1d,0x00,0x04,0x04,0x00,0x01, -0x00,0x1b,0x07,0x01,0x00,0x00,0x0d,0x16,0x00,0x05,0x05,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x16,0x00,0x02,0x02,0x0c,0x02,0x17,0x07,0x1b,0x40,0x39,0x06,0x01,0x06,0x03,0x1f,0x01,0x05,0x06,0x0f,0x01,0x01,0x05,0x03,0x15,0x00,0x02,0x01,0x02,0x2c,0x08,0x01,0x03,0x00,0x06,0x05,0x03,0x06,0x01,0x00,0x1d,0x00,0x04,0x04,0x00, -0x01,0x00,0x1b,0x07,0x01,0x00,0x00,0x0d,0x16,0x00,0x05,0x05,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x07,0x59,0xb0,0x2f,0x2b,0x01,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x01,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x11,0x23,0x11,0x34,0x24,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x1e,0x01,0x33,0x32,0x36, -0x35,0x34,0x26,0x2b,0x01,0x35,0x02,0x5f,0xc3,0xec,0x64,0x57,0x77,0x85,0xfd,0xca,0x52,0x99,0x3b,0xc5,0x01,0x0a,0xb4,0x7a,0x74,0x7d,0x6d,0x6b,0x92,0x2c,0x8d,0x59,0x81,0x95,0x83,0x6f,0x8f,0x05,0xc5,0xdc,0xae,0x5b,0x99,0x2d,0x2c,0xc4,0x81,0xd1,0xed,0x2d,0x2e,0xfe,0x3b,0x05,0xb0,0xa5,0xef,0xfd,0x97,0x79,0x6a,0x5f,0x8c,0x8f, -0x6a,0xfc,0xc2,0x34,0x3a,0xa0,0x80,0x70,0xac,0x9b,0x00,0x00,0x00,0x01,0x00,0x2e,0xfe,0x5f,0x03,0xe4,0x04,0x3a,0x00,0x0b,0x00,0x33,0x40,0x0a,0x0a,0x09,0x07,0x06,0x04,0x03,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1c,0x05,0x02,0x02,0x01,0x03,0x01,0x15,0x00,0x03,0x00,0x01,0x00,0x03,0x01,0x29,0x02,0x01,0x00, -0x00,0x0a,0x16,0x00,0x01,0x01,0x0c,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x33,0x01,0x11,0x23,0x11,0x01,0x33,0x01,0x17,0x33,0x37,0x03,0x1b,0xc9,0xfe,0x89,0xc5,0xfe,0x86,0xca,0x01,0x00,0x11,0x06,0x13,0x04,0x3a,0xfc,0x04,0xfe,0x21,0x01,0xe4,0x03,0xf7,0xfd,0x05,0x4c,0x4c,0x00,0x00,0x00,0x00,0x02,0x00,0x61,0xff,0xeb,0x04,0x2a, -0x05,0xb0,0x00,0x16,0x00,0x24,0x00,0x4b,0x40,0x14,0x18,0x17,0x00,0x00,0x1f,0x1d,0x17,0x24,0x18,0x24,0x00,0x16,0x00,0x16,0x0c,0x0a,0x02,0x01,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2a,0x15,0x01,0x00,0x02,0x01,0x15,0x06,0x01,0x03,0x00,0x04,0x00,0x03,0x04,0x29,0x00,0x00,0x00,0x02,0x00,0x00,0x1b,0x05,0x01,0x02,0x02, -0x07,0x16,0x00,0x04,0x04,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x15,0x21,0x07,0x01,0x1e,0x01,0x1d,0x01,0x14,0x00,0x23,0x22,0x00,0x3d,0x01,0x34,0x12,0x3f,0x02,0x25,0x35,0x01,0x22,0x06,0x1d,0x01,0x14,0x16,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x03,0xaa,0xfe,0x3a,0x02,0x01,0x73,0x65,0x70, -0xfe,0xfc,0xe0,0xe0,0xfe,0xfb,0xd3,0xb9,0x07,0x02,0xfe,0xd7,0x01,0x77,0x8d,0x91,0x91,0x8f,0x8d,0x92,0x93,0x05,0xb0,0x97,0x06,0xfe,0xeb,0x4b,0xf6,0x96,0x16,0xf2,0xfe,0xcc,0x01,0x35,0xf1,0x16,0xd7,0x01,0x2b,0x1e,0x01,0x06,0xec,0x76,0xfe,0x03,0xe2,0xaa,0x16,0xac,0xe0,0xe0,0xac,0x16,0xaa,0xe2,0x00,0x00,0x00,0x01,0x00,0x62, -0xff,0xed,0x03,0xe9,0x04,0x4c,0x00,0x2a,0x00,0x66,0x40,0x16,0x01,0x00,0x29,0x27,0x23,0x21,0x1f,0x1e,0x1b,0x19,0x0f,0x0d,0x0a,0x09,0x07,0x05,0x00,0x2a,0x01,0x2a,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x43,0x1d,0x01,0x05,0x06,0x14,0x01,0x00,0x07,0x0b,0x01,0x01,0x02,0x03,0x15,0x00,0x05,0x06,0x07,0x06,0x05,0x07,0x29, -0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x29,0x00,0x07,0x08,0x01,0x00,0x02,0x07,0x00,0x01,0x00,0x1d,0x00,0x06,0x06,0x04,0x01,0x00,0x1b,0x00,0x04,0x04,0x10,0x16,0x00,0x01,0x01,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17,0x08,0xb0,0x2f,0x2b,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x17,0x16,0x04,0x23,0x22, -0x26,0x35,0x34,0x36,0x37,0x2e,0x01,0x35,0x34,0x36,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x3b,0x01,0x15,0x02,0x1a,0x79,0x79,0x89,0x76,0x70,0x91,0xba,0x02,0x05,0xfe,0xf6,0xb8,0xca,0xfb,0x67,0x63,0x57,0x60,0xe9,0xc9,0xb7,0xf9,0x05,0x02,0xba,0x8b,0x64,0x74,0x79,0x6d,0x73,0xd1,0x01,0xdd,0x55, -0x57,0x49,0x64,0x70,0x4c,0x06,0xa2,0xab,0xad,0x97,0x5b,0x80,0x20,0x23,0x7a,0x49,0x96,0xa4,0xaf,0x8b,0x06,0x46,0x62,0x5f,0x43,0x4a,0x55,0x96,0x00,0x01,0x00,0x73,0xfe,0x58,0x03,0xca,0x05,0xb0,0x00,0x21,0x00,0x41,0x40,0x0e,0x00,0x00,0x00,0x21,0x00,0x21,0x20,0x1f,0x18,0x15,0x0a,0x07,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58, -0x40,0x26,0x01,0x01,0x02,0x03,0x01,0x15,0x10,0x0f,0x02,0x01,0x12,0x00,0x02,0x02,0x03,0x00,0x00,0x1b,0x04,0x01,0x03,0x03,0x07,0x16,0x00,0x00,0x00,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x08,0x01,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x15,0x01,0x0e,0x01,0x15,0x14,0x16,0x3b,0x01,0x32,0x16,0x15,0x0e,0x01,0x07,0x27,0x3e,0x01,0x35,0x34, -0x26,0x2b,0x01,0x22,0x26,0x35,0x34,0x12,0x37,0x01,0x27,0x21,0x35,0x03,0xca,0xfe,0xaa,0x81,0x71,0x69,0x66,0x20,0x9f,0xb4,0x02,0x9b,0x6d,0x51,0x42,0x5e,0x52,0x5a,0x34,0xb3,0xb9,0x8b,0x90,0x01,0x0c,0x02,0xfd,0x91,0x05,0xb0,0x70,0xfe,0x50,0x99,0xe3,0x91,0x74,0x75,0x7f,0x80,0x6f,0xa5,0x2f,0x7f,0x1f,0x56,0x46,0x34,0x3a,0xd6, -0xa8,0x78,0x01,0x41,0xa9,0x01,0x30,0x05,0x9b,0x00,0x00,0x00,0x00,0x01,0x00,0x8f,0xfe,0x61,0x03,0xf5,0x04,0x4e,0x00,0x13,0x00,0x6b,0x40,0x10,0x00,0x00,0x00,0x13,0x00,0x13,0x12,0x11,0x0e,0x0c,0x09,0x08,0x05,0x03,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x19,0x58,0x40,0x21,0x10,0x01,0x02,0x03,0x02,0x01,0x15,0x00, -0x02,0x02,0x00,0x01,0x00,0x1b,0x05,0x04,0x02,0x00,0x00,0x10,0x16,0x00,0x03,0x03,0x08,0x16,0x00,0x01,0x01,0x0c,0x01,0x17,0x05,0x1b,0x40,0x25,0x10,0x01,0x02,0x03,0x02,0x01,0x15,0x05,0x01,0x04,0x04,0x0a,0x16,0x00,0x02,0x02,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x10,0x16,0x00,0x03,0x03,0x08,0x16,0x00,0x01,0x01,0x0c,0x01,0x17, -0x06,0x59,0xb0,0x2f,0x2b,0x01,0x17,0x3e,0x01,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x01,0x3f,0x0d,0x36,0xa0,0x65,0xb1,0xbd,0xc5,0x72,0x74,0x55,0x7b,0x26,0xc5,0x04,0x3a,0x96,0x51,0x59,0xc3,0xe0,0xfb,0xb6,0x04,0x46,0x8f,0x7d,0x43,0x3c,0xfc,0xcc,0x04,0x3a,0x00,0x00,0x03,0x00,0x77, -0xff,0xeb,0x04,0x16,0x05,0xc5,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x3f,0x40,0x0e,0x1d,0x1b,0x18,0x17,0x14,0x12,0x0f,0x0e,0x0b,0x09,0x04,0x02,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x24,0x00,0x02,0x00,0x04,0x05,0x02,0x04,0x00,0x00,0x1d,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0d,0x16,0x00,0x05,0x05,0x00, -0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x14,0x02,0x23,0x22,0x02,0x35,0x11,0x34,0x12,0x33,0x32,0x12,0x15,0x05,0x21,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x21,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x04,0x16,0xfb,0xd4,0xd3,0xfd,0xfb,0xd3,0xd4,0xfd,0xfd,0x26,0x02,0x15,0x8c,0x80,0x7f,0x8a,0x02, -0x15,0xfd,0xeb,0x8d,0x7e,0x80,0x8a,0x02,0x02,0xf7,0xfe,0xe0,0x01,0x20,0xf7,0x01,0xac,0xf5,0x01,0x22,0xfe,0xde,0xf5,0x8b,0xb4,0x9d,0xb6,0xb6,0x9d,0xfe,0xb1,0xae,0x9d,0xb8,0xb7,0x9e,0x00,0x01,0x00,0xc5,0xff,0xeb,0x02,0x73,0x04,0x39,0x00,0x0f,0x00,0x37,0x40,0x0c,0x00,0x00,0x00,0x0f,0x00,0x0f,0x0c,0x0a,0x05,0x03,0x04,0x07, -0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1e,0x07,0x01,0x00,0x02,0x08,0x01,0x01,0x00,0x02,0x15,0x03,0x01,0x02,0x02,0x0a,0x16,0x00,0x00,0x00,0x01,0x01,0x02,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x0e,0x01,0x23,0x22,0x26,0x35,0x11,0x01,0x8a,0x35,0x2d,0x19,0x30,0x12, -0x2c,0x2d,0x59,0x35,0x77,0x7c,0x04,0x39,0xfc,0xd3,0x49,0x38,0x0f,0x0b,0x85,0x1f,0x16,0x8e,0x9e,0x03,0x22,0x00,0x00,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x04,0x40,0x04,0x3a,0x02,0x06,0x00,0xfa,0x00,0x00,0x00,0x01,0x00,0x38,0xff,0xef,0x04,0x5e,0x05,0xee,0x00,0x21,0x00,0xac,0x40,0x0e,0x1c,0x1a,0x15,0x13,0x0e,0x0c,0x09,0x08, -0x07,0x05,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x19,0x58,0x40,0x2b,0x0a,0x01,0x01,0x03,0x17,0x02,0x02,0x04,0x01,0x02,0x15,0x18,0x01,0x00,0x12,0x02,0x01,0x01,0x01,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0d,0x16,0x00,0x04,0x04,0x00,0x01,0x00,0x1b,0x05,0x01,0x00,0x00,0x08,0x00,0x17,0x06,0x1b,0x4b,0xb0, -0x1d,0x58,0x40,0x29,0x0a,0x01,0x01,0x03,0x17,0x02,0x02,0x04,0x01,0x02,0x15,0x18,0x01,0x00,0x12,0x00,0x03,0x02,0x01,0x01,0x04,0x03,0x01,0x01,0x00,0x1d,0x00,0x04,0x04,0x00,0x01,0x00,0x1b,0x05,0x01,0x00,0x00,0x08,0x00,0x17,0x05,0x1b,0x40,0x2d,0x0a,0x01,0x01,0x03,0x17,0x02,0x02,0x04,0x01,0x18,0x01,0x05,0x00,0x03,0x15,0x00, -0x03,0x02,0x01,0x01,0x04,0x03,0x01,0x01,0x00,0x1d,0x00,0x00,0x00,0x08,0x16,0x00,0x04,0x04,0x05,0x01,0x00,0x1b,0x00,0x05,0x05,0x0e,0x05,0x17,0x05,0x59,0x59,0xb0,0x2f,0x2b,0x21,0x23,0x01,0x27,0x2e,0x01,0x23,0x22,0x06,0x23,0x35,0x3e,0x01,0x33,0x32,0x16,0x17,0x01,0x1e,0x01,0x33,0x32,0x36,0x37,0x07,0x0e,0x01,0x23,0x22,0x26, -0x27,0x03,0x0f,0x01,0x01,0x13,0xdb,0x01,0x87,0x37,0x20,0x57,0x3c,0x0a,0x36,0x04,0x14,0x3f,0x18,0x81,0x99,0x28,0x01,0x68,0x16,0x47,0x2c,0x0e,0x09,0x18,0x03,0x0b,0x25,0x0b,0x76,0x8f,0x35,0xca,0x06,0x1d,0x04,0x04,0x91,0x54,0x6a,0x05,0x91,0x05,0x0a,0xa2,0x6c,0xfc,0x4e,0x47,0x54,0x01,0x04,0x9a,0x05,0x0a,0x82,0x8c,0x02,0x13, -0x01,0x71,0x00,0x00,0xff,0xff,0x00,0x99,0xfe,0x60,0x03,0xf2,0x04,0x3a,0x02,0x06,0x00,0x77,0x00,0x00,0xff,0xff,0x00,0x2e,0x00,0x00,0x03,0xe4,0x04,0x3a,0x02,0x06,0x00,0x59,0x00,0x00,0x00,0x01,0x00,0x56,0xfe,0x44,0x03,0xe3,0x05,0xb0,0x00,0x2e,0x00,0x52,0x40,0x14,0x00,0x00,0x00,0x2e,0x00,0x2e,0x2d,0x2c,0x21,0x1e,0x13,0x10, -0x0c,0x0a,0x09,0x07,0x03,0x01,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x31,0x26,0x01,0x02,0x01,0x01,0x15,0x19,0x18,0x02,0x04,0x12,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x01,0x00,0x1d,0x05,0x01,0x00,0x00,0x06,0x00,0x00,0x1b,0x07,0x01,0x06,0x06,0x07,0x16,0x00,0x03,0x03,0x04,0x01,0x00,0x1b,0x00,0x04,0x04,0x0e,0x04,0x17, -0x07,0xb0,0x2f,0x2b,0x01,0x15,0x21,0x0e,0x01,0x15,0x14,0x16,0x3b,0x01,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x3b,0x01,0x32,0x16,0x15,0x0e,0x01,0x07,0x27,0x3e,0x01,0x35,0x34,0x26,0x2b,0x01,0x22,0x24,0x35,0x34,0x36,0x37,0x2e,0x01,0x35,0x34,0x36,0x37,0x23,0x35,0x03,0x9a,0xfe,0xd8,0x7b,0x7d,0x91,0x9a,0x8f,0x8f,0xbb,0xc3,0xa0, -0x8d,0x3c,0xa1,0xb2,0x02,0x9b,0x6d,0x4f,0x41,0x5e,0x46,0x4b,0x44,0xde,0xfe,0xec,0x9f,0x98,0x6c,0x78,0x3d,0x3b,0xd7,0x05,0xb0,0x9b,0x08,0x82,0x60,0x5e,0x69,0x9b,0x9c,0x99,0x78,0x96,0x7f,0x81,0x6f,0xa4,0x2f,0x7f,0x1f,0x55,0x46,0x34,0x3c,0xe3,0xc8,0x91,0xc5,0x2c,0x28,0x8d,0x58,0x4d,0x79,0x28,0x9b,0x00,0xff,0xff,0x00,0x61, -0xff,0xeb,0x04,0x2a,0x04,0x4e,0x02,0x06,0x00,0x52,0x00,0x00,0x00,0x01,0x00,0x4f,0xff,0xeb,0x04,0xcc,0x04,0x3a,0x00,0x17,0x00,0x77,0x40,0x10,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0d,0x0b,0x06,0x04,0x01,0x00,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x27,0x08,0x01,0x01,0x00,0x09,0x01,0x02,0x01, -0x02,0x15,0x05,0x03,0x02,0x00,0x00,0x06,0x00,0x00,0x1b,0x00,0x06,0x06,0x0a,0x16,0x00,0x01,0x01,0x02,0x01,0x00,0x1b,0x04,0x01,0x02,0x02,0x0e,0x02,0x17,0x05,0x1b,0x40,0x2b,0x08,0x01,0x01,0x00,0x09,0x01,0x04,0x01,0x02,0x15,0x05,0x03,0x02,0x00,0x00,0x06,0x00,0x00,0x1b,0x00,0x06,0x06,0x0a,0x16,0x00,0x04,0x04,0x08,0x16,0x00, -0x01,0x01,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0e,0x02,0x17,0x06,0x59,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x0e,0x01,0x23,0x22,0x26,0x35,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x21,0x04,0x5e,0x7b,0x35,0x2d,0x19,0x30,0x12,0x2c,0x2d,0x59,0x35,0x77,0x7c,0xfe,0x91,0xc5,0x9b,0x04,0x0f,0x03,0x9e,0xfd, -0x6e,0x49,0x38,0x0f,0x0b,0x85,0x1f,0x16,0x8e,0x9e,0x02,0x87,0xfc,0x62,0x03,0x9e,0x9c,0x00,0x00,0x00,0x00,0x02,0x00,0x8f,0xfe,0x60,0x04,0x24,0x04,0x4e,0x00,0x10,0x00,0x1e,0x00,0x42,0x40,0x0c,0x1c,0x1a,0x15,0x13,0x0e,0x0c,0x08,0x07,0x04,0x02,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x29,0x18,0x01,0x04,0x03,0x06,0x01, -0x00,0x04,0x02,0x15,0x00,0x03,0x03,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x10,0x16,0x00,0x04,0x04,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x16,0x00,0x01,0x01,0x0c,0x01,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x14,0x02,0x23,0x22,0x26,0x27,0x11,0x23,0x11,0x35,0x34,0x00,0x33,0x32,0x12,0x11,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x1e, -0x01,0x33,0x32,0x36,0x35,0x04,0x24,0xdb,0xc5,0x61,0x98,0x37,0xc5,0x01,0x01,0xc0,0xe3,0xf1,0xc5,0x84,0x8b,0x7b,0x81,0x25,0x78,0x57,0x8b,0x8c,0x01,0xf4,0xeb,0xfe,0xe2,0x3c,0x3a,0xfd,0xff,0x03,0xe0,0x01,0xf7,0x01,0x16,0xfe,0xc3,0xfe,0xf8,0xbd,0xed,0xe7,0x8c,0xfe,0xd3,0x43,0x4b,0xcc,0xa3,0x00,0x00,0x00,0x00,0x01,0x00,0x62, -0xfe,0x57,0x03,0xe1,0x04,0x4e,0x00,0x22,0x00,0x38,0x40,0x0c,0x01,0x00,0x09,0x07,0x05,0x04,0x00,0x22,0x01,0x22,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1f,0x03,0x01,0x01,0x02,0x01,0x15,0x16,0x15,0x02,0x01,0x12,0x00,0x01,0x02,0x01,0x2c,0x00,0x02,0x02,0x00,0x01,0x00,0x1b,0x03,0x01,0x00,0x00,0x10,0x02,0x17,0x05,0xb0, -0x2f,0x2b,0x01,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x17,0x1e,0x01,0x15,0x0e,0x01,0x07,0x27,0x3e,0x01,0x35,0x34,0x26,0x27,0x26,0x02,0x3d,0x01,0x34,0x12,0x02,0x3d,0xbb,0xe9,0x04,0x02,0xb2,0x7a,0x72,0x8a,0x8c,0xa4,0xa6,0xb4,0xa8,0x02,0x9b,0x6d,0x51,0x42,0x5e,0x58,0x5f,0xfb,0xfe,0xff,0x04, -0x4e,0xd1,0xb2,0x06,0x67,0x87,0xe6,0x9b,0x2a,0x8f,0xc9,0x18,0x1a,0x6a,0x7b,0x6f,0xa4,0x2f,0x7f,0x1f,0x55,0x46,0x30,0x33,0x0d,0x23,0x01,0x0e,0xd7,0x2a,0xe3,0x01,0x39,0x00,0x00,0x00,0x00,0x02,0x00,0x61,0xff,0xeb,0x04,0x7c,0x04,0x3a,0x00,0x10,0x00,0x1e,0x00,0x34,0x40,0x0c,0x1c,0x1a,0x15,0x13,0x10,0x0e,0x09,0x07,0x01,0x00, -0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1b,0x04,0x01,0x00,0x00,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0a,0x16,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x1e,0x01,0x1d,0x01,0x14,0x00,0x23,0x22,0x00,0x3d,0x01,0x34,0x00,0x37,0x21,0x01,0x14,0x16,0x33,0x32,0x36,0x3d, -0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x04,0x7c,0xfe,0xeb,0x5e,0x65,0xfe,0xf8,0xdc,0xe0,0xfe,0xfb,0x01,0x03,0xdf,0x02,0x39,0xfc,0xaa,0x91,0x8f,0x8d,0x92,0x93,0x8e,0x8d,0x91,0x03,0x9e,0x48,0xd4,0x82,0x16,0xd2,0xfe,0xd3,0x01,0x35,0xf1,0x16,0xe7,0x01,0x2b,0x01,0xfd,0xd7,0xac,0xe0,0xe0,0xac,0x16,0xa1,0xd6,0xd6,0xa1,0x00,0x00, -0x00,0x01,0x00,0x51,0x00,0x00,0x03,0xdc,0x04,0x3a,0x00,0x07,0x00,0x2b,0x40,0x0a,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x14,0x02,0x01,0x00,0x00,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x0a,0x16,0x00,0x01,0x01,0x08,0x01,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x23,0x11,0x21,0x35, -0x21,0x03,0xdc,0xfe,0x9a,0xc5,0xfe,0xa0,0x03,0x8b,0x03,0xa1,0xfc,0x5f,0x03,0xa1,0x99,0x00,0x00,0x00,0x00,0x01,0x00,0x8d,0xff,0xeb,0x04,0x26,0x04,0x3a,0x00,0x15,0x00,0x30,0x40,0x0e,0x00,0x00,0x00,0x15,0x00,0x15,0x12,0x10,0x0b,0x0a,0x05,0x03,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x15,0x04,0x03,0x02,0x01,0x01,0x0a, -0x16,0x00,0x00,0x00,0x02,0x01,0x02,0x1b,0x00,0x02,0x02,0x0e,0x02,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x26,0x02,0x27,0x33,0x16,0x12,0x15,0x14,0x02,0x23,0x22,0x26,0x35,0x11,0x01,0x52,0x8a,0x75,0x89,0x87,0x03,0x42,0x37,0xce,0x33,0x40,0xde,0xed,0xdd,0xf1,0x04,0x3a,0xfd,0x9c,0xaf,0xa2,0xfd,0xb0, -0x7e,0x01,0x02,0x88,0x6b,0xfe,0xfd,0x9a,0xff,0xfe,0xb8,0xf2,0xfb,0x02,0x62,0x00,0x00,0x02,0x00,0x53,0xfe,0x22,0x05,0x57,0x04,0x3a,0x00,0x18,0x00,0x21,0x00,0x3a,0x40,0x0e,0x01,0x00,0x1c,0x1b,0x10,0x0f,0x08,0x07,0x00,0x18,0x01,0x18,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1f,0x1e,0x1d,0x17,0x09,0x06,0x05,0x01,0x03, -0x01,0x15,0x00,0x01,0x03,0x01,0x2c,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x02,0x04,0x02,0x00,0x00,0x0a,0x03,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x32,0x00,0x15,0x14,0x00,0x05,0x11,0x23,0x11,0x24,0x00,0x35,0x34,0x12,0x37,0x33,0x06,0x02,0x07,0x14,0x16,0x17,0x37,0x11,0x01,0x2e,0x01,0x0f,0x01,0x11,0x17,0x3e,0x01,0x03,0x2e,0xe4,0x01, -0x45,0xfe,0xf1,0xfe,0xe6,0xc5,0xfe,0xee,0xfe,0xfc,0x40,0x34,0xce,0x39,0x42,0x02,0xa3,0xa8,0x06,0x02,0x29,0x04,0xba,0xa0,0x06,0x06,0xb1,0xad,0x04,0x3a,0xfe,0xbf,0xed,0xda,0xfe,0xd5,0x17,0xfe,0x32,0x01,0xce,0x19,0x01,0x41,0xea,0x99,0x01,0x01,0x6c,0x86,0xfe,0xfe,0x7e,0x9b,0xee,0x17,0x02,0x03,0xa4,0xfd,0xd2,0xa3,0xed,0x04, -0x02,0xfc,0xfd,0x02,0x15,0xd9,0x00,0x00,0x00,0x01,0x00,0x5f,0xfe,0x4b,0x04,0x4b,0x04,0x49,0x00,0x25,0x01,0x02,0x40,0x18,0x01,0x00,0x22,0x21,0x20,0x1e,0x1a,0x19,0x18,0x17,0x14,0x12,0x0d,0x0b,0x07,0x06,0x05,0x04,0x00,0x25,0x01,0x25,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x40,0x23,0x01,0x07,0x00, -0x1b,0x08,0x02,0x05,0x01,0x0f,0x01,0x03,0x05,0x10,0x01,0x04,0x03,0x04,0x15,0x00,0x01,0x07,0x05,0x07,0x01,0x05,0x29,0x00,0x05,0x03,0x07,0x05,0x03,0x27,0x08,0x01,0x07,0x07,0x00,0x01,0x00,0x1b,0x02,0x09,0x02,0x00,0x00,0x10,0x16,0x00,0x03,0x03,0x04,0x01,0x02,0x1b,0x06,0x01,0x04,0x04,0x12,0x04,0x17,0x07,0x1b,0x4b,0xb0,0x21, -0x58,0x40,0x44,0x23,0x01,0x07,0x00,0x1b,0x08,0x02,0x05,0x01,0x0f,0x01,0x03,0x05,0x10,0x01,0x04,0x06,0x04,0x15,0x00,0x01,0x07,0x05,0x07,0x01,0x05,0x29,0x00,0x05,0x03,0x07,0x05,0x03,0x27,0x08,0x01,0x07,0x07,0x00,0x01,0x00,0x1b,0x02,0x09,0x02,0x00,0x00,0x10,0x16,0x00,0x06,0x06,0x0c,0x16,0x00,0x03,0x03,0x04,0x01,0x02,0x1b, -0x00,0x04,0x04,0x12,0x04,0x17,0x08,0x1b,0x40,0x49,0x1b,0x08,0x02,0x05,0x01,0x0f,0x01,0x03,0x05,0x10,0x01,0x04,0x06,0x03,0x15,0x23,0x01,0x02,0x01,0x14,0x00,0x01,0x07,0x05,0x07,0x01,0x05,0x29,0x00,0x05,0x03,0x07,0x05,0x03,0x27,0x00,0x02,0x02,0x0a,0x16,0x08,0x01,0x07,0x07,0x00,0x01,0x00,0x1b,0x09,0x01,0x00,0x00,0x10,0x16, -0x00,0x06,0x06,0x0c,0x16,0x00,0x03,0x03,0x04,0x01,0x02,0x1b,0x00,0x04,0x04,0x12,0x04,0x17,0x0a,0x59,0x59,0xb0,0x2f,0x2b,0x13,0x32,0x16,0x1f,0x01,0x33,0x13,0x33,0x01,0x13,0x1e,0x01,0x33,0x32,0x36,0x37,0x07,0x0e,0x01,0x23,0x22,0x26,0x27,0x03,0x23,0x01,0x23,0x01,0x03,0x2e,0x01,0x23,0x22,0x06,0x23,0x35,0x3e,0x01,0xca,0x81, -0x97,0x2a,0x5c,0x06,0xe9,0xc6,0xfe,0xab,0xcc,0x21,0x3e,0x2a,0x0e,0x0a,0x16,0x03,0x0a,0x24,0x0d,0x74,0x8b,0x35,0x7f,0x06,0xfe,0xf7,0xd1,0x01,0x7f,0xa3,0x21,0x56,0x3c,0x0a,0x36,0x04,0x14,0x3f,0x04,0x49,0xa0,0x6c,0xde,0x01,0xdb,0xfd,0x3d,0xfe,0x14,0x4b,0x4f,0x02,0x03,0x9c,0x06,0x09,0x82,0x8e,0x01,0x2c,0xfd,0xda,0x03,0x0e, -0x01,0x82,0x53,0x6a,0x05,0x91,0x05,0x0a,0x00,0x01,0x00,0x5b,0xfe,0x26,0x05,0x4d,0x04,0x3a,0x00,0x1d,0x00,0x35,0x40,0x0e,0x00,0x00,0x00,0x1d,0x00,0x1d,0x17,0x16,0x11,0x10,0x09,0x08,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1a,0x1c,0x12,0x0f,0x01,0x04,0x01,0x00,0x01,0x15,0x00,0x01,0x01,0x00,0x00,0x00,0x1b,0x04,0x03, -0x02,0x03,0x00,0x00,0x0a,0x01,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x11,0x17,0x3e,0x01,0x35,0x26,0x02,0x27,0x33,0x16,0x12,0x15,0x14,0x00,0x05,0x11,0x23,0x11,0x26,0x00,0x19,0x01,0x33,0x11,0x14,0x16,0x17,0x37,0x11,0x03,0x25,0x06,0xb1,0xac,0x03,0x42,0x38,0xcf,0x33,0x40,0xfe,0xf6,0xfe,0xe2,0xc6,0xf7,0xfe,0xf3,0xc5,0xa9,0x90,0x06, -0x04,0x39,0xfc,0x5c,0x02,0x17,0xf1,0x9c,0x7d,0x01,0x01,0x85,0x6a,0xff,0x00,0x99,0xf0,0xfe,0xbe,0x16,0xfe,0x37,0x01,0xcb,0x19,0x01,0x2e,0x01,0x1c,0x01,0xe6,0xfe,0x18,0xcf,0xdb,0x13,0x02,0x03,0xa2,0x00,0x00,0x01,0x00,0x6c,0xff,0xeb,0x06,0x60,0x04,0x3a,0x00,0x28,0x00,0x46,0x40,0x14,0x00,0x00,0x00,0x28,0x00,0x28,0x23,0x21, -0x1d,0x1b,0x16,0x15,0x10,0x0e,0x0b,0x0a,0x07,0x05,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x25,0x1f,0x01,0x00,0x01,0x01,0x15,0x00,0x01,0x03,0x00,0x03,0x01,0x00,0x29,0x07,0x06,0x02,0x03,0x03,0x0a,0x16,0x02,0x01,0x00,0x00,0x04,0x01,0x02,0x1b,0x05,0x01,0x04,0x04,0x0e,0x04,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x06,0x02,0x07, -0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x26,0x02,0x27,0x33,0x16,0x12,0x15,0x14,0x02,0x23,0x22,0x26,0x27,0x0e,0x01,0x23,0x22,0x02,0x35,0x34,0x12,0x37,0x01,0xd5,0x4a,0x56,0x04,0x70,0x78,0x6b,0x7f,0xc6,0x7e,0x6c,0x78,0x70,0x05,0x56,0x49,0xcf,0x44,0x56,0xca,0xd8,0x7f,0xaf,0x2a,0x2b,0xaf, -0x7d,0xd9,0xca,0x55,0x46,0x04,0x3a,0x86,0xfe,0xfd,0x7f,0xbe,0xef,0xa2,0xaf,0x01,0x2c,0xfe,0xd4,0xaf,0xa2,0xed,0xc0,0x7f,0x01,0x03,0x86,0x6a,0xfe,0xfc,0x9a,0xff,0xfe,0xb8,0x7a,0x77,0x77,0x7a,0x01,0x48,0xff,0x9b,0x01,0x04,0x69,0x00,0x00,0x00,0xff,0xff,0xff,0xd7,0xff,0xeb,0x02,0x88,0x05,0xb6,0x02,0x26,0x01,0x93,0x00,0x00, -0x01,0x07,0x00,0x6a,0xff,0x2d,0x00,0x06,0x00,0x08,0xb1,0x01,0x02,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x8d,0xff,0xeb,0x04,0x26,0x05,0xb6,0x02,0x26,0x01,0x9f,0x00,0x00,0x01,0x06,0x00,0x6a,0x56,0x06,0x00,0x08,0xb1,0x01,0x02,0xb0,0x06,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x2a,0x06,0x0e,0x02,0x26, -0x00,0x52,0x00,0x00,0x01,0x07,0x01,0x61,0x01,0x4a,0x00,0x07,0x00,0x08,0xb1,0x02,0x01,0xb0,0x07,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x8d,0xff,0xeb,0x04,0x26,0x05,0xfa,0x02,0x26,0x01,0x9f,0x00,0x00,0x01,0x07,0x01,0x61,0x01,0x5c,0xff,0xf3,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf3,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6c, -0xff,0xeb,0x06,0x60,0x05,0xfa,0x02,0x26,0x01,0xa3,0x00,0x00,0x01,0x07,0x01,0x61,0x02,0x6a,0xff,0xf3,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf3,0xb0,0x0d,0x2b,0x00,0x00,0x02,0x00,0x71,0xff,0xeb,0x04,0xb0,0x05,0xc5,0x00,0x1a,0x00,0x26,0x00,0x55,0x40,0x10,0x25,0x24,0x1f,0x1d,0x18,0x17,0x15,0x13,0x10,0x0f,0x0c,0x0a,0x05,0x03, -0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x38,0x1a,0x00,0x02,0x06,0x02,0x01,0x15,0x26,0x01,0x06,0x01,0x14,0x00,0x02,0x05,0x06,0x05,0x02,0x06,0x29,0x00,0x06,0x00,0x04,0x03,0x06,0x04,0x01,0x00,0x1d,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0d,0x16,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01, -0x17,0x08,0xb0,0x2f,0x2b,0x01,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x10,0x00,0x23,0x22,0x00,0x19,0x01,0x37,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x26,0x24,0x35,0x25,0x34,0x26,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x17,0x37,0x02,0x09,0xbd,0x97,0x9d,0xb6,0xfe,0xcf,0xf8,0xee,0xfe,0xd8,0xc5,0xb6,0x9b,0xa5,0xbe,0x02,0xda,0xfe, -0xf7,0x01,0xe3,0x49,0x46,0x42,0x4d,0x96,0x82,0x06,0x04,0x0c,0x3e,0xac,0xcf,0xca,0xb1,0xfe,0x06,0xfe,0xea,0xfe,0xb1,0x01,0x5c,0x01,0x09,0x02,0x94,0x02,0xfd,0x6a,0xc8,0xfc,0xed,0xd0,0x08,0xfb,0xc0,0x3e,0x6c,0x6d,0x6d,0x6c,0x40,0x78,0x9e,0x04,0x02,0x00,0x00,0x00,0x00,0x01,0xff,0xea,0x00,0x00,0x04,0x53,0x05,0xbb,0x00,0x23, -0x01,0xcc,0x40,0x0e,0x22,0x21,0x1d,0x1b,0x16,0x14,0x10,0x0f,0x0b,0x09,0x04,0x02,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x09,0x58,0x40,0x29,0x19,0x06,0x02,0x01,0x00,0x11,0x0e,0x02,0x02,0x05,0x02,0x15,0x00,0x05,0x01,0x02,0x01,0x05,0x02,0x29,0x03,0x01,0x01,0x01,0x00,0x01,0x00,0x1b,0x04,0x01,0x00,0x00,0x0d,0x16, -0x00,0x02,0x02,0x08,0x02,0x17,0x05,0x1b,0x4b,0xb0,0x0a,0x58,0x40,0x29,0x19,0x06,0x02,0x01,0x00,0x11,0x0e,0x02,0x02,0x05,0x02,0x15,0x00,0x05,0x01,0x02,0x01,0x05,0x02,0x29,0x03,0x01,0x01,0x01,0x00,0x01,0x00,0x1b,0x04,0x01,0x00,0x00,0x07,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x05,0x1b,0x4b,0xb0,0x0c,0x58,0x40,0x29,0x19,0x06, -0x02,0x01,0x00,0x11,0x0e,0x02,0x02,0x05,0x02,0x15,0x00,0x05,0x01,0x02,0x01,0x05,0x02,0x29,0x03,0x01,0x01,0x01,0x00,0x01,0x00,0x1b,0x04,0x01,0x00,0x00,0x0d,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x05,0x1b,0x4b,0xb0,0x10,0x58,0x40,0x29,0x19,0x06,0x02,0x01,0x00,0x11,0x0e,0x02,0x02,0x05,0x02,0x15,0x00,0x05,0x01,0x02,0x01,0x05, -0x02,0x29,0x03,0x01,0x01,0x01,0x00,0x01,0x00,0x1b,0x04,0x01,0x00,0x00,0x07,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x05,0x1b,0x4b,0xb0,0x12,0x58,0x40,0x29,0x19,0x06,0x02,0x01,0x00,0x11,0x0e,0x02,0x02,0x05,0x02,0x15,0x00,0x05,0x01,0x02,0x01,0x05,0x02,0x29,0x03,0x01,0x01,0x01,0x00,0x01,0x00,0x1b,0x04,0x01,0x00,0x00,0x0d,0x16, -0x00,0x02,0x02,0x08,0x02,0x17,0x05,0x1b,0x4b,0xb0,0x14,0x58,0x40,0x29,0x19,0x06,0x02,0x01,0x00,0x11,0x0e,0x02,0x02,0x05,0x02,0x15,0x00,0x05,0x01,0x02,0x01,0x05,0x02,0x29,0x03,0x01,0x01,0x01,0x00,0x01,0x00,0x1b,0x04,0x01,0x00,0x00,0x07,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x05,0x1b,0x4b,0xb0,0x17,0x58,0x40,0x29,0x19,0x06, -0x02,0x01,0x00,0x11,0x0e,0x02,0x02,0x05,0x02,0x15,0x00,0x05,0x01,0x02,0x01,0x05,0x02,0x29,0x03,0x01,0x01,0x01,0x00,0x01,0x00,0x1b,0x04,0x01,0x00,0x00,0x0d,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x05,0x1b,0x4b,0xb0,0x19,0x58,0x40,0x29,0x19,0x06,0x02,0x01,0x00,0x11,0x0e,0x02,0x02,0x05,0x02,0x15,0x00,0x05,0x01,0x02,0x01,0x05, -0x02,0x29,0x03,0x01,0x01,0x01,0x00,0x01,0x00,0x1b,0x04,0x01,0x00,0x00,0x07,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x05,0x1b,0x40,0x29,0x19,0x06,0x02,0x01,0x00,0x11,0x0e,0x02,0x02,0x05,0x02,0x15,0x00,0x05,0x01,0x02,0x01,0x05,0x02,0x29,0x03,0x01,0x01,0x01,0x00,0x01,0x00,0x1b,0x04,0x01,0x00,0x00,0x0d,0x16,0x00,0x02,0x02,0x08, -0x02,0x17,0x05,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0x59,0xb0,0x2f,0x2b,0x01,0x3e,0x01,0x33,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x07,0x01,0x11,0x23,0x11,0x01,0x2e,0x01,0x23,0x22,0x06,0x07,0x27,0x3e,0x01,0x33,0x32,0x16,0x17,0x13,0x17,0x33,0x37,0x02,0xe6,0x33,0x7b,0x51,0x22,0x32,0x1a,0x17,0x05,0x16,0x0d,0x21,0x37, -0x10,0xfe,0xd4,0xc4,0xfe,0xd4,0x11,0x37,0x20,0x0e,0x15,0x05,0x16,0x18,0x32,0x23,0x50,0x7b,0x34,0xb2,0x13,0x06,0x13,0x04,0xd7,0x7c,0x68,0x0a,0x0e,0x98,0x03,0x05,0x23,0x27,0xfd,0x79,0xfd,0xbe,0x02,0x42,0x02,0x87,0x27,0x23,0x05,0x03,0x98,0x0e,0x0a,0x68,0x7c,0xfe,0x6a,0x46,0x46,0x00,0x00,0x02,0x00,0x4e,0xff,0xeb,0x06,0x19, -0x04,0x3a,0x00,0x16,0x00,0x2c,0x00,0x4d,0x40,0x14,0x2b,0x29,0x26,0x25,0x22,0x20,0x1b,0x1a,0x16,0x15,0x14,0x13,0x0e,0x0c,0x08,0x06,0x01,0x00,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2c,0x0a,0x01,0x06,0x07,0x01,0x15,0x00,0x07,0x00,0x06,0x00,0x07,0x06,0x29,0x05,0x03,0x02,0x00,0x00,0x04,0x00,0x00,0x1b,0x00,0x04,0x04, -0x0a,0x16,0x08,0x01,0x06,0x06,0x01,0x01,0x00,0x1b,0x02,0x01,0x01,0x01,0x0e,0x01,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x23,0x1e,0x01,0x15,0x14,0x02,0x23,0x22,0x26,0x27,0x0e,0x01,0x23,0x22,0x02,0x35,0x34,0x36,0x37,0x23,0x35,0x21,0x01,0x2e,0x01,0x27,0x21,0x0e,0x01,0x07,0x14,0x16,0x33,0x32,0x36,0x3d,0x01,0x33,0x15,0x14,0x16,0x33, -0x32,0x36,0x06,0x19,0x85,0x1d,0x21,0xae,0xb8,0x77,0xa5,0x28,0x29,0xa4,0x76,0xb9,0xad,0x20,0x1e,0x6f,0x05,0xcb,0xfe,0xf4,0x03,0x28,0x22,0xfc,0xd1,0x23,0x28,0x02,0x53,0x59,0x62,0x74,0xc6,0x73,0x63,0x57,0x54,0x03,0x9e,0x51,0xb6,0x65,0xfe,0xfe,0xb7,0x79,0x74,0x75,0x78,0x01,0x49,0xfe,0x65,0xb6,0x51,0x9c,0xfd,0xf8,0x59,0xb6, -0x5d,0x5e,0xb6,0x58,0xbe,0xef,0xa2,0xaf,0xfa,0xfa,0xaf,0xa2,0xee,0x00,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x2b,0x07,0x4b,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xd4,0x01,0x5d,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x2b,0x07,0x0d,0x02,0x26, -0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x6a,0x00,0x69,0x01,0x5d,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0x00,0x01,0x00,0x39,0xff,0xce,0x05,0xa0,0x05,0xb0,0x00,0x17,0x00,0x43,0x40,0x0e,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x0f,0x04,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x28,0x0a,0x01, -0x03,0x02,0x01,0x15,0x09,0x01,0x03,0x12,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x01,0x00,0x1d,0x04,0x01,0x00,0x00,0x05,0x00,0x00,0x1b,0x00,0x05,0x05,0x07,0x16,0x00,0x03,0x03,0x08,0x03,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x33,0x32,0x00,0x15,0x06,0x02,0x07,0x27,0x3e,0x01,0x35,0x2e,0x01,0x2b,0x01,0x11,0x23,0x11,0x21,0x35, -0x21,0x04,0xb8,0xfe,0x20,0xb5,0xeb,0x01,0x28,0x02,0xc3,0xbe,0x33,0x80,0x70,0x01,0xb6,0x96,0xb5,0xc5,0xfe,0x26,0x04,0x7f,0x05,0x15,0xfe,0x5b,0xff,0x00,0xdc,0x8a,0xfe,0xe6,0x22,0x94,0x22,0x9d,0x73,0x93,0xa4,0xfd,0x35,0x05,0x15,0x9b,0x00,0x00,0xff,0xff,0x00,0xa3,0x00,0x00,0x04,0x20,0x07,0x47,0x02,0x26,0x01,0x6e,0x00,0x00, -0x01,0x07,0x00,0x76,0x01,0x85,0x01,0x59,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x59,0xb0,0x0d,0x2b,0x00,0x00,0x01,0x00,0x87,0xff,0xec,0x04,0xd0,0x05,0xc6,0x00,0x21,0x00,0x62,0x40,0x16,0x00,0x00,0x00,0x21,0x00,0x21,0x1f,0x1d,0x1a,0x19,0x18,0x17,0x14,0x12,0x10,0x0f,0x0c,0x0a,0x05,0x03,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58, -0x40,0x3f,0x0e,0x01,0x02,0x03,0x01,0x01,0x06,0x07,0x02,0x15,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x29,0x08,0x01,0x07,0x05,0x06,0x05,0x07,0x06,0x29,0x00,0x04,0x00,0x05,0x07,0x04,0x05,0x00,0x00,0x1d,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0d,0x16,0x00,0x06,0x06,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17, -0x08,0xb0,0x2f,0x2b,0x01,0x17,0x16,0x00,0x23,0x22,0x00,0x19,0x01,0x10,0x00,0x33,0x32,0x00,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x02,0x1d,0x01,0x21,0x15,0x21,0x15,0x14,0x12,0x33,0x32,0x36,0x35,0x04,0xca,0x02,0x04,0xfe,0xd8,0xf3,0xf7,0xfe,0xc9,0x01,0x37,0xf7,0xf7,0x01,0x24,0x04,0x02,0xbd,0xb4,0xa4,0xa5,0xc4,0x02,0x32,0xfd, -0xce,0xc4,0xa5,0xa4,0xb4,0x01,0xd3,0x06,0xcd,0xfe,0xec,0x01,0x5e,0x01,0x0d,0x01,0x03,0x01,0x0d,0x01,0x5f,0xfe,0xf9,0xd9,0x06,0x99,0xb2,0xfe,0xf6,0xc5,0x2f,0x9a,0x3c,0xc7,0xfe,0xf6,0xb1,0x9c,0x00,0x00,0x00,0x01,0x00,0x6d,0xff,0xeb,0x04,0x77,0x05,0xc5,0x00,0x27,0x00,0x4e,0x40,0x0e,0x26,0x24,0x22,0x21,0x1e,0x1c,0x12,0x10, -0x0e,0x0d,0x0a,0x08,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x33,0x0c,0x01,0x01,0x02,0x20,0x01,0x05,0x04,0x02,0x15,0x00,0x01,0x02,0x04,0x02,0x01,0x04,0x29,0x00,0x04,0x05,0x02,0x04,0x05,0x27,0x00,0x02,0x02,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0d,0x16,0x00,0x05,0x05,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17, -0x07,0xb0,0x2f,0x2b,0x01,0x34,0x26,0x27,0x2e,0x01,0x35,0x34,0x24,0x33,0x32,0x00,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x01,0x15,0x14,0x04,0x23,0x22,0x24,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x03,0xb2,0x8e,0xb3,0xde,0xf9,0x01,0x0c,0xd6,0xe6,0x01,0x11,0x04,0x03,0xbc,0xad,0x87,0x8a,0x93,0xa1, -0xb5,0xdc,0xe6,0xfe,0xeb,0xdf,0xd3,0xfe,0xbd,0x05,0x02,0xbc,0xd0,0x83,0x8c,0xa3,0x01,0x6f,0x63,0x86,0x2f,0x37,0xd6,0xa2,0xab,0xe4,0xfe,0xfb,0xae,0x06,0x7c,0xa2,0x86,0x6b,0x5f,0x7f,0x30,0x39,0xde,0xa3,0xb0,0xd6,0xec,0xc6,0x06,0x89,0x95,0x7e,0xff,0xff,0x00,0xbe,0x00,0x00,0x01,0x84,0x05,0xb0,0x02,0x06,0x00,0x2c,0x00,0x00, -0xff,0xff,0xff,0xca,0x00,0x00,0x02,0x7b,0x07,0x0d,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x6a,0xff,0x20,0x01,0x5d,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x4a,0xff,0xeb,0x03,0xbc,0x05,0xb0,0x02,0x06,0x00,0x2d,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x08,0x49,0x05,0xb0,0x00,0x16, -0x00,0x1f,0x00,0x4f,0x40,0x1a,0x17,0x17,0x00,0x00,0x17,0x1f,0x17,0x1e,0x1a,0x18,0x00,0x16,0x00,0x16,0x13,0x11,0x10,0x0e,0x0b,0x0a,0x09,0x07,0x03,0x01,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x28,0x00,0x00,0x09,0x01,0x07,0x04,0x00,0x07,0x01,0x00,0x1d,0x00,0x02,0x02,0x05,0x00,0x00,0x1b,0x08,0x01,0x05,0x05,0x07,0x16, -0x06,0x01,0x04,0x04,0x01,0x01,0x00,0x1b,0x03,0x01,0x01,0x01,0x08,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x11,0x21,0x32,0x04,0x15,0x14,0x04,0x23,0x21,0x11,0x21,0x03,0x0a,0x01,0x2b,0x01,0x35,0x33,0x32,0x12,0x13,0x11,0x01,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x04,0xf7,0x01,0x67,0xe8,0x01,0x03,0xfe,0xfd,0xe8,0xfd,0xd4,0xfe, -0x08,0x01,0x01,0xd7,0xfb,0x34,0x28,0x96,0x84,0x01,0x03,0x82,0x01,0x67,0x93,0x93,0x93,0x93,0x05,0xb0,0xfd,0xc9,0xf7,0xc6,0xc6,0xf6,0x05,0x15,0xfd,0xed,0xfe,0x6f,0xfe,0x8f,0x9a,0x01,0x1d,0x01,0x4b,0x02,0xae,0xfd,0x2f,0xfd,0xbb,0xa9,0x7b,0x79,0xa8,0x00,0x00,0x00,0x00,0x02,0x00,0xa8,0x00,0x00,0x08,0x49,0x05,0xb0,0x00,0x12, -0x00,0x1b,0x00,0xaa,0x40,0x18,0x13,0x13,0x13,0x1b,0x13,0x1a,0x16,0x14,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0a,0x06,0x04,0x03,0x02,0x01,0x00,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x26,0x58,0x40,0x22,0x02,0x01,0x00,0x09,0x08,0x02,0x04,0x07,0x00,0x04,0x01,0x00,0x1d,0x06,0x01,0x01,0x01,0x07,0x16,0x00,0x07,0x07, -0x03,0x01,0x02,0x1b,0x05,0x01,0x03,0x03,0x08,0x03,0x17,0x04,0x1b,0x4b,0xb0,0x2a,0x58,0x40,0x29,0x00,0x02,0x00,0x04,0x02,0x01,0x00,0x1a,0x00,0x00,0x09,0x08,0x02,0x04,0x07,0x00,0x04,0x01,0x00,0x1d,0x06,0x01,0x01,0x01,0x07,0x16,0x00,0x07,0x07,0x03,0x01,0x02,0x1b,0x05,0x01,0x03,0x03,0x08,0x03,0x17,0x05,0x1b,0x40,0x2a,0x00, -0x02,0x09,0x01,0x08,0x04,0x02,0x08,0x01,0x00,0x1d,0x00,0x00,0x00,0x04,0x07,0x00,0x04,0x00,0x00,0x1d,0x06,0x01,0x01,0x01,0x07,0x16,0x00,0x07,0x07,0x03,0x01,0x02,0x1b,0x05,0x01,0x03,0x03,0x08,0x03,0x17,0x05,0x59,0x59,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x33,0x11,0x21,0x32,0x04,0x15,0x14,0x04,0x23,0x21,0x11,0x21,0x11,0x23,0x11, -0x33,0x01,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x01,0x6d,0x02,0xc5,0xc5,0x01,0x67,0xe9,0x01,0x02,0xfe,0xfd,0xe8,0xfd,0xd4,0xfd,0x3b,0xc5,0xc5,0x03,0x8a,0x01,0x67,0x94,0x92,0x92,0x94,0x03,0x3b,0x02,0x75,0xfd,0x98,0xe4,0xbc,0xbd,0xeb,0x02,0xa1,0xfd,0x5f,0x05,0xb0,0xfc,0xfd,0xfd,0xf8,0x94,0x71,0x70,0x93,0x00,0x00,0x00, -0x00,0x01,0x00,0x49,0x00,0x00,0x05,0xf7,0x05,0xb0,0x00,0x13,0x00,0x3c,0x40,0x10,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0b,0x08,0x07,0x04,0x02,0x01,0x00,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1f,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x01,0x00,0x1d,0x05,0x01,0x00,0x00,0x06,0x00,0x00,0x1b,0x00,0x06,0x06,0x07,0x16,0x04, -0x01,0x02,0x02,0x08,0x02,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x21,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x04,0xc8,0xfe,0x20,0x01,0x26,0xee,0xfb,0xc5,0x8c,0x98,0xfe,0xda,0xc5,0xfe,0x26,0x04,0x7f,0x05,0x15,0xfe,0xac,0xdd,0xef,0xfe,0x0b,0x01,0xf5,0xa8,0x89,0xfc,0xda,0x05,0x15, -0x9b,0x00,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x05,0x01,0x06,0xef,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x7f,0x01,0x01,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x01,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xad,0x00,0x00,0x04,0xfa,0x07,0x4b,0x02,0x26,0x01,0xc4,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x3f,0x01,0x5d, -0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x42,0xff,0xeb,0x04,0xc8,0x07,0x4e,0x02,0x26,0x01,0xcf,0x00,0x00,0x01,0x07,0x01,0x54,0x00,0xda,0x01,0x9e,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x9e,0xb0,0x0d,0x2b,0x00,0x00,0x01,0x00,0xa8,0xfe,0x99,0x04,0xf7,0x05,0xb0,0x00,0x0b,0x00,0x35,0x40,0x0e, -0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1a,0x00,0x04,0x03,0x04,0x2c,0x02,0x01,0x00,0x00,0x07,0x16,0x00,0x01,0x01,0x03,0x00,0x02,0x1b,0x05,0x01,0x03,0x03,0x08,0x03,0x17,0x04,0xb0,0x2f,0x2b,0x13,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x23,0x11,0x21,0xa8, -0xc5,0x02,0xc5,0xc5,0xfe,0x42,0xc5,0xfe,0x34,0x05,0xb0,0xfa,0xea,0x05,0x16,0xfa,0x50,0xfe,0x99,0x01,0x67,0x00,0x00,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x05,0xb0,0x02,0x06,0x00,0x24,0x00,0x00,0x00,0x02,0x00,0xa3,0x00,0x00,0x04,0xbb,0x05,0xb0,0x00,0x0c,0x00,0x15,0x00,0x44,0x40,0x12,0x0d,0x0d,0x0d,0x15,0x0d,0x14, -0x10,0x0e,0x0c,0x0b,0x0a,0x08,0x04,0x02,0x01,0x00,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x25,0x00,0x01,0x06,0x01,0x05,0x04,0x01,0x05,0x01,0x00,0x1d,0x00,0x00,0x00,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x07,0x16,0x00,0x04,0x04,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x08,0x02,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x21, -0x32,0x04,0x15,0x14,0x04,0x23,0x21,0x11,0x21,0x01,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x04,0x20,0xfd,0x48,0x01,0x67,0xe9,0x01,0x03,0xfe,0xfc,0xe8,0xfd,0xd4,0x03,0x7d,0xfd,0x48,0x01,0x67,0x93,0x94,0x93,0x94,0x05,0x15,0xfe,0x5b,0xef,0xc5,0xc6,0xf6,0x05,0xb0,0xfd,0x25,0xfd,0xc5,0xa9,0x7b,0x77,0xa0,0xff,0xff,0x00,0xaa, -0x00,0x00,0x04,0xcd,0x05,0xb0,0x02,0x06,0x00,0x25,0x00,0x00,0xff,0xff,0x00,0xa3,0x00,0x00,0x04,0x20,0x05,0xb0,0x02,0x06,0x01,0x6e,0x00,0x00,0x00,0x02,0x00,0x36,0xfe,0x99,0x05,0xee,0x05,0xb0,0x00,0x0e,0x00,0x15,0x00,0x43,0x40,0x12,0x15,0x14,0x13,0x12,0x0e,0x0d,0x0c,0x0b,0x08,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x08,0x07, -0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x24,0x02,0x01,0x00,0x03,0x00,0x00,0x00,0x19,0x00,0x07,0x07,0x04,0x00,0x00,0x1b,0x00,0x04,0x04,0x07,0x16,0x06,0x05,0x02,0x03,0x03,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x08,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x32,0x12,0x1b,0x01,0x21,0x11,0x33,0x01,0x06, -0x02,0x07,0x21,0x11,0x21,0x05,0xee,0xc5,0xfb,0xd2,0xc5,0x68,0x84,0x83,0x12,0x21,0x03,0x4f,0xc7,0xfc,0x90,0x0d,0x51,0x4d,0x02,0x8f,0xfe,0x33,0xfe,0x9b,0x01,0x65,0xfe,0x99,0x02,0x01,0x01,0x6b,0x01,0x5e,0x02,0x4d,0xfa,0xea,0x02,0xc9,0xf9,0xfe,0x9b,0x6b,0x04,0x7b,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x2b,0x05,0xb0,0x02,0x06, -0x00,0x28,0x00,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x06,0x7c,0x05,0xb0,0x00,0x15,0x00,0x46,0x40,0x16,0x15,0x14,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x23,0x13,0x08,0x02,0x00,0x05,0x01,0x15,0x07,0x01,0x05,0x02,0x01,0x00,0x01, -0x05,0x00,0x00,0x00,0x1d,0x08,0x06,0x02,0x04,0x04,0x07,0x16,0x09,0x03,0x02,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x23,0x11,0x23,0x01,0x23,0x09,0x01,0x33,0x01,0x33,0x11,0x33,0x11,0x33,0x01,0x33,0x09,0x01,0x23,0x03,0xe7,0x36,0xc4,0x3f,0xfe,0x61,0xf5,0x01,0xef,0xfe,0x39,0xe6,0x01,0x84,0x41,0xc4,0x39, -0x01,0x84,0xe6,0xfe,0x39,0x01,0xef,0xf5,0x02,0x9c,0xfd,0x64,0x02,0x9c,0xfd,0x64,0x03,0x02,0x02,0xae,0xfd,0x87,0x02,0x79,0xfd,0x87,0x02,0x79,0xfd,0x53,0xfc,0xfd,0x00,0x01,0x00,0x78,0xff,0xeb,0x04,0xdf,0x05,0xc5,0x00,0x2a,0x00,0x61,0x40,0x12,0x29,0x27,0x24,0x23,0x21,0x1f,0x1b,0x19,0x18,0x16,0x12,0x10,0x0e,0x0d,0x0a,0x08, -0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x42,0x25,0x01,0x06,0x05,0x03,0x01,0x03,0x04,0x0c,0x01,0x02,0x01,0x03,0x15,0x00,0x06,0x05,0x04,0x05,0x06,0x04,0x29,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x29,0x00,0x04,0x00,0x03,0x01,0x04,0x03,0x01,0x00,0x1d,0x00,0x05,0x05,0x07,0x01,0x00,0x1b,0x00,0x07,0x07,0x0d,0x16,0x00,0x02, -0x02,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17,0x08,0xb0,0x2f,0x2b,0x01,0x14,0x06,0x07,0x1e,0x01,0x15,0x14,0x04,0x21,0x22,0x24,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x2b,0x01,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x27,0x26,0x24,0x33,0x20,0x04,0x04,0xc9,0x88,0x78,0x87,0x8f, -0xfe,0xc1,0xfe,0xfe,0xe2,0xfe,0xbc,0x05,0x02,0xbc,0xc6,0x9d,0xb2,0xca,0xb8,0xb4,0xb7,0xb7,0xae,0xa8,0xb5,0xb1,0x8d,0xc1,0xbc,0x01,0x06,0x01,0x31,0xe0,0x01,0x01,0x01,0x2a,0x04,0x26,0x65,0xa7,0x2f,0x2a,0xae,0x7d,0xc9,0xe2,0xd6,0xcd,0x06,0x72,0x9d,0x95,0x78,0x85,0x81,0x9c,0x84,0x72,0x70,0x90,0x8e,0x69,0x06,0xb0,0xdc,0xd8, -0x00,0x01,0x00,0xad,0x00,0x00,0x04,0xfa,0x05,0xb0,0x00,0x0b,0x00,0x2c,0x40,0x0a,0x09,0x08,0x07,0x06,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x15,0x0a,0x04,0x02,0x01,0x00,0x01,0x15,0x03,0x01,0x00,0x00,0x07,0x16,0x02,0x01,0x01,0x01,0x08,0x01,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x33,0x11,0x23,0x11,0x27, -0x01,0x23,0x11,0x33,0x11,0x17,0x04,0x35,0xc5,0xc5,0x06,0xfd,0x43,0xc5,0xc5,0x06,0x05,0xb0,0xfa,0x50,0x04,0x56,0x02,0xfb,0xa8,0x05,0xb0,0xfb,0xab,0x02,0x00,0x00,0xff,0xff,0x00,0xad,0x00,0x00,0x04,0xfa,0x07,0x4e,0x02,0x26,0x01,0xc4,0x00,0x00,0x01,0x07,0x01,0x54,0x01,0x2a,0x01,0x9e,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x9e, -0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x05,0x01,0x05,0xb0,0x02,0x06,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x31,0x00,0x00,0x04,0xf7,0x05,0xb0,0x00,0x0f,0x00,0x39,0x40,0x10,0x00,0x00,0x00,0x0f,0x00,0x0f,0x0c,0x0a,0x09,0x07,0x04,0x03,0x02,0x01,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1c,0x00,0x01,0x01,0x04, -0x00,0x00,0x1b,0x05,0x01,0x04,0x04,0x07,0x16,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x02,0x01,0x00,0x00,0x08,0x00,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x11,0x23,0x11,0x21,0x03,0x10,0x02,0x2b,0x01,0x35,0x33,0x32,0x12,0x1b,0x01,0x04,0xf7,0xc5,0xfd,0xf2,0x01,0xce,0xef,0x35,0x29,0x8a,0x7a,0x01,0x01,0x05,0xb0,0xfa,0x50,0x05,0x15,0xfd, -0xed,0xfe,0x70,0xfe,0x8e,0x9a,0x01,0x1d,0x01,0x4b,0x02,0xae,0xff,0xff,0x00,0xaa,0x00,0x00,0x06,0x48,0x05,0xb0,0x02,0x06,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xf7,0x05,0xb0,0x02,0x06,0x00,0x2b,0x00,0x00,0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x02,0x05,0xc5,0x02,0x06,0x00,0x32,0x00,0x00,0xff,0xff,0x00,0xa8, -0x00,0x00,0x04,0xf7,0x05,0xb0,0x02,0x06,0x01,0x7b,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xc3,0x05,0xb0,0x02,0x06,0x00,0x33,0x00,0x00,0xff,0xff,0x00,0x76,0xff,0xeb,0x04,0xbf,0x05,0xc5,0x02,0x06,0x00,0x26,0x00,0x00,0xff,0xff,0x00,0x25,0x00,0x00,0x04,0xa4,0x05,0xb0,0x02,0x06,0x00,0x37,0x00,0x00,0x00,0x01,0x00,0x42, -0xff,0xeb,0x04,0xc8,0x05,0xb0,0x00,0x15,0x00,0x3f,0x40,0x0c,0x15,0x14,0x10,0x0e,0x09,0x07,0x04,0x03,0x02,0x01,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x26,0x0c,0x01,0x03,0x00,0x0b,0x01,0x02,0x03,0x02,0x15,0x00,0x00,0x01,0x03,0x01,0x00,0x03,0x29,0x04,0x01,0x01,0x01,0x07,0x16,0x00,0x03,0x03,0x02,0x01,0x02,0x1b,0x00, -0x02,0x02,0x0e,0x02,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x17,0x33,0x01,0x33,0x01,0x0e,0x01,0x23,0x22,0x26,0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x3f,0x01,0x01,0x33,0x02,0x38,0x4a,0x06,0x01,0x5c,0xe4,0xfd,0xef,0x38,0xa0,0x9a,0x41,0x71,0x21,0x19,0x21,0x60,0x24,0x52,0x62,0x1e,0x27,0xfe,0x19,0xdd,0x03,0x07,0xbf,0x03,0x68,0xfb,0x3f, -0x7c,0x88,0x16,0x0f,0x90,0x0a,0x11,0x55,0x43,0x53,0x04,0x40,0xff,0xff,0x00,0x54,0x00,0x00,0x05,0x4d,0x05,0xb0,0x02,0x06,0x01,0x80,0x00,0x00,0xff,0xff,0x00,0x42,0x00,0x00,0x04,0xd6,0x05,0xb0,0x02,0x06,0x00,0x3b,0x00,0x00,0x00,0x01,0x00,0xa1,0xfe,0x99,0x05,0xad,0x05,0xb0,0x00,0x0b,0x00,0x37,0x40,0x0e,0x0b,0x0a,0x09,0x08, -0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1c,0x00,0x04,0x01,0x04,0x00,0x02,0x19,0x02,0x01,0x00,0x00,0x07,0x16,0x03,0x01,0x01,0x01,0x05,0x00,0x02,0x1b,0x00,0x05,0x05,0x08,0x05,0x17,0x04,0xb0,0x2f,0x2b,0x13,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x21,0xa1,0xc5,0x02, -0xc5,0xc5,0xbd,0xc5,0xfb,0xb9,0x05,0xb0,0xfa,0xeb,0x05,0x15,0xfa,0xf0,0xfd,0xf9,0x01,0x67,0x00,0x00,0x00,0x01,0x00,0x93,0x00,0x00,0x04,0xcc,0x05,0xb0,0x00,0x13,0x00,0x3f,0x40,0x10,0x00,0x00,0x00,0x13,0x00,0x13,0x10,0x0e,0x0b,0x0a,0x07,0x05,0x02,0x01,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x22,0x12,0x01,0x03,0x02, -0x03,0x01,0x01,0x03,0x02,0x15,0x00,0x03,0x00,0x01,0x00,0x03,0x01,0x01,0x00,0x1d,0x05,0x04,0x02,0x02,0x02,0x07,0x16,0x00,0x00,0x00,0x08,0x00,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x11,0x23,0x11,0x0e,0x01,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x11,0x04,0xcc,0xc5,0x5f,0xb2,0x7a,0xf1,0xf8,0xc6,0x8a,0x99, -0x68,0xc0,0x63,0x05,0xb0,0xfa,0x50,0x02,0x5b,0x1d,0x1a,0xd3,0xed,0x01,0xcc,0xfe,0x34,0xa5,0x7f,0x1c,0x1b,0x02,0xb9,0x00,0x00,0x01,0x00,0xa4,0x00,0x00,0x07,0x8f,0x05,0xb0,0x00,0x0b,0x00,0x36,0x40,0x12,0x00,0x00,0x00,0x0b,0x00,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58, -0x40,0x17,0x06,0x05,0x03,0x03,0x01,0x01,0x07,0x16,0x02,0x01,0x00,0x00,0x04,0x00,0x02,0x1b,0x00,0x04,0x04,0x08,0x04,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x01,0x69,0x02,0x50,0xc4,0x02,0x4d,0xc5,0xf9,0x15,0x05,0xb0,0xfa,0xea,0x05,0x16,0xfa,0xea,0x05,0x16,0xfa,0x50,0x05,0xb0, -0x00,0x01,0x00,0xa4,0xfe,0x98,0x08,0x39,0x05,0xb0,0x00,0x0f,0x00,0x42,0x40,0x16,0x00,0x00,0x00,0x0f,0x00,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1f,0x00,0x05,0x00,0x05,0x00,0x02,0x19,0x08,0x07,0x03,0x03,0x01,0x01,0x07,0x16,0x04,0x02,0x02, -0x00,0x00,0x06,0x00,0x02,0x1b,0x00,0x06,0x06,0x08,0x06,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x01,0x69,0x02,0x50,0xc4,0x02,0x4d,0xc5,0xaa,0xc5,0xf9,0x30,0x05,0xb0,0xfa,0xea,0x05,0x16,0xfa,0xea,0x05,0x16,0xfa,0xed,0xfd,0xfb,0x01,0x68,0x05,0xb0,0x00,0x00, -0x00,0x02,0x00,0x00,0x00,0x00,0x05,0x5e,0x05,0xb0,0x00,0x0c,0x00,0x15,0x00,0x44,0x40,0x12,0x0d,0x0d,0x0d,0x15,0x0d,0x14,0x10,0x0e,0x0c,0x0b,0x0a,0x08,0x04,0x02,0x01,0x00,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x25,0x00,0x01,0x06,0x01,0x05,0x04,0x01,0x05,0x01,0x00,0x1d,0x00,0x03,0x03,0x00,0x00,0x00,0x1b,0x00,0x00, -0x00,0x07,0x16,0x00,0x04,0x04,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x08,0x02,0x17,0x05,0xb0,0x2f,0x2b,0x11,0x21,0x11,0x21,0x32,0x04,0x15,0x14,0x04,0x23,0x21,0x11,0x21,0x01,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x02,0x0b,0x01,0x67,0xe9,0x01,0x03,0xfe,0xfc,0xe8,0xfd,0xd4,0xfe,0xba,0x02,0x0b,0x01,0x67,0x93,0x94,0x93,0x94, -0x05,0xb0,0xfd,0xc0,0xef,0xc5,0xc6,0xf6,0x05,0x15,0xfd,0xc0,0xfd,0xc5,0xa9,0x7b,0x77,0xa0,0x00,0x00,0x00,0x03,0x00,0xa3,0x00,0x00,0x06,0x32,0x05,0xb0,0x00,0x0a,0x00,0x13,0x00,0x17,0x00,0x41,0x40,0x14,0x0b,0x0b,0x17,0x16,0x15,0x14,0x0b,0x13,0x0b,0x12,0x0e,0x0c,0x0a,0x09,0x08,0x06,0x02,0x00,0x08,0x07,0x2b,0x4b,0xb0,0x90, -0x50,0x58,0x40,0x20,0x00,0x00,0x07,0x01,0x04,0x03,0x00,0x04,0x01,0x00,0x1d,0x06,0x01,0x02,0x02,0x07,0x16,0x00,0x03,0x03,0x01,0x01,0x02,0x1b,0x05,0x01,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x32,0x04,0x15,0x14,0x04,0x23,0x21,0x11,0x33,0x19,0x01,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x01,0x23,0x11,0x33,0x01, -0x68,0x01,0x67,0xe9,0x01,0x03,0xfe,0xfc,0xe8,0xfd,0xd4,0xc5,0x01,0x67,0x93,0x94,0x93,0x94,0x03,0x63,0xc6,0xc6,0x03,0x70,0xef,0xc5,0xc6,0xf6,0x05,0xb0,0xfd,0x25,0xfd,0xc5,0xa9,0x7b,0x77,0xa0,0xfd,0x2b,0x05,0xb0,0x00,0x00,0x00,0x02,0x00,0xa3,0x00,0x00,0x04,0xbb,0x05,0xb0,0x00,0x0a,0x00,0x13,0x00,0x3b,0x40,0x10,0x0b,0x0b, -0x0b,0x13,0x0b,0x12,0x0e,0x0c,0x0a,0x09,0x08,0x06,0x02,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1e,0x00,0x00,0x05,0x01,0x04,0x03,0x00,0x04,0x01,0x00,0x1d,0x00,0x02,0x02,0x07,0x16,0x00,0x03,0x03,0x01,0x01,0x02,0x1b,0x00,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x32,0x04,0x15,0x14,0x04,0x23,0x21, -0x11,0x33,0x19,0x01,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x01,0x68,0x01,0x67,0xe9,0x01,0x03,0xfe,0xfc,0xe8,0xfd,0xd4,0xc5,0x01,0x67,0x93,0x94,0x93,0x94,0x03,0x70,0xef,0xc5,0xc6,0xf6,0x05,0xb0,0xfd,0x25,0xfd,0xc5,0xa9,0x7b,0x77,0xa0,0x00,0x00,0x00,0x01,0x00,0xb5,0xff,0xec,0x04,0xff,0x05,0xc6,0x00,0x21,0x00,0x62,0x40,0x16, -0x00,0x00,0x00,0x21,0x00,0x21,0x1f,0x1d,0x1a,0x19,0x18,0x17,0x14,0x12,0x10,0x0f,0x0c,0x0a,0x05,0x03,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x3f,0x01,0x01,0x07,0x06,0x0e,0x01,0x03,0x02,0x02,0x15,0x08,0x01,0x07,0x06,0x05,0x06,0x07,0x05,0x29,0x00,0x02,0x04,0x03,0x04,0x02,0x03,0x29,0x00,0x05,0x00,0x04,0x02,0x05,0x04, -0x00,0x00,0x1d,0x00,0x06,0x06,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0d,0x16,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x08,0xb0,0x2f,0x2b,0x13,0x27,0x26,0x00,0x33,0x32,0x00,0x19,0x01,0x10,0x00,0x23,0x22,0x00,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x12,0x3d,0x01,0x21,0x35,0x21,0x35,0x34,0x02,0x23,0x22, -0x06,0x15,0xbc,0x02,0x05,0x01,0x29,0xf2,0xf7,0x01,0x38,0xfe,0xc8,0xf7,0xf7,0xfe,0xdc,0x05,0x02,0xbd,0xb2,0xa5,0xa4,0xc5,0xfd,0xc2,0x02,0x3e,0xc5,0xa4,0xa5,0xb2,0x03,0xde,0x06,0xcb,0x01,0x17,0xfe,0xa1,0xfe,0xf3,0xfe,0xfd,0xfe,0xf2,0xfe,0xa3,0x01,0x05,0xda,0x06,0x9a,0xb1,0x01,0x09,0xc6,0x51,0x9b,0x19,0xc6,0x01,0x0b,0xb2, -0x9b,0x00,0x00,0x00,0x00,0x02,0x00,0xbe,0xff,0xeb,0x06,0xe2,0x05,0xc5,0x00,0x15,0x00,0x23,0x00,0x7b,0x40,0x12,0x21,0x1f,0x1a,0x18,0x13,0x11,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x04,0x02,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x26,0x00,0x04,0x00,0x01,0x07,0x04,0x01,0x00,0x00,0x1d,0x00,0x06, -0x06,0x03,0x01,0x00,0x1b,0x05,0x01,0x03,0x03,0x07,0x16,0x00,0x07,0x07,0x00,0x01,0x00,0x1b,0x02,0x01,0x00,0x00,0x0e,0x00,0x17,0x05,0x1b,0x40,0x2e,0x00,0x04,0x00,0x01,0x07,0x04,0x01,0x00,0x00,0x1d,0x00,0x03,0x03,0x07,0x16,0x00,0x06,0x06,0x05,0x01,0x00,0x1b,0x00,0x05,0x05,0x0d,0x16,0x00,0x02,0x02,0x08,0x16,0x00,0x07,0x07, -0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17,0x07,0x59,0xb0,0x2f,0x2b,0x01,0x10,0x00,0x21,0x22,0x00,0x11,0x35,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x35,0x10,0x00,0x33,0x20,0x00,0x11,0x27,0x34,0x02,0x23,0x22,0x02,0x15,0x11,0x14,0x12,0x33,0x32,0x36,0x35,0x06,0xe2,0xfe,0xb5,0xfe,0xf8,0xff,0xfe,0xc1,0xcd,0xc6,0xc6,0xcd, -0x01,0x3f,0xff,0x01,0x08,0x01,0x4b,0xc5,0xd8,0xb6,0xac,0xcd,0xcd,0xac,0xb7,0xd7,0x02,0x56,0xfe,0xf5,0xfe,0xa0,0x01,0x60,0x01,0x0b,0x22,0xfd,0x88,0x05,0xb0,0xfd,0x62,0x47,0x01,0x0a,0x01,0x62,0xfe,0x9f,0xfe,0xf5,0x02,0xc8,0x01,0x00,0xff,0x00,0xc8,0xfe,0xfb,0xca,0xff,0x00,0xff,0xcb,0x00,0x02,0x00,0x2c,0x00,0x00,0x04,0x36, -0x05,0xb0,0x00,0x0d,0x00,0x16,0x00,0x3f,0x40,0x0e,0x16,0x14,0x10,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x07,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x24,0x02,0x01,0x03,0x05,0x01,0x15,0x00,0x05,0x00,0x03,0x00,0x05,0x03,0x00,0x00,0x1d,0x00,0x04,0x04,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x07,0x16,0x02,0x01,0x00,0x00, -0x08,0x00,0x17,0x05,0xb0,0x2f,0x2b,0x33,0x23,0x01,0x2e,0x01,0x35,0x34,0x24,0x33,0x21,0x11,0x23,0x11,0x21,0x01,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0xfd,0xd1,0x01,0x56,0x8e,0x93,0x01,0x12,0xf1,0x01,0xd2,0xc5,0xfe,0xbd,0x01,0x43,0xfe,0xf3,0x9c,0xa2,0xa3,0x99,0x01,0x0f,0x02,0x95,0x33,0xbe,0x88,0xc7,0xdb,0xfa,0x50,0x02, -0x61,0x02,0xb4,0x8b,0x7a,0x7b,0x98,0x00,0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x04,0x4e,0x02,0x06,0x00,0x44,0x00,0x00,0x00,0x02,0x00,0x61,0xff,0xeb,0x04,0x2a,0x06,0x11,0x00,0x20,0x00,0x2e,0x00,0x9d,0x40,0x18,0x22,0x21,0x01,0x00,0x29,0x27,0x21,0x2e,0x22,0x2e,0x1b,0x19,0x16,0x15,0x13,0x11,0x08,0x06,0x00,0x20,0x01,0x20, -0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x1d,0x58,0x40,0x39,0x17,0x01,0x02,0x03,0x1e,0x1d,0x0e,0x03,0x06,0x05,0x02,0x15,0x00,0x03,0x03,0x09,0x16,0x00,0x04,0x04,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x07,0x16,0x08,0x01,0x05,0x05,0x00,0x01,0x00,0x1b,0x07,0x01,0x00,0x00,0x10,0x16,0x00,0x06,0x06,0x01,0x01,0x00,0x1b, -0x00,0x01,0x01,0x0e,0x01,0x17,0x08,0x1b,0x40,0x37,0x17,0x01,0x02,0x03,0x1e,0x1d,0x0e,0x03,0x06,0x05,0x02,0x15,0x00,0x02,0x00,0x04,0x00,0x02,0x04,0x01,0x00,0x1d,0x00,0x03,0x03,0x09,0x16,0x08,0x01,0x05,0x05,0x00,0x01,0x00,0x1b,0x07,0x01,0x00,0x00,0x10,0x16,0x00,0x06,0x06,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17, -0x07,0x59,0xb0,0x2f,0x2b,0x01,0x32,0x12,0x1d,0x01,0x14,0x00,0x23,0x22,0x00,0x3d,0x01,0x3c,0x01,0x37,0x35,0x10,0x12,0x37,0x3e,0x01,0x35,0x33,0x17,0x16,0x06,0x07,0x0e,0x01,0x1f,0x01,0x3e,0x01,0x17,0x22,0x06,0x1d,0x01,0x14,0x16,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x02,0x6b,0xcf,0xf0,0xfe,0xfc,0xe0,0xe0,0xfe,0xfb,0x01,0xf7, -0xf0,0x8a,0x96,0x97,0x02,0x05,0xdc,0xd1,0x98,0xb8,0x03,0x03,0x3b,0xb8,0x41,0x8d,0x90,0x90,0x8f,0x8d,0x92,0x93,0x04,0x4e,0xfe,0xca,0xf1,0x16,0xf2,0xfe,0xcc,0x01,0x35,0xf1,0x16,0x08,0x0b,0x07,0xeb,0x01,0x34,0x01,0x23,0x0d,0x07,0x37,0x43,0x06,0x9e,0x7f,0x04,0x04,0xa0,0x9d,0x05,0x4b,0x5f,0x9b,0xe2,0xaa,0x16,0xac,0xe0,0xe0, -0xac,0x16,0xaa,0xe2,0x00,0x03,0x00,0x90,0x00,0x00,0x04,0x23,0x04,0x3a,0x00,0x0e,0x00,0x17,0x00,0x20,0x00,0x4f,0x40,0x16,0x0f,0x0f,0x00,0x00,0x20,0x1e,0x1a,0x18,0x0f,0x17,0x0f,0x16,0x12,0x10,0x00,0x0e,0x00,0x0d,0x03,0x01,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2c,0x08,0x01,0x03,0x04,0x01,0x15,0x00,0x04,0x07,0x01, -0x03,0x02,0x04,0x03,0x01,0x00,0x1d,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0a,0x16,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x06,0x01,0x01,0x01,0x08,0x01,0x17,0x06,0xb0,0x2f,0x2b,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x01,0x15,0x14,0x06,0x23,0x01,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x25,0x33,0x32, -0x36,0x35,0x34,0x26,0x2b,0x01,0x90,0x01,0xab,0xd6,0xec,0x5c,0x54,0x65,0x71,0xdd,0xc6,0xfe,0xd5,0x01,0x2b,0x6d,0x70,0x70,0x6d,0xfe,0xd5,0xe7,0x7d,0x7f,0x80,0x7d,0xe6,0x04,0x3a,0x95,0x95,0x4c,0x77,0x1f,0x19,0x89,0x58,0x98,0x9c,0x01,0xda,0xfe,0xbe,0x53,0x4e,0x4d,0x54,0x97,0x4a,0x4b,0x4d,0x4e,0x00,0x00,0x00,0x01,0x00,0x8f, -0x00,0x00,0x03,0x3f,0x04,0x3a,0x00,0x05,0x00,0x28,0x40,0x08,0x05,0x04,0x03,0x02,0x01,0x00,0x03,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x13,0x00,0x00,0x00,0x02,0x00,0x00,0x1b,0x00,0x02,0x02,0x0a,0x16,0x00,0x01,0x01,0x08,0x01,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x23,0x11,0x21,0x03,0x3f,0xfe,0x15,0xc5,0x02,0xb0,0x03, -0x9e,0xfc,0x62,0x04,0x3a,0x00,0x00,0x00,0x00,0x02,0x00,0x45,0xfe,0x9a,0x04,0xcb,0x04,0x3a,0x00,0x0e,0x00,0x15,0x00,0x48,0x40,0x16,0x01,0x00,0x15,0x14,0x13,0x12,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x0e,0x01,0x0e,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x25,0x05,0x01,0x03,0x00,0x03,0x00,0x00,0x19, -0x00,0x07,0x07,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x0a,0x16,0x06,0x02,0x08,0x03,0x00,0x00,0x04,0x00,0x00,0x1b,0x00,0x04,0x04,0x08,0x04,0x17,0x05,0xb0,0x2f,0x2b,0x37,0x32,0x12,0x1b,0x01,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x01,0x0e,0x01,0x07,0x21,0x11,0x21,0xaf,0x4e,0x47,0x10,0x1a,0x02,0xce,0x8f,0xc5,0xfd, -0x04,0xc5,0x01,0xd5,0x0c,0x29,0x29,0x01,0xbb,0xfe,0xb1,0x9a,0x01,0x01,0x01,0x08,0x01,0x97,0xfc,0x60,0xfe,0x00,0x01,0x66,0xfe,0x9a,0x02,0x00,0x02,0x09,0xbf,0xf9,0x51,0x02,0xf1,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xe2,0x04,0x4e,0x02,0x06,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x05,0xa6,0x04,0x3a,0x00,0x15, -0x00,0x46,0x40,0x16,0x15,0x14,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x23,0x13,0x08,0x02,0x00,0x05,0x01,0x15,0x07,0x01,0x05,0x02,0x01,0x00,0x01,0x05,0x00,0x00,0x00,0x1d,0x08,0x06,0x02,0x04,0x04,0x0a,0x16,0x09,0x03,0x02,0x01, -0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x23,0x11,0x23,0x01,0x23,0x09,0x01,0x33,0x01,0x33,0x11,0x33,0x11,0x33,0x01,0x33,0x09,0x01,0x23,0x03,0x7c,0x3a,0xc5,0x3a,0xfe,0xcf,0xf8,0x01,0x94,0xfe,0x8e,0xee,0x01,0x1e,0x35,0xc5,0x36,0x01,0x1f,0xed,0xfe,0x8e,0x01,0x94,0xf8,0x01,0xd5,0xfe,0x2b,0x01,0xd5,0xfe,0x2b, -0x02,0x3c,0x01,0xfe,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x01,0xbe,0xfe,0x02,0xfd,0xc4,0x00,0x01,0x00,0x64,0xff,0xed,0x03,0xec,0x04,0x4c,0x00,0x2a,0x00,0x66,0x40,0x16,0x01,0x00,0x29,0x27,0x23,0x21,0x1f,0x1e,0x1b,0x19,0x0f,0x0d,0x0a,0x09,0x07,0x05,0x00,0x2a,0x01,0x2a,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x43,0x0b,0x01, -0x02,0x01,0x14,0x01,0x07,0x00,0x1d,0x01,0x06,0x05,0x03,0x15,0x00,0x02,0x01,0x00,0x01,0x02,0x00,0x29,0x00,0x05,0x07,0x06,0x07,0x05,0x06,0x29,0x08,0x01,0x00,0x00,0x07,0x05,0x00,0x07,0x01,0x00,0x1d,0x00,0x01,0x01,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x10,0x16,0x00,0x06,0x06,0x04,0x01,0x00,0x1b,0x00,0x04,0x04,0x0e,0x04,0x17, -0x08,0xb0,0x2f,0x2b,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x27,0x26,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x01,0x15,0x14,0x06,0x23,0x22,0x24,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x2b,0x01,0x35,0x02,0x33,0x73,0x6d,0x79,0x73,0x66,0x8a,0xba,0x02,0x06,0xfa,0xb8,0xc8,0xe9,0x61,0x56, -0x62,0x69,0xfc,0xc9,0xb9,0xfe,0xf6,0x06,0x02,0xba,0x90,0x71,0x75,0x8a,0x7a,0x79,0xd0,0x02,0x78,0x50,0x4a,0x43,0x5f,0x62,0x46,0x06,0x8b,0xaf,0xa3,0x97,0x49,0x7a,0x23,0x20,0x80,0x5b,0x97,0xad,0xab,0xa2,0x06,0x4c,0x70,0x64,0x49,0x56,0x51,0xa0,0x00,0x01,0x00,0x8f,0x00,0x00,0x03,0xfc,0x04,0x3a,0x00,0x0b,0x00,0x2c,0x40,0x0a, -0x09,0x08,0x07,0x06,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x15,0x0a,0x04,0x02,0x01,0x00,0x01,0x15,0x03,0x01,0x00,0x00,0x0a,0x16,0x02,0x01,0x01,0x01,0x08,0x01,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x33,0x11,0x23,0x11,0x27,0x01,0x23,0x11,0x33,0x11,0x17,0x03,0x37,0xc5,0xc5,0x06,0xfe,0x22,0xc4,0xc4,0x06, -0x04,0x3a,0xfb,0xc6,0x03,0x00,0x02,0xfc,0xfe,0x04,0x3a,0xfd,0x00,0x02,0x00,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x03,0xfc,0x05,0xf7,0x02,0x26,0x01,0xe4,0x00,0x00,0x01,0x07,0x01,0x54,0x00,0x99,0x00,0x47,0x00,0x08,0xb1,0x01,0x01,0xb0,0x47,0xb0,0x0d,0x2b,0x00,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x04,0x40,0x04,0x3a,0x00,0x0e, -0x00,0x39,0x40,0x0e,0x0e,0x0d,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1e,0x0b,0x01,0x00,0x03,0x01,0x15,0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x00,0x1d,0x04,0x01,0x02,0x02,0x0a,0x16,0x05,0x01,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x23,0x11, -0x33,0x11,0x33,0x01,0x33,0x17,0x09,0x01,0x07,0x23,0x01,0xc3,0x65,0xc5,0xc5,0x54,0x01,0x83,0xe7,0x02,0xfe,0x3f,0x01,0xe3,0x02,0xf2,0x01,0xcb,0xfe,0x35,0x04,0x3a,0xfe,0x37,0x01,0xc9,0x05,0xfd,0xfe,0xfd,0xd2,0x05,0x00,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xfc,0x04,0x3a,0x00,0x0f,0x00,0x39,0x40,0x10,0x00,0x00,0x00,0x0f, -0x00,0x0f,0x0c,0x0a,0x09,0x07,0x04,0x03,0x02,0x01,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1c,0x00,0x01,0x01,0x04,0x00,0x00,0x1b,0x05,0x01,0x04,0x04,0x0a,0x16,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x02,0x01,0x00,0x00,0x08,0x00,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x11,0x23,0x11,0x21,0x11,0x10,0x02,0x2b,0x01,0x3f,0x01,0x32, -0x36,0x35,0x11,0x03,0xfc,0xc5,0xfe,0x92,0xaa,0xcd,0x38,0x04,0x29,0x69,0x53,0x04,0x3a,0xfb,0xc6,0x03,0x9e,0xfe,0xce,0xfe,0xc0,0xfe,0xd4,0xa8,0x01,0xcd,0xf6,0x01,0xce,0x00,0x00,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x05,0x55,0x04,0x3a,0x00,0x0f,0x00,0x39,0x40,0x0e,0x0f,0x0e,0x0d,0x0c,0x09,0x08,0x05,0x04,0x03,0x02,0x01,0x00, -0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1e,0x0b,0x06,0x02,0x00,0x01,0x01,0x15,0x00,0x00,0x01,0x02,0x01,0x00,0x02,0x29,0x05,0x01,0x01,0x01,0x0a,0x16,0x04,0x03,0x02,0x02,0x02,0x08,0x02,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x33,0x01,0x33,0x11,0x23,0x11,0x27,0x01,0x23,0x01,0x07,0x11,0x23,0x11,0x33,0x02,0xf7,0x06,0x01,0x62, -0xf6,0xc5,0x06,0xfe,0xb4,0x88,0xfe,0xae,0x06,0xc5,0xfe,0x01,0x02,0x03,0x38,0xfb,0xc6,0x02,0xef,0x02,0xfd,0x0f,0x03,0x02,0x02,0xfd,0x00,0x04,0x3a,0x00,0x00,0x00,0x00,0x01,0x00,0x8f,0x00,0x00,0x03,0xfb,0x04,0x3a,0x00,0x0b,0x00,0x33,0x40,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b, -0xb0,0x90,0x50,0x58,0x40,0x18,0x00,0x04,0x00,0x01,0x00,0x04,0x01,0x00,0x00,0x1d,0x05,0x01,0x03,0x03,0x0a,0x16,0x02,0x01,0x00,0x00,0x08,0x00,0x17,0x03,0xb0,0x2f,0x2b,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x03,0xfb,0xc5,0xfe,0x1e,0xc5,0xc5,0x01,0xe2,0xc5,0x01,0xcc,0xfe,0x34,0x04,0x3a,0xfe,0x2c,0x01, -0xd4,0x00,0x00,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x2a,0x04,0x4e,0x02,0x06,0x00,0x52,0x00,0x00,0x00,0x01,0x00,0x8f,0x00,0x00,0x03,0xfc,0x04,0x3a,0x00,0x07,0x00,0x2b,0x40,0x0a,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x14,0x00,0x01,0x01,0x03,0x00,0x00,0x1b,0x00,0x03,0x03, -0x0a,0x16,0x02,0x01,0x00,0x00,0x08,0x00,0x17,0x03,0xb0,0x2f,0x2b,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x03,0xfc,0xc5,0xfe,0x1d,0xc5,0x03,0x6d,0x03,0x9e,0xfc,0x62,0x04,0x3a,0x00,0xff,0xff,0x00,0x8f,0xfe,0x60,0x04,0x29,0x04,0x4e,0x02,0x06,0x00,0x53,0x00,0x00,0x00,0x01,0x00,0x61,0xff,0xeb,0x03,0xd9,0x04,0x4e,0x00,0x1d, -0x00,0x53,0x40,0x12,0x01,0x00,0x18,0x16,0x14,0x13,0x10,0x0e,0x09,0x07,0x04,0x03,0x00,0x1d,0x01,0x1d,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x34,0x12,0x01,0x04,0x05,0x05,0x01,0x00,0x01,0x02,0x15,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x29,0x00,0x01,0x00,0x05,0x01,0x00,0x27,0x00,0x05,0x05,0x03,0x01,0x00,0x1b,0x00,0x03, -0x03,0x10,0x16,0x06,0x01,0x00,0x00,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0e,0x02,0x17,0x07,0xb0,0x2f,0x2b,0x25,0x32,0x36,0x35,0x33,0x17,0x16,0x06,0x23,0x22,0x02,0x3d,0x01,0x34,0x12,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x02,0x3d,0x5b,0x88,0xb2,0x03,0x04,0xf8,0xa4,0xe4,0xf8,0xf9,0xe3, -0xb5,0xe7,0x04,0x02,0xb3,0x81,0x62,0x91,0x85,0x83,0x85,0x79,0x58,0x06,0x8c,0xd9,0x01,0x36,0xe7,0x2a,0xe5,0x01,0x37,0xe0,0xa3,0x06,0x63,0x8b,0xe1,0xa0,0x2a,0xa3,0xe0,0x00,0x00,0x00,0x00,0x01,0x00,0x47,0x00,0x00,0x03,0xd1,0x04,0x3a,0x00,0x07,0x00,0x2b,0x40,0x0a,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b, -0xb0,0x90,0x50,0x58,0x40,0x14,0x02,0x01,0x00,0x00,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x0a,0x16,0x00,0x01,0x01,0x08,0x01,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x03,0xd1,0xfe,0x9b,0xc5,0xfe,0xa0,0x03,0x8a,0x03,0xa1,0xfc,0x5f,0x03,0xa1,0x99,0x00,0x00,0x00,0xff,0xff,0x00,0x1a,0xfe,0x4b,0x03,0xe8, -0x04,0x3a,0x02,0x06,0x00,0x5c,0x00,0x00,0x00,0x03,0x00,0x62,0xfe,0x60,0x06,0xbf,0x06,0x18,0x00,0x1f,0x00,0x2d,0x00,0x3b,0x00,0x5e,0x40,0x16,0x39,0x37,0x32,0x30,0x2b,0x29,0x24,0x22,0x1d,0x1b,0x18,0x17,0x14,0x12,0x0d,0x0b,0x08,0x07,0x04,0x02,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x3b,0x09,0x06,0x02,0x06,0x00,0x35, -0x34,0x27,0x26,0x04,0x07,0x06,0x19,0x16,0x02,0x03,0x07,0x03,0x15,0x00,0x01,0x01,0x09,0x16,0x09,0x01,0x06,0x06,0x00,0x01,0x00,0x1b,0x02,0x01,0x00,0x00,0x10,0x16,0x08,0x01,0x07,0x07,0x03,0x01,0x00,0x1b,0x05,0x01,0x03,0x03,0x0e,0x16,0x00,0x04,0x04,0x0c,0x04,0x17,0x07,0xb0,0x2f,0x2b,0x13,0x10,0x12,0x33,0x32,0x16,0x17,0x11, -0x33,0x11,0x3e,0x01,0x33,0x32,0x12,0x11,0x15,0x14,0x02,0x23,0x22,0x26,0x27,0x11,0x23,0x11,0x0e,0x01,0x23,0x22,0x02,0x35,0x25,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x1e,0x01,0x33,0x32,0x36,0x35,0x21,0x14,0x16,0x33,0x32,0x36,0x37,0x11,0x2e,0x01,0x23,0x22,0x06,0x15,0x62,0xdf,0xc9,0x58,0x8e,0x35,0xc5,0x37,0x97,0x60,0xc8,0xdf, -0xe0,0xc5,0x61,0x98,0x37,0xc5,0x36,0x8d,0x5a,0xc6,0xe0,0x05,0x98,0x91,0x8d,0x55,0x78,0x25,0x25,0x78,0x57,0x8c,0x90,0xfb,0x2d,0x87,0x8c,0x51,0x73,0x27,0x27,0x73,0x4f,0x8d,0x88,0x02,0x09,0x01,0x05,0x01,0x40,0x37,0x35,0x02,0x36,0xfd,0xba,0x3d,0x3f,0xfe,0xc1,0xfe,0xfa,0x15,0xea,0xfe,0xe1,0x3c,0x3a,0xfd,0xff,0x01,0xf7,0x36, -0x36,0x01,0x1f,0xea,0x15,0xb9,0xf1,0x4f,0x44,0xfd,0xf3,0x43,0x4b,0xcc,0xa3,0xa4,0xcb,0x48,0x41,0x02,0x22,0x3d,0x46,0xef,0xbb,0x00,0x00,0x00,0xff,0xff,0x00,0x2e,0x00,0x00,0x03,0xd4,0x04,0x3a,0x02,0x06,0x00,0x5b,0x00,0x00,0x00,0x01,0x00,0x8f,0xfe,0x9e,0x04,0x80,0x04,0x3a,0x00,0x0b,0x00,0x37,0x40,0x0e,0x0b,0x0a,0x09,0x08, -0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1c,0x00,0x04,0x01,0x04,0x00,0x02,0x19,0x02,0x01,0x00,0x00,0x0a,0x16,0x03,0x01,0x01,0x01,0x05,0x00,0x02,0x1b,0x00,0x05,0x05,0x08,0x05,0x17,0x04,0xb0,0x2f,0x2b,0x13,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x21,0x8f,0xc5,0x01, -0xe3,0xc5,0x84,0xc5,0xfc,0xd4,0x04,0x3a,0xfc,0x60,0x03,0xa0,0xfc,0x60,0xfe,0x04,0x01,0x62,0x00,0x00,0x00,0x01,0x00,0x7f,0x00,0x00,0x03,0xdc,0x04,0x3b,0x00,0x13,0x00,0x3a,0x40,0x0c,0x13,0x12,0x0f,0x0d,0x0a,0x09,0x06,0x04,0x01,0x00,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x21,0x11,0x01,0x03,0x02,0x02,0x01,0x01,0x03, -0x02,0x15,0x00,0x03,0x00,0x01,0x00,0x03,0x01,0x01,0x00,0x1d,0x04,0x01,0x02,0x02,0x0a,0x16,0x00,0x00,0x00,0x08,0x00,0x17,0x04,0xb0,0x2f,0x2b,0x21,0x23,0x11,0x0e,0x01,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x11,0x33,0x03,0xdc,0xc5,0x39,0x78,0x44,0xc4,0xdf,0xc5,0x70,0x6e,0x42,0x78,0x3b,0xc5,0x01, -0x83,0x0f,0x0f,0xce,0xca,0x01,0x3e,0xfe,0xc2,0x82,0x7a,0x0f,0x0f,0x02,0x1b,0x00,0x00,0x01,0x00,0x8f,0x00,0x00,0x05,0xd8,0x04,0x3a,0x00,0x0b,0x00,0x36,0x40,0x12,0x00,0x00,0x00,0x0b,0x00,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x17,0x06,0x05,0x03,0x03,0x01,0x01, -0x0a,0x16,0x02,0x01,0x00,0x00,0x04,0x00,0x02,0x1b,0x00,0x04,0x04,0x08,0x04,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x01,0x54,0x01,0x7d,0xc5,0x01,0x7d,0xc5,0xfa,0xb7,0x04,0x3a,0xfc,0x60,0x03,0xa0,0xfc,0x60,0x03,0xa0,0xfb,0xc6,0x04,0x3a,0x00,0x01,0x00,0x8f,0xfe,0xae,0x06,0x88, -0x04,0x3a,0x00,0x0f,0x00,0x42,0x40,0x16,0x00,0x00,0x00,0x0f,0x00,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1f,0x00,0x05,0x00,0x05,0x00,0x02,0x19,0x08,0x07,0x03,0x03,0x01,0x01,0x0a,0x16,0x04,0x02,0x02,0x00,0x00,0x06,0x00,0x02,0x1b,0x00,0x06, -0x06,0x08,0x06,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x01,0x54,0x01,0x7d,0xc5,0x01,0x7d,0xc5,0xb0,0xc3,0xfa,0xca,0x04,0x3a,0xfc,0x60,0x03,0xa0,0xfc,0x60,0x03,0xa0,0xfc,0x57,0xfe,0x1d,0x01,0x52,0x04,0x3a,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x04,0xc6, -0x04,0x3a,0x00,0x0c,0x00,0x15,0x00,0x44,0x40,0x12,0x0d,0x0d,0x0d,0x15,0x0d,0x14,0x10,0x0e,0x0c,0x0b,0x0a,0x08,0x04,0x02,0x01,0x00,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x25,0x00,0x01,0x06,0x01,0x05,0x04,0x01,0x05,0x01,0x00,0x1d,0x00,0x03,0x03,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x0a,0x16,0x00,0x04,0x04,0x02,0x01, -0x00,0x1b,0x00,0x02,0x02,0x08,0x02,0x17,0x05,0xb0,0x2f,0x2b,0x13,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x21,0x01,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x2d,0x01,0xf7,0x01,0x0d,0xc0,0xd5,0xd7,0xbe,0xfe,0x2e,0xfe,0xce,0x01,0xf7,0x01,0x0d,0x6a,0x65,0x66,0x69,0x04,0x3a,0xfe,0x64,0xb8,0x93,0x94,0xbf,0x03, -0x9f,0xfe,0x65,0xfe,0x96,0x66,0x4c,0x4a,0x6e,0x00,0x00,0x00,0x00,0x03,0x00,0xad,0x00,0x00,0x05,0x98,0x04,0x3a,0x00,0x0a,0x00,0x0e,0x00,0x17,0x00,0x41,0x40,0x14,0x0f,0x0f,0x0f,0x17,0x0f,0x16,0x12,0x10,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x06,0x02,0x00,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x20,0x00,0x00,0x07,0x01, -0x06,0x05,0x00,0x06,0x01,0x00,0x1d,0x04,0x01,0x02,0x02,0x0a,0x16,0x00,0x05,0x05,0x01,0x01,0x02,0x1b,0x03,0x01,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x33,0x01,0x23,0x11,0x33,0x01,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x01,0x72,0x01,0x0d,0xc0,0xd5,0xd7,0xbe,0xfe, -0x2e,0xc5,0x04,0x26,0xc5,0xc5,0xfb,0xda,0x01,0x0d,0x6a,0x65,0x66,0x69,0x02,0x9e,0xb8,0x93,0x94,0xbf,0x04,0x3a,0xfb,0xc6,0x04,0x3a,0xfd,0xca,0xfe,0x96,0x66,0x4c,0x4a,0x6e,0x00,0x00,0x00,0x02,0x00,0x99,0x00,0x00,0x04,0x00,0x04,0x3a,0x00,0x0a,0x00,0x13,0x00,0x3b,0x40,0x10,0x0b,0x0b,0x0b,0x13,0x0b,0x12,0x0e,0x0c,0x0a,0x09, -0x08,0x06,0x02,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1e,0x00,0x00,0x05,0x01,0x04,0x03,0x00,0x04,0x01,0x00,0x1d,0x00,0x02,0x02,0x0a,0x16,0x00,0x03,0x03,0x01,0x01,0x02,0x1b,0x00,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x33,0x19,0x01,0x21,0x32,0x36,0x35, -0x34,0x26,0x23,0x01,0x5e,0x01,0x0d,0xc0,0xd5,0xd7,0xbe,0xfe,0x2e,0xc5,0x01,0x0d,0x6a,0x65,0x66,0x69,0x02,0x9e,0xb8,0x93,0x94,0xbf,0x04,0x3a,0xfd,0xca,0xfe,0x96,0x66,0x4c,0x4a,0x6e,0x00,0x01,0x00,0x63,0xff,0xeb,0x03,0xe3,0x04,0x4e,0x00,0x21,0x00,0x66,0x40,0x16,0x01,0x00,0x1e,0x1d,0x1c,0x1b,0x18,0x16,0x14,0x13,0x10,0x0e, -0x09,0x07,0x04,0x03,0x00,0x21,0x01,0x21,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x43,0x05,0x01,0x01,0x00,0x1a,0x01,0x04,0x06,0x12,0x01,0x05,0x04,0x03,0x15,0x00,0x01,0x00,0x07,0x00,0x01,0x07,0x29,0x00,0x04,0x06,0x05,0x06,0x04,0x05,0x29,0x00,0x07,0x00,0x06,0x04,0x07,0x06,0x00,0x00,0x1d,0x08,0x01,0x00,0x00,0x02,0x01, -0x00,0x1b,0x00,0x02,0x02,0x10,0x16,0x00,0x05,0x05,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17,0x08,0xb0,0x2f,0x2b,0x01,0x22,0x06,0x15,0x23,0x27,0x26,0x36,0x33,0x32,0x12,0x1d,0x01,0x14,0x00,0x23,0x22,0x26,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x37,0x27,0x21,0x35,0x21,0x37,0x2e,0x01,0x02,0x08,0x5c,0x8f,0xb2,0x02, -0x06,0xff,0xa6,0xdc,0xff,0xff,0x00,0xdb,0xb7,0xee,0x05,0x02,0xb3,0x87,0x64,0x7e,0x8a,0x08,0x03,0xfe,0x7f,0x01,0x7f,0x02,0x0a,0x89,0x03,0xb3,0x7a,0x57,0x06,0x8b,0xdb,0xfe,0xc7,0xe3,0x2a,0xe4,0xfe,0xc7,0xdf,0xa3,0x06,0x63,0x8b,0xc4,0x8c,0x05,0x9a,0x05,0x83,0xb7,0x00,0x02,0x00,0x99,0xff,0xeb,0x06,0x24,0x04,0x4e,0x00,0x13, -0x00,0x21,0x00,0xad,0x40,0x12,0x1f,0x1d,0x18,0x16,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0c,0x0a,0x05,0x03,0x01,0x00,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x26,0x00,0x00,0x00,0x03,0x06,0x00,0x03,0x00,0x00,0x1d,0x00,0x07,0x07,0x01,0x01,0x00,0x1b,0x05,0x01,0x01,0x01,0x10,0x16,0x00,0x06,0x06,0x02,0x01, -0x00,0x1b,0x04,0x01,0x02,0x02,0x0e,0x02,0x17,0x05,0x1b,0x4b,0xb0,0x19,0x58,0x40,0x2a,0x00,0x00,0x00,0x03,0x06,0x00,0x03,0x00,0x00,0x1d,0x00,0x07,0x07,0x01,0x01,0x00,0x1b,0x05,0x01,0x01,0x01,0x10,0x16,0x00,0x04,0x04,0x08,0x16,0x00,0x06,0x06,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0e,0x02,0x17,0x06,0x1b,0x40,0x2e,0x00,0x00, -0x00,0x03,0x06,0x00,0x03,0x00,0x00,0x1d,0x00,0x05,0x05,0x0a,0x16,0x00,0x07,0x07,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x10,0x16,0x00,0x04,0x04,0x08,0x16,0x00,0x06,0x06,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0e,0x02,0x17,0x07,0x59,0x59,0xb0,0x2f,0x2b,0x01,0x21,0x36,0x12,0x33,0x32,0x00,0x1d,0x01,0x14,0x00,0x23,0x22,0x00,0x27, -0x23,0x11,0x23,0x11,0x33,0x01,0x14,0x16,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x5e,0x01,0x00,0x14,0xff,0xcd,0xe1,0x01,0x05,0xfe,0xfc,0xe0,0xd2,0xfe,0xff,0x10,0xff,0xc5,0xc5,0x01,0xc2,0x91,0x8f,0x8d,0x92,0x93,0x8e,0x8d,0x91,0x02,0x71,0xd4,0x01,0x09,0xfe,0xca,0xf1,0x16,0xf2,0xfe,0xcc,0x01,0x11,0xdb, -0xfe,0x29,0x04,0x3a,0xfd,0xd7,0xac,0xe0,0xe0,0xac,0x16,0xaa,0xe2,0xe2,0xaa,0x00,0x00,0x02,0x00,0x4e,0x00,0x00,0x03,0xf2,0x04,0x3a,0x00,0x0d,0x00,0x16,0x00,0x44,0x40,0x12,0x00,0x00,0x15,0x13,0x12,0x10,0x00,0x0d,0x00,0x0c,0x06,0x05,0x04,0x03,0x02,0x01,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x25,0x07,0x01,0x01,0x04, -0x01,0x15,0x00,0x04,0x00,0x01,0x00,0x04,0x01,0x00,0x00,0x1d,0x00,0x05,0x05,0x03,0x01,0x00,0x1b,0x06,0x01,0x03,0x03,0x0a,0x16,0x02,0x01,0x00,0x00,0x08,0x00,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x11,0x23,0x11,0x21,0x01,0x23,0x01,0x2e,0x01,0x35,0x34,0x36,0x33,0x03,0x14,0x16,0x33,0x21,0x11,0x21,0x22,0x06,0x03,0xf2,0xc5,0xfe,0xf5, -0xff,0x00,0xd4,0x01,0x12,0x67,0x6f,0xdd,0xc2,0xd9,0x62,0x62,0x01,0x19,0xfe,0xfc,0x6b,0x6e,0x04,0x3a,0xfb,0xc6,0x01,0xa4,0xfe,0x5c,0x01,0xc1,0x25,0xa0,0x69,0x92,0xb9,0xfe,0xb3,0x48,0x66,0x01,0x62,0x6b,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xe2,0x06,0x0a,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0x84,0x00,0x1c, -0x00,0x08,0xb1,0x02,0x01,0xb0,0x1c,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xe2,0x05,0xcc,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x00,0x6a,0x19,0x1c,0x00,0x08,0xb1,0x02,0x02,0xb0,0x1c,0xb0,0x0d,0x2b,0x00,0x01,0xff,0xf2,0xfe,0x4b,0x04,0x01,0x06,0x18,0x00,0x29,0x00,0x6c,0x40,0x18,0x29,0x28,0x27,0x26, -0x25,0x24,0x23,0x22,0x21,0x20,0x1d,0x1b,0x16,0x14,0x0f,0x0d,0x0a,0x09,0x06,0x04,0x01,0x00,0x0b,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x47,0x1f,0x02,0x02,0x02,0x05,0x12,0x01,0x04,0x06,0x11,0x01,0x03,0x04,0x03,0x15,0x00,0x02,0x05,0x06,0x05,0x02,0x06,0x29,0x0a,0x01,0x08,0x07,0x01,0x00,0x01,0x08,0x00,0x00,0x00,0x1d,0x00, -0x09,0x09,0x09,0x16,0x00,0x05,0x05,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x10,0x16,0x00,0x06,0x06,0x08,0x16,0x00,0x04,0x04,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x12,0x03,0x17,0x09,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x3e,0x01,0x33,0x32,0x16,0x1d,0x01,0x33,0x11,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x35,0x11, -0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x02,0x40,0xec,0x38,0xa3,0x63,0xad,0xc1,0x01,0xac,0x9a,0x21,0x34,0x1c,0x0f,0x0d,0x44,0x11,0x3c,0x44,0x73,0x72,0x58,0x82,0x28,0xc5,0x9d,0x9d,0xc5,0xec,0x04,0xcc,0xfe,0xdd,0x4e,0x57,0xd0,0xd8,0xde,0xfd,0xdf,0xa7,0xb5,0x08,0x09,0x97,0x05,0x08, -0x67,0x5a,0x03,0x01,0x86,0x80,0x45,0x3e,0xfc,0xd5,0x04,0xcc,0x7c,0xd0,0xd0,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x03,0x3f,0x05,0xf0,0x02,0x26,0x01,0xdf,0x00,0x00,0x01,0x07,0x00,0x76,0x00,0xc9,0x00,0x02,0x00,0x08,0xb1,0x01,0x01,0xb0,0x02,0xb0,0x0d,0x2b,0x00,0x00,0x00,0x01,0x00,0x61,0xff,0xeb,0x03,0xd9,0x04,0x4e,0x00,0x21, -0x00,0x6a,0x40,0x16,0x01,0x00,0x1e,0x1d,0x1c,0x1b,0x18,0x16,0x14,0x13,0x10,0x0e,0x09,0x07,0x04,0x03,0x00,0x21,0x01,0x21,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x47,0x12,0x01,0x04,0x05,0x1a,0x01,0x06,0x04,0x1f,0x01,0x01,0x07,0x05,0x01,0x00,0x01,0x04,0x15,0x00,0x04,0x05,0x06,0x05,0x04,0x06,0x29,0x00,0x01,0x07,0x00, -0x07,0x01,0x00,0x29,0x00,0x06,0x00,0x07,0x01,0x06,0x07,0x00,0x00,0x1d,0x00,0x05,0x05,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x10,0x16,0x08,0x01,0x00,0x00,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0e,0x02,0x17,0x08,0xb0,0x2f,0x2b,0x25,0x32,0x36,0x35,0x33,0x17,0x16,0x06,0x23,0x22,0x02,0x3d,0x01,0x34,0x12,0x33,0x32,0x16,0x0f,0x01, -0x23,0x34,0x26,0x23,0x22,0x06,0x07,0x17,0x21,0x15,0x21,0x07,0x1e,0x01,0x02,0x3d,0x5b,0x88,0xb2,0x03,0x04,0xf8,0xa4,0xe4,0xf8,0xf9,0xe3,0xb5,0xe7,0x04,0x02,0xb3,0x81,0x62,0x84,0x85,0x06,0x02,0x01,0x82,0xfe,0x7e,0x02,0x05,0x84,0x85,0x79,0x58,0x06,0x8c,0xd9,0x01,0x36,0xe7,0x2a,0xe5,0x01,0x37,0xe0,0xa3,0x06,0x63,0x8b,0xbc, -0x89,0x05,0x9a,0x05,0x8b,0xba,0x00,0x00,0xff,0xff,0x00,0x67,0xff,0xeb,0x03,0xc9,0x04,0x4e,0x02,0x06,0x00,0x56,0x00,0x00,0xff,0xff,0x00,0x9f,0x00,0x00,0x01,0x64,0x06,0x18,0x02,0x06,0x00,0x4c,0x00,0x00,0xff,0xff,0xff,0xa5,0x00,0x00,0x02,0x56,0x05,0xb6,0x02,0x26,0x00,0xf3,0x00,0x00,0x01,0x07,0x00,0x6a,0xfe,0xfb,0x00,0x06, -0x00,0x08,0xb1,0x01,0x02,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0xff,0xbe,0xfe,0x4b,0x01,0x72,0x06,0x18,0x02,0x06,0x00,0x4d,0x00,0x00,0x00,0x02,0x00,0x41,0x00,0x00,0x06,0x9e,0x04,0x3a,0x00,0x16,0x00,0x1f,0x00,0x4f,0x40,0x1a,0x17,0x17,0x00,0x00,0x17,0x1f,0x17,0x1e,0x1a,0x18,0x00,0x16,0x00,0x16,0x13,0x11,0x10,0x0e, -0x0b,0x0a,0x09,0x07,0x03,0x01,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x28,0x00,0x00,0x09,0x01,0x07,0x04,0x00,0x07,0x01,0x00,0x1d,0x00,0x02,0x02,0x05,0x00,0x00,0x1b,0x08,0x01,0x05,0x05,0x0a,0x16,0x06,0x01,0x04,0x04,0x01,0x01,0x00,0x1b,0x03,0x01,0x01,0x01,0x08,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x11,0x21,0x32,0x16, -0x15,0x14,0x06,0x23,0x21,0x11,0x21,0x11,0x10,0x02,0x2b,0x01,0x3f,0x01,0x32,0x36,0x35,0x11,0x01,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x03,0xfc,0x01,0x0d,0xbf,0xd6,0xd7,0xbe,0xfe,0x2e,0xfe,0xc2,0xb2,0xce,0x38,0x04,0x29,0x6a,0x5c,0x02,0xc8,0x01,0x0d,0x69,0x66,0x65,0x6a,0x04,0x3a,0xfe,0x65,0xb9,0x93,0x94,0xbf,0x03,0x9e, -0xfe,0xce,0xfe,0xc2,0xfe,0xd2,0x9e,0x01,0xda,0xf3,0x01,0xce,0xfd,0xcb,0xfe,0x93,0x70,0x4d,0x49,0x67,0x00,0x02,0x00,0x8f,0x00,0x00,0x06,0x9d,0x04,0x3a,0x00,0x12,0x00,0x1b,0x00,0x47,0x40,0x18,0x13,0x13,0x13,0x1b,0x13,0x1a,0x16,0x14,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0a,0x06,0x04,0x03,0x02,0x01,0x00,0x0a,0x07,0x2b,0x4b, -0xb0,0x90,0x50,0x58,0x40,0x22,0x02,0x01,0x00,0x09,0x08,0x02,0x04,0x07,0x00,0x04,0x01,0x00,0x1d,0x06,0x01,0x01,0x01,0x0a,0x16,0x00,0x07,0x07,0x03,0x01,0x02,0x1b,0x05,0x01,0x03,0x03,0x08,0x03,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x21,0x11,0x23,0x11,0x33,0x01,0x11, -0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x01,0x54,0x01,0xe2,0xc5,0x01,0x0d,0xc0,0xd5,0xd7,0xbe,0xfe,0x2e,0xfe,0x1e,0xc5,0xc5,0x02,0xa7,0x01,0x0d,0x69,0x66,0x65,0x6a,0x02,0xa2,0x01,0x98,0xfe,0x64,0xb8,0x93,0x94,0xbf,0x02,0x09,0xfd,0xf7,0x04,0x3a,0xfd,0xcb,0xfe,0x93,0x70,0x4d,0x49,0x67,0x00,0x01,0x00,0x13,0x00,0x00,0x04,0x00, -0x06,0x18,0x00,0x1b,0x00,0x4d,0x40,0x14,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x0f,0x0d,0x0a,0x09,0x06,0x04,0x01,0x00,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2c,0x11,0x02,0x02,0x02,0x03,0x01,0x15,0x08,0x01,0x06,0x05,0x01,0x00,0x01,0x06,0x00,0x00,0x00,0x1d,0x00,0x07,0x07,0x09,0x16,0x00,0x03,0x03,0x01, -0x01,0x00,0x1b,0x00,0x01,0x01,0x10,0x16,0x04,0x01,0x02,0x02,0x08,0x02,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x3e,0x01,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x02,0x94,0xfe,0xc0,0x38,0xa3,0x63,0xad,0xc1,0xc5,0x73,0x72,0x58,0x82,0x28,0xc5,0x7c, -0x7c,0xc5,0x01,0x40,0x04,0xbb,0xfe,0xee,0x4e,0x57,0xd0,0xd8,0xfd,0x5a,0x02,0xa8,0x86,0x80,0x45,0x3e,0xfc,0xd5,0x04,0xbb,0x9b,0xc2,0xc2,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x04,0x40,0x05,0xef,0x02,0x26,0x01,0xe6,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x3e,0x00,0x01,0x00,0x08,0xb1,0x01,0x01,0xb0,0x01,0xb0,0x0d,0x2b,0x00,0x00, -0xff,0xff,0x00,0x8f,0x00,0x00,0x03,0xfc,0x05,0xf4,0x02,0x26,0x01,0xe4,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xae,0x00,0x06,0x00,0x08,0xb1,0x01,0x01,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x1a,0xfe,0x4b,0x03,0xe8,0x05,0xf7,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x06,0x01,0x54,0x56,0x47,0x00,0x08,0xb1,0x01,0x01,0xb0, -0x47,0xb0,0x0d,0x2b,0x00,0x01,0x00,0x8f,0xfe,0x9c,0x03,0xfc,0x04,0x3a,0x00,0x0b,0x00,0x3a,0x40,0x12,0x00,0x00,0x00,0x0b,0x00,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1b,0x00,0x03,0x02,0x03,0x2c,0x06,0x05,0x02,0x01,0x01,0x0a,0x16,0x00,0x00,0x00,0x02,0x00,0x02, -0x1b,0x04,0x01,0x02,0x02,0x08,0x02,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x01,0x54,0x01,0xe3,0xc5,0xfe,0xaf,0xc5,0xfe,0xa9,0x04,0x3a,0xfc,0x60,0x03,0xa0,0xfb,0xc6,0xfe,0x9c,0x01,0x64,0x04,0x3a,0x00,0x01,0x00,0x78,0xff,0xeb,0x07,0x28,0x05,0xc5,0x00,0x3c,0x00,0x63,0x40,0x18, -0x3a,0x38,0x33,0x31,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x26,0x24,0x1f,0x1d,0x18,0x16,0x11,0x0f,0x0b,0x09,0x04,0x02,0x0b,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x3e,0x1a,0x00,0x02,0x04,0x00,0x3c,0x1b,0x02,0x07,0x04,0x2f,0x28,0x02,0x05,0x06,0x0d,0x01,0x01,0x05,0x04,0x15,0x00,0x07,0x08,0x01,0x06,0x05,0x07,0x06,0x00,0x00,0x1d, -0x0a,0x01,0x04,0x04,0x00,0x01,0x00,0x1b,0x03,0x01,0x00,0x00,0x0d,0x16,0x09,0x01,0x05,0x05,0x01,0x01,0x00,0x1b,0x02,0x01,0x01,0x01,0x0e,0x01,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x3e,0x01,0x33,0x32,0x00,0x19,0x01,0x10,0x00,0x23,0x22,0x26,0x27,0x0e,0x01,0x23,0x22,0x00,0x19,0x01,0x10,0x00,0x33,0x32,0x16,0x17,0x07,0x2e,0x01,0x23, -0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x1e,0x01,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x04,0x4d,0x35,0x7a,0x43,0xd7,0x01,0x12,0xfe,0xe4,0xda,0x73,0xb1,0x3e,0x3f,0xb1,0x72,0xdb,0xfe,0xe5,0x01,0x11,0xd8,0x42,0x7a,0x36,0x3a,0x25,0x5d,0x36,0x83,0xa1,0xac,0x85, -0x67,0x79,0x1f,0xc6,0x02,0x52,0xc6,0x1c,0x7a,0x69,0x83,0xae,0xa2,0x82,0x37,0x5c,0x25,0x05,0x9a,0x14,0x17,0xfe,0xb1,0xfe,0xf8,0xfe,0xd4,0xfe,0xf7,0xfe,0xb2,0x3a,0x30,0x30,0x3a,0x01,0x4e,0x01,0x09,0x01,0x2c,0x01,0x08,0x01,0x4f,0x17,0x14,0x9c,0x15,0x17,0xfa,0xc0,0xfe,0xd2,0xc1,0xfc,0x40,0x2d,0x01,0x4c,0x9a,0x9a,0xfe,0xb4, -0x2c,0x41,0xfc,0xc1,0x01,0x2e,0xc0,0xfa,0x17,0x15,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x00,0x05,0x4c,0x04,0x3a,0x00,0x18,0x00,0x41,0x40,0x10,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x0e,0x0d,0x06,0x05,0x02,0x01,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x24,0x04,0x01,0x04,0x01,0x01,0x15,0x00,0x04,0x01,0x00,0x01,0x04, -0x00,0x29,0x00,0x00,0x03,0x01,0x00,0x03,0x27,0x06,0x02,0x02,0x01,0x01,0x0a,0x16,0x05,0x01,0x03,0x03,0x08,0x03,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x17,0x33,0x37,0x13,0x03,0x33,0x13,0x1f,0x01,0x37,0x36,0x12,0x27,0x33,0x12,0x02,0x07,0x23,0x03,0x23,0x03,0x23,0x01,0x33,0x01,0xf8,0x11,0x06,0x13,0x85,0x74,0xc9,0xc4,0x1a,0x06,0x0b, -0x5a,0x46,0x0b,0xc9,0x03,0x9a,0x94,0x95,0x8f,0x06,0x9e,0x95,0xfe,0x6d,0xca,0x01,0x3f,0x4c,0x4c,0x01,0x89,0x01,0x72,0xfd,0x05,0x71,0x01,0x22,0x8c,0x01,0xd0,0xef,0xfe,0xca,0xfd,0xe6,0xea,0x01,0xc3,0xfe,0x3d,0x04,0x3a,0x00,0x00,0x02,0xff,0xcd,0x00,0x00,0x04,0xbb,0x05,0xb0,0x00,0x12,0x00,0x1b,0x00,0x4f,0x40,0x18,0x13,0x13, -0x13,0x1b,0x13,0x1a,0x16,0x14,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x08,0x04,0x02,0x01,0x00,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2a,0x06,0x01,0x04,0x03,0x01,0x00,0x01,0x04,0x00,0x00,0x00,0x1d,0x00,0x01,0x09,0x01,0x08,0x07,0x01,0x08,0x01,0x00,0x1d,0x00,0x05,0x05,0x07,0x16,0x00,0x07,0x07,0x02,0x01,0x02, -0x1b,0x00,0x02,0x02,0x08,0x02,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x23,0x15,0x21,0x32,0x04,0x15,0x14,0x04,0x23,0x21,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x03,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x02,0x4e,0xe6,0x01,0x67,0xe9,0x01,0x03,0xfe,0xfc,0xe8,0xfd,0xd4,0xd6,0xd6,0xc5,0xe6,0xe6,0x01,0x67,0x93,0x94,0x93,0x94,0x04, -0x4d,0xdd,0xef,0xc5,0xc6,0xf6,0x04,0x4d,0x9b,0xc8,0xc8,0xfd,0xed,0xfd,0xc5,0xa9,0x7b,0x77,0xa0,0x00,0x00,0x02,0xff,0xdb,0x00,0x00,0x04,0x00,0x06,0x1a,0x00,0x12,0x00,0x1b,0x00,0x4f,0x40,0x18,0x13,0x13,0x13,0x1b,0x13,0x1a,0x16,0x14,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x08,0x04,0x02,0x01,0x00,0x0a,0x07,0x2b,0x4b, -0xb0,0x90,0x50,0x58,0x40,0x2a,0x06,0x01,0x04,0x03,0x01,0x00,0x01,0x04,0x00,0x00,0x00,0x1d,0x00,0x01,0x09,0x01,0x08,0x07,0x01,0x08,0x01,0x00,0x1d,0x00,0x05,0x05,0x09,0x16,0x00,0x07,0x07,0x02,0x01,0x02,0x1b,0x00,0x02,0x02,0x08,0x02,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x23, -0x35,0x33,0x11,0x33,0x11,0x21,0x01,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x02,0x9f,0xfe,0xbf,0x01,0x0d,0xc0,0xd5,0xd7,0xbe,0xfe,0x2e,0xbe,0xbe,0xc5,0x01,0x41,0xfe,0xbf,0x01,0x0d,0x6a,0x65,0x66,0x69,0x04,0x36,0xfe,0x68,0xb8,0x93,0x94,0xbf,0x04,0x36,0x9b,0x01,0x49,0xfe,0xb7,0xfd,0x33,0xfe,0x96,0x66,0x4c,0x4a,0x6e,0x00, -0x00,0x01,0x00,0xbf,0xff,0xec,0x06,0x92,0x05,0xc6,0x00,0x29,0x01,0x09,0x40,0x1a,0x29,0x28,0x25,0x23,0x21,0x20,0x1d,0x1b,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x01,0x00,0x0c,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x42,0x1f,0x01,0x09,0x0a,0x0a,0x01,0x01,0x02,0x02,0x15, -0x00,0x09,0x0a,0x07,0x0a,0x09,0x07,0x29,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x29,0x0b,0x01,0x07,0x04,0x01,0x00,0x02,0x07,0x00,0x00,0x00,0x1d,0x00,0x0a,0x0a,0x06,0x01,0x00,0x1b,0x08,0x01,0x06,0x06,0x07,0x16,0x00,0x01,0x01,0x03,0x01,0x00,0x1b,0x05,0x01,0x03,0x03,0x0e,0x03,0x17,0x08,0x1b,0x4b,0xb0,0x19,0x58,0x40,0x46,0x1f, -0x01,0x09,0x0a,0x0a,0x01,0x01,0x02,0x02,0x15,0x00,0x09,0x0a,0x07,0x0a,0x09,0x07,0x29,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x29,0x0b,0x01,0x07,0x04,0x01,0x00,0x02,0x07,0x00,0x00,0x00,0x1d,0x00,0x06,0x06,0x07,0x16,0x00,0x0a,0x0a,0x08,0x01,0x00,0x1b,0x00,0x08,0x08,0x0d,0x16,0x00,0x01,0x01,0x03,0x01,0x00,0x1b,0x05,0x01,0x03, -0x03,0x0e,0x03,0x17,0x09,0x1b,0x40,0x4a,0x1f,0x01,0x09,0x0a,0x0a,0x01,0x01,0x02,0x02,0x15,0x00,0x09,0x0a,0x07,0x0a,0x09,0x07,0x29,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x29,0x0b,0x01,0x07,0x04,0x01,0x00,0x02,0x07,0x00,0x00,0x00,0x1d,0x00,0x06,0x06,0x07,0x16,0x00,0x0a,0x0a,0x08,0x01,0x00,0x1b,0x00,0x08,0x08,0x0d,0x16,0x00, -0x05,0x05,0x08,0x16,0x00,0x01,0x01,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17,0x0a,0x59,0x59,0xb0,0x2f,0x2b,0x01,0x21,0x15,0x14,0x12,0x33,0x32,0x36,0x35,0x33,0x17,0x16,0x00,0x23,0x22,0x00,0x11,0x35,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x35,0x10,0x00,0x33,0x32,0x00,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x02,0x1d,0x01, -0x21,0x04,0xed,0xfe,0x21,0xc4,0xa5,0xa4,0xb4,0xbd,0x02,0x04,0xfe,0xd8,0xf3,0xf7,0xfe,0xc9,0xc4,0xc6,0xc6,0xc4,0x01,0x37,0xf7,0xf7,0x01,0x24,0x04,0x02,0xbd,0xb4,0xa4,0xa5,0xc4,0x01,0xdf,0x02,0x7f,0x28,0xc7,0xfe,0xf6,0xb1,0x9c,0x06,0xcd,0xfe,0xec,0x01,0x5e,0x01,0x0d,0x28,0xfd,0x81,0x05,0xb0,0xfd,0x69,0x41,0x01,0x0d,0x01, -0x5f,0xfe,0xf9,0xd9,0x06,0x99,0xb2,0xfe,0xf6,0xc5,0x43,0x00,0x00,0x01,0x00,0x97,0xff,0xeb,0x05,0x83,0x04,0x4e,0x00,0x27,0x01,0x21,0x40,0x1a,0x27,0x26,0x23,0x21,0x1f,0x1e,0x1b,0x19,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0e,0x0c,0x09,0x08,0x06,0x04,0x01,0x00,0x0c,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58, -0x40,0x4a,0x1d,0x01,0x09,0x0a,0x25,0x01,0x07,0x09,0x02,0x01,0x02,0x00,0x0a,0x01,0x01,0x02,0x04,0x15,0x00,0x09,0x0a,0x07,0x0a,0x09,0x07,0x29,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x29,0x0b,0x01,0x07,0x04,0x01,0x00,0x02,0x07,0x00,0x00,0x00,0x1d,0x00,0x0a,0x0a,0x06,0x01,0x00,0x1b,0x08,0x01,0x06,0x06,0x0a,0x16,0x00,0x01,0x01, -0x03,0x01,0x00,0x1b,0x05,0x01,0x03,0x03,0x0e,0x03,0x17,0x08,0x1b,0x4b,0xb0,0x19,0x58,0x40,0x4e,0x1d,0x01,0x09,0x0a,0x25,0x01,0x07,0x09,0x02,0x01,0x02,0x00,0x0a,0x01,0x01,0x02,0x04,0x15,0x00,0x09,0x0a,0x07,0x0a,0x09,0x07,0x29,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x29,0x0b,0x01,0x07,0x04,0x01,0x00,0x02,0x07,0x00,0x00,0x00, -0x1d,0x00,0x0a,0x0a,0x06,0x01,0x00,0x1b,0x08,0x01,0x06,0x06,0x0a,0x16,0x00,0x05,0x05,0x08,0x16,0x00,0x01,0x01,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17,0x09,0x1b,0x40,0x52,0x1d,0x01,0x09,0x0a,0x25,0x01,0x07,0x09,0x02,0x01,0x02,0x00,0x0a,0x01,0x01,0x02,0x04,0x15,0x00,0x09,0x0a,0x07,0x0a,0x09,0x07,0x29,0x00,0x02, -0x00,0x01,0x00,0x02,0x01,0x29,0x0b,0x01,0x07,0x04,0x01,0x00,0x02,0x07,0x00,0x00,0x00,0x1d,0x00,0x06,0x06,0x0a,0x16,0x00,0x0a,0x0a,0x08,0x01,0x00,0x1b,0x00,0x08,0x08,0x10,0x16,0x00,0x05,0x05,0x08,0x16,0x00,0x01,0x01,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17,0x0a,0x59,0x59,0xb0,0x2f,0x2b,0x01,0x21,0x07,0x1e,0x01, -0x33,0x32,0x36,0x35,0x33,0x17,0x16,0x06,0x23,0x22,0x02,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x12,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x07,0x17,0x21,0x04,0x19,0xfe,0xc1,0x02,0x06,0x84,0x85,0x5b,0x88,0xb2,0x03,0x04,0xf8,0xa4,0xd5,0xf6,0x0f,0xb1,0xc5,0xc5,0xb1,0x0f,0xf6,0xd5,0xb5,0xe7,0x04,0x02, -0xb3,0x81,0x62,0x85,0x85,0x05,0x02,0x01,0x3f,0x01,0xcd,0x05,0x8b,0xb8,0x79,0x58,0x06,0x8c,0xd9,0x01,0x10,0xd2,0xfe,0x33,0x04,0x3a,0xfe,0x2e,0xd2,0x01,0x14,0xe0,0xa3,0x06,0x63,0x8b,0xbd,0x89,0x05,0x00,0x00,0x02,0x00,0x2b,0x00,0x00,0x04,0xe3,0x05,0xb0,0x00,0x0b,0x00,0x0f,0x00,0x40,0x40,0x12,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a, -0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x21,0x00,0x07,0x04,0x06,0x04,0x07,0x06,0x29,0x00,0x06,0x02,0x01,0x00,0x01,0x06,0x00,0x00,0x00,0x1d,0x00,0x04,0x04,0x07,0x16,0x05,0x03,0x02,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x23,0x11,0x23,0x03,0x23, -0x01,0x33,0x01,0x23,0x01,0x21,0x03,0x23,0x03,0x85,0xa1,0xc4,0x94,0x98,0xc9,0x02,0x0d,0xa9,0x02,0x02,0xc9,0xfd,0xab,0x01,0x88,0xbf,0x06,0x01,0xb6,0xfe,0x4a,0x01,0xb6,0xfe,0x4a,0x05,0xb0,0xfa,0x50,0x02,0x5a,0x02,0x33,0x00,0x00,0x02,0x00,0x0d,0x00,0x00,0x04,0x29,0x04,0x3a,0x00,0x0b,0x00,0x11,0x00,0x40,0x40,0x12,0x10,0x0f, -0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x21,0x00,0x07,0x04,0x06,0x04,0x07,0x06,0x29,0x00,0x06,0x02,0x01,0x00,0x01,0x06,0x00,0x00,0x00,0x1d,0x00,0x04,0x04,0x0a,0x16,0x05,0x03,0x02,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x23, -0x11,0x23,0x03,0x23,0x01,0x33,0x01,0x23,0x01,0x21,0x03,0x27,0x23,0x07,0x02,0xe9,0x6a,0xc4,0x71,0x74,0xc9,0x01,0xb8,0xa9,0x01,0xbb,0xc9,0xfe,0x27,0x01,0x24,0x7e,0x12,0x06,0x12,0x01,0x26,0xfe,0xda,0x01,0x26,0xfe,0xda,0x04,0x3a,0xfb,0xc6,0x01,0xc1,0x01,0x38,0x44,0x44,0x00,0x00,0x00,0x00,0x02,0x00,0xd1,0x00,0x00,0x06,0xf4, -0x05,0xb0,0x00,0x13,0x00,0x17,0x00,0x4c,0x40,0x1a,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x0c,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x25,0x00,0x0b,0x01,0x00,0x01,0x0b,0x00,0x29,0x0a,0x01,0x00,0x07,0x05,0x02,0x03,0x02,0x00,0x03,0x00,0x02, -0x1d,0x09,0x01,0x01,0x01,0x07,0x16,0x08,0x06,0x04,0x03,0x02,0x02,0x08,0x02,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x01,0x33,0x01,0x23,0x03,0x23,0x11,0x23,0x11,0x23,0x03,0x23,0x13,0x21,0x11,0x23,0x11,0x33,0x01,0x21,0x03,0x23,0x01,0x97,0x01,0x7e,0x01,0x34,0xa9,0x02,0x02,0xc9,0x95,0xa1,0xc4,0x94,0x98,0xc9,0x9e,0xfe,0xbd,0xc6, -0xc6,0x02,0x3f,0x01,0x88,0xbf,0x06,0x02,0x5b,0x03,0x55,0xfa,0x50,0x01,0xb6,0xfe,0x4a,0x01,0xb6,0xfe,0x4a,0x01,0xb7,0xfe,0x49,0x05,0xb0,0xfc,0xaa,0x02,0x33,0x00,0x00,0x02,0x00,0xba,0x00,0x00,0x05,0xe8,0x04,0x3a,0x00,0x13,0x00,0x19,0x00,0x4c,0x40,0x1a,0x18,0x17,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a, -0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x0c,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x25,0x00,0x0b,0x01,0x00,0x01,0x0b,0x00,0x29,0x0a,0x01,0x00,0x07,0x05,0x02,0x03,0x02,0x00,0x03,0x00,0x02,0x1d,0x09,0x01,0x01,0x01,0x0a,0x16,0x08,0x06,0x04,0x03,0x02,0x02,0x08,0x02,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x01,0x33, -0x01,0x23,0x03,0x23,0x11,0x23,0x11,0x23,0x03,0x23,0x13,0x23,0x11,0x23,0x11,0x33,0x01,0x21,0x03,0x27,0x23,0x07,0x01,0x7f,0x01,0x03,0x01,0x02,0xa9,0x01,0xbb,0xc9,0x77,0x6a,0xc4,0x71,0x74,0xc9,0x77,0xc4,0xc5,0xc5,0x01,0xc7,0x01,0x24,0x7e,0x12,0x06,0x12,0x01,0xc1,0x02,0x79,0xfb,0xc6,0x01,0x26,0xfe,0xda,0x01,0x26,0xfe,0xda, -0x01,0x25,0xfe,0xdb,0x04,0x3a,0xfd,0x87,0x01,0x38,0x44,0x44,0x00,0x02,0x00,0x95,0x00,0x00,0x06,0x4b,0x05,0xb0,0x00,0x21,0x00,0x25,0x00,0x59,0x40,0x18,0x25,0x24,0x23,0x22,0x21,0x20,0x1d,0x1c,0x1b,0x19,0x16,0x15,0x12,0x10,0x0e,0x0d,0x0b,0x09,0x06,0x05,0x02,0x00,0x0b,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x34,0x1f,0x1e, -0x02,0x0a,0x07,0x0f,0x0c,0x02,0x01,0x02,0x02,0x15,0x04,0x01,0x02,0x01,0x00,0x02,0x01,0x02,0x1a,0x00,0x0a,0x0a,0x07,0x00,0x00,0x1b,0x08,0x01,0x07,0x07,0x07,0x16,0x09,0x06,0x02,0x00,0x00,0x01,0x00,0x02,0x1b,0x05,0x03,0x02,0x01,0x01,0x08,0x01,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x2b, -0x01,0x07,0x11,0x23,0x11,0x27,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x36,0x3b,0x01,0x01,0x33,0x17,0x37,0x35,0x21,0x01,0x33,0x01,0x21,0x04,0x4c,0x16,0xef,0xfa,0xc5,0x8b,0x99,0x74,0x19,0xc5,0x11,0x83,0x99,0x89,0xc5,0xf7,0xf0,0x25,0xfe,0x79,0xe2,0x05,0x06,0x03,0xcc,0xfd,0x9f,0x0a,0x01,0x1c,0xfd,0xbe,0x03,0x2e,0xd1,0xea, -0xfe,0x8d,0x01,0x73,0xa2,0x7e,0x2a,0xfd,0x97,0x02,0x78,0x1b,0x7e,0xa2,0xfe,0x8d,0x01,0x73,0xea,0xd1,0x02,0x82,0x09,0x02,0x07,0xfd,0x7e,0x01,0xe7,0x00,0x00,0x00,0x00,0x02,0x00,0x95,0x00,0x00,0x05,0x57,0x04,0x3b,0x00,0x1f,0x00,0x22,0x00,0x53,0x40,0x18,0x22,0x21,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x17,0x16,0x13,0x11,0x0f,0x0e, -0x0c,0x0a,0x07,0x06,0x03,0x02,0x01,0x00,0x0b,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2e,0x20,0x01,0x01,0x0a,0x10,0x0d,0x02,0x02,0x03,0x02,0x15,0x07,0x01,0x01,0x05,0x01,0x03,0x02,0x01,0x03,0x01,0x00,0x1d,0x00,0x0a,0x0a,0x00,0x00,0x00,0x1b,0x09,0x08,0x02,0x00,0x00,0x0a,0x16,0x06,0x04,0x02,0x02,0x02,0x08,0x02,0x17,0x05, -0xb0,0x2f,0x2b,0x01,0x33,0x01,0x1e,0x01,0x1d,0x01,0x23,0x35,0x34,0x26,0x2b,0x01,0x07,0x11,0x23,0x11,0x27,0x23,0x22,0x06,0x1d,0x01,0x23,0x35,0x34,0x36,0x37,0x01,0x33,0x35,0x21,0x01,0x13,0x21,0x04,0x63,0x7b,0xfe,0xe3,0xc6,0xd0,0xc6,0x77,0x84,0x2f,0x0b,0xc5,0x06,0x3c,0x85,0x76,0xc5,0xd4,0xcd,0xfe,0xe4,0x9e,0x02,0xab,0xfe, -0x99,0xb0,0xfe,0xa0,0x04,0x3a,0xfe,0x21,0x0a,0xd2,0xdd,0xa2,0xa2,0xa3,0x7d,0x13,0xfe,0x51,0x01,0xb8,0x0a,0x7d,0xa3,0xa2,0xa2,0xe2,0xd0,0x07,0x01,0xdf,0x01,0xfe,0x24,0x01,0x40,0x00,0x00,0x04,0x00,0xbe,0x00,0x00,0x08,0x82,0x05,0xb0,0x00,0x03,0x00,0x07,0x00,0x29,0x00,0x2d,0x00,0x65,0x40,0x20,0x2d,0x2c,0x2b,0x2a,0x29,0x28, -0x25,0x24,0x23,0x21,0x1e,0x1d,0x1a,0x18,0x16,0x15,0x13,0x11,0x0e,0x0d,0x0a,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x0f,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x38,0x27,0x26,0x02,0x0e,0x03,0x17,0x14,0x02,0x02,0x00,0x02,0x15,0x08,0x06,0x02,0x00,0x02,0x01,0x00,0x01,0x02,0x1a,0x00,0x0e,0x0e,0x03,0x00,0x00,0x1b,0x0c, -0x0b,0x02,0x03,0x03,0x07,0x16,0x0d,0x0a,0x04,0x03,0x01,0x01,0x02,0x00,0x02,0x1b,0x09,0x07,0x05,0x03,0x02,0x02,0x08,0x02,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x21,0x35,0x21,0x01,0x23,0x11,0x33,0x01,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x2b,0x01,0x07,0x11,0x23,0x11,0x27,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x36,0x3b, -0x01,0x01,0x33,0x17,0x37,0x35,0x21,0x01,0x33,0x01,0x21,0x04,0xfc,0xfc,0x6d,0x03,0x93,0xfc,0x88,0xc6,0xc6,0x04,0xff,0x16,0xef,0xfa,0xc5,0x8b,0x99,0x74,0x19,0xc5,0x11,0x83,0x99,0x89,0xc5,0xf7,0xf0,0x25,0xfe,0x79,0xe2,0x05,0x06,0x03,0xcc,0xfd,0x9f,0x0a,0x01,0x1c,0xfd,0xbe,0x02,0x94,0x9a,0xfc,0xd2,0x05,0xb0,0xfd,0x7e,0xd1, -0xea,0xfe,0x8d,0x01,0x73,0xa2,0x7e,0x2a,0xfd,0x97,0x02,0x78,0x1b,0x7e,0xa2,0xfe,0x8d,0x01,0x73,0xea,0xd1,0x02,0x82,0x09,0x02,0x07,0xfd,0x7e,0x01,0xe7,0x00,0x00,0x00,0x04,0x00,0x99,0x00,0x00,0x07,0x51,0x04,0x3b,0x00,0x03,0x00,0x07,0x00,0x27,0x00,0x2a,0x00,0x5f,0x40,0x20,0x2a,0x29,0x27,0x26,0x25,0x24,0x23,0x22,0x1f,0x1e, -0x1b,0x19,0x17,0x16,0x14,0x12,0x0f,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x0f,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x32,0x28,0x01,0x01,0x0e,0x18,0x15,0x02,0x02,0x00,0x02,0x15,0x0b,0x05,0x02,0x01,0x09,0x07,0x02,0x00,0x02,0x01,0x00,0x01,0x02,0x1d,0x00,0x0e,0x0e,0x03,0x00,0x00,0x1b,0x0d,0x0c, -0x04,0x03,0x03,0x03,0x0a,0x16,0x0a,0x08,0x06,0x03,0x02,0x02,0x08,0x02,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x21,0x35,0x21,0x01,0x23,0x11,0x33,0x21,0x33,0x01,0x1e,0x01,0x1d,0x01,0x23,0x35,0x34,0x26,0x2b,0x01,0x07,0x11,0x23,0x11,0x27,0x23,0x22,0x06,0x1d,0x01,0x23,0x35,0x34,0x36,0x37,0x01,0x33,0x35,0x21,0x01,0x13,0x21,0x04,0xf8, -0xfc,0x0b,0x03,0xf5,0xfc,0x66,0xc5,0xc5,0x04,0xff,0x7b,0xfe,0xe3,0xc6,0xd0,0xc6,0x77,0x84,0x2f,0x0b,0xc5,0x06,0x3c,0x85,0x76,0xc5,0xd4,0xcd,0xfe,0xe4,0x9e,0x02,0xab,0xfe,0x99,0xb0,0xfe,0xa0,0x01,0xc2,0x9b,0xfd,0xa3,0x04,0x3a,0xfe,0x21,0x0a,0xd2,0xdd,0xa2,0xa2,0xa3,0x7d,0x13,0xfe,0x51,0x01,0xb8,0x0a,0x7d,0xa3,0xa2,0xa2, -0xe2,0xd0,0x07,0x01,0xdf,0x01,0xfe,0x24,0x01,0x40,0x00,0x00,0x00,0x02,0x00,0x4a,0xfe,0x44,0x03,0xa4,0x07,0x72,0x00,0x2c,0x00,0x35,0x00,0x66,0x40,0x18,0x01,0x00,0x35,0x34,0x32,0x31,0x2f,0x2e,0x2b,0x29,0x25,0x22,0x17,0x14,0x0a,0x08,0x07,0x05,0x00,0x2c,0x01,0x2c,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x41,0x33,0x30, -0x2d,0x03,0x07,0x06,0x0f,0x01,0x05,0x00,0x02,0x15,0x1d,0x1c,0x02,0x03,0x12,0x08,0x01,0x06,0x07,0x06,0x2b,0x00,0x07,0x02,0x07,0x2b,0x09,0x01,0x00,0x00,0x05,0x04,0x00,0x05,0x01,0x00,0x1d,0x00,0x01,0x01,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x07,0x16,0x00,0x04,0x04,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17,0x09,0xb0, -0x2f,0x2b,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x04,0x15,0x14,0x06,0x07,0x1e,0x01,0x15,0x14,0x04,0x2b,0x01,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x2e,0x01,0x27,0x34,0x36,0x3b,0x01,0x32,0x36,0x35,0x34,0x26,0x2b,0x01,0x35,0x01,0x37,0x33,0x15,0x05,0x23,0x27,0x35,0x33,0x01,0x9c,0x9a,0x92,0x8f,0x89,0xfe,0xd0, -0x01,0x30,0xd3,0x01,0x0b,0x82,0x73,0x81,0x8a,0xfe,0xf7,0xd3,0x32,0x4c,0x45,0x5d,0x42,0x4f,0x6f,0x9b,0x01,0xb3,0xa1,0x2a,0x81,0x95,0xa4,0x9e,0x8f,0x01,0x0a,0x93,0xaa,0xfe,0xff,0x77,0xfe,0xa6,0x03,0x39,0x7f,0x72,0x66,0x85,0x9b,0xd5,0xb5,0x67,0xa4,0x2c,0x29,0xb0,0x7f,0xc8,0xe3,0x3b,0x35,0x46,0x55,0x1e,0x7f,0x2f,0xa4,0x6f, -0x81,0x80,0x95,0x77,0x85,0x86,0x9b,0x03,0xa5,0x94,0x12,0xf5,0xf3,0x14,0x00,0x00,0x00,0x02,0x00,0x49,0xfe,0x44,0x03,0x79,0x06,0x1a,0x00,0x2c,0x00,0x35,0x00,0x69,0x40,0x18,0x01,0x00,0x35,0x34,0x32,0x31,0x2f,0x2e,0x2b,0x29,0x25,0x22,0x17,0x14,0x0a,0x08,0x07,0x05,0x00,0x2c,0x01,0x2c,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58, -0x40,0x44,0x33,0x30,0x2d,0x03,0x07,0x06,0x0f,0x01,0x05,0x00,0x02,0x15,0x1d,0x1c,0x02,0x03,0x12,0x00,0x07,0x06,0x02,0x06,0x07,0x02,0x29,0x09,0x01,0x00,0x00,0x05,0x04,0x00,0x05,0x01,0x00,0x1d,0x08,0x01,0x06,0x06,0x09,0x16,0x00,0x01,0x01,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0a,0x16,0x00,0x04,0x04,0x03,0x01,0x02,0x1b,0x00, -0x03,0x03,0x0e,0x03,0x17,0x09,0xb0,0x2f,0x2b,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x01,0x15,0x14,0x06,0x2b,0x01,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x2e,0x01,0x27,0x34,0x36,0x3b,0x01,0x32,0x36,0x35,0x34,0x26,0x2b,0x01,0x35,0x13,0x37,0x33,0x15,0x05,0x23,0x27,0x35,0x33,0x01, -0x9a,0x85,0x7e,0x7b,0x74,0xfe,0xd1,0x01,0x2f,0xc0,0xf5,0x67,0x5b,0x69,0x6f,0xf3,0xc0,0x31,0x4c,0x45,0x5e,0x42,0x50,0x6f,0x9b,0x01,0xb3,0xa1,0x29,0x6e,0x7f,0x8f,0x8a,0x8f,0xc4,0x93,0xaa,0xfe,0xff,0x77,0xfe,0xa6,0x02,0x6a,0x53,0x4b,0x41,0x55,0x9c,0xa8,0x8e,0x49,0x77,0x23,0x21,0x7a,0x56,0x97,0xad,0x3b,0x35,0x46,0x56,0x1d, -0x7f,0x2f,0xa4,0x6f,0x81,0x80,0x5b,0x4a,0x52,0x51,0x9b,0x03,0x1c,0x94,0x12,0xf5,0xf3,0x14,0x00,0x00,0xff,0xff,0x00,0x57,0x00,0x00,0x05,0x1b,0x05,0xb0,0x02,0x06,0x01,0x82,0x00,0x00,0xff,0xff,0x00,0x5b,0xfe,0x26,0x05,0x4d,0x04,0x3a,0x02,0x06,0x01,0xa2,0x00,0x00,0x00,0x03,0x00,0x71,0xff,0xeb,0x05,0x02,0x05,0xc5,0x00,0x0d, -0x00,0x1e,0x00,0x2f,0x00,0x5e,0x40,0x16,0x0f,0x0e,0x2d,0x2b,0x26,0x24,0x23,0x21,0x1d,0x1b,0x16,0x14,0x0e,0x1e,0x0f,0x1e,0x0b,0x09,0x04,0x02,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x3b,0x19,0x11,0x02,0x02,0x04,0x28,0x1f,0x02,0x05,0x06,0x02,0x15,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x01,0x00,0x1d,0x08,0x01,0x02,0x00, -0x05,0x07,0x02,0x05,0x01,0x00,0x1d,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0d,0x16,0x00,0x07,0x07,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x00,0x17,0x07,0xb0,0x2f,0x2b,0x01,0x10,0x00,0x21,0x22,0x00,0x19,0x01,0x10,0x00,0x33,0x20,0x00,0x11,0x05,0x32,0x36,0x37,0x35,0x34,0x02,0x23,0x22,0x02,0x1d,0x01,0x3e,0x01, -0x33,0x32,0x04,0x05,0x0e,0x01,0x23,0x22,0x26,0x23,0x22,0x06,0x07,0x15,0x14,0x12,0x33,0x32,0x36,0x35,0x05,0x02,0xfe,0xb5,0xfe,0xf8,0xff,0xfe,0xc1,0x01,0x3f,0xff,0x01,0x08,0x01,0x4b,0xfe,0x8a,0x37,0x5f,0x1b,0xd8,0xb6,0xac,0xcd,0x24,0x57,0x31,0x57,0x01,0x02,0x01,0x02,0x25,0x5a,0x32,0x6d,0xed,0x50,0x37,0x5c,0x19,0xcd,0xac, -0xb7,0xd7,0x02,0x56,0xfe,0xf5,0xfe,0xa0,0x01,0x60,0x01,0x0b,0x01,0x03,0x01,0x0a,0x01,0x62,0xfe,0x9f,0xfe,0xf5,0x8c,0x29,0x21,0x44,0xc8,0x01,0x00,0xff,0x00,0xc8,0x44,0x1c,0x20,0x86,0x63,0x1b,0x1d,0x85,0x2f,0x23,0x0f,0xca,0xff,0x00,0xff,0xcb,0x00,0x03,0x00,0x61,0xff,0xeb,0x04,0x2a,0x04,0x4e,0x00,0x0d,0x00,0x1d,0x00,0x2d, -0x00,0x65,0x40,0x1a,0x1f,0x1e,0x0f,0x0e,0x2c,0x2a,0x25,0x23,0x1e,0x2d,0x1f,0x2d,0x1c,0x1a,0x15,0x13,0x0e,0x1d,0x0f,0x1d,0x0b,0x09,0x04,0x02,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x3e,0x18,0x17,0x11,0x03,0x02,0x04,0x28,0x27,0x21,0x03,0x07,0x05,0x02,0x15,0x00,0x04,0x09,0x01,0x05,0x07,0x04,0x05,0x01,0x00,0x1d,0x08, -0x01,0x02,0x00,0x07,0x06,0x02,0x07,0x01,0x00,0x1d,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x10,0x16,0x00,0x06,0x06,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x07,0xb0,0x2f,0x2b,0x13,0x34,0x00,0x33,0x32,0x00,0x1d,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x25,0x32,0x36,0x37,0x2e,0x01,0x23,0x22,0x06,0x07,0x17, -0x3e,0x01,0x33,0x32,0x16,0x05,0x22,0x06,0x07,0x1e,0x01,0x33,0x32,0x36,0x37,0x27,0x0e,0x01,0x23,0x22,0x26,0x61,0x01,0x04,0xdf,0xe1,0x01,0x05,0xfe,0xfc,0xe0,0xe0,0xfe,0xfb,0x02,0x80,0x2b,0x4a,0x09,0x13,0x8f,0x79,0x86,0x8e,0x02,0x04,0x14,0x46,0x29,0x3e,0xb6,0xfe,0xf9,0x26,0x43,0x0e,0x10,0x8f,0x7c,0x83,0x8e,0x04,0x03,0x15, -0x4b,0x2b,0x4c,0xa7,0x02,0x27,0xf0,0x01,0x37,0xfe,0xca,0xf1,0x16,0xf2,0xfe,0xcc,0x01,0x35,0xf1,0x1b,0x32,0x26,0x87,0xa8,0xc9,0x95,0x05,0x17,0x1f,0x5a,0x2c,0x28,0x1e,0x8b,0xaa,0xc1,0x94,0x04,0x1a,0x1f,0x5b,0x00,0x00,0x00,0x00,0x01,0x00,0x16,0x00,0x00,0x05,0x17,0x05,0xc4,0x00,0x15,0x00,0x69,0x40,0x0c,0x15,0x14,0x13,0x12, -0x0f,0x0d,0x08,0x06,0x02,0x01,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x19,0x58,0x40,0x22,0x0a,0x01,0x02,0x01,0x01,0x15,0x00,0x00,0x02,0x03,0x02,0x00,0x03,0x29,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x04,0x01,0x01,0x01,0x0d,0x16,0x00,0x03,0x03,0x08,0x03,0x17,0x05,0x1b,0x40,0x26,0x0a,0x01,0x02,0x04,0x01,0x15,0x00, -0x00,0x02,0x03,0x02,0x00,0x03,0x29,0x00,0x04,0x04,0x07,0x16,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0d,0x16,0x00,0x03,0x03,0x08,0x03,0x17,0x06,0x59,0xb0,0x2f,0x2b,0x01,0x17,0x33,0x37,0x13,0x3e,0x01,0x33,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x07,0x01,0x23,0x01,0x33,0x02,0x59,0x20,0x06,0x21,0xe0,0x2f, -0x9c,0x5f,0x21,0x33,0x19,0x16,0x06,0x15,0x0d,0x34,0x46,0x1a,0xfe,0x8b,0xa8,0xfd,0xee,0xd6,0x01,0x7e,0x78,0x78,0x03,0x25,0x94,0x8d,0x0b,0x0f,0x97,0x02,0x05,0x41,0x4e,0xfb,0x75,0x05,0xb0,0x00,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x00,0x04,0x0e,0x04,0x4d,0x00,0x15,0x00,0x69,0x40,0x0c,0x15,0x14,0x13,0x12,0x0f,0x0d,0x08,0x06, -0x02,0x01,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x1b,0x58,0x40,0x22,0x0a,0x01,0x02,0x01,0x01,0x15,0x00,0x00,0x02,0x03,0x02,0x00,0x03,0x29,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x04,0x01,0x01,0x01,0x10,0x16,0x00,0x03,0x03,0x08,0x03,0x17,0x05,0x1b,0x40,0x26,0x0a,0x01,0x02,0x04,0x01,0x15,0x00,0x00,0x02,0x03,0x02, -0x00,0x03,0x29,0x00,0x04,0x04,0x0a,0x16,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x10,0x16,0x00,0x03,0x03,0x08,0x03,0x17,0x06,0x59,0xb0,0x2f,0x2b,0x01,0x17,0x33,0x37,0x13,0x3e,0x01,0x33,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x07,0x01,0x23,0x01,0x33,0x01,0xe3,0x11,0x06,0x13,0x95,0x29,0x84,0x52,0x22,0x33, -0x18,0x16,0x05,0x16,0x0d,0x20,0x3b,0x0d,0xfe,0xd8,0x95,0xfe,0x83,0xca,0x01,0x3f,0x4c,0x4c,0x02,0x17,0x7f,0x78,0x0a,0x0f,0x97,0x03,0x05,0x34,0x2a,0xfc,0xb9,0x04,0x3a,0x00,0x00,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x17,0x07,0x48,0x02,0x26,0x02,0x20,0x00,0x00,0x01,0x07,0x01,0x5f,0x04,0x38,0x01,0x5a,0x00,0x09,0xb1,0x01, -0x02,0xb8,0x01,0x5a,0xb0,0x0d,0x2b,0x00,0xff,0xff,0xff,0xfe,0x00,0x00,0x04,0x0e,0x06,0x20,0x02,0x26,0x02,0x21,0x00,0x00,0x01,0x07,0x01,0x5f,0x03,0xd2,0x00,0x32,0x00,0x08,0xb1,0x01,0x02,0xb0,0x32,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x71,0xfe,0x4b,0x09,0x5c,0x05,0xc5,0x00,0x26,0x00,0x32,0x00,0x00,0x00,0x07,0x00,0x5c, -0x05,0x74,0x00,0x00,0xff,0xff,0x00,0x61,0xfe,0x4b,0x08,0x74,0x04,0x4e,0x00,0x26,0x00,0x52,0x00,0x00,0x00,0x07,0x00,0x5c,0x04,0x8c,0x00,0x00,0x00,0x04,0x00,0x71,0xff,0x73,0x05,0x02,0x06,0x35,0x00,0x03,0x00,0x07,0x00,0x15,0x00,0x23,0x00,0xc7,0x40,0x12,0x21,0x1f,0x1a,0x18,0x13,0x11,0x0c,0x0a,0x07,0x06,0x05,0x04,0x03,0x02, -0x01,0x00,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x16,0x58,0x40,0x32,0x00,0x00,0x06,0x03,0x06,0x00,0x21,0x00,0x03,0x07,0x07,0x03,0x1f,0x00,0x02,0x04,0x04,0x02,0x20,0x00,0x01,0x01,0x09,0x16,0x00,0x06,0x06,0x05,0x01,0x00,0x1b,0x00,0x05,0x05,0x0d,0x16,0x00,0x07,0x07,0x04,0x01,0x02,0x1b,0x00,0x04,0x04,0x0e,0x04, -0x17,0x08,0x1b,0x4b,0xb0,0x23,0x58,0x40,0x33,0x00,0x00,0x06,0x03,0x06,0x00,0x03,0x29,0x00,0x03,0x07,0x06,0x03,0x07,0x27,0x00,0x02,0x04,0x02,0x2c,0x00,0x01,0x01,0x09,0x16,0x00,0x06,0x06,0x05,0x01,0x00,0x1b,0x00,0x05,0x05,0x0d,0x16,0x00,0x07,0x07,0x04,0x01,0x02,0x1b,0x00,0x04,0x04,0x0e,0x04,0x17,0x08,0x1b,0x40,0x33,0x00, -0x01,0x05,0x01,0x2b,0x00,0x00,0x06,0x03,0x06,0x00,0x03,0x29,0x00,0x03,0x07,0x06,0x03,0x07,0x27,0x00,0x02,0x04,0x02,0x2c,0x00,0x06,0x06,0x05,0x01,0x00,0x1b,0x00,0x05,0x05,0x0d,0x16,0x00,0x07,0x07,0x04,0x01,0x02,0x1b,0x00,0x04,0x04,0x0e,0x04,0x17,0x08,0x59,0x59,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x33,0x11,0x23,0x11,0x33,0x01, -0x10,0x00,0x21,0x22,0x00,0x19,0x01,0x10,0x00,0x33,0x20,0x00,0x11,0x27,0x34,0x02,0x23,0x22,0x02,0x15,0x11,0x14,0x12,0x33,0x32,0x36,0x35,0x03,0x1d,0xc5,0xc5,0xc5,0xc5,0x01,0xe5,0xfe,0xb5,0xfe,0xf8,0xff,0xfe,0xc1,0x01,0x3f,0xff,0x01,0x08,0x01,0x4b,0xc5,0xd8,0xb6,0xac,0xcd,0xcd,0xac,0xb7,0xd7,0x04,0xb0,0x01,0x85,0xf9,0x3e, -0x01,0x8e,0x01,0x55,0xfe,0xf5,0xfe,0xa0,0x01,0x60,0x01,0x0b,0x01,0x03,0x01,0x0a,0x01,0x62,0xfe,0x9f,0xfe,0xf5,0x02,0xc8,0x01,0x00,0xff,0x00,0xc8,0xfe,0xfb,0xca,0xff,0x00,0xff,0xcb,0x00,0x04,0x00,0x61,0xff,0x8a,0x04,0x2a,0x04,0xb6,0x00,0x03,0x00,0x07,0x00,0x15,0x00,0x23,0x01,0x42,0x40,0x12,0x21,0x1f,0x1a,0x18,0x13,0x11, -0x0c,0x0a,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x16,0x58,0x40,0x33,0x00,0x01,0x04,0x04,0x01,0x1f,0x00,0x00,0x07,0x03,0x07,0x00,0x21,0x00,0x03,0x06,0x06,0x03,0x1f,0x00,0x02,0x05,0x05,0x02,0x20,0x00,0x07,0x07,0x04,0x01,0x00,0x1b,0x00,0x04,0x04,0x10,0x16,0x00,0x06,0x06, -0x05,0x01,0x02,0x1b,0x00,0x05,0x05,0x0e,0x05,0x17,0x08,0x1b,0x4b,0xb0,0x17,0x58,0x40,0x34,0x00,0x01,0x04,0x04,0x01,0x1f,0x00,0x00,0x07,0x03,0x07,0x00,0x21,0x00,0x03,0x06,0x07,0x03,0x06,0x27,0x00,0x02,0x05,0x05,0x02,0x20,0x00,0x07,0x07,0x04,0x01,0x00,0x1b,0x00,0x04,0x04,0x10,0x16,0x00,0x06,0x06,0x05,0x01,0x02,0x1b,0x00, -0x05,0x05,0x0e,0x05,0x17,0x08,0x1b,0x4b,0xb0,0x19,0x58,0x40,0x35,0x00,0x01,0x04,0x04,0x01,0x1f,0x00,0x00,0x07,0x03,0x07,0x00,0x03,0x29,0x00,0x03,0x06,0x07,0x03,0x06,0x27,0x00,0x02,0x05,0x05,0x02,0x20,0x00,0x07,0x07,0x04,0x01,0x00,0x1b,0x00,0x04,0x04,0x10,0x16,0x00,0x06,0x06,0x05,0x01,0x02,0x1b,0x00,0x05,0x05,0x0e,0x05, -0x17,0x08,0x1b,0x4b,0xb0,0x1b,0x58,0x40,0x34,0x00,0x01,0x04,0x01,0x2b,0x00,0x00,0x07,0x03,0x07,0x00,0x03,0x29,0x00,0x03,0x06,0x07,0x03,0x06,0x27,0x00,0x02,0x05,0x05,0x02,0x20,0x00,0x07,0x07,0x04,0x01,0x00,0x1b,0x00,0x04,0x04,0x10,0x16,0x00,0x06,0x06,0x05,0x01,0x02,0x1b,0x00,0x05,0x05,0x0e,0x05,0x17,0x08,0x1b,0x40,0x33, -0x00,0x01,0x04,0x01,0x2b,0x00,0x00,0x07,0x03,0x07,0x00,0x03,0x29,0x00,0x03,0x06,0x07,0x03,0x06,0x27,0x00,0x02,0x05,0x02,0x2c,0x00,0x07,0x07,0x04,0x01,0x00,0x1b,0x00,0x04,0x04,0x10,0x16,0x00,0x06,0x06,0x05,0x01,0x02,0x1b,0x00,0x05,0x05,0x0e,0x05,0x17,0x08,0x59,0x59,0x59,0x59,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x33,0x11,0x23, -0x11,0x33,0x01,0x34,0x00,0x33,0x32,0x00,0x1d,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x02,0xa9,0xc5,0xc5,0xc5,0xc5,0xfd,0xb8,0x01,0x04,0xdf,0xe1,0x01,0x05,0xfe,0xfc,0xe0,0xe0,0xfe,0xfb,0xc5,0x91,0x8f,0x8d,0x92,0x93,0x8e,0x8d,0x91,0x03,0x44,0x01,0x72,0xfa, -0xd4,0x01,0x71,0x01,0x2c,0xf0,0x01,0x37,0xfe,0xca,0xf1,0x16,0xf2,0xfe,0xcc,0x01,0x35,0xf1,0xac,0xe0,0xe0,0xac,0x16,0xaa,0xe2,0xe2,0xaa,0x00,0x00,0x03,0x00,0x78,0xff,0xeb,0x07,0x29,0x07,0xed,0x00,0x38,0x00,0x4a,0x00,0x50,0x00,0x91,0x40,0x24,0x39,0x39,0x4f,0x4e,0x39,0x4a,0x39,0x49,0x48,0x46,0x43,0x42,0x3f,0x3d,0x3c,0x3a, -0x36,0x34,0x2f,0x2d,0x2a,0x29,0x26,0x24,0x1f,0x1d,0x18,0x16,0x11,0x0f,0x0b,0x09,0x04,0x02,0x10,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x60,0x50,0x4d,0x4c,0x03,0x00,0x09,0x4b,0x1a,0x00,0x03,0x04,0x00,0x38,0x1b,0x02,0x06,0x04,0x2b,0x28,0x02,0x05,0x06,0x0d,0x01,0x01,0x05,0x05,0x15,0x00,0x0e,0x0a,0x09,0x0a,0x0e,0x09,0x29, -0x00,0x06,0x04,0x05,0x04,0x06,0x05,0x29,0x00,0x0c,0x00,0x0a,0x0e,0x0c,0x0a,0x01,0x00,0x1d,0x0f,0x01,0x0d,0x0b,0x01,0x09,0x00,0x0d,0x09,0x01,0x00,0x1d,0x08,0x01,0x04,0x04,0x00,0x01,0x00,0x1b,0x03,0x01,0x00,0x00,0x0d,0x16,0x07,0x01,0x05,0x05,0x01,0x01,0x00,0x1b,0x02,0x01,0x01,0x01,0x0e,0x01,0x17,0x09,0xb0,0x2f,0x2b,0x01, -0x3e,0x01,0x33,0x32,0x00,0x19,0x01,0x10,0x00,0x23,0x22,0x26,0x27,0x0e,0x01,0x23,0x22,0x00,0x19,0x01,0x10,0x00,0x33,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x35,0x33,0x15,0x1e,0x01,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x01,0x15,0x23,0x22,0x24,0x23,0x22,0x06, -0x1d,0x01,0x23,0x35,0x34,0x36,0x33,0x32,0x04,0x33,0x01,0x27,0x37,0x27,0x33,0x15,0x04,0x4f,0x35,0x79,0x43,0xd7,0x01,0x12,0xfe,0xe4,0xda,0x73,0xb1,0x3f,0x40,0xb0,0x72,0xdb,0xfe,0xe5,0x01,0x11,0xd8,0x42,0x79,0x36,0x3a,0x25,0x5d,0x35,0x83,0xa1,0xac,0x85,0x69,0x79,0x1e,0xc5,0x1d,0x79,0x6a,0x83,0xae,0xa2,0x82,0x36,0x5d,0x24, -0x01,0x32,0x2e,0x83,0xfe,0xd5,0x2a,0x33,0x39,0x86,0x7c,0x72,0x48,0x01,0x24,0x72,0xfe,0x47,0x50,0x3a,0x01,0xbc,0x05,0x9a,0x14,0x17,0xfe,0xb1,0xfe,0xf8,0xfe,0xd4,0xfe,0xf7,0xfe,0xb2,0x3a,0x30,0x30,0x3a,0x01,0x4e,0x01,0x09,0x01,0x2c,0x01,0x08,0x01,0x4f,0x17,0x14,0x9c,0x15,0x17,0xfa,0xc0,0xfe,0xd2,0xc1,0xfc,0x42,0x2d,0x21, -0x21,0x2d,0x42,0xfc,0xc1,0x01,0x2e,0xc0,0xfa,0x17,0x15,0x02,0x74,0x82,0x7c,0x36,0x35,0x12,0x25,0x6c,0x6d,0x7b,0xfe,0x49,0x42,0x74,0x8c,0x7b,0x00,0x03,0x00,0x78,0xff,0xeb,0x06,0x10,0x06,0x90,0x00,0x38,0x00,0x4a,0x00,0x50,0x00,0x90,0x40,0x24,0x39,0x39,0x4f,0x4e,0x39,0x4a,0x39,0x49,0x48,0x46,0x43,0x42,0x3f,0x3d,0x3c,0x3a, -0x36,0x34,0x2f,0x2d,0x2a,0x29,0x26,0x24,0x1f,0x1d,0x18,0x16,0x11,0x0f,0x0b,0x09,0x04,0x02,0x10,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x5f,0x50,0x4d,0x4c,0x4b,0x04,0x00,0x09,0x1a,0x00,0x02,0x04,0x00,0x38,0x1b,0x02,0x06,0x04,0x2b,0x28,0x02,0x05,0x06,0x0d,0x01,0x01,0x05,0x05,0x15,0x00,0x06,0x04,0x05,0x04,0x06,0x05,0x29, -0x00,0x0c,0x00,0x0a,0x0e,0x0c,0x0a,0x01,0x00,0x1d,0x00,0x0e,0x0e,0x07,0x16,0x0b,0x01,0x09,0x09,0x0d,0x01,0x00,0x1b,0x0f,0x01,0x0d,0x0d,0x09,0x16,0x08,0x01,0x04,0x04,0x00,0x01,0x00,0x1b,0x03,0x01,0x00,0x00,0x10,0x16,0x07,0x01,0x05,0x05,0x01,0x01,0x00,0x1b,0x02,0x01,0x01,0x01,0x0e,0x01,0x17,0x0a,0xb0,0x2f,0x2b,0x01,0x3e, -0x01,0x33,0x32,0x12,0x1d,0x01,0x14,0x02,0x23,0x22,0x26,0x27,0x0e,0x01,0x23,0x22,0x02,0x3d,0x01,0x34,0x12,0x33,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x35,0x33,0x15,0x1e,0x01,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x23,0x22,0x06,0x07,0x01,0x15,0x23,0x22,0x24,0x23,0x22,0x06,0x1d, -0x01,0x23,0x35,0x34,0x36,0x33,0x32,0x04,0x33,0x01,0x27,0x37,0x27,0x33,0x15,0x03,0xae,0x2b,0x66,0x39,0xb2,0xe6,0xef,0xb7,0x5e,0x93,0x35,0x36,0x93,0x5d,0xb8,0xee,0xe5,0xb4,0x38,0x65,0x2c,0x3a,0x1e,0x48,0x29,0x60,0x74,0x7f,0x62,0x51,0x59,0x1a,0xc5,0x17,0x5b,0x51,0x61,0x80,0x75,0x5e,0x2a,0x48,0x1e,0x01,0x47,0x2e,0x83,0xfe, -0xd5,0x2a,0x32,0x3a,0x86,0x7c,0x72,0x48,0x01,0x24,0x72,0xfe,0x47,0x50,0x3a,0x01,0xbc,0x04,0x1f,0x14,0x16,0xfe,0xd3,0xec,0x3f,0xe5,0xfe,0xdf,0x3d,0x33,0x33,0x3d,0x01,0x21,0xe5,0x3f,0xec,0x01,0x2d,0x16,0x14,0x9c,0x14,0x17,0xd5,0xa7,0x41,0x9d,0xcf,0x40,0x2f,0x21,0x21,0x2e,0x41,0xcf,0x9d,0x41,0xa7,0xd5,0x17,0x14,0x02,0x91, -0x81,0x7b,0x36,0x34,0x12,0x24,0x6c,0x6e,0x7c,0xfe,0x4a,0x42,0x73,0x8c,0x7b,0x00,0x00,0x02,0x00,0x78,0xff,0xeb,0x07,0x28,0x07,0x05,0x00,0x0b,0x00,0x48,0x00,0x86,0x40,0x28,0x00,0x00,0x46,0x44,0x3f,0x3d,0x39,0x37,0x32,0x30,0x2b,0x29,0x24,0x22,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x17,0x15,0x10,0x0e,0x00,0x0b,0x00,0x0b,0x0a,0x09, -0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x12,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x51,0x48,0x2e,0x02,0x06,0x0d,0x2d,0x0c,0x02,0x09,0x06,0x20,0x19,0x02,0x07,0x08,0x3b,0x01,0x0e,0x07,0x04,0x15,0x00,0x01,0x03,0x01,0x2b,0x11,0x05,0x02,0x03,0x00,0x03,0x2b,0x00,0x09,0x0a,0x01,0x08,0x07,0x09,0x08,0x00,0x02,0x1d,0x04,0x02, -0x02,0x00,0x00,0x09,0x16,0x0c,0x01,0x06,0x06,0x0d,0x01,0x00,0x1b,0x10,0x01,0x0d,0x0d,0x0d,0x16,0x0b,0x01,0x07,0x07,0x0e,0x01,0x00,0x1b,0x0f,0x01,0x0e,0x0e,0x0e,0x0e,0x17,0x09,0xb0,0x2f,0x2b,0x01,0x15,0x27,0x37,0x21,0x15,0x23,0x35,0x23,0x15,0x23,0x35,0x01,0x3e,0x01,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x27, -0x11,0x33,0x35,0x21,0x15,0x33,0x11,0x0e,0x01,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x17,0x37,0x2e,0x01,0x23,0x22,0x00,0x19,0x01,0x10,0x00,0x33,0x32,0x36,0x37,0x1e,0x01,0x33,0x32,0x00,0x19,0x01,0x10,0x00,0x23,0x22,0x06,0x07,0x02,0xcf,0xaf,0x01,0x03,0x35,0xb0,0x9a,0xb2,0x01,0x2d,0x25,0x5c,0x37,0x82,0xa2,0xae, -0x83,0x69,0x7a,0x1c,0xc6,0xfd,0xae,0xc6,0x1f,0x79,0x67,0x85,0xac,0xa1,0x83,0x36,0x5d,0x25,0x3a,0x36,0x7a,0x42,0xd8,0xfe,0xef,0x01,0x1b,0xdb,0x72,0xb1,0x3f,0x3e,0xb1,0x73,0xda,0x01,0x1c,0xfe,0xee,0xd7,0x43,0x7a,0x35,0x06,0x98,0x7e,0x01,0xea,0xeb,0x7e,0x7e,0x7e,0xfe,0x66,0x15,0x17,0xfa,0xc0,0xfe,0xd2,0xc1,0xfc,0x41,0x2c, -0x01,0x4c,0x9a,0x9a,0xfe,0xb4,0x2d,0x40,0xfc,0xc1,0x01,0x2e,0xc0,0xfa,0x17,0x15,0x9c,0x14,0x17,0xfe,0xb1,0xfe,0xf8,0xfe,0xd4,0xfe,0xf7,0xfe,0xb2,0x3a,0x30,0x30,0x3a,0x01,0x4e,0x01,0x09,0x01,0x2c,0x01,0x08,0x01,0x4f,0x17,0x14,0x00,0x00,0x00,0x00,0x02,0x00,0x2e,0x00,0x00,0x05,0x4c,0x05,0xb5,0x00,0x0b,0x00,0x24,0x00,0xb4, -0x40,0x20,0x00,0x00,0x23,0x22,0x1f,0x1e,0x17,0x16,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x0e,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x14,0x58,0x40,0x40,0x20,0x01,0x08,0x06,0x01,0x15,0x00,0x01,0x03,0x01,0x2b,0x0d,0x05,0x02,0x03,0x00,0x00,0x03, -0x1f,0x00,0x08,0x06,0x0c,0x06,0x08,0x0c,0x29,0x00,0x0c,0x07,0x06,0x0c,0x07,0x27,0x04,0x02,0x02,0x00,0x00,0x07,0x00,0x02,0x1b,0x09,0x01,0x07,0x07,0x08,0x16,0x0b,0x0a,0x02,0x06,0x06,0x0a,0x16,0x09,0x01,0x07,0x07,0x08,0x07,0x17,0x09,0x1b,0x40,0x3f,0x20,0x01,0x08,0x06,0x01,0x15,0x00,0x01,0x03,0x01,0x2b,0x0d,0x05,0x02,0x03, -0x00,0x03,0x2b,0x00,0x08,0x06,0x0c,0x06,0x08,0x0c,0x29,0x00,0x0c,0x07,0x06,0x0c,0x07,0x27,0x04,0x02,0x02,0x00,0x00,0x07,0x00,0x02,0x1b,0x09,0x01,0x07,0x07,0x08,0x16,0x0b,0x0a,0x02,0x06,0x06,0x0a,0x16,0x09,0x01,0x07,0x07,0x08,0x07,0x17,0x09,0x59,0xb0,0x2f,0x2b,0x01,0x15,0x27,0x37,0x21,0x15,0x23,0x35,0x23,0x15,0x23,0x35, -0x01,0x23,0x01,0x33,0x13,0x33,0x13,0x33,0x36,0x12,0x03,0x23,0x16,0x02,0x0f,0x01,0x2f,0x01,0x03,0x23,0x13,0x03,0x07,0x23,0x27,0x01,0xe4,0xb0,0x01,0x03,0x36,0xb1,0x99,0xb3,0xfe,0x8a,0xca,0x01,0x93,0x95,0x9e,0x06,0x8f,0x95,0x94,0x9a,0x03,0xc9,0x0b,0x46,0x5a,0x0b,0x06,0x1a,0xc4,0xc9,0x74,0x85,0x13,0x06,0x11,0x05,0x48,0x7f, -0x01,0xeb,0xec,0x7f,0x7f,0x7f,0xfe,0xf2,0xfb,0xc6,0x01,0xc3,0xfe,0x3d,0xea,0x02,0x1a,0x01,0x36,0xef,0xfe,0x30,0x8c,0x22,0x01,0x71,0x02,0xfb,0xfe,0x8e,0xfe,0x77,0x4c,0x4c,0x00,0x00,0x00,0x01,0x00,0x76,0xfe,0x81,0x04,0xbf,0x05,0xc5,0x00,0x19,0x00,0x76,0x40,0x0c,0x19,0x17,0x12,0x10,0x0e,0x0d,0x0a,0x08,0x01,0x00,0x05,0x07, -0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x1f,0x58,0x40,0x2c,0x0c,0x01,0x02,0x03,0x02,0x01,0x00,0x04,0x02,0x15,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x29,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0d,0x16,0x00,0x04,0x04,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x0c,0x00,0x17,0x06,0x1b,0x40,0x29,0x0c,0x01,0x02,0x03,0x02, -0x01,0x00,0x04,0x02,0x15,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x29,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x00,0x1c,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0d,0x03,0x17,0x05,0x59,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x26,0x00,0x35,0x11,0x10,0x00,0x33,0x32,0x00,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x02,0x15,0x11,0x14,0x12, -0x3b,0x01,0x03,0x17,0xc4,0xd7,0xfe,0xfa,0x01,0x37,0xf7,0xf7,0x01,0x24,0x04,0x02,0xbd,0xb4,0xa4,0xa5,0xc4,0xc4,0xa5,0x73,0xfe,0x81,0x01,0x70,0x1d,0x01,0x52,0xf6,0x01,0x03,0x01,0x0d,0x01,0x5f,0xfe,0xf9,0xd9,0x06,0x99,0xb2,0xfe,0xf6,0xc5,0xfe,0xfb,0xc7,0xfe,0xf6,0x00,0x01,0x00,0x62,0xfe,0x81,0x03,0xe1,0x04,0x4e,0x00,0x19, -0x00,0x76,0x40,0x0c,0x19,0x17,0x12,0x10,0x0e,0x0d,0x0a,0x08,0x01,0x00,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x1f,0x58,0x40,0x2c,0x0c,0x01,0x02,0x03,0x02,0x01,0x00,0x04,0x02,0x15,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x29,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x10,0x16,0x00,0x04,0x04,0x00,0x00,0x00, -0x1b,0x00,0x00,0x00,0x0c,0x00,0x17,0x06,0x1b,0x40,0x29,0x0c,0x01,0x02,0x03,0x02,0x01,0x00,0x04,0x02,0x15,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x29,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x00,0x1c,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x10,0x03,0x17,0x05,0x59,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x26,0x02,0x3d,0x01,0x34, -0x12,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x3b,0x01,0x02,0xa7,0xc5,0xb5,0xcb,0xff,0xdc,0xb6,0xee,0x04,0x02,0xb2,0x89,0x63,0x8a,0x8c,0x8b,0x8b,0x6a,0xfe,0x81,0x01,0x72,0x20,0x01,0x2a,0xcb,0x2a,0xe3,0x01,0x39,0xe0,0xa3,0x06,0x62,0x8c,0xe6,0x9b,0x2a,0x9f,0xe4,0x00,0x00,0x01,0x00,0x70, -0x00,0x00,0x04,0x94,0x05,0x3e,0x00,0x13,0x00,0x34,0x40,0x06,0x0f,0x0e,0x05,0x04,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x21,0x13,0x12,0x11,0x10,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x03,0x02,0x01,0x00,0x10,0x00,0x01,0x01,0x15,0x00,0x01,0x00,0x01,0x2b,0x00,0x00,0x00,0x08,0x00,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x05, -0x07,0x25,0x03,0x23,0x13,0x25,0x37,0x05,0x13,0x25,0x37,0x05,0x13,0x33,0x03,0x05,0x07,0x25,0x02,0x5c,0x01,0x21,0x47,0xfe,0xdd,0xb5,0xae,0xe1,0xfe,0xdf,0x47,0x01,0x25,0xca,0xfe,0xde,0x49,0x01,0x23,0xb9,0xab,0xe5,0x01,0x25,0x4b,0xfe,0xe0,0x01,0xbf,0xac,0x7d,0xaa,0xfe,0xc0,0x01,0x8e,0xab,0x7c,0xab,0x01,0x6c,0xab,0x7e,0xab, -0x01,0x4a,0xfe,0x69,0xab,0x7c,0xaa,0x00,0x00,0x01,0x00,0xd4,0x04,0xa4,0x03,0xa3,0x05,0xfc,0x00,0x07,0x00,0x9f,0x40,0x0e,0x00,0x00,0x00,0x07,0x00,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x14,0x58,0x40,0x1a,0x00,0x00,0x03,0x03,0x00,0x20,0x00,0x02,0x02,0x09,0x16,0x04,0x01,0x03, -0x03,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x07,0x03,0x17,0x04,0x1b,0x4b,0xb0,0x1f,0x58,0x40,0x19,0x00,0x00,0x03,0x00,0x2c,0x00,0x02,0x02,0x09,0x16,0x04,0x01,0x03,0x03,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x07,0x03,0x17,0x04,0x1b,0x4b,0xb0,0x23,0x58,0x40,0x17,0x00,0x00,0x03,0x00,0x2c,0x00,0x01,0x04,0x01,0x03,0x00,0x01,0x03, -0x00,0x02,0x1d,0x00,0x02,0x02,0x09,0x02,0x17,0x03,0x1b,0x40,0x22,0x00,0x02,0x01,0x02,0x2b,0x00,0x00,0x03,0x00,0x2c,0x00,0x01,0x03,0x03,0x01,0x00,0x00,0x1a,0x00,0x01,0x01,0x03,0x00,0x02,0x1b,0x04,0x01,0x03,0x01,0x03,0x00,0x02,0x18,0x05,0x59,0x59,0x59,0xb0,0x2f,0x2b,0x01,0x15,0x27,0x37,0x21,0x27,0x17,0x15,0x01,0x83,0xaf, -0x01,0x02,0x20,0x01,0xaf,0x05,0x22,0x7e,0x01,0xeb,0x6c,0x01,0xd9,0x00,0x00,0x00,0x00,0x01,0x00,0xfb,0x05,0x17,0x03,0xf3,0x06,0x15,0x00,0x11,0x00,0x5a,0x40,0x10,0x01,0x00,0x10,0x0e,0x0d,0x0b,0x08,0x07,0x04,0x02,0x00,0x11,0x01,0x11,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x2c,0x58,0x40,0x1c,0x00,0x03,0x03,0x01, -0x01,0x00,0x1b,0x00,0x01,0x01,0x09,0x16,0x04,0x01,0x02,0x02,0x00,0x01,0x00,0x1b,0x05,0x01,0x00,0x00,0x07,0x02,0x17,0x04,0x1b,0x40,0x19,0x05,0x01,0x00,0x04,0x01,0x02,0x00,0x02,0x01,0x00,0x1c,0x00,0x03,0x03,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x09,0x03,0x17,0x03,0x59,0xb0,0x2f,0x2b,0x01,0x32,0x24,0x33,0x32,0x16,0x1d,0x01, -0x23,0x35,0x34,0x26,0x23,0x22,0x04,0x2b,0x01,0x35,0x01,0x27,0x71,0x01,0x24,0x49,0x71,0x7d,0x86,0x3b,0x31,0x2b,0xfe,0xd5,0x82,0x2e,0x05,0x99,0x7c,0x6e,0x6c,0x24,0x12,0x34,0x36,0x7c,0x82,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x05,0x15,0x01,0xf5,0x06,0x57,0x00,0x05,0x00,0x1d,0x40,0x04,0x02,0x01,0x01,0x07,0x2b,0x4b,0xb0,0x90, -0x50,0x58,0x40,0x0c,0x05,0x04,0x03,0x00,0x04,0x00,0x12,0x00,0x00,0x00,0x22,0x02,0xb0,0x2f,0x2b,0x01,0x35,0x33,0x07,0x17,0x07,0x01,0x00,0xbb,0x01,0x3b,0x51,0x05,0xdc,0x7b,0x8c,0x74,0x42,0x00,0x00,0x00,0x00,0x01,0x01,0x2c,0x05,0x15,0x02,0x21,0x06,0x57,0x00,0x05,0x00,0x1d,0x40,0x04,0x04,0x03,0x01,0x07,0x2b,0x4b,0xb0,0x90, -0x50,0x58,0x40,0x0c,0x05,0x02,0x01,0x00,0x04,0x00,0x12,0x00,0x00,0x00,0x22,0x02,0xb0,0x2f,0x2b,0x01,0x27,0x37,0x27,0x33,0x15,0x01,0x7c,0x50,0x3a,0x01,0xbc,0x05,0x15,0x42,0x74,0x8c,0x7b,0x00,0x00,0x00,0x00,0x08,0x00,0x3b,0xfe,0xc4,0x07,0xd4,0x05,0xaf,0x00,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x3f,0x00,0x4f,0x00,0x5f,0x00,0x6f, -0x00,0x7f,0x01,0x9e,0x40,0x62,0x70,0x70,0x60,0x60,0x50,0x50,0x40,0x40,0x30,0x30,0x20,0x20,0x10,0x10,0x00,0x00,0x70,0x7f,0x70,0x7f,0x7d,0x7b,0x79,0x78,0x75,0x73,0x60,0x6f,0x60,0x6f,0x6d,0x6b,0x69,0x68,0x65,0x63,0x50,0x5f,0x50,0x5f,0x5d,0x5b,0x59,0x58,0x55,0x53,0x40,0x4f,0x40,0x4f,0x4d,0x4b,0x49,0x48,0x45,0x43,0x30,0x3f, -0x30,0x3f,0x3d,0x3b,0x39,0x38,0x35,0x33,0x20,0x2f,0x20,0x2f,0x2d,0x2b,0x29,0x28,0x25,0x23,0x10,0x1f,0x10,0x1f,0x1d,0x1b,0x19,0x18,0x15,0x13,0x00,0x0f,0x00,0x0f,0x0d,0x0b,0x09,0x08,0x05,0x03,0x28,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x1f,0x58,0x40,0x92,0x07,0x01,0x02,0x01,0x02,0x57,0x51,0x17,0x11,0x04,0x05,0x06, -0x67,0x61,0x27,0x21,0x04,0x09,0x0a,0x77,0x71,0x37,0x31,0x04,0x0d,0x0e,0x47,0x41,0x02,0x11,0x12,0x05,0x15,0x20,0x03,0x02,0x01,0x02,0x04,0x02,0x01,0x04,0x29,0x25,0x17,0x15,0x21,0x07,0x05,0x05,0x06,0x08,0x06,0x05,0x08,0x29,0x26,0x1b,0x19,0x22,0x0b,0x05,0x09,0x0a,0x0c,0x0a,0x09,0x0c,0x29,0x24,0x13,0x02,0x11,0x12,0x11,0x2c, -0x14,0x01,0x04,0x16,0x01,0x06,0x05,0x04,0x06,0x01,0x00,0x1d,0x18,0x01,0x08,0x1a,0x01,0x0a,0x09,0x08,0x0a,0x01,0x00,0x1d,0x1c,0x01,0x0c,0x1e,0x01,0x0e,0x0d,0x0c,0x0e,0x01,0x00,0x1d,0x00,0x10,0x00,0x12,0x11,0x10,0x12,0x01,0x00,0x1d,0x00,0x02,0x02,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x07,0x16,0x27,0x1f,0x1d,0x23,0x0f,0x05, -0x0d,0x0d,0x08,0x0d,0x17,0x0c,0x1b,0x40,0x95,0x07,0x01,0x02,0x01,0x02,0x57,0x51,0x17,0x11,0x04,0x05,0x06,0x67,0x61,0x27,0x21,0x04,0x09,0x0a,0x77,0x71,0x37,0x31,0x04,0x0d,0x0e,0x47,0x41,0x02,0x11,0x12,0x05,0x15,0x20,0x03,0x02,0x01,0x02,0x04,0x02,0x01,0x04,0x29,0x25,0x17,0x15,0x21,0x07,0x05,0x05,0x06,0x08,0x06,0x05,0x08, -0x29,0x26,0x1b,0x19,0x22,0x0b,0x05,0x09,0x0a,0x0c,0x0a,0x09,0x0c,0x29,0x27,0x1f,0x1d,0x23,0x0f,0x05,0x0d,0x0e,0x10,0x0e,0x0d,0x10,0x29,0x24,0x13,0x02,0x11,0x12,0x11,0x2c,0x14,0x01,0x04,0x16,0x01,0x06,0x05,0x04,0x06,0x01,0x00,0x1d,0x18,0x01,0x08,0x1a,0x01,0x0a,0x09,0x08,0x0a,0x01,0x00,0x1d,0x1c,0x01,0x0c,0x1e,0x01,0x0e, -0x0d,0x0c,0x0e,0x01,0x00,0x1d,0x00,0x10,0x00,0x12,0x11,0x10,0x12,0x01,0x00,0x1d,0x00,0x02,0x02,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x07,0x02,0x17,0x0c,0x59,0xb0,0x2f,0x2b,0x01,0x27,0x26,0x36,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x27,0x26,0x36,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22, -0x06,0x15,0x13,0x27,0x26,0x36,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x27,0x26,0x36,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x27,0x26,0x36,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x27,0x26,0x36,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22, -0x06,0x15,0x01,0x27,0x26,0x36,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x13,0x27,0x26,0x36,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x03,0x2f,0x02,0x05,0x70,0x61,0x60,0x71,0x04,0x02,0x68,0x31,0x32,0x32,0x2f,0x01,0xe6,0x02,0x05,0x71,0x60,0x60,0x72,0x04,0x02,0x69,0x30,0x33,0x32,0x2e, -0x51,0x02,0x05,0x71,0x60,0x60,0x71,0x04,0x02,0x68,0x30,0x33,0x32,0x2f,0xfe,0xd2,0x02,0x05,0x71,0x60,0x60,0x71,0x04,0x02,0x68,0x30,0x33,0x32,0x2f,0xfd,0x57,0x02,0x05,0x70,0x61,0x60,0x71,0x04,0x02,0x68,0x31,0x32,0x32,0x2f,0xfd,0x55,0x02,0x05,0x71,0x61,0x60,0x71,0x04,0x02,0x68,0x31,0x32,0x32,0x2f,0xfe,0xe6,0x02,0x05,0x71, -0x60,0x60,0x71,0x04,0x02,0x68,0x30,0x33,0x32,0x2f,0x3d,0x02,0x05,0x71,0x60,0x60,0x72,0x04,0x02,0x69,0x30,0x33,0x32,0x2e,0x04,0xf3,0x06,0x4f,0x67,0x67,0x4f,0x06,0x2b,0x3a,0x3a,0x2b,0xfe,0xeb,0x06,0x4e,0x68,0x67,0x4f,0x06,0x2c,0x39,0x3a,0x2b,0xfe,0x09,0x06,0x4e,0x68,0x67,0x4f,0x06,0x2c,0x39,0x3a,0x2b,0xfd,0xf9,0x06,0x4e, -0x68,0x67,0x4f,0x06,0x2c,0x39,0x3a,0x2b,0xfe,0xe4,0x06,0x50,0x66,0x66,0x50,0x06,0x2c,0x39,0x39,0x2c,0x05,0x1a,0x06,0x4f,0x67,0x67,0x4f,0x06,0x2b,0x3a,0x3a,0x2b,0xfe,0x09,0x06,0x4e,0x68,0x67,0x4f,0x06,0x2c,0x39,0x3a,0x2b,0xfd,0xf9,0x06,0x4e,0x68,0x67,0x4f,0x06,0x2c,0x39,0x3a,0x2b,0x00,0x08,0x00,0x4d,0xfe,0x63,0x07,0x8d, -0x05,0xc6,0x00,0x04,0x00,0x09,0x00,0x0e,0x00,0x13,0x00,0x19,0x00,0x1e,0x00,0x23,0x00,0x28,0x00,0x9b,0x40,0x12,0x05,0x05,0x00,0x00,0x05,0x09,0x05,0x09,0x08,0x07,0x00,0x04,0x00,0x04,0x03,0x02,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x2e,0x58,0x40,0x3b,0x22,0x21,0x16,0x03,0x03,0x02,0x28,0x23,0x1e,0x19,0x17,0x13, -0x12,0x11,0x0f,0x0e,0x0d,0x0c,0x0a,0x0d,0x01,0x03,0x27,0x26,0x1d,0x1c,0x04,0x00,0x01,0x03,0x15,0x05,0x01,0x03,0x03,0x02,0x00,0x00,0x1b,0x00,0x02,0x02,0x07,0x16,0x04,0x01,0x01,0x01,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x0c,0x00,0x17,0x05,0x1b,0x40,0x39,0x22,0x21,0x16,0x03,0x03,0x02,0x28,0x23,0x1e,0x19,0x17,0x13,0x12,0x11, -0x0f,0x0e,0x0d,0x0c,0x0a,0x0d,0x01,0x03,0x27,0x26,0x1d,0x1c,0x04,0x00,0x01,0x03,0x15,0x00,0x02,0x05,0x01,0x03,0x01,0x02,0x03,0x00,0x00,0x1d,0x04,0x01,0x01,0x01,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x0c,0x00,0x17,0x04,0x59,0xb0,0x2f,0x2b,0x05,0x17,0x03,0x23,0x13,0x03,0x27,0x13,0x33,0x03,0x01,0x37,0x05,0x15,0x25,0x05,0x07, -0x25,0x35,0x05,0x01,0x37,0x25,0x17,0x06,0x05,0x01,0x07,0x05,0x27,0x25,0x03,0x27,0x03,0x37,0x13,0x01,0x17,0x13,0x07,0x03,0x04,0x50,0x0b,0x7a,0x60,0x46,0x3a,0x0c,0x7a,0x60,0x46,0x02,0x1e,0x0d,0x01,0x4d,0xfe,0xa6,0xfb,0x74,0x0d,0xfe,0xb3,0x01,0x5a,0x03,0x9c,0x02,0x01,0x41,0x44,0x25,0xfe,0xff,0xfc,0xf3,0x02,0xfe,0xc0,0x45, -0x01,0x26,0x2b,0x11,0x94,0x41,0xc6,0x03,0x60,0x11,0x95,0x42,0xc5,0x3c,0x0e,0xfe,0xad,0x01,0x61,0x04,0xa2,0x0e,0x01,0x52,0xfe,0xa0,0xfe,0x11,0x0c,0x7c,0x62,0x47,0x3b,0x0c,0x7c,0x62,0x47,0x01,0xae,0x10,0x99,0x44,0x17,0xb1,0xfc,0x8e,0x11,0x99,0x45,0xc8,0x02,0xe4,0x02,0x01,0x46,0x45,0xfe,0xd5,0xfc,0xe3,0x02,0xfe,0xbb,0x47, -0x01,0x2b,0x00,0x00,0xff,0xff,0x00,0xad,0xfe,0xd7,0x05,0x9e,0x07,0x4e,0x02,0x26,0x01,0xc4,0x00,0x00,0x00,0x27,0x01,0x54,0x01,0x2a,0x01,0x9e,0x01,0x07,0x00,0x0f,0x04,0x63,0xff,0xd9,0x00,0x12,0xb1,0x01,0x01,0xb8,0x01,0x9e,0xb0,0x0d,0x2b,0xb1,0x02,0x01,0xb8,0xff,0xd9,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x8f,0xfe,0xd7,0x04,0xa0, -0x05,0xf7,0x02,0x26,0x01,0xe4,0x00,0x00,0x00,0x27,0x01,0x54,0x00,0x99,0x00,0x47,0x01,0x07,0x00,0x0f,0x03,0x65,0xff,0xd9,0x00,0x11,0xb1,0x01,0x01,0xb0,0x47,0xb0,0x0d,0x2b,0xb1,0x02,0x01,0xb8,0xff,0xd9,0xb0,0x0d,0x2b,0x00,0x00,0x02,0xff,0xcd,0x00,0x00,0x04,0xbb,0x05,0xb0,0x00,0x12,0x00,0x1b,0x00,0x4f,0x40,0x18,0x13,0x13, -0x13,0x1b,0x13,0x1a,0x16,0x14,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x08,0x04,0x02,0x01,0x00,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2a,0x06,0x01,0x04,0x03,0x01,0x00,0x01,0x04,0x00,0x00,0x00,0x1d,0x00,0x01,0x09,0x01,0x08,0x07,0x01,0x08,0x01,0x00,0x1d,0x00,0x05,0x05,0x07,0x16,0x00,0x07,0x07,0x02,0x01,0x02, -0x1b,0x00,0x02,0x02,0x08,0x02,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x23,0x15,0x21,0x32,0x04,0x15,0x14,0x04,0x23,0x21,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x03,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x02,0x4e,0xe6,0x01,0x67,0xe9,0x01,0x03,0xfe,0xfc,0xe8,0xfd,0xd4,0xd6,0xd6,0xc5,0xe6,0xe6,0x01,0x67,0x93,0x94,0x93,0x94,0x04, -0x4d,0xdd,0xef,0xc5,0xc6,0xf6,0x04,0x4d,0x9b,0xc8,0xc8,0xfd,0xed,0xfd,0xc5,0xa9,0x7b,0x77,0xa0,0x00,0x00,0x02,0xff,0xba,0x00,0x00,0x04,0x00,0x04,0x3a,0x00,0x12,0x00,0x1b,0x00,0x4f,0x40,0x18,0x13,0x13,0x13,0x1b,0x13,0x1a,0x16,0x14,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x08,0x04,0x02,0x01,0x00,0x0a,0x07,0x2b,0x4b, -0xb0,0x90,0x50,0x58,0x40,0x2a,0x06,0x01,0x04,0x03,0x01,0x00,0x01,0x04,0x00,0x00,0x00,0x1d,0x00,0x01,0x09,0x01,0x08,0x07,0x01,0x08,0x01,0x00,0x1d,0x00,0x05,0x05,0x0a,0x16,0x00,0x07,0x07,0x02,0x01,0x02,0x1b,0x00,0x02,0x02,0x08,0x02,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x23,0x15,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x23, -0x35,0x33,0x35,0x33,0x15,0x33,0x03,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x02,0x3b,0xdd,0x01,0x0d,0xc0,0xd5,0xd7,0xbe,0xfe,0x2e,0xdf,0xdf,0xc5,0xdd,0xdd,0x01,0x0d,0x6a,0x65,0x66,0x69,0x03,0x1f,0x81,0xb8,0x93,0x94,0xbf,0x03,0x1f,0x9b,0x80,0x80,0xfe,0x4a,0xfe,0x96,0x66,0x4c,0x4a,0x6e,0x00,0x00,0x00,0x00,0x03,0x00,0xa3, -0x00,0x00,0x04,0xbc,0x05,0xb0,0x00,0x03,0x00,0x0e,0x00,0x17,0x00,0x47,0x40,0x10,0x04,0x04,0x17,0x15,0x11,0x0f,0x04,0x0e,0x04,0x0d,0x09,0x07,0x06,0x05,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2a,0x03,0x02,0x02,0x03,0x04,0x01,0x00,0x02,0x00,0x02,0x02,0x15,0x00,0x03,0x05,0x01,0x02,0x00,0x03,0x02,0x01,0x00,0x1d,0x00, -0x04,0x04,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x07,0x16,0x00,0x00,0x00,0x08,0x00,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x07,0x03,0x37,0x01,0x11,0x23,0x11,0x21,0x32,0x04,0x15,0x14,0x04,0x23,0x25,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x04,0x2a,0x8c,0xfe,0x8c,0xfe,0x3c,0xc5,0x02,0x2d,0xe9,0x01,0x03,0xfe,0xfd,0xe9,0xfe,0x98,0x01, -0x68,0x94,0x92,0x93,0x93,0xfe,0x98,0x01,0xce,0x46,0x01,0xe8,0x47,0xfe,0x91,0xfd,0xb8,0x05,0xb0,0xf0,0xc4,0xc6,0xee,0x9a,0x9f,0x79,0x79,0xa2,0x00,0x03,0x00,0x8f,0xfe,0x60,0x04,0x29,0x04,0x4e,0x00,0x03,0x00,0x15,0x00,0x23,0x00,0x95,0x40,0x0e,0x21,0x1f,0x1a,0x18,0x13,0x11,0x0e,0x0d,0x0c,0x0b,0x08,0x06,0x06,0x07,0x2b,0x4b, -0xb0,0x90,0x50,0x58,0x4b,0xb0,0x19,0x58,0x40,0x37,0x1d,0x1c,0x03,0x02,0x04,0x05,0x04,0x0a,0x01,0x00,0x05,0x01,0x00,0x02,0x01,0x00,0x03,0x15,0x0f,0x01,0x04,0x01,0x14,0x00,0x04,0x04,0x02,0x01,0x00,0x1b,0x03,0x01,0x02,0x02,0x0a,0x16,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x16,0x00,0x01,0x01,0x0c,0x01,0x17, -0x07,0x1b,0x40,0x3b,0x1d,0x1c,0x03,0x02,0x04,0x05,0x04,0x0a,0x01,0x00,0x05,0x01,0x00,0x02,0x01,0x00,0x03,0x15,0x0f,0x01,0x04,0x01,0x14,0x00,0x02,0x02,0x0a,0x16,0x00,0x04,0x04,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x10,0x16,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x0e,0x16,0x00,0x01,0x01,0x0c,0x01,0x17,0x08,0x59, -0xb0,0x2f,0x2b,0x05,0x07,0x03,0x37,0x25,0x14,0x02,0x23,0x22,0x26,0x27,0x11,0x23,0x11,0x33,0x17,0x3e,0x01,0x33,0x32,0x12,0x11,0x23,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x1e,0x01,0x33,0x32,0x36,0x35,0x03,0x7d,0x93,0xaf,0x94,0x01,0x5a,0xe0,0xc5,0x64,0x97,0x35,0xc5,0x97,0x1f,0x35,0x9e,0x69,0xc9,0xdf,0xc5,0x91,0x8d,0x55,0x78, -0x25,0x25,0x78,0x57,0x8c,0x90,0x88,0x37,0x01,0xd9,0x37,0xa3,0xea,0xfe,0xe1,0x43,0x43,0xfd,0xef,0x05,0xda,0x8c,0x4e,0x52,0xfe,0xc1,0xfe,0xfa,0xb8,0xed,0x4d,0x43,0xfd,0xf5,0x43,0x4b,0xcd,0xa2,0x00,0x00,0x00,0x01,0x00,0xa3,0x00,0x00,0x04,0x24,0x06,0xfe,0x00,0x09,0x00,0x35,0x40,0x0c,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02, -0x01,0x00,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1c,0x00,0x04,0x03,0x00,0x04,0x00,0x00,0x1a,0x01,0x01,0x00,0x00,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x07,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x23,0x35,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x04,0x24,0xc5,0xfe,0x09,0xc5,0x02,0xbc,0xc5,0x05,0x14, -0x01,0xfa,0xeb,0x05,0xb0,0x01,0x4e,0x00,0x00,0x01,0x00,0x8f,0x00,0x00,0x03,0x44,0x05,0x75,0x00,0x07,0x00,0x50,0x40,0x0a,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x09,0x58,0x40,0x19,0x00,0x03,0x02,0x02,0x03,0x1f,0x00,0x00,0x00,0x02,0x00,0x00,0x1b,0x00,0x02,0x02,0x0a,0x16, -0x00,0x01,0x01,0x08,0x01,0x17,0x04,0x1b,0x40,0x18,0x00,0x03,0x02,0x03,0x2b,0x00,0x00,0x00,0x02,0x00,0x00,0x1b,0x00,0x02,0x02,0x0a,0x16,0x00,0x01,0x01,0x08,0x01,0x17,0x04,0x59,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x03,0x44,0xfe,0x10,0xc5,0x01,0xf0,0xc5,0x03,0x9e,0xfc,0x62,0x04,0x3a,0x01,0x3b,0x00,0x00, -0x00,0x01,0xff,0xeb,0x00,0x00,0x04,0x20,0x05,0xb0,0x00,0x0d,0x00,0x3c,0x40,0x10,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1f,0x06,0x01,0x03,0x02,0x01,0x00,0x01,0x03,0x00,0x00,0x00,0x1d,0x00,0x05,0x05,0x04,0x00,0x00,0x1b,0x00,0x04,0x04,0x07,0x16, -0x00,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x02,0x6c,0xfe,0xfc,0xc5,0xb8,0xb8,0x03,0x7d,0xfd,0x48,0x01,0x04,0x02,0xa9,0xfd,0x57,0x02,0xa9,0x9b,0x02,0x6c,0x9b,0xfe,0x2f,0x00,0x00,0x00,0x00,0x01,0xff,0xf3,0x00,0x00,0x03,0x3f,0x04,0x3a,0x00,0x0d, -0x00,0x3c,0x40,0x10,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1f,0x06,0x01,0x03,0x02,0x01,0x00,0x01,0x03,0x00,0x00,0x00,0x1d,0x00,0x05,0x05,0x04,0x00,0x00,0x1b,0x00,0x04,0x04,0x0a,0x16,0x00,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21, -0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x02,0x74,0xfe,0xe0,0xc5,0x9c,0x9c,0x02,0xb0,0xfe,0x15,0x01,0x20,0x01,0xdc,0xfe,0x24,0x01,0xdc,0x9b,0x01,0xc3,0x9c,0xfe,0xd9,0x00,0x00,0x00,0x00,0x01,0x00,0xa3,0xff,0xc9,0x04,0x74,0x05,0xb0,0x00,0x15,0x00,0x40,0x40,0x0c,0x15,0x14,0x13,0x12,0x11,0x0f,0x04,0x02, -0x01,0x00,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x27,0x0a,0x01,0x03,0x02,0x01,0x15,0x09,0x01,0x03,0x12,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x01,0x00,0x1d,0x00,0x00,0x00,0x04,0x00,0x00,0x1b,0x00,0x04,0x04,0x07,0x16,0x00,0x03,0x03,0x08,0x03,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x33,0x32,0x00,0x15,0x06,0x02,0x07, -0x27,0x3e,0x01,0x35,0x2e,0x01,0x2b,0x01,0x11,0x23,0x11,0x21,0x04,0x20,0xfd,0x48,0xf9,0xeb,0x01,0x28,0x02,0xc3,0xbe,0x33,0x80,0x70,0x01,0xb6,0x96,0xf9,0xc5,0x03,0x7d,0x05,0x15,0xfe,0x56,0xff,0x00,0xdc,0x8a,0xfe,0xe6,0x22,0x94,0x22,0x9d,0x73,0x93,0xa4,0xfd,0x3a,0x05,0xb0,0x00,0x00,0x00,0x01,0x00,0x8f,0xfe,0xff,0x03,0xc4, -0x04,0x3a,0x00,0x15,0x00,0x3b,0x40,0x0c,0x15,0x14,0x13,0x12,0x11,0x0f,0x04,0x02,0x01,0x00,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x22,0x0a,0x09,0x02,0x03,0x12,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x01,0x00,0x1d,0x00,0x00,0x00,0x04,0x00,0x00,0x1b,0x00,0x04,0x04,0x0a,0x16,0x00,0x03,0x03,0x08,0x03,0x17,0x05,0xb0,0x2f, -0x2b,0x01,0x21,0x15,0x33,0x32,0x00,0x15,0x06,0x02,0x07,0x27,0x3e,0x01,0x35,0x2e,0x01,0x2b,0x01,0x11,0x23,0x11,0x21,0x03,0x3f,0xfe,0x15,0x5d,0xeb,0x01,0x28,0x02,0xc3,0xbe,0x33,0x80,0x70,0x01,0xb6,0x96,0x5d,0xc5,0x02,0xb0,0x03,0x9e,0xfd,0xff,0x00,0xdc,0x8a,0xfe,0xe6,0x22,0x94,0x23,0x9c,0x73,0x93,0xa4,0xfe,0x04,0x04,0x3a, -0xff,0xff,0x00,0x1a,0xfe,0x99,0x06,0xc3,0x05,0xb0,0x02,0x26,0x01,0xc2,0x00,0x00,0x00,0x07,0x03,0xe0,0x05,0x9e,0x00,0x00,0xff,0xff,0x00,0x1a,0xfe,0x99,0x05,0xca,0x04,0x3a,0x02,0x26,0x01,0xe2,0x00,0x00,0x00,0x07,0x03,0xe0,0x04,0xa5,0x00,0x00,0xff,0xff,0x00,0x78,0xfe,0x5a,0x04,0xdf,0x05,0xc5,0x02,0x26,0x01,0xc3,0x00,0x00, -0x01,0x07,0x03,0xe1,0x01,0xae,0xff,0xf7,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf7,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x64,0xfe,0x5b,0x03,0xec,0x04,0x4c,0x02,0x26,0x01,0xe3,0x00,0x00,0x01,0x07,0x03,0xe1,0x01,0x2a,0xff,0xf8,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf8,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xaa,0xfe,0x99,0x05,0x41, -0x05,0xb0,0x02,0x26,0x00,0x2e,0x00,0x00,0x00,0x07,0x03,0xe0,0x04,0x1c,0x00,0x00,0xff,0xff,0x00,0x99,0xfe,0x99,0x04,0x72,0x04,0x3a,0x02,0x26,0x01,0xe6,0x00,0x00,0x00,0x07,0x03,0xe0,0x03,0x4d,0x00,0x00,0x00,0x01,0x00,0xa3,0x00,0x00,0x04,0xff,0x05,0xb0,0x00,0x14,0x00,0x54,0x40,0x1a,0x00,0x00,0x00,0x14,0x00,0x14,0x13,0x12, -0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x0b,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2d,0x01,0x01,0x01,0x06,0x01,0x15,0x08,0x01,0x06,0x03,0x01,0x01,0x02,0x06,0x01,0x00,0x00,0x1d,0x0a,0x09,0x02,0x05,0x05,0x07,0x16,0x00,0x02,0x02,0x07,0x00,0x00,0x1b,0x00,0x07,0x07,0x0a,0x16,0x04, -0x01,0x00,0x00,0x08,0x00,0x17,0x06,0xb0,0x2f,0x2b,0x09,0x02,0x23,0x01,0x23,0x15,0x23,0x35,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x35,0x33,0x15,0x33,0x01,0x04,0xd5,0xfe,0x72,0x01,0xb8,0xf6,0xfe,0xac,0x4e,0x9d,0x62,0xc5,0xc5,0x62,0x9d,0x4c,0x01,0x3d,0x05,0xb0,0xfd,0x4f,0xfd,0x01,0x02,0x92,0xf3,0xf3,0xfd,0x6e,0x05,0xb0,0xfd, -0x7c,0xff,0xff,0x02,0x84,0x00,0x00,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x04,0x63,0x04,0x3a,0x00,0x14,0x00,0x52,0x40,0x1a,0x00,0x00,0x00,0x14,0x00,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x0b,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2b,0x01,0x01,0x01,0x06,0x01,0x15, -0x08,0x01,0x06,0x03,0x01,0x01,0x02,0x06,0x01,0x00,0x00,0x1d,0x00,0x07,0x00,0x02,0x00,0x07,0x02,0x00,0x00,0x1d,0x0a,0x09,0x02,0x05,0x05,0x0a,0x16,0x04,0x01,0x00,0x00,0x08,0x00,0x17,0x05,0xb0,0x2f,0x2b,0x09,0x02,0x23,0x01,0x23,0x15,0x23,0x35,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x35,0x33,0x15,0x33,0x13,0x04,0x40,0xfe,0xad, -0x01,0x76,0xf9,0xfe,0xf3,0x17,0x9d,0x4b,0xc5,0xc5,0x4b,0x9d,0x0f,0xff,0x04,0x3a,0xfe,0x00,0xfd,0xc6,0x01,0xcb,0xbf,0xbf,0xfe,0x35,0x04,0x3a,0xfe,0x37,0xd3,0xd3,0x01,0xc9,0x00,0x00,0x00,0x01,0xff,0xd7,0x00,0x00,0x05,0x01,0x05,0xb0,0x00,0x16,0x00,0x4d,0x40,0x16,0x16,0x15,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08, -0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2a,0x13,0x01,0x00,0x07,0x01,0x15,0x05,0x01,0x03,0x06,0x01,0x02,0x07,0x03,0x02,0x00,0x00,0x1d,0x00,0x07,0x00,0x00,0x01,0x07,0x00,0x00,0x00,0x1d,0x08,0x01,0x04,0x04,0x07,0x16,0x09,0x01,0x01,0x01,0x08,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x01, -0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x01,0x33,0x17,0x09,0x01,0x07,0x23,0x01,0xef,0x80,0xc5,0xd3,0xd3,0xc5,0xe9,0xe9,0x6c,0x02,0x1c,0xde,0x02,0xfd,0xb2,0x02,0x78,0x02,0xef,0x02,0x92,0xfd,0x6e,0x04,0x82,0x9b,0x93,0x93,0x9b,0xfe,0xaa,0x02,0x84,0x05,0xfd,0x4f,0xfd,0x0b,0x05,0x00,0x00, -0x00,0x01,0xff,0xbb,0x00,0x00,0x04,0x0b,0x06,0x18,0x00,0x14,0x00,0x51,0x40,0x16,0x14,0x13,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2e,0x12,0x01,0x00,0x07,0x01,0x15,0x05,0x01,0x03,0x06,0x01,0x02,0x08,0x03,0x02,0x00,0x00,0x1d, -0x00,0x07,0x00,0x00,0x01,0x07,0x00,0x00,0x00,0x1d,0x00,0x04,0x04,0x09,0x16,0x00,0x08,0x08,0x0a,0x16,0x09,0x01,0x01,0x01,0x08,0x01,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x01,0x33,0x09,0x01,0x23,0x01,0xba,0x65,0xc5,0xd5,0xd5,0xc5,0xe7,0xe7,0x63,0x01,0x45, -0xec,0xfe,0x77,0x01,0xab,0xe9,0x01,0xf3,0xfe,0x0d,0x04,0xbe,0x9b,0xbf,0xbf,0x9b,0xfd,0xd2,0x01,0xaa,0xfe,0x0d,0xfd,0xb9,0x00,0x01,0x00,0x4a,0x00,0x00,0x06,0xb8,0x05,0xb0,0x00,0x10,0x00,0x42,0x40,0x10,0x10,0x0f,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x25, -0x0d,0x01,0x00,0x04,0x01,0x15,0x00,0x04,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x1d,0x00,0x02,0x02,0x03,0x00,0x00,0x1b,0x05,0x01,0x03,0x03,0x07,0x16,0x06,0x01,0x01,0x01,0x08,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x01,0x33,0x17,0x09,0x01,0x07,0x23,0x03,0xa6,0x80,0xc5,0xfd,0xe9,0x02, -0xdc,0x6c,0x02,0x1c,0xde,0x02,0xfd,0xb2,0x02,0x78,0x02,0xef,0x02,0x92,0xfd,0x6e,0x05,0x15,0x9b,0xfd,0x7c,0x02,0x84,0x05,0xfd,0x4f,0xfd,0x0b,0x05,0x00,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x05,0xbc,0x04,0x3a,0x00,0x10,0x00,0x42,0x40,0x10,0x10,0x0f,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x07,0x07, -0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x25,0x0d,0x01,0x00,0x04,0x01,0x15,0x00,0x04,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x1d,0x00,0x02,0x02,0x03,0x00,0x00,0x1b,0x05,0x01,0x03,0x03,0x0a,0x16,0x06,0x01,0x01,0x01,0x08,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x01,0x33,0x17,0x09,0x01,0x07, -0x23,0x03,0x3f,0x65,0xc5,0xfe,0x1d,0x02,0xa8,0x54,0x01,0x83,0xe7,0x02,0xfe,0x3f,0x01,0xe3,0x02,0xf2,0x01,0xcb,0xfe,0x35,0x03,0x9e,0x9c,0xfe,0x37,0x01,0xc9,0x05,0xfd,0xfe,0xfd,0xd2,0x05,0x00,0x00,0x00,0xff,0xff,0x00,0xaa,0xfe,0x99,0x05,0x88,0x05,0xb0,0x02,0x26,0x00,0x2b,0x00,0x00,0x00,0x07,0x03,0xe0,0x04,0x63,0x00,0x00, -0xff,0xff,0x00,0x8f,0xfe,0x99,0x04,0x8c,0x04,0x3a,0x02,0x26,0x01,0xe9,0x00,0x00,0x00,0x07,0x03,0xe0,0x03,0x67,0x00,0x00,0x00,0x01,0x00,0xa9,0x00,0x00,0x07,0x6f,0x05,0xb0,0x00,0x0d,0x00,0x3c,0x40,0x10,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1f, -0x00,0x00,0x00,0x04,0x03,0x00,0x04,0x00,0x00,0x1d,0x00,0x02,0x02,0x01,0x00,0x00,0x1b,0x06,0x01,0x01,0x01,0x07,0x16,0x05,0x01,0x03,0x03,0x08,0x03,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x01,0x6e,0x02,0xc3,0x03,0x3e,0xfd,0x87,0xc5,0xfd,0x3d,0xc5,0xc5,0x03,0x1e,0x02, -0x92,0x9b,0xfa,0xeb,0x02,0x83,0xfd,0x7d,0x05,0xb0,0x00,0x00,0x00,0x01,0x00,0x8f,0x00,0x00,0x05,0x65,0x04,0x3a,0x00,0x0d,0x00,0x3c,0x40,0x10,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1f,0x00,0x00,0x00,0x04,0x03,0x00,0x04,0x00,0x00,0x1d,0x00,0x02, -0x02,0x01,0x00,0x00,0x1b,0x06,0x01,0x01,0x01,0x0a,0x16,0x05,0x01,0x03,0x03,0x08,0x03,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x01,0x54,0x01,0xe2,0x02,0x2f,0xfe,0x96,0xc5,0xfe,0x1e,0xc5,0xc5,0x02,0x66,0x01,0xd4,0x9c,0xfc,0x62,0x01,0xcc,0xfe,0x34,0x04,0x3a,0x00,0x00, -0x00,0x01,0x00,0xa8,0xff,0xce,0x07,0xe3,0x05,0xb0,0x00,0x17,0x00,0x43,0x40,0x0e,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0d,0x02,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x28,0x08,0x01,0x02,0x01,0x01,0x15,0x07,0x01,0x02,0x12,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x01,0x00,0x1d,0x00,0x03,0x03,0x05,0x00,0x00, -0x1b,0x00,0x05,0x05,0x07,0x16,0x04,0x01,0x02,0x02,0x08,0x02,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x33,0x32,0x00,0x15,0x06,0x02,0x07,0x27,0x3e,0x01,0x35,0x2e,0x01,0x2b,0x01,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x04,0xf7,0xd9,0xeb,0x01,0x28,0x02,0xc2,0xbf,0x33,0x80,0x71,0x02,0xb6,0x96,0xd9,0xc5,0xfd,0x3b,0xc5,0x04,0x4f,0x03, -0x71,0xfe,0xff,0xdc,0x8a,0xfe,0xe7,0x23,0x95,0x21,0x9e,0x72,0x93,0xa5,0xfd,0x34,0x05,0x15,0xfa,0xeb,0x05,0xb0,0x00,0x00,0x00,0x01,0x00,0x8f,0xff,0x02,0x06,0xb8,0x04,0x3a,0x00,0x17,0x00,0x3e,0x40,0x0e,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0d,0x02,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x23,0x08,0x07, -0x02,0x02,0x12,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x01,0x00,0x1d,0x00,0x03,0x03,0x05,0x00,0x00,0x1b,0x00,0x05,0x05,0x0a,0x16,0x04,0x01,0x02,0x02,0x08,0x02,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x33,0x32,0x00,0x15,0x06,0x02,0x07,0x27,0x3e,0x01,0x35,0x2e,0x01,0x2b,0x01,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x03,0xfc,0xa9,0xeb, -0x01,0x28,0x02,0xc3,0xbe,0x33,0x80,0x70,0x01,0xb6,0x96,0xa9,0xc5,0xfe,0x1d,0xc5,0x03,0x6d,0x02,0xa4,0xff,0x00,0xdc,0x8a,0xfe,0xe6,0x22,0x94,0x23,0x9c,0x73,0x93,0xa4,0xfe,0x01,0x03,0x9e,0xfc,0x62,0x04,0x3a,0x00,0x00,0x00,0x00,0x02,0x00,0x71,0xff,0xeb,0x05,0x02,0x05,0xc3,0x00,0x21,0x00,0x30,0x00,0x8b,0x40,0x0e,0x27,0x25, -0x1c,0x1a,0x15,0x14,0x12,0x11,0x0c,0x0a,0x05,0x03,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x30,0x58,0x40,0x35,0x13,0x01,0x03,0x02,0x30,0x2d,0x22,0x21,0x1e,0x00,0x06,0x04,0x05,0x02,0x15,0x00,0x03,0x03,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0d,0x16,0x00,0x05,0x05,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x10,0x16,0x00, -0x04,0x04,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x07,0x1b,0x40,0x33,0x13,0x01,0x03,0x02,0x30,0x2d,0x22,0x21,0x1e,0x00,0x06,0x04,0x05,0x02,0x15,0x00,0x00,0x00,0x05,0x04,0x00,0x05,0x01,0x00,0x1d,0x00,0x03,0x03,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0d,0x16,0x00,0x04,0x04,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e, -0x01,0x17,0x06,0x59,0xb0,0x2f,0x2b,0x01,0x35,0x34,0x36,0x33,0x32,0x16,0x1d,0x01,0x10,0x00,0x21,0x22,0x00,0x19,0x01,0x10,0x00,0x1f,0x01,0x15,0x22,0x02,0x15,0x11,0x14,0x12,0x33,0x32,0x36,0x37,0x2e,0x01,0x35,0x05,0x35,0x34,0x26,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x17,0x3e,0x01,0x35,0x02,0x1d,0xce,0xa5,0xa5,0xcd,0xfe,0xb5, -0xfe,0xf8,0xfe,0xfe,0xc0,0x01,0x3e,0xfa,0x06,0xac,0xcd,0xcd,0xac,0x3f,0x6d,0x2d,0xa8,0xc3,0x02,0x20,0x5d,0x50,0x50,0x5e,0x97,0x86,0x1e,0x20,0x02,0x91,0x3b,0xb0,0xe7,0xe5,0xb2,0x50,0xfe,0xe5,0xfe,0x8a,0x01,0x60,0x01,0x0a,0x01,0x06,0x01,0x09,0x01,0x5f,0x04,0x02,0x9a,0xfe,0xff,0xc5,0xfe,0xf8,0xc9,0xff,0x00,0x22,0x22,0x2a, -0xf1,0xa6,0x15,0x53,0x6b,0x88,0x8a,0x69,0x40,0x7a,0xa7,0x0e,0x3b,0x91,0x50,0x00,0x00,0x02,0x00,0x61,0xff,0xeb,0x04,0x2a,0x04,0x4c,0x00,0x21,0x00,0x30,0x00,0x9e,0x40,0x10,0x2d,0x2c,0x27,0x25,0x1c,0x1a,0x15,0x14,0x12,0x11,0x0c,0x0a,0x05,0x03,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x10,0x58,0x40,0x3c,0x13,0x01, -0x03,0x02,0x30,0x22,0x21,0x00,0x04,0x06,0x05,0x1e,0x01,0x04,0x06,0x03,0x15,0x00,0x06,0x05,0x04,0x04,0x06,0x21,0x00,0x00,0x00,0x05,0x06,0x00,0x05,0x01,0x00,0x1d,0x00,0x03,0x03,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x10,0x16,0x00,0x04,0x04,0x01,0x01,0x02,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x07,0x1b,0x40,0x3d,0x13,0x01,0x03, -0x02,0x30,0x22,0x21,0x00,0x04,0x06,0x05,0x1e,0x01,0x04,0x06,0x03,0x15,0x00,0x06,0x05,0x04,0x05,0x06,0x04,0x29,0x00,0x00,0x00,0x05,0x06,0x00,0x05,0x01,0x00,0x1d,0x00,0x03,0x03,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x10,0x16,0x00,0x04,0x04,0x01,0x01,0x02,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x07,0x59,0xb0,0x2f,0x2b,0x01,0x35, -0x34,0x36,0x33,0x32,0x16,0x1d,0x01,0x14,0x00,0x23,0x22,0x00,0x3d,0x01,0x34,0x00,0x1f,0x01,0x15,0x22,0x06,0x1d,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x2e,0x01,0x35,0x05,0x35,0x34,0x26,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x33,0x3e,0x01,0x35,0x01,0xd2,0xa9,0x82,0x81,0xac,0xfe,0xf0,0xcb,0xdb,0xfe,0xed,0x01,0x11,0xd7,0x06,0x88, -0xa1,0xa0,0x89,0x1d,0x37,0x19,0x6d,0x7d,0x01,0x93,0x3e,0x2a,0x2c,0x3a,0x5b,0x50,0x10,0x13,0x01,0xe9,0x25,0x84,0xae,0xbb,0x8c,0x21,0xd3,0xfe,0xe6,0x01,0x24,0xde,0x36,0xef,0x01,0x3a,0x04,0x02,0x99,0xdb,0xad,0x38,0x9b,0xc6,0x0c,0x0c,0x23,0xae,0x74,0x11,0x24,0x43,0x60,0x52,0x3d,0x29,0x52,0x65,0x24,0x56,0x2e,0x00,0x00,0x00, -0xff,0xff,0x00,0x76,0xfe,0x5a,0x04,0xbf,0x05,0xc5,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x03,0xe1,0x01,0xa9,0xff,0xf7,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf7,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xfe,0x5a,0x03,0xd9,0x04,0x4e,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x03,0xe1,0x01,0x26,0xff,0xf7,0x00,0x09,0xb1,0x01, -0x01,0xb8,0xff,0xf7,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x25,0xfe,0x99,0x04,0xa4,0x05,0xb0,0x02,0x26,0x00,0x37,0x00,0x00,0x00,0x07,0x03,0xe0,0x02,0x30,0x00,0x00,0xff,0xff,0x00,0x47,0xfe,0x99,0x03,0xd1,0x04,0x3a,0x02,0x26,0x01,0xee,0x00,0x00,0x00,0x07,0x03,0xe0,0x01,0xd8,0x00,0x00,0xff,0xff,0x00,0x28,0x00,0x00,0x04,0xe2, -0x05,0xb0,0x02,0x06,0x00,0x3c,0x00,0x00,0xff,0xff,0x00,0x2e,0xfe,0x5f,0x03,0xe4,0x04,0x3a,0x02,0x06,0x01,0x8d,0x00,0x00,0x00,0x01,0x00,0x28,0x00,0x00,0x04,0xe2,0x05,0xb0,0x00,0x0f,0x00,0x40,0x40,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x06,0x05,0x04,0x03,0x02,0x01,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x23, -0x00,0x01,0x01,0x00,0x07,0x01,0x03,0x02,0x02,0x15,0x05,0x01,0x01,0x04,0x01,0x02,0x03,0x01,0x02,0x00,0x00,0x1d,0x06,0x01,0x00,0x00,0x07,0x16,0x00,0x03,0x03,0x08,0x03,0x17,0x04,0xb0,0x2f,0x2b,0x09,0x01,0x33,0x01,0x33,0x15,0x23,0x07,0x11,0x23,0x11,0x23,0x35,0x33,0x01,0x33,0x02,0x85,0x01,0x7c,0xe1,0xfe,0x5d,0x78,0xcc,0x08, -0xc4,0xe9,0x95,0xfe,0x5d,0xe1,0x02,0xcc,0x02,0xe4,0xfc,0xfa,0x9b,0x0f,0xfe,0x00,0x02,0x0f,0x9b,0x03,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0x2e,0xfe,0x5f,0x03,0xe4,0x04,0x3a,0x00,0x11,0x00,0x42,0x40,0x12,0x11,0x10,0x0f,0x0e,0x0c,0x0b,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58, -0x40,0x23,0x00,0x05,0x04,0x03,0x04,0x05,0x03,0x29,0x06,0x01,0x04,0x04,0x0a,0x16,0x07,0x01,0x03,0x03,0x00,0x00,0x02,0x1b,0x02,0x01,0x00,0x00,0x08,0x16,0x00,0x01,0x01,0x0c,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x05,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x01,0x33,0x01,0x17,0x33,0x37,0x13,0x33,0x01,0x33,0x03,0x51,0xe4,0xc5,0xd8,0xbc, -0xfe,0xa2,0xca,0x01,0x00,0x11,0x06,0x13,0xf9,0xc9,0xfe,0xa6,0xc7,0x0d,0xfe,0x6c,0x01,0x94,0x9b,0x03,0xac,0xfd,0x05,0x4c,0x4c,0x02,0xfb,0xfc,0x54,0x00,0x00,0x00,0xff,0xff,0x00,0x42,0xfe,0x99,0x04,0xf0,0x05,0xb0,0x02,0x26,0x00,0x3b,0x00,0x00,0x00,0x07,0x03,0xe0,0x03,0xcb,0x00,0x00,0xff,0xff,0x00,0x2e,0xfe,0x99,0x04,0x0b, -0x04,0x3a,0x02,0x26,0x00,0x5b,0x00,0x00,0x00,0x07,0x03,0xe0,0x02,0xe6,0x00,0x00,0x00,0x01,0x00,0x37,0xfe,0x9d,0x06,0x9c,0x05,0xb0,0x00,0x13,0x00,0x49,0x40,0x16,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x26,0x00,0x08, -0x05,0x08,0x00,0x02,0x19,0x04,0x01,0x00,0x00,0x01,0x00,0x00,0x1b,0x06,0x03,0x02,0x03,0x01,0x01,0x07,0x16,0x07,0x01,0x05,0x05,0x09,0x00,0x02,0x1b,0x00,0x09,0x09,0x08,0x09,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x21,0x35,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x21,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x21,0x01,0xa4,0xfe,0x93,0x01, -0x6d,0xc5,0x01,0x88,0xfe,0x78,0x02,0xc5,0xc5,0xa9,0xc5,0xfb,0xcd,0x05,0x13,0x9b,0x02,0x02,0x9b,0xfb,0x88,0x05,0x15,0xfa,0xf1,0xfd,0xfc,0x01,0x63,0x00,0x00,0x00,0x00,0x01,0x00,0x20,0xfe,0x9e,0x05,0x1d,0x04,0x3b,0x00,0x0f,0x00,0x43,0x40,0x12,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00, -0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x24,0x00,0x06,0x03,0x06,0x00,0x02,0x19,0x02,0x01,0x00,0x00,0x01,0x00,0x00,0x1b,0x04,0x01,0x01,0x01,0x0a,0x16,0x05,0x01,0x03,0x03,0x07,0x00,0x02,0x1b,0x00,0x07,0x07,0x08,0x07,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x21,0x35,0x21,0x15,0x23,0x11,0x21,0x11,0x33,0x11,0x33,0x11,0x23,0x11, -0x21,0x01,0x2c,0xfe,0xf4,0x02,0xc4,0xf3,0x01,0xe3,0xc5,0x84,0xc5,0xfc,0xd4,0x03,0xa0,0x9b,0x9b,0xfc,0xfa,0x03,0xa0,0xfc,0x60,0xfe,0x04,0x01,0x62,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0xfe,0x99,0x05,0x5d,0x05,0xb0,0x02,0x26,0x01,0xd3,0x00,0x00,0x00,0x07,0x03,0xe0,0x04,0x38,0x00,0x00,0xff,0xff,0x00,0x7f,0xfe,0x99,0x04,0x6d, -0x04,0x3b,0x02,0x26,0x01,0xf3,0x00,0x00,0x00,0x07,0x03,0xe0,0x03,0x48,0x00,0x00,0x00,0x02,0x00,0x93,0x00,0x00,0x04,0xcc,0x05,0xb0,0x00,0x03,0x00,0x17,0x00,0xc4,0x40,0x14,0x04,0x04,0x04,0x17,0x04,0x17,0x14,0x12,0x0f,0x0e,0x0b,0x09,0x06,0x05,0x03,0x02,0x01,0x00,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x09,0x58, -0x40,0x30,0x16,0x01,0x05,0x01,0x07,0x01,0x03,0x05,0x02,0x15,0x00,0x01,0x04,0x05,0x05,0x01,0x21,0x00,0x00,0x03,0x02,0x03,0x00,0x21,0x00,0x05,0x00,0x03,0x00,0x05,0x03,0x01,0x02,0x1d,0x07,0x06,0x02,0x04,0x04,0x07,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x06,0x1b,0x4b,0xb0,0x0a,0x58,0x40,0x31,0x16,0x01,0x05,0x01,0x07,0x01,0x03, -0x05,0x02,0x15,0x00,0x01,0x04,0x05,0x04,0x01,0x05,0x29,0x00,0x00,0x03,0x02,0x03,0x00,0x21,0x00,0x05,0x00,0x03,0x00,0x05,0x03,0x01,0x02,0x1d,0x07,0x06,0x02,0x04,0x04,0x07,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x06,0x1b,0x40,0x32,0x16,0x01,0x05,0x01,0x07,0x01,0x03,0x05,0x02,0x15,0x00,0x01,0x04,0x05,0x04,0x01,0x05,0x29,0x00, -0x00,0x03,0x02,0x03,0x00,0x02,0x29,0x00,0x05,0x00,0x03,0x00,0x05,0x03,0x01,0x02,0x1d,0x07,0x06,0x02,0x04,0x04,0x07,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x06,0x59,0x59,0xb0,0x2f,0x2b,0x01,0x23,0x11,0x33,0x01,0x11,0x23,0x11,0x0e,0x01,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x11,0x03,0x1e,0x9e,0x9e, -0x01,0xae,0xc5,0x5f,0xb2,0x7a,0xf1,0xf8,0xc6,0x8a,0x99,0x68,0xc0,0x63,0x01,0x3c,0x02,0xbd,0x01,0xb7,0xfa,0x50,0x02,0x5b,0x1d,0x1a,0xd3,0xed,0x01,0xcc,0xfe,0x34,0xa5,0x7f,0x1c,0x1b,0x02,0xb9,0x00,0x00,0x00,0x02,0x00,0x7f,0x00,0x00,0x03,0xdc,0x04,0x3b,0x00,0x03,0x00,0x17,0x00,0xbd,0x40,0x10,0x17,0x16,0x13,0x11,0x0e,0x0d, -0x0a,0x08,0x05,0x04,0x03,0x02,0x01,0x00,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x09,0x58,0x40,0x2f,0x15,0x01,0x05,0x01,0x06,0x01,0x03,0x05,0x02,0x15,0x00,0x01,0x04,0x05,0x05,0x01,0x21,0x00,0x00,0x03,0x02,0x03,0x00,0x21,0x00,0x05,0x00,0x03,0x00,0x05,0x03,0x01,0x02,0x1d,0x06,0x01,0x04,0x04,0x0a,0x16,0x00,0x02, -0x02,0x08,0x02,0x17,0x06,0x1b,0x4b,0xb0,0x14,0x58,0x40,0x30,0x15,0x01,0x05,0x01,0x06,0x01,0x03,0x05,0x02,0x15,0x00,0x01,0x04,0x05,0x04,0x01,0x05,0x29,0x00,0x00,0x03,0x02,0x03,0x00,0x21,0x00,0x05,0x00,0x03,0x00,0x05,0x03,0x01,0x02,0x1d,0x06,0x01,0x04,0x04,0x0a,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x06,0x1b,0x40,0x31,0x15, -0x01,0x05,0x01,0x06,0x01,0x03,0x05,0x02,0x15,0x00,0x01,0x04,0x05,0x04,0x01,0x05,0x29,0x00,0x00,0x03,0x02,0x03,0x00,0x02,0x29,0x00,0x05,0x00,0x03,0x00,0x05,0x03,0x01,0x02,0x1d,0x06,0x01,0x04,0x04,0x0a,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x06,0x59,0x59,0xb0,0x2f,0x2b,0x25,0x23,0x11,0x33,0x01,0x23,0x11,0x0e,0x01,0x23,0x22, -0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x11,0x33,0x02,0x87,0x9e,0x9e,0x01,0x55,0xc5,0x39,0x78,0x44,0xc4,0xdf,0xc5,0x70,0x6e,0x42,0x78,0x3b,0xc5,0xe5,0x02,0x36,0xfc,0xe5,0x01,0x83,0x0f,0x0f,0xce,0xca,0x01,0x3e,0xfe,0xc2,0x82,0x7a,0x0f,0x0f,0x02,0x1b,0x00,0x00,0x00,0x00,0x01,0x00,0x8a,0x00,0x00,0x04,0xc3, -0x05,0xb0,0x00,0x13,0x00,0x3f,0x40,0x10,0x00,0x00,0x00,0x13,0x00,0x13,0x10,0x0e,0x0b,0x0a,0x07,0x05,0x02,0x01,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x22,0x03,0x01,0x03,0x01,0x12,0x01,0x02,0x03,0x02,0x15,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x01,0x00,0x1d,0x00,0x00,0x00,0x07,0x16,0x05,0x04,0x02,0x02,0x02,0x08,0x02, -0x17,0x04,0xb0,0x2f,0x2b,0x33,0x11,0x33,0x11,0x3e,0x01,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x8a,0xc5,0x60,0xb1,0x7a,0xf0,0xf9,0xc6,0x8b,0x98,0x69,0xc0,0x62,0x05,0xb0,0xfd,0xa5,0x1b,0x1c,0xd4,0xec,0xfe,0x34,0x01,0xcc,0xa4,0x80,0x1d,0x1b,0xfd,0x48,0xff,0xff,0x00,0x94,0x00,0x01,0x03,0xf1, -0x04,0x3c,0x01,0x0f,0x01,0xf3,0x04,0x70,0x04,0x3c,0xc0,0x01,0x00,0x09,0xb1,0x00,0x01,0xb8,0x04,0x3c,0xb0,0x0d,0x2b,0x00,0x00,0x02,0x00,0x4d,0xff,0xe9,0x06,0x2c,0x05,0xc3,0x00,0x1e,0x00,0x27,0x00,0x64,0x40,0x18,0x20,0x1f,0x01,0x00,0x24,0x23,0x1f,0x27,0x20,0x27,0x19,0x17,0x14,0x13,0x10,0x0e,0x09,0x08,0x00,0x1e,0x01,0x1e, -0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x3f,0x0c,0x07,0x02,0x06,0x01,0x04,0x01,0x03,0x06,0x1b,0x15,0x02,0x04,0x03,0x1c,0x01,0x00,0x04,0x04,0x15,0x00,0x06,0x00,0x03,0x04,0x06,0x03,0x00,0x00,0x1d,0x08,0x01,0x05,0x05,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0d,0x16,0x00,0x01,0x01,0x0a,0x16,0x00,0x04,0x04,0x00,0x01,0x00, -0x1b,0x07,0x01,0x00,0x00,0x0e,0x00,0x17,0x07,0xb0,0x2f,0x2b,0x05,0x20,0x00,0x11,0x35,0x2e,0x01,0x3f,0x01,0x33,0x14,0x16,0x17,0x12,0x00,0x33,0x20,0x00,0x11,0x15,0x21,0x07,0x06,0x12,0x33,0x32,0x36,0x37,0x17,0x0e,0x01,0x03,0x22,0x02,0x07,0x17,0x21,0x35,0x34,0x26,0x04,0x47,0xfe,0xb6,0xfe,0x91,0x9e,0xa3,0x04,0x02,0x97,0x53, -0x55,0x1b,0x01,0x51,0xe9,0x01,0x1b,0x01,0x2a,0xfc,0x2e,0x02,0x05,0xf7,0xfd,0x6b,0x9a,0x4b,0x30,0x32,0xc0,0xee,0xab,0xd2,0x0f,0x03,0x03,0x09,0xb5,0x17,0x01,0x8d,0x01,0x47,0x06,0x14,0xc4,0x9a,0x05,0x5d,0x7d,0x12,0x01,0x17,0x01,0x5e,0xfe,0x9d,0xfe,0xc9,0x6c,0x05,0xf9,0xfe,0xc4,0x2e,0x26,0x8b,0x24,0x3f,0x05,0x3f,0xfe,0xf2, -0xd1,0x05,0x1f,0xce,0xf7,0x00,0x00,0x00,0x00,0x02,0xff,0xdf,0xff,0xeb,0x04,0x51,0x04,0x4e,0x00,0x1d,0x00,0x26,0x00,0x66,0x40,0x18,0x1f,0x1e,0x01,0x00,0x23,0x22,0x1e,0x26,0x1f,0x26,0x18,0x16,0x13,0x12,0x0f,0x0d,0x08,0x07,0x00,0x1d,0x01,0x1d,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x41,0x0b,0x01,0x06,0x01,0x04,0x01, -0x03,0x06,0x1a,0x14,0x02,0x04,0x03,0x1b,0x01,0x00,0x04,0x04,0x15,0x00,0x01,0x05,0x06,0x05,0x01,0x06,0x29,0x00,0x06,0x00,0x03,0x04,0x06,0x03,0x00,0x00,0x1d,0x08,0x01,0x05,0x05,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x10,0x16,0x00,0x04,0x04,0x00,0x01,0x00,0x1b,0x07,0x01,0x00,0x00,0x0e,0x00,0x17,0x07,0xb0,0x2f,0x2b,0x05,0x22, -0x00,0x3d,0x01,0x2e,0x01,0x35,0x33,0x14,0x16,0x17,0x3e,0x01,0x33,0x32,0x12,0x1d,0x01,0x21,0x07,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x0e,0x01,0x03,0x22,0x06,0x07,0x17,0x21,0x35,0x34,0x26,0x02,0xbe,0xe9,0xfe,0xfb,0x77,0x7a,0x9d,0x2d,0x30,0x1f,0xfe,0xa9,0xd9,0xd9,0xfd,0x4c,0x03,0x90,0x94,0x64,0x97,0x36,0x4d,0x3a,0xbe,0xa5, -0x67,0x87,0x0f,0x02,0x01,0xe8,0x74,0x15,0x01,0x2a,0xf3,0x08,0x1d,0xaf,0x87,0x45,0x62,0x19,0xbe,0xed,0xfe,0xf2,0xe0,0x68,0x05,0xa3,0xcb,0x39,0x32,0x80,0x38,0x4d,0x03,0xc8,0x9f,0x7c,0x05,0x10,0x76,0x9a,0xff,0xff,0x00,0x4d,0xfe,0x50,0x06,0x2c,0x05,0xc3,0x02,0x26,0x02,0x67,0x00,0x00,0x00,0x07,0x01,0x57,0x02,0x5a,0x00,0x00, -0xff,0xff,0xff,0xdf,0xfe,0x50,0x04,0x51,0x04,0x4e,0x02,0x26,0x02,0x68,0x00,0x00,0x00,0x07,0x01,0x57,0x01,0x54,0x00,0x00,0xff,0xff,0x00,0xbe,0x00,0x00,0x01,0x84,0x05,0xb0,0x02,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x06,0x7c,0x07,0x4e,0x02,0x26,0x01,0xc2,0x00,0x00,0x01,0x07,0x01,0x54,0x01,0xa0,0x01,0x9e, -0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x9e,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x05,0xa6,0x05,0xf7,0x02,0x26,0x01,0xe2,0x00,0x00,0x01,0x07,0x01,0x54,0x01,0x34,0x00,0x47,0x00,0x08,0xb1,0x01,0x01,0xb0,0x47,0xb0,0x0d,0x2b,0x00,0x00,0x00,0x01,0x00,0xa3,0xff,0x68,0x04,0xd1,0x05,0xb0,0x00,0x17,0x00,0x38,0x40,0x0e, -0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0c,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1d,0x07,0x06,0x02,0x02,0x12,0x04,0x01,0x00,0x00,0x01,0x02,0x00,0x01,0x01,0x00,0x1d,0x05,0x01,0x03,0x03,0x07,0x16,0x00,0x02,0x02,0x08,0x02,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x16,0x04,0x15,0x06,0x02,0x07,0x27,0x3e,0x01, -0x35,0x2e,0x01,0x23,0x21,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x33,0x17,0x02,0xc3,0xe8,0x01,0x19,0x02,0xe1,0xdd,0x33,0xa0,0x8e,0x02,0xb2,0x9a,0xfe,0xb7,0xc5,0xc5,0x80,0x02,0x08,0xde,0x03,0x03,0x2b,0x05,0xfa,0xe8,0x90,0xfe,0xd9,0x25,0x96,0x22,0xaa,0x7a,0xa5,0x9f,0xfd,0x78,0x05,0xb0,0xfd,0x7c,0x02,0x84,0x05,0x00,0x00,0x00, -0x00,0x01,0x00,0x99,0xfe,0xfe,0x04,0x1e,0x04,0x3a,0x00,0x17,0x00,0x3b,0x40,0x0c,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0c,0x05,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x22,0x00,0x01,0x00,0x03,0x01,0x15,0x07,0x06,0x02,0x01,0x12,0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x01,0x00,0x1d,0x04,0x01,0x02,0x02,0x0a,0x16,0x00, -0x01,0x01,0x08,0x01,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x1e,0x01,0x15,0x06,0x02,0x07,0x27,0x3e,0x01,0x35,0x2e,0x01,0x2b,0x01,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x33,0x17,0x02,0x89,0xb8,0xd7,0x02,0xc2,0xbe,0x33,0x80,0x71,0x02,0xb2,0x9a,0xa8,0xc5,0xc5,0x54,0x01,0x83,0xe7,0x02,0x02,0x65,0x1e,0xde,0xb9,0x85,0xfe,0xf5,0x22,0x96, -0x20,0x91,0x6b,0x90,0x8b,0xfe,0x35,0x04,0x3a,0xfe,0x37,0x01,0xc9,0x05,0x00,0x00,0xff,0xff,0x00,0x31,0xfe,0xd7,0x05,0x9b,0x05,0xb0,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x07,0x00,0x0f,0x04,0x60,0xff,0xd9,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xd9,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x1a,0xfe,0xd7,0x04,0xa0,0x04,0x3a,0x02,0x26, -0x01,0xe7,0x00,0x00,0x01,0x07,0x00,0x0f,0x03,0x65,0xff,0xd9,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xd9,0xb0,0x0d,0x2b,0x00,0x00,0x01,0x00,0xa9,0xfe,0x4b,0x04,0xf6,0x05,0xb0,0x00,0x17,0x00,0x4f,0x40,0x14,0x00,0x00,0x00,0x17,0x00,0x17,0x16,0x15,0x14,0x13,0x10,0x0e,0x09,0x07,0x04,0x03,0x02,0x01,0x08,0x07,0x2b,0x4b,0xb0,0x90, -0x50,0x58,0x40,0x2e,0x0c,0x01,0x03,0x05,0x0b,0x01,0x02,0x03,0x02,0x15,0x00,0x00,0x00,0x04,0x05,0x00,0x04,0x00,0x00,0x1d,0x07,0x06,0x02,0x01,0x01,0x07,0x16,0x00,0x05,0x05,0x08,0x16,0x00,0x03,0x03,0x02,0x01,0x02,0x1b,0x00,0x02,0x02,0x12,0x02,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x11,0x21,0x11,0x33,0x11,0x14,0x06,0x23,0x22,0x26, -0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x35,0x11,0x21,0x11,0x23,0x11,0x01,0x6e,0x02,0xc3,0xc5,0xad,0x99,0x1f,0x35,0x1c,0x0e,0x0e,0x43,0x11,0x3c,0x45,0xfd,0x3d,0xc5,0x05,0xb0,0xfd,0x6e,0x02,0x92,0xf9,0xf7,0xa7,0xb5,0x09,0x09,0x96,0x05,0x08,0x67,0x5a,0x02,0xdc,0xfd,0x7d,0x05,0xb0,0x00,0x00,0x01,0x00,0x8f,0xfe,0x4b,0x03,0xfb, -0x04,0x3a,0x00,0x17,0x00,0x4f,0x40,0x14,0x00,0x00,0x00,0x17,0x00,0x17,0x16,0x15,0x14,0x13,0x10,0x0e,0x09,0x07,0x04,0x03,0x02,0x01,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2e,0x0c,0x01,0x03,0x05,0x0b,0x01,0x02,0x03,0x02,0x15,0x00,0x00,0x00,0x04,0x05,0x00,0x04,0x00,0x00,0x1d,0x07,0x06,0x02,0x01,0x01,0x0a,0x16,0x00, -0x05,0x05,0x08,0x16,0x00,0x03,0x03,0x02,0x01,0x02,0x1b,0x00,0x02,0x02,0x12,0x02,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x11,0x21,0x11,0x33,0x11,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x35,0x11,0x21,0x11,0x23,0x11,0x01,0x54,0x01,0xe2,0xc5,0xad,0x99,0x1f,0x35,0x1c,0x0f,0x0d,0x43,0x11,0x3c,0x45,0xfe,0x1e,0xc5, -0x04,0x3a,0xfe,0x2c,0x01,0xd4,0xfb,0x6d,0xa7,0xb5,0x09,0x09,0x96,0x05,0x08,0x67,0x5a,0x02,0x25,0xfe,0x34,0x04,0x3a,0x00,0xff,0xff,0x00,0xaa,0xfe,0xd7,0x05,0x9b,0x05,0xb0,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0x0f,0x04,0x60,0xff,0xd9,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xd9,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8f, -0xfe,0xd7,0x04,0x9f,0x04,0x3a,0x02,0x26,0x01,0xe9,0x00,0x00,0x01,0x07,0x00,0x0f,0x03,0x64,0xff,0xd9,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xd9,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x93,0xfe,0x99,0x04,0xcc,0x05,0xb0,0x02,0x26,0x01,0xd3,0x00,0x00,0x00,0x07,0x03,0xe0,0x03,0x15,0x00,0x00,0xff,0xff,0x00,0x7f,0xfe,0x99,0x03,0xdc, -0x04,0x3b,0x02,0x26,0x01,0xf3,0x00,0x00,0x00,0x07,0x03,0xe0,0x02,0x24,0x00,0x00,0xff,0xff,0x00,0xaa,0xfe,0xd7,0x06,0xec,0x05,0xb0,0x02,0x26,0x00,0x30,0x00,0x00,0x01,0x07,0x00,0x0f,0x05,0xb1,0xff,0xd9,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xd9,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x99,0xfe,0xd7,0x05,0xf9,0x04,0x3a,0x02,0x26, -0x01,0xe8,0x00,0x00,0x01,0x07,0x00,0x0f,0x04,0xbe,0xff,0xd9,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xd9,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xbe,0x00,0x00,0x01,0x84,0x05,0xb0,0x02,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x07,0x4e,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x01,0x54,0x00,0xdc,0x01,0x9e, -0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x9e,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x06,0x0c,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x01,0x54,0x7f,0x5c,0x00,0x08,0xb1,0x02,0x01,0xb0,0x5c,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x07,0x0d,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x6a, -0x00,0x86,0x01,0x5d,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x05,0xcb,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x00,0x6a,0x29,0x1b,0x00,0x08,0xb1,0x02,0x02,0xb0,0x1b,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x0e,0x00,0x00,0x07,0x84,0x05,0xb0,0x02,0x06,0x00,0x88,0x00,0x00, -0xff,0xff,0x00,0x58,0xff,0xeb,0x06,0x9a,0x04,0x4e,0x02,0x06,0x00,0xa8,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x2b,0x07,0x4e,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x01,0x54,0x00,0xbf,0x01,0x9e,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x9e,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xe2,0x06,0x0d,0x02,0x26, -0x00,0x48,0x00,0x00,0x01,0x06,0x01,0x54,0x6f,0x5d,0x00,0x08,0xb1,0x02,0x01,0xb0,0x5d,0xb0,0x0d,0x2b,0x00,0x02,0x00,0x59,0xff,0xeb,0x05,0x21,0x05,0xc5,0x00,0x16,0x00,0x1f,0x00,0x54,0x40,0x16,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x11,0x0f,0x0c,0x0b,0x08,0x06,0x00,0x16,0x01,0x16,0x08,0x07,0x2b,0x4b,0xb0,0x90, -0x50,0x58,0x40,0x31,0x14,0x01,0x03,0x00,0x13,0x0d,0x02,0x02,0x03,0x02,0x15,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x00,0x00,0x1d,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x06,0x01,0x00,0x00,0x0d,0x16,0x07,0x01,0x04,0x04,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x0e,0x01,0x17,0x06,0xb0,0x2f,0x2b,0x01,0x20,0x00,0x11,0x15,0x10,0x00,0x23, -0x20,0x00,0x11,0x35,0x21,0x37,0x36,0x02,0x23,0x22,0x06,0x07,0x27,0x3e,0x01,0x13,0x32,0x12,0x37,0x27,0x21,0x15,0x14,0x16,0x02,0x66,0x01,0x4a,0x01,0x71,0xfe,0xa2,0xfc,0xfe,0xd0,0xfe,0xc2,0x03,0xfc,0x02,0x04,0xf9,0xfc,0x6c,0x99,0x4a,0x31,0x32,0xbf,0xf0,0xaa,0xd2,0x11,0x03,0xfc,0xcd,0xc7,0x05,0xc5,0xfe,0x71,0xfe,0xba,0x31, -0xfe,0xc4,0xfe,0x68,0x01,0x61,0x01,0x38,0x6c,0x05,0xf8,0x01,0x3d,0x2f,0x25,0x8b,0x23,0x41,0xfa,0xc0,0x01,0x0d,0xd2,0x05,0x1f,0xcf,0xf6,0x00,0xff,0xff,0x00,0x81,0xff,0xec,0x04,0x02,0x04,0x4e,0x01,0x0f,0x00,0x48,0x04,0x63,0x04,0x3a,0xc0,0x01,0x00,0x09,0xb1,0x00,0x02,0xb8,0x04,0x3a,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x59, -0xff,0xeb,0x05,0x21,0x06,0xdf,0x02,0x26,0x02,0x83,0x00,0x00,0x01,0x07,0x00,0x6a,0x00,0x73,0x01,0x2f,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x2f,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x81,0xff,0xec,0x04,0x02,0x05,0xcb,0x00,0x2f,0x00,0x48,0x04,0x63,0x04,0x3a,0xc0,0x01,0x01,0x06,0x00,0x6a,0x36,0x1b,0x00,0x11,0xb1,0x00,0x02,0xb8, -0x04,0x3a,0xb0,0x0d,0x2b,0xb1,0x02,0x02,0xb0,0x1b,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x06,0x7c,0x07,0x0d,0x02,0x26,0x01,0xc2,0x00,0x00,0x01,0x07,0x00,0x6a,0x01,0x4a,0x01,0x5d,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x05,0xa6,0x05,0xb6,0x02,0x26, -0x01,0xe2,0x00,0x00,0x01,0x07,0x00,0x6a,0x00,0xde,0x00,0x06,0x00,0x08,0xb1,0x01,0x02,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x78,0xff,0xeb,0x04,0xdf,0x07,0x22,0x02,0x26,0x01,0xc3,0x00,0x00,0x01,0x07,0x00,0x6a,0x00,0xa9,0x01,0x72,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x72,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x64, -0xff,0xed,0x03,0xec,0x05,0xca,0x02,0x26,0x01,0xe3,0x00,0x00,0x01,0x06,0x00,0x6a,0x25,0x1a,0x00,0x08,0xb1,0x01,0x02,0xb0,0x1a,0xb0,0x0d,0x2b,0x00,0x01,0x00,0x69,0xff,0xeb,0x04,0x2d,0x05,0xb0,0x00,0x1c,0x00,0x57,0x40,0x10,0x1b,0x19,0x15,0x13,0x11,0x10,0x0d,0x0b,0x07,0x06,0x04,0x03,0x02,0x01,0x07,0x07,0x2b,0x4b,0xb0,0x90, -0x50,0x58,0x40,0x3a,0x05,0x01,0x00,0x01,0x1c,0x01,0x02,0x00,0x0f,0x01,0x05,0x04,0x03,0x15,0x00,0x04,0x06,0x05,0x06,0x04,0x05,0x29,0x00,0x02,0x00,0x06,0x04,0x02,0x06,0x01,0x00,0x1d,0x00,0x00,0x00,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x07,0x16,0x00,0x05,0x05,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17,0x07,0xb0,0x2f, -0x2b,0x01,0x27,0x21,0x35,0x21,0x17,0x01,0x1e,0x01,0x15,0x14,0x04,0x23,0x22,0x24,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x2b,0x01,0x35,0x03,0x0d,0x02,0xfd,0x89,0x03,0x65,0x01,0xfe,0x67,0xdb,0xf1,0xfe,0xee,0xdd,0xc0,0xfe,0xeb,0x05,0x02,0xbd,0x98,0x79,0x8b,0x9f,0xa1,0xa0,0x92,0x05,0x10,0x05,0x9b,0x78,0xfe, -0x15,0x0d,0xe3,0xc7,0xc8,0xe3,0xd6,0xcd,0x06,0x72,0x9d,0x95,0x78,0x99,0x8f,0x9a,0x00,0x01,0x00,0x69,0xfe,0x75,0x04,0x2d,0x04,0x3a,0x00,0x1c,0x00,0x90,0x40,0x0e,0x1b,0x19,0x15,0x13,0x11,0x10,0x0d,0x0b,0x04,0x03,0x02,0x01,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x30,0x58,0x40,0x38,0x05,0x01,0x00,0x01,0x1c,0x06, -0x02,0x05,0x00,0x0f,0x01,0x04,0x03,0x03,0x15,0x00,0x05,0x00,0x03,0x00,0x05,0x03,0x29,0x00,0x03,0x04,0x00,0x03,0x04,0x27,0x00,0x00,0x00,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x0a,0x16,0x00,0x04,0x04,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0c,0x02,0x17,0x07,0x1b,0x40,0x35,0x05,0x01,0x00,0x01,0x1c,0x06,0x02,0x05,0x00,0x0f,0x01, -0x04,0x03,0x03,0x15,0x00,0x05,0x00,0x03,0x00,0x05,0x03,0x29,0x00,0x03,0x04,0x00,0x03,0x04,0x27,0x00,0x04,0x00,0x02,0x04,0x02,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x0a,0x00,0x17,0x06,0x59,0xb0,0x2f,0x2b,0x01,0x27,0x21,0x35,0x21,0x17,0x01,0x1e,0x01,0x15,0x14,0x04,0x23,0x22,0x24,0x3f,0x01,0x33, -0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x2b,0x01,0x35,0x02,0xf8,0x03,0xfd,0x9f,0x03,0x65,0x01,0xfe,0x74,0xd6,0xe9,0xfe,0xed,0xdc,0xbf,0xfe,0xea,0x05,0x02,0xbd,0x98,0x79,0x8b,0x9f,0xa2,0xa0,0x93,0x03,0x99,0x05,0x9c,0x78,0xfe,0x13,0x10,0xe2,0xc4,0xc6,0xe4,0xd7,0xcb,0x06,0x70,0x9d,0x95,0x76,0x9a,0x8e,0x9a,0x00,0x00,0x00, -0xff,0xff,0x00,0xad,0x00,0x00,0x04,0xfa,0x06,0xfa,0x02,0x26,0x01,0xc4,0x00,0x00,0x01,0x07,0x00,0x71,0x00,0xf8,0x01,0x4a,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x4a,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x03,0xfc,0x05,0xa4,0x02,0x26,0x01,0xe4,0x00,0x00,0x01,0x06,0x00,0x71,0x67,0xf4,0x00,0x09,0xb1,0x01,0x01,0xb8, -0xff,0xf4,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0xad,0x00,0x00,0x04,0xfa,0x07,0x0d,0x02,0x26,0x01,0xc4,0x00,0x00,0x01,0x07,0x00,0x6a,0x00,0xd4,0x01,0x5d,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x03,0xfc,0x05,0xb6,0x02,0x26,0x01,0xe4,0x00,0x00,0x01,0x06,0x00,0x6a, -0x43,0x06,0x00,0x08,0xb1,0x01,0x02,0xb0,0x06,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x02,0x07,0x22,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x6a,0x00,0xb8,0x01,0x72,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x72,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x2a,0x05,0xcb,0x02,0x26,0x00,0x52,0x00,0x00, -0x01,0x06,0x00,0x6a,0x44,0x1b,0x00,0x08,0xb1,0x02,0x02,0xb0,0x1b,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x02,0x05,0xc5,0x02,0x06,0x02,0x1e,0x00,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x2a,0x04,0x4e,0x02,0x06,0x02,0x1f,0x00,0x00,0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x02,0x07,0x08,0x02,0x26,0x02,0x1e,0x00,0x00, -0x01,0x07,0x00,0x6a,0x00,0xce,0x01,0x58,0x00,0x09,0xb1,0x03,0x02,0xb8,0x01,0x58,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x2a,0x05,0xe7,0x02,0x26,0x02,0x1f,0x00,0x00,0x01,0x06,0x00,0x6a,0x2d,0x37,0x00,0x08,0xb1,0x03,0x02,0xb0,0x37,0xb0,0x0d,0x2b,0xff,0xff,0x00,0xb5,0xff,0xec,0x04,0xff,0x07,0x23,0x02,0x26, -0x01,0xd9,0x00,0x00,0x01,0x07,0x00,0x6a,0x00,0xb2,0x01,0x73,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x73,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x63,0xff,0xeb,0x03,0xe3,0x05,0xcb,0x02,0x26,0x01,0xf9,0x00,0x00,0x01,0x06,0x00,0x6a,0x21,0x1b,0x00,0x08,0xb1,0x01,0x02,0xb0,0x1b,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x42,0xff,0xeb,0x04,0xc8, -0x06,0xfa,0x02,0x26,0x01,0xcf,0x00,0x00,0x01,0x07,0x00,0x71,0x00,0xa8,0x01,0x4a,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x4a,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x1a,0xfe,0x4b,0x03,0xe8,0x05,0xa4,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x06,0x00,0x71,0x24,0xf4,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf4,0xb0,0x0d,0x2b,0x00,0x00,0x00, -0xff,0xff,0x00,0x42,0xff,0xeb,0x04,0xc8,0x07,0x0d,0x02,0x26,0x01,0xcf,0x00,0x00,0x01,0x07,0x00,0x6a,0x00,0x84,0x01,0x5d,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x1a,0xfe,0x4b,0x03,0xe8,0x05,0xb6,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x06,0x00,0x6a,0x00,0x06,0x00,0x08,0xb1,0x01,0x02,0xb0, -0x06,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x42,0xff,0xeb,0x04,0xc8,0x07,0x4b,0x02,0x26,0x01,0xcf,0x00,0x00,0x01,0x07,0x01,0x59,0x01,0x36,0x01,0x5d,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x1a,0xfe,0x4b,0x03,0xfc,0x05,0xf4,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x01,0x59,0x00,0xb2,0x00,0x06, -0x00,0x08,0xb1,0x01,0x02,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x93,0x00,0x00,0x04,0xcc,0x07,0x0d,0x02,0x26,0x01,0xd3,0x00,0x00,0x01,0x07,0x00,0x6a,0x00,0xae,0x01,0x5d,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x7f,0x00,0x00,0x03,0xdc,0x05,0xb6,0x02,0x26,0x01,0xf3,0x00,0x00, -0x01,0x06,0x00,0x6a,0x26,0x06,0x00,0x08,0xb1,0x01,0x02,0xb0,0x06,0xb0,0x0d,0x2b,0xff,0xff,0x00,0xa3,0xfe,0x99,0x04,0x20,0x05,0xb0,0x02,0x26,0x01,0x6e,0x00,0x00,0x00,0x07,0x03,0xe0,0x00,0xd4,0x00,0x00,0xff,0xff,0x00,0x8f,0xfe,0x99,0x03,0x3f,0x04,0x3a,0x02,0x26,0x01,0xdf,0x00,0x00,0x00,0x07,0x03,0xe0,0x00,0x9f,0x00,0x00, -0xff,0xff,0x00,0xa3,0x00,0x00,0x06,0x32,0x07,0x0d,0x00,0x26,0x01,0xd8,0x00,0x00,0x00,0x27,0x00,0x2c,0x04,0xae,0x00,0x00,0x01,0x07,0x00,0x6a,0x01,0x69,0x01,0x5d,0x00,0x09,0xb1,0x03,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xad,0x00,0x00,0x05,0x98,0x05,0xb6,0x00,0x26,0x01,0xf8,0x14,0x00,0x00,0x27,0x00,0xf3, -0x04,0x3a,0x00,0x00,0x01,0x07,0x00,0x6a,0x01,0x22,0x00,0x06,0x00,0x08,0xb1,0x03,0x02,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x40,0xfe,0x4b,0x04,0x7d,0x05,0xb0,0x00,0x26,0x01,0x6e,0x5d,0x00,0x00,0x26,0x03,0x80,0xae,0x3f,0x01,0x07,0x03,0xe2,0x01,0x06,0x00,0x00,0x00,0x08,0xb1,0x01,0x01,0xb0,0x3f,0xb0,0x0d,0x2b, -0xff,0xff,0x00,0x41,0xfe,0x4b,0x03,0xa1,0x04,0x3a,0x00,0x26,0x01,0xdf,0x62,0x00,0x00,0x26,0x03,0x80,0xaf,0x90,0x01,0x07,0x03,0xe2,0x00,0xf6,0x00,0x00,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0x90,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x42,0xfe,0x4b,0x05,0x23,0x05,0xb0,0x02,0x26,0x00,0x3b,0x00,0x00,0x00,0x07,0x03,0xe2, -0x03,0xb1,0x00,0x00,0xff,0xff,0x00,0x2e,0xfe,0x4b,0x04,0x3e,0x04,0x3a,0x02,0x26,0x00,0x5b,0x00,0x00,0x00,0x07,0x03,0xe2,0x02,0xcc,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x04,0xd6,0x05,0xb0,0x00,0x11,0x00,0x43,0x40,0x12,0x11,0x10,0x0f,0x0e,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x03,0x02,0x01,0x00,0x08,0x07,0x2b,0x4b, -0xb0,0x90,0x50,0x58,0x40,0x24,0x0d,0x01,0x04,0x05,0x04,0x01,0x01,0x00,0x02,0x15,0x07,0x01,0x04,0x03,0x01,0x00,0x01,0x04,0x00,0x00,0x00,0x1d,0x06,0x01,0x05,0x05,0x07,0x16,0x02,0x01,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x23,0x01,0x23,0x09,0x01,0x23,0x01,0x23,0x35,0x33,0x01,0x33,0x09,0x01,0x33,0x01,0x33,0x03, -0xd5,0xac,0x01,0xad,0xeb,0xfe,0xa3,0xfe,0xa2,0xee,0x01,0xad,0x9b,0x8d,0xfe,0x6b,0xec,0x01,0x52,0x01,0x54,0xee,0xfe,0x6a,0x9f,0x02,0x9b,0xfd,0x65,0x02,0x42,0xfd,0xbe,0x02,0x9b,0x9b,0x02,0x7a,0xfd,0xc8,0x02,0x38,0xfd,0x86,0x00,0x01,0x00,0x2e,0x00,0x00,0x03,0xd4,0x04,0x3a,0x00,0x11,0x00,0x43,0x40,0x12,0x11,0x10,0x0f,0x0e, -0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x03,0x02,0x01,0x00,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x24,0x0d,0x01,0x04,0x05,0x04,0x01,0x01,0x00,0x02,0x15,0x07,0x01,0x04,0x03,0x01,0x00,0x01,0x04,0x00,0x00,0x02,0x1d,0x06,0x01,0x05,0x05,0x0a,0x16,0x02,0x01,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x23,0x01, -0x23,0x0b,0x01,0x23,0x01,0x23,0x35,0x33,0x01,0x33,0x1b,0x01,0x33,0x01,0x33,0x03,0x38,0xa0,0x01,0x3c,0xe2,0xf0,0xf0,0xe4,0x01,0x3b,0xb2,0xa7,0xfe,0xda,0xe3,0xe3,0xe6,0xe6,0xfe,0xd9,0x95,0x01,0xde,0xfe,0x22,0x01,0x99,0xfe,0x67,0x01,0xde,0x9b,0x01,0xc1,0xfe,0x71,0x01,0x8f,0xfe,0x3f,0x00,0x02,0x00,0x5b,0x00,0x00,0x04,0x72, -0x05,0xb0,0x00,0x0a,0x00,0x13,0x00,0x40,0x40,0x14,0x0b,0x0b,0x00,0x00,0x0b,0x13,0x0b,0x12,0x0e,0x0c,0x00,0x0a,0x00,0x09,0x05,0x03,0x02,0x01,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1f,0x05,0x01,0x02,0x00,0x03,0x04,0x02,0x03,0x01,0x00,0x1d,0x00,0x00,0x00,0x07,0x16,0x06,0x01,0x04,0x04,0x01,0x01,0x02,0x1b,0x00,0x01, -0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x11,0x33,0x11,0x21,0x22,0x24,0x35,0x34,0x24,0x33,0x01,0x11,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x03,0xad,0xc5,0xfd,0xd4,0xe9,0xfe,0xfe,0x01,0x01,0xea,0x01,0x67,0xfe,0x99,0x94,0x92,0x92,0x94,0x03,0x70,0x02,0x40,0xfa,0x50,0xf6,0xc6,0xc5,0xef,0xfd,0x2a,0x02,0x3b,0xa0,0x77,0x7b, -0xa9,0x00,0x00,0x00,0xff,0xff,0x00,0x62,0xff,0xeb,0x03,0xf5,0x06,0x18,0x02,0x06,0x00,0x47,0x00,0x00,0x00,0x02,0x00,0x5b,0x00,0x00,0x06,0x6e,0x05,0xb0,0x00,0x18,0x00,0x21,0x00,0x4d,0x40,0x18,0x19,0x19,0x01,0x00,0x19,0x21,0x19,0x20,0x1c,0x1a,0x12,0x11,0x0c,0x0a,0x09,0x08,0x07,0x05,0x00,0x18,0x01,0x17,0x09,0x07,0x2b,0x4b, -0xb0,0x90,0x50,0x58,0x40,0x28,0x00,0x04,0x01,0x05,0x01,0x04,0x05,0x29,0x00,0x01,0x00,0x05,0x03,0x01,0x05,0x01,0x00,0x1d,0x00,0x02,0x02,0x07,0x16,0x08,0x06,0x02,0x03,0x03,0x00,0x01,0x02,0x1b,0x07,0x01,0x00,0x00,0x08,0x00,0x17,0x05,0xb0,0x2f,0x2b,0x21,0x22,0x24,0x35,0x34,0x24,0x33,0x21,0x11,0x33,0x11,0x37,0x3e,0x01,0x37, -0x36,0x26,0x27,0x33,0x1e,0x01,0x07,0x0e,0x01,0x23,0x25,0x11,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x02,0x46,0xe9,0xfe,0xfe,0x01,0x01,0xea,0x01,0x67,0xc5,0x53,0x6a,0x74,0x04,0x01,0x1f,0x1e,0xbe,0x21,0x24,0x02,0x04,0xf3,0xb0,0xfe,0xe8,0xfe,0x99,0x94,0x92,0x92,0x94,0xf6,0xc6,0xc5,0xef,0x02,0x40,0xfa,0xe9,0x01,0x01,0x8d,0x7e, -0x4d,0xa7,0x4f,0x64,0x97,0x48,0xcc,0xda,0x9a,0x02,0x3b,0xa0,0x77,0x7b,0xa9,0x00,0x00,0x02,0x00,0x62,0xff,0xe9,0x06,0x74,0x06,0x18,0x00,0x22,0x00,0x33,0x00,0x53,0x40,0x12,0x2e,0x2c,0x27,0x25,0x20,0x1e,0x1a,0x18,0x13,0x12,0x0d,0x0b,0x08,0x07,0x04,0x02,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x34,0x06,0x01,0x06,0x00, -0x23,0x1c,0x02,0x02,0x03,0x02,0x15,0x00,0x03,0x06,0x02,0x06,0x03,0x02,0x29,0x00,0x01,0x01,0x09,0x16,0x00,0x06,0x06,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x10,0x16,0x07,0x01,0x02,0x02,0x04,0x01,0x00,0x1b,0x05,0x01,0x04,0x04,0x0e,0x04,0x17,0x07,0xb0,0x2f,0x2b,0x13,0x10,0x12,0x33,0x32,0x16,0x17,0x11,0x33,0x11,0x06,0x16,0x33, -0x3e,0x01,0x37,0x36,0x26,0x27,0x37,0x1e,0x01,0x07,0x02,0x00,0x23,0x06,0x26,0x27,0x0e,0x01,0x23,0x22,0x02,0x35,0x01,0x2e,0x01,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x2e,0x01,0x35,0x62,0xdf,0xc9,0x59,0x8c,0x34,0xc5,0x02,0x5c,0x4d,0x86,0x94,0x04,0x01,0x1f,0x1e,0xbe,0x21,0x24,0x02,0x04,0xfe,0xec,0xcb,0x78, -0xa3,0x29,0x35,0xa1,0x6d,0xc6,0xe0,0x02,0xc1,0x27,0x72,0x4e,0x8e,0x87,0x86,0x8d,0x54,0x74,0x27,0x03,0x03,0x02,0x09,0x01,0x05,0x01,0x40,0x3e,0x3b,0x02,0x43,0xfb,0x41,0x5f,0x75,0x01,0xd2,0xb9,0x61,0xcb,0x66,0x01,0x7a,0xbd,0x5c,0xfe,0xf6,0xfe,0xe4,0x02,0x55,0x5d,0x57,0x59,0x01,0x1f,0xea,0x01,0x3d,0x3a,0x43,0xea,0xbb,0x15, -0xa4,0xc5,0x49,0x42,0x0f,0x22,0x12,0x00,0x00,0x01,0x00,0x36,0xff,0xe8,0x05,0xd3,0x05,0xb0,0x00,0x2c,0x00,0x4f,0x40,0x10,0x2a,0x28,0x23,0x22,0x1d,0x1b,0x10,0x0e,0x0d,0x0b,0x07,0x05,0x04,0x02,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x32,0x15,0x01,0x00,0x01,0x01,0x15,0x00,0x05,0x02,0x01,0x02,0x05,0x01,0x29,0x00,0x01, -0x00,0x00,0x04,0x01,0x00,0x01,0x00,0x1d,0x00,0x02,0x02,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x07,0x16,0x00,0x04,0x04,0x06,0x01,0x00,0x1b,0x00,0x06,0x06,0x0e,0x06,0x17,0x07,0xb0,0x2f,0x2b,0x01,0x34,0x26,0x2b,0x01,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x01,0x1d,0x01,0x06, -0x16,0x33,0x3e,0x01,0x37,0x36,0x26,0x27,0x33,0x1e,0x01,0x07,0x0a,0x01,0x23,0x06,0x26,0x27,0x02,0xbf,0x89,0x74,0xbf,0x88,0xa6,0x93,0x8f,0x98,0xfe,0x99,0x01,0x67,0xef,0xfd,0x75,0x6f,0x76,0x69,0x01,0x4f,0x43,0x74,0x80,0x04,0x01,0x1f,0x1e,0xbe,0x22,0x22,0x01,0x04,0xfe,0xbb,0xa0,0xae,0x08,0x01,0x72,0x76,0x91,0x9b,0x7e,0x83, -0x79,0x87,0x9b,0xd4,0xc9,0x71,0xa5,0x31,0x28,0xb0,0x80,0x44,0x4c,0x5f,0x01,0xd4,0xb7,0x61,0xcc,0x66,0x86,0xb3,0x5a,0xfe,0xf7,0xfe,0xe3,0x03,0x9d,0xab,0x00,0x00,0x00,0x01,0x00,0x31,0xff,0xe3,0x04,0xeb,0x04,0x3a,0x00,0x2d,0x00,0x54,0x40,0x10,0x24,0x22,0x21,0x1f,0x1b,0x19,0x18,0x16,0x11,0x0f,0x0a,0x09,0x04,0x02,0x07,0x07, -0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x37,0x29,0x01,0x03,0x04,0x2d,0x00,0x02,0x00,0x03,0x02,0x15,0x00,0x01,0x05,0x04,0x05,0x01,0x04,0x29,0x00,0x04,0x00,0x03,0x00,0x04,0x03,0x01,0x00,0x1d,0x00,0x05,0x05,0x06,0x01,0x00,0x1b,0x00,0x06,0x06,0x0a,0x16,0x00,0x00,0x00,0x02,0x01,0x02,0x1b,0x00,0x02,0x02,0x0e,0x02,0x17,0x07,0xb0, -0x2f,0x2b,0x25,0x06,0x16,0x33,0x3e,0x01,0x37,0x36,0x26,0x27,0x33,0x1e,0x01,0x07,0x0e,0x01,0x23,0x06,0x26,0x27,0x35,0x34,0x26,0x2b,0x01,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x27,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x01,0x1d,0x01,0x02,0xec,0x01,0x27,0x2f,0x6a,0x75,0x04,0x01,0x20,0x1e,0xbe,0x22,0x24,0x02,0x05, -0xf2,0xb1,0x8a,0x8a,0x06,0x6a,0x62,0xd3,0x02,0xb8,0x77,0x71,0x72,0x77,0xfe,0xfa,0x06,0x01,0x0c,0xce,0xe2,0x60,0x5d,0x63,0x59,0xd5,0x2a,0x2c,0x02,0x99,0x89,0x4c,0xa4,0x4f,0x66,0x92,0x47,0xd7,0xe6,0x03,0x72,0x81,0x4b,0x47,0x4f,0x9a,0x53,0x4d,0x51,0x5f,0x99,0xaa,0x98,0x51,0x72,0x24,0x1c,0x7a,0x59,0x4d,0x00,0x02,0x00,0x50, -0xfe,0xfc,0x03,0xd1,0x05,0xb0,0x00,0x21,0x00,0x27,0x00,0x96,0x40,0x14,0x00,0x00,0x27,0x26,0x24,0x23,0x00,0x21,0x00,0x20,0x1a,0x19,0x0c,0x0a,0x09,0x07,0x03,0x01,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x0a,0x58,0x40,0x37,0x11,0x01,0x04,0x00,0x25,0x22,0x18,0x03,0x03,0x06,0x02,0x15,0x00,0x05,0x03,0x03,0x05,0x20, -0x00,0x00,0x07,0x01,0x04,0x06,0x00,0x04,0x01,0x00,0x1d,0x00,0x01,0x01,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x07,0x16,0x00,0x06,0x06,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x08,0x03,0x17,0x07,0x1b,0x40,0x36,0x11,0x01,0x04,0x00,0x25,0x22,0x18,0x03,0x03,0x06,0x02,0x15,0x00,0x05,0x03,0x05,0x2c,0x00,0x00,0x07,0x01,0x04,0x06,0x00, -0x04,0x01,0x00,0x1d,0x00,0x01,0x01,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x07,0x16,0x00,0x06,0x06,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x08,0x03,0x17,0x07,0x59,0xb0,0x2f,0x2b,0x13,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x01,0x1d,0x01,0x14,0x16,0x17,0x15,0x23,0x2e,0x01,0x3d, -0x01,0x34,0x26,0x23,0x01,0x03,0x23,0x13,0x35,0x33,0xab,0xa2,0xa7,0x95,0x8f,0x98,0xfe,0xee,0x01,0x12,0xef,0xfc,0x75,0x6f,0x77,0x69,0x1f,0x25,0xcb,0x29,0x15,0x89,0x74,0x02,0x4a,0x96,0x75,0x46,0xc5,0x02,0x78,0x9a,0x7f,0x82,0x7a,0x88,0x9b,0xd4,0xcb,0x70,0xa6,0x30,0x28,0xb0,0x80,0x88,0x44,0x6c,0x22,0x19,0x23,0x83,0x47,0x84, -0x76,0x91,0xfd,0xb6,0xfe,0xce,0x01,0x3c,0xa3,0x00,0x00,0x00,0x00,0x02,0x00,0x7b,0xfe,0xe8,0x03,0xc1,0x04,0x3a,0x00,0x21,0x00,0x27,0x00,0x96,0x40,0x14,0x00,0x00,0x27,0x26,0x24,0x23,0x00,0x21,0x00,0x20,0x1a,0x19,0x0c,0x0a,0x09,0x07,0x03,0x01,0x08,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x09,0x58,0x40,0x37,0x11,0x01, -0x04,0x00,0x25,0x22,0x18,0x03,0x03,0x06,0x02,0x15,0x00,0x05,0x03,0x03,0x05,0x20,0x00,0x00,0x07,0x01,0x04,0x06,0x00,0x04,0x01,0x00,0x1d,0x00,0x01,0x01,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0a,0x16,0x00,0x06,0x06,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x08,0x03,0x17,0x07,0x1b,0x40,0x36,0x11,0x01,0x04,0x00,0x25,0x22,0x18,0x03, -0x03,0x06,0x02,0x15,0x00,0x05,0x03,0x05,0x2c,0x00,0x00,0x07,0x01,0x04,0x06,0x00,0x04,0x01,0x00,0x1d,0x00,0x01,0x01,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0a,0x16,0x00,0x06,0x06,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x08,0x03,0x17,0x07,0x59,0xb0,0x2f,0x2b,0x13,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16, -0x15,0x14,0x06,0x07,0x1e,0x01,0x1d,0x01,0x14,0x16,0x17,0x15,0x23,0x2e,0x01,0x3d,0x01,0x34,0x26,0x23,0x01,0x03,0x23,0x13,0x35,0x33,0xc1,0xd2,0x78,0x70,0x71,0x77,0xfe,0xe8,0x01,0x18,0xcd,0xe1,0x61,0x5e,0x66,0x59,0x1d,0x22,0xcb,0x25,0x14,0x6a,0x62,0x02,0x11,0x96,0x75,0x46,0xc5,0x01,0xb7,0x9a,0x53,0x4e,0x51,0x5e,0x99,0xa9, -0x99,0x51,0x74,0x24,0x1d,0x84,0x61,0x61,0x2d,0x56,0x16,0x13,0x17,0x63,0x33,0x5f,0x50,0x5b,0xfe,0x63,0xfe,0xce,0x01,0x3c,0xa3,0x00,0x00,0x00,0x00,0x01,0x00,0x45,0xff,0xe8,0x07,0x75,0x05,0xb0,0x00,0x21,0x00,0xaf,0x40,0x10,0x1f,0x1d,0x18,0x17,0x12,0x10,0x0d,0x0c,0x09,0x07,0x06,0x04,0x01,0x00,0x07,0x07,0x2b,0x4b,0xb0,0x90, -0x50,0x58,0x4b,0xb0,0x16,0x58,0x40,0x24,0x00,0x05,0x00,0x02,0x00,0x05,0x02,0x29,0x00,0x00,0x00,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x07,0x16,0x04,0x01,0x02,0x02,0x01,0x01,0x00,0x1b,0x06,0x01,0x01,0x01,0x08,0x01,0x17,0x05,0x1b,0x4b,0xb0,0x17,0x58,0x40,0x30,0x00,0x05,0x00,0x02,0x00,0x05,0x02,0x29,0x00,0x00,0x00,0x03,0x00, -0x00,0x1b,0x00,0x03,0x03,0x07,0x16,0x04,0x01,0x02,0x02,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x08,0x16,0x04,0x01,0x02,0x02,0x06,0x01,0x00,0x1b,0x00,0x06,0x06,0x0e,0x06,0x17,0x07,0x1b,0x40,0x2e,0x00,0x05,0x00,0x02,0x00,0x05,0x02,0x29,0x00,0x00,0x00,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x07,0x16,0x00,0x02,0x02,0x01,0x01,0x00, -0x1b,0x00,0x01,0x01,0x08,0x16,0x00,0x04,0x04,0x06,0x01,0x00,0x1b,0x00,0x06,0x06,0x0e,0x06,0x17,0x07,0x59,0x59,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x10,0x02,0x2b,0x01,0x35,0x33,0x32,0x12,0x19,0x01,0x21,0x11,0x06,0x16,0x33,0x3e,0x01,0x37,0x36,0x26,0x27,0x37,0x1e,0x01,0x07,0x02,0x00,0x23,0x06,0x26,0x27,0x04,0x24,0xfe,0x28,0xd8, -0xfa,0x35,0x29,0x95,0x85,0x03,0x61,0x01,0x5b,0x4d,0x87,0x93,0x04,0x01,0x1f,0x1e,0xbe,0x21,0x24,0x02,0x04,0xfe,0xec,0xcb,0xaa,0xba,0x08,0x05,0x15,0xfd,0xeb,0xfe,0x72,0xfe,0x8e,0x9a,0x01,0x20,0x01,0x46,0x02,0xb0,0xfb,0xa9,0x5f,0x75,0x01,0xd2,0xb9,0x61,0xcb,0x66,0x01,0x7a,0xbd,0x5c,0xfe,0xf6,0xfe,0xe4,0x03,0xb1,0xc0,0x00, -0x00,0x01,0x00,0x41,0xff,0xe8,0x06,0x41,0x04,0x3a,0x00,0x21,0x00,0x83,0x40,0x10,0x1f,0x1d,0x18,0x17,0x12,0x10,0x0d,0x0c,0x09,0x07,0x06,0x04,0x01,0x00,0x07,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x16,0x58,0x40,0x30,0x00,0x05,0x00,0x02,0x00,0x05,0x02,0x29,0x00,0x00,0x00,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x0a,0x16, -0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x06,0x01,0x01,0x01,0x08,0x16,0x00,0x04,0x04,0x01,0x01,0x02,0x1b,0x06,0x01,0x01,0x01,0x08,0x01,0x17,0x07,0x1b,0x40,0x2e,0x00,0x05,0x00,0x02,0x00,0x05,0x02,0x29,0x00,0x00,0x00,0x03,0x00,0x00,0x1b,0x00,0x03,0x03,0x0a,0x16,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x08,0x16,0x00, -0x04,0x04,0x06,0x01,0x02,0x1b,0x00,0x06,0x06,0x0e,0x06,0x17,0x07,0x59,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x10,0x02,0x2b,0x01,0x3f,0x01,0x32,0x36,0x35,0x11,0x21,0x11,0x06,0x16,0x33,0x3e,0x01,0x37,0x36,0x26,0x27,0x33,0x1e,0x01,0x07,0x06,0x02,0x23,0x06,0x26,0x27,0x03,0x2d,0xfe,0xcd,0xb2,0xce,0x39,0x04,0x29,0x6b,0x5c,0x02,0xbd, -0x01,0x5a,0x4c,0x6b,0x74,0x04,0x01,0x20,0x1e,0xbf,0x21,0x24,0x02,0x04,0xf3,0xb1,0xa8,0xba,0x08,0x03,0x9e,0xfe,0xd0,0xfe,0xc3,0xfe,0xcf,0xa8,0x01,0xd4,0xf1,0x01,0xcc,0xfd,0x1f,0x5f,0x75,0x01,0xbb,0xa4,0x5c,0xc0,0x61,0x78,0xaf,0x56,0xf4,0xfe,0xfa,0x03,0xb1,0xc0,0x00,0x01,0x00,0xa9,0xff,0xe8,0x07,0x7e,0x05,0xb0,0x00,0x1d, -0x00,0x7f,0x40,0x16,0x00,0x00,0x00,0x1d,0x00,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x12,0x10,0x0b,0x0a,0x05,0x03,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x16,0x58,0x40,0x28,0x00,0x01,0x05,0x06,0x05,0x01,0x06,0x29,0x00,0x06,0x00,0x03,0x00,0x06,0x03,0x00,0x00,0x1d,0x08,0x07,0x02,0x05,0x05,0x07,0x16,0x00, -0x00,0x00,0x02,0x01,0x00,0x1b,0x04,0x01,0x02,0x02,0x0e,0x02,0x17,0x05,0x1b,0x40,0x2c,0x00,0x01,0x05,0x06,0x05,0x01,0x06,0x29,0x00,0x06,0x00,0x03,0x00,0x06,0x03,0x00,0x00,0x1d,0x08,0x07,0x02,0x05,0x05,0x07,0x16,0x00,0x04,0x04,0x08,0x16,0x00,0x00,0x00,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0e,0x02,0x17,0x06,0x59,0xb0,0x2f, -0x2b,0x01,0x11,0x06,0x16,0x33,0x3e,0x01,0x37,0x36,0x26,0x27,0x37,0x1e,0x01,0x07,0x02,0x00,0x23,0x06,0x26,0x27,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x04,0xf2,0x01,0x5a,0x4d,0x87,0x94,0x04,0x01,0x20,0x1e,0xbe,0x22,0x24,0x02,0x05,0xfe,0xec,0xcb,0xa9,0xba,0x08,0xfd,0x41,0xc5,0xc5,0x02,0xbf,0x05,0xb0,0xfb,0xa9,0x5f, -0x75,0x01,0xd2,0xb9,0x61,0xca,0x67,0x01,0x7c,0xbb,0x5c,0xfe,0xf6,0xfe,0xe4,0x03,0xb1,0xc0,0x01,0x2a,0xfd,0x7d,0x05,0xb0,0xfd,0x6e,0x02,0x92,0x00,0x01,0x00,0x8f,0xff,0xe8,0x06,0x55,0x04,0x3a,0x00,0x1d,0x00,0x79,0x40,0x12,0x1b,0x19,0x14,0x13,0x0e,0x0c,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x08,0x07,0x2b,0x4b, -0xb0,0x90,0x50,0x58,0x4b,0xb0,0x16,0x58,0x40,0x27,0x00,0x06,0x02,0x03,0x02,0x06,0x03,0x29,0x00,0x03,0x00,0x00,0x05,0x03,0x00,0x00,0x00,0x1d,0x04,0x01,0x02,0x02,0x0a,0x16,0x00,0x05,0x05,0x01,0x01,0x02,0x1b,0x07,0x01,0x01,0x01,0x08,0x01,0x17,0x05,0x1b,0x40,0x2b,0x00,0x06,0x02,0x03,0x02,0x06,0x03,0x29,0x00,0x03,0x00,0x00, -0x05,0x03,0x00,0x00,0x00,0x1d,0x04,0x01,0x02,0x02,0x0a,0x16,0x00,0x01,0x01,0x08,0x16,0x00,0x05,0x05,0x07,0x01,0x02,0x1b,0x00,0x07,0x07,0x0e,0x07,0x17,0x06,0x59,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x06,0x16,0x33,0x3e,0x01,0x37,0x36,0x26,0x27,0x33,0x1e,0x01,0x07,0x06,0x02,0x23,0x06,0x26, -0x27,0x03,0x40,0xfe,0x14,0xc5,0xc5,0x01,0xec,0xc5,0x01,0x5b,0x4c,0x6a,0x75,0x04,0x01,0x1f,0x1e,0xbd,0x22,0x24,0x02,0x04,0xf2,0xb2,0xa9,0xba,0x08,0x01,0xcc,0xfe,0x34,0x04,0x3a,0xfe,0x2b,0x01,0xd5,0xfd,0x1f,0x5f,0x75,0x01,0xbb,0xa4,0x5b,0xc1,0x61,0x7b,0xac,0x56,0xf4,0xfe,0xfa,0x03,0xb1,0xc0,0x00,0x00,0x00,0x01,0x00,0x76, -0xff,0xeb,0x04,0x9f,0x05,0xc5,0x00,0x21,0x00,0x4a,0x40,0x10,0x01,0x00,0x1c,0x1b,0x16,0x14,0x0f,0x0d,0x08,0x06,0x00,0x21,0x01,0x21,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2d,0x0a,0x01,0x02,0x01,0x0b,0x01,0x04,0x02,0x02,0x15,0x00,0x04,0x02,0x03,0x02,0x04,0x03,0x29,0x00,0x02,0x02,0x01,0x01,0x00,0x1b,0x00,0x01,0x01, -0x0d,0x16,0x00,0x03,0x03,0x00,0x01,0x00,0x1b,0x05,0x01,0x00,0x00,0x0e,0x00,0x17,0x06,0xb0,0x2f,0x2b,0x05,0x20,0x00,0x19,0x01,0x10,0x00,0x21,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x02,0x15,0x11,0x14,0x12,0x33,0x3e,0x01,0x37,0x36,0x26,0x27,0x33,0x1e,0x01,0x07,0x06,0x04,0x02,0xb9,0xff,0x00,0xfe,0xbd,0x01,0x43,0x01,0x00, -0x71,0xb2,0x44,0x3f,0x43,0x90,0x55,0xaf,0xcf,0xcf,0xaf,0x88,0x94,0x04,0x01,0x1b,0x18,0xbe,0x2a,0x10,0x01,0x04,0xfe,0xeb,0x15,0x01,0x5e,0x01,0x0c,0x01,0x06,0x01,0x0b,0x01,0x5f,0x2d,0x2b,0x87,0x21,0x23,0xfe,0xf6,0xc3,0xfe,0xf8,0xc6,0xfe,0xf6,0x01,0x9a,0x89,0x53,0xb5,0x61,0xc5,0x56,0x4e,0xd8,0xe6,0x00,0x00,0x01,0x00,0x62, -0xff,0xeb,0x03,0xc6,0x04,0x4e,0x00,0x21,0x00,0x4a,0x40,0x10,0x01,0x00,0x1c,0x1a,0x15,0x13,0x0e,0x0c,0x07,0x06,0x00,0x21,0x01,0x21,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2d,0x17,0x01,0x04,0x03,0x18,0x01,0x01,0x04,0x02,0x15,0x00,0x01,0x04,0x00,0x04,0x01,0x00,0x29,0x00,0x04,0x04,0x03,0x01,0x00,0x1b,0x00,0x03,0x03, -0x10,0x16,0x05,0x01,0x00,0x00,0x02,0x01,0x02,0x1b,0x00,0x02,0x02,0x0e,0x02,0x17,0x06,0xb0,0x2f,0x2b,0x25,0x3e,0x01,0x37,0x34,0x26,0x27,0x33,0x1e,0x01,0x15,0x0e,0x01,0x23,0x22,0x00,0x3d,0x01,0x34,0x12,0x33,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x02,0x51,0x5f,0x4e,0x03,0x0a,0x09,0xbd,0x0d,0x0e, -0x04,0xcc,0xa5,0xe6,0xfe,0xf7,0xff,0xdb,0x5e,0x8e,0x2f,0x2e,0x2f,0x7a,0x44,0x89,0x8c,0x95,0x85,0x01,0x53,0x54,0x3a,0x7a,0x38,0x44,0x73,0x35,0x9e,0xa4,0x01,0x3a,0xe3,0x2a,0xe2,0x01,0x3a,0x23,0x1f,0x93,0x1b,0x1f,0xe7,0x9a,0x2a,0x9e,0xe5,0x00,0x00,0x01,0x00,0x24,0xff,0xe8,0x05,0x4d,0x05,0xb0,0x00,0x19,0x00,0x3e,0x40,0x0e, -0x17,0x15,0x10,0x0f,0x0a,0x08,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x23,0x00,0x04,0x00,0x03,0x00,0x04,0x03,0x29,0x02,0x01,0x00,0x00,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x07,0x16,0x00,0x03,0x03,0x05,0x01,0x00,0x1b,0x00,0x05,0x05,0x0e,0x05,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x21,0x35,0x21, -0x15,0x21,0x11,0x06,0x16,0x33,0x3e,0x01,0x37,0x36,0x26,0x27,0x37,0x1e,0x01,0x07,0x02,0x00,0x23,0x06,0x26,0x27,0x01,0xfc,0xfe,0x28,0x04,0x80,0xfe,0x1d,0x01,0x5b,0x4c,0x87,0x95,0x04,0x01,0x20,0x1f,0xbf,0x22,0x23,0x02,0x04,0xfe,0xec,0xcc,0xa9,0xba,0x08,0x05,0x15,0x9b,0x9b,0xfc,0x44,0x5f,0x75,0x01,0xd2,0xb9,0x60,0xca,0x68, -0x01,0x7c,0xbb,0x5c,0xfe,0xf6,0xfe,0xe4,0x03,0xb1,0xc0,0x00,0x00,0x01,0x00,0x46,0xff,0xe8,0x04,0xbd,0x04,0x3a,0x00,0x19,0x00,0x3e,0x40,0x0e,0x17,0x15,0x10,0x0f,0x0a,0x08,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x23,0x00,0x04,0x00,0x03,0x00,0x04,0x03,0x29,0x02,0x01,0x00,0x00,0x01,0x00, -0x00,0x1b,0x00,0x01,0x01,0x0a,0x16,0x00,0x03,0x03,0x05,0x01,0x02,0x1b,0x00,0x05,0x05,0x0e,0x05,0x17,0x05,0xb0,0x2f,0x2b,0x01,0x21,0x35,0x21,0x15,0x21,0x11,0x06,0x16,0x33,0x3e,0x01,0x37,0x36,0x26,0x27,0x33,0x1e,0x01,0x07,0x0e,0x01,0x23,0x06,0x26,0x27,0x01,0xa8,0xfe,0x9e,0x03,0x8b,0xfe,0x9c,0x01,0x5a,0x4d,0x6a,0x75,0x04, -0x01,0x20,0x1d,0xbd,0x22,0x24,0x02,0x04,0xf3,0xb1,0xa9,0xba,0x08,0x03,0xa1,0x99,0x99,0xfd,0xb8,0x5f,0x75,0x01,0x9b,0x89,0x4c,0xa7,0x50,0x67,0x94,0x48,0xd8,0xe7,0x03,0xb1,0xc0,0x00,0x00,0x01,0x00,0x9c,0xff,0xeb,0x05,0x02,0x05,0xc5,0x00,0x2a,0x00,0x66,0x40,0x16,0x01,0x00,0x29,0x27,0x23,0x21,0x1f,0x1e,0x1b,0x19,0x0f,0x0d, -0x0a,0x09,0x07,0x05,0x00,0x2a,0x01,0x2a,0x09,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x43,0x1d,0x01,0x05,0x06,0x14,0x01,0x00,0x07,0x0b,0x01,0x01,0x02,0x03,0x15,0x00,0x05,0x06,0x07,0x06,0x05,0x07,0x29,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x29,0x00,0x07,0x08,0x01,0x00,0x02,0x07,0x00,0x01,0x00,0x1d,0x00,0x06,0x06,0x04,0x01, -0x00,0x1b,0x00,0x04,0x04,0x0d,0x16,0x00,0x01,0x01,0x03,0x01,0x00,0x1b,0x00,0x03,0x03,0x0e,0x03,0x17,0x08,0xb0,0x2f,0x2b,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x17,0x16,0x04,0x23,0x20,0x24,0x35,0x34,0x36,0x37,0x2e,0x01,0x35,0x34,0x24,0x21,0x32,0x04,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16, -0x3b,0x01,0x15,0x02,0xcd,0xb5,0xb7,0xca,0xb2,0x9c,0xc7,0xbc,0x02,0x04,0xfe,0xbc,0xe1,0xfe,0xfe,0xfe,0xc1,0x8e,0x87,0x78,0x87,0x01,0x2a,0x01,0x01,0xdf,0x01,0x32,0x05,0x01,0xbc,0xc3,0x8c,0xb2,0xb4,0xa7,0xaf,0xb8,0x02,0x98,0x81,0x85,0x78,0x95,0x9d,0x72,0x06,0xcd,0xd6,0xe3,0xc8,0x7e,0xad,0x2a,0x30,0xa6,0x65,0xc7,0xd8,0xdc, -0xb0,0x06,0x69,0x8e,0x90,0x70,0x72,0x84,0x9c,0x00,0x00,0x00,0xff,0xff,0x00,0x62,0xff,0xed,0x03,0xe9,0x04,0x4c,0x02,0x06,0x01,0x8f,0x00,0x00,0xff,0xff,0x00,0x31,0xfe,0x4b,0x05,0xbb,0x05,0xb0,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x07,0x03,0xe2,0x04,0x49,0x00,0x00,0xff,0xff,0x00,0x1a,0xfe,0x4b,0x04,0xc0,0x04,0x3a,0x02,0x26, -0x01,0xe7,0x00,0x00,0x00,0x07,0x03,0xe2,0x03,0x4e,0x00,0x00,0xff,0xff,0x00,0x2b,0xfe,0x85,0x04,0xe3,0x05,0xb0,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x07,0x01,0x5a,0x01,0x1f,0x00,0x00,0xff,0xff,0x00,0x6a,0xfe,0x85,0x03,0xf3,0x04,0x4e,0x02,0x26,0x00,0x44,0x00,0x00,0x00,0x07,0x01,0x5a,0x00,0x9c,0x00,0x00,0xff,0xff,0x00,0xaa, -0x00,0x00,0x06,0x48,0x07,0x47,0x02,0x26,0x00,0x30,0x00,0x00,0x01,0x07,0x00,0x76,0x02,0x9d,0x01,0x59,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x59,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x06,0x6f,0x06,0x05,0x02,0x26,0x00,0x50,0x00,0x00,0x01,0x07,0x00,0x76,0x02,0xb7,0x00,0x17,0x00,0x08,0xb1,0x01,0x01,0xb0,0x17,0xb0, -0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x25,0x00,0x00,0x06,0xbf,0x07,0x4b,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0xda,0x01,0x5d,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x2d,0x00,0x00,0x05,0xdc,0x05,0xf4,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x6e,0x00,0x06, -0x00,0x08,0xb1,0x01,0x01,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x25,0x00,0x00,0x06,0xbf,0x07,0x47,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0x76,0x02,0x94,0x01,0x59,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x59,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x2d,0x00,0x00,0x05,0xdc,0x05,0xf0,0x02,0x26,0x00,0x5a,0x00,0x00, -0x01,0x07,0x00,0x76,0x02,0x28,0x00,0x02,0x00,0x08,0xb1,0x01,0x01,0xb0,0x02,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x25,0x00,0x00,0x06,0xbf,0x07,0x0d,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0x6a,0x01,0x6f,0x01,0x5d,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x2d,0x00,0x00,0x05,0xdc, -0x05,0xb6,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07,0x00,0x6a,0x01,0x03,0x00,0x06,0x00,0x08,0xb1,0x01,0x02,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x2b,0xfe,0xaf,0x04,0xe3,0x05,0xb0,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x07,0x01,0x60,0x04,0xd5,0x00,0x00,0xff,0xff,0x00,0x6a,0xfe,0xaf,0x03,0xf3,0x04,0x4e,0x02,0x26, -0x00,0x44,0x00,0x00,0x00,0x07,0x01,0x60,0x04,0x52,0x00,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x07,0xc8,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x01,0x5e,0x04,0xd7,0x01,0x52,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x52,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x06,0x86,0x02,0x26,0x00,0x44,0x00,0x00, -0x01,0x07,0x01,0x5e,0x04,0x7a,0x00,0x10,0x00,0x08,0xb1,0x02,0x01,0xb0,0x10,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x05,0x0b,0x07,0xf1,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x03,0x70,0x00,0x9a,0x01,0x59,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x59,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6a,0xff,0xeb,0x04,0xae, -0x06,0xaf,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x03,0x70,0x3d,0x17,0x00,0x08,0xb1,0x02,0x02,0xb0,0x17,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xe3,0x07,0xe0,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x03,0x6f,0x00,0xab,0x01,0x48,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x48,0xb0,0x0d,0x2b,0x00,0xff,0xff,0xff,0xa3, -0xff,0xeb,0x03,0xf3,0x06,0x9e,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x03,0x6f,0x4e,0x06,0x00,0x08,0xb1,0x02,0x02,0xb0,0x06,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x08,0x05,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x03,0x6e,0x00,0xa3,0x01,0x34,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x34,0xb0,0x0d,0x2b,0x00, -0xff,0xff,0x00,0x6a,0xff,0xeb,0x04,0x77,0x06,0xc4,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x03,0x6e,0x46,0xf3,0x00,0x09,0xb1,0x02,0x02,0xb8,0xff,0xf3,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x08,0x32,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x03,0x6d,0x00,0xa7,0x01,0x36,0x00,0x09,0xb1,0x02, -0x02,0xb8,0x01,0x36,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x06,0xf1,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x03,0x6d,0x4a,0xf5,0x00,0x09,0xb1,0x02,0x02,0xb8,0xff,0xf5,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x2b,0xfe,0xaf,0x04,0xe3,0x07,0x48,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x27,0x01,0x52, -0x00,0xab,0x01,0x5d,0x01,0x07,0x01,0x60,0x04,0xd5,0x00,0x00,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6a,0xfe,0xaf,0x03,0xf3,0x06,0x06,0x02,0x26,0x00,0x44,0x00,0x00,0x00,0x26,0x01,0x52,0x4e,0x1b,0x01,0x07,0x01,0x60,0x04,0x52,0x00,0x00,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1b,0xb0,0x0d,0x2b, -0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x07,0xdf,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x03,0xbf,0x00,0xd2,0x01,0x54,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x54,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x06,0x9d,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x03,0xbf,0x75,0x12,0x00,0x08,0xb1,0x02,0x02,0xb0, -0x12,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x08,0x22,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x03,0x72,0x00,0xd6,0x01,0x7a,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x7a,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x06,0xe0,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x03,0x72,0x79,0x38,0x00,0x08, -0xb1,0x02,0x02,0xb0,0x38,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x08,0x73,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x03,0xde,0x00,0xd6,0x01,0x49,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x49,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x07,0x31,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x03,0xde, -0x79,0x07,0x00,0x08,0xb1,0x02,0x02,0xb0,0x07,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0xe3,0x08,0x25,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x03,0xdf,0x00,0xd6,0x01,0x51,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x51,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6a,0xff,0xeb,0x03,0xf3,0x06,0xe3,0x02,0x26,0x00,0x44,0x00,0x00, -0x01,0x06,0x03,0xdf,0x79,0x0f,0x00,0x08,0xb1,0x02,0x02,0xb0,0x0f,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x2b,0xfe,0xaf,0x04,0xe3,0x07,0x4e,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x27,0x01,0x54,0x00,0xdc,0x01,0x9e,0x01,0x07,0x01,0x60,0x04,0xd5,0x00,0x00,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x9e,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6a, -0xfe,0xaf,0x03,0xf3,0x06,0x0c,0x02,0x26,0x00,0x44,0x00,0x00,0x00,0x26,0x01,0x54,0x7f,0x5c,0x01,0x07,0x01,0x60,0x04,0x52,0x00,0x00,0x00,0x08,0xb1,0x02,0x01,0xb0,0x5c,0xb0,0x0d,0x2b,0xff,0xff,0x00,0xaa,0xfe,0xb9,0x04,0x2b,0x05,0xb0,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x01,0x60,0x04,0xc2,0x00,0x0a,0x00,0x08,0xb1,0x01, -0x01,0xb0,0x0a,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x61,0xfe,0xaf,0x03,0xe2,0x04,0x4e,0x02,0x26,0x00,0x48,0x00,0x00,0x00,0x07,0x01,0x60,0x04,0x92,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x2b,0x07,0xc8,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x01,0x5e,0x04,0xba,0x01,0x52,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x52, -0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xe2,0x06,0x87,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x01,0x5e,0x04,0x6a,0x00,0x11,0x00,0x08,0xb1,0x02,0x01,0xb0,0x11,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0x2b,0x07,0x54,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x01,0x58,0x00,0x89,0x01,0x61, -0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x61,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xe2,0x06,0x13,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x01,0x58,0x39,0x20,0x00,0x08,0xb1,0x02,0x01,0xb0,0x20,0xb0,0x0d,0x2b,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xee,0x07,0xf1,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x03,0x70, -0x00,0x7d,0x01,0x59,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x59,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x9e,0x06,0xb0,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x03,0x70,0x2d,0x18,0x00,0x08,0xb1,0x02,0x02,0xb0,0x18,0xb0,0x0d,0x2b,0xff,0xff,0xff,0xe3,0x00,0x00,0x04,0x2b,0x07,0xe0,0x02,0x26,0x00,0x28,0x00,0x00, -0x01,0x07,0x03,0x6f,0x00,0x8e,0x01,0x48,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x48,0xb0,0x0d,0x2b,0x00,0xff,0xff,0xff,0x93,0xff,0xeb,0x03,0xe2,0x06,0x9f,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x03,0x6f,0x3e,0x07,0x00,0x08,0xb1,0x02,0x02,0xb0,0x07,0xb0,0x0d,0x2b,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xb7,0x08,0x05,0x02,0x26, -0x00,0x28,0x00,0x00,0x01,0x07,0x03,0x6e,0x00,0x86,0x01,0x34,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x34,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x67,0x06,0xc5,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x03,0x6e,0x36,0xf4,0x00,0x09,0xb1,0x02,0x02,0xb8,0xff,0xf4,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0xaa, -0x00,0x00,0x04,0x2b,0x08,0x32,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x03,0x6d,0x00,0x8a,0x01,0x36,0x00,0x09,0xb1,0x01,0x02,0xb8,0x01,0x36,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x03,0xe2,0x06,0xf2,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x03,0x6d,0x3a,0xf6,0x00,0x09,0xb1,0x02,0x02,0xb8,0xff,0xf6,0xb0,0x0d, -0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0xaa,0xfe,0xb9,0x04,0x2b,0x07,0x48,0x02,0x26,0x00,0x28,0x00,0x00,0x00,0x27,0x01,0x52,0x00,0x8e,0x01,0x5d,0x01,0x07,0x01,0x60,0x04,0xc2,0x00,0x0a,0x00,0x11,0xb1,0x01,0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0xb1,0x02,0x01,0xb0,0x0a,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xfe,0xaf,0x03,0xe2, -0x06,0x07,0x02,0x26,0x00,0x48,0x00,0x00,0x00,0x26,0x01,0x52,0x3e,0x1c,0x01,0x07,0x01,0x60,0x04,0x92,0x00,0x00,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1c,0xb0,0x0d,0x2b,0xff,0xff,0x00,0xbe,0x00,0x00,0x02,0x03,0x07,0xc8,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x01,0x5e,0x03,0x70,0x01,0x52,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x52, -0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x01,0xde,0x06,0x72,0x02,0x26,0x00,0xf3,0x00,0x00,0x01,0x07,0x01,0x5e,0x03,0x4b,0xff,0xfc,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xfc,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0xb4,0xfe,0xb8,0x01,0x8e,0x05,0xb0,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x01,0x60,0x03,0x78,0x00,0x09, -0x00,0x08,0xb1,0x01,0x01,0xb0,0x09,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x95,0xfe,0xb9,0x01,0x6f,0x06,0x18,0x02,0x26,0x00,0x4c,0x00,0x00,0x01,0x07,0x01,0x60,0x03,0x59,0x00,0x0a,0x00,0x08,0xb1,0x02,0x01,0xb0,0x0a,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x71,0xfe,0xa7,0x05,0x02,0x05,0xc5,0x02,0x26,0x00,0x32,0x00,0x00, -0x01,0x07,0x01,0x60,0x05,0x11,0xff,0xf8,0x00,0x09,0xb1,0x02,0x01,0xb8,0xff,0xf8,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xfe,0xa6,0x04,0x2a,0x04,0x4e,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x01,0x60,0x04,0x9d,0xff,0xf7,0x00,0x09,0xb1,0x02,0x01,0xb8,0xff,0xf7,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x02, -0x07,0xdd,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x01,0x5e,0x05,0x09,0x01,0x67,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x67,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x2a,0x06,0x86,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x01,0x5e,0x04,0x95,0x00,0x10,0x00,0x08,0xb1,0x02,0x01,0xb0,0x10,0xb0,0x0d,0x2b,0x00,0x00, -0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x3d,0x08,0x06,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x03,0x70,0x00,0xcc,0x01,0x6e,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x6e,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0xc9,0x06,0xaf,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x03,0x70,0x58,0x17,0x00,0x08,0xb1,0x02,0x02,0xb0, -0x17,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x32,0xff,0xeb,0x05,0x02,0x07,0xf5,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x03,0x6f,0x00,0xdd,0x01,0x5d,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0xff,0xbe,0xff,0xeb,0x04,0x2a,0x06,0x9e,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x03,0x6f,0x69,0x06,0x00,0x08, -0xb1,0x02,0x02,0xb0,0x06,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x06,0x08,0x1a,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x03,0x6e,0x00,0xd5,0x01,0x49,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x49,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x92,0x06,0xc4,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x03,0x6e, -0x61,0xf3,0x00,0x09,0xb1,0x02,0x02,0xb8,0xff,0xf3,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x71,0xff,0xeb,0x05,0x02,0x08,0x47,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x03,0x6d,0x00,0xd9,0x01,0x4b,0x00,0x09,0xb1,0x02,0x02,0xb8,0x01,0x4b,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0x2a,0x06,0xf1,0x02,0x26, -0x00,0x52,0x00,0x00,0x01,0x06,0x03,0x6d,0x65,0xf5,0x00,0x09,0xb1,0x02,0x02,0xb8,0xff,0xf5,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x71,0xfe,0xa7,0x05,0x02,0x07,0x5d,0x02,0x26,0x00,0x32,0x00,0x00,0x00,0x27,0x01,0x52,0x00,0xdd,0x01,0x72,0x01,0x07,0x01,0x60,0x05,0x11,0xff,0xf8,0x00,0x12,0xb1,0x02,0x01,0xb8,0x01,0x72, -0xb0,0x0d,0x2b,0xb1,0x03,0x01,0xb8,0xff,0xf8,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x61,0xfe,0xa6,0x04,0x2a,0x06,0x06,0x02,0x26,0x00,0x52,0x00,0x00,0x00,0x26,0x01,0x52,0x69,0x1b,0x01,0x07,0x01,0x60,0x04,0x9d,0xff,0xf7,0x00,0x11,0xb1,0x02,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0xb1,0x03,0x01,0xb8,0xff,0xf7,0xb0,0x0d,0x2b,0x00,0x00,0x00, -0xff,0xff,0x00,0x6c,0xff,0xeb,0x05,0xff,0x07,0x35,0x02,0x26,0x01,0x43,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0xe0,0x01,0x47,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x47,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0xe8,0x06,0x05,0x02,0x26,0x01,0x44,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x69,0x00,0x17,0x00,0x08,0xb1,0x02, -0x01,0xb0,0x17,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x6c,0xff,0xeb,0x05,0xff,0x07,0x39,0x02,0x26,0x01,0x43,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x26,0x01,0x4b,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x4b,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0xe8,0x06,0x09,0x02,0x26,0x01,0x44,0x00,0x00,0x01,0x07,0x00,0x43, -0x00,0xaf,0x00,0x1b,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x6c,0xff,0xeb,0x05,0xff,0x07,0xb6,0x02,0x26,0x01,0x43,0x00,0x00,0x01,0x07,0x01,0x5e,0x05,0x0c,0x01,0x40,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x40,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61,0xff,0xeb,0x04,0xe8,0x06,0x86,0x02,0x26, -0x01,0x44,0x00,0x00,0x01,0x07,0x01,0x5e,0x04,0x95,0x00,0x10,0x00,0x08,0xb1,0x02,0x01,0xb0,0x10,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x6c,0xff,0xeb,0x05,0xff,0x07,0x42,0x02,0x26,0x01,0x43,0x00,0x00,0x01,0x07,0x01,0x58,0x00,0xdb,0x01,0x4f,0x00,0x09,0xb1,0x02,0x01,0xb8,0x01,0x4f,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x61, -0xff,0xeb,0x04,0x2a,0x06,0x12,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x01,0x58,0x64,0x1f,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1f,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x6c,0xfe,0xaf,0x05,0xff,0x06,0x75,0x02,0x26,0x01,0x43,0x00,0x00,0x00,0x07,0x01,0x60,0x05,0x0b,0x00,0x00,0xff,0xff,0x00,0x61,0xfe,0xa6,0x04,0xe8,0x04,0xc7,0x02,0x26, -0x01,0x44,0x00,0x00,0x01,0x07,0x01,0x60,0x04,0x9d,0xff,0xf7,0x00,0x09,0xb1,0x02,0x01,0xb8,0xff,0xf7,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x93,0xfe,0xa7,0x04,0xdc,0x05,0xb0,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x01,0x60,0x05,0x0f,0xff,0xf8,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf8,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8b, -0xfe,0xaf,0x03,0xfc,0x04,0x3a,0x02,0x26,0x00,0x58,0x00,0x00,0x00,0x07,0x01,0x60,0x04,0x59,0x00,0x00,0xff,0xff,0x00,0x93,0xff,0xeb,0x04,0xdc,0x07,0xc8,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x01,0x5e,0x05,0x08,0x01,0x52,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x52,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8b,0xff,0xeb,0x03,0xfc, -0x06,0x72,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x01,0x5e,0x04,0x93,0xff,0xfc,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xfc,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x93,0xff,0xeb,0x06,0x57,0x07,0x47,0x02,0x26,0x01,0x45,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0xdb,0x01,0x59,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x59,0xb0,0x0d,0x2b,0x00, -0xff,0xff,0x00,0x8b,0xff,0xeb,0x05,0x6a,0x05,0xf0,0x02,0x26,0x01,0x46,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x67,0x00,0x02,0x00,0x08,0xb1,0x01,0x01,0xb0,0x02,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x93,0xff,0xeb,0x06,0x57,0x07,0x4b,0x02,0x26,0x01,0x45,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x21,0x01,0x5d,0x00,0x09,0xb1,0x01, -0x01,0xb8,0x01,0x5d,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8b,0xff,0xeb,0x05,0x6a,0x05,0xf4,0x02,0x26,0x01,0x46,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xad,0x00,0x06,0x00,0x08,0xb1,0x01,0x01,0xb0,0x06,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x93,0xff,0xeb,0x06,0x57,0x07,0xc8,0x02,0x26,0x01,0x45,0x00,0x00,0x01,0x07,0x01,0x5e, -0x05,0x07,0x01,0x52,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x52,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8b,0xff,0xeb,0x05,0x6a,0x06,0x72,0x02,0x26,0x01,0x46,0x00,0x00,0x01,0x07,0x01,0x5e,0x04,0x93,0xff,0xfc,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xfc,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x93,0xff,0xeb,0x06,0x57,0x07,0x54,0x02,0x26, -0x01,0x45,0x00,0x00,0x01,0x07,0x01,0x58,0x00,0xd6,0x01,0x61,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x61,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8b,0xff,0xeb,0x05,0x6a,0x05,0xfd,0x02,0x26,0x01,0x46,0x00,0x00,0x01,0x06,0x01,0x58,0x62,0x0a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x0a,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x93,0xfe,0xa7,0x06,0x57, -0x06,0x37,0x02,0x26,0x01,0x45,0x00,0x00,0x01,0x07,0x01,0x60,0x05,0x0f,0xff,0xf8,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf8,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x8b,0xfe,0xaf,0x05,0x6a,0x04,0xcb,0x02,0x26,0x01,0x46,0x00,0x00,0x00,0x07,0x01,0x60,0x04,0x59,0x00,0x00,0xff,0xff,0x00,0x28,0x00,0x00,0x04,0xe2,0x07,0x4a,0x02,0x26, -0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xef,0x01,0x5c,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x5c,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x1a,0xfe,0x4b,0x03,0xe8,0x05,0xf4,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x06,0x00,0x43,0x6b,0x06,0x00,0x08,0xb1,0x01,0x01,0xb0,0x06,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x28,0xfe,0xb9,0x04,0xe2, -0x05,0xb0,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x01,0x60,0x04,0xdd,0x00,0x0a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x0a,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x1a,0xfe,0x12,0x03,0xe8,0x04,0x3a,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x01,0x60,0x05,0x24,0xff,0x63,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0x63,0xb0,0x0d,0x2b,0x00, -0xff,0xff,0x00,0x28,0x00,0x00,0x04,0xe2,0x07,0xc7,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x01,0x5e,0x04,0xd5,0x01,0x51,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x51,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x1a,0xfe,0x4b,0x03,0xe8,0x06,0x72,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x01,0x5e,0x04,0x51,0xff,0xfc,0x00,0x09,0xb1,0x01, -0x01,0xb8,0xff,0xfc,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x28,0x00,0x00,0x04,0xe2,0x07,0x53,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x01,0x58,0x00,0xa4,0x01,0x60,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x60,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x1a,0xfe,0x4b,0x03,0xe8,0x05,0xfd,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x06,0x01,0x58, -0x20,0x0a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x0a,0xb0,0x0d,0x2b,0xff,0xff,0xff,0x25,0xff,0xeb,0x05,0x02,0x06,0x93,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x03,0xfb,0xfe,0xbd,0x00,0xce,0x00,0x08,0xb1,0x02,0x02,0xb0,0xce,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0xb3,0x02,0x88,0x04,0xf0,0x03,0x23,0x00,0x46,0x03,0x5a,0xd9,0x00, -0x53,0x33,0x40,0x00,0xff,0xff,0x00,0xbb,0x02,0x88,0x05,0xf3,0x03,0x23,0x00,0x46,0x03,0x5a,0xaf,0x00,0x66,0x66,0x40,0x00,0xff,0xff,0x00,0xbb,0x02,0x88,0x05,0xf3,0x03,0x23,0x00,0x46,0x03,0x5a,0xaf,0x00,0x66,0x66,0x40,0x00,0xff,0xff,0x00,0x05,0xfe,0x67,0x03,0xa0,0x00,0x00,0x00,0x27,0x00,0x42,0x00,0x01,0xff,0x01,0x01,0x06, -0x00,0x42,0x01,0x00,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x01,0xb0,0x0d,0x2b,0x00,0x00,0x01,0x00,0x91,0x03,0x95,0x01,0x57,0x05,0xb0,0x00,0x05,0x00,0x27,0x40,0x06,0x05,0x04,0x02,0x01,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x14,0x00,0x01,0x01,0x00,0x01,0x15,0x00,0x01,0x01,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x07,0x01, -0x17,0x03,0xb0,0x2f,0x2b,0x1b,0x01,0x33,0x03,0x15,0x23,0x91,0x65,0x61,0x01,0xc5,0x04,0x4d,0x01,0x63,0xfe,0x97,0xb2,0x00,0x00,0x01,0x00,0xa0,0x03,0x95,0x01,0x66,0x05,0xb0,0x00,0x05,0x00,0x27,0x40,0x06,0x05,0x04,0x02,0x01,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x14,0x00,0x01,0x00,0x01,0x01,0x15,0x00,0x00,0x00,0x01, -0x00,0x00,0x1b,0x00,0x01,0x01,0x07,0x00,0x17,0x03,0xb0,0x2f,0x2b,0x01,0x03,0x23,0x13,0x35,0x33,0x01,0x66,0x65,0x61,0x01,0xc5,0x04,0xef,0xfe,0xa6,0x01,0x57,0xc4,0x00,0x01,0x00,0xa8,0xff,0x01,0x01,0x6e,0x00,0xf9,0x00,0x05,0x00,0x30,0x40,0x06,0x05,0x04,0x02,0x01,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1d,0x00,0x01, -0x00,0x01,0x01,0x15,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x1a,0x00,0x01,0x01,0x00,0x00,0x00,0x1b,0x00,0x00,0x01,0x00,0x00,0x00,0x18,0x04,0xb0,0x2f,0x2b,0x25,0x03,0x23,0x13,0x35,0x33,0x01,0x6e,0x65,0x61,0x01,0xc5,0x1a,0xfe,0xe7,0x01,0x07,0xf1,0xff,0xff,0x00,0x55,0x03,0x95,0x01,0x1b,0x05,0xb0,0x00,0x47,0x03,0x35,0x01,0xbb, -0x00,0x00,0xc0,0x01,0x40,0x00,0x00,0x00,0xff,0xff,0x00,0x7b,0x03,0x95,0x02,0x89,0x05,0xb0,0x00,0x26,0x03,0x34,0xea,0x00,0x00,0x07,0x03,0x34,0x01,0x32,0x00,0x00,0xff,0xff,0x00,0x7d,0x03,0x95,0x02,0x93,0x05,0xb0,0x00,0x26,0x03,0x35,0xdd,0x00,0x00,0x07,0x03,0x35,0x01,0x2d,0x00,0x00,0x00,0x02,0x00,0x8a,0xff,0x11,0x02,0x84, -0x01,0x18,0x00,0x05,0x00,0x0b,0x00,0x38,0x40,0x0a,0x0b,0x0a,0x08,0x07,0x05,0x04,0x02,0x01,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x21,0x06,0x00,0x02,0x00,0x01,0x01,0x15,0x03,0x01,0x01,0x00,0x00,0x01,0x00,0x00,0x1a,0x03,0x01,0x01,0x01,0x00,0x00,0x00,0x1b,0x02,0x01,0x00,0x01,0x00,0x00,0x00,0x18,0x04,0xb0,0x2f,0x2b, -0x25,0x03,0x23,0x13,0x35,0x33,0x05,0x03,0x23,0x13,0x35,0x33,0x01,0x50,0x65,0x61,0x01,0xc5,0x01,0x34,0x65,0x61,0x01,0xc5,0x60,0xfe,0xb1,0x01,0x45,0xc2,0xb8,0xfe,0xb1,0x01,0x4d,0xba,0x00,0x01,0x00,0x46,0x00,0x00,0x04,0x24,0x05,0xb0,0x00,0x0b,0x00,0x35,0x40,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00, -0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1a,0x00,0x04,0x04,0x07,0x16,0x02,0x01,0x00,0x00,0x03,0x00,0x00,0x1b,0x05,0x01,0x03,0x03,0x0a,0x16,0x00,0x01,0x01,0x08,0x01,0x17,0x04,0xb0,0x2f,0x2b,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x04,0x24,0xfe,0x71,0xc5,0xfe,0x76,0x01,0x8a,0xc5,0x01,0x8f,0x03, -0x9e,0xfc,0x62,0x03,0x9e,0x9c,0x01,0x76,0xfe,0x8a,0x00,0x00,0x00,0x01,0x00,0x57,0xfe,0x60,0x04,0x34,0x05,0xb0,0x00,0x13,0x00,0x4b,0x40,0x16,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x28,0x00,0x06,0x06,0x07,0x16,0x08, -0x01,0x04,0x04,0x05,0x00,0x00,0x1b,0x07,0x01,0x05,0x05,0x0a,0x16,0x09,0x01,0x03,0x03,0x00,0x00,0x00,0x1b,0x02,0x01,0x00,0x00,0x08,0x16,0x00,0x01,0x01,0x0c,0x01,0x17,0x06,0xb0,0x2f,0x2b,0x29,0x01,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x04,0x34,0xfe,0x71,0xc5,0xfe,0x77, -0x01,0x89,0xfe,0x77,0x01,0x89,0xc5,0x01,0x8f,0xfe,0x71,0x01,0x8f,0xfe,0x60,0x01,0xa0,0x9a,0x03,0x04,0x9c,0x01,0x76,0xfe,0x8a,0x9c,0xfc,0xfc,0x00,0x01,0x00,0x89,0x02,0x17,0x02,0x27,0x03,0xe1,0x00,0x0d,0x00,0x2a,0x40,0x06,0x0b,0x09,0x04,0x02,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x17,0x00,0x00,0x01,0x01,0x00,0x01, -0x00,0x1a,0x00,0x00,0x00,0x01,0x01,0x00,0x1b,0x00,0x01,0x00,0x01,0x01,0x00,0x18,0x03,0xb0,0x2f,0x2b,0x13,0x34,0x36,0x33,0x32,0x16,0x1d,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x89,0x70,0x5e,0x5f,0x71,0x70,0x5f,0x5f,0x70,0x03,0x19,0x58,0x70,0x70,0x58,0x3c,0x59,0x6d,0x6e,0x58,0x00,0x00,0xff,0xff,0x00,0xa1,0x00,0x00,0x03,0x21, -0x00,0xca,0x00,0x26,0x00,0x11,0x00,0x00,0x00,0x07,0x00,0x11,0x01,0xbb,0x00,0x00,0xff,0xff,0x00,0xa1,0x00,0x00,0x04,0xc5,0x00,0xca,0x00,0x26,0x00,0x11,0x00,0x00,0x00,0x27,0x00,0x11,0x01,0xbb,0x00,0x00,0x00,0x07,0x00,0x11,0x03,0x5f,0x00,0x00,0x00,0x06,0x00,0x40,0xff,0xeb,0x07,0x55,0x05,0xc5,0x00,0x19,0x00,0x27,0x00,0x35, -0x00,0x43,0x00,0x51,0x00,0x55,0x00,0x6d,0x40,0x1a,0x4f,0x4d,0x48,0x46,0x41,0x3f,0x3a,0x38,0x33,0x31,0x2c,0x2a,0x25,0x23,0x1e,0x1c,0x17,0x15,0x11,0x0f,0x0a,0x08,0x04,0x02,0x0c,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x46,0x55,0x54,0x02,0x0a,0x0b,0x06,0x01,0x07,0x00,0x53,0x52,0x02,0x06,0x07,0x13,0x01,0x02,0x06,0x04,0x15, -0x00,0x0a,0x00,0x05,0x00,0x0a,0x05,0x01,0x00,0x1d,0x01,0x01,0x00,0x09,0x01,0x07,0x06,0x00,0x07,0x01,0x00,0x1d,0x00,0x0b,0x0b,0x04,0x01,0x00,0x1b,0x00,0x04,0x04,0x0d,0x16,0x08,0x01,0x06,0x06,0x02,0x01,0x00,0x1b,0x03,0x01,0x02,0x02,0x0e,0x02,0x17,0x07,0xb0,0x2f,0x2b,0x01,0x34,0x36,0x33,0x32,0x16,0x17,0x3e,0x01,0x33,0x32, -0x16,0x1d,0x01,0x14,0x06,0x23,0x22,0x26,0x27,0x0e,0x01,0x23,0x22,0x26,0x35,0x01,0x34,0x36,0x33,0x32,0x16,0x1d,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x01,0x14,0x16,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x05,0x14,0x16,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x14,0x16,0x33,0x32,0x36,0x3d, -0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x13,0x27,0x01,0x17,0x03,0x33,0xa4,0x88,0x4a,0x75,0x25,0x25,0x75,0x4a,0x89,0xa5,0xa4,0x88,0x4b,0x76,0x25,0x25,0x74,0x49,0x8a,0xa4,0xfd,0x0d,0xa4,0x88,0x8a,0xa4,0xa4,0x88,0x89,0xa5,0x03,0x85,0x51,0x4b,0x4a,0x50,0x52,0x4a,0x4a,0x50,0x01,0xc8,0x51,0x4b,0x49,0x50,0x51,0x4a,0x4a,0x50,0xfb, -0x45,0x51,0x4b,0x49,0x51,0x52,0x4a,0x4a,0x50,0xf8,0x6d,0x02,0xc7,0x6d,0x01,0x65,0x7e,0xae,0x3f,0x36,0x36,0x3f,0xad,0x7f,0x4e,0x80,0xac,0x3d,0x37,0x37,0x3d,0xac,0x80,0x03,0x81,0x7f,0xae,0xad,0x80,0x4d,0x7f,0xac,0xac,0x7f,0xfc,0xcc,0x4b,0x67,0x67,0x4b,0x4e,0x4a,0x68,0x68,0x4a,0x4e,0x4b,0x67,0x67,0x4b,0x4e,0x4a,0x68,0x68, -0x4a,0x02,0xe6,0x4a,0x67,0x66,0x4b,0x4d,0x4a,0x69,0x69,0x4a,0xfb,0xd6,0x43,0x04,0x72,0x43,0x00,0x00,0xff,0xff,0x00,0x7e,0x03,0xb7,0x01,0x44,0x05,0xb0,0x02,0x06,0x00,0x0a,0x00,0x00,0xff,0xff,0x00,0x7e,0x03,0xa8,0x02,0x79,0x05,0xb0,0x02,0x06,0x00,0x05,0x00,0x00,0x00,0x01,0x00,0x6c,0x00,0x98,0x02,0x27,0x03,0xb5,0x00,0x06, -0x00,0x32,0x40,0x06,0x06,0x05,0x02,0x01,0x02,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x1f,0x04,0x03,0x00,0x03,0x00,0x01,0x01,0x15,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x1a,0x00,0x01,0x01,0x00,0x00,0x00,0x1b,0x00,0x00,0x01,0x00,0x00,0x00,0x18,0x04,0xb0,0x2f,0x2b,0x01,0x13,0x23,0x01,0x35,0x01,0x33,0x01,0x28,0xff,0x94,0xfe, -0xd9,0x01,0x27,0x94,0x02,0x26,0xfe,0x72,0x01,0x85,0x13,0x01,0x85,0x00,0x00,0x00,0x00,0x01,0x00,0x5e,0x00,0xaa,0x02,0x13,0x03,0xa2,0x00,0x0d,0x00,0x46,0x40,0x0a,0x0d,0x0c,0x0b,0x0a,0x04,0x03,0x02,0x01,0x04,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x2f,0x08,0x07,0x06,0x00,0x04,0x02,0x01,0x01,0x15,0x00,0x01,0x00,0x02,0x00, -0x01,0x02,0x29,0x00,0x02,0x03,0x00,0x02,0x03,0x27,0x00,0x00,0x01,0x03,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x03,0x00,0x00,0x1b,0x00,0x03,0x00,0x03,0x00,0x00,0x18,0x06,0xb0,0x2f,0x2b,0x01,0x03,0x33,0x01,0x33,0x1f,0x01,0x07,0x17,0x0f,0x01,0x23,0x01,0x23,0x01,0x45,0xe7,0x94,0x01,0x16,0x05,0x01,0x05,0x02,0x02,0x05,0x01,0x04, -0xfe,0xe9,0x94,0x02,0x26,0x01,0x7c,0xfe,0x9b,0x09,0x05,0x09,0x09,0x06,0x07,0xfe,0x9a,0x00,0x00,0x00,0xff,0xff,0x00,0xab,0x00,0x00,0x03,0x8c,0x05,0xb0,0x00,0x26,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x04,0x02,0x1b,0x00,0x00,0x00,0x01,0x00,0x3b,0x00,0x6e,0x03,0x6f,0x05,0x23,0x00,0x03,0x00,0x07,0x40,0x02,0x00,0x07,0x2b,0x00, -0x00,0x37,0x27,0x01,0x17,0xa8,0x6d,0x02,0xc7,0x6d,0x6e,0x43,0x04,0x72,0x43,0x00,0x00,0x02,0x00,0x47,0x02,0x30,0x03,0x53,0x05,0xc5,0x00,0x0a,0x00,0x0f,0x00,0x76,0x40,0x0e,0x0c,0x0b,0x0a,0x09,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x30,0x58,0x40,0x25,0x0e,0x0d,0x02,0x00, -0x04,0x08,0x01,0x01,0x00,0x02,0x15,0x05,0x01,0x00,0x03,0x01,0x01,0x02,0x00,0x01,0x00,0x00,0x1d,0x00,0x02,0x02,0x04,0x00,0x00,0x1b,0x00,0x04,0x04,0x07,0x02,0x17,0x04,0x1b,0x40,0x2e,0x0e,0x0d,0x02,0x00,0x04,0x08,0x01,0x01,0x00,0x02,0x15,0x00,0x04,0x00,0x02,0x04,0x00,0x00,0x1a,0x05,0x01,0x00,0x03,0x01,0x01,0x02,0x00,0x01, -0x00,0x00,0x1d,0x00,0x04,0x04,0x02,0x00,0x00,0x1b,0x00,0x02,0x04,0x02,0x00,0x00,0x18,0x05,0x59,0xb0,0x2f,0x2b,0x01,0x33,0x15,0x23,0x15,0x23,0x35,0x21,0x27,0x01,0x33,0x01,0x21,0x11,0x27,0x07,0x02,0xbe,0x95,0x95,0xac,0xfe,0x39,0x04,0x01,0xc6,0xb1,0xfe,0x47,0x01,0x0d,0x06,0x0d,0x03,0x69,0x81,0xb8,0xb8,0x60,0x02,0x7d,0xfd, -0xa4,0x01,0x79,0x01,0x1a,0x00,0x00,0x00,0x00,0x01,0x00,0x7a,0x02,0x8b,0x02,0xfa,0x05,0xba,0x00,0x13,0x00,0x74,0x40,0x10,0x00,0x00,0x00,0x13,0x00,0x13,0x12,0x11,0x0e,0x0c,0x09,0x08,0x05,0x03,0x06,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x21,0x58,0x40,0x29,0x01,0x01,0x02,0x00,0x10,0x01,0x01,0x02,0x02,0x15,0x00,0x02, -0x02,0x00,0x01,0x00,0x1b,0x05,0x04,0x02,0x00,0x00,0x07,0x16,0x03,0x01,0x01,0x01,0x00,0x01,0x00,0x1b,0x05,0x04,0x02,0x00,0x00,0x07,0x01,0x17,0x05,0x1b,0x40,0x26,0x01,0x01,0x02,0x04,0x10,0x01,0x01,0x02,0x02,0x15,0x00,0x02,0x02,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x07,0x16,0x03,0x01,0x01,0x01,0x04,0x00,0x00,0x1b,0x05,0x01, -0x04,0x04,0x07,0x01,0x17,0x05,0x59,0xb0,0x2f,0x2b,0x01,0x17,0x3e,0x01,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x01,0x02,0x1f,0x24,0x6e,0x46,0x7a,0x87,0xb4,0x47,0x41,0x35,0x48,0x13,0xb4,0x05,0xab,0x78,0x40,0x47,0x97,0x9c,0xfe,0x04,0x01,0xdb,0x66,0x5b,0x36,0x2f,0xfd,0xc9,0x03,0x20, -0xff,0xff,0x00,0x11,0x00,0x00,0x04,0x3b,0x05,0xb0,0x02,0x26,0x00,0x29,0x00,0x00,0x01,0x07,0x03,0x80,0xff,0x7f,0xfe,0x7f,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0x7f,0xb0,0x0d,0x2b,0x00,0x00,0x01,0x00,0x46,0x00,0x00,0x04,0x57,0x05,0xc5,0x00,0x28,0x00,0x71,0x40,0x22,0x00,0x00,0x00,0x28,0x00,0x28,0x27,0x26,0x25,0x24,0x23,0x22, -0x1f,0x1d,0x1b,0x1a,0x17,0x15,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x08,0x07,0x06,0x05,0x04,0x03,0x0f,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x40,0x42,0x19,0x01,0x08,0x09,0x01,0x15,0x00,0x08,0x09,0x06,0x09,0x08,0x06,0x29,0x0a,0x01,0x06,0x0b,0x01,0x05,0x04,0x06,0x05,0x00,0x00,0x1d,0x0c,0x01,0x04,0x0e,0x0d,0x02,0x03,0x00, -0x04,0x03,0x00,0x00,0x1d,0x00,0x09,0x09,0x07,0x01,0x00,0x1b,0x00,0x07,0x07,0x0d,0x16,0x02,0x01,0x00,0x00,0x01,0x00,0x00,0x1b,0x00,0x01,0x01,0x08,0x01,0x17,0x08,0xb0,0x2f,0x2b,0x01,0x0e,0x01,0x07,0x21,0x07,0x21,0x35,0x33,0x3e,0x01,0x37,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x27,0x34,0x36,0x33,0x32,0x16,0x0f,0x01,0x23,0x34, -0x26,0x23,0x22,0x06,0x15,0x17,0x21,0x15,0x21,0x17,0x21,0x15,0x01,0xb3,0x02,0x1e,0x1b,0x02,0xdf,0x01,0xfc,0x30,0x0a,0x2d,0x2f,0x04,0xaa,0xa5,0x06,0x9e,0x98,0x05,0xe0,0xbc,0xc8,0xdc,0x04,0x02,0xbe,0x7e,0x62,0x63,0x74,0x05,0x01,0xa6,0xfe,0x60,0x05,0x01,0x9b,0x01,0xb9,0x53,0x96,0x36,0x9a,0x9a,0x0c,0xad,0x66,0x9b,0x8f,0x9b, -0x92,0xcc,0xe9,0xd1,0xac,0x06,0x76,0x72,0x95,0x85,0x92,0x9b,0x8f,0x9b,0x00,0x00,0x00,0x03,0x00,0xa4,0xff,0xeb,0x06,0x10,0x05,0xb0,0x00,0x0a,0x00,0x13,0x00,0x2b,0x00,0xc9,0x40,0x22,0x14,0x14,0x00,0x00,0x14,0x2b,0x14,0x2b,0x2a,0x29,0x28,0x27,0x24,0x22,0x1d,0x1b,0x18,0x17,0x16,0x15,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09, -0x05,0x03,0x02,0x01,0x0e,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58,0x4b,0xb0,0x17,0x58,0x40,0x47,0x1f,0x01,0x07,0x02,0x20,0x01,0x00,0x07,0x02,0x15,0x0d,0x01,0x0b,0x01,0x04,0x01,0x0b,0x04,0x29,0x00,0x03,0x0c,0x01,0x02,0x07,0x03,0x02,0x01,0x00,0x1d,0x00,0x04,0x04,0x01,0x01,0x00,0x1b,0x00,0x01,0x01,0x07,0x16,0x09,0x01,0x06,0x06, -0x05,0x00,0x00,0x1b,0x0a,0x01,0x05,0x05,0x0a,0x16,0x00,0x07,0x07,0x00,0x01,0x02,0x1b,0x08,0x01,0x00,0x00,0x08,0x00,0x17,0x09,0x1b,0x40,0x4b,0x1f,0x01,0x07,0x02,0x20,0x01,0x00,0x07,0x02,0x15,0x0d,0x01,0x0b,0x01,0x04,0x01,0x0b,0x04,0x29,0x00,0x03,0x0c,0x01,0x02,0x07,0x03,0x02,0x01,0x00,0x1d,0x00,0x04,0x04,0x01,0x01,0x00, -0x1b,0x00,0x01,0x01,0x07,0x16,0x09,0x01,0x06,0x06,0x05,0x00,0x00,0x1b,0x0a,0x01,0x05,0x05,0x0a,0x16,0x00,0x00,0x00,0x08,0x16,0x00,0x07,0x07,0x08,0x01,0x02,0x1b,0x00,0x08,0x08,0x0e,0x08,0x17,0x0a,0x59,0xb0,0x2f,0x2b,0x01,0x11,0x23,0x11,0x21,0x32,0x04,0x15,0x14,0x04,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x2b,0x01,0x25, -0x11,0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x0e,0x01,0x23,0x22,0x26,0x35,0x11,0x23,0x35,0x33,0x11,0x01,0x69,0xc5,0x01,0x62,0xe8,0x01,0x04,0xfe,0xfc,0xe8,0x9d,0x9d,0x93,0x93,0x93,0x93,0x9d,0x03,0xd0,0xcd,0xcd,0x3f,0x34,0x11,0x2a,0x0e,0x1b,0x16,0x56,0x2a,0x78,0x8e,0xac,0xac,0x02,0x34,0xfd,0xcc,0x05,0xb0, -0xf9,0xc5,0xc7,0xf7,0x9b,0xa7,0x7a,0x7b,0xaa,0x2a,0xfe,0xfb,0x92,0xfd,0x6f,0x4c,0x3e,0x09,0x05,0x87,0x12,0x17,0x91,0x9b,0x02,0x91,0x92,0x01,0x05,0x00,0x00,0x00,0xff,0xff,0x00,0x50,0xfe,0xeb,0x04,0xba,0x06,0x18,0x02,0x26,0x00,0x47,0x00,0x00,0x00,0x27,0x03,0x80,0x01,0xa7,0x02,0x47,0x01,0x06,0x00,0x42,0x4c,0x85,0x00,0x12, -0xb1,0x02,0x01,0xb8,0x02,0x47,0xb0,0x0d,0x2b,0xb1,0x03,0x01,0xb8,0xff,0x85,0xb0,0x0d,0x2b,0x00,0x00,0x00,0x01,0x00,0x4f,0xff,0xeb,0x03,0xd5,0x05,0xc5,0x00,0x2a,0x00,0x6c,0x40,0x1a,0x2a,0x29,0x28,0x27,0x26,0x25,0x22,0x20,0x1b,0x19,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0d,0x0b,0x06,0x04,0x01,0x00,0x0c,0x07,0x2b,0x4b, -0xb0,0x90,0x50,0x58,0x40,0x45,0x1d,0x01,0x08,0x07,0x1e,0x01,0x06,0x08,0x08,0x02,0x02,0x01,0x00,0x09,0x01,0x02,0x01,0x04,0x15,0x09,0x01,0x06,0x0a,0x01,0x05,0x04,0x06,0x05,0x00,0x00,0x1d,0x0b,0x01,0x04,0x03,0x01,0x00,0x01,0x04,0x00,0x00,0x00,0x1d,0x00,0x08,0x08,0x07,0x01,0x00,0x1b,0x00,0x07,0x07,0x0d,0x16,0x00,0x01,0x01, -0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0e,0x02,0x17,0x07,0xb0,0x2f,0x2b,0x01,0x21,0x07,0x06,0x16,0x33,0x32,0x36,0x37,0x17,0x0e,0x01,0x23,0x22,0x00,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x34,0x00,0x33,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x1d,0x01,0x21,0x15,0x21,0x15,0x21,0x03,0x92,0xfe,0x1b,0x02,0x04,0xab, -0x93,0x39,0x70,0x34,0x13,0x38,0x7b,0x3d,0xe7,0xfe,0xe3,0x92,0x92,0x92,0x92,0x01,0x1b,0xe7,0x3b,0x75,0x42,0x13,0x36,0x71,0x38,0x92,0xab,0x01,0xec,0xfe,0x14,0x01,0xec,0x02,0x00,0x05,0xa9,0xcd,0x11,0x11,0x9d,0x0f,0x10,0x01,0x21,0xf4,0x7c,0xa6,0x7d,0x0f,0xf4,0x01,0x23,0x10,0x0f,0x9f,0x10,0x13,0xce,0xac,0x11,0x7d,0xa6,0x00, -0x00,0x04,0x00,0x7c,0xff,0xeb,0x05,0x83,0x05,0xc5,0x00,0x1d,0x00,0x2b,0x00,0x39,0x00,0x3d,0x00,0x0d,0x40,0x0a,0x3b,0x3d,0x2e,0x35,0x27,0x20,0x0a,0x03,0x04,0x0b,0x2b,0x01,0x17,0x16,0x06,0x23,0x22,0x26,0x3d,0x01,0x34,0x36,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x01, -0x14,0x16,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x33,0x34,0x36,0x33,0x32,0x16,0x1d,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x13,0x27,0x01,0x17,0x02,0xa5,0x02,0x04,0x96,0x7e,0x81,0x9a,0x99,0x80,0x7e,0x98,0x04,0x02,0x8a,0x46,0x40,0x41,0x46,0x47,0x42,0x3f,0x45,0x01,0x0e,0xa5,0x8a,0x87,0xa4,0xa5,0x88,0x89,0xa4, -0x92,0x51,0x4a,0x49,0x52,0x50,0x49,0x4c,0x51,0xcb,0x6d,0xfd,0x39,0x6d,0x04,0x20,0x06,0x69,0x91,0xac,0x7f,0x4d,0x7f,0xae,0x94,0x67,0x06,0x39,0x4e,0x69,0x4a,0x4d,0x4a,0x67,0x50,0x36,0xfc,0xf7,0x80,0xac,0xac,0x80,0x4e,0x7f,0xad,0xad,0x7f,0x4a,0x68,0x68,0x4a,0x4e,0x4b,0x67,0x67,0x4b,0x03,0xc9,0x43,0xfb,0x8e,0x43,0x00,0x00, -0x00,0x02,0x00,0x6a,0xff,0xed,0x03,0x73,0x05,0xc5,0x00,0x1b,0x00,0x28,0x00,0x09,0x40,0x06,0x1f,0x25,0x0f,0x02,0x02,0x0b,0x2b,0x05,0x07,0x06,0x26,0x3d,0x01,0x0e,0x01,0x23,0x35,0x32,0x36,0x37,0x11,0x34,0x36,0x33,0x32,0x16,0x1d,0x01,0x14,0x02,0x07,0x15,0x14,0x16,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x17,0x3e, -0x01,0x35,0x02,0xce,0x06,0xc7,0xcd,0x31,0x65,0x34,0x37,0x65,0x2e,0x9f,0x8b,0x7a,0x9b,0xcb,0xaf,0x60,0x75,0x20,0x2c,0x24,0x33,0x32,0x06,0x55,0x5a,0x0d,0x02,0x04,0xef,0xd3,0x0c,0x0c,0x0c,0xb4,0x0d,0x0d,0x01,0xd9,0xb1,0xca,0xac,0x90,0x2a,0x9e,0xfe,0xae,0x64,0x5c,0x91,0x92,0x03,0xd1,0x2c,0x4c,0x4e,0x6d,0x6c,0xfe,0x9b,0x01, -0x40,0xcc,0x6d,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x08,0x4e,0x05,0xc1,0x00,0x22,0x00,0x31,0x00,0x00,0x00,0x23,0x00,0x7c,0x05,0x23,0xff,0xfc,0x01,0x03,0x00,0x10,0x05,0x20,0xff,0x15,0x00,0x12,0xb1,0x01,0x02,0xb8,0xff,0xfc,0xb0,0x0d,0x2b,0xb1,0x03,0x01,0xb8,0xff,0x15,0xb0,0x0d,0x2b,0x00,0x02,0x00,0x67,0x03,0x97,0x04,0x60, -0x05,0xb0,0x00,0x0f,0x00,0x17,0x00,0x09,0x40,0x06,0x16,0x12,0x08,0x02,0x02,0x0b,0x2b,0x01,0x27,0x03,0x23,0x03,0x07,0x11,0x23,0x11,0x33,0x13,0x33,0x13,0x33,0x11,0x23,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x21,0x04,0x03,0x06,0x96,0x33,0x9c,0x06,0x5d,0x74,0xa1,0x06,0xa2,0x6e,0x5d,0xfd,0xe4,0x91,0x5e,0x91,0x01,0x80,0x04,0xee, -0x02,0xfe,0xa7,0x01,0x67,0x02,0xfe,0x9b,0x02,0x19,0xfe,0x7a,0x01,0x86,0xfd,0xe7,0x01,0xc7,0xfe,0x39,0x01,0xc7,0x52,0x00,0x00,0x02,0x00,0x98,0xff,0xec,0x04,0x93,0x04,0x4e,0x00,0x15,0x00,0x1e,0x00,0x09,0x40,0x06,0x16,0x1a,0x08,0x02,0x02,0x0b,0x2b,0x25,0x0e,0x01,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x00,0x1d,0x01,0x21, -0x11,0x1e,0x01,0x33,0x32,0x36,0x37,0x01,0x22,0x06,0x07,0x11,0x21,0x11,0x2e,0x01,0x04,0x16,0x57,0xbc,0x5f,0xda,0xfe,0xce,0x01,0x43,0xc9,0xcf,0x01,0x20,0xfd,0x00,0x37,0x8d,0x4d,0x5f,0xba,0x57,0xfe,0x90,0x4a,0x8d,0x3a,0x02,0x1c,0x36,0x8b,0x5e,0x37,0x3b,0x01,0x49,0xe8,0xe2,0x01,0x4f,0xfe,0xca,0xe7,0x2f,0xfe,0xb8,0x35,0x39, -0x3c,0x3e,0x03,0x2a,0x41,0x39,0xfe,0xeb,0x01,0x1e,0x34,0x3d,0xff,0xff,0x00,0x6b,0xff,0xf5,0x06,0x52,0x05,0xb2,0x00,0x27,0x04,0x03,0x00,0x0c,0x02,0x86,0x00,0x27,0x03,0x46,0x01,0x06,0x00,0x00,0x01,0x07,0x03,0xfa,0x03,0x4b,0x00,0x00,0x00,0x09,0xb1,0x00,0x01,0xb8,0x02,0x86,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x6e, -0xff,0xf5,0x06,0xe9,0x05,0xc0,0x00,0x27,0x04,0x00,0x00,0x04,0x02,0x94,0x00,0x27,0x03,0x46,0x01,0xbf,0x00,0x00,0x01,0x07,0x03,0xfa,0x03,0xe2,0x00,0x00,0x00,0x09,0xb1,0x00,0x01,0xb8,0x02,0x94,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x6f,0xff,0xf5,0x07,0x19,0x05,0xaf,0x00,0x27,0x03,0xfe,0xff,0xfd,0x02,0x8e,0x00,0x27, -0x03,0x46,0x01,0xf7,0x00,0x00,0x01,0x07,0x03,0xfa,0x04,0x12,0x00,0x00,0x00,0x09,0xb1,0x00,0x01,0xb8,0x02,0x8e,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x6b,0xff,0xf5,0x06,0x72,0x05,0xaf,0x00,0x27,0x03,0xfc,0x00,0x0c,0x02,0x8e,0x00,0x27,0x03,0x46,0x01,0x36,0x00,0x00,0x01,0x07,0x03,0xfa,0x03,0x6b,0x00,0x00,0x00,0x09, -0xb1,0x00,0x01,0xb8,0x02,0x8e,0xb0,0x0d,0x2b,0x00,0x00,0x00,0x00,0x02,0x00,0x48,0xff,0xeb,0x04,0x30,0x05,0xed,0x00,0x14,0x00,0x21,0x00,0x09,0x40,0x06,0x1b,0x15,0x00,0x06,0x02,0x0b,0x2b,0x01,0x04,0x00,0x11,0x15,0x14,0x00,0x23,0x22,0x00,0x35,0x34,0x12,0x33,0x32,0x16,0x17,0x37,0x2e,0x01,0x27,0x13,0x32,0x36,0x3d,0x01,0x2e, -0x01,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0xe7,0x01,0x07,0x01,0x42,0xfe,0xe0,0xd7,0xda,0xfe,0xe9,0xfa,0xda,0x5f,0xa8,0x36,0x03,0x16,0xeb,0xb0,0x92,0x85,0xa9,0x24,0xac,0x7f,0x88,0x87,0xa4,0x05,0xed,0x3f,0xfe,0x6c,0xfe,0xd9,0xdc,0xf5,0xfe,0xc9,0x01,0x18,0xcf,0xe9,0x01,0x17,0x3b,0x34,0x05,0xc1,0xec,0x34,0xfb,0x3c,0xe4,0xae, -0x81,0x43,0x5c,0xc9,0x9c,0x84,0xc9,0x00,0x00,0x01,0x00,0xa8,0xff,0x2d,0x04,0xf4,0x05,0xb0,0x00,0x07,0x00,0x07,0x40,0x04,0x06,0x00,0x01,0x0b,0x2b,0x05,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x04,0xf4,0xc5,0xfd,0x3e,0xc5,0x04,0x4c,0xd3,0x05,0xe8,0xfa,0x18,0x06,0x83,0x00,0x01,0x00,0x46,0xfe,0xf3,0x04,0xae,0x05,0xb0,0x00,0x0e, -0x00,0x07,0x40,0x04,0x09,0x04,0x01,0x0b,0x2b,0x09,0x01,0x17,0x21,0x15,0x21,0x35,0x09,0x01,0x35,0x21,0x15,0x21,0x07,0x01,0x03,0x65,0xfd,0xd2,0x02,0x03,0x75,0xfb,0x98,0x02,0x62,0xfd,0x9e,0x04,0x19,0xfc,0xd8,0x02,0x02,0x30,0x02,0x24,0xfd,0x6f,0x05,0x9b,0x92,0x02,0xc9,0x02,0xcf,0x93,0x9b,0x05,0xfd,0x67,0x00,0x01,0x00,0xa8, -0x02,0x88,0x03,0xeb,0x03,0x23,0x00,0x03,0x00,0x07,0x40,0x04,0x02,0x00,0x01,0x0b,0x2b,0x01,0x21,0x35,0x21,0x03,0xeb,0xfc,0xbd,0x03,0x43,0x02,0x88,0x9b,0x00,0x00,0x00,0x01,0x00,0x3f,0x00,0x00,0x04,0xad,0x05,0xb0,0x00,0x0b,0x00,0x07,0x40,0x04,0x04,0x06,0x01,0x0b,0x2b,0x01,0x17,0x33,0x37,0x01,0x33,0x01,0x23,0x03,0x23,0x35, -0x21,0x02,0x2a,0x12,0x06,0x13,0x01,0x8f,0xc9,0xfd,0xdb,0x95,0xf8,0xbc,0x01,0x48,0x01,0x54,0x53,0x53,0x04,0x5c,0xfa,0x50,0x02,0x74,0x9c,0x00,0x00,0x03,0x00,0x68,0xff,0xeb,0x07,0xbb,0x04,0x4e,0x00,0x19,0x00,0x27,0x00,0x35,0x00,0x0b,0x40,0x08,0x2a,0x31,0x23,0x1c,0x0f,0x02,0x03,0x0b,0x2b,0x01,0x14,0x02,0x23,0x22,0x26,0x27, -0x0e,0x01,0x23,0x22,0x02,0x3d,0x01,0x34,0x12,0x33,0x32,0x16,0x17,0x3e,0x01,0x33,0x32,0x12,0x15,0x05,0x14,0x16,0x33,0x32,0x12,0x37,0x35,0x26,0x02,0x23,0x22,0x06,0x15,0x21,0x34,0x26,0x23,0x22,0x02,0x07,0x15,0x16,0x12,0x33,0x32,0x36,0x35,0x07,0xbb,0xfa,0xcd,0xa5,0xee,0x50,0x50,0xef,0xa3,0xce,0xf9,0xf8,0xcd,0xa4,0xf0,0x51, -0x4f,0xf0,0xa5,0xcb,0xfa,0xf9,0x72,0x83,0x7f,0x89,0xd5,0x1b,0x1c,0xd5,0x8a,0x7e,0x82,0x05,0xc9,0x84,0x7c,0x8a,0xd4,0x1e,0x1d,0xd4,0x89,0x7e,0x84,0x01,0xfb,0xe1,0xfe,0xd1,0xd7,0x9c,0x9b,0xd8,0x01,0x2f,0xe1,0x42,0xe0,0x01,0x31,0xd8,0x9b,0x9a,0xd9,0xfe,0xce,0xdf,0x42,0xaa,0xcc,0x01,0x17,0x6c,0x2a,0x6a,0x01,0x17,0xcf,0xa7, -0xa7,0xcf,0xfe,0xeb,0x6c,0x2a,0x6e,0xfe,0xeb,0xcd,0xa9,0x00,0x00,0x01,0xff,0xbc,0xfe,0x4b,0x02,0x93,0x06,0x2d,0x00,0x1c,0x00,0x07,0x40,0x04,0x10,0x02,0x01,0x0b,0x2b,0x05,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x15,0x11,0x01,0x70, -0xac,0x99,0x1f,0x33,0x1d,0x0e,0x0e,0x41,0x12,0x3b,0x45,0xb6,0xa2,0x21,0x45,0x2a,0x18,0x14,0x2c,0x19,0x57,0x5b,0x59,0xa7,0xb5,0x09,0x09,0x96,0x05,0x08,0x67,0x5a,0x05,0x1c,0xad,0xbd,0x0b,0x0a,0x91,0x05,0x06,0x6d,0x62,0xfa,0xe4,0x00,0x00,0x00,0x00,0x02,0x00,0x65,0x01,0x10,0x04,0x14,0x04,0x00,0x00,0x19,0x00,0x33,0x00,0x09, -0x40,0x06,0x26,0x33,0x0c,0x19,0x02,0x0b,0x2b,0x13,0x3e,0x01,0x33,0x36,0x16,0x17,0x1e,0x01,0x33,0x32,0x36,0x37,0x17,0x0e,0x01,0x23,0x22,0x26,0x27,0x2e,0x01,0x07,0x22,0x06,0x0f,0x01,0x3e,0x01,0x33,0x36,0x16,0x17,0x1e,0x01,0x33,0x32,0x36,0x37,0x17,0x0e,0x01,0x23,0x22,0x26,0x27,0x2e,0x01,0x07,0x22,0x06,0x07,0x6f,0x2f,0x7c, -0x41,0x45,0x40,0x65,0x56,0x42,0x42,0x40,0x7c,0x30,0x09,0x30,0x7c,0x40,0x42,0x42,0x56,0x65,0x40,0x45,0x41,0x7c,0x2f,0x13,0x2f,0x7c,0x41,0x45,0x40,0x65,0x59,0x40,0x41,0x40,0x7c,0x30,0x09,0x30,0x7c,0x40,0x42,0x42,0x56,0x69,0x3d,0x44,0x41,0x7c,0x2f,0x03,0x6a,0x44,0x4e,0x01,0x18,0x32,0x2c,0x19,0x4d,0x45,0xae,0x45,0x4d,0x19, -0x2c,0x32,0x18,0x01,0x4e,0x44,0xfd,0x44,0x4e,0x01,0x18,0x32,0x2e,0x18,0x4d,0x46,0xaf,0x45,0x4d,0x19,0x2c,0x34,0x17,0x01,0x4e,0x45,0x00,0x00,0x00,0x01,0x00,0x98,0x00,0xa7,0x03,0xda,0x04,0xe3,0x00,0x13,0x00,0x07,0x40,0x04,0x12,0x08,0x01,0x0b,0x2b,0x01,0x33,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0x27,0x37,0x23,0x35,0x21,0x37, -0x21,0x35,0x21,0x13,0x17,0x03,0x19,0xc1,0xfe,0xe4,0x8c,0x01,0xa8,0xfd,0xfd,0x85,0x57,0x64,0xc7,0x01,0x22,0x8c,0xfe,0x52,0x02,0x09,0x93,0x57,0x03,0xdb,0xa4,0xfc,0xa4,0xf0,0x3c,0xb4,0xa4,0xfc,0xa4,0x01,0x08,0x3c,0x00,0x00,0xff,0xff,0x00,0x9e,0x00,0x06,0x03,0xe6,0x04,0x4b,0x00,0x67,0x00,0x1f,0x00,0x57,0x00,0xbc,0x40,0x00, -0x39,0x9a,0x01,0x07,0x03,0x5a,0xff,0xfb,0xfd,0x7e,0x00,0x11,0xb1,0x00,0x01,0xb0,0xbc,0xb0,0x0d,0x2b,0xb1,0x01,0x01,0xb8,0xfd,0x7e,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x9a,0x00,0x04,0x03,0xf2,0x04,0x4c,0x00,0x67,0x00,0x21,0x00,0x12,0x00,0xcf,0x40,0x00,0x39,0x9a,0x01,0x07,0x03,0x5a,0xff,0xfb,0xfd,0x7c,0x00,0x11, -0xb1,0x00,0x01,0xb0,0xcf,0xb0,0x0d,0x2b,0xb1,0x01,0x01,0xb8,0xfd,0x7c,0xb0,0x0d,0x2b,0x00,0x00,0x00,0x00,0x02,0x00,0x29,0x00,0x00,0x03,0xdf,0x05,0xb0,0x00,0x05,0x00,0x0f,0x00,0x09,0x40,0x06,0x08,0x0d,0x00,0x03,0x02,0x0b,0x2b,0x01,0x33,0x09,0x01,0x23,0x01,0x21,0x01,0x27,0x23,0x07,0x03,0x01,0x17,0x33,0x37,0x01,0xb7,0x96, -0x01,0x92,0xfe,0x71,0x95,0xfe,0x6e,0x02,0xed,0xfe,0xff,0x11,0x06,0x12,0xfa,0x01,0x01,0x11,0x06,0x12,0x05,0xb0,0xfd,0x27,0xfd,0x29,0x02,0xd7,0x02,0x00,0x32,0x32,0xfe,0x00,0xfe,0x01,0x32,0x32,0x00,0x00,0x00,0x01,0x00,0x65,0xff,0x7a,0x01,0x40,0x00,0xf3,0x00,0x05,0x00,0x07,0x40,0x04,0x04,0x01,0x01,0x0b,0x2b,0x25,0x07,0x23, -0x37,0x35,0x33,0x01,0x40,0x7a,0x61,0x3d,0x9e,0x67,0xed,0xf6,0x83,0x00,0x00,0x00,0x00,0x02,0x00,0x1c,0x00,0x00,0x03,0xd5,0x06,0x2d,0x00,0x17,0x00,0x1b,0x00,0x53,0x40,0x18,0x00,0x00,0x1b,0x1a,0x19,0x18,0x00,0x17,0x00,0x17,0x16,0x15,0x14,0x13,0x10,0x0e,0x09,0x07,0x04,0x03,0x02,0x01,0x0a,0x07,0x2b,0x4b,0xb0,0x90,0x50,0x58, -0x40,0x2e,0x0b,0x01,0x03,0x02,0x0c,0x01,0x01,0x03,0x02,0x15,0x00,0x03,0x03,0x02,0x01,0x00,0x1b,0x00,0x02,0x02,0x0f,0x16,0x05,0x01,0x00,0x00,0x01,0x00,0x00,0x1b,0x08,0x04,0x02,0x01,0x01,0x0a,0x16,0x07,0x09,0x02,0x06,0x06,0x08,0x06,0x17,0x06,0xb0,0x2f,0x2b,0x33,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x07, -0x2e,0x01,0x23,0x22,0x06,0x1d,0x01,0x33,0x15,0x23,0x11,0x21,0x23,0x11,0x33,0xc6,0xaa,0xaa,0xd5,0xbd,0x43,0x82,0x58,0x22,0x35,0x78,0x3f,0x75,0x67,0xd7,0xd7,0x02,0x4a,0xc6,0xc6,0x03,0xa8,0x92,0x75,0xb6,0xc8,0x1f,0x1e,0xa0,0x15,0x1e,0x68,0x6c,0x75,0x92,0xfc,0x58,0x04,0x3a,0x00,0x00,0xff,0xff,0x00,0x38,0x00,0x00,0x04,0x06, -0x06,0x2d,0x00,0x26,0x00,0x49,0x00,0x00,0x00,0x07,0x00,0x4f,0x02,0xa2,0x00,0x00,0xff,0xff,0x00,0x38,0x00,0x00,0x06,0x77,0x06,0x2d,0x00,0x26,0x00,0x49,0x00,0x00,0x00,0x07,0x03,0x64,0x02,0xa2,0x00,0x00,0xff,0xff,0x00,0x38,0x00,0x00,0x06,0xa8,0x06,0x2d,0x00,0x26,0x00,0x49,0x00,0x00,0x00,0x27,0x00,0x49,0x02,0xa2,0x00,0x00, -0x00,0x07,0x00,0x4f,0x05,0x44,0x00,0x00,0x00,0x16,0x00,0x5b,0xfe,0x72,0x07,0xee,0x05,0xae,0x00,0x0d,0x00,0x1c,0x00,0x2a,0x00,0x3b,0x00,0x41,0x00,0x47,0x00,0x4d,0x00,0x53,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0x69,0x00,0x6d,0x00,0x71,0x00,0x75,0x00,0x7e,0x00,0x82,0x00,0x86,0x00,0x8a,0x00,0x8e,0x00,0x92,0x00,0x96,0x00,0x31, -0x40,0x2e,0x95,0x93,0x91,0x8f,0x8d,0x8b,0x89,0x87,0x85,0x83,0x81,0x7f,0x76,0x7c,0x73,0x72,0x6f,0x6e,0x6b,0x6a,0x67,0x66,0x63,0x62,0x5f,0x5e,0x54,0x5a,0x4f,0x51,0x49,0x48,0x45,0x42,0x3d,0x3c,0x3a,0x35,0x26,0x1f,0x19,0x0e,0x02,0x09,0x16,0x0b,0x2b,0x01,0x34,0x26,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x05, -0x32,0x36,0x35,0x34,0x26,0x27,0x3e,0x01,0x35,0x34,0x26,0x2b,0x01,0x11,0x27,0x14,0x06,0x23,0x22,0x26,0x3d,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x23,0x07,0x06,0x16,0x33,0x32,0x36,0x35,0x11,0x23,0x01,0x11,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x11,0x01,0x11,0x21,0x15,0x23,0x15,0x25, -0x35,0x21,0x11,0x23,0x35,0x01,0x33,0x1e,0x01,0x15,0x14,0x06,0x2b,0x01,0x35,0x01,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x01,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x13,0x33,0x32,0x16,0x15,0x14,0x06,0x2b,0x01,0x05,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x25,0x23,0x35,0x33, -0x35,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x03,0x39,0x81,0x66,0x66,0x80,0x80,0x68,0x65,0x80,0x01,0x20,0x5c,0x69,0x36,0x30,0x28,0x2c,0x6f,0x65,0xbc,0x9f,0x4a,0x3f,0x42,0x4a,0x4a,0x40,0x40,0x4b,0x03,0xba,0x37,0x28,0x32,0x36,0x54,0x02,0x06,0x69,0x5b,0x51,0x6a,0x5c,0xf9,0xc4,0x71,0xc4,0x05,0x28,0xc7,0x6f,0xf8,0x6d,0x01,0x35, -0xc4,0x05,0xec,0x01,0x36,0x6f,0xfc,0xda,0x05,0x2f,0x33,0x35,0x32,0x7e,0x01,0x4e,0x01,0x16,0xfd,0x5b,0x01,0x15,0xfd,0x5c,0x01,0x14,0x02,0x0a,0x01,0x16,0xfd,0x5b,0x01,0x15,0xfd,0x5c,0x01,0x14,0xbc,0x5d,0x3d,0x39,0x3c,0x3a,0x5d,0xfc,0xf1,0x71,0x71,0x71,0x71,0x71,0x71,0x07,0x22,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x02,0x44,0x60, -0x7b,0x7b,0x60,0x70,0x62,0x79,0x79,0x62,0xd8,0x4f,0x4c,0x2d,0x46,0x0d,0x0f,0x3e,0x27,0x4b,0x4b,0xfd,0xdb,0xd8,0x45,0x4e,0x4e,0x45,0x70,0x44,0x4f,0x4f,0x44,0x9b,0x2c,0x36,0x2d,0x2e,0x06,0x4d,0x51,0x5c,0x4f,0x01,0x7a,0xfb,0x4f,0x01,0x3b,0xca,0x71,0x71,0xca,0xfe,0xc5,0x06,0x1f,0x01,0x1d,0x74,0xa9,0xa9,0x74,0xfe,0xe3,0xa9, -0xfc,0xb6,0x02,0x2e,0x26,0x28,0x2b,0xa9,0x03,0x4a,0x74,0x74,0x74,0x74,0x74,0x74,0xf9,0x38,0x71,0x71,0x71,0x71,0x71,0x71,0x04,0x5b,0x20,0x27,0x28,0x28,0x96,0xfc,0x7e,0xfa,0xfc,0x15,0xf9,0x7e,0xfc,0x7e,0xfa,0xfc,0x15,0xf9,0x00,0x05,0x00,0x5c,0xfd,0xd5,0x07,0xd7,0x08,0x62,0x00,0x03,0x00,0x1e,0x00,0x22,0x00,0x26,0x00,0x2a, -0x00,0x0f,0x40,0x0c,0x27,0x29,0x23,0x25,0x1f,0x21,0x0c,0x04,0x00,0x02,0x05,0x0b,0x2b,0x09,0x03,0x05,0x34,0x36,0x37,0x3e,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x1f,0x01,0x33,0x3e,0x01,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x0e,0x01,0x15,0x17,0x23,0x15,0x33,0x03,0x33,0x15,0x23,0x03,0x33,0x15,0x23,0x04,0x18,0x03,0xbf,0xfc,0x41, -0xfc,0x44,0x04,0x0f,0x1a,0x28,0x48,0x5e,0xa9,0x93,0x88,0xa7,0x03,0x03,0xc2,0x01,0x3b,0x2b,0x36,0x3b,0x33,0x2a,0x4f,0x3b,0xca,0xca,0xca,0x4b,0x04,0x04,0x02,0x04,0x04,0x06,0x52,0xfc,0x31,0xfc,0x31,0x03,0xcf,0xf1,0x35,0x3d,0x1a,0x27,0x83,0x4e,0x80,0x97,0x82,0x82,0x06,0x33,0x34,0x3f,0x35,0x32,0x4d,0x1c,0x37,0x5a,0x58,0x5b, -0xaa,0xfd,0x4c,0x04,0x0a,0x8d,0x04,0x00,0xff,0xff,0x00,0x5d,0xfe,0x47,0x04,0x11,0x04,0x9d,0x02,0x26,0x03,0xeb,0x00,0x00,0x01,0x07,0x00,0x7a,0x01,0x55,0xff,0xfa,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xfa,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x89,0xff,0xef,0x04,0x74,0x06,0x06,0x02,0x26,0x03,0xed,0x00,0x00,0x01,0x07,0x01,0x52, -0x00,0x95,0x00,0x1b,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0x00,0x00,0x00,0x02,0x00,0x6e,0x04,0xe4,0x03,0x4d,0x06,0xfc,0x00,0x08,0x00,0x1c,0x00,0x09,0x40,0x06,0x1c,0x12,0x07,0x01,0x02,0x0b,0x2b,0x01,0x07,0x23,0x27,0x07,0x23,0x27,0x01,0x33,0x37,0x14,0x06,0x23,0x22,0x26,0x23,0x22,0x06,0x15,0x27,0x34,0x36,0x33, -0x32,0x16,0x33,0x32,0x36,0x35,0x03,0x4d,0x02,0xaa,0xc4,0xc4,0xa9,0x02,0x01,0x21,0x9d,0xb6,0x61,0x42,0x35,0x71,0x26,0x1f,0x33,0x50,0x60,0x42,0x2a,0x7b,0x27,0x1e,0x36,0x04,0xea,0x06,0xb0,0xb0,0x06,0x01,0x01,0xfa,0x45,0x6b,0x47,0x3b,0x22,0x13,0x45,0x6f,0x45,0x38,0x23,0x00,0x00,0x00,0x00,0x02,0x00,0x6e,0x04,0xe4,0x04,0x31, -0x06,0xd1,0x00,0x08,0x00,0x18,0x00,0x09,0x40,0x06,0x11,0x09,0x00,0x03,0x02,0x0b,0x2b,0x01,0x23,0x01,0x17,0x33,0x37,0x17,0x33,0x37,0x2f,0x01,0x3e,0x01,0x35,0x34,0x26,0x23,0x37,0x32,0x16,0x15,0x14,0x06,0x0f,0x01,0x02,0x40,0xc6,0xfe,0xf4,0x02,0xa9,0xc4,0xc4,0xaa,0x02,0x19,0x01,0x42,0x37,0x4b,0x3e,0x06,0x7f,0x89,0x4b,0x39, -0x01,0x05,0xeb,0xfe,0xff,0x06,0xba,0xba,0x06,0x84,0x85,0x04,0x1a,0x20,0x22,0x20,0x5e,0x57,0x4b,0x3d,0x40,0x07,0x3d,0x00,0x00,0x02,0xff,0x55,0x04,0xe4,0x03,0x4d,0x06,0x98,0x00,0x08,0x00,0x0c,0x00,0x09,0x40,0x06,0x0b,0x09,0x07,0x01,0x02,0x0b,0x2b,0x01,0x07,0x23,0x27,0x07,0x23,0x27,0x01,0x33,0x05,0x23,0x03,0x33,0x03,0x4d, -0x02,0xc7,0xa7,0xa7,0xc6,0x02,0x01,0x20,0x9e,0xfe,0x87,0x93,0xcb,0xd2,0x04,0xea,0x06,0x9d,0x9d,0x06,0x01,0x01,0x57,0x01,0x04,0x00,0x00,0x00,0x00,0x02,0x00,0x78,0x04,0xe4,0x04,0x71,0x06,0x98,0x00,0x08,0x00,0x0c,0x00,0x09,0x40,0x06,0x09,0x0b,0x00,0x03,0x02,0x0b,0x2b,0x01,0x33,0x01,0x07,0x23,0x27,0x07,0x23,0x27,0x01,0x33, -0x03,0x23,0x01,0x99,0x9e,0x01,0x20,0x02,0xc6,0xa7,0xa7,0xc7,0x02,0x03,0x26,0xd3,0xcc,0x93,0x05,0xeb,0xfe,0xff,0x06,0x9d,0x9d,0x06,0x01,0xae,0xfe,0xfc,0x00,0x00,0x00,0x02,0x00,0x27,0x00,0x00,0x04,0x8a,0x04,0x8d,0x00,0x07,0x00,0x0b,0x00,0x09,0x40,0x06,0x0a,0x08,0x04,0x02,0x02,0x0b,0x2b,0x01,0x21,0x03,0x23,0x01,0x33,0x01, -0x23,0x01,0x21,0x03,0x23,0x03,0x57,0xfe,0x03,0x67,0xcc,0x01,0xd5,0xba,0x01,0xd4,0xcb,0xfd,0xd6,0x01,0x87,0xc1,0x06,0x01,0x0c,0xfe,0xf4,0x04,0x8d,0xfb,0x73,0x01,0xa6,0x01,0xf2,0x00,0x00,0x02,0x00,0x6d,0x04,0xa5,0x02,0xed,0x06,0xa8,0x00,0x0f,0x00,0x14,0x00,0x09,0x40,0x06,0x13,0x10,0x00,0x03,0x02,0x0b,0x2b,0x01,0x17,0x16, -0x06,0x23,0x22,0x26,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x27,0x23,0x27,0x37,0x33,0x02,0xe6,0x02,0x05,0xae,0x92,0x93,0xad,0x06,0x02,0x95,0x4f,0x54,0x53,0x4f,0x4c,0x9d,0xd0,0x02,0xdc,0x05,0xb0,0x06,0x73,0x92,0x92,0x73,0x06,0x41,0x52,0x52,0x41,0x2b,0xc7,0x06,0x00,0x00,0x00,0x00,0x01,0x00,0xa0,0x04,0x8c,0x01,0x7a, -0x06,0x17,0x00,0x05,0x00,0x07,0x40,0x04,0x01,0x04,0x01,0x0b,0x2b,0x13,0x37,0x33,0x03,0x15,0x23,0xa0,0x79,0x61,0x15,0xc5,0x05,0x20,0xf7,0xfe,0xff,0x8a,0x00,0x00,0x00,0x03,0x00,0x99,0x00,0x00,0x04,0x0d,0x04,0x8d,0x00,0x0e,0x00,0x18,0x00,0x21,0x00,0x0b,0x40,0x08,0x1f,0x19,0x0f,0x10,0x01,0x00,0x03,0x0b,0x2b,0x33,0x11,0x21, -0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x01,0x15,0x14,0x06,0x23,0x01,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x27,0x23,0x25,0x33,0x32,0x36,0x35,0x34,0x26,0x2b,0x01,0x99,0x01,0x8d,0xd5,0xed,0x5e,0x57,0x66,0x74,0xdd,0xc5,0xfe,0xf3,0x01,0x0d,0x6d,0x6f,0x6a,0x67,0x0b,0xfe,0xf3,0xc8,0x7c,0x81,0x7b,0x82,0xc8,0x04,0x8d,0x9f,0x9f,0x54, -0x82,0x21,0x19,0x96,0x60,0xa2,0xa7,0x02,0x09,0xfe,0x8f,0x5e,0x58,0x54,0x64,0x03,0x8d,0x59,0x55,0x56,0x46,0x00,0x00,0x00,0x00,0x01,0x00,0x70,0xff,0xef,0x04,0x26,0x04,0x9d,0x00,0x1d,0x00,0x07,0x40,0x04,0x0a,0x03,0x01,0x0b,0x2b,0x01,0x17,0x16,0x04,0x23,0x22,0x00,0x3d,0x01,0x34,0x00,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26, -0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x04,0x1e,0x02,0x05,0xfe,0xfd,0xce,0xcf,0xfe,0xeb,0x01,0x15,0xcf,0xd4,0xfe,0x05,0x02,0xbd,0x8e,0x80,0x7b,0xa4,0xa4,0x7b,0x7f,0x8e,0x01,0x7d,0x06,0xbd,0xcb,0x01,0x0c,0xd2,0xf3,0xd1,0x01,0x0c,0xcb,0xbb,0x06,0x79,0x7a,0xba,0x89,0xf4,0x8b,0xbb,0x7a,0x7c,0x00,0x00,0x00, -0x00,0x02,0x00,0x99,0x00,0x00,0x04,0x31,0x04,0x8d,0x00,0x09,0x00,0x13,0x00,0x09,0x40,0x06,0x0a,0x0b,0x01,0x00,0x02,0x0b,0x2b,0x33,0x11,0x21,0x32,0x00,0x1d,0x01,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x23,0x99,0x01,0xa5,0xd3,0x01,0x20,0xfe,0xe0,0xd3,0xe0,0xe0,0x7e,0xb0,0xb0,0x7e,0x04,0x8d,0xfe,0xf3, -0xd1,0xd2,0xd2,0xfe,0xf5,0x03,0xf4,0xfc,0xa4,0xba,0x8b,0xd3,0x89,0xbb,0x00,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x03,0xc8,0x04,0x8d,0x00,0x0b,0x00,0x07,0x40,0x04,0x06,0x04,0x01,0x0b,0x2b,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x03,0x71,0xfd,0xed,0x02,0x6a,0xfc,0xd1,0x03,0x2f,0xfd,0x96,0x02,0x13,0x02, -0x12,0xfe,0x86,0x98,0x04,0x8d,0x99,0xfe,0xb8,0x00,0x00,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x03,0xca,0x04,0x8d,0x00,0x09,0x00,0x07,0x40,0x04,0x04,0x02,0x01,0x0b,0x2b,0x01,0x21,0x11,0x23,0x11,0x21,0x15,0x21,0x11,0x21,0x03,0x73,0xfd,0xeb,0xc5,0x03,0x31,0xfd,0x94,0x02,0x15,0x01,0xf5,0xfe,0x0b,0x04,0x8d,0x99,0xfe,0x9b,0x00, -0x00,0x01,0x00,0x70,0xff,0xef,0x04,0x4b,0x04,0x9d,0x00,0x20,0x00,0x07,0x40,0x04,0x09,0x02,0x01,0x0b,0x2b,0x25,0x0e,0x01,0x23,0x22,0x00,0x3d,0x01,0x34,0x00,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x35,0x21,0x35,0x21,0x04,0x4b,0x2d,0xf2,0xb5,0xe7,0xfe,0xe0,0x01,0x22, -0xe1,0xde,0xf3,0x04,0x02,0xbc,0x91,0x7e,0x8c,0xb2,0xb0,0x92,0x69,0x89,0x1f,0xfe,0xfe,0x01,0xc5,0x9d,0x41,0x6d,0x01,0x09,0xd5,0xf3,0xd3,0x01,0x0a,0xc9,0x9d,0x06,0x65,0x6e,0xb8,0x8b,0xf4,0x8e,0xb8,0x2a,0x1b,0xfa,0x9a,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x04,0x5a,0x04,0x8d,0x00,0x0b,0x00,0x07,0x40,0x04,0x06,0x00,0x01,0x0b, -0x2b,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x04,0x5a,0xc6,0xfd,0xca,0xc5,0xc5,0x02,0x36,0xc6,0x01,0xeb,0xfe,0x15,0x04,0x8d,0xfd,0xf7,0x02,0x09,0x00,0x00,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x01,0x5d,0x04,0x8d,0x00,0x03,0x00,0x07,0x40,0x04,0x02,0x00,0x01,0x0b,0x2b,0x21,0x23,0x11,0x33,0x01,0x5d,0xc4, -0xc4,0x04,0x8d,0x00,0x00,0x01,0x00,0x40,0xff,0xef,0x03,0x77,0x04,0x8d,0x00,0x10,0x00,0x07,0x40,0x04,0x00,0x04,0x01,0x0b,0x2b,0x01,0x33,0x11,0x14,0x06,0x23,0x22,0x26,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x02,0xb3,0xc4,0xe3,0xaf,0xc3,0xe2,0x06,0x02,0xbc,0x76,0x6b,0x58,0x76,0x04,0x8d,0xfc,0xd5,0xaa,0xc9,0xb2,0xaa, -0x06,0x65,0x65,0x79,0x62,0x00,0x00,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x04,0x41,0x04,0x8d,0x00,0x0e,0x00,0x07,0x40,0x04,0x04,0x02,0x01,0x0b,0x2b,0x01,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x33,0x17,0x09,0x01,0x07,0x23,0x01,0xc1,0x63,0xc5,0xc5,0x54,0x01,0x84,0xe7,0x03,0xfe,0x39,0x01,0xe8,0x03,0xf1,0x01,0xf4,0xfe,0x0c, -0x04,0x8d,0xfe,0x04,0x01,0xfc,0x05,0xfd,0xd6,0xfd,0xa7,0x05,0x00,0x01,0x00,0x99,0x00,0x00,0x03,0x6b,0x04,0x8d,0x00,0x05,0x00,0x07,0x40,0x04,0x04,0x02,0x01,0x0b,0x2b,0x25,0x21,0x15,0x21,0x11,0x33,0x01,0x5e,0x02,0x0d,0xfd,0x2e,0xc5,0x98,0x98,0x04,0x8d,0x00,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x05,0x55,0x04,0x8d,0x00,0x0f, -0x00,0x07,0x40,0x04,0x02,0x04,0x01,0x0b,0x2b,0x01,0x33,0x01,0x33,0x11,0x23,0x11,0x27,0x01,0x23,0x01,0x07,0x11,0x23,0x11,0x33,0x02,0xf7,0x06,0x01,0x62,0xf6,0xc5,0x06,0xfe,0xb4,0x88,0xfe,0xae,0x06,0xc5,0xfe,0x01,0x03,0x03,0x8a,0xfb,0x73,0x03,0x29,0x02,0xfc,0xd5,0x03,0x3d,0x02,0xfc,0xc5,0x04,0x8d,0x00,0x00,0x01,0x00,0x92, -0x02,0x88,0x03,0x13,0x03,0x23,0x00,0x03,0x00,0x07,0x40,0x04,0x02,0x00,0x01,0x0b,0x2b,0x01,0x21,0x35,0x21,0x03,0x13,0xfd,0x7f,0x02,0x81,0x02,0x88,0x9b,0x00,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x04,0x76,0x04,0x8d,0x00,0x0b,0x00,0x07,0x40,0x04,0x06,0x00,0x01,0x0b,0x2b,0x21,0x23,0x01,0x07,0x11,0x23,0x11,0x33,0x01,0x37,0x11, -0x33,0x04,0x76,0xc4,0xfd,0xb2,0x06,0xc5,0xc5,0x02,0x4e,0x06,0xc4,0x03,0x5b,0x02,0xfc,0xa7,0x04,0x8d,0xfc,0xa5,0x02,0x03,0x59,0x00,0x00,0x00,0x00,0x02,0x00,0x70,0xff,0xef,0x04,0x5b,0x04,0x9d,0x00,0x0d,0x00,0x1b,0x00,0x09,0x40,0x06,0x10,0x17,0x09,0x02,0x02,0x0b,0x2b,0x01,0x14,0x00,0x23,0x22,0x00,0x3d,0x01,0x34,0x00,0x33, -0x32,0x00,0x15,0x27,0x34,0x26,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x04,0x5b,0xfe,0xeb,0xe0,0xdf,0xfe,0xe9,0x01,0x15,0xdf,0xe0,0x01,0x17,0xc5,0xa4,0x8e,0x8d,0xa2,0xa3,0x8e,0x8e,0xa2,0x01,0xcd,0xd6,0xfe,0xf8,0x01,0x09,0xd5,0xf3,0xd4,0x01,0x09,0xfe,0xf7,0xd4,0x01,0x97,0xac,0xac,0x97,0xf4,0x9a,0xac,0xac, -0x9a,0x00,0x00,0x00,0x00,0x02,0x00,0x7b,0xff,0xeb,0x04,0x2f,0x05,0xc5,0x00,0x0d,0x00,0x1b,0x00,0x09,0x40,0x06,0x10,0x17,0x09,0x02,0x02,0x0b,0x2b,0x01,0x14,0x02,0x23,0x22,0x02,0x35,0x11,0x34,0x12,0x33,0x32,0x00,0x15,0x27,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x04,0x2f,0xfe,0xdb,0xdc,0xff,0xfe, -0xdb,0xdb,0x01,0x00,0xc6,0x8e,0x87,0x87,0x8d,0x8f,0x87,0x87,0x8c,0x02,0x02,0xf8,0xfe,0xe1,0x01,0x1f,0xf8,0x01,0xac,0xf6,0x01,0x21,0xfe,0xdf,0xf6,0x02,0xb0,0xca,0xcb,0xaf,0xfe,0x52,0xb1,0xcc,0xcb,0xb2,0xff,0xff,0x00,0x5d,0xff,0xef,0x08,0x82,0x04,0x9d,0x00,0x26,0x03,0xeb,0x00,0x00,0x00,0x07,0x03,0xeb,0x04,0x71,0x00,0x00, -0xff,0xff,0x00,0x4e,0x00,0x00,0x03,0xd8,0x06,0x06,0x02,0x26,0x03,0xf2,0x00,0x00,0x01,0x06,0x01,0x53,0x3a,0x1b,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x4e,0x00,0x00,0x03,0xd8,0x05,0xca,0x02,0x26,0x03,0xf2,0x00,0x00,0x01,0x07,0x01,0x55,0x00,0xf3,0x00,0x1a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1a,0xb0, -0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x4e,0x00,0x00,0x03,0xd8,0x06,0x04,0x02,0x26,0x03,0xf2,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x23,0x00,0x16,0x00,0x08,0xb1,0x01,0x01,0xb0,0x16,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x1e,0x00,0x00,0x04,0x35,0x05,0xc9,0x02,0x26,0x03,0xf1,0x00,0x00,0x01,0x06,0x00,0x6a,0x21,0x19,0x00,0x08, -0xb1,0x01,0x02,0xb0,0x19,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x1e,0x00,0x00,0x04,0x35,0x06,0x04,0x02,0x26,0x03,0xf1,0x00,0x00,0x01,0x06,0x01,0x52,0x46,0x19,0x00,0x08,0xb1,0x01,0x01,0xb0,0x19,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x3f,0x00,0x00,0x05,0xc0,0x06,0x05,0x02,0x26,0x03,0xef,0x00,0x00,0x01,0x07,0x01,0x52,0x01,0x1b,0x00,0x1a, -0x00,0x08,0xb1,0x01,0x01,0xb0,0x1a,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x89,0xfe,0x50,0x04,0x74,0x04,0x8d,0x02,0x26,0x03,0xed,0x00,0x00,0x00,0x07,0x01,0x57,0x01,0x76,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0xef,0x04,0x74,0x06,0x09,0x02,0x26,0x03,0xed,0x00,0x00,0x01,0x07,0x01,0x59,0x01,0x22,0x00,0x1b,0x00,0x08,0xb1,0x01, -0x02,0xb0,0x1b,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0xef,0x04,0x74,0x06,0x2d,0x02,0x26,0x03,0xed,0x00,0x00,0x01,0x07,0x01,0x56,0x01,0x1c,0x00,0x68,0x00,0x08,0xb1,0x01,0x02,0xb0,0x68,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0xef,0x04,0x74,0x06,0x0c,0x02,0x26,0x03,0xed,0x00,0x00,0x01,0x07,0x01,0x54, -0x00,0xc6,0x00,0x5c,0x00,0x08,0xb1,0x01,0x01,0xb0,0x5c,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0xef,0x04,0x74,0x05,0xb8,0x02,0x26,0x03,0xed,0x00,0x00,0x01,0x07,0x00,0x71,0x00,0x94,0x00,0x08,0x00,0x08,0xb1,0x01,0x01,0xb0,0x08,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0xef,0x04,0x74,0x06,0x12,0x02,0x26, -0x03,0xed,0x00,0x00,0x01,0x07,0x01,0x58,0x00,0x90,0x00,0x1f,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1f,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x47,0x00,0x00,0x03,0xd1,0x06,0x05,0x02,0x26,0x03,0xec,0x00,0x00,0x01,0x06,0x01,0x53,0x3d,0x1a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1a,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x47,0xfe,0x22,0x03,0xd1, -0x04,0x8d,0x02,0x26,0x03,0xec,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0x0a,0xfe,0xa8,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0xa8,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x5d,0xff,0xef,0x04,0x11,0x06,0x16,0x02,0x26,0x03,0xeb,0x00,0x00,0x01,0x06,0x01,0x53,0x67,0x2b,0x00,0x08,0xb1,0x01,0x01,0xb0,0x2b,0xb0,0x0d,0x2b,0x00,0x01,0x00,0x5a, -0xff,0xef,0x03,0xa8,0x04,0x8d,0x00,0x1f,0x00,0x07,0x40,0x04,0x01,0x0d,0x01,0x0b,0x2b,0x1b,0x01,0x21,0x15,0x21,0x03,0x3e,0x01,0x37,0x36,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x3f,0x02,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x87,0x47,0x02,0xa6,0xfe,0x05,0x21,0x25,0x72,0x38,0xb5,0xcc,0xd2,0xdb,0xb2,0xef, -0x05,0x01,0xbd,0x7b,0x63,0x76,0x72,0x6f,0x65,0x66,0x63,0x18,0x01,0xf8,0x02,0x95,0xa4,0xfe,0xca,0x19,0x25,0x02,0x03,0xca,0xb9,0xb2,0xd2,0xa1,0x9d,0x06,0x0e,0x53,0x67,0x7c,0x6e,0x6b,0x7d,0x39,0x35,0x00,0xff,0xff,0x00,0x5d,0xff,0xef,0x04,0x11,0x06,0x15,0x02,0x26,0x03,0xeb,0x00,0x00,0x01,0x06,0x01,0x52,0x50,0x2a,0x00,0x08, -0xb1,0x01,0x01,0xb0,0x2a,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x5d,0xff,0xef,0x04,0x11,0x06,0x14,0x02,0x26,0x03,0xeb,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x50,0x00,0x26,0x00,0x08,0xb1,0x01,0x01,0xb0,0x26,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x04,0x2c,0x06,0x06,0x02,0x26,0x03,0xdc,0x00,0x00,0x01,0x06,0x01,0x53, -0x3c,0x1b,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x99,0xfe,0x22,0x04,0x2c,0x04,0x8d,0x02,0x26,0x03,0xdc,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0x09,0xfe,0xa8,0x00,0x09,0xb1,0x02,0x01,0xb8,0xfe,0xa8,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x04,0x2c,0x06,0x04,0x02,0x26,0x03,0xdc,0x00,0x00, -0x01,0x07,0x00,0x76,0x01,0x25,0x00,0x16,0x00,0x08,0xb1,0x02,0x01,0xb0,0x16,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x70,0xff,0xef,0x04,0x5b,0x06,0x18,0x02,0x26,0x03,0x82,0x00,0x00,0x01,0x07,0x01,0x59,0x01,0x05,0x00,0x2a,0x00,0x08,0xb1,0x02,0x02,0xb0,0x2a,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x70,0xff,0xef,0x04,0x5b, -0x06,0x1b,0x02,0x26,0x03,0x82,0x00,0x00,0x01,0x07,0x01,0x54,0x00,0xa9,0x00,0x6b,0x00,0x08,0xb1,0x02,0x01,0xb0,0x6b,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x70,0xff,0xef,0x04,0x5b,0x05,0xc7,0x02,0x26,0x03,0x82,0x00,0x00,0x01,0x06,0x00,0x71,0x77,0x17,0x00,0x08,0xb1,0x02,0x01,0xb0,0x17,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x99, -0x00,0x00,0x04,0x76,0x06,0x06,0x02,0x26,0x03,0x81,0x00,0x00,0x01,0x07,0x01,0x53,0x00,0xae,0x00,0x1b,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x99,0xfe,0x22,0x04,0x76,0x04,0x8d,0x02,0x26,0x03,0x81,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0x7b,0xfe,0xa8,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0xa8, -0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x04,0x76,0x06,0x04,0x02,0x26,0x03,0x81,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x97,0x00,0x16,0x00,0x08,0xb1,0x01,0x01,0xb0,0x16,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x03,0x6b,0x04,0x8d,0x02,0x26,0x03,0x7e,0x00,0x00,0x01,0x07,0x01,0x55,0x01,0x31,0xfd,0x29, -0x00,0x09,0xb1,0x01,0x01,0xb8,0xfd,0x29,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x03,0x6b,0x04,0x8e,0x02,0x26,0x03,0x7e,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0x4b,0x03,0x9b,0x00,0x09,0xb1,0x01,0x01,0xb8,0x03,0x9b,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x99,0xfe,0x22,0x03,0x6b,0x04,0x8d,0x02,0x26,0x03,0x7e,0x00,0x00, -0x01,0x07,0x03,0x63,0x00,0xe3,0xfe,0xa8,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0xa8,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x6a,0x00,0x00,0x03,0x6b,0x05,0xd3,0x02,0x26,0x03,0x7e,0x00,0x00,0x01,0x06,0x00,0x76,0xe7,0xe5,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xe5,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x99,0xfe,0x20,0x04,0x41, -0x04,0x8d,0x02,0x26,0x03,0x7d,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0x06,0xfe,0xa6,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0xa6,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x40,0xff,0xef,0x04,0x42,0x05,0xfc,0x02,0x26,0x03,0x7c,0x00,0x00,0x01,0x07,0x01,0x52,0x01,0x31,0x00,0x11,0x00,0x08,0xb1,0x01,0x01,0xb0,0x11,0xb0,0x0d,0x2b,0x00,0x00, -0xff,0xff,0x00,0x8e,0x00,0x00,0x01,0x68,0x05,0xca,0x02,0x26,0x03,0x7b,0x00,0x00,0x01,0x06,0x01,0x55,0xee,0x1a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1a,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x3b,0xfe,0x50,0x01,0xca,0x04,0x8d,0x02,0x26,0x03,0x7b,0x00,0x00,0x00,0x06,0x01,0x57,0xf7,0x00,0x00,0x00,0xff,0xff,0xff,0xd0,0x00,0x00,0x02,0x27, -0x06,0x0b,0x02,0x26,0x03,0x7b,0x00,0x00,0x01,0x07,0x01,0x54,0xff,0x4f,0x00,0x5b,0x00,0x08,0xb1,0x01,0x01,0xb0,0x5b,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0xff,0x98,0x00,0x00,0x02,0x69,0x05,0xb7,0x02,0x26,0x03,0x7b,0x00,0x00,0x01,0x07,0x00,0x71,0xff,0x1d,0x00,0x07,0x00,0x08,0xb1,0x01,0x01,0xb0,0x07,0xb0,0x0d,0x2b,0x00,0x00, -0xff,0xff,0xff,0xa0,0x00,0x00,0x02,0x56,0x06,0x11,0x02,0x26,0x03,0x7b,0x00,0x00,0x01,0x07,0x01,0x58,0xff,0x19,0x00,0x1e,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1e,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x04,0x5a,0x06,0x05,0x02,0x26,0x03,0x7a,0x00,0x00,0x01,0x06,0x01,0x52,0x7f,0x1a,0x00,0x08,0xb1,0x01,0x01,0xb0, -0x1a,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x70,0xfe,0x14,0x04,0x4b,0x04,0x9d,0x02,0x26,0x03,0x79,0x00,0x00,0x01,0x07,0x03,0x63,0x01,0x59,0xfe,0x9a,0x00,0x09,0xb1,0x01,0x01,0xb8,0xfe,0x9a,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x70,0xff,0xef,0x04,0x4b,0x05,0xda,0x02,0x26,0x03,0x79,0x00,0x00,0x01,0x07,0x01,0x55,0x01,0x44,0x00,0x2a, -0x00,0x08,0xb1,0x01,0x01,0xb0,0x2a,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x70,0xff,0xef,0x04,0x4b,0x06,0x1b,0x02,0x26,0x03,0x79,0x00,0x00,0x01,0x07,0x01,0x54,0x00,0xa5,0x00,0x6b,0x00,0x08,0xb1,0x01,0x01,0xb0,0x6b,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x70,0xff,0xef,0x04,0x4b,0x06,0x15,0x02,0x26,0x03,0x79,0x00,0x00, -0x01,0x06,0x01,0x52,0x74,0x2a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x2a,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x99,0x00,0x00,0x03,0xc8,0x06,0x06,0x02,0x26,0x03,0x77,0x00,0x00,0x01,0x06,0x01,0x53,0x5b,0x1b,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x99,0xfe,0x50,0x03,0xc8,0x04,0x8d,0x02,0x26,0x03,0x77,0x00,0x00, -0x00,0x07,0x01,0x57,0x01,0x18,0x00,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x03,0xc8,0x05,0xca,0x02,0x26,0x03,0x77,0x00,0x00,0x01,0x07,0x01,0x55,0x01,0x14,0x00,0x1a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1a,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x03,0xc8,0x06,0x0b,0x02,0x26,0x03,0x77,0x00,0x00,0x01,0x06,0x01,0x54, -0x75,0x5b,0x00,0x08,0xb1,0x01,0x01,0xb0,0x5b,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x99,0x00,0x00,0x03,0xc8,0x05,0xb7,0x02,0x26,0x03,0x77,0x00,0x00,0x01,0x06,0x00,0x71,0x43,0x07,0x00,0x08,0xb1,0x01,0x01,0xb0,0x07,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x99,0x00,0x00,0x04,0x31,0x06,0x06,0x02,0x26,0x03,0x76,0x00,0x00,0x01,0x06,0x01,0x53, -0x2c,0x1b,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x70,0xff,0xef,0x04,0x26,0x06,0x16,0x02,0x26,0x03,0x75,0x00,0x00,0x01,0x06,0x01,0x53,0x7f,0x2b,0x00,0x08,0xb1,0x01,0x01,0xb0,0x2b,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x70,0xff,0xef,0x04,0x26,0x05,0xda,0x02,0x26,0x03,0x75,0x00,0x00,0x01,0x07,0x01,0x55, -0x01,0x38,0x00,0x2a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x2a,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x70,0xff,0xef,0x04,0x26,0x06,0x15,0x02,0x26,0x03,0x75,0x00,0x00,0x01,0x06,0x01,0x52,0x68,0x2a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x2a,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x70,0xff,0xef,0x04,0x26,0x06,0x14,0x02,0x26,0x03,0x75,0x00,0x00, -0x01,0x07,0x00,0x76,0x01,0x68,0x00,0x26,0x00,0x08,0xb1,0x01,0x01,0xb0,0x26,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x27,0xfe,0x50,0x04,0xbd,0x04,0x8d,0x02,0x26,0x03,0x71,0x00,0x00,0x00,0x07,0x01,0x57,0x02,0xea,0x00,0x00,0xff,0xff,0x00,0x27,0x00,0x00,0x04,0x8a,0x06,0x0b,0x02,0x26,0x03,0x71,0x00,0x00,0x01,0x07,0x01,0x54, -0x00,0xa9,0x00,0x5b,0x00,0x08,0xb1,0x02,0x01,0xb0,0x5b,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x27,0x00,0x00,0x04,0x8a,0x05,0xb7,0x02,0x26,0x03,0x71,0x00,0x00,0x01,0x06,0x00,0x71,0x77,0x07,0x00,0x08,0xb1,0x02,0x01,0xb0,0x07,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x1e,0x00,0x00,0x04,0x35,0x06,0x03,0x02,0x26,0x03,0xf1,0x00,0x00, -0x01,0x07,0x00,0x76,0x01,0x46,0x00,0x15,0x00,0x08,0xb1,0x01,0x01,0xb0,0x15,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0xef,0x04,0x74,0x05,0xcb,0x02,0x26,0x03,0xed,0x00,0x00,0x01,0x06,0x00,0x6a,0x70,0x1b,0x00,0x08,0xb1,0x01,0x02,0xb0,0x1b,0xb0,0x0d,0x2b,0x00,0x02,0x00,0x81,0x04,0xdf,0x02,0xe0,0x06,0x8b,0x00,0x0f, -0x00,0x14,0x00,0x09,0x40,0x06,0x10,0x13,0x00,0x03,0x02,0x0b,0x2b,0x01,0x17,0x16,0x06,0x23,0x22,0x26,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x27,0x33,0x17,0x07,0x23,0x02,0xd8,0x02,0x06,0xa4,0x8b,0x8c,0xa4,0x07,0x02,0x97,0x45,0x4b,0x49,0x46,0x5d,0x9b,0x02,0x9f,0x6a,0x05,0xb0,0x06,0x59,0x72,0x72,0x59,0x06,0x33,0x3f, -0x3f,0x33,0xdb,0x05,0xc0,0x00,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0xef,0x04,0x74,0x06,0x05,0x02,0x26,0x03,0xed,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x95,0x00,0x17,0x00,0x08,0xb1,0x01,0x01,0xb0,0x17,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0xef,0x04,0x74,0x06,0x09,0x02,0x26,0x03,0xed,0x00,0x00,0x01,0x07,0x00,0x43, -0x00,0xdb,0x00,0x1b,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1b,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x70,0xff,0xef,0x04,0x5b,0x05,0xda,0x02,0x26,0x03,0x82,0x00,0x00,0x01,0x06,0x00,0x6a,0x53,0x2a,0x00,0x08,0xb1,0x02,0x02,0xb0,0x2a,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x70,0xff,0xef,0x04,0x5b,0x06,0x21,0x02,0x26,0x03,0x82,0x00,0x00, -0x01,0x06,0x01,0x58,0x73,0x2e,0x00,0x08,0xb1,0x02,0x01,0xb0,0x2e,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x70,0xff,0xef,0x04,0x5b,0x06,0x15,0x02,0x26,0x03,0x82,0x00,0x00,0x01,0x06,0x01,0x52,0x78,0x2a,0x00,0x08,0xb1,0x02,0x01,0xb0,0x2a,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x70,0xff,0xef,0x04,0x5b,0x06,0x14,0x02,0x26,0x03,0x82,0x00,0x00, -0x01,0x07,0x00,0x76,0x01,0x78,0x00,0x26,0x00,0x08,0xb1,0x02,0x01,0xb0,0x26,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x70,0xff,0xef,0x04,0x5b,0x06,0x18,0x02,0x26,0x03,0x82,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xbe,0x00,0x2a,0x00,0x08,0xb1,0x02,0x01,0xb0,0x2a,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x04,0x76, -0x06,0x11,0x02,0x26,0x03,0x81,0x00,0x00,0x01,0x07,0x01,0x58,0x00,0x92,0x00,0x1e,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1e,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0xff,0xa3,0x00,0x00,0x02,0x54,0x05,0xca,0x02,0x26,0x03,0x7b,0x00,0x00,0x01,0x07,0x00,0x6a,0xfe,0xf9,0x00,0x1a,0x00,0x08,0xb1,0x01,0x02,0xb0,0x1a,0xb0,0x0d,0x2b,0x00,0x00, -0xff,0xff,0xff,0xc9,0x00,0x00,0x02,0x2f,0x06,0x05,0x02,0x26,0x03,0x7b,0x00,0x00,0x01,0x07,0x01,0x52,0xff,0x1e,0x00,0x1a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1a,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x02,0x41,0x06,0x04,0x02,0x26,0x03,0x7b,0x00,0x00,0x01,0x06,0x00,0x76,0x1d,0x16,0x00,0x08,0xb1,0x01,0x01,0xb0, -0x16,0xb0,0x0d,0x2b,0xff,0xff,0xff,0xb6,0x00,0x00,0x01,0x5d,0x06,0x08,0x02,0x26,0x03,0x7b,0x00,0x00,0x01,0x07,0x00,0x43,0xff,0x64,0x00,0x1a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1a,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x03,0xc8,0x05,0xca,0x02,0x26,0x03,0x77,0x00,0x00,0x01,0x06,0x00,0x6a,0x1f,0x1a,0x00,0x08, -0xb1,0x01,0x02,0xb0,0x1a,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x99,0x00,0x00,0x03,0xc8,0x06,0x05,0x02,0x26,0x03,0x77,0x00,0x00,0x01,0x06,0x01,0x52,0x44,0x1a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1a,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x99,0x00,0x00,0x03,0xc8,0x06,0x04,0x02,0x26,0x03,0x77,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x44,0x00,0x16, -0x00,0x08,0xb1,0x01,0x01,0xb0,0x16,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x99,0x00,0x00,0x03,0xc8,0x06,0x08,0x02,0x26,0x03,0x77,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0x8a,0x00,0x1a,0x00,0x08,0xb1,0x01,0x01,0xb0,0x1a,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x70,0xfe,0x47,0x04,0x26,0x04,0x9d,0x02,0x26,0x03,0x75,0x00,0x00, -0x01,0x07,0x00,0x7a,0x01,0x6d,0xff,0xfa,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xfa,0xb0,0x0d,0x2b,0x00,0xff,0xff,0x00,0x27,0x00,0x00,0x04,0x8a,0x06,0xe2,0x02,0x26,0x03,0x71,0x00,0x00,0x01,0x07,0x04,0x02,0x01,0x0e,0x00,0x70,0x00,0x08,0xb1,0x02,0x03,0xb0,0x70,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x27,0x00,0x00,0x04,0x8a, -0x06,0x2c,0x02,0x26,0x03,0x71,0x00,0x00,0x01,0x07,0x01,0x56,0x00,0xff,0x00,0x67,0x00,0x08,0xb1,0x02,0x02,0xb0,0x67,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x27,0x00,0x00,0x04,0x8a,0x05,0xca,0x02,0x26,0x03,0x71,0x00,0x00,0x01,0x06,0x00,0x6a,0x53,0x1a,0x00,0x08,0xb1,0x02,0x02,0xb0,0x1a,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x27, -0x00,0x00,0x04,0x8a,0x06,0x11,0x02,0x26,0x03,0x71,0x00,0x00,0x01,0x06,0x01,0x58,0x73,0x1e,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1e,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x27,0x00,0x00,0x04,0x8a,0x06,0x05,0x02,0x26,0x03,0x71,0x00,0x00,0x01,0x06,0x01,0x52,0x78,0x1a,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1a,0xb0,0x0d,0x2b,0xff,0xff,0x00,0x27, -0x00,0x00,0x04,0x8a,0x06,0x04,0x02,0x26,0x03,0x71,0x00,0x00,0x01,0x07,0x00,0x76,0x01,0x78,0x00,0x16,0x00,0x08,0xb1,0x02,0x01,0xb0,0x16,0xb0,0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x27,0x00,0x00,0x04,0x8a,0x06,0x08,0x02,0x26,0x03,0x71,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xbe,0x00,0x1a,0x00,0x08,0xb1,0x02,0x01,0xb0,0x1a,0xb0, -0x0d,0x2b,0x00,0x00,0xff,0xff,0x00,0x47,0x00,0x00,0x03,0xd1,0x04,0x8d,0x02,0x26,0x03,0xec,0x00,0x00,0x01,0x06,0x03,0x80,0x2d,0xf9,0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xf9,0xb0,0x0d,0x2b,0x00,0x00,0x00,0xff,0xff,0xff,0xf5,0x00,0x00,0x04,0x31,0x04,0x8d,0x02,0x26,0x03,0x76,0x00,0x00,0x01,0x07,0x03,0x80,0xff,0x63,0xff,0x7c, -0x00,0x09,0xb1,0x02,0x01,0xb8,0xff,0x7c,0xb0,0x0d,0x2b,0x00,0xff,0xff,0xff,0xf5,0x00,0x00,0x04,0x31,0x04,0x8d,0x02,0x26,0x03,0x76,0x00,0x00,0x01,0x07,0x03,0x80,0xff,0x63,0xff,0x7c,0x00,0x09,0xb1,0x02,0x01,0xb8,0xff,0x7c,0xb0,0x0d,0x2b,0x00,0x00,0x02,0x00,0x70,0xff,0x8a,0x04,0x9a,0x04,0x9d,0x00,0x13,0x00,0x21,0x00,0x09, -0x40,0x06,0x16,0x1d,0x0f,0x05,0x02,0x0b,0x2b,0x01,0x14,0x06,0x07,0x17,0x07,0x27,0x0e,0x01,0x23,0x22,0x00,0x3d,0x01,0x34,0x00,0x33,0x32,0x00,0x15,0x27,0x34,0x26,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x04,0x5b,0x34,0x30,0xa3,0x87,0xa7,0x38,0x85,0x49,0xdf,0xfe,0xe9,0x01,0x15,0xdf,0xe0,0x01,0x17,0xc5,0xa4, -0x8e,0x8d,0xa2,0xa3,0x8e,0x8e,0xa2,0x01,0xcd,0x59,0x9b,0x3c,0x9f,0x74,0xa1,0x1e,0x1e,0x01,0x09,0xd5,0xf3,0xd4,0x01,0x09,0xfe,0xf7,0xd4,0x01,0x97,0xac,0xac,0x97,0xf4,0x9a,0xac,0xac,0x9a,0x00,0x00,0x00,0x00,0x02,0x00,0x99,0x00,0x00,0x04,0x2c,0x04,0x8d,0x00,0x1a,0x00,0x23,0x00,0x09,0x40,0x06,0x21,0x1b,0x03,0x01,0x02,0x0b, -0x2b,0x01,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x01,0x1d,0x01,0x14,0x16,0x17,0x15,0x23,0x2e,0x01,0x3d,0x01,0x34,0x26,0x23,0x25,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x01,0x5e,0xc5,0x01,0xcd,0xcd,0xe1,0x63,0x60,0x68,0x5b,0x0b,0x0d,0xcb,0x0c,0x06,0x68,0x62,0xfe,0xd9,0x01,0x08,0x78,0x70,0x71,0x77,0xfe, -0xf8,0x01,0xdf,0xfe,0x21,0x04,0x8d,0xb4,0xa2,0x59,0x7e,0x27,0x1e,0x90,0x69,0x76,0x2d,0x56,0x16,0x13,0x17,0x62,0x34,0x74,0x5a,0x64,0x9a,0x5e,0x58,0x5c,0x69,0x00,0xff,0xff,0x00,0x81,0x04,0xa4,0x02,0xd8,0x05,0xb0,0x02,0x06,0x01,0x54,0x00,0x00,0x00,0x02,0x00,0x81,0x04,0xe0,0x02,0xca,0x07,0x2a,0x00,0x0f,0x00,0x20,0x00,0x09, -0x40,0x06,0x19,0x10,0x00,0x0a,0x02,0x0b,0x2b,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x23,0x07,0x06,0x16,0x33,0x32,0x36,0x2f,0x01,0x25,0x27,0x3e,0x01,0x27,0x35,0x36,0x26,0x23,0x37,0x32,0x16,0x15,0x14,0x06,0x0f,0x01,0x02,0x31,0x44,0x47,0x48,0x44,0x90,0x02,0x07,0x9e,0x87,0x86,0x9e,0x06,0x02,0xfe,0xb3,0x01,0x49,0x3c,0x05,0x05, -0x51,0x46,0x07,0x8e,0x98,0x53,0x3f,0x01,0x05,0xb0,0x33,0x3f,0x40,0x32,0x06,0x59,0x71,0x71,0x59,0x06,0x38,0x7e,0x03,0x17,0x1a,0x06,0x1c,0x1b,0x53,0x4e,0x42,0x35,0x37,0x07,0x3f,0x00,0x00,0x02,0x00,0x81,0x04,0xdb,0x02,0xd3,0x06,0xd4,0x00,0x0f,0x00,0x23,0x00,0x09,0x40,0x06,0x23,0x19,0x00,0x03,0x02,0x0b,0x2b,0x01,0x17,0x16, -0x06,0x23,0x22,0x26,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x13,0x14,0x06,0x23,0x22,0x26,0x23,0x22,0x06,0x15,0x27,0x34,0x36,0x33,0x32,0x16,0x33,0x32,0x36,0x35,0x02,0xcb,0x02,0x06,0xa0,0x88,0x89,0xa1,0x07,0x02,0x94,0x43,0x4a,0x47,0x45,0x94,0x5f,0x47,0x3a,0x7c,0x29,0x22,0x2d,0x58,0x5e,0x49,0x2d,0x87,0x2b,0x20,0x30, -0x05,0xb0,0x06,0x5b,0x74,0x74,0x5b,0x06,0x34,0x41,0x41,0x34,0x01,0x0c,0x4b,0x6b,0x4c,0x34,0x25,0x15,0x4a,0x6f,0x4c,0x33,0x26,0x00,0x00,0x00,0x00,0x01,0x00,0x60,0xfe,0x99,0x01,0x25,0x00,0x9d,0x00,0x03,0x00,0x07,0x40,0x04,0x02,0x00,0x01,0x0b,0x2b,0x01,0x23,0x11,0x33,0x01,0x25,0xc5,0xc5,0xfe,0x99,0x02,0x04,0x00,0x00,0x00, -0x00,0x01,0x00,0x13,0xfe,0x63,0x01,0xc9,0x00,0x43,0x00,0x13,0x00,0x07,0x40,0x04,0x00,0x05,0x01,0x0b,0x2b,0x37,0x1e,0x01,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0xf8,0x69,0x68,0x85,0x66,0x44,0x60,0x27,0x21,0x1e,0x37,0x22,0x3d,0x36,0x46,0x3b,0x43,0x34,0x8f,0x4c,0x63,0x6e,0x19, -0x13,0x7b,0x0b,0x0f,0x30,0x2a,0x31,0x57,0x2e,0x00,0x00,0x00,0x00,0x01,0xff,0xbe,0xfe,0x4b,0x01,0x72,0x00,0x9a,0x00,0x0f,0x00,0x07,0x40,0x04,0x00,0x03,0x01,0x0b,0x2b,0x25,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x3d,0x01,0x01,0x72,0xac,0x99,0x1f,0x33,0x1d,0x0e,0x0e,0x40,0x13,0x3c,0x44,0x9a,0xf3, -0xa7,0xb5,0x09,0x09,0xa0,0x05,0x07,0x5e,0x58,0xf3,0x00,0x00,0x00,0x01,0xff,0xa0,0xff,0xce,0x02,0xca,0x03,0x70,0x00,0x0f,0x00,0x07,0x40,0x04,0x00,0x07,0x01,0x0b,0x2b,0x03,0x21,0x32,0x00,0x15,0x06,0x02,0x07,0x27,0x3e,0x01,0x35,0x2e,0x01,0x23,0x21,0x60,0x01,0x17,0xeb,0x01,0x28,0x02,0xc3,0xbe,0x33,0x80,0x70,0x01,0xb6,0x96, -0xfe,0xe9,0x03,0x70,0xff,0x00,0xdc,0x8a,0xfe,0xe6,0x22,0x94,0x22,0x9d,0x73,0x93,0xa4,0x00,0x00,0x00,0x00,0x01,0x00,0x71,0x00,0x00,0x02,0x55,0x05,0xc5,0x00,0x05,0x00,0x07,0x40,0x04,0x05,0x00,0x01,0x0b,0x2b,0x21,0x23,0x11,0x05,0x35,0x25,0x02,0x55,0xc5,0xfe,0xe1,0x01,0xe4,0x04,0xfa,0x03,0xa2,0x2c,0x00,0x00,0x01,0x00,0x53, -0x00,0x00,0x03,0xe7,0x05,0xc5,0x00,0x1a,0x00,0x07,0x40,0x04,0x10,0x00,0x01,0x0b,0x2b,0x29,0x01,0x35,0x01,0x3e,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x27,0x26,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x01,0x17,0x21,0x03,0xe7,0xfc,0x8f,0x01,0xaf,0x7d,0x5c,0x7a,0x70,0x78,0x85,0xbd,0x02,0x05,0xf5,0xcc,0xc6,0xe9,0x9f, -0x9f,0xfe,0xe0,0x02,0x02,0x80,0x9a,0x01,0xf5,0x8a,0xa9,0x52,0x79,0x9d,0x9f,0x75,0x06,0xb2,0xf7,0xe3,0xd0,0x7d,0xe9,0xb3,0xfe,0xa6,0x05,0x00,0x00,0x01,0x00,0x69,0xff,0xeb,0x04,0x2d,0x05,0xc5,0x00,0x2a,0x00,0x07,0x40,0x04,0x0d,0x19,0x01,0x0b,0x2b,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x27,0x26,0x24,0x33, -0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x01,0x15,0x14,0x04,0x23,0x22,0x24,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x2b,0x01,0x35,0x02,0x4e,0x84,0x80,0x8c,0x88,0x6b,0x92,0xbd,0x02,0x05,0x01,0x04,0xbd,0xdb,0xfd,0x73,0x64,0x73,0x7b,0xfe,0xee,0xdd,0xc0,0xfe,0xeb,0x05,0x02,0xbd,0x98,0x79,0x8b,0x9f,0x8f,0x8b,0xb6, -0x03,0x33,0x84,0x73,0x70,0x90,0x8e,0x69,0x06,0xb0,0xdc,0xd7,0xc8,0x65,0xa6,0x30,0x2a,0xae,0x7d,0xc8,0xe3,0xd6,0xcd,0x06,0x72,0x9d,0x95,0x78,0x85,0x81,0x9b,0x00,0x00,0x02,0x00,0x49,0x00,0x00,0x04,0x6f,0x05,0xb0,0x00,0x0a,0x00,0x0f,0x00,0x09,0x40,0x06,0x0e,0x0b,0x09,0x04,0x02,0x0b,0x2b,0x01,0x33,0x15,0x23,0x11,0x23,0x11, -0x21,0x35,0x01,0x33,0x01,0x21,0x11,0x27,0x07,0x03,0x9c,0xd3,0xd3,0xc5,0xfd,0x72,0x02,0x83,0xd0,0xfd,0x8d,0x01,0xae,0x06,0x12,0x01,0xd4,0x9a,0xfe,0xc6,0x01,0x3a,0x6f,0x04,0x07,0xfc,0x24,0x02,0xd0,0x01,0x2d,0x00,0x00,0x00,0x00,0x01,0x00,0x84,0xff,0xeb,0x04,0x3d,0x05,0xb0,0x00,0x1f,0x00,0x07,0x40,0x04,0x01,0x0d,0x01,0x0b, -0x2b,0x1b,0x01,0x21,0x15,0x21,0x03,0x3e,0x01,0x37,0x36,0x16,0x15,0x14,0x02,0x23,0x22,0x24,0x3f,0x02,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0xb0,0x54,0x03,0x02,0xfd,0xa4,0x2f,0x31,0x7d,0x50,0xd5,0xef,0xf6,0xea,0xca,0xfe,0xf1,0x05,0x02,0xb4,0xa2,0x7c,0x86,0x95,0x96,0x85,0x7d,0x71,0x1c,0x02,0x7d,0x03, -0x33,0xaf,0xfe,0x54,0x22,0x2d,0x02,0x02,0xf9,0xdf,0xdb,0xfe,0xf6,0xca,0xc5,0x06,0x12,0x78,0x95,0xb0,0x99,0x8a,0xa3,0x46,0x48,0x00,0x00,0x00,0x00,0x02,0x00,0x8e,0xff,0xeb,0x04,0x56,0x05,0xc5,0x00,0x1a,0x00,0x27,0x00,0x09,0x40,0x06,0x1b,0x21,0x00,0x13,0x02,0x0b,0x2b,0x01,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x1d, -0x01,0x3e,0x01,0x33,0x32,0x16,0x15,0x14,0x00,0x23,0x22,0x00,0x35,0x11,0x34,0x00,0x13,0x22,0x06,0x07,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0xa5,0x56,0xa8,0x36,0x2a,0x41,0x76,0x53,0x94,0xbe,0x3a,0xa4,0x61,0xd3,0xf1,0xff,0x00,0xda,0xd3,0xfe,0xe5,0x01,0x38,0xa5,0x67,0x8d,0x24,0xab,0x7e,0x86,0x8f,0x8f,0x05,0xc5, -0x21,0x1a,0x97,0x1a,0x1d,0xe0,0xaa,0x94,0x43,0x4d,0xf4,0xdc,0xdf,0xfe,0xfe,0x01,0x14,0xef,0x01,0xb0,0xef,0x01,0x38,0xfd,0x30,0x44,0x3e,0x85,0xa8,0xc1,0xb2,0x95,0x97,0x92,0x00,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xd5,0x05,0xb0,0x00,0x0c,0x00,0x07,0x40,0x04,0x0b,0x04,0x01,0x0b,0x2b,0x01,0x0a,0x01,0x11,0x15,0x23,0x35, -0x10,0x00,0x37,0x21,0x35,0x21,0x03,0xd5,0xde,0xc4,0xc5,0x01,0x0d,0x99,0xfd,0x11,0x03,0xb0,0x05,0x15,0xfe,0xf4,0xfe,0x4d,0xfe,0x91,0xe7,0xe7,0x01,0x62,0x02,0x29,0xa3,0x9b,0x00,0x00,0x00,0x01,0x00,0x5d,0xff,0xef,0x04,0x11,0x04,0x9d,0x00,0x27,0x00,0x07,0x40,0x04,0x08,0x1c,0x01,0x0b,0x2b,0x01,0x34,0x26,0x27,0x2e,0x01,0x35, -0x34,0x36,0x33,0x32,0x16,0x0f,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x01,0x15,0x14,0x06,0x23,0x22,0x24,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x03,0x4c,0x7c,0xa2,0xdf,0xcb,0xf3,0xce,0xd2,0xeb,0x05,0x02,0xbb,0x84,0x77,0x7d,0x7f,0x73,0xb2,0xd7,0xcc,0xfe,0xda,0xca,0xfe,0xee,0x06,0x01,0xbc,0xa3,0x76, -0x83,0x90,0x01,0x30,0x47,0x58,0x28,0x3a,0x95,0x96,0x93,0xae,0xba,0xa8,0x06,0x5c,0x73,0x5d,0x4a,0x49,0x51,0x2b,0x3a,0x9c,0x91,0x9a,0xa8,0xaa,0xb8,0x06,0x6c,0x64,0x5e,0x00,0x00,0x00,0x00,0x01,0x00,0x47,0x00,0x00,0x03,0xd1,0x04,0x8d,0x00,0x07,0x00,0x07,0x40,0x04,0x06,0x02,0x01,0x0b,0x2b,0x01,0x21,0x11,0x23,0x11,0x21,0x35, -0x21,0x03,0xd1,0xfe,0x9b,0xc5,0xfe,0xa0,0x03,0x8a,0x03,0xf4,0xfc,0x0c,0x03,0xf4,0x99,0x00,0x00,0x00,0x00,0x01,0x00,0x89,0xff,0xef,0x04,0x74,0x04,0x8d,0x00,0x11,0x00,0x07,0x40,0x04,0x00,0x03,0x01,0x0b,0x2b,0x01,0x11,0x14,0x04,0x23,0x22,0x24,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x04,0x74,0xfe,0xe9,0xdf, -0xdd,0xfe,0xe8,0xc4,0xa9,0x88,0x89,0xa9,0x04,0x8d,0xfd,0x01,0xc3,0xdc,0xdc,0xc3,0x02,0xff,0xfd,0x01,0x7b,0x8c,0x8b,0x7c,0x02,0xff,0x00,0x00,0x00,0x01,0x00,0x27,0x00,0x00,0x04,0x83,0x04,0x8d,0x00,0x09,0x00,0x07,0x40,0x04,0x04,0x06,0x01,0x0b,0x2b,0x01,0x17,0x33,0x37,0x01,0x33,0x01,0x23,0x01,0x33,0x02,0x3b,0x17,0x06,0x17, -0x01,0x41,0xd3,0xfe,0x2e,0xb9,0xfe,0x2f,0xd3,0x01,0x29,0x52,0x50,0x03,0x66,0xfb,0x73,0x04,0x8d,0x00,0x00,0x01,0x00,0x3f,0x00,0x00,0x05,0xc0,0x04,0x8d,0x00,0x11,0x00,0x07,0x40,0x04,0x03,0x0a,0x01,0x0b,0x2b,0x01,0x15,0x37,0x13,0x33,0x13,0x15,0x37,0x13,0x33,0x01,0x23,0x03,0x23,0x03,0x23,0x01,0x33,0x01,0xc7,0x01,0xdd,0xb7, -0xdd,0x01,0xb3,0xd3,0xfe,0xda,0xb6,0xe1,0x06,0xe3,0xb5,0xfe,0xda,0xd3,0x01,0x08,0x03,0x05,0x03,0x83,0xfc,0x7b,0x03,0x05,0x03,0x83,0xfb,0x73,0x03,0x57,0xfc,0xa9,0x04,0x8d,0x00,0x00,0x00,0x01,0x00,0x37,0x00,0x00,0x04,0x42,0x04,0x8d,0x00,0x0b,0x00,0x07,0x40,0x04,0x01,0x04,0x01,0x0b,0x2b,0x09,0x01,0x33,0x09,0x01,0x23,0x09, -0x01,0x23,0x09,0x01,0x33,0x02,0x3a,0x01,0x16,0xe9,0xfe,0x78,0x01,0x91,0xe6,0xfe,0xe1,0xfe,0xe3,0xe9,0x01,0x92,0xfe,0x77,0xe8,0x02,0xdc,0x01,0xb1,0xfd,0xbf,0xfd,0xb4,0x01,0xba,0xfe,0x46,0x02,0x4c,0x02,0x41,0x00,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x04,0x35,0x04,0x8d,0x00,0x08,0x00,0x07,0x40,0x04,0x01,0x04,0x01,0x0b, -0x2b,0x09,0x01,0x33,0x01,0x11,0x23,0x11,0x01,0x33,0x02,0x29,0x01,0x2f,0xdd,0xfe,0x54,0xc5,0xfe,0x5a,0xdd,0x02,0x4d,0x02,0x40,0xfd,0x0d,0xfe,0x66,0x01,0xa3,0x02,0xea,0x00,0x00,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xd8,0x04,0x8d,0x00,0x09,0x00,0x07,0x40,0x04,0x07,0x02,0x01,0x0b,0x2b,0x25,0x21,0x15,0x21,0x35,0x01,0x21, -0x35,0x21,0x15,0x01,0x3d,0x02,0x9b,0xfc,0x76,0x02,0x81,0xfd,0xa1,0x03,0x50,0x98,0x98,0x76,0x03,0x7e,0x99,0x72,0x00,0x00,0x00,0x02,0x00,0x78,0xff,0xef,0x03,0xfa,0x04,0x9d,0x00,0x0d,0x00,0x1b,0x00,0x09,0x40,0x06,0x10,0x17,0x09,0x02,0x02,0x0b,0x2b,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x27, -0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x03,0xfa,0xf7,0xc9,0xca,0xf8,0xf7,0xc9,0xca,0xf8,0xc5,0x88,0x75,0x73,0x88,0x89,0x74,0x74,0x87,0x01,0x9b,0xc5,0xe7,0xe8,0xc4,0x01,0x57,0xc3,0xe8,0xe8,0xc3,0x01,0x7c,0x95,0x96,0x7b,0xfe,0xa8,0x7d,0x97,0x96,0x7e,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x01,0xc3, -0x04,0x9d,0x00,0x05,0x00,0x07,0x40,0x04,0x05,0x00,0x01,0x0b,0x2b,0x21,0x23,0x11,0x07,0x35,0x25,0x01,0xc3,0xc5,0xb0,0x01,0x75,0x03,0xde,0x02,0xa0,0x21,0x00,0x00,0x00,0x01,0x00,0x59,0x00,0x00,0x03,0x73,0x04,0x9d,0x00,0x1a,0x00,0x07,0x40,0x04,0x10,0x00,0x01,0x0b,0x2b,0x29,0x01,0x35,0x01,0x3e,0x01,0x35,0x34,0x26,0x23,0x22, -0x06,0x15,0x23,0x27,0x26,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x0f,0x01,0x17,0x21,0x03,0x73,0xfc,0xf3,0x01,0x96,0x66,0x45,0x5c,0x57,0x65,0x72,0xbc,0x02,0x06,0xe0,0xbb,0xaf,0xc9,0x75,0x9e,0xf8,0x03,0x02,0x0f,0x98,0x01,0x96,0x61,0x72,0x3e,0x54,0x71,0x73,0x53,0x06,0x8f,0xca,0xb8,0xa8,0x6d,0x99,0xa0,0xf9,0x06,0x00,0x00,0x00, -0x00,0x01,0x00,0x5a,0xff,0xef,0x03,0xa3,0x04,0x9d,0x00,0x2a,0x00,0x07,0x40,0x04,0x0d,0x19,0x01,0x0b,0x2b,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x27,0x26,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x01,0x15,0x14,0x06,0x23,0x22,0x26,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x2b,0x01,0x35, -0x02,0x00,0x68,0x63,0x6e,0x6a,0x54,0x72,0xbb,0x02,0x06,0xe2,0xa7,0xc0,0xdd,0x60,0x54,0x60,0x67,0xf0,0xc0,0xa8,0xf1,0x05,0x02,0xba,0x79,0x5f,0x6c,0x7e,0x6f,0x6e,0xa8,0x02,0x9d,0x5f,0x54,0x4c,0x68,0x60,0x47,0x06,0x8c,0xae,0xac,0xa0,0x50,0x85,0x26,0x23,0x8a,0x63,0xa1,0xb6,0xab,0xa2,0x06,0x4d,0x6e,0x6d,0x52,0x62,0x5f,0x96, -0x00,0x02,0x00,0x47,0x00,0x00,0x04,0x15,0x04,0x8d,0x00,0x0a,0x00,0x0e,0x00,0x09,0x40,0x06,0x0d,0x0b,0x09,0x04,0x02,0x0b,0x2b,0x01,0x33,0x15,0x23,0x15,0x23,0x35,0x21,0x27,0x01,0x33,0x03,0x11,0x27,0x01,0x03,0x52,0xc3,0xc3,0xc5,0xfd,0xbe,0x04,0x02,0x3f,0xcc,0xc5,0x06,0xfe,0x99,0x01,0x85,0x9a,0xeb,0xeb,0x7a,0x03,0x28,0xfc, -0xf8,0x01,0xfb,0x02,0xfe,0x03,0x00,0x00,0x00,0x02,0x00,0x78,0xff,0xef,0x03,0xd7,0x04,0x9d,0x00,0x1a,0x00,0x27,0x00,0x09,0x40,0x06,0x1b,0x21,0x00,0x13,0x02,0x0b,0x2b,0x01,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x1d,0x01,0x3e,0x01,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x24,0x13,0x22,0x06,0x07, -0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x4f,0x42,0x93,0x43,0x21,0x3a,0x72,0x49,0x79,0x9b,0x32,0x8f,0x58,0xb9,0xc8,0xef,0xbf,0xba,0xf7,0x01,0x11,0xa1,0x58,0x7a,0x1b,0x86,0x66,0x69,0x80,0x72,0x04,0x9d,0x1c,0x17,0x94,0x18,0x16,0xa3,0x7d,0x6a,0x34,0x3a,0xc6,0xb3,0xab,0xd5,0xf8,0xc4,0x01,0x37,0xc3,0xf8,0xfd,0xb1, -0x40,0x36,0x2d,0x7d,0xa7,0x86,0x62,0x68,0x77,0x00,0x00,0x00,0x00,0x02,0x00,0x68,0xff,0xf5,0x02,0xec,0x03,0x2c,0x00,0x1a,0x00,0x27,0x00,0x09,0x40,0x06,0x21,0x1b,0x0c,0x13,0x02,0x0b,0x2b,0x25,0x32,0x36,0x3d,0x01,0x0e,0x01,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x1d,0x01,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x1e,0x01, -0x13,0x32,0x36,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x97,0x48,0x60,0x1f,0x54,0x2f,0x91,0xa4,0xb4,0x8f,0x8a,0xb7,0xc3,0x92,0x33,0x6e,0x32,0x1c,0x2b,0x54,0x48,0x3c,0x4f,0x0d,0x58,0x42,0x42,0x50,0x4b,0x77,0x54,0x43,0x49,0x21,0x22,0x91,0x7a,0x72,0x9b,0xac,0x86,0xeb,0x7d,0x9d,0x12,0x10,0x7f,0x11,0x0e,0x01, -0x17,0x31,0x23,0x18,0x4c,0x63,0x53,0x37,0x42,0x4f,0x00,0x00,0x00,0x03,0x00,0x70,0xff,0xf5,0x03,0x07,0x03,0x2c,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x0b,0x40,0x08,0x26,0x2c,0x1a,0x20,0x14,0x08,0x03,0x0b,0x2b,0x01,0x14,0x06,0x07,0x1e,0x01,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x2e,0x01,0x35,0x34,0x36,0x33,0x32, -0x16,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x02,0xef,0x49,0x3e,0x49,0x56,0xb9,0x8c,0x92,0xc0,0x59,0x4c,0x42,0x4a,0xb1,0x87,0x82,0xac,0x92,0x5c,0x40,0x46,0x60,0x5f,0x48,0x41,0x5a,0x1a,0x4b,0x37,0x3d,0x4f,0x51,0x3c,0x35,0x4c,0x02,0x50,0x3b, -0x5b,0x1b,0x1c,0x63,0x3f,0x70,0x7c,0x7c,0x70,0x3f,0x64,0x1c,0x1b,0x5a,0x3b,0x69,0x73,0x73,0xfe,0x2f,0x33,0x43,0x42,0x34,0x34,0x3d,0x3d,0x01,0x93,0x2d,0x35,0x34,0x2e,0x2e,0x39,0x39,0x00,0x02,0x00,0x68,0x04,0x6f,0x02,0xcc,0x05,0xc5,0x00,0x05,0x00,0x0b,0x00,0x09,0x40,0x06,0x09,0x06,0x01,0x04,0x02,0x0b,0x2b,0x01,0x13,0x33, -0x15,0x03,0x23,0x05,0x33,0x35,0x37,0x23,0x07,0x01,0x95,0x66,0xd1,0xe5,0x52,0xfe,0xd3,0xbc,0x52,0x6c,0xa2,0x04,0x8c,0x01,0x39,0x15,0xfe,0xc1,0x02,0x89,0xcc,0xc6,0x00,0x01,0x00,0x5f,0x00,0x00,0x02,0xac,0x03,0x21,0x00,0x0c,0x00,0x07,0x40,0x04,0x0b,0x04,0x01,0x0b,0x2b,0x01,0x0e,0x01,0x1d,0x01,0x23,0x35,0x34,0x12,0x37,0x21, -0x35,0x21,0x02,0xac,0x86,0x6f,0xac,0x9b,0x59,0xfe,0x60,0x02,0x4d,0x02,0x9e,0x9e,0xcb,0xb6,0x7f,0x7f,0xb5,0x01,0x17,0x53,0x83,0x00,0x00,0x00,0x00,0x02,0x00,0x78,0xff,0xf5,0x03,0x04,0x03,0x2c,0x00,0x1a,0x00,0x27,0x00,0x09,0x40,0x06,0x1b,0x21,0x00,0x13,0x02,0x0b,0x2b,0x01,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x1d, -0x01,0x3e,0x01,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x3d,0x01,0x34,0x36,0x13,0x22,0x06,0x07,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0xde,0x35,0x6c,0x2b,0x1e,0x27,0x52,0x33,0x53,0x69,0x24,0x65,0x3f,0x84,0x94,0xb6,0x90,0x8d,0xb9,0xcd,0x80,0x40,0x53,0x0e,0x56,0x44,0x47,0x54,0x4a,0x03,0x2c,0x13,0x10,0x7f, -0x10,0x0f,0x5e,0x4e,0x42,0x22,0x26,0x8c,0x7a,0x76,0x92,0xaa,0x87,0xd6,0x87,0xa9,0xfe,0x56,0x2c,0x26,0x0a,0x4e,0x61,0x4b,0x3b,0x3f,0x46,0x00,0x00,0x01,0x00,0x72,0xff,0xf5,0x02,0xf6,0x03,0x21,0x00,0x1f,0x00,0x07,0x40,0x04,0x01,0x0d,0x01,0x0b,0x2b,0x1b,0x01,0x21,0x15,0x21,0x07,0x3e,0x01,0x37,0x36,0x16,0x15,0x14,0x06,0x23, -0x22,0x26,0x3f,0x02,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x92,0x34,0x02,0x04,0xfe,0x95,0x1a,0x1e,0x4f,0x2a,0x84,0x96,0x9f,0xa6,0x89,0xb6,0x06,0x01,0xa2,0x52,0x44,0x4e,0x4c,0x4d,0x43,0x41,0x43,0x0f,0x01,0x5a,0x01,0xc7,0x85,0xb9,0x11,0x19,0x01,0x02,0x91,0x80,0x7a,0x90,0x6e,0x6a,0x06,0x0a,0x30,0x36, -0x45,0x42,0x42,0x51,0x22,0x1e,0x00,0x00,0x00,0x02,0x00,0x57,0x00,0x00,0x03,0x28,0x03,0x21,0x00,0x0a,0x00,0x0f,0x00,0x09,0x40,0x06,0x0e,0x0b,0x09,0x04,0x02,0x0b,0x2b,0x01,0x33,0x15,0x23,0x15,0x23,0x35,0x21,0x27,0x01,0x33,0x01,0x33,0x11,0x27,0x07,0x02,0xaa,0x7e,0x7e,0xaa,0xfe,0x5f,0x08,0x01,0xa6,0xad,0xfe,0x63,0xf3,0x06, -0x0d,0x01,0x1a,0x82,0x98,0x98,0x66,0x02,0x23,0xfd,0xf9,0x01,0x36,0x01,0x16,0x00,0x00,0x01,0x00,0x6a,0xff,0xf5,0x02,0xe4,0x03,0x2c,0x00,0x2a,0x00,0x07,0x40,0x04,0x0d,0x19,0x01,0x0b,0x2b,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x27,0x26,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x01,0x15,0x14,0x06,0x23, -0x22,0x26,0x3f,0x01,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x2b,0x01,0x35,0x01,0xa8,0x43,0x41,0x49,0x45,0x38,0x45,0xa2,0x02,0x06,0xa9,0x7e,0x91,0xa8,0x47,0x3e,0x46,0x4c,0xb4,0x92,0x7f,0xb5,0x06,0x01,0xa3,0x4b,0x3f,0x48,0x54,0x49,0x49,0x84,0x01,0xd7,0x39,0x34,0x2b,0x3a,0x30,0x28,0x06,0x5e,0x77,0x77,0x6e,0x37,0x5b, -0x1a,0x17,0x60,0x44,0x6f,0x7c,0x74,0x6f,0x06,0x2e,0x39,0x3b,0x30,0x3e,0x39,0x7e,0x00,0x01,0x00,0x71,0x00,0x00,0x02,0xca,0x03,0x2c,0x00,0x1a,0x00,0x07,0x40,0x04,0x10,0x00,0x01,0x0b,0x2b,0x29,0x01,0x35,0x01,0x3e,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x27,0x26,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x0f,0x01,0x17,0x21, -0x02,0xca,0xfd,0xb0,0x01,0x2e,0x45,0x2c,0x39,0x3a,0x43,0x49,0xa1,0x02,0x06,0xa8,0x8d,0x87,0x98,0x59,0x74,0x99,0x02,0x01,0x69,0x82,0x01,0x06,0x3c,0x4b,0x2a,0x32,0x3e,0x40,0x32,0x06,0x63,0x8c,0x80,0x74,0x50,0x70,0x69,0x87,0x06,0x00,0x00,0x00,0x00,0x03,0x00,0x9b,0x04,0x3d,0x02,0x74,0x06,0x72,0x00,0x04,0x00,0x10,0x00,0x1c, -0x00,0x0b,0x40,0x08,0x19,0x13,0x07,0x0d,0x00,0x03,0x03,0x0b,0x2b,0x01,0x33,0x17,0x07,0x23,0x07,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0xab,0xc7,0x02,0xd8,0x81,0x80,0x66,0x49,0x46,0x64,0x63,0x47,0x49,0x66,0x58,0x33,0x24,0x22,0x31,0x31,0x22, -0x24,0x33,0x06,0x72,0x06,0xb3,0xd8,0x48,0x5f,0x5f,0x48,0x48,0x5c,0x5c,0x48,0x23,0x31,0x30,0x24,0x25,0x33,0x33,0x00,0x00,0x00,0x01,0x00,0x5f,0x00,0x00,0x01,0x8c,0x03,0x2c,0x00,0x05,0x00,0x07,0x40,0x04,0x05,0x00,0x01,0x0b,0x2b,0x21,0x23,0x11,0x23,0x35,0x25,0x01,0x8c,0xae,0x7f,0x01,0x2d,0x02,0x8f,0x86,0x17,0x00,0x00,0x00, -0x00,0x02,0x00,0x78,0xff,0xf5,0x03,0x1e,0x03,0x2c,0x00,0x0d,0x00,0x1b,0x00,0x09,0x40,0x06,0x10,0x17,0x09,0x02,0x02,0x0b,0x2b,0x01,0x14,0x06,0x23,0x22,0x26,0x3d,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x27,0x34,0x26,0x23,0x22,0x06,0x1d,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x03,0x1e,0xbb,0x97,0x99,0xbb,0xba,0x98,0x98,0xbc,0xad, -0x59,0x4e,0x4e,0x58,0x59,0x4f,0x4d,0x58,0x01,0x1b,0x88,0x9e,0x9e,0x88,0xeb,0x86,0xa0,0xa0,0x86,0x01,0x4c,0x56,0x56,0x4c,0xec,0x4e,0x56,0x56,0x4e,0x00,0x00,0x00,0x00,0x02,0x00,0x47,0xff,0xef,0x03,0xa0,0x04,0x9d,0x00,0x1a,0x00,0x27,0x00,0x09,0x40,0x06,0x21,0x1b,0x0c,0x13,0x02,0x0b,0x2b,0x25,0x32,0x36,0x3d,0x01,0x0e,0x01, -0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x04,0x23,0x22,0x26,0x27,0x37,0x1e,0x01,0x13,0x32,0x36,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0xde,0x6c,0x91,0x2d,0x7f,0x48,0xc3,0xdd,0xf0,0xbe,0xb9,0xf2,0xff,0x00,0xc2,0x44,0x94,0x43,0x1f,0x3c,0x75,0x5b,0x58,0x7c,0x19,0x85,0x63,0x66,0x80,0x74, -0x87,0x94,0x6e,0x75,0x32,0x34,0xcf,0xaf,0xa6,0xe1,0xf9,0xc3,0xfe,0xa9,0xb5,0xe6,0x1a,0x18,0x95,0x1a,0x15,0x01,0xa3,0x4a,0x36,0x37,0x7c,0xa7,0x92,0x5c,0x66,0x86,0x00,0x03,0x00,0x58,0xff,0xef,0x03,0xc9,0x04,0x9d,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x0b,0x40,0x08,0x26,0x2c,0x1a,0x20,0x14,0x08,0x03,0x0b,0x2b,0x01,0x14,0x06, -0x07,0x1e,0x01,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x2e,0x01,0x35,0x34,0x36,0x33,0x32,0x16,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xa6,0x66,0x56,0x66,0x79,0xf7,0xb9,0xc2,0xff,0x7b,0x6a,0x5b,0x68,0xe9,0xb4,0xac,0xe3,0xa3, -0x8b,0x61,0x69,0x91,0x91,0x6b,0x62,0x88,0x23,0x77,0x52,0x5d,0x7b,0x7d,0x5d,0x53,0x74,0x03,0x5c,0x57,0x84,0x25,0x27,0x90,0x5e,0xa2,0xb6,0xb6,0xa2,0x5e,0x91,0x26,0x25,0x84,0x57,0x99,0xa8,0xa8,0xfd,0x56,0x54,0x6f,0x6f,0x54,0x57,0x6d,0x6d,0x02,0x64,0x4a,0x62,0x5e,0x4e,0x4d,0x63,0x63,0x00,0x01,0x00,0x47,0x00,0x00,0x03,0x67, -0x04,0x8d,0x00,0x0c,0x00,0x07,0x40,0x04,0x0b,0x04,0x01,0x0b,0x2b,0x01,0x06,0x02,0x11,0x15,0x23,0x35,0x10,0x12,0x37,0x21,0x35,0x21,0x03,0x67,0xbd,0xa3,0xc5,0xe7,0x8e,0xfd,0x90,0x03,0x20,0x03,0xf4,0xe8,0xfe,0xc0,0xfe,0xed,0xb9,0xb9,0x01,0x0c,0x01,0x96,0x99,0x99,0x00,0x03,0x00,0x82,0xff,0xeb,0x04,0x37,0x05,0xc5,0x00,0x17, -0x00,0x23,0x00,0x2f,0x00,0x0b,0x40,0x08,0x26,0x2c,0x1a,0x20,0x14,0x08,0x03,0x0b,0x2b,0x01,0x14,0x06,0x07,0x1e,0x01,0x15,0x14,0x04,0x23,0x22,0x24,0x35,0x34,0x36,0x37,0x2e,0x01,0x35,0x34,0x36,0x33,0x32,0x16,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32, -0x36,0x04,0x0e,0x81,0x6d,0x7e,0x99,0xfe,0xfa,0xc9,0xd6,0xfe,0xf0,0x9c,0x85,0x73,0x85,0xf7,0xc4,0xb9,0xef,0x9c,0x9b,0x71,0x7c,0xa3,0xa3,0x7e,0x72,0x98,0x29,0x83,0x60,0x6d,0x89,0x8c,0x6c,0x60,0x81,0x04,0x34,0x72,0xa8,0x28,0x29,0xb5,0x7c,0xca,0xe3,0xe2,0xcb,0x7c,0xb5,0x29,0x27,0xa9,0x72,0xc0,0xd1,0xd1,0xfc,0xa0,0x77,0x9a, -0x9a,0x77,0x7a,0x95,0x95,0x03,0x1f,0x69,0x88,0x83,0x6e,0x6f,0x8a,0x8a,0x00,0x00,0x00,0x02,0x00,0x5c,0xff,0xeb,0x04,0x20,0x05,0xc5,0x00,0x1a,0x00,0x27,0x00,0x09,0x40,0x06,0x21,0x1b,0x0c,0x13,0x02,0x0b,0x2b,0x25,0x32,0x36,0x3d,0x01,0x0e,0x01,0x23,0x22,0x26,0x35,0x34,0x00,0x33,0x32,0x00,0x15,0x11,0x14,0x00,0x23,0x22,0x26, -0x27,0x37,0x1e,0x01,0x13,0x32,0x36,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x1c,0x8e,0xb0,0x35,0xa3,0x5f,0xdf,0xe8,0x01,0x09,0xcb,0xdc,0x01,0x14,0xfe,0xe0,0xe4,0x52,0xac,0x4a,0x1f,0x45,0x8a,0x61,0x72,0xa2,0x23,0x9f,0x85,0x7d,0x98,0x7d,0x85,0xba,0xa9,0xa9,0x49,0x4c,0xe7,0xef,0xdf,0x01,0x14,0xfe,0xec,0xf8, -0xfe,0x31,0xf2,0xfe,0xf3,0x20,0x1f,0x96,0x20,0x1b,0x02,0x12,0x5c,0x45,0x8a,0xaa,0xbe,0xbb,0x9d,0xa0,0x9b,0x00,0x00,0x00,0x00,0x02,0x00,0x99,0x00,0x00,0x04,0x1f,0x04,0x8d,0x00,0x0a,0x00,0x13,0x00,0x09,0x40,0x06,0x11,0x0b,0x03,0x01,0x02,0x0b,0x2b,0x01,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x25,0x21,0x32,0x36, -0x35,0x34,0x26,0x23,0x21,0x01,0x5e,0xc5,0x01,0xd2,0xcb,0xe9,0xe9,0xcb,0xfe,0xf3,0x01,0x0d,0x75,0x79,0x79,0x75,0xfe,0xf3,0x01,0xa4,0xfe,0x5c,0x04,0x8d,0xd0,0xa5,0xa6,0xce,0x9a,0x7e,0x5a,0x5c,0x82,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x44,0x1b,0xa1,0x2d,0x5f,0x0f,0x3c,0xf5,0x00,0x09,0x08,0x00,0x00,0x00,0x00,0x00, -0xc4,0xf0,0x11,0x2e,0x00,0x00,0x00,0x00,0xca,0xfb,0x6b,0xe6,0xfc,0x2c,0xfd,0xd5,0x09,0x5c,0x08,0x73,0x00,0x00,0x00,0x09,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x07,0x6c,0xfe,0x0c,0x00,0x00,0x09,0x7a,0xfc,0x2c,0xff,0x3f,0x09,0x5c,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x04,0x0d,0x01,0xfd,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xfd,0x00,0x00,0x01,0xfd,0x00,0x00,0x02,0x1b,0x00,0xab,0x02,0xdd,0x00,0x7e,0x04,0xfc,0x00,0x46,0x04,0xa9,0x00,0x7f,0x05,0xda,0x00,0x68,0x04,0xfc,0x00,0x40,0x01,0xbd,0x00,0x7e,0x02,0xa7,0x00,0x84,0x02,0xaf,0x00,0x06,0x03,0x74,0x00,0x58,0x04,0x8a,0x00,0x4e, -0x01,0x94,0x00,0x30,0x03,0x9b,0x00,0xa7,0x02,0x24,0x00,0xa1,0x03,0x52,0x00,0x10,0x04,0x81,0x00,0x71,0x04,0x81,0x00,0xc3,0x04,0x81,0x00,0x85,0x04,0x81,0x00,0x73,0x04,0x81,0x00,0x48,0x04,0x81,0x00,0x98,0x04,0x81,0x00,0x89,0x04,0x81,0x00,0x61,0x04,0x81,0x00,0x66,0x04,0x81,0x00,0x5d,0x02,0x05,0x00,0xa1,0x02,0x0d,0x00,0x63, -0x04,0x10,0x00,0x47,0x04,0x81,0x00,0x98,0x04,0x30,0x00,0x88,0x03,0xce,0x00,0x3a,0x07,0x29,0x00,0x60,0x05,0x0f,0x00,0x2b,0x05,0x16,0x00,0xaa,0x05,0x11,0x00,0x76,0x05,0x6b,0x00,0xaa,0x04,0x6a,0x00,0xaa,0x04,0x6a,0x00,0xaa,0x05,0x6b,0x00,0x79,0x05,0xa1,0x00,0xaa,0x02,0x43,0x00,0xbe,0x04,0x63,0x00,0x4a,0x05,0x16,0x00,0xaa, -0x04,0x66,0x00,0xaa,0x06,0xf3,0x00,0xaa,0x05,0xa2,0x00,0xaa,0x05,0x74,0x00,0x71,0x05,0x16,0x00,0xaa,0x05,0x93,0x00,0x71,0x05,0x17,0x00,0xaa,0x04,0xe4,0x00,0x6d,0x04,0xc9,0x00,0x25,0x05,0x6a,0x00,0x93,0x05,0x0f,0x00,0x16,0x06,0xe3,0x00,0x25,0x05,0x0f,0x00,0x42,0x05,0x0f,0x00,0x28,0x04,0xc9,0x00,0x61,0x02,0x28,0x00,0x8f, -0x03,0x4e,0x00,0x27,0x02,0x28,0x00,0x0b,0x03,0x58,0x00,0x3d,0x03,0xa3,0x00,0x04,0x02,0x81,0x00,0x52,0x04,0x66,0x00,0x6a,0x04,0x8c,0x00,0x8f,0x04,0x30,0x00,0x61,0x04,0x8c,0x00,0x62,0x04,0x30,0x00,0x61,0x02,0xa2,0x00,0x38,0x04,0x8c,0x00,0x6c,0x04,0x8c,0x00,0x8f,0x02,0x04,0x00,0x9f,0x02,0x12,0xff,0xbe,0x04,0x1a,0x00,0x90, -0x02,0x04,0x00,0x9f,0x06,0xfe,0x00,0x8f,0x04,0x8c,0x00,0x8f,0x04,0x8c,0x00,0x61,0x04,0x8c,0x00,0x8f,0x04,0x8c,0x00,0x62,0x02,0xcd,0x00,0x8f,0x04,0x2f,0x00,0x67,0x02,0xb2,0x00,0x30,0x04,0x8c,0x00,0x8b,0x04,0x06,0x00,0x2e,0x06,0x0e,0x00,0x2d,0x04,0x06,0x00,0x2e,0x04,0x06,0x00,0x1a,0x04,0x06,0x00,0x5e,0x02,0xb8,0x00,0x3f, -0x01,0xfb,0x00,0x91,0x02,0xb8,0x00,0x15,0x05,0x6f,0x00,0x80,0x01,0xfd,0x00,0x00,0x01,0xfb,0x00,0x90,0x04,0x62,0x00,0x61,0x04,0xaa,0x00,0x46,0x05,0xb0,0x00,0x68,0x04,0xdb,0x00,0x1e,0x01,0xf3,0x00,0x91,0x04,0xeb,0x00,0x5a,0x03,0xfd,0x00,0xaa,0x06,0x44,0x00,0x58,0x03,0x95,0x00,0x78,0x03,0xc6,0x00,0x61,0x04,0x71,0x00,0x7f, -0x03,0x9b,0x00,0xa7,0x06,0x44,0x00,0x58,0x03,0xb6,0x00,0x7b,0x02,0xfb,0x00,0x80,0x04,0x49,0x00,0x63,0x03,0x64,0x00,0x71,0x03,0x6c,0x00,0x6a,0x02,0x8e,0x00,0x83,0x04,0x8c,0x00,0x99,0x03,0xee,0x00,0x3f,0x02,0x1c,0x00,0xa1,0x01,0xfd,0x00,0x77,0x02,0x2d,0x00,0x5f,0x03,0xa5,0x00,0x78,0x03,0xc6,0x00,0x74,0x06,0x3b,0x00,0xb8, -0x06,0xac,0x00,0xb8,0x06,0xf5,0x00,0x7a,0x03,0xf5,0x00,0x72,0x05,0x0f,0x00,0x2b,0x05,0x0f,0x00,0x2b,0x05,0x0f,0x00,0x2b,0x05,0x0f,0x00,0x2b,0x05,0x0f,0x00,0x2b,0x05,0x0f,0x00,0x2b,0x07,0xcf,0x00,0x0e,0x05,0x11,0x00,0x76,0x04,0x6a,0x00,0xaa,0x04,0x6a,0x00,0xaa,0x04,0x6a,0x00,0xaa,0x04,0x6a,0x00,0xaa,0x02,0x43,0xff,0xdd, -0x02,0x43,0x00,0xbe,0x02,0x43,0xff,0xf0,0x02,0x43,0xff,0xca,0x05,0x6b,0x00,0x02,0x05,0xa2,0x00,0xaa,0x05,0x74,0x00,0x71,0x05,0x74,0x00,0x71,0x05,0x74,0x00,0x71,0x05,0x74,0x00,0x71,0x05,0x74,0x00,0x71,0x04,0x48,0x00,0x58,0x05,0x74,0x00,0x71,0x05,0x6a,0x00,0x93,0x05,0x6a,0x00,0x93,0x05,0x6a,0x00,0x93,0x05,0x6a,0x00,0x93, -0x05,0x0f,0x00,0x28,0x04,0xb9,0x00,0xa3,0x04,0xc5,0x00,0x89,0x04,0x66,0x00,0x6a,0x04,0x66,0x00,0x6a,0x04,0x66,0x00,0x6a,0x04,0x66,0x00,0x6a,0x04,0x66,0x00,0x6a,0x04,0x66,0x00,0x6a,0x06,0xfd,0x00,0x58,0x04,0x30,0x00,0x61,0x04,0x30,0x00,0x61,0x04,0x30,0x00,0x61,0x04,0x30,0x00,0x61,0x04,0x30,0x00,0x61,0x02,0x03,0xff,0xb8, -0x02,0x03,0x00,0x99,0x02,0x03,0xff,0xcb,0x02,0x03,0xff,0xa5,0x04,0xb2,0x00,0x48,0x04,0x8c,0x00,0x8f,0x04,0x8c,0x00,0x61,0x04,0x8c,0x00,0x61,0x04,0x8c,0x00,0x61,0x04,0x8c,0x00,0x61,0x04,0x8c,0x00,0x61,0x04,0x92,0x00,0x47,0x04,0x8c,0x00,0x61,0x04,0x8c,0x00,0x8b,0x04,0x8c,0x00,0x8b,0x04,0x8c,0x00,0x8b,0x04,0x8c,0x00,0x8b, -0x04,0x06,0x00,0x1a,0x04,0xa2,0x00,0x99,0x04,0x06,0x00,0x1a,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a,0x05,0x11,0x00,0x76,0x04,0x30,0x00,0x61,0x05,0x11,0x00,0x76,0x04,0x30,0x00,0x61,0x05,0x11,0x00,0x76,0x04,0x30,0x00,0x61,0x05,0x11,0x00,0x76, -0x04,0x30,0x00,0x61,0x05,0x6b,0x00,0xaa,0x04,0x8c,0x00,0x62,0x05,0x6b,0x00,0x02,0x04,0x8c,0x00,0x62,0x04,0x6a,0x00,0xaa,0x04,0x30,0x00,0x61,0x04,0x6a,0x00,0xaa,0x04,0x30,0x00,0x61,0x04,0x6a,0x00,0xaa,0x04,0x30,0x00,0x61,0x04,0x6a,0x00,0xaa,0x04,0x30,0x00,0x61,0x04,0x6a,0x00,0xaa,0x04,0x30,0x00,0x61,0x05,0x6b,0x00,0x79, -0x04,0x8c,0x00,0x6c,0x05,0x6b,0x00,0x79,0x04,0x8c,0x00,0x6c,0x05,0x6b,0x00,0x79,0x04,0x8c,0x00,0x6c,0x05,0x6b,0x00,0x79,0x04,0x8c,0x00,0x6c,0x05,0xa1,0x00,0xaa,0x04,0x8c,0x00,0x8f,0x05,0x9f,0x00,0x1f,0x04,0x8c,0xff,0xe4,0x02,0x43,0xff,0xc7,0x02,0x03,0xff,0xa2,0x02,0x43,0xff,0xbf,0x02,0x03,0xff,0x9a,0x02,0x43,0xff,0xf7, -0x02,0x03,0xff,0xd2,0x02,0x43,0x00,0x2d,0x02,0x04,0x00,0x0d,0x02,0x43,0x00,0xb4,0x02,0x03,0x00,0x99,0x06,0xa6,0x00,0xbe,0x04,0x16,0x00,0x9f,0x04,0x63,0x00,0x4a,0x02,0x0b,0xff,0xbc,0x05,0x16,0x00,0xaa,0x04,0x1a,0x00,0x90,0x04,0x78,0x00,0x99,0x04,0x66,0x00,0xaa,0x02,0x04,0x00,0x9f,0x04,0x66,0x00,0xaa,0x02,0x04,0x00,0x6e, -0x04,0x66,0x00,0xaa,0x02,0x04,0x00,0x9f,0x04,0x66,0x00,0xaa,0x02,0x04,0x00,0x9f,0x04,0x35,0x00,0x28,0x02,0x2e,0x00,0x25,0x05,0xa2,0x00,0xaa,0x04,0x8c,0x00,0x8f,0x05,0xa2,0x00,0xaa,0x04,0x8c,0x00,0x8f,0x05,0xa2,0x00,0xaa,0x04,0x8c,0x00,0x8f,0x04,0x8c,0xff,0xdf,0x05,0x88,0x00,0xa1,0x04,0x8c,0x00,0x8f,0x05,0x74,0x00,0x71, -0x04,0x8c,0x00,0x61,0x05,0x74,0x00,0x71,0x04,0x8c,0x00,0x61,0x05,0x74,0x00,0x71,0x04,0x8c,0x00,0x61,0x07,0xa8,0x00,0x68,0x07,0x3e,0x00,0x61,0x05,0x17,0x00,0xaa,0x02,0xcd,0x00,0x8f,0x05,0x17,0x00,0xaa,0x02,0xcd,0x00,0x6b,0x05,0x17,0x00,0xaa,0x02,0xcd,0x00,0x64,0x04,0xe4,0x00,0x6d,0x04,0x2f,0x00,0x67,0x04,0xe4,0x00,0x6d, -0x04,0x2f,0x00,0x67,0x04,0xe4,0x00,0x6d,0x04,0x2f,0x00,0x67,0x04,0xe4,0x00,0x6d,0x04,0x2f,0x00,0x67,0x04,0xc9,0x00,0x25,0x02,0xb2,0x00,0x30,0x04,0xc9,0x00,0x25,0x02,0xb2,0x00,0x30,0x04,0xc9,0x00,0x25,0x02,0xb2,0x00,0x06,0x05,0x6a,0x00,0x93,0x04,0x8c,0x00,0x8b,0x05,0x6a,0x00,0x93,0x04,0x8c,0x00,0x8b,0x05,0x6a,0x00,0x93, -0x04,0x8c,0x00,0x8b,0x05,0x6a,0x00,0x93,0x04,0x8c,0x00,0x8b,0x05,0x6a,0x00,0x93,0x04,0x8c,0x00,0x8b,0x05,0x6a,0x00,0x93,0x04,0x8c,0x00,0x8b,0x06,0xe3,0x00,0x25,0x06,0x0e,0x00,0x2d,0x05,0x0f,0x00,0x28,0x04,0x06,0x00,0x1a,0x05,0x0f,0x00,0x28,0x04,0xc9,0x00,0x61,0x04,0x06,0x00,0x5e,0x04,0xc9,0x00,0x61,0x04,0x06,0x00,0x5e, -0x04,0xc9,0x00,0x61,0x04,0x06,0x00,0x5e,0x02,0x04,0x00,0x9f,0x02,0xbe,0xff,0xe9,0x05,0x7b,0x00,0x6c,0x04,0x97,0x00,0x61,0x05,0x96,0x00,0x93,0x04,0xb4,0x00,0x8b,0x02,0x0b,0xff,0xbc,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a,0x07,0xcf,0x00,0x0e,0x06,0xfd,0x00,0x58,0x05,0x74,0x00,0x71,0x04,0x8c,0x00,0x61,0x04,0xe4,0x00,0x6d, -0x04,0x2f,0x00,0x67,0x02,0x0b,0xff,0xbc,0x02,0x04,0x00,0xa0,0x03,0xd3,0x00,0xab,0x03,0x9a,0x00,0x8c,0x03,0x6c,0x00,0x81,0x02,0x2c,0x00,0xa0,0x02,0xb8,0x00,0xa5,0x02,0x32,0x00,0x44,0x03,0xd3,0x00,0x87,0x02,0xfa,0x00,0x64,0x02,0xa0,0x00,0xb6,0x00,0x00,0xfc,0xe6,0x00,0x00,0xfd,0x81,0x00,0x00,0xfc,0x8c,0x00,0x00,0xfd,0x5b, -0x00,0x00,0xfc,0x2c,0x00,0x00,0xfd,0x3c,0x02,0x0e,0x00,0xce,0x04,0x15,0x00,0xa1,0x05,0x0f,0x00,0x2b,0x02,0x1d,0x00,0xa1,0x04,0x6a,0xff,0x80,0x05,0xa1,0xff,0xb1,0x02,0x43,0xff,0xbf,0x05,0x74,0x00,0x3c,0x05,0x0f,0xff,0x3c,0x05,0x56,0x00,0x33,0x02,0xa0,0xff,0xcc,0x05,0x0f,0x00,0x2b,0x05,0x16,0x00,0xaa,0x04,0x63,0x00,0xa3, -0x05,0xa7,0x00,0x1e,0x04,0x6a,0x00,0xaa,0x04,0xc9,0x00,0x61,0x05,0xa1,0x00,0xaa,0x05,0x74,0x00,0x71,0x02,0x43,0x00,0xbe,0x05,0x16,0x00,0xaa,0x05,0x41,0x00,0x31,0x06,0xf3,0x00,0xaa,0x05,0xa2,0x00,0xaa,0x04,0x95,0x00,0x7b,0x05,0x74,0x00,0x71,0x05,0x9f,0x00,0xa8,0x05,0x16,0x00,0xaa,0x04,0x95,0x00,0x46,0x04,0xc9,0x00,0x25, -0x05,0x0f,0x00,0x28,0x05,0x9f,0x00,0x54,0x05,0x0f,0x00,0x42,0x05,0x88,0x00,0x57,0x05,0x56,0x00,0x70,0x02,0x43,0xff,0xca,0x05,0x0f,0x00,0x28,0x04,0x86,0x00,0x62,0x04,0x4f,0x00,0x62,0x04,0x8c,0x00,0x8f,0x02,0xa0,0x00,0xc5,0x04,0x8c,0x00,0x8d,0x04,0x86,0x00,0x62,0x04,0xbd,0x00,0x9d,0x04,0x07,0x00,0x2e,0x04,0x8c,0x00,0x61, -0x04,0x4f,0x00,0x62,0x04,0x2f,0x00,0x73,0x04,0x8c,0x00,0x8f,0x04,0x8d,0x00,0x77,0x02,0xa0,0x00,0xc5,0x04,0x78,0x00,0x99,0x04,0x8c,0x00,0x38,0x04,0x8c,0x00,0x99,0x04,0x06,0x00,0x2e,0x04,0x13,0x00,0x56,0x04,0x8c,0x00,0x61,0x04,0xa5,0x00,0x4f,0x04,0x8c,0x00,0x8f,0x04,0x4e,0x00,0x62,0x04,0x8c,0x00,0x61,0x04,0x30,0x00,0x51, -0x04,0x8c,0x00,0x8d,0x05,0xaa,0x00,0x53,0x04,0x8c,0x00,0x5f,0x05,0xa0,0x00,0x5b,0x06,0xcd,0x00,0x6c,0x02,0xa0,0xff,0xd7,0x04,0x8c,0x00,0x8d,0x04,0x8c,0x00,0x61,0x04,0x8c,0x00,0x8d,0x06,0xcd,0x00,0x6c,0x04,0xf1,0x00,0x71,0x04,0x41,0xff,0xea,0x06,0x48,0x00,0x4e,0x04,0x6a,0x00,0xaa,0x04,0x6a,0x00,0xaa,0x05,0xea,0x00,0x39, -0x04,0x63,0x00,0xa3,0x05,0x6a,0x00,0x87,0x04,0xe4,0x00,0x6d,0x02,0x43,0x00,0xbe,0x02,0x43,0xff,0xca,0x04,0x63,0x00,0x4a,0x08,0x99,0x00,0x32,0x08,0x99,0x00,0xa8,0x06,0x86,0x00,0x49,0x05,0x16,0x00,0xaa,0x05,0xa0,0x00,0xad,0x05,0x11,0x00,0x42,0x05,0x9f,0x00,0xa8,0x05,0x0f,0x00,0x2b,0x05,0x0c,0x00,0xa3,0x05,0x16,0x00,0xaa, -0x04,0x63,0x00,0xa3,0x06,0x27,0x00,0x36,0x04,0x6a,0x00,0xaa,0x06,0x97,0x00,0x1a,0x05,0x69,0x00,0x78,0x05,0xa0,0x00,0xad,0x05,0xa0,0x00,0xad,0x05,0x16,0x00,0xaa,0x05,0x9f,0x00,0x31,0x06,0xf3,0x00,0xaa,0x05,0xa1,0x00,0xaa,0x05,0x74,0x00,0x71,0x05,0x9f,0x00,0xa8,0x05,0x16,0x00,0xaa,0x05,0x11,0x00,0x76,0x04,0xc9,0x00,0x25, -0x05,0x11,0x00,0x42,0x05,0x9f,0x00,0x54,0x05,0x0f,0x00,0x42,0x05,0xfd,0x00,0xa1,0x05,0x75,0x00,0x93,0x08,0x1f,0x00,0xa4,0x08,0x64,0x00,0xa4,0x05,0xb2,0x00,0x00,0x06,0xd5,0x00,0xa3,0x05,0x0a,0x00,0xa3,0x05,0x69,0x00,0xb5,0x07,0x21,0x00,0xbe,0x04,0xbb,0x00,0x2c,0x04,0x66,0x00,0x6a,0x04,0x6d,0x00,0x61,0x04,0x8c,0x00,0x90, -0x03,0x51,0x00,0x8f,0x05,0x11,0x00,0x45,0x04,0x30,0x00,0x61,0x05,0xc1,0x00,0x1a,0x04,0x4f,0x00,0x64,0x04,0x8c,0x00,0x8f,0x04,0x8c,0x00,0x8f,0x04,0x60,0x00,0x99,0x04,0x6d,0x00,0x1a,0x05,0xf8,0x00,0x99,0x04,0x8c,0x00,0x8f,0x04,0x8c,0x00,0x61,0x04,0x8c,0x00,0x8f,0x04,0x8c,0x00,0x8f,0x04,0x30,0x00,0x61,0x04,0x18,0x00,0x47, -0x04,0x06,0x00,0x1a,0x07,0x22,0x00,0x62,0x04,0x06,0x00,0x2e,0x04,0xc2,0x00,0x8f,0x04,0x6b,0x00,0x7f,0x06,0x6d,0x00,0x8f,0x06,0xc4,0x00,0x8f,0x04,0xfa,0x00,0x2d,0x06,0x51,0x00,0xad,0x04,0x59,0x00,0x99,0x04,0x4e,0x00,0x63,0x06,0x87,0x00,0x99,0x04,0x8b,0x00,0x4e,0x04,0x30,0x00,0x61,0x04,0x30,0x00,0x61,0x04,0x8c,0xff,0xf2, -0x03,0x51,0x00,0x8f,0x04,0x4f,0x00,0x61,0x04,0x2f,0x00,0x67,0x02,0x04,0x00,0x9f,0x02,0x03,0xff,0xa5,0x02,0x12,0xff,0xbe,0x06,0xf6,0x00,0x41,0x06,0xf5,0x00,0x8f,0x04,0x8c,0x00,0x13,0x04,0x60,0x00,0x99,0x04,0x8c,0x00,0x8f,0x04,0x06,0x00,0x1a,0x04,0x8c,0x00,0x8f,0x07,0x8e,0x00,0x78,0x05,0x82,0x00,0x2e,0x05,0x0a,0xff,0xcd, -0x04,0x59,0xff,0xdb,0x07,0x2d,0x00,0xbf,0x05,0xfa,0x00,0x97,0x04,0xd3,0x00,0x2b,0x04,0x49,0x00,0x0d,0x07,0x0d,0x00,0xd1,0x06,0x0d,0x00,0xba,0x06,0xdf,0x00,0x95,0x05,0xec,0x00,0x95,0x09,0x16,0x00,0xbe,0x07,0xe3,0x00,0x99,0x04,0x25,0x00,0x4a,0x03,0xda,0x00,0x49,0x05,0x88,0x00,0x57,0x05,0xa0,0x00,0x5b,0x05,0x74,0x00,0x71, -0x04,0x8d,0x00,0x61,0x05,0x0f,0x00,0x16,0x04,0x07,0x00,0x2e,0x05,0x0f,0x00,0x16,0x04,0x07,0xff,0xfe,0x09,0x7a,0x00,0x71,0x08,0x92,0x00,0x61,0x05,0x74,0x00,0x71,0x04,0x8c,0x00,0x61,0x07,0x8e,0x00,0x78,0x06,0x76,0x00,0x78,0x07,0x8e,0x00,0x78,0x05,0x82,0x00,0x2e,0x05,0x38,0x00,0x76,0x04,0x4b,0x00,0x62,0x05,0x02,0x00,0x70, -0x04,0x8d,0x00,0xd4,0x04,0xb9,0x00,0xfb,0x03,0x13,0x01,0x00,0x03,0x4f,0x01,0x2c,0x08,0x1c,0x00,0x3b,0x07,0xd8,0x00,0x4d,0x05,0xa0,0x00,0xad,0x04,0x8c,0x00,0x8f,0x05,0x0a,0xff,0xcd,0x04,0x59,0xff,0xba,0x05,0x0d,0x00,0xa3,0x04,0x8b,0x00,0x8f,0x04,0x64,0x00,0xa3,0x03,0x93,0x00,0x8f,0x04,0x63,0xff,0xeb,0x03,0x51,0xff,0xf3, -0x04,0xd6,0x00,0xa3,0x04,0x08,0x00,0x8f,0x06,0x97,0x00,0x1a,0x05,0xc1,0x00,0x1a,0x05,0x69,0x00,0x78,0x04,0x4f,0x00,0x64,0x05,0x16,0x00,0xaa,0x04,0x60,0x00,0x99,0x05,0x0f,0x00,0xa3,0x04,0x68,0x00,0x99,0x05,0x16,0xff,0xd7,0x04,0x1a,0xff,0xbb,0x06,0xd3,0x00,0x4a,0x05,0xc6,0x00,0x32,0x05,0xa1,0x00,0xaa,0x04,0x8c,0x00,0x8f, -0x07,0xb9,0x00,0xa9,0x05,0xb0,0x00,0x8f,0x08,0x26,0x00,0xa8,0x06,0xfc,0x00,0x8f,0x05,0x74,0x00,0x71,0x04,0x8c,0x00,0x61,0x05,0x11,0x00,0x76,0x04,0x30,0x00,0x61,0x04,0xc9,0x00,0x25,0x04,0x18,0x00,0x47,0x05,0x0f,0x00,0x28,0x04,0x07,0x00,0x2e,0x05,0x0f,0x00,0x28,0x04,0x07,0x00,0x2e,0x05,0x0f,0x00,0x42,0x04,0x06,0x00,0x2e, -0x07,0x37,0x00,0x37,0x05,0x93,0x00,0x20,0x05,0x75,0x00,0x93,0x04,0x6b,0x00,0x7f,0x05,0x76,0x00,0x93,0x04,0x6c,0x00,0x7f,0x05,0x76,0x00,0x8a,0x04,0x6c,0x00,0x94,0x06,0xcb,0x00,0x4d,0x04,0xbf,0xff,0xdf,0x06,0xcb,0x00,0x4d,0x04,0xbf,0xff,0xdf,0x02,0x43,0x00,0xbe,0x06,0x97,0x00,0x1a,0x05,0xc1,0x00,0x1a,0x05,0x0f,0x00,0xa3, -0x04,0x60,0x00,0x99,0x05,0x9f,0x00,0x31,0x04,0x6d,0x00,0x1a,0x05,0x9f,0x00,0xa9,0x04,0x8c,0x00,0x8f,0x05,0xa1,0x00,0xaa,0x04,0x8c,0x00,0x8f,0x05,0x75,0x00,0x93,0x04,0x6b,0x00,0x7f,0x06,0xf3,0x00,0xaa,0x05,0xf8,0x00,0x99,0x02,0x43,0x00,0xbe,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a, -0x07,0xcf,0x00,0x0e,0x06,0xfd,0x00,0x58,0x04,0x6a,0x00,0xaa,0x04,0x30,0x00,0x61,0x05,0x91,0x00,0x59,0x04,0x42,0x00,0x81,0x05,0x91,0x00,0x59,0x04,0x42,0x00,0x81,0x06,0x97,0x00,0x1a,0x05,0xc1,0x00,0x1a,0x05,0x69,0x00,0x78,0x04,0x4f,0x00,0x64,0x04,0xaa,0x00,0x69,0x04,0xaa,0x00,0x69,0x05,0xa0,0x00,0xad,0x04,0x8c,0x00,0x8f, -0x05,0xa0,0x00,0xad,0x04,0x8c,0x00,0x8f,0x05,0x74,0x00,0x71,0x04,0x8c,0x00,0x61,0x05,0x74,0x00,0x71,0x04,0x8d,0x00,0x61,0x05,0x74,0x00,0x71,0x04,0x8d,0x00,0x61,0x05,0x69,0x00,0xb5,0x04,0x4e,0x00,0x63,0x05,0x11,0x00,0x42,0x04,0x06,0x00,0x1a,0x05,0x11,0x00,0x42,0x04,0x06,0x00,0x1a,0x05,0x11,0x00,0x42,0x04,0x06,0x00,0x1a, -0x05,0x75,0x00,0x93,0x04,0x6b,0x00,0x7f,0x04,0x63,0x00,0xa3,0x03,0x51,0x00,0x8f,0x06,0xd5,0x00,0xa3,0x06,0x51,0x00,0xad,0x04,0xbf,0x00,0x40,0x03,0x49,0x00,0x41,0x05,0x0f,0x00,0x42,0x04,0x06,0x00,0x2e,0x05,0x0f,0x00,0x42,0x04,0x06,0x00,0x2e,0x05,0x07,0x00,0x5b,0x04,0x8c,0x00,0x62,0x06,0xa4,0x00,0x5b,0x06,0xe5,0x00,0x62, -0x06,0x57,0x00,0x36,0x05,0x2c,0x00,0x31,0x04,0x4b,0x00,0x50,0x04,0x09,0x00,0x7b,0x07,0xc2,0x00,0x45,0x06,0x76,0x00,0x41,0x08,0x03,0x00,0xa9,0x06,0xa2,0x00,0x8f,0x04,0xf7,0x00,0x76,0x04,0x1e,0x00,0x62,0x05,0xae,0x00,0x24,0x05,0x21,0x00,0x46,0x05,0x69,0x00,0x9c,0x04,0x4f,0x00,0x62,0x05,0x9f,0x00,0x31,0x04,0x6d,0x00,0x1a, -0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a,0x06,0xf3,0x00,0xaa,0x06,0xfe,0x00,0x8f,0x06,0xe3,0x00,0x25,0x06,0x0e,0x00,0x2d,0x06,0xe3,0x00,0x25,0x06,0x0e,0x00,0x2d,0x06,0xe3,0x00,0x25,0x06,0x0e,0x00,0x2d,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a, -0x05,0x0f,0x00,0x00,0x04,0x66,0xff,0xa3,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a,0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a, -0x05,0x0f,0x00,0x2b,0x04,0x66,0x00,0x6a,0x04,0x6a,0x00,0xaa,0x04,0x30,0x00,0x61,0x04,0x6a,0x00,0xaa,0x04,0x30,0x00,0x61,0x04,0x6a,0x00,0xaa,0x04,0x30,0x00,0x61,0x04,0x6a,0x00,0xaa,0x04,0x30,0x00,0x61,0x04,0x6a,0xff,0xe3,0x04,0x30,0xff,0x93,0x04,0x6a,0x00,0xaa,0x04,0x30,0x00,0x61,0x04,0x6a,0x00,0xaa,0x04,0x30,0x00,0x61, -0x04,0x6a,0x00,0xaa,0x04,0x30,0x00,0x61,0x02,0x43,0x00,0xbe,0x02,0x03,0x00,0x99,0x02,0x43,0x00,0xb4,0x02,0x04,0x00,0x95,0x05,0x74,0x00,0x71,0x04,0x8c,0x00,0x61,0x05,0x74,0x00,0x71,0x04,0x8c,0x00,0x61,0x05,0x74,0x00,0x71,0x04,0x8c,0x00,0x61,0x05,0x74,0x00,0x32,0x04,0x8c,0xff,0xbe,0x05,0x74,0x00,0x71,0x04,0x8c,0x00,0x61, -0x05,0x74,0x00,0x71,0x04,0x8c,0x00,0x61,0x05,0x74,0x00,0x71,0x04,0x8c,0x00,0x61,0x05,0x7b,0x00,0x6c,0x04,0x97,0x00,0x61,0x05,0x7b,0x00,0x6c,0x04,0x97,0x00,0x61,0x05,0x7b,0x00,0x6c,0x04,0x97,0x00,0x61,0x05,0x7b,0x00,0x6c,0x04,0x8c,0x00,0x61,0x05,0x7b,0x00,0x6c,0x04,0x97,0x00,0x61,0x05,0x6a,0x00,0x93,0x04,0x8c,0x00,0x8b, -0x05,0x6a,0x00,0x93,0x04,0x8c,0x00,0x8b,0x05,0x96,0x00,0x93,0x04,0xb4,0x00,0x8b,0x05,0x96,0x00,0x93,0x04,0xb4,0x00,0x8b,0x05,0x96,0x00,0x93,0x04,0xb4,0x00,0x8b,0x05,0x96,0x00,0x93,0x04,0xb4,0x00,0x8b,0x05,0x96,0x00,0x93,0x04,0xb4,0x00,0x8b,0x05,0x0f,0x00,0x28,0x04,0x06,0x00,0x1a,0x05,0x0f,0x00,0x28,0x04,0x06,0x00,0x1a, -0x05,0x0f,0x00,0x28,0x04,0x06,0x00,0x1a,0x05,0x0f,0x00,0x28,0x04,0x06,0x00,0x1a,0x05,0x74,0xff,0x25,0x04,0x14,0x00,0x00,0x08,0x29,0x00,0x00,0x04,0x14,0x00,0x00,0x08,0x29,0x00,0x00,0x02,0xb9,0x00,0x00,0x02,0x0a,0x00,0x00,0x01,0x5c,0x00,0x00,0x04,0x7f,0x00,0x00,0x02,0x30,0x00,0x00,0x01,0xa2,0x00,0x00,0x00,0xd1,0x00,0x00, -0x00,0x00,0x00,0x00,0x05,0x88,0x00,0xb3,0x06,0x7c,0x00,0xbb,0x06,0x7c,0x00,0xbb,0x03,0xa7,0x00,0x05,0x02,0x0c,0x00,0x91,0x02,0x04,0x00,0xa0,0x02,0x1c,0x00,0xa8,0x01,0xbc,0x00,0x55,0x03,0x14,0x00,0x7b,0x03,0x01,0x00,0x7d,0x02,0xff,0x00,0x8a,0x04,0x69,0x00,0x46,0x04,0x92,0x00,0x57,0x02,0xb7,0x00,0x89,0x03,0xca,0x00,0xa1, -0x05,0x64,0x00,0xa1,0x07,0xa4,0x00,0x40,0x01,0xbd,0x00,0x7e,0x02,0xdd,0x00,0x7e,0x02,0x67,0x00,0x6c,0x02,0x67,0x00,0x5e,0x04,0x36,0x00,0xab,0x03,0xa5,0x00,0x3b,0x03,0xad,0x00,0x47,0x03,0x60,0x00,0x7a,0x04,0x6a,0x00,0x11,0x04,0xaa,0x00,0x46,0x06,0x92,0x00,0xa4,0x04,0x8c,0x00,0x50,0x04,0x40,0x00,0x4f,0x05,0xe9,0x00,0x7c, -0x03,0xd2,0x00,0x6a,0x08,0xcc,0x00,0xaa,0x05,0x04,0x00,0x67,0x05,0x18,0x00,0x98,0x06,0xbf,0x00,0x6b,0x07,0x56,0x00,0x6e,0x07,0x86,0x00,0x6f,0x06,0xdf,0x00,0x6b,0x04,0xa2,0x00,0x48,0x05,0x9c,0x00,0xa8,0x04,0xb2,0x00,0x46,0x04,0x92,0x00,0xa8,0x04,0xd7,0x00,0x3f,0x08,0x2f,0x00,0x68,0x02,0x0d,0xff,0xbc,0x04,0x82,0x00,0x65, -0x04,0x30,0x00,0x98,0x04,0x38,0x00,0x9e,0x04,0x40,0x00,0x9a,0x04,0x08,0x00,0x29,0x02,0x08,0x00,0x65,0x04,0x74,0x00,0x1c,0x04,0xa6,0x00,0x38,0x07,0x16,0x00,0x38,0x07,0x48,0x00,0x38,0x00,0x00,0x00,0x00,0x08,0x34,0x00,0x5b,0x08,0x35,0x00,0x5c,0x04,0x71,0x00,0x5d,0x05,0x04,0x00,0x89,0x04,0x0a,0x00,0x6e,0x04,0x0f,0x00,0x6e, -0x04,0x0a,0xff,0x55,0x04,0x09,0x00,0x78,0x04,0xba,0x00,0x27,0x03,0xa5,0x00,0x6d,0x02,0x07,0x00,0xa0,0x04,0x79,0x00,0x99,0x04,0x92,0x00,0x70,0x04,0xaa,0x00,0x99,0x04,0x47,0x00,0x99,0x04,0x1f,0x00,0x99,0x04,0xd3,0x00,0x70,0x04,0xfb,0x00,0x99,0x02,0x03,0x00,0x99,0x04,0x0f,0x00,0x40,0x04,0x61,0x00,0x99,0x03,0xbd,0x00,0x99, -0x05,0xf8,0x00,0x99,0x03,0xa0,0x00,0x92,0x05,0x1c,0x00,0x99,0x04,0xcb,0x00,0x70,0x04,0xaa,0x00,0x7b,0x08,0xe2,0x00,0x5d,0x04,0x40,0x00,0x4e,0x04,0x40,0x00,0x4e,0x04,0x40,0x00,0x4e,0x04,0x61,0x00,0x1e,0x04,0x61,0x00,0x1e,0x06,0x02,0x00,0x3f,0x05,0x04,0x00,0x89,0x05,0x04,0x00,0x89,0x05,0x04,0x00,0x89,0x05,0x04,0x00,0x89, -0x05,0x04,0x00,0x89,0x05,0x04,0x00,0x89,0x04,0x30,0x00,0x47,0x04,0x30,0x00,0x47,0x04,0x71,0x00,0x5d,0x04,0x1f,0x00,0x5a,0x04,0x71,0x00,0x5d,0x04,0x71,0x00,0x5d,0x04,0xad,0x00,0x99,0x04,0xad,0x00,0x99,0x04,0xad,0x00,0x99,0x04,0xcb,0x00,0x70,0x04,0xcb,0x00,0x70,0x04,0xcb,0x00,0x70,0x05,0x1c,0x00,0x99,0x05,0x1c,0x00,0x99, -0x05,0x1c,0x00,0x99,0x03,0xbd,0x00,0x99,0x03,0xbd,0x00,0x99,0x03,0xbd,0x00,0x99,0x03,0xbd,0x00,0x6a,0x04,0x61,0x00,0x99,0x04,0x0f,0x00,0x40,0x02,0x03,0x00,0x8e,0x02,0x03,0x00,0x3b,0x02,0x03,0xff,0xd0,0x02,0x03,0xff,0x98,0x02,0x03,0xff,0xa0,0x04,0xfb,0x00,0x99,0x04,0xd3,0x00,0x70,0x04,0xd3,0x00,0x70,0x04,0xd3,0x00,0x70, -0x04,0xd3,0x00,0x70,0x04,0x47,0x00,0x99,0x04,0x47,0x00,0x99,0x04,0x47,0x00,0x99,0x04,0x47,0x00,0x99,0x04,0x47,0x00,0x99,0x04,0xaa,0x00,0x99,0x04,0x92,0x00,0x70,0x04,0x92,0x00,0x70,0x04,0x92,0x00,0x70,0x04,0x92,0x00,0x70,0x04,0xba,0x00,0x27,0x04,0xba,0x00,0x27,0x04,0xba,0x00,0x27,0x04,0x61,0x00,0x1e,0x05,0x04,0x00,0x89, -0x03,0xa4,0x00,0x81,0x05,0x04,0x00,0x89,0x05,0x04,0x00,0x89,0x04,0xcb,0x00,0x70,0x04,0xcb,0x00,0x70,0x04,0xcb,0x00,0x70,0x04,0xcb,0x00,0x70,0x04,0xcb,0x00,0x70,0x05,0x1c,0x00,0x99,0x02,0x03,0xff,0xa3,0x02,0x03,0xff,0xc9,0x02,0x03,0x00,0x99,0x02,0x03,0xff,0xb6,0x04,0x47,0x00,0x99,0x04,0x47,0x00,0x99,0x04,0x47,0x00,0x99, -0x04,0x47,0x00,0x99,0x04,0x92,0x00,0x70,0x04,0xba,0x00,0x27,0x04,0xba,0x00,0x27,0x04,0xba,0x00,0x27,0x04,0xba,0x00,0x27,0x04,0xba,0x00,0x27,0x04,0xba,0x00,0x27,0x04,0xba,0x00,0x27,0x04,0x30,0x00,0x47,0x04,0xaa,0xff,0xf5,0x04,0xaa,0xff,0xf5,0x04,0xe3,0x00,0x70,0x04,0xad,0x00,0x99,0x03,0x6c,0x00,0x81,0x03,0xa4,0x00,0x81, -0x03,0xa5,0x00,0x81,0x01,0x91,0x00,0x60,0x02,0x31,0x00,0x13,0x02,0x04,0xff,0xbe,0x03,0x0c,0xff,0xa0,0x03,0x26,0x00,0x71,0x04,0x45,0x00,0x53,0x04,0xaa,0x00,0x69,0x04,0xaa,0x00,0x49,0x04,0xaa,0x00,0x84,0x04,0xaa,0x00,0x8e,0x03,0xfb,0x00,0x25,0x04,0x71,0x00,0x5d,0x04,0x30,0x00,0x47,0x05,0x04,0x00,0x89,0x04,0xbb,0x00,0x27, -0x06,0x02,0x00,0x3f,0x04,0x89,0x00,0x37,0x04,0x61,0x00,0x1e,0x04,0x40,0x00,0x4e,0x04,0x79,0x00,0x78,0x02,0x5e,0x00,0x4e,0x03,0xe5,0x00,0x59,0x04,0x16,0x00,0x5a,0x04,0x68,0x00,0x47,0x04,0x30,0x00,0x78,0x03,0x6c,0x00,0x68,0x03,0x84,0x00,0x70,0x03,0x4c,0x00,0x68,0x03,0x11,0x00,0x5f,0x03,0x7c,0x00,0x78,0x03,0x7c,0x00,0x72, -0x03,0x94,0x00,0x57,0x03,0x6c,0x00,0x6a,0x03,0x5b,0x00,0x71,0x02,0xb8,0x00,0x9b,0x02,0x2d,0x00,0x5f,0x03,0xa5,0x00,0x78,0x04,0x28,0x00,0x47,0x04,0x30,0x00,0x58,0x03,0xbd,0x00,0x47,0x04,0xaa,0x00,0x82,0x04,0xaa,0x00,0x5c,0x04,0x79,0x00,0x99,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x30,0x0e, -0x00,0x01,0x08,0x00,0x30,0x00,0x00,0x0b,0x00,0x00,0x00,0x05,0x00,0x05,0xff,0x95,0x00,0x05,0x00,0x0a,0xff,0x95,0x00,0x05,0x00,0x24,0xff,0x96,0x00,0x05,0x00,0x44,0xff,0xce,0x00,0x05,0x00,0x46,0xff,0xc5,0x00,0x05,0x00,0x47,0xff,0xc5,0x00,0x05,0x00,0x48,0xff,0xc5,0x00,0x05,0x00,0x4a,0xff,0xc5,0x00,0x05,0x00,0x50,0xff,0xec, -0x00,0x05,0x00,0x51,0xff,0xec,0x00,0x05,0x00,0x52,0xff,0xc3,0x00,0x05,0x00,0x53,0xff,0xec,0x00,0x05,0x00,0x54,0xff,0xc5,0x00,0x05,0x00,0x56,0xff,0xd6,0x00,0x05,0x00,0x82,0xff,0x96,0x00,0x05,0x00,0x83,0xff,0x96,0x00,0x05,0x00,0x84,0xff,0x96,0x00,0x05,0x00,0x85,0xff,0x96,0x00,0x05,0x00,0x86,0xff,0x96,0x00,0x05,0x00,0x87, -0xff,0x96,0x00,0x05,0x00,0xa2,0xff,0xce,0x00,0x05,0x00,0xa3,0xff,0xce,0x00,0x05,0x00,0xa4,0xff,0xce,0x00,0x05,0x00,0xa5,0xff,0xce,0x00,0x05,0x00,0xa6,0xff,0xce,0x00,0x05,0x00,0xa7,0xff,0xce,0x00,0x05,0x00,0xa9,0xff,0xc5,0x00,0x05,0x00,0xaa,0xff,0xc5,0x00,0x05,0x00,0xab,0xff,0xc5,0x00,0x05,0x00,0xac,0xff,0xc5,0x00,0x05, -0x00,0xad,0xff,0xc5,0x00,0x05,0x00,0xb3,0xff,0xec,0x00,0x05,0x00,0xb4,0xff,0xc3,0x00,0x05,0x00,0xb5,0xff,0xc3,0x00,0x05,0x00,0xb6,0xff,0xc3,0x00,0x05,0x00,0xb7,0xff,0xc3,0x00,0x05,0x00,0xb8,0xff,0xc3,0x00,0x05,0x01,0x15,0xff,0xc5,0x00,0x05,0x01,0x6f,0xff,0x96,0x00,0x05,0x03,0x34,0xff,0x95,0x00,0x05,0x03,0x35,0xff,0x95, -0x00,0x05,0x03,0x38,0xff,0x95,0x00,0x05,0x03,0x39,0xff,0x95,0x00,0x0a,0x00,0x05,0xff,0x95,0x00,0x0a,0x00,0x0a,0xff,0x95,0x00,0x0a,0x00,0x24,0xff,0x96,0x00,0x0a,0x00,0x44,0xff,0xce,0x00,0x0a,0x00,0x46,0xff,0xc5,0x00,0x0a,0x00,0x47,0xff,0xc5,0x00,0x0a,0x00,0x48,0xff,0xc5,0x00,0x0a,0x00,0x4a,0xff,0xc5,0x00,0x0a,0x00,0x50, -0xff,0xec,0x00,0x0a,0x00,0x51,0xff,0xec,0x00,0x0a,0x00,0x52,0xff,0xc3,0x00,0x0a,0x00,0x53,0xff,0xec,0x00,0x0a,0x00,0x54,0xff,0xc5,0x00,0x0a,0x00,0x56,0xff,0xd6,0x00,0x0a,0x00,0x82,0xff,0x96,0x00,0x0a,0x00,0x83,0xff,0x96,0x00,0x0a,0x00,0x84,0xff,0x96,0x00,0x0a,0x00,0x85,0xff,0x96,0x00,0x0a,0x00,0x86,0xff,0x96,0x00,0x0a, -0x00,0x87,0xff,0x96,0x00,0x0a,0x00,0xa2,0xff,0xce,0x00,0x0a,0x00,0xa3,0xff,0xce,0x00,0x0a,0x00,0xa4,0xff,0xce,0x00,0x0a,0x00,0xa5,0xff,0xce,0x00,0x0a,0x00,0xa6,0xff,0xce,0x00,0x0a,0x00,0xa7,0xff,0xce,0x00,0x0a,0x00,0xa9,0xff,0xc5,0x00,0x0a,0x00,0xaa,0xff,0xc5,0x00,0x0a,0x00,0xab,0xff,0xc5,0x00,0x0a,0x00,0xac,0xff,0xc5, -0x00,0x0a,0x00,0xad,0xff,0xc5,0x00,0x0a,0x00,0xb3,0xff,0xec,0x00,0x0a,0x00,0xb4,0xff,0xc3,0x00,0x0a,0x00,0xb5,0xff,0xc3,0x00,0x0a,0x00,0xb6,0xff,0xc3,0x00,0x0a,0x00,0xb7,0xff,0xc3,0x00,0x0a,0x00,0xb8,0xff,0xc3,0x00,0x0a,0x01,0x15,0xff,0xc5,0x00,0x0a,0x01,0x6f,0xff,0x96,0x00,0x0a,0x03,0x34,0xff,0x95,0x00,0x0a,0x03,0x35, -0xff,0x95,0x00,0x0a,0x03,0x38,0xff,0x95,0x00,0x0a,0x03,0x39,0xff,0x95,0x00,0x0b,0x00,0x39,0x00,0x14,0x00,0x0b,0x00,0x3a,0x00,0x12,0x00,0x0b,0x00,0x3c,0x00,0x16,0x00,0x0b,0x01,0x3a,0x00,0x16,0x00,0x24,0x00,0x05,0xff,0xb1,0x00,0x24,0x00,0x0a,0xff,0xb1,0x00,0x24,0x00,0x22,0xff,0xc3,0x00,0x24,0x00,0x37,0xff,0x7f,0x00,0x24, -0x00,0x38,0xff,0xef,0x00,0x24,0x00,0x39,0xff,0xa9,0x00,0x24,0x00,0x3a,0xff,0xbb,0x00,0x24,0x00,0x3c,0xff,0xa2,0x00,0x24,0x00,0x52,0xff,0xf4,0x00,0x24,0x00,0x57,0xff,0xef,0x00,0x24,0x00,0x59,0xff,0xce,0x00,0x24,0x00,0x5a,0xff,0xdf,0x00,0x24,0x00,0x5c,0xff,0xce,0x00,0x24,0x00,0x5d,0x00,0x0c,0x00,0x24,0x00,0x96,0xff,0xf5, -0x00,0x24,0x00,0x97,0xff,0xf5,0x00,0x24,0x00,0x9b,0xff,0xef,0x00,0x24,0x00,0x9c,0xff,0xef,0x00,0x24,0x00,0x9d,0xff,0xef,0x00,0x24,0x00,0x9e,0xff,0xef,0x00,0x24,0x00,0xb4,0xff,0xf4,0x00,0x24,0x00,0xb5,0xff,0xf4,0x00,0x24,0x00,0xb6,0xff,0xf4,0x00,0x24,0x00,0xb7,0xff,0xf4,0x00,0x24,0x00,0xb8,0xff,0xf4,0x00,0x24,0x00,0xc1, -0xff,0xce,0x00,0x24,0x01,0x3a,0xff,0xa2,0x00,0x24,0x03,0x34,0xff,0xb1,0x00,0x24,0x03,0x35,0xff,0xb1,0x00,0x24,0x03,0x38,0xff,0xb1,0x00,0x24,0x03,0x39,0xff,0xb1,0x00,0x25,0x00,0x37,0xff,0xe5,0x00,0x25,0x00,0x39,0xff,0xe8,0x00,0x25,0x00,0x3c,0xff,0xc9,0x00,0x25,0x01,0x3a,0xff,0xc9,0x00,0x26,0x00,0x0c,0xff,0xe6,0x00,0x26, -0x00,0x37,0xff,0xe3,0x00,0x26,0x00,0x40,0xff,0xf4,0x00,0x26,0x00,0x60,0xff,0xef,0x00,0x27,0x00,0x0f,0xff,0x9a,0x00,0x27,0x00,0x11,0xff,0x9a,0x00,0x27,0x00,0x1d,0xff,0x9a,0x00,0x27,0x00,0x24,0xff,0xeb,0x00,0x27,0x00,0x37,0xff,0xe5,0x00,0x27,0x00,0x39,0xff,0xea,0x00,0x27,0x00,0x3b,0xff,0xea,0x00,0x27,0x00,0x3c,0xff,0xd5, -0x00,0x27,0x00,0x3d,0xff,0xe9,0x00,0x27,0x00,0x82,0xff,0xeb,0x00,0x27,0x00,0x83,0xff,0xeb,0x00,0x27,0x00,0x84,0xff,0xeb,0x00,0x27,0x00,0x85,0xff,0xeb,0x00,0x27,0x00,0x86,0xff,0xeb,0x00,0x27,0x00,0x87,0xff,0xeb,0x00,0x27,0x00,0x88,0xff,0xdf,0x00,0x27,0x01,0x3a,0xff,0xd5,0x00,0x27,0x01,0x6f,0xff,0xeb,0x00,0x27,0x03,0x36, -0xff,0x9a,0x00,0x27,0x03,0x3a,0xff,0x9a,0x00,0x27,0x03,0x3f,0xff,0x9a,0x00,0x28,0x00,0x46,0xff,0xed,0x00,0x28,0x00,0x47,0xff,0xed,0x00,0x28,0x00,0x48,0xff,0xed,0x00,0x28,0x00,0x49,0xff,0xee,0x00,0x28,0x00,0x4a,0xff,0xed,0x00,0x28,0x00,0x52,0xff,0xed,0x00,0x28,0x00,0x54,0xff,0xed,0x00,0x28,0x00,0x58,0xff,0xef,0x00,0x28, -0x00,0x59,0xff,0xe6,0x00,0x28,0x00,0x5a,0xff,0xea,0x00,0x28,0x00,0x5c,0xff,0xe6,0x00,0x28,0x00,0xa9,0xff,0xed,0x00,0x28,0x00,0xaa,0xff,0xed,0x00,0x28,0x00,0xab,0xff,0xed,0x00,0x28,0x00,0xac,0xff,0xed,0x00,0x28,0x00,0xad,0xff,0xed,0x00,0x28,0x00,0xb4,0xff,0xed,0x00,0x28,0x00,0xb5,0xff,0xed,0x00,0x28,0x00,0xb6,0xff,0xed, -0x00,0x28,0x00,0xb7,0xff,0xed,0x00,0x28,0x00,0xb8,0xff,0xed,0x00,0x28,0x00,0xbb,0xff,0xef,0x00,0x28,0x00,0xbc,0xff,0xef,0x00,0x28,0x00,0xbd,0xff,0xef,0x00,0x28,0x00,0xbe,0xff,0xef,0x00,0x28,0x00,0xc1,0xff,0xe6,0x00,0x28,0x01,0x15,0xff,0xed,0x00,0x29,0x00,0x0f,0xff,0x16,0x00,0x29,0x00,0x11,0xff,0x16,0x00,0x29,0x00,0x1d, -0xff,0x16,0x00,0x29,0x00,0x24,0xff,0xc5,0x00,0x29,0x00,0x44,0xff,0xde,0x00,0x29,0x00,0x46,0xff,0xeb,0x00,0x29,0x00,0x47,0xff,0xeb,0x00,0x29,0x00,0x48,0xff,0xeb,0x00,0x29,0x00,0x4a,0xff,0xeb,0x00,0x29,0x00,0x52,0xff,0xeb,0x00,0x29,0x00,0x54,0xff,0xeb,0x00,0x29,0x00,0x55,0xff,0xe6,0x00,0x29,0x00,0x58,0xff,0xea,0x00,0x29, -0x00,0x59,0xff,0xe8,0x00,0x29,0x00,0x5c,0xff,0xe8,0x00,0x29,0x00,0x82,0xff,0xc5,0x00,0x29,0x00,0x83,0xff,0xc5,0x00,0x29,0x00,0x84,0xff,0xc5,0x00,0x29,0x00,0x85,0xff,0xc5,0x00,0x29,0x00,0x86,0xff,0xc5,0x00,0x29,0x00,0x87,0xff,0xc5,0x00,0x29,0x00,0xa2,0xff,0xde,0x00,0x29,0x00,0xa3,0xff,0xde,0x00,0x29,0x00,0xa4,0xff,0xde, -0x00,0x29,0x00,0xa5,0xff,0xde,0x00,0x29,0x00,0xa6,0xff,0xde,0x00,0x29,0x00,0xa7,0xff,0xde,0x00,0x29,0x00,0xa9,0xff,0xeb,0x00,0x29,0x00,0xaa,0xff,0xeb,0x00,0x29,0x00,0xab,0xff,0xeb,0x00,0x29,0x00,0xac,0xff,0xeb,0x00,0x29,0x00,0xad,0xff,0xeb,0x00,0x29,0x00,0xb4,0xff,0xeb,0x00,0x29,0x00,0xb5,0xff,0xeb,0x00,0x29,0x00,0xb6, -0xff,0xeb,0x00,0x29,0x00,0xb7,0xff,0xeb,0x00,0x29,0x00,0xb8,0xff,0xeb,0x00,0x29,0x00,0xbb,0xff,0xea,0x00,0x29,0x00,0xbc,0xff,0xea,0x00,0x29,0x00,0xbd,0xff,0xea,0x00,0x29,0x00,0xbe,0xff,0xea,0x00,0x29,0x00,0xc1,0xff,0xe8,0x00,0x29,0x01,0x15,0xff,0xeb,0x00,0x29,0x01,0x6f,0xff,0xc5,0x00,0x29,0x03,0x36,0xff,0x16,0x00,0x29, -0x03,0x3a,0xff,0x16,0x00,0x29,0x03,0x3f,0xff,0x16,0x00,0x2b,0x00,0x24,0x00,0x12,0x00,0x2b,0x00,0x37,0xff,0xe3,0x00,0x2b,0x00,0x3b,0x00,0x11,0x00,0x2b,0x00,0x3c,0xff,0xe4,0x00,0x2b,0x00,0x82,0x00,0x12,0x00,0x2b,0x00,0x83,0x00,0x12,0x00,0x2b,0x00,0x84,0x00,0x12,0x00,0x2b,0x00,0x85,0x00,0x12,0x00,0x2b,0x00,0x86,0x00,0x12, -0x00,0x2b,0x00,0x87,0x00,0x12,0x00,0x2b,0x01,0x3a,0xff,0xe4,0x00,0x2b,0x01,0x6f,0x00,0x12,0x00,0x2c,0x00,0x24,0x00,0x12,0x00,0x2c,0x00,0x37,0xff,0xe3,0x00,0x2c,0x00,0x3b,0x00,0x11,0x00,0x2c,0x00,0x3c,0xff,0xe4,0x00,0x2c,0x00,0x82,0x00,0x12,0x00,0x2c,0x00,0x83,0x00,0x12,0x00,0x2c,0x00,0x84,0x00,0x12,0x00,0x2c,0x00,0x85, -0x00,0x12,0x00,0x2c,0x00,0x86,0x00,0x12,0x00,0x2c,0x00,0x87,0x00,0x12,0x00,0x2c,0x01,0x3a,0xff,0xe4,0x00,0x2c,0x01,0x6f,0x00,0x12,0x00,0x2d,0x00,0x24,0xff,0xea,0x00,0x2d,0x00,0x82,0xff,0xea,0x00,0x2d,0x00,0x83,0xff,0xea,0x00,0x2d,0x00,0x84,0xff,0xea,0x00,0x2d,0x00,0x85,0xff,0xea,0x00,0x2d,0x00,0x86,0xff,0xea,0x00,0x2d, -0x00,0x87,0xff,0xea,0x00,0x2d,0x01,0x6f,0xff,0xea,0x00,0x2e,0x00,0x10,0xff,0xc0,0x00,0x2e,0x00,0x26,0xff,0xe1,0x00,0x2e,0x00,0x2a,0xff,0xe1,0x00,0x2e,0x00,0x32,0xff,0xe1,0x00,0x2e,0x00,0x34,0xff,0xe1,0x00,0x2e,0x00,0x46,0xff,0xe6,0x00,0x2e,0x00,0x47,0xff,0xe6,0x00,0x2e,0x00,0x48,0xff,0xe6,0x00,0x2e,0x00,0x4a,0xff,0xe6, -0x00,0x2e,0x00,0x50,0xff,0xe9,0x00,0x2e,0x00,0x51,0xff,0xe9,0x00,0x2e,0x00,0x52,0xff,0xe5,0x00,0x2e,0x00,0x53,0xff,0xe9,0x00,0x2e,0x00,0x54,0xff,0xe6,0x00,0x2e,0x00,0x58,0xff,0xe9,0x00,0x2e,0x00,0x59,0xff,0xd8,0x00,0x2e,0x00,0x5a,0xff,0xc1,0x00,0x2e,0x00,0x5c,0xff,0xd8,0x00,0x2e,0x00,0x89,0xff,0xe1,0x00,0x2e,0x00,0x94, -0xff,0xe1,0x00,0x2e,0x00,0x95,0xff,0xe1,0x00,0x2e,0x00,0x96,0xff,0xe1,0x00,0x2e,0x00,0x97,0xff,0xe1,0x00,0x2e,0x00,0x98,0xff,0xe1,0x00,0x2e,0x00,0x9a,0xff,0xe1,0x00,0x2e,0x00,0xa9,0xff,0xe6,0x00,0x2e,0x00,0xaa,0xff,0xe6,0x00,0x2e,0x00,0xab,0xff,0xe6,0x00,0x2e,0x00,0xac,0xff,0xe6,0x00,0x2e,0x00,0xad,0xff,0xe6,0x00,0x2e, -0x00,0xb3,0xff,0xe9,0x00,0x2e,0x00,0xb4,0xff,0xe5,0x00,0x2e,0x00,0xb5,0xff,0xe5,0x00,0x2e,0x00,0xb6,0xff,0xe5,0x00,0x2e,0x00,0xb7,0xff,0xe5,0x00,0x2e,0x00,0xb8,0xff,0xe5,0x00,0x2e,0x00,0xbb,0xff,0xe9,0x00,0x2e,0x00,0xbc,0xff,0xe9,0x00,0x2e,0x00,0xbd,0xff,0xe9,0x00,0x2e,0x00,0xbe,0xff,0xe9,0x00,0x2e,0x00,0xc1,0xff,0xd8, -0x00,0x2e,0x01,0x14,0xff,0xe1,0x00,0x2e,0x01,0x15,0xff,0xe6,0x00,0x2e,0x03,0x30,0xff,0xc0,0x00,0x2e,0x03,0x31,0xff,0xc0,0x00,0x2f,0x00,0x05,0xff,0x76,0x00,0x2f,0x00,0x0a,0xff,0x76,0x00,0x2f,0x00,0x24,0x00,0x13,0x00,0x2f,0x00,0x26,0xff,0xbf,0x00,0x2f,0x00,0x2a,0xff,0xbf,0x00,0x2f,0x00,0x32,0xff,0xbf,0x00,0x2f,0x00,0x34, -0xff,0xbf,0x00,0x2f,0x00,0x37,0xfe,0xed,0x00,0x2f,0x00,0x38,0xff,0xca,0x00,0x2f,0x00,0x39,0xff,0x51,0x00,0x2f,0x00,0x3a,0xff,0x71,0x00,0x2f,0x00,0x3c,0xff,0x11,0x00,0x2f,0x00,0x58,0xff,0xd4,0x00,0x2f,0x00,0x59,0xff,0x7b,0x00,0x2f,0x00,0x5a,0xff,0xa4,0x00,0x2f,0x00,0x5c,0xff,0x7b,0x00,0x2f,0x00,0x82,0x00,0x13,0x00,0x2f, -0x00,0x83,0x00,0x13,0x00,0x2f,0x00,0x84,0x00,0x13,0x00,0x2f,0x00,0x85,0x00,0x13,0x00,0x2f,0x00,0x86,0x00,0x13,0x00,0x2f,0x00,0x87,0x00,0x13,0x00,0x2f,0x00,0x89,0xff,0xbf,0x00,0x2f,0x00,0x94,0xff,0xbf,0x00,0x2f,0x00,0x95,0xff,0xbf,0x00,0x2f,0x00,0x96,0xff,0xbf,0x00,0x2f,0x00,0x97,0xff,0xbf,0x00,0x2f,0x00,0x98,0xff,0xbf, -0x00,0x2f,0x00,0x9a,0xff,0xbf,0x00,0x2f,0x00,0x9b,0xff,0xca,0x00,0x2f,0x00,0x9c,0xff,0xca,0x00,0x2f,0x00,0x9d,0xff,0xca,0x00,0x2f,0x00,0x9e,0xff,0xca,0x00,0x2f,0x00,0xbb,0xff,0xd4,0x00,0x2f,0x00,0xbc,0xff,0xd4,0x00,0x2f,0x00,0xbd,0xff,0xd4,0x00,0x2f,0x00,0xbe,0xff,0xd4,0x00,0x2f,0x00,0xc1,0xff,0x7b,0x00,0x2f,0x01,0x14, -0xff,0xbf,0x00,0x2f,0x01,0x3a,0xff,0x11,0x00,0x2f,0x01,0x6f,0x00,0x13,0x00,0x2f,0x03,0x34,0xff,0x76,0x00,0x2f,0x03,0x35,0xff,0x76,0x00,0x2f,0x03,0x38,0xff,0x76,0x00,0x2f,0x03,0x39,0xff,0x76,0x00,0x30,0x00,0x24,0x00,0x12,0x00,0x30,0x00,0x37,0xff,0xe3,0x00,0x30,0x00,0x3b,0x00,0x11,0x00,0x30,0x00,0x3c,0xff,0xe4,0x00,0x30, -0x00,0x82,0x00,0x12,0x00,0x30,0x00,0x83,0x00,0x12,0x00,0x30,0x00,0x84,0x00,0x12,0x00,0x30,0x00,0x85,0x00,0x12,0x00,0x30,0x00,0x86,0x00,0x12,0x00,0x30,0x00,0x87,0x00,0x12,0x00,0x30,0x01,0x3a,0xff,0xe4,0x00,0x30,0x01,0x6f,0x00,0x12,0x00,0x31,0x00,0x24,0x00,0x12,0x00,0x31,0x00,0x37,0xff,0xe3,0x00,0x31,0x00,0x3b,0x00,0x11, -0x00,0x31,0x00,0x3c,0xff,0xe4,0x00,0x31,0x00,0x82,0x00,0x12,0x00,0x31,0x00,0x83,0x00,0x12,0x00,0x31,0x00,0x84,0x00,0x12,0x00,0x31,0x00,0x85,0x00,0x12,0x00,0x31,0x00,0x86,0x00,0x12,0x00,0x31,0x00,0x87,0x00,0x12,0x00,0x31,0x01,0x3a,0xff,0xe4,0x00,0x31,0x01,0x6f,0x00,0x12,0x00,0x32,0x00,0x0f,0xff,0x9a,0x00,0x32,0x00,0x11, -0xff,0x9a,0x00,0x32,0x00,0x1d,0xff,0x9a,0x00,0x32,0x00,0x24,0xff,0xeb,0x00,0x32,0x00,0x37,0xff,0xe5,0x00,0x32,0x00,0x39,0xff,0xea,0x00,0x32,0x00,0x3b,0xff,0xea,0x00,0x32,0x00,0x3c,0xff,0xd5,0x00,0x32,0x00,0x3d,0xff,0xe9,0x00,0x32,0x00,0x82,0xff,0xeb,0x00,0x32,0x00,0x83,0xff,0xeb,0x00,0x32,0x00,0x84,0xff,0xeb,0x00,0x32, -0x00,0x85,0xff,0xeb,0x00,0x32,0x00,0x86,0xff,0xeb,0x00,0x32,0x00,0x87,0xff,0xeb,0x00,0x32,0x00,0x88,0xff,0xdf,0x00,0x32,0x01,0x3a,0xff,0xd5,0x00,0x32,0x01,0x6f,0xff,0xeb,0x00,0x32,0x03,0x36,0xff,0x9a,0x00,0x32,0x03,0x3a,0xff,0x9a,0x00,0x32,0x03,0x3f,0xff,0x9a,0x00,0x33,0x00,0x0f,0xfe,0xbc,0x00,0x33,0x00,0x11,0xfe,0xbc, -0x00,0x33,0x00,0x1d,0xfe,0xbc,0x00,0x33,0x00,0x24,0xff,0x76,0x00,0x33,0x00,0x3b,0xff,0xe1,0x00,0x33,0x00,0x3d,0xff,0xe6,0x00,0x33,0x00,0x46,0xff,0xf3,0x00,0x33,0x00,0x47,0xff,0xf3,0x00,0x33,0x00,0x48,0xff,0xf3,0x00,0x33,0x00,0x4a,0xff,0xf3,0x00,0x33,0x00,0x52,0xff,0xf3,0x00,0x33,0x00,0x54,0xff,0xf3,0x00,0x33,0x00,0x57, -0x00,0x0e,0x00,0x33,0x00,0x59,0x00,0x0f,0x00,0x33,0x00,0x5c,0x00,0x0f,0x00,0x33,0x00,0x82,0xff,0x76,0x00,0x33,0x00,0x83,0xff,0x76,0x00,0x33,0x00,0x84,0xff,0x76,0x00,0x33,0x00,0x85,0xff,0x76,0x00,0x33,0x00,0x86,0xff,0x76,0x00,0x33,0x00,0x87,0xff,0x76,0x00,0x33,0x00,0x88,0xff,0x9f,0x00,0x33,0x00,0xa9,0xff,0xf3,0x00,0x33, -0x00,0xaa,0xff,0xf3,0x00,0x33,0x00,0xab,0xff,0xf3,0x00,0x33,0x00,0xac,0xff,0xf3,0x00,0x33,0x00,0xad,0xff,0xf3,0x00,0x33,0x00,0xb4,0xff,0xf3,0x00,0x33,0x00,0xb5,0xff,0xf3,0x00,0x33,0x00,0xb6,0xff,0xf3,0x00,0x33,0x00,0xb7,0xff,0xf3,0x00,0x33,0x00,0xb8,0xff,0xf3,0x00,0x33,0x00,0xc1,0x00,0x0f,0x00,0x33,0x01,0x15,0xff,0xf3, -0x00,0x33,0x01,0x6f,0xff,0x76,0x00,0x33,0x03,0x36,0xfe,0xbc,0x00,0x33,0x03,0x3a,0xfe,0xbc,0x00,0x33,0x03,0x3f,0xfe,0xbc,0x00,0x34,0x00,0x37,0xff,0xd5,0x00,0x34,0x00,0x39,0xff,0xe4,0x00,0x34,0x00,0x3a,0xff,0xec,0x00,0x34,0x00,0x3c,0xff,0xdd,0x00,0x34,0x01,0x3a,0xff,0xdd,0x00,0x35,0x00,0x37,0xff,0xb0,0x00,0x35,0x00,0x39, -0xff,0xed,0x00,0x35,0x00,0x3c,0xff,0xd0,0x00,0x35,0x01,0x3a,0xff,0xd0,0x00,0x37,0x00,0x0f,0xff,0x26,0x00,0x37,0x00,0x10,0xff,0x18,0x00,0x37,0x00,0x11,0xff,0x26,0x00,0x37,0x00,0x1d,0xff,0x26,0x00,0x37,0x00,0x24,0xff,0xb1,0x00,0x37,0x00,0x26,0xff,0xe4,0x00,0x37,0x00,0x2a,0xff,0xe4,0x00,0x37,0x00,0x32,0xff,0xe4,0x00,0x37, -0x00,0x34,0xff,0xe4,0x00,0x37,0x00,0x36,0xff,0xf0,0x00,0x37,0x00,0x37,0x00,0x10,0x00,0x37,0x00,0x39,0x00,0x10,0x00,0x37,0x00,0x3a,0x00,0x0f,0x00,0x37,0x00,0x3c,0x00,0x10,0x00,0x37,0x00,0x44,0xff,0x8f,0x00,0x37,0x00,0x46,0xff,0x9d,0x00,0x37,0x00,0x47,0xff,0x9d,0x00,0x37,0x00,0x48,0xff,0x9d,0x00,0x37,0x00,0x4a,0xff,0x9d, -0x00,0x37,0x00,0x50,0xff,0x93,0x00,0x37,0x00,0x51,0xff,0x93,0x00,0x37,0x00,0x52,0xff,0x9d,0x00,0x37,0x00,0x53,0xff,0x93,0x00,0x37,0x00,0x54,0xff,0x9d,0x00,0x37,0x00,0x55,0xff,0xb5,0x00,0x37,0x00,0x56,0xff,0x8c,0x00,0x37,0x00,0x58,0xff,0xa1,0x00,0x37,0x00,0x59,0xff,0xb8,0x00,0x37,0x00,0x5a,0xff,0xc7,0x00,0x37,0x00,0x5b, -0xff,0xb3,0x00,0x37,0x00,0x5c,0xff,0xb8,0x00,0x37,0x00,0x5d,0xff,0xc4,0x00,0x37,0x00,0x6d,0xfe,0xb8,0x00,0x37,0x00,0x7d,0xff,0x28,0x00,0x37,0x00,0x82,0xff,0xb1,0x00,0x37,0x00,0x83,0xff,0xb1,0x00,0x37,0x00,0x84,0xff,0xb1,0x00,0x37,0x00,0x85,0xff,0xb1,0x00,0x37,0x00,0x86,0xff,0xb1,0x00,0x37,0x00,0x87,0xff,0xb1,0x00,0x37, -0x00,0x88,0xff,0x4d,0x00,0x37,0x00,0x89,0xff,0xe4,0x00,0x37,0x00,0x94,0xff,0xe4,0x00,0x37,0x00,0x95,0xff,0xe4,0x00,0x37,0x00,0x96,0xff,0xe4,0x00,0x37,0x00,0x97,0xff,0xe4,0x00,0x37,0x00,0x98,0xff,0xe4,0x00,0x37,0x00,0x9a,0xff,0xe4,0x00,0x37,0x00,0xa2,0xff,0x8f,0x00,0x37,0x00,0xa3,0xff,0x8f,0x00,0x37,0x00,0xa4,0xff,0x8f, -0x00,0x37,0x00,0xa5,0xff,0x8f,0x00,0x37,0x00,0xa6,0xff,0x8f,0x00,0x37,0x00,0xa7,0xff,0x8f,0x00,0x37,0x00,0xa8,0xff,0x8e,0x00,0x37,0x00,0xa9,0xff,0x9d,0x00,0x37,0x00,0xaa,0xff,0x9d,0x00,0x37,0x00,0xab,0xff,0x9d,0x00,0x37,0x00,0xac,0xff,0x9d,0x00,0x37,0x00,0xad,0xff,0x9d,0x00,0x37,0x00,0xb3,0xff,0x93,0x00,0x37,0x00,0xb4, -0xff,0x9d,0x00,0x37,0x00,0xb5,0xff,0x9d,0x00,0x37,0x00,0xb6,0xff,0x9d,0x00,0x37,0x00,0xb7,0xff,0x9d,0x00,0x37,0x00,0xb8,0xff,0x9d,0x00,0x37,0x00,0xba,0xff,0xa1,0x00,0x37,0x00,0xbb,0xff,0xa1,0x00,0x37,0x00,0xbc,0xff,0xa1,0x00,0x37,0x00,0xbd,0xff,0xa1,0x00,0x37,0x00,0xbe,0xff,0xa1,0x00,0x37,0x00,0xc1,0xff,0xb8,0x00,0x37, -0x01,0x14,0xff,0xe4,0x00,0x37,0x01,0x15,0xff,0x9d,0x00,0x37,0x01,0x3a,0x00,0x10,0x00,0x37,0x01,0x6f,0xff,0xb1,0x00,0x37,0x01,0x9a,0xff,0x87,0x00,0x37,0x03,0x30,0xff,0x18,0x00,0x37,0x03,0x31,0xff,0x18,0x00,0x37,0x03,0x36,0xff,0x26,0x00,0x37,0x03,0x3a,0xff,0x26,0x00,0x37,0x03,0x3f,0xff,0x26,0x00,0x38,0x00,0x24,0xff,0xea, -0x00,0x38,0x00,0x82,0xff,0xea,0x00,0x38,0x00,0x83,0xff,0xea,0x00,0x38,0x00,0x84,0xff,0xea,0x00,0x38,0x00,0x85,0xff,0xea,0x00,0x38,0x00,0x86,0xff,0xea,0x00,0x38,0x00,0x87,0xff,0xea,0x00,0x38,0x01,0x6f,0xff,0xea,0x00,0x39,0x00,0x0c,0x00,0x14,0x00,0x39,0x00,0x0f,0xff,0x1f,0x00,0x39,0x00,0x10,0xff,0xdb,0x00,0x39,0x00,0x11, -0xff,0x1f,0x00,0x39,0x00,0x1d,0xff,0x1f,0x00,0x39,0x00,0x24,0xff,0xb5,0x00,0x39,0x00,0x26,0xff,0xf3,0x00,0x39,0x00,0x2a,0xff,0xf3,0x00,0x39,0x00,0x32,0xff,0xf3,0x00,0x39,0x00,0x34,0xff,0xf3,0x00,0x39,0x00,0x40,0x00,0x11,0x00,0x39,0x00,0x44,0xff,0xd2,0x00,0x39,0x00,0x46,0xff,0xd4,0x00,0x39,0x00,0x47,0xff,0xd4,0x00,0x39, -0x00,0x48,0xff,0xd4,0x00,0x39,0x00,0x4a,0xff,0xd4,0x00,0x39,0x00,0x52,0xff,0xd2,0x00,0x39,0x00,0x54,0xff,0xd4,0x00,0x39,0x00,0x55,0xff,0xe2,0x00,0x39,0x00,0x58,0xff,0xe4,0x00,0x39,0x00,0x59,0xff,0xf5,0x00,0x39,0x00,0x60,0x00,0x13,0x00,0x39,0x00,0x82,0xff,0xb5,0x00,0x39,0x00,0x83,0xff,0xb5,0x00,0x39,0x00,0x84,0xff,0xb5, -0x00,0x39,0x00,0x85,0xff,0xb5,0x00,0x39,0x00,0x86,0xff,0xb5,0x00,0x39,0x00,0x87,0xff,0xb5,0x00,0x39,0x00,0x89,0xff,0xf3,0x00,0x39,0x00,0x94,0xff,0xf3,0x00,0x39,0x00,0x95,0xff,0xf3,0x00,0x39,0x00,0x96,0xff,0xf3,0x00,0x39,0x00,0x97,0xff,0xf3,0x00,0x39,0x00,0x98,0xff,0xf3,0x00,0x39,0x00,0x9a,0xff,0xf3,0x00,0x39,0x00,0xa2, -0xff,0xd2,0x00,0x39,0x00,0xa3,0xff,0xd2,0x00,0x39,0x00,0xa4,0xff,0xd2,0x00,0x39,0x00,0xa5,0xff,0xd2,0x00,0x39,0x00,0xa6,0xff,0xd2,0x00,0x39,0x00,0xa7,0xff,0xd2,0x00,0x39,0x00,0xa9,0xff,0xd4,0x00,0x39,0x00,0xaa,0xff,0xd4,0x00,0x39,0x00,0xab,0xff,0xd4,0x00,0x39,0x00,0xac,0xff,0xd4,0x00,0x39,0x00,0xad,0xff,0xd4,0x00,0x39, -0x00,0xb4,0xff,0xd2,0x00,0x39,0x00,0xb5,0xff,0xd2,0x00,0x39,0x00,0xb6,0xff,0xd2,0x00,0x39,0x00,0xb7,0xff,0xd2,0x00,0x39,0x00,0xb8,0xff,0xd2,0x00,0x39,0x00,0xbb,0xff,0xe4,0x00,0x39,0x00,0xbc,0xff,0xe4,0x00,0x39,0x00,0xbd,0xff,0xe4,0x00,0x39,0x00,0xbe,0xff,0xe4,0x00,0x39,0x01,0x14,0xff,0xf3,0x00,0x39,0x01,0x15,0xff,0xd4, -0x00,0x39,0x01,0x6f,0xff,0xb5,0x00,0x39,0x03,0x30,0xff,0xdb,0x00,0x39,0x03,0x31,0xff,0xdb,0x00,0x39,0x03,0x36,0xff,0x1f,0x00,0x39,0x03,0x3a,0xff,0x1f,0x00,0x39,0x03,0x3f,0xff,0x1f,0x00,0x3a,0x00,0x0c,0x00,0x0f,0x00,0x3a,0x00,0x0f,0xff,0x85,0x00,0x3a,0x00,0x10,0xff,0xc4,0x00,0x3a,0x00,0x11,0xff,0x85,0x00,0x3a,0x00,0x1d, -0xff,0x85,0x00,0x3a,0x00,0x24,0xff,0xd5,0x00,0x3a,0x00,0x37,0x00,0x0e,0x00,0x3a,0x00,0x40,0x00,0x0c,0x00,0x3a,0x00,0x44,0xff,0xdf,0x00,0x3a,0x00,0x46,0xff,0xe1,0x00,0x3a,0x00,0x47,0xff,0xe1,0x00,0x3a,0x00,0x48,0xff,0xe1,0x00,0x3a,0x00,0x4a,0xff,0xe1,0x00,0x3a,0x00,0x52,0xff,0xe1,0x00,0x3a,0x00,0x54,0xff,0xe1,0x00,0x3a, -0x00,0x55,0xff,0xeb,0x00,0x3a,0x00,0x58,0xff,0xed,0x00,0x3a,0x00,0x60,0x00,0x0e,0x00,0x3a,0x00,0x82,0xff,0xd5,0x00,0x3a,0x00,0x83,0xff,0xd5,0x00,0x3a,0x00,0x84,0xff,0xd5,0x00,0x3a,0x00,0x85,0xff,0xd5,0x00,0x3a,0x00,0x86,0xff,0xd5,0x00,0x3a,0x00,0x87,0xff,0xd5,0x00,0x3a,0x00,0xa2,0xff,0xdf,0x00,0x3a,0x00,0xa3,0xff,0xdf, -0x00,0x3a,0x00,0xa4,0xff,0xdf,0x00,0x3a,0x00,0xa5,0xff,0xdf,0x00,0x3a,0x00,0xa6,0xff,0xdf,0x00,0x3a,0x00,0xa7,0xff,0xdf,0x00,0x3a,0x00,0xa9,0xff,0xe1,0x00,0x3a,0x00,0xaa,0xff,0xe1,0x00,0x3a,0x00,0xab,0xff,0xe1,0x00,0x3a,0x00,0xac,0xff,0xe1,0x00,0x3a,0x00,0xad,0xff,0xe1,0x00,0x3a,0x00,0xb4,0xff,0xe1,0x00,0x3a,0x00,0xb5, -0xff,0xe1,0x00,0x3a,0x00,0xb6,0xff,0xe1,0x00,0x3a,0x00,0xb7,0xff,0xe1,0x00,0x3a,0x00,0xb8,0xff,0xe1,0x00,0x3a,0x00,0xbb,0xff,0xed,0x00,0x3a,0x00,0xbc,0xff,0xed,0x00,0x3a,0x00,0xbd,0xff,0xed,0x00,0x3a,0x00,0xbe,0xff,0xed,0x00,0x3a,0x01,0x15,0xff,0xe1,0x00,0x3a,0x01,0x6f,0xff,0xd5,0x00,0x3a,0x03,0x30,0xff,0xc4,0x00,0x3a, -0x03,0x31,0xff,0xc4,0x00,0x3a,0x03,0x36,0xff,0x85,0x00,0x3a,0x03,0x3a,0xff,0x85,0x00,0x3a,0x03,0x3f,0xff,0x85,0x00,0x3b,0x00,0x10,0xff,0xd2,0x00,0x3b,0x00,0x26,0xff,0xe7,0x00,0x3b,0x00,0x2a,0xff,0xe7,0x00,0x3b,0x00,0x32,0xff,0xe7,0x00,0x3b,0x00,0x34,0xff,0xe7,0x00,0x3b,0x00,0x39,0x00,0x0e,0x00,0x3b,0x00,0x46,0xff,0xe6, -0x00,0x3b,0x00,0x47,0xff,0xe6,0x00,0x3b,0x00,0x48,0xff,0xe6,0x00,0x3b,0x00,0x4a,0xff,0xe6,0x00,0x3b,0x00,0x52,0xff,0xeb,0x00,0x3b,0x00,0x54,0xff,0xe6,0x00,0x3b,0x00,0x58,0xff,0xeb,0x00,0x3b,0x00,0x59,0xff,0xe1,0x00,0x3b,0x00,0x5c,0xff,0xe1,0x00,0x3b,0x00,0x89,0xff,0xe7,0x00,0x3b,0x00,0x94,0xff,0xe7,0x00,0x3b,0x00,0x95, -0xff,0xe7,0x00,0x3b,0x00,0x96,0xff,0xe7,0x00,0x3b,0x00,0x97,0xff,0xe7,0x00,0x3b,0x00,0x98,0xff,0xe7,0x00,0x3b,0x00,0x9a,0xff,0xe7,0x00,0x3b,0x00,0xa9,0xff,0xe6,0x00,0x3b,0x00,0xaa,0xff,0xe6,0x00,0x3b,0x00,0xab,0xff,0xe6,0x00,0x3b,0x00,0xac,0xff,0xe6,0x00,0x3b,0x00,0xad,0xff,0xe6,0x00,0x3b,0x00,0xb4,0xff,0xeb,0x00,0x3b, -0x00,0xb5,0xff,0xeb,0x00,0x3b,0x00,0xb6,0xff,0xeb,0x00,0x3b,0x00,0xb7,0xff,0xeb,0x00,0x3b,0x00,0xb8,0xff,0xeb,0x00,0x3b,0x00,0xbb,0xff,0xeb,0x00,0x3b,0x00,0xbc,0xff,0xeb,0x00,0x3b,0x00,0xbd,0xff,0xeb,0x00,0x3b,0x00,0xbe,0xff,0xeb,0x00,0x3b,0x00,0xc1,0xff,0xe1,0x00,0x3b,0x01,0x14,0xff,0xe7,0x00,0x3b,0x01,0x15,0xff,0xe6, -0x00,0x3b,0x03,0x30,0xff,0xd2,0x00,0x3b,0x03,0x31,0xff,0xd2,0x00,0x3c,0x00,0x09,0xff,0xe2,0x00,0x3c,0x00,0x0c,0x00,0x14,0x00,0x3c,0x00,0x0d,0xff,0xcf,0x00,0x3c,0x00,0x0f,0xff,0x2d,0x00,0x3c,0x00,0x10,0xff,0xcc,0x00,0x3c,0x00,0x11,0xff,0x2d,0x00,0x3c,0x00,0x1d,0xff,0x2d,0x00,0x3c,0x00,0x24,0xff,0xae,0x00,0x3c,0x00,0x26, -0xff,0xe3,0x00,0x3c,0x00,0x2a,0xff,0xe3,0x00,0x3c,0x00,0x2d,0xff,0xa0,0x00,0x3c,0x00,0x32,0xff,0xe3,0x00,0x3c,0x00,0x34,0xff,0xe3,0x00,0x3c,0x00,0x36,0xff,0xf0,0x00,0x3c,0x00,0x37,0x00,0x11,0x00,0x3c,0x00,0x38,0xff,0xa0,0x00,0x3c,0x00,0x39,0x00,0x12,0x00,0x3c,0x00,0x3a,0x00,0x11,0x00,0x3c,0x00,0x3b,0x00,0x0d,0x00,0x3c, -0x00,0x3c,0x00,0x12,0x00,0x3c,0x00,0x40,0x00,0x12,0x00,0x3c,0x00,0x44,0xff,0xb7,0x00,0x3c,0x00,0x46,0xff,0xbf,0x00,0x3c,0x00,0x47,0xff,0xbf,0x00,0x3c,0x00,0x48,0xff,0xbf,0x00,0x3c,0x00,0x49,0xff,0xea,0x00,0x3c,0x00,0x4a,0xff,0xbf,0x00,0x3c,0x00,0x50,0xff,0xd8,0x00,0x3c,0x00,0x51,0xff,0xd8,0x00,0x3c,0x00,0x52,0xff,0xbf, -0x00,0x3c,0x00,0x53,0xff,0xd8,0x00,0x3c,0x00,0x54,0xff,0xbf,0x00,0x3c,0x00,0x55,0xff,0xd8,0x00,0x3c,0x00,0x56,0xff,0xc6,0x00,0x3c,0x00,0x57,0xff,0xea,0x00,0x3c,0x00,0x58,0xff,0xd9,0x00,0x3c,0x00,0x59,0xff,0xec,0x00,0x3c,0x00,0x5b,0xff,0xe9,0x00,0x3c,0x00,0x5c,0xff,0xec,0x00,0x3c,0x00,0x5d,0xff,0xe2,0x00,0x3c,0x00,0x60, -0x00,0x13,0x00,0x3c,0x00,0x6d,0xff,0xae,0x00,0x3c,0x00,0x7d,0xff,0xcd,0x00,0x3c,0x00,0x82,0xff,0xae,0x00,0x3c,0x00,0x83,0xff,0xae,0x00,0x3c,0x00,0x84,0xff,0xae,0x00,0x3c,0x00,0x85,0xff,0xae,0x00,0x3c,0x00,0x86,0xff,0xae,0x00,0x3c,0x00,0x87,0xff,0xae,0x00,0x3c,0x00,0x88,0xff,0xa0,0x00,0x3c,0x00,0x89,0xff,0xe3,0x00,0x3c, -0x00,0x94,0xff,0xe3,0x00,0x3c,0x00,0x95,0xff,0xe3,0x00,0x3c,0x00,0x96,0xff,0xe3,0x00,0x3c,0x00,0x97,0xff,0xe3,0x00,0x3c,0x00,0x98,0xff,0xe3,0x00,0x3c,0x00,0x9a,0xff,0xe3,0x00,0x3c,0x00,0x9b,0xff,0xa0,0x00,0x3c,0x00,0x9c,0xff,0xa0,0x00,0x3c,0x00,0x9d,0xff,0xa0,0x00,0x3c,0x00,0x9e,0xff,0xa0,0x00,0x3c,0x00,0xa2,0xff,0xb7, -0x00,0x3c,0x00,0xa3,0xff,0xb7,0x00,0x3c,0x00,0xa4,0xff,0xb7,0x00,0x3c,0x00,0xa5,0xff,0xb7,0x00,0x3c,0x00,0xa6,0xff,0xb7,0x00,0x3c,0x00,0xa7,0xff,0xb7,0x00,0x3c,0x00,0xa8,0xff,0xc1,0x00,0x3c,0x00,0xa9,0xff,0xbf,0x00,0x3c,0x00,0xaa,0xff,0xbf,0x00,0x3c,0x00,0xab,0xff,0xbf,0x00,0x3c,0x00,0xac,0xff,0xbf,0x00,0x3c,0x00,0xad, -0xff,0xbf,0x00,0x3c,0x00,0xb3,0xff,0xd8,0x00,0x3c,0x00,0xb4,0xff,0xbf,0x00,0x3c,0x00,0xb5,0xff,0xbf,0x00,0x3c,0x00,0xb6,0xff,0xbf,0x00,0x3c,0x00,0xb7,0xff,0xbf,0x00,0x3c,0x00,0xb8,0xff,0xbf,0x00,0x3c,0x00,0xba,0xff,0xc0,0x00,0x3c,0x00,0xbb,0xff,0xd9,0x00,0x3c,0x00,0xbc,0xff,0xd9,0x00,0x3c,0x00,0xbd,0xff,0xd9,0x00,0x3c, -0x00,0xbe,0xff,0xd9,0x00,0x3c,0x00,0xc1,0xff,0xec,0x00,0x3c,0x01,0x14,0xff,0xe3,0x00,0x3c,0x01,0x15,0xff,0xbf,0x00,0x3c,0x01,0x3a,0x00,0x12,0x00,0x3c,0x01,0x6f,0xff,0xae,0x00,0x3c,0x01,0x9a,0xff,0xe8,0x00,0x3c,0x03,0x30,0xff,0xcc,0x00,0x3c,0x03,0x31,0xff,0xcc,0x00,0x3c,0x03,0x36,0xff,0x2d,0x00,0x3c,0x03,0x3a,0xff,0x2d, -0x00,0x3c,0x03,0x3d,0xff,0xd3,0x00,0x3c,0x03,0x3f,0xff,0x2d,0x00,0x3d,0x00,0x24,0x00,0x0d,0x00,0x3d,0x00,0x26,0xff,0xe6,0x00,0x3d,0x00,0x2a,0xff,0xe6,0x00,0x3d,0x00,0x32,0xff,0xe6,0x00,0x3d,0x00,0x34,0xff,0xe6,0x00,0x3d,0x00,0x46,0xff,0xeb,0x00,0x3d,0x00,0x47,0xff,0xeb,0x00,0x3d,0x00,0x48,0xff,0xeb,0x00,0x3d,0x00,0x4a, -0xff,0xeb,0x00,0x3d,0x00,0x52,0xff,0xeb,0x00,0x3d,0x00,0x54,0xff,0xeb,0x00,0x3d,0x00,0x58,0xff,0xed,0x00,0x3d,0x00,0x59,0xff,0xe5,0x00,0x3d,0x00,0x5a,0xff,0xe5,0x00,0x3d,0x00,0x5c,0xff,0xe5,0x00,0x3d,0x00,0x82,0x00,0x0d,0x00,0x3d,0x00,0x83,0x00,0x0d,0x00,0x3d,0x00,0x84,0x00,0x0d,0x00,0x3d,0x00,0x85,0x00,0x0d,0x00,0x3d, -0x00,0x86,0x00,0x0d,0x00,0x3d,0x00,0x87,0x00,0x0d,0x00,0x3d,0x00,0x89,0xff,0xe6,0x00,0x3d,0x00,0x94,0xff,0xe6,0x00,0x3d,0x00,0x95,0xff,0xe6,0x00,0x3d,0x00,0x96,0xff,0xe6,0x00,0x3d,0x00,0x97,0xff,0xe6,0x00,0x3d,0x00,0x98,0xff,0xe6,0x00,0x3d,0x00,0x9a,0xff,0xe6,0x00,0x3d,0x00,0xa9,0xff,0xeb,0x00,0x3d,0x00,0xaa,0xff,0xeb, -0x00,0x3d,0x00,0xab,0xff,0xeb,0x00,0x3d,0x00,0xac,0xff,0xeb,0x00,0x3d,0x00,0xad,0xff,0xeb,0x00,0x3d,0x00,0xb4,0xff,0xeb,0x00,0x3d,0x00,0xb5,0xff,0xeb,0x00,0x3d,0x00,0xb6,0xff,0xeb,0x00,0x3d,0x00,0xb7,0xff,0xeb,0x00,0x3d,0x00,0xb8,0xff,0xeb,0x00,0x3d,0x00,0xbb,0xff,0xed,0x00,0x3d,0x00,0xbc,0xff,0xed,0x00,0x3d,0x00,0xbd, -0xff,0xed,0x00,0x3d,0x00,0xbe,0xff,0xed,0x00,0x3d,0x00,0xc1,0xff,0xe5,0x00,0x3d,0x01,0x14,0xff,0xe6,0x00,0x3d,0x01,0x15,0xff,0xeb,0x00,0x3d,0x01,0x6f,0x00,0x0d,0x00,0x3e,0x00,0x2d,0xff,0xee,0x00,0x3e,0x00,0x38,0xff,0xee,0x00,0x3e,0x00,0x9b,0xff,0xee,0x00,0x3e,0x00,0x9c,0xff,0xee,0x00,0x3e,0x00,0x9d,0xff,0xee,0x00,0x3e, -0x00,0x9e,0xff,0xee,0x00,0x44,0x00,0x05,0xff,0xbd,0x00,0x44,0x00,0x0a,0xff,0xbd,0x00,0x44,0x00,0x59,0xff,0xf1,0x00,0x44,0x00,0x5c,0xff,0xf1,0x00,0x44,0x00,0xc1,0xff,0xf1,0x00,0x44,0x03,0x34,0xff,0xbd,0x00,0x44,0x03,0x35,0xff,0xbd,0x00,0x44,0x03,0x38,0xff,0xbd,0x00,0x44,0x03,0x39,0xff,0xbd,0x00,0x45,0x00,0x05,0xff,0xe3, -0x00,0x45,0x00,0x0a,0xff,0xe3,0x00,0x45,0x00,0x5b,0xff,0xf1,0x00,0x45,0x00,0x5d,0xff,0xf1,0x00,0x45,0x03,0x34,0xff,0xe3,0x00,0x45,0x03,0x35,0xff,0xe3,0x00,0x45,0x03,0x38,0xff,0xe3,0x00,0x45,0x03,0x39,0xff,0xe3,0x00,0x48,0x00,0x05,0xff,0xf2,0x00,0x48,0x00,0x0a,0xff,0xf2,0x00,0x48,0x00,0x59,0xff,0xf3,0x00,0x48,0x00,0x5c, -0xff,0xf3,0x00,0x48,0x00,0xc1,0xff,0xf3,0x00,0x48,0x03,0x34,0xff,0xf2,0x00,0x48,0x03,0x35,0xff,0xf2,0x00,0x48,0x03,0x38,0xff,0xf2,0x00,0x48,0x03,0x39,0xff,0xf2,0x00,0x49,0x00,0x05,0x00,0x10,0x00,0x49,0x00,0x0a,0x00,0x10,0x00,0x49,0x00,0x0c,0x00,0x14,0x00,0x49,0x00,0x40,0x00,0x12,0x00,0x49,0x00,0x46,0xff,0xe8,0x00,0x49, -0x00,0x47,0xff,0xe8,0x00,0x49,0x00,0x48,0xff,0xe8,0x00,0x49,0x00,0x4a,0xff,0xe8,0x00,0x49,0x00,0x54,0xff,0xe8,0x00,0x49,0x00,0x60,0x00,0x13,0x00,0x49,0x00,0xa9,0xff,0xe8,0x00,0x49,0x00,0xaa,0xff,0xe8,0x00,0x49,0x00,0xab,0xff,0xe8,0x00,0x49,0x00,0xac,0xff,0xe8,0x00,0x49,0x00,0xad,0xff,0xe8,0x00,0x49,0x01,0x15,0xff,0xe8, -0x00,0x49,0x03,0x34,0x00,0x10,0x00,0x49,0x03,0x35,0x00,0x10,0x00,0x49,0x03,0x38,0x00,0x10,0x00,0x49,0x03,0x39,0x00,0x10,0x00,0x4b,0x00,0x05,0xff,0xf0,0x00,0x4b,0x00,0x0a,0xff,0xf0,0x00,0x4b,0x03,0x34,0xff,0xf0,0x00,0x4b,0x03,0x35,0xff,0xf0,0x00,0x4b,0x03,0x38,0xff,0xf0,0x00,0x4b,0x03,0x39,0xff,0xf0,0x00,0x4e,0x00,0x46, -0xff,0xec,0x00,0x4e,0x00,0x47,0xff,0xec,0x00,0x4e,0x00,0x48,0xff,0xec,0x00,0x4e,0x00,0x4a,0xff,0xec,0x00,0x4e,0x00,0x54,0xff,0xec,0x00,0x4e,0x00,0xa9,0xff,0xec,0x00,0x4e,0x00,0xaa,0xff,0xec,0x00,0x4e,0x00,0xab,0xff,0xec,0x00,0x4e,0x00,0xac,0xff,0xec,0x00,0x4e,0x00,0xad,0xff,0xec,0x00,0x4e,0x01,0x15,0xff,0xec,0x00,0x50, -0x00,0x05,0xff,0xf0,0x00,0x50,0x00,0x0a,0xff,0xf0,0x00,0x50,0x03,0x34,0xff,0xf0,0x00,0x50,0x03,0x35,0xff,0xf0,0x00,0x50,0x03,0x38,0xff,0xf0,0x00,0x50,0x03,0x39,0xff,0xf0,0x00,0x51,0x00,0x05,0xff,0xf0,0x00,0x51,0x00,0x0a,0xff,0xf0,0x00,0x51,0x03,0x34,0xff,0xf0,0x00,0x51,0x03,0x35,0xff,0xf0,0x00,0x51,0x03,0x38,0xff,0xf0, -0x00,0x51,0x03,0x39,0xff,0xf0,0x00,0x52,0x00,0x05,0xff,0xec,0x00,0x52,0x00,0x0a,0xff,0xec,0x00,0x52,0x00,0x59,0xff,0xf1,0x00,0x52,0x00,0x5b,0xff,0xeb,0x00,0x52,0x00,0x5c,0xff,0xf1,0x00,0x52,0x00,0x5d,0xff,0xf0,0x00,0x52,0x00,0xc1,0xff,0xf1,0x00,0x52,0x03,0x34,0xff,0xec,0x00,0x52,0x03,0x35,0xff,0xec,0x00,0x52,0x03,0x38, -0xff,0xec,0x00,0x52,0x03,0x39,0xff,0xec,0x00,0x53,0x00,0x05,0xff,0xe3,0x00,0x53,0x00,0x0a,0xff,0xe3,0x00,0x53,0x00,0x5b,0xff,0xf1,0x00,0x53,0x00,0x5d,0xff,0xf1,0x00,0x53,0x03,0x34,0xff,0xe3,0x00,0x53,0x03,0x35,0xff,0xe3,0x00,0x53,0x03,0x38,0xff,0xe3,0x00,0x53,0x03,0x39,0xff,0xe3,0x00,0x55,0x00,0x05,0x00,0x10,0x00,0x55, -0x00,0x0a,0x00,0x10,0x00,0x55,0x00,0x0f,0xff,0x85,0x00,0x55,0x00,0x11,0xff,0x85,0x00,0x55,0x00,0x1d,0xff,0x85,0x00,0x55,0x00,0x46,0xff,0xed,0x00,0x55,0x00,0x47,0xff,0xed,0x00,0x55,0x00,0x48,0xff,0xed,0x00,0x55,0x00,0x49,0x00,0x0f,0x00,0x55,0x00,0x4a,0xff,0xed,0x00,0x55,0x00,0x52,0xff,0xec,0x00,0x55,0x00,0x54,0xff,0xed, -0x00,0x55,0x00,0x57,0x00,0x11,0x00,0x55,0x00,0x59,0x00,0x12,0x00,0x55,0x00,0x5a,0x00,0x11,0x00,0x55,0x00,0x5c,0x00,0x12,0x00,0x55,0x00,0xa9,0xff,0xed,0x00,0x55,0x00,0xaa,0xff,0xed,0x00,0x55,0x00,0xab,0xff,0xed,0x00,0x55,0x00,0xac,0xff,0xed,0x00,0x55,0x00,0xad,0xff,0xed,0x00,0x55,0x00,0xb4,0xff,0xec,0x00,0x55,0x00,0xb5, -0xff,0xec,0x00,0x55,0x00,0xb6,0xff,0xec,0x00,0x55,0x00,0xb7,0xff,0xec,0x00,0x55,0x00,0xb8,0xff,0xec,0x00,0x55,0x00,0xc1,0x00,0x12,0x00,0x55,0x01,0x15,0xff,0xed,0x00,0x55,0x03,0x34,0x00,0x10,0x00,0x55,0x03,0x35,0x00,0x10,0x00,0x55,0x03,0x36,0xff,0x85,0x00,0x55,0x03,0x38,0x00,0x10,0x00,0x55,0x03,0x39,0x00,0x10,0x00,0x55, -0x03,0x3a,0xff,0x85,0x00,0x55,0x03,0x3f,0xff,0x85,0x00,0x59,0x00,0x05,0x00,0x0f,0x00,0x59,0x00,0x0a,0x00,0x0f,0x00,0x59,0x00,0x0f,0xff,0x95,0x00,0x59,0x00,0x11,0xff,0x95,0x00,0x59,0x00,0x1d,0xff,0x95,0x00,0x59,0x00,0x44,0xff,0xf1,0x00,0x59,0x00,0x46,0xff,0xf3,0x00,0x59,0x00,0x47,0xff,0xf3,0x00,0x59,0x00,0x48,0xff,0xf3, -0x00,0x59,0x00,0x49,0x00,0x0d,0x00,0x59,0x00,0x4a,0xff,0xf3,0x00,0x59,0x00,0x52,0xff,0xf1,0x00,0x59,0x00,0x54,0xff,0xf3,0x00,0x59,0x00,0xa2,0xff,0xf1,0x00,0x59,0x00,0xa3,0xff,0xf1,0x00,0x59,0x00,0xa4,0xff,0xf1,0x00,0x59,0x00,0xa5,0xff,0xf1,0x00,0x59,0x00,0xa6,0xff,0xf1,0x00,0x59,0x00,0xa7,0xff,0xf1,0x00,0x59,0x00,0xa9, -0xff,0xf3,0x00,0x59,0x00,0xaa,0xff,0xf3,0x00,0x59,0x00,0xab,0xff,0xf3,0x00,0x59,0x00,0xac,0xff,0xf3,0x00,0x59,0x00,0xad,0xff,0xf3,0x00,0x59,0x00,0xb4,0xff,0xf1,0x00,0x59,0x00,0xb5,0xff,0xf1,0x00,0x59,0x00,0xb6,0xff,0xf1,0x00,0x59,0x00,0xb7,0xff,0xf1,0x00,0x59,0x00,0xb8,0xff,0xf1,0x00,0x59,0x01,0x15,0xff,0xf3,0x00,0x59, -0x03,0x34,0x00,0x0f,0x00,0x59,0x03,0x35,0x00,0x0f,0x00,0x59,0x03,0x36,0xff,0x95,0x00,0x59,0x03,0x38,0x00,0x0f,0x00,0x59,0x03,0x39,0x00,0x0f,0x00,0x59,0x03,0x3a,0xff,0x95,0x00,0x59,0x03,0x3f,0xff,0x95,0x00,0x5a,0x00,0x0f,0xff,0x84,0x00,0x5a,0x00,0x11,0xff,0x84,0x00,0x5a,0x00,0x1d,0xff,0x84,0x00,0x5a,0x03,0x36,0xff,0x84, -0x00,0x5a,0x03,0x3a,0xff,0x84,0x00,0x5a,0x03,0x3f,0xff,0x84,0x00,0x5b,0x00,0x46,0xff,0xec,0x00,0x5b,0x00,0x47,0xff,0xec,0x00,0x5b,0x00,0x48,0xff,0xec,0x00,0x5b,0x00,0x4a,0xff,0xec,0x00,0x5b,0x00,0x52,0xff,0xec,0x00,0x5b,0x00,0x54,0xff,0xec,0x00,0x5b,0x00,0xa9,0xff,0xec,0x00,0x5b,0x00,0xaa,0xff,0xec,0x00,0x5b,0x00,0xab, -0xff,0xec,0x00,0x5b,0x00,0xac,0xff,0xec,0x00,0x5b,0x00,0xad,0xff,0xec,0x00,0x5b,0x00,0xb4,0xff,0xec,0x00,0x5b,0x00,0xb5,0xff,0xec,0x00,0x5b,0x00,0xb6,0xff,0xec,0x00,0x5b,0x00,0xb7,0xff,0xec,0x00,0x5b,0x00,0xb8,0xff,0xec,0x00,0x5b,0x01,0x15,0xff,0xec,0x00,0x5c,0x00,0x05,0x00,0x0f,0x00,0x5c,0x00,0x0a,0x00,0x0f,0x00,0x5c, -0x00,0x0f,0xff,0x95,0x00,0x5c,0x00,0x11,0xff,0x95,0x00,0x5c,0x00,0x1d,0xff,0x95,0x00,0x5c,0x00,0x44,0xff,0xf1,0x00,0x5c,0x00,0x46,0xff,0xf3,0x00,0x5c,0x00,0x47,0xff,0xf3,0x00,0x5c,0x00,0x48,0xff,0xf3,0x00,0x5c,0x00,0x49,0x00,0x0d,0x00,0x5c,0x00,0x4a,0xff,0xf3,0x00,0x5c,0x00,0x52,0xff,0xf1,0x00,0x5c,0x00,0x54,0xff,0xf3, -0x00,0x5c,0x00,0xa2,0xff,0xf1,0x00,0x5c,0x00,0xa3,0xff,0xf1,0x00,0x5c,0x00,0xa4,0xff,0xf1,0x00,0x5c,0x00,0xa5,0xff,0xf1,0x00,0x5c,0x00,0xa6,0xff,0xf1,0x00,0x5c,0x00,0xa7,0xff,0xf1,0x00,0x5c,0x00,0xa9,0xff,0xf3,0x00,0x5c,0x00,0xaa,0xff,0xf3,0x00,0x5c,0x00,0xab,0xff,0xf3,0x00,0x5c,0x00,0xac,0xff,0xf3,0x00,0x5c,0x00,0xad, -0xff,0xf3,0x00,0x5c,0x00,0xb4,0xff,0xf1,0x00,0x5c,0x00,0xb5,0xff,0xf1,0x00,0x5c,0x00,0xb6,0xff,0xf1,0x00,0x5c,0x00,0xb7,0xff,0xf1,0x00,0x5c,0x00,0xb8,0xff,0xf1,0x00,0x5c,0x01,0x15,0xff,0xf3,0x00,0x5c,0x03,0x34,0x00,0x0f,0x00,0x5c,0x03,0x35,0x00,0x0f,0x00,0x5c,0x03,0x36,0xff,0x95,0x00,0x5c,0x03,0x38,0x00,0x0f,0x00,0x5c, -0x03,0x39,0x00,0x0f,0x00,0x5c,0x03,0x3a,0xff,0x95,0x00,0x5c,0x03,0x3f,0xff,0x95,0x00,0x5d,0x00,0x46,0xff,0xf0,0x00,0x5d,0x00,0x47,0xff,0xf0,0x00,0x5d,0x00,0x48,0xff,0xf0,0x00,0x5d,0x00,0x4a,0xff,0xf0,0x00,0x5d,0x00,0x52,0xff,0xf0,0x00,0x5d,0x00,0x54,0xff,0xf0,0x00,0x5d,0x00,0xa9,0xff,0xf0,0x00,0x5d,0x00,0xaa,0xff,0xf0, -0x00,0x5d,0x00,0xab,0xff,0xf0,0x00,0x5d,0x00,0xac,0xff,0xf0,0x00,0x5d,0x00,0xad,0xff,0xf0,0x00,0x5d,0x00,0xb4,0xff,0xf0,0x00,0x5d,0x00,0xb5,0xff,0xf0,0x00,0x5d,0x00,0xb6,0xff,0xf0,0x00,0x5d,0x00,0xb7,0xff,0xf0,0x00,0x5d,0x00,0xb8,0xff,0xf0,0x00,0x5d,0x01,0x15,0xff,0xf0,0x00,0x5e,0x00,0x2d,0xff,0xec,0x00,0x5e,0x00,0x38, -0xff,0xec,0x00,0x5e,0x00,0x9b,0xff,0xec,0x00,0x5e,0x00,0x9c,0xff,0xec,0x00,0x5e,0x00,0x9d,0xff,0xec,0x00,0x5e,0x00,0x9e,0xff,0xec,0x00,0x82,0x00,0x05,0xff,0xb1,0x00,0x82,0x00,0x0a,0xff,0xb1,0x00,0x82,0x00,0x22,0xff,0xc3,0x00,0x82,0x00,0x37,0xff,0x7f,0x00,0x82,0x00,0x38,0xff,0xef,0x00,0x82,0x00,0x39,0xff,0xa9,0x00,0x82, -0x00,0x3a,0xff,0xbb,0x00,0x82,0x00,0x3c,0xff,0xa2,0x00,0x82,0x00,0x52,0xff,0xf4,0x00,0x82,0x00,0x57,0xff,0xef,0x00,0x82,0x00,0x59,0xff,0xce,0x00,0x82,0x00,0x5a,0xff,0xdf,0x00,0x82,0x00,0x5c,0xff,0xce,0x00,0x82,0x00,0x5d,0x00,0x0c,0x00,0x82,0x00,0x9b,0xff,0xef,0x00,0x82,0x00,0x9c,0xff,0xef,0x00,0x82,0x00,0x9d,0xff,0xef, -0x00,0x82,0x00,0x9e,0xff,0xef,0x00,0x82,0x00,0xb4,0xff,0xf4,0x00,0x82,0x00,0xb5,0xff,0xf4,0x00,0x82,0x00,0xb6,0xff,0xf4,0x00,0x82,0x00,0xb7,0xff,0xf4,0x00,0x82,0x00,0xb8,0xff,0xf4,0x00,0x82,0x00,0xc1,0xff,0xce,0x00,0x82,0x01,0x3a,0xff,0xa2,0x00,0x82,0x03,0x34,0xff,0xb1,0x00,0x82,0x03,0x35,0xff,0xb1,0x00,0x82,0x03,0x38, -0xff,0xb1,0x00,0x82,0x03,0x39,0xff,0xb1,0x00,0x83,0x00,0x05,0xff,0xb1,0x00,0x83,0x00,0x0a,0xff,0xb1,0x00,0x83,0x00,0x22,0xff,0xc3,0x00,0x83,0x00,0x37,0xff,0x7f,0x00,0x83,0x00,0x38,0xff,0xef,0x00,0x83,0x00,0x39,0xff,0xa9,0x00,0x83,0x00,0x3a,0xff,0xbb,0x00,0x83,0x00,0x3c,0xff,0xa2,0x00,0x83,0x00,0x52,0xff,0xf4,0x00,0x83, -0x00,0x57,0xff,0xef,0x00,0x83,0x00,0x59,0xff,0xce,0x00,0x83,0x00,0x5a,0xff,0xdf,0x00,0x83,0x00,0x5c,0xff,0xce,0x00,0x83,0x00,0x5d,0x00,0x0c,0x00,0x83,0x00,0x9b,0xff,0xef,0x00,0x83,0x00,0x9c,0xff,0xef,0x00,0x83,0x00,0x9d,0xff,0xef,0x00,0x83,0x00,0x9e,0xff,0xef,0x00,0x83,0x00,0xb4,0xff,0xf4,0x00,0x83,0x00,0xb5,0xff,0xf4, -0x00,0x83,0x00,0xb6,0xff,0xf4,0x00,0x83,0x00,0xb7,0xff,0xf4,0x00,0x83,0x00,0xb8,0xff,0xf4,0x00,0x83,0x00,0xc1,0xff,0xce,0x00,0x83,0x01,0x3a,0xff,0xa2,0x00,0x83,0x03,0x34,0xff,0xb1,0x00,0x83,0x03,0x35,0xff,0xb1,0x00,0x83,0x03,0x38,0xff,0xb1,0x00,0x83,0x03,0x39,0xff,0xb1,0x00,0x84,0x00,0x05,0xff,0xb1,0x00,0x84,0x00,0x0a, -0xff,0xb1,0x00,0x84,0x00,0x22,0xff,0xc3,0x00,0x84,0x00,0x37,0xff,0x7f,0x00,0x84,0x00,0x38,0xff,0xef,0x00,0x84,0x00,0x39,0xff,0xa9,0x00,0x84,0x00,0x3a,0xff,0xbb,0x00,0x84,0x00,0x3c,0xff,0xa2,0x00,0x84,0x00,0x52,0xff,0xf4,0x00,0x84,0x00,0x57,0xff,0xef,0x00,0x84,0x00,0x59,0xff,0xce,0x00,0x84,0x00,0x5a,0xff,0xdf,0x00,0x84, -0x00,0x5c,0xff,0xce,0x00,0x84,0x00,0x5d,0x00,0x0c,0x00,0x84,0x00,0x9b,0xff,0xef,0x00,0x84,0x00,0x9c,0xff,0xef,0x00,0x84,0x00,0x9d,0xff,0xef,0x00,0x84,0x00,0x9e,0xff,0xef,0x00,0x84,0x00,0xb4,0xff,0xf4,0x00,0x84,0x00,0xb5,0xff,0xf4,0x00,0x84,0x00,0xb6,0xff,0xf4,0x00,0x84,0x00,0xb7,0xff,0xf4,0x00,0x84,0x00,0xb8,0xff,0xf4, -0x00,0x84,0x00,0xc1,0xff,0xce,0x00,0x84,0x01,0x3a,0xff,0xa2,0x00,0x84,0x03,0x34,0xff,0xb1,0x00,0x84,0x03,0x35,0xff,0xb1,0x00,0x84,0x03,0x38,0xff,0xb1,0x00,0x84,0x03,0x39,0xff,0xb1,0x00,0x85,0x00,0x05,0xff,0xb1,0x00,0x85,0x00,0x0a,0xff,0xb1,0x00,0x85,0x00,0x22,0xff,0xc3,0x00,0x85,0x00,0x37,0xff,0x7f,0x00,0x85,0x00,0x38, -0xff,0xef,0x00,0x85,0x00,0x39,0xff,0xa9,0x00,0x85,0x00,0x3a,0xff,0xbb,0x00,0x85,0x00,0x3c,0xff,0xa2,0x00,0x85,0x00,0x52,0xff,0xf4,0x00,0x85,0x00,0x57,0xff,0xef,0x00,0x85,0x00,0x59,0xff,0xce,0x00,0x85,0x00,0x5a,0xff,0xdf,0x00,0x85,0x00,0x5c,0xff,0xce,0x00,0x85,0x00,0x5d,0x00,0x0c,0x00,0x85,0x00,0x9b,0xff,0xef,0x00,0x85, -0x00,0x9c,0xff,0xef,0x00,0x85,0x00,0x9d,0xff,0xef,0x00,0x85,0x00,0x9e,0xff,0xef,0x00,0x85,0x00,0xb4,0xff,0xf4,0x00,0x85,0x00,0xb5,0xff,0xf4,0x00,0x85,0x00,0xb6,0xff,0xf4,0x00,0x85,0x00,0xb7,0xff,0xf4,0x00,0x85,0x00,0xb8,0xff,0xf4,0x00,0x85,0x00,0xc1,0xff,0xce,0x00,0x85,0x01,0x3a,0xff,0xa2,0x00,0x85,0x03,0x34,0xff,0xb1, -0x00,0x85,0x03,0x35,0xff,0xb1,0x00,0x85,0x03,0x38,0xff,0xb1,0x00,0x85,0x03,0x39,0xff,0xb1,0x00,0x86,0x00,0x05,0xff,0xb1,0x00,0x86,0x00,0x0a,0xff,0xb1,0x00,0x86,0x00,0x22,0xff,0xc3,0x00,0x86,0x00,0x37,0xff,0x7f,0x00,0x86,0x00,0x38,0xff,0xef,0x00,0x86,0x00,0x39,0xff,0xa9,0x00,0x86,0x00,0x3a,0xff,0xbb,0x00,0x86,0x00,0x3c, -0xff,0xa2,0x00,0x86,0x00,0x52,0xff,0xf4,0x00,0x86,0x00,0x57,0xff,0xef,0x00,0x86,0x00,0x59,0xff,0xce,0x00,0x86,0x00,0x5a,0xff,0xdf,0x00,0x86,0x00,0x5c,0xff,0xce,0x00,0x86,0x00,0x5d,0x00,0x0c,0x00,0x86,0x00,0x9b,0xff,0xef,0x00,0x86,0x00,0x9c,0xff,0xef,0x00,0x86,0x00,0x9d,0xff,0xef,0x00,0x86,0x00,0x9e,0xff,0xef,0x00,0x86, -0x00,0xb4,0xff,0xf4,0x00,0x86,0x00,0xb5,0xff,0xf4,0x00,0x86,0x00,0xb6,0xff,0xf4,0x00,0x86,0x00,0xb7,0xff,0xf4,0x00,0x86,0x00,0xb8,0xff,0xf4,0x00,0x86,0x00,0xc1,0xff,0xce,0x00,0x86,0x01,0x3a,0xff,0xa2,0x00,0x86,0x03,0x34,0xff,0xb1,0x00,0x86,0x03,0x35,0xff,0xb1,0x00,0x86,0x03,0x38,0xff,0xb1,0x00,0x86,0x03,0x39,0xff,0xb1, -0x00,0x87,0x00,0x05,0xff,0xb1,0x00,0x87,0x00,0x0a,0xff,0xb1,0x00,0x87,0x00,0x22,0xff,0xc3,0x00,0x87,0x00,0x37,0xff,0x7f,0x00,0x87,0x00,0x38,0xff,0xef,0x00,0x87,0x00,0x39,0xff,0xa9,0x00,0x87,0x00,0x3a,0xff,0xbb,0x00,0x87,0x00,0x3c,0xff,0xa2,0x00,0x87,0x00,0x52,0xff,0xf4,0x00,0x87,0x00,0x57,0xff,0xef,0x00,0x87,0x00,0x59, -0xff,0xce,0x00,0x87,0x00,0x5a,0xff,0xdf,0x00,0x87,0x00,0x5c,0xff,0xce,0x00,0x87,0x00,0x5d,0x00,0x0c,0x00,0x87,0x00,0x9b,0xff,0xef,0x00,0x87,0x00,0x9c,0xff,0xef,0x00,0x87,0x00,0x9d,0xff,0xef,0x00,0x87,0x00,0x9e,0xff,0xef,0x00,0x87,0x00,0xb4,0xff,0xf4,0x00,0x87,0x00,0xb5,0xff,0xf4,0x00,0x87,0x00,0xb6,0xff,0xf4,0x00,0x87, -0x00,0xb7,0xff,0xf4,0x00,0x87,0x00,0xb8,0xff,0xf4,0x00,0x87,0x00,0xc1,0xff,0xce,0x00,0x87,0x01,0x3a,0xff,0xa2,0x00,0x87,0x03,0x34,0xff,0xb1,0x00,0x87,0x03,0x35,0xff,0xb1,0x00,0x87,0x03,0x38,0xff,0xb1,0x00,0x87,0x03,0x39,0xff,0xb1,0x00,0x89,0x00,0x0c,0xff,0xe6,0x00,0x89,0x00,0x37,0xff,0xe3,0x00,0x89,0x00,0x40,0xff,0xf4, -0x00,0x89,0x00,0x60,0xff,0xef,0x00,0x8a,0x00,0x46,0xff,0xed,0x00,0x8a,0x00,0x47,0xff,0xed,0x00,0x8a,0x00,0x48,0xff,0xed,0x00,0x8a,0x00,0x49,0xff,0xee,0x00,0x8a,0x00,0x4a,0xff,0xed,0x00,0x8a,0x00,0x52,0xff,0xed,0x00,0x8a,0x00,0x54,0xff,0xed,0x00,0x8a,0x00,0x58,0xff,0xef,0x00,0x8a,0x00,0x59,0xff,0xe6,0x00,0x8a,0x00,0x5a, -0xff,0xea,0x00,0x8a,0x00,0x5c,0xff,0xe6,0x00,0x8a,0x00,0xa9,0xff,0xed,0x00,0x8a,0x00,0xaa,0xff,0xed,0x00,0x8a,0x00,0xab,0xff,0xed,0x00,0x8a,0x00,0xac,0xff,0xed,0x00,0x8a,0x00,0xad,0xff,0xed,0x00,0x8a,0x00,0xb4,0xff,0xed,0x00,0x8a,0x00,0xb5,0xff,0xed,0x00,0x8a,0x00,0xb6,0xff,0xed,0x00,0x8a,0x00,0xb7,0xff,0xed,0x00,0x8a, -0x00,0xb8,0xff,0xed,0x00,0x8a,0x00,0xbb,0xff,0xef,0x00,0x8a,0x00,0xbc,0xff,0xef,0x00,0x8a,0x00,0xbd,0xff,0xef,0x00,0x8a,0x00,0xbe,0xff,0xef,0x00,0x8a,0x00,0xc1,0xff,0xe6,0x00,0x8a,0x01,0x15,0xff,0xed,0x00,0x8b,0x00,0x46,0xff,0xed,0x00,0x8b,0x00,0x47,0xff,0xed,0x00,0x8b,0x00,0x48,0xff,0xed,0x00,0x8b,0x00,0x49,0xff,0xee, -0x00,0x8b,0x00,0x4a,0xff,0xed,0x00,0x8b,0x00,0x52,0xff,0xed,0x00,0x8b,0x00,0x54,0xff,0xed,0x00,0x8b,0x00,0x58,0xff,0xef,0x00,0x8b,0x00,0x59,0xff,0xe6,0x00,0x8b,0x00,0x5a,0xff,0xea,0x00,0x8b,0x00,0x5c,0xff,0xe6,0x00,0x8b,0x00,0xa9,0xff,0xed,0x00,0x8b,0x00,0xaa,0xff,0xed,0x00,0x8b,0x00,0xab,0xff,0xed,0x00,0x8b,0x00,0xac, -0xff,0xed,0x00,0x8b,0x00,0xad,0xff,0xed,0x00,0x8b,0x00,0xb4,0xff,0xed,0x00,0x8b,0x00,0xb5,0xff,0xed,0x00,0x8b,0x00,0xb6,0xff,0xed,0x00,0x8b,0x00,0xb7,0xff,0xed,0x00,0x8b,0x00,0xb8,0xff,0xed,0x00,0x8b,0x00,0xbb,0xff,0xef,0x00,0x8b,0x00,0xbc,0xff,0xef,0x00,0x8b,0x00,0xbd,0xff,0xef,0x00,0x8b,0x00,0xbe,0xff,0xef,0x00,0x8b, -0x00,0xc1,0xff,0xe6,0x00,0x8b,0x01,0x15,0xff,0xed,0x00,0x8c,0x00,0x46,0xff,0xed,0x00,0x8c,0x00,0x47,0xff,0xed,0x00,0x8c,0x00,0x48,0xff,0xed,0x00,0x8c,0x00,0x49,0xff,0xee,0x00,0x8c,0x00,0x4a,0xff,0xed,0x00,0x8c,0x00,0x52,0xff,0xed,0x00,0x8c,0x00,0x54,0xff,0xed,0x00,0x8c,0x00,0x58,0xff,0xef,0x00,0x8c,0x00,0x59,0xff,0xe6, -0x00,0x8c,0x00,0x5a,0xff,0xea,0x00,0x8c,0x00,0x5c,0xff,0xe6,0x00,0x8c,0x00,0xa9,0xff,0xed,0x00,0x8c,0x00,0xaa,0xff,0xed,0x00,0x8c,0x00,0xab,0xff,0xed,0x00,0x8c,0x00,0xac,0xff,0xed,0x00,0x8c,0x00,0xad,0xff,0xed,0x00,0x8c,0x00,0xb4,0xff,0xed,0x00,0x8c,0x00,0xb5,0xff,0xed,0x00,0x8c,0x00,0xb6,0xff,0xed,0x00,0x8c,0x00,0xb7, -0xff,0xed,0x00,0x8c,0x00,0xb8,0xff,0xed,0x00,0x8c,0x00,0xbb,0xff,0xef,0x00,0x8c,0x00,0xbc,0xff,0xef,0x00,0x8c,0x00,0xbd,0xff,0xef,0x00,0x8c,0x00,0xbe,0xff,0xef,0x00,0x8c,0x00,0xc1,0xff,0xe6,0x00,0x8c,0x01,0x15,0xff,0xed,0x00,0x8d,0x00,0x46,0xff,0xed,0x00,0x8d,0x00,0x47,0xff,0xed,0x00,0x8d,0x00,0x48,0xff,0xed,0x00,0x8d, -0x00,0x49,0xff,0xee,0x00,0x8d,0x00,0x4a,0xff,0xed,0x00,0x8d,0x00,0x52,0xff,0xed,0x00,0x8d,0x00,0x54,0xff,0xed,0x00,0x8d,0x00,0x58,0xff,0xef,0x00,0x8d,0x00,0x59,0xff,0xe6,0x00,0x8d,0x00,0x5a,0xff,0xea,0x00,0x8d,0x00,0x5c,0xff,0xe6,0x00,0x8d,0x00,0xa9,0xff,0xed,0x00,0x8d,0x00,0xaa,0xff,0xed,0x00,0x8d,0x00,0xab,0xff,0xed, -0x00,0x8d,0x00,0xac,0xff,0xed,0x00,0x8d,0x00,0xad,0xff,0xed,0x00,0x8d,0x00,0xb4,0xff,0xed,0x00,0x8d,0x00,0xb5,0xff,0xed,0x00,0x8d,0x00,0xb6,0xff,0xed,0x00,0x8d,0x00,0xb7,0xff,0xed,0x00,0x8d,0x00,0xb8,0xff,0xed,0x00,0x8d,0x00,0xbb,0xff,0xef,0x00,0x8d,0x00,0xbc,0xff,0xef,0x00,0x8d,0x00,0xbd,0xff,0xef,0x00,0x8d,0x00,0xbe, -0xff,0xef,0x00,0x8d,0x00,0xc1,0xff,0xe6,0x00,0x8d,0x01,0x15,0xff,0xed,0x00,0x8e,0x00,0x24,0x00,0x12,0x00,0x8e,0x00,0x37,0xff,0xe3,0x00,0x8e,0x00,0x3b,0x00,0x11,0x00,0x8e,0x00,0x3c,0xff,0xe4,0x00,0x8e,0x00,0x82,0x00,0x12,0x00,0x8e,0x00,0x83,0x00,0x12,0x00,0x8e,0x00,0x84,0x00,0x12,0x00,0x8e,0x00,0x85,0x00,0x12,0x00,0x8e, -0x00,0x86,0x00,0x12,0x00,0x8e,0x00,0x87,0x00,0x12,0x00,0x8e,0x01,0x3a,0xff,0xe4,0x00,0x8e,0x01,0x6f,0x00,0x12,0x00,0x8f,0x00,0x24,0x00,0x12,0x00,0x8f,0x00,0x37,0xff,0xe3,0x00,0x8f,0x00,0x3b,0x00,0x11,0x00,0x8f,0x00,0x3c,0xff,0xe4,0x00,0x8f,0x00,0x82,0x00,0x12,0x00,0x8f,0x00,0x83,0x00,0x12,0x00,0x8f,0x00,0x84,0x00,0x12, -0x00,0x8f,0x00,0x85,0x00,0x12,0x00,0x8f,0x00,0x86,0x00,0x12,0x00,0x8f,0x00,0x87,0x00,0x12,0x00,0x8f,0x01,0x3a,0xff,0xe4,0x00,0x8f,0x01,0x6f,0x00,0x12,0x00,0x90,0x00,0x24,0x00,0x12,0x00,0x90,0x00,0x37,0xff,0xe3,0x00,0x90,0x00,0x3b,0x00,0x11,0x00,0x90,0x00,0x3c,0xff,0xe4,0x00,0x90,0x00,0x82,0x00,0x12,0x00,0x90,0x00,0x83, -0x00,0x12,0x00,0x90,0x00,0x84,0x00,0x12,0x00,0x90,0x00,0x85,0x00,0x12,0x00,0x90,0x00,0x86,0x00,0x12,0x00,0x90,0x00,0x87,0x00,0x12,0x00,0x90,0x01,0x3a,0xff,0xe4,0x00,0x90,0x01,0x6f,0x00,0x12,0x00,0x91,0x00,0x24,0x00,0x12,0x00,0x91,0x00,0x37,0xff,0xe3,0x00,0x91,0x00,0x3b,0x00,0x11,0x00,0x91,0x00,0x3c,0xff,0xe4,0x00,0x91, -0x00,0x82,0x00,0x12,0x00,0x91,0x00,0x83,0x00,0x12,0x00,0x91,0x00,0x84,0x00,0x12,0x00,0x91,0x00,0x85,0x00,0x12,0x00,0x91,0x00,0x86,0x00,0x12,0x00,0x91,0x00,0x87,0x00,0x12,0x00,0x91,0x01,0x3a,0xff,0xe4,0x00,0x91,0x01,0x6f,0x00,0x12,0x00,0x93,0x00,0x24,0x00,0x12,0x00,0x93,0x00,0x37,0xff,0xe3,0x00,0x93,0x00,0x3b,0x00,0x11, -0x00,0x93,0x00,0x3c,0xff,0xe4,0x00,0x93,0x00,0x82,0x00,0x12,0x00,0x93,0x00,0x83,0x00,0x12,0x00,0x93,0x00,0x84,0x00,0x12,0x00,0x93,0x00,0x85,0x00,0x12,0x00,0x93,0x00,0x86,0x00,0x12,0x00,0x93,0x00,0x87,0x00,0x12,0x00,0x93,0x01,0x3a,0xff,0xe4,0x00,0x93,0x01,0x6f,0x00,0x12,0x00,0x94,0x00,0x0f,0xff,0x9a,0x00,0x94,0x00,0x11, -0xff,0x9a,0x00,0x94,0x00,0x1d,0xff,0x9a,0x00,0x94,0x00,0x24,0xff,0xeb,0x00,0x94,0x00,0x37,0xff,0xe5,0x00,0x94,0x00,0x39,0xff,0xea,0x00,0x94,0x00,0x3b,0xff,0xea,0x00,0x94,0x00,0x3c,0xff,0xd5,0x00,0x94,0x00,0x3d,0xff,0xe9,0x00,0x94,0x00,0x82,0xff,0xeb,0x00,0x94,0x00,0x83,0xff,0xeb,0x00,0x94,0x00,0x84,0xff,0xeb,0x00,0x94, -0x00,0x85,0xff,0xeb,0x00,0x94,0x00,0x86,0xff,0xeb,0x00,0x94,0x00,0x87,0xff,0xeb,0x00,0x94,0x00,0x88,0xff,0xdf,0x00,0x94,0x01,0x3a,0xff,0xd5,0x00,0x94,0x01,0x6f,0xff,0xeb,0x00,0x94,0x03,0x36,0xff,0x9a,0x00,0x94,0x03,0x3a,0xff,0x9a,0x00,0x94,0x03,0x3f,0xff,0x9a,0x00,0x95,0x00,0x0f,0xff,0x9a,0x00,0x95,0x00,0x11,0xff,0x9a, -0x00,0x95,0x00,0x1d,0xff,0x9a,0x00,0x95,0x00,0x24,0xff,0xeb,0x00,0x95,0x00,0x37,0xff,0xe5,0x00,0x95,0x00,0x39,0xff,0xea,0x00,0x95,0x00,0x3b,0xff,0xea,0x00,0x95,0x00,0x3c,0xff,0xd5,0x00,0x95,0x00,0x3d,0xff,0xe9,0x00,0x95,0x00,0x82,0xff,0xeb,0x00,0x95,0x00,0x83,0xff,0xeb,0x00,0x95,0x00,0x84,0xff,0xeb,0x00,0x95,0x00,0x85, -0xff,0xeb,0x00,0x95,0x00,0x86,0xff,0xeb,0x00,0x95,0x00,0x87,0xff,0xeb,0x00,0x95,0x00,0x88,0xff,0xdf,0x00,0x95,0x01,0x3a,0xff,0xd5,0x00,0x95,0x01,0x6f,0xff,0xeb,0x00,0x95,0x03,0x36,0xff,0x9a,0x00,0x95,0x03,0x3a,0xff,0x9a,0x00,0x95,0x03,0x3f,0xff,0x9a,0x00,0x96,0x00,0x0f,0xff,0x9a,0x00,0x96,0x00,0x11,0xff,0x9a,0x00,0x96, -0x00,0x1d,0xff,0x9a,0x00,0x96,0x00,0x24,0xff,0xeb,0x00,0x96,0x00,0x37,0xff,0xe5,0x00,0x96,0x00,0x39,0xff,0xea,0x00,0x96,0x00,0x3b,0xff,0xea,0x00,0x96,0x00,0x3c,0xff,0xd5,0x00,0x96,0x00,0x3d,0xff,0xe9,0x00,0x96,0x00,0x82,0xff,0xeb,0x00,0x96,0x00,0x83,0xff,0xeb,0x00,0x96,0x00,0x84,0xff,0xeb,0x00,0x96,0x00,0x85,0xff,0xeb, -0x00,0x96,0x00,0x86,0xff,0xeb,0x00,0x96,0x00,0x87,0xff,0xeb,0x00,0x96,0x00,0x88,0xff,0xdf,0x00,0x96,0x01,0x3a,0xff,0xd5,0x00,0x96,0x01,0x6f,0xff,0xeb,0x00,0x96,0x03,0x36,0xff,0x9a,0x00,0x96,0x03,0x3a,0xff,0x9a,0x00,0x96,0x03,0x3f,0xff,0x9a,0x00,0x97,0x00,0x0f,0xff,0x9a,0x00,0x97,0x00,0x11,0xff,0x9a,0x00,0x97,0x00,0x1d, -0xff,0x9a,0x00,0x97,0x00,0x24,0xff,0xeb,0x00,0x97,0x00,0x37,0xff,0xe5,0x00,0x97,0x00,0x39,0xff,0xea,0x00,0x97,0x00,0x3b,0xff,0xea,0x00,0x97,0x00,0x3c,0xff,0xd5,0x00,0x97,0x00,0x3d,0xff,0xe9,0x00,0x97,0x00,0x82,0xff,0xeb,0x00,0x97,0x00,0x83,0xff,0xeb,0x00,0x97,0x00,0x84,0xff,0xeb,0x00,0x97,0x00,0x85,0xff,0xeb,0x00,0x97, -0x00,0x86,0xff,0xeb,0x00,0x97,0x00,0x87,0xff,0xeb,0x00,0x97,0x00,0x88,0xff,0xdf,0x00,0x97,0x01,0x3a,0xff,0xd5,0x00,0x97,0x01,0x6f,0xff,0xeb,0x00,0x97,0x03,0x36,0xff,0x9a,0x00,0x97,0x03,0x3a,0xff,0x9a,0x00,0x97,0x03,0x3f,0xff,0x9a,0x00,0x98,0x00,0x0f,0xff,0x9a,0x00,0x98,0x00,0x11,0xff,0x9a,0x00,0x98,0x00,0x1d,0xff,0x9a, -0x00,0x98,0x00,0x24,0xff,0xeb,0x00,0x98,0x00,0x37,0xff,0xe5,0x00,0x98,0x00,0x39,0xff,0xea,0x00,0x98,0x00,0x3b,0xff,0xea,0x00,0x98,0x00,0x3c,0xff,0xd5,0x00,0x98,0x00,0x3d,0xff,0xe9,0x00,0x98,0x00,0x82,0xff,0xeb,0x00,0x98,0x00,0x83,0xff,0xeb,0x00,0x98,0x00,0x84,0xff,0xeb,0x00,0x98,0x00,0x85,0xff,0xeb,0x00,0x98,0x00,0x86, -0xff,0xeb,0x00,0x98,0x00,0x87,0xff,0xeb,0x00,0x98,0x00,0x88,0xff,0xdf,0x00,0x98,0x01,0x3a,0xff,0xd5,0x00,0x98,0x01,0x6f,0xff,0xeb,0x00,0x98,0x03,0x36,0xff,0x9a,0x00,0x98,0x03,0x3a,0xff,0x9a,0x00,0x98,0x03,0x3f,0xff,0x9a,0x00,0x9b,0x00,0x24,0xff,0xea,0x00,0x9b,0x00,0x82,0xff,0xea,0x00,0x9b,0x00,0x83,0xff,0xea,0x00,0x9b, -0x00,0x84,0xff,0xea,0x00,0x9b,0x00,0x85,0xff,0xea,0x00,0x9b,0x00,0x86,0xff,0xea,0x00,0x9b,0x00,0x87,0xff,0xea,0x00,0x9b,0x01,0x6f,0xff,0xea,0x00,0x9c,0x00,0x24,0xff,0xea,0x00,0x9c,0x00,0x82,0xff,0xea,0x00,0x9c,0x00,0x83,0xff,0xea,0x00,0x9c,0x00,0x84,0xff,0xea,0x00,0x9c,0x00,0x85,0xff,0xea,0x00,0x9c,0x00,0x86,0xff,0xea, -0x00,0x9c,0x00,0x87,0xff,0xea,0x00,0x9c,0x01,0x6f,0xff,0xea,0x00,0x9d,0x00,0x24,0xff,0xea,0x00,0x9d,0x00,0x82,0xff,0xea,0x00,0x9d,0x00,0x83,0xff,0xea,0x00,0x9d,0x00,0x84,0xff,0xea,0x00,0x9d,0x00,0x85,0xff,0xea,0x00,0x9d,0x00,0x86,0xff,0xea,0x00,0x9d,0x00,0x87,0xff,0xea,0x00,0x9d,0x01,0x6f,0xff,0xea,0x00,0x9e,0x00,0x24, -0xff,0xea,0x00,0x9e,0x00,0x82,0xff,0xea,0x00,0x9e,0x00,0x83,0xff,0xea,0x00,0x9e,0x00,0x84,0xff,0xea,0x00,0x9e,0x00,0x85,0xff,0xea,0x00,0x9e,0x00,0x86,0xff,0xea,0x00,0x9e,0x00,0x87,0xff,0xea,0x00,0x9e,0x01,0x6f,0xff,0xea,0x00,0xa2,0x00,0x05,0xff,0xbd,0x00,0xa2,0x00,0x0a,0xff,0xbd,0x00,0xa2,0x00,0x59,0xff,0xf1,0x00,0xa2, -0x00,0x5c,0xff,0xf1,0x00,0xa2,0x00,0xc1,0xff,0xf1,0x00,0xa2,0x03,0x34,0xff,0xbd,0x00,0xa2,0x03,0x35,0xff,0xbd,0x00,0xa2,0x03,0x38,0xff,0xbd,0x00,0xa2,0x03,0x39,0xff,0xbd,0x00,0xa3,0x00,0x05,0xff,0xbd,0x00,0xa3,0x00,0x0a,0xff,0xbd,0x00,0xa3,0x00,0x59,0xff,0xf1,0x00,0xa3,0x00,0x5c,0xff,0xf1,0x00,0xa3,0x00,0xc1,0xff,0xf1, -0x00,0xa3,0x03,0x34,0xff,0xbd,0x00,0xa3,0x03,0x35,0xff,0xbd,0x00,0xa3,0x03,0x38,0xff,0xbd,0x00,0xa3,0x03,0x39,0xff,0xbd,0x00,0xa4,0x00,0x05,0xff,0xbd,0x00,0xa4,0x00,0x0a,0xff,0xbd,0x00,0xa4,0x00,0x59,0xff,0xf1,0x00,0xa4,0x00,0x5c,0xff,0xf1,0x00,0xa4,0x00,0xc1,0xff,0xf1,0x00,0xa4,0x03,0x34,0xff,0xbd,0x00,0xa4,0x03,0x35, -0xff,0xbd,0x00,0xa4,0x03,0x38,0xff,0xbd,0x00,0xa4,0x03,0x39,0xff,0xbd,0x00,0xa5,0x00,0x05,0xff,0xbd,0x00,0xa5,0x00,0x0a,0xff,0xbd,0x00,0xa5,0x00,0x59,0xff,0xf1,0x00,0xa5,0x00,0x5c,0xff,0xf1,0x00,0xa5,0x00,0xc1,0xff,0xf1,0x00,0xa5,0x03,0x34,0xff,0xbd,0x00,0xa5,0x03,0x35,0xff,0xbd,0x00,0xa5,0x03,0x38,0xff,0xbd,0x00,0xa5, -0x03,0x39,0xff,0xbd,0x00,0xa6,0x00,0x05,0xff,0xbd,0x00,0xa6,0x00,0x0a,0xff,0xbd,0x00,0xa6,0x00,0x59,0xff,0xf1,0x00,0xa6,0x00,0x5c,0xff,0xf1,0x00,0xa6,0x00,0xc1,0xff,0xf1,0x00,0xa6,0x03,0x34,0xff,0xbd,0x00,0xa6,0x03,0x35,0xff,0xbd,0x00,0xa6,0x03,0x38,0xff,0xbd,0x00,0xa6,0x03,0x39,0xff,0xbd,0x00,0xa7,0x00,0x05,0xff,0xbd, -0x00,0xa7,0x00,0x0a,0xff,0xbd,0x00,0xa7,0x00,0x59,0xff,0xf1,0x00,0xa7,0x00,0x5c,0xff,0xf1,0x00,0xa7,0x00,0xc1,0xff,0xf1,0x00,0xa7,0x03,0x34,0xff,0xbd,0x00,0xa7,0x03,0x35,0xff,0xbd,0x00,0xa7,0x03,0x38,0xff,0xbd,0x00,0xa7,0x03,0x39,0xff,0xbd,0x00,0xaa,0x00,0x05,0xff,0xf2,0x00,0xaa,0x00,0x0a,0xff,0xf2,0x00,0xaa,0x00,0x59, -0xff,0xf3,0x00,0xaa,0x00,0x5c,0xff,0xf3,0x00,0xaa,0x00,0xc1,0xff,0xf3,0x00,0xaa,0x03,0x34,0xff,0xf2,0x00,0xaa,0x03,0x35,0xff,0xf2,0x00,0xaa,0x03,0x38,0xff,0xf2,0x00,0xaa,0x03,0x39,0xff,0xf2,0x00,0xab,0x00,0x05,0xff,0xf2,0x00,0xab,0x00,0x0a,0xff,0xf2,0x00,0xab,0x00,0x59,0xff,0xf3,0x00,0xab,0x00,0x5c,0xff,0xf3,0x00,0xab, -0x00,0xc1,0xff,0xf3,0x00,0xab,0x03,0x34,0xff,0xf2,0x00,0xab,0x03,0x35,0xff,0xf2,0x00,0xab,0x03,0x38,0xff,0xf2,0x00,0xab,0x03,0x39,0xff,0xf2,0x00,0xac,0x00,0x05,0xff,0xf2,0x00,0xac,0x00,0x0a,0xff,0xf2,0x00,0xac,0x00,0x59,0xff,0xf3,0x00,0xac,0x00,0x5c,0xff,0xf3,0x00,0xac,0x00,0xc1,0xff,0xf3,0x00,0xac,0x03,0x34,0xff,0xf2, -0x00,0xac,0x03,0x35,0xff,0xf2,0x00,0xac,0x03,0x38,0xff,0xf2,0x00,0xac,0x03,0x39,0xff,0xf2,0x00,0xad,0x00,0x05,0xff,0xf2,0x00,0xad,0x00,0x0a,0xff,0xf2,0x00,0xad,0x00,0x59,0xff,0xf3,0x00,0xad,0x00,0x5c,0xff,0xf3,0x00,0xad,0x00,0xc1,0xff,0xf3,0x00,0xad,0x03,0x34,0xff,0xf2,0x00,0xad,0x03,0x35,0xff,0xf2,0x00,0xad,0x03,0x38, -0xff,0xf2,0x00,0xad,0x03,0x39,0xff,0xf2,0x00,0xb3,0x00,0x05,0xff,0xf0,0x00,0xb3,0x00,0x0a,0xff,0xf0,0x00,0xb3,0x03,0x34,0xff,0xf0,0x00,0xb3,0x03,0x35,0xff,0xf0,0x00,0xb3,0x03,0x38,0xff,0xf0,0x00,0xb3,0x03,0x39,0xff,0xf0,0x00,0xb4,0x00,0x05,0xff,0xec,0x00,0xb4,0x00,0x0a,0xff,0xec,0x00,0xb4,0x00,0x59,0xff,0xf1,0x00,0xb4, -0x00,0x5b,0xff,0xeb,0x00,0xb4,0x00,0x5c,0xff,0xf1,0x00,0xb4,0x00,0x5d,0xff,0xf0,0x00,0xb4,0x00,0xc1,0xff,0xf1,0x00,0xb4,0x03,0x34,0xff,0xec,0x00,0xb4,0x03,0x35,0xff,0xec,0x00,0xb4,0x03,0x38,0xff,0xec,0x00,0xb4,0x03,0x39,0xff,0xec,0x00,0xb5,0x00,0x05,0xff,0xec,0x00,0xb5,0x00,0x0a,0xff,0xec,0x00,0xb5,0x00,0x59,0xff,0xf1, -0x00,0xb5,0x00,0x5b,0xff,0xeb,0x00,0xb5,0x00,0x5c,0xff,0xf1,0x00,0xb5,0x00,0x5d,0xff,0xf0,0x00,0xb5,0x00,0xc1,0xff,0xf1,0x00,0xb5,0x03,0x34,0xff,0xec,0x00,0xb5,0x03,0x35,0xff,0xec,0x00,0xb5,0x03,0x38,0xff,0xec,0x00,0xb5,0x03,0x39,0xff,0xec,0x00,0xb6,0x00,0x05,0xff,0xec,0x00,0xb6,0x00,0x0a,0xff,0xec,0x00,0xb6,0x00,0x59, -0xff,0xf1,0x00,0xb6,0x00,0x5b,0xff,0xeb,0x00,0xb6,0x00,0x5c,0xff,0xf1,0x00,0xb6,0x00,0x5d,0xff,0xf0,0x00,0xb6,0x00,0xc1,0xff,0xf1,0x00,0xb6,0x03,0x34,0xff,0xec,0x00,0xb6,0x03,0x35,0xff,0xec,0x00,0xb6,0x03,0x38,0xff,0xec,0x00,0xb6,0x03,0x39,0xff,0xec,0x00,0xb7,0x00,0x05,0xff,0xec,0x00,0xb7,0x00,0x0a,0xff,0xec,0x00,0xb7, -0x00,0x59,0xff,0xf1,0x00,0xb7,0x00,0x5b,0xff,0xeb,0x00,0xb7,0x00,0x5c,0xff,0xf1,0x00,0xb7,0x00,0x5d,0xff,0xf0,0x00,0xb7,0x00,0xc1,0xff,0xf1,0x00,0xb7,0x03,0x34,0xff,0xec,0x00,0xb7,0x03,0x35,0xff,0xec,0x00,0xb7,0x03,0x38,0xff,0xec,0x00,0xb7,0x03,0x39,0xff,0xec,0x00,0xb8,0x00,0x05,0xff,0xec,0x00,0xb8,0x00,0x0a,0xff,0xec, -0x00,0xb8,0x00,0x59,0xff,0xf1,0x00,0xb8,0x00,0x5b,0xff,0xeb,0x00,0xb8,0x00,0x5c,0xff,0xf1,0x00,0xb8,0x00,0x5d,0xff,0xf0,0x00,0xb8,0x00,0xc1,0xff,0xf1,0x00,0xb8,0x03,0x34,0xff,0xec,0x00,0xb8,0x03,0x35,0xff,0xec,0x00,0xb8,0x03,0x38,0xff,0xec,0x00,0xb8,0x03,0x39,0xff,0xec,0x00,0xc1,0x00,0x05,0x00,0x0f,0x00,0xc1,0x00,0x0a, -0x00,0x0f,0x00,0xc1,0x00,0x0f,0xff,0x95,0x00,0xc1,0x00,0x11,0xff,0x95,0x00,0xc1,0x00,0x1d,0xff,0x95,0x00,0xc1,0x00,0x44,0xff,0xf1,0x00,0xc1,0x00,0x46,0xff,0xf3,0x00,0xc1,0x00,0x47,0xff,0xf3,0x00,0xc1,0x00,0x48,0xff,0xf3,0x00,0xc1,0x00,0x49,0x00,0x0d,0x00,0xc1,0x00,0x4a,0xff,0xf3,0x00,0xc1,0x00,0x52,0xff,0xf1,0x00,0xc1, -0x00,0x54,0xff,0xf3,0x00,0xc1,0x00,0xa2,0xff,0xf1,0x00,0xc1,0x00,0xa3,0xff,0xf1,0x00,0xc1,0x00,0xa4,0xff,0xf1,0x00,0xc1,0x00,0xa5,0xff,0xf1,0x00,0xc1,0x00,0xa6,0xff,0xf1,0x00,0xc1,0x00,0xa7,0xff,0xf1,0x00,0xc1,0x00,0xa9,0xff,0xf3,0x00,0xc1,0x00,0xaa,0xff,0xf3,0x00,0xc1,0x00,0xab,0xff,0xf3,0x00,0xc1,0x00,0xac,0xff,0xf3, -0x00,0xc1,0x00,0xad,0xff,0xf3,0x00,0xc1,0x00,0xb4,0xff,0xf1,0x00,0xc1,0x00,0xb5,0xff,0xf1,0x00,0xc1,0x00,0xb6,0xff,0xf1,0x00,0xc1,0x00,0xb7,0xff,0xf1,0x00,0xc1,0x00,0xb8,0xff,0xf1,0x00,0xc1,0x01,0x15,0xff,0xf3,0x00,0xc1,0x03,0x34,0x00,0x0f,0x00,0xc1,0x03,0x35,0x00,0x0f,0x00,0xc1,0x03,0x36,0xff,0x95,0x00,0xc1,0x03,0x38, -0x00,0x0f,0x00,0xc1,0x03,0x39,0x00,0x0f,0x00,0xc1,0x03,0x3a,0xff,0x95,0x00,0xc1,0x03,0x3f,0xff,0x95,0x01,0x3a,0x00,0x09,0xff,0xe2,0x01,0x3a,0x00,0x0c,0x00,0x14,0x01,0x3a,0x00,0x0d,0xff,0xcf,0x01,0x3a,0x00,0x0f,0xff,0x2d,0x01,0x3a,0x00,0x10,0xff,0xcc,0x01,0x3a,0x00,0x11,0xff,0x2d,0x01,0x3a,0x00,0x1d,0xff,0x2d,0x01,0x3a, -0x00,0x24,0xff,0xae,0x01,0x3a,0x00,0x26,0xff,0xe3,0x01,0x3a,0x00,0x2a,0xff,0xe3,0x01,0x3a,0x00,0x2d,0xff,0xa0,0x01,0x3a,0x00,0x32,0xff,0xe3,0x01,0x3a,0x00,0x34,0xff,0xe3,0x01,0x3a,0x00,0x36,0xff,0xf0,0x01,0x3a,0x00,0x37,0x00,0x11,0x01,0x3a,0x00,0x38,0xff,0xa0,0x01,0x3a,0x00,0x39,0x00,0x12,0x01,0x3a,0x00,0x3a,0x00,0x11, -0x01,0x3a,0x00,0x3b,0x00,0x0d,0x01,0x3a,0x00,0x3c,0x00,0x12,0x01,0x3a,0x00,0x40,0x00,0x12,0x01,0x3a,0x00,0x44,0xff,0xb7,0x01,0x3a,0x00,0x46,0xff,0xbf,0x01,0x3a,0x00,0x47,0xff,0xbf,0x01,0x3a,0x00,0x48,0xff,0xbf,0x01,0x3a,0x00,0x49,0xff,0xea,0x01,0x3a,0x00,0x4a,0xff,0xbf,0x01,0x3a,0x00,0x50,0xff,0xd8,0x01,0x3a,0x00,0x51, -0xff,0xd8,0x01,0x3a,0x00,0x52,0xff,0xbf,0x01,0x3a,0x00,0x53,0xff,0xd8,0x01,0x3a,0x00,0x54,0xff,0xbf,0x01,0x3a,0x00,0x55,0xff,0xd8,0x01,0x3a,0x00,0x56,0xff,0xc6,0x01,0x3a,0x00,0x57,0xff,0xea,0x01,0x3a,0x00,0x58,0xff,0xd9,0x01,0x3a,0x00,0x59,0xff,0xec,0x01,0x3a,0x00,0x5b,0xff,0xe9,0x01,0x3a,0x00,0x5c,0xff,0xec,0x01,0x3a, -0x00,0x5d,0xff,0xe2,0x01,0x3a,0x00,0x60,0x00,0x13,0x01,0x3a,0x00,0x6d,0xff,0xae,0x01,0x3a,0x00,0x7d,0xff,0xcd,0x01,0x3a,0x00,0x82,0xff,0xae,0x01,0x3a,0x00,0x83,0xff,0xae,0x01,0x3a,0x00,0x84,0xff,0xae,0x01,0x3a,0x00,0x85,0xff,0xae,0x01,0x3a,0x00,0x86,0xff,0xae,0x01,0x3a,0x00,0x87,0xff,0xae,0x01,0x3a,0x00,0x88,0xff,0xa0, -0x01,0x3a,0x00,0x89,0xff,0xe3,0x01,0x3a,0x00,0x94,0xff,0xe3,0x01,0x3a,0x00,0x95,0xff,0xe3,0x01,0x3a,0x00,0x96,0xff,0xe3,0x01,0x3a,0x00,0x97,0xff,0xe3,0x01,0x3a,0x00,0x98,0xff,0xe3,0x01,0x3a,0x00,0x9a,0xff,0xe3,0x01,0x3a,0x00,0x9b,0xff,0xa0,0x01,0x3a,0x00,0x9c,0xff,0xa0,0x01,0x3a,0x00,0x9d,0xff,0xa0,0x01,0x3a,0x00,0x9e, -0xff,0xa0,0x01,0x3a,0x00,0xa2,0xff,0xb7,0x01,0x3a,0x00,0xa3,0xff,0xb7,0x01,0x3a,0x00,0xa4,0xff,0xb7,0x01,0x3a,0x00,0xa5,0xff,0xb7,0x01,0x3a,0x00,0xa6,0xff,0xb7,0x01,0x3a,0x00,0xa7,0xff,0xb7,0x01,0x3a,0x00,0xa8,0xff,0xc1,0x01,0x3a,0x00,0xa9,0xff,0xbf,0x01,0x3a,0x00,0xaa,0xff,0xbf,0x01,0x3a,0x00,0xab,0xff,0xbf,0x01,0x3a, -0x00,0xac,0xff,0xbf,0x01,0x3a,0x00,0xad,0xff,0xbf,0x01,0x3a,0x00,0xb3,0xff,0xd8,0x01,0x3a,0x00,0xb4,0xff,0xbf,0x01,0x3a,0x00,0xb5,0xff,0xbf,0x01,0x3a,0x00,0xb6,0xff,0xbf,0x01,0x3a,0x00,0xb7,0xff,0xbf,0x01,0x3a,0x00,0xb8,0xff,0xbf,0x01,0x3a,0x00,0xba,0xff,0xc0,0x01,0x3a,0x00,0xbb,0xff,0xd9,0x01,0x3a,0x00,0xbc,0xff,0xd9, -0x01,0x3a,0x00,0xbd,0xff,0xd9,0x01,0x3a,0x00,0xbe,0xff,0xd9,0x01,0x3a,0x00,0xc1,0xff,0xec,0x01,0x3a,0x01,0x14,0xff,0xe3,0x01,0x3a,0x01,0x15,0xff,0xbf,0x01,0x3a,0x01,0x3a,0x00,0x12,0x01,0x3a,0x01,0x6f,0xff,0xae,0x01,0x3a,0x01,0x9a,0xff,0xe8,0x01,0x3a,0x03,0x30,0xff,0xcc,0x01,0x3a,0x03,0x31,0xff,0xcc,0x01,0x3a,0x03,0x36, -0xff,0x2d,0x01,0x3a,0x03,0x3a,0xff,0x2d,0x01,0x3a,0x03,0x3d,0xff,0xd3,0x01,0x3a,0x03,0x3f,0xff,0x2d,0x01,0x6f,0x00,0x05,0xff,0xb1,0x01,0x6f,0x00,0x0a,0xff,0xb1,0x01,0x6f,0x00,0x22,0xff,0xc3,0x01,0x6f,0x00,0x37,0xff,0x7f,0x01,0x6f,0x00,0x38,0xff,0xef,0x01,0x6f,0x00,0x39,0xff,0xa9,0x01,0x6f,0x00,0x3a,0xff,0xbb,0x01,0x6f, -0x00,0x3c,0xff,0xa2,0x01,0x6f,0x00,0x52,0xff,0xf4,0x01,0x6f,0x00,0x57,0xff,0xef,0x01,0x6f,0x00,0x59,0xff,0xce,0x01,0x6f,0x00,0x5a,0xff,0xdf,0x01,0x6f,0x00,0x5c,0xff,0xce,0x01,0x6f,0x00,0x5d,0x00,0x0c,0x01,0x6f,0x00,0x9b,0xff,0xef,0x01,0x6f,0x00,0x9c,0xff,0xef,0x01,0x6f,0x00,0x9d,0xff,0xef,0x01,0x6f,0x00,0x9e,0xff,0xef, -0x01,0x6f,0x00,0xb4,0xff,0xf4,0x01,0x6f,0x00,0xb5,0xff,0xf4,0x01,0x6f,0x00,0xb6,0xff,0xf4,0x01,0x6f,0x00,0xb7,0xff,0xf4,0x01,0x6f,0x00,0xb8,0xff,0xf4,0x01,0x6f,0x00,0xc1,0xff,0xce,0x01,0x6f,0x01,0x3a,0xff,0xa2,0x01,0x6f,0x03,0x34,0xff,0xb1,0x01,0x6f,0x03,0x35,0xff,0xb1,0x01,0x6f,0x03,0x38,0xff,0xb1,0x01,0x6f,0x03,0x39, -0xff,0xb1,0x03,0x34,0x00,0x05,0xff,0x95,0x03,0x34,0x00,0x0a,0xff,0x95,0x03,0x34,0x00,0x24,0xff,0x96,0x03,0x34,0x00,0x44,0xff,0xce,0x03,0x34,0x00,0x46,0xff,0xc5,0x03,0x34,0x00,0x47,0xff,0xc5,0x03,0x34,0x00,0x48,0xff,0xc5,0x03,0x34,0x00,0x4a,0xff,0xc5,0x03,0x34,0x00,0x50,0xff,0xec,0x03,0x34,0x00,0x51,0xff,0xec,0x03,0x34, -0x00,0x52,0xff,0xc3,0x03,0x34,0x00,0x53,0xff,0xec,0x03,0x34,0x00,0x54,0xff,0xc5,0x03,0x34,0x00,0x56,0xff,0xd6,0x03,0x34,0x00,0x82,0xff,0x96,0x03,0x34,0x00,0x83,0xff,0x96,0x03,0x34,0x00,0x84,0xff,0x96,0x03,0x34,0x00,0x85,0xff,0x96,0x03,0x34,0x00,0x86,0xff,0x96,0x03,0x34,0x00,0x87,0xff,0x96,0x03,0x34,0x00,0xa2,0xff,0xce, -0x03,0x34,0x00,0xa3,0xff,0xce,0x03,0x34,0x00,0xa4,0xff,0xce,0x03,0x34,0x00,0xa5,0xff,0xce,0x03,0x34,0x00,0xa6,0xff,0xce,0x03,0x34,0x00,0xa7,0xff,0xce,0x03,0x34,0x00,0xa9,0xff,0xc5,0x03,0x34,0x00,0xaa,0xff,0xc5,0x03,0x34,0x00,0xab,0xff,0xc5,0x03,0x34,0x00,0xac,0xff,0xc5,0x03,0x34,0x00,0xad,0xff,0xc5,0x03,0x34,0x00,0xb3, -0xff,0xec,0x03,0x34,0x00,0xb4,0xff,0xc3,0x03,0x34,0x00,0xb5,0xff,0xc3,0x03,0x34,0x00,0xb6,0xff,0xc3,0x03,0x34,0x00,0xb7,0xff,0xc3,0x03,0x34,0x00,0xb8,0xff,0xc3,0x03,0x34,0x01,0x15,0xff,0xc5,0x03,0x34,0x01,0x6f,0xff,0x96,0x03,0x34,0x03,0x34,0xff,0x95,0x03,0x34,0x03,0x35,0xff,0x95,0x03,0x34,0x03,0x38,0xff,0x95,0x03,0x34, -0x03,0x39,0xff,0x95,0x03,0x35,0x00,0x05,0xff,0x95,0x03,0x35,0x00,0x0a,0xff,0x95,0x03,0x35,0x00,0x24,0xff,0x96,0x03,0x35,0x00,0x44,0xff,0xce,0x03,0x35,0x00,0x46,0xff,0xc5,0x03,0x35,0x00,0x47,0xff,0xc5,0x03,0x35,0x00,0x48,0xff,0xc5,0x03,0x35,0x00,0x4a,0xff,0xc5,0x03,0x35,0x00,0x50,0xff,0xec,0x03,0x35,0x00,0x51,0xff,0xec, -0x03,0x35,0x00,0x52,0xff,0xc3,0x03,0x35,0x00,0x53,0xff,0xec,0x03,0x35,0x00,0x54,0xff,0xc5,0x03,0x35,0x00,0x56,0xff,0xd6,0x03,0x35,0x00,0x82,0xff,0x96,0x03,0x35,0x00,0x83,0xff,0x96,0x03,0x35,0x00,0x84,0xff,0x96,0x03,0x35,0x00,0x85,0xff,0x96,0x03,0x35,0x00,0x86,0xff,0x96,0x03,0x35,0x00,0x87,0xff,0x96,0x03,0x35,0x00,0xa2, -0xff,0xce,0x03,0x35,0x00,0xa3,0xff,0xce,0x03,0x35,0x00,0xa4,0xff,0xce,0x03,0x35,0x00,0xa5,0xff,0xce,0x03,0x35,0x00,0xa6,0xff,0xce,0x03,0x35,0x00,0xa7,0xff,0xce,0x03,0x35,0x00,0xa9,0xff,0xc5,0x03,0x35,0x00,0xaa,0xff,0xc5,0x03,0x35,0x00,0xab,0xff,0xc5,0x03,0x35,0x00,0xac,0xff,0xc5,0x03,0x35,0x00,0xad,0xff,0xc5,0x03,0x35, -0x00,0xb3,0xff,0xec,0x03,0x35,0x00,0xb4,0xff,0xc3,0x03,0x35,0x00,0xb5,0xff,0xc3,0x03,0x35,0x00,0xb6,0xff,0xc3,0x03,0x35,0x00,0xb7,0xff,0xc3,0x03,0x35,0x00,0xb8,0xff,0xc3,0x03,0x35,0x01,0x15,0xff,0xc5,0x03,0x35,0x01,0x6f,0xff,0x96,0x03,0x35,0x03,0x34,0xff,0x95,0x03,0x35,0x03,0x35,0xff,0x95,0x03,0x35,0x03,0x38,0xff,0x95, -0x03,0x35,0x03,0x39,0xff,0x95,0x03,0x38,0x00,0x05,0xff,0x95,0x03,0x38,0x00,0x0a,0xff,0x95,0x03,0x38,0x00,0x24,0xff,0x96,0x03,0x38,0x00,0x44,0xff,0xce,0x03,0x38,0x00,0x46,0xff,0xc5,0x03,0x38,0x00,0x47,0xff,0xc5,0x03,0x38,0x00,0x48,0xff,0xc5,0x03,0x38,0x00,0x4a,0xff,0xc5,0x03,0x38,0x00,0x50,0xff,0xec,0x03,0x38,0x00,0x51, -0xff,0xec,0x03,0x38,0x00,0x52,0xff,0xc3,0x03,0x38,0x00,0x53,0xff,0xec,0x03,0x38,0x00,0x54,0xff,0xc5,0x03,0x38,0x00,0x56,0xff,0xd6,0x03,0x38,0x00,0x82,0xff,0x96,0x03,0x38,0x00,0x83,0xff,0x96,0x03,0x38,0x00,0x84,0xff,0x96,0x03,0x38,0x00,0x85,0xff,0x96,0x03,0x38,0x00,0x86,0xff,0x96,0x03,0x38,0x00,0x87,0xff,0x96,0x03,0x38, -0x00,0xa2,0xff,0xce,0x03,0x38,0x00,0xa3,0xff,0xce,0x03,0x38,0x00,0xa4,0xff,0xce,0x03,0x38,0x00,0xa5,0xff,0xce,0x03,0x38,0x00,0xa6,0xff,0xce,0x03,0x38,0x00,0xa7,0xff,0xce,0x03,0x38,0x00,0xa9,0xff,0xc5,0x03,0x38,0x00,0xaa,0xff,0xc5,0x03,0x38,0x00,0xab,0xff,0xc5,0x03,0x38,0x00,0xac,0xff,0xc5,0x03,0x38,0x00,0xad,0xff,0xc5, -0x03,0x38,0x00,0xb3,0xff,0xec,0x03,0x38,0x00,0xb4,0xff,0xc3,0x03,0x38,0x00,0xb5,0xff,0xc3,0x03,0x38,0x00,0xb6,0xff,0xc3,0x03,0x38,0x00,0xb7,0xff,0xc3,0x03,0x38,0x00,0xb8,0xff,0xc3,0x03,0x38,0x01,0x15,0xff,0xc5,0x03,0x38,0x01,0x6f,0xff,0x96,0x03,0x38,0x03,0x34,0xff,0x95,0x03,0x38,0x03,0x35,0xff,0x95,0x03,0x38,0x03,0x38, -0xff,0x95,0x03,0x38,0x03,0x39,0xff,0x95,0x03,0x39,0x00,0x05,0xff,0x95,0x03,0x39,0x00,0x0a,0xff,0x95,0x03,0x39,0x00,0x24,0xff,0x96,0x03,0x39,0x00,0x44,0xff,0xce,0x03,0x39,0x00,0x46,0xff,0xc5,0x03,0x39,0x00,0x47,0xff,0xc5,0x03,0x39,0x00,0x48,0xff,0xc5,0x03,0x39,0x00,0x4a,0xff,0xc5,0x03,0x39,0x00,0x50,0xff,0xec,0x03,0x39, -0x00,0x51,0xff,0xec,0x03,0x39,0x00,0x52,0xff,0xc3,0x03,0x39,0x00,0x53,0xff,0xec,0x03,0x39,0x00,0x54,0xff,0xc5,0x03,0x39,0x00,0x56,0xff,0xd6,0x03,0x39,0x00,0x82,0xff,0x96,0x03,0x39,0x00,0x83,0xff,0x96,0x03,0x39,0x00,0x84,0xff,0x96,0x03,0x39,0x00,0x85,0xff,0x96,0x03,0x39,0x00,0x86,0xff,0x96,0x03,0x39,0x00,0x87,0xff,0x96, -0x03,0x39,0x00,0xa2,0xff,0xce,0x03,0x39,0x00,0xa3,0xff,0xce,0x03,0x39,0x00,0xa4,0xff,0xce,0x03,0x39,0x00,0xa5,0xff,0xce,0x03,0x39,0x00,0xa6,0xff,0xce,0x03,0x39,0x00,0xa7,0xff,0xce,0x03,0x39,0x00,0xa9,0xff,0xc5,0x03,0x39,0x00,0xaa,0xff,0xc5,0x03,0x39,0x00,0xab,0xff,0xc5,0x03,0x39,0x00,0xac,0xff,0xc5,0x03,0x39,0x00,0xad, -0xff,0xc5,0x03,0x39,0x00,0xb3,0xff,0xec,0x03,0x39,0x00,0xb4,0xff,0xc3,0x03,0x39,0x00,0xb5,0xff,0xc3,0x03,0x39,0x00,0xb6,0xff,0xc3,0x03,0x39,0x00,0xb7,0xff,0xc3,0x03,0x39,0x00,0xb8,0xff,0xc3,0x03,0x39,0x01,0x15,0xff,0xc5,0x03,0x39,0x01,0x6f,0xff,0x96,0x03,0x39,0x03,0x34,0xff,0x95,0x03,0x39,0x03,0x35,0xff,0x95,0x03,0x39, -0x03,0x38,0xff,0x95,0x03,0x39,0x03,0x39,0xff,0x95,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2c,0x00,0x5c,0x00,0xda,0x01,0x48,0x01,0xca,0x02,0x72,0x02,0x96,0x02,0xd2,0x03,0x16,0x03,0x4a,0x03,0x82,0x03,0xac,0x03,0xd0,0x03,0xec,0x04,0x0a,0x04,0x50,0x04,0x72,0x04,0xc2,0x05,0x34,0x05,0x74,0x05,0xd4, -0x06,0x42,0x06,0x76,0x06,0xe2,0x07,0x4e,0x07,0x60,0x07,0x72,0x07,0x8e,0x07,0xbe,0x07,0xda,0x08,0x34,0x09,0x42,0x09,0x7c,0x09,0xdc,0x0a,0x3a,0x0a,0x7e,0x0a,0xb8,0x0a,0xea,0x0b,0x4a,0x0b,0x7c,0x0b,0x98,0x0b,0xd2,0x0c,0x0e,0x0c,0x32,0x0c,0x70,0x0c,0xa0,0x0c,0xec,0x0d,0x2e,0x0d,0x8a,0x0d,0xe6,0x0e,0x4a,0x0e,0x74,0x0e,0xae, -0x0e,0xdc,0x0f,0x26,0x0f,0x5c,0x0f,0x88,0x0f,0xbc,0x0f,0xec,0x10,0x0a,0x10,0x38,0x10,0x66,0x10,0x88,0x10,0xb0,0x11,0x44,0x11,0xb8,0x12,0x10,0x12,0x86,0x12,0xe6,0x13,0x2e,0x13,0xc0,0x13,0xfe,0x14,0x28,0x14,0x6e,0x14,0xa8,0x14,0xc4,0x15,0x34,0x15,0x88,0x15,0xce,0x16,0x46,0x16,0xbc,0x17,0x0e,0x17,0x70,0x17,0xbe,0x18,0x0e, -0x18,0x3c,0x18,0x9c,0x18,0xd2,0x19,0x1a,0x19,0x4e,0x19,0x9a,0x19,0xb8,0x1a,0x04,0x1a,0x50,0x1a,0x58,0x1a,0x94,0x1a,0xfc,0x1b,0x60,0x1b,0xd4,0x1c,0x26,0x1c,0x54,0x1c,0xe4,0x1d,0x0a,0x1d,0x9c,0x1e,0x4a,0x1e,0x60,0x1e,0x9c,0x1e,0xa4,0x1f,0x3c,0x1f,0x5a,0x1f,0x98,0x1f,0xda,0x20,0x28,0x20,0xbc,0x20,0xe4,0x21,0x46,0x21,0x74, -0x21,0x96,0x21,0xde,0x22,0x00,0x22,0x40,0x22,0x4c,0x22,0x68,0x22,0x84,0x22,0xa0,0x23,0x14,0x23,0x26,0x23,0x38,0x23,0x4a,0x23,0x5c,0x23,0x6e,0x23,0x80,0x23,0xd4,0x23,0xe6,0x23,0xf8,0x24,0x0a,0x24,0x1c,0x24,0x2e,0x24,0x40,0x24,0x52,0x24,0x64,0x24,0x76,0x24,0xcc,0x24,0xde,0x24,0xf0,0x25,0x02,0x25,0x14,0x25,0x26,0x25,0x38, -0x25,0x5e,0x25,0xfc,0x26,0x0e,0x26,0x20,0x26,0x32,0x26,0x44,0x26,0x56,0x26,0xa0,0x27,0x12,0x27,0x24,0x27,0x36,0x27,0x46,0x27,0x56,0x27,0x66,0x27,0x78,0x28,0x14,0x28,0x26,0x28,0x38,0x28,0x4a,0x28,0x5a,0x28,0x6a,0x28,0x7c,0x28,0x8c,0x28,0x9e,0x28,0xb0,0x29,0x22,0x29,0x32,0x29,0x44,0x29,0x56,0x29,0x66,0x29,0x76,0x29,0x86, -0x29,0xc2,0x2a,0x40,0x2a,0x52,0x2a,0x64,0x2a,0x74,0x2a,0x84,0x2a,0x96,0x2a,0xf0,0x2b,0x00,0x2b,0x12,0x2b,0x22,0x2b,0x34,0x2b,0x44,0x2b,0x50,0x2b,0x5c,0x2b,0x6e,0x2b,0x80,0x2b,0x92,0x2b,0xa2,0x2b,0xb4,0x2b,0xc6,0x2b,0xd8,0x2b,0xe8,0x2b,0xfa,0x2c,0x0c,0x2c,0x62,0x2c,0xf2,0x2d,0x04,0x2d,0x14,0x2d,0x26,0x2d,0x36,0x2d,0x48, -0x2d,0x5a,0x2d,0x66,0x2d,0x78,0x2d,0x8a,0x2d,0x9a,0x2d,0xac,0x2d,0xbc,0x2d,0xce,0x2d,0xe0,0x2d,0xf2,0x2e,0x04,0x2e,0x16,0x2e,0x28,0x2e,0x3a,0x2e,0x4c,0x2e,0x9c,0x2e,0xee,0x2f,0x00,0x2f,0x12,0x2f,0x24,0x2f,0x36,0x2f,0x48,0x2f,0x5a,0x2f,0x66,0x2f,0x72,0x2f,0x84,0x2f,0xa0,0x2f,0xac,0x2f,0xb8,0x2f,0xca,0x2f,0xdc,0x2f,0xee, -0x30,0x00,0x30,0x3c,0x30,0x4e,0x30,0x60,0x30,0x72,0x30,0x84,0x30,0x96,0x30,0xa8,0x30,0xba,0x30,0xcc,0x31,0x04,0x31,0x32,0x31,0x44,0x31,0x56,0x31,0x68,0x31,0x7a,0x31,0x8c,0x31,0x9c,0x31,0xae,0x32,0x00,0x32,0x74,0x32,0x86,0x32,0x96,0x32,0xa8,0x32,0xba,0x32,0xcc,0x32,0xde,0x33,0x9a,0x34,0x24,0x34,0x36,0x34,0x48,0x34,0x5a, -0x34,0x6c,0x34,0x7e,0x34,0x8e,0x34,0xa0,0x34,0xb2,0x34,0xc4,0x34,0xd4,0x34,0xe6,0x34,0xf8,0x35,0x0a,0x35,0x1a,0x35,0x2c,0x35,0x3e,0x35,0x50,0x35,0x62,0x35,0x9e,0x35,0xfe,0x36,0x10,0x36,0x20,0x36,0x32,0x36,0x44,0x36,0x56,0x36,0x68,0x36,0x7a,0x36,0x8c,0x36,0x9e,0x36,0xb0,0x36,0xbc,0x36,0xc8,0x36,0xda,0x36,0xec,0x36,0xfe, -0x37,0x0e,0x37,0x20,0x37,0x32,0x37,0x44,0x37,0x56,0x37,0x68,0x37,0x7a,0x37,0x8a,0x37,0xc0,0x38,0x20,0x38,0x80,0x38,0xdc,0x39,0x42,0x39,0xb8,0x39,0xca,0x39,0xdc,0x39,0xee,0x3a,0x00,0x3a,0x12,0x3a,0x24,0x3a,0x36,0x3a,0x48,0x3a,0x5a,0x3a,0x94,0x3a,0x9c,0x3a,0xd2,0x3b,0x08,0x3b,0x40,0x3b,0x5e,0x3b,0x9c,0x3b,0xd4,0x3c,0x4c, -0x3c,0x8a,0x3c,0xdc,0x3c,0xee,0x3d,0x00,0x3d,0x0a,0x3d,0x4a,0x3d,0x8a,0x3d,0xac,0x3d,0xca,0x3d,0xfe,0x3e,0x0a,0x3e,0x12,0x3e,0x24,0x3e,0x36,0x3e,0x48,0x3e,0x54,0x3e,0x60,0x3e,0x6c,0x3e,0x7e,0x3e,0x86,0x3e,0x8e,0x3e,0xb4,0x3e,0xe4,0x3e,0xec,0x3e,0xf4,0x3e,0xfc,0x3f,0x56,0x3f,0x5e,0x3f,0x66,0x3f,0x92,0x3f,0x9a,0x3f,0xa2, -0x3f,0xdc,0x3f,0xe4,0x40,0x0c,0x40,0x14,0x40,0x56,0x40,0x5e,0x40,0x66,0x40,0xce,0x40,0xd6,0x41,0x1a,0x41,0x72,0x41,0x84,0x41,0x96,0x41,0xa8,0x41,0xba,0x41,0xcc,0x41,0xde,0x41,0xf0,0x42,0x9c,0x43,0x2c,0x43,0x62,0x43,0xc4,0x44,0x34,0x44,0x8c,0x44,0xe4,0x45,0x38,0x45,0x72,0x45,0x7a,0x46,0x08,0x46,0x10,0x46,0x18,0x46,0x84, -0x46,0x8c,0x46,0xf0,0x47,0x44,0x47,0x98,0x47,0xe6,0x48,0x10,0x48,0x4e,0x48,0xaa,0x49,0x6a,0x49,0xba,0x4a,0x1e,0x4a,0x30,0x4a,0x40,0x4a,0x52,0x4a,0x64,0x4a,0x76,0x4a,0xe0,0x4c,0x02,0x4c,0x6e,0x4c,0x80,0x4c,0x92,0x4c,0xde,0x4c,0xf0,0x4d,0x5a,0x4d,0xbe,0x4d,0xc6,0x4d,0xd8,0x4d,0xe0,0x4e,0x40,0x4e,0xc6,0x4f,0x08,0x4f,0x1a, -0x4f,0x2c,0x4f,0x3e,0x4f,0x72,0x4f,0x7a,0x4f,0xc4,0x4f,0xcc,0x4f,0xd4,0x50,0x20,0x50,0x28,0x50,0x76,0x50,0xe6,0x51,0x16,0x51,0x28,0x51,0x30,0x51,0x6c,0x51,0x74,0x51,0x7c,0x51,0x84,0x51,0x8c,0x51,0x94,0x51,0x9c,0x51,0xa4,0x51,0xec,0x51,0xf4,0x51,0xfc,0x52,0x30,0x52,0x72,0x52,0xa6,0x52,0xe6,0x53,0x30,0x53,0x7c,0x53,0xbe, -0x54,0x28,0x54,0xa2,0x54,0xea,0x54,0xf2,0x55,0x88,0x55,0xe4,0x56,0x0a,0x56,0x58,0x56,0x60,0x56,0xae,0x57,0x1e,0x57,0x4e,0x57,0x60,0x57,0x9c,0x57,0xd8,0x58,0x16,0x58,0x48,0x58,0x50,0x58,0x78,0x58,0x80,0x58,0xd8,0x59,0x02,0x59,0x0a,0x59,0x94,0x59,0x9c,0x59,0xd0,0x5a,0x0e,0x5a,0x42,0x5a,0x82,0x5a,0xcc,0x5b,0x18,0x5b,0x58, -0x5b,0xc0,0x5c,0x4e,0x5c,0x9a,0x5c,0xac,0x5c,0xbc,0x5d,0x2e,0x5d,0x40,0x5d,0xaa,0x5d,0xb2,0x5d,0xba,0x5d,0xcc,0x5d,0xd4,0x5e,0x30,0x5e,0x82,0x5e,0xd4,0x5e,0xe6,0x5e,0xf8,0x5f,0x08,0x5f,0x3e,0x5f,0xcc,0x60,0x1c,0x60,0x70,0x60,0xc6,0x61,0x8c,0x62,0x5a,0x62,0x9c,0x62,0xe2,0x63,0x36,0x63,0x8c,0x63,0xf6,0x64,0x58,0x64,0xd6, -0x65,0x4c,0x65,0xce,0x66,0x50,0x66,0x58,0x66,0x60,0x66,0xde,0x67,0x5c,0x67,0xba,0x68,0x18,0x68,0x2a,0x68,0x3c,0x68,0x48,0x68,0x54,0x68,0xf8,0x69,0xd4,0x6a,0x94,0x6b,0x4e,0x6b,0xfe,0x6c,0x98,0x6d,0x00,0x6d,0x64,0x6d,0xaa,0x6e,0x0e,0x6e,0x5a,0x6e,0x7a,0x6e,0x9a,0x70,0x22,0x70,0xc8,0x70,0xe2,0x70,0xfc,0x71,0x50,0x71,0xa4, -0x71,0xf4,0x72,0x7a,0x72,0xaa,0x72,0xe6,0x73,0x20,0x73,0x5a,0x73,0xa2,0x73,0xe6,0x73,0xf2,0x73,0xfe,0x74,0x10,0x74,0x22,0x74,0x2e,0x74,0x3a,0x74,0x8a,0x74,0xd8,0x75,0x26,0x75,0x72,0x75,0xb6,0x75,0xfa,0x76,0x06,0x76,0x12,0x76,0x4c,0x76,0x86,0x76,0xd2,0x77,0x1c,0x77,0xae,0x78,0x46,0x78,0x58,0x78,0x6a,0x78,0x76,0x78,0x82, -0x78,0x8a,0x78,0x92,0x78,0xd2,0x79,0x16,0x79,0x22,0x79,0x2e,0x79,0x76,0x79,0xb6,0x79,0xc2,0x79,0xce,0x7a,0x5a,0x7a,0xe2,0x7b,0x22,0x7b,0x32,0x7b,0xaa,0x7c,0x1a,0x7c,0x26,0x7c,0x32,0x7c,0x3a,0x7c,0x4c,0x7c,0x5e,0x7c,0xa6,0x7c,0xee,0x7d,0x00,0x7d,0x12,0x7d,0x62,0x7d,0xb2,0x7d,0xc4,0x7d,0xd6,0x7d,0xe2,0x7d,0xee,0x7e,0x00, -0x7e,0x12,0x7e,0x1a,0x7e,0x2c,0x7e,0x3c,0x7e,0x4e,0x7e,0x5e,0x7e,0x66,0x7e,0x6e,0x7e,0x80,0x7e,0x90,0x7e,0xf4,0x7f,0x04,0x7f,0x16,0x7f,0x2e,0x7f,0x40,0x7f,0x52,0x7f,0x64,0x7f,0x74,0x7f,0xce,0x80,0x46,0x80,0x58,0x80,0x6a,0x80,0x7c,0x80,0x8c,0x80,0x9e,0x80,0xae,0x80,0xb6,0x80,0xbe,0x80,0xd0,0x80,0xe0,0x80,0xf2,0x81,0x02, -0x81,0x14,0x81,0x26,0x81,0x38,0x81,0x48,0x81,0x5a,0x81,0x6c,0x81,0x7e,0x81,0x8e,0x81,0x9a,0x81,0xa6,0x81,0xbc,0x81,0xd2,0x81,0xe6,0x81,0xfc,0x82,0x08,0x82,0x14,0x82,0x5c,0x82,0xa2,0x82,0xe8,0x82,0xf0,0x83,0x4e,0x83,0xca,0x84,0x36,0x84,0xa4,0x85,0x2c,0x85,0xb4,0x86,0x46,0x86,0xc0,0x87,0x34,0x87,0xa4,0x88,0x04,0x88,0x5e, -0x88,0xac,0x88,0xf8,0x89,0x6c,0x89,0x74,0x89,0x80,0x89,0x8c,0x89,0x98,0x89,0xa4,0x89,0xb6,0x89,0xc8,0x89,0xda,0x89,0xec,0x89,0xfe,0x8a,0x10,0x8a,0x22,0x8a,0x34,0x8a,0x40,0x8a,0x4c,0x8a,0x5e,0x8a,0x70,0x8a,0x82,0x8a,0x92,0x8a,0xa4,0x8a,0xb4,0x8a,0xc6,0x8a,0xd8,0x8a,0xea,0x8a,0xfc,0x8b,0x12,0x8b,0x26,0x8b,0x38,0x8b,0x48, -0x8b,0x5a,0x8b,0x6a,0x8b,0x7c,0x8b,0x8c,0x8b,0x9e,0x8b,0xae,0x8b,0xc4,0x8b,0xd8,0x8b,0xea,0x8b,0xf6,0x8c,0x08,0x8c,0x1a,0x8c,0x2c,0x8c,0x3c,0x8c,0x4e,0x8c,0x5e,0x8c,0x70,0x8c,0x80,0x8c,0x92,0x8c,0xa4,0x8c,0xb6,0x8c,0xc8,0x8c,0xe2,0x8c,0xf6,0x8d,0x08,0x8d,0x1a,0x8d,0x2c,0x8d,0x3e,0x8d,0x50,0x8d,0x62,0x8d,0x74,0x8d,0x86, -0x8d,0x98,0x8d,0xa8,0x8d,0xba,0x8d,0xca,0x8d,0xdc,0x8d,0xee,0x8e,0x00,0x8e,0x12,0x8e,0x2c,0x8e,0x46,0x8e,0x58,0x8e,0x6a,0x8e,0x7c,0x8e,0x8e,0x8e,0xa0,0x8e,0xb2,0x8e,0xc4,0x8e,0xd4,0x8e,0xe0,0x8e,0xf2,0x8f,0x04,0x8f,0x10,0x8f,0x22,0x8f,0x34,0x8f,0x46,0x8f,0x58,0x8f,0x6a,0x8f,0x7c,0x8f,0x8e,0x8f,0xa0,0x8f,0xb2,0x8f,0xc2, -0x8f,0xd4,0x8f,0xe0,0x8f,0xf2,0x90,0x02,0x90,0x14,0x90,0x26,0x90,0x38,0x90,0x4a,0x90,0x5c,0x90,0x6c,0x90,0x7e,0x90,0x7e,0x90,0x7e,0x90,0x7e,0x90,0x7e,0x90,0x7e,0x90,0x7e,0x90,0x7e,0x90,0x7e,0x90,0x7e,0x90,0x7e,0x90,0x7e,0x90,0x7e,0x90,0x88,0x90,0x92,0x90,0x9c,0x90,0xae,0x90,0xd2,0x90,0xf6,0x91,0x1e,0x91,0x2a,0x91,0x36, -0x91,0x42,0x91,0x78,0x91,0xac,0x91,0xf4,0x92,0x22,0x92,0x2e,0x92,0x3e,0x92,0xf0,0x92,0xf8,0x93,0x00,0x93,0x2e,0x93,0x70,0x93,0x7c,0x93,0x8e,0x93,0xea,0x94,0x46,0x94,0x58,0x94,0xce,0x95,0x76,0x95,0x90,0x96,0x06,0x96,0x66,0x96,0xa8,0x96,0xc2,0x96,0xf2,0x97,0x2c,0x97,0x44,0x97,0x5c,0x97,0x74,0x97,0x8c,0x97,0xca,0x97,0xe0, -0x98,0x04,0x98,0x16,0x98,0x34,0x98,0x8c,0x98,0xbe,0x99,0x14,0x99,0x3c,0x99,0x56,0x99,0x70,0x99,0x9a,0x99,0xae,0x9a,0x02,0x9a,0x0e,0x9a,0x1a,0x9a,0x2a,0x9a,0x2a,0x9b,0x1c,0x9b,0x6a,0x9b,0x7c,0x9b,0x8e,0x9b,0xc2,0x9b,0xf2,0x9c,0x14,0x9c,0x36,0x9c,0x58,0x9c,0x82,0x9c,0x96,0x9c,0xd2,0x9d,0x06,0x9d,0x2e,0x9d,0x4c,0x9d,0x66, -0x9d,0x9c,0x9d,0xb8,0x9d,0xc8,0x9d,0xea,0x9e,0x0c,0x9e,0x20,0x9e,0x44,0x9e,0x56,0x9e,0x74,0x9e,0xa8,0x9e,0xda,0x9e,0xe6,0x9e,0xf6,0x9f,0x08,0x9f,0x1a,0x9f,0x2a,0x9f,0x3a,0x9f,0x4c,0x9f,0x58,0x9f,0x6a,0x9f,0x7c,0x9f,0x8e,0x9f,0xa0,0x9f,0xb2,0x9f,0xc2,0x9f,0xd4,0x9f,0xe4,0xa0,0x1a,0xa0,0x2a,0xa0,0x3c,0xa0,0x4c,0xa0,0x5e, -0xa0,0x70,0xa0,0x82,0xa0,0x94,0xa0,0xa4,0xa0,0xb6,0xa0,0xc8,0xa0,0xda,0xa0,0xec,0xa0,0xfe,0xa1,0x10,0xa1,0x22,0xa1,0x34,0xa1,0x46,0xa1,0x56,0xa1,0x62,0xa1,0x74,0xa1,0x86,0xa1,0x98,0xa1,0xa8,0xa1,0xba,0xa1,0xcc,0xa1,0xde,0xa1,0xee,0xa1,0xfe,0xa2,0x0a,0xa2,0x1c,0xa2,0x2c,0xa2,0x3c,0xa2,0x4c,0xa2,0x5c,0xa2,0x6e,0xa2,0x7e, -0xa2,0x90,0xa2,0x9c,0xa2,0xae,0xa2,0xbe,0xa2,0xd0,0xa2,0xe0,0xa3,0x0a,0xa3,0x1c,0xa3,0x2e,0xa3,0x3e,0xa3,0x4e,0xa3,0x5e,0xa3,0x70,0xa3,0x82,0xa3,0x94,0xa3,0xa6,0xa3,0xb8,0xa3,0xc8,0xa3,0xda,0xa3,0xea,0xa3,0xfa,0xa4,0x0c,0xa4,0x1e,0xa4,0x30,0xa4,0x42,0xa4,0x54,0xa4,0x64,0xa4,0x74,0xa4,0x84,0xa4,0x96,0xa4,0xa8,0xa4,0xba, -0xa4,0xcc,0xa4,0xde,0xa5,0x1a,0xa5,0x56,0xa5,0x5e,0xa5,0x98,0xa5,0xd4,0xa5,0xe6,0xa6,0x0c,0xa6,0x2c,0xa6,0x50,0xa6,0x64,0xa6,0x94,0xa6,0xd6,0xa6,0xfc,0xa7,0x34,0xa7,0x78,0xa7,0x98,0xa7,0xd8,0xa7,0xf0,0xa8,0x14,0xa8,0x30,0xa8,0x58,0xa8,0x7c,0xa8,0x98,0xa8,0xb2,0xa8,0xe2,0xa8,0xf6,0xa9,0x26,0xa9,0x66,0xa9,0x8a,0xa9,0xcc, -0xaa,0x0c,0xaa,0x58,0xaa,0x76,0xaa,0x94,0xaa,0xd4,0xab,0x0a,0xab,0x2e,0xab,0x6e,0xab,0x9e,0xab,0xd2,0xab,0xe6,0xac,0x16,0xac,0x56,0xac,0xa2,0xac,0xc0,0xad,0x0e,0xad,0x52,0xad,0x7a,0xad,0x7a,0xad,0x7a,0x00,0x01,0x00,0x00,0x04,0x0d,0x00,0x97,0x00,0x16,0x00,0x5f,0x00,0x05,0x00,0x02,0x00,0x50,0x00,0x5f,0x00,0x30,0x00,0x00, -0x00,0xa9,0x09,0x25,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x17,0x01,0x1a,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x06,0x00,0x1f,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x07,0x00,0x25,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x12,0x00,0x2c,0x00,0x01, -0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x0e,0x00,0x3e,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x15,0x00,0x4c,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0e,0x00,0x61,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x20,0x00,0x6f,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x06,0x00,0x8f,0x00,0x01,0x00,0x00,0x00,0x00, -0x00,0x0b,0x00,0x0a,0x00,0x95,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x13,0x00,0x9f,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x0e,0x00,0xb2,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x00,0x00,0x3e,0x00,0xc0,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x01,0x00,0x0c,0x00,0xfe,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x02,0x00,0x0e, -0x01,0x0a,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x03,0x00,0x24,0x01,0x18,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x04,0x00,0x1c,0x01,0x3c,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x05,0x00,0x2a,0x01,0x58,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x06,0x00,0x1c,0x01,0x82,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x07,0x00,0x40,0x01,0x9e,0x00,0x03, -0x00,0x01,0x04,0x09,0x00,0x09,0x00,0x0c,0x01,0xde,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0b,0x00,0x14,0x01,0xea,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0c,0x00,0x26,0x01,0xfe,0x46,0x6f,0x6e,0x74,0x20,0x64,0x61,0x74,0x61,0x20,0x63,0x6f,0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x47,0x6f,0x6f,0x67,0x6c,0x65,0x20,0x32,0x30,0x31, -0x31,0x52,0x6f,0x62,0x6f,0x74,0x6f,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x47,0x6f,0x6f,0x67,0x6c,0x65,0x3a,0x52,0x6f,0x62,0x6f,0x74,0x6f,0x3a,0x32,0x30,0x31,0x31,0x52,0x6f,0x62,0x6f,0x74,0x6f,0x20,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x31,0x2e,0x30,0x30,0x30,0x30,0x30,0x3b,0x20,0x32, -0x30,0x31,0x31,0x52,0x6f,0x62,0x6f,0x74,0x6f,0x2d,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x52,0x6f,0x62,0x6f,0x74,0x6f,0x20,0x69,0x73,0x20,0x61,0x20,0x74,0x72,0x61,0x64,0x65,0x6d,0x61,0x72,0x6b,0x20,0x6f,0x66,0x20,0x47,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x47,0x6f,0x6f,0x67,0x6c,0x65,0x47,0x6f,0x6f,0x67,0x6c,0x65,0x2e,0x63,0x6f, -0x6d,0x43,0x68,0x72,0x69,0x73,0x74,0x69,0x61,0x6e,0x20,0x52,0x6f,0x62,0x65,0x72,0x74,0x73,0x6f,0x6e,0x52,0x6f,0x62,0x6f,0x74,0x6f,0x20,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x00,0x46,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x64,0x00,0x61,0x00,0x74,0x00,0x61,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72, -0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0x47,0x00,0x6f,0x00,0x6f,0x00,0x67,0x00,0x6c,0x00,0x65,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x31,0x00,0x31,0x00,0x52,0x00,0x6f,0x00,0x62,0x00,0x6f,0x00,0x74,0x00,0x6f,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x47,0x00,0x6f,0x00,0x6f, -0x00,0x67,0x00,0x6c,0x00,0x65,0x00,0x3a,0x00,0x52,0x00,0x6f,0x00,0x62,0x00,0x6f,0x00,0x74,0x00,0x6f,0x00,0x3a,0x00,0x32,0x00,0x30,0x00,0x31,0x00,0x31,0x00,0x52,0x00,0x6f,0x00,0x62,0x00,0x6f,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x56,0x00,0x65,0x00,0x72, -0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x31,0x00,0x2e,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x3b,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x31,0x00,0x31,0x00,0x52,0x00,0x6f,0x00,0x62,0x00,0x6f,0x00,0x74,0x00,0x6f,0x00,0x2d,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72, -0x00,0x52,0x00,0x6f,0x00,0x62,0x00,0x6f,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x74,0x00,0x72,0x00,0x61,0x00,0x64,0x00,0x65,0x00,0x6d,0x00,0x61,0x00,0x72,0x00,0x6b,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x47,0x00,0x6f,0x00,0x6f,0x00,0x67,0x00,0x6c,0x00,0x65,0x00,0x2e, -0x00,0x47,0x00,0x6f,0x00,0x6f,0x00,0x67,0x00,0x6c,0x00,0x65,0x00,0x47,0x00,0x6f,0x00,0x6f,0x00,0x67,0x00,0x6c,0x00,0x65,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x43,0x00,0x68,0x00,0x72,0x00,0x69,0x00,0x73,0x00,0x74,0x00,0x69,0x00,0x61,0x00,0x6e,0x00,0x20,0x00,0x52,0x00,0x6f,0x00,0x62,0x00,0x65,0x00,0x72,0x00,0x74, -0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x6a,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0d,0x01,0x02,0x01,0x03,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a, -0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x00,0x1d,0x00,0x1e,0x00,0x1f,0x00,0x20,0x00,0x21,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a, -0x00,0x2b,0x00,0x2c,0x00,0x2d,0x00,0x2e,0x00,0x2f,0x00,0x30,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x38,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40,0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47,0x00,0x48,0x00,0x49,0x00,0x4a, -0x00,0x4b,0x00,0x4c,0x00,0x4d,0x00,0x4e,0x00,0x4f,0x00,0x50,0x00,0x51,0x00,0x52,0x00,0x53,0x00,0x54,0x00,0x55,0x00,0x56,0x00,0x57,0x00,0x58,0x00,0x59,0x00,0x5a,0x00,0x5b,0x00,0x5c,0x00,0x5d,0x00,0x5e,0x00,0x5f,0x00,0x60,0x00,0x61,0x00,0xac,0x00,0xa3,0x00,0x84,0x00,0x85,0x00,0xbd,0x00,0x96,0x00,0xe8,0x00,0x86,0x00,0x8e, -0x00,0x8b,0x00,0x9d,0x00,0xa9,0x00,0xa4,0x01,0x04,0x00,0x8a,0x01,0x05,0x00,0x83,0x00,0x93,0x00,0xf2,0x00,0xf3,0x00,0x8d,0x00,0x97,0x00,0x88,0x01,0x06,0x00,0xde,0x00,0xf1,0x00,0x9e,0x00,0xaa,0x00,0xf5,0x00,0xf4,0x00,0xf6,0x00,0xa2,0x00,0xad,0x00,0xc9,0x00,0xc7,0x00,0xae,0x00,0x62,0x00,0x63,0x00,0x90,0x00,0x64,0x00,0xcb, -0x00,0x65,0x00,0xc8,0x00,0xca,0x00,0xcf,0x00,0xcc,0x00,0xcd,0x00,0xce,0x00,0xe9,0x00,0x66,0x00,0xd3,0x00,0xd0,0x00,0xd1,0x00,0xaf,0x00,0x67,0x00,0xf0,0x00,0x91,0x00,0xd6,0x00,0xd4,0x00,0xd5,0x00,0x68,0x00,0xeb,0x00,0xed,0x00,0x89,0x00,0x6a,0x00,0x69,0x00,0x6b,0x00,0x6d,0x00,0x6c,0x00,0x6e,0x00,0xa0,0x00,0x6f,0x00,0x71, -0x00,0x70,0x00,0x72,0x00,0x73,0x00,0x75,0x00,0x74,0x00,0x76,0x00,0x77,0x00,0xea,0x00,0x78,0x00,0x7a,0x00,0x79,0x00,0x7b,0x00,0x7d,0x00,0x7c,0x00,0xb8,0x00,0xa1,0x00,0x7f,0x00,0x7e,0x00,0x80,0x00,0x81,0x00,0xec,0x00,0xee,0x00,0xba,0x01,0x07,0x01,0x08,0x01,0x09,0x01,0x0a,0x01,0x0b,0x01,0x0c,0x00,0xfd,0x00,0xfe,0x01,0x0d, -0x01,0x0e,0x01,0x0f,0x01,0x10,0x00,0xff,0x01,0x00,0x01,0x11,0x01,0x12,0x01,0x13,0x01,0x14,0x01,0x15,0x01,0x16,0x01,0x17,0x01,0x18,0x01,0x19,0x01,0x1a,0x01,0x1b,0x01,0x1c,0x01,0x1d,0x01,0x1e,0x01,0x1f,0x01,0x20,0x00,0xf8,0x00,0xf9,0x01,0x21,0x01,0x22,0x01,0x23,0x01,0x24,0x01,0x25,0x01,0x26,0x01,0x27,0x01,0x28,0x01,0x29, -0x01,0x2a,0x01,0x2b,0x01,0x2c,0x01,0x2d,0x01,0x2e,0x01,0x2f,0x01,0x30,0x01,0x31,0x00,0xd7,0x01,0x32,0x01,0x33,0x01,0x34,0x01,0x35,0x01,0x36,0x01,0x37,0x01,0x38,0x01,0x39,0x01,0x3a,0x01,0x3b,0x01,0x3c,0x01,0x3d,0x01,0x3e,0x01,0x3f,0x01,0x40,0x00,0xe2,0x00,0xe3,0x01,0x41,0x01,0x42,0x01,0x43,0x01,0x44,0x01,0x45,0x01,0x46, -0x01,0x47,0x01,0x48,0x01,0x49,0x01,0x4a,0x01,0x4b,0x01,0x4c,0x01,0x4d,0x01,0x4e,0x01,0x4f,0x00,0xb0,0x00,0xb1,0x01,0x50,0x01,0x51,0x01,0x52,0x01,0x53,0x01,0x54,0x01,0x55,0x01,0x56,0x01,0x57,0x01,0x58,0x01,0x59,0x00,0xfb,0x00,0xfc,0x00,0xe4,0x00,0xe5,0x01,0x5a,0x01,0x5b,0x01,0x5c,0x01,0x5d,0x01,0x5e,0x01,0x5f,0x01,0x60, -0x01,0x61,0x01,0x62,0x01,0x63,0x01,0x64,0x01,0x65,0x01,0x66,0x01,0x67,0x01,0x68,0x01,0x69,0x01,0x6a,0x01,0x6b,0x01,0x6c,0x01,0x6d,0x01,0x6e,0x01,0x6f,0x00,0xbb,0x01,0x70,0x01,0x71,0x01,0x72,0x01,0x73,0x00,0xe6,0x00,0xe7,0x01,0x74,0x00,0xa6,0x01,0x75,0x01,0x76,0x01,0x77,0x01,0x78,0x01,0x79,0x01,0x7a,0x01,0x7b,0x01,0x7c, -0x01,0x7d,0x01,0x7e,0x01,0x7f,0x01,0x80,0x01,0x81,0x01,0x82,0x01,0x83,0x00,0xd8,0x00,0xe1,0x00,0xdb,0x00,0xdc,0x00,0xdd,0x00,0xe0,0x00,0xd9,0x00,0xdf,0x01,0x84,0x01,0x85,0x01,0x86,0x01,0x87,0x01,0x88,0x01,0x89,0x01,0x8a,0x01,0x8b,0x01,0x8c,0x01,0x8d,0x01,0x8e,0x01,0x8f,0x01,0x90,0x01,0x91,0x01,0x92,0x01,0x93,0x01,0x94, -0x01,0x95,0x01,0x96,0x01,0x97,0x01,0x98,0x01,0x99,0x01,0x9a,0x01,0x9b,0x01,0x9c,0x01,0x9d,0x01,0x9e,0x01,0x9f,0x01,0xa0,0x01,0xa1,0x01,0xa2,0x01,0xa3,0x01,0xa4,0x01,0xa5,0x01,0xa6,0x01,0xa7,0x01,0xa8,0x01,0xa9,0x01,0xaa,0x01,0xab,0x01,0xac,0x00,0x9f,0x01,0xad,0x01,0xae,0x01,0xaf,0x01,0xb0,0x01,0xb1,0x01,0xb2,0x01,0xb3, -0x01,0xb4,0x01,0xb5,0x01,0xb6,0x01,0xb7,0x01,0xb8,0x01,0xb9,0x01,0xba,0x01,0xbb,0x01,0xbc,0x01,0xbd,0x01,0xbe,0x01,0xbf,0x01,0xc0,0x01,0xc1,0x01,0xc2,0x00,0x9b,0x01,0xc3,0x01,0xc4,0x01,0xc5,0x01,0xc6,0x01,0xc7,0x01,0xc8,0x01,0xc9,0x01,0xca,0x01,0xcb,0x01,0xcc,0x01,0xcd,0x01,0xce,0x01,0xcf,0x01,0xd0,0x01,0xd1,0x01,0xd2, -0x01,0xd3,0x01,0xd4,0x01,0xd5,0x01,0xd6,0x01,0xd7,0x01,0xd8,0x01,0xd9,0x01,0xda,0x01,0xdb,0x01,0xdc,0x01,0xdd,0x01,0xde,0x01,0xdf,0x01,0xe0,0x01,0xe1,0x01,0xe2,0x01,0xe3,0x01,0xe4,0x01,0xe5,0x01,0xe6,0x01,0xe7,0x01,0xe8,0x01,0xe9,0x01,0xea,0x01,0xeb,0x01,0xec,0x01,0xed,0x01,0xee,0x01,0xef,0x01,0xf0,0x01,0xf1,0x01,0xf2, -0x01,0xf3,0x01,0xf4,0x01,0xf5,0x01,0xf6,0x01,0xf7,0x01,0xf8,0x01,0xf9,0x01,0xfa,0x01,0xfb,0x01,0xfc,0x01,0xfd,0x01,0xfe,0x01,0xff,0x02,0x00,0x02,0x01,0x02,0x02,0x02,0x03,0x02,0x04,0x02,0x05,0x02,0x06,0x02,0x07,0x02,0x08,0x02,0x09,0x02,0x0a,0x02,0x0b,0x02,0x0c,0x02,0x0d,0x02,0x0e,0x02,0x0f,0x02,0x10,0x02,0x11,0x02,0x12, -0x02,0x13,0x02,0x14,0x02,0x15,0x02,0x16,0x02,0x17,0x02,0x18,0x02,0x19,0x02,0x1a,0x02,0x1b,0x02,0x1c,0x02,0x1d,0x02,0x1e,0x02,0x1f,0x02,0x20,0x02,0x21,0x02,0x22,0x02,0x23,0x02,0x24,0x02,0x25,0x02,0x26,0x02,0x27,0x02,0x28,0x02,0x29,0x02,0x2a,0x02,0x2b,0x02,0x2c,0x02,0x2d,0x02,0x2e,0x02,0x2f,0x02,0x30,0x02,0x31,0x02,0x32, -0x02,0x33,0x02,0x34,0x02,0x35,0x02,0x36,0x02,0x37,0x02,0x38,0x02,0x39,0x02,0x3a,0x02,0x3b,0x02,0x3c,0x02,0x3d,0x02,0x3e,0x02,0x3f,0x02,0x40,0x02,0x41,0x02,0x42,0x02,0x43,0x02,0x44,0x02,0x45,0x02,0x46,0x02,0x47,0x02,0x48,0x02,0x49,0x02,0x4a,0x02,0x4b,0x02,0x4c,0x02,0x4d,0x02,0x4e,0x02,0x4f,0x02,0x50,0x02,0x51,0x02,0x52, -0x02,0x53,0x02,0x54,0x02,0x55,0x02,0x56,0x02,0x57,0x02,0x58,0x02,0x59,0x02,0x5a,0x02,0x5b,0x02,0x5c,0x02,0x5d,0x02,0x5e,0x02,0x5f,0x02,0x60,0x02,0x61,0x02,0x62,0x02,0x63,0x02,0x64,0x02,0x65,0x02,0x66,0x02,0x67,0x02,0x68,0x02,0x69,0x02,0x6a,0x02,0x6b,0x02,0x6c,0x02,0x6d,0x02,0x6e,0x02,0x6f,0x02,0x70,0x02,0x71,0x02,0x72, -0x02,0x73,0x02,0x74,0x02,0x75,0x02,0x76,0x02,0x77,0x02,0x78,0x02,0x79,0x02,0x7a,0x02,0x7b,0x02,0x7c,0x02,0x7d,0x02,0x7e,0x02,0x7f,0x02,0x80,0x02,0x81,0x02,0x82,0x02,0x83,0x02,0x84,0x02,0x85,0x02,0x86,0x02,0x87,0x02,0x88,0x02,0x89,0x02,0x8a,0x02,0x8b,0x02,0x8c,0x02,0x8d,0x02,0x8e,0x02,0x8f,0x02,0x90,0x02,0x91,0x02,0x92, -0x02,0x93,0x02,0x94,0x02,0x95,0x02,0x96,0x02,0x97,0x02,0x98,0x02,0x99,0x02,0x9a,0x02,0x9b,0x02,0x9c,0x02,0x9d,0x02,0x9e,0x02,0x9f,0x02,0xa0,0x02,0xa1,0x02,0xa2,0x02,0xa3,0x02,0xa4,0x02,0xa5,0x02,0xa6,0x02,0xa7,0x02,0xa8,0x02,0xa9,0x02,0xaa,0x02,0xab,0x02,0xac,0x02,0xad,0x02,0xae,0x02,0xaf,0x02,0xb0,0x02,0xb1,0x02,0xb2, -0x02,0xb3,0x02,0xb4,0x02,0xb5,0x02,0xb6,0x02,0xb7,0x02,0xb8,0x02,0xb9,0x02,0xba,0x02,0xbb,0x02,0xbc,0x02,0xbd,0x02,0xbe,0x02,0xbf,0x02,0xc0,0x02,0xc1,0x02,0xc2,0x02,0xc3,0x02,0xc4,0x02,0xc5,0x02,0xc6,0x02,0xc7,0x02,0xc8,0x02,0xc9,0x02,0xca,0x02,0xcb,0x02,0xcc,0x02,0xcd,0x02,0xce,0x02,0xcf,0x02,0xd0,0x02,0xd1,0x02,0xd2, -0x02,0xd3,0x02,0xd4,0x02,0xd5,0x02,0xd6,0x02,0xd7,0x02,0xd8,0x02,0xd9,0x02,0xda,0x02,0xdb,0x02,0xdc,0x02,0xdd,0x02,0xde,0x02,0xdf,0x02,0xe0,0x02,0xe1,0x02,0xe2,0x02,0xe3,0x02,0xe4,0x02,0xe5,0x02,0xe6,0x02,0xe7,0x02,0xe8,0x02,0xe9,0x02,0xea,0x02,0xeb,0x02,0xec,0x02,0xed,0x02,0xee,0x02,0xef,0x02,0xf0,0x02,0xf1,0x02,0xf2, -0x02,0xf3,0x02,0xf4,0x02,0xf5,0x02,0xf6,0x02,0xf7,0x02,0xf8,0x02,0xf9,0x02,0xfa,0x02,0xfb,0x02,0xfc,0x02,0xfd,0x02,0xfe,0x02,0xff,0x03,0x00,0x03,0x01,0x03,0x02,0x03,0x03,0x03,0x04,0x03,0x05,0x03,0x06,0x03,0x07,0x03,0x08,0x03,0x09,0x03,0x0a,0x03,0x0b,0x03,0x0c,0x03,0x0d,0x03,0x0e,0x03,0x0f,0x03,0x10,0x03,0x11,0x03,0x12, -0x03,0x13,0x03,0x14,0x03,0x15,0x03,0x16,0x03,0x17,0x03,0x18,0x03,0x19,0x03,0x1a,0x03,0x1b,0x03,0x1c,0x03,0x1d,0x03,0x1e,0x03,0x1f,0x03,0x20,0x03,0x21,0x03,0x22,0x03,0x23,0x03,0x24,0x03,0x25,0x03,0x26,0x03,0x27,0x03,0x28,0x03,0x29,0x03,0x2a,0x03,0x2b,0x03,0x2c,0x03,0x2d,0x03,0x2e,0x03,0x2f,0x03,0x30,0x03,0x31,0x03,0x32, -0x03,0x33,0x03,0x34,0x03,0x35,0x03,0x36,0x03,0x37,0x03,0x38,0x03,0x39,0x03,0x3a,0x03,0x3b,0x03,0x3c,0x03,0x3d,0x03,0x3e,0x03,0x3f,0x03,0x40,0x03,0x41,0x03,0x42,0x03,0x43,0x03,0x44,0x03,0x45,0x03,0x46,0x03,0x47,0x03,0x48,0x03,0x49,0x03,0x4a,0x03,0x4b,0x03,0x4c,0x03,0x4d,0x03,0x4e,0x03,0x4f,0x03,0x50,0x03,0x51,0x03,0x52, -0x03,0x53,0x03,0x54,0x03,0x55,0x03,0x56,0x03,0x57,0x00,0xb2,0x00,0xb3,0x03,0x58,0x03,0x59,0x00,0xb6,0x00,0xb7,0x00,0xc4,0x03,0x5a,0x00,0xb4,0x00,0xb5,0x00,0xc5,0x00,0x82,0x00,0xc2,0x00,0x87,0x03,0x5b,0x00,0xab,0x00,0xc6,0x03,0x5c,0x03,0x5d,0x00,0xbe,0x00,0xbf,0x03,0x5e,0x00,0xbc,0x03,0x5f,0x03,0x60,0x00,0xf7,0x03,0x61, -0x03,0x62,0x03,0x63,0x03,0x64,0x03,0x65,0x03,0x66,0x03,0x67,0x00,0x8c,0x03,0x68,0x03,0x69,0x03,0x6a,0x03,0x6b,0x03,0x6c,0x00,0x98,0x00,0x9a,0x00,0x99,0x00,0xef,0x00,0xa5,0x00,0x92,0x00,0x9c,0x00,0xa7,0x00,0x8f,0x00,0x94,0x00,0x95,0x00,0xb9,0x03,0x6d,0x00,0xc0,0x03,0x6e,0x03,0x6f,0x03,0x70,0x03,0x71,0x03,0x72,0x03,0x73, -0x03,0x74,0x03,0x75,0x03,0x76,0x03,0x77,0x03,0x78,0x03,0x79,0x03,0x7a,0x03,0x7b,0x03,0x7c,0x03,0x7d,0x03,0x7e,0x03,0x7f,0x03,0x80,0x03,0x81,0x03,0x82,0x03,0x83,0x03,0x84,0x03,0x85,0x03,0x86,0x03,0x87,0x03,0x88,0x03,0x89,0x03,0x8a,0x03,0x8b,0x03,0x8c,0x03,0x8d,0x03,0x8e,0x03,0x8f,0x03,0x90,0x03,0x91,0x03,0x92,0x03,0x93, -0x03,0x94,0x03,0x95,0x03,0x96,0x03,0x97,0x03,0x98,0x03,0x99,0x03,0x9a,0x03,0x9b,0x03,0x9c,0x03,0x9d,0x03,0x9e,0x03,0x9f,0x03,0xa0,0x03,0xa1,0x03,0xa2,0x03,0xa3,0x03,0xa4,0x03,0xa5,0x03,0xa6,0x03,0xa7,0x03,0xa8,0x03,0xa9,0x03,0xaa,0x03,0xab,0x03,0xac,0x03,0xad,0x03,0xae,0x03,0xaf,0x03,0xb0,0x03,0xb1,0x03,0xb2,0x03,0xb3, -0x03,0xb4,0x03,0xb5,0x03,0xb6,0x03,0xb7,0x03,0xb8,0x03,0xb9,0x03,0xba,0x03,0xbb,0x03,0xbc,0x03,0xbd,0x03,0xbe,0x03,0xbf,0x03,0xc0,0x03,0xc1,0x03,0xc2,0x03,0xc3,0x03,0xc4,0x03,0xc5,0x03,0xc6,0x03,0xc7,0x03,0xc8,0x03,0xc9,0x03,0xca,0x03,0xcb,0x03,0xcc,0x03,0xcd,0x03,0xce,0x03,0xcf,0x03,0xd0,0x03,0xd1,0x03,0xd2,0x03,0xd3, -0x03,0xd4,0x03,0xd5,0x03,0xd6,0x03,0xd7,0x03,0xd8,0x03,0xd9,0x03,0xda,0x03,0xdb,0x03,0xdc,0x03,0xdd,0x03,0xde,0x03,0xdf,0x03,0xe0,0x03,0xe1,0x03,0xe2,0x03,0xe3,0x03,0xe4,0x03,0xe5,0x03,0xe6,0x03,0xe7,0x03,0xe8,0x03,0xe9,0x03,0xea,0x03,0xeb,0x03,0xec,0x03,0xed,0x03,0xee,0x03,0xef,0x03,0xf0,0x03,0xf1,0x03,0xf2,0x03,0xf3, -0x03,0xf4,0x03,0xf5,0x03,0xf6,0x03,0xf7,0x03,0xf8,0x03,0xf9,0x03,0xfa,0x03,0xfb,0x03,0xfc,0x03,0xfd,0x03,0xfe,0x03,0xff,0x04,0x00,0x04,0x01,0x04,0x02,0x04,0x03,0x04,0x04,0x04,0x05,0x04,0x06,0x04,0x07,0x04,0x08,0x04,0x09,0x04,0x0a,0x04,0x0b,0x04,0x0c,0x04,0x0d,0x04,0x0e,0x04,0x0f,0x04,0x10,0x04,0x11,0x04,0x12,0x04,0x13, -0x04,0x14,0x04,0x15,0x04,0x4e,0x55,0x4c,0x4c,0x07,0x75,0x6e,0x69,0x30,0x30,0x30,0x32,0x07,0x75,0x6e,0x69,0x30,0x30,0x41,0x44,0x06,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x0e,0x70,0x65,0x72,0x69,0x6f,0x64,0x63,0x65,0x6e,0x74,0x65,0x72,0x65,0x64,0x07,0x41,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x61,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x06, -0x41,0x62,0x72,0x65,0x76,0x65,0x06,0x61,0x62,0x72,0x65,0x76,0x65,0x07,0x41,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x61,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x0b,0x43,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0b,0x63,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x31,0x30,0x41,0x07,0x75,0x6e, -0x69,0x30,0x31,0x30,0x42,0x06,0x44,0x63,0x61,0x72,0x6f,0x6e,0x06,0x64,0x63,0x61,0x72,0x6f,0x6e,0x06,0x44,0x63,0x72,0x6f,0x61,0x74,0x06,0x64,0x63,0x72,0x6f,0x61,0x74,0x07,0x45,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x65,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x06,0x45,0x62,0x72,0x65,0x76,0x65,0x06,0x65,0x62,0x72,0x65,0x76,0x65,0x0a, -0x45,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x0a,0x65,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x07,0x45,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x65,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x06,0x45,0x63,0x61,0x72,0x6f,0x6e,0x06,0x65,0x63,0x61,0x72,0x6f,0x6e,0x0b,0x47,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0b, -0x67,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x31,0x32,0x30,0x07,0x75,0x6e,0x69,0x30,0x31,0x32,0x31,0x0c,0x47,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0c,0x67,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0b,0x48,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65, -0x78,0x0b,0x68,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x04,0x48,0x62,0x61,0x72,0x04,0x68,0x62,0x61,0x72,0x06,0x49,0x74,0x69,0x6c,0x64,0x65,0x06,0x69,0x74,0x69,0x6c,0x64,0x65,0x07,0x49,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x69,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x06,0x49,0x62,0x72,0x65,0x76,0x65,0x06,0x69,0x62,0x72, -0x65,0x76,0x65,0x07,0x49,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x69,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x0a,0x49,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x02,0x49,0x4a,0x02,0x69,0x6a,0x0b,0x4a,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0b,0x6a,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0c,0x4b,0x63,0x6f, -0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0c,0x6b,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0c,0x6b,0x67,0x72,0x65,0x65,0x6e,0x6c,0x61,0x6e,0x64,0x69,0x63,0x06,0x4c,0x61,0x63,0x75,0x74,0x65,0x06,0x6c,0x61,0x63,0x75,0x74,0x65,0x0c,0x4c,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0c,0x6c, -0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x4c,0x63,0x61,0x72,0x6f,0x6e,0x06,0x6c,0x63,0x61,0x72,0x6f,0x6e,0x04,0x4c,0x64,0x6f,0x74,0x04,0x6c,0x64,0x6f,0x74,0x06,0x4e,0x61,0x63,0x75,0x74,0x65,0x06,0x6e,0x61,0x63,0x75,0x74,0x65,0x0c,0x4e,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0c,0x6e, -0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x4e,0x63,0x61,0x72,0x6f,0x6e,0x06,0x6e,0x63,0x61,0x72,0x6f,0x6e,0x0b,0x6e,0x61,0x70,0x6f,0x73,0x74,0x72,0x6f,0x70,0x68,0x65,0x03,0x45,0x6e,0x67,0x03,0x65,0x6e,0x67,0x07,0x4f,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x6f,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x06,0x4f,0x62, -0x72,0x65,0x76,0x65,0x06,0x6f,0x62,0x72,0x65,0x76,0x65,0x0d,0x4f,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x0d,0x6f,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x06,0x52,0x61,0x63,0x75,0x74,0x65,0x06,0x72,0x61,0x63,0x75,0x74,0x65,0x0c,0x52,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65, -0x6e,0x74,0x0c,0x72,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x52,0x63,0x61,0x72,0x6f,0x6e,0x06,0x72,0x63,0x61,0x72,0x6f,0x6e,0x06,0x53,0x61,0x63,0x75,0x74,0x65,0x06,0x73,0x61,0x63,0x75,0x74,0x65,0x0b,0x53,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0b,0x73,0x63,0x69,0x72,0x63,0x75,0x6d,0x66, -0x6c,0x65,0x78,0x0c,0x54,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0c,0x74,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x54,0x63,0x61,0x72,0x6f,0x6e,0x06,0x74,0x63,0x61,0x72,0x6f,0x6e,0x04,0x54,0x62,0x61,0x72,0x04,0x74,0x62,0x61,0x72,0x06,0x55,0x74,0x69,0x6c,0x64,0x65,0x06,0x75,0x74,0x69, -0x6c,0x64,0x65,0x07,0x55,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x75,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x06,0x55,0x62,0x72,0x65,0x76,0x65,0x06,0x75,0x62,0x72,0x65,0x76,0x65,0x05,0x55,0x72,0x69,0x6e,0x67,0x05,0x75,0x72,0x69,0x6e,0x67,0x0d,0x55,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x0d,0x75,0x68,0x75,0x6e, -0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x07,0x55,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x75,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x0b,0x57,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0b,0x77,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0b,0x59,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0b,0x79,0x63, -0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x06,0x5a,0x61,0x63,0x75,0x74,0x65,0x06,0x7a,0x61,0x63,0x75,0x74,0x65,0x0a,0x5a,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x0a,0x7a,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x05,0x6c,0x6f,0x6e,0x67,0x73,0x05,0x4f,0x68,0x6f,0x72,0x6e,0x05,0x6f,0x68,0x6f,0x72,0x6e,0x05, -0x55,0x68,0x6f,0x72,0x6e,0x05,0x75,0x68,0x6f,0x72,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x46,0x30,0x0a,0x41,0x72,0x69,0x6e,0x67,0x61,0x63,0x75,0x74,0x65,0x0a,0x61,0x72,0x69,0x6e,0x67,0x61,0x63,0x75,0x74,0x65,0x07,0x41,0x45,0x61,0x63,0x75,0x74,0x65,0x07,0x61,0x65,0x61,0x63,0x75,0x74,0x65,0x0b,0x4f,0x73,0x6c,0x61,0x73,0x68, -0x61,0x63,0x75,0x74,0x65,0x0b,0x6f,0x73,0x6c,0x61,0x73,0x68,0x61,0x63,0x75,0x74,0x65,0x0c,0x53,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0c,0x73,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x30,0x32,0x33,0x37,0x07,0x75,0x6e,0x69,0x30,0x32,0x42,0x43,0x07,0x75,0x6e,0x69,0x30, -0x32,0x46,0x33,0x09,0x67,0x72,0x61,0x76,0x65,0x63,0x6f,0x6d,0x62,0x09,0x61,0x63,0x75,0x74,0x65,0x63,0x6f,0x6d,0x62,0x09,0x74,0x69,0x6c,0x64,0x65,0x63,0x6f,0x6d,0x62,0x04,0x68,0x6f,0x6f,0x6b,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x46,0x08,0x64,0x6f,0x74,0x62,0x65,0x6c,0x6f,0x77,0x05,0x74,0x6f,0x6e,0x6f,0x73,0x0d,0x64,0x69, -0x65,0x72,0x65,0x73,0x69,0x73,0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x41,0x6c,0x70,0x68,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x09,0x61,0x6e,0x6f,0x74,0x65,0x6c,0x65,0x69,0x61,0x0c,0x45,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x08,0x45,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x09,0x49,0x6f,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73, -0x0c,0x4f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x55,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x4f,0x6d,0x65,0x67,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x11,0x69,0x6f,0x74,0x61,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x74,0x6f,0x6e,0x6f,0x73,0x05,0x41,0x6c,0x70,0x68,0x61,0x04,0x42,0x65, -0x74,0x61,0x05,0x47,0x61,0x6d,0x6d,0x61,0x05,0x44,0x65,0x6c,0x74,0x61,0x07,0x45,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x04,0x5a,0x65,0x74,0x61,0x03,0x45,0x74,0x61,0x05,0x54,0x68,0x65,0x74,0x61,0x04,0x49,0x6f,0x74,0x61,0x05,0x4b,0x61,0x70,0x70,0x61,0x06,0x4c,0x61,0x6d,0x62,0x64,0x61,0x02,0x4d,0x75,0x02,0x4e,0x75,0x02,0x58,0x69, -0x07,0x4f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x02,0x50,0x69,0x03,0x52,0x68,0x6f,0x05,0x53,0x69,0x67,0x6d,0x61,0x03,0x54,0x61,0x75,0x07,0x55,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x03,0x50,0x68,0x69,0x03,0x43,0x68,0x69,0x03,0x50,0x73,0x69,0x0c,0x49,0x6f,0x74,0x61,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x0f,0x55,0x70,0x73,0x69,0x6c, -0x6f,0x6e,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x0a,0x61,0x6c,0x70,0x68,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x65,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x08,0x65,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x09,0x69,0x6f,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x14,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x64,0x69,0x65, -0x72,0x65,0x73,0x69,0x73,0x74,0x6f,0x6e,0x6f,0x73,0x05,0x61,0x6c,0x70,0x68,0x61,0x04,0x62,0x65,0x74,0x61,0x05,0x67,0x61,0x6d,0x6d,0x61,0x05,0x64,0x65,0x6c,0x74,0x61,0x07,0x65,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x04,0x7a,0x65,0x74,0x61,0x03,0x65,0x74,0x61,0x05,0x74,0x68,0x65,0x74,0x61,0x04,0x69,0x6f,0x74,0x61,0x05,0x6b,0x61, -0x70,0x70,0x61,0x06,0x6c,0x61,0x6d,0x62,0x64,0x61,0x07,0x75,0x6e,0x69,0x30,0x33,0x42,0x43,0x02,0x6e,0x75,0x02,0x78,0x69,0x07,0x6f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x03,0x72,0x68,0x6f,0x06,0x73,0x69,0x67,0x6d,0x61,0x31,0x05,0x73,0x69,0x67,0x6d,0x61,0x03,0x74,0x61,0x75,0x07,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x03,0x70,0x68, -0x69,0x03,0x63,0x68,0x69,0x03,0x70,0x73,0x69,0x05,0x6f,0x6d,0x65,0x67,0x61,0x0c,0x69,0x6f,0x74,0x61,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x0f,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x0c,0x6f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x75,0x70,0x73,0x69,0x6c,0x6f, -0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x6f,0x6d,0x65,0x67,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x07,0x75,0x6e,0x69,0x30,0x33,0x44,0x31,0x07,0x75,0x6e,0x69,0x30,0x33,0x44,0x32,0x07,0x75,0x6e,0x69,0x30,0x33,0x44,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x30, -0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x30, -0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x31, -0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x31, -0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x32, -0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x32, -0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x33, -0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x33, -0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x34, -0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x34, -0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x35, -0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x35, -0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x36,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x36,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x36, -0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x36,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x36,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x36,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x36,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x36,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x36,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x36,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x36, -0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x36,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x36,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x36,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x36,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x36,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x37,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x37,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x37, -0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x37,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x37,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x37,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x37,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x37,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x37,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x37,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x37, -0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x37,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x37,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x37,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x37,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x37,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x38,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x38,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x38, -0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x38,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x38,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x38,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x38,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x38,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x38,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x38,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x38, -0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x38,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x38,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x38,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x38,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x39, -0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x39, -0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x41, -0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x41, -0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x42, -0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x42, -0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x43,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x43,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x43,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x43, -0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x43,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x43,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x43,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x43,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x43,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x43,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x43,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x43, -0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x43,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x43,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x43,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x43,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x44, -0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x44, -0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x45, -0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x45, -0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x46, -0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x46, -0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x46,0x07,0x75,0x6e,0x69,0x30,0x35,0x30,0x30,0x07,0x75,0x6e,0x69,0x30,0x35,0x30,0x31,0x07,0x75,0x6e,0x69,0x30,0x35,0x30,0x32,0x07,0x75,0x6e,0x69,0x30,0x35,0x30, -0x33,0x07,0x75,0x6e,0x69,0x30,0x35,0x30,0x34,0x07,0x75,0x6e,0x69,0x30,0x35,0x30,0x35,0x07,0x75,0x6e,0x69,0x30,0x35,0x30,0x36,0x07,0x75,0x6e,0x69,0x30,0x35,0x30,0x37,0x07,0x75,0x6e,0x69,0x30,0x35,0x30,0x38,0x07,0x75,0x6e,0x69,0x30,0x35,0x30,0x39,0x07,0x75,0x6e,0x69,0x30,0x35,0x30,0x41,0x07,0x75,0x6e,0x69,0x30,0x35,0x30, -0x42,0x07,0x75,0x6e,0x69,0x30,0x35,0x30,0x43,0x07,0x75,0x6e,0x69,0x30,0x35,0x30,0x44,0x07,0x75,0x6e,0x69,0x30,0x35,0x30,0x45,0x07,0x75,0x6e,0x69,0x30,0x35,0x30,0x46,0x07,0x75,0x6e,0x69,0x30,0x35,0x31,0x30,0x07,0x75,0x6e,0x69,0x30,0x35,0x31,0x31,0x07,0x75,0x6e,0x69,0x30,0x35,0x31,0x32,0x07,0x75,0x6e,0x69,0x30,0x35,0x31, -0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x30,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x30,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x33,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x33,0x46,0x06,0x57,0x67,0x72,0x61,0x76,0x65,0x06,0x77,0x67,0x72,0x61,0x76,0x65,0x06,0x57,0x61,0x63,0x75,0x74,0x65,0x06,0x77,0x61,0x63,0x75,0x74,0x65,0x09,0x57,0x64, -0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x09,0x77,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x34,0x07,0x75,0x6e,0x69,0x31,0x45,0x41, -0x35,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x39,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x41, -0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x46,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x34,0x07,0x75,0x6e,0x69,0x31,0x45,0x42, -0x35,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x39,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x42, -0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x46,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x34,0x07,0x75,0x6e,0x69,0x31,0x45,0x43, -0x35,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x39,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x43, -0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x46,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x34,0x07,0x75,0x6e,0x69,0x31,0x45,0x44, -0x35,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x39,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x44, -0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x46,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x34,0x07,0x75,0x6e,0x69,0x31,0x45,0x45, -0x35,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x39,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x45, -0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x46,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x31,0x06,0x59,0x67,0x72,0x61,0x76,0x65,0x06,0x79,0x67,0x72,0x61,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x34,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x35,0x07, -0x75,0x6e,0x69,0x31,0x45,0x46,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x39,0x07,0x75,0x6e,0x69,0x31,0x46,0x34,0x44,0x07,0x75,0x6e,0x69,0x32,0x30,0x30,0x30,0x07,0x75,0x6e,0x69,0x32,0x30,0x30,0x31,0x07,0x75,0x6e,0x69,0x32,0x30,0x30,0x32,0x07, -0x75,0x6e,0x69,0x32,0x30,0x30,0x33,0x07,0x75,0x6e,0x69,0x32,0x30,0x30,0x34,0x07,0x75,0x6e,0x69,0x32,0x30,0x30,0x35,0x07,0x75,0x6e,0x69,0x32,0x30,0x30,0x36,0x07,0x75,0x6e,0x69,0x32,0x30,0x30,0x37,0x07,0x75,0x6e,0x69,0x32,0x30,0x30,0x38,0x07,0x75,0x6e,0x69,0x32,0x30,0x30,0x39,0x07,0x75,0x6e,0x69,0x32,0x30,0x30,0x41,0x07, -0x75,0x6e,0x69,0x32,0x30,0x30,0x42,0x07,0x75,0x6e,0x69,0x32,0x30,0x31,0x35,0x0d,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x64,0x62,0x6c,0x0d,0x71,0x75,0x6f,0x74,0x65,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x64,0x07,0x75,0x6e,0x69,0x32,0x30,0x32,0x35,0x06,0x6d,0x69,0x6e,0x75,0x74,0x65,0x06,0x73,0x65,0x63,0x6f,0x6e, -0x64,0x09,0x65,0x78,0x63,0x6c,0x61,0x6d,0x64,0x62,0x6c,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x34,0x09,0x6e,0x73,0x75,0x70,0x65,0x72,0x69,0x6f,0x72,0x04,0x6c,0x69,0x72,0x61,0x06,0x70,0x65,0x73,0x65,0x74,0x61,0x07,0x75,0x6e,0x69,0x32,0x30,0x41,0x42,0x04,0x45,0x75,0x72,0x6f,0x07,0x75,0x6e,0x69,0x32,0x31,0x30,0x35,0x07,0x75, -0x6e,0x69,0x32,0x31,0x31,0x33,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x36,0x09,0x65,0x73,0x74,0x69,0x6d,0x61,0x74,0x65,0x64,0x09,0x6f,0x6e,0x65,0x65,0x69,0x67,0x68,0x74,0x68,0x0c,0x74,0x68,0x72,0x65,0x65,0x65,0x69,0x67,0x68,0x74,0x68,0x73,0x0b,0x66,0x69,0x76,0x65,0x65,0x69,0x67,0x68,0x74,0x68,0x73,0x0c,0x73,0x65,0x76,0x65, -0x6e,0x65,0x69,0x67,0x68,0x74,0x68,0x73,0x0b,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x46,0x42,0x30,0x32,0x07,0x75,0x6e,0x69,0x46,0x42,0x30,0x33,0x07,0x75,0x6e,0x69,0x46,0x42,0x30,0x34,0x07,0x75,0x6e,0x69,0x46,0x45,0x46,0x46,0x07,0x75,0x6e,0x69,0x46,0x46,0x46,0x43,0x07,0x75,0x6e,0x69, -0x46,0x46,0x46,0x44,0x0d,0x53,0x63,0x65,0x64,0x69,0x6c,0x6c,0x61,0x2e,0x73,0x6d,0x63,0x70,0x10,0x55,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x73,0x6d,0x63,0x70,0x13,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x74,0x69,0x6c,0x64,0x65,0x63,0x6f,0x6d,0x62,0x12,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c, -0x65,0x78,0x68,0x6f,0x6f,0x6b,0x63,0x6f,0x6d,0x62,0x13,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x67,0x72,0x61,0x76,0x65,0x63,0x6f,0x6d,0x62,0x13,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x61,0x63,0x75,0x74,0x65,0x63,0x6f,0x6d,0x62,0x06,0x41,0x2e,0x73,0x6d,0x63,0x70,0x0e,0x62,0x72,0x65,0x76,0x65,0x67, -0x72,0x61,0x76,0x65,0x63,0x6f,0x6d,0x62,0x11,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x72,0x6f,0x74,0x61,0x74,0x65,0x06,0x42,0x2e,0x73,0x6d,0x63,0x70,0x06,0x43,0x2e,0x73,0x6d,0x63,0x70,0x06,0x44,0x2e,0x73,0x6d,0x63,0x70,0x06,0x45,0x2e,0x73,0x6d,0x63,0x70,0x06,0x46,0x2e,0x73,0x6d,0x63,0x70,0x06,0x47,0x2e, -0x73,0x6d,0x63,0x70,0x06,0x48,0x2e,0x73,0x6d,0x63,0x70,0x06,0x49,0x2e,0x73,0x6d,0x63,0x70,0x06,0x4a,0x2e,0x73,0x6d,0x63,0x70,0x06,0x4b,0x2e,0x73,0x6d,0x63,0x70,0x06,0x4c,0x2e,0x73,0x6d,0x63,0x70,0x06,0x4d,0x2e,0x73,0x6d,0x63,0x70,0x08,0x63,0x72,0x6f,0x73,0x73,0x62,0x61,0x72,0x06,0x4e,0x2e,0x73,0x6d,0x63,0x70,0x06,0x4f, -0x2e,0x73,0x6d,0x63,0x70,0x09,0x7a,0x65,0x72,0x6f,0x2e,0x6c,0x6e,0x75,0x6d,0x0f,0x67,0x65,0x72,0x6d,0x61,0x6e,0x64,0x62,0x6c,0x73,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x5a,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x73,0x6d,0x63,0x70,0x0f,0x5a,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x5a,0x61,0x63,0x75, -0x74,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0e,0x59,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x73,0x6d,0x63,0x70,0x10,0x59,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x73,0x6d,0x63,0x70,0x10,0x57,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x73,0x6d,0x63,0x70,0x0c,0x55,0x6f,0x67,0x6f,0x6e,0x65,0x6b, -0x2e,0x73,0x6d,0x63,0x70,0x12,0x55,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x2e,0x73,0x6d,0x63,0x70,0x0a,0x55,0x72,0x69,0x6e,0x67,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x55,0x62,0x72,0x65,0x76,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0c,0x55,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x55,0x74,0x69, -0x6c,0x64,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x54,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x73,0x6d,0x63,0x70,0x11,0x54,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x53,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x73,0x6d,0x63,0x70,0x09,0x66,0x69,0x76,0x65,0x2e,0x73,0x6d,0x63,0x70,0x10,0x53,0x63,0x69, -0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x53,0x61,0x63,0x75,0x74,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x52,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x73,0x6d,0x63,0x70,0x11,0x52,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x52,0x61,0x63,0x75,0x74,0x65,0x2e,0x73, -0x6d,0x63,0x70,0x12,0x4f,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x4f,0x62,0x72,0x65,0x76,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0c,0x4f,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x4e,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x73,0x6d,0x63,0x70,0x11,0x4e,0x63,0x6f,0x6d, -0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x4e,0x61,0x63,0x75,0x74,0x65,0x2e,0x73,0x6d,0x63,0x70,0x09,0x4c,0x64,0x6f,0x74,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x4c,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x73,0x6d,0x63,0x70,0x11,0x4c,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x73,0x6d,0x63, -0x70,0x0b,0x4c,0x61,0x63,0x75,0x74,0x65,0x2e,0x73,0x6d,0x63,0x70,0x11,0x4b,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x73,0x6d,0x63,0x70,0x10,0x4a,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x73,0x6d,0x63,0x70,0x0f,0x49,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x73,0x6d,0x63,0x70, -0x0c,0x49,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x49,0x62,0x72,0x65,0x76,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0c,0x49,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x49,0x74,0x69,0x6c,0x64,0x65,0x2e,0x73,0x6d,0x63,0x70,0x10,0x48,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x73, -0x6d,0x63,0x70,0x11,0x47,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x73,0x6d,0x63,0x70,0x0c,0x75,0x6e,0x69,0x30,0x31,0x32,0x30,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x47,0x62,0x72,0x65,0x76,0x65,0x2e,0x73,0x6d,0x63,0x70,0x10,0x47,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x73,0x6d,0x63,0x70,0x0b, -0x45,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x73,0x6d,0x63,0x70,0x0c,0x45,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x2e,0x73,0x6d,0x63,0x70,0x0f,0x45,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x45,0x62,0x72,0x65,0x76,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0c,0x45,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x2e,0x73,0x6d,0x63, -0x70,0x0b,0x44,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x43,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x73,0x6d,0x63,0x70,0x0c,0x75,0x6e,0x69,0x30,0x31,0x30,0x41,0x2e,0x73,0x6d,0x63,0x70,0x10,0x43,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x43,0x61,0x63,0x75,0x74,0x65,0x2e,0x73, -0x6d,0x63,0x70,0x0c,0x41,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x41,0x62,0x72,0x65,0x76,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0c,0x41,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x59,0x61,0x63,0x75,0x74,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0e,0x55,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e, -0x73,0x6d,0x63,0x70,0x0e,0x62,0x72,0x65,0x76,0x65,0x61,0x63,0x75,0x74,0x65,0x63,0x6f,0x6d,0x62,0x0b,0x55,0x61,0x63,0x75,0x74,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x55,0x67,0x72,0x61,0x76,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0e,0x4f,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x4f,0x74,0x69,0x6c,0x64, -0x65,0x2e,0x73,0x6d,0x63,0x70,0x10,0x4f,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x4f,0x61,0x63,0x75,0x74,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x4f,0x67,0x72,0x61,0x76,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x4e,0x74,0x69,0x6c,0x64,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0e,0x49,0x64,0x69,0x65, -0x72,0x65,0x73,0x69,0x73,0x2e,0x73,0x6d,0x63,0x70,0x10,0x49,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x49,0x61,0x63,0x75,0x74,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x49,0x67,0x72,0x61,0x76,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0e,0x45,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x73,0x6d, -0x63,0x70,0x10,0x45,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x45,0x61,0x63,0x75,0x74,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x45,0x67,0x72,0x61,0x76,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0d,0x43,0x63,0x65,0x64,0x69,0x6c,0x6c,0x61,0x2e,0x73,0x6d,0x63,0x70,0x0f,0x41,0x72,0x69,0x6e,0x67,0x61, -0x63,0x75,0x74,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0a,0x41,0x72,0x69,0x6e,0x67,0x2e,0x73,0x6d,0x63,0x70,0x0e,0x41,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x41,0x74,0x69,0x6c,0x64,0x65,0x2e,0x73,0x6d,0x63,0x70,0x10,0x41,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x73,0x6d,0x63,0x70, -0x0b,0x41,0x61,0x63,0x75,0x74,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x41,0x67,0x72,0x61,0x76,0x65,0x2e,0x73,0x6d,0x63,0x70,0x09,0x54,0x62,0x61,0x72,0x2e,0x73,0x6d,0x63,0x70,0x08,0x45,0x74,0x68,0x2e,0x73,0x6d,0x63,0x70,0x0b,0x44,0x63,0x72,0x6f,0x61,0x74,0x2e,0x73,0x6d,0x63,0x70,0x06,0x51,0x2e,0x73,0x6d,0x63,0x70,0x06,0x52, -0x2e,0x73,0x6d,0x63,0x70,0x0d,0x63,0x79,0x72,0x69,0x6c,0x6c,0x69,0x63,0x62,0x72,0x65,0x76,0x65,0x0d,0x62,0x72,0x65,0x76,0x65,0x68,0x6f,0x6f,0x6b,0x63,0x6f,0x6d,0x62,0x0e,0x62,0x72,0x65,0x76,0x65,0x74,0x69,0x6c,0x64,0x65,0x63,0x6f,0x6d,0x62,0x0b,0x63,0x79,0x72,0x69,0x6c,0x6c,0x69,0x63,0x74,0x69,0x63,0x10,0x63,0x79,0x72, -0x69,0x6c,0x6c,0x69,0x63,0x68,0x6f,0x6f,0x6b,0x6c,0x65,0x66,0x74,0x0c,0x63,0x79,0x72,0x69,0x6c,0x6c,0x69,0x63,0x68,0x6f,0x6f,0x6b,0x0e,0x6c,0x61,0x72,0x67,0x65,0x72,0x69,0x67,0x68,0x74,0x68,0x6f,0x6f,0x6b,0x08,0x6f,0x6e,0x65,0x2e,0x6c,0x6e,0x75,0x6d,0x08,0x74,0x77,0x6f,0x2e,0x6c,0x6e,0x75,0x6d,0x0a,0x74,0x68,0x72,0x65, -0x65,0x2e,0x6c,0x6e,0x75,0x6d,0x09,0x66,0x6f,0x75,0x72,0x2e,0x6c,0x6e,0x75,0x6d,0x09,0x66,0x69,0x76,0x65,0x2e,0x6c,0x6e,0x75,0x6d,0x08,0x73,0x69,0x78,0x2e,0x6c,0x6e,0x75,0x6d,0x0a,0x73,0x65,0x76,0x65,0x6e,0x2e,0x6c,0x6e,0x75,0x6d,0x06,0x53,0x2e,0x73,0x6d,0x63,0x70,0x06,0x54,0x2e,0x73,0x6d,0x63,0x70,0x06,0x55,0x2e,0x73, -0x6d,0x63,0x70,0x06,0x56,0x2e,0x73,0x6d,0x63,0x70,0x06,0x57,0x2e,0x73,0x6d,0x63,0x70,0x06,0x58,0x2e,0x73,0x6d,0x63,0x70,0x06,0x59,0x2e,0x73,0x6d,0x63,0x70,0x06,0x5a,0x2e,0x73,0x6d,0x63,0x70,0x09,0x7a,0x65,0x72,0x6f,0x2e,0x73,0x6d,0x63,0x70,0x08,0x6f,0x6e,0x65,0x2e,0x73,0x6d,0x63,0x70,0x08,0x74,0x77,0x6f,0x2e,0x73,0x6d, -0x63,0x70,0x0a,0x74,0x68,0x72,0x65,0x65,0x2e,0x73,0x6d,0x63,0x70,0x09,0x66,0x6f,0x75,0x72,0x2e,0x73,0x6d,0x63,0x70,0x08,0x73,0x69,0x78,0x2e,0x73,0x6d,0x63,0x70,0x08,0x6e,0x69,0x6e,0x65,0x2e,0x73,0x75,0x70,0x09,0x65,0x69,0x67,0x68,0x74,0x2e,0x73,0x75,0x70,0x09,0x64,0x61,0x73,0x69,0x61,0x6f,0x78,0x69,0x61,0x09,0x73,0x65, -0x76,0x65,0x6e,0x2e,0x73,0x75,0x70,0x07,0x73,0x69,0x78,0x2e,0x73,0x75,0x70,0x08,0x66,0x69,0x76,0x65,0x2e,0x73,0x75,0x70,0x08,0x66,0x6f,0x75,0x72,0x2e,0x73,0x75,0x70,0x09,0x74,0x68,0x72,0x65,0x65,0x2e,0x73,0x75,0x70,0x07,0x74,0x77,0x6f,0x2e,0x73,0x75,0x70,0x09,0x72,0x69,0x6e,0x67,0x61,0x63,0x75,0x74,0x65,0x07,0x6f,0x6e, -0x65,0x2e,0x73,0x75,0x70,0x08,0x7a,0x65,0x72,0x6f,0x2e,0x73,0x75,0x70,0x09,0x6e,0x69,0x6e,0x65,0x2e,0x73,0x6d,0x63,0x70,0x0a,0x65,0x69,0x67,0x68,0x74,0x2e,0x73,0x6d,0x63,0x70,0x0a,0x73,0x65,0x76,0x65,0x6e,0x2e,0x73,0x6d,0x63,0x70,0x0a,0x65,0x69,0x67,0x68,0x74,0x2e,0x6c,0x6e,0x75,0x6d,0x09,0x6e,0x69,0x6e,0x65,0x2e,0x6c, -0x6e,0x75,0x6d,0x06,0x50,0x2e,0x73,0x6d,0x63,0x70,0x08,0x4e,0x55,0x4c,0x4c,0x2e,0x30,0x30,0x31,0x07,0x75,0x6e,0x69,0x30,0x30,0x30,0x39,0x00,0x00,0x01,0x00,0x01,0xff,0xff,0x00,0x0f,0x00,0x00,0x00,0xc5,0x00,0x9a,0x00,0xc5,0x00,0xc5,0x00,0x9a,0x00,0x9b,0x05,0xb0,0x00,0x00,0x06,0x18,0x04,0x3a,0x00,0x00,0xfe,0x60,0x05,0xc5, -0xff,0xeb,0x06,0x2d,0x04,0x4e,0xff,0xeb,0xfe,0x4b,0x00,0x00,0xb0,0x00,0x2c,0x20,0x64,0xb0,0x20,0x60,0x66,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0x2d,0xb0,0x01,0x2c,0x20,0x64,0x20,0xb0,0xc0,0x50,0xb0,0x04,0x26,0x5a,0xb0,0x0b,0x43,0x5b,0x58,0x21,0x23,0x21,0x1b,0x8a,0x58,0x20,0xb0,0x50,0x50,0x58,0x21,0xb0,0x40,0x59,0x1b,0x20, -0xb0,0x38,0x50,0x58,0x21,0xb0,0x38,0x59,0x59,0x20,0xb0,0x05,0x45,0x61,0x64,0xb0,0x28,0x50,0x58,0x21,0xb0,0x05,0x45,0x20,0xb0,0x30,0x50,0x58,0x21,0xb0,0x30,0x59,0x1b,0x20,0xb0,0xc0,0x50,0x58,0x20,0x66,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x0a,0x50,0x58,0x60,0x1b,0x20,0xb0,0x20,0x50,0x58,0x21,0xb0,0x0a,0x60,0x1b,0x20,0xb0,0x36, -0x50,0x58,0x21,0xb0,0x36,0x60,0x1b,0x60,0x59,0x59,0x59,0x1b,0xb0,0x00,0x2b,0x59,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0x59,0x2d,0xb0,0x02,0x2c,0xb0,0x07,0x23,0x42,0xb0,0x06,0x23,0x42,0xb0,0x00,0x23,0x42,0xb0,0x00,0x43,0xb0,0x06,0x43,0x51,0x58,0xb0,0x07,0x43,0x2b,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0xb0,0x16,0x65,0x1c, -0x59,0x2d,0xb0,0x03,0x2c,0xb0,0x00,0x43,0x20,0x45,0xb0,0x09,0x43,0x63,0xb0,0x0a,0x43,0x62,0x44,0x2d,0xb0,0x04,0x2c,0xb0,0x00,0x43,0x20,0x45,0x20,0xb0,0x00,0x2b,0x23,0xb1,0x06,0x04,0x25,0x60,0x20,0x45,0x8a,0x23,0x61,0x20,0x64,0x20,0xb0,0x20,0x50,0x58,0x21,0xb0,0x00,0x1b,0xb0,0x30,0x50,0x58,0xb0,0x20,0x1b,0xb0,0x40,0x59, -0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb0,0x03,0x25,0x23,0x61,0x44,0x44,0x2d,0xb0,0x05,0x2c,0xb0,0x01,0x60,0x20,0x20,0xb0,0x0d,0x43,0x4a,0xb0,0x00,0x50,0x58,0x20,0xb0,0x0d,0x23,0x42,0x59,0xb0,0x0e,0x43,0x4a,0xb0,0x00,0x52,0x58,0x20,0xb0,0x0e,0x23,0x42,0x59,0x2d,0xb0,0x06,0x2c,0xb0,0x00,0x43,0xb0,0x02,0x25,0x42,0xb2, -0x00,0x01,0x00,0x43,0x60,0x42,0xb1,0x0d,0x02,0x25,0x42,0xb1,0x0e,0x02,0x25,0x42,0xb0,0x01,0x16,0x23,0x20,0xb0,0x03,0x25,0x50,0x58,0xb0,0x00,0x43,0xb0,0x04,0x25,0x42,0x8a,0x8a,0x20,0x8a,0x23,0x61,0xb0,0x05,0x2a,0x21,0x23,0xb0,0x01,0x61,0x20,0x8a,0x23,0x61,0xb0,0x05,0x2a,0x21,0x1b,0xb0,0x00,0x43,0xb0,0x02,0x25,0x42,0xb0, -0x02,0x25,0x61,0xb0,0x05,0x2a,0x21,0x59,0xb0,0x0d,0x43,0x47,0xb0,0x0e,0x43,0x47,0x60,0xb0,0x80,0x62,0xb0,0x09,0x43,0x63,0xb0,0x0a,0x43,0x62,0x20,0xb1,0x01,0x00,0x15,0x43,0x20,0x46,0x8a,0x23,0x61,0x38,0xb0,0x02,0x43,0x20,0x46,0x8a,0x23,0x61,0x38,0xb5,0x02,0x01,0x02,0x01,0x01,0x01,0x43,0x60,0x42,0x43,0x60,0x42,0x2d,0xb0, -0x07,0x2c,0x00,0xb0,0x08,0x23,0x42,0xb6,0x0f,0x0f,0x08,0x02,0x00,0x01,0x08,0x43,0x42,0x42,0x43,0x20,0x60,0x60,0xb0,0x01,0x61,0xb1,0x06,0x02,0x2b,0x2d,0xb0,0x08,0x2c,0x20,0x60,0xb0,0x0f,0x60,0x20,0x43,0x23,0xb0,0x01,0x60,0x43,0xb0,0x02,0x25,0xb0,0x02,0x25,0x51,0x58,0x23,0x20,0x3c,0xb0,0x01,0x60,0x23,0xb0,0x12,0x65,0x1c, -0x1b,0x21,0x21,0x59,0x2d,0xb0,0x09,0x2c,0xb0,0x08,0x2b,0xb0,0x08,0x2a,0x2d,0xb0,0x0a,0x2c,0x20,0x20,0x47,0x20,0xb0,0x09,0x43,0x63,0xb0,0x0a,0x43,0x62,0x23,0x61,0x38,0x23,0x20,0x8a,0x55,0x58,0x20,0x47,0x20,0xb0,0x09,0x43,0x63,0xb0,0x0a,0x43,0x62,0x23,0x61,0x38,0x1b,0x21,0x59,0x2d,0xb0,0x0b,0x2c,0x00,0xb0,0x01,0x16,0xb0, -0x0a,0x2a,0xb0,0x01,0x15,0x30,0x2d,0xb0,0x0c,0x2c,0x20,0x35,0xb0,0x01,0x60,0x2d,0xb0,0x0d,0x2c,0x00,0xb0,0x00,0x45,0x63,0xb0,0x0a,0x43,0x62,0xb0,0x00,0x2b,0xb0,0x09,0x43,0xb0,0x0a,0x43,0x61,0x63,0xb0,0x0a,0x43,0x62,0xb0,0x00,0x2b,0xb0,0x00,0x16,0xb1,0x00,0x00,0x2e,0x23,0xb0,0x00,0x47,0xb0,0x00,0x46,0x61,0x60,0x38,0xb1, -0x0c,0x01,0x15,0x2a,0x2d,0xb0,0x0e,0x2c,0x20,0x3c,0x20,0x47,0xb0,0x09,0x43,0x63,0xb0,0x0a,0x43,0x62,0xb0,0x00,0x43,0x61,0x38,0x2d,0xb0,0x0f,0x2c,0x2e,0x17,0x3c,0x2d,0xb0,0x10,0x2c,0x20,0x3c,0x20,0x47,0xb0,0x09,0x43,0x63,0xb0,0x0a,0x43,0x62,0xb0,0x00,0x43,0x61,0xb0,0x01,0x43,0x63,0x38,0x2d,0xb0,0x11,0x2c,0xb1,0x02,0x00, -0x16,0x25,0x20,0x2e,0xb0,0x08,0x43,0x60,0x20,0x46,0xb0,0x00,0x23,0x42,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0x49,0x8a,0x8a,0x49,0x23,0x62,0xb0,0x01,0x23,0x42,0xb2,0x10,0x01,0x01,0x15,0x14,0x2a,0x2d,0xb0,0x12,0x2c,0xb0,0x00,0x15,0x20,0xb0,0x08,0x43,0x60,0x46,0xb0,0x00,0x23,0x42,0xb2,0x00,0x01,0x01,0x15,0x14,0x13,0x2e,0xb0, -0x0e,0x2a,0x2d,0xb0,0x13,0x2c,0xb0,0x00,0x15,0x20,0xb0,0x08,0x43,0x60,0x46,0xb0,0x00,0x23,0x42,0xb2,0x00,0x01,0x01,0x15,0x14,0x13,0x2e,0xb0,0x0e,0x2a,0x2d,0xb0,0x14,0x2c,0xb1,0x00,0x01,0x14,0x13,0xb0,0x0f,0x2a,0x2d,0xb0,0x15,0x2c,0xb0,0x11,0x2a,0x2d,0xb0,0x1a,0x2c,0x2d,0xb0,0x1d,0x2c,0x2d,0xb0,0x1b,0x2c,0xb0,0x00,0x16, -0xb0,0x04,0x25,0xb0,0x08,0x43,0x60,0xb0,0x04,0x26,0x20,0x2e,0xb0,0x08,0x43,0x60,0x49,0xb0,0x01,0x2b,0x23,0x20,0x3c,0x20,0x2e,0x23,0x38,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x18,0x2c,0xb1,0x0c,0x04,0x25,0x42,0xb0,0x00,0x16,0xb0,0x04,0x25,0xb0,0x08,0x43,0x60,0xb0,0x04,0x25,0x20,0x2e,0xb0,0x08,0x43,0x60,0x49,0x20,0xb0,0x05, -0x23,0x42,0xb0,0x01,0x2b,0x20,0xb0,0x60,0x50,0x58,0x20,0xb0,0x40,0x51,0x58,0xb3,0x03,0x20,0x04,0x20,0x1b,0xb3,0x03,0x26,0x04,0x1a,0x59,0x42,0x42,0x23,0x20,0xb0,0x08,0x43,0x60,0x46,0xb0,0x05,0x43,0xb0,0x80,0x62,0x60,0x20,0xb0,0x00,0x2b,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x03,0x43,0x60,0x64,0x23,0xb0,0x04,0x43,0x61,0x64,0x50, -0x58,0xb0,0x03,0x43,0x61,0x1b,0xb0,0x04,0x43,0x60,0x59,0xb0,0x03,0x25,0xb0,0x80,0x62,0x61,0xb0,0x02,0x25,0x46,0x61,0x38,0x23,0x20,0x3c,0x23,0x38,0x1b,0x21,0x20,0xb0,0x08,0x43,0x60,0x2e,0x20,0x3c,0x2f,0x21,0x59,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x17,0x2c,0xb0,0x0c,0x23,0x42,0xb0,0x00,0x13,0x3e,0xb1,0x09,0x01,0x14,0x2b, -0x2d,0xb0,0x19,0x2c,0xb0,0x00,0x16,0xb0,0x04,0x25,0xb0,0x08,0x43,0x60,0xb0,0x04,0x25,0xb0,0x08,0x43,0x60,0x49,0xb0,0x01,0x2b,0x65,0x8a,0x2e,0x23,0x20,0x20,0x3c,0x8a,0x38,0x2e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x1c,0x2c,0xb0,0x00,0x16,0xb0,0x04,0x25,0xb0,0x08,0x43,0x60,0xb0,0x04,0x25,0x20,0x2e,0xb0,0x08,0x43,0x60,0x49, -0x20,0xb0,0x05,0x23,0x42,0xb0,0x01,0x2b,0x20,0xb0,0x60,0x50,0x58,0x20,0xb0,0x40,0x51,0x58,0xb3,0x03,0x20,0x04,0x20,0x1b,0xb3,0x03,0x26,0x04,0x1a,0x59,0x42,0x42,0x23,0x20,0xb0,0x08,0x43,0x60,0xb0,0x0c,0x43,0x20,0xb0,0x08,0x43,0x60,0x8a,0x23,0x49,0x23,0x46,0x60,0xb0,0x05,0x43,0xb0,0x80,0x62,0x60,0x20,0xb0,0x00,0x2b,0x20, -0x8a,0x8a,0x61,0x20,0xb0,0x03,0x43,0x60,0x64,0x23,0xb0,0x04,0x43,0x61,0x64,0x50,0x58,0xb0,0x03,0x43,0x61,0x1b,0xb0,0x04,0x43,0x60,0x59,0xb0,0x03,0x25,0xb0,0x80,0x62,0x61,0x23,0x20,0xb0,0x03,0x26,0x23,0x46,0x61,0x38,0x1b,0x23,0xb0,0x0c,0x43,0x46,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0xb0,0x0c,0x43,0xb0,0x08,0x43,0x60,0x49, -0x60,0x20,0xb0,0x05,0x43,0xb0,0x80,0x62,0x60,0x23,0x20,0xb0,0x00,0x2b,0x23,0xb0,0x05,0x43,0x60,0xb0,0x00,0x2b,0xb0,0x05,0x25,0x61,0xb0,0x05,0x25,0xb0,0x80,0x62,0xb0,0x04,0x26,0x61,0x20,0xb0,0x04,0x25,0x60,0x64,0x23,0xb0,0x03,0x25,0x60,0x64,0x50,0x58,0x21,0x1b,0x23,0x21,0x59,0x23,0x20,0xb0,0x03,0x26,0x23,0x46,0x61,0x38, -0x59,0x23,0x20,0x20,0x3c,0xb0,0x05,0x23,0x42,0x23,0x38,0xb1,0x09,0x01,0x14,0x2b,0xb0,0x05,0x43,0x2e,0xb0,0x09,0x2b,0x2d,0xb0,0x16,0x2c,0xb0,0x00,0x13,0x3e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x1e,0x2c,0xb0,0x00,0x16,0x20,0x20,0xb0,0x04,0x26,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0x23,0x20,0x2e,0xb0,0x08,0x43,0x60,0x49,0x23, -0x3c,0x38,0x2e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x1f,0x2c,0xb0,0x00,0x16,0x20,0x20,0xb0,0x04,0x26,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0x23,0x20,0x2e,0xb0,0x08,0x43,0x60,0x49,0x23,0x3c,0x38,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0x52,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x20,0x2c,0xb0,0x00,0x16, -0x20,0x20,0xb0,0x04,0x26,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0x23,0x20,0x2e,0xb0,0x08,0x43,0x60,0x49,0x23,0x3c,0x38,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0x50,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x21,0x2c,0xb0,0x00,0x16,0x20,0x20,0xb0,0x04,0x26,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0x23,0x20,0x2e, -0xb0,0x08,0x43,0x60,0x49,0x23,0x3c,0x38,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0x52,0x58,0x20,0x3c,0x59,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0x50,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x22,0x2c,0xb0,0x00,0x16,0x20,0xb0,0x0c,0x23,0x42,0x20,0xb0,0x08,0x43,0x60,0x2e,0x20,0x20,0x3c,0x2f,0x2e,0xb1, -0x09,0x01,0x14,0x2b,0x2d,0xb0,0x23,0x2c,0xb0,0x00,0x16,0x20,0xb0,0x0c,0x23,0x42,0x20,0xb0,0x08,0x43,0x60,0x2e,0x20,0x20,0x3c,0x2f,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0x52,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x24,0x2c,0xb0,0x00,0x16,0x20,0xb0,0x0c,0x23,0x42,0x20,0xb0,0x08,0x43,0x60,0x2e,0x20, -0x20,0x3c,0x2f,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0x50,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x25,0x2c,0xb0,0x00,0x16,0x20,0xb0,0x0c,0x23,0x42,0x20,0xb0,0x08,0x43,0x60,0x2e,0x20,0x20,0x3c,0x2f,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0x52,0x58,0x20,0x3c,0x59,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25, -0x46,0x50,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x26,0x2c,0xb0,0x00,0x16,0xb0,0x03,0x25,0xb0,0x08,0x43,0x60,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0x49,0xb0,0x00,0x54,0x58,0x2e,0x20,0x3c,0x23,0x21,0x1b,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0x49,0xb8,0x10,0x00,0x63,0xb0, -0x04,0x25,0xb0,0x03,0x25,0x49,0x63,0xb0,0x04,0x25,0xb0,0x08,0x43,0x60,0xb0,0x03,0x25,0xb0,0x08,0x43,0x60,0x49,0xb8,0x10,0x00,0x63,0x62,0x23,0x2e,0x23,0x20,0x20,0x3c,0x8a,0x38,0x23,0x21,0x59,0x2e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x27,0x2c,0xb0,0x00,0x16,0xb0,0x03,0x25,0xb0,0x08,0x43,0x60,0xb0,0x02,0x25,0xb0,0x08,0x43, -0x60,0x49,0xb0,0x00,0x54,0x58,0x2e,0x20,0x3c,0x23,0x21,0x1b,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0x49,0xb8,0x10,0x00,0x63,0xb0,0x04,0x25,0xb0,0x03,0x25,0x49,0x63,0xb0,0x04,0x25,0xb0,0x08,0x43,0x60,0xb0,0x03,0x25,0xb0,0x08,0x43,0x60,0x49,0xb8,0x10,0x00,0x63,0x62,0x23,0x2e,0x23,0x20,0x20, -0x3c,0x8a,0x38,0x23,0x21,0x59,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0x52,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x28,0x2c,0xb0,0x00,0x16,0xb0,0x03,0x25,0xb0,0x08,0x43,0x60,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0x49,0xb0,0x00,0x54,0x58,0x2e,0x20,0x3c,0x23,0x21,0x1b,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60, -0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0x49,0xb8,0x10,0x00,0x63,0xb0,0x04,0x25,0xb0,0x03,0x25,0x49,0x63,0xb0,0x04,0x25,0xb0,0x08,0x43,0x60,0xb0,0x03,0x25,0xb0,0x08,0x43,0x60,0x49,0xb8,0x10,0x00,0x63,0x62,0x23,0x2e,0x23,0x20,0x20,0x3c,0x8a,0x38,0x23,0x21,0x59,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0x50,0x58,0x20,0x3c,0x59, -0x2e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x29,0x2c,0xb0,0x00,0x16,0xb0,0x03,0x25,0xb0,0x08,0x43,0x60,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0x49,0xb0,0x00,0x54,0x58,0x2e,0x20,0x3c,0x23,0x21,0x1b,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0xb0,0x02,0x25,0xb0,0x08,0x43,0x60,0x49,0xb8,0x10,0x00,0x63,0xb0,0x04,0x25,0xb0,0x03,0x25,0x49, -0x63,0xb0,0x04,0x25,0xb0,0x08,0x43,0x60,0xb0,0x03,0x25,0xb0,0x08,0x43,0x60,0x49,0xb8,0x10,0x00,0x63,0x62,0x23,0x2e,0x23,0x20,0x20,0x3c,0x8a,0x38,0x23,0x21,0x59,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0x52,0x58,0x20,0x3c,0x59,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0x50,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x09,0x01,0x14,0x2b, -0x2d,0xb0,0x2a,0x2c,0xb0,0x00,0x16,0x20,0xb0,0x08,0x43,0x60,0xb0,0x0c,0x43,0x20,0x2e,0xb0,0x08,0x43,0x60,0x49,0x20,0x60,0xb0,0x20,0x60,0x66,0xb0,0x80,0x62,0x23,0x20,0x20,0x3c,0x8a,0x38,0x2e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x2b,0x2c,0xb0,0x00,0x16,0x20,0xb0,0x08,0x43,0x60,0xb0,0x0c,0x43,0x20,0x2e,0xb0,0x08,0x43,0x60, -0x49,0x20,0x60,0xb0,0x20,0x60,0x66,0xb0,0x80,0x62,0x23,0x20,0x20,0x3c,0x8a,0x38,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0x52,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x2c,0x2c,0xb0,0x00,0x16,0x20,0xb0,0x08,0x43,0x60,0xb0,0x0c,0x43,0x20,0x2e,0xb0,0x08,0x43,0x60,0x49,0x20,0x60,0xb0,0x20,0x60,0x66,0xb0, -0x80,0x62,0x23,0x20,0x20,0x3c,0x8a,0x38,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0x50,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x2d,0x2c,0xb0,0x00,0x16,0x20,0xb0,0x08,0x43,0x60,0xb0,0x0c,0x43,0x20,0x2e,0xb0,0x08,0x43,0x60,0x49,0x20,0x60,0xb0,0x20,0x60,0x66,0xb0,0x80,0x62,0x23,0x20,0x20,0x3c,0x8a,0x38, -0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0x52,0x58,0x20,0x3c,0x59,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0x50,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x09,0x01,0x14,0x2b,0x2d,0xb0,0x2e,0x2c,0x2b,0x2d,0xb0,0x2f,0x2c,0xb0,0x2e,0x2a,0xb0,0x01,0x15,0x30,0x2d,0x00,0x00,0x00,0xb9,0x08,0x00,0x08,0x00,0x63,0x20,0xb0,0x0a,0x23,0x42,0x20, -0xb0,0x00,0x23,0x70,0xb0,0x10,0x45,0x20,0x20,0xb0,0x28,0x60,0x66,0x20,0x8a,0x55,0x58,0xb0,0x0a,0x43,0x63,0x23,0x62,0xb0,0x09,0x23,0x42,0xb3,0x05,0x06,0x03,0x02,0x2b,0xb3,0x07,0x0c,0x03,0x02,0x2b,0xb3,0x0d,0x12,0x03,0x02,0x2b,0x1b,0xb1,0x09,0x0a,0x43,0x42,0x59,0xb2,0x0b,0x28,0x02,0x45,0x52,0x42,0xb3,0x07,0x0c,0x04,0x02, -0x2b,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0f,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f,0x0b,0x11,0x12,0x0e,0x0e,0x0e,0x0c,0x0d,0x0c,0x11,0x0f,0x15,0x07,0x07,0x0e,0x0c,0x06,0x0c,0x15,0x12,0x0e,0x12,0x17,0x13,0x0e,0x0e,0x0e,0x0d,0x0a,0x0c,0x07,0x08,0x0d,0x08,0x0d,0x12,0x11,0x0e,0x0c,0x0e,0x0b,0x0f,0x0f,0x0b,0x0a,0x0d,0x0d,0x09,0x09,0x0d, +0x06,0x09,0x0b,0x07,0x1e,0x1b,0x19,0x15,0x11,0x0c,0x1a,0x17,0x13,0x0f,0x0c,0x06,0x06,0x12,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x0d,0x0f,0x0c,0x0f,0x0c,0x15,0x14,0x10,0x0e,0x10,0x0e,0x0e,0x0c,0x12,0x0e,0x12,0x0e,0x0f,0x0b,0x06,0x1e,0x1b,0x19,0x10,0x0e,0x18,0x11,0x12,0x0e,0x0f,0x0c,0x0f,0x0c,0x0c,0x0d, +0x0c,0x0d,0x06,0x06,0x06,0x06,0x12,0x0e,0x12,0x0e,0x0e,0x08,0x0e,0x08,0x10,0x0e,0x10,0x0e,0x0c,0x0a,0x11,0x0e,0x12,0x0e,0x0e,0x0e,0x0b,0x0f,0x0c,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0d,0x0c,0x0e,0x0c,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0e,0x0b,0x0b,0x0e,0x0e,0x0d,0x0f,0x0a,0x0a,0x0c,0x0d,0x07,0x0e,0x0e,0x0d,0x0c,0x0b, +0x0e,0x0e,0x0e,0x06,0x07,0x08,0x07,0x09,0x06,0x0e,0x15,0x15,0x15,0x0d,0x0d,0x0e,0x0e,0x11,0x11,0x0f,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0a,0x06,0x06,0x07,0x07,0x08,0x08,0x0e,0x0e,0x0d,0x0c,0x11,0x0c,0x0a,0x0b,0x0c,0x0b,0x0b,0x09,0x09,0x09,0x0b,0x0f,0x0c,0x0d,0x0d,0x0e,0x06,0x0c,0x09,0x0e,0x09,0x09,0x16,0x17, +0x17,0x0f,0x0b,0x11,0x13,0x0e,0x0e,0x0c,0x0c,0x0d,0x0e,0x0e,0x10,0x0e,0x0f,0x13,0x0e,0x11,0x0e,0x0e,0x0b,0x0c,0x0b,0x0e,0x0c,0x0f,0x0c,0x15,0x15,0x0f,0x0c,0x0f,0x0d,0x0f,0x0b,0x0e,0x0c,0x10,0x0e,0x0e,0x0a,0x0e,0x0e,0x0b,0x06,0x12,0x0b,0x0b,0x15,0x10,0x10,0x0e,0x16,0x11,0x10,0x0c,0x15,0x11,0x11,0x0e,0x16,0x12,0x0d,0x0b, +0x13,0x12,0x12,0x0e,0x11,0x0e,0x11,0x0e,0x1f,0x1b,0x14,0x10,0x1b,0x15,0x15,0x10,0x0e,0x0b,0x0c,0x09,0x0a,0x00,0x00,0x18,0x17,0x0e,0x0c,0x0d,0x0e,0x0e,0x0c,0x0d,0x0b,0x0e,0x0c,0x11,0x0e,0x14,0x10,0x18,0x14,0x11,0x0d,0x0f,0x0b,0x0d,0x0a,0x15,0x10,0x10,0x0e,0x14,0x0f,0x14,0x0f,0x06,0x15,0x12,0x0e,0x0c,0x11,0x0e,0x10,0x0e, +0x0f,0x0c,0x0f,0x0c,0x15,0x14,0x0c,0x0d,0x11,0x0d,0x11,0x0d,0x15,0x12,0x0d,0x0b,0x0d,0x0b,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0f,0x0b,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x10,0x0e,0x13,0x11,0x0e,0x0e,0x14,0x15,0x13,0x11,0x0d,0x0b,0x16,0x13,0x18,0x14,0x11,0x0d,0x10,0x0e,0x0e,0x0e,0x0e,0x0c,0x0e,0x08,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x0e,0x08,0x08,0x04,0x05,0x05,0x05,0x07,0x0a,0x07,0x06,0x09,0x05,0x05,0x05,0x08,0x08,0x05,0x05,0x0e,0x0e,0x0e,0x0e,0x08,0x07,0x06,0x08,0x07,0x06,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x08,0x07,0x04,0x06,0x07,0x05,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08, +0x0a,0x08,0x06,0x06,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d, +0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d, +0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x0f,0x07,0x0f,0x08,0x0e,0x0e,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x0e,0x0b,0x10,0x14,0x0c,0x0b,0x0d,0x0d,0x0a, +0x0a,0x06,0x07,0x0c,0x09,0x11,0x0e,0x0e,0x0b,0x0f,0x0f,0x0f,0x16,0x0d,0x0e,0x0e,0x0b,0x0b,0x0b,0x0a,0x0d,0x0e,0x11,0x0e,0x0c,0x11,0x0b,0x0a,0x0a,0x0d,0x09,0x0b,0x0e,0x0b,0x0e,0x0d,0x09,0x0c,0x08,0x09,0x0a,0x07,0x07,0x0a,0x0a,0x04,0x05,0x09,0x07,0x0d,0x0b,0x0b,0x0a,0x09,0x08,0x08,0x07,0x0a,0x0d,0x08,0x08,0x08,0x0c,0x08, +0x08,0x07,0x07,0x06,0x06,0x08,0x04,0x07,0x0c,0x08,0x08,0x06,0x08,0x08,0x08,0x05,0x08,0x08,0x0c,0x07,0x08,0x08,0x07,0x08,0x0a,0x07,0x04,0x05,0x08,0x07,0x08,0x07,0x08,0x0a,0x07,0x0e,0x04,0x08,0x0d,0x15,0x0f,0x0d,0x0d,0x15,0x10,0x15,0x12,0x0d,0x0e,0x0c,0x0b,0x1b,0x0b,0x0e,0x15,0x16,0x16,0x0f,0x0f,0x0f,0x0b,0x0b,0x0d,0x0a, +0x0b,0x0c,0x05,0x00,0x00,0x00,0x00,0x0e,0x0f,0x0f,0x0f,0x0b,0x09,0x0e,0x0e,0x08,0x15,0x0e,0x0e,0x08,0x08,0x0b,0x08,0x0b,0x0e,0x0b,0x0e,0x16,0x10,0x08,0x06,0x0e,0x0d,0x0e,0x0e,0x0e,0x08,0x0e,0x0c,0x06,0x15,0x0e,0x0e,0x08,0x0a,0x0a,0x0c,0x0b,0x0b,0x0c,0x0e,0x0e,0x0d,0x0b,0x0b,0x12,0x06,0x0b,0x06,0x0e,0x0b,0x08,0x06,0x06, +0x08,0x06,0x04,0x04,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x0c,0x0c,0x08,0x08,0x08,0x08,0x09,0x06,0x04,0x05,0x08,0x08,0x08,0x08,0x07,0x06,0x06,0x07,0x06,0x08,0x00,0x00,0x00,0x00,0x05,0x08,0x07,0x08,0x06,0x07,0x0d,0x0d,0x0d,0x0d,0x08,0x00,0x00,0x00,0x00,0x0b,0x07,0x06,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x06,0x06,0x06,0x06,0x0d,0x0d,0x0d,0x0d,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x0d,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x04,0x09,0x09,0x08,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x09,0x08,0x09,0x09,0x08, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x13,0x0f,0x11,0x0e,0x12,0x0f,0x16,0x12,0x0d,0x09,0x0c,0x10,0x0d,0x14,0x11,0x00,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x14,0x14,0x18,0x0a,0x06,0x0c,0x0e,0x0a,0x0c,0x0c,0x0e,0x0e,0x0c,0x18,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c, +0x10,0x0c,0x0c,0x0c,0x08,0x0e,0x08,0x12,0x10,0x0c,0x08,0x14,0x0c,0x14,0x06,0x08,0x0e,0x0e,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x14,0x06,0x0e,0x06,0x0c,0x0a,0x06,0x06,0x0c,0x06,0x12,0x06,0x16,0x0c,0x16,0x16,0x0e,0x0e,0x0e,0x0c,0x0c,0x0a,0x0a,0x1c,0x1c,0x20,0x20,0x14,0x14,0x0c,0x0c,0x04,0x18,0x12,0x14,0x10,0x0e,0x10,0x0c,0x0c, +0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x06,0x10,0x00,0x10,0x10,0x10,0x08,0x0c,0x0c,0x16,0x08,0x16,0x08,0x0e,0x10,0x0e,0x0a,0x16,0x0c,0x16,0x0c,0x12,0x14,0x08,0x0c,0x0c,0x0a,0x06,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0e,0x0c,0x10,0x10,0x16,0x08,0x0c,0x0a,0x10,0x0c,0x08,0x0c,0x0c,0x0c,0x16,0x08,0x16,0x08,0x06, +0x0e,0x09,0x18,0x0c,0x0c,0x10,0x10,0x18,0x0c,0x00,0x00,0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x12,0x10,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0c,0x0c,0x12,0x14,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x10,0x0e, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0c,0x0a,0x0a,0x0a,0x1c,0x14,0x1c,0x14,0x1c,0x14,0x20,0x18,0x20,0x18,0x14,0x0c,0x0e,0x0e,0x0e,0x18,0x18,0x0c,0x0c,0x18,0x0c,0x0c,0x18,0x0c,0x0c,0x18,0x0c,0x0c,0x12,0x12,0x1a,0x18,0x16,0x0c,0x14,0x0c,0x14,0x0c,0x14,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x16, +0x0c,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x10,0x08,0x10,0x08,0x0d,0x10,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x14,0x16,0x12,0x14,0x08,0x0c,0x12,0x14,0x12,0x14,0x00,0x00,0x00,0x00,0x00,0x1b,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x0a,0x00,0x00,0x0e,0x00,0x00,0x00,0x1c,0x14,0x20,0x18,0x0c,0x0e, +0x0e,0x0e,0x0a,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x16,0x16,0x09,0x0e,0x0e,0x0e,0x1d,0x14,0x0d,0x25,0x1a,0x08,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0a,0x0a,0x12,0x10,0x10,0x0c,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x1e,0x24,0x00,0x00,0x00,0x00,0x00, +0x0e,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x0a,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x0e,0x0e,0x0e,0x0e,0x10,0x0e,0x0c,0x0c,0x0a,0x1c,0x14,0x0c,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0e,0x18,0x0c,0x0c,0x18,0x0c,0x0c,0x16,0x0c,0x0c,0x16,0x0c,0x0c,0x16,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e, +0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x10,0x08,0x08,0x0a,0x0a,0x1c,0x14,0x10,0x0e,0x0e,0x00,0x0c,0x0c,0x0c,0x09,0x0e,0x10,0x0f,0x0c,0x0d,0x09,0x06,0x12,0x0e,0x0e,0x08,0x0d,0x0c,0x0b,0x0b,0x0b,0x06,0x0c,0x0a,0x0f,0x0c,0x0e,0x0b,0x0d,0x0b,0x10,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x0b,0x0b,0x0b,0x07,0x0c, +0x0d,0x0e,0x0c,0x08,0x12,0x0e,0x0f,0x0d,0x0f,0x0c,0x0e,0x0c,0x0a,0x11,0x09,0x0a,0x0a,0x0c,0x0e,0x0e,0x0c,0x18,0x0c,0x18,0x08,0x06,0x04,0x0d,0x05,0x03,0x00,0x03,0x05,0x00,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x16,0x0a,0x12,0x0e,0x16,0x11,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x16,0x16,0x15,0x0b,0x15,0x0b,0x15,0x0f,0x10,0x11,0x11,0x12,0x15,0x18,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x10,0x10,0x10,0x10,0x12,0x0e,0x19,0x14,0x0b,0x0b,0x07,0x07,0x07,0x09,0x05,0x0e,0x06,0x06,0x14,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x0f,0x0e, +0x0b,0x0c,0x10,0x06,0x08,0x10,0x10,0x06,0x0d,0x0d,0x0d,0x11,0x10,0x06,0x0a,0x10,0x0f,0x0f,0x0f,0x0e,0x0e,0x10,0x0d,0x13,0x11,0x0d,0x0d,0x0d,0x06,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0f,0x0f,0x0c,0x10,0x0d,0x0d,0x11,0x0d,0x11,0x0d,0x13,0x13,0x13,0x13,0x0f,0x0f,0x0f,0x0e,0x0b,0x0c,0x10,0x07,0x09,0x10,0x07,0x0d,0x0d,0x0d,0x10, +0x0a,0x10,0x0f,0x0f,0x0e,0x10,0x0d,0x13,0x11,0x06,0x0e,0x0d,0x0f,0x10,0x1d,0x00,0x0f,0x0d,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x06,0x00,0x12,0x0f,0x10,0x11,0x0d,0x10,0x12,0x12, +0x0b,0x0f,0x12,0x12,0x10,0x12,0x13,0x13,0x10,0x0d,0x0d,0x12,0x11,0x0e,0x10,0x10,0x10,0x10,0x10,0x12,0x0e,0x0f,0x10,0x10,0x13,0x0f,0x0f,0x0f,0x10,0x14,0x0c,0x0e,0x0e,0x15,0x0d,0x0d,0x13,0x15,0x0f,0x0d,0x19,0x0e,0x0e,0x12,0x0d,0x0d,0x12,0x0d,0x12,0x14,0x15,0x0d,0x13,0x0d,0x10,0x0d,0x0f,0x0e,0x0f,0x0d,0x0f,0x12,0x0d,0x0f, +0x10,0x0d,0x0d,0x0e,0x17,0x0d,0x0d,0x0e,0x0e,0x0a,0x08,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x0d,0x15,0x0c,0x0d,0x15,0x10,0x0d,0x15,0x12,0x12,0x15,0x0e,0x0d,0x15,0x15,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x15,0x0e,0x0d,0x0e,0x15,0x0e,0x0d,0x0d,0x0d,0x15,0x13,0x10,0x11,0x11,0x10,0x11,0x0f,0x10,0x13,0x11,0x10,0x0d,0x13,0x10,0x10, +0x0e,0x10,0x11,0x12,0x11,0x0e,0x11,0x10,0x11,0x10,0x13,0x11,0x11,0x11,0x10,0x0f,0x11,0x10,0x11,0x13,0x10,0x12,0x11,0x02,0x03,0x04,0x05,0x04,0x06,0x08,0x15,0x0e,0x0f,0x0e,0x0e,0x0f,0x0e,0x0e,0x10,0x0e,0x0e,0x07,0x14,0x0e,0x0e,0x0e,0x0d,0x0e,0x0c,0x0e,0x06,0x0e,0x0c,0x0e,0x0a,0x15,0x0d,0x0e,0x0e,0x0e,0x14,0x0e,0x0e,0x09, +0x14,0x0e,0x0e,0x10,0x10,0x05,0x07,0x1b,0x1b,0x1b,0x1b,0x22,0x0d,0x0d,0x06,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x0c,0x0c,0x0c,0x0e,0x0a,0x0a,0x0e,0x0f,0x06,0x08,0x0c,0x0a,0x12,0x10,0x0f,0x0c,0x0f,0x0c,0x0a,0x0b,0x0e,0x0c,0x13,0x0c,0x0b,0x0c,0x11,0x13,0x0a,0x0f,0x0c,0x0e,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x10,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0e,0x0b,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0e,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x0c,0x0f,0x0f,0x06,0x06,0x06,0x06,0x06,0x0e,0x08,0x0c,0x0a,0x0a,0x0a,0x0a,0x10,0x10,0x10,0x10,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x13,0x13,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x11,0x0f,0x0c, +0x0c,0x09,0x0d,0x0a,0x0c,0x0f,0x0f,0x06,0x0c,0x0c,0x12,0x10,0x0b,0x0f,0x0f,0x0c,0x0b,0x0b,0x0b,0x0f,0x0c,0x10,0x0f,0x0c,0x0a,0x0f,0x06,0x0f,0x0b,0x0f,0x06,0x0b,0x0a,0x0e,0x0a,0x0c,0x0a,0x06,0x06,0x08,0x14,0x14,0x0f,0x0c,0x0c,0x0f,0x0c,0x0c,0x0c,0x0a,0x0e,0x0a,0x12,0x0b,0x10,0x10,0x0c,0x0e,0x12,0x0f,0x0f,0x0f,0x0c,0x0c, +0x0b,0x0c,0x0f,0x0c,0x0f,0x0d,0x13,0x14,0x0e,0x11,0x0c,0x0c,0x15,0x0c,0x0a,0x0e,0x0e,0x0f,0x15,0x15,0x10,0x0c,0x0e,0x0a,0x0e,0x0d,0x0d,0x11,0x0d,0x0d,0x10,0x0e,0x0e,0x09,0x0f,0x0f,0x0e,0x0c,0x0c,0x16,0x12,0x0b,0x0d,0x0e,0x0e,0x0f,0x0f,0x11,0x10,0x09,0x16,0x0e,0x0d,0x0e,0x0f,0x0f,0x0c,0x0c,0x06,0x12,0x10,0x10,0x0b,0x11, +0x05,0x05,0x0a,0x0a,0x05,0x05,0x0f,0x0a,0x06,0x12,0x11,0x07,0x05,0x05,0x0b,0x09,0x09,0x06,0x06,0x06,0x09,0x10,0x0b,0x07,0x0f,0x10,0x0e,0x0e,0x0c,0x12,0x0e,0x0e,0x08,0x0b,0x0d,0x0a,0x05,0x06,0x09,0x0d,0x08,0x10,0x10,0x10,0x16,0x12,0x16,0x06,0x00,0x00,0x00,0x00,0x00,0x06,0x12,0x14,0x08,0x08,0x0c,0x08,0x16,0x08,0x16,0x08, +0x16,0x08,0x0e,0x0e,0x0e,0x0c,0x0c,0x1c,0x14,0x1c,0x14,0x20,0x18,0x20,0x18,0x14,0x14,0x14,0x14,0x14,0x14,0x16,0x16,0x0c,0x0c,0x16,0x16,0x0c,0x0c,0x12,0x14,0x08,0x08,0x12,0x14,0x08,0x08,0x12,0x14,0x08,0x08,0x18,0x12,0x14,0x0c,0x0e,0x0e,0x10,0x08,0x10,0x12,0x0c,0x0c,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x06,0x16,0x08,0x12,0x0c,0x0c,0x06,0x0c,0x0c,0x0c,0x0c,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x1c,0x14,0x1c,0x14,0x1c,0x14,0x20,0x18,0x20,0x18,0x14,0x14,0x14,0x18,0x18,0x18,0x18,0x18, +0x18,0x12,0x0c,0x0c,0x12,0x0c,0x0c,0x16,0x0c,0x1a,0x18,0x16,0x0c,0x14,0x0c,0x14,0x0c,0x14,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x10,0x10,0x10,0x10,0x10,0x08,0x10,0x10,0x08,0x08,0x10,0x08,0x10,0x08,0x10,0x0c,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x08,0x08,0x0c,0x08,0x08,0x08, +0x08,0x00,0x1c,0x14,0x20,0x18,0x16,0x0c,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x0e,0x0e,0x0c,0x0c,0x0a,0x1c,0x14,0x18,0x18,0x16,0x16,0x16,0x0e,0x0e,0x0e,0x0e,0x10,0x08,0x10,0x08,0x10,0x08,0x1c,0x14,0x0e,0x10,0x0e,0x0e,0x0e,0x10,0x0e,0x0e,0x1c,0x1c,0x14,0x14,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x08,0x08, +0x08,0x08,0x12,0x14,0x08,0x08,0x12,0x14,0x08,0x08,0x12,0x14,0x08,0x08,0x0e,0x0e,0x0e,0x0e,0x16,0x08,0x16,0x08,0x0e,0x10,0x0e,0x0e,0x1c,0x1c,0x14,0x14,0x1c,0x1c,0x14,0x14,0x14,0x14,0x0c,0x0c,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00,0x06,0x06,0x08,0x06,0x00,0x00,0x00,0x14,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x0a,0x0a,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x12,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x14,0x0e,0x14,0x0e,0x14,0x0e,0x14,0x10,0x10,0x10,0x06,0x06,0x0c,0x0a,0x0e,0x0f,0x0e,0x0d,0x0d,0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0b,0x0d,0x0d,0x0e,0x0f,0x0f,0x10,0x0e,0x0e,0x10,0x0c,0x10,0x12,0x0f,0x12,0x14,0x0f,0x12,0x11, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0d,0x0b,0x0d,0x0f,0x0e,0x10,0x0e,0x10,0x0e,0x0e,0x0e,0x0c,0x0c,0x12,0x10,0x11,0x10,0x10,0x0e,0x0e,0x0e,0x12,0x13,0x12,0x12,0x16,0x16,0x11,0x16,0x16,0x12,0x15,0x14,0x0d,0x12,0x14,0x12,0x0e,0x14,0x12,0x11,0x11,0x0f,0x0f,0x12,0x13,0x11,0x0f,0x11,0x0e,0x0d,0x16,0x16,0x16, +0x14,0x16,0x16,0x10,0x16,0x16,0x11,0x12,0x13,0x12,0x11,0x11,0x0f,0x15,0x12,0x14,0x11,0x11,0x0e,0x12,0x11,0x11,0x14,0x12,0x11,0x16,0x0d,0x0c,0x0d,0x0d,0x0f,0x0f,0x11,0x12,0x0e,0x0e,0x0e,0x0d,0x0e,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0d,0x0e,0x0f,0x0e,0x0e,0x0b,0x0e,0x0e,0x0e,0x0f,0x12,0x14,0x10,0x10,0x0f,0x12, +0x0f,0x10,0x0c,0x0b,0x0e,0x0e,0x0b,0x0c,0x0d,0x0d,0x0c,0x0b,0x0f,0x0b,0x0d,0x0c,0x0d,0x13,0x0e,0x14,0x0d,0x0e,0x0e,0x12,0x08,0x13,0x10,0x11,0x10,0x0d,0x12,0x0e,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0f,0x0f,0x0f,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x0f,0x06,0x06,0x06,0x07,0x07,0x06,0x06,0x06,0x07,0x06,0x06,0x06,0x16,0x16,0x16,0x16,0x0c,0x12,0x11,0x0c,0x0a,0x0c,0x0d,0x0d,0x0c,0x14,0x14,0x15,0x0b,0x18,0x0c,0x14,0x14,0x14,0x13,0x0e,0x0c,0x0c,0x13,0x0e,0x13,0x10,0x0d,0x0b,0x0a,0x18,0x0a,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x21,0x14,0x14,0x0a,0x06,0x0b,0x06,0x0b, +0x06,0x06,0x06,0x0c,0x0e,0x0e,0x0d,0x09,0x09,0x06,0x06,0x06,0x09,0x06,0x0a,0x15,0x05,0x16,0x16,0x16,0x0e,0x0e,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x1c,0x1c,0x10,0x1c,0x1c,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0b,0x0e,0x0b,0x0d,0x0a,0x09,0x08,0x10,0x0d,0x11,0x0a,0x1b,0x15,0x0e,0x0d,0x16,0x13,0x14,0x12,0x18,0x14,0x16,0x13,0x0f,0x0b,0x11,0x0e,0x16,0x12,0x12,0x0f,0x12,0x0e,0x15,0x10,0x15,0x10,0x1a,0x14,0x12,0x0e,0x12,0x0e,0x1d,0x15,0x13,0x00,0x18,0x18,0x18,0x0b,0x00,0x00,0x0e,0x0c,0x11,0x0d, +0x0d,0x0a,0x1a,0x16,0x17,0x15,0x11,0x0e,0x11,0x0e,0x0d,0x0a,0x12,0x0e,0x0d,0x0a,0x14,0x10,0x10,0x0e,0x17,0x14,0x0d,0x0e,0x12,0x12,0x13,0x0b,0x05,0x0b,0x10,0x0a,0x18,0x18,0x06,0x00,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0c,0x10,0x11,0x07,0x05,0x07,0x05,0x11,0x0e,0x12, +0x0f,0x0d,0x0b,0x0d,0x0c,0x0e,0x0e,0x0a,0x0a,0x1b,0x14,0x1c,0x15,0x18,0x14,0x16,0x10,0x16,0x10,0x16,0x10,0x0f,0x0b,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0d,0x08,0x0b,0x06,0x12,0x0e,0x15,0x10,0x20,0x18,0x0d,0x0e,0x11,0x11,0x13,0x15,0x12,0x0e,0x17,0x13,0x0d,0x0a,0x0d,0x0c,0x0f,0x0c,0x16,0x11,0x0f,0x0d,0x0d,0x0e,0x0d,0x0e,0x0c, +0x0a,0x0b,0x09,0x0b,0x09,0x0c,0x0d,0x07,0x10,0x08,0x17,0x10,0x08,0x0e,0x0f,0x0b,0x12,0x0d,0x09,0x08,0x0e,0x0e,0x0e,0x0b,0x06,0x12,0x0e,0x09,0x08,0x0f,0x0b,0x11,0x09,0x13,0x0e,0x0f,0x0b,0x10,0x0e,0x0e,0x0c,0x12,0x0e,0x0e,0x08,0x0d,0x0a,0x12,0x0a,0x0d,0x15,0x0c,0x0d,0x16,0x06,0x1c,0x15,0x16,0x1c,0x15,0x16,0x16,0x15,0x15, +0x16,0x0c,0x0b,0x0f,0x11,0x16,0x11,0x17,0x06,0x0b,0x0e,0x15,0x19,0x11,0x19,0x0f,0x0f,0x13,0x11,0x1b,0x16,0x0c,0x16,0x08,0x16,0x08,0x0e,0x0e,0x0e,0x0e,0x14,0x14,0x14,0x14,0x18,0x0c,0x0c,0x18,0x12,0x0c,0x0c,0x12,0x10,0x08,0x08,0x10,0x0e,0x0e,0x0e,0x0e,0x12,0x08,0x08,0x14,0x12,0x08,0x08,0x14,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x0c,0x0a,0x0e,0x0d,0x12,0x0e,0x0e,0x15,0x10,0x12,0x12,0x14,0x14,0x0e,0x0c,0x18,0x13,0x19,0x15,0x10,0x0e,0x08,0x08,0x0e,0x10,0x0a,0x0e,0x0c,0x0e,0x0c,0x12,0x13,0x0a,0x0e,0x0a,0x05, +0x09,0x0d,0x0d,0x05,0x05,0x04,0x05,0x09,0x09,0x09,0x0b,0x24,0x30,0x08,0x0a,0x03,0x06,0x09,0x0a,0x08,0x0c,0x0d,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x20,0x0d,0x12,0x16,0x16,0x0f,0x0b,0x0e,0x11,0x12,0x0c,0x08,0x10,0x0c,0x10,0x0d,0x10,0x0d,0x0d,0x12,0x0e,0x0e,0x0d,0x12,0x0f,0x14,0x0b, +0x0d,0x0f,0x08,0x0e,0x08,0x08,0x06,0x15,0x0e,0x0e,0x0d,0x0d,0x0e,0x16,0x16,0x17,0x18,0x18,0x0d,0x0c,0x07,0x0c,0x0b,0x0f,0x0b,0x10,0x06,0x0e,0x0e,0x15,0x15,0x0f,0x0d,0x0e,0x0d,0x0d,0x0b,0x0d,0x0b,0x0c,0x07,0x08,0x06,0x05,0x09,0x0e,0x0f,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x00, +0x07,0x07,0x07,0x06,0x06,0x28,0x18,0x15,0x19,0x07,0x07,0x08,0x0a,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x16,0x08,0x08,0x16,0x06,0x0c,0x0c,0x20,0x18,0x18,0x20,0x16,0x0c,0x0c,0x16,0x0c,0x0c,0x0a,0x0a,0x00,0x00,0x09,0x12,0x0e,0x11,0x0e,0x1e,0x19,0x11,0x0d,0x11,0x0d,0x20,0x18,0x12,0x0e,0x09,0x08, +0x0f,0x00,0x10,0x0d,0x08,0x07,0x04,0x0c,0x08,0x08,0x06,0x05,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x05,0x0d,0x0a,0x0e,0x0e,0x0d,0x17,0x13,0x13,0x13,0x14,0x17,0x0f,0x10,0x0e,0x09,0x16,0x1b,0x0b,0x1c,0x0c,0x14,0x16,0x16,0x16,0x0a,0x12,0x18,0x12,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x0d,0x00,0x0e,0x0e,0x0e,0x14,0x0c,0x0c,0x16,0x08,0x08,0x16,0x08,0x08,0x16,0x0c,0x0c,0x00,0x0a,0x14,0x08,0x08,0x18,0x0c,0x0c,0x12,0x0c,0x0c,0x10,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x24,0x24,0x15,0x00,0x00,0x15,0x15,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, +0x0a,0x0a,0x0a,0x0a,0x10,0x0f,0x0f,0x10,0x15,0x0f,0x0f,0x13,0x17,0x10,0x0f,0x1a,0x0f,0x0f,0x16,0x0f,0x10,0x13,0x0f,0x12,0x14,0x16,0x0f,0x12,0x10,0x11,0x0f,0x11,0x0f,0x10,0x10,0x0f,0x13,0x0e,0x10,0x13,0x0f,0x0f,0x0e,0x13,0x0f,0x10,0x10,0x11,0x0b,0x0d,0x0f,0x13,0x13,0x0d,0x00,0x00,0x1b,0x36,0x11,0x00,0x03,0x07,0x08,0x0b, +0x10,0x0f,0x16,0x16,0x06,0x08,0x08,0x0b,0x12,0x06,0x0b,0x06,0x0b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x06,0x06,0x12,0x12,0x12,0x0c,0x1a,0x11,0x0f,0x11,0x13,0x0e,0x0d,0x13,0x13,0x07,0x0a,0x10,0x0d,0x18,0x14,0x14,0x0f,0x14,0x10,0x0e,0x0e,0x13,0x11,0x19,0x10,0x0f,0x0f,0x08,0x0a,0x08,0x12,0x0b,0x07,0x0e,0x10, +0x0c,0x10,0x0e,0x08,0x10,0x0f,0x07,0x07,0x0d,0x07,0x17,0x0f,0x10,0x10,0x10,0x09,0x0b,0x09,0x0f,0x0d,0x14,0x0c,0x0d,0x0c,0x08,0x06,0x08,0x12,0x11,0x11,0x11,0x0e,0x14,0x14,0x13,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0e,0x0e,0x07,0x07,0x07,0x07,0x0f,0x10,0x10,0x10,0x10,0x10,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x0f,0x0f, +0x0c,0x0b,0x0c,0x0f,0x0b,0x18,0x18,0x15,0x08,0x0b,0x13,0x17,0x14,0x16,0x12,0x13,0x13,0x0f,0x10,0x0e,0x11,0x14,0x0f,0x0b,0x0c,0x14,0x16,0x10,0x0c,0x07,0x08,0x12,0x12,0x0f,0x13,0x11,0x0e,0x0e,0x14,0x11,0x11,0x14,0x19,0x19,0x0e,0x1b,0x0a,0x0a,0x06,0x06,0x12,0x10,0x0d,0x0f,0x05,0x0f,0x09,0x09,0x0f,0x0f,0x0a,0x06,0x06,0x0a, +0x21,0x11,0x0e,0x11,0x0e,0x0e,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x13,0x13,0x13,0x07,0x0a,0x09,0x08,0x08,0x05,0x08,0x06,0x09,0x05,0x0a,0x0d,0x07,0x0e,0x0b,0x0f,0x0c,0x06,0x13,0x0f,0x0f,0x0d,0x0f,0x10,0x12,0x12,0x09,0x0a,0x0a,0x19,0x18,0x1a,0x0d,0x13,0x10,0x07,0x0e,0x0b,0x11,0x0c,0x11,0x0c,0x10,0x0b,0x06,0x11,0x0e,0x11, +0x0e,0x13,0x12,0x13,0x0e,0x0e,0x0e,0x0e,0x0d,0x07,0x0d,0x08,0x0d,0x09,0x14,0x0f,0x14,0x0f,0x14,0x10,0x10,0x09,0x10,0x09,0x0e,0x0b,0x0e,0x09,0x0e,0x0c,0x13,0x0f,0x13,0x0f,0x0f,0x0c,0x0f,0x0c,0x0d,0x14,0x14,0x11,0x10,0x0c,0x10,0x0d,0x13,0x0b,0x0d,0x0b,0x1e,0x11,0x0d,0x10,0x06,0x0a,0x16,0x09,0x10,0x0a,0x0a,0x10,0x0a,0x11, +0x0e,0x11,0x0c,0x11,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x10,0x13,0x10,0x13,0x10,0x13,0x0f,0x13,0x0f,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x07,0x10,0x0d,0x0d,0x0d,0x07,0x14,0x0f,0x14,0x0f,0x14,0x10,0x14,0x10,0x10,0x09,0x0e,0x0b,0x0e,0x09,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x19,0x14,0x0f,0x0d,0x07,0x11, +0x0e,0x17,0x16,0x14,0x10,0x06,0x19,0x14,0x19,0x14,0x19,0x14,0x0f,0x0d,0x06,0x0b,0x0f,0x10,0x19,0x19,0x19,0x18,0x0b,0x0b,0x06,0x07,0x07,0x11,0x0f,0x15,0x0a,0x16,0x12,0x16,0x07,0x11,0x0f,0x0e,0x0f,0x13,0x07,0x10,0x11,0x18,0x14,0x0e,0x14,0x13,0x0f,0x0e,0x0e,0x0f,0x10,0x15,0x14,0x07,0x0f,0x11,0x0c,0x10,0x07,0x0f,0x0f,0x0e, +0x0c,0x10,0x10,0x07,0x0e,0x0d,0x10,0x0e,0x0c,0x10,0x10,0x0c,0x0f,0x0f,0x14,0x16,0x07,0x0f,0x10,0x0f,0x16,0x0e,0x13,0x0d,0x11,0x0e,0x07,0x1a,0x1b,0x14,0x10,0x0f,0x13,0x11,0x0f,0x0f,0x0d,0x13,0x0e,0x17,0x0f,0x14,0x14,0x10,0x12,0x18,0x13,0x14,0x13,0x0f,0x11,0x0e,0x0f,0x14,0x10,0x14,0x12,0x1a,0x1a,0x13,0x15,0x10,0x11,0x1c, +0x10,0x0e,0x10,0x0e,0x0a,0x0f,0x0e,0x14,0x0c,0x10,0x10,0x0d,0x0e,0x13,0x10,0x10,0x10,0x10,0x0c,0x0b,0x0d,0x13,0x0c,0x10,0x0f,0x16,0x16,0x10,0x13,0x0e,0x0c,0x16,0x0e,0x0e,0x10,0x0a,0x0c,0x0b,0x07,0x15,0x16,0x0f,0x0d,0x0d,0x10,0x0d,0x0b,0x1b,0x1e,0x11,0x09,0x0a,0x0a,0x0a,0x07,0x0e,0x0b,0x0f,0x15,0x10,0x13,0x10,0x08,0x09, +0x07,0x07,0x0d,0x0d,0x0d,0x0d,0x08,0x08,0x08,0x0d,0x08,0x0d,0x08,0x08,0x08,0x0d,0x0d,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x07,0x07,0x07,0x07,0x14,0x10,0x14, +0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x13,0x0f,0x13,0x0f,0x13,0x10,0x13,0x10,0x13,0x10,0x13,0x10,0x13,0x10,0x0f,0x0d,0x0f,0x0d,0x0f,0x0d,0x0e,0x09,0x0e,0x0e,0x14,0x10,0x07,0x0a,0x07,0x07,0x0e,0x0b,0x19,0x15,0x11,0x0e,0x10,0x0d,0x14,0x10,0x0f,0x0d,0x0f, +0x0d,0x11,0x0d,0x12,0x0f,0x12,0x0f,0x13,0x0e,0x14,0x10,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x07,0x07,0x08,0x08,0x08,0x08,0x0e,0x0e,0x11,0x0e,0x0f,0x10,0x0f,0x10,0x0f,0x10,0x11,0x0c,0x13,0x10,0x13,0x10,0x13,0x10,0x13,0x10,0x13,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0d,0x08,0x13,0x10,0x13, +0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x07,0x07,0x07,0x07,0x10,0x0d,0x10,0x0d,0x10,0x0d,0x0d,0x07,0x0d,0x07,0x0d,0x07,0x0d,0x07,0x18,0x17,0x18,0x17,0x18,0x17,0x14,0x0f,0x14,0x0f,0x14,0x0f,0x14,0x0f,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x0f,0x10,0x0f,0x10,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x0e,0x0b,0x0e, +0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x09,0x0e,0x09,0x0e,0x09,0x0e,0x09,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x11,0x0d,0x11,0x0d,0x19,0x14,0x19,0x14,0x10,0x0c,0x10,0x0c,0x0f,0x0d,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x09,0x14,0x0d,0x0e,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x14,0x14,0x14, +0x14,0x14,0x14,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x13,0x13,0x13,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x15,0x15,0x19,0x19,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x10,0x10,0x10,0x10,0x10,0x10,0x16,0x16,0x1a,0x1a,0x1a,0x1a,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0f,0x0f,0x0f,0x12,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x11,0x11,0x0c,0x0c,0x10,0x10,0x07,0x07,0x10,0x10,0x0f,0x0f,0x16,0x16,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x14,0x14,0x14,0x14,0x14,0x14,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x15,0x15,0x19, +0x19,0x19,0x19,0x19,0x19,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0f,0x0f,0x15,0x15,0x13,0x10,0x10,0x10,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x10,0x10,0x10, +0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x0f,0x0f,0x0f,0x0f,0x12,0x12,0x11,0x10,0x10,0x10,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x17,0x16,0x14,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x11,0x0f,0x10,0x10,0x10,0x11,0x11,0x0d,0x13,0x14,0x0f,0x10,0x10,0x0e,0x0f,0x0d,0x13,0x11,0x18,0x08,0x08, +0x10,0x0d,0x07,0x0d,0x18,0x14,0x10,0x14,0x1a,0x15,0x10,0x10,0x10,0x0e,0x0b,0x0e,0x08,0x09,0x0e,0x09,0x0e,0x14,0x13,0x0f,0x0e,0x0f,0x0c,0x10,0x10,0x0c,0x0b,0x0f,0x0f,0x0a,0x0b,0x0f,0x06,0x0a,0x0c,0x08,0x21,0x1f,0x1c,0x17,0x13,0x0e,0x1d,0x1a,0x16,0x11,0x0e,0x07,0x07,0x14,0x10,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13, +0x0f,0x0e,0x11,0x0e,0x11,0x0e,0x17,0x16,0x13,0x10,0x13,0x10,0x10,0x0d,0x14,0x10,0x14,0x10,0x10,0x0c,0x07,0x21,0x1f,0x1c,0x13,0x10,0x1b,0x13,0x14,0x0f,0x11,0x0e,0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x07,0x07,0x07,0x07,0x14,0x10,0x14,0x10,0x10,0x09,0x10,0x09,0x13,0x0f,0x13,0x0f,0x0e,0x0c,0x13,0x0f,0x14,0x10,0x0f,0x0f,0x0c,0x11, +0x0e,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x0f,0x0d,0x10,0x0e,0x0f,0x0f,0x10,0x0e,0x10,0x10,0x10,0x0d,0x0d,0x10,0x10,0x0e,0x11,0x0b,0x0b,0x0e,0x0f,0x07,0x10,0x10,0x0e,0x0d,0x0c,0x0f,0x0f,0x0f,0x07,0x08,0x09,0x08,0x0a,0x07,0x10,0x17,0x17,0x17,0x0f,0x0f,0x10,0x10,0x13,0x13,0x11,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c, +0x0c,0x0b,0x07,0x07,0x08,0x08,0x09,0x09,0x10,0x10,0x0f,0x0d,0x14,0x0d,0x0b,0x0c,0x0e,0x0c,0x0c,0x0a,0x0a,0x0a,0x0d,0x11,0x0d,0x0f,0x0e,0x0f,0x07,0x0d,0x0a,0x10,0x0a,0x0a,0x19,0x1a,0x1a,0x11,0x0d,0x13,0x15,0x10,0x0f,0x0d,0x0d,0x0f,0x10,0x0f,0x12,0x0f,0x11,0x16,0x0f,0x13,0x10,0x10,0x0c,0x0d,0x0c,0x10,0x0e,0x11,0x0d,0x18, +0x17,0x10,0x0e,0x11,0x0e,0x10,0x0c,0x10,0x0d,0x12,0x10,0x0f,0x0b,0x0f,0x10,0x0c,0x07,0x14,0x0d,0x0d,0x17,0x12,0x11,0x10,0x19,0x13,0x12,0x0d,0x18,0x13,0x14,0x0f,0x19,0x14,0x0f,0x0c,0x15,0x15,0x14,0x10,0x13,0x10,0x13,0x10,0x23,0x1e,0x16,0x12,0x1e,0x18,0x17,0x12,0x10,0x0c,0x0e,0x0b,0x0b,0x00,0x00,0x1b,0x1a,0x10,0x0e,0x0f, +0x10,0x0f,0x0e,0x0f,0x0c,0x10,0x0d,0x13,0x10,0x17,0x12,0x1b,0x17,0x13,0x0f,0x11,0x0c,0x0e,0x0b,0x18,0x12,0x13,0x10,0x17,0x11,0x17,0x11,0x07,0x17,0x14,0x10,0x0e,0x13,0x10,0x12,0x0f,0x11,0x0e,0x11,0x0e,0x17,0x16,0x0e,0x0e,0x13,0x0e,0x13,0x0e,0x17,0x14,0x0f,0x0c,0x0e,0x0c,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x11,0x0c, +0x0f,0x0d,0x0f,0x0d,0x0f,0x0d,0x12,0x0f,0x15,0x13,0x0f,0x10,0x17,0x17,0x16,0x13,0x0f,0x0d,0x18,0x15,0x1b,0x17,0x13,0x0e,0x12,0x10,0x10,0x0f,0x0f,0x0e,0x10,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x10,0x09,0x09,0x04,0x06,0x06,0x06,0x08,0x0b,0x08,0x06,0x0a,0x06,0x06,0x06,0x09,0x09, +0x06,0x06,0x10,0x10,0x10,0x10,0x09,0x08,0x07,0x09,0x08,0x07,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x08,0x04,0x07,0x08,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x0b,0x09,0x07,0x07,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f, +0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x11,0x08,0x11,0x09,0x10,0x10,0x09,0x09, +0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x10,0x0d,0x12,0x16,0x0d,0x0c,0x0f,0x0f,0x0b,0x0b,0x07,0x08,0x0d,0x0b,0x13,0x10,0x10,0x0d,0x11,0x11,0x11,0x19,0x0e,0x10,0x10,0x0c,0x0c,0x0c,0x0b,0x0e,0x0f,0x13,0x0f,0x0d,0x14,0x0c,0x0b, +0x0b,0x0e,0x0a,0x0d,0x10,0x0c,0x10,0x0f,0x0a,0x0d,0x09,0x0a,0x0b,0x08,0x08,0x0b,0x0b,0x05,0x06,0x0a,0x08,0x0e,0x0c,0x0c,0x0c,0x0a,0x09,0x09,0x08,0x0b,0x0e,0x09,0x09,0x09,0x0d,0x09,0x09,0x08,0x08,0x07,0x07,0x09,0x04,0x08,0x0d,0x09,0x09,0x07,0x09,0x09,0x09,0x05,0x09,0x09,0x0d,0x08,0x09,0x09,0x08,0x09,0x0b,0x08,0x04,0x06, +0x09,0x08,0x09,0x08,0x09,0x0b,0x08,0x10,0x04,0x09,0x0f,0x18,0x11,0x0f,0x0f,0x17,0x11,0x17,0x14,0x0e,0x10,0x0e,0x0c,0x1e,0x0c,0x10,0x18,0x19,0x19,0x11,0x11,0x11,0x0c,0x0d,0x0e,0x0b,0x0c,0x0e,0x05,0x00,0x00,0x00,0x00,0x10,0x11,0x11,0x11,0x0d,0x0a,0x10,0x10,0x08,0x17,0x0f,0x10,0x09,0x09,0x0d,0x09,0x0c,0x10,0x0c,0x10,0x18, +0x11,0x09,0x07,0x10,0x0e,0x10,0x10,0x10,0x08,0x10,0x0d,0x07,0x17,0x0f,0x10,0x09,0x0b,0x0c,0x0d,0x0c,0x0c,0x0e,0x10,0x10,0x0e,0x0c,0x0c,0x14,0x07,0x0d,0x07,0x0f,0x0c,0x09,0x07,0x07,0x09,0x07,0x05,0x04,0x09,0x09,0x04,0x05,0x05,0x05,0x04,0x05,0x04,0x06,0x0d,0x0d,0x09,0x09,0x0a,0x09,0x0a,0x06,0x04,0x05,0x09,0x09,0x09,0x09, +0x08,0x07,0x07,0x08,0x07,0x09,0x00,0x00,0x00,0x00,0x06,0x09,0x08,0x09,0x07,0x08,0x0f,0x0f,0x0f,0x0f,0x09,0x00,0x00,0x00,0x00,0x0d,0x08,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x07,0x07,0x07,0x07,0x0f,0x0f,0x0f,0x0f,0x24,0x24,0x24,0x24, +0x24,0x24,0x24,0x24,0x24,0x24,0x0f,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x05,0x0a,0x0a,0x09,0x0a,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x0a,0x09,0x0a,0x0a,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x15,0x11,0x13,0x10,0x14,0x11,0x19,0x14,0x0f,0x0a,0x0e,0x12,0x0e,0x16,0x13,0x00,0x00,0x00, +0x00,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x10,0x10,0x10,0x10,0x10,0x10,0x17,0x17,0x1b,0x0b,0x07,0x0e,0x10,0x0b,0x0e,0x0e,0x10,0x10,0x0e,0x1b,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x0e,0x11,0x0e,0x0e,0x0e,0x09,0x10,0x09,0x14,0x12,0x0e,0x09,0x17,0x0e,0x17,0x07,0x09,0x10,0x10,0x11,0x11,0x11,0x10,0x10,0x10,0x17,0x07,0x10,0x07, +0x0e,0x0b,0x07,0x07,0x0e,0x07,0x14,0x07,0x19,0x0e,0x19,0x19,0x10,0x10,0x10,0x0e,0x0e,0x0b,0x0b,0x20,0x20,0x24,0x24,0x17,0x17,0x0e,0x0e,0x05,0x1b,0x14,0x17,0x12,0x10,0x12,0x0e,0x0e,0x14,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x07,0x11,0x00,0x11,0x11,0x11,0x09,0x0e,0x0e,0x19,0x09,0x19,0x09,0x10,0x12,0x10,0x0b, +0x19,0x0e,0x19,0x0e,0x14,0x17,0x09,0x0e,0x0e,0x0b,0x07,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x10,0x0e,0x12,0x11,0x19,0x09,0x0e,0x0b,0x12,0x0e,0x09,0x0e,0x0e,0x0e,0x19,0x09,0x19,0x09,0x07,0x10,0x0b,0x1b,0x0e,0x0e,0x11,0x11,0x1b,0x0e,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x11,0x11,0x14,0x11,0x00,0x00,0x07,0x07,0x07,0x07,0x07,0x07, +0x0b,0x0b,0x0e,0x0e,0x14,0x17,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x12,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0e,0x0b,0x0b,0x0b,0x20,0x17,0x20,0x17,0x20,0x17,0x24,0x1b,0x24,0x1b,0x17,0x0e,0x10, +0x10,0x10,0x1b,0x1b,0x0e,0x0e,0x1b,0x0e,0x0e,0x1b,0x0e,0x0e,0x1b,0x0e,0x0e,0x14,0x14,0x1d,0x1b,0x19,0x0e,0x17,0x0e,0x17,0x0e,0x17,0x0e,0x19,0x0e,0x19,0x0e,0x19,0x0e,0x19,0x0e,0x19,0x0e,0x12,0x09,0x12,0x09,0x12,0x09,0x12,0x09,0x12,0x09,0x12,0x12,0x09,0x12,0x09,0x0f,0x12,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x17, +0x19,0x14,0x17,0x09,0x0e,0x14,0x17,0x14,0x17,0x00,0x00,0x00,0x00,0x00,0x1e,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0b,0x00,0x00,0x10,0x00,0x00,0x00,0x20,0x17,0x24,0x1b,0x0e,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x19,0x19,0x0a,0x10,0x10,0x10,0x21,0x16, +0x0e,0x29,0x1d,0x09,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0e,0x0b,0x0b,0x14,0x12,0x12,0x0e,0x00,0x00,0x00,0x09,0x09,0x09,0x09,0x22,0x29,0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x0b,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x10,0x10,0x10,0x10,0x12,0x10, +0x0e,0x0e,0x0b,0x20,0x17,0x0e,0x10,0x10,0x10,0x0e,0x10,0x10,0x10,0x0e,0x10,0x10,0x10,0x1b,0x0e,0x0e,0x1b,0x0e,0x0e,0x19,0x0e,0x0e,0x19,0x0e,0x0e,0x19,0x0e,0x0e,0x10,0x10,0x10,0x10,0x12,0x09,0x12,0x09,0x12,0x09,0x12,0x12,0x09,0x09,0x0b,0x0b,0x20,0x17,0x11,0x10,0x10,0x00,0x0e,0x0e,0x0e,0x0a,0x0f,0x13,0x11,0x0e,0x0e,0x0a, +0x07,0x14,0x10,0x10,0x09,0x0f,0x0d,0x0d,0x0c,0x0d,0x07,0x0e,0x0b,0x11,0x0d,0x10,0x0c,0x0f,0x0c,0x12,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x0c,0x0d,0x0d,0x08,0x0e,0x0f,0x10,0x0e,0x09,0x14,0x10,0x11,0x0e,0x11,0x0d,0x0f,0x0e,0x0b,0x13,0x0a,0x0b,0x0b,0x0d,0x10,0x10,0x0e,0x1b,0x0e,0x1b,0x09,0x07,0x05,0x0f, +0x06,0x03,0x00,0x04,0x06,0x00,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x19,0x0b,0x14,0x10,0x19,0x14,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x17,0x0d,0x17,0x0d,0x17,0x11,0x12,0x13,0x13,0x15,0x17,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x12,0x12,0x12,0x12,0x14,0x10,0x1d, +0x16,0x0d,0x0d,0x08,0x08,0x08,0x0a,0x06,0x0f,0x06,0x06,0x17,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x11,0x0f,0x0c,0x0d,0x12,0x07,0x09,0x12,0x12,0x07,0x0f,0x0f,0x0f,0x13,0x12,0x07,0x0b,0x12,0x10,0x11,0x11,0x0f,0x10,0x12,0x0f,0x15,0x14,0x0e,0x0e,0x0e, +0x06,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x11,0x0d,0x12,0x0f,0x0f,0x13,0x0f,0x14,0x0f,0x15,0x15,0x15,0x15,0x11,0x11,0x11,0x0f,0x0c,0x0d,0x12,0x08,0x0a,0x12,0x08,0x0f,0x0f,0x0f,0x12,0x0b,0x12,0x11,0x11,0x10,0x12,0x0f,0x15,0x14,0x07,0x0f,0x0f,0x11,0x12,0x20,0x00,0x11,0x0f,0x12,0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x07,0x00,0x14,0x11,0x12,0x13,0x0f,0x12,0x14,0x15,0x0d,0x11,0x14,0x14,0x12,0x14,0x16,0x15,0x12,0x0f,0x0f,0x14,0x13,0x0f,0x13,0x12,0x12,0x12,0x13,0x14,0x10,0x11,0x12,0x12,0x15,0x11,0x11,0x11, +0x12,0x16,0x0d,0x10,0x10,0x18,0x0f,0x0f,0x15,0x18,0x10,0x0f,0x1c,0x0f,0x0f,0x14,0x0f,0x0f,0x14,0x0f,0x14,0x16,0x18,0x0f,0x15,0x0f,0x12,0x0f,0x11,0x0f,0x11,0x0f,0x10,0x15,0x0f,0x11,0x12,0x0f,0x0f,0x10,0x1a,0x0f,0x0f,0x10,0x10,0x0b,0x09,0x0f,0x0f,0x0f,0x0e,0x0f,0x18,0x0f,0x18,0x0d,0x0f,0x18,0x12,0x0f,0x18,0x14,0x14,0x18, +0x10,0x0f,0x18,0x18,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x18,0x18,0x10,0x0f,0x0f,0x18,0x10,0x0f,0x0f,0x0f,0x18,0x15,0x13,0x13,0x13,0x13,0x13,0x11,0x13,0x15,0x13,0x12,0x0f,0x15,0x12,0x13,0x0f,0x12,0x13,0x14,0x13,0x10,0x13,0x12,0x14,0x12,0x15,0x13,0x13,0x14,0x12,0x11,0x13,0x12,0x13,0x15,0x12,0x14,0x14,0x03,0x03,0x04,0x05,0x04, +0x07,0x09,0x17,0x0f,0x11,0x10,0x0f,0x11,0x0f,0x0f,0x11,0x10,0x0f,0x08,0x17,0x10,0x0f,0x0f,0x0f,0x10,0x0e,0x10,0x07,0x10,0x0e,0x0f,0x0b,0x17,0x0f,0x0f,0x0f,0x10,0x16,0x0f,0x10,0x0b,0x16,0x10,0x10,0x13,0x12,0x06,0x08,0x1f,0x1e,0x1e,0x1f,0x26,0x0f,0x0f,0x07,0x0f,0x0b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0d,0x0e,0x10,0x0c,0x0b,0x0f,0x11,0x07,0x08,0x0d,0x0b,0x14,0x11,0x11,0x0d,0x11,0x0d,0x0b,0x0c,0x10,0x0e,0x16,0x0e,0x0d,0x0d,0x13, +0x15,0x0b,0x11,0x0d,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x07,0x07,0x07,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x10,0x10,0x10,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x10,0x10,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0e,0x11,0x11,0x07,0x07,0x07,0x07,0x07,0x0f,0x08,0x0d,0x0b,0x0b,0x0b,0x0b,0x11,0x11, +0x11,0x12,0x11,0x11,0x11,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x10,0x10,0x10,0x10,0x16,0x16,0x16,0x16,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x13,0x11,0x0e,0x0d,0x0b,0x0e,0x0c,0x0d,0x11,0x11,0x07,0x0d,0x0e,0x14,0x11,0x0c,0x11,0x11,0x0d,0x0c,0x0c,0x0d,0x11,0x0e,0x12,0x11,0x0e,0x0c,0x11,0x07,0x11, +0x0d,0x11,0x07,0x0d,0x0c,0x0f,0x0b,0x0e,0x0b,0x07,0x07,0x08,0x16,0x16,0x10,0x0d,0x0d,0x10,0x0e,0x0d,0x0d,0x0b,0x10,0x0c,0x14,0x0c,0x11,0x11,0x0d,0x0f,0x14,0x11,0x11,0x11,0x0d,0x0e,0x0c,0x0d,0x11,0x0e,0x11,0x0f,0x16,0x16,0x0f,0x13,0x0d,0x0e,0x17,0x0d,0x0b,0x10,0x10,0x11,0x18,0x18,0x12,0x0e,0x0f,0x0b,0x0f,0x0f,0x0f,0x13, +0x0e,0x0e,0x13,0x10,0x10,0x0a,0x11,0x11,0x0f,0x0d,0x0d,0x18,0x14,0x0d,0x0e,0x10,0x10,0x11,0x11,0x13,0x13,0x0a,0x19,0x10,0x0f,0x0f,0x11,0x11,0x0e,0x0e,0x07,0x14,0x13,0x13,0x0d,0x13,0x06,0x06,0x0c,0x0c,0x06,0x06,0x11,0x0b,0x07,0x14,0x13,0x08,0x06,0x06,0x0c,0x0a,0x0a,0x06,0x06,0x06,0x0a,0x12,0x0d,0x08,0x10,0x13,0x10,0x10, +0x0d,0x14,0x0f,0x10,0x09,0x0c,0x0e,0x0b,0x06,0x06,0x0b,0x0e,0x09,0x12,0x12,0x12,0x19,0x14,0x19,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x14,0x17,0x09,0x09,0x0e,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x10,0x10,0x10,0x0e,0x0e,0x20,0x17,0x20,0x17,0x24,0x1b,0x24,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x19,0x19,0x0e,0x0e,0x19,0x19,0x0e, +0x0e,0x14,0x17,0x09,0x09,0x14,0x17,0x09,0x09,0x14,0x17,0x09,0x09,0x1b,0x14,0x17,0x0e,0x10,0x10,0x12,0x09,0x12,0x14,0x0e,0x0e,0x09,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x19,0x09,0x14,0x0e,0x0e,0x07,0x0e,0x0e,0x0e,0x0e,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09, +0x19,0x09,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x20,0x17,0x20,0x17,0x20,0x17,0x24,0x1b,0x24,0x1b,0x17,0x17,0x17,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x0e,0x0e,0x14,0x0e,0x0e,0x19,0x0e,0x1d,0x1b,0x19,0x0e,0x17,0x0e,0x17,0x0e,0x17,0x0e,0x19,0x0e,0x19,0x0e,0x19,0x0e,0x19,0x0e,0x19, +0x0e,0x19,0x0e,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x09,0x09,0x12,0x09,0x12,0x09,0x12,0x0e,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x09,0x09,0x0e,0x09,0x09,0x09,0x09,0x00,0x20,0x17,0x24,0x1b,0x19,0x0e,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x10,0x10,0x0e,0x0e,0x0b,0x20,0x17,0x1b, +0x1b,0x19,0x19,0x19,0x10,0x10,0x10,0x10,0x12,0x09,0x12,0x09,0x12,0x09,0x20,0x17,0x10,0x12,0x10,0x10,0x10,0x12,0x10,0x10,0x20,0x20,0x17,0x17,0x0b,0x0b,0x10,0x10,0x10,0x10,0x09,0x09,0x09,0x09,0x14,0x17,0x09,0x09,0x14,0x17,0x09,0x09,0x14,0x17,0x09,0x09,0x10,0x10,0x10,0x10,0x19,0x09,0x19,0x09,0x10,0x12,0x10,0x10,0x20,0x20, +0x17,0x17,0x20,0x20,0x17,0x17,0x17,0x17,0x0e,0x0e,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x07,0x07,0x09,0x07,0x00,0x00,0x00,0x17,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x19,0x19,0x19,0x19, +0x19,0x19,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x14,0x12,0x12,0x12,0x12,0x12,0x12,0x10,0x17,0x10,0x17,0x10,0x17,0x10,0x17,0x12,0x12,0x12,0x07,0x07,0x0e,0x0b,0x10,0x11, +0x0f,0x0f,0x0f,0x10,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0c,0x0f,0x0e,0x10,0x10,0x11,0x12,0x10,0x0f,0x12,0x0e,0x12,0x14,0x11,0x14,0x16,0x11,0x15,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0c,0x0f,0x10,0x10,0x12,0x0f,0x11,0x10,0x10,0x10,0x0e,0x0e,0x14,0x12,0x13,0x12,0x12, +0x10,0x10,0x10,0x14,0x15,0x14,0x15,0x19,0x19,0x13,0x19,0x19,0x14,0x18,0x17,0x0f,0x15,0x17,0x15,0x10,0x17,0x14,0x13,0x13,0x10,0x11,0x14,0x15,0x13,0x11,0x13,0x10,0x0e,0x19,0x19,0x19,0x16,0x19,0x19,0x12,0x19,0x19,0x13,0x15,0x15,0x14,0x14,0x14,0x11,0x18,0x15,0x16,0x13,0x13,0x10,0x14,0x13,0x13,0x17,0x14,0x14,0x18,0x0f,0x0e, +0x0f,0x0e,0x11,0x11,0x13,0x14,0x10,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x0f,0x0f,0x0f,0x0e,0x0e,0x10,0x11,0x10,0x10,0x0c,0x0f,0x0f,0x10,0x10,0x15,0x17,0x12,0x12,0x11,0x15,0x11,0x12,0x0e,0x0d,0x10,0x0f,0x0d,0x0d,0x0f,0x0f,0x0d,0x0d,0x11,0x0c,0x0f,0x0d,0x0f,0x15,0x0f,0x16,0x0e,0x0f,0x0f,0x14,0x08,0x15,0x13,0x13, +0x12,0x0f,0x14,0x10,0x15,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0c,0x0c,0x0c,0x0c,0x0d,0x0c,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x11,0x07,0x07,0x07,0x08,0x08,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x0d,0x14,0x14,0x0d,0x0b,0x0d,0x0e,0x0f,0x0d, +0x17,0x16,0x17,0x0c,0x1b,0x0d,0x17,0x17,0x17,0x16,0x0f,0x0d,0x0d,0x15,0x10,0x15,0x12,0x0e,0x0c,0x0b,0x1c,0x0b,0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x25,0x17,0x17,0x0c,0x07,0x0c,0x06,0x0c,0x06,0x06,0x06,0x0d,0x10,0x10,0x0f,0x0a,0x0a,0x06,0x06,0x06,0x0a,0x06,0x0b,0x17,0x06,0x18,0x18,0x18,0x10,0x10,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x20,0x20,0x12,0x20,0x20,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x0d,0x10,0x0d,0x0e,0x0b,0x0a,0x09,0x13,0x0f,0x13,0x0c,0x1e,0x18,0x10,0x0f,0x19,0x15,0x17,0x14,0x1c,0x16, +0x19,0x15,0x11,0x0d,0x14,0x10,0x19,0x14,0x14,0x10,0x14,0x10,0x17,0x12,0x18,0x12,0x1e,0x17,0x14,0x10,0x14,0x10,0x21,0x18,0x15,0x00,0x1b,0x1b,0x1b,0x0d,0x00,0x00,0x10,0x0e,0x13,0x0f,0x0e,0x0b,0x1d,0x18,0x1a,0x17,0x13,0x10,0x13,0x10,0x0e,0x0b,0x14,0x10,0x0e,0x0b,0x16,0x12,0x12,0x0f,0x1a,0x16,0x0f,0x10,0x14,0x14,0x16,0x0c, +0x05,0x0c,0x12,0x0c,0x1b,0x1b,0x07,0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x0b,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, +0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x14,0x14, +0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0d,0x12,0x14,0x08,0x06,0x08,0x06,0x13,0x0f,0x14,0x11,0x0f,0x0d,0x0e,0x0d,0x10,0x0f,0x0b,0x0b,0x1e,0x16,0x1f,0x18,0x1b,0x17,0x18,0x12,0x18,0x12,0x18,0x12,0x11,0x0c,0x10,0x0d,0x10,0x0d,0x10, +0x0d,0x0f,0x08,0x0d,0x07,0x14,0x10,0x17,0x12,0x24,0x1b,0x0f,0x10,0x13,0x13,0x16,0x17,0x14,0x10,0x1a,0x15,0x0f,0x0b,0x0f,0x0d,0x11,0x0d,0x19,0x14,0x11,0x0e,0x0f,0x10,0x0f,0x10,0x0d,0x0b,0x0d,0x0a,0x0d,0x0a,0x0e,0x0e,0x08,0x12,0x09,0x1a,0x12,0x09,0x10,0x11,0x0c,0x14,0x0f,0x0a,0x09,0x10,0x10,0x10,0x0d,0x07,0x15,0x10,0x0a, +0x09,0x11,0x0c,0x13,0x0a,0x15,0x10,0x11,0x0c,0x13,0x10,0x10,0x0d,0x14,0x0f,0x10,0x09,0x0e,0x0b,0x14,0x0b,0x0e,0x17,0x0d,0x0f,0x18,0x07,0x1f,0x18,0x18,0x20,0x18,0x19,0x19,0x18,0x18,0x19,0x0e,0x0d,0x11,0x13,0x18,0x13,0x19,0x07,0x0c,0x10,0x17,0x1c,0x13,0x1c,0x11,0x11,0x15,0x13,0x1f,0x19,0x0e,0x19,0x09,0x19,0x09,0x10,0x10, +0x10,0x10,0x17,0x17,0x17,0x17,0x1b,0x0e,0x0e,0x1b,0x14,0x0e,0x0e,0x14,0x12,0x09,0x09,0x12,0x10,0x10,0x10,0x10,0x14,0x09,0x09,0x17,0x14,0x09,0x09,0x17,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2a, +0x0e,0x0b,0x0f,0x0e,0x14,0x10,0x10,0x18,0x12,0x14,0x14,0x16,0x16,0x10,0x0d,0x1b,0x16,0x1c,0x17,0x13,0x10,0x08,0x08,0x10,0x11,0x0b,0x10,0x0e,0x10,0x0d,0x14,0x16,0x0b,0x10,0x0c,0x06,0x0a,0x0e,0x0f,0x06,0x06,0x05,0x06,0x0a,0x0a,0x0a,0x0c,0x28,0x36,0x09,0x0b,0x04,0x07,0x0a,0x0c,0x09,0x0d,0x0e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0d,0x0d,0x0d,0x24,0x0f,0x15,0x19,0x18,0x11,0x0c,0x0f,0x13,0x14,0x0d,0x08,0x12,0x0e,0x12,0x0f,0x12,0x0e,0x0f,0x14,0x10,0x10,0x0e,0x14,0x11,0x16,0x0c,0x0e,0x11,0x08,0x10,0x09,0x09,0x07,0x18,0x10,0x0f,0x0e,0x0e,0x10,0x19,0x19,0x19,0x1b,0x1b,0x0f,0x0d,0x08,0x0e,0x0c,0x10,0x0c,0x12,0x07,0x0f, +0x10,0x17,0x17,0x11,0x0f,0x10,0x0f,0x0e,0x0c,0x0e,0x0c,0x0d,0x08,0x09,0x07,0x06,0x0a,0x10,0x11,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x00,0x08,0x08,0x08,0x07,0x07,0x2d,0x1b,0x18,0x1c,0x08,0x08,0x09,0x0b,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x19,0x09, +0x09,0x19,0x07,0x0e,0x0e,0x24,0x1b,0x1b,0x24,0x19,0x0e,0x0e,0x19,0x0e,0x0e,0x0b,0x0b,0x00,0x00,0x0a,0x14,0x10,0x13,0x10,0x22,0x1c,0x13,0x0f,0x13,0x0f,0x24,0x1b,0x14,0x10,0x0a,0x09,0x11,0x00,0x12,0x0f,0x09,0x08,0x04,0x0d,0x09,0x09,0x07,0x05,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x0e,0x0c,0x10,0x0f,0x0f,0x1a, +0x16,0x16,0x15,0x16,0x19,0x11,0x13,0x10,0x0b,0x19,0x1e,0x0c,0x1f,0x0e,0x17,0x19,0x19,0x19,0x0b,0x14,0x1b,0x14,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x10,0x10,0x10,0x17,0x0e,0x0e,0x19,0x09,0x09,0x19,0x09,0x09,0x19,0x0d,0x0d,0x00,0x0b,0x17,0x09,0x09,0x1b,0x0e,0x0e,0x14,0x0e, +0x0e,0x12,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x29,0x29,0x18,0x00,0x00,0x18,0x18,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x12,0x11,0x11,0x12,0x18,0x11,0x11,0x16,0x1a,0x12,0x11,0x1d,0x11,0x11,0x19,0x11,0x12,0x15,0x11,0x15,0x17,0x19,0x11,0x15, +0x12,0x13,0x11,0x13,0x11,0x12,0x13,0x11,0x15,0x10,0x12,0x15,0x11,0x11,0x0f,0x15,0x11,0x12,0x12,0x13,0x0c,0x0e,0x11,0x15,0x15,0x0f,0x00,0x00,0x1d,0x3a,0x13,0x00,0x03,0x08,0x08,0x0b,0x11,0x10,0x18,0x17,0x07,0x09,0x09,0x0c,0x14,0x06,0x0c,0x06,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x06,0x06,0x14,0x14,0x14, +0x0d,0x1c,0x13,0x11,0x12,0x14,0x0f,0x0e,0x14,0x15,0x08,0x0a,0x11,0x0e,0x1a,0x16,0x16,0x10,0x16,0x11,0x0f,0x0f,0x14,0x12,0x1b,0x11,0x10,0x11,0x09,0x0b,0x09,0x14,0x0c,0x08,0x0f,0x11,0x0d,0x11,0x0f,0x09,0x11,0x10,0x07,0x07,0x0e,0x07,0x19,0x10,0x11,0x11,0x11,0x0a,0x0c,0x0a,0x10,0x0e,0x15,0x0d,0x0e,0x0d,0x09,0x07,0x09,0x14, +0x13,0x13,0x12,0x0f,0x16,0x16,0x14,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0f,0x0f,0x0f,0x0f,0x07,0x07,0x07,0x07,0x10,0x11,0x11,0x11,0x11,0x11,0x10,0x10,0x10,0x10,0x0b,0x0b,0x10,0x10,0x0d,0x0c,0x0d,0x10,0x0c,0x1a,0x1a,0x16,0x08,0x0c,0x14,0x19,0x16,0x18,0x14,0x14,0x14,0x10,0x11,0x10,0x12,0x16,0x10,0x0b,0x0c,0x16,0x18,0x11, +0x0d,0x08,0x08,0x14,0x13,0x10,0x14,0x13,0x0f,0x0f,0x15,0x13,0x13,0x16,0x1b,0x1b,0x0f,0x1d,0x0b,0x0b,0x07,0x07,0x14,0x11,0x0e,0x10,0x05,0x10,0x09,0x09,0x10,0x10,0x0b,0x06,0x07,0x0b,0x23,0x13,0x0f,0x13,0x0f,0x0f,0x08,0x08,0x08,0x08,0x16,0x16,0x16,0x14,0x14,0x14,0x07,0x0b,0x0a,0x09,0x09,0x06,0x08,0x06,0x09,0x05,0x0b,0x0e, +0x08,0x0f,0x0c,0x11,0x0d,0x07,0x14,0x10,0x10,0x0e,0x10,0x11,0x14,0x14,0x0a,0x0b,0x0b,0x1b,0x1a,0x1c,0x0e,0x14,0x11,0x08,0x0f,0x0c,0x12,0x0d,0x12,0x0d,0x11,0x0c,0x06,0x13,0x0f,0x13,0x0f,0x14,0x14,0x14,0x0f,0x0f,0x0f,0x0f,0x0e,0x07,0x0e,0x09,0x0e,0x09,0x16,0x10,0x16,0x10,0x16,0x11,0x11,0x0a,0x11,0x0a,0x0f,0x0c,0x0f,0x0a, +0x0f,0x0d,0x14,0x10,0x14,0x10,0x11,0x0d,0x11,0x0d,0x0e,0x16,0x16,0x12,0x11,0x0d,0x11,0x0e,0x14,0x0c,0x0e,0x0b,0x20,0x12,0x0e,0x12,0x07,0x0b,0x17,0x09,0x12,0x0a,0x0a,0x12,0x0a,0x13,0x0f,0x12,0x0d,0x12,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x14,0x11,0x14,0x11,0x14,0x11,0x15,0x10,0x15,0x10,0x08,0x07,0x08,0x07,0x08,0x07,0x08, +0x07,0x0a,0x07,0x11,0x0e,0x0e,0x0e,0x07,0x16,0x10,0x16,0x10,0x16,0x11,0x16,0x11,0x11,0x0a,0x0f,0x0c,0x0f,0x0a,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x1b,0x15,0x10,0x0e,0x07,0x13,0x0f,0x19,0x18,0x16,0x11,0x06,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x10,0x0e,0x07,0x0c,0x10,0x11,0x1b,0x1b,0x1b,0x1a,0x0b,0x0b,0x06,0x08,0x08,0x13, +0x11,0x16,0x0b,0x17,0x13,0x18,0x08,0x13,0x11,0x0f,0x11,0x15,0x08,0x11,0x12,0x1a,0x16,0x0f,0x16,0x15,0x10,0x0f,0x0f,0x10,0x11,0x17,0x16,0x08,0x10,0x12,0x0d,0x11,0x08,0x10,0x10,0x0f,0x0d,0x11,0x11,0x08,0x0f,0x0e,0x11,0x0f,0x0d,0x11,0x11,0x0d,0x10,0x10,0x16,0x17,0x08,0x10,0x11,0x10,0x17,0x0f,0x14,0x0e,0x12,0x0f,0x08,0x1c, +0x1d,0x15,0x11,0x10,0x15,0x13,0x11,0x11,0x0e,0x14,0x0f,0x19,0x10,0x16,0x16,0x11,0x14,0x1a,0x15,0x16,0x15,0x10,0x12,0x0f,0x10,0x15,0x11,0x16,0x13,0x1c,0x1c,0x14,0x17,0x11,0x12,0x1e,0x11,0x0f,0x11,0x0f,0x0b,0x10,0x0f,0x16,0x0d,0x11,0x11,0x0e,0x0f,0x14,0x11,0x11,0x11,0x11,0x0d,0x0c,0x0e,0x14,0x0d,0x11,0x10,0x17,0x18,0x11, +0x15,0x0f,0x0d,0x18,0x0f,0x0f,0x11,0x0b,0x0d,0x0c,0x07,0x17,0x17,0x10,0x0e,0x0e,0x11,0x0e,0x0b,0x1d,0x21,0x12,0x0a,0x0b,0x0b,0x0b,0x07,0x0f,0x0c,0x10,0x16,0x11,0x15,0x11,0x09,0x0a,0x08,0x08,0x0e,0x0e,0x0e,0x0e,0x09,0x09,0x09,0x0e,0x09,0x0e,0x09,0x09,0x09,0x0e,0x0e,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13, +0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x08,0x07,0x08,0x07,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x14,0x10,0x14,0x10,0x15,0x11,0x15, +0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x0f,0x0a,0x0f,0x0f,0x16,0x11,0x08,0x0a,0x07,0x07,0x0f,0x0c,0x1a,0x17,0x12,0x0f,0x11,0x0e,0x16,0x11,0x10,0x0e,0x10,0x0e,0x12,0x0e,0x13,0x10,0x13,0x10,0x15,0x0f,0x16,0x11,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x09,0x09,0x09,0x09,0x0f, +0x0f,0x13,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x0d,0x14,0x11,0x14,0x11,0x14,0x11,0x14,0x11,0x14,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x09,0x14,0x11,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x08,0x07,0x08,0x07,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x1a, +0x19,0x1a,0x19,0x1a,0x19,0x16,0x10,0x16,0x10,0x16,0x10,0x16,0x10,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x10,0x11,0x10,0x11,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0a,0x0f,0x0a,0x0f,0x0a,0x0f,0x0a,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x12,0x0e,0x12, +0x0e,0x1b,0x15,0x1b,0x15,0x11,0x0d,0x11,0x0d,0x10,0x0e,0x11,0x0d,0x11,0x0d,0x11,0x0d,0x10,0x0a,0x15,0x0e,0x0f,0x07,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x13,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x11,0x11,0x15,0x15,0x15,0x15,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x16,0x16,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0e,0x0e,0x0f,0x0f,0x0f,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x17,0x1c,0x1c,0x1c,0x1c,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x13,0x18,0x18,0x18,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x12,0x12,0x0d,0x0d,0x11, +0x11,0x08,0x08,0x11,0x11,0x10,0x10,0x17,0x17,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x13,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x16,0x16,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x16,0x16,0x15,0x11,0x11,0x11,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x11,0x11,0x11,0x10,0x10,0x10,0x10,0x11,0x11,0x10,0x10,0x10,0x10,0x13,0x13,0x12,0x11,0x11,0x11,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x18,0x16,0x11,0x11, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x12,0x11,0x11,0x11,0x11,0x12,0x12,0x0e,0x14,0x16,0x11,0x11,0x11,0x0f,0x10,0x0e,0x14,0x12,0x19,0x08,0x08,0x11,0x0e,0x07,0x0e,0x1a,0x16,0x11,0x16,0x1c,0x17,0x11,0x11,0x11,0x0f,0x0c,0x0f,0x09,0x0a,0x0f,0x0a,0x0f,0x16,0x15,0x11,0x0f,0x11,0x0d,0x12, +0x12,0x0d,0x0c,0x10,0x10,0x0b,0x0b,0x10,0x07,0x0b,0x0d,0x08,0x24,0x21,0x1e,0x19,0x15,0x0f,0x1f,0x1c,0x17,0x13,0x0f,0x08,0x07,0x16,0x11,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x0f,0x13,0x0f,0x13,0x0f,0x19,0x18,0x14,0x11,0x14,0x11,0x11,0x0e,0x16,0x11,0x16,0x11,0x12,0x0d,0x07,0x24,0x21,0x1e,0x14,0x11,0x1d,0x14, +0x16,0x10,0x13,0x0f,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x08,0x07,0x08,0x07,0x16,0x11,0x16,0x11,0x11,0x0a,0x11,0x0a,0x14,0x10,0x14,0x10,0x0f,0x0c,0x15,0x10,0x15,0x11,0x10,0x11,0x0d,0x13,0x0f,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x10,0x0e,0x11,0x0f,0x10,0x10,0x11,0x0f,0x11,0x11,0x11,0x0e,0x0e,0x11,0x11,0x0f,0x12,0x0c,0x0c, +0x0f,0x10,0x08,0x11,0x11,0x0f,0x0e,0x0d,0x10,0x10,0x10,0x08,0x08,0x09,0x08,0x0b,0x07,0x11,0x19,0x19,0x19,0x10,0x10,0x11,0x11,0x14,0x15,0x13,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0c,0x07,0x07,0x08,0x08,0x0a,0x0a,0x11,0x11,0x10,0x0e,0x15,0x0e,0x0c,0x0d,0x0f,0x0d,0x0d,0x0b,0x0b,0x0b,0x0e,0x12,0x0e,0x10,0x0f,0x10, +0x07,0x0e,0x0b,0x11,0x0b,0x0b,0x1b,0x1c,0x1c,0x12,0x0e,0x15,0x17,0x11,0x11,0x0e,0x0e,0x10,0x11,0x10,0x14,0x10,0x13,0x17,0x11,0x14,0x11,0x11,0x0d,0x0e,0x0d,0x11,0x0f,0x12,0x0e,0x1a,0x19,0x12,0x0f,0x12,0x0f,0x12,0x0d,0x11,0x0e,0x13,0x11,0x10,0x0c,0x11,0x11,0x0d,0x07,0x16,0x0e,0x0e,0x19,0x14,0x13,0x11,0x1a,0x15,0x13,0x0e, +0x19,0x14,0x15,0x10,0x1b,0x16,0x10,0x0d,0x17,0x16,0x16,0x11,0x15,0x11,0x15,0x11,0x26,0x20,0x18,0x13,0x21,0x1a,0x19,0x14,0x11,0x0d,0x0f,0x0b,0x0c,0x00,0x00,0x1d,0x1c,0x11,0x0f,0x10,0x11,0x10,0x0f,0x10,0x0d,0x11,0x0e,0x15,0x11,0x18,0x13,0x1d,0x18,0x15,0x10,0x12,0x0d,0x0f,0x0c,0x19,0x14,0x14,0x11,0x18,0x12,0x18,0x12,0x08, +0x19,0x16,0x11,0x0f,0x15,0x11,0x13,0x10,0x13,0x0f,0x13,0x0f,0x19,0x18,0x0f,0x0f,0x15,0x0f,0x15,0x0f,0x19,0x16,0x10,0x0d,0x0f,0x0d,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x12,0x0d,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x13,0x10,0x17,0x15,0x11,0x11,0x19,0x19,0x17,0x15,0x10,0x0e,0x1a,0x17,0x1d,0x19,0x15,0x0f,0x14,0x11,0x11,0x10, +0x10,0x0f,0x11,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x11,0x0a,0x0a,0x05,0x06,0x06,0x06,0x08,0x0c,0x08,0x07,0x0b,0x06,0x06,0x06,0x0a,0x0a,0x06,0x06,0x11,0x11,0x11,0x11,0x0a,0x08,0x08,0x0a,0x09,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0a,0x0a,0x08,0x05,0x07,0x08,0x06, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0c,0x0a,0x07,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10, +0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10, +0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x13,0x09,0x12,0x0a,0x11,0x11,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x09,0x09,0x0a,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x11, +0x0e,0x13,0x18,0x0e,0x0d,0x10,0x10,0x0c,0x0c,0x07,0x09,0x0e,0x0b,0x14,0x11,0x11,0x0e,0x12,0x12,0x12,0x1b,0x10,0x11,0x11,0x0d,0x0d,0x0d,0x0c,0x0f,0x10,0x15,0x10,0x0e,0x15,0x0d,0x0c,0x0c,0x0f,0x0b,0x0e,0x11,0x0d,0x11,0x10,0x0a,0x0e,0x0a,0x0a,0x0c,0x09,0x09,0x0c,0x0c,0x05,0x07,0x0a,0x08,0x0f,0x0d,0x0d,0x0c,0x0b,0x0a,0x0a, +0x08,0x0c,0x0f,0x09,0x09,0x0a,0x0e,0x0a,0x0a,0x09,0x09,0x08,0x08,0x0a,0x05,0x09,0x0e,0x0a,0x0a,0x08,0x0a,0x0a,0x0a,0x06,0x0a,0x09,0x0e,0x08,0x09,0x0a,0x08,0x0a,0x0c,0x09,0x05,0x06,0x0a,0x08,0x0a,0x08,0x0a,0x0c,0x09,0x11,0x05,0x0a,0x10,0x19,0x12,0x10,0x10,0x19,0x13,0x19,0x16,0x0f,0x11,0x0f,0x0d,0x21,0x0d,0x11,0x1a,0x1b, +0x1b,0x12,0x13,0x12,0x0d,0x0e,0x0f,0x0c,0x0d,0x0f,0x06,0x00,0x00,0x00,0x00,0x11,0x12,0x12,0x12,0x0e,0x0b,0x11,0x11,0x09,0x19,0x10,0x11,0x0a,0x0a,0x0d,0x0a,0x0d,0x11,0x0d,0x11,0x1a,0x13,0x09,0x08,0x11,0x0f,0x11,0x11,0x11,0x09,0x11,0x0e,0x07,0x19,0x10,0x11,0x0a,0x0c,0x0d,0x0e,0x0d,0x0d,0x0f,0x11,0x11,0x0f,0x0d,0x0d,0x15, +0x07,0x0e,0x07,0x10,0x0d,0x0a,0x08,0x08,0x0a,0x08,0x05,0x05,0x0a,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x0b,0x07,0x05,0x06,0x0a,0x0a,0x0a,0x09,0x08,0x08,0x08,0x09,0x08,0x0a,0x00,0x00,0x00,0x00,0x06,0x09,0x09,0x0a,0x08,0x09,0x10,0x10,0x10,0x10,0x0a,0x00,0x00,0x00,0x00,0x0d,0x09,0x08, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x08,0x08,0x08,0x08,0x10,0x10,0x10,0x10,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x10,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x05,0x0b,0x0b,0x0a,0x0b,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0b,0x09,0x09,0x0b,0x0a,0x0b,0x0b,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x17,0x12,0x15,0x11,0x16,0x12,0x1b,0x16,0x10,0x0b,0x0f,0x14,0x10,0x18,0x14,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x11,0x11,0x11,0x11,0x11,0x11,0x18,0x18,0x1d,0x0c,0x07,0x0f,0x11,0x0c,0x0f,0x0f,0x11,0x11,0x0f,0x1d, +0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x13,0x0f,0x0f,0x0f,0x0a,0x11,0x0a,0x16,0x13,0x0f,0x0a,0x18,0x0f,0x18,0x07,0x0a,0x11,0x11,0x13,0x13,0x13,0x11,0x11,0x11,0x18,0x07,0x11,0x07,0x0f,0x0c,0x07,0x07,0x0f,0x07,0x16,0x07,0x1b,0x0f,0x1b,0x1b,0x11,0x11,0x11,0x0f,0x0f,0x0c,0x0c,0x22,0x22,0x27,0x27,0x18,0x18,0x0f,0x0f,0x05, +0x1d,0x16,0x18,0x13,0x11,0x13,0x0f,0x0f,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x07,0x13,0x00,0x13,0x13,0x13,0x0a,0x0f,0x0f,0x1b,0x0a,0x1b,0x0a,0x11,0x13,0x11,0x0c,0x1b,0x0f,0x1b,0x0f,0x16,0x18,0x0a,0x0f,0x0f,0x0c,0x07,0x0f,0x11,0x0f,0x11,0x0f,0x11,0x11,0x0f,0x13,0x13,0x1b,0x0a,0x0f,0x0c,0x13,0x0f,0x0a, +0x0f,0x0f,0x0f,0x1b,0x0a,0x1b,0x0a,0x07,0x11,0x0b,0x1d,0x0f,0x0f,0x13,0x13,0x1d,0x0f,0x00,0x00,0x00,0x13,0x00,0x13,0x13,0x13,0x13,0x16,0x13,0x00,0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x0c,0x0c,0x0f,0x0f,0x16,0x18,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x13,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0f,0x0c,0x0c,0x0c,0x22,0x18,0x22,0x18,0x22,0x18,0x27,0x1d,0x27,0x1d,0x18,0x0f,0x11,0x11,0x11,0x1d,0x1d,0x0f,0x0f,0x1d,0x0f,0x0f,0x1d,0x0f,0x0f,0x1d,0x0f,0x0f,0x16,0x16,0x1f,0x1d,0x1b,0x0f,0x18,0x0f,0x18,0x0f,0x18,0x0f,0x1b, +0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x13,0x0a,0x13,0x0a,0x13,0x0a,0x13,0x0a,0x13,0x0a,0x13,0x13,0x0a,0x13,0x0a,0x10,0x13,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x18,0x1b,0x16,0x18,0x0a,0x0f,0x16,0x18,0x16,0x18,0x00,0x00,0x00,0x00,0x00,0x21,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0c,0x00,0x00,0x11,0x00, +0x00,0x00,0x22,0x18,0x27,0x1d,0x0f,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x1b,0x1b,0x0b,0x11,0x11,0x11,0x24,0x18,0x0f,0x2c,0x1f,0x0a,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0c,0x0c,0x16,0x13,0x13,0x0f,0x00,0x00,0x00,0x0a,0x0a,0x0a, +0x0a,0x24,0x2c,0x00,0x00,0x00,0x00,0x00,0x11,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x0c,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x11,0x11,0x13,0x11,0x0f,0x0f,0x0c,0x22,0x18,0x0f,0x11,0x11,0x11,0x0f,0x11,0x11,0x11,0x0f,0x11,0x11,0x11,0x1d,0x0f,0x0f,0x1d,0x0f,0x0f,0x1b,0x0f,0x0f,0x1b,0x0f, +0x0f,0x1b,0x0f,0x0f,0x11,0x11,0x11,0x11,0x13,0x0a,0x13,0x0a,0x13,0x0a,0x13,0x13,0x0a,0x0a,0x0c,0x0c,0x22,0x18,0x13,0x11,0x11,0x00,0x0f,0x0f,0x0f,0x0b,0x11,0x14,0x12,0x0f,0x0f,0x0a,0x07,0x16,0x11,0x11,0x0a,0x10,0x0e,0x0e,0x0d,0x0e,0x07,0x0f,0x0c,0x12,0x0e,0x11,0x0d,0x10,0x0d,0x14,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x15,0x0d,0x0e,0x0e,0x08,0x0f,0x10,0x11,0x0f,0x0a,0x16,0x11,0x13,0x10,0x12,0x0e,0x11,0x0f,0x0b,0x14,0x0b,0x0c,0x0c,0x0e,0x11,0x11,0x0f,0x1d,0x0f,0x1d,0x0a,0x07,0x05,0x10,0x06,0x04,0x00,0x04,0x06,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x1b,0x0c,0x16,0x11,0x1b,0x15,0x12, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x1b,0x19,0x0e,0x19,0x0e,0x19,0x13,0x14,0x14,0x14,0x16,0x19,0x1d,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x14,0x14,0x14,0x15,0x11,0x1f,0x18,0x0e,0x0e,0x08,0x08,0x08,0x0b,0x06,0x10,0x07,0x07,0x18,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00, +0x06,0x00,0x00,0x06,0x00,0x00,0x12,0x11,0x0d,0x0e,0x14,0x08,0x0a,0x14,0x14,0x08,0x10,0x10,0x10,0x14,0x14,0x08,0x0c,0x14,0x12,0x12,0x12,0x10,0x11,0x13,0x10,0x17,0x15,0x0f,0x0f,0x0f,0x07,0x0b,0x10,0x10,0x10,0x10,0x10,0x12,0x12,0x0e,0x14,0x10,0x10,0x14,0x10,0x15,0x10,0x17,0x17,0x17,0x17,0x12,0x12,0x12,0x11,0x0d,0x0e,0x14, +0x09,0x0a,0x14,0x09,0x10,0x10,0x10,0x14,0x0c,0x14,0x12,0x12,0x11,0x13,0x10,0x17,0x15,0x08,0x11,0x10,0x12,0x13,0x23,0x00,0x12,0x10,0x13,0x13,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x08,0x00, +0x16,0x13,0x13,0x14,0x10,0x13,0x16,0x16,0x0e,0x12,0x16,0x15,0x13,0x16,0x18,0x17,0x13,0x10,0x10,0x16,0x14,0x11,0x14,0x14,0x13,0x14,0x14,0x15,0x11,0x12,0x14,0x13,0x16,0x12,0x12,0x13,0x13,0x18,0x0e,0x11,0x11,0x19,0x10,0x10,0x16,0x1a,0x12,0x10,0x1e,0x10,0x10,0x16,0x10,0x10,0x16,0x10,0x16,0x18,0x19,0x10,0x16,0x10,0x13,0x10, +0x12,0x10,0x12,0x10,0x12,0x16,0x10,0x12,0x13,0x10,0x10,0x11,0x1c,0x10,0x10,0x11,0x11,0x0c,0x0a,0x10,0x10,0x10,0x10,0x10,0x1a,0x10,0x1a,0x0e,0x10,0x1a,0x13,0x10,0x1a,0x16,0x16,0x1a,0x11,0x10,0x1a,0x1a,0x10,0x10,0x10,0x10,0x10,0x10,0x1a,0x1a,0x11,0x10,0x10,0x1a,0x11,0x10,0x10,0x10,0x1a,0x17,0x14,0x14,0x14,0x14,0x15,0x12, +0x14,0x17,0x14,0x13,0x10,0x17,0x14,0x14,0x11,0x13,0x14,0x16,0x15,0x11,0x14,0x13,0x15,0x13,0x16,0x14,0x15,0x15,0x14,0x12,0x14,0x14,0x15,0x17,0x13,0x16,0x15,0x03,0x03,0x04,0x06,0x04,0x08,0x0a,0x19,0x10,0x12,0x11,0x10,0x12,0x10,0x10,0x13,0x11,0x10,0x09,0x18,0x11,0x10,0x10,0x10,0x12,0x0f,0x11,0x08,0x11,0x0f,0x10,0x0c,0x19, +0x10,0x10,0x10,0x11,0x18,0x10,0x11,0x0b,0x18,0x11,0x11,0x14,0x14,0x06,0x08,0x21,0x21,0x21,0x21,0x29,0x10,0x10,0x07,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0e,0x0f,0x11,0x0c,0x0c,0x11,0x12,0x07,0x09,0x0e,0x0c,0x16,0x13,0x12,0x0e,0x12,0x0e,0x0c,0x0d,0x11,0x0f,0x17,0x0f,0x0e,0x0e,0x14,0x16,0x0c,0x12,0x0e,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0c,0x07,0x07,0x07,0x07,0x13,0x12,0x12,0x12,0x12,0x12,0x11, +0x11,0x11,0x11,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f,0x11,0x11,0x11,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x0f,0x12,0x12,0x07,0x07,0x07,0x07,0x07,0x10,0x09,0x0e,0x0c,0x0c,0x0c,0x0c,0x13,0x13,0x13,0x13,0x12,0x12,0x12,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x17,0x17,0x17,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0f,0x14,0x12,0x0f,0x0e,0x0b,0x10,0x0c,0x0e,0x12,0x12,0x07,0x0e,0x0f,0x16,0x13,0x0d,0x12,0x12,0x0e,0x0d,0x0d,0x0e,0x12,0x0f,0x13,0x12,0x0f,0x0c,0x12,0x07,0x12,0x0e,0x12,0x07,0x0e,0x0c,0x11,0x0c,0x0f,0x0c,0x07,0x07,0x09,0x18,0x18,0x12,0x0e,0x0e,0x12,0x0f,0x0e,0x0e,0x0c,0x11,0x0c,0x15,0x0d,0x13,0x13, +0x0e,0x10,0x16,0x12,0x12,0x12,0x0e,0x0f,0x0d,0x0e,0x12,0x0f,0x12,0x10,0x17,0x18,0x10,0x14,0x0e,0x0f,0x19,0x0e,0x0c,0x11,0x11,0x12,0x1a,0x1a,0x13,0x0f,0x11,0x0c,0x11,0x10,0x10,0x14,0x0f,0x0f,0x14,0x11,0x11,0x0a,0x12,0x12,0x11,0x0e,0x0e,0x1a,0x16,0x0e,0x0f,0x11,0x11,0x12,0x12,0x15,0x14,0x0a,0x1b,0x11,0x10,0x11,0x13,0x13, +0x0f,0x0f,0x08,0x16,0x14,0x14,0x0e,0x14,0x06,0x06,0x0d,0x0d,0x06,0x06,0x12,0x0c,0x08,0x16,0x14,0x08,0x06,0x06,0x0d,0x0b,0x0b,0x07,0x07,0x07,0x0b,0x14,0x0e,0x09,0x12,0x14,0x11,0x11,0x0e,0x16,0x10,0x11,0x0a,0x0d,0x0f,0x0c,0x06,0x07,0x0b,0x0f,0x0a,0x13,0x13,0x13,0x1b,0x16,0x1b,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x16,0x18, +0x0a,0x0a,0x0f,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x11,0x0f,0x0f,0x22,0x18,0x22,0x18,0x27,0x1d,0x27,0x1d,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x0f,0x0f,0x1b,0x1b,0x0f,0x0f,0x16,0x18,0x0a,0x0a,0x16,0x18,0x0a,0x0a,0x16,0x18,0x0a,0x0a,0x1d,0x16,0x18,0x0f,0x11,0x11,0x13,0x0a,0x13,0x16,0x0f,0x0f,0x0a,0x0a,0x0a, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1b,0x0a,0x16,0x0f,0x0f,0x07,0x0f,0x0f,0x0f,0x0f,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x22,0x18,0x22,0x18,0x22,0x18,0x27,0x1d,0x27,0x1d, +0x18,0x18,0x18,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x16,0x0f,0x0f,0x16,0x0f,0x0f,0x1b,0x0f,0x1f,0x1d,0x1b,0x0f,0x18,0x0f,0x18,0x0f,0x18,0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x13,0x13,0x13,0x13,0x13,0x0a,0x13,0x13,0x0a,0x0a,0x13,0x0a,0x13,0x0a,0x13,0x0f,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0f,0x0f,0x0a,0x0a,0x0f,0x0a,0x0a,0x0a,0x0a,0x00,0x22,0x18,0x27,0x1d,0x1b,0x0f,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x0f,0x0f,0x0c,0x22,0x18,0x1d,0x1d,0x1b,0x1b,0x1b,0x11,0x11,0x11,0x11,0x13,0x0a,0x13,0x0a,0x13,0x0a,0x22,0x18,0x11,0x13,0x11,0x11,0x11,0x13,0x11,0x11,0x22,0x22,0x18,0x18, +0x0c,0x0c,0x11,0x11,0x11,0x11,0x0a,0x0a,0x0a,0x0a,0x16,0x18,0x0a,0x0a,0x16,0x18,0x0a,0x0a,0x16,0x18,0x0a,0x0a,0x11,0x11,0x11,0x11,0x1b,0x0a,0x1b,0x0a,0x11,0x13,0x11,0x11,0x22,0x22,0x18,0x18,0x22,0x22,0x18,0x18,0x18,0x18,0x0f,0x0f,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x07,0x07,0x0a,0x07,0x00,0x00,0x00,0x18, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x18,0x11,0x18,0x11,0x18,0x11,0x18,0x13,0x13,0x13,0x07,0x07,0x0f,0x0c,0x11,0x12,0x11,0x10,0x10,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0f,0x0d,0x10,0x0f,0x11,0x12,0x12,0x13,0x11,0x10,0x13,0x0f, +0x13,0x16,0x13,0x16,0x18,0x12,0x16,0x14,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0f,0x0d,0x10,0x12,0x11,0x13,0x11,0x13,0x11,0x11,0x11,0x0f,0x0f,0x16,0x14,0x14,0x14,0x14,0x11,0x11,0x11,0x15,0x16,0x16,0x16,0x1b,0x1b,0x14,0x1b,0x1b,0x15,0x19,0x19,0x10,0x16,0x19,0x16,0x11,0x19,0x15,0x14,0x14,0x12,0x13,0x16,0x17, +0x14,0x12,0x14,0x11,0x0f,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x14,0x1b,0x1b,0x15,0x16,0x17,0x16,0x15,0x15,0x13,0x1a,0x16,0x18,0x15,0x15,0x11,0x15,0x14,0x14,0x19,0x16,0x15,0x1a,0x10,0x0f,0x10,0x10,0x12,0x12,0x14,0x15,0x11,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x11,0x10,0x10,0x10,0x0f,0x0f,0x11,0x12,0x11,0x11,0x0d,0x10,0x10, +0x11,0x12,0x16,0x18,0x13,0x13,0x12,0x16,0x13,0x14,0x0f,0x0e,0x11,0x10,0x0e,0x0e,0x10,0x10,0x0e,0x0d,0x12,0x0d,0x10,0x0e,0x10,0x17,0x10,0x18,0x10,0x10,0x11,0x16,0x09,0x17,0x14,0x15,0x13,0x10,0x16,0x11,0x17,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x12,0x12,0x12,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0d,0x0d,0x0d,0x0e,0x0d, +0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x12,0x08,0x08,0x08,0x09,0x09,0x08,0x08,0x08,0x09,0x08,0x08,0x08,0x1a,0x1a,0x1a,0x1a,0x0e,0x16,0x15,0x0e,0x0c,0x0e,0x0f,0x10,0x0e,0x18,0x18,0x19,0x0d,0x1d,0x0e,0x18,0x18,0x18,0x17,0x10,0x0e,0x0e,0x17,0x11,0x17,0x14,0x0f,0x0d,0x0c,0x1e,0x0c,0x0f,0x0e,0x0e,0x0e,0x0e,0x0e, +0x28,0x18,0x18,0x0c,0x07,0x0d,0x07,0x0d,0x07,0x07,0x07,0x0e,0x11,0x11,0x10,0x0b,0x0b,0x07,0x07,0x07,0x0b,0x07,0x0c,0x19,0x06,0x1a,0x1a,0x1a,0x11,0x11,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x22,0x22,0x13,0x22,0x22,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x0e,0x11,0x0e,0x0f,0x0c,0x0a,0x0a,0x14,0x10,0x15,0x0c,0x21,0x1a,0x11,0x10,0x1b,0x17,0x18,0x16,0x1e,0x18,0x1b,0x16,0x13,0x0e,0x15,0x11,0x1b,0x15,0x16,0x12,0x16,0x11,0x19,0x13,0x19,0x13,0x20,0x18,0x16,0x11,0x16,0x11,0x23,0x1a,0x17,0x00,0x1d,0x1d, +0x1d,0x0e,0x00,0x00,0x11,0x0f,0x14,0x10,0x0f,0x0c,0x1f,0x1a,0x1b,0x19,0x15,0x11,0x14,0x11,0x0f,0x0c,0x15,0x11,0x0f,0x0c,0x18,0x13,0x13,0x10,0x1c,0x18,0x10,0x11,0x15,0x15,0x17,0x0d,0x06,0x0d,0x14,0x0d,0x1d,0x1d,0x07,0x00,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x0c,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, +0x21,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x0e,0x14, +0x15,0x08,0x06,0x08,0x06,0x15,0x10,0x16,0x12,0x10,0x0e,0x0f,0x0e,0x11,0x11,0x0c,0x0c,0x21,0x18,0x21,0x1a,0x1d,0x19,0x1a,0x13,0x1a,0x13,0x1a,0x13,0x12,0x0d,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x10,0x09,0x0e,0x07,0x16,0x11,0x19,0x14,0x27,0x1d,0x10,0x11,0x14,0x14,0x17,0x19,0x16,0x11,0x1c,0x17,0x10,0x0c,0x10,0x0e,0x12,0x0e,0x1b, +0x15,0x12,0x0f,0x10,0x11,0x10,0x11,0x0e,0x0c,0x0e,0x0b,0x0e,0x0b,0x0f,0x0f,0x09,0x14,0x0a,0x1c,0x13,0x0a,0x11,0x12,0x0d,0x16,0x10,0x0b,0x0a,0x11,0x11,0x11,0x0e,0x07,0x16,0x11,0x0b,0x0a,0x12,0x0d,0x15,0x0b,0x17,0x11,0x12,0x0d,0x14,0x11,0x11,0x0e,0x16,0x10,0x11,0x0a,0x0f,0x0c,0x16,0x0c,0x0f,0x19,0x0e,0x10,0x1a,0x08,0x21, +0x1a,0x1a,0x22,0x1a,0x1b,0x1b,0x19,0x1a,0x1b,0x0f,0x0e,0x12,0x14,0x1a,0x14,0x1b,0x07,0x0d,0x11,0x19,0x1e,0x14,0x1e,0x12,0x12,0x17,0x14,0x21,0x1b,0x0f,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x11,0x11,0x18,0x18,0x18,0x18,0x1d,0x0f,0x0f,0x1d,0x16,0x0f,0x0f,0x16,0x13,0x0a,0x0a,0x13,0x11,0x11,0x11,0x11,0x16,0x0a,0x0a,0x18,0x16,0x0a, +0x0a,0x18,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0x0f,0x0b,0x10,0x0f,0x16,0x11,0x11,0x19,0x13,0x16,0x16,0x18,0x18,0x11,0x0e,0x1d,0x17,0x1e,0x19,0x14,0x11,0x09,0x09,0x11,0x13,0x0c,0x11,0x0f, +0x11,0x0e,0x15,0x17,0x0c,0x11,0x0c,0x06,0x0b,0x0f,0x10,0x06,0x06,0x05,0x06,0x0b,0x0b,0x0b,0x0d,0x2b,0x3a,0x0a,0x0c,0x04,0x08,0x0b,0x0c,0x09,0x0e,0x0f,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e,0x0e,0x27,0x10,0x16,0x1b,0x1a,0x13,0x0d,0x10,0x15,0x15,0x0e,0x09,0x13,0x0f,0x14,0x10,0x13,0x0f,0x10, +0x16,0x11,0x11,0x0f,0x16,0x12,0x18,0x0d,0x0f,0x12,0x09,0x11,0x0a,0x0a,0x07,0x19,0x11,0x10,0x0f,0x0f,0x11,0x1b,0x1b,0x1b,0x1d,0x1d,0x10,0x0e,0x08,0x0f,0x0d,0x12,0x0d,0x13,0x07,0x10,0x11,0x19,0x19,0x12,0x10,0x11,0x10,0x0f,0x0d,0x0f,0x0d,0x0e,0x09,0x0a,0x07,0x06,0x0a,0x11,0x12,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x00,0x08,0x08,0x08,0x07,0x07,0x31,0x1d,0x19,0x1e,0x08,0x08,0x09,0x0b,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x1b,0x0a,0x0a,0x1b,0x08,0x0f,0x0f,0x27,0x1d,0x1d,0x27,0x1b,0x0f,0x0f,0x1b,0x0f,0x0f,0x0c,0x0c,0x00,0x00,0x0a,0x16,0x11,0x15,0x11,0x24,0x1e,0x14,0x10, +0x14,0x10,0x27,0x1d,0x16,0x11,0x0b,0x09,0x12,0x00,0x14,0x10,0x0a,0x09,0x05,0x0e,0x0a,0x0a,0x07,0x06,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x06,0x0f,0x0c,0x11,0x11,0x10,0x1c,0x17,0x17,0x17,0x18,0x1b,0x12,0x14,0x11,0x0b,0x1b,0x21,0x0d,0x21,0x0f,0x18,0x1b,0x1b,0x1b,0x0c,0x16,0x1d,0x16,0x13,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x11,0x11,0x11,0x18,0x0f,0x0f,0x1b,0x0a,0x0a,0x1b,0x0a,0x0a,0x1b,0x0e,0x0e,0x00,0x0c,0x18,0x0a,0x0a,0x1d,0x0f,0x0f,0x16,0x0f,0x0f,0x13,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x2c,0x2c,0x1a,0x00,0x00,0x1a,0x1a,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x13,0x12,0x13,0x13,0x1a,0x13,0x12,0x17,0x1c,0x13,0x12,0x1f,0x12,0x12,0x1b,0x12,0x14,0x17,0x13,0x16,0x19,0x1a,0x13,0x16,0x13,0x14,0x12,0x14,0x12,0x13,0x14,0x12,0x17,0x11,0x13,0x17,0x12,0x12,0x11,0x17,0x13,0x13,0x13,0x14,0x0d,0x0f,0x13,0x17,0x17,0x10,0x00,0x00, +0x20,0x40,0x15,0x00,0x03,0x09,0x09,0x0d,0x13,0x11,0x1a,0x1a,0x07,0x0a,0x0a,0x0d,0x16,0x07,0x0d,0x07,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x16,0x16,0x16,0x0e,0x1f,0x15,0x12,0x14,0x16,0x10,0x10,0x16,0x17,0x09,0x0b,0x13,0x0f,0x1d,0x18,0x18,0x12,0x18,0x13,0x11,0x11,0x16,0x14,0x1e,0x13,0x12,0x12, +0x0a,0x0c,0x0a,0x16,0x0d,0x09,0x10,0x13,0x0f,0x13,0x11,0x0a,0x13,0x12,0x08,0x08,0x10,0x08,0x1c,0x12,0x13,0x13,0x13,0x0b,0x0e,0x0b,0x12,0x0f,0x17,0x0f,0x0f,0x0e,0x0a,0x08,0x0a,0x16,0x15,0x15,0x14,0x10,0x18,0x18,0x16,0x10,0x10,0x10,0x10,0x10,0x10,0x0f,0x11,0x11,0x11,0x11,0x08,0x08,0x08,0x08,0x12,0x13,0x13,0x13,0x13,0x13, +0x12,0x12,0x12,0x12,0x0c,0x0c,0x11,0x11,0x0e,0x0d,0x0f,0x11,0x0d,0x1c,0x1c,0x19,0x09,0x0d,0x16,0x1c,0x18,0x1a,0x16,0x16,0x16,0x11,0x12,0x11,0x14,0x18,0x11,0x0d,0x0e,0x18,0x1b,0x13,0x0e,0x09,0x09,0x16,0x15,0x11,0x16,0x15,0x10,0x10,0x17,0x15,0x15,0x18,0x1e,0x1e,0x10,0x20,0x0c,0x0c,0x07,0x07,0x16,0x13,0x0f,0x12,0x06,0x11, +0x0a,0x0a,0x12,0x12,0x0c,0x07,0x07,0x0c,0x27,0x15,0x10,0x15,0x10,0x10,0x09,0x09,0x09,0x09,0x18,0x18,0x18,0x16,0x16,0x16,0x08,0x0c,0x0b,0x0a,0x0a,0x06,0x09,0x07,0x0a,0x06,0x0c,0x0f,0x09,0x11,0x0e,0x12,0x0e,0x08,0x16,0x12,0x12,0x0f,0x12,0x13,0x16,0x16,0x0b,0x0c,0x0c,0x1e,0x1d,0x1e,0x10,0x16,0x13,0x09,0x11,0x0e,0x14,0x0f, +0x14,0x0f,0x13,0x0d,0x07,0x15,0x10,0x15,0x10,0x16,0x16,0x16,0x10,0x11,0x10,0x11,0x0f,0x08,0x0f,0x0a,0x0f,0x0a,0x18,0x12,0x18,0x12,0x18,0x13,0x13,0x0b,0x13,0x0b,0x11,0x0e,0x11,0x0b,0x11,0x0e,0x16,0x12,0x16,0x12,0x12,0x0e,0x12,0x0e,0x0f,0x18,0x18,0x14,0x13,0x0e,0x12,0x10,0x16,0x0d,0x0f,0x0d,0x24,0x14,0x10,0x13,0x07,0x0c, +0x1a,0x0a,0x13,0x0b,0x0b,0x13,0x0b,0x15,0x10,0x14,0x0f,0x14,0x0f,0x10,0x11,0x10,0x11,0x10,0x11,0x16,0x13,0x16,0x13,0x16,0x13,0x17,0x12,0x17,0x12,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x0b,0x08,0x13,0x10,0x10,0x0f,0x08,0x18,0x12,0x18,0x12,0x18,0x13,0x18,0x13,0x13,0x0b,0x11,0x0e,0x11,0x0b,0x16,0x12,0x16,0x12,0x16,0x12, +0x16,0x12,0x1e,0x17,0x12,0x0f,0x08,0x15,0x10,0x1c,0x1b,0x18,0x13,0x07,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x12,0x0f,0x07,0x0d,0x11,0x13,0x1e,0x1e,0x1e,0x1d,0x0c,0x0c,0x07,0x09,0x09,0x15,0x12,0x19,0x0c,0x1a,0x15,0x1a,0x09,0x15,0x12,0x10,0x12,0x17,0x09,0x13,0x14,0x1d,0x18,0x10,0x18,0x17,0x12,0x11,0x11,0x12,0x13,0x19,0x18,0x09, +0x12,0x14,0x0e,0x12,0x09,0x12,0x12,0x11,0x0e,0x12,0x13,0x09,0x11,0x10,0x12,0x11,0x0e,0x13,0x13,0x0f,0x12,0x11,0x18,0x1a,0x09,0x12,0x13,0x12,0x1a,0x10,0x16,0x0f,0x14,0x11,0x09,0x1f,0x1f,0x17,0x13,0x12,0x17,0x15,0x12,0x12,0x0f,0x16,0x10,0x1c,0x11,0x18,0x18,0x13,0x16,0x1d,0x17,0x18,0x17,0x12,0x14,0x11,0x12,0x17,0x13,0x18, +0x15,0x1e,0x1f,0x17,0x19,0x12,0x14,0x21,0x13,0x10,0x13,0x11,0x0c,0x12,0x11,0x18,0x0e,0x13,0x13,0x10,0x11,0x16,0x12,0x13,0x12,0x13,0x0f,0x0d,0x0f,0x16,0x0f,0x13,0x12,0x1a,0x1a,0x13,0x17,0x10,0x0f,0x1a,0x10,0x11,0x12,0x0c,0x0f,0x0e,0x08,0x19,0x1a,0x12,0x10,0x0f,0x12,0x0f,0x0d,0x20,0x24,0x14,0x0b,0x0c,0x0c,0x0c,0x08,0x11, +0x0e,0x12,0x18,0x13,0x17,0x13,0x0a,0x0b,0x09,0x09,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x0a,0x0f,0x0a,0x0f,0x0a,0x0a,0x0a,0x0f,0x0f,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10, +0x11,0x09,0x08,0x09,0x08,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x16,0x12,0x16,0x12,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x12,0x0f,0x12,0x0f,0x12,0x0f,0x11,0x0b,0x10,0x11,0x18,0x13,0x09,0x0b,0x08,0x08,0x10,0x0d,0x1d,0x19,0x14, +0x11,0x13,0x10,0x18,0x13,0x12,0x0f,0x12,0x0f,0x14,0x10,0x15,0x12,0x15,0x12,0x17,0x11,0x18,0x13,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x10,0x11,0x15,0x10,0x12,0x13,0x12,0x13,0x12,0x13,0x14,0x0f,0x16,0x13,0x16,0x13,0x16,0x13,0x16,0x13,0x16,0x13,0x10,0x11,0x10,0x11,0x10,0x11,0x10, +0x11,0x10,0x11,0x10,0x0a,0x16,0x13,0x17,0x12,0x17,0x12,0x17,0x12,0x17,0x12,0x17,0x12,0x09,0x08,0x09,0x08,0x13,0x10,0x13,0x10,0x13,0x10,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x1d,0x1c,0x1d,0x1c,0x1d,0x1c,0x18,0x12,0x18,0x12,0x18,0x12,0x18,0x12,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x12,0x13,0x12,0x13,0x13,0x0b,0x13, +0x0b,0x13,0x0b,0x13,0x0b,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0b,0x11,0x0b,0x11,0x0b,0x11,0x0b,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x14,0x0f,0x14,0x0f,0x1e,0x17,0x1e,0x17,0x13,0x0f,0x13,0x0f,0x12,0x0f,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0b,0x17,0x0f,0x10,0x08,0x14,0x14,0x14,0x14,0x14, +0x14,0x14,0x14,0x15,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x12,0x12,0x17,0x17,0x17,0x17,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x19,0x19,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x10,0x10,0x11,0x11,0x11,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x1a,0x1a,0x1f, +0x1f,0x1f,0x1f,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x15,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x14,0x14,0x0e,0x0e,0x12,0x12,0x09,0x09,0x13,0x13,0x12,0x12,0x1a,0x1a,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0x19,0x19,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x13,0x13,0x13,0x13,0x13,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x19,0x19,0x17,0x13,0x13,0x13,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x0c,0x0c,0x13,0x13,0x13,0x12,0x12,0x12,0x12,0x13,0x13,0x12,0x12,0x12,0x12,0x15,0x15,0x14,0x13,0x13,0x13,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1a,0x18,0x13,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x14,0x12,0x13,0x12,0x13,0x14,0x14,0x0f,0x16,0x18,0x12,0x13,0x13, +0x10,0x11,0x10,0x16,0x14,0x1c,0x09,0x09,0x13,0x10,0x08,0x10,0x1d,0x18,0x12,0x18,0x1f,0x19,0x13,0x13,0x12,0x11,0x0e,0x11,0x09,0x0b,0x11,0x0b,0x11,0x18,0x17,0x12,0x11,0x12,0x0e,0x14,0x14,0x0e,0x0d,0x11,0x11,0x0c,0x0d,0x11,0x08,0x0c,0x0f,0x09,0x28,0x24,0x21,0x1b,0x17,0x10,0x22,0x1f,0x1a,0x15,0x10,0x09,0x08,0x18,0x13,0x16, +0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x11,0x15,0x10,0x15,0x10,0x1c,0x1b,0x16,0x13,0x16,0x13,0x13,0x10,0x18,0x13,0x18,0x13,0x14,0x0e,0x08,0x28,0x24,0x21,0x16,0x13,0x20,0x16,0x18,0x12,0x15,0x10,0x15,0x10,0x10,0x11,0x10,0x11,0x09,0x08,0x09,0x08,0x18,0x13,0x18,0x13,0x12,0x0b,0x13,0x0b,0x16,0x12,0x16,0x12,0x10,0x0e, +0x17,0x12,0x17,0x13,0x12,0x12,0x0e,0x15,0x10,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x12,0x0f,0x13,0x10,0x12,0x12,0x13,0x10,0x13,0x13,0x13,0x0f,0x0f,0x13,0x13,0x11,0x14,0x0d,0x0d,0x10,0x12,0x09,0x13,0x13,0x11,0x0f,0x0f,0x12,0x12,0x12,0x08,0x09,0x0a,0x09,0x0c,0x08,0x13,0x1c,0x1c,0x1c,0x12,0x12,0x13,0x13,0x16,0x17,0x14, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x0d,0x08,0x08,0x09,0x09,0x0b,0x0b,0x13,0x13,0x12,0x0f,0x17,0x0f,0x0d,0x0e,0x10,0x0e,0x0e,0x0c,0x0c,0x0c,0x0f,0x14,0x0f,0x12,0x11,0x12,0x08,0x10,0x0c,0x13,0x0c,0x0c,0x1d,0x1e,0x1f,0x14,0x0f,0x17,0x19,0x13,0x12,0x10,0x10,0x12,0x13,0x12,0x16,0x12,0x14,0x1a,0x12,0x16,0x13,0x13, +0x0f,0x10,0x0e,0x13,0x10,0x14,0x10,0x1d,0x1c,0x13,0x10,0x14,0x11,0x14,0x0f,0x13,0x10,0x15,0x13,0x12,0x0d,0x12,0x13,0x0f,0x08,0x18,0x0f,0x0f,0x1c,0x16,0x15,0x13,0x1d,0x17,0x15,0x10,0x1c,0x16,0x17,0x12,0x1e,0x18,0x11,0x0e,0x19,0x18,0x18,0x13,0x17,0x13,0x17,0x13,0x2a,0x24,0x1a,0x15,0x24,0x1d,0x1c,0x16,0x13,0x0e,0x10,0x0d, +0x0d,0x00,0x00,0x20,0x1e,0x12,0x10,0x12,0x13,0x12,0x10,0x11,0x0f,0x13,0x10,0x17,0x13,0x1b,0x15,0x20,0x1b,0x17,0x12,0x14,0x0f,0x11,0x0d,0x1c,0x16,0x16,0x13,0x1b,0x14,0x1b,0x14,0x09,0x1c,0x18,0x13,0x10,0x17,0x12,0x15,0x12,0x15,0x10,0x15,0x10,0x1c,0x1b,0x10,0x11,0x17,0x11,0x17,0x11,0x1c,0x18,0x11,0x0e,0x11,0x0e,0x18,0x13, +0x18,0x13,0x18,0x13,0x18,0x13,0x14,0x0f,0x12,0x0f,0x12,0x0f,0x12,0x0f,0x15,0x12,0x19,0x17,0x12,0x13,0x1b,0x1c,0x1a,0x17,0x12,0x0f,0x1d,0x19,0x20,0x1b,0x17,0x11,0x16,0x13,0x13,0x12,0x12,0x10,0x13,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x13,0x0b,0x0b,0x05,0x07,0x07,0x07,0x09,0x0d, +0x09,0x07,0x0c,0x07,0x07,0x07,0x0b,0x0b,0x07,0x07,0x13,0x13,0x13,0x13,0x0b,0x09,0x09,0x0b,0x0a,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x09,0x05,0x08,0x09,0x07,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0d,0x0b,0x08,0x08,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c, +0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11, +0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00, +0x15,0x0a,0x14,0x0b,0x13,0x13,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x0a,0x0a,0x0b,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x13,0x0f,0x15,0x1b,0x0f,0x0f,0x12,0x12,0x0d,0x0d,0x08,0x0a,0x10,0x0d,0x16,0x13,0x13,0x0f,0x14,0x14,0x14,0x1e,0x11,0x13,0x13,0x0f,0x0f,0x0f,0x0d, +0x11,0x12,0x17,0x12,0x0f,0x17,0x0e,0x0d,0x0d,0x11,0x0c,0x0f,0x12,0x0f,0x13,0x12,0x0c,0x10,0x0b,0x0b,0x0d,0x0a,0x0a,0x0d,0x0e,0x06,0x07,0x0b,0x09,0x11,0x0e,0x0e,0x0e,0x0c,0x0b,0x0b,0x09,0x0d,0x11,0x0a,0x0a,0x0b,0x0f,0x0b,0x0b,0x0a,0x0a,0x08,0x08,0x0b,0x05,0x0a,0x10,0x0b,0x0b,0x09,0x0b,0x0b,0x0b,0x06,0x0b,0x0a,0x10,0x09, +0x0a,0x0b,0x09,0x0b,0x0d,0x0a,0x05,0x07,0x0b,0x09,0x0b,0x09,0x0b,0x0d,0x0a,0x13,0x05,0x0b,0x11,0x1c,0x14,0x11,0x11,0x1c,0x15,0x1b,0x18,0x11,0x13,0x10,0x0e,0x24,0x0f,0x13,0x1c,0x1e,0x1e,0x14,0x15,0x14,0x0f,0x0f,0x11,0x0e,0x0e,0x10,0x06,0x00,0x00,0x00,0x00,0x13,0x14,0x14,0x14,0x0f,0x0c,0x13,0x13,0x0a,0x1c,0x12,0x13,0x0b, +0x0b,0x0f,0x0b,0x0e,0x13,0x0f,0x12,0x1d,0x15,0x0a,0x09,0x13,0x11,0x13,0x13,0x13,0x0a,0x13,0x10,0x08,0x1c,0x12,0x13,0x0b,0x0e,0x0e,0x0f,0x0f,0x0e,0x10,0x13,0x13,0x11,0x0e,0x0e,0x18,0x08,0x0f,0x08,0x12,0x0e,0x0b,0x09,0x09,0x0b,0x08,0x06,0x05,0x0b,0x0b,0x05,0x06,0x06,0x06,0x05,0x06,0x05,0x07,0x10,0x10,0x0b,0x0b,0x0b,0x0b, +0x0c,0x07,0x05,0x06,0x0b,0x0b,0x0b,0x0a,0x09,0x08,0x08,0x09,0x08,0x0b,0x00,0x00,0x00,0x00,0x07,0x0a,0x0a,0x0b,0x09,0x0a,0x11,0x11,0x11,0x11,0x0b,0x00,0x00,0x00,0x00,0x0f,0x0a,0x09,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x09,0x09,0x09, +0x12,0x12,0x12,0x12,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x11,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x06,0x0c,0x0c,0x0b,0x0c,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0c,0x0b,0x0c,0x0c,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x19,0x14,0x17,0x12,0x18,0x14,0x1e,0x18,0x11,0x0c, +0x10,0x16,0x11,0x1a,0x16,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x13,0x13,0x13,0x13,0x13,0x13,0x1b,0x1b,0x20,0x0d,0x08,0x10,0x13,0x0d,0x10,0x10,0x13,0x13,0x10,0x20,0x13,0x13,0x13,0x13,0x13,0x13,0x10,0x10,0x15,0x10,0x10,0x10,0x0b,0x13,0x0b,0x18,0x15,0x10,0x0b,0x1b,0x10,0x1b,0x08,0x0b,0x13,0x13,0x15,0x15, +0x15,0x13,0x13,0x13,0x1b,0x08,0x13,0x08,0x10,0x0d,0x08,0x08,0x10,0x08,0x18,0x08,0x1d,0x10,0x1d,0x1d,0x13,0x13,0x13,0x10,0x10,0x0d,0x0d,0x25,0x25,0x2b,0x2b,0x1b,0x1b,0x10,0x10,0x05,0x20,0x18,0x1b,0x15,0x13,0x15,0x10,0x10,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x08,0x15,0x00,0x15,0x15,0x15,0x0b,0x10,0x10, +0x1d,0x0b,0x1d,0x0b,0x13,0x15,0x13,0x0d,0x1d,0x10,0x1d,0x10,0x18,0x1b,0x0b,0x10,0x10,0x0d,0x08,0x10,0x13,0x10,0x13,0x10,0x13,0x13,0x10,0x15,0x15,0x1d,0x0b,0x10,0x0d,0x15,0x10,0x0b,0x10,0x10,0x10,0x1d,0x0b,0x1d,0x0b,0x08,0x13,0x0c,0x20,0x10,0x10,0x15,0x15,0x20,0x10,0x00,0x00,0x00,0x15,0x00,0x15,0x15,0x15,0x15,0x18,0x15, +0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0d,0x10,0x10,0x18,0x1b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x15,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0d,0x0d,0x0d,0x10,0x0d,0x0d,0x0d,0x25,0x1b,0x25,0x1b,0x25, +0x1b,0x2b,0x20,0x2b,0x20,0x1b,0x10,0x13,0x13,0x13,0x20,0x20,0x10,0x10,0x20,0x10,0x10,0x20,0x10,0x10,0x20,0x10,0x10,0x18,0x18,0x23,0x20,0x1d,0x10,0x1b,0x10,0x1b,0x10,0x1b,0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x15,0x0b,0x15,0x0b,0x15,0x0b,0x15,0x0b,0x15,0x0b,0x15,0x15,0x0b,0x15,0x0b,0x11,0x15,0x13,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1b,0x1d,0x18,0x1b,0x0b,0x10,0x18,0x1b,0x18,0x1b,0x00,0x00,0x00,0x00,0x00,0x24,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0d,0x00,0x00,0x13,0x00,0x00,0x00,0x25,0x1b,0x2b,0x20,0x10,0x13,0x13,0x13,0x0d,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x10, +0x1d,0x1d,0x0c,0x13,0x13,0x13,0x27,0x1b,0x11,0x31,0x23,0x0b,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x0d,0x0d,0x18,0x15,0x15,0x10,0x00,0x00,0x00,0x0b,0x0b,0x0b,0x0b,0x28,0x30,0x00,0x00,0x00,0x00,0x00,0x13,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x0d,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b, +0x1d,0x0b,0x13,0x13,0x13,0x13,0x15,0x13,0x10,0x10,0x0d,0x25,0x1b,0x10,0x13,0x13,0x13,0x10,0x13,0x13,0x13,0x10,0x13,0x13,0x13,0x20,0x10,0x10,0x20,0x10,0x10,0x1d,0x10,0x10,0x1d,0x10,0x10,0x1d,0x10,0x10,0x13,0x13,0x13,0x13,0x15,0x0b,0x15,0x0b,0x15,0x0b,0x15,0x15,0x0b,0x0b,0x0d,0x0d,0x25,0x1b,0x15,0x13,0x13,0x00,0x10,0x10, +0x10,0x0c,0x12,0x16,0x14,0x10,0x11,0x0b,0x08,0x18,0x13,0x13,0x0b,0x12,0x0f,0x0f,0x0f,0x0f,0x08,0x10,0x0d,0x14,0x10,0x13,0x0f,0x11,0x0e,0x16,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x0e,0x0f,0x0f,0x09,0x10,0x12,0x13,0x10,0x0b,0x18,0x13,0x14,0x11,0x14,0x10,0x12,0x10,0x0d,0x16,0x0c,0x0d,0x0d,0x0f,0x13,0x13, +0x10,0x20,0x10,0x20,0x0b,0x08,0x05,0x11,0x07,0x04,0x00,0x04,0x07,0x00,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x10,0x10,0x1e,0x0e,0x18,0x13,0x1e,0x17,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x1e,0x1c,0x0f,0x1c,0x0f,0x1c,0x15,0x16,0x16,0x16,0x18,0x1c,0x20,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, +0x1c,0x16,0x16,0x16,0x16,0x18,0x13,0x22,0x1a,0x0f,0x0f,0x09,0x09,0x09,0x0c,0x07,0x12,0x07,0x07,0x1b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x14,0x12,0x0e,0x0f,0x16,0x09,0x0b,0x16,0x16,0x09,0x12,0x11,0x12,0x16,0x16,0x09,0x0d,0x16,0x13,0x14,0x14,0x12, +0x13,0x15,0x12,0x19,0x17,0x11,0x11,0x11,0x07,0x0c,0x12,0x12,0x12,0x12,0x11,0x13,0x14,0x0f,0x16,0x11,0x12,0x16,0x12,0x17,0x12,0x19,0x19,0x19,0x19,0x14,0x14,0x14,0x12,0x0e,0x0f,0x16,0x0a,0x0b,0x16,0x0a,0x12,0x11,0x12,0x16,0x0d,0x16,0x14,0x14,0x13,0x15,0x12,0x19,0x17,0x09,0x12,0x11,0x14,0x15,0x26,0x00,0x14,0x12,0x15,0x15, +0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x09,0x00,0x18,0x15,0x15,0x17,0x12,0x15,0x18,0x18,0x0f,0x14,0x18,0x18,0x15,0x18,0x1a,0x19,0x15,0x12,0x12,0x18,0x17,0x12,0x16,0x16,0x15,0x16,0x16,0x18, +0x12,0x14,0x16,0x15,0x19,0x14,0x14,0x15,0x15,0x1a,0x10,0x13,0x13,0x1c,0x11,0x11,0x19,0x1d,0x14,0x11,0x22,0x12,0x12,0x18,0x11,0x11,0x18,0x12,0x18,0x1a,0x1c,0x11,0x19,0x11,0x15,0x11,0x14,0x12,0x14,0x11,0x13,0x19,0x11,0x14,0x15,0x11,0x11,0x13,0x1f,0x11,0x11,0x13,0x13,0x0e,0x0b,0x12,0x12,0x12,0x11,0x12,0x1c,0x12,0x1c,0x10, +0x12,0x1c,0x15,0x12,0x1c,0x18,0x18,0x1c,0x12,0x12,0x1c,0x1c,0x12,0x12,0x12,0x12,0x12,0x12,0x1c,0x1c,0x13,0x12,0x12,0x1c,0x13,0x11,0x12,0x12,0x1c,0x19,0x16,0x16,0x16,0x16,0x17,0x14,0x16,0x19,0x16,0x15,0x11,0x19,0x16,0x16,0x12,0x15,0x16,0x18,0x17,0x13,0x16,0x15,0x17,0x15,0x19,0x16,0x17,0x17,0x16,0x14,0x16,0x16,0x17,0x19, +0x15,0x18,0x17,0x03,0x04,0x05,0x06,0x05,0x09,0x0b,0x1c,0x12,0x14,0x13,0x12,0x14,0x12,0x12,0x15,0x13,0x12,0x0a,0x1b,0x13,0x12,0x12,0x11,0x13,0x10,0x13,0x09,0x13,0x11,0x12,0x0d,0x1c,0x12,0x12,0x12,0x13,0x1b,0x12,0x13,0x0d,0x1b,0x13,0x13,0x16,0x16,0x07,0x09,0x24,0x24,0x24,0x24,0x2e,0x11,0x11,0x08,0x11,0x0c,0x11,0x11,0x12, +0x11,0x11,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x12,0x11,0x11,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x10,0x13,0x0e,0x0d,0x12,0x14,0x08,0x0a,0x10,0x0d,0x18,0x15,0x14,0x10,0x14,0x10,0x0d, +0x0e,0x13,0x10,0x1a,0x10,0x0f,0x0f,0x16,0x19,0x0d,0x14,0x10,0x13,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x08,0x08,0x15,0x14,0x14,0x14,0x14,0x14,0x13,0x13,0x13,0x13,0x0f,0x10,0x10,0x10,0x10,0x10,0x12,0x13,0x13,0x0e,0x0e,0x0e,0x0e,0x0e,0x12,0x12,0x10,0x14,0x14,0x08,0x08,0x08,0x08,0x08,0x12, +0x0a,0x10,0x0d,0x0d,0x0d,0x0d,0x15,0x15,0x15,0x15,0x14,0x14,0x14,0x10,0x10,0x10,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x13,0x13,0x13,0x13,0x1a,0x1a,0x1a,0x1a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x16,0x14,0x10,0x10,0x0d,0x11,0x0e,0x0f,0x14,0x14,0x08,0x10,0x10,0x18,0x15,0x0e,0x14,0x14,0x10,0x0f,0x0e,0x0f,0x14, +0x10,0x15,0x14,0x10,0x0e,0x14,0x08,0x14,0x0f,0x14,0x08,0x0f,0x0e,0x12,0x0d,0x10,0x0d,0x08,0x08,0x0a,0x1a,0x1a,0x14,0x10,0x10,0x13,0x10,0x10,0x10,0x0d,0x13,0x0e,0x18,0x0e,0x15,0x15,0x10,0x12,0x18,0x14,0x14,0x14,0x10,0x10,0x0e,0x10,0x14,0x10,0x14,0x12,0x1a,0x1b,0x12,0x17,0x10,0x10,0x1c,0x10,0x0d,0x13,0x13,0x14,0x1c,0x1c, +0x15,0x10,0x12,0x0d,0x12,0x12,0x12,0x16,0x11,0x11,0x16,0x13,0x13,0x0b,0x14,0x14,0x12,0x10,0x10,0x1d,0x18,0x0f,0x11,0x13,0x13,0x14,0x14,0x17,0x16,0x0b,0x1e,0x13,0x12,0x12,0x15,0x15,0x10,0x10,0x09,0x18,0x16,0x16,0x0f,0x16,0x07,0x07,0x0e,0x0e,0x07,0x07,0x14,0x0d,0x09,0x18,0x17,0x09,0x07,0x07,0x0e,0x0c,0x0c,0x07,0x07,0x07, +0x0c,0x16,0x0f,0x0a,0x13,0x16,0x13,0x13,0x10,0x18,0x12,0x13,0x0b,0x0e,0x11,0x0e,0x07,0x07,0x0c,0x11,0x0b,0x15,0x15,0x15,0x1d,0x18,0x1d,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x18,0x1b,0x0b,0x0b,0x10,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x13,0x13,0x13,0x10,0x10,0x25,0x1b,0x25,0x1b,0x2b,0x20,0x2b,0x20,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1d,0x1d,0x10,0x10,0x1d,0x1d,0x10,0x10,0x18,0x1b,0x0b,0x0b,0x18,0x1b,0x0b,0x0b,0x18,0x1b,0x0b,0x0b,0x20,0x18,0x1b,0x10,0x13,0x13,0x15,0x0b,0x15,0x18,0x10,0x10,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1d,0x0b,0x18,0x10,0x10,0x08,0x10,0x10,0x10,0x10,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b, +0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x25,0x1b,0x25,0x1b,0x25,0x1b,0x2b,0x20,0x2b,0x20,0x1b,0x1b,0x1b,0x20,0x20,0x20,0x20,0x20,0x20,0x18,0x10,0x10,0x18,0x10,0x10,0x1d,0x10,0x23,0x20,0x1d,0x10,0x1b,0x10,0x1b,0x10,0x1b,0x10,0x1d, +0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x15,0x15,0x15,0x15,0x15,0x0b,0x15,0x15,0x0b,0x0b,0x15,0x0b,0x15,0x0b,0x15,0x10,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x0b,0x10,0x0b,0x0b,0x0b,0x0b,0x00,0x25,0x1b,0x2b,0x20,0x1d,0x10,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b, +0x13,0x13,0x10,0x10,0x0d,0x25,0x1b,0x20,0x20,0x1d,0x1d,0x1d,0x13,0x13,0x13,0x13,0x15,0x0b,0x15,0x0b,0x15,0x0b,0x25,0x1b,0x13,0x15,0x13,0x13,0x13,0x15,0x13,0x13,0x25,0x25,0x1b,0x1b,0x0d,0x0d,0x13,0x13,0x13,0x13,0x0b,0x0b,0x0b,0x0b,0x18,0x1b,0x0b,0x0b,0x18,0x1b,0x0b,0x0b,0x18,0x1b,0x0b,0x0b,0x13,0x13,0x13,0x13,0x1d,0x0b, +0x1d,0x0b,0x13,0x15,0x13,0x13,0x25,0x25,0x1b,0x1b,0x25,0x25,0x1b,0x1b,0x1b,0x1b,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x08,0x08,0x0b,0x08,0x00,0x00,0x00,0x1b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x0d,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x18,0x15,0x15,0x15,0x15,0x15,0x15,0x13,0x1b,0x13,0x1b,0x13,0x1b,0x13,0x1b,0x15, +0x15,0x15,0x08,0x08,0x10,0x0d,0x13,0x14,0x12,0x11,0x12,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x12,0x11,0x13,0x14,0x14,0x15,0x13,0x12,0x15,0x10,0x15,0x18,0x14,0x18,0x1b,0x14,0x18,0x16,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x0f,0x11,0x13,0x13,0x15,0x12,0x15,0x12,0x13, +0x13,0x10,0x10,0x18,0x16,0x16,0x16,0x16,0x13,0x13,0x13,0x18,0x19,0x18,0x18,0x1e,0x1e,0x16,0x1e,0x1e,0x17,0x1c,0x1b,0x12,0x19,0x1b,0x18,0x13,0x1b,0x18,0x16,0x16,0x13,0x15,0x18,0x19,0x16,0x14,0x17,0x13,0x11,0x1e,0x1d,0x1d,0x1a,0x1e,0x1e,0x16,0x1e,0x1e,0x17,0x19,0x19,0x18,0x17,0x17,0x15,0x1c,0x18,0x1a,0x17,0x17,0x13,0x18, +0x16,0x16,0x1b,0x18,0x17,0x1d,0x11,0x10,0x12,0x11,0x14,0x14,0x16,0x17,0x13,0x12,0x12,0x11,0x12,0x11,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x10,0x11,0x13,0x14,0x13,0x13,0x0f,0x12,0x12,0x13,0x13,0x18,0x1b,0x15,0x15,0x14,0x19,0x14,0x16,0x10,0x0f,0x13,0x12,0x0f,0x10,0x12,0x12,0x0f,0x0f,0x14,0x0f,0x11,0x10,0x12,0x19,0x12,0x1a, +0x11,0x12,0x12,0x18,0x0a,0x19,0x16,0x17,0x15,0x12,0x18,0x13,0x19,0x13,0x13,0x13,0x13,0x13,0x13,0x12,0x13,0x13,0x13,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x0e,0x0e,0x0e,0x0f,0x0e,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x14,0x09,0x09,0x09,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x1d,0x1d,0x1d,0x1d,0x10, +0x18,0x17,0x10,0x0d,0x10,0x11,0x12,0x10,0x1b,0x1a,0x1c,0x0e,0x20,0x10,0x1b,0x1b,0x1b,0x1a,0x12,0x10,0x10,0x19,0x13,0x19,0x16,0x11,0x0f,0x0d,0x21,0x0d,0x11,0x10,0x10,0x10,0x10,0x10,0x2c,0x1b,0x1b,0x0e,0x08,0x0f,0x08,0x0f,0x08,0x08,0x08,0x0f,0x13,0x13,0x11,0x0c,0x0c,0x07,0x07,0x07,0x0c,0x07,0x0d,0x1c,0x07,0x1d,0x1d,0x1d, +0x13,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x25,0x25,0x15,0x25,0x25,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x0f,0x13,0x0f,0x11,0x0e,0x0b,0x0b,0x16,0x12,0x17,0x0e,0x24,0x1d, +0x13,0x12,0x1d,0x19,0x1b,0x18,0x21,0x1a,0x1e,0x19,0x15,0x0f,0x17,0x13,0x1e,0x17,0x18,0x13,0x18,0x13,0x1c,0x15,0x1c,0x15,0x23,0x1b,0x18,0x13,0x18,0x13,0x27,0x1c,0x19,0x00,0x20,0x20,0x20,0x0f,0x00,0x00,0x13,0x10,0x16,0x12,0x11,0x0e,0x22,0x1d,0x1e,0x1c,0x17,0x13,0x16,0x13,0x11,0x0d,0x18,0x13,0x11,0x0d,0x1a,0x15,0x15,0x12, +0x1f,0x1a,0x11,0x12,0x17,0x17,0x1a,0x0e,0x06,0x0f,0x16,0x0e,0x20,0x20,0x08,0x00,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x0d,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x13,0x13,0x13,0x13,0x13,0x13, +0x13,0x13,0x13,0x13,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, +0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0f,0x16,0x17,0x09,0x07,0x09,0x07,0x17,0x12,0x18,0x14,0x12,0x0f,0x11,0x0f,0x13,0x12,0x0d,0x0d,0x24,0x1a,0x25,0x1c,0x20,0x1b,0x1d,0x15,0x1d,0x15,0x1d, +0x15,0x14,0x0f,0x13,0x10,0x13,0x10,0x13,0x10,0x11,0x0a,0x0f,0x08,0x18,0x13,0x1b,0x16,0x2b,0x20,0x12,0x13,0x16,0x17,0x1a,0x1c,0x18,0x13,0x1f,0x19,0x11,0x0d,0x12,0x10,0x14,0x0f,0x1e,0x17,0x14,0x11,0x12,0x13,0x12,0x13,0x0f,0x0d,0x0f,0x0c,0x0f,0x0c,0x11,0x11,0x0a,0x16,0x0a,0x1f,0x15,0x0b,0x13,0x14,0x0f,0x18,0x12,0x0c,0x0b, +0x13,0x13,0x12,0x0f,0x08,0x18,0x13,0x0c,0x0b,0x14,0x0f,0x17,0x0c,0x19,0x13,0x14,0x0f,0x16,0x13,0x13,0x10,0x18,0x12,0x13,0x0b,0x11,0x0e,0x18,0x0e,0x11,0x1c,0x10,0x12,0x1d,0x09,0x25,0x1d,0x1d,0x26,0x1c,0x1d,0x1d,0x1c,0x1c,0x1e,0x11,0x0f,0x14,0x16,0x1d,0x16,0x1e,0x08,0x0f,0x13,0x1c,0x21,0x16,0x21,0x14,0x14,0x19,0x16,0x24, +0x1e,0x11,0x1d,0x0b,0x1d,0x0b,0x13,0x13,0x13,0x13,0x1b,0x1b,0x1b,0x1b,0x20,0x10,0x10,0x20,0x18,0x10,0x10,0x18,0x15,0x0b,0x0b,0x15,0x13,0x13,0x13,0x13,0x18,0x0b,0x0b,0x1b,0x18,0x0b,0x0b,0x1b,0x0d,0x0d,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x10,0x0d,0x12,0x11,0x18,0x13,0x13,0x1c,0x15,0x18,0x18,0x1b,0x1a,0x13,0x10,0x20,0x1a,0x21,0x1b,0x16,0x13,0x0a,0x0a,0x13,0x15,0x0d,0x13,0x11,0x13,0x0f,0x18,0x1a,0x0d,0x13,0x0e,0x07,0x0c,0x11,0x12,0x07,0x07,0x06,0x07,0x0c,0x0c,0x0c,0x0e,0x30,0x40,0x0b,0x0d,0x04,0x09,0x0c,0x0e,0x0a, +0x10,0x11,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x2b,0x11,0x18,0x1d,0x1d,0x15,0x0f,0x12,0x17,0x18,0x10,0x0a,0x15,0x11,0x16,0x12,0x15,0x11,0x11,0x18,0x13,0x13,0x11,0x18,0x14,0x1b,0x0f,0x11,0x14,0x0a,0x13,0x0b,0x0b,0x08,0x1c,0x13,0x12,0x11,0x11,0x13,0x1e,0x1e,0x1e,0x20,0x20,0x12,0x10, +0x09,0x10,0x0f,0x13,0x0f,0x15,0x08,0x12,0x13,0x1c,0x1c,0x14,0x11,0x12,0x11,0x11,0x0f,0x11,0x0f,0x0f,0x0a,0x0b,0x08,0x07,0x0c,0x13,0x14,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x00,0x09,0x09,0x09,0x08,0x08,0x36,0x20,0x1c,0x22,0x09,0x09,0x0a,0x0d,0x08,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x00,0x1d,0x0b,0x0b,0x1d,0x08,0x10,0x10,0x2b,0x20,0x20,0x2b,0x1d,0x10,0x10,0x1d,0x10,0x10,0x0d,0x0d,0x00,0x00,0x0b,0x18,0x13,0x17,0x12,0x28,0x21,0x16,0x12,0x16,0x12,0x2b,0x20,0x18,0x13,0x0c,0x0a,0x14,0x00,0x16,0x11,0x0b,0x0a,0x05,0x10,0x0b,0x0b,0x08,0x06,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x07,0x11,0x0e,0x13,0x12,0x12,0x1f,0x1a,0x1a,0x19,0x1a,0x1e,0x14,0x16,0x13,0x0d,0x1e,0x24,0x0e,0x25,0x10,0x1b,0x1d,0x1d,0x1d,0x0d,0x18,0x20,0x18,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x13,0x13,0x13,0x1b,0x10,0x10,0x1d,0x0b,0x0b,0x1d,0x0b,0x0b,0x1d,0x10,0x10,0x00,0x0d, +0x1b,0x0b,0x0b,0x20,0x10,0x10,0x18,0x10,0x10,0x15,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x30,0x30,0x1c,0x00,0x00,0x1c,0x1c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x14,0x15,0x15,0x1c,0x15,0x14,0x1a,0x1f,0x15,0x14,0x22,0x14,0x14,0x1e,0x14, +0x16,0x19,0x14,0x19,0x1b,0x1d,0x14,0x19,0x15,0x16,0x14,0x16,0x14,0x15,0x16,0x14,0x19,0x13,0x15,0x19,0x14,0x14,0x12,0x19,0x15,0x15,0x15,0x16,0x0e,0x11,0x15,0x19,0x19,0x11,0x00,0x00,0x21,0x42,0x15,0x00,0x03,0x09,0x09,0x0d,0x14,0x12,0x1b,0x1a,0x08,0x0a,0x0a,0x0e,0x17,0x07,0x0d,0x07,0x0d,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x07,0x07,0x17,0x17,0x17,0x0f,0x20,0x15,0x13,0x14,0x17,0x11,0x10,0x17,0x17,0x09,0x0c,0x13,0x10,0x1e,0x19,0x19,0x12,0x19,0x14,0x12,0x11,0x17,0x15,0x1f,0x13,0x12,0x13,0x0a,0x0d,0x0a,0x17,0x0e,0x09,0x11,0x13,0x0f,0x13,0x11,0x0a,0x13,0x13,0x08,0x08,0x10,0x08,0x1c,0x13,0x13,0x13,0x13,0x0b,0x0e,0x0b,0x13,0x10, +0x18,0x0f,0x10,0x0f,0x0a,0x08,0x0a,0x17,0x15,0x15,0x14,0x11,0x19,0x19,0x17,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x11,0x11,0x11,0x11,0x08,0x08,0x08,0x08,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0c,0x0c,0x12,0x12,0x0f,0x0d,0x0f,0x12,0x0d,0x1d,0x1d,0x1a,0x09,0x0e,0x17,0x1c,0x19,0x1b,0x17,0x17,0x17,0x12,0x13,0x12, +0x14,0x19,0x12,0x0d,0x0e,0x19,0x1b,0x13,0x0f,0x09,0x09,0x17,0x15,0x12,0x17,0x15,0x11,0x11,0x18,0x15,0x15,0x19,0x1f,0x1f,0x11,0x21,0x0c,0x0c,0x08,0x08,0x17,0x13,0x10,0x12,0x06,0x12,0x0a,0x0a,0x12,0x12,0x0c,0x07,0x08,0x0c,0x28,0x15,0x11,0x15,0x11,0x11,0x09,0x09,0x09,0x09,0x19,0x19,0x19,0x17,0x17,0x17,0x08,0x0c,0x0b,0x0a, +0x0a,0x07,0x09,0x07,0x0b,0x06,0x0c,0x10,0x09,0x12,0x0e,0x13,0x0f,0x08,0x17,0x12,0x12,0x10,0x12,0x13,0x17,0x17,0x0c,0x0c,0x0c,0x1f,0x1e,0x1f,0x10,0x17,0x13,0x09,0x12,0x0e,0x14,0x0f,0x14,0x0f,0x13,0x0e,0x07,0x15,0x11,0x15,0x11,0x17,0x16,0x17,0x11,0x11,0x11,0x11,0x10,0x08,0x10,0x0a,0x10,0x0a,0x19,0x13,0x19,0x13,0x19,0x13, +0x14,0x0b,0x14,0x0b,0x12,0x0e,0x11,0x0b,0x11,0x0f,0x17,0x13,0x17,0x13,0x13,0x0f,0x13,0x0f,0x10,0x19,0x19,0x14,0x13,0x0e,0x13,0x10,0x17,0x0e,0x10,0x0d,0x25,0x15,0x10,0x14,0x08,0x0c,0x1b,0x0b,0x14,0x0c,0x0c,0x14,0x0c,0x15,0x11,0x14,0x0f,0x14,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17, +0x13,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x0c,0x08,0x13,0x10,0x10,0x10,0x08,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x14,0x0b,0x12,0x0e,0x11,0x0b,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x1f,0x18,0x12,0x10,0x08,0x15,0x11,0x1c,0x1b,0x19,0x13,0x07,0x1f,0x18,0x1f,0x18,0x1f,0x18,0x12,0x10,0x08,0x0e,0x12,0x14,0x1e,0x1e, +0x1f,0x1d,0x0d,0x0d,0x07,0x09,0x09,0x15,0x13,0x1a,0x0c,0x1a,0x16,0x1b,0x09,0x15,0x13,0x11,0x13,0x17,0x09,0x13,0x15,0x1e,0x19,0x11,0x19,0x18,0x12,0x11,0x11,0x12,0x13,0x1a,0x19,0x09,0x12,0x14,0x0e,0x13,0x09,0x12,0x12,0x11,0x0f,0x13,0x13,0x09,0x11,0x10,0x13,0x11,0x0f,0x13,0x13,0x0f,0x12,0x12,0x19,0x1b,0x09,0x12,0x13,0x12, +0x1b,0x11,0x17,0x10,0x14,0x12,0x09,0x20,0x20,0x18,0x13,0x13,0x17,0x15,0x13,0x13,0x10,0x17,0x11,0x1d,0x12,0x19,0x19,0x13,0x16,0x1e,0x17,0x19,0x18,0x12,0x14,0x11,0x13,0x18,0x13,0x19,0x16,0x1f,0x20,0x17,0x1a,0x13,0x14,0x22,0x14,0x11,0x13,0x11,0x0d,0x12,0x11,0x19,0x0f,0x13,0x13,0x10,0x11,0x17,0x13,0x13,0x13,0x13,0x0f,0x0e, +0x10,0x17,0x0f,0x14,0x13,0x1a,0x1b,0x14,0x17,0x11,0x0f,0x1b,0x11,0x11,0x13,0x0d,0x0f,0x0e,0x08,0x1a,0x1b,0x13,0x10,0x10,0x13,0x0f,0x0d,0x21,0x25,0x15,0x0c,0x0c,0x0c,0x0c,0x08,0x12,0x0e,0x12,0x19,0x14,0x17,0x13,0x0a,0x0b,0x09,0x09,0x10,0x10,0x10,0x10,0x0a,0x0a,0x0a,0x10,0x0a,0x10,0x0a,0x0a,0x0a,0x10,0x10,0x15,0x11,0x15, +0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x08,0x09,0x08,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x14,0x19,0x14,0x19,0x14,0x19,0x14,0x19, +0x14,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x12,0x10,0x12,0x10,0x12,0x10,0x11,0x0b,0x11,0x11,0x19,0x13,0x09,0x0c,0x08,0x08,0x11,0x0e,0x1e,0x1a,0x14,0x12,0x13,0x10,0x19,0x14,0x12,0x10,0x12,0x10,0x15,0x10,0x16,0x13,0x16,0x13,0x18,0x11,0x19,0x13,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x10,0x10,0x10, +0x10,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x11,0x11,0x15,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x0f,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x0a,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x09,0x08,0x09,0x08,0x13,0x10,0x13,0x10,0x13,0x10,0x10, +0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x1e,0x1c,0x1e,0x1c,0x1e,0x1c,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x12,0x13,0x12,0x13,0x14,0x0b,0x14,0x0b,0x14,0x0b,0x14,0x0b,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x11,0x0b,0x11,0x0b,0x11,0x0b,0x11,0x0b,0x17,0x13,0x17,0x13,0x17, +0x13,0x17,0x13,0x17,0x13,0x15,0x10,0x15,0x10,0x1f,0x18,0x1f,0x18,0x13,0x0f,0x13,0x0f,0x12,0x10,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0b,0x18,0x10,0x11,0x08,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x18,0x18,0x18,0x18,0x13,0x13,0x13,0x13,0x13, +0x13,0x13,0x13,0x1a,0x1a,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x10,0x10,0x11,0x11,0x11,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x1b,0x1b,0x1f,0x1f,0x1f,0x1f,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x16,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x20,0x20,0x20, +0x20,0x20,0x20,0x14,0x14,0x0e,0x0e,0x13,0x13,0x09,0x09,0x13,0x13,0x12,0x12,0x1b,0x1b,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1a,0x1a,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x20,0x20,0x20,0x20,0x20, +0x20,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1a,0x1a,0x17,0x13,0x13,0x13,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x13,0x13,0x13,0x12,0x12,0x12,0x12,0x13,0x13,0x12,0x12,0x12,0x12,0x16,0x16,0x15,0x13,0x13,0x13,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1c,0x1b,0x19,0x13,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x14,0x13,0x13,0x13,0x13,0x14,0x14,0x0f,0x17,0x18,0x13,0x13,0x14,0x11,0x12,0x10,0x17,0x15,0x1d,0x0a,0x09,0x13,0x10,0x08,0x10,0x1d,0x19,0x13,0x19,0x20,0x1a,0x14,0x13,0x13,0x12,0x0e,0x11,0x0a,0x0b,0x11,0x0b, +0x11,0x19,0x18,0x13,0x11,0x13,0x0f,0x14,0x14,0x0f,0x0e,0x12,0x12,0x0d,0x0d,0x12,0x08,0x0d,0x0f,0x09,0x29,0x26,0x22,0x1c,0x18,0x11,0x23,0x20,0x1b,0x15,0x11,0x09,0x08,0x19,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x11,0x15,0x11,0x15,0x11,0x1c,0x1b,0x17,0x13,0x17,0x13,0x13,0x10,0x19,0x13,0x19,0x13,0x14,0x0f, +0x08,0x29,0x26,0x22,0x17,0x13,0x21,0x17,0x19,0x13,0x15,0x11,0x15,0x11,0x11,0x11,0x11,0x11,0x09,0x08,0x09,0x08,0x19,0x13,0x19,0x13,0x13,0x0b,0x14,0x0b,0x17,0x13,0x17,0x13,0x11,0x0e,0x17,0x13,0x18,0x13,0x13,0x13,0x0f,0x15,0x11,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x12,0x10,0x13,0x11,0x13,0x13,0x13,0x11,0x13,0x13,0x13, +0x0f,0x0f,0x13,0x13,0x11,0x14,0x0e,0x0e,0x11,0x12,0x09,0x13,0x13,0x11,0x10,0x0f,0x13,0x13,0x13,0x09,0x09,0x0b,0x09,0x0c,0x08,0x14,0x1c,0x1c,0x1c,0x12,0x12,0x13,0x13,0x17,0x18,0x15,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x0d,0x08,0x09,0x0a,0x09,0x0b,0x0b,0x14,0x14,0x12,0x10,0x18,0x10,0x0e,0x0f,0x11,0x0f,0x0f,0x0c, +0x0c,0x0c,0x0f,0x14,0x10,0x12,0x11,0x13,0x08,0x10,0x0d,0x13,0x0c,0x0c,0x1e,0x1f,0x20,0x14,0x10,0x18,0x1a,0x13,0x13,0x10,0x10,0x12,0x14,0x13,0x16,0x13,0x15,0x1a,0x13,0x17,0x13,0x13,0x0f,0x10,0x0f,0x14,0x11,0x14,0x10,0x1d,0x1c,0x14,0x11,0x15,0x12,0x14,0x0f,0x14,0x10,0x16,0x13,0x13,0x0d,0x13,0x13,0x0f,0x08,0x19,0x0f,0x0f, +0x1c,0x16,0x15,0x13,0x1e,0x18,0x16,0x10,0x1d,0x17,0x18,0x13,0x1f,0x19,0x12,0x0f,0x1a,0x19,0x19,0x13,0x18,0x13,0x18,0x13,0x2b,0x25,0x1b,0x15,0x25,0x1e,0x1c,0x16,0x13,0x0e,0x11,0x0d,0x0e,0x00,0x00,0x21,0x1f,0x13,0x11,0x13,0x13,0x13,0x11,0x12,0x0f,0x13,0x10,0x17,0x13,0x1c,0x16,0x21,0x1c,0x18,0x12,0x14,0x0f,0x11,0x0e,0x1d, +0x17,0x17,0x13,0x1c,0x15,0x1c,0x15,0x09,0x1d,0x19,0x13,0x11,0x17,0x13,0x16,0x13,0x15,0x11,0x15,0x11,0x1c,0x1b,0x11,0x11,0x18,0x11,0x18,0x11,0x1d,0x19,0x12,0x0f,0x11,0x0f,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x14,0x0f,0x13,0x10,0x13,0x10,0x13,0x10,0x16,0x13,0x1a,0x17,0x13,0x13,0x1c,0x1c,0x1b,0x18,0x12,0x10,0x1e,0x1a, +0x21,0x1c,0x18,0x12,0x16,0x14,0x13,0x13,0x13,0x11,0x13,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x13,0x0b,0x0b,0x05,0x07,0x07,0x07,0x09,0x0d,0x09,0x08,0x0c,0x07,0x07,0x07,0x0b,0x0b,0x07,0x07,0x13,0x13,0x13,0x13,0x0b,0x09,0x09,0x0b,0x0a,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0a,0x0b,0x0b,0x0a,0x05,0x08,0x09,0x07,0x0d,0x0d,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x0e,0x0b,0x08,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0d, +0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x15,0x0a,0x15,0x0b,0x14,0x14,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x0b,0x0b,0x0b,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x13,0x0f,0x16,0x1b,0x10,0x0f,0x12,0x12,0x0e,0x0e,0x08,0x0a,0x10,0x0d,0x17,0x13,0x13,0x10,0x14,0x14,0x14,0x1f,0x12,0x14,0x14,0x0f,0x0f,0x0f,0x0e,0x12,0x13,0x18,0x13,0x10,0x18,0x0f,0x0e,0x0e,0x11,0x0d,0x0f,0x13,0x0f,0x14,0x13,0x0c,0x10,0x0b,0x0c,0x0e,0x0a,0x0a,0x0e,0x0e,0x06,0x08,0x0c, +0x09,0x11,0x0e,0x0e,0x0e,0x0d,0x0b,0x0b,0x0a,0x0e,0x11,0x0a,0x0a,0x0b,0x10,0x0b,0x0b,0x0a,0x0a,0x09,0x09,0x0b,0x05,0x0a,0x10,0x0b,0x0b,0x09,0x0b,0x0b,0x0b,0x07,0x0b,0x0b,0x10,0x09,0x0b,0x0b,0x0a,0x0b,0x0d,0x0a,0x05,0x07,0x0b,0x09,0x0b,0x0a,0x0b,0x0d,0x0a,0x13,0x05,0x0b,0x12,0x1d,0x15,0x12,0x12,0x1c,0x15,0x1c,0x19,0x11, +0x13,0x11,0x0f,0x25,0x0f,0x13,0x1d,0x1f,0x1f,0x15,0x15,0x14,0x0f,0x10,0x11,0x0e,0x0f,0x11,0x07,0x00,0x00,0x00,0x00,0x13,0x14,0x14,0x14,0x10,0x0d,0x13,0x13,0x0a,0x1c,0x13,0x13,0x0b,0x0b,0x0f,0x0b,0x0f,0x13,0x0f,0x13,0x1e,0x15,0x0b,0x09,0x13,0x12,0x14,0x13,0x13,0x0a,0x13,0x10,0x08,0x1c,0x13,0x13,0x0b,0x0e,0x0e,0x10,0x0f, +0x0f,0x11,0x13,0x13,0x11,0x0e,0x0f,0x18,0x08,0x0f,0x08,0x13,0x0f,0x0b,0x09,0x09,0x0b,0x09,0x06,0x05,0x0b,0x0b,0x05,0x06,0x06,0x06,0x05,0x06,0x05,0x07,0x10,0x10,0x0b,0x0b,0x0c,0x0b,0x0c,0x08,0x05,0x07,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x0a,0x09,0x0b,0x00,0x00,0x00,0x00,0x07,0x0a,0x0a,0x0b,0x09,0x0a,0x12,0x12,0x12,0x12, +0x0b,0x00,0x00,0x00,0x00,0x0f,0x0a,0x09,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x09,0x09,0x09,0x12,0x12,0x12,0x12,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x12,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x06,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x1a,0x15,0x17,0x13,0x19,0x15,0x1f,0x19,0x12,0x0c,0x11,0x17,0x12,0x1b,0x17,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x13,0x13,0x13,0x13,0x13,0x13,0x1c,0x1c,0x21,0x0e,0x08,0x11, +0x13,0x0e,0x11,0x11,0x13,0x13,0x11,0x21,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x15,0x11,0x11,0x11,0x0b,0x13,0x0b,0x19,0x16,0x11,0x0b,0x1c,0x11,0x1c,0x08,0x0b,0x13,0x13,0x15,0x15,0x15,0x13,0x13,0x13,0x1c,0x08,0x13,0x08,0x11,0x0e,0x08,0x08,0x11,0x08,0x19,0x08,0x1e,0x11,0x1e,0x1e,0x13,0x13,0x13,0x11,0x11,0x0e,0x0e,0x27, +0x27,0x2c,0x2c,0x1c,0x1c,0x11,0x11,0x06,0x21,0x19,0x1c,0x16,0x13,0x16,0x11,0x11,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x08,0x15,0x00,0x15,0x15,0x15,0x0b,0x11,0x11,0x1e,0x0b,0x1e,0x0b,0x13,0x16,0x13,0x0e,0x1e,0x11,0x1e,0x11,0x19,0x1c,0x0b,0x11,0x11,0x0e,0x08,0x11,0x13,0x11,0x13,0x11,0x13,0x13,0x11,0x16, +0x15,0x1e,0x0b,0x11,0x0e,0x16,0x11,0x0b,0x11,0x11,0x11,0x1e,0x0b,0x1e,0x0b,0x08,0x13,0x0d,0x21,0x11,0x11,0x15,0x15,0x21,0x11,0x00,0x00,0x00,0x15,0x00,0x15,0x15,0x15,0x15,0x19,0x15,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x0e,0x0e,0x11,0x11,0x19,0x1c,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x13,0x13, +0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x16,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x0e,0x0e,0x11,0x0e,0x0e,0x0e,0x27,0x1c,0x27,0x1c,0x27,0x1c,0x2c,0x21,0x2c,0x21,0x1c,0x11,0x13,0x13,0x13,0x21,0x21,0x11,0x11,0x21,0x11,0x11,0x21,0x11,0x11,0x21,0x11,0x11,0x19,0x19,0x24,0x21,0x1e, +0x11,0x1c,0x11,0x1c,0x11,0x1c,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x16,0x0b,0x16,0x0b,0x12,0x16,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1c,0x1e,0x19,0x1c,0x0b,0x11,0x19,0x1c,0x19,0x1c,0x00,0x00,0x00,0x00,0x00,0x25,0x24,0x00,0x00,0x00,0x00, +0x00,0x00,0x08,0x0e,0x00,0x00,0x14,0x00,0x00,0x00,0x27,0x1c,0x2c,0x21,0x11,0x13,0x13,0x13,0x0e,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x1e,0x1e,0x0c,0x13,0x13,0x14,0x28,0x1b,0x12,0x32,0x24,0x0b,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x11,0x0e,0x0e,0x19,0x16, +0x16,0x11,0x00,0x00,0x00,0x0b,0x0b,0x0b,0x0b,0x29,0x32,0x00,0x00,0x00,0x00,0x00,0x13,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x0e,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x13,0x13,0x13,0x13,0x16,0x13,0x11,0x11,0x0e,0x27,0x1c,0x11,0x13,0x13,0x13,0x11,0x13,0x13,0x13,0x11,0x13,0x13,0x13,0x21,0x11,0x11, +0x21,0x11,0x11,0x1e,0x11,0x11,0x1e,0x11,0x11,0x1e,0x11,0x11,0x13,0x13,0x13,0x13,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x16,0x0b,0x0b,0x0e,0x0e,0x27,0x1c,0x15,0x13,0x13,0x00,0x11,0x11,0x11,0x0c,0x13,0x17,0x15,0x11,0x11,0x0c,0x08,0x19,0x13,0x14,0x0b,0x12,0x10,0x10,0x0f,0x10,0x08,0x11,0x0e,0x14,0x10,0x13,0x0f,0x12,0x0e,0x16, +0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x0f,0x10,0x10,0x09,0x11,0x12,0x14,0x11,0x0b,0x19,0x13,0x15,0x12,0x14,0x10,0x13,0x11,0x0d,0x17,0x0c,0x0e,0x0e,0x10,0x14,0x14,0x11,0x21,0x11,0x21,0x0b,0x08,0x06,0x12,0x07,0x04,0x00,0x05,0x07,0x00,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x11, +0x11,0x1f,0x0e,0x19,0x13,0x1f,0x18,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x1e,0x1c,0x10,0x1c,0x10,0x1c,0x15,0x17,0x17,0x17,0x19,0x1c,0x21,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x17,0x17,0x17,0x17,0x18,0x13,0x23,0x1b,0x10,0x10,0x09,0x09,0x09,0x0c,0x07,0x13,0x08,0x08,0x1c,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x15,0x13,0x0e,0x10,0x16,0x09,0x0b,0x16,0x16,0x09,0x12,0x12,0x12,0x17,0x16,0x09,0x0d,0x16,0x14,0x14,0x15,0x13,0x13,0x16,0x12,0x1a,0x18,0x11,0x11,0x11,0x08,0x0c,0x12,0x12,0x12,0x12,0x12,0x14,0x15,0x10,0x16,0x12,0x12,0x17,0x12,0x18,0x12,0x1a,0x1a,0x1a, +0x1a,0x15,0x15,0x15,0x13,0x0e,0x10,0x16,0x0a,0x0c,0x16,0x0a,0x12,0x12,0x12,0x16,0x0d,0x16,0x14,0x15,0x13,0x16,0x12,0x1a,0x18,0x09,0x13,0x12,0x15,0x16,0x28,0x00,0x15,0x12,0x16,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x0d,0x09,0x00,0x19,0x15,0x16,0x17,0x12,0x16,0x19,0x19,0x10,0x15,0x19,0x18,0x16,0x19,0x1b,0x1a,0x16,0x12,0x12,0x19,0x17,0x13,0x17,0x16,0x16,0x16,0x17,0x18,0x13,0x15,0x16,0x16,0x1a,0x15,0x14,0x15,0x16,0x1b,0x10,0x13,0x13,0x1d,0x12,0x12,0x19,0x1d,0x14,0x12,0x23,0x13,0x13,0x19,0x12,0x12,0x19,0x13, +0x19,0x1b,0x1d,0x12,0x19,0x12,0x16,0x12,0x14,0x13,0x15,0x12,0x14,0x19,0x12,0x14,0x16,0x12,0x12,0x14,0x20,0x12,0x12,0x13,0x13,0x0e,0x0b,0x12,0x12,0x12,0x12,0x12,0x1d,0x12,0x1d,0x10,0x12,0x1d,0x16,0x12,0x1d,0x19,0x19,0x1d,0x13,0x12,0x1d,0x1d,0x12,0x12,0x12,0x12,0x12,0x12,0x1d,0x1d,0x13,0x12,0x13,0x1d,0x14,0x12,0x12,0x12, +0x1d,0x1a,0x17,0x17,0x17,0x17,0x17,0x15,0x17,0x1a,0x17,0x15,0x12,0x1a,0x16,0x17,0x13,0x16,0x17,0x19,0x18,0x13,0x17,0x16,0x18,0x16,0x1a,0x17,0x18,0x18,0x17,0x15,0x17,0x16,0x18,0x1a,0x16,0x19,0x18,0x03,0x04,0x05,0x06,0x05,0x09,0x0c,0x1c,0x13,0x14,0x14,0x13,0x14,0x13,0x13,0x15,0x14,0x13,0x0a,0x1c,0x13,0x13,0x13,0x12,0x14, +0x11,0x13,0x09,0x13,0x11,0x13,0x0e,0x1c,0x12,0x13,0x13,0x14,0x1b,0x13,0x13,0x0d,0x1b,0x13,0x13,0x17,0x16,0x07,0x09,0x25,0x25,0x25,0x25,0x2f,0x12,0x12,0x08,0x12,0x0d,0x12,0x12,0x13,0x12,0x12,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x13,0x12,0x12,0x11,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x10,0x11,0x13,0x0e,0x0e,0x13,0x14,0x08,0x0a,0x10,0x0e,0x19,0x15,0x14,0x10,0x14,0x10,0x0e,0x0f,0x14,0x11,0x1a,0x11,0x0f,0x10,0x17,0x1a,0x0e,0x15,0x10,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x08, +0x08,0x15,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0f,0x11,0x11,0x11,0x11,0x11,0x13,0x13,0x13,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x11,0x14,0x14,0x08,0x08,0x08,0x08,0x08,0x13,0x0a,0x10,0x0e,0x0e,0x0e,0x0e,0x15,0x15,0x15,0x16,0x14,0x14,0x14,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f,0x0f,0x0f,0x14,0x14,0x14,0x14, +0x14,0x14,0x1a,0x1a,0x1a,0x1a,0x0f,0x0f,0x0f,0x10,0x10,0x10,0x11,0x17,0x15,0x11,0x10,0x0d,0x12,0x0e,0x10,0x14,0x14,0x08,0x10,0x11,0x19,0x15,0x0f,0x14,0x14,0x10,0x0f,0x0f,0x0f,0x15,0x11,0x16,0x15,0x11,0x0e,0x14,0x08,0x14,0x0f,0x15,0x08,0x0f,0x0e,0x13,0x0d,0x11,0x0e,0x08,0x08,0x0a,0x1b,0x1b,0x14,0x10,0x10,0x14,0x11,0x10, +0x10,0x0d,0x13,0x0e,0x18,0x0f,0x15,0x15,0x10,0x13,0x19,0x14,0x14,0x14,0x10,0x11,0x0f,0x10,0x15,0x11,0x15,0x12,0x1b,0x1b,0x13,0x17,0x10,0x11,0x1c,0x10,0x0d,0x13,0x13,0x15,0x1d,0x1d,0x16,0x11,0x13,0x0e,0x13,0x12,0x12,0x17,0x11,0x11,0x17,0x13,0x13,0x0c,0x14,0x14,0x13,0x10,0x10,0x1e,0x19,0x10,0x12,0x14,0x14,0x15,0x15,0x17, +0x17,0x0c,0x1f,0x13,0x12,0x13,0x15,0x15,0x11,0x11,0x09,0x19,0x17,0x17,0x10,0x17,0x07,0x07,0x0e,0x0e,0x07,0x07,0x14,0x0d,0x09,0x19,0x17,0x09,0x07,0x07,0x0f,0x0c,0x0c,0x08,0x08,0x08,0x0c,0x16,0x10,0x0a,0x14,0x17,0x13,0x13,0x10,0x19,0x13,0x14,0x0b,0x0f,0x12,0x0e,0x07,0x08,0x0d,0x11,0x0b,0x16,0x16,0x16,0x1e,0x19,0x1e,0x08, +0x00,0x00,0x00,0x00,0x00,0x08,0x19,0x1c,0x0b,0x0b,0x11,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x13,0x13,0x13,0x11,0x11,0x27,0x1c,0x27,0x1c,0x2c,0x21,0x2c,0x21,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1e,0x1e,0x11,0x11,0x1e,0x1e,0x11,0x11,0x19,0x1c,0x0b,0x0b,0x19,0x1c,0x0b,0x0b,0x19,0x1c,0x0b,0x0b,0x21,0x19,0x1c,0x11,0x13,0x13,0x16, +0x0b,0x16,0x19,0x11,0x11,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1e,0x0b,0x19,0x11,0x11,0x08,0x11,0x11,0x11,0x11,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x27,0x1c, +0x27,0x1c,0x27,0x1c,0x2c,0x21,0x2c,0x21,0x1c,0x1c,0x1c,0x21,0x21,0x21,0x21,0x21,0x21,0x19,0x11,0x11,0x19,0x11,0x11,0x1e,0x11,0x24,0x21,0x1e,0x11,0x1c,0x11,0x1c,0x11,0x1c,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x16,0x16,0x16,0x16,0x16,0x0b,0x16,0x16,0x0b,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x11,0x13, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x0b,0x11,0x0b,0x0b,0x0b,0x0b,0x00,0x27,0x1c,0x2c,0x21,0x1e,0x11,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x13,0x13,0x11,0x11,0x0e,0x27,0x1c,0x21,0x21,0x1e,0x1e,0x1e,0x13,0x13,0x13,0x13,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x27,0x1c,0x13,0x16,0x13,0x13, +0x13,0x16,0x13,0x13,0x27,0x27,0x1c,0x1c,0x0e,0x0e,0x13,0x13,0x13,0x13,0x0b,0x0b,0x0b,0x0b,0x19,0x1c,0x0b,0x0b,0x19,0x1c,0x0b,0x0b,0x19,0x1c,0x0b,0x0b,0x13,0x13,0x13,0x13,0x1e,0x0b,0x1e,0x0b,0x13,0x16,0x13,0x13,0x27,0x27,0x1c,0x1c,0x27,0x27,0x1c,0x1c,0x1c,0x1c,0x11,0x11,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00, +0x08,0x08,0x0b,0x08,0x00,0x00,0x00,0x1c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x19,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x1c,0x13,0x1c,0x13,0x1c,0x13,0x1c,0x16,0x16,0x16,0x08,0x08,0x11,0x0e,0x13,0x15,0x13,0x12,0x12,0x13,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x0f,0x12,0x11, +0x13,0x14,0x14,0x16,0x13,0x13,0x15,0x11,0x16,0x19,0x15,0x19,0x1b,0x15,0x19,0x17,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x12,0x0f,0x12,0x14,0x14,0x16,0x13,0x15,0x13,0x14,0x14,0x11,0x11,0x19,0x16,0x17,0x16,0x16,0x14,0x13,0x13,0x18,0x19,0x19,0x19,0x1e,0x1e,0x17,0x1e,0x1e,0x18,0x1d,0x1c,0x12,0x19,0x1c,0x19,0x14, +0x1c,0x18,0x17,0x17,0x14,0x15,0x19,0x1a,0x17,0x14,0x17,0x13,0x12,0x1e,0x1e,0x1e,0x1b,0x1e,0x1e,0x17,0x1e,0x1e,0x17,0x19,0x1a,0x19,0x18,0x18,0x15,0x1d,0x19,0x1b,0x18,0x18,0x13,0x18,0x17,0x17,0x1c,0x19,0x18,0x1e,0x12,0x11,0x12,0x12,0x14,0x15,0x17,0x18,0x13,0x13,0x13,0x12,0x13,0x12,0x12,0x13,0x13,0x13,0x13,0x13,0x13,0x11, +0x11,0x13,0x14,0x14,0x14,0x0f,0x13,0x13,0x13,0x14,0x19,0x1c,0x16,0x16,0x15,0x19,0x15,0x17,0x11,0x10,0x13,0x13,0x10,0x10,0x12,0x12,0x10,0x0f,0x15,0x0f,0x12,0x10,0x12,0x1a,0x13,0x1b,0x12,0x13,0x13,0x19,0x0a,0x1a,0x17,0x18,0x16,0x13,0x19,0x14,0x1a,0x14,0x14,0x14,0x14,0x14,0x14,0x13,0x14,0x14,0x14,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x15,0x09,0x09,0x09,0x0a,0x0a,0x09,0x09,0x09,0x0a,0x09,0x09,0x09,0x1e,0x1e,0x1e,0x1e,0x10,0x18,0x18,0x10,0x0d,0x10,0x11,0x12,0x10,0x1c,0x1b,0x1c,0x0f,0x21,0x10,0x1c,0x1c,0x1c,0x1b,0x13,0x10,0x10,0x1a,0x13,0x1a,0x16,0x12,0x0f,0x0d, +0x22,0x0e,0x12,0x10,0x10,0x10,0x10,0x10,0x2d,0x1c,0x1c,0x0e,0x08,0x0f,0x08,0x0f,0x08,0x08,0x08,0x10,0x13,0x13,0x12,0x0c,0x0c,0x08,0x08,0x08,0x0c,0x08,0x0e,0x1c,0x07,0x1e,0x1e,0x1e,0x13,0x13,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x27,0x27,0x16,0x27,0x27,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x0f,0x13,0x0f,0x12,0x0e,0x0c,0x0b,0x17,0x12,0x18,0x0e,0x25,0x1d,0x14,0x12,0x1e,0x1a,0x1c,0x19,0x22,0x1b,0x1f,0x1a,0x15,0x10,0x18,0x13,0x1f,0x18,0x19,0x14,0x19,0x14,0x1c,0x16,0x1d,0x16,0x24,0x1c,0x19,0x13, +0x19,0x13,0x28,0x1d,0x1a,0x00,0x21,0x21,0x21,0x10,0x00,0x00,0x13,0x11,0x17,0x12,0x12,0x0e,0x24,0x1e,0x1f,0x1c,0x18,0x13,0x17,0x13,0x11,0x0e,0x18,0x14,0x11,0x0e,0x1b,0x16,0x16,0x13,0x20,0x1b,0x12,0x13,0x18,0x18,0x1b,0x0f,0x07,0x0f,0x17,0x0e,0x21,0x21,0x08,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x0d, +0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x12,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1e,0x1e,0x1e,0x1e, +0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00, +0x00,0x00,0x00,0x00,0x00,0x0e,0x10,0x16,0x18,0x09,0x07,0x09,0x07,0x17,0x13,0x19,0x15,0x12,0x10,0x12,0x10,0x14,0x13,0x0e,0x0e,0x25,0x1b,0x26,0x1d,0x21,0x1c,0x1e,0x16,0x1e,0x16,0x1e,0x16,0x14,0x0f,0x13,0x10,0x13,0x10,0x13,0x10,0x12,0x0a,0x10,0x08,0x19,0x13,0x1c,0x16,0x2c,0x21,0x12,0x13,0x17,0x17,0x1b,0x1c,0x19,0x13,0x20, +0x1a,0x12,0x0d,0x12,0x10,0x15,0x10,0x1f,0x18,0x14,0x11,0x12,0x13,0x12,0x13,0x10,0x0d,0x10,0x0d,0x10,0x0c,0x11,0x11,0x0a,0x16,0x0b,0x20,0x16,0x0b,0x13,0x14,0x0f,0x19,0x12,0x0d,0x0b,0x13,0x13,0x13,0x10,0x08,0x19,0x14,0x0c,0x0b,0x15,0x0f,0x17,0x0d,0x1a,0x14,0x14,0x0f,0x17,0x13,0x13,0x10,0x19,0x13,0x14,0x0b,0x12,0x0e,0x19, +0x0e,0x12,0x1c,0x10,0x12,0x1e,0x09,0x26,0x1d,0x1e,0x27,0x1d,0x1e,0x1e,0x1d,0x1d,0x1e,0x11,0x10,0x14,0x17,0x1e,0x17,0x1f,0x08,0x0f,0x13,0x1c,0x22,0x17,0x22,0x14,0x14,0x1a,0x17,0x26,0x1e,0x11,0x1e,0x0b,0x1e,0x0b,0x13,0x13,0x13,0x13,0x1c,0x1c,0x1c,0x1c,0x21,0x11,0x11,0x21,0x19,0x11,0x11,0x19,0x16,0x0b,0x0b,0x16,0x13,0x13, +0x13,0x13,0x19,0x0b,0x0b,0x1c,0x19,0x0b,0x0b,0x1c,0x0e,0x0e,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x11,0x0d,0x13,0x11,0x19,0x13,0x13,0x1d,0x16,0x19,0x19,0x1b,0x1b,0x13,0x10,0x21,0x1b,0x22,0x1c,0x17, +0x13,0x0a,0x0a,0x13,0x15,0x0d,0x14,0x11,0x13,0x10,0x18,0x1a,0x0d,0x13,0x0e,0x07,0x0c,0x12,0x12,0x07,0x07,0x06,0x07,0x0c,0x0c,0x0c,0x0f,0x31,0x42,0x0b,0x0e,0x04,0x09,0x0d,0x0e,0x0a,0x10,0x11,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x10,0x10,0x10,0x10,0x10,0x2c,0x12,0x19,0x1e,0x1e,0x15,0x0f,0x13,0x18,0x18,0x10, +0x0a,0x16,0x11,0x16,0x12,0x16,0x12,0x12,0x19,0x14,0x13,0x11,0x19,0x14,0x1b,0x0f,0x11,0x15,0x0a,0x13,0x0b,0x0b,0x08,0x1d,0x13,0x13,0x11,0x11,0x13,0x1f,0x1f,0x1f,0x21,0x21,0x12,0x10,0x09,0x11,0x0f,0x14,0x0f,0x16,0x08,0x13,0x14,0x1c,0x1c,0x14,0x12,0x13,0x12,0x11,0x0f,0x11,0x0f,0x10,0x0a,0x0b,0x08,0x07,0x0c,0x13,0x15,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0a,0x0a,0x0a,0x08,0x08,0x38,0x21,0x1d,0x23,0x0a,0x0a,0x0b,0x0d,0x08,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x1e,0x0b,0x0b,0x1e,0x09,0x11,0x11,0x2c,0x21,0x21,0x2c,0x1e,0x11,0x11,0x1e,0x11,0x11,0x0e,0x0e,0x00,0x00,0x0c, +0x19,0x14,0x17,0x13,0x29,0x22,0x17,0x12,0x17,0x12,0x2c,0x21,0x19,0x13,0x0d,0x0a,0x14,0x00,0x17,0x12,0x0b,0x0a,0x05,0x10,0x0b,0x0b,0x08,0x07,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x07,0x11,0x0e,0x13,0x13,0x12,0x20,0x1b,0x1b,0x1a,0x1b,0x1f,0x15,0x17,0x14,0x0d,0x1f,0x25,0x0f,0x26,0x11,0x1c,0x1e,0x1e,0x1e,0x0e,0x19, +0x21,0x19,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x13,0x13,0x13,0x1c,0x11,0x11,0x1e,0x0b,0x0b,0x1e,0x0b,0x0b,0x1e,0x10,0x10,0x00,0x0e,0x1c,0x0b,0x0b,0x21,0x11,0x11,0x19,0x11,0x11,0x16,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x32,0x32,0x1d, +0x00,0x00,0x1d,0x1d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x16,0x14,0x15,0x15,0x1d,0x15,0x15,0x1a,0x20,0x15,0x15,0x23,0x15,0x15,0x1f,0x15,0x16,0x1a,0x15,0x19,0x1c,0x1e,0x15,0x19,0x15,0x17,0x15,0x17,0x15,0x16,0x17,0x15,0x1a,0x14,0x16,0x1a,0x14,0x15,0x13,0x1a,0x15,0x15,0x15,0x17, +0x0f,0x11,0x15,0x1a,0x1a,0x12,0x00,0x00,0x25,0x4a,0x18,0x00,0x04,0x0a,0x0b,0x0f,0x16,0x14,0x1e,0x1e,0x09,0x0b,0x0b,0x0f,0x19,0x08,0x0f,0x08,0x0e,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x08,0x08,0x19,0x19,0x19,0x11,0x23,0x18,0x15,0x17,0x1a,0x13,0x12,0x19,0x1a,0x0a,0x0d,0x15,0x11,0x21,0x1c,0x1c,0x15,0x1c,0x16, +0x14,0x13,0x19,0x17,0x23,0x16,0x14,0x15,0x0b,0x0e,0x0b,0x19,0x0f,0x0a,0x13,0x16,0x11,0x16,0x13,0x0c,0x16,0x15,0x09,0x09,0x12,0x09,0x20,0x15,0x16,0x16,0x16,0x0d,0x10,0x0d,0x15,0x12,0x1b,0x11,0x12,0x11,0x0b,0x09,0x0b,0x19,0x18,0x18,0x17,0x13,0x1c,0x1c,0x19,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x13,0x13,0x13,0x13,0x09,0x09, +0x09,0x09,0x15,0x16,0x16,0x16,0x16,0x16,0x15,0x15,0x15,0x15,0x0e,0x0e,0x14,0x14,0x11,0x0f,0x11,0x14,0x0f,0x21,0x21,0x1d,0x0a,0x0f,0x19,0x20,0x1c,0x1e,0x19,0x19,0x19,0x14,0x15,0x14,0x17,0x1c,0x14,0x0f,0x10,0x1c,0x1f,0x16,0x11,0x0a,0x0b,0x19,0x18,0x14,0x19,0x18,0x13,0x13,0x1b,0x18,0x18,0x1c,0x22,0x22,0x13,0x25,0x0e,0x0e, +0x08,0x08,0x19,0x16,0x12,0x14,0x06,0x14,0x0c,0x0c,0x15,0x15,0x0e,0x08,0x08,0x0e,0x2d,0x18,0x13,0x18,0x13,0x13,0x0a,0x0a,0x0a,0x0a,0x1c,0x1c,0x1c,0x19,0x19,0x19,0x09,0x0e,0x0c,0x0b,0x0b,0x07,0x0a,0x08,0x0c,0x07,0x0e,0x11,0x0a,0x14,0x10,0x15,0x11,0x09,0x1a,0x15,0x14,0x12,0x15,0x16,0x19,0x19,0x0d,0x0e,0x0e,0x22,0x22,0x23, +0x12,0x19,0x16,0x0a,0x14,0x10,0x17,0x11,0x17,0x11,0x16,0x0f,0x08,0x18,0x13,0x18,0x13,0x1a,0x19,0x1a,0x13,0x13,0x13,0x13,0x11,0x09,0x11,0x0b,0x11,0x0c,0x1c,0x15,0x1c,0x15,0x1c,0x16,0x16,0x0d,0x16,0x0d,0x14,0x10,0x13,0x0d,0x13,0x10,0x19,0x15,0x19,0x15,0x15,0x11,0x15,0x11,0x11,0x1c,0x1c,0x17,0x16,0x10,0x15,0x12,0x1a,0x0f, +0x12,0x0f,0x29,0x17,0x12,0x16,0x08,0x0e,0x1e,0x0c,0x16,0x0d,0x0d,0x16,0x0d,0x18,0x13,0x17,0x11,0x17,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x19,0x16,0x19,0x16,0x19,0x16,0x1a,0x15,0x1a,0x15,0x0a,0x09,0x0a,0x09,0x0a,0x09,0x0a,0x09,0x0d,0x09,0x15,0x12,0x12,0x11,0x09,0x1c,0x15,0x1c,0x15,0x1c,0x16,0x1c,0x16,0x16,0x0d,0x14,0x10, +0x13,0x0d,0x19,0x15,0x19,0x15,0x19,0x15,0x19,0x15,0x23,0x1b,0x14,0x12,0x09,0x18,0x13,0x20,0x1f,0x1c,0x16,0x08,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x14,0x12,0x08,0x0f,0x14,0x16,0x22,0x22,0x22,0x21,0x0e,0x0e,0x08,0x0a,0x0a,0x18,0x15,0x1d,0x0e,0x1e,0x19,0x1f,0x0a,0x18,0x15,0x13,0x15,0x1a,0x0a,0x15,0x17,0x21,0x1c,0x13,0x1c,0x1a, +0x15,0x13,0x13,0x14,0x16,0x1d,0x1c,0x0a,0x14,0x17,0x10,0x15,0x0a,0x14,0x14,0x13,0x10,0x15,0x16,0x0a,0x13,0x12,0x15,0x13,0x10,0x16,0x16,0x11,0x14,0x14,0x1c,0x1e,0x0a,0x14,0x16,0x14,0x1e,0x13,0x1a,0x11,0x17,0x14,0x0a,0x24,0x24,0x1b,0x15,0x15,0x1a,0x18,0x15,0x15,0x11,0x1a,0x13,0x20,0x14,0x1c,0x1c,0x15,0x19,0x21,0x1a,0x1c, +0x1a,0x15,0x17,0x13,0x15,0x1b,0x16,0x1b,0x18,0x23,0x24,0x1a,0x1d,0x15,0x17,0x26,0x16,0x13,0x15,0x14,0x0e,0x14,0x13,0x1c,0x11,0x16,0x16,0x12,0x14,0x1a,0x15,0x16,0x15,0x16,0x11,0x0f,0x12,0x19,0x11,0x16,0x15,0x1e,0x1f,0x16,0x1a,0x13,0x11,0x1e,0x13,0x13,0x15,0x0e,0x11,0x10,0x09,0x1d,0x1e,0x15,0x12,0x12,0x15,0x11,0x0e,0x25, +0x2a,0x17,0x0d,0x0e,0x0e,0x0e,0x09,0x14,0x10,0x15,0x1c,0x16,0x1a,0x16,0x0b,0x0c,0x0a,0x0a,0x12,0x12,0x12,0x12,0x0b,0x0b,0x0b,0x12,0x0b,0x12,0x0b,0x0b,0x0b,0x12,0x12,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, +0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0a,0x09,0x0a,0x09,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x19,0x15,0x19,0x15,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x14,0x12,0x14,0x12,0x14,0x12,0x13,0x0d,0x13,0x13,0x1c,0x16,0x0a, +0x0d,0x09,0x09,0x13,0x0f,0x22,0x1d,0x17,0x14,0x15,0x12,0x1b,0x16,0x14,0x12,0x14,0x12,0x17,0x12,0x18,0x15,0x18,0x15,0x1b,0x13,0x1c,0x16,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x12,0x12,0x12,0x12,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x13,0x13,0x18,0x13,0x15,0x16,0x15,0x16,0x15,0x16,0x17,0x11,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x1a, +0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x12,0x0c,0x19,0x16,0x1a,0x15,0x1a,0x15,0x1a,0x15,0x1a,0x15,0x1a,0x15,0x0a,0x09,0x0a,0x09,0x15,0x12,0x15,0x12,0x15,0x12,0x11,0x09,0x11,0x09,0x11,0x09,0x11,0x09,0x21,0x20,0x21,0x20,0x21,0x20,0x1c,0x15,0x1c,0x15,0x1c,0x15,0x1c,0x15,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c, +0x16,0x15,0x16,0x15,0x16,0x16,0x0d,0x16,0x0d,0x16,0x0d,0x16,0x0d,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x13,0x0d,0x13,0x0d,0x13,0x0d,0x13,0x0d,0x19,0x15,0x19,0x15,0x19,0x15,0x19,0x15,0x19,0x15,0x17,0x12,0x17,0x12,0x23,0x1b,0x23,0x1b,0x16,0x11,0x16,0x11,0x14,0x12,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x0d,0x1b, +0x12,0x13,0x09,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x10,0x10,0x10,0x10,0x10,0x10,0x15,0x15,0x1a,0x1a,0x1a,0x1a,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1d,0x1d,0x22,0x22,0x22,0x22,0x22,0x22,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x12,0x12,0x13,0x13,0x13,0x13,0x16, +0x16,0x16,0x16,0x16,0x16,0x1e,0x1e,0x23,0x23,0x23,0x23,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x19,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1f,0x1f,0x23,0x23,0x23,0x23,0x23,0x23,0x17,0x17,0x10,0x10,0x15,0x15,0x0a,0x0a,0x16,0x16,0x14,0x14,0x1e,0x1e,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1d,0x1d,0x22,0x22,0x22,0x22,0x22,0x22,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1f,0x1f,0x23,0x23,0x23,0x23,0x23,0x23,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x18,0x18,0x16,0x16,0x16,0x16,0x16,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1d,0x1d,0x1a, +0x16,0x16,0x16,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0e,0x16,0x16,0x16,0x14,0x14,0x14,0x14,0x16,0x16,0x14,0x14,0x14,0x14,0x19,0x19,0x17,0x16,0x16,0x16,0x1e,0x1e,0x1e,0x1e,0x1e,0x1f,0x1f,0x1f,0x1f,0x1c,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x17,0x15,0x16,0x15,0x16, +0x17,0x17,0x11,0x1a,0x1b,0x15,0x16,0x16,0x13,0x14,0x12,0x1a,0x17,0x20,0x0b,0x0a,0x15,0x12,0x09,0x12,0x21,0x1c,0x15,0x1c,0x24,0x1d,0x16,0x16,0x15,0x14,0x10,0x13,0x0b,0x0d,0x13,0x0d,0x13,0x1c,0x1a,0x15,0x13,0x15,0x11,0x17,0x17,0x10,0x0f,0x14,0x14,0x0e,0x0f,0x14,0x09,0x0e,0x11,0x0b,0x2e,0x2a,0x26,0x20,0x1b,0x13,0x28,0x24, +0x1e,0x18,0x13,0x0a,0x09,0x1c,0x16,0x19,0x15,0x19,0x15,0x19,0x15,0x19,0x15,0x19,0x15,0x13,0x18,0x13,0x18,0x13,0x20,0x1f,0x19,0x16,0x19,0x16,0x15,0x12,0x1c,0x16,0x1c,0x16,0x17,0x10,0x09,0x2e,0x2a,0x26,0x19,0x16,0x25,0x19,0x1c,0x15,0x18,0x13,0x18,0x13,0x13,0x13,0x13,0x13,0x0a,0x09,0x0a,0x09,0x1c,0x16,0x1c,0x16,0x15,0x0d, +0x16,0x0d,0x19,0x15,0x19,0x15,0x13,0x10,0x1a,0x15,0x1b,0x16,0x15,0x15,0x11,0x18,0x13,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x14,0x12,0x16,0x13,0x15,0x15,0x16,0x13,0x16,0x16,0x16,0x11,0x11,0x16,0x16,0x13,0x17,0x0f,0x0f,0x13,0x14,0x0a,0x16,0x16,0x14,0x12,0x11,0x15,0x15,0x15,0x0a,0x0a,0x0c,0x0a,0x0e,0x09,0x16,0x20,0x20, +0x20,0x15,0x15,0x16,0x16,0x1a,0x1b,0x18,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,0x11,0x11,0x0f,0x09,0x0a,0x0b,0x0a,0x0d,0x0d,0x16,0x16,0x15,0x12,0x1b,0x12,0x0f,0x11,0x13,0x10,0x10,0x0e,0x0e,0x0e,0x11,0x17,0x12,0x14,0x14,0x15,0x09,0x12,0x0e,0x16,0x0e,0x0e,0x22,0x23,0x24,0x17,0x12,0x1b,0x1d,0x15,0x15,0x12,0x12,0x14,0x16,0x15, +0x19,0x15,0x18,0x1e,0x15,0x1a,0x16,0x16,0x11,0x12,0x11,0x16,0x13,0x17,0x12,0x21,0x20,0x16,0x13,0x18,0x14,0x17,0x11,0x16,0x12,0x19,0x16,0x15,0x0f,0x15,0x16,0x11,0x09,0x1c,0x11,0x11,0x20,0x19,0x18,0x15,0x22,0x1a,0x19,0x12,0x20,0x1a,0x1b,0x15,0x22,0x1c,0x14,0x11,0x1d,0x1c,0x1c,0x16,0x1b,0x15,0x1b,0x15,0x31,0x29,0x1f,0x18, +0x2a,0x21,0x20,0x19,0x16,0x10,0x13,0x0f,0x0f,0x00,0x00,0x24,0x23,0x15,0x13,0x15,0x16,0x15,0x13,0x14,0x11,0x15,0x12,0x1a,0x16,0x1f,0x19,0x25,0x1f,0x1b,0x15,0x17,0x11,0x13,0x0f,0x20,0x19,0x19,0x16,0x1f,0x17,0x1f,0x17,0x0a,0x20,0x1c,0x15,0x13,0x1a,0x15,0x18,0x15,0x18,0x13,0x18,0x13,0x20,0x1f,0x13,0x13,0x1b,0x13,0x1b,0x13, +0x20,0x1c,0x14,0x11,0x13,0x10,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x17,0x11,0x15,0x12,0x15,0x12,0x15,0x12,0x18,0x15,0x1d,0x1a,0x15,0x16,0x20,0x20,0x1e,0x1b,0x15,0x12,0x22,0x1d,0x25,0x1f,0x1a,0x14,0x19,0x16,0x16,0x15,0x15,0x13,0x16,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x16, +0x0c,0x0c,0x06,0x08,0x08,0x08,0x0a,0x0f,0x0a,0x08,0x0e,0x08,0x08,0x08,0x0c,0x0c,0x08,0x08,0x16,0x16,0x16,0x16,0x0c,0x0a,0x0a,0x0c,0x0b,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0c,0x0c,0x0b,0x06,0x09,0x0a,0x08,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0f,0x0c,0x09,0x0a,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, +0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14, +0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14, +0x14,0x14,0x14,0x00,0x00,0x00,0x00,0x00,0x18,0x0b,0x17,0x0d,0x16,0x16,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0c,0x0c,0x0c,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x16,0x11,0x18,0x1f,0x12,0x11,0x14,0x15,0x0f,0x0f,0x09,0x0b,0x12,0x0f,0x1a,0x16,0x16,0x12,0x17,0x17,0x17, +0x22,0x14,0x16,0x16,0x11,0x11,0x11,0x0f,0x14,0x15,0x1b,0x15,0x12,0x1b,0x11,0x0f,0x0f,0x14,0x0e,0x11,0x15,0x11,0x16,0x15,0x0d,0x12,0x0d,0x0d,0x0f,0x0b,0x0b,0x0f,0x10,0x07,0x08,0x0d,0x0a,0x13,0x10,0x10,0x10,0x0e,0x0d,0x0d,0x0b,0x0f,0x13,0x0c,0x0c,0x0d,0x12,0x0d,0x0d,0x0c,0x0c,0x0a,0x0a,0x0d,0x06,0x0b,0x12,0x0c,0x0d,0x0a, +0x0d,0x0d,0x0d,0x07,0x0c,0x0c,0x12,0x0a,0x0c,0x0c,0x0b,0x0d,0x0f,0x0b,0x06,0x08,0x0c,0x0a,0x0c,0x0b,0x0d,0x0f,0x0b,0x16,0x06,0x0d,0x14,0x20,0x17,0x14,0x14,0x20,0x18,0x20,0x1c,0x14,0x16,0x13,0x11,0x2a,0x11,0x16,0x21,0x23,0x23,0x17,0x18,0x17,0x11,0x11,0x13,0x10,0x11,0x13,0x07,0x00,0x00,0x00,0x00,0x16,0x17,0x17,0x17,0x11, +0x0e,0x16,0x16,0x0c,0x20,0x15,0x16,0x0d,0x0c,0x11,0x0d,0x11,0x16,0x11,0x15,0x21,0x18,0x0c,0x0a,0x16,0x14,0x16,0x16,0x16,0x0c,0x16,0x12,0x09,0x20,0x15,0x16,0x0d,0x10,0x10,0x12,0x11,0x11,0x13,0x16,0x16,0x13,0x10,0x11,0x1b,0x09,0x11,0x09,0x15,0x10,0x0d,0x0a,0x0a,0x0d,0x0a,0x07,0x06,0x0d,0x0c,0x06,0x07,0x06,0x06,0x06,0x07, +0x06,0x08,0x12,0x12,0x0c,0x0c,0x0d,0x0c,0x0e,0x09,0x06,0x07,0x0c,0x0d,0x0c,0x0c,0x0a,0x0a,0x0a,0x0b,0x0a,0x0d,0x00,0x00,0x00,0x00,0x08,0x0c,0x0c,0x0d,0x0a,0x0c,0x14,0x14,0x14,0x14,0x0c,0x00,0x00,0x00,0x00,0x11,0x0b,0x0a,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x14,0x14,0x14,0x14, +0x14,0x14,0x14,0x14,0x0a,0x0a,0x0a,0x0a,0x14,0x14,0x14,0x14,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x14,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x06,0x0e,0x0e,0x0d,0x0e,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0e,0x0d,0x0e,0x0e,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x1d,0x17, +0x1a,0x15,0x1c,0x17,0x23,0x1c,0x14,0x0e,0x13,0x19,0x14,0x1e,0x1a,0x00,0x00,0x00,0x00,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x16,0x16,0x16,0x16,0x16,0x16,0x1f,0x1f,0x25,0x0f,0x09,0x13,0x16,0x0f,0x13,0x13,0x16,0x16,0x13,0x25,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x13,0x18,0x13,0x13,0x13,0x0c,0x16,0x0c,0x1c,0x19,0x13,0x0c,0x1f, +0x13,0x1f,0x09,0x0c,0x16,0x16,0x18,0x18,0x18,0x16,0x16,0x16,0x1f,0x09,0x16,0x09,0x13,0x0f,0x09,0x09,0x13,0x09,0x1c,0x09,0x22,0x13,0x22,0x22,0x16,0x16,0x16,0x13,0x13,0x0f,0x0f,0x2b,0x2b,0x31,0x31,0x1f,0x1f,0x13,0x13,0x06,0x25,0x1c,0x1f,0x19,0x16,0x19,0x13,0x13,0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x09, +0x18,0x00,0x18,0x18,0x18,0x0c,0x13,0x13,0x22,0x0c,0x22,0x0c,0x16,0x19,0x16,0x0f,0x22,0x13,0x22,0x13,0x1c,0x1f,0x0c,0x13,0x13,0x0f,0x09,0x13,0x16,0x13,0x16,0x13,0x16,0x16,0x13,0x19,0x18,0x22,0x0c,0x13,0x0f,0x19,0x13,0x0c,0x13,0x13,0x13,0x22,0x0c,0x22,0x0c,0x09,0x16,0x0e,0x25,0x13,0x13,0x18,0x18,0x25,0x13,0x00,0x00,0x00, +0x18,0x00,0x18,0x18,0x18,0x18,0x1c,0x18,0x00,0x00,0x09,0x09,0x09,0x09,0x09,0x09,0x0f,0x0f,0x13,0x13,0x1c,0x1f,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x19,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0f,0x0f,0x0f,0x13, +0x0f,0x0f,0x0f,0x2b,0x1f,0x2b,0x1f,0x2b,0x1f,0x31,0x25,0x31,0x25,0x1f,0x13,0x16,0x16,0x16,0x25,0x25,0x13,0x13,0x25,0x13,0x13,0x25,0x13,0x13,0x25,0x13,0x13,0x1c,0x1c,0x28,0x25,0x22,0x13,0x1f,0x13,0x1f,0x13,0x1f,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x19,0x0c,0x19,0x0c,0x19,0x0c,0x19,0x0c,0x19,0x0c,0x19, +0x19,0x0c,0x19,0x0c,0x14,0x19,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1f,0x22,0x1c,0x1f,0x0c,0x13,0x1c,0x1f,0x1c,0x1f,0x00,0x00,0x00,0x00,0x00,0x2a,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x0f,0x00,0x00,0x16,0x00,0x00,0x00,0x2b,0x1f,0x31,0x25,0x13,0x16,0x16,0x16,0x0f,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, +0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x22,0x22,0x0e,0x16,0x16,0x16,0x2d,0x1f,0x14,0x38,0x28,0x0c,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x13,0x0f,0x0f,0x1c,0x19,0x19,0x13,0x00,0x00,0x00,0x0c,0x0c,0x0c,0x0c,0x2e,0x38,0x00,0x00,0x00,0x00,0x00,0x16,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x0f,0x22,0x0c, +0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x16,0x16,0x16,0x16,0x19,0x16,0x13,0x13,0x0f,0x2b,0x1f,0x13,0x16,0x16,0x16,0x13,0x16,0x16,0x16,0x13,0x16,0x16,0x16,0x25,0x13,0x13,0x25,0x13,0x13,0x22,0x13,0x13,0x22,0x13,0x13,0x22,0x13,0x13,0x16,0x16,0x16,0x16,0x19,0x0c,0x19,0x0c,0x19,0x0c,0x19,0x19,0x0c,0x0c,0x0f,0x0f, +0x2b,0x1f,0x18,0x16,0x16,0x00,0x13,0x13,0x13,0x0e,0x15,0x19,0x17,0x13,0x13,0x0d,0x09,0x1c,0x16,0x16,0x0d,0x14,0x12,0x12,0x11,0x12,0x09,0x13,0x0f,0x17,0x12,0x16,0x11,0x14,0x10,0x19,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x11,0x12,0x11,0x0b,0x13,0x15,0x16,0x13,0x0d,0x1b,0x16,0x18,0x14,0x17,0x12,0x15,0x13, +0x0f,0x1a,0x0e,0x0f,0x10,0x12,0x16,0x16,0x13,0x25,0x13,0x25,0x0c,0x09,0x06,0x14,0x08,0x05,0x00,0x05,0x08,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x13,0x13,0x22,0x10,0x1c,0x16,0x23,0x1b,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x20,0x11,0x20,0x11,0x20,0x18,0x19,0x1a,0x1a,0x1c, +0x20,0x25,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x19,0x19,0x19,0x19,0x1b,0x15,0x27,0x1f,0x11,0x11,0x0b,0x0b,0x0b,0x0e,0x08,0x15,0x09,0x09,0x1f,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x07,0x00,0x00,0x08,0x00,0x00,0x18,0x15,0x10,0x12,0x19,0x0a,0x0c,0x19,0x19,0x0a,0x15,0x14,0x14,0x1a, +0x19,0x0a,0x0f,0x19,0x16,0x17,0x17,0x15,0x16,0x19,0x15,0x1d,0x1b,0x13,0x13,0x13,0x08,0x0e,0x15,0x15,0x14,0x14,0x14,0x16,0x18,0x12,0x19,0x14,0x14,0x1a,0x15,0x1b,0x14,0x1d,0x1d,0x1d,0x1d,0x18,0x18,0x18,0x15,0x10,0x12,0x19,0x0b,0x0d,0x19,0x0b,0x15,0x14,0x14,0x19,0x0f,0x19,0x17,0x17,0x16,0x19,0x15,0x1d,0x1b,0x0a,0x15,0x14, +0x17,0x18,0x2c,0x00,0x18,0x14,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x0a,0x00,0x1c,0x18,0x19,0x1a,0x14,0x19,0x1c,0x1c,0x11,0x17,0x1c,0x1b,0x18,0x1c,0x1e,0x1d,0x19,0x14,0x15,0x1c, +0x1a,0x15,0x19,0x19,0x18,0x19,0x19,0x1b,0x15,0x18,0x19,0x18,0x1d,0x17,0x17,0x18,0x19,0x1e,0x12,0x16,0x16,0x20,0x14,0x14,0x1d,0x21,0x17,0x14,0x27,0x15,0x15,0x1c,0x14,0x14,0x1c,0x15,0x1c,0x1e,0x20,0x14,0x1d,0x14,0x18,0x14,0x17,0x15,0x17,0x14,0x16,0x1c,0x14,0x17,0x19,0x14,0x14,0x16,0x23,0x14,0x14,0x16,0x16,0x10,0x0c,0x15, +0x15,0x15,0x14,0x15,0x21,0x15,0x21,0x12,0x15,0x21,0x19,0x15,0x21,0x1c,0x1c,0x21,0x15,0x15,0x21,0x21,0x15,0x15,0x15,0x15,0x15,0x15,0x21,0x21,0x16,0x15,0x15,0x21,0x16,0x14,0x15,0x15,0x21,0x1d,0x19,0x1a,0x1a,0x19,0x1a,0x17,0x19,0x1d,0x1a,0x18,0x14,0x1d,0x19,0x19,0x15,0x19,0x1a,0x1c,0x1b,0x16,0x1a,0x19,0x1b,0x19,0x1d,0x1a, +0x1b,0x1b,0x19,0x18,0x1a,0x19,0x1b,0x1d,0x18,0x1c,0x1b,0x04,0x04,0x06,0x07,0x06,0x0a,0x0d,0x20,0x15,0x17,0x16,0x15,0x17,0x15,0x15,0x18,0x16,0x15,0x0b,0x1f,0x16,0x15,0x15,0x14,0x16,0x13,0x15,0x0a,0x16,0x13,0x15,0x0f,0x20,0x14,0x15,0x15,0x16,0x1f,0x15,0x16,0x0f,0x1f,0x16,0x16,0x19,0x19,0x08,0x0a,0x2a,0x29,0x29,0x2a,0x35, +0x14,0x14,0x09,0x14,0x0e,0x14,0x14,0x15,0x14,0x14,0x13,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x15,0x14,0x14,0x13,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x12,0x13,0x16,0x10,0x10,0x15,0x17,0x09,0x0c,0x12, +0x0f,0x1c,0x18,0x17,0x12,0x17,0x12,0x10,0x10,0x16,0x13,0x1e,0x13,0x11,0x12,0x1a,0x1d,0x0f,0x17,0x12,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x10,0x10,0x10,0x10,0x09,0x09,0x09,0x09,0x18,0x17,0x17,0x17,0x17,0x17,0x16,0x16,0x16,0x16,0x11,0x13,0x13,0x13,0x13,0x13,0x15,0x16,0x16,0x10,0x10,0x10,0x10,0x10,0x15,0x15,0x13, +0x17,0x17,0x09,0x09,0x09,0x09,0x09,0x15,0x0c,0x12,0x0f,0x0f,0x0f,0x0f,0x18,0x18,0x18,0x18,0x17,0x17,0x17,0x12,0x12,0x12,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x16,0x16,0x16,0x16,0x16,0x16,0x1e,0x1e,0x1e,0x1e,0x11,0x11,0x11,0x12,0x12,0x12,0x13,0x1a,0x17,0x13,0x12,0x0e,0x14,0x10,0x12,0x17,0x17,0x09,0x12,0x13,0x1c,0x18, +0x11,0x17,0x17,0x12,0x11,0x10,0x11,0x17,0x13,0x18,0x17,0x13,0x10,0x17,0x09,0x17,0x11,0x17,0x09,0x11,0x10,0x15,0x0f,0x13,0x10,0x09,0x09,0x0c,0x1e,0x1e,0x17,0x12,0x12,0x17,0x13,0x12,0x12,0x0f,0x16,0x10,0x1b,0x10,0x18,0x18,0x12,0x15,0x1c,0x17,0x17,0x17,0x12,0x13,0x10,0x12,0x17,0x13,0x17,0x14,0x1e,0x1f,0x15,0x1a,0x12,0x13, +0x20,0x12,0x0f,0x15,0x16,0x17,0x21,0x21,0x18,0x13,0x15,0x10,0x15,0x15,0x15,0x1a,0x13,0x13,0x19,0x15,0x15,0x0d,0x17,0x17,0x15,0x12,0x12,0x21,0x1c,0x11,0x14,0x16,0x16,0x17,0x17,0x1a,0x19,0x0d,0x23,0x16,0x14,0x15,0x18,0x18,0x13,0x13,0x0a,0x1c,0x19,0x19,0x11,0x1a,0x08,0x08,0x10,0x10,0x08,0x08,0x17,0x0f,0x0a,0x1c,0x1a,0x0b, +0x08,0x08,0x11,0x0e,0x0e,0x08,0x08,0x08,0x0e,0x19,0x11,0x0b,0x16,0x19,0x16,0x15,0x12,0x1c,0x15,0x16,0x0d,0x10,0x14,0x10,0x08,0x08,0x0e,0x13,0x0d,0x19,0x19,0x19,0x22,0x1c,0x22,0x09,0x00,0x00,0x00,0x00,0x00,0x09,0x1c,0x1f,0x0c,0x0c,0x13,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x16,0x16,0x16,0x13,0x13,0x2b,0x1f,0x2b,0x1f,0x31, +0x25,0x31,0x25,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x22,0x22,0x13,0x13,0x22,0x22,0x13,0x13,0x1c,0x1f,0x0c,0x0c,0x1c,0x1f,0x0c,0x0c,0x1c,0x1f,0x0c,0x0c,0x25,0x1c,0x1f,0x13,0x16,0x16,0x19,0x0c,0x19,0x1c,0x13,0x13,0x0c,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x22,0x0c,0x1c,0x13,0x13,0x09,0x13,0x13, +0x13,0x13,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x2b,0x1f,0x2b,0x1f,0x2b,0x1f,0x31,0x25,0x31,0x25,0x1f,0x1f,0x1f,0x25,0x25,0x25,0x25,0x25,0x25,0x1c,0x13,0x13,0x1c,0x13,0x13,0x22,0x13,0x28,0x25,0x22, +0x13,0x1f,0x13,0x1f,0x13,0x1f,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x19,0x19,0x19,0x19,0x19,0x0c,0x19,0x19,0x0c,0x0c,0x19,0x0c,0x19,0x0c,0x19,0x13,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0c,0x0c,0x13,0x0c,0x0c,0x0c,0x0c,0x00,0x2b,0x1f,0x31,0x25,0x22,0x13,0x22,0x0c,0x22,0x0c, +0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x16,0x16,0x13,0x13,0x0f,0x2b,0x1f,0x25,0x25,0x22,0x22,0x22,0x16,0x16,0x16,0x16,0x19,0x0c,0x19,0x0c,0x19,0x0c,0x2b,0x1f,0x16,0x19,0x16,0x16,0x16,0x19,0x16,0x16,0x2b,0x2b,0x1f,0x1f,0x0f,0x0f,0x16,0x16,0x16,0x16,0x0c,0x0c,0x0c,0x0c,0x1c,0x1f,0x0c,0x0c,0x1c,0x1f,0x0c,0x0c,0x1c,0x1f, +0x0c,0x0c,0x16,0x16,0x16,0x16,0x22,0x0c,0x22,0x0c,0x16,0x19,0x16,0x16,0x2b,0x2b,0x1f,0x1f,0x2b,0x2b,0x1f,0x1f,0x1f,0x1f,0x13,0x13,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x00,0x00,0x09,0x09,0x0c,0x09,0x00,0x00,0x00,0x1f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, +0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1c,0x19,0x19,0x19,0x19,0x19,0x19,0x16, +0x1f,0x16,0x1f,0x16,0x1f,0x16,0x1f,0x19,0x19,0x19,0x09,0x09,0x13,0x0f,0x16,0x18,0x15,0x14,0x15,0x16,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x13,0x11,0x14,0x13,0x16,0x17,0x17,0x18,0x15,0x15,0x18,0x13,0x19,0x1c,0x18,0x1c,0x1f,0x18,0x1c,0x19,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x14,0x11, +0x14,0x16,0x16,0x18,0x15,0x18,0x15,0x16,0x16,0x13,0x13,0x1c,0x19,0x1a,0x19,0x19,0x16,0x16,0x15,0x1b,0x1d,0x1c,0x1c,0x22,0x22,0x1a,0x22,0x22,0x1b,0x20,0x1f,0x15,0x1c,0x1f,0x1c,0x16,0x1f,0x1b,0x1a,0x1a,0x16,0x18,0x1c,0x1d,0x1a,0x17,0x1a,0x16,0x14,0x22,0x22,0x22,0x1e,0x22,0x22,0x19,0x22,0x22,0x1a,0x1c,0x1d,0x1c,0x1b,0x1b, +0x18,0x21,0x1c,0x1f,0x1a,0x1a,0x15,0x1b,0x1a,0x1a,0x20,0x1c,0x1b,0x21,0x14,0x13,0x15,0x14,0x17,0x17,0x1a,0x1b,0x15,0x15,0x15,0x14,0x15,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x15,0x13,0x14,0x16,0x17,0x16,0x16,0x11,0x15,0x15,0x16,0x16,0x1c,0x1f,0x18,0x18,0x17,0x1c,0x18,0x19,0x13,0x12,0x16,0x15,0x12,0x12,0x14,0x14,0x12,0x11, +0x17,0x11,0x14,0x12,0x14,0x1d,0x15,0x1f,0x14,0x15,0x15,0x1c,0x0c,0x1d,0x19,0x1b,0x18,0x15,0x1c,0x16,0x1d,0x16,0x16,0x16,0x16,0x16,0x16,0x15,0x16,0x16,0x16,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x10,0x11,0x11,0x11,0x11,0x11,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x17,0x0a,0x0a,0x0a,0x0b,0x0b,0x0a,0x0a,0x0a,0x0b, +0x0a,0x0a,0x0a,0x21,0x21,0x21,0x21,0x12,0x1b,0x1b,0x12,0x0f,0x12,0x13,0x15,0x12,0x1f,0x1e,0x20,0x10,0x25,0x12,0x1f,0x1f,0x1f,0x1e,0x15,0x12,0x12,0x1d,0x16,0x1d,0x19,0x14,0x11,0x0f,0x26,0x0f,0x14,0x12,0x12,0x12,0x12,0x12,0x32,0x1f,0x1f,0x10,0x09,0x11,0x09,0x11,0x09,0x09,0x09,0x12,0x16,0x16,0x14,0x0e,0x0e,0x08,0x08,0x08, +0x0e,0x08,0x0f,0x20,0x08,0x21,0x21,0x21,0x16,0x16,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x2b,0x2b,0x19,0x2b,0x2b,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x11,0x16,0x11,0x14,0x10, +0x0d,0x0d,0x19,0x14,0x1b,0x10,0x2a,0x21,0x16,0x14,0x22,0x1d,0x1f,0x1c,0x26,0x1e,0x22,0x1d,0x18,0x12,0x1b,0x16,0x22,0x1b,0x1c,0x17,0x1b,0x16,0x20,0x19,0x20,0x19,0x29,0x1f,0x1c,0x16,0x1c,0x16,0x2d,0x21,0x1d,0x00,0x24,0x24,0x24,0x12,0x00,0x00,0x16,0x13,0x1a,0x15,0x14,0x10,0x28,0x21,0x23,0x20,0x1b,0x15,0x1a,0x16,0x13,0x0f, +0x1b,0x16,0x13,0x0f,0x1e,0x19,0x18,0x15,0x24,0x1e,0x14,0x15,0x1b,0x1b,0x1e,0x11,0x07,0x11,0x19,0x10,0x25,0x25,0x09,0x00,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x0f,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x14,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, +0x1c,0x1c,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x21,0x21, +0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, +0x1c,0x1c,0x1c,0x1c,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x12,0x19,0x1b,0x0a,0x08,0x0a,0x08,0x1a,0x15,0x1b,0x17,0x14,0x11,0x14,0x12,0x16,0x15,0x10,0x10,0x2a,0x1e,0x2b, +0x21,0x25,0x1f,0x21,0x18,0x21,0x18,0x21,0x18,0x17,0x11,0x15,0x12,0x15,0x12,0x15,0x12,0x14,0x0c,0x11,0x09,0x1c,0x16,0x20,0x19,0x31,0x25,0x15,0x16,0x19,0x1a,0x1e,0x20,0x1c,0x16,0x24,0x1d,0x14,0x0f,0x15,0x12,0x17,0x12,0x23,0x1b,0x17,0x13,0x15,0x16,0x15,0x16,0x12,0x0f,0x12,0x0e,0x11,0x0e,0x13,0x13,0x0b,0x19,0x0c,0x23,0x19, +0x0d,0x16,0x17,0x11,0x1c,0x15,0x0e,0x0d,0x15,0x15,0x15,0x11,0x09,0x1c,0x16,0x0e,0x0d,0x17,0x11,0x1a,0x0e,0x1d,0x16,0x17,0x11,0x19,0x16,0x15,0x12,0x1c,0x15,0x16,0x0d,0x14,0x10,0x1c,0x10,0x14,0x20,0x12,0x15,0x21,0x0a,0x2a,0x21,0x21,0x2c,0x21,0x22,0x22,0x21,0x21,0x22,0x13,0x11,0x17,0x1a,0x21,0x1a,0x23,0x09,0x11,0x16,0x20, +0x26,0x1a,0x26,0x17,0x17,0x1d,0x1a,0x2a,0x22,0x13,0x22,0x0c,0x22,0x0c,0x16,0x16,0x16,0x16,0x1f,0x1f,0x1f,0x1f,0x25,0x13,0x13,0x25,0x1c,0x13,0x13,0x1c,0x19,0x0c,0x0c,0x19,0x16,0x16,0x16,0x16,0x1c,0x0c,0x0c,0x1f,0x1c,0x0c,0x0c,0x1f,0x0f,0x0f,0x13,0x13,0x13,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x13,0x0f,0x15,0x14,0x1c,0x16,0x15,0x20,0x19,0x1c,0x1c,0x1f,0x1e,0x15,0x12,0x25,0x1e,0x27,0x20,0x19,0x16,0x0c,0x0c,0x16,0x18,0x0f,0x16,0x13,0x15,0x12,0x1b,0x1e,0x0f,0x16,0x10,0x08,0x0e,0x14,0x14,0x08,0x08,0x07,0x08,0x0e,0x0e,0x0e,0x11,0x37, +0x4a,0x0d,0x0f,0x05,0x0a,0x0e,0x10,0x0c,0x12,0x14,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x11,0x11,0x11,0x11,0x11,0x31,0x14,0x1c,0x22,0x21,0x18,0x11,0x15,0x1b,0x1b,0x12,0x0c,0x18,0x13,0x19,0x15,0x18,0x14,0x14,0x1c,0x16,0x15,0x13,0x1c,0x17,0x1f,0x11,0x13,0x17,0x0c,0x16,0x0d,0x0d,0x09,0x20,0x16,0x15,0x13,0x13, +0x16,0x22,0x22,0x23,0x25,0x25,0x14,0x12,0x0a,0x13,0x11,0x17,0x11,0x19,0x09,0x15,0x16,0x20,0x20,0x17,0x14,0x15,0x14,0x13,0x11,0x13,0x11,0x12,0x0b,0x0c,0x09,0x08,0x0d,0x15,0x17,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x00,0x0b,0x0b,0x0b,0x09,0x09,0x3e,0x25,0x20,0x27,0x0b,0x0b,0x0c, +0x0f,0x09,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x22,0x0c,0x0c,0x22,0x0a,0x13,0x13,0x31,0x25,0x25,0x31,0x22,0x13,0x13,0x22,0x13,0x13,0x0f,0x0f,0x00,0x00,0x0d,0x1c,0x16,0x1a,0x15,0x2e,0x26,0x1a,0x14,0x1a,0x14,0x31,0x25,0x1c,0x16,0x0e,0x0c,0x17,0x00,0x19,0x14,0x0c,0x0b,0x06,0x12,0x0c,0x0d,0x09,0x07, +0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x08,0x13,0x10,0x16,0x15,0x14,0x24,0x1e,0x1e,0x1d,0x1e,0x23,0x17,0x19,0x16,0x0f,0x22,0x2a,0x10,0x2b,0x13,0x1f,0x22,0x22,0x22,0x0f,0x1c,0x25,0x1c,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x16,0x16,0x16,0x1f,0x13,0x13,0x22,0x0c,0x0c, +0x22,0x0c,0x0c,0x22,0x12,0x12,0x00,0x0f,0x1f,0x0c,0x0c,0x25,0x13,0x13,0x1c,0x13,0x13,0x19,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x38,0x38,0x21,0x00,0x00,0x21,0x21,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x19,0x17,0x18,0x18,0x21,0x18,0x17,0x1e, +0x24,0x18,0x17,0x28,0x17,0x17,0x23,0x17,0x19,0x1d,0x18,0x1c,0x1f,0x22,0x18,0x1c,0x18,0x1a,0x17,0x1a,0x17,0x18,0x19,0x17,0x1d,0x16,0x19,0x1d,0x17,0x17,0x15,0x1d,0x18,0x18,0x18,0x1a,0x11,0x14,0x18,0x1d,0x1d,0x14,0x00,0x00,0x2a,0x54,0x1b,0x00,0x04,0x0c,0x0c,0x10,0x19,0x17,0x22,0x22,0x0a,0x0d,0x0d,0x12,0x1d,0x09,0x11,0x09, +0x10,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x09,0x09,0x1d,0x1d,0x1d,0x13,0x28,0x1b,0x18,0x1a,0x1d,0x15,0x15,0x1d,0x1e,0x0b,0x0f,0x18,0x14,0x26,0x1f,0x20,0x18,0x20,0x19,0x16,0x16,0x1d,0x1a,0x27,0x19,0x17,0x18,0x0d,0x10,0x0d,0x1d,0x11,0x0b,0x15,0x19,0x13,0x19,0x16,0x0d,0x19,0x18,0x0a,0x0a,0x15,0x0a,0x24,0x18, +0x19,0x19,0x19,0x0f,0x12,0x0e,0x18,0x14,0x1e,0x13,0x14,0x13,0x0d,0x0a,0x0d,0x1d,0x1b,0x1b,0x1a,0x15,0x1f,0x20,0x1d,0x15,0x15,0x15,0x15,0x15,0x15,0x13,0x16,0x16,0x16,0x16,0x0a,0x0a,0x0a,0x0a,0x18,0x19,0x19,0x19,0x19,0x19,0x18,0x18,0x18,0x18,0x10,0x10,0x17,0x17,0x13,0x11,0x13,0x17,0x11,0x25,0x25,0x20,0x0c,0x11,0x1d,0x24, +0x20,0x22,0x1d,0x1d,0x1d,0x17,0x18,0x16,0x1a,0x20,0x17,0x10,0x12,0x20,0x23,0x19,0x13,0x0c,0x0c,0x1d,0x1b,0x17,0x1d,0x1b,0x15,0x15,0x1f,0x1b,0x1b,0x20,0x27,0x27,0x15,0x2a,0x10,0x10,0x0a,0x0a,0x1d,0x19,0x14,0x17,0x07,0x17,0x0d,0x0d,0x17,0x17,0x10,0x09,0x0a,0x10,0x33,0x1b,0x15,0x1b,0x15,0x15,0x0b,0x0b,0x0b,0x0b,0x20,0x20, +0x20,0x1d,0x1d,0x1d,0x0a,0x10,0x0e,0x0d,0x0d,0x08,0x0c,0x09,0x0e,0x08,0x10,0x14,0x0c,0x16,0x12,0x18,0x13,0x0a,0x1d,0x17,0x17,0x14,0x18,0x19,0x1d,0x1d,0x0f,0x0f,0x0f,0x27,0x26,0x28,0x15,0x1d,0x19,0x0b,0x16,0x12,0x1a,0x13,0x1a,0x13,0x19,0x11,0x09,0x1b,0x15,0x1b,0x15,0x1d,0x1c,0x1d,0x15,0x16,0x15,0x16,0x14,0x0a,0x14,0x0d, +0x14,0x0d,0x1f,0x18,0x1f,0x18,0x20,0x19,0x19,0x0f,0x19,0x0f,0x16,0x12,0x16,0x0e,0x16,0x12,0x1d,0x18,0x1d,0x18,0x18,0x13,0x18,0x13,0x14,0x20,0x20,0x1a,0x19,0x12,0x18,0x14,0x1d,0x11,0x14,0x10,0x2f,0x1a,0x15,0x19,0x0a,0x10,0x22,0x0e,0x19,0x0f,0x0f,0x19,0x0f,0x1b,0x15,0x1a,0x13,0x1a,0x13,0x15,0x16,0x15,0x16,0x15,0x16,0x1d, +0x19,0x1d,0x19,0x1d,0x19,0x1e,0x18,0x1e,0x18,0x0b,0x0a,0x0b,0x0a,0x0b,0x0a,0x0b,0x0a,0x0f,0x0a,0x18,0x15,0x15,0x14,0x0a,0x1f,0x18,0x1f,0x18,0x20,0x19,0x20,0x19,0x19,0x0f,0x16,0x12,0x16,0x0e,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x27,0x1e,0x17,0x14,0x0a,0x1b,0x15,0x24,0x23,0x20,0x19,0x09,0x27,0x1e,0x27,0x1e,0x27,0x1e, +0x17,0x14,0x0a,0x11,0x17,0x19,0x27,0x27,0x27,0x25,0x10,0x10,0x09,0x0b,0x0b,0x1b,0x18,0x21,0x10,0x22,0x1c,0x23,0x0b,0x1b,0x18,0x15,0x18,0x1e,0x0b,0x18,0x1a,0x26,0x1f,0x15,0x20,0x1e,0x18,0x16,0x16,0x17,0x19,0x21,0x20,0x0b,0x17,0x1a,0x12,0x18,0x0b,0x17,0x17,0x16,0x13,0x18,0x19,0x0b,0x16,0x15,0x18,0x16,0x13,0x19,0x19,0x13, +0x17,0x17,0x20,0x22,0x0b,0x17,0x19,0x17,0x22,0x15,0x1d,0x14,0x1a,0x16,0x0b,0x29,0x29,0x1e,0x18,0x18,0x1e,0x1b,0x18,0x18,0x14,0x1d,0x15,0x24,0x17,0x1f,0x1f,0x18,0x1c,0x26,0x1e,0x20,0x1e,0x18,0x1a,0x16,0x18,0x1f,0x19,0x1f,0x1c,0x28,0x29,0x1e,0x21,0x18,0x1a,0x2b,0x19,0x15,0x18,0x16,0x10,0x17,0x16,0x1f,0x13,0x18,0x18,0x15, +0x16,0x1d,0x18,0x19,0x18,0x19,0x13,0x11,0x14,0x1d,0x13,0x19,0x18,0x22,0x23,0x19,0x1e,0x15,0x13,0x22,0x15,0x16,0x18,0x10,0x13,0x12,0x0a,0x21,0x22,0x18,0x15,0x14,0x18,0x14,0x10,0x2a,0x2f,0x1a,0x0f,0x0f,0x0f,0x0f,0x0a,0x16,0x12,0x17,0x20,0x19,0x1e,0x19,0x0d,0x0e,0x0b,0x0b,0x14,0x14,0x14,0x14,0x0d,0x0d,0x0d,0x14,0x0d,0x14, +0x0d,0x0d,0x0d,0x14,0x14,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x0b,0x0a,0x0b,0x0a,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20, +0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x1d,0x18,0x1d,0x18,0x1e,0x19,0x1e,0x19,0x1e,0x19,0x1e,0x19,0x1e,0x19,0x17,0x14,0x17,0x14,0x17,0x14,0x16,0x0e,0x15,0x16,0x1f,0x18,0x0b,0x0f,0x0a,0x0a,0x16,0x11,0x26,0x21,0x1a,0x16,0x18,0x15,0x1f,0x19,0x17,0x14,0x17,0x14,0x1a,0x15,0x1c,0x18,0x1c,0x18,0x1e,0x16,0x20,0x19,0x0d, +0x0d,0x0d,0x0d,0x11,0x11,0x14,0x14,0x14,0x14,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x15,0x16,0x1b,0x15,0x18,0x19,0x18,0x19,0x18,0x19,0x1a,0x13,0x1d,0x19,0x1d,0x19,0x1d,0x19,0x1d,0x19,0x1d,0x19,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x0d,0x1d,0x19,0x1e,0x18,0x1e,0x18,0x1e,0x18,0x1e,0x18,0x1e,0x18,0x0b,0x0a,0x0b, +0x0a,0x18,0x15,0x18,0x15,0x18,0x15,0x14,0x0a,0x14,0x0a,0x14,0x0a,0x14,0x0a,0x26,0x24,0x26,0x24,0x26,0x24,0x1f,0x18,0x1f,0x18,0x1f,0x18,0x1f,0x18,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x18,0x19,0x18,0x19,0x19,0x0f,0x19,0x0f,0x19,0x0f,0x19,0x0f,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x0e,0x16,0x0e,0x16, +0x0e,0x16,0x0e,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1a,0x14,0x1a,0x14,0x27,0x1e,0x27,0x1e,0x19,0x13,0x19,0x13,0x17,0x14,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x0e,0x1e,0x14,0x15,0x0a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x12,0x12,0x12,0x12,0x12,0x12,0x18,0x18,0x1e, +0x1e,0x1e,0x1e,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x20,0x20,0x27,0x27,0x27,0x27,0x27,0x27,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x10,0x10,0x15,0x15,0x16,0x16,0x16,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x22,0x22,0x28,0x28,0x28,0x28,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1c,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, +0x22,0x22,0x22,0x23,0x23,0x28,0x28,0x28,0x28,0x28,0x28,0x1a,0x1a,0x12,0x12,0x18,0x18,0x0b,0x0b,0x19,0x19,0x17,0x17,0x22,0x22,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x21,0x20,0x27,0x27,0x27,0x27,0x27,0x27,0x22,0x22,0x22,0x22,0x22,0x22,0x22, +0x22,0x23,0x23,0x28,0x28,0x28,0x28,0x28,0x28,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x19,0x19,0x19,0x19,0x19,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x21,0x21,0x1e,0x19,0x19,0x19,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x10,0x19,0x19,0x19,0x17,0x17,0x17,0x17,0x19,0x19,0x17,0x17,0x17,0x17,0x1c,0x1c, +0x1a,0x19,0x19,0x19,0x22,0x22,0x22,0x22,0x22,0x23,0x23,0x23,0x23,0x20,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x1a,0x18,0x19,0x18,0x19,0x1a,0x1a,0x14,0x1d,0x1f,0x18,0x19,0x19,0x15,0x17,0x15,0x1d,0x1a,0x25,0x0c,0x0c,0x18,0x15,0x0a,0x15,0x25,0x1f,0x18,0x20,0x29,0x21,0x19,0x19, +0x18,0x16,0x12,0x16,0x0c,0x0e,0x16,0x0e,0x16,0x20,0x1e,0x18,0x16,0x18,0x13,0x1a,0x1a,0x13,0x11,0x17,0x17,0x10,0x11,0x17,0x0a,0x10,0x13,0x0c,0x34,0x30,0x2b,0x24,0x1e,0x15,0x2d,0x29,0x22,0x1b,0x15,0x0b,0x0a,0x20,0x19,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x16,0x1b,0x15,0x1b,0x15,0x24,0x23,0x1d,0x19,0x1d,0x19, +0x18,0x15,0x20,0x19,0x20,0x19,0x1a,0x13,0x0a,0x34,0x30,0x2b,0x1d,0x19,0x2a,0x1d,0x1f,0x18,0x1b,0x15,0x1b,0x15,0x15,0x16,0x15,0x16,0x0b,0x0a,0x0b,0x0a,0x20,0x19,0x20,0x19,0x18,0x0f,0x19,0x0f,0x1d,0x18,0x1d,0x18,0x15,0x12,0x1e,0x18,0x1f,0x19,0x18,0x18,0x13,0x1b,0x15,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x17,0x14,0x19, +0x15,0x18,0x18,0x19,0x15,0x19,0x19,0x19,0x14,0x14,0x19,0x19,0x16,0x1a,0x11,0x11,0x15,0x17,0x0c,0x19,0x19,0x16,0x14,0x13,0x18,0x18,0x18,0x0b,0x0c,0x0d,0x0c,0x10,0x0a,0x19,0x24,0x24,0x24,0x17,0x17,0x19,0x19,0x1d,0x1e,0x1b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x13,0x13,0x11,0x0a,0x0b,0x0c,0x0c,0x0e,0x0e,0x19,0x19,0x17,0x14, +0x1e,0x14,0x12,0x13,0x16,0x13,0x13,0x0f,0x0f,0x0f,0x14,0x1a,0x14,0x17,0x16,0x18,0x0a,0x15,0x10,0x19,0x0f,0x0f,0x26,0x28,0x29,0x1a,0x14,0x1e,0x21,0x18,0x18,0x15,0x15,0x17,0x19,0x18,0x1c,0x18,0x1b,0x22,0x18,0x1d,0x19,0x18,0x13,0x15,0x13,0x19,0x15,0x1a,0x15,0x25,0x24,0x19,0x15,0x1b,0x16,0x1a,0x13,0x19,0x14,0x1c,0x19,0x18, +0x11,0x18,0x18,0x13,0x0a,0x20,0x14,0x14,0x24,0x1c,0x1b,0x18,0x26,0x1e,0x1c,0x15,0x25,0x1d,0x1f,0x18,0x27,0x1f,0x17,0x13,0x21,0x20,0x20,0x19,0x1e,0x18,0x1e,0x18,0x37,0x2f,0x23,0x1b,0x2f,0x26,0x24,0x1c,0x19,0x12,0x15,0x11,0x11,0x00,0x00,0x29,0x28,0x18,0x15,0x18,0x19,0x18,0x15,0x17,0x13,0x18,0x15,0x1e,0x18,0x23,0x1c,0x2a, +0x23,0x1e,0x17,0x1a,0x13,0x16,0x11,0x25,0x1d,0x1d,0x19,0x23,0x1b,0x23,0x1b,0x0b,0x24,0x1f,0x18,0x15,0x1e,0x18,0x1c,0x18,0x1b,0x15,0x1b,0x15,0x24,0x23,0x15,0x16,0x1e,0x16,0x1e,0x16,0x24,0x1f,0x17,0x13,0x16,0x13,0x1f,0x18,0x1f,0x18,0x20,0x19,0x20,0x19,0x1a,0x13,0x18,0x14,0x18,0x14,0x18,0x14,0x1c,0x18,0x21,0x1e,0x18,0x19, +0x24,0x24,0x22,0x1e,0x17,0x14,0x26,0x21,0x2a,0x24,0x1e,0x16,0x1c,0x19,0x19,0x18,0x18,0x15,0x19,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x19,0x0e,0x0e,0x07,0x09,0x09,0x09,0x0c,0x11,0x0c,0x0a,0x10,0x09,0x09,0x09,0x0e,0x0e,0x09,0x09,0x19,0x19,0x19,0x19,0x0e,0x0c,0x0b,0x0e,0x0d,0x0b, +0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0d,0x0e,0x0e,0x0c,0x07,0x0a,0x0c,0x09,0x10,0x10,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x11,0x0e,0x0a,0x0b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17, +0x10,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x00,0x00,0x00,0x00,0x00,0x1b,0x0c,0x1b,0x0e,0x19,0x19,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x19,0x14,0x1c,0x23,0x14,0x13,0x17,0x17,0x12,0x11,0x0a,0x0d,0x15,0x10,0x1d,0x18,0x19,0x14,0x1a,0x1a,0x1a,0x27,0x17,0x19,0x19,0x13,0x13,0x13,0x11,0x16,0x18,0x1e,0x18,0x14,0x1e,0x13,0x12,0x11,0x16,0x10,0x14,0x18,0x13,0x19,0x18,0x0f,0x14,0x0f,0x0f, +0x11,0x0d,0x0d,0x11,0x12,0x08,0x0a,0x0f,0x0c,0x16,0x12,0x12,0x12,0x10,0x0e,0x0e,0x0c,0x11,0x16,0x0d,0x0d,0x0f,0x14,0x0f,0x0f,0x0d,0x0d,0x0b,0x0b,0x0f,0x07,0x0d,0x15,0x0e,0x0e,0x0b,0x0e,0x0e,0x0e,0x08,0x0e,0x0e,0x15,0x0c,0x0d,0x0e,0x0c,0x0e,0x11,0x0d,0x07,0x09,0x0e,0x0c,0x0e,0x0c,0x0f,0x11,0x0d,0x18,0x07,0x0f,0x17,0x25, +0x1a,0x17,0x17,0x24,0x1b,0x24,0x1f,0x16,0x19,0x15,0x13,0x2f,0x13,0x19,0x25,0x27,0x27,0x1a,0x1b,0x1a,0x13,0x14,0x16,0x12,0x13,0x15,0x08,0x00,0x00,0x00,0x00,0x19,0x1a,0x1a,0x1a,0x14,0x10,0x19,0x19,0x0d,0x24,0x18,0x19,0x0f,0x0e,0x13,0x0e,0x13,0x19,0x13,0x18,0x26,0x1b,0x0d,0x0b,0x19,0x16,0x19,0x19,0x19,0x0d,0x19,0x15,0x0a, +0x24,0x18,0x19,0x0f,0x12,0x12,0x14,0x13,0x13,0x15,0x19,0x19,0x16,0x12,0x13,0x1f,0x0a,0x14,0x0a,0x18,0x13,0x0f,0x0b,0x0b,0x0e,0x0b,0x08,0x07,0x0f,0x0e,0x07,0x08,0x07,0x07,0x07,0x08,0x07,0x09,0x15,0x15,0x0e,0x0e,0x0f,0x0e,0x0f,0x0a,0x07,0x08,0x0e,0x0e,0x0e,0x0e,0x0c,0x0b,0x0b,0x0c,0x0b,0x0e,0x00,0x00,0x00,0x00,0x09,0x0d, +0x0d,0x0e,0x0b,0x0d,0x17,0x17,0x17,0x17,0x0e,0x00,0x00,0x00,0x00,0x13,0x0d,0x0b,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0b,0x0b,0x0b,0x0b,0x17,0x17,0x17,0x17,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x17,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0f,0x0d,0x0d,0x07,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0d,0x21,0x1b,0x1e,0x18,0x1f,0x1a,0x27,0x20,0x17,0x10,0x16,0x1d,0x16,0x22,0x1d,0x00,0x00,0x00,0x00,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x19,0x19,0x19,0x19, +0x19,0x19,0x23,0x23,0x2a,0x12,0x0b,0x15,0x19,0x12,0x15,0x15,0x19,0x19,0x15,0x2a,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x15,0x1b,0x15,0x15,0x15,0x0e,0x19,0x0e,0x20,0x1c,0x15,0x0e,0x23,0x15,0x23,0x0b,0x0e,0x19,0x19,0x1b,0x1b,0x1b,0x19,0x19,0x19,0x23,0x0b,0x19,0x0b,0x15,0x12,0x0b,0x0b,0x15,0x0b,0x20,0x0b,0x27,0x15,0x27,0x27, +0x19,0x19,0x19,0x15,0x15,0x12,0x12,0x31,0x31,0x38,0x38,0x23,0x23,0x15,0x15,0x07,0x2a,0x20,0x23,0x1c,0x19,0x1c,0x15,0x15,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x0b,0x1b,0x00,0x1b,0x1b,0x1b,0x0e,0x15,0x15,0x27,0x0e,0x27,0x0e,0x19,0x1c,0x19,0x12,0x27,0x15,0x27,0x15,0x20,0x23,0x0e,0x15,0x15,0x12,0x0b,0x15, +0x19,0x15,0x19,0x15,0x19,0x19,0x15,0x1c,0x1b,0x27,0x0e,0x15,0x12,0x1c,0x15,0x0e,0x15,0x15,0x15,0x27,0x0e,0x27,0x0e,0x0b,0x19,0x10,0x2a,0x15,0x15,0x1b,0x1b,0x2a,0x15,0x00,0x00,0x00,0x1b,0x00,0x1b,0x1b,0x1b,0x1b,0x20,0x1b,0x00,0x00,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x12,0x12,0x15,0x15,0x20,0x23,0x27,0x0e,0x27,0x0e,0x27,0x0e, +0x27,0x0e,0x27,0x0e,0x27,0x0e,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1c,0x19,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x12,0x12,0x12,0x15,0x12,0x12,0x12,0x31,0x23,0x31,0x23,0x31,0x23,0x38,0x2a,0x38,0x2a,0x23,0x15,0x19,0x19,0x19,0x2a,0x2a,0x15,0x15,0x2a,0x15,0x15,0x2a,0x15,0x15, +0x2a,0x15,0x15,0x20,0x20,0x2e,0x2a,0x27,0x15,0x23,0x15,0x23,0x15,0x23,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x1c,0x0e,0x1c,0x0e,0x1c,0x0e,0x1c,0x0e,0x1c,0x0e,0x1c,0x1c,0x0e,0x1c,0x0e,0x17,0x1c,0x19,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x23,0x27,0x20,0x23,0x0e,0x15,0x20,0x23,0x20,0x23,0x00,0x00,0x00, +0x00,0x00,0x2f,0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x12,0x00,0x00,0x19,0x00,0x00,0x00,0x31,0x23,0x38,0x2a,0x15,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x27,0x27,0x10,0x19,0x19,0x19,0x34,0x23,0x16,0x40,0x2e,0x0e,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x15,0x15,0x12,0x12,0x20,0x1c,0x1c,0x15,0x00,0x00,0x00,0x0e,0x0e,0x0e,0x0e,0x35,0x3f,0x00,0x00,0x00,0x00,0x00,0x19,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x27,0x12,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x19,0x19,0x19,0x19,0x1c,0x19,0x15,0x15,0x12,0x31,0x23,0x15,0x19,0x19,0x19,0x15,0x19,0x19, +0x19,0x15,0x19,0x19,0x19,0x2a,0x15,0x15,0x2a,0x15,0x15,0x27,0x15,0x15,0x27,0x15,0x15,0x27,0x15,0x15,0x19,0x19,0x19,0x19,0x1c,0x0e,0x1c,0x0e,0x1c,0x0e,0x1c,0x1c,0x0e,0x0e,0x12,0x12,0x31,0x23,0x1b,0x19,0x19,0x00,0x15,0x15,0x15,0x10,0x18,0x1d,0x1a,0x15,0x16,0x0f,0x0a,0x20,0x19,0x19,0x0f,0x17,0x14,0x14,0x13,0x14,0x0a,0x16, +0x11,0x1a,0x14,0x19,0x13,0x17,0x12,0x1c,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x13,0x14,0x14,0x0c,0x16,0x18,0x19,0x15,0x0e,0x1f,0x19,0x1b,0x17,0x1a,0x15,0x18,0x16,0x11,0x1d,0x10,0x11,0x12,0x14,0x19,0x19,0x15,0x2a,0x15,0x2a,0x0e,0x0b,0x07,0x17,0x09,0x05,0x00,0x06,0x09,0x00,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x15,0x15,0x27,0x12,0x20,0x19,0x27,0x1e,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x27,0x27,0x24,0x14,0x24,0x14,0x24,0x1b,0x1d,0x1d,0x1d,0x20,0x24,0x2a,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x1d,0x1d,0x1d,0x1d,0x1f,0x18,0x2d,0x23,0x14,0x14,0x0c,0x0c,0x0c,0x10,0x09,0x18,0x0a,0x0a,0x23, +0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x08,0x00,0x00,0x09,0x00,0x00,0x1b,0x18,0x12,0x14,0x1c,0x0b,0x0e,0x1c,0x1d,0x0b,0x17,0x17,0x17,0x1d,0x1c,0x0b,0x11,0x1c,0x19,0x1a,0x1b,0x18,0x19,0x1c,0x17,0x21,0x1f,0x16,0x16,0x16,0x0a,0x10,0x17,0x17,0x17,0x17,0x17,0x19,0x1b,0x14,0x1c,0x17, +0x17,0x1d,0x17,0x1f,0x17,0x21,0x21,0x21,0x21,0x1b,0x1b,0x1b,0x18,0x12,0x14,0x1c,0x0d,0x0f,0x1d,0x0d,0x17,0x17,0x17,0x1c,0x11,0x1c,0x1a,0x1b,0x19,0x1c,0x17,0x21,0x1f,0x0b,0x18,0x17,0x1b,0x1b,0x32,0x00,0x1b,0x17,0x1b,0x1b,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x0b,0x00,0x20,0x1b,0x1c,0x1e,0x17,0x1c,0x1f,0x20,0x14,0x1a,0x1f,0x1f,0x1c,0x20,0x22,0x21,0x1c,0x17,0x18,0x20,0x1e,0x18,0x1d,0x1c,0x1c,0x1c,0x1d,0x1f,0x18,0x1b,0x1c,0x1b,0x21,0x1b,0x1a,0x1b,0x1c,0x22,0x15,0x19,0x19,0x25,0x17,0x17,0x20,0x25,0x1a,0x17, +0x2c,0x18,0x18,0x20,0x17,0x17,0x20,0x18,0x20,0x22,0x25,0x17,0x20,0x17,0x1b,0x17,0x1a,0x18,0x1b,0x17,0x19,0x20,0x17,0x1a,0x1c,0x17,0x17,0x19,0x28,0x17,0x17,0x19,0x19,0x12,0x0e,0x17,0x17,0x17,0x16,0x17,0x25,0x17,0x25,0x15,0x17,0x25,0x1c,0x17,0x25,0x1f,0x1f,0x25,0x18,0x17,0x25,0x25,0x17,0x17,0x17,0x17,0x17,0x17,0x25,0x25, +0x19,0x17,0x18,0x25,0x19,0x17,0x17,0x17,0x25,0x21,0x1d,0x1d,0x1d,0x1d,0x1e,0x1a,0x1d,0x21,0x1d,0x1b,0x17,0x21,0x1c,0x1d,0x18,0x1c,0x1d,0x1f,0x1e,0x19,0x1d,0x1c,0x1f,0x1c,0x21,0x1d,0x1e,0x1f,0x1d,0x1b,0x1d,0x1d,0x1e,0x21,0x1c,0x20,0x1e,0x04,0x05,0x06,0x08,0x06,0x0b,0x0f,0x24,0x18,0x1a,0x19,0x18,0x1a,0x18,0x18,0x1b,0x19, +0x18,0x0d,0x23,0x19,0x18,0x18,0x17,0x19,0x16,0x18,0x0b,0x19,0x16,0x18,0x11,0x24,0x17,0x18,0x18,0x19,0x23,0x18,0x19,0x11,0x23,0x19,0x19,0x1d,0x1d,0x09,0x0c,0x30,0x2f,0x2f,0x30,0x3c,0x17,0x17,0x0a,0x17,0x10,0x17,0x17,0x18,0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x18, +0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x15,0x15,0x15,0x19,0x12,0x12,0x18,0x1a,0x0b,0x0d,0x15,0x11,0x20,0x1b,0x1a,0x14,0x1a,0x15,0x12,0x12,0x19,0x15,0x22,0x15,0x14,0x14,0x1e,0x21,0x11,0x1a,0x14,0x19,0x16,0x15,0x15,0x15,0x15,0x15,0x15, +0x15,0x12,0x12,0x12,0x12,0x0b,0x0b,0x0b,0x0b,0x1b,0x1a,0x1a,0x1a,0x1a,0x1a,0x19,0x19,0x19,0x19,0x14,0x15,0x15,0x15,0x15,0x15,0x18,0x19,0x19,0x12,0x12,0x12,0x12,0x12,0x18,0x18,0x15,0x1a,0x1a,0x0b,0x0b,0x0b,0x0b,0x0b,0x18,0x0d,0x15,0x11,0x11,0x11,0x11,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x15,0x15,0x15,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x22,0x22,0x22,0x22,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x1e,0x1a,0x15,0x15,0x10,0x17,0x12,0x14,0x1a,0x1a,0x0b,0x15,0x15,0x20,0x1b,0x13,0x1a,0x1a,0x14,0x13,0x12,0x14,0x1a,0x15,0x1c,0x1b,0x15,0x12,0x1a,0x0b,0x1a,0x14,0x1b,0x0b,0x14,0x12,0x18,0x11,0x16,0x12,0x0b,0x0b,0x0d, +0x22,0x23,0x1a,0x15,0x15,0x1a,0x15,0x14,0x15,0x11,0x19,0x12,0x1f,0x13,0x1b,0x1b,0x15,0x18,0x20,0x1a,0x1a,0x1a,0x14,0x15,0x12,0x15,0x1a,0x15,0x1b,0x17,0x22,0x23,0x18,0x1e,0x15,0x16,0x24,0x15,0x11,0x18,0x18,0x1a,0x25,0x25,0x1c,0x15,0x18,0x12,0x18,0x18,0x18,0x1d,0x16,0x16,0x1d,0x18,0x18,0x0f,0x1a,0x1a,0x18,0x15,0x15,0x26, +0x1f,0x14,0x16,0x19,0x19,0x1a,0x1a,0x1e,0x1d,0x0f,0x27,0x19,0x17,0x18,0x1b,0x1b,0x15,0x15,0x0b,0x20,0x1d,0x1d,0x14,0x1d,0x09,0x09,0x12,0x12,0x09,0x09,0x1a,0x11,0x0b,0x20,0x1e,0x0c,0x09,0x09,0x13,0x10,0x10,0x0a,0x0a,0x0a,0x10,0x1c,0x14,0x0d,0x19,0x1d,0x19,0x18,0x15,0x1f,0x18,0x19,0x0f,0x12,0x16,0x12,0x09,0x0a,0x10,0x16, +0x0e,0x1c,0x1c,0x1c,0x27,0x20,0x27,0x0b,0x00,0x00,0x00,0x00,0x00,0x0b,0x20,0x23,0x0e,0x0e,0x15,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x19,0x19,0x19,0x15,0x15,0x31,0x23,0x31,0x23,0x38,0x2a,0x38,0x2a,0x23,0x23,0x23,0x23,0x23,0x23,0x27,0x27,0x15,0x15,0x27,0x27,0x15,0x15,0x20,0x23,0x0e,0x0e,0x20,0x23,0x0e,0x0e,0x20,0x23,0x0e, +0x0e,0x2a,0x20,0x23,0x15,0x19,0x19,0x1c,0x0e,0x1c,0x20,0x15,0x15,0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x27,0x0e,0x20,0x15,0x15,0x0b,0x15,0x15,0x15,0x15,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x15,0x15, +0x15,0x15,0x15,0x15,0x15,0x15,0x31,0x23,0x31,0x23,0x31,0x23,0x38,0x2a,0x38,0x2a,0x23,0x23,0x23,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x20,0x15,0x15,0x20,0x15,0x15,0x27,0x15,0x2e,0x2a,0x27,0x15,0x23,0x15,0x23,0x15,0x23,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x1c,0x1c,0x1c,0x1c,0x1c,0x0e,0x1c,0x1c,0x0e, +0x0e,0x1c,0x0e,0x1c,0x0e,0x1c,0x15,0x19,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x0e,0x0e,0x15,0x0e,0x0e,0x0e,0x0e,0x00,0x31,0x23,0x38,0x2a,0x27,0x15,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x19,0x19,0x15,0x15,0x12,0x31,0x23,0x2a,0x2a,0x27,0x27,0x27,0x19,0x19,0x19,0x19,0x1c,0x0e,0x1c,0x0e, +0x1c,0x0e,0x31,0x23,0x19,0x1c,0x19,0x19,0x19,0x1c,0x19,0x19,0x31,0x31,0x23,0x23,0x12,0x12,0x19,0x19,0x19,0x19,0x0e,0x0e,0x0e,0x0e,0x20,0x23,0x0e,0x0e,0x20,0x23,0x0e,0x0e,0x20,0x23,0x0e,0x0e,0x19,0x19,0x19,0x19,0x27,0x0e,0x27,0x0e,0x19,0x1c,0x19,0x19,0x31,0x31,0x23,0x23,0x31,0x31,0x23,0x23,0x23,0x23,0x15,0x15,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x0b,0x0b,0x0e,0x0b,0x00,0x00,0x00,0x23,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x12,0x12,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x20,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x19,0x23,0x19,0x23,0x19,0x23,0x19,0x23,0x1c,0x1c,0x1c,0x0b,0x0b,0x15,0x12,0x18,0x1b,0x18,0x17,0x17,0x19,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x16,0x13,0x17,0x16,0x19,0x1a,0x1a,0x1c,0x18,0x18,0x1b,0x16,0x1c,0x20,0x1b,0x1f,0x23,0x1b,0x20,0x1d,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x16,0x13,0x17,0x19,0x19,0x1c,0x18,0x1b,0x18,0x19,0x19,0x15,0x15,0x20,0x1d,0x1d,0x1c,0x1d,0x19,0x18,0x18,0x1f,0x20,0x20,0x20,0x27,0x27,0x1d,0x27,0x27, +0x1f,0x25,0x24,0x17,0x20,0x24,0x20,0x19,0x24,0x1f,0x1d,0x1d,0x19,0x1b,0x1f,0x21,0x1d,0x1a,0x1e,0x18,0x16,0x27,0x27,0x27,0x23,0x27,0x27,0x1d,0x27,0x27,0x1e,0x20,0x21,0x1f,0x1e,0x1e,0x1b,0x25,0x20,0x23,0x1e,0x1e,0x18,0x1f,0x1d,0x1d,0x24,0x20,0x1e,0x26,0x17,0x15,0x17,0x17,0x1a,0x1a,0x1d,0x1f,0x18,0x18,0x18,0x17,0x18,0x17, +0x17,0x18,0x18,0x18,0x18,0x18,0x18,0x15,0x16,0x19,0x1a,0x19,0x19,0x13,0x18,0x18,0x19,0x19,0x20,0x23,0x1b,0x1b,0x1a,0x20,0x1b,0x1d,0x16,0x14,0x19,0x18,0x14,0x15,0x17,0x17,0x14,0x14,0x1a,0x13,0x17,0x15,0x17,0x21,0x18,0x23,0x17,0x18,0x18,0x1f,0x0d,0x21,0x1d,0x1e,0x1c,0x18,0x20,0x19,0x21,0x19,0x19,0x19,0x19,0x19,0x19,0x18, +0x19,0x19,0x19,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x13,0x13,0x13,0x13,0x14,0x13,0x0d,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x1a,0x0b,0x0b,0x0b,0x0d,0x0d,0x0b,0x0b,0x0b,0x0c,0x0b,0x0b,0x0b,0x26,0x26,0x26,0x26,0x15,0x1f,0x1e,0x15,0x11,0x15,0x16,0x17,0x15,0x23,0x23,0x24,0x13,0x2a,0x15,0x23,0x23,0x23,0x22,0x18,0x15, +0x15,0x21,0x19,0x21,0x1c,0x16,0x13,0x11,0x2b,0x11,0x16,0x15,0x15,0x15,0x15,0x15,0x39,0x23,0x23,0x12,0x0b,0x13,0x0a,0x13,0x0a,0x0a,0x0a,0x14,0x19,0x19,0x17,0x10,0x10,0x0a,0x0a,0x0a,0x10,0x0a,0x11,0x24,0x09,0x26,0x26,0x26,0x19,0x19,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x31,0x31,0x1c,0x31,0x31,0x1c,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x14,0x18,0x14,0x16,0x12,0x0f,0x0f,0x1d,0x17,0x1e,0x12,0x2f,0x26,0x19,0x17,0x27,0x21,0x23,0x1f,0x2b,0x22,0x27,0x20,0x1b,0x14,0x1f,0x19,0x27,0x1f,0x20,0x1a,0x1f,0x19, +0x24,0x1c,0x25,0x1c,0x2e,0x23,0x20,0x19,0x20,0x19,0x33,0x25,0x21,0x00,0x29,0x29,0x29,0x14,0x00,0x00,0x18,0x15,0x1d,0x17,0x16,0x12,0x2d,0x26,0x28,0x24,0x1e,0x18,0x1d,0x19,0x16,0x11,0x1f,0x19,0x16,0x11,0x22,0x1c,0x1c,0x18,0x29,0x22,0x17,0x18,0x1f,0x1f,0x22,0x13,0x08,0x13,0x1d,0x12,0x2a,0x2a,0x0a,0x00,0x29,0x29,0x29,0x29, +0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x11,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x17,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, +0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x20,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x14,0x1c,0x1f,0x0c,0x09,0x0c,0x09,0x1e,0x18,0x1f,0x1a,0x17,0x14,0x16,0x14,0x19,0x18,0x12,0x12,0x2f,0x22,0x30,0x25,0x29,0x24,0x26,0x1c,0x26,0x1c,0x26,0x1c,0x1a,0x13,0x18,0x15,0x18,0x15,0x18,0x15,0x17,0x0d,0x14,0x0a,0x20,0x19,0x24,0x1c,0x38,0x2a,0x18, +0x19,0x1d,0x1e,0x22,0x24,0x20,0x19,0x29,0x21,0x17,0x11,0x17,0x15,0x1a,0x14,0x27,0x1e,0x1a,0x16,0x18,0x19,0x18,0x19,0x14,0x11,0x14,0x10,0x14,0x0f,0x16,0x16,0x0d,0x1c,0x0e,0x28,0x1c,0x0f,0x18,0x1a,0x13,0x20,0x17,0x10,0x0f,0x18,0x18,0x18,0x14,0x0a,0x20,0x19,0x10,0x0f,0x1a,0x13,0x1e,0x10,0x21,0x19,0x1a,0x13,0x1d,0x19,0x18, +0x15,0x1f,0x18,0x19,0x0f,0x16,0x12,0x20,0x12,0x16,0x24,0x15,0x18,0x26,0x0b,0x30,0x26,0x26,0x32,0x25,0x26,0x26,0x25,0x25,0x27,0x16,0x14,0x1a,0x1d,0x26,0x1d,0x28,0x0a,0x13,0x19,0x24,0x2b,0x1d,0x2b,0x1a,0x1a,0x21,0x1d,0x30,0x27,0x16,0x27,0x0e,0x27,0x0e,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x2a,0x15,0x15,0x2a,0x20,0x15, +0x15,0x20,0x1c,0x0e,0x0e,0x1c,0x19,0x19,0x19,0x19,0x20,0x0e,0x0e,0x23,0x20,0x0e,0x0e,0x23,0x12,0x12,0x15,0x15,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x16,0x11,0x18,0x16,0x1f,0x18,0x18,0x25,0x1c,0x1f,0x20,0x23, +0x22,0x18,0x15,0x2a,0x22,0x2c,0x24,0x1d,0x19,0x0d,0x0d,0x19,0x1b,0x11,0x19,0x16,0x18,0x14,0x1f,0x22,0x11,0x19,0x12,0x09,0x10,0x16,0x17,0x09,0x09,0x08,0x09,0x10,0x10,0x10,0x13,0x3f,0x54,0x0e,0x11,0x06,0x0b,0x10,0x12,0x0d,0x15,0x16,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x14,0x14,0x14,0x14,0x14,0x38,0x17,0x20, +0x27,0x26,0x1b,0x13,0x18,0x1e,0x1f,0x15,0x0d,0x1c,0x16,0x1d,0x17,0x1c,0x16,0x17,0x1f,0x19,0x18,0x16,0x1f,0x1a,0x23,0x13,0x16,0x1b,0x0d,0x19,0x0e,0x0f,0x0a,0x25,0x18,0x18,0x16,0x16,0x19,0x27,0x27,0x28,0x2a,0x2a,0x17,0x15,0x0c,0x15,0x13,0x1a,0x13,0x1c,0x0a,0x18,0x19,0x24,0x24,0x1a,0x17,0x18,0x17,0x16,0x13,0x16,0x13,0x14, +0x0d,0x0e,0x0a,0x09,0x0f,0x18,0x1b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x00,0x0c,0x0c,0x0c,0x0b,0x0b,0x47,0x2a,0x25,0x2c,0x0c,0x0c,0x0e,0x11,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x27,0x0e,0x0e,0x27,0x0b,0x15,0x15,0x38,0x2a,0x2a,0x38,0x27,0x15,0x15, +0x27,0x15,0x15,0x12,0x12,0x00,0x00,0x0f,0x1f,0x19,0x1e,0x18,0x35,0x2b,0x1d,0x17,0x1d,0x17,0x38,0x2a,0x20,0x19,0x10,0x0d,0x1a,0x00,0x1d,0x17,0x0e,0x0d,0x07,0x15,0x0e,0x0e,0x0b,0x08,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x09,0x16,0x12,0x19,0x18,0x17,0x28,0x22,0x22,0x21,0x22,0x28,0x1a,0x1d,0x19,0x11,0x27,0x2f,0x12, +0x31,0x15,0x23,0x27,0x27,0x27,0x12,0x20,0x2a,0x20,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x19,0x19,0x19,0x23,0x15,0x15,0x27,0x0e,0x0e,0x27,0x0e,0x0e,0x27,0x15,0x15,0x00,0x12,0x23,0x0e,0x0e,0x2a,0x15,0x15,0x20,0x15,0x15,0x1c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x3f,0x3f,0x25,0x00,0x00,0x25,0x25,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x1c,0x1a,0x1b,0x1b,0x25,0x1b,0x1a,0x22,0x29,0x1b,0x1a,0x2d,0x1b,0x1b,0x27,0x1a,0x1c,0x21,0x1b,0x20,0x24,0x26,0x1b,0x20,0x1b,0x1d,0x1a,0x1d,0x1a,0x1c,0x1d,0x1a,0x21,0x19,0x1c,0x21, +0x1a,0x1a,0x18,0x21,0x1b,0x1b,0x1b,0x1d,0x13,0x16,0x1b,0x21,0x21,0x17,0x00,0x00,0x2e,0x5c,0x1e,0x00,0x04,0x0d,0x0d,0x12,0x1b,0x19,0x26,0x25,0x0b,0x0e,0x0e,0x13,0x1f,0x0a,0x12,0x0a,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x0a,0x0a,0x1f,0x1f,0x1f,0x15,0x2c,0x1e,0x1a,0x1c,0x20,0x17,0x16,0x20,0x21,0x0c,0x10, +0x1b,0x16,0x29,0x22,0x23,0x1a,0x23,0x1c,0x18,0x18,0x20,0x1d,0x2b,0x1b,0x19,0x1a,0x0e,0x11,0x0e,0x1f,0x13,0x0c,0x17,0x1b,0x15,0x1b,0x18,0x0e,0x1b,0x1a,0x0b,0x0b,0x17,0x0b,0x28,0x1a,0x1b,0x1b,0x1b,0x10,0x14,0x10,0x1a,0x16,0x21,0x15,0x16,0x15,0x0e,0x0b,0x0e,0x1f,0x1e,0x1e,0x1c,0x17,0x22,0x23,0x20,0x17,0x17,0x17,0x17,0x17, +0x17,0x15,0x18,0x18,0x18,0x18,0x0b,0x0b,0x0b,0x0b,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,0x11,0x11,0x19,0x19,0x15,0x13,0x15,0x19,0x12,0x29,0x29,0x24,0x0d,0x13,0x20,0x28,0x23,0x26,0x1f,0x20,0x20,0x19,0x1b,0x19,0x1c,0x23,0x19,0x12,0x14,0x23,0x26,0x1b,0x15,0x0d,0x0d,0x1f,0x1e,0x19,0x20,0x1e,0x17,0x17,0x22,0x1e, +0x1e,0x23,0x2b,0x2b,0x17,0x2e,0x11,0x11,0x0b,0x0b,0x1f,0x1b,0x16,0x19,0x08,0x19,0x0f,0x0f,0x1a,0x1a,0x11,0x0a,0x0b,0x11,0x38,0x1e,0x17,0x1e,0x17,0x17,0x0c,0x0c,0x0c,0x0c,0x23,0x23,0x23,0x20,0x20,0x20,0x0b,0x11,0x10,0x0e,0x0e,0x09,0x0d,0x09,0x0f,0x09,0x11,0x16,0x0d,0x18,0x14,0x1a,0x15,0x0b,0x20,0x1a,0x19,0x16,0x1a,0x1b, +0x1f,0x1f,0x10,0x11,0x11,0x2b,0x2a,0x2c,0x16,0x20,0x1b,0x0c,0x18,0x14,0x1c,0x15,0x1c,0x15,0x1b,0x13,0x0a,0x1e,0x17,0x1e,0x17,0x20,0x1f,0x20,0x17,0x18,0x17,0x18,0x16,0x0b,0x16,0x0e,0x16,0x0e,0x22,0x1a,0x22,0x1a,0x23,0x1b,0x1c,0x10,0x1c,0x10,0x18,0x14,0x18,0x10,0x18,0x14,0x20,0x1a,0x20,0x1a,0x1a,0x15,0x1a,0x15,0x16,0x23, +0x23,0x1c,0x1b,0x14,0x1a,0x16,0x20,0x13,0x16,0x12,0x33,0x1d,0x17,0x1c,0x0b,0x11,0x25,0x0f,0x1c,0x10,0x10,0x1c,0x10,0x1e,0x17,0x1c,0x15,0x1c,0x15,0x17,0x18,0x17,0x18,0x17,0x18,0x20,0x1b,0x20,0x1b,0x20,0x1b,0x21,0x1a,0x21,0x1a,0x0c,0x0b,0x0c,0x0b,0x0c,0x0b,0x0c,0x0b,0x10,0x0b,0x1b,0x17,0x17,0x16,0x0b,0x22,0x1a,0x22,0x1a, +0x23,0x1b,0x23,0x1b,0x1c,0x10,0x18,0x14,0x18,0x10,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x2b,0x21,0x19,0x16,0x0b,0x1e,0x17,0x28,0x26,0x23,0x1b,0x0a,0x2b,0x21,0x2b,0x21,0x2b,0x21,0x19,0x16,0x0b,0x13,0x19,0x1c,0x2a,0x2a,0x2b,0x29,0x12,0x12,0x0a,0x0d,0x0d,0x1e,0x1a,0x24,0x11,0x25,0x1f,0x26,0x0c,0x1e,0x1a,0x17,0x1a,0x21, +0x0c,0x1b,0x1d,0x29,0x22,0x17,0x23,0x21,0x1a,0x18,0x18,0x19,0x1b,0x24,0x23,0x0c,0x19,0x1c,0x14,0x1a,0x0c,0x19,0x19,0x18,0x14,0x1a,0x1b,0x0c,0x18,0x17,0x1b,0x18,0x14,0x1b,0x1b,0x15,0x19,0x19,0x23,0x25,0x0c,0x19,0x1b,0x19,0x25,0x17,0x20,0x16,0x1c,0x18,0x0c,0x2d,0x2d,0x21,0x1b,0x1a,0x21,0x1e,0x1a,0x1a,0x16,0x20,0x17,0x28, +0x19,0x22,0x22,0x1b,0x1f,0x29,0x21,0x23,0x21,0x1a,0x1c,0x18,0x1a,0x21,0x1b,0x22,0x1e,0x2c,0x2d,0x20,0x24,0x1b,0x1c,0x2f,0x1b,0x17,0x1b,0x18,0x12,0x19,0x18,0x22,0x15,0x1b,0x1b,0x17,0x18,0x20,0x1b,0x1b,0x1b,0x1b,0x15,0x13,0x16,0x20,0x15,0x1c,0x1a,0x25,0x26,0x1b,0x21,0x17,0x15,0x25,0x17,0x18,0x1b,0x12,0x15,0x14,0x0b,0x24, +0x25,0x1a,0x17,0x16,0x1b,0x16,0x12,0x2e,0x34,0x1d,0x10,0x11,0x11,0x11,0x0b,0x18,0x14,0x1a,0x23,0x1b,0x21,0x1b,0x0e,0x0f,0x0c,0x0c,0x16,0x16,0x16,0x16,0x0e,0x0e,0x0e,0x16,0x0e,0x16,0x0e,0x0e,0x0e,0x16,0x16,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e, +0x17,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x0c,0x0b,0x0c,0x0b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x20,0x1a,0x20,0x1a,0x21,0x1b,0x21,0x1b,0x21,0x1b,0x21,0x1b,0x21,0x1b,0x19,0x16,0x19,0x16,0x19, +0x16,0x18,0x10,0x17,0x18,0x22,0x1b,0x0c,0x10,0x0b,0x0b,0x18,0x13,0x2a,0x24,0x1c,0x18,0x1b,0x17,0x22,0x1c,0x19,0x16,0x19,0x16,0x1d,0x17,0x1e,0x1a,0x1e,0x1a,0x21,0x18,0x23,0x1b,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x16,0x16,0x16,0x16,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x17,0x18,0x1e,0x17,0x1a,0x1b,0x1a,0x1b,0x1a,0x1b,0x1c,0x15,0x20, +0x1b,0x20,0x1b,0x20,0x1b,0x20,0x1b,0x20,0x1b,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x16,0x0e,0x20,0x1b,0x21,0x1a,0x21,0x1a,0x21,0x1a,0x21,0x1a,0x21,0x1a,0x0c,0x0b,0x0c,0x0b,0x1b,0x17,0x1b,0x17,0x1b,0x17,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x29,0x28,0x29,0x28,0x29,0x28,0x22,0x1a,0x22,0x1a,0x22,0x1a,0x22, +0x1a,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x1a,0x1b,0x1a,0x1b,0x1c,0x10,0x1c,0x10,0x1c,0x10,0x1c,0x10,0x18,0x14,0x18,0x14,0x18,0x14,0x18,0x14,0x18,0x14,0x18,0x10,0x18,0x10,0x18,0x10,0x18,0x10,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x1d,0x16,0x1d,0x16,0x2b,0x21,0x2b,0x21,0x1b,0x15,0x1b,0x15,0x19,0x16,0x1a, +0x15,0x1a,0x15,0x1a,0x15,0x1a,0x10,0x21,0x16,0x17,0x0b,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1e,0x1e,0x22,0x22,0x22,0x22,0x22,0x22,0x14,0x14,0x14,0x14,0x14,0x14,0x1a,0x1a,0x21,0x21,0x21,0x21,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x24,0x24,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11, +0x11,0x17,0x17,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x25,0x25,0x2c,0x2c,0x2c,0x2c,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1f,0x26,0x26,0x26,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x26,0x26,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x1c,0x1c,0x14,0x14,0x1a,0x1a,0x0c,0x0c,0x1b,0x1b,0x19,0x19,0x25,0x25,0x1c,0x1c,0x1c, +0x1c,0x1c,0x1c,0x1c,0x1c,0x1e,0x1e,0x22,0x22,0x22,0x22,0x22,0x22,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x24,0x24,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x26,0x26,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1e,0x1e,0x1e,0x1e,0x1e,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a, +0x1a,0x1a,0x1a,0x1a,0x1a,0x24,0x24,0x21,0x1b,0x1b,0x1b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x1b,0x1b,0x1b,0x19,0x19,0x19,0x19,0x1b,0x1b,0x19,0x19,0x19,0x19,0x1f,0x1f,0x1d,0x1b,0x1b,0x1b,0x25,0x25,0x25,0x25,0x25,0x26,0x26,0x27,0x26,0x23,0x1b,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x1b,0x1c,0x1a,0x1b,0x1b,0x1b,0x1d,0x1d,0x15,0x20,0x22,0x1a,0x1b,0x1b,0x17,0x19,0x16,0x20,0x1d,0x28,0x0d,0x0d,0x1b,0x17,0x0b,0x17,0x29,0x22,0x1a,0x23,0x2d,0x24,0x1c,0x1b,0x1b,0x18,0x14,0x18,0x0e,0x10,0x18,0x10,0x18,0x23,0x21,0x1a,0x18,0x1a,0x15,0x1c,0x1c,0x14,0x13,0x19,0x19,0x11,0x12,0x19,0x0b,0x12,0x15,0x0d, +0x39,0x34,0x2f,0x27,0x21,0x17,0x31,0x2d,0x25,0x1e,0x17,0x0c,0x0b,0x23,0x1b,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x18,0x1e,0x17,0x1e,0x17,0x28,0x26,0x20,0x1b,0x20,0x1b,0x1b,0x17,0x23,0x1b,0x23,0x1b,0x1c,0x14,0x0b,0x39,0x34,0x2f,0x20,0x1b,0x2e,0x20,0x22,0x1a,0x1e,0x17,0x1e,0x17,0x17,0x18,0x17,0x18,0x0c,0x0b, +0x0c,0x0b,0x23,0x1b,0x23,0x1b,0x1a,0x10,0x1c,0x10,0x20,0x1a,0x20,0x1a,0x17,0x14,0x21,0x1a,0x22,0x1b,0x1a,0x1a,0x15,0x1e,0x17,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x19,0x16,0x1b,0x17,0x1a,0x1a,0x1b,0x17,0x1b,0x1b,0x1b,0x15,0x15,0x1b,0x1b,0x18,0x1c,0x13,0x13,0x17,0x19,0x0d,0x1b,0x1b,0x18,0x16,0x15,0x1a,0x1a,0x1a,0x0c, +0x0d,0x0f,0x0d,0x11,0x0b,0x1c,0x28,0x28,0x28,0x1a,0x1a,0x1b,0x1b,0x20,0x21,0x1d,0x10,0x10,0x10,0x10,0x10,0x0f,0x0f,0x15,0x15,0x12,0x0b,0x0c,0x0d,0x0d,0x10,0x10,0x1c,0x1b,0x1a,0x16,0x21,0x16,0x13,0x15,0x18,0x14,0x14,0x11,0x11,0x11,0x15,0x1c,0x16,0x19,0x18,0x1a,0x0b,0x17,0x12,0x1b,0x11,0x11,0x2a,0x2c,0x2d,0x1c,0x16,0x21, +0x24,0x1b,0x1a,0x17,0x17,0x19,0x1b,0x1a,0x1f,0x1a,0x1d,0x25,0x1a,0x20,0x1b,0x1b,0x15,0x17,0x15,0x1b,0x17,0x1c,0x17,0x29,0x28,0x1c,0x17,0x1d,0x19,0x1c,0x15,0x1b,0x16,0x1e,0x1b,0x1a,0x13,0x1a,0x1b,0x15,0x0b,0x23,0x15,0x15,0x28,0x1f,0x1e,0x1b,0x2a,0x21,0x1f,0x17,0x28,0x20,0x21,0x1a,0x2b,0x22,0x19,0x15,0x24,0x23,0x23,0x1b, +0x21,0x1b,0x21,0x1b,0x3c,0x33,0x26,0x1e,0x34,0x29,0x28,0x1f,0x1b,0x14,0x17,0x12,0x13,0x00,0x00,0x2d,0x2c,0x1b,0x17,0x1a,0x1b,0x1a,0x17,0x19,0x15,0x1b,0x17,0x21,0x1b,0x27,0x1f,0x2f,0x26,0x21,0x1a,0x1c,0x15,0x18,0x13,0x28,0x1f,0x20,0x1b,0x26,0x1d,0x26,0x1d,0x0c,0x28,0x22,0x1b,0x17,0x21,0x1b,0x1e,0x1a,0x1e,0x17,0x1e,0x17, +0x28,0x26,0x17,0x18,0x21,0x18,0x21,0x18,0x28,0x22,0x19,0x15,0x18,0x14,0x22,0x1b,0x22,0x1b,0x23,0x1b,0x23,0x1b,0x1c,0x15,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x1e,0x1a,0x24,0x21,0x1a,0x1b,0x27,0x28,0x25,0x21,0x1a,0x16,0x2a,0x25,0x2e,0x27,0x21,0x18,0x1f,0x1c,0x1b,0x1a,0x1a,0x17,0x1b,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x0b,0x0b,0x1b,0x0f,0x0f,0x08,0x0a,0x0a,0x0a,0x0d,0x12,0x0d,0x0b,0x11,0x0a,0x0a,0x0a,0x0f,0x0f,0x0a,0x0a,0x1b,0x1b,0x1b,0x1b,0x0f,0x0d,0x0c,0x0f,0x0e,0x0c,0x0d,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0f,0x0f,0x0d,0x07,0x0b,0x0d,0x0a,0x12,0x12,0x12,0x12,0x12,0x0f,0x0f,0x0f,0x13,0x0f,0x0b,0x0c, +0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19, +0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19, +0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x1e,0x0e,0x1d,0x10,0x1b,0x1b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0c,0x0f,0x0f,0x10,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x1b,0x16,0x1e,0x26,0x16,0x15,0x19,0x1a,0x13,0x13,0x0b,0x0e,0x17, +0x12,0x20,0x1b,0x1b,0x16,0x1c,0x1c,0x1c,0x2b,0x19,0x1b,0x1b,0x15,0x15,0x15,0x13,0x19,0x1a,0x21,0x1a,0x16,0x21,0x15,0x13,0x13,0x18,0x12,0x16,0x1b,0x15,0x1b,0x1a,0x11,0x16,0x10,0x10,0x13,0x0e,0x0e,0x13,0x14,0x08,0x0a,0x10,0x0d,0x18,0x14,0x14,0x14,0x12,0x10,0x10,0x0d,0x13,0x18,0x0e,0x0e,0x10,0x16,0x10,0x10,0x0e,0x0e,0x0c, +0x0c,0x10,0x08,0x0e,0x17,0x0f,0x10,0x0c,0x10,0x10,0x10,0x09,0x0f,0x0f,0x17,0x0d,0x0f,0x0f,0x0d,0x10,0x13,0x0e,0x08,0x0a,0x0f,0x0d,0x0f,0x0d,0x10,0x13,0x0e,0x1b,0x08,0x10,0x19,0x28,0x1d,0x19,0x19,0x28,0x1e,0x27,0x22,0x18,0x1b,0x17,0x15,0x34,0x15,0x1b,0x29,0x2b,0x2b,0x1d,0x1e,0x1c,0x15,0x16,0x18,0x14,0x15,0x18,0x09,0x00, +0x00,0x00,0x00,0x1b,0x1c,0x1c,0x1c,0x16,0x12,0x1b,0x1b,0x0e,0x28,0x1a,0x1b,0x10,0x0f,0x15,0x10,0x15,0x1b,0x15,0x1b,0x2a,0x1e,0x0f,0x0c,0x1b,0x19,0x1b,0x1b,0x1b,0x0e,0x1b,0x17,0x0b,0x28,0x1a,0x1b,0x10,0x14,0x14,0x16,0x15,0x15,0x17,0x1b,0x1b,0x18,0x14,0x15,0x22,0x0b,0x15,0x0b,0x1a,0x14,0x10,0x0c,0x0c,0x10,0x0c,0x08,0x08, +0x10,0x0f,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x0a,0x17,0x17,0x0f,0x0f,0x10,0x0f,0x11,0x0b,0x08,0x09,0x0f,0x10,0x0f,0x0f,0x0d,0x0c,0x0c,0x0e,0x0c,0x10,0x00,0x00,0x00,0x00,0x0a,0x0e,0x0e,0x10,0x0c,0x0e,0x19,0x19,0x19,0x19,0x0f,0x00,0x00,0x00,0x00,0x15,0x0e,0x0c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0c,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x0c,0x0c,0x0c,0x0c,0x19,0x19,0x19,0x19,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x19,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x0e,0x08,0x11,0x11,0x10,0x11,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x0e,0x11,0x10,0x11,0x11,0x10,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x0e,0x0e,0x24,0x1d,0x21,0x1b,0x22,0x1d,0x2b,0x23,0x19,0x11,0x18,0x1f,0x19,0x26,0x20,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0f,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x26,0x26,0x2e,0x13,0x0c,0x17,0x1b,0x13,0x17,0x17,0x1b,0x1b,0x17,0x2e,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x1e,0x17,0x17,0x17, +0x0f,0x1b,0x0f,0x23,0x1f,0x17,0x0f,0x26,0x17,0x26,0x0c,0x0f,0x1b,0x1b,0x1e,0x1e,0x1e,0x1b,0x1b,0x1b,0x26,0x0c,0x1b,0x0c,0x17,0x13,0x0c,0x0c,0x17,0x0c,0x23,0x0c,0x2a,0x17,0x2a,0x2a,0x1b,0x1b,0x1b,0x17,0x17,0x13,0x13,0x36,0x36,0x3d,0x3d,0x26,0x26,0x17,0x17,0x08,0x2e,0x23,0x26,0x1f,0x1b,0x1f,0x17,0x17,0x23,0x23,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x0c,0x1e,0x00,0x1e,0x1e,0x1e,0x0f,0x17,0x17,0x2a,0x0f,0x2a,0x0f,0x1b,0x1f,0x1b,0x13,0x2a,0x17,0x2a,0x17,0x23,0x26,0x0f,0x17,0x17,0x13,0x0c,0x17,0x1b,0x17,0x1b,0x17,0x1b,0x1b,0x17,0x1f,0x1e,0x2a,0x0f,0x17,0x13,0x1f,0x17,0x0f,0x17,0x17,0x17,0x2a,0x0f,0x2a,0x0f,0x0c,0x1b,0x12,0x2e,0x17, +0x17,0x1e,0x1e,0x2e,0x17,0x00,0x00,0x00,0x1e,0x00,0x1e,0x1e,0x1e,0x1e,0x23,0x1e,0x00,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x13,0x13,0x17,0x17,0x23,0x26,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1f,0x1b,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x13,0x13,0x13,0x17,0x13,0x13,0x13,0x36,0x26,0x36,0x26,0x36,0x26,0x3d,0x2e,0x3d,0x2e,0x26,0x17,0x1b,0x1b,0x1b,0x2e,0x2e,0x17,0x17,0x2e,0x17,0x17,0x2e,0x17,0x17,0x2e,0x17,0x17,0x23,0x23,0x32,0x2e,0x2a,0x17,0x26,0x17,0x26,0x17,0x26,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x1f,0x0f,0x1f, +0x0f,0x1f,0x0f,0x1f,0x0f,0x1f,0x0f,0x1f,0x1f,0x0f,0x1f,0x0f,0x19,0x1f,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x26,0x2a,0x23,0x26,0x0f,0x17,0x23,0x26,0x23,0x26,0x00,0x00,0x00,0x00,0x00,0x34,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x13,0x00,0x00,0x1c,0x00,0x00,0x00,0x36,0x26,0x3d,0x2e,0x17,0x1b,0x1b,0x1b,0x13,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x2a,0x2a,0x11,0x1b,0x1b,0x1b,0x38,0x26,0x18,0x46,0x32,0x0f,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x17,0x13,0x13,0x23,0x1f,0x1f,0x17,0x00,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x3a,0x45,0x00,0x00,0x00,0x00,0x00,0x1b,0x17,0x00,0x00, +0x00,0x00,0x00,0x00,0x2a,0x13,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b,0x1b,0x1b,0x1f,0x1b,0x17,0x17,0x13,0x36,0x26,0x17,0x1b,0x1b,0x1b,0x17,0x1b,0x1b,0x1b,0x17,0x1b,0x1b,0x1b,0x2e,0x17,0x17,0x2e,0x17,0x17,0x2a,0x17,0x17,0x2a,0x17,0x17,0x2a,0x17,0x17,0x1b,0x1b,0x1b,0x1b,0x1f,0x0f,0x1f,0x0f, +0x1f,0x0f,0x1f,0x1f,0x0f,0x0f,0x13,0x13,0x36,0x26,0x1e,0x1b,0x1b,0x00,0x17,0x17,0x17,0x11,0x1a,0x20,0x1d,0x17,0x18,0x10,0x0b,0x23,0x1b,0x1c,0x10,0x19,0x16,0x16,0x15,0x16,0x0b,0x18,0x13,0x1c,0x16,0x1b,0x15,0x19,0x14,0x1f,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x15,0x16,0x16,0x0d,0x18,0x1a,0x1c,0x17,0x10, +0x22,0x1b,0x1d,0x19,0x1d,0x17,0x1a,0x18,0x12,0x20,0x11,0x13,0x13,0x16,0x1c,0x1c,0x17,0x2e,0x17,0x2e,0x0f,0x0c,0x08,0x19,0x0a,0x06,0x00,0x06,0x0a,0x00,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x17,0x17,0x2b,0x14,0x23,0x1b,0x2b,0x21,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2a,0x2a,0x28,0x16, +0x28,0x16,0x28,0x1e,0x1f,0x20,0x20,0x23,0x28,0x2e,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x1f,0x1f,0x1f,0x1f,0x22,0x1b,0x31,0x26,0x16,0x16,0x0d,0x0d,0x0d,0x11,0x0a,0x1a,0x0b,0x0b,0x26,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x09,0x00,0x00,0x0a,0x00,0x00,0x1d,0x1a,0x14,0x16,0x1f,0x0c, +0x10,0x1f,0x1f,0x0c,0x1a,0x19,0x19,0x20,0x1f,0x0c,0x12,0x1f,0x1c,0x1c,0x1d,0x1a,0x1b,0x1f,0x1a,0x24,0x21,0x18,0x18,0x18,0x0b,0x11,0x1a,0x1a,0x19,0x19,0x19,0x1c,0x1d,0x16,0x1f,0x19,0x19,0x20,0x1a,0x21,0x19,0x24,0x24,0x24,0x24,0x1d,0x1d,0x1d,0x1a,0x14,0x16,0x1f,0x0e,0x10,0x1f,0x0e,0x1a,0x19,0x19,0x1f,0x12,0x1f,0x1c,0x1d, +0x1b,0x1f,0x1a,0x24,0x21,0x0c,0x1a,0x19,0x1d,0x1e,0x37,0x00,0x1d,0x19,0x1e,0x1e,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x0c,0x00,0x23,0x1e,0x1f,0x20,0x19,0x1f,0x22,0x23,0x16,0x1d,0x22,0x22, +0x1e,0x23,0x25,0x24,0x1f,0x19,0x1a,0x23,0x20,0x1a,0x20,0x1f,0x1e,0x1f,0x20,0x22,0x1b,0x1d,0x1f,0x1e,0x24,0x1d,0x1c,0x1e,0x1f,0x26,0x17,0x1b,0x1b,0x28,0x19,0x19,0x23,0x29,0x1c,0x19,0x30,0x1a,0x1a,0x23,0x19,0x19,0x23,0x1a,0x23,0x25,0x28,0x19,0x24,0x19,0x1e,0x19,0x1c,0x1a,0x1d,0x19,0x1c,0x23,0x19,0x1d,0x1f,0x19,0x19,0x1b, +0x2c,0x19,0x19,0x1b,0x1b,0x14,0x0f,0x1a,0x1a,0x1a,0x19,0x1a,0x29,0x1a,0x29,0x17,0x1a,0x29,0x1f,0x1a,0x29,0x22,0x22,0x29,0x1b,0x1a,0x29,0x29,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x29,0x29,0x1b,0x1a,0x1a,0x29,0x1b,0x19,0x1a,0x1a,0x29,0x24,0x20,0x20,0x20,0x20,0x21,0x1d,0x20,0x24,0x20,0x1e,0x19,0x24,0x1f,0x20,0x1a,0x1f,0x20,0x22, +0x21,0x1b,0x20,0x1f,0x21,0x1f,0x24,0x20,0x21,0x21,0x1f,0x1d,0x20,0x1f,0x21,0x24,0x1e,0x23,0x21,0x05,0x05,0x07,0x09,0x07,0x0c,0x10,0x28,0x1a,0x1c,0x1b,0x1a,0x1c,0x1a,0x1a,0x1e,0x1c,0x1a,0x0e,0x26,0x1b,0x1a,0x1a,0x19,0x1c,0x18,0x1b,0x0c,0x1b,0x18,0x1a,0x13,0x28,0x19,0x1a,0x1a,0x1b,0x26,0x1a,0x1b,0x12,0x26,0x1b,0x1b,0x20, +0x1f,0x0a,0x0d,0x34,0x34,0x34,0x34,0x42,0x19,0x19,0x0b,0x19,0x12,0x19,0x19,0x1a,0x19,0x19,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x1a,0x19,0x19,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x17,0x17, +0x1b,0x14,0x13,0x1a,0x1c,0x0c,0x0e,0x17,0x13,0x23,0x1e,0x1c,0x16,0x1c,0x17,0x13,0x14,0x1b,0x17,0x25,0x17,0x15,0x16,0x20,0x24,0x13,0x1d,0x16,0x1b,0x18,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x14,0x14,0x14,0x14,0x0c,0x0c,0x0c,0x0c,0x1e,0x1c,0x1c,0x1c,0x1c,0x1c,0x1b,0x1b,0x1b,0x1b,0x15,0x17,0x17,0x17,0x17,0x17,0x1a,0x1b,0x1b, +0x14,0x14,0x14,0x14,0x14,0x1a,0x1a,0x17,0x1c,0x1c,0x0c,0x0c,0x0c,0x0c,0x0c,0x1a,0x0e,0x17,0x13,0x13,0x13,0x13,0x1e,0x1e,0x1e,0x1e,0x1c,0x1c,0x1c,0x17,0x17,0x17,0x13,0x13,0x13,0x13,0x14,0x14,0x14,0x14,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x25,0x25,0x25,0x25,0x15,0x15,0x15,0x16,0x16,0x16,0x17,0x20,0x1d,0x17,0x17,0x12,0x19,0x14, +0x16,0x1c,0x1c,0x0c,0x17,0x17,0x23,0x1e,0x15,0x1c,0x1c,0x16,0x15,0x14,0x15,0x1d,0x17,0x1e,0x1d,0x17,0x14,0x1c,0x0c,0x1c,0x15,0x1d,0x0c,0x15,0x14,0x1a,0x12,0x18,0x13,0x0c,0x0c,0x0e,0x25,0x26,0x1c,0x17,0x17,0x1c,0x17,0x16,0x17,0x12,0x1b,0x14,0x22,0x14,0x1e,0x1e,0x17,0x1a,0x23,0x1c,0x1c,0x1c,0x16,0x17,0x14,0x17,0x1d,0x17, +0x1d,0x19,0x25,0x26,0x1a,0x20,0x17,0x18,0x28,0x16,0x12,0x1b,0x1b,0x1d,0x29,0x29,0x1e,0x17,0x1a,0x13,0x1a,0x1a,0x1a,0x20,0x18,0x18,0x20,0x1b,0x1b,0x10,0x1c,0x1c,0x1a,0x16,0x16,0x29,0x22,0x16,0x18,0x1c,0x1c,0x1d,0x1d,0x21,0x20,0x10,0x2b,0x1b,0x19,0x1a,0x1e,0x1e,0x17,0x17,0x0c,0x23,0x20,0x20,0x16,0x20,0x0a,0x0a,0x14,0x14, +0x0a,0x0a,0x1c,0x12,0x0c,0x23,0x20,0x0d,0x0a,0x0a,0x15,0x11,0x11,0x0b,0x0b,0x0b,0x11,0x1f,0x16,0x0e,0x1c,0x20,0x1b,0x1b,0x17,0x22,0x1a,0x1c,0x10,0x14,0x18,0x14,0x0a,0x0b,0x12,0x18,0x10,0x1f,0x1f,0x1f,0x2a,0x23,0x2a,0x0c,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x26,0x0f,0x0f,0x17,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b, +0x1b,0x17,0x17,0x36,0x26,0x36,0x26,0x3d,0x2e,0x3d,0x2e,0x26,0x26,0x26,0x26,0x26,0x26,0x2a,0x2a,0x17,0x17,0x2a,0x2a,0x17,0x17,0x23,0x26,0x0f,0x0f,0x23,0x26,0x0f,0x0f,0x23,0x26,0x0f,0x0f,0x2e,0x23,0x26,0x17,0x1b,0x1b,0x1f,0x0f,0x1f,0x23,0x17,0x17,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c, +0x2a,0x0f,0x23,0x17,0x17,0x0c,0x17,0x17,0x17,0x17,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x36,0x26,0x36,0x26,0x36,0x26,0x3d,0x2e,0x3d,0x2e,0x26,0x26,0x26,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x23,0x17,0x17, +0x23,0x17,0x17,0x2a,0x17,0x32,0x2e,0x2a,0x17,0x26,0x17,0x26,0x17,0x26,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x1f,0x1f,0x1f,0x1f,0x1f,0x0f,0x1f,0x1f,0x0f,0x0f,0x1f,0x0f,0x1f,0x0f,0x1f,0x17,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0f,0x0f,0x17,0x0f,0x0f,0x0f,0x0f,0x00,0x36,0x26, +0x3d,0x2e,0x2a,0x17,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b,0x17,0x17,0x13,0x36,0x26,0x2e,0x2e,0x2a,0x2a,0x2a,0x1b,0x1b,0x1b,0x1b,0x1f,0x0f,0x1f,0x0f,0x1f,0x0f,0x36,0x26,0x1b,0x1f,0x1b,0x1b,0x1b,0x1f,0x1b,0x1b,0x36,0x36,0x26,0x26,0x13,0x13,0x1b,0x1b,0x1b,0x1b,0x0f,0x0f,0x0f,0x0f,0x23,0x26, +0x0f,0x0f,0x23,0x26,0x0f,0x0f,0x23,0x26,0x0f,0x0f,0x1b,0x1b,0x1b,0x1b,0x2a,0x0f,0x2a,0x0f,0x1b,0x1f,0x1b,0x1b,0x36,0x36,0x26,0x26,0x36,0x36,0x26,0x26,0x26,0x26,0x17,0x17,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,0x0c,0x0c,0x0f,0x0c,0x00,0x00,0x00,0x26,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x13,0x13,0x23,0x23, +0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f, +0x23,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1b,0x26,0x1b,0x26,0x1b,0x26,0x1b,0x26,0x1f,0x1f,0x1f,0x0c,0x0c,0x17,0x13,0x1b,0x1d,0x1a,0x19,0x1a,0x1b,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x18,0x15,0x19,0x18,0x1b,0x1c,0x1c,0x1e,0x1b,0x1a,0x1e,0x18,0x1f,0x23,0x1d,0x22,0x26,0x1d,0x23,0x20,0x1a,0x1a,0x1a,0x1a, +0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x18,0x15,0x19,0x1c,0x1c,0x1e,0x1a,0x1e,0x1a,0x1b,0x1c,0x17,0x17,0x23,0x1f,0x20,0x1f,0x1f,0x1b,0x1b,0x1b,0x22,0x23,0x23,0x23,0x2a,0x2a,0x20,0x2a,0x2a,0x22,0x28,0x27,0x1a,0x23,0x27,0x23,0x1b,0x27,0x22,0x20,0x20,0x1c,0x1e,0x22,0x25,0x20,0x1c,0x21,0x1b,0x19,0x2a,0x2a,0x2a,0x26,0x2a,0x2a,0x1f, +0x2a,0x2a,0x21,0x23,0x24,0x22,0x21,0x21,0x1e,0x29,0x23,0x26,0x21,0x21,0x1b,0x22,0x20,0x20,0x27,0x23,0x21,0x29,0x19,0x17,0x1a,0x19,0x1c,0x1d,0x20,0x22,0x1b,0x1a,0x1a,0x19,0x1a,0x19,0x19,0x1a,0x1a,0x1b,0x1a,0x1a,0x1a,0x17,0x18,0x1b,0x1d,0x1c,0x1c,0x15,0x1a,0x1a,0x1b,0x1c,0x23,0x27,0x1e,0x1e,0x1d,0x23,0x1d,0x1f,0x18,0x16, +0x1b,0x1a,0x16,0x17,0x19,0x19,0x16,0x15,0x1d,0x15,0x19,0x17,0x19,0x24,0x1a,0x26,0x19,0x1a,0x1a,0x22,0x0e,0x24,0x20,0x21,0x1e,0x1a,0x23,0x1c,0x24,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1b,0x1c,0x1c,0x1c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x14,0x15,0x15,0x15,0x15,0x15,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x1d,0x0c, +0x0c,0x0c,0x0e,0x0e,0x0c,0x0c,0x0c,0x0e,0x0c,0x0c,0x0c,0x2a,0x2a,0x2a,0x2a,0x16,0x22,0x21,0x16,0x13,0x16,0x18,0x1a,0x16,0x27,0x26,0x28,0x14,0x2e,0x16,0x26,0x26,0x27,0x25,0x1a,0x16,0x16,0x24,0x1b,0x24,0x1f,0x19,0x15,0x13,0x2f,0x13,0x19,0x16,0x16,0x16,0x16,0x16,0x3f,0x26,0x26,0x14,0x0c,0x15,0x0b,0x15,0x0b,0x0b,0x0b,0x16, +0x1b,0x1b,0x19,0x11,0x11,0x0b,0x0b,0x0b,0x11,0x0b,0x13,0x28,0x0a,0x2a,0x2a,0x2a,0x1b,0x1b,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x36,0x36,0x1f,0x36,0x36,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x1b,0x16,0x1b,0x16,0x18,0x14,0x10,0x10,0x20,0x19,0x21,0x14,0x34,0x29,0x1b,0x19,0x2a,0x24,0x27,0x22,0x2f,0x25,0x2b,0x24,0x1e,0x16,0x21,0x1b,0x2b,0x22,0x23,0x1c,0x22,0x1c,0x28,0x1f,0x28,0x1f,0x33,0x27,0x23,0x1b,0x23,0x1b,0x38,0x29,0x24,0x00,0x2d,0x2d,0x2d,0x16,0x00,0x00,0x1b,0x17,0x20,0x1a,0x18,0x14,0x32,0x2a, +0x2b,0x28,0x21,0x1b,0x20,0x1b,0x18,0x13,0x22,0x1b,0x18,0x13,0x26,0x1f,0x1e,0x1a,0x2d,0x26,0x19,0x1a,0x22,0x22,0x25,0x15,0x09,0x15,0x1f,0x14,0x2e,0x2e,0x0b,0x00,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x12,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x19,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x22,0x22,0x22,0x22, +0x22,0x22,0x22,0x22,0x22,0x22,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, +0x1a,0x1a,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x16,0x1f,0x21,0x0d,0x0a,0x0d,0x0a,0x21,0x1a,0x22,0x1d,0x19,0x16,0x19, +0x16,0x1b,0x1a,0x13,0x13,0x34,0x26,0x35,0x29,0x2d,0x27,0x29,0x1e,0x29,0x1e,0x29,0x1e,0x1c,0x15,0x1b,0x17,0x1b,0x17,0x1b,0x17,0x19,0x0e,0x16,0x0b,0x23,0x1b,0x28,0x1f,0x3d,0x2e,0x1a,0x1b,0x20,0x20,0x25,0x28,0x23,0x1b,0x2d,0x24,0x19,0x12,0x1a,0x17,0x1d,0x16,0x2b,0x21,0x1c,0x18,0x1a,0x1b,0x1a,0x1b,0x16,0x12,0x16,0x12,0x16, +0x11,0x18,0x18,0x0e,0x1f,0x0f,0x2c,0x1e,0x10,0x1b,0x1c,0x15,0x23,0x1a,0x11,0x10,0x1b,0x1b,0x1b,0x16,0x0b,0x23,0x1c,0x11,0x10,0x1d,0x15,0x21,0x12,0x24,0x1c,0x1c,0x15,0x20,0x1b,0x1b,0x17,0x22,0x1a,0x1c,0x10,0x18,0x14,0x23,0x14,0x18,0x28,0x16,0x1a,0x29,0x0c,0x35,0x29,0x29,0x36,0x29,0x2a,0x2a,0x28,0x29,0x2a,0x18,0x16,0x1c, +0x20,0x29,0x20,0x2b,0x0b,0x15,0x1b,0x28,0x2f,0x20,0x2f,0x1c,0x1c,0x25,0x20,0x34,0x2a,0x18,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b,0x1b,0x1b,0x26,0x26,0x26,0x26,0x2e,0x17,0x17,0x2e,0x23,0x17,0x17,0x23,0x1f,0x0f,0x0f,0x1f,0x1b,0x1b,0x1b,0x1b,0x23,0x0f,0x0f,0x26,0x23,0x0f,0x0f,0x26,0x13,0x13,0x17,0x17,0x18,0x18,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x18,0x12,0x1a,0x18,0x22,0x1b,0x1b,0x28,0x1f,0x22,0x23,0x26,0x26,0x1b,0x17,0x2e,0x25,0x30,0x27,0x20,0x1b,0x0e,0x0e,0x1b,0x1e,0x13,0x1c,0x18,0x1b,0x16,0x22,0x25,0x12,0x1b,0x14,0x0a,0x11,0x18,0x19,0x0a, +0x0a,0x08,0x0a,0x11,0x11,0x11,0x15,0x44,0x5c,0x10,0x13,0x06,0x0c,0x12,0x14,0x0f,0x17,0x18,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x16,0x16,0x16,0x16,0x16,0x3d,0x19,0x23,0x2a,0x29,0x1e,0x15,0x1a,0x21,0x22,0x16,0x0e,0x1e,0x18,0x1f,0x1a,0x1e,0x19,0x19,0x22,0x1b,0x1b,0x18,0x22,0x1c,0x26,0x15,0x18,0x1d,0x0e,0x1b, +0x10,0x10,0x0b,0x28,0x1b,0x1a,0x18,0x18,0x1b,0x2b,0x2b,0x2b,0x2e,0x2e,0x19,0x17,0x0d,0x17,0x15,0x1c,0x15,0x1f,0x0b,0x1a,0x1c,0x28,0x28,0x1c,0x19,0x1b,0x19,0x18,0x15,0x18,0x15,0x16,0x0e,0x10,0x0b,0x0a,0x11,0x1b,0x1d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0f,0x0f,0x00,0x0d,0x0d,0x0d,0x0c, +0x0c,0x4d,0x2e,0x28,0x30,0x0d,0x0d,0x0f,0x12,0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x00,0x2a,0x0f,0x0f,0x2a,0x0c,0x17,0x17,0x3d,0x2e,0x2e,0x3d,0x2a,0x17,0x17,0x2a,0x17,0x17,0x13,0x13,0x00,0x00,0x10,0x22,0x1c,0x21,0x1b,0x3a,0x30,0x20,0x19,0x20,0x19,0x3d,0x2e,0x23,0x1b,0x12,0x0f,0x1c,0x00,0x1f,0x19, +0x0f,0x0e,0x07,0x17,0x0f,0x10,0x0c,0x09,0x15,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0a,0x18,0x14,0x1b,0x1a,0x19,0x2c,0x25,0x25,0x24,0x26,0x2b,0x1d,0x20,0x1c,0x12,0x2b,0x34,0x14,0x35,0x17,0x26,0x2a,0x2a,0x2a,0x13,0x23,0x2e,0x23,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x1b, +0x1b,0x1b,0x26,0x17,0x17,0x2a,0x0f,0x0f,0x2a,0x0f,0x0f,0x2a,0x17,0x17,0x00,0x13,0x26,0x0f,0x0f,0x2e,0x17,0x17,0x23,0x17,0x17,0x1f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x45,0x45,0x28,0x00,0x00,0x28,0x28,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, +0x1f,0x1c,0x1e,0x1e,0x29,0x1e,0x1d,0x25,0x2d,0x1e,0x1d,0x31,0x1d,0x1d,0x2b,0x1d,0x1f,0x24,0x1d,0x23,0x27,0x2a,0x1d,0x23,0x1e,0x20,0x1d,0x20,0x1d,0x1e,0x20,0x1d,0x24,0x1c,0x1f,0x24,0x1c,0x1d,0x1a,0x24,0x1e,0x1e,0x1e,0x20,0x15,0x18,0x1e,0x24,0x24,0x19,0x00,0x00,0x32,0x64,0x20,0x00,0x05,0x0e,0x0e,0x14,0x1e,0x1b,0x29,0x28, +0x0c,0x0f,0x0f,0x15,0x22,0x0b,0x14,0x0b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x0b,0x0b,0x22,0x22,0x22,0x16,0x30,0x20,0x1d,0x1f,0x23,0x19,0x18,0x22,0x24,0x0d,0x12,0x1d,0x18,0x2d,0x25,0x26,0x1c,0x26,0x1e,0x1b,0x1a,0x22,0x1f,0x2f,0x1e,0x1c,0x1d,0x0f,0x13,0x0f,0x22,0x15,0x0d,0x19,0x1d,0x17,0x1d,0x1a,0x10, +0x1d,0x1c,0x0c,0x0c,0x19,0x0c,0x2b,0x1c,0x1d,0x1d,0x1d,0x11,0x15,0x11,0x1c,0x18,0x24,0x17,0x18,0x17,0x0f,0x0c,0x0f,0x22,0x20,0x20,0x1f,0x19,0x25,0x26,0x22,0x19,0x19,0x19,0x19,0x19,0x19,0x17,0x1a,0x1a,0x1a,0x1a,0x0c,0x0c,0x0c,0x0c,0x1c,0x1d,0x1d,0x1d,0x1d,0x1d,0x1c,0x1c,0x1c,0x1c,0x13,0x13,0x1b,0x1b,0x16,0x14,0x17,0x1b, +0x14,0x2d,0x2d,0x27,0x0e,0x15,0x22,0x2b,0x26,0x29,0x22,0x22,0x22,0x1b,0x1d,0x1b,0x1f,0x26,0x1b,0x14,0x16,0x26,0x2a,0x1d,0x16,0x0e,0x0e,0x22,0x21,0x1b,0x22,0x20,0x19,0x19,0x25,0x20,0x20,0x26,0x2f,0x2e,0x19,0x32,0x13,0x13,0x0b,0x0b,0x22,0x1d,0x18,0x1c,0x09,0x1b,0x10,0x10,0x1c,0x1c,0x13,0x0b,0x0b,0x13,0x3d,0x20,0x19,0x20, +0x19,0x19,0x0d,0x0d,0x0d,0x0d,0x26,0x26,0x26,0x22,0x22,0x22,0x0c,0x13,0x11,0x10,0x0f,0x0a,0x0e,0x0a,0x10,0x09,0x13,0x18,0x0e,0x1b,0x15,0x1d,0x17,0x0c,0x23,0x1c,0x1c,0x18,0x1c,0x1d,0x22,0x22,0x12,0x12,0x12,0x2f,0x2d,0x30,0x18,0x22,0x1d,0x0d,0x1b,0x15,0x1f,0x17,0x1f,0x17,0x1d,0x15,0x0b,0x20,0x19,0x20,0x19,0x23,0x22,0x23, +0x19,0x1a,0x19,0x1a,0x18,0x0c,0x18,0x0f,0x18,0x10,0x25,0x1c,0x25,0x1c,0x26,0x1d,0x1e,0x11,0x1e,0x11,0x1b,0x15,0x1a,0x11,0x1a,0x16,0x22,0x1c,0x22,0x1c,0x1d,0x17,0x1d,0x17,0x18,0x26,0x26,0x1f,0x1d,0x16,0x1d,0x18,0x23,0x15,0x18,0x14,0x38,0x1f,0x19,0x1e,0x0b,0x13,0x28,0x10,0x1e,0x12,0x12,0x1e,0x12,0x20,0x19,0x1f,0x17,0x1f, +0x17,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x22,0x1d,0x22,0x1d,0x22,0x1d,0x24,0x1c,0x24,0x1c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x12,0x0c,0x1d,0x19,0x19,0x18,0x0c,0x25,0x1c,0x25,0x1c,0x26,0x1d,0x26,0x1d,0x1e,0x11,0x1b,0x15,0x1a,0x11,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x2f,0x24,0x1c,0x18,0x0c,0x20,0x19,0x2b,0x2a,0x26, +0x1d,0x0b,0x2f,0x24,0x2f,0x24,0x2f,0x24,0x1c,0x18,0x0b,0x15,0x1b,0x1e,0x2e,0x2e,0x2e,0x2d,0x13,0x13,0x0b,0x0e,0x0e,0x20,0x1d,0x27,0x13,0x28,0x21,0x29,0x0d,0x20,0x1d,0x19,0x1d,0x24,0x0d,0x1d,0x1f,0x2d,0x25,0x19,0x26,0x24,0x1c,0x1a,0x1a,0x1c,0x1e,0x27,0x26,0x0d,0x1c,0x1f,0x16,0x1d,0x0d,0x1c,0x1b,0x1a,0x16,0x1d,0x1d,0x0d, +0x1a,0x19,0x1d,0x1a,0x16,0x1d,0x1d,0x17,0x1c,0x1b,0x26,0x28,0x0d,0x1c,0x1d,0x1c,0x28,0x19,0x23,0x18,0x1f,0x1b,0x0d,0x31,0x31,0x24,0x1d,0x1c,0x23,0x20,0x1d,0x1d,0x18,0x23,0x19,0x2b,0x1b,0x25,0x25,0x1d,0x22,0x2d,0x24,0x26,0x24,0x1c,0x1f,0x1a,0x1c,0x24,0x1e,0x25,0x21,0x2f,0x31,0x23,0x27,0x1d,0x1f,0x33,0x1e,0x19,0x1d,0x1a, +0x13,0x1b,0x1a,0x25,0x16,0x1d,0x1d,0x19,0x1a,0x23,0x1d,0x1d,0x1d,0x1d,0x17,0x15,0x18,0x22,0x17,0x1e,0x1c,0x28,0x29,0x1e,0x23,0x19,0x17,0x29,0x19,0x1a,0x1d,0x13,0x17,0x15,0x0c,0x28,0x28,0x1c,0x19,0x18,0x1d,0x17,0x14,0x32,0x38,0x1f,0x12,0x12,0x12,0x12,0x0c,0x1b,0x15,0x1c,0x26,0x1e,0x23,0x1d,0x0f,0x11,0x0d,0x0d,0x18,0x18, +0x18,0x18,0x0f,0x0f,0x0f,0x18,0x0f,0x18,0x0f,0x0f,0x0f,0x18,0x18,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x0d,0x0c,0x0d,0x0c,0x26,0x1d,0x26,0x1d,0x26,0x1d,0x26, +0x1d,0x26,0x1d,0x26,0x1d,0x26,0x1d,0x26,0x1e,0x26,0x1e,0x26,0x1e,0x26,0x1e,0x26,0x1e,0x22,0x1c,0x22,0x1c,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x1c,0x18,0x1c,0x18,0x1c,0x18,0x1a,0x11,0x19,0x1a,0x25,0x1d,0x0d,0x12,0x0c,0x0c,0x1a,0x15,0x2e,0x27,0x1f,0x1b,0x1d,0x19,0x25,0x1e,0x1c,0x18,0x1c,0x18,0x1f,0x19,0x21, +0x1c,0x21,0x1c,0x24,0x1a,0x26,0x1d,0x0f,0x0f,0x0f,0x0f,0x15,0x15,0x18,0x18,0x18,0x18,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x19,0x1a,0x20,0x19,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1f,0x17,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x18,0x10,0x22,0x1d,0x24,0x1c,0x24,0x1c,0x24, +0x1c,0x24,0x1c,0x24,0x1c,0x0d,0x0c,0x0d,0x0c,0x1d,0x19,0x1d,0x19,0x1d,0x19,0x18,0x0c,0x18,0x0c,0x18,0x0c,0x18,0x0c,0x2d,0x2b,0x2d,0x2b,0x2d,0x2b,0x25,0x1c,0x25,0x1c,0x25,0x1c,0x25,0x1c,0x26,0x1d,0x26,0x1d,0x26,0x1d,0x26,0x1d,0x1c,0x1d,0x1c,0x1d,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b, +0x15,0x1b,0x15,0x1a,0x11,0x1a,0x11,0x1a,0x11,0x1a,0x11,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x1f,0x18,0x1f,0x18,0x2f,0x24,0x2f,0x24,0x1e,0x17,0x1e,0x17,0x1c,0x18,0x1d,0x17,0x1d,0x17,0x1d,0x17,0x1c,0x11,0x24,0x18,0x19,0x0c,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x20,0x20,0x25,0x25,0x25,0x25,0x25,0x25,0x16, +0x16,0x16,0x16,0x16,0x16,0x1d,0x1d,0x24,0x24,0x24,0x24,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x27,0x27,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x13,0x13,0x19,0x19,0x1a,0x1a,0x1a,0x1a,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x28,0x28,0x30,0x30,0x30,0x30,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x21, +0x29,0x29,0x29,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x29,0x29,0x30,0x30,0x30,0x30,0x30,0x30,0x1f,0x1f,0x16,0x16,0x1d,0x1d,0x0d,0x0d,0x1d,0x1d,0x1c,0x1c,0x28,0x28,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x20,0x20,0x25,0x25,0x25,0x25,0x25,0x25,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x27,0x27,0x2e,0x2e,0x2e,0x2e,0x2e, +0x2e,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x29,0x29,0x30,0x30,0x30,0x30,0x30,0x30,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x20,0x20,0x20,0x20,0x20,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x27,0x27,0x24,0x1d,0x1d,0x1d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x12,0x13,0x1d,0x1d,0x1d,0x1c,0x1c,0x1c,0x1c, +0x1d,0x1d,0x1c,0x1c,0x1c,0x1c,0x21,0x21,0x1f,0x1d,0x1d,0x1d,0x28,0x28,0x28,0x28,0x28,0x29,0x29,0x2a,0x29,0x26,0x1d,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x1f,0x1d,0x1d,0x1d,0x1d,0x1f,0x1f,0x17,0x23,0x25,0x1d,0x1d,0x1e,0x19,0x1b,0x18,0x23,0x1f,0x2c,0x0e,0x0e,0x1d,0x19,0x0c,0x19, +0x2d,0x25,0x1d,0x26,0x30,0x28,0x1e,0x1d,0x1d,0x1b,0x15,0x1a,0x0f,0x11,0x1a,0x11,0x1a,0x26,0x24,0x1c,0x1a,0x1d,0x17,0x1f,0x1f,0x16,0x14,0x1b,0x1b,0x13,0x14,0x1b,0x0c,0x13,0x17,0x0e,0x3e,0x39,0x33,0x2b,0x24,0x19,0x36,0x30,0x28,0x20,0x19,0x0d,0x0c,0x26,0x1d,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x1a,0x20,0x19, +0x20,0x19,0x2b,0x29,0x22,0x1d,0x22,0x1d,0x1d,0x19,0x26,0x1d,0x26,0x1d,0x1f,0x16,0x0c,0x3e,0x39,0x33,0x22,0x1d,0x32,0x22,0x25,0x1c,0x20,0x19,0x20,0x19,0x19,0x1a,0x19,0x1a,0x0d,0x0c,0x0d,0x0c,0x26,0x1d,0x26,0x1d,0x1d,0x11,0x1e,0x11,0x22,0x1c,0x22,0x1c,0x19,0x15,0x24,0x1c,0x25,0x1e,0x1c,0x1d,0x17,0x20,0x19,0x26,0x1d,0x26, +0x1d,0x26,0x1d,0x26,0x1d,0x1c,0x18,0x1d,0x19,0x1c,0x1c,0x1d,0x19,0x1d,0x1d,0x1d,0x17,0x17,0x1d,0x1d,0x1a,0x1f,0x15,0x15,0x19,0x1c,0x0e,0x1d,0x1d,0x1a,0x18,0x17,0x1c,0x1c,0x1c,0x0d,0x0e,0x10,0x0e,0x13,0x0c,0x1e,0x2b,0x2b,0x2b,0x1c,0x1c,0x1d,0x1d,0x23,0x24,0x20,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x17,0x14,0x0c,0x0d, +0x0e,0x0e,0x11,0x11,0x1e,0x1e,0x1c,0x18,0x24,0x18,0x15,0x17,0x1a,0x16,0x16,0x12,0x12,0x12,0x17,0x1f,0x18,0x1b,0x1a,0x1c,0x0c,0x19,0x13,0x1d,0x12,0x12,0x2e,0x2f,0x31,0x1f,0x18,0x24,0x28,0x1d,0x1c,0x19,0x19,0x1b,0x1e,0x1c,0x22,0x1c,0x20,0x28,0x1d,0x23,0x1d,0x1d,0x17,0x19,0x17,0x1e,0x19,0x1f,0x19,0x2d,0x2b,0x1e,0x19,0x20, +0x1b,0x1f,0x17,0x1e,0x18,0x21,0x1d,0x1c,0x14,0x1d,0x1d,0x17,0x0c,0x26,0x17,0x17,0x2b,0x22,0x20,0x1d,0x2d,0x24,0x21,0x19,0x2c,0x23,0x24,0x1c,0x2e,0x25,0x1b,0x16,0x27,0x26,0x26,0x1d,0x24,0x1d,0x24,0x1d,0x42,0x38,0x29,0x21,0x38,0x2d,0x2b,0x22,0x1d,0x16,0x19,0x14,0x15,0x00,0x00,0x31,0x2f,0x1d,0x19,0x1c,0x1d,0x1c,0x19,0x1b, +0x17,0x1d,0x19,0x24,0x1d,0x2a,0x21,0x33,0x2a,0x24,0x1c,0x1f,0x17,0x1a,0x15,0x2c,0x22,0x22,0x1d,0x2a,0x20,0x2a,0x20,0x0d,0x2b,0x25,0x1d,0x19,0x24,0x1d,0x21,0x1c,0x20,0x19,0x20,0x19,0x2b,0x2a,0x19,0x1a,0x24,0x1a,0x24,0x1a,0x2b,0x25,0x1b,0x16,0x1a,0x16,0x25,0x1d,0x25,0x1d,0x26,0x1d,0x26,0x1d,0x1f,0x17,0x1c,0x18,0x1c,0x18, +0x1c,0x18,0x21,0x1c,0x27,0x23,0x1c,0x1d,0x2b,0x2b,0x28,0x24,0x1c,0x18,0x2d,0x28,0x31,0x2a,0x24,0x1b,0x22,0x1e,0x1d,0x1c,0x1c,0x19,0x1d,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0b,0x1d,0x11,0x11,0x08,0x0b,0x0b,0x0b,0x0e,0x14,0x0e,0x0b,0x13,0x0b,0x0b,0x0b,0x11,0x11,0x0b,0x0b,0x1d,0x1d, +0x1d,0x1d,0x11,0x0e,0x0d,0x11,0x10,0x0d,0x0e,0x0e,0x0e,0x11,0x11,0x11,0x11,0x11,0x10,0x11,0x11,0x0f,0x08,0x0c,0x0e,0x0b,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11,0x15,0x11,0x0c,0x0d,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13, +0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b, +0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x00,0x00,0x00,0x00,0x00,0x20,0x0f,0x20,0x11,0x1e,0x1e,0x11,0x11,0x11,0x11,0x11,0x0d, +0x10,0x10,0x11,0x0e,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x1d,0x17,0x21,0x29,0x18,0x17,0x1b,0x1c,0x15,0x15,0x0c,0x0f,0x19,0x14,0x23,0x1d,0x1d,0x18,0x1f,0x1f,0x1f,0x2e,0x1b,0x1e,0x1e,0x17,0x17,0x17,0x15,0x1b,0x1c,0x24,0x1c,0x18,0x24,0x17,0x15,0x15,0x1a,0x13,0x17, +0x1d,0x17,0x1e,0x1c,0x12,0x18,0x11,0x12,0x14,0x0f,0x0f,0x14,0x15,0x09,0x0b,0x12,0x0e,0x1a,0x16,0x16,0x15,0x13,0x11,0x11,0x0f,0x15,0x1a,0x10,0x10,0x11,0x18,0x11,0x11,0x10,0x10,0x0d,0x0d,0x11,0x08,0x0f,0x19,0x11,0x11,0x0e,0x11,0x11,0x11,0x0a,0x11,0x10,0x19,0x0e,0x10,0x11,0x0f,0x11,0x14,0x0f,0x08,0x0b,0x11,0x0e,0x11,0x0f, +0x11,0x14,0x0f,0x1d,0x08,0x11,0x1b,0x2c,0x1f,0x1b,0x1b,0x2b,0x20,0x2b,0x25,0x1a,0x1d,0x19,0x16,0x38,0x17,0x1d,0x2d,0x2f,0x2f,0x1f,0x20,0x1f,0x17,0x18,0x1a,0x15,0x17,0x1a,0x0a,0x00,0x00,0x00,0x00,0x1d,0x1f,0x1f,0x1f,0x18,0x13,0x1d,0x1d,0x10,0x2b,0x1c,0x1d,0x11,0x11,0x17,0x11,0x17,0x1d,0x17,0x1d,0x2d,0x20,0x10,0x0d,0x1d, +0x1b,0x1e,0x1d,0x1d,0x10,0x1d,0x19,0x0c,0x2b,0x1c,0x1d,0x11,0x15,0x16,0x18,0x17,0x17,0x19,0x1d,0x1d,0x1a,0x16,0x16,0x25,0x0c,0x17,0x0c,0x1c,0x16,0x11,0x0d,0x0d,0x11,0x0d,0x09,0x08,0x11,0x11,0x08,0x09,0x09,0x09,0x08,0x09,0x08,0x0b,0x19,0x19,0x11,0x11,0x12,0x11,0x12,0x0c,0x08,0x0a,0x11,0x11,0x10,0x10,0x0e,0x0d,0x0d,0x0f, +0x0d,0x11,0x00,0x00,0x00,0x00,0x0b,0x10,0x10,0x11,0x0d,0x10,0x1b,0x1b,0x1b,0x1b,0x11,0x00,0x00,0x00,0x00,0x17,0x10,0x0d,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x0d,0x0d,0x0d,0x0d,0x1c,0x1c,0x1c,0x1c,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, +0x42,0x42,0x1b,0x12,0x12,0x12,0x12,0x12,0x12,0x0f,0x0f,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0f,0x0f,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0f,0x0f,0x27,0x20,0x23,0x1d,0x25,0x1f,0x2f,0x26,0x1b,0x13,0x1a,0x22,0x1b,0x29,0x23,0x00,0x00,0x00,0x00,0x0d,0x0d,0x0d, +0x0d,0x11,0x11,0x11,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x2a,0x2a,0x32,0x15,0x0d,0x19,0x1d,0x15,0x19,0x19,0x1d,0x1d,0x19,0x32,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x19,0x19,0x20,0x19,0x19,0x19,0x11,0x1d,0x11,0x26,0x21,0x19,0x11,0x2a,0x19,0x2a,0x0d,0x11,0x1d,0x1d,0x20,0x20,0x20,0x1d,0x1d,0x1d,0x2a,0x0d,0x1d,0x0d,0x19,0x15,0x0d,0x0d, +0x19,0x0d,0x26,0x0d,0x2e,0x19,0x2e,0x2e,0x1d,0x1d,0x1d,0x19,0x19,0x15,0x15,0x3a,0x3a,0x43,0x43,0x2a,0x2a,0x19,0x19,0x08,0x32,0x26,0x2a,0x21,0x1d,0x21,0x19,0x19,0x26,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x0d,0x20,0x00,0x20,0x20,0x20,0x11,0x19,0x19,0x2e,0x11,0x2e,0x11,0x1d,0x21,0x1d,0x15,0x2e,0x19,0x2e,0x19, +0x26,0x2a,0x11,0x19,0x19,0x15,0x0d,0x19,0x1d,0x19,0x1d,0x19,0x1d,0x1d,0x19,0x21,0x20,0x2e,0x11,0x19,0x15,0x21,0x19,0x11,0x19,0x19,0x19,0x2e,0x11,0x2e,0x11,0x0d,0x1d,0x13,0x32,0x19,0x19,0x20,0x20,0x32,0x19,0x00,0x00,0x00,0x20,0x00,0x20,0x20,0x20,0x20,0x26,0x20,0x00,0x00,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x15,0x19,0x19, +0x26,0x2a,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x21,0x1d,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x15,0x15,0x19,0x15,0x15,0x15,0x3a,0x2a,0x3a,0x2a,0x3a,0x2a,0x43,0x32,0x43,0x32,0x2a,0x19,0x1d,0x1d,0x1d,0x32,0x32, +0x19,0x19,0x32,0x19,0x19,0x32,0x19,0x19,0x32,0x19,0x19,0x26,0x26,0x36,0x32,0x2e,0x19,0x2a,0x19,0x2a,0x19,0x2a,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x21,0x11,0x21,0x11,0x21,0x11,0x21,0x11,0x21,0x11,0x21,0x21,0x11,0x21,0x11,0x1b,0x21,0x1d,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x2a,0x2e,0x26,0x2a,0x11, +0x19,0x26,0x2a,0x26,0x2a,0x00,0x00,0x00,0x00,0x00,0x38,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x15,0x00,0x00,0x1e,0x00,0x00,0x00,0x3a,0x2a,0x43,0x32,0x19,0x1d,0x1d,0x1d,0x15,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x19,0x2e,0x2e,0x13,0x1d,0x1d,0x1e,0x3d,0x2a,0x1b,0x4c,0x36,0x11, +0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x15,0x15,0x26,0x21,0x21,0x19,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x3f,0x4b,0x00,0x00,0x00,0x00,0x00,0x1d,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x15,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x1d,0x1d,0x1d,0x1d,0x21,0x1d,0x19,0x19,0x15,0x3a, +0x2a,0x19,0x1d,0x1d,0x1d,0x19,0x1d,0x1d,0x1d,0x19,0x1d,0x1d,0x1d,0x32,0x19,0x19,0x32,0x19,0x19,0x2e,0x19,0x19,0x2e,0x19,0x19,0x2e,0x19,0x19,0x1d,0x1d,0x1d,0x1d,0x21,0x11,0x21,0x11,0x21,0x11,0x21,0x21,0x11,0x11,0x15,0x15,0x3a,0x2a,0x20,0x1d,0x1d,0x00,0x19,0x19,0x19,0x12,0x1d,0x22,0x1f,0x19,0x1a,0x12,0x0c,0x26,0x1d,0x1e, +0x11,0x1c,0x18,0x18,0x17,0x18,0x0c,0x1a,0x15,0x1f,0x18,0x1e,0x17,0x1b,0x16,0x22,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x17,0x18,0x18,0x0e,0x1a,0x1c,0x1e,0x19,0x11,0x25,0x1d,0x20,0x1b,0x1f,0x19,0x1c,0x1a,0x14,0x23,0x13,0x15,0x15,0x18,0x1e,0x1e,0x19,0x32,0x19,0x32,0x11,0x0d,0x08,0x1b,0x0b,0x06,0x00,0x07, +0x0b,0x00,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x19,0x19,0x2e,0x15,0x26,0x1d,0x2f,0x24,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x2e,0x2b,0x18,0x2b,0x18,0x2b,0x20,0x22,0x23,0x23,0x26,0x2b,0x32,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x22,0x22,0x22,0x22,0x25,0x1d,0x35,0x29,0x18,0x18,0x0e, +0x0e,0x0e,0x13,0x0b,0x1c,0x0c,0x0c,0x2a,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x0a,0x00,0x00,0x0b,0x00,0x00,0x20,0x1d,0x16,0x18,0x22,0x0d,0x11,0x22,0x22,0x0d,0x1c,0x1b,0x1c,0x23,0x22,0x0d,0x14,0x22,0x1e,0x1f,0x20,0x1c,0x1d,0x21,0x1c,0x27,0x24,0x1a,0x1a,0x1a,0x0b,0x13,0x1c,0x1c, +0x1c,0x1c,0x1b,0x1e,0x20,0x18,0x22,0x1b,0x1c,0x23,0x1c,0x24,0x1c,0x27,0x27,0x27,0x27,0x20,0x20,0x20,0x1d,0x16,0x18,0x22,0x0f,0x12,0x22,0x0f,0x1c,0x1b,0x1c,0x22,0x14,0x22,0x1f,0x20,0x1d,0x21,0x1c,0x27,0x24,0x0d,0x1d,0x1b,0x20,0x21,0x3c,0x00,0x20,0x1c,0x21,0x21,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x0d,0x00,0x26,0x20,0x21,0x23,0x1c,0x21,0x25,0x26,0x18,0x1f,0x25,0x25,0x21,0x26,0x29,0x27,0x21,0x1c,0x1c,0x26,0x23,0x1d,0x22,0x22,0x21,0x22,0x22,0x25,0x1d,0x20,0x22,0x21,0x27,0x20,0x1f,0x20,0x21,0x29,0x19,0x1d, +0x1d,0x2c,0x1b,0x1b,0x27,0x2d,0x1f,0x1b,0x34,0x1c,0x1c,0x26,0x1b,0x1b,0x26,0x1c,0x26,0x29,0x2c,0x1b,0x27,0x1b,0x21,0x1b,0x1f,0x1c,0x20,0x1b,0x1e,0x26,0x1b,0x1f,0x21,0x1b,0x1b,0x1e,0x30,0x1b,0x1b,0x1d,0x1d,0x15,0x11,0x1c,0x1c,0x1c,0x1b,0x1c,0x2c,0x1c,0x2c,0x19,0x1c,0x2c,0x21,0x1c,0x2c,0x25,0x25,0x2c,0x1d,0x1c,0x2c,0x2c, +0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x2c,0x2c,0x1d,0x1c,0x1c,0x2c,0x1e,0x1b,0x1c,0x1c,0x2c,0x27,0x22,0x23,0x23,0x22,0x23,0x1f,0x22,0x27,0x23,0x21,0x1b,0x28,0x22,0x22,0x1d,0x21,0x23,0x25,0x24,0x1d,0x23,0x21,0x24,0x21,0x27,0x23,0x24,0x24,0x22,0x20,0x23,0x22,0x24,0x28,0x21,0x26,0x24,0x05,0x06,0x08,0x0a,0x08,0x0e,0x12,0x2b,0x1c, +0x1f,0x1e,0x1c,0x1f,0x1c,0x1c,0x20,0x1e,0x1c,0x0f,0x2a,0x1d,0x1c,0x1c,0x1b,0x1e,0x1a,0x1d,0x0d,0x1d,0x1a,0x1c,0x15,0x2b,0x1b,0x1c,0x1c,0x1e,0x2a,0x1c,0x1d,0x14,0x2a,0x1d,0x1d,0x22,0x22,0x0b,0x0e,0x39,0x38,0x38,0x39,0x47,0x1b,0x1b,0x0c,0x1b,0x13,0x1b,0x1b,0x1c,0x1b,0x1b,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1c,0x1b,0x1b,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x19,0x19,0x19,0x1d,0x15,0x15,0x1d,0x1f,0x0d,0x10,0x19,0x15,0x26,0x20,0x1f,0x18,0x1f,0x19,0x15,0x16,0x1e,0x1a,0x28,0x19,0x17,0x18,0x23,0x27,0x15,0x1f,0x18, +0x1d,0x1a,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x15,0x15,0x15,0x0d,0x0d,0x0d,0x0d,0x20,0x1f,0x1f,0x1f,0x1f,0x1f,0x1e,0x1e,0x1e,0x1e,0x17,0x19,0x19,0x19,0x19,0x19,0x1d,0x1d,0x1d,0x15,0x15,0x15,0x15,0x15,0x1d,0x1d,0x19,0x1f,0x1f,0x0d,0x0d,0x0d,0x0d,0x0d,0x1c,0x10,0x19,0x15,0x15,0x15,0x15,0x20,0x20,0x20,0x21,0x1f,0x1f, +0x1f,0x19,0x19,0x19,0x15,0x15,0x15,0x15,0x16,0x16,0x16,0x16,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x28,0x28,0x28,0x28,0x17,0x17,0x17,0x18,0x18,0x18,0x19,0x23,0x1f,0x19,0x19,0x14,0x1b,0x15,0x18,0x1f,0x1f,0x0d,0x19,0x1a,0x26,0x20,0x16,0x1f,0x1f,0x18,0x17,0x16,0x17,0x1f,0x19,0x21,0x20,0x19,0x15,0x1f,0x0d,0x1f,0x17,0x20,0x0d,0x17, +0x15,0x1c,0x14,0x1a,0x15,0x0d,0x0d,0x10,0x29,0x29,0x1f,0x19,0x19,0x1e,0x19,0x18,0x19,0x14,0x1d,0x15,0x25,0x16,0x20,0x20,0x19,0x1c,0x26,0x1f,0x1f,0x1f,0x18,0x19,0x16,0x19,0x1f,0x19,0x20,0x1b,0x28,0x2a,0x1c,0x23,0x19,0x1a,0x2b,0x18,0x14,0x1d,0x1d,0x1f,0x2c,0x2c,0x21,0x19,0x1d,0x15,0x1d,0x1c,0x1c,0x23,0x1a,0x1a,0x22,0x1d, +0x1d,0x12,0x1f,0x1f,0x1d,0x18,0x18,0x2d,0x25,0x18,0x1b,0x1e,0x1e,0x1f,0x1f,0x24,0x22,0x12,0x2f,0x1e,0x1c,0x1d,0x20,0x20,0x19,0x19,0x0d,0x26,0x22,0x22,0x18,0x23,0x0b,0x0b,0x16,0x16,0x0b,0x0b,0x1f,0x14,0x0d,0x26,0x23,0x0e,0x0b,0x0b,0x16,0x13,0x13,0x0b,0x0b,0x0b,0x13,0x22,0x18,0x0f,0x1e,0x22,0x1d,0x1d,0x19,0x25,0x1c,0x1e, +0x11,0x16,0x1b,0x15,0x0b,0x0b,0x14,0x1a,0x11,0x21,0x21,0x21,0x2e,0x26,0x2e,0x0d,0x00,0x00,0x00,0x00,0x00,0x0d,0x26,0x2a,0x11,0x11,0x19,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x1d,0x1d,0x1d,0x19,0x19,0x3a,0x2a,0x3a,0x2a,0x43,0x32,0x43,0x32,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2e,0x2e,0x19,0x19,0x2e,0x2e,0x19,0x19,0x26,0x2a,0x11, +0x11,0x26,0x2a,0x11,0x11,0x26,0x2a,0x11,0x11,0x32,0x26,0x2a,0x19,0x1d,0x1d,0x21,0x11,0x21,0x26,0x19,0x19,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x2e,0x11,0x26,0x19,0x19,0x0d,0x19,0x19,0x19,0x19,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x1d,0x1d, +0x1d,0x1d,0x1d,0x1d,0x1d,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x3a,0x2a,0x3a,0x2a,0x3a,0x2a,0x43,0x32,0x43,0x32,0x2a,0x2a,0x2a,0x32,0x32,0x32,0x32,0x32,0x32,0x26,0x19,0x19,0x26,0x19,0x19,0x2e,0x19,0x36,0x32,0x2e,0x19,0x2a,0x19,0x2a,0x19,0x2a,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x21, +0x21,0x21,0x21,0x21,0x11,0x21,0x21,0x11,0x11,0x21,0x11,0x21,0x11,0x21,0x19,0x1d,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x11,0x11,0x19,0x11,0x11,0x11,0x11,0x00,0x3a,0x2a,0x43,0x32,0x2e,0x19,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x1d,0x1d,0x19,0x19,0x15,0x3a,0x2a,0x32,0x32,0x2e,0x2e,0x2e, +0x1d,0x1d,0x1d,0x1d,0x21,0x11,0x21,0x11,0x21,0x11,0x3a,0x2a,0x1d,0x21,0x1d,0x1d,0x1d,0x21,0x1d,0x1d,0x3a,0x3a,0x2a,0x2a,0x15,0x15,0x1d,0x1d,0x1d,0x1d,0x11,0x11,0x11,0x11,0x26,0x2a,0x11,0x11,0x26,0x2a,0x11,0x11,0x26,0x2a,0x11,0x11,0x1d,0x1d,0x1d,0x1d,0x2e,0x11,0x2e,0x11,0x1d,0x21,0x1d,0x1d,0x3a,0x3a,0x2a,0x2a,0x3a,0x3a, +0x2a,0x2a,0x2a,0x2a,0x19,0x19,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x00,0x00,0x0d,0x0d,0x11,0x0d,0x00,0x00,0x00,0x2a,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x15,0x15,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e, +0x2e,0x2e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x26,0x21,0x21,0x21,0x21,0x21,0x21,0x1d,0x2a,0x1d,0x2a,0x1d,0x2a,0x1d,0x2a,0x21,0x21,0x21,0x0d,0x0d,0x19,0x15,0x1d,0x20,0x1d,0x1b,0x1c,0x1d, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x17,0x1b,0x1a,0x1d,0x1f,0x1f,0x21,0x1d,0x1c,0x21,0x1a,0x21,0x26,0x20,0x25,0x29,0x20,0x26,0x22,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1b,0x17,0x1b,0x1e,0x1e,0x21,0x1d,0x20,0x1d,0x1e,0x1e,0x1a,0x1a,0x26,0x22,0x23,0x22,0x22,0x1e,0x1d,0x1d,0x25, +0x27,0x26,0x26,0x2e,0x2e,0x23,0x2e,0x2e,0x25,0x2c,0x2a,0x1c,0x26,0x2a,0x26,0x1e,0x2b,0x25,0x23,0x23,0x1e,0x20,0x25,0x28,0x23,0x1f,0x23,0x1d,0x1b,0x2e,0x2e,0x2e,0x29,0x2e,0x2e,0x22,0x2e,0x2e,0x23,0x26,0x27,0x25,0x24,0x24,0x20,0x2c,0x26,0x29,0x24,0x24,0x1d,0x25,0x23,0x23,0x2b,0x26,0x24,0x2d,0x1b,0x19,0x1c,0x1b,0x1f,0x1f, +0x23,0x25,0x1d,0x1c,0x1c,0x1b,0x1c,0x1b,0x1b,0x1c,0x1c,0x1d,0x1c,0x1c,0x1c,0x19,0x1a,0x1e,0x1f,0x1e,0x1e,0x17,0x1c,0x1c,0x1d,0x1e,0x26,0x2a,0x21,0x21,0x1f,0x26,0x20,0x22,0x1a,0x18,0x1d,0x1c,0x18,0x19,0x1b,0x1c,0x18,0x17,0x1f,0x17,0x1b,0x19,0x1b,0x27,0x1c,0x29,0x1b,0x1c,0x1c,0x25,0x10,0x27,0x22,0x24,0x21,0x1c,0x26,0x1e, +0x27,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1d,0x1e,0x1e,0x1e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x16,0x17,0x16,0x17,0x17,0x17,0x0f,0x10,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x1f,0x0d,0x0d,0x0d,0x10,0x10,0x0d,0x0d,0x0d,0x0f,0x0d,0x0d,0x0d,0x2d,0x2d,0x2d,0x2d,0x18,0x25,0x24,0x18,0x14,0x18,0x1a,0x1c,0x18,0x2a,0x29,0x2b,0x16, +0x32,0x18,0x2a,0x2a,0x2a,0x28,0x1c,0x18,0x18,0x27,0x1d,0x27,0x22,0x1b,0x17,0x14,0x33,0x15,0x1b,0x18,0x18,0x18,0x18,0x18,0x44,0x2a,0x2a,0x15,0x0d,0x17,0x0c,0x17,0x0c,0x0c,0x0c,0x18,0x1d,0x1d,0x1b,0x13,0x13,0x0b,0x0b,0x0b,0x13,0x0b,0x15,0x2b,0x0b,0x2d,0x2d,0x2d,0x1d,0x1d,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, +0x3a,0x3a,0x21,0x3a,0x3a,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x17,0x1d,0x17,0x1b,0x15,0x12,0x11,0x22,0x1b,0x24,0x16,0x38,0x2d,0x1e,0x1c,0x2e,0x28,0x2a,0x25,0x33,0x29,0x2e,0x27,0x20,0x18, +0x24,0x1d,0x2e,0x25,0x26,0x1e,0x25,0x1e,0x2b,0x21,0x2c,0x21,0x37,0x2a,0x26,0x1d,0x26,0x1d,0x3d,0x2c,0x28,0x00,0x31,0x31,0x31,0x18,0x00,0x00,0x1d,0x19,0x23,0x1c,0x1b,0x15,0x36,0x2d,0x2f,0x2b,0x24,0x1d,0x23,0x1d,0x1a,0x15,0x25,0x1e,0x1a,0x15,0x29,0x21,0x21,0x1c,0x31,0x29,0x1b,0x1d,0x25,0x25,0x28,0x16,0x0a,0x17,0x22,0x16, +0x32,0x32,0x0c,0x00,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x14,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x1b,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, +0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x24,0x24,0x24,0x24,0x24,0x24, +0x24,0x24,0x24,0x24,0x24,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x18,0x22,0x24,0x0e,0x0a,0x0e,0x0a,0x24,0x1c,0x25,0x1f,0x1c,0x18,0x1b,0x18,0x1e,0x1d,0x15,0x15,0x38,0x29,0x3a,0x2c,0x31,0x2a,0x2d,0x21,0x2d,0x21,0x2d,0x21,0x1f,0x17,0x1d,0x19,0x1d,0x19,0x1d,0x19,0x1b,0x10,0x18, +0x0c,0x26,0x1d,0x2b,0x22,0x43,0x32,0x1c,0x1d,0x22,0x23,0x28,0x2b,0x26,0x1d,0x31,0x27,0x1b,0x14,0x1c,0x19,0x1f,0x18,0x2f,0x24,0x1f,0x1a,0x1c,0x1d,0x1c,0x1d,0x18,0x14,0x18,0x13,0x18,0x12,0x1a,0x1a,0x0f,0x22,0x10,0x30,0x21,0x11,0x1d,0x1f,0x17,0x26,0x1c,0x13,0x11,0x1d,0x1d,0x1d,0x18,0x0c,0x26,0x1e,0x12,0x11,0x1f,0x17,0x24, +0x13,0x27,0x1e,0x1f,0x17,0x22,0x1d,0x1d,0x19,0x25,0x1c,0x1e,0x11,0x1b,0x15,0x26,0x15,0x1b,0x2b,0x18,0x1c,0x2d,0x0d,0x39,0x2d,0x2d,0x3b,0x2c,0x2e,0x2e,0x2c,0x2c,0x2e,0x1a,0x18,0x1f,0x23,0x2d,0x23,0x2f,0x0c,0x17,0x1d,0x2b,0x33,0x23,0x33,0x1f,0x1f,0x28,0x23,0x39,0x2e,0x1a,0x2e,0x11,0x2e,0x11,0x1d,0x1d,0x1d,0x1d,0x2a,0x2a, +0x2a,0x2a,0x32,0x19,0x19,0x32,0x26,0x19,0x19,0x26,0x21,0x11,0x11,0x21,0x1d,0x1d,0x1d,0x1d,0x26,0x11,0x11,0x2a,0x26,0x11,0x11,0x2a,0x15,0x15,0x19,0x19,0x1a,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4d,0x1a,0x14,0x1c,0x1a, +0x25,0x1d,0x1d,0x2c,0x21,0x25,0x26,0x2a,0x29,0x1d,0x19,0x32,0x28,0x34,0x2b,0x22,0x1d,0x10,0x10,0x1d,0x20,0x14,0x1e,0x1a,0x1d,0x18,0x25,0x28,0x14,0x1d,0x15,0x0b,0x13,0x1b,0x1c,0x0b,0x0b,0x09,0x0b,0x13,0x13,0x13,0x16,0x4a,0x64,0x11,0x15,0x07,0x0d,0x13,0x16,0x10,0x19,0x1a,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, +0x18,0x18,0x18,0x18,0x18,0x42,0x1b,0x26,0x2e,0x2d,0x20,0x17,0x1c,0x24,0x25,0x18,0x10,0x21,0x1a,0x22,0x1c,0x21,0x1b,0x1b,0x25,0x1e,0x1d,0x1a,0x25,0x1f,0x2a,0x17,0x1a,0x20,0x10,0x1d,0x11,0x11,0x0c,0x2c,0x1d,0x1c,0x1a,0x1a,0x1d,0x2e,0x2e,0x2f,0x32,0x32,0x1b,0x19,0x0e,0x19,0x17,0x1e,0x17,0x21,0x0c,0x1c,0x1e,0x2b,0x2b,0x1f, +0x1b,0x1d,0x1b,0x1a,0x17,0x1a,0x17,0x18,0x0f,0x11,0x0c,0x0b,0x12,0x1d,0x20,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x00,0x0e,0x0e,0x0e,0x0d,0x0d,0x54,0x32,0x2c,0x34,0x0e,0x0e,0x10,0x14,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x00,0x2e,0x11,0x11,0x2e,0x0d,0x19, +0x19,0x43,0x32,0x32,0x43,0x2e,0x19,0x19,0x2e,0x19,0x19,0x15,0x15,0x00,0x00,0x12,0x25,0x1e,0x24,0x1d,0x3f,0x34,0x23,0x1b,0x23,0x1b,0x43,0x32,0x26,0x1d,0x13,0x10,0x1f,0x00,0x22,0x1b,0x11,0x0f,0x08,0x19,0x11,0x11,0x0d,0x0a,0x17,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0b,0x1a,0x15,0x1e,0x1d,0x1b,0x30,0x28,0x28,0x27,0x29, +0x2f,0x1f,0x22,0x1e,0x14,0x2e,0x38,0x16,0x3a,0x19,0x2a,0x2e,0x2e,0x2e,0x15,0x26,0x32,0x26,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x00,0x1d,0x1d,0x1d,0x2a,0x19,0x19,0x2e,0x11,0x11,0x2e,0x11,0x11,0x2e,0x19,0x19,0x00,0x15,0x2a,0x11,0x11,0x32,0x19,0x19,0x26,0x19,0x19,0x21,0x0f,0x0f, +0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x4b,0x4b,0x2c,0x00,0x00,0x2c,0x2c,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x21,0x1f,0x20,0x20,0x2c,0x20,0x20,0x28,0x31,0x21,0x20,0x35,0x20,0x20,0x2f,0x20,0x22,0x28,0x20,0x26,0x2a,0x2e,0x20,0x26,0x20,0x23,0x1f,0x23, +0x1f,0x21,0x22,0x1f,0x27,0x1e,0x21,0x27,0x1f,0x1f,0x1c,0x27,0x20,0x20,0x20,0x23,0x16,0x1a,0x20,0x27,0x27,0x1b,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x14,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x14,0x00,0x04,0x1c,0xd0,0x00,0x00,0x01,0x42,0x01,0x00,0x00,0x07,0x00,0x42,0x00,0x0d,0x00,0x7e,0x03,0x77, +0x03,0x7f,0x03,0x8a,0x03,0x8c,0x03,0xa1,0x05,0x2f,0x05,0x56,0x05,0x5f,0x05,0x87,0x05,0x8a,0x05,0x8f,0x05,0xc7,0x05,0xea,0x05,0xf4,0x06,0x1c,0x06,0xff,0x07,0x7f,0x07,0xc9,0x08,0xb4,0x08,0xbd,0x08,0xff,0x09,0x6f,0x09,0xef,0x09,0xf3,0x0a,0x6f,0x0a,0xef,0x0a,0xf1,0x0b,0x6f,0x0b,0xef,0x0b,0xf9,0x0c,0x6f,0x0c,0xef,0x0d,0x6f, +0x0e,0x3f,0x0e,0x59,0x0e,0xd9,0x0f,0x29,0x10,0x49,0x10,0xc5,0x10,0xc7,0x10,0xcd,0x10,0xff,0x17,0xdb,0x17,0xe9,0x18,0x19,0x19,0xda,0x1c,0xbf,0x1d,0xca,0x1f,0x15,0x1f,0x1d,0x1f,0x45,0x1f,0x4d,0x1f,0x57,0x1f,0x59,0x1f,0x5b,0x1f,0x5d,0x1f,0x7d,0x1f,0xb4,0x1f,0xc4,0x1f,0xd3,0x1f,0xdb,0x1f,0xef,0x1f,0xf4,0x1f,0xfe,0x20,0x22, +0x20,0x26,0x20,0x30,0x20,0x34,0x20,0x3a,0x20,0x3e,0x20,0x44,0x20,0x5f,0x20,0x71,0x20,0x8e,0x20,0x9c,0x20,0xbf,0x20,0xe3,0x20,0xf0,0x21,0x05,0x21,0x13,0x21,0x17,0x21,0x22,0x21,0x26,0x21,0x2e,0x21,0x33,0x21,0x4e,0x21,0x5f,0x21,0x6f,0x21,0x89,0x21,0x94,0x21,0x97,0x21,0x99,0x22,0x02,0x22,0x06,0x22,0x0f,0x22,0x12,0x22,0x15, +0x22,0x1a,0x22,0x1f,0x22,0x29,0x22,0x2b,0x22,0x34,0x22,0x36,0x22,0x48,0x22,0x61,0x22,0x65,0x22,0xf2,0x24,0xff,0x25,0xa1,0x25,0xac,0x25,0xb2,0x25,0xba,0x25,0xbc,0x25,0xc4,0x25,0xcc,0x25,0xcf,0x25,0xd9,0x25,0xe6,0x26,0x61,0x26,0x63,0x26,0x66,0x26,0x6f,0x27,0x7f,0x2c,0x7f,0x2d,0x25,0x2d,0x27,0x2d,0x2d,0x2d,0xff,0x2e,0x17, +0x2e,0x3b,0xa4,0xff,0xa6,0x29,0xa6,0x9f,0xa7,0xae,0xa7,0xb7,0xa7,0xff,0xab,0x65,0xfb,0x06,0xfb,0x17,0xfb,0x36,0xfb,0x3c,0xfb,0x3e,0xfb,0x41,0xfb,0x44,0xfb,0xc1,0xfb,0xff,0xfc,0x63,0xfc,0xf4,0xfd,0x3f,0xfd,0xf2,0xfd,0xf4,0xfd,0xfd,0xfe,0x23,0xfe,0x58,0xfe,0x74,0xfe,0xfc,0xfe,0xff,0xff,0xfd,0xff,0xff,0x00,0x00,0x00,0x0d, +0x00,0x20,0x00,0xa0,0x03,0x7a,0x03,0x84,0x03,0x8c,0x03,0x8e,0x03,0xa3,0x05,0x31,0x05,0x59,0x05,0x61,0x05,0x89,0x05,0x8d,0x05,0x91,0x05,0xd0,0x05,0xef,0x06,0x00,0x06,0x1e,0x07,0x50,0x07,0xc0,0x08,0xa0,0x08,0xb6,0x08,0xd4,0x09,0x66,0x09,0xe6,0x09,0xf2,0x0a,0x66,0x0a,0xe6,0x0a,0xf1,0x0b,0x66,0x0b,0xe6,0x0b,0xf9,0x0c,0x66, +0x0c,0xe6,0x0d,0x66,0x0e,0x3f,0x0e,0x50,0x0e,0xd0,0x0f,0x20,0x10,0x40,0x10,0xa0,0x10,0xc7,0x10,0xcd,0x10,0xd0,0x17,0xdb,0x17,0xe0,0x18,0x10,0x19,0xd0,0x1c,0x90,0x1d,0x00,0x1d,0xfe,0x1f,0x18,0x1f,0x20,0x1f,0x48,0x1f,0x50,0x1f,0x59,0x1f,0x5b,0x1f,0x5d,0x1f,0x5f,0x1f,0x80,0x1f,0xb6,0x1f,0xc6,0x1f,0xd6,0x1f,0xdd,0x1f,0xf2, +0x1f,0xf6,0x20,0x00,0x20,0x26,0x20,0x28,0x20,0x32,0x20,0x39,0x20,0x3c,0x20,0x44,0x20,0x5e,0x20,0x70,0x20,0x74,0x20,0x90,0x20,0xa0,0x20,0xe3,0x20,0xf0,0x21,0x05,0x21,0x13,0x21,0x16,0x21,0x22,0x21,0x26,0x21,0x2e,0x21,0x33,0x21,0x4d,0x21,0x50,0x21,0x6c,0x21,0x7a,0x21,0x90,0x21,0x97,0x21,0x99,0x22,0x02,0x22,0x06,0x22,0x0f, +0x22,0x11,0x22,0x15,0x22,0x19,0x22,0x1e,0x22,0x29,0x22,0x2b,0x22,0x34,0x22,0x36,0x22,0x48,0x22,0x60,0x22,0x64,0x22,0xf2,0x24,0xff,0x25,0xa0,0x25,0xaa,0x25,0xb2,0x25,0xba,0x25,0xbc,0x25,0xc4,0x25,0xca,0x25,0xcf,0x25,0xd8,0x25,0xe6,0x26,0x60,0x26,0x63,0x26,0x65,0x26,0x6f,0x27,0x76,0x2c,0x60,0x2d,0x00,0x2d,0x27,0x2d,0x2d, +0x2d,0xe0,0x2e,0x17,0x2e,0x32,0xa4,0xd0,0xa6,0x20,0xa6,0x40,0xa7,0x00,0xa7,0xb0,0xa7,0xf7,0xab,0x30,0xfb,0x00,0xfb,0x13,0xfb,0x1d,0xfb,0x38,0xfb,0x3e,0xfb,0x40,0xfb,0x43,0xfb,0x46,0xfb,0xd3,0xfc,0x5e,0xfc,0xf2,0xfd,0x3c,0xfd,0xf2,0xfd,0xf4,0xfd,0xfa,0xfe,0x20,0xfe,0x58,0xfe,0x70,0xfe,0x76,0xfe,0xff,0xff,0xfc,0xff,0xff, +0xff,0xf5,0xff,0xe3,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x19,0x00,0x00,0x00,0x00,0x07,0x2a,0x07,0x28,0x07,0x27,0x07,0x26,0x00,0x00,0x00,0x00,0x05,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0c,0x00,0x00,0x0b,0x9f,0x00,0x00,0x06,0x70,0x05,0xfa,0x0a,0x5b,0x05,0x84,0x05,0x0e,0x09,0x5e,0x04,0x98,0x04,0x22,0x08,0x57, +0x03,0xac,0x03,0x36,0x02,0xc0,0xfa,0x4d,0x01,0xe0,0x01,0x6a,0x01,0x24,0x00,0x0e,0xfb,0x42,0xfe,0xfe,0xfe,0xf9,0x00,0x00,0xfc,0x76,0xf8,0x82,0xf8,0x5c,0xf6,0xa6,0xf8,0x1f,0x00,0x00,0x00,0x00,0xe4,0x77,0xe4,0x75,0xe4,0x73,0xe4,0x71,0xe4,0x70,0xe4,0x6f,0xe4,0x6e,0xe4,0x6d,0xe4,0x6b,0xe4,0x6a,0xe4,0x69,0xe4,0x67,0xe4,0x66, +0xe4,0x64,0xe4,0x63,0x00,0x00,0xe0,0x86,0x00,0x00,0x00,0x00,0xe0,0x85,0x00,0x00,0xe0,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xaa,0xea,0x32,0xe0,0x39,0xe0,0x2c,0x00,0x00,0xdf,0x6b,0xdf,0x79,0xe0,0x69,0xf3,0x1f,0xe9,0x97,0x00,0x00,0xf1,0x80,0x00,0x00,0xe9,0x9c,0xef,0xeb,0xef,0xea,0xde,0x97,0xe9,0x2b, +0xde,0x8c,0x00,0x00,0xde,0xa7,0x00,0x00,0x00,0x00,0xe9,0x0a,0xde,0x71,0xe9,0x00,0xee,0xc4,0xde,0x60,0x00,0x00,0xde,0x31,0xe8,0x43,0xe3,0x83,0x00,0x00,0x00,0x00,0xe5,0x86,0xe5,0x7f,0xe5,0x7e,0xe5,0x77,0x00,0x00,0xdb,0x74,0xe5,0x65,0xdb,0x5e,0x00,0x00,0xe4,0xdd,0xe4,0xdc,0xeb,0x1a,0x00,0x00,0x00,0x00,0xdf,0x35,0xe2,0xa3, +0xe2,0x9e,0xe3,0x30,0xda,0x43,0xe5,0x3b,0x68,0xf2,0x6a,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x9e,0x00,0x00,0x10,0x6c,0x10,0x6b,0x10,0x6a,0x10,0x69,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0xf8,0x00,0x00,0x0c,0x71,0x15,0xfb,0x00,0x00,0x09,0x1a,0x14,0xa7,0x15,0x83,0x00,0x00,0x0c,0x0c,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x3e,0x06,0xec,0x06,0xf6,0x00,0x00,0x07,0x00,0x07,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x36,0x0a,0x3a,0x00,0x00,0x0a,0xa4,0x0a,0xae,0x0a,0xe6,0x0c,0xa8,0x00,0x00,0x0d,0x04,0x00,0x00,0x0d,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0xac,0x0f,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x50,0x00,0x00,0x11,0x92,0x11,0xa2,0x00,0x00,0x11,0xa4,0x00,0x00,0x11,0xa6,0x11,0xa8,0x11,0xaa,0x11,0xde,0x11,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x24,0x00,0x00,0x12,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x12,0x52,0x00,0x00,0x12,0x52,0x12,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x48,0x12,0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x40,0x12,0x52,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x80,0x13,0x3e,0x14,0x9a,0x14,0xa8,0x14,0xb8,0x15,0x22,0x00,0x00,0x15,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x56,0x16,0x4c,0x16,0xa4,0x00,0x00,0x16,0xac,0x00,0x00,0x00,0x00,0x16,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0xae,0x00,0x00, +0x17,0xb8,0x00,0x00,0x00,0xa3,0x00,0xa4,0x00,0x84,0x00,0x85,0x02,0x3f,0x00,0x97,0x00,0xe7,0x00,0x86,0x00,0x8f,0x00,0x8c,0x00,0x9d,0x00,0xaa,0x00,0xa5,0x00,0x8a,0x00,0x8b,0x01,0x01,0x00,0x83,0x00,0x94,0x08,0x96,0x08,0x97,0x00,0x8e,0x00,0x98,0x00,0x88,0x00,0xc3,0x00,0xdd,0x08,0x98,0x00,0x9e,0x00,0xab,0x00,0xf4,0x00,0xf3, +0x00,0xf5,0x00,0xa2,0x00,0xad,0x00,0xc9,0x00,0xc7,0x00,0xae,0x00,0x62,0x00,0x63,0x00,0x91,0x00,0x64,0x00,0xcb,0x00,0x65,0x00,0xc8,0x00,0xca,0x00,0xcf,0x00,0xcc,0x00,0xcd,0x00,0xce,0x00,0xe8,0x00,0x66,0x00,0xd2,0x00,0xd0,0x00,0xd1,0x00,0xaf,0x00,0x67,0x00,0xef,0x00,0x92,0x00,0xd5,0x00,0xd3,0x00,0xd4,0x00,0x68,0x00,0xea, +0x00,0xec,0x00,0x89,0x00,0x6a,0x00,0x69,0x00,0x6b,0x00,0x6d,0x00,0x6c,0x00,0x6e,0x00,0xa0,0x00,0x6f,0x00,0x71,0x00,0x70,0x00,0x72,0x00,0x73,0x00,0x75,0x00,0x74,0x00,0x76,0x00,0x77,0x00,0xe9,0x00,0x78,0x00,0x7a,0x00,0x79,0x00,0x7b,0x00,0x7d,0x00,0x7c,0x00,0xb8,0x00,0xa1,0x00,0x7f,0x00,0x7e,0x00,0x80,0x00,0x81,0x00,0xeb, +0x00,0xed,0x00,0xba,0x01,0x45,0x01,0x46,0x01,0x03,0x01,0x04,0x01,0x05,0x01,0x06,0x00,0xfc,0x00,0xfd,0x01,0x47,0x01,0x48,0x01,0x49,0x01,0x4a,0x00,0xfe,0x00,0xff,0x01,0x07,0x01,0x08,0x01,0x09,0x01,0x00,0x01,0x4b,0x01,0x4c,0x01,0x4d,0x01,0x4e,0x01,0x4f,0x01,0x50,0x01,0x0a,0x01,0x0b,0x01,0x0c,0x01,0x0d,0x01,0x51,0x01,0x52, +0x00,0xf7,0x00,0xf8,0x01,0x53,0x01,0x54,0x01,0x55,0x01,0x56,0x01,0x57,0x01,0x58,0x01,0x59,0x01,0x5a,0x01,0x5b,0x01,0x5c,0x01,0x5d,0x01,0x5e,0x01,0x5f,0x01,0x60,0x01,0x61,0x01,0x62,0x00,0xf9,0x00,0xd6,0x01,0x39,0x01,0x3a,0x01,0x63,0x01,0x64,0x01,0x65,0x01,0x66,0x01,0x67,0x01,0x0e,0x01,0x0f,0x01,0x68,0x01,0x69,0x01,0x10, +0x01,0x11,0x01,0x12,0x01,0x13,0x00,0xe1,0x00,0xe2,0x01,0x14,0x01,0x15,0x01,0x6a,0x01,0x6b,0x01,0x16,0x01,0x17,0x01,0x3b,0x01,0x6c,0x01,0x6d,0x01,0x6e,0x01,0x6f,0x01,0x70,0x01,0x71,0x01,0x18,0x01,0x19,0x00,0xb0,0x00,0xb1,0x01,0x1a,0x01,0x1b,0x01,0x72,0x01,0x73,0x01,0x1c,0x01,0x1d,0x01,0x1e,0x01,0x1f,0x01,0x74,0x01,0x75, +0x00,0xfa,0x00,0xfb,0x00,0xe3,0x00,0xe4,0x01,0x20,0x01,0x21,0x01,0x22,0x01,0x23,0x01,0x76,0x01,0x77,0x01,0x78,0x01,0x79,0x01,0x7a,0x01,0x7b,0x01,0x7c,0x01,0x7d,0x01,0x24,0x01,0x25,0x01,0x26,0x01,0x27,0x01,0x7e,0x01,0x7f,0x01,0x80,0x01,0x81,0x01,0x82,0x01,0x83,0x00,0xbb,0x01,0x28,0x01,0x29,0x01,0x2a,0x01,0x2b,0x00,0xe5, +0x00,0xe6,0x01,0x84,0x04,0xb0,0x04,0xb1,0x04,0xb2,0x04,0xb3,0x04,0xb4,0x04,0xb5,0x04,0xb6,0x04,0xb7,0x04,0xb8,0x04,0xb9,0x04,0xba,0x04,0xbb,0x04,0xbc,0x04,0xbd,0x04,0xbe,0x02,0xcd,0x04,0xbf,0x04,0xc0,0x00,0xa7,0x04,0xc1,0x04,0xc2,0x04,0xc3,0x04,0xc4,0x04,0xc5,0x04,0xc6,0x04,0xc7,0x04,0xc8,0x04,0xc9,0x04,0xca,0x04,0xcb, +0x04,0xcc,0x04,0xcd,0x02,0x40,0x02,0x41,0x04,0xce,0x04,0xcf,0x04,0xd0,0x04,0xd1,0x04,0xd2,0x04,0xd3,0x04,0xd4,0x04,0xd5,0x04,0xd6,0x04,0xd7,0x04,0xd8,0x04,0xd9,0x04,0xda,0x02,0x42,0x02,0x43,0x04,0xdb,0x04,0xdc,0x04,0xdd,0x04,0xde,0x04,0xdf,0x04,0xe0,0x04,0xe1,0x04,0xe2,0x04,0xe3,0x04,0xe4,0x04,0xe5,0x04,0xe6,0x04,0xe7, +0x04,0xe8,0x04,0xe9,0x04,0xea,0x04,0xeb,0x04,0xec,0x04,0xed,0x04,0xee,0x04,0xef,0x04,0xf0,0x04,0xf1,0x04,0xf2,0x04,0xf3,0x04,0xf4,0x04,0xf5,0x04,0xf6,0x04,0xf7,0x04,0xf8,0x04,0xf9,0x04,0xfa,0x04,0xfb,0x04,0xfc,0x04,0xfd,0x04,0xfe,0x04,0xff,0x05,0x00,0x05,0x01,0x05,0x02,0x05,0x03,0x05,0x04,0x05,0x05,0x05,0x06,0x05,0x07, +0x05,0x08,0x05,0x09,0x05,0x0a,0x05,0x0b,0x05,0x0c,0x05,0x0d,0x05,0x0e,0x05,0x0f,0x05,0x10,0x05,0x11,0x05,0x12,0x05,0x13,0x05,0x14,0x05,0x15,0x05,0x16,0x05,0x17,0x05,0x18,0x05,0x19,0x05,0x1a,0x05,0x1b,0x05,0x1c,0x05,0x1d,0x05,0x1e,0x05,0x1f,0x05,0x20,0x05,0x21,0x05,0x22,0x05,0x23,0x01,0x85,0x01,0x86,0x01,0x87,0x01,0x88, +0x01,0x89,0x01,0x8a,0x05,0x24,0x05,0x25,0x05,0x26,0x05,0x27,0x05,0x28,0x05,0x29,0x05,0x2a,0x05,0x2b,0x05,0x2c,0x05,0x2d,0x05,0x2e,0x05,0x2f,0x05,0x30,0x05,0x31,0x05,0x32,0x05,0x33,0x05,0x34,0x05,0x35,0x05,0x36,0x05,0x37,0x05,0x38,0x05,0x39,0x05,0x3a,0x05,0x3b,0x02,0x3d,0x02,0x3e,0x02,0xaf,0x02,0xb0,0x05,0x3c,0x05,0x3d, +0x05,0x3e,0x05,0x3f,0x05,0x40,0x07,0x3e,0x05,0x41,0x05,0x42,0x05,0x43,0x05,0x44,0x05,0x45,0x05,0x46,0x02,0xe1,0x02,0xe2,0x05,0x47,0x05,0x48,0x05,0x49,0x05,0x4a,0x05,0x4b,0x05,0x4c,0x05,0x4d,0x05,0x4e,0x05,0x4f,0x05,0x50,0x07,0x3f,0x07,0x40,0x07,0x41,0x06,0xac,0x07,0xe1,0x07,0xe2,0x07,0xe4,0x07,0xe5,0x07,0xe6,0x07,0xe7, +0x07,0xe8,0x07,0xe9,0x07,0xea,0x07,0xeb,0x0a,0xbf,0x0a,0xc0,0x0a,0xc1,0x0a,0xc2,0x0a,0xc3,0x0a,0xc4,0x0a,0xc5,0x0a,0xc6,0x0a,0xc7,0x0a,0xc8,0x0a,0xc9,0x0a,0xca,0x0a,0xcb,0x0a,0xcc,0x05,0x56,0x05,0x57,0x05,0x58,0x05,0x59,0x05,0x5a,0x05,0x5b,0x05,0x5c,0x05,0x5d,0x05,0x5e,0x02,0xce,0x05,0x5f,0x05,0x60,0x05,0x61,0x05,0x62, +0x05,0x63,0x05,0x64,0x05,0x65,0x05,0x66,0x05,0x67,0x05,0x68,0x05,0x69,0x05,0x6a,0x05,0x6b,0x05,0x6c,0x05,0x6d,0x05,0x6e,0x05,0x6f,0x05,0x70,0x05,0x71,0x05,0x72,0x05,0x73,0x05,0x74,0x05,0x75,0x05,0x76,0x05,0x77,0x05,0x78,0x05,0x79,0x05,0x7a,0x05,0x7b,0x05,0x7c,0x05,0x7d,0x05,0x7e,0x05,0x7f,0x05,0x80,0x05,0x81,0x05,0x82, +0x05,0x83,0x05,0x84,0x05,0x85,0x05,0x86,0x05,0x87,0x05,0x88,0x05,0x89,0x05,0x8a,0x05,0x8b,0x05,0x8c,0x05,0x8d,0x05,0x8e,0x05,0x8f,0x05,0x90,0x05,0x91,0x05,0x92,0x05,0x93,0x05,0x94,0x05,0x95,0x05,0x96,0x05,0x97,0x05,0x98,0x05,0x99,0x05,0x9a,0x05,0x9b,0x05,0x9c,0x05,0x9d,0x05,0x9e,0x05,0x9f,0x05,0xa0,0x05,0xa1,0x05,0xa2, +0x05,0xa3,0x05,0xa4,0x05,0xa5,0x05,0xa6,0x05,0xa7,0x05,0xa8,0x05,0xa9,0x05,0xaa,0x05,0xab,0x05,0xac,0x05,0xad,0x05,0xae,0x05,0xaf,0x05,0xb0,0x05,0xb1,0x05,0xb2,0x07,0x42,0x07,0x43,0x06,0x76,0x06,0x77,0x06,0x78,0x06,0x79,0x06,0x7a,0x06,0x7b,0x06,0x7c,0x06,0x7d,0x06,0x7e,0x06,0x7f,0x06,0x80,0x06,0x81,0x06,0x82,0x06,0x83, +0x06,0x84,0x06,0x85,0x06,0x86,0x06,0x87,0x06,0x88,0x06,0x89,0x06,0x8a,0x06,0x8b,0x00,0xd7,0x00,0xe0,0x06,0x8c,0x00,0xd9,0x06,0x8d,0x06,0x8e,0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x06,0x9a,0x00,0xda,0x00,0xdb,0x00,0xdc,0x00,0xdf,0x00,0xd8,0x00,0xde, +0x06,0x9b,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0x9f,0x06,0xa0,0x06,0xa1,0x06,0xa2,0x06,0xa3,0x06,0xa4,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x07,0x44,0x07,0x45,0x07,0x46,0x07,0x47,0x07,0x48,0x07,0x49,0x07,0x4a,0x07,0x4b,0x07,0x4c,0x07,0x4d,0x07,0x4e,0x07,0x4f,0x07,0x50,0x07,0x51,0x07,0x52, +0x07,0x53,0x07,0x54,0x02,0x46,0x02,0x47,0x04,0x62,0x04,0x63,0x04,0x64,0x04,0x65,0x04,0x66,0x04,0x67,0x04,0x68,0x02,0x44,0x04,0x69,0x04,0x6a,0x04,0x6b,0x04,0x6c,0x04,0x6d,0x04,0x6e,0x04,0x6f,0x04,0x70,0x04,0x71,0x04,0x72,0x04,0x73,0x04,0x74,0x04,0x75,0x04,0x76,0x04,0x77,0x04,0x78,0x04,0x79,0x04,0x7a,0x04,0x7b,0x04,0x7c, +0x04,0x7d,0x04,0x7e,0x04,0x7f,0x04,0x80,0x04,0x81,0x02,0x45,0x04,0x82,0x04,0x83,0x04,0x84,0x04,0x85,0x04,0x86,0x04,0x87,0x04,0x88,0x04,0x89,0x04,0x8a,0x04,0x8b,0x04,0x8c,0x04,0x8d,0x04,0x8e,0x04,0x8f,0x04,0x90,0x04,0x91,0x04,0x92,0x04,0x93,0x04,0x94,0x04,0x95,0x04,0x96,0x04,0x97,0x04,0x98,0x04,0x99,0x04,0x9a,0x04,0x9b, +0x04,0x9c,0x04,0x9d,0x04,0x9e,0x04,0x9f,0x04,0xa0,0x04,0xa1,0x04,0xa2,0x04,0xa3,0x04,0xa4,0x04,0xa5,0x04,0xa6,0x04,0xa7,0x04,0xa8,0x04,0xa9,0x04,0xaa,0x04,0xab,0x04,0xac,0x07,0x39,0x07,0x55,0x07,0x56,0x07,0x57,0x07,0x58,0x07,0x59,0x07,0x5a,0x07,0x5b,0x07,0x5c,0x07,0xec,0x07,0xed,0x07,0xee,0x07,0xef,0x07,0xf0,0x07,0x5d, +0x07,0x5e,0x07,0x5f,0x04,0xad,0x04,0xae,0x04,0xaf,0x06,0x66,0x06,0x67,0x06,0x68,0x06,0x69,0x06,0x6a,0x06,0x6b,0x06,0x6c,0x06,0x6d,0x06,0x6e,0x06,0x6f,0x06,0x70,0x06,0x71,0x06,0x72,0x13,0x46,0x13,0x47,0x13,0x48,0x13,0x49,0x06,0x73,0x06,0x74,0x13,0x4a,0x13,0x4b,0x06,0x75,0x0a,0xcd,0x0a,0xce,0x0a,0xcf,0x01,0x9e,0x14,0x19, +0x01,0x9f,0x01,0xa0,0x01,0xa1,0x01,0x8b,0x01,0xa2,0x01,0xa3,0x01,0xa4,0x01,0xa6,0x01,0xa7,0x01,0xa8,0x01,0xa9,0x01,0xaa,0x01,0x2c,0x00,0xa9,0x01,0xab,0x01,0xac,0x01,0xad,0x01,0x2d,0x01,0xae,0x01,0xaf,0x01,0xb0,0x01,0xb1,0x01,0xb2,0x01,0xb3,0x01,0xb4,0x01,0xb5,0x01,0xb6,0x01,0xb7,0x01,0xb8,0x01,0xb9,0x01,0x2e,0x01,0xba, +0x01,0xbb,0x01,0xbc,0x01,0xbd,0x01,0xbe,0x01,0xbf,0x01,0xc0,0x01,0xc1,0x01,0xc2,0x01,0xc3,0x01,0x2f,0x01,0xc4,0x01,0xc5,0x01,0x30,0x01,0x31,0x01,0xc6,0x01,0xc7,0x01,0xc8,0x01,0xc9,0x01,0xca,0x01,0xcb,0x01,0xcc,0x01,0xcd,0x01,0xce,0x01,0xcf,0x02,0x37,0x01,0xd0,0x01,0xd1,0x01,0x32,0x01,0x33,0x01,0xd2,0x01,0x34,0x01,0xd3, +0x01,0xd4,0x01,0xd5,0x01,0xd6,0x01,0xd7,0x01,0xd8,0x01,0xd9,0x01,0xda,0x13,0x4c,0x05,0xb3,0x05,0xb4,0x05,0xb5,0x05,0xb6,0x05,0xb7,0x05,0xb8,0x05,0xb9,0x05,0xba,0x05,0xbb,0x05,0xbc,0x05,0xbd,0x05,0xbe,0x05,0xbf,0x05,0xc0,0x05,0xc1,0x05,0xc2,0x05,0xc3,0x05,0xc4,0x05,0xc5,0x05,0xc6,0x05,0xc7,0x05,0xc8,0x05,0xc9,0x05,0xca, +0x05,0xcb,0x05,0xcc,0x05,0xcd,0x05,0xce,0x05,0xcf,0x05,0xd0,0x05,0xd1,0x05,0xd2,0x05,0xd3,0x05,0xd4,0x05,0xd5,0x05,0xd6,0x05,0xd7,0x05,0xd8,0x05,0xd9,0x07,0x60,0x07,0x61,0x08,0xc0,0x08,0xc1,0x08,0xc2,0x07,0xf1,0x07,0xf2,0x07,0xf3,0x07,0xf4,0x02,0xb1,0x01,0xdb,0x01,0xdc,0x01,0xdd,0x01,0xde,0x01,0xdf,0x02,0xb5,0x01,0xe0, +0x02,0xb6,0x01,0xe1,0x01,0xe2,0x01,0xe3,0x01,0xe4,0x02,0xb3,0x01,0xe5,0x01,0xe6,0x01,0xe7,0x01,0xe8,0x01,0xe9,0x01,0xea,0x01,0xeb,0x01,0xec,0x01,0xed,0x01,0xee,0x01,0xef,0x01,0xf0,0x01,0xf1,0x01,0xf2,0x01,0xf3,0x01,0xf4,0x01,0xf5,0x01,0xf6,0x01,0xf7,0x01,0xf8,0x01,0xf9,0x01,0xfa,0x01,0xfb,0x01,0xfc,0x01,0xfd,0x01,0xfe, +0x01,0xff,0x02,0x00,0x02,0x01,0x02,0x02,0x02,0x03,0x02,0x04,0x02,0x05,0x02,0x06,0x02,0x07,0x02,0x08,0x02,0x09,0x02,0x0a,0x02,0x0b,0x02,0x0c,0x02,0x0d,0x02,0x0e,0x02,0x0f,0x02,0x10,0x02,0x11,0x02,0x12,0x02,0x13,0x02,0x14,0x02,0x15,0x02,0x16,0x02,0x17,0x02,0x18,0x02,0x19,0x02,0x1a,0x02,0x1b,0x02,0x1c,0x02,0x1d,0x02,0x1e, +0x02,0x1f,0x02,0x20,0x02,0x21,0x02,0x22,0x02,0x23,0x02,0x24,0x02,0x25,0x02,0x26,0x02,0xb2,0x02,0x27,0x02,0x28,0x02,0x29,0x02,0x2a,0x02,0x2b,0x02,0xb7,0x02,0x2c,0x02,0xb8,0x02,0x2d,0x02,0x2e,0x02,0x2f,0x02,0x30,0x02,0xb4,0x02,0x31,0x02,0x32,0x05,0xda,0x05,0xdb,0x05,0xdc,0x05,0xdd,0x05,0xde,0x05,0xdf,0x05,0xe0,0x05,0xe1, +0x05,0xe2,0x05,0xe3,0x05,0xe4,0x05,0xe5,0x05,0xe6,0x05,0xe7,0x05,0xe8,0x05,0xe9,0x05,0xea,0x05,0xeb,0x05,0xec,0x05,0xed,0x05,0xee,0x05,0xef,0x05,0xf0,0x05,0xf1,0x05,0xf2,0x05,0xf3,0x05,0xf4,0x05,0xf5,0x05,0xf6,0x05,0xf7,0x05,0xf8,0x05,0xf9,0x05,0xfa,0x05,0xfb,0x05,0xfc,0x05,0xfd,0x05,0xfe,0x05,0xff,0x06,0x00,0x0b,0x1c, +0x06,0x01,0x06,0x02,0x08,0xb4,0x08,0xb5,0x06,0x03,0x06,0x04,0x06,0x05,0x06,0x06,0x02,0x33,0x02,0x34,0x02,0xb9,0x02,0xba,0x06,0x07,0x06,0x08,0x02,0xbb,0x02,0xbc,0x06,0x09,0x06,0x0a,0x02,0xbd,0x02,0xbe,0x02,0xbf,0x02,0xc0,0x06,0x0b,0x06,0x0c,0x06,0x0d,0x06,0x0e,0x02,0xc1,0x02,0xc2,0x06,0x0f,0x06,0x10,0x06,0x11,0x06,0x12, +0x06,0x13,0x06,0x14,0x06,0x15,0x06,0x16,0x06,0x17,0x06,0x18,0x02,0xc3,0x02,0xc4,0x02,0xc5,0x02,0xc6,0x02,0xc7,0x02,0xc8,0x06,0x19,0x06,0x1a,0x06,0x1b,0x06,0x1c,0x02,0xc9,0x02,0xca,0x02,0xcb,0x02,0xcc,0x06,0x1d,0x06,0x1e,0x06,0x1f,0x06,0x20,0x06,0x21,0x06,0x22,0x06,0x23,0x06,0x24,0x06,0x25,0x08,0xb6,0x08,0xb7,0x06,0x26, +0x06,0x27,0x08,0xb8,0x08,0xb9,0x06,0x28,0x06,0x29,0x08,0xba,0x08,0xbb,0x0a,0xd0,0x06,0x2a,0x06,0x2b,0x06,0x2c,0x06,0x2d,0x06,0x2e,0x06,0x2f,0x06,0x30,0x06,0x31,0x06,0x32,0x06,0x33,0x06,0x34,0x06,0x35,0x06,0x36,0x06,0x37,0x06,0x38,0x06,0x39,0x06,0x3a,0x06,0x3b,0x06,0x3c,0x06,0x3d,0x06,0x3e,0x06,0x3f,0x06,0x40,0x06,0x41, +0x02,0xcf,0x02,0xd0,0x06,0x42,0x06,0x43,0x06,0x44,0x06,0x45,0x06,0x46,0x06,0x47,0x06,0x48,0x06,0x49,0x06,0x4a,0x06,0x4b,0x06,0x4c,0x06,0x4d,0x07,0xf5,0x07,0xf6,0x06,0x4e,0x06,0x4f,0x0a,0xd1,0x0a,0xd2,0x0a,0xd3,0x0a,0xd4,0x0a,0xd5,0x0a,0xd6,0x06,0x50,0x06,0x51,0x06,0x52,0x06,0x53,0x06,0x54,0x06,0x55,0x06,0x56,0x06,0x57, +0x06,0x58,0x06,0x59,0x06,0x5a,0x06,0x5b,0x06,0x5c,0x06,0x5d,0x06,0x5e,0x06,0x5f,0x0a,0xd7,0x0a,0xd8,0x0a,0xd9,0x0a,0xda,0x13,0x4d,0x13,0x4e,0x13,0x4f,0x13,0x50,0x13,0x51,0x13,0x52,0x0b,0x1d,0x0b,0x1e,0x0b,0x1f,0x0b,0x20,0x13,0x53,0x13,0x54,0x13,0x55,0x13,0x56,0x13,0x57,0x13,0x58,0x14,0x1a,0x14,0x1b,0x13,0x59,0x13,0x5a, +0x14,0x1c,0x14,0x1d,0x14,0x1e,0x14,0x1f,0x14,0x20,0x14,0x21,0x14,0x22,0x14,0x23,0x11,0x8a,0x11,0x8b,0x0f,0xc4,0x0b,0xbf,0x0b,0xc0,0x0b,0xc1,0x0b,0xc2,0x0b,0xc3,0x0b,0xc4,0x0b,0xc5,0x0b,0xc6,0x0b,0xc7,0x0b,0xc8,0x0b,0xc9,0x0b,0xca,0x0b,0xcb,0x0b,0xcc,0x0b,0xcd,0x0b,0xce,0x0b,0xcf,0x0b,0xd0,0x0b,0xd1,0x0b,0xd2,0x0b,0xd3, +0x0b,0xd4,0x0b,0xd5,0x0b,0xd6,0x0b,0xd7,0x0b,0xd8,0x0b,0xd9,0x0b,0xda,0x0b,0xdb,0x0b,0xdc,0x0b,0xdd,0x0b,0x53,0x0b,0x54,0x0b,0x55,0x0b,0x56,0x0b,0x57,0x0b,0x58,0x0b,0x59,0x0b,0x5a,0x0b,0x5b,0x0b,0x5c,0x0b,0xde,0x0b,0x5d,0x0b,0x5e,0x0b,0x5f,0x0b,0x60,0x0b,0x61,0x0b,0x62,0x0b,0x63,0x0b,0x64,0x0b,0x65,0x0b,0x66,0x0b,0x67, +0x0b,0xdf,0x0b,0xb9,0x14,0xdf,0x0b,0x83,0x0b,0x84,0x0b,0x85,0x0b,0x86,0x0b,0x87,0x0a,0x44,0x0a,0x45,0x0a,0x46,0x0a,0x47,0x13,0x45,0x14,0x03,0x0e,0x13,0x0e,0x14,0x0e,0x16,0x0e,0x17,0x0e,0x18,0x0a,0x6a,0x08,0xf8,0x0a,0x49,0x0a,0x48,0x0a,0x4a,0x0a,0x4b,0x0a,0x4c,0x0a,0x4d,0x0a,0x4e,0x0a,0x4f,0x0a,0x53,0x0e,0x1a,0x0e,0x1b, +0x0e,0x1c,0x0e,0x1d,0x0e,0x1e,0x09,0x05,0x13,0x92,0x0a,0x6b,0x09,0x06,0x0e,0x20,0x09,0x07,0x09,0x08,0x09,0x09,0x09,0x0a,0x09,0x0b,0x09,0x0c,0x09,0x0d,0x09,0x0e,0x09,0x0f,0x09,0x10,0x09,0x11,0x09,0x12,0x09,0x13,0x09,0x14,0x09,0x15,0x09,0x16,0x09,0x17,0x09,0x18,0x09,0x19,0x09,0x1a,0x09,0x1b,0x09,0x1c,0x09,0x1d,0x09,0x1e, +0x09,0x1f,0x09,0x20,0x0e,0x3f,0x0e,0x43,0x0e,0x47,0x0e,0x4b,0x0e,0x4f,0x09,0x21,0x09,0x22,0x09,0x23,0x09,0x24,0x09,0x25,0x09,0x26,0x09,0x27,0x09,0x28,0x09,0x29,0x09,0x2a,0x09,0x2b,0x09,0x2c,0x09,0x2d,0x09,0x2e,0x09,0x2f,0x09,0x30,0x09,0x31,0x09,0x32,0x09,0x33,0x09,0x37,0x09,0x7e,0x09,0x7f,0x0a,0x50,0x0a,0x51,0x0a,0x52, +0x0a,0x6c,0x0a,0x6d,0x0a,0x6e,0x0a,0x6f,0x0a,0x70,0x0a,0x71,0x09,0x77,0x08,0xd7,0x08,0xd8,0x08,0xd9,0x08,0xda,0x08,0xdb,0x08,0xdc,0x08,0xdd,0x08,0xde,0x08,0xdf,0x08,0xe0,0x09,0x6a,0x09,0x03,0x0e,0x6d,0x09,0x6b,0x09,0x3e,0x09,0x7c,0x09,0x73,0x09,0x80,0x09,0x82,0x09,0x84,0x0e,0x73,0x09,0x86,0x09,0x88,0x09,0x89,0x09,0x8a, +0x09,0x5b,0x09,0x8c,0x09,0x8e,0x09,0x90,0x09,0x92,0x09,0x40,0x09,0x94,0x09,0x96,0x09,0x98,0x09,0x9b,0x09,0x9e,0x09,0xa1,0x09,0xa4,0x09,0x42,0x09,0xa7,0x09,0x5d,0x09,0xaa,0x09,0xab,0x09,0xac,0x09,0xad,0x09,0xae,0x09,0xaf,0x09,0xb0,0x09,0xb1,0x09,0x5e,0x09,0xb2,0x09,0xb3,0x09,0xb4,0x09,0xb5,0x09,0xb6,0x09,0xb7,0x09,0x45, +0x09,0xb8,0x09,0xb9,0x09,0xbb,0x09,0xbd,0x09,0xbf,0x09,0xc1,0x09,0xc3,0x09,0xc4,0x09,0xc8,0x09,0xc9,0x09,0xcc,0x09,0x6c,0x09,0xcf,0x09,0xd2,0x09,0xd5,0x09,0xd6,0x09,0x46,0x09,0xd7,0x09,0xd9,0x09,0xdb,0x09,0xdd,0x09,0xdf,0x09,0x48,0x09,0xe1,0x09,0xe3,0x09,0xe5,0x09,0xe7,0x09,0xe9,0x09,0xeb,0x09,0xed,0x09,0xef,0x09,0xf1, +0x09,0xf3,0x09,0x5f,0x09,0xf5,0x09,0xf6,0x09,0xf8,0x08,0xf1,0x09,0xfa,0x09,0x4e,0x09,0x60,0x09,0x63,0x09,0x64,0x09,0xfd,0x09,0xfe,0x09,0xff,0x0a,0x00,0x0a,0x01,0x0a,0x02,0x0a,0x03,0x0a,0x04,0x09,0x4a,0x0a,0x05,0x0a,0x07,0x0a,0x0a,0x0a,0x0b,0x0a,0x0d,0x09,0x65,0x09,0x67,0x09,0x69,0x0b,0x19,0x09,0x74,0x0a,0x0f,0x0a,0x10, +0x09,0x75,0x0a,0x11,0x0a,0x12,0x0a,0x13,0x0a,0x14,0x0a,0x15,0x0a,0x16,0x0a,0x17,0x0a,0x18,0x0a,0x19,0x0a,0x1a,0x0a,0x1b,0x0a,0x1c,0x0a,0x1d,0x0a,0x1e,0x0a,0x1f,0x0a,0x20,0x0a,0x21,0x0a,0x22,0x0e,0xeb,0x0a,0x23,0x0a,0x54,0x0a,0x56,0x09,0x4f,0x09,0x50,0x09,0x51,0x09,0x52,0x09,0x53,0x09,0x54,0x09,0x55,0x09,0x56,0x09,0x57, +0x09,0x58,0x0a,0x24,0x0a,0x26,0x0a,0x28,0x0a,0x2c,0x0a,0x2d,0x0a,0x58,0x0a,0x72,0x0a,0x74,0x0a,0x76,0x0a,0x78,0x0a,0x7a,0x0a,0x7c,0x0a,0x7e,0x0a,0x80,0x0a,0x83,0x0a,0x86,0x0a,0x87,0x0a,0x88,0x0a,0x89,0x0a,0x8b,0x0a,0x8f,0x0a,0x93,0x0a,0x97,0x0a,0x9a,0x0a,0x9d,0x0a,0xa0,0x0a,0xa3,0x0a,0xa6,0x0a,0xa8,0x0a,0xaa,0x0a,0xac, +0x0a,0xae,0x0a,0xb0,0x0a,0xb4,0x0a,0xb5,0x0a,0xb6,0x0f,0x16,0x0f,0x1a,0x0f,0x1e,0x0f,0x22,0x0f,0x24,0x0f,0x28,0x0f,0x2a,0x0f,0x2c,0x0f,0x30,0x0f,0x34,0x0f,0x38,0x0f,0x3a,0x0f,0x3c,0x0f,0x3e,0x0f,0x40,0x0f,0x44,0x0f,0x48,0x0f,0x4c,0x13,0x02,0x14,0x04,0x13,0x04,0x13,0x08,0x13,0x0c,0x13,0x10,0x13,0x14,0x13,0x18,0x13,0x1c, +0x13,0x20,0x13,0x24,0x13,0x26,0x13,0x28,0x14,0x08,0x14,0x09,0x14,0x0b,0x14,0x0f,0x14,0x13,0x14,0x15,0x14,0x53,0x14,0x54,0x14,0x5d,0x14,0x5e,0x14,0x5f,0x14,0x60,0x14,0x61,0x14,0x62,0x14,0x63,0x14,0x64,0x14,0x65,0x14,0x66,0x14,0x67,0x14,0x68,0x14,0x69,0x14,0x6a,0x14,0x6b,0x14,0x6c,0x13,0x2a,0x13,0x2b,0x13,0x2c,0x13,0x2d, +0x13,0x2e,0x13,0x2f,0x13,0x30,0x13,0x31,0x13,0x32,0x13,0x33,0x13,0x34,0x13,0x35,0x13,0x36,0x13,0x37,0x13,0x38,0x13,0x39,0x13,0x3a,0x13,0x3b,0x13,0x3c,0x13,0x3d,0x13,0x3e,0x13,0x3f,0x13,0x40,0x13,0x41,0x13,0x42,0x13,0x43,0x13,0x44,0x14,0x17,0x0c,0x08,0x0c,0x09,0x0c,0x0a,0x0c,0x0b,0x0c,0x0c,0x0c,0x0d,0x0c,0x0e,0x0c,0x0f, +0x0c,0x10,0x0c,0x11,0x0c,0x12,0x0c,0x13,0x0c,0x14,0x0c,0x15,0x0c,0x16,0x0c,0x17,0x0c,0x18,0x0c,0x19,0x0c,0x1a,0x0c,0x1b,0x0c,0x1c,0x0c,0x1d,0x0c,0x1e,0x0c,0x1f,0x0c,0x20,0x0c,0x21,0x0c,0x22,0x0c,0x23,0x0c,0x24,0x0c,0x25,0x0c,0x26,0x0c,0x27,0x0c,0x28,0x0c,0x29,0x0c,0x2a,0x0c,0x2b,0x0c,0x2c,0x0c,0x2d,0x0c,0x2e,0x0c,0x2f, +0x0c,0x30,0x0c,0x31,0x0c,0x32,0x0c,0x33,0x0c,0x34,0x0f,0xc7,0x0f,0xc8,0x0f,0xc9,0x07,0x62,0x07,0x63,0x07,0x64,0x07,0x65,0x07,0x66,0x07,0x67,0x07,0x68,0x07,0x69,0x07,0x6a,0x07,0x6b,0x07,0x6c,0x07,0x6d,0x07,0x6e,0x07,0x6f,0x07,0x70,0x07,0x71,0x07,0x72,0x07,0x73,0x07,0x74,0x07,0x75,0x07,0x76,0x07,0x77,0x07,0x78,0x07,0x79, +0x07,0x7a,0x07,0x7b,0x07,0x7c,0x07,0x7d,0x07,0x7e,0x07,0x7f,0x07,0x80,0x07,0x81,0x07,0x82,0x07,0x83,0x07,0x84,0x07,0x85,0x07,0x86,0x07,0x87,0x07,0x88,0x07,0x89,0x07,0x8a,0x07,0x8b,0x07,0x8c,0x07,0x8d,0x07,0x8e,0x07,0x8f,0x07,0x90,0x07,0x91,0x07,0x92,0x07,0x93,0x07,0x94,0x07,0x95,0x07,0x96,0x07,0x97,0x07,0x98,0x07,0x99, +0x07,0x9a,0x07,0x9b,0x07,0x9c,0x07,0x9d,0x07,0x9e,0x07,0x9f,0x07,0xa0,0x07,0xa1,0x07,0xa2,0x07,0xa3,0x07,0xa4,0x07,0xa5,0x07,0xa6,0x07,0xa7,0x07,0xa8,0x07,0xa9,0x07,0xaa,0x07,0xab,0x07,0xac,0x07,0xad,0x07,0xae,0x07,0xaf,0x07,0xb0,0x07,0xb1,0x07,0xb2,0x07,0xb3,0x07,0xb4,0x07,0xb5,0x07,0xb6,0x07,0xb7,0x07,0xb8,0x07,0xb9, +0x07,0xba,0x07,0xbb,0x07,0xbc,0x07,0xbd,0x07,0xbe,0x07,0xbf,0x07,0xc0,0x07,0xc1,0x07,0xc2,0x07,0xc3,0x07,0xc4,0x07,0xc5,0x07,0xc6,0x07,0xc7,0x07,0xc8,0x07,0xc9,0x07,0xca,0x07,0xcb,0x07,0xcc,0x07,0xd1,0x07,0xf7,0x07,0xf8,0x07,0xf9,0x07,0xfa,0x07,0xfb,0x07,0xfc,0x07,0xfd,0x07,0xfe,0x07,0xff,0x08,0x00,0x08,0x01,0x08,0x02, +0x08,0x03,0x08,0x04,0x08,0x05,0x08,0x07,0x08,0x08,0x08,0x09,0x08,0x0a,0x08,0x0b,0x08,0x0c,0x08,0x0d,0x08,0x0e,0x08,0x0f,0x08,0x10,0x08,0x11,0x08,0x12,0x08,0x13,0x08,0x14,0x08,0x15,0x08,0x16,0x08,0x17,0x08,0x18,0x08,0x19,0x08,0x1a,0x08,0x1b,0x08,0x1c,0x08,0x1d,0x08,0x1e,0x08,0x1f,0x08,0x20,0x08,0x21,0x08,0x22,0x08,0x23, +0x08,0x24,0x08,0x25,0x08,0x26,0x08,0x27,0x08,0x28,0x08,0x29,0x08,0x2a,0x08,0x2b,0x08,0x2c,0x08,0x2d,0x08,0x2e,0x08,0x2f,0x08,0x30,0x08,0x31,0x08,0x32,0x08,0x33,0x08,0x34,0x08,0x35,0x08,0x36,0x08,0x37,0x08,0x38,0x08,0x39,0x08,0x3a,0x08,0x3b,0x08,0x3c,0x08,0x3d,0x08,0x3e,0x08,0x3f,0x08,0x40,0x08,0x41,0x08,0x42,0x08,0x43, +0x08,0x44,0x08,0x45,0x08,0x46,0x08,0x47,0x08,0x48,0x08,0x49,0x08,0x4a,0x08,0x4b,0x08,0x4c,0x08,0x4d,0x08,0x4e,0x08,0x4f,0x0a,0xdb,0x0a,0xdc,0x0a,0xdd,0x0a,0xde,0x0a,0xdf,0x0a,0xe0,0x0a,0xe1,0x0a,0xe2,0x0a,0xe3,0x02,0xe3,0x02,0xe4,0x02,0xe5,0x02,0xe6,0x02,0xe7,0x02,0xe8,0x02,0xe9,0x02,0xea,0x02,0xeb,0x02,0xec,0x02,0xed, +0x02,0xee,0x02,0xef,0x02,0xf0,0x02,0xf1,0x02,0xf2,0x02,0xf3,0x02,0xf4,0x02,0xf5,0x02,0xf6,0x02,0xf7,0x02,0xf8,0x02,0xf9,0x02,0xfa,0x02,0xfb,0x02,0xfc,0x02,0xfd,0x02,0xfe,0x02,0xff,0x03,0x00,0x03,0x01,0x03,0x02,0x03,0x03,0x03,0x04,0x03,0x05,0x03,0x06,0x03,0x07,0x03,0x08,0x03,0x09,0x03,0x0a,0x03,0x0b,0x03,0x0c,0x03,0x0d, +0x03,0x0e,0x03,0x0f,0x03,0x10,0x03,0x11,0x03,0x12,0x03,0x13,0x03,0x14,0x03,0x15,0x03,0x16,0x03,0x17,0x03,0x18,0x03,0x19,0x03,0x1a,0x03,0x1b,0x03,0x1c,0x03,0x1d,0x03,0x1e,0x03,0x1f,0x03,0x20,0x03,0x21,0x03,0x22,0x03,0x23,0x03,0x24,0x03,0x25,0x03,0x26,0x03,0x27,0x03,0x28,0x03,0x29,0x03,0x2a,0x03,0x2b,0x03,0x2c,0x03,0x2d, +0x03,0x2e,0x03,0x2f,0x03,0x30,0x03,0x31,0x03,0x32,0x03,0x33,0x03,0x34,0x03,0x35,0x03,0x36,0x03,0x37,0x03,0x38,0x03,0x39,0x03,0x3a,0x03,0x3b,0x03,0x3c,0x03,0x3d,0x03,0x3e,0x03,0x3f,0x03,0x40,0x03,0x41,0x03,0x42,0x03,0x43,0x03,0x44,0x03,0x45,0x03,0x46,0x03,0x47,0x03,0x48,0x03,0x49,0x03,0x4a,0x03,0x4b,0x03,0x4c,0x03,0x4d, +0x03,0x4e,0x03,0x4f,0x03,0x50,0x03,0x51,0x03,0x52,0x03,0x53,0x03,0x54,0x03,0x55,0x03,0x56,0x03,0x57,0x03,0x58,0x03,0x59,0x03,0x5a,0x03,0x5b,0x03,0x5c,0x03,0x5d,0x03,0x5e,0x03,0x5f,0x03,0x60,0x03,0x61,0x03,0x62,0x01,0x8c,0x01,0x8d,0x01,0x8e,0x01,0x8f,0x01,0x90,0x01,0x91,0x03,0x63,0x03,0x64,0x03,0x65,0x03,0x66,0x03,0x67, +0x03,0x68,0x03,0x69,0x03,0x6a,0x03,0x6b,0x03,0x6c,0x03,0x6d,0x03,0x6e,0x03,0x6f,0x03,0x70,0x03,0x71,0x03,0x72,0x03,0x73,0x03,0x74,0x03,0x75,0x03,0x76,0x03,0x77,0x03,0x78,0x13,0x5b,0x13,0x5c,0x0b,0x21,0x13,0x5d,0x02,0x57,0x02,0x58,0x02,0x59,0x02,0x5a,0x02,0x5b,0x02,0x5c,0x02,0x5d,0x02,0x5e,0x02,0x5f,0x02,0x60,0x02,0x61, +0x02,0x62,0x02,0x63,0x02,0x64,0x02,0x65,0x02,0x66,0x02,0x67,0x02,0x68,0x02,0x69,0x02,0x6a,0x02,0x6b,0x02,0x6c,0x02,0x6d,0x02,0x6e,0x02,0x6f,0x02,0x70,0x02,0x71,0x02,0x72,0x02,0x73,0x02,0x74,0x02,0x75,0x02,0x76,0x02,0x77,0x02,0x78,0x02,0x79,0x02,0x7a,0x02,0x7b,0x02,0x7c,0x02,0x7d,0x02,0x7e,0x02,0x7f,0x02,0x80,0x02,0x81, +0x02,0x82,0x02,0x83,0x02,0x84,0x02,0x85,0x02,0x86,0x02,0x87,0x02,0x88,0x02,0x89,0x02,0x8a,0x02,0x8b,0x02,0x8c,0x02,0x8d,0x02,0x8e,0x02,0x8f,0x02,0x90,0x02,0x91,0x02,0x92,0x02,0x93,0x02,0x94,0x02,0x95,0x02,0x96,0x02,0x97,0x02,0x98,0x02,0x99,0x02,0x9a,0x02,0x9b,0x02,0x9c,0x02,0x9d,0x02,0x9e,0x02,0x9f,0x02,0xa0,0x02,0xa1, +0x02,0xa2,0x02,0xa3,0x02,0xa4,0x02,0xa5,0x02,0xa6,0x02,0xa7,0x02,0xa8,0x01,0x92,0x01,0x93,0x02,0xa9,0x02,0xaa,0x02,0xab,0x02,0xac,0x02,0xad,0x02,0xae,0x13,0x5e,0x13,0x5f,0x13,0x60,0x13,0x61,0x13,0x62,0x13,0x63,0x03,0x79,0x03,0x7a,0x03,0x7b,0x03,0x7c,0x03,0x7d,0x03,0x7e,0x03,0x7f,0x03,0x80,0x03,0x81,0x03,0x82,0x03,0x83, +0x03,0x84,0x03,0x85,0x03,0x86,0x03,0x87,0x03,0x88,0x03,0x89,0x03,0x8a,0x03,0x8b,0x03,0x8c,0x03,0x8d,0x03,0x8e,0x0a,0xfe,0x0a,0xff,0x0b,0x00,0x0b,0x01,0x0b,0x02,0x0b,0x03,0x0b,0x04,0x0b,0x05,0x0b,0x06,0x11,0x86,0x0b,0x07,0x0b,0x08,0x08,0xc3,0x08,0xc4,0x08,0xc5,0x08,0xc6,0x00,0x10,0x11,0x99,0x08,0xbc,0x00,0xb2,0x00,0xb3, +0x02,0x35,0x11,0x87,0x01,0x35,0x00,0xb6,0x00,0xb7,0x00,0xc4,0x01,0x94,0x00,0xb4,0x00,0xb5,0x00,0xc5,0x08,0xbd,0x00,0x82,0x00,0xc2,0x00,0x87,0x0b,0x23,0x0b,0x24,0x0b,0x25,0x0b,0x26,0x0b,0x27,0x0b,0x28,0x0b,0x29,0x0b,0x09,0x00,0xc6,0x01,0x3c,0x01,0x3d,0x08,0xbe,0x01,0x36,0x11,0x85,0x01,0x95,0x08,0x50,0x0b,0x0a,0x08,0x99, +0x08,0x95,0x08,0x9a,0x08,0x9b,0x08,0x9c,0x08,0x9d,0x08,0x9e,0x08,0x9f,0x08,0xa0,0x08,0xa1,0x08,0xa2,0x08,0xa3,0x08,0xa4,0x01,0x37,0x08,0xa5,0x08,0xa6,0x08,0xa7,0x08,0xa8,0x08,0xa9,0x08,0xaa,0x08,0xab,0x08,0xac,0x08,0xad,0x08,0xae,0x08,0xaf,0x08,0xb0,0x08,0xb1,0x08,0xb2,0x08,0xb3,0x08,0x51,0x08,0x52,0x08,0x53,0x08,0x54, +0x08,0x55,0x14,0x2e,0x14,0x2f,0x14,0x30,0x14,0x31,0x14,0x32,0x14,0x33,0x14,0x34,0x14,0x35,0x07,0xd2,0x07,0xd3,0x07,0xd4,0x00,0xf6,0x01,0x96,0x07,0xd5,0x07,0xd6,0x01,0x38,0x07,0xd7,0x07,0xd8,0x07,0xd9,0x07,0xda,0x00,0xbd,0x07,0xdb,0x07,0xdc,0x07,0xdd,0x07,0xde,0x07,0xdf,0x08,0x56,0x08,0x57,0x08,0x58,0x08,0x59,0x11,0x80, +0x11,0x81,0x0c,0xb7,0x0c,0xb6,0x11,0xa3,0x14,0x2a,0x13,0x91,0x13,0x90,0x14,0x2c,0x14,0x2d,0x02,0x36,0x07,0xe0,0x12,0xe2,0x12,0xe3,0x12,0xe4,0x0b,0x2a,0x0b,0x2b,0x12,0xe5,0x12,0xe6,0x12,0xe7,0x12,0xe8,0x12,0xe9,0x12,0xea,0x01,0x98,0x01,0x99,0x01,0x9a,0x01,0x9b,0x12,0xeb,0x12,0xf0,0x12,0xf1,0x12,0xf2,0x12,0xf3,0x12,0xf4, +0x12,0xf5,0x12,0xf6,0x12,0xf7,0x12,0xf8,0x12,0xf9,0x0a,0xe6,0x12,0xfa,0x12,0xfb,0x12,0xfc,0x12,0xfd,0x12,0xfe,0x00,0x9a,0x00,0xee,0x01,0x02,0x00,0xa6,0x00,0x93,0x0b,0x32,0x00,0x90,0x08,0xbf,0x0b,0x36,0x01,0x40,0x01,0x41,0x01,0x42,0x0b,0x37,0x00,0xb9,0x0b,0x3c,0x0a,0x43,0x0b,0x3f,0x11,0x88,0x08,0x83,0x08,0x84,0x08,0x85, +0x08,0x86,0x08,0x87,0x08,0x88,0x08,0x89,0x08,0x8a,0x08,0x8b,0x13,0x8f,0x0a,0xe7,0x0a,0xe8,0x0a,0xe9,0x0a,0xea,0x0a,0xeb,0x0a,0xec,0x0a,0xed,0x0a,0xee,0x0a,0xef,0x0a,0xf0,0x0a,0xf1,0x0a,0xf2,0x0a,0xf3,0x0b,0x43,0x13,0x93,0x13,0x94,0x13,0x64,0x0b,0x44,0x0b,0x45,0x0b,0x46,0x0a,0xf4,0x0a,0xf5,0x0a,0xf6,0x0a,0xf7,0x13,0x65, +0x13,0x66,0x13,0x67,0x13,0x68,0x13,0x69,0x13,0x6a,0x13,0x6b,0x13,0x6c,0x11,0x30,0x11,0x31,0x11,0x32,0x11,0x33,0x11,0x34,0x11,0x35,0x11,0x36,0x11,0x37,0x11,0x38,0x11,0x39,0x11,0x3a,0x11,0x3b,0x11,0x3c,0x11,0x3d,0x11,0x3e,0x11,0x3f,0x11,0x40,0x11,0x41,0x11,0x42,0x11,0x43,0x11,0x44,0x11,0x45,0x11,0x46,0x11,0x47,0x11,0x48, +0x11,0x49,0x11,0x4a,0x11,0x4b,0x11,0x4c,0x11,0x4d,0x11,0x4e,0x11,0x4f,0x11,0x50,0x11,0x51,0x11,0x52,0x11,0x53,0x11,0x54,0x11,0x55,0x11,0x56,0x11,0x57,0x11,0x58,0x11,0x59,0x11,0x5a,0x11,0x5b,0x11,0x5c,0x11,0x5d,0x11,0x5e,0x11,0x5f,0x11,0x60,0x11,0x61,0x11,0x62,0x11,0x63,0x13,0x77,0x13,0x78,0x13,0x79,0x13,0x7a,0x13,0x7b, +0x13,0x7c,0x13,0x7d,0x13,0x7e,0x11,0x64,0x11,0x65,0x11,0x66,0x11,0x67,0x11,0x68,0x11,0x69,0x11,0x6a,0x11,0x6b,0x11,0x6c,0x11,0x6d,0x11,0x6e,0x11,0x6f,0x11,0x70,0x11,0x71,0x11,0x72,0x11,0x73,0x11,0x74,0x11,0x75,0x11,0x76,0x11,0x77,0x11,0x78,0x11,0x79,0x11,0x7a,0x11,0x7b,0x11,0x7c,0x11,0x7d,0x11,0x7e,0x11,0x7f,0x14,0x24, +0x14,0x25,0x14,0x26,0x14,0x27,0x14,0x28,0x14,0x29,0x14,0x36,0x13,0x7f,0x14,0x37,0x14,0x38,0x14,0x39,0x14,0x3a,0x14,0x3b,0x14,0x3c,0x14,0x3d,0x14,0x3e,0x13,0x80,0x13,0x81,0x13,0x82,0x13,0x83,0x13,0x84,0x13,0x85,0x13,0x86,0x13,0x87,0x13,0x88,0x13,0x89,0x13,0x8a,0x13,0x8b,0x13,0x8c,0x13,0x8d,0x13,0x8e,0x0a,0xf8,0x0a,0xf9, +0x0a,0xfa,0x0a,0xfb,0x0b,0x47,0x0b,0x48,0x0b,0x49,0x0b,0x4a,0x0b,0x4b,0x0a,0xfc,0x0a,0xfd,0x12,0x63,0x12,0x64,0x12,0x65,0x12,0x66,0x12,0x67,0x12,0x68,0x12,0x69,0x12,0x6a,0x12,0x6b,0x12,0x6c,0x12,0x6d,0x12,0x6e,0x12,0x6f,0x12,0x70,0x12,0x71,0x12,0x72,0x12,0x73,0x12,0x74,0x12,0x75,0x12,0x76,0x12,0x77,0x12,0x78,0x12,0x79, +0x12,0x7a,0x12,0x7b,0x12,0x7c,0x12,0x7d,0x12,0x7e,0x12,0x7f,0x12,0x80,0x12,0x81,0x12,0x82,0x12,0x83,0x12,0x84,0x12,0x85,0x12,0x86,0x12,0x87,0x12,0x88,0x12,0x89,0x12,0x8a,0x12,0x8b,0x12,0x8c,0x12,0x8d,0x12,0x8e,0x12,0x8f,0x12,0x90,0x12,0x91,0x12,0x92,0x12,0x93,0x12,0x94,0x12,0x95,0x12,0x96,0x12,0x97,0x12,0x98,0x12,0x99, +0x12,0x9a,0x12,0x9b,0x12,0x9c,0x12,0x9d,0x12,0x9e,0x12,0x9f,0x12,0xa0,0x12,0xa1,0x12,0xa2,0x12,0xa3,0x12,0xa4,0x12,0xa5,0x12,0xa6,0x12,0xa7,0x12,0xa8,0x12,0xa9,0x12,0xaa,0x12,0xab,0x12,0xac,0x12,0xad,0x12,0xae,0x12,0xaf,0x12,0xb0,0x12,0xb1,0x12,0xb2,0x12,0xb3,0x12,0xb4,0x12,0xb5,0x12,0xb6,0x12,0xb7,0x12,0xb8,0x12,0xb9, +0x12,0xba,0x12,0xbb,0x12,0xbc,0x12,0xbd,0x12,0xbe,0x12,0xbf,0x12,0xc0,0x12,0xc1,0x12,0xc2,0x12,0xc3,0x12,0xc4,0x12,0xc5,0x12,0xc6,0x12,0xc7,0x12,0xc8,0x0b,0x4c,0x0b,0x4d,0x0b,0x4e,0x0b,0x4f,0x0b,0x50,0x12,0xc9,0x12,0xca,0x14,0x3f,0x12,0xcb,0x12,0xcc,0x12,0xcd,0x12,0xce,0x13,0x95,0x13,0x96,0x13,0x97,0x13,0x98,0x13,0x99, +0x13,0x9a,0x13,0x9b,0x13,0x9c,0x13,0x9d,0x13,0x9e,0x13,0x9f,0x13,0xa0,0x12,0xcf,0x12,0xd0,0x12,0xd1,0x12,0xd2,0x12,0xd3,0x12,0xd4,0x12,0xd5,0x12,0xd6,0x12,0xd7,0x12,0xd8,0x12,0xd9,0x13,0xa1,0x13,0xa2,0x13,0xa3,0x14,0x40,0x13,0xa4,0x13,0xa5,0x14,0x41,0x14,0x42,0x14,0x43,0x14,0x44,0x14,0x45,0x14,0x46,0x13,0xa6,0x12,0xda, +0x12,0xdb,0x12,0xdc,0x12,0xdd,0x12,0xde,0x12,0xdf,0x12,0xe0,0x12,0xe1,0x13,0xa7,0x13,0xa8,0x13,0xa9,0x13,0xaa,0x13,0xab,0x13,0xac,0x13,0xad,0x13,0xae,0x13,0xaf,0x13,0xb0,0x13,0xb1,0x13,0xb2,0x13,0xb3,0x13,0xb4,0x13,0xb5,0x13,0xb6,0x13,0xb7,0x13,0xb8,0x13,0xb9,0x13,0xba,0x13,0xbb,0x13,0xbc,0x13,0xbd,0x13,0xbe,0x13,0xbf, +0x13,0xc0,0x13,0xc1,0x13,0xc2,0x13,0xc3,0x13,0xc4,0x13,0xc5,0x13,0xc6,0x13,0xc7,0x13,0xc8,0x13,0xc9,0x13,0xca,0x13,0xcb,0x13,0xcc,0x13,0xcd,0x13,0xce,0x13,0xcf,0x13,0xd0,0x13,0xd1,0x13,0xd2,0x13,0xd3,0x13,0xd4,0x13,0xd5,0x13,0xd6,0x14,0x47,0x14,0x48,0x14,0x49,0x14,0x4a,0x13,0xd7,0x13,0xd8,0x0d,0xbb,0x00,0xc0,0x00,0xc1, +0x0d,0xbc,0x0d,0xbd,0x14,0x4b,0x14,0x4c,0x0b,0xe0,0x0b,0xe1,0x0b,0x8c,0x0b,0x8d,0x0b,0x8e,0x0b,0x8f,0x0b,0x90,0x0b,0x91,0x0b,0x92,0x0b,0x93,0x0b,0x94,0x0b,0x95,0x0b,0x96,0x0b,0x97,0x0b,0x98,0x0b,0x99,0x0b,0x9a,0x0b,0x9b,0x0b,0x9c,0x0b,0x9d,0x0b,0x9e,0x0b,0x9f,0x0b,0xa0,0x0b,0xa1,0x0b,0xa2,0x0b,0xa3,0x0b,0xae,0x0b,0xaf, +0x0b,0xb0,0x0b,0xb1,0x0b,0xb2,0x0b,0xb3,0x0b,0xb4,0x0b,0xb5,0x0b,0xb6,0x0b,0xb7,0x09,0x80,0x09,0x81,0x09,0x8e,0x0e,0x7c,0x09,0x8f,0x0e,0x7d,0x09,0x40,0x0e,0x82,0x09,0x41,0x0e,0x83,0x09,0x96,0x0e,0x86,0x09,0x97,0x0e,0x87,0x09,0x8c,0x0e,0x7a,0x09,0x8d,0x0e,0x7b,0x09,0x94,0x0e,0x84,0x09,0x95,0x0e,0x85,0x09,0x5b,0x0e,0x78, +0x09,0x5c,0x0e,0x79,0x09,0x6c,0x0e,0xa8,0x09,0x6d,0x09,0x6e,0x09,0xd2,0x0e,0xaa,0x09,0xd3,0x09,0xd4,0x09,0xa1,0x09,0xa2,0x09,0xa3,0x0e,0x8b,0x09,0x9e,0x09,0x9f,0x09,0xa0,0x0e,0x8a,0x09,0x42,0x09,0x43,0x09,0x44,0x0e,0x8d,0x09,0xa7,0x09,0xa8,0x09,0xa9,0x0e,0x8e,0x09,0xae,0x0e,0x94,0x09,0xad,0x0e,0x93,0x09,0xaf,0x0e,0x95, +0x09,0x5d,0x0e,0x8f,0x09,0x45,0x0b,0x0e,0x09,0x5e,0x0b,0x0f,0x09,0x46,0x0e,0xb1,0x09,0x47,0x0e,0xb2,0x09,0x48,0x0e,0xbd,0x09,0x49,0x0e,0xbe,0x09,0xe7,0x0e,0xc5,0x09,0xe8,0x0e,0xc6,0x09,0xe3,0x0e,0xc1,0x09,0xe4,0x0e,0xc2,0x09,0x5f,0x0e,0xcf,0x09,0xf5,0x0e,0xd0,0x0e,0xd1,0x0e,0xd2,0x09,0x4e,0x09,0x4d,0x09,0x60,0x09,0x72, +0x09,0x61,0x09,0x62,0x08,0xf1,0x08,0xf2,0x0e,0xd7,0x0e,0xd8,0x09,0x65,0x09,0x66,0x09,0x67,0x09,0x68,0x13,0xd9,0x13,0xda,0x13,0xdb,0x13,0xdc,0x13,0xdd,0x13,0xde,0x13,0xdf,0x13,0xe0,0x13,0xe1,0x13,0xe2,0x13,0xe3,0x13,0xe4,0x13,0xe5,0x13,0xe6,0x13,0xe7,0x13,0xe8,0x09,0xdd,0x0e,0xb9,0x09,0xde,0x0e,0xba,0x0a,0x00,0x0e,0xdf, +0x09,0xff,0x0e,0xde,0x0a,0x01,0x0e,0xe0,0x09,0x89,0x0a,0x04,0x0e,0xe3,0x09,0xfe,0x0e,0xdd,0x0a,0x02,0x0e,0xe1,0x0a,0x0b,0x0a,0x0c,0x0e,0xe7,0x0e,0xe8,0x0e,0x5f,0x0e,0x60,0x10,0xfe,0x10,0xff,0x11,0x00,0x11,0x01,0x11,0x02,0x11,0x03,0x11,0x04,0x11,0x05,0x11,0x06,0x11,0x07,0x11,0x08,0x11,0x09,0x11,0x0a,0x11,0x0b,0x11,0x0c, +0x11,0x0d,0x11,0x0e,0x11,0x0f,0x09,0x4a,0x09,0x4b,0x09,0x4c,0x0e,0xe4,0x0a,0x68,0x0a,0x69,0x0a,0x65,0x0a,0x66,0x0a,0x67,0x13,0xe9,0x13,0xed,0x13,0xee,0x00,0x0b,0x00,0x0c,0x13,0xf0,0x13,0xf1,0x0a,0x64,0x13,0xf2,0x13,0xf8,0x13,0xf9,0x13,0xfa,0x13,0xfb,0x13,0xfc,0x13,0xfd,0x13,0xfe,0x13,0xff,0x14,0x00,0x14,0x01,0x09,0x07, +0x09,0x08,0x08,0xc9,0x09,0x09,0x08,0xc8,0x09,0x0a,0x0e,0x24,0x09,0x0b,0x08,0xca,0x09,0x0c,0x09,0x02,0x08,0xf9,0x0e,0x25,0x09,0x0d,0x08,0xc7,0x09,0x0e,0x0e,0x26,0x08,0xcb,0x0e,0x27,0x09,0x0f,0x08,0xf6,0x09,0x10,0x0e,0x28,0x08,0xcc,0x0e,0x29,0x09,0x11,0x0e,0x2a,0x08,0xcd,0x0e,0x2b,0x09,0x12,0x08,0xcf,0x08,0xce,0x0e,0x2c, +0x09,0x13,0x08,0xd1,0x08,0xd0,0x0e,0x2d,0x09,0x14,0x08,0xd3,0x08,0xd2,0x0e,0x2e,0x09,0x15,0x0e,0x2f,0x09,0x16,0x0e,0x30,0x09,0x17,0x0b,0x0c,0x09,0x18,0x0b,0x0d,0x09,0x19,0x0e,0x31,0x08,0xd4,0x0e,0x32,0x09,0x1a,0x0e,0x33,0x08,0xd5,0x0e,0x34,0x09,0x1b,0x0e,0x35,0x08,0xd6,0x0e,0x36,0x09,0x1c,0x0e,0x37,0x08,0xe1,0x0e,0x38, +0x09,0x1d,0x0e,0x39,0x0e,0x3a,0x0e,0x3b,0x09,0x1e,0x0e,0x3c,0x0e,0x3d,0x0e,0x3e,0x09,0x1f,0x08,0xe4,0x08,0xe2,0x08,0xe3,0x09,0x20,0x08,0xe7,0x08,0xe5,0x08,0xe6,0x09,0x22,0x0e,0x53,0x08,0xe8,0x08,0xe9,0x09,0x23,0x0e,0x54,0x08,0xeb,0x08,0xec,0x09,0x24,0x0e,0x55,0x08,0xed,0x0e,0x56,0x09,0x25,0x09,0x59,0x08,0xee,0x09,0x3f, +0x09,0x26,0x0e,0x57,0x08,0xef,0x0e,0x58,0x09,0x27,0x0e,0x59,0x08,0xf0,0x0e,0x5a,0x09,0x28,0x08,0xf3,0x0e,0x5b,0x0e,0x5d,0x09,0x29,0x0e,0x5e,0x09,0x2a,0x08,0xf7,0x09,0x2b,0x08,0xf5,0x08,0xf4,0x0e,0x61,0x09,0x01,0x09,0x04,0x08,0xff,0x09,0x00,0x09,0x34,0x09,0x35,0x08,0xfa,0x08,0xfb,0x0b,0xb8,0x0b,0x1b,0x40,0x55,0x85,0x64, +0x5b,0x5a,0x59,0x54,0x52,0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x46,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13, +0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0x45,0x6a,0xb0,0x19,0x43,0x60,0xb0,0x0c,0x23,0x44,0x23,0x10,0x20,0xb0,0x0c,0x4e,0xf0,0x4d,0x2f,0xb0,0x00,0x12,0x1b,0x21,0x23,0x11,0x20,0x33,0x2f,0x59,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58, +0xb0,0x05,0x2b,0xb0,0x00,0x13,0x4b,0xb0,0x14,0x50,0x58,0xb1,0x00,0x40,0x38,0x59,0xb0,0x06,0x2b,0x1b,0x21,0x23,0x11,0x20,0x33,0x2f,0x59,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0x4e,0xb0,0x03,0x25,0x10,0xf2,0x21,0xb0,0x00,0x12,0x4d,0x1b,0x20,0x45,0xb0,0x04,0x25,0xb0,0x04,0x25,0x23,0x4a,0x61,0x64,0xb0,0x28,0x52,0x58,0x21, +0x23,0x10,0xd6,0x1b,0xb0,0x03,0x25,0x10,0xf2,0x21,0xb0,0x00,0x12,0x59,0x59,0x2d,0x2c,0xb0,0x1a,0x43,0x58,0x21,0x21,0x1b,0xb0,0x02,0x25,0xb0,0x02,0x25,0x49,0xb0,0x03,0x25,0xb0,0x03,0x25,0x4a,0x61,0x20,0x64,0xb0,0x10,0x50,0x58,0x21,0x21,0x21,0x1b,0xb0,0x03,0x25,0xb0,0x03,0x25,0x49,0xb0,0x00,0x50,0x58,0xb0,0x00,0x50,0x58, +0xb8,0xff,0xe2,0x38,0x21,0x1b,0xb0,0x00,0x38,0x21,0x59,0x1b,0xb0,0x00,0x52,0x58,0xb0,0x1e,0x38,0x21,0x1b,0xb0,0x00,0x38,0x21,0x59,0x59,0x59,0x59,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0xb0,0x05,0x2b,0xb0,0x00,0x13,0x4b,0xb0,0x14,0x50,0x58,0xb9,0x00,0x00,0xff,0xc0,0x38,0x59,0xb0,0x06,0x2b,0x1b,0x21,0x23,0x11,0x20,0x33, +0x2f,0x59,0x2d,0x2c,0x4e,0x01,0x8a,0x10,0xb1,0x0c,0x19,0x43,0x44,0xb0,0x00,0x14,0xb1,0x00,0x0c,0xe2,0xb0,0x00,0x15,0xb9,0x00,0x00,0xff,0xf0,0x38,0x00,0xb0,0x00,0x3c,0xb0,0x28,0x2b,0xb0,0x02,0x25,0x10,0xb0,0x00,0x3c,0x2d,0x2c,0x01,0x18,0xb0,0x00,0x2f,0xb0,0x01,0x14,0xf2,0xb0,0x01,0x13,0xb0,0x01,0x15,0x4d,0xb0,0x00,0x12, +0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0xb0,0x05,0x2b,0xb0,0x00,0x13,0xb9,0x00,0x00,0xff,0xe0,0x38,0xb0,0x06,0x2b,0x1b,0x21,0x23,0x11,0x20,0x33,0x2f,0x59,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0x45,0x64,0x6a,0x23,0x45,0x64,0x69,0xb0,0x19,0x43,0x64,0x60,0x60,0xb0,0x0c,0x23,0x44,0x23,0x10,0x20,0xb0,0x0c,0xf0,0x2f,0xb0, +0x00,0x12,0x1b,0x21,0x21,0x20,0x8a,0x20,0x8a,0x52,0x58,0x11,0x33,0x1b,0x21,0x21,0x59,0x59,0x2d,0x2c,0x01,0x4b,0xb0,0xc8,0x51,0x58,0xb1,0x0b,0x0a,0x43,0x23,0x43,0x65,0x0a,0x59,0x2d,0x2c,0x00,0x4b,0xb0,0xc8,0x51,0x58,0x00,0xb1,0x0a,0x0b,0x43,0x23,0x43,0x0b,0x59,0x2d,0x2c,0x00,0xb0,0x0c,0x23,0x70,0xb1,0x01,0x0c,0x3e,0x01, +0xb0,0x0c,0x23,0x70,0xb1,0x02,0x0c,0x45,0x3a,0xb1,0x02,0x00,0x08,0x0d,0x2d,0x2c,0xb0,0x12,0x2b,0xb0,0x02,0x25,0x45,0xb0,0x02,0x25,0x45,0x6a,0xb0,0x40,0x8b,0x60,0xb0,0x02,0x25,0x23,0x44,0x21,0x21,0x21,0x2d,0x2c,0xb0,0x13,0x2b,0xb0,0x02,0x25,0x45,0xb0,0x02,0x25,0x45,0x6a,0xb8,0xff,0xc0,0x8c,0x60,0xb0,0x02,0x25,0x23,0x44, +0x21,0x21,0x21,0x2d,0x2c,0xb0,0x00,0xb0,0x12,0x2b,0x21,0x21,0x21,0x2d,0x2c,0xb0,0x00,0xb0,0x13,0x2b,0x21,0x21,0x21,0x2d,0x2c,0x01,0x4b,0xb0,0xc8,0x51,0x58,0xb0,0x06,0x43,0xb0,0x07,0x43,0x65,0x0a,0x59,0x2d,0x2c,0x20,0x69,0xb0,0x40,0x61,0xb0,0x00,0x8b,0x20,0xb1,0x2c,0xc0,0x8a,0x8c,0xb8,0x10,0x00,0x62,0x60,0x2b,0x0c,0x64, +0x23,0x64,0x61,0x5c,0x58,0xb0,0x03,0x61,0x59,0x2d,0x2c,0xb1,0x00,0x03,0x25,0x45,0x68,0x54,0xb0,0x1c,0x4b,0x50,0x5a,0x58,0xb0,0x03,0x25,0x45,0xb0,0x03,0x25,0x45,0x60,0x68,0x20,0xb0,0x04,0x25,0x23,0x44,0xb0,0x04,0x25,0x23,0x44,0x1b,0xb0,0x03,0x25,0x20,0x45,0x68,0x20,0x8a,0x23,0x44,0xb0,0x03,0x25,0x45,0x68,0x60,0xb0,0x03, +0x25,0x23,0x44,0x59,0x2d,0x2c,0xb0,0x03,0x25,0x20,0x45,0x68,0x20,0x8a,0x23,0x44,0xb0,0x03,0x25,0x45,0x64,0x68,0x65,0x60,0xb0,0x04,0x25,0xb0,0x01,0x60,0x23,0x44,0x2d,0x2c,0xb0,0x09,0x43,0x58,0x87,0x21,0xc0,0x1b,0xb0,0x12,0x43,0x58,0x87,0x45,0xb0,0x11,0x2b,0xb0,0x0d,0x23,0x44,0xb0,0x0d,0x7a,0xe4,0x1b,0x03,0x8a,0x45,0x18, +0x69,0x20,0xb0,0x0d,0x23,0x44,0x8a,0x8a,0x87,0x20,0xb0,0xa0,0x51,0x58,0xb0,0x11,0x2b,0xb0,0x0d,0x23,0x44,0xb0,0x0d,0x7a,0xe4,0x1b,0x21,0xb0,0x0d,0x7a,0xe4,0x59,0x59,0x59,0x18,0x2d,0x2c,0x20,0x8a,0x45,0x23,0x45,0x68,0x60,0x44,0x2d,0x2c,0x45,0x6a,0x42,0x2d,0x2c,0x01,0x18,0x2f,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0xb0, +0x04,0x25,0xb0,0x04,0x25,0x49,0x64,0x23,0x45,0x64,0x69,0xb0,0x40,0x8b,0x61,0x20,0xb0,0x80,0x62,0x6a,0xb0,0x02,0x25,0xb0,0x02,0x25,0x61,0x8c,0xb0,0x19,0x43,0x60,0xb0,0x0c,0x23,0x44,0x21,0x8a,0x10,0xb0,0x0c,0xf6,0x21,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0x01,0xb0,0x18,0x43,0x58,0xb0,0x02,0x25,0x45,0xb0,0x02,0x25,0x45, +0x64,0x60,0x6a,0xb0,0x03,0x25,0x45,0x6a,0x61,0x20,0xb0,0x04,0x25,0x45,0x6a,0x20,0x8a,0x8b,0x65,0xb0,0x04,0x25,0x23,0x44,0x8c,0xb0,0x03,0x25,0x23,0x44,0x21,0x21,0x1b,0x20,0x45,0x6a,0x44,0x20,0x45,0x6a,0x44,0x59,0x2d,0x2c,0x01,0x20,0x45,0xb0,0x00,0x55,0xb0,0x18,0x43,0x5a,0x58,0x45,0x68,0x23,0x45,0x69,0xb0,0x40,0x8b,0x61, +0x20,0xb0,0x80,0x62,0x6a,0x20,0x8a,0x23,0x61,0x20,0xb0,0x03,0x25,0x8b,0x65,0xb0,0x04,0x25,0x23,0x44,0x8c,0xb0,0x03,0x25,0x23,0x44,0x21,0x21,0x1b,0x21,0x21,0xb0,0x19,0x2b,0x59,0x2d,0x2c,0x01,0x8a,0x8a,0x45,0x64,0x23,0x45,0x64,0x61,0x64,0x42,0x2d,0x2c,0xb0,0x04,0x25,0xb0,0x04,0x25,0xb0,0x19,0x2b,0xb0,0x18,0x43,0x58,0xb0, +0x04,0x25,0xb0,0x04,0x25,0xb0,0x03,0x25,0xb0,0x1b,0x2b,0x01,0xb0,0x02,0x25,0x43,0xb0,0x40,0x54,0xb0,0x02,0x25,0x43,0xb0,0x00,0x54,0x5a,0x58,0xb0,0x03,0x25,0x20,0x45,0xb0,0x40,0x61,0x44,0x59,0xb0,0x02,0x25,0x43,0xb0,0x00,0x54,0xb0,0x02,0x25,0x43,0xb0,0x40,0x54,0x5a,0x58,0xb0,0x04,0x25,0x20,0x45,0xb0,0x40,0x60,0x44,0x59, +0x59,0x21,0x21,0x21,0x21,0x2d,0x2c,0xb0,0x03,0x25,0x20,0xb0,0x07,0x25,0x87,0x05,0x2e,0x23,0x20,0x8a,0xb0,0x04,0x25,0xb0,0x07,0x25,0xb0,0x14,0x2b,0x10,0x21,0xc4,0x21,0x2d,0x2c,0xc0,0x2d,0x2c,0x4b,0x52,0x58,0x45,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x58,0x3d,0xed,0x18,0x1b,0xed,0x59,0x2d,0x2c,0x4b,0x50,0x58, +0x45,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x01,0x18,0x4b,0x52,0x58,0x8a,0x2f,0xed,0x1b,0x21,0x21,0x21,0x59,0x2d,0x2c,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0xb0,0x03,0x25,0x45,0x68,0xb0,0x03,0x25,0x45,0x68,0xb0,0x03,0x25,0x60,0x54,0x58,0x21,0x21,0x21,0x1b,0xb0,0x02,0x25,0x45,0x68,0x60,0xb0,0x03,0x25,0x23,0x44,0x21,0x21,0x59, +0x1b,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x58,0x3d,0xcd,0x18,0x1b,0xcd,0x59,0x2d,0x2c,0x46,0x23,0x46,0x60,0x8a,0x8a,0x46,0x23,0x20,0x46,0x8a,0x60,0x8a,0x61,0xb8,0xff,0x80,0x62,0x23,0x20,0x10,0x23,0x8a,0xb1,0x0c,0x0c,0x8a,0x70,0x45,0x60,0x20,0xb0,0x00,0x50,0x58,0xb0,0x01,0x61,0xb8,0xff,0xba,0x8b,0x1b,0xb0,0x46, +0x8c,0x59,0xb0,0x10,0x60,0x68,0x01,0x3a,0x2d,0x2c,0x20,0x45,0xb0,0x03,0x25,0x46,0x52,0x4b,0xb0,0x13,0x51,0x5b,0x58,0xb0,0x02,0x25,0x46,0x20,0x68,0x61,0xb0,0x03,0x25,0xb0,0x03,0x25,0x3f,0x23,0x21,0x38,0x1b,0x21,0x11,0x59,0x2d,0x2c,0x20,0x45,0xb0,0x03,0x25,0x46,0x50,0x58,0xb0,0x02,0x25,0x46,0x20,0x68,0x61,0xb0,0x03,0x25, +0xb0,0x03,0x25,0x3f,0x23,0x21,0x38,0x1b,0x21,0x11,0x59,0x2d,0x2c,0x00,0x4b,0xb0,0xc8,0x51,0x58,0x00,0xb0,0x07,0x43,0xb0,0x06,0x43,0x0b,0x59,0x2d,0x2c,0x8a,0x10,0xec,0x2d,0x2c,0xb0,0x0c,0x43,0x58,0x21,0x1b,0x20,0x46,0xb0,0x00,0x52,0x58,0xb8,0xff,0xf0,0x38,0x1b,0xb0,0x10,0x38,0x59,0x59,0x2d,0x2c,0x20,0xb0,0x00,0x55,0x58, +0xb8,0x10,0x00,0x63,0xb0,0x03,0x25,0x45,0x64,0xb0,0x03,0x25,0x45,0x64,0x61,0xb0,0x00,0x53,0x58,0xb0,0x02,0x1b,0xb0,0x40,0x61,0xb0,0x03,0x59,0x25,0x45,0x69,0x53,0x58,0x45,0x44,0x1b,0x21,0x21,0x59,0x1b,0x21,0xb0,0x02,0x25,0x45,0xb0,0x02,0x25,0x45,0x61,0x64,0xb0,0x28,0x51,0x58,0x45,0x44,0x1b,0x21,0x21,0x59,0x59,0x2d,0x2c, +0x21,0x21,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x40,0x00,0x62,0x2d,0x2c,0x21,0xb0,0x80,0x51,0x58,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x20,0x00,0x62,0x1b,0xb2,0x00,0x40,0x2f,0x2b,0x59,0xb0,0x02,0x60,0x2d,0x2c,0x21,0xb0,0xc0,0x51,0x58,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x15,0x55,0x62,0x1b,0xb2,0x00,0x80,0x2f,0x2b,0x59,0xb0,0x02,0x60,0x2d, +0x2c,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x40,0x00,0x62,0x60,0x23,0x21,0x2d,0x2c,0x18,0x4b,0x53,0x58,0xb0,0x04,0x25,0xb0,0x04,0x25,0x49,0x64,0x23,0x45,0x64,0x69,0xb0,0x40,0x8b,0x61,0x20,0xb0,0x80,0x62,0x6a,0xb0,0x02,0x25,0xb0,0x02,0x25,0x61,0x8c,0xb0,0x0c,0x23,0x44,0x21,0x8a,0x10,0xb0,0x0c,0xf6,0x21,0x1b,0x21,0x8a,0x11,0x23, +0x12,0x20,0x39,0x2f,0x59,0x2d,0x2c,0xb0,0x02,0x25,0xb0,0x02,0x25,0x49,0x64,0xb0,0xc0,0x54,0x58,0xb8,0xff,0xf8,0x38,0xb0,0x08,0x38,0x1b,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x13,0x43,0x58,0x03,0x1b,0x02,0x59,0x2d,0x2c,0xb0,0x13,0x43,0x58,0x02,0x1b,0x03,0x59,0x2d,0x2c,0xb0,0x0a,0x2b,0x23,0x10,0x20,0x3c,0xb0,0x17,0x2b,0x2d,0x2c, +0xb0,0x02,0x25,0xb8,0xff,0xf0,0x38,0xb0,0x28,0x2b,0x8a,0x10,0x23,0x20,0xd0,0x23,0xb0,0x10,0x2b,0xb0,0x05,0x43,0x58,0xc0,0x1b,0x3c,0x59,0x20,0x10,0x11,0xb0,0x00,0x12,0x01,0x2d,0x2c,0xb0,0x48,0x2b,0x2d,0x2c,0x01,0xb0,0x02,0x25,0x10,0xd0,0x23,0xc9,0x01,0xb0,0x01,0x13,0xb0,0x00,0x14,0x10,0xb0,0x01,0x3c,0xb0,0x01,0x16,0x2d, +0x2c,0x01,0xb0,0x00,0x13,0xb0,0x01,0xb0,0x03,0x25,0x49,0xb0,0x03,0x17,0x38,0xb0,0x01,0x13,0x2d,0x2c,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0x20,0x45,0x8a,0x60,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x18,0x4b,0x53,0x58,0xb0,0x04,0x25,0xb0,0x04,0x25,0x49,0x64,0xb0,0x03,0x25,0xb0,0x03,0x25,0x49,0x64,0x68,0xb0,0x40,0x8b,0x61,0x20, +0xb0,0x80,0x62,0x6a,0xb0,0x02,0x25,0xb0,0x02,0x25,0x61,0x8c,0xb0,0x0c,0x23,0x44,0x21,0xb0,0x04,0x25,0x10,0x23,0xb0,0x0c,0xf6,0x1b,0xb0,0x04,0x25,0xb0,0x04,0x25,0x11,0x12,0x23,0x20,0x39,0x2f,0x59,0xcc,0x21,0x21,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0xb0,0x05,0x25,0x46,0x23,0x45,0x64,0x61,0x1b,0x21,0xb0,0x04,0x25,0xb0, +0x04,0x25,0x4a,0x59,0xb0,0x0e,0x23,0x44,0x23,0x10,0xb0,0x0e,0xec,0x23,0x10,0xb0,0x0e,0xec,0x2d,0x2c,0xb0,0x1b,0x43,0x58,0x20,0xb0,0x01,0x60,0x45,0xb0,0x00,0x51,0x58,0x20,0xb0,0x01,0x60,0x20,0x45,0x20,0x68,0xb0,0x00,0x55,0x58,0xb0,0x20,0x60,0x44,0x21,0x1b,0x21,0x21,0x21,0x59,0x1b,0x20,0xb0,0x01,0x60,0x20,0x45,0x20,0x68, +0xb0,0x00,0x55,0x58,0xb8,0xff,0xe0,0x60,0x44,0xb0,0x1c,0x4b,0x50,0x58,0x20,0x45,0xb0,0x20,0x60,0x44,0x1b,0x21,0x59,0x1b,0x21,0x21,0x21,0x59,0x59,0x1b,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x25,0x46,0x20,0x68,0x61,0xb0,0x03,0x25,0xb0,0x03,0x25,0x3f,0x23,0x21,0x38,0x2d,0x2c,0x46,0x23,0x46,0x60,0x8a,0x8a,0x46,0x23,0x20,0x46,0x8a, +0x60,0x8a,0x61,0xb8,0xff,0x80,0x62,0x23,0x20,0x10,0x23,0x8a,0xb1,0x0c,0x0c,0x8a,0x70,0x45,0x60,0x20,0xb0,0x00,0x50,0x58,0xb0,0x01,0x61,0xb8,0xff,0x80,0x8b,0x1b,0xb0,0x81,0x8c,0x59,0x68,0x3a,0x2d,0x2c,0xb0,0x40,0x2a,0x21,0x2d,0x2c,0x20,0x35,0xb0,0x01,0x60,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0x4b,0x53,0x23,0x4b,0x51,0x5a, +0x58,0x38,0x1b,0x21,0x21,0x59,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0x49,0xb0,0x0e,0x23,0x44,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0x20,0x45,0x8a,0x60,0x44,0x1b,0x21,0x21,0x59,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0x20,0x45,0x8a,0x60,0x44,0x1b,0x21, +0x21,0x59,0x2d,0x2c,0x4b,0x54,0x58,0x20,0x45,0x8a,0x60,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0x38,0x1b,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x00,0x21,0x4b,0x54,0x58,0x38,0x1b,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0xb0,0x46,0x2b,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43, +0x54,0x58,0xb0,0x47,0x2b,0x1b,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0xb0,0x48,0x2b,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0xb0,0x49,0x2b,0x1b,0x21,0x21,0x21,0x59,0x2d,0x2c,0x00,0xb0,0x02,0x25,0x20,0x11,0x49,0xb0,0x00,0x51,0x58,0xb8,0xff,0xc0,0x38,0x1b,0x21,0x59,0x2d,0x2c,0x00, +0xb0,0x02,0x25,0x20,0x11,0x49,0xb0,0x00,0x53,0x58,0xb0,0x40,0x38,0x1b,0x21,0x59,0x2d,0x2c,0x4b,0x52,0x58,0x7d,0x1b,0x7a,0x59,0x2d,0x2c,0xb1,0x02,0x01,0x42,0xb1,0x23,0x01,0x88,0x51,0xb1,0x40,0x01,0x88,0x53,0x5a,0x58,0xb1,0x02,0x00,0x42,0xb9,0x10,0x00,0x00,0x20,0x88,0x54,0x58,0xb2,0x02,0x01,0x02,0x43,0x60,0x42,0x59,0xb1, +0x24,0x01,0x88,0x51,0x58,0xb9,0x20,0x00,0x00,0x40,0x88,0x54,0x58,0xb2,0x02,0x02,0x02,0x43,0x60,0x42,0xb1,0x24,0x01,0x88,0x54,0x58,0xb2,0x02,0x20,0x02,0x43,0x60,0x42,0x00,0x4b,0x01,0x4b,0x52,0x58,0xb2,0x02,0x08,0x02,0x43,0x60,0x42,0x59,0x1b,0xb9,0x40,0x00,0x00,0x80,0x88,0x54,0x58,0xb2,0x02,0x04,0x02,0x43,0x60,0x42,0x59, +0xb9,0x40,0x00,0x00,0x80,0x63,0xb8,0x01,0x00,0x88,0x54,0x58,0xb2,0x02,0x08,0x02,0x43,0x60,0x42,0x59,0xb9,0x40,0x00,0x01,0x00,0x63,0xb8,0x02,0x00,0x88,0x54,0x58,0xb2,0x02,0x10,0x02,0x43,0x60,0x42,0x59,0xb1,0x26,0x01,0x88,0x51,0x58,0xb9,0x40,0x00,0x02,0x00,0x63,0xb8,0x04,0x00,0x88,0x54,0x58,0xb2,0x02,0x40,0x02,0x43,0x60, +0x42,0x59,0xb9,0x40,0x00,0x04,0x00,0x63,0xb8,0x08,0x00,0x88,0x54,0x58,0xb2,0x02,0x80,0x02,0x43,0x60,0x42,0x59,0x59,0x59,0x59,0x59,0x59,0xb1,0x00,0x02,0x43,0x54,0x58,0x40,0x0a,0x05,0x40,0x08,0x40,0x09,0x40,0x0c,0x02,0x0d,0x02,0x1b,0xb1,0x01,0x02,0x43,0x54,0x58,0xb2,0x05,0x40,0x08,0xba,0x01,0x00,0x00,0x09,0x01,0x00,0xb3, +0x0c,0x01,0x0d,0x01,0x1b,0xb1,0x80,0x02,0x43,0x52,0x58,0xb2,0x05,0x40,0x08,0xb8,0x01,0x80,0xb1,0x09,0x40,0x1b,0xb2,0x05,0x40,0x08,0xba,0x01,0x80,0x00,0x09,0x01,0x40,0x59,0xb9,0x40,0x00,0x00,0x80,0x88,0x55,0xb9,0x40,0x00,0x02,0x00,0x63,0xb8,0x04,0x00,0x88,0x55,0x5a,0x58,0xb3,0x0c,0x00,0x0d,0x01,0x1b,0xb3,0x0c,0x00,0x0d, +0x01,0x59,0x59,0x59,0x42,0x42,0x42,0x42,0x42,0x2d,0x2c,0xb0,0x80,0xb0,0x02,0x43,0x50,0xb0,0x01,0xb0,0x02,0x43,0x54,0x5b,0xb0,0x10,0x4b,0x51,0x5a,0x58,0x21,0x23,0x10,0xb0,0x20,0x1a,0xc9,0x1b,0x8a,0x10,0xed,0x59,0x2d,0x2c,0xb0,0x59,0x2b,0x2d,0x2c,0x8a,0x10,0xe5,0x2d,0x2c,0x20,0x45,0x69,0x44,0x2d,0x2c,0xb1,0x25,0x01,0x88, +0x50,0x58,0xb9,0x40,0x00,0x02,0x00,0x63,0xb8,0x04,0x00,0x88,0x54,0x5c,0xb0,0x14,0x4b,0x52,0x5b,0x1b,0xb0,0x01,0x59,0x2d,0xb9,0x00,0x20,0x01,0x3e,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x3c,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x34,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x32,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01, +0x2f,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x2e,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x2c,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x0c,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x04,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x03,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x01,0x40,0xfb,0x09,0x18,0x01,0x4a,0x20,0xff,0x09, +0x18,0x01,0x4a,0x20,0xfe,0x09,0x18,0x01,0x4a,0x20,0xfc,0x09,0x18,0x01,0x4a,0x20,0xf3,0x09,0x18,0x01,0x4a,0x20,0xf1,0x09,0x18,0x01,0x4a,0x20,0xf0,0x09,0x18,0x01,0x4a,0x20,0xef,0x09,0x18,0x01,0x4a,0x20,0xed,0x09,0x18,0x01,0x4a,0x20,0xea,0x09,0x18,0x01,0x4a,0x20,0xdc,0x09,0x18,0x01,0x4a,0x20,0xda,0x09,0x18,0x01,0x4a,0x20, +0xd8,0x09,0x18,0x01,0x4a,0x20,0xd3,0x09,0x18,0x01,0x4a,0x20,0xcd,0x09,0x18,0x01,0x4a,0x20,0xcc,0x09,0x18,0x01,0x4a,0x20,0xca,0x09,0x18,0x01,0x4a,0x20,0xc9,0x09,0x18,0x01,0x4a,0x20,0xc8,0x09,0x18,0x01,0x4a,0x20,0xc6,0x09,0x18,0x01,0x4a,0x20,0xc4,0x09,0x18,0x01,0x4a,0x20,0xc2,0x09,0x18,0x01,0x4a,0x20,0xc0,0x09,0x18,0x01, +0x4a,0x20,0xbd,0x09,0x18,0x01,0x4a,0x20,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb1,0x09,0x18,0x01,0x4a,0x20,0xaf,0x09,0x18,0x01,0x4a,0x20,0x8c,0x09,0x18,0x01,0x4a,0x20,0x8b,0x09,0x18,0x01,0x4a,0x20,0x8a,0x09,0x18,0x01,0x4a,0x20,0x89,0x09,0x18,0x01,0x4a,0x20,0x38,0x09,0x18,0x01,0x4a,0x20,0x37,0x09,0x18,0x01,0x4a,0x20,0x84,0x09, +0x18,0x01,0x4a,0x20,0x83,0x09,0x18,0x01,0x4a,0x20,0x7f,0x09,0x18,0x01,0x4a,0x20,0x7e,0x09,0x18,0x01,0x4a,0x20,0x7d,0x09,0x18,0x01,0x4a,0x20,0x62,0x09,0x18,0x01,0x4a,0x20,0x50,0x09,0x18,0x01,0x4a,0x20,0x48,0x09,0x18,0x01,0x4a,0x20,0x0e,0x09,0x18,0x01,0x4a,0x2f,0xbe,0x04,0xed,0x00,0x01,0x00,0x4f,0x04,0xec,0x00,0x01,0x00, +0x40,0x04,0xeb,0x40,0x61,0x09,0x0d,0x39,0xdf,0xe0,0x16,0x17,0x1c,0xd4,0xd5,0x16,0x17,0x1c,0x7b,0x7c,0x16,0x1b,0x7b,0x7c,0x19,0xd1,0xd2,0x16,0x17,0x1c,0x76,0x77,0x16,0x17,0x1c,0x6d,0x70,0x16,0x17,0x1c,0x6c,0x6f,0x16,0x17,0x1c,0x6b,0x6e,0x16,0x1b,0x6b,0x6e,0x7f,0x72,0x1a,0x74,0x75,0x14,0x15,0x1c,0x67,0x6a,0x14,0x15,0x1c, +0x66,0x69,0x14,0x15,0x1c,0x65,0x68,0x14,0x1b,0x65,0x68,0x85,0x71,0x1a,0x19,0x73,0x16,0x7a,0x43,0x19,0x21,0x79,0x43,0x19,0x21,0x3b,0x39,0x00,0x2b,0x3a,0x39,0x00,0x2b,0x39,0x95,0x48,0x1f,0x2f,0xbc,0x04,0xe6,0x00,0x2f,0x05,0x03,0x00,0x02,0x05,0x03,0xb3,0x13,0xff,0x1f,0xe0,0xbe,0x04,0xf7,0x00,0x01,0x00,0xe0,0x04,0xf7,0x00, +0x01,0x00,0x20,0x04,0xf0,0xb3,0x0d,0x11,0x39,0x40,0xb8,0x04,0xea,0xb2,0x0b,0x14,0x39,0xb9,0xff,0xc0,0x04,0xef,0xb3,0x1b,0x22,0x39,0x3f,0x41,0x0d,0x04,0xf4,0x00,0x01,0x00,0x8f,0x04,0xf3,0x00,0x01,0x00,0x30,0x04,0xf3,0x00,0x01,0x00,0x30,0x04,0xef,0x00,0x01,0x00,0x40,0x04,0xe8,0xb3,0x0b,0x10,0x39,0x30,0xbd,0x01,0x55,0x00, +0x01,0x00,0x80,0x01,0x55,0x00,0x01,0x01,0x54,0xb3,0x95,0x24,0x1f,0x3f,0xbf,0x01,0x42,0x00,0x01,0x00,0x0f,0x01,0x41,0x00,0xa0,0x01,0x41,0x00,0x02,0xff,0xe0,0xb4,0xf1,0x29,0x2b,0x39,0x40,0xb8,0x01,0x40,0xb3,0x3d,0x43,0x39,0x40,0xb8,0x01,0x40,0xb3,0x24,0x28,0x39,0x40,0xb8,0x01,0x3f,0xb3,0x2c,0x2f,0x39,0x40,0xb8,0x01,0x3f, +0xb3,0x17,0x1c,0x39,0x40,0xb8,0x01,0x3d,0x40,0x16,0x26,0x2b,0x39,0xe6,0xe7,0x03,0x2b,0x40,0xe7,0x2c,0x2e,0x39,0x40,0xe7,0x1b,0x1c,0x39,0x40,0x54,0x1f,0x1f,0x39,0xb8,0xff,0xc0,0x40,0x16,0xcb,0x23,0x23,0x39,0x40,0xd9,0x29,0x2a,0x39,0x53,0x52,0x02,0x2b,0x52,0xe2,0x02,0x2b,0x20,0xb0,0x0b,0x0d,0x39,0xb9,0x01,0x02,0x01,0x01, +0x40,0x1b,0x02,0x2b,0xfd,0xfc,0x0a,0x2b,0xfb,0xaf,0x05,0x2b,0xf2,0xe2,0x02,0x2b,0xc3,0xc5,0x02,0x2b,0x40,0xda,0x17,0x19,0x39,0xdb,0xe2,0x02,0x2b,0xb8,0xff,0xc0,0xb3,0xe2,0x30,0x31,0x39,0xb8,0xff,0xc0,0x40,0x11,0xe2,0x1d,0x1e,0x39,0x40,0xd6,0x17,0x17,0x39,0xeb,0xbe,0x02,0x2b,0xbe,0x9a,0x02,0x2b,0xb8,0x01,0x84,0xb2,0x99, +0x0a,0x2b,0xb8,0x01,0x81,0xb2,0x99,0x0a,0x2b,0xb8,0x01,0x80,0xb2,0x99,0x0a,0x2b,0xb8,0x01,0x7f,0x40,0x0f,0x99,0x0a,0x2b,0x9b,0x99,0x0a,0x2b,0x99,0x9a,0x02,0x2b,0x9a,0x95,0x05,0x2b,0xb8,0xff,0xe0,0xb7,0xee,0x14,0x16,0x39,0x92,0x91,0x03,0x2b,0xb8,0xff,0xe0,0x40,0x0c,0xf4,0x13,0x16,0x39,0xec,0x95,0x04,0x2b,0x91,0x95,0x24, +0x1f,0xb8,0xff,0xe0,0x40,0x0b,0x63,0x18,0x19,0x39,0x66,0x63,0x01,0x96,0x95,0x02,0x2b,0xb8,0xff,0xe0,0x40,0x0c,0x95,0x25,0x28,0x39,0x38,0x37,0x00,0x2b,0x37,0x84,0xff,0x1f,0xb8,0x01,0x01,0xb6,0x7d,0x02,0x2b,0xfc,0xdb,0x0a,0x2b,0xb9,0x01,0x3e,0x01,0x3c,0xb2,0x02,0x2b,0x40,0xb8,0x01,0x3c,0xb2,0x1f,0x24,0x39,0xb8,0x01,0x2f, +0xb2,0x7d,0x03,0x2b,0xb8,0x01,0x2e,0xb3,0x84,0x03,0x2b,0xd0,0xb8,0x01,0x2c,0xb5,0x01,0x40,0xd8,0x17,0x19,0x39,0xb8,0xff,0xc0,0x40,0x09,0xc4,0x22,0x25,0x39,0x40,0xc2,0x17,0x17,0x39,0xb8,0xff,0xc0,0xb3,0xc0,0x1a,0x1b,0x39,0xb8,0xff,0xc0,0xb7,0xc0,0x10,0x12,0x39,0xcd,0xcc,0x03,0x2b,0xb8,0xff,0xc0,0xb7,0xc9,0x23,0x23,0x39, +0xca,0xc8,0x03,0x2b,0xb8,0xff,0xc0,0x40,0x16,0xf0,0x0b,0x0d,0x39,0xea,0x7e,0x02,0x2b,0x30,0x62,0x0c,0x0c,0x06,0x43,0xb1,0xaf,0x02,0x2b,0xaf,0x7e,0x02,0x2b,0xb8,0xff,0xc0,0xb3,0xd3,0x0f,0x12,0x39,0xb8,0xff,0xc0,0xb3,0xbd,0x27,0x28,0x39,0xbc,0x01,0x86,0x00,0x89,0x01,0x00,0x00,0x2b,0x01,0x85,0xb2,0x8a,0x0a,0x2b,0xb8,0xff, +0xc0,0x40,0x1c,0x8c,0x1e,0x1e,0x39,0x89,0x8a,0x04,0x2b,0x8a,0x84,0x0a,0x2b,0x8b,0x84,0x03,0x2b,0x81,0x7f,0x01,0x2b,0x7d,0x7e,0x04,0x2b,0x7e,0x84,0x03,0x2b,0xb8,0xff,0xe0,0x40,0x41,0x62,0x18,0x19,0x39,0x62,0x84,0x01,0x2b,0x88,0x84,0x01,0x2b,0x87,0x84,0x01,0x2b,0x85,0x84,0x01,0x2b,0x83,0x84,0x04,0x2b,0xe9,0x84,0xf9,0x84, +0x02,0x69,0x84,0x01,0x27,0x84,0x01,0x1b,0x37,0x15,0x18,0x36,0x15,0x15,0x35,0x15,0x12,0x34,0x15,0x0f,0x33,0x15,0x0c,0x32,0x15,0x09,0x31,0x15,0x06,0x30,0x15,0x03,0x2f,0x15,0x00,0x2e,0x15,0x41,0x26,0x01,0x4a,0x01,0x4b,0x00,0x15,0x00,0x50,0x01,0x4c,0x00,0x01,0x00,0x70,0x01,0x4a,0x00,0x01,0x01,0x3a,0x01,0x3b,0x00,0x0f,0x01, +0x38,0x01,0x39,0x00,0x0e,0x01,0x36,0x01,0x37,0x00,0x0e,0x00,0x0b,0x01,0x38,0x00,0x3b,0x01,0x38,0x00,0x4b,0x01,0x38,0x00,0xcb,0x01,0x38,0x00,0x04,0x00,0x0b,0x01,0x36,0x00,0x3b,0x01,0x36,0x00,0x5b,0x01,0x36,0x00,0x03,0x00,0x10,0x01,0x3a,0x00,0x01,0x01,0x06,0xb2,0x03,0xff,0x1f,0x41,0x21,0x01,0x0a,0x01,0x0b,0x00,0x0f,0x01, +0x08,0x01,0x09,0x00,0x0e,0x01,0x06,0x01,0x07,0x00,0x0e,0x00,0x6b,0x01,0x08,0x00,0x01,0x00,0x0b,0x01,0x08,0x00,0x3b,0x01,0x08,0x00,0x4b,0x01,0x08,0x00,0xbb,0x01,0x08,0x00,0xeb,0x01,0x08,0x00,0xfb,0x01,0x08,0x00,0x06,0x00,0x0b,0x01,0x0a,0x00,0x5b,0x01,0x0a,0x00,0x8b,0x01,0x0a,0x00,0x03,0x01,0x06,0x40,0x22,0x03,0xff,0x1f, +0x26,0x27,0x0e,0x28,0x27,0x0f,0x35,0x36,0x0e,0x33,0x36,0x0f,0x2a,0x2b,0x0e,0x2c,0x2b,0x0f,0x22,0x23,0x0e,0x24,0x23,0x0f,0x1e,0x1f,0x0e,0x20,0x1f,0x0f,0x00,0xbf,0x01,0x31,0x00,0x10,0x01,0x31,0x00,0x20,0x01,0x31,0x00,0x03,0x00,0x00,0x01,0x30,0x40,0x80,0x01,0x70,0x2a,0xe0,0x2a,0x02,0x00,0x3c,0x01,0x10,0x24,0x40,0x24,0x70, +0x24,0xa0,0x24,0x04,0x0f,0x10,0x11,0x0c,0x09,0x0a,0x0b,0x0c,0x06,0x07,0x08,0x0c,0x03,0x04,0x05,0x0c,0x00,0x01,0x02,0x0c,0x26,0x06,0x1c,0x1f,0x06,0x03,0x18,0x1f,0x0f,0x03,0x3f,0x03,0xdf,0x03,0x03,0x9f,0x00,0xdf,0x00,0x02,0x0f,0x17,0x1f,0x17,0x2f,0x17,0x03,0x0f,0x14,0x1f,0x14,0x2f,0x14,0x03,0x1b,0x01,0x1d,0x0d,0x18,0x07, +0x1a,0x0d,0x15,0x10,0x17,0x0d,0x12,0x04,0x14,0x0d,0x2f,0x1b,0x01,0x2c,0x3c,0x2a,0x3c,0x28,0x3c,0x26,0x3c,0x24,0x3c,0x22,0x3c,0x20,0x3c,0x1e,0x3c,0x1b,0x3c,0x18,0x3c,0x15,0x3c,0x12,0x3c,0x0f,0x3c,0x09,0x3c,0x06,0x3c,0x03,0x3c,0x00,0x3c,0x50,0x33,0x54,0x01,0xb0,0x12,0x4b,0x00,0x4b,0x54,0x42,0xb0,0x13,0x01,0x4b,0x00,0x4b, +0x53,0x42,0xb0,0x33,0x2b,0x4b,0xb8,0x03,0x20,0x52,0xb0,0x32,0x2b,0x4b,0xb0,0x09,0x50,0x5b,0x58,0xb1,0x01,0x01,0x8e,0x59,0xb0,0x33,0x2b,0xb0,0x02,0x88,0xb8,0x01,0x00,0x54,0xb0,0x04,0x88,0xb8,0x02,0x00,0x54,0xb0,0x12,0x43,0x5a,0x5b,0x58,0xb8,0x01,0x19,0xb1,0x01,0x01,0x8e,0x85,0x1b,0xb9,0x00,0x01,0x01,0x00,0xb0,0x4b,0x60, +0x85,0x8d,0x59,0x2b,0x2b,0x1d,0xb0,0x64,0x4b,0x53,0x58,0xb0,0x80,0x1d,0x59,0xb0,0x32,0x4b,0x53,0x58,0xb0,0x90,0x1d,0x59,0x00,0x4b,0xb0,0x32,0x51,0xb0,0x1b,0x23,0x42,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x73,0x2b,0x2b,0x2b,0x2b,0x73,0x73,0x73,0x73,0x2b,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x73,0x73,0x73,0x73,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0xb1,0x28,0x26,0x45,0xb0,0x2a,0x45,0x61,0xb0,0x2c,0x45,0x60,0x44,0x2b,0x2b,0x2b,0x73,0x73,0x74,0xb8,0x01,0x06,0x45,0x69,0xb8,0x01,0x0a,0x45,0x69,0x61,0xb8,0x01,0x0a,0x23,0x44,0xb8,0x01,0x08,0x45,0x69,0xb8,0x01,0x0a,0x45,0x60,0xb8,0x01,0x08,0x23, +0x44,0x2b,0x2b,0x2b,0x2b,0x73,0x73,0x73,0xb8,0x01,0x3a,0x45,0x69,0xb8,0x01,0x38,0x45,0x69,0x60,0xb8,0x01,0x38,0x23,0x44,0xb8,0x01,0x3a,0x45,0x69,0xb8,0x01,0x36,0x45,0x69,0x60,0xb8,0x01,0x36,0x23,0x44,0x2b,0x2b,0x2b,0x73,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x01,0x73,0x74,0x75,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x2b,0x2b,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x73,0x73,0x2b,0x73,0x74,0x2b,0x73,0x73,0x73,0x73,0x2b,0x2b,0x2b,0x73,0x74,0x2b,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0xb0,0x18,0xb0,0x3f,0x4b,0x53,0x42,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x73,0x73,0xb1, +0x09,0x32,0x2b,0x4b,0xb0,0x50,0x52,0x42,0x4b,0xb0,0x08,0x52,0x4b,0xb0,0x08,0x50,0x5b,0xb0,0x1a,0x23,0x42,0x4b,0xb0,0xc8,0x52,0x4b,0xb0,0x36,0x50,0x5b,0xb0,0x0c,0x23,0x42,0xb1,0x00,0x02,0x43,0x54,0xb1,0x02,0x02,0x43,0x54,0xb1,0x06,0x02,0x43,0x54,0x5b,0x5b,0x58,0x41,0x15,0x01,0x3e,0x00,0x64,0x01,0x3c,0x00,0x64,0x01,0x34, +0x00,0x64,0x01,0x32,0x00,0x64,0x01,0x2f,0x00,0x64,0x01,0x2e,0x00,0x64,0x01,0x2c,0x00,0x64,0x01,0x0c,0x00,0x64,0x01,0x04,0x00,0x64,0x01,0x03,0x00,0x64,0x01,0x01,0x40,0x4f,0x64,0xff,0x64,0xfe,0x64,0xfc,0x64,0xf3,0x64,0xf1,0x64,0xf0,0x64,0xef,0x64,0xed,0x64,0xea,0x64,0xdc,0x64,0xda,0x64,0xd8,0x64,0xd3,0x64,0xcd,0x64,0xcc, +0x64,0xca,0x64,0xc9,0x64,0xc8,0x64,0xc6,0x64,0xc4,0x64,0xc2,0x64,0xc0,0x64,0xbd,0x64,0xb4,0x64,0xb1,0x64,0xaf,0x64,0x8c,0x64,0x8b,0x64,0x8a,0x64,0x89,0x64,0x84,0x64,0x83,0x64,0x7f,0x64,0x7e,0x64,0x7d,0x64,0x62,0x64,0x50,0x64,0x48,0x64,0x0e,0x64,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x59,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x05,0xec,0x00,0x16,0x00,0x00,0x05,0x9a,0x00,0x18,0x00,0x00,0x05,0x9a,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0xff,0xe8, +0xff,0x89,0x00,0x00,0xff,0xe8,0xff,0x89,0x00,0x00,0xff,0xe8,0xfe,0x4e,0xfe,0x29,0xff,0xf5,0x00,0x00,0x05,0x9a,0x00,0x00,0xfe,0xba,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xcd,0xff,0xed,0x05,0xa1,0x00,0x0d,0x02,0x48,0xff,0xeb,0x03,0x59,0x00,0x0d,0x00,0x00,0xff,0xeb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xed,0x04,0x33,0x00,0x12,0x00,0xa4,0x00,0xab,0x00,0x8b,0x00,0x81,0x00,0x77,0xfe,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x71,0x00,0x80, +0x00,0x62,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd6,0x00,0xd6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x00,0xa8,0x00,0x91,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0x00,0xa4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0x00,0xa4,0x00,0x9b,0x00,0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x00,0x8c,0x00,0x00, +0x00,0x00,0x00,0x8a,0x00,0x83,0x00,0x00,0x00,0x00,0x00,0x94,0x00,0x8a,0x00,0xa4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0xe0,0x00,0xa0,0x00,0xe4,0x01,0xbe, +0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86,0x00,0x86,0x00,0x00,0x00,0xc5,0x00,0xc3,0x00,0x81,0x00,0x4a,0x00,0x5a,0x00,0x51,0x05,0xdb,0x05,0xdb,0x00,0x86,0x00,0x58,0x00,0x90,0x00,0x58,0x00,0x8a,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xcf, +0x00,0x00,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x78,0x00,0x77,0x00,0x7a,0x00,0x61,0x00,0x7a,0x00,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x81,0x00,0x6b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x6d,0x00,0x00,0x00,0x00,0x00,0x92,0x00,0x81,0x00,0x92,0x00,0x8b,0x00,0xa0,0x00,0x97,0x01,0xd3,0x00,0x4c,0x00,0x74,0x00,0x64, +0x00,0xa8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x23,0x00,0xc9,0x00,0x6a,0x00,0x6d,0x00,0x4c,0x00,0x61,0x00,0x69,0x00,0xc8,0x00,0xa2,0x00,0x80,0x00,0x7e,0x00,0x6b,0x05,0x9a,0x00,0x11,0x02,0x24,0x00,0x11,0x03,0x00,0xff,0xef,0x00,0x81,0x00,0x67,0x00,0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8f,0x00,0x63,0x00,0x96,0x00,0xc0,0xfe,0xbc,0xfe,0xf2,0x00,0x64,0x00,0x64, +0x00,0x76,0x00,0x7c,0x02,0xf6,0x00,0x0d,0x02,0x00,0x00,0x0d,0x04,0x96,0xff,0xf3,0x00,0x54,0x00,0x46,0x00,0x6a,0x00,0x6b,0x00,0x4c,0x07,0x69,0xfe,0x31,0x00,0xe4,0x00,0xbc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xcd,0x00,0x11,0x06,0xa0,0x00,0x00,0xff,0xed,0xfe,0x00,0x00,0xaa,0x00,0xb6,0x00,0x6c,0x00,0x00, +0x00,0xaa,0x00,0xb8,0x00,0x6c,0x00,0xbb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xfe,0x63,0xfd,0x6d, +0xfd,0x76,0xff,0x82,0xff,0x83,0x05,0xe9,0x05,0xe3,0x04,0xbe,0x04,0xec,0x03,0x64,0x04,0x19,0x00,0x6e,0x00,0x7f,0x00,0x8c,0x00,0x9b,0x00,0xa7,0x00,0x6e,0x00,0x7f,0x00,0x91,0x00,0xa0,0x00,0xa8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0xbc,0x00,0x94,0x00,0x94,0xff,0x85,0xff,0xae,0x00,0x52,0x00,0x29,0x06,0x14,0x00,0xae,0x00,0x46,0x00,0x46,0xfe,0x58, +0x05,0x60,0x00,0x8f,0x00,0x85,0x00,0x85,0x00,0x5c,0x00,0x54,0x00,0x46,0x00,0xa7,0x00,0x98,0x00,0x58,0x00,0xe1,0x00,0x9e,0x00,0x4b,0x00,0x69,0x00,0xb4,0xff,0xe8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0x00,0x64,0x00,0xe1,0x00,0x5a,0x00,0x4b,0x00,0x00,0x05,0x4e,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0xbe,0x00,0x00,0x01,0x0a,0x00,0x00,0x02,0x3e,0x00,0x00,0x03,0x84,0x00,0x00,0x04,0xd2,0x00,0x00,0x06,0xca,0x00,0x00,0x06,0xf2,0x00,0x00,0x07,0x66,0x00,0x00,0x07,0xe2,0x00,0x00,0x08,0x8e,0x00,0x00,0x09,0x08,0x00,0x00,0x09,0x6a, +0x00,0x00,0x09,0xa2,0x00,0x00,0x09,0xea,0x00,0x00,0x0a,0x22,0x00,0x00,0x0a,0xa6,0x00,0x00,0x0a,0xf8,0x00,0x00,0x0b,0xb0,0x00,0x00,0x0c,0x9c,0x00,0x00,0x0d,0x28,0x00,0x00,0x0d,0xe8,0x00,0x00,0x0e,0xc4,0x00,0x00,0x0f,0x3a,0x00,0x00,0x10,0x66,0x00,0x00,0x11,0x42,0x00,0x00,0x11,0xca,0x00,0x00,0x12,0x6a,0x00,0x00,0x12,0xda, +0x00,0x00,0x13,0x36,0x00,0x00,0x13,0xa6,0x00,0x00,0x14,0x80,0x00,0x00,0x15,0xfc,0x00,0x00,0x17,0x10,0x00,0x00,0x18,0x52,0x00,0x00,0x19,0x3e,0x00,0x00,0x1a,0x18,0x00,0x00,0x1a,0xb8,0x00,0x00,0x1b,0x4c,0x00,0x00,0x1c,0x58,0x00,0x00,0x1d,0x00,0x00,0x00,0x1d,0x28,0x00,0x00,0x1d,0xc6,0x00,0x00,0x1e,0xa4,0x00,0x00,0x1f,0x4a, +0x00,0x00,0x20,0x64,0x00,0x00,0x21,0x58,0x00,0x00,0x22,0x42,0x00,0x00,0x23,0x18,0x00,0x00,0x23,0xd0,0x00,0x00,0x25,0x02,0x00,0x00,0x26,0x66,0x00,0x00,0x27,0x0a,0x00,0x00,0x27,0xbc,0x00,0x00,0x28,0xbe,0x00,0x00,0x2a,0x6c,0x00,0x00,0x2b,0x84,0x00,0x00,0x2c,0x28,0x00,0x00,0x2c,0xfe,0x00,0x00,0x2d,0x5c,0x00,0x00,0x2d,0x90, +0x00,0x00,0x2d,0xea,0x00,0x00,0x2e,0x3a,0x00,0x00,0x2e,0x64,0x00,0x00,0x2e,0x9c,0x00,0x00,0x2f,0xaa,0x00,0x00,0x30,0xa2,0x00,0x00,0x31,0x70,0x00,0x00,0x32,0x66,0x00,0x00,0x33,0x6e,0x00,0x00,0x34,0x38,0x00,0x00,0x35,0x74,0x00,0x00,0x36,0x46,0x00,0x00,0x36,0xce,0x00,0x00,0x37,0x8a,0x00,0x00,0x38,0x5a,0x00,0x00,0x38,0xac, +0x00,0x00,0x39,0xe8,0x00,0x00,0x3a,0xba,0x00,0x00,0x3b,0x98,0x00,0x00,0x3c,0x90,0x00,0x00,0x3d,0x82,0x00,0x00,0x3e,0x16,0x00,0x00,0x3f,0x38,0x00,0x00,0x3f,0xfa,0x00,0x00,0x40,0xd6,0x00,0x00,0x41,0x8a,0x00,0x00,0x42,0xc4,0x00,0x00,0x43,0xf8,0x00,0x00,0x44,0xe4,0x00,0x00,0x45,0xb8,0x00,0x00,0x46,0x6c,0x00,0x00,0x46,0x9a, +0x00,0x00,0x47,0x54,0x00,0x00,0x47,0xde,0x00,0x00,0x48,0x1a,0x00,0x00,0x49,0xee,0x00,0x00,0x4a,0x06,0x00,0x00,0x4a,0x34,0x00,0x00,0x4a,0x62,0x00,0x00,0x4a,0x98,0x00,0x00,0x4a,0xca,0x00,0x00,0x4a,0xf8,0x00,0x00,0x4b,0x26,0x00,0x00,0x4b,0x56,0x00,0x00,0x4b,0x88,0x00,0x00,0x4b,0xb8,0x00,0x00,0x4b,0xec,0x00,0x00,0x4c,0x04, +0x00,0x00,0x4c,0x32,0x00,0x00,0x4c,0x60,0x00,0x00,0x4c,0x90,0x00,0x00,0x4c,0xc2,0x00,0x00,0x4c,0xee,0x00,0x00,0x4d,0x1a,0x00,0x00,0x4d,0x4a,0x00,0x00,0x4d,0x7e,0x00,0x00,0x4d,0xae,0x00,0x00,0x4d,0xde,0x00,0x00,0x4e,0x0c,0x00,0x00,0x4e,0x3a,0x00,0x00,0x4e,0x6c,0x00,0x00,0x4e,0x9a,0x00,0x00,0x4e,0xca,0x00,0x00,0x4e,0xf8, +0x00,0x00,0x4f,0x26,0x00,0x00,0x4f,0x58,0x00,0x00,0x4f,0xc8,0x00,0x00,0x50,0x4e,0x00,0x00,0x51,0x30,0x00,0x00,0x51,0xec,0x00,0x00,0x53,0x48,0x00,0x00,0x53,0x8e,0x00,0x00,0x54,0x42,0x00,0x00,0x55,0x52,0x00,0x00,0x55,0x62,0x00,0x00,0x56,0x80,0x00,0x00,0x57,0xa2,0x00,0x00,0x58,0x6e,0x00,0x00,0x58,0xa0,0x00,0x00,0x59,0x16, +0x00,0x00,0x59,0xec,0x00,0x00,0x5a,0xee,0x00,0x00,0x5c,0x78,0x00,0x00,0x5d,0x82,0x00,0x00,0x5e,0x1e,0x00,0x00,0x5e,0xb4,0x00,0x00,0x5f,0x4c,0x00,0x00,0x60,0x4a,0x00,0x00,0x60,0xf2,0x00,0x00,0x61,0xd2,0x00,0x00,0x62,0x52,0x00,0x00,0x62,0xb4,0x00,0x00,0x63,0x3c,0x00,0x00,0x64,0x0a,0x00,0x00,0x64,0x82,0x00,0x00,0x65,0xb6, +0x00,0x00,0x67,0x24,0x00,0x00,0x68,0x74,0x00,0x00,0x69,0x4c,0x00,0x00,0x69,0x4c,0x00,0x00,0x69,0xc4,0x00,0x00,0x6a,0x10,0x00,0x00,0x6a,0x82,0x00,0x00,0x6b,0x68,0x00,0x00,0x6c,0x7e,0x00,0x00,0x6c,0xfc,0x00,0x00,0x6d,0x66,0x00,0x00,0x6d,0xd0,0x00,0x00,0x6e,0x90,0x00,0x00,0x6e,0xbe,0x00,0x00,0x6e,0xee,0x00,0x00,0x6f,0x1c, +0x00,0x00,0x70,0x4e,0x00,0x00,0x71,0xe0,0x00,0x00,0x72,0x0a,0x00,0x00,0x72,0x34,0x00,0x00,0x72,0x82,0x00,0x00,0x72,0xd0,0x00,0x00,0x73,0x06,0x00,0x00,0x73,0x38,0x00,0x00,0x73,0xda,0x00,0x00,0x74,0x3c,0x00,0x00,0x74,0x6c,0x00,0x00,0x74,0xa0,0x00,0x00,0x74,0xce,0x00,0x00,0x76,0x0e,0x00,0x00,0x76,0x50,0x00,0x00,0x76,0x92, +0x00,0x00,0x77,0xae,0x00,0x00,0x78,0xa0,0x00,0x00,0x79,0x54,0x00,0x00,0x79,0x96,0x00,0x00,0x79,0xde,0x00,0x00,0x7a,0x56,0x00,0x00,0x7c,0x38,0x00,0x00,0x7c,0x68,0x00,0x00,0x7c,0x98,0x00,0x00,0x7c,0xc8,0x00,0x00,0x7c,0xfa,0x00,0x00,0x7d,0x2a,0x00,0x00,0x7d,0x58,0x00,0x00,0x7d,0x86,0x00,0x00,0x7d,0xb8,0x00,0x00,0x7d,0xe6, +0x00,0x00,0x7e,0x14,0x00,0x00,0x7e,0x42,0x00,0x00,0x7e,0x70,0x00,0x00,0x7e,0x9e,0x00,0x00,0x7e,0xcc,0x00,0x00,0x7e,0xfc,0x00,0x00,0x7f,0x46,0x00,0x00,0x7f,0x86,0x00,0x00,0x80,0x16,0x00,0x00,0x80,0x42,0x00,0x00,0x80,0xa4,0x00,0x00,0x80,0xe2,0x00,0x00,0x81,0x7c,0x00,0x00,0x82,0x16,0x00,0x00,0x82,0x8e,0x00,0x00,0x82,0xe4, +0x00,0x00,0x83,0x26,0x00,0x00,0x84,0x22,0x00,0x00,0x84,0xb6,0x00,0x00,0x84,0xe4,0x00,0x00,0x85,0x10,0x00,0x00,0x85,0x3e,0x00,0x00,0x85,0x6a,0x00,0x00,0x85,0xb2,0x00,0x00,0x86,0xb4,0x00,0x00,0x88,0x30,0x00,0x00,0x88,0x5e,0x00,0x00,0x88,0x8c,0x00,0x00,0x89,0x50,0x00,0x00,0x8a,0x4a,0x00,0x00,0x8a,0x96,0x00,0x00,0x8a,0xf6, +0x00,0x00,0x8b,0x40,0x00,0x00,0x8b,0xd8,0x00,0x00,0x8c,0x94,0x00,0x00,0x8c,0xbe,0x00,0x00,0x8c,0xea,0x00,0x00,0x8d,0x16,0x00,0x00,0x8d,0xd4,0x00,0x00,0x8e,0x04,0x00,0x00,0x8e,0x32,0x00,0x00,0x8e,0x60,0x00,0x00,0x8e,0x78,0x00,0x00,0x8e,0x90,0x00,0x00,0x8e,0xbe,0x00,0x00,0x8e,0xec,0x00,0x00,0x8f,0x1a,0x00,0x00,0x8f,0x48, +0x00,0x00,0x90,0x80,0x00,0x00,0x90,0xac,0x00,0x00,0x90,0xbc,0x00,0x00,0x90,0xec,0x00,0x00,0x91,0x1c,0x00,0x00,0x91,0x34,0x00,0x00,0x91,0x4c,0x00,0x00,0x91,0x7a,0x00,0x00,0x91,0xa6,0x00,0x00,0x91,0xb6,0x00,0x00,0x91,0xce,0x00,0x00,0x91,0xe6,0x00,0x00,0x92,0x16,0x00,0x00,0x92,0x44,0x00,0x00,0x92,0x72,0x00,0x00,0x92,0xa2, +0x00,0x00,0x92,0xd0,0x00,0x00,0x92,0xfc,0x00,0x00,0x93,0x24,0x00,0x00,0x93,0x4a,0x00,0x00,0x93,0x78,0x00,0x00,0x93,0xa8,0x00,0x00,0x93,0xd8,0x00,0x00,0x94,0x06,0x00,0x00,0x94,0x3a,0x00,0x00,0x94,0x6c,0x00,0x00,0x94,0x8e,0x00,0x00,0x94,0xbc,0x00,0x00,0x94,0xde,0x00,0x00,0x95,0x0a,0x00,0x00,0x95,0x2c,0x00,0x00,0x95,0x4e, +0x00,0x00,0x95,0x74,0x00,0x00,0x95,0x8c,0x00,0x00,0x95,0xba,0x00,0x00,0x96,0x82,0x00,0x00,0x96,0xc0,0x00,0x00,0x96,0xf2,0x00,0x00,0x97,0x52,0x00,0x00,0x97,0x86,0x00,0x00,0x97,0xb6,0x00,0x00,0x97,0xe4,0x00,0x00,0x98,0x14,0x00,0x00,0x98,0x42,0x00,0x00,0x98,0xb0,0x00,0x00,0x99,0xd6,0x00,0x00,0x9b,0x46,0x00,0x00,0x9c,0xc6, +0x00,0x00,0x9e,0x22,0x00,0x00,0x9f,0x28,0x00,0x00,0x9f,0xf6,0x00,0x00,0xa0,0xb2,0x00,0x00,0xa2,0x28,0x00,0x00,0xa2,0x7c,0x00,0x00,0xa2,0x94,0x00,0x00,0xa2,0xfc,0x00,0x00,0xa4,0x9a,0x00,0x00,0xa4,0xc2,0x00,0x00,0xa5,0x12,0x00,0x00,0xa5,0x44,0x00,0x00,0xa5,0x7a,0x00,0x00,0xa5,0xe0,0x00,0x00,0xa6,0xd6,0x00,0x00,0xa7,0x86, +0x00,0x00,0xa7,0xea,0x00,0x00,0xa8,0x2c,0x00,0x00,0xa8,0x98,0x00,0x00,0xa8,0xf2,0x00,0x00,0xa9,0x86,0x00,0x00,0xa9,0xb4,0x00,0x00,0xa9,0xe2,0x00,0x00,0xaa,0x10,0x00,0x00,0xaa,0x40,0x00,0x00,0xaa,0x6e,0x00,0x00,0xaa,0x9c,0x00,0x00,0xaa,0xca,0x00,0x00,0xaa,0xf8,0x00,0x00,0xab,0x26,0x00,0x00,0xab,0x56,0x00,0x00,0xab,0x86, +0x00,0x00,0xab,0xb4,0x00,0x00,0xab,0xe2,0x00,0x00,0xac,0x10,0x00,0x00,0xac,0x3e,0x00,0x00,0xac,0x6c,0x00,0x00,0xac,0x92,0x00,0x00,0xad,0xd0,0x00,0x00,0xae,0x00,0x00,0x00,0xae,0x30,0x00,0x00,0xaf,0x18,0x00,0x00,0xb0,0x24,0x00,0x00,0xb0,0x52,0x00,0x00,0xb0,0x80,0x00,0x00,0xb0,0xae,0x00,0x00,0xb0,0xdc,0x00,0x00,0xb1,0x0a, +0x00,0x00,0xb1,0x38,0x00,0x00,0xb1,0x5c,0x00,0x00,0xb1,0x80,0x00,0x00,0xb1,0xae,0x00,0x00,0xb1,0xd0,0x00,0x00,0xb1,0xf6,0x00,0x00,0xb2,0x1c,0x00,0x00,0xb2,0xb8,0x00,0x00,0xb2,0xd0,0x00,0x00,0xb2,0xe8,0x00,0x00,0xb3,0x10,0x00,0x00,0xb3,0x36,0x00,0x00,0xb4,0x4a,0x00,0x00,0xb5,0x38,0x00,0x00,0xb5,0x66,0x00,0x00,0xb5,0x94, +0x00,0x00,0xb5,0xc2,0x00,0x00,0xb5,0xf0,0x00,0x00,0xb6,0x08,0x00,0x00,0xb6,0x2c,0x00,0x00,0xb6,0x4e,0x00,0x00,0xb6,0x6e,0x00,0x00,0xb7,0x4a,0x00,0x00,0xb8,0x38,0x00,0x00,0xb8,0x66,0x00,0x00,0xb8,0x94,0x00,0x00,0xb8,0xc2,0x00,0x00,0xb8,0xf2,0x00,0x00,0xb9,0x22,0x00,0x00,0xb9,0x52,0x00,0x00,0xb9,0x6a,0x00,0x00,0xb9,0x82, +0x00,0x00,0xb9,0xb0,0x00,0x00,0xb9,0xe0,0x00,0x00,0xba,0x0e,0x00,0x00,0xba,0x3c,0x00,0x00,0xba,0xa6,0x00,0x00,0xbc,0x2c,0x00,0x00,0xbc,0x82,0x00,0x00,0xbc,0xb0,0x00,0x00,0xbc,0xde,0x00,0x00,0xbd,0x0c,0x00,0x00,0xbd,0x3c,0x00,0x00,0xbd,0x7e,0x00,0x00,0xbd,0xae,0x00,0x00,0xbd,0xde,0x00,0x00,0xbe,0x10,0x00,0x00,0xbe,0x3e, +0x00,0x00,0xbe,0x72,0x00,0x00,0xbe,0xa6,0x00,0x00,0xbe,0xda,0x00,0x00,0xbf,0x0a,0x00,0x00,0xbf,0x42,0x00,0x00,0xbf,0x6e,0x00,0x00,0xc0,0x66,0x00,0x00,0xc1,0x16,0x00,0x00,0xc1,0x44,0x00,0x00,0xc1,0x72,0x00,0x00,0xc1,0xa0,0x00,0x00,0xc1,0xce,0x00,0x00,0xc2,0x02,0x00,0x00,0xc2,0x36,0x00,0x00,0xc2,0x46,0x00,0x00,0xc2,0x72, +0x00,0x00,0xc2,0xf8,0x00,0x00,0xc3,0x24,0x00,0x00,0xc3,0x54,0x00,0x00,0xc3,0x84,0x00,0x00,0xc3,0xa8,0x00,0x00,0xc3,0xd4,0x00,0x00,0xc4,0x04,0x00,0x00,0xc4,0x34,0x00,0x00,0xc4,0x6a,0x00,0x00,0xc4,0x7a,0x00,0x00,0xc4,0x8a,0x00,0x00,0xc4,0x9a,0x00,0x00,0xc4,0xaa,0x00,0x00,0xc4,0xba,0x00,0x00,0xc4,0xca,0x00,0x00,0xc4,0xda, +0x00,0x00,0xc5,0x6e,0x00,0x00,0xc5,0x7e,0x00,0x00,0xc5,0x8e,0x00,0x00,0xc6,0x18,0x00,0x00,0xc6,0x28,0x00,0x00,0xc6,0xbc,0x00,0x00,0xc6,0xcc,0x00,0x00,0xc7,0x62,0x00,0x00,0xc7,0x72,0x00,0x00,0xc7,0x82,0x00,0x00,0xc7,0x92,0x00,0x00,0xc8,0xb4,0x00,0x00,0xc8,0xc4,0x00,0x00,0xc8,0xf6,0x00,0x00,0xc9,0x2a,0x00,0x00,0xc9,0x58, +0x00,0x00,0xc9,0x86,0x00,0x00,0xc9,0xb4,0x00,0x00,0xc9,0xe2,0x00,0x00,0xca,0x1a,0x00,0x00,0xcb,0x52,0x00,0x00,0xcc,0x3e,0x00,0x00,0xcc,0xfc,0x00,0x00,0xcd,0xc0,0x00,0x00,0xce,0xea,0x00,0x00,0xcf,0x60,0x00,0x00,0xd0,0x4a,0x00,0x00,0xd0,0xe6,0x00,0x00,0xd1,0xde,0x00,0x00,0xd2,0x80,0x00,0x00,0xd3,0xbe,0x00,0x00,0xd3,0xce, +0x00,0x00,0xd4,0xac,0x00,0x00,0xd5,0x98,0x00,0x00,0xd6,0x96,0x00,0x00,0xd7,0x8e,0x00,0x00,0xd8,0xd4,0x00,0x00,0xda,0x1e,0x00,0x00,0xda,0x50,0x00,0x00,0xda,0x84,0x00,0x00,0xda,0xb4,0x00,0x00,0xda,0xe2,0x00,0x00,0xdb,0x10,0x00,0x00,0xdb,0x42,0x00,0x00,0xdc,0x4c,0x00,0x00,0xdc,0x7e,0x00,0x00,0xdd,0x70,0x00,0x00,0xdd,0x80, +0x00,0x00,0xdd,0xb2,0x00,0x00,0xde,0xe2,0x00,0x00,0xdf,0xf2,0x00,0x00,0xe0,0xf8,0x00,0x00,0xe1,0x2a,0x00,0x00,0xe1,0x58,0x00,0x00,0xe2,0x3a,0x00,0x00,0xe2,0x4a,0x00,0x00,0xe3,0x32,0x00,0x00,0xe3,0x42,0x00,0x00,0xe3,0x52,0x00,0x00,0xe4,0x70,0x00,0x00,0xe4,0x80,0x00,0x00,0xe5,0x9e,0x00,0x00,0xe6,0xdc,0x00,0x00,0xe7,0xc4, +0x00,0x00,0xe7,0xf2,0x00,0x00,0xe8,0x02,0x00,0x00,0xe8,0xbc,0x00,0x00,0xe8,0xcc,0x00,0x00,0xe8,0xdc,0x00,0x00,0xe8,0xec,0x00,0x00,0xe8,0xfc,0x00,0x00,0xe9,0x0c,0x00,0x00,0xe9,0x1c,0x00,0x00,0xe9,0x2c,0x00,0x00,0xe9,0xd4,0x00,0x00,0xeb,0x50,0x00,0x00,0xeb,0x60,0x00,0x00,0xec,0x44,0x00,0x00,0xed,0x02,0x00,0x00,0xed,0xd8, +0x00,0x00,0xef,0x12,0x00,0x00,0xef,0xf4,0x00,0x00,0xf0,0xf6,0x00,0x00,0xf1,0xc0,0x00,0x00,0xf2,0xd2,0x00,0x00,0xf4,0x1c,0x00,0x00,0xf5,0x22,0x00,0x00,0xf5,0x32,0x00,0x00,0xf6,0x46,0x00,0x00,0xf7,0x42,0x00,0x00,0xf7,0xaa,0x00,0x00,0xf8,0xac,0x00,0x00,0xf8,0xbc,0x00,0x00,0xf9,0xd6,0x00,0x00,0xfa,0xde,0x00,0x00,0xfb,0xa8, +0x00,0x00,0xfb,0xd4,0x00,0x00,0xfb,0xe4,0x00,0x00,0xfc,0xb2,0x00,0x00,0xfd,0xac,0x00,0x00,0xfe,0x44,0x00,0x00,0xfe,0x54,0x00,0x00,0xfe,0xd8,0x00,0x00,0xfe,0xe8,0x00,0x00,0xfe,0xf8,0x00,0x00,0xff,0x66,0x00,0x00,0xff,0x76,0x00,0x01,0x00,0xd8,0x00,0x01,0x00,0xe8,0x00,0x01,0x01,0xac,0x00,0x01,0x02,0x4a,0x00,0x01,0x03,0x26, +0x00,0x01,0x04,0x54,0x00,0x01,0x05,0x16,0x00,0x01,0x06,0x12,0x00,0x01,0x06,0xc4,0x00,0x01,0x07,0xae,0x00,0x01,0x08,0xc8,0x00,0x01,0x09,0xc8,0x00,0x01,0x09,0xf8,0x00,0x01,0x0b,0x1c,0x00,0x01,0x0b,0x4a,0x00,0x01,0x0c,0x24,0x00,0x01,0x0c,0x34,0x00,0x01,0x0c,0x66,0x00,0x01,0x0d,0x98,0x00,0x01,0x0e,0xa4,0x00,0x01,0x0f,0xa6, +0x00,0x01,0x0f,0xd4,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0xcc,0x00,0x01,0x11,0x68,0x00,0x01,0x11,0xf0,0x00,0x01,0x12,0x00,0x00,0x01,0x13,0x64,0x00,0x01,0x14,0x6c,0x00,0x01,0x14,0xf8,0x00,0x01,0x15,0x9a,0x00,0x01,0x15,0xf4,0x00,0x01,0x17,0x08,0x00,0x01,0x17,0x18,0x00,0x01,0x17,0x2e,0x00,0x01,0x17,0x44,0x00,0x01,0x18,0x2a, +0x00,0x01,0x19,0x62,0x00,0x01,0x1a,0x6c,0x00,0x01,0x1b,0x42,0x00,0x01,0x1c,0x28,0x00,0x01,0x1c,0x8c,0x00,0x01,0x1c,0xce,0x00,0x01,0x1c,0xf6,0x00,0x01,0x1d,0x1e,0x00,0x01,0x1d,0x7c,0x00,0x01,0x1d,0xe2,0x00,0x01,0x1e,0x76,0x00,0x01,0x1f,0x08,0x00,0x01,0x1f,0x78,0x00,0x01,0x1f,0xe8,0x00,0x01,0x20,0xa2,0x00,0x01,0x21,0x50, +0x00,0x01,0x21,0xc6,0x00,0x01,0x22,0x68,0x00,0x01,0x22,0xde,0x00,0x01,0x23,0x56,0x00,0x01,0x24,0x1a,0x00,0x01,0x24,0xd4,0x00,0x01,0x25,0x82,0x00,0x01,0x25,0xa8,0x00,0x01,0x25,0xd0,0x00,0x01,0x26,0x00,0x00,0x01,0x26,0x2e,0x00,0x01,0x26,0x62,0x00,0x01,0x26,0x94,0x00,0x01,0x26,0xc8,0x00,0x01,0x26,0xf8,0x00,0x01,0x27,0x2c, +0x00,0x01,0x27,0x60,0x00,0x01,0x27,0x94,0x00,0x01,0x27,0xc4,0x00,0x01,0x28,0x04,0x00,0x01,0x28,0x42,0x00,0x01,0x28,0x76,0x00,0x01,0x28,0xa8,0x00,0x01,0x28,0xdc,0x00,0x01,0x29,0x0e,0x00,0x01,0x29,0x54,0x00,0x01,0x29,0x88,0x00,0x01,0x29,0xba,0x00,0x01,0x29,0xea,0x00,0x01,0x2a,0x28,0x00,0x01,0x2a,0x66,0x00,0x01,0x2a,0x8c, +0x00,0x01,0x2a,0xb2,0x00,0x01,0x2a,0xe0,0x00,0x01,0x2b,0x0e,0x00,0x01,0x2b,0x40,0x00,0x01,0x2b,0x6e,0x00,0x01,0x2b,0xa0,0x00,0x01,0x2b,0xd4,0x00,0x01,0x2c,0x06,0x00,0x01,0x2c,0x36,0x00,0x01,0x2c,0x68,0x00,0x01,0x2c,0x9a,0x00,0x01,0x2c,0xcc,0x00,0x01,0x2c,0xfc,0x00,0x01,0x2d,0x3c,0x00,0x01,0x2d,0x7a,0x00,0x01,0x2d,0xa8, +0x00,0x01,0x2d,0xd4,0x00,0x01,0x2d,0xf8,0x00,0x01,0x2e,0x1e,0x00,0x01,0x2e,0x46,0x00,0x01,0x2e,0x6c,0x00,0x01,0x2e,0x9c,0x00,0x01,0x2e,0xcc,0x00,0x01,0x2e,0xfe,0x00,0x01,0x2f,0x30,0x00,0x01,0x2f,0x62,0x00,0x01,0x2f,0x94,0x00,0x01,0x2f,0xc8,0x00,0x01,0x2f,0xfc,0x00,0x01,0x30,0x2e,0x00,0x01,0x30,0x60,0x00,0x01,0x30,0x9e, +0x00,0x01,0x30,0xde,0x00,0x01,0x31,0x0c,0x00,0x01,0x31,0x3c,0x00,0x01,0x31,0x6a,0x00,0x01,0x31,0x9a,0x00,0x01,0x31,0xc8,0x00,0x01,0x31,0xf8,0x00,0x01,0x32,0x26,0x00,0x01,0x32,0x54,0x00,0x01,0x32,0x7a,0x00,0x01,0x32,0xa0,0x00,0x01,0x32,0xc6,0x00,0x01,0x32,0xee,0x00,0x01,0x33,0x1c,0x00,0x01,0x33,0x4a,0x00,0x01,0x33,0x78, +0x00,0x01,0x33,0xa6,0x00,0x01,0x33,0xd4,0x00,0x01,0x34,0x02,0x00,0x01,0x34,0x32,0x00,0x01,0x34,0x62,0x00,0x01,0x34,0x90,0x00,0x01,0x34,0xbe,0x00,0x01,0x34,0xe4,0x00,0x01,0x35,0x0a,0x00,0x01,0x35,0x30,0x00,0x01,0x35,0x58,0x00,0x01,0x35,0x86,0x00,0x01,0x35,0xb4,0x00,0x01,0x35,0xe2,0x00,0x01,0x36,0x12,0x00,0x01,0x36,0x38, +0x00,0x01,0x36,0x5e,0x00,0x01,0x36,0x8e,0x00,0x01,0x36,0xbe,0x00,0x01,0x36,0xee,0x00,0x01,0x37,0x1e,0x00,0x01,0x37,0x2e,0x00,0x01,0x37,0x3e,0x00,0x01,0x37,0x4e,0x00,0x01,0x37,0x5e,0x00,0x01,0x37,0xee,0x00,0x01,0x38,0x82,0x00,0x01,0x39,0xaa,0x00,0x01,0x3a,0xb0,0x00,0x01,0x3b,0x86,0x00,0x01,0x3c,0x44,0x00,0x01,0x3d,0x44, +0x00,0x01,0x3e,0x0e,0x00,0x01,0x3f,0x00,0x00,0x01,0x3f,0xd6,0x00,0x01,0x3f,0xe6,0x00,0x01,0x40,0x8a,0x00,0x01,0x41,0x58,0x00,0x01,0x42,0x02,0x00,0x01,0x42,0xc8,0x00,0x01,0x43,0x84,0x00,0x01,0x44,0x72,0x00,0x01,0x45,0x4a,0x00,0x01,0x45,0xf6,0x00,0x01,0x46,0x06,0x00,0x01,0x46,0xe0,0x00,0x01,0x47,0x8e,0x00,0x01,0x48,0x60, +0x00,0x01,0x49,0x2a,0x00,0x01,0x49,0x80,0x00,0x01,0x49,0xce,0x00,0x01,0x4a,0x22,0x00,0x01,0x4a,0x6e,0x00,0x01,0x4b,0x0c,0x00,0x01,0x4b,0xa0,0x00,0x01,0x4c,0x3e,0x00,0x01,0x4c,0xc6,0x00,0x01,0x4d,0xa8,0x00,0x01,0x4e,0x62,0x00,0x01,0x4e,0xba,0x00,0x01,0x4f,0x12,0x00,0x01,0x4f,0x88,0x00,0x01,0x4f,0xf4,0x00,0x01,0x50,0x88, +0x00,0x01,0x51,0x12,0x00,0x01,0x51,0x2a,0x00,0x01,0x51,0x42,0x00,0x01,0x51,0x84,0x00,0x01,0x51,0xc6,0x00,0x01,0x51,0xf6,0x00,0x01,0x52,0x24,0x00,0x01,0x52,0x58,0x00,0x01,0x52,0x8c,0x00,0x01,0x52,0xc0,0x00,0x01,0x52,0xf2,0x00,0x01,0x53,0x1c,0x00,0x01,0x53,0x46,0x00,0x01,0x53,0x76,0x00,0x01,0x53,0xa6,0x00,0x01,0x53,0xda, +0x00,0x01,0x54,0x0c,0x00,0x01,0x54,0x40,0x00,0x01,0x54,0x72,0x00,0x01,0x54,0xa2,0x00,0x01,0x54,0xd0,0x00,0x01,0x55,0x00,0x00,0x01,0x55,0x2e,0x00,0x01,0x55,0x60,0x00,0x01,0x55,0x92,0x00,0x01,0x55,0xc4,0x00,0x01,0x55,0xf6,0x00,0x01,0x56,0x24,0x00,0x01,0x56,0x52,0x00,0x01,0x56,0x82,0x00,0x01,0x56,0xb0,0x00,0x01,0x56,0xe8, +0x00,0x01,0x57,0x1e,0x00,0x01,0x57,0x4e,0x00,0x01,0x57,0x7c,0x00,0x01,0x57,0xaa,0x00,0x01,0x57,0xd8,0x00,0x01,0x58,0x08,0x00,0x01,0x58,0x36,0x00,0x01,0x58,0x68,0x00,0x01,0x58,0x9c,0x00,0x01,0x58,0xce,0x00,0x01,0x59,0x00,0x00,0x01,0x59,0x16,0x00,0x01,0x59,0x2c,0x00,0x01,0x59,0x5a,0x00,0x01,0x59,0x88,0x00,0x01,0x59,0xae, +0x00,0x01,0x59,0xd4,0x00,0x01,0x5a,0x0a,0x00,0x01,0x5a,0x40,0x00,0x01,0x5a,0x70,0x00,0x01,0x5a,0x9e,0x00,0x01,0x5a,0xd2,0x00,0x01,0x5b,0x06,0x00,0x01,0x5b,0x3a,0x00,0x01,0x5b,0x6e,0x00,0x01,0x5b,0xa2,0x00,0x01,0x5b,0xd2,0x00,0x01,0x5c,0x20,0x00,0x01,0x5c,0x6a,0x00,0x01,0x5c,0x9c,0x00,0x01,0x5c,0xce,0x00,0x01,0x5c,0xfc, +0x00,0x01,0x5d,0x2a,0x00,0x01,0x5d,0x42,0x00,0x01,0x5d,0x70,0x00,0x01,0x5d,0x88,0x00,0x01,0x5d,0xb8,0x00,0x01,0x5d,0xd0,0x00,0x01,0x5d,0xf6,0x00,0x01,0x5e,0x26,0x00,0x01,0x5e,0x54,0x00,0x01,0x5e,0x7c,0x00,0x01,0x5e,0xa2,0x00,0x01,0x5e,0xda,0x00,0x01,0x5f,0x10,0x00,0x01,0x5f,0x3e,0x00,0x01,0x5f,0x6c,0x00,0x01,0x5f,0x9e, +0x00,0x01,0x5f,0xce,0x00,0x01,0x60,0x04,0x00,0x01,0x60,0x38,0x00,0x01,0x60,0x6a,0x00,0x01,0x60,0x9c,0x00,0x01,0x60,0xce,0x00,0x01,0x61,0x02,0x00,0x01,0x61,0x32,0x00,0x01,0x61,0x62,0x00,0x01,0x61,0x92,0x00,0x01,0x61,0xc2,0x00,0x01,0x61,0xe4,0x00,0x01,0x62,0x14,0x00,0x01,0x62,0x2c,0x00,0x01,0x62,0x42,0x00,0x01,0x62,0x6c, +0x00,0x01,0x62,0xac,0x00,0x01,0x62,0xd8,0x00,0x01,0x63,0x0e,0x00,0x01,0x63,0x30,0x00,0x01,0x63,0x52,0x00,0x01,0x63,0x6a,0x00,0x01,0x63,0x80,0x00,0x01,0x63,0xa4,0x00,0x01,0x63,0xc8,0x00,0x01,0x63,0xec,0x00,0x01,0x64,0x10,0x00,0x01,0x64,0x3a,0x00,0x01,0x64,0x64,0x00,0x01,0x64,0x92,0x00,0x01,0x64,0xc6,0x00,0x01,0x64,0xec, +0x00,0x01,0x65,0x10,0x00,0x01,0x65,0x46,0x00,0x01,0x65,0x7c,0x00,0x01,0x65,0xaa,0x00,0x01,0x65,0xd8,0x00,0x01,0x66,0x14,0x00,0x01,0x66,0x50,0x00,0x01,0x66,0x80,0x00,0x01,0x66,0xb0,0x00,0x01,0x66,0xe0,0x00,0x01,0x67,0x10,0x00,0x01,0x67,0x42,0x00,0x01,0x67,0x72,0x00,0x01,0x67,0xa8,0x00,0x01,0x67,0xe0,0x00,0x01,0x68,0x0e, +0x00,0x01,0x68,0x3c,0x00,0x01,0x68,0x62,0x00,0x01,0x68,0x8a,0x00,0x01,0x68,0xb8,0x00,0x01,0x68,0xe6,0x00,0x01,0x69,0x0c,0x00,0x01,0x69,0x32,0x00,0x01,0x69,0x60,0x00,0x01,0x69,0x8e,0x00,0x01,0x69,0xc0,0x00,0x01,0x69,0xf0,0x00,0x01,0x6a,0x20,0x00,0x01,0x6a,0x50,0x00,0x01,0x6a,0x7e,0x00,0x01,0x6a,0xaa,0x00,0x01,0x6a,0xd0, +0x00,0x01,0x6a,0xf6,0x00,0x01,0x6b,0x2c,0x00,0x01,0x6b,0x62,0x00,0x01,0x6b,0x98,0x00,0x01,0x6b,0xce,0x00,0x01,0x6c,0x00,0x00,0x01,0x6c,0x34,0x00,0x01,0x6c,0x62,0x00,0x01,0x6c,0x92,0x00,0x01,0x6c,0xbe,0x00,0x01,0x6c,0xec,0x00,0x01,0x6d,0x1e,0x00,0x01,0x6d,0x50,0x00,0x01,0x6d,0x80,0x00,0x01,0x6d,0xb2,0x00,0x01,0x6d,0xe4, +0x00,0x01,0x6e,0x16,0x00,0x01,0x6e,0x46,0x00,0x01,0x6e,0x76,0x00,0x01,0x6e,0xac,0x00,0x01,0x6e,0xe2,0x00,0x01,0x6f,0x18,0x00,0x01,0x6f,0x4e,0x00,0x01,0x6f,0x84,0x00,0x01,0x6f,0xba,0x00,0x01,0x6f,0xe6,0x00,0x01,0x70,0x12,0x00,0x01,0x70,0x42,0x00,0x01,0x70,0x74,0x00,0x01,0x70,0xa4,0x00,0x01,0x70,0xd4,0x00,0x01,0x71,0x06, +0x00,0x01,0x71,0x38,0x00,0x01,0x71,0x6e,0x00,0x01,0x71,0xa4,0x00,0x01,0x71,0xda,0x00,0x01,0x72,0x10,0x00,0x01,0x72,0x3c,0x00,0x01,0x72,0x6a,0x00,0x01,0x72,0x9c,0x00,0x01,0x72,0xce,0x00,0x01,0x72,0xfe,0x00,0x01,0x73,0x2e,0x00,0x01,0x73,0x60,0x00,0x01,0x73,0x92,0x00,0x01,0x73,0xc4,0x00,0x01,0x73,0xf6,0x00,0x01,0x74,0x2c, +0x00,0x01,0x74,0x62,0x00,0x01,0x74,0x98,0x00,0x01,0x74,0xce,0x00,0x01,0x75,0x04,0x00,0x01,0x75,0x3a,0x00,0x01,0x75,0x6a,0x00,0x01,0x75,0x9a,0x00,0x01,0x75,0xce,0x00,0x01,0x76,0x02,0x00,0x01,0x76,0x36,0x00,0x01,0x76,0x6a,0x00,0x01,0x76,0x9e,0x00,0x01,0x76,0xd2,0x00,0x01,0x76,0xf6,0x00,0x01,0x77,0x1a,0x00,0x01,0x77,0x40, +0x00,0x01,0x77,0x66,0x00,0x01,0x77,0x8c,0x00,0x01,0x77,0xb2,0x00,0x01,0x77,0xd8,0x00,0x01,0x77,0xfe,0x00,0x01,0x78,0x2a,0x00,0x01,0x78,0x58,0x00,0x01,0x78,0x8a,0x00,0x01,0x78,0xbc,0x00,0x01,0x78,0xec,0x00,0x01,0x79,0x1e,0x00,0x01,0x79,0x4e,0x00,0x01,0x79,0x7e,0x00,0x01,0x79,0xb4,0x00,0x01,0x79,0xea,0x00,0x01,0x7a,0x20, +0x00,0x01,0x7a,0x54,0x00,0x01,0x7a,0x82,0x00,0x01,0x7a,0xb0,0x00,0x01,0x7a,0xe2,0x00,0x01,0x7b,0x14,0x00,0x01,0x7b,0x46,0x00,0x01,0x7b,0x78,0x00,0x01,0x7b,0xaa,0x00,0x01,0x7b,0xdc,0x00,0x01,0x7c,0x0e,0x00,0x01,0x7c,0x44,0x00,0x01,0x7c,0x7a,0x00,0x01,0x7c,0xb0,0x00,0x01,0x7c,0xde,0x00,0x01,0x7d,0x0e,0x00,0x01,0x7d,0x42, +0x00,0x01,0x7d,0x76,0x00,0x01,0x7d,0xa8,0x00,0x01,0x7d,0xda,0x00,0x01,0x7e,0x0e,0x00,0x01,0x7e,0x42,0x00,0x01,0x7e,0x74,0x00,0x01,0x7e,0xa6,0x00,0x01,0x7e,0xdc,0x00,0x01,0x7f,0x12,0x00,0x01,0x7f,0x48,0x00,0x01,0x7f,0x7c,0x00,0x01,0x7f,0xb0,0x00,0x01,0x7f,0xe4,0x00,0x01,0x80,0x12,0x00,0x01,0x80,0x3e,0x00,0x01,0x80,0x6c, +0x00,0x01,0x80,0x98,0x00,0x01,0x80,0xc6,0x00,0x01,0x80,0xf2,0x00,0x01,0x81,0x22,0x00,0x01,0x81,0x52,0x00,0x01,0x81,0x80,0x00,0x01,0x81,0xac,0x00,0x01,0x81,0xda,0x00,0x01,0x82,0x08,0x00,0x01,0x82,0x38,0x00,0x01,0x82,0x66,0x00,0x01,0x82,0xa0,0x00,0x01,0x82,0xdc,0x00,0x01,0x83,0x1c,0x00,0x01,0x83,0x5c,0x00,0x01,0x83,0x9a, +0x00,0x01,0x83,0xda,0x00,0x01,0x84,0x1a,0x00,0x01,0x84,0x5a,0x00,0x01,0x84,0x9c,0x00,0x01,0x84,0xde,0x00,0x01,0x85,0x26,0x00,0x01,0x85,0x6e,0x00,0x01,0x85,0xb8,0x00,0x01,0x86,0x00,0x00,0x01,0x86,0x48,0x00,0x01,0x86,0x90,0x00,0x01,0x86,0xcc,0x00,0x01,0x87,0x0a,0x00,0x01,0x87,0x4c,0x00,0x01,0x87,0x8e,0x00,0x01,0x87,0xce, +0x00,0x01,0x88,0x0e,0x00,0x01,0x88,0x50,0x00,0x01,0x88,0x92,0x00,0x01,0x88,0xd8,0x00,0x01,0x89,0x1e,0x00,0x01,0x89,0x68,0x00,0x01,0x89,0xb2,0x00,0x01,0x89,0xfc,0x00,0x01,0x8a,0x46,0x00,0x01,0x8a,0x90,0x00,0x01,0x8a,0xda,0x00,0x01,0x8b,0x18,0x00,0x01,0x8b,0x58,0x00,0x01,0x8b,0x9c,0x00,0x01,0x8b,0xe0,0x00,0x01,0x8c,0x22, +0x00,0x01,0x8c,0x64,0x00,0x01,0x8c,0xa8,0x00,0x01,0x8c,0xec,0x00,0x01,0x8d,0x32,0x00,0x01,0x8d,0x78,0x00,0x01,0x8d,0xc2,0x00,0x01,0x8e,0x0c,0x00,0x01,0x8e,0x56,0x00,0x01,0x8e,0x9e,0x00,0x01,0x8e,0xe6,0x00,0x01,0x8f,0x2e,0x00,0x01,0x8f,0x5e,0x00,0x01,0x8f,0x8e,0x00,0x01,0x8f,0xca,0x00,0x01,0x8f,0xee,0x00,0x01,0x90,0x28, +0x00,0x01,0x90,0x56,0x00,0x01,0x90,0x92,0x00,0x01,0x90,0xc0,0x00,0x01,0x90,0xee,0x00,0x01,0x91,0x1e,0x00,0x01,0x91,0x4e,0x00,0x01,0x91,0x74,0x00,0x01,0x91,0xca,0x00,0x01,0x92,0x1c,0x00,0x01,0x92,0x78,0x00,0x01,0x92,0xc2,0x00,0x01,0x93,0x64,0x00,0x01,0x93,0xa4,0x00,0x01,0x93,0xcc,0x00,0x01,0x94,0x0a,0x00,0x01,0x94,0x36, +0x00,0x01,0x94,0x76,0x00,0x01,0x94,0xa8,0x00,0x01,0x94,0xda,0x00,0x01,0x95,0x0c,0x00,0x01,0x95,0x3e,0x00,0x01,0x95,0x64,0x00,0x01,0x95,0xd2,0x00,0x01,0x96,0x4a,0x00,0x01,0x96,0xec,0x00,0x01,0x97,0x1c,0x00,0x01,0x97,0x4c,0x00,0x01,0x97,0x84,0x00,0x01,0x97,0xbc,0x00,0x01,0x97,0xec,0x00,0x01,0x98,0x24,0x00,0x01,0x98,0x52, +0x00,0x01,0x98,0x80,0x00,0x01,0x98,0xb0,0x00,0x01,0x98,0xe0,0x00,0x01,0x99,0x54,0x00,0x01,0x99,0xca,0x00,0x01,0x9a,0x6c,0x00,0x01,0x9a,0x9c,0x00,0x01,0x9a,0xcc,0x00,0x01,0x9b,0x02,0x00,0x01,0x9b,0x38,0x00,0x01,0x9b,0x66,0x00,0x01,0x9b,0x94,0x00,0x01,0x9b,0xc2,0x00,0x01,0x9b,0xf8,0x00,0x01,0x9c,0x26,0x00,0x01,0x9c,0x54, +0x00,0x01,0x9c,0x86,0x00,0x01,0x9c,0xb8,0x00,0x01,0x9c,0xea,0x00,0x01,0x9d,0x70,0x00,0x01,0x9d,0xf8,0x00,0x01,0x9e,0x24,0x00,0x01,0x9e,0x64,0x00,0x01,0x9e,0x8a,0x00,0x01,0x9e,0xc8,0x00,0x01,0x9e,0xf6,0x00,0x01,0x9f,0x34,0x00,0x01,0x9f,0x64,0x00,0x01,0x9f,0x94,0x00,0x01,0x9f,0xc6,0x00,0x01,0x9f,0xf8,0x00,0x01,0xa0,0x1e, +0x00,0x01,0xa0,0x4c,0x00,0x01,0xa0,0xa6,0x00,0x01,0xa0,0xde,0x00,0x01,0xa1,0x3c,0x00,0x01,0xa1,0x64,0x00,0x01,0xa1,0x8c,0x00,0x01,0xa1,0xdc,0x00,0x01,0xa2,0x16,0x00,0x01,0xa2,0x7c,0x00,0x01,0xa2,0xf0,0x00,0x01,0xa3,0x46,0x00,0x01,0xa3,0x7c,0x00,0x01,0xa3,0xa4,0x00,0x01,0xa3,0xe4,0x00,0x01,0xa4,0x3c,0x00,0x01,0xa4,0xb2, +0x00,0x01,0xa4,0xfc,0x00,0x01,0xa5,0x56,0x00,0x01,0xa5,0xb2,0x00,0x01,0xa6,0x0c,0x00,0x01,0xa6,0x68,0x00,0x01,0xa6,0x9a,0x00,0x01,0xa6,0xce,0x00,0x01,0xa7,0x1a,0x00,0x01,0xa7,0x6a,0x00,0x01,0xa7,0x9e,0x00,0x01,0xa7,0xdc,0x00,0x01,0xa8,0x2e,0x00,0x01,0xa8,0x72,0x00,0x01,0xa8,0xb6,0x00,0x01,0xa9,0x16,0x00,0x01,0xa9,0x28, +0x00,0x01,0xa9,0x64,0x00,0x01,0xa9,0xa2,0x00,0x01,0xaa,0x08,0x00,0x01,0xaa,0x1a,0x00,0x01,0xaa,0x82,0x00,0x01,0xaa,0x94,0x00,0x01,0xaa,0xa6,0x00,0x01,0xaa,0xd6,0x00,0x01,0xab,0x1c,0x00,0x01,0xab,0x9e,0x00,0x01,0xab,0xdc,0x00,0x01,0xac,0x1a,0x00,0x01,0xac,0x74,0x00,0x01,0xac,0x86,0x00,0x01,0xac,0xe6,0x00,0x01,0xac,0xf8, +0x00,0x01,0xad,0x20,0x00,0x01,0xad,0x32,0x00,0x01,0xad,0x90,0x00,0x01,0xad,0xb8,0x00,0x01,0xad,0xca,0x00,0x01,0xae,0x14,0x00,0x01,0xae,0x5e,0x00,0x01,0xae,0xb2,0x00,0x01,0xae,0xfa,0x00,0x01,0xaf,0x44,0x00,0x01,0xaf,0xd2,0x00,0x01,0xb0,0x0e,0x00,0x01,0xb0,0x6e,0x00,0x01,0xb0,0xb0,0x00,0x01,0xb0,0xda,0x00,0x01,0xb1,0x06, +0x00,0x01,0xb1,0x18,0x00,0x01,0xb1,0x78,0x00,0x01,0xb2,0x00,0x00,0x01,0xb2,0x50,0x00,0x01,0xb2,0x90,0x00,0x01,0xb2,0xc8,0x00,0x01,0xb3,0x10,0x00,0x01,0xb3,0x40,0x00,0x01,0xb3,0xcc,0x00,0x01,0xb4,0x80,0x00,0x01,0xb5,0x20,0x00,0x01,0xb5,0x80,0x00,0x01,0xb5,0xb8,0x00,0x01,0xb6,0x20,0x00,0x01,0xb6,0x66,0x00,0x01,0xb6,0xaa, +0x00,0x01,0xb7,0x62,0x00,0x01,0xb8,0x2c,0x00,0x01,0xb8,0xa2,0x00,0x01,0xb9,0x3a,0x00,0x01,0xb9,0xb0,0x00,0x01,0xba,0x48,0x00,0x01,0xba,0xba,0x00,0x01,0xbb,0x6e,0x00,0x01,0xbc,0x1e,0x00,0x01,0xbc,0xb8,0x00,0x01,0xbd,0x46,0x00,0x01,0xbd,0xba,0x00,0x01,0xbe,0x50,0x00,0x01,0xbf,0x0c,0x00,0x01,0xbf,0x6e,0x00,0x01,0xc0,0x20, +0x00,0x01,0xc0,0x94,0x00,0x01,0xc1,0x76,0x00,0x01,0xc1,0xfa,0x00,0x01,0xc2,0xa4,0x00,0x01,0xc2,0xec,0x00,0x01,0xc3,0x54,0x00,0x01,0xc3,0xd4,0x00,0x01,0xc4,0x50,0x00,0x01,0xc4,0xb8,0x00,0x01,0xc5,0x8a,0x00,0x01,0xc6,0x2a,0x00,0x01,0xc6,0xb6,0x00,0x01,0xc7,0x30,0x00,0x01,0xc7,0xd8,0x00,0x01,0xc8,0x88,0x00,0x01,0xc9,0x2e, +0x00,0x01,0xc9,0xcc,0x00,0x01,0xca,0x7a,0x00,0x01,0xcb,0x16,0x00,0x01,0xcb,0xe8,0x00,0x01,0xcc,0xae,0x00,0x01,0xcd,0x1e,0x00,0x01,0xcd,0xbc,0x00,0x01,0xce,0x56,0x00,0x01,0xce,0xc0,0x00,0x01,0xcf,0x4a,0x00,0x01,0xcf,0xb8,0x00,0x01,0xd0,0x62,0x00,0x01,0xd0,0xe0,0x00,0x01,0xd1,0x5c,0x00,0x01,0xd1,0xf0,0x00,0x01,0xd2,0x92, +0x00,0x01,0xd3,0x32,0x00,0x01,0xd3,0xd0,0x00,0x01,0xd4,0x6c,0x00,0x01,0xd4,0xfe,0x00,0x01,0xd5,0xc2,0x00,0x01,0xd6,0x8a,0x00,0x01,0xd7,0x26,0x00,0x01,0xd7,0xbc,0x00,0x01,0xd8,0x5c,0x00,0x01,0xd8,0xd6,0x00,0x01,0xd9,0x00,0x00,0x01,0xd9,0x4e,0x00,0x01,0xd9,0xe4,0x00,0x01,0xd9,0xf4,0x00,0x01,0xda,0x2a,0x00,0x01,0xda,0x60, +0x00,0x01,0xda,0x96,0x00,0x01,0xda,0xbe,0x00,0x01,0xda,0xe8,0x00,0x01,0xdb,0x00,0x00,0x01,0xdb,0x28,0x00,0x01,0xdb,0x52,0x00,0x01,0xdb,0x7c,0x00,0x01,0xdb,0xac,0x00,0x01,0xdb,0xd8,0x00,0x01,0xdc,0x06,0x00,0x01,0xdc,0x34,0x00,0x01,0xdc,0x62,0x00,0x01,0xdc,0x90,0x00,0x01,0xdc,0xbe,0x00,0x01,0xdc,0xec,0x00,0x01,0xdd,0x22, +0x00,0x01,0xdd,0x56,0x00,0x01,0xdd,0x8c,0x00,0x01,0xdd,0xc0,0x00,0x01,0xdd,0xfa,0x00,0x01,0xde,0x2e,0x00,0x01,0xde,0x66,0x00,0x01,0xde,0x9a,0x00,0x01,0xdf,0x3a,0x00,0x01,0xdf,0x72,0x00,0x01,0xdf,0xa6,0x00,0x01,0xdf,0xd8,0x00,0x01,0xe0,0x08,0x00,0x01,0xe0,0x38,0x00,0x01,0xe0,0x66,0x00,0x01,0xe1,0x38,0x00,0x01,0xe2,0x3a, +0x00,0x01,0xe2,0x68,0x00,0x01,0xe2,0x96,0x00,0x01,0xe2,0xc6,0x00,0x01,0xe2,0xf6,0x00,0x01,0xe3,0xd0,0x00,0x01,0xe4,0x92,0x00,0x01,0xe4,0xc0,0x00,0x01,0xe4,0xee,0x00,0x01,0xe5,0x1e,0x00,0x01,0xe5,0x4c,0x00,0x01,0xe5,0x7a,0x00,0x01,0xe5,0xa2,0x00,0x01,0xe5,0xca,0x00,0x01,0xe5,0xf2,0x00,0x01,0xe6,0x20,0x00,0x01,0xe6,0x4e, +0x00,0x01,0xe6,0xe0,0x00,0x01,0xe7,0x62,0x00,0x01,0xe7,0x92,0x00,0x01,0xe7,0xc2,0x00,0x01,0xe7,0xf6,0x00,0x01,0xe8,0x2a,0x00,0x01,0xe8,0x58,0x00,0x01,0xe8,0x84,0x00,0x01,0xe8,0xb8,0x00,0x01,0xe8,0xec,0x00,0x01,0xe9,0x1c,0x00,0x01,0xe9,0x4a,0x00,0x01,0xe9,0x7e,0x00,0x01,0xe9,0xb2,0x00,0x01,0xe9,0xe0,0x00,0x01,0xea,0x0e, +0x00,0x01,0xea,0x42,0x00,0x01,0xea,0x76,0x00,0x01,0xea,0xa4,0x00,0x01,0xea,0xd0,0x00,0x01,0xea,0xf4,0x00,0x01,0xeb,0x28,0x00,0x01,0xeb,0x4a,0x00,0x01,0xeb,0x78,0x00,0x01,0xeb,0xac,0x00,0x01,0xeb,0xe0,0x00,0x01,0xec,0x0e,0x00,0x01,0xec,0x3a,0x00,0x01,0xed,0x02,0x00,0x01,0xed,0xc2,0x00,0x01,0xed,0xf0,0x00,0x01,0xee,0x20, +0x00,0x01,0xee,0x90,0x00,0x01,0xef,0x72,0x00,0x01,0xf0,0x48,0x00,0x01,0xf0,0xb8,0x00,0x01,0xf1,0x2c,0x00,0x01,0xf1,0x5a,0x00,0x01,0xf1,0x88,0x00,0x01,0xf1,0xbe,0x00,0x01,0xf1,0xf2,0x00,0x01,0xf2,0x24,0x00,0x01,0xf2,0x54,0x00,0x01,0xf2,0x82,0x00,0x01,0xf2,0xb0,0x00,0x01,0xf2,0xe2,0x00,0x01,0xf3,0x12,0x00,0x01,0xf3,0x40, +0x00,0x01,0xf3,0x6e,0x00,0x01,0xf3,0xfa,0x00,0x01,0xf4,0x5a,0x00,0x01,0xf4,0xf6,0x00,0x01,0xf5,0x88,0x00,0x01,0xf6,0x10,0x00,0x01,0xf6,0xbe,0x00,0x01,0xf7,0x62,0x00,0x01,0xf8,0x06,0x00,0x01,0xf8,0xb4,0x00,0x01,0xf9,0x20,0x00,0x01,0xf9,0xea,0x00,0x01,0xfa,0x98,0x00,0x01,0xfb,0x46,0x00,0x01,0xfb,0xe6,0x00,0x01,0xfc,0xda, +0x00,0x01,0xfd,0x82,0x00,0x01,0xfe,0x2c,0x00,0x01,0xff,0x1e,0x00,0x01,0xff,0xce,0x00,0x02,0x00,0x5c,0x00,0x02,0x01,0x30,0x00,0x02,0x01,0x40,0x00,0x02,0x01,0xd4,0x00,0x02,0x02,0x46,0x00,0x02,0x02,0xdc,0x00,0x02,0x03,0x42,0x00,0x02,0x03,0xca,0x00,0x02,0x04,0x76,0x00,0x02,0x05,0x16,0x00,0x02,0x05,0x5e,0x00,0x02,0x05,0xbc, +0x00,0x02,0x06,0x66,0x00,0x02,0x07,0x04,0x00,0x02,0x07,0x58,0x00,0x02,0x08,0x0e,0x00,0x02,0x08,0xb2,0x00,0x02,0x09,0x5a,0x00,0x02,0x0a,0x22,0x00,0x02,0x0a,0xa8,0x00,0x02,0x0b,0x2c,0x00,0x02,0x0b,0x98,0x00,0x02,0x0c,0x2a,0x00,0x02,0x0c,0xd6,0x00,0x02,0x0d,0x8a,0x00,0x02,0x0e,0x44,0x00,0x02,0x0e,0x98,0x00,0x02,0x0e,0xec, +0x00,0x02,0x0f,0x68,0x00,0x02,0x0f,0xc2,0x00,0x02,0x10,0x3e,0x00,0x02,0x10,0x8a,0x00,0x02,0x10,0xd6,0x00,0x02,0x11,0x66,0x00,0x02,0x12,0x04,0x00,0x02,0x12,0xda,0x00,0x02,0x13,0x4c,0x00,0x02,0x13,0xf6,0x00,0x02,0x14,0x5c,0x00,0x02,0x15,0x32,0x00,0x02,0x15,0xa6,0x00,0x02,0x16,0x1a,0x00,0x02,0x16,0xc4,0x00,0x02,0x17,0x56, +0x00,0x02,0x17,0xce,0x00,0x02,0x18,0x20,0x00,0x02,0x18,0xbe,0x00,0x02,0x19,0x36,0x00,0x02,0x19,0xa4,0x00,0x02,0x1a,0x28,0x00,0x02,0x1b,0x06,0x00,0x02,0x1b,0x9c,0x00,0x02,0x1c,0xbe,0x00,0x02,0x1d,0x38,0x00,0x02,0x1d,0xba,0x00,0x02,0x1e,0x3a,0x00,0x02,0x1e,0xb0,0x00,0x02,0x1f,0x6c,0x00,0x02,0x20,0x02,0x00,0x02,0x20,0xb2, +0x00,0x02,0x21,0x80,0x00,0x02,0x21,0xe4,0x00,0x02,0x22,0xca,0x00,0x02,0x23,0x2e,0x00,0x02,0x23,0x66,0x00,0x02,0x24,0x14,0x00,0x02,0x24,0xc4,0x00,0x02,0x25,0x72,0x00,0x02,0x26,0x3a,0x00,0x02,0x27,0x50,0x00,0x02,0x28,0xca,0x00,0x02,0x29,0xa0,0x00,0x02,0x2a,0x68,0x00,0x02,0x2b,0x74,0x00,0x02,0x2c,0x4c,0x00,0x02,0x2c,0xf4, +0x00,0x02,0x2d,0x56,0x00,0x02,0x2e,0x36,0x00,0x02,0x2e,0xac,0x00,0x02,0x2f,0x56,0x00,0x02,0x30,0x5e,0x00,0x02,0x31,0x02,0x00,0x02,0x31,0x32,0x00,0x02,0x31,0x66,0x00,0x02,0x32,0x1e,0x00,0x02,0x32,0xfe,0x00,0x02,0x34,0x18,0x00,0x02,0x34,0xb6,0x00,0x02,0x35,0x4e,0x00,0x02,0x36,0x10,0x00,0x02,0x36,0xc8,0x00,0x02,0x37,0x3e, +0x00,0x02,0x37,0xa0,0x00,0x02,0x38,0x02,0x00,0x02,0x38,0xd0,0x00,0x02,0x39,0xc4,0x00,0x02,0x3a,0xa8,0x00,0x02,0x3b,0xba,0x00,0x02,0x3c,0xc8,0x00,0x02,0x3d,0x58,0x00,0x02,0x3d,0xea,0x00,0x02,0x3e,0xb2,0x00,0x02,0x40,0x00,0x00,0x02,0x40,0xd4,0x00,0x02,0x41,0xb8,0x00,0x02,0x42,0xf4,0x00,0x02,0x43,0xd0,0x00,0x02,0x44,0xce, +0x00,0x02,0x45,0xd2,0x00,0x02,0x46,0x4c,0x00,0x02,0x46,0xd6,0x00,0x02,0x47,0xba,0x00,0x02,0x48,0x70,0x00,0x02,0x48,0x80,0x00,0x02,0x48,0x90,0x00,0x02,0x48,0xa0,0x00,0x02,0x49,0x1c,0x00,0x02,0x49,0x96,0x00,0x02,0x4a,0x52,0x00,0x02,0x4a,0xf6,0x00,0x02,0x4b,0x92,0x00,0x02,0x4c,0x2c,0x00,0x02,0x4c,0xfa,0x00,0x02,0x4d,0xc8, +0x00,0x02,0x4e,0x80,0x00,0x02,0x4f,0x38,0x00,0x02,0x50,0x42,0x00,0x02,0x51,0x58,0x00,0x02,0x52,0x78,0x00,0x02,0x53,0x64,0x00,0x02,0x54,0x86,0x00,0x02,0x55,0xb0,0x00,0x02,0x56,0xe0,0x00,0x02,0x58,0x0e,0x00,0x02,0x58,0xa4,0x00,0x02,0x59,0x40,0x00,0x02,0x5a,0x18,0x00,0x02,0x5a,0xee,0x00,0x02,0x5b,0x6c,0x00,0x02,0x5b,0xec, +0x00,0x02,0x5c,0x20,0x00,0x02,0x5c,0x54,0x00,0x02,0x5d,0x9c,0x00,0x02,0x5e,0xbc,0x00,0x02,0x5f,0xa4,0x00,0x02,0x60,0x72,0x00,0x02,0x61,0xbc,0x00,0x02,0x62,0xf2,0x00,0x02,0x63,0x14,0x00,0x02,0x63,0x44,0x00,0x02,0x63,0xca,0x00,0x02,0x64,0x42,0x00,0x02,0x65,0x62,0x00,0x02,0x65,0xb6,0x00,0x02,0x66,0x08,0x00,0x02,0x66,0x1a, +0x00,0x02,0x66,0x2c,0x00,0x02,0x68,0x1a,0x00,0x02,0x69,0x42,0x00,0x02,0x69,0xda,0x00,0x02,0x6a,0x6e,0x00,0x02,0x6b,0x40,0x00,0x02,0x6c,0x2e,0x00,0x02,0x6c,0xc4,0x00,0x02,0x6d,0x56,0x00,0x02,0x6e,0x58,0x00,0x02,0x6f,0x4a,0x00,0x02,0x6f,0xee,0x00,0x02,0x70,0x82,0x00,0x02,0x71,0x0c,0x00,0x02,0x71,0x8a,0x00,0x02,0x71,0xfc, +0x00,0x02,0x72,0x6e,0x00,0x02,0x73,0x12,0x00,0x02,0x73,0xb0,0x00,0x02,0x74,0xda,0x00,0x02,0x75,0xf8,0x00,0x02,0x76,0xc0,0x00,0x02,0x77,0x78,0x00,0x02,0x77,0xea,0x00,0x02,0x78,0x5c,0x00,0x02,0x78,0xe8,0x00,0x02,0x79,0x74,0x00,0x02,0x79,0xf6,0x00,0x02,0x7a,0x76,0x00,0x02,0x7b,0x4a,0x00,0x02,0x7c,0x1e,0x00,0x02,0x7c,0x34, +0x00,0x02,0x7c,0x4a,0x00,0x02,0x7c,0x5a,0x00,0x02,0x7c,0x88,0x00,0x02,0x7c,0xb6,0x00,0x02,0x7d,0x56,0x00,0x02,0x7d,0xf2,0x00,0x02,0x7e,0x84,0x00,0x02,0x7f,0x12,0x00,0x02,0x7f,0x8c,0x00,0x02,0x80,0x0a,0x00,0x02,0x80,0x2c,0x00,0x02,0x80,0x4e,0x00,0x02,0x80,0x82,0x00,0x02,0x80,0xb2,0x00,0x02,0x80,0xc2,0x00,0x02,0x80,0xd2, +0x00,0x02,0x81,0x00,0x00,0x02,0x81,0x2e,0x00,0x02,0x81,0xd0,0x00,0x02,0x81,0xe0,0x00,0x02,0x82,0x14,0x00,0x02,0x82,0x44,0x00,0x02,0x82,0x76,0x00,0x02,0x82,0xaa,0x00,0x02,0x82,0xde,0x00,0x02,0x83,0x10,0x00,0x02,0x83,0x9c,0x00,0x02,0x83,0xac,0x00,0x02,0x83,0xda,0x00,0x02,0x84,0x08,0x00,0x02,0x84,0x3a,0x00,0x02,0x84,0x6c, +0x00,0x02,0x84,0x9e,0x00,0x02,0x84,0xd0,0x00,0x02,0x85,0x02,0x00,0x02,0x85,0x34,0x00,0x02,0x85,0x68,0x00,0x02,0x85,0x9a,0x00,0x02,0x85,0xc8,0x00,0x02,0x85,0xf6,0x00,0x02,0x86,0x28,0x00,0x02,0x86,0x58,0x00,0x02,0x86,0x8a,0x00,0x02,0x86,0xbc,0x00,0x02,0x86,0xee,0x00,0x02,0x87,0x22,0x00,0x02,0x87,0x54,0x00,0x02,0x87,0x88, +0x00,0x02,0x87,0xee,0x00,0x02,0x87,0xfe,0x00,0x02,0x88,0xa6,0x00,0x02,0x89,0x5c,0x00,0x02,0x8a,0x18,0x00,0x02,0x8a,0xcc,0x00,0x02,0x8b,0x7a,0x00,0x02,0x8c,0x22,0x00,0x02,0x8c,0xba,0x00,0x02,0x8d,0x5a,0x00,0x02,0x8d,0xea,0x00,0x02,0x8e,0x7c,0x00,0x02,0x8f,0x20,0x00,0x02,0x8f,0xb8,0x00,0x02,0x90,0x38,0x00,0x02,0x90,0xb6, +0x00,0x02,0x91,0x46,0x00,0x02,0x92,0x10,0x00,0x02,0x92,0xb0,0x00,0x02,0x93,0x1e,0x00,0x02,0x93,0xa6,0x00,0x02,0x94,0x08,0x00,0x02,0x94,0xc8,0x00,0x02,0x95,0x7e,0x00,0x02,0x95,0xec,0x00,0x02,0x96,0x5c,0x00,0x02,0x96,0xc6,0x00,0x02,0x97,0x34,0x00,0x02,0x97,0xc8,0x00,0x02,0x98,0x34,0x00,0x02,0x98,0xdc,0x00,0x02,0x99,0x40, +0x00,0x02,0x99,0xb8,0x00,0x02,0x9a,0x48,0x00,0x02,0x9a,0xb0,0x00,0x02,0x9a,0xda,0x00,0x02,0x9b,0x16,0x00,0x02,0x9b,0x66,0x00,0x02,0x9b,0xd8,0x00,0x02,0x9c,0x74,0x00,0x02,0x9c,0xec,0x00,0x02,0x9d,0x4e,0x00,0x02,0x9d,0xb2,0x00,0x02,0x9e,0x36,0x00,0x02,0x9e,0xd0,0x00,0x02,0x9f,0x4c,0x00,0x02,0x9f,0xbe,0x00,0x02,0x9f,0xf4, +0x00,0x02,0xa0,0x48,0x00,0x02,0xa0,0x7c,0x00,0x02,0xa0,0x8c,0x00,0x02,0xa0,0xbe,0x00,0x02,0xa1,0x0a,0x00,0x02,0xa1,0x56,0x00,0x02,0xa1,0xca,0x00,0x02,0xa2,0x40,0x00,0x02,0xa2,0x9e,0x00,0x02,0xa2,0xfc,0x00,0x02,0xa3,0x46,0x00,0x02,0xa3,0x94,0x00,0x02,0xa3,0xc0,0x00,0x02,0xa3,0xd0,0x00,0x02,0xa3,0xe0,0x00,0x02,0xa4,0x10, +0x00,0x02,0xa4,0x3e,0x00,0x02,0xa4,0x50,0x00,0x02,0xa4,0x62,0x00,0x02,0xa4,0xaa,0x00,0x02,0xa4,0xda,0x00,0x02,0xa4,0xec,0x00,0x02,0xa4,0xfe,0x00,0x02,0xa5,0x42,0x00,0x02,0xa5,0x84,0x00,0x02,0xa5,0xd6,0x00,0x02,0xa6,0x02,0x00,0x02,0xa6,0x70,0x00,0x02,0xa6,0xee,0x00,0x02,0xa7,0x96,0x00,0x02,0xa7,0xc6,0x00,0x02,0xa8,0x7a, +0x00,0x02,0xa8,0xdc,0x00,0x02,0xa8,0xec,0x00,0x02,0xa9,0x24,0x00,0x02,0xa9,0x66,0x00,0x02,0xa9,0xa8,0x00,0x02,0xa9,0xea,0x00,0x02,0xaa,0x22,0x00,0x02,0xaa,0x52,0x00,0x02,0xaa,0x92,0x00,0x02,0xaa,0xd2,0x00,0x02,0xab,0x1c,0x00,0x02,0xab,0x7a,0x00,0x02,0xab,0xe4,0x00,0x02,0xac,0x3e,0x00,0x02,0xac,0xb6,0x00,0x02,0xad,0x3c, +0x00,0x02,0xad,0xac,0x00,0x02,0xae,0x0e,0x00,0x02,0xae,0x94,0x00,0x02,0xae,0xf4,0x00,0x02,0xaf,0x5e,0x00,0x02,0xaf,0xd2,0x00,0x02,0xb0,0x42,0x00,0x02,0xb0,0xa0,0x00,0x02,0xb1,0x46,0x00,0x02,0xb1,0xde,0x00,0x02,0xb2,0x4a,0x00,0x02,0xb2,0xd8,0x00,0x02,0xb3,0x32,0x00,0x02,0xb3,0xa0,0x00,0x02,0xb4,0x4a,0x00,0x02,0xb4,0xf0, +0x00,0x02,0xb5,0x86,0x00,0x02,0xb5,0xf6,0x00,0x02,0xb6,0x78,0x00,0x02,0xb6,0xdc,0x00,0x02,0xb7,0x88,0x00,0x02,0xb8,0x46,0x00,0x02,0xb8,0xf2,0x00,0x02,0xb9,0x84,0x00,0x02,0xb9,0xe2,0x00,0x02,0xba,0x4e,0x00,0x02,0xba,0xa4,0x00,0x02,0xbb,0x26,0x00,0x02,0xbb,0xa4,0x00,0x02,0xbc,0x2a,0x00,0x02,0xbc,0xb6,0x00,0x02,0xbd,0x10, +0x00,0x02,0xbd,0x7c,0x00,0x02,0xbd,0xec,0x00,0x02,0xbe,0x5a,0x00,0x02,0xbe,0xca,0x00,0x02,0xbf,0x4e,0x00,0x02,0xbf,0xde,0x00,0x02,0xc0,0x44,0x00,0x02,0xc0,0xbe,0x00,0x02,0xc1,0x3a,0x00,0x02,0xc1,0xb2,0x00,0x02,0xc2,0x58,0x00,0x02,0xc2,0xf0,0x00,0x02,0xc3,0x80,0x00,0x02,0xc3,0xde,0x00,0x02,0xc4,0x7c,0x00,0x02,0xc4,0xf8, +0x00,0x02,0xc5,0x8a,0x00,0x02,0xc6,0x2e,0x00,0x02,0xc6,0xd8,0x00,0x02,0xc7,0x70,0x00,0x02,0xc7,0xcc,0x00,0x02,0xc8,0x20,0x00,0x02,0xc8,0x88,0x00,0x02,0xc9,0x2e,0x00,0x02,0xc9,0xd8,0x00,0x02,0xca,0xa2,0x00,0x02,0xcb,0x48,0x00,0x02,0xcb,0xaa,0x00,0x02,0xcc,0x0a,0x00,0x02,0xcc,0x98,0x00,0x02,0xcd,0x1e,0x00,0x02,0xcd,0xac, +0x00,0x02,0xce,0x0c,0x00,0x02,0xce,0x70,0x00,0x02,0xce,0xda,0x00,0x02,0xcf,0x42,0x00,0x02,0xcf,0xaa,0x00,0x02,0xd0,0x22,0x00,0x02,0xd0,0xaa,0x00,0x02,0xd1,0x3e,0x00,0x02,0xd1,0xaa,0x00,0x02,0xd2,0x12,0x00,0x02,0xd2,0x76,0x00,0x02,0xd3,0x22,0x00,0x02,0xd3,0xe2,0x00,0x02,0xd4,0x90,0x00,0x02,0xd5,0x1e,0x00,0x02,0xd5,0x7c, +0x00,0x02,0xd5,0xe8,0x00,0x02,0xd6,0x58,0x00,0x02,0xd6,0xfc,0x00,0x02,0xd7,0xa2,0x00,0x02,0xd8,0x66,0x00,0x02,0xd9,0x08,0x00,0x02,0xd9,0x6c,0x00,0x02,0xd9,0xfc,0x00,0x02,0xda,0x6e,0x00,0x02,0xdb,0x06,0x00,0x02,0xdb,0x84,0x00,0x02,0xdb,0xfe,0x00,0x02,0xdc,0x6a,0x00,0x02,0xdc,0xf8,0x00,0x02,0xdd,0x54,0x00,0x02,0xdd,0xb2, +0x00,0x02,0xde,0x38,0x00,0x02,0xde,0xb4,0x00,0x02,0xdf,0x1c,0x00,0x02,0xdf,0x80,0x00,0x02,0xdf,0xd4,0x00,0x02,0xe0,0x42,0x00,0x02,0xe0,0xaa,0x00,0x02,0xe1,0x28,0x00,0x02,0xe1,0x9e,0x00,0x02,0xe2,0x18,0x00,0x02,0xe2,0x98,0x00,0x02,0xe2,0xf4,0x00,0x02,0xe3,0x5a,0x00,0x02,0xe3,0xbe,0x00,0x02,0xe4,0x5e,0x00,0x02,0xe5,0x00, +0x00,0x02,0xe5,0xbe,0x00,0x02,0xe6,0x6e,0x00,0x02,0xe6,0xca,0x00,0x02,0xe7,0x42,0x00,0x02,0xe7,0xa0,0x00,0x02,0xe8,0x2a,0x00,0x02,0xe8,0xc2,0x00,0x02,0xe9,0x50,0x00,0x02,0xe9,0xb6,0x00,0x02,0xea,0x14,0x00,0x02,0xea,0xa2,0x00,0x02,0xeb,0x14,0x00,0x02,0xeb,0xae,0x00,0x02,0xec,0x42,0x00,0x02,0xec,0xb2,0x00,0x02,0xed,0x22, +0x00,0x02,0xed,0x9a,0x00,0x02,0xed,0xf8,0x00,0x02,0xee,0x58,0x00,0x02,0xee,0xd2,0x00,0x02,0xef,0x2c,0x00,0x02,0xef,0x8c,0x00,0x02,0xef,0xe6,0x00,0x02,0xf0,0x42,0x00,0x02,0xf0,0xaa,0x00,0x02,0xf0,0xaa,0x00,0x02,0xf0,0xfa,0x00,0x02,0xf1,0x4e,0x00,0x02,0xf1,0xa0,0x00,0x02,0xf1,0xf0,0x00,0x02,0xf3,0xf0,0x00,0x02,0xf5,0x5c, +0x00,0x02,0xf7,0x10,0x00,0x02,0xf8,0xba,0x00,0x02,0xf9,0x3e,0x00,0x02,0xf9,0xde,0x00,0x02,0xfa,0x1a,0x00,0x02,0xfa,0x56,0x00,0x02,0xfa,0x8c,0x00,0x02,0xfa,0xc2,0x00,0x02,0xfb,0x3c,0x00,0x02,0xfb,0x4e,0x00,0x02,0xfb,0x60,0x00,0x02,0xfb,0x72,0x00,0x02,0xfb,0x84,0x00,0x02,0xfb,0x96,0x00,0x02,0xfb,0xd2,0x00,0x02,0xfc,0x0a, +0x00,0x02,0xfc,0x44,0x00,0x02,0xfc,0x7c,0x00,0x02,0xfc,0xd2,0x00,0x02,0xfd,0x1a,0x00,0x02,0xfd,0x92,0x00,0x02,0xfd,0xd0,0x00,0x02,0xfe,0x1a,0x00,0x02,0xfe,0x9a,0x00,0x02,0xff,0x72,0x00,0x02,0xff,0x84,0x00,0x02,0xff,0x96,0x00,0x03,0x00,0x08,0x00,0x03,0x00,0x54,0x00,0x03,0x00,0xa8,0x00,0x03,0x00,0xdc,0x00,0x03,0x01,0x10, +0x00,0x03,0x01,0x20,0x00,0x03,0x01,0x30,0x00,0x03,0x01,0xb0,0x00,0x03,0x02,0x5c,0x00,0x03,0x03,0x6e,0x00,0x03,0x04,0x24,0x00,0x03,0x04,0x34,0x00,0x03,0x04,0x90,0x00,0x03,0x05,0x1e,0x00,0x03,0x05,0x80,0x00,0x03,0x06,0x20,0x00,0x03,0x06,0x7c,0x00,0x03,0x06,0xc6,0x00,0x03,0x06,0xd6,0x00,0x03,0x07,0x50,0x00,0x03,0x07,0x60, +0x00,0x03,0x07,0x70,0x00,0x03,0x07,0x80,0x00,0x03,0x07,0xfa,0x00,0x03,0x08,0x6e,0x00,0x03,0x08,0xde,0x00,0x03,0x09,0xd6,0x00,0x03,0x0a,0xc6,0x00,0x03,0x0b,0x84,0x00,0x03,0x0b,0xd6,0x00,0x03,0x0c,0x28,0x00,0x03,0x0c,0x8e,0x00,0x03,0x0d,0x20,0x00,0x03,0x0d,0xac,0x00,0x03,0x0d,0xbc,0x00,0x03,0x0e,0x10,0x00,0x03,0x0e,0x76, +0x00,0x03,0x0f,0x3e,0x00,0x03,0x0f,0xda,0x00,0x03,0x0f,0xea,0x00,0x03,0x0f,0xfa,0x00,0x03,0x10,0x0a,0x00,0x03,0x10,0x94,0x00,0x03,0x11,0x44,0x00,0x03,0x11,0xd4,0x00,0x03,0x11,0xe4,0x00,0x03,0x12,0x30,0x00,0x03,0x12,0x40,0x00,0x03,0x12,0x50,0x00,0x03,0x12,0xe6,0x00,0x03,0x13,0x4e,0x00,0x03,0x13,0xe0,0x00,0x03,0x14,0xa2, +0x00,0x03,0x15,0x4c,0x00,0x03,0x16,0x12,0x00,0x03,0x16,0x7c,0x00,0x03,0x16,0xf0,0x00,0x03,0x17,0x62,0x00,0x03,0x18,0x00,0x00,0x03,0x18,0x7a,0x00,0x03,0x18,0xaa,0x00,0x03,0x18,0xfc,0x00,0x03,0x19,0x5e,0x00,0x03,0x19,0xa2,0x00,0x03,0x1a,0x28,0x00,0x03,0x1a,0x96,0x00,0x03,0x1b,0x04,0x00,0x03,0x1b,0x7e,0x00,0x03,0x1c,0x4c, +0x00,0x03,0x1c,0xbc,0x00,0x03,0x1d,0x50,0x00,0x03,0x1d,0xa2,0x00,0x03,0x1e,0x02,0x00,0x03,0x1e,0x7c,0x00,0x03,0x1f,0x36,0x00,0x03,0x1f,0xf0,0x00,0x03,0x20,0x84,0x00,0x03,0x21,0xb8,0x00,0x03,0x22,0x4c,0x00,0x03,0x22,0xe2,0x00,0x03,0x23,0x7c,0x00,0x03,0x24,0x12,0x00,0x03,0x24,0xc4,0x00,0x03,0x25,0x6e,0x00,0x03,0x26,0x24, +0x00,0x03,0x26,0x74,0x00,0x03,0x26,0xd6,0x00,0x03,0x27,0x86,0x00,0x03,0x28,0x14,0x00,0x03,0x28,0x8e,0x00,0x03,0x29,0x00,0x00,0x03,0x29,0x58,0x00,0x03,0x29,0xb0,0x00,0x03,0x2a,0x42,0x00,0x03,0x2a,0xc4,0x00,0x03,0x2b,0x34,0x00,0x03,0x2b,0x9e,0x00,0x03,0x2c,0x5c,0x00,0x03,0x2c,0xac,0x00,0x03,0x2d,0x4c,0x00,0x03,0x2e,0x1c, +0x00,0x03,0x2e,0x96,0x00,0x03,0x2f,0x46,0x00,0x03,0x30,0x04,0x00,0x03,0x30,0xa0,0x00,0x03,0x30,0xb2,0x00,0x03,0x30,0xc4,0x00,0x03,0x30,0xd6,0x00,0x03,0x30,0xe8,0x00,0x03,0x30,0xfa,0x00,0x03,0x31,0x0c,0x00,0x03,0x31,0x1e,0x00,0x03,0x31,0x30,0x00,0x03,0x31,0x42,0x00,0x03,0x31,0x8a,0x00,0x03,0x31,0xdc,0x00,0x03,0x32,0x5c, +0x00,0x03,0x32,0xb4,0x00,0x03,0x34,0x10,0x00,0x03,0x34,0xde,0x00,0x03,0x36,0x48,0x00,0x03,0x37,0x56,0x00,0x03,0x38,0x70,0x00,0x03,0x39,0xa2,0x00,0x03,0x3b,0x12,0x00,0x03,0x3d,0x2e,0x00,0x03,0x3d,0xe0,0x00,0x03,0x3e,0xd2,0x00,0x03,0x3f,0x6e,0x00,0x03,0x40,0x32,0x00,0x03,0x42,0x44,0x00,0x03,0x43,0x82,0x00,0x03,0x44,0x9e, +0x00,0x03,0x45,0xc8,0x00,0x03,0x46,0xb0,0x00,0x03,0x47,0x98,0x00,0x03,0x47,0xd0,0x00,0x03,0x47,0xe6,0x00,0x03,0x47,0xfc,0x00,0x03,0x48,0x14,0x00,0x03,0x48,0x2c,0x00,0x03,0x48,0x42,0x00,0x03,0x49,0x44,0x00,0x03,0x49,0xbe,0x00,0x03,0x4a,0x3a,0x00,0x03,0x4a,0x4a,0x00,0x03,0x4a,0x90,0x00,0x03,0x4b,0x58,0x00,0x03,0x4b,0x92, +0x00,0x03,0x4b,0xa4,0x00,0x03,0x4b,0xce,0x00,0x03,0x4c,0x4c,0x00,0x03,0x4c,0x7c,0x00,0x03,0x4c,0xac,0x00,0x03,0x4c,0xfe,0x00,0x03,0x4d,0x50,0x00,0x03,0x4d,0x7a,0x00,0x03,0x4d,0xa6,0x00,0x03,0x4d,0xca,0x00,0x03,0x4f,0x2c,0x00,0x03,0x50,0x20,0x00,0x03,0x50,0x4c,0x00,0x03,0x50,0x78,0x00,0x03,0x50,0xa4,0x00,0x03,0x50,0xba, +0x00,0x03,0x50,0xe8,0x00,0x03,0x51,0x16,0x00,0x03,0x51,0xcc,0x00,0x03,0x52,0x38,0x00,0x03,0x53,0x38,0x00,0x03,0x53,0x56,0x00,0x03,0x53,0x7e,0x00,0x03,0x53,0xae,0x00,0x03,0x53,0xde,0x00,0x03,0x54,0xb0,0x00,0x03,0x55,0x42,0x00,0x03,0x56,0x1c,0x00,0x03,0x56,0x34,0x00,0x03,0x56,0x58,0x00,0x03,0x56,0x7c,0x00,0x03,0x56,0xba, +0x00,0x03,0x56,0xde,0x00,0x03,0x57,0x02,0x00,0x03,0x57,0x26,0x00,0x03,0x57,0x4a,0x00,0x03,0x57,0x62,0x00,0x03,0x57,0x86,0x00,0x03,0x57,0xba,0x00,0x03,0x57,0xf8,0x00,0x03,0x58,0x2c,0x00,0x03,0x58,0x50,0x00,0x03,0x58,0x74,0x00,0x03,0x58,0x98,0x00,0x03,0x58,0xbc,0x00,0x03,0x58,0xe0,0x00,0x03,0x59,0x04,0x00,0x03,0x59,0x28, +0x00,0x03,0x59,0x4c,0x00,0x03,0x59,0x80,0x00,0x03,0x59,0xa4,0x00,0x03,0x59,0xc8,0x00,0x03,0x5a,0x4e,0x00,0x03,0x5a,0x72,0x00,0x03,0x5b,0x30,0x00,0x03,0x5b,0xca,0x00,0x03,0x5c,0x42,0x00,0x03,0x5d,0x0e,0x00,0x03,0x5d,0xec,0x00,0x03,0x5e,0x96,0x00,0x03,0x5f,0x0a,0x00,0x03,0x5f,0x92,0x00,0x03,0x5f,0xa2,0x00,0x03,0x60,0x0e, +0x00,0x03,0x60,0x94,0x00,0x03,0x60,0xe0,0x00,0x03,0x61,0x3a,0x00,0x03,0x61,0xba,0x00,0x03,0x62,0x74,0x00,0x03,0x62,0xbc,0x00,0x03,0x63,0x28,0x00,0x03,0x63,0x6a,0x00,0x03,0x64,0x3c,0x00,0x03,0x64,0xea,0x00,0x03,0x65,0x74,0x00,0x03,0x66,0x00,0x00,0x03,0x66,0x6c,0x00,0x03,0x67,0x10,0x00,0x03,0x67,0xe6,0x00,0x03,0x68,0xae, +0x00,0x03,0x69,0x20,0x00,0x03,0x69,0xc6,0x00,0x03,0x6a,0x72,0x00,0x03,0x6b,0x10,0x00,0x03,0x6b,0x6a,0x00,0x03,0x6b,0xe4,0x00,0x03,0x6c,0x30,0x00,0x03,0x6c,0x92,0x00,0x03,0x6d,0x26,0x00,0x03,0x6d,0xda,0x00,0x03,0x6e,0x74,0x00,0x03,0x6f,0x0a,0x00,0x03,0x6f,0x8e,0x00,0x03,0x70,0x12,0x00,0x03,0x70,0xd6,0x00,0x03,0x71,0x3c, +0x00,0x03,0x71,0x66,0x00,0x03,0x71,0x78,0x00,0x03,0x71,0x8a,0x00,0x03,0x71,0x9c,0x00,0x03,0x71,0xae,0x00,0x03,0x71,0xc0,0x00,0x03,0x72,0x78,0x00,0x03,0x73,0x84,0x00,0x03,0x74,0xd6,0x00,0x03,0x75,0x98,0x00,0x03,0x75,0xe6,0x00,0x03,0x76,0x26,0x00,0x03,0x76,0x64,0x00,0x03,0x76,0xa2,0x00,0x03,0x76,0xe0,0x00,0x03,0x77,0x42, +0x00,0x03,0x77,0x6a,0x00,0x03,0x77,0xb6,0x00,0x03,0x77,0xe8,0x00,0x03,0x78,0x1a,0x00,0x03,0x78,0x4c,0x00,0x03,0x78,0x7e,0x00,0x03,0x78,0xbc,0x00,0x03,0x78,0xfa,0x00,0x03,0x79,0x38,0x00,0x03,0x79,0x76,0x00,0x03,0x79,0xa8,0x00,0x03,0x79,0xda,0x00,0x03,0x7a,0x0c,0x00,0x03,0x7a,0x3e,0x00,0x03,0x7a,0x7c,0x00,0x03,0x7a,0xba, +0x00,0x03,0x7a,0xf8,0x00,0x03,0x7b,0x36,0x00,0x03,0x7b,0x68,0x00,0x03,0x7b,0x9a,0x00,0x03,0x7b,0xcc,0x00,0x03,0x7b,0xfe,0x00,0x03,0x7c,0x3c,0x00,0x03,0x7c,0x7a,0x00,0x03,0x7c,0xb8,0x00,0x03,0x7c,0xf6,0x00,0x03,0x7d,0x4a,0x00,0x03,0x7d,0x9e,0x00,0x03,0x7d,0xfc,0x00,0x03,0x7e,0x5a,0x00,0x03,0x7e,0xb0,0x00,0x03,0x7f,0x06, +0x00,0x03,0x7f,0x62,0x00,0x03,0x7f,0xbe,0x00,0x03,0x80,0x70,0x00,0x03,0x81,0x08,0x00,0x03,0x81,0xfa,0x00,0x03,0x83,0x00,0x00,0x03,0x83,0xe8,0x00,0x03,0x84,0xea,0x00,0x03,0x85,0xe4,0x00,0x03,0x86,0x8c,0x00,0x03,0x88,0x02,0x00,0x03,0x88,0xfc,0x00,0x03,0x89,0xec,0x00,0x03,0x8a,0x50,0x00,0x03,0x8b,0x26,0x00,0x03,0x8c,0x02, +0x00,0x03,0x8c,0x46,0x00,0x03,0x8c,0x7c,0x00,0x03,0x8c,0xc4,0x00,0x03,0x8d,0x0a,0x00,0x03,0x8d,0x50,0x00,0x03,0x8d,0xa6,0x00,0x03,0x8d,0xb8,0x00,0x03,0x8d,0xca,0x00,0x03,0x8d,0xdc,0x00,0x03,0x8d,0xee,0x00,0x03,0x8e,0x00,0x00,0x03,0x8e,0x12,0x00,0x03,0x8e,0x24,0x00,0x03,0x8e,0x36,0x00,0x03,0x8e,0x48,0x00,0x03,0x8e,0x5a, +0x00,0x03,0x8e,0x6c,0x00,0x03,0x8e,0x7e,0x00,0x03,0x8e,0x90,0x00,0x03,0x8e,0xa2,0x00,0x03,0x8e,0xb4,0x00,0x03,0x8e,0xd6,0x00,0x03,0x8e,0xf6,0x00,0x03,0x8f,0x16,0x00,0x03,0x8f,0x36,0x00,0x03,0x8f,0x58,0x00,0x03,0x8f,0x78,0x00,0x03,0x8f,0x9a,0x00,0x03,0x8f,0xba,0x00,0x03,0x8f,0xe0,0x00,0x03,0x90,0x02,0x00,0x03,0x90,0x22, +0x00,0x03,0x90,0x42,0x00,0x03,0x90,0x64,0x00,0x03,0x90,0x84,0x00,0x03,0x90,0xa4,0x00,0x03,0x91,0x94,0x00,0x03,0x92,0x46,0x00,0x03,0x92,0xfa,0x00,0x03,0x93,0x74,0x00,0x03,0x93,0xfc,0x00,0x03,0x94,0x82,0x00,0x03,0x95,0x1a,0x00,0x03,0x95,0x9e,0x00,0x03,0x95,0xc8,0x00,0x03,0x96,0x10,0x00,0x03,0x96,0x6a,0x00,0x03,0x96,0xe2, +0x00,0x03,0x97,0x52,0x00,0x03,0x98,0x02,0x00,0x03,0x98,0x82,0x00,0x03,0x98,0xae,0x00,0x03,0x99,0x2e,0x00,0x03,0x99,0x8e,0x00,0x03,0x99,0xf0,0x00,0x03,0x9a,0x40,0x00,0x03,0x9a,0x56,0x00,0x03,0x9a,0x6c,0x00,0x03,0x9a,0x82,0x00,0x03,0x9a,0x9a,0x00,0x03,0x9a,0xb2,0x00,0x03,0x9a,0xca,0x00,0x03,0x9a,0xe2,0x00,0x03,0x9a,0xfa, +0x00,0x03,0x9b,0x98,0x00,0x03,0x9c,0xa6,0x00,0x03,0x9c,0xbe,0x00,0x03,0x9c,0xd6,0x00,0x03,0x9d,0xe8,0x00,0x03,0x9e,0x00,0x00,0x03,0x9f,0x24,0x00,0x03,0x9f,0x78,0x00,0x03,0x9f,0xca,0x00,0x03,0xa0,0x2c,0x00,0x03,0xa1,0x2a,0x00,0x03,0xa1,0xf4,0x00,0x03,0xa2,0x9e,0x00,0x03,0xa3,0x06,0x00,0x03,0xa3,0x68,0x00,0x03,0xa3,0xd6, +0x00,0x03,0xa4,0xa6,0x00,0x03,0xa4,0xbe,0x00,0x03,0xa5,0x74,0x00,0x03,0xa6,0x5e,0x00,0x03,0xa7,0x8e,0x00,0x03,0xa7,0xa6,0x00,0x03,0xa7,0xbe,0x00,0x03,0xa7,0xd6,0x00,0x03,0xa7,0xee,0x00,0x03,0xa8,0x06,0x00,0x03,0xa8,0x16,0x00,0x03,0xa8,0x2e,0x00,0x03,0xa8,0x46,0x00,0x03,0xa8,0xde,0x00,0x03,0xa9,0x44,0x00,0x03,0xaa,0x10, +0x00,0x03,0xaa,0x28,0x00,0x03,0xaa,0x38,0x00,0x03,0xab,0x76,0x00,0x03,0xac,0x34,0x00,0x03,0xac,0x4c,0x00,0x03,0xac,0x64,0x00,0x03,0xac,0x7c,0x00,0x03,0xad,0x7e,0x00,0x03,0xad,0xdc,0x00,0x03,0xae,0x00,0x00,0x03,0xae,0x18,0x00,0x03,0xae,0x30,0x00,0x03,0xae,0x40,0x00,0x03,0xae,0x50,0x00,0x03,0xae,0x60,0x00,0x03,0xae,0x7e, +0x00,0x03,0xae,0x9c,0x00,0x03,0xae,0xc6,0x00,0x03,0xae,0xea,0x00,0x03,0xaf,0x28,0x00,0x03,0xaf,0x52,0x00,0x03,0xaf,0x6a,0x00,0x03,0xb0,0x52,0x00,0x03,0xb0,0xea,0x00,0x03,0xb1,0x00,0x00,0x03,0xb1,0x16,0x00,0x03,0xb1,0x3a,0x00,0x03,0xb1,0x50,0x00,0x03,0xb1,0x68,0x00,0x03,0xb1,0x96,0x00,0x03,0xb1,0xae,0x00,0x03,0xb1,0xc6, +0x00,0x03,0xb1,0xde,0x00,0x03,0xb1,0xf6,0x00,0x03,0xb2,0x0e,0x00,0x03,0xb2,0xdc,0x00,0x03,0xb2,0xf4,0x00,0x03,0xb3,0x6a,0x00,0x03,0xb3,0x82,0x00,0x03,0xb3,0xfa,0x00,0x03,0xb4,0x12,0x00,0x03,0xb5,0x5a,0x00,0x03,0xb5,0x72,0x00,0x03,0xb6,0xb4,0x00,0x03,0xb6,0xcc,0x00,0x03,0xb7,0xa2,0x00,0x03,0xb7,0xba,0x00,0x03,0xb8,0xaa, +0x00,0x03,0xb8,0xc2,0x00,0x03,0xb8,0xfc,0x00,0x03,0xb9,0x14,0x00,0x03,0xb9,0x2c,0x00,0x03,0xba,0x64,0x00,0x03,0xba,0xe4,0x00,0x03,0xbb,0xc6,0x00,0x03,0xbb,0xde,0x00,0x03,0xbc,0x92,0x00,0x03,0xbd,0x74,0x00,0x03,0xbe,0x48,0x00,0x03,0xbe,0x60,0x00,0x03,0xbe,0xa4,0x00,0x03,0xbf,0x76,0x00,0x03,0xbf,0xba,0x00,0x03,0xbf,0xe6, +0x00,0x03,0xc0,0xae,0x00,0x03,0xc0,0xd8,0x00,0x03,0xc1,0xba,0x00,0x03,0xc2,0x42,0x00,0x03,0xc2,0x60,0x00,0x03,0xc2,0x7e,0x00,0x03,0xc2,0x8e,0x00,0x03,0xc3,0x04,0x00,0x03,0xc3,0x14,0x00,0x03,0xc3,0x24,0x00,0x03,0xc3,0x34,0x00,0x03,0xc3,0xb6,0x00,0x03,0xc4,0x84,0x00,0x03,0xc5,0x7c,0x00,0x03,0xc6,0x18,0x00,0x03,0xc6,0x9a, +0x00,0x03,0xc6,0xb2,0x00,0x03,0xc6,0xca,0x00,0x03,0xc7,0xf2,0x00,0x03,0xc9,0x62,0x00,0x03,0xc9,0x7a,0x00,0x03,0xc9,0x92,0x00,0x03,0xca,0x66,0x00,0x03,0xca,0x76,0x00,0x03,0xca,0x8e,0x00,0x03,0xca,0xa4,0x00,0x03,0xca,0xb4,0x00,0x03,0xca,0xc4,0x00,0x03,0xca,0xdc,0x00,0x03,0xca,0xf4,0x00,0x03,0xcb,0x18,0x00,0x03,0xcb,0x28, +0x00,0x03,0xcb,0x38,0x00,0x03,0xcb,0x48,0x00,0x03,0xcb,0x58,0x00,0x03,0xcc,0x3e,0x00,0x03,0xcd,0x2e,0x00,0x03,0xcd,0xea,0x00,0x03,0xcd,0xfa,0x00,0x03,0xce,0x0a,0x00,0x03,0xce,0x1a,0x00,0x03,0xce,0xc6,0x00,0x03,0xce,0xd6,0x00,0x03,0xce,0xee,0x00,0x03,0xcf,0x06,0x00,0x03,0xcf,0x1e,0x00,0x03,0xcf,0x36,0x00,0x03,0xcf,0xcc, +0x00,0x03,0xcf,0xdc,0x00,0x03,0xcf,0xf2,0x00,0x03,0xd0,0xc6,0x00,0x03,0xd0,0xea,0x00,0x03,0xd1,0x02,0x00,0x03,0xd1,0x9e,0x00,0x03,0xd2,0x2a,0x00,0x03,0xd2,0x4e,0x00,0x03,0xd2,0x66,0x00,0x03,0xd2,0x94,0x00,0x03,0xd3,0x00,0x00,0x03,0xd3,0x48,0x00,0x03,0xd3,0x60,0x00,0x03,0xd3,0x78,0x00,0x03,0xd3,0x90,0x00,0x03,0xd3,0xa0, +0x00,0x03,0xd3,0xb0,0x00,0x03,0xd5,0xda,0x00,0x03,0xd6,0x5c,0x00,0x03,0xd6,0x8c,0x00,0x03,0xd8,0x0e,0x00,0x03,0xd8,0x7e,0x00,0x03,0xd8,0x8e,0x00,0x03,0xd9,0x40,0x00,0x03,0xd9,0x50,0x00,0x03,0xd9,0x60,0x00,0x03,0xd9,0x70,0x00,0x03,0xd9,0x80,0x00,0x03,0xda,0x94,0x00,0x03,0xda,0xa4,0x00,0x03,0xdb,0x20,0x00,0x03,0xdb,0xa2, +0x00,0x03,0xdb,0xb8,0x00,0x03,0xdb,0xce,0x00,0x03,0xdb,0xf2,0x00,0x03,0xdc,0x16,0x00,0x03,0xdc,0x2c,0x00,0x03,0xdc,0x42,0x00,0x03,0xdc,0x66,0x00,0x03,0xdc,0x92,0x00,0x03,0xdc,0xaa,0x00,0x03,0xdc,0xca,0x00,0x03,0xdc,0xe2,0x00,0x03,0xdc,0xfa,0x00,0x03,0xdd,0x12,0x00,0x03,0xdd,0x2a,0x00,0x03,0xdd,0x42,0x00,0x03,0xdd,0x5a, +0x00,0x03,0xdd,0x88,0x00,0x03,0xdd,0xb6,0x00,0x03,0xdd,0xce,0x00,0x03,0xdd,0xe6,0x00,0x03,0xdd,0xfe,0x00,0x03,0xde,0x16,0x00,0x03,0xde,0x2e,0x00,0x03,0xde,0x46,0x00,0x03,0xde,0x5e,0x00,0x03,0xde,0x76,0x00,0x03,0xde,0x9a,0x00,0x03,0xde,0xb2,0x00,0x03,0xde,0xca,0x00,0x03,0xde,0xe2,0x00,0x03,0xde,0xfa,0x00,0x03,0xdf,0x12, +0x00,0x03,0xdf,0x2a,0x00,0x03,0xdf,0x50,0x00,0x03,0xdf,0x76,0x00,0x03,0xdf,0x8e,0x00,0x03,0xdf,0xa6,0x00,0x03,0xdf,0xbe,0x00,0x03,0xdf,0xd6,0x00,0x03,0xe1,0x1a,0x00,0x03,0xe2,0x80,0x00,0x03,0xe2,0x98,0x00,0x03,0xe2,0xbe,0x00,0x03,0xe2,0xd6,0x00,0x03,0xe2,0xf6,0x00,0x03,0xe3,0x0e,0x00,0x03,0xe3,0x26,0x00,0x03,0xe3,0x3e, +0x00,0x03,0xe3,0x56,0x00,0x03,0xe3,0x6e,0x00,0x03,0xe3,0x86,0x00,0x03,0xe3,0x9e,0x00,0x03,0xe3,0xb6,0x00,0x03,0xe3,0xda,0x00,0x03,0xe3,0xf8,0x00,0x03,0xe4,0x10,0x00,0x03,0xe4,0x28,0x00,0x03,0xe4,0x48,0x00,0x03,0xe4,0x68,0x00,0x03,0xe4,0x80,0x00,0x03,0xe4,0x98,0x00,0x03,0xe4,0xb8,0x00,0x03,0xe4,0xd8,0x00,0x03,0xe4,0xf0, +0x00,0x03,0xe5,0x08,0x00,0x03,0xe5,0x20,0x00,0x03,0xe5,0x38,0x00,0x03,0xe5,0x50,0x00,0x03,0xe5,0x68,0x00,0x03,0xe5,0x80,0x00,0x03,0xe5,0x98,0x00,0x03,0xe5,0xb0,0x00,0x03,0xe6,0xca,0x00,0x03,0xe6,0xe2,0x00,0x03,0xe6,0xfa,0x00,0x03,0xe7,0x12,0x00,0x03,0xe7,0x32,0x00,0x03,0xe7,0x52,0x00,0x03,0xe7,0x72,0x00,0x03,0xe7,0x8a, +0x00,0x03,0xe7,0xa2,0x00,0x03,0xe7,0xba,0x00,0x03,0xe7,0xd2,0x00,0x03,0xe7,0xea,0x00,0x03,0xe8,0x02,0x00,0x03,0xe8,0x1a,0x00,0x03,0xe8,0x32,0x00,0x03,0xe9,0x24,0x00,0x03,0xea,0x2a,0x00,0x03,0xea,0x42,0x00,0x03,0xea,0x5a,0x00,0x03,0xea,0x72,0x00,0x03,0xea,0x8a,0x00,0x03,0xea,0xa2,0x00,0x03,0xea,0xba,0x00,0x03,0xea,0xd2, +0x00,0x03,0xea,0xea,0x00,0x03,0xeb,0x0a,0x00,0x03,0xeb,0x28,0x00,0x03,0xeb,0x56,0x00,0x03,0xeb,0x82,0x00,0x03,0xeb,0xa2,0x00,0x03,0xeb,0xc0,0x00,0x03,0xeb,0xe0,0x00,0x03,0xeb,0xfe,0x00,0x03,0xec,0x34,0x00,0x03,0xec,0x68,0x00,0x03,0xec,0x80,0x00,0x03,0xec,0x98,0x00,0x03,0xec,0xb0,0x00,0x03,0xec,0xc8,0x00,0x03,0xec,0xf0, +0x00,0x03,0xed,0x18,0x00,0x03,0xed,0xfe,0x00,0x03,0xee,0x16,0x00,0x03,0xee,0x38,0x00,0x03,0xee,0x58,0x00,0x03,0xee,0x70,0x00,0x03,0xee,0x92,0x00,0x03,0xee,0xb2,0x00,0x03,0xee,0xca,0x00,0x03,0xee,0xe2,0x00,0x03,0xee,0xfa,0x00,0x03,0xef,0x12,0x00,0x03,0xef,0x32,0x00,0x03,0xef,0x48,0x00,0x03,0xf0,0x5e,0x00,0x03,0xf0,0x82, +0x00,0x03,0xf0,0xa8,0x00,0x03,0xf0,0xc0,0x00,0x03,0xf0,0xe4,0x00,0x03,0xf0,0xfc,0x00,0x03,0xf1,0x14,0x00,0x03,0xf1,0xe8,0x00,0x03,0xf2,0xfc,0x00,0x03,0xf3,0x14,0x00,0x03,0xf3,0x2c,0x00,0x03,0xf3,0x4c,0x00,0x03,0xf3,0x64,0x00,0x03,0xf3,0x7e,0x00,0x03,0xf3,0xa0,0x00,0x03,0xf3,0xba,0x00,0x03,0xf3,0xd2,0x00,0x03,0xf5,0x4e, +0x00,0x03,0xf6,0x0e,0x00,0x03,0xf6,0xd0,0x00,0x03,0xf7,0x2c,0x00,0x03,0xf8,0x42,0x00,0x03,0xf9,0xc4,0x00,0x03,0xfb,0x5e,0x00,0x03,0xfb,0xd0,0x00,0x03,0xfc,0x46,0x00,0x03,0xfc,0xc8,0x00,0x03,0xfd,0x94,0x00,0x03,0xfe,0xae,0x00,0x03,0xff,0x2c,0x00,0x03,0xff,0xf8,0x00,0x04,0x00,0x0a,0x00,0x04,0x00,0x92,0x00,0x04,0x01,0x2c, +0x00,0x04,0x02,0x62,0x00,0x04,0x02,0xb4,0x00,0x04,0x02,0xfe,0x00,0x04,0x03,0xca,0x00,0x04,0x03,0xea,0x00,0x04,0x04,0x0a,0x00,0x04,0x04,0x2a,0x00,0x04,0x04,0x4a,0x00,0x04,0x04,0x6a,0x00,0x04,0x04,0x8a,0x00,0x04,0x04,0xaa,0x00,0x04,0x04,0xca,0x00,0x04,0x04,0xe2,0x00,0x04,0x04,0xfa,0x00,0x04,0x05,0x26,0x00,0x04,0x05,0x52, +0x00,0x04,0x05,0x70,0x00,0x04,0x05,0x8e,0x00,0x04,0x05,0xae,0x00,0x04,0x05,0xce,0x00,0x04,0x05,0xee,0x00,0x04,0x06,0x0e,0x00,0x04,0x06,0x2e,0x00,0x04,0x06,0x4e,0x00,0x04,0x06,0x7e,0x00,0x04,0x06,0xae,0x00,0x04,0x06,0xce,0x00,0x04,0x06,0xee,0x00,0x04,0x07,0xb0,0x00,0x04,0x08,0x12,0x00,0x04,0x08,0x2a,0x00,0x04,0x08,0x42, +0x00,0x04,0x08,0x6e,0x00,0x04,0x08,0x8c,0x00,0x04,0x08,0xaa,0x00,0x04,0x0b,0x1c,0x00,0x04,0x0b,0x66,0x00,0x04,0x0c,0x5e,0x00,0x04,0x0c,0xf4,0x00,0x04,0x0d,0xd6,0x00,0x04,0x0e,0x96,0x00,0x04,0x0e,0xda,0x00,0x04,0x10,0x3e,0x00,0x04,0x11,0x0a,0x00,0x04,0x11,0xda,0x00,0x04,0x12,0xa4,0x00,0x04,0x13,0xdc,0x00,0x04,0x14,0x86, +0x00,0x04,0x14,0xb6,0x00,0x04,0x15,0x7c,0x00,0x04,0x15,0xfe,0x00,0x04,0x16,0x28,0x00,0x04,0x16,0x4c,0x00,0x04,0x16,0x70,0x00,0x04,0x16,0x88,0x00,0x04,0x16,0xa0,0x00,0x04,0x16,0xb8,0x00,0x04,0x16,0xdc,0x00,0x04,0x17,0x00,0x00,0x04,0x17,0x24,0x00,0x04,0x18,0x08,0x00,0x04,0x18,0xa0,0x00,0x04,0x19,0x52,0x00,0x04,0x19,0x6a, +0x00,0x04,0x19,0x82,0x00,0x04,0x19,0xaa,0x00,0x04,0x19,0xc2,0x00,0x04,0x19,0xda,0x00,0x04,0x1b,0x8a,0x00,0x04,0x1c,0x82,0x00,0x04,0x1e,0x16,0x00,0x04,0x1f,0x10,0x00,0x04,0x20,0xae,0x00,0x04,0x21,0xbc,0x00,0x04,0x22,0xd0,0x00,0x04,0x23,0x76,0x00,0x04,0x23,0xa6,0x00,0x04,0x23,0xe0,0x00,0x04,0x24,0x1a,0x00,0x04,0x24,0x5c, +0x00,0x04,0x25,0x26,0x00,0x04,0x25,0x90,0x00,0x04,0x25,0xa8,0x00,0x04,0x25,0xc0,0x00,0x04,0x25,0xe0,0x00,0x04,0x26,0x00,0x00,0x04,0x26,0x18,0x00,0x04,0x26,0x30,0x00,0x04,0x26,0x50,0x00,0x04,0x26,0x70,0x00,0x04,0x26,0x90,0x00,0x04,0x26,0xb0,0x00,0x04,0x26,0xd4,0x00,0x04,0x26,0xf8,0x00,0x04,0x27,0x10,0x00,0x04,0x27,0x28, +0x00,0x04,0x27,0x40,0x00,0x04,0x27,0x58,0x00,0x04,0x27,0x70,0x00,0x04,0x28,0x98,0x00,0x04,0x29,0xfc,0x00,0x04,0x2a,0x14,0x00,0x04,0x2a,0x34,0x00,0x04,0x2a,0x58,0x00,0x04,0x2a,0x70,0x00,0x04,0x2a,0x88,0x00,0x04,0x2a,0xa0,0x00,0x04,0x2a,0xb8,0x00,0x04,0x2a,0xd0,0x00,0x04,0x2a,0xe8,0x00,0x04,0x2b,0x00,0x00,0x04,0x2b,0x18, +0x00,0x04,0x2b,0x30,0x00,0x04,0x2b,0x48,0x00,0x04,0x2b,0x60,0x00,0x04,0x2b,0x78,0x00,0x04,0x2b,0x90,0x00,0x04,0x2b,0xa8,0x00,0x04,0x2b,0xc0,0x00,0x04,0x2b,0xd8,0x00,0x04,0x2b,0xf0,0x00,0x04,0x2c,0x08,0x00,0x04,0x2c,0x20,0x00,0x04,0x2c,0x38,0x00,0x04,0x2c,0x50,0x00,0x04,0x2c,0x68,0x00,0x04,0x2c,0x80,0x00,0x04,0x2c,0x98, +0x00,0x04,0x2c,0xb0,0x00,0x04,0x2c,0xc8,0x00,0x04,0x2c,0xe0,0x00,0x04,0x2c,0xf8,0x00,0x04,0x2d,0x10,0x00,0x04,0x2d,0x28,0x00,0x04,0x2d,0x40,0x00,0x04,0x2d,0x58,0x00,0x04,0x2d,0x70,0x00,0x04,0x2d,0x88,0x00,0x04,0x2d,0xaa,0x00,0x04,0x2d,0xca,0x00,0x04,0x2d,0xea,0x00,0x04,0x2e,0x16,0x00,0x04,0x2e,0x42,0x00,0x04,0x2e,0x78, +0x00,0x04,0x2e,0x90,0x00,0x04,0x2e,0xa8,0x00,0x04,0x2e,0xbe,0x00,0x04,0x2e,0xd4,0x00,0x04,0x2e,0xec,0x00,0x04,0x2f,0x04,0x00,0x04,0x2f,0x1c,0x00,0x04,0x2f,0x34,0x00,0x04,0x2f,0x44,0x00,0x04,0x2f,0x64,0x00,0x04,0x2f,0x84,0x00,0x04,0x2f,0xc0,0x00,0x04,0x2f,0xfc,0x00,0x04,0x30,0x32,0x00,0x04,0x30,0x68,0x00,0x04,0x30,0xf6, +0x00,0x04,0x31,0xf0,0x00,0x04,0x32,0x88,0x00,0x04,0x32,0x98,0x00,0x04,0x32,0xce,0x00,0x04,0x32,0xf2,0x00,0x04,0x33,0xaa,0x00,0x04,0x34,0x86,0x00,0x04,0x35,0x44,0x00,0x04,0x35,0xf8,0x00,0x04,0x37,0x28,0x00,0x04,0x37,0xb4,0x00,0x04,0x38,0x7c,0x00,0x04,0x39,0x56,0x00,0x04,0x39,0x66,0x00,0x04,0x39,0x9c,0x00,0x04,0x39,0xd2, +0x00,0x04,0x39,0xe2,0x00,0x04,0x3a,0x06,0x00,0x04,0x3a,0x2a,0x00,0x04,0x3a,0x42,0x00,0x04,0x3a,0x5a,0x00,0x04,0x3b,0x5e,0x00,0x04,0x3c,0x10,0x00,0x04,0x3c,0x20,0x00,0x04,0x3c,0x30,0x00,0x04,0x3c,0x54,0x00,0x04,0x3c,0x78,0x00,0x04,0x3c,0x90,0x00,0x04,0x3c,0xa8,0x00,0x04,0x3c,0xcc,0x00,0x04,0x3c,0xf2,0x00,0x04,0x3d,0x12, +0x00,0x04,0x3d,0x32,0x00,0x04,0x3d,0x44,0x00,0x04,0x3d,0x78,0x00,0x04,0x3d,0xe2,0x00,0x04,0x3f,0x42,0x00,0x04,0x3f,0x9a,0x00,0x04,0x3f,0xaa,0x00,0x04,0x40,0x76,0x00,0x04,0x41,0x02,0x00,0x04,0x41,0x1a,0x00,0x04,0x41,0xc4,0x00,0x04,0x41,0xe8,0x00,0x04,0x42,0x0c,0x00,0x04,0x42,0x30,0x00,0x04,0x42,0x40,0x00,0x04,0x42,0x64, +0x00,0x04,0x42,0x7c,0x00,0x04,0x42,0x94,0x00,0x04,0x42,0xac,0x00,0x04,0x42,0xc4,0x00,0x04,0x43,0xb4,0x00,0x04,0x43,0xfc,0x00,0x04,0x44,0x44,0x00,0x04,0x44,0xe0,0x00,0x04,0x45,0x3e,0x00,0x04,0x45,0xba,0x00,0x04,0x46,0x1c,0x00,0x04,0x46,0x54,0x00,0x04,0x46,0xa6,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa, +0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x47,0x98,0x00,0x04,0x47,0xb0,0x00,0x04,0x47,0xc8,0x00,0x04,0x47,0xe0, +0x00,0x04,0x47,0xf8,0x00,0x04,0x48,0x10,0x00,0x04,0x48,0x28,0x00,0x04,0x48,0x4c,0x00,0x04,0x48,0x6a,0x00,0x04,0x48,0x82,0x00,0x04,0x48,0x9a,0x00,0x04,0x48,0xb2,0x00,0x04,0x48,0xca,0x00,0x04,0x48,0xda,0x00,0x04,0x48,0xea,0x00,0x04,0x49,0xb8,0x00,0x04,0x4a,0x20,0x00,0x04,0x4a,0x30,0x00,0x04,0x4a,0x40,0x00,0x04,0x4a,0x50, +0x00,0x04,0x4a,0x60,0x00,0x04,0x4b,0x4e,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x8a,0x00,0x04,0x4b,0xb4,0x00,0x04,0x4b,0xfe,0x00,0x04,0x4c,0x3c,0x00,0x04,0x4c,0x82,0x00,0x04,0x4c,0xc2, +0x00,0x04,0x4d,0x24,0x00,0x04,0x4d,0x34,0x00,0x04,0x4d,0x66,0x00,0x04,0x4d,0xd6,0x00,0x04,0x4e,0xac,0x00,0x04,0x4f,0x30,0x00,0x04,0x4f,0x58,0x00,0x04,0x4f,0x80,0x00,0x04,0x4f,0xa8,0x00,0x04,0x4f,0xd0,0x00,0x04,0x4f,0xf8,0x00,0x04,0x50,0x20,0x00,0x04,0x50,0xc0,0x00,0x04,0x51,0x2a,0x00,0x04,0x51,0xd8,0x00,0x04,0x52,0x74, +0x00,0x04,0x53,0x2a,0x00,0x04,0x53,0x9e,0x00,0x04,0x53,0xcc,0x00,0x04,0x54,0x80,0x00,0x04,0x54,0x90,0x00,0x04,0x55,0x78,0x00,0x04,0x56,0x5c,0x00,0x04,0x56,0x98,0x00,0x04,0x56,0xd4,0x00,0x04,0x57,0x32,0x00,0x04,0x57,0x8e,0x00,0x04,0x57,0xee,0x00,0x04,0x58,0x2a,0x00,0x04,0x58,0x3a,0x00,0x04,0x58,0x7c,0x00,0x04,0x58,0xb6, +0x00,0x04,0x58,0xc6,0x00,0x04,0x58,0xec,0x00,0x04,0x59,0x12,0x00,0x04,0x59,0x8c,0x00,0x04,0x5a,0x38,0x00,0x04,0x5a,0xca,0x00,0x04,0x5b,0x6c,0x00,0x04,0x5b,0xb4,0x00,0x04,0x5c,0x30,0x00,0x04,0x5c,0xe2,0x00,0x04,0x5d,0x0e,0x00,0x04,0x5d,0x4a,0x00,0x04,0x5d,0x8e,0x00,0x04,0x5e,0x34,0x00,0x04,0x5e,0x76,0x00,0x04,0x5e,0xa0, +0x00,0x04,0x5e,0xd0,0x00,0x04,0x5e,0xf8,0x00,0x04,0x5f,0x26,0x00,0x04,0x5f,0x6a,0x00,0x04,0x5f,0xae,0x00,0x04,0x60,0x30,0x00,0x04,0x60,0x74,0x00,0x04,0x60,0xba,0x00,0x04,0x61,0x84,0x00,0x04,0x62,0x2a,0x00,0x04,0x62,0xe0,0x00,0x04,0x63,0x52,0x00,0x04,0x63,0xe4,0x00,0x04,0x64,0x14,0x00,0x04,0x64,0xa4,0x00,0x04,0x65,0x1e, +0x00,0x04,0x65,0xd4,0x00,0x04,0x66,0x02,0x00,0x04,0x66,0x6c,0x00,0x04,0x67,0x16,0x00,0x04,0x67,0xd6,0x00,0x04,0x68,0x5c,0x00,0x04,0x69,0x3c,0x00,0x04,0x69,0x6e,0x00,0x04,0x69,0xf2,0x00,0x04,0x6a,0x9a,0x00,0x04,0x6b,0x26,0x00,0x04,0x6b,0xbc,0x00,0x04,0x6c,0x86,0x00,0x04,0x6d,0x3e,0x00,0x04,0x6d,0xda,0x00,0x04,0x6e,0xaa, +0x00,0x04,0x6f,0x12,0x00,0x04,0x70,0x04,0x00,0x04,0x70,0xce,0x00,0x04,0x70,0xe6,0x00,0x04,0x70,0xfe,0x00,0x04,0x71,0x16,0x00,0x04,0x71,0x44,0x00,0x04,0x71,0x90,0x00,0x04,0x71,0xa8,0x00,0x04,0x71,0xc0,0x00,0x04,0x71,0xd6,0x00,0x04,0x71,0xf4,0x00,0x04,0x72,0x5a,0x00,0x04,0x72,0xe0,0x00,0x04,0x72,0xf0,0x00,0x04,0x73,0x00, +0x00,0x04,0x73,0x10,0x00,0x04,0x73,0x20,0x00,0x04,0x73,0x30,0x00,0x04,0x73,0x40,0x00,0x04,0x73,0x50,0x00,0x04,0x73,0x60,0x00,0x04,0x73,0xa0,0x00,0x04,0x73,0xb8,0x00,0x04,0x73,0xd0,0x00,0x04,0x73,0xf0,0x00,0x04,0x74,0x10,0x00,0x04,0x74,0x28,0x00,0x04,0x74,0x40,0x00,0x04,0x74,0x58,0x00,0x04,0x74,0x70,0x00,0x04,0x74,0x88, +0x00,0x04,0x74,0xa0,0x00,0x04,0x74,0xb8,0x00,0x04,0x74,0xce,0x00,0x04,0x74,0xe4,0x00,0x04,0x74,0xfc,0x00,0x04,0x75,0x14,0x00,0x04,0x75,0x2c,0x00,0x04,0x75,0x44,0x00,0x04,0x75,0x5c,0x00,0x04,0x75,0x74,0x00,0x04,0x75,0x8c,0x00,0x04,0x75,0xa4,0x00,0x04,0x75,0xbc,0x00,0x04,0x75,0xd4,0x00,0x04,0x75,0xec,0x00,0x04,0x76,0x04, +0x00,0x04,0x76,0x1c,0x00,0x04,0x76,0x34,0x00,0x04,0x76,0x4c,0x00,0x04,0x76,0x64,0x00,0x04,0x76,0x7c,0x00,0x04,0x76,0x94,0x00,0x04,0x76,0xac,0x00,0x04,0x77,0x4e,0x00,0x04,0x79,0x8e,0x00,0x04,0x79,0xcc,0x00,0x04,0x79,0xf6,0x00,0x04,0x7a,0x06,0x00,0x04,0x7a,0x1e,0x00,0x04,0x7a,0x36,0x00,0x04,0x7a,0x4e,0x00,0x04,0x7a,0xc2, +0x00,0x04,0x7b,0x6c,0x00,0x04,0x7b,0xc2,0x00,0x04,0x7c,0x38,0x00,0x04,0x7c,0xc4,0x00,0x04,0x7d,0x04,0x00,0x04,0x7d,0x30,0x00,0x04,0x7d,0xea,0x00,0x04,0x7e,0x2a,0x00,0x04,0x7e,0x8a,0x00,0x04,0x7e,0xfc,0x00,0x04,0x7f,0x3c,0x00,0x04,0x7f,0x7c,0x00,0x04,0x7f,0xee,0x00,0x04,0x80,0xd4,0x00,0x04,0x81,0x50,0x00,0x04,0x81,0xb8, +0x00,0x04,0x82,0x30,0x00,0x04,0x82,0x64,0x00,0x04,0x82,0xc4,0x00,0x04,0x83,0x04,0x00,0x04,0x83,0x76,0x00,0x04,0x83,0xcc,0x00,0x04,0x84,0x0c,0x00,0x04,0x84,0x86,0x00,0x04,0x84,0x96,0x00,0x04,0x84,0xe6,0x00,0x04,0x85,0x18,0x00,0x04,0x85,0x58,0x00,0x04,0x86,0x14,0x00,0x04,0x86,0x78,0x00,0x04,0x86,0x88,0x00,0x04,0x87,0x06, +0x00,0x04,0x87,0x1e,0x00,0x04,0x87,0x66,0x00,0x04,0x88,0x4c,0x00,0x04,0x88,0xf0,0x00,0x04,0x89,0x9a,0x00,0x04,0x8a,0x92,0x00,0x04,0x8b,0x26,0x00,0x04,0x8b,0xe8,0x00,0x04,0x8c,0xa6,0x00,0x04,0x8d,0x6a,0x00,0x04,0x8d,0xa2,0x00,0x04,0x8e,0x72,0x00,0x04,0x8f,0x44,0x00,0x04,0x90,0x30,0x00,0x04,0x90,0xbc,0x00,0x04,0x92,0x1a, +0x00,0x04,0x92,0x9e,0x00,0x04,0x93,0x30,0x00,0x04,0x93,0xe4,0x00,0x04,0x94,0x76,0x00,0x04,0x95,0x16,0x00,0x04,0x96,0x70,0x00,0x04,0x97,0x68,0x00,0x04,0x97,0xe8,0x00,0x04,0x98,0x56,0x00,0x04,0x98,0xd0,0x00,0x04,0x99,0x92,0x00,0x04,0x9a,0x12,0x00,0x04,0x9a,0xfa,0x00,0x04,0x9b,0xd6,0x00,0x04,0x9c,0x8a,0x00,0x04,0x9d,0xc4, +0x00,0x04,0x9e,0x52,0x00,0x04,0x9f,0x02,0x00,0x04,0x9f,0x98,0x00,0x04,0xa0,0x2e,0x00,0x04,0xa0,0xe4,0x00,0x04,0xa1,0x66,0x00,0x04,0xa1,0xea,0x00,0x04,0xa2,0xe4,0x00,0x04,0xa3,0xc0,0x00,0x04,0xa4,0xbe,0x00,0x04,0xa6,0x06,0x00,0x04,0xa7,0xe6,0x00,0x04,0xa8,0xd0,0x00,0x04,0xaa,0x1e,0x00,0x04,0xab,0x34,0x00,0x04,0xac,0xb0, +0x00,0x04,0xad,0x90,0x00,0x04,0xae,0x9e,0x00,0x04,0xb1,0x10,0x00,0x04,0xb2,0x16,0x00,0x04,0xb3,0x1a,0x00,0x04,0xb4,0x7e,0x00,0x04,0xb5,0xc2,0x00,0x04,0xb6,0xd6,0x00,0x04,0xb8,0xb0,0x00,0x04,0xb9,0x70,0x00,0x04,0xbb,0x5c,0x00,0x04,0xbd,0x34,0x00,0x04,0xbf,0x22,0x00,0x04,0xc0,0x4c,0x00,0x04,0xc1,0xf0,0x00,0x04,0xc3,0x60, +0x00,0x04,0xc4,0xa0,0x00,0x04,0xc5,0x9a,0x00,0x04,0xc6,0xf4,0x00,0x04,0xc7,0xcc,0x00,0x04,0xc9,0x6e,0x00,0x04,0xcb,0x30,0x00,0x04,0xcc,0x28,0x00,0x04,0xce,0x26,0x00,0x04,0xcf,0x78,0x00,0x04,0xd1,0x0a,0x00,0x04,0xd2,0x8c,0x00,0x04,0xd3,0xa4,0x00,0x04,0xd5,0x42,0x00,0x04,0xd6,0x64,0x00,0x04,0xd7,0xf0,0x00,0x04,0xd9,0x3c, +0x00,0x04,0xda,0x58,0x00,0x04,0xdb,0xb2,0x00,0x04,0xdc,0xda,0x00,0x04,0xdd,0x7c,0x00,0x04,0xde,0x6a,0x00,0x04,0xdf,0x8c,0x00,0x04,0xe0,0xb2,0x00,0x04,0xe2,0x08,0x00,0x04,0xe3,0xbe,0x00,0x04,0xe4,0xbe,0x00,0x04,0xe6,0x0e,0x00,0x04,0xe7,0x6e,0x00,0x04,0xe9,0x48,0x00,0x04,0xe9,0xfc,0x00,0x04,0xeb,0x40,0x00,0x04,0xec,0xe8, +0x00,0x04,0xee,0x6c,0x00,0x04,0xef,0xaa,0x00,0x04,0xf1,0x0c,0x00,0x04,0xf2,0x3a,0x00,0x04,0xf3,0x6a,0x00,0x04,0xf4,0xe6,0x00,0x04,0xf5,0xe2,0x00,0x04,0xf7,0x42,0x00,0x04,0xf8,0xc6,0x00,0x04,0xfa,0xc8,0x00,0x04,0xfc,0x22,0x00,0x04,0xfd,0x16,0x00,0x04,0xfe,0x04,0x00,0x04,0xff,0x1c,0x00,0x05,0x00,0x54,0x00,0x05,0x01,0x9c, +0x00,0x05,0x03,0x02,0x00,0x05,0x04,0x58,0x00,0x05,0x05,0xf8,0x00,0x05,0x07,0x50,0x00,0x05,0x08,0x46,0x00,0x05,0x09,0xaa,0x00,0x05,0x0a,0xb2,0x00,0x05,0x0b,0x62,0x00,0x05,0x0c,0x98,0x00,0x05,0x0d,0x88,0x00,0x05,0x0f,0x2a,0x00,0x05,0x10,0x08,0x00,0x05,0x10,0xc4,0x00,0x05,0x11,0xa0,0x00,0x05,0x12,0x42,0x00,0x05,0x12,0xe8, +0x00,0x05,0x13,0xee,0x00,0x05,0x14,0x5e,0x00,0x05,0x14,0xe0,0x00,0x05,0x16,0x2a,0x00,0x05,0x16,0xfe,0x00,0x05,0x17,0xb0,0x00,0x05,0x18,0x04,0x00,0x05,0x18,0xc0,0x00,0x05,0x1a,0x34,0x00,0x05,0x1a,0xca,0x00,0x05,0x1b,0xa8,0x00,0x05,0x1d,0x26,0x00,0x05,0x1d,0xb8,0x00,0x05,0x1e,0x9a,0x00,0x05,0x1f,0x2e,0x00,0x05,0x20,0x76, +0x00,0x05,0x21,0x06,0x00,0x05,0x22,0x18,0x00,0x05,0x22,0xa6,0x00,0x05,0x23,0xae,0x00,0x05,0x24,0x5e,0x00,0x05,0x25,0xc4,0x00,0x05,0x26,0x6e,0x00,0x05,0x26,0xfe,0x00,0x05,0x27,0x96,0x00,0x05,0x28,0xf2,0x00,0x05,0x29,0x78,0x00,0x05,0x2a,0xd4,0x00,0x05,0x2b,0x7e,0x00,0x05,0x2c,0x88,0x00,0x05,0x2d,0xae,0x00,0x05,0x2e,0x98, +0x00,0x05,0x2f,0xba,0x00,0x05,0x30,0x3a,0x00,0x05,0x30,0x94,0x00,0x05,0x30,0xd4,0x00,0x05,0x31,0x44,0x00,0x05,0x31,0x90,0x00,0x05,0x32,0xae,0x00,0x05,0x32,0xfe,0x00,0x05,0x33,0xee,0x00,0x05,0x34,0x92,0x00,0x05,0x35,0x6a,0x00,0x05,0x36,0x0e,0x00,0x05,0x36,0xb8,0x00,0x05,0x37,0x80,0x00,0x05,0x37,0xd0,0x00,0x05,0x38,0x6e, +0x00,0x05,0x39,0x96,0x00,0x05,0x3a,0x5a,0x00,0x05,0x3a,0xe4,0x00,0x05,0x3b,0x1e,0x00,0x05,0x3b,0xf6,0x00,0x05,0x3d,0x38,0x00,0x05,0x3d,0xae,0x00,0x05,0x3e,0x82,0x00,0x05,0x3f,0xa2,0x00,0x05,0x40,0x3e,0x00,0x05,0x41,0x46,0x00,0x05,0x41,0xc8,0x00,0x05,0x42,0x08,0x00,0x05,0x42,0x88,0x00,0x05,0x43,0x7a,0x00,0x05,0x44,0x4e, +0x00,0x05,0x45,0x3a,0x00,0x05,0x45,0xf6,0x00,0x05,0x47,0x36,0x00,0x05,0x47,0xda,0x00,0x05,0x48,0xba,0x00,0x05,0x49,0x40,0x00,0x05,0x4a,0x02,0x00,0x05,0x4a,0x92,0x00,0x05,0x4b,0xaa,0x00,0x05,0x4b,0xe4,0x00,0x05,0x4c,0xaa,0x00,0x05,0x4d,0x7a,0x00,0x05,0x4e,0x54,0x00,0x05,0x4f,0x90,0x00,0x05,0x50,0x14,0x00,0x05,0x50,0x96, +0x00,0x05,0x50,0xf4,0x00,0x05,0x51,0xd8,0x00,0x05,0x52,0xde,0x00,0x05,0x53,0xca,0x00,0x05,0x54,0xbe,0x00,0x05,0x55,0xda,0x00,0x05,0x56,0xb6,0x00,0x05,0x57,0x24,0x00,0x05,0x57,0x34,0x00,0x05,0x57,0xac,0x00,0x05,0x58,0x04,0x00,0x05,0x58,0xa2,0x00,0x05,0x59,0x60,0x00,0x05,0x59,0xde,0x00,0x05,0x5a,0x80,0x00,0x05,0x5b,0x4c, +0x00,0x05,0x5b,0xb6,0x00,0x05,0x5c,0xce,0x00,0x05,0x5d,0x96,0x00,0x05,0x5d,0xa6,0x00,0x05,0x5d,0xfe,0x00,0x05,0x5e,0x0e,0x00,0x05,0x5e,0x1e,0x00,0x05,0x5e,0x2e,0x00,0x05,0x5e,0x3e,0x00,0x05,0x5e,0x4e,0x00,0x05,0x5e,0x5e,0x00,0x05,0x5e,0x6e,0x00,0x05,0x5e,0x7e,0x00,0x05,0x5e,0xfa,0x00,0x05,0x5f,0x58,0x00,0x05,0x60,0x02, +0x00,0x05,0x60,0xd0,0x00,0x05,0x61,0x4c,0x00,0x05,0x61,0xf6,0x00,0x05,0x62,0xc2,0x00,0x05,0x63,0x2e,0x00,0x05,0x64,0x46,0x00,0x05,0x65,0x10,0x00,0x05,0x65,0xe4,0x00,0x05,0x66,0x8e,0x00,0x05,0x67,0x82,0x00,0x05,0x68,0xcc,0x00,0x05,0x69,0x9e,0x00,0x05,0x6a,0x9e,0x00,0x05,0x6b,0xbc,0x00,0x05,0x6c,0xa0,0x00,0x05,0x6e,0x1c, +0x00,0x05,0x6f,0x50,0x00,0x05,0x6f,0xb4,0x00,0x05,0x6f,0xd0,0x00,0x05,0x6f,0xec,0x00,0x05,0x70,0x08,0x00,0x05,0x70,0x26,0x00,0x05,0x70,0x42,0x00,0x05,0x71,0x0c,0x00,0x05,0x71,0x28,0x00,0x05,0x71,0x48,0x00,0x05,0x72,0x18,0x00,0x05,0x72,0x90,0x00,0x05,0x73,0x46,0x00,0x05,0x73,0xba,0x00,0x05,0x74,0x2a,0x00,0x05,0x74,0x96, +0x00,0x05,0x74,0xec,0x00,0x05,0x75,0x82,0x00,0x05,0x75,0xd8,0x00,0x05,0x76,0x00,0x00,0x05,0x76,0x52,0x00,0x05,0x76,0xcc,0x00,0x05,0x77,0x02,0x00,0x05,0x77,0x94,0x00,0x05,0x78,0x02,0x00,0x05,0x78,0x88,0x00,0x05,0x78,0xfa,0x00,0x05,0x79,0x98,0x00,0x05,0x7a,0x36,0x00,0x05,0x7a,0xf6,0x00,0x05,0x7b,0x3a,0x00,0x05,0x7b,0x9c, +0x00,0x05,0x7b,0xee,0x00,0x05,0x7c,0x80,0x00,0x05,0x7c,0xf0,0x00,0x05,0x7d,0x50,0x00,0x05,0x7d,0xa6,0x00,0x05,0x7e,0x4c,0x00,0x05,0x7f,0x26,0x00,0x05,0x7f,0x92,0x00,0x05,0x80,0x5c,0x00,0x05,0x80,0xda,0x00,0x05,0x81,0x74,0x00,0x05,0x82,0x50,0x00,0x05,0x82,0x74,0x00,0x05,0x82,0x98,0x00,0x05,0x82,0xbc,0x00,0x05,0x82,0xe0, +0x00,0x05,0x83,0x04,0x00,0x05,0x83,0x28,0x00,0x05,0x83,0x40,0x00,0x05,0x83,0x62,0x00,0x05,0x83,0x86,0x00,0x05,0x83,0xa8,0x00,0x05,0x83,0xcc,0x00,0x05,0x83,0xee,0x00,0x05,0x84,0x10,0x00,0x05,0x84,0x32,0x00,0x05,0x84,0x58,0x00,0x05,0x84,0x7c,0x00,0x05,0x84,0xa0,0x00,0x05,0x84,0xc4,0x00,0x05,0x84,0xe8,0x00,0x05,0x85,0x0c, +0x00,0x05,0x85,0x32,0x00,0x05,0x85,0x56,0x00,0x05,0x85,0x7a,0x00,0x05,0x85,0x9e,0x00,0x05,0x85,0xc4,0x00,0x05,0x85,0xe8,0x00,0x05,0x86,0x0c,0x00,0x05,0x86,0x30,0x00,0x05,0x86,0x48,0x00,0x05,0x86,0x6c,0x00,0x05,0x86,0x90,0x00,0x05,0x86,0xb4,0x00,0x05,0x86,0xd8,0x00,0x05,0x86,0xe8,0x00,0x05,0x87,0x0c,0x00,0x05,0x87,0x30, +0x00,0x05,0x87,0x54,0x00,0x05,0x87,0x6c,0x00,0x05,0x87,0x8e,0x00,0x05,0x87,0xb2,0x00,0x05,0x87,0xca,0x00,0x05,0x87,0xee,0x00,0x05,0x88,0x12,0x00,0x05,0x88,0xa4,0x00,0x05,0x88,0xc6,0x00,0x05,0x88,0xe8,0x00,0x05,0x89,0x0a,0x00,0x05,0x89,0x20,0x00,0x05,0x89,0x42,0x00,0x05,0x89,0x5a,0x00,0x05,0x89,0x7c,0x00,0x05,0x89,0x94, +0x00,0x05,0x89,0xb6,0x00,0x05,0x89,0xcc,0x00,0x05,0x89,0xe4,0x00,0x05,0x89,0xfc,0x00,0x05,0x8a,0x20,0x00,0x05,0x8a,0x38,0x00,0x05,0x8a,0x5c,0x00,0x05,0x8b,0x04,0x00,0x05,0x8b,0x28,0x00,0x05,0x8b,0x4c,0x00,0x05,0x8b,0x72,0x00,0x05,0x8b,0x96,0x00,0x05,0x8b,0xae,0x00,0x05,0x8b,0xd2,0x00,0x05,0x8b,0xf6,0x00,0x05,0x8c,0x18, +0x00,0x05,0x8c,0x30,0x00,0x05,0x8c,0x52,0x00,0x05,0x8c,0x6a,0x00,0x05,0x8c,0x80,0x00,0x05,0x8c,0xa2,0x00,0x05,0x8d,0x1c,0x00,0x05,0x8d,0x40,0x00,0x05,0x8d,0x64,0x00,0x05,0x8d,0x88,0x00,0x05,0x8d,0xae,0x00,0x05,0x8d,0xd4,0x00,0x05,0x8d,0xec,0x00,0x05,0x8e,0x10,0x00,0x05,0x8e,0x34,0x00,0x05,0x8e,0x58,0x00,0x05,0x8e,0x7e, +0x00,0x05,0x8e,0xa0,0x00,0x05,0x8e,0xc4,0x00,0x05,0x8e,0xe6,0x00,0x05,0x8f,0x0a,0x00,0x05,0x8f,0x2e,0x00,0x05,0x8f,0x52,0x00,0x05,0x8f,0x9e,0x00,0x05,0x8f,0xc2,0x00,0x05,0x8f,0xe6,0x00,0x05,0x8f,0xf6,0x00,0x05,0x90,0x06,0x00,0x05,0x90,0x40,0x00,0x05,0x90,0xa6,0x00,0x05,0x90,0xb6,0x00,0x05,0x90,0xc6,0x00,0x05,0x90,0xd6, +0x00,0x05,0x91,0x7c,0x00,0x05,0x91,0x8c,0x00,0x05,0x91,0x9c,0x00,0x05,0x91,0xfa,0x00,0x05,0x92,0x0a,0x00,0x05,0x92,0x1a,0x00,0x05,0x92,0x82,0x00,0x05,0x92,0x92,0x00,0x05,0x92,0xd2,0x00,0x05,0x92,0xe2,0x00,0x05,0x93,0x4e,0x00,0x05,0x93,0x5e,0x00,0x05,0x93,0x6e,0x00,0x05,0x94,0x4e,0x00,0x05,0x94,0x5e,0x00,0x05,0x94,0xe8, +0x00,0x05,0x95,0x8e,0x00,0x05,0x95,0xb2,0x00,0x05,0x95,0xd6,0x00,0x05,0x95,0xfa,0x00,0x05,0x96,0x1c,0x00,0x05,0x96,0x40,0x00,0x05,0x96,0x64,0x00,0x05,0x96,0x88,0x00,0x05,0x96,0xae,0x00,0x05,0x96,0xd2,0x00,0x05,0x96,0xf6,0x00,0x05,0x97,0x8c,0x00,0x05,0x97,0xb0,0x00,0x05,0x98,0x36,0x00,0x05,0x98,0x46,0x00,0x05,0x98,0x56, +0x00,0x05,0x98,0x7c,0x00,0x05,0x98,0x8c,0x00,0x05,0x99,0x5c,0x00,0x05,0x9a,0x0a,0x00,0x05,0x9a,0x7e,0x00,0x05,0x9a,0xa2,0x00,0x05,0x9a,0xc6,0x00,0x05,0x9b,0x24,0x00,0x05,0x9b,0x34,0x00,0x05,0x9b,0xba,0x00,0x05,0x9b,0xca,0x00,0x05,0x9b,0xda,0x00,0x05,0x9c,0x78,0x00,0x05,0x9c,0x88,0x00,0x05,0x9d,0x0c,0x00,0x05,0x9d,0xc6, +0x00,0x05,0x9e,0x38,0x00,0x05,0x9e,0x5c,0x00,0x05,0x9e,0x6c,0x00,0x05,0x9e,0xf0,0x00,0x05,0x9f,0x00,0x00,0x05,0x9f,0x10,0x00,0x05,0x9f,0x20,0x00,0x05,0x9f,0x30,0x00,0x05,0x9f,0x40,0x00,0x05,0x9f,0x50,0x00,0x05,0x9f,0x60,0x00,0x05,0x9f,0xdc,0x00,0x05,0x9f,0xec,0x00,0x05,0x9f,0xfc,0x00,0x05,0xa0,0x56,0x00,0x05,0xa0,0xc8, +0x00,0x05,0xa1,0x26,0x00,0x05,0xa1,0x9a,0x00,0x05,0xa2,0x20,0x00,0x05,0xa2,0xae,0x00,0x05,0xa3,0x20,0x00,0x05,0xa3,0xa6,0x00,0x05,0xa4,0x66,0x00,0x05,0xa5,0x1a,0x00,0x05,0xa5,0x5e,0x00,0x05,0xa5,0xee,0x00,0x05,0xa6,0x78,0x00,0x05,0xa7,0x4c,0x00,0x05,0xa8,0x3e,0x00,0x05,0xa9,0x24,0x00,0x05,0xaa,0xb0,0x00,0x05,0xaa,0xd4, +0x00,0x05,0xaa,0xf8,0x00,0x05,0xab,0x0e,0x00,0x05,0xab,0x1e,0x00,0x05,0xab,0x2e,0x00,0x05,0xab,0x4e,0x00,0x05,0xab,0x5e,0x00,0x05,0xab,0x6e,0x00,0x05,0xab,0x8e,0x00,0x05,0xab,0x9e,0x00,0x05,0xab,0xae,0x00,0x05,0xab,0xcc,0x00,0x05,0xab,0xdc,0x00,0x05,0xab,0xec,0x00,0x05,0xac,0x0a,0x00,0x05,0xac,0x1a,0x00,0x05,0xac,0x2a, +0x00,0x05,0xac,0x48,0x00,0x05,0xac,0x58,0x00,0x05,0xac,0x68,0x00,0x05,0xac,0x78,0x00,0x05,0xac,0x88,0x00,0x05,0xac,0x98,0x00,0x05,0xac,0xb8,0x00,0x05,0xac,0xd6,0x00,0x05,0xac,0xe6,0x00,0x05,0xac,0xf6,0x00,0x05,0xad,0x14,0x00,0x05,0xad,0x32,0x00,0x05,0xad,0x42,0x00,0x05,0xad,0x52,0x00,0x05,0xad,0x62,0x00,0x05,0xad,0x84, +0x00,0x05,0xad,0x94,0x00,0x05,0xad,0xb4,0x00,0x05,0xad,0xc4,0x00,0x05,0xad,0xe2,0x00,0x05,0xad,0xf2,0x00,0x05,0xae,0x02,0x00,0x05,0xae,0x12,0x00,0x05,0xae,0x30,0x00,0x05,0xae,0x4e,0x00,0x05,0xae,0x6e,0x00,0x05,0xae,0x7e,0x00,0x05,0xae,0x8e,0x00,0x05,0xae,0xa6,0x00,0x05,0xae,0xbe,0x00,0x05,0xae,0xce,0x00,0x05,0xae,0xde, +0x00,0x05,0xae,0xf6,0x00,0x05,0xaf,0x0e,0x00,0x05,0xaf,0x9c,0x00,0x05,0xb0,0xde,0x00,0x05,0xb2,0x14,0x00,0x05,0xb2,0x84,0x00,0x05,0xb2,0xe0,0x00,0x05,0xb3,0x7c,0x00,0x05,0xb4,0x44,0x00,0x05,0xb4,0xf6,0x00,0x05,0xb5,0xa2,0x00,0x05,0xb6,0x02,0x00,0x05,0xb6,0x5c,0x00,0x05,0xb6,0xbc,0x00,0x05,0xb7,0x64,0x00,0x05,0xb7,0x92, +0x00,0x05,0xb7,0xc2,0x00,0x05,0xb7,0xf0,0x00,0x05,0xb8,0x20,0x00,0x05,0xb8,0x38,0x00,0x05,0xb8,0x6a,0x00,0x05,0xb8,0x82,0x00,0x05,0xb8,0x9a,0x00,0x05,0xb8,0xb2,0x00,0x05,0xb8,0xca,0x00,0x05,0xb8,0xe2,0x00,0x05,0xb8,0xf8,0x00,0x05,0xb9,0x28,0x00,0x05,0xb9,0x3e,0x00,0x05,0xb9,0x54,0x00,0x05,0xb9,0x64,0x00,0x05,0xb9,0xc2, +0x00,0x05,0xba,0x16,0x00,0x05,0xba,0x2c,0x00,0x05,0xba,0x42,0x00,0x05,0xbb,0x5c,0x00,0x05,0xbc,0x64,0x00,0x05,0xbd,0x4c,0x00,0x05,0xbe,0x84,0x00,0x05,0xbf,0x26,0x00,0x05,0xbf,0xe0,0x00,0x05,0xc0,0x0c,0x00,0x05,0xc0,0xc2,0x00,0x05,0xc1,0x3a,0x00,0x05,0xc1,0x60,0x00,0x05,0xc2,0x26,0x00,0x05,0xc2,0x4c,0x00,0x05,0xc2,0x64, +0x00,0x05,0xc2,0x7c,0x00,0x05,0xc2,0x94,0x00,0x05,0xc2,0xac,0x00,0x05,0xc2,0xc4,0x00,0x05,0xc2,0xe8,0x00,0x05,0xc3,0x0c,0x00,0x05,0xc3,0x24,0x00,0x05,0xc3,0x3c,0x00,0x05,0xc3,0x54,0x00,0x05,0xc3,0x6c,0x00,0x05,0xc3,0x84,0x00,0x05,0xc3,0x9c,0x00,0x05,0xc3,0xb4,0x00,0x05,0xc4,0x88,0x00,0x05,0xc4,0xa0,0x00,0x05,0xc5,0x36, +0x00,0x05,0xc5,0x4e,0x00,0x05,0xc6,0xbe,0x00,0x05,0xc7,0xf2,0x00,0x05,0xc8,0x0a,0x00,0x05,0xc8,0x22,0x00,0x05,0xc9,0xa0,0x00,0x05,0xca,0xec,0x00,0x05,0xcb,0x04,0x00,0x05,0xcb,0x1c,0x00,0x05,0xcc,0x1c,0x00,0x05,0xcd,0x00,0x00,0x05,0xce,0x08,0x00,0x05,0xce,0x20,0x00,0x05,0xce,0x38,0x00,0x05,0xce,0x50,0x00,0x05,0xce,0x68, +0x00,0x05,0xce,0x80,0x00,0x05,0xce,0x98,0x00,0x05,0xce,0xb0,0x00,0x05,0xce,0xc8,0x00,0x05,0xce,0xe0,0x00,0x05,0xce,0xf8,0x00,0x05,0xcf,0x10,0x00,0x05,0xcf,0x28,0x00,0x05,0xcf,0x4c,0x00,0x05,0xcf,0x6c,0x00,0x05,0xcf,0x8c,0x00,0x05,0xcf,0xa4,0x00,0x05,0xcf,0xbc,0x00,0x05,0xcf,0xdc,0x00,0x05,0xcf,0xfc,0x00,0x05,0xd0,0x14, +0x00,0x05,0xd0,0x2c,0x00,0x05,0xd0,0x4c,0x00,0x05,0xd0,0x6c,0x00,0x05,0xd0,0x84,0x00,0x05,0xd0,0x9c,0x00,0x05,0xd1,0xe0,0x00,0x05,0xd2,0x8e,0x00,0x05,0xd3,0x98,0x00,0x05,0xd4,0x7c,0x00,0x05,0xd4,0x94,0x00,0x05,0xd4,0xac,0x00,0x05,0xd5,0xf4,0x00,0x05,0xd7,0x38,0x00,0x05,0xd8,0x62,0x00,0x05,0xd9,0x5a,0x00,0x05,0xd9,0x6a, +0x00,0x05,0xd9,0x7a,0x00,0x05,0xd9,0x92,0x00,0x05,0xda,0x94,0x00,0x05,0xdb,0xa4,0x00,0x05,0xdd,0x8c,0x00,0x05,0xde,0x7e,0x00,0x05,0xdf,0xc0,0x00,0x05,0xe0,0x5a,0x00,0x05,0xe1,0x94,0x00,0x05,0xe2,0x3e,0x00,0x05,0xe3,0x32,0x00,0x05,0xe3,0xd8,0x00,0x05,0xe4,0x68,0x00,0x05,0xe4,0x78,0x00,0x05,0xe5,0x3a,0x00,0x05,0xe5,0x9e, +0x00,0x05,0xe6,0xb8,0x00,0x05,0xe6,0xc8,0x00,0x05,0xe6,0xd8,0x00,0x05,0xe6,0xea,0x00,0x05,0xe7,0x0e,0x00,0x05,0xe7,0x3e,0x00,0x05,0xe7,0x62,0x00,0x05,0xe7,0x8e,0x00,0x05,0xe7,0xa6,0x00,0x05,0xe7,0xbe,0x00,0x05,0xe7,0xd6,0x00,0x05,0xe7,0xee,0x00,0x05,0xe8,0x06,0x00,0x05,0xe8,0x1e,0x00,0x05,0xe8,0x3e,0x00,0x05,0xe8,0x5e, +0x00,0x05,0xe8,0x76,0x00,0x05,0xe8,0x8e,0x00,0x05,0xe8,0xa6,0x00,0x05,0xe8,0xbe,0x00,0x05,0xe8,0xd6,0x00,0x05,0xe8,0xee,0x00,0x05,0xe9,0x06,0x00,0x05,0xe9,0x1e,0x00,0x05,0xe9,0x42,0x00,0x05,0xe9,0x5a,0x00,0x05,0xe9,0x72,0x00,0x05,0xe9,0x8a,0x00,0x05,0xe9,0xa2,0x00,0x05,0xe9,0xba,0x00,0x05,0xe9,0xd2,0x00,0x05,0xe9,0xea, +0x00,0x05,0xea,0x02,0x00,0x05,0xea,0x1a,0x00,0x05,0xea,0x3a,0x00,0x05,0xea,0x52,0x00,0x05,0xea,0x6a,0x00,0x05,0xea,0x82,0x00,0x05,0xea,0x9a,0x00,0x05,0xea,0xb2,0x00,0x05,0xea,0xd2,0x00,0x05,0xea,0xf2,0x00,0x05,0xeb,0x0a,0x00,0x05,0xeb,0x22,0x00,0x05,0xeb,0x42,0x00,0x05,0xeb,0x62,0x00,0x05,0xeb,0x7a,0x00,0x05,0xeb,0x92, +0x00,0x05,0xeb,0xaa,0x00,0x05,0xeb,0xc2,0x00,0x05,0xeb,0xda,0x00,0x05,0xeb,0xf2,0x00,0x05,0xec,0x0a,0x00,0x05,0xed,0x52,0x00,0x05,0xed,0x6a,0x00,0x05,0xed,0x8a,0x00,0x05,0xed,0xa2,0x00,0x05,0xed,0xba,0x00,0x05,0xed,0xd2,0x00,0x05,0xed,0xea,0x00,0x05,0xee,0x02,0x00,0x05,0xee,0x1a,0x00,0x05,0xee,0x32,0x00,0x05,0xee,0x4a, +0x00,0x05,0xee,0x62,0x00,0x05,0xef,0x6a,0x00,0x05,0xef,0x7a,0x00,0x05,0xf0,0x94,0x00,0x05,0xf1,0xca,0x00,0x05,0xf1,0xe2,0x00,0x05,0xf1,0xfa,0x00,0x05,0xf2,0x12,0x00,0x05,0xf2,0x2a,0x00,0x05,0xf2,0x42,0x00,0x05,0xf2,0x5a,0x00,0x05,0xf2,0x72,0x00,0x05,0xf2,0x8a,0x00,0x05,0xf2,0xa2,0x00,0x05,0xf2,0xb8,0x00,0x05,0xf2,0xd8, +0x00,0x05,0xf2,0xf6,0x00,0x05,0xf3,0x24,0x00,0x05,0xf3,0x50,0x00,0x05,0xf3,0x70,0x00,0x05,0xf3,0x8e,0x00,0x05,0xf3,0xae,0x00,0x05,0xf3,0xcc,0x00,0x05,0xf4,0x02,0x00,0x05,0xf4,0x36,0x00,0x05,0xf4,0x4e,0x00,0x05,0xf4,0x66,0x00,0x05,0xf4,0x8e,0x00,0x05,0xf5,0x9a,0x00,0x05,0xf6,0xa4,0x00,0x05,0xf6,0xc4,0x00,0x05,0xf7,0x8c, +0x00,0x05,0xf7,0xa4,0x00,0x05,0xf7,0xbc,0x00,0x05,0xf7,0xd4,0x00,0x05,0xf9,0x26,0x00,0x05,0xf9,0x46,0x00,0x05,0xf9,0x5e,0x00,0x05,0xf9,0x76,0x00,0x05,0xf9,0x86,0x00,0x05,0xf9,0x96,0x00,0x05,0xf9,0xb6,0x00,0x05,0xf9,0xce,0x00,0x05,0xf9,0xe6,0x00,0x05,0xf9,0xfc,0x00,0x05,0xfb,0x1e,0x00,0x05,0xfb,0x42,0x00,0x05,0xfb,0x68, +0x00,0x05,0xfb,0x80,0x00,0x05,0xfb,0xa4,0x00,0x05,0xfb,0xbc,0x00,0x05,0xfb,0xd4,0x00,0x05,0xfb,0xec,0x00,0x05,0xfc,0x0c,0x00,0x05,0xfc,0x24,0x00,0x05,0xfc,0x3c,0x00,0x05,0xfc,0x54,0x00,0x05,0xfc,0x6c,0x00,0x05,0xfc,0x84,0x00,0x05,0xfc,0xde,0x00,0x05,0xfc,0xfe,0x00,0x05,0xfd,0x1e,0x00,0x05,0xfd,0x3e,0x00,0x05,0xfd,0x5e, +0x00,0x05,0xfd,0x76,0x00,0x05,0xfd,0x96,0x00,0x05,0xfd,0xb6,0x00,0x05,0xfd,0xd6,0x00,0x05,0xfd,0xee,0x00,0x05,0xfe,0x06,0x00,0x05,0xfe,0x26,0x00,0x05,0xfe,0x46,0x00,0x05,0xfe,0x66,0x00,0x05,0xfe,0x86,0x00,0x05,0xfe,0xaa,0x00,0x05,0xfe,0xce,0x00,0x05,0xfe,0xe6,0x00,0x05,0xfe,0xfe,0x00,0x05,0xff,0x16,0x00,0x05,0xff,0x2e, +0x00,0x05,0xff,0x4e,0x00,0x05,0xff,0x72,0x00,0x05,0xff,0x8a,0x00,0x05,0xff,0xa2,0x00,0x05,0xff,0xba,0x00,0x05,0xff,0xd2,0x00,0x05,0xff,0xea,0x00,0x06,0x00,0x02,0x00,0x06,0x00,0x1a,0x00,0x06,0x00,0x32,0x00,0x06,0x00,0x4a,0x00,0x06,0x00,0x62,0x00,0x06,0x00,0x7a,0x00,0x06,0x00,0x92,0x00,0x06,0x01,0xbe,0x00,0x06,0x01,0xde, +0x00,0x06,0x01,0xfe,0x00,0x06,0x02,0x2a,0x00,0x06,0x02,0x56,0x00,0x06,0x02,0x8c,0x00,0x06,0x02,0xa4,0x00,0x06,0x02,0xbc,0x00,0x06,0x04,0x04,0x00,0x06,0x05,0x88,0x00,0x06,0x05,0xa0,0x00,0x06,0x05,0xb8,0x00,0x06,0x07,0x4a,0x00,0x06,0x09,0x18,0x00,0x06,0x0a,0x9e,0x00,0x06,0x0c,0x5c,0x00,0x06,0x0c,0x8a,0x00,0x06,0x0c,0xb8, +0x00,0x06,0x0c,0xe6,0x00,0x06,0x0d,0x14,0x00,0x06,0x0d,0x42,0x00,0x06,0x0d,0x70,0x00,0x06,0x0d,0x88,0x00,0x06,0x0d,0xa0,0x00,0x06,0x0d,0xb8,0x00,0x06,0x0d,0xd0,0x00,0x06,0x0d,0xe8,0x00,0x06,0x0e,0x00,0x00,0x06,0x0e,0x18,0x00,0x06,0x0e,0x30,0x00,0x06,0x0e,0x54,0x00,0x06,0x0e,0x7c,0x00,0x06,0x0e,0xa8,0x00,0x06,0x0e,0xd4, +0x00,0x06,0x0e,0xf8,0x00,0x06,0x0f,0x20,0x00,0x06,0x0f,0x4c,0x00,0x06,0x0f,0x78,0x00,0x06,0x0f,0x9e,0x00,0x06,0x0f,0xc2,0x00,0x06,0x0f,0xe6,0x00,0x06,0x10,0x0a,0x00,0x06,0x10,0x24,0x00,0x06,0x10,0x3e,0x00,0x06,0x10,0x58,0x00,0x06,0x10,0x72,0x00,0x06,0x10,0x9a,0x00,0x06,0x10,0xbe,0x00,0x06,0x10,0xe6,0x00,0x06,0x11,0x0a, +0x00,0x06,0x12,0x42,0x00,0x06,0x13,0xbc,0x00,0x06,0x13,0xe0,0x00,0x06,0x14,0x04,0x00,0x06,0x14,0x28,0x00,0x06,0x14,0x4c,0x00,0x06,0x14,0x70,0x00,0x06,0x14,0x94,0x00,0x06,0x14,0xac,0x00,0x06,0x14,0xc4,0x00,0x06,0x14,0xdc,0x00,0x06,0x14,0xf4,0x00,0x06,0x15,0x0c,0x00,0x06,0x15,0x24,0x00,0x06,0x15,0x3c,0x00,0x06,0x15,0x54, +0x00,0x06,0x15,0x86,0x00,0x06,0x15,0xd2,0x00,0x06,0x16,0x1a,0x00,0x06,0x16,0x8a,0x00,0x06,0x16,0xf2,0x00,0x06,0x17,0x56,0x00,0x06,0x17,0xd0,0x00,0x06,0x18,0x8c,0x00,0x06,0x19,0x34,0x00,0x06,0x19,0x60,0x00,0x06,0x19,0xd0,0x00,0x06,0x1a,0x48,0x00,0x06,0x1a,0x74,0x00,0x06,0x1a,0xbc,0x00,0x06,0x1b,0x08,0x00,0x06,0x1b,0xde, +0x00,0x06,0x1c,0x78,0x00,0x06,0x1d,0x76,0x00,0x06,0x1d,0x98,0x00,0x06,0x1d,0xae,0x00,0x06,0x1d,0xc4,0x00,0x06,0x1d,0xee,0x00,0x06,0x1e,0x04,0x00,0x06,0x1e,0x28,0x00,0x06,0x1e,0x3e,0x00,0x06,0x1e,0x56,0x00,0x06,0x1e,0x7a,0x00,0x06,0x1e,0x9e,0x00,0x06,0x1f,0x82,0x00,0x06,0x20,0x96,0x00,0x06,0x20,0xae,0x00,0x06,0x20,0xc6, +0x00,0x06,0x20,0xe6,0x00,0x06,0x21,0x06,0x00,0x06,0x21,0x1e,0x00,0x06,0x21,0x36,0x00,0x06,0x21,0x56,0x00,0x06,0x21,0x76,0x00,0x06,0x21,0x96,0x00,0x06,0x21,0xb6,0x00,0x06,0x21,0xce,0x00,0x06,0x21,0xe6,0x00,0x06,0x21,0xfe,0x00,0x06,0x22,0x16,0x00,0x06,0x22,0x44,0x00,0x06,0x22,0x72,0x00,0x06,0x22,0x96,0x00,0x06,0x22,0xba, +0x00,0x06,0x22,0xd2,0x00,0x06,0x22,0xea,0x00,0x06,0x23,0xec,0x00,0x06,0x25,0x12,0x00,0x06,0x25,0x2a,0x00,0x06,0x25,0x42,0x00,0x06,0x25,0x5a,0x00,0x06,0x25,0x72,0x00,0x06,0x25,0x8a,0x00,0x06,0x25,0xa2,0x00,0x06,0x25,0xc2,0x00,0x06,0x25,0xe2,0x00,0x06,0x26,0x42,0x00,0x06,0x26,0xc8,0x00,0x06,0x26,0xde,0x00,0x06,0x26,0xf4, +0x00,0x06,0x27,0x0c,0x00,0x06,0x27,0x24,0x00,0x06,0x27,0x4c,0x00,0x06,0x27,0x74,0x00,0x06,0x27,0x8c,0x00,0x06,0x27,0xa4,0x00,0x06,0x27,0xbc,0x00,0x06,0x27,0xd4,0x00,0x06,0x28,0x68,0x00,0x06,0x28,0x80,0x00,0x06,0x28,0x98,0x00,0x06,0x28,0xb0,0x00,0x06,0x28,0xc8,0x00,0x06,0x28,0xe0,0x00,0x06,0x29,0x04,0x00,0x06,0x29,0x24, +0x00,0x06,0x29,0x3c,0x00,0x06,0x29,0x54,0x00,0x06,0x29,0x6c,0x00,0x06,0x29,0x84,0x00,0x06,0x29,0x9c,0x00,0x06,0x29,0xb4,0x00,0x06,0x29,0xe2,0x00,0x06,0x2a,0x06,0x00,0x06,0x2a,0x2a,0x00,0x06,0x2a,0x42,0x00,0x06,0x2a,0x5a,0x00,0x06,0x2b,0x30,0x00,0x06,0x2b,0x48,0x00,0x06,0x2b,0x60,0x00,0x06,0x2c,0x54,0x00,0x06,0x2c,0x6c, +0x00,0x06,0x2c,0x84,0x00,0x06,0x2c,0xac,0x00,0x06,0x2c,0xd4,0x00,0x06,0x2c,0xf8,0x00,0x06,0x2d,0xc4,0x00,0x06,0x2e,0x52,0x00,0x06,0x2e,0xe0,0x00,0x06,0x2e,0xf8,0x00,0x06,0x2f,0x10,0x00,0x06,0x2f,0x34,0x00,0x06,0x2f,0x58,0x00,0x06,0x2f,0x7c,0x00,0x06,0x2f,0xa0,0x00,0x06,0x2f,0xb0,0x00,0x06,0x2f,0xc8,0x00,0x06,0x2f,0xe0, +0x00,0x06,0x30,0x2c,0x00,0x06,0x30,0xa6,0x00,0x06,0x31,0x7a,0x00,0x06,0x31,0x92,0x00,0x06,0x32,0x5e,0x00,0x06,0x33,0xde,0x00,0x06,0x34,0xa2,0x00,0x06,0x35,0xf2,0x00,0x06,0x37,0x50,0x00,0x06,0x38,0x28,0x00,0x06,0x39,0x6a,0x00,0x06,0x39,0xde,0x00,0x06,0x3a,0x5a,0x00,0x06,0x3a,0xe2,0x00,0x06,0x3b,0x60,0x00,0x06,0x3b,0xd8, +0x00,0x06,0x3c,0x58,0x00,0x06,0x3c,0xc0,0x00,0x06,0x3d,0x30,0x00,0x06,0x3d,0x9e,0x00,0x06,0x3e,0x18,0x00,0x06,0x3e,0xae,0x00,0x06,0x3f,0x26,0x00,0x06,0x3f,0xec,0x00,0x06,0x40,0x96,0x00,0x06,0x41,0x80,0x00,0x06,0x42,0x66,0x00,0x06,0x43,0x28,0x00,0x06,0x44,0x24,0x00,0x06,0x44,0xf2,0x00,0x06,0x45,0x76,0x00,0x06,0x46,0x2e, +0x00,0x06,0x46,0xb2,0x00,0x06,0x47,0x5a,0x00,0x06,0x48,0x2a,0x00,0x06,0x48,0xd6,0x00,0x06,0x49,0xc6,0x00,0x06,0x4a,0xc0,0x00,0x06,0x4b,0xa6,0x00,0x06,0x4c,0x7a,0x00,0x06,0x4d,0xa0,0x00,0x06,0x4e,0xb8,0x00,0x06,0x4f,0x2e,0x00,0x06,0x4f,0xc4,0x00,0x06,0x50,0x7a,0x00,0x06,0x51,0x64,0x00,0x06,0x52,0x40,0x00,0x06,0x52,0xde, +0x00,0x06,0x53,0xc8,0x00,0x06,0x54,0x5a,0x00,0x06,0x54,0xe8,0x00,0x06,0x55,0xa4,0x00,0x06,0x56,0x1e,0x00,0x06,0x56,0xc2,0x00,0x06,0x57,0x8e,0x00,0x06,0x58,0x6a,0x00,0x06,0x59,0x28,0x00,0x06,0x59,0xda,0x00,0x06,0x5a,0xe6,0x00,0x06,0x5b,0xbe,0x00,0x06,0x5c,0x3e,0x00,0x06,0x5c,0xf6,0x00,0x06,0x5d,0x74,0x00,0x06,0x5e,0x1c, +0x00,0x06,0x5e,0xce,0x00,0x06,0x5f,0xb8,0x00,0x06,0x60,0x86,0x00,0x06,0x61,0xae,0x00,0x06,0x62,0x92,0x00,0x06,0x63,0x7e,0x00,0x06,0x63,0xb4,0x00,0x06,0x64,0x46,0x00,0x06,0x64,0xc2,0x00,0x06,0x65,0xa8,0x00,0x06,0x66,0xae,0x00,0x06,0x67,0x64,0x00,0x06,0x68,0x2c,0x00,0x06,0x69,0x40,0x00,0x06,0x6a,0x72,0x00,0x06,0x6b,0x30, +0x00,0x06,0x6c,0x6a,0x00,0x06,0x6d,0xd4,0x00,0x06,0x6e,0x64,0x00,0x06,0x6f,0x08,0x00,0x06,0x6f,0xd2,0x00,0x06,0x70,0x9c,0x00,0x06,0x71,0xa0,0x00,0x06,0x72,0xde,0x00,0x06,0x73,0x72,0x00,0x06,0x74,0x4c,0x00,0x06,0x74,0xfa,0x00,0x06,0x75,0x8e,0x00,0x06,0x76,0x1e,0x00,0x06,0x76,0xbc,0x00,0x06,0x77,0x76,0x00,0x06,0x78,0x9c, +0x00,0x06,0x79,0xc0,0x00,0x06,0x7b,0x2a,0x00,0x06,0x7c,0x0c,0x00,0x06,0x7c,0xc2,0x00,0x06,0x7d,0xb2,0x00,0x06,0x7e,0xb4,0x00,0x06,0x7f,0x2e,0x00,0x06,0x7f,0xd4,0x00,0x06,0x80,0x7c,0x00,0x06,0x81,0x5a,0x00,0x06,0x82,0x82,0x00,0x06,0x83,0xce,0x00,0x06,0x84,0xf2,0x00,0x06,0x85,0xd2,0x00,0x06,0x86,0xc0,0x00,0x06,0x88,0x22, +0x00,0x06,0x88,0x9e,0x00,0x06,0x89,0x9e,0x00,0x06,0x8a,0xdc,0x00,0x06,0x8b,0xf4,0x00,0x06,0x8d,0x42,0x00,0x06,0x8e,0xea,0x00,0x06,0x8f,0xe6,0x00,0x06,0x91,0x2a,0x00,0x06,0x92,0x82,0x00,0x06,0x93,0xc2,0x00,0x06,0x94,0x4c,0x00,0x06,0x95,0x4e,0x00,0x06,0x96,0x3c,0x00,0x06,0x97,0xc8,0x00,0x06,0x99,0x3c,0x00,0x06,0x9b,0x16, +0x00,0x06,0x9c,0xdc,0x00,0x06,0x9e,0x20,0x00,0x06,0xa0,0x10,0x00,0x06,0xa1,0x2e,0x00,0x06,0xa1,0xa8,0x00,0x06,0xa2,0x44,0x00,0x06,0xa2,0xee,0x00,0x06,0xa3,0xe6,0x00,0x06,0xa4,0x90,0x00,0x06,0xa5,0x24,0x00,0x06,0xa5,0xec,0x00,0x06,0xa6,0xb8,0x00,0x06,0xa7,0x38,0x00,0x06,0xa7,0xec,0x00,0x06,0xa8,0x66,0x00,0x06,0xa8,0xf2, +0x00,0x06,0xa9,0x54,0x00,0x06,0xaa,0x04,0x00,0x06,0xaa,0xb0,0x00,0x06,0xab,0xa2,0x00,0x06,0xac,0xba,0x00,0x06,0xad,0x8e,0x00,0x06,0xae,0x4a,0x00,0x06,0xaf,0x66,0x00,0x06,0xaf,0xe4,0x00,0x06,0xb0,0x40,0x00,0x06,0xb0,0xd8,0x00,0x06,0xb1,0x46,0x00,0x06,0xb1,0xac,0x00,0x06,0xb2,0x40,0x00,0x06,0xb2,0xd6,0x00,0x06,0xb3,0x2a, +0x00,0x06,0xb4,0x1e,0x00,0x06,0xb5,0x10,0x00,0x06,0xb5,0x92,0x00,0x06,0xb6,0x6e,0x00,0x06,0xb7,0xdc,0x00,0x06,0xb8,0xc8,0x00,0x06,0xb9,0xe6,0x00,0x06,0xbb,0x7e,0x00,0x06,0xbc,0x9e,0x00,0x06,0xbd,0xca,0x00,0x06,0xbe,0xf6,0x00,0x06,0xc0,0x34,0x00,0x06,0xc0,0xb8,0x00,0x06,0xc1,0x84,0x00,0x06,0xc2,0x8a,0x00,0x06,0xc3,0xbe, +0x00,0x06,0xc4,0x62,0x00,0x06,0xc5,0x48,0x00,0x06,0xc6,0x4a,0x00,0x06,0xc7,0x48,0x00,0x06,0xc8,0x20,0x00,0x06,0xc9,0x02,0x00,0x06,0xc9,0x7c,0x00,0x06,0xc9,0xec,0x00,0x06,0xca,0xb6,0x00,0x06,0xcb,0x68,0x00,0x06,0xcc,0x1e,0x00,0x06,0xcd,0x0a,0x00,0x06,0xcd,0xf0,0x00,0x06,0xce,0xe0,0x00,0x06,0xcf,0x48,0x00,0x06,0xd0,0x06, +0x00,0x06,0xd0,0xbc,0x00,0x06,0xd1,0xc8,0x00,0x06,0xd1,0xf2,0x00,0x06,0xd3,0x3c,0x00,0x06,0xd4,0x46,0x00,0x06,0xd4,0xea,0x00,0x06,0xd5,0x96,0x00,0x06,0xd6,0x70,0x00,0x06,0xd7,0x4a,0x00,0x06,0xd8,0x6a,0x00,0x06,0xd9,0xb0,0x00,0x06,0xda,0x42,0x00,0x06,0xda,0xec,0x00,0x06,0xdb,0xc6,0x00,0x06,0xdc,0xaa,0x00,0x06,0xdd,0x6e, +0x00,0x06,0xde,0x6e,0x00,0x06,0xdf,0x10,0x00,0x06,0xdf,0xa8,0x00,0x06,0xe0,0x40,0x00,0x06,0xe0,0xb6,0x00,0x06,0xe0,0xc6,0x00,0x06,0xe0,0xec,0x00,0x06,0xe1,0x1a,0x00,0x06,0xe1,0x4e,0x00,0x06,0xe1,0x5e,0x00,0x06,0xe1,0x8e,0x00,0x06,0xe1,0xbc,0x00,0x06,0xe1,0xf2,0x00,0x06,0xe2,0x28,0x00,0x06,0xe2,0x5e,0x00,0x06,0xe2,0x94, +0x00,0x06,0xe2,0xca,0x00,0x06,0xe3,0x00,0x00,0x06,0xe3,0x2e,0x00,0x06,0xe3,0x5c,0x00,0x06,0xe3,0x8a,0x00,0x06,0xe3,0xbc,0x00,0x06,0xe3,0xee,0x00,0x06,0xe4,0x20,0x00,0x06,0xe4,0x30,0x00,0x06,0xe4,0x54,0x00,0x06,0xe4,0x64,0x00,0x06,0xe4,0x92,0x00,0x06,0xe4,0xaa,0x00,0x06,0xe4,0xd8,0x00,0x06,0xe4,0xfc,0x00,0x06,0xe5,0x2c, +0x00,0x06,0xe5,0x5a,0x00,0x06,0xe5,0x88,0x00,0x06,0xe5,0xbe,0x00,0x06,0xe5,0xec,0x00,0x06,0xe6,0x1a,0x00,0x06,0xe6,0x48,0x00,0x06,0xe6,0x76,0x00,0x06,0xe6,0xa4,0x00,0x06,0xe6,0xd2,0x00,0x06,0xe8,0x96,0x00,0x06,0xea,0x76,0x00,0x06,0xec,0x72,0x00,0x06,0xee,0x4e,0x00,0x06,0xef,0x2e,0x00,0x06,0xf0,0x3c,0x00,0x06,0xf1,0xda, +0x00,0x06,0xf2,0x78,0x00,0x06,0xf3,0x62,0x00,0x06,0xf4,0x36,0x00,0x06,0xf4,0xaa,0x00,0x06,0xf5,0x16,0x00,0x06,0xf5,0xe0,0x00,0x06,0xf6,0xcc,0x00,0x06,0xf7,0xc0,0x00,0x06,0xf9,0x00,0x00,0x06,0xf9,0x86,0x00,0x06,0xfa,0xe8,0x00,0x06,0xfb,0xce,0x00,0x06,0xfd,0x0c,0x00,0x06,0xfe,0xa2,0x00,0x07,0x00,0x16,0x00,0x07,0x01,0x4c, +0x00,0x07,0x02,0x24,0x00,0x07,0x03,0x26,0x00,0x07,0x04,0x1a,0x00,0x07,0x05,0x08,0x00,0x07,0x06,0x42,0x00,0x07,0x07,0xa8,0x00,0x07,0x08,0xea,0x00,0x07,0x09,0xe4,0x00,0x07,0x0a,0x7e,0x00,0x07,0x0b,0x2c,0x00,0x07,0x0d,0x52,0x00,0x07,0x0e,0x90,0x00,0x07,0x0f,0xa8,0x00,0x07,0x10,0xa4,0x00,0x07,0x11,0x64,0x00,0x07,0x12,0x8a, +0x00,0x07,0x13,0x32,0x00,0x07,0x14,0x3a,0x00,0x07,0x15,0xcc,0x00,0x07,0x16,0xda,0x00,0x07,0x18,0x22,0x00,0x07,0x18,0x6a,0x00,0x07,0x18,0x98,0x00,0x07,0x18,0xee,0x00,0x07,0x19,0x1a,0x00,0x07,0x19,0x44,0x00,0x07,0x19,0x7c,0x00,0x07,0x19,0xde,0x00,0x07,0x1a,0x34,0x00,0x07,0x1a,0x5e,0x00,0x07,0x1a,0xa6,0x00,0x07,0x1a,0xee, +0x00,0x07,0x1b,0x1a,0x00,0x07,0x1b,0xcc,0x00,0x07,0x1c,0x78,0x00,0x07,0x1c,0xd8,0x00,0x07,0x1d,0x32,0x00,0x07,0x1d,0x92,0x00,0x07,0x1e,0x3a,0x00,0x07,0x1e,0x98,0x00,0x07,0x1f,0x42,0x00,0x07,0x20,0x52,0x00,0x07,0x20,0x64,0x00,0x07,0x23,0xe8,0x00,0x07,0x27,0x46,0x00,0x07,0x2a,0xd6,0x00,0x07,0x2b,0x02,0x00,0x07,0x2b,0x2e, +0x00,0x07,0x2b,0x5a,0x00,0x07,0x2b,0x86,0x00,0x07,0x2b,0xb2,0x00,0x07,0x2b,0xde,0x00,0x07,0x2c,0x16,0x00,0x07,0x2c,0x4e,0x00,0x07,0x2c,0x84,0x00,0x07,0x2c,0xba,0x00,0x07,0x2c,0xee,0x00,0x07,0x2d,0x22,0x00,0x07,0x2d,0x56,0x00,0x07,0x2d,0x8a,0x00,0x07,0x2d,0xbe,0x00,0x07,0x2d,0xea,0x00,0x07,0x2e,0x16,0x00,0x07,0x2e,0x42, +0x00,0x07,0x2e,0xe0,0x00,0x07,0x2f,0x62,0x00,0x07,0x2f,0x98,0x00,0x07,0x30,0x0a,0x00,0x07,0x30,0x80,0x00,0x07,0x31,0x16,0x00,0x07,0x31,0x70,0x00,0x07,0x31,0xc4,0x00,0x07,0x32,0x1e,0x00,0x07,0x32,0x72,0x00,0x07,0x32,0xd4,0x00,0x07,0x33,0x16,0x00,0x07,0x33,0x9e,0x00,0x07,0x33,0xfe,0x00,0x07,0x34,0x3e,0x00,0x07,0x34,0x9a, +0x00,0x07,0x34,0xf2,0x00,0x07,0x35,0x4a,0x00,0x07,0x35,0xa2,0x00,0x07,0x36,0x12,0x00,0x07,0x36,0xd0,0x00,0x07,0x37,0x4a,0x00,0x07,0x37,0xe0,0x00,0x07,0x38,0x5a,0x00,0x07,0x38,0xee,0x00,0x07,0x39,0x88,0x00,0x07,0x3a,0x10,0x00,0x07,0x3a,0x9c,0x00,0x07,0x3b,0x6a,0x00,0x07,0x3b,0xfc,0x00,0x07,0x3c,0xa2,0x00,0x07,0x3d,0x6a, +0x00,0x07,0x3e,0x1c,0x00,0x07,0x3e,0xc6,0x00,0x07,0x3f,0xac,0x00,0x07,0x40,0x8c,0x00,0x07,0x41,0x2c,0x00,0x07,0x41,0xbc,0x00,0x07,0x42,0x16,0x00,0x07,0x42,0x72,0x00,0x07,0x43,0x16,0x00,0x07,0x43,0xae,0x00,0x07,0x44,0xac,0x00,0x07,0x45,0x58,0x00,0x07,0x46,0x46,0x00,0x07,0x47,0x0a,0x00,0x07,0x47,0x96,0x00,0x07,0x48,0x1a, +0x00,0x07,0x48,0xb2,0x00,0x07,0x49,0x48,0x00,0x07,0x49,0xf6,0x00,0x07,0x4a,0xa0,0x00,0x07,0x4b,0x50,0x00,0x07,0x4b,0xe8,0x00,0x07,0x4c,0x8e,0x00,0x07,0x4d,0x66,0x00,0x07,0x4d,0xe4,0x00,0x07,0x4e,0x5a,0x00,0x07,0x4f,0x4e,0x00,0x07,0x50,0x40,0x00,0x07,0x50,0xea,0x00,0x07,0x51,0x94,0x00,0x07,0x52,0x22,0x00,0x07,0x52,0xb0, +0x00,0x07,0x53,0x0a,0x00,0x07,0x53,0x64,0x00,0x07,0x53,0xf4,0x00,0x07,0x54,0x80,0x00,0x07,0x54,0xfa,0x00,0x07,0x55,0x60,0x00,0x07,0x56,0x0e,0x00,0x07,0x56,0x9c,0x00,0x07,0x57,0x4e,0x00,0x07,0x57,0xee,0x00,0x07,0x58,0xca,0x00,0x07,0x59,0x94,0x00,0x07,0x5a,0xd0,0x00,0x07,0x5b,0xf8,0x00,0x07,0x5f,0x70,0x00,0x07,0x5f,0xbc, +0x00,0x07,0x61,0x1e,0x00,0x07,0x61,0x9c,0x00,0x07,0x62,0xf2,0x00,0x07,0x63,0xa8,0x00,0x07,0x63,0xee,0x00,0x07,0x64,0x54,0x00,0x07,0x64,0x9a,0x00,0x07,0x65,0x00,0x00,0x07,0x65,0x9a,0x00,0x07,0x66,0x2e,0x00,0x07,0x66,0xbe,0x00,0x07,0x67,0x50,0x00,0x07,0x68,0x5e,0x00,0x07,0x69,0x64,0x00,0x07,0x69,0xfe,0x00,0x07,0x6a,0x9e, +0x00,0x07,0x6b,0x7c,0x00,0x07,0x6c,0x60,0x00,0x07,0x6c,0xfa,0x00,0x07,0x6d,0x90,0x00,0x07,0x6d,0xf0,0x00,0x07,0x6e,0x50,0x00,0x07,0x6f,0x04,0x00,0x07,0x6f,0xb4,0x00,0x07,0x70,0x26,0x00,0x07,0x70,0x94,0x00,0x07,0x71,0x10,0x00,0x07,0x71,0x88,0x00,0x07,0x72,0x04,0x00,0x07,0x72,0x88,0x00,0x07,0x73,0x5a,0x00,0x07,0x74,0x24, +0x00,0x07,0x74,0xc4,0x00,0x07,0x76,0x6c,0x00,0x07,0x76,0xaa,0x00,0x07,0x76,0xec,0x00,0x07,0x77,0x6e,0x00,0x07,0x78,0x3c,0x00,0x07,0x78,0x3c,0x00,0x07,0x78,0x54,0x00,0x07,0x79,0x28,0x00,0x07,0x79,0xb4,0x00,0x07,0x7b,0x6e,0x00,0x07,0x7d,0x2a,0x00,0x07,0x7d,0x4e,0x00,0x07,0x7d,0x78,0x00,0x07,0x7e,0x02,0x00,0x07,0x7e,0x74, +0x00,0x07,0x7e,0xf6,0x00,0x07,0x7f,0xaa,0x00,0x07,0x80,0x04,0x00,0x07,0x80,0x8e,0x00,0x07,0x81,0x4c,0x00,0x07,0x81,0x92,0x00,0x07,0x82,0x84,0x00,0x07,0x83,0x42,0x00,0x07,0x83,0xba,0x00,0x07,0x83,0xca,0x00,0x07,0x85,0x86,0x00,0x07,0x87,0x42,0x00,0x07,0x89,0x66,0x00,0x07,0x8b,0x76,0x00,0x07,0x8d,0x72,0x00,0x07,0x8f,0x3e, +0x00,0x07,0x91,0x0c,0x00,0x07,0x92,0xda,0x00,0x07,0x94,0xf4,0x00,0x07,0x95,0xc6,0x00,0x07,0x96,0x1e,0x00,0x07,0x96,0x9a,0x00,0x07,0x97,0x08,0x00,0x07,0x97,0x92,0x00,0x07,0x98,0x28,0x00,0x07,0x98,0xa0,0x00,0x07,0x99,0x3a,0x00,0x07,0x99,0xbc,0x00,0x07,0x9a,0x10,0x00,0x07,0x9a,0x86,0x00,0x07,0x9a,0xea,0x00,0x07,0x9b,0x5c, +0x00,0x07,0x9b,0xe8,0x00,0x07,0x9c,0x5c,0x00,0x07,0x9d,0x06,0x00,0x07,0x9d,0xa6,0x00,0x07,0x9e,0x32,0x00,0x07,0x9e,0xc2,0x00,0x07,0x9f,0x78,0x00,0x07,0xa0,0x2a,0x00,0x07,0xa0,0x76,0x00,0x07,0xa0,0xd6,0x00,0x07,0xa1,0x3e,0x00,0x07,0xa1,0xc0,0x00,0x07,0xa2,0x4a,0x00,0x07,0xa2,0xa0,0x00,0x07,0xa3,0x22,0x00,0x07,0xa3,0x74, +0x00,0x07,0xa3,0xc6,0x00,0x07,0xa4,0x38,0x00,0x07,0xa4,0x8c,0x00,0x07,0xa4,0xf4,0x00,0x07,0xa5,0x6a,0x00,0x07,0xa5,0xec,0x00,0x07,0xa6,0x52,0x00,0x07,0xa6,0xba,0x00,0x07,0xa7,0x56,0x00,0x07,0xa7,0xda,0x00,0x07,0xa8,0x28,0x00,0x07,0xa8,0x88,0x00,0x07,0xa8,0xe4,0x00,0x07,0xa9,0x52,0x00,0x07,0xa9,0xc6,0x00,0x07,0xaa,0x58, +0x00,0x07,0xaa,0xd2,0x00,0x07,0xab,0x8a,0x00,0x07,0xac,0x18,0x00,0x07,0xac,0xb4,0x00,0x07,0xac,0xd4,0x00,0x07,0xad,0x2a,0x00,0x07,0xad,0x86,0x00,0x07,0xae,0x14,0x00,0x07,0xae,0xb8,0x00,0x07,0xaf,0x1c,0x00,0x07,0xaf,0x94,0x00,0x07,0xb0,0x46,0x00,0x07,0xb0,0xfe,0x00,0x07,0xb1,0x7a,0x00,0x07,0xb2,0x3c,0x00,0x07,0xb3,0x16, +0x00,0x07,0xb3,0x82,0x00,0x07,0xb3,0xe8,0x00,0x07,0xb4,0x6c,0x00,0x07,0xb4,0xe4,0x00,0x07,0xb5,0x82,0x00,0x07,0xb6,0x42,0x00,0x07,0xb6,0x9e,0x00,0x07,0xb7,0x24,0x00,0x07,0xb7,0x90,0x00,0x07,0xb7,0xec,0x00,0x07,0xb8,0x58,0x00,0x07,0xb8,0xc0,0x00,0x07,0xb9,0x36,0x00,0x07,0xb9,0xe2,0x00,0x07,0xba,0x94,0x00,0x07,0xbb,0x66, +0x00,0x07,0xbb,0xe4,0x00,0x07,0xbc,0x58,0x00,0x07,0xbc,0xf0,0x00,0x07,0xbd,0x82,0x00,0x07,0xbd,0xda,0x00,0x07,0xbe,0x4a,0x00,0x07,0xbe,0xb4,0x00,0x07,0xbf,0x42,0x00,0x07,0xbf,0xfe,0x00,0x07,0xc0,0xda,0x00,0x07,0xc1,0x94,0x00,0x07,0xc2,0x2c,0x00,0x07,0xc2,0xc2,0x00,0x07,0xc3,0xa0,0x00,0x07,0xc3,0xfc,0x00,0x07,0xc4,0x9e, +0x00,0x07,0xc5,0x6c,0x00,0x07,0xc6,0x12,0x00,0x07,0xc6,0xdc,0x00,0x07,0xc7,0xda,0x00,0x07,0xc8,0x72,0x00,0x07,0xc9,0x3c,0x00,0x07,0xca,0x16,0x00,0x07,0xca,0xdc,0x00,0x07,0xcb,0x46,0x00,0x07,0xcb,0xe6,0x00,0x07,0xcc,0x7a,0x00,0x07,0xcd,0x7e,0x00,0x07,0xce,0x68,0x00,0x07,0xcf,0x88,0x00,0x07,0xd0,0xa2,0x00,0x07,0xd1,0x60, +0x00,0x07,0xd2,0xaa,0x00,0x07,0xd3,0x64,0x00,0x07,0xd3,0xc0,0x00,0x07,0xd4,0x26,0x00,0x07,0xd4,0x98,0x00,0x07,0xd5,0x2c,0x00,0x07,0xd5,0xa2,0x00,0x07,0xd5,0xfc,0x00,0x07,0xd6,0x86,0x00,0x07,0xd7,0x0c,0x00,0x07,0xd7,0x5c,0x00,0x07,0xd7,0xd2,0x00,0x07,0xd8,0x2a,0x00,0x07,0xd8,0x82,0x00,0x07,0xd8,0xc0,0x00,0x07,0xd9,0x28, +0x00,0x07,0xd9,0x90,0x00,0x07,0xda,0x26,0x00,0x07,0xda,0xce,0x00,0x07,0xdb,0x60,0x00,0x07,0xdb,0xd4,0x00,0x07,0xdc,0x7e,0x00,0x07,0xdc,0xd8,0x00,0x07,0xdd,0x08,0x00,0x07,0xdd,0x6e,0x00,0x07,0xdd,0xb0,0x00,0x07,0xdd,0xe0,0x00,0x07,0xde,0x3e,0x00,0x07,0xde,0x9e,0x00,0x07,0xde,0xc8,0x00,0x07,0xdf,0x64,0x00,0x07,0xdf,0xfc, +0x00,0x07,0xe0,0x58,0x00,0x07,0xe0,0xde,0x00,0x07,0xe1,0xc6,0x00,0x07,0xe2,0x54,0x00,0x07,0xe3,0x04,0x00,0x07,0xe3,0xfa,0x00,0x07,0xe4,0xa4,0x00,0x07,0xe5,0x5a,0x00,0x07,0xe6,0x1a,0x00,0x07,0xe6,0xd4,0x00,0x07,0xe7,0x38,0x00,0x07,0xe7,0xc6,0x00,0x07,0xe8,0x7e,0x00,0x07,0xe9,0x66,0x00,0x07,0xe9,0xde,0x00,0x07,0xea,0x7a, +0x00,0x07,0xeb,0x32,0x00,0x07,0xeb,0xe6,0x00,0x07,0xec,0x7e,0x00,0x07,0xed,0x20,0x00,0x07,0xed,0x76,0x00,0x07,0xed,0xc0,0x00,0x07,0xee,0x3a,0x00,0x07,0xee,0xac,0x00,0x07,0xef,0x1c,0x00,0x07,0xef,0xae,0x00,0x07,0xf0,0x44,0x00,0x07,0xf0,0xd6,0x00,0x07,0xf1,0x14,0x00,0x07,0xf1,0x86,0x00,0x07,0xf1,0xf0,0x00,0x07,0xf2,0xa0, +0x00,0x07,0xf2,0xb8,0x00,0x07,0xf3,0x82,0x00,0x07,0xf4,0x1e,0x00,0x07,0xf4,0x66,0x00,0x07,0xf4,0xc8,0x00,0x07,0xf5,0x44,0x00,0x07,0xf5,0xc6,0x00,0x07,0xf6,0x78,0x00,0x07,0xf7,0x3c,0x00,0x07,0xf7,0x5c,0x00,0x07,0xf7,0x80,0x00,0x07,0xf7,0xa4,0x00,0x07,0xf7,0xb4,0x00,0x07,0xf7,0xce,0x00,0x07,0xf7,0xde,0x00,0x07,0xf7,0xf6, +0x00,0x07,0xf8,0x0e,0x00,0x07,0xf8,0x26,0x00,0x07,0xf8,0x3e,0x00,0x07,0xf8,0xe2,0x00,0x07,0xf9,0x6e,0x00,0x07,0xf9,0xc0,0x00,0x07,0xfa,0x14,0x00,0x07,0xfa,0x96,0x00,0x07,0xfb,0x18,0x00,0x07,0xfb,0xe0,0x00,0x07,0xfc,0xb4,0x00,0x07,0xfd,0x74,0x00,0x07,0xfe,0x36,0x00,0x07,0xfe,0xd4,0x00,0x07,0xff,0x68,0x00,0x08,0x00,0x3e, +0x00,0x08,0x01,0x08,0x00,0x08,0x01,0x5a,0x00,0x08,0x01,0xf4,0x00,0x08,0x02,0xd2,0x00,0x08,0x03,0xf6,0x00,0x08,0x04,0xd6,0x00,0x08,0x05,0xce,0x00,0x08,0x06,0x6e,0x00,0x08,0x07,0x4e,0x00,0x08,0x07,0xe8,0x00,0x08,0x08,0xaa,0x00,0x08,0x09,0x68,0x00,0x08,0x0a,0x42,0x00,0x08,0x0b,0x0c,0x00,0x08,0x0b,0xf8,0x00,0x08,0x0c,0xa2, +0x00,0x08,0x0d,0x40,0x00,0x08,0x0d,0xda,0x00,0x08,0x0e,0x66,0x00,0x08,0x0f,0x06,0x00,0x08,0x0f,0x92,0x00,0x08,0x10,0x54,0x00,0x08,0x11,0x0c,0x00,0x08,0x11,0x62,0x00,0x08,0x11,0xb4,0x00,0x08,0x12,0x0e,0x00,0x08,0x12,0x62,0x00,0x08,0x13,0x1e,0x00,0x08,0x13,0xc4,0x00,0x08,0x14,0xa6,0x00,0x08,0x15,0x72,0x00,0x08,0x16,0x6a, +0x00,0x08,0x17,0x3c,0x00,0x08,0x17,0xdc,0x00,0x08,0x18,0x98,0x00,0x08,0x19,0x38,0x00,0x08,0x19,0xe8,0x00,0x08,0x1a,0xac,0x00,0x08,0x1b,0x86,0x00,0x08,0x1c,0x62,0x00,0x08,0x1d,0x20,0x00,0x08,0x1e,0x26,0x00,0x08,0x1f,0x12,0x00,0x08,0x1f,0xa2,0x00,0x08,0x20,0x2e,0x00,0x08,0x20,0xda,0x00,0x08,0x21,0x82,0x00,0x08,0x22,0x12, +0x00,0x08,0x22,0xaa,0x00,0x08,0x23,0x94,0x00,0x08,0x24,0x74,0x00,0x08,0x25,0x4c,0x00,0x08,0x26,0x24,0x00,0x08,0x26,0xd4,0x00,0x08,0x27,0x92,0x00,0x08,0x28,0x2e,0x00,0x08,0x28,0xe8,0x00,0x08,0x29,0x40,0x00,0x08,0x29,0x94,0x00,0x08,0x2a,0x4a,0x00,0x08,0x2b,0x04,0x00,0x08,0x2b,0xb2,0x00,0x08,0x2c,0x60,0x00,0x08,0x2d,0x0e, +0x00,0x08,0x2d,0xba,0x00,0x08,0x2e,0x68,0x00,0x08,0x2f,0x2a,0x00,0x08,0x2f,0x8a,0x00,0x08,0x30,0x60,0x00,0x08,0x30,0xfc,0x00,0x08,0x31,0x86,0x00,0x08,0x32,0x52,0x00,0x08,0x33,0x20,0x00,0x08,0x33,0xfa,0x00,0x08,0x34,0x8e,0x00,0x08,0x35,0x2c,0x00,0x08,0x35,0xa0,0x00,0x08,0x36,0x10,0x00,0x08,0x36,0xe6,0x00,0x08,0x37,0xba, +0x00,0x08,0x38,0x80,0x00,0x08,0x38,0xba,0x00,0x08,0x38,0xea,0x00,0x08,0x39,0x7c,0x00,0x08,0x3a,0x06,0x00,0x08,0x3a,0x64,0x00,0x08,0x3a,0xc0,0x00,0x08,0x3b,0x56,0x00,0x08,0x3b,0xd0,0x00,0x08,0x3c,0x20,0x00,0x08,0x3c,0xfa,0x00,0x08,0x3d,0x8c,0x00,0x08,0x3e,0x08,0x00,0x08,0x3e,0xaa,0x00,0x08,0x3f,0x34,0x00,0x08,0x40,0x22, +0x00,0x08,0x41,0x1a,0x00,0x08,0x41,0xe2,0x00,0x08,0x42,0x96,0x00,0x08,0x43,0x7a,0x00,0x08,0x44,0x30,0x00,0x08,0x45,0x20,0x00,0x08,0x45,0xb8,0x00,0x08,0x46,0x96,0x00,0x08,0x47,0x70,0x00,0x08,0x47,0xf4,0x00,0x08,0x48,0x9c,0x00,0x08,0x49,0xa6,0x00,0x08,0x4a,0x40,0x00,0x08,0x4a,0x94,0x00,0x08,0x4b,0x02,0x00,0x08,0x4b,0x9c, +0x00,0x08,0x4b,0xce,0x00,0x08,0x4c,0xa8,0x00,0x08,0x4c,0xd2,0x00,0x08,0x4c,0xfe,0x00,0x08,0x4d,0x36,0x00,0x08,0x4d,0x60,0x00,0x08,0x4d,0x8a,0x00,0x08,0x4d,0xb4,0x00,0x08,0x4d,0xde,0x00,0x08,0x4e,0x0a,0x00,0x08,0x4e,0x36,0x00,0x08,0x4e,0x4e,0x00,0x08,0x4e,0x5e,0x00,0x08,0x4e,0x6e,0x00,0x08,0x4e,0x7e,0x00,0x08,0x4e,0x8e, +0x00,0x08,0x4e,0xa6,0x00,0x08,0x4e,0xc6,0x00,0x08,0x4e,0xd6,0x00,0x08,0x4e,0xe6,0x00,0x08,0x4e,0xf6,0x00,0x08,0x4f,0x06,0x00,0x08,0x4f,0xaa,0x00,0x08,0x50,0x6e,0x00,0x08,0x51,0xc8,0x00,0x08,0x52,0x4e,0x00,0x08,0x52,0xec,0x00,0x08,0x53,0x44,0x00,0x08,0x54,0x5c,0x00,0x08,0x56,0x3a,0x00,0x08,0x56,0x64,0x00,0x08,0x56,0x8e, +0x00,0x08,0x57,0x2e,0x00,0x08,0x57,0xa2,0x00,0x08,0x58,0x2c,0x00,0x08,0x58,0x8a,0x00,0x08,0x59,0x3e,0x00,0x08,0x5a,0x14,0x00,0x08,0x5a,0xaa,0x00,0x08,0x5b,0x62,0x00,0x08,0x5c,0x16,0x00,0x08,0x5c,0xd0,0x00,0x08,0x5d,0xa0,0x00,0x08,0x5e,0x6c,0x00,0x08,0x5f,0x6c,0x00,0x08,0x60,0x3a,0x00,0x08,0x61,0x24,0x00,0x08,0x62,0x40, +0x00,0x08,0x63,0x1e,0x00,0x08,0x63,0xe0,0x00,0x08,0x64,0xc0,0x00,0x08,0x65,0x9c,0x00,0x08,0x66,0x1e,0x00,0x08,0x66,0x8c,0x00,0x08,0x67,0x10,0x00,0x08,0x67,0xac,0x00,0x08,0x68,0x70,0x00,0x08,0x69,0x26,0x00,0x08,0x69,0xfc,0x00,0x08,0x6a,0xd6,0x00,0x08,0x6b,0xc0,0x00,0x08,0x6c,0x5e,0x00,0x08,0x6d,0x12,0x00,0x08,0x6e,0x22, +0x00,0x08,0x6e,0xd8,0x00,0x08,0x6f,0x42,0x00,0x08,0x6f,0xc2,0x00,0x08,0x70,0x9e,0x00,0x08,0x71,0x44,0x00,0x08,0x72,0x00,0x00,0x08,0x72,0xa8,0x00,0x08,0x73,0x58,0x00,0x08,0x74,0x4c,0x00,0x08,0x75,0x34,0x00,0x08,0x75,0x88,0x00,0x08,0x76,0x2c,0x00,0x08,0x76,0x80,0x00,0x08,0x77,0x1a,0x00,0x08,0x78,0x46,0x00,0x08,0x78,0xe0, +0x00,0x08,0x78,0xfa,0x00,0x08,0x79,0x20,0x00,0x08,0x79,0xa8,0x00,0x08,0x79,0xc2,0x00,0x08,0x79,0xe8,0x00,0x08,0x7a,0x70,0x00,0x08,0x7a,0x9e,0x00,0x08,0x7b,0xb2,0x00,0x08,0x7b,0xe0,0x00,0x08,0x7c,0x7a,0x00,0x08,0x7c,0xe2,0x00,0x08,0x7d,0x08,0x00,0x08,0x7d,0x2e,0x00,0x08,0x7d,0x52,0x00,0x08,0x7d,0x78,0x00,0x08,0x7d,0x9c, +0x00,0x08,0x7d,0xc2,0x00,0x08,0x7d,0xfe,0x00,0x08,0x7e,0x46,0x00,0x08,0x7e,0x78,0x00,0x08,0x7f,0x14,0x00,0x08,0x7f,0xfc,0x00,0x08,0x80,0x22,0x00,0x08,0x80,0x48,0x00,0x08,0x80,0x78,0x00,0x08,0x80,0xa6,0x00,0x08,0x80,0xb6,0x00,0x08,0x80,0xc6,0x00,0x08,0x81,0x14,0x00,0x08,0x81,0xa4,0x00,0x08,0x82,0x1e,0x00,0x08,0x82,0x7e, +0x00,0x08,0x83,0x0e,0x00,0x08,0x83,0x9e,0x00,0x08,0x84,0x46,0x00,0x08,0x84,0xa4,0x00,0x08,0x84,0xf2,0x00,0x08,0x85,0x7c,0x00,0x08,0x85,0xfe,0x00,0x08,0x86,0x6c,0x00,0x08,0x86,0xe0,0x00,0x08,0x87,0x28,0x00,0x08,0x87,0x6a,0x00,0x08,0x87,0xbc,0x00,0x08,0x88,0x06,0x00,0x08,0x88,0xa8,0x00,0x08,0x88,0xd4,0x00,0x08,0x89,0x12, +0x00,0x08,0x89,0x84,0x00,0x08,0x89,0xf6,0x00,0x08,0x8a,0x7e,0x00,0x08,0x8b,0x08,0x00,0x08,0x8b,0x90,0x00,0x08,0x8c,0x38,0x00,0x08,0x8c,0xa4,0x00,0x08,0x8d,0x54,0x00,0x08,0x8d,0x84,0x00,0x08,0x8d,0xd4,0x00,0x08,0x8e,0x04,0x00,0x08,0x8e,0xd0,0x00,0x08,0x8f,0x2e,0x00,0x08,0x8f,0x7a,0x00,0x08,0x8f,0xba,0x00,0x08,0x8f,0xd8, +0x00,0x08,0x90,0x28,0x00,0x08,0x90,0x56,0x00,0x08,0x90,0x86,0x00,0x08,0x90,0xc0,0x00,0x08,0x91,0x4a,0x00,0x08,0x91,0x66,0x00,0x08,0x91,0x82,0x00,0x08,0x91,0xe2,0x00,0x08,0x92,0x10,0x00,0x08,0x92,0x66,0x00,0x08,0x92,0xb4,0x00,0x08,0x92,0xfe,0x00,0x08,0x93,0x52,0x00,0x08,0x93,0x98,0x00,0x08,0x94,0x1e,0x00,0x08,0x94,0x94, +0x00,0x08,0x94,0xe0,0x00,0x08,0x95,0x2e,0x00,0x08,0x95,0x7c,0x00,0x08,0x95,0xca,0x00,0x08,0x96,0x18,0x00,0x08,0x96,0x66,0x00,0x08,0x96,0xb4,0x00,0x08,0x97,0x02,0x00,0x08,0x97,0x50,0x00,0x08,0x97,0x9e,0x00,0x08,0x97,0xc0,0x00,0x08,0x97,0xe6,0x00,0x08,0x98,0x0c,0x00,0x08,0x98,0x32,0x00,0x08,0x98,0x52,0x00,0x08,0x99,0x8c, +0x00,0x08,0x9a,0x5c,0x00,0x08,0x9b,0x26,0x00,0x08,0x9c,0xa0,0x00,0x08,0x9d,0x40,0x00,0x08,0x9d,0xa4,0x00,0x08,0x9d,0xbc,0x00,0x08,0x9d,0xd4,0x00,0x08,0x9e,0xa8,0x00,0x08,0x9f,0x86,0x00,0x08,0x9f,0xf0,0x00,0x08,0xa0,0x76,0x00,0x08,0xa1,0x46,0x00,0x08,0xa2,0x16,0x00,0x08,0xa2,0xd6,0x00,0x08,0xa3,0x98,0x00,0x08,0xa4,0x34, +0x00,0x08,0xa4,0xd0,0x00,0x08,0xa4,0xe0,0x00,0x08,0xa5,0xa4,0x00,0x08,0xa6,0x5c,0x00,0x08,0xa6,0xb8,0x00,0x08,0xa6,0xec,0x00,0x08,0xa7,0x0e,0x00,0x08,0xa7,0xec,0x00,0x08,0xa8,0xee,0x00,0x08,0xa9,0x9a,0x00,0x08,0xaa,0x4c,0x00,0x08,0xaa,0xfc,0x00,0x08,0xab,0x0c,0x00,0x08,0xac,0x2e,0x00,0x08,0xac,0xda,0x00,0x08,0xac,0xfa, +0x00,0x08,0xad,0x92,0x00,0x08,0xae,0x8a,0x00,0x08,0xaf,0x44,0x00,0x08,0xb0,0x2e,0x00,0x08,0xb0,0xd0,0x00,0x08,0xb1,0x98,0x00,0x08,0xb2,0x50,0x00,0x08,0xb3,0x2c,0x00,0x08,0xb4,0x50,0x00,0x08,0xb5,0x4c,0x00,0x08,0xb6,0x22,0x00,0x08,0xb7,0x38,0x00,0x08,0xb7,0x90,0x00,0x08,0xb8,0x46,0x00,0x08,0xb8,0x8c,0x00,0x08,0xb9,0x06, +0x00,0x08,0xb9,0xbe,0x00,0x08,0xba,0x9e,0x00,0x08,0xbb,0x02,0x00,0x08,0xbb,0xb0,0x00,0x08,0xbb,0xc0,0x00,0x08,0xbc,0x18,0x00,0x08,0xbc,0xa0,0x00,0x08,0xbd,0x70,0x00,0x08,0xbe,0x40,0x00,0x08,0xbe,0xc0,0x00,0x08,0xbe,0xd0,0x00,0x08,0xbf,0xb4,0x00,0x08,0xc0,0x46,0x00,0x08,0xc1,0x26,0x00,0x08,0xc1,0x9a,0x00,0x08,0xc2,0x7e, +0x00,0x08,0xc3,0x1a,0x00,0x08,0xc3,0x82,0x00,0x08,0xc3,0xfe,0x00,0x08,0xc4,0x74,0x00,0x08,0xc5,0x16,0x00,0x08,0xc5,0xc2,0x00,0x08,0xc6,0x46,0x00,0x08,0xc6,0xd8,0x00,0x08,0xc6,0xe8,0x00,0x08,0xc6,0xfa,0x00,0x08,0xc7,0x0c,0x00,0x08,0xc7,0x1e,0x00,0x08,0xc7,0x30,0x00,0x08,0xc7,0x42,0x00,0x08,0xc7,0x54,0x00,0x08,0xc7,0x66, +0x00,0x08,0xc7,0x78,0x00,0x08,0xc7,0x8a,0x00,0x08,0xc7,0x9c,0x00,0x08,0xc7,0xac,0x00,0x08,0xc7,0xbe,0x00,0x08,0xc7,0xd0,0x00,0x08,0xc7,0xe0,0x00,0x08,0xc7,0xf2,0x00,0x08,0xc8,0x04,0x00,0x08,0xc8,0x16,0x00,0x08,0xc8,0x2e,0x00,0x08,0xc8,0x46,0x00,0x08,0xc8,0x5e,0x00,0x08,0xc8,0x74,0x00,0x08,0xc8,0x8a,0x00,0x08,0xca,0x64, +0x00,0x08,0xd0,0x7e,0x00,0x08,0xd2,0xb4,0x00,0x08,0xd9,0xd8,0x00,0x08,0xd9,0xea,0x00,0x08,0xda,0x02,0x00,0x08,0xda,0x14,0x00,0x08,0xda,0x64,0x00,0x08,0xda,0x74,0x00,0x08,0xda,0x86,0x00,0x08,0xda,0x9e,0x00,0x08,0xda,0xb0,0x00,0x08,0xda,0xc8,0x00,0x08,0xda,0xd8,0x00,0x08,0xda,0xee,0x00,0x08,0xdb,0x00,0x00,0x08,0xdb,0x18, +0x00,0x08,0xdb,0x2a,0x00,0x08,0xdb,0x42,0x00,0x08,0xdb,0x76,0x00,0x08,0xdb,0xe0,0x00,0x08,0xdc,0x00,0x00,0x08,0xdc,0x20,0x00,0x08,0xdc,0x40,0x00,0x08,0xdc,0x60,0x00,0x08,0xdc,0x72,0x00,0x08,0xdc,0x8a,0x00,0x08,0xdc,0xa2,0x00,0x08,0xdc,0xba,0x00,0x08,0xdc,0xd2,0x00,0x08,0xdc,0xea,0x00,0x08,0xdd,0x02,0x00,0x08,0xdd,0x1a, +0x00,0x08,0xdd,0x32,0x00,0x08,0xdd,0x4a,0x00,0x08,0xdd,0x62,0x00,0x08,0xdd,0xf4,0x00,0x08,0xde,0x98,0x00,0x08,0xde,0xb8,0x00,0x08,0xde,0xd8,0x00,0x08,0xdf,0x32,0x00,0x08,0xdf,0x5a,0x00,0x08,0xdf,0x6a,0x00,0x08,0xdf,0x82,0x00,0x08,0xdf,0x9a,0x00,0x08,0xdf,0xfe,0x00,0x08,0xe0,0x68,0x00,0x08,0xe1,0x3a,0x00,0x08,0xe1,0xe8, +0x00,0x08,0xe2,0x86,0x00,0x08,0xe3,0x22,0x00,0x08,0xe3,0x3a,0x00,0x08,0xe3,0x52,0x00,0x08,0xe3,0x62,0x00,0x08,0xe3,0x72,0x00,0x08,0xe4,0x36,0x00,0x08,0xe4,0xe0,0x00,0x08,0xe4,0xf0,0x00,0x08,0xe5,0x00,0x00,0x08,0xe6,0x9c,0x00,0x08,0xe6,0xc6,0x00,0x08,0xe7,0x9c,0x00,0x08,0xe8,0x80,0x00,0x08,0xe8,0xd2,0x00,0x08,0xe8,0xe4, +0x00,0x08,0xe9,0x06,0x00,0x08,0xe9,0x18,0x00,0x08,0xe9,0x6c,0x00,0x08,0xe9,0x7e,0x00,0x08,0xea,0x14,0x00,0x08,0xea,0x26,0x00,0x08,0xea,0xde,0x00,0x08,0xeb,0x30,0x00,0x08,0xeb,0x96,0x00,0x08,0xeb,0xea,0x00,0x08,0xec,0x50,0x00,0x08,0xec,0xa2,0x00,0x08,0xed,0x08,0x00,0x08,0xed,0x5a,0x00,0x08,0xed,0xc0,0x00,0x08,0xed,0xd0, +0x00,0x08,0xee,0x14,0x00,0x08,0xee,0xbe,0x00,0x08,0xee,0xce,0x00,0x08,0xef,0x72,0x00,0x08,0xef,0x82,0x00,0x08,0xf0,0x60,0x00,0x08,0xf0,0x70,0x00,0x08,0xf0,0xe0,0x00,0x08,0xf1,0x84,0x00,0x08,0xf2,0x52,0x00,0x08,0xf3,0x0a,0x00,0x08,0xf3,0xa2,0x00,0x08,0xf4,0x72,0x00,0x08,0xf4,0xb6,0x00,0x08,0xf5,0x92,0x00,0x08,0xf6,0xe4, +0x00,0x08,0xf8,0x9a,0x00,0x08,0xf9,0xc2,0x00,0x08,0xfb,0x6a,0x00,0x08,0xfb,0x82,0x00,0x08,0xfb,0x9a,0x00,0x08,0xfb,0xba,0x00,0x08,0xfb,0xda,0x00,0x08,0xfb,0xf2,0x00,0x08,0xfc,0x0a,0x00,0x08,0xfc,0x2a,0x00,0x08,0xfc,0x3a,0x00,0x08,0xfc,0x4a,0x00,0x08,0xfc,0x5a,0x00,0x08,0xfd,0xb0,0x00,0x08,0xfe,0x98,0x00,0x08,0xff,0x4a, +0x00,0x09,0x00,0x2a,0x00,0x09,0x00,0xb8,0x00,0x09,0x00,0xca,0x00,0x09,0x02,0x4a,0x00,0x09,0x04,0x28,0x00,0x09,0x05,0xf4,0x00,0x09,0x07,0x6a,0x00,0x09,0x08,0x98,0x00,0x09,0x0a,0x78,0x00,0x09,0x0b,0x12,0x00,0x09,0x0b,0xd4,0x00,0x09,0x0c,0x8e,0x00,0x09,0x0c,0xa0,0x00,0x09,0x0c,0xbc,0x00,0x09,0x0c,0xd4,0x00,0x09,0x0c,0xec, +0x00,0x09,0x0d,0x04,0x00,0x09,0x0d,0x1c,0x00,0x09,0x0d,0x34,0x00,0x09,0x0d,0x54,0x00,0x09,0x0d,0x74,0x00,0x09,0x0d,0x94,0x00,0x09,0x0d,0xb4,0x00,0x09,0x0d,0xd4,0x00,0x09,0x0d,0xf4,0x00,0x09,0x0e,0x0c,0x00,0x09,0x0f,0x08,0x00,0x09,0x0f,0xe2,0x00,0x09,0x10,0x80,0x00,0x09,0x10,0x98,0x00,0x09,0x10,0xb8,0x00,0x09,0x10,0xd8, +0x00,0x09,0x10,0xf8,0x00,0x09,0x11,0x08,0x00,0x09,0x11,0x20,0x00,0x09,0x11,0x38,0x00,0x09,0x11,0x48,0x00,0x09,0x11,0x60,0x00,0x09,0x11,0x78,0x00,0x09,0x11,0x88,0x00,0x09,0x11,0xd2,0x00,0x09,0x12,0x0c,0x00,0x09,0x12,0x4e,0x00,0x09,0x13,0x00,0x00,0x09,0x13,0x92,0x00,0x09,0x14,0x14,0x00,0x09,0x14,0x5e,0x00,0x09,0x14,0xb0, +0x00,0x09,0x15,0x02,0x00,0x09,0x15,0x9a,0x00,0x09,0x16,0x2a,0x00,0x09,0x16,0xd4,0x00,0x09,0x17,0x66,0x00,0x09,0x17,0xea,0x00,0x09,0x18,0x2e,0x00,0x09,0x1a,0x76,0x00,0x09,0x1c,0x24,0x00,0x09,0x1c,0x68,0x00,0x09,0x1c,0x98,0x00,0x09,0x1c,0xc8,0x00,0x09,0x1c,0xd8,0x00,0x09,0x1c,0xe8,0x00,0x09,0x1d,0x32,0x00,0x09,0x1d,0x6e, +0x00,0x09,0x1d,0xb2,0x00,0x09,0x1e,0x72,0x00,0x09,0x1f,0x06,0x00,0x09,0x1f,0x86,0x00,0x09,0x1f,0xd4,0x00,0x09,0x20,0x2e,0x00,0x09,0x20,0x8a,0x00,0x09,0x21,0x32,0x00,0x09,0x21,0xd2,0x00,0x09,0x22,0x8a,0x00,0x09,0x23,0x1c,0x00,0x09,0x23,0xa4,0x00,0x09,0x23,0xee,0x00,0x09,0x24,0x06,0x00,0x09,0x24,0x26,0x00,0x09,0x24,0xbe, +0x00,0x09,0x25,0x8e,0x00,0x09,0x26,0x66,0x00,0x09,0x27,0x7e,0x00,0x09,0x28,0x24,0x00,0x09,0x28,0xf6,0x00,0x09,0x29,0xdc,0x00,0x09,0x2a,0xa8,0x00,0x09,0x2b,0x2a,0x00,0x09,0x2b,0xe8,0x00,0x09,0x2d,0x1c,0x00,0x09,0x2d,0xde,0x00,0x09,0x2e,0xbc,0x00,0x09,0x2f,0x8a,0x00,0x09,0x30,0x5a,0x00,0x09,0x31,0x46,0x00,0x09,0x32,0x6a, +0x00,0x09,0x32,0xf4,0x00,0x09,0x34,0x44,0x00,0x09,0x35,0x52,0x00,0x09,0x36,0x94,0x00,0x09,0x37,0x42,0x00,0x09,0x38,0x46,0x00,0x09,0x39,0x0a,0x00,0x09,0x3a,0x26,0x00,0x09,0x3a,0xf8,0x00,0x09,0x3b,0xcc,0x00,0x09,0x3c,0x52,0x00,0x09,0x3d,0x76,0x00,0x09,0x3e,0x9e,0x00,0x09,0x3f,0x20,0x00,0x09,0x40,0x62,0x00,0x09,0x41,0x64, +0x00,0x09,0x42,0x74,0x00,0x09,0x43,0x46,0x00,0x09,0x44,0x02,0x00,0x09,0x44,0xe6,0x00,0x09,0x45,0xdc,0x00,0x09,0x46,0xa4,0x00,0x09,0x47,0x60,0x00,0x09,0x48,0x26,0x00,0x09,0x48,0xfe,0x00,0x09,0x49,0x8e,0x00,0x09,0x49,0x8e,0x00,0x09,0x49,0x8e,0x00,0x09,0x4a,0x4a,0x00,0x09,0x4b,0x1e,0x00,0x09,0x4b,0xac,0x00,0x09,0x4b,0xfc, +0x00,0x02,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x00,0x03,0x00,0x07,0x00,0x1a,0x40,0x0b,0x07,0x01,0x03,0x04,0x00,0x03,0x05,0x05,0x09,0x04,0x00,0x2f,0xcd,0x12,0x39,0x2f,0xcd,0x00,0x2f,0xcd,0x3f,0xcd,0x31,0x30,0x33,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0xa6,0x03,0xde,0xfc,0xb6,0x02,0xb6,0xfd,0x4a,0x05,0x76,0xfa,0x8a,0x94, +0x04,0x4e,0x00,0x02,0x00,0xb4,0xff,0xee,0x01,0x92,0x05,0x9a,0x00,0x03,0x00,0x0f,0x00,0x3f,0x40,0x20,0x03,0x03,0x02,0x0a,0x40,0x04,0x0a,0xb0,0x5b,0x04,0x13,0x01,0x02,0x00,0x7d,0x1f,0x03,0x2f,0x03,0x02,0x03,0x0d,0xaf,0x7f,0x07,0x01,0x10,0x07,0x20,0x07,0x02,0x07,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x07,0x2f,0x2b,0x72,0x5d, +0xe1,0xd4,0x72,0xe1,0x39,0x39,0x00,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xce,0x3f,0x31,0x30,0x01,0x03,0x23,0x03,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x77,0x13,0x87,0x12,0x58,0x2e,0x41,0x41,0x2e,0x2d,0x42,0x42,0x05,0x9a,0xfb,0xfa,0x04,0x06,0xfa,0x54,0x40,0x2e,0x2e,0x41,0x41,0x2e,0x2e,0x40,0x00,0x02, +0x00,0xa3,0x03,0xdb,0x02,0x80,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x23,0x40,0x14,0x0f,0x04,0x1f,0x04,0x2f,0x04,0xbf,0x04,0xcf,0x04,0x05,0x04,0x04,0x09,0x03,0x06,0x02,0x07,0x03,0x03,0x00,0x3f,0x33,0xcd,0x32,0x01,0x2f,0x12,0x39,0x2f,0x5d,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x01,0x34,0x91,0x01,0xdd,0x91,0x05, +0x9a,0xfe,0x41,0x01,0xbf,0xfe,0x41,0x01,0xbf,0x00,0x00,0x02,0x00,0x21,0x00,0x7b,0x04,0x8e,0x05,0x9a,0x00,0x1b,0x00,0x1f,0x00,0xbf,0x40,0x6b,0x0f,0x17,0x01,0x00,0x06,0x01,0x10,0x06,0x1b,0x02,0x03,0x06,0x07,0x1a,0x07,0x18,0x1c,0x1f,0x09,0x08,0x19,0x08,0x17,0x1d,0x1e,0x0a,0x0b,0x16,0x0b,0x14,0x11,0x10,0x0d,0x0c,0x15,0x0c, +0x09,0x0d,0x10,0x1f,0x04,0x06,0x03,0x06,0x03,0xe2,0x59,0x11,0x14,0x17,0x1d,0x04,0x02,0x1b,0x1b,0x02,0xe2,0x59,0x1b,0x06,0x1b,0x06,0x1a,0x0b,0x00,0x07,0x10,0x07,0x02,0x09,0x07,0x07,0x21,0x16,0x1a,0x03,0x04,0x00,0x00,0x19,0x1a,0x0e,0x07,0x0f,0x08,0x01,0x0c,0x03,0x08,0x08,0x21,0x0c,0x0c,0x16,0x42,0x12,0x0e,0x0e,0x15,0x16, +0x0b,0x60,0x0c,0x70,0x0c,0x02,0x0c,0x2f,0x5d,0x33,0xcd,0x32,0x33,0x2f,0xc6,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0xe1,0x32,0x32,0x2f,0xc6,0x00,0x3f,0xc4,0x12,0x39,0x2f,0x5e,0x5d,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x11,0x12,0x00,0x17,0x39,0x2b,0x11,0x12,0x00,0x17,0x39,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0, +0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x01,0x5f,0x5e,0x5d,0x5d,0x01,0x07,0x21,0x03,0x21,0x07,0x21,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x21,0x37,0x21,0x13,0x21,0x37,0x21,0x13,0x33,0x03,0x33,0x13,0x33,0x03,0x07,0x23,0x03,0x33,0x04,0x8e,0x17,0xfe,0xfb,0x3f,0x01, +0x19,0x1b,0xfe,0xed,0x58,0x7e,0x56,0xfa,0x54,0x7d,0x54,0xfe,0xfa,0x14,0x01,0x09,0x3d,0xfe,0xeb,0x15,0x01,0x15,0x54,0x7e,0x54,0xfc,0x56,0x7b,0x54,0x91,0xfc,0x42,0xfe,0x04,0x08,0x6a,0xfe,0xd4,0x6a,0xfe,0x73,0x01,0x8d,0xfe,0x73,0x01,0x8d,0x6a,0x01,0x2c,0x6a,0x01,0x92,0xfe,0x6e,0x01,0x92,0xfe,0x6e,0x6a,0xfe,0xd4,0x00,0x03, +0x00,0xa2,0xff,0x2f,0x03,0xd1,0x06,0x50,0x00,0x1e,0x00,0x25,0x00,0x2a,0x00,0xc1,0x40,0x1b,0x09,0x26,0x01,0x06,0x1f,0x01,0x0a,0x1d,0x01,0x05,0x15,0x01,0x03,0x00,0x0e,0x01,0x0f,0x05,0x01,0x10,0x05,0x2a,0x20,0x0c,0x00,0x4d,0x25,0xb8,0xff,0xe0,0xb3,0x0c,0x00,0x4d,0x15,0xb8,0xff,0xd0,0x40,0x56,0x0c,0x00,0x4d,0x05,0x30,0x0c, +0x00,0x4d,0x1f,0x19,0x09,0x26,0x0a,0x03,0x13,0x16,0x16,0x20,0x18,0x13,0x18,0x9a,0x59,0x10,0x12,0x40,0x13,0x06,0x00,0x06,0x10,0x06,0x20,0x06,0x03,0x09,0x03,0x06,0x06,0x27,0x09,0x03,0x09,0x9a,0x59,0x00,0x02,0x03,0x18,0x09,0x10,0x13,0x19,0x1f,0x27,0x06,0x01,0x8c,0x02,0x02,0x1c,0x0d,0x16,0x40,0x0c,0x11,0x00,0x4c,0x16,0x16, +0x1c,0x89,0x7f,0x29,0x01,0x2f,0x29,0x01,0x29,0x05,0x23,0x89,0x20,0x0d,0x01,0x0d,0x2f,0x5d,0xe1,0xc4,0xd4,0x5d,0x5d,0xf1,0xc0,0x2f,0x2b,0x11,0x12,0x39,0x2f,0xe1,0x17,0x39,0x00,0x3f,0xcd,0x33,0x2b,0x11,0x00,0x33,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x1a,0xcd,0x33,0x2b,0x11,0x00,0x33,0x33,0x18,0x2f,0x11,0x12,0x39,0x39,0x12, +0x39,0x39,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x25,0x15,0x23,0x35,0x22,0x27,0x35,0x16,0x16,0x33,0x11,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x15,0x26,0x27,0x11,0x16,0x16,0x15,0x14,0x06,0x01,0x11,0x06,0x06,0x15,0x14,0x16,0x13,0x11,0x36,0x35,0x34,0x02,0x68,0x68,0xd5, +0x85,0x3a,0xc9,0x57,0xdc,0x82,0xc6,0x98,0x68,0xc4,0x4b,0x66,0xa9,0xd0,0x99,0xbf,0xfe,0xee,0x54,0x62,0x50,0xce,0xc1,0x08,0xd9,0xd1,0x56,0xae,0x33,0x45,0x02,0x00,0x6a,0xb3,0x7a,0x91,0xd3,0x15,0xb4,0xb0,0x06,0x32,0xaa,0x50,0x06,0xfd,0xf0,0x63,0xb9,0x76,0x8e,0xc1,0x03,0x19,0x01,0xd2,0x11,0x73,0x52,0x56,0x6e,0xfe,0xe4,0xfe, +0x3c,0x2a,0xa6,0x8a,0x00,0x05,0x00,0x50,0xff,0xea,0x06,0x40,0x05,0xb0,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x27,0x00,0x33,0x00,0xaf,0x40,0x32,0x19,0x18,0x03,0x22,0x28,0x52,0x59,0x22,0x0e,0x1c,0x1c,0x2e,0x52,0x59,0x1c,0x13,0x06,0x00,0x42,0x00,0x12,0x52,0x59,0x00,0x06,0x06,0x0c,0x52,0x59,0x06,0x04,0x3f,0x18,0x4f,0x18,0x02, +0x1a,0x18,0x1a,0x18,0x25,0x03,0x1f,0xbd,0x2b,0x0c,0x0d,0x06,0x4d,0x2b,0xb8,0xff,0xf9,0xb6,0x0b,0x06,0x4d,0x2b,0x31,0xbd,0x25,0xb8,0xff,0xe0,0x40,0x14,0x0d,0x06,0x4d,0x25,0x18,0x0c,0x06,0x4d,0x25,0x09,0x0b,0x06,0x4d,0x25,0x25,0x35,0x03,0x09,0xbd,0x15,0xb8,0xff,0xec,0x40,0x16,0x0d,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15, +0x0f,0xbd,0x03,0x1c,0x0d,0x06,0x4d,0x03,0x1c,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xe4,0xb3,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0xd4,0x2b,0x2b,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0xd4,0x2b,0x2b,0xe1,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc4,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18, +0x10,0xe4,0x2b,0x00,0x18,0x3f,0x2f,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x25,0x01,0x23,0x01,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x94,0x94, +0xb0,0xba,0x9e,0x99,0xa9,0xbd,0x8b,0x5f,0x6e,0x6c,0x5d,0x5e,0x6a,0x69,0x03,0x57,0xfc,0x68,0x8f,0x03,0x97,0x26,0x94,0xb0,0xbc,0x9c,0x98,0xaa,0xbd,0x8b,0x60,0x6d,0x6c,0x5d,0x5e,0x6a,0x69,0x02,0xcb,0xc3,0xa3,0xb2,0xcd,0xbe,0xac,0xac,0xcf,0x02,0x77,0x8d,0x7b,0x79,0x87,0x8c,0x7c,0x79,0x87,0x58,0xfa,0x5c,0x05,0xa4,0xfa,0x50, +0xc4,0xa2,0xb2,0xcf,0xc0,0xad,0xab,0xcf,0x02,0x76,0x8c,0x7c,0x77,0x87,0x8d,0x7b,0x7a,0x84,0x00,0x03,0x00,0x77,0xff,0xe9,0x06,0x3e,0x05,0xb2,0x00,0x43,0x00,0x57,0x00,0x67,0x00,0xd7,0x40,0x1c,0x58,0x4f,0x01,0x5c,0x4c,0x01,0x03,0x59,0x4b,0x01,0x5d,0x4a,0x01,0x50,0x37,0x01,0x52,0x36,0x01,0x5b,0x0d,0x01,0x4a,0x40,0x0b,0x00, +0x4d,0x51,0xb8,0xff,0xe8,0x40,0x0c,0x0b,0x00,0x4d,0x1d,0x4d,0x01,0x02,0x1f,0x01,0x0b,0x04,0x10,0xb8,0xff,0xe0,0x40,0x5c,0x0b,0x00,0x4d,0x05,0x49,0x4e,0x12,0x04,0x0a,0x2f,0x38,0x29,0x24,0x65,0x2f,0x05,0x1c,0x44,0x1c,0x5d,0x96,0x59,0x1c,0x04,0x0a,0x44,0x95,0x59,0x0a,0x13,0x00,0x3d,0xec,0x59,0x00,0x13,0x3a,0x49,0x01,0x38, +0x05,0x33,0x0f,0x29,0x49,0x2c,0x53,0x12,0x4e,0x65,0x24,0x04,0x21,0x17,0x33,0xef,0x2c,0x21,0xef,0x58,0x60,0xef,0x17,0x17,0x58,0x2c,0x03,0x0f,0x70,0x40,0x01,0x40,0x40,0x69,0x53,0x08,0x0d,0x06,0x4d,0x53,0x08,0x0c,0x06,0x4d,0x53,0x08,0x0b,0x06,0x4d,0x53,0x83,0x0f,0x2f,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x12,0x17,0x39, +0x2f,0xe1,0x2f,0xe1,0x2f,0xe1,0x11,0x12,0x17,0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x17,0x39,0x18,0x2f,0x11,0x17,0x39,0x31,0x30,0x2b,0x5f,0x5e,0x5d,0x5d,0x2b,0x01,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x00,0x5f,0x5d,0x5d,0x05,0x22,0x2e,0x02,0x27, +0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x17,0x36,0x12,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x14,0x0e,0x02,0x07,0x1e,0x03,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x25,0x32,0x3e,0x02,0x37,0x2e,0x03,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02, +0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x14,0x1e,0x02,0x17,0x36,0x36,0x05,0xa5,0x39,0x57,0x4a,0x45,0x26,0x28,0x69,0x80,0x98,0x59,0x6c,0xb4,0x80,0x47,0xae,0x9f,0x1e,0x3c,0x2f,0x1d,0x39,0x64,0x88,0x4f,0x4e,0x81,0x5d,0x34,0x89,0x89,0x45,0x70,0x5f,0x52,0x28,0x51,0x52,0x09,0x08,0x9f,0x08,0x03,0x02,0x26,0x40,0x55,0x2f,0x23, +0x3a,0x3b,0x3f,0x28,0x1e,0x3e,0x21,0x24,0x4f,0xfc,0x93,0x4c,0x80,0x6c,0x58,0x24,0x3d,0x67,0x69,0x77,0x4e,0x3f,0x6a,0x4d,0x2c,0x32,0x57,0x74,0x01,0x3d,0x25,0x39,0x46,0x22,0x62,0x75,0x01,0x19,0x2d,0x3c,0x22,0x7e,0x7c,0x17,0x1f,0x39,0x52,0x34,0x2b,0x50,0x3e,0x25,0x36,0x69,0x9a,0x64,0x99,0xd9,0x45,0x16,0x3b,0x4b,0x5b,0x36, +0x4f,0x7a,0x54,0x2b,0x2b,0x50,0x70,0x45,0x78,0x9f,0x38,0x1b,0x4e,0x60,0x6e,0x3b,0x71,0x01,0x10,0x95,0x26,0x43,0x21,0x21,0x3b,0x29,0x5b,0xb8,0xad,0x9c,0x41,0x30,0x47,0x30,0x17,0x10,0x0c,0x98,0x0e,0x0e,0x8e,0x21,0x37,0x49,0x28,0x5f,0x87,0x62,0x46,0x1e,0x19,0x3d,0x53,0x6e,0x4a,0x44,0x68,0x45,0x23,0x03,0xfd,0x32,0x46,0x2e, +0x15,0x6a,0x5b,0x29,0x48,0x3e,0x30,0x11,0x2c,0x75,0x00,0x01,0x00,0xa3,0x03,0xdb,0x01,0x34,0x05,0x9a,0x00,0x03,0x00,0x0c,0xb3,0x03,0x02,0x03,0x03,0x00,0x3f,0xcd,0x01,0x2f,0x31,0x30,0x01,0x11,0x23,0x11,0x01,0x34,0x91,0x05,0x9a,0xfe,0x41,0x01,0xbf,0x00,0x00,0x01,0x00,0x8c,0xfe,0xba,0x02,0x56,0x05,0x9a,0x00,0x09,0x00,0x41, +0x40,0x2b,0x05,0x10,0x0b,0x01,0x4d,0x01,0x10,0x0b,0x01,0x4d,0x38,0x02,0x01,0x06,0x03,0x00,0x20,0x05,0xea,0x06,0x01,0xea,0x00,0x00,0x0b,0x08,0x08,0x0c,0x06,0x4d,0x08,0x10,0x0b,0x06,0x4d,0x08,0xea,0x03,0x10,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0xe1,0xd6,0xe1,0x00,0x3f,0x3f,0x31,0x30,0x01,0x5d,0x2b, +0x2b,0x01,0x23,0x00,0x11,0x10,0x01,0x33,0x00,0x11,0x10,0x02,0x54,0x92,0xfe,0xca,0x01,0x36,0x94,0xfe,0xc6,0xfe,0xba,0x01,0x62,0x02,0x07,0x02,0x09,0x01,0x6e,0xfe,0x84,0xfe,0x07,0xfe,0x0b,0x00,0x00,0x01,0x00,0x16,0xfe,0xba,0x01,0xe2,0x05,0x9a,0x00,0x09,0x00,0x4a,0xb9,0x00,0x06,0xff,0xf0,0xb3,0x0b,0x01,0x4d,0x00,0xb8,0xff, +0xf0,0x40,0x0b,0x0b,0x01,0x4d,0x37,0x09,0x01,0x06,0x03,0x00,0x20,0x03,0xb8,0xff,0xf0,0xb5,0x0b,0x06,0x4d,0x03,0xea,0x08,0xb8,0xff,0xf8,0x40,0x0d,0x0b,0x06,0x4d,0x08,0x08,0x0b,0x01,0x06,0xea,0x05,0x00,0xea,0x01,0x2f,0xe1,0xd6,0xe1,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x00,0x3f,0x3f,0x31,0x30,0x01,0x5d,0x2b,0x2b,0x13,0x23, +0x00,0x11,0x10,0x01,0x33,0x00,0x11,0x10,0xaa,0x92,0x01,0x38,0xfe,0xc6,0x94,0x01,0x38,0xfe,0xba,0x01,0x76,0x01,0xf5,0x01,0xf9,0x01,0x7c,0xfe,0x92,0xfd,0xf7,0xfd,0xf9,0x00,0x00,0x01,0x00,0x4c,0x02,0xd9,0x03,0x0c,0x05,0x9a,0x00,0x0e,0x00,0x67,0x40,0x31,0x03,0x04,0x01,0x10,0x03,0x03,0x05,0x08,0x0a,0x0d,0x0e,0x00,0x04,0x08, +0x09,0x09,0x08,0x53,0x59,0x0f,0x09,0x01,0x10,0x03,0x09,0x0c,0x03,0x02,0x02,0x00,0x0e,0x0c,0x06,0x06,0x0b,0x08,0x0b,0x08,0x42,0x08,0x04,0x0a,0x0d,0x03,0x01,0x0d,0x0c,0x48,0x0b,0xb8,0xff,0xf8,0xb5,0x0d,0x06,0x4d,0x07,0x0a,0x0b,0x2f,0x33,0x33,0x2b,0xed,0x32,0x32,0x17,0x39,0xc4,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0x10,0xe4, +0x39,0x2f,0x00,0x3f,0xc4,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x17,0x39,0x18,0x10,0xd4,0xc4,0x31,0x30,0x5f,0x5e,0x5d,0x01,0x05,0x17,0x07,0x03,0x03,0x27,0x37,0x25,0x37,0x05,0x03,0x33,0x03,0x25,0x03,0x0c,0xfe,0xee,0xbe,0x6e,0x9c,0x9e,0x6e,0xbe,0xfe,0xec,0x2d,0x01,0x06,0x17,0x8a,0x17,0x01,0x07,0x04,0x50,0x38,0xf3,0x4c,0x01, +0x09,0xfe,0xf7,0x4c,0xf3,0x38,0x7d,0x63,0x01,0x30,0xfe,0xd0,0x63,0x00,0x00,0x01,0x00,0xe8,0x00,0x7f,0x04,0x94,0x04,0x2b,0x00,0x0b,0x00,0x49,0x40,0x21,0x03,0x0e,0x04,0x08,0x0e,0x07,0x40,0x0a,0x01,0x04,0x07,0x07,0x04,0xbe,0x59,0x0f,0x07,0x01,0x0d,0x03,0x07,0x00,0x0e,0x01,0x04,0x05,0x42,0x05,0x0a,0x07,0x01,0xbd,0x04,0xb8, +0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x04,0x2f,0x2b,0xe1,0x39,0x39,0xcd,0x2b,0x01,0x10,0xe1,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x04,0x94,0xfe,0x6c,0x85,0xfe,0x6d,0x01,0x93,0x85,0x01,0x94,0x02,0x12,0xfe, +0x6d,0x01,0x93,0x86,0x01,0x93,0xfe,0x6d,0x00,0x01,0x00,0x27,0xfe,0xf8,0x01,0x3c,0x00,0xe4,0x00,0x03,0x00,0x45,0x40,0x1d,0x39,0x03,0x01,0x39,0x00,0x01,0x02,0x40,0x03,0xb2,0x04,0x00,0x20,0x0c,0x06,0x4d,0x00,0x28,0x0b,0x06,0x4d,0x00,0x80,0x02,0x40,0x11,0x19,0x48,0x02,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xea, +0xb6,0x0b,0x06,0x4d,0x02,0x2f,0x05,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0x1a,0xcd,0x2b,0x2b,0x00,0x10,0xf6,0x1a,0xcd,0x31,0x30,0x01,0x5d,0x5d,0x25,0x03,0x23,0x13,0x01,0x3c,0xa0,0x75,0x75,0xe4,0xfe,0x14,0x01,0xec,0x00,0x00,0x01,0x00,0x90,0x01,0xfa,0x02,0xb2,0x02,0x7b,0x00,0x03,0x00,0x1c,0x40,0x10,0x02,0x01,0x53,0x59,0x4f,0x02, +0x01,0x02,0x20,0x00,0x01,0x00,0x20,0x01,0x01,0x01,0x2f,0x5d,0x2f,0x5d,0x00,0x2f,0x5d,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0xb2,0xfd,0xde,0x02,0x22,0x01,0xfa,0x81,0x00,0x00,0x01,0x00,0x70,0xff,0xea,0x01,0x50,0x00,0xcb,0x00,0x0b,0x00,0x1c,0x40,0x11,0x00,0x06,0xb0,0x5b,0x00,0x13,0x09,0xaf,0x1f,0x03,0x2f,0x03,0x02,0x03, +0x2f,0x0d,0x01,0x5d,0x2f,0x71,0xe1,0x00,0x3f,0x2b,0x31,0x30,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x16,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x00,0x00,0x01,0xff,0xe4,0xff,0x12,0x03,0x2d,0x05,0x9a,0x00,0x03,0x00,0x19,0x40,0x0d,0x77,0x01,0x01,0x00,0x10,0x0b, +0x00,0x4d,0x01,0x00,0x03,0x00,0x02,0x2f,0x2f,0x00,0x3f,0x2f,0x31,0x30,0x01,0x2b,0x5d,0x01,0x01,0x23,0x01,0x03,0x2d,0xfd,0x50,0x99,0x02,0xae,0x05,0x9a,0xf9,0x78,0x06,0x88,0x00,0x02,0x00,0x56,0xff,0xe7,0x03,0xfc,0x05,0xb2,0x00,0x10,0x00,0x18,0x00,0x29,0x40,0x15,0x00,0x89,0x11,0x11,0x1a,0x15,0x89,0x40,0x0a,0x0f,0x13,0x9a, +0x59,0x0f,0x07,0x05,0x17,0x9a,0x59,0x05,0x19,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x01,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x02,0x06,0x06,0x23,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x20,0x03,0x10,0x21,0x20,0x11,0x10,0x21,0x20,0x03,0xfc,0x41,0x7b,0xb3,0x72,0x6c,0xa9,0x74,0x3c,0x3f,0x7a, +0xb5,0x75,0x01,0xc3,0xa8,0xfe,0xdd,0xfe,0xcd,0x01,0x2d,0x01,0x29,0x02,0xd3,0xb4,0xfe,0xea,0xbf,0x63,0x5f,0xb6,0x01,0x09,0xab,0xbc,0x01,0x20,0xc3,0x63,0xfd,0x11,0x02,0x64,0xfd,0x91,0xfd,0xbb,0x00,0x01,0x00,0xe4,0x00,0x00,0x02,0xd4,0x05,0xba,0x00,0x0e,0x00,0x1d,0x40,0x0d,0x0d,0x07,0x00,0x8a,0x01,0x08,0x07,0x07,0x01,0x0d, +0x07,0x01,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x33,0x01,0x2f,0xed,0xc6,0x33,0x31,0x30,0x21,0x23,0x11,0x0e,0x03,0x07,0x35,0x3e,0x03,0x37,0x33,0x02,0xd4,0xa4,0x13,0x49,0x5b,0x65,0x30,0x36,0x79,0x75,0x68,0x26,0x3e,0x04,0xd7,0x13,0x31,0x30,0x2a,0x0c,0xa6,0x0f,0x33,0x3f,0x45,0x21,0x00,0x00,0x01,0x00,0x6d,0x00,0x00,0x03,0xe2, +0x05,0xb2,0x00,0x2a,0x00,0x3c,0x40,0x1e,0x1e,0x13,0x89,0x0a,0x21,0x00,0x00,0x2c,0x1d,0x89,0x40,0x21,0x00,0x1d,0x0e,0x20,0x1d,0x99,0x59,0x20,0x18,0x0a,0x0a,0x05,0x0e,0x05,0x9a,0x59,0x0e,0x07,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x01,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x32, +0x31,0x30,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15,0x21,0x15,0x21,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x03,0x04,0x29,0x47,0x60,0x38,0x30,0x5c,0x57,0x51,0x23,0x45,0xab,0x7b,0x58,0x96,0x6e,0x3f,0x27,0x4f,0x78,0x51,0x65,0x83,0x4d,0x1f,0x02,0xca, +0xfc,0x8b,0x28,0x5c,0x95,0x6c,0x4e,0x69,0x40,0x1b,0x04,0x22,0x42,0x62,0x41,0x20,0x1a,0x2e,0x40,0x27,0xb0,0x43,0x47,0x33,0x62,0x90,0x5d,0x55,0x8a,0x7a,0x70,0x3a,0x48,0x66,0x59,0x59,0x3a,0x93,0x47,0x5c,0x8c,0x7e,0x7e,0x4f,0x38,0x66,0x66,0x69,0x00,0x01,0x00,0x7b,0xff,0xe7,0x03,0xb9,0x05,0xb2,0x00,0x29,0x00,0x72,0x40,0x41, +0x16,0x89,0x1a,0x13,0x24,0x03,0x08,0x22,0x22,0x08,0x00,0x89,0x40,0x0f,0x0f,0x2b,0x08,0x19,0x1a,0x01,0x0f,0x1a,0x01,0x0b,0x03,0x1a,0x1a,0x18,0x1d,0x18,0x9a,0x59,0x24,0x12,0x13,0x13,0x12,0x9a,0x59,0x13,0x13,0x0a,0x1d,0x07,0x36,0x08,0x01,0x00,0x08,0x10,0x08,0x20,0x08,0x03,0x09,0x03,0x08,0x08,0x0a,0x05,0x0a,0x9a,0x59,0x05, +0x19,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x5d,0x3f,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x5d,0x01,0x2f,0x12,0x39,0x2f,0x1a,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x10,0x21, +0x23,0x35,0x33,0x20,0x11,0x34,0x21,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x10,0x05,0x15,0x1e,0x03,0x03,0xb9,0x49,0x85,0xba,0x70,0xcd,0x79,0x91,0xbb,0x4b,0x79,0x57,0x2f,0xfe,0x70,0x77,0x71,0x01,0x62,0xfe,0xf2,0x98,0x85,0x89,0xbd,0x5a,0x92,0x68,0x39,0xfe,0xe2,0x49,0x7c,0x5a,0x33,0x01,0x96,0x61,0x9f,0x71,0x3e,0x4e, +0xb0,0x72,0x26,0x48,0x66,0x40,0x01,0x19,0x8b,0x01,0x08,0xf4,0x66,0x9f,0x52,0x32,0x5a,0x7e,0x4c,0xfe,0xe5,0x51,0x04,0x08,0x37,0x58,0x77,0x00,0x00,0x02,0x00,0x0e,0x00,0x00,0x04,0x0a,0x05,0x9a,0x00,0x0e,0x00,0x15,0x00,0x3e,0x40,0x1e,0x03,0x01,0x05,0x8a,0x06,0x40,0x10,0x0e,0x06,0x06,0x0f,0x17,0x08,0x04,0x08,0x0f,0x08,0x9a, +0x59,0x09,0x01,0x11,0x0e,0x0f,0x0f,0x06,0x0e,0x06,0x06,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0x33,0x33,0x2b,0x11,0x00,0x33,0x01,0x18,0x2f,0x12,0x39,0x39,0x11,0x33,0x33,0x1a,0x10,0xfd,0x32,0xc6,0x31,0x30,0x01,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x35,0x3e,0x03,0x37,0x01,0x21,0x11,0x0e,0x03,0x03,0x52,0xb8,0xb8, +0xa2,0xfd,0x5e,0x5e,0xc0,0xaf,0x95,0x33,0xfe,0x24,0x01,0xe9,0x4b,0x86,0x79,0x6e,0x05,0x9a,0xfc,0x4d,0x96,0xfe,0xaf,0x01,0x51,0x8e,0x6a,0xf1,0xf8,0xf7,0x71,0xfc,0x4d,0x02,0xbe,0x83,0xce,0xa8,0x88,0x00,0x00,0x01,0x00,0xa4,0xff,0xe7,0x03,0xc9,0x05,0x9a,0x00,0x23,0x00,0x52,0x40,0x2c,0x1c,0x8a,0x1a,0x17,0x17,0x08,0x00,0x89, +0x40,0x0f,0x0f,0x25,0x08,0x1f,0x12,0x9a,0x59,0x1f,0x1f,0x0a,0x18,0x18,0x1b,0x99,0x59,0x18,0x06,0x12,0x08,0x01,0x00,0x08,0x01,0x0b,0x03,0x08,0x08,0x0a,0x05,0x0a,0x9a,0x59,0x05,0x19,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x5d,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x01,0x18,0x2f,0x12,0x39,0x2f,0x1a, +0xed,0x11,0x39,0x2f,0x39,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x13,0x21,0x15,0x21,0x03,0x36,0x36,0x33,0x32,0x1e,0x02,0x03,0xc9,0x48,0x85,0xbc,0x73,0xc8,0x61,0x92,0x99,0x4e,0x7d,0x58,0x2f,0xbc,0xb3,0x1d,0x40,0x40,0x3d,0x19,0x31,0x02,0x97, +0xfd,0xf7,0x1d,0x20,0x48,0x1c,0x72,0xb4,0x7d,0x41,0x01,0xb6,0x69,0xaa,0x7a,0x42,0x3c,0xae,0x5e,0x2e,0x52,0x74,0x45,0x8c,0x9f,0x02,0x03,0x04,0x03,0x02,0xcf,0x94,0xfe,0x5b,0x02,0x03,0x3c,0x6f,0xa1,0x00,0x00,0x02,0x00,0x6f,0xff,0xe7,0x03,0xfe,0x05,0xb2,0x00,0x20,0x00,0x34,0x00,0x46,0x40,0x24,0x12,0x0a,0x00,0x89,0x21,0x21, +0x36,0x2b,0x19,0x89,0x40,0x0a,0x1c,0x26,0x9a,0x59,0x1a,0x1c,0x1c,0x30,0x0f,0x12,0x12,0x14,0x0f,0x14,0x9a,0x59,0x0f,0x07,0x05,0x30,0x9a,0x59,0x05,0x19,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x11,0x12,0x39,0x2f,0x39,0x2b,0x01,0x18,0x2f,0x1a,0xed,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x14, +0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xfe,0x44,0x78,0xa6,0x61,0x6c,0xab,0x77,0x3e,0x53,0x99,0xd8,0x85,0x94,0x5a,0x6f,0x7b,0x60,0x9a,0x6e, +0x3b,0x04,0x63,0xe4,0x5e,0x97,0x6b,0x3a,0xa8,0x26,0x47,0x68,0x42,0x3d,0x68,0x4c,0x2b,0x2a,0x4c,0x69,0x40,0x3e,0x66,0x48,0x28,0x01,0xc7,0x69,0xb0,0x80,0x47,0x5a,0xa9,0xf4,0x99,0xbb,0x01,0x31,0xd9,0x76,0x29,0x9b,0x39,0x56,0x9d,0xde,0x88,0xb3,0x40,0x75,0xa2,0x78,0x4b,0x78,0x54,0x2d,0x2e,0x4f,0x69,0x3b,0x4a,0x81,0x60,0x37, +0x2f,0x54,0x75,0x00,0x00,0x01,0x00,0x62,0x00,0x00,0x03,0xf2,0x05,0x9a,0x00,0x12,0x00,0x2d,0xb9,0x00,0x07,0x01,0x86,0x40,0x12,0x40,0x0f,0x08,0x08,0x00,0x10,0x00,0x00,0x10,0x11,0x11,0x10,0x99,0x59,0x11,0x06,0x08,0x18,0x00,0x3f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x01,0x18,0x2f,0x2f,0x12,0x39,0x2f,0x39,0x1a,0xed,0x31,0x30,0x01, +0x0e,0x03,0x02,0x02,0x07,0x23,0x36,0x12,0x12,0x3e,0x02,0x37,0x21,0x35,0x21,0x03,0xf2,0x21,0x5d,0x68,0x6c,0x5e,0x47,0x10,0xb0,0x12,0x4b,0x5f,0x6a,0x64,0x53,0x19,0xfd,0x31,0x03,0x90,0x05,0x3b,0x39,0xaa,0xd4,0xf4,0xfe,0xfc,0xfe,0xf5,0x81,0x80,0x01,0x0b,0x01,0x01,0xee,0xc8,0x99,0x2b,0x94,0x00,0x00,0x03,0x00,0x5a,0xff,0xe9, +0x03,0xfc,0x05,0xb2,0x00,0x23,0x00,0x37,0x00,0x4b,0x00,0x5b,0x40,0x2f,0x38,0x89,0x08,0x42,0x8a,0x12,0x05,0x15,0x12,0x08,0x12,0x08,0x12,0x00,0x1a,0x89,0x2e,0x2e,0x4d,0x24,0x89,0x40,0x00,0x15,0x05,0x33,0x3d,0x3d,0x33,0x9a,0x59,0x3d,0x3d,0x29,0x0d,0x1f,0x29,0x99,0x59,0x1f,0x19,0x0d,0x47,0x9a,0x59,0x0d,0x07,0x00,0x3f,0x2b, +0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x01,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02, +0x23,0x22,0x2e,0x02,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x5a,0x24,0x43,0x63,0x3f,0x5d,0x6e,0x3d,0x6c,0x94,0x56,0x57,0x94,0x6c,0x3c,0x6e,0x5b,0x3e,0x62,0x43,0x24,0x44,0x7b,0xab,0x67,0x66,0xaa,0x7c, +0x45,0xb2,0x29,0x4b,0x6b,0x41,0x3f,0x6a,0x4d,0x2b,0x29,0x4c,0x6a,0x42,0x3e,0x69,0x4d,0x2c,0x33,0x25,0x41,0x56,0x31,0x31,0x57,0x40,0x26,0x25,0x40,0x57,0x32,0x35,0x57,0x3f,0x22,0x01,0x90,0x39,0x73,0x64,0x52,0x18,0x34,0xa3,0x63,0x4f,0x86,0x62,0x37,0x38,0x62,0x86,0x4e,0x63,0xa3,0x34,0x18,0x52,0x64,0x73,0x39,0x5e,0x9c,0x6f, +0x3e,0x3e,0x6f,0x9c,0x6c,0x43,0x6c,0x4c,0x29,0x2a,0x4c,0x6c,0x42,0x3c,0x69,0x50,0x2e,0x2b,0x4d,0x6b,0x02,0x59,0x33,0x57,0x41,0x25,0x26,0x41,0x57,0x32,0x34,0x58,0x40,0x25,0x26,0x41,0x58,0x00,0x00,0x02,0x00,0x5e,0xff,0xe7,0x03,0xec,0x05,0xb2,0x00,0x20,0x00,0x34,0x00,0x46,0x40,0x24,0x21,0x00,0x89,0x08,0x17,0x10,0x10,0x36, +0x2b,0x89,0x40,0x17,0x12,0x30,0x99,0x59,0x0f,0x12,0x12,0x26,0x05,0x1c,0x26,0x9a,0x59,0x1c,0x07,0x08,0x08,0x0a,0x05,0x0a,0x9a,0x59,0x05,0x19,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x39,0x2b,0x01,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x31,0x30,0x01,0x14,0x02,0x06, +0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xec,0x4e,0x96,0xd8,0x8a,0x8e,0x6c,0x77,0x87,0x61,0x99,0x6a,0x38,0x04,0x5c,0xe4,0x5c,0x9a,0x70,0x3e,0x45,0x7b, +0xa9,0x64,0x6c,0xa7,0x72,0x3c,0xb1,0x2b,0x4c,0x69,0x3e,0x3b,0x66,0x4b,0x2b,0x29,0x4c,0x6b,0x41,0x39,0x65,0x4b,0x2b,0x03,0x23,0xc5,0xfe,0xcd,0xd5,0x6f,0x32,0x9d,0x43,0x50,0x99,0xe0,0x91,0xb9,0x41,0x77,0xa4,0x63,0x6a,0xb0,0x7f,0x46,0x57,0xa7,0xf4,0x0a,0x53,0x88,0x61,0x35,0x2f,0x55,0x75,0x45,0x4c,0x78,0x53,0x2c,0x2b,0x49, +0x63,0x00,0x00,0x02,0x00,0x70,0xff,0xea,0x01,0x50,0x04,0x16,0x00,0x0b,0x00,0x17,0x00,0x3c,0x40,0x16,0x06,0x00,0xb0,0x5b,0x06,0x10,0x0c,0x12,0xb0,0x5b,0x0c,0x13,0x09,0x03,0x15,0xaf,0x1f,0x0f,0x2f,0x0f,0x02,0x0f,0xb8,0xff,0xec,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xec,0xb6,0x0b,0x06,0x4d,0x0f,0x2f,0x19,0x01,0x5d,0x2f,0x2b, +0x2b,0x71,0xe1,0x39,0x39,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x03,0x38,0x42,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x42, +0xfc,0xb2,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x00,0x02,0x00,0x27,0xfe,0xf8,0x01,0x52,0x04,0x16,0x00,0x0b,0x00,0x0f,0x00,0x63,0x40,0x16,0x0f,0x0f,0x01,0x0f,0x0c,0x01,0x0c,0x05,0x06,0x00,0xb0,0x5b,0x06,0x10,0x0e,0x40,0x0f,0xb2,0x10,0x09,0xaf,0x03,0xb8,0xff,0xec,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xec,0x40,0x11,0x0b, +0x06,0x4d,0x03,0x0c,0x20,0x0c,0x06,0x4d,0x0c,0x28,0x0b,0x06,0x4d,0x0c,0x80,0x0e,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x0e,0xb8,0xff,0xea,0xb6,0x0b,0x06,0x4d,0x0e,0x2f,0x11,0x01,0x5d,0x2f,0x2b,0x2b,0x1a,0xcd,0x2b,0x2b,0x2f,0x2b,0x2b,0xe1,0x00,0x10,0xf6,0x1a,0xcd,0x3f,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5d,0x13,0x22,0x26, +0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x03,0x23,0x13,0xe2,0x2f,0x41,0x41,0x2f,0x2e,0x42,0x42,0x2c,0xa0,0x75,0x75,0x03,0x38,0x42,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x42,0xfd,0xac,0xfe,0x14,0x01,0xec,0x00,0x00,0x01,0x01,0x10,0x00,0x7f,0x04,0x6c,0x04,0x4c,0x00,0x07,0x00,0x43,0x40,0x0c,0x78,0x01,0x01,0x07,0x10,0x0b, +0x00,0x4d,0x02,0x01,0x00,0x00,0xb8,0xff,0xc0,0x40,0x0b,0x0c,0x00,0x4d,0x70,0x03,0x01,0x03,0x03,0x00,0x04,0x00,0xb8,0xff,0xe0,0xb5,0x0c,0x06,0x4d,0x00,0x05,0x01,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x01,0x2f,0x2b,0x33,0x2f,0x2b,0xc4,0x00,0x2f,0x33,0x2f,0x5d,0x2b,0x12,0x39,0x39,0x31,0x30,0x2b,0x5d,0x25,0x01,0x35,0x01,0x15, +0x01,0x15,0x01,0x04,0x6c,0xfc,0xa4,0x03,0x5c,0xfd,0x7e,0x02,0x82,0x7f,0x01,0xb0,0x3b,0x01,0xe2,0x96,0xfe,0x9c,0x04,0xfe,0xc6,0x00,0x00,0x02,0x00,0xe8,0x01,0x3e,0x04,0x94,0x03,0x6c,0x00,0x03,0x00,0x07,0x00,0x33,0x40,0x0f,0x06,0x05,0xbe,0x59,0x06,0x02,0x02,0x01,0xbe,0x59,0x02,0x01,0x00,0x05,0x04,0xb8,0xff,0xe0,0xb4,0x0c, +0x06,0x4d,0x04,0x05,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x05,0x2f,0x2b,0x2f,0x2b,0x12,0x39,0x39,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x04,0x94,0xfc,0x54,0x03,0xac,0xfc,0x54,0x03,0xac,0x02,0xe8,0x84,0xfd,0xd2,0x84,0x00,0x00,0x01,0x01,0x10,0x00,0x7f,0x04,0x6c,0x04,0x4c, +0x00,0x07,0x00,0x43,0x40,0x0c,0x78,0x00,0x01,0x02,0x10,0x0b,0x00,0x4d,0x07,0x00,0x01,0x01,0xb8,0xff,0xc0,0x40,0x0b,0x0c,0x00,0x4d,0x70,0x06,0x01,0x06,0x06,0x01,0x04,0x00,0xb8,0xff,0xe0,0xb5,0x0c,0x06,0x4d,0x00,0x05,0x02,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x02,0x2f,0x2b,0xc4,0x2f,0x2b,0x33,0x00,0x2f,0x33,0x2f,0x5d,0x2b, +0x12,0x39,0x39,0x31,0x30,0x2b,0x5d,0x01,0x01,0x35,0x01,0x35,0x01,0x35,0x01,0x04,0x6c,0xfc,0xa4,0x02,0x84,0xfd,0x7c,0x03,0x5c,0x02,0x2f,0xfe,0x50,0x95,0x01,0x38,0x06,0x01,0x64,0x96,0xfe,0x1e,0x00,0x02,0x00,0x83,0xff,0xee,0x03,0x31,0x05,0xb2,0x00,0x23,0x00,0x33,0x00,0x46,0x40,0x26,0x00,0x12,0x01,0x10,0x05,0x11,0x0f,0x14, +0x0f,0x95,0x59,0x14,0x04,0x00,0x2c,0x24,0x2c,0xb0,0x5b,0x24,0x13,0x20,0xef,0x03,0x30,0xaf,0x7f,0x28,0x01,0x28,0x28,0x11,0x19,0x84,0x0a,0x0a,0x35,0x11,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x5d,0xe1,0xd4,0xe1,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x31,0x30,0x5f,0x5e,0x5d,0x01,0x26,0x26,0x35, +0x34,0x3e,0x04,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x15,0x14,0x16,0x17,0x03,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07,0x06,0x01,0x4f,0x09,0x0e,0x33,0x4c,0x5a,0x4c,0x33,0x25,0x40,0x54,0x2f,0xa9,0x7c,0x99,0xa4,0x4c,0x86,0x65,0x3a,0x34,0x4f,0x5c, +0x4f,0x34,0x16,0x0b,0x47,0x2c,0x22,0x21,0x21,0x21,0x2d,0x2d,0x21,0x21,0x21,0x22,0x01,0x8e,0x1a,0x53,0x29,0x40,0x67,0x5a,0x53,0x55,0x5d,0x38,0x30,0x4a,0x32,0x19,0x85,0xb0,0x60,0x28,0x4f,0x76,0x4e,0x4a,0x74,0x61,0x54,0x53,0x5a,0x36,0x2e,0x4b,0x1a,0xfe,0x60,0x20,0x20,0x2e,0x2f,0x1f,0x21,0x21,0x1f,0x2f,0x2e,0x20,0x20,0x00, +0x00,0x02,0x00,0xac,0xff,0x44,0x06,0xfc,0x05,0xae,0x00,0x32,0x00,0x3d,0x00,0xb9,0x40,0x10,0x0a,0x27,0x01,0x0a,0x32,0x01,0x03,0x00,0x1b,0x01,0x0f,0x19,0x01,0x10,0x05,0x1e,0xb8,0xff,0xc0,0x40,0x0f,0x0b,0x0c,0x00,0x4c,0x1c,0x40,0x0b,0x00,0x4d,0x18,0x40,0x0c,0x00,0x4d,0x16,0xb8,0xff,0xc0,0x40,0x4b,0x0c,0x00,0x4d,0x04,0x18, +0x0b,0x00,0x4d,0x0d,0x00,0x03,0x09,0x09,0x33,0x4c,0x59,0x09,0x0f,0x31,0x14,0x03,0x39,0x03,0x39,0x4c,0x59,0x0f,0x03,0x0f,0x03,0x25,0x2b,0x2b,0x1a,0x4c,0x59,0x2b,0x04,0x00,0x22,0x10,0x22,0x02,0x0d,0x03,0x22,0x20,0x25,0x20,0x4c,0x59,0x25,0x00,0x0d,0x0f,0x10,0x12,0x05,0x3c,0x3c,0x2e,0x36,0x48,0x06,0x22,0x06,0x22,0x06,0x28, +0x17,0x48,0x2e,0x1d,0x48,0x28,0x2f,0xe1,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x12,0x39,0x2f,0x17,0x33,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x2f,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x10,0xc4,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x2b, +0x01,0x5f,0x5e,0x5d,0x5d,0x5f,0x5d,0x00,0x5d,0x01,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x33,0x32,0x16,0x17,0x33,0x36,0x37,0x33,0x02,0x15,0x14,0x33,0x32,0x36,0x35,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x37,0x15,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x14,0x02,0x23,0x22,0x03,0x22,0x06,0x15, +0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x04,0x8c,0x05,0x49,0xd6,0x89,0xa7,0xe7,0xbc,0x48,0x71,0x10,0x04,0x02,0x08,0x7d,0x2f,0x77,0x6c,0x8f,0xfe,0xa4,0xfe,0xcc,0xfe,0xd7,0xfe,0x7c,0x01,0x71,0x01,0x39,0xf7,0xaf,0xad,0xfe,0xfd,0xfe,0x94,0xfe,0x43,0x01,0xd3,0x01,0x6b,0x01,0x54,0x01,0xbe,0xeb,0xa9,0xdb,0xb4,0x7c,0x99,0x67,0x56, +0x7c,0x91,0x01,0xa4,0xee,0xca,0xab,0xe2,0x01,0x2b,0x4a,0x38,0x1c,0x57,0xfd,0xd9,0x0a,0xcf,0xea,0xba,0x01,0x13,0x01,0x5c,0xfe,0x60,0xfe,0xc8,0xfe,0xcd,0xfe,0x87,0x52,0x7c,0x4a,0x01,0xb7,0x01,0x63,0x01,0x6e,0x01,0xe2,0xfe,0x6c,0xfe,0xbb,0xee,0xfe,0xcf,0x03,0x0e,0xec,0xaf,0x76,0x88,0xf7,0xcc,0xd6,0x00,0x00,0x02,0x00,0x16, +0x00,0x00,0x05,0x12,0x05,0x9a,0x00,0x07,0x00,0x0f,0x00,0xd0,0x40,0x2c,0x07,0x07,0x01,0x08,0x06,0x01,0x09,0x10,0x0c,0x00,0x4d,0x02,0x08,0x09,0x0a,0x0b,0x01,0x0b,0x0d,0x0e,0x0f,0x03,0x04,0x0c,0x03,0x04,0x01,0x0c,0x01,0x01,0x10,0x03,0x01,0x10,0x0c,0x00,0x4d,0x04,0x18,0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe8,0xb4,0x0b,0x0d, +0x01,0x4c,0x0c,0xb8,0xff,0xc0,0xb4,0x0b,0x0d,0x01,0x4c,0x0b,0xb8,0xff,0xc0,0x40,0x39,0x0b,0x0d,0x01,0x4c,0x0e,0x0d,0x09,0x0a,0x04,0x05,0x0b,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x40,0x12,0x16,0x48,0x0c,0x06,0x40,0x08,0x0f,0x02,0x03,0x0f,0x03,0x91,0x59,0x0f,0x0f,0x06,0x03,0x01,0x05,0x08,0x0f,0x0c,0x0b,0x03,0x02,0x0e,0x09,0x0d, +0x0a,0x0a,0x05,0x77,0x05,0x01,0x78,0x00,0x01,0x05,0xb8,0xff,0xe8,0x40,0x0e,0x0b,0x0c,0x00,0x4c,0x00,0x18,0x0b,0x0c,0x00,0x4c,0x00,0x00,0x11,0x05,0x2f,0x11,0x33,0x2f,0x2b,0x2b,0x5d,0x5d,0x12,0x17,0x39,0x00,0x2f,0x2f,0x3f,0x39,0x2f,0x2b,0x00,0x10,0x18,0xc4,0x10,0xc4,0x1a,0x10,0xdd,0x2b,0x2b,0xc4,0x12,0x17,0x39,0x31,0x30, +0x2b,0x2b,0x01,0x2b,0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x87,0xc0,0xc0,0x0e,0xc0,0xc0,0x10,0x87,0x0e,0xc0,0xc0,0x05,0xc0,0xc0,0x01,0x2b,0x5d,0x5d,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x33,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x05,0x12,0xba,0x98,0xfd,0xa0,0x8f,0xbb,0x02,0x26,0xae,0x9f,0xe1,0x0b,0x0b,0x04,0x0a,0x0d,0xdf,0x01, +0x92,0xfe,0x6e,0x05,0x9a,0xfc,0x8f,0x02,0x63,0x1e,0x42,0x3d,0x23,0xfd,0x9d,0x00,0x00,0x03,0x00,0xbc,0x00,0x00,0x04,0x2f,0x05,0x9a,0x00,0x0f,0x00,0x17,0x00,0x1f,0x00,0xdc,0x40,0x0c,0x09,0x0d,0x01,0x06,0x0b,0x01,0x03,0x04,0x01,0x10,0x03,0x04,0xb8,0xff,0xe8,0x40,0x2e,0x0b,0x00,0x4d,0x08,0x18,0x11,0x11,0x18,0x91,0x59,0x11, +0x11,0x19,0x01,0x00,0x19,0x91,0x59,0x00,0x12,0x01,0x10,0x91,0x59,0x01,0x03,0x09,0x19,0x0c,0x06,0x0d,0x06,0x4d,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x7d,0x1d,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x1d,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x1d,0xb8,0xff,0xf0,0x40,0x2f,0x0b,0x06,0x4d,0x1d,0x1d,0x05,0x06,0x0c, +0x06,0x4d,0x05,0x7d,0x7f,0x15,0x01,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x15,0x21,0x11,0x19,0x08,0x0d,0x06,0x4d,0x19,0x08,0x0c,0x06,0x4d,0x19,0x08,0x0b,0x06,0x4d,0x19,0x7e,0x00,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xf6,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xf8,0x40,0x09,0x0b,0x06,0x4d,0x00, +0x21,0x40,0x0b,0x00,0x4d,0x2b,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe9,0x2b,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x11,0x39,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x01,0x2b,0x00,0x5f,0x5e,0x5d,0x5d,0x5d,0x33,0x11, +0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x04,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0xbc,0x01,0x98,0xba,0xda,0x84,0x74,0x91,0xae,0xfe,0xf8,0xc9,0xfa,0xac,0x8a,0x9e,0xfe,0xed,0xc1,0xe4,0x94,0xa3,0xfe,0xa6,0x05,0x9a,0xb6,0x92,0x7a,0xb4,0x26,0x04,0x11,0xb9, +0x94,0xb8,0xe4,0x05,0x02,0xfe,0x31,0x85,0x79,0xd1,0xfd,0x9a,0xfd,0xfc,0x8c,0x7a,0xfe,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x00,0x15,0x00,0x99,0x40,0x0f,0x45,0x0a,0x01,0x49,0x00,0x01,0x4a,0x03,0x01,0x0f,0x17,0x01,0x0c,0x03,0x09,0xb8,0xff,0xc0,0x40,0x0c,0x0c,0x00,0x4d,0x03,0x18,0x0b,0x00,0x4d,0x0a,0x0b, +0x00,0x15,0xb8,0xff,0xc0,0x40,0x43,0x0b,0x00,0x4d,0x15,0x15,0x13,0x02,0x13,0x91,0x59,0x02,0x13,0x00,0x0b,0x01,0x0c,0x03,0x0b,0x0b,0x0d,0x08,0x0d,0x91,0x59,0x08,0x04,0x00,0x0b,0x30,0x0b,0x0d,0x01,0x4c,0x3f,0x0b,0x01,0x0b,0x0b,0x17,0x10,0x06,0x0d,0x06,0x4d,0x10,0x06,0x0c,0x06,0x4d,0x10,0x7d,0x05,0x10,0x0d,0x06,0x4d,0x05, +0x08,0x0c,0x06,0x4d,0x05,0x13,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x33,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x33,0x11,0x33,0x31,0x30,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x00,0x5d,0x5d,0x25,0x06,0x23,0x20,0x00,0x11,0x10, +0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x04,0x8c,0x9f,0xed,0xfe,0xce,0xfe,0x90,0x01,0x9e,0x01,0x3e,0xcc,0x86,0x9a,0xba,0xf7,0xfe,0xcd,0x01,0x1f,0xe9,0xd8,0x9e,0x3c,0x54,0x01,0x8a,0x01,0x40,0x01,0x58,0x01,0xa8,0x3b,0xb3,0x56,0xfe,0xb6,0xfe,0xec,0xfe,0xfa,0xfe,0xc9,0x60,0x00,0x00,0x02, +0x00,0xbc,0x00,0x00,0x05,0x3e,0x05,0x9a,0x00,0x07,0x00,0x0f,0x00,0x97,0x40,0x26,0x00,0x03,0x01,0x00,0x03,0x01,0x10,0x05,0x00,0x09,0x91,0x59,0x00,0x12,0x01,0x08,0x91,0x59,0x01,0x03,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x7d,0x0d,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x0d,0xb8,0xff, +0xf0,0xb3,0x0d,0x06,0x4d,0x0d,0xb8,0xff,0xf6,0xb3,0x0c,0x06,0x4d,0x0d,0xb8,0xff,0xea,0x40,0x18,0x0b,0x06,0x4d,0x0d,0x0d,0x11,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x7e,0x00,0xb8,0xff,0xf6,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xfe,0xb3,0x0b, +0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x33,0x11,0x21,0x20,0x11,0x10,0x00,0x21,0x03,0x11,0x33,0x20,0x00,0x11,0x10,0x21,0xbc,0x01,0x8c,0x02,0xf6,0xfe,0x5b,0xfe,0x9f,0xd4,0xd6, +0x01,0x1a,0x01,0x3a,0xfd,0xb6,0x05,0x9a,0xfd,0x45,0xfe,0xb4,0xfe,0x6d,0x05,0x02,0xfb,0x96,0x01,0x2e,0x01,0x15,0x02,0x27,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xb4,0x05,0x9a,0x00,0x0b,0x00,0x70,0x40,0x34,0x06,0x09,0x91,0x59,0x06,0x02,0x01,0x06,0x91,0x2b,0x30,0x06,0x0a,0x02,0x01,0x0a,0x91,0x59,0x01,0x12,0x02,0x05,0x91,0x59, +0x02,0x03,0x04,0x08,0x04,0x08,0x00,0x00,0x0d,0x06,0x0a,0x06,0x0d,0x06,0x4d,0x0a,0x06,0x0c,0x06,0x4d,0x0a,0x06,0x0b,0x06,0x4d,0x0a,0x7e,0x01,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xfa,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xfa,0xb3,0x0b,0x06,0x4d,0x01,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f, +0x33,0x33,0x2f,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x21,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x03,0xb4,0xfd,0x08,0x02,0xd8,0xfd,0xd0,0x02,0x06,0xfd,0xfa,0x02,0x50,0x05,0x9a,0x98,0xfe,0x23,0x97,0xfe,0x0a,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0x94, +0x05,0x9a,0x00,0x09,0x00,0x67,0x40,0x2c,0x02,0x05,0x91,0x59,0x0f,0x02,0x01,0x0b,0x03,0x02,0x02,0x08,0x07,0x12,0x08,0x01,0x91,0x59,0x08,0x03,0x04,0x04,0x00,0x00,0x0b,0x02,0x06,0x06,0x0d,0x06,0x4d,0x06,0x06,0x0c,0x06,0x4d,0x06,0x06,0x0b,0x06,0x4d,0x06,0x7e,0x07,0xb8,0xff,0xfb,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf6,0xb3, +0x0c,0x06,0x4d,0x07,0xb8,0xff,0xf6,0xb6,0x0b,0x06,0x4d,0x07,0x2f,0x0b,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x33,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x03,0x94,0xfd,0xd0,0x02,0x06,0xfd,0xfa,0xa8, +0x02,0xd8,0x05,0x02,0xfe,0x10,0x97,0xfd,0x85,0x05,0x9a,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0xec,0x05,0xb2,0x00,0x19,0x00,0xae,0x40,0x09,0x00,0x0a,0x01,0x0f,0x04,0x01,0x10,0x05,0x09,0xb8,0xff,0xc0,0x40,0x3b,0x0c,0x00,0x4d,0x18,0x17,0x91,0x59,0x18,0x18,0x08,0x00,0x15,0x13,0x02,0x13,0x91,0x59,0x02,0x13,0x0f,0x0b,0x1f, +0x0b,0x02,0x0a,0x03,0x0b,0x0b,0x0d,0x08,0x0d,0x91,0x59,0x08,0x04,0x17,0x17,0x15,0x10,0x0b,0x0b,0x00,0x04,0x0d,0x06,0x4d,0x00,0x04,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x7e,0x15,0xb8,0xff,0xee,0xb3,0x0c,0x06,0x4d,0x15,0xb8,0xff,0xee,0x40,0x22,0x0b,0x06,0x4d,0x15,0x15,0x1b,0x10,0x06,0x0d,0x06,0x4d,0x10,0x06,0x0c, +0x06,0x4d,0x10,0x7d,0x05,0x10,0x0c,0x06,0x4d,0x05,0x10,0x0d,0x06,0x4d,0x05,0x10,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x33,0x12,0x39,0x18,0x2f,0x2b, +0x31,0x30,0x00,0x2b,0x5f,0x5e,0x5d,0x5d,0x25,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x11,0x21,0x35,0x21,0x04,0xec,0xd8,0xfe,0xf8,0xfe,0xcd,0xfe,0x85,0x01,0xa5,0x01,0x43,0xea,0x9f,0xae,0xee,0xf1,0xfe,0xcc,0x01,0x1e,0xf5,0xa8,0x7b,0xfe,0xc6,0x01,0xe2,0x62, +0x7a,0x01,0x8c,0x01,0x46,0x01,0x4d,0x01,0xab,0x4c,0xba,0x6e,0xfe,0xb4,0xfe,0xf8,0xfe,0xf0,0xfe,0xc9,0x43,0x01,0x92,0x98,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xf2,0x05,0x9a,0x00,0x0b,0x00,0x79,0x40,0x48,0x08,0x03,0x91,0x59,0x08,0x06,0x05,0x08,0x91,0x2b,0x30,0x01,0x12,0x05,0x12,0x0a,0x03,0x06,0x03,0x09,0x00,0x06,0x0d,0x06, +0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x01,0x01,0x01,0x10,0x0d,0x06,0x4d,0x01,0x12,0x0c,0x06,0x4d,0x01,0x01,0x0d,0x08,0x04,0x06,0x0d,0x06,0x4d,0x04,0x06,0x0c,0x06,0x4d,0x04,0x06,0x0b,0x06,0x4d,0x04,0x7e,0x05,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x05, +0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x3f,0x3f,0x3f,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x04,0xf2,0xa8,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0xa8,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0x00, +0x00,0x01,0x00,0xbc,0x00,0x00,0x01,0x64,0x05,0x9a,0x00,0x03,0x00,0x10,0xb6,0x00,0x7e,0x01,0x01,0x12,0x02,0x03,0x00,0x3f,0x3f,0x01,0x2f,0xe1,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x64,0xa8,0xa8,0x05,0x9a,0x00,0x01,0x00,0x14,0xff,0xe8,0x02,0x2b,0x05,0x9a,0x00,0x0c,0x00,0x6d,0x40,0x17,0x00,0x09,0x01,0x00,0x01,0x01,0x0f,0x09, +0x01,0x10,0x05,0x06,0x06,0x08,0x03,0x08,0x91,0x59,0x03,0x13,0x0b,0x03,0x05,0xb8,0xff,0xf0,0x40,0x1c,0x0d,0x06,0x4d,0x05,0x05,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x0a,0x18,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xf6,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xfa,0xb6,0x0b,0x06,0x4d,0x0a, +0x0a,0x0e,0x0d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x2f,0x2b,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x5d,0x01,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x02,0x2b,0xd8,0xb5,0x54,0x36,0x36,0x56,0xe3,0xa8,0x02,0x02,0xff,0xfe,0xe5,0x18, +0xa6,0x27,0x01,0x81,0x03,0x9a,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x10,0x00,0x9c,0x40,0x1c,0x7d,0x0e,0x01,0x29,0x0e,0x39,0x0e,0x02,0x7e,0x01,0x01,0x2a,0x01,0x3a,0x01,0x02,0x10,0x18,0x0c,0x0d,0x01,0x4c,0x10,0x10,0x0b,0x01,0x4d,0x0e,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe8,0x40,0x18, +0x0b,0x0d,0x01,0x4c,0x0a,0x0e,0x10,0x01,0x05,0x05,0x08,0x07,0x12,0x08,0x03,0x0e,0x0f,0x0f,0x01,0x10,0x70,0x00,0x01,0x00,0xb8,0xff,0xe8,0x40,0x19,0x0d,0x06,0x4d,0x00,0x00,0x12,0x0a,0x05,0x06,0x0d,0x06,0x4d,0x05,0x06,0x0c,0x06,0x4d,0x05,0x06,0x0b,0x06,0x4d,0x05,0x7e,0x07,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff, +0xf8,0x40,0x09,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x11,0x33,0x2f,0x2b,0x5d,0x39,0x33,0x33,0x2f,0x33,0x00,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33, +0x01,0x04,0xa2,0xea,0xfd,0xd6,0x1f,0x07,0x04,0xa8,0xa8,0x04,0x0e,0x18,0x02,0x18,0xd1,0xfd,0x99,0x02,0x90,0x25,0x0d,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x16,0x1b,0x02,0x71,0xfd,0x50,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x00,0x05,0x00,0x86,0x40,0x09,0x01,0x04,0x91,0x59,0x01,0x12,0x02,0x03,0x05,0xb8,0xff,0xf0, +0xb3,0x10,0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb3,0x0b,0x06,0x4d,0x05,0xb8,0xff,0xe8,0xb3,0x0a,0x06,0x4d,0x05,0xb8,0xff,0xe0,0xb3,0x09,0x06,0x4d,0x05,0xb8,0xff,0xc0,0x40,0x18,0x0a,0x1f,0x48,0x05,0x05,0x07,0x04,0x06,0x0d,0x06,0x4d,0x04,0x06,0x0c, +0x06,0x4d,0x04,0x06,0x0b,0x06,0x4d,0x04,0x7e,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf2,0x40,0x09,0x0c,0x06,0x4d,0x01,0x05,0x0b,0x06,0x4d,0x01,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x2b,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x03,0xa4, +0xfd,0x18,0xa8,0x02,0x40,0x05,0x9a,0xfa,0xfe,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x06,0x72,0x05,0x9a,0x00,0x1b,0x00,0xba,0x40,0x15,0x7a,0x1a,0x01,0x75,0x13,0x01,0x26,0x13,0x36,0x13,0x02,0x72,0x16,0x01,0x16,0x18,0x0b,0x0d,0x01,0x4c,0x0d,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x05,0xb8,0xff,0xe8,0x40,0x37,0x0b,0x0d,0x01, +0x4c,0x16,0x1a,0x01,0x05,0x09,0x0d,0x06,0x12,0x11,0x12,0x12,0x03,0x04,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x1a,0x08,0x0d,0x06,0x4d,0x1a,0x7f,0x01,0x01,0x01,0x18,0x0d,0x06,0x4d,0x01,0x01,0x06,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xfa,0xb5,0x0b,0x06,0x4d,0x01,0x1d,0x13,0xb8,0xff, +0xf8,0x40,0x17,0x0d,0x06,0x4d,0x13,0x0d,0x10,0x06,0x0d,0x06,0x4d,0x10,0x06,0x0c,0x06,0x4d,0x10,0x06,0x0b,0x06,0x4d,0x10,0x7e,0x11,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x11,0xb8,0xff,0xf6,0xb3,0x0c,0x06,0x4d,0x11,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x32,0x2b,0x12,0x39,0x2b,0x2b,0x2f,0x2b,0x5d,0x33,0x2b,0xe9,0x2b,0x2b, +0x2b,0x39,0x00,0x3f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x2b,0x5d,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x06,0x72,0xa7,0x0e,0x04,0x18,0x13,0xfe,0x16,0x52,0xfe,0x17,0x15,0x16,0x04,0x08,0xa2,0xde, +0x01,0xb8,0x33,0x0f,0x06,0x2b,0x1a,0x01,0xc1,0xd2,0x03,0xc2,0x72,0xa5,0x61,0x2a,0xfb,0xb2,0x04,0x46,0x30,0x63,0x56,0xc3,0xfc,0x40,0x05,0x9a,0xfc,0x18,0x73,0x39,0x76,0x3a,0x03,0xe4,0x00,0x01,0x00,0xbc,0x00,0x00,0x05,0x40,0x05,0x9a,0x00,0x13,0x00,0xad,0x40,0x0d,0x77,0x0c,0x01,0x72,0x0b,0x01,0x78,0x02,0x01,0x7d,0x01,0x01, +0x0b,0xb8,0xff,0xf0,0x40,0x0a,0x0b,0x00,0x4d,0x0f,0x08,0x0b,0x0d,0x01,0x4c,0x05,0xb8,0xff,0xf8,0x40,0x2f,0x0b,0x0d,0x01,0x4c,0x0e,0x12,0x01,0x05,0x04,0x09,0x0a,0x03,0x09,0x01,0x0f,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x11,0x01,0x11,0x18,0x0d,0x06,0x4d,0x11,0x11,0x08, +0x0c,0x06,0x4d,0x11,0xb8,0xff,0xf8,0x40,0x19,0x0b,0x06,0x4d,0x11,0x15,0x0b,0x05,0x08,0x06,0x0d,0x06,0x4d,0x08,0x06,0x0c,0x06,0x4d,0x08,0x06,0x0b,0x06,0x4d,0x08,0x7e,0x09,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b, +0x39,0x32,0x12,0x39,0x2b,0x2b,0x2f,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x39,0x33,0x00,0x2f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x31,0x30,0x01,0x2b,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x26,0x35,0x11,0x33,0x05,0x40,0xce,0xfd,0x1e,0x1c,0x12,0x06,0x08,0xa8,0xda,0x02,0xce, +0x2d,0x0d,0x04,0x0a,0xa8,0x04,0x77,0x2b,0x2f,0x2e,0x97,0xfb,0xf4,0x05,0x9a,0xfb,0x9b,0x46,0x1a,0x3e,0x95,0x03,0xf2,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x17,0x00,0x81,0x40,0x1e,0x00,0x12,0x91,0x59,0x00,0x13,0x06,0x0c,0x91,0x59,0x06,0x04,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d, +0x09,0x06,0x0b,0x06,0x4d,0x09,0x7d,0x15,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x15,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x15,0xb8,0xff,0xea,0x40,0x2f,0x0b,0x06,0x4d,0x20,0x15,0x30,0x15,0x02,0x15,0x15,0x19,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x03,0x10,0x0d,0x06,0x4d,0x03,0x10, +0x0c,0x06,0x4d,0x03,0x10,0x0b,0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10, +0x00,0x02,0xfe,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0x8c,0xfe,0xd4,0xe2,0xfe,0xe6,0x01,0x13,0xdd,0xec,0x01,0x10,0xfe,0xf8,0x18,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0x05,0x32,0xfe,0xba,0xfe,0xf7,0xfe,0xf7,0xfe,0xbd,0x01,0x34,0x01,0x15,0x01,0x1c,0x01, +0x36,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x0a,0x00,0x12,0x00,0x90,0x40,0x29,0x46,0x06,0x01,0x02,0x0f,0x01,0x0c,0x04,0x0c,0x00,0x91,0x59,0x0c,0x0c,0x03,0x02,0x12,0x03,0x0b,0x91,0x59,0x03,0x03,0x07,0x08,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x7d,0x10,0xb8,0xff,0xe8, +0xb3,0x0d,0x06,0x4d,0x10,0xb8,0xff,0xe8,0x40,0x1e,0x0c,0x06,0x4d,0x10,0x10,0x0b,0x06,0x4d,0x10,0x10,0x14,0x0c,0x01,0x06,0x0d,0x06,0x4d,0x01,0x06,0x0c,0x06,0x4d,0x01,0x06,0x0b,0x06,0x4d,0x01,0x7e,0x02,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf4,0x40,0x09,0x0c,0x06,0x4d,0x02,0x04,0x0b,0x06,0x4d,0x02,0x2f,0x2b, +0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x01,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0xa8,0x01,0x8a,0xe6,0xfd,0xfe,0xe7,0xef,0xbd, +0xb0,0xae,0xb7,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x05,0x9a,0xe0,0xcc,0xcc,0xfe,0xfc,0x02,0xe4,0xfd,0xb4,0x9f,0x91,0x01,0x1c,0x00,0x02,0x00,0x5e,0xff,0x3f,0x06,0x25,0x05,0xb2,0x00,0x14,0x00,0x24,0x00,0x36,0x40,0x1a,0x13,0x10,0x04,0x11,0x0c,0x0c,0x21,0x19,0x04,0x13,0x10,0x00,0x08,0x08,0x15,0x91,0x59,0x08,0x04,0x00,0x1d,0x91, +0x59,0x12,0x00,0x13,0x00,0x3f,0xc6,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x01,0x18,0x2f,0x33,0x2f,0x33,0x10,0xc6,0x12,0x39,0x39,0x31,0x30,0x05,0x20,0x27,0x26,0x11,0x10,0x37,0x36,0x21,0x20,0x17,0x16,0x11,0x10,0x07,0x06,0x07,0x01,0x21,0x25,0x06,0x03,0x22,0x07,0x06,0x11,0x10,0x17,0x16,0x33,0x32,0x37,0x36,0x11, +0x10,0x27,0x26,0x02,0xfe,0xfe,0xd0,0xb9,0xb7,0xbb,0xbc,0x01,0x41,0x01,0x28,0xb6,0xb6,0xba,0x2c,0x32,0x01,0x93,0xfe,0xcf,0xfe,0xf2,0x6a,0x72,0xe2,0x8d,0x8d,0x89,0x8a,0xdd,0xec,0x88,0x88,0x84,0x84,0x18,0xc9,0xc9,0x01,0x42,0x01,0x5b,0xcd,0xce,0xc8,0xc8,0xfe,0xbd,0xfe,0xa1,0xcc,0x31,0x23,0xfe,0xdf,0xca,0x21,0x05,0x32,0xa3, +0xa3,0xfe,0xf7,0xfe,0xf8,0xa3,0xa1,0x9a,0x9a,0x01,0x15,0x01,0x1d,0x9a,0x9b,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0xc0,0x05,0x9a,0x00,0x1c,0x00,0x27,0x00,0xbb,0x40,0x3a,0x45,0x0f,0x01,0x03,0x40,0x0e,0x01,0x0f,0x02,0x01,0x0c,0x05,0x17,0x1e,0x08,0x08,0x1e,0x91,0x59,0x08,0x08,0x0a,0x1d,0x0b,0x1d,0x91,0x59,0x0b,0x03,0x01, +0x0a,0x17,0x09,0x11,0x08,0x0d,0x06,0x4d,0x11,0x08,0x0c,0x06,0x4d,0x11,0x08,0x0b,0x06,0x4d,0x24,0x7d,0x11,0x79,0x02,0x01,0x7a,0x01,0x01,0x02,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe8,0x40,0x26,0x0b,0x0d,0x01,0x4c,0x01,0x1c,0x02,0x11,0x04,0x70,0x00,0x01,0x00,0x08,0x0d,0x06,0x4d,0x00,0x29,0x1e,0x09,0x06, +0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x7e,0x0a,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xfa,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xfa,0xb3,0x0b,0x06,0x4d,0x0a,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x10,0xc6,0x2b,0x5d,0x17,0x32,0x2b,0x2b,0x5d,0x5d,0x2f,0xe1,0x2b,0x2b,0x2b, +0x12,0x39,0x00,0x2f,0x33,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x01,0x5d,0x5f,0x5d,0x21,0x23,0x03,0x2e,0x03,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x17,0x01,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x04,0xc0,0xc8,0xf0, +0x21,0x3e,0x41,0x4b,0x2f,0x8a,0xa8,0x01,0xac,0x5e,0x9f,0x75,0x42,0x2d,0x53,0x75,0x49,0x24,0x35,0x30,0x2f,0x1d,0xfd,0xb1,0xe4,0x3f,0x6b,0x4e,0x2c,0x95,0x8d,0x01,0x92,0x38,0x4f,0x32,0x17,0xfd,0x9e,0x05,0x9a,0x2f,0x60,0x8f,0x60,0x4b,0x7d,0x62,0x45,0x13,0x04,0x10,0x29,0x38,0x47,0x2f,0x03,0x53,0xfd,0xf8,0x26,0x47,0x67,0x40, +0x73,0x81,0x00,0x01,0x00,0x79,0xff,0xe8,0x03,0xde,0x05,0xb2,0x00,0x35,0x00,0xd2,0x40,0x15,0x4b,0x35,0x01,0x4a,0x2e,0x01,0x46,0x25,0x01,0x44,0x1a,0x01,0x46,0x15,0x01,0x34,0x18,0x0c,0x00,0x4d,0x2a,0xb8,0xff,0xe8,0xb3,0x0c,0x00,0x4d,0x28,0xb8,0xff,0xf0,0xb3,0x0c,0x00,0x4d,0x19,0xb8,0xff,0xe8,0x40,0x56,0x0c,0x00,0x4d,0x11, +0x18,0x0c,0x00,0x4d,0x09,0x2c,0x13,0x22,0x04,0x18,0x31,0x1a,0x00,0x01,0x00,0x1b,0x01,0x0c,0x03,0x1b,0x18,0x40,0x18,0x1d,0x91,0x59,0x18,0x04,0x00,0x01,0x01,0x0b,0x03,0x01,0x31,0x31,0x06,0x91,0x59,0x31,0x13,0x1b,0x1b,0x2c,0x22,0x08,0x0d,0x06,0x4d,0x22,0x08,0x0c,0x06,0x4d,0x22,0x08,0x0b,0x06,0x4d,0x22,0x7d,0x13,0x13,0x01, +0x2c,0x08,0x0d,0x06,0x4d,0x2c,0x08,0x0c,0x06,0x4d,0x2c,0x08,0x0b,0x06,0x4d,0x2c,0x7d,0x09,0xb8,0xff,0xf0,0x40,0x0f,0x0b,0x06,0x4d,0x20,0x09,0x01,0x09,0x09,0x37,0x01,0x08,0x0b,0x06,0x4d,0x01,0x2f,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18, +0x10,0xc4,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xcd,0x5f,0x5e,0x5d,0x11,0x33,0x32,0x11,0x12,0x17,0x39,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x37,0x35,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e, +0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x79,0x22,0x5f,0x69,0x6a,0x2d,0x9b,0x99,0x33,0x5a,0x7b,0x47,0x4b,0x82,0x60,0x37,0x56,0x8c,0xb3,0x5d,0xd4,0x61,0x7f,0xc7,0x37,0x6e,0x56,0x36,0x29,0x50,0x73,0x4b,0x4d,0x8a,0x68,0x3d,0x53,0x8d,0xb8,0x66,0x22,0x64,0x68,0x5d,0x3a,0xc6,0x1e,0x30,0x21,0x12,0x73,0x6c, +0x3a,0x56,0x47,0x41,0x24,0x26,0x4e,0x5e,0x77,0x50,0x62,0x91,0x5e,0x2e,0x33,0xbd,0x58,0x17,0x34,0x52,0x3b,0x37,0x50,0x42,0x3e,0x25,0x26,0x54,0x66,0x7c,0x50,0x6a,0x93,0x5c,0x29,0x0b,0x15,0x1f,0x00,0x01,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x00,0x07,0x00,0x7e,0x40,0x0b,0x03,0x12,0x01,0x05,0x06,0x05,0x91,0x59,0x06,0x03, +0x05,0xb8,0xff,0xfa,0xb3,0x0b,0x06,0x4d,0x00,0xb8,0xff,0xfa,0x40,0x28,0x0b,0x06,0x4d,0x00,0x05,0x00,0x0e,0x02,0x03,0x05,0x42,0xcf,0x05,0x01,0x05,0x05,0x08,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x7e,0x03,0x04,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf8,0x40,0x0d,0x0b,0x06,0x4d,0x03,0x03, +0x09,0x08,0x09,0x40,0x0c,0x00,0x4d,0x09,0xb8,0xff,0xc0,0xb2,0x0b,0x00,0x4d,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x01,0x10,0xe2,0x18,0x2f,0x2e,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x04,0x0c,0xfe,0x62,0xa8,0xfe, +0x63,0x03,0xe3,0x05,0x02,0xfa,0xfe,0x05,0x02,0x98,0x00,0x01,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x05,0x9a,0x00,0x0d,0x00,0x7a,0x40,0x31,0x02,0x0a,0x12,0x0a,0x02,0x02,0x08,0x12,0x08,0x02,0x0b,0x04,0x02,0x09,0x91,0x59,0x02,0x13,0x0c,0x03,0x05,0x03,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00, +0x7e,0x7f,0x0b,0x01,0x0b,0x0c,0x0d,0x06,0x4d,0x0b,0x0b,0xb8,0xff,0xfa,0x40,0x17,0x0c,0x06,0x4d,0x0b,0x0f,0x07,0x06,0x0d,0x06,0x4d,0x07,0x06,0x0c,0x06,0x4d,0x07,0x06,0x0b,0x06,0x4d,0x07,0x7e,0x04,0xb8,0xff,0xfe,0x40,0x09,0x0d,0x06,0x4d,0x04,0x04,0x0c,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2b,0x2f, +0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x3f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x01,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x04,0xd5,0xfd,0xdf,0xfd,0xf6,0xa8,0x01,0x74,0x01,0x67,0xa8,0x02,0x44,0xfd,0xa4,0x02,0x45,0x03,0x6d,0xfc,0x9e,0xfe,0x47,0x01,0xaa,0x03,0x71,0x00,0x01,0x00,0x12, +0x00,0x00,0x04,0xe6,0x05,0x9a,0x00,0x0b,0x00,0xc8,0x40,0x0a,0x7b,0x0b,0x01,0x74,0x04,0x01,0x78,0x02,0x01,0x0b,0xb8,0xff,0xd0,0xb3,0x0c,0x01,0x4d,0x0b,0xb8,0xff,0xe0,0xb3,0x0d,0x01,0x4d,0x0b,0xb8,0xff,0xe0,0x40,0x22,0x0b,0x01,0x4d,0x04,0x30,0x0c,0x01,0x4d,0x04,0x20,0x0d,0x01,0x4d,0x04,0x20,0x0b,0x01,0x4d,0x39,0x0b,0x01, +0x36,0x04,0x01,0x74,0x07,0x01,0x07,0x28,0x0b,0x0d,0x01,0x4c,0x07,0xb8,0xff,0xf0,0x40,0x19,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x0b,0x07,0x02,0x03,0x03,0x02,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xfc,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xfc,0x40,0x11,0x0b,0x06,0x4d,0x0b,0x28,0x00,0x01,0x00, +0x08,0x0c,0x0d,0x01,0x4c,0x00,0x00,0x0d,0x04,0xb8,0xff,0xf8,0x40,0x0f,0x0d,0x06,0x4d,0x04,0x04,0x0c,0x06,0x4d,0x04,0x04,0x0b,0x06,0x4d,0x04,0x03,0xb8,0xff,0xf8,0xb7,0x0c,0x0d,0x01,0x4c,0x27,0x03,0x01,0x03,0x2f,0x5d,0x2b,0x33,0x2b,0x2b,0x2b,0x11,0x33,0x2f,0x2b,0x5d,0x32,0x2b,0x2b,0x2b,0x00,0x2f,0x3f,0x12,0x39,0x39,0x2b, +0x2b,0x2b,0x2b,0x5d,0x31,0x30,0x01,0x5d,0x5d,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x01,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x04,0xe6,0xfd,0xed,0xb9,0xfd,0xf8,0xbb,0x01,0x8d,0x13,0x0a,0x04,0x08,0x19,0x01,0x95,0x05,0x9a,0xfa,0x66,0x05,0x9a,0xfb,0x8f,0x37,0x48,0x3c,0x45,0x04,0x6f,0x00,0x00,0x01, +0x00,0x1a,0x00,0x00,0x07,0x60,0x05,0x9a,0x00,0x1b,0x01,0x41,0x40,0x20,0x7b,0x1b,0x01,0x79,0x1a,0x01,0x76,0x14,0x01,0x76,0x0d,0x01,0x73,0x0c,0x01,0x75,0x09,0x01,0x7b,0x02,0x01,0x1b,0x20,0x0c,0x00,0x4d,0x1a,0x20,0x0c,0x00,0x4d,0x14,0xb8,0xff,0xe8,0x40,0x09,0x0b,0x00,0x4d,0x13,0x18,0x0b,0x00,0x4d,0x0d,0xb8,0xff,0xe0,0xb3, +0x0c,0x00,0x4d,0x0c,0xb8,0xff,0xe0,0x40,0x0a,0x0c,0x00,0x4d,0x0a,0x08,0x0b,0x0c,0x00,0x4c,0x09,0xb8,0xff,0xe8,0x40,0x0e,0x0b,0x00,0x4d,0x08,0x10,0x0b,0x00,0x4d,0x02,0x10,0x0b,0x00,0x4d,0x01,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x00,0x4d,0x00,0x10,0x0c,0x00,0x4d,0x1b,0xb8,0xff,0xd0,0xb3,0x0c,0x01,0x4d,0x1b,0xb8,0xff,0xe0,0xb3, +0x0d,0x01,0x4d,0x1b,0xb8,0xff,0xe8,0x40,0x13,0x0b,0x01,0x4d,0x0c,0x30,0x0c,0x01,0x4d,0x0c,0x20,0x0d,0x01,0x4d,0x0c,0x18,0x0b,0x01,0x4d,0x05,0xb8,0xff,0xc8,0x40,0x22,0x0b,0x0d,0x01,0x4c,0x17,0x38,0x0b,0x0d,0x01,0x4c,0x0f,0x38,0x0b,0x0d,0x01,0x4c,0x17,0x40,0x0b,0x0c,0x00,0x4c,0x0f,0x40,0x0b,0x0c,0x00,0x4c,0x05,0x10,0x0d, +0x06,0x4d,0x17,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0f,0xb8,0xff,0xf0,0x40,0x1d,0x0d,0x06,0x4d,0x00,0x01,0x05,0x0f,0x13,0x17,0x06,0x0a,0x0b,0x03,0x0a,0x14,0x13,0x06,0x01,0x02,0x17,0x09,0x0a,0x0f,0x17,0x20,0x0b,0x00,0x4d,0x0f,0xb8,0xff,0xe0,0xb3,0x0b,0x00,0x4d,0x17,0xb8,0xff,0xe0,0x40,0x14,0x0c,0x00,0x4d,0x0f,0x20,0x0c, +0x00,0x4d,0x0f,0x06,0x17,0x03,0x0b,0x00,0x00,0x1d,0x0b,0x2f,0x1d,0x01,0x5d,0x2f,0x11,0x33,0x2f,0x12,0x17,0x39,0x2b,0x2b,0x2b,0x2b,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x00,0x2f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x01,0x23,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x07,0x60,0xfe,0x6b,0xc5,0xfe,0xd9,0x13,0x04,0x04,0x06,0x14,0xfe,0xd7,0xc3,0xfe,0x5c,0xb9,0x01,0x31,0x13,0x05,0x05, +0x05,0x1a,0x01,0x3d,0xa1,0x01,0x30,0x10,0x08,0x04,0x04,0x17,0x01,0x25,0x05,0x9a,0xfa,0x66,0x04,0x18,0x43,0x4f,0x4a,0x46,0xfb,0xe6,0x05,0x9a,0xfb,0xb4,0x45,0x4b,0x35,0x5b,0x04,0x4c,0xfb,0xac,0x39,0x4d,0x34,0x56,0x04,0x50,0x00,0x01,0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x00,0x15,0x00,0xc0,0x40,0x19,0x7b,0x13,0x01,0x7a, +0x12,0x01,0x75,0x0d,0x01,0x74,0x0c,0x01,0x74,0x08,0x01,0x75,0x07,0x01,0x79,0x02,0x01,0x7b,0x01,0x01,0x13,0xb8,0xff,0xe0,0x40,0x11,0x0b,0x0d,0x01,0x4c,0x0c,0x20,0x0b,0x0d,0x01,0x4c,0x08,0x20,0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe0,0x40,0x0a,0x0b,0x0d,0x01,0x4c,0x13,0x08,0x0c,0x00,0x4d,0x0c,0xb8,0xff,0xf8,0x40,0x09,0x0c, +0x00,0x4d,0x0a,0x10,0x0b,0x00,0x4d,0x08,0xb8,0xff,0xf8,0x40,0x0f,0x0c,0x00,0x4d,0x01,0x08,0x0c,0x00,0x4d,0x0f,0x18,0x0b,0x0d,0x01,0x4c,0x05,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x0f,0xb8,0xff,0xf0,0x40,0x1f,0x0d,0x06,0x4d,0x05,0x10,0x0d,0x06,0x4d,0x01,0x05,0x0f,0x13,0x04,0x09,0x0b,0x03,0x09,0x15,0x0a,0x0b,0x14,0x00, +0x10,0x0b,0x00,0x4d,0x00,0x00,0x17,0x0b,0x09,0xb8,0xff,0xf0,0xb3,0x0b,0x00,0x4d,0x09,0x2f,0x2b,0xc6,0x11,0x33,0x2f,0x2b,0xc6,0x11,0x39,0x39,0x00,0x2f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x26,0x27,0x23, +0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x04,0x9a,0xcd,0xfe,0xb6,0x0f,0x12,0x04,0x0a,0x18,0xfe,0xac,0xce,0x01,0xe0,0xfe,0x46,0xce,0x01,0x25,0x1d,0x16,0x04,0x20,0x18,0x01,0x31,0xc1,0xfe,0x3d,0x02,0x25,0x19,0x2e,0x17,0x30,0xfd,0xdb,0x02,0xd1,0x02,0xc9,0xfe,0x08,0x32,0x32,0x42,0x26, +0x01,0xf4,0xfd,0x39,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x00,0x0d,0x00,0x65,0x40,0x21,0x73,0x06,0x01,0x04,0x09,0x01,0x01,0x05,0x03,0x12,0x0d,0x03,0x05,0x03,0x09,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06,0x4d,0x02,0x7e,0x03,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xfe, +0x40,0x16,0x0b,0x06,0x4d,0x03,0x03,0x05,0x0d,0x7d,0x00,0x00,0x0f,0x06,0x18,0x0b,0x0d,0x01,0x4c,0x06,0x05,0x20,0x0f,0x01,0x5d,0x2f,0x33,0x2b,0x11,0x33,0x2f,0xe9,0x11,0x39,0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x39,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0xcd,0x33,0x31,0x30,0x01,0x5d,0x01,0x01,0x11,0x23,0x11,0x01,0x33,0x01,0x16, +0x17,0x33,0x36,0x37,0x01,0x04,0x60,0xfe,0x27,0xa8,0xfe,0x33,0xbf,0x01,0x41,0x06,0x1d,0x03,0x0a,0x1c,0x01,0x50,0x05,0x9a,0xfc,0x78,0xfd,0xee,0x02,0x0e,0x03,0x8c,0xfd,0x78,0x0c,0x4c,0x22,0x36,0x02,0x88,0x00,0x01,0x00,0x21,0x00,0x00,0x04,0x64,0x05,0x9a,0x00,0x09,0x00,0xa6,0x40,0x0e,0x0c,0x06,0x01,0x04,0x01,0x01,0x10,0x01, +0x20,0x0b,0x0d,0x01,0x4c,0x06,0xb8,0xff,0xe0,0x40,0x31,0x0b,0x0d,0x01,0x4c,0x35,0x00,0x45,0x00,0x02,0x03,0x00,0x13,0x00,0x23,0x00,0x03,0x3a,0x05,0x4a,0x05,0x02,0x0c,0x05,0x1c,0x05,0x2c,0x05,0x03,0x17,0x03,0x05,0x01,0x04,0x04,0x01,0x91,0x59,0x04,0x12,0x00,0x08,0x07,0x08,0x07,0x91,0x59,0x08,0x03,0x06,0xb8,0xff,0xf8,0x40, +0x09,0x0d,0x06,0x4d,0x01,0x08,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x09,0x0c,0x06,0x4d,0x01,0x0c,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x14,0x0b,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x03,0x07,0x07,0x01,0x06,0x03,0x04,0x04,0x00,0x00,0x0b,0x04,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, +0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x01,0x2b,0x2b,0x5e,0x5d,0x5d,0x01,0x01,0x21,0x15,0x21,0x35,0x01,0x21,0x35,0x21,0x04,0x64,0xfc,0xb8,0x03,0x34,0xfb,0xd1,0x03,0x41,0xfd,0x02,0x04,0x00,0x05,0x72,0xfb,0x26,0x98,0x2f,0x04,0xd3,0x98,0x00,0x00,0x01, +0x00,0xc8,0xfe,0xba,0x02,0x38,0x05,0x9a,0x00,0x07,0x00,0x39,0x40,0x11,0x02,0x05,0xd9,0x59,0x02,0x03,0x01,0x06,0xd9,0x59,0x01,0x20,0x04,0x00,0x06,0xea,0x01,0xb8,0xff,0xec,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xe8,0x40,0x09,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x2f,0x2b,0x2b,0x2b,0xe1,0xdd,0xc4,0x00,0x3f,0x2b,0x00, +0x18,0x3f,0x2b,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x23,0x11,0x33,0x02,0x38,0xfe,0x90,0x01,0x70,0xde,0xde,0xfe,0xba,0x06,0xe0,0x77,0xfa,0x0e,0x00,0x01,0xff,0xe6,0xff,0x10,0x03,0x1e,0x05,0x9a,0x00,0x03,0x00,0x19,0x40,0x0d,0x78,0x01,0x01,0x00,0x08,0x0b,0x00,0x4d,0x00,0x02,0x03,0x00,0x02,0x2f,0x2f,0x00,0x3f,0x2f,0x31,0x30, +0x01,0x2b,0x5d,0x05,0x23,0x01,0x33,0x03,0x1e,0x97,0xfd,0x5f,0x9b,0xf0,0x06,0x8a,0x00,0x01,0x00,0x35,0xfe,0xba,0x01,0xa4,0x05,0x9a,0x00,0x07,0x00,0x35,0x40,0x1b,0x06,0x05,0xd9,0x59,0x06,0x03,0x01,0x02,0xd9,0x59,0x01,0x20,0x05,0x01,0x00,0xea,0x03,0x08,0x0d,0x06,0x4d,0x03,0x08,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xee,0xb3,0x0b, +0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0xdd,0xc4,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x01,0x21,0x35,0x33,0x11,0x23,0x35,0x21,0x01,0xa4,0xfe,0x91,0xdd,0xdd,0x01,0x6f,0xfe,0xba,0x77,0x05,0xf2,0x77,0x00,0x00,0x01,0x00,0xe6,0x02,0x70,0x04,0x96,0x05,0xb2,0x00,0x07,0x00,0x26,0x40,0x16,0x79,0x06,0x01,0x79,0x01,0x01, +0x07,0x10,0x0b,0x0c,0x00,0x4c,0x00,0x05,0x03,0x07,0x04,0x2f,0x00,0x01,0x00,0x05,0x2f,0x2f,0x5d,0x00,0x3f,0x33,0x2f,0xc4,0x31,0x30,0x01,0x2b,0x5d,0x5d,0x01,0x23,0x01,0x23,0x01,0x23,0x01,0x33,0x04,0x96,0x96,0xfe,0xb4,0x06,0xfe,0xcb,0x93,0x01,0xa6,0x41,0x02,0x70,0x02,0x6b,0xfd,0x95,0x03,0x42,0x00,0x01,0x00,0x00,0xfe,0xd7, +0x03,0x52,0xff,0x4e,0x00,0x03,0x00,0x0f,0xb6,0x01,0x02,0xd9,0x59,0x01,0x00,0x01,0x2f,0x2f,0x00,0x2f,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x52,0xfc,0xae,0x03,0x52,0xfe,0xd7,0x77,0x00,0x01,0x00,0x52,0x04,0xc2,0x01,0xd7,0x06,0x0a,0x00,0x03,0x00,0x1c,0xb7,0x77,0x03,0x01,0x03,0x80,0x01,0x00,0x02,0xb8,0xff,0xc0,0xb3,0x0d, +0x10,0x48,0x02,0x2f,0x2b,0xcd,0x00,0x2f,0x1a,0xcd,0x31,0x30,0x01,0x5d,0x01,0x23,0x01,0x33,0x01,0xd7,0x7f,0xfe,0xfa,0xa8,0x04,0xc2,0x01,0x48,0x00,0x02,0x00,0x5a,0xff,0xe8,0x03,0x83,0x04,0x18,0x00,0x14,0x00,0x1f,0x00,0xaa,0x40,0x52,0x06,0x10,0x01,0x00,0x09,0x01,0x10,0x04,0x06,0x18,0x0b,0x0c,0x00,0x4c,0x0b,0x15,0x96,0x59, +0x0b,0x10,0x0d,0x06,0x4d,0x0b,0x0b,0x1c,0x12,0x01,0x15,0x03,0x1c,0x05,0x1c,0x95,0x59,0x05,0x16,0x0f,0x40,0x09,0x0c,0x48,0x0f,0x0f,0x0d,0x12,0x0d,0x95,0x59,0x12,0x10,0x20,0x0f,0x30,0x0f,0x02,0x0f,0x0b,0x1f,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0x02,0x0d,0x06,0x4d,0x01, +0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xee,0x40,0x17,0x0b,0x06,0x4d,0x01,0x01,0x21,0x0f,0x19,0x83,0x08,0x0c,0x0c,0x06,0x4d,0x08,0x04,0x0b,0x06,0x4d,0x2f,0x08,0x01,0x08,0x2f,0x5d,0x2b,0x2b,0xe9,0x33,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x33,0x2f,0x5d,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f, +0x2b,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x31,0x30,0x00,0x2b,0x5f,0x5e,0x5d,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x07,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x03,0x83,0xa4,0x04,0x6b,0xd0,0x99,0xad,0x01,0x52, +0x01,0x33,0xd3,0xb9,0x95,0x97,0xc5,0x01,0x69,0xa4,0xf7,0x72,0x74,0x6b,0x59,0x7a,0x9f,0xa0,0xb8,0xa2,0x86,0x01,0x1f,0x2f,0x2b,0x01,0x05,0x7e,0xa8,0x60,0xfe,0x82,0x94,0x22,0x10,0x51,0x67,0x4b,0x5f,0xab,0x83,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x54,0x05,0xec,0x00,0x10,0x00,0x1d,0x00,0x9c,0x40,0x2b,0x00,0x0a,0x01,0x10, +0x06,0x03,0x15,0x01,0x15,0x0f,0x15,0x95,0x59,0x0f,0x16,0x07,0x1b,0x09,0x1b,0x95,0x59,0x09,0x10,0x04,0x00,0x0c,0x06,0x0d,0x06,0x4d,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x83,0x18,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x18,0xb8,0xff,0xf2,0xb3,0x0c,0x06,0x4d,0x18,0xb8,0xff,0xe3,0x40,0x1a,0x0b,0x06,0x4d,0x18, +0x18,0x1f,0x06,0x02,0x12,0x06,0x0d,0x06,0x4d,0x12,0x06,0x0c,0x06,0x4d,0x12,0x06,0x0b,0x06,0x4d,0x12,0x84,0x03,0xb8,0xff,0xf8,0x40,0x11,0x0d,0x06,0x4d,0x03,0x02,0x0c,0x06,0x4d,0x03,0x01,0x0b,0x06,0x4d,0x03,0x2f,0x1f,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b, +0x2b,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x25,0x23,0x15,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4e,0x04,0xa4,0xa4,0x04,0x79,0xe9,0xc5,0xdf,0xfa,0xd9, +0xcb,0x6c,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0x94,0x94,0x05,0xec,0xfd,0x60,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x02,0x49,0x8f,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0xc7,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x00,0x15,0x00,0x85,0x40,0x5b,0x58,0x03,0x01,0x09,0x0f,0x19,0x0f,0x02,0x0b,0x00,0x15,0x01,0x0c,0x03, +0x15,0x15,0x13,0x02,0x13,0x95,0x59,0x02,0x16,0x0b,0x0b,0x0d,0x08,0x0d,0x95,0x59,0x08,0x10,0x00,0x20,0x0c,0x01,0x4d,0x00,0x00,0x0b,0x0c,0x0c,0x06,0x4d,0x0b,0x02,0x0b,0x06,0x4d,0x70,0x0b,0x01,0x0b,0x20,0x0c,0x01,0x4d,0x0b,0x10,0x06,0x0d,0x06,0x4d,0x10,0x06,0x0c,0x06,0x4d,0x10,0x06,0x0b,0x06,0x4d,0x10,0x83,0x05,0x14,0x0d, +0x06,0x4d,0x05,0x0c,0x0c,0x06,0x4d,0x05,0x23,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x2f,0x2b,0x5d,0x2b,0x2b,0x33,0x2f,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x31,0x30,0x5e,0x5d,0x01,0x5d,0x25,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17, +0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x03,0x60,0x76,0xa2,0xdb,0xfe,0xf3,0x01,0x22,0xf2,0x87,0x67,0x72,0x82,0x9d,0xc9,0xbd,0x9f,0x86,0x76,0x2f,0x47,0x01,0x1d,0xe3,0xfd,0x01,0x33,0x32,0xa8,0x50,0xe1,0xb7,0xb4,0xd0,0x59,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x10,0x05,0xec,0x00,0x10,0x00,0x1d,0x00,0x9b, +0x40,0x38,0x0f,0x06,0x01,0x10,0x06,0x1c,0x18,0x0b,0x0c,0x00,0x4c,0x02,0x1b,0x05,0x1b,0x95,0x59,0x05,0x16,0x01,0x15,0x0e,0x15,0x0b,0x15,0x95,0x59,0x0b,0x10,0x0f,0x00,0x11,0x0d,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0x05,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06, +0x4d,0x01,0xb8,0xff,0xf0,0x40,0x2a,0x0b,0x06,0x4d,0x01,0x01,0x1f,0x18,0x06,0x0d,0x06,0x4d,0x18,0x06,0x0c,0x06,0x4d,0x18,0x06,0x0b,0x06,0x4d,0x18,0x83,0x08,0x10,0x0d,0x06,0x4d,0x08,0x0e,0x0c,0x06,0x4d,0x08,0x1a,0x0b,0x06,0x4d,0x08,0x2f,0x1f,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b, +0xe9,0x2b,0x2b,0x2b,0x33,0x33,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0xa4,0x04,0x72,0xee,0xc1, +0xe7,0x01,0x00,0xd5,0xd3,0x60,0x04,0xa4,0xa4,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0xab,0xae,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x02,0x7a,0xfb,0xe3,0x97,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0xc6,0x00,0x02,0x00,0x60,0xff,0xe8,0x03,0xdd,0x04,0x18,0x00,0x12,0x00,0x19,0x00,0xaf,0xb5,0x0f,0x07,0x01,0x10,0x06,0x06,0xb8,0xff,0xc0, +0x40,0x2d,0x0b,0x0e,0x48,0x06,0x06,0x01,0x04,0x19,0x01,0x95,0x59,0x19,0x19,0x04,0x0f,0x09,0x04,0x95,0x59,0x09,0x16,0x0f,0x16,0x95,0x59,0x0f,0x10,0x7f,0x07,0x01,0x07,0x16,0x0c,0x06,0x4d,0x07,0x20,0x0c,0x01,0x4d,0x07,0x07,0x00,0x83,0x13,0xb8,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x13,0xb8,0xff,0xd0,0xb3,0x0c,0x01,0x4d,0x13, +0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x13,0xb8,0xff,0xe8,0x40,0x28,0x0b,0x06,0x4d,0x13,0x13,0x1b,0x19,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x83,0x0c,0x10,0x0d,0x06,0x4d,0x0c,0x10,0x0c,0x06,0x4d,0x0c,0x1d,0x0b,0x06,0x4d,0x0c,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39, +0x2f,0x2b,0x2b,0x2b,0x2b,0xe9,0x32,0x2f,0x2b,0x2b,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x31,0x30,0x5f,0x5e,0x5d,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x12,0x15,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x03, +0xdd,0xfd,0x2d,0x04,0xb0,0x9a,0xad,0x91,0x87,0xde,0xd9,0xf8,0x01,0x0f,0xc9,0xc9,0xdc,0xa8,0x01,0x87,0x78,0x74,0xa2,0x13,0x01,0xd7,0xab,0xba,0x72,0x9a,0x62,0x01,0x17,0xfd,0xef,0x01,0x2d,0xfe,0xfc,0xe7,0x35,0x8e,0x9e,0xa6,0x86,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x02,0xa0,0x06,0x02,0x00,0x14,0x00,0x8a,0xb9,0x00,0x10,0xff, +0xc0,0x40,0x3a,0x0b,0x00,0x4d,0x0a,0x15,0x00,0x00,0x02,0x08,0x0c,0x05,0x0d,0x0d,0x0c,0x95,0x59,0x0d,0x0f,0x12,0x02,0x95,0x59,0x12,0x01,0x07,0x07,0x00,0x0c,0x0c,0x06,0x4d,0x2f,0x00,0x01,0x00,0x0c,0x00,0x0c,0x05,0x0e,0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x84,0x0a,0xb8,0xff,0xe8, +0xb3,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xe6,0x40,0x0a,0x0b,0x06,0x4d,0x0a,0x0a,0x16,0x15,0x2f,0x16,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x32,0x33,0x33,0x2f,0x2f,0x5d,0x2b,0x33,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x11,0x33,0x12,0x39, +0x18,0x2f,0x3f,0x31,0x30,0x2b,0x01,0x26,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x02,0xa0,0x30,0x3d,0xac,0xf0,0xf0,0xa3,0xaf,0xaf,0xba,0x8b,0x4b,0x2c,0x05,0x5c,0x1b,0xd9,0x9e,0x8c,0xfc,0x8c,0x03,0x74,0x8c,0xa6,0xa1,0xbb,0x12,0x00,0x02,0x00,0x60,0xfe,0x1e,0x04,0x10, +0x04,0x18,0x00,0x18,0x00,0x25,0x00,0xca,0x40,0x10,0x0a,0x04,0x01,0x03,0x0f,0x0e,0x01,0x10,0x06,0x24,0x18,0x0b,0x0c,0x00,0x4c,0x08,0xb8,0xff,0xe0,0xb4,0x0b,0x0c,0x00,0x4c,0x05,0xb8,0xff,0xc0,0x40,0x3a,0x0b,0x0f,0x48,0x05,0x05,0x07,0x02,0x07,0x95,0x59,0x02,0x1c,0x0a,0x23,0x0d,0x23,0x95,0x59,0x0d,0x16,0x17,0x0f,0x15,0x1d, +0x13,0x1d,0x95,0x59,0x13,0x10,0x04,0x15,0x19,0x16,0x03,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x09,0x05,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xf0,0x40,0x2b,0x0b,0x06,0x4d,0x09,0x09,0x27,0x04,0x20,0x06,0x0d,0x06,0x4d,0x20,0x06,0x0c,0x06,0x4d, +0x20,0x06,0x0b,0x06,0x4d,0x20,0x83,0x10,0x10,0x0d,0x06,0x4d,0x10,0x0e,0x0c,0x06,0x4d,0x10,0x1a,0x0b,0x06,0x4d,0x10,0x2f,0x27,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x17,0x33,0x2f,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f, +0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x31,0x30,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x00,0x5f,0x5d,0x25,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x20,0x11,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x12,0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0xfd,0xe4,0xbe,0x8e,0xad,0x9d, +0x01,0x7a,0x04,0x75,0xeb,0xbf,0xe9,0xfb,0xda,0xcf,0x64,0x04,0xa4,0xa4,0xa5,0x7b,0x98,0xac,0xa5,0x88,0x8a,0xad,0x52,0xfd,0xcc,0x48,0xa4,0x60,0x01,0x92,0x70,0xc4,0x01,0x11,0xe6,0x01,0x05,0x01,0x34,0xa6,0x8e,0xfd,0xcf,0x97,0x7a,0xae,0xdd,0xc7,0xab,0xcd,0xc4,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x11, +0x00,0x96,0x40,0x28,0x02,0x10,0x01,0x02,0x10,0x01,0x10,0x04,0x01,0x15,0x09,0x15,0x0c,0x04,0x0f,0x04,0x95,0x59,0x0f,0x10,0x0a,0x00,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40, +0x1e,0x0b,0x06,0x4d,0x01,0x01,0x13,0x0c,0x08,0x06,0x0d,0x06,0x4d,0x08,0x06,0x0c,0x06,0x4d,0x08,0x06,0x0b,0x06,0x4d,0x08,0x84,0x09,0x02,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x13,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b, +0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xa4,0xee,0x78,0xa4,0xa4,0xa4,0x04,0x76,0xda,0x01,0x5a,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfd,0xbc,0x05, +0xec,0xfd,0x6a,0xc2,0xfe,0x5f,0x00,0x02,0x00,0x90,0x00,0x00,0x01,0x66,0x05,0xd9,0x00,0x0b,0x00,0x0f,0x00,0x4e,0x40,0x23,0x00,0x06,0x63,0x5b,0x00,0x0e,0x0f,0x0d,0x09,0x62,0x03,0x0d,0x0c,0x03,0x62,0xff,0x30,0x0c,0x06,0x0d,0x06,0x4d,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x84,0x0d,0xb8,0xff,0xfe,0xb3,0x0c, +0x06,0x4d,0x0d,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x0d,0x0d,0x11,0x10,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xe1,0x00,0x18,0x2f,0x3f,0xc6,0x2b,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x23,0x11,0x33,0xfa,0x2c,0x3e,0x3e,0x2c,0x2d,0x3f,0x3f,0x23,0xa4,0xa4,0x05, +0x04,0x3c,0x2e,0x2e,0x3d,0x3d,0x2e,0x2c,0x3e,0xfa,0xfc,0x04,0x00,0x00,0x00,0x02,0xff,0x3a,0xfe,0x1e,0x01,0x66,0x05,0xd9,0x00,0x0c,0x00,0x18,0x00,0x6b,0x40,0x34,0x02,0x02,0x01,0x10,0x04,0x0d,0x13,0x63,0x5b,0x0d,0x0b,0x0f,0x06,0x06,0x08,0x03,0x08,0x95,0x59,0x03,0x1c,0x16,0x62,0x10,0x0a,0x00,0x10,0x62,0xff,0x30,0x06,0x00, +0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x0a,0x01,0x0a,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x0a,0x0a,0x1a,0x19,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0xc6,0x2b,0x01,0x10,0xe1,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f, +0x3f,0xc6,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x25,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x4a,0xcb,0xbd,0x46,0x42,0x4a,0x42,0xe0,0xa4,0x50,0x2c,0x3e,0x3e,0x2c,0x2d,0x3f,0x3f,0x2b,0xfc,0xfe,0xef,0x20,0x99,0x2d,0x01,0x66,0x03,0xf0,0x01, +0x04,0x3c,0x2e,0x2e,0x3d,0x3d,0x2e,0x2c,0x3e,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x0c,0x00,0x9b,0x40,0x10,0x7a,0x0c,0x01,0x77,0x0b,0x01,0x79,0x02,0x01,0x7d,0x0a,0x01,0x7e,0x01,0x01,0x0c,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x00,0x4d,0x01,0x10,0x0b,0x00,0x4d,0x00,0xb8,0xff,0xf0,0x40,0x22,0x0c,0x00,0x4d, +0x09,0x02,0x0a,0x05,0x01,0x15,0x05,0x15,0x0a,0x0f,0x06,0x00,0x0a,0x0b,0x0b,0x01,0x70,0x00,0x01,0x00,0x14,0x0b,0x06,0x4d,0x00,0x40,0x0b,0x01,0x4d,0x00,0x0c,0xb8,0xff,0xe8,0x40,0x1c,0x0d,0x06,0x4d,0x0c,0x08,0x04,0x06,0x0d,0x06,0x4d,0x04,0x06,0x0c,0x06,0x4d,0x04,0x06,0x0b,0x06,0x4d,0x04,0x84,0x05,0x04,0x0d,0x06,0x4d,0x05, +0xb8,0xff,0xff,0xb6,0x0b,0x06,0x4d,0x05,0x2f,0x0e,0x01,0x5d,0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x2b,0x2f,0x2b,0x2b,0x5d,0x33,0x33,0x2f,0x33,0x00,0x3f,0x3f,0x3f,0x3f,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x33,0x01, +0x03,0xf8,0xe6,0xfe,0x3c,0x04,0xa4,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0x01,0xec,0xfe,0x14,0x05,0xec,0xfc,0x3f,0x01,0xd5,0xfe,0x12,0x00,0x01,0x00,0xa6,0x00,0x00,0x01,0x4a,0x05,0xec,0x00,0x03,0x00,0x3a,0x40,0x16,0x01,0x15,0x02,0x00,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01, +0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x01,0x01,0x05,0x04,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x4a,0xa4,0xa4,0x05,0xec,0x00,0x01,0x00,0xa6,0x00,0x00,0x06,0x54,0x04,0x18,0x00,0x1f,0x00,0xdd,0xb6,0x49,0x0c,0x01,0x49,0x04, +0x01,0x1e,0xb8,0xff,0xe8,0xb7,0x0b,0x00,0x4d,0x0f,0x21,0x01,0x03,0x1c,0xb8,0xff,0xd0,0x40,0x2c,0x0c,0x00,0x4d,0x02,0x16,0x01,0x0c,0x04,0x05,0x15,0x16,0x1b,0x04,0x0d,0x18,0x0d,0x95,0x59,0x1d,0x18,0x10,0x13,0x0f,0x0a,0x01,0x12,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8, +0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xec,0x40,0x1c,0x0b,0x06,0x4d,0x01,0x0e,0x0a,0x12,0x0a,0x42,0x14,0x11,0x06,0x0d,0x06,0x4d,0x11,0x06,0x0c,0x06,0x4d,0x11,0x06,0x0b,0x06,0x4d,0x11,0x84,0x12,0xb8,0xff,0xfa,0x40,0x31,0x0c,0x06,0x4d,0x12,0x0e,0x0b,0x06,0x4d,0x12,0x1b,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06, +0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x84,0x0a,0x0a,0x04,0x0d,0x06,0x4d,0x0a,0x40,0x0d,0x01,0x4d,0x0f,0x0a,0x01,0x0c,0x03,0x20,0x21,0x0a,0x84,0x30,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x2b,0x2b,0x10,0xe1,0x2b,0x2b,0x2b,0x39,0x18,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18, +0x2f,0x33,0x33,0x3f,0x3f,0x33,0x2b,0x11,0x00,0x17,0x33,0x5f,0x5e,0x5d,0x31,0x30,0x2b,0x01,0x5f,0x5d,0x2b,0x5d,0x5d,0x21,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x20,0x11,0x06,0x54,0xa4,0x69,0x7c,0x69,0x93,0xa4,0xe9, +0x6c,0x8c,0xa4,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0x01,0x52,0x02,0x4c,0xaa,0x98,0xc0,0x86,0xfd,0xb8,0x02,0x60,0x01,0x2e,0xb5,0x91,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x75,0x5f,0xd4,0xfe,0x5f,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x18,0x00,0x12,0x00,0x96,0x40,0x28,0x02,0x11,0x01,0x02,0x10,0x01,0x10,0x04, +0x01,0x15,0x09,0x15,0x0a,0x0f,0x0c,0x04,0x0f,0x04,0x95,0x59,0x0f,0x10,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf6,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x1e,0x0b,0x06,0x4d,0x01,0x01,0x14,0x0c,0x08,0x06,0x0d,0x06, +0x4d,0x08,0x06,0x0c,0x06,0x4d,0x08,0x06,0x0b,0x06,0x4d,0x08,0x84,0x09,0x02,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x14,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33, +0x18,0x3f,0x3f,0x3f,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0x02,0x48,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd9,0xcd,0x00,0x02,0x00,0x60,0xff,0xe8, +0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x17,0x00,0x89,0x40,0x23,0x19,0x40,0x0b,0x02,0x4d,0x00,0x12,0x95,0x59,0x00,0x16,0x06,0x0c,0x95,0x59,0x06,0x10,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x83,0x15,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x15,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x06,0x4d,0x20, +0x15,0x30,0x15,0x02,0x15,0xb8,0xff,0xde,0x40,0x2a,0x0b,0x06,0x4d,0x15,0x15,0x19,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x0a,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x83,0x03,0x10,0x0d,0x06,0x4d,0x03,0x0c,0x0c,0x06,0x4d,0x03,0x19,0x0b,0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f, +0x2b,0x5d,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x01,0x2b,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x52,0xe3,0xfe,0xf1,0x01,0x1a,0xf0,0xe5,0x01,0x01,0xfe,0xeb,0xdd,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab, +0x18,0x01,0x1f,0xed,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x03,0xa6,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0x00,0x02,0x00,0xa6,0xfe,0x29,0x04,0x54,0x04,0x18,0x00,0x10,0x00,0x1d,0x00,0x9c,0x40,0x2b,0x00,0x0a,0x01,0x10,0x06,0x03,0x1b,0x01,0x15,0x0f,0x15,0x95,0x59,0x0f,0x16,0x04,0x0f,0x06,0x1b,0x09,0x1b,0x95, +0x59,0x09,0x10,0x0c,0x06,0x0d,0x06,0x4d,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x83,0x18,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x18,0xb8,0xff,0xf2,0xb3,0x0c,0x06,0x4d,0x18,0xb8,0xff,0xe3,0x40,0x1a,0x0b,0x06,0x4d,0x18,0x18,0x1f,0x06,0x12,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06, +0x4d,0x02,0x84,0x03,0xb8,0xff,0xf8,0x40,0x11,0x0d,0x06,0x4d,0x03,0x02,0x0c,0x06,0x4d,0x03,0x01,0x0b,0x06,0x4d,0x03,0x2f,0x1f,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x31,0x30, +0x01,0x5f,0x5e,0x5d,0x25,0x23,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4e,0x04,0xa4,0xa4,0x04,0x79,0xe9,0xc6,0xde,0xfa,0xd9,0xc7,0x70,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0x94,0xfd,0x95,0x05,0xd7,0xb4,0xcc,0xfe, +0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x02,0x49,0x8f,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0xc7,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0x10,0x04,0x18,0x00,0x10,0x00,0x1d,0x00,0x95,0x40,0x35,0x1c,0x18,0x0b,0x0c,0x00,0x4c,0x01,0x1b,0x03,0x1b,0x05,0x1b,0x95,0x59,0x05,0x16,0x0f,0x0f,0x0d,0x15,0x0b,0x15,0x95,0x59,0x0b,0x10,0x0d,0x11,0x0e,0x03, +0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0x05,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf0,0x40,0x2a,0x0b,0x06,0x4d,0x01,0x01,0x1f,0x18,0x06,0x0d,0x06,0x4d,0x18,0x06,0x0c,0x06,0x4d,0x18,0x06,0x0b,0x06,0x4d,0x18,0x83,0x08,0x10,0x0d,0x06,0x4d, +0x08,0x0e,0x0c,0x06,0x4d,0x08,0x1a,0x0b,0x06,0x4d,0x08,0x2f,0x1f,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x17,0x33,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x31,0x30,0x2b,0x01,0x23,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00, +0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0xa4,0x04,0x6b,0xf3,0xc1,0xe9,0x01,0x00,0xd8,0xd2,0x5e,0x04,0xa4,0xa4,0xa5,0x7f,0x94,0xac,0xa6,0x83,0x90,0xab,0xfe,0x29,0x02,0x87,0xc8,0x01,0x13,0xed,0xff,0x01,0x31,0xa6,0x8e,0xfd,0xcd,0x95,0x7e,0xae,0xdb,0xc7,0xb1, +0xc9,0xc5,0x00,0x01,0x00,0xa6,0x00,0x00,0x02,0xbc,0x04,0x12,0x00,0x10,0x00,0x59,0xb9,0x00,0x0c,0xff,0xe8,0x40,0x27,0x0b,0x0c,0x00,0x4c,0x07,0x15,0x08,0x0f,0x00,0x00,0x0a,0x02,0x0e,0x10,0x70,0x00,0x01,0x00,0x00,0x12,0x0a,0x06,0x06,0x0d,0x06,0x4d,0x06,0x06,0x0c,0x06,0x4d,0x06,0x06,0x0b,0x06,0x4d,0x06,0x84,0x07,0xb8,0xff, +0xf3,0x40,0x0e,0x0d,0x06,0x4d,0x07,0x04,0x0c,0x06,0x4d,0x07,0x05,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x11,0x39,0x2f,0x5d,0x00,0x3f,0xcd,0x32,0x32,0x2f,0x3f,0x3f,0x31,0x30,0x2b,0x01,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x02,0xbc,0x2b,0x51,0x69,0x8d, +0xa4,0xa4,0x04,0x23,0x90,0x59,0x40,0x22,0x03,0x5a,0x21,0xc6,0xab,0xfd,0xf6,0x04,0x00,0xd3,0x6c,0x79,0x0e,0x00,0x00,0x01,0x00,0x68,0xff,0xe8,0x03,0x0f,0x04,0x18,0x00,0x2e,0x00,0xa1,0x40,0x19,0x07,0x26,0x01,0x03,0x16,0x01,0x03,0x09,0x0c,0x01,0x09,0x09,0x01,0x0f,0x00,0x01,0x10,0x04,0x2b,0x10,0x0b,0x0c,0x00,0x4c,0x12,0xb8, +0xff,0xf0,0x40,0x35,0x0b,0x0c,0x00,0x4c,0x0a,0x38,0x0b,0x0c,0x00,0x4c,0x05,0x28,0x0f,0x1e,0x04,0x14,0x2d,0x17,0x19,0x14,0x19,0x95,0x59,0x14,0x10,0x00,0x01,0x10,0x01,0x20,0x01,0x03,0x0b,0x03,0x01,0x03,0x2d,0x03,0x95,0x59,0x2d,0x16,0x17,0x17,0x28,0x1e,0x83,0x0f,0x0f,0x00,0x28,0x83,0x05,0xb8,0xff,0xe0,0x40,0x16,0x0b,0x06, +0x4d,0x20,0x05,0x30,0x05,0x02,0x05,0x05,0x30,0x00,0x10,0x0d,0x06,0x4d,0x00,0x1c,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x11,0x39,0x2f,0x5d,0x2b,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x17,0x39,0x2b,0x31,0x30,0x2b,0x2b,0x5f,0x5e,0x5d, +0x5d,0x5d,0x5f,0x5d,0x5d,0x37,0x35,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x68,0x86,0xa1,0xd8,0x25,0x3f,0x55,0x31,0x44,0x67,0x45,0x23,0x42,0x6e,0x8d,0x4b,0x85,0x69,0x71,0x93,0x2e, +0x4a,0x35,0x1d,0x1d,0x38,0x50,0x33,0x44,0x6c,0x4c,0x29,0x43,0x70,0x92,0x50,0x9e,0x25,0xb0,0x63,0x90,0x29,0x39,0x2c,0x23,0x13,0x1b,0x37,0x45,0x58,0x3b,0x48,0x6f,0x4b,0x26,0x2e,0xa6,0x4a,0x15,0x26,0x35,0x20,0x28,0x36,0x2a,0x22,0x14,0x1a,0x37,0x45,0x5a,0x3e,0x4c,0x70,0x4a,0x24,0x00,0x00,0x01,0x00,0x2b,0xff,0xea,0x02,0x81, +0x05,0x2f,0x00,0x14,0x00,0x7c,0x40,0x3b,0x03,0x18,0x0b,0x0c,0x00,0x4c,0x14,0x14,0x12,0x02,0x12,0x95,0x59,0x02,0x16,0x0a,0x0a,0x07,0x0e,0x06,0x0b,0x07,0x07,0x06,0x95,0x59,0x07,0x0f,0x00,0x00,0x0d,0x40,0x0b,0x00,0x4d,0x0d,0x06,0x0d,0x06,0x0b,0x08,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d, +0x0f,0x84,0x04,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x04,0xb8,0xff,0xee,0xb3,0x0b,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x32,0x33,0x32,0x2f,0x2f,0x2b,0x33,0x2f,0x00,0x3f,0x2b,0x11,0x00,0x33,0x11,0x33,0x11,0x33,0x18,0x2f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x31, +0x30,0x2b,0x25,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x02,0x81,0x3a,0x5f,0xfe,0xf3,0xb0,0xb0,0xa4,0x01,0x02,0xfe,0xfe,0x46,0x51,0x3e,0x2d,0x0a,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0xfd,0xbf,0x67,0x58,0x22,0x00,0x00,0x01,0x00,0x90,0xff,0xe8, +0x03,0xe2,0x04,0x00,0x00,0x11,0x00,0xa1,0x40,0x36,0x49,0x06,0x01,0x49,0x06,0x01,0x03,0x0d,0x10,0x0b,0x0c,0x00,0x4c,0x0f,0x03,0x01,0x0c,0x06,0x01,0x15,0x03,0x0c,0x05,0x0c,0x95,0x59,0x05,0x16,0x10,0x0f,0x08,0x0f,0x01,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x0f,0x01,0x0f, +0xb8,0xff,0xfa,0xb3,0x0d,0x06,0x4d,0x0f,0xb8,0xff,0xfc,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xfc,0x40,0x2a,0x0b,0x06,0x4d,0x0f,0x0f,0x13,0x0a,0x06,0x0d,0x06,0x4d,0x0a,0x06,0x0c,0x06,0x4d,0x0a,0x06,0x0b,0x06,0x4d,0x0a,0x84,0x07,0x0a,0x0d,0x06,0x4d,0x07,0x06,0x0c,0x06,0x4d,0x07,0x02,0x0b,0x06,0x4d,0x07,0x2f,0x13,0x01,0x5d, +0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x5f,0x5e,0x5d,0x31,0x30,0x2b,0x01,0x5f,0x5d,0x00,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xe2,0xa4,0x04,0x66, +0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0xa4,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0x00,0x01,0x00,0x0e,0x00,0x00,0x03,0xcb,0x04,0x00,0x00,0x0b,0x00,0x7b,0x40,0x0d,0x79,0x0b,0x01,0x79,0x02,0x01,0x77,0x01,0x01,0x76,0x04,0x01,0x0b,0xb8,0xff,0xe0,0x40,0x0b,0x0b,0x0d,0x01,0x4c,0x04,0x20,0x0b,0x0d, +0x01,0x4c,0x02,0xb8,0xff,0xf4,0x40,0x19,0x0b,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x76,0x07,0x01,0x07,0x30,0x0b,0x0d,0x01,0x4c,0x0b,0x07,0x03,0x02,0x15,0x03,0x0f,0x0b,0xb8,0xff,0xf4,0x40,0x14,0x0b,0x06,0x4d,0x0b,0x00,0x10,0x0b,0x0c,0x00,0x4c,0x00,0x00,0x0d,0x04,0x0c,0x0b,0x06,0x4d,0x04,0x03,0xb8,0xff,0xf0,0xb3,0x0c,0x00, +0x4d,0x03,0x2f,0x2b,0x33,0x2b,0x11,0x33,0x2f,0x2b,0x32,0x2b,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2b,0x5d,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x01,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x03,0xcb,0xfe,0x68,0xa1,0xfe,0x7c,0xb4,0x01,0x04,0x1d,0x07,0x04,0x0a,0x16,0x01,0x10,0x04,0x00,0xfc,0x00, +0x04,0x00,0xfd,0x18,0x52,0x3d,0x4d,0x3e,0x02,0xec,0x00,0x01,0x00,0x18,0x00,0x00,0x05,0xb0,0x04,0x00,0x00,0x1b,0x00,0xd2,0x40,0x16,0x78,0x1b,0x01,0x77,0x14,0x01,0x76,0x0c,0x01,0x7b,0x0a,0x01,0x74,0x01,0x01,0x38,0x09,0x01,0x37,0x0c,0x01,0x1b,0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x13,0xb8,0xff,0xfe,0xb3,0x0b,0x06,0x4d,0x0a, +0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x02,0xb8,0xff,0xfa,0x40,0x18,0x0b,0x06,0x4d,0x14,0x02,0x0b,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x08,0xb8,0xff,0xc0,0xb3,0x0b,0x00,0x4d,0x14,0xb8,0xff,0xf0,0x40,0x09,0x0b,0x00,0x4d,0x13,0x18,0x0b,0x00,0x4d,0x0c,0xb8,0xff,0xf8,0x40,0x09, +0x0b,0x00,0x4d,0x09,0x10,0x0b,0x00,0x4d,0x1b,0xb8,0xff,0xe0,0x40,0x0b,0x0b,0x0d,0x01,0x4c,0x0c,0x20,0x0b,0x0d,0x01,0x4c,0x06,0xb8,0xff,0xd0,0x40,0x23,0x0b,0x0d,0x01,0x4c,0x17,0x30,0x0b,0x0d,0x01,0x4c,0x0f,0x30,0x0b,0x0d,0x01,0x4c,0x02,0x06,0x0f,0x17,0x13,0x1b,0x00,0x07,0x0a,0x0b,0x0f,0x0a,0x00,0x00,0x1d,0x0b,0x2f,0x1d, +0x01,0x5d,0x2f,0x11,0x33,0x2f,0x00,0x2f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x2b,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x2b,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x01,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x01,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13, +0x16,0x17,0x33,0x36,0x37,0x13,0x05,0xb0,0xfe,0xcd,0xaa,0xd3,0x0c,0x04,0x04,0x03,0x12,0xe5,0xa4,0xfe,0xca,0xac,0xd4,0x0a,0x04,0x08,0x03,0x0f,0xec,0x96,0xd4,0x0a,0x05,0x08,0x02,0x0f,0xd0,0x04,0x00,0xfc,0x00,0x02,0xdd,0x2a,0x35,0x24,0x39,0xfd,0x21,0x04,0x00,0xfc,0xfe,0x23,0x39,0x2c,0x32,0x03,0x00,0xfc,0xfc,0x25,0x37,0x27, +0x35,0x03,0x04,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0x92,0x04,0x00,0x00,0x13,0x00,0xe0,0x40,0x13,0x7b,0x13,0x01,0x73,0x0e,0x01,0x79,0x0c,0x01,0x74,0x0a,0x01,0x7b,0x03,0x01,0x75,0x01,0x01,0x13,0xb8,0xff,0xf8,0x40,0x09,0x0b,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0c,0xb8,0xff,0xf8,0x40,0x09,0x0b,0x06,0x4d,0x0a,0x08,0x0b, +0x06,0x4d,0x03,0xb8,0xff,0xf8,0x40,0x09,0x0b,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x0d,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0c,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xf0,0x40,0x13,0x0c,0x06,0x4d,0x02,0x10,0x0c,0x06,0x4d,0x01,0x10,0x0c,0x06,0x4d,0x00,0x10,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf0,0xb3,0x0b,0x00,0x4d, +0x13,0xb8,0xff,0xf0,0x40,0x11,0x0b,0x0d,0x01,0x4c,0x0e,0x10,0x0b,0x0d,0x01,0x4c,0x0a,0x10,0x0b,0x0d,0x01,0x4c,0x03,0xb8,0xff,0xf0,0x40,0x0a,0x0b,0x0d,0x01,0x4c,0x11,0x18,0x0b,0x01,0x4d,0x06,0xb8,0xff,0xe8,0x40,0x15,0x0b,0x01,0x4d,0x03,0x06,0x11,0x13,0x04,0x0b,0x0d,0x0f,0x0b,0x00,0x02,0x0d,0x0b,0x02,0x02,0x15,0x0b,0x15, +0xb8,0xff,0xc0,0xb2,0x0c,0x00,0x4d,0x2b,0x2f,0x11,0x33,0x2f,0x11,0x33,0x11,0x33,0x00,0x2f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x09,0x02,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x01,0x01,0x33, +0x13,0x16,0x17,0x33,0x01,0x03,0x92,0xfe,0xa8,0x01,0x52,0xbf,0xc9,0x13,0x1a,0x04,0x05,0x2a,0xcd,0xbd,0x01,0x5d,0xfe,0xb2,0xbf,0xc6,0x16,0x15,0x04,0x01,0x00,0x04,0x00,0xfd,0xfa,0xfe,0x06,0x01,0x4c,0x1f,0x2f,0x09,0x45,0xfe,0xb4,0x01,0xf6,0x02,0x0a,0xfe,0xa2,0x27,0x29,0x01,0xae,0x00,0x00,0x01,0x00,0x0e,0xfe,0x1e,0x03,0xd5, +0x04,0x00,0x00,0x14,0x00,0x9b,0x40,0x0a,0x0d,0x14,0x01,0x00,0x0d,0x01,0x06,0x02,0x01,0x14,0xb8,0xff,0xe0,0x40,0x2c,0x0b,0x0d,0x01,0x4c,0x0d,0x20,0x0b,0x0d,0x01,0x4c,0x02,0x20,0x0b,0x00,0x4d,0x02,0x10,0x01,0x10,0x04,0x00,0x0f,0x0c,0x0f,0x10,0x30,0x0b,0x0d,0x01,0x4c,0x10,0x01,0x0b,0x06,0x06,0x08,0x03,0x08,0x95,0x59,0x03, +0x1c,0x06,0x0b,0xb8,0xff,0xf4,0x40,0x0e,0x0b,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x01,0x06,0x0b,0x03,0x0c,0x14,0xb8,0xff,0xf4,0x40,0x14,0x0b,0x06,0x4d,0x14,0x00,0x10,0x0b,0x0c,0x00,0x4c,0x00,0x00,0x16,0x0d,0x0c,0x0b,0x06,0x4d,0x0d,0x0c,0xb8,0xff,0xf0,0xb3,0x0c,0x00,0x4d,0x0c,0x2f,0x2b,0x33,0x2b,0x11,0x33,0x2f,0x2b,0x32, +0x2b,0x12,0x17,0x39,0x2b,0x2b,0x2f,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2f,0x33,0x33,0x2b,0x3f,0x3f,0x5f,0x5e,0x5d,0x31,0x30,0x2b,0x01,0x2b,0x2b,0x5d,0x5d,0x5d,0x01,0x01,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x03,0xd5,0xfe,0x29,0x7e,0xe4,0x40,0x2b,0x35,0x2c, +0x7c,0x3e,0x52,0xfe,0x70,0xb6,0x01,0x15,0x05,0x10,0x06,0x05,0x0f,0x01,0x23,0x04,0x00,0xfb,0x5c,0xfe,0xc2,0x0d,0x93,0x12,0x94,0xc2,0x03,0xfe,0xfc,0xec,0x0f,0x3f,0x18,0x34,0x03,0x16,0x00,0x01,0x00,0x21,0x00,0x00,0x03,0x70,0x04,0x00,0x00,0x09,0x00,0xa5,0x40,0x0e,0x0a,0x06,0x01,0x06,0x01,0x01,0x10,0x01,0x18,0x0b,0x0d,0x01, +0x4c,0x06,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x06,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x01,0x08,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x09,0x0c,0x06,0x4d,0x01,0x0c,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x40,0x0b,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x35,0x00,0x45,0x00,0x02,0x03,0x00,0x13,0x00,0x23,0x00,0x03, +0x3a,0x05,0x4a,0x05,0x02,0x0c,0x05,0x1c,0x05,0x2c,0x05,0x03,0x17,0x03,0x05,0x01,0x04,0x04,0x01,0x95,0x59,0x04,0x15,0x00,0x08,0x07,0x08,0x07,0x95,0x59,0x08,0x0f,0x03,0x07,0x07,0x01,0x06,0x03,0x04,0x04,0x00,0x00,0x0b,0x04,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x2b,0x11, +0x12,0x00,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5e,0x5d,0x5d,0x01,0x01,0x21,0x15,0x21,0x35,0x01,0x21,0x35,0x21,0x03,0x70,0xfd,0xa2,0x02,0x58,0xfc,0xb7,0x02,0x5e,0xfd,0xdb,0x03,0x16,0x03,0xd1,0xfc,0xbb,0x8c,0x33,0x03,0x41,0x8c,0x00,0x01,0x00,0x5c,0xfe,0xba,0x02,0x2b, +0x05,0x9a,0x00,0x18,0x00,0x5f,0x40,0x2c,0x11,0x05,0x06,0x06,0x05,0x52,0x59,0x06,0x0b,0x00,0x06,0x4c,0x14,0x30,0x0b,0x0c,0x53,0x59,0x0b,0x03,0x00,0x18,0x53,0x59,0x00,0x20,0x12,0x15,0x05,0x0c,0x18,0x18,0x15,0x05,0x0f,0x08,0x15,0xea,0x02,0x18,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xdc,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf7,0xb3, +0x0b,0x06,0x4d,0x02,0x2f,0x2b,0x2b,0x2b,0xe1,0x39,0x39,0xce,0x10,0xc2,0x2f,0x32,0x11,0x12,0x39,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x01,0x24,0x11,0x11,0x34,0x27,0x35,0x36,0x35,0x11,0x10,0x25,0x15,0x06,0x15,0x11,0x14,0x07,0x15,0x16,0x15,0x11,0x14,0x16,0x17,0x02,0x2b, +0xfe,0xcd,0x9c,0x9c,0x01,0x33,0x9f,0x96,0x96,0x47,0x58,0xfe,0xba,0x04,0x01,0x32,0x01,0x2c,0xca,0x0a,0x74,0x0a,0xce,0x01,0x24,0x01,0x36,0x04,0x80,0x04,0xc2,0xfe,0xdb,0xd2,0x30,0x04,0x2d,0xd3,0xfe,0xdf,0x6f,0x5f,0x02,0x00,0x00,0x01,0x00,0xac,0xfe,0x1e,0x01,0x40,0x06,0x1e,0x00,0x03,0x00,0x13,0x40,0x09,0x03,0x00,0x1c,0x00, +0xea,0x90,0x01,0x01,0x01,0x2f,0x5d,0xe1,0x00,0x3f,0x2f,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x40,0x94,0x94,0xfe,0x1e,0x08,0x00,0x00,0x00,0x01,0x00,0x42,0xfe,0xba,0x02,0x10,0x05,0x9a,0x00,0x18,0x00,0x66,0x40,0x26,0x0c,0x00,0x18,0x18,0x00,0x52,0x59,0x18,0x13,0x05,0x18,0x4c,0x14,0x30,0x13,0x12,0x53,0x59,0x13,0x03,0x05,0x06, +0x53,0x59,0x05,0x20,0x0c,0x09,0x00,0x00,0x03,0x12,0x06,0x16,0x0f,0x03,0xea,0x09,0xb8,0xff,0xe0,0x40,0x0f,0x0d,0x06,0x4d,0x50,0x09,0x01,0x3f,0x09,0x01,0x09,0x20,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfc,0xb3,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x2b,0x5d,0x5d,0x2b,0xe1,0x39,0x39,0xc6,0x32,0x10,0xca,0x2f,0x12,0x39,0x00,0x3f,0x2b,0x00, +0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x01,0x06,0x15,0x11,0x10,0x05,0x35,0x36,0x36,0x35,0x11,0x34,0x37,0x35,0x26,0x35,0x11,0x34,0x27,0x35,0x04,0x11,0x11,0x14,0x17,0x02,0x10,0x9c,0xfe,0xce,0x57,0x49,0x95,0x95,0xa0,0x01,0x32,0x9c,0x01,0xf0,0x0a,0xca,0xfe,0xd4,0xfe,0xce,0x04,0x7e,0x02,0x60, +0x6e,0x01,0x21,0xd3,0x2d,0x04,0x30,0xd2,0x01,0x25,0xc2,0x04,0x80,0x04,0xfe,0xca,0xfe,0xdc,0xce,0x0a,0x00,0x01,0x00,0xd1,0x01,0xb8,0x04,0xaa,0x02,0xee,0x00,0x14,0x00,0x44,0xb9,0x00,0x01,0xff,0xe0,0x40,0x23,0x09,0x0c,0x48,0x0b,0x20,0x09,0x0c,0x48,0x09,0x03,0x03,0x11,0xbe,0x59,0x03,0x07,0x40,0x0d,0x07,0xbe,0x59,0x14,0x0d, +0x14,0xbd,0x00,0x09,0xbd,0x0a,0x15,0x16,0x0a,0x00,0xff,0x3a,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x00,0x18,0x2f,0xc4,0x2b,0x00,0x1a,0x18,0x10,0xcc,0x2b,0x00,0x10,0x18,0xc4,0x31,0x30,0x01,0x2b,0x2b,0x01,0x06,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x37,0x04,0xaa,0x07,0x93,0x7e, +0x6d,0x9c,0x61,0x3e,0x8c,0x06,0x87,0x05,0x95,0x7f,0x6a,0x81,0x84,0x41,0x3d,0x4a,0x02,0x02,0xee,0x94,0xa2,0x6d,0x43,0xb0,0x8f,0xa7,0x58,0x5a,0x62,0x50,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0xe2,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xe6,0x01,0x5b,0x00,0x22,0xb7,0x03,0x70,0x1f,0x01,0x02,0x7f,0x1f, +0x01,0xb8,0xff,0xf3,0x40,0x0a,0x1f,0x19,0x06,0x07,0x3e,0x03,0x02,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x5d,0x35,0x5d,0x35,0x00,0x03,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0xcd,0x00,0x10,0x00,0x1b,0x00,0x23,0x01,0x5d,0x40,0x18,0x76,0x22,0x01,0x79,0x1d,0x01,0x74,0x0c,0x01,0x7b,0x0a,0x01,0x7b,0x07,0x01,0x77,0x06,0x01, +0x10,0x06,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xfa,0x40,0x09,0x0d,0x06,0x4d,0x10,0x06,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xfa,0x40,0x09,0x0c,0x06,0x4d,0x10,0x06,0x0b,0x06,0x4d,0x06,0xb8,0xff,0xfa,0x40,0x2c,0x0b,0x06,0x4d,0x1d,0x08,0x0c,0x00,0x4d,0x02,0x08,0x0c,0x00,0x4d,0x1d,0x1c,0x02,0x01,0x20,0x01,0x22,0x23,0x03,0x04,0x20,0x04, +0x73,0x04,0x01,0x7c,0x01,0x01,0x10,0x08,0x0b,0x0c,0x00,0x4c,0x04,0x18,0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x20,0xb8,0xff,0xc0,0xb4,0x0b,0x0d,0x01,0x4c,0x1f,0xb8,0xff,0xc0,0x40,0x1e,0x0b,0x0d,0x01,0x4c,0x10,0x20,0x0b,0x0d,0x01,0x4c,0x06,0x20,0x0b,0x0d,0x01,0x4c,0x00,0x16,0x01,0x09,0x03,0x1d, +0x1e,0x1f,0x21,0x22,0x05,0x05,0x20,0x20,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x20,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x20,0xb8,0xff,0xf0,0x40,0x2a,0x0b,0x06,0x4d,0x20,0x20,0x12,0x16,0x48,0x20,0x00,0x16,0x1c,0x02,0x91,0x59,0x1c,0x1c,0x16,0x00,0x0b,0x11,0xc5,0x59,0x0b,0x10,0x06,0x16,0x03,0x04,0x00,0x12,0x19,0xc4,0x0e,0x40, +0x09,0x0c,0x48,0x0e,0x14,0xc4,0x08,0xb8,0xff,0xc0,0x40,0x12,0x0c,0x00,0x4d,0x08,0x08,0x1c,0x23,0x06,0x10,0x04,0x05,0x77,0x05,0x01,0x79,0x00,0x01,0x05,0xb8,0xff,0xe8,0x40,0x0e,0x0b,0x0c,0x00,0x4c,0x00,0x18,0x0b,0x0c,0x00,0x4c,0x00,0x00,0x25,0x05,0x2f,0x11,0x33,0x2f,0x2b,0x2b,0x5d,0x5d,0x12,0x17,0x39,0x39,0x2f,0x2b,0xe9, +0xd4,0x2b,0xe9,0x00,0x3f,0xc4,0x3f,0xcd,0x39,0xc4,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x2b,0x2b,0x2b,0x2b,0x11,0x12,0x17,0x39,0x5f,0x5e,0x5d,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x2b,0x5d,0x5d,0x10,0x87,0xc0,0xc0,0x0e,0xc0,0x10,0x87,0x05,0xc0,0xc0,0x0e,0xc0,0x01,0x2b,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x05,0x12,0xba,0x98,0xfd,0xa0,0x8f,0xbb,0x02,0x11,0x65,0x78,0x5c,0x58,0x70,0x60,0x6e,0x32,0x40, +0x72,0x30,0x42,0x42,0xc9,0xe1,0x0b,0x0b,0x04,0x0a,0x0d,0xdf,0x01,0x92,0xfe,0x6e,0x05,0x62,0x34,0x70,0x59,0x6e,0x6d,0x54,0x70,0x36,0x01,0x15,0x3f,0x30,0x72,0x42,0x30,0x31,0x3e,0xfb,0xae,0x02,0x63,0x1e,0x42,0x3d,0x23,0xfd,0x9d,0x00,0xff,0xff,0x00,0x5e,0xfe,0x50,0x04,0x8c,0x05,0xb2,0x02,0x26,0x00,0x26,0x00,0x00,0x00,0x07, +0x00,0xdd,0x02,0x39,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x65,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x17,0x01,0x5b,0x00,0x13,0x40,0x0b,0x01,0x38,0x0e,0x0c,0x02,0x03,0x3e,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x0b,0x02,0x26, +0x00,0x31,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0xb5,0x01,0x59,0x00,0x13,0x40,0x0b,0x01,0x00,0x1e,0x14,0x0b,0x12,0x25,0x01,0x1e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x06,0xe0,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x66,0x01,0x59,0x00,0x1b,0x40,0x10,0x03,0x70, +0x27,0x01,0x02,0x00,0x27,0x21,0x03,0x09,0x25,0x03,0x02,0x24,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x5d,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x06,0xe4,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x1d,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x1d,0x17,0x05,0x0d,0x25,0x02,0x01,0x1a,0x05, +0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0x0a,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xe9,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x12,0x22,0x20,0x10,0x00,0x25,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83, +0x06,0x0a,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xcb,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x11,0x22,0x20,0x10,0x0b,0x25,0x02,0x21,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0x0e,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0x96,0x00,0x00,0x00,0x16, +0xb9,0x00,0x02,0xff,0xec,0x40,0x09,0x24,0x20,0x0f,0x14,0x25,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0x87,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x00,0x8f,0x62,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xe2,0x40,0x0a,0x2f,0x29,0x0f,0x14,0x25,0x03,0x02,0x2c,0x11,0x26, +0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0xb2,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xa8,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xeb,0x40,0x09,0x2a,0x20,0x0f,0x14,0x25,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83, +0x06,0x1c,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xdc,0x00,0xe9,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xe9,0x40,0x0a,0x23,0x29,0x0f,0x14,0x25,0x03,0x02,0x20,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xfe,0x50,0x03,0x62,0x04,0x18,0x02,0x26,0x00,0x46,0x00,0x00,0x00,0x07,0x00,0xdd, +0x01,0x83,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x0a,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x0f,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x27,0x1b,0x1d,0x0c,0x12,0x25,0x02,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x0a,0x02,0x26,0x00,0x48, +0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xfe,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x09,0x1d,0x1b,0x0c,0x12,0x25,0x02,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x0e,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xb8,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xf7,0x40, +0x09,0x1f,0x20,0x16,0x0f,0x25,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0x87,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x88,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x0a,0x29,0x23,0x0c,0x12,0x25,0x03,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35, +0x35,0x00,0xff,0xff,0x00,0x58,0x00,0x00,0x01,0xdd,0x06,0x0a,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06,0x00,0x8e,0xd1,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x06,0x05,0x02,0x03,0x25,0x01,0x06,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xec,0x00,0x00,0x01,0x71,0x06,0x0a,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06, +0x00,0x43,0x9a,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x05,0x04,0x02,0x03,0x25,0x01,0x05,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xd3,0x00,0x00,0x02,0x07,0x06,0x0e,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x00,0xd7,0xff,0x77,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf5,0x40,0x09,0x08,0x04,0x02,0x03,0x25, +0x01,0x08,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xc9,0x00,0x00,0x02,0x10,0x05,0x87,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x4c,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf4,0x40,0x0a,0x13,0x0d,0x02,0x03,0x25,0x02,0x01,0x10,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff, +0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xb2,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xe8,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x1d,0x13,0x0a,0x12,0x25,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x0a,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07, +0x00,0x8e,0x01,0x42,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe4,0x40,0x09,0x19,0x19,0x0c,0x06,0x3e,0x02,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x0a,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x14,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x14,0x19,0x19,0x03,0x09, +0x25,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x0e,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xe5,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x1d,0x1e,0x03,0x09,0x25,0x02,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8, +0x04,0x50,0x05,0x87,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xb7,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x27,0x21,0x03,0x09,0x25,0x03,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0xb2,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xd8, +0x00,0xff,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0a,0x22,0x18,0x03,0x09,0x25,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x0a,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x3c,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfb,0x40,0x09,0x14,0x12,0x09,0x11,0x25, +0x01,0x14,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x0a,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xea,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x17,0x14,0x12,0x08,0x10,0x25,0x01,0x13,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2, +0x06,0x0e,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xc6,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x03,0x16,0x12,0x08,0x11,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x05,0x87,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xa0,0x00,0x00,0x00,0x17, +0x40,0x0d,0x02,0x01,0x07,0x21,0x1b,0x08,0x11,0x25,0x02,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x00,0x01,0x00,0x30,0x00,0xe5,0x02,0xd8,0x05,0x99,0x00,0x0b,0x00,0x36,0x40,0x1b,0x0b,0x01,0x09,0x06,0x40,0x04,0x00,0x08,0x10,0x08,0x02,0x0a,0x03,0x08,0x00,0x05,0x06,0x05,0x91,0x59,0x0b,0x06,0x06,0x03, +0x08,0x03,0x03,0x00,0x2f,0x3f,0x12,0x39,0x2f,0x33,0x2b,0x11,0x00,0x33,0x01,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0x1a,0xce,0xdd,0x32,0xce,0x31,0x30,0x01,0x25,0x03,0x23,0x03,0x05,0x35,0x05,0x03,0x33,0x03,0x25,0x02,0xd8,0xfe,0xfa,0x28,0x4c,0x28,0xfe,0xfa,0x01,0x2e,0x28,0x9c,0x28,0x01,0x2e,0x03,0x7d,0x1e,0xfd,0x4a,0x02,0xb6,0x1e, +0x96,0x14,0x01,0x9a,0xfe,0x66,0x14,0x00,0x00,0x02,0x00,0x6c,0x03,0x81,0x02,0x96,0x05,0xaa,0x00,0x0b,0x00,0x17,0x00,0x38,0x40,0x21,0x00,0x12,0xd8,0x59,0x00,0x0e,0x06,0x06,0x0c,0xd8,0x59,0x06,0x04,0x03,0x09,0x42,0x15,0xd8,0x09,0x0f,0xd8,0x03,0x0f,0x09,0x01,0x17,0x03,0x18,0x19,0x03,0x09,0xff,0x3a,0x2b,0x01,0x5f,0x5e,0x5d, +0x10,0xe1,0x10,0xe1,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x10,0xe4,0x2b,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x81,0x73,0xa2,0xa0,0x73,0x74,0xa3,0xa2,0x73,0x41,0x5c,0x5a,0x41,0x41,0x5e,0x5c,0x03,0x81,0xa3,0x74,0x73,0x9f,0xa0, +0x72,0x74,0xa3,0x01,0xb4,0x5c,0x41,0x43,0x5f,0x60,0x42,0x42,0x5b,0x00,0x00,0x02,0x00,0xb8,0xff,0xcf,0x03,0xb8,0x05,0x85,0x00,0x16,0x00,0x1d,0x00,0x7f,0x40,0x42,0x05,0x10,0x01,0x03,0x0f,0x00,0x01,0x10,0x05,0x16,0x16,0x17,0x14,0x02,0x14,0x9a,0x59,0x05,0x02,0x02,0x11,0x12,0x11,0x02,0x0c,0x03,0x11,0x11,0x18,0x13,0x0e,0x13, +0x99,0x59,0x0b,0x0e,0x02,0x0e,0x02,0x0c,0x04,0x1e,0x0c,0x0b,0x0e,0x14,0x17,0x04,0x02,0xdc,0x70,0x05,0x01,0x02,0x05,0x01,0x05,0x05,0x08,0x11,0x00,0x00,0x1f,0x1b,0x89,0x08,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x08,0x2f,0x2b,0xe1,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x5d,0x5d,0xe1,0x17,0x39,0x00,0x2f,0x10,0xc6,0x11,0x39,0x39, +0x2f,0x2f,0x33,0x2b,0x11,0x00,0x33,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x11,0x33,0x2b,0x11,0x00,0x33,0x33,0x18,0x2f,0x31,0x30,0x5f,0x5e,0x5d,0x5f,0x5d,0x25,0x06,0x07,0x15,0x23,0x35,0x26,0x02,0x35,0x34,0x12,0x37,0x35,0x33,0x15,0x16,0x17,0x15,0x26,0x27,0x11,0x36,0x37,0x05,0x11,0x06,0x06,0x15,0x14,0x16,0x03,0xb8,0x60,0x7d,0x7d, +0xc1,0xe5,0xe5,0xc1,0x7d,0x7b,0x62,0x65,0x78,0x7a,0x63,0xfe,0xa6,0x77,0x87,0x88,0xd1,0x3b,0x0a,0xbd,0xbf,0x16,0x01,0x16,0xcf,0xdb,0x01,0x27,0x25,0xd5,0xcb,0x02,0x31,0xac,0x47,0x07,0xfc,0xef,0x0c,0x4a,0x4b,0x02,0xf9,0x1f,0xcd,0x96,0x96,0xc6,0x00,0x01,0x00,0x6a,0x00,0x00,0x03,0xee,0x05,0xb2,0x00,0x1b,0x00,0x6a,0x40,0x39, +0x02,0x0e,0x01,0x03,0x00,0x12,0x01,0x10,0x05,0x17,0x14,0x05,0x08,0x08,0x05,0x9a,0x59,0x08,0x08,0x1b,0x0f,0x0c,0x40,0x0c,0x11,0x9a,0x59,0x0c,0x04,0x02,0x00,0x1b,0x00,0x1b,0x9a,0x59,0x00,0x12,0x15,0x15,0x18,0x7f,0x0e,0x01,0x0e,0x00,0x1a,0x02,0x06,0x14,0x08,0x18,0x8a,0x20,0x04,0x01,0x04,0x2f,0x5d,0xe1,0x39,0x39,0xc6,0xc6, +0x32,0x2f,0xc4,0x5d,0x11,0x39,0x2f,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xcd,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5f,0x5d,0x21,0x21,0x35,0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x15,0x21,0x15,0x21, +0x15,0x14,0x07,0x21,0x03,0xee,0xfc,0x7c,0xda,0xc5,0xc5,0xda,0xad,0x75,0x60,0x64,0x6f,0xe5,0x01,0x28,0xfe,0xd8,0xc1,0x02,0xc7,0x87,0x45,0xf4,0xbb,0x8d,0xfe,0xbc,0xf0,0x29,0x9b,0x39,0xfe,0xcd,0xec,0x8d,0x9c,0xf2,0x61,0x00,0x00,0x02,0x00,0x83,0xff,0xbe,0x03,0x27,0x05,0xd3,0x00,0x26,0x00,0x30,0x00,0xcf,0x40,0x1b,0x24,0x22, +0x01,0x23,0x1b,0x01,0x2c,0x0f,0x01,0x2b,0x07,0x01,0x2c,0x30,0x01,0x25,0x2b,0x01,0x25,0x26,0x01,0x11,0x20,0x0c,0x00,0x4d,0x23,0xb8,0xff,0xe0,0xb3,0x0c,0x00,0x4d,0x17,0xb8,0xff,0xf0,0x40,0x5d,0x0b,0x0c,0x00,0x4c,0x03,0x10,0x0b,0x0c,0x00,0x4c,0x2c,0x00,0x0a,0x27,0x14,0x05,0x19,0x00,0x08,0x01,0x0e,0x03,0x08,0x08,0x0a,0x05, +0x0a,0x9a,0x59,0x05,0x00,0x1c,0x10,0x1c,0x02,0x0f,0x03,0x1c,0x1c,0x1e,0x19,0x1e,0x9a,0x59,0x19,0x2c,0x00,0x02,0x29,0x27,0x14,0x2e,0x16,0x0d,0x7e,0x02,0x1c,0x40,0x0b,0x10,0x01,0x4c,0x02,0x40,0x0c,0x10,0x01,0x4c,0x1c,0x02,0x1c,0x02,0x2e,0x7e,0x25,0x40,0x0b,0x0c,0x01,0x4c,0x25,0x25,0x32,0x12,0x20,0x7e,0x16,0x08,0x16,0x08, +0x29,0x7e,0x12,0x2f,0xe1,0x39,0x39,0x2f,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x39,0x39,0x2f,0x2f,0x2b,0x2b,0x10,0xe1,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x2f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x2f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x11,0x12,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x2b,0x2b, +0x2b,0x2b,0x01,0x5d,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x14,0x16,0x17,0x16,0x15,0x14,0x01,0x06,0x15,0x14,0x16,0x17,0x36,0x35,0x34,0x26,0x02,0x92,0x5a,0xc8, +0x9b,0x83,0x6c,0x82,0x78,0x54,0x5c,0x47,0x91,0xe9,0x93,0x6a,0xbb,0x99,0x82,0x59,0x65,0x7a,0xa8,0x51,0xa3,0xdf,0xfe,0x67,0x65,0x71,0x8d,0x58,0x69,0x01,0xa0,0x4a,0x70,0x84,0xa4,0x38,0x9e,0x4a,0x4f,0x3c,0x35,0x49,0x4d,0x7a,0xc3,0xa3,0x51,0x53,0x8c,0x7f,0xa4,0x2b,0x9e,0x3e,0x90,0x37,0x5a,0x4e,0x6b,0xba,0xaa,0x01,0x7f,0x33, +0x6c,0x48,0x6d,0x3f,0x44,0x68,0x48,0x65,0x00,0x01,0x00,0xa4,0x01,0x98,0x02,0x9c,0x03,0x90,0x00,0x0b,0x00,0x19,0x40,0x0c,0x00,0x0e,0x40,0x06,0x03,0x09,0x42,0x09,0x20,0x03,0x01,0x03,0x2f,0x5d,0xcd,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0xa2,0x68,0x96,0x96, +0x68,0x68,0x92,0x92,0x01,0x98,0x92,0x68,0x67,0x97,0x96,0x68,0x68,0x92,0x00,0x01,0x00,0x54,0x00,0x00,0x03,0x42,0x05,0x9a,0x00,0x0f,0x00,0x7c,0x40,0x38,0x08,0x08,0x0f,0x02,0x04,0x00,0x0f,0x00,0xe2,0x59,0x0f,0x03,0x06,0x02,0x12,0x00,0x00,0x02,0x10,0x0d,0x06,0x4d,0x02,0x8c,0x03,0x18,0x0d,0x06,0x4d,0x03,0x10,0x0c,0x06,0x4d, +0x03,0x26,0x0b,0x06,0x4d,0x2f,0x03,0x01,0x03,0x06,0x10,0x0d,0x06,0x4d,0x06,0x8c,0x08,0x03,0x0d,0x06,0x4d,0x08,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x08,0xb8,0xff,0xec,0xb4,0x0b,0x06,0x4d,0x08,0x0b,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xe4,0xb3,0x0b,0x06,0x4d,0x0b,0x2f,0x2b,0x2b,0xdd,0x2b,0x2b,0x2b,0xe1,0x2b, +0xd4,0x5d,0x2b,0x2b,0x2b,0xf1,0x2b,0xca,0x2f,0x00,0x3f,0x33,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x03,0x42,0x80,0x6a,0x9e,0x6c,0x6c,0x8e,0x95,0x6b,0x01,0xee,0x05,0x33,0xfa,0xcd,0x05,0x33,0xfa,0xcd,0x03,0x87,0x98,0x73, +0x75,0x93,0x00,0x01,0x00,0xa6,0xff,0xe8,0x04,0x14,0x06,0x02,0x00,0x25,0x00,0xa2,0x40,0x09,0x0f,0x22,0x01,0x00,0x11,0x01,0x10,0x05,0x20,0xb8,0xff,0xe0,0xb4,0x0b,0x0c,0x00,0x4c,0x1a,0xb8,0xff,0xe8,0x40,0x32,0x0b,0x00,0x4d,0x1f,0x09,0x0a,0x0a,0x09,0x96,0x59,0x18,0x24,0x0a,0x95,0x14,0x30,0x18,0x10,0x95,0x59,0x18,0x01,0x01, +0x03,0x24,0x03,0x95,0x59,0x24,0x16,0x14,0x15,0x1f,0x1b,0x09,0x00,0x00,0x13,0x0d,0x83,0x1b,0x10,0x0c,0x06,0x4d,0x1b,0x1b,0x06,0x83,0x21,0xb8,0xff,0xe8,0x40,0x16,0x0c,0x06,0x4d,0x21,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x08,0x0b,0x06,0x4d,0x13,0x84,0x14,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x14,0x06, +0x0b,0x06,0x4d,0x14,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2f,0x2b,0xe1,0x39,0x2f,0x2b,0xe1,0x11,0x39,0x2f,0xc4,0x11,0x39,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x2b,0x2b,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x25,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x35,0x36,0x36,0x35, +0x34,0x26,0x23,0x22,0x11,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x04,0x11,0x14,0x06,0x23,0x22,0x01,0xcd,0x4b,0x5f,0x6d,0x88,0xc8,0xb2,0x76,0x98,0x6e,0x61,0xe7,0xa4,0xdc,0xba,0xa6,0xc6,0x96,0x78,0x01,0x7a,0xde,0xb7,0x65,0x02,0xa0,0x30,0x93,0x7c,0x96,0xbb,0x14,0x82,0x14,0xa6,0x72,0x6c,0x77,0xfe, +0xcb,0xfb,0xbe,0x04,0x5a,0xc0,0xe8,0xbe,0x9c,0x7f,0xca,0x27,0x05,0x4b,0xfe,0xa1,0xb1,0xf0,0xff,0xff,0x00,0x90,0x01,0xfa,0x02,0xb2,0x02,0x7b,0x02,0x06,0x00,0x10,0x00,0x00,0x00,0x04,0x01,0x38,0x00,0xff,0x05,0xe7,0x05,0xae,0x00,0x0b,0x00,0x17,0x00,0x2a,0x00,0x32,0x00,0x79,0x40,0x40,0x09,0xc6,0x15,0x2a,0x18,0x50,0x19,0x1a, +0x19,0x27,0x24,0x50,0x2f,0x2c,0x1e,0x50,0x1f,0x15,0x19,0x2f,0x1f,0x1f,0x2f,0x19,0x15,0x04,0x34,0x0f,0xc6,0x40,0x03,0x28,0x2c,0x1d,0x2c,0x1d,0x51,0x59,0x2c,0x2c,0x20,0x1f,0x20,0x2b,0x52,0x59,0x20,0x20,0x0c,0x06,0x0c,0xc7,0x59,0x06,0x28,0x19,0x1f,0x1f,0x12,0x00,0x12,0xc7,0x59,0x00,0x00,0x2f,0x2b,0x11,0x00,0x33,0x18,0x2f, +0x33,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x01,0x18,0x2f,0x1a,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x10,0xed,0x33,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x25,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x00,0x15,0x14, +0x00,0x33,0x32,0x00,0x35,0x34,0x00,0x13,0x23,0x27,0x26,0x23,0x23,0x11,0x23,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x17,0x01,0x15,0x33,0x32,0x35,0x34,0x26,0x23,0x03,0x90,0xf9,0xfe,0xa1,0x01,0x5f,0xf9,0xf8,0x01,0x5f,0xfe,0xa1,0xf7,0xd2,0xfe,0xd7,0x01,0x29,0xd2,0xd1,0x01,0x27,0xfe,0xd9,0x51,0x8a,0x53,0x3f,0x49, +0x34,0x75,0xd7,0x85,0x91,0x66,0x5b,0x3f,0x3f,0xfe,0xcb,0x5e,0x9e,0x55,0x5c,0xff,0x01,0x5e,0xf9,0xf9,0x01,0x5f,0xfe,0xa1,0xf9,0xf9,0xfe,0xa2,0x04,0x51,0xfe,0xd8,0xd2,0xd1,0xfe,0xd8,0x01,0x28,0xd1,0xd2,0x01,0x28,0xfc,0x8f,0xb7,0x8a,0xfe,0xbf,0x02,0xfb,0x70,0x60,0x4e,0x6f,0x13,0x03,0x0e,0x7f,0x01,0xcd,0xf5,0x7b,0x47,0x33, +0x00,0x03,0x00,0xa2,0xff,0xdf,0x06,0x7d,0x05,0xbb,0x00,0x0b,0x00,0x17,0x00,0x2d,0x00,0x7b,0xb9,0x00,0x12,0xff,0xe8,0x40,0x46,0x0c,0x00,0x4d,0x0c,0x18,0x0c,0x00,0x4d,0x22,0x0f,0x2d,0x01,0x0f,0x03,0x2d,0x2d,0x15,0x28,0xca,0x1d,0x1d,0x15,0x0f,0xc9,0x03,0x15,0xc9,0x40,0x09,0xc6,0x03,0x1a,0x2b,0x53,0x59,0x0f,0x1a,0x1f,0x1a, +0x2f,0x1a,0x03,0x0f,0x03,0x1a,0x1a,0x25,0x12,0x20,0x25,0x53,0x59,0x20,0x20,0x0c,0x12,0x06,0x0c,0xcb,0x59,0x00,0x12,0xcb,0x59,0x06,0x00,0xc7,0x59,0x06,0x04,0x00,0x3f,0x2b,0x2b,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x01,0x18,0x2f,0xf0,0x1a,0xe9,0x10,0xe9,0x11,0x39,0x2f, +0xe1,0x11,0x39,0x2f,0x5f,0x5e,0x5d,0xc6,0x00,0x2b,0x2b,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x03,0x06,0x23,0x22,0x24,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x03,0x90,0xfe,0xc9,0xfe, +0x49,0x01,0xb7,0x01,0x37,0x01,0x36,0x01,0xb7,0xfe,0x49,0xfe,0xca,0xfe,0xee,0xfe,0x7c,0x01,0x84,0x01,0x12,0x01,0x12,0x01,0x83,0xfe,0x7d,0x03,0x69,0x8f,0xc0,0xfe,0xfc,0x01,0x0a,0xd5,0x79,0x60,0x56,0x8f,0x8d,0xb7,0xbb,0x90,0x84,0x5e,0x21,0x01,0xb7,0x01,0x37,0x01,0x37,0x01,0xb7,0xfe,0x49,0xfe,0xc9,0xfe,0xc9,0xfe,0x49,0x05, +0x84,0xfe,0x7c,0xfe,0xee,0xfe,0xee,0xfe,0x7d,0x01,0x83,0x01,0x12,0x01,0x12,0x01,0x84,0xfb,0xe6,0x45,0xfa,0xbc,0xda,0x01,0x04,0x35,0x96,0x48,0xb4,0x98,0x94,0xb2,0x4e,0x00,0x00,0x02,0x00,0x4c,0x03,0x04,0x05,0x74,0x05,0x9a,0x00,0x0f,0x00,0x17,0x00,0x79,0x40,0x49,0x0f,0x0c,0x01,0x10,0x04,0x0d,0x28,0x0b,0x0c,0x00,0x4c,0x0c, +0x28,0x0b,0x0c,0x00,0x4c,0x02,0x07,0x0c,0x03,0x16,0x01,0x05,0x09,0x03,0x13,0x11,0x15,0x16,0x15,0x54,0x59,0x0e,0x0a,0x16,0x03,0x0e,0x00,0x50,0x50,0x01,0x01,0x0f,0x01,0x01,0x0b,0x01,0x01,0x0b,0x08,0x50,0x0f,0x09,0x01,0x10,0x03,0x09,0x09,0x13,0x10,0x0e,0x12,0x50,0x13,0x13,0x15,0x42,0x15,0x20,0x13,0x01,0x13,0x2f,0x5d,0xc6, +0x2b,0x01,0x10,0xf1,0xe2,0x11,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0xe1,0x32,0x33,0x2f,0x5e,0x5d,0x5d,0xe1,0x33,0x00,0x3f,0x33,0x33,0x2b,0x11,0x00,0x33,0x18,0x2f,0x17,0x33,0x12,0x17,0x39,0x31,0x30,0x2b,0x2b,0x5f,0x5e,0x5d,0x01,0x23,0x11,0x23,0x03,0x23,0x03,0x23,0x11,0x23,0x11,0x33,0x13,0x33,0x13,0x33,0x05,0x23,0x11,0x23,0x11, +0x23,0x35,0x21,0x05,0x74,0x6c,0x04,0xdb,0x3b,0xd6,0x04,0x66,0x7f,0xe1,0x04,0xe4,0x7e,0xfc,0xe6,0xd1,0x6f,0xce,0x02,0x0e,0x03,0x04,0x01,0xde,0xfe,0x22,0x01,0xde,0xfe,0x22,0x02,0x96,0xfe,0x10,0x01,0xf0,0x62,0xfd,0xcc,0x02,0x34,0x62,0x00,0x01,0x00,0x87,0x04,0xc2,0x02,0x0c,0x06,0x0a,0x00,0x03,0x00,0x13,0xb7,0x78,0x03,0x01, +0x03,0x02,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0xcd,0x31,0x30,0x01,0x5d,0x01,0x01,0x23,0x13,0x02,0x0c,0xfe,0xfa,0x7f,0xdf,0x06,0x0a,0xfe,0xb8,0x01,0x48,0x00,0x00,0x02,0x00,0x7d,0x04,0xc2,0x02,0xc4,0x05,0x87,0x00,0x0b,0x00,0x17,0x00,0x2a,0x40,0x16,0x06,0x00,0x12,0xc1,0x0c,0x09,0xc0,0x03,0x0f,0xc0,0x10,0x15,0x01,0x0f, +0x03,0x01,0x15,0x03,0x15,0x03,0x19,0x18,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0xe1,0x10,0xe1,0x00,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x62,0x28,0x3a,0x38,0x28,0x2a,0x3a,0x38,0xfe,0x56,0x2a,0x3b,0x39, +0x29,0x29,0x3c,0x3a,0x04,0xc2,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x3b,0x28,0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0x01,0x00,0xe8,0x00,0x00,0x04,0x94,0x04,0xa4,0x00,0x13,0x00,0x89,0x40,0x3b,0x0e,0x11,0x12,0x01,0x02,0x0d,0x02,0x0b,0x08,0x07,0x04,0x03,0x0c,0x03,0x04,0x40,0x12,0x01,0x04,0x07,0x07,0x04,0xbe,0x59,0x07,0x0b, +0x40,0x11,0x0e,0x08,0x0b,0x0b,0x08,0xbe,0x59,0x0c,0x40,0x0b,0x01,0x02,0x04,0x07,0x08,0x0b,0x0c,0x0e,0x11,0x12,0x0a,0x03,0x0d,0x03,0x0d,0x03,0x10,0x09,0x00,0x05,0x00,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x05,0xb8,0xff,0xe0,0x40,0x09,0x0c,0x06,0x4d,0x14,0x15,0x05,0x00,0xff,0x3a,0x2b,0x01,0x2b,0x2b,0x11,0x12,0x39,0x39,0x39, +0x39,0x18,0x2f,0x2f,0x12,0x17,0x39,0x00,0x2f,0x1a,0xcd,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xcd,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xdd,0x31,0x30,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x01,0x21,0x03,0x23,0x13,0x23,0x35,0x21,0x13,0x21,0x35,0x21,0x13,0x33,0x03,0x21,0x15,0x21,0x03, +0x21,0x04,0x94,0xfd,0xda,0xa3,0x8d,0xa4,0xfa,0x01,0x3f,0x95,0xfe,0x2c,0x02,0x1a,0x9e,0x8d,0x9f,0x01,0x06,0xfe,0xb6,0x98,0x01,0xe2,0x01,0x3e,0xfe,0xc2,0x01,0x3e,0x84,0x01,0x26,0x84,0x01,0x38,0xfe,0xc8,0x84,0xfe,0xda,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x06,0x83,0x05,0x9a,0x00,0x0f,0x00,0x13,0x00,0xb3,0x40,0x0e,0x13,0x03, +0x04,0x12,0x04,0x02,0x12,0x01,0x00,0x04,0x01,0x10,0x04,0x12,0xb8,0xff,0xf0,0x40,0x21,0x0c,0x00,0x4d,0x0c,0x08,0x00,0x00,0x15,0x01,0x12,0x06,0x06,0x05,0x11,0x09,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x7e,0x01,0xb8,0xff,0xd8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06, +0x4d,0x01,0xb8,0xff,0xd6,0x40,0x2b,0x0b,0x06,0x4d,0x01,0x01,0x15,0x04,0x05,0x13,0x03,0x91,0x59,0x13,0x13,0x07,0x00,0x0b,0x0c,0x91,0x59,0x0b,0x07,0x00,0x0b,0x91,0x2b,0x30,0x12,0x08,0x07,0x08,0x91,0x59,0x07,0x03,0x05,0x00,0x00,0x0f,0x91,0x59,0x00,0x12,0x00,0x3f,0x2b,0x00,0x10,0x18,0xc4,0x3f,0x2b,0x11,0x00,0x33,0x2b,0x00, +0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x01,0x18,0x2f,0x33,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0xc4,0xc4,0x31,0x30,0x2b,0x5f,0x5e,0x5d,0x5d,0x10,0x87,0xc0,0xc0,0x21,0x21,0x11,0x21,0x03,0x23,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x01, +0x11,0x23,0x01,0x06,0x83,0xfd,0x09,0xfe,0x02,0xc1,0xc3,0x02,0xbc,0x03,0x9c,0xfd,0xd1,0x02,0x07,0xfd,0xf9,0x02,0x50,0xfd,0x09,0x5f,0xfe,0xa6,0x01,0x92,0xfe,0x6e,0x05,0x9a,0x98,0xfe,0x23,0x97,0xfe,0x0a,0x01,0x91,0x02,0xd9,0xfd,0x27,0x00,0x03,0x00,0x5e,0xff,0xcd,0x05,0xaa,0x05,0xd3,0x00,0x13,0x00,0x1b,0x00,0x23,0x01,0x03, +0x40,0x0a,0x57,0x09,0x01,0x57,0x0e,0x01,0x58,0x0d,0x01,0x1d,0xb8,0xff,0xe8,0xb3,0x0c,0x00,0x4d,0x0d,0xb8,0xff,0xf0,0xb3,0x0b,0x00,0x4d,0x0c,0xb8,0xff,0xe8,0xb4,0x0b,0x0c,0x00,0x4c,0x0a,0xb8,0xff,0xf0,0x40,0x21,0x0b,0x00,0x4d,0x14,0x1d,0x22,0x19,0x01,0x02,0x0b,0x0c,0x02,0x0c,0x02,0x05,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06, +0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x22,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x22,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x22,0xb8,0xff,0xea,0x40,0x0b,0x0b,0x06,0x4d,0x00,0x22,0x10,0x22,0x02,0x0b,0x03,0x22,0xb8,0xff,0xf8,0x40,0x4b,0x0b,0x06,0x4d,0x22,0x22,0x25,0x19,0x06,0x0d,0x06,0x4d,0x19,0x06,0x0c,0x06,0x4d, +0x19,0x06,0x0b,0x06,0x4d,0x19,0x7d,0x05,0x10,0x0d,0x06,0x4d,0x05,0x10,0x0c,0x06,0x4d,0x05,0x18,0x0b,0x06,0x4d,0x05,0x0c,0x0b,0x08,0x02,0x01,0x12,0x40,0x14,0x1b,0x1c,0x1d,0x04,0x1f,0x16,0x00,0x03,0x0a,0x0d,0x04,0x12,0x08,0x08,0x16,0x91,0x59,0x08,0x04,0x12,0x1f,0x91,0x59,0x12,0x13,0x2f,0x25,0x01,0x5d,0x00,0x3f,0x2b,0x00, +0x18,0x3f,0x2b,0x11,0x12,0x00,0x17,0x39,0x11,0x12,0x17,0x39,0x1a,0x18,0x10,0xce,0x32,0x10,0xce,0x32,0x01,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5f,0x5e,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x39,0x2f,0x2f,0x33,0x11,0x33,0x11,0x12,0x39,0x39,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x2b,0x01,0x5d, +0x5d,0x00,0x5d,0x25,0x07,0x27,0x37,0x26,0x11,0x10,0x00,0x21,0x32,0x17,0x37,0x17,0x07,0x16,0x11,0x10,0x00,0x21,0x20,0x01,0x26,0x23,0x22,0x00,0x11,0x14,0x17,0x01,0x01,0x16,0x33,0x32,0x00,0x11,0x10,0x01,0x44,0x98,0x4e,0x9e,0x9e,0x01,0x75,0x01,0x43,0xea,0xa8,0x87,0x4e,0x8b,0xb8,0xfe,0x8c,0xfe,0xc8,0xfe,0xf6,0x02,0x4e,0x7e, +0xba,0xe3,0xfe,0xe7,0x62,0x03,0x15,0xfd,0x2b,0x83,0xcb,0xec,0x01,0x10,0x83,0xb6,0x41,0xbf,0xc3,0x01,0x2c,0x01,0x57,0x01,0x9f,0x81,0xa2,0x3f,0xa6,0xc8,0xfe,0xb9,0xfe,0xa1,0xfe,0x68,0x04,0xcc,0x66,0xfe,0xb8,0xfe,0xf9,0xdf,0x96,0x03,0x14,0xfc,0x9e,0x89,0x01,0x35,0x01,0x14,0x01,0x04,0x00,0x03,0x00,0x52,0x00,0xcf,0x06,0x3a, +0x03,0xd9,0x00,0x13,0x00,0x1d,0x00,0x27,0x00,0x8e,0x40,0x15,0x57,0x25,0x01,0x57,0x21,0x01,0x58,0x1b,0x01,0x58,0x17,0x01,0x14,0x00,0x23,0x1e,0x0a,0x05,0x19,0xbd,0x0f,0xb8,0xff,0xe0,0x40,0x0c,0x0c,0x06,0x4d,0x00,0x0f,0x01,0x0f,0x0f,0x29,0x23,0xbd,0x05,0xb8,0xff,0xe0,0x40,0x11,0x0c,0x06,0x4d,0x0f,0x05,0x1f,0x05,0x02,0x0b, +0x03,0x05,0x00,0x40,0x0c,0x00,0x4d,0x0a,0xb8,0xff,0xe0,0x40,0x1a,0x0c,0x00,0x4d,0x1e,0x26,0x14,0x00,0x0c,0x16,0x12,0x02,0x26,0x02,0x26,0xeb,0x59,0x02,0x1c,0x0c,0x20,0x08,0x08,0x20,0xeb,0x59,0x08,0x00,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x11,0x39,0x39,0x12,0x39,0x2b,0x2b,0x01,0x18, +0x2f,0x5f,0x5e,0x5d,0x2b,0xe1,0x12,0x39,0x2f,0x5d,0x2b,0xe1,0x12,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x02,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x13,0x12,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x03,0x12,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x01,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32, +0x03,0x44,0xa8,0xd6,0xa5,0xcf,0xd8,0x9c,0xec,0x96,0xa4,0xd8,0xa6,0xd0,0xd8,0x9e,0xe2,0x5d,0x83,0xbc,0x6d,0x83,0x88,0x68,0xad,0xfe,0xef,0x84,0xbc,0x6e,0x83,0x87,0x6a,0xb0,0x01,0xe2,0xfe,0xed,0xd5,0xac,0xa2,0xe7,0xfe,0xef,0x01,0x11,0xd5,0xac,0xa1,0xe8,0x01,0x85,0xfe,0xfc,0x91,0x77,0x70,0x94,0xfe,0xfa,0x01,0x06,0x96,0x76, +0x6e,0x92,0x00,0x02,0x00,0xe8,0x00,0x00,0x04,0x94,0x04,0xa4,0x00,0x0b,0x00,0x0f,0x00,0x5d,0x40,0x2e,0x03,0x0e,0x04,0x08,0x0e,0x07,0x40,0x0a,0x01,0x04,0x07,0x07,0x04,0xbe,0x59,0x0f,0x07,0x1f,0x07,0xaf,0x07,0x03,0x0d,0x03,0x07,0x0f,0x0c,0x0f,0xbe,0x59,0x0c,0x12,0x0f,0x00,0x0e,0x0a,0x07,0x01,0xbd,0x04,0x04,0x05,0x42,0x0e, +0x05,0x04,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x04,0x2f,0x2b,0xcd,0x32,0x2b,0x01,0x10,0xf1,0x39,0x39,0xe1,0x32,0x00,0x18,0x3f,0x2b,0x00,0x18,0x10,0xc4,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x11,0x21,0x35,0x21,0x04, +0x94,0xfe,0x6c,0x83,0xfe,0x6b,0x01,0x95,0x83,0x01,0x94,0xfc,0x54,0x03,0xac,0x02,0x8c,0xfe,0x6c,0x01,0x94,0x84,0x01,0x94,0xfe,0x6c,0xfc,0xf0,0x85,0x00,0x00,0x02,0x00,0xe8,0x00,0x00,0x04,0x94,0x04,0xcb,0x00,0x07,0x00,0x0b,0x00,0x5c,0x40,0x0b,0x08,0x01,0x01,0x07,0x10,0x0b,0x00,0x4d,0x02,0x01,0x00,0xb8,0xff,0xc0,0x40,0x15, +0x0c,0x00,0x4d,0x00,0x03,0x01,0x10,0x03,0x03,0x03,0x00,0x0a,0x09,0x0a,0xbe,0x59,0x09,0x12,0x03,0x07,0x08,0xb8,0xff,0xe0,0xb6,0x0c,0x06,0x4d,0x08,0x05,0x01,0x09,0xb8,0xff,0xe0,0x40,0x09,0x0c,0x06,0x4d,0x09,0x40,0x0c,0x00,0x4d,0x09,0x2f,0x2b,0x2b,0xc4,0x32,0x2f,0x2b,0xc4,0xc4,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x32,0x2f, +0x5f,0x5e,0x5d,0x2b,0x39,0x39,0x31,0x30,0x2b,0x5d,0x25,0x01,0x35,0x01,0x15,0x01,0x15,0x01,0x13,0x21,0x35,0x21,0x04,0x6c,0xfc,0xa4,0x03,0x5c,0xfd,0x7e,0x02,0x82,0x28,0xfc,0x54,0x03,0xac,0xfe,0x01,0xb2,0x3a,0x01,0xe1,0x96,0xfe,0x9e,0x04,0xfe,0xc7,0xfe,0x6a,0x85,0x00,0x02,0x00,0xe8,0x00,0x00,0x04,0x94,0x04,0xcd,0x00,0x07, +0x00,0x0b,0x00,0x5c,0x40,0x10,0x08,0x00,0x01,0x02,0x10,0x0b,0x00,0x4d,0x07,0x00,0x00,0x06,0x01,0x10,0x03,0x01,0xb8,0xff,0xc0,0x40,0x10,0x0c,0x00,0x4d,0x06,0x06,0x01,0x0a,0x09,0x0a,0xbe,0x59,0x09,0x12,0x04,0x00,0x08,0xb8,0xff,0xe0,0xb6,0x0c,0x06,0x4d,0x08,0x05,0x01,0x09,0xb8,0xff,0xe0,0x40,0x09,0x0c,0x06,0x4d,0x09,0x40, +0x0c,0x00,0x4d,0x09,0x2f,0x2b,0x2b,0xd4,0xc4,0x2f,0x2b,0xc4,0x32,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x32,0x2f,0x2b,0x5f,0x5e,0x5d,0x39,0x39,0x31,0x30,0x2b,0x5d,0x01,0x01,0x35,0x01,0x35,0x01,0x35,0x01,0x13,0x21,0x35,0x21,0x04,0x6c,0xfc,0xa4,0x02,0x84,0xfd,0x7c,0x03,0x5c,0x28,0xfc,0x54,0x03,0xac,0x02,0xb2,0xfe,0x4e,0x98, +0x01,0x35,0x06,0x01,0x65,0x95,0xfe,0x1f,0xfd,0x14,0x85,0x00,0x00,0x01,0x00,0x44,0x00,0x00,0x04,0x12,0x05,0x9a,0x00,0x1b,0x00,0x9d,0x40,0x4f,0x0f,0x1b,0x01,0x00,0x14,0x01,0x10,0x05,0x01,0x08,0x0b,0x00,0x4d,0x01,0x04,0x00,0x04,0x12,0x0f,0x13,0x0f,0x04,0x01,0x0f,0x17,0x12,0x12,0x0f,0x9a,0x59,0x08,0x05,0x0b,0x0e,0x0e,0x0b, +0x9a,0x59,0x04,0x01,0x0f,0x12,0x0e,0x12,0x0e,0x09,0x14,0x00,0x03,0x09,0x12,0x03,0x03,0x07,0x0e,0x09,0x0a,0x0c,0x42,0x10,0x0c,0x0c,0x0a,0x13,0x00,0x0e,0x09,0x0a,0x13,0x42,0x13,0x13,0x05,0x0e,0x17,0x03,0x09,0x7e,0x0a,0xb8,0xff,0xe0,0xb6,0x0c,0x06,0x4d,0x20,0x0a,0x01,0x0a,0x2f,0x5d,0x2b,0xe1,0x17,0x39,0x33,0x2f,0x2b,0x01, +0x10,0xe0,0x11,0x12,0x39,0x18,0x2f,0xc4,0x2b,0x01,0x10,0xf2,0xc2,0x18,0x2f,0x00,0x3f,0x3f,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x2b,0x11,0x12,0x00,0x39,0x39,0x2b,0x11,0x00,0x33,0x12,0x39,0x39,0x31,0x30,0x10,0x87,0x05,0xc0,0x10,0x87,0xc0,0x01,0x2b,0x5f,0x5e,0x5d,0x5d,0x01,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21, +0x11,0x23,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x01,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x04,0x12,0xfe,0x9c,0x01,0x1d,0xfe,0xb2,0x01,0x4e,0xfe,0xb2,0xa4,0xfe,0xa8,0x01,0x58,0xfe,0xa8,0x01,0x23,0xfe,0xa0,0xc0,0xfa,0x1c,0x13,0x04,0x0d,0x24,0xfc,0x05,0x9a,0xfd,0x70,0x8b,0xcf,0x8b,0xfe,0xdb,0x01,0x25,0x8b,0xcf,0x8b, +0x02,0x90,0xfd,0xfe,0x3a,0x35,0x2a,0x4b,0x01,0xfc,0x00,0x01,0x00,0xa6,0xfe,0x74,0x04,0x18,0x04,0x00,0x00,0x18,0x00,0x5d,0x40,0x13,0x0f,0x08,0x01,0x10,0x05,0x03,0x14,0x00,0x89,0x01,0x01,0x17,0x8a,0x14,0x10,0x0d,0x06,0x4d,0x14,0xb8,0xff,0xfa,0xb7,0x0b,0x06,0x4d,0x14,0x0e,0x0a,0x8a,0x0b,0xb8,0xff,0xf8,0x40,0x16,0x0d,0x06, +0x4d,0x0b,0x0c,0x16,0x0f,0x0b,0x08,0x04,0x11,0x06,0x11,0x99,0x59,0x06,0x16,0x00,0x15,0x2f,0x1a,0x01,0x5d,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x33,0x18,0x2f,0x3f,0xc4,0x01,0x2f,0x2b,0xe1,0x32,0x2f,0x2b,0x2b,0xe1,0x39,0x2f,0xe1,0x12,0x39,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x21,0x23,0x26,0x35,0x23,0x06,0x23,0x22,0x27,0x23,0x11, +0x23,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x04,0x18,0xaa,0x17,0x05,0x54,0xc3,0xa7,0x47,0x04,0xa3,0xa3,0x8a,0x6f,0x79,0x97,0xa6,0x48,0x60,0xbf,0x7b,0xfe,0x10,0x05,0x8c,0xfd,0x8e,0x7f,0x96,0xac,0x91,0x02,0x4a,0xfd,0x09,0xbc,0x00,0x02,0x00,0x4e,0xff,0xe8,0x04,0x04,0x05,0xd1,0x00,0x16,0x00,0x21, +0x00,0x6e,0x40,0x0f,0x06,0x1a,0x01,0x0f,0x02,0x01,0x10,0x04,0x05,0x05,0x12,0x17,0x0b,0x8a,0x01,0xb8,0xff,0xe0,0x40,0x09,0x0c,0x06,0x4d,0x01,0x01,0x23,0x1c,0x89,0x12,0xb8,0xff,0xe8,0x40,0x20,0x0c,0x06,0x4d,0x12,0x17,0x01,0x19,0x15,0x19,0x9a,0x59,0x15,0x10,0x0f,0x05,0x01,0x0d,0x03,0x05,0x05,0x03,0x08,0x03,0x9a,0x59,0x08, +0x0f,0x1f,0x9a,0x59,0x0f,0x13,0x00,0x3f,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x33,0x01,0x18,0x2f,0x2b,0xe1,0x12,0x39,0x2f,0x2b,0xe1,0x33,0x12,0x39,0x19,0x2f,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x01,0x33,0x12,0x21,0x22,0x07,0x37,0x36,0x33,0x32,0x12,0x11,0x14,0x02,0x00,0x23, +0x22,0x26,0x35,0x10,0x00,0x33,0x32,0x13,0x26,0x23,0x22,0x02,0x15,0x14,0x16,0x33,0x32,0x12,0x03,0x5e,0x04,0x1a,0xfe,0xdc,0x7b,0x7b,0x27,0x77,0x81,0xc2,0xc1,0x82,0xfe,0xf2,0xb8,0xa6,0xc8,0x01,0x27,0xe3,0xb2,0x48,0x3a,0xac,0xa0,0xd6,0x71,0x61,0x97,0xd8,0x03,0x68,0x01,0xdc,0x50,0x9c,0x41,0xfe,0xf8,0xfe,0xdd,0xdd,0xfe,0x20, +0xfe,0xff,0xd5,0xb5,0x01,0x10,0x01,0x8e,0xfe,0xa4,0xd1,0xfe,0xc6,0xd2,0x7a,0x8d,0x01,0x3f,0x00,0x01,0x00,0x33,0xfe,0x2b,0x04,0xba,0x05,0x9a,0x00,0x0b,0x00,0x46,0x40,0x25,0x03,0x0a,0x01,0x04,0x09,0x01,0x03,0x08,0x01,0x10,0x03,0x06,0x00,0x00,0x0d,0x08,0x04,0x0a,0x02,0x04,0x06,0x07,0x06,0x07,0x91,0x59,0x06,0x03,0x02,0x00, +0x0b,0x00,0x0b,0x91,0x59,0x00,0x1b,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x01,0x18,0x2f,0x33,0xc6,0x32,0x12,0x39,0x2f,0xc4,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x01,0x21,0x35,0x01,0x01,0x35,0x21,0x15,0x21,0x01,0x01,0x21,0x04,0xba,0xfb,0x79,0x02,0xa4,0xfd,0x81,0x04,0x3a,0xfc,0xbc,0x02,0x52, +0xfd,0x8f,0x03,0x8b,0xfe,0x2b,0x4e,0x03,0x73,0x03,0x54,0x5a,0x9a,0xfc,0xf0,0xfc,0xd4,0x00,0x00,0x01,0x00,0xbc,0xfe,0x2b,0x05,0x52,0x05,0x9a,0x00,0x07,0x00,0x3b,0x40,0x0d,0x00,0x7e,0x01,0x18,0x0d,0x06,0x4d,0x01,0x01,0x09,0x04,0x7e,0x05,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf8,0x40,0x0d,0x0c,0x06,0x4d,0x05, +0x07,0x02,0x91,0x59,0x07,0x03,0x04,0x00,0x1b,0x00,0x3f,0xc4,0x3f,0x2b,0x01,0x18,0x2f,0x2b,0x2b,0xe1,0x12,0x39,0x2f,0x2b,0xe1,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x05,0x52,0xa8,0xfc,0xba,0xa8,0x04,0x96,0xfe,0x2b,0x06,0xd5,0xf9,0x2b,0x07,0x6f,0x00,0x00,0x01,0x00,0xbe,0xfe,0x1a,0x03,0x94,0x06,0x02,0x00,0x15, +0x00,0x43,0x40,0x0a,0x00,0x0e,0x05,0x8a,0x0f,0x0f,0x0b,0x42,0x0b,0x0f,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xe0,0x40,0x13,0x0b,0x06,0x4d,0x0f,0x0f,0x17,0x16,0x13,0x02,0x9a,0x59,0x13,0x01,0x08,0x0d,0x9a,0x59,0x08,0x1c,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0x2b,0x2b,0xc6,0x2b,0x01, +0x10,0xf1,0xe2,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x03,0x94,0x30,0x3f,0xaa,0xbb,0x8b,0x4b,0x2c,0x30,0x3d,0xac,0xbb,0x8a,0x4c,0x2c,0x05,0x5c,0x1b,0xd9,0xfa,0xd6,0x9e,0xbc,0x13,0x93,0x1a,0xd9,0x05,0x27,0xa0,0xbc,0x12,0x00,0x02,0x00,0x52, +0x02,0xba,0x02,0xb0,0x05,0xb0,0x00,0x15,0x00,0x1f,0x00,0x6e,0x40,0x42,0x00,0x13,0x01,0x0f,0x06,0x01,0x10,0x05,0x0b,0x16,0x54,0x59,0x00,0x0b,0x10,0x0b,0x20,0x0b,0x03,0x09,0x03,0x0b,0x0b,0x12,0x1c,0x00,0x24,0x02,0x1c,0x05,0x1c,0x54,0x59,0x05,0x25,0x0f,0x30,0x0d,0x11,0x48,0x0f,0x0f,0x0d,0x12,0x0d,0x52,0x59,0x12,0x04,0x0b, +0x02,0x1f,0xc2,0xc0,0x00,0x01,0xd0,0x00,0x01,0x00,0x21,0x0f,0x0f,0x19,0xc2,0x08,0x2f,0xe1,0x39,0x2f,0x10,0xde,0x5d,0x71,0xe1,0x32,0x32,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x11,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5d,0x01,0x23,0x35,0x23,0x06,0x23, +0x22,0x26,0x35,0x34,0x37,0x37,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x07,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x02,0xb0,0x81,0x04,0x4f,0x98,0x6d,0x85,0xf8,0xe5,0x97,0x88,0x76,0x6f,0x9b,0x7e,0x8e,0x81,0xb4,0xa8,0x4d,0x40,0x52,0x7d,0x02,0xcd,0x64,0x77,0x77,0x5d,0xca,0x21,0x1f,0xa8,0x56,0x80,0x46,0x90, +0x82,0x6b,0x19,0x17,0x6f,0x33,0x40,0x7a,0x55,0x00,0x00,0x02,0x00,0x4e,0x02,0xb8,0x03,0x23,0x05,0xae,0x00,0x0b,0x00,0x17,0x00,0x2b,0x40,0x1a,0x00,0x12,0x52,0x59,0x00,0x25,0x06,0x0c,0x52,0x59,0x06,0x04,0x15,0xc8,0x90,0x09,0xb0,0x09,0xc0,0x09,0x03,0x09,0x19,0x0f,0xc8,0x03,0x2f,0xe1,0x10,0xde,0x71,0xe1,0x00,0x3f,0x2b,0x00, +0x18,0x3f,0x2b,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0xb4,0xa7,0xbf,0xcd,0xa9,0xa3,0xbc,0xc7,0xa0,0x6a,0x7d,0x77,0x6e,0x69,0x7b,0x79,0x02,0xb8,0xc9,0xac,0xb5,0xcc,0xc7,0xab,0xb2,0xd2,0x02,0x88,0x90,0x7f,0x7c,0x8c,0x8f,0x7b, +0x7e,0x8f,0x00,0x01,0x00,0x64,0x00,0x00,0x05,0xa9,0x05,0xb2,0x00,0x1b,0x00,0xc9,0x40,0x0c,0x59,0x19,0x01,0x59,0x11,0x01,0x10,0x10,0x0c,0x00,0x4d,0x1a,0xb8,0xff,0xf0,0x40,0x27,0x0c,0x00,0x4d,0x0c,0x08,0x0c,0x00,0x4d,0x02,0x08,0x0c,0x00,0x4d,0x1a,0x18,0x02,0x10,0x12,0x0c,0x02,0x0c,0x02,0x04,0x0a,0x1b,0x1b,0x18,0x08,0x0d, +0x06,0x4d,0x18,0x08,0x0c,0x06,0x4d,0x18,0x7d,0x04,0xb8,0xff,0xf4,0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x04,0xb8,0xff,0xdc,0x40,0x40,0x0b,0x06,0x4d,0x00,0x04,0x10,0x04,0x02,0x0b,0x03,0x04,0x04,0x1d,0x0a,0x08,0x0d,0x06,0x4d,0x0a,0x08,0x0c,0x06,0x4d,0x0a,0x7d,0x0f,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08, +0x0c,0x06,0x4d,0x12,0x12,0x0b,0x06,0x4d,0x12,0x15,0x07,0x99,0x59,0x15,0x04,0x02,0x0c,0x0e,0x10,0x04,0x00,0x1b,0x00,0x1b,0x99,0x59,0x00,0x12,0x2f,0x1d,0x01,0x5d,0x00,0x3f,0x2b,0x11,0x12,0x00,0x17,0x39,0x18,0x3f,0x2b,0x01,0x18,0x2f,0x2b,0x2b,0x2b,0xc4,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x2b,0x2b,0xf1,0x2b, +0x2b,0xc1,0x2f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x11,0x12,0x39,0x31,0x30,0x00,0x2b,0x2b,0x01,0x2b,0x2b,0x00,0x5d,0x5d,0x21,0x21,0x35,0x24,0x11,0x34,0x00,0x23,0x22,0x00,0x15,0x10,0x01,0x15,0x21,0x35,0x05,0x24,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x05,0x25,0x05,0xa9,0xfd,0xf9,0x01,0x59,0xfe,0xea,0xdb,0xde,0xfe, +0xe6,0x01,0x5a,0xfd,0xf8,0x01,0x5c,0xfe,0xa4,0x01,0x72,0x01,0x2e,0x01,0x35,0x01,0x70,0xfe,0xa5,0x01,0x5b,0x93,0xff,0x01,0x7a,0xf5,0x01,0x1d,0xfe,0xe4,0xf5,0xfe,0x86,0xff,0x00,0x93,0x94,0x01,0xeb,0x01,0x93,0x01,0x39,0x01,0x68,0xfe,0x9b,0xfe,0xc5,0xfe,0x6e,0xed,0x01,0x00,0x00,0x03,0x00,0x5a,0xff,0xe8,0x06,0x56,0x04,0x18, +0x00,0x23,0x00,0x2a,0x00,0x35,0x00,0xcd,0x40,0x21,0x56,0x19,0x01,0x51,0x12,0x01,0x59,0x07,0x01,0x58,0x1f,0x01,0x58,0x0a,0x01,0x0f,0x40,0x0b,0x00,0x4d,0x5f,0x07,0x01,0x07,0x07,0x00,0x83,0x24,0x08,0x0c,0x06,0x4d,0x24,0xb8,0xff,0xc0,0x40,0x59,0x0b,0x0c,0x00,0x4c,0x24,0x24,0x37,0x0b,0x14,0x1d,0x2a,0x04,0x01,0x84,0x2b,0x2b, +0x37,0x11,0x00,0x18,0x01,0x18,0x18,0x30,0x83,0x11,0x10,0x0c,0x06,0x4d,0x0f,0x11,0x01,0x0b,0x03,0x11,0x2c,0x14,0x00,0x24,0x24,0x00,0x95,0x59,0x24,0x24,0x04,0x18,0x40,0x09,0x0c,0x48,0x18,0x18,0x16,0x1b,0x16,0x20,0x1e,0x27,0x20,0x27,0x95,0x59,0x20,0x10,0x00,0x06,0x10,0x06,0x20,0x06,0x03,0x0c,0x03,0x06,0x06,0x01,0x0b,0x33, +0x0e,0x09,0x04,0x09,0x04,0x95,0x59,0x09,0x16,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x33,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x12,0x39,0x39,0x18,0x2f,0x33,0x2f,0x2b,0x11,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x01,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0xe1,0x39,0x2f,0x5d,0x11,0x12,0x39,0x2f,0xe1,0x17, +0x39,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x32,0x2f,0x5d,0x30,0x31,0x00,0x2b,0x01,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x27,0x23,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x33,0x36,0x33,0x32,0x12,0x15,0x27,0x26,0x26,0x23,0x22,0x06,0x07, +0x07,0x35,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x06,0x56,0xfd,0x2b,0x03,0xb0,0x99,0xb1,0x90,0x84,0xe2,0xfe,0xf2,0x71,0x04,0x91,0xf2,0x99,0xaf,0x01,0x7f,0x01,0x06,0xd7,0xaf,0x9b,0x94,0xc8,0xe8,0x44,0x04,0x74,0xf0,0xca,0xde,0xa8,0x02,0x85,0x77,0x74,0xa6,0x13,0xa4,0xcb,0x8b,0x89,0x6a,0x5a,0x77,0xa4,0x01,0xd7,0xab, +0xba,0x72,0x9a,0x62,0xe5,0xe5,0xa1,0x87,0x01,0x2c,0x18,0x10,0x01,0x2a,0x7a,0xa4,0x60,0xc8,0xc8,0xfe,0xfb,0xe8,0x37,0x90,0x9c,0xa4,0x88,0xc8,0x3f,0x0c,0x08,0x52,0x5f,0x49,0x59,0xa9,0x00,0x03,0x00,0x31,0xff,0xae,0x04,0x96,0x04,0x66,0x00,0x13,0x00,0x1b,0x00,0x23,0x00,0xd4,0xb6,0x58,0x1c,0x01,0x57,0x1b,0x01,0x1d,0xb8,0xff, +0xf0,0x40,0x2b,0x0b,0x0c,0x00,0x4c,0x1d,0x14,0x22,0x19,0x0b,0x08,0x12,0x01,0x04,0x03,0x0d,0x13,0x00,0x00,0x03,0x06,0x0d,0x06,0x4d,0x03,0x06,0x0c,0x06,0x4d,0x03,0x06,0x0b,0x06,0x4d,0x03,0x83,0x00,0x22,0x10,0x22,0x02,0x0b,0x03,0x22,0xb8,0xff,0xec,0xb3,0x0d,0x06,0x4d,0x22,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x22,0xb8,0xff, +0xde,0x40,0x47,0x0b,0x06,0x4d,0x22,0x22,0x25,0x19,0x07,0x0d,0x06,0x4d,0x19,0x0a,0x0c,0x06,0x4d,0x19,0x83,0x09,0x0a,0x0d,0x11,0x0d,0x06,0x4d,0x0d,0x0c,0x0c,0x06,0x4d,0x0d,0x19,0x0b,0x06,0x4d,0x0d,0x14,0x1b,0x1c,0x1d,0x04,0x1f,0x16,0x01,0x08,0x0b,0x12,0x04,0x10,0x0a,0x09,0x06,0x00,0x13,0x10,0x40,0x10,0x16,0x95,0x59,0x10, +0x10,0x06,0x1f,0x95,0x59,0x06,0x16,0x2f,0x25,0x01,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xce,0x32,0x10,0xce,0x32,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x01,0x2f,0x2b,0x2b,0x2b,0xce,0x32,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5f,0x5e,0x5d,0xf1,0x2b,0x2b,0x2b,0xca,0x2f,0x32,0x11,0x12,0x17,0x39, +0x11,0x12,0x39,0x39,0x31,0x30,0x00,0x2b,0x5d,0x5d,0x01,0x07,0x16,0x15,0x14,0x00,0x23,0x22,0x27,0x07,0x27,0x37,0x26,0x35,0x10,0x00,0x33,0x32,0x17,0x37,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x01,0x01,0x16,0x33,0x32,0x36,0x35,0x34,0x04,0x96,0xa8,0x62,0xfe,0xea,0xe8,0xc0,0x7e,0x91,0x52,0x95,0x66,0x01,0x1c,0xf0,0xb8,0x7c, +0xa2,0xfe,0xf3,0x4f,0x88,0x9f,0xb7,0x32,0x02,0x41,0xfe,0x04,0x57,0x86,0xa3,0xab,0x04,0x18,0xb4,0x8a,0xd0,0xfc,0xfe,0xda,0x66,0xa0,0x4e,0xa4,0x89,0xcb,0x01,0x02,0x01,0x22,0x62,0xb0,0xfe,0xde,0x4a,0xd7,0xbd,0x84,0x5c,0x01,0xcc,0xfd,0xd8,0x4c,0xd0,0xbe,0x86,0x00,0x00,0x02,0x00,0x8f,0xfe,0x52,0x03,0x3d,0x04,0x16,0x00,0x23, +0x00,0x33,0x00,0x45,0x40,0x25,0x0f,0x12,0x01,0x10,0x05,0x11,0x0f,0x14,0x0f,0x95,0x59,0x14,0x00,0x2c,0x24,0x2c,0xb0,0x5b,0x24,0x10,0x20,0xef,0x03,0x30,0xaf,0x70,0x28,0x01,0x28,0x28,0x11,0x19,0x84,0x0a,0x0a,0x34,0x11,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x5d,0xe1,0xd4,0xe1,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x2f,0x2b, +0x00,0x18,0x10,0xc6,0x31,0x30,0x5f,0x5e,0x5d,0x01,0x16,0x16,0x15,0x14,0x0e,0x04,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x35,0x34,0x26,0x27,0x13,0x32,0x17,0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x02,0x71,0x09,0x0e,0x33,0x4c,0x5a,0x4c,0x33,0x25,0x40, +0x54,0x2f,0xa9,0x7c,0x99,0xa4,0x4c,0x86,0x64,0x3b,0x34,0x4f,0x5c,0x4f,0x34,0x16,0x0b,0x47,0x2c,0x22,0x21,0x21,0x21,0x2d,0x2d,0x21,0x21,0x21,0x22,0x02,0x76,0x1a,0x53,0x29,0x40,0x67,0x5a,0x53,0x55,0x5d,0x38,0x30,0x4a,0x32,0x19,0x85,0xb0,0x60,0x28,0x4f,0x76,0x4e,0x4a,0x74,0x61,0x54,0x53,0x5a,0x36,0x2e,0x4b,0x1a,0x01,0xa0, +0x20,0x1f,0x2f,0x2e,0x20,0x21,0x21,0x20,0x2e,0x2f,0x1f,0x20,0x00,0x02,0x00,0xb4,0xfe,0x6a,0x01,0x92,0x04,0x16,0x00,0x0b,0x00,0x0f,0x00,0x3d,0x40,0x12,0x0d,0x0c,0x0e,0x0f,0xff,0x3a,0x0c,0x7d,0x0d,0x0d,0x09,0xaf,0x0f,0x03,0x01,0x10,0x03,0x03,0xb8,0xff,0xe8,0x40,0x0e,0x0d,0x06,0x4d,0x03,0x0e,0x00,0x40,0x06,0x00,0xb0,0x5b, +0x06,0x10,0x0c,0x00,0x2f,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xce,0x01,0x2f,0x2b,0x5f,0x5e,0x5d,0xe1,0x39,0x2f,0xe1,0x2b,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x23,0x13,0x33,0x01,0x23,0x2e,0x41,0x41,0x2e,0x2d,0x42,0x42,0x2b,0xac,0x13,0x86,0x03,0x3a,0x40,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x40, +0xfb,0x30,0x04,0x06,0x00,0x01,0x00,0xe8,0x00,0xfe,0x04,0x94,0x03,0x31,0x00,0x05,0x00,0x2c,0xb2,0x01,0xbd,0x00,0xb8,0xff,0xc8,0xb4,0x0c,0x06,0x4d,0x00,0x03,0xb8,0xff,0xe0,0x40,0x0b,0x0c,0x06,0x4d,0x03,0x00,0x03,0x04,0x03,0xbe,0x59,0x04,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc4,0x01,0x2f,0x2b,0x2f,0x2b,0xe1,0x31,0x30,0x25,0x23, +0x11,0x21,0x35,0x21,0x04,0x94,0x84,0xfc,0xd8,0x03,0xac,0xfe,0x01,0xae,0x85,0x00,0x00,0x01,0x00,0x7b,0x00,0x00,0x04,0x5a,0x05,0xec,0x00,0x08,0x00,0x41,0x40,0x22,0x0a,0x03,0x01,0x0b,0x02,0x01,0x03,0x0f,0x01,0x01,0x10,0x05,0x01,0x02,0x00,0x03,0x03,0x04,0x08,0x00,0x04,0x07,0x01,0x05,0x04,0xd9,0x59,0x05,0x05,0x01,0x00,0x00, +0x01,0x12,0x00,0x3f,0x3f,0x11,0x39,0x2f,0x2b,0x11,0x00,0x33,0x01,0x18,0x2f,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5f,0x5d,0x5d,0x01,0x01,0x23,0x01,0x23,0x35,0x21,0x01,0x01,0x04,0x5a,0xfe,0x7b,0x71,0xfe,0xc1,0xaa,0x01,0x08,0x01,0x13,0x01,0x4e,0x05,0xec,0xfa,0x14,0x02,0xee,0x78,0xfd,0x6b,0x05, +0x1b,0x00,0x00,0x01,0x00,0x5e,0xfe,0xea,0x03,0xb8,0x05,0x9a,0x00,0x1c,0x00,0x89,0x40,0x12,0x79,0x13,0x01,0x79,0x11,0x01,0x77,0x09,0x01,0x77,0x03,0x01,0x0a,0x30,0x0c,0x00,0x4d,0x04,0xb8,0xff,0xf0,0x40,0x3c,0x0c,0x00,0x4d,0x0f,0x06,0x01,0x09,0x06,0x06,0x04,0x08,0x05,0x04,0x03,0x09,0x13,0x16,0x17,0x09,0x04,0x12,0x00,0x14, +0x20,0x14,0x30,0x14,0x03,0x0a,0x03,0x14,0x14,0x12,0x12,0x0d,0x1c,0x0d,0x08,0x05,0x13,0x16,0x16,0x13,0x95,0x59,0x16,0x16,0x1d,0x1a,0x1a,0x02,0x95,0x59,0x1a,0x03,0x0b,0x10,0x95,0x59,0x0b,0x00,0x2f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x01,0x18,0x2f,0x2f,0x12,0x39,0x11,0x33, +0x2f,0x5f,0x5e,0x5d,0x11,0x17,0x33,0x11,0x17,0x33,0x11,0x33,0x2f,0x5e,0x5d,0x31,0x30,0x2b,0x00,0x2b,0x01,0x5d,0x5d,0x5d,0x5d,0x01,0x26,0x23,0x22,0x07,0x07,0x33,0x15,0x23,0x03,0x02,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x13,0x23,0x35,0x33,0x37,0x36,0x36,0x33,0x32,0x17,0x03,0xb8,0x30,0x3c,0x92,0x18,0x1f,0xa6,0xbb,0x5a, +0x3a,0xfe,0xde,0x1f,0x3b,0x24,0x32,0x96,0x28,0x5b,0x67,0x7c,0x1c,0x11,0xaf,0x86,0x40,0x34,0x04,0xf2,0x1c,0xa0,0xd0,0x8a,0xfd,0x78,0xfe,0x5e,0x10,0x8f,0x15,0x01,0x24,0x02,0x7c,0x8a,0xdb,0x83,0x9e,0x13,0x00,0x02,0x00,0xd1,0x00,0xf0,0x04,0xaa,0x03,0xc0,0x00,0x14,0x00,0x29,0x00,0x97,0xb9,0x00,0x16,0xff,0xe0,0xb3,0x09,0x0c, +0x48,0x01,0xb8,0xff,0xe0,0x40,0x3a,0x09,0x0c,0x48,0x20,0x20,0x09,0x0c,0x48,0x0b,0x20,0x09,0x0c,0x48,0x1e,0x18,0x18,0x26,0xbe,0x59,0x18,0x1c,0x40,0x22,0x1c,0xbe,0x59,0x15,0x00,0x22,0x01,0x0c,0x03,0x22,0x0d,0x09,0x03,0x03,0x11,0xbe,0x59,0x03,0x07,0x40,0x0d,0x07,0xbe,0x59,0x14,0x00,0x0d,0xa0,0x0d,0xb0,0x0d,0x03,0x0c,0x03, +0x0d,0xb8,0xff,0xc0,0x40,0x14,0x0e,0x11,0x48,0x0d,0x29,0x15,0x14,0xbd,0x00,0x1f,0x1e,0x09,0xbd,0x0a,0x2a,0x2b,0x0a,0x00,0xff,0x3a,0x2b,0x01,0x10,0xe1,0x39,0x39,0x10,0xe1,0x39,0x39,0x00,0x18,0x2f,0x2b,0x5f,0x5e,0x5d,0xc4,0x2b,0x00,0x1a,0x18,0x10,0xcc,0x2b,0x00,0x10,0x18,0xc4,0x10,0xd4,0x5f,0x5e,0x5d,0xc4,0x2b,0x00,0x1a, +0x18,0x10,0xcc,0x2b,0x00,0x10,0x18,0xc4,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x01,0x06,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x37,0x13,0x06,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x37,0x04,0xaa,0x07,0x93,0x7e,0x6d,0x9c, +0x61,0x3e,0x8c,0x06,0x87,0x05,0x95,0x7f,0x6a,0x81,0x84,0x41,0x3d,0x4a,0x02,0x87,0x07,0x93,0x7e,0x6d,0x9c,0x5e,0x41,0x8c,0x06,0x87,0x05,0x95,0x7f,0x6a,0x81,0x84,0x41,0x3d,0x4a,0x02,0x03,0xc0,0x92,0xa2,0x6c,0x44,0xb0,0x90,0xa4,0x58,0x5a,0x62,0x50,0xfe,0x65,0x93,0xa2,0x6c,0x42,0xae,0x8f,0xa6,0x58,0x5b,0x64,0x4f,0x00,0x02, +0x00,0x33,0x00,0x00,0x04,0xf8,0x05,0x9a,0x00,0x05,0x00,0x0d,0x00,0x3f,0x40,0x22,0x00,0x0d,0x01,0x00,0x0c,0x01,0x0f,0x07,0x01,0x0f,0x06,0x01,0x10,0x04,0x0d,0x06,0x02,0x05,0x05,0x0f,0x02,0x09,0x03,0x03,0x05,0x02,0x01,0x0d,0x01,0x0d,0x99,0x59,0x01,0x12,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0x33,0x01,0x2f,0x12, +0x39,0x2f,0x12,0x39,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x35,0x01,0x33,0x01,0x27,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x04,0xf8,0xfb,0x3b,0x02,0x09,0xae,0x02,0x0e,0xd7,0xfe,0x97,0x21,0x05,0x04,0x06,0x22,0xfe,0xa0,0x4c,0x05,0x4e,0xfa,0xb2,0x4c,0x03,0xc8,0x58,0x36,0x30,0x5e,0xfc,0x38,0x00,0x02,0x00,0x5c, +0x00,0xc8,0x03,0xb4,0x03,0x70,0x00,0x05,0x00,0x0b,0x00,0x2b,0x40,0x15,0x06,0x0a,0x00,0x04,0x00,0x00,0x04,0xf0,0x05,0x02,0x08,0x80,0x0a,0x0a,0x06,0xf0,0x0b,0x0f,0x08,0x01,0x08,0x2f,0x5d,0x33,0xf1,0xc0,0x2f,0x1a,0x10,0xdc,0x32,0xf1,0xc2,0x2f,0x00,0x2f,0xc6,0x39,0x39,0x31,0x30,0x25,0x23,0x01,0x01,0x33,0x01,0x03,0x23,0x01, +0x01,0x33,0x01,0x03,0xb2,0xa8,0xfe,0xd5,0x01,0x2b,0xaa,0xfe,0xcd,0x54,0xa6,0xfe,0xd5,0x01,0x2b,0xa6,0xfe,0xd1,0xc8,0x01,0x50,0x01,0x58,0xfe,0xa8,0xfe,0xb0,0x01,0x50,0x01,0x58,0xfe,0xa8,0x00,0x00,0x02,0x00,0x5a,0x00,0xc8,0x03,0xb4,0x03,0x70,0x00,0x05,0x00,0x0b,0x00,0x2b,0x40,0x17,0x07,0x0b,0x02,0x04,0x03,0x00,0xf0,0x04, +0x02,0x80,0x09,0x06,0xf0,0x0a,0x50,0x08,0x70,0x08,0x02,0x2f,0x08,0x01,0x08,0x2f,0x5d,0x5d,0xc4,0xe1,0x32,0x1a,0xdc,0xc4,0xe1,0x32,0x00,0x2f,0xc4,0x39,0x39,0x31,0x30,0x01,0x01,0x23,0x01,0x01,0x33,0x03,0x01,0x23,0x01,0x01,0x33,0x03,0xb4,0xfe,0xd3,0xa5,0x01,0x2e,0xfe,0xd2,0xa5,0x58,0xfe,0xd5,0xaa,0x01,0x34,0xfe,0xcc,0xaa, +0x02,0x1a,0xfe,0xae,0x01,0x52,0x01,0x56,0xfe,0xaa,0xfe,0xae,0x01,0x52,0x01,0x56,0x00,0x03,0x00,0x8c,0xff,0xee,0x05,0x52,0x00,0xcd,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x56,0xb2,0x03,0xaf,0x09,0xb8,0xff,0xfd,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfb,0x40,0x27,0x0b,0x06,0x4d,0x09,0x0e,0x15,0x0f,0x1b,0x42,0x21,0xaf,0x1b,0x1b, +0x24,0x15,0xaf,0x0f,0x0f,0x25,0x24,0x0c,0x12,0x18,0x1e,0x04,0x00,0x06,0x00,0x06,0xb0,0x5b,0x00,0x13,0x40,0x25,0x01,0x2f,0x25,0x01,0x5d,0x5d,0x00,0x3f,0x2b,0x11,0x12,0x00,0x17,0x39,0x11,0x12,0x01,0x39,0x18,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0xe1,0x31,0x30,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32, +0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x04,0xe4,0x2e,0x3f,0x3f,0x2e,0x2d,0x41,0x41,0xfd,0xdd,0x2e,0x41,0x41,0x2e,0x2d,0x41,0x41,0xfd,0xdd,0x2e,0x3e,0x3e,0x2e,0x2d,0x41,0x40,0x12,0x40,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x40, +0x40,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x40,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x66,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x1f,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x23,0x11,0x10,0x06,0x07,0x3e,0x02,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x0b,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x2d,0x01,0x59,0x00,0x16,0xb9,0x00,0x02,0xff,0xfd,0x40,0x09,0x1a,0x10,0x06,0x07,0x25,0x02,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x0a,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07, +0x00,0xd8,0x01,0xab,0x01,0x58,0x00,0x13,0x40,0x0b,0x02,0x0a,0x22,0x18,0x03,0x09,0x25,0x02,0x22,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x07,0x12,0x05,0xb2,0x00,0x18,0x00,0x23,0x00,0xb7,0x40,0x1d,0x06,0x18,0x0b,0x00,0x4d,0x14,0x11,0x00,0x00,0x25,0x13,0x17,0x08,0x0d,0x06,0x4d,0x17,0x08, +0x0c,0x06,0x4d,0x17,0x08,0x0b,0x06,0x4d,0x17,0x7e,0x19,0xb8,0xff,0xd0,0xb3,0x0d,0x06,0x4d,0x19,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x19,0xb8,0xff,0xd8,0x40,0x4f,0x0b,0x06,0x4d,0x00,0x19,0x01,0x0b,0x03,0x19,0x19,0x25,0x1f,0x08,0x0d,0x06,0x4d,0x1f,0x08,0x0c,0x06,0x4d,0x1f,0x08,0x0b,0x06,0x4d,0x1f,0x7d,0x08,0x10,0x0d,0x06, +0x4d,0x08,0x10,0x0c,0x06,0x4d,0x08,0x18,0x0b,0x06,0x4d,0x08,0x14,0x15,0x91,0x59,0x14,0x10,0x00,0x14,0x91,0x2b,0x30,0x0b,0x1c,0x91,0x59,0x0b,0x04,0x10,0x11,0x91,0x59,0x10,0x03,0x05,0x22,0x91,0x59,0x05,0x13,0x00,0x18,0x91,0x59,0x00,0x12,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00, +0x18,0x2f,0x2b,0x01,0x18,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0xc4,0xc4,0x31,0x30,0x2b,0x21,0x21,0x22,0x07,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x16,0x33,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x25,0x11,0x26,0x23, +0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x07,0x12,0xfd,0x30,0x10,0x7a,0x62,0x54,0xfe,0xc8,0xfe,0x94,0x01,0x7b,0x01,0x45,0x5a,0x58,0x70,0x02,0x02,0xb0,0xfd,0xd0,0x02,0x06,0xfd,0xfa,0x02,0x50,0xfd,0x08,0xa0,0x6c,0xe5,0xfe,0xe5,0x01,0x17,0xe3,0x74,0x0e,0x0a,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0x0a,0x0e,0x98,0xfe,0x23,0x97, +0xfe,0x0a,0x08,0x04,0x5e,0x1c,0xfe,0xb4,0xfe,0xfd,0xfe,0xfe,0xfe,0xb6,0x00,0x03,0x00,0x60,0xff,0xe8,0x07,0x21,0x04,0x18,0x00,0x1c,0x00,0x23,0x00,0x2f,0x00,0xfb,0xb3,0x58,0x07,0x01,0x0b,0xb8,0xff,0xe8,0xb3,0x0c,0x00,0x4d,0x02,0xb8,0xff,0xe8,0x40,0x0d,0x0c,0x00,0x4d,0x06,0x40,0x0f,0x12,0x48,0x06,0x06,0x1c,0x83,0x1d,0xb8, +0xff,0xc0,0xb3,0x0c,0x00,0x4d,0x1d,0xb8,0xff,0xd0,0xb3,0x0c,0x01,0x4d,0x1d,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x1d,0xb8,0xff,0xee,0x40,0x1b,0x0b,0x06,0x4d,0x1d,0x40,0x0c,0x00,0x4d,0x00,0x1d,0x01,0x0b,0x1d,0x1d,0x31,0x0b,0x17,0x23,0x03,0x01,0x08,0x0b,0x06,0x4d,0x01,0x84,0x2d,0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x2d,0xb8, +0xff,0xc0,0x40,0x51,0x0c,0x00,0x4d,0x2d,0x2d,0x31,0x27,0x0a,0x0d,0x06,0x4d,0x27,0x0a,0x0c,0x06,0x4d,0x27,0x0a,0x0b,0x06,0x4d,0x27,0x83,0x11,0x10,0x0d,0x06,0x4d,0x11,0x0d,0x0c,0x06,0x4d,0x11,0x1f,0x0b,0x06,0x4d,0x11,0x00,0x06,0x10,0x06,0x20,0x06,0x03,0x0c,0x03,0x06,0x06,0x01,0x04,0x1d,0x00,0x95,0x59,0x1d,0x1d,0x04,0x17, +0x24,0x14,0x20,0x19,0x19,0x20,0x95,0x59,0x19,0x10,0x0b,0x2a,0x0e,0x09,0x04,0x09,0x04,0x95,0x59,0x09,0x16,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x33,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x32,0x12,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x01,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39, +0x2f,0x2b,0x2b,0xe1,0x2b,0x17,0x39,0x12,0x39,0x2f,0x5e,0x5d,0x2b,0x2b,0x2b,0x2b,0x2b,0xf1,0xc0,0x2f,0x2b,0x31,0x30,0x00,0x2b,0x2b,0x5d,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x27,0x23,0x06,0x21,0x22,0x00,0x35,0x10,0x00,0x33,0x20,0x17,0x33,0x36,0x21,0x32,0x12,0x15,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x01, +0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x07,0x21,0xfd,0x2b,0x03,0xb1,0x9a,0xaf,0x90,0x88,0xdd,0xfe,0xf2,0x70,0x04,0x83,0xfe,0xe3,0xe5,0xfe,0xf3,0x01,0x1c,0xf0,0x01,0x26,0x6c,0x04,0x77,0x01,0x0a,0xc4,0xda,0xa8,0x02,0x86,0x74,0x78,0xa7,0x10,0xfe,0x10,0x9e,0xb8,0xb8,0x9c,0x9f,0xad,0xad,0x01,0xd7,0xab,0xba, +0x72,0x9a,0x62,0xed,0xed,0x01,0x1e,0xec,0x01,0x02,0x01,0x24,0xeb,0xeb,0xfe,0xf9,0xe2,0x33,0x8e,0x9e,0xab,0x81,0x01,0x2c,0xd9,0xbf,0xb4,0xd0,0xcd,0xbd,0xc2,0xd0,0x00,0x01,0x00,0x00,0x01,0xfa,0x04,0x00,0x02,0x7b,0x00,0x03,0x00,0x0f,0xb6,0x02,0x01,0xeb,0x59,0x02,0x00,0x01,0x2f,0x2f,0x00,0x2f,0x2b,0x31,0x30,0x01,0x21,0x35, +0x21,0x04,0x00,0xfc,0x00,0x04,0x00,0x01,0xfa,0x81,0x00,0x01,0x00,0x00,0x01,0xfa,0x08,0x00,0x02,0x7b,0x00,0x03,0x00,0x0f,0xb6,0x02,0x01,0xeb,0x59,0x02,0x00,0x01,0x2f,0x2f,0x00,0x2f,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x08,0x00,0xf8,0x00,0x08,0x00,0x01,0xfa,0x81,0x00,0x02,0x00,0x6a,0x03,0xf4,0x02,0x9c,0x05,0xb2,0x00,0x03, +0x00,0x07,0x00,0x23,0x40,0x13,0x03,0x02,0x06,0xb3,0x40,0x07,0x04,0x00,0xb4,0x02,0x04,0xb4,0x80,0x10,0x06,0x20,0x06,0x02,0x06,0x2f,0x5d,0x1a,0xe9,0xdc,0xe9,0x00,0x3f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0x9c,0x6f,0x93,0x8d,0xbb,0x6c,0x96,0x8c,0x05,0xb2,0xfe,0x42,0x01,0xbe,0xfe,0x42, +0x01,0xbe,0x00,0x02,0x00,0x6e,0x03,0xf4,0x02,0xa0,0x05,0xb2,0x00,0x03,0x00,0x07,0x00,0x23,0x40,0x13,0x03,0x02,0x06,0xb3,0x40,0x07,0x04,0x00,0xb4,0x02,0x04,0xb4,0x80,0x10,0x06,0x20,0x06,0x02,0x06,0x2f,0x5d,0x1a,0xe9,0xdc,0xe9,0x00,0x3f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0xa0,0x8c, +0x76,0x6c,0x9a,0x8c,0x76,0x6f,0x05,0xb2,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x01,0xbe,0x00,0x01,0x00,0x6a,0x03,0xf4,0x01,0x6c,0x05,0xb2,0x00,0x03,0x00,0x18,0x40,0x0c,0x02,0xb3,0x40,0x03,0x04,0x00,0xb4,0x80,0xaf,0x02,0x01,0x02,0x2f,0x5d,0x1a,0xe9,0x00,0x3f,0x1a,0xed,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x6c,0x6c,0x96,0x8c,0x05, +0xb2,0xfe,0x42,0x01,0xbe,0x00,0x00,0x01,0x00,0x6e,0x03,0xf4,0x01,0x70,0x05,0xb2,0x00,0x03,0x00,0x14,0x40,0x09,0x02,0xb3,0x40,0x03,0x04,0x00,0xb4,0x80,0x02,0x2f,0x1a,0xe9,0x00,0x3f,0x1a,0xed,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x70,0x8c,0x76,0x6f,0x05,0xb2,0xfe,0x42,0x01,0xbe,0x00,0x00,0x03,0x00,0xe8,0x00,0x70,0x04,0x94, +0x04,0x3a,0x00,0x0a,0x00,0x0e,0x00,0x19,0x00,0x4b,0x40,0x25,0x15,0x0f,0xd6,0x5b,0x15,0x15,0x0c,0x0d,0x0c,0xbe,0x59,0x0d,0x00,0x42,0x00,0x06,0xd6,0x5b,0x00,0x0f,0x0d,0x01,0x0d,0x03,0x0d,0x0b,0x0e,0x17,0x12,0x0c,0x42,0x0c,0x08,0x03,0x17,0xd3,0x12,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x12,0x2f,0x2b,0xe1,0x39,0x39,0xc6,0x2b, +0x01,0x10,0xe2,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0xc6,0x2b,0x2b,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x06,0x01,0x21,0x35,0x21,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x06,0x02,0xc4,0x2c,0x3c,0x3a,0x2e,0x67,0x3d,0x01,0xa6,0xfc,0x54,0x03,0xac,0xfe,0x2c,0x2c, +0x3e,0x3c,0x2e,0x65,0x3a,0x03,0x64,0x3d,0x2c,0x2d,0x40,0x6b,0x2f,0x3c,0xfe,0xae,0x86,0xfd,0xd8,0x3c,0x2b,0x2d,0x42,0x6d,0x2d,0x3c,0x00,0x02,0x00,0x6c,0x00,0x00,0x04,0x40,0x05,0x9a,0x00,0x05,0x00,0x09,0x00,0x28,0x40,0x11,0x03,0x08,0x06,0x00,0x00,0x01,0x05,0x03,0x01,0x12,0x08,0x06,0x03,0x00,0x00,0x0b,0x03,0x2f,0x12,0x39, +0x2f,0x12,0x39,0x39,0x00,0x3f,0x3f,0x12,0x39,0x3d,0x2f,0x18,0xc4,0xc4,0x3d,0xc4,0x31,0x30,0x01,0x01,0x23,0x01,0x01,0x33,0x09,0x03,0x04,0x40,0xfe,0x3b,0x4c,0xfe,0x3d,0x01,0xc3,0x4c,0x01,0x3f,0xfe,0x9c,0xfe,0x9c,0x01,0x64,0x02,0xcd,0xfd,0x33,0x02,0xcb,0x02,0xcf,0xfd,0x33,0x02,0x3f,0xfd,0xc1,0xfd,0xbf,0xff,0xff,0x00,0x0e, +0xfe,0x1e,0x03,0xd5,0x05,0x87,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x06,0x00,0x8f,0x4f,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x24,0x1e,0x0c,0x00,0x25,0x02,0x01,0x21,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x06,0xe2,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0x8f, +0x00,0x95,0x01,0x5b,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfc,0x40,0x0a,0x1d,0x17,0x05,0x00,0x25,0x02,0x01,0x1a,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x01,0xfe,0xc8,0x00,0x00,0x02,0xb2,0x05,0x9a,0x00,0x03,0x00,0x0e,0xb5,0x00,0x03,0x02,0x12,0x00,0x02,0x2f,0x2f,0x00,0x3f,0x3f,0x31,0x30,0x01,0x01,0x23,0x01, +0x02,0xb2,0xfc,0xa6,0x90,0x03,0x5b,0x05,0x9a,0xfa,0x66,0x05,0x9a,0x00,0x00,0x01,0x00,0x66,0xff,0xe8,0x03,0xf6,0x05,0xb2,0x00,0x25,0x00,0xcb,0x40,0x0c,0x02,0x13,0x01,0x0b,0x00,0x01,0x02,0x22,0x01,0x10,0x04,0x0f,0xb8,0xff,0xe8,0x40,0x65,0x0b,0x00,0x4d,0x03,0x10,0x0b,0x0c,0x00,0x4c,0x13,0x14,0x00,0x25,0x21,0x1e,0x04,0x07, +0x07,0x04,0x9a,0x59,0x07,0x0e,0x40,0x1c,0x19,0x0b,0x0e,0x0e,0x0b,0x9a,0x59,0x0f,0x0e,0x5f,0x0e,0x7f,0x0e,0x8f,0x0e,0x04,0x0b,0x03,0x0e,0x0e,0x11,0x23,0x00,0x14,0x10,0x14,0x02,0x0c,0x04,0x14,0x14,0x16,0x11,0x16,0x9a,0x59,0x11,0x07,0x00,0x25,0x10,0x25,0x02,0x0c,0x04,0x25,0x25,0x23,0x02,0x23,0x9a,0x59,0x02,0x19,0x1f,0x1a, +0x14,0x00,0x00,0x27,0x19,0x1c,0x1e,0x21,0x04,0x1d,0x8a,0x09,0x0c,0x06,0x04,0x07,0x0b,0x0e,0x04,0x09,0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x17,0x33,0xde,0xc4,0x10,0xe1,0x17,0x32,0x12,0x39,0x2f,0xd4,0xd6,0xc4,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e, +0x5d,0x11,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xcd,0x2b,0x11,0x12,0x00,0x39,0x39,0x11,0x33,0x11,0x33,0x30,0x31,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x5d,0x25,0x06,0x23,0x20,0x03,0x23,0x35,0x33,0x26,0x35,0x34,0x37,0x23,0x35,0x33,0x36,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06, +0x07,0x21,0x15,0x21,0x06,0x17,0x21,0x15,0x21,0x12,0x21,0x32,0x37,0x03,0xf6,0x85,0x95,0xfe,0x55,0x52,0x79,0x6c,0x04,0x06,0x6e,0x83,0x33,0x01,0x1b,0xca,0x89,0x6c,0x72,0x8e,0x7d,0xc3,0x27,0x01,0xf1,0xfd,0xf9,0x08,0x07,0x02,0x08,0xfe,0x08,0x48,0x01,0x16,0x83,0x8d,0x32,0x4a,0x01,0xfa,0x8c,0x1f,0x2e,0x30,0x3c,0x8c,0xf0,0x01, +0x0f,0x38,0xa2,0x4e,0xc9,0xaa,0x8c,0x63,0x56,0x8c,0xfe,0x92,0x57,0x00,0x00,0x01,0x00,0x5c,0x00,0xc8,0x02,0x2f,0x03,0x70,0x00,0x05,0x00,0x1c,0x40,0x0e,0x00,0x04,0x00,0x00,0x04,0xf0,0x05,0x20,0x02,0x01,0x0f,0x02,0x01,0x02,0x2f,0x5d,0x5d,0x33,0xf1,0xc2,0x2f,0x00,0x2f,0xc6,0x31,0x30,0x25,0x23,0x01,0x01,0x33,0x01,0x02,0x2d, +0xa6,0xfe,0xd5,0x01,0x2b,0xa8,0xfe,0xcf,0xc8,0x01,0x50,0x01,0x58,0xfe,0xa8,0x00,0x00,0x01,0x00,0x5c,0x00,0xc8,0x02,0x2f,0x03,0x70,0x00,0x05,0x00,0x1c,0x40,0x0f,0x02,0x04,0x03,0x00,0xf0,0x04,0x50,0x02,0x70,0x02,0x02,0x0f,0x02,0x01,0x02,0x2f,0x5d,0x5d,0xc4,0xe1,0x32,0x00,0x2f,0xc6,0x31,0x30,0x01,0x01,0x23,0x01,0x01,0x33, +0x02,0x2f,0xfe,0xd3,0xa6,0x01,0x30,0xfe,0xd0,0xa6,0x02,0x1a,0xfe,0xae,0x01,0x52,0x01,0x56,0x00,0x03,0x00,0x35,0x00,0x00,0x03,0xea,0x06,0x02,0x00,0x14,0x00,0x20,0x00,0x24,0x00,0xaf,0xb9,0x00,0x11,0xff,0xe8,0x40,0x3d,0x0b,0x00,0x4d,0x15,0x1b,0x63,0x59,0x15,0x23,0x12,0x02,0x95,0x59,0x12,0x01,0x05,0x08,0x23,0x03,0x0b,0x0e, +0x0e,0x0b,0x95,0x59,0x0e,0x0f,0x09,0x21,0x15,0x1e,0x62,0x18,0x21,0x08,0x0d,0x06,0x4d,0x21,0x08,0x0c,0x06,0x4d,0x21,0x08,0x0b,0x06,0x4d,0x21,0x84,0x22,0x08,0x0d,0x06,0x4d,0x22,0x08,0x0c,0x06,0x4d,0x22,0xb8,0xff,0xf1,0x40,0x1e,0x0b,0x06,0x4d,0x22,0x22,0x26,0x0a,0x06,0x00,0x0c,0x0e,0x05,0x09,0x08,0x0d,0x06,0x4d,0x09,0x08, +0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x84,0x0a,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xf4,0xb3,0x0b,0x06,0x4d,0x0a,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0xc6,0xd4,0xc6,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xd4,0xe1,0x00,0x3f,0xc4, +0x3f,0x2b,0x11,0x12,0x00,0x17,0x39,0x18,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x31,0x30,0x00,0x2b,0x01,0x26,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x23,0x11,0x33,0x02,0xa0,0x30,0x3d,0xac,0xf0,0xf0,0xa3, +0xaf,0xaf,0xba,0x8b,0x4b,0x2c,0xdd,0x2d,0x3e,0x3e,0x2d,0x2d,0x40,0x40,0x23,0xa4,0xa4,0x05,0x5c,0x1b,0xd9,0x9e,0x8c,0xfc,0x8c,0x03,0x74,0x8c,0xa6,0xa1,0xbb,0x12,0xec,0x3c,0x2e,0x2d,0x3e,0x3d,0x2e,0x2c,0x3e,0xfa,0xfc,0x04,0x00,0x00,0x00,0x02,0x00,0x35,0x00,0x00,0x03,0xcf,0x06,0x02,0x00,0x14,0x00,0x18,0x00,0xa4,0xb9,0x00, +0x11,0xff,0xe8,0x40,0x37,0x0b,0x00,0x4d,0x08,0x05,0x0b,0x0e,0x0e,0x0b,0x95,0x59,0x0e,0x0f,0x12,0x02,0x95,0x59,0x12,0x01,0x18,0x00,0x09,0x15,0x15,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x84,0x70,0x16,0x01,0x16,0x08,0x0d,0x06,0x4d,0x16,0x08,0x0c,0x06,0x4d,0x16,0xb8,0xff,0xf1,0x40, +0x1e,0x0b,0x06,0x4d,0x16,0x16,0x1a,0x0a,0x06,0x00,0x0c,0x0e,0x05,0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x84,0x0a,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xf4,0xb3,0x0b,0x06,0x4d,0x0a,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39, +0x39,0xc6,0xd4,0xc6,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x32,0x3f,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x01,0x26,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x01,0x23,0x11,0x33,0x02,0xa0,0x30,0x3d,0xac, +0xf0,0xf0,0xa3,0xaf,0xaf,0xba,0x8b,0x4b,0x2c,0x01,0x2f,0xa2,0xa2,0x05,0x5c,0x1b,0xd9,0x9e,0x8c,0xfc,0x8c,0x03,0x74,0x8c,0xa6,0xa1,0xbb,0x12,0xfa,0x10,0x05,0xec,0x00,0x01,0x00,0x30,0x00,0xe5,0x02,0xd8,0x05,0x99,0x00,0x15,0x00,0x5a,0x40,0x2e,0x15,0x10,0x14,0x13,0x12,0x02,0x0e,0x06,0x0b,0x40,0x09,0x08,0x07,0x03,0x00,0x0d, +0x10,0x0d,0x02,0x0a,0x03,0x0d,0x15,0x06,0x05,0x06,0x91,0x59,0x00,0x05,0x11,0x0a,0x0b,0x0a,0x91,0x59,0x10,0x0b,0x05,0x0b,0x05,0x0b,0x03,0x0d,0x03,0x03,0x00,0x2f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x2b,0x11,0x00,0x33,0x11,0x33,0x2b,0x11,0x00,0x33,0x01,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0x33,0x33,0x33,0x1a,0xce,0x32,0xdd, +0x32,0x32,0x32,0x32,0xce,0x32,0x31,0x30,0x01,0x25,0x13,0x23,0x13,0x05,0x35,0x05,0x37,0x27,0x05,0x35,0x05,0x03,0x33,0x03,0x25,0x15,0x25,0x07,0x17,0x25,0x02,0xd8,0xfe,0xd2,0x28,0x9c,0x28,0xfe,0xd2,0x01,0x06,0x3a,0x3a,0xfe,0xfa,0x01,0x2e,0x28,0x9c,0x28,0x01,0x2e,0xfe,0xfa,0x3a,0x3a,0x01,0x06,0x02,0x07,0x14,0xfe,0xca,0x01, +0x36,0x14,0x96,0x1e,0xc0,0xc0,0x1e,0x96,0x14,0x01,0x36,0xfe,0xca,0x14,0x96,0x1e,0xc0,0xc0,0x1e,0x00,0x00,0x01,0x00,0x70,0x01,0xfe,0x01,0x50,0x02,0xdf,0x00,0x0b,0x00,0x15,0x40,0x0b,0x06,0x00,0xb0,0x5b,0x06,0x09,0xaf,0x03,0x2f,0x0d,0x01,0x5d,0x2f,0xe1,0x00,0x2f,0x2b,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16, +0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x01,0xfe,0x42,0x2e,0x2f,0x42,0x42,0x2f,0x2e,0x42,0x00,0x00,0x01,0x00,0x58,0xff,0x1c,0x01,0x5a,0x00,0xd9,0x00,0x03,0x00,0x2c,0x40,0x1c,0x00,0x10,0x10,0x00,0x4d,0x00,0x10,0x0c,0x00,0x4d,0x03,0x10,0x10,0x00,0x4d,0x03,0x10,0x0c,0x00,0x4d,0x02,0xb3,0x40,0x03,0x00,0xb4, +0x80,0x02,0x2f,0x1a,0xe9,0x00,0x2f,0x1a,0xed,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x25,0x03,0x23,0x13,0x01,0x5a,0x8d,0x75,0x6e,0xd9,0xfe,0x43,0x01,0xbd,0x00,0x02,0x00,0x58,0xff,0x1c,0x02,0x89,0x00,0xd9,0x00,0x03,0x00,0x07,0x00,0x4d,0x40,0x35,0x04,0x10,0x10,0x00,0x4d,0x04,0x10,0x0c,0x00,0x4d,0x07,0x10,0x10,0x00,0x4d,0x07, +0x10,0x0c,0x00,0x4d,0x00,0x10,0x10,0x00,0x4d,0x00,0x10,0x0c,0x00,0x4d,0x03,0x10,0x10,0x00,0x4d,0x03,0x10,0x0c,0x00,0x4d,0x03,0x02,0x06,0xb3,0x40,0x07,0x00,0xb4,0x02,0x04,0xb4,0x80,0x06,0x2f,0x1a,0xe9,0xdc,0xe9,0x00,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x25,0x03,0x23,0x13,0x23, +0x03,0x23,0x13,0x02,0x89,0x8b,0x77,0x6d,0x9a,0x8d,0x75,0x6e,0xd9,0xfe,0x43,0x01,0xbd,0xfe,0x43,0x01,0xbd,0x00,0x00,0x07,0x00,0x50,0xff,0xea,0x09,0x5e,0x05,0xb0,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x27,0x00,0x33,0x00,0x3f,0x00,0x4b,0x01,0x01,0x40,0x3c,0x18,0x03,0x1a,0x3a,0x40,0x52,0x59,0x3a,0x0e,0x34,0x34,0x46,0x52,0x59, +0x34,0x1c,0x22,0x28,0x52,0x59,0x22,0x0e,0x1c,0x1c,0x2e,0x52,0x59,0x1c,0x13,0x1b,0x03,0x06,0x00,0x42,0x00,0x12,0x52,0x59,0x00,0x06,0x06,0x0c,0x52,0x59,0x06,0x04,0x1a,0x18,0x1a,0x18,0x3d,0x03,0x37,0xbd,0x43,0x10,0x0d,0x06,0x4d,0x43,0xb8,0xff,0xf4,0x40,0x0a,0x0b,0x06,0x4d,0x43,0x49,0xc8,0x1f,0x3d,0x01,0x3d,0xb8,0xff,0xf4, +0xb3,0x0d,0x06,0x4d,0x3d,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x3d,0xb8,0xff,0xee,0x40,0x0e,0x0b,0x06,0x4d,0x3d,0x3d,0x03,0x1f,0xbd,0x2b,0x10,0x0d,0x06,0x4d,0x2b,0xb8,0xff,0xf4,0xb6,0x0b,0x06,0x4d,0x2b,0x31,0xc2,0x25,0xb8,0xff,0xe0,0x40,0x14,0x0d,0x06,0x4d,0x25,0x1c,0x0c,0x06,0x4d,0x25,0x07,0x0b,0x06,0x4d,0x25,0x25,0x4d, +0x03,0x09,0xbd,0x15,0xb8,0xff,0xec,0x40,0x16,0x0d,0x06,0x4d,0x15,0x0c,0x0b,0x06,0x4d,0x15,0x0f,0xc8,0x03,0x1c,0x0d,0x06,0x4d,0x03,0x1c,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xe4,0xb3,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0xd4,0x2b,0x2b,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0xd4,0x2b,0x2b,0xe1,0x11,0x39,0x2f,0x2b, +0x2b,0x2b,0x5d,0xe1,0xd4,0x2b,0x2b,0xe1,0x11,0x12,0x39,0x39,0x2f,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc4,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xe4,0x2b,0x00,0x10,0x18,0xc4,0x2b,0x00,0x18,0x10,0xe4,0x2b,0x00,0x18,0x2f,0x3f,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06, +0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x25,0x01,0x23,0x01,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x94,0x94, +0xb0,0xba,0x9e,0x99,0xa9,0xbd,0x8b,0x5f,0x6e,0x6c,0x5d,0x5e,0x6a,0x69,0x03,0x59,0xfc,0x66,0x8f,0x03,0x99,0x03,0x42,0x94,0xb0,0xbd,0x9b,0x99,0xa9,0xbc,0x8c,0x60,0x6c,0x6b,0x5d,0x5f,0x6a,0x6a,0xfc,0x79,0x94,0xb0,0xbc,0x9c,0x98,0xaa,0xbd,0x8b,0x60,0x6d,0x6c,0x5d,0x5e,0x6a,0x69,0x02,0xcb,0xc3,0xa3,0xb2,0xcd,0xbe,0xac,0xac, +0xcf,0x02,0x77,0x8d,0x7b,0x79,0x87,0x8c,0x7c,0x79,0x87,0x58,0xfa,0x5c,0x05,0xa4,0xfa,0x50,0xc4,0xa2,0xb1,0xd0,0xbf,0xae,0xab,0xcf,0x02,0x76,0x8d,0x7b,0x78,0x86,0x8d,0x7b,0x79,0x85,0xfd,0x8a,0xc4,0xa2,0xb2,0xcf,0xc0,0xad,0xab,0xcf,0x02,0x76,0x8c,0x7c,0x77,0x87,0x8d,0x7b,0x7a,0x84,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12, +0x07,0x69,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x0f,0x01,0x5b,0x00,0x16,0xb9,0x00,0x02,0xff,0xf1,0x40,0x09,0x12,0x12,0x0c,0x0b,0x25,0x02,0x14,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x6b,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xab,0x01,0x5d, +0x00,0x16,0xb9,0x00,0x01,0xff,0xf5,0x40,0x09,0x0e,0x0e,0x02,0x03,0x25,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x66,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x57,0x01,0x5c,0x00,0x16,0xb9,0x00,0x02,0xff,0xfa,0x40,0x09,0x11,0x13,0x06,0x07,0x25,0x02,0x12, +0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x06,0xe3,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x8b,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x05,0x21,0x0f,0x02,0x03,0x3e,0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00, +0x03,0xb4,0x07,0x66,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xe8,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xe9,0x40,0x09,0x0f,0x0d,0x02,0x03,0x25,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x78,0x00,0x00,0x01,0xfd,0x07,0x66,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x8e,0xff,0xf1, +0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x06,0x05,0x02,0x03,0x25,0x01,0x06,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xfc,0x00,0x00,0x02,0x30,0x07,0x6b,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xd7,0xff,0xa0,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x06,0x08,0x04,0x02,0x03,0x25,0x01,0x08,0x05,0x26,0x00, +0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xf1,0x00,0x00,0x02,0x38,0x06,0xe3,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x74,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x04,0x13,0x0d,0x02,0x03,0x25,0x02,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x1b,0x00,0x00,0x01,0xa0, +0x07,0x66,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x43,0xff,0xc9,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x05,0x04,0x02,0x03,0x25,0x01,0x05,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x66,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xf8,0x01,0x5c,0x00,0x13, +0x40,0x0b,0x02,0x1e,0x19,0x1b,0x0c,0x06,0x3e,0x02,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x6a,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x97,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x05,0x1a,0x1a,0x03,0x09,0x25,0x02,0x1c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b, +0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x66,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x99,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x2c,0x19,0x18,0x03,0x09,0x25,0x02,0x19,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x65,0x02,0x26,0x00,0x38,0x00,0x00, +0x01,0x07,0x00,0x8e,0x01,0xb4,0x01,0x5b,0x00,0x13,0x40,0x0b,0x01,0x2b,0x0f,0x11,0x05,0x0d,0x25,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x6b,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x4b,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x10,0x10,0x05,0x0d, +0x25,0x01,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x66,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x67,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xd1,0x40,0x09,0x11,0x0f,0x05,0x0d,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x01,0x00,0xa6, +0x00,0x00,0x01,0x4a,0x04,0x00,0x00,0x03,0x00,0x31,0x40,0x16,0x03,0x0f,0x00,0x15,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xfe,0xb6,0x0c,0x06,0x4d,0x01,0x01,0x05,0x04,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x31,0x30,0x21,0x23,0x11,0x33,0x01, +0x4a,0xa4,0xa4,0x04,0x00,0x00,0x00,0x01,0x00,0x5c,0x04,0xc2,0x02,0x90,0x06,0x0e,0x00,0x06,0x00,0x1c,0xb3,0x00,0x00,0x08,0x04,0xb8,0xff,0xc0,0xb6,0x10,0x00,0x4d,0x04,0x05,0x80,0x03,0x00,0x2f,0x1a,0xcd,0x01,0x2f,0x2b,0x12,0x39,0x2f,0x31,0x30,0x01,0x23,0x27,0x07,0x23,0x13,0x33,0x02,0x90,0x7a,0xa4,0xa5,0x71,0xd7,0x85,0x04, +0xc2,0xe6,0xe6,0x01,0x4c,0x00,0x00,0x01,0x00,0x23,0x04,0xb2,0x02,0xa4,0x05,0xb2,0x00,0x13,0x00,0x50,0x40,0x0f,0x0a,0x0c,0x01,0x03,0x00,0x02,0x01,0x10,0x05,0x0c,0x40,0x0c,0x00,0x4d,0x02,0xb8,0xff,0xc0,0x40,0x1b,0x0c,0x00,0x4d,0x13,0xc4,0x00,0x00,0x15,0x09,0xc4,0x40,0x0a,0x13,0x0d,0x0d,0x07,0xda,0x59,0x0d,0x11,0x40,0x03, +0x11,0xda,0x59,0x09,0x03,0x00,0x2f,0xc6,0x2b,0x00,0x1a,0x18,0x10,0xcc,0x2b,0x00,0x18,0x10,0xc6,0x01,0x2f,0x1a,0xe9,0x12,0x39,0x2f,0xe9,0x31,0x30,0x2b,0x2b,0x5f,0x5e,0x5d,0x5f,0x5d,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x02,0xa4,0x60,0x52,0x47,0x5b,0x4d,0x2a, +0x58,0x5e,0x60,0x56,0x41,0x54,0x4a,0x36,0x54,0x05,0xb2,0x69,0x85,0x34,0x2b,0x71,0x6b,0x81,0x34,0x2c,0x74,0x00,0x00,0x01,0x00,0x3e,0x04,0xc2,0x02,0x3a,0x05,0x2f,0x00,0x03,0x00,0x11,0xb6,0x00,0x01,0x01,0x02,0xe2,0x59,0x01,0x00,0x2f,0x2b,0x01,0x18,0x2f,0x2f,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0x3a,0xfe,0x04,0x01,0xfc,0x04, +0xc2,0x6d,0x00,0x01,0x00,0x25,0x04,0xc2,0x02,0x4a,0x05,0xbe,0x00,0x0c,0x00,0x2f,0x40,0x17,0x0c,0xc4,0x0f,0x00,0x01,0x0b,0x03,0x00,0x00,0x0e,0x07,0xc4,0x40,0x06,0x0c,0x06,0x03,0x80,0x03,0x09,0xdb,0x59,0x03,0x00,0x2f,0x2b,0x00,0x1a,0x18,0x10,0xdc,0xc4,0x01,0x2f,0x1a,0xe9,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0xe9,0x31,0x30,0x01, +0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x02,0x4a,0x0a,0x9d,0x70,0x75,0x94,0x05,0x64,0x0c,0xa0,0x44,0x61,0x0a,0x05,0xbe,0x71,0x8b,0x8a,0x72,0x9b,0x54,0x47,0x00,0x00,0x01,0x00,0x6c,0x04,0xc2,0x01,0x31,0x05,0x85,0x00,0x0b,0x00,0x12,0xb7,0x09,0xc0,0x03,0x00,0x06,0xc1,0x5b,0x00,0x00,0x2f,0x2b,0x01,0x18, +0x2f,0xe1,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xcf,0x28,0x3b,0x3a,0x29,0x29,0x39,0x39,0x04,0xc2,0x39,0x2a,0x28,0x38,0x37,0x29,0x29,0x3a,0x00,0x02,0x00,0x52,0x04,0x98,0x01,0xee,0x06,0x1c,0x00,0x0b,0x00,0x16,0x00,0x4f,0x40,0x31,0x04,0x0b,0x01,0x04,0x07,0x01,0x0b,0x05,0x01,0x0b,0x01,0x01, +0x10,0x14,0xc4,0x40,0x00,0x09,0x50,0x09,0xa0,0x09,0xb0,0x09,0x04,0x1c,0x03,0x09,0xc0,0x0f,0xc4,0x40,0x03,0x06,0x0c,0xc5,0x59,0x06,0x40,0x09,0x0d,0x48,0x06,0x00,0x00,0x11,0xc5,0x59,0x00,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc4,0x2b,0x2b,0x01,0x18,0x2f,0x1a,0xe9,0x1a,0xdc,0x5f,0x5e,0x5d,0x1a,0xe9,0x31,0x30,0x5e,0x5d,0x5d,0x5d, +0x5d,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x1c,0x57,0x73,0x76,0x5b,0x59,0x72,0x7a,0x58,0x30,0x40,0x70,0x32,0x42,0x42,0x04,0x98,0x69,0x55,0x5a,0x6c,0x6c,0x54,0x54,0x70,0x01,0x33,0x41,0x30,0x70,0x40,0x30,0x31,0x40,0x00,0x00,0x01,0x00,0x33, +0xfe,0x50,0x01,0x87,0x00,0x00,0x00,0x12,0x00,0x5d,0x40,0x0c,0x03,0x12,0x01,0x03,0x00,0x01,0x01,0x10,0x05,0x09,0xc2,0x00,0xb8,0xff,0xc0,0x40,0x0d,0x0b,0x0f,0x48,0x00,0x10,0x05,0x40,0x0d,0x02,0x07,0xc5,0x59,0x02,0xb8,0xff,0xc0,0x40,0x1a,0x09,0x0f,0x48,0x02,0x10,0x0f,0x0b,0x1f,0x0b,0x2f,0x0b,0x03,0x09,0x03,0x10,0x0b,0xc3, +0x59,0x10,0x40,0x0a,0x0e,0x48,0x10,0x0e,0x12,0x00,0x3f,0xc5,0x2b,0x2b,0x00,0x5f,0x5e,0x5d,0x18,0x10,0xc4,0x2b,0x2b,0x01,0x18,0x2f,0x1a,0xce,0xcd,0xd4,0x2b,0xe1,0x30,0x31,0x5f,0x5e,0x5d,0x5f,0x5d,0x01,0x14,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35,0x33,0x15,0x32,0x16,0x01,0x87,0xfe,0xed,0x26,0x1b, +0x2b,0x1b,0x8d,0x81,0x0a,0x1f,0x6c,0x58,0x67,0xff,0x00,0xb0,0x02,0x5a,0x06,0x5a,0x4e,0x04,0xb6,0x68,0x50,0x00,0x00,0x02,0x00,0x40,0x04,0xc2,0x02,0x87,0x06,0x00,0x00,0x03,0x00,0x07,0x00,0x4d,0x40,0x30,0x00,0x0e,0x02,0x28,0x0d,0x06,0x4d,0x02,0x18,0x0c,0x06,0x4d,0x02,0x18,0x0b,0x06,0x4d,0x02,0x30,0x0a,0x06,0x4d,0x02,0x30, +0x09,0x06,0x4d,0x0f,0x02,0x01,0x10,0x03,0x02,0x06,0x80,0x06,0x04,0x42,0x04,0x70,0x06,0x01,0x06,0x03,0x02,0x07,0x80,0x06,0x00,0x2f,0x1a,0xcd,0x39,0x39,0x01,0x2f,0x5d,0xcd,0x2b,0x01,0x1a,0x18,0x10,0xdc,0x5f,0x5e,0x5d,0x2b,0x2b,0x2b,0x2b,0x2b,0xe9,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0x87,0xf5,0x61,0xd1, +0x72,0xf0,0x60,0xce,0x06,0x00,0xfe,0xc2,0x01,0x3e,0xfe,0xc2,0x01,0x3e,0x00,0x01,0x00,0x3e,0xfe,0x70,0x01,0x52,0x00,0x00,0x00,0x0e,0x00,0x24,0x40,0x12,0x0f,0x0b,0x01,0x10,0x04,0x00,0x06,0x06,0x02,0xc2,0x0c,0x09,0x04,0xe2,0x59,0x09,0x0e,0x12,0x00,0x3f,0x2f,0x2b,0x01,0x18,0x2f,0xf1,0xc2,0x2f,0xc6,0x31,0x30,0x5f,0x5e,0x5d, +0x21,0x06,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x01,0x52,0x96,0x44,0x1e,0x1a,0x1e,0x34,0x4c,0x5c,0x9d,0x8d,0x52,0x46,0x0d,0x6b,0x0d,0x50,0x46,0x7a,0x80,0x00,0x01,0x00,0x66,0x04,0xc2,0x02,0x98,0x06,0x0c,0x00,0x06,0x00,0x1c,0xb3,0x00,0x00,0x08,0x03,0xb8,0xff,0xc0,0xb6,0x10,0x00,0x4d,0x03,0x03, +0x80,0x02,0x00,0x2f,0x1a,0xcd,0x01,0x2f,0x2b,0x11,0x39,0x2f,0x31,0x30,0x01,0x03,0x23,0x03,0x33,0x17,0x37,0x02,0x98,0xd6,0x84,0xd8,0x73,0xa4,0xa4,0x06,0x0c,0xfe,0xb6,0x01,0x4a,0xe5,0xe5,0x00,0x00,0x01,0x00,0x21,0x00,0x00,0x03,0xa4,0x05,0x9a,0x00,0x0d,0x00,0xc5,0x40,0x16,0x0f,0x0a,0x01,0x00,0x04,0x01,0x10,0x05,0x0b,0x02, +0x03,0x0a,0x03,0x08,0x05,0x04,0x09,0x04,0x0a,0x0a,0x0c,0x00,0xb8,0xff,0xf0,0xb3,0x10,0x06,0x4d,0x00,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xf0,0xb3,0x0b,0x06,0x4d,0x00,0xb8,0xff,0xe8,0xb3,0x0a,0x06,0x4d,0x00,0xb8,0xff,0xe0,0xb3,0x09,0x06,0x4d,0x00,0xb8,0xff,0xc0,0x40, +0x1b,0x0a,0x1f,0x48,0x00,0x00,0x0f,0x03,0x08,0x05,0x0c,0x06,0x0d,0x06,0x4d,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x7e,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf2,0x40,0x19,0x0c,0x06,0x4d,0x01,0x06,0x0b,0x06,0x4d,0x01,0x04,0x03,0x0a,0x09,0x03,0x09,0x03,0x00,0x06,0x03,0x00,0x0d,0x91,0x59, +0x00,0x12,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x33,0x11,0x33,0x01,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0xc6,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x31,0x30,0x10,0x87,0x04,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x00,0x5f,0x5e,0x5d,0x5d,0x21,0x21,0x11,0x07,0x35,0x37,0x11, +0x33,0x11,0x25,0x15,0x05,0x11,0x21,0x03,0xa4,0xfd,0x18,0x9b,0x9b,0xa8,0x01,0x48,0xfe,0xb8,0x02,0x40,0x02,0x23,0x61,0x98,0x60,0x02,0xe0,0xfd,0x89,0xcb,0x9a,0xc8,0xfe,0x0c,0x00,0x01,0x00,0x16,0x00,0x00,0x02,0x12,0x05,0xec,0x00,0x0b,0x00,0x62,0x40,0x3c,0x0a,0x07,0x06,0x0b,0x06,0x04,0x01,0x05,0x00,0x00,0x00,0x02,0x05,0x0a, +0x07,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06,0x4d,0x02,0x84,0x70,0x03,0x01,0x03,0x08,0x0d,0x06,0x4d,0x03,0x02,0x0c,0x06,0x4d,0x03,0x06,0x05,0x00,0x0b,0x0b,0x05,0x02,0x09,0x00,0x02,0x15,0x40,0x0d,0x01,0x5d,0x00,0x3f,0x3f,0x12,0x39,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b, +0x2b,0x2b,0x39,0x39,0xc6,0x10,0xc2,0x2f,0x31,0x30,0x87,0x04,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x01,0x07,0x11,0x23,0x11,0x07,0x35,0x37,0x11,0x33,0x11,0x37,0x02,0x12,0xae,0xa4,0xaa,0xaa,0xa4,0xae,0x03,0x2b,0x7b,0xfd,0x50,0x02,0x42,0x77,0x9d,0x77,0x03,0x0d,0xfd,0x62,0x7a,0x00,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x07,0x6a, +0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xa2,0x01,0x5e,0x00,0x14,0xb4,0x01,0x38,0x05,0x26,0x01,0xb8,0xff,0xf4,0xb4,0x39,0x36,0x13,0x2c,0x25,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x06,0x0c,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x06,0x00,0xe0,0x12,0x00,0x00,0x14,0xb4,0x01,0x31,0x11, +0x26,0x01,0xb8,0xff,0xec,0xb4,0x32,0x2f,0x0f,0x16,0x25,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x07,0x67,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xec,0x01,0x5b,0x00,0x13,0x40,0x0b,0x01,0x05,0x0f,0x0f,0x08,0x09,0x25,0x01,0x0c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x21,0x00,0x00,0x03,0x70,0x06,0x0c,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x06,0x00,0xe0,0x76,0x00,0x00,0x13,0x40,0x0b,0x01,0x0e,0x0f,0x0f,0x08,0x09,0x25,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0xac,0xfe,0x1e,0x01,0x40,0x06,0x1e,0x00,0x03,0x00,0x07,0x00,0x21,0x40,0x0f,0x01,0x00,0x04,0xca, +0x05,0x00,0x0e,0x40,0x03,0x04,0x07,0x42,0x07,0x04,0x1c,0x00,0x3f,0xcd,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x01,0x2f,0xe1,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x33,0x11,0x23,0x11,0x33,0x01,0x40,0x94,0x94,0x94,0x94,0x02,0xcb,0x03,0x53,0xf8,0x00,0x03,0x54,0x00,0x00,0x02,0x00,0x1c,0x00,0x00,0x05,0x3e,0x05,0x9a,0x00,0x0b,0x00,0x17, +0x00,0xaa,0x40,0x38,0x00,0x07,0x01,0x00,0x07,0x01,0x10,0x05,0x10,0x0d,0x01,0x04,0x04,0x01,0x91,0x59,0x04,0x05,0x00,0x04,0x91,0x2b,0x30,0x05,0x0c,0x91,0x59,0x05,0x03,0x00,0x11,0x91,0x59,0x00,0x12,0x0f,0x0f,0x00,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x7d,0x15,0xb8,0xff,0xf0,0xb3, +0x0d,0x06,0x4d,0x15,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x15,0xb8,0xff,0xea,0x40,0x1b,0x0b,0x06,0x4d,0x15,0x15,0x19,0x02,0x0d,0x04,0x11,0x06,0x0d,0x06,0x4d,0x11,0x06,0x0c,0x06,0x4d,0x11,0x06,0x0b,0x06,0x4d,0x11,0x7e,0x00,0xb8,0xff,0xf6,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0xe1, +0x2b,0x2b,0x2b,0x39,0x39,0xce,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x20,0x11,0x10,0x00,0x21,0x03,0x11,0x21,0x15,0x21,0x11,0x33,0x20, +0x00,0x11,0x10,0x21,0xbc,0xa0,0xa0,0x01,0x8c,0x02,0xf6,0xfe,0x5b,0xfe,0x9f,0xd4,0x01,0x50,0xfe,0xb0,0xd6,0x01,0x1a,0x01,0x3a,0xfd,0xb6,0x02,0x81,0x9b,0x02,0x7e,0xfd,0x45,0xfe,0xb2,0xfe,0x6f,0x05,0x02,0xfe,0x1a,0x9b,0xfe,0x17,0x01,0x2e,0x01,0x15,0x02,0x27,0x00,0x00,0x02,0x00,0x60,0xff,0xea,0x04,0x18,0x05,0xf4,0x00,0x1a, +0x00,0x25,0x00,0xfa,0x40,0x17,0x00,0x0e,0x01,0x10,0x06,0x0b,0x0b,0x0a,0x06,0x06,0x07,0x05,0x0c,0x05,0x0e,0x0e,0x0f,0x03,0x03,0x02,0x04,0x0d,0x06,0xb8,0xff,0xf0,0xb3,0x0b,0x06,0x4d,0x03,0xb8,0xff,0xc0,0xb3,0x0b,0x06,0x4d,0x03,0xb8,0xff,0xc0,0xb3,0x0a,0x06,0x4d,0x03,0xb8,0xff,0xc0,0x40,0x46,0x09,0x06,0x4d,0x05,0x04,0x30, +0x09,0x12,0x48,0x04,0x04,0x19,0x0d,0x0c,0x09,0x00,0x01,0x1b,0x19,0x1b,0x95,0x59,0x19,0x10,0x13,0x21,0x95,0x59,0x13,0x16,0x0e,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0d,0x06,0x4d,0x0d,0x0d,0x10,0x05,0x01,0x24,0x0f,0x08,0x01,0x08,0x08,0x16,0x10,0x04,0x0d,0x06,0x4d,0x10,0x04,0x0c,0x06,0x4d,0x10,0x04,0x0b,0x06,0x4d,0x10,0x83,0x24, +0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x24,0xb8,0xff,0xe3,0x40,0x2a,0x0b,0x06,0x4d,0x24,0x24,0x27,0x1e,0x0a,0x0d,0x06,0x4d,0x1e,0x0a,0x0c,0x06,0x4d,0x1e,0x0a,0x0b,0x06,0x4d,0x1e,0x83,0x16,0x10,0x0d,0x06,0x4d,0x16,0x0c,0x0c,0x06,0x4d,0x16,0x15,0x0b,0x06,0x4d,0x16,0x2f,0x27,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b, +0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x12,0x39,0xc6,0x11,0x39,0x2f,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0xc6,0x32,0x12,0x39,0x2f,0x2b,0x33,0x01,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x01,0x5f,0x5e,0x5d,0x01,0x37, +0x26,0x27,0x05,0x27,0x25,0x26,0x27,0x33,0x16,0x17,0x25,0x17,0x05,0x00,0x11,0x14,0x00,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x07,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x10,0x03,0x12,0x04,0x5a,0x6c,0xfe,0xd5,0x33,0x01,0x0e,0x76,0x92,0xdd,0x4b,0x61,0x01,0x21,0x37,0xfe,0xf8,0x01,0x47,0xfe,0xfe,0xde,0xde,0xfa,0x01, +0x04,0xdc,0x7b,0x75,0x94,0xaa,0xa6,0x94,0x8b,0xa3,0x03,0xc8,0x03,0xa2,0x68,0x97,0x62,0x83,0x69,0x60,0x34,0x54,0x90,0x5e,0x82,0xfe,0xcd,0xfe,0x2d,0xf0,0xfe,0xcc,0x01,0x18,0xf2,0xf3,0x01,0x2f,0x88,0xd9,0xbb,0xb5,0xd3,0xd8,0xb4,0x01,0x90,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x07,0x66,0x02,0x26,0x00,0x3c,0x00,0x00, +0x01,0x07,0x00,0x8e,0x01,0x33,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x30,0x0f,0x11,0x05,0x00,0x25,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x0a,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xee,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x33,0x16,0x18,0x0c,0x00, +0x25,0x01,0x17,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x0c,0x00,0x14,0x00,0x7b,0x40,0x20,0x00,0x08,0x01,0x10,0x06,0x05,0x0d,0x91,0x59,0x00,0x05,0x10,0x05,0x02,0x0c,0x03,0x05,0x0c,0x0e,0x91,0x59,0x0c,0x05,0x0c,0x03,0x02,0x12,0x03,0x03,0x09,0x7d,0x12,0xb8,0xff, +0xf0,0x40,0x1a,0x0d,0x06,0x4d,0x12,0x12,0x16,0x05,0x0e,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x7e,0x02,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf4,0x40,0x09,0x0c,0x06,0x4d,0x02,0x04,0x0b,0x06,0x4d,0x02,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x12,0x39,0x2f, +0x2b,0xe9,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2b,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x01,0x11,0x23,0x11,0x33,0x15,0x33,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0xa8,0xa8,0xe2,0xe8,0xfb,0xfe,0xe5,0xf0,0xba,0xb0,0xad,0xb8,0xfe,0xb0,0x01,0x3e,0xfe,0xc2, +0x05,0x9a,0xe2,0xdf,0xcd,0xcc,0xfe,0xfe,0x02,0xe3,0xfd,0xb4,0x9c,0x91,0x01,0x1f,0x00,0x02,0x00,0xa6,0xfe,0x29,0x04,0x54,0x05,0xec,0x00,0x10,0x00,0x1d,0x00,0x9c,0x40,0x2b,0x00,0x0a,0x01,0x10,0x06,0x03,0x1b,0x01,0x15,0x0f,0x15,0x95,0x59,0x0f,0x16,0x04,0x00,0x06,0x1b,0x09,0x1b,0x95,0x59,0x09,0x10,0x0c,0x06,0x0d,0x06,0x4d, +0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x83,0x18,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x18,0xb8,0xff,0xf2,0xb3,0x0c,0x06,0x4d,0x18,0xb8,0xff,0xe3,0x40,0x1a,0x0b,0x06,0x4d,0x18,0x18,0x1f,0x06,0x12,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06,0x4d,0x02,0x84,0x03,0xb8,0xff,0xf8,0x40, +0x11,0x0d,0x06,0x4d,0x03,0x02,0x0c,0x06,0x4d,0x03,0x01,0x0b,0x06,0x4d,0x03,0x2f,0x1f,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x25,0x23,0x11,0x23, +0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4e,0x04,0xa4,0xa4,0x04,0x79,0xe9,0xc6,0xde,0xfa,0xd9,0xc7,0x70,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0x94,0xfd,0x95,0x07,0xc3,0xfd,0x60,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x02, +0x49,0x8f,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0xc7,0x00,0x00,0x01,0x00,0xe8,0x02,0x12,0x04,0x94,0x02,0x98,0x00,0x03,0x00,0x30,0x40,0x0b,0x02,0x01,0xbe,0x59,0x0f,0x02,0x01,0x0d,0x03,0x02,0x00,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xe0,0x40,0x09,0x0c,0x06,0x4d,0x04,0x05,0x01,0x00,0xff,0x3a,0x2b,0x01,0x2b,0x2b,0x00, +0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x04,0x94,0xfc,0x54,0x03,0xac,0x02,0x12,0x86,0x00,0x00,0x01,0x01,0x0c,0x00,0xa4,0x04,0x6e,0x04,0x06,0x00,0x0b,0x00,0x1d,0xb6,0x0b,0x4f,0x05,0x01,0x05,0x02,0x08,0xb8,0xff,0xd8,0xb3,0x0c,0x06,0x4d,0x08,0x19,0x2f,0x2b,0x18,0xc4,0x00,0x19,0x2f,0x5d,0x18,0xc4,0x31, +0x30,0x01,0x07,0x01,0x01,0x27,0x01,0x01,0x37,0x01,0x01,0x17,0x01,0x04,0x6e,0x5e,0xfe,0xac,0xfe,0xae,0x5e,0x01,0x54,0xfe,0xac,0x5e,0x01,0x52,0x01,0x54,0x5e,0xfe,0xac,0x01,0x02,0x5e,0x01,0x54,0xfe,0xac,0x5e,0x01,0x52,0x01,0x54,0x5e,0xfe,0xac,0x01,0x54,0x5e,0xfe,0xac,0x00,0x00,0x01,0x00,0x50,0x02,0x48,0x01,0xc2,0x05,0xb0, +0x00,0x0c,0x00,0x17,0x40,0x0a,0x0c,0xcc,0x04,0x00,0x0c,0x28,0x05,0x04,0x0b,0x27,0x00,0x3f,0xdd,0xcd,0x3f,0x01,0x2f,0xce,0xed,0x30,0x31,0x01,0x11,0x06,0x06,0x07,0x35,0x3e,0x03,0x37,0x33,0x11,0x01,0x40,0x39,0x78,0x3f,0x26,0x46,0x48,0x4c,0x2c,0x46,0x02,0x48,0x02,0xc2,0x2e,0x47,0x1b,0x87,0x0d,0x22,0x2b,0x35,0x20,0xfc,0x98, +0x00,0x01,0x00,0x68,0x02,0x48,0x02,0x92,0x05,0xae,0x00,0x1f,0x00,0x3c,0x40,0x24,0x1f,0x16,0xcc,0x09,0x09,0x21,0x1d,0xcc,0x0e,0x02,0x0f,0x0e,0x2b,0x1d,0x3b,0x1d,0x4b,0x1d,0x9b,0x1d,0xab,0x1d,0xbb,0x1d,0x06,0x1d,0x09,0x01,0x0c,0xe6,0x11,0x27,0x1f,0xe6,0x01,0x28,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x5d,0xcc,0x32,0x01, +0x2f,0x33,0xed,0x12,0x39,0x2f,0xed,0x32,0x30,0x31,0x01,0x21,0x35,0x34,0x3e,0x04,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x15,0x15,0x21,0x02,0x92,0xfd,0xd6,0x3b,0x59,0x68,0x59,0x3b,0x4b,0x3f,0x77,0x61,0x53,0x98,0x38,0x5e,0x44,0x26,0x39,0x56,0x64,0x56,0x39,0x01,0x93,0x02,0x48,0x52, +0x3d,0x61,0x54,0x4b,0x50,0x5a,0x38,0x3a,0x40,0x66,0x95,0x4c,0x22,0x3f,0x58,0x37,0x4a,0x73,0x5c,0x48,0x3d,0x37,0x1c,0x0b,0x00,0x01,0x00,0x81,0x02,0x33,0x02,0x8e,0x05,0xae,0x00,0x20,0x00,0x61,0x40,0x35,0x00,0x16,0x01,0x10,0x05,0x19,0x09,0x0a,0x0a,0x09,0xe6,0x59,0x0a,0x0a,0x03,0x14,0x0f,0x11,0x1f,0x11,0x02,0x0f,0x03,0x11, +0x0f,0x14,0x0f,0xe6,0x59,0x14,0x27,0x01,0x03,0x1f,0x03,0xe6,0x59,0x1f,0x29,0x19,0x0a,0x0d,0xcd,0x17,0x17,0x1c,0xcc,0x06,0x06,0x22,0x0a,0x11,0x00,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x39,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x11,0x12, +0x00,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x81,0x67,0x72,0x50,0x5c,0xdb,0x54,0x50,0xc5,0x90,0x5e,0x5c,0x57,0x7e,0x71,0x86,0x91,0xb1,0xaa,0x8e,0x89,0x02,0x68,0x8e, +0x4c,0x4b,0x40,0x8d,0x76,0x86,0x77,0x45,0x8b,0x33,0x77,0x60,0x97,0x36,0x04,0x2a,0xa0,0x75,0x94,0x00,0xff,0xff,0x00,0x50,0x00,0x00,0x06,0xd4,0x05,0xb0,0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x07,0x00,0xf1,0x04,0x42,0xfd,0xb9,0x00,0x07,0xb2,0x02,0x11,0x2c,0x00,0x3f,0x35,0x00,0xff,0xff, +0x00,0x50,0x00,0x00,0x06,0xaa,0x05,0xb0,0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x07,0x02,0x38,0x04,0x00,0xfd,0xb8,0x00,0x09,0xb3,0x03,0x02,0x14,0x2c,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x81,0x00,0x00,0x06,0xeb,0x05,0xae,0x00,0x26,0x00,0xf2,0x00,0x00,0x00,0x27,0x00,0xbc,0x03,0x06, +0x00,0x00,0x01,0x07,0x02,0x38,0x04,0x41,0xfd,0xb8,0x00,0x09,0xb3,0x03,0x02,0x28,0x2c,0x00,0x3f,0x35,0x35,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x03,0x94,0x05,0x9a,0x00,0x11,0x00,0x80,0x40,0x3e,0x10,0x01,0x04,0x07,0x07,0x04,0x91,0x59,0x07,0x07,0x0c,0x02,0x0c,0x0f,0x91,0x59,0x0c,0x09,0x02,0x0c,0x91,0x2b,0x30,0x09,0x0a,0x91, +0x59,0x09,0x03,0x02,0x12,0x0d,0x0d,0x09,0x09,0x13,0x03,0x00,0x00,0x07,0x0c,0x10,0x03,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06,0x4d,0x02,0x7e,0x05,0x03,0xb8,0xff,0xfb,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf6,0x40,0x09,0x0c,0x06,0x4d,0x03,0x0a,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xce,0xf1, +0x2b,0x2b,0x2b,0x17,0x39,0xc2,0x2f,0x11,0x12,0x39,0x2f,0x33,0x2f,0x00,0x3f,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x15,0x33,0x02,0x58,0xf4,0xa8,0xa0,0xa0,0x02,0xd8,0xfd,0xd0, +0x02,0x06,0xfd,0xfa,0xf4,0x01,0x16,0xfe,0xea,0x01,0x16,0x9c,0x03,0xe8,0x98,0xfe,0x10,0x97,0xc9,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0xec,0x07,0x19,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0xe2,0x01,0x5b,0x00,0x16,0xb9,0x00,0x01,0xff,0xda,0x40,0x09,0x1d,0x23,0x0d,0x08,0x25,0x01,0x1d,0x05,0x26,0x00,0x2b, +0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x05,0xbe,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x1a,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x17,0x2c,0x26,0x20,0x17,0x25,0x02,0x29,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xad,0x00,0x00,0x01,0x72,0x06,0xe2,0x02,0x26,0x00,0x2c, +0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0x41,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x07,0x0d,0x02,0x03,0x25,0x01,0x04,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x79,0xfe,0x50,0x03,0xde,0x05,0xb2,0x02,0x26,0x00,0x36,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x76,0x00,0x00,0xff,0xff,0x00,0x68,0xfe,0x50,0x03,0x0f, +0x04,0x18,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x03,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x07,0x66,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xd5,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x3e,0x17,0x19,0x10,0x0b,0x25,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x60,0xff,0xe8,0x03,0x62,0x06,0x0a,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x23,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x24,0x17,0x19,0x10,0x0a,0x25,0x01,0x18,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x07,0x68,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0xe0, +0x01,0x86,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x36,0x1b,0x1b,0x10,0x0b,0x25,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x06,0x0c,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xc2,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x0a,0x1b,0x1b,0x10,0x0b,0x25,0x01,0x18,0x11, +0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x98,0x05,0xec,0x00,0x18,0x00,0x25,0x00,0xcb,0x40,0x55,0x0f,0x06,0x01,0x10,0x05,0x24,0x18,0x0c,0x00,0x4d,0x18,0x15,0x0f,0x12,0x12,0x0f,0x96,0x59,0x0f,0x12,0x1f,0x12,0x2f,0x12,0x03,0x09,0x03,0x12,0x12,0x0b,0x14,0x00,0x0d,0x1d,0x0b,0x1d,0x95,0x59, +0x0b,0x10,0x02,0x23,0x05,0x23,0x95,0x59,0x05,0x16,0x00,0x15,0x10,0x10,0x01,0x08,0x17,0x17,0x0f,0x12,0x15,0x18,0x19,0x05,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0x05,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf0,0x40,0x2a,0x0b,0x06,0x4d,0x01, +0x01,0x27,0x20,0x06,0x0d,0x06,0x4d,0x20,0x06,0x0c,0x06,0x4d,0x20,0x06,0x0b,0x06,0x4d,0x20,0x83,0x08,0x10,0x0d,0x06,0x4d,0x08,0x0e,0x0c,0x06,0x4d,0x08,0x1a,0x0b,0x06,0x4d,0x08,0x2f,0x27,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0x17,0x39,0xca,0x2f,0x11,0x12,0x39, +0x2f,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x21,0x35,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x03,0x35,0x34,0x26, +0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0xa4,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5,0xd0,0x63,0x04,0xfe,0xb5,0x01,0x4b,0xa4,0x88,0x88,0xa4,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x88,0xac,0xae,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x01,0x40,0x86,0xb4,0xb4,0x86,0xfd,0x1d,0x97,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0xc6, +0x00,0x01,0x00,0x00,0x05,0x74,0x03,0x52,0x05,0xec,0x00,0x03,0x00,0x10,0xb7,0x02,0x01,0xd9,0x59,0x02,0x00,0x00,0x01,0x2f,0x2f,0x00,0x3f,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x52,0xfc,0xae,0x03,0x52,0x05,0x74,0x78,0x00,0xff,0xff,0x00,0x70,0x01,0xfe,0x01,0x50,0x02,0xdf,0x02,0x06,0x00,0xc3,0x00,0x00,0xff,0xff,0x00,0x16, +0x00,0x00,0x05,0x12,0x07,0x1b,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x5a,0x01,0x5d,0x00,0x16,0xb9,0x00,0x02,0xff,0xfb,0x40,0x09,0x13,0x19,0x06,0x07,0x25,0x02,0x13,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0xbe,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xda, +0x00,0xdb,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xf2,0x40,0x09,0x26,0x20,0x10,0x14,0x25,0x02,0x23,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x16,0xfe,0x70,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x07,0x00,0xdf,0x03,0x79,0x00,0x00,0xff,0xff,0x00,0x5a,0xfe,0x70,0x03,0x83,0x04,0x18,0x02,0x26, +0x00,0x44,0x00,0x00,0x00,0x07,0x00,0xdf,0x02,0x00,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x3e,0x07,0x68,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x2a,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x04,0x13,0x10,0x01,0x0d,0x25,0x02,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8, +0x05,0xb3,0x05,0xec,0x00,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x01,0x9c,0x03,0xb7,0x06,0x63,0x00,0x12,0x40,0x0a,0x02,0x21,0x00,0x02,0x82,0x20,0x20,0x10,0x10,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0x00,0x1c,0x00,0x00,0x05,0x3e,0x05,0x9a,0x02,0x06,0x00,0xe8,0x00,0x00,0xff,0xff,0x00,0xbc,0xfe,0x70,0x03,0xb4,0x05,0x9a, +0x02,0x26,0x00,0x28,0x00,0x00,0x00,0x07,0x00,0xdf,0x02,0x0f,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x70,0x03,0xdd,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x00,0x07,0x00,0xdf,0x01,0xa1,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x68,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xb1,0x01,0x5c,0x00,0x16, +0xb9,0x00,0x01,0xff,0xf8,0x40,0x09,0x0f,0x0c,0x02,0x0b,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x0c,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xb4,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x1c,0x1b,0x16,0x0f,0x25,0x02,0x1c,0x11,0x26,0x00,0x2b,0x35, +0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x07,0x66,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x4c,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x11,0x08,0x06,0x03,0x05,0x3e,0x01,0x08,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x8e,0x00,0x00,0x02,0x13,0x07,0xbb,0x02,0x26,0x00,0x4f, +0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0x07,0x01,0xb1,0x00,0x16,0xb9,0x00,0x01,0xff,0xd5,0x40,0x09,0x06,0x05,0x02,0x03,0x25,0x01,0x06,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x01,0x9c,0x01,0x8d,0x06,0x11,0x00,0x14,0xb3,0x01,0x09,0x03, +0x01,0xb8,0xff,0xe5,0xb4,0x06,0x06,0x05,0x05,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0xc3,0x05,0xec,0x00,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x01,0x9c,0x00,0xc7,0x06,0x5d,0x00,0x12,0x40,0x0a,0x01,0x07,0x00,0x01,0x58,0x06,0x06,0x03,0x03,0x25,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0x00,0xbc, +0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x11,0xfd,0xd8,0x00,0x0e,0xb9,0x00,0x01,0xff,0x9e,0xb4,0x0f,0x0f,0x05,0x05,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0x87,0x05,0xec,0x00,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x56,0xfd,0xd8,0x00,0x0b,0xb6,0x01, +0x78,0x07,0x07,0x00,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x66,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xe2,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x15,0x17,0x0b,0x12,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8, +0x06,0x0a,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x38,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xec,0x40,0x09,0x14,0x16,0x04,0x0f,0x25,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x68,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x7e,0x01,0x5c, +0x00,0x16,0xb9,0x00,0x01,0xff,0xe4,0x40,0x09,0x19,0x19,0x0b,0x12,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x0c,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xda,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x08,0x18,0x18,0x0b,0x02,0x25,0x01,0x15,0x11,0x26,0x00, +0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x5e,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xde,0x01,0xe1,0x01,0x5e,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfc,0x40,0x0a,0x1a,0x1a,0x06,0x06,0x25,0x03,0x02,0x1e,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8, +0x04,0x50,0x06,0x00,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xde,0x01,0x3f,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x06,0x1a,0x1a,0x06,0x06,0x25,0x03,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xc0,0x07,0x66,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x00,0x8e, +0x01,0x5f,0x01,0x5c,0x00,0x08,0xb3,0x02,0x2a,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0xbc,0x06,0x0a,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xa4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x20,0x13,0x12,0x09,0x09,0x25,0x01,0x13,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc, +0x00,0x00,0x04,0xc0,0x07,0x68,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xe3,0x01,0x5c,0x00,0x08,0xb3,0x02,0x2a,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x97,0x00,0x00,0x02,0xc9,0x06,0x0c,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x06,0x00,0xe0,0x31,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x13,0x12,0x08,0x10,0x25,0x01, +0x13,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x07,0x65,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x29,0x01,0x5b,0x00,0x08,0xb3,0x01,0x38,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x06,0x0a,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x07,0x00,0x8e, +0x00,0xbe,0x00,0x00,0x00,0x08,0xb3,0x01,0x31,0x11,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x29,0xfe,0x50,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x00,0xdd,0x01,0x75,0x00,0x00,0x00,0x0b,0xb6,0x01,0x16,0x16,0x0c,0x06,0x4d,0x16,0x11,0x2b,0x35,0x00,0xff,0xff,0x00,0x2b,0xfe,0x50,0x02,0x9a,0x05,0x2f,0x02,0x26, +0x00,0x57,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x13,0x00,0x00,0xff,0xff,0x00,0x29,0x00,0x00,0x04,0x0c,0x07,0x68,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0x9d,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x03,0x0a,0x09,0x04,0x01,0x3e,0x01,0x0a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0x2b,0xff,0xea, +0x03,0xd3,0x05,0x72,0x00,0x14,0x00,0x18,0x00,0x71,0x40,0x31,0x18,0x80,0x17,0x07,0x14,0x14,0x12,0x95,0x02,0x16,0x0a,0x0a,0x0e,0x0b,0x06,0x95,0x40,0x07,0x0f,0x15,0x80,0x17,0x0c,0x00,0x00,0x0d,0x06,0x0d,0x06,0x0b,0x08,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x84,0x04,0xb8,0xff,0xe6, +0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf2,0xb3,0x0c,0x06,0x4d,0x04,0xb8,0xff,0xf2,0xb3,0x0b,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x32,0x33,0x32,0x2f,0x2f,0x33,0x2f,0x10,0xd6,0x1a,0xcd,0x00,0x3f,0x1a,0xed,0x33,0x32,0x33,0x2f,0x3f,0xed,0x32,0x2f,0x10,0xd4,0x1a,0xcd,0x31,0x30,0x25,0x06,0x23,0x20,0x11, +0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x01,0x03,0x23,0x13,0x02,0x81,0x3a,0x5f,0xfe,0xf3,0xb0,0xb0,0xa4,0x01,0x02,0xfe,0xfe,0x46,0x51,0x3e,0x2d,0x01,0x52,0xa6,0x7b,0x75,0x0a,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0xfd,0xbf,0x67,0x58,0x22,0x04,0xdc,0xfe,0xfc,0x01, +0x04,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0xa3,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xdc,0x01,0x8e,0x01,0x87,0x00,0x24,0xb1,0x02,0x01,0xb8,0xff,0xef,0x40,0x13,0x11,0x17,0x05,0x0d,0x25,0x02,0x01,0x00,0x0e,0x10,0x0e,0x20,0x0e,0x30,0x0e,0x04,0x0e,0x05,0x26,0x00,0x2b,0x5d,0x35,0x35,0x01,0x2b,0x35,0x35, +0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x1c,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xdc,0x01,0x18,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x15,0x1b,0x08,0x11,0x25,0x02,0x01,0x12,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x5c,0x02,0x26,0x00,0x38, +0x00,0x00,0x01,0x07,0x00,0xde,0x01,0x93,0x01,0x5c,0x00,0x45,0x40,0x12,0x01,0x10,0x0c,0x0d,0x06,0x4d,0x10,0x16,0x0c,0x06,0x4d,0x10,0x12,0x0b,0x06,0x4d,0x02,0x10,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x10,0xb8,0xff,0xf2,0xb3,0x0c,0x06,0x4d,0x10,0xb8,0xff,0xf4,0x40,0x0e,0x0b,0x06,0x4d,0x05,0x10,0x10,0x05,0x0d,0x25,0x02,0x01, +0x14,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x2b,0x2b,0x2b,0x35,0x2b,0x2b,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xde,0x01,0x05,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfd,0x40,0x0a,0x14,0x14,0x08,0x11,0x25,0x02,0x01,0x18,0x11,0x26,0x00,0x2b, +0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x07,0x67,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x58,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xfa,0x40,0x09,0x0b,0x0b,0x08,0x09,0x3e,0x01,0x0c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x21,0x00,0x00,0x03,0x70,0x06,0x0a, +0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xc7,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x05,0x0b,0x0b,0x05,0x09,0x25,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x06,0xe1,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x83,0x01,0x5c,0x00,0x16,0xb9,0x00, +0x01,0xff,0xed,0x40,0x09,0x0d,0x13,0x08,0x09,0x25,0x01,0x0a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x21,0x00,0x00,0x03,0x70,0x05,0x85,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x17,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x0d,0x13,0x08,0x09,0x25,0x01,0x0a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b, +0x35,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x00,0x05,0x00,0x4c,0x40,0x20,0x02,0x12,0x05,0x00,0x91,0x59,0x05,0x03,0x70,0x00,0x01,0x00,0x00,0x07,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06,0x4d,0x02,0x7e,0x03,0xb8,0xff,0xf6,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf2,0x40,0x09,0x0c, +0x06,0x4d,0x03,0x04,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x03,0xa4,0xfd,0xc1,0xa9,0x02,0xe8,0x04,0xfe,0xfb,0x02,0x05,0x9a,0x00,0x00,0x03,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x17,0x00,0x1b, +0x00,0xb0,0x40,0x18,0x1a,0x19,0x91,0x59,0x1a,0x06,0x00,0x1a,0x91,0x2b,0x30,0x06,0x0c,0x91,0x59,0x06,0x04,0x00,0x12,0x91,0x59,0x00,0x13,0x18,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x18,0xb8,0xff,0xd0,0xb3,0x0b,0x06,0x4d,0x19,0xb8,0xff,0xe8,0x40,0x1b,0x0b,0x06,0x4d,0x0f,0x15,0x19,0x18,0xff,0x3a,0x09,0x06,0x0d,0x06,0x4d,0x09, +0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x7d,0x15,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x15,0xb8,0xff,0xee,0xb6,0x0c,0x06,0x4d,0x30,0x15,0x01,0x15,0xb8,0xff,0xe0,0x40,0x27,0x0b,0x06,0x4d,0x15,0x15,0x1d,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x03,0x10,0x0d,0x06,0x4d, +0x03,0x10,0x0c,0x06,0x4d,0x03,0x18,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22, +0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x13,0x21,0x35,0x21,0x02,0xfe,0xfe,0xd0,0xfe,0x90,0x01,0x75,0x01,0x43,0x01,0x29,0x01,0x6b,0xfe,0x8d,0xfe,0xd2,0xe1,0xfe,0xe7,0x01,0x12,0xdd,0xec,0x01,0x0f,0xfe,0xf9,0x1f,0xfd,0xe7,0x02,0x19,0x18,0x01,0x8f,0x01,0x45,0x01,0x57,0x01,0x9f,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe, +0x68,0x05,0x32,0xfe,0xba,0xfe,0xf8,0xfe,0xf6,0xfe,0xbd,0x01,0x34,0x01,0x16,0x01,0x18,0x01,0x39,0xfd,0x64,0x9c,0x00,0x03,0x00,0x60,0xff,0xf1,0x05,0xa7,0x05,0xa7,0x00,0x15,0x00,0x1e,0x00,0x27,0x00,0xf6,0x40,0x1a,0x20,0x0b,0x16,0x0e,0x0e,0x16,0x91,0x59,0x1f,0x03,0x00,0x17,0x00,0x17,0x91,0x59,0x0e,0x00,0x0e,0x00,0x01,0x0d, +0x04,0x01,0x13,0x24,0xb8,0xff,0xe8,0x40,0x0b,0x0b,0x0c,0x00,0x4c,0x1b,0x18,0x0b,0x0c,0x00,0x4c,0x1b,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x1b,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1b,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x1b,0x7e,0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf0,0x40,0x25,0x0c,0x06,0x4d,0x12,0x20, +0x0b,0x06,0x4d,0x12,0x0e,0x01,0x02,0x07,0x42,0x24,0x08,0x0d,0x06,0x4d,0x24,0x08,0x0c,0x06,0x4d,0x24,0x7e,0x07,0x10,0x0d,0x06,0x4d,0x07,0x10,0x0c,0x06,0x4d,0x07,0xb8,0xff,0xe8,0x40,0x1d,0x0b,0x06,0x4d,0x07,0x07,0x28,0x0b,0x0e,0x17,0x1f,0x04,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x01, +0x7e,0x02,0xb8,0xff,0xfb,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xfd,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf8,0x40,0x0c,0x0b,0x06,0x4d,0x02,0x02,0x29,0x28,0x20,0x29,0x40,0x29,0x02,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b, +0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x25,0x15,0x23,0x35,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x33,0x35,0x33,0x15,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x03,0x11,0x23, +0x22,0x06,0x15,0x14,0x16,0x33,0x03,0x52,0x9c,0x2b,0xf9,0xfe,0xce,0x01,0x31,0xfc,0x29,0x9c,0x2a,0xfc,0x01,0x2f,0xfe,0xcc,0xf5,0x2c,0x2c,0xb6,0xcf,0xd3,0xb4,0xc6,0x29,0xb3,0xd6,0xcf,0xb8,0xba,0xc9,0xc9,0x01,0x3c,0xfc,0xf6,0x01,0x2a,0x95,0x95,0xfe,0xd5,0xf5,0xfd,0xfe,0xc5,0x03,0xca,0xfc,0xcc,0xdc,0xc4,0xb9,0xdb,0xfc,0xcc, +0x03,0x34,0xda,0xbb,0xc4,0xdb,0x00,0x02,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x04,0x18,0x00,0x19,0x00,0x26,0x01,0x02,0x40,0x0b,0x0d,0x14,0x01,0x10,0x04,0x25,0x10,0x10,0x00,0x4d,0x15,0xb8,0xff,0xf0,0xb3,0x10,0x00,0x4d,0x14,0xb8,0xff,0xd0,0xb3,0x10,0x00,0x4d,0x0e,0xb8,0xff,0xf0,0x40,0x0e,0x10,0x00,0x4d,0x08,0x10,0x10,0x00,0x4d, +0x03,0x28,0x10,0x00,0x4d,0x25,0xb8,0xff,0xe8,0x40,0x36,0x0b,0x0c,0x00,0x4c,0x1f,0x18,0x0b,0x0c,0x00,0x4c,0x1b,0x18,0x0b,0x0c,0x00,0x4c,0x10,0x18,0x0b,0x0c,0x00,0x4c,0x05,0x11,0x14,0x1a,0x04,0x07,0x0d,0x13,0x12,0x0f,0x0d,0x1d,0x95,0x59,0x0d,0x10,0x02,0x17,0xec,0x59,0x02,0x15,0x07,0x23,0xec,0x59,0x07,0x16,0x75,0x11,0x01, +0x1a,0xb8,0xff,0xe8,0xb4,0x09,0x15,0x01,0x4c,0x1a,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1a,0xb8,0xff,0xf8,0x40,0x3d,0x0b,0x06,0x4d,0x14,0x11,0x0a,0x1a,0x05,0x00,0x1a,0x11,0x12,0x20,0x14,0x05,0x0a,0x12,0x83,0x13,0x70,0x00,0x01,0x00,0x00,0x28,0x20,0x08,0x0d,0x06,0x4d,0x20,0x08,0x0c,0x06,0x4d,0x20,0x08,0x0b,0x06,0x4d,0x20, +0x83,0x0a,0x10,0x0d,0x06,0x4d,0x0a,0x10,0x0c,0x06,0x4d,0x0a,0x10,0x0b,0x06,0x4d,0x2f,0x0a,0x01,0x0a,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0xd4,0xe1,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x12,0x39,0x39,0x11,0x39,0x39,0x2b,0x2b,0x2b,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00, +0x18,0x3f,0x33,0x11,0x12,0x17,0x39,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x5f,0x5e,0x5d,0x25,0x06,0x23,0x22,0x03,0x23,0x02,0x21,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x16,0x17,0x33,0x13,0x33,0x03,0x16,0x16,0x33,0x32,0x37,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x04, +0xc5,0x35,0x2a,0x9a,0x36,0x04,0x94,0xfe,0xf6,0xba,0xe0,0x01,0x02,0xdc,0x7e,0xc6,0x33,0x04,0x55,0xac,0xc1,0x22,0x4c,0x3c,0x17,0x11,0xfe,0xa4,0x26,0x9c,0x6e,0x8e,0xa9,0x8f,0x79,0x6a,0xad,0x3a,0x05,0x0d,0x01,0x25,0xfe,0xcb,0x01,0x1f,0xdb,0xfa,0x01,0x3c,0x96,0x88,0x01,0x06,0xfe,0x0a,0xdb,0x9d,0x05,0x01,0x71,0xbe,0xca,0xf2, +0xb2,0x9e,0xd6,0xb5,0xb0,0x00,0x00,0x02,0x00,0x5c,0xff,0xe7,0x04,0x53,0x05,0xfe,0x00,0x1c,0x00,0x27,0x00,0xdf,0x40,0x0c,0x0d,0x27,0x01,0x0d,0x1e,0x01,0x02,0x00,0x01,0x10,0x04,0x19,0xb8,0xff,0xc0,0x40,0x0a,0x0b,0x0c,0x00,0x4c,0x17,0x30,0x0b,0x00,0x4d,0x00,0xb8,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x09,0xb8,0xff,0xe0,0x40, +0x35,0x0c,0x00,0x4d,0x09,0x1b,0x22,0x1d,0x16,0x10,0x01,0x03,0x1b,0x03,0x95,0x59,0x1b,0x01,0x10,0x22,0x95,0x59,0x10,0x16,0x1d,0x16,0x25,0x18,0x01,0x01,0x0d,0x06,0x83,0x18,0x18,0x13,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x83,0x25,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x25,0xb8,0xff, +0xf0,0xb3,0x0c,0x06,0x4d,0x25,0xb8,0xff,0xe0,0x40,0x2f,0x0b,0x06,0x4d,0x20,0x25,0x30,0x25,0x02,0x25,0x25,0x29,0x1f,0x08,0x0d,0x06,0x4d,0x1f,0x08,0x0c,0x06,0x4d,0x1f,0x08,0x0b,0x06,0x4d,0x1f,0x83,0x13,0x10,0x0d,0x06,0x4d,0x13,0x10,0x0c,0x06,0x4d,0x13,0x10,0x0b,0x06,0x4d,0x13,0x2f,0x29,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1, +0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x11,0x12,0x39,0x39,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x12,0x39,0x39,0x11,0x12,0x39,0x2b,0x31,0x30,0x2b,0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x5d,0x01,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e, +0x02,0x15,0x14,0x00,0x23,0x22,0x00,0x35,0x34,0x12,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x03,0x04,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03,0xe7,0xa8,0xac,0x64,0x79,0x68,0x78,0xa2,0xba,0x61,0xfe,0xe6,0xef,0xdb,0xfe,0xed,0xd4,0xcb,0xee,0xd0,0xb6,0xa4,0xbd,0xfe,0x92,0xb5,0x96,0x9d,0xba,0x8f,0x05,0xbe,0xb7,0x65,0x45, +0x3a,0x2f,0x69,0x49,0x63,0x9a,0xbf,0x6f,0xe9,0xfe,0xef,0x01,0x0b,0xd7,0x9b,0x01,0x02,0x58,0x93,0xa3,0x80,0x8a,0xfd,0x75,0x94,0xfe,0xeb,0x9d,0xb9,0xc0,0xa1,0x75,0xbf,0x00,0x00,0x01,0x00,0x52,0xff,0xe7,0x03,0x3b,0x04,0x19,0x00,0x25,0x00,0x9b,0x40,0x09,0x00,0x11,0x01,0x0f,0x00,0x01,0x10,0x04,0x0d,0xb8,0xff,0xe8,0x40,0x58, +0x0b,0x0c,0x00,0x4c,0x08,0x1e,0x19,0x19,0x1e,0xec,0x59,0x19,0x0f,0x02,0x19,0xec,0x0c,0x30,0x12,0x14,0x0f,0x14,0x95,0x59,0x0f,0x10,0x00,0x25,0x01,0x0e,0x03,0x25,0x23,0x02,0x23,0x95,0x59,0x02,0x16,0x08,0x0c,0x1b,0x12,0x00,0x00,0x27,0x05,0x16,0x83,0x0c,0x20,0x08,0x0d,0x06,0x4d,0x20,0x08,0x0c,0x06,0x4d,0x20,0x08,0x0b,0x06, +0x4d,0x20,0x83,0x05,0x10,0x0d,0x06,0x4d,0x05,0x10,0x0c,0x06,0x4d,0x05,0x10,0x0b,0x06,0x4d,0x2f,0x05,0x3f,0x05,0x02,0x05,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xd4,0xe1,0x11,0x12,0x39,0x2f,0xc4,0xc4,0x11,0x39,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x00,0x18,0x2f,0x2b, +0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x5f,0x5e,0x5d,0x5d,0x25,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x26,0x23,0x20,0x15,0x14,0x16,0x33,0x32,0x37,0x03,0x3b,0x82,0xc3,0xc3,0xe1,0x8b,0x72,0x56,0x80,0xd5,0xb2,0x8f,0x7f,0x85, +0x93,0xd7,0xa2,0x7d,0x49,0x2d,0x49,0x43,0xfe,0xd0,0x8d,0x80,0xa7,0x8f,0x16,0x2f,0xa5,0x89,0x5d,0x88,0x15,0x04,0x12,0x81,0x53,0x88,0x98,0x2d,0xa5,0x47,0x93,0x4b,0x5c,0x04,0x92,0x04,0xb2,0x4b,0x5b,0x49,0x00,0x02,0x00,0x61,0xff,0xe8,0x04,0x82,0x04,0x00,0x00,0x0c,0x00,0x17,0x00,0x7b,0x40,0x22,0x01,0x0e,0x0b,0x0e,0x96,0x59, +0x0b,0x0f,0x06,0x13,0x95,0x59,0x06,0x16,0x00,0x00,0x03,0x08,0x0d,0x06,0x4d,0x03,0x08,0x0c,0x06,0x4d,0x03,0x08,0x0b,0x06,0x4d,0x03,0x83,0x16,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x16,0xb8,0xff,0xf0,0x40,0x2a,0x0b,0x06,0x4d,0x16,0x16,0x19,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06,0x4d,0x10,0x83, +0x09,0x10,0x0d,0x06,0x4d,0x09,0x10,0x0c,0x06,0x4d,0x09,0x10,0x0b,0x06,0x4d,0x09,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xca,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x31,0x30,0x01,0x21,0x16,0x15,0x14,0x02,0x23,0x22,0x00,0x35,0x10,0x21,0x21, +0x05,0x23,0x20,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x04,0x82,0xff,0x00,0x8e,0xfc,0xd4,0xdb,0xfe,0xfc,0x02,0x09,0x02,0x18,0xfe,0x6c,0x76,0xfe,0x92,0xa9,0x8d,0x89,0x9f,0x03,0x7c,0xb6,0xdd,0xe3,0xfe,0xe2,0x01,0x1f,0xef,0x02,0x0a,0x84,0xfe,0x73,0xac,0xcf,0xd1,0xaf,0xdc,0x00,0x01,0x00,0x22,0xff,0xf4,0x03,0xc5,0x04,0x00, +0x00,0x13,0x00,0x7a,0x40,0x43,0x53,0x10,0x01,0x00,0x0f,0x01,0x0b,0x03,0x0f,0x0d,0x00,0x13,0x00,0x96,0x59,0x13,0x0f,0x06,0x04,0x09,0x04,0xec,0x59,0x09,0x30,0x00,0x70,0x00,0x02,0x00,0x00,0x15,0x02,0x0f,0x0f,0x0b,0x14,0x06,0x06,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x0b,0x08, +0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xfa,0xb6,0x0b,0x06,0x4d,0x0b,0x0b,0x15,0x14,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x5d,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x10,0x18,0xd4,0xc6,0x5f,0x5e,0x5d,0x31,0x30,0x5d,0x01,0x21, +0x11,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x11,0x11,0x23,0x22,0x07,0x35,0x36,0x33,0x21,0x03,0xc5,0xfe,0x79,0x74,0x36,0x36,0x42,0x48,0xf9,0x8d,0x72,0x7a,0x4c,0xa4,0x02,0xb3,0x03,0x7c,0xfd,0x96,0x8e,0x14,0x8e,0x16,0x01,0x20,0x02,0x68,0x58,0x94,0x48,0x00,0x02,0x00,0x60,0xfe,0x1e,0x05,0x38,0x04,0x18,0x00,0x1b,0x00,0x25, +0x00,0xfe,0x40,0x0f,0x06,0x17,0x01,0x09,0x15,0x01,0x09,0x0e,0x01,0x0d,0x0c,0x01,0x10,0x03,0x1f,0xb8,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x15,0xb8,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x10,0xb8,0xff,0xc0,0x40,0x2a,0x0b,0x0c,0x00,0x4c,0x16,0x23,0x95,0x59,0x16,0x10,0x0d,0x0f,0x13,0x05,0x02,0x1c,0x02,0x1c,0x95,0x59,0x02,0x16, +0x03,0x1c,0x19,0x08,0x0d,0x06,0x4d,0x19,0x08,0x0c,0x06,0x4d,0x19,0x08,0x0b,0x06,0x4d,0x20,0x83,0x19,0xb8,0xff,0xec,0xb3,0x0d,0x06,0x4d,0x19,0xb8,0xff,0xec,0xb3,0x0c,0x06,0x4d,0x19,0xb8,0xff,0xe0,0x40,0x56,0x0b,0x06,0x4d,0x19,0x0e,0x02,0x05,0x0a,0x42,0x02,0x0d,0x01,0x0d,0x0d,0x05,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x08,0x0c, +0x06,0x4d,0x0f,0x08,0x0b,0x06,0x4d,0x0f,0x83,0x50,0x0a,0x60,0x0a,0x02,0x0f,0x0a,0x01,0x0a,0x10,0x0d,0x06,0x4d,0x0a,0x10,0x0c,0x06,0x4d,0x0a,0x18,0x0b,0x06,0x4d,0x0a,0x0a,0x26,0x1c,0x13,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x10,0x0b,0x06,0x4d,0x02,0x84,0x05,0x05,0x27,0x26,0x2f,0x27,0x3f,0x27,0x02,0x5d, +0x11,0x12,0x39,0x2f,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0x5d,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x2f,0x5d,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0x3f,0x2b,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d, +0x05,0x06,0x27,0x11,0x23,0x11,0x06,0x27,0x22,0x00,0x35,0x10,0x37,0x33,0x06,0x11,0x14,0x16,0x33,0x33,0x11,0x10,0x21,0x32,0x12,0x15,0x14,0x00,0x25,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x15,0x03,0x36,0x04,0x1e,0x94,0x18,0x04,0xec,0xfe,0xe8,0xd2,0xc2,0xec,0xbf,0x9b,0x1e,0x01,0x12,0xbc,0xea,0xfe,0xe7,0xfe,0xf5,0x22,0x98, +0xc2,0x93,0x67,0x82,0x18,0x04,0x04,0xfe,0x36,0x01,0xca,0x04,0x04,0x01,0x20,0xf6,0x01,0x3b,0xc7,0xd8,0xfe,0xd2,0xb8,0xce,0x02,0x95,0x01,0x0f,0xfe,0xd7,0xfb,0xe9,0xfe,0xdd,0x8c,0xd3,0xb5,0xb4,0xdc,0x81,0x00,0x02,0x00,0x00,0xfd,0xfe,0x03,0x52,0xff,0x62,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x1a,0x03,0x02,0xd9,0x59,0x0f,0x03, +0x01,0x0c,0x03,0x03,0x07,0x40,0x07,0x06,0xd9,0x59,0x1f,0x07,0x2f,0x07,0x02,0x07,0x07,0x03,0x04,0x00,0x2f,0x32,0x2f,0x33,0x00,0x2f,0x5d,0x2b,0x00,0x1a,0x18,0x10,0xcd,0x5f,0x5e,0x5d,0x2b,0x31,0x30,0x11,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x03,0x52,0xfc,0xae,0x03,0x52,0xfe,0xeb,0x77,0x77,0xed,0x77,0x77,0xff,0xff,0x00,0xb4, +0xff,0xee,0x03,0x23,0x05,0x9a,0x00,0x26,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x04,0x01,0x91,0x00,0x00,0x00,0x01,0x00,0x6e,0x02,0xcd,0x02,0xc2,0x05,0xb0,0x00,0x12,0x00,0x2b,0x40,0x16,0x00,0x0b,0x24,0x04,0x0f,0x07,0x0f,0x52,0x59,0x07,0x04,0x03,0x03,0x0b,0xc2,0x0c,0x0c,0x14,0x04,0x00,0xc2,0x01,0x2f,0xe1,0x32,0x12,0x39,0x2f, +0xe1,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0xc4,0x31,0x30,0x13,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0xee,0x80,0x80,0x04,0x43,0x8f,0x78,0x86,0x82,0x97,0x4a,0x71,0x02,0xcd,0x02,0xcf,0x73,0x87,0x94,0x84,0xfe,0x35,0x01,0xc3,0xb0,0x79,0x55,0x00,0x00,0x04,0x00,0xbc, +0xff,0xe8,0x08,0xa0,0x05,0x9a,0x00,0x09,0x00,0x10,0x00,0x25,0x00,0x45,0x00,0xd6,0x40,0x1e,0x2b,0x41,0x30,0x3b,0x04,0x33,0x44,0x36,0x38,0x33,0x38,0x95,0x59,0x33,0x1c,0x1d,0x40,0x1a,0x17,0x20,0x1d,0x1d,0x20,0x95,0x59,0x1d,0x1d,0x03,0x13,0x27,0xb8,0xff,0xc0,0x40,0x3e,0x0b,0x0e,0x48,0x27,0x29,0x44,0x29,0x95,0x59,0x44,0x16, +0x25,0x23,0x13,0x23,0x95,0x59,0x13,0x16,0x0b,0x00,0x91,0x59,0x0b,0x0b,0x03,0x02,0x03,0x0a,0x91,0x59,0x03,0x03,0x02,0x12,0x36,0x36,0x41,0x83,0x2b,0x2b,0x47,0x27,0x3b,0x83,0x30,0x30,0x47,0x16,0x25,0x1f,0x1f,0x1d,0x1a,0x21,0x84,0x18,0x16,0x16,0x47,0x02,0x0e,0xb8,0xff,0xf8,0x40,0x11,0x0c,0x06,0x4d,0x06,0x7d,0x0e,0x0e,0x47, +0x0b,0x01,0x08,0x0c,0x06,0x4d,0x01,0x7e,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x02,0x2f,0x2b,0xe1,0x2b,0x32,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x12,0x39,0x2f,0xce,0xf1,0x39,0x39,0xc2,0x2f,0xc4,0x11,0x12,0x39,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x00,0x18,0x3f, +0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x11,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xcd,0xc4,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x20,0x11,0x14,0x04,0x23,0x03,0x11,0x33,0x20,0x11,0x10,0x21,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x23,0x35, +0x33,0x35,0x37,0x11,0x33,0x15,0x23,0x11,0x14,0x33,0x32,0x37,0x17,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x01,0x64,0xa8,0x01,0x38,0x01,0xce,0xfe,0xf8,0xeb,0x6b,0x5e,0x01,0x50,0xfe,0xc5,0x04,0x39,0x3a,0x5f,0x83, +0x75,0x9b,0x9b,0xa4,0xed,0xed,0x83,0x3b,0x2f,0x44,0x79,0x89,0xa2,0x40,0xf6,0x6c,0xb8,0x92,0x82,0x4e,0x60,0x72,0x48,0x58,0x6c,0x5e,0x8d,0x4b,0xb0,0x9a,0xa2,0x02,0x1e,0xfd,0xe2,0x05,0x9a,0xfe,0x54,0xd2,0xfe,0x02,0xe4,0xfd,0xb4,0x01,0x30,0x01,0x1c,0xfb,0x08,0x20,0x8e,0x9e,0x01,0xd0,0x8a,0xfa,0x36,0xfe,0xd0,0x8a,0xfe,0x4d, +0xbf,0x22,0x71,0xb0,0x63,0x72,0x28,0x50,0x5c,0x3e,0x74,0x79,0x91,0x2e,0xa0,0x44,0x3f,0x32,0x39,0x2c,0x27,0x3f,0x70,0x4a,0x7d,0x8f,0xff,0xff,0x00,0xbc,0xff,0xe8,0x04,0x4e,0x05,0x9a,0x00,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x2d,0x02,0x23,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0x02,0x32,0xb4,0x0a,0x10,0x02,0x03,0x25,0x01, +0x2b,0x35,0xff,0xff,0x00,0x90,0xfe,0x1e,0x03,0x6c,0x05,0xd9,0x00,0x26,0x00,0x4c,0x00,0x00,0x01,0x07,0x00,0x4d,0x02,0x06,0x00,0x00,0x00,0x36,0xb3,0x03,0x02,0x1a,0x1a,0xb8,0xff,0xee,0xb3,0x0d,0x06,0x4d,0x1a,0xb8,0xff,0xfe,0x40,0x18,0x0c,0x06,0x4d,0x1a,0x0e,0x0b,0x06,0x4d,0x01,0x00,0x0d,0x0d,0x02,0x0c,0x06,0x4d,0x0d,0x02, +0x0b,0x06,0x4d,0x2f,0x2a,0x01,0x5d,0x2b,0x2b,0x11,0x35,0x35,0x2b,0x2b,0x2b,0x11,0x35,0x35,0xff,0xff,0xff,0xd7,0x00,0x00,0x04,0x4a,0x05,0xb2,0x00,0x26,0x00,0x51,0x52,0x00,0x01,0x07,0x00,0xb7,0xff,0x69,0x00,0x00,0x00,0x17,0xb2,0x00,0x00,0x00,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xef,0xb2,0x0b,0x06,0x4d,0x2b, +0x2b,0x11,0x35,0x00,0x00,0x01,0x00,0x82,0x03,0xdb,0x01,0x5e,0x05,0x9a,0x00,0x03,0x00,0x19,0xb9,0x00,0x01,0xff,0xe8,0x40,0x09,0x0e,0x12,0x48,0x01,0xb3,0x03,0x03,0x00,0x02,0x2f,0xcd,0x00,0x3f,0xed,0x31,0x30,0x01,0x2b,0x01,0x03,0x23,0x13,0x01,0x5e,0x68,0x74,0x56,0x05,0x9a,0xfe,0x41,0x01,0xbf,0x00,0x02,0x00,0x8d,0x03,0xdb, +0x02,0x84,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x3b,0xb9,0x00,0x01,0xff,0xe8,0xb3,0x0e,0x12,0x48,0x05,0xb8,0xff,0xe8,0x40,0x17,0x0e,0x12,0x48,0x05,0x01,0xb3,0x40,0x04,0x00,0x03,0x00,0x0e,0x02,0x06,0x80,0x06,0x04,0x42,0x04,0x00,0x06,0x01,0x06,0x2f,0x5d,0xcd,0x2b,0x01,0x1a,0x18,0x10,0xdc,0xe1,0x00,0x3f,0xc4,0x1a,0xfd,0xc4, +0x31,0x30,0x01,0x2b,0x2b,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0x84,0x6a,0x74,0x56,0x93,0x69,0x73,0x55,0x05,0x9a,0xfe,0x41,0x01,0xbf,0xfe,0x41,0x01,0xbf,0x00,0x04,0x00,0x96,0xff,0xec,0x06,0x0e,0x05,0xae,0x00,0x14,0x00,0x18,0x00,0x24,0x00,0x2e,0x00,0x63,0x40,0x35,0x15,0x03,0x09,0x07,0x0c,0x07,0xe6,0x59,0x0c,0x24, +0x00,0x02,0x12,0x02,0xe6,0x59,0x12,0x27,0x17,0x15,0x1f,0x25,0xe7,0x59,0x1f,0x19,0x19,0x2a,0xe7,0x59,0x19,0x2d,0x28,0xcc,0x1c,0x1c,0x15,0x15,0x22,0xcc,0x2d,0x2d,0x30,0x0f,0x17,0x17,0x0f,0x09,0x14,0x14,0x05,0xcc,0x0f,0x2f,0xe1,0x33,0x2f,0xc6,0x11,0x33,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x32,0x2f,0x32,0x2f,0xe1,0x00,0x3f,0x2b, +0x00,0x18,0x10,0xc4,0x2b,0x00,0x18,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x30,0x31,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x32,0x37,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x33,0x32,0x17,0x25,0x01,0x23,0x01,0x03,0x22,0x26,0x35,0x34,0x12,0x33,0x32,0x16,0x15,0x14,0x02,0x03,0x22,0x06,0x15, +0x14,0x33,0x32,0x36,0x35,0x34,0x02,0xf7,0x4f,0x5a,0x76,0x8f,0x9a,0x56,0x76,0x1f,0x66,0x5c,0x80,0x8e,0xe4,0xb8,0x72,0x49,0x02,0xdf,0xfb,0x33,0x93,0x04,0xcc,0xd6,0x8d,0x95,0xe0,0xa9,0x83,0x98,0xdd,0x41,0x6c,0x94,0xa0,0x68,0x8f,0x04,0xf7,0x43,0xc3,0x7f,0xbc,0x4f,0x8d,0x35,0x9f,0x87,0xbf,0x01,0x00,0x32,0x1e,0xfa,0x66,0x05, +0x9a,0xfa,0x52,0xa4,0x84,0xb2,0x01,0x0a,0x9c,0x88,0xb5,0xfe,0xf5,0x02,0x76,0xd2,0x7d,0xb8,0xc6,0x86,0xbb,0x00,0x00,0x02,0x00,0x0e,0xff,0xe8,0x02,0x85,0x05,0xd3,0x00,0x17,0x00,0x20,0x00,0x4b,0x40,0x25,0x18,0x01,0x00,0x16,0x0a,0x05,0x00,0x20,0x17,0x17,0x05,0x13,0x05,0x1d,0xda,0x59,0x05,0x10,0x0e,0x13,0x0e,0xec,0x59,0x13, +0x13,0x10,0x1b,0x48,0x08,0x08,0x22,0x00,0x18,0x01,0x0a,0x83,0x16,0x2f,0xe1,0x39,0x39,0xcd,0x12,0x39,0x2f,0xe1,0xc4,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x1a,0x19,0xcd,0x12,0x39,0x39,0x11,0x39,0x39,0x31,0x30,0x13,0x37,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x01,0x11,0x14,0x16,0x33, +0x32,0x37,0x15,0x06,0x23,0x22,0x35,0x35,0x07,0x13,0x36,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x0e,0xb2,0x7b,0x6f,0x64,0x77,0xfe,0xe3,0x1c,0x1e,0x30,0x96,0x70,0x71,0xc7,0x50,0xf8,0x6d,0x25,0x4c,0x1d,0x29,0x01,0xa6,0xec,0x01,0xc6,0xe2,0x99,0x87,0x68,0xc3,0xfe,0x79,0xfe,0x60,0x5a,0x29,0x6b,0xa2,0x58,0xf1,0xe1,0x62,0x02,0x2b, +0xbb,0x71,0x35,0x76,0x3e,0xb6,0x00,0x02,0x00,0x92,0x00,0x00,0x04,0x42,0x03,0xb0,0x00,0x03,0x00,0x07,0x00,0x3a,0x40,0x0d,0x07,0xf1,0x01,0x0e,0x06,0xf1,0x40,0x02,0x12,0x03,0x02,0x42,0x06,0xb8,0xff,0xe0,0x40,0x14,0x0c,0x06,0x4d,0x06,0xf1,0x02,0x05,0x20,0x0c,0x06,0x4d,0x05,0xf1,0x03,0x08,0x09,0x03,0x02,0xff,0x3a,0x2b,0x01, +0x10,0xe1,0x2b,0x10,0xe1,0x2b,0x2b,0x00,0x18,0x3f,0x1a,0xed,0xfd,0xed,0x31,0x30,0x13,0x21,0x11,0x21,0x13,0x11,0x21,0x11,0x92,0x03,0xb0,0xfc,0x50,0x4b,0x03,0x19,0x03,0xb0,0xfc,0x50,0x03,0x64,0xfc,0xe8,0x03,0x18,0x00,0x01,0x00,0x83,0x01,0xbc,0x02,0x52,0x03,0x8c,0x00,0x03,0x00,0x25,0x40,0x16,0x02,0x0e,0x40,0x03,0x02,0x01, +0x42,0x0f,0x01,0x1f,0x01,0x2f,0x01,0x03,0x09,0x03,0x04,0x05,0x02,0x01,0xff,0x3a,0x2b,0x01,0x5f,0x5e,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x11,0x21,0x11,0x02,0x52,0xfe,0x31,0x03,0x8c,0xfe,0x30,0x01,0xd0,0x00,0x00,0x02,0x00,0x83,0x01,0xbc,0x02,0x52,0x03,0x8c,0x00,0x03,0x00,0x07,0x00,0x41,0x40,0x2a,0x06,0xf1, +0x02,0x0e,0x07,0xf1,0x40,0x01,0x03,0x02,0x42,0x02,0x20,0x0c,0x06,0x4d,0x06,0xf1,0x02,0x05,0x20,0x0c,0x06,0x4d,0x05,0xf1,0x03,0x0f,0x02,0x1f,0x02,0x2f,0x02,0x03,0x09,0x03,0x08,0x09,0x03,0x02,0xff,0x3a,0x2b,0x01,0x5f,0x5e,0x5d,0x10,0xe1,0x2b,0x10,0xe1,0x2b,0x2b,0x00,0x18,0x2f,0x1a,0xed,0xfd,0xed,0x31,0x30,0x13,0x21,0x11, +0x21,0x13,0x11,0x21,0x11,0x83,0x01,0xcf,0xfe,0x31,0x4c,0x01,0x37,0x03,0x8c,0xfe,0x30,0x01,0x84,0xfe,0xc8,0x01,0x38,0x00,0x00,0x01,0x00,0xb2,0x00,0x89,0x04,0x23,0x03,0xfa,0x00,0x0b,0x00,0x25,0x40,0x15,0x03,0x0e,0x40,0x09,0x06,0x00,0x42,0x20,0x00,0x01,0x0f,0x06,0x01,0x09,0x03,0x0c,0x0d,0x06,0x00,0xff,0x3a,0x2b,0x01,0x5f, +0x5e,0x5d,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x34,0x24,0x33,0x32,0x00,0x04,0x23,0xfe,0xff,0xb6,0xb8,0xfe,0xfe,0x01,0x06,0xb2,0xb7,0x01,0x02,0x02,0x42,0xb8,0xfe,0xff,0x01,0x01,0xb8,0xb9,0xff,0xfe,0xfc,0x00,0x00,0x02,0x00,0x70,0x01,0xaa,0x02,0x66,0x03,0xa0,0x00,0x0b,0x00,0x17, +0x00,0x46,0x40,0x2d,0x0f,0xf1,0x03,0x0e,0x15,0xf1,0x40,0x09,0x00,0x20,0x0c,0x06,0x4d,0x06,0x00,0x42,0x12,0xf1,0x00,0x0c,0x20,0x0c,0x06,0x4d,0x0c,0xf1,0x06,0x0f,0x06,0x1f,0x06,0x02,0x0b,0x03,0x00,0x40,0x09,0x0c,0x48,0x18,0x19,0x06,0x00,0xff,0x3a,0x2b,0x01,0x2b,0x5f,0x5e,0x5d,0x10,0xe1,0x2b,0x10,0xe1,0x2b,0x01,0x2b,0x00, +0x18,0x2f,0x1a,0xed,0xf4,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x66,0x92,0x69,0x67,0x94,0x92,0x69,0x67,0x94,0xfe,0x56,0x67,0x49,0x4a,0x64,0x66,0x4a,0x48,0x66,0x02,0xa6,0x6a,0x92,0x94,0x68,0x66,0x94,0x94,0x66,0x4a,0x66, +0x66,0x4a,0x49,0x65,0x67,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0x8c,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x56,0x01,0x5d,0x00,0x13,0x40,0x0b,0x02,0x00,0x12,0x13,0x06,0x07,0x25,0x02,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0x2f,0x02,0x26, +0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xe6,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x22,0x23,0x10,0x14,0x25,0x02,0x21,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x07,0x6c,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x87,0x01,0x5e,0x00,0x13,0x40,0x0b,0x01,0x30, +0x1a,0x16,0x10,0x0a,0x25,0x01,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x06,0x0e,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xb8,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf9,0x40,0x09,0x1a,0x16,0x10,0x0a,0x25,0x01,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x06,0xe2,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x31,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x32,0x19,0x1f,0x10,0x0a,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x05,0x85,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07, +0x00,0xdb,0x01,0x84,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x1d,0x19,0x1f,0x10,0x0a,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x06,0x8b,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xfe,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x12,0x0d,0x0c,0x02,0x03,0x25,0x01, +0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0x2f,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xfa,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x16,0x1c,0x1d,0x19,0x13,0x25,0x02,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4, +0x07,0x1c,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xf3,0x01,0x5e,0x00,0x13,0x40,0x0b,0x01,0x00,0x12,0x0c,0x02,0x03,0x3e,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0xbe,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xf5,0x00,0x00,0x00,0x16, +0xb9,0x00,0x02,0x01,0x1f,0x40,0x09,0x1a,0x1a,0x19,0x13,0x3e,0x02,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x06,0xe2,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x57,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xfd,0x40,0x09,0x0f,0x15,0x02,0x03,0x3e,0x01,0x0c,0x05,0x26, +0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0x85,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x71,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x08,0x1a,0x1a,0x0f,0x0f,0x3e,0x02,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0xec,0x07,0x6c,0x02,0x26, +0x00,0x2a,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x95,0x01,0x5e,0x00,0x13,0x40,0x0b,0x01,0x1d,0x1e,0x1a,0x10,0x0a,0x3e,0x01,0x1e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x06,0x0e,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xd1,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0d, +0x2a,0x26,0x20,0x17,0x3e,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0xec,0x06,0xe2,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x4f,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x2f,0x1d,0x23,0x10,0x0a,0x3e,0x01,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x60,0xfe,0x1e,0x04,0x10,0x05,0x85,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x70,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0a,0x26,0x26,0x13,0x13,0x3e,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xfe,0x85,0x04,0xec,0x05,0xb2,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x01,0x9c, +0x01,0x79,0x00,0x00,0x00,0x0b,0xb6,0x01,0x3f,0x1c,0x1a,0x05,0x19,0x25,0x01,0x2b,0x35,0x00,0x00,0x03,0x00,0x60,0xfe,0x1e,0x04,0x10,0x05,0xc6,0x00,0x18,0x00,0x25,0x00,0x29,0x00,0xbc,0xb6,0x24,0x18,0x0b,0x0c,0x00,0x4c,0x08,0xb8,0xff,0xe0,0x40,0x0e,0x0b,0x0c,0x00,0x4c,0x28,0x26,0x26,0x19,0x10,0x28,0x80,0x26,0x13,0x05,0xb8, +0xff,0xc0,0x40,0x31,0x0b,0x0f,0x48,0x05,0x05,0x07,0x95,0x02,0x1c,0x0a,0x23,0x95,0x0d,0x16,0x17,0x0f,0x15,0x1d,0x95,0x13,0x10,0x04,0x15,0x19,0x16,0x03,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x09,0x05,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xf0, +0x40,0x2b,0x0b,0x06,0x4d,0x09,0x09,0x2b,0x04,0x20,0x06,0x0d,0x06,0x4d,0x20,0x06,0x0c,0x06,0x4d,0x20,0x06,0x0b,0x06,0x4d,0x20,0x83,0x10,0x10,0x0d,0x06,0x4d,0x10,0x0e,0x0c,0x06,0x4d,0x10,0x1a,0x0b,0x06,0x4d,0x10,0x2f,0x2b,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b, +0x2b,0x17,0x33,0x2f,0x00,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x2f,0x2b,0x10,0xde,0x1a,0xcd,0x11,0x12,0x01,0x39,0x2f,0xcd,0x31,0x30,0x00,0x2b,0x2b,0x25,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x20,0x11,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x12,0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06, +0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x13,0x33,0x03,0x04,0x10,0xfd,0xe4,0xc1,0x8b,0xae,0x9c,0x01,0x7a,0x04,0x74,0xec,0xbe,0xea,0xfb,0xda,0xd1,0x62,0x04,0xa4,0xa4,0xa4,0x7c,0x9a,0xaa,0xa6,0x87,0x8b,0xac,0xfe,0x6b,0xa6,0x7b,0x75,0x52,0xfd,0xcc,0x48,0xa4,0x60,0x01,0x92,0x70,0xc4,0x01,0x13,0xe4,0x01,0x05,0x01,0x34,0xa6,0x8e, +0xfd,0xcf,0x97,0x79,0xaf,0xde,0xc6,0xaa,0xce,0xc3,0x03,0x8d,0x01,0x04,0xfe,0xfc,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x07,0x6a,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x5e,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xfd,0x40,0x09,0x10,0x0c,0x06,0x0b,0x3e,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x07,0xbb,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x00,0x01,0xad,0x00,0x16,0xb9,0x00,0x01,0xff,0xf3,0x40,0x09,0x17,0x18,0x04,0x0f,0x3e,0x01,0x16,0x02,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x02,0x00,0x1c,0x00,0x00,0x05,0x92,0x05,0x9a,0x00,0x13,0x00,0x17,0x00,0xa0, +0x40,0x5d,0x06,0x09,0x0d,0x17,0x04,0x13,0x10,0x10,0x13,0x91,0x59,0x10,0x10,0x0f,0x16,0x16,0x02,0x91,0x59,0x16,0x0f,0x00,0x16,0x91,0x2b,0x30,0x0b,0x0f,0x03,0x04,0x00,0x12,0x0d,0x10,0x16,0x03,0x00,0x01,0x12,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x01,0x12,0x0d,0x06,0x4d, +0x01,0x12,0x0c,0x06,0x4d,0x01,0x01,0x19,0x09,0x0c,0x14,0x03,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x7e,0x07,0x05,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0xce,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0xf1,0x2b, +0x2b,0x2b,0xca,0x2f,0x11,0x12,0x17,0x39,0x00,0x3f,0xc4,0x3f,0xc4,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x17,0x39,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x21,0x15,0x21,0x35,0x04,0xf2,0xa8,0xfd,0x1a,0xa8,0xa0,0xa0, +0xa8,0x02,0xe6,0xa8,0xa0,0xa0,0xfc,0x72,0x02,0xe6,0x02,0x8e,0xfd,0x72,0x04,0x04,0x98,0xfe,0xfe,0xfe,0xfe,0x98,0xdf,0xdf,0x00,0x01,0x00,0x1e,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x1a,0x00,0xbd,0x40,0x40,0x00,0x19,0x01,0x03,0x02,0x18,0x01,0x10,0x04,0x0d,0x0a,0x13,0x10,0x10,0x13,0x96,0x59,0x0f,0x10,0x1f,0x10,0x2f,0x10,0x03, +0x09,0x03,0x10,0x10,0x0f,0x17,0x15,0x04,0x17,0x04,0x95,0x59,0x17,0x10,0x0f,0x00,0x08,0x00,0x15,0x12,0x12,0x08,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x1d,0x0b,0x06,0x4d, +0x01,0x01,0x1c,0x0d,0x10,0x13,0x03,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x84,0x0b,0x09,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x1c,0x01,0x5d,0x2f,0x2b,0x2b,0xce,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b, +0x2b,0x2b,0x12,0x39,0x2f,0x00,0x3f,0xc4,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5f,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8, +0xa4,0xee,0x78,0xa4,0xa4,0x88,0x88,0xa4,0x01,0x4c,0xfe,0xb4,0x04,0x78,0xd8,0xa8,0xb2,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfd,0xbc,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfe,0xa4,0xc2,0xd6,0xcb,0xff,0xff,0xff,0xd0,0x00,0x00,0x02,0x51,0x07,0x0c,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xad,0x01,0x5a,0x00,0x13,0x40,0x0b, +0x01,0x00,0x0e,0x04,0x02,0x03,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xad,0x00,0x00,0x02,0x2e,0x05,0xb2,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06,0x00,0xd8,0x8a,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf5,0x40,0x09,0x0e,0x04,0x02,0x03,0x25,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0x13,0x00,0x00,0x02,0x0f,0x06,0x8b,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xd9,0xff,0xd5,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x06,0x07,0x02,0x03,0x25,0x01,0x05,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xef,0x00,0x00,0x01,0xeb,0x05,0x2f,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06, +0x00,0xd9,0xb1,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf5,0x40,0x09,0x06,0x07,0x02,0x03,0x25,0x01,0x05,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xfe,0x00,0x00,0x02,0x23,0x07,0x1a,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xda,0xff,0xd9,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x0a,0x04,0x02,0x03,0x25,0x01, +0x07,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xdb,0x00,0x00,0x02,0x00,0x05,0xbe,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06,0x00,0xda,0xb6,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf5,0x40,0x09,0x0a,0x04,0x02,0x03,0x25,0x01,0x07,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x50,0xfe,0x70,0x01,0x64, +0x05,0x9a,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x06,0x00,0xdf,0x12,0x00,0x00,0x0b,0xb6,0x01,0x00,0x04,0x04,0x00,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x37,0xfe,0x70,0x01,0x66,0x05,0xd9,0x02,0x26,0x00,0x4c,0x00,0x00,0x01,0x06,0x00,0xdf,0xf9,0x00,0x00,0x0b,0xb6,0x02,0x00,0x1e,0x10,0x0e,0x0f,0x25,0x01,0x2b,0x35,0x00, +0xff,0xff,0x00,0x14,0xff,0xe8,0x02,0xf2,0x07,0x6a,0x02,0x26,0x00,0x2d,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0x62,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x12,0x13,0x0b,0x0c,0x3e,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0x3a,0xfe,0x1e,0x02,0x0f,0x06,0x0e,0x02,0x26,0x06,0xac,0x00,0x00,0x01,0x07, +0x00,0xd7,0xff,0x7f,0x00,0x00,0x00,0x08,0xb3,0x01,0x11,0x11,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0x85,0x04,0xa2,0x05,0x9a,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x01,0x9c,0x00,0xea,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x14,0x11,0x06,0x01,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0xfe,0x85,0x03,0xf8,0x05,0xec, +0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x01,0x9c,0x00,0x87,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x10,0x0d,0x04,0x01,0x3e,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x00,0x0c,0x00,0x66,0x40,0x45,0x7a,0x0c,0x01,0x77,0x0b,0x01,0x79,0x02,0x01,0x7d,0x0a,0x01,0x7e,0x01,0x01,0x36,0x0c,0x01,0x2a,0x01, +0x01,0x36,0x00,0x01,0x05,0x15,0x06,0x0f,0x0a,0x0b,0x0b,0x01,0x70,0x00,0x01,0x00,0x14,0x0b,0x06,0x4d,0x00,0x0c,0x08,0x04,0x06,0x0d,0x06,0x4d,0x04,0x06,0x0c,0x06,0x4d,0x04,0x06,0x0b,0x06,0x4d,0x04,0x84,0x05,0x04,0x0d,0x06,0x4d,0x05,0x2f,0x0e,0x01,0x5d,0x2f,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x2f,0x2b,0x5d,0x33,0x33,0x2f, +0x33,0x00,0x3f,0x3f,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x03,0xf8,0xe6,0xfe,0x3c,0x04,0xa4,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0x01,0xec,0xfe,0x14,0x04,0x00,0xfe,0x2b,0x01,0xd5,0xfe,0x12,0x00,0xff,0xff,0x00,0xbc,0xfe,0x85,0x03,0xa4, +0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x00,0x07,0x01,0x9c,0x00,0x96,0x00,0x00,0xff,0xff,0x00,0x27,0xfe,0x85,0x01,0x4a,0x05,0xec,0x02,0x26,0x00,0x4f,0x00,0x00,0x00,0x07,0x01,0x9c,0xff,0x4c,0x00,0x00,0xff,0xff,0x00,0xbc,0xfe,0x85,0x05,0x40,0x05,0x9a,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x01,0x9c,0x01,0x6a,0x00,0x00, +0x00,0x0e,0xb9,0x00,0x01,0xff,0xea,0xb4,0x16,0x14,0x08,0x01,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0x85,0x03,0xf8,0x04,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x01,0x9c,0x00,0xb9,0x00,0x00,0x00,0x0b,0xb6,0x01,0x10,0x16,0x13,0x08,0x01,0x3e,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xbc,0xfe,0x5a,0x05,0x40,0x05,0x9a, +0x00,0x1b,0x00,0xb8,0xb5,0x02,0x09,0x01,0x10,0x04,0x0c,0xb8,0xff,0xc0,0xb3,0x10,0x00,0x4d,0x0c,0xb8,0xff,0xe8,0x40,0x3d,0x0c,0x00,0x4d,0x02,0x20,0x10,0x00,0x4d,0x17,0x19,0x14,0x19,0x91,0x59,0x14,0x02,0x0c,0x1b,0x10,0x08,0x03,0x1b,0x07,0x12,0x16,0x16,0x12,0x1b,0x1b,0x0c,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08,0x0c,0x06,0x4d, +0x12,0x08,0x0b,0x06,0x4d,0x12,0x7e,0x7f,0x0f,0x01,0x0f,0x18,0x0d,0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xf8,0x40,0x1a,0x0b,0x06,0x4d,0x0f,0x0f,0x1d,0x09,0x03,0x06,0x06,0x0d,0x06,0x4d,0x06,0x06,0x0c,0x06,0x4d,0x06,0x06,0x0b,0x06,0x4d,0x06,0x7e,0x07,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf8,0x40, +0x09,0x0c,0x06,0x4d,0x07,0x06,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x39,0x33,0x2f,0x10,0xc0,0x2f,0x00,0x3f,0xc4,0x3f,0xc4,0x12,0x39,0x39,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x2b,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x01,0x26,0x27,0x23, +0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x26,0x35,0x11,0x33,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x01,0x90,0x16,0x18,0x06,0x08,0xa8,0xda,0x02,0xce,0x02,0x38,0x04,0x0a,0xa8,0xfe,0x93,0x4c,0x3d,0x4e,0x3f,0xbd,0x04,0x77,0x20,0x3a,0x35,0x90,0xfb,0xf4,0x05,0x9a,0xfb,0xd6,0x02,0x66,0x48,0x94,0x03,0xb6, +0xfa,0xa6,0xfe,0x1a,0x1f,0xa5,0x2c,0x01,0x0e,0x00,0x00,0x01,0x00,0xa6,0xfe,0x5a,0x03,0xf8,0x04,0x18,0x00,0x19,0x00,0x9c,0x40,0x2b,0x00,0x18,0x01,0x10,0x03,0x05,0x07,0x02,0x07,0x91,0x59,0x02,0x14,0x0c,0x17,0x0c,0x95,0x59,0x17,0x10,0x12,0x0f,0x11,0x15,0x04,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b, +0x06,0x4d,0x00,0x84,0x09,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xf8,0x40,0x1e,0x0b,0x06,0x4d,0x09,0x09,0x1b,0x13,0x10,0x06,0x0d,0x06,0x4d,0x10,0x06,0x0c,0x06,0x4d,0x10,0x06,0x0b,0x06,0x4d,0x10,0x84,0x11,0x02,0x0d,0x06,0x4d,0x11,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x11, +0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x11,0x2f,0x1b,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc4,0x00,0x3f,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x31,0x30,0x5f,0x5e,0x5d,0x25,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x10, +0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xfe,0x9a,0x4c,0x3e,0x4e,0x40,0xbe,0xee,0x7a,0xa2,0xa4,0xa4,0x04,0x75,0xdb,0x01,0x5a,0x1a,0xfe,0x40,0x1f,0xa5,0x2c,0x01,0x0e,0x02,0x48,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xfe,0x5a,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa, +0x06,0x8b,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0xce,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x06,0x1a,0x1b,0x03,0x09,0x3e,0x02,0x19,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0x2f,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x26,0x00,0x00,0x00,0x13, +0x40,0x0b,0x02,0x0a,0x1a,0x1b,0x03,0x09,0x3e,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x1c,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0xd7,0x01,0x5e,0x00,0x13,0x40,0x0b,0x02,0x00,0x1b,0x1b,0x0c,0x0c,0x3e,0x02,0x1b,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b, +0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0xbe,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x35,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x21,0x21,0x06,0x06,0x3e,0x02,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x85,0x04,0xc0,0x05,0x9a,0x02,0x26,0x00,0x35,0x00,0x00, +0x00,0x07,0x01,0x9c,0x00,0xe4,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x85,0x02,0xbc,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x06,0x01,0x9c,0x19,0x00,0x00,0x0b,0xb6,0x01,0x1f,0x14,0x14,0x06,0x06,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x07,0x6a,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x00,0xd7, +0x00,0xb1,0x01,0x5c,0x00,0x08,0xb3,0x01,0x3a,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x06,0x0e,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x06,0x00,0xd7,0x37,0x00,0x00,0x08,0xb3,0x01,0x30,0x11,0x26,0x00,0x2b,0x35,0x00,0x01,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x00,0x0f,0x00,0xa3,0x40,0x1a,0x0b,0x08, +0x05,0x02,0x02,0x05,0x91,0x59,0x02,0x0f,0x06,0x02,0x91,0x2b,0x30,0x0c,0x00,0x0f,0x00,0x91,0x59,0x0f,0x03,0x06,0x12,0x0d,0xb8,0xff,0xfa,0xb3,0x0b,0x06,0x4d,0x00,0xb8,0xff,0xfa,0x40,0x2f,0x0b,0x06,0x4d,0x04,0x0e,0x06,0x07,0x09,0x42,0x09,0x07,0x00,0x0e,0x06,0x07,0x0d,0x42,0x2f,0x0d,0x3f,0x0d,0xcf,0x0d,0x03,0x0d,0x0d,0x10, +0x0b,0x02,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x7e,0x07,0x04,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf8,0x40,0x0d,0x0b,0x06,0x4d,0x07,0x07,0x11,0x10,0x11,0x40,0x0c,0x00,0x4d,0x11,0xb8,0xff,0xc0,0xb2,0x0b,0x00,0x4d,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x5d,0x2b,0x01, +0x10,0xe0,0x18,0x10,0xc6,0x2b,0x01,0x10,0xe2,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x01,0x21,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x35,0x21,0x04,0x0c,0xfe,0x62,0xf6,0xf6,0xa8,0xf9,0xf9,0xfe,0x63,0x03,0xe3,0x05,0x02,0xfe,0x1a, +0x9b,0xfd,0x7f,0x02,0x81,0x9b,0x01,0xe6,0x98,0x00,0x00,0x01,0x00,0x2b,0xff,0xea,0x02,0x81,0x05,0x2f,0x00,0x1e,0x00,0x93,0x40,0x45,0x0b,0x18,0x0b,0x0c,0x00,0x4c,0x1d,0x01,0x0d,0x10,0x10,0x0d,0x96,0x59,0x10,0x18,0x14,0x40,0x1c,0x19,0x11,0x14,0x14,0x11,0x95,0x59,0x14,0x0f,0x07,0x05,0x0a,0x05,0x95,0x59,0x0a,0x16,0x07,0x1e, +0x2f,0x1b,0x01,0x1b,0x1b,0x02,0x0e,0x12,0x10,0x14,0x19,0x1d,0x04,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x0c,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0c,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0c,0xb8,0xff,0xee,0xb6,0x0b,0x06,0x4d,0x0c,0x0c,0x20,0x1f,0x11,0x12,0x39,0x2f,0x2b,0x2b, +0x2b,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0xdc,0xc6,0x10,0xc0,0x2f,0x5d,0xc6,0xc4,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xcd,0xc6,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x01,0x23,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33, +0x35,0x36,0x37,0x37,0x11,0x21,0x15,0x21,0x15,0x33,0x02,0x77,0xf8,0x45,0x52,0x3c,0x2f,0x3a,0x5f,0xfe,0xf3,0xa3,0xa3,0xb0,0xb0,0x04,0x4e,0x52,0x01,0x02,0xfe,0xfe,0xf8,0x02,0x23,0xf0,0x67,0x58,0x22,0x8c,0x20,0x01,0x2c,0x01,0x0d,0x85,0xcc,0x8c,0xfa,0x02,0x19,0x1a,0xfe,0xd1,0x8c,0xcc,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5, +0x07,0x0e,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x5f,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x03,0x18,0x0e,0x05,0x0d,0x25,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x05,0xb2,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xd6,0x00,0x00,0x00,0x13, +0x40,0x0b,0x01,0x00,0x1c,0x12,0x08,0x11,0x25,0x01,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x06,0x8b,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x81,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x10,0x11,0x05,0x0d,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b, +0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x05,0x2f,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xf9,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x14,0x15,0x08,0x11,0x25,0x01,0x13,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x1a,0x02,0x26,0x00,0x38, +0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x84,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x14,0x0e,0x05,0x0d,0x25,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x05,0xbe,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xfd,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff, +0xfb,0x40,0x09,0x18,0x12,0x08,0x11,0x25,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xfe,0x70,0x04,0xd5,0x05,0x9a,0x02,0x26,0x00,0x38,0x00,0x00,0x00,0x07,0x00,0xdf,0x02,0x10,0x00,0x00,0xff,0xff,0x00,0x90,0xfe,0x70,0x03,0xe2,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x00,0x07,0x00,0xdf,0x02,0x90, +0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x60,0x07,0x6a,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0xd7,0x02,0x5b,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x1e,0x1e,0x13,0x14,0x25,0x01,0x20,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x06,0x0e,0x02,0x26,0x00,0x5a,0x00,0x00, +0x01,0x07,0x00,0xd7,0x01,0x80,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfb,0x40,0x09,0x1e,0x1e,0x13,0x14,0x25,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x07,0x69,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xc5,0x01,0x5b,0x00,0x13,0x40,0x0b,0x01,0x00,0x13,0x14, +0x05,0x00,0x25,0x01,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x0e,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0x8c,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x10,0x1a,0x1b,0x0c,0x00,0x25,0x01,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xa6, +0x00,0x00,0x02,0x62,0x06,0x02,0x00,0x0c,0x00,0x39,0x40,0x23,0x00,0x02,0x0a,0x02,0x95,0x59,0x0a,0x01,0x05,0x15,0x2f,0x00,0x01,0x00,0x05,0x08,0x0d,0x06,0x4d,0x05,0x08,0x0c,0x06,0x4d,0x05,0x08,0x0b,0x06,0x4d,0x05,0x84,0x06,0x06,0x0e,0x0d,0x11,0x12,0x39,0x2f,0xe1,0x2b,0x2b,0x2b,0xc4,0x5d,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x10, +0xc6,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x17,0x02,0x62,0x2e,0x3e,0xac,0xa4,0xbd,0x89,0x4a,0x2c,0x05,0x5c,0x1b,0xd9,0xfb,0x62,0x04,0xa6,0xa1,0xbb,0x12,0x00,0x00,0x04,0x00,0x16,0x00,0x00,0x05,0x12,0x08,0x52,0x00,0x10,0x00,0x1b,0x00,0x23,0x00,0x27,0x00,0xfe,0x40,0x39,0x78,0x27,0x01,0x76, +0x22,0x01,0x79,0x1d,0x01,0x74,0x0c,0x01,0x7b,0x0a,0x01,0x7b,0x07,0x01,0x77,0x06,0x01,0x02,0x08,0x0c,0x00,0x4d,0x1c,0x02,0x01,0x20,0x01,0x23,0x03,0x04,0x20,0x04,0x73,0x04,0x01,0x7c,0x01,0x01,0x20,0x30,0x0c,0x00,0x4d,0x00,0x16,0x01,0x90,0x27,0x01,0xa0,0x27,0x01,0x27,0xb8,0xff,0xc0,0xb3,0x1d,0x21,0x48,0x27,0xb8,0xff,0xc0, +0x40,0x39,0x16,0x19,0x48,0x27,0xa0,0x26,0xd0,0x26,0xe0,0x26,0x03,0x10,0x26,0x20,0x26,0x30,0x26,0x80,0x26,0x90,0x26,0x05,0x26,0x0b,0x02,0x91,0x1c,0x1c,0x16,0x00,0x11,0xc5,0x0b,0x10,0x06,0x40,0x16,0x03,0x04,0x00,0x12,0x24,0x80,0x26,0x26,0x14,0x19,0xc4,0x0e,0x40,0x09,0x0c,0x48,0x0e,0x14,0xc4,0x08,0xb8,0xff,0xc0,0xb5,0x0c, +0x00,0x4d,0x08,0x08,0x06,0xb8,0xff,0xf8,0x40,0x15,0x0c,0x00,0x4d,0x10,0x08,0x0c,0x00,0x4d,0x1c,0x23,0x06,0x10,0x04,0x05,0x77,0x05,0x01,0x79,0x00,0x01,0x05,0xb8,0xff,0xe8,0x40,0x0c,0x0c,0x00,0x4d,0x00,0x18,0x0c,0x00,0x4d,0x00,0x00,0x29,0x05,0x2f,0x11,0x33,0x2f,0x2b,0x2b,0x5d,0x5d,0x12,0x17,0x39,0x2b,0x2b,0x39,0x2f,0x2b, +0xe9,0xd4,0x2b,0xe9,0x10,0xc0,0x2f,0x1a,0xcd,0x00,0x3f,0xc4,0x3f,0x1a,0xcd,0x39,0xd4,0xed,0x11,0x12,0x39,0x2f,0xed,0x10,0xd6,0x5d,0x72,0xcd,0x2b,0x2b,0x71,0x72,0x5d,0x2b,0x31,0x30,0x01,0x5d,0x5d,0x10,0x87,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x01,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x26, +0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x01,0x01,0x23,0x13,0x05,0x12,0xba,0x98,0xfd,0xa0,0x8f,0xbb,0x02,0x11,0x65,0x78,0x5c,0x58,0x70,0x60,0x6e,0x32,0x40,0x72,0x30,0x42,0x42,0xc9,0xe1,0x0b,0x0b,0x04,0x0a,0x0d,0xdf,0x02, +0x04,0xfe,0xfa,0x7f,0xdf,0x01,0x92,0xfe,0x6e,0x05,0x62,0x34,0x70,0x59,0x6e,0x6d,0x54,0x70,0x36,0x01,0x15,0x3f,0x30,0x72,0x42,0x30,0x31,0x3e,0xfb,0xae,0x02,0x63,0x1e,0x42,0x3d,0x23,0xfd,0x9d,0x06,0x29,0xfe,0xb8,0x01,0x48,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x07,0x66,0x02,0x26,0x00,0x44,0x00,0x00,0x00,0x27,0x00,0xdc, +0x00,0xe9,0xff,0xc2,0x01,0x07,0x00,0x8e,0x01,0x0c,0x01,0x5c,0x00,0x33,0x40,0x25,0x04,0x0f,0x39,0x1f,0x39,0x3f,0x39,0x5f,0x39,0x90,0x39,0x05,0x20,0x39,0x5f,0x39,0x02,0x39,0x26,0x03,0x02,0x20,0x40,0x11,0x15,0x48,0x0f,0x20,0x01,0x10,0x20,0x4f,0x20,0xef,0x20,0x03,0x20,0x00,0x11,0x5d,0x71,0x2b,0x35,0x35,0x10,0xde,0x5d,0x5d, +0x34,0x00,0xff,0xff,0x00,0x0a,0x00,0x00,0x06,0x83,0x07,0x66,0x02,0x26,0x00,0x91,0x00,0x00,0x01,0x07,0x00,0x8e,0x03,0x30,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x17,0x16,0x15,0x11,0x09,0x25,0x02,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x06,0x56,0x06,0x0a,0x02,0x26,0x00,0xa0,0x00,0x00, +0x01,0x07,0x00,0x8e,0x02,0x55,0x00,0x00,0x00,0x13,0x40,0x0b,0x03,0x11,0x37,0x37,0x1e,0x1e,0x25,0x03,0x38,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xcd,0x05,0xaa,0x07,0x66,0x02,0x26,0x00,0x92,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xfa,0x01,0x5c,0x00,0x13,0x40,0x0b,0x03,0x20,0x25,0x27,0x16,0x08, +0x25,0x03,0x26,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x31,0xff,0xae,0x04,0x96,0x06,0x0a,0x02,0x26,0x00,0xa1,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x58,0x00,0x00,0x00,0x16,0xb9,0x00,0x03,0xff,0xf9,0x40,0x09,0x25,0x25,0x16,0x10,0x3e,0x03,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x01,0x00,0x70, +0x01,0xfe,0x01,0x50,0x02,0xdf,0x00,0x0b,0x00,0x15,0x40,0x0b,0x06,0x00,0xb0,0x5b,0x06,0x09,0xaf,0x03,0x2f,0x0d,0x01,0x5d,0x2f,0xe1,0x00,0x2f,0x2b,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x01,0xfe,0x42,0x2e,0x2f,0x42,0x42,0x2f,0x2e,0x42,0x00,0xff,0xff, +0x00,0x1a,0x00,0x00,0x07,0x60,0x07,0x66,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0x43,0x02,0xa0,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x1f,0x1d,0x13,0x14,0x25,0x01,0x1d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x06,0x0a,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07, +0x00,0x43,0x01,0xb5,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xe7,0x40,0x09,0x1f,0x1d,0x13,0x14,0x25,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x60,0x07,0x66,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x96,0x01,0x5c,0x00,0x17,0x40,0x0e,0x01,0x5f,0x1d,0x01,0x00,0x1d, +0x1f,0x13,0x14,0x25,0x01,0x1e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x5d,0x35,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x06,0x0a,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xc4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x03,0x1d,0x1f,0x13,0x14,0x25,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x1a,0x00,0x00,0x07,0x60,0x06,0xe4,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0x8f,0x02,0x1c,0x01,0x5d,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf1,0x40,0x0a,0x31,0x1f,0x13,0x14,0x25,0x02,0x01,0x28,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x05,0x87,0x02,0x26,0x00,0x5a, +0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x44,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xef,0x40,0x0a,0x31,0x1f,0x13,0x14,0x25,0x02,0x01,0x28,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x07,0x66,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xf6,0x01,0x5c,0x00,0x1a, +0xb3,0x01,0x00,0x11,0x01,0xb8,0xff,0xe6,0x40,0x09,0x11,0x0f,0x05,0x00,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x5d,0x35,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x0a,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0x9e,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xd6,0x40,0x09,0x18,0x16,0x0c,0x00,0x25, +0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x01,0x00,0x6e,0x03,0xf4,0x01,0x70,0x05,0xb2,0x00,0x03,0x00,0x1c,0x40,0x10,0x00,0xb3,0x40,0x03,0x04,0x00,0xb4,0x80,0x10,0x02,0x50,0x02,0x60,0x02,0x03,0x02,0x2f,0x5d,0x1a,0xe9,0x00,0x3f,0x1a,0xed,0x31,0x30,0x01,0x23,0x03,0x33,0x01,0x70,0x74,0x8e,0x94,0x03,0xf4,0x01, +0xbe,0x00,0x00,0x01,0x00,0x00,0x05,0x74,0x03,0x52,0x05,0xec,0x00,0x03,0x00,0x10,0xb7,0x02,0x01,0xd9,0x59,0x02,0x00,0x03,0x02,0x2f,0x2f,0x00,0x3f,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x52,0xfc,0xae,0x03,0x52,0x05,0x74,0x78,0x00,0x00,0x01,0x00,0x6a,0x00,0x00,0x03,0xee,0x05,0xb2,0x00,0x23,0x00,0x92,0x40,0x57,0x01,0x02, +0x22,0x03,0x0b,0x0e,0x0e,0x0b,0x9a,0x59,0x00,0x0e,0x10,0x0e,0x20,0x0e,0x03,0x09,0x03,0x0e,0x12,0x40,0x21,0x1e,0x0f,0x12,0x12,0x0f,0x9a,0x59,0x0f,0x12,0x1f,0x12,0x02,0x09,0x03,0x12,0x12,0x16,0x06,0x19,0x1b,0x16,0x1b,0x9a,0x59,0x16,0x04,0x06,0x05,0x9a,0x59,0x06,0x12,0x00,0x1f,0x4f,0x18,0x01,0x18,0x06,0x06,0x25,0x0f,0x12, +0x1e,0x21,0x04,0x01,0x08,0x0c,0x06,0x4d,0x01,0x8a,0x04,0x08,0x0b,0x10,0x0c,0x0b,0x10,0x0c,0x06,0x4d,0x0b,0x2f,0x2b,0xdd,0xc4,0x10,0xc6,0x32,0xe1,0x2b,0x17,0x39,0x12,0x39,0x2f,0xd4,0x5d,0xd4,0xc4,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a, +0x18,0x10,0xcd,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x17,0x39,0x31,0x30,0x01,0x21,0x15,0x14,0x07,0x21,0x15,0x21,0x35,0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x15,0x21,0x15,0x21,0x15,0x21,0x03,0x10,0xfe,0xd8,0xc1,0x02,0xc7,0xfc,0x7c,0xda,0xc5,0xc5,0xc5,0xc5, +0xda,0xad,0x76,0x5f,0x63,0x70,0xe5,0x01,0x28,0xfe,0xd8,0x01,0x28,0x01,0xe8,0x09,0xf3,0x60,0x8c,0x87,0x47,0xf2,0x28,0x8c,0x88,0x8d,0x7d,0xbc,0xf0,0x29,0x9b,0x39,0xfe,0xcd,0x6b,0x8d,0x88,0x00,0x00,0x02,0x00,0x55,0xff,0xdd,0x04,0x78,0x04,0x48,0x00,0x12,0x00,0x19,0x00,0x53,0x40,0x2e,0x00,0x06,0x10,0x06,0x02,0x09,0x03,0x06, +0x06,0x00,0x04,0x13,0x00,0xc3,0x59,0x13,0x13,0x10,0x04,0x10,0x16,0xc3,0x59,0x10,0x0a,0x04,0xc3,0x59,0x0a,0x19,0x07,0x40,0x10,0x1e,0x48,0x07,0x07,0x00,0xaf,0x13,0x13,0x1b,0x19,0x01,0xaf,0x0d,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12, +0x00,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x31,0x30,0x01,0x21,0x13,0x16,0x33,0x32,0x37,0x17,0x06,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x00,0x07,0x11,0x26,0x23,0x22,0x07,0x11,0x04,0x78,0xfc,0xc4,0x01,0x78,0xb0,0xff,0x8c,0x48,0x68,0xdb,0x8f,0xee,0xfe,0xdd,0x01,0x29,0xe4,0xd8,0x01,0x30,0xda,0x82,0xad,0xaf,0x76,0x02,0x12, +0xfe,0x8e,0x79,0xf5,0x2a,0x98,0x7d,0x01,0x43,0xf2,0xfe,0x01,0x38,0xfe,0xe4,0xd0,0x01,0x29,0x7b,0x7b,0xfe,0xd7,0xff,0xff,0x00,0x50,0xff,0xec,0x06,0xe2,0x05,0xb0,0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x07,0x02,0x3b,0x04,0x35,0xfd,0xb8,0x00,0x0b,0xb4,0x04,0x03,0x02,0x30,0x2d,0x00,0x3f, +0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x81,0xff,0xec,0x07,0x2a,0x05,0xae,0x00,0x26,0x00,0xf2,0x00,0x00,0x00,0x27,0x00,0xbc,0x03,0x07,0x00,0x00,0x01,0x07,0x02,0x3b,0x04,0x7d,0xfd,0xb8,0x00,0x0b,0xb4,0x04,0x03,0x02,0x44,0x2d,0x00,0x3f,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x8c,0xff,0xec,0x07,0x2c,0x05,0x9e,0x00,0x26,0x02,0x39, +0x11,0x00,0x00,0x27,0x00,0xbc,0x03,0x09,0x00,0x00,0x01,0x07,0x02,0x3b,0x04,0x7f,0xfd,0xb8,0x00,0x0b,0xb4,0x04,0x03,0x02,0x48,0x2d,0x00,0x3f,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0xa2,0xff,0xec,0x06,0xa5,0x05,0xa4,0x00,0x26,0x02,0x3a,0x55,0x00,0x00,0x27,0x00,0xbc,0x02,0x82,0x00,0x00,0x01,0x07,0x02,0x3b,0x03,0xf8,0xfd,0xb8, +0x00,0x0b,0xb4,0x04,0x03,0x02,0x2e,0x2d,0x00,0x3f,0x35,0x35,0x35,0x00,0x00,0x01,0x00,0xdb,0xfe,0x85,0x01,0xfc,0xff,0x89,0x00,0x03,0x00,0x17,0x40,0x0c,0x02,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x05,0x03,0x23,0x13,0x01,0xfc,0xa6,0x7b,0x75,0x77,0xfe,0xfc,0x01, +0x04,0x00,0x00,0x01,0x00,0xdb,0xfe,0x85,0x01,0xfc,0xff,0x89,0x00,0x03,0x00,0x17,0x40,0x0c,0x02,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x05,0x03,0x23,0x13,0x01,0xfc,0xa6,0x7b,0x75,0x77,0xfe,0xfc,0x01,0x04,0x00,0xff,0xff,0x00,0x27,0xfe,0xf8,0x01,0x52,0x04,0x16, +0x02,0x06,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0xce,0x04,0x96,0x01,0xdb,0x06,0x01,0x00,0x03,0x00,0x0f,0xb5,0x01,0x00,0x01,0x02,0x80,0x00,0x2f,0x1a,0xcd,0x00,0x3f,0xcd,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0xdb,0xaf,0x5e,0x66,0x06,0x01,0xfe,0x95,0x01,0x6b,0x00,0x03,0xff,0xda,0x04,0xa4,0x02,0x84,0x06,0x0f,0x00,0x03,0x00,0x0f, +0x00,0x1b,0x00,0x2a,0x40,0x14,0x0a,0x04,0x16,0xc1,0x40,0x10,0x03,0x01,0x0d,0xc0,0x07,0x07,0x00,0x13,0xc0,0x19,0x19,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x33,0x2f,0xe1,0x11,0x33,0x2f,0xe1,0x00,0x2f,0xcd,0xd4,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22, +0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0xd6,0xaf,0x5d,0x65,0xf2,0x28,0x39,0x39,0x27,0x2a,0x3a,0x3a,0xfd,0xf2,0x28,0x3a,0x3a,0x28,0x29,0x3b,0x3a,0x06,0x0f,0xfe,0x95,0x01,0x6b,0xfe,0xb9,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12, +0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x01,0x9f,0xff,0x5f,0xff,0x99,0x00,0x12,0x40,0x0a,0x02,0x13,0x03,0x02,0x17,0x12,0x12,0x05,0x05,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xc5,0x00,0x00,0x04,0x36,0x05,0x9a,0x00,0x27,0x00,0x28,0x00,0x82,0x00,0x00,0x01,0x07,0x01,0x9f,0xfe,0xf7,0xff,0x99,0x00,0x14, +0xb3,0x01,0x0f,0x03,0x01,0xb8,0xff,0x94,0xb4,0x0c,0x0c,0x02,0x02,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xc5,0x00,0x00,0x05,0x74,0x05,0x9a,0x00,0x27,0x00,0x2b,0x00,0x82,0x00,0x00,0x01,0x07,0x01,0x9f,0xfe,0xf7,0xff,0x99,0x00,0x14,0xb3,0x01,0x0f,0x03,0x01,0xb8,0xff,0x94,0xb4,0x0c,0x0c,0x06,0x06,0x3e,0x01,0x2b, +0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xc6,0x00,0x00,0x02,0x4a,0x05,0x9a,0x00,0x27,0x00,0x2c,0x00,0xe6,0x00,0x00,0x01,0x07,0x01,0x9f,0xfe,0xf8,0xff,0x99,0x00,0x07,0xb2,0x01,0x07,0x03,0x00,0x3f,0x35,0x00,0xff,0xff,0xff,0xd1,0xff,0xe8,0x06,0x10,0x05,0xb2,0x00,0x26,0x00,0x32,0x66,0x00,0x01,0x07,0x01,0x9f,0xff,0x03,0xff,0x99, +0x00,0x12,0x40,0x0a,0x02,0x1b,0x03,0x02,0x1a,0x18,0x18,0x03,0x03,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xb3,0x00,0x00,0x05,0x48,0x05,0x9a,0x00,0x27,0x00,0x3c,0x00,0xe8,0x00,0x00,0x01,0x07,0x01,0x9f,0xfe,0xe5,0xff,0x99,0x00,0x14,0xb3,0x01,0x11,0x03,0x01,0xb8,0xff,0xc6,0xb4,0x0e,0x0e,0x05,0x05,0x3e,0x01,0x2b, +0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xd1,0x00,0x00,0x06,0x3b,0x05,0xb2,0x00,0x27,0x00,0x9f,0x00,0x92,0x00,0x00,0x01,0x07,0x01,0x9f,0xff,0x03,0xff,0x99,0x00,0x14,0xb3,0x01,0x1f,0x03,0x01,0xb8,0xff,0xe8,0xb4,0x1c,0x1c,0x12,0x12,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xb2,0xff,0xf4,0x02,0x5c,0x06,0x0f,0x02,0x26, +0x01,0xc9,0x00,0x00,0x01,0x06,0x01,0xa0,0xd8,0x00,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xfc,0x40,0x0b,0x0e,0x0e,0x05,0x05,0x3e,0x03,0x02,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0x9a,0x02,0x06,0x00,0x24,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00, +0x04,0x2f,0x05,0x9a,0x02,0x06,0x00,0x25,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x05,0x9a,0x02,0x06,0x00,0x28,0x00,0x00,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x05,0x9a,0x02,0x06,0x00,0x3d,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x05,0x9a,0x02,0x06,0x00,0x2b,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00, +0x01,0x64,0x05,0x9a,0x02,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x02,0x06,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x00,0x04,0xef,0x05,0x9a,0x00,0x0b,0x00,0x5f,0x40,0x18,0x77,0x09,0x01,0x71,0x08,0x01,0x76,0x07,0x01,0x79,0x02,0x01,0x7e,0x01,0x01,0x78,0x00,0x01,0x0a,0x08,0x0c,0x00, +0x4d,0x07,0xb8,0xff,0xf0,0x40,0x0b,0x0b,0x0c,0x00,0x4c,0x02,0x10,0x0b,0x0c,0x00,0x4c,0x0b,0xb8,0xff,0xf8,0x40,0x0e,0x0c,0x00,0x4d,0x0b,0x03,0x00,0x12,0x00,0x18,0x0b,0x0c,0x00,0x4c,0x09,0xb8,0xff,0xe8,0xb7,0x0b,0x0c,0x00,0x4c,0x00,0x00,0x0d,0x09,0x2f,0x12,0x39,0x2f,0x2b,0x2b,0x00,0x3f,0x3f,0x31,0x30,0x01,0x2b,0x2b,0x2b, +0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x33,0x04,0xef,0xbb,0xfe,0x6c,0x10,0x0c,0x04,0x0a,0x14,0xfe,0x6a,0xb4,0x02,0x0e,0xbe,0x04,0x7e,0x2f,0x47,0x3e,0x39,0xfb,0x83,0x05,0x9a,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x06,0x72,0x05,0x9a,0x02,0x06,0x00,0x30,0x00,0x00,0xff,0xff, +0x00,0xbc,0x00,0x00,0x05,0x40,0x05,0x9a,0x02,0x06,0x00,0x31,0x00,0x00,0x00,0x03,0x00,0x3a,0x00,0x00,0x03,0xdb,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x52,0x40,0x32,0x06,0x05,0x91,0x59,0x06,0x02,0x09,0x06,0x91,0x2b,0x30,0x02,0x01,0xee,0x59,0x02,0x03,0x09,0x0a,0xee,0x59,0x09,0x12,0x0f,0x04,0x5f,0x04,0x02,0x0b,0x03, +0x09,0x08,0x05,0x04,0xff,0x3a,0x30,0x01,0x70,0x01,0x02,0x00,0x01,0x00,0x01,0x0a,0x08,0x08,0x0d,0x09,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x01,0x5f,0x5e,0x5d,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x21,0x35,0x21,0x13,0x21,0x35,0x21,0x03,0xc0, +0xfc,0x94,0x03,0x6c,0x8a,0xfd,0xa9,0x02,0x57,0xa5,0xfc,0x5f,0x03,0xa1,0x04,0xfa,0xa0,0xfc,0xee,0x99,0xfc,0xdf,0xa2,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x02,0x06,0x00,0x32,0x00,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xfc,0x05,0x9a,0x00,0x07,0x00,0x6f,0x40,0x3c,0x07,0x02,0x91,0x59,0x07,0x03,0x04,0x00, +0x12,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x01,0x01,0x01,0x10,0x0d,0x06,0x4d,0x01,0x12,0x0c,0x06,0x4d,0x01,0x01,0x09,0x04,0x06,0x0d,0x06,0x4d,0x04,0x06,0x0c,0x06,0x4d,0x04,0x06,0x0b,0x06,0x4d,0x04,0x7e,0x05,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf4,0xb3, +0x0c,0x06,0x4d,0x05,0xb8,0xff,0xfe,0xb3,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x32,0x3f,0x2b,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x04,0xfc,0xaa,0xfd,0x13,0xa9,0x04,0x40,0x04,0xfe,0xfb,0x02,0x05,0x9a,0x00,0xff,0xff,0x00,0xbc, +0x00,0x00,0x04,0x29,0x05,0x9a,0x02,0x06,0x00,0x33,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x00,0x03,0xf0,0x05,0x9a,0x00,0x0b,0x00,0x5e,0x40,0x0c,0x05,0x0a,0x01,0x04,0x08,0x01,0x0c,0x03,0x01,0x10,0x03,0x0a,0xb8,0xff,0xe8,0xb3,0x0c,0x00,0x4d,0x08,0xb8,0xff,0xe8,0x40,0x22,0x0c,0x00,0x4d,0x03,0x18,0x0c,0x00,0x4d,0x04,0x07,0x06, +0x06,0x07,0x91,0x59,0x06,0x03,0x02,0x00,0x0b,0x00,0x0b,0x91,0x59,0x00,0x12,0x07,0x00,0x00,0x0d,0x08,0x04,0x0a,0x02,0x2f,0x33,0xc6,0x32,0x12,0x39,0x2f,0xc4,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x5d,0x21,0x21,0x35,0x01,0x01,0x35,0x21,0x15, +0x21,0x01,0x01,0x21,0x03,0xf0,0xfc,0x3e,0x01,0xd1,0xfe,0x59,0x03,0x5a,0xfd,0x9b,0x01,0x7b,0xfe,0x5c,0x02,0xcc,0x4e,0x02,0x94,0x02,0x5e,0x5a,0x9b,0xfd,0xe9,0xfd,0xac,0x00,0xff,0xff,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x02,0x06,0x00,0x37,0x00,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x02,0x06,0x00,0x3c, +0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x02,0x06,0x00,0x3b,0x00,0x00,0x00,0x01,0x00,0x88,0x00,0x00,0x05,0xae,0x05,0x9a,0x00,0x19,0x00,0xca,0xb9,0x00,0x16,0xff,0xc0,0xb3,0x0c,0x00,0x4d,0x03,0xb8,0xff,0xc0,0x40,0x1a,0x0c,0x00,0x4d,0x18,0x0e,0x0b,0x01,0x0b,0x01,0x91,0x59,0x0b,0x0b,0x0c,0x14,0x00,0x06, +0x03,0x0c,0x12,0x07,0x08,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x04,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x04,0x7e,0x07,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x07,0xb8,0xff,0xf4,0x40,0x40,0x0b,0x06,0x4d,0x07,0x0e,0x0c,0x0d,0x12,0x42,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d, +0x15,0x7e,0x12,0x0d,0x0c,0x06,0x4d,0x12,0x08,0x0d,0x06,0x4d,0x12,0x0d,0x0b,0x06,0x4d,0x12,0x12,0x1a,0x18,0x01,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x7e,0x0d,0xb8,0xff,0xfb,0x40,0x0a,0x0b,0x06,0x4d,0x0d,0x0d,0x1b,0x1a,0x4f,0x1b,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b, +0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x33,0x33,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x2b,0x01,0x11,0x33,0x20,0x11,0x11,0x33,0x11,0x14,0x00,0x23,0x23,0x11,0x23,0x11,0x23,0x22,0x00,0x35,0x11,0x33,0x11, +0x10,0x21,0x33,0x11,0x03,0x68,0x39,0x01,0x6a,0xa3,0xfe,0xe2,0xef,0x39,0x9b,0x39,0xf0,0xfe,0xe4,0xa2,0x01,0x6a,0x39,0x05,0x9a,0xfc,0x80,0x01,0x6e,0x02,0x12,0xfd,0xee,0xe3,0xfe,0xe1,0xfe,0x7a,0x01,0x86,0x01,0x1f,0xe3,0x02,0x12,0xfd,0xee,0xfe,0x92,0x03,0x80,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x05,0xa9,0x05,0xb2,0x02,0x06, +0x00,0x9f,0x00,0x00,0xff,0xff,0xff,0xf1,0x00,0x00,0x02,0x38,0x06,0xe3,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x74,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x04,0x13,0x0d,0x02,0x03,0x25,0x02,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x06,0xe2, +0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x95,0x01,0x5b,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfc,0x40,0x0a,0x1d,0x17,0x05,0x00,0x25,0x02,0x01,0x1a,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x01,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x07,0x01,0x9f,0x01,0x41, +0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0e,0x29,0x27,0x0a,0x13,0x25,0x02,0x29,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x01,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x07,0x01,0x9f,0x00,0xe6,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x77,0x28,0x26,0x0c,0x11,0x25,0x01,0x28,0x11,0x26,0x00, +0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x01,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x07,0x01,0x9f,0x01,0x44,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x4b,0x17,0x15,0x07,0x02,0x25,0x01,0x17,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0xff,0xf4,0x02,0x08,0x06,0x01,0x02,0x26, +0x01,0xc9,0x00,0x00,0x01,0x06,0x01,0x9f,0xe1,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xe7,0x40,0x09,0x0e,0x0d,0x05,0x06,0x25,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x0f,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x07,0x01,0xa0,0x01,0x07,0x00,0x00,0x00,0x1e,0xb2,0x03,0x02,0x01, +0xb8,0xff,0xd8,0x40,0x0b,0x30,0x2a,0x00,0x16,0x25,0x03,0x02,0x01,0x1f,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0x02,0x00,0xa7,0xfe,0x1f,0x04,0x15,0x05,0xfc,0x00,0x14,0x00,0x25,0x00,0xc7,0xb5,0x02,0x1c,0x01,0x10,0x04,0x0f,0xb8,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x07,0xb8,0xff,0xe8,0x40,0x3e,0x0b, +0x00,0x4d,0x0d,0x15,0x16,0x16,0x15,0x96,0x59,0x16,0x16,0x06,0x13,0x06,0x1b,0x95,0x59,0x06,0x01,0x00,0x1f,0x21,0x13,0x21,0x95,0x59,0x13,0x16,0x01,0x1c,0x0c,0x15,0x15,0x01,0x09,0x08,0x0c,0x06,0x4d,0x19,0x84,0x09,0x09,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06,0x4d,0x10,0x83,0x24,0xb8,0xff,0xf0, +0xb3,0x0d,0x06,0x4d,0x24,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x24,0xb8,0xff,0xf8,0x40,0x19,0x0b,0x06,0x4d,0x24,0x24,0x27,0x1f,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x84,0x02,0xb8,0xff,0xfa,0x40,0x09,0x0c,0x06,0x4d,0x02,0x0a,0x0b,0x06,0x4d,0x02,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b, +0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x2f,0xe1,0x2b,0x11,0x39,0x2f,0x39,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x33,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x25,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16, +0x16,0x15,0x14,0x06,0x23,0x22,0x13,0x35,0x36,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x11,0x16,0x33,0x32,0x36,0x35,0x10,0x01,0x49,0xa2,0xdc,0xb9,0xad,0xc7,0x99,0x7a,0xb5,0xc3,0xf2,0xc5,0x98,0x2b,0x7b,0x9f,0xd2,0x74,0x7c,0x8c,0x86,0x81,0x91,0x2e,0xfd,0xf1,0x06,0x3c,0xbf,0xe2,0xb5,0xa0,0x78,0xd1,0x27,0x04,0x1d,0xd7,0xa6,0xc1, +0xf1,0x02,0xfe,0x83,0x11,0xad,0x6d,0xdd,0x9a,0x8c,0xfc,0x80,0x57,0x95,0x86,0x01,0x2f,0x00,0x00,0x01,0x00,0x05,0xfe,0x1f,0x03,0xe6,0x04,0x00,0x00,0x18,0x00,0x95,0xb3,0x7c,0x00,0x01,0x0c,0xb8,0xff,0xc0,0x40,0x1c,0x0b,0x0c,0x00,0x4c,0x00,0x05,0x0b,0x03,0x03,0x11,0x08,0x0f,0x03,0x1c,0x11,0x14,0x08,0x0c,0x06,0x4d,0x14,0x08, +0x0b,0x06,0x4d,0x14,0x83,0x0f,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x0f,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xe8,0x40,0x20,0x0b,0x06,0x4d,0x0f,0x0f,0x1a,0x05,0x09,0x08,0x08,0x19,0x0b,0x00,0x03,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x84,0x05,0x18,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb3,0x0c, +0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb6,0x0b,0x06,0x4d,0x05,0x05,0x1a,0x19,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0xc6,0x12,0x39,0x12,0x39,0x2f,0xcd,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0xc6,0x00,0x3f,0x3f,0xc4,0x12,0x17,0x39,0x31,0x30,0x2b,0x5d,0x05,0x10,0x07,0x23,0x36,0x11,0x26,0x02,0x27,0x33,0x12, +0x13,0x33,0x36,0x12,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x02,0x06,0x07,0x02,0x37,0x04,0xaf,0x0f,0x28,0xec,0x7a,0xbc,0xf9,0x5e,0x04,0xa6,0x7d,0x0a,0xab,0x06,0x3c,0x7f,0x31,0x45,0xfe,0xc0,0x5c,0xa9,0x01,0x46,0xd7,0x02,0x59,0xc2,0xfe,0x44,0xfe,0x4b,0xf4,0x01,0x57,0xa4,0x3e,0x44,0x35,0x20,0x86,0xfe,0xfe,0xfd,0x47,0x00,0x01, +0x00,0x4c,0xfe,0xcb,0x03,0x7f,0x05,0xec,0x00,0x17,0x00,0x69,0x40,0x41,0x0f,0x10,0x01,0x0f,0x07,0x01,0x10,0x06,0x13,0x06,0x0f,0x0b,0x0e,0x0b,0x96,0x59,0x0e,0x00,0x00,0x0c,0x0c,0x08,0x0b,0x0e,0x0e,0x16,0x01,0x16,0xed,0x03,0x03,0x19,0x11,0x08,0x0d,0x06,0x4d,0x11,0x08,0x0c,0x06,0x4d,0x11,0x08,0x0b,0x06,0x4d,0x11,0x83,0x08, +0x18,0x0d,0x06,0x4d,0x08,0x20,0x0c,0x06,0x4d,0x08,0x18,0x0b,0x06,0x4d,0x08,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0xe1,0xc6,0x10,0xc0,0x2f,0x32,0x12,0x39,0x2f,0x00,0x2f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x33,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x01,0x23,0x36,0x35,0x34,0x26,0x27,0x24,0x11,0x10,0x01, +0x35,0x21,0x35,0x21,0x15,0x00,0x11,0x14,0x05,0x16,0x16,0x15,0x14,0x03,0x39,0xb3,0x62,0x7d,0x8a,0xfe,0x6b,0x02,0x54,0xfe,0x4c,0x02,0x5b,0xfd,0xaf,0x01,0x20,0xd3,0x96,0xfe,0xcb,0x4f,0x4d,0x44,0x3f,0x12,0x32,0x01,0x95,0x01,0xb2,0x01,0xee,0x04,0x85,0x87,0xfd,0xfb,0xfe,0x66,0xfa,0x2f,0x23,0x8b,0x6f,0x64,0x00,0x01,0x00,0x82, +0xfe,0x6c,0x03,0xf8,0x04,0x18,0x00,0x14,0x00,0x7f,0x40,0x2a,0x02,0x13,0x01,0x02,0x13,0x01,0x10,0x04,0x10,0x04,0x12,0x04,0xec,0x59,0x12,0x10,0x0c,0x0f,0x08,0x15,0x00,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x83,0x7f,0x01,0x01,0x01,0xb8,0xff,0xfc,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff, +0xfa,0x40,0x22,0x0c,0x06,0x4d,0x01,0x01,0x16,0x0c,0x0f,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x84,0x09,0x04,0x0d,0x06,0x4d,0x09,0x2f,0x16,0x01,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0xc6,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x2f,0x3f,0x3f,0x3f,0x2b,0x11,0x00, +0x33,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x01,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x27,0x33,0x16,0x15,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xa6,0xec,0x7c,0xa1,0xa3,0x24,0xa8,0x1c,0x04,0x6f,0xe5,0x01,0x5a,0xfe,0x6c,0x03,0xd0,0x01,0x47,0xb1,0x87,0xfd,0xb5,0x02,0xb6,0xea,0x60,0x4a,0x63,0xc5,0xfe,0x5e, +0x00,0x03,0x00,0x61,0xff,0xe8,0x04,0x50,0x05,0xfe,0x00,0x0a,0x00,0x10,0x00,0x17,0x00,0xc7,0x40,0x10,0x09,0x16,0x01,0x06,0x14,0x01,0x03,0x00,0x0e,0x01,0x0f,0x0a,0x01,0x10,0x06,0x09,0xb8,0xff,0xe8,0xb3,0x0c,0x00,0x4d,0x15,0xb8,0xff,0xe8,0x40,0x33,0x0b,0x0c,0x00,0x4c,0x0d,0x18,0x0c,0x00,0x4d,0x0b,0x11,0x96,0x59,0x0b,0x06, +0x00,0x0b,0x96,0x2b,0x30,0x06,0x0d,0x95,0x59,0x06,0x01,0x00,0x15,0x95,0x59,0x00,0x16,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x83,0x0b,0x11,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x11,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x11,0xb8,0xff,0xf0,0x40,0x30,0x0b,0x06,0x4d,0x20,0x11,0x30,0x11, +0x02,0x11,0x11,0x19,0x10,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08,0x0c,0x06,0x4d,0x12,0x08,0x0b,0x06,0x4d,0x12,0x83,0x03,0x10,0x0d,0x06,0x4d,0x03,0x10,0x0c,0x06,0x4d,0x03,0x10,0x0b,0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x00, +0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x00,0x2b,0x2b,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x5f,0x5d,0x5d,0x05,0x22,0x00,0x11,0x10,0x00,0x33,0x20,0x11,0x10,0x00,0x13,0x02,0x21,0x22,0x02,0x07,0x05,0x21,0x12,0x12,0x33,0x32,0x12,0x02,0x4e,0xe9,0xfe,0xfc,0x01,0x0f,0xfe,0x01,0xe2,0xfe,0xf3,0x63,0x12,0xfe, +0xc9,0x96,0xb4,0x0a,0x02,0x9e,0xfd,0x61,0x05,0xb2,0x9d,0x99,0xad,0x18,0x01,0x92,0x01,0x6c,0x01,0x7f,0x01,0x99,0xfd,0x01,0xfe,0x86,0xfe,0x63,0x03,0x5c,0x02,0x2e,0xfe,0xd1,0xff,0x84,0xfe,0xe1,0xfe,0xd3,0x01,0x31,0x00,0x01,0x00,0xa6,0xff,0xf4,0x02,0x08,0x04,0x00,0x00,0x0b,0x00,0x49,0x40,0x32,0x03,0x40,0x0b,0x0c,0x00,0x4c, +0x05,0x0f,0x0b,0x09,0x02,0x09,0xec,0x59,0x02,0x0b,0x0b,0x07,0x08,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x84,0x04,0x0c,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x31,0x30, +0x2b,0x25,0x06,0x23,0x22,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x02,0x08,0x3e,0x3b,0xe9,0xa3,0x65,0x2a,0x30,0x0a,0x16,0x01,0x15,0x02,0xf7,0xfd,0x0e,0x8a,0x12,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x13,0x04,0x0e,0x00,0x14,0x00,0xa1,0x40,0x15,0x09,0x03,0x01,0x0d,0x02,0x01,0x06,0x13,0x01,0x0d,0x01,0x01,0x10,0x04,0x03,0x18, +0x0b,0x0c,0x00,0x4c,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x15,0x0b,0x06,0x4d,0x14,0x02,0x11,0x03,0x03,0x00,0x06,0x0c,0x11,0xec,0x59,0x0c,0x06,0x0f,0x04,0x00,0x15,0x14,0xb8,0xff,0xe0,0x40,0x21,0x0b,0x0c,0x00,0x4c,0x14,0x02,0x02,0x00,0x0e,0x0e,0x70,0x00,0x01,0x00,0x08,0x04,0x08,0x0d,0x06,0x4d, +0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x84,0x05,0xb8,0xff,0xfa,0x40,0x0e,0x0d,0x06,0x4d,0x05,0x06,0x0c,0x06,0x4d,0x05,0x06,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x2f,0x5d,0x33,0x2f,0x11,0x39,0x2f,0x33,0x2b,0x00,0x3f,0x33,0x3f,0xc4,0x2b,0x11,0x12,0x00,0x39,0x11,0x12,0x39,0x39, +0x31,0x30,0x01,0x2b,0x2b,0x00,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x00,0x5d,0x5d,0x21,0x23,0x01,0x07,0x11,0x23,0x11,0x33,0x11,0x01,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x07,0x04,0x13,0xcb,0xfe,0x8e,0x8d,0xa3,0xa3,0x01,0x13,0x75,0x71,0x2e,0x48,0x22,0x1e,0x32,0x42,0x90,0x73,0x01,0xf4,0x98,0xfe,0xa4,0x04,0x00,0xfe, +0x0e,0x01,0x38,0x85,0x43,0x07,0x91,0x08,0x9c,0x7d,0x00,0x01,0xff,0xfe,0x00,0x00,0x03,0xdf,0x05,0xee,0x00,0x10,0x00,0x5b,0x40,0x23,0x0b,0x02,0x01,0x07,0x10,0x01,0x08,0x05,0x01,0x06,0x03,0x01,0x03,0x0f,0x01,0x01,0x10,0x06,0x02,0x05,0x05,0x00,0x0d,0x0a,0x08,0x0d,0x08,0xec,0x59,0x0d,0x00,0x03,0x00,0x15,0x10,0xb8,0xff,0xe0, +0x40,0x0e,0x0c,0x00,0x4d,0x0a,0x02,0x05,0x0a,0x10,0x04,0x11,0x00,0x00,0x12,0x04,0x2f,0x11,0x33,0x2f,0x12,0x17,0x39,0x2f,0x2b,0x00,0x3f,0x33,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x39,0x11,0x33,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5f,0x5d,0x5d,0x5d,0x00,0x5d,0x21,0x23,0x01,0x01,0x23,0x01,0x27,0x26,0x23,0x22,0x07,0x35,0x36, +0x33,0x32,0x16,0x17,0x03,0xdf,0xb1,0xfe,0xe9,0xfe,0x9c,0xb5,0x01,0xcf,0x43,0x35,0x67,0x36,0x44,0x40,0x42,0x70,0x8b,0x3e,0x03,0x3b,0xfc,0xc5,0x03,0xf8,0xc5,0x9b,0x13,0x9d,0x0c,0x7f,0xb2,0x00,0x00,0x01,0x00,0xa7,0xfe,0x1f,0x04,0x78,0x04,0x00,0x00,0x1d,0x00,0x9f,0x40,0x6e,0x0f,0x03,0x01,0x10,0x05,0x0e,0x18,0x0b,0x0c,0x00, +0x4c,0x01,0x18,0x0b,0x0c,0x00,0x4c,0x11,0x08,0x0f,0x04,0x00,0x0d,0x02,0x0d,0x95,0x59,0x02,0x16,0x1a,0x15,0x95,0x59,0x1a,0x16,0x07,0x1c,0x17,0x17,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x08,0x0b,0x06,0x4d,0x13,0x84,0x00,0x7f,0x10,0x01,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06, +0x4d,0x10,0x10,0x1f,0x07,0x0a,0x0a,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x07,0x04,0x0d,0x06,0x4d,0x07,0x40,0x1f,0x01,0x2f,0x1f,0x01,0x5d,0x5d,0x2f,0x2b,0xf1,0x2b,0x2b,0x2b,0xc1,0x2f,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0x33,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x00,0x3f,0x3f, +0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x33,0x18,0x3f,0xc4,0x31,0x30,0x2b,0x2b,0x5f,0x5e,0x5d,0x25,0x06,0x23,0x22,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x27,0x03,0x48,0x58,0xc7,0x9b,0x40,0x04,0xa3,0xa3,0x83,0x6c,0x74,0x86,0xa3,0x7a, +0x17,0x11,0x35,0x2a,0x55,0x60,0x16,0xae,0xc6,0x7c,0xfd,0xbb,0x05,0xe1,0xfd,0x90,0x7a,0x9a,0xb0,0x8c,0x02,0x48,0xfd,0x2f,0xa6,0x05,0x89,0x0d,0x58,0x5e,0x00,0x01,0x00,0x0c,0x00,0x00,0x03,0xc6,0x04,0x00,0x00,0x0c,0x00,0x6b,0x40,0x0a,0x74,0x03,0x01,0x79,0x01,0x01,0x76,0x00,0x01,0x03,0xb8,0xff,0xf8,0x40,0x0c,0x0c,0x00,0x4d, +0x03,0x09,0x0f,0x04,0x00,0x15,0x08,0x08,0x06,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x06,0x83,0x0b,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xf8,0x40,0x0d,0x0b,0x06,0x4d,0x0b,0x0b,0x0e,0x03,0x08,0x0b,0x06,0x4d,0x03,0x02,0x2f,0x33,0x2b, +0x12,0x39,0x2f,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x00,0x3f,0x33,0x3f,0x33,0x31,0x30,0x01,0x2b,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x33,0x01,0x00,0x11,0x34,0x27,0x33,0x16,0x15,0x10,0x02,0x48,0xa4,0xfe,0x68,0xb5,0x01,0x4f,0x01,0x10,0x22,0xb1,0x17,0x04,0x00,0xfc,0x9c,0x01,0x57,0x01,0x3b,0x7a,0x58,0x46,0x74,0xfe,0x86,0x00, +0x00,0x01,0x00,0x4d,0xfe,0xc4,0x03,0x76,0x05,0xed,0x00,0x2f,0x00,0xb3,0x40,0x28,0x0f,0x08,0x01,0x10,0x05,0x28,0x18,0x0b,0x0c,0x00,0x4c,0x0b,0x18,0x0b,0x0c,0x00,0x4c,0x0c,0x26,0x1f,0x1f,0x26,0x95,0x59,0x1f,0x1f,0x16,0x06,0x18,0x15,0x13,0x16,0x15,0x16,0x15,0x95,0x59,0x16,0x00,0x2b,0xb8,0xff,0xf0,0x40,0x1e,0x0f,0x16,0x48, +0x2b,0x06,0x15,0x00,0x0c,0x23,0x12,0x18,0x15,0x1b,0x08,0x0c,0x06,0x4d,0x1b,0x83,0x0f,0x0f,0x09,0x23,0x18,0x18,0x2e,0x01,0x2e,0x84,0x03,0xb8,0xff,0xf8,0x40,0x27,0x0c,0x06,0x4d,0x03,0x03,0x31,0x29,0x08,0x0d,0x06,0x4d,0x29,0x08,0x0c,0x06,0x4d,0x29,0x08,0x0b,0x06,0x4d,0x29,0x83,0x09,0x18,0x0d,0x06,0x4d,0x09,0x20,0x0c,0x06, +0x4d,0x09,0x20,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0xe1,0xc6,0x10,0xc0,0x2f,0xc6,0x12,0x39,0x2f,0xe1,0x2b,0xc6,0x12,0x39,0x12,0x39,0x00,0x2f,0x3f,0x33,0x2b,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x10,0xc4,0x11,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x2b,0x5f,0x5e, +0x5d,0x01,0x23,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x04,0x23,0x35,0x21,0x15,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x36,0x33,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x05,0x16,0x16,0x15,0x14,0x03,0x30,0xb3,0x61,0x5d,0xa2,0xc1,0xd1,0xa3,0x96,0x6b,0x73,0xc0,0xa4,0xfe, +0xc0,0x26,0x02,0x5e,0xc7,0xee,0x58,0x89,0x2d,0x17,0x32,0x31,0x1d,0x30,0x41,0xaa,0xe3,0x01,0x1c,0xc9,0x9b,0xfe,0xc4,0x4e,0x53,0x3b,0x49,0x14,0x19,0xd7,0xad,0x84,0xce,0x37,0x1d,0x83,0x59,0x70,0xb2,0x27,0x07,0x05,0x86,0x89,0x1f,0xa5,0x73,0x47,0x62,0x28,0x03,0x03,0x96,0x03,0xa1,0x87,0xdb,0x2d,0x20,0x8b,0x76,0x69,0xff,0xff, +0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x02,0x06,0x00,0x52,0x00,0x00,0x00,0x02,0x00,0xa1,0xfe,0x74,0x04,0x50,0x04,0x18,0x00,0x0e,0x00,0x1a,0x00,0x83,0x40,0x27,0x0f,0x06,0x01,0x10,0x06,0x07,0x17,0x95,0x59,0x07,0x10,0x0f,0x00,0x12,0x0d,0x12,0x95,0x59,0x0d,0x16,0x02,0x0a,0x08,0x0d,0x06,0x4d,0x0a,0x08,0x0c,0x06,0x4d,0x0a, +0x08,0x0b,0x06,0x4d,0x0a,0x83,0x14,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x14,0xb8,0xff,0xe8,0x40,0x19,0x0b,0x06,0x4d,0x14,0x14,0x1c,0x0f,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x03,0xb8,0xff,0xfc,0x40,0x0c,0x0d,0x06,0x4d,0x03,0x06,0x0c,0x06,0x4d,0x03,0x2f,0x1c,0x01,0x5d,0x2f, +0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x2f,0x3f,0x2b,0x11,0x00,0x33,0x33,0x18,0x3f,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x25,0x23,0x11,0x23,0x11,0x34,0x12,0x33,0x32,0x00,0x15,0x10,0x02,0x23,0x22,0x03,0x16,0x16,0x33,0x20,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x48,0x04,0xa3, +0xe6,0xde,0xdf,0x01,0x0c,0xf7,0xdd,0xc1,0x77,0x27,0xa4,0x59,0x01,0x3e,0xb2,0x8c,0x8f,0x95,0x63,0xfe,0x11,0x03,0x9a,0xf7,0x01,0x13,0xfe,0xda,0xe1,0xfe,0xfb,0xfe,0xdc,0x01,0x1b,0x3e,0x51,0x01,0x94,0xaa,0xda,0xc6,0xba,0x00,0x00,0x01,0x00,0x57,0xfe,0xc4,0x03,0x81,0x04,0x19,0x00,0x1c,0x00,0x8f,0x40,0x14,0x0f,0x07,0x01,0x10, +0x04,0x13,0x30,0x0b,0x0c,0x00,0x4c,0x0f,0x11,0x0c,0x11,0x95,0x59,0x0c,0x10,0x18,0xb8,0xff,0xf0,0x40,0x0a,0x10,0x16,0x48,0x18,0x06,0x15,0x00,0x01,0x01,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf8,0x40,0x37,0x0c,0x06,0x4d,0x03,0xef,0x1b,0x10,0x0d,0x06,0x4d,0x1b,0x10,0x0c,0x06,0x4d,0x1b,0x0e,0x0e,0x1e,0x14, +0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14,0x08,0x0b,0x06,0x4d,0x14,0x83,0x09,0x10,0x0d,0x06,0x4d,0x09,0x10,0x0c,0x06,0x4d,0x09,0x18,0x0b,0x06,0x4d,0x2f,0x09,0x01,0x09,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0xd4,0x2b,0x2b,0xf1,0x2b,0x2b,0xc2,0x2f,0x00,0x2f,0x3f,0x33,0x2b,0x3f,0x2b,0x00,0x18, +0x10,0xc6,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x01,0x23,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x10,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x02,0x15,0x14,0x1e,0x02,0x05,0x16,0x15,0x14,0x03,0x3b,0xb5,0x62,0x7b,0x84,0xc2,0xd0,0x01,0x2f,0xec,0x7f,0x65,0x72,0x81,0x99,0xc9,0x2e,0x58,0x3b,0x01,0x19,0xa6,0xfe,0xc4,0x4c,0x58, +0x46,0x3f,0x11,0x19,0xe6,0xb2,0x01,0x18,0x01,0x52,0x34,0xa7,0x4f,0xfe,0xfa,0xc5,0x47,0x6c,0x45,0x12,0x4b,0x3e,0xb1,0x69,0x00,0x01,0x00,0x14,0xff,0xe6,0x04,0x0e,0x04,0x07,0x00,0x1c,0x00,0xa4,0xb7,0x0a,0x1a,0x01,0x05,0x09,0x01,0x10,0x09,0xb8,0xff,0xe0,0x40,0x2d,0x0b,0x0c,0x00,0x4c,0x13,0x0f,0x0f,0x03,0x01,0x16,0x03,0x03, +0x40,0x24,0x28,0x48,0x03,0x40,0x08,0x0f,0x19,0x0e,0xec,0x59,0x19,0x16,0x13,0x16,0x08,0x0d,0x06,0x4d,0x16,0x08,0x0c,0x06,0x4d,0x16,0x08,0x0b,0x06,0x4d,0x16,0x84,0x11,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x11,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x11,0xb8,0xff,0xf0,0x40,0x19,0x0b,0x06,0x4d,0x11,0x11,0x1e,0x05,0x0c,0x08,0x0d, +0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x84,0x1c,0xb8,0xff,0xfa,0xb3,0x0c,0x06,0x4d,0x1c,0xb8,0xff,0xfa,0xb6,0x0b,0x06,0x4d,0x1c,0x2f,0x1e,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc6,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc6,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x1a,0xcd,0x2b,0x5f, +0x5e,0x5d,0x3f,0x31,0x30,0x2b,0x01,0x5e,0x5d,0x5d,0x13,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x11,0x10,0x21,0x32,0x36,0x35,0x10,0x03,0x33,0x16,0x11,0x14,0x02,0x23,0x22,0x26,0x35,0xae,0x29,0x38,0x1a,0x1f,0x30,0x2f,0x7c,0x61,0x01,0x0d,0x7f,0x8d,0x93,0xb7,0x81,0xe8,0xc9,0xd0,0xdf,0x02,0xc7,0x5b,0x55,0x07, +0x8a,0x0d,0x94,0xa5,0xfe,0xff,0xfe,0xab,0xb1,0xa1,0x01,0x2b,0x01,0x0b,0xfa,0xfe,0xcb,0xe3,0xfe,0xf8,0xec,0xde,0x00,0x01,0x00,0x0c,0xfe,0x21,0x04,0x46,0x04,0x18,0x00,0x1d,0x00,0x8c,0xb9,0x00,0x13,0xff,0xe8,0x40,0x4e,0x0b,0x0c,0x00,0x4c,0x09,0x08,0x10,0x00,0x4d,0x03,0x18,0x0b,0x0c,0x00,0x4c,0x18,0x18,0x19,0x06,0x06,0x05, +0x07,0x17,0x07,0x15,0x15,0x14,0x09,0x09,0x0a,0x08,0x16,0x08,0x0d,0x16,0x01,0x02,0x07,0x01,0x10,0x04,0x0e,0x0c,0x11,0x0c,0xec,0x59,0x11,0x10,0x17,0x0f,0x1d,0x1b,0x02,0x1b,0xec,0x59,0x02,0x1c,0x08,0x1b,0x19,0x05,0x14,0x0a,0x05,0x0a,0x0e,0x16,0x17,0x17,0x00,0x00,0x1f,0x0e,0x07,0x0e,0x08,0x2f,0x33,0x33,0x2f,0x11,0x33,0x2f, +0x32,0x2f,0x33,0x11,0x39,0x39,0x11,0x33,0x11,0x33,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5d,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x01,0x2b,0x2b,0x2b,0x01,0x06,0x23,0x22,0x26,0x27,0x03,0x01,0x23,0x01,0x03,0x26,0x23,0x22,0x07,0x35, +0x36,0x33,0x32,0x16,0x17,0x13,0x01,0x33,0x01,0x13,0x16,0x33,0x32,0x37,0x04,0x46,0x2b,0x31,0x5a,0x82,0x4b,0x9f,0xfe,0xa1,0xb9,0x01,0xc6,0xae,0x42,0x48,0x30,0x28,0x22,0x49,0x56,0x6b,0x33,0x8c,0x01,0x11,0xb9,0xfe,0x89,0xec,0x44,0x48,0x25,0x29,0xfe,0x2a,0x09,0x86,0xac,0x01,0x6b,0xfd,0x6f,0x03,0x38,0x01,0x89,0x94,0x0e,0x9a, +0x0a,0x5c,0x78,0xfe,0xb6,0x02,0x06,0xfd,0x58,0xfd,0xf4,0x96,0x10,0x00,0x00,0x01,0x00,0x98,0xfe,0x1e,0x05,0x68,0x05,0x33,0x00,0x1b,0x00,0xec,0xb9,0x00,0x18,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x0f,0xb8,0xff,0xc0,0x40,0x15,0x0b,0x0c,0x00,0x4c,0x0d,0x1b,0x0f,0x14,0x12,0x07,0x04,0x15,0x04,0x15,0xec,0x59,0x04,0x16,0x05,0x1c, +0x1a,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x1a,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1a,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x1a,0x83,0x1b,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x1b,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1b,0xb8,0xff,0xf0,0x40,0x40,0x0b,0x06,0x4d,0x1b,0x0e,0x04,0x07,0x0c,0x42,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08, +0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x83,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x0c,0x1c,0x15,0x12,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x18,0x0b,0x06,0x4d,0x04,0xef,0x07,0xb8,0xff,0xfa,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xfa,0xb3,0x0c,0x06,0x4d,0x07, +0xb8,0xff,0xfc,0x40,0x0d,0x0b,0x06,0x4d,0x07,0x07,0x1d,0x1c,0x40,0x1d,0x01,0x2f,0x1d,0x01,0x5d,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39, +0x18,0x2f,0x3f,0x33,0x31,0x30,0x2b,0x2b,0x01,0x10,0x00,0x23,0x23,0x11,0x23,0x11,0x23,0x22,0x00,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x32,0x36,0x35,0x11,0x33,0x05,0x68,0xfe,0xe3,0xe9,0x18,0x94,0x18,0xeb,0xfe,0xe5,0xa6,0xc8,0x98,0x18,0x94,0x18,0x96,0xca,0xa6,0x02,0x2c,0xfe,0xf4,0xfe,0xc9,0xfe,0x35, +0x01,0xcb,0x01,0x36,0x01,0x0d,0x01,0xd4,0xfe,0x2c,0xc4,0xef,0x04,0xba,0xfb,0x46,0xee,0xc5,0x01,0xd4,0x00,0x01,0x00,0x77,0xff,0xe9,0x06,0x00,0x04,0x00,0x00,0x21,0x00,0xe3,0x40,0x2a,0x0b,0x21,0x01,0x04,0x1f,0x01,0x0b,0x04,0x01,0x04,0x02,0x01,0x0d,0x00,0x01,0x10,0x04,0x12,0x12,0x20,0x09,0x1b,0x0f,0x00,0x0e,0x03,0x20,0x15, +0x20,0x15,0xec,0x59,0x20,0x16,0x0d,0x1a,0x01,0x09,0x03,0x1a,0x1a,0x18,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x18,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x18,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x18,0x83,0x1d,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1d,0xb8,0xff,0xe8,0x40,0x4f,0x0b,0x06,0x4d,0x1d,0x0e,0x12,0x11,0x06,0x42,0x02,0x09, +0x01,0x09,0x09,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x83,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x18,0x0b,0x06,0x4d,0x06,0x06,0x22,0x00,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08,0x0c,0x06,0x4d,0x12,0x08,0x0b,0x06,0x4d,0x12,0x84,0x11,0x06,0x0c,0x06,0x4d,0x11,0x11,0x23, +0x22,0x3f,0x23,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x5d,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc2,0x18,0x2f,0x5f,0x5e,0x5d,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x33,0x18,0x3f,0xc4,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x31,0x30, +0x01,0x5d,0x5d,0x5d,0x5d,0x25,0x23,0x06,0x23,0x22,0x26,0x35,0x10,0x13,0x33,0x02,0x15,0x14,0x16,0x33,0x32,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x34,0x03,0x33,0x12,0x11,0x14,0x06,0x23,0x22,0x03,0x3d,0x04,0x67,0xca,0xbd,0xd4,0x7e,0xb7,0x8f,0x7a,0x6d,0xe6,0xa4,0xe5,0x6b,0x7b,0x8e,0xb6,0x7f,0xd5,0xbf,0xca,0xa8,0xbf, +0xff,0xe0,0x01,0x02,0x01,0x36,0xfe,0xc1,0xff,0x9f,0xaa,0x01,0x5a,0x01,0x1b,0xfe,0xe5,0xfe,0xa6,0xaa,0x9f,0xff,0x01,0x3f,0xfe,0xc9,0xfe,0xff,0xe1,0xfe,0xff,0xff,0xff,0xed,0xff,0xf4,0x02,0x34,0x05,0x77,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x70,0xff,0xf0,0x00,0x17,0x40,0x0d,0x02,0x01,0x19,0x1b,0x15,0x05, +0x06,0x3e,0x02,0x01,0x18,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x05,0x77,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x96,0xff,0xf0,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xd8,0x40,0x0a,0x2c,0x26,0x00,0x16,0x25,0x02,0x01,0x29,0x11,0x26,0x00,0x2b,0x35,0x35, +0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x01,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x01,0x9f,0x01,0x28,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xf6,0x40,0x09,0x19,0x19,0x0c,0x0c,0x3e,0x02,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x01,0x02,0x26, +0x01,0xd2,0x00,0x00,0x01,0x07,0x01,0x9f,0x01,0x0f,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x05,0x1f,0x1d,0x00,0x16,0x25,0x01,0x1f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xff,0xe9,0x06,0x00,0x06,0x01,0x02,0x26,0x01,0xd5,0x00,0x00,0x01,0x07,0x01,0x9f,0x02,0x02,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x1b, +0x24,0x22,0x06,0x1d,0x25,0x01,0x24,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x06,0xe3,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x8b,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x05,0x21,0x0f,0x02,0x03,0x3e,0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35, +0x35,0x00,0x00,0x01,0x00,0x29,0xff,0xee,0x05,0x1e,0x05,0x9a,0x00,0x1b,0x00,0xb6,0x40,0x2f,0x00,0x16,0x01,0x10,0x05,0x13,0x0a,0x91,0x59,0x13,0x13,0x10,0x0b,0x0d,0x11,0x10,0x11,0x91,0x59,0x10,0x03,0x01,0x03,0x1a,0x03,0x91,0x59,0x1a,0x13,0x0b,0x12,0x00,0x00,0x0b,0x17,0x08,0x0d,0x06,0x4d,0x17,0x08,0x0c,0x06,0x4d,0x17,0x7d, +0x06,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf8,0x40,0x1d,0x0b,0x06,0x4d,0x06,0x06,0x1d,0x13,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x7e,0x0c,0x11,0x11,0x1d,0x0e,0xb8,0xff,0xe8,0x40,0x0a,0x0d,0x06,0x4d,0x0e,0x0c,0x20,0x0d,0x06, +0x4d,0x0c,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0c,0xb8,0xff,0xf0,0xb3,0x0b,0x06,0x4d,0x0c,0x2f,0x2b,0x2b,0x2b,0xc6,0x2b,0x12,0x39,0x2f,0x10,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x2b, +0x31,0x30,0x00,0x5f,0x5e,0x5d,0x25,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x32,0x04,0x15,0x14,0x06,0x23,0x22,0x02,0xfe,0x42,0x5e,0x61,0x73,0xa9,0x98,0xf9,0xa8,0xfe,0x99,0x03,0xe3,0xfe,0x2c,0xfd,0xe2,0x01,0x07,0xc7,0xb5,0x5c,0x06,0x9a,0x21,0x8b,0x77,0x8b,0x9a, +0xfd,0x5a,0x05,0x02,0x98,0x98,0xfe,0x38,0xe6,0xd1,0xc0,0xd5,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x07,0x66,0x02,0x26,0x01,0x2c,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x50,0x01,0x5c,0x00,0x17,0x40,0x0e,0x01,0x15,0x08,0x06,0x01,0x05,0x3e,0x01,0x00,0x08,0x01,0x08,0x05,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0x00,0x01, +0x00,0x5e,0xff,0xe8,0x04,0x85,0x05,0xb2,0x00,0x18,0x00,0x97,0x40,0x5f,0x55,0x0a,0x01,0x59,0x00,0x01,0x5a,0x03,0x01,0x03,0x0f,0x03,0x01,0x0b,0x05,0x10,0x13,0x91,0x59,0x10,0x08,0x02,0x10,0x91,0x2b,0x30,0x00,0x0b,0x01,0x0c,0x03,0x0b,0x0b,0x0d,0x08,0x0d,0x91,0x59,0x08,0x04,0x00,0x18,0x01,0x0b,0x03,0x18,0x18,0x16,0x02,0x16, +0x91,0x59,0x02,0x13,0x11,0x11,0x13,0x00,0x0a,0x0a,0x1a,0x10,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x08,0x0b,0x06,0x4d,0x13,0x7d,0x05,0x10,0x0d,0x06,0x4d,0x05,0x18,0x0c,0x06,0x4d,0x05,0x18,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x00,0x3f,0x2b, +0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x01,0x5f,0x5d,0x00,0x5d,0x5d,0x25,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x07,0x21,0x15,0x21,0x16,0x00,0x33,0x32,0x37,0x04,0x85,0x9e,0xeb, +0xfe,0xd1,0xfe,0x91,0x01,0x85,0x01,0x35,0xd6,0x97,0xa3,0xcc,0xd7,0xfe,0xeb,0x18,0x02,0x7a,0xfd,0x84,0x10,0x01,0x11,0xd7,0xe0,0x9d,0x3c,0x54,0x01,0x8b,0x01,0x3f,0x01,0x5b,0x01,0xa5,0x3b,0xb3,0x56,0xfe,0xed,0xf1,0x97,0xef,0xfe,0xef,0x60,0x00,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x05,0xb2,0x02,0x06,0x00,0x36,0x00,0x00, +0xff,0xff,0xff,0xf1,0x00,0x00,0x02,0x38,0x06,0xe3,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x74,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x04,0x13,0x0d,0x02,0x03,0x25,0x02,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x00,0x02,0x00,0x10,0xff,0xe9,0x07,0x77,0x05,0x9a,0x00,0x19,0x00,0x21, +0x00,0xc0,0x40,0x49,0x0d,0x05,0x01,0x00,0x03,0x01,0x0b,0x17,0x01,0x0b,0x16,0x01,0x02,0x0d,0x01,0x10,0x04,0x12,0x14,0x0f,0x14,0x91,0x59,0x0f,0x13,0x00,0x1a,0x91,0x59,0x00,0x00,0x18,0x1b,0x18,0x0a,0x91,0x59,0x18,0x03,0x08,0x1b,0x91,0x59,0x08,0x12,0x0a,0x08,0x0b,0x06,0x4d,0x0a,0x18,0x18,0x08,0x11,0x04,0x08,0x0d,0x06,0x4d, +0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x7d,0x1f,0xb8,0xff,0xf0,0x40,0x23,0x0d,0x06,0x4d,0x1f,0x10,0x0b,0x06,0x4d,0x1f,0x1f,0x23,0x00,0x1b,0x08,0x0d,0x06,0x4d,0x1b,0x08,0x0c,0x06,0x4d,0x1b,0x08,0x0b,0x06,0x4d,0x1b,0x7e,0x08,0x18,0x0d,0x06,0x4d,0x08,0xb8,0xff,0xf8,0x40,0x0c,0x0c,0x06,0x4d,0x08,0x18,0x0b, +0x06,0x4d,0x08,0x08,0x23,0x11,0x2f,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x33,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5d,0x5d,0x00, +0x5d,0x5d,0x01,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x21,0x02,0x02,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x12,0x13,0x21,0x11,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x04,0xa4,0x01,0x10,0xd7,0xec,0xf8,0xd9,0xfe,0x56,0xfe,0x72,0x45,0x50,0x52,0x8c,0x62,0x4f,0x3a,0x33,0x3e,0x3e,0x6d,0x71,0x45,0x02,0xc2,0xeb, +0x96,0xa2,0xfe,0xc8,0x03,0x39,0xce,0xbf,0xc4,0xe8,0x05,0x02,0xfd,0xe2,0xfe,0x40,0xd4,0x67,0x15,0x9e,0x1d,0x94,0x02,0x6e,0x02,0x19,0xfd,0x08,0xfd,0xf6,0x8d,0x7d,0x01,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x07,0x7d,0x05,0x9a,0x00,0x12,0x00,0x1a,0x00,0xb7,0x40,0x2f,0x0d,0x10,0x01,0x00,0x0e,0x01,0x10,0x04,0x13,0x0b,0x01,0x08, +0x08,0x01,0x91,0x59,0x08,0x08,0x14,0x06,0x0a,0x03,0x00,0x14,0x91,0x59,0x03,0x00,0x12,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x18,0xb8,0xff,0xe8,0x40,0x3e,0x0d,0x06,0x4d,0x18,0x10,0x0b,0x06,0x4d,0x18,0x18,0x1c,0x0b,0x08,0x14,0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14, +0x08,0x0b,0x06,0x4d,0x14,0x7e,0x00,0x20,0x0d,0x06,0x4d,0x00,0x18,0x0b,0x06,0x4d,0x00,0x00,0x1c,0x07,0x03,0x08,0x0d,0x06,0x4d,0x03,0x08,0x0c,0x06,0x4d,0x03,0x08,0x0b,0x06,0x4d,0x03,0x7e,0x04,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39, +0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0xc4,0x2b,0x00,0x18,0x3f,0xc4,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x21,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32, +0x36,0x35,0x10,0x21,0x04,0x02,0xfd,0x62,0xa8,0xa8,0x02,0x9e,0xa8,0x01,0x10,0xd5,0xee,0xf9,0xd8,0xfe,0xfe,0xec,0x95,0xa2,0xfe,0xc9,0x02,0xa0,0xfd,0x60,0x05,0x9a,0xfd,0x9e,0x02,0x62,0xfd,0xa0,0xce,0xc0,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8d,0x7d,0x01,0x00,0x00,0x01,0x00,0x29,0x00,0x00,0x05,0x4a,0x05,0x9a,0x00,0x11,0x00,0xc6, +0x40,0x1c,0x02,0x10,0x01,0x02,0x10,0x01,0x10,0x04,0x0e,0x05,0x91,0x59,0x0e,0x0e,0x00,0x0b,0x08,0x0c,0x0b,0x0c,0x91,0x59,0x0b,0x03,0x06,0x00,0x12,0x0c,0xb8,0xff,0xf9,0xb3,0x0b,0x06,0x4d,0x09,0xb8,0xff,0xf9,0x40,0x15,0x0b,0x06,0x4d,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x01, +0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf0,0x40,0x32,0x0b,0x06,0x4d,0x00,0x01,0x01,0x09,0x03,0x01,0x01,0x13,0x07,0x0c,0x0e,0x0e,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x7e,0x07,0x07,0x09,0x42,0x09,0x09,0x12,0x07,0x12,0x0d,0x06, +0x4d,0x07,0x0d,0x0c,0x06,0x4d,0x07,0xb8,0xff,0xe4,0xb3,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x01,0x10,0xf1,0x2b,0x2b,0x2b,0x32,0xe0,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x3f,0xc4,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x2b,0x31,0x30, +0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x21,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x21,0x20,0x11,0x05,0x4a,0xa8,0xfe,0xe3,0xfe,0xe9,0xa8,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x01,0x19,0x01,0xc3,0x01,0x85,0x01,0x27,0xfd,0x54,0x05,0x02,0x98,0x98,0xfe,0x3e,0xfe,0x45,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2, +0x07,0x66,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x8e,0x01,0x5c,0x00,0x17,0x40,0x0e,0x01,0x0f,0x12,0x12,0x09,0x0e,0x25,0x01,0x00,0x13,0x01,0x13,0x05,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x3c,0xff,0xe7,0x04,0x96,0x07,0x4f,0x02,0x26,0x01,0xfa,0x00,0x00,0x01,0x07,0x07,0xcd,0x00,0x16, +0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x0d,0x1c,0x16,0x0d,0x00,0x25,0x01,0x19,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xbc,0xfe,0x80,0x04,0xf2,0x05,0x9a,0x00,0x0b,0x00,0xb2,0xb9,0x00,0x02,0x01,0x30,0x40,0x1b,0x07,0x0b,0x03,0x04,0x00,0x00,0x09,0x91,0x59,0x00,0x12,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c, +0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0xb8,0x01,0x2c,0xb6,0x04,0x04,0x10,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x08,0x09,0x04,0xb8,0x01,0x2c,0x40,0x1e,0xff,0x30,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x09,0x10,0x0d,0x06,0x4d,0x09,0x10,0x0c,0x06,0x4d,0x09, +0xb8,0xff,0xf8,0x40,0x1b,0x0b,0x06,0x4d,0x7f,0x09,0x01,0x09,0x09,0x0d,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x7e,0x05,0xb8,0xff,0xf4,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b, +0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x10,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x33,0x3f,0x31,0x30,0x21,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x04,0xf2,0xfe,0x30,0x9a,0xfe,0x34,0xa8,0x02,0xe6,0xa8,0xfe,0x80,0x01,0x80,0x05,0x9a,0xfa,0xfe,0x05,0x02,0x00,0xff,0xff,0x00,0x16,0x00,0x00, +0x05,0x12,0x05,0x9a,0x02,0x06,0x00,0x24,0x00,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x38,0x05,0x9a,0x00,0x0c,0x00,0x14,0x00,0x9f,0x40,0x31,0x0d,0x0a,0x01,0x00,0x08,0x01,0x10,0x04,0x05,0x0d,0x91,0x59,0x05,0x05,0x0e,0x02,0x02,0x03,0x91,0x59,0x02,0x03,0x00,0x0e,0x91,0x59,0x00,0x12,0x03,0x03,0x0e,0x09,0x08,0x0d,0x06,0x4d, +0x09,0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x7d,0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf8,0x40,0x1e,0x0c,0x06,0x4d,0x12,0x10,0x0b,0x06,0x4d,0x12,0x12,0x16,0x05,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x7e,0x00,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x00, +0xb8,0xff,0xf6,0x40,0x09,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x33,0x11,0x21,0x15,0x21,0x11,0x21, +0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0xbc,0x02,0xfe,0xfd,0xaa,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa2,0xfe,0xc9,0x05,0x9a,0x98,0xfe,0x38,0xcf,0xbf,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8c,0x7e,0x01,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x2f,0x05,0x9a,0x02,0x06,0x00,0x25, +0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x06,0x01,0x2c,0x00,0x00,0x00,0x02,0x00,0x0f,0xfe,0x7f,0x05,0x48,0x05,0x9a,0x00,0x0d,0x00,0x13,0x00,0xcf,0xb7,0x0b,0x0f,0x91,0x59,0x0b,0x03,0x04,0x01,0xb8,0x01,0x30,0x40,0x22,0x0e,0x07,0x02,0x0c,0x02,0x0c,0x91,0x59,0x02,0x12,0x75,0x13,0x01,0x10,0x0a,0x0a, +0x0e,0x07,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x18,0x0b,0x06,0x4d,0x0d,0xba,0x01,0x2c,0x00,0x02,0xff,0xee,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xe0,0x40,0x17,0x0b,0x06,0x4d,0x02,0x02,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c, +0x7e,0x0e,0xb8,0xff,0xf0,0x40,0x21,0x0d,0x06,0x4d,0x0e,0x18,0x0c,0x06,0x4d,0x0e,0x20,0x0b,0x06,0x4d,0x0e,0x0e,0x15,0x07,0x03,0x08,0x0d,0x06,0x4d,0x03,0x08,0x0c,0x06,0x4d,0x03,0x10,0x0b,0x06,0x4d,0x06,0xb8,0x01,0x2c,0xb2,0x03,0x13,0x07,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x07,0x2f, +0x2b,0x2b,0x33,0xd5,0xe1,0x2b,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc1,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x33,0x5d,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0xc4,0x3f,0x2b,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x12,0x12,0x13,0x21,0x11,0x33,0x21, +0x11,0x21,0x06,0x02,0x07,0x05,0x48,0x9b,0xfb,0xfd,0x9b,0x6f,0x90,0xc9,0x0d,0x02,0xa3,0xc1,0xfe,0x97,0xfe,0x94,0x10,0xbc,0x73,0xfe,0x7f,0x01,0x81,0xfe,0x7f,0x02,0x19,0x01,0x07,0x02,0xbf,0x01,0x3c,0xfa,0xfe,0x04,0x6a,0xf7,0xfd,0x6a,0xdd,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x05,0x9a,0x02,0x06,0x00,0x28,0x00,0x00, +0x00,0x01,0xff,0xea,0x00,0x00,0x07,0x02,0x05,0x9a,0x00,0x1d,0x00,0xb1,0xb9,0x00,0x1d,0xff,0xf0,0x40,0x72,0x0c,0x06,0x4d,0x0e,0x10,0x0c,0x06,0x4d,0x5c,0x1b,0x01,0x1a,0x1b,0x01,0x53,0x10,0x01,0x15,0x10,0x01,0x53,0x0c,0x01,0x05,0x0c,0x15,0x0c,0x02,0x5c,0x01,0x01,0x03,0x0d,0x01,0x1d,0x01,0x02,0x10,0x1a,0x01,0x10,0x11,0x01, +0x0f,0x0b,0x1f,0x0b,0x02,0x0f,0x02,0x1f,0x02,0x02,0x0b,0x04,0x1b,0x10,0x16,0x03,0x0c,0x01,0x06,0x12,0x1d,0x00,0x06,0x0e,0x0d,0x07,0x1c,0x1c,0x00,0x20,0x0b,0x06,0x4d,0x00,0x0e,0x06,0x07,0x0d,0x42,0x0f,0x0d,0x0d,0x1e,0x16,0x15,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x7e,0x07,0x07, +0x1f,0x1e,0x2f,0x1f,0x3f,0x1f,0x02,0x5d,0x11,0x12,0x39,0x2f,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x11,0x33,0x2f,0xc6,0x2b,0x01,0x10,0xf0,0x2b,0xc2,0x18,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x3f,0x33,0x33,0x3f,0x33,0x33,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x2b,0x2b,0x21, +0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x01,0x16,0x17,0x33,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x07,0x02,0xe1,0xfd,0xcf,0x18,0x0d,0x05,0x9f,0x04,0x0f,0x16,0xfd,0xcf,0xe3,0x02,0x91,0xfd,0x9b,0xce,0x02,0x1a,0x16,0x0f,0x04,0x9f,0x05,0x0d,0x18,0x02,0x1a,0xcd,0xfd,0x9b,0x02, +0x90,0x1c,0x16,0xfd,0x3e,0x02,0xc2,0x19,0x19,0xfd,0x70,0x02,0xe8,0x02,0xb2,0xfd,0x93,0x19,0x18,0x02,0x9e,0xfd,0x62,0x16,0x1b,0x02,0x6d,0xfd,0x4e,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0xe2,0x05,0xb2,0x00,0x23,0x00,0xd7,0x40,0x13,0x09,0x20,0x01,0x06,0x1e,0x01,0x04,0x18,0x01,0x03,0x00,0x14,0x01,0x0f,0x00,0x01,0x10,0x05, +0x14,0xb8,0xff,0xc0,0x40,0x3c,0x0c,0x00,0x4d,0x00,0x40,0x0c,0x00,0x4d,0x1c,0x09,0x0a,0x0a,0x09,0x92,0x59,0x0a,0x0a,0x03,0x16,0x0f,0x13,0x1f,0x13,0x2f,0x13,0x03,0x09,0x03,0x13,0x11,0x16,0x11,0x92,0x59,0x16,0x04,0x00,0x01,0x10,0x01,0x20,0x01,0x03,0x09,0x03,0x01,0x03,0x22,0x03,0x92,0x59,0x22,0x13,0x1b,0x1f,0x09,0x09,0x06, +0x00,0x0e,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x0e,0xb8,0xff,0xf8,0x40,0x19,0x0b,0x06,0x4d,0x0e,0x7d,0x19,0x19,0x1f,0x08,0x0d,0x06,0x4d,0x1f,0x08,0x0c,0x06,0x4d,0x1f,0x08,0x0b,0x06,0x4d,0x1f,0x7d,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf8,0x40,0x0e,0x0b,0x06,0x4d,0x20,0x06,0x01,0x06,0x06,0x25,0x13,0x00, +0x3f,0x25,0x01,0x5d,0x2f,0xc4,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x2f,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x5f, +0x5d,0x5d,0x5d,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x10,0x05,0x15,0x16,0x16,0x15,0x14,0x04,0x23,0x22,0x60,0xa8,0xd5,0x9b,0xb7,0xfe,0x8b,0x95,0x89,0x9f,0xaf,0x91,0x7f,0xb4,0xaa,0x9e,0xce,0xcc,0xea,0xfe,0xf0,0x94,0xae,0xfe,0xe8, +0xf3,0xf3,0x3c,0xb6,0x7b,0x96,0x7f,0x01,0x14,0x8b,0x8a,0x7e,0x6c,0x82,0x71,0xaa,0x58,0xc2,0x9e,0xfe,0xe9,0x49,0x04,0x11,0xbc,0x8b,0xc5,0xe9,0x00,0x01,0x00,0xbc,0x00,0x00,0x05,0x40,0x05,0x9a,0x00,0x13,0x00,0xa1,0x40,0x12,0x7a,0x12,0x01,0x79,0x11,0x01,0x75,0x08,0x01,0x75,0x07,0x01,0x12,0x08,0x0b,0x00,0x4d,0x08,0xb8,0xff, +0xf8,0x40,0x2c,0x0b,0x00,0x4d,0x0e,0x04,0x0b,0x13,0x03,0x09,0x00,0x12,0x12,0x04,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x01,0x01,0x01,0x18,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf4,0x40,0x1a,0x0b,0x06,0x4d,0x01,0x01,0x15,0x08,0x0e,0x0c,0x08,0x0d,0x06, +0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x7e,0x09,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x09,0x04,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x39,0x33,0x00,0x3f,0x32,0x3f,0x33, +0x39,0x39,0x31,0x30,0x01,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x01,0x23,0x11,0x33,0x11,0x14,0x07,0x33,0x36,0x37,0x01,0x33,0x05,0x40,0xa8,0x0a,0x06,0x13,0x1b,0xfd,0x1e,0xd0,0xa8,0x08,0x04,0x16,0x22,0x02,0xd0,0xd8,0x04,0x0c,0x8c,0x39,0x31,0x29,0xfb,0x89,0x05,0x9a,0xfc,0x0e,0xa2,0x31,0x2c, +0x34,0x04,0x65,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x4e,0x02,0x26,0x01,0xef,0x00,0x00,0x01,0x07,0x07,0xcd,0x00,0xa8,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x0a,0x1a,0x14,0x0a,0x13,0x25,0x01,0x17,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x02,0x06,0x00,0x2e, +0x00,0x00,0x00,0x01,0x00,0x10,0xff,0xe9,0x04,0xa4,0x05,0x9a,0x00,0x12,0x00,0x74,0x40,0x43,0x0d,0x10,0x01,0x0b,0x0f,0x01,0x02,0x06,0x01,0x10,0x04,0x07,0x18,0x0b,0x00,0x4d,0x12,0x02,0x91,0x59,0x12,0x03,0x0b,0x0d,0x08,0x0d,0x91,0x59,0x08,0x13,0x00,0x12,0x03,0x11,0x11,0x0b,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d, +0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x01,0x01,0x01,0x18,0x0d,0x06,0x4d,0x01,0x04,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf4,0xb6,0x0b,0x06,0x4d,0x01,0x01,0x14,0x0b,0x2f,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x33,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x31,0x30,0x00,0x2b,0x01,0x5f, +0x5e,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x02,0x02,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x12,0x13,0x21,0x04,0xa4,0xa8,0xfe,0x72,0x45,0x50,0x52,0x8c,0x62,0x4f,0x3a,0x33,0x3e,0x3e,0x6d,0x71,0x45,0x02,0xc2,0x05,0x02,0xfd,0xe2,0xfe,0x40,0xd4,0x67,0x15,0x9e,0x1d,0x94,0x02,0x6e,0x02,0x19,0x00,0xff,0xff,0x00,0xbc, +0x00,0x00,0x06,0x72,0x05,0x9a,0x02,0x06,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x05,0x9a,0x02,0x06,0x00,0x2b,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x02,0x06,0x00,0x32,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xfc,0x05,0x9a,0x02,0x06,0x01,0xb5,0x00,0x00,0xff,0xff,0x00,0xbc, +0x00,0x00,0x04,0x29,0x05,0x9a,0x02,0x06,0x00,0x33,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x02,0x06,0x00,0x26,0x00,0x00,0xff,0xff,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x02,0x06,0x00,0x37,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0xe7,0x04,0x96,0x05,0x9a,0x00,0x15,0x00,0x53,0x40,0x2e,0x0a,0x15,0x01,0x05, +0x0e,0x01,0x03,0x03,0x10,0x0c,0x00,0x4d,0x00,0x10,0x01,0x10,0x05,0x10,0x0c,0x04,0x0e,0x00,0x03,0x07,0x09,0x04,0x09,0x91,0x59,0x04,0x13,0x76,0x11,0x01,0x11,0x0c,0x14,0x06,0x14,0x00,0x00,0x16,0x06,0x06,0x0e,0x0d,0x2f,0x33,0x33,0x2f,0x11,0x33,0x2f,0x32,0x11,0x12,0x39,0x39,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x33, +0x12,0x39,0x39,0x5f,0x5e,0x5d,0x31,0x30,0x2b,0x01,0x5f,0x5d,0x5d,0x01,0x01,0x02,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x04,0x96,0xfe,0x45,0x76,0xdc,0x82,0x6b,0x48,0x56,0x50,0x51,0x88,0x4f,0xfe,0x1a,0xbf,0x01,0x58,0x09,0x1c,0x02,0x03,0x26,0x01,0x3f,0x05,0x9a,0xfc, +0x17,0xfe,0xf6,0xc0,0x1f,0xaa,0x33,0x7d,0x9e,0x04,0x02,0xfd,0x02,0x13,0x4a,0x09,0x58,0x02,0xfa,0x00,0x00,0x03,0x00,0x5e,0x00,0x00,0x05,0x81,0x05,0xc2,0x00,0x15,0x00,0x1e,0x00,0x27,0x01,0x02,0xb9,0x00,0x13,0xff,0xe8,0x40,0x23,0x0c,0x00,0x4d,0x1f,0x03,0x00,0x17,0x00,0x17,0x91,0x59,0x20,0x0b,0x16,0x0e,0x0e,0x16,0x91,0x59, +0x0e,0x00,0x0e,0x00,0x01,0x0d,0x03,0x01,0x12,0x1b,0x18,0x0b,0x0c,0x00,0x4c,0x24,0xb8,0xff,0xe8,0xb4,0x0b,0x0c,0x00,0x4c,0x1b,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x1b,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1b,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x1b,0x7d,0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf8,0x40,0x2a, +0x0c,0x06,0x4d,0x12,0x20,0x0b,0x06,0x4d,0x12,0x0e,0x01,0x02,0x07,0x42,0x24,0x08,0x0d,0x06,0x4d,0x24,0x08,0x0c,0x06,0x4d,0x24,0x08,0x0b,0x06,0x4d,0x24,0x7d,0x07,0x18,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0xb8,0xff,0xe0,0x40,0x1d,0x0b,0x06,0x4d,0x07,0x07,0x28,0x0b,0x0e,0x16,0x20,0x04,0x01,0x08,0x0d,0x06,0x4d,0x01, +0x08,0x0c,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x01,0xef,0x02,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf5,0x40,0x0a,0x0b,0x06,0x4d,0x02,0x02,0x29,0x28,0x20,0x29,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1, +0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x25,0x15,0x23,0x35,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x33,0x35,0x33,0x15,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x03,0x11, +0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x03,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x03,0x3e,0x9c,0x1b,0xf0,0xfe,0xc7,0x01,0x38,0xf3,0x19,0x9c,0x18,0xf6,0x01,0x35,0xfe,0xc7,0xf0,0x1a,0x1a,0xab,0xce,0xce,0xad,0xb4,0x19,0xaa,0xd1,0xce,0xab,0xbc,0xbc,0xbc,0x01,0x47,0xef,0xe4,0x01,0x38,0xb4,0xb4,0xfe,0xcd,0xe9,0xec,0xfe,0xb6, +0x03,0xc5,0xfc,0xcf,0xe3,0xbd,0xb4,0xdd,0xfc,0xcf,0x03,0x31,0xe0,0xb1,0xbe,0xe2,0xff,0xff,0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x02,0x06,0x00,0x3b,0x00,0x00,0x00,0x01,0x00,0xbc,0xfe,0x7f,0x05,0xb2,0x05,0x9a,0x00,0x0b,0x00,0xb4,0xb9,0x00,0x00,0x01,0x30,0x40,0x1c,0x05,0x09,0x03,0x07,0x02,0x0a,0x02,0x0a,0x91,0x59,0x02, +0x12,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x10,0x0b,0x06,0x4d,0x0b,0xba,0x01,0x2c,0x00,0x02,0xff,0xe4,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xec,0x40,0x17,0x0b,0x06,0x4d,0x02,0x02,0x0a,0x08,0x0d,0x06,0x4d,0x0a,0x08,0x0c,0x06,0x4d,0x0a,0x08,0x0b,0x06,0x4d,0x0a,0x7e, +0x07,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xe0,0x40,0x1d,0x0c,0x06,0x4d,0x07,0x10,0x0b,0x06,0x4d,0x07,0x07,0x0d,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x7e,0x03,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0xe1,0x2b, +0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc1,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x05,0xb2,0x9b,0xfb,0xa5,0xa8,0x02,0xe6,0xa8,0xc0,0xfe,0x7f,0x01,0x81,0x05,0x9a,0xfa,0xfe, +0x05,0x02,0xfa,0xfe,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x81,0x05,0x9a,0x00,0x10,0x00,0x85,0x40,0x34,0x0f,0x06,0x01,0x10,0x04,0x0e,0x02,0x0c,0x04,0x0c,0x91,0x59,0x04,0x04,0x00,0x09,0x10,0x03,0x00,0x12,0x02,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06,0x4d,0x10,0x7e,0x7f,0x0f,0x01,0x0f,0x20,0x0d, +0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xf8,0x40,0x18,0x0b,0x06,0x4d,0x0f,0x0f,0x12,0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x7e,0x08,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x08,0x0c,0x0b,0x06,0x4d,0x08,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b, +0x5d,0xe1,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x3f,0x32,0x12,0x39,0x2f,0x2b,0x11,0x00,0x33,0x33,0x31,0x30,0x5f,0x5e,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x04,0x81,0xa8,0xe5,0xc5,0xbc,0xcd,0xa8,0xf6,0xb2,0xe3,0xa8,0x02,0x85,0x79,0xc3,0xb0,0x02,0x1b,0xfd,0xed,0xe7,0x6e,0x02, +0x8c,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x06,0xd9,0x05,0x9a,0x00,0x0b,0x00,0xa7,0x40,0x0e,0x07,0x03,0x0b,0x03,0x05,0x00,0x09,0x00,0x09,0x91,0x59,0x00,0x12,0x09,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xf8,0x40,0x22,0x0b,0x06,0x4d,0x09,0x7e,0x00,0x12,0x0d,0x06,0x4d,0x00, +0x0e,0x08,0x01,0x05,0x42,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x7e,0x01,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x28,0x0c,0x06,0x4d,0x01,0x01,0x0c,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x7e,0x05,0x06,0x0d,0x06,0x4d, +0x10,0x05,0x01,0x05,0x05,0x0d,0x0c,0x2f,0x0d,0x4f,0x0d,0x02,0x5d,0x11,0x12,0x39,0x2f,0x5d,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf1,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x33,0x33,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11, +0x21,0x11,0x33,0x06,0xd9,0xf9,0xe3,0xa8,0x02,0x13,0xa7,0x02,0x13,0xa8,0x05,0x9a,0xfa,0xfe,0x05,0x02,0xfa,0xfe,0x05,0x02,0x00,0x01,0x00,0xbc,0xfe,0x7f,0x07,0x9a,0x05,0x9a,0x00,0x0f,0x00,0xff,0xb9,0x00,0x01,0x01,0x30,0x40,0x1e,0x09,0x05,0x0d,0x03,0x0b,0x07,0x02,0x0e,0x02,0x0e,0x91,0x59,0x02,0x12,0x0f,0x08,0x0d,0x06,0x4d, +0x0f,0x08,0x0c,0x06,0x4d,0x0f,0x10,0x0b,0x06,0x4d,0x0f,0xba,0x01,0x2c,0x00,0x02,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xe8,0xb5,0x0b,0x06,0x4d,0x02,0x02,0x0b,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d, +0x0b,0x7e,0x0e,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x0e,0xb8,0xff,0xf8,0x40,0x23,0x0c,0x06,0x4d,0x0e,0x06,0x0b,0x06,0x4d,0x0e,0x0e,0x0a,0x07,0x03,0x42,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x7e,0x6f,0x03,0x01,0x03,0xb8,0xff,0xf0,0x40,0x18,0x0d,0x06,0x4d,0x03,0x03,0x10,0x0a,0x08, +0x0d,0x06,0x4d,0x0a,0x08,0x0c,0x06,0x4d,0x0a,0x08,0x0b,0x06,0x4d,0x0a,0x7e,0x07,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf0,0x40,0x0f,0x0c,0x06,0x4d,0x07,0x06,0x0b,0x06,0x4d,0x07,0x07,0x11,0x10,0x4f,0x11,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b, +0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc1,0x18,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0x33,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x07,0x9a,0x9b,0xf9,0xbd,0xa8,0x02,0x13,0xa8,0x02,0x12, +0xa8,0xc1,0xfe,0x7f,0x01,0x81,0x05,0x9a,0xfa,0xfe,0x05,0x02,0xfa,0xfe,0x05,0x02,0xfa,0xfe,0x00,0x02,0x00,0x29,0x00,0x00,0x05,0x42,0x05,0x9a,0x00,0x0c,0x00,0x14,0x00,0x98,0x40,0x29,0x0d,0x0a,0x01,0x00,0x08,0x01,0x10,0x04,0x05,0x0d,0x91,0x59,0x05,0x05,0x0e,0x04,0x04,0x01,0x91,0x59,0x04,0x03,0x00,0x0e,0x91,0x59,0x00,0x12, +0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06,0x4d,0x09,0x7d,0x12,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf8,0x40,0x25,0x0c,0x06,0x4d,0x12,0x12,0x16,0x00,0x02,0x02,0x15,0x05,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x7e,0x70,0x00,0x01,0x00,0x10,0x0d,0x06,0x4d,0x00,0xb8, +0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xe0,0xb3,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x21,0x11,0x21,0x35,0x21,0x11, +0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0xc6,0xfe,0x63,0x02,0x45,0x01,0x11,0xd5,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa3,0xfe,0xc8,0x05,0x00,0x9a,0xfd,0xa0,0xce,0xc0,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8d,0x7d,0x01,0x00,0x00,0x00,0x03,0x00,0xbc,0x00,0x00,0x05,0x87,0x05,0x9a,0x00,0x03, +0x00,0x0e,0x00,0x16,0x00,0xb0,0x40,0x44,0x0d,0x0c,0x01,0x00,0x0a,0x01,0x10,0x04,0x07,0x0f,0x91,0x59,0x07,0x07,0x10,0x02,0x05,0x03,0x01,0x04,0x04,0x10,0x91,0x59,0x04,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x01,0x01,0x01,0x10,0x0d,0x06,0x4d,0x01,0x01,0x18,0x04,0x0b, +0x08,0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x7d,0x14,0xb8,0xff,0xe8,0x40,0x1e,0x0d,0x06,0x4d,0x00,0x14,0x10,0x14,0x02,0x14,0x14,0x18,0x07,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06,0x4d,0x10,0x7e,0x04,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xfa,0xb3,0x0c,0x06,0x4d,0x04,0xb8, +0xff,0xfd,0xb3,0x0b,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x5d,0x2b,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x33,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x21,0x23,0x11,0x33,0x01,0x11,0x33,0x11,0x21,0x32, +0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x05,0x87,0xa8,0xa8,0xfb,0x35,0xa8,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa2,0xfe,0xc9,0x05,0x9a,0xfa,0x66,0x05,0x9a,0xfd,0xa0,0xcf,0xbf,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8c,0x7e,0x01,0x00,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x38,0x05,0x9a, +0x00,0x0a,0x00,0x12,0x00,0x87,0x40,0x29,0x0d,0x08,0x01,0x00,0x06,0x01,0x10,0x04,0x03,0x0b,0x91,0x59,0x03,0x03,0x0c,0x01,0x03,0x00,0x0c,0x91,0x59,0x00,0x12,0x07,0x08,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x7d,0x10,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x10,0xb8,0xff,0xf8,0x40,0x1e,0x0c,0x06, +0x4d,0x10,0x18,0x0b,0x06,0x4d,0x10,0x10,0x14,0x03,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x7e,0x00,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00, +0x18,0x3f,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x33,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0xbc,0xa8,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa2,0xfe,0xc9,0x05,0x9a,0xfd,0xa0,0xcf,0xbf,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8c,0x7e,0x01,0x00,0x00, +0x00,0x01,0x00,0x68,0xff,0xe8,0x04,0x90,0x05,0xb2,0x00,0x18,0x00,0xb9,0x40,0x14,0x02,0x0f,0x01,0x0d,0x00,0x01,0x02,0x16,0x01,0x02,0x12,0x01,0x10,0x04,0x16,0x10,0x0b,0x00,0x4d,0x0f,0xb8,0xff,0xc0,0x40,0x45,0x0c,0x00,0x4d,0x00,0x40,0x0c,0x00,0x4d,0x08,0x07,0x91,0x59,0x08,0x11,0x17,0x08,0x91,0x2b,0x30,0x00,0x0e,0x01,0x0c, +0x03,0x0e,0x0e,0x0c,0x11,0x0c,0x91,0x59,0x11,0x04,0x00,0x01,0x01,0x0b,0x03,0x01,0x01,0x03,0x17,0x03,0x91,0x59,0x17,0x13,0x07,0x07,0x00,0x09,0x14,0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14,0x08,0x0b,0x06,0x4d,0x14,0x7d,0x06,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff, +0xe8,0x40,0x0b,0x0b,0x06,0x4d,0x20,0x06,0x01,0x06,0x06,0x1a,0x0e,0x00,0x2f,0xc4,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x33,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x01, +0x5f,0x5e,0x5d,0x5d,0x00,0x5d,0x5d,0x37,0x35,0x16,0x33,0x32,0x00,0x37,0x21,0x35,0x21,0x26,0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x68,0x9d,0xe1,0xd6,0x01,0x11,0x10,0xfd,0x85,0x02,0x79,0x1a,0xfe,0xf1,0xd9,0xcb,0xa6,0x9a,0xd7,0x01,0x35,0x01,0x82,0xfe,0x8d,0xfe,0xd1,0xe7,0x3c,0xa3,0x60,0x01, +0x0f,0xf1,0x97,0xf5,0x01,0x0f,0x56,0xb0,0x3e,0xfe,0x61,0xfe,0xa5,0xfe,0xc1,0xfe,0x6f,0x00,0x00,0x02,0x00,0xbc,0xff,0xe8,0x07,0xc6,0x05,0xb2,0x00,0x12,0x00,0x1e,0x00,0xcf,0x40,0x2d,0x0a,0x13,0x91,0x59,0x0a,0x04,0x06,0x01,0x91,0x59,0x06,0x04,0x02,0x06,0x91,0x2b,0x30,0x04,0x03,0x10,0x19,0x91,0x59,0x10,0x13,0x02,0x12,0x0d, +0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x7d,0x1c,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x1c,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x1c,0xb8,0xff,0xe7,0x40,0x19,0x0b,0x06,0x4d,0x1c,0x1c,0x20,0x16,0x08,0x0d,0x06,0x4d,0x16,0x08,0x0c,0x06,0x4d,0x16,0x08,0x0b,0x06,0x4d,0x16,0x7d,0x07,0x00,0xb8, +0xff,0xf0,0x40,0x26,0x0d,0x06,0x4d,0x00,0x04,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x20,0x00,0x01,0x00,0x00,0x20,0x06,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x7e,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x03,0x03,0x0b,0x06,0x4d,0x03, +0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x2f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x12,0x00,0x21,0x20,0x00,0x11,0x10, +0x00,0x21,0x20,0x00,0x01,0x22,0x00,0x11,0x10,0x12,0x33,0x32,0x12,0x11,0x10,0x02,0x02,0xb2,0xfe,0xb2,0xa8,0xa8,0x01,0x54,0x1e,0x01,0x5e,0x01,0x18,0x01,0x21,0x01,0x59,0xfe,0x9e,0xfe,0xcf,0xfe,0xe2,0xfe,0xa5,0x02,0x8c,0xe3,0xfe,0xff,0xf4,0xdd,0xe6,0xfd,0xf3,0x02,0x9e,0xfd,0x62,0x05,0x9a,0xfd,0x9b,0x01,0x2c,0x01,0x51,0xfe, +0x75,0xfe,0xb8,0xfe,0x9d,0xfe,0x6c,0x01,0x7c,0x03,0xb6,0xfe,0xc8,0xfe,0xef,0xfe,0xe5,0xfe,0xc9,0x01,0x32,0x01,0x17,0x01,0x20,0x01,0x32,0x00,0x00,0x02,0x00,0x3d,0x00,0x00,0x03,0xfd,0x05,0x9a,0x00,0x14,0x00,0x1d,0x00,0xa6,0x40,0x6d,0x04,0x11,0x01,0x0b,0x0f,0x01,0x0d,0x0a,0x01,0x0f,0x09,0x01,0x02,0x07,0x01,0x10,0x04,0x06, +0x18,0x0b,0x00,0x4d,0x0c,0x02,0x15,0x15,0x02,0x91,0x59,0x15,0x15,0x13,0x00,0x13,0x17,0x91,0x59,0x13,0x03,0x07,0x00,0x12,0x07,0x08,0x0b,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x09,0x0c,0x09,0x01,0x08,0x1a,0x08,0x0c,0x06,0x4d,0x1a,0x08,0x0b,0x06,0x4d,0x1a,0x7d,0x10,0x10,0x08,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06, +0x4d,0x00,0x08,0x0b,0x06,0x4d,0x15,0x00,0x7e,0x7f,0x01,0x01,0x01,0x18,0x0d,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x01,0x1f,0x07,0x08,0x2f,0x33,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x33,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x39,0x11,0x33,0x2b,0x2b,0x00,0x3f,0x33,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18, +0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x5d,0x00,0x5d,0x5d,0x21,0x23,0x11,0x23,0x22,0x06,0x07,0x03,0x23,0x13,0x36,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x21,0x03,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x03,0xfd,0xa8,0xd1,0x3c,0x5b,0x34,0xb4,0xc8,0xda,0x15,0x57,0x3a,0x8f,0x9f,0xff, +0xcf,0x01,0xa0,0xa8,0xe9,0x8e,0x9d,0xa0,0x87,0x02,0x62,0x41,0x71,0xfe,0x50,0x01,0xdf,0x2f,0x69,0x16,0x04,0x1f,0xc8,0x8e,0xb7,0xdd,0xfd,0x60,0x02,0x08,0x86,0x7a,0x7a,0x8e,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x04,0x18,0x02,0x06,0x00,0x44,0x00,0x00,0x00,0x02,0x00,0x77,0xff,0xe8,0x04,0x40,0x05,0xf8,0x00,0x19,0x00,0x27, +0x00,0x96,0x40,0x2c,0x1a,0x07,0x26,0x0a,0x26,0x95,0x59,0x0a,0x0a,0x20,0x00,0x00,0x01,0xec,0x59,0x00,0x01,0x10,0x20,0x95,0x59,0x10,0x16,0x00,0x00,0x1b,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x83,0x23,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x23,0xb8,0xff,0xe8,0x40,0x30,0x0b,0x06,0x4d, +0x20,0x23,0x30,0x23,0x02,0x23,0x23,0x29,0x07,0x1b,0x08,0x0d,0x06,0x4d,0x1b,0x08,0x0c,0x06,0x4d,0x1b,0x08,0x0b,0x06,0x4d,0x1b,0x83,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x08,0x0b,0x06,0x4d,0x13,0x2f,0x29,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0xe1,0x2b,0x2b, +0x2b,0x11,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x00,0x33,0x33,0x31,0x30,0x01,0x15,0x06,0x07,0x0e,0x02,0x07,0x33,0x36,0x33,0x32,0x12,0x15,0x14,0x00,0x23,0x22,0x02,0x11,0x34,0x12,0x36,0x36,0x37,0x36,0x01,0x15,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x03,0xbe,0x29, +0x5b,0xe1,0xb3,0x73,0x10,0x04,0x78,0xde,0xcb,0xf8,0xfe,0xfd,0xdb,0xec,0xff,0x5c,0xa3,0xc7,0xf2,0x60,0xfd,0x92,0x01,0x2e,0x56,0x75,0x4b,0x89,0xa9,0xad,0x93,0xce,0x05,0xf8,0x9a,0x1e,0x0f,0x22,0x3f,0xce,0xc6,0xae,0xfe,0xea,0xe4,0xeb,0xfe,0xe3,0x01,0x4f,0x01,0x37,0xf2,0x01,0x51,0xaa,0x40,0x2b,0x16,0xfc,0xbe,0x8e,0x50,0x9a, +0x76,0x3a,0xcd,0xa0,0xb0,0xcf,0x00,0x03,0x00,0xa6,0x00,0x00,0x03,0xd1,0x04,0x00,0x00,0x0c,0x00,0x13,0x00,0x1a,0x00,0xa5,0xb9,0x00,0x03,0xff,0xe8,0x40,0x33,0x0b,0x0c,0x00,0x4c,0x07,0x14,0x0e,0x0e,0x14,0x95,0x59,0x0e,0x0e,0x01,0x15,0x01,0x0d,0x95,0x59,0x01,0x0f,0x00,0x15,0x95,0x59,0x00,0x15,0x07,0x15,0x11,0x84,0x05,0x05, +0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x84,0x18,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x18,0xb8,0xff,0xe8,0x40,0x1e,0x0c,0x06,0x4d,0x20,0x18,0x30,0x18,0x02,0x18,0x18,0x1c,0x0e,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x84,0x00,0xb8,0xff,0xfc, +0x40,0x0e,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc0,0x2f,0xe1,0x12,0x39,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x33,0x11,0x21, +0x32,0x16,0x15,0x14,0x07,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x01,0x11,0x21,0x32,0x35,0x34,0x23,0xa6,0x01,0xbe,0x97,0xaf,0xc4,0xeb,0xc1,0x8f,0xfe,0xc9,0xf6,0xc6,0xb2,0xfe,0xf6,0x01,0x1c,0xc7,0xdf,0x04,0x00,0x86,0x74,0xc7,0x2b,0x1e,0xcf,0x7d,0xaa,0x03,0x74,0xfe,0xe0,0x9a,0x86,0xfe,0x54,0xfe,0xc4, +0xa1,0x9b,0x00,0x01,0x00,0xa6,0x00,0x00,0x02,0xdf,0x04,0x00,0x00,0x05,0x00,0x47,0x40,0x20,0x05,0x00,0x95,0x59,0x05,0x0f,0x02,0x15,0x70,0x00,0x01,0x00,0x00,0x07,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x03,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xf8,0xb6,0x0b,0x06, +0x4d,0x03,0x2f,0x07,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x33,0x2f,0x5d,0x00,0x3f,0x3f,0x2b,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x02,0xdf,0xfe,0x6b,0xa4,0x02,0x39,0x03,0x74,0xfc,0x8c,0x04,0x00,0x00,0x02,0x00,0x12,0xfe,0x8b,0x04,0x23,0x04,0x00,0x00,0x0c,0x00,0x11,0x00,0xba,0x40,0x0d,0x00,0x11,0x01,0x10, +0x05,0x0a,0x0e,0x95,0x59,0x0a,0x0f,0x04,0x00,0xb8,0x01,0x31,0x40,0x1c,0x0d,0x07,0x02,0x0b,0x02,0x0b,0x95,0x59,0x02,0x15,0x0f,0x09,0x09,0x0d,0x07,0x0c,0x0c,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0xed,0x02,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf8,0x40,0x20,0x0b, +0x06,0x4d,0x02,0x02,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x84,0x0d,0x12,0x0d,0x06,0x4d,0x0d,0x0d,0x13,0x07,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x06,0xb8,0x01,0x2c,0x40,0x0d,0x03,0x08,0x0b,0x06,0x4d,0x03,0x03,0x11,0x11,0x07,0x30,0x13, +0x01,0x5d,0x2f,0x33,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0xf1,0x2b,0x2b,0x2b,0xc1,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0xc4,0x3f,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x00,0x13,0x21,0x11, +0x33,0x21,0x11,0x23,0x02,0x03,0x04,0x23,0x8b,0xfd,0x06,0x8c,0x5b,0x01,0x06,0x04,0x02,0x14,0x98,0xfe,0xc4,0xe3,0x1b,0xce,0xfe,0x8b,0x01,0x75,0xfe,0x8b,0x02,0x00,0x01,0x7a,0x01,0xfb,0xfc,0x8b,0x02,0xea,0xfe,0x62,0xfe,0xb4,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x04,0x18,0x02,0x06,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x04, +0x00,0x00,0x05,0xf6,0x04,0x00,0x00,0x15,0x00,0xc5,0x40,0x21,0x0a,0x15,0x01,0x07,0x14,0x01,0x07,0x0b,0x01,0x0a,0x0a,0x01,0x09,0x07,0x01,0x09,0x02,0x01,0x0d,0x13,0x01,0x02,0x0c,0x01,0x01,0x08,0x01,0x0e,0x01,0x01,0x10,0x03,0x15,0xb8,0xff,0xf8,0x40,0x0b,0x0b,0x0c,0x00,0x4c,0x0a,0x08,0x0b,0x0c,0x00,0x4c,0x08,0xb8,0xff,0xe8, +0x40,0x45,0x0c,0x00,0x4d,0x01,0x18,0x0c,0x00,0x4d,0x02,0x10,0x0c,0x00,0x4d,0x14,0x0b,0x10,0x0f,0x09,0x00,0x04,0x15,0x15,0x00,0x04,0x0a,0x05,0x09,0x14,0x14,0x00,0x18,0x0b,0x06,0x4d,0x00,0x0e,0x04,0x05,0x09,0x42,0x0b,0x09,0x08,0x0c,0x00,0x4d,0x09,0x09,0x16,0x10,0x0f,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04, +0x08,0x0b,0x06,0x4d,0x04,0x84,0x05,0xb8,0xff,0xfc,0x40,0x0a,0x0b,0x06,0x4d,0x05,0x40,0x17,0x01,0x2f,0x17,0x01,0x5d,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0xc6,0x2b,0x01,0x10,0xf0,0x2b,0xc2,0x18,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x3f,0x33,0x33,0x3f,0x33,0x33,0x31,0x30,0x2b,0x01,0x2b,0x2b, +0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x23,0x01,0x23,0x01,0x01,0x33,0x01,0x33,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x05,0xf6,0xde,0xfe,0x36,0x04,0x9c,0x04,0xfe,0x35,0xdb,0x01,0xfc,0xfe,0x23,0xd1,0x01,0xb6,0x04,0x9c,0x04,0x01,0xb6,0xd3,0xfe,0x21,0x01, +0xfa,0xfe,0x06,0x01,0xfa,0xfe,0x06,0x02,0x10,0x01,0xf0,0xfe,0x21,0x01,0xdf,0xfe,0x21,0x01,0xdf,0xfe,0x10,0x00,0x00,0x01,0x00,0x50,0xff,0xe7,0x03,0x3b,0x04,0x19,0x00,0x21,0x00,0xa7,0x40,0x09,0x05,0x12,0x01,0x0c,0x00,0x01,0x10,0x03,0x15,0xb8,0xff,0xe0,0x40,0x3a,0x0b,0x0c,0x00,0x4c,0x19,0x08,0x09,0x09,0x08,0x95,0x59,0x09, +0x09,0x14,0x03,0x11,0x0f,0x14,0x0f,0x95,0x59,0x14,0x10,0x01,0x03,0x20,0x03,0x95,0x59,0x20,0x16,0x19,0x16,0x08,0x08,0x11,0x0c,0x84,0x16,0x16,0x1d,0x08,0x0d,0x06,0x4d,0x1d,0x08,0x0c,0x06,0x4d,0x1d,0x08,0x0b,0x06,0x4d,0x1d,0x84,0x05,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x05,0xb8,0xff, +0xf0,0x40,0x0d,0x0b,0x06,0x4d,0x20,0x05,0x30,0x05,0x02,0x05,0x05,0x23,0x11,0x00,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x00,0x2f,0x2b,0xc4,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc0,0x2f,0xe1,0x11,0x39,0x2f,0x12,0x39,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x39,0x2f,0x2b, +0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x5f,0x5e,0x5d,0x5d,0x37,0x35,0x16,0x33,0x20,0x35,0x34,0x21,0x23,0x35,0x33,0x20,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x50,0x86,0xb3,0x01,0x0f,0xfe,0xd7,0x65,0x60,0x01,0x05,0x78,0x68,0x95,0x96,0xaa,0x8e,0x01,0x76, +0x6f,0x64,0x72,0x8a,0xe2,0xc6,0xd3,0x1d,0xa1,0x4b,0xac,0xaa,0x8b,0xa2,0x45,0x52,0x4b,0x99,0x3e,0xfe,0xed,0x59,0x81,0x15,0x05,0x09,0x88,0x68,0x8c,0xa6,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x00,0x04,0x00,0x00,0x0d,0x00,0x92,0x40,0x2d,0x7c,0x0c,0x01,0x79,0x0b,0x01,0x73,0x05,0x01,0x76,0x04,0x01,0x46,0x09,0x01,0x4a,0x02,0x01, +0x09,0x02,0x08,0x0d,0x0f,0x05,0x00,0x15,0x0c,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x10,0x0b,0x06,0x4d,0x00,0xef,0x01,0xb8,0xff,0xf4,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xfa,0x40,0x29,0x0b,0x06,0x4d,0x01,0x01,0x0f,0x05,0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06, +0x4d,0x09,0x10,0x0b,0x06,0x4d,0x09,0xef,0x06,0x05,0x0d,0x06,0x4d,0x06,0x01,0x0b,0x06,0x4d,0x06,0x40,0x0f,0x01,0x2f,0x0f,0x01,0x5d,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x32,0x3f,0x33,0x39,0x39,0x5d,0x5d,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x21,0x23, +0x11,0x06,0x07,0x01,0x23,0x11,0x33,0x11,0x36,0x37,0x01,0x33,0x04,0x00,0x94,0x16,0x2d,0xfe,0x27,0xaa,0x96,0x0c,0x28,0x01,0xe6,0xaa,0x03,0x31,0x2b,0x4e,0xfd,0x48,0x04,0x00,0xfc,0xd9,0x1d,0x46,0x02,0xc4,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x00,0x05,0xf2,0x02,0x26,0x02,0x0f,0x00,0x00,0x01,0x06,0x07,0xcd,0x00,0x00,0x00,0x13, +0x40,0x0b,0x01,0x0d,0x14,0x0e,0x07,0x0d,0x25,0x01,0x11,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x02,0x06,0x01,0x67,0x00,0x00,0x00,0x01,0x00,0x10,0xff,0xf2,0x03,0x91,0x04,0x00,0x00,0x0e,0x00,0x96,0x40,0x27,0x00,0x04,0x01,0x10,0x06,0x05,0x20,0x0b,0x0c,0x00,0x4c,0x0e, +0x02,0x95,0x59,0x0e,0x0f,0x09,0x0b,0x06,0x0b,0x95,0x59,0x06,0x00,0x15,0x03,0x08,0x0c,0x06,0x4d,0x03,0x08,0x0b,0x06,0x4d,0x03,0xed,0x0d,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x0d,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0d,0xb8,0xff,0xf0,0x40,0x22,0x0b,0x06,0x4d,0x0d,0x0d,0x08,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d, +0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0x08,0x0d,0x06,0x4d,0x01,0x0c,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x0a,0x0b,0x06,0x4d,0x01,0x01,0x10,0x08,0x3f,0x10,0x01,0x5d,0x2f,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x00,0x3f,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b, +0x31,0x30,0x00,0x2b,0x01,0x5f,0x5e,0x5d,0x21,0x23,0x11,0x23,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x03,0x91,0xa3,0xee,0x29,0xc7,0xa8,0x33,0x25,0x23,0x29,0xdc,0x3f,0x02,0x1a,0x03,0x75,0xfe,0x0f,0xfe,0x6e,0x0e,0x8d,0x12,0x03,0x85,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0xf8,0x04,0x00,0x00,0x13,0x00,0xad, +0x40,0x0a,0x79,0x12,0x01,0x77,0x0e,0x01,0x75,0x0d,0x01,0x0d,0xb8,0xff,0xf0,0x40,0x0a,0x0b,0x00,0x4d,0x06,0x10,0x0b,0x0c,0x00,0x4c,0x05,0xb8,0xff,0xf0,0x40,0x2f,0x0b,0x0c,0x00,0x4c,0x10,0x40,0x0c,0x00,0x4d,0x02,0x09,0x10,0x03,0x0d,0x13,0x0f,0x0a,0x05,0x00,0x15,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00, +0x08,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x01,0x01,0x01,0x08,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf0,0x40,0x19,0x0b,0x06,0x4d,0x01,0x01,0x15,0x0d,0x0a,0x06,0x0d,0x06,0x4d,0x0a,0x12,0x0c,0x06,0x4d,0x0a,0x12,0x0b,0x06,0x4d,0x0a,0xed,0x0b,0xb8,0xff,0xfe,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xfc,0x40,0x0c,0x0c,0x06,0x4d,0x0b,0x07,0x0b, +0x06,0x4d,0x0b,0x3f,0x15,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x32,0x32,0x3f,0x33,0x17,0x39,0x2b,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x37,0x01, +0x33,0x04,0xf8,0xa2,0x16,0x2e,0xff,0x00,0x93,0xfe,0xf8,0x15,0x2f,0x8d,0xd1,0x01,0x0e,0x1d,0x2d,0x49,0x01,0x06,0xda,0x03,0x4c,0x40,0x7c,0xfd,0x70,0x02,0x90,0x35,0x87,0xfc,0xb4,0x04,0x00,0xfd,0x64,0x49,0x81,0xc6,0x02,0xa0,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x00,0x0b,0x00,0x6a,0x40,0x22,0x09,0x02,0x95,0x59, +0x09,0x09,0x07,0x0b,0x0f,0x04,0x00,0x15,0x09,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x01,0x01,0x01,0xb8,0xff,0xfb,0x40,0x24,0x0b,0x06,0x4d,0x01,0x01,0x0d,0x08,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x84,0x05,0x04,0x0d,0x06,0x4d, +0x05,0x40,0x0d,0x01,0x2f,0x0d,0x01,0x5d,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x32,0x3f,0x33,0x39,0x2f,0x2b,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x03,0xf8,0xa4,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0xa4,0x01,0xd1,0xfe,0x2f,0x04,0x00, +0xfe,0x5c,0x01,0xa4,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x02,0x06,0x00,0x52,0x00,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x00,0x07,0x00,0x60,0x40,0x1e,0x07,0x02,0x95,0x59,0x07,0x0f,0x04,0x00,0x15,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x01, +0x01,0x01,0xb8,0xff,0xfb,0x40,0x23,0x0b,0x06,0x4d,0x01,0x01,0x09,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x84,0x05,0x05,0x0d,0x06,0x4d,0x05,0x40,0x09,0x01,0x2f,0x09,0x01,0x5d,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x32,0x3f,0x2b, +0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x03,0xf8,0xa4,0xfd,0xf6,0xa4,0x03,0x52,0x03,0x74,0xfc,0x8c,0x04,0x00,0xff,0xff,0x00,0xa6,0xfe,0x29,0x04,0x54,0x04,0x18,0x02,0x06,0x00,0x53,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x02,0x06,0x00,0x46,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x03,0x29, +0x04,0x00,0x00,0x07,0x00,0x47,0x40,0x2d,0x04,0x00,0x07,0x00,0x95,0x59,0x07,0x0f,0x02,0x15,0x00,0x0e,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x03,0x03,0x05,0x42,0x1f,0x05,0x01,0x05,0x05,0x08,0x03,0x04,0x0d,0x06,0x4d,0x03,0x2f,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x01,0x10,0xf1,0x2b, +0x2b,0x2b,0xe2,0x00,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x03,0x29,0xfe,0xcd,0xa4,0xfe,0xcc,0x03,0x0b,0x03,0x74,0xfc,0x8c,0x03,0x74,0x8c,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x04,0x00,0x02,0x06,0x00,0x5c,0x00,0x00,0x00,0x03,0x00,0x60,0xfe,0x1e,0x05,0x1c,0x05,0xb2, +0x00,0x15,0x00,0x1e,0x00,0x27,0x00,0xe4,0x40,0x19,0x20,0x0b,0x16,0x0e,0x0e,0x16,0x95,0x59,0x0e,0x10,0x1f,0x03,0x00,0x17,0x00,0x17,0x95,0x59,0x00,0x16,0x0d,0x04,0x01,0x1c,0x24,0xb8,0xff,0xf0,0x40,0x1c,0x0b,0x0c,0x00,0x4c,0x1b,0x10,0x0b,0x0c,0x00,0x4c,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08,0x0c,0x06,0x4d,0x12,0x08,0x0b,0x06, +0x4d,0x1b,0x83,0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x12,0xb8,0xff,0xe8,0x40,0x43,0x0b,0x06,0x4d,0x12,0x0e,0x01,0x02,0x07,0x42,0x24,0x08,0x0d,0x06,0x4d,0x24,0x08,0x0c,0x06,0x4d,0x24,0x08,0x0b,0x06,0x4d,0x24,0x83,0x07,0x10,0x0d,0x06,0x4d,0x07,0x10,0x0c,0x06,0x4d,0x07,0x18,0x0b, +0x06,0x4d,0x07,0x07,0x28,0x0c,0x0d,0x16,0x20,0x04,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x10,0x0b,0x06,0x4d,0x01,0xed,0x02,0xb8,0xff,0xfb,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xfd,0x40,0x0c,0x0b,0x06,0x4d,0x2f,0x02,0x01,0x02,0x2f,0x29,0x3f,0x29,0x02,0x5d,0x2f,0x5d,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x17,0x39, +0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x05,0x11,0x23,0x11,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x33,0x11,0x33,0x11,0x33,0x32,0x00,0x15,0x14, +0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x03,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x03,0x08,0x94,0x20,0xe0,0xfe,0xec,0x01,0x17,0xe5,0x18,0x94,0x16,0xe7,0x01,0x17,0xfe,0xee,0xdf,0x23,0x16,0x9c,0xba,0xb7,0x9a,0xaf,0x18,0x9a,0xba,0xbb,0x9d,0x18,0xfe,0x36,0x01,0xca,0x01,0x22,0xea,0xf9,0x01,0x2b,0x01,0x9a, +0xfe,0x66,0xfe,0xd7,0xfb,0xea,0xfe,0xde,0x03,0xa6,0xfc,0xe4,0xd3,0xb5,0xbe,0xd6,0xfc,0xe4,0x03,0x1c,0xd7,0xbd,0xb3,0xd5,0xff,0xff,0x00,0x1a,0x00,0x00,0x03,0x92,0x04,0x00,0x02,0x06,0x00,0x5b,0x00,0x00,0x00,0x01,0x00,0xa6,0xfe,0x8b,0x04,0x8f,0x04,0x00,0x00,0x0b,0x00,0x93,0xb9,0x00,0x01,0x01,0x31,0x40,0x17,0x05,0x09,0x0f, +0x07,0x02,0x0a,0x02,0x0a,0x95,0x59,0x02,0x15,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x10,0x0b,0x06,0x4d,0x0b,0xba,0x01,0x2c,0x00,0x02,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf0,0x40,0x38,0x0b,0x06,0x4d,0x02,0x02,0x0a,0x08,0x0c,0x06,0x4d,0x0a,0x08,0x0b,0x06,0x4d,0x0a,0x84,0x07,0x08, +0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x07,0x0d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x03,0x08,0x0d,0x06,0x4d,0x03,0x04,0x0c,0x06,0x4d,0x03,0x40,0x0d,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xf1,0x2b,0x2b,0xc1,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x00,0x3f,0x2b,0x11, +0x12,0x00,0x39,0x18,0x3f,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x04,0x8f,0x8d,0xfc,0xa4,0xa4,0x02,0x0a,0xa4,0x97,0xfe,0x8b,0x01,0x75,0x04,0x00,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x00,0x00,0x01,0x00,0x98,0x00,0x00,0x03,0xdf,0x04,0x00,0x00,0x0f,0x00,0x67,0x40,0x46,0x0d,0x02,0x0b,0x04, +0x0b,0xec,0x59,0x04,0x04,0x00,0x08,0x0f,0x0f,0x00,0x15,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d,0x0f,0x08,0x0b,0x06,0x4d,0x02,0x0f,0x84,0x7f,0x0e,0x01,0x0e,0x0e,0x11,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x84,0x07,0x05,0x0d,0x06,0x4d,0x07,0x05,0x0c,0x06,0x4d,0x07,0x2f, +0x11,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0xe1,0x33,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x32,0x12,0x39,0x2f,0x2b,0x11,0x00,0x33,0x33,0x31,0x30,0x21,0x23,0x11,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x03,0xdf,0xa3,0xb4,0x98,0xfe,0xa8,0xa4,0xc2,0x94,0xaa,0xa3,0x01,0x9c,0x62, +0x01,0x6c,0x01,0x5a,0xfe,0xae,0xe1,0x56,0x01,0xdd,0x00,0x01,0x00,0xa6,0x00,0x00,0x05,0xc0,0x04,0x00,0x00,0x0b,0x00,0xad,0x40,0x1f,0x07,0x03,0x0b,0x0f,0x05,0x00,0x09,0x00,0x09,0x95,0x59,0x00,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x09,0x84,0x00,0xb8,0xff,0xf8,0x40,0x1b,0x0b,0x06, +0x4d,0x00,0x0e,0x08,0x01,0x05,0x42,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x84,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x22,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x01,0x0c,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d, +0x08,0x84,0x05,0x04,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xfc,0x40,0x0c,0x0b,0x06,0x4d,0x05,0x05,0x0d,0x0c,0x3f,0x0d,0x4f,0x0d,0x02,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf1,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18, +0x3f,0x33,0x33,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x05,0xc0,0xfa,0xe6,0xa4,0x01,0x98,0xa3,0x01,0x97,0xa4,0x04,0x00,0xfc,0x8c,0x03,0x74,0xfc,0x8c,0x03,0x74,0x00,0x01,0x00,0xa6,0xfe,0x8b,0x06,0x5a,0x04,0x00,0x00,0x0f,0x00,0xf2,0xb9,0x00,0x01,0x01,0x31,0x40,0x1e,0x09,0x05,0x0d,0x0f,0x0b, +0x07,0x02,0x0e,0x02,0x0e,0x95,0x59,0x02,0x15,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d,0x0f,0x10,0x0b,0x06,0x4d,0x0f,0xba,0x01,0x2c,0x00,0x02,0xff,0xf4,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf0,0x40,0x1c,0x0b,0x06,0x4d,0x02,0x02,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06, +0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0b,0x84,0x0e,0x07,0x0d,0x06,0x4d,0x0e,0xb8,0xff,0xf9,0x40,0x1b,0x0b,0x06,0x4d,0x0e,0x0e,0x0a,0x07,0x03,0x42,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf8,0x40,0x32,0x0c,0x06,0x4d,0x03,0x08, +0x0b,0x06,0x4d,0x03,0x03,0x10,0x0a,0x08,0x0d,0x06,0x4d,0x0a,0x08,0x0c,0x06,0x4d,0x0a,0x08,0x0b,0x06,0x4d,0x0a,0x84,0x07,0x0e,0x0d,0x06,0x4d,0x07,0x10,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x07,0x11,0x10,0x3f,0x11,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1, +0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc1,0x18,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0x33,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x06,0x5a,0x8f,0xfa,0xdb,0xa4,0x01,0x97,0xa4,0x01, +0x98,0xa4,0x99,0xfe,0x8b,0x01,0x75,0x04,0x00,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x04,0x64,0x04,0x00,0x00,0x0c,0x00,0x13,0x00,0x7e,0x40,0x26,0x05,0x0d,0x95,0x59,0x05,0x05,0x04,0x0e,0x04,0x01,0x95,0x59,0x04,0x0f,0x00,0x0e,0x95,0x59,0x00,0x15,0x09,0x08,0x0d,0x06,0x4d,0x09, +0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x83,0x11,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x11,0xb8,0xff,0xf8,0x40,0x1d,0x0c,0x06,0x4d,0x11,0x11,0x15,0x05,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x84,0x00,0x02,0x02,0x14,0x00,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x00,0x2f,0x2b, +0x12,0x39,0x2f,0x10,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x31,0x30,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x01,0x56,0xfe,0xc8,0x01,0xdc,0x01,0x14,0x9d,0xb9, +0xba,0x8e,0xfe,0xde,0xf6,0xcc,0xce,0x03,0x74,0x8c,0xfe,0x77,0xa3,0x94,0x94,0xac,0x01,0xea,0xfe,0xa2,0xb4,0xaa,0x00,0x03,0x00,0xa6,0x00,0x00,0x05,0x06,0x04,0x00,0x00,0x03,0x00,0x0e,0x00,0x15,0x00,0xb0,0xb9,0x00,0x09,0xff,0xe8,0x40,0x2f,0x0b,0x00,0x4d,0x07,0x0f,0x95,0x59,0x07,0x07,0x10,0x02,0x05,0x0f,0x01,0x04,0x04,0x10, +0x95,0x59,0x04,0x15,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x01,0x01,0x01,0x04,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf4,0x40,0x1c,0x0b,0x06,0x4d,0x01,0x01,0x17,0x04,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x83,0x10,0x13,0x01,0x13,0x08,0x0d,0x06,0x4d,0x13,0xb8, +0xff,0xf8,0x40,0x19,0x0c,0x06,0x4d,0x13,0x13,0x17,0x07,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06,0x4d,0x10,0x84,0x04,0xb8,0xff,0xfc,0x40,0x09,0x0c,0x06,0x4d,0x04,0x04,0x0b,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x2f, +0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x33,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x2b,0x21,0x23,0x11,0x33,0x01,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x05,0x06,0xa2,0xa2,0xfb,0xa0,0xa4,0x01,0x14,0x9d,0xb9,0xba,0x8e,0xfe,0xde,0xf6,0xcc,0xce, +0x04,0x00,0xfc,0x00,0x04,0x00,0xfe,0x77,0xa4,0x93,0x94,0xac,0x01,0xea,0xfe,0xa2,0xb4,0xaa,0x00,0x02,0x00,0xa6,0x00,0x00,0x03,0xb4,0x04,0x00,0x00,0x0a,0x00,0x11,0x00,0x74,0x40,0x21,0x03,0x0b,0x95,0x59,0x03,0x03,0x0c,0x01,0x0f,0x00,0x0c,0x95,0x59,0x00,0x15,0x07,0x08,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b, +0x06,0x4d,0x07,0x83,0x0f,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xf0,0x40,0x19,0x0d,0x06,0x4d,0x0f,0x0f,0x13,0x03,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x84,0x00,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x00,0x02,0x0c,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b, +0x32,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x12,0x39,0x2f,0x2b,0x31,0x30,0x33,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0xa6,0xa4,0x01,0x14,0x9d,0xb9,0xba,0x8e,0xfe,0xde,0xf6,0xcc,0xce,0x04,0x00,0xfe,0x77,0xa4,0x93,0x94,0xac,0x01,0xea,0xfe, +0xa2,0xb4,0xaa,0x00,0x00,0x01,0x00,0x5a,0xff,0xe8,0x03,0x5a,0x04,0x18,0x00,0x18,0x00,0x99,0x40,0x09,0x00,0x16,0x01,0x00,0x12,0x01,0x10,0x05,0x05,0xb8,0xff,0xe8,0xb4,0x0b,0x0c,0x00,0x4c,0x09,0xb8,0xff,0xf0,0x40,0x36,0x0c,0x06,0x4d,0x09,0x06,0x95,0x59,0x09,0x09,0x03,0x11,0x0e,0x0c,0x11,0x0c,0x95,0x59,0x11,0x10,0x00,0x01, +0x01,0x0c,0x03,0x01,0x03,0x17,0x03,0x95,0x59,0x17,0x16,0x07,0x07,0x00,0x14,0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14,0x08,0x0b,0x06,0x4d,0x14,0x83,0x09,0x06,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf8,0x40,0x0d,0x0c,0x06,0x4d,0x20,0x06,0x30,0x06,0x02,0x06,0x06,0x1a,0x0e,0x00,0x2f,0xc4,0x12,0x39,0x2f, +0x5d,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x39,0x2f,0x2b,0x01,0x2b,0x31,0x30,0x00,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x37,0x35,0x16,0x33,0x32,0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x11, +0x14,0x00,0x23,0x22,0x5a,0x74,0x96,0x91,0xb3,0x08,0xfe,0x4c,0x01,0xb4,0x0c,0xb2,0x94,0x8f,0x69,0x6a,0x90,0xf4,0x01,0x06,0xfe,0xf3,0xe3,0x9d,0x2d,0x9b,0x56,0xb3,0x99,0x8c,0x98,0xac,0x4e,0xa2,0x36,0xfe,0xe3,0xfe,0xfd,0xf1,0xfe,0xe1,0x00,0x02,0x00,0xa6,0xff,0xe8,0x06,0x1e,0x04,0x18,0x00,0x12,0x00,0x1a,0x00,0xb7,0x40,0x33, +0x00,0x0b,0x01,0x10,0x06,0x0a,0x13,0x95,0x59,0x0a,0x10,0x10,0x17,0x95,0x59,0x10,0x16,0x06,0x01,0x95,0x59,0x06,0x06,0x03,0x04,0x0f,0x03,0x15,0x07,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x83,0x19,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x19,0xb8,0xff,0xe0,0x40,0x19, +0x0b,0x06,0x4d,0x19,0x19,0x1c,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x83,0x07,0x00,0xb8,0xff,0xe0,0x40,0x19,0x0b,0x06,0x4d,0x00,0x00,0x1c,0x06,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x03,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x03, +0x08,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x36,0x24,0x33, +0x32,0x12,0x11,0x14,0x00,0x23,0x22,0x02,0x01,0x20,0x11,0x10,0x21,0x20,0x11,0x10,0x02,0x6c,0xfe,0xde,0xa4,0xa4,0x01,0x24,0x1a,0x01,0x01,0xc9,0xdb,0xf1,0xfe,0xfe,0xe2,0xd5,0xef,0x01,0xce,0xfe,0xce,0x01,0x36,0x01,0x2f,0x01,0xd1,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0xd2,0xea,0xfe,0xec,0xff,0x00,0xf9,0xfe,0xdd,0x01,0x01,0x02,0xa5, +0xfe,0x70,0xfe,0x74,0x01,0x8c,0x01,0x90,0x00,0x02,0x00,0x3e,0x00,0x00,0x03,0x62,0x04,0x00,0x00,0x11,0x00,0x18,0x00,0xae,0x40,0x5a,0x02,0x06,0x01,0x10,0x04,0x0a,0x02,0x12,0x02,0x12,0x95,0x59,0x02,0x02,0x11,0x00,0x11,0x13,0x95,0x59,0x11,0x0f,0x06,0x00,0x15,0x05,0x08,0x0c,0x06,0x4d,0x05,0x08,0x0b,0x06,0x4d,0x06,0x08,0x0b, +0x06,0x4d,0x05,0x08,0x0a,0x08,0x01,0x07,0x16,0x08,0x0c,0x06,0x4d,0x16,0x08,0x0b,0x06,0x4d,0x16,0x83,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x0d,0x07,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0x0c,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb6, +0x0b,0x06,0x4d,0x01,0x01,0x1a,0x07,0xb8,0xff,0xf0,0xb5,0x0c,0x06,0x4d,0x06,0x07,0x19,0x10,0xce,0x32,0x2b,0x11,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x33,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x39,0x11,0x33,0x2b,0x2b,0x2b,0x00,0x3f,0x33,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39, +0x31,0x30,0x01,0x5f,0x5e,0x5d,0x21,0x23,0x11,0x23,0x22,0x07,0x03,0x23,0x13,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x21,0x03,0x11,0x23,0x22,0x15,0x14,0x33,0x03,0x62,0xa4,0x89,0x63,0x51,0x85,0xbe,0xac,0x3c,0x55,0x78,0x7e,0xc5,0xb2,0x01,0x66,0xa4,0xc2,0xcf,0xc9,0x01,0xa8,0xa0,0xfe,0xf8,0x01,0x3c,0x6e,0x23,0x10,0x90,0x6c, +0x88,0x9f,0xfe,0x31,0x01,0x43,0x9d,0xa6,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0x87,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x00,0x8f,0x7f,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x29,0x23,0x0c,0x12,0x3e,0x03,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x00,0x01,0x00,0x27,0xfe,0x62,0x04,0x14, +0x05,0xec,0x00,0x21,0x00,0xbc,0x40,0x40,0x11,0x0e,0x17,0x14,0x14,0x17,0x96,0x59,0x0f,0x14,0x1f,0x14,0x2f,0x14,0x03,0x09,0x03,0x14,0x14,0x13,0x1b,0x18,0x08,0x1b,0x08,0x95,0x59,0x1b,0x0f,0x13,0x00,0x01,0x03,0x20,0x03,0xec,0x59,0x20,0x0c,0x15,0x15,0x15,0x0c,0x00,0x00,0x0d,0x1d,0x08,0x0d,0x06,0x4d,0x1d,0x08,0x0c,0x06,0x4d, +0x1d,0x08,0x0b,0x06,0x4d,0x1d,0x83,0x06,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf0,0x40,0x1d,0x0b,0x06,0x4d,0x06,0x06,0x23,0x11,0x14,0x17,0x03,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x84,0x0f,0x0d,0xb8,0xff,0xfc,0x40,0x0a,0x0b, +0x06,0x4d,0x0d,0x40,0x23,0x01,0x2f,0x23,0x01,0x5d,0x5d,0x2f,0x2b,0xce,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x10,0xc0,0x2f,0x00,0x3f,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39, +0x31,0x30,0x01,0x35,0x16,0x33,0x32,0x12,0x11,0x10,0x21,0x22,0x06,0x15,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x36,0x33,0x20,0x11,0x10,0x02,0x23,0x22,0x01,0xd5,0x43,0x3a,0x92,0x8a,0xfe,0xfa,0x76,0xa2,0xa4,0x85,0x85,0xa4,0x01,0x4e,0xfe,0xb2,0x04,0x69,0xd3,0x01,0x84,0xdb,0xe9,0x3a,0xfe,0x7b, +0x9d,0x24,0x01,0x2b,0x01,0x64,0x01,0xef,0xbb,0x8a,0xfd,0xd3,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfe,0x8a,0xc2,0xfd,0x87,0xfe,0x5a,0xfe,0x83,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0xdf,0x06,0x0a,0x02,0x26,0x02,0x0a,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0x94,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x1b,0x08,0x06,0x04,0x05,0x3e,0x01, +0x08,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x60,0x04,0x18,0x00,0x18,0x00,0x86,0xb9,0x00,0x14,0xff,0xf0,0x40,0x52,0x0b,0x0c,0x00,0x4c,0x03,0x08,0x10,0x00,0x4d,0x11,0x12,0x95,0x59,0x11,0x11,0x16,0x08,0x00,0x0b,0x01,0x0d,0x03,0x0b,0x0d,0x08,0x0d,0x95,0x59,0x08,0x10,0x00,0x18,0x01, +0x0c,0x03,0x18,0x16,0x02,0x16,0x95,0x59,0x02,0x16,0x12,0x12,0x13,0x0b,0x00,0x30,0x00,0x01,0x00,0x1a,0x10,0x10,0x0c,0x06,0x4d,0x10,0x13,0x08,0x0d,0x06,0x4d,0x13,0x83,0x05,0x10,0x0d,0x06,0x4d,0x05,0x10,0x0c,0x06,0x4d,0x05,0x18,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x32,0x2b,0x11,0x33,0x5d,0x2f,0xc4,0x12,0x39, +0x2f,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x2b,0x2b,0x25,0x06,0x23,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x33,0x32,0x37,0x03,0x60,0x73,0x9f,0xe5,0xfe,0xf7,0x01,0x14, +0xf2,0x89,0x67,0x64,0x92,0x93,0xb6,0x0d,0x01,0xb4,0xfe,0x4a,0x08,0xb2,0x94,0x92,0x78,0x2d,0x45,0x01,0x1b,0xef,0x01,0x02,0x01,0x24,0x32,0xa2,0x4a,0xb0,0x94,0x8c,0x97,0xb5,0x5b,0x00,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x04,0x18,0x02,0x06,0x00,0x56,0x00,0x00,0xff,0xff,0xff,0xd3,0x00,0x00,0x02,0x1a,0x05,0x87,0x02,0x26, +0x00,0xd6,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x56,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x13,0x0d,0x02,0x03,0x25,0x02,0x01,0x10,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x00,0x02,0x00,0x10,0xff,0xf2,0x05,0xfc,0x04,0x00,0x00,0x15,0x00,0x1c,0x00,0xd5,0x40,0x34,0x00,0x03,0x01,0x10,0x06,0x04,0x18,0x0b, +0x0c,0x00,0x4c,0x08,0x0a,0x05,0x0a,0x95,0x59,0x05,0x00,0x0e,0x16,0x95,0x59,0x0e,0x0e,0x0c,0x17,0x0c,0x02,0x95,0x59,0x0c,0x0f,0x00,0x17,0x95,0x59,0x00,0x15,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0xed,0x0c,0xb8,0xff,0xe8,0x40,0x19,0x0d,0x06,0x4d,0x0c,0x0c,0x00,0x07,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08,0x0c, +0x06,0x4d,0x12,0x08,0x0b,0x06,0x4d,0x12,0x83,0x1a,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x1a,0xb8,0xff,0xfc,0x40,0x19,0x0c,0x06,0x4d,0x1a,0x1a,0x1e,0x0e,0x17,0x08,0x0d,0x06,0x4d,0x17,0x08,0x0c,0x06,0x4d,0x17,0x08,0x0b,0x06,0x4d,0x17,0x84,0x00,0xb8,0xff,0xfc,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x00, +0xb8,0xff,0xf4,0x40,0x0a,0x0b,0x06,0x4d,0x00,0x00,0x1e,0x07,0x4f,0x1e,0x01,0x5d,0x2f,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x00,0x18,0x10,0xc4,0x2b, +0x00,0x18,0x10,0xc6,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x21,0x11,0x23,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x02,0xee,0xee,0x29,0xc7,0xa8,0x33,0x25,0x23,0x29,0xdc,0x3f,0x02,0x1a,0x01,0x15,0x9d,0xb9,0xbb,0x8d,0xfe,0xdd,0xf6,0xcd, +0xcf,0x03,0x75,0xfe,0x0f,0xfe,0x6e,0x0e,0x8d,0x12,0x03,0x85,0xfe,0x77,0xa4,0x94,0x92,0xad,0x01,0xe9,0xfe,0xa2,0xb4,0xaa,0x00,0x02,0x00,0xa6,0x00,0x00,0x06,0x14,0x04,0x00,0x00,0x12,0x00,0x19,0x00,0xb7,0x40,0x28,0x08,0x01,0x13,0x0b,0x0b,0x13,0x95,0x59,0x0b,0x0b,0x14,0x06,0x0a,0x0f,0x03,0x00,0x00,0x14,0x95,0x59,0x00,0x15, +0x0f,0x04,0x0d,0x06,0x4d,0x0f,0x04,0x0c,0x06,0x4d,0x0f,0x04,0x0b,0x06,0x4d,0x0f,0x83,0x17,0xb8,0xff,0xf0,0x40,0x1a,0x0d,0x06,0x4d,0x17,0x17,0x1b,0x0b,0x08,0x14,0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14,0x08,0x0b,0x06,0x4d,0x14,0x84,0x00,0xb8,0xff,0xf9,0x40,0x09,0x0d,0x06,0x4d,0x00,0x14,0x0c,0x06,0x4d,0x00,0xb8, +0xff,0xf0,0x40,0x19,0x0b,0x06,0x4d,0x00,0x00,0x1b,0x07,0x03,0x08,0x0d,0x06,0x4d,0x03,0x08,0x0c,0x06,0x4d,0x03,0x08,0x0b,0x06,0x4d,0x03,0x84,0x04,0xb8,0xff,0xf8,0x40,0x0c,0x0d,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x4f,0x1b,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b, +0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x33,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x21,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x03,0x06,0xfe,0x44,0xa4,0xa4,0x01, +0xbc,0xa4,0x01,0x14,0xa1,0xb5,0xb8,0x8f,0xfe,0xdd,0xf6,0xcc,0xce,0x01,0xdd,0xfe,0x23,0x04,0x00,0xfe,0x6a,0x01,0x96,0xfe,0x6a,0x9e,0x92,0x93,0xa7,0x01,0xdd,0xfe,0xaf,0xae,0xa3,0x00,0x00,0x01,0x00,0x27,0x00,0x00,0x03,0xfe,0x05,0xec,0x00,0x19,0x00,0xb4,0x40,0x3f,0x02,0x18,0x01,0x02,0x18,0x01,0x10,0x04,0x0d,0x0a,0x13,0x10, +0x10,0x13,0x96,0x59,0x0f,0x10,0x1f,0x10,0x2f,0x10,0x03,0x09,0x03,0x10,0x10,0x0f,0x17,0x15,0x04,0x17,0x04,0x95,0x59,0x17,0x0f,0x0f,0x00,0x08,0x00,0x15,0x12,0x12,0x08,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c, +0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x1d,0x0b,0x06,0x4d,0x01,0x01,0x1b,0x0d,0x10,0x13,0x03,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x84,0x0b,0x09,0xb8,0xff,0xfc,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x1b,0x01,0x5d,0x2f,0x2b,0xce,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b, +0xe1,0x2b,0x2b,0x2b,0x10,0xc0,0x2f,0x00,0x3f,0x33,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x36,0x33,0x20,0x11, +0x03,0xfe,0xa4,0xec,0x7b,0xa3,0xa4,0x85,0x85,0xa4,0x01,0x4e,0xfe,0xb2,0x04,0x77,0xd9,0x01,0x5a,0x02,0x33,0x01,0x41,0xba,0x95,0xfd,0xdb,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfe,0x8c,0xc2,0xfe,0x5e,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x0a,0x02,0x26,0x01,0x67,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x1f,0x00,0x00,0x00,0x13, +0x40,0x0b,0x01,0x00,0x0e,0x0e,0x07,0x0a,0x3e,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0xf2,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x06,0x07,0xcd,0xa0,0x00,0x00,0x13,0x40,0x0b,0x01,0x0f,0x1b,0x15,0x0c,0x00,0x25,0x01,0x18,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, +0x00,0x01,0x00,0xa6,0xfe,0x8b,0x03,0xf8,0x04,0x00,0x00,0x0b,0x00,0x9c,0xb3,0x07,0x0b,0x0f,0x02,0xb8,0x01,0x31,0x40,0x18,0x04,0x00,0x00,0x09,0x95,0x59,0x00,0x15,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x10,0x0b,0x06,0x4d,0x01,0xbb,0x01,0x2c,0x00,0x04,0x00,0x04,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x08,0x09,0x04, +0xb8,0x01,0x2c,0x40,0x17,0xff,0x30,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x09,0x01,0x09,0xb8,0xff,0xf8,0x40,0x23,0x0b,0x06,0x4d,0x09,0x09,0x0d,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x84,0x05,0x04,0x0d,0x06,0x4d,0x05,0x40,0x0d, +0x01,0x2f,0x0d,0x01,0x5d,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x10,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x33,0x31,0x30,0x21,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x03,0xf8,0xfe,0x9e,0x8e,0xfe,0x9e,0xa4,0x02,0x0a, +0xa4,0xfe,0x8b,0x01,0x75,0x04,0x00,0xfc,0x8b,0x03,0x75,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xa4,0x06,0xa2,0x00,0x07,0x00,0x75,0x40,0x19,0x05,0x00,0x91,0x59,0x06,0x05,0x03,0x02,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x10,0x0b,0x06,0x4d,0x05,0xb8,0x01,0x2c,0x40,0x09,0x70,0x00,0x01,0x00,0x08,0x0d, +0x06,0x4d,0x00,0xb8,0xff,0xfa,0x40,0x18,0x0b,0x06,0x4d,0x00,0x00,0x09,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x7e,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x06,0x4d,0x03,0x04,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x33, +0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0xcd,0x2b,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x03,0xa4,0xfd,0xc0,0xa8,0x02,0x58,0x90,0x05,0x02,0xfa,0xfe,0x05,0x9a,0x01,0x08,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x02,0xe6,0x05,0x0e,0x00,0x07,0x00,0x62,0x40,0x19,0x05,0x00,0x95,0x59,0x06,0x05,0x0f,0x02, +0x15,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x10,0x0b,0x06,0x4d,0x05,0xb8,0x01,0x2c,0x40,0x1d,0x70,0x00,0x01,0x00,0x18,0x0d,0x06,0x4d,0x00,0x00,0x09,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x03,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x03,0x12,0x0b,0x06,0x4d, +0x03,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x33,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0xcd,0x2b,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x02,0xe6,0xfe,0x64,0xa4,0x01,0xb0,0x90,0x03,0x74,0xfc,0x8c,0x04,0x00,0x01,0x0e,0xff,0xff,0x00,0x00,0x01,0xfa,0x08,0x00,0x02,0x7b,0x02,0x06,0x00,0xb3,0x00,0x00, +0x00,0x04,0x00,0xbc,0x00,0x00,0x08,0x9a,0x05,0xae,0x00,0x0b,0x00,0x14,0x00,0x26,0x00,0x2a,0x00,0xd8,0x40,0x52,0x06,0x20,0x01,0x0a,0x16,0x01,0x04,0x0b,0x01,0x03,0x07,0x01,0x03,0x0f,0x05,0x01,0x0f,0x01,0x01,0x10,0x04,0x29,0x28,0x96,0x59,0x29,0x00,0x00,0x11,0x96,0x59,0x00,0x00,0x06,0x06,0x0c,0x96,0x59,0x06,0x04,0x20,0x26, +0x03,0x1d,0x15,0x12,0x2a,0x29,0x2a,0x29,0x03,0x09,0x8b,0x13,0x13,0x2c,0x0f,0x8b,0x03,0x03,0x2c,0x1e,0x16,0x22,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x7e,0x24,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x24,0xb8,0xff,0xf0,0x40,0x1f,0x0c,0x06,0x4d,0x24,0x0a,0x0b,0x06,0x4d,0x24,0x24,0x2c, +0x20,0x1a,0x1d,0x08,0x0d,0x06,0x4d,0x1d,0x08,0x0c,0x06,0x4d,0x1d,0x08,0x0b,0x06,0x4d,0x1d,0x7e,0x1e,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x1e,0xb8,0xff,0xfc,0x40,0x09,0x0c,0x06,0x4d,0x1e,0x04,0x0b,0x06,0x4d,0x1e,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x33, +0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x3f,0x33,0x3f,0x33,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x10,0x33,0x32,0x11, +0x10,0x01,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x33,0x26,0x35,0x11,0x33,0x01,0x21,0x35,0x21,0x07,0x1c,0xaf,0xc3,0xcb,0xba,0xb0,0xbb,0xcb,0xa8,0x6c,0x79,0xe1,0xdd,0xfd,0x02,0xd1,0xfd,0x5f,0x20,0x0e,0x06,0x08,0xa8,0xdc,0x02,0xc6,0x04,0x08,0xa8,0x03,0x79,0xfd,0x4d,0x02,0xb3,0x02,0x5c,0xde,0xc4,0xd1, +0xdf,0xda,0xc8,0xc6,0xea,0x02,0xcb,0x99,0x8c,0xfe,0xe2,0x01,0x20,0x01,0x23,0xfa,0xd9,0x04,0x70,0x37,0x21,0x2e,0x94,0xfb,0xfa,0x05,0x9a,0xfb,0x43,0x31,0xa0,0x03,0xec,0xfb,0xa4,0x84,0x00,0x01,0x00,0x11,0xff,0xf4,0x04,0xaf,0x04,0x00,0x00,0x1a,0x00,0xb2,0x40,0x36,0x00,0x18,0x01,0x0d,0x0a,0x01,0x10,0x04,0x16,0x00,0x14,0x0d, +0x00,0x1a,0x00,0x95,0x59,0x1a,0x0f,0x06,0x04,0x09,0x04,0xec,0x59,0x09,0x10,0x15,0x00,0x00,0x02,0x06,0x06,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x7f,0x0b,0x01,0x0b,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xf0,0x40,0x27,0x0b, +0x06,0x4d,0x0b,0x0b,0x1c,0x13,0x16,0x16,0x1b,0x11,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x84,0x13,0x17,0x0d,0x06,0x4d,0x13,0x12,0x0c,0x06,0x4d,0x13,0xb8,0xff,0xe8,0xb3,0x0b,0x06,0x4d,0x13,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc6,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x2b,0x2b, +0x2b,0x5d,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x10,0xc2,0x2f,0x00,0x3f,0xc4,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x11,0x00,0x33,0x33,0x18,0x10,0xc4,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x01,0x23,0x11,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x11,0x11,0x21,0x11,0x14,0x07,0x23,0x36,0x35,0x11,0x06,0x07,0x35,0x36,0x33,0x21,0x04, +0xaf,0xde,0x65,0x22,0x36,0x3d,0x3d,0xe8,0xfe,0x7b,0x20,0xa7,0x24,0x7b,0x78,0x4b,0xaa,0x03,0xa9,0x03,0x7b,0xfd,0x95,0x8c,0x13,0x8c,0x17,0x01,0x15,0x02,0x72,0xfd,0x9d,0xc0,0x58,0x57,0xc1,0x02,0x63,0x03,0x56,0x96,0x48,0x00,0x00,0x02,0x00,0x2f,0x02,0x48,0x02,0xaa,0x05,0x9a,0x00,0x0c,0x00,0x11,0x00,0x4a,0x40,0x18,0x0c,0x0b, +0x0b,0x02,0xcc,0x0d,0x06,0x09,0x16,0x09,0x02,0x09,0x03,0x03,0x13,0x11,0x4f,0x06,0x7f,0x06,0x02,0x06,0x04,0x01,0xb8,0x01,0x56,0x40,0x0f,0x0c,0x06,0x0f,0x0d,0x1f,0x0d,0x02,0x0d,0x0d,0x02,0x0e,0x0a,0x27,0x02,0x28,0x00,0x3f,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x01,0x2f,0x5d,0x33,0x12,0x39,0x2f,0x33,0x5d,0x33, +0xed,0x32,0x11,0x33,0x30,0x31,0x01,0x23,0x15,0x23,0x35,0x21,0x35,0x36,0x12,0x37,0x33,0x11,0x33,0x23,0x11,0x06,0x06,0x07,0x02,0xaa,0x6e,0x84,0xfe,0x77,0x69,0xba,0x4e,0x9c,0x6e,0xf2,0x3e,0x80,0x42,0x03,0x14,0xcc,0xcc,0x5c,0x79,0x01,0x13,0x9e,0xfd,0xe7,0x01,0x73,0x71,0xb3,0x4f,0x00,0x00,0x01,0x00,0x7b,0x02,0x33,0x02,0x8a, +0x05,0x9e,0x00,0x24,0x00,0x37,0x40,0x1e,0x04,0x1c,0x14,0x1c,0x02,0x12,0x1e,0xcc,0x08,0x08,0x26,0x14,0xcc,0x01,0x0f,0x0a,0xe6,0x19,0x19,0x10,0x01,0x03,0xe6,0x00,0x23,0x29,0x12,0xe6,0x10,0x27,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0xed,0x12,0x39,0x2f,0xed,0x32,0x30,0x31,0x5d,0x13,0x35,0x16, +0x33,0x32,0x3e,0x02,0x35,0x34,0x23,0x22,0x0e,0x02,0x07,0x13,0x21,0x15,0x21,0x07,0x32,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x7e,0x71,0x57,0x2a,0x45,0x31,0x1a,0xcc,0x14,0x30,0x31,0x31,0x13,0x30,0x01,0xb7,0xfe,0xb5,0x19,0x07,0x15,0x17,0x16,0x06,0x40,0x74,0x56,0x33,0x36,0x5b,0x76,0x3f,0x7d,0x02,0x5e, +0x92,0x46,0x18,0x2a,0x3b,0x23,0x98,0x01,0x03,0x03,0x01,0x01,0xc4,0x7c,0xc8,0x01,0x01,0x01,0x22,0x43,0x65,0x43,0x48,0x6b,0x47,0x23,0x00,0x01,0x00,0x4d,0x02,0x48,0x02,0xa0,0x05,0xa4,0x00,0x0a,0x00,0x2a,0x40,0x15,0x03,0x06,0x0a,0xcc,0x00,0x06,0x00,0x06,0x00,0x0c,0x1f,0x05,0x01,0x05,0x0a,0x28,0x07,0x03,0xe6,0x05,0x27,0x00, +0x3f,0xed,0x32,0x3f,0x01,0x2f,0x5d,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x30,0x31,0x13,0x36,0x12,0x37,0x21,0x35,0x21,0x15,0x06,0x02,0x07,0xb3,0x38,0x99,0x70,0xfe,0x59,0x02,0x53,0x79,0xaf,0x33,0x02,0x48,0xc6,0x01,0x75,0xab,0x76,0x35,0xb9,0xfe,0x6e,0xdc,0x00,0x03,0x00,0x41,0x02,0x34,0x02,0xad,0x05,0xae,0x00,0x23, +0x00,0x31,0x00,0x45,0x00,0x53,0x40,0x30,0x15,0x05,0x08,0x3c,0xcc,0x12,0x12,0x1a,0xcc,0x60,0x2a,0x01,0x2a,0x2a,0x47,0x00,0x32,0xcc,0x08,0x08,0x24,0xcc,0x00,0x40,0x0a,0x0f,0x48,0x00,0x15,0x05,0x2f,0xe6,0x0f,0x37,0x1f,0x37,0x02,0x37,0x37,0x0d,0x27,0xe6,0x1f,0x29,0x41,0xe6,0x0d,0x27,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f, +0x5d,0xed,0x39,0x39,0x01,0x2f,0x2b,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0xed,0x12,0x39,0x39,0x30,0x31,0x13,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02, +0x23,0x22,0x06,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x41,0x14,0x27,0x39,0x25,0x34,0x3c,0x27,0x47,0x63,0x3c,0x3d,0x63,0x46,0x27,0x3b,0x35,0x23,0x39,0x28,0x15,0x2c,0x51,0x73,0x46,0x46,0x72,0x51,0x2d,0x90,0x58,0x4e,0x4e,0x5c,0x17,0x2c,0x3f,0x28,0x4a,0x5c,0x20,0x14,0x24,0x31,0x1d, +0x1d,0x32,0x25,0x15,0x14,0x25,0x32,0x1e,0x1f,0x32,0x22,0x13,0x03,0x32,0x21,0x41,0x3b,0x32,0x11,0x21,0x5d,0x38,0x31,0x55,0x3d,0x23,0x23,0x3e,0x54,0x31,0x39,0x5d,0x20,0x11,0x33,0x3b,0x41,0x20,0x3b,0x5e,0x42,0x23,0x23,0x42,0x5e,0x47,0x48,0x49,0x4b,0x46,0x20,0x38,0x29,0x17,0x51,0x01,0x3b,0x1a,0x2e,0x22,0x14,0x14,0x22,0x2e, +0x1a,0x1b,0x2c,0x20,0x12,0x13,0x20,0x2d,0xff,0xff,0x00,0xa6,0x00,0x00,0x01,0x4a,0x04,0x00,0x02,0x06,0x00,0xd6,0x00,0x00,0xff,0xff,0x00,0x79,0xfe,0x85,0x03,0xde,0x05,0xb2,0x02,0x26,0x00,0x36,0x00,0x00,0x00,0x06,0x01,0x9c,0x7b,0x00,0xff,0xff,0x00,0x68,0xfe,0x85,0x03,0x0f,0x04,0x18,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x06, +0x01,0x9c,0x09,0x00,0x00,0x02,0x00,0x64,0x01,0x02,0x04,0x0e,0x04,0xaa,0x00,0x1b,0x00,0x27,0x00,0x68,0x40,0x3b,0x02,0x06,0x09,0x0d,0x10,0x14,0x17,0x1b,0x08,0x04,0x12,0x01,0x07,0x04,0x40,0x22,0x04,0xbe,0x59,0x22,0x0e,0x12,0x12,0x1c,0xbe,0x59,0x15,0x0f,0x12,0x16,0x00,0x00,0x19,0x0e,0x08,0x0b,0x40,0x02,0x06,0x09,0x0d,0x10, +0x14,0x17,0x1b,0x08,0x0b,0x19,0xbd,0x25,0x0b,0x25,0x42,0x25,0x25,0x29,0x1f,0xbd,0x0b,0x2f,0xe1,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x11,0x17,0x39,0x1a,0x18,0x10,0xde,0xc4,0x10,0xca,0x2f,0xc4,0x00,0x2f,0xde,0xc4,0x2b,0x00,0x18,0x10,0xe4,0x2b,0x00,0x1a,0x18,0x10,0xde,0xc4,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x07,0x27,0x06, +0x23,0x22,0x27,0x07,0x27,0x37,0x26,0x35,0x34,0x37,0x27,0x37,0x17,0x36,0x33,0x32,0x17,0x37,0x17,0x07,0x16,0x15,0x14,0x07,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x04,0x0e,0x5c,0x89,0x69,0x86,0x88,0x68,0x8a,0x5c,0x8a,0x4c,0x4c,0x8a,0x5c,0x8a,0x6e,0x82,0x81,0x6c,0x8b,0x5c,0x89,0x4e,0x4e,0xfe,0xb5,0x74, +0x9f,0xa1,0x72,0x71,0xa3,0xa6,0x01,0x62,0x60,0x8a,0x4c,0x4c,0x8a,0x60,0x86,0x71,0x7c,0x81,0x6c,0x88,0x60,0x89,0x4d,0x4d,0x89,0x60,0x88,0x70,0x7d,0x79,0x74,0x02,0x02,0xa2,0x71,0x71,0xa2,0xa2,0x71,0x71,0xa2,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x06,0x3a,0x06,0x3e,0x00,0x19,0x00,0x25,0x00,0xb2,0xb9,0x00,0x0d,0xff,0xf0,0xb3, +0x0b,0x00,0x4d,0x0a,0xb8,0xff,0xf0,0x40,0x14,0x0b,0x00,0x4d,0x06,0xc0,0x02,0xf2,0x0d,0x1a,0x91,0x0f,0x0d,0x12,0x18,0x04,0x20,0x91,0x12,0x13,0x0d,0xb8,0xff,0xe8,0x40,0x1e,0x0c,0x06,0x4d,0x06,0x06,0x04,0xc2,0x09,0x09,0x0d,0x00,0x15,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x23, +0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x23,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x23,0xb8,0xff,0xf4,0x40,0x2a,0x0b,0x06,0x4d,0x23,0x23,0x27,0x1d,0x06,0x0d,0x06,0x4d,0x1d,0x06,0x0c,0x06,0x4d,0x1d,0x06,0x0b,0x06,0x4d,0x1d,0x7d,0x15,0x10,0x0d,0x06,0x4d,0x15,0x10,0x0c,0x06,0x4d,0x15,0x10,0x0b,0x06,0x4d,0x15,0x2f,0x27,0x01,0x5d, +0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x39,0x32,0x2f,0xf1,0xc2,0x2f,0x2b,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0xed,0x2f,0xed,0x1a,0xcc,0x31,0x30,0x01,0x2b,0x2b,0x01,0x16,0x33,0x32,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x23,0x23,0x16,0x11,0x10,0x00,0x21,0x20, +0x00,0x11,0x10,0x00,0x21,0x32,0x07,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x04,0x8f,0x30,0x20,0xd6,0x15,0x88,0x12,0x8c,0x7a,0x22,0x98,0xfe,0x8c,0xfe,0xc8,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0xd8,0xe4,0xe2,0xfe,0xe6,0x01,0x13,0xdd,0xec,0x01,0x10,0xfe,0xf8,0x05,0x43,0x09,0x82,0x48,0x3a,0x36,0x50,0x6c, +0x86,0xc2,0xfe,0xdb,0xfe,0xa1,0xfe,0x68,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0x98,0xfe,0xba,0xfe,0xf7,0xfe,0xf7,0xfe,0xbd,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0xa9,0x04,0xfc,0x00,0x18,0x00,0x24,0x00,0x95,0x40,0x2b,0x00,0x80,0x14,0xf2,0x05,0x19,0x95,0x07,0x05,0x0a,0x10,0x10, +0x1f,0x95,0x0a,0x16,0x00,0x00,0x17,0xc2,0x03,0x03,0x10,0x05,0x0d,0x07,0x06,0x0d,0x06,0x4d,0x07,0x06,0x0c,0x06,0x4d,0x07,0x06,0x0b,0x06,0x4d,0x07,0x83,0x22,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x22,0xb8,0xff,0xf7,0xb6,0x0c,0x06,0x4d,0x30,0x22,0x01,0x22,0xb8,0xff,0xe4,0x40,0x27,0x0b,0x06,0x4d,0x22,0x22,0x26,0x1c,0x0a,0x0d, +0x06,0x4d,0x1c,0x0a,0x0c,0x06,0x4d,0x1c,0x0a,0x0b,0x06,0x4d,0x1c,0x83,0x0d,0x10,0x0d,0x06,0x4d,0x0d,0x0e,0x0c,0x06,0x4d,0x0d,0x19,0x0b,0x06,0x4d,0x0d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x39,0x32,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39, +0xed,0x2f,0xed,0x1a,0xcc,0x31,0x30,0x01,0x33,0x16,0x15,0x14,0x07,0x16,0x15,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x04,0x10,0x86,0x13,0xdb,0x82,0xfe,0xeb,0xe9,0xe3,0xfe,0xf1,0x01,0x1a,0xf0,0x30,0x56,0x3d,0x6d,0x3b, +0x4f,0xfe,0x3a,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab,0x04,0xfc,0x38,0x50,0xc0,0x28,0x8d,0xfb,0xf5,0xfe,0xd9,0x01,0x1f,0xed,0x01,0x02,0x01,0x22,0x0e,0x0a,0x47,0x32,0x49,0xfe,0xcc,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0x00,0x00,0x01,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x06,0x96,0x00,0x17,0x00,0x86,0x40,0x33,0x25,0x0a,0x35,0x0a, +0x02,0x25,0x08,0x35,0x08,0x02,0x12,0x80,0x17,0xda,0x0c,0x0c,0x05,0x03,0x09,0x91,0x02,0x13,0x12,0x12,0x10,0xc2,0x15,0x15,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x0b,0x18,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xd8,0x40,0x18,0x0c,0x06,0x4d,0x0b,0x0b,0x19,0x07,0x08,0x0d,0x06,0x4d,0x07, +0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x7e,0x04,0xb8,0xff,0xfc,0x40,0x0c,0x0c,0x06,0x4d,0x04,0x04,0x0b,0x06,0x4d,0x04,0x30,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0x33,0x10,0xfd,0x1a,0xcc,0x31,0x30,0x5d,0x5d, +0x01,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x04,0xd5,0xfd,0xdf,0xfd,0xf6,0xa8,0x01,0x74,0x01,0x67,0x93,0x3c,0x4f,0x15,0x88,0x12,0xfb,0x02,0x44,0xfd,0xa4,0x02,0x45,0x03,0x6d,0xfc,0x9e,0xfe,0x47,0x01,0xaa,0x03,0x71,0x47,0x31,0x4a,0x3a,0x38,0x50, +0xd2,0x1f,0x00,0x01,0x00,0x90,0xff,0xe8,0x04,0xc7,0x04,0xfc,0x00,0x1b,0x00,0x92,0x40,0x32,0x06,0x40,0x10,0x00,0x4d,0x0d,0x10,0x0b,0x0c,0x00,0x4c,0x17,0x80,0x1b,0xf2,0x10,0x08,0x0f,0x02,0x0c,0x95,0x05,0x16,0x00,0x15,0x16,0x16,0x14,0xc2,0x19,0x19,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d, +0x00,0x84,0x02,0x0f,0xb8,0xff,0xe0,0x40,0x32,0x0d,0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d,0x0f,0x08,0x0b,0x06,0x4d,0x7f,0x0f,0x01,0x0f,0x0f,0x1d,0x0a,0x06,0x0d,0x06,0x4d,0x0a,0x06,0x0c,0x06,0x4d,0x0a,0x06,0x0b,0x06,0x4d,0x0a,0x84,0x07,0x09,0x0c,0x06,0x4d,0x07,0x06,0x0b,0x06,0x4d,0x07,0x2f,0x1d,0x01,0x5d,0x2f,0x2b,0x2b,0xe1, +0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xd4,0xfd,0x1a,0xcd,0x31,0x30,0x2b,0x2b,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x03,0xe2, +0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x7a,0x3b,0x4f,0x14,0x86,0x13,0xe5,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0x47,0x32,0x49,0x3a,0x38,0x50,0xc6,0x24,0x00,0x00,0x01,0x00,0xab,0x04,0xc2,0x01,0xc4,0x06,0x27,0x00,0x11,0x00,0x2b,0x40,0x16,0x0f,0xe2,0x40,0x02,0xc0,0x0b,0x40,0x08, +0x09,0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05,0x01,0x05,0x80,0x08,0x11,0x0b,0x2f,0xc6,0xcd,0x1a,0xdc,0x5d,0x71,0xe1,0x00,0x2f,0xd5,0x1a,0xcd,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0xab,0x25,0x2b,0x58,0x71,0x4d,0x39,0x6c,0x70,0x5e,0x11,0x28,0x06, +0x23,0x04,0x54,0x47,0x3d,0x54,0x07,0x32,0x73,0x4c,0x3f,0x08,0x00,0x01,0x00,0xf2,0xfe,0xc6,0x01,0xb8,0xff,0x89,0x00,0x0b,0x00,0x15,0x40,0x09,0x00,0xc1,0x06,0x09,0xc0,0x03,0x03,0x0d,0x0c,0x11,0x12,0x39,0x2f,0xe1,0x00,0x2f,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x55,0x29,0x3a,0x3c, +0x27,0x29,0x3a,0x3a,0xfe,0xc6,0x3a,0x29,0x29,0x37,0x37,0x29,0x29,0x3a,0x00,0x01,0x00,0x66,0x04,0xc2,0x01,0xc2,0x05,0xb8,0x00,0x03,0x00,0x0e,0xb4,0x03,0x01,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0xcd,0x31,0x30,0x01,0x23,0x27,0x33,0x01,0xc2,0x7e,0xde,0xa8,0x04,0xc2,0xf6,0x00,0x01,0x00,0x64,0x04,0xc2,0x01,0xc0,0x05,0xb8, +0x00,0x03,0x00,0x0e,0xb4,0x01,0x03,0x02,0x80,0x00,0x2f,0x1a,0xcd,0x00,0x2f,0xcd,0x31,0x30,0x13,0x37,0x33,0x07,0x64,0xb4,0xa8,0xdc,0x04,0xc2,0xf6,0xf6,0x00,0x02,0x00,0x42,0x04,0xc2,0x03,0x90,0x06,0x50,0x00,0x03,0x00,0x0a,0x00,0x2e,0xb1,0x01,0x00,0xb8,0xff,0xc0,0x40,0x15,0x09,0x0c,0x48,0x00,0x00,0x0a,0x04,0x02,0x80,0x00, +0x00,0x80,0x04,0x90,0x04,0xa0,0x04,0x03,0x04,0xc0,0x08,0x2f,0x1a,0xcc,0x5d,0x39,0x2f,0x1a,0xcd,0x00,0x2f,0xcd,0x39,0x2f,0x2b,0xcd,0x31,0x30,0x01,0x37,0x33,0x07,0x07,0x23,0x27,0x07,0x23,0x37,0x33,0x02,0x34,0xb4,0xa8,0xdd,0x3d,0x79,0xa4,0xa6,0x71,0xd8,0x84,0x05,0x5a,0xf6,0xf6,0x98,0x94,0x94,0xfa,0x00,0x00,0x02,0x00,0x42, +0x04,0xc2,0x03,0x90,0x06,0x50,0x00,0x03,0x00,0x0a,0x00,0x36,0xb1,0x03,0x00,0xb8,0xff,0xc0,0x40,0x1b,0x09,0x0c,0x48,0x00,0x00,0x06,0x80,0x07,0x80,0x07,0x90,0x07,0xa0,0x07,0x03,0x07,0xc0,0x04,0x40,0x0f,0x13,0x48,0x04,0x04,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x39,0x2f,0x2b,0x1a,0xcc,0x5d,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x2b,0xcd, +0x31,0x30,0x01,0x23,0x27,0x33,0x13,0x37,0x33,0x17,0x23,0x27,0x07,0x01,0x9e,0x7e,0xde,0xa8,0x73,0xd7,0x86,0xd6,0x70,0xa6,0xa4,0x05,0x5a,0xf6,0xfe,0x72,0xfa,0xfa,0x94,0x94,0x00,0x02,0x00,0x6c,0x04,0xc2,0x03,0x68,0x06,0xbe,0x00,0x11,0x00,0x18,0x00,0x45,0x40,0x26,0x0f,0xe2,0x40,0x02,0xc0,0x0b,0x40,0x08,0x09,0x09,0x17,0x16, +0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05,0x01,0x05,0x80,0x08,0x40,0x11,0x11,0x0b,0x0b,0x80,0x12,0x90,0x12,0xa0,0x12,0x03,0x12,0xc0,0x16,0x2f,0x1a,0xcc,0x5d,0x39,0x2f,0xc6,0xc6,0x1a,0xcd,0x1a,0xdc,0x5d,0x71,0xe1,0x00,0x2f,0xcd,0x39,0x2f,0xd5,0x1a,0xcd,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07, +0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0x13,0x23,0x27,0x07,0x23,0x37,0x33,0x02,0x50,0x24,0x2c,0x59,0x6f,0x4b,0x39,0x6d,0x71,0x5f,0x11,0x28,0x4e,0x78,0xa4,0xa6,0x70,0xd6,0x86,0x06,0xba,0x04,0x53,0x48,0x3c,0x54,0x07,0x32,0x73,0x4b,0x40,0x08,0xfe,0x72,0x94,0x94,0xfa,0x00,0x02,0x00,0xa9,0x04,0xc2,0x03,0x2a,0x06,0xe4, +0x00,0x12,0x00,0x19,0x00,0x41,0x40,0x23,0x12,0x07,0xda,0x0c,0x10,0xda,0x40,0x03,0x09,0x40,0x0d,0x10,0x48,0x09,0x19,0x80,0x13,0x13,0x00,0x17,0x0a,0x12,0xc4,0x00,0x09,0xc4,0x0f,0x00,0x01,0x0a,0x00,0x0a,0x00,0x1b,0x1a,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xe1,0x10,0xe1,0x10,0xc6,0x10,0xc4,0x00,0x2f,0x1a,0xdd,0xd6,0x2b,0xd6, +0x1a,0xfd,0xdc,0xed,0xc6,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x13,0x23,0x27,0x07,0x23,0x37,0x33,0x03,0x2a,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x3b,0x79,0xa4,0xa6,0x70,0xd7,0x85,0x06,0xe4,0x65,0x75,0x25,0x25,0x5c,0xd7, +0x26,0x26,0x61,0xfd,0xde,0x94,0x94,0xfa,0x00,0x02,0x00,0x25,0x04,0xc2,0x02,0x4a,0x06,0xa0,0x00,0x03,0x00,0x0f,0x00,0x34,0x40,0x19,0x02,0x80,0x00,0x04,0x0a,0x0d,0xd9,0x40,0x07,0x02,0x80,0x00,0x00,0x0b,0x0f,0xf3,0x04,0x0b,0xf3,0x0a,0x04,0x0a,0x04,0x11,0x10,0x11,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x10,0xe1,0x11,0x39,0x2f,0x1a, +0xcd,0x00,0x2f,0x1a,0xfd,0xdc,0xc4,0xd4,0x1a,0xcd,0x31,0x30,0x13,0x37,0x33,0x07,0x37,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x37,0xd7,0xb5,0xa7,0xdd,0xf4,0x0a,0x9d,0x70,0x75,0x94,0x05,0x64,0x0b,0xa1,0x9d,0x12,0x05,0xaa,0xf6,0xf6,0x14,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x00,0x02,0x00,0x38,0x04,0xc2,0x02,0x5c, +0x06,0xa0,0x00,0x03,0x00,0x0f,0x00,0x36,0x40,0x1a,0x03,0x80,0x01,0x0a,0x04,0x07,0xd9,0x40,0x0d,0x02,0x80,0x00,0x00,0x05,0x09,0xf3,0x0a,0x05,0xf3,0x04,0x0a,0x04,0x0a,0x04,0x11,0x10,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x12,0x39,0x2f,0x1a,0xcd,0x00,0x2f,0x1a,0xfd,0xdc,0xc4,0xd4,0x1a,0xcd,0x31,0x30,0x01,0x23, +0x27,0x33,0x07,0x33,0x16,0x33,0x32,0x37,0x33,0x06,0x06,0x23,0x22,0x26,0x01,0xaa,0x7f,0xdd,0xa8,0xbe,0x66,0x10,0x9e,0xa2,0x0a,0x64,0x04,0x96,0x74,0x70,0x9c,0x05,0xaa,0xf6,0xe2,0x86,0x86,0x72,0x8a,0x8c,0x00,0x02,0x00,0x25,0x04,0xc2,0x02,0x4a,0x07,0x0a,0x00,0x11,0x00,0x1d,0x00,0x5e,0x40,0x37,0x0f,0xe2,0x40,0x00,0x02,0x10, +0x02,0x20,0x02,0x03,0x02,0xc0,0x00,0x0b,0x10,0x0b,0x20,0x0b,0x03,0x0b,0x08,0x09,0x09,0x1b,0x12,0x18,0x1b,0xd9,0x40,0x15,0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05,0x01,0x05,0x80,0x08,0x11,0x0b,0x0b,0x18,0x1d,0xf3,0x12,0x19,0xf3,0x18,0x18,0x12,0x1f,0x1e,0x11,0x12,0x39,0x39,0x10,0xe1,0x10,0xe1,0x11,0x39,0x2f,0xc6,0xcd,0x1a,0xdc, +0x5d,0x71,0xe1,0x00,0x2f,0x1a,0xfd,0xd4,0xc4,0x12,0x39,0x2f,0xd5,0xcd,0x5d,0x1a,0xdc,0x5d,0x1a,0xed,0x31,0x30,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0x05,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x37,0xcd,0x25,0x2a,0x5b,0x6f,0x50,0x36,0x6c,0x70,0x5e,0x11,0x28, +0x01,0x7d,0x0a,0x9d,0x70,0x75,0x94,0x05,0x64,0x0b,0xa1,0x9d,0x12,0x07,0x06,0x04,0x54,0x48,0x3c,0x54,0x07,0x31,0x72,0x4c,0x40,0x08,0xde,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x00,0x02,0x00,0xa9,0x04,0xc2,0x03,0x2a,0x06,0xe4,0x00,0x12,0x00,0x1e,0x00,0x50,0x40,0x2c,0x12,0x07,0xda,0x0c,0x10,0xda,0x03,0x0a,0x40,0x0d,0x11,0x48, +0x0a,0x1e,0x19,0x1c,0xd9,0x16,0x1e,0xf3,0x13,0x13,0x00,0x12,0x1a,0xf3,0x19,0x19,0x09,0x0a,0x12,0xc4,0x00,0x09,0xc4,0x0f,0x00,0x01,0x0a,0x00,0x0a,0x00,0x20,0x1f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xe1,0x10,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x00,0x2f,0xfd,0xdc,0xc4,0xd6,0x2b,0xd4,0xfd,0xdc,0xed,0xc6, +0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x13,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x37,0x03,0x2a,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x34,0x0a,0x9d,0x6f,0x76,0x94,0x05,0x65,0x0a,0xa2,0x9c,0x12,0x06,0xe4,0x65, +0x75,0x25,0x25,0x5c,0xd7,0x26,0x26,0x61,0xfe,0xda,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x01,0x00,0xab,0x04,0xc2,0x01,0xc4,0x06,0x27,0x00,0x11,0x00,0x3d,0xb3,0x0f,0xe2,0x40,0x02,0xb8,0xff,0xc0,0xb5,0x09,0x0c,0x48,0x02,0xc0,0x0b,0xb8,0xff,0xe8,0x40,0x14,0x09,0x0c,0x48,0x0b,0x40,0x08,0x09,0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05, +0x01,0x05,0x80,0x08,0x11,0x0b,0x2f,0xc6,0xcd,0x1a,0xdc,0x5d,0x71,0xe1,0x00,0x2f,0xd5,0x1a,0xcd,0x2b,0x1a,0xdc,0x2b,0x1a,0xed,0x31,0x30,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0xab,0x25,0x2b,0x58,0x71,0x4d,0x39,0x6c,0x70,0x5e,0x11,0x28,0x06,0x23,0x04,0x54,0x47,0x3d,0x54, +0x07,0x32,0x73,0x4c,0x3f,0x08,0x00,0x02,0x00,0xa9,0x04,0xc2,0x03,0x2a,0x06,0xe4,0x00,0x12,0x00,0x19,0x00,0x50,0xb3,0x00,0x07,0xda,0x0c,0xb8,0xff,0xc0,0x40,0x09,0x09,0x0c,0x48,0x0c,0x10,0xda,0x40,0x03,0x09,0xb8,0xff,0xc0,0x40,0x1a,0x09,0x0c,0x48,0x09,0x19,0x80,0x17,0x13,0x13,0x00,0x17,0x0a,0x12,0xc4,0x00,0x09,0xc4,0x0f, +0x00,0x01,0x0a,0x00,0x0a,0x00,0x1b,0x1a,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xe1,0x10,0xe1,0x10,0xc6,0x10,0xc4,0x00,0x2f,0xc4,0x1a,0xdd,0xd6,0x2b,0xd6,0x1a,0xfd,0xdc,0x2b,0xed,0xc4,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x13,0x23,0x27,0x07,0x23,0x37,0x33, +0x03,0x2a,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x3b,0x79,0xa4,0xa6,0x70,0xd7,0x85,0x06,0xe4,0x65,0x75,0x25,0x25,0x5c,0xd7,0x26,0x26,0x61,0xfd,0xde,0x94,0x94,0xfa,0x00,0x00,0x02,0x00,0x25,0x04,0xc2,0x02,0x4a,0x06,0xa0,0x00,0x03,0x00,0x0f,0x00,0x3b,0xb3,0x02,0x00,0x04,0x0a,0xb8,0xff,0xc0, +0x40,0x18,0x09,0x0c,0x48,0x0a,0x0d,0xd9,0x40,0x07,0x02,0x80,0x00,0x00,0x0b,0x0f,0xf3,0x04,0x0b,0xf3,0x0a,0x04,0x0a,0x04,0x11,0x10,0x11,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x10,0xe1,0x11,0x39,0x2f,0x1a,0xcd,0x00,0x2f,0x1a,0xfd,0xdc,0x2b,0xc4,0xd4,0xcd,0x31,0x30,0x13,0x37,0x33,0x07,0x37,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16, +0x33,0x32,0x37,0xd7,0xb5,0xa7,0xdd,0xf4,0x0a,0x9d,0x70,0x75,0x94,0x05,0x64,0x0b,0xa1,0x9d,0x12,0x05,0xaa,0xf6,0xf6,0x14,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x02,0x00,0x38,0x04,0xc2,0x02,0x5c,0x06,0xa0,0x00,0x03,0x00,0x0f,0x00,0x3d,0xb3,0x03,0x01,0x0a,0x04,0xb8,0xff,0xc0,0x40,0x19,0x09,0x0c,0x48,0x04,0x07,0xd9,0x40,0x0d, +0x02,0x80,0x00,0x00,0x05,0x09,0xf3,0x0a,0x05,0xf3,0x04,0x0a,0x04,0x0a,0x04,0x11,0x10,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x12,0x39,0x2f,0x1a,0xcd,0x00,0x2f,0x1a,0xfd,0xdc,0x2b,0xc4,0xd4,0xcd,0x31,0x30,0x01,0x23,0x27,0x33,0x07,0x33,0x16,0x33,0x32,0x37,0x33,0x06,0x06,0x23,0x22,0x26,0x01,0xaa,0x7f,0xdd,0xa8, +0xbe,0x66,0x10,0x9e,0xa2,0x0a,0x64,0x04,0x96,0x74,0x70,0x9c,0x05,0xaa,0xf6,0xe2,0x86,0x86,0x72,0x8a,0x8c,0x00,0x00,0x02,0x00,0x25,0x04,0xc2,0x02,0x4a,0x07,0x0a,0x00,0x11,0x00,0x1d,0x00,0x68,0x40,0x0d,0x0f,0xe2,0x10,0x02,0x20,0x02,0x30,0x02,0xf0,0x02,0x04,0x02,0x0b,0xb8,0xff,0xd8,0x40,0x0a,0x0d,0x10,0x48,0x0b,0x08,0x09, +0x09,0x1b,0x12,0x18,0xb8,0xff,0xc0,0x40,0x21,0x09,0x0c,0x48,0x18,0x1b,0xd9,0x40,0x15,0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05,0x01,0x05,0x80,0x08,0x11,0x0b,0x0b,0x18,0x1d,0xf3,0x12,0x19,0xf3,0x18,0x18,0x12,0x1f,0x1e,0x11,0x12,0x39,0x39,0x10,0xe1,0x10,0xe1,0x11,0x39,0x2f,0xc6,0xcd,0x1a,0xdc,0x5d,0x71,0xe1,0x00,0x2f,0x1a,0xfd, +0xd4,0x2b,0xc4,0x12,0x39,0x2f,0xd5,0xcd,0x2b,0xd4,0x5d,0xed,0x31,0x30,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0x05,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x37,0xcd,0x25,0x2a,0x5b,0x6f,0x50,0x36,0x6c,0x70,0x5e,0x11,0x28,0x01,0x7d,0x0a,0x9d,0x70,0x75,0x94,0x05, +0x64,0x0b,0xa1,0x9d,0x12,0x07,0x06,0x04,0x54,0x48,0x3c,0x54,0x07,0x31,0x72,0x4c,0x40,0x08,0xde,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x00,0x02,0x00,0xa9,0x04,0xc2,0x03,0x2a,0x06,0xe4,0x00,0x12,0x00,0x1e,0x00,0x5c,0xb3,0x12,0x07,0xda,0x0c,0xb8,0xff,0xc0,0xb7,0x09,0x0c,0x48,0x0c,0x10,0xda,0x03,0x0a,0xb8,0xff,0xc0,0x40,0x23, +0x09,0x0c,0x48,0x0a,0x1e,0x19,0x1c,0xd9,0x16,0x1e,0xf3,0x13,0x13,0x00,0x12,0x1a,0xf3,0x19,0x19,0x09,0x0a,0x12,0xc4,0x00,0x09,0xc4,0x0f,0x00,0x01,0x0a,0x00,0x0a,0x00,0x20,0x1f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xe1,0x10,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x00,0x2f,0xfd,0xdc,0xc4,0xd6,0x2b,0xd4,0xfd, +0xdc,0x2b,0xed,0xc6,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x13,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x37,0x03,0x2a,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x34,0x0a,0x9d,0x6f,0x76,0x94,0x05,0x65,0x0a,0xa2,0x9c, +0x12,0x06,0xe4,0x65,0x75,0x25,0x25,0x5c,0xd7,0x26,0x26,0x61,0xfe,0xda,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x02,0x00,0x6c,0x04,0xc2,0x03,0x68,0x06,0xbe,0x00,0x11,0x00,0x18,0x00,0x5e,0x40,0x0c,0x0f,0xe2,0x0f,0x02,0x01,0x02,0x40,0x0d,0x10,0x48,0x02,0x0b,0xb8,0xff,0xe8,0xb6,0x09,0x0c,0x48,0x0b,0x40,0x08,0x09,0xb8,0xff,0xc0, +0x40,0x21,0x09,0x0c,0x48,0x09,0x09,0x17,0x16,0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05,0x01,0x05,0x80,0x08,0x40,0x11,0x11,0x0b,0x0b,0x80,0x12,0x90,0x12,0xa0,0x12,0x03,0x12,0xc0,0x16,0x2f,0x1a,0xcc,0x5d,0x39,0x2f,0xc6,0xc6,0x1a,0xcd,0x1a,0xdc,0x5d,0x71,0xe1,0x00,0x2f,0xcd,0x39,0x2f,0x2b,0xd5,0x1a,0xcd,0x2b,0xdc,0x2b,0x5d,0xed, +0x31,0x30,0x01,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0x13,0x23,0x27,0x07,0x23,0x37,0x33,0x02,0x50,0x24,0x2c,0x59,0x6f,0x4b,0x39,0x6d,0x71,0x5f,0x11,0x28,0x4e,0x78,0xa4,0xa6,0x70,0xd6,0x86,0x06,0xba,0x04,0x53,0x48,0x3c,0x54,0x07,0x32,0x73,0x4b,0x40,0x08,0xfe,0x72,0x94,0x94, +0xfa,0x00,0xff,0xff,0x00,0x16,0xfe,0xc6,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x56,0x00,0x00,0x00,0x0b,0xb6,0x02,0x18,0x13,0x19,0x06,0x07,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0xc6,0x03,0x83,0x04,0x18,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xc2,0x00,0x00, +0x00,0x0e,0xb9,0x00,0x02,0xff,0xf7,0xb4,0x23,0x29,0x0f,0x00,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x85,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x50,0x01,0x7c,0x01,0x5e,0x00,0x16,0xb9,0x00,0x02,0xff,0xf2,0x40,0x09,0x1a,0x19,0x0b,0x0b,0x3e,0x02,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0x27,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x44,0x00,0xf4,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0b,0x31,0x25,0x10,0x14,0x25,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0xad,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07, +0x02,0x48,0x01,0x2e,0x01,0x5d,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf4,0x40,0x0a,0x16,0x16,0x06,0x07,0x25,0x03,0x02,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0x52,0x06,0x50,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x48,0x00,0xc2,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02, +0x00,0x28,0x24,0x10,0x14,0x25,0x03,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0xad,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x49,0x00,0x13,0x01,0x5d,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf7,0x40,0x0a,0x15,0x16,0x06,0x07,0x25,0x03,0x02,0x1a,0x05,0x26, +0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xe8,0xff,0xe8,0x03,0x83,0x06,0x50,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x02,0x49,0xa6,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x09,0x25,0x26,0x0d,0x12,0x25,0x03,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12, +0x08,0x1c,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x56,0x01,0x07,0x01,0x5e,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf9,0x40,0x0a,0x27,0x28,0x06,0x07,0x25,0x03,0x02,0x26,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0xe9,0x06,0xbe,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x4a, +0x00,0x81,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf3,0x40,0x0a,0x37,0x38,0x0d,0x12,0x25,0x03,0x02,0x36,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x08,0x3f,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x51,0x00,0xa3,0x01,0x5b,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf9, +0x40,0x0a,0x28,0x29,0x06,0x07,0x25,0x03,0x02,0x27,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0xe4,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x02,0x4b,0x2f,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x05,0x38,0x39,0x0d,0x12,0x25,0x03,0x02,0x37,0x11,0x26,0x00,0x2b,0x35,0x35,0x01, +0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0xfe,0xc6,0x05,0x12,0x07,0x6b,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x27,0x00,0xd7,0x01,0x11,0x01,0x5d,0x01,0x07,0x02,0x45,0x01,0x56,0x00,0x00,0x00,0x1e,0x40,0x0c,0x02,0x14,0x05,0x26,0x03,0x17,0x1a,0x20,0x05,0x00,0x3e,0x02,0xb8,0xff,0xf4,0xb4,0x14,0x10,0x06,0x07,0x3e,0x2b,0x35,0x2b, +0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x5a,0xfe,0xc6,0x03,0x83,0x06,0x0e,0x02,0x26,0x00,0x44,0x00,0x00,0x00,0x27,0x00,0xd7,0x00,0x97,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xc2,0x00,0x00,0x00,0x1b,0x40,0x12,0x02,0x24,0x11,0x26,0x03,0x29,0x2a,0x30,0x08,0x14,0x3e,0x02,0x1f,0x24,0x20,0x08,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b, +0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0xfb,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x52,0x01,0x59,0x01,0x5b,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfd,0x40,0x0a,0x1a,0x14,0x06,0x07,0x25,0x03,0x02,0x17,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0xa0, +0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x4c,0x00,0xe5,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x06,0x27,0x2d,0x0d,0x12,0x25,0x03,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0xfc,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x53,0x01,0x43,0x01,0x5c, +0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfa,0x40,0x0a,0x14,0x1a,0x06,0x07,0x25,0x03,0x02,0x1d,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0xa0,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x4d,0x00,0xe5,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x1f,0x27,0x2d,0x0d,0x12,0x25, +0x03,0x02,0x2d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x08,0x65,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x54,0x01,0x64,0x01,0x5b,0x00,0x2c,0xb1,0x03,0x02,0xb8,0xff,0xfb,0x40,0x1a,0x1a,0x19,0x06,0x07,0x25,0x03,0x6f,0x25,0x8f,0x25,0x02,0x02,0x20,0x25,0x30,0x25, +0x50,0x25,0x60,0x25,0x80,0x25,0x05,0x25,0x05,0x26,0x00,0x2b,0x71,0x35,0x71,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x07,0x0a,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x4e,0x00,0xe5,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfc,0x40,0x0a,0x2a,0x29,0x0d,0x12,0x25,0x03,0x02,0x35,0x11,0x26, +0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x08,0x3f,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x55,0x00,0xad,0x01,0x5b,0x00,0x17,0x40,0x0d,0x03,0x02,0x03,0x1a,0x10,0x06,0x07,0x25,0x03,0x02,0x26,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8, +0x03,0x83,0x06,0xe4,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x02,0x4f,0x35,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x09,0x36,0x3c,0x0d,0x12,0x25,0x03,0x02,0x36,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0xfe,0xc6,0x05,0x12,0x07,0x1a,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x27,0x00,0xda,0x01,0x5e, +0x01,0x5c,0x01,0x07,0x02,0x45,0x01,0x56,0x00,0x00,0x00,0x1b,0x40,0x12,0x02,0x13,0x05,0x26,0x03,0x17,0x20,0x26,0x05,0x00,0x3e,0x02,0x02,0x16,0x10,0x06,0x07,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0xc6,0x03,0x83,0x05,0xbe,0x02,0x26,0x00,0x44,0x00,0x00,0x00,0x27,0x00,0xda,0x00,0xdc,0x00,0x00, +0x01,0x07,0x02,0x45,0x00,0xc2,0x00,0x00,0x00,0x1b,0x40,0x12,0x02,0x23,0x11,0x26,0x03,0x29,0x30,0x36,0x08,0x14,0x3e,0x02,0x25,0x26,0x20,0x08,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x03,0xb4,0x05,0x9a,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xf3,0x00,0x00,0x00,0x0b, +0xb6,0x01,0x10,0x0f,0x15,0x02,0x0b,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0xc6,0x03,0xdd,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xf2,0x00,0x00,0x00,0x0b,0xb6,0x02,0x27,0x1d,0x23,0x19,0x13,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x83,0x02,0x26,0x00,0x28, +0x00,0x00,0x01,0x07,0x02,0x50,0x01,0x0d,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x0c,0x1d,0x11,0x02,0x0b,0x3e,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x27,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0x44,0x01,0x19,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x30,0x2b,0x1f, +0x19,0x13,0x3e,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x0e,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xdc,0x01,0x5c,0x00,0x17,0x40,0x0e,0x01,0x07,0x16,0x0c,0x02,0x0b,0x3e,0x01,0x00,0x16,0x01,0x16,0x05,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00, +0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0xb2,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xc8,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0d,0x24,0x1a,0x0c,0x12,0x25,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x6f,0x07,0xab,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07, +0x02,0x48,0x00,0xdf,0x01,0x5b,0x00,0x17,0x40,0x0d,0x02,0x01,0x13,0x14,0x10,0x02,0x03,0x25,0x02,0x01,0x14,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x5a,0x06,0x50,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0x48,0x00,0xca,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf0, +0x40,0x0a,0x23,0x24,0x16,0x0f,0x25,0x03,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x0e,0x00,0x00,0x03,0xb4,0x07,0xad,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x02,0x49,0xff,0xcc,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x19,0x10,0x13,0x02,0x03,0x25,0x02,0x01,0x16,0x05,0x26,0x00,0x2b,0x35, +0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x0c,0xff,0xe8,0x03,0xdd,0x06,0x50,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x02,0x49,0xca,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x0a,0x1f,0x20,0x16,0x0f,0x25,0x03,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x20,0x08,0x1a, +0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x02,0x56,0x00,0xb8,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x15,0x22,0x1e,0x02,0x03,0x25,0x02,0x01,0x22,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x32,0x06,0xbe,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0x4a,0x00,0xca,0x00,0x00, +0x00,0x17,0x40,0x0d,0x03,0x02,0x19,0x31,0x32,0x16,0x0f,0x25,0x03,0x02,0x30,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x08,0x40,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x02,0x51,0x00,0x4e,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x0f,0x23,0x1f,0x02,0x03,0x25,0x02,0x01, +0x23,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0xe4,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x02,0x4b,0x47,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x10,0x31,0x2d,0x19,0x13,0x25,0x03,0x02,0x31,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc, +0xfe,0xc6,0x03,0xb4,0x07,0x6b,0x02,0x26,0x00,0x28,0x00,0x00,0x00,0x27,0x00,0xd7,0x00,0xbf,0x01,0x5d,0x01,0x07,0x02,0x45,0x00,0xea,0x00,0x00,0x00,0x1e,0x40,0x0c,0x01,0x10,0x05,0x26,0x02,0x07,0x16,0x1c,0x01,0x00,0x3e,0x01,0xb8,0xff,0xfd,0xb4,0x10,0x0c,0x01,0x00,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x60, +0xfe,0xc6,0x03,0xdd,0x06,0x0e,0x02,0x26,0x00,0x48,0x00,0x00,0x00,0x27,0x00,0xd7,0x00,0xb4,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xef,0x00,0x00,0x00,0x1b,0x40,0x12,0x02,0x1e,0x11,0x26,0x03,0x26,0x24,0x2a,0x0c,0x12,0x3e,0x02,0x0c,0x1e,0x1a,0x0c,0x12,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x9a,0x00,0x00, +0x01,0xb3,0x07,0x83,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x02,0x50,0xff,0xef,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x0e,0x0d,0x02,0x03,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x88,0x00,0x00,0x01,0xa1,0x06,0x27,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06,0x02,0x44,0xdd,0x00,0x00,0x13, +0x40,0x0b,0x01,0x00,0x0e,0x0d,0x02,0x03,0x25,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xb2,0xfe,0xc6,0x01,0x78,0x05,0x9a,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x06,0x02,0x45,0xc0,0x00,0x00,0x0b,0xb6,0x01,0x05,0x07,0x0d,0x02,0x03,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xfe,0xc6,0x01,0x66, +0x05,0xd9,0x02,0x26,0x00,0x4c,0x00,0x00,0x01,0x06,0x02,0x45,0xa3,0x00,0x00,0x0e,0xb9,0x00,0x02,0xff,0xfd,0xb4,0x13,0x19,0x03,0x09,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xfe,0xc6,0x05,0xaa,0x05,0xb2,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0xa8,0x00,0x00,0x00,0x0e,0xb9,0x00,0x02,0xff,0xf9,0xb4,0x1b,0x21, +0x03,0x09,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0xc6,0x04,0x50,0x04,0x18,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x06,0x00,0x00,0x00,0x0b,0xb6,0x02,0x03,0x1b,0x21,0x03,0x09,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x83,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0x50, +0x01,0xf6,0x01,0x5c,0x00,0x16,0xb9,0x00,0x02,0xff,0xee,0x40,0x09,0x22,0x21,0x0c,0x06,0x3e,0x02,0x22,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x27,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0x44,0x01,0x43,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe7,0x40,0x09,0x22,0x21,0x0c, +0x06,0x25,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0xad,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0x48,0x01,0xb3,0x01,0x5d,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1e,0x1e,0x0c,0x0c,0x25,0x03,0x02,0x20,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff, +0x00,0x60,0xff,0xe8,0x04,0x98,0x06,0x50,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0x48,0x01,0x08,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x03,0x1e,0x1e,0x0c,0x0c,0x25,0x03,0x02,0x20,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0xad,0x02,0x26,0x00,0x32,0x00,0x00, +0x01,0x07,0x02,0x49,0x00,0x94,0x01,0x5d,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x21,0x21,0x0c,0x06,0x25,0x03,0x02,0x22,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x30,0xff,0xe8,0x04,0x50,0x06,0x50,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x02,0x49,0xee,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfd, +0x40,0x0a,0x21,0x21,0x06,0x06,0x25,0x03,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x08,0x1a,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0x56,0x01,0x78,0x01,0x5c,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xed,0x40,0x0a,0x2f,0x30,0x0c,0x06,0x25,0x03,0x02,0x2e,0x05,0x26, +0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0xbe,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0x4a,0x00,0xe5,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfd,0x40,0x0a,0x2c,0x2c,0x06,0x06,0x25,0x03,0x02,0x2e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5e, +0xff,0xe8,0x05,0xaa,0x08,0x40,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0x51,0x01,0x29,0x01,0x5c,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x2d,0x2d,0x0c,0x06,0x25,0x03,0x02,0x2f,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0xe4,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06, +0x02,0x4b,0x70,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf5,0x40,0x0a,0x30,0x31,0x0c,0x06,0x25,0x03,0x02,0x2f,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5e,0xfe,0xc6,0x05,0xaa,0x07,0x6b,0x02,0x26,0x00,0x32,0x00,0x00,0x00,0x27,0x00,0xd7,0x01,0xa4,0x01,0x5d,0x01,0x07,0x02,0x45,0x01,0xb0,0x00,0x00, +0x00,0x1b,0x40,0x12,0x02,0x1c,0x05,0x26,0x03,0x01,0x22,0x28,0x03,0x09,0x3e,0x02,0x16,0x1c,0x18,0x03,0x09,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0xc6,0x04,0x50,0x06,0x0e,0x02,0x26,0x00,0x52,0x00,0x00,0x00,0x27,0x00,0xd7,0x00,0xf7,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xfe,0x00,0x00,0x00,0x1e, +0xb4,0x02,0x1c,0x11,0x26,0x03,0xb8,0xff,0xfb,0x40,0x0c,0x22,0x28,0x03,0x09,0x3e,0x02,0x15,0x1c,0x18,0x03,0x09,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x06,0x3a,0x07,0x67,0x02,0x26,0x02,0x40,0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x0e,0x01,0x5d,0x00,0x13,0x40,0x0b,0x02,0x00,0x27,0x27,0x18,0x18, +0x25,0x02,0x28,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0xa9,0x06,0x0a,0x02,0x26,0x02,0x41,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x61,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xfd,0x40,0x09,0x26,0x26,0x10,0x10,0x25,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e, +0xff,0xe8,0x06,0x3a,0x07,0x67,0x02,0x26,0x02,0x40,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0xc8,0x01,0x5d,0x00,0x13,0x40,0x0b,0x02,0x0a,0x27,0x27,0x18,0x18,0x25,0x02,0x27,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0xa9,0x06,0x0a,0x02,0x26,0x02,0x41,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x02, +0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xfc,0x40,0x09,0x26,0x26,0x19,0x19,0x25,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x06,0x3a,0x07,0x83,0x02,0x26,0x02,0x40,0x00,0x00,0x01,0x07,0x02,0x50,0x02,0x0c,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x00,0x30,0x2f,0x18,0x18,0x25,0x02,0x2f,0x05, +0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0xa9,0x06,0x27,0x02,0x26,0x02,0x41,0x00,0x00,0x01,0x07,0x02,0x44,0x01,0x45,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe9,0x40,0x09,0x2f,0x2e,0x19,0x10,0x25,0x02,0x2f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x06,0x3a, +0x07,0x0e,0x02,0x26,0x02,0x40,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0xb0,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x0f,0x30,0x26,0x15,0x0f,0x25,0x02,0x30,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0xa9,0x05,0xb2,0x02,0x26,0x02,0x41,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xf8,0x00,0x00,0x00,0x13, +0x40,0x0b,0x02,0x03,0x2f,0x25,0x0d,0x07,0x3e,0x02,0x2f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xfe,0xc6,0x06,0x3a,0x06,0x3e,0x02,0x26,0x02,0x40,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0xac,0x00,0x00,0x00,0x0b,0xb6,0x02,0x03,0x2c,0x2c,0x12,0x12,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0xc6, +0x04,0xa9,0x04,0xfc,0x02,0x26,0x02,0x41,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x02,0x00,0x00,0x00,0x0b,0xb6,0x02,0x05,0x2b,0x2b,0x0a,0x0a,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xfe,0xc6,0x04,0xd5,0x05,0x9a,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x66,0x00,0x00,0x00,0x0b,0xb6,0x01,0x07,0x14,0x14,0x02, +0x02,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xfe,0xc6,0x03,0xe2,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xd1,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xfb,0xb4,0x18,0x18,0x0c,0x0c,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x83,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07, +0x02,0x50,0x01,0x97,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x0f,0x1f,0x13,0x05,0x0d,0x3e,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x27,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x02,0x44,0x01,0x22,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x20,0x23,0x17,0x08,0x11,0x3e,0x01, +0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x07,0x67,0x02,0x26,0x02,0x42,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xb8,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x19,0x19,0x06,0x0c,0x3e,0x01,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x04,0xc7, +0x06,0x0a,0x02,0x26,0x02,0x43,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x38,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x06,0x1d,0x1d,0x09,0x10,0x3e,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x07,0x67,0x02,0x26,0x02,0x42,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x7a,0x01,0x5d,0x00,0x13, +0x40,0x0b,0x01,0x13,0x19,0x19,0x06,0x0c,0x3e,0x01,0x19,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x04,0xc7,0x06,0x0a,0x02,0x26,0x02,0x43,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xc4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x23,0x1d,0x1c,0x09,0x10,0x3e,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b, +0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x07,0x83,0x02,0x26,0x02,0x42,0x00,0x00,0x01,0x07,0x02,0x50,0x01,0x9d,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xe6,0x40,0x09,0x22,0x21,0x06,0x0c,0x3e,0x01,0x22,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x90,0xff,0xe8,0x04,0xc7,0x06,0x27,0x02,0x26,0x02,0x43, +0x00,0x00,0x01,0x07,0x02,0x44,0x01,0x27,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf7,0x40,0x09,0x26,0x25,0x09,0x10,0x3e,0x01,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x07,0x0e,0x02,0x26,0x02,0x42,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x66,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x0a, +0x22,0x18,0x06,0x0c,0x3e,0x01,0x22,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x04,0xc7,0x05,0xb2,0x02,0x26,0x02,0x43,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xdd,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x07,0x26,0x1c,0x08,0x1b,0x3e,0x01,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0xaa,0xfe,0xc6,0x05,0xd0,0x06,0x96,0x02,0x26,0x02,0x42,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x66,0x00,0x00,0x00,0x0b,0xb6,0x01,0x07,0x1e,0x1e,0x02,0x02,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xfe,0xc6,0x04,0xc7,0x04,0xfc,0x02,0x26,0x02,0x43,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xe5,0x00,0x00,0x00,0x0b,0xb6,0x01, +0x00,0x1f,0x25,0x0a,0x01,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12,0xfe,0xc6,0x04,0x60,0x05,0x9a,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xdf,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x11,0x17,0x03,0x02,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x04,0x00,0x02,0x26,0x00,0x5c,0x00,0x00, +0x01,0x07,0x02,0x45,0x01,0xc2,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xec,0xb4,0x15,0x1b,0x14,0x14,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x07,0x83,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x02,0x50,0x01,0x1a,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x18,0x1f,0x13,0x05,0x00,0x3e,0x01,0x18,0x05,0x26,0x00, +0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x27,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x02,0x44,0x00,0xc9,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x0f,0x26,0x1a,0x0c,0x00,0x3e,0x01,0x1f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x07,0x0e,0x02,0x26, +0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xde,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x08,0x18,0x0e,0x05,0x00,0x3e,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0xb2,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0x8b,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff, +0xfd,0x40,0x09,0x1f,0x15,0x0c,0x00,0x3e,0x01,0x1f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x29,0xfe,0x85,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x01,0x9c,0x00,0x93,0x00,0x00,0x00,0x0b,0xb6,0x01,0x1d,0x0b,0x0b,0x03,0x03,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x2b,0xfe,0x85,0x02,0x81, +0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x06,0x01,0x9c,0x2a,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xe7,0xb4,0x17,0x15,0x04,0x00,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x67,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x14,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xf0,0x40,0x09,0x0e, +0x0c,0x02,0x0b,0x3e,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x0a,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xe5,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xd9,0x40,0x09,0x1c,0x1a,0x19,0x13,0x3e,0x02,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff, +0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x67,0x02,0x26,0x01,0xef,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0xda,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xf0,0x40,0x09,0x16,0x14,0x0b,0x01,0x3e,0x01,0x15,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x00,0x06,0x0a,0x02,0x26,0x02,0x0f,0x00,0x00,0x01,0x07, +0x00,0x43,0x00,0xde,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xb4,0x40,0x09,0x11,0x0f,0x07,0x0d,0x3e,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x01,0x64,0x05,0x9a,0x02,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0x00,0x14,0xff,0xe8,0x02,0x2b,0x05,0x9a,0x02,0x06,0x00,0x2d,0x00,0x00,0xff,0xff, +0x00,0x90,0x00,0x00,0x01,0x66,0x05,0xd9,0x02,0x06,0x00,0x4c,0x00,0x00,0xff,0xff,0xff,0x3a,0xfe,0x1e,0x01,0x66,0x05,0xd9,0x02,0x06,0x00,0x4d,0x00,0x00,0x00,0x01,0x00,0x29,0x00,0x00,0x03,0xf6,0x05,0x9a,0x00,0x0d,0x00,0x5b,0x40,0x2c,0x05,0x08,0x91,0x02,0x0b,0x0b,0x07,0x01,0x91,0x0c,0x03,0x07,0x09,0x08,0x04,0x00,0x04,0x00, +0x0f,0x02,0x05,0x08,0x0d,0x06,0x4d,0x05,0x08,0x0c,0x06,0x4d,0x05,0x08,0x0b,0x06,0x4d,0x05,0x7e,0x0b,0x08,0x08,0x0d,0x06,0x4d,0x08,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x08,0xb8,0xff,0xe0,0xb3,0x0b,0x06,0x4d,0x08,0x2f,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x11,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x00,0x2f,0x3f,0xed,0x12, +0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x03,0xf6,0xfd,0xc0,0x01,0x5a,0xfe,0xa6,0xa8,0xe5,0xe5,0x02,0xe8,0x05,0x02,0xfe,0x36,0x9a,0xfd,0x62,0x02,0x9e,0x9a,0x02,0x62,0x00,0x01,0x00,0x1e,0x00,0x00,0x03,0x29,0x04,0x00,0x00,0x0d,0x00,0x5e,0x40,0x27,0x05,0x08, +0x96,0x02,0x0b,0x0b,0x07,0x01,0x95,0x0c,0x0f,0x07,0x09,0x07,0x04,0x00,0x04,0x00,0x0f,0x02,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x0b,0x07,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xe4,0xb3,0x0c,0x06,0x4d,0x07,0xb8,0xff,0xe4,0xb3,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b, +0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x11,0x39,0x39,0x2f,0x2f,0x10,0xc6,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x03,0x29,0xfe,0x6b,0x01,0x02,0xfe,0xfe,0xa4,0xd2,0xd2,0x02,0x39,0x03,0x74,0xfe,0xe2,0x85,0xfe,0x2f,0x01,0xd1,0x85,0x01, +0xaa,0x00,0x00,0x01,0xff,0xea,0xfe,0x80,0x07,0x0a,0x05,0x9a,0x00,0x21,0x00,0xae,0x40,0x13,0x13,0x0d,0x1c,0x04,0x04,0x10,0x1f,0x10,0x0e,0x12,0x20,0x91,0x03,0x40,0x1d,0x17,0x12,0x03,0x01,0xb8,0x01,0x30,0xb3,0x09,0x03,0x0e,0x02,0xb8,0x01,0x2c,0x40,0x09,0x21,0x1d,0x1e,0x1e,0x08,0x20,0x03,0x02,0x21,0xb8,0xff,0xf8,0x40,0x26, +0x0c,0x06,0x4d,0x21,0x0e,0x08,0x12,0x11,0x11,0x09,0x0e,0x0f,0x0f,0x09,0x42,0x0f,0x1f,0x18,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x7e,0x17,0x10,0x09,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf4,0x40,0x11,0x0c,0x06,0x4d,0x09,0x13,0x0b,0x06,0x4d,0x09,0x09,0x23,0x22,0x2f, +0x23,0x3f,0x23,0x02,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x33,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x32,0x2f,0x2b,0x11,0x01,0x33,0x12,0x39,0x18,0x2f,0x33,0x10,0xe0,0x2b,0x11,0x33,0x33,0x11,0x39,0x2f,0x33,0x10,0xe1,0x00,0x2f,0x33,0x33,0x3f,0x3f,0x33,0x33,0x1a,0x10,0xed,0x11,0x12,0x39,0x39,0x11,0x17,0x33,0x31,0x30,0x01,0x23, +0x11,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x01,0x16,0x17,0x33,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x01,0x33,0x07,0x0a,0x99,0x50,0xfd,0xcf,0x18,0x0d,0x05,0x9f,0x04,0x0f,0x16,0xfd,0xcf,0xe3,0x02,0x91,0xfd,0x9b,0xce,0x02,0x1a,0x17,0x0e,0x04,0x9f,0x05,0x0d,0x18,0x02,0x1a, +0xcd,0xfd,0x9b,0x02,0x0d,0x8b,0xfe,0x80,0x01,0x80,0x02,0x90,0x1c,0x16,0xfd,0x3e,0x02,0xc2,0x19,0x19,0xfd,0x70,0x02,0xe8,0x02,0xb2,0xfd,0x93,0x1b,0x16,0x02,0x9e,0xfd,0x62,0x16,0x1b,0x02,0x6d,0xfd,0x4e,0xfd,0xae,0x00,0x01,0x00,0x04,0xfe,0x8b,0x06,0x00,0x04,0x00,0x00,0x19,0x00,0xa4,0xb9,0x00,0x01,0x01,0x31,0x40,0x15,0x04, +0x09,0x0f,0x14,0x04,0x0c,0x17,0x0c,0x07,0x15,0x0e,0x11,0x0f,0x18,0x96,0x03,0x40,0x0a,0x03,0x07,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x19,0xb8,0x01,0x2c,0x40,0x2c,0x02,0x15,0x16,0x16,0x06,0x18,0x03,0x02,0x02,0x19,0x0e,0x06,0x0e,0x0d,0x0d,0x07,0x0a,0x0b,0x0b,0x07,0x42,0x0b,0x17,0x12,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08, +0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x11,0x0c,0x07,0xb8,0xff,0xf0,0x40,0x11,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x0c,0x0b,0x06,0x4d,0x07,0x07,0x1a,0x1b,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x33,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x32,0x2f,0x2b,0x11,0x01,0x33,0x12,0x39,0x18,0x2f,0x33,0x10,0xe0,0x32,0x2f, +0x33,0x33,0x11,0x39,0x2f,0x33,0x10,0xe1,0x2b,0x00,0x2f,0x33,0x33,0x1a,0x10,0xed,0x3f,0x33,0x33,0x12,0x39,0x39,0x11,0x17,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x01,0x23,0x11,0x23,0x11,0x23,0x01,0x23,0x01,0x01,0x33,0x01,0x33,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x01,0x33,0x06,0x00,0x8c,0x5c,0xfe,0x36,0x04,0x9c,0x04,0xfe, +0x35,0xdb,0x01,0xfc,0xfe,0x23,0xd1,0x01,0xb6,0x04,0x9c,0x04,0x01,0xb6,0xd3,0xfe,0x21,0x01,0x81,0x87,0xfe,0x8b,0x01,0x75,0x01,0xfa,0xfe,0x06,0x01,0xfa,0xfe,0x06,0x02,0x10,0x01,0xf0,0xfe,0x21,0x01,0xdf,0xfe,0x21,0x01,0xdf,0xfe,0x10,0xfe,0x71,0x00,0x01,0x00,0xbc,0xfe,0x80,0x04,0xa8,0x05,0x9a,0x00,0x14,0x00,0x87,0xb9,0x00, +0x01,0x01,0x30,0x40,0x1c,0x0f,0x04,0x12,0x12,0x08,0x10,0x0b,0x03,0x13,0x91,0x02,0x02,0x08,0x10,0x11,0x11,0x08,0x14,0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14,0xb8,0x01,0x2c,0xb2,0x13,0x03,0x02,0xb8,0xff,0xf8,0x40,0x1a,0x0d,0x06,0x4d,0x02,0x02,0x16,0x12,0x0b,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08, +0x08,0x0b,0x06,0x4d,0x08,0x7e,0x09,0xb8,0xff,0xf4,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xfc,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfc,0xb3,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x32,0x11,0x33,0x2f,0x2b,0x33,0x33,0xe1,0x2b,0x2b,0x11,0x39,0x2f,0x33,0x00,0x2f,0x33,0x10,0xed,0x3f,0x33,0x12,0x39,0x11, +0x33,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x01,0x33,0x04,0xa8,0x9a,0x50,0xfd,0xd0,0x1b,0x0b,0x04,0xa8,0xa8,0x04,0x0e,0x18,0x02,0x18,0xd1,0xfd,0x99,0x02,0x0c,0x8c,0xfe,0x80,0x01,0x80,0x02,0x90,0x20,0x12,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x16,0x1b, +0x02,0x71,0xfd,0x4e,0xfd,0xae,0x00,0x01,0x00,0xa6,0xfe,0x8b,0x04,0x00,0x04,0x00,0x00,0x10,0x00,0x7b,0xb9,0x00,0x01,0x01,0x31,0x40,0x1d,0x0f,0x96,0x03,0x0b,0x04,0x0e,0x0e,0x06,0x0c,0x09,0x0f,0x11,0x03,0x06,0x0c,0x0d,0x0d,0x06,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0xb8,0x01,0x2c,0x40,0x19,0x0f,0x03,0x02, +0x02,0x12,0x0e,0x09,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x07,0xb8,0xff,0xf8,0x40,0x0e,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x32,0x11,0x39,0x2f,0x33,0x33,0xe1,0x2b,0x2b,0x11,0x39,0x2f,0x33,0x00, +0x2f,0x33,0x33,0x3f,0x33,0x12,0x39,0x11,0x33,0x33,0x10,0xed,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x01,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x01,0x33,0x04,0x00,0x8c,0x64,0xfe,0x3e,0x04,0xa4,0xa4,0x04,0x01,0xae,0xd9,0xfe,0x23,0x01,0x7f,0x89,0xfe,0x8b,0x01,0x75,0x01,0xea,0xfe,0x16,0x04,0x00,0xfe,0x2d,0x01,0xd3, +0xfe,0x10,0xfe,0x71,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x18,0x00,0xaa,0x40,0x51,0x00,0x03,0x10,0x03,0x20,0x03,0x03,0x03,0x03,0x02,0x0a,0x0f,0x14,0x1f,0x14,0x2f,0x14,0x03,0x14,0x14,0x0d,0x15,0x12,0x11,0x0f,0x16,0x0f,0x11,0x16,0x0f,0x06,0x05,0x02,0x01,0x08,0x01,0x06,0x08,0x01,0x0f,0x08,0x18,0x18,0x0a, +0x16,0x0d,0x03,0x01,0x0a,0x15,0x02,0x12,0x0f,0x05,0x01,0x05,0x05,0x00,0x16,0x17,0x17,0x01,0x19,0x00,0x29,0x00,0x02,0x0f,0x00,0x01,0x00,0x00,0x1a,0x08,0x0d,0x0f,0x18,0x04,0x0a,0x7e,0x0b,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x2f,0x2b,0x2b,0x2b,0xe1, +0x17,0x32,0x11,0x39,0x2f,0x5d,0x5d,0x33,0x39,0x2f,0x33,0x11,0x39,0x2f,0x5d,0x33,0xcd,0x32,0x00,0x2f,0x33,0x3f,0x33,0x12,0x39,0x11,0x33,0x33,0x11,0x12,0x01,0x39,0x10,0x87,0x04,0xc0,0xc0,0xc0,0x11,0x12,0x01,0x39,0x10,0x87,0x04,0xc0,0xc0,0xc0,0x11,0x00,0x39,0x2f,0x5d,0x11,0x12,0x39,0x2f,0x5d,0x31,0x30,0x21,0x23,0x01,0x11, +0x23,0x11,0x27,0x26,0x35,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x37,0x37,0x11,0x33,0x15,0x01,0x33,0x01,0x04,0xa2,0xea,0xfe,0x58,0x4c,0x36,0x26,0x04,0xa8,0xa8,0x04,0x0e,0x18,0x36,0x4c,0x01,0x96,0xd1,0xfd,0x99,0x01,0xf4,0xfe,0xf2,0x01,0x68,0x42,0x2f,0x03,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x16,0x1b,0x3f,0x01,0x52,0xf8,0x01, +0xd8,0xfd,0x50,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf4,0x04,0x00,0x00,0x14,0x00,0x81,0x40,0x4c,0x1f,0x04,0x01,0x50,0x04,0x60,0x04,0x02,0x04,0x04,0x02,0x08,0x5f,0x0f,0x6f,0x0f,0x02,0x0f,0x0f,0x0b,0x11,0x0e,0x0d,0x12,0x0d,0x05,0x02,0x01,0x06,0x01,0x0d,0x06,0x14,0x14,0x08,0x12,0x0b,0x0f,0x01,0x08,0x11,0x02,0x0e,0x05, +0x05,0x00,0x12,0x38,0x13,0x48,0x13,0x02,0x13,0x13,0x01,0x0f,0x00,0xaf,0x00,0x02,0x39,0x00,0x49,0x00,0x02,0x00,0x00,0x16,0x06,0x0b,0x0d,0x14,0x04,0x08,0x84,0x09,0x2f,0xe1,0x17,0x32,0x11,0x39,0x2f,0x5d,0x5d,0x33,0x39,0x2f,0x5d,0x33,0x11,0x39,0x2f,0x33,0xcd,0x32,0x00,0x2f,0x33,0x3f,0x33,0x12,0x39,0x11,0x33,0x33,0x10,0x87, +0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x11,0x00,0x39,0x2f,0x5d,0x11,0x12,0x39,0x2f,0x5d,0x5d,0x31,0x30,0x21,0x23,0x01,0x15,0x23,0x11,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x37,0x35,0x33,0x15,0x01,0x33,0x01,0x03,0xf4,0xe4,0xfe,0xe6,0x4c,0x5c,0x04,0xa4,0xa4,0x04,0x5c,0x4c,0x01,0x06,0xd9,0xfe,0x23,0x01,0x33,0xc1,0x01,0x13,0x65, +0xfe,0x16,0x04,0x00,0xfe,0x2d,0x65,0xed,0x9b,0x01,0x1c,0xfe,0x10,0x00,0x00,0x01,0x00,0xbc,0xfe,0x80,0x05,0xb2,0x05,0x9a,0x00,0x0f,0x00,0xb7,0x40,0x0b,0x05,0x91,0x40,0x0a,0x09,0x06,0x0a,0x91,0x2b,0x30,0x01,0xb8,0x01,0x30,0x40,0x13,0x0e,0x91,0x03,0x0c,0x09,0x03,0x03,0x06,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d, +0x0f,0xba,0x01,0x2c,0x00,0x02,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xe8,0x40,0x19,0x0c,0x06,0x4d,0x02,0x02,0x11,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x7e,0x0b,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xe0,0x40,0x1e,0x0c,0x06,0x4d,0x03,0x10,0x0b,0x06,0x4d, +0x03,0x03,0x11,0x09,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x7e,0x07,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf7,0xb3,0x0c,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x7d,0x2f,0x2b,0x2b,0xe1, +0x2b,0x2b,0x00,0x18,0x2f,0x33,0x3f,0x33,0x10,0xed,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x05,0xb2,0x9b,0xcd,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0xa8,0xc0,0xfe,0x80,0x01,0x80,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfa,0xfe,0x00, +0x00,0x01,0x00,0xa6,0xfe,0x8b,0x04,0x90,0x04,0x00,0x00,0x0f,0x00,0x9c,0xb9,0x00,0x01,0x01,0x31,0x40,0x13,0x0e,0x95,0x03,0x05,0x95,0x40,0x0a,0x09,0x06,0x0a,0x95,0x2b,0x30,0x0c,0x09,0x0f,0x03,0x06,0x02,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x0f,0xba,0x01,0x2c,0x00,0x02,0xff,0xf8,0x40, +0x40,0x0d,0x06,0x4d,0x02,0x02,0x11,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x84,0x0b,0x03,0x03,0x0d,0x06,0x4d,0x03,0x03,0x0b,0x06,0x4d,0x03,0x03,0x11,0x0a,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x07,0x08,0x0d,0x06,0x4d,0x07,0x40,0x11, +0x01,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x11,0x39,0x2f,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x00,0x2f,0x33,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x10,0xed,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x04,0x90,0x8e,0xae,0xfd,0xf6, +0xa4,0xa4,0x02,0x0a,0xa4,0x98,0xfe,0x8b,0x01,0x75,0x01,0xd1,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4,0xfc,0x8c,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x02,0x06,0x00,0x3c,0x00,0x00,0x00,0x01,0x00,0x0e,0xfe,0x29,0x03,0xd5,0x04,0x00,0x00,0x0c,0x00,0x68,0x40,0x0c,0x03,0x1b,0x04,0x42,0x01,0x01,0x0d,0x0c,0x06,0x0f, +0x0c,0x00,0xb8,0xff,0xf8,0x40,0x24,0x0c,0x06,0x4d,0x00,0x0e,0x01,0x06,0x05,0x04,0x05,0x42,0x05,0x08,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x84,0x04,0x07,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf4,0x40,0x0a,0x0c,0x06,0x4d,0x04,0x04,0x0e,0x0d,0x4f,0x0e,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b, +0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x2f,0x2b,0x11,0x01,0x33,0x10,0xe1,0x2b,0x32,0x00,0x18,0x3f,0x33,0x12,0x39,0x7d,0x2f,0x18,0xe5,0x3f,0x31,0x30,0x01,0x01,0x11,0x23,0x11,0x01,0x33,0x01,0x17,0x33,0x36,0x37,0x01,0x03,0xd5,0xfe,0x69,0xa4,0xfe,0x74,0xb6,0x01,0x0d,0x1d,0x02,0x0a,0x16,0x01,0x1b,0x04,0x00,0xfc,0x06,0xfe,0x23,0x01, +0xdf,0x03,0xf8,0xfd,0x04,0x64,0x22,0x46,0x02,0xf8,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x00,0x14,0x00,0x7d,0x40,0x16,0x11,0x0d,0x07,0x04,0x97,0x40,0x0a,0x01,0x01,0x06,0x14,0x0d,0x03,0x06,0x11,0x10,0x05,0x06,0x03,0x03,0x14,0x00,0xb8,0xff,0xd8,0x40,0x23,0x0b,0x06,0x4d,0x00,0x0e,0x05,0x08,0x08,0x06,0x0d,0x0c, +0x06,0x0c,0x42,0x0c,0x01,0x05,0x08,0x0d,0x06,0x4d,0x05,0x08,0x0c,0x06,0x4d,0x05,0x08,0x0b,0x06,0x4d,0x05,0x7e,0x0b,0x06,0xb8,0xff,0xf8,0x40,0x0a,0x0b,0x06,0x4d,0x06,0x06,0x16,0x15,0x20,0x16,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x2f,0x2b,0x11,0x01,0x33,0x12,0x39,0x18,0x2f,0x10,0xe0,0x2b,0x32, +0x39,0x2f,0x11,0x12,0x39,0x39,0x00,0x2f,0x3f,0x33,0x12,0x39,0x2f,0x33,0x1a,0xed,0x32,0x12,0x39,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x35,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x04,0x60,0xfe,0x27,0x01,0x52,0xfe,0xae,0xa8,0xfe,0xb7,0x01,0x49,0xfe,0x33,0xbf,0x01,0x41,0x06,0x1d,0x03,0x0a, +0x1c,0x01,0x50,0x05,0x9a,0xfc,0x72,0x85,0xfe,0x79,0x01,0x87,0x85,0x02,0x03,0x8c,0xfd,0x78,0x0c,0x4c,0x22,0x36,0x02,0x88,0x00,0x01,0x00,0x0e,0xfe,0x29,0x03,0xd5,0x04,0x00,0x00,0x12,0x00,0x60,0x40,0x35,0x04,0x1b,0x02,0x05,0x96,0x08,0x40,0x0c,0x0c,0x08,0x10,0x0a,0x0f,0x12,0x08,0x00,0x00,0x10,0x11,0x0e,0x02,0x07,0x07,0x05, +0x0a,0x09,0x09,0x05,0x42,0x09,0x0d,0x0c,0x12,0x02,0x08,0x0d,0x06,0x4d,0x02,0x84,0x08,0x05,0x07,0x0d,0x06,0x4d,0x05,0x05,0x14,0x13,0x4f,0x14,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x33,0xe1,0x2b,0x32,0x39,0x39,0x2f,0x2b,0x11,0x01,0x33,0x12,0x39,0x18,0x2f,0x10,0xe0,0x32,0x39,0x2f,0x00,0x2f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x1a, +0x10,0xed,0x32,0x3f,0x31,0x30,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x01,0x33,0x01,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x03,0x92,0xfe,0xac,0xa4,0xfe,0xb4,0x01,0x4c,0xfe,0x74,0xb6,0x01,0x0d,0x1d,0x02,0x0a,0x16,0x01,0x1b,0xaa,0xfe,0x69,0x85,0xfe,0xae,0x01,0x52,0x85,0x04,0x00,0xfd,0x04,0x64,0x22,0x46,0x02,0xf8,0xfc, +0x00,0x00,0x00,0x01,0x00,0x1a,0xfe,0x80,0x04,0xc6,0x05,0x9a,0x00,0x19,0x00,0x5f,0xb9,0x00,0x01,0x01,0x30,0x40,0x20,0x06,0x11,0x17,0x03,0x0c,0x0c,0x0a,0x15,0x0e,0x03,0x18,0x91,0x03,0x1a,0x03,0x0a,0x06,0x0c,0x11,0x17,0x04,0x0d,0x15,0x16,0x0e,0x0d,0x16,0x0d,0x16,0x0d,0x0b,0x19,0xb8,0x01,0x2c,0x40,0x0d,0x18,0x03,0x03,0x02, +0x10,0x0d,0x06,0x4d,0x02,0x02,0x1b,0x0a,0x0b,0x2f,0x33,0x12,0x39,0x2f,0x2b,0x33,0x11,0x33,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x12,0x17,0x39,0x00,0x2f,0x33,0x33,0x10,0xed,0x3f,0x33,0x12,0x39,0x11,0x17,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x01,0x16, +0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x01,0x33,0x04,0xc6,0x98,0x61,0xfe,0xb6,0x0f,0x12,0x04,0x0a,0x18,0xfe,0xac,0xce,0x01,0xe0,0xfe,0x46,0xce,0x01,0x25,0x1d,0x16,0x04,0x20,0x18,0x01,0x31,0xc1,0xfe,0x3d,0x01,0x6b,0x8a,0xfe,0x80,0x01,0x80,0x02,0x25,0x19,0x2e,0x17,0x30,0xfd,0xdb,0x02,0xd1,0x02,0xc9,0xfe,0x08,0x32,0x32,0x42, +0x26,0x01,0xf4,0xfd,0x39,0xfd,0xc3,0x00,0x00,0x01,0x00,0x1a,0xfe,0x8b,0x03,0xb4,0x04,0x00,0x00,0x17,0x00,0x5f,0xb9,0x00,0x01,0x01,0x31,0x40,0x20,0x06,0x11,0x15,0x03,0x0c,0x0c,0x0a,0x13,0x0e,0x0f,0x16,0x96,0x02,0x18,0x02,0x0a,0x06,0x0c,0x11,0x15,0x04,0x0d,0x13,0x14,0x0e,0x0d,0x14,0x0d,0x14,0x0d,0x0b,0x17,0xb8,0x01,0x2c, +0x40,0x0d,0x16,0x03,0x03,0x02,0x08,0x0d,0x06,0x4d,0x02,0x02,0x19,0x0a,0x0b,0x2f,0x33,0x12,0x39,0x2f,0x2b,0x33,0x11,0x33,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x12,0x17,0x39,0x00,0x2f,0x33,0x33,0x10,0xed,0x3f,0x33,0x12,0x39,0x11,0x17,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03, +0x23,0x01,0x01,0x33,0x13,0x16,0x17,0x33,0x01,0x33,0x01,0x13,0x33,0x03,0xb4,0x8b,0x5c,0xc9,0x15,0x18,0x04,0x05,0x2a,0xcd,0xbd,0x01,0x5d,0xfe,0xb2,0xbf,0xc6,0x15,0x16,0x04,0x01,0x00,0xb5,0xfe,0xa8,0xfb,0x7f,0xfe,0x8b,0x01,0x75,0x01,0x4c,0x23,0x2b,0x09,0x45,0xfe,0xb4,0x01,0xf6,0x02,0x0a,0xfe,0xa2,0x26,0x2a,0x01,0xae,0xfd, +0xfa,0xfe,0x87,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x81,0x05,0x9a,0x00,0x17,0x00,0xa0,0x40,0x40,0x11,0x11,0x0c,0x0f,0x06,0x06,0x01,0x04,0x02,0x15,0x07,0x91,0x0f,0x15,0x15,0x13,0x16,0x0f,0x0f,0x01,0x16,0x0c,0x03,0x01,0x05,0x06,0x12,0x11,0x40,0x0c,0x15,0x11,0x7f,0x2b,0x30,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06, +0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x15,0x01,0x1e,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x18,0x0b,0x06,0x4d,0x01,0x01,0x19,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x7e,0x0b,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x0b,0x0c,0x0b,0x06,0x4d,0x0b,0x2f, +0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x1a,0x18,0x10,0xcd,0x33,0x32,0x00,0x2f,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x10,0xed,0x11,0x39,0x39,0x11,0x39,0x2f,0x11,0x12,0x39,0x2f,0x31,0x30,0x21,0x23,0x11,0x06,0x07,0x11,0x23,0x11,0x06,0x26,0x35,0x11,0x33,0x11, +0x14,0x33,0x33,0x11,0x33,0x11,0x36,0x37,0x11,0x33,0x04,0x81,0xa8,0xa7,0x88,0x4c,0xce,0xea,0xa8,0xf6,0x1a,0x4c,0x86,0xa9,0xa8,0x02,0x85,0x58,0x17,0xfe,0xae,0x01,0x4a,0x0f,0xc3,0xbd,0x02,0x1b,0xfd,0xed,0xe7,0x01,0x6a,0xfe,0x9e,0x14,0x52,0x02,0x8c,0x00,0x00,0x01,0x00,0x98,0x00,0x00,0x03,0xdf,0x04,0x00,0x00,0x16,0x00,0x8e, +0x40,0x5b,0x10,0x10,0x0b,0x0e,0x06,0x06,0x01,0x04,0x02,0x07,0x14,0x14,0x12,0x15,0x0e,0x95,0x07,0x07,0x01,0x15,0x0b,0x0f,0x01,0x05,0x06,0x11,0x10,0x40,0x0b,0x14,0x10,0x85,0x2b,0x30,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x14,0x01,0x01,0x18,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08, +0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x84,0x0a,0x05,0x0d,0x06,0x4d,0x0a,0x05,0x0c,0x06,0x4d,0x0a,0x04,0x0b,0x06,0x4d,0x0a,0x2f,0x18,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x33,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x1a,0x18,0x10,0xcd,0x33,0x32,0x00,0x2f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x11,0x39, +0x39,0x2f,0x12,0x39,0x39,0x11,0x39,0x2f,0x11,0x12,0x39,0x2f,0x31,0x30,0x21,0x23,0x11,0x06,0x07,0x15,0x23,0x35,0x04,0x11,0x11,0x33,0x11,0x14,0x33,0x33,0x11,0x33,0x11,0x36,0x37,0x11,0x33,0x03,0xdf,0xa3,0x76,0x66,0x4c,0xfe,0x84,0xa4,0xc2,0x16,0x4c,0x6e,0x6e,0xa3,0x01,0x9c,0x40,0x16,0xd4,0xca,0x1c,0x01,0x86,0x01,0x5a,0xfe, +0xae,0xe1,0x01,0x25,0xfe,0xe5,0x14,0x38,0x01,0xdd,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x81,0x05,0x9a,0x00,0x10,0x00,0x73,0x40,0x27,0x0b,0x06,0x04,0x91,0x0d,0x0d,0x07,0x0a,0x03,0x01,0x07,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x01,0x1e,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d, +0x01,0xb8,0xff,0xfc,0x40,0x19,0x0b,0x06,0x4d,0x01,0x01,0x12,0x0b,0x07,0x08,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x7e,0x08,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x08,0x0c,0x0b,0x06,0x4d,0x08,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00, +0x2f,0x33,0x3f,0x12,0x39,0x2f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x34,0x23,0x22,0x07,0x11,0x23,0x11,0x33,0x11,0x36,0x33,0x32,0x16,0x15,0x04,0x81,0xa8,0xf5,0xb4,0xe2,0xa8,0xa8,0xe4,0xc6,0xba,0xcf,0x02,0x12,0xe8,0x6e,0xfd,0x74,0x05,0x9a,0xfd,0x7a,0x7a,0xc2,0xb2,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec, +0x02,0x06,0x00,0x4b,0x00,0x00,0x00,0x02,0x00,0x56,0xff,0xe8,0x05,0x66,0x05,0xb2,0x00,0x11,0x00,0x18,0x00,0x77,0x40,0x29,0x12,0x91,0x01,0x20,0x01,0x50,0x01,0x02,0x01,0x09,0x16,0x2f,0x06,0x01,0x06,0x06,0x04,0x91,0x09,0x04,0x16,0x91,0x0f,0x13,0x06,0x06,0x00,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x7d,0x01, +0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf8,0x40,0x1d,0x0c,0x06,0x4d,0x12,0x12,0x1a,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x7d,0x00,0x10,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x11,0x39,0x2f,0x00,0x3f,0xed, +0x3f,0xed,0x32,0x2f,0x5d,0x11,0x12,0x39,0x5d,0x2f,0xed,0x31,0x30,0x13,0x21,0x26,0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x25,0x21,0x16,0x12,0x33,0x32,0x00,0x56,0x04,0x5e,0x11,0xfe,0xe5,0xda,0xd8,0x9c,0x9e,0xe2,0x01,0x3f,0x01,0x6d,0xfe,0x94,0xfe,0xd3,0xfe,0xd1,0xfe,0xb8,0x04,0x5e,0xfc, +0x56,0x04,0xf2,0xcf,0xcf,0x01,0x02,0x03,0x1a,0xed,0x01,0x13,0x60,0xa4,0x54,0xfe,0x76,0xfe,0xa5,0xfe,0xbe,0xfe,0x5d,0x01,0x9f,0xfc,0xeb,0xfe,0xe7,0x01,0x18,0x00,0x00,0x02,0x00,0x52,0xff,0xe8,0x03,0xcf,0x04,0x18,0x00,0x12,0x00,0x19,0x00,0x56,0x40,0x23,0x06,0x40,0x0b,0x0e,0x48,0x06,0x06,0x04,0x13,0x95,0x01,0x01,0x17,0x04, +0x95,0x09,0x10,0x17,0x95,0x0f,0x16,0x80,0x06,0x90,0x06,0x02,0x06,0x06,0x0c,0x00,0x13,0x14,0x0c,0x83,0x01,0xb8,0xff,0xf8,0x40,0x0e,0x0d,0x06,0x4d,0x01,0x01,0x1b,0x14,0x83,0x00,0x10,0x0d,0x06,0x4d,0x00,0x2f,0x2b,0xe1,0x12,0x39,0x2f,0x2b,0xe1,0x12,0x39,0x11,0x12,0x39,0x2f,0x5d,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed, +0x12,0x39,0x2f,0x2b,0x31,0x30,0x13,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x12,0x15,0x14,0x00,0x23,0x22,0x02,0x35,0x05,0x21,0x16,0x16,0x33,0x32,0x36,0x52,0x02,0xd3,0x04,0xb0,0x9a,0xae,0x90,0x86,0xdf,0xd9,0xf8,0xfe,0xf1,0xc8,0xcb,0xdb,0x02,0xd1,0xfd,0xd7,0x02,0x84,0x7a,0x74,0xa3,0x02,0x29,0xab,0xba,0x72,0x9a, +0x62,0xfe,0xea,0xfe,0xf2,0xfe,0xd6,0x01,0x06,0xe5,0x35,0x8d,0x9f,0xa6,0x00,0x03,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x12,0x00,0x19,0x00,0x63,0x40,0x18,0x14,0x91,0x40,0x12,0x06,0x00,0x12,0x91,0x2b,0x30,0x0f,0x91,0x06,0x04,0x17,0x91,0x00,0x13,0x09,0x7d,0x12,0x0c,0x14,0x13,0xb8,0xff,0xf0,0xb3,0x0d,0x06, +0x4d,0x13,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x13,0xb8,0xff,0xe0,0x40,0x18,0x0b,0x06,0x4d,0x13,0x13,0x1b,0x14,0x7d,0x03,0x10,0x0d,0x06,0x4d,0x03,0x10,0x0c,0x06,0x4d,0x03,0x18,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x12,0x39,0x39,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a, +0xed,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x13,0x26,0x00,0x23,0x22,0x00,0x07,0x05,0x21,0x16,0x00,0x33,0x32,0x00,0x02,0xfe,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0x8c,0xc0,0x12,0xfe,0xfd,0xd7,0xd0,0xfe,0xee,0x16,0x03,0xe4,0xfc,0x1c,0x15,0x01,0x0c,0xcb,0xdc,0x01, +0x09,0x18,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0x03,0x30,0xf5,0x01,0x0d,0xfe,0xe8,0xea,0x9b,0xea,0xfe,0xec,0x01,0x0b,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x6b,0x40,0x18,0x13,0x95,0x40,0x11,0x06,0x00,0x11,0x95,0x2b,0x30,0x0e,0x95, +0x06,0x10,0x16,0x95,0x00,0x16,0x11,0x0c,0x13,0x09,0x83,0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf0,0xb6,0x0c,0x06,0x4d,0x30,0x12,0x01,0x12,0xb8,0xff,0xde,0x40,0x1b,0x0b,0x06,0x4d,0x12,0x12,0x19,0x13,0x83,0x03,0x10,0x0d,0x06,0x4d,0x03,0x0c,0x0c,0x06,0x4d,0x03,0x19,0x0b,0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d, +0x2f,0x2b,0x2b,0x2b,0xe1,0x12,0x39,0x2f,0x2b,0x5d,0x2b,0x2b,0xe1,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x13,0x02,0x21,0x22,0x06,0x07,0x05,0x21,0x16,0x16,0x33,0x20,0x02,0x52,0xe4,0xfe,0xf2,0x01,0x1a,0xf0,0xe5,0x01,0x01, +0xfe,0xeb,0x67,0x29,0xfe,0xe5,0x88,0xb1,0x17,0x02,0x98,0xfd,0x64,0x0a,0xb7,0x93,0x01,0x33,0x18,0x01,0x20,0xec,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x02,0x74,0x01,0x32,0xa0,0x92,0x8b,0xa3,0xbc,0x00,0x00,0x02,0x00,0x3e,0x06,0x1e,0x02,0x3a,0x07,0xcf,0x00,0x03,0x00,0x07,0x00,0x2d,0xb2,0x02,0x80,0x01,0xb8,0xff, +0xc0,0x40,0x12,0x09,0x0c,0x48,0x01,0x06,0xe2,0x05,0x02,0x62,0x00,0x01,0x00,0x00,0x05,0x04,0x04,0x09,0x05,0x2f,0x12,0x39,0x2f,0x12,0x39,0x2f,0x5d,0xcd,0x00,0x2f,0xfd,0xd6,0x2b,0x1a,0xcd,0x31,0x30,0x01,0x23,0x27,0x33,0x01,0x21,0x35,0x21,0x01,0xaa,0x7f,0xdd,0xa8,0x01,0x44,0xfe,0x04,0x01,0xfc,0x06,0xd9,0xf6,0xfe,0x4f,0x6e, +0x00,0x02,0x00,0x3e,0x04,0xc2,0x02,0x3a,0x06,0x72,0x00,0x03,0x00,0x07,0x00,0x24,0x40,0x11,0x02,0x80,0x01,0x06,0xe2,0x05,0x02,0x62,0x00,0x01,0x00,0x00,0x05,0x04,0x04,0x09,0x05,0x2f,0x12,0x39,0x2f,0x12,0x39,0x2f,0x5d,0xcd,0x00,0x2f,0xfd,0xde,0x1a,0xcd,0x31,0x30,0x01,0x23,0x27,0x33,0x01,0x21,0x35,0x21,0x01,0xaa,0x7f,0xdd, +0xa8,0x01,0x44,0xfe,0x04,0x01,0xfc,0x05,0x7d,0xf5,0xfe,0x50,0x6d,0x00,0x00,0x02,0x00,0x3e,0x06,0x1e,0x02,0x3a,0x07,0xcf,0x00,0x03,0x00,0x07,0x00,0x2d,0xb2,0x01,0x80,0x00,0xb8,0xff,0xc0,0x40,0x12,0x09,0x0c,0x48,0x00,0x05,0xe2,0x04,0x02,0x6d,0x00,0x01,0x00,0x00,0x04,0x07,0x07,0x09,0x04,0x2f,0x12,0x39,0x2f,0x12,0x39,0x2f, +0x5d,0xcd,0x00,0x2f,0xfd,0xd6,0x2b,0x1a,0xcd,0x31,0x30,0x13,0x37,0x33,0x07,0x05,0x35,0x21,0x15,0xcd,0xb4,0xa8,0xdd,0xfe,0xf2,0x01,0xfc,0x06,0xd9,0xf6,0xf6,0xbb,0x6e,0x6e,0x00,0x02,0x00,0x3e,0x04,0xc2,0x02,0x3a,0x06,0x72,0x00,0x03,0x00,0x07,0x00,0x24,0x40,0x11,0x01,0x80,0x00,0x05,0xe2,0x04,0x02,0x6d,0x00,0x01,0x00,0x00, +0x04,0x07,0x07,0x09,0x04,0x2f,0x12,0x39,0x2f,0x12,0x39,0x2f,0x5d,0xcd,0x00,0x2f,0xfd,0xde,0x1a,0xcd,0x31,0x30,0x13,0x37,0x33,0x07,0x05,0x35,0x21,0x15,0xcd,0xb4,0xa8,0xdd,0xfe,0xf2,0x01,0xfc,0x05,0x7d,0xf5,0xf5,0xbb,0x6d,0x6d,0x00,0x00,0x03,0x00,0x7d,0x06,0x1e,0x02,0xc4,0x07,0xd1,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x44, +0xb2,0x01,0x80,0x00,0xb8,0xff,0xc0,0x40,0x20,0x09,0x0c,0x48,0x00,0x00,0x0a,0x16,0xc1,0x04,0x10,0x02,0x02,0x01,0x0f,0x03,0x02,0x40,0x00,0x00,0x19,0x0d,0xc0,0x07,0x13,0xc0,0x19,0x1c,0x1d,0x19,0x07,0x2b,0x3a,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x12,0x39,0x18,0x2f,0x1a,0xcd,0x5f,0x5e,0x5d,0x00,0x2f,0x33,0xed,0x32,0x39,0x2f,0x2b, +0x1a,0xcd,0x31,0x30,0x01,0x37,0x33,0x07,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x50,0xb4,0xa8,0xdd,0x93,0x28,0x3a,0x38,0x28,0x2a,0x3a,0x38,0xfe,0x56,0x2a,0x3b,0x3b,0x27,0x29,0x3c,0x3a,0x06,0xdb,0xf6,0xf6,0xbd,0x39,0x2a,0x2a,0x39,0x3a, +0x29,0x29,0x3a,0x3b,0x28,0x2a,0x39,0x3a,0x29,0x29,0x3a,0x00,0x00,0x03,0x00,0x7d,0x04,0xc2,0x02,0xc4,0x06,0x74,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x3b,0x40,0x1f,0x01,0x80,0x00,0x00,0x0a,0x16,0xc1,0x04,0x10,0x02,0x02,0x01,0x0f,0x03,0x02,0x40,0x00,0x00,0x19,0x0d,0xc0,0x07,0x13,0xc0,0x19,0x1c,0x1d,0x19,0x07,0x2b,0x3a,0x2b, +0x01,0x10,0xe1,0x10,0xe1,0x12,0x39,0x18,0x2f,0x1a,0xcd,0x5f,0x5e,0x5d,0x00,0x2f,0x33,0xed,0x32,0x39,0x2f,0x1a,0xcd,0x31,0x30,0x01,0x37,0x33,0x07,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x50,0xb4,0xa8,0xdd,0x93,0x28,0x3a,0x38,0x28,0x2a, +0x3a,0x38,0xfe,0x56,0x2a,0x3b,0x39,0x29,0x29,0x3c,0x3a,0x05,0x7f,0xf5,0xf5,0xbd,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x3b,0x28,0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0x02,0x00,0xa9,0x06,0x0c,0x03,0x2a,0x08,0x08,0x00,0x03,0x00,0x16,0x00,0x54,0xb9,0x00,0x01,0xff,0xc0,0x40,0x0f,0x09,0x0d,0x48,0x01,0x80,0x03,0x40,0x10,0x15, +0x48,0x03,0x16,0x10,0xda,0x0b,0xb8,0xff,0xc0,0x40,0x1e,0x09,0x0c,0x48,0x0b,0x14,0xda,0x07,0x0d,0x02,0x20,0x0a,0x0d,0x48,0x02,0x5f,0x00,0x6f,0x00,0x02,0x00,0x00,0x0e,0x04,0xc4,0x16,0x16,0x18,0x0d,0xc4,0x0e,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x5d,0xcd,0x2b,0x00,0x2f,0xd6,0xed,0xdc,0x2b,0xfd,0xc6,0xd6,0x2b,0x1a, +0xcd,0x2b,0x31,0x30,0x01,0x37,0x33,0x07,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x62,0xb4,0xa8,0xdc,0x01,0x48,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x07,0x12,0xf6,0xf6,0x1a,0x65,0x75,0x25,0x25,0x5c,0xd8,0x26,0x26,0x60,0x00,0x02, +0x00,0xa9,0x04,0xb2,0x03,0x2a,0x06,0xae,0x00,0x03,0x00,0x16,0x00,0x3e,0xb2,0x01,0x80,0x00,0xb8,0xff,0xc0,0x40,0x1d,0x09,0x0c,0x48,0x00,0x16,0x10,0xda,0x0b,0x14,0xda,0x07,0x0d,0x02,0x5f,0x00,0x6f,0x00,0x02,0x00,0x00,0x0e,0x04,0xc4,0x16,0x16,0x18,0x0d,0xc4,0x0e,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x5d,0xcd,0x00, +0x2f,0xd6,0xed,0xdc,0xfd,0xc6,0xde,0x2b,0x1a,0xcd,0x31,0x30,0x01,0x37,0x33,0x07,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x62,0xb4,0xa8,0xdc,0x01,0x48,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x05,0xb8,0xf6,0xf6,0x1a,0x65,0x75,0x25, +0x25,0x5c,0xd7,0x25,0x26,0x60,0x00,0x03,0x00,0xa9,0x06,0x0c,0x03,0x2a,0x08,0x02,0x00,0x0b,0x00,0x17,0x00,0x2a,0x00,0x66,0x40,0x10,0x06,0x12,0xc1,0x00,0x00,0x0c,0x10,0x0c,0x02,0x0c,0x03,0x0c,0x2a,0x24,0xda,0x1f,0xb8,0xff,0xc0,0x40,0x10,0x09,0x0c,0x48,0x1f,0x28,0xda,0x40,0x1b,0x21,0x09,0xc0,0x03,0x0f,0xc0,0x15,0x03,0xb8, +0xff,0xc0,0xb3,0x0a,0x0d,0x48,0x15,0xb8,0xff,0xc0,0x40,0x11,0x0a,0x0d,0x48,0x18,0x22,0x03,0x15,0x2b,0x3a,0x18,0xc4,0x2a,0x2a,0x2c,0x21,0xc4,0x22,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x2b,0x2b,0x10,0xe1,0x10,0xe1,0x00,0x18,0x2f,0xd6,0x1a,0xed,0xdc,0x2b,0xfd,0xc6,0xd6,0x5f,0x5e,0x5d,0x32,0xed,0x32,0x31,0x30,0x01,0x22, +0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x02,0xab,0x29,0x3a,0x39,0x28,0x29,0x3c,0x3a,0xfe,0x56,0x28,0x3c,0x3a,0x28,0x2a,0x3a,0x38,0x01,0xd6,0x5d,0x55,0x43, +0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x07,0x3e,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0x46,0x65,0x75,0x25,0x25,0x5c,0xd8,0x26,0x26,0x60,0x00,0x00,0x03,0x00,0xa9,0x04,0xb2,0x03,0x2a,0x06,0xa8,0x00,0x0b,0x00,0x17,0x00,0x2a,0x00,0x3f,0x40,0x22,0x06,0x12,0xc1,0x00, +0x0c,0x2a,0x24,0xda,0x1f,0x28,0xda,0x40,0x1b,0x21,0x09,0xc0,0x03,0x0f,0xc0,0x15,0x18,0x22,0x03,0x15,0x2b,0x3a,0x18,0xc4,0x2a,0x2a,0x2c,0x21,0xc4,0x22,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x00,0x18,0x2f,0xd6,0x1a,0xed,0xdc,0xfd,0xc6,0xde,0x32,0xed,0x32,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x02,0xab,0x29,0x3a,0x39,0x28,0x29,0x3c,0x3a,0xfe,0x56,0x28,0x3c,0x3a,0x28,0x2a,0x3a,0x38,0x01,0xd6,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e, +0xb6,0x3f,0x52,0x51,0x33,0x54,0x05,0xe4,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0x46,0x65,0x75,0x25,0x25,0x5c,0xd7,0x25,0x26,0x60,0x00,0x02,0x00,0x14,0x06,0x1e,0x02,0x12,0x07,0x6a,0x00,0x0b,0x00,0x0f,0x00,0x1f,0x40,0x0e,0x06,0xc1,0x40,0x00,0x00,0x0e,0x80,0x0c,0x03,0xc0,0x09,0x09, +0x0e,0x0c,0x2f,0xcd,0x39,0x2f,0xe1,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x17,0x37,0x33,0x07,0x76,0x28,0x3a,0x39,0x29,0x28,0x3a,0x3a,0x17,0xb5,0xa8,0xde,0x06,0xa8,0x38,0x2a,0x29,0x37,0x37,0x29,0x28,0x3a,0x8a,0xf6,0xf6,0x00,0x02,0x00,0x14,0x04,0xc2, +0x02,0x12,0x06,0x0e,0x00,0x0b,0x00,0x0f,0x00,0x1f,0x40,0x0e,0x06,0xc1,0x40,0x00,0x00,0x0e,0x80,0x0c,0x03,0xc0,0x09,0x09,0x0e,0x0c,0x2f,0xcd,0x39,0x2f,0xe1,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x17,0x37,0x33,0x07,0x76,0x28,0x3a,0x39,0x29,0x28,0x3a, +0x3a,0x17,0xb5,0xa8,0xde,0x05,0x4c,0x38,0x2a,0x29,0x37,0x37,0x29,0x29,0x39,0x8a,0xf6,0xf6,0x00,0x02,0x00,0x1e,0x06,0x1e,0x02,0x51,0x07,0xd7,0x00,0x0b,0x00,0x12,0x00,0x33,0xb3,0x06,0xc1,0x40,0x00,0xb8,0xff,0xc0,0x40,0x15,0x09,0x0c,0x48,0x00,0x00,0x0f,0x80,0x0e,0x03,0xc0,0x09,0x0c,0x0f,0x09,0xc0,0x2b,0x30,0x0c,0x0c,0x14, +0x0f,0x2f,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x00,0x18,0x2f,0x1a,0xcd,0x39,0x2f,0x2b,0x1a,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x07,0x23,0x27,0x33,0x17,0x37,0x01,0x34,0x28,0x3a,0x39,0x29,0x29,0x39,0x39,0xf4,0xd7,0x86,0xd6,0x70,0xa6,0xa4,0x07,0x14,0x39,0x2a,0x28,0x38,0x37,0x29, +0x29,0x3a,0x04,0xfa,0xfa,0x93,0x93,0x00,0x00,0x02,0x00,0x1e,0x04,0xc2,0x02,0x51,0x06,0x7b,0x00,0x0b,0x00,0x12,0x00,0x2a,0x40,0x15,0x06,0xc1,0x40,0x00,0x00,0x0f,0x80,0x0e,0x03,0xc0,0x09,0x0c,0x0f,0x09,0xc0,0x2b,0x30,0x0c,0x0c,0x14,0x0f,0x2f,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x00,0x18,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed, +0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x07,0x23,0x27,0x33,0x17,0x37,0x01,0x34,0x28,0x3a,0x39,0x29,0x29,0x39,0x39,0xf4,0xd7,0x86,0xd6,0x70,0xa6,0xa4,0x05,0xb8,0x39,0x29,0x29,0x38,0x37,0x2a,0x28,0x3a,0x04,0xfa,0xfa,0x93,0x93,0x00,0x03,0x00,0x14,0x06,0x1e,0x02,0x5b,0x07,0x9e,0x00,0x0b, +0x00,0x17,0x00,0x1b,0x00,0x39,0xb4,0x06,0x12,0xc1,0x00,0x0c,0xb8,0xff,0xc0,0x40,0x18,0x09,0x0c,0x48,0x0c,0x1a,0xe2,0x40,0x19,0x09,0xc0,0x03,0x0f,0xc0,0x15,0x18,0x19,0x03,0x15,0x2b,0x3a,0x18,0x18,0x1d,0x19,0x2f,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x00,0x18,0x2f,0x1a,0xfd,0xde,0x2b,0x32,0xed,0x32,0x31,0x30,0x01, +0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x21,0x35,0x21,0x01,0xf9,0x29,0x3a,0x39,0x28,0x29,0x3b,0x39,0xfe,0x56,0x2b,0x39,0x39,0x29,0x29,0x3b,0x39,0x01,0x99,0xfe,0x04,0x01,0xfc,0x06,0xd9,0x38,0x2b,0x2a,0x38,0x3a,0x28,0x2a,0x39,0x39,0x2a,0x29, +0x39,0x3a,0x28,0x2a,0x39,0xbb,0x6e,0x00,0x00,0x03,0x00,0x14,0x04,0xc2,0x02,0x5b,0x06,0x42,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x30,0x40,0x19,0x06,0x12,0xc1,0x00,0x0c,0x1a,0xe2,0x40,0x19,0x09,0xc0,0x03,0x0f,0xc0,0x15,0x18,0x19,0x03,0x15,0x2b,0x3a,0x18,0x18,0x1d,0x19,0x2f,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x00, +0x18,0x2f,0x1a,0xfd,0xde,0x32,0xed,0x32,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x21,0x35,0x21,0x01,0xf9,0x29,0x3a,0x39,0x28,0x29,0x3b,0x39,0xfe,0x56,0x2a,0x3a,0x3a,0x28,0x29,0x3b,0x39,0x01,0x99,0xfe,0x04,0x01,0xfc,0x05,0x7d, +0x38,0x2a,0x2a,0x39,0x3a,0x29,0x29,0x39,0x38,0x2a,0x2a,0x39,0x3a,0x29,0x29,0x39,0xbb,0x6d,0xff,0xff,0x00,0xbc,0xfe,0x50,0x03,0xb4,0x05,0x9a,0x02,0x26,0x00,0x28,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x8a,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x50,0x03,0xdd,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x7d, +0x00,0x00,0xff,0xff,0x00,0x16,0xfe,0x04,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xdc,0x01,0x75,0xf9,0x6c,0x00,0x27,0x40,0x1a,0x03,0x02,0x00,0x13,0x19,0x06,0x07,0x25,0x03,0x02,0x16,0x40,0x09,0x0d,0x36,0x16,0x40,0x0a,0x0b,0x36,0x20,0x16,0x01,0x16,0x14,0x26,0x00,0x2b,0x5d,0x2b,0x2b,0x35,0x35,0x01, +0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0x05,0x03,0x83,0x04,0x18,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xdc,0x00,0xe9,0xf9,0x6d,0x00,0x27,0x40,0x1a,0x03,0x02,0x1b,0x23,0x29,0x08,0x00,0x25,0x03,0x02,0x26,0x40,0x09,0x0d,0x36,0x26,0x40,0x0a,0x0b,0x36,0x20,0x26,0x01,0x26,0x17,0x26,0x00,0x2b,0x5d,0x2b,0x2b,0x35, +0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x2f,0x06,0xe2,0x02,0x26,0x00,0x25,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x47,0x01,0x5d,0x00,0x16,0xb9,0x00,0x03,0xff,0xc3,0x40,0x09,0x23,0x29,0x01,0x05,0x25,0x03,0x20,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xff,0xe8,0x04,0x54,0x05,0xec, +0x02,0x26,0x00,0x45,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x8b,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0xad,0x21,0x21,0x05,0x05,0x25,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x04,0x2f,0x05,0x9a,0x02,0x26,0x00,0x25,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xe1,0x00,0x00,0x00,0x1a,0xb9,0x00, +0x03,0xff,0xc1,0x40,0x0c,0x23,0x29,0x00,0x0c,0x25,0x03,0x20,0x26,0x01,0x26,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x04,0x54,0x05,0xec,0x02,0x26,0x00,0x45,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x1a,0x00,0x00,0x00,0x1a,0xb9,0x00,0x02,0xff,0xf2,0x40,0x0c,0x21,0x27,0x03,0x0c,0x25,0x02,0x20, +0x24,0x01,0x24,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xff,0x1e,0x04,0x2f,0x05,0x9a,0x02,0x26,0x00,0x25,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x1c,0xfa,0x5c,0x00,0x1a,0xb9,0x00,0x03,0xff,0xe3,0x40,0x0c,0x21,0x20,0x00,0x0c,0x25,0x03,0x20,0x22,0x01,0x22,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0xa6,0xff,0x1e,0x04,0x54,0x05,0xec,0x02,0x26,0x00,0x45,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x3f,0xfa,0x5c,0x00,0x17,0x40,0x0e,0x02,0x00,0x1f,0x1e,0x03,0x0c,0x25,0x02,0x20,0x20,0x01,0x20,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xfe,0x50,0x04,0x8c,0x07,0x67,0x02,0x26,0x00,0x26, +0x00,0x00,0x00,0x27,0x00,0xdd,0x02,0x39,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xf5,0x01,0x5d,0x00,0x08,0xb3,0x02,0x2a,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0x50,0x03,0x62,0x06,0x0a,0x02,0x26,0x00,0x46,0x00,0x00,0x00,0x27,0x00,0xdd,0x01,0x83,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x2f,0x00,0x00,0x00,0x08,0xb3,0x02, +0x2a,0x11,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x3e,0x06,0xe2,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0xd2,0x01,0x5d,0x00,0x16,0xb9,0x00,0x02,0xff,0xa3,0x40,0x09,0x13,0x19,0x01,0x04,0x25,0x02,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x10,0x05,0xec, +0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x64,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0x29,0x40,0x09,0x27,0x27,0x0f,0x0f,0x25,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x05,0x3e,0x05,0x9a,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x54,0x00,0x00,0x00,0x1a, +0xb9,0x00,0x02,0xff,0xac,0x40,0x0c,0x13,0x19,0x00,0x04,0x25,0x02,0x20,0x16,0x01,0x16,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0xc6,0x04,0x10,0x05,0xec,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x02,0x00,0x00,0x00,0x17,0x40,0x0e,0x02,0x1f,0x21,0x27,0x08,0x00,0x25,0x02,0x20,0x24, +0x01,0x24,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xff,0x1e,0x05,0x3e,0x05,0x9a,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x46,0xfa,0x5c,0x00,0x1a,0xb9,0x00,0x02,0xff,0x85,0x40,0x0c,0x11,0x10,0x00,0x04,0x25,0x02,0x20,0x12,0x01,0x12,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0x60,0xff,0x1e,0x04,0x10,0x05,0xec,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x1c,0xfa,0x5c,0x00,0x17,0x40,0x0e,0x02,0x20,0x1f,0x1e,0x08,0x00,0x25,0x02,0x20,0x20,0x01,0x20,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x85,0x05,0x3e,0x05,0x9a,0x02,0x26,0x00,0x27, +0x00,0x00,0x01,0x07,0x01,0x9d,0x01,0x4a,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xb8,0x40,0x09,0x12,0x10,0x00,0x04,0x25,0x02,0x13,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0x85,0x04,0x10,0x05,0xec,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x01,0x9d,0x00,0xdd,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x4b, +0x21,0x1e,0x08,0x00,0x25,0x02,0x21,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x3d,0x05,0x3e,0x05,0x9a,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x3f,0xf9,0x7b,0x00,0x16,0xb9,0x00,0x02,0xff,0xb8,0x40,0x09,0x14,0x10,0x00,0x04,0x25,0x02,0x15,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0x60,0xfe,0x3e,0x04,0x10,0x05,0xec,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xe0,0xf9,0x7c,0x00,0x13,0x40,0x0b,0x02,0x1e,0x22,0x1e,0x08,0x00,0x25,0x02,0x23,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0xcf,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07, +0x02,0xd1,0x00,0xec,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x11,0x10,0x02,0x03,0x25,0x02,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x72,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0xd2,0x00,0xe4,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x20, +0x21,0x0c,0x12,0x25,0x03,0x02,0x1f,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0xcf,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x02,0xd3,0x00,0xfd,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x11,0x13,0x02,0x0b,0x25,0x02,0x01,0x13,0x05,0x26,0x00,0x2b,0x35,0x35,0x01, +0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x72,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0xd4,0x00,0xe4,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1f,0x21,0x0c,0x12,0x25,0x03,0x02,0x21,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x3c,0x03,0xb4,0x05,0x9a, +0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xd9,0xf9,0x7a,0x00,0x13,0x40,0x0b,0x01,0x17,0x10,0x0c,0x01,0x00,0x25,0x01,0x11,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0x3d,0x03,0xdd,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xda,0xf9,0x7b,0x00,0x13,0x40,0x0b, +0x02,0x32,0x1e,0x1a,0x0c,0x00,0x25,0x02,0x1f,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x9a,0x03,0xb4,0x05,0x9a,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xd1,0xf9,0xe8,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x16,0x0c,0x01,0x00,0x25,0x01,0x1f,0x14,0x26,0x00,0x2b,0x35,0x01, +0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0x99,0x03,0xdd,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xe1,0xf9,0xe7,0x00,0x13,0x40,0x0b,0x02,0x26,0x24,0x1a,0x0c,0x00,0x25,0x02,0x2d,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x50,0x03,0xb4,0x07,0x1c,0x02,0x26,0x00,0x28,0x00,0x00, +0x00,0x27,0x00,0xdd,0x01,0x8a,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xec,0x01,0x5e,0x00,0x16,0xb9,0x00,0x02,0xff,0xfb,0x40,0x09,0x25,0x1f,0x02,0x03,0x25,0x02,0x22,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0x50,0x03,0xdd,0x05,0xbe,0x02,0x26,0x00,0x48,0x00,0x00,0x00,0x27,0x00,0xdd,0x01,0x7d,0x00,0x00, +0x01,0x07,0x00,0xda,0x00,0xe5,0x00,0x00,0x00,0x13,0x40,0x0b,0x03,0x06,0x33,0x2d,0x0c,0x12,0x25,0x03,0x30,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0x94,0x06,0xe2,0x02,0x26,0x00,0x29,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x4a,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xf0,0x40,0x09,0x0d, +0x13,0x08,0x09,0x25,0x01,0x0a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x35,0x00,0x00,0x02,0xa0,0x06,0xe2,0x02,0x26,0x00,0x49,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0x03,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x1e,0x1e,0x0a,0x09,0x25,0x01,0x15,0x02,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e, +0xff,0xe8,0x04,0xec,0x06,0x8c,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0xda,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x80,0x1b,0x1a,0x05,0x0a,0x25,0x01,0x1b,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x05,0x2f,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x17, +0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x1b,0x27,0x26,0x10,0x18,0x25,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x06,0xe2,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x01,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xf8,0x40,0x09,0x0f,0x15,0x06,0x0b,0x25,0x01,0x0c, +0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x8c,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0xae,0x15,0x15,0x0b,0x0b,0x25,0x01,0x12,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x04,0xf2,0x05,0x9a, +0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x8f,0x00,0x00,0x00,0x17,0x40,0x0e,0x01,0x0d,0x0f,0x15,0x05,0x00,0x25,0x01,0x20,0x12,0x01,0x12,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xe7,0x00,0x00, +0x00,0x1a,0xb9,0x00,0x01,0xff,0xed,0x40,0x0c,0x15,0x1b,0x09,0x00,0x25,0x01,0x20,0x18,0x01,0x18,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x06,0xe4,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x38,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x1b,0x15,0x06,0x0b,0x25, +0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0xe4,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xe3,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x16,0x21,0x21,0x0b,0x0b,0x25,0x02,0x01,0x1e,0x02,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00, +0xff,0xff,0x00,0xa0,0xfe,0x50,0x04,0xf2,0x05,0x9a,0x02,0x26,0x00,0x2b,0x00,0x00,0x00,0x06,0x00,0xdd,0x6d,0x00,0xff,0xff,0x00,0x8c,0xfe,0x50,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x00,0x06,0x00,0xdd,0x59,0x00,0xff,0xff,0x00,0xbc,0xfe,0x8c,0x04,0xf2,0x05,0x9a,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0xda, +0x01,0xa6,0xf9,0xca,0x00,0x13,0x40,0x0b,0x01,0x06,0x12,0x0c,0x05,0x00,0x25,0x01,0x12,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0xfe,0x8c,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x27,0xf9,0xca,0x00,0x13,0x40,0x0b,0x01,0x0f,0x18,0x12,0x09,0x00,0x25,0x01,0x18,0x17, +0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xcf,0xfe,0x9c,0x02,0x50,0x05,0x9a,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xac,0xf9,0xea,0x00,0x0b,0xb6,0x01,0x00,0x0e,0x04,0x02,0x03,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xb9,0xfe,0x9c,0x02,0x3a,0x05,0xd9,0x02,0x26,0x00,0x4c,0x00,0x00,0x01,0x07, +0x00,0xd8,0xff,0x96,0xf9,0xea,0x00,0x0b,0xb6,0x02,0x00,0x1a,0x10,0x03,0x09,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xf2,0x00,0x00,0x02,0x39,0x07,0xd1,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x02,0xd5,0xff,0x75,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x05,0x17,0x11,0x02,0x03,0x25,0x03,0x02,0x01,0x14,0x05,0x26,0x00, +0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0xff,0xd4,0x00,0x00,0x02,0x1b,0x06,0x74,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x02,0xd6,0xff,0x57,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x00,0x17,0x11,0x02,0x03,0x25,0x03,0x02,0x01,0x14,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00, +0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2,0x07,0x65,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x62,0x01,0x5b,0x00,0x16,0xb9,0x00,0x01,0xff,0x8f,0x40,0x09,0x13,0x12,0x08,0x0f,0x25,0x01,0x13,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x07,0x67,0x02,0x26,0x00,0x4e,0x00,0x00, +0x01,0x07,0x00,0x8e,0x00,0xe2,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x1f,0x0f,0x0f,0x07,0x07,0x25,0x01,0x0f,0x02,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x04,0xa2,0x05,0x9a,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x29,0x00,0x00,0x00,0x1a,0xb9,0x00,0x01,0xff,0xcf,0x40,0x0c,0x14, +0x1a,0x07,0x00,0x25,0x01,0x20,0x17,0x01,0x17,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xc8,0x00,0x00,0x00,0x1a,0xb9,0x00,0x01,0xff,0xce,0x40,0x0c,0x10,0x16,0x05,0x00,0x25,0x01,0x20,0x13,0x01,0x13,0x17,0x26,0x00, +0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xff,0x1c,0x04,0xa2,0x05,0x9a,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x4f,0xfa,0x5a,0x00,0x1a,0xb9,0x00,0x01,0xff,0xdc,0x40,0x0c,0x13,0x14,0x07,0x00,0x25,0x01,0x20,0x13,0x01,0x13,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xff,0x1c, +0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x00,0xfa,0x5a,0x00,0x1a,0xb9,0x00,0x01,0xff,0xed,0x40,0x0c,0x0f,0x10,0x05,0x00,0x25,0x01,0x20,0x0f,0x01,0x0f,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07, +0x02,0x45,0x00,0xcd,0x00,0x00,0x00,0x1a,0xb9,0x00,0x01,0xff,0xf2,0x40,0x0c,0x09,0x0f,0x01,0x00,0x25,0x01,0x20,0x0c,0x01,0x0c,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x95,0xfe,0xc6,0x01,0x5b,0x05,0xec,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x06,0x02,0x45,0xa3,0x00,0x00,0x17,0x40,0x0e,0x01,0x00,0x07,0x0d, +0x01,0x00,0x25,0x01,0x20,0x0a,0x01,0x0a,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x03,0xa4,0x06,0x8c,0x02,0x26,0x00,0x2f,0x00,0x00,0x00,0x27,0x00,0xd9,0x00,0xcf,0x01,0x5d,0x01,0x07,0x02,0x45,0x00,0xcd,0x00,0x00,0x00,0x2c,0xb9,0x00,0x02,0xff,0xf2,0xb5,0x0d,0x13,0x01,0x00,0x25,0x01, +0xb8,0xff,0xdb,0x40,0x10,0x07,0x06,0x02,0x00,0x25,0x02,0x20,0x10,0x01,0x10,0x14,0x26,0x01,0x07,0x05,0x26,0x00,0x2b,0x35,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x2b,0x35,0xff,0xff,0xff,0xfa,0xfe,0xc6,0x01,0xf6,0x06,0x8c,0x02,0x26,0x00,0x4f,0x00,0x00,0x00,0x27,0x00,0xd9,0xff,0xbc,0x01,0x5d,0x01,0x06,0x02,0x45,0xa2,0x00,0x00,0x29, +0xb9,0x00,0x02,0xff,0xff,0x40,0x17,0x0b,0x11,0x01,0x00,0x3e,0x01,0x00,0x05,0x04,0x01,0x00,0x3e,0x02,0x20,0x0e,0x01,0x0e,0x17,0x26,0x01,0x05,0x02,0x26,0x00,0x2b,0x35,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xff,0x1c,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xfe, +0xfa,0x5a,0x00,0x17,0x40,0x0e,0x01,0x0a,0x08,0x09,0x01,0x00,0x25,0x01,0x20,0x08,0x01,0x08,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xfc,0xff,0x1c,0x01,0xf8,0x05,0xec,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x00,0xd9,0xff,0xbe,0xfa,0x5a,0x00,0x17,0x40,0x0e,0x01,0x00,0x06,0x07,0x01,0x00,0x25,0x01, +0x20,0x06,0x01,0x06,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x3d,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xbb,0xf9,0x7b,0x00,0x13,0x40,0x0b,0x01,0x00,0x0a,0x06,0x01,0x00,0x25,0x01,0x0b,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xdf, +0xfe,0x3e,0x02,0x13,0x05,0xec,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x00,0xd7,0xff,0x83,0xf9,0x7c,0x00,0x13,0x40,0x0b,0x01,0x00,0x08,0x04,0x01,0x00,0x25,0x01,0x09,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x06,0x72,0x07,0x67,0x02,0x26,0x00,0x30,0x00,0x00,0x00,0x07,0x00,0x8e,0x02,0x48, +0x01,0x5d,0xff,0xff,0x00,0xa6,0x00,0x00,0x06,0x54,0x06,0x0a,0x02,0x26,0x00,0x50,0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x32,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x22,0x20,0x13,0x1f,0x25,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x06,0x72,0x06,0xe2,0x02,0x26,0x00,0x30,0x00,0x00, +0x00,0x07,0x00,0xdb,0x02,0x78,0x01,0x5d,0xff,0xff,0x00,0xa6,0x00,0x00,0x06,0x54,0x05,0x85,0x02,0x26,0x00,0x50,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0xac,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfd,0x40,0x09,0x23,0x29,0x13,0x1f,0x25,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x06,0x72, +0x05,0x9a,0x02,0x26,0x00,0x30,0x00,0x00,0x00,0x07,0x02,0x45,0x01,0xf2,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x06,0x54,0x04,0x18,0x02,0x26,0x00,0x50,0x00,0x00,0x01,0x07,0x02,0x45,0x02,0x27,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x23,0x29,0x12,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x06,0xe3, +0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x27,0x01,0x5e,0x00,0x16,0xb9,0x00,0x01,0xff,0xf7,0x40,0x09,0x17,0x1d,0x0a,0x13,0x25,0x01,0x14,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0x85,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x8a,0x00,0x00,0x00,0x13, +0x40,0x0b,0x01,0x09,0x16,0x1c,0x0a,0x12,0x25,0x01,0x13,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x05,0x40,0x05,0x9a,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0xa0,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xf7,0xb4,0x17,0x1d,0x09,0x00,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6, +0xfe,0xc6,0x03,0xf8,0x04,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x04,0x00,0x00,0x00,0x0b,0xb6,0x01,0x0a,0x16,0x1c,0x0a,0x12,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xff,0x1c,0x05,0x40,0x05,0x9a,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0xbf,0xfa,0x5a,0x00,0x1e,0xb9,0x00,0x01,0xff, +0xfd,0xb6,0x16,0x17,0x0a,0x13,0x25,0x01,0x16,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x16,0x14,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xff,0x1c,0x03,0xf8,0x04,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x21,0xfa,0x5a,0x00,0x1c,0x40,0x09,0x01,0x0e,0x15,0x16,0x0a,0x12,0x25,0x01,0x15,0xb8, +0xff,0xc0,0xb5,0x09,0x0b,0x36,0x15,0x17,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0x3c,0x05,0x40,0x05,0x9a,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x91,0xf9,0x7a,0x00,0x13,0x40,0x0b,0x01,0x09,0x18,0x14,0x0a,0x13,0x25,0x01,0x19,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0xa6,0xfe,0x3c,0x03,0xf8,0x04,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xe2,0xf9,0x7a,0x00,0x13,0x40,0x0b,0x01,0x09,0x17,0x13,0x0a,0x12,0x25,0x01,0x18,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x08,0x08,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0xd7, +0x01,0x1e,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x03,0x26,0x1c,0x03,0x09,0x25,0x03,0x02,0x26,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0xae,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x02,0xd8,0x6d,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x26,0x1c,0x03,0x09,0x25, +0x03,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x08,0x02,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0xd9,0x01,0x1b,0x00,0x00,0x00,0x1b,0x40,0x0f,0x04,0x03,0x02,0x00,0x3a,0x30,0x03,0x09,0x25,0x04,0x03,0x02,0x3a,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b, +0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0xa8,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x02,0xda,0x73,0x00,0x00,0x1b,0x40,0x0f,0x04,0x03,0x02,0x04,0x3a,0x30,0x03,0x09,0x25,0x04,0x03,0x02,0x3a,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa, +0x07,0xcf,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0xd1,0x01,0xca,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1d,0x1c,0x03,0x09,0x25,0x03,0x02,0x1d,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x72,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0xd2,0x01,0x1c, +0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1d,0x1f,0x03,0x09,0x25,0x03,0x02,0x1d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0xcf,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0xd3,0x01,0xca,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1c,0x1f,0x03,0x09,0x25, +0x03,0x02,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x72,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0xd4,0x01,0x13,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf7,0x40,0x0a,0x1d,0x1f,0x03,0x09,0x25,0x03,0x02,0x1f,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, +0x35,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x29,0x07,0x67,0x02,0x26,0x00,0x33,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xe2,0x01,0x5d,0x00,0x16,0xb9,0x00,0x02,0xff,0xb9,0x40,0x09,0x15,0x13,0x03,0x07,0x25,0x02,0x15,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0x29,0x04,0x54,0x06,0x0a,0x02,0x26,0x00,0x53, +0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x1b,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe7,0x40,0x09,0x20,0x1e,0x04,0x0c,0x25,0x02,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x29,0x06,0xe2,0x02,0x26,0x00,0x33,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x5c,0x01,0x5d,0x00,0x16,0xb9,0x00,0x02,0xff, +0xb8,0x40,0x09,0x16,0x1c,0x03,0x07,0x25,0x02,0x13,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0x29,0x04,0x54,0x05,0x85,0x02,0x26,0x00,0x53,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x9f,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xf0,0x40,0x09,0x21,0x27,0x04,0x0c,0x25,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01, +0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xc0,0x06,0xe2,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x87,0x01,0x5d,0x00,0x08,0xb3,0x02,0x28,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0xbc,0x05,0x85,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0xb6,0x00,0x00,0x00,0x16,0xb9,0x00, +0x01,0xff,0xd3,0x40,0x09,0x14,0x1a,0x08,0x10,0x25,0x01,0x11,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x04,0xc0,0x05,0x9a,0x02,0x26,0x00,0x35,0x00,0x00,0x00,0x07,0x02,0x45,0x01,0x33,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x02,0xbc,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x00,0x06,0x02,0x45, +0x5a,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x04,0xc0,0x06,0x8c,0x02,0x26,0x00,0x35,0x00,0x00,0x00,0x27,0x00,0xd9,0x01,0x23,0x01,0x5d,0x01,0x07,0x02,0x45,0x01,0x33,0x00,0x00,0x00,0x08,0xb3,0x02,0x29,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x02,0xbc,0x05,0x2f,0x02,0x26,0x00,0x55,0x00,0x00,0x00,0x26,0x00,0xd9, +0x6c,0x00,0x01,0x06,0x02,0x45,0x5a,0x00,0x00,0x22,0xb9,0x00,0x02,0xff,0xfe,0xb5,0x18,0x1e,0x08,0x10,0x3e,0x01,0xb8,0xff,0xf7,0x40,0x09,0x12,0x11,0x08,0x10,0x3e,0x01,0x12,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x2b,0x35,0xff,0xff,0x00,0xbc,0xff,0x1b,0x04,0xc0,0x05,0x9a,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x00,0xd9, +0x01,0x5c,0xfa,0x59,0x00,0x11,0xb1,0x02,0x2a,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x2a,0x14,0x26,0x00,0x2b,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0xff,0x1d,0x02,0xc7,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0x8d,0xfa,0x5b,0x00,0x1c,0x40,0x09,0x01,0x18,0x13,0x14,0x08,0x10,0x25,0x01,0x13,0xb8,0xff,0xc0, +0xb5,0x09,0x0b,0x36,0x13,0x17,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x06,0xe2,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x83,0x01,0x5d,0x00,0x08,0xb3,0x01,0x36,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x05,0x85,0x02,0x26,0x00,0x56,0x00,0x00, +0x01,0x07,0x00,0xdb,0x01,0x05,0x00,0x00,0x00,0x08,0xb3,0x01,0x2f,0x11,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x79,0xfe,0xc6,0x03,0xde,0x05,0xb2,0x02,0x26,0x00,0x36,0x00,0x00,0x00,0x07,0x02,0x45,0x00,0xd3,0x00,0x00,0xff,0xff,0x00,0x68,0xfe,0xc6,0x03,0x0f,0x04,0x18,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x06,0x02,0x45,0x72,0x00, +0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x07,0x6a,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x02,0xdb,0x01,0x5a,0x00,0x00,0x00,0x0a,0xb4,0x02,0x01,0x42,0x05,0x26,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x06,0x0e,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x07,0x02,0xdc,0x00,0xdb,0x00,0x00,0x00,0x0a,0xb4,0x02, +0x01,0x3e,0x11,0x26,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x07,0xd7,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x02,0xdd,0x01,0x16,0x00,0x00,0x00,0x0a,0xb4,0x02,0x01,0x44,0x05,0x26,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x06,0x7b,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x07,0x02,0xde, +0x00,0x8c,0x00,0x00,0x00,0x0a,0xb4,0x02,0x01,0x3d,0x11,0x26,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x79,0xfe,0xc6,0x03,0xde,0x06,0xe2,0x02,0x26,0x00,0x36,0x00,0x00,0x00,0x27,0x00,0xdb,0x01,0x93,0x01,0x5d,0x01,0x07,0x02,0x45,0x01,0x0b,0x00,0x00,0x00,0x08,0xb3,0x01,0x36,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x68,0xfe,0xc6, +0x03,0x0f,0x05,0x85,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x27,0x02,0x45,0x00,0x82,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0xff,0x00,0x00,0x00,0x08,0xb3,0x01,0x3b,0x14,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x29,0x00,0x00,0x04,0x0c,0x06,0xe2,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x4d,0x01,0x5d,0x00,0x13,0x40,0x0b, +0x01,0x00,0x0b,0x11,0x06,0x07,0x25,0x01,0x08,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x2b,0xff,0xea,0x02,0x81,0x06,0x55,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0x5e,0x00,0xd0,0x00,0x19,0xb9,0x00,0x01,0xff,0xd6,0xb6,0x18,0x1e,0x07,0x14,0x25,0x01,0x15,0xb9,0x01,0x2d,0x00,0x0a,0x00,0x10, +0xfe,0x34,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x29,0xfe,0xc6,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xc4,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x0b,0x11,0x06,0x07,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x2b,0xfe,0xc6,0x02,0x81,0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x06,0x02,0x45, +0x13,0x00,0x00,0x0b,0xb6,0x01,0x12,0x18,0x1e,0x07,0x14,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x29,0xff,0x1c,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xe0,0xfa,0x5a,0x00,0x1c,0x40,0x09,0x01,0x00,0x0a,0x0b,0x06,0x07,0x25,0x01,0x0a,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x0a,0x14,0x26,0x00, +0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x2b,0xff,0x1b,0x02,0x95,0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0x5b,0xfa,0x59,0x00,0x1c,0x40,0x09,0x01,0x41,0x17,0x18,0x07,0x14,0x25,0x01,0x17,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x17,0x17,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x29, +0xfe,0x3d,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xa7,0xf9,0x7b,0x00,0x13,0x40,0x0b,0x01,0x03,0x0c,0x08,0x06,0x07,0x25,0x01,0x0d,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x2b,0xfe,0x3e,0x02,0x86,0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x00,0xd7,0xff,0xf6, +0xf9,0x7c,0x00,0x13,0x40,0x0b,0x01,0x16,0x19,0x15,0x07,0x14,0x25,0x01,0x1a,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xfe,0xc3,0x04,0xd5,0x05,0x9a,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x17,0xfa,0x01,0x00,0x22,0xb1,0x02,0x01,0xb8,0xff,0xf8,0xb7,0x1d,0x17,0x05,0x0d,0x25,0x02,0x01, +0x20,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x20,0x14,0x26,0x00,0x2b,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x90,0xfe,0xc4,0x03,0xe2,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x7f,0xfa,0x02,0x00,0x22,0xb1,0x02,0x01,0xb8,0xff,0xe6,0xb7,0x21,0x1b,0x08,0x11,0x25,0x02,0x01,0x24,0xb8,0xff,0xc0, +0xb5,0x09,0x0b,0x36,0x24,0x17,0x26,0x00,0x2b,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xaa,0xfe,0x9e,0x04,0xd5,0x05,0x9a,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x4c,0xf9,0xec,0x00,0x16,0xb9,0x00,0x01,0xff,0xf0,0x40,0x09,0x18,0x0e,0x05,0x0d,0x25,0x01,0x21,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0x90,0xfe,0x9e,0x03,0xe2,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xd3,0xf9,0xec,0x00,0x16,0xb9,0x00,0x01,0xff,0xfd,0x40,0x09,0x1c,0x12,0x08,0x11,0x25,0x01,0x25,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xfe,0x3d,0x04,0xd5,0x05,0x9a,0x02,0x26,0x00,0x38,0x00,0x00, +0x01,0x07,0x00,0xd7,0x01,0x42,0xf9,0x7b,0x00,0x16,0xb9,0x00,0x01,0xff,0xf9,0x40,0x09,0x12,0x0e,0x05,0x0d,0x25,0x01,0x13,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x90,0xfe,0x3d,0x03,0xe2,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xbb,0xf9,0x7b,0x00,0x16,0xb9,0x00,0x01,0xff,0xf8,0x40, +0x09,0x16,0x12,0x08,0x11,0x25,0x01,0x17,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x08,0x08,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x02,0xd7,0x00,0xdc,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x06,0x1c,0x12,0x05,0x0d,0x25,0x02,0x01,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35, +0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0xae,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x02,0xd8,0x59,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x09,0x20,0x16,0x08,0x11,0x25,0x02,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x9e,0x02,0x26,0x00,0x38, +0x00,0x00,0x01,0x07,0x02,0xdf,0x01,0x8c,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x04,0x1d,0x17,0x05,0x0d,0x25,0x03,0x02,0x01,0x27,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x42,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x02,0xe0,0x00,0xff,0x00,0x00, +0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xfd,0x40,0x0b,0x21,0x1b,0x08,0x11,0x25,0x03,0x02,0x01,0x2b,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0xe6,0x07,0x0f,0x02,0x26,0x00,0x39,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x1d,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x04,0x16,0x0c, +0x03,0x00,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0x00,0x00,0x03,0xcb,0x05,0xb2,0x02,0x26,0x00,0x59,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0x8c,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x03,0x16,0x0c,0x03,0x00,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12, +0xfe,0xc6,0x04,0xe6,0x05,0x9a,0x02,0x26,0x00,0x39,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x29,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x0f,0x15,0x03,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0xc6,0x03,0xcb,0x04,0x00,0x02,0x26,0x00,0x59,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0x92,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff, +0xfb,0xb4,0x0f,0x15,0x03,0x00,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x60,0x06,0xe2,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0xfd,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x0e,0x1f,0x25,0x0b,0x00,0x25,0x01,0x1c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0, +0x05,0x85,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x24,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x0e,0x1f,0x25,0x0b,0x00,0x25,0x01,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x1a,0xfe,0xc6,0x07,0x60,0x05,0x9a,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x02,0x45,0x02,0x75,0x00,0x00,0x00,0x0b, +0xb6,0x01,0x0d,0x1f,0x25,0x0b,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x18,0xfe,0xc6,0x05,0xb0,0x04,0x00,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x95,0x00,0x00,0x00,0x0b,0xb6,0x01,0x06,0x1f,0x25,0x0b,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x04,0x9a,0x06,0xe2,0x02,0x26,0x00,0x3b, +0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x93,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x07,0x19,0x1f,0x09,0x00,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x03,0x92,0x05,0x85,0x02,0x26,0x00,0x5b,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x0e,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x06,0x17,0x1d, +0x0b,0x00,0x25,0x01,0x14,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x04,0x9a,0x06,0xe4,0x02,0x26,0x00,0x3b,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xcd,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x13,0x25,0x1f,0x09,0x00,0x25,0x02,0x01,0x22,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00, +0xff,0xff,0x00,0x1a,0x00,0x00,0x03,0x92,0x05,0x87,0x02,0x26,0x00,0x5b,0x00,0x00,0x01,0x06,0x00,0x8f,0x43,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x0d,0x23,0x1d,0x0b,0x00,0x25,0x02,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x06,0xe2,0x02,0x26,0x00,0x3c,0x00,0x00, +0x01,0x07,0x00,0xdb,0x01,0x67,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x11,0x17,0x05,0x00,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0x85,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x1f,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40, +0x09,0x18,0x1e,0x0c,0x00,0x25,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x07,0x6b,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xdb,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x0f,0x0e,0x0a,0x05,0x09,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x21,0x00,0x00,0x03,0x70,0x06,0x0e,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x06,0x00,0xd7,0x6f,0x00,0x00,0x13,0x40,0x0b,0x01,0x1d,0x0e,0x0a,0x05,0x09,0x25,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x21,0xfe,0xc6,0x04,0x64,0x05,0x9a,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xfd, +0x00,0x00,0x00,0x0b,0xb6,0x01,0x10,0x0d,0x13,0x05,0x09,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x21,0xfe,0xc6,0x03,0x70,0x04,0x00,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0x87,0x00,0x00,0x00,0x0b,0xb6,0x01,0x14,0x0d,0x13,0x05,0x09,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x21,0xff,0x1c,0x04,0x64,0x05,0x9a, +0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x0c,0xfa,0x5a,0x00,0x1c,0x40,0x09,0x01,0x06,0x0c,0x0d,0x05,0x09,0x25,0x01,0x0c,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x0c,0x14,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x21,0xff,0x1b,0x03,0x70,0x04,0x00,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x00,0xd9, +0x00,0x9c,0xfa,0x59,0x00,0x1c,0x40,0x09,0x01,0x10,0x0c,0x0d,0x05,0x09,0x25,0x01,0x0c,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x0c,0x17,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xff,0x1c,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x1c,0xfa,0x5a,0x00,0x1c,0x40,0x09,0x01,0x09, +0x14,0x15,0x0a,0x11,0x25,0x01,0x14,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x14,0x17,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x2b,0xff,0xea,0x02,0x81,0x06,0x57,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0xb8,0x00,0xd0,0x00,0x1b,0x40,0x0b,0x02,0x01,0x00,0x24,0x1e,0x07,0x14,0x25,0x02,0x01,0x15,0xb9, +0x01,0x2d,0x00,0x0a,0x00,0x10,0xfe,0x34,0x34,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x06,0x1c,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07,0x00,0xdc,0x01,0xcc,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x08,0x1f,0x25,0x0b,0x00,0x25,0x02,0x01,0x1c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00, +0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x1c,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xdc,0x00,0xcb,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfa,0x40,0x0a,0x18,0x1e,0x0c,0x00,0x25,0x02,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0x1f,0x02,0x26, +0x00,0x44,0x00,0x00,0x01,0x07,0x06,0x84,0x00,0xc9,0xff,0xf0,0x00,0x13,0x40,0x0b,0x02,0x30,0x26,0x29,0x08,0x14,0x25,0x02,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x4e,0x00,0x00,0x02,0x62,0x06,0xe2,0x02,0x26,0x01,0x84,0x00,0x00,0x01,0x07,0x00,0xdb,0xff,0xe2,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff, +0x2c,0x40,0x09,0x10,0x16,0x07,0x0c,0x25,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x23,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x29,0x29,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x2d,0x33,0x0a,0x13,0x25,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x23,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x61,0xe8,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xb3,0x40,0x09,0x2b,0x31,0x0a,0x13,0x25,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x36, +0x0c,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xde,0x40,0x0a,0x2d,0x34,0x0a,0x13,0x25,0x03,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x43,0xf2,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xc3,0x40,0x0a,0x2a,0x34, +0x0a,0x13,0x25,0x03,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x37,0x37,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x09,0x2d,0x34,0x0a,0x13,0x25,0x03,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00, +0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x44,0x27,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf9,0x40,0x0a,0x2a,0x34,0x0a,0x13,0x25,0x03,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x83,0x02,0x26,0x01,0x2f, +0x00,0x00,0x01,0x06,0x04,0x38,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xd1,0x40,0x0a,0x2d,0x27,0x0a,0x13,0x25,0x03,0x02,0x33,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x83,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x45,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8, +0xff,0xd1,0x40,0x0a,0x2d,0x27,0x0a,0x13,0x25,0x03,0x02,0x36,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0xa0,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x27,0xfe,0x3f,0xff,0x7d,0x00,0x16,0xb4,0x02,0x19,0x04,0x19,0x02,0xb8,0xfe,0x04,0xb4,0x11,0x1c,0x05,0x00,0x25,0x01, +0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0xa0,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x61,0xfe,0x44,0xff,0x7d,0x00,0x16,0xb4,0x02,0x17,0x04,0x17,0x02,0xb8,0xfe,0x08,0xb4,0x14,0x10,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x05,0xd7,0x05,0x9e, +0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x72,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x19,0x04,0x19,0x03,0x02,0xb8,0xfe,0xd7,0xb4,0x1d,0x1d,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x05,0xd7,0x05,0x9e,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07, +0x04,0x43,0xfe,0x7a,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x15,0x04,0x15,0x03,0x02,0xb8,0xfe,0xe5,0xb4,0x1d,0x1d,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x05,0xd7,0x05,0x9e,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7a,0xff,0x98,0x00,0x1a,0xb6,0x03, +0x02,0x19,0x04,0x19,0x03,0x02,0xb8,0xfe,0xe7,0xb4,0x1d,0x1d,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x05,0xd7,0x05,0x9e,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x86,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x15,0x04,0x15,0x03,0x02,0xb8,0xff,0x00,0xb4, +0x1d,0x1d,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x05,0xd7,0x05,0xb2,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x89,0xff,0x2f,0x00,0x1a,0xb6,0x03,0x02,0x19,0x04,0x19,0x03,0x02,0xb8,0xff,0x05,0xb4,0x10,0x10,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00, +0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x05,0xd7,0x05,0xb2,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x89,0xff,0x2f,0x00,0x1a,0xb6,0x03,0x02,0x19,0x04,0x19,0x03,0x02,0xb8,0xfd,0x88,0xb4,0x16,0x10,0x05,0x00,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x52,0xff,0xe7, +0x03,0x3b,0x06,0x23,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x27,0xb2,0x00,0x00,0x13,0x40,0x0b,0x01,0x4d,0x2c,0x32,0x0c,0x11,0x25,0x01,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x23,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x61,0x82,0x00,0x00,0x13,0x40,0x0b, +0x01,0x11,0x2a,0x30,0x0c,0x11,0x25,0x01,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x06,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x36,0x8b,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x21,0x2c,0x33,0x0c,0x11,0x25,0x02,0x01,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35, +0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x06,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x07,0x04,0x43,0xff,0x71,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x06,0x29,0x33,0x0c,0x11,0x25,0x02,0x01,0x27,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x06,0x02,0x26, +0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x37,0xc4,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x5a,0x2c,0x33,0x0c,0x11,0x25,0x02,0x01,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x06,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x44,0xa8,0x00,0x00,0x17,0x40,0x0d,0x02,0x01, +0x3e,0x29,0x33,0x0c,0x11,0x25,0x02,0x01,0x27,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xbd,0x00,0x00,0x04,0x35,0x05,0xa0,0x00,0x27,0x00,0x28,0x00,0x81,0x00,0x00,0x01,0x07,0x04,0x27,0xfd,0xd9,0xff,0x7d,0x00,0x16,0xb4,0x01,0x15,0x04,0x15,0x01,0xb8,0xff,0x6b,0xb4,0x18,0x18,0x02,0x02,0x25,0x01, +0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x04,0x35,0x05,0xa0,0x00,0x27,0x00,0x28,0x00,0x81,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x01,0x13,0x04,0x13,0x01,0xb8,0xfd,0x7b,0xb4,0x10,0x0c,0x02,0x0b,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x05,0x5a, +0x05,0x9e,0x00,0x27,0x00,0x28,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x72,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xff,0x76,0xb4,0x19,0x19,0x02,0x02,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xc0,0x00,0x00,0x05,0x5a,0x05,0x9e,0x00,0x27,0x00,0x28,0x01,0xa6,0x00,0x00, +0x01,0x07,0x04,0x43,0xfe,0x7c,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x11,0x04,0x11,0x02,0x01,0xb8,0xff,0x86,0xb4,0x19,0x19,0x02,0x02,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x05,0x5a,0x05,0x9e,0x00,0x27,0x00,0x28,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7b,0xff,0x98,0x00,0x1a, +0xb6,0x02,0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xfc,0xf5,0xb4,0x0d,0x19,0x02,0x0b,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbf,0x00,0x00,0x05,0x5a,0x05,0x9e,0x00,0x27,0x00,0x28,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x87,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x11,0x04,0x11,0x02,0x01,0xb8,0xff, +0xa0,0xb4,0x19,0x19,0x02,0x02,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x23,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x27,0x1f,0x00,0x00,0x13,0x40,0x0b,0x01,0x3b,0x16,0x21,0x0c,0x14,0x25,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x82, +0xfe,0x6c,0x03,0xf8,0x06,0x23,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x61,0xdc,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf7,0x40,0x09,0x19,0x15,0x0c,0x14,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x36,0xdd,0x00, +0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf8,0x40,0x0a,0x16,0x22,0x0c,0x14,0x25,0x02,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x43,0xca,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xe5,0x40,0x0a,0x18,0x22,0x0c,0x14, +0x25,0x02,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x37,0x29,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x44,0x16,0x22,0x0c,0x14,0x25,0x02,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff, +0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x44,0x08,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x24,0x18,0x22,0x0c,0x14,0x25,0x02,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x83,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06, +0x04,0x38,0xdf,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfa,0x40,0x0a,0x1b,0x15,0x0c,0x14,0x25,0x02,0x01,0x21,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x83,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x45,0xdf,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfa,0x40,0x0a, +0x1b,0x15,0x0c,0x14,0x25,0x02,0x01,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x05,0x73,0x05,0xa0,0x00,0x27,0x00,0x2b,0x00,0x81,0x00,0x00,0x01,0x07,0x04,0x27,0xfd,0xd9,0xff,0x7d,0x00,0x16,0xb4,0x01,0x15,0x04,0x15,0x01,0xb8,0xff,0x6b,0xb4,0x18,0x18,0x06,0x06,0x25,0x01,0x2b,0x35, +0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x05,0x73,0x05,0xa0,0x00,0x27,0x00,0x2b,0x00,0x81,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x01,0x13,0x04,0x13,0x01,0xb8,0xff,0x6e,0xb4,0x0c,0x0c,0x06,0x06,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x06,0x98,0x05,0x9e, +0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x72,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xff,0x76,0xb4,0x19,0x19,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xc0,0x00,0x00,0x06,0x98,0x05,0x9e,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07, +0x04,0x43,0xfe,0x7c,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x11,0x04,0x11,0x02,0x01,0xb8,0xff,0x86,0xb4,0x19,0x19,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x06,0x98,0x05,0x9e,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7b,0xff,0x98,0x00,0x1a,0xb6,0x02, +0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xfc,0x56,0xb4,0x0d,0x19,0x06,0x0b,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbf,0x00,0x00,0x06,0x98,0x05,0x9e,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x87,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x11,0x04,0x11,0x02,0x01,0xb8,0xff,0xa0,0xb4, +0x19,0x19,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x06,0x98,0x05,0xb2,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x89,0xff,0x2f,0x00,0x1a,0xb6,0x02,0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xfc,0x64,0xb4,0x12,0x0c,0x06,0x0b,0x25,0x01,0x2b,0x35,0x35,0x00, +0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x06,0x98,0x05,0xb2,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x89,0xff,0x2f,0x00,0x1a,0xb6,0x02,0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xfc,0x64,0xb4,0x12,0x0c,0x06,0x0b,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x94,0xff,0xf4, +0x02,0x08,0x06,0x23,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x27,0xfe,0xb0,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xb2,0x40,0x09,0x0d,0x18,0x05,0x0b,0x25,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x6e,0xff,0xf4,0x02,0x08,0x06,0x23,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x61,0xfe,0x8c, +0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0x8d,0x40,0x09,0x10,0x0c,0x05,0x0b,0x25,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xdd,0xff,0xf4,0x02,0x08,0x06,0x06,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x93,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x94,0x40,0x0a,0x0d,0x19,0x05,0x0b, +0x25,0x02,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xb3,0xff,0xf4,0x02,0x08,0x06,0x06,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x6f,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x70,0x40,0x0a,0x0f,0x19,0x05,0x0b,0x25,0x02,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, +0x35,0x35,0xff,0xff,0x00,0x1b,0xff,0xf4,0x02,0x47,0x06,0x06,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0xd9,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xda,0x40,0x0a,0x0d,0x19,0x05,0x0b,0x25,0x02,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xea,0xff,0xf4,0x02,0x2d,0x06,0x06, +0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0xb2,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xb4,0x40,0x0a,0x0f,0x19,0x05,0x0b,0x25,0x02,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xc0,0xff,0xf4,0x02,0x0a,0x06,0x83,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x8d, +0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x8e,0x40,0x0a,0x12,0x0c,0x05,0x0b,0x25,0x02,0x01,0x18,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xc0,0xff,0xf4,0x02,0x0a,0x06,0x83,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x8d,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x8e,0x40,0x0a, +0x12,0x0c,0x05,0x0b,0x25,0x02,0x01,0x1b,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x02,0x4a,0x05,0xa0,0x00,0x27,0x00,0x2c,0x00,0xe6,0x00,0x00,0x01,0x07,0x04,0x27,0xfd,0xd9,0xff,0x7d,0x00,0x07,0xb2,0x01,0x0d,0x03,0x00,0x3f,0x35,0x00,0xff,0xff,0xff,0xbe,0x00,0x00,0x02,0x48,0x05,0xa0, +0x00,0x27,0x00,0x2c,0x00,0xe4,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x07,0xb2,0x01,0x0b,0x04,0x00,0x3f,0x35,0x00,0xff,0xff,0xff,0xbd,0x00,0x00,0x03,0x3a,0x05,0xa0,0x00,0x27,0x00,0x2c,0x01,0xd6,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x73,0xff,0x9a,0x00,0x09,0xb3,0x02,0x01,0x14,0x03,0x00,0x3f,0x35,0x35,0x00, +0xff,0xff,0xff,0xc0,0x00,0x00,0x03,0x3a,0x05,0xa0,0x00,0x27,0x00,0x2c,0x01,0xd6,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x7c,0xff,0x9a,0x00,0x09,0xb3,0x02,0x01,0x14,0x03,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0x00,0x00,0x03,0x6e,0x05,0xa0,0x00,0x27,0x00,0x2c,0x02,0x0a,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7a,0xff,0x9a, +0x00,0x09,0xb3,0x02,0x01,0x14,0x03,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbf,0x00,0x00,0x03,0x77,0x05,0xa0,0x00,0x27,0x00,0x2c,0x02,0x13,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x87,0xff,0x9a,0x00,0x09,0xb3,0x02,0x01,0x14,0x03,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbd,0x00,0x00,0x03,0x6e,0x05,0xb2,0x00,0x27,0x00,0x2c, +0x02,0x0a,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x8a,0xff,0x2f,0x00,0x09,0xb3,0x02,0x01,0x0d,0x04,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbd,0x00,0x00,0x03,0x6e,0x05,0xb2,0x00,0x27,0x00,0x2c,0x02,0x0a,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x8a,0xff,0x2f,0x00,0x09,0xb3,0x02,0x01,0x0d,0x04,0x00,0x3f,0x35,0x35,0x00,0xff,0xff, +0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x23,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x27,0x0a,0x00,0x00,0x13,0x40,0x0b,0x02,0x0b,0x19,0x24,0x03,0x09,0x25,0x02,0x18,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x23,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x61,0xd4,0x00, +0x00,0x16,0xb9,0x00,0x02,0xff,0xd4,0x40,0x09,0x1c,0x18,0x03,0x09,0x25,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x06,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x36,0xe9,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xe9,0x40,0x0a,0x19,0x25,0x03,0x09,0x25,0x03,0x02,0x18, +0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x06,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x43,0xb9,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xb9,0x40,0x0a,0x1b,0x25,0x03,0x09,0x25,0x03,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60, +0xff,0xe8,0x04,0x50,0x06,0x06,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x37,0x21,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x21,0x19,0x25,0x03,0x09,0x25,0x03,0x02,0x18,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x06,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x44, +0xfc,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfd,0x40,0x0a,0x1b,0x25,0x03,0x09,0x25,0x03,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xbd,0xff,0xe8,0x06,0x10,0x05,0xb2,0x00,0x26,0x00,0x32,0x66,0x00,0x01,0x07,0x04,0x27,0xfd,0xd9,0xff,0x7d,0x00,0x16,0xb4,0x02,0x21,0x04,0x21,0x02,0xb8,0xfc, +0xc8,0xb4,0x19,0x24,0x03,0x09,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbe,0xff,0xe8,0x06,0x10,0x05,0xb2,0x00,0x26,0x00,0x32,0x66,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x02,0x1f,0x04,0x1f,0x02,0xb8,0xfc,0xca,0xb4,0x1c,0x18,0x03,0x09,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff, +0xff,0xbc,0xff,0xe8,0x07,0x42,0x05,0xb2,0x00,0x27,0x00,0x32,0x01,0x98,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x72,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x21,0x04,0x21,0x03,0x02,0xb8,0xff,0xe2,0xb4,0x25,0x25,0x03,0x03,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbe,0xff,0xe8,0x07,0x42,0x05,0xb2,0x00,0x27, +0x00,0x32,0x01,0x98,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x7a,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x1d,0x04,0x1d,0x03,0x02,0xb8,0xff,0xf0,0xb4,0x25,0x25,0x03,0x03,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0xff,0xe8,0x07,0x42,0x05,0xb2,0x00,0x27,0x00,0x32,0x01,0x98,0x00,0x00,0x01,0x07,0x04,0x37, +0xfe,0x7a,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x21,0x04,0x21,0x03,0x02,0xb8,0xfc,0x36,0xb4,0x19,0x25,0x03,0x09,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbe,0xff,0xe8,0x07,0x42,0x05,0xb2,0x00,0x27,0x00,0x32,0x01,0x98,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x86,0xff,0x98,0x00,0x18,0x40,0x0d,0x03,0x02, +0x1d,0x04,0x1d,0x03,0x02,0x0b,0x25,0x25,0x03,0x03,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x23,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x27,0xed,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xed,0x40,0x09,0x23,0x29,0x00,0x16,0x25,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01, +0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x23,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x61,0x90,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0x84,0x40,0x09,0x21,0x27,0x00,0x16,0x25,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x06,0x02,0x26,0x01,0xd2,0x00,0x00, +0x01,0x06,0x04,0x36,0xae,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xa9,0x40,0x0a,0x23,0x2a,0x00,0x16,0x25,0x02,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x06,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x43,0xa5,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x9f, +0x40,0x0a,0x20,0x2a,0x00,0x16,0x25,0x02,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x06,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x37,0xee,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xe9,0x40,0x0a,0x23,0x2a,0x00,0x16,0x25,0x02,0x01,0x1d,0x11,0x26,0x00,0x2b, +0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x06,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x44,0xcf,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xca,0x40,0x0a,0x20,0x2a,0x00,0x16,0x25,0x02,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e, +0x06,0x83,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x38,0xb0,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xaa,0x40,0x0a,0x23,0x1d,0x00,0x16,0x25,0x02,0x01,0x29,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x83,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x45,0xaa,0x00, +0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xa4,0x40,0x0a,0x23,0x1d,0x00,0x16,0x25,0x02,0x01,0x2c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x05,0x48,0x05,0xa0,0x00,0x27,0x00,0x3c,0x00,0xe8,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x01,0x15,0x04,0x15,0x01,0xb8,0xfd, +0x13,0xb4,0x12,0x0e,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xc0,0x00,0x00,0x06,0x7d,0x05,0x9e,0x00,0x27,0x00,0x3c,0x02,0x1d,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x7c,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x13,0x04,0x13,0x02,0x01,0xb8,0xff,0xb9,0xb4,0x1b,0x1b,0x05,0x05,0x25,0x01,0x2b,0x35,0x35,0x00, +0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbf,0x00,0x00,0x06,0x7d,0x05,0x9e,0x00,0x27,0x00,0x3c,0x02,0x1d,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x87,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x13,0x04,0x13,0x02,0x01,0xb8,0xff,0xd3,0xb4,0x1b,0x1b,0x05,0x05,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00, +0x06,0x7d,0x05,0xb2,0x00,0x27,0x00,0x3c,0x02,0x1d,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x89,0xff,0x2f,0x00,0x1a,0xb6,0x02,0x01,0x17,0x04,0x17,0x02,0x01,0xb8,0xfc,0x8b,0xb4,0x14,0x0e,0x05,0x00,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x23,0x02,0x26,0x01,0xd5,0x00,0x01, +0x01,0x07,0x04,0x27,0x00,0xf7,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x1a,0x28,0x2e,0x06,0x1d,0x25,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x23,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x61,0x00,0xca,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xe1,0x40,0x09,0x26, +0x2c,0x06,0x1d,0x25,0x01,0x23,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x36,0x00,0xcc,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xea,0x40,0x0a,0x28,0x2f,0x06,0x1d,0x25,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, +0x35,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x43,0x00,0xb3,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xd0,0x40,0x0a,0x25,0x2f,0x06,0x1d,0x25,0x02,0x01,0x23,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x06, +0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x37,0x01,0x27,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x45,0x28,0x2f,0x06,0x1d,0x25,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x44,0x00,0xf9,0x00,0x00, +0x00,0x17,0x40,0x0d,0x02,0x01,0x17,0x25,0x2f,0x06,0x1d,0x25,0x02,0x01,0x23,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x83,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x38,0x00,0xd5,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf2,0x40,0x0a,0x28,0x22,0x06,0x1d, +0x25,0x02,0x01,0x2e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x83,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x45,0x00,0xd5,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf2,0x40,0x0a,0x28,0x22,0x06,0x1d,0x25,0x02,0x01,0x31,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, +0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x06,0x3c,0x05,0xb2,0x00,0x27,0x00,0x9f,0x00,0x93,0x00,0x00,0x01,0x07,0x04,0x27,0xfd,0xd9,0xff,0x7d,0x00,0x16,0xb4,0x01,0x25,0x04,0x25,0x01,0xb8,0xff,0xb1,0xb4,0x28,0x28,0x12,0x12,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x06,0x3c,0x05,0xb2,0x00,0x27, +0x00,0x9f,0x00,0x93,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x01,0x23,0x04,0x23,0x01,0xb8,0xff,0xb4,0xb4,0x1c,0x1c,0x12,0x12,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x72,0xff,0x98, +0x00,0x1a,0xb6,0x02,0x01,0x25,0x04,0x25,0x02,0x01,0xb8,0xff,0xd7,0xb4,0x29,0x29,0x12,0x12,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xc0,0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x7c,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x21,0x04,0x21,0x02,0x01, +0xb8,0xff,0xe7,0xb4,0x29,0x29,0x12,0x12,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7b,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x25,0x04,0x25,0x02,0x01,0xb8,0xff,0xe8,0xb4,0x29,0x29,0x12,0x12,0x25,0x01, +0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbf,0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x87,0xff,0x98,0x00,0x18,0x40,0x0d,0x02,0x01,0x21,0x04,0x21,0x02,0x01,0x00,0x29,0x29,0x12,0x12,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc, +0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x89,0xff,0x2f,0x00,0x18,0x40,0x0d,0x02,0x01,0x25,0x04,0x25,0x02,0x01,0x05,0x1c,0x1c,0x12,0x12,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d, +0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x89,0xff,0x2f,0x00,0x18,0x40,0x0d,0x02,0x01,0x25,0x04,0x25,0x02,0x01,0x05,0x1c,0x1c,0x12,0x12,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x00,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x55,0xbe,0x00,0x00,0x16,0xb9,0x00,0x02,0xff, +0x8f,0x40,0x09,0x29,0x27,0x0a,0x13,0x25,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x00,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x60,0x35,0x00,0x00,0x13,0x40,0x0b,0x02,0x06,0x29,0x27,0x0a,0x13,0x25,0x02,0x29,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x00,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x07,0x04,0x55,0xff,0x6c,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x28,0x26,0x0c,0x11,0x25,0x01,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x00,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x60, +0xda,0x00,0x00,0x13,0x40,0x0b,0x01,0x6f,0x28,0x26,0x0c,0x11,0x25,0x01,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x00,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x55,0xbe,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xd9,0x40,0x09,0x17,0x15,0x0c,0x14,0x25,0x01,0x16,0x11,0x26, +0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x00,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x60,0x40,0x00,0x00,0x13,0x40,0x0b,0x01,0x5b,0x17,0x15,0x0c,0x14,0x25,0x01,0x17,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x34,0xff,0xf4,0x02,0x08,0x06,0x00,0x02,0x26,0x01,0xc9, +0x00,0x00,0x01,0x07,0x04,0x55,0xfe,0x63,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0x64,0x40,0x09,0x0e,0x0c,0x05,0x0b,0x25,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xff,0xf4,0x02,0x08,0x06,0x00,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x60,0xfe,0xdd,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff, +0xde,0x40,0x09,0x0e,0x0c,0x05,0x0b,0x25,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x00,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x55,0xd2,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xd2,0x40,0x09,0x1a,0x18,0x03,0x09,0x25,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x00,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x60,0x24,0x00,0x00,0x13,0x40,0x0b,0x02,0x24,0x1a,0x18,0x03,0x09,0x25,0x02,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x00,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x55, +0x8c,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0x86,0x40,0x09,0x1f,0x1d,0x00,0x16,0x25,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x00,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x60,0x02,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x1f,0x1d,0x00,0x16,0x25,0x01,0x1f, +0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x00,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x55,0x00,0xaf,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xcc,0x40,0x09,0x24,0x22,0x06,0x1d,0x25,0x01,0x23,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00, +0x06,0x00,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x60,0x01,0x1f,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x3c,0x24,0x22,0x06,0x1d,0x25,0x01,0x24,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x23,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x27,0x29,0x00,0x01,0x06,0x04,0x28, +0x5c,0x00,0x00,0x1b,0x40,0x12,0x02,0x27,0x11,0x26,0x03,0x25,0x3c,0x36,0x0a,0x00,0x3e,0x02,0x00,0x2d,0x33,0x0a,0x13,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x23,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x61,0xe9,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x1e,0x40,0x0c, +0x02,0x28,0x11,0x26,0x03,0x25,0x3b,0x35,0x0a,0x00,0x3e,0x02,0xb8,0xff,0xb4,0xb4,0x2b,0x31,0x0a,0x13,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x36,0x0c,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x22,0x40,0x0e,0x03,0x02,0x27,0x11, +0x26,0x04,0x25,0x3e,0x38,0x0a,0x00,0x3e,0x03,0x02,0xb8,0xff,0xde,0xb4,0x2d,0x34,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x43,0xf4,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x22,0x40,0x0e,0x03,0x02,0x28,0x11, +0x26,0x04,0x25,0x3e,0x38,0x0a,0x00,0x3e,0x03,0x02,0xb8,0xff,0xc5,0xb4,0x2a,0x34,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x37,0x38,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x1f,0x40,0x14,0x03,0x02,0x27,0x11, +0x26,0x04,0x25,0x3e,0x38,0x0a,0x00,0x3e,0x03,0x02,0x0a,0x2d,0x34,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x44,0x26,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x22,0x40,0x0e,0x03,0x02,0x28,0x11,0x26,0x04, +0x25,0x3e,0x38,0x0a,0x00,0x3e,0x03,0x02,0xb8,0xff,0xf8,0xb4,0x2a,0x34,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x83,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x38,0x00,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x22,0x40,0x0e,0x03,0x02,0x33,0x11,0x26,0x04, +0x25,0x45,0x3f,0x0a,0x00,0x3e,0x03,0x02,0xb8,0xff,0xd1,0xb4,0x2d,0x27,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x83,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x45,0x00,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x22,0x40,0x0e,0x03,0x02,0x36,0x11,0x26,0x04, +0x25,0x45,0x3f,0x0a,0x00,0x3e,0x03,0x02,0xb8,0xff,0xd1,0xb4,0x2d,0x27,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x16,0xfe,0x40,0x05,0x12,0x05,0xa0,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x27,0x04,0x29,0xfe,0x40,0xff,0x7d,0x01,0x07,0x04,0x28,0x00,0xa4,0x00,0x00,0x00,0x1f,0x40,0x0c,0x02,0x19, +0x04,0x19,0x03,0x07,0x25,0x26,0x05,0x00,0x3e,0x02,0xb8,0xfe,0xd3,0xb4,0x1c,0x1c,0x06,0x06,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0x00,0x16,0xfe,0x40,0x05,0x12,0x05,0xa0,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x27,0x04,0x61,0xfe,0x46,0xff,0x7d,0x01,0x07,0x04,0x28,0x00,0xa4,0x00,0x00,0x00,0x1f,0x40,0x0c, +0x02,0x17,0x04,0x17,0x03,0x07,0x24,0x25,0x05,0x00,0x3e,0x02,0xb8,0xfe,0xcc,0xb4,0x1a,0x1a,0x06,0x06,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0xff,0xbd,0xfe,0x40,0x05,0xd7,0x05,0x9d,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x00,0x27,0x04,0x36,0xfe,0x73,0xff,0x97,0x01,0x07,0x04,0x28,0x01,0x75,0x00,0x00, +0x00,0x23,0x40,0x0e,0x03,0x02,0x19,0x04,0x19,0x04,0x13,0x27,0x28,0x05,0x00,0x3e,0x03,0x02,0xb8,0xfe,0xd8,0xb4,0x1d,0x1d,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xc1,0xfe,0x40,0x05,0xd7,0x05,0x9d,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x00,0x27,0x04,0x43,0xfe,0x7d,0xff,0x97, +0x01,0x07,0x04,0x28,0x01,0x84,0x00,0x00,0x00,0x23,0x40,0x0e,0x03,0x02,0x15,0x04,0x15,0x04,0x22,0x27,0x28,0x05,0x00,0x3e,0x03,0x02,0xb8,0xfe,0xe8,0xb4,0x1d,0x1d,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbd,0xfe,0x40,0x05,0xd7,0x05,0x9d,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00, +0x00,0x27,0x04,0x37,0xfe,0x7b,0xff,0x97,0x01,0x07,0x04,0x28,0x01,0x50,0x00,0x00,0x00,0x25,0xb5,0x03,0x02,0x19,0x04,0x19,0x04,0xb8,0xff,0xee,0xb6,0x27,0x28,0x05,0x00,0x3e,0x03,0x02,0xb8,0xfe,0xe8,0xb4,0x1d,0x1d,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbf,0xfe,0x40,0x05,0xd7, +0x05,0x9d,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x00,0x27,0x04,0x44,0xfe,0x87,0xff,0x97,0x01,0x07,0x04,0x28,0x01,0x69,0x00,0x00,0x00,0x23,0x40,0x0e,0x03,0x02,0x15,0x04,0x15,0x04,0x07,0x27,0x28,0x05,0x00,0x3e,0x03,0x02,0xb8,0xff,0x01,0xb4,0x1d,0x1d,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00, +0xff,0xff,0xff,0xbd,0xfe,0x40,0x05,0xd7,0x05,0xb2,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x00,0x27,0x04,0x38,0xfe,0x8a,0xff,0x2f,0x01,0x07,0x04,0x28,0x01,0x64,0x00,0x00,0x00,0x23,0x40,0x0e,0x03,0x02,0x19,0x04,0x19,0x04,0x02,0x2e,0x2f,0x05,0x00,0x3e,0x03,0x02,0xb8,0xff,0x06,0xb4,0x10,0x10,0x06,0x06,0x3e,0x2b,0x35,0x35, +0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x05,0xd7,0x05,0xb1,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x00,0x27,0x04,0x45,0xfe,0x89,0xff,0x2e,0x01,0x07,0x04,0x28,0x01,0x68,0x00,0x00,0x00,0x23,0x40,0x0e,0x03,0x02,0x19,0x04,0x19,0x04,0x06,0x2e,0x2f,0x05,0x00,0x3e,0x03,0x02,0xb8,0xff,0x05,0xb4, +0x10,0x10,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x23,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x27,0x1f,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x1b,0x40,0x12,0x01,0x15,0x11,0x26,0x02,0x01,0x2b,0x2b,0x08,0x08,0x3e,0x01,0x2e,0x1b, +0x21,0x09,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x23,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x61,0xdd,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x1e,0x40,0x0c,0x01,0x16,0x11,0x26,0x02,0x01,0x2a,0x2a,0x08,0x08,0x3e,0x01,0xb8,0xff,0xe0,0xb4,0x19,0x1f, +0x09,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x36,0xde,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x15,0x11,0x26,0x03,0x01,0x2d,0x2d,0x08,0x08,0x3e,0x02,0x01,0xb8,0xff,0xe8,0xb4,0x1b,0x22, +0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x43,0xca,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x16,0x11,0x26,0x03,0x01,0x2d,0x2d,0x08,0x08,0x3e,0x02,0x01,0xb8,0xff,0xd3,0xb4, +0x18,0x22,0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x37,0x27,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x1f,0x40,0x14,0x02,0x01,0x15,0x11,0x26,0x03,0x01,0x2d,0x2d,0x08,0x08,0x3e,0x02,0x01,0x31,0x1b, +0x22,0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x44,0x08,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x1f,0x40,0x14,0x02,0x01,0x16,0x11,0x26,0x03,0x01,0x2d,0x2d,0x08,0x08,0x3e,0x02,0x01,0x12,0x18, +0x22,0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x83,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x38,0xe0,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x21,0x11,0x26,0x03,0x01,0x34,0x34,0x08,0x08,0x3e,0x02,0x01,0xb8,0xff, +0xe9,0xb4,0x1b,0x15,0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x83,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x45,0xdf,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x24,0x11,0x26,0x03,0x01,0x34,0x34,0x08,0x08,0x3e,0x02,0x01, +0xb8,0xff,0xe8,0xb4,0x1b,0x15,0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0xff,0xbc,0xfe,0x40,0x05,0x73,0x05,0xa0,0x00,0x27,0x00,0x2b,0x00,0x81,0x00,0x00,0x00,0x27,0x04,0x27,0xfd,0xd8,0xff,0x7d,0x01,0x07,0x04,0x28,0x01,0x5d,0x00,0x00,0x00,0x21,0xb4,0x01,0x15,0x04,0x15,0x02,0xb8,0xff,0xfc,0xb5, +0x21,0x22,0x05,0x00,0x3e,0x01,0xb8,0xff,0x6a,0xb4,0x18,0x18,0x06,0x06,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0xff,0xbe,0xfe,0x40,0x05,0x73,0x05,0xa0,0x00,0x27,0x00,0x2b,0x00,0x81,0x00,0x00,0x00,0x27,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x01,0x07,0x04,0x28,0x01,0x5f,0x00,0x00,0x00,0x21,0xb4,0x01,0x13,0x04, +0x13,0x02,0xb8,0xff,0xfe,0xb5,0x20,0x21,0x05,0x00,0x3e,0x01,0xb8,0xff,0x61,0xb4,0x16,0x16,0x06,0x06,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x06,0x97,0x05,0x9f,0x00,0x27,0x00,0x2b,0x01,0xa5,0x00,0x00,0x00,0x27,0x04,0x36,0xfe,0x72,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0x84,0x00,0x00, +0x00,0x25,0xb5,0x02,0x01,0x15,0x04,0x15,0x03,0xb8,0xff,0xff,0xb6,0x23,0x24,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0x77,0xb4,0x19,0x19,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbe,0xfe,0x40,0x06,0x96,0x05,0x9f,0x00,0x27,0x00,0x2b,0x01,0xa4,0x00,0x00,0x00,0x27,0x04,0x43,0xfe,0x7a, +0xff,0x99,0x01,0x07,0x04,0x28,0x02,0x83,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x11,0x04,0x11,0x03,0xb8,0xff,0xff,0xb6,0x23,0x24,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0x86,0xb4,0x19,0x19,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x06,0x97,0x05,0x9f,0x00,0x27,0x00,0x2b, +0x01,0xa5,0x00,0x00,0x00,0x27,0x04,0x37,0xfe,0x7a,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0x75,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x15,0x04,0x15,0x03,0xb8,0xff,0xf0,0xb6,0x23,0x24,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0x87,0xb4,0x19,0x19,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbe, +0xfe,0x40,0x06,0x96,0x05,0x9f,0x00,0x27,0x00,0x2b,0x01,0xa4,0x00,0x00,0x00,0x27,0x04,0x44,0xfe,0x86,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0x83,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x11,0x04,0x11,0x03,0xb8,0xff,0xff,0xb6,0x23,0x24,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0xa1,0xb4,0x19,0x19,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35, +0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x06,0x98,0x05,0xb3,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x00,0x27,0x04,0x38,0xfe,0x89,0xff,0x30,0x01,0x07,0x04,0x28,0x02,0x85,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x15,0x04,0x15,0x03,0xb8,0xff,0xff,0xb6,0x2a,0x2b,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0xa4,0xb4, +0x0c,0x0c,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x06,0x98,0x05,0xb3,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x00,0x27,0x04,0x45,0xfe,0x89,0xff,0x30,0x01,0x07,0x04,0x28,0x02,0x85,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x15,0x04,0x15,0x03,0xb8,0xff,0xff,0xb6,0x2a, +0x2b,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0xa4,0xb4,0x0c,0x0c,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x23,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x29,0x00,0xf7,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x1b,0x40,0x12,0x01,0x22, +0x11,0x26,0x02,0x0b,0x37,0x38,0x06,0x1d,0x3e,0x01,0x1a,0x28,0x2e,0x06,0x1d,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x23,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x61,0x00,0xca,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x1e,0x40,0x0c,0x01,0x23,0x11,0x26, +0x02,0x0b,0x36,0x37,0x06,0x1d,0x3e,0x01,0xb8,0xff,0xe1,0xb4,0x26,0x2c,0x06,0x1d,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x36,0x00,0xcc,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x22,0x11, +0x26,0x03,0x0b,0x39,0x3a,0x06,0x1d,0x3e,0x02,0x01,0xb8,0xff,0xea,0xb4,0x28,0x2f,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x43,0x00,0xb3,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x22,0x40,0x0e, +0x02,0x01,0x23,0x11,0x26,0x03,0x0b,0x39,0x3a,0x06,0x1d,0x3e,0x02,0x01,0xb8,0xff,0xd0,0xb4,0x25,0x2f,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x37,0x01,0x27,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00, +0x00,0x1f,0x40,0x14,0x02,0x01,0x22,0x11,0x26,0x03,0x0b,0x39,0x3a,0x06,0x1d,0x3e,0x02,0x01,0x45,0x28,0x2f,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x44,0x00,0xfa,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f, +0x00,0x00,0x00,0x1f,0x40,0x14,0x02,0x01,0x23,0x11,0x26,0x03,0x0b,0x39,0x3a,0x06,0x1d,0x3e,0x02,0x01,0x18,0x25,0x2f,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x83,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x38,0x00,0xd5,0x00,0x00,0x01,0x07,0x04,0x28, +0x01,0x4f,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x2e,0x11,0x26,0x03,0x0b,0x40,0x41,0x06,0x1d,0x3e,0x02,0x01,0xb8,0xff,0xf2,0xb4,0x28,0x22,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x83,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x45,0x00,0xd5,0x00,0x00, +0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x31,0x11,0x26,0x03,0x0b,0x40,0x41,0x06,0x1d,0x3e,0x02,0x01,0xb8,0xff,0xf2,0xb4,0x28,0x22,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0xff,0xbc,0xfe,0x40,0x06,0x3c,0x05,0xb2,0x00,0x27,0x00,0x9f,0x00,0x93,0x00,0x00,0x00,0x27, +0x04,0x27,0xfd,0xd8,0xff,0x7d,0x01,0x07,0x04,0x28,0x01,0x9f,0x00,0x00,0x00,0x21,0xb4,0x01,0x25,0x04,0x25,0x02,0xb8,0xff,0xfd,0xb5,0x31,0x32,0x0e,0x00,0x3e,0x01,0xb8,0xff,0xb0,0xb4,0x28,0x28,0x12,0x12,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0xff,0xbe,0xfe,0x40,0x06,0x3c,0x05,0xb2,0x00,0x27,0x00,0x9f, +0x00,0x93,0x00,0x00,0x00,0x27,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x01,0x07,0x04,0x28,0x01,0x9f,0x00,0x00,0x00,0x21,0xb4,0x01,0x23,0x04,0x23,0x02,0xb8,0xff,0xfd,0xb5,0x30,0x31,0x0e,0x00,0x3e,0x01,0xb8,0xff,0xa7,0xb4,0x26,0x26,0x12,0x12,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x07,0x45, +0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9c,0x00,0x00,0x00,0x27,0x04,0x36,0xfe,0x72,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0xa8,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x25,0x04,0x25,0x03,0xb8,0xff,0xfd,0xb6,0x33,0x34,0x0e,0x00,0x3e,0x02,0x01,0xb8,0xff,0xd8,0xb4,0x29,0x29,0x12,0x12,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35, +0x35,0x00,0xff,0xff,0xff,0xbe,0xfe,0x40,0x07,0x44,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9b,0x00,0x00,0x00,0x27,0x04,0x43,0xfe,0x7a,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0xa7,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x21,0x04,0x21,0x03,0xb8,0xff,0xfd,0xb6,0x33,0x34,0x0e,0x00,0x3e,0x02,0x01,0xb8,0xff,0xe7,0xb4,0x29,0x29,0x12,0x12, +0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x07,0x45,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9c,0x00,0x00,0x00,0x27,0x04,0x37,0xfe,0x7a,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0xa8,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x25,0x04,0x25,0x03,0xb8,0xff,0xfd,0xb6,0x33,0x34,0x0e,0x00,0x3e, +0x02,0x01,0xb8,0xff,0xe8,0xb4,0x29,0x29,0x12,0x12,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbe,0xfe,0x40,0x07,0x44,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9b,0x00,0x00,0x00,0x27,0x04,0x44,0xfe,0x86,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0xa7,0x00,0x00,0x00,0x23,0xb5,0x02,0x01,0x21,0x04,0x21, +0x03,0xb8,0xff,0xfd,0x40,0x0d,0x33,0x34,0x0e,0x00,0x3e,0x02,0x01,0x02,0x29,0x29,0x12,0x12,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x07,0x46,0x05,0xb3,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x00,0x27,0x04,0x38,0xfe,0x89,0xff,0x30,0x01,0x07,0x04,0x28,0x02,0xa9,0x00,0x00, +0x00,0x23,0xb5,0x02,0x01,0x25,0x04,0x25,0x03,0xb8,0xff,0xfd,0x40,0x0d,0x3a,0x3b,0x0e,0x00,0x3e,0x02,0x01,0x05,0x1c,0x1c,0x12,0x12,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x07,0x46,0x05,0xb3,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x00,0x27,0x04,0x45,0xfe,0x89,0xff,0x30, +0x01,0x07,0x04,0x28,0x02,0xa9,0x00,0x00,0x00,0x23,0xb5,0x02,0x01,0x25,0x04,0x25,0x03,0xb8,0xff,0xfd,0x40,0x0d,0x3a,0x3b,0x0e,0x00,0x3e,0x02,0x01,0x05,0x1c,0x1c,0x12,0x12,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x05,0xbe,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x07, +0x04,0x66,0x02,0x6a,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe3,0x40,0x09,0x2d,0x27,0x0a,0x13,0x25,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x05,0x2f,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x07,0x04,0x64,0x02,0x68,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe1,0x40,0x09,0x28, +0x27,0x0a,0x13,0x25,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x00,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x55,0xbd,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x1e,0x40,0x0c,0x02,0x28,0x11,0x26,0x03,0x25,0x31,0x2b,0x0a,0x00,0x3e,0x02,0xb8,0xff,0x8e,0xb4,0x29,0x27, +0x0a,0x13,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x04,0x18,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x28,0x5b,0x00,0x00,0x0b,0xb6,0x02,0x24,0x2d,0x27,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x00,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26, +0x04,0x60,0x35,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x1b,0x40,0x12,0x02,0x29,0x11,0x26,0x03,0x25,0x31,0x2b,0x0a,0x00,0x3e,0x02,0x06,0x29,0x27,0x0a,0x13,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x05,0x94,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x2a,0x0a,0x00,0x00,0x16, +0xb9,0x00,0x02,0xff,0xdb,0x40,0x09,0x2d,0x27,0x0a,0x13,0x25,0x02,0x2d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x05,0x94,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x2a,0x0a,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x1e,0x40,0x0c,0x02,0x2d,0x11,0x26,0x03,0x25,0x39,0x33,0x0a,0x00, +0x3e,0x02,0xb8,0xff,0xdb,0xb4,0x2d,0x27,0x0a,0x13,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x0a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x66,0x02,0x94,0x01,0x4c,0x00,0x13,0x40,0x0b,0x02,0x00,0x16,0x10,0x05,0x00,0x25,0x02,0x13,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, +0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0x79,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x64,0x02,0x96,0x01,0x4a,0x00,0x13,0x40,0x0b,0x02,0x00,0x12,0x13,0x05,0x00,0x25,0x02,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xfb,0x00,0x00,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07, +0x04,0x55,0xfe,0x2a,0xff,0x99,0x00,0x16,0xb4,0x02,0x12,0x03,0x12,0x02,0xb8,0xfd,0xee,0xb4,0x12,0x10,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x60,0xfe,0x5c,0xff,0x99,0x00,0x16,0xb4,0x02,0x13,0x03,0x13,0x02,0xb8,0xfe, +0x20,0xb4,0x12,0x10,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0x00,0x16,0xfe,0x40,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x28,0x00,0xa3,0x00,0x00,0x00,0x0b,0xb6,0x02,0x67,0x16,0x10,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x00,0x01,0x01,0xe4,0x04,0x7b,0x02,0xcf,0x06,0x23,0x00,0x0e, +0x00,0x1f,0xb5,0x03,0x03,0x00,0x09,0xfa,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x0d,0x48,0x01,0x03,0x0c,0xaf,0x06,0x2f,0xe1,0x39,0xc6,0x2b,0x00,0x3f,0xc4,0x39,0x2f,0x31,0x30,0x01,0x27,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x0a,0x26,0x68,0x10,0x30,0x3e,0x3a,0x2c,0x35,0x46,0x73,0x04,0x7b,0x3f,0x38, +0x68,0x02,0x38,0x2a,0x2b,0x3a,0x49,0x38,0x57,0xa8,0x00,0x01,0x01,0xba,0xfe,0x40,0x02,0xf6,0xff,0x89,0x00,0x0c,0x00,0x23,0x40,0x13,0x0c,0x0a,0xc3,0x40,0x02,0x80,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0x00,0x07,0xc2,0x06,0x2f,0xf1,0xc2,0x2f,0x00,0x2f,0x5d,0x1a,0xdc,0x1a,0xed,0x32,0x31,0x30,0x01,0x06,0x23,0x22,0x26, +0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x37,0x02,0xf6,0x3c,0x56,0x4b,0x5f,0x7b,0x44,0x29,0x29,0xfe,0x90,0x50,0x53,0x46,0xb0,0xba,0x43,0x2a,0x00,0x00,0x01,0x01,0xe4,0x04,0x7b,0x02,0xcf,0x06,0x23,0x00,0x0e,0x00,0x25,0x40,0x0b,0x01,0x18,0x09,0x0d,0x48,0x00,0x03,0xfb,0x09,0xfa,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x12,0x48,0x01,0x03, +0x0c,0xaf,0x06,0x2f,0xe1,0x39,0xc6,0x2b,0x00,0x3f,0xfd,0xc4,0x31,0x30,0x2b,0x01,0x27,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x0a,0x26,0x68,0x10,0x30,0x3e,0x3a,0x2c,0x35,0x46,0x73,0x04,0x7b,0x3f,0x38,0x68,0x02,0x38,0x2a,0x2b,0x3a,0x49,0x38,0x57,0xa8,0x00,0x01,0x01,0x40,0x04,0xa6,0x03,0x70, +0x05,0x94,0x00,0x0b,0x00,0x1c,0x40,0x0d,0x03,0xdb,0x40,0x09,0x80,0x00,0x06,0x00,0xfc,0x01,0x05,0xfc,0x06,0x2f,0xe1,0xd4,0xe1,0x00,0x2f,0x33,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x03,0x70,0x6a,0x18,0x96,0x96,0x18,0x6a,0x0a,0x9a,0x74,0x74,0x9a,0x04,0xa6,0x8b,0x8b,0x6a, +0x84,0x85,0x00,0x03,0x01,0x33,0x04,0x7f,0x03,0x7d,0x06,0x5a,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x35,0x40,0x1b,0x03,0xdb,0x40,0x09,0x80,0x00,0x06,0x12,0x0c,0x1e,0xc1,0x18,0x0f,0xc0,0x15,0x15,0x00,0x21,0xc0,0x1b,0x06,0x00,0xfc,0x01,0x05,0xfc,0x06,0x2f,0xe1,0xd4,0xe1,0x10,0xd6,0xe1,0x10,0xc2,0x2f,0xe1,0x00,0x2f,0xfd,0x39, +0x39,0xde,0x32,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x7d,0x69,0x2a,0x92,0x92,0x2a,0x69,0x1a,0x9e,0x6d,0x6c,0xa0,0x4c,0x28,0x38,0x39,0x27,0x2a, +0x3b,0x3b,0xfe,0x56,0x29,0x3a,0x3a,0x29,0x29,0x3b,0x3b,0x05,0x8e,0x6c,0x6c,0x5f,0x6d,0x6e,0xfe,0x93,0x38,0x2b,0x29,0x39,0x3a,0x28,0x2a,0x39,0x38,0x2b,0x28,0x3a,0x3a,0x28,0x2a,0x39,0xff,0xff,0x00,0x83,0xfe,0x40,0x03,0xf9,0x06,0x00,0x02,0x26,0x01,0xc7,0x01,0x00,0x00,0x26,0x04,0x55,0xbe,0x00,0x01,0x07,0x04,0x28,0xff,0x14, +0x00,0x00,0x00,0x20,0xb4,0x01,0x15,0x11,0x26,0x02,0xb8,0xff,0xff,0xb5,0x20,0x20,0x08,0x08,0x3e,0x01,0xb8,0xff,0xc6,0xb4,0x17,0x15,0x09,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x83,0xfe,0x40,0x03,0xf9,0x04,0x18,0x02,0x26,0x01,0xc7,0x01,0x00,0x01,0x07,0x04,0x28,0xff,0x14,0x00,0x00,0x00,0x0e,0xb9,0x00, +0x01,0xff,0x2e,0xb4,0x1b,0x15,0x0c,0x14,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x83,0xfe,0x40,0x03,0xf9,0x06,0x00,0x02,0x26,0x01,0xc7,0x01,0x00,0x00,0x26,0x04,0x60,0x40,0x00,0x01,0x07,0x04,0x28,0xff,0x14,0x00,0x00,0x00,0x1e,0xb4,0x01,0x16,0x11,0x26,0x02,0xb8,0xff,0xff,0x40,0x0c,0x20,0x20,0x08,0x08,0x3e,0x01,0x48,0x17,0x15, +0x09,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x83,0xfe,0x6c,0x03,0xf9,0x05,0x94,0x02,0x26,0x01,0xc7,0x01,0x00,0x01,0x06,0x04,0x2a,0xf5,0x00,0x00,0x13,0x40,0x0b,0x01,0x0f,0x1b,0x15,0x0c,0x14,0x25,0x01,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x83,0xfe,0x40,0x03,0xf9,0x05,0x94, +0x02,0x26,0x01,0xc7,0x01,0x00,0x00,0x26,0x04,0x2a,0xf5,0x00,0x01,0x07,0x04,0x28,0xff,0x14,0x00,0x00,0x00,0x20,0xb4,0x01,0x15,0x11,0x26,0x02,0xb8,0xff,0xff,0xb5,0x28,0x28,0x08,0x08,0x3e,0x01,0xb8,0xff,0xfd,0xb4,0x1b,0x15,0x09,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0xff,0xac,0x00,0x00,0x04,0x37,0x05,0x9a, +0x00,0x27,0x00,0x28,0x00,0x83,0x00,0x00,0x01,0x07,0x04,0x55,0xfd,0xdb,0xff,0x99,0x00,0x16,0xb4,0x01,0x0e,0x03,0x0e,0x01,0xb8,0xfd,0x78,0xb4,0x0e,0x0c,0x02,0x0b,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xc4,0x00,0x00,0x04,0x36,0x05,0x9a,0x00,0x27,0x00,0x28,0x00,0x82,0x00,0x00,0x01,0x07,0x04,0x60,0xfd,0xf3, +0xff,0x99,0x00,0x16,0xb4,0x01,0x0f,0x03,0x0f,0x01,0xb8,0xff,0x94,0xb4,0x0c,0x0c,0x02,0x02,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xac,0x00,0x00,0x05,0x74,0x05,0x9a,0x00,0x27,0x00,0x2b,0x00,0x82,0x00,0x00,0x01,0x07,0x04,0x55,0xfd,0xdb,0xff,0x99,0x00,0x16,0xb4,0x01,0x0e,0x03,0x0e,0x01,0xb8,0xff,0x7c,0xb4, +0x0c,0x0c,0x06,0x06,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xc4,0x00,0x00,0x05,0x74,0x05,0x9a,0x00,0x27,0x00,0x2b,0x00,0x82,0x00,0x00,0x01,0x07,0x04,0x60,0xfd,0xf3,0xff,0x99,0x00,0x16,0xb4,0x01,0x0f,0x03,0x0f,0x01,0xb8,0xfc,0xf2,0xb4,0x0e,0x0c,0x06,0x0b,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff, +0x00,0xbc,0xfe,0x40,0x04,0xf2,0x05,0x9a,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x04,0x28,0x00,0xdd,0x00,0x00,0x00,0x0b,0xb6,0x01,0x5e,0x12,0x0c,0x06,0x0b,0x25,0x01,0x2b,0x35,0x00,0x00,0x02,0x01,0x4a,0x04,0x92,0x03,0x66,0x06,0x06,0x00,0x0c,0x00,0x10,0x00,0x30,0x40,0x0e,0x03,0x03,0x09,0x0e,0x00,0x0f,0x09,0xfa,0x0d,0x80, +0x0f,0x0f,0x0b,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x12,0x48,0x01,0x03,0x0b,0xaf,0x06,0x2f,0xe1,0x39,0xc6,0x2b,0x10,0xc2,0x2f,0x1a,0xcd,0x00,0x3f,0xc4,0xd4,0xc6,0x12,0x39,0x2f,0x31,0x30,0x01,0x27,0x36,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x05,0x23,0x03,0x33,0x01,0x68,0x1e,0x5d,0x17,0x31,0x41,0x36,0x2c,0x77,0x01, +0x41,0x5e,0xae,0xa6,0x04,0x92,0x3d,0x28,0x4f,0x36,0x2c,0x28,0x36,0x7a,0xa8,0x4e,0x01,0x6a,0x00,0x02,0x01,0x42,0x04,0x92,0x03,0x6e,0x06,0x06,0x00,0x0c,0x00,0x10,0x00,0x37,0x40,0x13,0x10,0x18,0x09,0x0e,0x48,0x03,0x03,0x09,0x0f,0x00,0x10,0x09,0xfa,0x0d,0x80,0x0f,0x0f,0x0b,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x12,0x48,0x01,0x03, +0x0b,0xaf,0x06,0x2f,0xe1,0x39,0xc6,0x2b,0x10,0xc2,0x2f,0x1a,0xcd,0x00,0x3f,0xc4,0xd4,0xc6,0x12,0x39,0x2f,0x31,0x30,0x01,0x2b,0x01,0x27,0x36,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x01,0x03,0x23,0x13,0x01,0x60,0x1e,0x5d,0x17,0x32,0x40,0x36,0x2c,0x76,0x01,0x52,0xb0,0x5e,0x66,0x04,0x92,0x3d,0x28,0x4f,0x36,0x2c, +0x28,0x36,0x7a,0xa8,0x01,0x1c,0xfe,0x96,0x01,0x6a,0x00,0x02,0x01,0x33,0x04,0x77,0x03,0x7d,0x06,0x83,0x00,0x0b,0x00,0x17,0x00,0x53,0x40,0x0d,0x0d,0x18,0x09,0x12,0x48,0x03,0xdb,0x40,0x09,0x80,0x00,0x06,0x0f,0xb8,0x01,0x02,0x40,0x0d,0x0f,0x13,0x1f,0x13,0x02,0x13,0x40,0x13,0x18,0x48,0x13,0x0c,0x0d,0xb8,0xff,0xc0,0xb5,0x09, +0x12,0x48,0x0d,0x0f,0x16,0xb8,0x01,0x01,0x40,0x09,0x11,0x11,0x06,0x00,0xfc,0x01,0x05,0xfc,0x06,0x2f,0xe1,0xd4,0xe1,0x11,0x39,0x2f,0xe1,0x39,0xc4,0x2b,0x00,0x2f,0xd4,0x2b,0x5d,0xed,0xd6,0x32,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x2b,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x27,0x36,0x37,0x22,0x35,0x34, +0x33,0x32,0x16,0x15,0x14,0x03,0x7d,0x69,0x2a,0x92,0x92,0x2a,0x69,0x19,0xa0,0x6c,0x6c,0xa0,0xfe,0xb4,0x16,0x56,0x06,0x60,0x5a,0x30,0x3e,0x05,0xb6,0x6d,0x6d,0x5f,0x6e,0x6e,0xfe,0x62,0x35,0x16,0x3a,0x50,0x52,0x41,0x30,0x91,0xff,0xff,0xff,0xec,0xff,0xf4,0x02,0x10,0x05,0xbe,0x00,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x66, +0x00,0xfe,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xa7,0x40,0x09,0x12,0x0c,0x05,0x0b,0x25,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xfa,0xff,0xf4,0x02,0x08,0x05,0x2f,0x00,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x64,0x00,0xf8,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xa1,0x40,0x09,0x0e,0x0f,0x05, +0x0b,0x25,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xb2,0xff,0xf4,0x02,0x5e,0x06,0x0e,0x00,0x26,0x01,0xc9,0x01,0x00,0x01,0x07,0x04,0x53,0xfe,0xb0,0x00,0x0e,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xb0,0x40,0x0b,0x1f,0x19,0x05,0x0b,0x25,0x03,0x02,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01, +0x2b,0x35,0x35,0x35,0xff,0xff,0xff,0xb2,0xff,0xf4,0x02,0x5e,0x06,0x0e,0x00,0x26,0x01,0xc9,0x01,0x00,0x01,0x07,0x04,0x54,0xfe,0xb0,0x00,0x0e,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xb0,0x40,0x0b,0x1f,0x19,0x05,0x0b,0x25,0x03,0x02,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0xff,0xdf, +0xff,0xf4,0x02,0x0f,0x05,0x94,0x00,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x2a,0xfe,0x9f,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xa0,0x40,0x09,0x12,0x0c,0x05,0x0b,0x25,0x01,0x12,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xd5,0xff,0xf4,0x02,0x1f,0x06,0x5a,0x00,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x2b, +0xfe,0xa2,0x00,0x00,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xa3,0x40,0x0b,0x12,0x21,0x05,0x0b,0x25,0x03,0x02,0x01,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0xff,0xfe,0x00,0x00,0x02,0x22,0x07,0x0a,0x00,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x04,0x66,0x01,0x10,0x01,0x4c,0x00,0x13,0x40,0x0b, +0x01,0x00,0x0a,0x04,0x02,0x03,0x25,0x01,0x07,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x02,0x0e,0x06,0x79,0x00,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x04,0x64,0x01,0x10,0x01,0x4a,0x00,0x13,0x40,0x0b,0x01,0x00,0x06,0x07,0x02,0x03,0x25,0x01,0x05,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, +0xff,0xff,0xff,0xae,0x00,0x00,0x02,0x2c,0x05,0x9a,0x00,0x27,0x00,0x2c,0x00,0xc8,0x00,0x00,0x01,0x07,0x04,0x55,0xfd,0xdd,0xff,0x9a,0x00,0x14,0xb9,0x00,0x01,0xfe,0x5d,0xb7,0x06,0x04,0x02,0x03,0x25,0x01,0x07,0x03,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xc6,0x00,0x00,0x02,0x4a,0x05,0x9a,0x00,0x27,0x00,0x2c,0x00,0xe6, +0x00,0x00,0x01,0x07,0x04,0x60,0xfd,0xf5,0xff,0x9a,0x00,0x14,0xb9,0x00,0x01,0xfe,0x57,0xb7,0x06,0x04,0x02,0x03,0x25,0x01,0x07,0x03,0x00,0x3f,0x35,0x01,0x2b,0x35,0x00,0x02,0x01,0x44,0x04,0x92,0x03,0x6c,0x06,0x06,0x00,0x0c,0x00,0x10,0x00,0x35,0x40,0x1d,0x0b,0x0b,0x05,0x0e,0x01,0x0f,0x05,0xfa,0x0d,0x80,0x0f,0x40,0x09,0x0e, +0x48,0x0f,0x0f,0x08,0x00,0x40,0x09,0x12,0x48,0x00,0x00,0x0b,0x08,0xaf,0x03,0x2f,0xf1,0x39,0xc2,0x2f,0x2b,0x10,0xc2,0x2f,0x2b,0x1a,0xcd,0x00,0x3f,0xc4,0xd4,0xc6,0x12,0x39,0x2f,0x31,0x30,0x01,0x07,0x26,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x16,0x05,0x23,0x03,0x33,0x02,0x1e,0x20,0xba,0x76,0x2c,0x36,0x40,0x32,0x18, +0x01,0xaa,0x5c,0xb0,0xa8,0x04,0xcf,0x3d,0x50,0xaa,0x7a,0x35,0x29,0x2c,0x36,0x4f,0x61,0x01,0x6a,0x00,0x00,0x02,0x01,0x38,0x04,0x92,0x03,0x7b,0x06,0x06,0x00,0x0c,0x00,0x10,0x00,0x35,0x40,0x1d,0x0b,0x0b,0x05,0x0f,0x01,0x10,0x05,0xfa,0x0d,0x80,0x0f,0x0f,0x1f,0x0f,0x02,0x0f,0x0f,0x08,0x00,0x40,0x09,0x12,0x48,0x00,0x00,0x0b, +0x08,0xaf,0x03,0x2f,0xf1,0x39,0xc2,0x2f,0x2b,0x10,0xc2,0x2f,0x5d,0x1a,0xcd,0x00,0x3f,0xc4,0xd4,0xc6,0x12,0x39,0x2f,0x31,0x30,0x01,0x07,0x26,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x16,0x01,0x03,0x23,0x13,0x02,0x12,0x1e,0xbc,0x76,0x2c,0x36,0x40,0x32,0x17,0x01,0xc6,0xb0,0x5f,0x67,0x04,0xcf,0x3d,0x52,0xa8,0x7a,0x36, +0x28,0x2c,0x36,0x4f,0x01,0x09,0xfe,0x96,0x01,0x6a,0x00,0x02,0x01,0x33,0x04,0x77,0x03,0x7d,0x06,0x83,0x00,0x0b,0x00,0x17,0x00,0x52,0x40,0x0d,0x0e,0x18,0x09,0x12,0x48,0x03,0xdb,0x40,0x09,0x80,0x00,0x06,0x0c,0xb8,0x01,0x02,0x40,0x15,0x0f,0x14,0x1f,0x14,0x02,0x14,0x40,0x13,0x18,0x48,0x14,0x0f,0x0e,0x40,0x09,0x12,0x48,0x0e, +0x0e,0x0c,0x16,0xb8,0x01,0x01,0x40,0x09,0x11,0x11,0x06,0x00,0xfc,0x01,0x05,0xfc,0x06,0x2f,0xe1,0xd4,0xe1,0x11,0x39,0x2f,0xf1,0x39,0xc0,0x2f,0x2b,0x00,0x2f,0xd4,0x2b,0x5d,0xed,0xd6,0x32,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x2b,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x16,0x17,0x07,0x26,0x35,0x34,0x36, +0x33,0x32,0x15,0x14,0x03,0x7d,0x69,0x2a,0x92,0x92,0x2a,0x69,0x19,0xa0,0x6c,0x6c,0xa0,0xfe,0xf8,0x06,0x54,0x14,0xb0,0x3e,0x30,0x5a,0x05,0xb6,0x6d,0x6d,0x5f,0x6e,0x6e,0xfe,0xe7,0x3a,0x16,0x35,0x25,0x91,0x30,0x41,0x52,0x50,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x05,0xbe,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x07,0x04,0x66, +0x02,0x08,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xaa,0x40,0x09,0x23,0x1d,0x00,0x16,0x25,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x05,0x2f,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x07,0x04,0x64,0x02,0x0e,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xb0,0x40,0x09,0x1e,0x1d,0x00, +0x16,0x25,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x0e,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x53,0xc3,0x0e,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xbd,0x40,0x0b,0x30,0x2a,0x00,0x16,0x25,0x03,0x02,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35, +0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x0e,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x54,0xd6,0x0e,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xd0,0x40,0x0b,0x30,0x2a,0x00,0x16,0x25,0x03,0x02,0x01,0x1f,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0xa1,0xfe,0x74,0x04,0x50, +0x06,0x23,0x02,0x26,0x01,0xd0,0x00,0x00,0x01,0x06,0x04,0x29,0x14,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xf4,0x40,0x09,0x1c,0x27,0x04,0x0a,0x25,0x02,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa1,0xfe,0x74,0x04,0x50,0x06,0x23,0x02,0x26,0x01,0xd0,0x00,0x00,0x01,0x06,0x04,0x61,0xd4,0x00,0x00,0x16,0xb9,0x00, +0x02,0xff,0xb3,0x40,0x09,0x1f,0x1b,0x04,0x0a,0x25,0x02,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x05,0x94,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x2a,0xba,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xb4,0x40,0x09,0x23,0x1d,0x00,0x16,0x25,0x01,0x23,0x11,0x26,0x00,0x2b,0x35,0x01, +0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x5a,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x2b,0xa9,0x00,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xa4,0x40,0x0b,0x38,0x32,0x00,0x16,0x25,0x03,0x02,0x01,0x35,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60, +0x07,0x0a,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x04,0x66,0x02,0x37,0x01,0x4c,0x00,0x13,0x40,0x0b,0x01,0x00,0x14,0x0e,0x05,0x00,0x25,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x06,0x81,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x04,0x64,0x02,0x38,0x01,0x52,0x00,0x13, +0x40,0x0b,0x01,0x00,0x10,0x11,0x05,0x00,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0x96,0x00,0x00,0x05,0x49,0x05,0x9a,0x00,0x27,0x00,0x3c,0x00,0xe9,0x00,0x00,0x01,0x07,0x04,0x55,0xfd,0xc5,0xff,0x99,0x00,0x16,0xb4,0x01,0x10,0x03,0x10,0x01,0xb8,0xfc,0xfb,0xb4,0x10,0x0e,0x05,0x00,0x25,0x01, +0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xb2,0x00,0x00,0x05,0x49,0x05,0x9a,0x00,0x27,0x00,0x3c,0x00,0xe9,0x00,0x00,0x01,0x07,0x04,0x60,0xfd,0xe1,0xff,0x99,0x00,0x16,0xb4,0x01,0x0e,0x03,0x0e,0x01,0xb8,0xfd,0x17,0xb4,0x10,0x0e,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x04,0xb0, +0x05,0xa0,0x00,0x27,0x00,0x33,0x00,0x87,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x02,0x1a,0x04,0x1a,0x02,0xb8,0xfd,0x3b,0xb4,0x17,0x13,0x03,0x07,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0x03,0x01,0x02,0x04,0x96,0x03,0xae,0x06,0x00,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x2c,0x40,0x15,0x0a,0x04, +0x16,0xc1,0x40,0x10,0x10,0x02,0x80,0x01,0x0d,0xc0,0x07,0x00,0x40,0x13,0xc0,0x19,0x00,0x80,0x02,0x2f,0x1a,0xcd,0xd4,0xe1,0x1a,0x10,0xde,0xe1,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x03,0x33,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32, +0x16,0x15,0x14,0x06,0x02,0xc0,0x5e,0xb0,0xa8,0xf0,0x28,0x38,0x38,0x28,0x29,0x3b,0x3a,0xfd,0xf0,0x28,0x3a,0x3a,0x28,0x2a,0x3a,0x3a,0x04,0x96,0x01,0x6a,0xfe,0xba,0x36,0x2a,0x2a,0x39,0x39,0x2a,0x28,0x38,0x37,0x29,0x2a,0x39,0x39,0x2a,0x28,0x38,0x00,0x03,0x01,0x02,0x04,0x96,0x03,0xae,0x06,0x00,0x00,0x03,0x00,0x0f,0x00,0x1b, +0x00,0x2c,0x40,0x15,0x0a,0x04,0x16,0xc1,0x40,0x10,0x10,0x03,0x80,0x02,0x13,0xc0,0x19,0x02,0x40,0x0d,0xc0,0x07,0x00,0x80,0x02,0x2f,0x1a,0xdd,0xd4,0xe1,0x1a,0x10,0xde,0xe1,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22, +0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x00,0xb0,0x5e,0x66,0xf2,0x28,0x38,0x38,0x28,0x29,0x3b,0x3a,0xfd,0xf0,0x28,0x3a,0x3a,0x28,0x2a,0x3a,0x3a,0x06,0x00,0xfe,0x96,0x01,0x6a,0xfe,0xba,0x36,0x2a,0x2a,0x39,0x39,0x2a,0x28,0x38,0x37,0x29,0x2a,0x39,0x39,0x2a,0x28,0x38,0x00,0x01,0x01,0xd1,0x04,0x96,0x02,0xdf, +0x06,0x00,0x00,0x03,0x00,0x11,0xb6,0x01,0x40,0x02,0x01,0x02,0x80,0x00,0x2f,0x1a,0xcd,0x00,0x3f,0x1a,0xcd,0x31,0x30,0x01,0x23,0x03,0x33,0x02,0xdf,0x5e,0xb0,0xa8,0x04,0x96,0x01,0x6a,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x00,0x02,0x26,0x01,0xd5,0x00,0x00,0x00,0x27,0x04,0x55,0x00,0xb0,0x00,0x00,0x01,0x07,0x04,0x28, +0x01,0x4f,0x00,0x00,0x00,0x1e,0x40,0x0c,0x01,0x23,0x11,0x26,0x02,0x0b,0x2c,0x2d,0x06,0x1d,0x3e,0x01,0xb8,0xff,0xcd,0xb4,0x24,0x22,0x06,0x1d,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x04,0x00,0x02,0x26,0x01,0xd5,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x0b,0xb6,0x01, +0x0b,0x28,0x29,0x06,0x1d,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x00,0x02,0x26,0x01,0xd5,0x00,0x00,0x00,0x27,0x04,0x60,0x01,0x1f,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x1b,0x40,0x12,0x01,0x24,0x11,0x26,0x02,0x0b,0x2c,0x2d,0x06,0x1d,0x3e,0x01,0x3c,0x24,0x22,0x06,0x1d,0x3e, +0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xff,0xe9,0x06,0x00,0x05,0x94,0x02,0x26,0x01,0xd5,0x00,0x00,0x01,0x07,0x04,0x2a,0x00,0xeb,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x08,0x28,0x22,0x06,0x1d,0x25,0x01,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x05,0x94, +0x02,0x26,0x01,0xd5,0x00,0x00,0x00,0x27,0x04,0x2a,0x00,0xeb,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x1b,0x40,0x12,0x01,0x28,0x11,0x26,0x02,0x0b,0x34,0x35,0x06,0x1d,0x3e,0x01,0x08,0x28,0x22,0x06,0x1d,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0xff,0xac,0xff,0xe8,0x06,0x11,0x05,0xb2,0x00,0x26, +0x00,0x32,0x67,0x00,0x01,0x07,0x04,0x55,0xfd,0xdb,0xff,0x99,0x00,0x16,0xb4,0x02,0x1a,0x03,0x1a,0x02,0xb8,0xfc,0xc8,0xb4,0x1a,0x18,0x03,0x09,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xd1,0xff,0xe8,0x06,0x11,0x05,0xb2,0x00,0x26,0x00,0x32,0x67,0x00,0x01,0x07,0x04,0x60,0xfe,0x00,0xff,0x99,0x00,0x16,0xb4,0x02, +0x1b,0x03,0x1b,0x02,0xb8,0xfc,0xed,0xb4,0x1a,0x18,0x03,0x09,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xac,0x00,0x00,0x06,0x53,0x05,0xb2,0x00,0x27,0x00,0x9f,0x00,0xaa,0x00,0x00,0x01,0x07,0x04,0x55,0xfd,0xdb,0xff,0x99,0x00,0x16,0xb4,0x01,0x1e,0x03,0x1e,0x01,0xb8,0xff,0xac,0xb4,0x1c,0x1c,0x12,0x12,0x25,0x01, +0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xd1,0x00,0x00,0x06,0x3d,0x05,0xb2,0x00,0x27,0x00,0x9f,0x00,0x94,0x00,0x00,0x01,0x07,0x04,0x60,0xfe,0x00,0xff,0x99,0x00,0x16,0xb4,0x01,0x1f,0x03,0x1f,0x01,0xb8,0xff,0xe7,0xb4,0x1c,0x1c,0x12,0x12,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0x00,0x64,0xfe,0x40,0x05,0xa9, +0x05,0xb2,0x02,0x26,0x00,0x9f,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x0e,0x00,0x00,0x00,0x0b,0xb6,0x01,0x5e,0x22,0x1c,0x12,0x18,0x25,0x01,0x2b,0x35,0x00,0x00,0x01,0x01,0xd1,0x04,0x96,0x02,0xdf,0x06,0x00,0x00,0x03,0x00,0x11,0xb6,0x02,0x40,0x03,0x01,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x3f,0x1a,0xcd,0x31,0x30,0x01,0x03,0x23, +0x13,0x02,0xdf,0xb0,0x5e,0x67,0x06,0x00,0xfe,0x96,0x01,0x6a,0x00,0x01,0x01,0xe2,0x04,0x7b,0x02,0xcf,0x06,0x23,0x00,0x0d,0x00,0x25,0x40,0x15,0x00,0x18,0x09,0x0d,0x48,0x0c,0x0c,0x01,0x07,0xfa,0x00,0x40,0x09,0x0d,0x48,0x00,0x00,0x0c,0x0a,0xaf,0x04,0x2f,0xf1,0x39,0xc2,0x2f,0x2b,0x00,0x3f,0xc4,0x39,0x2f,0x31,0x30,0x2b,0x01, +0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x02,0xcf,0x29,0x53,0x71,0x45,0x35,0x2c,0x3a,0x6c,0x10,0x04,0xba,0x3f,0x28,0xa7,0x58,0x39,0x48,0x3a,0x2b,0x5d,0x07,0x68,0x00,0x00,0x01,0xfe,0xe8,0x04,0xc2,0x01,0x1a,0x06,0x0e,0x00,0x06,0x00,0x15,0xb7,0x00,0xc0,0x04,0x02,0x00,0x05,0x80,0x04,0x00,0x2f,0x1a, +0xcd,0x39,0x39,0x01,0x2f,0x1a,0xcc,0x31,0x30,0x01,0x23,0x27,0x07,0x23,0x13,0x33,0x01,0x1a,0x78,0xa4,0xa6,0x70,0xd6,0x86,0x04,0xc2,0xe6,0xe6,0x01,0x4c,0x00,0x01,0xfe,0xc0,0x04,0xb2,0x01,0x42,0x05,0xb2,0x00,0x13,0x00,0x1e,0x40,0x0e,0x13,0xc4,0x00,0x09,0xc4,0x0a,0x13,0x07,0xda,0x0d,0x11,0xda,0x09,0x03,0x00,0x2f,0xc6,0xfd, +0xdc,0xed,0xc6,0x01,0x2f,0xe1,0xd4,0xe1,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x42,0x60,0x52,0x47,0x5b,0x4d,0x2a,0x59,0x5e,0x61,0x56,0x41,0x54,0x4a,0x36,0x53,0x05,0xb2,0x69,0x85,0x34,0x2b,0x71,0x6a,0x82,0x34,0x2c,0x74,0x00,0x00,0x01,0xff,0x02, +0x04,0xc2,0x00,0xfe,0x05,0x2f,0x00,0x03,0x00,0x0e,0xb4,0x00,0x01,0x02,0xe2,0x01,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x35,0x21,0xfe,0xfe,0x04,0x01,0xfc,0x04,0xc2,0x6d,0x00,0x01,0xfe,0x58,0x05,0x74,0x01,0xaa,0x05,0xec,0x00,0x03,0x00,0x0d,0xb4,0x02,0xda,0x01,0x00,0x01,0x2f,0x2f,0x00,0x2f,0xed,0x31,0x30,0x01, +0x21,0x35,0x21,0x01,0xaa,0xfc,0xae,0x03,0x52,0x05,0x74,0x78,0x00,0x01,0xfe,0xee,0x04,0xc2,0x01,0x12,0x05,0xbe,0x00,0x0c,0x00,0x1d,0x40,0x0d,0x0c,0xc4,0x00,0xc0,0x07,0xc4,0x06,0x0c,0x06,0x80,0x09,0xdb,0x03,0x00,0x2f,0xed,0x1a,0xdc,0xc4,0x01,0x2f,0xe1,0x1a,0xdc,0xe1,0x31,0x30,0x01,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16, +0x33,0x32,0x36,0x37,0x01,0x12,0x0a,0x9c,0x70,0x75,0x95,0x04,0x64,0x0c,0xa0,0x44,0x61,0x09,0x05,0xbe,0x70,0x8c,0x8a,0x72,0x9b,0x54,0x47,0x00,0x00,0x01,0xff,0x9e,0x04,0xc2,0x00,0x62,0x05,0x85,0x00,0x0b,0x00,0x0f,0xb5,0x09,0xc0,0x03,0x06,0xc1,0x00,0x00,0x2f,0xed,0x01,0x2f,0xe1,0x31,0x30,0x11,0x22,0x26,0x35,0x34,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x28,0x3a,0x3a,0x28,0x29,0x39,0x39,0x04,0xc2,0x3a,0x29,0x29,0x37,0x37,0x29,0x29,0x3a,0x00,0x02,0xfe,0xdd,0x04,0xc2,0x01,0x25,0x05,0x87,0x00,0x0b,0x00,0x17,0x00,0x1a,0x40,0x0c,0x06,0x00,0x12,0xc1,0x0c,0x09,0xc0,0x03,0x0f,0xc0,0x03,0x15,0x2f,0xc6,0xe1,0x10,0xe1,0x00,0x2f,0xed,0x39,0x39,0x31,0x30, +0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xc2,0x28,0x3a,0x38,0x28,0x2a,0x3b,0x39,0xfe,0x56,0x29,0x3c,0x39,0x2a,0x29,0x3b,0x39,0x04,0xc2,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39,0x2a,0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0x00,0x02,0xff,0x33, +0x04,0x98,0x00,0xcf,0x06,0x1c,0x00,0x0b,0x00,0x16,0x00,0x2a,0x40,0x18,0x14,0xc4,0x30,0x09,0x80,0x09,0xd0,0x09,0xe0,0x09,0x04,0x09,0xc0,0x0f,0xc4,0x03,0x0c,0xc5,0x40,0x06,0xc0,0x11,0xc5,0x00,0x00,0x2f,0xed,0x1a,0xdc,0x1a,0xed,0x01,0x2f,0xe1,0x1a,0xdc,0x71,0xe1,0x31,0x30,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x59,0x72,0x76,0x5b,0x59,0x72,0x7a,0x57,0x31,0x3f,0x70,0x31,0x41,0x41,0x04,0x98,0x6b,0x53,0x58,0x6e,0x6c,0x54,0x54,0x70,0x01,0x33,0x41,0x30,0x70,0x40,0x30,0x31,0x40,0x00,0x00,0x02,0xfe,0xdd,0x04,0xc2,0x01,0x25,0x06,0x00,0x00,0x03,0x00,0x07,0x00,0x2b, +0x40,0x14,0x00,0x0e,0x0f,0x02,0x01,0x10,0x03,0x02,0x06,0x80,0x06,0x04,0x42,0x04,0x06,0x03,0x02,0x07,0x80,0x06,0x00,0x2f,0x1a,0xcd,0x39,0x39,0x01,0x2f,0xcd,0x2b,0x01,0x1a,0x18,0x10,0xdc,0x5f,0x5e,0x5d,0xe9,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x01,0x25,0xf6,0x60,0xd1,0x73,0xef,0x61,0xcf,0x06,0x00,0xfe,0xc2, +0x01,0x3e,0xfe,0xc2,0x01,0x3e,0x00,0x01,0xfe,0xe8,0x04,0xc2,0x01,0x18,0x06,0x0c,0x00,0x06,0x00,0x11,0xb5,0x00,0xc0,0x03,0x03,0x80,0x02,0x00,0x2f,0x1a,0xcd,0x01,0x2f,0x1a,0xcc,0x31,0x30,0x01,0x03,0x23,0x03,0x33,0x17,0x37,0x01,0x18,0xd4,0x86,0xd6,0x72,0xa4,0xa4,0x06,0x0c,0xfe,0xb6,0x01,0x4a,0xe5,0xe5,0x00,0x01,0xff,0xcb, +0x04,0x96,0x00,0x35,0x06,0x00,0x00,0x03,0x00,0x0e,0xb5,0x01,0x02,0x01,0x00,0xfc,0x01,0x2f,0xe1,0x00,0x3f,0xcd,0x31,0x30,0x13,0x23,0x11,0x33,0x35,0x6a,0x6a,0x04,0x96,0x01,0x6a,0x00,0x00,0x02,0xff,0x58,0x04,0x96,0x00,0xa8,0x06,0x00,0x00,0x03,0x00,0x07,0x00,0x1a,0x40,0x0c,0x02,0x01,0x05,0x06,0x01,0x00,0xfc,0x01,0x01,0x04, +0xfc,0x05,0x2f,0xf1,0xca,0x2f,0xe1,0x00,0x3f,0xcd,0x39,0x39,0x31,0x30,0x13,0x23,0x11,0x33,0x03,0x23,0x11,0x33,0xa8,0x6a,0x6a,0xe6,0x6a,0x6a,0x04,0x96,0x01,0x6a,0xfe,0x96,0x01,0x6a,0x00,0x02,0xfe,0xdd,0x04,0xc2,0x01,0x25,0x06,0x00,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x17,0x00,0x0e,0x0f,0x02,0x01,0x10,0x03,0x02,0x06,0x80, +0x06,0x04,0x42,0x60,0x04,0x01,0x04,0x06,0x07,0x04,0x03,0x80,0x00,0x00,0x2f,0x1a,0xcd,0x39,0x39,0x01,0x2f,0xcd,0x5d,0x2b,0x01,0x1a,0x18,0x10,0xdc,0x5f,0x5e,0x5d,0xe1,0x31,0x30,0x01,0x23,0x03,0x33,0x03,0x23,0x03,0x33,0x01,0x25,0x61,0xef,0x81,0x23,0x60,0xf6,0x85,0x04,0xc2,0x01,0x3e,0xfe,0xc2,0x01,0x3e,0x00,0x02,0xfe,0xee, +0x04,0xc2,0x01,0x12,0x06,0x68,0x00,0x0b,0x00,0x18,0x00,0x26,0x40,0x13,0x06,0xc1,0x00,0x0c,0x12,0x15,0xdb,0x0f,0x0c,0xfc,0x18,0x18,0x09,0x12,0xfc,0x13,0x09,0xc0,0x03,0x2f,0xe1,0xde,0xe1,0x10,0xca,0x2f,0xe1,0x00,0x2f,0xfd,0xd4,0x32,0xd4,0xed,0x31,0x30,0x11,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x06, +0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x28,0x3a,0x3a,0x28,0x29,0x39,0x39,0xe9,0x0a,0x9c,0x70,0x75,0x95,0x04,0x64,0x0c,0xa0,0x44,0x61,0x09,0x05,0xa6,0x39,0x29,0x2a,0x36,0x37,0x29,0x28,0x3a,0x18,0x70,0x8c,0x8a,0x72,0x9b,0x54,0x47,0x00,0x00,0x01,0xfe,0xee,0x04,0xc2,0x01,0x12,0x05,0xbe,0x00,0x0c,0x00,0x18, +0x40,0x0b,0x0a,0xdb,0x04,0x00,0x07,0x00,0xfc,0x01,0x06,0xfc,0x07,0x2f,0xe1,0xd4,0xe1,0x00,0x2f,0x33,0xd4,0xed,0x31,0x30,0x01,0x23,0x26,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x12,0x66,0x09,0x61,0x44,0xa0,0x0c,0x64,0x04,0x95,0x75,0x71,0x9b,0x04,0xc2,0x48,0x54,0x9c,0x72,0x8a,0x8a,0x00,0x00,0x01,0xff,0x8c, +0x04,0x7b,0x00,0x77,0x06,0x23,0x00,0x0d,0x00,0x27,0xb9,0x00,0x00,0xff,0xe8,0x40,0x13,0x09,0x0d,0x48,0x07,0xfb,0x02,0x0d,0xfa,0x00,0x40,0x09,0x0d,0x48,0x00,0x00,0x02,0x04,0xaf,0x0a,0x2f,0xf1,0x39,0xc2,0x2f,0x2b,0x00,0x3f,0xd4,0xed,0x31,0x30,0x2b,0x13,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x77, +0x69,0x10,0x6e,0x3a,0x2c,0x35,0x45,0x71,0x53,0x05,0xe4,0x38,0x68,0x08,0x5d,0x2a,0x3a,0x47,0x3a,0x58,0xa7,0x28,0x00,0x01,0xff,0x8c,0x03,0xf8,0x00,0x77,0x05,0xa0,0x00,0x0e,0x00,0x25,0x40,0x0b,0x01,0x18,0x09,0x0d,0x48,0x00,0x03,0xfb,0x09,0x03,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x0d,0x48,0x01,0x03,0x0c,0xaf,0x06,0x2f,0xe1,0x39, +0xc6,0x2b,0x00,0x3f,0xfd,0xc4,0x31,0x30,0x2b,0x03,0x27,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x4e,0x26,0x68,0x10,0x30,0x3c,0x38,0x2c,0x35,0x46,0x72,0x03,0xf8,0x40,0x36,0x69,0x01,0x39,0x2b,0x2a,0x3a,0x48,0x3a,0x57,0xa7,0x00,0x00,0x01,0xff,0x8c,0x03,0xf8,0x00,0x77,0x05,0xa0,0x00,0x0e,0x00,0x24, +0x40,0x15,0x00,0x18,0x09,0x0d,0x48,0x01,0x0d,0xfb,0x07,0xfa,0x00,0x40,0x09,0x0d,0x48,0x00,0x00,0x0d,0x0a,0xaf,0x04,0x2f,0xf1,0x39,0xc2,0x2f,0x2b,0x00,0x3f,0xfd,0xc4,0x31,0x30,0x2b,0x13,0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x77,0x27,0x54,0x70,0x45,0x35,0x2c,0x38,0x3c,0x30,0x10,0x04,0x38, +0x40,0x29,0xa6,0x57,0x3b,0x47,0x3a,0x2a,0x2b,0x39,0x01,0x69,0x00,0x01,0x00,0x2f,0x03,0xf8,0x01,0x1a,0x05,0xa0,0x00,0x0e,0x00,0x25,0x40,0x0b,0x01,0x18,0x09,0x0d,0x48,0x00,0x03,0xfb,0x09,0x03,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x0d,0x48,0x01,0x03,0x0c,0xaf,0x06,0x2f,0xe1,0x39,0xc6,0x2b,0x00,0x3f,0xfd,0xc4,0x31,0x30,0x2b,0x13, +0x27,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x56,0x27,0x69,0x10,0x30,0x3c,0x38,0x2c,0x35,0x45,0x70,0x03,0xf8,0x40,0x36,0x69,0x01,0x39,0x2b,0x2a,0x3a,0x47,0x3b,0x57,0xa6,0x00,0x00,0x01,0xff,0x3e,0xfe,0x42,0x00,0xc2,0xff,0x89,0x00,0x03,0x00,0x17,0x40,0x0c,0x00,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03, +0x03,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x13,0x23,0x01,0x33,0xc2,0x7e,0xfe,0xfa,0xa8,0xfe,0x42,0x01,0x47,0x00,0x01,0xff,0x3e,0xfe,0x42,0x00,0xc2,0xff,0x89,0x00,0x03,0x00,0x17,0x40,0x0c,0x02,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x17, +0x01,0x23,0x13,0xc2,0xfe,0xfa,0x7e,0xde,0x77,0xfe,0xb9,0x01,0x47,0x00,0x00,0x01,0xff,0x48,0xfe,0x58,0x00,0xb8,0xff,0xc2,0x00,0x07,0x00,0x2a,0x40,0x17,0x01,0x0e,0x02,0xfd,0x05,0x40,0x05,0x06,0x42,0x05,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0xfc,0x05,0x02,0x04,0x2f,0xdd,0x32,0xe1,0x00,0x2f,0x5d,0xcd,0x2b,0x00,0x1a, +0x18,0x10,0xfd,0xed,0x31,0x30,0x13,0x23,0x35,0x21,0x35,0x21,0x35,0x33,0xb8,0x6a,0xfe,0xfa,0x01,0x06,0x6a,0xfe,0x58,0x7f,0x6d,0x7e,0x00,0x01,0xff,0x48,0xfe,0x58,0x00,0xb8,0xff,0xc2,0x00,0x07,0x00,0x2c,0x40,0x18,0x02,0x0e,0x01,0xfd,0x06,0x40,0x06,0x05,0x42,0x06,0x0f,0x05,0x1f,0x05,0x2f,0x05,0x03,0x05,0x03,0xfc,0x01,0x01, +0x06,0x07,0x2f,0xcd,0x32,0x10,0xe1,0x00,0x2f,0x5d,0xcd,0x2b,0x00,0x1a,0x18,0x10,0xfd,0xed,0x31,0x30,0x13,0x21,0x15,0x23,0x11,0x33,0x15,0x21,0xb8,0xfe,0xfa,0x6a,0x6a,0x01,0x06,0xfe,0xd7,0x7f,0x01,0x6a,0x7e,0x00,0x00,0x01,0xff,0x16,0x04,0x96,0x00,0xea,0x06,0x68,0x00,0x05,0x00,0x14,0x40,0x09,0x00,0x03,0xfd,0x04,0x01,0x00, +0xfc,0x02,0x03,0x2f,0xdd,0xe1,0x00,0x3f,0xed,0xc4,0x31,0x30,0x13,0x23,0x11,0x21,0x35,0x21,0xea,0x6a,0xfe,0x96,0x01,0xd4,0x04,0x96,0x01,0x6a,0x68,0x00,0x00,0x01,0xff,0x52,0x04,0x96,0x00,0xae,0x06,0x0e,0x00,0x0b,0x00,0x12,0xb7,0x05,0x01,0xda,0x00,0x08,0xc2,0x03,0x00,0x2f,0xd4,0xe1,0x00,0x2f,0xed,0xc4,0x31,0x30,0x03,0x37, +0x32,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x23,0xae,0x02,0xd5,0x15,0x88,0x12,0x8e,0x78,0x04,0x96,0x74,0x82,0x48,0x3a,0x37,0x50,0x6c,0x85,0x00,0x01,0xff,0xa6,0xfe,0x5c,0x00,0x5a,0xff,0xc8,0x00,0x0b,0x00,0x28,0x40,0x16,0x0b,0xcb,0x40,0x00,0xc0,0x07,0xcb,0x40,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0x06,0x80,0x09, +0xc9,0x03,0x2f,0xe1,0x1a,0xcc,0x32,0x00,0x2f,0x5d,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x15,0x22,0x15,0x14,0x33,0x5a,0x4d,0x67,0x66,0x4e,0x5e,0x5e,0xfe,0x5c,0x69,0x4d,0x4d,0x69,0x5e,0x58,0x5a,0x00,0x01,0xff,0x4c,0xfe,0x56,0x00,0xb6,0xff,0xc6,0x00,0x07,0x00,0x22,0x40,0x10,0x05,0x00, +0xfd,0x02,0x40,0x03,0x06,0x0e,0x05,0xfc,0x02,0x02,0x01,0x42,0x02,0x01,0x2f,0xcd,0x2b,0x01,0x10,0xf1,0xe1,0x00,0x18,0x2f,0x1a,0xdd,0xed,0x33,0x31,0x30,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0xb4,0x7f,0x6d,0x7e,0xfe,0x56,0x6a,0x01,0x06,0xfe,0xfa,0x6a,0x00,0x01,0xff,0x4c,0xfe,0x56,0x00,0xb6,0xff,0xc6,0x00,0x07,0x00,0x22, +0x40,0x10,0x04,0x02,0x06,0xfd,0x40,0x07,0x01,0x0e,0x02,0xfc,0x05,0x05,0x06,0x42,0x05,0x06,0x2f,0xcd,0x2b,0x01,0x10,0xf1,0xe1,0x00,0x18,0x2f,0x1a,0xfd,0x32,0xc6,0x31,0x30,0x17,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0xb6,0x7e,0x6d,0x7f,0x3a,0x6a,0xfe,0xfa,0x01,0x06,0x6a,0x00,0x00,0x01,0xff,0x4c,0xfe,0x5e,0x00,0xb6,0xff,0xc6, +0x00,0x0b,0x00,0x38,0x40,0x1f,0x03,0x0e,0x0a,0x01,0x04,0xfd,0x07,0x0e,0x40,0x0f,0x08,0x1f,0x08,0x2f,0x08,0x03,0x09,0x03,0x08,0x00,0x0e,0x01,0x04,0x05,0x42,0x05,0x0a,0x07,0x01,0xfc,0x04,0x2f,0xe1,0x39,0x39,0xcd,0x2b,0x01,0x10,0xe1,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0x1a,0xfd,0xfd,0x39,0x39,0xed,0x31,0x30,0x13,0x23,0x15,0x23, +0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0xb6,0x7e,0x6d,0x7f,0x7f,0x6d,0x7e,0xfe,0xdd,0x7f,0x7f,0x6b,0x7e,0x7e,0xff,0xff,0xff,0x03,0xff,0x53,0x00,0xff,0xff,0xbf,0x00,0x07,0x06,0x9a,0xfe,0xc5,0xfd,0x5f,0x00,0x01,0xff,0x1a,0xfe,0x96,0x00,0xe6,0x00,0x35,0x00,0x0a,0x00,0x12,0xb7,0x08,0x91,0x03,0x0a,0x00,0x7e,0x0a,0x06,0x2f, +0xd6,0xe1,0x00,0x2f,0xd4,0xed,0x31,0x30,0x37,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0xe6,0xb3,0x9f,0x42,0x38,0x33,0x3f,0xb2,0x35,0xbd,0xe2,0x14,0xa0,0x1d,0x01,0x08,0x00,0x00,0x01,0xff,0x1a,0xfe,0x96,0x00,0xe6,0x00,0x35,0x00,0x0a,0x00,0x15,0x40,0x09,0x03,0x91,0x08,0x00,0x05,0x05,0x01,0x7e,0x00,0x2f,0xf1,0xc2, +0x2f,0x00,0x2f,0xd4,0xed,0x31,0x30,0x27,0x33,0x10,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0xe6,0xa8,0xb2,0x3f,0x33,0x38,0x42,0x9f,0xb3,0x35,0xfe,0xf8,0x1d,0xa0,0x14,0xe2,0x00,0x02,0xfe,0xdd,0xfe,0xc4,0x01,0x25,0xff,0x89,0x00,0x0b,0x00,0x17,0x00,0x1a,0x40,0x0c,0x06,0x00,0x0c,0xc1,0x12,0x09,0xc0,0x03,0x0f,0xc0,0x03,0x15, +0x2f,0xc6,0xe1,0x10,0xe1,0x00,0x2f,0xed,0x39,0x39,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xc2,0x28,0x3a,0x38,0x28,0x2a,0x3b,0x39,0xfe,0x56,0x29,0x3c,0x39,0x2a,0x29,0x3b,0x39,0xfe,0xc4,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39, +0x2a,0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0xff,0xff,0xff,0x35,0xfe,0x7e,0x00,0xd1,0x00,0x02,0x00,0x07,0x00,0xdc,0xfe,0xe3,0xf9,0xe6,0x00,0x01,0xff,0x9c,0xfe,0x62,0x00,0x64,0xff,0x89,0x00,0x0b,0x00,0x3b,0xb5,0x01,0x18,0x09,0x12,0x48,0x00,0xb8,0xff,0xc0,0xb4,0x13,0x16,0x48,0x00,0x03,0xb8,0x01,0x02,0x40,0x09,0x0f,0x07,0x1f, +0x07,0x2f,0x07,0x03,0x07,0x01,0xb8,0xff,0xc0,0xb5,0x09,0x12,0x48,0x01,0x03,0x0a,0xb9,0x01,0x01,0x00,0x05,0x2f,0xe1,0x39,0xc4,0x2b,0x00,0x2f,0x5d,0xfd,0xc4,0x2b,0x31,0x30,0x2b,0x03,0x27,0x36,0x37,0x22,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x4a,0x16,0x56,0x06,0x60,0x5a,0x30,0x3e,0xfe,0x62,0x36,0x16,0x3a,0x50,0x51,0x41,0x30, +0x91,0x00,0xff,0xff,0xff,0x56,0xfe,0x50,0x00,0xaa,0x00,0x00,0x00,0x07,0x00,0xdd,0xff,0x23,0x00,0x00,0xff,0xff,0xff,0x5d,0xfe,0x70,0x00,0x71,0x00,0x00,0x00,0x07,0x00,0xdf,0xff,0x1f,0x00,0x00,0x00,0x01,0xff,0xcb,0xfe,0x1e,0x00,0x35,0xff,0x89,0x00,0x03,0x00,0x16,0x40,0x0c,0x01,0x0f,0x02,0x1f,0x02,0x2f,0x02,0x03,0x02,0x00, +0xfc,0x01,0x2f,0xe1,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x13,0x23,0x11,0x33,0x35,0x6a,0x6a,0xfe,0x1e,0x01,0x6b,0x00,0x00,0x01,0xfe,0x9c,0xfe,0x5c,0x01,0x64,0xff,0x89,0x00,0x07,0x00,0x22,0x40,0x13,0x00,0x05,0x80,0x03,0xfd,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0xfc,0x01,0x04,0xfc,0x05,0x2f,0xe1,0xd4,0xe1,0x00,0x2f,0x5d, +0xed,0x1a,0xcd,0x32,0x31,0x30,0x01,0x23,0x35,0x21,0x15,0x23,0x11,0x21,0x01,0x64,0x68,0xfe,0x08,0x68,0x02,0xc8,0xfe,0x5c,0xc5,0xc5,0x01,0x2d,0x00,0x01,0xfe,0xb1,0xfe,0xbc,0x01,0x4f,0xff,0x89,0x00,0x14,0x00,0x44,0x40,0x26,0x00,0x05,0x10,0x03,0x0a,0x12,0x03,0x0d,0xc5,0x40,0x07,0x80,0x0f,0x0a,0x1f,0x0a,0x2f,0x0a,0x03,0x09, +0x03,0x0a,0x14,0xff,0x00,0x0e,0x10,0x0b,0xff,0x0a,0x0a,0x0f,0x42,0x0a,0x80,0x10,0xfe,0x0f,0x2f,0xe1,0x1a,0xcc,0x2b,0x01,0x10,0xe1,0x10,0xf0,0xe1,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0x1a,0xdc,0x1a,0xed,0x39,0x39,0x12,0x17,0x39,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x33,0x14,0x33,0x32,0x35,0x33,0x14, +0x33,0x32,0x35,0x01,0x4f,0x6a,0x57,0x5a,0x34,0x35,0x5b,0x57,0x68,0x61,0x5f,0x69,0x4c,0x6a,0x5e,0x77,0x59,0x74,0x44,0x44,0x72,0x5b,0x75,0x75,0x75,0x75,0x00,0x01,0xfe,0xe8,0xfe,0x40,0x01,0x18,0xff,0x89,0x00,0x06,0x00,0x1a,0x40,0x0d,0x00,0xc0,0x03,0x02,0x80,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x00,0x2f,0x5d,0x1a,0xcd, +0x01,0x2f,0x1a,0xcc,0x31,0x30,0x05,0x03,0x23,0x03,0x33,0x17,0x37,0x01,0x18,0xd4,0x86,0xd6,0x72,0xa4,0xa4,0x77,0xfe,0xb7,0x01,0x49,0xe5,0xe5,0x00,0x01,0xfe,0xe8,0xfe,0x3e,0x01,0x1a,0xff,0x89,0x00,0x06,0x00,0x1a,0x40,0x0d,0x00,0xc0,0x04,0x04,0x80,0x0f,0x05,0x1f,0x05,0x2f,0x05,0x03,0x05,0x00,0x2f,0x5d,0x1a,0xcd,0x01,0x2f, +0x1a,0xcc,0x31,0x30,0x01,0x23,0x27,0x07,0x23,0x13,0x33,0x01,0x1a,0x78,0xa4,0xa6,0x70,0xd6,0x86,0xfe,0x3e,0xe5,0xe5,0x01,0x4b,0x00,0x00,0x01,0xfe,0xee,0xfe,0x8e,0x01,0x12,0xff,0x89,0x00,0x0c,0x00,0x29,0x40,0x16,0x0c,0xc4,0x00,0xc0,0x07,0xc4,0x06,0x0c,0x06,0x09,0xdb,0x40,0x03,0x80,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06, +0x00,0x2f,0x5d,0x1a,0xdc,0x1a,0xed,0x10,0xc4,0x01,0x2f,0xe1,0x1a,0xdc,0xe1,0x31,0x30,0x05,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x01,0x12,0x0a,0x9b,0x71,0x75,0x95,0x04,0x64,0x0c,0xa0,0x44,0x61,0x09,0x77,0x72,0x89,0x89,0x72,0x9b,0x54,0x47,0xff,0xff,0xfe,0xe9,0xff,0x13,0x01,0x19,0x00,0x01,0x00,0x07, +0x04,0x2a,0xfd,0xa9,0xfa,0x6d,0x00,0x01,0xfe,0xc0,0xfe,0x9e,0x01,0x42,0xff,0x9e,0x00,0x13,0x00,0x22,0x40,0x11,0x13,0xc4,0x00,0x09,0xc4,0x0a,0x09,0x11,0xda,0x03,0x07,0xda,0x0d,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xd4,0xfd,0xdc,0xed,0xc6,0x01,0x2f,0xe1,0xd4,0xe1,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15, +0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x42,0x60,0x52,0x47,0x5b,0x4d,0x2a,0x59,0x5e,0x61,0x56,0x41,0x54,0x4a,0x36,0x53,0x62,0x69,0x85,0x34,0x2a,0x70,0x69,0x82,0x33,0x2d,0x75,0xff,0xff,0xff,0x05,0xff,0x51,0x01,0x01,0xff,0xbe,0x00,0x07,0x00,0xd9,0xfe,0xc7,0xfa,0x8f,0x00,0x01,0xfe,0x57,0xfe,0xd7,0x01,0xa9, +0xff,0x4e,0x00,0x03,0x00,0x0d,0xb4,0x01,0xda,0x02,0x00,0x01,0x2f,0x2f,0x00,0x2f,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x01,0xa9,0xfc,0xae,0x03,0x52,0xfe,0xd7,0x77,0xff,0xff,0xfe,0x57,0xfd,0xfe,0x01,0xa9,0xff,0x62,0x00,0x07,0x01,0x35,0xfe,0x57,0x00,0x00,0x00,0x01,0xfe,0xc0,0x01,0x9e,0x01,0x42,0x02,0x9e,0x00,0x13,0x00,0x1e, +0x40,0x0e,0x13,0xc4,0x00,0x09,0xc4,0x0a,0x13,0x07,0xda,0x0d,0x11,0xda,0x09,0x03,0x00,0x2f,0xc6,0xfd,0xdc,0xed,0xc6,0x01,0x2f,0xe1,0xd4,0xe1,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x42,0x60,0x52,0x47,0x5b,0x4d,0x2a,0x59,0x5e,0x61,0x56,0x41,0x54, +0x4a,0x36,0x53,0x02,0x9e,0x69,0x85,0x34,0x2a,0x70,0x69,0x82,0x33,0x2d,0x75,0x00,0x00,0x01,0xff,0x02,0x01,0xe6,0x00,0xfe,0x02,0x52,0x00,0x03,0x00,0x0e,0xb4,0x00,0x01,0x02,0xe2,0x01,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x35,0x21,0xfe,0xfe,0x04,0x01,0xfc,0x01,0xe6,0x6c,0xff,0xff,0xfe,0x58,0xff,0xc5,0x01,0xaa, +0x00,0x3d,0x00,0x07,0x01,0x95,0xfe,0x58,0xfa,0x51,0x00,0x01,0xfe,0x66,0x00,0x77,0x01,0x9c,0x03,0xc2,0x00,0x03,0x00,0x2a,0xb6,0x03,0x02,0x01,0x00,0x03,0x00,0x01,0xb8,0x01,0x00,0x40,0x0a,0x02,0x03,0x14,0x02,0x03,0x01,0x02,0x00,0x00,0x02,0x2f,0xcd,0x00,0x2f,0x2f,0xc1,0x87,0x05,0x2b,0x10,0x00,0xc1,0x87,0x05,0x7d,0x10,0xc4, +0x31,0x30,0x01,0x01,0x23,0x01,0x01,0x9c,0xfd,0x50,0x86,0x02,0xae,0x03,0xc2,0xfc,0xb5,0x03,0x4b,0x00,0x00,0x01,0xfe,0x70,0xff,0x12,0x01,0x92,0x05,0x9a,0x00,0x03,0x00,0x2b,0xb6,0x03,0x02,0x01,0x00,0x03,0x00,0x01,0xb8,0x01,0x00,0x40,0x0b,0x02,0x03,0x14,0x02,0x03,0x01,0x02,0x00,0x03,0x00,0x02,0x2f,0xcd,0x00,0x3f,0x2f,0xc1, +0x87,0x05,0x2b,0x10,0x00,0xc1,0x87,0x05,0x7d,0x10,0xc4,0x31,0x30,0x01,0x01,0x23,0x01,0x01,0x92,0xfd,0x50,0x72,0x02,0xae,0x05,0x9a,0xf9,0x78,0x06,0x88,0x00,0x01,0xff,0xa6,0xfe,0x5c,0x00,0x5a,0xff,0xc8,0x00,0x0b,0x00,0x2a,0x40,0x17,0x01,0xcb,0x40,0x00,0xc0,0x05,0xcb,0x40,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0x06, +0x06,0x80,0x09,0xc9,0x03,0x2f,0xf1,0x1a,0xc8,0x2f,0x32,0x00,0x2f,0x5d,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x03,0x35,0x32,0x35,0x34,0x23,0x35,0x32,0x16,0x15,0x14,0x06,0x5a,0x5e,0x5e,0x4f,0x65,0x67,0xfe,0x5c,0x5c,0x5a,0x58,0x5e,0x67,0x4f,0x4d,0x69,0x00,0x01,0xfe,0x9c,0xfe,0x5c,0x01,0x64,0xff,0x89,0x00,0x07,0x00,0x24, +0x40,0x14,0x04,0xfd,0x40,0x01,0x80,0x06,0x0f,0x02,0x1f,0x02,0x2f,0x02,0x03,0x02,0x07,0xfc,0x06,0x03,0xfc,0x02,0x2f,0xe1,0xd4,0xe1,0x00,0x2f,0x5d,0x33,0x1a,0xdd,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x15,0x21,0x35,0x33,0x01,0x64,0xfd,0x38,0x68,0x01,0xf8,0x68,0xfe,0x5c,0x01,0x2d,0xc5,0xc5,0x00,0x02,0xff,0x44,0xfe,0x10, +0x00,0xbc,0xff,0x89,0x00,0x03,0x00,0x07,0x00,0x23,0x40,0x14,0x01,0xc4,0x2f,0x07,0x01,0x07,0x06,0xc4,0x02,0x40,0x09,0x0d,0x48,0x02,0x03,0xc4,0x05,0x06,0xc4,0x02,0x2f,0xe1,0xdd,0xe1,0x00,0x2f,0x2b,0xed,0xdd,0x5d,0xed,0x31,0x30,0x13,0x21,0x11,0x21,0x03,0x35,0x23,0x15,0xbc,0xfe,0x88,0x01,0x78,0x5a,0xc4,0xfe,0x10,0x01,0x79, +0xfe,0xe1,0xc5,0xc5,0x00,0x01,0xfe,0xa5,0xfe,0xa8,0x01,0x5b,0xff,0x89,0x00,0x16,0x00,0x45,0x40,0x25,0x00,0x0d,0x0d,0x12,0x07,0x80,0x14,0x03,0x0a,0xc5,0x40,0x0f,0x10,0x1f,0x10,0x2f,0x10,0x03,0x09,0x03,0x10,0x01,0xff,0x00,0x0e,0x06,0x0c,0xff,0x0d,0x0d,0x07,0x42,0x0d,0x80,0x06,0xfe,0x07,0x2f,0xe1,0x1a,0xce,0x2b,0x01,0x10, +0xe1,0x10,0xf2,0xe1,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0x1a,0xed,0x39,0x39,0x1a,0xcc,0x39,0x39,0x7c,0x2f,0x33,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x16,0x01,0x5b,0x62,0x11,0x4f,0x32,0x40,0x4e,0x41,0x32,0x4e,0x11,0x62,0x0b,0x6e,0x48,0x70,0x2a, +0x28,0x72,0x46,0x70,0xfe,0xee,0x43,0x55,0x34,0x35,0x54,0x43,0x43,0x58,0x64,0x64,0x5a,0x00,0x00,0x01,0xff,0x30,0x04,0xc2,0x00,0xd2,0x06,0x65,0x00,0x0b,0x00,0x09,0xb1,0x07,0x04,0x19,0x2f,0x00,0x2f,0x31,0x30,0x13,0x07,0x17,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x37,0xd2,0x85,0x85,0x4c,0x86,0x85,0x4b,0x85,0x85,0x4c,0x86, +0x85,0x06,0x1a,0x86,0x84,0x4e,0x86,0x86,0x4c,0x85,0x85,0x4d,0x85,0x85,0x00,0x01,0xff,0x9e,0x05,0x08,0x00,0x62,0x07,0x1c,0x00,0x11,0x00,0x27,0x40,0x13,0x0a,0xc5,0x40,0x09,0xc0,0x01,0xc5,0x40,0x00,0x09,0x03,0xc4,0x10,0x00,0x80,0x0c,0xc4,0x07,0x00,0x2f,0xd4,0xe1,0x1a,0x10,0xdd,0xe1,0xc4,0x00,0x2f,0x1a,0xed,0x1a,0xdc,0x1a, +0xed,0x31,0x30,0x03,0x35,0x32,0x35,0x34,0x27,0x26,0x35,0x34,0x33,0x15,0x22,0x15,0x14,0x17,0x16,0x15,0x14,0x62,0x6e,0x35,0x35,0xc0,0x6a,0x35,0x35,0x05,0x08,0x5e,0x42,0x1c,0x42,0x41,0x36,0x9f,0x5e,0x41,0x1b,0x40,0x40,0x3a,0xa0,0x00,0x00,0x02,0xfe,0x57,0x05,0x74,0x01,0xa9,0x07,0x04,0x00,0x03,0x00,0x07,0x00,0x19,0x40,0x0b, +0x02,0xda,0x01,0x06,0xda,0x05,0x07,0x06,0x01,0x00,0x01,0x2f,0x2f,0x12,0x39,0x39,0x00,0x2f,0xfd,0xd6,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x01,0xa9,0xfc,0xae,0x03,0x52,0xfc,0xae,0x03,0x52,0x06,0x8e,0x76,0xfe,0x70,0x78,0x00,0x00,0x01,0xfe,0x70,0x04,0xc2,0xff,0xf6,0x06,0x0a,0x00,0x03,0x00,0x0e,0xb4,0x03, +0x80,0x01,0x02,0x00,0x2f,0xcd,0x00,0x2f,0x1a,0xcd,0x31,0x30,0x03,0x23,0x01,0x33,0x0a,0x7f,0xfe,0xf9,0xa8,0x04,0xc2,0x01,0x48,0x00,0x00,0x01,0x00,0x0a,0x04,0xc2,0x01,0x90,0x06,0x0a,0x00,0x03,0x00,0x0e,0xb4,0x03,0x02,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0xcd,0x31,0x30,0x01,0x01,0x23,0x13,0x01,0x90,0xfe,0xf9,0x7f,0xe0, +0x06,0x0a,0xfe,0xb8,0x01,0x48,0xff,0xff,0xfe,0xc0,0x04,0xb2,0x01,0x41,0x05,0xb2,0x00,0x07,0x00,0xd8,0xfe,0x9d,0x00,0x00,0x00,0x01,0xff,0x9c,0x04,0xc2,0x00,0x64,0x05,0xea,0x00,0x0b,0x00,0x33,0xb5,0x01,0x18,0x09,0x12,0x48,0x00,0xb8,0xff,0xc0,0xb4,0x13,0x16,0x48,0x00,0x03,0xb8,0x01,0x02,0xb2,0x07,0x00,0x01,0xb8,0xff,0xc0, +0xb5,0x09,0x12,0x48,0x01,0x03,0x0a,0xb9,0x01,0x01,0x00,0x05,0x2f,0xe1,0x39,0xc4,0x2b,0x00,0x3f,0xfd,0xc4,0x2b,0x31,0x30,0x2b,0x03,0x27,0x36,0x37,0x22,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x4a,0x16,0x56,0x06,0x60,0x5a,0x30,0x3e,0x04,0xc2,0x36,0x16,0x3a,0x50,0x52,0x42,0x2f,0x91,0x00,0x00,0x03,0xfe,0xaa,0x04,0x96,0x01,0x56, +0x06,0x00,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x2c,0x40,0x15,0x0a,0x04,0x16,0xc1,0x40,0x10,0x10,0x03,0x80,0x02,0x13,0xc0,0x19,0x02,0x40,0x0d,0xc0,0x07,0x00,0x80,0x02,0x2f,0x1a,0xdd,0xd4,0xe1,0x1a,0x10,0xde,0xe1,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x13,0x03,0x23,0x13,0x13,0x22,0x26,0x35,0x34,0x36, +0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xa8,0xb0,0x5e,0x66,0xf2,0x29,0x37,0x38,0x28,0x29,0x3b,0x3a,0xfd,0xf0,0x28,0x3a,0x3a,0x28,0x2a,0x3a,0x3a,0x06,0x00,0xfe,0x96,0x01,0x6a,0xfe,0xba,0x36,0x2a,0x2a,0x39,0x39,0x2a,0x28,0x38,0x37,0x29,0x2a,0x39,0x39,0x2a,0x28,0x38,0x00, +0x00,0x01,0xff,0x64,0xfe,0x40,0x00,0x9c,0xff,0x89,0x00,0x0c,0x00,0x23,0x40,0x13,0x0c,0x0a,0xc3,0x40,0x02,0x80,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0x00,0x07,0xc2,0x06,0x2f,0xf1,0xc2,0x2f,0x00,0x2f,0x5d,0x1a,0xdc,0x1a,0xed,0x32,0x31,0x30,0x13,0x06,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x37,0x9c,0x3b, +0x55,0x4b,0x5d,0x78,0x46,0x27,0x29,0xfe,0x90,0x50,0x52,0x47,0xb0,0xba,0x43,0x2a,0x00,0x01,0xfe,0x9c,0x04,0xc2,0x01,0x64,0x05,0xf0,0x00,0x07,0x00,0x1b,0x40,0x0d,0x00,0x05,0x80,0x03,0xfd,0x06,0x00,0x00,0xfc,0x01,0x04,0xfc,0x05,0x2f,0xe1,0xd4,0xe1,0x00,0x3f,0xed,0x1a,0xcd,0x32,0x31,0x30,0x01,0x23,0x35,0x21,0x15,0x23,0x11, +0x21,0x01,0x64,0x68,0xfe,0x08,0x68,0x02,0xc8,0x04,0xc2,0xc5,0xc5,0x01,0x2e,0x00,0x00,0x02,0xfe,0x2a,0xfd,0xfe,0x01,0xd6,0xff,0xaa,0x00,0x03,0x00,0x07,0x00,0x10,0xb6,0x06,0x05,0x02,0x50,0x01,0x01,0x01,0x00,0x2f,0x5d,0xcd,0x2f,0xcd,0x31,0x30,0x05,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x01,0xd6,0xfc,0x54,0x03,0xac,0xfc,0x54, +0x03,0xac,0xda,0x84,0xfe,0x54,0x84,0x00,0x00,0x02,0xff,0x58,0xfe,0x1e,0x00,0xa8,0xff,0x89,0x00,0x03,0x00,0x07,0x00,0x21,0x40,0x12,0x02,0x01,0x05,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0xfc,0x01,0x01,0x04,0xfc,0x05,0x2f,0xf1,0xca,0x2f,0xe1,0x00,0x2f,0x5d,0xcd,0x39,0x39,0x31,0x30,0x13,0x23,0x11,0x33,0x03,0x23,0x11, +0x33,0xa8,0x6a,0x6a,0xe6,0x6a,0x6a,0xfe,0x1e,0x01,0x6b,0xfe,0x95,0x01,0x6b,0x00,0x00,0x01,0xff,0x4c,0xfe,0x56,0x00,0xb6,0xff,0xc6,0x00,0x05,0x00,0x12,0xb7,0x01,0x04,0xfd,0x05,0x01,0xfc,0x02,0x05,0x2f,0xd4,0xe1,0x00,0x2f,0xfd,0xc4,0x31,0x30,0x17,0x11,0x23,0x11,0x23,0x35,0xb6,0x6c,0xfe,0x3a,0xfe,0x90,0x01,0x06,0x6a,0x00, +0x00,0x01,0xfe,0xc0,0x04,0xc4,0x01,0x40,0x06,0x74,0x00,0x19,0x00,0x3c,0x40,0x1d,0x05,0xc4,0x06,0x12,0xc4,0x13,0x0e,0x0b,0x09,0x10,0x18,0x01,0x03,0x16,0x0d,0x00,0x0c,0x19,0x06,0x0c,0x13,0x06,0x10,0xda,0x16,0x03,0xda,0x09,0x13,0x00,0x2f,0xd4,0xfd,0xdc,0xed,0xc4,0x10,0xc6,0x10,0xc6,0x11,0x39,0x39,0x11,0x12,0x39,0x39,0x11, +0x12,0x39,0x39,0x01,0x2f,0xe1,0xd4,0xe1,0x31,0x30,0x13,0x07,0x16,0x33,0x32,0x35,0x33,0x14,0x06,0x23,0x22,0x27,0x07,0x27,0x37,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x37,0xa6,0x58,0x1e,0x1e,0x54,0x62,0x5f,0x53,0x3c,0x44,0x5a,0x5a,0x56,0x1e,0x1c,0x58,0x5e,0x60,0x56,0x3a,0x40,0x5c,0x06,0x3a,0x88,0x0a,0x74,0x68, +0x85,0x21,0x8c,0x3a,0x84,0x0c,0x72,0x6e,0x7e,0x23,0x8f,0x00,0x00,0x03,0xfe,0xc0,0x04,0xc4,0x01,0x40,0x07,0x62,0x00,0x0b,0x00,0x1f,0x00,0x2b,0x00,0x35,0x40,0x1b,0x09,0x03,0x29,0xc0,0x23,0x23,0x16,0x1f,0xc4,0x0c,0x15,0xc4,0x16,0x06,0xc1,0x00,0x0c,0x13,0xda,0x19,0x1d,0xda,0x0f,0x16,0x26,0xc1,0x20,0x00,0x2f,0xfd,0xd6,0xd4, +0xfd,0xdc,0xed,0xd4,0xd6,0xed,0x01,0x2f,0xe1,0xd4,0xe1,0x12,0x39,0x2f,0xe1,0x39,0x39,0x31,0x30,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01, +0x28,0x3b,0x3c,0x27,0x29,0x3a,0x3a,0x01,0x18,0x5f,0x53,0x46,0x5c,0x4c,0x2a,0x58,0x5e,0x60,0x56,0x42,0x54,0x49,0x35,0x54,0xdf,0x29,0x3a,0x3c,0x27,0x29,0x3a,0x3a,0x06,0xa0,0x39,0x29,0x2a,0x36,0x37,0x29,0x29,0x39,0x0a,0x69,0x85,0x33,0x2b,0x70,0x6c,0x7f,0x33,0x2d,0x75,0xfe,0x2e,0x3a,0x29,0x29,0x37,0x37,0x29,0x29,0x3a,0x00, +0x00,0x02,0xfe,0xc0,0x04,0xb2,0x01,0x40,0x06,0xa0,0x00,0x12,0x00,0x25,0x00,0x34,0x40,0x1a,0x25,0x13,0x12,0xc4,0x00,0x1c,0x1d,0x09,0xc4,0x0a,0x00,0x07,0xda,0x0c,0x10,0xda,0x09,0x03,0x13,0x1a,0xda,0x1f,0x23,0xda,0x1d,0x16,0x00,0x2f,0xc4,0xfd,0xdc,0xed,0xd4,0xd6,0xc6,0xfd,0xdc,0xed,0xc4,0x01,0x2f,0xe1,0x39,0x39,0xd4,0xe1, +0x39,0x39,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x13,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x40,0x5c,0x56,0x42,0x57,0x57,0x28,0x58,0x5e,0xb6,0x3e,0x52,0x52,0x32,0x54,0x62,0x5c,0x56,0x42,0x57,0x57, +0x28,0x58,0x5e,0xb6,0x3e,0x52,0x52,0x32,0x54,0x06,0xa0,0x64,0x76,0x25,0x25,0x5c,0xd8,0x26,0x26,0x60,0xfe,0xfe,0x64,0x76,0x25,0x25,0x5c,0xd7,0x25,0x26,0x60,0x00,0x00,0x01,0xfe,0xa8,0xfe,0x6e,0x01,0x58,0xff,0xb6,0x00,0x09,0x00,0x35,0x40,0x1c,0x07,0x05,0x02,0x00,0x0e,0x09,0xfd,0x03,0x40,0x03,0x02,0x42,0x03,0x0f,0x02,0x1f, +0x02,0x2f,0x02,0x03,0x02,0x04,0x03,0x09,0x08,0x06,0x09,0x01,0x2f,0xcd,0x2f,0xcd,0x11,0x39,0x39,0x00,0x2f,0x5d,0xcd,0x2b,0x00,0x1a,0x18,0x10,0xfd,0xed,0x11,0x39,0x39,0x31,0x30,0x03,0x27,0x37,0x15,0x21,0x35,0x17,0x07,0x35,0x21,0xa8,0xb0,0xb0,0x01,0x50,0xb0,0xb0,0xfe,0xb0,0xfe,0x6e,0xa4,0xa4,0x6e,0x6e,0xa4,0xa4,0x6f,0x00, +0x00,0x01,0xff,0x5c,0xfe,0x5c,0x00,0xa4,0xff,0xdb,0x00,0x06,0x00,0x18,0x40,0x0a,0x00,0x04,0x02,0x03,0x04,0x04,0x05,0xfc,0x01,0x02,0x2f,0xdd,0xf1,0xc1,0x2f,0x00,0x2f,0xdd,0x32,0xc6,0x31,0x30,0x03,0x35,0x23,0x37,0x17,0x23,0x15,0x35,0x6f,0xa4,0xa4,0x6f,0xfe,0x5c,0xcf,0xb0,0xb0,0xcf,0x00,0x01,0xfd,0x0e,0x05,0xc2,0x02,0xf2, +0x07,0x00,0x00,0x15,0x00,0x1d,0x40,0x0e,0x00,0x07,0xda,0x0e,0x12,0xda,0x03,0x0b,0x15,0xda,0x00,0x0a,0xda,0x0b,0x2f,0xe1,0x2f,0xe1,0x00,0x2f,0xd4,0xfd,0xd4,0xed,0xc4,0x31,0x30,0x01,0x06,0x06,0x23,0x22,0x25,0x24,0x23,0x22,0x06,0x15,0x23,0x36,0x36,0x33,0x32,0x05,0x04,0x33,0x32,0x36,0x35,0x02,0xf2,0x02,0xb6,0x86,0x92,0xfe, +0xde,0xfe,0xde,0x90,0x58,0x71,0x77,0x02,0xb4,0x88,0x95,0x01,0x23,0x01,0x22,0x8c,0x57,0x72,0x07,0x00,0x86,0xb2,0x5b,0x5a,0x6b,0x50,0x88,0xb0,0x5b,0x5b,0x6c,0x50,0x00,0x01,0xfc,0xe6,0x05,0xc2,0x03,0x1a,0x07,0x40,0x00,0x09,0x00,0x16,0x40,0x09,0x03,0xda,0x08,0x00,0x06,0x01,0x00,0x05,0x06,0x2f,0x33,0x2f,0x32,0x00,0x2f,0xc4, +0xd4,0xed,0x31,0x30,0x01,0x23,0x02,0x21,0x20,0x03,0x23,0x12,0x21,0x20,0x03,0x1a,0xa2,0xba,0xfe,0x41,0xfe,0x43,0xba,0xa2,0xf0,0x02,0x2a,0x02,0x2a,0x05,0xc2,0x01,0x02,0xfe,0xfe,0x01,0x7e,0x00,0x00,0x01,0xfd,0xaf,0xfe,0x6e,0x02,0x51,0xff,0xb6,0x00,0x06,0x00,0x22,0x40,0x12,0x04,0x05,0xfd,0x01,0x40,0x0f,0x02,0x1f,0x02,0x2f, +0x02,0x03,0x02,0x01,0x05,0x80,0x03,0x00,0x2f,0x2f,0x1a,0xcd,0x32,0x00,0x2f,0x5d,0x1a,0xdd,0xfd,0xcd,0x31,0x30,0x05,0x21,0x35,0x17,0x07,0x35,0x21,0xfd,0xaf,0x03,0xf2,0xb0,0xb0,0xfc,0x0e,0xb8,0x6e,0xa4,0xa4,0x6f,0x00,0x02,0x00,0x21,0xff,0xe8,0x04,0x54,0x05,0xec,0x00,0x18,0x00,0x25,0x00,0x4c,0x40,0x2b,0x0d,0x0a,0x04,0x95, +0x40,0x07,0x08,0x11,0x07,0x95,0x09,0x30,0x03,0x15,0x01,0x1d,0x95,0x17,0x16,0x0e,0x23,0x95,0x11,0x10,0x08,0x00,0x0b,0x0b,0x0a,0x14,0x83,0x20,0x20,0x27,0x02,0x0d,0x0a,0x07,0x04,0x19,0x84,0x05,0x03,0x2f,0xc6,0xe9,0x17,0x39,0x12,0x39,0x2f,0xe9,0x11,0x39,0x2f,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x2b,0x00,0x18,0x2f, +0x1a,0xed,0x39,0x39,0x31,0x30,0x25,0x23,0x15,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4c,0x04,0xa2,0x85,0x85,0xa2,0xf8,0xf8,0x04,0x79,0xe9,0xc5,0xe1,0xfb,0xda,0xc7,0x70,0xa4,0x80, +0x94,0xac,0x9e,0x89,0x8f,0xae,0x94,0x94,0x04,0xb4,0x8c,0xac,0xac,0x8c,0xfe,0x98,0xcc,0xfe,0xef,0xe9,0xff,0x00,0xfe,0xca,0x02,0x49,0x8f,0x7f,0xb1,0xe1,0xc5,0xaf,0xc7,0xc7,0x00,0x03,0xff,0xac,0x00,0x00,0x04,0x81,0x05,0x9a,0x00,0x1b,0x00,0x23,0x00,0x2b,0x00,0x48,0x40,0x26,0x08,0x08,0x00,0x0d,0x14,0x24,0x91,0x1d,0x1d,0x0d, +0x25,0x91,0x00,0x12,0x1c,0x01,0x91,0x0d,0x03,0x14,0x25,0x18,0x7d,0x29,0x29,0x11,0x7d,0x21,0x21,0x2d,0x00,0x05,0x7e,0x0a,0x1d,0x25,0x7e,0x00,0x2f,0xe9,0x32,0xd4,0xe1,0x11,0x12,0x39,0x2f,0xe9,0x39,0x2f,0xe9,0x11,0x39,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x11,0x12,0x39,0x2f,0x31,0x30,0x21,0x11,0x23,0x22, +0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x04,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x01,0x0e,0x18,0x51,0x59,0x14,0x9e,0x16,0xc3,0xa1,0x01,0x96,0xba,0xda,0x84,0x74,0x91,0xae,0xfe,0xf8,0xc9,0xfa,0xac,0x8a, +0x9d,0xfe,0xee,0xc1,0xe4,0x94,0xa3,0xfe,0xa6,0x05,0x02,0x5d,0x4d,0x37,0x33,0x38,0x42,0x84,0xae,0xb6,0x92,0x7a,0xb4,0x26,0x04,0x11,0xb9,0x94,0xb8,0xe4,0x05,0x02,0xfe,0x31,0x85,0x79,0xd1,0xfd,0x9a,0xfd,0xfc,0x8c,0x7a,0xfe,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x38,0x05,0x9a,0x00,0x0c,0x00,0x14,0x00,0x2e,0x40,0x18,0x0d,0x91, +0x05,0x05,0x01,0x0e,0x91,0x00,0x12,0x04,0x91,0x01,0x03,0x02,0x02,0x09,0x7d,0x12,0x12,0x16,0x05,0x0e,0x7e,0x00,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0xbc, +0x02,0xfe,0xfd,0xaa,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa2,0xfe,0xc9,0x05,0x9a,0x98,0xfe,0x38,0xcf,0xbf,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8c,0x7e,0x01,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x54,0x05,0xec,0x00,0x12,0x00,0x1f,0x00,0x36,0x40,0x1d,0x08,0x00,0x0b,0x17,0x95,0x11,0x16,0x03,0x15,0x1d,0x95,0x0b, +0x10,0x07,0x95,0x04,0x00,0x05,0x05,0x0e,0x83,0x1a,0x1a,0x21,0x14,0x01,0x08,0x84,0x03,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x25,0x23,0x15,0x23,0x11,0x21,0x15,0x21,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33, +0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4c,0x04,0xa2,0x03,0x25,0xfd,0x7d,0x04,0x79,0xe9,0xc5,0xe1,0xfb,0xda,0xc7,0x70,0xa4,0x80,0x94,0xac,0x9e,0x89,0x8f,0xae,0x94,0x94,0x05,0xec,0x8c,0xfd,0xec,0xcc,0xfe,0xef,0xe9,0xff,0x00,0xfe,0xca,0x02,0x49,0x8f,0x7f,0xb1,0xe1,0xc5,0xaf,0xc7,0xc7,0x00,0x02,0x00,0x33,0x00,0x00, +0x04,0x38,0x05,0xb2,0x00,0x0d,0x00,0x15,0x00,0x2b,0x40,0x16,0x0e,0x91,0x06,0x06,0x05,0x0f,0x91,0x00,0x12,0x03,0x05,0x04,0x0a,0x7d,0x13,0x13,0x17,0x02,0x06,0x0f,0x7e,0x00,0x2f,0xe1,0x32,0xc6,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xcd,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x27,0x35,0x25,0x33,0x11,0x21,0x32,0x16,0x15, +0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0xbc,0x89,0x01,0x1b,0x16,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa0,0xfe,0xcb,0x04,0x81,0x77,0x16,0xa4,0xfd,0x86,0xcd,0xbf,0xc6,0xe6,0x02,0xa4,0xfd,0xf2,0x8e,0x7e,0x01,0x02,0x00,0x02,0x00,0x21,0xff,0xe8,0x04,0x54,0x05,0xec,0x00,0x13,0x00,0x20,0x00,0x33, +0x40,0x1b,0x09,0x01,0x0c,0x18,0x95,0x12,0x16,0x03,0x15,0x1e,0x95,0x0c,0x10,0x06,0x08,0x00,0x0f,0x83,0x1b,0x1b,0x22,0x14,0x01,0x09,0x84,0x05,0x03,0x2f,0xc6,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xcd,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x25,0x23,0x15,0x23,0x11,0x27,0x35,0x25,0x33,0x11,0x33,0x36,0x33, +0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4c,0x04,0xa2,0x85,0x01,0x10,0x17,0x04,0x79,0xe9,0xc5,0xe1,0xfb,0xda,0xc7,0x70,0xa4,0x80,0x94,0xac,0x9e,0x89,0x8f,0xae,0x94,0x94,0x04,0xc2,0x73,0x17,0xa0,0xfd,0x60,0xcc,0xfe,0xef,0xe9,0xff,0x00,0xfe,0xca,0x02,0x49, +0x8f,0x7f,0xb1,0xe1,0xc5,0xaf,0xc7,0xc7,0x00,0x01,0x00,0x6a,0xff,0xe8,0x04,0x98,0x05,0xb2,0x00,0x15,0x00,0x22,0x40,0x11,0x01,0x03,0x91,0x14,0x13,0x0b,0x09,0x91,0x0e,0x04,0x11,0x7d,0x06,0x06,0x17,0x0b,0x00,0x2f,0x32,0x11,0x39,0x2f,0xe9,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x00,0x11,0x10, +0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x6a,0x9a,0xba,0xf6,0x01,0x34,0xfe,0xe1,0xea,0xd8,0x9d,0x9f,0xed,0x01,0x31,0x01,0x71,0xfe,0x64,0xfe,0xc0,0xcc,0x23,0xb2,0x56,0x01,0x4b,0x01,0x13,0x01,0x07,0x01,0x36,0x60,0xa4,0x54,0xfe,0x76,0xfe,0xc0,0xfe,0xa8,0xfe,0x58,0x00,0x01,0x00,0x5e,0xff,0xe8, +0x05,0x42,0x06,0x83,0x00,0x21,0x00,0x43,0x40,0x24,0x20,0x11,0x01,0x11,0x0f,0x91,0x14,0x13,0x21,0x92,0x00,0x02,0x92,0x1f,0x1a,0x1c,0x1a,0x07,0x09,0x91,0x1a,0x04,0x19,0x06,0x17,0x00,0x1c,0x7f,0x04,0x06,0x12,0x12,0x23,0x0c,0x7d,0x17,0x2f,0xe1,0x12,0x39,0x2f,0xd6,0xd6,0xe1,0xc6,0x11,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x11,0x39, +0x10,0xd4,0xfd,0xd6,0xed,0x3f,0xfd,0xc6,0x5d,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x14,0x17,0x07,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x36,0x36,0x33,0x32,0x17,0x05,0x42,0x2a,0x24,0x71,0x0f,0x09,0xa5,0xb7,0xf1,0xfe,0xd2,0x01,0x1f,0xe9,0xd8,0x9e,0x9f,0xed, +0xfe,0xce,0xfe,0x90,0x01,0x9c,0x01,0x3e,0x5c,0x5e,0x03,0x85,0x68,0x30,0x30,0x05,0xe4,0x14,0x9e,0x3c,0x58,0x06,0x5a,0xfe,0xb5,0xfe,0xed,0xfe,0xfa,0xfe,0xc9,0x60,0xa3,0x54,0x01,0x8a,0x01,0x40,0x01,0x57,0x01,0xa9,0x18,0x5f,0x8a,0x13,0x00,0x01,0x00,0x60,0xff,0xe8,0x04,0x0e,0x04,0xd5,0x00,0x21,0x00,0x48,0x40,0x1d,0x30,0x11, +0x01,0x11,0x11,0x0f,0x95,0x14,0x16,0x21,0x96,0x00,0x02,0x96,0x1f,0x1a,0x1c,0x1a,0x40,0x07,0x01,0x07,0x07,0x09,0x95,0x1a,0x10,0x00,0x1c,0xb8,0x01,0x03,0xb7,0x04,0x06,0x11,0x11,0x23,0x0c,0x83,0x17,0x2f,0xe1,0x12,0x39,0x2f,0xd6,0xd6,0xe1,0xc6,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x12,0x39,0x10,0xd4,0xfd,0xd6,0xed,0x3f,0xed,0x32, +0x2f,0x5d,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x14,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x17,0x04,0x0e,0x23,0x20,0x65,0x08,0x06,0x93,0x7d,0x95,0xbb,0xbd,0x9f,0x86,0x76,0x76,0xa2,0xdd,0xfe,0xf5,0x01,0x1a,0xe0,0x4b,0x41,0x02, +0x77,0x59,0x28,0x2e,0x04,0x42,0x12,0x8e,0x54,0x2e,0x04,0x4e,0xdf,0xb9,0xb4,0xd0,0x59,0x9c,0x47,0x01,0x1f,0xe5,0xef,0x01,0x3d,0x14,0x57,0x7a,0x13,0x00,0x00,0x02,0x00,0x1c,0x00,0x00,0x05,0x3e,0x05,0x9a,0x00,0x0b,0x00,0x17,0x00,0x43,0x40,0x0a,0x10,0x0d,0x01,0x91,0x40,0x04,0x05,0x00,0x04,0x91,0xb8,0x01,0x00,0x40,0x17,0x30, +0x11,0x91,0x00,0x12,0x0c,0x91,0x05,0x03,0x0f,0x0f,0x11,0x08,0x7d,0x15,0x15,0x19,0x0d,0x04,0x11,0x7e,0x02,0x00,0x2f,0xc6,0xe1,0x39,0x39,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x20,0x11,0x10,0x00,0x21,0x03,0x11,0x21, +0x15,0x21,0x11,0x33,0x20,0x00,0x11,0x10,0x21,0xbc,0xa0,0xa0,0x01,0x8c,0x02,0xf6,0xfe,0x5b,0xfe,0x9f,0xd4,0x01,0x50,0xfe,0xb0,0xd6,0x01,0x1a,0x01,0x3a,0xfd,0xb6,0x02,0x81,0x9b,0x02,0x7e,0xfd,0x45,0xfe,0xb2,0xfe,0x6f,0x05,0x02,0xfe,0x1a,0x9b,0xfe,0x17,0x01,0x2e,0x01,0x15,0x02,0x27,0x00,0x02,0xff,0xac,0x00,0x00,0x05,0x90, +0x05,0x9a,0x00,0x13,0x00,0x1b,0x00,0x2e,0x40,0x18,0x08,0x08,0x0d,0x15,0x91,0x00,0x12,0x14,0x01,0x91,0x0d,0x03,0x05,0x7e,0x0a,0x00,0x10,0x7d,0x19,0x19,0x1d,0x15,0x7e,0x00,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x10,0xd4,0xe1,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0x31,0x30,0x21,0x11,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26, +0x35,0x34,0x36,0x33,0x21,0x20,0x11,0x10,0x00,0x21,0x03,0x11,0x33,0x20,0x00,0x11,0x10,0x21,0x01,0x0e,0x18,0x51,0x59,0x14,0x9e,0x16,0xc3,0xa1,0x01,0x8a,0x02,0xf6,0xfe,0x5b,0xfe,0x9e,0xd3,0xd6,0x01,0x1a,0x01,0x39,0xfd,0xb7,0x05,0x02,0x5d,0x4d,0x37,0x33,0x38,0x42,0x84,0xae,0xfd,0x45,0xfe,0xb4,0xfe,0x6d,0x05,0x02,0xfb,0x96, +0x01,0x2e,0x01,0x15,0x02,0x27,0x00,0x02,0x00,0x5c,0x00,0x00,0x03,0xd7,0x05,0x9a,0x00,0x0c,0x00,0x13,0x00,0x2c,0x40,0x17,0x0e,0x91,0x08,0x08,0x0c,0x0d,0x91,0x00,0x12,0x09,0x91,0x0c,0x03,0x00,0x7e,0x08,0x0d,0x0d,0x15,0x0a,0x11,0x7d,0x04,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed, +0x31,0x30,0x21,0x21,0x22,0x26,0x35,0x34,0x24,0x33,0x33,0x11,0x21,0x35,0x21,0x03,0x11,0x23,0x20,0x11,0x10,0x21,0x03,0xd7,0xfe,0x5c,0xe5,0xf2,0x01,0x0a,0xe0,0xe9,0xfd,0xaa,0x02,0xfe,0xa8,0xe7,0xfe,0xc6,0x01,0x36,0xce,0xc2,0xc2,0xe6,0x01,0xc8,0x9a,0xfa,0xfa,0x02,0x0e,0xfe,0xf4,0xfe,0xfe,0x00,0x00,0x02,0x00,0x60,0xff,0xe8, +0x04,0x0e,0x05,0xec,0x00,0x12,0x00,0x1f,0x00,0x34,0x40,0x1c,0x0e,0x02,0x0b,0x1d,0x95,0x05,0x16,0x00,0x15,0x17,0x95,0x0b,0x10,0x0f,0x95,0x12,0x00,0x00,0x84,0x13,0x02,0x0e,0x0e,0x21,0x1a,0x83,0x10,0x08,0x2f,0xc4,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x21,0x23, +0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x21,0x35,0x21,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x0e,0xa2,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5,0xd3,0x60,0x04,0xfd,0x7e,0x03,0x24,0xa2,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0xab,0xae,0xc6,0x01,0x13,0xed,0xfe,0x01, +0x32,0xa6,0x01,0xee,0x8c,0xfb,0xe3,0x97,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0xc6,0x00,0x00,0x02,0x00,0x60,0xfe,0x1e,0x04,0x5c,0x04,0x18,0x00,0x1a,0x00,0x26,0x00,0x44,0x40,0x25,0x00,0x0d,0x1b,0x03,0x06,0x16,0x10,0x09,0x01,0x09,0x0b,0x95,0x06,0x1c,0x21,0x95,0x16,0x10,0x1b,0x00,0x24,0x0d,0x83,0x03,0x03,0x13,0x08,0x08,0x13,0x19, +0x83,0x1e,0x1e,0x28,0x24,0x83,0x13,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x11,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xfd,0xc6,0x5d,0x11,0x12,0x17,0x39,0x31,0x30,0x25,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x00,0x33,0x32,0x00,0x15,0x10,0x05, +0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0xdd,0x7b,0x56,0xd9,0xac,0xad,0x90,0x96,0xab,0xd9,0x58,0xc8,0xd3,0xb3,0x01,0x22,0xe4,0xdf,0x01,0x17,0xfe,0x00,0xc6,0x92,0xba,0x9c,0x9a,0xbc,0x81,0x48,0x53,0x7e,0x50,0x71,0x98,0x4c,0xac,0x6c,0x7f,0x34,0x5d,0x77,0x7e,0xf7,0x92,0xcf,0x01,0x11,0xfe,0xfc,0xc4,0xfe, +0xd9,0x8f,0x6f,0xca,0x73,0x96,0xb2,0xb3,0x95,0x6e,0xbe,0x00,0x00,0x01,0x00,0x5a,0x00,0x00,0x03,0x52,0x05,0x9a,0x00,0x0b,0x00,0x32,0x40,0x1b,0x04,0x91,0x40,0x07,0x0b,0x00,0x07,0x91,0x2b,0x30,0x03,0x91,0x00,0x12,0x08,0x91,0x0b,0x03,0x00,0x7e,0x07,0x03,0x03,0x0d,0x05,0x09,0x01,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0x33,0xe1,0x00, +0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x21,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x03,0x52,0xfd,0x08,0x02,0x50,0xfd,0xfa,0x02,0x06,0xfd,0xd1,0x02,0xd7,0x98,0x01,0xe9,0x97,0x01,0xea,0x98,0x00,0x00,0x01,0x00,0x70,0xff,0xe8,0x03,0xf4,0x05,0xb2,0x00,0x23,0x00,0x49,0x40,0x28,0x08,0x1b, +0x91,0x40,0x1a,0x0e,0x02,0x1a,0x91,0x09,0x30,0x20,0x23,0x01,0x23,0x21,0x91,0x02,0x13,0x11,0x13,0x91,0x0e,0x04,0x08,0x05,0x1b,0x1b,0x1e,0x10,0x00,0x00,0x25,0x05,0x16,0x7d,0x0b,0x1e,0x7d,0x05,0x2f,0xe1,0xd4,0xe1,0x11,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x5d,0x2b,0x00,0x18,0x2f, +0x1a,0xed,0x39,0x31,0x30,0x25,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x37,0x35,0x24,0x35,0x34,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x20,0x11,0x14,0x16,0x33,0x32,0x37,0x03,0xf4,0xa6,0xcf,0xf5,0xfe,0xe6,0xa2,0x90,0xff,0x00,0x01,0x11,0xd9,0xb2,0x91,0x99,0xaf,0x8d,0xaa,0xcb,0xab,0x69, +0x6b,0xfe,0x5d,0xbf,0xa5,0xc8,0xa7,0x35,0x4d,0xdd,0xb8,0x85,0xc4,0x26,0x06,0x50,0xed,0xa7,0xdc,0x46,0xaa,0x58,0x7e,0x6b,0x70,0x92,0x97,0xfe,0xf1,0x7d,0x8d,0x5c,0x00,0x01,0xff,0x9a,0xfe,0x96,0x03,0x94,0x05,0x9a,0x00,0x11,0x00,0x33,0x40,0x1b,0x05,0x91,0x40,0x02,0x10,0x12,0x02,0x91,0x09,0x30,0x0b,0x0d,0x91,0x08,0x01,0x91, +0x10,0x03,0x03,0x11,0x11,0x13,0x02,0x06,0x7e,0x0b,0x0f,0x2f,0xc6,0xe1,0x32,0x12,0x39,0x2f,0xc4,0x00,0x3f,0xed,0x2f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x21,0x03,0x94,0xfd,0xd0,0x02,0x06,0xfd,0xfa,0xfe,0xae,0x41,0x37,0x32, +0x3e,0xb2,0x02,0xd8,0x05,0x02,0xfe,0x10,0x97,0xfd,0xba,0xfe,0x61,0x14,0xa0,0x1d,0x01,0x08,0x05,0x65,0x00,0x01,0x00,0x5e,0xff,0xe8,0x05,0x85,0x06,0x83,0x00,0x25,0x00,0x63,0x40,0x37,0x12,0x91,0x40,0x15,0x1e,0x0f,0x15,0x91,0x08,0x30,0x16,0x11,0x0f,0x91,0x18,0x13,0x00,0x20,0x07,0x1e,0x02,0x92,0x23,0x1e,0x1f,0x07,0x2f,0x07, +0x02,0x07,0x09,0x91,0x1e,0x04,0x1d,0x06,0x1b,0x00,0x20,0x7f,0x04,0x06,0x06,0x16,0x13,0x13,0x0c,0x16,0x7e,0x11,0x11,0x27,0x0c,0x7d,0x1b,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x10,0xc0,0x2f,0xd6,0xe1,0xc6,0x11,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x5d,0x10,0xd4,0xfd,0x11,0x12,0x39,0xc6,0x3f,0xed,0x32,0x32,0x2b,0x00,0x18, +0x2f,0x1a,0xed,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x14,0x17,0x07,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x11,0x21,0x35,0x21,0x11,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x36,0x36,0x33,0x32,0x17,0x05,0x85,0x29,0x24,0x72,0x0f,0x08,0xbf,0xd2,0xf6,0xfe,0xc8,0x01,0x1e,0xf5,0xa8,0x7b,0xfe,0xc6,0x01,0xe4, +0xd8,0xfe,0xf6,0xfe,0xcd,0xfe,0x85,0x01,0xa5,0x01,0x43,0x79,0x76,0x03,0x86,0x67,0x30,0x30,0x05,0xe4,0x14,0xa8,0x48,0x54,0x06,0x6c,0xfe,0xb6,0xfe,0xf6,0xfe,0xf0,0xfe,0xc9,0x43,0x01,0x92,0x98,0xfd,0x76,0x7a,0x01,0x8c,0x01,0x46,0x01,0x4d,0x01,0xab,0x22,0x64,0x8f,0x13,0x00,0x00,0x02,0x00,0x12,0xfe,0x1e,0x04,0xe6,0x05,0x9a, +0x00,0x17,0x00,0x1f,0x00,0x16,0x40,0x0a,0x1c,0x91,0x07,0x1c,0x00,0x0f,0x03,0x00,0x21,0x0f,0x2f,0x10,0xc6,0x00,0x3f,0x33,0x3f,0xed,0x31,0x30,0x01,0x01,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x01,0x06,0x15,0x14,0x33,0x32,0x35,0x34,0x04,0xe6,0xfd,0xfe, +0x06,0x72,0x89,0x63,0x60,0x82,0x29,0x4d,0x08,0xfe,0x06,0xbb,0x01,0x8d,0x15,0x08,0x04,0x0d,0x14,0x01,0x95,0xfe,0x43,0x43,0x43,0x44,0x05,0x9a,0xfa,0xc8,0x0c,0xe4,0x6e,0x61,0x85,0x82,0x64,0x3d,0x75,0x9a,0x10,0x05,0x3a,0xfb,0xbc,0x3a,0x36,0x39,0x37,0x04,0x44,0xfa,0x3f,0x8d,0x44,0x58,0x58,0x44,0x00,0x01,0x00,0xa6,0xff,0xe8, +0x06,0x87,0x05,0xec,0x00,0x20,0x00,0x45,0x40,0x27,0x04,0x01,0x07,0x0c,0x95,0x17,0x16,0x01,0x15,0x11,0x0f,0x1d,0x95,0x40,0x07,0x10,0x02,0x00,0x0a,0x84,0x19,0x00,0x0f,0x19,0x84,0x09,0x30,0x12,0x83,0x11,0x14,0x84,0x0f,0x0f,0x22,0x04,0x00,0x84,0x01,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0xd6,0xe1,0x2b,0x01,0x10,0xe1,0x00,0x18, +0x3f,0x3f,0x1a,0xed,0x3f,0x3f,0x3f,0xed,0x11,0x12,0x39,0x31,0x30,0x21,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x20,0x11,0x15,0x10,0x33,0x32,0x36,0x35,0x10,0x03,0x33,0x12,0x11,0x14,0x02,0x23,0x20,0x11,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x4a,0xa4,0xa4,0x04,0x62,0xcb,0x01,0x50,0xf7,0x84,0x9e,0x90,0xb2,0x81,0xfe,0xcb,0xfe, +0x69,0x69,0x7c,0x6c,0x8c,0x05,0xec,0xfd,0x72,0xba,0xfe,0x5f,0xaa,0xfe,0xaa,0xc2,0xa4,0x01,0x19,0x01,0x0a,0xfe,0xf6,0xfe,0xee,0xe5,0xfe,0xe9,0x01,0xda,0x8a,0xaa,0x98,0xb5,0x91,0x00,0x00,0x01,0x00,0xb8,0xff,0xee,0x02,0x25,0x05,0x9a,0x00,0x0b,0x00,0x1b,0x40,0x0d,0x0b,0x09,0x91,0x02,0x16,0x05,0x03,0x00,0x00,0x0d,0x06,0x7e, +0x05,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0x3f,0xfd,0xc6,0x31,0x30,0x25,0x06,0x23,0x22,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x02,0x25,0x3c,0x3b,0xf6,0xa8,0x68,0x30,0x2d,0x04,0x16,0x01,0x22,0x04,0x8a,0xfb,0x7a,0x8f,0x15,0x00,0x01,0x00,0x29,0x00,0x00,0x02,0x10,0x05,0x9a,0x00,0x0b,0x00,0x3b,0x40,0x20,0x0a,0x01,0x04,0x91, +0x40,0x07,0x08,0x03,0x07,0x91,0x14,0x30,0x03,0x12,0x08,0x03,0x0b,0x0a,0x06,0x07,0x40,0x0a,0x07,0x02,0x7e,0x03,0x0c,0x0d,0x03,0x7e,0x08,0x30,0x2b,0x01,0x10,0xe1,0x39,0x39,0x1a,0x18,0x10,0xcd,0x10,0xcd,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11, +0x33,0x02,0x10,0xa0,0xa8,0x9f,0x9f,0xa8,0xa0,0x02,0x8e,0xfd,0x72,0x02,0x8e,0x97,0x02,0x75,0xfd,0x8b,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0xb2,0x00,0x17,0x00,0x2e,0x40,0x18,0x0a,0x17,0x05,0x03,0x08,0x01,0x07,0x12,0x08,0x03,0x12,0x14,0x91,0x0f,0x04,0x17,0x06,0x12,0x00,0x19,0x09,0x06,0x7e,0x07,0x2f,0xe1,0x32,0x10, +0xd6,0xc6,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0x3f,0x33,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x01,0x04,0xa2,0xea,0xfd,0xd6,0x1f,0x07,0x04,0xa8,0xa8,0x04,0x01,0x3c,0x8d,0x94,0x5c,0x38,0x37,0x38,0x3e,0x50,0x76,0xfe,0xc4, +0x02,0x90,0x25,0x0d,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x01,0xa4,0xbc,0x5a,0x1a,0x9c,0x1e,0x99,0xfe,0x65,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x02,0x00,0x15,0x00,0x31,0x40,0x1a,0x01,0x03,0x11,0x15,0x04,0x14,0x05,0x15,0x14,0x0f,0x0c,0x0e,0x95,0x09,0x01,0x15,0x04,0x14,0x00,0x17,0x0c,0x10,0x10,0x04,0x84,0x05,0x2f,0xe1, +0x32,0x10,0xc6,0x10,0xd6,0xc6,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x11,0x33,0x01,0x33,0x01,0x03,0xf8,0xe6,0xfe,0x3c,0x04,0xa4,0xb3,0x8b,0x47,0x2f,0x37,0x35,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0x01,0xec,0xfe, +0x14,0x04,0xb2,0x99,0xb7,0x12,0x94,0x1b,0xcf,0xfd,0x83,0x01,0xd5,0xfe,0x12,0x00,0x00,0x01,0x00,0x14,0x00,0x00,0x01,0xdb,0x05,0xec,0x00,0x0b,0x00,0x3b,0x40,0x20,0x0a,0x01,0x04,0x95,0x40,0x07,0x08,0x03,0x07,0x95,0x14,0x30,0x03,0x15,0x08,0x00,0x0b,0x0a,0x06,0x07,0x40,0x0a,0x07,0x02,0x84,0x03,0x0c,0x0d,0x03,0x84,0x08,0x30, +0x2b,0x01,0x10,0xe1,0x39,0x39,0x1a,0x18,0x10,0xcd,0x10,0xcd,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x01,0xdb,0x91,0xa4,0x92,0x92,0xa4,0x91,0x02,0xc4,0xfd,0x3c,0x02,0xc4,0x8c,0x02,0x9c,0xfd,0x64,0x00,0x01,0xff,0xfe,0x00,0x00,0x03,0xdf, +0x05,0xee,0x00,0x16,0x00,0x7c,0x40,0x44,0x16,0x12,0x00,0x06,0x05,0x02,0x07,0x15,0x07,0x13,0x12,0x00,0x09,0x05,0x02,0x08,0x14,0x08,0x16,0x13,0x12,0x00,0x12,0x09,0x06,0x05,0x02,0x05,0x06,0x08,0x09,0x13,0x15,0x16,0x06,0x07,0x14,0x10,0x07,0x07,0x05,0x05,0x02,0x0b,0x00,0x04,0x15,0x0d,0x0b,0x95,0x10,0x00,0x14,0x07,0x08,0x15, +0x00,0x08,0x0d,0x0d,0x02,0x05,0x12,0x03,0x04,0x00,0x18,0x04,0x2f,0x10,0xc6,0x11,0x17,0x39,0x39,0x2f,0xc6,0x10,0xc6,0x11,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0x33,0x12,0x39,0x39,0x11,0x33,0x2f,0x10,0xc4,0x11,0x17,0x39,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0, +0x31,0x30,0x21,0x23,0x01,0x01,0x23,0x01,0x27,0x05,0x27,0x25,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x17,0x37,0x17,0x05,0x03,0xdf,0xb0,0xfe,0xe7,0xfe,0x9c,0xb4,0x01,0xcf,0x1b,0xfe,0xf2,0x3a,0x01,0x1f,0x35,0x66,0x3e,0x3c,0x3c,0x46,0x68,0x80,0x36,0xf4,0x3a,0xff,0x00,0x03,0x3c,0xfc,0xc4,0x03,0xf8,0x4c,0x84,0x71,0x8b, +0x9c,0x12,0x99,0x0f,0x69,0x85,0x77,0x71,0x7d,0x00,0x00,0x01,0x00,0xb8,0xff,0xe8,0x06,0x66,0x05,0x9a,0x00,0x1e,0x00,0x45,0x40,0x27,0x02,0x07,0x15,0x1e,0x04,0x0c,0x19,0x05,0x11,0x91,0x40,0x09,0x13,0x00,0x12,0x0c,0x03,0x01,0x1e,0x7e,0x1d,0x0e,0x15,0x0c,0x15,0x42,0x0d,0x7e,0x0c,0x07,0x16,0x7e,0x15,0x1f,0x20,0x15,0x7e,0x08, +0x30,0x2b,0x01,0x10,0xe1,0x39,0x18,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0xe1,0x33,0x00,0x18,0x3f,0x3f,0x3f,0x1a,0xed,0x39,0x39,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x27,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x06,0x66,0xa4,0x04, +0x6c,0xd1,0xd7,0x48,0x72,0xe4,0xfe,0xac,0xa8,0x67,0x7d,0x67,0x91,0xa8,0xe2,0x6c,0x8c,0xa8,0xa2,0xba,0xd4,0xd4,0x01,0xc4,0x03,0xee,0xfc,0x26,0xa5,0x9c,0xbf,0x86,0x03,0xd6,0xfc,0x12,0xfe,0xd3,0xb5,0x90,0x03,0xd6,0x00,0x01,0xff,0x9a,0xfe,0x96,0x05,0x42,0x05,0x9a,0x00,0x1b,0x00,0x30,0x40,0x19,0x0d,0x0f,0x91,0x0a,0x04,0x16, +0x1b,0x03,0x13,0x01,0x12,0x13,0x03,0x13,0x01,0x07,0x1b,0x7e,0x1a,0x1a,0x1d,0x0d,0x07,0x7e,0x12,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0x3f,0x12,0x17,0x39,0x2f,0xfd,0xc6,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x01,0x16,0x17,0x33, +0x26,0x35,0x11,0x33,0x05,0x42,0xd0,0xfd,0x1e,0x1c,0x12,0x06,0x08,0xfe,0xae,0x41,0x37,0x32,0x3e,0xb2,0xda,0x02,0xce,0x2d,0x0d,0x04,0x0a,0xaa,0x04,0x77,0x2b,0x2f,0x2e,0x97,0xfc,0x29,0xfe,0x61,0x14,0xa0,0x1d,0x01,0x08,0x05,0x65,0xfb,0x9b,0x46,0x1a,0x3e,0x95,0x03,0xf2,0x00,0x00,0x01,0x00,0x83,0xfe,0x6c,0x03,0xf8,0x04,0x18, +0x00,0x15,0x00,0x34,0x40,0x1b,0x0f,0x09,0x12,0x01,0x09,0x15,0x0c,0x0f,0x04,0x95,0x12,0x10,0x00,0x83,0x01,0x01,0x17,0x09,0x10,0x0d,0x08,0x84,0x09,0x0d,0x83,0x0c,0x09,0x2f,0xd6,0xe1,0x10,0xe1,0x11,0x39,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0x2f,0x11,0x12,0x39,0x31,0x30,0x01,0x23,0x11,0x10,0x23,0x22,0x06,0x15, +0x11,0x23,0x11,0x34,0x27,0x33,0x16,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa6,0xec,0x7d,0x9f,0xa4,0x23,0xa8,0x1b,0x04,0x70,0xe4,0xa7,0xb3,0xfe,0x6c,0x03,0xd0,0x01,0x47,0xb1,0x86,0xfd,0xb4,0x02,0xb6,0xef,0x5b,0x47,0x67,0xc6,0xd6,0xcb,0x00,0x03,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x12,0x00,0x19, +0x00,0x38,0xb7,0x14,0x91,0x40,0x12,0x06,0x00,0x12,0x91,0xb8,0x01,0x00,0x40,0x14,0x30,0x17,0x91,0x00,0x13,0x0f,0x91,0x06,0x04,0x12,0x0c,0x14,0x09,0x7d,0x13,0x13,0x1b,0x14,0x7d,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00, +0x21,0x20,0x00,0x11,0x10,0x00,0x13,0x26,0x00,0x23,0x22,0x00,0x07,0x05,0x21,0x16,0x00,0x33,0x32,0x00,0x02,0xfe,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0x8c,0xc2,0x13,0xfe,0xfd,0xd8,0xd0,0xfe,0xee,0x16,0x03,0xe6,0xfc,0x1a,0x15,0x01,0x0c,0xcb,0xdc,0x01,0x0b,0x18,0x01,0x92,0x01,0x42,0x01,0x5a,0x01, +0x9c,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0x03,0x30,0xf6,0x01,0x0c,0xfe,0xe8,0xea,0x9b,0xea,0xfe,0xec,0x01,0x0b,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x07,0x04,0x05,0xb2,0x00,0x15,0x00,0x20,0x00,0x3e,0x40,0x22,0x16,0x07,0x1f,0x91,0x09,0x13,0x00,0x12,0x02,0x06,0x17,0x03,0x19,0x04,0x91,0x13,0x15,0x19,0x91,0x0f,0x04,0x07, +0x7e,0x16,0x16,0x0c,0x01,0x7e,0x00,0x00,0x22,0x1c,0x7d,0x0c,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x33,0xd4,0xed,0x11,0x17,0x39,0x3f,0x3f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x06,0x23,0x22,0x27,0x11,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x16,0x33,0x32,0x37,0x01,0x11,0x26,0x23, +0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x07,0x04,0xa8,0x76,0x82,0x36,0x4f,0xf9,0xe8,0xfe,0xce,0xfe,0x92,0x01,0x83,0x01,0x37,0x70,0xbe,0xbe,0x6c,0xd8,0xbc,0xfd,0x34,0xca,0x5e,0xe4,0xfe,0xe2,0x01,0x17,0xe5,0xa0,0x04,0xf4,0x19,0x09,0xfb,0x7e,0x7a,0x01,0x90,0x01,0x44,0x01,0x4c,0x01,0xaa,0x22,0x22,0x44,0xfb,0x0a,0x04,0x3e,0x20, +0xfe,0xba,0xfe,0xf7,0xfe,0xf6,0xfe,0xbe,0x00,0x02,0x00,0x60,0xff,0xe8,0x05,0xac,0x04,0x18,0x00,0x15,0x00,0x20,0x00,0x3e,0x40,0x22,0x16,0x07,0x1f,0x95,0x09,0x16,0x00,0x15,0x02,0x06,0x17,0x03,0x19,0x04,0x95,0x13,0x15,0x19,0x95,0x0f,0x10,0x07,0x84,0x16,0x16,0x0c,0x00,0x84,0x01,0x01,0x22,0x1c,0x83,0x0c,0x2f,0xe1,0x12,0x39, +0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x33,0xd4,0xed,0x11,0x17,0x39,0x3f,0x3f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x06,0x23,0x22,0x27,0x11,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x01,0x11,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x05,0xac,0xa4,0x64,0x5c,0x3e,0x3d,0xaf,0xb8, +0xec,0xfe,0xe6,0x01,0x28,0xec,0x54,0x98,0x98,0x54,0xb2,0xae,0xfd,0x81,0x7f,0x46,0x9e,0xc2,0xc5,0xa7,0x6e,0x03,0x62,0x18,0x08,0xfc,0xec,0x56,0x01,0x1b,0xf3,0xfa,0x01,0x28,0x21,0x22,0x43,0xfc,0x80,0x02,0xd8,0x1e,0xd7,0xbd,0xb8,0xd0,0x00,0x02,0xff,0xac,0x00,0x00,0x04,0x7b,0x05,0x9a,0x00,0x16,0x00,0x1d,0x00,0x3c,0x40,0x1f, +0x09,0x09,0x0f,0x02,0x00,0x91,0x18,0x18,0x0f,0x02,0x12,0x17,0x03,0x91,0x0f,0x03,0x13,0x7d,0x1b,0x1b,0x1f,0x02,0x09,0x09,0x07,0x7e,0x0c,0x18,0x01,0x7e,0x02,0x2f,0xe1,0x32,0xd4,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0xed,0x11,0x12,0x39,0x2f,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x22, +0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x20,0x11,0x10,0x21,0x01,0xb6,0xa8,0x18,0x51,0x59,0x14,0x9e,0x16,0xc3,0xa1,0x01,0x88,0xe6,0xfd,0xfe,0xe6,0xef,0xbc,0xb0,0x01,0x65,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x05,0x02,0x5d,0x4d,0x37,0x33,0x38,0x42,0x84,0xae,0xe1,0xcb, +0xcb,0xfe,0xfb,0x02,0xe4,0xfd,0xb4,0x01,0x30,0x01,0x1c,0x00,0x00,0x02,0x00,0xa6,0xfe,0x29,0x04,0x54,0x06,0x02,0x00,0x19,0x00,0x26,0x00,0x3c,0x40,0x20,0x0f,0x01,0x18,0x12,0x03,0x1b,0x1e,0x95,0x18,0x16,0x24,0x95,0x12,0x10,0x0a,0x0c,0x95,0x07,0x01,0x0a,0x0a,0x02,0x15,0x83,0x21,0x21,0x28,0x1b,0x0e,0x02,0x84,0x03,0x2f,0xe1, +0x32,0x32,0x12,0x39,0x2f,0xe1,0x10,0xc0,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0xed,0x3f,0x11,0x12,0x39,0x39,0x31,0x30,0x25,0x23,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01, +0x4e,0x04,0xa4,0xb2,0x8c,0x47,0x2f,0x37,0x35,0xa4,0x04,0x76,0xec,0xc5,0xdf,0xfa,0xd9,0xc9,0x6e,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0x94,0xfd,0x95,0x06,0x89,0x98,0xb8,0x12,0x94,0x1b,0xcf,0xfe,0xa4,0xcc,0xfe,0xef,0xe9,0xfe,0xff,0xfe,0xcb,0x02,0x49,0x8f,0x7e,0xb2,0xe3,0xcc,0xab,0xc2,0xc6,0x00,0x02,0x00,0xbc,0xff,0x68, +0x04,0x62,0x05,0x9a,0x00,0x13,0x00,0x1b,0x00,0x40,0x40,0x22,0x11,0x05,0x91,0x40,0x15,0x0a,0x07,0x15,0x91,0x08,0x30,0x00,0x07,0x12,0x14,0x91,0x0a,0x08,0x03,0x10,0x15,0x01,0x00,0x00,0x0e,0x7d,0x19,0x19,0x1d,0x15,0x0a,0x06,0x7e,0x07,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x32,0x12,0x39,0x00,0x3f,0xdd,0xed,0x3f, +0x2f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x05,0x23,0x03,0x26,0x23,0x23,0x11,0x23,0x11,0x33,0x15,0x21,0x32,0x16,0x15,0x10,0x05,0x15,0x16,0x17,0x01,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x04,0x62,0xc8,0xc5,0x5d,0xa1,0x73,0xa8,0xa8,0x01,0x04,0xcd,0xe7,0xfe,0xc1,0x57,0x47,0xfd,0xe9,0xde,0x89,0xa1,0xfe,0xde,0x98,0x01, +0xb6,0xce,0xfe,0x14,0x05,0x9a,0x98,0xcd,0xb0,0xfe,0xe0,0x4d,0x04,0x36,0x92,0x03,0x1e,0xfe,0x19,0x80,0x74,0xf3,0x00,0x01,0x00,0x62,0xff,0xe8,0x03,0xc7,0x05,0xb2,0x00,0x35,0x00,0x3e,0x40,0x23,0x0a,0x2d,0x14,0x23,0x04,0x05,0x30,0x1b,0x01,0x1b,0x19,0x91,0x1e,0x04,0x20,0x35,0x01,0x35,0x30,0x91,0x05,0x13,0x23,0xb1,0x14,0x1b, +0x14,0x1b,0x0a,0x35,0x35,0x37,0x2d,0xb1,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x00,0x3f,0xed,0xc4,0x5d,0x3f,0xed,0xcd,0x5d,0x12,0x17,0x39,0x31,0x30,0x25,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e, +0x02,0x07,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x03,0xc7,0x1c,0x5d,0x68,0x63,0x23,0x66,0xb8,0x8d,0x53,0x3d,0x68,0x8a,0x4d,0x4b,0x73,0x50,0x29,0x36,0x56,0x6d,0x38,0xc7,0x7f,0x62,0xd3,0x5d,0xb3,0x8c,0x56,0x37,0x60,0x82,0x4b,0x47,0x7b,0x5a,0x33,0x99,0x9b,0x2d,0x6a,0x69,0x5f,0x22,0x3a,0x13,0x1f,0x15,0x0b,0x29, +0x5c,0x93,0x6a,0x50,0x7c,0x66,0x54,0x26,0x25,0x3e,0x42,0x50,0x37,0x3b,0x52,0x34,0x17,0x58,0xbd,0x33,0x2e,0x5e,0x91,0x62,0x50,0x77,0x5e,0x4e,0x26,0x24,0x41,0x47,0x56,0x3a,0x6c,0x73,0x12,0x21,0x30,0x1e,0x00,0x01,0x00,0x56,0xff,0xe8,0x02,0xfd,0x04,0x18,0x00,0x2e,0x00,0x43,0xb7,0x0b,0x20,0x07,0x2a,0x04,0x02,0x1b,0x2e,0xb8, +0xff,0xc0,0x40,0x1b,0x0b,0x0e,0x48,0x2e,0x2e,0x2c,0x95,0x02,0x16,0x18,0x18,0x16,0x95,0x1b,0x10,0x11,0x83,0x20,0x20,0x18,0x00,0x00,0x30,0x18,0x2a,0x83,0x07,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x32,0x2f,0x2b,0x11,0x12,0x17,0x39,0x31,0x30,0x25,0x06,0x23,0x22,0x2e,0x02,0x35, +0x34,0x3e,0x02,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15,0x14,0x33,0x32,0x37,0x02,0xfd,0x74,0x9e,0x4f,0x93,0x70,0x43,0x29,0x4c,0x6d,0x43,0x33,0x50,0x38,0x1d,0x1d,0x35,0x4a,0x2e,0x93,0x71,0x69,0x85,0x4b,0x8d,0x6e,0x42,0x23,0x45,0x67,0x44,0x31, +0x55,0x3f,0x25,0xd8,0xa2,0x85,0x25,0x3d,0x24,0x4a,0x70,0x4c,0x3e,0x5a,0x45,0x37,0x1a,0x14,0x22,0x2a,0x36,0x28,0x20,0x35,0x26,0x15,0x4a,0xa6,0x2e,0x26,0x4b,0x6f,0x48,0x3b,0x58,0x45,0x37,0x1b,0x13,0x23,0x2c,0x39,0x29,0x90,0x63,0x00,0x00,0x01,0x00,0x2d,0x00,0x00,0x03,0xf0,0x05,0x9a,0x00,0x0b,0x00,0x38,0x40,0x1b,0x03,0x09, +0x09,0x05,0x02,0x0a,0x91,0x01,0x12,0x04,0x08,0x91,0x05,0x03,0x08,0x04,0x0a,0x03,0x09,0x09,0x02,0x07,0x00,0x00,0x0d,0x04,0x02,0x2f,0xc6,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x33,0x32,0x11,0x33,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x12,0x39,0x19,0x2f,0x33,0x31,0x30,0x21,0x21,0x35,0x01,0x01,0x35,0x21,0x15,0x21,0x01,0x01,0x21, +0x03,0xf0,0xfc,0x3d,0x01,0xd3,0xfe,0x58,0x03,0x5a,0xfd,0x9c,0x01,0x78,0xfe,0x5f,0x02,0xcb,0x4e,0x02,0x96,0x02,0x5c,0x5a,0x9a,0xfd,0xe8,0xfd,0xac,0x00,0x00,0x02,0xff,0x83,0xfe,0x1e,0x02,0x87,0x06,0x02,0x00,0x15,0x00,0x20,0x00,0x39,0x40,0x1f,0x15,0x13,0x95,0x02,0x1c,0x1f,0x95,0x40,0x07,0xc0,0x19,0x95,0x40,0x0d,0x01,0x15, +0x04,0x16,0x04,0x1c,0x84,0x0a,0x11,0x84,0x04,0x21,0x22,0x04,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x18,0xd4,0xe1,0x11,0x33,0x10,0xc4,0x00,0x3f,0x1a,0xed,0x1a,0xdc,0x1a,0xed,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x20,0x11,0x11,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x33,0x32,0x37,0x01,0x35,0x34, +0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x02,0x87,0x39,0x5c,0xfe,0xfc,0x39,0x43,0x65,0x8a,0x90,0x6c,0x80,0x91,0x91,0x38,0x2e,0xfe,0x67,0x71,0x2a,0x39,0x3e,0x31,0x35,0xfe,0x3e,0x20,0x01,0x34,0x04,0xe6,0x1c,0x87,0x67,0x68,0x90,0xab,0x95,0xfa,0xac,0xc4,0x21,0x05,0xf7,0x0d,0xa8,0x3c,0x2b,0x2c,0x3c,0x00,0x00,0x01,0x00,0x2b, +0xfe,0x96,0x02,0x81,0x05,0x2f,0x00,0x1e,0x00,0x3e,0x40,0x22,0x06,0x08,0x95,0x03,0x1e,0x1c,0x95,0x0b,0x16,0x18,0x15,0x0e,0x95,0x14,0x11,0x0f,0x0b,0x40,0x13,0x16,0x48,0x0b,0x84,0x1e,0x17,0x17,0x18,0x06,0x15,0x11,0x18,0x84,0x0f,0x0e,0x2f,0xcd,0xe1,0x39,0x39,0xc4,0x10,0xc1,0x2f,0xd4,0xe1,0x2b,0x00,0x3f,0xcd,0xed,0x39,0x39, +0x3f,0xfd,0xc6,0x2f,0xfd,0xc6,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x36,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x02,0x81,0x99,0x7e,0x3c,0x34,0x34,0x3c,0x7e,0xfe,0xf3,0xb0,0xb0,0x4d,0x57,0x01,0x02,0xfe,0xfe,0x45,0x52,0x3c,0x2f,0x44,0x87, +0x9f,0x18,0x92,0x1f,0x9f,0x28,0x01,0x2c,0x02,0x60,0x8c,0xfa,0x18,0x1d,0xfe,0xd1,0x8c,0xfd,0xbd,0x67,0x58,0x22,0x00,0x01,0xff,0xcd,0x00,0x00,0x04,0x0c,0x05,0x9a,0x00,0x11,0x00,0x2d,0x40,0x18,0x03,0x12,0x0a,0x04,0x01,0x91,0x40,0x11,0x03,0x08,0x7e,0x0d,0x0d,0x02,0x00,0x02,0x7e,0x03,0x12,0x13,0x03,0x7e,0x08,0x30,0x2b,0x01, +0x10,0xe1,0x18,0xc4,0x10,0xc0,0x2f,0xe1,0x00,0x3f,0x1a,0xed,0x32,0xc4,0x3f,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x21,0x04,0x0c,0xfe,0x62,0xa8,0x9b,0x5a,0x65,0x15,0x9d,0x17,0xc2,0xa2,0x02,0xdb,0x05,0x02,0xfa,0xfe,0x05,0x02,0x5c,0x4e,0x37,0x33,0x38,0x42,0x85,0xad, +0x00,0x01,0x00,0x2b,0xff,0xea,0x02,0x81,0x06,0x02,0x00,0x1d,0x00,0x32,0x40,0x1a,0x1d,0x1b,0x95,0x02,0x16,0x0f,0x11,0x95,0x0c,0x01,0x17,0x14,0x05,0x95,0x08,0x0f,0x1d,0x0f,0x16,0x16,0x14,0x08,0x17,0x84,0x06,0x05,0x2f,0xcd,0xf1,0x39,0x39,0xc1,0x2f,0xc4,0xc4,0x00,0x3f,0xed,0x39,0x39,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30, +0x25,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x15,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x02,0x81,0x3a,0x5f,0xfe,0xf3,0xb0,0xb0,0x98,0x83,0x4a,0x41,0x3d,0x40,0x85,0x01,0x02,0xfe,0xfe,0x45,0x52,0x3c,0x2f,0x0a,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xc0,0x93,0xaf,0x1c, +0x92,0x23,0xbf,0xb8,0x8c,0xfd,0xbf,0x67,0x58,0x22,0x00,0x01,0x00,0x27,0xfe,0x96,0x04,0x0c,0x05,0x9a,0x00,0x0f,0x00,0x32,0x40,0x1a,0x06,0x04,0x91,0x09,0x01,0x0c,0x91,0x40,0x0e,0x03,0x06,0x06,0x02,0x00,0x0b,0x0d,0x0d,0x02,0x7e,0x0b,0x10,0x11,0x0b,0x7e,0x08,0x30,0x2b,0x01,0x10,0xf1,0xc0,0x18,0x2f,0x10,0xc4,0x11,0x39,0x2f, +0x00,0x3f,0x1a,0xed,0x32,0x2f,0xfd,0xc6,0x31,0x30,0x01,0x21,0x11,0x10,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x11,0x11,0x21,0x35,0x21,0x04,0x0c,0xfe,0x62,0xaa,0x46,0x34,0x3a,0x4e,0xfe,0xbc,0xfe,0x61,0x03,0xe5,0x05,0x02,0xfb,0x33,0xfe,0xf8,0x17,0x94,0x1a,0x01,0x95,0x04,0xd7,0x98,0x00,0x00,0x01,0x00,0x62,0xff,0xe8,0x05,0xa8, +0x05,0x9a,0x00,0x1b,0x00,0x42,0x40,0x24,0x09,0x91,0x17,0x13,0x04,0x0e,0x10,0x11,0x04,0x01,0x91,0x02,0x03,0x12,0x7d,0x0e,0x0e,0x0c,0x06,0x00,0x7e,0x04,0x04,0x0c,0x06,0x11,0x11,0x14,0x7d,0x0c,0x0c,0x1d,0x01,0x06,0x7d,0x1a,0x2f,0xe1,0x33,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x00, +0x3f,0xed,0x17,0x39,0x3f,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x15,0x04,0x11,0x14,0x00,0x33,0x32,0x00,0x35,0x10,0x01,0x35,0x21,0x15,0x21,0x04,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x01,0xbe,0xfe,0xa4,0x02,0x06,0xfe,0xa8,0x01,0x15,0xdd,0xe0,0x01,0x18,0xfe,0xa6,0x02,0x06,0xfe,0xa6,0x01,0x5c,0xfe,0x8e,0xfe,0xd0,0xfe,0xcd, +0xfe,0x8f,0x05,0x06,0x94,0x94,0xfe,0xfe,0x86,0xf7,0xfe,0xe6,0x01,0x1c,0xf5,0x01,0x78,0x01,0x00,0x94,0x94,0xec,0xfe,0x6f,0xfe,0xca,0xfe,0x95,0x01,0x66,0x01,0x39,0x01,0x93,0x00,0x01,0x00,0xb8,0xff,0xe8,0x05,0x54,0x05,0xb2,0x00,0x16,0x00,0x2a,0x40,0x16,0x04,0x91,0x14,0x13,0x00,0x03,0x0b,0x09,0x91,0x0e,0x04,0x0b,0x0b,0x01, +0x11,0x7d,0x07,0x07,0x18,0x01,0x7e,0x00,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0x3f,0xed,0x31,0x30,0x13,0x33,0x11,0x10,0x21,0x32,0x00,0x11,0x10,0x21,0x22,0x07,0x35,0x36,0x33,0x32,0x12,0x11,0x10,0x00,0x21,0x20,0x11,0xb8,0xa8,0x01,0x58,0xd9,0x01,0x17,0xfe,0xf8,0x48,0x40,0x4d,0x57,0xba,0xde, +0xfe,0x81,0xfe,0xdb,0xfe,0x08,0x05,0x9a,0xfc,0xac,0xfe,0x39,0x01,0x91,0x01,0x25,0x01,0xe5,0x1c,0x9a,0x1a,0xfe,0xad,0xfe,0xe3,0xfe,0x99,0xfe,0x0d,0x02,0x56,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x04,0xd6,0x05,0xb2,0x00,0x15,0x00,0x2b,0x40,0x16,0x00,0x15,0x14,0x03,0x14,0x0c,0x11,0x7e,0x14,0x03,0x14,0x11,0x03,0x13,0x15,0x03, +0x13,0x12,0x0e,0x91,0x09,0x03,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x17,0x39,0x01,0x2f,0xfd,0xc6,0x12,0x39,0x10,0xcd,0x32,0x31,0x30,0x13,0x01,0x16,0x17,0x33,0x37,0x13,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x01,0x11,0x23,0x11,0x01,0xc1,0x01,0x50,0x1b,0x0c,0x02,0x23,0xc7,0x46,0x8e,0x6b,0x39,0x3a,0x2f,0x3a,0x5a,0x54, +0xfe,0xd1,0xa8,0xfe,0x27,0x05,0x9a,0xfd,0x78,0x33,0x25,0x58,0x01,0x9a,0x91,0x75,0x18,0x9c,0x1c,0xaa,0xfd,0x9e,0xfd,0xf2,0x02,0x12,0x03,0x88,0x00,0x01,0x00,0x0e,0xfe,0x1e,0x04,0x60,0x04,0x18,0x00,0x1c,0x00,0x2f,0x40,0x19,0x14,0x05,0x0f,0x0a,0x0c,0x95,0x07,0x1c,0x10,0x0f,0x00,0x02,0x95,0x1a,0x10,0x0a,0x05,0x0a,0x0f,0x14, +0x04,0x10,0x00,0x1e,0x10,0x2f,0x10,0xc6,0x11,0x17,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0x3f,0xfd,0xc6,0x2f,0x33,0x33,0x31,0x30,0x01,0x26,0x23,0x22,0x07,0x01,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x12,0x33,0x32,0x17,0x04,0x60,0x2c,0x2c,0x66,0x42,0xfe,0x9e,0x7d,0xe5, +0x42,0x29,0x33,0x2e,0x7c,0x3e,0x52,0xfe,0x70,0xb6,0x01,0x15,0x0a,0x0b,0x06,0x05,0x0f,0xc0,0x6d,0xd1,0x29,0x31,0x03,0x79,0x13,0xa8,0xfc,0x78,0xfe,0xc2,0x0d,0x93,0x12,0x94,0xc2,0x03,0xfe,0xfc,0xec,0x1c,0x32,0x1a,0x34,0x02,0x06,0x01,0x26,0x10,0x00,0x01,0x00,0x21,0x00,0x00,0x04,0x64,0x05,0x9a,0x00,0x11,0x00,0x5a,0x40,0x2e, +0x02,0x02,0x01,0x04,0x01,0x05,0x00,0x05,0x0b,0x0b,0x0a,0x0d,0x0a,0x09,0x0e,0x09,0x04,0x01,0x0a,0x91,0x40,0x0d,0x10,0x08,0x0d,0x91,0x14,0x30,0x09,0x05,0x91,0x08,0x12,0x00,0x0e,0x91,0x10,0x03,0x06,0x0e,0x00,0x00,0x13,0x05,0x0f,0x09,0x2f,0xc6,0x33,0x12,0x39,0x2f,0x33,0xc6,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x2b,0x00,0x18, +0x2f,0x1a,0xed,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x11,0x01,0x33,0x2f,0x10,0x87,0xc0,0xc0,0x11,0x01,0x33,0x2f,0x31,0x30,0x01,0x01,0x33,0x15,0x21,0x01,0x21,0x15,0x21,0x35,0x01,0x23,0x35,0x21,0x01,0x21,0x35,0x21,0x04,0x64,0xfe,0x71,0xfc,0xfe,0x9d,0xfe,0xae,0x03,0x34,0xfb,0xd1,0x01,0x99,0xe3,0x01,0x4a,0x01,0x41,0xfd,0x00, +0x04,0x02,0x05,0x72,0xfd,0xb3,0x97,0xfe,0x0a,0x98,0x2f,0x02,0x5f,0x97,0x01,0xdd,0x98,0x00,0x00,0x01,0x00,0x21,0x00,0x00,0x03,0x70,0x04,0x00,0x00,0x11,0x00,0x5a,0x40,0x2e,0x02,0x02,0x01,0x04,0x01,0x05,0x00,0x05,0x0b,0x0b,0x0a,0x0d,0x0a,0x09,0x0e,0x09,0x04,0x01,0x0a,0x95,0x40,0x0d,0x10,0x08,0x0d,0x95,0x14,0x30,0x09,0x05, +0x95,0x08,0x15,0x00,0x0e,0x95,0x10,0x0f,0x06,0x0e,0x00,0x00,0x13,0x05,0x0f,0x09,0x2f,0xc6,0x33,0x12,0x39,0x2f,0x33,0xc6,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x11,0x01,0x33,0x2f,0x10,0x87,0xc0,0xc0,0x11,0x01,0x33,0x2f,0x31,0x30,0x01,0x01,0x33,0x15,0x21,0x03, +0x21,0x15,0x21,0x35,0x01,0x23,0x35,0x21,0x13,0x21,0x35,0x21,0x03,0x70,0xfe,0xec,0xbc,0xfe,0xe0,0xe6,0x02,0x58,0xfc,0xb7,0x01,0x27,0xa8,0x01,0x0c,0xd3,0xfd,0xdb,0x03,0x16,0x03,0xd1,0xfe,0x83,0x8c,0xfe,0xc4,0x8c,0x33,0x01,0x95,0x8c,0x01,0x20,0x8c,0x00,0x00,0x01,0x00,0x0a,0xfe,0x1e,0x04,0x83,0x05,0x9a,0x00,0x18,0x00,0x44, +0x40,0x24,0x0b,0x0a,0x91,0x40,0x11,0x0e,0x17,0x11,0x91,0x09,0x30,0x01,0x03,0x91,0x17,0x1c,0x10,0x0c,0x91,0x0e,0x03,0x11,0x0b,0x0b,0x06,0x00,0x0c,0x10,0x10,0x14,0x7d,0x06,0x06,0x1a,0x0d,0x00,0x2f,0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0xed,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a, +0xed,0x39,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x24,0x35,0x34,0x24,0x21,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x04,0x00,0x15,0x10,0x00,0x21,0x22,0x0a,0xe0,0xde,0xe9,0x01,0x22,0xfe,0xd1,0xfe,0xf6,0x5c,0x01,0xf5,0xfc,0xf4,0x04,0x02,0xfe,0x02,0x01,0x11,0x01,0x47,0xfe,0x6f,0xfe,0xd4,0xe8,0xfe,0x89,0xb5,0x88,0xef,0xbf,0xcc, +0xe2,0x4c,0x02,0xa4,0x98,0x4c,0xfd,0x52,0x17,0xfe,0xd0,0xef,0xff,0x00,0xfe,0xb4,0x00,0x01,0x00,0x5e,0xfe,0x1e,0x04,0xd7,0x05,0x9a,0x00,0x18,0x00,0x40,0x40,0x22,0x0e,0x0f,0x91,0x40,0x08,0x0a,0x02,0x08,0x91,0x09,0x30,0x18,0x16,0x91,0x02,0x1c,0x09,0x0d,0x91,0x0a,0x03,0x08,0x0e,0x0e,0x13,0x0c,0x18,0x18,0x1a,0x0d,0x09,0x13, +0x7d,0x05,0x2f,0xe1,0xc4,0x32,0x12,0x39,0x2f,0xc6,0x12,0x39,0x2f,0x33,0x00,0x3f,0xed,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x06,0x23,0x20,0x00,0x11,0x34,0x00,0x25,0x01,0x35,0x21,0x15,0x21,0x01,0x15,0x23,0x20,0x04,0x15,0x14,0x04,0x33,0x32,0x37,0x04,0xd7,0xd5,0xfc,0xfe,0xd5,0xfe,0x83,0x01, +0x4e,0x01,0x0a,0xfe,0x02,0x04,0x02,0xfc,0xf6,0x01,0xf4,0x5c,0xfe,0xf8,0xfe,0xce,0x01,0x22,0xe8,0xf0,0xcf,0xfe,0x89,0x6b,0x01,0x3e,0x01,0x02,0xeb,0x01,0x40,0x17,0x02,0xae,0x4c,0x98,0xfd,0x5c,0x4c,0xe5,0xc9,0xbf,0xef,0x7d,0x00,0x01,0x00,0x1e,0xfe,0x21,0x03,0xaa,0x04,0x00,0x00,0x18,0x00,0x3e,0x40,0x21,0x0e,0x0f,0x96,0x40, +0x08,0x0a,0x02,0x08,0x96,0x09,0x30,0x18,0x16,0x95,0x02,0x1c,0x09,0x0d,0x95,0x0a,0x0f,0x08,0x0e,0x0e,0x13,0x0c,0x18,0x1a,0x0d,0x09,0x13,0x83,0x05,0x2f,0xe1,0xc4,0x32,0x10,0xd6,0xc6,0x12,0x39,0x2f,0x33,0x00,0x3f,0xed,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x24,0x35,0x34,0x36, +0x37,0x01,0x35,0x21,0x15,0x21,0x01,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x03,0xaa,0x9a,0xca,0xf4,0xfe,0xcc,0xf7,0xcf,0xfe,0x76,0x03,0x2d,0xfd,0xc5,0x01,0x7a,0x54,0xc8,0xe4,0xda,0xaa,0xc4,0x9c,0xfe,0x72,0x51,0xf9,0xcc,0xb0,0xfb,0x1d,0x02,0x1f,0x33,0x8c,0xfd,0xec,0x33,0xab,0x96,0x8d,0xb3,0x62,0x00,0x00,0x01, +0x00,0x0a,0xfe,0x1e,0x03,0x08,0x04,0x00,0x00,0x22,0x00,0x58,0x40,0x30,0x19,0x0b,0x06,0x1f,0x04,0x03,0x10,0x0f,0x96,0x40,0x16,0x13,0x03,0x16,0x96,0x08,0x30,0x00,0x21,0x95,0x03,0x1c,0x15,0x11,0x95,0x13,0x0f,0x16,0x11,0x15,0x10,0x10,0x0b,0x06,0x15,0x15,0x19,0x00,0x00,0x19,0x84,0x0b,0x0b,0x24,0x12,0x1f,0x83,0x06,0x2f,0xe1, +0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x10,0xc0,0x2f,0x11,0x12,0x39,0x2f,0x12,0x39,0x39,0x00,0x3f,0xed,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x12,0x17,0x39,0x31,0x30,0x05,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x06, +0x07,0x06,0x06,0x15,0x14,0x33,0x32,0x02,0x9e,0x89,0xb9,0xa0,0xb2,0x01,0x38,0xa4,0x7e,0x9e,0x8e,0x52,0x01,0x1a,0xfe,0x0a,0x02,0xd8,0xfe,0xda,0x9e,0xae,0xa6,0xc4,0x93,0x59,0xb8,0xaa,0xfc,0x9e,0x48,0x7d,0x6f,0xc5,0x66,0x36,0x6d,0x59,0x5a,0x67,0x3d,0x01,0x45,0x8c,0x46,0xfe,0xae,0x12,0xa2,0x81,0x7e,0xaf,0x44,0x32,0x45,0x35, +0x6c,0x00,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0xc2,0x05,0xb2,0x00,0x1b,0x00,0x6e,0x40,0x38,0x1a,0x01,0x02,0x18,0x02,0x0a,0x07,0x06,0x0d,0x06,0x01,0x1a,0x07,0x99,0x0a,0x0a,0x02,0x10,0x18,0x0d,0x15,0x06,0x02,0x99,0x05,0x18,0x12,0x10,0x9a,0x15,0x07,0x08,0x08,0x12,0x07,0x1a,0x01,0x18,0x02,0x0a,0x07,0x0d,0x06,0x00,0x00,0x18, +0x04,0x04,0x18,0x8a,0x0d,0x0d,0x1d,0x12,0x02,0x06,0x2f,0x33,0xc6,0x12,0x39,0x2f,0xf9,0xc0,0x2f,0x10,0xc2,0x2f,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x32,0x12,0x39,0x39,0x11,0x12,0x39,0x2f,0xed,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x31,0x30,0x01,0x21, +0x01,0x21,0x15,0x21,0x35,0x01,0x23,0x35,0x21,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x33,0x03,0xc2,0xfe,0xde,0xfe,0x85,0x02,0x9b,0xfc,0xa0,0x01,0x7f,0xfd,0x01,0x84,0x69,0x52,0x90,0x81,0xbe,0xb2,0xa2,0xe5,0xc0,0xdb,0x9f,0x9f,0x02,0x2b,0xfe,0x69,0x94,0x92,0x01,0x99,0x93,0x77,0x9d, +0x55,0x78,0x88,0xa4,0xac,0x83,0xcf,0xb0,0xaf,0xc6,0x00,0x01,0x00,0x74,0xff,0xe8,0x03,0xc8,0x05,0x9a,0x00,0x1d,0x00,0x42,0x40,0x24,0x0d,0x14,0x09,0x9a,0x40,0x16,0x10,0x1c,0x16,0x9a,0x08,0x30,0x01,0x03,0x95,0x1c,0x16,0x13,0x0e,0x99,0x10,0x06,0x11,0x11,0x19,0x89,0x06,0x06,0x1f,0x0e,0x13,0x14,0x03,0x0d,0x0f,0x00,0x2f,0xc6, +0xc4,0x17,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x32,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x33,0x32,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x23,0x13,0x23,0x35,0x21,0x15,0x21,0x03,0x36,0x33,0x32,0x16,0x15,0x14,0x04,0x23,0x22,0xa4,0x93,0x98,0x99,0xb9,0xbe,0xb1,0x32, +0x4d,0x5f,0x07,0x45,0x9e,0x03,0x13,0xfe,0x25,0x33,0x41,0x2c,0xe7,0xfb,0xfe,0xf1,0xec,0xbd,0x23,0xae,0x5f,0xad,0x8d,0x8e,0x9d,0x05,0x07,0x02,0x3b,0x94,0x94,0xfe,0x5c,0x04,0xe6,0xca,0xd0,0xfe,0x00,0x01,0x00,0x48,0xff,0xe8,0x02,0xcd,0x04,0x00,0x00,0x1b,0x00,0x42,0x40,0x24,0x0b,0x12,0x09,0x95,0x40,0x14,0x0e,0x1a,0x14,0x95, +0x08,0x30,0x01,0x03,0x95,0x1a,0x16,0x11,0x0c,0x95,0x0e,0x0f,0x10,0x10,0x17,0x83,0x06,0x06,0x1d,0x0c,0x11,0x12,0x03,0x0b,0x0d,0x00,0x2f,0xc6,0xc4,0x17,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x32,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x33,0x32,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23, +0x22,0x07,0x13,0x23,0x35,0x21,0x15,0x21,0x07,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x5a,0x72,0x7a,0x64,0x7b,0x83,0x73,0x17,0xa6,0x3e,0x68,0x02,0x5c,0xfe,0xa2,0x28,0x32,0x14,0x9d,0xcc,0xd5,0xb2,0x9e,0x18,0xa6,0x4c,0x6c,0x57,0x54,0x65,0x08,0x01,0x8e,0x8c,0x8c,0xfd,0x02,0xa7,0x94,0x97,0xbf,0x00,0x00,0x01,0x00,0x1e, +0xff,0xe8,0x02,0xe4,0x05,0x2f,0x00,0x20,0x00,0x41,0x40,0x21,0x1c,0x05,0x1f,0x0f,0x01,0x03,0x95,0x1f,0x16,0x11,0x15,0x12,0x0c,0x95,0x0f,0x0f,0x14,0x14,0x15,0x1c,0x83,0x05,0x05,0x22,0x12,0x0f,0x15,0x84,0x0c,0x01,0x01,0x0d,0x0c,0x2f,0xcd,0x39,0x2f,0x10,0xe1,0x39,0x39,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x39, +0x39,0xcd,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x39,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x35,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x70,0x76,0x95,0xc3,0x38,0x7d,0x92,0x5b,0x7e,0x7e,0xa4,0x01,0x02,0xfe,0xfe,0x46,0x66,0x89,0x6f,0xc9, +0xad,0x96,0x25,0xb0,0x63,0x90,0x2e,0x4b,0x3f,0x4c,0x9b,0x6d,0x66,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0x62,0x4b,0x5e,0x31,0x44,0x8c,0x5e,0x7f,0xa3,0x00,0x02,0x00,0xa6,0xfe,0x29,0x04,0x16,0x04,0x18,0x00,0x0c,0x00,0x15,0x00,0x2c,0x40,0x17,0x02,0x1b,0x05,0x07,0x0e,0x95,0x00,0x03,0x0f,0x14,0x95,0x07,0x10,0x0a,0x83,0x11,0x11,0x17, +0x0e,0x05,0x01,0x84,0x02,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x2f,0xed,0x12,0x39,0x3f,0x31,0x30,0x05,0x11,0x23,0x11,0x33,0x15,0x36,0x33,0x32,0x16,0x15,0x14,0x00,0x01,0x11,0x36,0x00,0x35,0x34,0x26,0x23,0x22,0x01,0x4a,0xa4,0xa4,0xac,0xc2,0x97,0xc7,0xfe,0x84,0xfe,0xb0,0xf2,0x01,0x32,0x70,0x5c,0x9e, +0x2d,0xfe,0x56,0x05,0xd7,0x81,0x99,0xc4,0x92,0xdf,0xfe,0x72,0x02,0x80,0xfd,0x9b,0x61,0x01,0x34,0xad,0x5d,0x7a,0x00,0x01,0x00,0xac,0xfe,0x1e,0x01,0x40,0x06,0x1e,0x00,0x03,0x00,0x0f,0xb6,0x03,0xfa,0x00,0x1c,0x00,0xca,0x01,0x2f,0xe1,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x40,0x94,0x94,0xfe,0x1e,0x08,0x00,0x00, +0x00,0x02,0x00,0xac,0xfe,0x1e,0x02,0x66,0x06,0x1e,0x00,0x03,0x00,0x07,0x00,0x25,0x40,0x12,0x02,0x01,0x06,0x05,0x1c,0x06,0xfa,0x00,0xca,0x01,0x01,0x09,0x04,0xca,0x00,0x05,0x01,0x05,0x2f,0x5d,0xe1,0x12,0x39,0x7c,0x2f,0xe1,0x00,0x18,0x3f,0x3f,0x12,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x23,0x11,0x33,0x02,0x66,0x93, +0x93,0xfe,0xda,0x94,0x94,0xfe,0x1e,0x08,0x00,0xf8,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x33,0xfe,0x1e,0x03,0x72,0x06,0x1e,0x00,0x13,0x00,0x4f,0x40,0x2c,0x12,0x01,0x04,0x95,0x07,0x11,0x0e,0x0b,0x95,0x08,0x40,0x0c,0x03,0x08,0x07,0x08,0x3a,0x03,0x1c,0x0c,0xfa,0x10,0x09,0x00,0x05,0x08,0x0b,0x0e,0x11,0x04,0x02,0x00,0x03,0x05, +0x05,0x02,0xca,0x03,0x14,0x15,0x03,0xca,0x08,0x30,0x2b,0x01,0x10,0xf1,0xc0,0x18,0x2f,0x10,0xc4,0x12,0x17,0x39,0x11,0x12,0x39,0x39,0x00,0x3f,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xed,0x39,0x39,0x10,0xed,0x39,0x39,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x03, +0x72,0xfe,0xaa,0x93,0xfe,0xaa,0x01,0x56,0xfe,0xaa,0x01,0x56,0x93,0x01,0x56,0xfe,0xaa,0x01,0x56,0x01,0x46,0xfc,0xd8,0x03,0x28,0x8b,0x01,0x17,0x8a,0x02,0xac,0xfd,0x54,0x8a,0xfe,0xe9,0xff,0xff,0x00,0xb4,0xff,0xee,0x01,0x92,0x05,0x9a,0x02,0x06,0x00,0x04,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x09,0xbc,0x07,0x62,0x00,0x26, +0x00,0x27,0x00,0x00,0x00,0x27,0x00,0x3d,0x05,0x58,0x00,0x00,0x01,0x07,0x00,0xe0,0x06,0x43,0x01,0x56,0x00,0x13,0x40,0x0b,0x03,0x05,0x1f,0x1f,0x18,0x19,0x25,0x03,0x1c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x08,0xef,0x06,0x0c,0x00,0x26,0x00,0x27,0x00,0x00,0x00,0x27,0x00,0x5d,0x05,0x7f, +0x00,0x00,0x01,0x07,0x00,0xe0,0x05,0xf5,0x00,0x00,0x00,0x13,0x40,0x0b,0x03,0x0e,0x1f,0x1f,0x18,0x19,0x25,0x03,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x08,0x05,0x06,0x0c,0x00,0x26,0x00,0x47,0x00,0x00,0x00,0x27,0x00,0x5d,0x04,0x95,0x00,0x00,0x01,0x07,0x00,0xe0,0x05,0x0c,0x00,0x00, +0x00,0x13,0x40,0x0b,0x03,0x0e,0x2d,0x2d,0x26,0x27,0x25,0x03,0x2a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xff,0xe8,0x06,0x29,0x05,0x9a,0x00,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0x2d,0x03,0xfe,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0x02,0xed,0xb4,0x0c,0x12,0x02,0x05,0x25,0x01,0x2b,0x35,0xff,0xff, +0x00,0xbc,0xfe,0x1e,0x05,0x39,0x05,0xd9,0x00,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0x4d,0x03,0xd3,0x00,0x00,0x00,0x10,0xb1,0x02,0x01,0xb8,0x01,0xf3,0xb4,0x18,0x0f,0x02,0x05,0x25,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xa6,0xfe,0x1e,0x03,0x77,0x05,0xec,0x00,0x26,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x4d,0x02,0x11,0x00,0x00, +0xff,0xff,0x00,0xbc,0xff,0xe8,0x07,0xe4,0x05,0x9a,0x00,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0x2d,0x05,0xb9,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0x03,0xda,0xb4,0x1a,0x20,0x0a,0x13,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0x1e,0x07,0x34,0x05,0xd9,0x00,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0x4d,0x05,0xce,0x00,0x00, +0x00,0x10,0xb1,0x02,0x01,0xb8,0x03,0x20,0xb4,0x26,0x1d,0x0a,0x13,0x25,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xa6,0xfe,0x1e,0x05,0xed,0x05,0xd9,0x00,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0x4d,0x04,0x87,0x00,0x00,0x00,0x10,0xb1,0x02,0x01,0xb8,0x02,0x88,0xb4,0x25,0x1c,0x0a,0x12,0x25,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x16, +0x00,0x00,0x05,0x12,0x07,0x62,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x12,0x01,0x56,0x00,0x16,0xb9,0x00,0x02,0xff,0xfd,0x40,0x09,0x13,0x10,0x05,0x00,0x25,0x02,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x06,0x0c,0x00,0x26,0x00,0x44,0xf8,0x00,0x01,0x06,0x00,0xe0, +0x7f,0x00,0x00,0x13,0x40,0x0b,0x02,0x18,0x23,0x20,0x08,0x14,0x25,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xf7,0x00,0x00,0x02,0x29,0x07,0x62,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xe0,0xff,0x91,0x01,0x56,0x00,0x13,0x40,0x0b,0x01,0x00,0x07,0x04,0x02,0x03,0x25,0x01,0x06,0x05,0x26,0x00, +0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xdf,0x00,0x00,0x02,0x11,0x06,0x0c,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x00,0xe0,0xff,0x79,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x07,0x04,0x02,0x03,0x25,0x01,0x06,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x62,0x02,0x26, +0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x85,0x01,0x56,0x00,0x13,0x40,0x0b,0x02,0x00,0x1b,0x18,0x03,0x09,0x25,0x02,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x0c,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xd9,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00, +0x1b,0x18,0x03,0x09,0x25,0x02,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x62,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x41,0x01,0x56,0x00,0x13,0x40,0x0b,0x01,0x00,0x11,0x0e,0x05,0x0d,0x25,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x0c,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xc4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x0a,0x15,0x12,0x08,0x11,0x25,0x01,0x14,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x9a,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x05,0x51, +0x00,0x69,0x01,0x60,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x00,0x21,0x1b,0x05,0x0d,0x25,0x03,0x02,0x01,0x1e,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x3a,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x06,0x60,0xe9,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x07, +0x25,0x1f,0x08,0x11,0x25,0x03,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x08,0x42,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x05,0x54,0x00,0x80,0x01,0x60,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x0a,0x21,0x0e,0x05,0x0d,0x25,0x03,0x02,0x01,0x1e,0x05, +0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0xe2,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x05,0x54,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x10,0x25,0x12,0x08,0x11,0x25,0x03,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00, +0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x08,0x5a,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x05,0x53,0x00,0x80,0x01,0x60,0x00,0x1f,0x40,0x12,0x03,0x02,0x01,0x00,0x24,0x1e,0x05,0x0d,0x25,0x03,0x02,0x01,0x30,0x21,0x01,0x21,0x05,0x26,0x00,0x2b,0x71,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8, +0x03,0xe2,0x06,0xfa,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x06,0x61,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x07,0x28,0x22,0x08,0x11,0x25,0x03,0x02,0x01,0x25,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x08,0x42,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07, +0x06,0x62,0x00,0x6d,0x01,0x60,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xf7,0x40,0x0b,0x10,0x1b,0x05,0x0d,0x25,0x03,0x02,0x01,0x1e,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0xe2,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x06,0x62,0xee,0x00,0x00,0x1b,0x40,0x0f, +0x03,0x02,0x01,0x00,0x14,0x1f,0x08,0x11,0x25,0x03,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0x00,0x02,0x00,0x52,0xff,0xe8,0x03,0xcf,0x04,0x18,0x00,0x12,0x00,0x19,0x00,0x48,0x40,0x21,0x06,0x40,0x0b,0x0e,0x48,0x06,0x06,0x04,0x13,0x95,0x40,0x01,0x09,0x0f,0x01,0x95,0x08,0x30,0x17,0x95, +0x0f,0x16,0x04,0x95,0x09,0x10,0x0c,0x83,0x01,0x13,0x13,0x1b,0x06,0xb8,0xff,0xc0,0xb6,0x0e,0x12,0x48,0x06,0x14,0x83,0x00,0x2f,0xe1,0xc6,0x2b,0x12,0x39,0x2f,0xc5,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0x2b,0x31,0x30,0x13,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x12,0x15,0x14, +0x00,0x23,0x22,0x02,0x35,0x05,0x21,0x16,0x16,0x33,0x32,0x36,0x52,0x02,0xd3,0x05,0xae,0x9b,0xad,0x90,0x86,0xde,0xd9,0xf8,0xfe,0xf1,0xc8,0xcb,0xdb,0x02,0xd1,0xfd,0xd7,0x02,0x86,0x78,0x74,0xa2,0x02,0x29,0xab,0xba,0x72,0x9a,0x62,0xfe,0xe9,0xfd,0xf1,0xfe,0xd5,0x01,0x06,0xe5,0x35,0x8f,0x9d,0xa6,0xff,0xff,0x00,0x16,0x00,0x00, +0x05,0x12,0x07,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x05,0x51,0x00,0x33,0x01,0x60,0x00,0x1e,0xb2,0x04,0x03,0x02,0xb8,0xff,0xf6,0x40,0x0b,0x23,0x1d,0x05,0x00,0x25,0x04,0x03,0x02,0x20,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x06,0x3a,0x00,0x26,0x00,0x44, +0xf8,0x00,0x01,0x06,0x06,0x60,0xa3,0x00,0x00,0x1b,0x40,0x0f,0x04,0x03,0x02,0x14,0x33,0x2d,0x08,0x14,0x25,0x04,0x03,0x02,0x30,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x05,0x52,0x00,0x90,0x01,0x65,0x00,0x17, +0x40,0x0d,0x03,0x02,0x00,0x12,0x13,0x05,0x00,0x25,0x03,0x02,0x14,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x06,0x35,0x00,0x26,0x00,0x44,0xf8,0x00,0x01,0x06,0x06,0x63,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x20,0x22,0x23,0x08,0x14,0x25,0x03,0x02,0x24,0x11,0x26,0x00, +0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x0a,0x00,0x00,0x06,0x83,0x06,0x8c,0x02,0x26,0x00,0x91,0x00,0x00,0x01,0x07,0x00,0xd9,0x03,0x5a,0x01,0x5d,0x00,0x16,0xb9,0x00,0x02,0x01,0x50,0x40,0x09,0x16,0x17,0x05,0x0f,0x25,0x02,0x15,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x52,0xff,0xe8,0x06,0x4e, +0x05,0x2f,0x00,0x26,0x00,0xa0,0xf8,0x00,0x01,0x07,0x00,0xd9,0x02,0x1a,0x00,0x00,0x00,0x13,0x40,0x0b,0x03,0x06,0x38,0x39,0x11,0x23,0x25,0x03,0x37,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x05,0x7d,0x05,0xb2,0x00,0x21,0x00,0x61,0x40,0x37,0x01,0x20,0x18,0x92,0x0f,0x1b,0x1f,0x1b,0x2f,0x1b, +0x03,0x1b,0x1b,0x17,0x1c,0x91,0x1e,0x1e,0x0a,0x02,0x17,0x15,0x91,0x04,0x13,0x1f,0x0d,0x2f,0x0d,0x02,0x0d,0x0f,0x91,0x0a,0x04,0x00,0x00,0x1f,0x1a,0x1d,0x1d,0x1c,0x12,0x0d,0x0d,0x01,0x18,0x1f,0x7e,0x1c,0x1c,0x23,0x12,0x7d,0x07,0x2f,0xe9,0x12,0x39,0x2f,0xf9,0x39,0x39,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xc6,0x10,0xc0,0x2f,0x00, +0x3f,0xfd,0xc6,0x5d,0x3f,0xed,0x32,0x32,0x11,0x39,0x2f,0xed,0x11,0x39,0x2f,0x5d,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x15,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x35,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x05,0x7d,0x91,0xd8,0xfe,0xf8,0xfe,0xcd,0xfe, +0x85,0x01,0xa5,0x01,0x43,0xea,0x9f,0xae,0xee,0xf1,0xfe,0xcc,0x01,0x1e,0xf5,0xa8,0x7b,0xfe,0xc8,0x01,0x38,0xfe,0xc6,0x01,0xe2,0x91,0x01,0x31,0xcf,0x7a,0x01,0x8c,0x01,0x46,0x01,0x4d,0x01,0xab,0x4c,0xba,0x6e,0xfe,0xb4,0xfe,0xf8,0xfe,0xf0,0xfe,0xc9,0x43,0x6f,0x8b,0x98,0x98,0xfe,0xd0,0x00,0x02,0x00,0x60,0xfe,0x1e,0x04,0xb6, +0x04,0x18,0x00,0x22,0x00,0x2f,0x00,0x77,0x40,0x12,0x22,0x00,0x0f,0x0b,0x01,0x17,0x03,0x0b,0x95,0x40,0x0c,0x13,0x08,0x0c,0x95,0x08,0x30,0x06,0xb8,0xff,0xc0,0x40,0x2d,0x0b,0x0f,0x48,0x06,0x06,0x08,0x95,0x03,0x1c,0x1c,0x10,0x19,0x2d,0x95,0x13,0x1e,0x0f,0x27,0x95,0x19,0x10,0x21,0x01,0x1f,0x0d,0x0a,0x0f,0x06,0x22,0x22,0x1f, +0x0c,0x0c,0x16,0x1f,0x84,0x23,0x1d,0x0f,0x0f,0x31,0x2a,0x83,0x06,0x16,0x2f,0xc4,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x12,0x39,0x2f,0x10,0xc2,0x2f,0x11,0x12,0x39,0x39,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0x2f,0xed,0x12,0x39,0x39,0x3f,0xed,0x32,0x2f,0x2b,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x5f,0x5e,0x5d,0x39,0x39,0x31,0x30,0x05, +0x23,0x02,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x21,0x35,0x21,0x36,0x35,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x14,0x07,0x33,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xb6,0xdb,0x77,0xfe,0x90,0xbe,0x8e,0xad,0x9d,0xda,0x5d,0xfe,0xb4,0x01,0x83,0x0c, +0x04,0x75,0xeb,0xbd,0xeb,0x01,0x00,0xd5,0xcf,0x64,0x04,0xa4,0x0c,0xb2,0xfe,0xb6,0xa5,0x7b,0x97,0xad,0xa7,0x86,0x8a,0xad,0xd1,0xfe,0xef,0x48,0xa4,0x60,0x85,0x8b,0x3d,0x45,0x99,0xc5,0x01,0x0c,0xd8,0xf5,0x01,0x2f,0xa6,0x8e,0xfc,0x52,0x50,0x48,0x02,0x3e,0x6e,0x7a,0xae,0xd6,0xba,0x9d,0xc5,0xc2,0xff,0xff,0x00,0x5e,0xff,0xe8, +0x04,0xec,0x07,0x62,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x5c,0x01,0x56,0x00,0x13,0x40,0x0b,0x01,0x36,0x1d,0x1a,0x05,0x19,0x25,0x01,0x1c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x06,0x0c,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xc2,0x00,0x00, +0x00,0x13,0x40,0x0b,0x02,0x09,0x29,0x26,0x10,0x18,0x25,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2,0x07,0x62,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xdd,0x01,0x56,0x00,0x16,0xb9,0x00,0x01,0xff,0xad,0x40,0x09,0x14,0x11,0x08,0x00,0x25,0x01,0x13,0x05,0x26, +0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x07,0x62,0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0x81,0x01,0x56,0x00,0x16,0xb9,0x00,0x01,0xff,0xb1,0x40,0x09,0x10,0x0d,0x06,0x00,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x02,0x00,0x5e,0xfe,0x70,0x05,0xaa,0x05,0xb2, +0x00,0x19,0x00,0x25,0x00,0x50,0xb1,0x06,0x04,0xb8,0x01,0x05,0x40,0x0b,0x09,0x20,0x91,0x0e,0x00,0x13,0x1a,0x91,0x14,0x04,0x0e,0xb8,0x01,0x04,0xb5,0x00,0x00,0x02,0x06,0x06,0x02,0xb8,0x01,0x04,0x40,0x0f,0x0c,0x0c,0x19,0x0f,0x19,0x0f,0x11,0x17,0x7d,0x23,0x23,0x27,0x1d,0x7d,0x11,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39, +0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x10,0xc2,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x33,0xed,0x2f,0xfd,0xc6,0x31,0x30,0x05,0x06,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x24,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x03,0x48,0x80,0x44, +0x1e,0x1a,0x1e,0x34,0x4c,0x5c,0x83,0xfe,0xe5,0xfe,0xac,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0xb9,0xfe,0xa7,0xe2,0xfe,0xe6,0x01,0x13,0xdd,0xec,0x01,0x10,0xfe,0xf8,0x14,0x7e,0x4d,0x46,0x0d,0x6b,0x0d,0x50,0x46,0x6f,0x75,0x11,0x01,0x8d,0x01,0x34,0x01,0x5a,0x01,0x9c,0xfe,0x70,0xfe,0xbd,0xfe,0xba,0xfe,0x6b,0x05,0x16, +0xfe,0xba,0xfe,0xf7,0xfe,0xf7,0xfe,0xbd,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0x00,0x02,0x00,0x60,0xfe,0x70,0x04,0x50,0x04,0x18,0x00,0x19,0x00,0x25,0x00,0x4c,0xb1,0x06,0x04,0xb8,0x01,0x05,0x40,0x0b,0x09,0x20,0x95,0x00,0x0e,0x16,0x1a,0x95,0x14,0x10,0x0e,0xb8,0x01,0x04,0xb3,0x00,0x06,0x06,0x02,0xb8,0x01,0x04,0x40,0x0f, +0x0c,0x0c,0x19,0x0f,0x19,0x0f,0x11,0x17,0x83,0x23,0x23,0x27,0x1d,0x83,0x11,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0xd6,0xe1,0x00,0x3f,0xed,0x3f,0x33,0xed,0x2f,0xfd,0xc6,0x31,0x30,0x05,0x06,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x02,0x35,0x10,0x00, +0x33,0x32,0x00,0x15,0x14,0x02,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0xa2,0x81,0x43,0x1e,0x1a,0x1e,0x34,0x4c,0x5c,0x83,0xd0,0xf5,0x01,0x1a,0xf0,0xe5,0x01,0x01,0xe6,0xfe,0xf4,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab,0x14,0x80,0x4b,0x46,0x0d,0x6b,0x0d,0x50,0x46,0x6f,0x75,0x0e,0x01,0x1c,0xe0,0x01,0x02, +0x01,0x22,0xfe,0xe6,0xfa,0xde,0xfe,0xdf,0x03,0x89,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0xff,0xff,0x00,0x5e,0xfe,0x70,0x05,0xaa,0x06,0x8c,0x02,0x26,0x05,0x14,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0xd2,0x01,0x5d,0x00,0x13,0x40,0x0b,0x02,0x0a,0x28,0x29,0x11,0x17,0x25,0x02,0x27,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, +0xff,0xff,0x00,0x60,0xfe,0x70,0x04,0x50,0x05,0x2f,0x02,0x26,0x05,0x15,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x26,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0a,0x28,0x29,0x11,0x17,0x25,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0a,0xfe,0x1e,0x04,0x83,0x07,0x62,0x02,0x26,0x04,0xe1,0x00,0x00,0x01,0x07, +0x00,0xe0,0x00,0x8b,0x01,0x56,0x00,0x16,0xb9,0x00,0x01,0xff,0xc4,0x40,0x09,0x1c,0x19,0x01,0x14,0x25,0x01,0x1b,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xdd,0xfe,0x21,0x03,0x68,0x06,0x0c,0x00,0x26,0x05,0x97,0x00,0x00,0x01,0x06,0x00,0xe0,0xf8,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xd5,0x40,0x09,0x1c,0x19,0x01, +0x14,0x25,0x01,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0x3a,0xfe,0x1e,0x02,0x10,0x06,0x0c,0x02,0x26,0x06,0xac,0x00,0x00,0x01,0x07,0x00,0xe0,0xff,0x78,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0xb5,0x10,0x0d,0x06,0x0c,0x25,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00, +0x09,0xbc,0x05,0x9a,0x00,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0x3d,0x05,0x58,0x00,0x00,0x00,0x0e,0xb9,0x00,0x02,0x04,0x9d,0xb4,0x15,0x19,0x01,0x04,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x08,0xf0,0x05,0x9a,0x00,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0x5d,0x05,0x80,0x00,0x00,0x00,0x0e,0xb9,0x00,0x02,0x04, +0x4b,0xb4,0x15,0x19,0x01,0x04,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x08,0x06,0x05,0xec,0x00,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x00,0x5d,0x04,0x96,0x00,0x00,0x00,0x0e,0xb9,0x00,0x02,0x04,0x26,0xb4,0x23,0x27,0x08,0x10,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0xec,0x07,0x68,0x02,0x26,0x00,0x2a, +0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x27,0x01,0x5e,0x00,0x13,0x40,0x0b,0x01,0xcb,0x1c,0x1a,0x05,0x19,0x25,0x01,0x1c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x06,0x0a,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x56,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x67,0x28,0x26, +0x10,0x18,0x25,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xbc,0xff,0xe8,0x07,0x79,0x05,0x9a,0x00,0x17,0x00,0x43,0x40,0x25,0x08,0x91,0x40,0x0d,0x0b,0x0a,0x0d,0x91,0x2b,0x30,0x13,0x91,0x03,0x13,0x0a,0x12,0x17,0x0f,0x10,0x0b,0x03,0x0e,0x0d,0x09,0x10,0x7e,0x07,0x07,0x0a,0x17,0x7e,0x16,0x16,0x19, +0x09,0x7e,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0x33,0x3f,0x3f,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x07,0x79,0xe8,0xcd,0xc9,0xda,0xfd,0x43,0xa8, +0xa8,0x02,0xbd,0xa7,0x01,0x05,0x01,0x04,0xa8,0x01,0xac,0xd6,0xee,0xe5,0xd3,0xee,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfc,0x14,0xfe,0xd1,0x01,0x29,0x02,0x58,0x00,0x02,0x00,0xbc,0xfe,0x29,0x05,0x27,0x05,0xb2,0x00,0x0c,0x00,0x15,0x00,0x2e,0x40,0x18,0x05,0x00,0x07,0x02,0x1b,0x0e,0x91,0x00,0x03,0x03,0x14,0x91,0x07,0x04, +0x0a,0x7d,0x11,0x11,0x17,0x0e,0x05,0x01,0x7e,0x02,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x2f,0xed,0x3f,0x11,0x12,0x39,0x31,0x30,0x05,0x11,0x23,0x11,0x33,0x15,0x36,0x21,0x32,0x12,0x15,0x10,0x00,0x01,0x11,0x24,0x00,0x11,0x34,0x26,0x23,0x22,0x01,0x64,0xa8,0xa8,0xeb,0x01,0x1d,0xc2,0xf9,0xfe,0x03,0xfe, +0x3a,0x01,0x61,0x01,0xb2,0xa3,0x88,0xea,0x3a,0xfe,0x63,0x07,0x71,0xe2,0xfa,0xfe,0xf2,0xc7,0xfe,0xbf,0xfd,0xdb,0x03,0x7f,0xfc,0x78,0x91,0x01,0xc9,0x01,0x03,0x8e,0xbd,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x68,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x7d,0x01,0x5e,0x00,0x16,0xb9,0x00,0x01,0xff, +0x93,0x40,0x09,0x16,0x14,0x0a,0x13,0x25,0x01,0x15,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x0a,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xcb,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0x90,0x40,0x09,0x15,0x13,0x0a,0x12,0x25,0x01,0x14,0x11,0x26,0x00,0x2b,0x35,0x01, +0x2b,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x5e,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x6e,0x02,0x1d,0x01,0x5e,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0x8a,0x40,0x0a,0x16,0x10,0x05,0x00,0x25,0x03,0x02,0x15,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x06,0x00, +0x00,0x26,0x00,0x44,0xf8,0x00,0x01,0x07,0x04,0x6e,0x01,0xa1,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xbc,0x40,0x0a,0x26,0x20,0x08,0x14,0x25,0x03,0x02,0x25,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0xf0,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x2a,0x00,0x00, +0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x00,0x17,0x10,0x05,0x00,0x25,0x02,0x17,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x05,0xbc,0x00,0x26,0x00,0x44,0xf8,0x00,0x01,0x06,0x04,0x2a,0xae,0x28,0x00,0x13,0x40,0x0b,0x02,0x20,0x26,0x20,0x08,0x14,0x25,0x02,0x26,0x11,0x26,0x00,0x2b,0x35, +0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x9e,0x00,0x00,0x03,0xb4,0x07,0x5e,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0xc1,0x01,0x5e,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x8a,0x40,0x0a,0x12,0x0c,0x02,0x0b,0x25,0x02,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd, +0x06,0x00,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0xbf,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xa2,0x40,0x0a,0x20,0x1a,0x0c,0x12,0x25,0x03,0x02,0x1f,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x18,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x04,0x2a, +0xff,0xd3,0x01,0x84,0x00,0x16,0xb9,0x00,0x01,0xff,0xf3,0x40,0x09,0x12,0x0c,0x02,0x0b,0x25,0x01,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0xbc,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x04,0x2a,0xc0,0x28,0x00,0x16,0xb9,0x00,0x02,0xff,0xfa,0x40,0x09,0x20,0x1a,0x0c,0x12,0x25, +0x02,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0x86,0x00,0x00,0x01,0xce,0x07,0x5e,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x04,0x6e,0x00,0xa9,0x01,0x5e,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x9a,0x40,0x0a,0x0a,0x04,0x02,0x03,0x25,0x02,0x01,0x09,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff, +0xff,0x6e,0x00,0x00,0x01,0xb6,0x06,0x00,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x04,0x6e,0x00,0x91,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x9a,0x40,0x0a,0x0a,0x04,0x02,0x03,0x25,0x02,0x01,0x09,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xf8,0x00,0x00,0x02,0x28,0x07,0x18,0x02,0x26,0x00,0x2c, +0x00,0x00,0x01,0x07,0x04,0x2a,0xfe,0xb8,0x01,0x84,0x00,0x13,0x40,0x0b,0x01,0x00,0x0a,0x04,0x02,0x03,0x25,0x01,0x0a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xe6,0x00,0x00,0x02,0x0a,0x05,0xbe,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x04,0x70,0x00,0xf8,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x0b,0x04, +0x02,0x03,0x25,0x01,0x0b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x5e,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x04,0x6e,0x02,0x91,0x01,0x5e,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0x8e,0x40,0x0a,0x1e,0x18,0x03,0x09,0x25,0x03,0x02,0x1d,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, +0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x00,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0xe3,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0x8c,0x40,0x0a,0x1e,0x18,0x03,0x09,0x25,0x03,0x02,0x1d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x18, +0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x04,0x2a,0x00,0xac,0x01,0x84,0x00,0x13,0x40,0x0b,0x02,0x00,0x1e,0x18,0x03,0x09,0x25,0x02,0x1e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0xbc,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x2a,0x00,0x28,0x00,0x13,0x40,0x0b,0x02,0x00, +0x1e,0x18,0x03,0x09,0x25,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa0,0x00,0x00,0x04,0xc0,0x07,0x5e,0x00,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0xc3,0x01,0x5e,0x00,0x0a,0xb4,0x03,0x02,0x2d,0x05,0x26,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x04,0x00,0x00,0x02,0xbc,0x06,0x00,0x02,0x26, +0x00,0x55,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0x27,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x77,0x40,0x0a,0x17,0x11,0x08,0x10,0x25,0x02,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xc0,0x07,0x18,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x04,0x2a,0xff,0xfe,0x01,0x84, +0x00,0x08,0xb3,0x02,0x2e,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x9a,0x00,0x00,0x02,0xca,0x05,0xbc,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x04,0x2a,0xff,0x5a,0x00,0x28,0x00,0x13,0x40,0x0b,0x01,0x00,0x17,0x11,0x08,0x10,0x25,0x01,0x17,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5, +0x07,0x5e,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x04,0x6e,0x02,0x54,0x01,0x5e,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x96,0x40,0x0a,0x14,0x0e,0x05,0x0d,0x25,0x02,0x01,0x13,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x04,0x6e, +0x01,0xd1,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x99,0x40,0x0a,0x18,0x12,0x08,0x11,0x25,0x02,0x01,0x17,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x18,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x04,0x2a,0x00,0x68,0x01,0x84,0x00,0x13,0x40,0x0b,0x01,0x00,0x14,0x0e, +0x05,0x0d,0x25,0x01,0x14,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x05,0xbc,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x04,0x2a,0xeb,0x28,0x00,0x13,0x40,0x0b,0x01,0x0a,0x18,0x12,0x08,0x11,0x25,0x01,0x18,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0x10,0xfe,0x21, +0x03,0xcb,0x05,0xb2,0x00,0x24,0x00,0x53,0x40,0x2d,0x1d,0x0c,0x0f,0x09,0x01,0x1f,0x03,0x09,0x0b,0x91,0x40,0x0c,0x17,0x23,0x0c,0x91,0x08,0x30,0x01,0x03,0x91,0x23,0x1b,0x14,0x12,0x91,0x17,0x04,0x1d,0x1a,0x0b,0x0b,0x06,0x01,0x0f,0x7d,0x1a,0x1a,0x20,0x7d,0x06,0x06,0x26,0x14,0x01,0x2f,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1, +0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xfd,0xc6,0x5f,0x5e,0x5d,0x12,0x39,0x31,0x30,0x13,0x35,0x16,0x33,0x20,0x00,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x37,0x24,0x11,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x04,0x15,0x10,0x05,0x15,0x16,0x16,0x15,0x10,0x00,0x21,0x22, +0x10,0x4c,0x66,0x01,0x00,0x01,0x58,0xe4,0xb7,0x5a,0x73,0x71,0x01,0xae,0xc2,0xa7,0xac,0xa2,0x9a,0xbe,0xf6,0x01,0x15,0xfe,0xd7,0xad,0xca,0xfe,0x47,0xfe,0xb4,0x67,0xfe,0x2f,0x9c,0x13,0x01,0x11,0xcf,0xa0,0xca,0x20,0x97,0x19,0x5f,0x01,0x09,0x83,0x9d,0x5a,0xa4,0x4e,0xec,0xc2,0xfe,0xe7,0x72,0x09,0x29,0xf9,0xb0,0xfe,0xf8,0xfe, +0x8b,0x00,0x00,0x01,0x00,0x1e,0xfe,0x21,0x03,0x3e,0x04,0x18,0x00,0x25,0x00,0x51,0x40,0x2d,0x1e,0x0c,0x09,0x40,0x1f,0x22,0x48,0x09,0x0b,0x95,0x40,0x0c,0x18,0x24,0x0c,0x95,0x08,0x30,0x01,0x03,0x95,0x24,0x1c,0x15,0x13,0x95,0x18,0x10,0x1e,0x1b,0x0b,0x0b,0x06,0x01,0x10,0x84,0x1b,0x1b,0x21,0x83,0x06,0x06,0x27,0x01,0x15,0x2f, +0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xfd,0xc6,0x2b,0x12,0x39,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x24,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15, +0x16,0x16,0x15,0x14,0x00,0x21,0x22,0x2f,0x42,0x55,0xcb,0x01,0x05,0xa4,0x8c,0x58,0x5e,0x60,0x9e,0xb0,0x93,0x89,0x96,0x8e,0x86,0xb0,0xc7,0xe7,0xe8,0x84,0xa0,0xfe,0xa4,0xfe,0xeb,0x61,0xfe,0x2d,0x91,0x12,0xc8,0x9e,0x7d,0x9a,0x1d,0x8c,0x12,0x1e,0x92,0x62,0x62,0x70,0x52,0x97,0x45,0xbd,0x97,0xc7,0x6d,0x07,0x1e,0xc7,0x8c,0xd9, +0xfe,0xe2,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x07,0x62,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x58,0x01,0x56,0x00,0x13,0x40,0x0b,0x01,0x00,0x0f,0x0c,0x06,0x0b,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x07,0x62,0x02,0x26,0x00,0x4b,0x00,0x00, +0x01,0x07,0x00,0xe0,0x00,0x81,0x01,0x56,0x00,0x16,0xb9,0x00,0x01,0xff,0xb1,0x40,0x09,0x15,0x12,0x0a,0x11,0x25,0x01,0x14,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x01,0x00,0xbc,0xfe,0x29,0x05,0x27,0x05,0xb2,0x00,0x12,0x00,0x2a,0x40,0x16,0x0c,0x09,0x0f,0x01,0x1b,0x09,0x12,0x0a,0x03,0x04,0x91,0x0f,0x04,0x00,0x7e,0x01, +0x01,0x14,0x0c,0x08,0x7e,0x09,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0x11,0x12,0x39,0x31,0x30,0x01,0x23,0x11,0x10,0x21,0x22,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x12,0x21,0x32,0x12,0x11,0x05,0x27,0xa8,0xfe,0x9f,0xc0,0xfa,0xa8,0xa8,0x06,0x9e,0x01,0x3e,0xe9,0xf8,0xfe,0x29,0x05,0x0c,0x01,0xe5, +0xfe,0xe6,0xd5,0xfc,0xd5,0x05,0x9a,0xfe,0xfa,0x01,0x1e,0xfe,0xcd,0xfe,0xe3,0x00,0x00,0x02,0x00,0x3e,0xff,0xe8,0x04,0x81,0x05,0x9a,0x00,0x1e,0x00,0x2a,0x00,0x62,0x40,0x36,0x14,0x00,0x1f,0x91,0x40,0x0a,0x04,0x1a,0x0a,0x91,0x08,0x30,0x25,0x91,0x1a,0x13,0x10,0x04,0x03,0x14,0x00,0x12,0x02,0x10,0x7d,0x0f,0x0f,0x0d,0x7e,0x12, +0x12,0x17,0x28,0x04,0x7d,0x8f,0x05,0x01,0x05,0x05,0x07,0x7e,0x02,0x02,0x22,0x1d,0x17,0x7d,0x28,0x28,0x2c,0x22,0x7d,0x1d,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x5d,0xe1,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0xe1,0x11,0x12,0x39,0x39,0x00,0x3f,0x33,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39, +0x31,0x30,0x01,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x25,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x56,0xcd,0x37,0xac,0x3b,0xa4,0x89,0x8a,0xa6,0x3e,0xae,0x37,0xd1,0x86,0x97,0xfe,0xc8,0xef, +0xf2,0xfe,0xd6,0x02,0x20,0x9e,0xd2,0xd8,0x98,0x9f,0xd4,0xda,0x03,0x60,0x6a,0xde,0x78,0x7a,0x70,0x7a,0x74,0x96,0x96,0x74,0x76,0x74,0x7c,0x76,0xce,0x7a,0x34,0xd6,0x8b,0xd7,0xfe,0xf4,0x01,0x01,0xd9,0x01,0x1e,0x2a,0xaf,0x95,0x95,0xb2,0xb1,0x96,0x95,0xaf,0x00,0x02,0x00,0x48,0xff,0xe8,0x04,0x42,0x05,0xec,0x00,0x1e,0x00,0x2a, +0x00,0x54,0x40,0x2f,0x15,0x00,0x1f,0x95,0x40,0x0b,0x05,0x1a,0x0b,0x95,0x08,0x30,0x25,0x95,0x1a,0x16,0x11,0x05,0x00,0x11,0x84,0x10,0x10,0x01,0x10,0x10,0x0e,0x84,0x13,0x13,0x17,0x83,0x28,0x28,0x2c,0x1d,0x05,0x84,0x06,0x06,0x08,0x84,0x03,0x03,0x22,0x83,0x1d,0x2f,0xe1,0x39,0x2f,0xf1,0xc2,0x2f,0xe1,0x11,0x12,0x39,0x2f,0xe1, +0x39,0x2f,0xf1,0xc2,0x2f,0x71,0xe1,0x00,0x3f,0x33,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x26,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x04,0x11,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x25,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34, +0x26,0x01,0x52,0x5f,0x6e,0x2b,0xa0,0x27,0x98,0x85,0x85,0x95,0x26,0x9f,0x2b,0xcc,0x01,0x0a,0xfe,0xd7,0xdb,0xdf,0xfe,0xe9,0x01,0xfe,0x92,0xc4,0xc8,0x8c,0x91,0xc5,0xc8,0x03,0x74,0x30,0xc6,0x7c,0x80,0x86,0x78,0x84,0x8e,0xae,0xaf,0x8d,0x84,0x78,0x86,0x80,0xf5,0x7d,0x7e,0xfe,0xdb,0xd7,0xfe,0xee,0x01,0x0b,0xda,0x01,0x26,0x36, +0xbd,0x9d,0x9c,0xc1,0xc0,0x9d,0x99,0xc1,0x00,0x01,0x00,0x21,0xff,0x0c,0x04,0x7b,0x05,0x9a,0x00,0x11,0x00,0x30,0x40,0x18,0x01,0x07,0x0d,0x91,0x06,0x12,0x0c,0x08,0x91,0x0a,0x03,0x08,0x0c,0x10,0x01,0x01,0x03,0x7e,0x10,0x10,0x13,0x09,0x0d,0x07,0x2f,0x33,0xc6,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x10,0xc4,0x32,0x00,0x3f,0xed,0x39, +0x3f,0xed,0x39,0x2f,0x31,0x30,0x05,0x23,0x36,0x35,0x34,0x23,0x21,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x20,0x15,0x14,0x04,0x5a,0xa4,0x27,0x91,0xfc,0xd5,0x03,0x41,0xfd,0x02,0x04,0x00,0xfc,0xb8,0x02,0x3c,0x01,0x23,0xf4,0x46,0x3c,0x72,0x2f,0x04,0xd3,0x98,0x28,0xfb,0x26,0xfc,0x47,0x00,0x01,0x00,0x21,0xff,0x1e,0x03,0x9e, +0x04,0x00,0x00,0x11,0x00,0x33,0x40,0x1b,0x01,0x07,0x0d,0x95,0x06,0x15,0x0c,0x08,0x95,0x0a,0x0f,0x08,0x0c,0x10,0x01,0xa0,0x03,0xb0,0x03,0x02,0x03,0x10,0x10,0x13,0x09,0x0d,0x07,0x2f,0x33,0xc6,0x12,0x39,0x2f,0xdd,0x5d,0xc6,0x10,0xc4,0x32,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x2f,0x31,0x30,0x05,0x23,0x36,0x35,0x34,0x23,0x21, +0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x20,0x15,0x14,0x03,0x7f,0x95,0x22,0x85,0xfd,0x9a,0x02,0x5e,0xfd,0xdb,0x03,0x16,0xfd,0xa2,0x01,0x80,0x01,0x0c,0xe2,0x40,0x38,0x6a,0x33,0x03,0x41,0x8c,0x2f,0xfc,0xbb,0xe8,0x41,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0xea,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xdb, +0x01,0xc7,0x01,0x65,0x00,0x13,0x40,0x0b,0x02,0x00,0x13,0x19,0x05,0x00,0x25,0x02,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x05,0x85,0x00,0x26,0x00,0x44,0xf8,0x00,0x01,0x07,0x00,0xdb,0x01,0x38,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x20,0x23,0x29,0x08,0x14,0x25,0x02,0x20,0x11, +0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0xa3,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x05,0x51,0x00,0xb0,0x01,0x69,0x00,0x1b,0x40,0x0f,0x04,0x03,0x02,0x03,0x2b,0x25,0x03,0x09,0x25,0x04,0x03,0x02,0x28,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff, +0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x3a,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x06,0x60,0x00,0x00,0x00,0x1b,0x40,0x0f,0x04,0x03,0x02,0x00,0x2b,0x25,0x03,0x09,0x25,0x04,0x03,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0xb7,0x02,0x26,0x00,0x32, +0x00,0x00,0x01,0x07,0x05,0x55,0x00,0xaa,0x01,0x62,0x00,0x17,0x40,0x0d,0x03,0x02,0x09,0x22,0x18,0x03,0x09,0x25,0x03,0x02,0x22,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x55,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x06,0x64,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02, +0x0b,0x22,0x18,0x03,0x09,0x25,0x03,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x06,0xea,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x36,0x01,0x65,0x00,0x13,0x40,0x0b,0x02,0x00,0x1b,0x21,0x03,0x09,0x25,0x02,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b, +0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0x85,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x8a,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x1b,0x21,0x03,0x09,0x25,0x02,0x18,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x9a,0x02,0x26,0x00,0x32,0x00,0x00, +0x01,0x07,0x05,0x52,0x00,0xfe,0x01,0x65,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1a,0x1b,0x03,0x09,0x25,0x03,0x02,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x35,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x06,0x63,0x52,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1a, +0x1b,0x03,0x09,0x25,0x03,0x02,0x1c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x06,0x8c,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xfb,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x10,0x11,0x05,0x00,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, +0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0x2f,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xb4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x17,0x18,0x0c,0x00,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x03,0x01,0x33,0x04,0xc2,0x03,0x7b,0x06,0x3a,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x32, +0xb2,0x02,0xe2,0x01,0xb8,0xff,0xc0,0x40,0x15,0x09,0x0c,0x48,0x01,0x04,0x0a,0x16,0xc1,0x10,0x00,0x01,0x00,0x01,0x13,0x0d,0xc0,0x07,0x13,0xc0,0x07,0x19,0x2f,0xc6,0xe1,0x10,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x2f,0xfd,0x39,0x39,0xde,0x2b,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x56,0xfe,0x04,0x01,0xfc,0x3e,0x28,0x3a,0x39,0x27,0x2a,0x3b,0x39,0xfe,0x56,0x29,0x3c,0x39,0x2a,0x29,0x3b,0x39,0x05,0xcd,0x6d,0xfe,0x88,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39,0x2a,0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0x02,0x01,0x08,0x04,0xc2, +0x03,0x04,0x06,0x35,0x00,0x03,0x00,0x0f,0x00,0x25,0xb2,0x02,0xe2,0x01,0xb8,0xff,0xc0,0x40,0x0e,0x09,0x0c,0x48,0x01,0x0a,0xc1,0x04,0x01,0x01,0x0d,0x00,0x0d,0xc0,0x07,0x2f,0xe1,0xc4,0x10,0xc0,0x2f,0x00,0x2f,0xfd,0xde,0x2b,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03, +0x04,0xfe,0x04,0x01,0xfc,0xfe,0x28,0x3a,0x3a,0x28,0x29,0x39,0x39,0x05,0xc8,0x6d,0xfe,0x8d,0x39,0x2a,0x29,0x37,0x37,0x29,0x29,0x3a,0x00,0x03,0x01,0x1c,0x04,0xc2,0x03,0x64,0x06,0xfa,0x00,0x06,0x00,0x12,0x00,0x1e,0x00,0x37,0xb4,0x05,0x00,0x03,0x80,0x01,0xb8,0xff,0xc0,0x40,0x15,0x09,0x0c,0x48,0x01,0x07,0x0d,0x19,0xc1,0x13, +0x00,0x03,0x00,0x03,0x16,0x10,0xc0,0x0a,0x16,0xc0,0x0a,0x1c,0x2f,0xc6,0xe1,0x10,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x2f,0xfd,0x39,0x39,0xd6,0x2b,0x1a,0xcd,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x03,0x33,0x17,0x37,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x03,0x5a,0xd5,0x85,0xd7,0x73,0xa4,0xa4,0x1e,0x28,0x3a,0x37,0x29,0x2a,0x3a,0x38,0xfe,0x55,0x29,0x3c,0x39,0x2a,0x29,0x3c,0x3a,0x06,0xfa,0xfe,0xb6,0x01,0x4a,0xe6,0xe6,0xfd,0xc8,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39,0x2a,0x29,0x39,0x39,0x29,0x29,0x3a,0x00,0x00,0x03,0x01,0x1c,0x04,0xc2,0x03,0x77,0x06,0xe2, +0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x35,0xb2,0x00,0x80,0x01,0xb8,0xff,0xc0,0x40,0x16,0x09,0x0c,0x48,0x01,0x04,0x0a,0x16,0xc1,0x40,0x10,0x00,0x80,0x02,0x02,0x19,0x0d,0xc0,0x07,0x13,0xc0,0x07,0x19,0x2f,0xc6,0xe1,0x10,0xe1,0x12,0x39,0x2f,0x1a,0xcd,0x00,0x2f,0x1a,0xfd,0x39,0x39,0xd6,0x2b,0x1a,0xcd,0x31,0x30,0x01,0x01,0x23, +0x13,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x77,0xfe,0xf9,0x7e,0xdf,0x31,0x28,0x3a,0x37,0x29,0x2a,0x3a,0x38,0xfe,0x55,0x29,0x3c,0x39,0x2a,0x29,0x3c,0x3a,0x06,0xe2,0xfe,0xb8,0x01,0x48,0xfd,0xe0,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a, +0x39,0x2a,0x29,0x39,0x39,0x29,0x29,0x3a,0x00,0x02,0x01,0x23,0x04,0xb2,0x03,0xa4,0x06,0x55,0x00,0x13,0x00,0x17,0x00,0x3c,0x40,0x17,0x14,0x15,0x14,0x15,0x0a,0x13,0xc4,0x00,0x09,0xc4,0x0a,0x17,0xe2,0x14,0x40,0x0d,0x12,0x48,0x14,0x13,0x07,0xda,0x0d,0xb8,0xff,0xc0,0xb7,0x09,0x0c,0x48,0x0d,0x11,0xda,0x09,0x03,0x00,0x2f,0xc6, +0xfd,0xdc,0x2b,0xed,0xd6,0xd6,0x2b,0xed,0x01,0x2f,0xe1,0xd4,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x37,0x21,0x35,0x21,0x03,0xa4,0x60,0x52,0x47,0x5b,0x4d,0x2a,0x58,0x5e,0x60,0x56,0x41,0x54,0x4a,0x36,0x54,0x1a,0xfe,0x04, +0x01,0xfc,0x05,0xb2,0x69,0x85,0x34,0x2b,0x71,0x6b,0x81,0x34,0x2c,0x74,0x36,0x6d,0x00,0x02,0x00,0x90,0xff,0xe8,0x03,0xb8,0x04,0x18,0x00,0x15,0x00,0x20,0x00,0x46,0xb9,0x00,0x04,0xff,0xc0,0x40,0x23,0x09,0x0c,0x48,0x04,0x04,0x02,0x0d,0x10,0x16,0x96,0x00,0x00,0x1d,0x02,0x95,0x08,0x16,0x0b,0x0f,0x1d,0x95,0x10,0x10,0x04,0x04, +0x13,0x83,0x1a,0x1a,0x22,0x16,0x0c,0x00,0x84,0x0b,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x11,0x39,0x2f,0xed,0x12,0x39,0x11,0x33,0x2f,0x2b,0x31,0x30,0x01,0x10,0x33,0x32,0x37,0x15,0x06,0x06,0x23,0x20,0x11,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x10,0x05,0x25,0x37,0x36,0x36, +0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x31,0xd5,0xba,0x94,0x37,0xcb,0x5a,0xfe,0x98,0xa3,0x05,0x6a,0xd0,0x99,0xad,0xfe,0xae,0xfe,0xcb,0xfa,0x6e,0x77,0x6a,0x5a,0x7c,0x9f,0x01,0x77,0xfe,0xfb,0x7e,0xa8,0x27,0x39,0x01,0x7e,0x02,0x9a,0xa0,0xb8,0xa2,0x86,0xfe,0xe1,0x2f,0x58,0x22,0x0f,0x51,0x68,0x4c,0x5e,0xad,0x81,0x00,0x02, +0x00,0x60,0xff,0xe8,0x04,0x10,0x04,0x18,0x00,0x10,0x00,0x1d,0x00,0x49,0x40,0x18,0x02,0x1b,0x95,0x05,0x16,0x01,0x15,0x0e,0x15,0x95,0x0b,0x10,0x0f,0x0f,0x11,0x0d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf8,0x40,0x13,0x0c,0x06,0x4d,0x01,0x01,0x1f,0x18,0x08,0x0c,0x06,0x4d,0x18,0x83,0x08,0x0e,0x0c,0x06,0x4d,0x08, +0x2f,0x2b,0xe9,0x2b,0x12,0x39,0x2f,0x2b,0xe9,0x2b,0x33,0x33,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x32,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0xa4,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5, +0xd3,0x60,0x04,0xa4,0xa4,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0xab,0xae,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x8e,0xfd,0xcf,0x97,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0xc6,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x54,0x04,0x18,0x00,0x10,0x00,0x1d,0x00,0x49,0x40,0x16,0x03,0x15,0x01,0x15,0x95,0x0f,0x16,0x07,0x1b,0x95,0x09,0x10, +0x04,0x0f,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x83,0x18,0xb8,0xff,0xec,0x40,0x15,0x0c,0x06,0x4d,0x18,0x18,0x1f,0x06,0x02,0x12,0x06,0x0c,0x06,0x4d,0x12,0x84,0x03,0x02,0x0c,0x06,0x4d,0x03,0x2f,0x2b,0xe9,0x2b,0x32,0x32,0x12,0x39,0x2f,0x2b,0xe9,0x2b,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x31,0x30,0x25,0x23,0x15,0x23,0x11, +0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4e,0x04,0xa4,0xa4,0x04,0x79,0xe9,0xc5,0xdf,0xfa,0xd9,0xcb,0x6c,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0x94,0x94,0x04,0x00,0xb4,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x02,0x49,0x8f,0x7f, +0xb1,0xe4,0xcb,0xab,0xc2,0xc7,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x56,0x06,0x02,0x00,0x1a,0x00,0x27,0x00,0x38,0x40,0x1e,0x10,0x01,0x13,0x1f,0x95,0x19,0x16,0x03,0x15,0x25,0x95,0x13,0x10,0x0a,0x0c,0x95,0x07,0x01,0x0a,0x0a,0x16,0x83,0x22,0x22,0x29,0x10,0x02,0x1c,0x83,0x03,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f, +0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x25,0x23,0x15,0x23,0x11,0x10,0x12,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x50,0x04,0xa6,0xfd,0xdc,0x8a,0x7e,0x84,0x88, +0x87,0xa8,0x04,0x79,0xe9,0xc5,0xdf,0xfa,0xd9,0xca,0x6d,0xa5,0x7f,0x95,0xab,0x9f,0x88,0x8f,0xae,0x94,0x94,0x03,0xdd,0x01,0x14,0x01,0x11,0x37,0x98,0x44,0xa5,0xf3,0x93,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x02,0x49,0x8f,0x7f,0xb1,0xe5,0xca,0xaa,0xc3,0xc7,0x00,0x00,0x01,0x00,0x5a,0xff,0xe8,0x03,0x5a,0x04,0x18,0x00,0x15, +0x00,0x26,0x40,0x14,0x30,0x01,0x01,0x01,0x03,0x95,0x14,0x16,0x0b,0x09,0x95,0x0e,0x10,0x11,0x83,0x06,0x06,0x17,0x0b,0x00,0x2f,0xc6,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x5d,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x5c,0x78, +0x84,0x99,0xc1,0xbd,0x9f,0x83,0x79,0x78,0x9e,0xdb,0x01,0x0f,0xfe,0xe7,0xed,0x8c,0x21,0xa5,0x54,0xdc,0xb8,0xb4,0xd4,0x54,0x9b,0x43,0xfe,0xe3,0xe5,0xfe,0xfe,0xd0,0x00,0x02,0x00,0x60,0xff,0x70,0x03,0xa0,0x04,0x18,0x00,0x1d,0x00,0x26,0x00,0x57,0x40,0x1e,0x14,0x12,0x20,0x0f,0x05,0x00,0x1c,0x0a,0x03,0x16,0x96,0x25,0x20,0x96, +0x1c,0x16,0x0d,0x0f,0x95,0x0a,0x10,0x1e,0x14,0x23,0x12,0x00,0x05,0x19,0x07,0x02,0xb8,0x01,0x03,0x40,0x0c,0x03,0x07,0x0d,0x0d,0x19,0x84,0x23,0x23,0x28,0x12,0x83,0x07,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x10,0xd4,0xe1,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xd6,0xed,0x2f,0x11,0x12,0x39, +0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x25,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x01,0x68,0x1c,0x06,0x8c,0x0d,0x31,0x98,0x01,0x22,0xf2,0x87,0x67,0x72,0x82,0x9d,0xc9,0x46, +0x8a,0xbc,0x76,0x96,0xbc,0x9a,0x7c,0x24,0x4c,0x60,0x55,0x63,0x7e,0x88,0x18,0x50,0x58,0x86,0x70,0x90,0xf2,0xfd,0x01,0x33,0x32,0xa8,0x50,0xe1,0xb7,0x9c,0x64,0xb4,0x79,0x5c,0x66,0x87,0xb4,0x30,0x37,0x2e,0x56,0x00,0x00,0x02,0x00,0x60,0xfe,0x1e,0x05,0x21,0x05,0xec,0x00,0x19,0x00,0x26,0x00,0x38,0x40,0x1e,0x19,0x17,0x95,0x02, +0x1c,0x12,0x06,0x0f,0x24,0x95,0x09,0x16,0x1e,0x95,0x0f,0x10,0x14,0x00,0x19,0x19,0x15,0x84,0x1a,0x12,0x06,0x06,0x28,0x21,0x83,0x0c,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xf1,0xc2,0x2f,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x10, +0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x21,0x41,0x42,0x92,0xa0,0x04,0x72,0xee,0xc2,0xe6,0x01,0x04,0xd6,0xcc,0x62,0x04,0xa4,0xa0,0x3c,0x35,0xfe,0x4b,0xa2,0x80,0x99,0xa9,0xa4,0x89,0x8a,0xad,0xfe,0x3a,0x1c,0xaf,0x9f,0x01,0x48,0xcc, +0x01,0x16,0xe8,0x01,0x00,0x01,0x32,0xa8,0x02,0x7c,0xf9,0x86,0xc8,0x1a,0x03,0x13,0x87,0x7f,0xb1,0xe0,0xc2,0xac,0xce,0xcb,0x00,0x02,0x00,0x60,0xff,0xe8,0x05,0x21,0x06,0x02,0x00,0x19,0x00,0x26,0x00,0x38,0x40,0x1e,0x13,0x07,0x10,0x24,0x95,0x0a,0x16,0x05,0x15,0x1e,0x95,0x10,0x10,0x00,0x02,0x95,0x17,0x01,0x00,0x00,0x05,0x84, +0x1a,0x13,0x06,0x06,0x28,0x21,0x83,0x0d,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xf1,0xc2,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x00,0x33,0x32,0x17,0x33,0x11,0x34,0x36,0x33,0x32,0x17,0x01,0x35,0x34,0x26,0x23,0x22, +0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x21,0x37,0x36,0xa4,0xa4,0x04,0x72,0xee,0xc2,0xe6,0x01,0x04,0xd6,0xcc,0x62,0x04,0xb4,0x8a,0x48,0x2f,0xfe,0x4b,0xa2,0x80,0x99,0xa9,0xa4,0x89,0x8a,0xad,0x05,0x5c,0x1b,0xcf,0xfb,0x58,0xb4,0xcc,0x01,0x16,0xe8,0x01,0x00,0x01,0x32,0xa8,0x01,0x42,0x99,0xb7,0x12,0xfb,0xe7,0x87,0x7f,0xb1, +0xe0,0xc2,0xac,0xce,0xcb,0x00,0x00,0x02,0x00,0x52,0xff,0xe8,0x03,0xcf,0x04,0x18,0x00,0x12,0x00,0x18,0x00,0x4b,0xb9,0x00,0x01,0xff,0xc0,0x40,0x1f,0x0b,0x0e,0x48,0x01,0x01,0x03,0x07,0x95,0x40,0x18,0x0b,0x11,0x18,0x95,0x08,0x30,0x03,0x95,0x11,0x16,0x15,0x95,0x0b,0x10,0x0e,0x83,0x13,0x06,0x06,0x1a,0x01,0xb8,0xff,0xc0,0xb6, +0x0e,0x12,0x48,0x01,0x18,0x83,0x07,0x2f,0xe1,0xc6,0x2b,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x39,0x2f,0x2b,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x37,0x21,0x35,0x34,0x12,0x33,0x32,0x12,0x15,0x14,0x00,0x23,0x22,0x01,0x02,0x23,0x22,0x06,0x07,0x9a,0x9a,0xb4,0x97,0xa7,0x03, +0xfd,0x29,0xeb,0xcd,0xcd,0xf8,0xfe,0xfb,0xd8,0xc2,0x01,0xf3,0x28,0xfb,0x7a,0x8a,0x02,0x42,0xa2,0x72,0xbd,0xa8,0x56,0xe0,0x01,0x0b,0xfe,0xe3,0xfb,0xf7,0xfe,0xdf,0x02,0x7a,0x01,0x2c,0xa1,0x8b,0x00,0x02,0x00,0x50,0xff,0xe8,0x05,0x16,0x04,0x18,0x00,0x1d,0x00,0x26,0x00,0x77,0x40,0x14,0x05,0x05,0x06,0x1e,0x1e,0x26,0x1f,0x04, +0x1f,0x17,0x17,0x16,0x0e,0x0e,0x0f,0x0d,0x18,0x0d,0x1d,0x02,0xb8,0x01,0x04,0x40,0x2c,0x1b,0x1e,0x05,0x1f,0x04,0x18,0x04,0x0d,0x18,0x1f,0x04,0x15,0x22,0x95,0x0a,0x16,0x12,0x40,0x09,0x0e,0x48,0x12,0x10,0x95,0x15,0x10,0x1e,0x0e,0x25,0x17,0x05,0x07,0x12,0x00,0x00,0x07,0x83,0x25,0x25,0x28,0x12,0x1f,0x83,0x0d,0x2f,0xe1,0xc6, +0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x39,0x12,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x2b,0x3f,0xed,0x12,0x17,0x39,0x2f,0x11,0x12,0x39,0x39,0xd6,0xed,0xc6,0x31,0x30,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x01,0x06,0x23,0x22,0x27,0x07,0x16,0x15,0x14,0x00,0x23,0x22,0x26,0x27,0x01,0x26,0x23,0x22,0x07, +0x35,0x36,0x33,0x32,0x17,0x37,0x17,0x16,0x33,0x32,0x37,0x05,0x01,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x05,0x16,0x38,0x34,0x88,0x3c,0x3e,0x23,0xfe,0xf5,0xcc,0xbe,0xd9,0x0d,0x02,0x85,0x5b,0xa9,0xa4,0x99,0x9e,0xbe,0xf0,0x86,0xc3,0x21,0x22,0x4c,0x30,0x2e,0xfd,0xfc,0xfd,0xe8,0x0a,0x8b,0x6b,0x8f,0x9c,0x02,0x98,0x1f,0x8d,0x22, +0x61,0x7f,0xf4,0xfe,0xd8,0xee,0xdc,0x01,0x60,0x7c,0x72,0x9a,0x62,0xb8,0x68,0x68,0x6a,0x22,0x84,0xfe,0xda,0x6c,0x90,0xd4,0xb8,0x56,0x00,0x01,0x00,0x60,0xff,0xe8,0x02,0xf4,0x04,0x18,0x00,0x22,0x00,0x45,0x40,0x25,0x07,0x1a,0x95,0x40,0x19,0x0d,0x02,0x19,0x95,0x0c,0x30,0x22,0x20,0x95,0x02,0x16,0x10,0x12,0x95,0x0d,0x10,0x07, +0x05,0x1a,0x1a,0x1d,0x10,0x00,0x00,0x24,0x05,0x15,0x83,0x0a,0x1d,0x83,0x05,0x2f,0xe1,0xd4,0xe1,0x11,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x25,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x35,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23, +0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x20,0x15,0x14,0x16,0x33,0x32,0x37,0x02,0xf4,0x72,0x98,0xba,0xd0,0xde,0xbb,0xc9,0xa4,0x82,0x67,0x6d,0x7c,0x5a,0x6d,0x8c,0x78,0x50,0x52,0xfe,0xdd,0x80,0x72,0x86,0x74,0x1a,0x32,0xa1,0x87,0xcf,0x37,0x04,0x40,0xa8,0x7d,0x99,0x2e,0x9a,0x3e,0x51,0x43,0x4c,0x58,0x8e,0xac,0x4e,0x5c, +0x3e,0x00,0x00,0x01,0x00,0x5a,0xff,0xe8,0x02,0xee,0x04,0x18,0x00,0x21,0x00,0x4d,0x40,0x2a,0x1b,0x09,0x95,0x40,0x0a,0x15,0x20,0x0a,0x95,0x0c,0x30,0x70,0x01,0x01,0x01,0x03,0x95,0x20,0x16,0x12,0x10,0x95,0x15,0x10,0x1b,0x1d,0x09,0x0e,0x83,0x18,0x18,0x1d,0x09,0x09,0x00,0x1d,0x83,0x06,0x06,0x23,0x12,0x00,0x2f,0xc4,0x12,0x39, +0x2f,0xe1,0x12,0x39,0x2f,0x10,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x5a, +0x72,0x8e,0x6f,0x7d,0xfe,0xdf,0x54,0x50,0x79,0x8b,0xc9,0x76,0x72,0x73,0x81,0xa2,0xc1,0xb9,0xdc,0xdb,0xbb,0x8c,0x1a,0x9a,0x42,0x5f,0x4b,0xac,0x8e,0x59,0x4b,0x94,0x3c,0x98,0x2e,0x97,0x7b,0xa5,0x45,0x04,0x33,0xcb,0x88,0xaa,0x00,0x01,0x00,0x5a,0xff,0xe8,0x04,0x35,0x04,0x18,0x00,0x2c,0x00,0x72,0x40,0x3d,0x04,0x05,0x27,0x08, +0x2c,0x02,0x96,0x2a,0x26,0x19,0x27,0x27,0x24,0x08,0x08,0x18,0x95,0x40,0x19,0x24,0x0d,0x19,0x95,0x0c,0x30,0x70,0x10,0x01,0x10,0x12,0x95,0x0d,0x16,0x21,0x1f,0x95,0x24,0x10,0x27,0x04,0x26,0x00,0x00,0x0a,0x08,0x0a,0x18,0x18,0x15,0x0f,0x1d,0x84,0x26,0x26,0x0a,0x83,0x15,0x15,0x2e,0x21,0x0f,0x2f,0xc4,0x12,0x39,0x2f,0xf1,0xc0, +0x2f,0xe1,0x11,0x12,0x39,0x2f,0x12,0x39,0x10,0xc2,0x2f,0x12,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x11,0x12,0x39,0x2f,0x12,0x39,0xd6,0xed,0xc6,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x27,0x07,0x06,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32, +0x36,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x17,0x37,0x17,0x16,0x33,0x32,0x37,0x04,0x35,0x39,0x2f,0x7a,0x3d,0x54,0x54,0x5c,0xdc,0xdb,0xbb,0x8c,0x72,0x72,0x8e,0x6f,0x7d,0xfe,0xdf,0x54,0x52,0x73,0x8f,0xc9,0x76,0x72,0x73,0x81,0x01,0x1d,0x3d,0x86,0x20,0x27,0x4e,0x2a,0x2e,0x02, +0x98,0x1f,0x79,0x56,0x56,0x2a,0x04,0x34,0xca,0x88,0xaa,0x32,0x9a,0x42,0x5f,0x4b,0xac,0x8e,0x5d,0x49,0x92,0x3c,0x98,0x2e,0xdc,0x8c,0x5e,0x74,0x22,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x0c,0x04,0x18,0x00,0x10,0x00,0x23,0x00,0x44,0x40,0x25,0x01,0x11,0x95,0x40,0x12,0x0c,0x06,0x12,0x95,0x0c,0x30,0x1e,0x95,0x06,0x16,0x18, +0x95,0x0c,0x10,0x01,0x03,0x11,0x11,0x21,0x1b,0x15,0x84,0x0f,0x0f,0x03,0x83,0x21,0x21,0x25,0x1b,0x83,0x09,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32, +0x16,0x15,0x14,0x05,0x35,0x33,0x32,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x3a,0xd2,0xe8,0xc2,0xee,0xfe,0xec,0x01,0x26,0xee,0xa8,0xd2,0xfe,0x24,0x44,0xf4,0x7a,0x62,0xa4,0xc2,0xc2,0xa0,0x74,0x86,0xfe,0xf6,0x02,0x1c,0x04,0x30,0xca,0x87,0xaf,0x01,0x1a,0xf0,0xfc,0x01,0x2a,0x9b,0x7b, +0xa2,0x98,0x8e,0xa0,0x43,0x55,0xd5,0xbf,0xb6,0xd2,0x60,0x4a,0xac,0x00,0x00,0x01,0xff,0x81,0xfe,0x1e,0x02,0x1c,0x04,0x00,0x00,0x14,0x00,0x4b,0x40,0x29,0x13,0x01,0x0d,0x95,0x40,0x10,0x11,0x05,0x10,0x95,0x08,0x30,0x08,0x0a,0x95,0x40,0x05,0x1c,0x11,0x0f,0x08,0x0c,0x13,0x10,0x0c,0x00,0x0e,0x02,0x0e,0x0c,0x42,0x0e,0x02,0x84, +0x0c,0x15,0x16,0x0c,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x18,0xc6,0x2b,0x01,0x10,0xe2,0x12,0x39,0x39,0x18,0x10,0xc6,0x00,0x3f,0x3f,0x1a,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x02,0x1c,0xae,0xc3, +0xad,0x48,0x35,0x3d,0x42,0xcb,0xaf,0xaf,0xa3,0xae,0x01,0xdb,0xfe,0x04,0xd6,0xeb,0x1a,0x99,0x27,0x01,0x31,0x02,0x00,0x8b,0x01,0x9a,0xfe,0x66,0x00,0x02,0x00,0x60,0xfe,0x1e,0x05,0x21,0x06,0x02,0x00,0x21,0x00,0x2e,0x00,0x4a,0xb9,0x00,0x0a,0xff,0xc0,0x40,0x26,0x0b,0x0f,0x48,0x0a,0x0a,0x0c,0x95,0x07,0x1c,0x1b,0x0f,0x18,0x2c, +0x95,0x12,0x16,0x26,0x95,0x18,0x10,0x00,0x02,0x95,0x1f,0x01,0x00,0x00,0x05,0x84,0x22,0x1b,0x0f,0x0f,0x30,0x0a,0x29,0x83,0x15,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0x33,0x33,0xf1,0xc2,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0xed,0x32,0x2f,0x2b,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x10,0x21,0x22,0x27, +0x35,0x16,0x33,0x20,0x11,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x12,0x33,0x32,0x17,0x33,0x11,0x34,0x36,0x33,0x32,0x17,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x21,0x37,0x36,0xa4,0xfd,0xe4,0xbe,0x8e,0xad,0x9d,0x01,0x7a,0x04,0x75,0xeb,0xbf,0xe9,0xfb,0xda,0xcf,0x64,0x04,0xb4,0x8a,0x48,0x2f, +0xfe,0x4b,0xa5,0x7b,0x98,0xac,0xa5,0x88,0x8a,0xad,0x05,0x5c,0x1b,0xcf,0xfb,0xaa,0xfd,0xcc,0x48,0xa4,0x60,0x01,0x92,0x70,0xc4,0x01,0x11,0xe6,0x01,0x05,0x01,0x34,0xa6,0x01,0x40,0x99,0xb7,0x12,0xfb,0xdf,0x97,0x7a,0xae,0xdd,0xc7,0xab,0xcd,0xc4,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x04,0x18,0x02,0x06,0x00,0x4a,0x00,0x00, +0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0xcd,0x04,0x18,0x00,0x19,0x00,0x41,0x40,0x23,0x17,0x95,0x40,0x18,0x08,0x02,0x18,0x95,0x08,0x30,0x15,0x00,0x13,0x95,0x02,0x16,0x0b,0x0d,0x95,0x08,0x10,0x17,0x17,0x15,0x10,0x0b,0x0b,0x00,0x84,0x15,0x15,0x1b,0x10,0x83,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0x00, +0x3f,0xfd,0xc6,0x3f,0xed,0x32,0x32,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x25,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x11,0x23,0x35,0x21,0x03,0xcd,0xaf,0xb8,0xec,0xfe,0xe6,0x01,0x38,0xf6,0x9a,0x82,0x82,0xa3,0xa9,0xd4,0xc5,0xa7,0x6e,0x4b,0xdf,0x01,0x7f, +0x3e,0x56,0x01,0x18,0xf0,0xf1,0x01,0x37,0x30,0x9c,0x42,0xe0,0xb4,0xb8,0xd0,0x26,0x01,0x04,0x8b,0x00,0x00,0x02,0x00,0x0e,0xfe,0x52,0x03,0xc6,0x04,0x00,0x00,0x11,0x00,0x19,0x00,0x16,0x40,0x0a,0x16,0x95,0x07,0x00,0x0f,0x0e,0x0f,0x00,0x1b,0x0e,0x2f,0x10,0xc6,0x00,0x3f,0x3f,0x2f,0xed,0x31,0x30,0x01,0x01,0x17,0x16,0x15,0x14, +0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x01,0x33,0x09,0x02,0x06,0x15,0x14,0x33,0x32,0x35,0x34,0x03,0xc6,0xfe,0x78,0x22,0x5e,0x7c,0x63,0x5f,0x78,0x62,0x22,0xfe,0x82,0xb2,0x01,0x26,0x01,0x2e,0xfe,0xd0,0x40,0x40,0x41,0x04,0x00,0xfc,0xa0,0x44,0xbc,0x68,0x63,0x83,0x83,0x63,0x5a,0xca,0x44,0x03,0x60,0xfd,0x42,0x02,0xbe,0xfc, +0x10,0x8b,0x49,0x63,0x63,0x40,0x00,0x02,0x00,0x0a,0xff,0xe8,0x03,0x9e,0x04,0x18,0x00,0x1b,0x00,0x23,0x00,0x2a,0x40,0x17,0x20,0x95,0x09,0x16,0x00,0x12,0x19,0x02,0x10,0x95,0x15,0x10,0x0c,0x1e,0x22,0x06,0x0e,0x04,0x06,0x12,0x00,0x25,0x12,0x2f,0x10,0xc6,0x11,0x17,0x39,0x00,0x3f,0xfd,0x39,0x39,0xd6,0xc4,0x3f,0xed,0x31,0x30, +0x01,0x26,0x23,0x22,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x17,0x01,0x06,0x15,0x14,0x33,0x32,0x35,0x34,0x03,0x9e,0x46,0x33,0x75,0x7d,0x95,0x85,0x74,0x6f,0x7e,0x92,0x82,0x73,0x3f,0x36,0x40,0x4a,0x9e,0xa3,0xa5,0x9e,0x48,0x3e,0xfe,0x37,0x58,0x58, +0x58,0x03,0x60,0x2e,0xbf,0xef,0xca,0x88,0xa6,0xa4,0x86,0xd2,0xeb,0xbf,0x2c,0x96,0x20,0xce,0xce,0x20,0xfe,0x60,0xa3,0x97,0xac,0xac,0x92,0x00,0x00,0x01,0x00,0x90,0xfe,0x29,0x03,0xe2,0x04,0x00,0x00,0x11,0x00,0x27,0x40,0x14,0x00,0x1b,0x11,0x02,0x08,0x0c,0x95,0x05,0x16,0x08,0x0f,0x11,0x84,0x02,0x10,0x10,0x13,0x09,0x84,0x08, +0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xe2,0xa4,0x04,0x78,0xda,0xfe,0xa8,0xa3,0xeb,0x7a,0xa6,0xa4,0xfe,0x29,0x02,0x81,0xc2,0x01,0xa1,0x02,0x77,0xfd,0xb2,0xfe,0xc0,0xbb,0x8f,0x02, +0x44,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x02,0x00,0x1b,0x00,0x32,0x40,0x1a,0x16,0x00,0x19,0x09,0x15,0x04,0x95,0x19,0x10,0x10,0x12,0x95,0x0d,0x01,0x10,0x10,0x16,0x00,0x84,0x01,0x01,0x1d,0x16,0x08,0x84,0x09,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0x12,0x39,0x39, +0x31,0x30,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x12,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xa4,0xee,0x78,0xa4,0xa4,0xfc,0xdb,0x8a,0x7e,0x84,0x88,0x87,0xa8,0x04,0x76,0xda,0x01,0x5a,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfd,0xbc,0x03,0xdd,0x01,0x14,0x01,0x11, +0x37,0x98,0x44,0xa5,0xf3,0x89,0xc2,0xfe,0x5f,0x00,0x00,0x01,0x00,0xa6,0xfe,0x1e,0x03,0xf8,0x06,0x02,0x00,0x24,0x00,0x40,0x40,0x22,0x06,0x08,0x95,0x03,0x1c,0x1f,0x22,0x12,0x15,0x0d,0x95,0x22,0x10,0x19,0x1b,0x95,0x16,0x01,0x19,0x19,0x1f,0x00,0x06,0x06,0x11,0x00,0x84,0x0a,0x0a,0x26,0x1f,0x11,0x84,0x12,0x2f,0xe1,0x32,0x12, +0x39,0x2f,0xe1,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0x12,0x39,0x3f,0xfd,0xc6,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x12,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xbf, +0xad,0x4c,0x36,0x3e,0x44,0xc8,0xee,0x78,0xa4,0xa4,0xfc,0xdb,0x8a,0x7e,0x84,0x88,0x87,0xa8,0x04,0x76,0xda,0x01,0x5a,0x04,0xe6,0xf8,0x1a,0x99,0x27,0x01,0x3e,0x02,0x66,0x01,0x40,0xb9,0x91,0xfd,0xbc,0x03,0xdd,0x01,0x14,0x01,0x11,0x37,0x98,0x44,0xa5,0xf3,0x89,0xc2,0xfe,0x5f,0x00,0x02,0x00,0x0a,0x00,0x00,0x02,0x0e,0x05,0xd9, +0x00,0x0b,0x00,0x17,0x00,0x52,0x40,0x2f,0x16,0x0d,0x10,0x95,0x40,0x13,0x14,0x0f,0x13,0x95,0x0c,0x30,0x0f,0x15,0x06,0x63,0x40,0x00,0x14,0x0f,0x09,0x62,0x03,0x0f,0x0e,0x03,0x62,0xff,0x30,0x0c,0x0e,0x0e,0x0f,0x11,0x42,0x11,0x16,0x13,0x0e,0x84,0x0f,0x18,0x19,0x0f,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x39,0x39,0x18,0xc6,0x2b, +0x01,0x10,0xe2,0x2b,0x01,0x10,0xe1,0x00,0x18,0x3f,0xd6,0x1a,0xed,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x01,0x10,0x2c,0x40,0x40,0x2c,0x2e,0x3d,0x3d,0xd0,0xb0,0xa4,0xb0,0xb0,0xa4,0xb0, +0x05,0x04,0x3c,0x2e,0x2e,0x3d,0x3d,0x2e,0x2c,0x3e,0xfc,0xd7,0xfe,0x25,0x01,0xdb,0x8b,0x01,0x9a,0xfe,0x66,0x00,0x00,0x01,0x00,0x94,0xff,0xea,0x02,0x2f,0x04,0x00,0x00,0x0b,0x00,0x19,0x40,0x0c,0x0b,0x09,0x95,0x02,0x16,0x05,0x0f,0x0b,0x0b,0x06,0x84,0x05,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0x3f,0xfd,0xc6,0x31,0x30,0x25,0x06,0x23, +0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x02,0x2f,0x39,0x5c,0xfe,0xfa,0xa4,0x90,0x3c,0x2b,0x08,0x1e,0x01,0x28,0x02,0xee,0xfd,0x2f,0xbb,0x20,0x00,0x00,0x01,0x00,0x4c,0x00,0x00,0x02,0x44,0x04,0x00,0x00,0x0b,0x00,0x33,0x40,0x1b,0x0a,0x02,0x95,0x01,0x15,0x09,0x05,0x95,0x06,0x0f,0x08,0x05,0x02,0x0b,0x0b,0x0a,0x02,0x40, +0x0a,0x84,0x03,0x0c,0x0d,0x03,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x1a,0x18,0xcd,0x10,0xc1,0x2f,0x12,0x39,0x39,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x31,0x30,0x21,0x21,0x35,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x33,0x02,0x44,0xfe,0x08,0xaa,0xaa,0x01,0xf8,0xaa,0xaa,0x8c,0x02,0xe8,0x8c,0x8c,0xfd,0x18,0x00,0x01,0xff,0xec, +0x00,0x00,0x02,0x52,0x05,0xec,0x00,0x17,0x00,0x5c,0x40,0x33,0x13,0x10,0x15,0x0e,0x07,0x04,0x09,0x15,0x95,0x02,0x0c,0x91,0x0b,0x09,0x00,0x91,0x17,0x09,0x95,0x40,0x0e,0x11,0x06,0x0e,0x95,0x08,0x30,0x06,0x15,0x11,0x00,0x00,0x00,0x01,0x0e,0x03,0x00,0x00,0x05,0x0b,0x12,0x11,0x05,0x84,0x06,0x18,0x19,0x06,0x84,0x08,0x30,0x2b, +0x01,0x10,0xe1,0x39,0x39,0x18,0xc6,0x10,0xc2,0x2f,0x5f,0x5e,0x5d,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0xd4,0xed,0x10,0xd6,0xed,0xd4,0xed,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x27,0x11,0x23,0x11,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x11,0x33,0x11,0x16,0x33,0x32,0x37,0x02,0x52, +0x44,0x58,0x23,0x29,0xa4,0x2e,0x17,0x4d,0x48,0x46,0x55,0x1d,0x22,0xa4,0x2e,0x24,0x4e,0x48,0x02,0xd9,0x39,0x0a,0xfd,0x56,0x02,0xd9,0x0d,0x46,0x95,0x3b,0x08,0x02,0x84,0xfd,0x4c,0x0d,0x45,0x00,0x00,0x02,0xff,0xec,0x00,0x00,0x02,0xee,0x05,0xec,0x00,0x11,0x00,0x19,0x00,0x4a,0x40,0x29,0x0d,0x12,0x15,0x96,0x40,0x0b,0x12,0x80, +0x12,0x04,0x01,0x95,0x40,0x10,0x0e,0x03,0x10,0x95,0x08,0x30,0x03,0x15,0x0e,0x00,0x00,0x00,0x0d,0x10,0x12,0x03,0x02,0x84,0x0f,0x03,0x01,0x03,0x03,0x1b,0x17,0x84,0x08,0x2f,0xe1,0x12,0x39,0x2f,0x5d,0xf1,0x17,0x39,0xc2,0x2f,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x1a,0x10,0xdc,0x1a,0xed,0x12,0x39,0x31,0x30, +0x01,0x21,0x11,0x23,0x11,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x11,0x33,0x11,0x21,0x21,0x26,0x26,0x23,0x22,0x15,0x14,0x33,0x02,0xee,0xff,0x00,0xa4,0x42,0x88,0x94,0x75,0x59,0x56,0x3a,0xa4,0x01,0x00,0xfe,0x5c,0x04,0x49,0x32,0x4c,0x8b,0x02,0x87,0xfd,0x79,0x02,0x87,0x74,0x67,0x55,0x78,0x3b,0x01,0xf8,0xfd,0x26,0x44, +0x5c,0x4a,0x56,0x00,0x00,0x01,0x00,0xa6,0xfe,0x1e,0x02,0x5a,0x05,0xec,0x00,0x0c,0x00,0x24,0x40,0x13,0x0c,0x0a,0x95,0x40,0x02,0x1c,0x06,0x00,0x0c,0x0c,0x08,0x84,0x05,0x0d,0x0e,0x05,0x84,0x08,0x30,0x2b,0x01,0x10,0xf1,0xc2,0x18,0x2f,0x00,0x3f,0x3f,0x1a,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14, +0x33,0x32,0x37,0x02,0x5a,0x40,0x43,0x93,0x9e,0xa4,0xa0,0x3c,0x34,0xfe,0x3a,0x1c,0xaf,0x9f,0x06,0x80,0xf9,0x86,0xc8,0x1a,0x00,0x01,0x00,0xa6,0xfe,0x21,0x04,0xb2,0x05,0xec,0x00,0x1c,0x00,0x57,0x40,0x30,0x0b,0x0a,0x96,0x40,0x15,0x12,0x1b,0x15,0x96,0x08,0x30,0x10,0x01,0x01,0x01,0x03,0x95,0x1b,0x1c,0x0f,0x15,0x14,0x0c,0x95, +0x12,0x0f,0x10,0x00,0x15,0x0b,0x0b,0x06,0x01,0x01,0x0e,0x0f,0x0c,0x14,0x14,0x18,0x83,0x06,0x06,0x1e,0x12,0x0e,0x84,0x0f,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x11,0x39,0x2f,0x33,0x00,0x3f,0x3f,0xed,0x39,0x3f,0x3f,0xfd,0xc6,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x35,0x16, +0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x01,0x27,0xa5,0xb1,0xae,0xdf,0xdf,0xcd,0x52,0x01,0x80,0xfd,0xbe,0xa4,0xa4,0x03,0x2d,0xfe,0x77,0xd8,0xec,0xfe,0xbc,0xf7,0xb6,0xfe,0x72,0xa2,0x68,0xb6,0x90,0x96,0xa5,0x33,0x02,0x14,0xfc,0x8c, +0x05,0xec,0xfe,0x14,0x33,0xfd,0xe1,0x1a,0xeb,0xb3,0xcc,0xfe,0xf7,0x00,0x00,0x01,0x00,0xa6,0xff,0xe8,0x06,0x54,0x04,0x00,0x00,0x1f,0x00,0x45,0x40,0x25,0x02,0x08,0x0d,0x1a,0x05,0x12,0x95,0x40,0x0a,0x10,0x00,0x1e,0x16,0x0d,0x0f,0x1f,0x84,0x01,0x1e,0x0e,0x16,0x0d,0x16,0x42,0x0e,0x84,0x0d,0x08,0x17,0x84,0x16,0x20,0x21,0x16, +0x84,0x30,0x30,0x2b,0x01,0x10,0xe1,0x39,0x18,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0x32,0xe1,0x00,0x18,0x3f,0x33,0x33,0x2f,0x3f,0x1a,0xed,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11, +0x33,0x06,0x54,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0xfe,0xae,0xa4,0x69,0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0xa2,0xba,0x75,0x5f,0xd4,0x01,0xa1,0x02,0x77,0xfd,0xb4,0xaa,0x98,0xc0,0x86,0x02,0x48,0xfd,0xa0,0xfe,0xd2,0xb5,0x91,0x02,0x48,0x00,0x00,0x01,0x00,0xa6,0xfe,0x29,0x06,0x54,0x04,0x00,0x00,0x1f,0x00,0x46, +0x40,0x26,0x02,0x08,0x0d,0x1a,0x05,0x12,0x95,0x40,0x0a,0x10,0x00,0x1b,0x1e,0x16,0x0d,0x0f,0x1f,0x84,0x01,0x1e,0x0e,0x16,0x0d,0x16,0x42,0x0e,0x84,0x0d,0x08,0x17,0x84,0x16,0x20,0x21,0x16,0x84,0x30,0x30,0x2b,0x01,0x10,0xe1,0x39,0x18,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0x32,0xe1,0x00,0x18,0x3f,0x33,0x33,0x3f,0x3f,0x1a,0xed,0x39, +0x39,0x12,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x06,0x54,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0xfe,0xae,0xa4,0x69,0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0xfe,0x29,0x02, +0x79,0xba,0x75,0x5f,0xd4,0x01,0xa1,0x02,0x77,0xfd,0xb4,0xaa,0x98,0xc0,0x86,0x02,0x48,0xfd,0xa0,0xfe,0xd2,0xb5,0x91,0x02,0x48,0x00,0x00,0x01,0x00,0xa6,0xfe,0x1e,0x06,0x54,0x04,0x18,0x00,0x28,0x00,0x50,0x40,0x2d,0x26,0x28,0x95,0x23,0x1c,0x05,0x15,0x16,0x1b,0x04,0x0d,0x95,0x40,0x1d,0x18,0x10,0x13,0x0f,0x0a,0x12,0x26,0x26, +0x09,0x20,0x84,0x01,0x0e,0x0a,0x12,0x0a,0x42,0x14,0x11,0x84,0x12,0x1b,0x09,0x84,0x0a,0x29,0x2a,0x0a,0x84,0x30,0x30,0x2b,0x01,0x10,0xe1,0x39,0x18,0x2f,0xe1,0x32,0x2b,0x01,0x10,0xf2,0xe1,0x12,0x39,0x18,0x2f,0x00,0x2f,0x33,0x3f,0x3f,0x33,0x1a,0xed,0x17,0x32,0x3f,0xfd,0xc6,0x31,0x30,0x00,0x11,0x11,0x34,0x26,0x23,0x22,0x06, +0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x20,0x11,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x05,0xb0,0x69,0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0x01,0x52,0xbf,0xad,0x4c,0x36,0x3e,0x44,0xfe,0xaa,0x01, +0x3e,0x02,0x64,0xaa,0x98,0xc0,0x86,0xfd,0xb8,0x02,0x60,0x01,0x2e,0xb5,0x91,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x75,0x5f,0xd4,0xfe,0x5f,0xfd,0x85,0xe6,0xf8,0x1a,0x99,0x27,0x00,0x00,0x01,0xff,0x96,0xfe,0x1e,0x03,0xf8,0x04,0x18,0x00,0x1a,0x00,0x35,0x40,0x1c,0x15,0x00,0x18,0x0e,0x10,0x95,0x0b,0x1c,0x00,0x15,0x13,0x0f,0x04,0x95, +0x18,0x10,0x00,0x84,0x01,0x01,0x1c,0x12,0x15,0x08,0x0e,0x08,0x84,0x12,0x2f,0xe1,0xc6,0x11,0x33,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x31,0x30,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0x15,0x33,0x36,0x33,0x20,0x11, +0x03,0xf8,0xa4,0xec,0x7b,0xa3,0xb3,0x8b,0x48,0x2e,0x36,0x36,0xa4,0xa4,0x04,0x74,0xde,0x01,0x58,0x02,0x48,0x01,0x46,0xb9,0x8d,0xfd,0x24,0x99,0xb5,0x13,0x93,0x1a,0xcd,0x04,0x89,0xaa,0xc2,0xfe,0x5a,0x00,0x00,0x01,0x00,0xa6,0xfe,0x1e,0x05,0x08,0x04,0x18,0x00,0x1a,0x00,0x31,0x40,0x1a,0x1a,0x18,0x95,0x02,0x1c,0x10,0x13,0x0d, +0x15,0x0e,0x0f,0x08,0x95,0x13,0x10,0x1a,0x1a,0x16,0x84,0x05,0x05,0x1c,0x10,0x0c,0x84,0x0d,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x20,0x11,0x11,0x14,0x33, +0x32,0x37,0x05,0x08,0x40,0x43,0x93,0x9e,0xec,0x7b,0xa3,0xa4,0xa4,0x04,0x74,0xde,0x01,0x58,0xa0,0x3c,0x34,0xfe,0x3a,0x1c,0xaf,0x9f,0x02,0xdc,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xfe,0x5a,0xfd,0x00,0xc8,0x1a,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x0a,0x04,0x00,0x00,0x13,0x00,0x26,0x40,0x14,0x01,0x04,0x0f,0x13, +0x04,0x0b,0x09,0x15,0x0b,0x0f,0x01,0x13,0x84,0x12,0x12,0x15,0x0b,0x08,0x84,0x09,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x33,0x00,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x26,0x35,0x11,0x33,0x04,0x0a,0x9c,0xfe,0x06,0x24,0x0c,0x04,0x04,0x9e,0xa4,0x01, +0xf2,0x20,0x10,0x04,0x06,0xa0,0x02,0xd1,0x33,0x18,0x35,0x4d,0xfd,0x66,0x04,0x00,0xfd,0x40,0x2d,0x21,0x33,0x3f,0x02,0x9c,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x33,0x40,0x1c,0x13,0x95,0x40,0x11,0x06,0x00,0x11,0x95,0x1b,0x30,0x16,0x95,0x00,0x16,0x0e,0x95,0x06,0x10,0x09,0x83, +0x0c,0x12,0x12,0x19,0x11,0x13,0x83,0x03,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x13,0x02,0x21,0x22,0x06,0x07,0x05,0x21,0x16,0x16,0x33,0x20,0x02,0x52,0xe3,0xfe,0xf1,0x01,0x1a,0xf0,0xe5,0x01,0x01, +0xfe,0xeb,0x69,0x1e,0xfe,0xd8,0x8d,0xb1,0x12,0x02,0x98,0xfd,0x66,0x0a,0xb4,0x94,0x01,0x34,0x18,0x01,0x1f,0xed,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x02,0x68,0x01,0x3e,0xa6,0x98,0x8c,0x9e,0xb4,0x00,0x00,0x02,0x00,0x60,0xff,0xea,0x05,0x60,0x04,0x16,0x00,0x13,0x00,0x1e,0x00,0x47,0x40,0x28,0x10,0x95,0x40,0x0f, +0x0b,0x00,0x0f,0x95,0x1b,0x30,0x1d,0x96,0x02,0x16,0x13,0x95,0x00,0x15,0x0c,0x95,0x0b,0x0f,0x17,0x96,0x08,0x10,0x0e,0x12,0x84,0x14,0x14,0x05,0x0c,0x10,0x00,0x00,0x20,0x1a,0x83,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0xe1,0x32,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31, +0x30,0x21,0x21,0x07,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x21,0x11,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x05,0x60,0xfd,0xd3,0xd7,0xeb,0xfe,0xef,0x01,0x1a,0xee,0x31,0x9a,0x02,0x15,0xfe,0x76,0x01,0x6f,0xfe,0x91,0x01,0xa2,0xfd,0xbc,0x60,0x52,0x9f,0xc1,0xba,0xa2,0x46, +0x16,0x01,0x21,0xeb,0xf3,0x01,0x2d,0x16,0x8c,0xfe,0xd6,0x8c,0xfe,0xce,0x02,0xed,0x19,0xe1,0xb3,0xb4,0xdc,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x05,0x64,0x04,0x18,0x00,0x11,0x00,0x22,0x00,0x43,0x40,0x25,0x01,0x03,0x12,0x12,0x1b,0x16,0x0f,0x20,0x95,0x03,0x16,0x1b,0x95,0x40,0x09,0x10,0x18,0x84,0x0c,0x0e,0x13,0x12,0x06,0x42, +0x00,0x13,0x84,0x12,0x23,0x24,0x12,0x84,0x08,0x30,0x1e,0x84,0x06,0x2f,0xe1,0x2b,0x01,0x10,0xe1,0x39,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x1a,0xed,0x3f,0xed,0x39,0x39,0x11,0x39,0x2f,0x12,0x39,0x31,0x30,0x25,0x23,0x06,0x23,0x22,0x26,0x35,0x10,0x00,0x21,0x20,0x00,0x11,0x14,0x06,0x23,0x22,0x26,0x03,0x33,0x15,0x10,0x33, +0x32,0x11,0x34,0x26,0x23,0x22,0x00,0x15,0x10,0x33,0x32,0x11,0x02,0xdf,0x06,0x57,0xcc,0x9e,0xb8,0x01,0x65,0x01,0x2d,0x01,0x1c,0x01,0x56,0xc8,0xb0,0x6a,0x7b,0x75,0x9f,0xb9,0xd6,0xfa,0xe0,0xde,0xfe,0xfc,0xcf,0xbf,0xb2,0xca,0xeb,0xd5,0x01,0x17,0x01,0x59,0xfe,0xb6,0xfe,0xf0,0xe1,0xf5,0x5c,0x01,0xc2,0x5a,0xfe,0xc6,0x01,0x44, +0xdf,0xf9,0xfe,0xfe,0xd8,0xfe,0xbe,0x01,0x3a,0x00,0x00,0x03,0x00,0x60,0xfe,0x29,0x04,0xba,0x05,0xec,0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x48,0x40,0x2a,0x02,0x1b,0x13,0x00,0x19,0x95,0x03,0x16,0x12,0x0c,0x1a,0x95,0x40,0x09,0x10,0x0a,0x00,0x16,0x83,0x0f,0x0e,0x00,0x06,0x03,0x42,0x09,0x0c,0x13,0x19,0x04,0x00,0x84,0x03,0x20, +0x21,0x03,0x84,0x08,0x30,0x1d,0x83,0x06,0x2f,0xe1,0x2b,0x01,0x10,0xe1,0x17,0x39,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x3f,0x1a,0xed,0x39,0x39,0x3f,0xed,0x39,0x39,0x3f,0x31,0x30,0x05,0x11,0x23,0x11,0x26,0x02,0x35,0x34,0x00,0x37,0x11,0x33,0x11,0x16,0x12,0x15,0x14,0x00,0x03,0x11,0x36,0x36,0x35,0x34,0x26,0x01,0x11,0x06, +0x06,0x15,0x14,0x16,0x02,0xdf,0xa3,0xdd,0xff,0x01,0x04,0xd8,0xa3,0xdf,0xfc,0xfe,0xfe,0xd9,0x93,0xa0,0xa0,0xfe,0xca,0x91,0xa3,0xa3,0x18,0xfe,0x41,0x01,0xbf,0x11,0x01,0x22,0xdf,0xe7,0x01,0x20,0x17,0x01,0xd4,0xfe,0x2c,0x10,0xfe,0xe1,0xe5,0xe3,0xfe,0xdc,0x03,0x91,0xfc,0xe4,0x12,0xd0,0xac,0xab,0xd1,0xfc,0xf6,0x03,0x1c,0x12, +0xd2,0xac,0xa6,0xd3,0x00,0x01,0x00,0x0c,0xff,0xee,0x02,0x23,0x04,0x00,0x00,0x0f,0x00,0x20,0x40,0x10,0x08,0x0a,0x95,0x05,0x16,0x00,0x15,0x0e,0x0f,0x02,0x0f,0x84,0x0e,0x0e,0x11,0x08,0x2f,0x12,0x39,0x2f,0xe1,0x33,0x00,0x3f,0x3f,0x3f,0xfd,0xc6,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35, +0x11,0x33,0x02,0x23,0xa4,0x04,0x53,0xba,0x40,0x22,0x2c,0x51,0x69,0x8d,0xa4,0xc8,0xda,0x0e,0xaa,0x21,0xc8,0xa9,0x02,0x0a,0x00,0x01,0x00,0x0c,0xff,0xee,0x02,0x23,0x05,0xec,0x00,0x0f,0x00,0x20,0x40,0x10,0x08,0x0a,0x95,0x05,0x16,0x00,0x15,0x0e,0x00,0x02,0x0f,0x84,0x0e,0x0e,0x11,0x08,0x2f,0x12,0x39,0x2f,0xe1,0x33,0x00,0x3f, +0x3f,0x3f,0xfd,0xc6,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x02,0x23,0xa4,0x04,0x53,0xba,0x40,0x22,0x2c,0x51,0x69,0x8d,0xa4,0xc8,0xda,0x0e,0xaa,0x21,0xc8,0xa9,0x03,0xf6,0x00,0x01,0x00,0x0c,0xfe,0x1e,0x03,0x33,0x04,0x00,0x00,0x18,0x00,0x2f,0x40,0x18,0x18,0x16,0x95,0x02, +0x1c,0x07,0x09,0x12,0x0c,0x0e,0x95,0x09,0x16,0x12,0x0f,0x18,0x18,0x06,0x13,0x84,0x12,0x12,0x1a,0x0c,0x2f,0x12,0x39,0x2f,0xf1,0x33,0xc2,0x2f,0x00,0x3f,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x23,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x33, +0x32,0x37,0x03,0x33,0x40,0x43,0x92,0x9f,0x04,0x52,0xbb,0x40,0x22,0x2c,0x51,0x68,0x8e,0xa4,0x9f,0x3d,0x34,0xfe,0x3a,0x1c,0xaf,0x9f,0x01,0x58,0xd6,0x0e,0xaa,0x21,0xc7,0xaa,0x02,0x0a,0xfb,0x72,0xc8,0x1a,0x00,0x01,0x00,0xa6,0xfe,0x29,0x02,0xbc,0x04,0x12,0x00,0x0f,0x00,0x23,0x40,0x11,0x07,0x1b,0x08,0x0f,0x00,0x00,0x0a,0x02, +0x0d,0x10,0x00,0x00,0x11,0x0a,0x06,0x84,0x07,0x2f,0xe9,0x32,0x11,0x39,0x2f,0x00,0x3f,0xcd,0x32,0x32,0x2f,0x3f,0x3f,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x02,0xbc,0x2b,0x51,0x69,0x8d,0xa4,0xa4,0x04,0x4a,0xc2,0x40,0x22,0x03,0x5a,0x21,0xc6,0xab,0xfc,0x1f,0x05,0xd7,0xd3, +0xe5,0x0e,0x00,0x01,0x00,0xa6,0xfe,0x1e,0x02,0xbc,0x04,0x12,0x00,0x19,0x00,0x2c,0x40,0x16,0x14,0x1a,0x17,0x0a,0x08,0x95,0x0d,0x1c,0x11,0x0f,0x00,0x02,0x17,0x10,0x0a,0x00,0x00,0x1b,0x13,0x06,0x84,0x10,0x2f,0xe1,0x32,0x11,0x39,0x2f,0xc6,0x00,0x3f,0xdd,0xc6,0x3f,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x31,0x30,0x01,0x26,0x23,0x22, +0x06,0x15,0x11,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x02,0xbc,0x2b,0x51,0x69,0x8d,0xa0,0x3c,0x34,0x40,0x43,0x93,0x9e,0xa4,0x04,0x23,0x90,0x59,0x40,0x22,0x03,0x5a,0x21,0xc6,0xab,0xfd,0x68,0xc8,0x1a,0x8a,0x1c,0xaf,0x9f,0x04,0x94,0xd3,0x6c,0x79,0x0e,0x00,0x00,0x01, +0x00,0x90,0x00,0x00,0x02,0xa2,0x04,0x18,0x00,0x0c,0x00,0x1b,0x40,0x0d,0x06,0x15,0x00,0x02,0x95,0x0a,0x10,0x00,0x00,0x0e,0x05,0x84,0x06,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0x31,0x30,0x01,0x26,0x23,0x22,0x11,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x17,0x02,0xa2,0x46,0x54,0xd7,0xa1,0xce,0xaa,0x56,0x44,0x03,0x68, +0x26,0xfe,0xed,0xfd,0x85,0x02,0x7b,0xbd,0xe0,0x1e,0x00,0x01,0x00,0x0c,0xfe,0x29,0x02,0x1e,0x04,0x18,0x00,0x0c,0x00,0x1b,0x40,0x0d,0x00,0x1b,0x06,0x04,0x95,0x09,0x10,0x00,0x84,0x01,0x01,0x0e,0x06,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0x31,0x30,0x01,0x23,0x11,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15, +0x02,0x1e,0xa1,0xd7,0x4c,0x4e,0x50,0x54,0xb0,0xbe,0xfe,0x29,0x04,0x4e,0x01,0x17,0x28,0x92,0x20,0xd2,0xc5,0x00,0x00,0x02,0x00,0xa6,0x00,0x00,0x03,0x83,0x04,0x00,0x00,0x11,0x00,0x18,0x00,0x3e,0x40,0x20,0x0f,0x05,0x95,0x13,0x13,0x07,0x08,0x01,0x15,0x07,0x15,0x12,0x95,0x08,0x0f,0x03,0x10,0x10,0x0f,0x06,0x01,0x00,0x00,0x0c, +0x84,0x16,0x16,0x1a,0x13,0x06,0x84,0x07,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x32,0x2f,0x33,0x12,0x39,0x39,0x11,0x33,0x00,0x3f,0xed,0x3f,0x3f,0x11,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x21,0x23,0x03,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x17,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x03,0x83,0xb8, +0x75,0x3e,0x78,0x56,0xa4,0x01,0x52,0xa5,0xb7,0xea,0x53,0x39,0xfe,0x54,0x9a,0xcc,0xc4,0x01,0x14,0x92,0xfe,0x5a,0x04,0x00,0x98,0x84,0xda,0x31,0x04,0x21,0x7c,0x02,0x3c,0xfe,0xbd,0xa8,0x9b,0x00,0x00,0x02,0x00,0xa6,0x00,0x00,0x03,0x83,0x04,0x00,0x00,0x12,0x00,0x1a,0x00,0x43,0x40,0x24,0x04,0x13,0x95,0x40,0x0d,0x0b,0x0a,0x0d, +0x95,0x08,0x30,0x14,0x95,0x0a,0x15,0x00,0x0f,0x0b,0x0f,0x10,0x02,0x03,0x02,0x0d,0x12,0x00,0x00,0x06,0x84,0x17,0x17,0x1c,0x0d,0x14,0x84,0x0a,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x32,0x12,0x39,0x39,0x11,0x33,0x00,0x3f,0x3f,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x03,0x06,0x07,0x15,0x16,0x15, +0x14,0x06,0x23,0x21,0x11,0x33,0x11,0x33,0x32,0x36,0x37,0x13,0x01,0x11,0x33,0x32,0x35,0x34,0x26,0x23,0x03,0x83,0x8d,0x33,0x55,0xe6,0xc7,0xae,0xfe,0xc7,0xa4,0x56,0x41,0x53,0x22,0x79,0xfe,0x7b,0x95,0xd1,0x6e,0x5e,0x04,0x00,0xfe,0xcb,0x71,0x29,0x04,0x2b,0xd7,0x88,0xa3,0x04,0x00,0xfe,0x5a,0x41,0x51,0x01,0x14,0xfd,0xcf,0xfe, +0xbd,0x9d,0x4f,0x57,0x00,0x01,0x00,0x68,0xfe,0xb6,0x02,0xdb,0x04,0x18,0x00,0x2b,0x00,0x5d,0x40,0x0e,0x05,0x03,0x00,0x08,0x01,0x08,0x10,0x16,0x21,0x27,0x04,0x2a,0x19,0x0c,0xb8,0xff,0xc0,0x40,0x13,0x0b,0x0e,0x48,0x0c,0x0c,0x0e,0x95,0x2a,0x16,0x1c,0x1c,0x1e,0x95,0x19,0x10,0x05,0x05,0x27,0x00,0xb8,0x01,0x03,0x40,0x0d,0x0c, +0x1c,0x1c,0x27,0x83,0x10,0x10,0x2d,0x0c,0x21,0x83,0x16,0x0c,0x2f,0xd6,0xe1,0x11,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x10,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x32,0x2f,0x2b,0x11,0x12,0x17,0x39,0x2f,0x5d,0xdd,0xc6,0x31,0x30,0x17,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x11,0x16,0x33,0x32,0x35, +0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0xee,0x95,0x3b,0x3c,0x41,0x49,0x7b,0x8d,0x82,0x88,0xc3,0x56,0x7d,0x93,0x65,0xca,0x9f,0x7a,0x61,0x66,0x82,0x52,0x62,0x45,0x7e,0x94,0x72,0xc2,0xa9,0x41,0x02,0x27,0xaa,0x23,0x7b,0x1f,0x8f, +0x83,0x01,0x0d,0x63,0x90,0x3c,0x4e,0x36,0x41,0x89,0x64,0x80,0xa8,0x2e,0xa6,0x4a,0x50,0x40,0x3e,0x4b,0x35,0x40,0x8c,0x62,0x82,0xa8,0x00,0x01,0xff,0x92,0xfe,0x1e,0x02,0x68,0x06,0x02,0x00,0x15,0x00,0x2d,0x40,0x18,0x0b,0x0d,0x95,0x08,0x1c,0x00,0x02,0x95,0x40,0x13,0x01,0x00,0x00,0x05,0x0a,0x05,0x84,0x0f,0x16,0x17,0x0f,0x84, +0x08,0x30,0x2b,0x01,0x10,0xe1,0x18,0xc4,0x10,0xc2,0x2f,0x00,0x3f,0x1a,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x02,0x68,0x32,0x3c,0xaa,0xb9,0x8f,0x4c,0x2a,0x32,0x3c,0xac,0xb8,0x8e,0x4c,0x2a,0x05,0x5c,0x1b,0xdf,0xfa, +0xe7,0xa2,0xbf,0x13,0x93,0x1a,0xdf,0x05,0x17,0xa4,0xbe,0x12,0x00,0x01,0xff,0x9e,0xfe,0x1e,0x02,0x72,0x06,0x02,0x00,0x1d,0x00,0x53,0x40,0x2d,0x08,0x05,0x14,0x95,0x40,0x17,0x1b,0x0c,0x17,0x95,0x08,0x30,0x0f,0x11,0x95,0x0c,0x1c,0x00,0x02,0x95,0x40,0x1b,0x01,0x15,0x15,0x13,0x0f,0x06,0x06,0x09,0x00,0x00,0x09,0x0f,0x17,0x05, +0x09,0x84,0x13,0x1e,0x1f,0x13,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x39,0x39,0x18,0xc6,0x10,0xc0,0x2f,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0x1a,0xfd,0xc6,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x33,0x15,0x23,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32, +0x35,0x11,0x23,0x35,0x33,0x11,0x34,0x36,0x33,0x32,0x17,0x02,0x72,0x32,0x3a,0xac,0xb0,0xb0,0xb7,0x8f,0x4b,0x2b,0x32,0x3a,0xac,0xb0,0xb0,0xb8,0x8e,0x4c,0x2a,0x05,0x5c,0x1b,0xdf,0xfd,0xce,0x8b,0xfd,0xa4,0xa4,0xbd,0x13,0x93,0x1a,0xdf,0x02,0x52,0x8b,0x02,0x3a,0xa2,0xc0,0x12,0x00,0x01,0xff,0xa6,0xfe,0x1e,0x02,0x48,0x04,0x18, +0x00,0x14,0x00,0x22,0x40,0x11,0x14,0x12,0x95,0x02,0x1c,0x09,0x07,0x95,0x0c,0x10,0x14,0x14,0x10,0x09,0x10,0x84,0x04,0x2f,0xe1,0xc6,0x10,0xc2,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x20,0x11,0x11,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x33,0x32,0x37,0x02,0x48,0x3a,0x5c,0xfe, +0xfa,0x9a,0x3a,0x32,0x40,0x3d,0x90,0x9d,0x92,0x38,0x2e,0xfe,0x3c,0x1e,0x01,0x28,0x03,0x82,0xc5,0x19,0x8c,0x18,0xae,0x9c,0xfc,0x95,0xbb,0x22,0x00,0x02,0xff,0x44,0xfe,0x1e,0x02,0x8e,0x06,0x02,0x00,0x1b,0x00,0x23,0x00,0x68,0xb7,0x15,0x05,0x07,0x13,0x1c,0x0a,0x1e,0x07,0xb8,0xff,0xc0,0x40,0x30,0x13,0x16,0x48,0x07,0x08,0x08, +0x22,0x1e,0x96,0x0f,0x13,0x1f,0x13,0x02,0x09,0x03,0x13,0x22,0x96,0x0d,0x1c,0x00,0x02,0x95,0x40,0x19,0x01,0x1c,0x15,0x0a,0x05,0x10,0x07,0x00,0x00,0x05,0x20,0x84,0x10,0x05,0x84,0x15,0x24,0x25,0x15,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x18,0xd4,0xe1,0x10,0xc2,0x2f,0xc6,0x11,0x12,0x39,0x11,0x33,0x00,0x3f,0x1a,0xfd,0xc6,0x3f, +0xed,0x2f,0x5f,0x5e,0x5d,0xed,0x11,0x39,0x2f,0xcd,0x2b,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x16,0x17,0x15,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x11,0x34,0x36,0x33,0x32,0x17,0x01,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0x02,0x8e,0x32,0x3e,0xaa,0x7a,0x74,0x7a, +0x80,0x10,0xa3,0x82,0x69,0x86,0xb4,0x91,0x27,0x21,0xb8,0x8d,0x4c,0x2c,0xfe,0x43,0x23,0x25,0xae,0x63,0x8e,0x05,0x5c,0x1b,0xdf,0xfb,0x2a,0x2c,0x54,0xa6,0x68,0x34,0x81,0x99,0x79,0x5d,0x6d,0x91,0x04,0x04,0xb2,0xa2,0xc0,0x12,0xf9,0x78,0x06,0x70,0x5a,0x00,0x00,0x01,0x00,0x38,0xfe,0xd1,0x02,0x8e,0x04,0x16,0x00,0x14,0x00,0x30, +0x40,0x18,0x03,0x04,0x07,0x04,0x13,0x95,0x01,0x15,0x0d,0x0b,0x95,0x10,0x10,0x14,0x14,0x04,0x01,0x13,0x84,0x07,0x07,0x16,0x06,0x0d,0x2f,0x33,0x12,0x39,0x2f,0xf1,0x39,0x39,0xc1,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x39,0x10,0xcd,0x31,0x30,0x21,0x23,0x15,0x07,0x11,0x21,0x35,0x21,0x11,0x34,0x26,0x23,0x22,0x07,0x35,0x36, +0x33,0x20,0x11,0x11,0x33,0x02,0x8e,0xb1,0xa1,0xfe,0xfc,0x01,0x04,0x48,0x52,0x3e,0x2c,0x39,0x60,0x01,0x0c,0xb1,0xfa,0x35,0x01,0x2f,0x8c,0x02,0x41,0x67,0x58,0x22,0x8c,0x20,0xfe,0xd4,0xfd,0xa2,0x00,0x01,0x00,0x2b,0xfe,0x1e,0x02,0x81,0x05,0x2f,0x00,0x14,0x00,0x2e,0x40,0x17,0x14,0x12,0x95,0x02,0x1c,0x0a,0x0e,0x0b,0x06,0x95, +0x07,0x0f,0x00,0x00,0x0d,0x06,0x0d,0x06,0x0b,0x08,0x0f,0x84,0x04,0x2f,0xe9,0x33,0x32,0x33,0x32,0x2f,0x2f,0x33,0x2f,0x00,0x3f,0xed,0x33,0x32,0xc4,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x02,0x81,0x3a,0x5f,0xfe,0xf3,0xb0,0xb0,0xa4, +0x01,0x02,0xfe,0xfe,0x46,0x51,0x3b,0x30,0xfe,0x40,0x22,0x01,0x2e,0x04,0x28,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0xfb,0xf4,0x67,0x57,0x23,0x00,0x02,0x00,0x21,0xff,0xe8,0x04,0xa4,0x04,0x00,0x00,0x15,0x00,0x1d,0x00,0x4c,0x40,0x2b,0x01,0x10,0x14,0x18,0x04,0x0a,0x95,0x40,0x0d,0x0e,0x07,0x0d,0x95,0x08,0x30,0x13,0x04,0x0e,0x1b,0x95, +0x07,0x16,0x02,0x15,0x0e,0x0f,0x00,0x01,0x01,0x04,0x17,0x03,0x13,0x84,0x12,0x12,0x1f,0x0c,0x18,0x0a,0x0f,0x84,0x0e,0x2f,0xe1,0x39,0x39,0xc6,0x12,0x39,0x2f,0xe1,0x17,0x39,0x10,0xcd,0x00,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x17,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11, +0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x05,0x35,0x21,0x15,0x10,0x33,0x32,0x36,0x04,0xa4,0x98,0xa4,0x04,0x66,0xd5,0xfe,0x8f,0x97,0x97,0xa4,0x02,0x0c,0xa4,0x98,0xfe,0xc4,0xfd,0xf4,0xfa,0x78,0x9a,0x01,0xdb,0xfe,0x25,0xa2,0xba,0x01,0xb4,0x3f,0x8b,0x01,0x9a,0xfe,0x66,0x01,0x9a,0xfe,0x66,0xb4,0x29,0x25, +0xfe,0xbc,0xb0,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x04,0x62,0x04,0x00,0x00,0x1b,0x00,0x38,0x40,0x1e,0x09,0x95,0x17,0x16,0x04,0x0e,0x11,0x03,0x10,0x0f,0x01,0x95,0x02,0x0f,0x12,0x0e,0x11,0x14,0x84,0x0c,0x0c,0x1d,0x1a,0x00,0x04,0x04,0x01,0x06,0x84,0x1a,0x2f,0xf1,0x33,0xc2,0x2f,0x32,0x11,0x12,0x39,0x2f,0xe1,0x32,0xc6,0x32, +0x00,0x3f,0xed,0x3f,0x17,0x32,0x3f,0xed,0x31,0x30,0x01,0x23,0x35,0x21,0x15,0x06,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x10,0x27,0x35,0x21,0x15,0x23,0x16,0x11,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x01,0x1c,0xbc,0x01,0x7f,0xdb,0xbd,0xa1,0xa6,0xb6,0xda,0x01,0x7e,0xb8,0xb8,0xfe,0xec,0xf2,0xed,0xfe,0xf1,0x03,0x74,0x8c,0x8e,0x64, +0xfe,0xe6,0xaf,0xd3,0xcc,0xb6,0x01,0x1a,0x64,0x8e,0x8c,0x89,0xfe,0xfb,0xe3,0xfe,0xe5,0x01,0x16,0xe1,0x01,0x07,0x00,0x01,0x00,0x90,0xff,0xe8,0x04,0x16,0x04,0x18,0x00,0x17,0x00,0x2a,0x40,0x16,0x04,0x95,0x15,0x16,0x00,0x0f,0x0c,0x0a,0x95,0x0f,0x10,0x0c,0x0c,0x01,0x12,0x83,0x07,0x07,0x19,0x01,0x84,0x00,0x2f,0xe1,0x12,0x39, +0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0x3f,0xed,0x31,0x30,0x13,0x33,0x11,0x10,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x12,0x15,0x14,0x00,0x23,0x20,0x11,0x90,0xa3,0x01,0x0b,0x93,0x9f,0x60,0x56,0x3b,0x35,0x3e,0x4f,0x96,0xa9,0xff,0x00,0xe3,0xfe,0x5d,0x04,0x00,0xfd,0xb4,0xfe,0xbe,0xdb, +0xc1,0xba,0xc8,0x1c,0x8a,0x1a,0xfe,0xe7,0xeb,0xfd,0xfe,0xd1,0x01,0xbe,0x00,0x01,0x00,0x0c,0x00,0x00,0x03,0xc8,0x04,0x00,0x00,0x0b,0x00,0x1d,0x40,0x0d,0x00,0x05,0x0a,0x09,0x15,0x0a,0x0f,0x01,0x00,0x00,0x0d,0x08,0x09,0x2f,0x33,0x11,0x33,0x2f,0x32,0x00,0x3f,0x3f,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x06, +0x07,0x01,0x23,0x01,0x33,0x03,0xc8,0xb4,0xfe,0xfc,0x1c,0x06,0x04,0x09,0x1b,0xfe,0xf2,0xac,0x01,0x96,0xa4,0x02,0xe8,0x51,0x3e,0x43,0x48,0xfd,0x14,0x04,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x00,0x05,0xb0,0x04,0x00,0x00,0x1b,0x00,0x3c,0x40,0x20,0x00,0x04,0x09,0x0c,0x16,0x1a,0x06,0x12,0x11,0x15,0x12,0x0f,0x1b,0x1a,0x04,0x09, +0x08,0x16,0x13,0x12,0x0c,0x16,0x04,0x0c,0x03,0x11,0x01,0x00,0x00,0x1d,0x10,0x11,0x2f,0x33,0x11,0x33,0x2f,0x32,0x12,0x17,0x39,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x00,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x01,0x33,0x13,0x16, +0x17,0x33,0x36,0x37,0x13,0x33,0x05,0xb0,0xac,0xd3,0x0b,0x03,0x09,0x02,0x10,0xec,0x95,0xd5,0x0a,0x04,0x08,0x02,0x0e,0xd2,0xa2,0x01,0x36,0xa8,0xd2,0x0c,0x05,0x04,0x03,0x12,0xe5,0xa4,0x03,0x02,0x28,0x34,0x2c,0x32,0xfd,0x00,0x03,0x04,0x24,0x38,0x27,0x35,0xfc,0xfc,0x04,0x00,0xfd,0x23,0x2b,0x34,0x24,0x39,0x02,0xdf,0x00,0x01, +0x00,0x0c,0x00,0x00,0x03,0xd1,0x05,0xec,0x00,0x14,0x00,0x2c,0x40,0x17,0x00,0x15,0x09,0x15,0x04,0x0a,0x14,0x0f,0x0f,0x0f,0x11,0x95,0x0c,0x00,0x0f,0x0a,0x0f,0x14,0x03,0x09,0x00,0x16,0x09,0x2f,0x10,0xc6,0x11,0x17,0x39,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x3f,0x33,0x33,0x3f,0x3f,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x06,0x07, +0x01,0x23,0x01,0x12,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x07,0x03,0xd1,0xb5,0xfe,0xea,0x02,0x10,0x06,0x06,0x11,0xfe,0xdf,0xaa,0x01,0xdc,0x7e,0xe4,0x3d,0x2b,0x34,0x2a,0x7f,0x3f,0x54,0x03,0x14,0x07,0x47,0x18,0x34,0xfc,0xea,0x04,0xae,0x01,0x3e,0x0d,0x93,0x12,0x98,0xc8,0x00,0x01,0x00,0x0a,0x00,0x00,0x03,0x4c,0x04,0x00, +0x00,0x0d,0x00,0x30,0x40,0x1a,0x00,0x01,0x04,0x09,0x04,0x05,0x03,0x15,0x05,0x0f,0x09,0x01,0x00,0x04,0x40,0x05,0x05,0x01,0x84,0x04,0x0e,0x0f,0x04,0x84,0x08,0x30,0x2b,0x01,0x10,0xf1,0xc1,0x18,0x2f,0x1a,0x10,0xcd,0x12,0x39,0x00,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x01,0x01,0x11,0x23,0x11,0x01,0x33,0x13,0x16,0x17,0x33,0x36, +0x37,0x13,0x03,0x4c,0xfe,0xb0,0xa4,0xfe,0xb2,0xb0,0xb8,0x29,0x11,0x04,0x18,0x20,0xbc,0x04,0x00,0xfd,0x77,0xfe,0x89,0x01,0x77,0x02,0x89,0xfe,0x7f,0x57,0x2e,0x46,0x3f,0x01,0x81,0x00,0x00,0x01,0x00,0x21,0xfe,0xfa,0x03,0xfe,0x04,0x00,0x00,0x16,0x00,0x36,0x40,0x0f,0x16,0x14,0x02,0x09,0x0f,0x95,0x08,0x15,0x0e,0x0a,0x95,0x0c, +0x0f,0x16,0x05,0xb8,0x01,0x03,0x40,0x09,0x12,0x0a,0x0e,0x10,0x10,0x18,0x0b,0x0f,0x09,0x2f,0x33,0xc6,0x12,0x39,0x2f,0xc6,0x32,0xd6,0xe1,0xc6,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x2f,0xdd,0xc6,0x31,0x30,0x05,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x21,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x06,0x15,0x14,0x33,0x32,0x37,0x03, +0xfe,0x34,0x41,0x58,0x6b,0x09,0xfd,0x52,0x02,0x5e,0xfd,0xdb,0x03,0x16,0xfd,0xa2,0x02,0x58,0x22,0x5a,0x2c,0x30,0xee,0x18,0x6f,0x51,0x22,0x24,0x33,0x03,0x41,0x8c,0x2f,0xfc,0xbb,0x78,0x3d,0x69,0x1b,0x00,0x00,0x02,0x00,0x21,0xff,0x81,0x04,0x25,0x04,0x00,0x00,0x17,0x00,0x1e,0x00,0x7d,0x40,0x32,0x07,0x28,0x09,0x0d,0x48,0x04, +0x1e,0x14,0x1e,0x02,0x34,0x0d,0x44,0x0d,0x02,0x06,0x0d,0x16,0x0d,0x26,0x0d,0x03,0x1d,0x96,0x40,0x11,0x0d,0x80,0x02,0x00,0x18,0x00,0x07,0x0d,0x95,0x06,0x15,0x0c,0x08,0x95,0x0a,0x0f,0x18,0x00,0x1b,0x02,0x0e,0x05,0x14,0x02,0xb8,0x01,0x03,0x40,0x0b,0x0f,0x03,0x01,0x03,0x03,0x14,0x0d,0x08,0x0c,0x0c,0x14,0xb8,0x01,0x03,0xb5, +0x1b,0x1b,0x20,0x09,0x0d,0x07,0x2f,0x33,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x5d,0xe1,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x39,0x39,0x10,0xce,0x1a,0x10,0xdc,0x1a,0xed,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x00,0x2b,0x21,0x06,0x07,0x23,0x36,0x37,0x21,0x35,0x01,0x21,0x35, +0x21,0x15,0x01,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x35,0x34,0x23,0x22,0x02,0x06,0x0f,0x03,0x8e,0x04,0x0d,0xfe,0xaa,0x02,0x5e,0xfd,0xdb,0x03,0x16,0xfd,0xa2,0x90,0x3d,0xca,0x78,0x76,0x8e,0xac,0x9c,0xaa,0xac,0xb7,0x78,0x9a,0x46,0x39,0x48,0x37,0x33,0x03,0x41,0x8c,0x2f,0xfc,0xbb,0x8f,0x9f,0x78, +0x5c,0x6a,0x7c,0x8c,0x5a,0x54,0x00,0x01,0xff,0xdd,0xfe,0x21,0x03,0x68,0x04,0x00,0x00,0x18,0x00,0x44,0x40,0x24,0x0b,0x0a,0x96,0x40,0x11,0x0e,0x17,0x11,0x91,0x09,0x30,0x01,0x03,0x95,0x17,0x1c,0x10,0x0c,0x95,0x0e,0x0f,0x11,0x0b,0x0b,0x06,0x00,0x0c,0x10,0x10,0x14,0x83,0x06,0x06,0x1a,0x0d,0x00,0x2f,0xc4,0x12,0x39,0x2f,0xf1, +0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0xed,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x03,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x23,0xa5,0xb1,0xae,0xdf,0xde,0xce,0x52,0x01,0x80,0xfd,0xbe,0x03,0x2d,0xfe, +0x77,0xda,0xea,0xfe,0xbc,0xf7,0xb6,0xfe,0x72,0xa2,0x68,0xb6,0x90,0x95,0xa6,0x33,0x02,0x14,0x8c,0x33,0xfd,0xe1,0x1a,0xea,0xb4,0xcc,0xfe,0xf7,0x00,0x02,0xff,0xea,0xfe,0x21,0x03,0x8c,0x04,0x00,0x00,0x20,0x00,0x29,0x00,0xa0,0xb5,0x19,0x20,0x0b,0x01,0x4d,0x14,0xb8,0xff,0xe0,0x40,0x0a,0x0b,0x01,0x4d,0x02,0x00,0x23,0x1e,0x0c, +0x0a,0x20,0xb8,0xff,0xc0,0x40,0x47,0x12,0x16,0x48,0x20,0x00,0x04,0x23,0x95,0x0f,0x0a,0x1f,0x0a,0x02,0x09,0x03,0x0a,0x0a,0x04,0x13,0x12,0x96,0x40,0x19,0x40,0x09,0x0c,0x48,0x19,0x16,0x04,0x19,0x96,0x09,0x30,0x28,0x95,0x04,0x1c,0x18,0x14,0x95,0x16,0x0f,0x19,0x13,0x13,0x0e,0x07,0x14,0x18,0x18,0x1c,0x21,0x0c,0x0e,0x26,0x1e, +0x02,0x1c,0x07,0x20,0x20,0x1c,0x83,0x0e,0x0e,0x2b,0x15,0x26,0x84,0x07,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x10,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0xed,0x39,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x2b,0x1a,0xed,0x39,0x11,0x39,0x2f,0x5f,0x5e,0x5d,0xed,0x10,0xd4,0xcd, +0x2b,0x11,0x39,0x39,0x11,0x12,0x39,0x31,0x30,0x01,0x2b,0x2b,0x01,0x26,0x27,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x07,0x16,0x17,0x25,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x32,0x03,0x8c,0x55,0x64,0xa6,0xfe,0xfe,0x94,0xad,0xb0, +0x8b,0xb3,0xc8,0x20,0xe1,0xcb,0x52,0x01,0x80,0xfd,0xbe,0x03,0x2d,0xfe,0x77,0xd6,0xee,0x43,0x3e,0x29,0xfe,0xc2,0xa8,0x81,0x4d,0x59,0xb4,0xab,0xfe,0x21,0x4f,0x46,0x95,0x7c,0x67,0x64,0x82,0x76,0x3e,0x46,0x92,0xa3,0x33,0x02,0x14,0x8c,0x33,0xfd,0xe1,0x1a,0xe7,0xb1,0x75,0x6b,0x2e,0x21,0x39,0x5c,0x32,0x28,0x5e,0x00,0x00,0x01, +0x00,0x1c,0x00,0x00,0x02,0xe8,0x06,0x02,0x00,0x19,0x00,0x2a,0x40,0x15,0x13,0x08,0x10,0x01,0x15,0x0d,0x0b,0x95,0x10,0x01,0x00,0x84,0x01,0x01,0x0d,0x13,0x83,0x08,0x08,0x1b,0x0d,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x11,0x34,0x36,0x37,0x36,0x36,0x35,0x34, +0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x01,0x89,0xa3,0x4c,0x6e,0x6a,0x38,0x97,0x7e,0x8f,0x82,0x84,0x9c,0xc2,0xea,0x4f,0x81,0x50,0x3f,0x01,0xee,0x87,0xa2,0x6c,0x69,0x6e,0x3e,0x5f,0x80,0x4c,0x97,0x40,0xc8,0x98,0x5b,0x9f,0x7b,0x4d,0x83,0x6f,0x00,0x01,0x00,0x04,0x00,0x00,0x02,0xcf, +0x06,0x02,0x00,0x19,0x00,0x2e,0x40,0x18,0x14,0x05,0x17,0x0d,0x15,0x4f,0x00,0x01,0x00,0x02,0x95,0x17,0x01,0x0c,0x84,0x0d,0x0d,0x14,0x00,0x00,0x1b,0x05,0x83,0x14,0x2f,0xe1,0x12,0x39,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0x12,0x39,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15, +0x11,0x23,0x11,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x02,0xcf,0x87,0x94,0x7a,0x90,0x32,0x72,0x70,0x48,0xa4,0x39,0x5c,0x7a,0x4f,0xf0,0xc0,0x94,0x87,0x05,0x29,0x4e,0x78,0x59,0x38,0x72,0x75,0x73,0xa2,0x84,0xfe,0x12,0x01,0xee,0x5f,0x82,0x5c,0x79,0x9f,0x5f,0x95,0xcb,0x3e,0x00,0x00,0x01,0x00,0x00,0xff,0xea, +0x02,0xcb,0x05,0xec,0x00,0x19,0x00,0x30,0x40,0x19,0x15,0x06,0x18,0x0d,0x40,0x01,0x01,0x01,0x03,0x95,0x18,0x16,0x0d,0x00,0x0e,0x84,0x0d,0x0d,0x01,0x15,0x83,0x06,0x06,0x1b,0x01,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x00,0x3f,0x3f,0xfd,0xc6,0x5d,0x11,0x12,0x39,0x39,0x31,0x30,0x35,0x35,0x16,0x33,0x32,0x36,0x35,0x34, +0x26,0x27,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x86,0x94,0x7a,0x91,0x3c,0x68,0x6f,0x4a,0xa4,0x3e,0x58,0x7a,0x4f,0xef,0xc2,0x93,0x27,0x9b,0x4e,0x76,0x5c,0x45,0x6e,0x6b,0x73,0xa0,0x87,0x01,0xee,0xfe,0x12,0x5e,0x88,0x58,0x77,0xa0,0x5f,0x97,0xc9,0x00,0x00,0x01,0x00,0x60,0xfe,0x21, +0x03,0x60,0x04,0x18,0x00,0x13,0x00,0x2e,0x40,0x1b,0x10,0x13,0x20,0x13,0x30,0x13,0x03,0x13,0x11,0x95,0x02,0x1c,0x3f,0x0b,0x01,0x0b,0x0d,0x95,0x08,0x10,0x0b,0x13,0x13,0x15,0x0f,0x83,0x05,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0xfd,0xc6,0x5d,0x31,0x30,0x01,0x06,0x23,0x22,0x02,0x11,0x10,0x00,0x33,0x32, +0x17,0x15,0x26,0x23,0x20,0x11,0x10,0x21,0x32,0x37,0x03,0x60,0x84,0x9c,0xe8,0xf8,0x01,0x07,0xf7,0x87,0x7b,0x7e,0x84,0xfe,0xac,0x01,0x4a,0x8c,0x80,0xfe,0x77,0x56,0x01,0x7b,0x01,0x6c,0x01,0x7f,0x01,0x91,0x41,0xa4,0x5b,0xfd,0x86,0xfd,0x96,0x66,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x92,0x06,0x02,0x00,0x0b,0x00,0x15,0x00,0x21, +0x00,0x3f,0x40,0x24,0x16,0x63,0x40,0x1c,0x06,0x00,0x1c,0x63,0x14,0x30,0x11,0x95,0x00,0x16,0x0c,0x95,0x40,0x06,0x01,0x1f,0x62,0x19,0x0f,0x14,0x19,0x62,0x08,0x30,0x09,0x83,0x14,0x14,0x23,0x0f,0x83,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xe1,0x00,0x18,0x3f,0x1a,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31, +0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x03,0x22,0x02,0x11,0x10,0x21,0x32,0x12,0x11,0x10,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x74,0xfe,0xfe,0xfe,0xee,0x01,0x1b,0x01,0x04,0x01,0x02,0x01,0x11,0xfe,0xe6,0xff,0xb4,0xbd,0x01,0x71,0xb4,0xbd,0xfe,0x8f,0x2f,0x40,0x40,0x2f, +0x2e,0x43,0x43,0x18,0x01,0x8c,0x01,0x76,0x01,0x7c,0x01,0x9c,0xfe,0x76,0xfe,0x86,0xfe,0x83,0xfe,0x67,0x05,0x8f,0xfe,0xb3,0xfe,0xc8,0xfd,0x80,0x01,0x4c,0x01,0x38,0x02,0x81,0xfd,0x0e,0x42,0x2f,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x00,0x03,0x00,0xa6,0x00,0x00,0x03,0x7f,0x04,0x00,0x00,0x0d,0x00,0x14,0x00,0x1b,0x00,0x40,0x40,0x23, +0x08,0x15,0x95,0x40,0x0f,0x01,0x00,0x0f,0x95,0x09,0x30,0x16,0x95,0x00,0x15,0x0e,0x95,0x01,0x0f,0x08,0x0a,0x0f,0x12,0x83,0x05,0x05,0x0a,0x83,0x19,0x19,0x1d,0x0f,0x16,0x84,0x00,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x33,0x11, +0x21,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x03,0x11,0x33,0x32,0x35,0x34,0x23,0x03,0x11,0x33,0x32,0x35,0x34,0x23,0xa6,0x01,0x56,0xa4,0xb0,0xac,0xdb,0xca,0xaf,0xbc,0xa2,0xbe,0xb8,0xa8,0xba,0xd3,0xe3,0x04,0x00,0x85,0x79,0xac,0x35,0x05,0x27,0xca,0x89,0xa2,0x03,0x74,0xfe,0xe2,0x94,0x8a,0xfe,0x57,0xfe,0xc1, +0x9d,0xa2,0x00,0x02,0x00,0x5c,0xff,0xe8,0x04,0x02,0x04,0x18,0x00,0x10,0x00,0x24,0x00,0x42,0x40,0x24,0x00,0x12,0x95,0x40,0x11,0x06,0x0c,0x11,0x95,0x0c,0x30,0x18,0x95,0x0c,0x16,0x1e,0x95,0x06,0x10,0x00,0x0f,0x12,0x12,0x15,0x09,0x83,0x1b,0x1b,0x26,0x0f,0x21,0x83,0x03,0x15,0x83,0x0f,0x2f,0xe1,0xd4,0xe1,0x11,0x12,0x39,0x2f, +0xe1,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x35,0x26,0x35,0x34,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x26,0x35,0x34,0x25,0x15,0x23,0x20,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x01,0x2f,0xbd,0xd9,0xb5,0xee,0x01, +0x14,0xfe,0xe1,0xf3,0xc0,0xd4,0x02,0x10,0x56,0xfe,0xee,0x81,0x71,0xa6,0xbe,0xbf,0xa3,0x68,0x78,0x88,0x78,0x02,0x14,0x04,0x3d,0xa9,0x7e,0x9c,0xfe,0xe6,0xf4,0xf5,0xfe,0xd3,0x9e,0x8a,0xce,0x78,0x8e,0xaa,0x4f,0x5d,0xd2,0xc0,0xb9,0xd1,0x54,0x44,0x48,0x58,0x00,0x01,0x00,0x60,0xff,0xe8,0x04,0x54,0x04,0xe2,0x00,0x27,0x00,0x57, +0x40,0x1c,0x12,0x95,0x40,0x15,0x1e,0x18,0x15,0x95,0x08,0x30,0x16,0x11,0x0f,0x95,0x18,0x16,0x07,0x09,0x00,0x02,0x96,0x25,0x09,0x95,0x1e,0x10,0x00,0x22,0xb8,0x01,0x03,0x40,0x10,0x04,0x06,0x13,0x13,0x11,0x0c,0x06,0x06,0x16,0x84,0x11,0x11,0x29,0x0c,0x83,0x1b,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0x10, +0xd6,0xe1,0xc6,0x00,0x3f,0xed,0x2f,0xfd,0xc6,0x10,0xc6,0x3f,0xed,0x32,0x32,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x14,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x11,0x23,0x35,0x21,0x11,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x04, +0x54,0x30,0x2a,0x5e,0x16,0x06,0x9c,0x8f,0xa8,0xd1,0xc5,0xa7,0x6e,0x4b,0xdf,0x01,0x7f,0xaf,0xb8,0xec,0xfe,0xe6,0x01,0x34,0xf5,0x51,0x49,0x05,0x70,0x56,0x3c,0x34,0x04,0x52,0x1a,0x76,0x42,0x68,0x06,0x48,0xe1,0xb3,0xb8,0xd0,0x26,0x01,0x04,0x8b,0xfe,0x17,0x56,0x01,0x18,0xf0,0xef,0x01,0x39,0x16,0x22,0x03,0x4c,0x6f,0x1a,0x00, +0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xe2,0x04,0x00,0x00,0x0b,0x00,0x35,0x40,0x1c,0x03,0x95,0x40,0x08,0x06,0x05,0x08,0x95,0x0c,0x30,0x0b,0x00,0x06,0x05,0x15,0x06,0x0f,0x09,0x08,0x04,0x00,0x84,0x01,0x01,0x0d,0x04,0x84,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2b,0x00,0x18,0x2f,0x1a, +0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x03,0xe2,0xa4,0xfe,0x0c,0xa4,0xa4,0x01,0xf4,0xa4,0x01,0xc6,0xfe,0x3a,0x04,0x00,0xfe,0x52,0x01,0xae,0x00,0x00,0x03,0xff,0x18,0xfe,0x1e,0x02,0x38,0x05,0xd9,0x00,0x0b,0x00,0x1d,0x00,0x25,0x00,0x70,0xb7,0x1e,0x0e,0x0c,0x20,0x1b,0x18,0x16,0x1d,0xb8, +0xff,0xc0,0x40,0x36,0x13,0x16,0x48,0x1d,0x0c,0x0c,0x10,0x20,0x96,0x0f,0x16,0x1f,0x16,0x02,0x09,0x03,0x16,0x24,0x96,0x10,0x1c,0x06,0x63,0x40,0x00,0x19,0x0f,0x09,0x62,0x03,0x18,0x1b,0x03,0x62,0xff,0x30,0x0c,0x0c,0x1b,0x0e,0x1b,0x22,0x84,0x13,0x1e,0x1b,0x84,0x18,0x26,0x27,0x18,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x33,0x18, +0xd4,0xe1,0x12,0x39,0x10,0xc1,0x2f,0x2b,0x01,0x10,0xe1,0x00,0x18,0x3f,0xd6,0x1a,0xed,0x3f,0xed,0x2f,0x5f,0x5e,0x5d,0xed,0x12,0x39,0x2f,0xcd,0x2b,0x11,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x26,0x27,0x02,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x11, +0x33,0x11,0x16,0x17,0x25,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0xfa,0x2c,0x3e,0x3e,0x2c,0x2d,0x3f,0x3f,0x01,0x11,0x7c,0x7e,0x2d,0xfe,0xf7,0x68,0x88,0xb5,0x91,0x27,0x21,0xa4,0x7a,0x74,0xfe,0x6e,0x24,0x24,0xae,0x62,0x8f,0x05,0x04,0x3c,0x2e,0x2e,0x3d,0x3d,0x2e,0x2c,0x3e,0xf9,0x98,0x68,0x34,0xfe,0xe6,0x78,0x5e,0x6d,0x91,0x04, +0x04,0x12,0xfb,0xc2,0x2c,0x54,0x26,0x06,0x70,0x5a,0x00,0x01,0x00,0x04,0xfe,0x14,0x03,0x56,0x04,0x00,0x00,0x0c,0x00,0x2a,0x40,0x16,0x00,0x1c,0x02,0x06,0x0a,0x03,0x07,0x05,0x15,0x0c,0x0f,0x07,0x0f,0x0c,0x84,0x06,0x02,0x0a,0x0a,0x0e,0x05,0x07,0x2f,0xc6,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0x3f,0x3f,0x12,0x17,0x39,0x3f, +0x31,0x30,0x01,0x23,0x11,0x23,0x01,0x23,0x01,0x01,0x33,0x01,0x33,0x11,0x33,0x03,0x56,0xa4,0x04,0xfe,0x52,0xd7,0x01,0xdb,0xfe,0x00,0xe6,0x01,0xc4,0x04,0xa4,0xfe,0x14,0x03,0xc1,0xfe,0x2b,0x01,0xee,0x02,0x12,0xfe,0x14,0x01,0xec,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x02,0xf8,0x04,0x00,0x00,0x05,0x00,0x19,0x40,0x0c,0x04,0x95, +0x01,0x15,0x02,0x0f,0x00,0x00,0x07,0x04,0x84,0x01,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0x3f,0xed,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x02,0xf8,0xfd,0xae,0xa4,0x01,0xae,0x04,0x00,0xfc,0x8c,0x00,0x02,0x00,0x60,0xfe,0x29,0x05,0x21,0x06,0x02,0x00,0x19,0x00,0x26,0x00,0x38,0x40,0x1e,0x05,0x1b,0x13,0x07,0x10,0x24,0x95,0x0a, +0x16,0x1e,0x95,0x10,0x10,0x00,0x02,0x95,0x17,0x01,0x00,0x00,0x05,0x84,0x1a,0x13,0x07,0x07,0x28,0x21,0x83,0x0d,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xf1,0xc2,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x23,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x12,0x33,0x32, +0x17,0x33,0x11,0x34,0x36,0x33,0x32,0x17,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x21,0x37,0x36,0xa4,0xa4,0x04,0x6e,0xee,0xc2,0xea,0xff,0xd6,0xd3,0x60,0x04,0xb4,0x8a,0x48,0x2f,0xfe,0x4b,0xa7,0x7b,0x98,0xaa,0xa7,0x84,0x8b,0xae,0x05,0x5c,0x1b,0xcf,0xf9,0x81,0x02,0x85,0xc6,0x01,0x12,0xee,0x01, +0x00,0x01,0x30,0xa6,0x01,0x40,0x99,0xb7,0x12,0xfb,0xdb,0x9b,0x7b,0xad,0xde,0xc4,0xb3,0xc7,0xc2,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x02,0xe8,0x06,0x02,0x00,0x1f,0x00,0x50,0x40,0x2a,0x03,0x00,0x06,0x95,0x40,0x09,0x17,0x05,0x09,0x95,0x08,0x30,0x1a,0x0f,0x17,0x05,0x15,0x14,0x12,0x95,0x17,0x01,0x02,0x02,0x1a,0x04,0x07,0x07, +0x14,0x09,0x00,0x04,0x84,0x05,0x05,0x14,0x1a,0x83,0x0f,0x0f,0x21,0x14,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0x12,0x39,0x39,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x34,0x36,0x37,0x36, +0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x01,0x89,0xc5,0xc5,0xa3,0xae,0xae,0x51,0x69,0x6a,0x38,0x97,0x7e,0x8f,0x82,0x84,0x9c,0xc2,0xea,0x4f,0x81,0x4e,0x41,0x02,0x04,0x8b,0xfe,0x87,0x01,0x79,0x8b,0x7a,0x9d,0x68,0x69,0x6e,0x3e,0x5f,0x80,0x4c,0x97,0x40,0xc8,0x98,0x5b,0x9f, +0x7b,0x4b,0x7d,0x00,0x00,0x01,0x00,0x04,0x00,0x00,0x02,0xcf,0x06,0x02,0x00,0x1f,0x00,0x4e,0x40,0x2a,0x0e,0x0b,0x11,0x95,0x40,0x14,0x1d,0x10,0x14,0x95,0x08,0x30,0x10,0x15,0x4f,0x00,0x01,0x00,0x02,0x95,0x1d,0x01,0x13,0x13,0x10,0x1a,0x0c,0x0c,0x00,0x14,0x0b,0x10,0x84,0x0f,0x0f,0x05,0x00,0x00,0x21,0x05,0x83,0x1a,0x2f,0xe1, +0x12,0x39,0x2f,0x12,0x39,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17, +0x02,0xcf,0x87,0x94,0x7a,0x90,0x32,0x72,0x6b,0x4d,0xb0,0xb0,0xa4,0xc6,0xc6,0x41,0x54,0x7a,0x4f,0xf0,0xc0,0x94,0x87,0x05,0x29,0x4e,0x78,0x59,0x38,0x72,0x75,0x6e,0x9d,0x78,0x8b,0xfe,0x87,0x01,0x79,0x8b,0x54,0x80,0x53,0x79,0x9f,0x5f,0x95,0xcb,0x3e,0x00,0x00,0x03,0x00,0x60,0xff,0xe8,0x07,0x27,0x05,0xec,0x00,0x15,0x00,0x22, +0x00,0x25,0x00,0x4a,0x40,0x29,0x11,0x05,0x0e,0x20,0x95,0x08,0x16,0x25,0x01,0x95,0x04,0x15,0x00,0x23,0x95,0x14,0x0f,0x1a,0x95,0x0e,0x10,0x12,0x00,0x11,0x14,0x16,0x03,0x01,0x25,0x84,0x04,0x04,0x0b,0x23,0x00,0x03,0x03,0x27,0x1d,0x83,0x0b,0x2f,0xe1,0x12,0x39,0x2f,0xc6,0x32,0x12,0x39,0x2f,0xe1,0x32,0x17,0x39,0x00,0x3f,0x3f, +0xed,0x3f,0xed,0x39,0x3f,0xed,0x39,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x21,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x21,0x11,0x07,0x27,0xfd,0x9f,0x02,0x58,0xfc,0x4e,0x04,0x72,0xee,0xc2, +0xe6,0x01,0x02,0xd6,0xce,0x62,0x04,0xa4,0x03,0x17,0xfc,0x45,0xa4,0x80,0x98,0xa8,0xa4,0x89,0x8a,0xad,0x02,0xc9,0xfd,0xdb,0x03,0xd1,0xfc,0xbb,0x8c,0xb4,0xcc,0x01,0x16,0xe8,0x01,0x00,0x01,0x32,0xa8,0x02,0x7c,0xfe,0x14,0xfd,0xd7,0x87,0x7f,0xb1,0xdf,0xc3,0xac,0xce,0xcb,0x02,0x37,0xfd,0x0f,0x00,0x00,0x02,0x00,0x60,0xfe,0x21, +0x07,0x77,0x05,0xec,0x00,0x29,0x00,0x36,0x00,0x72,0x40,0x40,0x0b,0x0a,0x96,0x40,0x22,0x1f,0x28,0x22,0x96,0x08,0x30,0x01,0x03,0x95,0x28,0x1c,0x1c,0x10,0x19,0x34,0x95,0x13,0x16,0x0e,0x15,0x21,0x0c,0x95,0x1f,0x0f,0x2e,0x95,0x19,0x10,0x1d,0x00,0x22,0x0b,0x0b,0x06,0x01,0x0c,0x21,0x21,0x25,0x01,0x01,0x1c,0x1f,0x2a,0x03,0x0e, +0x84,0x0f,0x0f,0x16,0x25,0x83,0x06,0x06,0x38,0x31,0x83,0x16,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x17,0x39,0x39,0x2f,0x10,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x39,0x3f,0x3f,0xed,0x12,0x39,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x35,0x16,0x33, +0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xee,0xa4,0xb2,0xae,0xdf,0xdf,0xcd,0x52,0x01,0x7f,0xfd,0xbe, +0xa4,0x04,0x72,0xee,0xc2,0xe6,0x01,0x02,0xd6,0xce,0x62,0x04,0xa4,0x03,0x2e,0xfe,0x76,0xd7,0xec,0xfe,0xbd,0xf6,0xb6,0xfe,0xe4,0xa4,0x80,0x98,0xa8,0xa4,0x89,0x8a,0xad,0xfe,0x72,0xa2,0x68,0xb6,0x90,0x95,0xa6,0x33,0x02,0x14,0xfc,0x8c,0xb4,0xcc,0x01,0x16,0xe8,0x01,0x00,0x01,0x32,0xa8,0x02,0x7c,0xfe,0x14,0x33,0xfd,0xe1,0x1a, +0xe9,0xb5,0xcc,0xfe,0xf7,0x03,0xb6,0x87,0x7f,0xb1,0xdf,0xc3,0xac,0xce,0xcb,0x00,0x00,0x04,0x00,0x60,0xff,0x81,0x07,0xdb,0x05,0xec,0x00,0x22,0x00,0x2f,0x00,0x32,0x00,0x39,0x00,0xcb,0xb9,0x00,0x30,0xff,0xd8,0x40,0x4e,0x0b,0x10,0x01,0x4c,0x19,0x18,0x0b,0x10,0x01,0x4c,0x04,0x39,0x14,0x39,0x24,0x39,0x03,0x34,0x19,0x44,0x19, +0x02,0x06,0x19,0x16,0x19,0x26,0x19,0x03,0x09,0x13,0x07,0x10,0x2d,0x95,0x0a,0x16,0x02,0x00,0x00,0x32,0x33,0x03,0x06,0x19,0x38,0x96,0x40,0x1c,0x80,0x19,0x95,0x06,0x15,0x18,0x30,0x95,0x16,0x0f,0x27,0x95,0x40,0x10,0x10,0x14,0x00,0x30,0x18,0x18,0x1f,0x33,0x00,0x36,0x02,0x1a,0x05,0x1f,0x02,0xb8,0x01,0x03,0x40,0x0b,0x03,0x0f, +0x03,0x1f,0x03,0x02,0x0a,0x03,0x32,0x1f,0x03,0xb8,0x01,0x03,0x40,0x11,0x08,0x30,0x19,0x13,0x16,0x23,0x03,0x32,0x84,0x06,0x06,0x1f,0x0d,0x30,0x18,0x18,0x1f,0xb8,0x01,0x03,0xb5,0x36,0x36,0x3b,0x2a,0x83,0x0d,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0xe1,0x17,0x39,0x32,0x2b,0x01,0x5f,0x5e,0x5d,0x10, +0xe1,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x10,0xc0,0x18,0x2f,0x32,0x00,0x3f,0x3f,0x1a,0xed,0x3f,0xed,0x39,0x3f,0xfd,0x1a,0xdc,0x1a,0xed,0x11,0x12,0x17,0x39,0x10,0xce,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x5e,0x5d,0x5d,0x5d,0x2b,0x2b,0x21,0x06,0x07,0x23,0x36,0x37,0x21,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x00,0x33, +0x32,0x17,0x33,0x11,0x33,0x11,0x21,0x15,0x01,0x33,0x12,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x21,0x11,0x25,0x33,0x32,0x35,0x34,0x23,0x22,0x05,0xba,0x0c,0x04,0x90,0x04,0x0f,0xfe,0x3f,0x04,0x72,0xee,0xc2,0xe6,0x01,0x02,0xd6,0xce,0x62,0x04,0xa4,0x03,0x17, +0xfd,0x9f,0x92,0x86,0xf9,0x76,0x8e,0xac,0x9b,0xfc,0xd8,0xa4,0x80,0x98,0xa8,0xa4,0x89,0x8a,0xad,0x02,0xc9,0xfd,0xdb,0x01,0xd8,0xae,0xb4,0x75,0x9d,0x39,0x46,0x3b,0x44,0xb4,0xcc,0x01,0x16,0xe8,0x01,0x00,0x01,0x32,0xa8,0x02,0x7c,0xfe,0x14,0x2f,0xfc,0xbb,0x01,0x2e,0x78,0x5c,0x6b,0x7b,0x01,0xd7,0x87,0x7f,0xb1,0xdf,0xc3,0xac, +0xce,0xcb,0x02,0x37,0xfd,0x0f,0x09,0x5a,0x54,0x00,0x00,0x02,0x00,0x2b,0xff,0xe8,0x04,0x94,0x05,0x2f,0x00,0x1d,0x00,0x2c,0x00,0x53,0x40,0x2d,0x11,0x17,0x25,0x2b,0x04,0x09,0x23,0x95,0x1a,0x16,0x05,0x06,0x1f,0x06,0x00,0x95,0x03,0x0f,0x0c,0x0e,0x95,0x09,0x10,0x1e,0x07,0x0c,0x11,0x83,0x2b,0x2b,0x17,0x1f,0x0c,0x0c,0x17,0x83, +0x25,0x25,0x2e,0x02,0x1f,0x00,0x06,0x84,0x03,0x2f,0xe1,0x39,0x39,0xcd,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x39,0x10,0xcd,0x3f,0xed,0x12,0x17,0x39,0x31,0x30,0x13,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14, +0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x01,0x23,0x11,0x14,0x16,0x33,0x20,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0xdb,0xb0,0xb0,0xa4,0x01,0x73,0x46,0x54,0x7c,0x60,0x64,0x85,0x52,0x60,0x47,0x7a,0x94,0x72,0xf1,0xef,0xfb,0xde,0x01,0x6d,0xc9,0x9f,0x9e,0x01,0x30,0x59,0x79,0x8a,0x6b,0x03,0x74,0x8c,0xfa,0x35, +0xfe,0xd1,0x18,0x2e,0xa6,0x4a,0x4f,0x3f,0x3e,0x4b,0x33,0x40,0x8c,0x62,0x84,0xaa,0xcd,0xd7,0x01,0xe8,0xfe,0x24,0x9d,0x89,0xa0,0x39,0x4b,0x30,0x38,0x8b,0x69,0x48,0x00,0x02,0x00,0x2b,0xfe,0x1e,0x04,0x3e,0x06,0x02,0x00,0x22,0x00,0x2a,0x00,0x49,0x40,0x27,0x0b,0x0d,0x95,0x08,0x1c,0x23,0x29,0x95,0x12,0x16,0x1a,0x1b,0x25,0x1b, +0x15,0x95,0x18,0x0f,0x00,0x02,0x95,0x20,0x01,0x00,0x00,0x04,0x84,0x0b,0x24,0x10,0x1c,0x1c,0x2c,0x25,0x15,0x1b,0x84,0x17,0x18,0x2f,0xcd,0xe1,0x39,0x39,0x12,0x39,0x2f,0x33,0x33,0xc4,0xf1,0xc2,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x39,0x10,0xcd,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x14, +0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x35,0x34,0x36,0x33,0x32,0x17,0x01,0x11,0x21,0x11,0x14,0x16,0x33,0x32,0x04,0x3e,0x32,0x3d,0xaa,0xb9,0x8f,0x4b,0x2c,0x32,0x3d,0xac,0x3a,0x5f,0xfe,0xf3,0xb0,0xb0,0xa4,0x01,0x02,0xb8,0x8d,0x4c,0x2c,0xfe,0x43,0xfe, +0xfe,0x46,0x51,0x3e,0x05,0x5c,0x1b,0xdf,0xfa,0xe7,0xa3,0xbe,0x13,0x93,0x1a,0xdf,0x81,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xfa,0x35,0xfe,0xd1,0xa0,0xa2,0xc0,0x12,0xfa,0xa6,0x02,0xde,0xfd,0xbf,0x67,0x58,0x00,0x00,0x02,0x00,0x2b,0xff,0xe8,0x05,0xaa,0x05,0x2f,0x00,0x2b,0x00,0x34,0x00,0x77,0x40,0x41,0x22,0x13,0x24,0x13,0x00,0x2a, +0x18,0x33,0x96,0x0f,0x24,0x1f,0x24,0x02,0x24,0x24,0x18,0x2e,0x96,0x2a,0x16,0x11,0x95,0x02,0x16,0x0a,0x0b,0x0e,0x0b,0x05,0x95,0x08,0x0f,0x1b,0x1d,0x95,0x18,0x10,0x0c,0x2c,0x22,0x31,0x20,0x13,0x00,0x27,0x20,0x83,0x15,0x15,0x27,0x0e,0x1b,0x1b,0x27,0x84,0x31,0x31,0x36,0x0e,0x05,0x0b,0x84,0x07,0x08,0x2f,0xcd,0xe1,0x39,0x39, +0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0xc4,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x39,0x10,0xcd,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x31,0x30,0x25,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14, +0x33,0x32,0x37,0x26,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x03,0x18,0xa0,0x8a,0xfe,0xed,0xb0,0xb0,0xa4,0x01,0x02,0xfe,0xfe,0x93,0x4a,0x66,0x58,0x01,0x22,0xf3,0x87,0x66,0x72,0x81,0x9e,0xc9,0x38,0xd2, +0x86,0x75,0x93,0xbd,0x9b,0xba,0x02,0x54,0x70,0x54,0x66,0x78,0x60,0x52,0x6a,0x01,0x3d,0x02,0x4f,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0xfd,0xc1,0xc3,0x42,0x84,0xb0,0xfd,0x01,0x33,0x32,0xa8,0x50,0xe1,0xb7,0x81,0x61,0x96,0x7a,0x5b,0x67,0x86,0xc6,0x42,0x3a,0x2b,0x56,0x00,0x00,0x01,0x00,0x35,0xfe,0x1e,0x05,0xc8,0x06,0x02,0x00,0x2e, +0x00,0x58,0x40,0x30,0x06,0x08,0x95,0x03,0x1c,0x28,0x2b,0x12,0x15,0x16,0x15,0x0d,0x95,0x2b,0x10,0x26,0x14,0x17,0x95,0x1a,0x0f,0x21,0x23,0x95,0x1e,0x01,0x06,0x06,0x0a,0x21,0x21,0x28,0x11,0x84,0x12,0x12,0x1a,0x00,0x84,0x0a,0x0a,0x30,0x17,0x14,0x26,0x84,0x19,0x1a,0x2f,0xcd,0xe1,0x39,0x39,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f, +0xe1,0x32,0x39,0x2f,0x11,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x39,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x3f,0xfd,0xc6,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15, +0x15,0x21,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x05,0xc8,0xbe,0xae,0x4c,0x35,0x3d,0x44,0xc9,0xed,0x7c,0xa2,0xa3,0xf0,0xa3,0xaf,0xaf,0xbf,0x97,0x4f,0x33,0x3a,0x40,0xbb,0x01,0x93,0x04,0x74,0xdc,0xa8,0xb2,0x04,0xe7,0xf7,0x1a,0x99,0x27,0x01,0x3e,0x02,0x60,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x03,0x74,0xfc,0x8c,0x03,0x74,0x8c,0x92, +0xa8,0xc8,0x16,0x94,0x1f,0xee,0x89,0xaa,0xc2,0xd8,0xce,0x00,0x00,0x01,0x00,0x98,0xff,0xe8,0x04,0x50,0x05,0xfc,0x00,0x24,0x00,0x3c,0x40,0x21,0x07,0x0d,0x18,0x1e,0x04,0x10,0x05,0x95,0x21,0x16,0x13,0x15,0x95,0x10,0x10,0x00,0x01,0x18,0x83,0x0d,0x0d,0x1e,0x00,0x13,0x13,0x1e,0x83,0x07,0x07,0x26,0x01,0x84,0x00,0x2f,0xe1,0x12, +0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x3f,0xfd,0xc6,0x3f,0xed,0x12,0x17,0x39,0x31,0x30,0x13,0x33,0x11,0x14,0x16,0x33,0x20,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x98,0xa4,0x9f,0xa0,0x01, +0x2d,0x58,0x79,0x8c,0x69,0xc8,0x9e,0x7c,0x61,0x65,0x84,0x52,0x61,0x47,0x7a,0x97,0x6f,0xf1,0xef,0xfb,0xdd,0x05,0xfc,0xfb,0x9c,0x9d,0x89,0xa0,0x39,0x4b,0x30,0x39,0x89,0x6a,0x81,0xa5,0x2e,0xa6,0x4a,0x4f,0x3f,0x3e,0x4b,0x33,0x41,0x8b,0x62,0x86,0xa8,0xcc,0xd8,0x00,0x00,0x02,0x00,0xa6,0x00,0x00,0x04,0x60,0x05,0xec,0x00,0x08, +0x00,0x0b,0x00,0x2b,0x40,0x16,0x0b,0x01,0x95,0x04,0x15,0x00,0x09,0x95,0x07,0x0f,0x05,0x00,0x09,0x00,0x03,0x03,0x0d,0x01,0x07,0x0b,0x84,0x04,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xc6,0x32,0x00,0x3f,0x3f,0xed,0x39,0x3f,0xed,0x39,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x11,0x33,0x11,0x21,0x07,0x21,0x11,0x04,0x60,0xfd,0xa0,0x02, +0x58,0xfc,0x4e,0xa4,0x03,0x16,0xf2,0xfd,0xdc,0x03,0xd1,0xfc,0xbb,0x8c,0x05,0xec,0xfe,0x14,0x8c,0xfd,0x0f,0x00,0x00,0x02,0x00,0x31,0x00,0x00,0x03,0xc2,0x05,0x9a,0x00,0x1b,0x00,0x37,0x00,0x22,0x40,0x10,0x27,0x0e,0x40,0x26,0x12,0x0a,0x0b,0x42,0x0a,0x0b,0x03,0x00,0x1c,0x39,0x0b,0x27,0x2f,0x33,0x10,0xc6,0x32,0x00,0x3f,0xcd, +0x2b,0x00,0x18,0x3f,0x1a,0xed,0x31,0x30,0x01,0x03,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x13,0x03,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13, +0x03,0xc2,0xb6,0x93,0x6b,0x09,0x05,0x04,0x03,0x0f,0x73,0x91,0xb5,0x8b,0x6b,0x09,0x03,0x05,0x02,0x10,0x76,0x8c,0x6c,0x08,0x04,0x04,0x01,0x10,0x67,0x82,0xb6,0x93,0x6b,0x09,0x05,0x04,0x03,0x0f,0x73,0x91,0xb5,0x8b,0x6b,0x09,0x03,0x05,0x02,0x10,0x76,0x8c,0x6c,0x08,0x04,0x04,0x01,0x10,0x67,0x05,0x9a,0xfd,0x78,0x01,0x90,0x21, +0x3b,0x24,0x36,0xfe,0x6e,0x02,0x88,0xfe,0x5a,0x24,0x34,0x21,0x39,0x01,0xa4,0xfe,0x5a,0x20,0x38,0x16,0x42,0x01,0xa6,0xfc,0xed,0xfd,0x79,0x01,0x90,0x21,0x3b,0x24,0x36,0xfe,0x6e,0x02,0x87,0xfe,0x5b,0x24,0x35,0x21,0x3a,0x01,0xa3,0xfe,0x5b,0x20,0x39,0x17,0x42,0x01,0xa5,0x00,0x00,0x02,0x00,0x74,0x00,0x00,0x03,0x7f,0x05,0x9a, +0x00,0x07,0x00,0x0f,0x00,0x37,0x40,0x1c,0x0b,0x96,0x0e,0x08,0x0d,0x12,0x00,0x05,0x03,0x96,0x06,0x03,0x01,0x00,0x08,0x09,0x05,0x04,0x0c,0x0d,0x08,0x7f,0x09,0x09,0x11,0x0c,0x7f,0x0d,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x3f,0xed,0xcd,0x32,0x3f,0x33,0xdd,0xed,0x31,0x30,0x01,0x23,0x11, +0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x03,0x7f,0x89,0xfe,0x06,0x88,0x03,0x0b,0x89,0xfe,0x06,0x88,0x03,0x0b,0x03,0xa2,0x01,0x74,0xfe,0x8c,0x01,0xf8,0xfa,0x66,0x01,0x74,0xfe,0x8c,0x01,0xf8,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x14,0x05,0xfc,0x00,0x13,0x00,0x23,0x00,0x3d,0x40,0x20,0x01,0x00, +0x14,0x96,0x15,0x15,0x1f,0x1a,0x95,0x0e,0x01,0x1f,0xec,0x07,0x16,0x01,0x14,0x11,0x83,0x18,0x14,0x18,0x14,0x1d,0x04,0x83,0x22,0x22,0x25,0x1d,0x84,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x11,0x39,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x15,0x16,0x16,0x15,0x14,0x06, +0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x35,0x36,0x36,0x35,0x34,0x23,0x22,0x11,0x11,0x10,0x21,0x32,0x36,0x35,0x10,0x02,0x9e,0xb4,0xc2,0xf7,0xcd,0xcd,0xdd,0xda,0xbc,0xa6,0xc6,0x95,0xfe,0xdf,0x78,0x98,0xd1,0xe7,0x01,0x10,0x83,0x8f,0x03,0x38,0x05,0x1d,0xd8,0xa6,0xc3,0xed,0xfb,0xea,0x02,0x8d, +0xbe,0xe4,0xb9,0x9b,0x7e,0xcc,0x78,0x82,0x14,0xa5,0x73,0xdc,0xfe,0xda,0xfd,0x87,0xfe,0xa6,0x90,0x87,0x01,0x30,0x00,0x02,0x00,0x14,0xff,0xe8,0x04,0xc4,0x06,0x02,0x00,0x2a,0x00,0x32,0x00,0x6b,0x40,0x3b,0x02,0x20,0x00,0x28,0x2b,0x00,0xec,0x2a,0x2b,0xec,0x20,0x20,0x1d,0x10,0x0e,0x95,0x13,0x10,0x2d,0x95,0x26,0x01,0x1d,0xec, +0x05,0x16,0x30,0x84,0x23,0x40,0x0b,0x0e,0x48,0x23,0x23,0x2b,0x0c,0x2a,0x2a,0x28,0x02,0x28,0x08,0x20,0x2b,0x1a,0x84,0x08,0x16,0x84,0x0c,0x0c,0x10,0x28,0x84,0x2b,0x2b,0x34,0x10,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0xd4,0xe1,0x11,0x39,0x11,0x12,0x39,0x10,0xca,0x2f,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x00,0x3f,0xed,0x3f, +0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0xfd,0xd4,0xed,0x12,0x39,0x11,0x12,0x39,0x31,0x30,0x01,0x06,0x07,0x02,0x00,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x12,0x13,0x26,0x00,0x35,0x34,0x36,0x33,0x20,0x13,0x36,0x37,0x05,0x02,0x23,0x22, +0x06,0x15,0x14,0x16,0x04,0xc4,0x42,0x59,0x0b,0xfe,0xed,0xea,0xbe,0xdc,0x16,0x15,0x58,0x26,0x20,0x32,0x31,0x65,0x7a,0x15,0x16,0x89,0x75,0x9e,0xb5,0x09,0xeb,0xfe,0xda,0xad,0x87,0x01,0x70,0x13,0x4d,0x4c,0xfe,0xc3,0x0e,0xd3,0x3f,0x4f,0xc7,0x02,0xe6,0x19,0x0f,0xfe,0xa6,0xfe,0x84,0xdc,0xc1,0x55,0x81,0x81,0x3a,0x78,0x11,0x89, +0x12,0x8a,0x6b,0x3f,0x81,0x81,0x50,0x84,0x97,0x01,0x29,0x01,0x12,0x08,0x01,0x18,0xd0,0x97,0xc9,0xfd,0x4a,0x0c,0x1f,0x35,0x02,0x35,0x71,0x5a,0x98,0xc9,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0xb8,0x05,0xb2,0x00,0x16,0x00,0x4f,0x40,0x27,0x12,0x0d,0x14,0x03,0x05,0x02,0x08,0x05,0x0d,0x0d,0x0a,0x07,0x00,0x02,0x91,0x14,0x04,0x0a, +0x03,0x07,0x00,0x12,0x00,0x03,0x03,0x18,0x05,0x0a,0x09,0x09,0x17,0x0e,0x0d,0x05,0x7e,0x08,0x08,0x18,0x17,0x11,0x12,0x39,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x11,0x33,0x33,0x2f,0x00,0x2f,0x3f,0x3f,0xed,0x32,0x11,0x12,0x39,0x2f,0x33,0x33,0x11,0x12,0x39,0x11,0x12,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x07, +0x01,0x11,0x23,0x11,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x36,0x36,0x33,0x32,0x17,0x04,0xb8,0x2c,0x2c,0x52,0x60,0xfe,0xd9,0xa8,0xfe,0x33,0xbf,0x01,0x41,0x06,0x1d,0x03,0x08,0x1a,0xc7,0x4b,0x8c,0x5e,0x36,0x2c,0x05,0x06,0x14,0xbe,0xfd,0xb2,0xfd,0xf2,0x02,0x0e,0x03,0x8c,0xfd,0x78,0x0c,0x4c,0x1c,0x3c,0x01,0x8e,0x96, +0x7c,0x14,0xff,0xff,0xff,0xb1,0x00,0x00,0x05,0xa0,0x05,0xb2,0x00,0x27,0x05,0xb5,0x00,0xe8,0x00,0x00,0x01,0x07,0x01,0x9f,0xfe,0xe3,0xff,0x99,0x00,0x14,0xb3,0x01,0x17,0x03,0x01,0xb8,0xff,0xc4,0xb4,0x17,0x17,0x09,0x09,0x25,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0xb8,0x06,0xf7,0x02,0x26,0x05,0xb5, +0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x96,0x01,0x70,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xd1,0x40,0x0a,0x26,0x20,0x09,0x16,0x25,0x02,0x01,0x23,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x03,0x00,0x60,0xfe,0x29,0x04,0xba,0x05,0xec,0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x45,0x40,0x25,0x0a,0x00,0x12,0x1a,0x95,0x0c, +0x09,0x10,0x02,0x1b,0x13,0x19,0x95,0x40,0x00,0x03,0x16,0x0f,0x83,0x16,0x0e,0x00,0x1d,0x03,0x42,0x13,0x0c,0x00,0x84,0x19,0x09,0x03,0x03,0x21,0x1d,0x83,0x06,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x32,0x32,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x33,0x1a,0xed,0x32,0x3f,0x3f,0x33,0xed,0x32,0x3f,0x31,0x30,0x05,0x11,0x23, +0x11,0x26,0x02,0x35,0x34,0x00,0x37,0x11,0x33,0x11,0x16,0x12,0x15,0x14,0x00,0x03,0x11,0x36,0x36,0x35,0x34,0x26,0x01,0x11,0x06,0x06,0x15,0x14,0x16,0x02,0xdf,0xa3,0xdd,0xff,0x01,0x04,0xd8,0xa3,0xdf,0xfc,0xfe,0xfe,0xd9,0x93,0xa0,0xa0,0xfe,0xca,0x91,0xa3,0xa3,0x18,0xfe,0x41,0x01,0xbf,0x11,0x01,0x22,0xdf,0xe7,0x01,0x20,0x17, +0x01,0xd4,0xfe,0x2c,0x10,0xfe,0xe1,0xe5,0xe3,0xfe,0xdc,0x03,0x91,0xfc,0xe4,0x12,0xd0,0xac,0xab,0xd1,0xfc,0xf6,0x03,0x1c,0x12,0xd2,0xac,0xa6,0xd3,0x00,0x00,0x02,0x00,0x00,0xff,0xea,0x06,0x2d,0x04,0x00,0x00,0x16,0x00,0x28,0x00,0x69,0x40,0x38,0x08,0x0b,0x20,0x20,0x0b,0x0f,0x12,0x01,0x09,0x04,0x12,0x18,0x01,0x10,0x95,0x15, +0x0f,0x24,0x1d,0xec,0x06,0x0b,0x16,0x17,0x83,0x01,0x01,0x03,0x18,0x83,0x10,0x0e,0x40,0x00,0x00,0x03,0x83,0x27,0x0e,0x22,0x1a,0x1f,0x42,0x09,0x08,0x22,0x84,0x1f,0x1f,0x2a,0x1a,0x83,0x0e,0x0e,0x2a,0x12,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x39,0x39,0x2b,0x01,0x10,0xf2,0xe1,0x32,0x18,0x2f,0x1a,0x10,0xdd,0xe1,0x10, +0xc9,0x2f,0xe1,0x00,0x3f,0x33,0xed,0x32,0x3f,0xed,0x32,0x32,0x32,0x5f,0x5e,0x5d,0x11,0x39,0x2f,0x11,0x39,0x31,0x30,0x01,0x23,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x22,0x07,0x35,0x36,0x33,0x21,0x05,0x21,0x06,0x15,0x14,0x16,0x33,0x32,0x11,0x35,0x33,0x15,0x10,0x33,0x32,0x36,0x35,0x34, +0x06,0x2d,0xb6,0x83,0xd5,0xbf,0xcf,0x64,0x04,0x67,0xce,0xb9,0xd1,0x84,0x7e,0x76,0x6a,0x96,0x05,0x2d,0xfe,0xa0,0xfc,0xd1,0x88,0x7b,0x6d,0xe8,0xa1,0xe5,0x6c,0x7c,0x03,0x74,0xdc,0xda,0xda,0xfa,0xbe,0xbe,0xfb,0xd9,0xd5,0xe1,0x58,0x9c,0x48,0x8c,0xe6,0xd6,0x96,0xa9,0x01,0x5a,0xfc,0xfc,0xfe,0xa6,0xaa,0x95,0xd6,0x00,0x00,0x01, +0x00,0x00,0xfe,0x96,0x04,0x90,0x04,0x18,0x00,0x33,0x00,0x83,0x40,0x28,0x06,0x08,0x95,0x40,0x03,0x34,0x80,0x11,0x29,0x27,0x15,0x29,0x15,0x17,0x2b,0x1f,0x1d,0x95,0x22,0x10,0x2b,0x0f,0x33,0x31,0x95,0x40,0x0c,0x16,0x17,0x29,0x11,0x2b,0x0f,0x27,0x15,0x25,0x17,0x06,0x06,0x0b,0xb8,0x01,0x2e,0x40,0x1a,0x33,0x2b,0x83,0x2c,0x2c, +0x00,0x2e,0x84,0x0f,0x0e,0x33,0x17,0x83,0x18,0x18,0x1a,0x1f,0x1f,0x25,0x42,0x25,0x84,0x1a,0x1a,0x35,0x1f,0x2f,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0xe1,0x2f,0xf0,0xe1,0x11,0x39,0x2f,0xe1,0x10,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x2f,0x3f,0x1a,0xed,0x32,0x3f,0x3f,0xed,0x32,0x11, +0x12,0x39,0x39,0x11,0x33,0x11,0x33,0x1a,0x10,0xdc,0x1a,0xed,0x32,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x35,0x26,0x26,0x35,0x34,0x37,0x06,0x07,0x06,0x07,0x06,0x07,0x23,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x00,0x37,0x36,0x37,0x33,0x02,0x15,0x14,0x16, +0x33,0x32,0x37,0x04,0x90,0x98,0x7d,0x3f,0x34,0x34,0x3b,0x39,0x46,0x77,0x85,0x14,0x06,0xf1,0x94,0x56,0x14,0x27,0xac,0xb0,0x56,0x50,0x2a,0x26,0x32,0x3e,0x8a,0x9c,0x15,0x01,0x8d,0x54,0x14,0x28,0xac,0xb0,0x57,0x4f,0x2a,0x26,0x44,0x87,0x9f,0x18,0x92,0x1f,0x57,0x48,0x2a,0x10,0xdb,0xb0,0x69,0x6a,0x06,0xdb,0x87,0x62,0x35,0x59, +0x01,0x72,0xf4,0x89,0x9f,0x15,0x89,0x16,0xde,0xbf,0x69,0x6a,0x01,0x65,0x65,0x35,0x59,0xfe,0x8e,0xf4,0x8c,0x9c,0x0f,0x00,0x00,0x02,0x00,0x56,0x00,0x00,0x05,0x48,0x05,0xb2,0x00,0x0e,0x00,0x1a,0x00,0x3c,0x40,0x1f,0x15,0x91,0x00,0x03,0x03,0x02,0x0f,0x91,0x40,0x09,0x04,0x02,0x0c,0x7d,0x18,0x0e,0x01,0x12,0x02,0x42,0x12,0x7d, +0x06,0x06,0x1b,0x01,0x7e,0x02,0x02,0x1c,0x1b,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x2f,0x3f,0x1a,0xed,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x26,0x00,0x35,0x34,0x00,0x21,0x20,0x00,0x15,0x14,0x00,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03, +0x23,0xa8,0xfc,0xfe,0xd7,0x01,0x63,0x01,0x18,0x01,0x1e,0x01,0x59,0xfe,0xd2,0xfe,0xb5,0xd2,0xf7,0xf8,0xd1,0xd2,0xf7,0xf7,0x01,0x64,0xfe,0x9c,0x01,0x64,0x17,0x01,0x29,0xdf,0xf1,0x01,0x3e,0xfe,0xcf,0xf1,0xde,0xfe,0xcc,0x03,0x9c,0xde,0xb3,0xb1,0xe0,0xde,0xb3,0xb1,0xe0,0x00,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0x50,0x04,0x18, +0x00,0x0e,0x00,0x1a,0x00,0x3a,0x40,0x1f,0x0f,0x95,0x09,0x10,0x02,0x1b,0x15,0x96,0x40,0x00,0x03,0x16,0x0c,0x83,0x18,0x0e,0x00,0x12,0x03,0x42,0x00,0x84,0x03,0x03,0x1c,0x12,0x83,0x06,0x06,0x1c,0x1b,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x33,0x1a,0xed,0x3f,0x3f,0xed,0x31,0x30, +0x05,0x11,0x23,0x11,0x26,0x02,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x02,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0xaa,0xa4,0xc5,0xe1,0x01,0x1a,0xf0,0xe5,0x01,0x01,0xe2,0xfe,0xf0,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab,0x14,0xfe,0x3d,0x01,0xc3,0x18,0x01,0x18,0xd8,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa, +0xdc,0xfe,0xe0,0x03,0x86,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0x00,0x00,0x02,0x00,0x5e,0xfe,0xae,0x04,0xa8,0x06,0x60,0x00,0x20,0x00,0x21,0x00,0x4d,0xb9,0x00,0x0d,0xff,0xd8,0x40,0x0f,0x13,0x1d,0x48,0x01,0x22,0x80,0x11,0x16,0x1c,0x0b,0x07,0x22,0x21,0x04,0x1c,0xb8,0xff,0xf0,0x40,0x15,0x10,0x16,0x48,0x1c,0x06,0x13,0x1f, +0x7e,0x01,0x03,0x03,0x08,0x13,0x7e,0x10,0x0e,0x0e,0x23,0x1a,0x7d,0x08,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0x33,0x2b,0x3f,0x12,0x39,0x39,0x12,0x39,0xc4,0x1a,0x10,0xce,0x31,0x30,0x2b,0x01,0x23,0x36,0x35,0x34,0x26,0x27,0x24,0x11,0x10,0x00,0x37,0x24,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14, +0x06,0x07,0x06,0x06,0x02,0x15,0x10,0x05,0x16,0x16,0x15,0x14,0x13,0x04,0x44,0xb4,0x4f,0x88,0xa3,0xfd,0xaa,0x01,0x15,0xfb,0x01,0x28,0x62,0x08,0x97,0x0d,0x84,0xca,0xca,0xdf,0x8f,0x01,0xcf,0xef,0xbb,0x21,0xfe,0xae,0x54,0x4c,0x3a,0x45,0x1b,0x62,0x02,0x68,0x01,0x13,0x01,0x79,0x47,0x3e,0x37,0x2f,0x1b,0x1c,0x24,0x28,0x5d,0x6c, +0x2f,0x2d,0x6e,0xfe,0xfa,0xbf,0xfe,0x23,0x57,0x2d,0x80,0x77,0x5a,0x06,0xa8,0x00,0x00,0x02,0x00,0x60,0xfe,0xc4,0x03,0xa4,0x04,0xc6,0x00,0x1e,0x00,0x1f,0x00,0x4f,0xb9,0x00,0x17,0xff,0xd8,0x40,0x1f,0x13,0x1d,0x48,0x1b,0x01,0x10,0x10,0x16,0x48,0x01,0x15,0x15,0x20,0x1f,0x10,0x0c,0x20,0x80,0x06,0xec,0x11,0x15,0x0b,0x0c,0x0c, +0x09,0x84,0x0e,0x0e,0x13,0x1d,0xb8,0x01,0x2e,0xb6,0x1a,0x18,0x18,0x21,0x04,0x83,0x13,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x12,0x39,0x2f,0xe1,0x33,0x11,0x33,0x00,0x3f,0xed,0x1a,0x10,0xce,0x3f,0x12,0x39,0x11,0x33,0x2b,0xc4,0x31,0x30,0x2b,0x01,0x0e,0x02,0x15,0x14,0x05,0x16,0x16,0x15,0x14,0x07,0x23,0x36,0x35,0x34,0x26,0x27, +0x24,0x11,0x10,0x25,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x37,0x03,0x10,0xb1,0xe2,0x75,0x01,0x25,0xc4,0xa3,0x50,0xb4,0x62,0x73,0x8d,0xfe,0x6e,0x01,0x52,0xd4,0x7a,0x0a,0x98,0x0c,0x0a,0x03,0xbe,0x36,0x5f,0xc8,0x94,0xfd,0x3a,0x28,0x7d,0x76,0x5f,0x58,0x50,0x54,0x3f,0x40,0x19,0x48,0x01,0x70,0x01,0x9e,0x8e,0x41,0x38, +0x33,0x1c,0x1a,0x24,0x25,0x85,0x20,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xa8,0x05,0x9a,0x00,0x11,0x00,0x38,0x40,0x0d,0x01,0x06,0x91,0x0d,0x0d,0x08,0x0c,0x91,0x09,0x03,0x08,0x01,0x10,0xb8,0x01,0x2c,0x40,0x0d,0xaf,0x03,0x01,0x03,0x03,0x08,0x0b,0x0b,0x13,0x0d,0x07,0x7e,0x08,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x12,0x39,0x2f, +0x5d,0xe1,0xc6,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0xfd,0xc6,0x31,0x30,0x01,0x23,0x36,0x35,0x34,0x23,0x21,0x11,0x23,0x11,0x21,0x15,0x21,0x11,0x21,0x32,0x15,0x14,0x03,0x70,0x8c,0x08,0x69,0xfe,0xe1,0xa8,0x02,0xec,0xfd,0xbc,0x01,0x25,0xf6,0x02,0x0e,0x1e,0x28,0x5a,0xfd,0x52,0x05,0x9a,0x98,0xfe,0x40,0xce,0x34,0x00,0x00,0x01, +0x00,0x90,0xfe,0x29,0x03,0x54,0x04,0x18,0x00,0x0e,0x00,0x2a,0x40,0x15,0x07,0x95,0x04,0x04,0x0f,0x01,0x95,0x0d,0x10,0x09,0x1b,0x05,0x05,0x00,0x00,0x10,0x04,0x04,0x07,0x84,0x0a,0x2f,0xe1,0x32,0x11,0x12,0x39,0x2f,0x33,0x2f,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x23,0x20,0x11,0x15,0x21,0x15,0x21,0x11,0x23, +0x11,0x34,0x12,0x33,0x33,0x03,0x54,0xee,0xfe,0xcd,0x01,0xf8,0xfe,0x08,0xa3,0xf4,0xe4,0xec,0x03,0x8e,0xfe,0xb0,0x4c,0x8c,0xfc,0xc3,0x04,0x02,0xea,0x01,0x03,0x00,0x00,0x01,0x00,0x48,0x00,0x00,0x04,0x7d,0x05,0x9a,0x00,0x07,0x00,0x36,0x40,0x1b,0x04,0x91,0x40,0x07,0x05,0x02,0x07,0x91,0x2b,0x30,0x05,0x03,0x02,0x03,0x00,0x02, +0x07,0x06,0x04,0x02,0x00,0x06,0x04,0x00,0x00,0x09,0x04,0x2f,0x12,0x39,0x2f,0x10,0xcd,0x10,0xcd,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x2f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x01,0x23,0x13,0x21,0x01,0x33,0x03,0x04,0x7d,0xfe,0xdb,0xb4,0xf2,0xfc,0xb2,0x01,0x1c,0xb4,0xe9,0x03,0x25,0xfc,0xdb,0x02,0x8e,0x03,0x0c, +0xfd,0x8b,0x00,0x01,0x00,0x33,0xfe,0x1e,0x03,0xd1,0x06,0x02,0x00,0x23,0x00,0x5e,0x40,0x32,0x12,0x95,0x40,0x23,0x1d,0x0b,0x23,0x95,0x2b,0x30,0x1a,0x18,0x95,0x1d,0x01,0x08,0x06,0x95,0x40,0x0b,0x1c,0x11,0x00,0x0e,0x08,0x08,0x00,0x03,0x84,0x0e,0x0e,0x00,0x1a,0x1a,0x15,0x12,0x12,0x20,0x42,0x23,0x12,0x20,0x84,0x15,0x15,0x00, +0x00,0x25,0x12,0x24,0x10,0xce,0x11,0x39,0x2f,0x39,0x2f,0xe1,0x11,0x39,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0x10,0xf1,0xe1,0x11,0x39,0x2f,0x11,0x12,0x39,0x00,0x3f,0x1a,0xed,0x32,0x3f,0xed,0x32,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x03,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x13,0x37, +0x21,0x13,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x03,0x07,0x03,0xd1,0x5d,0x7a,0x41,0x39,0x2b,0x21,0x2c,0x38,0x74,0x92,0x81,0x21,0xfd,0x3b,0x5d,0x7a,0x41,0x39,0x2a,0x22,0x2c,0x38,0x74,0x92,0x81,0x21,0x02,0x56,0xfe,0xfc,0xfe,0xab,0x91,0x56,0x6c,0x14,0x89,0x17,0xb3,0x87,0xaa,0x01,0x6c,0x5d, +0x01,0x04,0x01,0x55,0x90,0x5a,0x69,0x15,0x8a,0x16,0xb2,0x88,0xaa,0xfe,0x94,0x5c,0x00,0x01,0x00,0x00,0x00,0x00,0x04,0x85,0x05,0xb2,0x00,0x18,0x00,0x94,0x40,0x5c,0x5d,0x05,0x6d,0x05,0x7d,0x05,0x03,0x05,0x08,0x0a,0x0d,0x0e,0x04,0x0e,0x2c,0x04,0x5c,0x04,0x02,0x04,0x0e,0x01,0x5b,0x08,0x01,0x06,0x05,0x08,0x03,0x07,0x29,0x0d, +0x01,0x29,0x0a,0x79,0x0a,0x89,0x0a,0x03,0x0b,0x0a,0x0d,0x03,0x0c,0x0a,0x07,0x01,0x05,0x0c,0x01,0x5f,0x0c,0x01,0x07,0x0c,0x07,0x0c,0x0f,0x01,0x11,0x0f,0x91,0x14,0x04,0x06,0x07,0x07,0x0b,0x0f,0x0c,0x01,0x0c,0x0c,0x3a,0x0e,0x01,0x0e,0x05,0x08,0x0a,0x0d,0x04,0x06,0x11,0x01,0x17,0x7d,0x03,0x03,0x1a,0x11,0x2f,0x12,0x39,0x2f, +0xe1,0x33,0x12,0x17,0x39,0x5d,0x39,0x2f,0x5d,0x33,0x33,0x2f,0x33,0x00,0x3f,0xfd,0xc6,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x5d,0x11,0x17,0x33,0x5d,0x5d,0x11,0x17,0x33,0x5d,0x11,0x39,0x39,0x5d,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x31,0x30,0x00,0x5d,0x21,0x23,0x12,0x11,0x34,0x27,0x01,0x27,0x01,0x26,0x27,0x01,0x27,0x01, +0x26,0x23,0x22,0x07,0x35,0x36,0x21,0x20,0x00,0x11,0x10,0x03,0xfc,0xba,0x97,0x0e,0xfe,0x4d,0x54,0x01,0xe4,0x20,0x32,0xfd,0xfa,0x56,0x02,0x00,0x7c,0xb1,0xff,0xce,0xd2,0x01,0x03,0x01,0x3c,0x01,0x74,0x01,0x01,0x01,0x4d,0x58,0x5a,0xfe,0xae,0x6c,0x01,0x7c,0x60,0x4e,0xfe,0x6c,0x6c,0x01,0x92,0x6c,0xda,0xc2,0xb0,0xfe,0x1a,0xfe, +0x94,0xfe,0xc4,0x00,0x00,0x01,0xff,0x7b,0xfe,0x29,0x03,0x77,0x06,0x02,0x00,0x14,0x00,0x8d,0x40,0x5a,0x05,0x08,0x0a,0x0d,0x0e,0x04,0x0e,0x06,0x08,0x05,0x03,0x07,0x66,0x0d,0x01,0x0a,0x0d,0x01,0x0a,0x0a,0x01,0x0b,0x0d,0x0a,0x03,0x0c,0x16,0x07,0x76,0x07,0x02,0x07,0x76,0x0c,0x01,0x1d,0x0c,0x01,0x0c,0x0b,0x0e,0x7b,0x0e,0x02, +0x0c,0x04,0x2c,0x04,0x5c,0x04,0x6c,0x04,0xcc,0x04,0xdc,0x04,0x06,0x0e,0x0c,0x07,0x04,0x04,0x01,0x1b,0x0f,0xee,0x10,0x01,0x06,0x07,0x07,0x0b,0x0c,0x0c,0x04,0x0e,0x01,0x05,0x08,0x0a,0x0d,0x04,0x0f,0x13,0x84,0x03,0x03,0x16,0x15,0x0f,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x12,0x17,0x39,0x33,0x39,0x39,0x39,0x2f,0x33,0x33,0x2f,0x33, +0x00,0x3f,0xed,0x3f,0x17,0x39,0x5d,0x5d,0x2f,0x5d,0x5d,0x2f,0x5d,0x11,0x17,0x33,0x5d,0x5d,0x5d,0x11,0x17,0x33,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x31,0x30,0x01,0x23,0x12,0x11,0x34,0x27,0x05,0x27,0x25,0x26,0x27,0x05,0x27,0x25,0x02,0x25,0x35,0x04,0x00,0x11,0x10,0x02,0xa4,0xbc,0xed,0x08,0xfe,0x2f,0x31,0x01,0xe7,0x1e,0x3e, +0xfe,0x1a,0x30,0x01,0xd0,0xfa,0xfe,0x65,0x01,0xc2,0x02,0x3a,0xfe,0x29,0x01,0x4b,0x01,0x8a,0x4f,0x41,0xaa,0x82,0xb2,0x7c,0x7a,0xb2,0x81,0xac,0x01,0x88,0x4b,0xa6,0x58,0xfd,0x27,0xfe,0x2f,0xfe,0x94,0x00,0x00,0x01,0x00,0xb8,0xfe,0x1e,0x06,0x66,0x05,0x9a,0x00,0x2f,0x00,0x85,0x40,0x4b,0x3a,0x23,0x01,0x0c,0x91,0x00,0x07,0x10, +0x07,0x02,0x09,0x03,0x07,0x03,0x0a,0x91,0x09,0x10,0x91,0x09,0x03,0x1c,0x0d,0x18,0x01,0x0d,0x04,0x18,0x14,0x1e,0x2a,0x22,0x91,0x40,0x16,0x1a,0x13,0x2e,0x26,0x1e,0x03,0x03,0x10,0x10,0x40,0x09,0x14,0x48,0x10,0x02,0x13,0x0a,0x18,0x27,0x26,0x0a,0x0a,0x1d,0x2f,0x7e,0x13,0x2e,0x0e,0x27,0x1e,0x26,0x42,0x27,0x7e,0x26,0x26,0x31, +0x1e,0x7e,0x1d,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf2,0x32,0xe1,0x11,0x39,0x18,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x39,0x2b,0x11,0x33,0x00,0x3f,0x33,0x33,0x3f,0x33,0x1a,0xed,0x32,0x12,0x39,0x39,0x5f,0x5e,0x5d,0x3f,0x33,0xed,0x10,0xed,0x10,0xdc,0x5f,0x5e,0x5d,0xed,0x31,0x30,0x01,0x5d,0x01,0x10,0x00,0x21,0x22, +0x27,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x37,0x23,0x06,0x23,0x22,0x27,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x06,0x66,0xfe,0xc1,0xfe,0xa4,0x47,0x7a,0x7a,0x30,0x68,0x56,0x56,0x70,0x38,0x72,0x71,0x50,0xf7,0xe5,0x0f, +0x06,0x6d,0xca,0xd7,0x48,0x72,0xe4,0xfe,0xac,0xa8,0x67,0x7d,0x67,0x91,0xa8,0xe2,0x6c,0x8c,0xa8,0x01,0x29,0xfe,0x62,0xfe,0x93,0x0c,0x0b,0x17,0x96,0x19,0x0b,0x0c,0xe8,0xfc,0xb2,0xd4,0xd4,0x01,0xc4,0x03,0xee,0xfc,0x26,0xa5,0x9c,0xbf,0x86,0x03,0xd6,0xfc,0x12,0xfe,0xd3,0xb5,0x90,0x03,0xd6,0x00,0x00,0x01,0x00,0xa6,0xfe,0x1c, +0x06,0x54,0x04,0x00,0x00,0x30,0x00,0x7d,0x40,0x49,0x0c,0x95,0x04,0x07,0x14,0x07,0x02,0x07,0x03,0x0a,0x95,0x09,0x10,0x95,0x09,0x42,0x03,0x1c,0x19,0x13,0x1b,0x2f,0x27,0x1f,0x0f,0x2b,0x23,0x95,0x40,0x16,0x1b,0x16,0x03,0x10,0x2d,0x10,0x01,0x02,0x0f,0x10,0x1f,0x10,0x02,0x09,0x03,0x10,0x40,0x0c,0x15,0x48,0x10,0x13,0x0a,0x0a, +0x1e,0x30,0x84,0x13,0x2f,0x0e,0x28,0x1f,0x27,0x42,0x19,0x28,0x84,0x27,0x27,0x32,0x1f,0x84,0x1e,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x39,0x2b,0x01,0x10,0xf2,0x32,0xe1,0x11,0x39,0x18,0x2f,0x12,0x39,0x2b,0x5f,0x5e,0x5d,0x5f,0x5d,0x11,0x33,0x00,0x3f,0x33,0x1a,0xed,0x32,0x3f,0x33,0x33,0x12,0x39,0x39,0x3f,0xe6,0xed,0x10,0xed,0x10, +0xdc,0x5d,0xed,0x31,0x30,0x01,0x10,0x00,0x21,0x22,0x27,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x13,0x23,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x06,0x54,0xfe,0xc9,0xfe,0xa5,0x46,0x6f,0x6f,0x34, +0x70,0x4a,0x56,0x6c,0x33,0x6c,0x6b,0x51,0xef,0xe8,0x0c,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0xfe,0xae,0xa4,0x69,0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0x01,0x5c,0xfe,0x3d,0xfe,0x85,0x0c,0x0b,0x19,0x8e,0x16,0x0b,0x0b,0xf5,0x01,0x03,0xba,0x75,0x5f,0xd4,0x01,0xa1,0x02,0x77,0xfd,0xb4,0xaa,0x98,0xc0,0x86,0x02,0x48,0xfd, +0xa0,0xfe,0xd2,0xb5,0x91,0x02,0x48,0x00,0x00,0x01,0x00,0x33,0x00,0x00,0x04,0x2f,0x05,0xb2,0x00,0x18,0x00,0x42,0x40,0x23,0x0b,0x09,0x1b,0x09,0x02,0x02,0x16,0x16,0x14,0x91,0x04,0x04,0x17,0x01,0x0d,0x0f,0x91,0x0a,0x04,0x17,0x03,0x01,0x0d,0x0d,0x16,0x11,0x00,0x7e,0x16,0x01,0x01,0x1a,0x11,0x7e,0x07,0x2f,0xe1,0x12,0x39,0x2f, +0x33,0xe1,0x11,0x12,0x39,0x2f,0x00,0x2f,0x3f,0x3f,0xed,0x32,0x11,0x12,0x39,0x2f,0xed,0x32,0x12,0x39,0x31,0x30,0x01,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x00,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x14,0x16,0x33,0x32,0x37,0x11,0x33,0x04,0x2f,0xa8,0xbc,0xc3,0xd5,0xff,0x00,0xb4,0x98,0x40,0x3f,0x3d,0x3a,0xac, +0xa9,0x94,0xb2,0xbd,0xa8,0x02,0x7b,0x73,0x01,0x06,0xd8,0xcf,0xfd,0x18,0x96,0x1a,0xfe,0xce,0x98,0xb4,0x70,0x02,0x8a,0x00,0x00,0x01,0x00,0x33,0xfe,0x29,0x03,0x85,0x04,0x18,0x00,0x18,0x00,0x42,0x40,0x26,0x0a,0x08,0x1a,0x08,0x02,0x0a,0x06,0x1a,0x06,0x02,0x01,0x1b,0x03,0x05,0x17,0x0c,0x0e,0x95,0x09,0x10,0x17,0x0f,0x13,0x95, +0x05,0x16,0x0c,0x0c,0x10,0x18,0x84,0x01,0x17,0x17,0x1a,0x10,0x84,0x07,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x32,0x11,0x12,0x39,0x3f,0x31,0x30,0x01,0x5d,0x5d,0x01,0x23,0x11,0x23,0x06,0x23,0x20,0x11,0x10,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11, +0x33,0x03,0x85,0xa3,0x05,0x71,0xd4,0xfe,0x9b,0x01,0x48,0x3a,0x35,0x34,0x35,0xaa,0x71,0x7c,0x7a,0xa4,0xa3,0xfe,0x29,0x02,0x73,0xb4,0x02,0x18,0x02,0x18,0x14,0x8d,0x17,0xfe,0x7a,0xd4,0xc2,0xbc,0x8e,0x02,0x44,0x00,0x00,0x01,0x00,0x00,0xfe,0x1e,0x04,0xb8,0x05,0x9a,0x00,0x22,0x00,0x5e,0x40,0x37,0x2b,0x10,0x3b,0x10,0x02,0x44, +0x01,0x01,0x0b,0x91,0x00,0x06,0x10,0x06,0x02,0x06,0x02,0x09,0x91,0x08,0x0f,0x91,0x08,0x02,0x1c,0x1d,0x18,0x18,0x16,0x91,0x1f,0x1f,0x19,0x1c,0x03,0x19,0x02,0x0f,0x0f,0x40,0x09,0x12,0x48,0x0f,0x09,0x22,0x7e,0x13,0x13,0x24,0x1d,0x18,0x7e,0x1a,0x09,0x2f,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2b,0x11,0x33,0x00,0x2f, +0x3f,0x12,0x39,0x2f,0xed,0x32,0x12,0x39,0x3f,0x33,0xed,0x10,0xed,0x10,0xdc,0x5d,0xed,0x31,0x30,0x01,0x5d,0x5d,0x25,0x10,0x21,0x22,0x27,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x12,0x11,0x35,0x34,0x26,0x23,0x22,0x07,0x11,0x23,0x11,0x33,0x11,0x36,0x33,0x32,0x12,0x15,0x04,0xb8,0xfd,0x71,0x45,0x77,0x77, +0x38,0x68,0x56,0x56,0x70,0x36,0x73,0x72,0x50,0xf7,0xe8,0xaa,0x97,0xbf,0xac,0xa8,0xa8,0xb9,0xcd,0xd3,0xfb,0xec,0xfd,0x32,0x0c,0x0b,0x17,0x96,0x19,0x0b,0x0c,0x01,0x13,0x01,0x21,0xc8,0xb0,0xcf,0x71,0xfd,0x40,0x05,0x9a,0xfd,0xb6,0x78,0xfe,0xec,0xe5,0x00,0x00,0x02,0xff,0xec,0xff,0xe8,0x03,0xe8,0x04,0x18,0x00,0x26,0x00,0x2f, +0x00,0xc5,0x40,0x59,0x1c,0x1d,0x16,0x1b,0x0d,0x0e,0x1a,0x0e,0x27,0x0c,0x28,0x18,0x17,0x1d,0x16,0x2f,0x19,0x2f,0x1c,0x17,0x1d,0x16,0x1d,0x27,0x0d,0x0c,0x28,0x0c,0x1d,0x21,0x15,0x0c,0x08,0x29,0x0e,0x0f,0x95,0x2e,0x2f,0x2e,0x25,0xec,0x04,0x00,0x04,0x10,0x04,0x02,0x2e,0x04,0x2e,0x04,0x08,0x28,0x29,0x95,0x16,0x19,0x1a,0x03, +0x15,0x10,0x08,0xec,0x21,0x16,0x00,0x1d,0x16,0x1e,0x12,0x28,0x0c,0x0b,0x2c,0x0d,0x0e,0x1b,0x1c,0x04,0x1a,0x12,0x17,0x18,0x27,0x2f,0x04,0x2c,0x1a,0xb8,0x01,0x2e,0xb3,0x19,0x19,0x0b,0x2c,0xb8,0x01,0x2e,0x40,0x0b,0x12,0x12,0x01,0x1e,0x84,0x0b,0x0b,0x31,0x00,0x84,0x01,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12, +0x39,0x2f,0xe1,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x2f,0x3f,0xed,0x3f,0x17,0x33,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0x87,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x04,0xc0,0x08,0xc0,0x10,0x87, +0xc0,0x04,0xc0,0x08,0xc0,0x31,0x30,0x33,0x23,0x36,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x37,0x33,0x06,0x07,0x16,0x15,0x14,0x02,0x23,0x22,0x27,0x26,0x23,0x22,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x32,0x8c,0xa0,0x13,0x85,0x68,0x65,0x6f,0x62,0x38, +0x5e,0x8c,0x38,0xa6,0xbe,0x78,0xa2,0xb9,0x96,0xa6,0x8b,0x1d,0x15,0x9b,0x27,0x42,0x76,0xec,0xa6,0x82,0x70,0x56,0x22,0x48,0x02,0x14,0x62,0x7d,0x52,0x5e,0x87,0x8c,0x8f,0xa4,0x64,0x58,0xdc,0x9d,0x78,0x63,0xa8,0x83,0x68,0x71,0x99,0x6c,0x32,0x3a,0x6f,0x61,0x98,0xc0,0xd6,0xfe,0xce,0x6a,0x52,0x02,0x91,0x59,0x43,0x35,0x68,0x00, +0x00,0x01,0x00,0x48,0xff,0xe8,0x04,0xae,0x05,0xb2,0x00,0x29,0x00,0x52,0x40,0x2e,0x03,0x28,0x13,0x28,0x02,0x0c,0x1c,0x06,0x23,0x04,0x03,0x29,0x29,0x19,0x26,0x13,0x13,0x03,0x0f,0x91,0x19,0x04,0x26,0x91,0x03,0x13,0x13,0x11,0x7e,0x16,0x1c,0x7d,0x0c,0x16,0x0c,0x16,0x0c,0x06,0x00,0x7e,0x29,0x29,0x2b,0x23,0x7d,0x06,0x2f,0xe1, +0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x32,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x11,0x12,0x39,0x2f,0x11,0x17,0x39,0x31,0x30,0x5d,0x01,0x06,0x00,0x21,0x22,0x24,0x35,0x34,0x36,0x36,0x25,0x36,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x32,0x00,0x15,0x14,0x06,0x06, +0x07,0x05,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x04,0xae,0x17,0xfe,0xb7,0xfe,0xf4,0xe9,0xfe,0xef,0x68,0xb4,0x01,0x4e,0xda,0xd0,0x78,0x9c,0x14,0xa4,0x16,0xa7,0x93,0xbf,0x01,0x41,0x3a,0x72,0x33,0xfe,0x73,0xd8,0xb4,0xa0,0xc0,0xf2,0x0c,0x02,0x0a,0xfe,0xfe,0xdc,0xfd,0xbb,0x78,0xaf,0x5c,0x4d,0x30,0x68,0x6a,0xa8,0x6c,0x25, +0x2f,0x30,0x32,0x69,0x8d,0xff,0x00,0xaa,0x46,0x6c,0x4d,0x0c,0x61,0x46,0xb4,0x80,0xa3,0xd3,0xb8,0x00,0x00,0x01,0x00,0x3e,0xff,0xe8,0x03,0x90,0x04,0x18,0x00,0x27,0x00,0x6e,0x40,0x29,0x05,0x09,0x15,0x09,0x02,0x0b,0x09,0x24,0x1f,0x1e,0x03,0x20,0x27,0x30,0x27,0x02,0x27,0x27,0x19,0x24,0x13,0x40,0x09,0x0c,0x48,0x13,0x13,0x03, +0x0f,0x95,0x19,0x10,0x24,0x95,0x03,0x16,0x1c,0x84,0x0c,0x13,0x11,0xb8,0x01,0x2e,0x40,0x0d,0x10,0x16,0x20,0x16,0x30,0x16,0x03,0x16,0x0c,0x16,0x0c,0x06,0x00,0xb8,0x01,0x2e,0xb5,0x27,0x27,0x29,0x21,0x84,0x06,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xe1,0x32,0x10,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39, +0x2f,0x2b,0x11,0x12,0x39,0x2f,0x5d,0x11,0x39,0x39,0x11,0x39,0x39,0x5d,0x31,0x30,0x01,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x32,0x04,0x15,0x14,0x06,0x04,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x03,0x90,0x0a,0xf6,0xd2,0xad,0xd3,0x4a, +0x85,0xe1,0x97,0xa2,0x51,0x5d,0x21,0x98,0x1e,0x7c,0x6b,0x9d,0x01,0x05,0x6b,0xfe,0xa0,0x7c,0x7c,0x68,0x8c,0xa8,0x04,0x01,0xa0,0xd0,0xe8,0xb0,0x89,0x56,0x7e,0x47,0x34,0x23,0x44,0x41,0x78,0x46,0x29,0x31,0x31,0x37,0x53,0x6d,0xca,0x75,0x52,0x76,0x47,0x58,0x4b,0x50,0x65,0x9f,0x8f,0x00,0x00,0x02,0x00,0x14,0x00,0x00,0x04,0xb0, +0x05,0xb2,0x00,0x1c,0x00,0x1f,0x00,0xce,0x40,0x7a,0x1d,0x1e,0x8d,0x1e,0xbd,0x1e,0x03,0x74,0x0f,0xe4,0x0f,0x02,0x1e,0x1b,0x1f,0x19,0x0f,0x02,0x10,0x1c,0x0e,0x1c,0x1e,0x1f,0x19,0x04,0x03,0x02,0x10,0x1d,0x05,0x1d,0x0f,0x03,0x02,0x10,0x02,0x1e,0x1b,0x1a,0x1f,0x19,0x1f,0x10,0x42,0x0e,0x72,0x0e,0x82,0x0e,0x02,0x16,0x0e,0x46, +0x0e,0x56,0x0e,0x03,0x0e,0x1c,0x0c,0x19,0x42,0x05,0x76,0x05,0x01,0x05,0x04,0x1a,0x03,0x1b,0x1e,0x1d,0x07,0x1f,0x17,0x09,0x15,0x03,0x07,0x91,0x12,0x0c,0x04,0x1c,0x02,0x76,0x02,0x01,0x0f,0x02,0x1f,0x02,0x02,0x02,0x1f,0x91,0x01,0x10,0x19,0x19,0x1f,0x1f,0x02,0x15,0x0e,0x05,0x05,0x1d,0x1d,0x1c,0x09,0x15,0x09,0x15,0x09,0x02, +0x1c,0x1c,0x21,0x02,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x12,0x39,0x11,0x33,0x11,0x12,0x39,0x12,0x39,0x11,0x33,0x00,0x2f,0xed,0x39,0x5d,0x5d,0x11,0x33,0x3f,0x33,0xed,0x17,0x32,0x11,0x17,0x39,0x5d,0x10,0xe4,0x11,0x12,0x39,0x5d,0x5d,0x10,0xe6,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0x0e,0xc0, +0x10,0x87,0x08,0xc0,0x05,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x01,0x3d,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x21,0x21,0x35,0x01,0x27,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x07,0x01,0x27,0x01,0x01,0x04,0xb0,0xfb,0x64,0x01,0xf4,0x37,0x3b,0x46,0x2d, +0x2c,0x2c,0x2b,0x37,0x5a,0x8a,0x51,0x52,0x8b,0x59,0x36,0x2c,0x2c,0x2c,0x2c,0x4a,0x3c,0x36,0x01,0xf6,0xee,0xfe,0x9e,0xfe,0x9e,0x31,0x03,0xc1,0x6a,0x72,0x4c,0x14,0x98,0x14,0x76,0x9c,0x9e,0x74,0x14,0x98,0x14,0x49,0x75,0x66,0xfc,0x3b,0x67,0x02,0xb4,0xfd,0x4c,0x00,0x00,0x02,0x00,0x14,0x00,0x00,0x03,0xcd,0x04,0x18,0x00,0x1a, +0x00,0x1d,0x00,0x76,0x40,0x47,0x03,0x0e,0x33,0x0e,0x43,0x0e,0xd3,0x0e,0x04,0x0e,0x0b,0x19,0x03,0xcb,0x1c,0xdb,0x1c,0x02,0x8f,0x1c,0x01,0x14,0x1c,0x01,0x1c,0x03,0x1d,0x08,0x14,0x16,0x03,0x06,0x95,0x11,0x0b,0x10,0x1a,0x02,0x0b,0x02,0x2b,0x02,0x02,0x02,0x1d,0x95,0x01,0x19,0x03,0x1a,0x1d,0x14,0x02,0x1b,0x1a,0x08,0x0f,0x14, +0x01,0x00,0x08,0x01,0x14,0x08,0x14,0x08,0x02,0x1a,0x1a,0x1f,0x02,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x11,0x12,0x39,0x11,0x12,0x39,0x12,0x39,0x39,0x00,0x2f,0xed,0x39,0x5d,0x11,0x33,0x3f,0x33,0xed,0x17,0x32,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x11,0x33,0x12,0x39,0x5d,0x31,0x30,0x21,0x21,0x35,0x01,0x27,0x26, +0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x07,0x01,0x27,0x03,0x03,0x03,0xcd,0xfc,0x47,0x01,0x88,0x25,0x3b,0x40,0x21,0x21,0x20,0x2c,0x50,0x66,0x34,0x35,0x67,0x4f,0x2b,0x21,0x21,0x20,0x46,0x3c,0x22,0x01,0x8b,0xe3,0xfc,0xfc,0x23,0x02,0xba,0x44,0x6d,0x0f,0x8b,0x0e,0x48, +0x5e,0x5f,0x47,0x0e,0x8b,0x0f,0x6d,0x3f,0xfd,0x41,0x69,0x01,0xc6,0xfe,0x3a,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x04,0xee,0x06,0x04,0x00,0x1e,0x00,0x2a,0x00,0x74,0x40,0x34,0x33,0x18,0x43,0x18,0x53,0x18,0x03,0x0c,0x09,0x1c,0x09,0x2c,0x09,0x03,0x99,0x05,0x01,0x0b,0x13,0x1f,0x91,0x0d,0x0d,0x19,0x25,0x03,0x91,0x0f,0x1d,0x1f, +0x1d,0x2f,0x1d,0x03,0x1d,0x19,0x01,0x91,0x00,0x07,0x91,0x00,0x42,0x19,0x01,0x25,0x91,0x13,0x13,0x1b,0x05,0x05,0xb8,0xff,0xc0,0x40,0x0e,0x0c,0x12,0x48,0x01,0x05,0x01,0x0a,0x10,0x7d,0x28,0x28,0x2c,0x0a,0x22,0xb9,0x01,0x2f,0x00,0x16,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x2f,0x2b,0x11,0x33,0x00,0x3f,0xed,0x3f, +0xe6,0xed,0x10,0xed,0x10,0xdc,0x5d,0xed,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x01,0x15,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x06,0x03,0x33,0x36,0x21,0x32,0x00,0x15,0x14,0x00,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x16,0x33,0x32,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x04, +0xc2,0x50,0x68,0x33,0x6a,0x6b,0x4a,0xc2,0xc7,0x15,0x09,0xa3,0x01,0x07,0xf6,0x01,0x2b,0xfe,0xb9,0xff,0xfe,0xe6,0xfe,0xd0,0x01,0x23,0x01,0x3d,0x44,0x6e,0x6d,0x35,0x60,0xfe,0x3e,0xb4,0xe2,0xd7,0xb9,0xb7,0xdd,0xd7,0x06,0x04,0x96,0x18,0x0a,0x0a,0xe7,0xfe,0xef,0xc8,0xfe,0xce,0xf0,0xf2,0xfe,0xc2,0x01,0x58,0x01,0x45,0x01,0xda, +0x01,0xa3,0x0a,0x0a,0xfd,0xb4,0xd8,0xa5,0xbe,0xe8,0xe0,0xb1,0xb2,0xe0,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x06,0x00,0x1e,0x00,0x2c,0x00,0x75,0x40,0x2f,0x6b,0x1e,0x7b,0x1e,0x02,0x0c,0x09,0x1c,0x09,0x2c,0x09,0x8c,0x09,0x04,0x0b,0x1f,0x1f,0x2a,0x95,0x0d,0x0d,0x19,0x24,0x03,0x95,0x1d,0x40,0x09,0x0e,0x48,0x1d,0x19, +0x01,0x95,0x00,0x42,0x07,0x95,0x19,0x01,0x24,0x95,0x13,0x16,0x1b,0x05,0x05,0xb8,0xff,0xc0,0x40,0x18,0x0f,0x24,0x48,0x0a,0x05,0x21,0x6f,0x01,0x7f,0x01,0x8f,0x01,0x03,0x01,0x01,0x16,0x10,0x83,0x27,0x27,0x2e,0x21,0x83,0x16,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x5d,0x12,0x39,0x39,0x2b,0x11,0x33,0x00,0x3f,0xed,0x3f, +0xed,0xf6,0xed,0x10,0xdc,0x2b,0xed,0x11,0x12,0x39,0x2f,0xed,0x32,0x12,0x39,0x31,0x30,0x5d,0x5d,0x01,0x15,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x02,0x03,0x33,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x16,0x33,0x32,0x01,0x06,0x15,0x14,0x12,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06, +0x03,0xdb,0x38,0x4f,0x18,0x39,0x3a,0x2f,0xac,0xc6,0x1a,0x04,0x81,0xe1,0xdc,0x01,0x00,0xfe,0xe8,0xea,0xed,0xfe,0xff,0x01,0x21,0x01,0x21,0x20,0x45,0x45,0x1e,0x44,0xfd,0x5e,0x04,0xb1,0x9f,0xa0,0xb0,0xb3,0xa3,0x63,0xb3,0x06,0x06,0x8b,0x11,0x04,0x04,0xfe,0xfc,0xfe,0xfc,0xae,0xfe,0xe4,0xf8,0xf4,0xfe,0xd8,0x01,0x57,0x01,0x40, +0x01,0xc1,0x01,0xc2,0x04,0x04,0xfc,0xcc,0x41,0x35,0xd8,0xfe,0xfa,0xcf,0xbd,0xc3,0xcd,0x71,0x00,0x01,0x00,0x0a,0x00,0x00,0x04,0x7b,0x05,0x9a,0x00,0x13,0x00,0x36,0x40,0x17,0x09,0x01,0x04,0x91,0x12,0x0f,0x0f,0x03,0x10,0x03,0x03,0x12,0x01,0x7e,0x0f,0x04,0x04,0x0c,0x00,0x00,0x15,0x09,0x07,0xb9,0x01,0x2e,0x00,0x0c,0x2f,0xe1, +0x32,0x12,0x39,0x2f,0x12,0x39,0x2f,0x33,0xe1,0x32,0x00,0x2f,0x3f,0x12,0x39,0x2f,0x33,0xfd,0x32,0xc6,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x22,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x21,0x33,0x11,0x33,0x11,0x21,0x04,0x7b,0xfe,0x33,0xa8,0xff,0x00,0x68,0x08,0x8e,0x0e,0x01,0x00,0xfc,0xa8,0x01,0xcd,0x04,0x00,0xfc,0x00,0x04, +0x00,0x5a,0x28,0x1e,0x32,0x34,0xd2,0x01,0x02,0xfe,0xfe,0x00,0x00,0x01,0x00,0x00,0xfe,0x96,0x03,0x4e,0x05,0x2f,0x00,0x18,0x00,0x3a,0x40,0x1d,0x05,0xec,0x40,0x04,0x19,0x80,0x0e,0x09,0x16,0x01,0x09,0x95,0x17,0x14,0x0f,0x05,0x17,0x01,0x84,0x14,0x09,0x09,0x11,0x00,0x1a,0x0e,0x0c,0xed,0x11,0x2f,0xe1,0x32,0x10,0xc6,0x11,0x39, +0x2f,0x33,0xe1,0x32,0xc6,0x00,0x3f,0x33,0xed,0x32,0xcd,0x10,0xc6,0x1a,0x10,0xde,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x10,0x05,0x35,0x36,0x36,0x35,0x11,0x23,0x22,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x33,0x33,0x35,0x37,0x11,0x21,0x03,0x4e,0xfe,0xc0,0xfe,0xa0,0x68,0x54,0x7a,0x60,0x06,0x8c,0x0a,0xf0,0x7a,0xa4,0x01,0x40,0x03, +0x74,0xfc,0xd6,0xfe,0x90,0x44,0x9f,0x16,0x7e,0x7f,0x03,0x2c,0x53,0x21,0x1e,0x30,0x2e,0xc0,0xfa,0x35,0xfe,0xd1,0x00,0x01,0x00,0x00,0xff,0xe8,0x04,0x90,0x04,0x18,0x00,0x29,0x00,0x65,0x40,0x35,0x1d,0x0b,0x07,0x1f,0x1f,0x0b,0x0e,0x21,0x0f,0x15,0x13,0x95,0x18,0x10,0x29,0x27,0x95,0x40,0x02,0x16,0x0e,0x1f,0x07,0x21,0x05,0x1d, +0x0b,0x1b,0x0d,0x21,0x83,0x22,0x22,0x29,0x24,0x84,0x05,0x0e,0x29,0x15,0x1b,0x42,0x0d,0x83,0x0e,0x0e,0x15,0x1b,0x84,0x10,0x10,0x2b,0x15,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x18,0x2f,0xf0,0xe1,0x11,0x39,0x2f,0xe1,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x2f,0x3f,0x1a,0xed,0x32,0x3f,0xed,0x32,0x3f, +0x12,0x39,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x05,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x06,0x07,0x06,0x07,0x06,0x07,0x23,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x00,0x37,0x36,0x37,0x33,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x04,0x90,0x33,0x3f,0x88,0x9c,0x14,0x06,0xf1,0x94,0x56,0x14,0x27, +0xac,0xb0,0x56,0x50,0x2a,0x26,0x32,0x3e,0x8a,0x9c,0x15,0x01,0x8d,0x54,0x14,0x28,0xac,0xb0,0x57,0x4f,0x2a,0x26,0x02,0x16,0xde,0xbf,0x69,0x6a,0x06,0xdb,0x87,0x62,0x35,0x59,0x01,0x72,0xf4,0x89,0x9f,0x15,0x89,0x16,0xde,0xbf,0x69,0x6a,0x01,0x65,0x65,0x35,0x59,0xfe,0x8e,0xf4,0x8c,0x9c,0x15,0x00,0x00,0x02,0x00,0xa2,0xfe,0x1e, +0x04,0x50,0x04,0x18,0x00,0x19,0x00,0x25,0x00,0x39,0x40,0x20,0x05,0x03,0x15,0x03,0x02,0x22,0x95,0x12,0x10,0x00,0x1a,0x1a,0x1d,0x95,0x18,0x16,0x07,0x95,0x08,0x1c,0x07,0x07,0x0f,0x15,0x83,0x1f,0x1f,0x27,0x01,0x25,0x84,0x0f,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x3f,0xed, +0x31,0x30,0x5d,0x25,0x23,0x1e,0x02,0x17,0x16,0x17,0x15,0x26,0x27,0x26,0x24,0x02,0x11,0x11,0x34,0x12,0x33,0x32,0x00,0x15,0x10,0x02,0x23,0x22,0x03,0x16,0x16,0x33,0x20,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x48,0x04,0x09,0x76,0xd1,0xc7,0x78,0x43,0x40,0x7f,0xf2,0xfe,0xee,0xb1,0xf4,0xe1,0xd9,0x01,0x00,0xf8,0xdd,0xc1,0x76, +0x26,0xa5,0x59,0x01,0x3e,0xa7,0x8f,0x90,0x9c,0x62,0x92,0xc0,0x56,0x04,0x02,0x08,0x8e,0x08,0x02,0x04,0x66,0x01,0x24,0x01,0x54,0x01,0x04,0xf4,0x01,0x16,0xfe,0xde,0xe6,0xfe,0xfc,0xfe,0xdc,0x01,0x1a,0x3d,0x53,0x01,0x96,0xb0,0xd6,0xcf,0xb3,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x02,0x06,0x00,0x46,0x00,0x00, +0xff,0xff,0xff,0x3a,0xfe,0x1e,0x01,0x66,0x05,0xd9,0x02,0x06,0x00,0x4d,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x02,0x06,0x02,0xcf,0x00,0x00,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0x5c,0x04,0x00,0x00,0x12,0x00,0x39,0x40,0x1e,0x0e,0x95,0x40,0x0d,0x08,0x00,0x0d,0x95,0x2b,0x30,0x09,0x95,0x08,0x0f,0x12,0x95, +0x00,0x0c,0x08,0x0d,0x08,0x0d,0x08,0x0f,0x00,0x00,0x14,0x0f,0x83,0x04,0x2f,0xe1,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x00,0x2f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x21,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x33,0x15,0x23,0x20,0x03,0x21,0x15,0x21,0x12,0x21,0x33,0x03,0x5c,0xe3,0xf9,0xfe,0xe0, +0x01,0x2d,0xff,0xc6,0xc9,0xfe,0xb6,0x33,0x02,0x1f,0xfd,0xdb,0x1b,0x01,0x68,0xd3,0x01,0x09,0xe3,0xf3,0x01,0x21,0x8c,0xfe,0xe0,0x8c,0xfe,0xc4,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0x5c,0x04,0x00,0x00,0x12,0x00,0x37,0x40,0x1d,0x05,0x95,0x40,0x06,0x0b,0x00,0x06,0x95,0x2b,0x30,0x0a,0x95,0x0b,0x0f,0x01,0x95,0x00,0x0f,0x83,0x04, +0x0a,0x05,0x0a,0x05,0x07,0x04,0x04,0x14,0x00,0x2f,0x11,0x39,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x00,0x2f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x33,0x35,0x33,0x20,0x13,0x21,0x35,0x21,0x02,0x21,0x23,0x35,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x60,0xd3,0x01,0x5d,0x24,0xfd,0xde,0x02,0x22,0x2a,0xfe,0xa9, +0xc9,0xda,0xf8,0x01,0x20,0xfe,0xd4,0xff,0x8c,0x01,0x3c,0x8c,0x01,0x20,0x8c,0xfe,0xf7,0xe3,0xf4,0xfe,0xe0,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x06,0xca,0x05,0x9a,0x00,0x33,0x00,0x2b,0x40,0x15,0x32,0x10,0x15,0x25,0x7e,0x24,0x16,0x7e,0x15,0x15,0x07,0x24,0x24,0x35,0x08,0x7e,0x07,0x07,0x03,0x00,0x12,0x00,0x3f,0x3f,0x01,0x2f, +0xed,0x11,0x33,0x2f,0x12,0x39,0x2f,0xed,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x21,0x2e,0x05,0x27,0x33,0x1e,0x05,0x17,0x13,0x2e,0x03,0x27,0x33,0x1e,0x05,0x17,0x3e,0x05,0x37,0x33,0x0e,0x05,0x07,0x23,0x2e,0x03,0x27,0x03,0x01,0xe2,0x4d,0x75,0x5a,0x40,0x32,0x25,0x11,0xa8,0x10,0x26,0x2e,0x38,0x46,0x57,0x35,0xe0,0x15,0x21,0x1c, +0x18,0x0c,0xa8,0x10,0x26,0x2e,0x38,0x46,0x57,0x35,0x35,0x57,0x46,0x38,0x2e,0x25,0x11,0xa8,0x11,0x25,0x32,0x40,0x5a,0x75,0x4d,0xa4,0x2b,0x4a,0x40,0x37,0x17,0xd5,0x95,0xf8,0xdd,0xd0,0xdc,0xf3,0x91,0x8a,0xe5,0xc7,0xb5,0xb5,0xbd,0x6d,0x02,0x3c,0x48,0x94,0x9f,0xb0,0x63,0x8a,0xe5,0xc7,0xb5,0xb5,0xbd,0x6d,0x6d,0xbd,0xb5,0xb5, +0xc7,0xe5,0x8a,0x92,0xf2,0xdc,0xd0,0xde,0xf7,0x95,0x53,0x95,0x89,0x7f,0x3c,0xfd,0xd4,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x05,0x5e,0x04,0x00,0x00,0x14,0x00,0x4c,0x40,0x25,0x0d,0x03,0x02,0x0f,0x14,0x08,0x03,0x0d,0x02,0x0f,0x0f,0x02,0x0c,0x13,0x03,0x04,0x02,0x01,0x13,0x05,0x04,0x0c,0x13,0x0c,0x00,0x08,0x10,0x0f,0x0f,0x14, +0x08,0x14,0x00,0x00,0x16,0x09,0x08,0x2f,0x33,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x39,0x11,0x33,0x33,0x11,0x33,0x33,0x00,0x2f,0x17,0x33,0x3f,0x12,0x39,0x39,0x33,0x33,0x87,0x05,0xc0,0xc0,0x31,0x30,0x01,0x01,0x23,0x03,0x03,0x23,0x02,0x02,0x27,0x33,0x16,0x12,0x13,0x13,0x26,0x27,0x33,0x16,0x12,0x17, +0x01,0x05,0x5e,0xfe,0xaa,0xa6,0xb8,0xb6,0x94,0xb5,0x72,0x1b,0xa8,0x1a,0x58,0x7c,0xaa,0x47,0x1b,0xac,0x20,0x77,0x75,0x01,0x08,0x04,0x00,0xfc,0x00,0x01,0xaa,0xfe,0x56,0x01,0x9b,0x01,0x76,0xef,0xcf,0xfe,0xce,0xfe,0xce,0x01,0x87,0xcb,0xe1,0xe2,0xfe,0xad,0xfe,0x03,0x33,0x00,0x00,0x02,0x00,0x29,0x00,0x00,0x04,0xc6,0x05,0x9a, +0x00,0x12,0x00,0x1a,0x00,0x45,0x40,0x23,0x0a,0x01,0x91,0x07,0x04,0x04,0x05,0x13,0x91,0x0b,0x0b,0x05,0x03,0x14,0x91,0x00,0x02,0x00,0x09,0x09,0x14,0x0f,0x7d,0x18,0x18,0x1c,0x0b,0x07,0x14,0x7e,0x04,0x00,0x00,0x1c,0x1b,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x10,0xc6,0x00,0x2f,0xed,0x3f, +0x39,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x11,0x21,0x35,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x4c,0xfe,0xdd,0x01,0x23,0xa8,0x01,0x5a,0xfe,0xa6,0x01,0x10,0xd4,0xee,0xf8,0xd8,0xfe,0xfe,0xeb,0x96,0xa1,0xfe,0xc9,0x04,0x74, +0x9a,0x8c,0x8c,0x9a,0xfe,0xc6,0xcd,0xc1,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8d,0x7d,0x01,0x00,0x00,0x02,0x00,0x29,0x00,0x00,0x04,0x4e,0x05,0xec,0x00,0x12,0x00,0x19,0x00,0x47,0x40,0x24,0x0a,0x01,0x96,0x07,0x04,0x04,0x06,0x0b,0x95,0x13,0x13,0x00,0x06,0x00,0x14,0x95,0x00,0x02,0x00,0x09,0x09,0x14,0x0f,0x83,0x17,0x17,0x1b,0x0b, +0x07,0x14,0x84,0x04,0x00,0x00,0x1b,0x1a,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0x32,0x11,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x10,0xc6,0x00,0x2f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x11,0x21,0x35,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32, +0x35,0x34,0x23,0x01,0x40,0xfe,0xe9,0x01,0x17,0xa4,0x01,0x38,0xfe,0xc8,0x01,0x12,0x9d,0xbb,0xbb,0x8d,0xfe,0xde,0xf5,0xcd,0xcf,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfd,0xc5,0xa3,0x94,0x93,0xad,0x01,0xea,0xfe,0xa2,0xb4,0xaa,0x00,0x00,0x01,0x00,0xbc,0xff,0xe8,0x06,0xd9,0x05,0xb2,0x00,0x1f,0x00,0x5e,0x40,0x34,0x1a,0x17,0x06,0x91, +0x40,0x0b,0x0a,0x08,0x0b,0x91,0x2b,0x30,0x30,0x12,0x01,0x12,0x12,0x14,0x91,0x0f,0x04,0x0a,0x03,0x20,0x1f,0x01,0x1f,0x1f,0x1d,0x91,0x02,0x13,0x08,0x19,0x19,0x17,0x12,0x1a,0x7d,0x0c,0x12,0x05,0x05,0x08,0x12,0x00,0x00,0x21,0x0b,0x07,0x7e,0x08,0x2f,0xe1,0x32,0x11,0x39,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0xe1,0x11,0x39,0x39, +0x2f,0x00,0x2f,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0x3f,0xed,0x32,0x2f,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x33,0x32,0x31,0x30,0x25,0x06,0x23,0x20,0x00,0x03,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x12,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x07,0x21,0x15,0x21,0x16,0x00,0x33,0x32,0x37,0x06,0xd9,0x9f,0xea,0xfe,0xde,0xfe,0x95, +0x0f,0xfe,0xb0,0xa8,0xa8,0x01,0x52,0x1d,0x01,0x7e,0x01,0x1b,0xd6,0x97,0xa3,0xcc,0xd7,0xfe,0xeb,0x18,0x02,0x79,0xfd,0x85,0x10,0x01,0x11,0xd7,0xe0,0x9d,0x3c,0x54,0x01,0x69,0x01,0x2e,0xfd,0x81,0x05,0x9a,0xfd,0x7c,0x01,0x34,0x01,0x68,0x3b,0xb3,0x56,0xfe,0xed,0xf1,0x97,0xef,0xfe,0xed,0x60,0x00,0x00,0x01,0x00,0xa6,0xff,0xe8, +0x05,0x66,0x04,0x18,0x00,0x1f,0x00,0x68,0x40,0x3a,0x17,0x1a,0x06,0x95,0x40,0x0b,0x0a,0x08,0x0b,0x95,0x2b,0x30,0x0a,0x0f,0x40,0x12,0x50,0x12,0x02,0x12,0x12,0x14,0x95,0x0f,0x10,0x30,0x1f,0x01,0x1f,0x1f,0x1d,0x95,0x02,0x16,0x08,0x17,0x12,0x1a,0x83,0x05,0x0c,0x12,0x05,0x18,0x12,0x18,0x12,0x00,0x05,0x05,0x08,0x00,0x00,0x21, +0x0b,0x06,0x84,0x08,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xe1,0x11,0x39,0x00,0x2f,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x32,0x33,0x31,0x30,0x25,0x06,0x23,0x22,0x24,0x27,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x36,0x24,0x33, +0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x33,0x32,0x37,0x05,0x66,0x72,0xa0,0xd6,0xfe,0xf9,0x0f,0xfe,0xe2,0xa4,0xa4,0x01,0x20,0x18,0x01,0x0e,0xdc,0x89,0x67,0x64,0x92,0x93,0xb6,0x0d,0x01,0xb4,0xfe,0x4a,0x08,0xb2,0x94,0x92,0x78,0x2d,0x45,0xfb,0xdb,0xfe,0x42,0x04,0x00,0xfe,0x4a,0xdb,0xf3,0x32,0xa2, +0x4a,0xb0,0x94,0x8c,0x97,0xb5,0x5b,0x00,0x00,0x02,0x00,0x16,0x00,0x00,0x05,0x3c,0x05,0x9a,0x00,0x0b,0x00,0x14,0x00,0x66,0x40,0x37,0x0d,0x0c,0x02,0x0a,0x01,0x0a,0x0d,0x01,0x0a,0x13,0x12,0x07,0x08,0x0b,0x08,0x12,0x0b,0x08,0x02,0x03,0x06,0x07,0x0c,0x10,0x13,0x14,0x08,0x0b,0x0a,0x03,0x05,0x01,0x08,0x0a,0x0b,0x0f,0x10,0x14, +0x05,0x05,0x01,0x00,0x0e,0x04,0x08,0x09,0x09,0x05,0x42,0x04,0x7e,0x05,0x05,0x16,0x09,0x2f,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x01,0x33,0x10,0xe0,0x32,0x12,0x17,0x39,0x00,0x18,0x2f,0x33,0x33,0x3f,0x33,0x17,0x39,0x11,0x12,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x31,0x30,0x21,0x23, +0x03,0x07,0x11,0x23,0x11,0x27,0x01,0x23,0x01,0x33,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x17,0x05,0x3c,0xbb,0xfc,0x8f,0xa8,0x83,0xff,0x00,0xb5,0x02,0x3e,0xb6,0x3e,0x7d,0x12,0x0b,0x04,0x0a,0x17,0x7d,0x9c,0x02,0x8e,0xb7,0xfe,0x29,0x01,0xd3,0xb6,0xfd,0x77,0x05,0x9a,0xfd,0x91,0x01,0x45,0x2f,0x51,0x47,0x3b,0xfe,0xc3,0xd7, +0x00,0x02,0x00,0x0c,0x00,0x00,0x03,0xf2,0x04,0x00,0x00,0x0b,0x00,0x14,0x00,0x68,0x40,0x37,0x0d,0x0c,0x02,0x0a,0x01,0x0a,0x0d,0x01,0x0a,0x13,0x12,0x07,0x08,0x0b,0x08,0x12,0x0b,0x02,0x03,0x06,0x07,0x0c,0x13,0x06,0x14,0x14,0x08,0x0b,0x0a,0x0f,0x05,0x01,0x08,0x0a,0x0b,0x0f,0x10,0x14,0x05,0x05,0x01,0x00,0x0e,0x04,0x08,0x09, +0x09,0x05,0x42,0x04,0x8b,0x05,0x05,0x16,0x09,0x2f,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x01,0x33,0x10,0xe0,0x32,0x12,0x17,0x39,0x00,0x18,0x2f,0x33,0x33,0x3f,0x33,0x12,0x39,0x2f,0x17,0x33,0x11,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x31,0x30,0x21,0x23,0x03,0x07,0x11,0x23,0x11,0x27, +0x03,0x23,0x01,0x33,0x13,0x27,0x26,0x27,0x23,0x06,0x07,0x07,0x17,0x03,0xf2,0xb0,0x98,0x60,0x96,0x64,0x9c,0xa8,0x01,0xac,0xa2,0x18,0x4d,0x1b,0x08,0x04,0x0b,0x16,0x51,0x7a,0x01,0x8c,0x76,0xfe,0xea,0x01,0x16,0x78,0xfe,0x72,0x04,0x00,0xfe,0x1a,0xd2,0x4a,0x45,0x55,0x36,0xcd,0x8d,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x06,0xe6, +0x05,0x9a,0x00,0x13,0x00,0x1c,0x00,0xa1,0x40,0x59,0x15,0x14,0x02,0x12,0x01,0x12,0x15,0x01,0x12,0x1b,0x1a,0x07,0x08,0x13,0x08,0x1a,0x13,0x08,0x11,0x0a,0x09,0x12,0x09,0x02,0x03,0x06,0x07,0x14,0x1b,0x1c,0x07,0x0c,0x12,0x0a,0x91,0x40,0x11,0x0f,0x0c,0x11,0x91,0x2b,0x30,0x12,0x13,0x17,0x18,0x04,0x0f,0x03,0x01,0x05,0x08,0x09, +0x04,0x0c,0x13,0x17,0x12,0x18,0x17,0x18,0x1c,0x03,0x05,0x01,0x00,0x0e,0x04,0x08,0x09,0x09,0x05,0x42,0x04,0x7e,0x05,0x05,0x1e,0x0f,0x09,0x01,0x09,0x09,0x1e,0x10,0x0c,0x7e,0x0d,0x2f,0xe1,0x32,0x11,0x39,0x2f,0x5d,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x01,0x33,0x10,0xe0,0x32,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x00,0x18,0x2f,0x17, +0x33,0x3f,0x17,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x12,0x17,0x39,0x10,0x87,0x05,0xc0,0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x31,0x30,0x21,0x23,0x03,0x07,0x11,0x23,0x11,0x27,0x01,0x23,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x13,0x33,0x13,0x03,0x26, +0x27,0x23,0x06,0x07,0x03,0x17,0x06,0xe6,0xbb,0xfc,0x8f,0xa8,0x84,0xff,0x00,0xb4,0x01,0x0d,0xfe,0x97,0xa8,0xa8,0x01,0xa4,0xf6,0xb6,0x3e,0x7e,0x10,0x0c,0x04,0x0a,0x17,0x7d,0x9c,0x02,0x8e,0xb7,0xfe,0x29,0x01,0xd3,0xb6,0xfd,0x77,0x02,0x9e,0xfd,0x62,0x05,0x9a,0xfd,0x9b,0x02,0x65,0xfd,0x91,0x01,0x45,0x2a,0x56,0x47,0x3b,0xfe, +0xc3,0xd7,0x00,0x02,0x00,0xa6,0x00,0x00,0x05,0x7b,0x04,0x00,0x00,0x13,0x00,0x1c,0x00,0xb0,0x40,0x50,0x11,0x0a,0x09,0x12,0x15,0x14,0x02,0x12,0x01,0x12,0x15,0x01,0x12,0x1b,0x1a,0x07,0x08,0x13,0x08,0x1a,0x13,0x08,0x02,0x03,0x06,0x07,0x14,0x1b,0x06,0x00,0x1c,0x01,0x13,0x03,0x1c,0x1c,0x0c,0x0f,0x0a,0x96,0x40,0x11,0x0f,0x0c, +0x11,0x96,0x2b,0x30,0x12,0x13,0x17,0x18,0x04,0x0f,0x0f,0x01,0x05,0x08,0x09,0x04,0x0c,0x13,0x17,0x12,0x18,0x17,0x18,0x1c,0x03,0x05,0x01,0x00,0x0e,0x04,0x08,0x09,0x09,0x05,0x42,0x04,0xb8,0x01,0x2e,0x40,0x11,0x05,0x05,0x1e,0x2f,0x09,0x3f,0x09,0x4f,0x09,0x03,0x09,0x09,0x1e,0x10,0x0c,0x84,0x0d,0x2f,0xe1,0x32,0x11,0x39,0x2f, +0x5d,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x01,0x33,0x10,0xe0,0x32,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x00,0x18,0x2f,0x17,0x33,0x3f,0x17,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x17,0x33,0x11,0x12,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x87,0xc0,0xc0, +0x31,0x30,0x21,0x23,0x03,0x07,0x11,0x23,0x11,0x27,0x03,0x23,0x13,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x13,0x33,0x13,0x27,0x26,0x27,0x23,0x06,0x07,0x07,0x17,0x05,0x7b,0xb0,0x98,0x60,0x95,0x65,0x9b,0xa8,0xc2,0xfe,0xf2,0xa4,0xa4,0x01,0x46,0xb2,0xa2,0x18,0x4e,0x1b,0x07,0x05,0x0b,0x16,0x52,0x7c,0x01,0x8c,0x76,0xfe,0xea,0x01, +0x16,0x78,0xfe,0x72,0x01,0xd5,0xfe,0x2b,0x04,0x00,0xfe,0x58,0x01,0xa8,0xfe,0x1a,0xd2,0x49,0x46,0x55,0x36,0xcd,0x8d,0x00,0x00,0x02,0x00,0x29,0x00,0x00,0x05,0xaa,0x05,0x9a,0x00,0x12,0x00,0x1a,0x00,0xb3,0x40,0x30,0x10,0x03,0x0f,0x03,0x1a,0x19,0x06,0x13,0x06,0x1a,0x19,0x13,0x06,0x16,0x15,0x14,0x03,0x14,0x16,0x15,0x03,0x14, +0x0d,0x0e,0x06,0x0d,0x18,0x10,0x03,0x17,0x17,0x0e,0x03,0x06,0x06,0x09,0x13,0x14,0x91,0x40,0x0f,0x0e,0x03,0x05,0x01,0x09,0x13,0x0f,0xb8,0xff,0xd8,0x40,0x14,0x0b,0x01,0x4d,0x0f,0x0f,0x00,0x03,0x14,0x00,0x0e,0x10,0x0e,0x02,0x09,0x03,0x0e,0x0e,0x06,0x0a,0x00,0xb8,0x01,0x2f,0xb6,0x01,0x0e,0x03,0x09,0x06,0x42,0x09,0xb8,0x01, +0x2f,0x40,0x0b,0x0a,0x0a,0x1b,0x18,0x17,0x03,0x7e,0x06,0x06,0x1c,0x1b,0x11,0x12,0x39,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf2,0xe1,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0x11,0x12,0x39,0x2f,0x2b,0x33,0x00,0x2f,0x33,0x33,0x3f,0x33,0x1a,0xed,0x32,0x12,0x39,0x2f,0x33,0x12,0x39,0x11,0x17,0x33,0x87, +0x05,0xc0,0x11,0x12,0x00,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x11,0x12,0x00,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0x31,0x30,0x21,0x23,0x02,0x25,0x11,0x23,0x11,0x06,0x02,0x03,0x23,0x12,0x12,0x37,0x01,0x21,0x01,0x16,0x12,0x01,0x21,0x01,0x16,0x17,0x33,0x36,0x37,0x05,0xaa,0xc0,0x32,0xfe,0x8a,0xa8,0xcb,0xcb,0x1a, +0xc1,0x33,0xfd,0xe9,0xfe,0x62,0x04,0xa0,0xfe,0x52,0xea,0xf7,0xfe,0xb0,0xfd,0x9f,0x01,0x07,0x0d,0x16,0x02,0x10,0x16,0x02,0x0a,0x66,0xfd,0x90,0x02,0x72,0x39,0xfe,0xd3,0xfe,0xf4,0x01,0x50,0x01,0x67,0x45,0x02,0x9e,0xfd,0x60,0x48,0xfe,0x9a,0x03,0xb6,0xfe,0x52,0x22,0x36,0x35,0x23,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x04,0x66, +0x04,0x00,0x00,0x11,0x00,0x18,0x00,0x87,0x40,0x26,0x0f,0x0e,0x03,0x0e,0x0c,0x0d,0x06,0x0d,0x0f,0x42,0x0c,0x0c,0x08,0x16,0x16,0x0d,0x03,0x42,0x06,0x06,0x08,0x13,0x95,0x40,0x0e,0x0d,0x0f,0x05,0x01,0x08,0x12,0x13,0x0d,0x0e,0x0e,0x00,0x03,0x0d,0xb8,0xff,0xc0,0x40,0x16,0x0b,0x0f,0x48,0x0d,0x0d,0x06,0x09,0x00,0x83,0x01,0x0e, +0x03,0x08,0x06,0x42,0x08,0x83,0x09,0x09,0x19,0x16,0x03,0xb8,0x01,0x2e,0xb6,0x10,0x06,0x01,0x06,0x06,0x1a,0x19,0x11,0x12,0x39,0x2f,0x5d,0xe1,0x39,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf2,0xe1,0x11,0x12,0x39,0x18,0x2f,0x2b,0x11,0x12,0x39,0x2f,0x12,0x39,0x39,0x00,0x2f,0x33,0x33,0x3f,0x32,0x1a,0xed,0x12,0x39,0x2f,0xe5,0x12, +0x39,0x11,0x12,0x39,0x10,0xe5,0x10,0x87,0x05,0xc0,0x10,0x87,0xc0,0x31,0x30,0x21,0x23,0x02,0x25,0x11,0x23,0x11,0x04,0x03,0x23,0x36,0x12,0x37,0x01,0x21,0x01,0x16,0x12,0x01,0x21,0x13,0x16,0x17,0x36,0x37,0x04,0x66,0xae,0x21,0xfe,0xfd,0x9c,0xfe,0xf8,0x23,0xaf,0x29,0xb9,0xae,0xfe,0xc2,0x03,0xb5,0xfe,0xb8,0xab,0xb7,0xfe,0xd7, +0xfe,0x6f,0xb5,0x04,0x0a,0x04,0x0c,0x01,0x64,0x4e,0xfe,0x4e,0x01,0xb4,0x4b,0xfe,0x97,0xf6,0x01,0x01,0x34,0x01,0xd5,0xfe,0x29,0x36,0xff,0x00,0x02,0x86,0xfe,0xdd,0x06,0x18,0x0a,0x14,0x00,0x02,0x00,0xbc,0x00,0x00,0x07,0x48,0x05,0x9a,0x00,0x18,0x00,0x1f,0x00,0xa9,0x40,0x3f,0x0c,0x0a,0x13,0x0a,0x16,0x03,0x15,0x03,0x13,0x14, +0x06,0x14,0x16,0x42,0x1c,0x1c,0x13,0x03,0x42,0x06,0x06,0x05,0x0c,0x91,0x40,0x13,0x11,0x0e,0x13,0x91,0x2b,0x30,0x1a,0x91,0x14,0x40,0x15,0x14,0x11,0x03,0x01,0x05,0x0a,0x03,0x0e,0x19,0x15,0x15,0x00,0x03,0x1a,0x00,0x14,0x10,0x14,0x02,0x0b,0x03,0x14,0x14,0x06,0x0a,0x00,0xb8,0x01,0x2f,0xb6,0x01,0x0e,0x03,0x09,0x06,0x42,0x09, +0xb8,0x01,0x2f,0x40,0x13,0x0f,0x0a,0x1f,0x0a,0x02,0x0a,0x0a,0x0e,0x1d,0x1c,0x03,0x7e,0x06,0x06,0x21,0x12,0x0e,0x7e,0x0f,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0x5d,0xe1,0x2b,0x01,0x10,0xf2,0xe1,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0x11,0x12,0x39,0x2f,0x33,0x00,0x2f,0x17,0x33,0x3f,0x33,0x33, +0x1a,0x10,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x39,0x2f,0xe5,0x12,0x39,0x10,0xe5,0x10,0x87,0x05,0xc0,0x10,0x87,0xc0,0x10,0x87,0xc0,0x31,0x30,0x21,0x23,0x02,0x25,0x11,0x23,0x11,0x06,0x02,0x03,0x23,0x12,0x25,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x01,0x21,0x01,0x16,0x12,0x01,0x21,0x01,0x17,0x33,0x36,0x37,0x07,0x48,0xc1, +0x2f,0xfe,0x87,0xa7,0xcb,0xcb,0x1b,0xc1,0x54,0x01,0x34,0xfe,0x16,0xa8,0xa8,0x02,0x54,0xfe,0x8a,0x04,0xa0,0xfe,0x51,0xea,0xf8,0xfe,0xaf,0xfd,0xa0,0x01,0x06,0x24,0x02,0x10,0x16,0x02,0x09,0x67,0xfd,0x90,0x02,0x72,0x39,0xfe,0xd3,0xfe,0xf4,0x02,0x0e,0x92,0xfd,0x60,0x05,0x9a,0xfd,0xa2,0x02,0x5e,0xfd,0x60,0x48,0xfe,0x9c,0x03, +0xb4,0xfe,0x52,0x58,0x35,0x23,0x00,0x02,0x00,0xa6,0x00,0x00,0x05,0xdf,0x04,0x00,0x00,0x17,0x00,0x1d,0x00,0xb8,0x40,0x4c,0x0b,0x09,0x12,0x09,0x15,0x03,0x14,0x03,0x12,0x13,0x06,0x15,0x05,0x1c,0x1c,0x13,0x03,0x42,0x06,0x06,0x05,0x0b,0x96,0x40,0x12,0x10,0x0d,0x12,0x96,0x2b,0x30,0x19,0x95,0x13,0x40,0x14,0x13,0x10,0x0f,0x01, +0x05,0x09,0x03,0x0d,0x18,0x14,0x14,0x00,0x03,0x19,0x00,0x13,0x10,0x13,0x20,0x13,0x60,0x13,0x04,0x0d,0x03,0x13,0x13,0x06,0x09,0x00,0x83,0x01,0x0e,0x03,0x08,0x06,0x42,0x08,0x83,0x09,0xb8,0xff,0xc8,0x40,0x0e,0x0b,0x0c,0x01,0x4c,0x09,0x40,0x09,0x0c,0x48,0x09,0x09,0x0d,0x1c,0x03,0xb8,0x01,0x2e,0x40,0x0c,0x0f,0x06,0x1f,0x06, +0x02,0x06,0x06,0x1f,0x11,0x0d,0x84,0x0e,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x5d,0xe1,0x39,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x01,0x10,0xf2,0xe1,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0x11,0x12,0x39,0x2f,0x33,0x00,0x2f,0x17,0x33,0x3f,0x33,0x33,0x1a,0x10,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x39,0x2f,0xe5,0x12,0x39, +0x11,0x12,0x39,0x87,0x05,0xc0,0x10,0x87,0xc0,0x10,0x87,0xc0,0x31,0x30,0x21,0x23,0x02,0x25,0x11,0x23,0x11,0x04,0x03,0x23,0x12,0x37,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x01,0x21,0x01,0x16,0x16,0x01,0x21,0x13,0x16,0x17,0x37,0x05,0xdf,0xae,0x23,0xfe,0xfe,0x9c,0xfe,0xf7,0x21,0xae,0x3e,0xe2,0xfe,0x92,0xa4,0xa4,0x01,0xbc,0xfe, +0xe4,0x03,0xb4,0xfe,0xb8,0xab,0xb6,0xfe,0xd9,0xfe,0x6e,0xb4,0x07,0x07,0x11,0x01,0x66,0x4c,0xfe,0x4e,0x01,0xb4,0x4d,0xfe,0x99,0x01,0x72,0x67,0xfe,0x27,0x04,0x00,0xfe,0x58,0x01,0xa8,0xfe,0x29,0x36,0xff,0x02,0x85,0xfe,0xdd,0x0b,0x13,0x1e,0x00,0x00,0x01,0x00,0x31,0xfe,0x66,0x03,0xe2,0x06,0xcb,0x00,0x43,0x00,0x75,0x40,0x41, +0x32,0x7d,0x13,0x00,0x7d,0x01,0x2e,0x17,0x2c,0x7d,0x1b,0x13,0x01,0x1b,0x17,0x20,0x20,0x17,0x1b,0x01,0x13,0x05,0x45,0x3b,0x7e,0x09,0x03,0x9a,0x42,0x42,0x35,0x3e,0x0c,0x9a,0x39,0x39,0x35,0x2f,0x2e,0x16,0x9a,0x17,0x17,0x29,0x10,0x9a,0x35,0x27,0x26,0x0f,0x24,0x1f,0x24,0x02,0x24,0x20,0x1e,0x99,0x23,0x29,0x03,0x3e,0x9a,0x01, +0x07,0x00,0x2f,0x33,0xed,0x3f,0x33,0xed,0x32,0xc4,0x5d,0x39,0x39,0x2f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x11,0x39,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x01,0x2f,0xe1,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x10,0xe1,0x10,0xe1,0x31,0x30,0x01,0x23,0x34,0x23,0x22,0x07,0x06,0x23,0x20,0x11,0x34,0x36,0x33, +0x32,0x17,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x37,0x03,0x33,0x17,0x37,0x33,0x03,0x36,0x16,0x15,0x10,0x05,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x33,0x32,0x03,0xd3,0xb7,0x4d,0x2c,0x6f,0x70,0x45,0xfe, +0xb2,0xa6,0xa0,0x17,0x4b,0x4b,0x18,0x72,0x81,0xfe,0x8b,0x95,0x89,0x9f,0xaf,0x91,0x7f,0xb4,0xaa,0x82,0xa2,0xb9,0x73,0xa4,0xa4,0x77,0xbd,0x58,0xea,0xfe,0xf0,0x94,0xae,0xdb,0xbd,0x18,0x58,0x58,0x18,0x93,0x56,0x4c,0x2b,0x7b,0x7b,0x4a,0xef,0xfe,0x66,0x4c,0x26,0x26,0x01,0x23,0x80,0x91,0x06,0x06,0x89,0x75,0x01,0x14,0x8b,0x8a, +0x7e,0x6c,0x82,0x71,0xaa,0x48,0x0d,0x01,0x1c,0xe5,0xe5,0xfe,0xdd,0x0a,0xc2,0x9e,0xfe,0xe9,0x49,0x04,0x11,0xbc,0x8b,0xb4,0xe2,0x06,0x06,0x89,0x3f,0x50,0x25,0x25,0x00,0x01,0x00,0x21,0xfe,0x66,0x03,0x3c,0x05,0x35,0x00,0x42,0x00,0x79,0xb3,0x31,0x84,0x13,0x00,0xb8,0x01,0x2e,0x40,0x13,0x01,0x2d,0x17,0x2a,0x84,0x1a,0x13,0x01, +0x1a,0x17,0x1f,0x1f,0x17,0x1a,0x01,0x13,0x05,0x44,0x3a,0xb8,0x01,0x2e,0x40,0x27,0x0a,0x03,0x96,0x41,0x41,0x34,0x3d,0x2e,0x2d,0x16,0x95,0x17,0x17,0x28,0x0d,0x96,0x38,0x38,0x28,0x11,0x96,0x34,0x15,0x1f,0x1d,0x95,0x0f,0x23,0x1f,0x23,0x02,0x23,0x22,0x28,0x0f,0x3d,0x95,0x01,0x07,0x00,0x2f,0x33,0xed,0x3f,0x33,0xc4,0x5d,0xed, +0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x11,0x12,0x39,0x2f,0xed,0x01,0x2f,0xe1,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x10,0xe1,0x10,0xe1,0x31,0x30,0x01,0x23,0x34,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x34,0x21,0x23,0x35,0x33, +0x20,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x37,0x03,0x33,0x17,0x37,0x33,0x03,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x33,0x32,0x03,0x1e,0x95,0x3d,0x2e,0x55,0x55,0x38,0x82,0x99,0x9b,0x82,0x13,0x3b,0x3a,0x13,0xbf,0xfe,0xd6,0x64,0x60,0x01, +0x04,0x77,0x67,0x96,0x96,0x81,0x71,0xb6,0x73,0xa4,0xa4,0x77,0xb9,0xf9,0x71,0x61,0x70,0x8c,0xb0,0xa4,0x14,0x45,0x45,0x12,0x86,0x4b,0x41,0x2c,0x55,0x55,0x44,0xc6,0xfe,0x66,0x50,0x28,0x28,0x99,0x82,0x71,0x9a,0x07,0x08,0xa1,0xaa,0x8a,0xa4,0x45,0x53,0x4c,0x99,0x2e,0x0b,0x01,0x17,0xe5,0xef,0xfe,0xd9,0x29,0xdf,0x5b,0x80,0x15, +0x04,0x09,0x87,0x6a,0x89,0x97,0x07,0x07,0x85,0x42,0x51,0x25,0x25,0x00,0x00,0x01,0x00,0x66,0x00,0x00,0x05,0xc0,0x05,0x9a,0x00,0x19,0x00,0x3d,0x40,0x1e,0x14,0x11,0x91,0x04,0x07,0x07,0x06,0x18,0x12,0x0c,0x03,0x06,0x00,0x7e,0x17,0x17,0x1b,0x06,0x0c,0x0b,0x0b,0x1a,0x14,0x05,0x7e,0x11,0x06,0x06,0x1b,0x1a,0x11,0x12,0x39,0x2f, +0x33,0xe1,0x32,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0xe1,0x00,0x2f,0x3f,0x33,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x14,0x00,0x23,0x23,0x11,0x23,0x11,0x23,0x20,0x03,0x03,0x33,0x13,0x16,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x20,0x11,0x11,0x33,0x05,0xc0,0xfe,0xe1,0xf1,0x39,0x9c,0x54,0xfe,0xd9,0x54,0xa6,0xa4, +0xa0,0x1d,0x6b,0x6e,0x3b,0x9c,0x39,0x01,0x68,0xa8,0x03,0x87,0xdf,0xfe,0xdd,0xfe,0x7b,0x01,0x85,0x01,0x5f,0x02,0xb6,0xfd,0x5e,0x79,0x65,0x03,0x80,0xfc,0x80,0x01,0x6d,0x02,0x13,0x00,0x00,0x01,0x00,0x66,0xfe,0x1e,0x05,0x7b,0x05,0x33,0x00,0x1b,0x00,0x40,0x40,0x19,0x06,0x1c,0x13,0x13,0x1a,0x0d,0x0f,0x15,0x12,0x95,0x04,0x07, +0x16,0x00,0x84,0x19,0x19,0x1d,0x06,0x0d,0x0c,0x0c,0x1c,0x14,0x05,0xb8,0x01,0x2e,0xb4,0x13,0x06,0x06,0x1d,0x1c,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0x33,0x2f,0x3f,0x31,0x30,0x01,0x10,0x00,0x23,0x23,0x11,0x23,0x11,0x23,0x22,0x26,0x27,0x03,0x33, +0x13,0x16,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x32,0x36,0x35,0x11,0x33,0x05,0x7b,0xfe,0xe4,0xe8,0x19,0x93,0x15,0xac,0xd4,0x3c,0x94,0xa6,0x94,0x2a,0x81,0x6f,0x11,0x93,0x19,0x96,0xca,0xa4,0x02,0x2d,0xfe,0xf4,0xfe,0xc9,0xfe,0x34,0x01,0xcc,0xca,0xf6,0x02,0x56,0xfd,0xaa,0xa9,0x88,0x04,0xba,0xfb,0x46,0xef,0xc3,0x01,0xd5,0x00, +0x00,0x03,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x19,0x00,0x27,0x00,0x48,0x40,0x25,0x12,0x18,0x91,0x40,0x22,0x1c,0x0e,0x25,0x0f,0x14,0x42,0x0c,0x1a,0x14,0x91,0x20,0x20,0x00,0x0f,0x91,0x06,0x04,0x25,0x91,0x00,0x13,0x22,0x1a,0x12,0x09,0x7d,0x0c,0x0c,0x29,0x12,0x7d,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12, +0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x7c,0x2f,0x18,0xed,0x33,0x32,0x2b,0x00,0x18,0x10,0xf6,0x32,0x1a,0xed,0x32,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x13,0x26,0x24,0x23,0x22,0x00,0x07,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x17,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x05,0x16,0x00,0x33, +0x32,0x00,0x02,0xfe,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0x8c,0xbe,0x1a,0xfe,0xff,0xcf,0xd6,0xfe,0xea,0x0e,0xfc,0x46,0x3c,0x88,0x88,0x24,0x3d,0xfb,0xf0,0x52,0x3a,0x84,0x84,0x2e,0x2a,0xfe,0xf6,0x1a,0x01,0x09,0xc7,0xe4,0x01,0x0e,0x18,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0xfe,0x70,0xfe,0xbd, +0xfe,0xa1,0xfe,0x68,0x03,0x52,0xe7,0xf9,0xfe,0xd8,0xf4,0x52,0x3a,0x3b,0x39,0x5a,0x3a,0x3a,0x56,0xe0,0xfe,0xf9,0x01,0x21,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x18,0x00,0x25,0x00,0x57,0x40,0x30,0x0b,0x25,0x1b,0x25,0x02,0x00,0x0f,0x10,0x0f,0x02,0x0c,0x03,0x11,0x17,0x95,0x40,0x21,0x1b,0x0e,0x24, +0x0e,0x13,0x42,0x0c,0x13,0x95,0x19,0x1f,0x1f,0x00,0x0e,0x95,0x06,0x10,0x24,0x95,0x00,0x16,0x09,0x83,0x0c,0x19,0x19,0x27,0x11,0x21,0x83,0x03,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x7c,0x2f,0x33,0x18,0xed,0x32,0x2b,0x00,0x18,0x10,0xf6,0x32,0x1a,0xed,0x32,0x31,0x30,0x01,0x5f,0x5e,0x5d, +0x5d,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x13,0x02,0x21,0x22,0x06,0x07,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x17,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x16,0x16,0x33,0x20,0x02,0x52,0xe3,0xfe,0xf1,0x01,0x1a,0xf0,0xe5,0x01,0x01,0xfe,0xeb,0x69,0x22,0xfe,0xdc,0x8b,0xb5,0x12,0x8e,0x35,0x30,0x6c,0x6b, +0x1e,0x22,0x8e,0x84,0x34,0x30,0x68,0x68,0x26,0x1e,0x9c,0x12,0xb4,0x8c,0x01,0x26,0x18,0x01,0x1f,0xed,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x02,0x64,0x01,0x42,0xaa,0x9a,0x31,0x34,0x35,0x5a,0x33,0x35,0x34,0x38,0x9a,0xaa,0x00,0x01,0x00,0x12,0x00,0x00,0x05,0xb8,0x05,0xb2,0x00,0x13,0x00,0x31,0x40,0x17,0x01,0x03, +0x91,0x12,0x04,0x09,0x03,0x0c,0x07,0x07,0x06,0x0c,0x0c,0x08,0x10,0x05,0x00,0x7e,0x01,0x01,0x15,0x09,0x08,0x2f,0x33,0x12,0x39,0x2f,0xe1,0xc6,0x32,0x11,0x39,0x19,0x2f,0x33,0x33,0x00,0x18,0x2f,0x33,0x3f,0x3f,0xfd,0xce,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x36,0x33, +0x32,0x05,0xb8,0x9a,0x0c,0x47,0x41,0x2a,0xfe,0x77,0xbd,0xfd,0xf8,0xbb,0x01,0x8d,0x13,0x0a,0x04,0x07,0x1a,0x01,0x3b,0x3f,0xbb,0xd1,0x04,0xc0,0x63,0x7d,0xfb,0x5a,0x05,0x9a,0xfb,0x8f,0x37,0x48,0x32,0x4f,0x03,0xc7,0xc0,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x04,0x9a,0x04,0x18,0x00,0x13,0x00,0x34,0x40,0x11,0x01,0x03,0x95,0x12, +0x10,0x09,0x0f,0x0c,0x07,0x07,0x06,0x0d,0x0d,0x08,0x10,0x05,0x00,0xb8,0x01,0x2e,0xb4,0x01,0x01,0x15,0x09,0x08,0x2f,0x33,0x12,0x39,0x2f,0xe1,0xc6,0x32,0x11,0x39,0x19,0x2f,0x33,0x33,0x00,0x18,0x2f,0x33,0x3f,0x3f,0xfd,0xce,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x36, +0x33,0x32,0x04,0x9a,0x96,0x08,0x42,0x37,0x31,0xfe,0xe8,0xa8,0xfe,0x7c,0xb4,0x01,0x04,0x1d,0x07,0x04,0x08,0x18,0xbf,0x47,0xaa,0xc6,0x03,0x3c,0x54,0x88,0xfc,0xf8,0x04,0x00,0xfd,0x18,0x52,0x3d,0x45,0x46,0x02,0x32,0xd2,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x05,0xb8,0x07,0x5c,0x02,0x26,0x05,0xee,0x00,0x00,0x01,0x07,0x04,0x6e, +0x02,0x2f,0x01,0x5c,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x4b,0x40,0x0a,0x1a,0x14,0x08,0x00,0x25,0x02,0x01,0x19,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x0e,0x00,0x00,0x04,0x9a,0x06,0x00,0x02,0x26,0x05,0xef,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0xc1,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x6e, +0x40,0x0a,0x1a,0x14,0x08,0x00,0x25,0x02,0x01,0x19,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x04,0x00,0x5e,0xfe,0x66,0x0a,0x7f,0x05,0xdb,0x00,0x0d,0x00,0x1b,0x00,0x30,0x00,0x31,0x00,0x8f,0x40,0x33,0x0e,0x91,0x08,0x0e,0x00,0x0f,0x91,0x07,0x0e,0x01,0x16,0x91,0x00,0x15,0x91,0x40,0x01,0x01,0x07,0x32,0x31,0x24, +0x42,0x31,0x04,0x23,0x29,0x24,0x16,0x1d,0x1f,0x95,0x2f,0x10,0x26,0x0f,0x29,0x24,0x22,0x23,0x23,0x21,0x25,0x2e,0x20,0x06,0x20,0x01,0x20,0x26,0x1c,0xb8,0x01,0x2e,0x40,0x17,0x1d,0x1d,0x26,0x25,0x25,0x33,0x19,0x16,0x01,0x08,0x0f,0x01,0x0f,0x01,0x04,0x0b,0x7d,0x19,0x19,0x33,0x12,0x7d,0x04,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x11, +0x39,0x39,0x2f,0x2f,0x33,0x11,0x33,0x11,0x12,0x39,0x2f,0x33,0x39,0x2f,0xe1,0x12,0x39,0x5d,0x11,0x33,0x11,0x12,0x39,0x2f,0x33,0x39,0x39,0x00,0x3f,0x3f,0xfd,0xce,0x3f,0x33,0x2f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x1a,0xed,0xdd,0xe6,0x10,0xf4,0xed,0x10,0xf4,0xe6,0x31,0x30,0x05,0x35,0x20,0x00,0x11,0x10,0x00,0x21,0x15, +0x20,0x00,0x11,0x10,0x00,0x01,0x35,0x22,0x00,0x11,0x10,0x00,0x33,0x15,0x32,0x00,0x11,0x10,0x00,0x01,0x23,0x26,0x23,0x22,0x07,0x01,0x23,0x13,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x36,0x33,0x32,0x13,0x02,0xfe,0xfe,0xd0,0xfe,0x90,0x01,0x7f,0x01,0x33,0x01,0x37,0x01,0x63,0xfe,0x8e,0xfe,0xd8,0xe7,0xfe,0xe5,0x01,0x12, +0xde,0xec,0x01,0x10,0xfe,0xfe,0x06,0x81,0x95,0x0a,0x40,0x3c,0x2d,0xfe,0x75,0xac,0x8f,0xfe,0x79,0xb4,0x01,0x04,0x1c,0x07,0x05,0x06,0x1a,0xaa,0x40,0xb2,0xc6,0x1b,0x42,0x52,0x01,0x93,0x01,0x43,0x01,0x52,0x01,0xa3,0x52,0xfe,0x76,0xfe,0xb7,0xfe,0xa2,0xfe,0x66,0x05,0x34,0x52,0xfe,0xb3,0xfe,0xfd,0xfe,0xf7,0xfe,0xbd,0x52,0x01, +0x34,0x01,0x16,0x01,0x1a,0x01,0x38,0xfe,0x4a,0x54,0x88,0xfb,0x5e,0x01,0x82,0x04,0x18,0xfd,0x18,0x51,0x3e,0x36,0x55,0x02,0x32,0xd2,0x01,0x9a,0x00,0x03,0x00,0x58,0xfe,0x66,0x08,0xec,0x04,0x38,0x00,0x0d,0x00,0x1a,0x00,0x2f,0x00,0x83,0x40,0x2b,0x0e,0x95,0x08,0x0e,0x00,0x0f,0x95,0x07,0x0e,0x01,0x16,0x95,0x00,0x15,0x95,0x40, +0x01,0x2e,0x23,0x42,0x22,0x29,0x23,0x16,0x1c,0x1e,0x95,0x2e,0x10,0x25,0x0f,0x29,0x23,0x2c,0x21,0x22,0x22,0x24,0x2c,0x20,0x20,0x25,0x1b,0xb8,0x01,0x2e,0x40,0x17,0x1c,0x1c,0x25,0x24,0x24,0x31,0x19,0x15,0x00,0x0e,0x07,0x00,0x07,0x00,0x04,0x0b,0x83,0x19,0x19,0x31,0x12,0x83,0x04,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39, +0x2f,0x2f,0x33,0x11,0x33,0x11,0x12,0x39,0x2f,0x33,0x39,0x2f,0xe1,0x12,0x39,0x11,0x33,0x12,0x39,0x2f,0x33,0x12,0x39,0x39,0x00,0x3f,0x3f,0xfd,0xce,0x3f,0x33,0x2f,0x2b,0x00,0x7d,0x2f,0x1a,0x18,0xed,0xdd,0xed,0x10,0xf4,0xed,0x10,0xf4,0xed,0x31,0x30,0x05,0x35,0x22,0x00,0x35,0x34,0x00,0x33,0x15,0x32,0x00,0x15,0x14,0x00,0x03, +0x35,0x22,0x06,0x15,0x14,0x16,0x33,0x15,0x32,0x36,0x35,0x10,0x05,0x23,0x26,0x23,0x22,0x07,0x01,0x23,0x13,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x36,0x33,0x32,0x02,0x4e,0xe7,0xfe,0xf1,0x01,0x1a,0xea,0xeb,0x01,0x01,0xfe,0xeb,0xd7,0xa2,0xba,0xb3,0x9b,0xa1,0xb1,0x05,0x4c,0x96,0x08,0x42,0x3b,0x2d,0xfe,0x74,0xac,0x90, +0xfe,0x78,0xb5,0x01,0x04,0x1c,0x07,0x04,0x07,0x19,0xaa,0x40,0xb2,0xc6,0x38,0x3e,0x01,0x20,0xec,0xfa,0x01,0x2c,0x3e,0xfe,0xe6,0xfa,0xf6,0xfe,0xd8,0x03,0xa6,0x3e,0xd3,0xc1,0xb8,0xce,0x3e,0xd0,0xbb,0x01,0x8f,0x32,0x54,0x88,0xfb,0x5e,0x01,0x82,0x04,0x18,0xfd,0x18,0x51,0x3e,0x36,0x55,0x02,0x32,0xd2,0x00,0x00,0x02,0x00,0x5e, +0xff,0xb4,0x06,0x3e,0x05,0xec,0x00,0x13,0x00,0x26,0x00,0x5b,0x40,0x31,0x20,0x1e,0x16,0x18,0x0c,0x0a,0x02,0x04,0x14,0x18,0x91,0x0e,0x42,0x0a,0x04,0x22,0x1e,0x91,0x40,0x00,0x04,0x13,0x11,0x7d,0x25,0x0e,0x0e,0x1b,0x04,0x42,0x22,0x18,0x14,0x0a,0x00,0x00,0x0a,0x14,0x18,0x22,0x05,0x0e,0x1e,0x04,0x04,0x28,0x1b,0x7d,0x07,0x2f, +0xe1,0x12,0x39,0x2f,0x33,0xc4,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x33,0x1a,0xed,0x32,0x3f,0xe5,0xed,0x32,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x31,0x30,0x05,0x06,0x23,0x22,0x27,0x24,0x00,0x11,0x10,0x00,0x25,0x36,0x33,0x32,0x17,0x04,0x00,0x11,0x10,0x00,0x01,0x06,0x23,0x22,0x27, +0x06,0x00,0x15,0x14,0x12,0x17,0x36,0x33,0x32,0x17,0x36,0x12,0x35,0x10,0x03,0xb0,0x26,0x42,0x42,0x27,0xfe,0xd0,0xfe,0xaf,0x01,0x53,0x01,0x39,0x25,0x49,0x48,0x24,0x01,0x2c,0x01,0x4e,0xfe,0xad,0xfe,0xd1,0x26,0x3e,0x3e,0x26,0xe5,0xfe,0xff,0xf5,0xdc,0x27,0x42,0x42,0x26,0xe5,0xf9,0x14,0x38,0x38,0x1b,0x01,0x7e,0x01,0x37,0x01, +0x46,0x01,0x8b,0x1f,0x40,0x3e,0x1b,0xfe,0x82,0xfe,0xca,0xfe,0xb3,0xfe,0x76,0x05,0x0c,0x30,0x30,0x18,0xfe,0xc9,0xfa,0xf9,0xfe,0xcf,0x1c,0x37,0x37,0x1b,0x01,0x2a,0xfe,0x02,0x16,0x00,0x00,0x02,0x00,0x60,0xff,0xb0,0x04,0xd3,0x04,0x4e,0x00,0x11,0x00,0x21,0x00,0x59,0x40,0x31,0x0b,0x09,0x14,0x12,0x42,0x16,0x95,0x0d,0x09,0x10, +0x02,0x04,0x1c,0x1e,0x1a,0x95,0x40,0x00,0x42,0x04,0x16,0x0f,0x83,0x20,0x0e,0x0d,0x18,0x04,0x42,0x1e,0x1a,0x16,0x12,0x09,0x00,0x00,0x09,0x12,0x16,0x1a,0x1e,0x06,0x0d,0x04,0x04,0x23,0x18,0x83,0x07,0x2f,0xe1,0x12,0x39,0x2f,0xc4,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0xe5,0x1a,0xfd, +0x32,0xcd,0x10,0xcd,0x3f,0x33,0xfd,0xf5,0xcd,0x10,0xcd,0x31,0x30,0x05,0x06,0x23,0x22,0x27,0x26,0x02,0x35,0x10,0x25,0x36,0x33,0x32,0x17,0x04,0x11,0x14,0x02,0x03,0x06,0x23,0x22,0x27,0x04,0x11,0x10,0x05,0x36,0x33,0x32,0x17,0x24,0x11,0x10,0x03,0x0a,0x26,0x48,0x46,0x27,0xe3,0xec,0x01,0xdc,0x26,0x46,0x46,0x26,0x01,0xbf,0xf0, +0xd1,0x26,0x44,0x46,0x26,0xfe,0xcc,0x01,0x29,0x27,0x44,0x44,0x26,0x01,0x25,0x10,0x40,0x3e,0x19,0x01,0x0f,0xde,0x01,0xe8,0x36,0x3c,0x3c,0x32,0xfe,0x24,0xde,0xfe,0xe9,0x03,0x74,0x37,0x3b,0x2f,0xfe,0xa2,0xfe,0xb2,0x31,0x37,0x37,0x2f,0x01,0x54,0x01,0x4e,0x00,0x03,0x00,0x5e,0xff,0xe8,0x08,0xaa,0x08,0x05,0x00,0x29,0x00,0x41, +0x00,0x4d,0x00,0x5e,0x40,0x31,0x36,0x37,0x37,0x4c,0x47,0x2a,0x2a,0x47,0x20,0x0a,0x05,0x25,0x7d,0x1a,0x47,0x1a,0x47,0x1a,0x4f,0x10,0x7d,0x05,0x1d,0x91,0x22,0x04,0x42,0x42,0x08,0x49,0x49,0x2c,0x31,0x96,0x3c,0x3c,0x2a,0x96,0x37,0x2c,0x2c,0x0d,0x91,0x08,0x04,0x13,0x91,0x02,0x13,0x00,0x3f,0xed,0x3f,0xed,0x33,0x2f,0x33,0xed, +0x32,0x2f,0xed,0x11,0x33,0x2f,0x12,0x39,0x2f,0x3f,0xed,0x01,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x39,0x11,0x33,0x2f,0x11,0x33,0x33,0x2f,0x33,0x31,0x30,0x25,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x16,0x33,0x32,0x00,0x11,0x10,0x00,0x23, +0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x13,0x15,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x33,0x01,0x27,0x36,0x37,0x22,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x04,0x85,0xc2,0xcb,0xfe,0xd3,0xfe,0x93,0x01,0x66,0x01,0x32,0x9e,0x6e,0x6a,0xa4,0xdf,0xfe,0xf9,0x01, +0x0e,0xf0,0xdd,0x9a,0x9a,0xdf,0xf0,0x01,0x0e,0xfe,0xfa,0xe0,0xa4,0x6a,0x6e,0x9e,0x01,0x31,0x01,0x67,0xfe,0x93,0xfe,0xd3,0xc8,0xc9,0x29,0x4a,0x85,0x78,0x6b,0x30,0x16,0x22,0x18,0x0c,0x80,0x18,0x33,0x53,0x3a,0x40,0x76,0x77,0x79,0x43,0xfe,0x59,0x16,0x56,0x06,0x60,0x5a,0x30,0x3e,0x3e,0x56,0x01,0x8e,0x01,0x4c,0x01,0x4c,0x01, +0xa4,0x2b,0xb2,0x45,0xfe,0xba,0xfe,0xf2,0xfe,0xeb,0xfe,0xce,0x60,0x60,0x01,0x31,0x01,0x16,0x01,0x0d,0x01,0x47,0x45,0xb2,0x2b,0xfe,0x5e,0xfe,0xb4,0xfe,0xb4,0xfe,0x70,0x07,0xa3,0x7f,0x26,0x2e,0x26,0x13,0x21,0x2d,0x19,0x2f,0x5a,0x46,0x2a,0x26,0x2e,0x26,0xfe,0x54,0x35,0x16,0x3a,0x50,0x52,0x41,0x30,0x91,0x00,0x03,0x00,0x60, +0xff,0xe8,0x06,0xc6,0x06,0x9d,0x00,0x29,0x00,0x41,0x00,0x4d,0x00,0x5d,0x40,0x31,0x36,0x37,0x37,0x4c,0x47,0x2a,0x2a,0x47,0x0b,0x1f,0x05,0x25,0x83,0x1a,0x47,0x1a,0x47,0x1a,0x4f,0x10,0x83,0x05,0x42,0x42,0x08,0x49,0x49,0x2c,0x31,0x96,0x3c,0x3c,0x41,0x96,0x36,0x2c,0x00,0x1d,0xec,0x22,0x10,0x0d,0xec,0x08,0x10,0x13,0x95,0x02, +0x16,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0x33,0xed,0x32,0x2f,0xed,0x11,0x33,0x2f,0x12,0x39,0x2f,0x01,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x39,0x11,0x33,0x2f,0x11,0x33,0x33,0x2f,0x33,0x31,0x30,0x25,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32, +0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x13,0x15,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x33,0x01,0x27,0x36,0x37,0x22,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x03,0x96,0x96,0xac,0xe8,0xfe,0xf4,0x01,0x08,0xde,0x84, +0x63,0x69,0x82,0x93,0xa7,0xbb,0xad,0xa2,0x82,0x81,0xa1,0xad,0xbb,0xa6,0x92,0x83,0x69,0x63,0x85,0xde,0x01,0x06,0xfe,0xf5,0xe8,0xa9,0xf1,0x29,0x4a,0x85,0x78,0x6b,0x30,0x16,0x22,0x18,0x0c,0x80,0x18,0x33,0x53,0x3a,0x40,0x76,0x77,0x79,0x43,0xfe,0x59,0x16,0x56,0x06,0x60,0x5a,0x30,0x3e,0x42,0x5a,0x01,0x25,0xed,0xf0,0x01,0x2e, +0x30,0xaa,0x49,0xd2,0xb9,0xb3,0xd5,0x63,0x63,0xd2,0xb6,0xb9,0xd2,0x49,0xaa,0x30,0xfe,0xd1,0xef,0xec,0xfe,0xda,0x06,0x3b,0x7f,0x26,0x2e,0x26,0x13,0x21,0x2d,0x19,0x2f,0x5a,0x46,0x2a,0x26,0x2e,0x26,0xfe,0x54,0x35,0x16,0x3a,0x50,0x52,0x41,0x30,0x91,0x00,0xff,0xff,0x00,0x1e,0x00,0x00,0x06,0xca,0x06,0xdb,0x02,0x26,0x05,0xda, +0x00,0x00,0x01,0x07,0x06,0x65,0x02,0x1f,0x01,0x0a,0x00,0x08,0xb3,0x01,0x3e,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x1e,0x00,0x00,0x05,0x5e,0x05,0x7f,0x02,0x26,0x05,0xdb,0x00,0x00,0x01,0x07,0x06,0x65,0x01,0x53,0xff,0xae,0x00,0x16,0xb9,0x00,0x01,0xff,0xea,0x40,0x09,0x20,0x15,0x08,0x00,0x25,0x01,0x1f,0x11,0x26,0x00,0x2b, +0x35,0x01,0x2b,0x35,0x00,0x01,0x00,0x5e,0xfe,0x66,0x04,0x8c,0x05,0xb2,0x00,0x15,0x00,0x31,0x40,0x1a,0x30,0x00,0x01,0x00,0x00,0x02,0x91,0x13,0x04,0x0c,0x0a,0x08,0x91,0x0d,0x13,0x0a,0x7e,0x0d,0x0d,0x10,0x00,0x00,0x17,0x05,0x7d,0x10,0x2f,0xe1,0x11,0x39,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x2f,0x3f,0xed,0x32,0x2f, +0x5d,0x31,0x30,0x01,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x11,0x23,0x11,0x24,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x04,0x8c,0x9a,0xba,0xf7,0xfe,0xcd,0x01,0x1f,0xe9,0x20,0x2e,0xa8,0xfe,0xe8,0xfe,0xba,0x01,0x9e,0x01,0x3e,0xcc,0x86,0x04,0xc4,0x56,0xfe,0xb6,0xfe,0xec,0xfe,0xfa,0xfe,0xc9,0x04,0xfd,0xe3,0x01,0x82, +0x16,0x01,0x85,0x01,0x2f,0x01,0x58,0x01,0xa8,0x3b,0x00,0x01,0x00,0x60,0xfe,0x66,0x03,0x62,0x04,0x18,0x00,0x15,0x00,0x2d,0x40,0x17,0x00,0x00,0x02,0x95,0x13,0x10,0x0c,0x0a,0x08,0x96,0x0d,0x16,0x0a,0x84,0x0d,0x0d,0x10,0x00,0x00,0x17,0x05,0x83,0x10,0x2f,0xe1,0x12,0x39,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x2f,0x3f, +0xed,0x32,0x2f,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x11,0x23,0x11,0x26,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x03,0x62,0x72,0x82,0x9d,0xc9,0xbd,0x9f,0x1e,0x28,0xa2,0xc0,0xe8,0x01,0x22,0xf2,0x87,0x67,0x03,0x3e,0x50,0xe1,0xb7,0xb4,0xd0,0x09,0xfd,0xeb,0x01,0x88,0x15,0x01,0x17,0xce,0xfd,0x01,0x33, +0x32,0x00,0x00,0x01,0x00,0x2d,0x00,0x00,0x03,0xd5,0x05,0x9a,0x00,0x13,0x00,0xc8,0x40,0x6b,0x09,0x08,0x11,0x06,0x07,0x12,0x05,0x0a,0x05,0x0c,0x08,0x11,0x03,0x07,0x12,0x04,0x0b,0x04,0x0d,0x08,0x11,0x02,0x01,0x0e,0x01,0x13,0x07,0x12,0x10,0x08,0x11,0x00,0x0f,0x0f,0x0e,0x0e,0x00,0x04,0x0a,0x42,0x05,0x04,0x04,0x03,0x13,0x06, +0x03,0x02,0x07,0x12,0x07,0x02,0x03,0x06,0x13,0x04,0x12,0x07,0x10,0x0d,0x0c,0x09,0x08,0x11,0x08,0x09,0x0c,0x0d,0x10,0x04,0x11,0x08,0x00,0x01,0x0f,0x0a,0x0b,0x05,0x40,0x04,0x05,0x0e,0x0f,0x05,0x0f,0x05,0x08,0x12,0x11,0x03,0x07,0x08,0x11,0x12,0x07,0x0b,0x0a,0x0e,0x08,0x12,0x00,0x42,0x00,0x12,0x12,0x15,0x08,0x2f,0x12,0x39, +0x2f,0xce,0x2b,0x01,0x10,0xe2,0x32,0x33,0x11,0x33,0x00,0x18,0x2f,0x33,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x33,0x11,0x33,0x1a,0x10,0xcd,0x32,0x10,0xcd,0x32,0x11,0x12,0x17,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x17,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x11,0x01,0x33,0x2f,0x33,0x2b,0x01,0x10,0xe1,0x32, +0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x07,0x25,0x03,0x05,0x07,0x25,0x03,0x23,0x13,0x25,0x37,0x05,0x13,0x25,0x37,0x05,0x13,0x33,0x03,0x03,0xd5,0x37,0xfe,0xe5,0x99,0x01,0x16,0x38,0xfe,0xec,0xac,0x91,0xc3,0xfe,0xf3,0x37,0x01,0x0a,0x9a, +0xfe,0xfa,0x38,0x01,0x04,0xa1,0x93,0xba,0x03,0x6a,0x7a,0x7e,0xfe,0x9c,0x7c,0x7c,0x7c,0xfe,0x72,0x01,0xc4,0x78,0x7c,0x76,0x01,0x62,0x74,0x7e,0x75,0x01,0x79,0xfe,0x50,0x00,0x00,0x01,0x00,0x52,0x04,0xc2,0x02,0xd7,0x05,0xcb,0x00,0x11,0x00,0x18,0x40,0x0a,0x0b,0x08,0xe2,0x00,0x02,0x09,0x0e,0x00,0x0e,0x05,0x2f,0xcd,0xcd,0x10, +0xcd,0x00,0x2f,0xdd,0xfd,0xcc,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x0a,0x0a,0x52,0x26,0x36,0x36,0x26,0x01,0x73,0x0b,0x4f,0x26,0x36,0x36,0x26,0x05,0x12,0x50,0x36,0x26,0x27,0x36,0x50,0x36,0x27,0x26,0x36,0x00,0x01,0x00,0x5e,0x04,0xc2,0x03,0x0a,0x05,0xbe, +0x00,0x0f,0x00,0x1c,0x40,0x0d,0x0e,0x4c,0x03,0x09,0x99,0x00,0x08,0x00,0xc2,0x01,0x01,0x11,0x08,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x2f,0x33,0xed,0xdc,0xed,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x06,0x23,0x23,0x35,0x33,0x32,0x37,0x36,0x33,0x32,0x03,0x0a,0x7a,0x32,0x64,0x32,0x61,0x61,0x42,0x66,0x50,0x3d,0x6a,0x69,0x4c,0x97, +0x04,0xc2,0x88,0x44,0x44,0x9a,0x31,0x31,0xff,0xff,0xff,0x90,0x04,0x7b,0x00,0x7d,0x06,0x23,0x00,0x07,0x04,0x61,0xfd,0xae,0x00,0x00,0xff,0xff,0xff,0x86,0x04,0x7b,0x00,0x71,0x06,0x23,0x00,0x07,0x04,0x29,0xfd,0xa2,0x00,0x00,0x00,0x08,0x00,0x21,0xfe,0xcf,0x07,0xbc,0x05,0x5a,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x3b, +0x00,0x47,0x00,0x53,0x00,0x5f,0x00,0xd5,0x40,0x74,0x0d,0x11,0x19,0x03,0x1d,0x0f,0x1b,0xc3,0x15,0x21,0x21,0x09,0x39,0x3d,0x41,0x49,0x03,0x4d,0x3f,0x4b,0xc3,0x45,0x51,0x51,0x39,0x5d,0x55,0x59,0x57,0xc3,0x40,0x5d,0x0e,0x30,0x39,0x05,0x42,0x09,0xc3,0x03,0x01,0x05,0x2d,0x39,0xc3,0x27,0x33,0x40,0x24,0x2a,0x35,0x03,0x30,0x3c, +0x0c,0xc4,0x3d,0x0d,0x0d,0x80,0x41,0x11,0xc4,0x42,0x12,0x0e,0x2a,0x30,0x18,0x42,0x48,0x18,0xc4,0x49,0x19,0x4d,0x1d,0xc4,0x4e,0x1e,0x1e,0x06,0x36,0x24,0xc4,0x25,0x25,0x80,0x29,0xc4,0x2a,0x0e,0x06,0x30,0x00,0x42,0x54,0x00,0xc4,0x55,0x01,0x59,0x05,0xc4,0x5a,0x06,0x06,0x61,0x36,0x30,0xc4,0x31,0x80,0x35,0xc4,0x36,0x2f,0xe1, +0x1a,0xdc,0xe1,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0xdc,0x32,0xe1,0x32,0x2b,0x01,0x10,0xf2,0xe1,0x1a,0xc8,0x18,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0xdc,0x32,0xe1,0x32,0x2b,0x01,0x10,0xf2,0x32,0xe1,0x32,0x1a,0xc8,0x18,0x2f,0x32,0xe1,0x32,0x00,0x2f,0x17,0x33,0x1a,0xdc,0x32,0xed,0x32,0x2f,0x33,0xde,0xed,0x2b,0x00, +0x18,0x10,0xf6,0x1a,0xfd,0xce,0x32,0x11,0x12,0x39,0x2f,0x33,0xfd,0x32,0xce,0x17,0x32,0x11,0x12,0x39,0x2f,0x33,0xfd,0x32,0xce,0x17,0x32,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x05,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32, +0x16,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x05,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x05,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x04,0xa2,0x50, +0x08,0x68,0x64,0x0e,0x4f,0x07,0x6d,0x4f,0x52,0x68,0x02,0x8f,0x50,0x08,0x67,0x62,0x0e,0x52,0x08,0x6b,0x4f,0x52,0x6a,0xfa,0xfd,0x50,0x08,0x67,0x63,0x0d,0x52,0x08,0x6b,0x4f,0x52,0x6a,0x05,0x98,0x50,0x08,0x66,0x64,0x0c,0x52,0x07,0x6b,0x50,0x52,0x69,0xf9,0xe9,0x50,0x08,0x68,0x64,0x0e,0x4f,0x07,0x6d,0x4f,0x52,0x68,0x05,0x8f, +0x50,0x08,0x67,0x62,0x0e,0x52,0x08,0x6b,0x4f,0x52,0x6a,0xfa,0xfd,0x50,0x08,0x67,0x63,0x0d,0x52,0x08,0x6b,0x4f,0x52,0x6a,0x02,0x7e,0x50,0x08,0x68,0x64,0x0e,0x4f,0x07,0x6d,0x4f,0x52,0x68,0x04,0xa4,0x6a,0x6a,0x53,0x63,0x63,0xfe,0xaf,0x6a,0x6a,0x52,0x64,0x63,0x53,0x6a,0x6a,0x52,0x64,0x63,0xfd,0xc3,0x6b,0x6b,0x52,0x64,0x62, +0x54,0x6b,0x6b,0x53,0x63,0x62,0xfd,0xc1,0x6b,0x6b,0x52,0x64,0x63,0x53,0x6b,0x6b,0x52,0x64,0x63,0xfe,0xab,0x6b,0x6b,0x53,0x63,0x63,0x00,0x08,0x00,0x35,0xfe,0x66,0x07,0x68,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x95,0x40,0x4d,0x4f,0x15,0x5f,0x15,0x02,0x15,0x17,0x19, +0x1b,0x17,0x1b,0x17,0x1f,0x12,0x0b,0x09,0x40,0x07,0x50,0x07,0x02,0x07,0x05,0x09,0x05,0x09,0x05,0x0c,0x02,0x1e,0x2f,0x1f,0x01,0x1f,0x0c,0x03,0x02,0x12,0x10,0x0e,0x0c,0x14,0x16,0x08,0x0a,0x06,0x04,0x1a,0x18,0x1e,0x1c,0x00,0x02,0x16,0x0a,0x16,0x0a,0x11,0x02,0x18,0x04,0x18,0x04,0x1c,0x02,0x1c,0x02,0x0c,0x10,0x11,0x11,0x21, +0x0d,0x0c,0x0c,0x21,0x20,0x11,0x12,0x39,0x2f,0xcd,0x12,0x39,0x2f,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x00,0x2f,0xcd,0xd6,0xdd,0xd6,0xcd,0x10,0xd6,0x5d,0xcd,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x5d,0x10,0xcd,0x11, +0x12,0x39,0x39,0x2f,0x2f,0xcd,0x10,0xcd,0x5d,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x07,0x03,0x37,0x05,0x05,0x27,0x25,0x01,0x25,0x35,0x05,0x05,0x25,0x35,0x05,0x01,0x07,0x03,0x37,0x05,0x05,0x27,0x25,0x05,0x03,0x23,0x13,0x04,0x4c,0x5c,0x7c,0x76,0xfe,0x6a,0x58,0xa6,0x46,0x05,0x16,0xfe,0xc7,0x58,0x01,0x4d,0xfb,0x28,0xfe,0x9f, +0x01,0x61,0x05,0xd2,0xfe,0xa0,0x01,0x60,0xfe,0xe0,0x46,0xb8,0x58,0xfc,0xdb,0xfe,0xb2,0x43,0x01,0x39,0x02,0x04,0x75,0x62,0x5c,0x05,0x9a,0xfe,0xa0,0x01,0x60,0xfe,0x10,0x58,0x01,0x4e,0x44,0xb1,0xb8,0x58,0xa6,0xfd,0x2d,0x74,0x63,0x5c,0x9e,0x5c,0x7b,0x74,0xfd,0x7a,0x44,0x01,0x3a,0x58,0x81,0xa6,0x46,0xb8,0xbf,0xfe,0xa0,0x01, +0x60,0x00,0x00,0x02,0x00,0x29,0x00,0x00,0x04,0x38,0x05,0x9a,0x00,0x12,0x00,0x1a,0x00,0x45,0x40,0x23,0x0a,0x01,0x91,0x07,0x04,0x04,0x05,0x13,0x91,0x0b,0x0b,0x05,0x03,0x14,0x91,0x00,0x02,0x00,0x09,0x09,0x14,0x0f,0x7d,0x18,0x18,0x1c,0x0b,0x07,0x14,0x7e,0x04,0x00,0x00,0x1c,0x1b,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0x32,0x12, +0x39,0x2f,0xe1,0x11,0x39,0x2f,0x10,0xc6,0x00,0x2f,0xed,0x3f,0x39,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0xbc,0x93,0x93,0xa8,0xa2,0xa2,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe, +0xec,0x95,0xa2,0xfe,0xc9,0x04,0x74,0x9a,0x8c,0x8c,0x9a,0xfe,0xc6,0xcf,0xbf,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8c,0x7e,0x01,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x03,0xb4,0x05,0xec,0x00,0x12,0x00,0x19,0x00,0x47,0x40,0x24,0x0a,0x01,0x96,0x07,0x04,0x04,0x06,0x0b,0x95,0x13,0x13,0x00,0x06,0x00,0x14,0x95,0x00,0x02,0x00,0x09, +0x09,0x14,0x0f,0x83,0x17,0x17,0x1b,0x0b,0x07,0x14,0x84,0x04,0x00,0x00,0x1b,0x1a,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0x32,0x11,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x10,0xc6,0x00,0x2f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x21,0x32,0x16, +0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0xa6,0x79,0x79,0xa4,0x81,0x81,0x01,0x14,0x9d,0xb9,0xba,0x8e,0xfe,0xde,0xf6,0xcc,0xce,0x04,0xd1,0x85,0x96,0x96,0x85,0xfd,0xa6,0xa4,0x93,0x94,0xac,0x01,0xea,0xfe,0xa2,0xb4,0xaa,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x0e,0x00,0x1a,0x00,0x75,0x40,0x3f, +0x16,0x00,0x15,0x01,0x15,0x13,0x03,0x14,0x02,0x14,0x03,0x00,0x06,0x09,0x16,0x13,0x10,0x0f,0x01,0x02,0x06,0x14,0x0f,0x15,0x1f,0x15,0x2f,0x15,0x03,0x15,0x15,0x0f,0x06,0x91,0x10,0x10,0x08,0x0f,0x91,0x09,0x03,0x08,0x02,0x01,0x01,0x0d,0x07,0x15,0x00,0x14,0x01,0x14,0x14,0x10,0x0d,0x7d,0x18,0x18,0x1c,0x10,0x07,0x7e,0x08,0x2f, +0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x5d,0x33,0x11,0x12,0x39,0x2f,0x33,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x33,0x10,0xc6,0x32,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x31,0x30,0x01,0x17,0x07,0x27,0x06,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x16, +0x15,0x14,0x01,0x11,0x33,0x32,0x37,0x27,0x37,0x17,0x36,0x35,0x10,0x21,0x03,0x81,0x75,0x73,0x7d,0x67,0x7e,0xbd,0xa8,0x01,0x8a,0xe6,0xfd,0xfd,0x3b,0xb0,0x52,0x46,0x66,0x72,0x6f,0x52,0xfe,0xb0,0x02,0x89,0xb0,0x4d,0xba,0x28,0xfd,0xe2,0x05,0x9a,0xe0,0xcc,0xe3,0x01,0xf7,0xfd,0xb4,0x15,0x97,0x4e,0xa4,0x4e,0x8c,0x01,0x1c,0x00, +0x00,0x02,0x00,0xa6,0xfe,0x23,0x04,0x54,0x04,0x18,0x00,0x14,0x00,0x25,0x00,0x7c,0x40,0x44,0x18,0x00,0x17,0x01,0x17,0x15,0x03,0x16,0x02,0x16,0x03,0x00,0x05,0x10,0x18,0x15,0x24,0x1d,0x09,0x1c,0x01,0x02,0x05,0x16,0x17,0x40,0x09,0x0c,0x48,0x17,0x17,0x1d,0x24,0x95,0x05,0x16,0x0e,0x1d,0x95,0x10,0x10,0x0c,0x0f,0x02,0xdf,0x01, +0x01,0x01,0x01,0x13,0x09,0x17,0x00,0x16,0x01,0x16,0x16,0x21,0x13,0x83,0x1a,0x1a,0x27,0x21,0x0c,0x09,0x84,0x0a,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x5d,0x33,0x11,0x12,0x39,0x2f,0x5d,0x33,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x11,0x39,0x2f,0x2b,0x33,0x10,0xc6,0x32,0x3f,0x11,0x12,0x39,0x39,0x11,0x12,0x39, +0x39,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x31,0x30,0x25,0x17,0x07,0x27,0x06,0x23,0x22,0x27,0x23,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x05,0x27,0x37,0x17,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x03,0xae,0x70,0x72,0x72,0x52,0x67,0xd7,0x5c,0x04,0xa4,0xa4,0x04,0x74, +0xee,0xc0,0xe4,0xfe,0x92,0x78,0x74,0x72,0x5a,0xa2,0x85,0x8d,0xb0,0xa6,0x80,0x42,0x56,0xa8,0x4e,0xaa,0x22,0xac,0xfd,0x8f,0x05,0xdd,0xb4,0xcc,0xfe,0xf2,0xe3,0xfe,0xc9,0x69,0xb1,0x4d,0xaa,0x71,0xd0,0xa9,0xc9,0xc9,0x98,0x8f,0x7f,0xad,0x00,0x01,0x00,0xbc,0xfe,0x66,0x04,0x33,0x05,0x9a,0x00,0x19,0x00,0x40,0x40,0x24,0x18,0x91, +0x04,0x01,0x14,0x01,0x24,0x01,0x03,0x01,0x03,0x0b,0x0a,0x91,0x11,0x11,0x0b,0x10,0x91,0x0d,0x03,0x0b,0x0f,0x0f,0x0c,0x15,0x7d,0x06,0x06,0x1b,0x11,0x0b,0x7e,0x01,0x42,0x0c,0x2f,0xe2,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x10,0xde,0x32,0x5d,0xed,0x31,0x30,0x13,0x35,0x16,0x33, +0x32,0x36,0x35,0x34,0x02,0x23,0x23,0x11,0x23,0x11,0x21,0x15,0x21,0x11,0x33,0x20,0x00,0x11,0x14,0x00,0x21,0x22,0xbe,0xa4,0x9a,0xbd,0xca,0xfe,0xdb,0x46,0xa8,0x02,0xd0,0xfd,0xd8,0x4a,0x01,0x27,0x01,0x5e,0xfe,0xd9,0xfe,0xf4,0xae,0xfe,0xb2,0xb8,0x6c,0xdf,0xcb,0xd5,0x01,0x25,0xfd,0x5e,0x05,0x9a,0x9a,0xfe,0x3a,0xfe,0x97,0xfe, +0xdd,0xfd,0xfe,0xb5,0x00,0x01,0x00,0xa6,0xfe,0x66,0x03,0xaa,0x04,0x00,0x00,0x19,0x00,0x3f,0x40,0x23,0x18,0x95,0x04,0x01,0x14,0x01,0x24,0x01,0x03,0x01,0x03,0x0b,0x0a,0x95,0x11,0x11,0x0b,0x10,0x95,0x0d,0x0f,0x0b,0x0e,0x0e,0x0c,0x15,0x83,0x06,0x06,0x1b,0x11,0x0b,0x84,0x01,0x0c,0x2f,0x33,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11, +0x39,0x2f,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x10,0xde,0x32,0x5d,0xed,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x15,0x21,0x11,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0xa6,0x75,0x8b,0xa7,0xb5,0xda,0xbe,0x20,0xa4,0x02,0x76,0xfe,0x2e,0x42,0xf7,0x01,0x27,0xfe,0xe9,0xef,0x99, +0xfe,0xa0,0xa0,0x4e,0xbb,0xa9,0xb9,0xd7,0xfe,0x1a,0x04,0x00,0x8c,0xff,0x00,0xfe,0xdd,0xf9,0xd7,0xfe,0xe5,0x00,0x00,0x01,0x00,0x60,0xfe,0xae,0x03,0xe2,0x05,0xb2,0x00,0x31,0x00,0x79,0x40,0x46,0x08,0x0a,0xe2,0x40,0x05,0x32,0x80,0x00,0x0e,0x26,0x2c,0x2b,0x18,0x92,0x1b,0x1b,0x26,0x00,0x11,0x10,0x11,0x20,0x11,0x03,0x11,0x13, +0x92,0x0e,0x13,0x0f,0x23,0x1f,0x23,0x2f,0x23,0x03,0x23,0x21,0x92,0x26,0x04,0x08,0x02,0xc2,0x0c,0x00,0xc2,0x0e,0x0e,0x2f,0x10,0x2b,0x19,0x29,0x7d,0x1e,0x23,0x1e,0x19,0x19,0x1e,0x23,0x03,0x10,0x2f,0x7d,0x16,0x16,0x33,0x10,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x11,0x12,0x39,0x2f,0xe1, +0xd6,0xe1,0xc6,0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0xfd,0xc6,0x5d,0x12,0x39,0x2f,0xed,0x39,0x39,0x11,0x12,0x39,0x1a,0x10,0xdc,0x1a,0xfd,0xc6,0x31,0x30,0x05,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x27,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22, +0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x10,0x05,0x15,0x16,0x16,0x15,0x14,0x06,0x02,0x4c,0x35,0x5a,0x4c,0x47,0x38,0x32,0x30,0x44,0x2d,0xf1,0x84,0xa8,0xd5,0x9b,0xb7,0xfe,0x8b,0x95,0x89,0x9f,0xaf,0x91,0x7f,0xb4,0xaa,0x9e,0xce,0xcc,0xea,0xfe,0xf0,0x94,0xae,0xd8,0x10,0x56,0x40,0x4f,0x5d,0x16,0x6d,0x19,0x42,0x3e,0x50,0x54,0xb6, +0x7b,0x96,0x7f,0x01,0x14,0x8b,0x8a,0x7e,0x6c,0x82,0x71,0xaa,0x58,0xc2,0x9e,0xfe,0xe9,0x49,0x04,0x11,0xbc,0x8b,0xab,0xe1,0x00,0x01,0x00,0x58,0xfe,0xae,0x03,0x44,0x04,0x18,0x00,0x2e,0x00,0x70,0x40,0x3d,0x08,0x0a,0xe2,0x40,0x05,0x2f,0x80,0x00,0x0e,0x24,0x29,0x28,0x17,0x95,0x40,0x1a,0x24,0x0e,0x1a,0x95,0x2b,0x30,0x11,0x13, +0x95,0x0e,0x16,0x21,0x1f,0x95,0x24,0x10,0x08,0x02,0xc2,0x0c,0x00,0xc2,0x0e,0x0e,0x2c,0x11,0x29,0x18,0x26,0x84,0x1c,0x21,0x1c,0x18,0x18,0x1c,0x21,0x03,0x11,0x2c,0x84,0x15,0x15,0x30,0x11,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x11,0x12,0x39,0x2f,0xe1,0xd6,0xe1,0xc6,0x00,0x3f,0xfd,0xc6, +0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x11,0x12,0x39,0x1a,0x10,0xdc,0x1a,0xfd,0xc6,0x31,0x30,0x05,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x27,0x26,0x27,0x35,0x16,0x33,0x20,0x35,0x34,0x21,0x23,0x35,0x33,0x20,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x14,0x07,0x15, +0x16,0x16,0x15,0x14,0x06,0x02,0x00,0x33,0x5a,0x4b,0x48,0x38,0x32,0x30,0x44,0x2d,0xc9,0x66,0x86,0xb4,0x01,0x0e,0xfe,0xd7,0x65,0x60,0x01,0x05,0x77,0x68,0x96,0x96,0xaa,0x8e,0x01,0x76,0xd2,0x70,0x8c,0xac,0x12,0x53,0x41,0x4f,0x5d,0x16,0x6d,0x19,0x42,0x3e,0x50,0x04,0x30,0xa2,0x4c,0xac,0xaa,0x8c,0xa2,0x44,0x54,0x4c,0x99,0x3d, +0xfe,0xee,0xbe,0x32,0x04,0x09,0x87,0x6a,0x77,0xa0,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x18,0x00,0x52,0x40,0x2a,0x08,0x11,0x96,0x0b,0x0e,0x0e,0x0d,0x13,0x04,0x18,0x04,0x18,0x01,0x18,0x06,0x16,0x0d,0x03,0x01,0x06,0x10,0x10,0x16,0x11,0x16,0x17,0x17,0x06,0x01,0x00,0x00,0x1a,0x19,0x09,0x0e,0x11,0x18,0x03, +0x06,0x7e,0x0b,0x07,0x2f,0x33,0xe1,0x17,0x32,0xc6,0x11,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0x00,0x2f,0x33,0x3f,0x33,0x12,0x39,0x5d,0x11,0x33,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x36,0x37, +0x01,0x33,0x01,0x04,0xa2,0xea,0xfd,0xd6,0x1f,0x07,0x04,0xa8,0xaa,0xaa,0xa8,0xe8,0xe8,0x04,0x0e,0x18,0x02,0x18,0xd1,0xfd,0x99,0x02,0x90,0x25,0x0d,0xfd,0x3e,0x04,0x9c,0x85,0x79,0x79,0x85,0xfe,0x5c,0x16,0x1b,0x02,0x71,0xfd,0x50,0x00,0x00,0x01,0x00,0x27,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x14,0x00,0x4d,0x40,0x27,0x0f,0x06, +0x96,0x0c,0x09,0x09,0x0b,0x00,0x11,0x02,0x14,0x14,0x04,0x12,0x0f,0x01,0x04,0x0e,0x0e,0x12,0x0f,0x07,0x05,0x12,0x13,0x13,0x04,0x01,0x00,0x00,0x16,0x0c,0x0f,0x14,0x03,0x04,0x84,0x09,0x05,0x2f,0x33,0xe1,0x17,0x32,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0x10,0xc6,0x11,0x12,0x39,0x2f,0x00,0x2f,0x33,0x3f,0x11,0x39,0x11,0x33, +0x33,0x3f,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x01,0x33,0x01,0x03,0xf8,0xe6,0xfe,0x3c,0x04,0xa4,0x7f,0x7f,0xa4,0x01,0x54,0xfe,0xac,0x04,0x01,0xae,0xd7,0xfe,0x25,0x01,0xec,0xfe,0x14,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfd,0x79,0x01,0xd5, +0xfe,0x12,0x00,0x01,0x00,0x29,0x00,0x00,0x05,0xac,0x05,0x9a,0x00,0x12,0x00,0x42,0x40,0x20,0x0d,0x04,0x12,0x12,0x06,0x08,0x91,0x10,0x0b,0x03,0x01,0x06,0x10,0x11,0x11,0x06,0x01,0x00,0x00,0x14,0x07,0x09,0x09,0x13,0x12,0x0b,0x06,0x7e,0x07,0x07,0x14,0x13,0x11,0x12,0x39,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f, +0x33,0x12,0x39,0x2f,0x33,0x00,0x2f,0x32,0x3f,0x33,0xed,0x12,0x39,0x11,0x33,0x33,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x05,0xac,0xea,0xfd,0xd6,0x1b,0x0b,0x04,0xa8,0xfe,0x63,0x02,0x45,0x04,0x0e,0x18,0x02,0x18,0xd1,0xfd,0x99,0x02,0x90,0x20,0x12,0xfd,0x3e, +0x05,0x00,0x9a,0xfd,0x5e,0x16,0x1b,0x02,0x71,0xfd,0x50,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x04,0xa4,0x04,0x00,0x00,0x0e,0x00,0x42,0x40,0x20,0x0b,0x02,0x0e,0x0e,0x04,0x06,0x95,0x0c,0x09,0x0f,0x01,0x04,0x0c,0x0d,0x0d,0x04,0x01,0x00,0x00,0x10,0x05,0x07,0x07,0x0f,0x0e,0x09,0x04,0x84,0x05,0x05,0x10,0x0f,0x11,0x12,0x39,0x2f, +0xe1,0x32,0x32,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0x00,0x2f,0x32,0x3f,0x33,0xed,0x12,0x39,0x11,0x33,0x33,0x31,0x30,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x01,0x33,0x01,0x04,0xa4,0xe4,0xfe,0x3e,0x04,0xa4,0xfe,0xc8,0x01,0xdc,0x04,0x01,0xae,0xd9,0xfe,0x23,0x01,0xea,0xfe,0x16, +0x03,0x74,0x8c,0xfe,0x2d,0x01,0xd3,0xfe,0x10,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x06,0x90,0x05,0x9a,0x00,0x0d,0x00,0x3b,0x40,0x1f,0x05,0x91,0x40,0x0a,0x09,0x06,0x0a,0x91,0x2b,0x30,0x01,0x91,0x0c,0x0c,0x09,0x03,0x03,0x06,0x00,0x00,0x0f,0x02,0x7e,0x0b,0x03,0x03,0x0f,0x0a,0x06,0x7e,0x07,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33, +0xe1,0x11,0x39,0x2f,0x00,0x2f,0x33,0x3f,0x33,0x10,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x21,0x06,0x90,0xfe,0x62,0xa8,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0x02,0x46,0x05,0x00,0xfb,0x00,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0x00,0x01,0x00,0xa6, +0x00,0x00,0x05,0x2f,0x04,0x00,0x00,0x0d,0x00,0x3b,0x40,0x1f,0x05,0x95,0x40,0x0a,0x09,0x06,0x0a,0x95,0x2b,0x30,0x01,0x95,0x0c,0x0c,0x09,0x0f,0x03,0x06,0x00,0x00,0x0f,0x02,0x84,0x0b,0x03,0x03,0x0f,0x0a,0x05,0x84,0x07,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xe1,0x11,0x39,0x2f,0x00,0x2f,0x33,0x3f,0x33,0x10,0xed,0x2b,0x00,0x18, +0x2f,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x21,0x05,0x2f,0xfe,0xc9,0xa4,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0x01,0xdb,0x03,0x74,0xfc,0x8c,0x01,0xd1,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4,0x00,0x01,0x00,0xbc,0xfe,0x66,0x07,0xbe,0x05,0x9a,0x00,0x1b,0x00,0x45,0x40,0x27,0x0a,0x91, +0x13,0x13,0x0c,0x0e,0x91,0x11,0x03,0x1a,0x91,0x04,0x01,0x14,0x01,0x24,0x01,0x03,0x01,0x03,0x0c,0x0c,0x0f,0x13,0x0b,0x7e,0x01,0x42,0x0c,0x0c,0x10,0x17,0x7d,0x06,0x06,0x1d,0x0f,0x7e,0x10,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe2,0xe1,0x32,0x00,0x2f,0x33,0x10,0xde,0x32,0x5d,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31, +0x30,0x01,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x00,0x23,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x20,0x00,0x11,0x14,0x00,0x21,0x22,0x04,0x4c,0xa4,0x99,0xbc,0xcd,0xff,0x00,0xda,0x46,0xa8,0xfd,0x1a,0xa8,0x04,0x36,0x4a,0x01,0x26,0x01,0x5c,0xfe,0xd6,0xfe,0xfa,0xae,0xfe,0xb2,0xae,0x6c,0xe7,0xcd,0xd3,0x01,0x29, +0xfd,0x5c,0x05,0x04,0xfa,0xfc,0x05,0x9a,0xfd,0x9e,0xfe,0x99,0xfe,0xdd,0xff,0xfe,0xb7,0x00,0x00,0x01,0x00,0xa6,0xfe,0x66,0x06,0x56,0x04,0x00,0x00,0x1b,0x00,0x44,0x40,0x26,0x0a,0x95,0x14,0x14,0x0c,0x0d,0x95,0x12,0x0f,0x1a,0x95,0x04,0x01,0x14,0x01,0x24,0x01,0x03,0x01,0x03,0x0c,0x0c,0x0f,0x13,0x0b,0x84,0x01,0x0c,0x0c,0x10, +0x17,0x83,0x06,0x06,0x1d,0x0f,0x84,0x10,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x32,0x00,0x2f,0x33,0x10,0xde,0x32,0x5d,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22, +0x03,0x54,0x72,0x8e,0xa7,0xb5,0xda,0xbe,0x20,0xa4,0xfd,0xf6,0xa4,0x03,0x52,0x42,0xf7,0x01,0x25,0xfe,0xeb,0xef,0x99,0xfe,0xa0,0xa4,0x4c,0xb6,0xa8,0xb9,0xd7,0xfe,0x1a,0x03,0x74,0xfc,0x8c,0x04,0x00,0xfe,0x74,0xfe,0xdb,0xf7,0xd5,0xfe,0xe3,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0xb6,0x05,0xb2,0x00,0x3b,0x00,0x4f,0x00,0x4a, +0x40,0x29,0x46,0x7d,0x21,0x1c,0x3a,0x2e,0x03,0x21,0x2b,0x7d,0x3c,0x21,0x0c,0x3c,0x3c,0x0c,0x21,0x03,0x51,0x15,0x7d,0x05,0x31,0x91,0x37,0x13,0x4b,0x1a,0x41,0x91,0x26,0x26,0x1a,0x10,0x91,0x0a,0x04,0x1a,0x91,0x00,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f, +0x2f,0x10,0xed,0x11,0x17,0x39,0x10,0xed,0x31,0x30,0x05,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x02,0x07,0x16,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x26,0x27,0x06, +0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x3e,0x03,0x02,0xff,0x8e,0xf6,0xb5,0x68,0x57,0xa9,0xf8,0xa0,0x24,0x23,0x0e,0x26,0x13,0x73,0xb5,0x7e,0x42,0x44,0x80,0xb6,0x72,0x41,0x3a,0x38,0x57,0x3b,0x1f,0x33,0x5e,0x89,0x55,0x5c,0x8a,0x5c,0x2f,0x76,0x62,0x18,0x32,0x1b,0x31,0x66,0x26,0x50,0x7a,0x42,0x74, +0x35,0x78,0x01,0x33,0x18,0x2f,0x47,0x30,0x31,0x49,0x30,0x18,0x1c,0x35,0x4d,0x31,0x33,0x44,0x29,0x11,0x18,0x5f,0xb7,0x01,0x0f,0xaf,0xaa,0x01,0x17,0xc7,0x6e,0x08,0x99,0x04,0x05,0x53,0x9a,0xdb,0x87,0x81,0xd8,0x9c,0x58,0x0e,0x38,0x8b,0x9c,0xa6,0x52,0x86,0xd2,0x91,0x4c,0x4c,0x91,0xd2,0x86,0xc6,0xfe,0xd4,0x62,0x07,0x07,0x18, +0x16,0x9b,0x28,0x1e,0x1b,0x3d,0x02,0xfb,0x5a,0x97,0x6f,0x3e,0x3c,0x6d,0x9a,0x5f,0x4f,0x96,0x87,0x71,0x29,0x2c,0x76,0x89,0x95,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x55,0x04,0x1a,0x00,0x38,0x00,0x48,0x00,0x54,0x40,0x31,0x1b,0x36,0x1e,0x28,0xef,0x39,0x43,0x84,0x1e,0x4f,0x39,0x01,0x39,0x0c,0x1e,0x1e,0x0c,0x39,0x03,0x4a, +0x14,0x83,0x40,0x05,0x50,0x05,0x60,0x05,0x03,0x05,0x2e,0x95,0x34,0x16,0x46,0x19,0x3e,0x95,0x23,0x23,0x19,0x0f,0x95,0x0a,0x0f,0x19,0x95,0x00,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x05,0x22, +0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x27,0x06,0x06,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x02, +0x53,0x6a,0xb6,0x86,0x4d,0x43,0x7e,0xb4,0x71,0x1d,0x1a,0x19,0x1e,0x48,0x76,0x53,0x2d,0x2a,0x52,0x77,0x4d,0x1e,0x1c,0x44,0x4d,0x22,0x45,0x69,0x47,0x48,0x69,0x45,0x21,0x4d,0x42,0x0e,0x1d,0x10,0x23,0x4b,0x1c,0x39,0x5c,0x61,0x56,0x2a,0x5c,0x01,0x02,0x10,0x20,0x2c,0x1d,0x21,0x2f,0x1e,0x0e,0x44,0x3f,0x3d,0x35,0x18,0x44,0x85, +0xc4,0x7f,0x7a,0xca,0x91,0x51,0x08,0x8d,0x09,0x3d,0x6b,0x92,0x54,0x57,0x91,0x6a,0x3b,0x03,0x4a,0xd5,0x86,0x44,0x84,0x69,0x41,0x3e,0x67,0x85,0x47,0x86,0xd4,0x4a,0x02,0x03,0x11,0x10,0x88,0x23,0x28,0x14,0x15,0x02,0x25,0x38,0x5b,0x41,0x24,0x28,0x44,0x5a,0x32,0x7e,0xb0,0x31,0x31,0xaf,0x00,0x01,0x00,0x5e,0xfe,0xae,0x04,0x8c, +0x05,0xb2,0x00,0x23,0x00,0x52,0x40,0x2c,0x0a,0x0c,0xe2,0x40,0x07,0x10,0x80,0x02,0x10,0x16,0x30,0x19,0x01,0x19,0x19,0x1b,0x91,0x16,0x04,0x20,0x23,0x01,0x23,0x23,0x21,0x91,0x10,0x13,0x0a,0x0a,0x10,0x0e,0xc2,0x02,0x04,0x04,0x13,0x18,0x00,0x00,0x25,0x1e,0x7d,0x13,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0xf1,0x32, +0xc2,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0xed,0x32,0x2f,0x5d,0x11,0x12,0x39,0x1a,0x10,0xdc,0x1a,0xfd,0xc6,0x31,0x30,0x25,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x27,0x24,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x04,0x8c,0x72,0xae, +0x34,0x5a,0x4c,0x47,0x38,0x31,0x31,0x44,0x2d,0xfe,0xd1,0xfe,0x99,0x01,0x9e,0x01,0x3e,0xcc,0x86,0x9a,0xba,0xf7,0xfe,0xcd,0x01,0x1f,0xe9,0xd8,0x9e,0x3c,0x3c,0x12,0x54,0x40,0x4e,0x5e,0x16,0x6d,0x19,0x42,0x3e,0x50,0x04,0x01,0x89,0x01,0x3d,0x01,0x58,0x01,0xa8,0x3b,0xb3,0x56,0xfe,0xb6,0xfe,0xec,0xfe,0xfa,0xfe,0xc9,0x60,0x00, +0x00,0x01,0x00,0x60,0xfe,0xae,0x03,0x62,0x04,0x18,0x00,0x23,0x00,0x4c,0x40,0x28,0x15,0x17,0xe2,0x40,0x12,0x24,0x80,0x0d,0x1b,0x21,0x00,0x00,0x02,0x95,0x21,0x10,0x30,0x0a,0x01,0x0a,0x0a,0x08,0x95,0x1b,0x16,0x15,0x15,0x1b,0x19,0xc2,0x0d,0x0f,0x0f,0x0a,0x1e,0x0b,0x00,0x05,0x83,0x1e,0x2f,0xe1,0x2f,0x33,0x11,0x12,0x39,0x2f, +0x33,0xf1,0x32,0xc2,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0xed,0x32,0x2f,0x11,0x12,0x39,0x1a,0x10,0xdc,0x1a,0xfd,0xc6,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x27,0x26,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x03,0x62, +0x72,0x82,0x9d,0xc9,0xbd,0x9f,0x86,0x76,0x58,0x72,0x32,0x59,0x4c,0x47,0x38,0x31,0x31,0x44,0x2e,0xc8,0xf4,0x01,0x22,0xf2,0x87,0x67,0x03,0x3e,0x50,0xe1,0xb7,0xb4,0xd0,0x59,0x9c,0x35,0x0e,0x54,0x3e,0x4f,0x5d,0x16,0x6d,0x19,0x42,0x40,0x50,0x0e,0x01,0x19,0xd7,0xfd,0x01,0x33,0x32,0x00,0x00,0x01,0x00,0x29,0xfe,0x80,0x04,0x0c, +0x05,0x9a,0x00,0x0b,0x00,0x42,0xb9,0x00,0x05,0x01,0x30,0x40,0x14,0x01,0x08,0x91,0x0a,0x03,0x02,0x91,0x40,0x07,0x00,0x0e,0x02,0x09,0x07,0x42,0x09,0x09,0x07,0x0c,0x03,0xb8,0x01,0x2c,0xb7,0x06,0x06,0x02,0x7e,0x07,0x07,0x0d,0x0c,0x11,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f, +0x1a,0xed,0x3f,0xed,0x32,0x3f,0x31,0x30,0x01,0x21,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x04,0x0c,0xfe,0x62,0xc1,0x9b,0xce,0xfe,0x63,0x03,0xe3,0x05,0x02,0xfb,0x96,0xfd,0xe8,0x01,0x80,0x05,0x02,0x98,0x00,0x01,0x00,0x1e,0xfe,0x8a,0x03,0x29,0x04,0x00,0x00,0x0b,0x00,0x42,0xb9,0x00,0x05,0x01,0x31,0x40,0x14,0x01, +0x08,0x95,0x0a,0x0f,0x02,0x95,0x40,0x07,0x00,0x0e,0x02,0x09,0x07,0x42,0x09,0x09,0x07,0x0c,0x03,0xb8,0x01,0x2c,0xb7,0x06,0x06,0x02,0x84,0x07,0x07,0x0d,0x0c,0x11,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a,0xed,0x3f,0xed,0x32,0x3f,0x31,0x30,0x01,0x21,0x11,0x33,0x11,0x23, +0x11,0x23,0x11,0x21,0x35,0x21,0x03,0x29,0xfe,0xcd,0x98,0x8e,0xae,0xfe,0xcc,0x03,0x0b,0x03,0x74,0xfd,0x18,0xfd,0xfe,0x01,0x76,0x03,0x74,0x8c,0x00,0x01,0x00,0x29,0xfe,0x80,0x06,0xbc,0x05,0x9a,0x00,0x0f,0x00,0x50,0xb6,0x09,0x04,0x91,0x0c,0x07,0x03,0x01,0xb8,0x01,0x30,0x40,0x10,0x0e,0x0a,0x91,0x40,0x03,0x05,0x0e,0x03,0x0a, +0x08,0x42,0x08,0x08,0x0b,0x0a,0x0f,0xb8,0x01,0x2c,0x40,0x0d,0x02,0x02,0x0e,0x7e,0x0b,0x0b,0x11,0x0a,0x7e,0x03,0x03,0x11,0x10,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a,0xed,0x32,0x3f,0x3f,0x33,0xed,0x32,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x21, +0x35,0x21,0x15,0x21,0x11,0x21,0x11,0x33,0x11,0x33,0x06,0xbc,0x9b,0xfb,0xa5,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x02,0xe6,0xa8,0xc0,0xfe,0x80,0x01,0x80,0x05,0x02,0x98,0x98,0xfb,0x96,0x05,0x02,0xfa,0xfe,0x00,0x00,0x01,0x00,0x1e,0xfe,0x8b,0x05,0x3c,0x04,0x00,0x00,0x0f,0x00,0x50,0xb9,0x00,0x01,0x01,0x31,0x40,0x16,0x09,0x04,0x95, +0x0c,0x06,0x0f,0x0e,0x0a,0x95,0x40,0x03,0x05,0x0e,0x03,0x0a,0x08,0x42,0x08,0x08,0x0b,0x0a,0x0f,0xb8,0x01,0x2c,0x40,0x0d,0x02,0x02,0x0e,0x84,0x0b,0x0b,0x11,0x0a,0x84,0x03,0x03,0x11,0x10,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a,0xed,0x32,0x3f, +0x33,0xed,0x32,0x3f,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x21,0x11,0x33,0x11,0x33,0x05,0x3c,0x8e,0xfc,0xa4,0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0x02,0x0a,0xa4,0x98,0xfe,0x8b,0x01,0x75,0x03,0x74,0x8c,0x8c,0xfd,0x18,0x03,0x74,0xfc,0x8c,0x00,0x00,0x01,0x00,0xa6,0xfe,0x80,0x05,0x42,0x05,0x9a,0x00,0x14, +0x00,0x3d,0x40,0x0b,0x10,0x04,0x0e,0x91,0x06,0x06,0x03,0x11,0x0b,0x03,0x01,0xb8,0x01,0x30,0xb3,0x13,0x91,0x03,0x14,0xb8,0x01,0x2c,0x40,0x0b,0x02,0x02,0x12,0x7e,0x04,0x11,0x11,0x16,0x0b,0x7e,0x0a,0x2f,0xe1,0x11,0x39,0x2f,0x33,0xe1,0x32,0x2f,0xe1,0x00,0x2f,0xed,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x32,0x32,0x31,0x30,0x01, +0x23,0x11,0x23,0x11,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x11,0x33,0x05,0x42,0x9c,0xcd,0xe5,0xc5,0xbc,0xcd,0xa8,0xf6,0xb2,0xe3,0xa8,0xc1,0xfe,0x80,0x01,0x80,0x02,0x85,0x79,0xc3,0xb0,0x02,0x1b,0xfd,0xed,0xe7,0x6e,0x02,0x8c,0xfa,0xfe,0x00,0x00,0x01,0x00,0x98,0xfe,0x8b,0x04,0x77,0x04,0x00, +0x00,0x13,0x00,0x3d,0x40,0x0b,0x0f,0x04,0x0d,0xec,0x06,0x06,0x03,0x10,0x0a,0x0f,0x01,0xb8,0x01,0x31,0xb3,0x12,0x95,0x03,0x13,0xb8,0x01,0x2c,0x40,0x0b,0x02,0x02,0x11,0x84,0x04,0x0f,0x0f,0x15,0x0a,0x84,0x09,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x32,0x2f,0xe1,0x00,0x2f,0xed,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x32,0x32,0x31, +0x30,0x01,0x23,0x11,0x23,0x11,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x11,0x33,0x04,0x77,0x8d,0xae,0xb4,0x98,0xfe,0xa8,0xa4,0xc2,0x94,0xaa,0xa3,0x98,0xfe,0x8b,0x01,0x75,0x01,0x9c,0x62,0x01,0x6c,0x01,0x5a,0xfe,0xae,0xe1,0x56,0x01,0xdd,0xfc,0x8c,0x00,0x02,0x00,0x29,0xff,0xe8,0x06,0x58,0x05,0xb2, +0x00,0x1c,0x00,0x23,0x00,0x56,0x40,0x19,0x13,0x0c,0x18,0x01,0x91,0x40,0x23,0x1b,0x09,0x23,0x91,0x2b,0x30,0x20,0x91,0x1b,0x04,0x06,0x04,0x91,0x40,0x09,0x13,0x13,0x15,0xb8,0x01,0x2c,0x40,0x13,0x10,0x0c,0x80,0x06,0x06,0x0c,0x00,0x7d,0x1d,0x1d,0x25,0x0c,0x23,0x42,0x01,0x7d,0x18,0x42,0x0c,0x2f,0xe1,0xf1,0xe1,0x11,0x12,0x39, +0x2f,0xe1,0x11,0x39,0x2f,0x1a,0x10,0xdd,0xe1,0x32,0x00,0x3f,0x1a,0xfd,0xc6,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x33,0x32,0xc4,0x31,0x30,0x01,0x21,0x16,0x00,0x33,0x20,0x37,0x15,0x06,0x21,0x20,0x00,0x03,0x23,0x22,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x33,0x12,0x00,0x21,0x20,0x03,0x26,0x02,0x23,0x22,0x00,0x07, +0x06,0x58,0xfb,0xa2,0x10,0x01,0x1c,0xda,0x01,0x09,0xc2,0xc5,0xfe,0xe4,0xfe,0xda,0xfe,0x95,0x0f,0x1d,0x7c,0x88,0x27,0x8f,0x29,0x84,0x12,0x1d,0x01,0x6f,0x01,0x16,0x02,0x6a,0xb4,0x08,0xe7,0xc9,0xd0,0xfe,0xf6,0x16,0x02,0x7f,0xeb,0xfe,0xeb,0xa4,0xaa,0x91,0x01,0x6a,0x01,0x2d,0x8b,0x7d,0x5e,0x4a,0x47,0x52,0x80,0x01,0x30,0x01, +0x6c,0xfd,0x64,0xed,0x01,0x17,0xfe,0xe4,0xe8,0x00,0x00,0x02,0x00,0x29,0xff,0xe8,0x04,0xc4,0x04,0x18,0x00,0x1e,0x00,0x25,0x00,0x5f,0x40,0x0e,0x13,0x0c,0x0c,0x01,0x95,0x18,0x25,0x25,0x04,0x22,0x95,0x1b,0x10,0x06,0xb8,0xff,0xc0,0x40,0x15,0x09,0x0e,0x48,0x06,0x06,0x04,0x95,0x09,0x16,0x18,0x00,0x0c,0x25,0x1f,0x01,0x06,0x06, +0x00,0x0c,0x13,0x15,0xb8,0x01,0x2c,0x40,0x0a,0x10,0x0c,0x00,0x83,0x1f,0x1f,0x27,0x01,0x83,0x0c,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x10,0xdd,0xe1,0x32,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x3f,0xed,0x32,0x2f,0x2b,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xc4,0x31,0x30,0x01,0x21,0x16,0x16,0x33,0x32,0x37, +0x15,0x06,0x23,0x22,0x02,0x27,0x23,0x22,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x33,0x36,0x24,0x33,0x32,0x12,0x15,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x04,0xc4,0xfd,0x2e,0x04,0xaf,0x9b,0xac,0x91,0x87,0xde,0xd0,0xf7,0x09,0x1b,0x77,0x8d,0x27,0x89,0x29,0x8a,0x14,0x1c,0x01,0x04,0xb0,0xca,0xdc,0xa8,0x01,0x85,0x7a,0x74, +0xa2,0x12,0x01,0xd7,0xab,0xba,0x72,0x9a,0x62,0x01,0x04,0xeb,0x85,0x6f,0x55,0x4a,0x47,0x4a,0x77,0xc8,0xee,0xfe,0xfc,0xe7,0x35,0x8d,0x9f,0xa6,0x86,0x00,0xff,0xff,0x00,0x29,0xfe,0x80,0x06,0x58,0x05,0xb2,0x02,0x26,0x06,0x1d,0x00,0x00,0x00,0x06,0x0b,0x51,0x00,0x00,0xff,0xff,0x00,0x29,0xfe,0x8a,0x04,0xc4,0x04,0x18,0x02,0x26, +0x06,0x1e,0x00,0x00,0x00,0x06,0x0b,0x52,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x01,0x64,0x05,0x9a,0x02,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0xff,0xea,0x00,0x00,0x07,0x02,0x07,0x1a,0x02,0x26,0x01,0xed,0x00,0x00,0x01,0x07,0x00,0xda,0x02,0x3f,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x24,0x1e,0x0d,0x00,0x25,0x01,0x21,0x05, +0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x04,0x00,0x00,0x05,0xf6,0x05,0xbe,0x02,0x26,0x02,0x0d,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0xc7,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x1c,0x16,0x09,0x00,0x25,0x01,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xbe,0xfe,0x66,0x04,0x4c,0x05,0x9a, +0x00,0x19,0x00,0x42,0x40,0x24,0x01,0x15,0x18,0x91,0x13,0x13,0x15,0x19,0x17,0x03,0x07,0x91,0x04,0x0a,0x14,0x0a,0x24,0x0a,0x03,0x0a,0x0c,0x15,0x19,0x00,0x00,0x04,0x7d,0x0f,0x0f,0x1b,0x01,0x18,0x14,0x7e,0x0a,0x15,0x2f,0x33,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x32,0x2f,0x33,0x00,0x2f,0xde,0x32,0x5d,0xed,0x3f,0x33,0x12,0x39, +0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x01,0x16,0x00,0x11,0x14,0x00,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x00,0x23,0x23,0x11,0x23,0x11,0x33,0x11,0x01,0x04,0x4c,0xfd,0xce,0xfa,0x01,0x1d,0xfe,0xd6,0xfe,0xf9,0xae,0x94,0xa4,0x9a,0xbc,0xcd,0xfe,0xff,0xda,0x46,0xa6,0xa6,0x02,0x17,0x05,0x9a,0xfd,0x97,0x21,0xfe,0xa1, +0xfe,0xfd,0xff,0xfe,0xb7,0x4c,0xae,0x6c,0xea,0xca,0xd6,0x01,0x26,0xfd,0x5c,0x05,0x9a,0xfd,0xa0,0x02,0x60,0x00,0x00,0x01,0x00,0xa6,0xfe,0x66,0x03,0xae,0x04,0x00,0x00,0x1a,0x00,0x42,0x40,0x24,0x01,0x14,0x19,0x95,0x13,0x13,0x14,0x1a,0x17,0x0f,0x07,0xec,0x04,0x0a,0x14,0x0a,0x24,0x0a,0x03,0x0a,0x0c,0x14,0x1a,0x00,0x00,0x04, +0x83,0x0f,0x0f,0x1c,0x17,0x01,0x14,0x84,0x0a,0x15,0x2f,0x33,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x32,0x2f,0x33,0x00,0x2f,0xde,0x32,0x5d,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x01,0x16,0x12,0x15,0x14,0x00,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x33,0x11,0x33, +0x01,0x03,0xae,0xfe,0x4c,0xc8,0xe6,0xfe,0xea,0xee,0x99,0x65,0x72,0x8e,0xa7,0xb5,0xda,0xbe,0x20,0xa4,0xa4,0x02,0x01,0x87,0x04,0x00,0xfe,0x6c,0x20,0xfe,0xe5,0xd9,0xd6,0xfe,0xe4,0x3a,0xa4,0x4c,0xb6,0xa8,0xb9,0xd7,0xfe,0x1a,0x04,0x00,0xfe,0x74,0x01,0x8c,0x00,0x01,0x00,0xbc,0xfe,0x66,0x04,0xf2,0x05,0x9a,0x00,0x18,0x00,0x40, +0x40,0x22,0x0a,0x7e,0x18,0x07,0x18,0x11,0x18,0x11,0x18,0x1a,0x06,0x02,0x7e,0x03,0x11,0x13,0x92,0x0e,0x08,0x03,0x01,0x91,0x06,0x40,0x04,0x03,0x06,0x91,0x2b,0x30,0x04,0x03,0x03,0x12,0x00,0x3f,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xed,0x3f,0x2f,0xed,0x32,0x01,0x2f,0xe1,0x32,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xe1,0x31,0x30, +0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x14,0x07,0x06,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x37,0x36,0x35,0x04,0x4a,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0xa8,0x95,0x94,0xfe,0xf8,0xae,0x94,0xa4,0x9a,0x5e,0x95,0x33,0x67,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfb,0x14,0xff,0xa4,0xa5,0x4c,0xae,0x6c, +0x3a,0x3b,0x74,0xcb,0x00,0x01,0x00,0xa6,0xfe,0x66,0x03,0xf8,0x04,0x00,0x00,0x19,0x00,0x3a,0x40,0x1f,0x0a,0x84,0x07,0x12,0x03,0x19,0x19,0x1b,0x06,0x02,0x84,0x03,0x14,0x95,0x0f,0x08,0x0f,0x01,0x95,0x06,0x40,0x04,0x03,0x06,0x95,0x2b,0x30,0x04,0x0f,0x03,0x15,0x00,0x3f,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xed,0x3f,0x2f,0xed,0x01, +0x2f,0xe1,0x32,0x12,0x39,0x2f,0x12,0x39,0x33,0xe1,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x14,0x06,0x07,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x03,0x54,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0xa4,0x46,0x46,0x8b,0xef,0x9a,0x64,0x75,0x8b,0x54,0x83,0x5a,0x2f,0x01,0xd1,0xfe,0x2f,0x04,0x00, +0xfe,0x5c,0x01,0xa4,0xfc,0x69,0x72,0xbc,0x47,0x8e,0x3a,0xa0,0x4e,0x31,0x5c,0x85,0x54,0x00,0x00,0x01,0x00,0xa6,0xfe,0x80,0x04,0x81,0x05,0x9a,0x00,0x14,0x00,0x38,0xb9,0x00,0x02,0x01,0x30,0x40,0x0f,0x10,0x91,0x08,0x08,0x01,0x13,0x0d,0x03,0x05,0x91,0x01,0x00,0x7e,0x12,0x01,0xb8,0x01,0x2c,0xb7,0x04,0x12,0x06,0x06,0x16,0x0e, +0x7e,0x0b,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xd6,0xe1,0x10,0xe1,0x00,0x2f,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x3f,0x31,0x30,0x21,0x23,0x11,0x23,0x11,0x33,0x11,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x04,0x81,0xd7,0x9c,0xcb,0xe5,0xc5,0xbc,0xcd,0xa8,0xf6,0xb2,0xe3,0xa8,0xfe,0x80,0x02,0x18,0x01, +0xed,0x79,0xc3,0xb0,0x02,0x1b,0xfd,0xed,0xe7,0x6e,0x02,0x8c,0x00,0x01,0x00,0x98,0xfe,0x8a,0x03,0xdf,0x04,0x00,0x00,0x13,0x00,0x3d,0x40,0x0b,0x11,0x06,0x0f,0xec,0x08,0x08,0x01,0x12,0x0c,0x0f,0x02,0xb8,0x01,0x31,0xb3,0x05,0x95,0x01,0x01,0xb8,0x01,0x2c,0x40,0x0b,0x04,0x00,0x84,0x06,0x06,0x11,0x11,0x15,0x0c,0x84,0x0b,0x2f, +0xe1,0x12,0x39,0x2f,0x33,0x10,0xe1,0xd6,0xe1,0x00,0x2f,0xed,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x23,0x11,0x33,0x11,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x03,0xdf,0xb0,0x8b,0x98,0xb4,0x98,0xfe,0xa8,0xa4,0xc2,0x94,0xaa,0xa3,0xfe,0x8a,0x02,0x02,0x01,0x10,0x62, +0x01,0x6c,0x01,0x5a,0xfe,0xae,0xe1,0x56,0x01,0xdd,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x19,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x55,0x01,0x5b,0x00,0x08,0xb3,0x02,0x13,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0xbe,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xda, +0x00,0xc6,0x00,0x00,0x00,0x08,0xb3,0x02,0x23,0x11,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0xe2,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xe6,0x01,0x5b,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf2,0x40,0x0a,0x1f,0x19,0x05,0x00,0x25,0x03,0x02,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, +0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0x87,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x00,0x8f,0x62,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x14,0x2f,0x29,0x08,0x14,0x25,0x03,0x02,0x2c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x0a,0x00,0x00,0x06,0x83,0x05,0x9a,0x02,0x06,0x00,0x91, +0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x06,0x56,0x04,0x18,0x02,0x06,0x00,0xa0,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x1b,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x13,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x12,0x12,0x0c,0x02,0x0b,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, +0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0xbe,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xe5,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x20,0x1a,0x0c,0x12,0x25,0x02,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0x56,0xff,0xe8,0x05,0x66,0x05,0xb2,0x00,0x11,0x00,0x18,0x00,0x3f,0x40,0x23, +0x12,0x91,0x40,0x01,0x09,0x0f,0x01,0x91,0x2b,0x30,0x2f,0x06,0x01,0x06,0x06,0x04,0x91,0x09,0x04,0x16,0x91,0x0f,0x13,0x06,0x06,0x00,0x0c,0x7d,0x01,0x12,0x12,0x1a,0x13,0x7d,0x00,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x13,0x21,0x26, +0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x25,0x21,0x16,0x12,0x33,0x32,0x00,0x56,0x04,0x5e,0x11,0xfe,0xe5,0xda,0xd8,0x9c,0x9e,0xe2,0x01,0x3f,0x01,0x6d,0xfe,0x94,0xfe,0xd3,0xfe,0xd1,0xfe,0xb8,0x04,0x5e,0xfc,0x56,0x04,0xf2,0xcf,0xcf,0x01,0x02,0x03,0x1a,0xed,0x01,0x13,0x60,0xa4,0x54,0xfe, +0x76,0xfe,0xa5,0xfe,0xbe,0xfe,0x5d,0x01,0x9f,0xfc,0xeb,0xfe,0xe7,0x01,0x18,0x00,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0xcf,0x04,0x18,0x02,0x06,0x05,0x07,0x00,0x00,0xff,0xff,0x00,0x56,0xff,0xe8,0x05,0x66,0x06,0xe4,0x02,0x26,0x06,0x32,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x2a,0x01,0x5d,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xec, +0x40,0x0a,0x28,0x22,0x00,0x0c,0x25,0x03,0x02,0x25,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0xcf,0x05,0x87,0x02,0x26,0x05,0x07,0x00,0x00,0x01,0x06,0x00,0x8f,0x7a,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x0a,0x29,0x23,0x12,0x0c,0x25,0x03,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01, +0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xea,0x00,0x00,0x07,0x02,0x06,0xe4,0x02,0x26,0x01,0xed,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0xd6,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x2d,0x27,0x0d,0x00,0x25,0x02,0x01,0x2a,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x04,0x00,0x00,0x05,0xf6,0x05,0x87, +0x02,0x26,0x02,0x0d,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x54,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf7,0x40,0x0a,0x25,0x1f,0x09,0x00,0x25,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xe2,0x06,0xe4,0x02,0x26,0x01,0xee,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x61, +0x01,0x5d,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xe0,0x40,0x0a,0x33,0x2d,0x01,0x1f,0x25,0x02,0x01,0x30,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x50,0xff,0xe7,0x03,0x3b,0x05,0x87,0x02,0x26,0x02,0x0e,0x00,0x00,0x01,0x06,0x00,0x8f,0x11,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf6,0x40,0x0a,0x31,0x2b, +0x12,0x16,0x25,0x02,0x01,0x2e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x01,0x00,0x52,0xff,0xe8,0x03,0xd3,0x05,0x9a,0x00,0x16,0x00,0x3f,0x40,0x20,0x0f,0x96,0x09,0x09,0x15,0x0b,0x91,0x0c,0x03,0x01,0x03,0x91,0x15,0x13,0x0a,0x0f,0x0e,0x09,0x09,0x06,0x01,0x0e,0x0b,0x0e,0x0b,0x01,0x12,0x7d,0x06,0x06,0x18,0x01, +0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x2f,0x12,0x39,0x39,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x01,0x21,0x35,0x21,0x15,0x01,0x32,0x16,0x15,0x14,0x04,0x23,0x22,0x52,0xa8,0xd5,0x9f,0xb3,0xfe,0xa1,0x91,0x01,0x8f,0xfd,0xaa, +0x03,0x56,0xfe,0x7a,0xc0,0xd9,0xfe,0xee,0xf9,0xf2,0x3c,0xb6,0x7b,0xa4,0x83,0x01,0x1e,0x02,0x46,0x98,0x28,0xfd,0xc8,0xdc,0xb6,0xca,0xf6,0x00,0xff,0xff,0xff,0xdd,0xfe,0x21,0x03,0x68,0x04,0x00,0x02,0x06,0x05,0x97,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x06,0x8c,0x02,0x26,0x01,0xef,0x00,0x00,0x01,0x07,0x00,0xd9, +0x01,0xd6,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x14,0x16,0x17,0x0a,0x13,0x25,0x01,0x15,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x00,0x05,0x2f,0x02,0x26,0x02,0x0f,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x1e,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x07,0x10,0x11,0x07,0x0d,0x25,0x01,0x0f,0x11, +0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x06,0xe4,0x02,0x26,0x01,0xef,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x6f,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x11,0x23,0x1d,0x0a,0x13,0x25,0x02,0x01,0x20,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00, +0x04,0x00,0x05,0x87,0x02,0x26,0x02,0x0f,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xce,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x1b,0x1d,0x17,0x07,0x0d,0x25,0x02,0x01,0x1a,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x06,0xe4,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x8f, +0x01,0x67,0x01,0x5d,0x00,0x17,0x40,0x0d,0x03,0x02,0x03,0x27,0x21,0x03,0x09,0x25,0x03,0x02,0x24,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0x87,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xb7,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x27,0x21,0x03, +0x09,0x25,0x03,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x06,0xe4,0x02,0x26,0x02,0xcf,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x67,0x01,0x5d,0x00,0x17,0x40,0x0d,0x04,0x03,0x03,0x29,0x23,0x03,0x09,0x25,0x04,0x03,0x26,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35, +0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0x87,0x02,0x26,0x02,0xd0,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xb7,0x00,0x00,0x00,0x17,0x40,0x0d,0x04,0x03,0x00,0x27,0x21,0x03,0x09,0x25,0x04,0x03,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x68,0xff,0xe8,0x04,0x90,0x06,0xe4,0x02,0x26, +0x02,0x04,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x76,0x01,0x5d,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x9a,0x40,0x0a,0x28,0x22,0x0f,0x14,0x25,0x02,0x01,0x25,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x5a,0x05,0x87,0x02,0x26,0x02,0x24,0x00,0x00,0x01,0x06,0x00,0x8f,0xf0,0x00,0x00,0x1a, +0xb1,0x02,0x01,0xb8,0xff,0xb6,0x40,0x0a,0x28,0x22,0x01,0x14,0x25,0x02,0x01,0x25,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x3c,0xff,0xe7,0x04,0x96,0x06,0x8c,0x02,0x26,0x01,0xfa,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x32,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x05,0x17,0x16,0x0d,0x00,0x25,0x01,0x17,0x05, +0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0x2f,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xc4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x0f,0x17,0x18,0x0c,0x00,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x3c,0xff,0xe7,0x04,0x96,0x06,0xe4, +0x02,0x26,0x01,0xfa,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xca,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x25,0x1f,0x0d,0x00,0x25,0x02,0x01,0x22,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0x87,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x06,0x00,0x8f,0x50,0x00,0x00,0x17, +0x40,0x0d,0x02,0x01,0x00,0x24,0x1e,0x0c,0x00,0x25,0x02,0x01,0x21,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x3c,0xff,0xe7,0x04,0x96,0x07,0x5c,0x02,0x26,0x01,0xfa,0x00,0x00,0x01,0x07,0x00,0xde,0x01,0x52,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x4c,0x1c,0x16,0x0d,0x00,0x25,0x02,0x01,0x1c,0x05, +0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x00,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xde,0x00,0xf0,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x62,0x1b,0x15,0x0c,0x00,0x25,0x02,0x01,0x1b,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xa6, +0x00,0x00,0x04,0x81,0x06,0xe4,0x02,0x26,0x01,0xfe,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xf6,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x03,0x20,0x1a,0x08,0x10,0x25,0x02,0x01,0x1d,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x98,0x00,0x00,0x03,0xdf,0x05,0x87,0x02,0x26,0x02,0x1e,0x00,0x00,0x01,0x07, +0x00,0x8f,0x00,0x92,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf7,0x40,0x0a,0x1f,0x19,0x07,0x0f,0x25,0x02,0x01,0x1c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x87,0x06,0xe3,0x02,0x26,0x02,0x02,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x87,0x01,0x5c,0x00,0x17,0x40,0x0d,0x04,0x03, +0x06,0x26,0x20,0x05,0x03,0x25,0x04,0x03,0x23,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x05,0x06,0x05,0x87,0x02,0x26,0x02,0x22,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x33,0x00,0x00,0x00,0x1a,0xb1,0x04,0x03,0xb8,0xff,0xfd,0x40,0x0a,0x25,0x1f,0x05,0x03,0x25,0x04,0x03,0x22,0x11,0x26, +0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x02,0x00,0x56,0x00,0x00,0x03,0xd1,0x05,0x9a,0x00,0x0a,0x00,0x12,0x00,0x24,0x40,0x12,0x0c,0x91,0x08,0x08,0x09,0x03,0x0b,0x91,0x00,0x00,0x7e,0x08,0x0b,0x0b,0x14,0x0f,0x7d,0x04,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x2f,0xed,0x3f,0x39,0x2f,0xed,0x31,0x30,0x21,0x21,0x22,0x26, +0x35,0x34,0x36,0x33,0x21,0x11,0x33,0x03,0x11,0x23,0x20,0x11,0x14,0x16,0x33,0x03,0xd1,0xfe,0x56,0xd8,0xf9,0xee,0xd4,0x01,0x11,0xa8,0xa8,0xeb,0xfe,0xc8,0xa3,0x95,0xe6,0xc6,0xc1,0xcd,0x02,0x60,0xfa,0xfe,0x02,0x0a,0xff,0x00,0x7d,0x8d,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x10,0x05,0xec,0x02,0x06,0x00,0x47,0x00,0x00,0x00,0x02, +0x00,0x64,0xff,0xe8,0x06,0x58,0x05,0x9a,0x00,0x19,0x00,0x22,0x00,0x3a,0x40,0x1e,0x06,0x08,0x1b,0x91,0x18,0x0f,0x0f,0x11,0x03,0x15,0x20,0x91,0x03,0x08,0x13,0x06,0x12,0x7e,0x0f,0x1a,0x1a,0x0b,0x00,0x7e,0x17,0x17,0x24,0x1e,0x7d,0x0b,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x39,0x00,0x3f,0x33,0xed,0x32,0x3f, +0x39,0x2f,0x33,0xed,0x12,0x39,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x11,0x11,0x33,0x01,0x11,0x23,0x20,0x11,0x10,0x21,0x32,0x36,0x06,0x58,0xd1,0xbf,0x69,0xad,0x2b,0x73,0xed,0xd2,0xf1,0xf2,0xd1,0x01,0x11,0xa7,0x7f,0x6d,0xe5,0xa8,0xfc, +0xe0,0xec,0xfe,0xc8,0x01,0x2a,0x63,0x97,0x01,0x92,0xc8,0xe2,0x63,0x5d,0xc0,0xeb,0xcb,0xc2,0xda,0x02,0x60,0xfb,0xf6,0x79,0x98,0x01,0x1f,0x01,0x9c,0xfe,0x38,0x01,0x30,0xfe,0xf2,0xfe,0xeb,0x82,0x00,0x02,0x00,0x60,0xff,0xe8,0x06,0x70,0x05,0xec,0x00,0x1a,0x00,0x27,0x00,0x3f,0x40,0x21,0x19,0x19,0x0d,0x25,0x11,0x00,0x0f,0x1f, +0x95,0x0d,0x10,0x16,0x05,0x25,0x95,0x03,0x07,0x16,0x05,0x13,0x84,0x11,0x1b,0x1b,0x0a,0x1a,0x83,0x19,0x19,0x29,0x22,0x83,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x39,0x00,0x3f,0x33,0xed,0x32,0x32,0x3f,0xed,0x32,0x3f,0x11,0x12,0x39,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x22,0x02,0x35, +0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x11,0x35,0x33,0x05,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x06,0x70,0xca,0xb6,0xf4,0x4e,0x7c,0xfe,0xf1,0xd9,0xea,0x01,0x00,0xd5,0xd3,0x60,0x04,0xa4,0x7e,0x64,0xd6,0xa8,0xfc,0xfc,0xa4,0x7e,0x96,0xac,0xa6,0x8a,0x89,0xab,0x01,0x83,0xbf, +0xdc,0xe3,0xe3,0x01,0x14,0xec,0xfe,0x01,0x32,0xa6,0x02,0x7a,0xfb,0x95,0x75,0x9a,0x01,0x1a,0xa1,0x5e,0x97,0x7c,0xac,0xdc,0xc2,0xb2,0xcc,0xc6,0x00,0x01,0x00,0x29,0xff,0xe8,0x05,0xf6,0x05,0xb2,0x00,0x24,0x00,0x4b,0x40,0x27,0x1c,0x1b,0x08,0x91,0x0b,0x0b,0x03,0x23,0x23,0x20,0x13,0x11,0x91,0x16,0x04,0x20,0x91,0x03,0x13,0x1c, +0x09,0x19,0x7d,0x0e,0x09,0x0e,0x09,0x13,0x1e,0x7d,0x06,0x06,0x13,0x24,0x7e,0x23,0x23,0x26,0x13,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x11,0x39,0x00,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x12,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x27,0x02,0x21,0x23,0x35, +0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x10,0x05,0x15,0x04,0x13,0x12,0x33,0x32,0x11,0x11,0x33,0x05,0xf6,0xd2,0xbe,0xb9,0xdd,0x05,0x09,0xfe,0x94,0x96,0x8a,0x9f,0xaf,0x92,0x7f,0xb3,0xab,0x9e,0xcf,0xcc,0xea,0xfe,0xf0,0x01,0x32,0x0f,0x0c,0xdf,0xe6,0xa8,0x01,0x92,0xc9,0xe1,0xeb,0xb9,0x01, +0x14,0x8b,0x8c,0x7c,0x6d,0x81,0x71,0xaa,0x58,0xc3,0x9d,0xfe,0xe9,0x49,0x04,0x26,0xfe,0xce,0xfe,0xe9,0x01,0x1f,0x01,0x9c,0x00,0x01,0x00,0x1e,0xff,0xe8,0x05,0x56,0x04,0x18,0x00,0x22,0x00,0x4b,0x40,0x27,0x22,0x22,0x03,0x1a,0x19,0x09,0x95,0x0a,0x0a,0x1e,0x12,0x10,0x95,0x15,0x10,0x1e,0x95,0x03,0x16,0x1a,0x09,0x17,0x84,0x0d, +0x09,0x0d,0x09,0x12,0x1c,0x84,0x05,0x05,0x12,0x22,0x83,0x21,0x21,0x24,0x12,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x11,0x39,0x00,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x39,0x39,0x12,0x39,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x20,0x03,0x26,0x26,0x23,0x23,0x35,0x33,0x20,0x35,0x34, +0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x14,0x07,0x15,0x16,0x17,0x16,0x33,0x32,0x11,0x35,0x33,0x05,0x56,0xcc,0xb5,0xfe,0xb7,0x3a,0x0e,0x7c,0x9f,0x65,0x61,0x01,0x04,0x77,0x68,0x96,0x96,0xaa,0x8e,0x01,0x77,0xd3,0xda,0x20,0x20,0xbf,0xdb,0xa8,0x01,0x83,0xbf,0xdc,0x01,0x4b,0x52,0x43,0x8c,0xa2,0x44,0x54,0x4c,0x99,0x3d, +0xfe,0xee,0xbd,0x33,0x04,0x12,0xc2,0xcc,0x01,0x1a,0xa1,0x00,0x00,0x01,0x00,0x29,0xfe,0x80,0x04,0x3a,0x05,0xb2,0x00,0x1f,0x00,0x4e,0x40,0x0d,0x1a,0x19,0x07,0x91,0x08,0x08,0x03,0x11,0x0f,0x91,0x14,0x04,0x01,0xb8,0x01,0x30,0x40,0x0e,0x1e,0x91,0x03,0x1a,0x07,0x17,0x7d,0x0c,0x07,0x0c,0x07,0x03,0x11,0x1f,0xb8,0x01,0x2c,0xb7, +0x02,0x02,0x1e,0x7e,0x03,0x03,0x21,0x11,0x2f,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x11,0x39,0x00,0x2f,0xed,0x3f,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x10,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15, +0x10,0x05,0x15,0x16,0x16,0x15,0x15,0x33,0x04,0x3a,0x9c,0xcd,0xfe,0x85,0x96,0x8a,0x9f,0xaf,0x92,0x7f,0xb3,0xab,0x9e,0xcf,0xcc,0xea,0xfe,0xf0,0x93,0xaa,0xc1,0xfe,0x80,0x01,0x80,0x01,0x8c,0x01,0x14,0x8b,0x8c,0x7c,0x6d,0x81,0x71,0xaa,0x58,0xc3,0x9d,0xfe,0xe9,0x49,0x04,0x11,0xbb,0x8e,0xfc,0x00,0x00,0x01,0x00,0x1e,0xfe,0x8b, +0x03,0x8e,0x04,0x18,0x00,0x1d,0x00,0x4e,0x40,0x0d,0x18,0x17,0x07,0x95,0x08,0x08,0x03,0x10,0x0e,0x95,0x13,0x10,0x01,0xb8,0x01,0x31,0x40,0x0e,0x1c,0x95,0x03,0x18,0x07,0x15,0x84,0x0b,0x07,0x0b,0x07,0x03,0x10,0x1d,0xb8,0x01,0x2c,0xb7,0x02,0x02,0x1c,0x84,0x03,0x03,0x1f,0x10,0x2f,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12, +0x39,0x39,0x2f,0x2f,0xe1,0x11,0x39,0x00,0x2f,0xed,0x3f,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x34,0x21,0x23,0x35,0x33,0x20,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x14,0x07,0x15,0x16,0x16,0x15,0x15,0x33,0x03,0x8e,0x8e,0xae,0xfe,0xd7,0x65,0x61,0x01,0x04,0x77,0x68, +0x96,0x96,0xaa,0x8e,0x01,0x77,0xd3,0x71,0x8b,0x98,0xfe,0x8b,0x01,0x75,0x01,0x1c,0xac,0x8c,0xa2,0x44,0x54,0x4c,0x99,0x3d,0xfe,0xee,0xbd,0x33,0x04,0x09,0x87,0x6a,0x8c,0x00,0x00,0x01,0x00,0x18,0xff,0xe8,0x06,0xc2,0x05,0x9a,0x00,0x1c,0x00,0x3c,0x40,0x20,0x1c,0x1c,0x18,0x07,0x91,0x14,0x03,0x18,0x91,0x03,0x13,0x0e,0x10,0x91, +0x0b,0x13,0x15,0x7e,0x06,0x06,0x1a,0x09,0x7e,0x12,0x00,0x7e,0x1a,0x12,0x1a,0x12,0x1e,0x0e,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x10,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11, +0x21,0x11,0x14,0x16,0x33,0x32,0x11,0x11,0x33,0x06,0xc2,0xd2,0xbd,0xba,0xdb,0xfe,0x2d,0xfe,0x97,0x28,0x22,0x1c,0x20,0xd7,0x03,0x1b,0x7e,0x71,0xe5,0xa8,0x01,0x9a,0xcb,0xe7,0xf2,0xb8,0x03,0x70,0xfd,0x36,0xfd,0xb6,0x0a,0x96,0x0b,0x01,0xae,0x03,0x69,0xfc,0x08,0x81,0xa2,0x01,0x21,0x01,0x9a,0x00,0x00,0x01,0x00,0x14,0xff,0xe8, +0x05,0xee,0x04,0x00,0x00,0x1c,0x00,0x46,0x40,0x1a,0x1c,0x1c,0x18,0x07,0x95,0x14,0x0f,0x0e,0x10,0x95,0x0b,0x0b,0x1d,0x18,0x95,0x03,0x16,0x15,0x84,0x06,0x06,0x12,0x1c,0x83,0x1b,0x09,0xb8,0x01,0x2e,0xb6,0x12,0x1b,0x12,0x1b,0x12,0x1e,0x0e,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed, +0x12,0x39,0x7c,0x2f,0x18,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x21,0x11,0x14,0x16,0x33,0x32,0x11,0x35,0x33,0x05,0xee,0xcc,0xb6,0xb1,0xd3,0xfe,0xa4,0xfe,0xc6,0x25,0x19,0x15,0x25,0xa4,0x02,0x9a,0x77,0x67,0xdc,0xa8, +0x01,0x83,0xbd,0xde,0xdd,0xb6,0x01,0xf9,0xfe,0x2a,0xfe,0x54,0x08,0x8b,0x0a,0x01,0x17,0x02,0x6e,0xfd,0x85,0x7f,0x94,0x01,0x1a,0xa1,0x00,0x01,0x00,0xbc,0xff,0xe8,0x07,0x6e,0x05,0x9a,0x00,0x18,0x00,0x41,0x40,0x23,0x17,0x17,0x08,0x91,0x40,0x0d,0x0c,0x09,0x0d,0x91,0x2b,0x30,0x0f,0x0c,0x03,0x14,0x91,0x03,0x13,0x09,0x10,0x7e, +0x0e,0x07,0x07,0x0a,0x00,0x7e,0x16,0x16,0x1a,0x0d,0x08,0x7e,0x0a,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x2f,0x3f,0xed,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x33,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x11, +0x11,0x33,0x07,0x6e,0xd3,0xbc,0xba,0xdb,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0xa8,0x7e,0x72,0xe4,0xa8,0x01,0x9a,0xcd,0xe5,0xf2,0xb8,0xfc,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfc,0x08,0x81,0xa2,0x01,0x21,0x01,0x9a,0x00,0x01,0x00,0xa6,0xff,0xe8,0x06,0x5a,0x04,0x00,0x00,0x18,0x00,0x44,0x40,0x24,0x17,0x17,0x03,0x08,0x95,0x40, +0x0d,0x0c,0x09,0x0d,0x95,0x2b,0x30,0x0f,0x0c,0x0f,0x14,0x95,0x03,0x16,0x09,0x11,0x84,0x0e,0x07,0x07,0x0a,0x00,0x83,0x16,0x16,0x1a,0x0d,0x08,0x84,0x0a,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x2f,0x3f,0xed,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x12,0x39,0x7c,0x2f,0x31,0x30,0x01,0x14,0x06,0x23, +0x22,0x26,0x35,0x35,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x11,0x35,0x33,0x06,0x5a,0xcc,0xb5,0xb1,0xd4,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0xa4,0x78,0x67,0xdb,0xa8,0x01,0x83,0xbf,0xdc,0xdc,0xb7,0x56,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4,0xfd,0x85,0x7f,0x94,0x01,0x1a,0xa1,0x00,0x01,0x00,0x5e, +0xff,0xe8,0x05,0x62,0x05,0xb2,0x00,0x1a,0x00,0x3e,0x40,0x22,0x18,0x91,0x19,0x19,0x09,0x14,0x1f,0x0c,0x2f,0x0c,0x02,0x0c,0x0c,0x0e,0x91,0x09,0x04,0x14,0x91,0x03,0x13,0x18,0x0c,0x18,0x0c,0x06,0x00,0x7e,0x17,0x17,0x1c,0x11,0x7d,0x06,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f, +0x5d,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x12,0x37,0x21,0x35,0x21,0x05,0x62,0xfe,0xb5,0xfe,0xdd,0xfe,0xc9,0xfe,0xa1,0x01,0xa5,0x01,0x43,0xea,0x9f,0xae,0xee,0xf1,0xfe,0xcc,0x01,0x07,0xe5,0xcc,0xf2,0x04,0xfe,0x46, +0x02,0x60,0x02,0x8e,0xfe,0xd0,0xfe,0x8a,0x01,0x8a,0x01,0x48,0x01,0x4d,0x01,0xab,0x4c,0xba,0x6e,0xfe,0xb4,0xfe,0xf8,0xfe,0xef,0xfe,0xca,0x01,0x07,0xd8,0x98,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0xf4,0x04,0x18,0x00,0x1a,0x00,0x40,0x40,0x24,0x18,0x95,0x19,0x19,0x09,0x14,0x3f,0x0c,0x4f,0x0c,0x5f,0x0c,0x03,0x0c,0x0c,0x0e, +0x95,0x09,0x10,0x14,0x95,0x03,0x16,0x19,0x0c,0x19,0x0c,0x11,0x1a,0x83,0x17,0x17,0x1c,0x11,0x83,0x06,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x5d,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x02,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15, +0x14,0x16,0x33,0x32,0x36,0x37,0x21,0x35,0x21,0x03,0xf4,0xe4,0xcc,0xd9,0xfe,0xf5,0x01,0x22,0xf2,0x9c,0x6b,0x77,0x96,0x9d,0xc9,0xb0,0x8e,0x7b,0x89,0x02,0xfe,0x98,0x02,0x10,0x01,0xd3,0xe3,0xfe,0xf8,0x01,0x1b,0xe5,0xfd,0x01,0x33,0x3f,0xa8,0x5d,0xe1,0xb7,0xaf,0xd5,0xa3,0x89,0x8b,0x00,0x00,0x01,0x00,0x29,0xff,0xe8,0x04,0xec, +0x05,0x9a,0x00,0x14,0x00,0x3a,0x40,0x1e,0x13,0x13,0x10,0x0c,0x07,0x91,0x09,0x03,0x10,0x91,0x40,0x03,0x13,0x0b,0x0e,0x0d,0x08,0x06,0x42,0x0d,0x7e,0x06,0x06,0x08,0x00,0x7e,0x12,0x12,0x16,0x08,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xe2,0x00,0x18,0x3f,0x1a,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x31,0x30, +0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x11,0x11,0x33,0x04,0xec,0xd3,0xbd,0xba,0xdc,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x7f,0x71,0xe6,0xa8,0x01,0x9a,0xca,0xe8,0xf1,0xb9,0x03,0x70,0x98,0x98,0xfc,0xa0,0x80,0xa3,0x01,0x21,0x01,0x9a,0x00,0x00,0x01,0x00,0x1e,0xff,0xe8,0x04,0x58, +0x04,0x00,0x00,0x14,0x00,0x3a,0x40,0x1e,0x13,0x13,0x10,0x0c,0x07,0x95,0x09,0x0f,0x10,0x95,0x40,0x03,0x16,0x0b,0x0e,0x0d,0x08,0x06,0x42,0x0d,0x84,0x06,0x06,0x08,0x00,0x83,0x12,0x12,0x16,0x08,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xe2,0x00,0x18,0x3f,0x1a,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x31,0x30, +0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x11,0x35,0x33,0x04,0x58,0xcc,0xb5,0xb2,0xd3,0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0x78,0x67,0xdb,0xa8,0x01,0x83,0xbf,0xdc,0xdd,0xb6,0x01,0xf9,0x8c,0x8c,0xfe,0x11,0x7f,0x94,0x01,0x1a,0xa1,0x00,0x03,0x01,0x33,0x04,0xc2,0x03,0x7b,0x06,0x3a, +0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x36,0x40,0x1c,0x01,0xe2,0x40,0x02,0x80,0x0a,0x16,0xc1,0x40,0x04,0x10,0x01,0x00,0x01,0x00,0x13,0x0d,0xc0,0x07,0x13,0xc0,0x19,0x1d,0x1c,0x07,0x19,0x2b,0x3a,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x11,0x39,0x39,0x18,0x2f,0x2f,0x00,0x2f,0x33,0x1a,0xfd,0x32,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x21, +0x35,0x21,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x56,0xfe,0x04,0x01,0xfc,0x3e,0x28,0x3a,0x39,0x27,0x2a,0x3b,0x39,0xfe,0x56,0x29,0x3c,0x39,0x2a,0x29,0x3b,0x39,0x05,0xcd,0x6d,0xfe,0x88,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39,0x2a, +0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0x03,0x01,0x1c,0x04,0xc2,0x03,0x64,0x06,0xfa,0x00,0x06,0x00,0x12,0x00,0x1e,0x00,0x66,0x40,0x3d,0x06,0x70,0x03,0x01,0x03,0x80,0x09,0x05,0x19,0x05,0x02,0x09,0x05,0x02,0x40,0x09,0x10,0x48,0x02,0x02,0x0d,0x19,0xc1,0x40,0x07,0x13,0x00,0xe0,0x03,0x01,0x03,0x03,0x00,0x05,0x05,0x1c,0x10,0xc0, +0x0a,0x16,0xc0,0x1c,0x00,0x1c,0x01,0x0f,0x0f,0x0a,0x1f,0x0a,0x2f,0x0a,0x03,0x10,0x03,0x20,0x1f,0x0a,0x1c,0x2b,0x3a,0x2b,0x01,0x5f,0x5e,0x5d,0x5e,0x5d,0x10,0xe1,0x10,0xe1,0x12,0x39,0x3d,0x2f,0x33,0x33,0x18,0x2f,0x5d,0x2f,0x00,0x2f,0x33,0x1a,0xed,0x32,0x32,0x2f,0x2b,0x33,0x5e,0x5d,0x1a,0xcd,0x5d,0x32,0x31,0x30,0x01,0x03, +0x23,0x03,0x33,0x17,0x37,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x5a,0xd5,0x85,0xd7,0x73,0xa4,0xa4,0x1e,0x28,0x3a,0x37,0x29,0x2a,0x3a,0x38,0xfe,0x55,0x29,0x3c,0x39,0x2a,0x29,0x3c,0x3a,0x06,0xfa,0xfe,0xb6,0x01,0x4a,0xe6,0xe6,0xfd,0xc8, +0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39,0x2a,0x29,0x39,0x39,0x29,0x29,0x3a,0x00,0x03,0x01,0x1c,0x04,0xc2,0x03,0x77,0x06,0xe2,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x44,0xb2,0x03,0x80,0x00,0xb8,0xff,0xc0,0x40,0x20,0x09,0x0c,0x48,0x00,0x00,0x0a,0x16,0xc1,0x04,0x10,0x02,0x40,0x00,0x00,0x19,0x0d,0xc0,0x07,0x13,0xc0,0x19, +0x0f,0x07,0x01,0x10,0x03,0x1d,0x1c,0x07,0x19,0x2b,0x3a,0x2b,0x01,0x5f,0x5e,0x5d,0x10,0xe1,0x10,0xe1,0x12,0x39,0x18,0x2f,0x1a,0xcd,0x00,0x2f,0x33,0xed,0x32,0x32,0x2f,0x2b,0x1a,0xcd,0x31,0x30,0x01,0x23,0x01,0x33,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x02,0xa2,0x7f,0xfe,0xf9,0xa6,0x01,0x50,0x29,0x39,0x3b,0x29,0x2a,0x39,0x3c,0xfe,0x57,0x2a,0x39,0x3b,0x2a,0x27,0x39,0x3a,0x05,0x9a,0x01,0x48,0xfd,0xe0,0x3a,0x29,0x29,0x39,0x39,0x29,0x2a,0x39,0x3a,0x29,0x29,0x39,0x38,0x2a,0x2b,0x38,0x00,0x02,0x01,0x08,0x04,0xc2,0x03,0x04,0x06,0x35,0x00,0x03,0x00,0x0f,0x00,0x32, +0x40,0x1a,0x01,0xe2,0x40,0x02,0x80,0x0a,0xc1,0x40,0x04,0x00,0x0e,0x0d,0x01,0x07,0x42,0x01,0x01,0x07,0xc0,0x0d,0x11,0x10,0x0d,0xc0,0x2b,0x30,0x2b,0x01,0x10,0xe1,0x32,0x18,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a,0xfd,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x03,0x04,0xfe,0x04,0x01,0xfc,0xfe,0x28,0x3a,0x3a,0x28,0x29,0x39,0x39,0x05,0xc8,0x6d,0xfe,0x8d,0x39,0x2a,0x29,0x37,0x37,0x29,0x29,0x3a,0x00,0x00,0x02,0x01,0x23,0x04,0xb2,0x03,0xa4,0x06,0x55,0x00,0x13,0x00,0x17,0x00,0x3c,0x40,0x20,0x15,0xe2,0x40,0x16,0x80,0x13,0x0d,0xda,0x07,0x11,0xda,0x03,0x09,0x17,0x16,0x17, +0x16,0x0a,0x00,0xc4,0x0f,0x13,0x01,0x13,0x13,0x19,0x09,0xc4,0x20,0x0a,0x01,0x0a,0x2f,0x5d,0xe1,0x12,0x39,0x2f,0x5d,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x2f,0xd6,0xed,0xdc,0xfd,0xc6,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x37,0x21, +0x35,0x21,0x03,0xa4,0x60,0x52,0x47,0x5b,0x4d,0x2a,0x58,0x5e,0x60,0x56,0x41,0x54,0x4a,0x36,0x54,0x1a,0xfe,0x04,0x01,0xfc,0x05,0xb2,0x69,0x85,0x34,0x2b,0x71,0x6b,0x81,0x34,0x2c,0x74,0x36,0x6d,0x00,0x01,0xff,0x8c,0x05,0x0e,0x03,0x1e,0x05,0xd1,0x00,0x0b,0x00,0x32,0x40,0x19,0x0b,0xdb,0x04,0x08,0x40,0x05,0x01,0x09,0x03,0x03, +0x00,0x0e,0x05,0x0b,0x06,0x42,0x08,0x40,0x0b,0x0c,0x0d,0x06,0x05,0x2b,0x3a,0x2b,0x01,0x18,0x2f,0x1a,0xcd,0x2b,0x01,0x10,0xf0,0xc1,0x18,0x2f,0x00,0x2f,0x33,0x33,0x1a,0xdd,0x32,0xed,0x31,0x30,0x01,0x07,0x23,0x27,0x23,0x07,0x23,0x27,0x23,0x07,0x23,0x27,0x03,0x1e,0x5a,0x22,0x30,0xdc,0x30,0x22,0x30,0xdc,0x30,0x22,0x5a,0x05, +0xd1,0xc3,0x64,0x64,0x64,0x64,0xc3,0x00,0x00,0x02,0xff,0x27,0x04,0x89,0x00,0xbc,0x06,0xa2,0x00,0x14,0x00,0x1e,0x00,0x65,0x40,0x0d,0x02,0x09,0x12,0x09,0x22,0x09,0x03,0x03,0x05,0x0f,0x0f,0x0d,0x0b,0xba,0x01,0x3d,0x00,0x16,0xff,0xf0,0xb6,0x0c,0x0f,0x48,0x16,0x16,0x01,0x0d,0x41,0x0a,0x01,0x3d,0x00,0x12,0x01,0x39,0x00,0x1c, +0x01,0x3d,0x00,0x40,0x00,0x05,0x01,0x3b,0x00,0x01,0x01,0x3a,0xb3,0x0f,0x0f,0x08,0x14,0xb8,0x01,0x3c,0xb4,0x16,0x01,0x0b,0x80,0x1a,0xb9,0x01,0x3c,0x00,0x08,0x2f,0xe1,0x1a,0xdc,0x32,0x32,0xe1,0x11,0x39,0x2f,0x00,0x3f,0x3f,0x1a,0xed,0x3f,0xed,0x11,0x39,0x2f,0x2b,0xed,0x11,0x39,0x2f,0x11,0x39,0x31,0x30,0x5d,0x13,0x23,0x35, +0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x15,0x07,0x35,0x07,0x06,0x06,0x15,0x14,0x33,0x32,0x36,0xbc,0x52,0x02,0x35,0x68,0x4d,0x57,0xaa,0x99,0x6a,0x5d,0x49,0x41,0x6d,0xb4,0x52,0x7c,0x43,0x30,0x62,0x3e,0x4f,0x04,0x96,0x50,0x5d,0x52,0x43,0x8f,0x17,0x17,0x81,0x3e,0x54,0x30,0xbe, +0x7e,0x34,0x13,0x0a,0x2b,0x2d,0x56,0x57,0x00,0x02,0xff,0x21,0x04,0x89,0x00,0xdf,0x06,0xa2,0x00,0x11,0x00,0x17,0x00,0x68,0x40,0x14,0x02,0x01,0x12,0x01,0x22,0x01,0x03,0x0f,0x01,0x1f,0x01,0x2f,0x01,0x03,0x09,0x03,0x05,0x05,0x03,0x01,0xb8,0x01,0x3d,0xb4,0x40,0x17,0x0e,0x08,0x17,0xb8,0x01,0x3d,0xb2,0x2b,0x30,0x14,0xbe,0x01, +0x3d,0x00,0x0e,0x01,0x39,0x00,0x03,0x01,0x3d,0x00,0x08,0x01,0x3b,0xb3,0x05,0x05,0x0b,0x11,0xb8,0x01,0x3c,0xb7,0x60,0x12,0xc0,0x12,0x02,0x12,0x17,0x01,0xb9,0x01,0x3c,0x00,0x0b,0x2f,0xe1,0x32,0xdd,0x71,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x39,0x2f,0x5f,0x5e,0x5d,0x31,0x30,0x5d, +0x13,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x27,0x26,0x23,0x22,0x06,0x07,0xdf,0xfe,0x98,0x04,0xa1,0x57,0x49,0x42,0x70,0x6c,0x7d,0x87,0x64,0x64,0x6f,0x53,0x02,0x7e,0x3a,0x52,0x09,0x05,0x81,0xb2,0x39,0x4e,0x31,0x8c,0x7f,0x78,0x96,0x81,0x75,0x1a,0x96,0x52,0x44,0x00,0x00,0x02, +0xff,0xcb,0x04,0x96,0x00,0x35,0x07,0x83,0x00,0x07,0x00,0x0b,0x00,0x41,0xb9,0x00,0x00,0x01,0x3f,0x40,0x09,0x40,0x04,0x80,0x00,0x0a,0x01,0x0c,0x03,0x0a,0xbc,0x01,0x38,0x00,0x09,0x01,0x3a,0x00,0x0b,0x01,0x3c,0xb3,0x0a,0x02,0x06,0x0a,0xb8,0x01,0x3c,0xb2,0x2b,0x30,0x02,0xb8,0x01,0x3e,0xb1,0x06,0x0d,0x10,0xd4,0xe1,0x2b,0x01, +0x10,0xe1,0x00,0x18,0x3f,0x3f,0x5f,0x5e,0x5d,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x11,0x22,0x35,0x34,0x33,0x32,0x15,0x14,0x03,0x23,0x11,0x33,0x35,0x35,0x35,0x0e,0x52,0x52,0x07,0x18,0x36,0x35,0x35,0x36,0xfd,0x7e,0x02,0x00,0x00,0x00,0x02,0xff,0x04,0x04,0x89,0x00,0xfc,0x06,0xa2,0x00,0x0b,0x00,0x15,0x00,0x29,0x41,0x0e,0x00,0x0c, +0x01,0x3d,0x00,0x06,0x01,0x39,0x00,0x12,0x01,0x3d,0x00,0x00,0x01,0x3b,0x00,0x09,0x01,0x3c,0x00,0x14,0x00,0x0f,0x01,0x3c,0x00,0x03,0x2f,0xe1,0xd4,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x02,0x72,0x88,0x8e,0x78, +0x72,0x80,0x89,0x6f,0x4f,0x5d,0x5c,0x50,0xa4,0x04,0x89,0x90,0x77,0x7f,0x93,0x8e,0x7c,0x7b,0x94,0x01,0xd3,0x6a,0x5e,0x5a,0x6b,0xc7,0xc6,0x00,0x00,0x01,0xff,0x2b,0x04,0x89,0x00,0xd5,0x06,0x96,0x00,0x11,0x00,0x31,0xb1,0x10,0x09,0xb8,0x01,0x38,0xb2,0x0f,0x02,0x0c,0xbe,0x01,0x3d,0x00,0x05,0x01,0x3b,0x00,0x01,0x01,0x3a,0x00, +0x11,0x01,0x3c,0xb2,0x01,0x10,0x09,0xb9,0x01,0x3c,0x00,0x08,0x2f,0xe1,0xd4,0x32,0xe1,0x00,0x3f,0x3f,0xed,0x32,0x32,0x3f,0x33,0x31,0x30,0x13,0x23,0x35,0x23,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0xd5,0x52,0x02,0x33,0x6a,0xb9,0x52,0x7d,0x3c,0x4d,0x52,0x04,0x96,0x52,0x5f,0xdb,0x01,0x32,0xfe, +0xda,0xa1,0x57,0x48,0x01,0x28,0x00,0x01,0xff,0x2b,0x04,0x89,0x00,0xac,0x06,0xa2,0x00,0x15,0x00,0x2a,0xb1,0x00,0x02,0xbf,0x01,0x3d,0x00,0x13,0x01,0x39,0x00,0x0a,0x00,0x08,0x01,0x3d,0x00,0x0d,0x01,0x3b,0xb2,0x00,0x0a,0x05,0xb9,0x01,0x3c,0x00,0x10,0x2f,0xe1,0xc4,0x32,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x31,0x30,0x13,0x26, +0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0xac,0x38,0x41,0x4f,0x65,0x5f,0x4f,0x43,0x3c,0x3d,0x51,0x6d,0x86,0x91,0x79,0x45,0x32,0x06,0x35,0x27,0x6f,0x5b,0x5a,0x69,0x2d,0x4e,0x25,0x8f,0x71,0x7e,0x9b,0x19,0x00,0x02,0xff,0x14,0x04,0x89,0x00,0xec,0x07,0x8c,0x00,0x10, +0x00,0x1c,0x00,0x3e,0xb9,0x00,0x0f,0x01,0x36,0xb3,0x0d,0x03,0x05,0x15,0x41,0x0b,0x01,0x3d,0x00,0x0b,0x01,0x39,0x00,0x1a,0x01,0x3d,0x00,0x05,0x01,0x3b,0x00,0x01,0x01,0x3a,0x00,0x10,0x01,0x3c,0xb3,0x12,0x01,0x0f,0x17,0xb9,0x01,0x3c,0x00,0x08,0x2f,0xe1,0xd4,0x32,0x32,0xe1,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f, +0x31,0x30,0x13,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x11,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x16,0x33,0x32,0x36,0xec,0x52,0x02,0x3a,0x76,0x60,0x74,0x80,0x6a,0x6a,0x30,0x02,0x52,0x52,0x53,0x3f,0xa0,0x54,0x44,0x45,0x55,0x04,0x96,0x58,0x65,0x8b,0x75,0x80,0x99,0x52,0x01,0x3c,0xfd, +0xf1,0x4b,0x3f,0x55,0xce,0x59,0x66,0x64,0x00,0x01,0xff,0x2b,0x04,0x96,0x00,0xd5,0x07,0x8c,0x00,0x11,0x00,0x32,0xb9,0x00,0x0b,0x01,0x36,0xb2,0x0d,0x08,0x04,0xbf,0x01,0x3d,0x00,0x0f,0x01,0x39,0x00,0x01,0x00,0x08,0x01,0x3a,0x00,0x00,0x01,0x3c,0xb2,0x01,0x0b,0x08,0xb9,0x01,0x3c,0x00,0x09,0x2f,0xe1,0x32,0xd4,0xe1,0x00,0x3f, +0x33,0x3f,0xed,0x12,0x39,0x3f,0x31,0x30,0x13,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x15,0xd5,0x52,0x77,0x3d,0x52,0x52,0x52,0x02,0x3b,0x6d,0xae,0x04,0x96,0x01,0x26,0xa0,0x5c,0x48,0xfe,0xde,0x02,0xf6,0xfe,0xb6,0x60,0xd1,0x00,0x01,0xfe,0x96,0x04,0x96,0x01,0x6c,0x06,0xa2,0x00,0x1d, +0x00,0x51,0xb4,0x04,0x15,0x19,0x03,0x0c,0xb8,0x01,0x3d,0xb2,0x40,0x1b,0x17,0xba,0x01,0x39,0x00,0x13,0x01,0x38,0xb2,0x08,0x00,0x10,0xba,0x01,0x3a,0x00,0x00,0x01,0x3c,0xb7,0x01,0x0e,0x08,0x10,0x09,0x42,0x19,0x08,0xb8,0x01,0x3c,0xb4,0x09,0x09,0x1e,0x13,0x10,0xb9,0x01,0x3c,0x00,0x11,0x2f,0xe1,0x32,0x11,0x39,0x2f,0xe1,0x39, +0x2b,0x01,0x10,0xf2,0xe1,0x00,0x18,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x1a,0xed,0x17,0x32,0x31,0x30,0x01,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x15,0x01,0x6c,0x52,0x72,0x35,0x4a,0x52,0x75,0x35,0x45,0x52,0x52,0x02,0x36,0x67, +0x71,0x20,0x3a,0x70,0xaa,0x04,0x96,0x01,0x26,0xa0,0x5e,0x44,0xfe,0xdc,0x01,0x30,0x96,0x59,0x49,0xfe,0xdc,0x02,0x00,0x50,0x5c,0x6a,0x6a,0xd1,0x00,0x01,0xff,0x9c,0x04,0x96,0x00,0xa8,0x06,0xa0,0x00,0x0f,0x00,0x2d,0xb3,0x0a,0x07,0x00,0x02,0xbe,0x01,0x40,0x00,0x0d,0x01,0x39,0x00,0x08,0x01,0x38,0x00,0x07,0x01,0x3a,0xb3,0x00, +0x00,0x09,0x06,0xb9,0x01,0x3c,0x00,0x07,0x2f,0xf1,0x32,0xc2,0x2f,0x00,0x3f,0x3f,0x3f,0xed,0x32,0x12,0x39,0x31,0x30,0x13,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0xa8,0x16,0x2a,0x35,0x45,0x52,0x52,0x02,0x24,0x63,0x1d,0x14,0x06,0x44,0x10,0x64,0x54,0xfe,0xfa,0x02,0x00,0x69,0x73,0x08,0x00, +0x00,0x01,0xff,0x6a,0x04,0x8c,0x00,0x96,0x07,0x2d,0x00,0x13,0x00,0x3a,0xb2,0x0a,0x0e,0x05,0x41,0x09,0x01,0x3d,0x00,0x0b,0x00,0x08,0x01,0x38,0x00,0x13,0x00,0x11,0x01,0x3d,0x00,0x02,0x01,0x3b,0xb6,0x13,0x0d,0x0d,0x0e,0x06,0x0b,0x0e,0xb8,0x01,0x3c,0xb1,0x08,0x05,0x2f,0x33,0xe1,0x32,0xcd,0x10,0xc1,0x2f,0x32,0x00,0x3f,0xed, +0x32,0x3f,0x33,0xed,0x32,0xcd,0x31,0x30,0x13,0x06,0x23,0x22,0x35,0x11,0x23,0x35,0x33,0x35,0x37,0x15,0x33,0x15,0x23,0x11,0x14,0x33,0x32,0x37,0x96,0x1e,0x2e,0x88,0x58,0x58,0x52,0x82,0x82,0x4c,0x1f,0x17,0x04,0x9c,0x10,0x95,0x01,0x2f,0x46,0x7c,0x1b,0x97,0x46,0xfe,0xdf,0x5e,0x11,0x00,0x00,0x01,0xff,0x10,0x04,0x96,0x00,0xf0, +0x06,0x96,0x00,0x0b,0x00,0x5b,0x40,0x0e,0x07,0x40,0x0e,0x11,0x48,0x07,0x18,0x09,0x0d,0x48,0x07,0x02,0x0b,0x04,0xba,0x01,0x38,0x00,0x02,0x01,0x3a,0x40,0x25,0x00,0x0b,0x10,0x0b,0x20,0x0b,0x03,0x0b,0x00,0x0e,0x07,0x0f,0x04,0x1f,0x04,0x2f,0x04,0x03,0x09,0x05,0x04,0x03,0x03,0x07,0x42,0x03,0x01,0x18,0x09,0x0d,0x48,0x00,0x01, +0x02,0x03,0x04,0x07,0x19,0x2f,0x17,0x33,0x2b,0x18,0x2f,0x2b,0x11,0x01,0x33,0x5f,0x5e,0x5d,0x10,0xe0,0x32,0x5d,0x00,0x18,0x3f,0x3f,0x33,0x12,0x39,0x2b,0x2b,0x31,0x30,0x13,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0xf0,0xcd,0x50,0xc3,0x5a,0x84,0x0c,0x04,0x02,0x05,0x0b,0x8a,0x06,0x96,0xfe,0x00,0x02,0x00,0xfe, +0x8d,0x21,0x27,0x26,0x20,0x01,0x75,0x00,0x00,0x01,0xff,0x23,0x04,0x96,0x00,0xdd,0x06,0x96,0x00,0x14,0x00,0x1c,0xbb,0x00,0x0e,0x01,0x38,0x00,0x0a,0x01,0x3a,0x40,0x09,0x0f,0x02,0x1f,0x02,0x2f,0x02,0x03,0x02,0x0b,0x2f,0xc4,0x5d,0x00,0x3f,0x3f,0x31,0x30,0x13,0x03,0x17,0x23,0x27,0x26,0x27,0x23,0x06,0x07,0x07,0x23,0x37,0x03, +0x33,0x17,0x16,0x17,0x33,0x37,0x37,0xdd,0xac,0xaa,0x60,0x65,0x0f,0x07,0x02,0x07,0x0f,0x67,0x5e,0xae,0xa8,0x60,0x63,0x08,0x0e,0x02,0x16,0x69,0x06,0x96,0xfe,0xfe,0xfe,0xa6,0x19,0x0d,0x0e,0x18,0xa6,0xfc,0x01,0x04,0xae,0x0e,0x1c,0x2a,0xae,0x00,0x00,0x01,0x00,0x72,0x03,0xc6,0x01,0x62,0x05,0x9a,0x00,0x03,0x00,0x0d,0xb4,0x02, +0x03,0x03,0x00,0x02,0x2f,0xcd,0x00,0x3f,0xcd,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x62,0x7c,0x74,0x54,0x05,0x9a,0xfe,0x2c,0x01,0xd4,0x00,0x01,0x00,0x72,0xfd,0xfe,0x01,0x62,0xff,0xc6,0x00,0x03,0x00,0x20,0xb9,0x00,0x03,0xff,0xc0,0x40,0x0e,0x0e,0x11,0x48,0x03,0x03,0x04,0x1f,0x02,0x2f,0x02,0x02,0x02,0x00,0x02,0x2f,0xcd,0x00, +0x2f,0x5d,0x12,0x39,0x2f,0x2b,0x31,0x30,0x05,0x03,0x23,0x13,0x01,0x62,0x54,0x9c,0x7e,0x3a,0xfe,0x38,0x01,0xc8,0x00,0x01,0x01,0xba,0xfe,0x40,0x02,0xf6,0xff,0x89,0x00,0x0c,0x00,0x21,0x40,0x11,0x0c,0x0a,0xc3,0x40,0x02,0x80,0x06,0x40,0x09,0x0d,0x48,0x06,0x00,0x00,0x07,0xc2,0x06,0x2f,0xf1,0xc2,0x2f,0x00,0x2f,0x2b,0x1a,0xdc, +0x1a,0xed,0x32,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x37,0x02,0xf6,0x3c,0x56,0x4b,0x5f,0x7b,0x44,0x29,0x29,0xfe,0x90,0x50,0x53,0x46,0xb0,0xba,0x43,0x2a,0x00,0x00,0x01,0x00,0x66,0x02,0x9a,0x02,0x50,0x05,0xc4,0x00,0x11,0x00,0x36,0xbc,0x00,0x0a,0x01,0x07,0x00,0x09,0x00,0x01,0x01,0x0a,0xb2, +0x0a,0x0c,0x04,0xbc,0x01,0x0d,0x00,0x0f,0x01,0x09,0x00,0x00,0x01,0x0c,0xb4,0x01,0x01,0x13,0x0c,0x08,0xb9,0x01,0x0c,0x00,0x09,0x2f,0xe9,0x32,0x12,0x39,0x2f,0xe9,0x00,0x3f,0xed,0x32,0x32,0x3f,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0x7f,0x6d, +0x39,0x45,0x80,0x80,0x02,0x3b,0x79,0xb4,0x02,0x9a,0x01,0x33,0x97,0x54,0x3f,0xfe,0xc9,0x03,0x2a,0xfe,0xa4,0x67,0xe7,0x00,0x00,0x01,0x00,0x66,0x02,0x9a,0x02,0x50,0x05,0xc4,0x00,0x1a,0x00,0x4d,0xb1,0x09,0x01,0xbd,0x01,0x0a,0x00,0x15,0x00,0x04,0x01,0x0d,0x00,0x18,0xff,0xc0,0xb3,0x09,0x0d,0x48,0x18,0xb8,0x01,0x09,0xb2,0x10, +0x10,0x12,0xba,0x01,0x0d,0x00,0x0d,0x01,0x07,0xb3,0x10,0x10,0x08,0x00,0xb8,0x01,0x0c,0xb4,0x01,0x01,0x1c,0x15,0x08,0xb9,0x01,0x0c,0x00,0x09,0x2f,0xe9,0x32,0x12,0x39,0x2f,0xe9,0x11,0x39,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x3f,0x2b,0xed,0x32,0x3f,0x33,0x31,0x30,0x01,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x36, +0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x15,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0x7f,0x6d,0x39,0x45,0x80,0x96,0x87,0x3d,0x3c,0x3a,0x3d,0x9f,0x02,0x3b,0x79,0xb4,0x02,0x9a,0x01,0x33,0x97,0x54,0x3f,0xfe,0xc9,0x02,0x0a,0x88,0x98,0x18,0x68,0x1c,0xb2,0x46,0x67,0xe7,0x00,0x02,0xff,0xbe,0x01,0x98,0x00,0xf6,0x05,0xc4,0x00,0x07, +0x00,0x13,0x00,0x38,0xb2,0x0d,0x0d,0x0f,0xb8,0x01,0x0d,0xb5,0x0a,0x12,0x04,0x00,0x40,0x12,0xb8,0x01,0x08,0x40,0x0b,0x02,0x06,0x0c,0x11,0x08,0x02,0x06,0xff,0x3a,0x0c,0x08,0xb9,0x01,0x0c,0x00,0x11,0x2f,0xe9,0x33,0x2b,0x01,0x18,0x2f,0x2f,0x2f,0x00,0x3f,0x1a,0xde,0xcd,0x10,0xd4,0xed,0x32,0x2f,0x31,0x30,0x13,0x22,0x35,0x34, +0x33,0x32,0x15,0x14,0x03,0x10,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0xa6,0x4e,0x50,0x4e,0x0e,0xda,0x2b,0x25,0x22,0x24,0x64,0x80,0x05,0x2d,0x4c,0x4b,0x4b,0x4c,0xfd,0x79,0xfe,0xf2,0x10,0x68,0x14,0x9e,0x02,0x24,0x00,0x01,0x00,0x66,0x02,0x9a,0x01,0xa8,0x04,0xc8,0x00,0x0e,0x00,0x2d,0xbb,0x00,0x06,0x01,0x0a,0x00, +0x07,0x01,0x08,0xb5,0x0e,0xda,0x00,0x09,0x00,0x02,0xbe,0x01,0x0e,0x00,0x0c,0x01,0x09,0x00,0x09,0x00,0x05,0x01,0x0c,0x00,0x06,0x2f,0xe9,0x32,0x00,0x3f,0xed,0x32,0x32,0x2f,0xed,0x3f,0x3f,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x01,0xa8,0x1e,0x26,0x7e,0x80,0x80,0x02,0x28,0x69, +0x1b,0x14,0x04,0x46,0x12,0xb4,0xfe,0xf6,0x02,0x24,0x6c,0x76,0x08,0x00,0x00,0x01,0x00,0x0a,0x02,0x90,0x01,0x4c,0x04,0xbe,0x00,0x0e,0x00,0x31,0xb5,0x08,0x02,0x08,0x0a,0x52,0x05,0xbc,0x01,0x0b,0x00,0x01,0x01,0x0a,0x00,0x0d,0x01,0x08,0xb3,0x07,0x07,0x0c,0x00,0xb8,0x01,0x0c,0xb3,0x01,0x01,0x10,0x0f,0x11,0x12,0x39,0x2f,0xe9, +0x33,0x33,0x2f,0x00,0x3f,0x3f,0x3f,0xed,0x32,0x32,0x2f,0x31,0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0x01,0x4c,0x7f,0x02,0x29,0x68,0x1c,0x14,0x1e,0x26,0x7f,0x7f,0x02,0x9a,0x6c,0x76,0x08,0x7a,0x12,0xb4,0x01,0x0a,0x00,0x01,0x00,0x0a,0x01,0x94,0x01,0xcf,0x04,0xbe,0x00,0x16,0x00,0x3e, +0xb2,0x16,0x16,0x14,0xb8,0x01,0x0d,0xb7,0x02,0x08,0x0b,0x05,0x0b,0x0d,0x52,0x08,0xba,0x01,0x0b,0x00,0x10,0x01,0x08,0xb5,0x00,0x0a,0x00,0x0a,0x0f,0x12,0xb8,0x01,0x0c,0xb3,0x04,0x04,0x18,0x17,0x11,0x12,0x39,0x2f,0xe9,0x33,0x33,0x32,0x2f,0x2f,0x00,0x3f,0x3f,0xed,0x32,0x32,0x2f,0x10,0xd4,0xed,0x32,0x2f,0x31,0x30,0x01,0x06, +0x23,0x22,0x35,0x35,0x23,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x01,0xcf,0x23,0x40,0x9f,0x02,0x29,0x68,0x1c,0x14,0x1e,0x26,0x7f,0x7f,0x4a,0x1e,0x1b,0x01,0xa6,0x12,0xbe,0xb4,0x76,0x08,0x7a,0x12,0xb4,0x01,0x0a,0xfd,0x9e,0x5e,0x10,0x00,0x02,0x00,0x66,0x02,0x9a,0x02,0x29,0x04,0xbe, +0x00,0x10,0x00,0x17,0x00,0x4d,0xb1,0x03,0x11,0xb8,0x01,0x0d,0xb3,0x0c,0x0c,0x0a,0x12,0xbd,0x01,0x0d,0x00,0x09,0x01,0x0a,0x00,0x00,0x00,0x0a,0x01,0x08,0x40,0x09,0x01,0x0f,0x0f,0x12,0x10,0xc2,0x00,0x00,0x06,0xb8,0x01,0x0c,0xb5,0x15,0x15,0x19,0x04,0x0c,0x12,0xb9,0x01,0x0c,0x00,0x09,0x2f,0xe9,0x32,0x32,0x12,0x39,0x2f,0xe9, +0x32,0x2f,0xe9,0x11,0x39,0x11,0x33,0x00,0x3f,0x33,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x07,0x06,0x07,0x15,0x16,0x15,0x14,0x23,0x23,0x11,0x33,0x15,0x33,0x32,0x37,0x37,0x03,0x15,0x33,0x32,0x35,0x34,0x23,0x02,0x29,0x47,0x1a,0x36,0x7c,0xdf,0xc9,0x80,0x2a,0x3e,0x1c,0x3c,0xc0,0x43,0x67,0x61,0x04,0xbe,0xa2,0x3c, +0x15,0x03,0x14,0x6e,0xac,0x02,0x24,0xd0,0x43,0x8d,0xfe,0xce,0x90,0x48,0x48,0x00,0x00,0x01,0x00,0x14,0x02,0x9a,0x03,0x18,0x04,0xbe,0x00,0x1b,0x00,0x17,0xbb,0x00,0x0a,0x01,0x0a,0x00,0x0b,0x01,0x08,0xb3,0x00,0x00,0x1d,0x0b,0x2f,0x11,0x33,0x2f,0x00,0x3f,0x3f,0x31,0x30,0x01,0x03,0x23,0x03,0x34,0x27,0x23,0x06,0x07,0x03,0x23, +0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x03,0x18,0x8c,0x9c,0x4a,0x0c,0x04,0x04,0x09,0x51,0x9c,0x88,0x8a,0x48,0x03,0x05,0x04,0x02,0x0a,0x58,0x92,0x50,0x03,0x05,0x04,0x02,0x08,0x4a,0x04,0xbe,0xfd,0xdc,0x01,0x41,0x01,0x45,0x19,0x2b,0xfe,0xbd,0x02,0x24,0xfe,0x9e,0x10,0x36,0x20, +0x28,0x01,0x60,0xfe,0x9e,0x0b,0x3b,0x20,0x26,0x01,0x62,0x00,0x00,0x01,0x00,0x0a,0x01,0x94,0x02,0x2f,0x04,0xbe,0x00,0x14,0x00,0x25,0xb2,0x06,0x06,0x08,0xb8,0x01,0x0d,0xb6,0x11,0x14,0x0b,0x01,0x04,0x03,0x0c,0xb8,0x01,0x08,0xb3,0x00,0x00,0x16,0x0c,0x2f,0x11,0x33,0x2f,0x00,0x3f,0xd4,0x17,0x39,0xed,0x32,0x2f,0x31,0x30,0x01, +0x03,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x37,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x02,0x2f,0xeb,0x48,0xa2,0x22,0x26,0x1e,0x20,0x57,0x24,0x14,0xd5,0x8a,0x78,0x0a,0x06,0x05,0x09,0x09,0x79,0x04,0xbe,0xfd,0x94,0xbe,0x0c,0x6c,0x0e,0x60,0x38,0x02,0x28,0xfe,0xa0,0x1e,0x34,0x37,0x1b,0x01,0x60,0x00,0x00,0x01, +0x00,0x82,0x03,0xdb,0x01,0x5e,0x05,0x9a,0x00,0x03,0x00,0x18,0xb7,0x02,0x03,0x03,0x03,0xbd,0x00,0x00,0x01,0xb9,0x01,0x34,0x00,0x02,0x2f,0xe9,0x32,0x2f,0xe9,0x00,0x3f,0xcd,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x5e,0x68,0x74,0x56,0x05,0x9a,0xfe,0x41,0x01,0xbf,0x00,0x00,0x02,0x00,0x8d,0x03,0xdb,0x02,0x84,0x05,0x9a,0x00,0x03, +0x00,0x07,0x00,0x28,0x40,0x12,0x06,0x03,0x02,0x07,0x04,0x03,0x00,0x00,0x01,0x02,0x02,0x09,0x06,0x07,0x04,0x04,0x05,0x06,0x2f,0xcd,0x32,0x2f,0xcd,0x11,0x12,0x39,0x2f,0xcd,0x32,0x2f,0xcd,0x00,0x3f,0xc4,0x33,0x32,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0x84,0x6a,0x74,0x56,0x93,0x69,0x73,0x55,0x05,0x9a,0xfe, +0x41,0x01,0xbf,0xfe,0x41,0x01,0xbf,0x00,0x00,0x01,0x00,0x6a,0x03,0xf4,0x01,0x6c,0x05,0xb2,0x00,0x03,0x00,0x16,0x40,0x09,0x02,0x03,0x04,0x03,0x00,0x00,0x01,0x01,0x02,0x2f,0x33,0x11,0x33,0x2f,0xcd,0x00,0x3f,0xcd,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x6c,0x6c,0x96,0x8c,0x05,0xb2,0xfe,0x42,0x01,0xbe,0x00,0xff,0xff,0x00,0x6e, +0x03,0xf4,0x01,0x70,0x05,0xb2,0x00,0x06,0x00,0xb7,0x00,0x00,0x00,0x01,0x00,0x6e,0x03,0xf4,0x01,0x70,0x05,0xb2,0x00,0x03,0x00,0x16,0x40,0x09,0x01,0x02,0x04,0x01,0x00,0x00,0x03,0x03,0x02,0x2f,0x33,0x11,0x33,0x2f,0xcd,0x00,0x3f,0xcd,0x31,0x30,0x01,0x23,0x03,0x33,0x01,0x70,0x74,0x8e,0x94,0x03,0xf4,0x01,0xbe,0x00,0x00,0x01, +0x00,0xfb,0x04,0xc2,0x01,0xaf,0x06,0x2f,0x00,0x0b,0x00,0x22,0x40,0x10,0x05,0xcb,0x40,0x06,0xc0,0x01,0xcb,0x40,0x00,0x00,0x06,0x06,0x80,0x09,0xc9,0x03,0x2f,0xf1,0x1a,0xc8,0x2f,0x32,0x00,0x2f,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x13,0x35,0x32,0x35,0x34,0x23,0x35,0x32,0x16,0x15,0x14,0x06,0xfb,0x5e,0x5e,0x4e,0x66,0x66, +0x04,0xc2,0x5c,0x5b,0x58,0x5e,0x68,0x4e,0x4e,0x69,0x00,0x01,0x00,0xfb,0x04,0xc2,0x01,0xaf,0x06,0x2f,0x00,0x0b,0x00,0x20,0x40,0x0f,0x07,0xcb,0x40,0x06,0xc0,0x0b,0xcb,0x40,0x00,0x00,0x06,0x80,0x09,0xc9,0x03,0x2f,0xe1,0x1a,0xcc,0x32,0x00,0x2f,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x15, +0x22,0x15,0x14,0x33,0x01,0xaf,0x4e,0x66,0x65,0x4f,0x5e,0x5e,0x04,0xc2,0x69,0x4e,0x4d,0x69,0x5e,0x58,0x5b,0x00,0x00,0x01,0x00,0x14,0x02,0x9a,0x01,0xb0,0x05,0xc4,0x00,0x15,0x00,0x2f,0xb1,0x0b,0x09,0xbe,0x01,0x0d,0x00,0x0e,0x01,0x07,0x00,0x01,0x01,0x0a,0x00,0x00,0x01,0x0c,0xb3,0x01,0x01,0x0b,0x11,0xb8,0x01,0x0c,0xb3,0x07, +0x07,0x17,0x0b,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x3f,0xed,0x32,0x31,0x30,0x13,0x23,0x11,0x34,0x36,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0xfc,0x7f,0x24,0x41,0x4d,0x87,0x4a,0x4a,0x4a,0x5a,0x73,0x85,0x6a,0x4a,0x02,0x9a,0x01,0x08,0x40,0x59,0x3c,0x49,0x36, +0x64,0x2b,0x73,0x22,0x6e,0x58,0x62,0x60,0x44,0x56,0x00,0x01,0x00,0x0a,0x02,0x9a,0x01,0xa6,0x05,0xc4,0x00,0x15,0x00,0x2f,0xb1,0x00,0x02,0xbe,0x01,0x0d,0x00,0x13,0x01,0x07,0x00,0x0b,0x01,0x0a,0x00,0x09,0x01,0x0c,0xb6,0x0c,0x0c,0x10,0x00,0x00,0x17,0x04,0xb9,0x01,0x0c,0x00,0x10,0x2f,0xe1,0x11,0x39,0x2f,0x12,0x39,0x2f,0xe1, +0x00,0x3f,0x3f,0xed,0x32,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x14,0x17,0x16,0x16,0x15,0x11,0x23,0x11,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x01,0xa6,0x48,0x52,0x80,0x4f,0x3a,0x29,0x80,0x50,0x64,0x8b,0x73,0x52,0x4c,0x05,0x2f,0x2b,0x5e,0x33,0x50,0x3a,0x58,0x45,0xfe,0xf8,0x01,0x06,0x4c,0x50,0x64,0x5a,0x58,0x72,0x22, +0x00,0x01,0x00,0x72,0x00,0xe4,0x04,0x3c,0x04,0xc2,0x00,0x06,0x00,0x32,0x40,0x16,0x04,0x03,0x0e,0x05,0x20,0x06,0x00,0x05,0x00,0x42,0x00,0x00,0x02,0x01,0x05,0x05,0x01,0x04,0x00,0x00,0x08,0x07,0x11,0x12,0x39,0x2f,0x33,0xcd,0x39,0x00,0x19,0x2f,0x33,0x33,0x33,0x18,0x2f,0x2b,0x11,0x00,0x33,0x1a,0x19,0x10,0xed,0x32,0x31,0x30, +0x25,0x01,0x35,0x01,0x17,0x01,0x01,0x04,0x3c,0xfc,0x36,0x03,0xc8,0x01,0xfc,0xff,0x03,0x00,0xe4,0x01,0x9b,0xa8,0x01,0x9b,0xb2,0xfe,0xc3,0xfe,0xc3,0x00,0x00,0x01,0x00,0x70,0x00,0xe4,0x04,0x3c,0x04,0xc2,0x00,0x06,0x00,0x32,0x40,0x17,0x04,0x05,0x0e,0x03,0x20,0x02,0x01,0x03,0x01,0x42,0x01,0x00,0x01,0x06,0x03,0x03,0x03,0x00, +0x04,0x01,0x01,0x08,0x07,0x11,0x12,0x39,0x2f,0x33,0xcd,0x39,0x00,0x19,0x2f,0x17,0x33,0x18,0x2f,0x2b,0x11,0x00,0x33,0x1a,0x19,0x10,0xed,0x32,0x31,0x30,0x01,0x01,0x35,0x01,0x01,0x35,0x01,0x04,0x3a,0xfc,0x36,0x03,0x02,0xfc,0xfe,0x03,0xcc,0x02,0x7f,0xfe,0x65,0xb2,0x01,0x3d,0x01,0x3d,0xb2,0xfe,0x65,0x00,0x00,0x01,0x00,0x66, +0x00,0xee,0x04,0x46,0x04,0xb8,0x00,0x06,0x00,0x23,0x40,0x0f,0x02,0x05,0x01,0x03,0x06,0x05,0x02,0x02,0x04,0x01,0x00,0x00,0x08,0x03,0x04,0x2f,0x33,0x12,0x39,0x2f,0x33,0x12,0x39,0x11,0x33,0x33,0x00,0x2f,0x33,0xcd,0x32,0x31,0x30,0x25,0x23,0x01,0x01,0x23,0x01,0x33,0x04,0x46,0xb2,0xfe,0xc2,0xfe,0xc2,0xb2,0x01,0x9c,0xa8,0xee, +0x03,0x02,0xfc,0xfe,0x03,0xca,0x00,0x01,0x00,0x66,0x00,0xee,0x04,0x46,0x04,0xb8,0x00,0x06,0x00,0x23,0x40,0x0f,0x06,0x04,0x05,0x02,0x02,0x01,0x05,0x05,0x03,0x06,0x00,0x00,0x08,0x04,0x03,0x2f,0x33,0x12,0x39,0x2f,0x33,0x12,0x39,0x11,0x33,0x33,0x00,0x2f,0x33,0xcd,0x32,0x31,0x30,0x01,0x01,0x23,0x01,0x33,0x01,0x01,0x04,0x46, +0xfe,0x64,0xa8,0xfe,0x64,0xb2,0x01,0x3e,0x01,0x3e,0x04,0xb8,0xfc,0x36,0x03,0xca,0xfc,0xfe,0x03,0x02,0x00,0x01,0x01,0x20,0x04,0x96,0x01,0x8a,0x06,0x00,0x00,0x03,0x00,0x11,0xb3,0x01,0x02,0x01,0x00,0xb9,0x01,0x32,0x00,0x01,0x2f,0xe1,0x00,0x3f,0xcd,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x8a,0x6a,0x6a,0x04,0x96,0x01,0x6a,0x00, +0xff,0xff,0x00,0x87,0x04,0xc2,0x02,0x0c,0x06,0x0a,0x02,0x06,0x00,0x8e,0x00,0x00,0xff,0xff,0x00,0x52,0x04,0xc2,0x01,0xd7,0x06,0x0a,0x02,0x06,0x00,0x43,0x00,0x00,0x00,0x01,0x01,0x20,0xfe,0x1e,0x01,0x8a,0xff,0x89,0x00,0x03,0x00,0x15,0xb5,0x02,0x02,0x04,0x01,0x1c,0x03,0xb9,0x01,0x32,0x00,0x02,0x2f,0xe1,0x00,0x3f,0x12,0x39, +0x2f,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x8a,0x6a,0x6a,0xfe,0x1e,0x01,0x6b,0x00,0x00,0x01,0x00,0x3e,0xff,0x1c,0x02,0x3a,0xff,0x89,0x00,0x03,0x00,0x13,0xb7,0x01,0xe2,0x02,0x04,0x03,0x03,0x05,0x02,0x2f,0x12,0x39,0x2f,0x00,0x10,0xde,0xed,0x31,0x30,0x05,0x21,0x35,0x21,0x02,0x3a,0xfe,0x04,0x01,0xfc,0xe4,0x6d,0x00,0xff,0xff, +0x00,0x52,0xfe,0x43,0x01,0xd7,0xff,0x8b,0x00,0x07,0x00,0x43,0x00,0x00,0xf9,0x81,0xff,0xff,0x00,0x87,0xfe,0x42,0x02,0x0c,0xff,0x8a,0x00,0x07,0x00,0x8e,0x00,0x00,0xf9,0x80,0x00,0x02,0x00,0xb6,0x00,0x00,0x01,0x83,0x04,0x25,0x00,0x03,0x00,0x07,0x00,0x1f,0x40,0x11,0x02,0x63,0x03,0x06,0x63,0x05,0x00,0x42,0x04,0x40,0x13,0x19, +0x48,0x04,0x62,0x03,0x05,0x2f,0x33,0xf1,0x2b,0xe2,0x00,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x07,0x23,0x27,0x13,0x23,0x37,0x33,0x01,0x83,0x5a,0x19,0x5a,0xcc,0xcc,0x5a,0x18,0x04,0x25,0xcd,0xcd,0xfb,0xdb,0xcd,0x00,0x00,0x01,0x00,0xb6,0x01,0xc8,0x01,0x83,0x02,0x96,0x00,0x03,0x00,0x15,0x40,0x0b,0x03,0x63,0x02,0x00,0x40,0x13, +0x19,0x48,0x00,0x62,0x03,0x2f,0xe1,0x2b,0x00,0x2f,0xed,0x31,0x30,0x01,0x07,0x23,0x27,0x01,0x83,0x58,0x1b,0x5a,0x02,0x96,0xce,0xce,0xff,0xff,0x00,0xfb,0x01,0x75,0x01,0xaf,0x02,0xe2,0x00,0x07,0x06,0x84,0x00,0x00,0xfc,0xb3,0xff,0xff,0x00,0xfb,0x01,0x75,0x01,0xaf,0x02,0xe2,0x00,0x07,0x06,0x85,0x00,0x00,0xfc,0xb3,0x00,0x01, +0x00,0xa0,0x01,0x74,0x02,0x0a,0x02,0xe6,0x00,0x07,0x00,0x22,0xb3,0x03,0xc0,0x05,0x02,0xb8,0x01,0x33,0xb5,0x00,0x06,0x06,0x05,0x01,0x05,0xb9,0x01,0x32,0x00,0x02,0x2f,0xe1,0xcd,0x10,0xc9,0x2f,0x00,0x2f,0xed,0x32,0x1a,0xcc,0x31,0x30,0x13,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0xa0,0x7e,0x6e,0x7e,0x01,0x74,0x6b,0x01,0x07,0xfe, +0xf9,0x6b,0x00,0x01,0x00,0xa0,0x01,0x74,0x02,0x0a,0x02,0xe6,0x00,0x07,0x00,0x1f,0x40,0x0e,0x01,0x06,0xe2,0x40,0x07,0xc0,0x04,0x01,0x01,0x02,0x06,0x02,0x50,0x05,0x2f,0xe1,0xcd,0x10,0xc1,0x2f,0x00,0x2f,0x1a,0xdc,0x1a,0xed,0x32,0x31,0x30,0x01,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x02,0x0a,0x7e,0x6e,0x7e,0x02,0xe6,0x6b,0xfe, +0xf9,0x01,0x07,0x6b,0x00,0x01,0x00,0xa0,0x01,0x74,0x02,0x0a,0x02,0xdd,0x00,0x0b,0x00,0x29,0x40,0x13,0x08,0x80,0x01,0x04,0xfd,0x40,0x0a,0x07,0x03,0x00,0x04,0x05,0x05,0x80,0x0a,0x01,0xfc,0x07,0x04,0x2f,0x33,0xf1,0x32,0x1a,0xc8,0x2f,0x10,0xcc,0x00,0x2f,0xde,0x32,0x1a,0xfd,0x32,0x1a,0xce,0x31,0x30,0x01,0x23,0x15,0x23,0x35, +0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x02,0x0a,0x7e,0x6e,0x7e,0x7e,0x6e,0x7e,0x01,0xf4,0x80,0x80,0x6a,0x7f,0x7f,0x00,0x01,0x00,0x3e,0x01,0xf4,0x02,0x3a,0x02,0x60,0x00,0x03,0x00,0x11,0xb6,0x02,0xe2,0x01,0x00,0x00,0x05,0x01,0x2f,0x12,0x39,0x2f,0x00,0x2f,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0x3a,0xfe,0x04,0x01,0xfc,0x01, +0xf4,0x6c,0x00,0x01,0x00,0x79,0x02,0x79,0x02,0x31,0x03,0xc8,0x00,0x0c,0x00,0x3d,0xb7,0x0c,0x0c,0x09,0x01,0x01,0x0b,0x06,0x04,0xb8,0x01,0x35,0x40,0x09,0x09,0x01,0x06,0x40,0x0b,0x0e,0x48,0x06,0x00,0xb8,0xff,0xc0,0x40,0x09,0x09,0x0d,0x48,0x00,0x00,0x01,0x06,0x03,0x0b,0x19,0x2f,0x17,0x33,0x18,0x2f,0x2b,0x2f,0x2b,0x19,0x2f, +0x00,0x18,0x2f,0xed,0x32,0xcd,0x32,0x2f,0x11,0x39,0x2f,0x31,0x30,0x13,0x37,0x17,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x27,0x07,0x79,0xcb,0x20,0x27,0x4e,0x29,0x2f,0x39,0x30,0x7a,0x3c,0x54,0x02,0xf0,0xd8,0x5e,0x74,0x22,0x80,0x1f,0x79,0x56,0x00,0x01,0x00,0x48,0x03,0xa4,0x02,0x68,0x05,0xc4,0x00,0x0b,0x00,0x4a,0x40,0x16, +0x00,0x01,0x04,0x03,0x03,0x06,0x09,0x0a,0x03,0x07,0x02,0x03,0x07,0x08,0x0b,0x05,0xe4,0x05,0xf4,0x05,0x02,0x05,0xb8,0xff,0xe0,0x40,0x15,0x2c,0x30,0x48,0x05,0x00,0x09,0x0a,0x03,0x01,0x04,0x06,0x07,0x03,0x03,0x01,0x02,0x03,0x05,0x0b,0x05,0x08,0x19,0x2f,0x17,0x33,0x11,0x17,0x33,0x11,0x17,0x33,0x00,0x2f,0x2b,0x5d,0x17,0x33, +0x11,0x17,0x33,0x11,0x17,0x33,0x31,0x30,0x01,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x37,0x17,0x07,0x02,0x68,0x54,0xbc,0xbc,0x54,0xbc,0xbc,0x54,0xbc,0xbc,0x54,0xbc,0x03,0xf8,0x54,0xbc,0xbc,0x54,0xbc,0xbc,0x54,0xbc,0xbc,0x54,0xbc,0x00,0x02,0x00,0x0a,0x01,0xb8,0x02,0x4c,0x04,0xbe,0x00,0x11,0x00,0x19,0x00,0x4f,0x40,0x12, +0x01,0x0d,0x10,0x12,0x04,0x11,0x0f,0x07,0x16,0x01,0x0d,0x10,0x12,0x04,0x04,0x0a,0x11,0x00,0xb8,0xff,0xc0,0x40,0x10,0x09,0x0c,0x48,0x00,0x00,0x04,0x0f,0x0e,0x40,0x09,0x0c,0x48,0x0e,0x0e,0x0a,0x04,0xbc,0x01,0x34,0x00,0x18,0x00,0x0a,0x01,0x34,0x00,0x14,0x2f,0xe1,0xde,0xe1,0x10,0xc2,0x2f,0x2b,0x32,0x10,0xc2,0x2f,0x2b,0x32, +0x11,0x12,0x17,0x39,0x00,0x2f,0xcd,0xc4,0x32,0x17,0x39,0x31,0x30,0x01,0x03,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x03,0x33,0x13,0x13,0x03,0x06,0x15,0x14,0x33,0x32,0x35,0x34,0x02,0x4c,0xdc,0x19,0x3b,0x5c,0x43,0x45,0x52,0x3d,0x19,0xda,0x8a,0x95,0x99,0x99,0x29,0x29,0x29,0x04,0xbe,0xfe,0x50,0x28,0x5e, +0x3c,0x3a,0x5a,0x52,0x3e,0x37,0x67,0x28,0x01,0xb0,0xfe,0xb9,0x01,0x47,0xfd,0xf6,0x44,0x22,0x34,0x34,0x22,0x00,0x00,0x01,0x00,0x66,0x02,0x9a,0x00,0xe6,0x05,0xc4,0x00,0x03,0x00,0x16,0xbe,0x00,0x02,0x01,0x06,0x00,0x01,0x01,0x0a,0x00,0x00,0x01,0x0c,0x00,0x01,0x2f,0xe1,0x00,0x3f,0x3f,0x31,0x30,0x13,0x23,0x11,0x33,0xe6,0x80, +0x80,0x02,0x9a,0x03,0x2a,0x00,0x00,0x01,0x00,0x3e,0x02,0x89,0x01,0xbc,0x04,0xcf,0x00,0x1d,0x00,0x5d,0x40,0x17,0x25,0x17,0x01,0x17,0x15,0x03,0x0b,0x09,0x1b,0x09,0x2b,0x09,0x03,0x0b,0x07,0x1b,0x07,0x02,0x09,0x07,0x1c,0x10,0x12,0xbf,0x01,0x0d,0x00,0x0d,0x01,0x09,0x00,0x01,0x00,0x03,0x01,0x0d,0x00,0x1c,0x01,0x0b,0xb3,0x10, +0x10,0x0a,0x19,0xb8,0x01,0x0c,0xb4,0x05,0x05,0x1f,0x01,0x14,0xb8,0x01,0x0c,0xb2,0x0a,0x0a,0x01,0x2f,0x33,0x10,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x39,0x5d,0x5d,0x12,0x39,0x39,0x5d,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x36,0x33,0x32, +0x17,0x15,0x26,0x23,0x22,0x15,0x14,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x3e,0x48,0x55,0x63,0x27,0x4a,0x8f,0x79,0x5d,0x47,0x43,0x42,0x4a,0x56,0x60,0x69,0x37,0x7f,0x66,0x4f,0x02,0xac,0x70,0x30,0x39,0x1b,0x21,0x1e,0x38,0x6c,0x4a,0x62,0x1d,0x6e,0x28,0x3d,0x31,0x27,0x2a,0x4e,0x30,0x46,0x60,0x00,0x01,0x00,0x14,0x02,0x9a, +0x02,0x2d,0x04,0xbe,0x00,0x13,0x00,0x17,0xbb,0x00,0x0e,0x01,0x08,0x00,0x0a,0x01,0x0a,0xb3,0x02,0x02,0x15,0x0b,0x2f,0x11,0x33,0x2f,0x00,0x3f,0x3f,0x31,0x30,0x01,0x03,0x13,0x23,0x27,0x26,0x27,0x23,0x06,0x07,0x07,0x23,0x13,0x03,0x33,0x1f,0x02,0x33,0x37,0x02,0x2d,0xb9,0xb7,0x8f,0x62,0x02,0x15,0x05,0x08,0x0e,0x64,0x90,0xbd, +0xae,0x8f,0x5e,0x01,0x14,0x04,0x7d,0x04,0xbe,0xfe,0xf0,0xfe,0xec,0xa4,0x02,0x2a,0x12,0x18,0xa6,0x01,0x0e,0x01,0x16,0xae,0x02,0x28,0xd8,0x00,0xff,0xff,0x00,0x0a,0x02,0x9a,0x01,0xa6,0x05,0xc4,0x02,0x06,0x06,0x87,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x05,0x00,0x1a,0x40,0x0b,0x01,0x03,0x04,0x04, +0x03,0x03,0x00,0x01,0x01,0x07,0x06,0x11,0x12,0x39,0x2f,0xcd,0x33,0x2f,0x00,0x3f,0xcd,0x2f,0x31,0x30,0x21,0x23,0x11,0x21,0x35,0x21,0x02,0x7a,0x9c,0xfe,0xb8,0x01,0xe4,0x05,0x1e,0x9c,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x1e,0x40,0x0d,0x01,0x03,0x04,0x06,0x04,0x03,0x03,0x05,0x00,0x01,0x01,0x09, +0x08,0x11,0x12,0x39,0x2f,0xcd,0x33,0x33,0x2f,0x00,0x3f,0x2f,0xcd,0x2f,0x31,0x30,0x21,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x01,0x48,0x9c,0x03,0xd5,0x9d,0x01,0x48,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x1e,0x40,0x0d,0x01,0x06,0x04,0x03,0x04,0x03,0x03,0x05,0x00,0x01, +0x01,0x09,0x08,0x11,0x12,0x39,0x2f,0xcd,0x33,0x33,0x2f,0x00,0x2f,0xcd,0x3f,0x2f,0x31,0x30,0x21,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x01,0x48,0x9c,0x02,0x90,0x9b,0x02,0x8f,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x1e,0x40,0x0d,0x01,0x06,0x04,0x03,0x04,0x03,0x03,0x05, +0x00,0x01,0x01,0x09,0x08,0x11,0x12,0x39,0x2f,0xcd,0x33,0x33,0x2f,0x00,0x2f,0xcd,0x3f,0x2f,0x31,0x30,0x21,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x01,0x48,0x9c,0x01,0x48,0x9c,0x03,0xd6,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x05,0x00,0x1a,0x40,0x0b,0x01,0x02,0x05,0x04,0x02,0x02, +0x05,0x04,0x04,0x07,0x06,0x11,0x12,0x39,0x2f,0xcd,0x33,0x2f,0x00,0x3f,0x2f,0xcd,0x31,0x30,0x21,0x21,0x35,0x21,0x11,0x33,0x02,0x79,0xfe,0x1d,0x01,0x48,0x9c,0x9c,0x05,0x1e,0x00,0x01,0x00,0x62,0x00,0x00,0x02,0x48,0x03,0x70,0x00,0x05,0x00,0x10,0xb5,0x02,0x04,0x01,0x05,0x04,0x01,0x2f,0xcd,0x2f,0x00,0x2f,0xcd,0x2f,0x31,0x30, +0x21,0x21,0x11,0x33,0x03,0x21,0x02,0x48,0xfe,0x1a,0x5e,0x02,0x01,0x8a,0x03,0x70,0xfc,0xee,0x00,0x01,0x00,0x62,0x00,0x00,0x02,0x48,0x03,0x70,0x00,0x07,0x00,0x19,0x40,0x0a,0x03,0x04,0x01,0x06,0x00,0x00,0x09,0x06,0x02,0x03,0x2f,0xcd,0x32,0x11,0x39,0x2f,0x00,0x2f,0xcd,0x2f,0x2f,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x33,0x03, +0x21,0x02,0x48,0xfe,0x78,0x5e,0x5e,0x02,0x01,0x8a,0x01,0x89,0xfe,0x77,0x03,0x70,0xfe,0x78,0x00,0x01,0x00,0x3c,0xfe,0x40,0x02,0x6e,0xff,0x89,0x00,0x06,0x00,0x1c,0x40,0x0e,0x00,0x00,0x08,0x03,0x02,0x80,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x00,0x2f,0x5d,0x1a,0xcd,0x01,0x2f,0x12,0x39,0x2f,0x31,0x30,0x05,0x03,0x23,0x03, +0x33,0x17,0x37,0x02,0x6e,0xd6,0x84,0xd8,0x73,0xa4,0xa4,0x77,0xfe,0xb7,0x01,0x49,0xe5,0xe5,0x00,0x02,0x00,0x00,0x04,0x5c,0x03,0x52,0x05,0xec,0x00,0x03,0x00,0x07,0x00,0x22,0x40,0x13,0x05,0xd9,0x00,0x06,0x10,0x06,0x20,0x06,0x03,0x06,0x06,0x01,0xd9,0x02,0x00,0x04,0x01,0x00,0x05,0x2f,0xc4,0x33,0x32,0x00,0x3f,0xed,0x33,0x2f, +0x5d,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x03,0x52,0xfc,0xae,0x03,0x52,0xfc,0xae,0x03,0x52,0x05,0x74,0x78,0xfe,0x70,0x77,0x00,0x02,0x00,0x6e,0x03,0xf4,0x02,0xa0,0x05,0xb2,0x00,0x03,0x00,0x07,0x00,0x33,0x40,0x0a,0x02,0x03,0x06,0x07,0x04,0x03,0xea,0x00,0x00,0x01,0xb8,0x01,0x34,0x40,0x09,0x02,0x02,0x09, +0x06,0x07,0xea,0x04,0x04,0x05,0xb9,0x01,0x34,0x00,0x06,0x2f,0xe9,0x32,0x2f,0xe9,0x11,0x12,0x39,0x2f,0xe9,0x32,0x2f,0xe9,0x00,0x3f,0xcd,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0xa0,0x8c,0x76,0x6c,0x9a,0x8c,0x76,0x6f,0x05,0xb2,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x01,0xbe,0x00,0x01,0xff,0x3a,0xfe,0x1e, +0x01,0x4a,0x04,0x00,0x00,0x0c,0x00,0x3a,0x40,0x19,0x0b,0x0f,0x06,0x06,0x08,0x03,0x08,0x95,0x59,0x03,0x1c,0x06,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x84,0x0a,0xb8,0xff,0xfe,0xb6,0x0c,0x06,0x4d,0x0a,0x0a,0x0e,0x0d,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0xc6,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x3f, +0x31,0x30,0x25,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x01,0x4a,0xcb,0xbd,0x46,0x42,0x4a,0x42,0xe0,0xa4,0x2b,0xfc,0xfe,0xef,0x20,0x99,0x2d,0x01,0x66,0x03,0xf0,0x00,0x01,0x00,0x0a,0x00,0x00,0x02,0x0e,0x04,0x00,0x00,0x0b,0x00,0x2d,0x40,0x17,0x01,0x0a,0x04,0x95,0x40,0x07,0x08,0x03,0x07,0x95,0x30,0x30, +0x08,0x0f,0x03,0x00,0x00,0x09,0x08,0x02,0x84,0x05,0x03,0x2f,0xc6,0xf1,0x39,0x39,0xc2,0x2f,0x00,0x2f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x02,0x0e,0xb0,0xa4,0xb0,0xb0,0xa4,0xb0,0x01,0xdb,0xfe,0x25,0x01,0xdb,0x8b,0x01,0x9a,0xfe,0x66,0x00,0x01, +0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x4a,0x40,0x2e,0x74,0x06,0x84,0x06,0x02,0x36,0x06,0x46,0x06,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x00,0x04,0x10,0x04,0x02,0x04,0x34,0x07,0x44,0x07,0x54,0x07,0x74,0x07,0x84,0x07,0x94,0x07,0x06,0x07,0x02,0x04,0x06,0x08,0x02,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12, +0x39,0x2f,0x10,0xd4,0xcd,0x12,0x39,0x5d,0x01,0x2f,0x5d,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x5d,0x31,0x30,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0x65,0x01,0x2a,0x9c,0x03,0xd6,0x01,0x48,0x9c,0xfe,0xd6,0x01,0x2a,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba, +0x00,0x09,0x00,0x5a,0x40,0x39,0x24,0x03,0x01,0x16,0x03,0x01,0x94,0x06,0xa4,0x06,0x02,0x72,0x06,0x01,0x43,0x06,0x01,0x14,0x06,0x24,0x06,0x34,0x06,0x03,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x00,0x04,0x10,0x04,0x02,0x04,0x03,0x06,0x08,0x90,0x07,0xa0,0x07,0x02,0x84,0x07,0x01,0x70,0x07,0x01,0x07,0x02,0x02,0x01,0x08,0x01,0x00, +0x2f,0x2f,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x10,0xd4,0xcd,0x01,0x2f,0x5d,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0xa1,0xee,0x9c,0x02,0x8f,0x02,0x8f,0x9c,0xfe,0x07,0x01,0xf9,0x00,0x01,0x00,0x96, +0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x44,0x40,0x29,0x04,0x06,0x14,0x06,0x94,0x06,0xa4,0x06,0x04,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x00,0x04,0x10,0x04,0x02,0x04,0x03,0x06,0x09,0xa1,0x07,0x01,0x70,0x07,0x80,0x07,0x90,0x07,0x03,0x07,0x02,0x02,0x01,0x09,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x10,0xd4, +0xcd,0x01,0x2f,0x5d,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x31,0x30,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0xa1,0xee,0x9c,0x01,0x47,0x03,0xd7,0x9c,0xfd,0x37,0x02,0xc9,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x38,0x40,0x20,0xa6,0x05,0x01,0x02, +0x05,0x03,0x01,0x06,0x08,0x0a,0x00,0x03,0x10,0x03,0x02,0x03,0x02,0x05,0x07,0xa0,0x06,0x01,0x91,0x06,0x01,0x70,0x06,0x80,0x06,0x02,0x06,0x01,0x00,0x2f,0x33,0x5d,0x5d,0x5d,0x2f,0xd4,0xcd,0x01,0x2f,0x5d,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x31,0x30,0x21,0x23,0x01,0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8, +0xfe,0xb9,0x01,0xa1,0xee,0x9c,0x05,0x1e,0x9c,0xfc,0x4a,0x03,0xb6,0x00,0x00,0x01,0x00,0x43,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x56,0x40,0x33,0xb7,0x06,0x01,0x03,0x06,0x04,0xb6,0x07,0x01,0x99,0x07,0x01,0x07,0x02,0x08,0x0a,0x05,0x04,0xb7,0x04,0x01,0xa8,0x04,0x01,0x04,0x05,0x08,0x93,0x06,0x01,0x86,0x06,0x01,0x77, +0x06,0x01,0x06,0x03,0x03,0x01,0xc6,0x02,0x01,0x48,0x02,0x58,0x02,0x02,0x02,0x08,0x01,0x00,0x2f,0x2f,0x33,0x5d,0x5d,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x10,0xc4,0x32,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x5d,0x5d,0x12,0x39,0x39,0x5d,0x31,0x30,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb8, +0xfe,0x66,0x53,0x01,0x47,0x01,0x48,0x9c,0x05,0x0a,0xfe,0xcc,0x01,0x85,0x5f,0xfe,0xcc,0x01,0x34,0x00,0x00,0x01,0x00,0x43,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x32,0x40,0x18,0xaa,0x03,0x01,0x56,0x06,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x06,0x02,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12, +0x39,0x2f,0xcd,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x5d,0x31,0x30,0x21,0x23,0x11,0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x9a,0xfe,0x84,0x53,0x01,0x47,0x01,0x48,0x9c,0x03,0xd6,0x01,0x85,0x5f,0xfe,0xb8,0x01,0x48,0x00,0x01,0x00,0x43,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07, +0x00,0x42,0x40,0x26,0x02,0x05,0x07,0x09,0x04,0x03,0xb6,0x03,0x01,0x03,0x04,0x06,0xc8,0x05,0x01,0x93,0x05,0x01,0x74,0x05,0x01,0x65,0x05,0x01,0x46,0x05,0x56,0x05,0x02,0x37,0x05,0x01,0x05,0x02,0x02,0x01,0x06,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x10,0xc4,0x32,0x5d,0x01,0x2f,0x33,0x10,0xde, +0xdd,0xc4,0x31,0x30,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfd,0x1e,0x53,0x02,0x8f,0x9c,0x02,0x8f,0x02,0xcc,0x5f,0xfd,0x8f,0x02,0x71,0x00,0x01,0x00,0x43,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x42,0x40,0x23,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0xb6,0x03,0x01,0x9b,0x03,0x01,0xa7,0x06,0x01, +0x56,0x06,0x01,0x03,0x06,0x02,0xb6,0x04,0x01,0x04,0x05,0x08,0x07,0x02,0x02,0x08,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x33,0x10,0xc4,0x32,0x5d,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x66,0x53, +0x01,0x9a,0xf5,0x9c,0x01,0x47,0x02,0x8f,0x01,0x85,0x5f,0xfe,0x7e,0xfe,0x0f,0x03,0x73,0x00,0x00,0x01,0x00,0x43,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x42,0x40,0x25,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x04,0x03,0xb6,0x02,0x01,0x96,0x05,0x01,0x67,0x05,0x77,0x05,0x02,0x55,0x05,0x01,0x02,0x05,0x01,0xb6,0x03,0x01,0x03, +0x04,0x07,0x90,0x06,0x01,0x06,0x01,0x00,0x2f,0x33,0x5d,0x2f,0xc4,0x32,0x5d,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x01,0x01,0x37,0x01,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x66,0x53,0x01,0xae,0xe1,0x9c,0x03,0xd6,0x01,0x85,0x5f,0xfe,0x6a,0xfd,0x5e, +0x04,0x38,0x00,0x01,0x00,0x43,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x36,0x40,0x1e,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0x01,0x03,0xb6,0x03,0x01,0x03,0x04,0x06,0x84,0x05,0x94,0x05,0x02,0x56,0x05,0x66,0x05,0x02,0x05,0x02,0x02,0x06,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x33,0x5d,0x5d,0x10,0xc4,0x32,0x5d,0x01,0x2f,0x5d,0x33, +0x10,0xde,0xdd,0xc4,0x31,0x30,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x65,0x53,0x01,0x48,0x9c,0x03,0xd6,0x01,0x85,0x5f,0xfe,0xcc,0x01,0x34,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x76,0x40,0x4a,0x68,0x07,0x01,0x88,0x04,0x01,0x83,0x03,0x01,0x77,0x03,0x01,0x58,0x03,0x68,0x03, +0x02,0x04,0x03,0x34,0x03,0x44,0x03,0x03,0x77,0x06,0x01,0x03,0x03,0x06,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0xc7,0x04,0x01,0x26,0x04,0x01,0x04,0x05,0x07,0x93,0x06,0xa3,0x06,0x02,0x02,0x83,0x06,0x01,0x74,0x06,0x01,0x27,0x06,0x01,0x06,0x03,0x03,0x01,0x7b,0x02,0x01,0x48,0x02,0x01,0x02,0x07,0x01,0x00,0x2f,0x2f,0x33,0x5d,0x5d, +0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x5f,0x5d,0x10,0xc4,0x32,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x67,0x01,0x47,0x01,0x48,0x9c,0x04,0xc4,0xfd,0xcb,0x02,0xe4, +0x47,0xfd,0xcb,0x02,0x35,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x66,0x40,0x40,0x86,0x03,0xc6,0x03,0xd6,0x03,0xe6,0x03,0x04,0x58,0x03,0x68,0x03,0x02,0x36,0x03,0x46,0x03,0x02,0x04,0x03,0x01,0x85,0x06,0x95,0x06,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0xb6,0x04,0x01,0x79,0x04,0x01, +0x04,0x05,0x08,0xa2,0x06,0x01,0x74,0x06,0x94,0x06,0x02,0x06,0x03,0x07,0x02,0x03,0x02,0x03,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x5d,0x5d,0x10,0xc4,0x32,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x21,0x23,0x11,0x01,0x01,0x37, +0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x67,0x01,0x61,0x01,0x2e,0x9c,0x03,0xd6,0xfe,0xb9,0x02,0xe4,0x47,0xfd,0xa0,0x01,0x40,0x01,0x20,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x3e,0x40,0x22,0x9c,0x03,0x01,0x79,0x03,0x89,0x03,0x02,0xa6,0x06,0x01,0x57,0x06,0x67,0x06,0x02,0x03,0x06, +0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x06,0x02,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0xcd,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x21,0x23,0x11,0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x67,0x01,0x7d,0x01,0x12, +0x9c,0x02,0x8f,0x02,0xe4,0x47,0xfd,0x71,0x02,0x8f,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5d,0x40,0x37,0xa3,0x06,0x01,0x02,0x9a,0x02,0xaa,0x02,0x02,0x7b,0x02,0x8b,0x02,0x02,0x68,0x02,0x01,0x5b,0x02,0x01,0x4a,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x91,0x06,0x01,0x85,0x06,0x01, +0x76,0x06,0x01,0x03,0x06,0x02,0x04,0x05,0x08,0x37,0x07,0x01,0x07,0x02,0x02,0x08,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x33,0x5d,0x10,0xc4,0x32,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x17,0x11,0x33,0x03, +0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x67,0x01,0x97,0xf8,0x9c,0x01,0x47,0x01,0x48,0x02,0xe4,0x47,0xfd,0x40,0xf9,0x03,0xb9,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x06,0x00,0x34,0x40,0x1d,0x01,0x04,0x06,0x08,0x03,0x02,0x02,0x03,0x05,0x93,0x04,0xa3,0x04,0x02,0x02,0x80,0x04,0x01,0x73,0x04,0x01,0x64,0x04,0x01, +0x56,0x04,0x01,0x04,0x00,0x00,0x2f,0x32,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x2f,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x21,0x23,0x01,0x37,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfd,0x0a,0x67,0x02,0x8f,0x9c,0x05,0x73,0x47,0xfb,0x5b,0x04,0xa5,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x45, +0x40,0x29,0x88,0x03,0x98,0x03,0x02,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0xd0,0x03,0x02,0x03,0x26,0x03,0x01,0x03,0x04,0x06,0x90,0x05,0xa0,0x05,0x02,0x72,0x05,0x82,0x05,0x02,0x63,0x05,0x01,0x05,0x02,0x02,0x01,0x06,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x10,0xc4,0x32,0x5d,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd, +0xc4,0x31,0x30,0x00,0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x51,0x67,0x01,0x48,0x9c,0x02,0x8f,0x02,0xe4,0x47,0xfd,0xd5,0x02,0x2b,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x7a,0x40,0x4d,0x29,0x07,0x01,0x89,0x04,0xa9,0x04,0x02,0x75,0x03,0x85,0x03,0x02,0x68,0x03,0x01, +0x45,0x03,0x01,0x36,0x03,0x01,0x2a,0x03,0x01,0x07,0x03,0x17,0x03,0x02,0x03,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x78,0x04,0x98,0x04,0x02,0x04,0x05,0x07,0xa3,0x06,0x01,0x02,0x90,0x06,0x01,0x81,0x06,0x01,0x74,0x06,0x01,0x06,0x03,0x03,0x01,0x7b,0x02,0x01,0x1c,0x02,0x01,0x0b,0x02,0x01,0x02,0x07,0x01,0x00,0x2f,0x2f, +0x33,0x5d,0x5d,0x5d,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x5f,0x5d,0x10,0xc4,0x32,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x48,0x71,0x01,0x47,0x01,0x48,0x9c,0x04,0x6a, +0xfc,0xdd,0x04,0x3c,0x37,0xfc,0xdd,0x03,0x23,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x75,0x40,0x49,0xa4,0x07,0x01,0x95,0x07,0x01,0x89,0x04,0x99,0x04,0xa9,0x04,0x03,0x78,0x04,0x01,0x85,0x02,0x01,0x76,0x02,0x01,0x84,0x03,0x01,0x35,0x03,0x45,0x03,0x75,0x03,0x03,0x03,0x06,0x03,0x16,0x03,0x02, +0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x94,0x06,0xa4,0x06,0x02,0x83,0x06,0x01,0x02,0x70,0x06,0x01,0x06,0x03,0x07,0x02,0x03,0x02,0x03,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x5d,0x5f,0x5d,0x5d,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39, +0x5d,0x5f,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x48,0x71,0x01,0x51,0x01,0x3e,0x9c,0x03,0xd6,0xfd,0x71,0x04,0x3c,0x37,0xfc,0xc5,0x02,0x89,0xb2,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x64,0x40,0x3b, +0x36,0x03,0x46,0x03,0x02,0x17,0x03,0x01,0x04,0x03,0x01,0x91,0x06,0xa1,0x06,0x02,0xa9,0x04,0x01,0x9b,0x04,0x01,0x89,0x04,0x01,0x79,0x02,0x01,0x6c,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x72,0x06,0x82,0x06,0x02,0x06,0x03,0x07,0x02,0x03,0x02,0x03,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39, +0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x5d,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x48,0x71,0x01,0x71,0x01,0x1e,0x9c,0x02,0x8f,0xfe,0xb8,0x04,0x3c,0x37, +0xfc,0x82,0x01,0x0d,0x02,0x71,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x42,0x40,0x25,0xa6,0x06,0x01,0x94,0x06,0x01,0x76,0x06,0x86,0x06,0x02,0xad,0x03,0x01,0x99,0x03,0x01,0x88,0x03,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x06,0x02,0x02,0x08,0x00,0x00,0x2f,0x2f,0x39,0x2f, +0xcd,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x37,0x01,0x33,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x48,0x71,0x01,0x96,0xf9,0x9c,0x01,0x47,0x04,0x3c,0x37,0xfc,0x29,0x03,0xd7,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xc1,0x05,0xba, +0x00,0x08,0x00,0x55,0x40,0x35,0x74,0x06,0x01,0x56,0x06,0x01,0xa5,0x05,0x01,0x57,0x05,0x01,0xaa,0x03,0x01,0x99,0x03,0x01,0x8a,0x03,0x01,0xab,0x02,0x01,0x9c,0x02,0x01,0x8a,0x02,0x01,0x68,0x02,0x78,0x02,0x02,0x39,0x02,0x49,0x02,0x02,0x01,0x06,0x08,0x0a,0x04,0x03,0x03,0x04,0x02,0x05,0x07,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39, +0x39,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x37,0x01,0x17,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x48,0x71,0x01,0xb4,0xdb,0x9c,0x01,0x47,0x04,0x3c,0x37,0xfb,0xde,0xde,0x05,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x7a, +0x05,0xba,0x00,0x07,0x00,0x3b,0x40,0x20,0xa2,0x05,0x01,0x95,0x05,0x01,0x82,0x05,0x01,0x77,0x05,0x01,0xa9,0x03,0x01,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0x01,0x03,0x03,0x04,0x06,0x05,0x02,0x02,0x06,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d, +0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x51,0x67,0x01,0x48,0x9c,0x01,0x47,0x04,0x3c,0x37,0xfc,0xc9,0x03,0x37,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x7c,0x40,0x50,0x89,0x06,0x01,0x76,0x06,0x01,0xca,0x03,0x01,0x97,0x03,0x01,0x8a,0x03,0x01,0x74,0x03,0x01,0x35,0x03, +0x45,0x03,0x02,0x28,0x03,0x01,0x15,0x03,0x01,0x07,0x03,0x01,0x47,0x06,0x01,0x9b,0x04,0xab,0x04,0x02,0x89,0x04,0x01,0x7a,0x04,0x01,0x10,0x04,0x01,0x48,0x02,0x01,0x03,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x04,0x05,0x02,0x07,0xa3,0x06,0x01,0x02,0x70,0x06,0x80,0x06,0x90,0x06,0x03,0x06,0x03,0x01,0x00,0x2f,0xc4,0x32, +0x5d,0x5f,0x5d,0x2f,0x33,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x3d,0x76,0x01,0x4d,0x01,0x48,0x9c,0x04,0x10,0xfb,0xf0, +0x05,0x8c,0x2e,0xfb,0xf0,0x04,0x10,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x8c,0x40,0x59,0x8a,0x06,0x01,0x76,0x06,0x01,0xa8,0x04,0x01,0x8a,0x03,0x01,0x74,0x03,0x01,0x58,0x03,0x01,0x36,0x03,0x46,0x03,0x02,0x28,0x03,0x01,0x15,0x03,0x01,0x03,0x07,0x03,0x01,0xa3,0x06,0x01,0x02,0x90,0x06,0x01, +0x82,0x06,0x01,0xaa,0x04,0x01,0x03,0x79,0x04,0x89,0x04,0x99,0x04,0x03,0x14,0x04,0x01,0x9a,0x02,0xaa,0x02,0x02,0x22,0x02,0x01,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x09,0x07,0x02,0x02,0x01,0x09,0x70,0x06,0x01,0x06,0x03,0x01,0x00,0x2f,0xc4,0x32,0x5d,0x2f,0x12,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f, +0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5f,0x5d,0x01,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x3d,0x79,0x01,0x55,0x01,0x3d,0x9c,0x03,0xd6,0xfc,0x2a,0x05,0x8c,0x2e, +0xfb,0xc9,0x03,0xb7,0x80,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x7a,0x40,0x4b,0x76,0x06,0x01,0x07,0x06,0x01,0x8a,0x03,0x01,0x74,0x03,0x01,0x35,0x03,0x45,0x03,0x02,0x03,0x06,0x03,0x16,0x03,0x02,0xa7,0x07,0x01,0x93,0x06,0xa3,0x06,0x02,0x02,0x82,0x06,0x01,0xab,0x04,0x01,0x9a,0x04,0x01,0x03, +0x02,0x04,0x01,0x02,0x7b,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x07,0x02,0x02,0x00,0x08,0x70,0x06,0x01,0x54,0x06,0x01,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x5d,0x5d,0x2f,0x12,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5f,0x5d,0x5f, +0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x01,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x3d,0x76,0x01,0x69,0x01,0x2c,0x9c,0x02,0x8f,0xfd,0x71,0x05,0x8c,0x2e,0xfb,0x90,0x02,0x6d,0x02,0x03,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x60, +0x40,0x39,0xa6,0x06,0x01,0x94,0x06,0x01,0x97,0x05,0x01,0x36,0x03,0x46,0x03,0x02,0x17,0x03,0x01,0x06,0x03,0x01,0x90,0x06,0xa0,0x06,0x02,0x82,0x06,0x01,0x71,0x06,0x01,0xab,0x04,0x01,0x89,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x07,0x02,0x02,0x00,0x08,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f, +0x12,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x3d,0x79,0x01,0x81,0x01,0x11,0x9c,0x01,0x47,0xfe,0xb9,0x05,0x8c,0x2e,0xfb,0x43, +0x01,0x04,0x03,0xb9,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x36,0x40,0x1e,0x94,0x04,0x01,0x76,0x04,0x86,0x04,0x02,0xa6,0x03,0x01,0x97,0x03,0x01,0xa9,0x01,0x01,0x01,0x04,0x02,0x06,0x07,0x09,0x03,0x02,0x02,0x03,0x06,0x05,0x00,0x00,0x2f,0xcd,0x2f,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39, +0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x01,0x37,0x01,0x33,0x11,0x33,0x03,0xc1,0xfe,0x1c,0xfe,0x3d,0x79,0x01,0xa1,0xf1,0x9c,0x05,0x8c,0x2e,0xfa,0xe2,0x05,0x1e,0x00,0x01,0x00,0x1a,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x46,0x40,0x29,0x78,0x01,0x01,0x03,0x07,0x01,0x01,0xa4,0x04,0x01,0x83,0x04,0x93,0x04, +0x02,0x02,0xab,0x02,0x01,0x89,0x02,0x99,0x02,0x02,0x04,0x02,0x01,0x01,0x04,0x06,0x08,0x03,0x00,0x02,0x01,0x02,0x02,0x03,0x05,0x04,0x00,0x00,0x2f,0x32,0x2f,0xc4,0x32,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x01,0x5d,0x5f,0x5d,0x21,0x23,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c, +0xfe,0x3c,0x74,0x01,0x50,0x9c,0x05,0x8c,0x2e,0xfb,0xdc,0x04,0x24,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x2c,0x40,0x15,0xab,0x06,0x01,0x58,0x06,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x04,0x05,0x05,0x04,0x04,0x01,0x02,0x07,0x01,0x00,0x2f,0x2f,0xcd,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde, +0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0xb5,0x51,0x01,0x7e,0x02,0x01,0x05,0x1e,0xfe,0xb8,0x6b,0x01,0x79,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x4f,0x40,0x2d,0x93,0x07,0x01,0x47,0x07,0x57,0x07,0x02,0xa6,0x05,0x01,0x9b, +0x03,0x01,0x89,0x03,0x01,0x78,0x03,0x01,0xb6,0x02,0xc6,0x02,0x02,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x08,0x07,0x02,0x05,0x04,0x04,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0x33,0xc4,0x32,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb0,0x4b,0x01,0x9b,0x01,0x48,0x9c,0x03,0xd6,0x01,0x34,0xfe,0xcc,0x6b,0x01,0x79,0xfe,0xcc,0x01,0x34,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x4b,0x40,0x28,0xbb,0x07,0xcb,0x07,0x02,0x76,0x07,0x01,0x67,0x07, +0x01,0xa6,0x05,0x01,0x9b,0x03,0x01,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x08,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21, +0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xa5,0xfe,0xc0,0x48,0x01,0x9b,0x01,0x48,0x9c,0x02,0x8f,0x02,0x6a,0xfe,0xdd,0x6b,0x01,0x79,0xfd,0xc1,0x02,0x3f,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x54,0x40,0x2e,0x28,0x06,0x01,0x19,0x06,0x01,0x0b,0x06,0x01,0xcf,0x07,0x01, +0xbb,0x07,0x01,0xa6,0x05,0x01,0xa9,0x03,0x01,0x9b,0x03,0x01,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x08,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x08,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d, +0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x8e,0xfe,0xda,0x4b,0x01,0x9b,0x01,0x48,0x9c,0x01,0x47,0x03,0x95,0xfe,0xfa,0x6b,0x01,0x79,0xfc,0xd3,0x03,0x2d,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x5e,0x40,0x39,0x88,0x05,0x01,0x29,0x05,0x01, +0x0b,0x05,0x01,0x79,0x02,0x89,0x02,0x02,0x38,0x02,0x48,0x02,0x68,0x02,0x03,0xed,0x06,0x01,0xdb,0x06,0x01,0xcf,0x06,0x01,0xa6,0x04,0x01,0xad,0x02,0x01,0x9b,0x02,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x05,0x07,0x04,0x03,0x03,0x07,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33, +0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x05,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x81,0xfe,0xe7,0x4b,0x01,0x9b,0x01,0x48,0x9c,0x04,0xce,0xf8,0x6b,0x01,0x79,0xfb,0xe6,0x04,0x1a,0x00,0x01,0x00,0x42,0x00,0x00,0x02,0x7a,0x05,0xba, +0x00,0x06,0x00,0x35,0x40,0x1c,0xa6,0x04,0x01,0x9b,0x02,0x01,0x8a,0x02,0x01,0x69,0x02,0x01,0x58,0x02,0x01,0x05,0x02,0x06,0x08,0x03,0x04,0x04,0x03,0x03,0x01,0x02,0x06,0x01,0x00,0x2f,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x33, +0x02,0x7a,0x9c,0xfe,0xaf,0x4b,0x01,0x9c,0x9c,0x05,0x14,0xfe,0xc2,0x6b,0x01,0x79,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x42,0x40,0x25,0x59,0x07,0x99,0x07,0x02,0x9a,0x06,0x01,0x88,0x06,0x01,0x79,0x06,0x01,0x38,0x06,0x48,0x06,0x02,0x18,0x02,0x01,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x04,0x05,0x03, +0x03,0x01,0x02,0x08,0x01,0x00,0x2f,0x2f,0x33,0x12,0x39,0x2f,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xd6,0xfe,0x9b,0x01,0x47,0x01,0x48,0x9c,0x05,0x00,0xfe,0xd6,0x9c,0x01,0x48,0x00,0x01,0x00,0x96, +0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x42,0x40,0x24,0x38,0x03,0x48,0x03,0x02,0x92,0x07,0xa2,0x07,0x02,0x65,0x07,0x75,0x07,0x02,0x88,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x04,0x07,0x02,0x05,0x03,0x02,0x03,0x02,0x03,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x11,0x33,0x01,0x2f,0x10,0xde,0xdd, +0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0x65,0x01,0x2a,0x9c,0x02,0x8f,0x01,0x47,0x9c,0xfe,0xd7,0x02,0x71,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x42,0x40,0x23,0x97,0x06,0xa7,0x06, +0x02,0xa3,0x07,0x01,0x82,0x07,0x92,0x07,0x02,0x73,0x07,0x01,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x04,0x07,0x02,0x05,0x03,0x02,0x03,0x02,0x03,0x08,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x11,0x33,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01, +0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0xa1,0xee,0x9c,0x01,0x47,0x02,0x8f,0x9c,0xfe,0x07,0x03,0x41,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x46,0x40,0x28,0x94,0x05,0xa4,0x05,0x02,0x76,0x05,0x01,0x38,0x01,0x48,0x01,0x02,0x03,0xa4,0x06,0x01,0x93,0x06,0x01,0x02,0x70, +0x06,0x80,0x06,0x02,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x02,0x07,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5f,0x5d,0x5d,0x01,0x5f,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0xa1, +0xee,0x9c,0x03,0xd6,0x9c,0xfd,0x38,0x04,0x10,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x55,0x40,0x31,0x84,0x06,0x94,0x06,0x02,0x47,0x06,0x01,0x47,0x05,0x01,0x08,0x05,0x01,0x89,0x04,0xa9,0x04,0x02,0x9b,0x02,0x01,0x7a,0x02,0x01,0x69,0x02,0x01,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x06, +0x03,0x05,0x04,0x03,0x04,0x03,0x04,0x01,0x02,0x08,0x01,0x00,0x2f,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x64,0x54,0x01,0x2e, +0x01,0x61,0x9c,0x04,0xc4,0xfd,0xcb,0x01,0x9c,0x6f,0xfe,0xc0,0x02,0x60,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5d,0x40,0x36,0xba,0x07,0x01,0xb8,0x06,0x01,0x84,0x06,0x94,0x06,0xa4,0x06,0x03,0xa2,0x05,0x01,0x93,0x05,0x01,0x86,0x05,0x01,0x47,0x05,0x01,0x08,0x05,0x01,0x59,0x02,0x01,0x06,0x03,0x04, +0x02,0x07,0x09,0x0b,0x05,0x04,0x06,0x03,0x05,0x04,0x02,0x07,0x02,0x03,0x02,0x03,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xc4,0x32,0x11,0x33,0x01,0x2f,0x32,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01, +0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x65,0x51,0x01,0x4a,0x01,0x48,0x9c,0x03,0xd6,0xfe,0xb9,0x01,0x9c,0x5e,0xfe,0xb6,0x01,0x47,0x01,0x34,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x37,0x40,0x1b,0xa3,0x05,0x01,0x86,0x05,0x01,0x08,0x05,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04, +0x07,0x05,0x04,0x03,0x04,0x03,0x04,0x08,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x9a,0xfe,0x83,0x51,0x01,0x4a,0x01,0x48,0x9c,0x02,0x8f,0x01,0x9c,0x62,0xfe, +0x9e,0x02,0x8f,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x51,0x40,0x31,0x72,0x05,0x92,0x05,0x02,0x64,0x05,0x01,0x56,0x05,0x01,0x44,0x05,0x01,0x35,0x05,0x01,0x27,0x05,0x01,0x64,0x04,0x74,0x04,0x02,0x46,0x04,0x01,0x88,0x03,0xa8,0x03,0x02,0x02,0x05,0x07,0x09,0x04,0x03,0x05,0x02,0x04,0x03,0x02, +0x03,0x02,0x03,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfd,0x1d,0x54,0x02,0x8f,0x9c,0x01,0x47,0x02,0xe4,0x65,0xfd,0x71,0x03,0xb9,0x00,0x00,0x01, +0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x4d,0x40,0x2c,0x54,0x06,0x94,0x06,0xa4,0x06,0x03,0x08,0x04,0x01,0xa9,0x02,0x01,0x9a,0x02,0x01,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x04,0x03,0x05,0x02,0x04,0x03,0x84,0x03,0x01,0x36,0x03,0x46,0x03,0x02,0x02,0x03,0x02,0x03,0x07,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x39, +0x2f,0x2f,0x5d,0x5d,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x37,0x01,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x65,0x4b,0x01,0xb7,0xe1,0x9c,0x02,0x8f,0x01,0x9c,0x64,0xfe,0x4e,0xfe,0x55,0x04,0x88,0x00,0x00,0x01,0x00,0x42,0x00,0x00, +0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x4f,0x40,0x30,0x94,0x05,0x01,0x75,0x05,0x01,0x46,0x05,0x56,0x05,0x66,0x05,0x03,0x56,0x04,0x76,0x04,0x02,0x47,0x04,0x01,0x08,0x04,0x01,0x88,0x03,0xa8,0x03,0x02,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0x01,0x03,0x05,0x02,0x04,0x03,0x02,0x03,0x02,0x03,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f, +0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x64,0x48,0x01,0x54,0x9c,0x02,0x8f,0x01,0x9c,0x5d,0xfe,0xad,0x02,0x85,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x76, +0x40,0x4a,0x86,0x06,0x01,0x77,0x06,0x01,0xc9,0x05,0x01,0x75,0x03,0x85,0x03,0xc5,0x03,0x03,0x68,0x03,0x01,0x36,0x03,0x46,0x03,0x02,0x28,0x03,0x01,0xa2,0x06,0x01,0x94,0x06,0x01,0xdb,0x05,0xfb,0x05,0x02,0xcc,0x05,0x01,0xc0,0x02,0x01,0x9c,0x02,0x01,0x8b,0x02,0x01,0x78,0x02,0x01,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04, +0x06,0x03,0x05,0x04,0x03,0x04,0x03,0x04,0x01,0x02,0x08,0x01,0x00,0x2f,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03, +0xc1,0x9c,0xfe,0xb9,0xfe,0x51,0x5d,0x01,0x48,0x01,0x51,0x9c,0x04,0x6a,0xfc,0xdd,0x03,0x47,0x3e,0xfd,0x77,0x03,0x77,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x66,0x40,0x3d,0x85,0x06,0x01,0x76,0x06,0x01,0x85,0x03,0x01,0x74,0x03,0x01,0x35,0x03,0x45,0x03,0x02,0x29,0x03,0x01,0xa0,0x06,0x01,0x94, +0x06,0x01,0xcb,0x05,0xdb,0x05,0x02,0x8e,0x02,0x01,0x7a,0x02,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x06,0x03,0x07,0x02,0x05,0x04,0x03,0x02,0x04,0x04,0x02,0x03,0x03,0x09,0x00,0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00, +0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x5d,0x01,0x51,0x01,0x48,0x9c,0x03,0xd6,0xfd,0x71,0x03,0x47,0x3e,0xfd,0x71,0x02,0x8f,0xee,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5e,0x40,0x37, +0x76,0x06,0x01,0x76,0x03,0x01,0x37,0x03,0x47,0x03,0x02,0xa4,0x06,0x01,0x93,0x06,0x01,0x84,0x06,0x01,0xcb,0x05,0xdb,0x05,0x02,0xa6,0x05,0x01,0x6c,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x06,0x03,0x07,0x02,0x05,0x04,0x03,0x02,0x04,0x04,0x02,0x03,0x03,0x08,0x00,0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11, +0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x5d,0x01,0x6b,0x01,0x2e,0x9c,0x02,0x8f,0xfe,0xb8,0x03,0x47,0x3e,0xfd,0x46,0x01,0x41,0x02,0x67, +0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x2f,0x40,0x15,0xa6,0x05,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x05,0x04,0x03,0x04,0x03,0x04,0x08,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x21,0x23,0x11, +0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x5d,0x01,0x87,0x01,0x12,0x9c,0x01,0x47,0x03,0x4a,0x3b,0xfd,0x17,0x03,0xd7,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x71,0x40,0x46,0xa0,0x06,0x01,0x93,0x06,0x01,0x74,0x06,0x01,0x65,0x06,0x01,0x56,0x06,0x01,0xa1,0x05,0x01, +0x90,0x05,0x01,0x85,0x05,0x01,0x44,0x05,0x01,0x36,0x05,0x01,0xdb,0x04,0x01,0xc9,0x04,0x01,0x96,0x04,0xa6,0x04,0x02,0x77,0x04,0x01,0x94,0x02,0x01,0x88,0x02,0x01,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x04,0x03,0x05,0x02,0x04,0x03,0x02,0x03,0x02,0x03,0x07,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33, +0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x37,0x01,0x17,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x5d,0x01,0xa1,0xf8,0x9c,0x01,0x47,0x03,0x47,0x3e,0xfc,0xe6,0xf8,0x05,0x00,0x00,0x01,0x00,0x2f, +0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x54,0x40,0x32,0xfa,0x04,0x01,0xd9,0x04,0xe9,0x04,0x02,0x77,0x04,0x01,0xa2,0x05,0x01,0x91,0x05,0x01,0x80,0x05,0x01,0xcb,0x04,0x01,0xa7,0x04,0x01,0x94,0x04,0x01,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0xd0,0x03,0x02,0x03,0x05,0x02,0x04,0x03,0x02,0x03,0x02,0x03,0x07,0x00,0x00,0x2f, +0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x51,0x5d,0x01,0x52,0x9c,0x01,0x47,0x03,0x47,0x42,0xfd,0x77,0x03,0x73,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1, +0x05,0xba,0x00,0x08,0x00,0x62,0x40,0x3c,0x85,0x06,0x01,0x75,0x03,0x85,0x03,0x02,0x58,0x03,0x01,0x35,0x03,0x45,0x03,0x02,0x28,0x03,0x01,0x07,0x03,0x17,0x03,0x02,0x03,0x94,0x06,0xa4,0x06,0x02,0x76,0x06,0x86,0x06,0x02,0x9b,0x02,0x01,0x8c,0x02,0x01,0x02,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x05,0x04,0x04,0x01,0x02, +0x08,0x06,0x03,0x01,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5d,0x5d,0x01,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x51,0x6a,0x01,0x3a,0x01,0x52,0x9c,0x04,0x10, +0xfb,0xf0,0x05,0x10,0x2a,0xfc,0x49,0x04,0x37,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x72,0x40,0x47,0x85,0x06,0x01,0x76,0x06,0x01,0xd8,0x05,0x01,0x75,0x03,0x85,0x03,0x02,0x58,0x03,0x01,0x34,0x03,0x44,0x03,0x02,0x28,0x03,0x01,0x07,0x03,0x17,0x03,0x02,0xa0,0x06,0x01,0x92,0x06,0x01,0x70,0x06, +0x80,0x06,0x02,0xb9,0x05,0x01,0x7f,0x02,0x8f,0x02,0x02,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d, +0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x6a,0x01,0x44,0x01,0x48,0x9c,0x03,0xd6,0xfc,0x2a,0x05,0x10,0x24,0xfc,0x3a,0x03,0xcc,0x80,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x78,0x40,0x4c,0xa7,0x06, +0x01,0x76,0x06,0x01,0xb8,0x05,0x01,0x8a,0x03,0x01,0x45,0x03,0x75,0x03,0x02,0x36,0x03,0x01,0x28,0x03,0x01,0x07,0x03,0x17,0x03,0x02,0xa1,0x06,0x01,0x70,0x06,0x80,0x06,0x90,0x06,0x03,0x54,0x06,0x64,0x06,0x02,0x9e,0x02,0xae,0x02,0x02,0x8f,0x02,0x01,0x7d,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05, +0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1, +0x9c,0xfe,0xb8,0xfe,0x52,0x6a,0x01,0x5a,0x01,0x32,0x9c,0x02,0x8f,0xfd,0x71,0x05,0x10,0x2d,0xfc,0x19,0x02,0x6b,0x01,0xf9,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x66,0x40,0x3e,0x57,0x06,0x01,0x76,0x05,0x01,0x79,0x03,0x89,0x03,0x02,0x36,0x03,0x46,0x03,0x02,0x07,0x03,0x17,0x03,0x02,0x92,0x06,0xa2, +0x06,0x02,0x84,0x06,0x01,0x75,0x06,0x01,0x9a,0x04,0xaa,0x04,0x02,0x8a,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30, +0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x6a,0x01,0x7b,0x01,0x11,0x9c,0x01,0x47,0xfe,0xb9,0x05,0x10,0x2d,0xfb,0xc4,0x01,0x00,0x03,0xb9,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x34,0x40,0x1c, +0x86,0x04,0xa6,0x04,0x02,0x77,0x04,0x01,0x98,0x01,0xa8,0x01,0x02,0x01,0x04,0x02,0x05,0x07,0x09,0x03,0x02,0x03,0x02,0x02,0x00,0x07,0x05,0x00,0x00,0x2f,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x21,0x21,0x01,0x37,0x01,0x33,0x11,0x33,0x03,0xc1,0xfe,0x1c,0xfe,0x52, +0x6a,0x01,0x9d,0xef,0x9c,0x05,0x10,0x2a,0xfb,0x62,0x05,0x1e,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x2e,0x40,0x18,0x01,0x04,0x06,0x08,0x03,0x04,0x02,0x01,0x02,0x03,0x02,0x02,0x06,0xa3,0x04,0x01,0x02,0x80,0x04,0x90,0x04,0x02,0x04,0x00,0x00,0x2f,0x32,0x5d,0x5f,0x5d,0x2f,0x39,0x2f,0x33,0x01,0x2f, +0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x21,0x23,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x51,0x6a,0x01,0x45,0x9c,0x05,0x10,0x27,0xfc,0x23,0x04,0x60,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x3e,0x40,0x24,0x8b,0x06,0x9b,0x06,0xab,0x06,0x03,0x59,0x06,0x69,0x06,0x02,0xa5,0x04,0x01,0x86, +0x04,0x01,0x76,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x04,0x05,0x05,0x04,0x04,0x01,0x02,0x07,0x01,0x00,0x2f,0x2f,0xcd,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0xb2,0x6a,0x01,0x5e,0x02,0x3d, +0x05,0x1e,0xfd,0x71,0x50,0x02,0xdb,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x74,0x40,0x47,0xc9,0x06,0x01,0x46,0x06,0x01,0x37,0x06,0x01,0xa6,0x04,0x01,0x95,0x04,0x01,0xc9,0x07,0x01,0x94,0x07,0x01,0x47,0x07,0x57,0x07,0x02,0xc6,0x03,0x01,0xb7,0x03,0x01,0xac,0x03,0x01,0x8b,0x03,0x9b,0x03,0x02, +0x7d,0x03,0x01,0x59,0x03,0x69,0x03,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x08,0x05,0x04,0x07,0x02,0x04,0x02,0x04,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd6,0xfe,0x95,0x6a,0x01,0xb8,0x01,0x47,0x9c,0x03,0xd6,0x01,0x23,0xfd,0x99,0x4d,0x02,0xdb,0xfe,0xcc,0x01,0x34,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x78,0x40,0x4c,0xf9,0x06, +0x01,0x76,0x06,0x86,0x06,0xc6,0x06,0x03,0x45,0x06,0x01,0x34,0x06,0x01,0x2a,0x06,0x01,0xc7,0x03,0x01,0x74,0x07,0x94,0x07,0x02,0x66,0x07,0x01,0x45,0x07,0x01,0xa6,0x05,0x01,0x87,0x05,0x01,0x66,0x05,0x01,0x57,0x05,0x01,0x9f,0x03,0xaf,0x03,0x02,0x8b,0x03,0x01,0x7d,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03, +0x06,0x08,0x05,0x04,0x07,0x02,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0x33,0xc4,0x32,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1, +0x9c,0xfe,0xb8,0xfe,0xb3,0x6a,0x01,0xb7,0x01,0x48,0x9c,0x02,0x8f,0x02,0x35,0xfd,0xcb,0x50,0x02,0xdb,0xfd,0xcb,0x02,0x35,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x98,0x40,0x63,0xf5,0x06,0x01,0xc6,0x06,0x01,0x84,0x06,0x01,0x75,0x06,0x01,0x59,0x06,0x01,0x36,0x06,0x46,0x06,0x02,0x2a,0x06,0x01,0xf5, +0x03,0x01,0xc7,0x03,0x01,0x85,0x03,0x01,0x76,0x03,0x01,0xa6,0x07,0x01,0x90,0x07,0x01,0x74,0x07,0x84,0x07,0x02,0x6c,0x07,0x01,0x57,0x07,0x01,0x2b,0x07,0x01,0x94,0x05,0x01,0x66,0x05,0x86,0x05,0x02,0x54,0x05,0x01,0xad,0x03,0x01,0x7b,0x03,0x9b,0x03,0x02,0x69,0x03,0x01,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06, +0x08,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x08,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23, +0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xa2,0xfe,0xc9,0x6a,0x01,0xb7,0x01,0x48,0x9c,0x01,0x47,0x03,0x57,0xfd,0xf9,0x48,0x02,0xdb,0xfc,0xdd,0x03,0x23,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x76,0x40,0x4b,0xc5,0x05,0x01,0x8b,0x05,0x01,0x7a,0x05,0x01,0x68,0x05,0x01,0x5a,0x05, +0x01,0x36,0x05,0x46,0x05,0x02,0x2a,0x05,0x01,0xc6,0x02,0x01,0x8b,0x02,0x01,0x7a,0x02,0x01,0x59,0x02,0x01,0xc9,0x06,0x01,0x90,0x06,0x01,0x84,0x04,0x94,0x04,0x02,0x9f,0x02,0xaf,0x02,0x02,0x8b,0x02,0x01,0x7e,0x02,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x05,0x07,0x04,0x03,0x03,0x07,0x06,0x00,0x00,0x2f,0x32, +0x2f,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x96,0xfe,0xd5,0x6a,0x01,0xb8,0x01,0x47,0x9c,0x04,0x81,0xfe,0x19, +0x45,0x02,0xdb,0xfb,0xf0,0x04,0x10,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x3d,0x40,0x23,0x87,0x04,0x97,0x04,0x02,0xac,0x02,0x01,0x02,0x8f,0x02,0x9f,0x02,0x02,0x6d,0x02,0x7d,0x02,0x02,0x05,0x02,0x06,0x08,0x03,0x00,0x04,0x01,0x04,0x04,0x03,0x03,0x01,0x02,0x06,0x01,0x00,0x2f,0x2f,0x33,0x12, +0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5f,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x33,0x02,0x7a,0x9c,0xfe,0xb2,0x6a,0x01,0xb8,0x9c,0x04,0xba,0xfd,0xd7,0x4e,0x02,0xdb,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x32,0x40,0x18,0x69,0x06,0x79,0x06,0x02,0x06, +0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x05,0x04,0x06,0x02,0x04,0x02,0x04,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0xb8,0x54,0x01,0x7e,0x01,0x65, +0x9c,0x03,0xd6,0xfe,0xbc,0x67,0x01,0x79,0x01,0x48,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5b,0x40,0x35,0xc9,0x07,0x01,0x65,0x07,0x75,0x07,0x02,0x47,0x07,0x01,0xb9,0x06,0x01,0x87,0x06,0x01,0x75,0x06,0x01,0x66,0x06,0x01,0xb9,0x05,0x01,0xa9,0x03,0x01,0x9b,0x02,0x01,0x06,0x03,0x05,0x02,0x07,0x09, +0x0b,0x04,0x05,0x05,0x04,0x07,0x02,0x06,0x03,0x02,0x03,0x02,0x03,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0xc6,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c, +0xfe,0xb8,0xfe,0xb9,0x54,0x01,0x9b,0x01,0x48,0x9c,0x02,0x8f,0x01,0x47,0xfe,0xc9,0x5a,0x01,0x8d,0xfe,0xb9,0x02,0x7b,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x53,0x40,0x2f,0xcc,0x07,0x01,0x02,0xbc,0x07,0x01,0xbb,0x06,0x01,0x96,0x06,0x01,0x89,0x03,0x01,0x58,0x03,0x68,0x03,0x78,0x03,0x03,0x03, +0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x05,0x04,0x06,0x03,0x02,0x04,0x03,0x03,0x04,0x02,0x03,0x09,0x00,0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01, +0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xa5,0xfe,0xcc,0x54,0x01,0x9b,0x01,0x48,0x9c,0x01,0x47,0x02,0x8f,0xfe,0xc9,0x5a,0x01,0x9e,0xfd,0x9c,0x03,0x87,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x5e,0x40,0x38,0x54,0x05,0x01,0x27,0x05,0x01,0x19,0x05,0x01,0xeb,0x06,0x01,0xdf,0x06,0x01,0xcd,0x06,0x01, +0xa2,0x06,0x01,0x64,0x06,0x74,0x06,0x94,0x06,0x03,0x1f,0x06,0x01,0x94,0x05,0xa4,0x05,0x02,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x08,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x8f,0xfe,0xe2,0x54,0x01,0x9c,0x01,0x47,0x9c,0x03,0xd6,0xfe,0xc9,0x5a,0x01,0xd2,0xfc,0x85,0x04,0x6a,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x38,0x40,0x1e,0xf6,0x04,0x01,0xc7, +0x04,0x01,0x87,0x03,0xa7,0x03,0x02,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x54, +0x01,0x9c,0x9c,0x03,0xd6,0xfe,0xd2,0x51,0x01,0x83,0x01,0x3e,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x3a,0x40,0x1f,0x96,0x03,0xa6,0x03,0x02,0xa9,0x02,0x01,0x8b,0x02,0x9b,0x02,0x02,0x7c,0x02,0x01,0x02,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x04,0x06,0x03,0x03,0x02,0x08,0x00,0x00,0x2f,0x2f,0x33,0x39, +0x2f,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x03,0x21,0x35,0x21,0x01,0x33,0x03,0xc1,0x9c,0xee,0xfe,0x5f,0x01,0x47,0x01,0x48,0x9c,0x04,0x88,0xfe,0x07,0x9c,0x02,0x8f,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x3d,0x40,0x20, +0x46,0x07,0x01,0x37,0x07,0x01,0x09,0x07,0x01,0x8b,0x02,0x01,0x09,0x02,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x03,0x02,0x03,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x21, +0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd6,0xfe,0x9b,0x01,0x47,0x01,0x48,0x9c,0x03,0xd6,0xfe,0xb9,0x9c,0x01,0x65,0x01,0x2a,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x3b,0x40,0x1f,0xa6,0x07,0x01,0x95,0x07,0x01,0x46,0x07,0x01,0x34,0x07,0x01,0x78,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b, +0x04,0x05,0x03,0x02,0x03,0x02,0x03,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0x65,0x01,0x2a,0x9c,0x01,0x47,0x01,0x48,0x9c,0xfe,0xd6, +0x03,0xb9,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x3e,0x40,0x23,0x74,0x05,0x01,0x89,0x02,0x99,0x02,0xa9,0x02,0x03,0x78,0x02,0x01,0x94,0x06,0xa4,0x06,0x02,0x53,0x06,0x01,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x02,0x08,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0xcd,0x01,0x2f,0x10,0xde, +0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0xa1,0xee,0x9c,0x02,0x8f,0x9c,0xfe,0x07,0x04,0x88,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x49,0x40,0x28,0xa2,0x06,0x01,0x94,0x06,0x01, +0x46,0x06,0x01,0x92,0x05,0xa2,0x05,0x02,0x74,0x05,0x01,0x65,0x05,0x01,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x06,0x03,0x05,0x04,0x03,0x04,0x03,0x04,0x02,0x08,0x00,0x00,0x2f,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x65,0x54,0x01,0x1d,0x01,0x72,0x9c,0x04,0x74,0xfc,0xd3,0x01,0x9c,0x70,0xfe,0xd2,0x03,0x95,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x57,0x40,0x33,0xa0,0x06,0x01,0x92,0x06,0x01,0x44,0x06,0x74,0x06,0x84,0x06,0x03,0x92, +0x05,0xa2,0x05,0x02,0x76,0x05,0x01,0x65,0x05,0x01,0x37,0x05,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x06,0x03,0x05,0x04,0x07,0x02,0x03,0x04,0x02,0x02,0x04,0x03,0x03,0x09,0x00,0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x64,0x54,0x01,0x2e,0x01,0x61,0x9c,0x03,0xd6,0xfd,0x71,0x01,0x9c,0x70,0xfe,0xd3,0x02,0xba,0xda,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x61,0x40,0x3b,0xa2,0x06,0x01,0x93,0x06,0x01, +0x87,0x06,0x01,0x64,0x06,0x74,0x06,0x02,0x46,0x06,0x01,0xa1,0x05,0x01,0x92,0x05,0x01,0x36,0x05,0x46,0x05,0x66,0x05,0x76,0x05,0x04,0xb7,0x02,0xd7,0x02,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x06,0x03,0x05,0x04,0x02,0x07,0x02,0x03,0x02,0x03,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xc4, +0x32,0x11,0x33,0x01,0x2f,0x32,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x65,0x54,0x01,0x51,0x01,0x3e,0x9c,0x02,0x8f,0xfe,0xb8,0x01,0x9c,0x70,0xfe,0xaa,0x01,0x42,0x02,0x7b,0x00,0x00,0x01, +0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x3e,0x40,0x20,0xa2,0x05,0x01,0x94,0x05,0x01,0x96,0x05,0x01,0x67,0x05,0x77,0x05,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x05,0x04,0x03,0x04,0x03,0x04,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12, +0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x9a,0xfe,0x83,0x54,0x01,0x47,0x01,0x48,0x9c,0x01,0x47,0x01,0x9c,0x61,0xfe,0x9f,0x03,0xd7,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x06,0x00,0x42,0x40,0x28,0x98,0x01,0xa8,0x01,0x02,0x36, +0x04,0x46,0x04,0x56,0x04,0x03,0x27,0x04,0x01,0x46,0x03,0x01,0x37,0x03,0x01,0x68,0x02,0x78,0x02,0x88,0x02,0x03,0x01,0x04,0x06,0x08,0x03,0x02,0x03,0x02,0x02,0x06,0x04,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x01,0x37,0x01,0x11, +0x33,0x03,0xc1,0x9c,0xfd,0x1d,0x54,0x02,0x8f,0x9c,0x02,0xe3,0x66,0xfd,0x71,0x05,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x3b,0x40,0x21,0x85,0x05,0x01,0x48,0x03,0x58,0x03,0x68,0x03,0x98,0x03,0xa8,0x03,0x05,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0x01,0x03,0x05,0x02,0x04,0x03,0x02,0x03,0x02, +0x03,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x64,0x54,0x01,0x48,0x9c,0x01,0x47,0x01,0x9c,0x52,0xfe,0xb8,0x03,0xcd,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba, +0x00,0x08,0x00,0x7c,0x40,0x4f,0x8a,0x06,0x01,0x29,0x06,0x79,0x06,0x02,0xf9,0x03,0x01,0xc5,0x03,0x01,0x7b,0x03,0x8b,0x03,0x02,0x36,0x03,0x46,0x03,0x02,0x29,0x03,0x01,0x07,0x03,0x17,0x03,0x02,0x03,0x93,0x06,0xa3,0x06,0x02,0x02,0x81,0x06,0x01,0x70,0x06,0x01,0x94,0x05,0xa4,0x05,0x02,0x87,0x05,0x01,0x03,0x9b,0x02,0x01,0x20, +0x02,0x01,0x02,0x03,0x06,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x05,0x04,0x04,0x00,0x02,0x08,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x01,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x48,0x70,0x01,0x2c,0x01,0x63,0x9c,0x04,0x10,0xfb,0xf0,0x03,0x6e,0x49,0xfd,0x93,0x04,0x70,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x8e,0x40,0x5c,0xc5,0x06,0x01,0x89,0x06,0x01,0x56,0x06,0x76,0x06,0x02,0x29,0x06,0x01, +0xf9,0x03,0x01,0xc5,0x03,0x01,0x8b,0x03,0x01,0x36,0x03,0x46,0x03,0x76,0x03,0x03,0x29,0x03,0x01,0x17,0x03,0x01,0x03,0x07,0x03,0x01,0x77,0x07,0x01,0xa4,0x06,0x01,0x92,0x06,0x01,0x02,0x70,0x06,0x80,0x06,0x02,0x64,0x06,0x01,0xa2,0x05,0x01,0x94,0x05,0x01,0x86,0x05,0x01,0x8a,0x04,0x01,0x03,0x23,0x02,0x01,0x02,0x06,0x03,0x04, +0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x02,0x04,0x02,0x00,0x09,0x03,0x00,0x00,0x2f,0xc4,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x01,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23, +0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x48,0x70,0x01,0x32,0x01,0x5d,0x9c,0x03,0xd6,0xfc,0x2a,0x03,0x6e,0x4c,0xfd,0x9c,0x03,0xee,0x76,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x7c,0x40,0x4f,0x76,0x06,0x86,0x06,0x02,0xf9,0x03,0x01,0x85,0x03,0xc5,0x03,0x02,0x74, +0x03,0x01,0x35,0x03,0x45,0x03,0x02,0x07,0x03,0x17,0x03,0x02,0xa1,0x06,0x01,0x80,0x06,0x90,0x06,0x02,0x74,0x06,0x01,0x55,0x06,0x01,0xa2,0x05,0x01,0x94,0x05,0x01,0xae,0x02,0x01,0x8f,0x02,0x9f,0x02,0x02,0x7b,0x02,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03, +0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x49,0x70,0x01,0x47, +0x01,0x48,0x9c,0x02,0x8f,0xfd,0x71,0x03,0x6e,0x52,0xfd,0x59,0x02,0xad,0x01,0xf4,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5c,0x40,0x36,0x57,0x06,0x01,0x07,0x03,0x17,0x03,0x37,0x03,0x47,0x03,0x04,0xa2,0x06,0x01,0x80,0x06,0x90,0x06,0x02,0x72,0x06,0x01,0xa2,0x05,0x01,0x94,0x05,0x01,0x89,0x02,0x01, +0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37, +0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x49,0x70,0x01,0x65,0x01,0x2a,0x9c,0x01,0x47,0xfe,0xb9,0x03,0x6e,0x49,0xfd,0x2e,0x01,0x3a,0x03,0x9b,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x36,0x40,0x1e,0xa5,0x03,0x01,0x84,0x03,0x94,0x03,0x02,0x59,0x01,0x79,0x01,0xa9,0x01,0x03,0x01,0x04,0x02, +0x05,0x07,0x09,0x03,0x02,0x03,0x02,0x02,0x00,0x07,0x05,0x00,0x00,0x2f,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x21,0x21,0x01,0x37,0x01,0x33,0x11,0x33,0x03,0xc1,0xfe,0x1c,0xfe,0x49,0x70,0x01,0x91,0xfe,0x9c,0x03,0x6e,0x49,0xfc,0xe5,0x05,0x1e,0x00,0x01,0x00,0x26, +0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x46,0x40,0x2c,0x84,0x03,0x94,0x03,0xa4,0x03,0x03,0x80,0x04,0x90,0x04,0xa0,0x04,0x03,0x72,0x04,0x01,0x64,0x04,0x01,0x46,0x04,0x01,0x64,0x03,0x74,0x03,0x84,0x03,0x03,0x01,0x04,0x06,0x08,0x00,0x02,0x01,0x02,0x03,0x02,0x02,0x06,0x04,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0x33,0x01, +0x2f,0x5d,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x48,0x70,0x01,0x48,0x9c,0x03,0x6e,0x4f,0xfd,0x57,0x04,0xa6,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x48,0x40,0x2b,0x9d,0x06,0xad,0x06,0x02,0x8b,0x06,0x01, +0x79,0x06,0x01,0x94,0x04,0xa4,0x04,0x02,0x86,0x04,0x01,0x75,0x04,0x01,0x57,0x04,0x01,0x67,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x04,0x05,0x05,0x04,0x04,0x00,0x02,0x07,0x00,0x00,0x2f,0x2f,0xcd,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23, +0x11,0x23,0x01,0x27,0x01,0x21,0x03,0xc1,0x9c,0xef,0xfe,0x60,0x73,0x01,0xba,0x01,0xe4,0x05,0x1e,0xfc,0x29,0x48,0x04,0x2b,0x00,0x01,0x00,0x23,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x72,0x40,0x48,0x36,0x06,0x01,0x07,0x06,0x17,0x06,0x02,0x96,0x03,0xa6,0x03,0x02,0x90,0x07,0x01,0x55,0x07,0x01,0x36,0x07,0x01,0xa4,0x05, +0x01,0x92,0x05,0x01,0x74,0x05,0x84,0x05,0x02,0x8f,0x03,0x9f,0x03,0xaf,0x03,0x03,0x7d,0x03,0x01,0x4b,0x03,0x5b,0x03,0x6b,0x03,0x03,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x09,0x05,0x04,0x07,0x02,0x04,0x02,0x04,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f, +0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x25,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xef,0xfe,0x82,0x73,0x01,0xba,0x01,0x48,0x9c,0x03,0xd6,0xe3,0xfc,0x8e,0x41,0x04,0x32,0xfe,0xea,0x01,0x16,0x00,0x00,0x01,0x00,0x23, +0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x74,0x40,0x4a,0x79,0x06,0x89,0x06,0x02,0x44,0x06,0x01,0x33,0x06,0x01,0x07,0x06,0x17,0x06,0x02,0x79,0x03,0x89,0x03,0x02,0x45,0x03,0x01,0x36,0x03,0x01,0x74,0x07,0xa4,0x07,0x02,0x45,0x07,0x55,0x07,0x65,0x07,0x03,0x94,0x05,0xa4,0x05,0x02,0x9f,0x03,0xaf,0x03,0x02,0x89,0x03,0x01, +0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x09,0x05,0x04,0x07,0x02,0x04,0x02,0x04,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23, +0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xcb,0xfe,0xa6,0x73,0x01,0xba,0x01,0x48,0x9c,0x02,0x8f,0x02,0x02,0xfc,0xb6,0x3b,0x04,0x38,0xfd,0xe9,0x02,0x17,0x00,0x01,0x00,0x23,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x92,0x40,0x5f,0xf9,0x06,0x01,0xca,0x06,0x01,0x75,0x06,0x85,0x06,0x02,0x36,0x06,0x46, +0x06,0x02,0x07,0x06,0x17,0x06,0x02,0x76,0x03,0x86,0x03,0x02,0x90,0x07,0x01,0x72,0x07,0x82,0x07,0x02,0x2d,0x07,0x01,0x13,0x07,0x01,0x03,0x06,0x07,0x01,0xa7,0x05,0x01,0x95,0x05,0x01,0x86,0x05,0x01,0x77,0x05,0x01,0xac,0x03,0x01,0x02,0x8f,0x03,0x9f,0x03,0x02,0x6d,0x03,0x7d,0x03,0x02,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04, +0x05,0x5b,0x03,0x01,0x03,0x06,0x09,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x73,0x01,0xba,0x01,0x48,0x9c,0x01,0x47,0x03,0x05,0xfc,0xfb,0x3e,0x04,0x35,0xfc,0xdd,0x03,0x23,0x00,0x01,0x00,0x23,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x72,0x40,0x4b,0x07,0x05,0x01,0xf9,0x05,0x01,0x35,0x05,0x45,0x05, +0x75,0x05,0x85,0x05,0xc5,0x05,0x05,0x28,0x05,0x01,0x07,0x05,0x17,0x05,0x02,0x76,0x02,0x86,0x02,0x02,0x84,0x06,0x01,0x92,0x04,0xa2,0x04,0x02,0x84,0x04,0x01,0x76,0x04,0x01,0xae,0x02,0x01,0x8f,0x02,0x9f,0x02,0x02,0x5d,0x02,0x7d,0x02,0x02,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x05,0x08,0x04,0x03,0x03,0x08,0x06, +0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xae,0xfe,0xc3,0x73,0x01,0xbb,0x01,0x47,0x9c,0x04,0x37,0xfd,0x10, +0x3e,0x04,0x35,0xfb,0xf0,0x04,0x10,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x3e,0x40,0x22,0x67,0x03,0x01,0xa3,0x04,0x01,0xae,0x02,0x01,0x03,0x8b,0x02,0x9b,0x02,0x02,0x7c,0x02,0x01,0x02,0x05,0x02,0x06,0x08,0x03,0x00,0x04,0x01,0x04,0x04,0x03,0x03,0x02,0x06,0x00,0x00,0x2f,0x2f,0x33,0x39,0x2f, +0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5f,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x73,0x01,0xbb,0x9c,0x04,0x74,0xfc,0xd3,0x38,0x04,0x3b,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x61,0x40,0x3a,0x92,0x06,0x01,0x76, +0x06,0x86,0x06,0x02,0x67,0x06,0x01,0xa2,0x05,0x01,0x93,0x05,0x01,0x86,0x05,0x01,0x74,0x05,0x01,0xaf,0x03,0x01,0x99,0x03,0x01,0x8b,0x03,0x01,0x78,0x03,0x01,0x5b,0x02,0x01,0x06,0x03,0x05,0x07,0x02,0x08,0x0a,0x04,0x05,0x05,0x04,0x06,0x03,0x04,0x03,0x04,0x03,0x02,0x08,0x00,0x00,0x2f,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x11,0x33, +0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x33,0x03,0xc1,0x9c,0xf8,0xfe,0x69,0x67,0x01,0xae,0x01,0x48,0x9c,0x04,0xf6,0xfe,0xe0,0xfd,0x71,0x51,0x02,0xbd,0x01,0x65,0x00,0x00,0x01,0x00,0x2f, +0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x44,0x40,0x26,0xaf,0x06,0x01,0x9b,0x06,0x01,0x7a,0x06,0x8a,0x06,0x02,0x95,0x04,0x01,0x57,0x03,0x67,0x03,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x05,0x04,0x06,0x02,0x04,0x02,0x04,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x11,0x33,0x01,0x2f,0x33, +0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xee,0xfe,0x83,0x67,0x01,0xae,0x01,0x48,0x9c,0x03,0xd6,0xfd,0x71,0x4e,0x02,0xdd,0x01,0x48,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x66,0x40,0x3d,0x49,0x06, +0x01,0x38,0x06,0x01,0x07,0x06,0x01,0xa0,0x07,0x01,0x91,0x07,0x01,0x74,0x07,0x01,0x65,0x07,0x01,0x94,0x06,0xa4,0x06,0x02,0x99,0x03,0xa9,0x03,0x02,0x8a,0x03,0x01,0x78,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x05,0x04,0x07,0x02,0x06,0x03,0x04,0x02,0x03,0x03,0x02,0x04,0x03,0x09,0x00,0x00,0x2f,0x2f,0x17,0x39, +0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd2,0xfe,0x9f,0x67,0x01,0xae,0x01,0x48,0x9c,0x02,0x8f,0x01,0x47,0xfd,0x71,0x41, +0x03,0x19,0xfe,0xa8,0x02,0x71,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x4b,0x40,0x2a,0x84,0x07,0xa4,0x07,0x02,0x76,0x07,0x01,0xa1,0x06,0x01,0x70,0x06,0x80,0x06,0x90,0x06,0x03,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x05,0x04,0x06,0x03,0x02,0x04,0x03,0x03,0x04,0x02,0x03,0x09,0x00, +0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x67,0x01,0xae,0x01,0x48,0x9c,0x01,0x47,0x02,0x8f,0xfd,0x71,0x32,0x03,0x67,0xfd, +0x5d,0x03,0x7d,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x4b,0x40,0x2a,0xa6,0x06,0x01,0x74,0x06,0x84,0x06,0x02,0x93,0x05,0xa3,0x05,0x02,0x02,0x70,0x05,0x80,0x05,0x02,0x64,0x05,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x08,0x06,0x00,0x00,0x2f, +0x32,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xa3,0xfe,0xce,0x67,0x01,0xaf,0x01,0x47,0x9c,0x03,0xd6,0xfd,0x71,0x41,0x03,0x9a,0xfc,0x4c,0x04,0x4c,0x00,0x01, +0x00,0x2f,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x45,0x40,0x28,0x94,0x04,0xa4,0x04,0x02,0x86,0x04,0x01,0x9f,0x02,0xaf,0x02,0x02,0x8d,0x02,0x01,0x6a,0x02,0x7a,0x02,0x02,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11, +0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x35,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x67,0x01,0xaf,0x9c,0x03,0xd6,0xfd,0x71,0x44,0x03,0x7d,0xb2,0x00,0x01,0x00,0x4b,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x5f,0x40,0x39,0x92,0x06,0xa2,0x06,0x02,0x84, +0x06,0x01,0x67,0x06,0x77,0x06,0x02,0x46,0x06,0x01,0x37,0x06,0x01,0xa6,0x05,0x01,0x94,0x05,0x01,0x58,0x03,0x01,0xaf,0x02,0x01,0x9d,0x02,0x01,0x8b,0x02,0x01,0x06,0x03,0x05,0x07,0x02,0x08,0x0a,0x04,0x05,0x05,0x04,0x06,0x03,0x04,0x03,0x04,0x03,0x02,0x08,0x00,0x00,0x2f,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01, +0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x33,0x03,0xc1,0x9c,0xff,0xfe,0x70,0x4b,0x01,0x7d,0x01,0x5d,0x9c,0x04,0x88,0xfe,0x07,0xfe,0xb8,0x73,0x01,0x40,0x02,0xc0,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x03,0xc1, +0x05,0xba,0x00,0x07,0x00,0x33,0x40,0x19,0xb9,0x05,0x01,0x65,0x05,0x01,0x56,0x05,0x01,0x02,0x05,0x07,0x09,0x03,0x04,0x05,0x02,0x04,0x03,0x02,0x03,0x02,0x03,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11, +0x33,0x03,0xc1,0x9c,0xfd,0x71,0x4b,0x02,0xda,0x9c,0x03,0xd6,0xfd,0x71,0x6d,0x02,0xdc,0x01,0x2a,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x30,0x40,0x16,0x88,0x06,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x05,0x04,0x06,0x02,0x04,0x02,0x04,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f, +0x2f,0x10,0xcd,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x4b,0x01,0x7e,0x01,0x5c,0x9c,0x02,0x8f,0xfe,0xb8,0x67,0x01,0x7d,0x02,0x8f,0x00,0x01,0x00,0x4b,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x53, +0x40,0x2f,0x84,0x07,0x01,0x56,0x07,0x01,0x47,0x07,0x01,0x84,0x06,0x01,0x77,0x06,0x01,0xb9,0x05,0x01,0x99,0x03,0xa9,0x03,0x02,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x05,0x04,0x06,0x03,0x02,0x04,0x03,0x03,0x04,0x02,0x03,0x09,0x00,0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01, +0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x4b,0x01,0x92,0x01,0x48,0x9c,0x01,0x47,0x01,0x48,0xfe,0xb8,0x63,0x01,0x95,0xfe,0xb8,0x03,0xc3,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x03,0xc1, +0x05,0xba,0x00,0x08,0x00,0x4d,0x40,0x2b,0xa2,0x06,0x01,0x94,0x06,0x01,0x85,0x06,0x01,0x57,0x06,0x01,0xa2,0x05,0x01,0x74,0x05,0x94,0x05,0x02,0xa4,0x04,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x08,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01, +0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x9f,0xfe,0xd2,0x4b,0x01,0x93,0x01,0x47,0x9c,0x02,0x8f,0xfe,0xb8,0x70,0x01,0xa3,0xfd,0x9c,0x04,0xc4,0x00,0x01,0x00,0x4b,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07, +0x00,0x3f,0x40,0x23,0xe9,0x05,0x01,0xbb,0x05,0xcb,0x05,0x02,0xb9,0x04,0xe9,0x04,0x02,0x79,0x02,0x01,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d, +0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x4b,0x01,0x93,0x9c,0x02,0x8f,0xfe,0xb8,0x5a,0x01,0x94,0x02,0x85,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x3a,0x40,0x1f,0x38,0x07,0x01,0x9b,0x06,0xab,0x06,0x02,0x9f,0x02,0x01,0x8b,0x02,0x01,0x7c,0x02,0x01,0x06,0x03,0x04, +0x07,0x02,0x08,0x0a,0x04,0x06,0x03,0x03,0x02,0x08,0x00,0x00,0x2f,0x2f,0x33,0x39,0x2f,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x03,0x21,0x35,0x21,0x01,0x33,0x03,0xc1,0x9c,0xee,0xfe,0x5f,0x01,0x47,0x01,0x48,0x9c,0x04,0x10,0xfd,0x37,0x9c,0x03,0xd7,0x00, +0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x28,0x40,0x11,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x04,0x06,0x07,0x02,0x03,0x02,0x03,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x11,0x03,0x21,0x35,0x21,0x01,0x35,0x33, +0x03,0xc1,0x9c,0xf8,0xfe,0x69,0x01,0x51,0x01,0x3e,0x9c,0x03,0xd6,0xfd,0x71,0x9c,0x03,0x39,0x9e,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x41,0x40,0x23,0x65,0x07,0x01,0x37,0x07,0x01,0x18,0x07,0x01,0x7a,0x02,0x01,0x48,0x02,0x01,0x19,0x02,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x04,0x05,0x07, +0x02,0x03,0x02,0x03,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd6,0xfe,0x9b,0x01,0x47,0x01,0x48,0x9c,0x02,0x8f,0xfe,0xb8,0x9c,0x01,0x66, +0x02,0x71,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x3e,0x40,0x23,0x38,0x02,0x48,0x02,0x88,0x02,0x03,0xa2,0x06,0x01,0x93,0x06,0x01,0x65,0x06,0x75,0x06,0x02,0x56,0x06,0x01,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x02,0x08,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0xcd,0x01,0x2f,0x10,0xde, +0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0x65,0x01,0x2a,0x9c,0x01,0x47,0x9c,0xfe,0xd7,0x05,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x4e,0x40,0x2d,0x68,0x06,0x78,0x06,0x02,0x46, +0x05,0x01,0x28,0x03,0xc8,0x03,0x02,0xa2,0x06,0x01,0x94,0x06,0x01,0x99,0x04,0xa9,0x04,0x02,0xab,0x02,0x01,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x05,0x04,0x04,0x00,0x02,0x08,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d, +0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x64,0x54,0x01,0x11,0x01,0x7e,0x9c,0x04,0x10,0xfb,0xf0,0x01,0x9b,0x66,0xfe,0xfc,0x04,0xbd,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x44,0x40,0x23,0x46,0x05,0x01,0x28,0x03,0xc8,0x03,0x02, +0x99,0x04,0xa9,0x04,0x02,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x05,0x04,0x07,0x02,0x04,0x02,0x04,0x02,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37, +0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x65,0x54,0x01,0x1d,0x01,0x72,0x9c,0x03,0xd6,0xfc,0x2a,0x01,0x9b,0x66,0xfe,0xe7,0x04,0x5c,0x76,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x48,0x40,0x25,0x47,0x05,0x01,0x28,0x03,0x01,0x93,0x06,0x01,0xa9,0x04,0x01,0x98,0x04,0x01,0x06,0x03,0x04, +0x02,0x07,0x09,0x0b,0x05,0x04,0x05,0x04,0x07,0x02,0x04,0x02,0x04,0x02,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1, +0x9c,0xfe,0xb8,0xfe,0x65,0x54,0x01,0x34,0x01,0x5b,0x9c,0x02,0x8f,0xfd,0x71,0x01,0x9b,0x66,0xfe,0xca,0x02,0xc4,0x02,0x2b,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x4d,0x40,0x2a,0xb9,0x07,0x01,0xb8,0x06,0x01,0x77,0x06,0x01,0x46,0x05,0x01,0x99,0x04,0xa9,0x04,0x02,0x8c,0x02,0x01,0x06,0x03,0x04,0x02, +0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c, +0xfe,0xb8,0xfe,0x65,0x54,0x01,0x47,0x01,0x48,0x9c,0x01,0x47,0xfe,0xb9,0x01,0x9b,0x66,0xfe,0xb9,0x01,0x47,0x03,0xb9,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x32,0x40,0x18,0xa7,0x04,0x01,0xab,0x02,0x01,0x9a,0x02,0x01,0x01,0x04,0x02,0x05,0x07,0x09,0x03,0x02,0x03,0x02,0x02,0x00,0x07,0x04,0x00, +0x00,0x2f,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x21,0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0xfd,0xff,0xfe,0x82,0x54,0x01,0x48,0x01,0x47,0x9c,0x01,0xa4,0x5d,0xfe,0x9b,0x05,0x1e,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06, +0x00,0x41,0x40,0x27,0x84,0x04,0x01,0x65,0x04,0x01,0xa9,0x02,0x01,0x78,0x02,0x98,0x02,0x02,0x59,0x02,0x01,0x28,0x02,0x38,0x02,0x48,0x02,0x03,0x01,0x04,0x06,0x08,0x03,0x00,0x02,0x01,0x02,0x03,0x02,0x02,0x06,0x04,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x21,0x23,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x64,0x54,0x01,0x48,0x9c,0x01,0x9b,0x66,0xfe,0xb9,0x05,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x3c,0x40,0x24,0xab,0x06,0x01,0x89,0x06,0x99,0x06,0x02,0x58,0x06,0x78,0x06,0x02,0x96,0x04,0xa6,0x04,0x02,0x77,0x04,0x87,0x04, +0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x04,0x05,0x02,0x07,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0xcd,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x23,0x01,0x27,0x01,0x21,0x03,0xc1,0x9c,0xf1,0xfe,0x62,0x7c,0x01,0xc3,0x01,0xe4,0x05,0x1e,0xfa,0xe2,0x2e,0x05,0x8c,0x00,0x01, +0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x6e,0x40,0x45,0x36,0x06,0x46,0x06,0x02,0x07,0x06,0x17,0x06,0x02,0xa6,0x03,0x01,0x57,0x03,0x01,0x91,0x07,0x01,0x55,0x07,0x01,0x36,0x07,0x46,0x07,0x02,0xa4,0x05,0x01,0x95,0x05,0x01,0x74,0x05,0x84,0x05,0x02,0xaf,0x03,0x01,0x8d,0x03,0x9d,0x03,0x02,0x7b,0x03,0x01,0x06, +0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x09,0x07,0x02,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x25,0x01,0x27, +0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xf1,0xfe,0x80,0x7c,0x01,0xc3,0x01,0x48,0x9c,0x03,0xd6,0xf1,0xfb,0x39,0x2e,0x05,0x8c,0xfe,0xe0,0x01,0x20,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x70,0x40,0x48,0x79,0x06,0x89,0x06,0xc9,0x06,0x03,0x36,0x06,0x46,0x06,0x02,0x07,0x06,0x17,0x06,0x02,0x78, +0x03,0x01,0x41,0x07,0x01,0x32,0x07,0x01,0xa2,0x05,0x01,0x84,0x05,0x94,0x05,0x02,0x76,0x05,0x01,0x9f,0x03,0xaf,0x03,0x02,0x5d,0x03,0x6d,0x03,0x7d,0x03,0x03,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x8d,0x03,0x01,0x03,0x06,0x09,0x07,0x02,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x10, +0xc4,0x32,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd8,0xfe,0x99,0x7c,0x01,0xc3,0x01,0x48,0x9c,0x02,0x8f,0x01,0xed,0xfb,0x84,0x2e,0x05,0x8c,0xfd,0xdf,0x02,0x21, +0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x8c,0x40,0x5b,0xf9,0x06,0x01,0xca,0x06,0x01,0x89,0x06,0x01,0x75,0x06,0x01,0x16,0x06,0x36,0x06,0x46,0x06,0x03,0x05,0x06,0x01,0x89,0x03,0x01,0x75,0x03,0x01,0x36,0x03,0x46,0x03,0x02,0xa4,0x07,0x01,0x72,0x07,0x01,0x2b,0x07,0x01,0x14,0x07,0x01,0x07,0x07,0x01, +0x03,0xa5,0x05,0x01,0x86,0x05,0x96,0x05,0x02,0xac,0x03,0x01,0x02,0x8f,0x03,0x9f,0x03,0x02,0x5d,0x03,0x7d,0x03,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x09,0x07,0x02,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39, +0x39,0x31,0x30,0x00,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xc7,0xfe,0xaa,0x7c,0x01,0xc3,0x01,0x48,0x9c,0x01,0x47,0x02,0xf8,0xfb,0xc1,0x2e,0x05,0x8c,0xfc,0xd3,0x03,0x2d,0x00,0x01, +0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x80,0x40,0x53,0xf9,0x05,0x01,0x8a,0x05,0xca,0x05,0x02,0x35,0x05,0x45,0x05,0x75,0x05,0x03,0x28,0x05,0x01,0x16,0x05,0x01,0x07,0x05,0x01,0xc9,0x02,0x01,0x88,0x02,0x01,0x76,0x02,0x01,0x94,0x06,0x01,0x47,0x06,0x01,0x15,0x06,0x01,0x03,0xa5,0x04,0x01,0x96,0x04,0x01,0x85, +0x04,0x01,0x9b,0x02,0xab,0x02,0x02,0x8c,0x02,0x01,0x02,0x7f,0x02,0x01,0x5b,0x02,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x05,0x08,0x04,0x03,0x06,0x00,0x00,0x2f,0x32,0xc4,0x32,0x2f,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d, +0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x7c,0x01,0xc3,0x01,0x48,0x9c,0x04,0x10,0xfb,0xf0,0x2e,0x05,0x8c,0xfb,0xf0,0x04,0x10,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x36,0x40,0x1f,0x77,0x03, +0x01,0x84,0x04,0x94,0x04,0xa4,0x04,0x03,0x8f,0x02,0x9f,0x02,0xaf,0x02,0x03,0x05,0x02,0x06,0x08,0x03,0x00,0x04,0x01,0x04,0x02,0x06,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x7c,0x01, +0xc4,0x9c,0x04,0x24,0xfb,0xdc,0x2e,0x05,0x8c,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x49,0x40,0x2a,0xa5,0x06,0x01,0x86,0x06,0x96,0x06,0x02,0x57,0x06,0x01,0x6b,0x03,0x7b,0x03,0xab,0x03,0x03,0x59,0x03,0x01,0xab,0x02,0x01,0x06,0x03,0x05,0x07,0x02,0x08,0x0a,0x04,0x05,0x06,0x03,0x03,0x00,0x02, +0x08,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x33,0x03,0xc1,0x9c,0xdb,0xfe,0x4c,0x72,0x01,0xb9,0x01,0x48,0x9c,0x04,0xf6,0xfe,0xe0,0xfc,0x2a,0x32,0x03,0xf5,0x01, +0x93,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x30,0x40,0x18,0x89,0x06,0x99,0x06,0xa9,0x06,0x03,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x06,0x02,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d, +0x21,0x23,0x11,0x23,0x01,0x27,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xf9,0xfe,0x6a,0x72,0x01,0xb9,0x01,0x48,0x9c,0x03,0xd6,0xfc,0x2a,0x32,0x04,0x40,0x01,0x48,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x57,0x40,0x33,0xb8,0x07,0x01,0x64,0x07,0x74,0x07,0x02,0xa0,0x06,0x01,0x74,0x06,0x84,0x06,0x94, +0x06,0x03,0x66,0x06,0x01,0xa2,0x05,0x01,0x84,0x05,0x94,0x05,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x06,0x03,0x02,0x03,0x02,0x03,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xe2,0xfe,0x8f,0x72,0x01,0xb9,0x01,0x48,0x9c,0x02,0x8f,0x01,0x47,0xfc,0x2a,0x32,0x04,0x99,0xfe,0x88,0x02,0x67,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x66,0x40,0x3c,0x79,0x06,0x01,0x46,0x06,0x01, +0x15,0x06,0x35,0x06,0x02,0x03,0x07,0x06,0x01,0xa4,0x07,0x01,0x93,0x06,0xa3,0x06,0x02,0x02,0x80,0x06,0x01,0x74,0x06,0x01,0x94,0x05,0xa4,0x05,0x02,0x87,0x05,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x06,0x03,0x02,0x03,0x02,0x03,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f, +0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x01,0x5d,0x5f,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd9,0xfe,0x98,0x72,0x01,0xc3,0x01,0x3e,0x9c,0x01,0x47,0x02,0x8f,0xfc,0x2a,0x32,0x04,0xf8,0xfd,0x45, +0x03,0x4b,0x00,0x01,0x00,0x24,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x5e,0x40,0x37,0x46,0x05,0x01,0x34,0x05,0x01,0x15,0x05,0x01,0x03,0xa6,0x06,0x01,0xa2,0x05,0x01,0x93,0x05,0x01,0x02,0x80,0x05,0x01,0x74,0x05,0x01,0xa4,0x04,0x01,0x92,0x04,0x01,0x74,0x04,0x84,0x04,0x02,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04, +0x05,0x02,0x02,0x00,0x08,0x04,0x03,0x06,0x00,0x00,0x2f,0x32,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x01,0x5f,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xcc,0xfe,0xa5,0x72,0x01, +0xcd,0x01,0x34,0x9c,0x03,0xd6,0xfc,0x2a,0x32,0x05,0x1c,0xfc,0x20,0x04,0x4c,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x3e,0x40,0x24,0x67,0x03,0x77,0x03,0x02,0x84,0x04,0x94,0x04,0xa4,0x04,0x03,0x8f,0x02,0x9f,0x02,0xaf,0x02,0x03,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x05,0x02,0x02,0x00, +0x07,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x35,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x72,0x01,0xba,0x9c,0x03,0xd6,0xfc,0x2a,0x32,0x05,0x26,0x62,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba, +0x00,0x06,0x00,0x39,0x40,0x21,0xa2,0x04,0x01,0x95,0x04,0x01,0xad,0x02,0x01,0x8f,0x02,0x9f,0x02,0x02,0x7b,0x02,0x01,0x59,0x02,0x69,0x02,0x02,0x05,0x02,0x06,0x08,0x03,0x04,0x02,0x06,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11, +0x01,0x27,0x01,0x33,0x03,0xc1,0x9c,0xfd,0x71,0x67,0x02,0xf6,0x9c,0x04,0xa5,0xfb,0x5b,0x4f,0x05,0x6b,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5d,0x40,0x38,0x96,0x06,0x01,0x87,0x06,0x01,0x94,0x05,0xa4,0x05,0x02,0x76,0x05,0x86,0x05,0x02,0xad,0x03,0x01,0x8b,0x03,0x9b,0x03,0x02,0x59,0x03,0x69,0x03, +0x79,0x03,0x03,0x89,0x02,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x06,0x03,0x07,0x02,0x03,0x02,0x03,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21, +0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xf8,0xfe,0x69,0x67,0x01,0xae,0x01,0x48,0x9c,0x03,0xd6,0xfe,0xb9,0xfd,0x71,0x4f,0x02,0xab,0x01,0xaa,0x01,0x16,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x44,0x40,0x26,0xab,0x06,0x01,0x9e,0x06,0x01,0x8b,0x06,0x01,0x58,0x06,0x01,0xa5,0x04, +0x01,0x75,0x03,0x01,0x67,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x03,0x03,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x11,0x33,0x03,0xc1, +0x9c,0xfe,0xee,0xfe,0x83,0x67,0x01,0xa4,0x01,0x52,0x9c,0x02,0x8f,0xfd,0x71,0x4f,0x02,0xdc,0x02,0x8f,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x67,0x40,0x3d,0x83,0x07,0x01,0x03,0x67,0x07,0x01,0x56,0x07,0x01,0xa3,0x06,0x01,0x02,0x90,0x06,0x01,0x74,0x06,0x84,0x06,0x02,0x56,0x06,0x01,0xa6,0x05,0x01, +0x94,0x05,0x01,0x76,0x05,0x86,0x05,0x02,0x68,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x06,0x03,0x02,0x03,0x02,0x03,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5f,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xf0,0xfe,0x81,0x67,0x01,0xd1,0x01,0x25,0x9c,0x01,0x47,0x01,0x48,0xfd,0x71,0x4f,0x03,0x1f,0xfe,0x9d,0x03,0xaf,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x64,0x40,0x3d,0x36,0x05, +0x46,0x05,0x02,0x27,0x02,0x01,0x54,0x06,0x84,0x06,0x02,0x15,0x06,0x01,0x07,0x06,0x01,0x03,0xa3,0x05,0x01,0x02,0x80,0x05,0x90,0x05,0x02,0x72,0x05,0x01,0x24,0x05,0x01,0x84,0x04,0x94,0x04,0x02,0xa9,0x02,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x05,0x02,0x02,0x00,0x08,0x04,0x03,0x06,0x00,0x00,0x2f,0x32,0xc4,0x32, +0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5f,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xcc,0xfe,0xa5,0x67,0x01,0xc5,0x01,0x31,0x9c,0x02,0x8f,0xfd,0x71,0x4f,0x03,0x54,0xfd,0x85,0x04, +0x92,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x48,0x40,0x29,0xa6,0x03,0x01,0xa3,0x05,0x01,0x02,0x80,0x05,0x90,0x05,0x02,0x74,0x05,0x01,0x66,0x05,0x01,0x9b,0x02,0x01,0x8a,0x02,0x01,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x05,0x02,0x02,0x00,0x07,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f, +0x12,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x67,0x01,0xaf,0x9c,0x02,0x8f,0xfd,0x71,0x4f,0x03,0x54,0x02,0x17,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x41, +0x40,0x23,0xa2,0x06,0x01,0x96,0x06,0x01,0x57,0x06,0x67,0x06,0x02,0x9a,0x03,0x01,0x88,0x03,0x01,0x06,0x03,0x05,0x07,0x02,0x08,0x0a,0x04,0x05,0x06,0x03,0x03,0x00,0x02,0x08,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d, +0x5d,0x21,0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x33,0x03,0xc1,0x9c,0xe1,0xfe,0x52,0x48,0x01,0x95,0x01,0x42,0x9c,0x04,0x38,0xfd,0x0f,0xfe,0xb9,0x7b,0x01,0x32,0x04,0x0d,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x47,0x40,0x26,0xa2,0x06,0x01,0x94,0x06,0x01,0x99,0x03,0xa9,0x03,0x02,0x58,0x03,0x68, +0x03,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x06,0x03,0x07,0x02,0x03,0x02,0x03,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x35, +0x33,0x03,0xc1,0x9c,0xf5,0xfe,0x66,0x48,0x01,0x8f,0x01,0x48,0x9c,0x03,0xd6,0xfd,0x71,0xfe,0xb9,0x7b,0x01,0x2e,0x03,0x73,0x9e,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x35,0x40,0x1c,0x46,0x05,0x66,0x05,0x02,0xa6,0x04,0x01,0x97,0x04,0x01,0x6b,0x02,0x01,0x02,0x05,0x07,0x09,0x03,0x04,0x05,0x02, +0x02,0x00,0x07,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfd,0x71,0x48,0x02,0xd7,0x9c,0x02,0x8f,0xfd,0x71,0x7b,0x02,0xce,0x02,0x71,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xc1, +0x05,0xba,0x00,0x09,0x00,0x32,0x40,0x19,0xa9,0x06,0x01,0x96,0x03,0xa6,0x03,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x03,0x03,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21, +0x11,0x33,0x03,0xc1,0x9c,0xfe,0xe0,0xfe,0x91,0x48,0x01,0x99,0x01,0x3e,0x9c,0x01,0x47,0xfe,0xb9,0x7b,0x01,0x68,0x03,0xd7,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x4b,0x40,0x2b,0x74,0x06,0x01,0x53,0x06,0x01,0x36,0x06,0x01,0xbb,0x05,0x01,0x74,0x05,0x01,0x87,0x04,0x97,0x04,0xa7,0x04,0x03,0x69,0x02, +0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x05,0x02,0x02,0x00,0x08,0x04,0x03,0x06,0x00,0x00,0x2f,0x32,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xcc,0xfe, +0xa5,0x48,0x01,0xa7,0x01,0x30,0x9c,0x01,0x47,0xfe,0xb9,0x7b,0x01,0x7c,0xfe,0xcd,0x04,0xf6,0x00,0x01,0x00,0x4e,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x31,0x40,0x19,0xb9,0x05,0x01,0x97,0x04,0xa7,0x04,0x02,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x05,0x02,0x02,0x00,0x07,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f, +0x12,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x48,0x01,0x90,0x9c,0x01,0x47,0xfe,0xb9,0x7b,0x01,0x86,0x03,0xb9,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x36,0x40,0x1d,0xa9,0x06,0x01,0x76, +0x03,0x86,0x03,0x02,0xad,0x02,0x01,0x8f,0x02,0x9f,0x02,0x02,0x06,0x03,0x05,0x07,0x02,0x08,0x0a,0x05,0x02,0x08,0x06,0x03,0x00,0x00,0x2f,0xd4,0xcd,0x2f,0x33,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x03,0x21,0x35,0x21,0x01,0x33,0x03,0xc1,0x9c,0xee,0xfe,0x5f,0x01, +0x47,0x01,0x48,0x9c,0x03,0xb6,0xfc,0x4a,0x9c,0x05,0x1e,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x2d,0x40,0x15,0x9b,0x02,0xab,0x02,0x02,0x06,0x03,0x04,0x07,0x02,0x09,0x0b,0x04,0x07,0x02,0x02,0x00,0x09,0x05,0x03,0x00,0x00,0x2f,0xd4,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x10,0xde,0xdd,0xc4, +0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xfe,0xfe,0x73,0x01,0x47,0x01,0x48,0x9c,0x03,0xd6,0xfc,0x2a,0x9c,0x04,0xd0,0x4e,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x2f,0x40,0x16,0xaf,0x02,0x01,0x99,0x02,0x01,0x06,0x03,0x04,0x02, +0x07,0x09,0x0b,0x04,0x07,0x02,0x02,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xd4,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x21,0x23,0x11,0x03,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xee,0xfe,0x5f,0x01,0x5b,0x01,0x34,0x9c,0x02,0x8f,0xfd,0x71,0x9c,0x03,0x61,0x01, +0xbd,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x3b,0x40,0x1f,0x46,0x07,0x01,0x37,0x07,0x01,0x0b,0x07,0x01,0x8b,0x02,0x01,0x09,0x02,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x04,0x07,0x02,0x02,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xd4,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x10,0xde,0xdd,0xc4, +0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd6,0xfe,0x9b,0x01,0x47,0x01,0x48,0x9c,0x01,0x47,0xfe,0xb9,0x9c,0x01,0x65,0x03,0xb9,0x00,0x01,0xff,0x54,0x05,0xc2,0x02,0x6c,0x07,0x40,0x00,0x05,0x00,0x2c,0xb1,0x03,0x00,0xb8,0x01,0x35,0x40,0x16, +0x05,0x04,0x01,0x02,0x01,0x12,0x01,0x22,0x01,0x52,0x01,0x04,0x01,0x02,0x18,0x1a,0x1e,0x48,0x00,0x03,0x84,0x02,0x2f,0xe1,0xc6,0x2b,0x39,0x5d,0x11,0x33,0x00,0x2f,0xed,0xc4,0x31,0x30,0x01,0x20,0x03,0x23,0x12,0x21,0x02,0x6c,0xfe,0x44,0xba,0xa2,0xf0,0x02,0x28,0x06,0xc4,0xfe,0xfe,0x01,0x7e,0x00,0x00,0x01,0xff,0x54,0x05,0xc2, +0x02,0x6c,0x07,0x40,0x00,0x05,0x00,0x33,0xb2,0x00,0x80,0x03,0xb8,0x01,0x35,0x40,0x0f,0x04,0x05,0x02,0x0d,0x02,0x1d,0x02,0x2d,0x02,0x5d,0x02,0x04,0x02,0x03,0x01,0xb8,0xff,0xe8,0xb6,0x1a,0x1e,0x48,0x00,0x84,0x01,0x03,0x2f,0xd6,0xe1,0x2b,0x12,0x39,0x5d,0x11,0x33,0x00,0x2f,0xed,0x1a,0xcc,0x31,0x30,0x01,0x23,0x02,0x21,0x35, +0x20,0x02,0x6c,0xa1,0xba,0xfe,0x43,0x02,0x28,0x05,0xc2,0x01,0x02,0x7c,0x00,0x01,0xfd,0xa7,0x05,0xc2,0x00,0xc0,0x06,0xfa,0x00,0x0b,0x00,0x22,0xb2,0x06,0x80,0x02,0xbb,0x01,0x35,0x00,0x09,0x00,0x00,0x01,0x35,0xb2,0x0b,0x0b,0x06,0xb9,0x01,0x34,0x00,0x05,0x2f,0xe1,0xc4,0x00,0x2f,0xed,0xd5,0xed,0x1a,0xcd,0x31,0x30,0x13,0x24, +0x23,0x22,0x06,0x15,0x23,0x36,0x36,0x33,0x32,0x05,0xc0,0xfe,0xb3,0x8d,0x58,0x70,0x77,0x01,0xb4,0x88,0x93,0x01,0x49,0x06,0x16,0x67,0x6b,0x50,0x88,0xb0,0x66,0x00,0x00,0x01,0xff,0x68,0x05,0xc8,0x02,0x32,0x07,0x00,0x00,0x0b,0x00,0x22,0xb2,0x05,0x80,0x02,0xbe,0x01,0x35,0x00,0x09,0x00,0x0b,0x01,0x35,0x00,0x00,0x00,0x06,0x01, +0x34,0xb1,0x05,0x0b,0x2f,0xd4,0xe1,0x00,0x2f,0xfd,0xd5,0xed,0x1a,0xcc,0x31,0x30,0x03,0x04,0x33,0x32,0x36,0x35,0x33,0x06,0x06,0x23,0x22,0x27,0x98,0x01,0x00,0x8a,0x58,0x72,0x76,0x02,0xb6,0x86,0x8e,0xfe,0x06,0x94,0x50,0x6c,0x50,0x86,0xb2,0x4f,0x00,0x03,0x00,0x60,0xfe,0x1e,0x06,0x1c,0x05,0xec,0x00,0x22,0x00,0x2f,0x00,0x37, +0x01,0x5d,0x40,0x2c,0x30,0x31,0x18,0x00,0x22,0x06,0x01,0x37,0x01,0x19,0x31,0x18,0x05,0x22,0x06,0x04,0x1a,0x04,0x30,0x19,0x31,0x18,0x31,0x05,0x00,0x22,0x06,0x22,0x0b,0x01,0x01,0xbb,0x01,0xcb,0x01,0xdb,0x01,0xfb,0x01,0x04,0x37,0x01,0x36,0x04,0xb8,0xff,0xe8,0x40,0x33,0x09,0x13,0x48,0x1a,0x04,0x03,0x1b,0x0a,0x18,0x01,0xea, +0x18,0xfa,0x18,0x02,0x03,0x18,0x18,0x09,0x13,0x48,0x31,0x18,0x32,0x15,0x0d,0x06,0x01,0xed,0x06,0xfd,0x06,0x02,0x02,0x06,0x18,0x09,0x14,0x48,0x22,0x06,0x21,0x08,0x1b,0x96,0x36,0x36,0x38,0x32,0x95,0x21,0xb8,0xff,0xc0,0x40,0x4f,0x17,0x1c,0x48,0x21,0x21,0x38,0x03,0x1c,0x15,0x00,0x13,0x08,0x0b,0x27,0x95,0x11,0x10,0x2d,0x95, +0x0b,0x16,0xb5,0x37,0x01,0x0b,0x37,0x01,0xfb,0x37,0x01,0x37,0x20,0x09,0x16,0x48,0x37,0x01,0x34,0x02,0x5b,0x1a,0x01,0x1a,0x40,0x09,0x1d,0x48,0x1a,0x04,0x1e,0x03,0xa0,0x31,0x01,0x0b,0x31,0x01,0xeb,0x31,0xfb,0x31,0x02,0x44,0x31,0x01,0x31,0x18,0x34,0x16,0xa0,0x22,0x01,0xc3,0x22,0x01,0x22,0x1e,0x23,0x02,0xba,0x01,0x2c,0x00, +0x03,0xff,0xc0,0xb3,0x17,0x25,0x48,0x03,0xb8,0xff,0xc0,0xb6,0x09,0x13,0x48,0x03,0x03,0x23,0x34,0xb8,0x01,0x2c,0x40,0x14,0xa0,0x1e,0xd0,0x1e,0x02,0x1e,0x1e,0x16,0x84,0x15,0x06,0x07,0x15,0x03,0x23,0x23,0x39,0x2a,0x83,0x0e,0x2f,0xe1,0x12,0x39,0x2f,0x17,0x33,0x10,0xf1,0xc0,0x2f,0x5d,0xe1,0x11,0x39,0x2f,0x2b,0x2b,0xe1,0x11, +0x12,0x39,0x5d,0x5d,0x11,0x12,0x39,0x39,0x71,0x5d,0x71,0x5d,0x11,0x12,0x39,0x39,0x2b,0x71,0x11,0x12,0x39,0x39,0x2b,0x5d,0x71,0x5d,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0x3f,0x12,0x39,0x2f,0x2b,0xed,0x11,0x39,0x2f,0xed,0x11,0x12,0x39,0x39,0x2b,0x5f,0x5d,0x71,0x11,0x12,0x39,0x39,0x2b,0x5f,0x5d,0x71,0x11,0x12,0x39, +0x39,0x2b,0x11,0x39,0x39,0x5d,0x71,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x23,0x22,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x04,0x38,0x0f,0x02,0x91,0x07,0x27,0x58,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5,0xd3,0x60,0x04,0xa4,0x13,0x67,0x97,0x6f,0x8c,0xa2,0x80,0x70,0xfe,0xe2,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0xab,0x01,0x02,0x3c, +0x50,0x92,0x70,0x6a,0xfe,0x85,0x40,0x27,0x66,0x64,0x78,0xb4,0x9a,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x02,0x7a,0xfa,0x28,0x4e,0x41,0x7b,0x75,0x5c,0x5f,0x7e,0x03,0x7d,0x97,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0xc6,0xfd,0xd2,0x2f,0x54,0x4c,0x00,0x00,0x02,0x00,0xa6,0xfe,0x1e,0x03,0x56,0x05,0xec,0x00,0x15,0x00,0x1d,0x01,0x0f, +0x40,0x37,0x16,0x17,0x0b,0x00,0x15,0x06,0x01,0x1d,0x01,0x0c,0x17,0x0b,0x05,0x15,0x06,0x04,0x0d,0x04,0x16,0x0c,0x17,0x0b,0x17,0x05,0x00,0x15,0x06,0x15,0xbb,0x01,0xcb,0x01,0xdb,0x01,0x03,0x1d,0x01,0x1c,0x0d,0x0b,0x01,0xed,0x0b,0xfd,0x0b,0x02,0x0a,0x0b,0x01,0x0b,0x18,0x0e,0x13,0x48,0x04,0xb8,0xff,0xe8,0x40,0x1b,0x09,0x13, +0x48,0x0d,0x06,0x01,0xed,0x06,0xfd,0x06,0x02,0x04,0x06,0x0b,0x0d,0x04,0x03,0x0e,0x96,0x1c,0x1c,0x1e,0x17,0x18,0x95,0x15,0x14,0xb8,0xff,0xc0,0x40,0x34,0x17,0x1c,0x48,0x14,0x14,0x1e,0x03,0x08,0x00,0x03,0x1c,0xa0,0x17,0x01,0x15,0x17,0x01,0x17,0x0b,0x1a,0x0a,0xa0,0x15,0x01,0xc3,0x15,0x01,0x15,0x06,0x11,0x07,0xb5,0x1d,0x01, +0x1d,0x20,0x09,0x16,0x48,0x1d,0x01,0x1a,0x02,0x0d,0x40,0x09,0x1d,0x48,0x0d,0x04,0x11,0x02,0xba,0x01,0x2c,0x00,0x03,0xff,0xc0,0xb3,0x17,0x25,0x48,0x03,0xb8,0xff,0xc0,0xb6,0x09,0x13,0x48,0x03,0x03,0x07,0x1a,0xb8,0x01,0x2c,0x40,0x0a,0xa0,0x11,0xd0,0x11,0x02,0x11,0x11,0x0a,0x84,0x07,0x2f,0xf1,0xc0,0x2f,0x5d,0xe1,0x12,0x39, +0x2f,0x2b,0x2b,0xe1,0x12,0x39,0x39,0x2b,0x11,0x12,0x39,0x39,0x2b,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d,0x00,0x3f,0x3f,0x11,0x12,0x39,0x2f,0x2b,0x33,0xed,0x32,0x11,0x39,0x2f,0xed,0x11,0x17,0x39,0x5d,0x71,0x2b,0x2b,0x5d,0x5d,0x71,0x12,0x39,0x39,0x5d,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x0e,0xc0, +0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x11,0x33,0x11,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x01,0x70,0x0e,0x02,0x91,0x07,0x28,0x58,0xa4,0x12,0x67,0x97,0x72,0x8a,0xa4,0x7f,0x6f,0x1c,0x3b, +0x50,0x91,0x6e,0x6b,0xfe,0x85,0x40,0x27,0x66,0x64,0x78,0xb4,0x05,0xd8,0xfa,0x28,0x4e,0x41,0x7b,0x76,0x5b,0x5e,0x7f,0xb8,0x2f,0x54,0x4c,0x00,0x00,0x02,0x00,0xa6,0xfe,0x1e,0x06,0x04,0x04,0x18,0x00,0x24,0x00,0x2c,0x01,0x33,0x40,0x4c,0x25,0x26,0x1a,0x00,0x24,0x06,0x01,0x2c,0x01,0x1b,0x26,0x1a,0x05,0x24,0x06,0x04,0x1c,0x04, +0x25,0x1b,0x26,0x1a,0x26,0x05,0x00,0x24,0x06,0x24,0xb9,0x01,0xc9,0x01,0xd9,0x01,0x03,0x2c,0x01,0x03,0x2b,0x26,0x27,0x1a,0x0e,0x06,0x01,0xae,0x06,0xee,0x06,0xfe,0x06,0x03,0x02,0x24,0x06,0x23,0x0a,0x0d,0x1a,0x01,0xed,0x1a,0xfd,0x1a,0x02,0x0a,0x1a,0x5a,0x1a,0x02,0x1a,0x18,0x10,0x13,0x48,0x04,0xb8,0xff,0xe8,0x40,0x10,0x09, +0x13,0x48,0x04,0x1a,0x1c,0x03,0x03,0x1d,0x96,0x2b,0x2b,0x2d,0x27,0x95,0x23,0xb8,0xff,0xc0,0x40,0x39,0x17,0x1c,0x48,0x23,0x23,0x2d,0x03,0x1c,0x13,0x0a,0x95,0x15,0x10,0x11,0x0f,0x0e,0xa0,0x26,0x01,0x15,0x26,0x01,0x26,0x1a,0x29,0x18,0xa0,0x24,0x01,0xc3,0x24,0x01,0x24,0x06,0x20,0x08,0xb5,0x2c,0x01,0x2c,0x20,0x09,0x16,0x48, +0x2c,0x01,0x29,0x02,0x1c,0x40,0x09,0x1d,0x48,0x1c,0x04,0x20,0x02,0xba,0x01,0x2c,0x00,0x03,0xff,0xc0,0xb3,0x17,0x25,0x48,0x03,0xb8,0xff,0xc0,0xb6,0x09,0x13,0x48,0x03,0x03,0x08,0x29,0xb8,0x01,0x2c,0x40,0x10,0xa0,0x20,0xd0,0x20,0x02,0x20,0x20,0x18,0x84,0x08,0x08,0x2e,0x11,0x0e,0x84,0x0f,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1, +0xc0,0x2f,0x5d,0xe1,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x12,0x39,0x39,0x2b,0x11,0x12,0x39,0x39,0x2b,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d,0x00,0x2f,0x3f,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x2b,0xed,0x11,0x39,0x2f,0xed,0x11,0x17,0x39,0x2b,0x2b,0x5d,0x5d,0x71,0x11,0x12,0x39,0x39,0x5f,0x5d,0x71,0x11, +0x12,0x39,0x11,0x12,0x39,0x39,0x5d,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x17,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x23,0x22,0x27,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x04,0x1e,0x0e,0x02,0x91,0x07,0x28,0x58,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0x12,0x67,0x97,0x70,0x8c,0xa4,0x7e,0x70,0x1c,0x3b,0x51,0x90,0x6e,0x6b,0xfe,0x85,0x40,0x27,0x66,0x64,0x78,0xb4,0x02,0x34,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2, +0xd9,0xcd,0xfd,0xa2,0x4e,0x41,0x7b,0x75,0x5c,0x5e,0x7f,0xb8,0x2f,0x54,0x4c,0x00,0x00,0x02,0x00,0x2b,0xfe,0x1e,0x03,0x8c,0x05,0x2f,0x00,0x1d,0x00,0x25,0x01,0x39,0x40,0x48,0x1e,0x13,0x1f,0x00,0x06,0x1d,0x01,0x25,0x01,0x14,0x13,0x1f,0x05,0x06,0x1d,0x04,0x15,0x04,0x1e,0x14,0x13,0x1f,0x13,0x05,0x00,0x06,0x1d,0x06,0xb9,0x01, +0xc9,0x01,0xd9,0x01,0x03,0x25,0x01,0x03,0x24,0x0e,0x06,0x01,0xee,0x06,0xfe,0x06,0x02,0x02,0x1d,0x06,0x1c,0x08,0x1f,0x20,0x13,0x0d,0x13,0x01,0xed,0x13,0xfd,0x13,0x02,0x0a,0x13,0x01,0x13,0x18,0x0e,0x13,0x48,0x04,0xb8,0xff,0xe8,0x40,0x10,0x09,0x13,0x48,0x04,0x13,0x15,0x03,0x03,0x16,0x96,0x24,0x24,0x26,0x20,0x95,0x1c,0xb8, +0xff,0xc0,0x40,0x3a,0x17,0x1c,0x48,0x1c,0x1c,0x26,0x03,0x1c,0x0d,0x0e,0x11,0x08,0x95,0x0e,0x0b,0x0f,0xb5,0x25,0x01,0x25,0x20,0x09,0x16,0x48,0x25,0x01,0x22,0x02,0x15,0x40,0x09,0x1d,0x48,0x15,0x04,0x19,0x03,0xa0,0x1f,0x01,0x15,0x1f,0x01,0x1f,0x13,0x22,0x12,0xa0,0x1d,0x01,0xc3,0x1d,0x01,0x1d,0x06,0x19,0x07,0x02,0xba,0x01, +0x2c,0x00,0x03,0xff,0xc0,0xb3,0x17,0x25,0x48,0x03,0xb8,0xff,0xc0,0xb6,0x09,0x13,0x48,0x03,0x03,0x07,0x22,0xb8,0x01,0x2c,0x40,0x13,0xa0,0x19,0xd0,0x19,0x02,0x19,0x19,0x12,0x0f,0x0f,0x27,0x0e,0x0a,0x0b,0x0e,0x12,0x84,0x0b,0x07,0x2f,0x33,0xe1,0x32,0x10,0xcd,0x11,0x12,0x39,0x2f,0x10,0xc0,0x2f,0x5d,0xe1,0x12,0x39,0x2f,0x2b, +0x2b,0xe1,0x11,0x12,0x39,0x39,0x5d,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d,0x11,0x12,0x39,0x39,0x2b,0x11,0x12,0x39,0x39,0x2b,0x5d,0x00,0x3f,0x33,0xed,0x32,0x10,0xcd,0x3f,0x12,0x39,0x2f,0x2b,0xed,0x11,0x39,0x2f,0xed,0x11,0x17,0x39,0x2b,0x2b,0x5d,0x5d,0x71,0x11,0x12,0x39,0x11,0x12,0x39,0x39,0x5f,0x5d,0x71,0x11,0x12,0x39,0x39, +0x5d,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x01, +0xa6,0x0e,0x02,0x92,0x08,0x27,0x58,0xb0,0xb0,0xa4,0x01,0x02,0xfe,0xfe,0x13,0x66,0x98,0x6f,0x8d,0xa4,0x80,0x6f,0x1c,0x3b,0x50,0x92,0x6e,0x6c,0xfe,0x85,0x40,0x27,0x66,0x64,0x78,0xb4,0x03,0x60,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0xfc,0xa0,0x4e,0x41,0x7b,0x75,0x5c,0x5e,0x7f,0xb8,0x2f,0x54,0x4c,0x00,0x00,0x01,0xff,0xdb,0xfe,0x23, +0x04,0x16,0x04,0x18,0x00,0x19,0x00,0x31,0x40,0x1a,0x18,0x0f,0x0c,0x0a,0x95,0x0f,0x10,0x01,0x1c,0x03,0x14,0x95,0x05,0x16,0x19,0x84,0x01,0x18,0x18,0x1b,0x11,0x84,0x08,0x08,0x1b,0x0c,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x32,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x06,0x23,0x20, +0x11,0x11,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x04,0x16,0xa4,0x04,0x76,0xda,0xfe,0xa6,0x80,0x38,0x31,0x46,0x43,0x01,0x04,0xea,0x7a,0xa6,0xa4,0xfe,0x23,0x02,0x87,0xc2,0x01,0xa1,0x01,0x54,0xb1,0x1e,0x8c,0x1c,0xfe,0xd0,0xfe,0xca,0xfe,0xc0,0xbb,0x8f,0x02,0x44,0x00,0x00,0x01, +0xff,0xdb,0xfe,0x1e,0x05,0x27,0x04,0x18,0x00,0x22,0x00,0x38,0x40,0x1e,0x22,0x20,0x95,0x02,0x1c,0x1c,0x0f,0x10,0x0e,0x95,0x13,0x10,0x07,0x18,0x95,0x09,0x16,0x22,0x1d,0x84,0x05,0x1c,0x1c,0x24,0x15,0x84,0x0c,0x0c,0x24,0x10,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0xc4,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x3f, +0xed,0x32,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x23,0x06,0x23,0x20,0x11,0x11,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x05,0x27,0x40,0x43,0x92,0xa0,0x04,0x76,0xda,0xfe,0xa6,0x80,0x38,0x31,0x46,0x43,0x01,0x04,0xea,0x7a,0xa6,0xa4,0xa0,0x3c,0x35, +0xfe,0x3a,0x1c,0xaf,0x9f,0x01,0x3e,0xc2,0x01,0xa1,0x01,0x54,0xb1,0x1e,0x8c,0x1c,0xfe,0xd0,0xfe,0xca,0xfe,0xc0,0xbb,0x8f,0x02,0x44,0xfb,0x72,0xc8,0x1a,0x00,0x01,0x00,0x85,0xfe,0xa0,0x02,0x22,0xff,0xb8,0x00,0x06,0x00,0x19,0x40,0x0d,0x05,0x80,0x30,0x06,0x40,0x06,0x50,0x06,0x03,0x06,0x03,0xc0,0x06,0x2f,0x1a,0xcc,0x00,0x2f, +0x5d,0x1a,0xcd,0x31,0x30,0x17,0x17,0x37,0x33,0x03,0x23,0x03,0xf0,0x64,0x64,0x6a,0xb4,0x34,0xb5,0x48,0xaa,0xaa,0xfe,0xe8,0x01,0x18,0x00,0x01,0x00,0x85,0xfe,0xa0,0x02,0x22,0xff,0xb8,0x00,0x06,0x00,0x19,0x40,0x0d,0x01,0x80,0x30,0x02,0x40,0x02,0x50,0x02,0x03,0x02,0x04,0xc0,0x01,0x2f,0x1a,0xcc,0x00,0x2f,0x5d,0x1a,0xcd,0x31, +0x30,0x13,0x23,0x13,0x33,0x13,0x23,0x27,0xf0,0x6b,0xb5,0x34,0xb4,0x6a,0x64,0xfe,0xa0,0x01,0x18,0xfe,0xe8,0xaa,0x00,0x01,0x00,0xc8,0xfe,0x5e,0x01,0xe0,0xff,0xfb,0x00,0x06,0x00,0x12,0xb7,0x30,0x01,0x01,0x01,0x04,0x05,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0xce,0x5d,0x31,0x30,0x01,0x15,0x25,0x35,0x25,0x15,0x07,0x01,0xe0,0xfe, +0xe8,0x01,0x18,0xaa,0xfe,0xc8,0x6a,0xb4,0x34,0xb5,0x6b,0x64,0x00,0x01,0x00,0xc8,0xfe,0x5e,0x01,0xe0,0xff,0xfb,0x00,0x06,0x00,0x12,0xb7,0x30,0x06,0x01,0x06,0x03,0x05,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0xce,0x5d,0x31,0x30,0x13,0x37,0x27,0x35,0x05,0x15,0x05,0xc8,0xaa,0xaa,0x01,0x18,0xfe,0xe8,0xfe,0xc8,0x64,0x64,0x6b,0xb5, +0x34,0xb4,0x00,0x02,0x00,0x87,0xfe,0x2d,0x02,0x23,0xff,0xb2,0x00,0x0b,0x00,0x16,0x00,0x2f,0x40,0x1c,0x11,0xc5,0x40,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x8f,0x00,0x04,0x00,0x80,0x0c,0xc5,0x40,0x4f,0x06,0x01,0x06,0x09,0xc4,0x14,0x80,0x0f,0xc4,0x03,0x2f,0xe1,0x1a,0xdc,0xe1,0x00,0x2f,0x5d,0x1a,0xfd,0x1a,0xdc,0x5d,0x1a,0xed,0x31, +0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x52,0x59,0x72,0x76,0x5b,0x59,0x72,0x7b,0x56,0x31,0x3f,0x70,0x31,0x41,0x41,0xfe,0x2d,0x6b,0x54,0x57,0x6f,0x6c,0x54,0x54,0x71,0x01,0x33,0x40,0x30,0x71,0x41,0x30,0x30,0x40,0x00,0xff,0xff,0x00,0x52, +0x01,0x74,0x01,0xd7,0x02,0xbc,0x02,0x07,0x00,0x43,0x00,0x00,0xfc,0xb2,0xff,0xff,0x00,0x28,0x01,0x7f,0x02,0x70,0x02,0xbd,0x00,0x07,0x04,0x6e,0x01,0x4b,0xfc,0xbd,0xff,0xff,0x00,0x28,0x01,0x7f,0x02,0x6f,0x02,0xbd,0x00,0x07,0x00,0xde,0xff,0xe8,0xfc,0xbd,0xff,0xff,0x00,0x23,0x01,0x9e,0x02,0xa4,0x02,0x9e,0x00,0x07,0x00,0xd8, +0x00,0x00,0xfc,0xec,0xff,0xff,0x00,0xad,0x01,0x8e,0x01,0x8d,0x05,0xba,0x00,0x07,0x00,0x1d,0x00,0x3d,0x01,0xa4,0x00,0x01,0x00,0x98,0x04,0x42,0x02,0x12,0x05,0xba,0x00,0x05,0x00,0x1b,0xb1,0x02,0x01,0xb8,0x01,0x33,0xb4,0x04,0x04,0x00,0x00,0x02,0xb9,0x01,0x32,0x00,0x03,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0xfd,0xcd,0x31,0x30,0x01, +0x21,0x11,0x23,0x11,0x21,0x02,0x12,0xfe,0xf0,0x6a,0x01,0x7a,0x05,0x52,0xfe,0xf0,0x01,0x78,0x00,0x01,0x00,0x98,0x04,0x42,0x02,0x12,0x05,0xba,0x00,0x05,0x00,0x19,0xb1,0x04,0x05,0xb8,0x01,0x33,0xb2,0x02,0x04,0x02,0xb8,0x01,0x32,0xb1,0x05,0x00,0x2f,0xdd,0xe1,0x00,0x3f,0xfd,0xcd,0x31,0x30,0x13,0x35,0x21,0x11,0x23,0x11,0x98, +0x01,0x7a,0x6a,0x05,0x52,0x68,0xfe,0x88,0x01,0x10,0x00,0x01,0x00,0x98,0x00,0x00,0x02,0x12,0x01,0x79,0x00,0x05,0x00,0x1a,0xb1,0x04,0x05,0xb8,0x01,0x33,0xb3,0x02,0x00,0x00,0x05,0xb9,0x01,0x32,0x00,0x02,0x2f,0xf1,0xc1,0x2f,0x00,0x2f,0xfd,0xcd,0x31,0x30,0x25,0x15,0x21,0x11,0x33,0x11,0x02,0x12,0xfe,0x86,0x6a,0x68,0x68,0x01, +0x79,0xfe,0xef,0x00,0x00,0x01,0x00,0x98,0x00,0x00,0x02,0x12,0x01,0x79,0x00,0x05,0x00,0x18,0xb1,0x02,0x00,0xbb,0x01,0x33,0x00,0x05,0x00,0x03,0x01,0x32,0xb1,0x01,0x05,0x2f,0xdd,0xe1,0x00,0x2f,0xfd,0xc6,0x31,0x30,0x37,0x21,0x11,0x33,0x11,0x21,0x98,0x01,0x10,0x6a,0xfe,0x86,0x68,0x01,0x11,0xfe,0x87,0x00,0x00,0x01,0xff,0xf0, +0xfe,0x5c,0x02,0xba,0xff,0x89,0x00,0x07,0x00,0x31,0xb9,0x00,0x04,0x01,0x33,0x40,0x0d,0x40,0x01,0x80,0x06,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x07,0xb8,0x01,0x32,0xb3,0x06,0x06,0x09,0x03,0xb9,0x01,0x32,0x00,0x02,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x2f,0x5d,0x33,0x1a,0xdd,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x15, +0x21,0x35,0x33,0x02,0xba,0xfd,0x36,0x69,0x01,0xf8,0x69,0xfe,0x5c,0x01,0x2d,0xc5,0xc5,0x00,0x00,0x01,0xff,0xf2,0xfe,0x5c,0x02,0xba,0xff,0x89,0x00,0x05,0x00,0x27,0xb9,0x00,0x04,0x01,0x33,0x40,0x0e,0x40,0x01,0x80,0x0f,0x02,0x1f,0x02,0x2f,0x02,0x03,0x02,0x05,0x07,0x03,0xb9,0x01,0x32,0x00,0x02,0x2f,0xe1,0x10,0xc6,0x00,0x2f, +0x5d,0x1a,0xdd,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x15,0x21,0x02,0xba,0xfd,0x38,0x68,0x02,0x60,0xfe,0x5c,0x01,0x2d,0xc5,0x00,0x00,0x01,0x00,0x3a,0xfe,0x5c,0x02,0x6e,0x00,0xa0,0x00,0x09,0x00,0x4b,0x40,0x2f,0x4f,0x02,0xcf,0x02,0x02,0x02,0x01,0x40,0x07,0xc0,0x07,0x02,0x07,0x01,0xdb,0x08,0x01,0x08,0x08,0x20,0x09,0x0c, +0x48,0x08,0x05,0x02,0x42,0x4f,0x07,0x01,0x07,0x40,0x16,0x19,0x48,0x07,0x07,0x05,0x0f,0x09,0x1f,0x09,0x02,0x09,0x09,0x0b,0x05,0x2f,0x12,0x39,0x2f,0x5d,0x12,0x39,0x2f,0x2b,0x5d,0xe0,0x12,0x39,0x2b,0x11,0x33,0x00,0x2f,0xed,0xcd,0x5d,0x10,0xcd,0x5d,0x31,0x30,0x05,0x21,0x17,0x23,0x03,0x35,0x13,0x33,0x07,0x21,0x02,0x6e,0xfe, +0x4a,0xa8,0x5e,0xc8,0xc6,0x5e,0xa6,0x01,0xb6,0xb0,0xf4,0x01,0x1b,0x0e,0x01,0x1b,0xf4,0x00,0x00,0x01,0xff,0x74,0x04,0xba,0x00,0x8c,0x06,0x58,0x00,0x06,0x00,0x1a,0x40,0x0b,0x02,0x00,0x06,0xc0,0x03,0x03,0x02,0x00,0x05,0x80,0x06,0x2f,0x1a,0xcd,0x00,0x3f,0x33,0x2f,0x1a,0xce,0x39,0x39,0x31,0x30,0x03,0x37,0x27,0x35,0x05,0x15, +0x05,0x8c,0xaa,0xaa,0x01,0x18,0xfe,0xe8,0x05,0x25,0x65,0x64,0x6a,0xb5,0x33,0xb6,0x00,0x01,0xff,0xa6,0x04,0x98,0x00,0x5a,0x06,0x04,0x00,0x0b,0x00,0x20,0x40,0x0f,0x07,0xcb,0x40,0x06,0xc0,0x0b,0xcb,0x40,0x00,0x00,0x06,0x80,0x09,0xc9,0x03,0x2f,0xe1,0x1a,0xcc,0x32,0x00,0x2f,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x13,0x22, +0x26,0x35,0x34,0x36,0x33,0x15,0x22,0x15,0x14,0x33,0x5a,0x4d,0x67,0x66,0x4e,0x5e,0x5e,0x04,0x98,0x68,0x4e,0x4c,0x6a,0x5e,0x58,0x5a,0x00,0x02,0xfe,0xee,0x04,0xc2,0x01,0x12,0x06,0x68,0x00,0x0c,0x00,0x18,0x00,0x2f,0x40,0x18,0x0a,0xdb,0x04,0x01,0x06,0x06,0x0d,0xc1,0x40,0x13,0x00,0xc4,0x01,0x0e,0x10,0x06,0x16,0x42,0x06,0xc4, +0x07,0x10,0xc0,0x16,0x2f,0xe1,0xd6,0xe1,0x2b,0x01,0x10,0xf2,0xe1,0x00,0x18,0x2f,0x1a,0xed,0x32,0x2f,0x33,0xde,0xed,0x31,0x30,0x01,0x23,0x26,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x05,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x01,0x12,0x66,0x09,0x61,0x44,0xa0,0x0c,0x64,0x04,0x95,0x75,0x71,0x9b, +0xfe,0xf8,0x29,0x39,0x39,0x29,0x28,0x3a,0x38,0x05,0x6c,0x48,0x54,0x9c,0x72,0x8a,0x8a,0x59,0x39,0x29,0x29,0x38,0x38,0x29,0x28,0x3a,0x00,0x01,0xff,0x30,0xfd,0xfe,0x00,0xd2,0xff,0xa1,0x00,0x0b,0x00,0xa5,0x40,0x17,0x01,0x42,0x05,0x03,0x02,0x03,0x06,0x09,0x0b,0x00,0x03,0x08,0x56,0x06,0x01,0xd4,0x06,0xe4,0x06,0xf4,0x06,0x03, +0x06,0xb8,0xff,0xe0,0x40,0x42,0x09,0x0c,0x48,0x59,0x08,0x01,0xdb,0x08,0xeb,0x08,0xfb,0x08,0x03,0x08,0x20,0x09,0x0c,0x48,0x08,0x06,0x04,0x0a,0x04,0x0f,0x07,0x1f,0x07,0x2f,0x07,0xcf,0x07,0x04,0x07,0x0a,0x42,0x02,0x00,0x0b,0x03,0x03,0x06,0x08,0x09,0x03,0x05,0x29,0x03,0x59,0x03,0x02,0x03,0x20,0x15,0x1a,0x48,0x03,0x20,0x09, +0x0c,0x48,0x26,0x05,0x56,0x05,0x02,0x05,0xb8,0xff,0xe0,0xb3,0x15,0x1a,0x48,0x05,0xb8,0xff,0xe0,0x40,0x09,0x09,0x0c,0x48,0x05,0x03,0x07,0x01,0x04,0x04,0xb8,0xff,0xe0,0xb3,0x17,0x1b,0x48,0x04,0x19,0x2f,0x2b,0x17,0x33,0x2b,0x2b,0x71,0x2b,0x2b,0x71,0x11,0x17,0x33,0x11,0x17,0x33,0xe1,0x00,0x2f,0x5d,0x17,0x33,0x2b,0x5d,0x71, +0x2b,0x5d,0x71,0x11,0x17,0x33,0x11,0x17,0x33,0x18,0xe5,0x31,0x30,0x17,0x07,0x17,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x37,0xd2,0x85,0x85,0x4c,0x86,0x85,0x4b,0x85,0x85,0x4c,0x86,0x85,0xaa,0x86,0x84,0x4e,0x86,0x86,0x4c,0x85,0x85,0x4d,0x85,0x85,0x00,0xff,0xff,0xff,0x74,0xfe,0x5e,0x00,0x8c,0xff,0xfb,0x00,0x07,0x07,0x46, +0xfe,0xac,0x00,0x00,0xff,0xff,0xff,0x74,0xfe,0x5e,0x00,0x8c,0xff,0xfb,0x00,0x07,0x07,0x47,0xfe,0xac,0x00,0x00,0x00,0x02,0xfe,0xa1,0xfe,0x5e,0x01,0x5f,0xff,0xfb,0x00,0x06,0x00,0x0d,0x00,0x35,0x40,0x1e,0x07,0x09,0x80,0x0f,0x0b,0x1f,0x0b,0x2f,0x0b,0x03,0x0b,0x0e,0x40,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x03,0x0d,0xc0, +0x0a,0x0a,0x02,0x06,0x80,0x05,0x2f,0x1a,0xcd,0x32,0x33,0x2f,0x1a,0xcc,0x00,0x2f,0xce,0x5d,0x1a,0x10,0xde,0x5d,0x1a,0xcd,0x32,0x31,0x30,0x01,0x37,0x27,0x35,0x05,0x15,0x05,0x25,0x27,0x07,0x23,0x13,0x33,0x13,0xfe,0xa1,0xaa,0xaa,0x01,0x19,0xfe,0xe7,0x02,0x53,0x64,0x64,0x6a,0xb5,0x33,0xb5,0xfe,0xc8,0x64,0x64,0x6b,0xb5,0x34, +0xb4,0x2e,0xa9,0xa9,0x01,0x18,0xfe,0xe8,0x00,0x01,0xff,0xa6,0x04,0x98,0x00,0x5a,0x06,0x04,0x00,0x0b,0x00,0x22,0x40,0x10,0x05,0xcb,0x40,0x06,0xc0,0x01,0xcb,0x40,0x00,0x00,0x06,0x06,0x80,0x09,0xc9,0x03,0x2f,0xf1,0x1a,0xc8,0x2f,0x32,0x00,0x2f,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x03,0x35,0x32,0x35,0x34,0x23,0x35,0x32, +0x16,0x15,0x14,0x06,0x5a,0x5e,0x5e,0x4d,0x67,0x67,0x04,0x98,0x5c,0x5a,0x58,0x5e,0x69,0x4d,0x4e,0x68,0x00,0x01,0xfc,0xe6,0x05,0xc2,0x03,0x1a,0x07,0x40,0x00,0x09,0x00,0x23,0x40,0x11,0x09,0x05,0x07,0xda,0x40,0x02,0x00,0x84,0x09,0x0e,0x0a,0x05,0x0a,0x42,0x05,0x84,0x04,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x2f,0x1a, +0xed,0xc4,0x32,0x31,0x30,0x01,0x02,0x21,0x20,0x03,0x33,0x12,0x21,0x20,0x13,0x03,0x1a,0xf0,0xfd,0xd6,0xfd,0xd6,0xf0,0xa2,0xba,0x01,0xbd,0x01,0xbf,0xba,0x07,0x40,0xfe,0x82,0x01,0x7e,0xfe,0xfe,0x01,0x02,0x00,0x01,0xfc,0xe6,0x05,0xc2,0x03,0x1a,0x06,0x58,0x00,0x03,0x00,0x19,0x40,0x0b,0x02,0x91,0x40,0x01,0x00,0x0e,0x04,0x04, +0x01,0x42,0x01,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x1a,0xf9,0xcc,0x06,0x34,0x05,0xc2,0x96,0x00,0x01,0xfc,0xe6,0xfe,0x70,0x03,0x1a,0xff,0x04,0x00,0x03,0x00,0x19,0x40,0x0b,0x01,0x91,0x40,0x02,0x03,0x0e,0x04,0x02,0x04,0x42,0x02,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a, +0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x1a,0xf9,0xcc,0x06,0x34,0xfe,0x70,0x94,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a,0x02,0x06,0x00,0xec,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x29,0x04,0x54,0x05,0xec,0x00,0x06,0x00,0xed,0x00,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x03,0xb6,0x04,0x00,0x00,0x07,0x00,0x0f,0x00,0x3c, +0x40,0x1e,0x0a,0x07,0x01,0x02,0x08,0x0c,0x01,0x0c,0x0f,0x03,0x04,0x0c,0x04,0x08,0x95,0x02,0x02,0x01,0x07,0x0f,0x04,0x01,0x15,0x0f,0x08,0x05,0x00,0x00,0x11,0x05,0x2f,0x11,0x33,0x2f,0x12,0x39,0x39,0x00,0x3f,0x33,0x3f,0x12,0x39,0x2f,0xed,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x01,0x5d,0x21,0x23,0x03,0x21, +0x03,0x23,0x01,0x33,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x03,0xb6,0xb4,0x58,0xfe,0x66,0x56,0xb0,0x01,0x75,0xc3,0x3b,0x87,0x02,0x12,0x07,0x05,0x10,0x88,0x01,0x02,0xfe,0xfe,0x04,0x00,0xfd,0x8e,0x01,0x8c,0x06,0x4e,0x1a,0x3a,0xfe,0x74,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x04,0xe4,0x04,0x00,0x00,0x0f,0x00,0x13,0x00,0x5e, +0x40,0x31,0x13,0x03,0x04,0x12,0x04,0x0c,0x95,0x40,0x0b,0x07,0x00,0x0b,0x95,0x1a,0x30,0x10,0x95,0x02,0x02,0x00,0x11,0x08,0x95,0x07,0x0f,0x04,0x0f,0x95,0x00,0x12,0x06,0x06,0x01,0x14,0x08,0x0c,0x00,0x00,0x15,0x10,0x0a,0x0e,0x84,0x01,0x01,0x15,0x14,0x04,0x05,0x2f,0x33,0x11,0x12,0x39,0x2f,0xe1,0x39,0x39,0x11,0x33,0x2f,0xc4, +0xc4,0x11,0x12,0x39,0x2f,0x33,0x00,0x2f,0xed,0xc4,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0,0x21,0x21,0x11,0x21,0x03,0x23,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x01,0x11,0x23,0x03,0x04,0xe4,0xfd,0xb6,0xfe,0xa2,0x82,0xba,0x02,0x23,0x02,0xaa,0xfe,0x6f, +0x01,0x74,0xfe,0x8c,0x01,0xa8,0xfd,0xb6,0x1d,0xfa,0x01,0x02,0xfe,0xfe,0x04,0x00,0x8c,0xfe,0xd4,0x8c,0xfe,0xd0,0x01,0x02,0x01,0xe6,0xfe,0x1a,0x00,0x03,0x00,0x52,0xff,0xe8,0x06,0x50,0x04,0x18,0x00,0x23,0x00,0x2e,0x00,0x35,0x00,0x71,0x40,0x1d,0x16,0x40,0x0b,0x0e,0x48,0x16,0x16,0x14,0x24,0x00,0x11,0x95,0x2f,0x2f,0x0c,0x14, +0x95,0x19,0x10,0x2b,0x95,0x1e,0x10,0x09,0x33,0x95,0x0c,0x16,0x04,0xb8,0xff,0xd0,0x40,0x1a,0x09,0x0c,0x48,0x04,0x02,0x95,0x07,0x16,0x05,0x05,0x21,0x83,0x28,0x28,0x37,0x00,0x09,0x1c,0x2f,0x04,0x24,0x83,0x11,0x11,0x37,0x17,0xb8,0xff,0xc0,0xb6,0x0e,0x12,0x48,0x17,0x30,0x83,0x0f,0x2f,0xe1,0xc4,0x2b,0x12,0x39,0x2f,0xe1,0x17, +0x39,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xfd,0xc6,0x2b,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x11,0x39,0x2f,0x2b,0x31,0x30,0x01,0x10,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x27,0x23,0x06,0x23,0x22,0x02,0x35,0x35,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x17,0x33,0x36,0x33,0x32,0x16, +0x15,0x10,0x05,0x25,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x07,0x21,0x16,0x16,0x33,0x32,0x36,0x03,0xcb,0xd7,0xb1,0x9b,0x94,0xc8,0xee,0x42,0x04,0x73,0xf1,0xca,0xde,0x02,0xd3,0x03,0xb0,0x99,0xaf,0x90,0x84,0xe2,0x01,0x0a,0x77,0x04,0x8d,0xf6,0x99,0xaf,0xfe,0x81,0xfe,0xfa,0xcd,0x85,0x8d,0x6a,0x5a,0x78,0xa3,0xa6, +0xfd,0xd5,0x02,0x85,0x77,0x74,0xa6,0x01,0x9c,0xfe,0xd6,0x7a,0xa4,0x60,0xc6,0xc6,0x01,0x05,0xe8,0x54,0xab,0xba,0x72,0x9a,0x62,0xe0,0xe0,0xa1,0x87,0xfe,0xd2,0x16,0x7d,0x0a,0x06,0x52,0x61,0x49,0x59,0xab,0x85,0xc0,0x90,0x9c,0xa4,0x00,0x00,0x03,0x00,0x3e,0x00,0x00,0x03,0x92,0x04,0x00,0x00,0x13,0x00,0x1b,0x00,0x23,0x00,0x48, +0x40,0x27,0x01,0x12,0x15,0x1c,0x04,0x08,0x95,0x0b,0x0b,0x1d,0x14,0x95,0x0c,0x0f,0x1d,0x95,0x07,0x15,0x12,0x01,0x19,0x83,0x10,0x10,0x03,0x20,0x00,0x00,0x03,0x83,0x20,0x20,0x25,0x15,0x0b,0x1d,0x84,0x09,0x07,0x2f,0xce,0xe1,0x39,0x39,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed, +0x12,0x39,0x2f,0xed,0x17,0x39,0x31,0x30,0x01,0x23,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x23,0x35,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x07,0x33,0x01,0x11,0x33,0x32,0x36,0x35,0x34,0x23,0x03,0x11,0x33,0x32,0x35,0x34,0x26,0x23,0x03,0x92,0x7e,0x6b,0xc4,0xab,0xfe,0x96,0x68,0x68,0x01,0x5e,0x99,0xb5,0x60,0xa0,0xfd,0xb6,0xac,0x54, +0x64,0xb8,0xac,0xba,0xd7,0x7b,0x64,0x01,0xcb,0x37,0x78,0x7f,0x9d,0x01,0xcb,0x8b,0x01,0xaa,0x8a,0x70,0x75,0x3b,0x01,0x1e,0xfe,0xe2,0x51,0x47,0x86,0xfe,0x57,0xfe,0xc1,0x99,0x4c,0x5a,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x02,0x06,0x00,0x46,0x00,0x00,0x00,0x02,0x00,0xa6,0x00,0x00,0x04,0x06,0x04,0x00,0x00,0x07, +0x00,0x0e,0x00,0x1f,0x40,0x10,0x08,0x95,0x01,0x0f,0x09,0x95,0x00,0x15,0x04,0x83,0x0c,0x0c,0x10,0x09,0x84,0x00,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x33,0x11,0x21,0x20,0x11,0x14,0x00,0x23,0x03,0x11,0x33,0x20,0x11,0x10,0x21,0xa6,0x01,0x40,0x02,0x20,0xfe,0xd5,0xfc,0x97,0x8f,0x01,0x89,0xfe,0x7b, +0x04,0x00,0xfe,0x0a,0xeb,0xfe,0xe1,0x03,0x74,0xfd,0x18,0x01,0x7a,0x01,0x6e,0x00,0x00,0x02,0x00,0x3c,0x00,0x00,0x04,0x10,0x04,0x00,0x00,0x0b,0x00,0x16,0x00,0x3f,0x40,0x22,0x10,0x0d,0x01,0x95,0x40,0x04,0x05,0x00,0x04,0x95,0x1a,0x30,0x0c,0x95,0x05,0x0f,0x11,0x95,0x00,0x15,0x0f,0x0f,0x11,0x08,0x83,0x14,0x14,0x18,0x0d,0x04, +0x11,0x84,0x02,0x00,0x2f,0xc6,0xe1,0x39,0x39,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x20,0x11,0x14,0x00,0x23,0x03,0x11,0x33,0x15,0x23,0x11,0x33,0x20,0x11,0x10,0x21,0xb0,0x74,0x74,0x01,0x40,0x02,0x20,0xfe,0xd6,0xfc, +0x98,0xec,0xec,0x90,0x01,0x88,0xfe,0x7c,0x01,0xba,0x8c,0x01,0xba,0xfe,0x0a,0xea,0xfe,0xe0,0x03,0x74,0xfe,0xd2,0x8c,0xfe,0xd2,0x01,0x7a,0x01,0x6e,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x02,0xf0,0x04,0x00,0x00,0x0b,0x00,0x32,0x40,0x1b,0x08,0x95,0x40,0x07,0x03,0x00,0x07,0x95,0x1a,0x30,0x04,0x95,0x03,0x0f,0x0b,0x95,0x00,0x15, +0x04,0x08,0x00,0x00,0x0d,0x06,0x0a,0x84,0x01,0x2f,0xe1,0x39,0x11,0x33,0x2f,0xc4,0xc4,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x21,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x02,0xf0,0xfd,0xb6,0x02,0x33,0xfe,0x6f,0x01,0x74,0xfe,0x8c,0x01,0xa8,0x04,0x00,0x8c,0xfe,0xd4,0x8c,0xfe,0xd0, +0x00,0x01,0x00,0x5a,0xff,0xe8,0x02,0xec,0x04,0x18,0x00,0x22,0x00,0x3e,0x40,0x20,0x01,0x12,0x95,0x13,0x13,0x1e,0x0b,0x1b,0x19,0x95,0x1e,0x10,0x09,0x0b,0x95,0x06,0x16,0x00,0x21,0x12,0x0e,0x83,0x03,0x03,0x21,0x83,0x16,0x16,0x24,0x12,0x08,0x1b,0x2f,0xc6,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x00,0x3f,0xfd, +0xc6,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x20,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x10,0xbb,0xca,0xa3,0x82,0x68,0x6e,0x7c,0x5a,0x6d,0x8c,0x78,0x50,0x52,0x01,0x21, +0x7e,0x72,0x86,0x74,0x72,0x98,0xb9,0xcf,0x01,0xea,0x04,0x40,0xa8,0x7d,0x99,0x2e,0x9a,0x3e,0x51,0x43,0x4b,0x59,0x8e,0xac,0x4d,0x5d,0x3e,0x96,0x32,0xa0,0x88,0xd0,0x00,0x02,0x00,0x8e,0xfe,0x27,0x01,0x64,0x04,0x00,0x00,0x03,0x00,0x0f,0x00,0x23,0x40,0x12,0x0a,0x63,0x04,0x1b,0x00,0x15,0x03,0x0f,0x0d,0x62,0x07,0x07,0x00,0x84, +0x01,0x01,0x11,0x10,0x11,0x12,0x39,0x2f,0xe1,0x33,0x2f,0xe1,0x00,0x3f,0x3f,0x3f,0xed,0x31,0x30,0x21,0x23,0x11,0x33,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x48,0xa2,0xa2,0x50,0x2c,0x3e,0x3e,0x2c,0x2d,0x3f,0x3f,0x04,0x00,0xfa,0x27,0x3d,0x2e,0x2e,0x3c,0x3e,0x2c,0x2e,0x3d,0x00,0x00,0x01,0x00,0x14, +0xff,0xec,0x01,0xd3,0x04,0x00,0x00,0x0b,0x00,0x1b,0x40,0x0d,0x0b,0x0f,0x05,0x07,0x95,0x02,0x16,0x09,0x84,0x00,0x00,0x0d,0x04,0x2f,0x11,0x33,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0x31,0x30,0x01,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x01,0xd3,0xfe,0xb9,0x40,0x38,0x32,0x3d,0xac,0xa4,0x01,0x72,0xfe,0x7a,0x14, +0x94,0x1d,0x01,0x00,0x02,0x89,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x02,0x06,0x01,0x67,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0x04,0x04,0x00,0x00,0x0d,0x00,0x45,0x40,0x23,0x0b,0x02,0x03,0x0a,0x03,0x08,0x05,0x04,0x09,0x0a,0x09,0x04,0x03,0x09,0x03,0x09,0x03,0x01,0x06,0x0f,0x0c,0x95,0x01,0x15,0x0a,0x0a, +0x00,0x00,0x0f,0x08,0x05,0x0c,0x84,0x03,0x01,0x2f,0xce,0xe1,0x39,0x39,0x11,0x33,0x2f,0x39,0x2f,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x87,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x21,0x21,0x11,0x07,0x35,0x37,0x11,0x33,0x11,0x37,0x15,0x07,0x11,0x21,0x03,0x04,0xfd,0xa2,0x64,0x64,0xa2,0xf0,0xf0, +0x01,0xbc,0x01,0x74,0x38,0x8a,0x3a,0x02,0x00,0xfe,0x5c,0x88,0x8e,0x87,0xfe,0xbd,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0xf8,0x04,0x00,0x02,0x06,0x02,0x13,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x00,0x04,0x00,0x02,0x06,0x02,0x0f,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x02,0x06,0x00,0x52,0x00,0x00, +0x00,0x01,0x00,0x5a,0xff,0xe8,0x03,0x6c,0x04,0x18,0x00,0x15,0x00,0x34,0x40,0x1f,0x40,0x0b,0x50,0x0b,0x02,0x0b,0x0b,0x09,0x95,0x0e,0x10,0x4f,0x01,0x5f,0x01,0x6f,0x01,0x03,0x01,0x01,0x03,0x95,0x14,0x16,0x11,0x83,0x06,0x06,0x17,0x0b,0x00,0x2f,0xc4,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0xed,0x32,0x2f,0x5d, +0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x5a,0x6c,0x86,0xa6,0xd2,0xcd,0x9f,0x8e,0x70,0x7c,0x9a,0xe6,0x01,0x16,0xfe,0xcd,0xeb,0x84,0x18,0x9a,0x40,0xda,0xb8,0xb3,0xd7,0x46,0x95,0x3b,0xfe,0xde,0xea,0xef,0xfe,0xcb,0x00,0x02,0x00,0x60,0x00,0x08, +0x04,0x92,0x03,0xf8,0x00,0x0b,0x00,0x17,0x00,0x1f,0x40,0x10,0x0c,0xf4,0x06,0x0f,0x12,0xf4,0x00,0x15,0x09,0xed,0x15,0x15,0x19,0x0f,0xed,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x25,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34, +0x26,0x02,0x79,0xf2,0xfe,0xd9,0x01,0x28,0xf1,0xf2,0x01,0x27,0xfe,0xd7,0xf2,0xb9,0xd2,0xd2,0xbd,0xb7,0xd4,0xd2,0x08,0x01,0x15,0xe5,0xe7,0x01,0x0f,0xfe,0xeb,0xe5,0xe5,0xfe,0xef,0x03,0x48,0xb6,0x9a,0xa2,0xae,0xb5,0x9b,0xa1,0xaf,0x00,0x00,0x01,0x00,0x60,0x00,0xb6,0x04,0x92,0x03,0xf8,0x00,0x15,0x00,0x29,0x40,0x14,0x0b,0x00, +0x00,0x17,0x06,0xf4,0x11,0x0f,0x01,0x14,0xed,0x03,0x03,0x17,0x0e,0x0b,0x0b,0x09,0xed,0x0e,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xe1,0xc6,0x00,0x3f,0xed,0x12,0x39,0x2f,0xc4,0x31,0x30,0x25,0x23,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x00,0x33,0x32,0x00,0x15,0x14,0x04,0x50,0x92,0x48,0xd8, +0xb5,0xb3,0xda,0x47,0x91,0x42,0x01,0x2f,0xec,0xec,0x01,0x2b,0xb6,0x7a,0xab,0xab,0xcc,0xd0,0xa7,0xa5,0x80,0x8e,0x9b,0xf0,0x01,0x29,0xfe,0xdf,0xe9,0xae,0x00,0x03,0x00,0x4c,0xff,0xe8,0x04,0xa6,0x04,0x18,0x00,0x13,0x00,0x1b,0x00,0x23,0x00,0x7d,0x40,0x47,0x15,0x15,0x16,0x14,0x14,0x1b,0x13,0x13,0x12,0x0c,0x0c,0x0d,0x0b,0x00, +0x0b,0x1d,0x1d,0x1e,0x1c,0x1c,0x23,0x09,0x09,0x08,0x02,0x02,0x03,0x0a,0x01,0x0a,0x00,0x01,0x04,0x0a,0x0b,0x14,0x15,0x1c,0x1d,0x04,0x22,0x1a,0x02,0x09,0x0c,0x13,0x04,0x04,0x1a,0xf4,0x0e,0x0f,0x22,0xf4,0x04,0x15,0x01,0x00,0x00,0x11,0x0b,0x0a,0x07,0x11,0xed,0x17,0x17,0x25,0x1f,0xed,0x07,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x10, +0xc6,0x32,0x10,0xc2,0x2f,0x32,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0xc6,0x32,0x10,0xc6,0x32,0x31,0x30,0x10,0x87,0x08,0xc0,0x08,0xc0,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x08,0xc0,0x08,0xc0,0x25,0x07,0x27,0x06,0x23,0x22,0x00,0x35,0x34,0x37,0x27,0x37,0x17,0x36,0x33,0x32,0x00,0x15,0x14, +0x07,0x01,0x01,0x36,0x35,0x34,0x26,0x23,0x22,0x01,0x01,0x06,0x15,0x14,0x16,0x33,0x32,0x04,0xa6,0x48,0x8b,0x8b,0xcf,0xf2,0xfe,0xd9,0x71,0x85,0x48,0x8a,0x8c,0xcf,0xf2,0x01,0x27,0x71,0xfd,0x77,0x02,0x18,0x56,0xd2,0xbd,0x82,0x01,0x65,0xfd,0xe8,0x56,0xd2,0xbd,0x81,0x33,0x4b,0x84,0x64,0x01,0x15,0xe5,0xc8,0x82,0x81,0x4b,0x84, +0x64,0xfe,0xeb,0xe5,0xc8,0x82,0x02,0x6d,0xfd,0xfb,0x5a,0x8a,0xa1,0xaf,0xfd,0x8f,0x02,0x05,0x5a,0x8a,0xa2,0xae,0x00,0x03,0x00,0x52,0xff,0xe8,0x07,0x10,0x04,0x18,0x00,0x1c,0x00,0x28,0x00,0x2f,0x00,0x58,0x40,0x29,0x0d,0x40,0x0b,0x0e,0x48,0x0d,0x0d,0x0b,0x08,0x95,0x29,0x29,0x0b,0x03,0x10,0x0b,0x1d,0x95,0x15,0x10,0x2d,0x03, +0x23,0x95,0x1b,0x16,0x18,0x83,0x26,0x26,0x31,0x00,0x12,0x29,0x03,0x20,0x83,0x08,0x08,0x31,0x0d,0xb8,0xff,0xc0,0xb6,0x0e,0x12,0x48,0x0d,0x2a,0x83,0x06,0x2f,0xe1,0xc4,0x2b,0x12,0x39,0x2f,0xe1,0x17,0x39,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x39,0x39,0x3f,0xed,0x39,0x39,0x11,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x2b,0x31,0x30, +0x25,0x23,0x06,0x21,0x22,0x02,0x35,0x35,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x17,0x33,0x36,0x21,0x32,0x00,0x15,0x10,0x00,0x23,0x20,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x21,0x16,0x16,0x33,0x32,0x36,0x03,0x72,0x04,0x76,0xfe,0xf6,0xc2,0xda,0x02,0xd3,0x03,0xb0,0x9b,0xad,0x90,0x88, +0xda,0x01,0x10,0x71,0x04,0x83,0x01,0x1a,0xe5,0x01,0x0d,0xfe,0xe6,0xf0,0xfe,0xd9,0x01,0x35,0xa0,0xa9,0xab,0x9c,0x9f,0xb9,0xb9,0xfd,0x72,0xfd,0xd7,0x02,0x84,0x74,0x78,0xa6,0xd3,0xeb,0x01,0x05,0xe4,0x58,0xab,0xba,0x72,0x9a,0x62,0xed,0xed,0xfe,0xe4,0xee,0xfe,0xfc,0xfe,0xde,0x03,0xa6,0xcf,0xbb,0xc2,0xd0,0xd9,0xbf,0xb5,0xcf, +0xfe,0x10,0x8e,0x9e,0xa9,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x03,0xea,0x04,0x00,0x00,0x1f,0x00,0x2b,0x00,0x3f,0x40,0x21,0x14,0x00,0x20,0x95,0x0a,0x0a,0x26,0x05,0x10,0x0f,0x26,0x95,0x1a,0x16,0x14,0x00,0x02,0x0d,0x84,0x12,0x12,0x17,0x83,0x29,0x29,0x2d,0x1d,0x07,0x84,0x02,0x23,0x83,0x1d,0x2f,0xe1,0xd4,0xe1,0x11,0x12,0x39, +0x2f,0xf1,0xc0,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xc4,0x12,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x05,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34, +0x26,0x01,0x40,0xa6,0x1c,0xa0,0x1c,0x7e,0x6d,0x6d,0x7e,0x1c,0xa2,0x1a,0xa8,0x68,0x7a,0xfe,0xcb,0xd1,0xf0,0x78,0x01,0x4d,0x82,0x9b,0xa0,0x7d,0x81,0x9c,0x9f,0x02,0x7f,0x4b,0xa4,0x46,0x4c,0x45,0x40,0x56,0x6b,0x6b,0x56,0x40,0x45,0x46,0x4c,0x9e,0x51,0x26,0x9f,0x66,0xa2,0xca,0xc1,0xa3,0x65,0xa5,0x27,0x78,0x67,0x66,0x78,0x7a, +0x68,0x63,0x78,0x00,0x00,0x01,0x00,0x60,0x02,0x00,0x04,0x62,0x04,0x18,0x00,0x0d,0x00,0x1d,0x40,0x0e,0x07,0x00,0x04,0x95,0x0b,0x10,0x00,0x83,0x01,0x01,0x0f,0x07,0x83,0x08,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0xc4,0x32,0x31,0x30,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x00,0x33,0x32,0x00,0x04,0x62,0xa8, +0xb9,0xa1,0x9f,0xb9,0xa8,0x01,0x1f,0xe9,0xe7,0x01,0x13,0x02,0x00,0xbc,0xd2,0xd8,0xb6,0xee,0x01,0x2a,0xfe,0xde,0x00,0x01,0x00,0x60,0xff,0xe8,0x04,0x62,0x02,0x00,0x00,0x0d,0x00,0x1d,0x40,0x0e,0x0d,0x06,0x0a,0x95,0x03,0x16,0x00,0x83,0x0d,0x0d,0x0f,0x07,0x83,0x06,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0xd4,0xc4,0x31, +0x30,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x04,0x62,0xfe,0xe1,0xe9,0xe6,0xfe,0xec,0xa8,0xb9,0xa1,0x9f,0xb9,0x02,0x00,0xef,0xfe,0xd7,0x01,0x22,0xf6,0xbc,0xd2,0xd8,0xb6,0x00,0x02,0x00,0xa6,0x00,0x00,0x03,0x52,0x04,0x00,0x00,0x0a,0x00,0x11,0x00,0x27,0x40,0x14,0x0c,0x95,0x00,0x00,0x01,0x0b, +0x95,0x03,0x0f,0x01,0x15,0x07,0x83,0x0f,0x0f,0x13,0x0c,0x01,0x84,0x02,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x03,0x11,0x33,0x32,0x35,0x34,0x23,0x01,0x48,0xa2,0x01,0x33,0xb4,0xc5,0xd4,0xb8,0x7e,0x7e,0xe6,0xd9,0x01,0x70, +0xfe,0x90,0x04,0x00,0xa1,0x99,0x98,0xbe,0x02,0x04,0xfe,0x88,0xc2,0xb6,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0xfc,0x04,0x00,0x00,0x12,0x00,0x1a,0x00,0x3b,0x40,0x1e,0x0b,0x02,0x95,0x13,0x13,0x00,0x14,0x95,0x12,0x0f,0x07,0x00,0x15,0x06,0x09,0x0b,0x09,0x08,0x13,0x00,0x84,0x01,0x01,0x1c,0x17,0x84,0x0e,0x0e,0x07,0x08,0x2f,0x33, +0x33,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x39,0x12,0x39,0x39,0x11,0x33,0x00,0x3f,0xc4,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x21,0x23,0x11,0x23,0x22,0x06,0x07,0x03,0x23,0x13,0x36,0x37,0x35,0x26,0x35,0x34,0x36,0x33,0x21,0x03,0x11,0x23,0x22,0x15,0x14,0x16,0x33,0x02,0xfc,0xa2,0x58,0x42,0x51,0x23,0x79,0xb5,0x8e,0x34,0x53, +0xe5,0xc6,0xae,0x01,0x3a,0xa2,0x98,0xd0,0x6e,0x5e,0x01,0xa6,0x3f,0x53,0xfe,0xec,0x01,0x35,0x71,0x29,0x04,0x2b,0xd7,0x87,0xa4,0xfe,0x31,0x01,0x43,0x9d,0x4f,0x57,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0xfc,0x04,0x00,0x00,0x11,0x00,0x18,0x00,0x3b,0x40,0x1e,0x06,0x13,0x95,0x0f,0x0f,0x12,0x0b,0x11,0x0f,0x12,0x95,0x00,0x15,0x0c, +0x09,0x09,0x06,0x0a,0x0f,0x00,0x84,0x12,0x12,0x1a,0x16,0x84,0x04,0x04,0x0b,0x0a,0x2f,0x33,0x33,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x33,0x12,0x39,0x39,0x11,0x33,0x00,0x3f,0xed,0x3f,0xc4,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x21,0x21,0x22,0x26,0x35,0x34,0x37,0x35,0x26,0x27,0x03,0x33,0x13,0x16,0x33,0x33,0x11,0x33,0x03,0x11,0x23, +0x22,0x15,0x14,0x33,0x02,0xfc,0xfe,0xae,0xa5,0xb7,0xea,0x53,0x39,0x8e,0xb9,0x75,0x3e,0x78,0x58,0xa2,0xa2,0x9c,0xcc,0xc4,0x98,0x84,0xda,0x31,0x04,0x21,0x7c,0x01,0x38,0xfe,0xec,0x92,0x01,0xa6,0xfc,0x8c,0x01,0x43,0xa8,0x9b,0xff,0xff,0x00,0x1e,0x00,0x00,0x03,0x29,0x04,0x00,0x02,0x06,0x02,0x19,0x00,0x00,0x00,0x01,0x00,0x90, +0xff,0xe8,0x03,0xb6,0x04,0x00,0x00,0x0d,0x00,0x1e,0x40,0x0f,0x06,0x0d,0x0f,0x09,0x95,0x02,0x16,0x0d,0x84,0x0c,0x0c,0x0f,0x06,0x84,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x33,0x31,0x30,0x01,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x11,0x11,0x33,0x03,0xb6,0xfe,0x64,0xfe,0x76,0xa1,0xf2,0xf1,0xa2, +0x01,0xa6,0xfe,0x42,0x01,0xb2,0x02,0x66,0xfd,0xa2,0xfe,0xd0,0x01,0x2a,0x02,0x64,0x00,0x01,0x00,0x66,0x00,0x5a,0x04,0x38,0x03,0xac,0x00,0x12,0x00,0x2a,0x40,0x14,0x00,0xf4,0x01,0x01,0x13,0x0d,0x08,0xf4,0x09,0x0c,0x04,0x0b,0x0b,0x0f,0xed,0x04,0x04,0x14,0x08,0x00,0x2f,0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x33,0x00,0x2f, +0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x37,0x35,0x21,0x20,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x15,0x23,0x15,0x16,0x15,0x14,0x06,0x23,0x66,0x02,0x0c,0x01,0x3a,0xad,0x88,0xfd,0xef,0x03,0xb8,0x80,0x9a,0xef,0xd5,0x5a,0xa4,0xf2,0x74,0xa6,0xa2,0xa2,0x04,0x6b,0xc2,0xb0,0xcf,0x00,0x03,0x00,0x3e,0x00,0x5a,0x05,0x6c,0x03,0xac, +0x00,0x12,0x00,0x1e,0x00,0x2a,0x00,0x49,0x40,0x25,0x19,0x63,0x13,0x1f,0x63,0x25,0x13,0x25,0x13,0x09,0x00,0xf4,0x01,0x01,0x13,0x0d,0x08,0xf4,0x09,0x0c,0x04,0x0b,0x0b,0x0f,0xed,0x04,0x04,0x2c,0x08,0x00,0x00,0x2c,0x1c,0x16,0x28,0x62,0x22,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x33,0x00, +0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0xed,0x10,0xed,0x31,0x30,0x25,0x35,0x21,0x20,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x15,0x23,0x15,0x16,0x15,0x14,0x06,0x23,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x9c,0x02,0x0c, +0x01,0x3a,0xae,0x88,0xfd,0xf0,0x03,0xb8,0x81,0x99,0xed,0xd5,0xfc,0xf6,0x2a,0x38,0x38,0x2a,0x29,0x39,0x38,0x2a,0x2a,0x38,0x38,0x2a,0x29,0x39,0x38,0x5a,0xa4,0xf2,0x73,0xa7,0xa2,0xa2,0x04,0x6b,0xc2,0xb1,0xce,0x02,0x12,0x3b,0x28,0x29,0x3b,0x3b,0x29,0x29,0x3a,0xfe,0x80,0x38,0x28,0x29,0x3b,0x39,0x29,0x28,0x3a,0x00,0x00,0x01, +0x00,0x66,0xff,0x2d,0x04,0x38,0x04,0xd7,0x00,0x1f,0x00,0x3e,0x40,0x1f,0x01,0xf4,0x40,0x00,0x0e,0x09,0x0a,0x12,0x42,0x15,0x11,0xf4,0x12,0x1b,0x09,0xf4,0x0a,0x14,0x14,0x1b,0x15,0x18,0x0d,0x1d,0xed,0x05,0x05,0x21,0x11,0x09,0x00,0x2f,0x32,0x32,0x11,0x39,0x2f,0xf1,0x39,0x39,0x33,0x33,0xc0,0x2f,0x00,0x2f,0xed,0x39,0xd6,0xed, +0x32,0x2b,0x00,0x18,0x10,0xf6,0x1a,0xed,0x31,0x30,0x17,0x35,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x20,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x15,0x23,0x15,0x16,0x15,0x14,0x06,0x07,0x16,0x15,0x10,0x21,0x66,0x02,0x04,0xab,0x97,0xbc,0x8a,0xfe,0x00,0x02,0x19,0x01,0x2d,0xb4,0x92,0xfe,0x00,0x03,0xb8,0x8c,0xa6,0x76, +0x60,0xd6,0xfe,0x47,0xd3,0xa2,0x6a,0x75,0x6f,0x93,0xa2,0xe6,0x70,0x8d,0xa2,0xa2,0x04,0x5b,0xbc,0x6f,0xab,0x27,0x61,0xd4,0xfe,0x89,0xff,0xff,0x00,0x0e,0x00,0x00,0x03,0xcb,0x04,0x00,0x02,0x06,0x00,0x59,0x00,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x04,0x00,0x02,0x06,0x00,0x5a,0x00,0x00,0xff,0xff,0x00,0x21,0x00,0x00, +0x03,0x70,0x04,0x00,0x02,0x06,0x00,0x5d,0x00,0x00,0x00,0x01,0x00,0x50,0xff,0xe8,0x02,0xf8,0x04,0x00,0x00,0x17,0x00,0x3d,0x40,0x1f,0x0a,0x08,0x52,0x10,0x10,0x03,0x0f,0x0c,0x95,0x0d,0x0f,0x01,0x03,0x95,0x16,0x16,0x10,0x0a,0x0a,0x06,0x0c,0x0b,0x0f,0x0f,0x13,0x84,0x06,0x06,0x19,0x0c,0x00,0x2f,0xc4,0x12,0x39,0x2f,0xf1,0xc0, +0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x21,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x50,0x6a,0x92,0x7a,0x8e,0xfe,0xdd,0x3d,0x01,0x06,0xfe,0x56,0x02,0x8b,0xfe,0xed,0x8e,0xa2,0xf0, +0xc6,0x89,0x18,0x96,0x3c,0x66,0x59,0xc1,0x3d,0x01,0x45,0x8c,0x46,0xfe,0xac,0x13,0xa4,0x7c,0x92,0xb9,0x00,0x01,0x00,0x50,0xff,0xe8,0x02,0xfa,0x04,0x18,0x00,0x25,0x00,0x42,0x40,0x22,0x14,0x13,0x07,0x01,0x00,0x0c,0x1f,0x1c,0x1a,0x95,0x1f,0x10,0x09,0x07,0x95,0x0c,0x16,0x00,0x83,0x14,0x14,0x18,0x0f,0x09,0x09,0x22,0x83,0x18, +0x18,0x27,0x1c,0x05,0x83,0x0f,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x10,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x01,0x15,0x06,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x37,0x35,0x36,0x37,0x36,0x35,0x34,0x23,0x22, +0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x01,0xf8,0x2e,0x56,0x7e,0xe5,0x9b,0x76,0x7c,0xa5,0xb3,0xc8,0x9e,0x3a,0x2a,0x2e,0x55,0x7f,0xe6,0x9a,0x76,0x7c,0xa5,0xb3,0xc8,0x9e,0x3a,0x02,0x0a,0x54,0x1e,0x28,0x3a,0x4a,0x7a,0x4c,0x97,0x3f,0x8c,0x72,0x90,0x4a,0x1c,0x1a,0x54,0x1e,0x28,0x3a,0x4a,0x7a,0x4c,0x97,0x3f,0x8c, +0x72,0x90,0x4a,0x1c,0x00,0x01,0x00,0x14,0xff,0xe8,0x04,0x25,0x04,0x18,0x00,0x1b,0x00,0x3b,0x40,0x1e,0x12,0x10,0x09,0x1b,0x0b,0x06,0x19,0x95,0x02,0x16,0x04,0x0d,0x17,0x03,0x0f,0x1b,0x0e,0x15,0x0f,0x40,0x0f,0x09,0x42,0x09,0x09,0x1c,0x0f,0x0f,0x1d,0x1c,0x11,0x12,0x39,0x2f,0x12,0x39,0x2f,0x2b,0x01,0x1a,0x18,0x10,0xdd,0xe2, +0x12,0x17,0x39,0x00,0x3f,0xfd,0x39,0x39,0xd6,0xc4,0x3f,0x31,0x30,0x25,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x33,0x32,0x37,0x04,0x25,0x61,0x82,0x99,0x8d,0x8c,0x94,0x81,0x67,0x6e,0x74,0x60,0x62,0xe9,0xb6,0x9c,0x9b,0xae,0xe7,0x63,0x64,0x71, +0x6a,0x38,0x50,0x7a,0x7a,0x4d,0xa8,0x6b,0x54,0xe7,0xf5,0xa4,0xd2,0xcb,0xa5,0xfc,0xe6,0x54,0x67,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0xdf,0x04,0x00,0x02,0x06,0x02,0x0a,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x00,0x03,0xb6,0x04,0x00,0x00,0x0b,0x00,0x17,0x40,0x0a,0x04,0x0b,0x0f,0x00,0x09,0x15,0x00,0x00,0x0d,0x09,0x2f,0x11, +0x33,0x2f,0x00,0x3f,0xc4,0x3f,0x33,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x33,0x03,0xb6,0xb2,0xfe,0xf2,0x02,0x12,0x05,0x05,0x10,0xfe,0xf2,0xb0,0x01,0x79,0xc1,0x03,0x14,0x06,0x4e,0x1b,0x39,0xfc,0xec,0x04,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x02,0x06,0x02,0x16,0x00,0x00, +0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0x52,0x04,0x00,0x02,0x06,0x07,0x7a,0x00,0x00,0x00,0x01,0x00,0x60,0x00,0x00,0x04,0x5a,0x04,0x00,0x00,0x13,0x00,0x4c,0x40,0x29,0x0c,0x05,0x0f,0x96,0x40,0x02,0x02,0x03,0x0e,0x09,0x13,0x0f,0x03,0x15,0x11,0x84,0x00,0x0e,0x03,0x0a,0x84,0x07,0x04,0x07,0x42,0x07,0x07,0x14,0x0f,0x0c,0x03,0x84, +0x4f,0x04,0x5f,0x04,0x02,0x04,0x04,0x15,0x14,0x11,0x12,0x39,0x2f,0x5d,0xe1,0x39,0x39,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x3f,0x33,0x33,0x12,0x39,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x10,0x05,0x11,0x23,0x11,0x24,0x11,0x11,0x33,0x11,0x14,0x05,0x11,0x33,0x11,0x24,0x35,0x11,0x33,0x04,0x5a, +0xfe,0x54,0xa2,0xfe,0x54,0xa2,0x01,0x0a,0xa2,0x01,0x0a,0xa2,0x02,0x92,0xfe,0xa0,0x18,0xfe,0xe6,0x01,0x1a,0x12,0x01,0x60,0x01,0x74,0xfe,0x92,0xee,0x08,0x02,0x64,0xfd,0x9c,0x0c,0xea,0x01,0x6e,0x00,0x01,0x00,0x0a,0xff,0xf4,0x03,0xd7,0x04,0x00,0x00,0x10,0x00,0x2a,0x40,0x15,0x02,0x95,0x10,0x0f,0x09,0x0b,0x95,0x06,0x01,0x00, +0x15,0x03,0x0f,0x0f,0x09,0x00,0x84,0x01,0x01,0x12,0x09,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x00,0x3f,0x10,0xd4,0xfd,0xc6,0x3f,0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x12,0x11,0x21,0x03,0xd7,0xa2,0xfe,0x67,0x0d,0x94,0xa1,0x26,0x2a,0x20,0x1e,0x41,0x48,0x2b,0x02,0xdb, +0x03,0x74,0xfd,0xb0,0xfe,0xd0,0x0c,0x8c,0x0d,0x7e,0x01,0x90,0x01,0x73,0x00,0x02,0x00,0x0a,0x02,0x9a,0x02,0xd7,0x05,0x9a,0x00,0x07,0x00,0x0f,0x00,0x4e,0x40,0x10,0x02,0x08,0x09,0x0a,0x0b,0x0c,0x01,0x0c,0x0d,0x0e,0x0f,0x03,0x04,0x0c,0x04,0x03,0xb8,0x01,0x0e,0xb2,0x0f,0x0f,0x06,0xbc,0x01,0x06,0x00,0x01,0x01,0x0a,0x00,0x05, +0x01,0x0a,0xb6,0x0f,0x08,0x05,0x00,0x00,0x11,0x05,0x2f,0x11,0x33,0x2f,0x12,0x39,0x39,0x00,0x3f,0x3f,0x3f,0x39,0x2f,0xed,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0,0x0e,0xc0,0xc0,0x10,0x87,0x05,0xc0,0x0e,0xc0,0xc0,0x05,0xc0,0xc0,0x01,0x23,0x27,0x21,0x07,0x23,0x01,0x33,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x02,0xd7,0x8f,0x44, +0xfe,0xd5,0x3f,0x90,0x01,0x1d,0x97,0x24,0x63,0x03,0x0a,0x04,0x05,0x09,0x64,0x02,0x9a,0xbe,0xbe,0x03,0x00,0xfe,0x2e,0x01,0x22,0x0a,0x31,0x22,0x19,0xfe,0xde,0x00,0x00,0x02,0xff,0xf6,0x02,0x9a,0x03,0x9e,0x05,0x9a,0x00,0x0f,0x00,0x13,0x00,0x76,0xb5,0x13,0x03,0x04,0x12,0x04,0x0d,0xb8,0x01,0x0e,0xb4,0x40,0x0a,0x06,0x01,0x0a, +0xb8,0x01,0x0e,0xb2,0xff,0x30,0x03,0xb8,0x01,0x0e,0xb3,0x13,0x13,0x06,0x0e,0xb8,0x01,0x0e,0xb2,0x01,0x01,0x05,0xbe,0x01,0x0a,0x00,0x09,0x01,0x0e,0x00,0x12,0x01,0x0e,0x00,0x06,0x01,0x06,0x40,0x09,0x03,0x04,0x12,0x13,0x04,0x05,0x10,0x0a,0x0e,0xb8,0x01,0x0c,0x40,0x09,0x01,0x01,0x05,0x08,0x0c,0x00,0x00,0x15,0x05,0x2f,0x12, +0x39,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0xe1,0x39,0x39,0x12,0x17,0x39,0x00,0x3f,0xed,0xed,0x3f,0x33,0x10,0xed,0x12,0x39,0x2f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0,0x01,0x21,0x35,0x21,0x07,0x23,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x25,0x11,0x23,0x03,0x03,0x9e,0xfe,0x50,0xff,0x00, +0x60,0x98,0x01,0xa2,0x01,0xf6,0xfe,0xe2,0x01,0x09,0xfe,0xf7,0x01,0x2e,0xfe,0x50,0x0f,0xb8,0x02,0x9a,0xbe,0xbe,0x03,0x00,0x71,0xd9,0x6c,0xda,0xbe,0x01,0x63,0xfe,0x9d,0x00,0x00,0x03,0x00,0x7b,0x02,0x9a,0x02,0x89,0x05,0x9a,0x00,0x0c,0x00,0x13,0x00,0x1a,0x00,0x57,0xb1,0x07,0x14,0xb8,0x01,0x0e,0xb4,0x40,0x0e,0x01,0x00,0x0e, +0xb8,0x01,0x0e,0xb2,0x32,0x30,0x15,0xbe,0x01,0x0e,0x00,0x00,0x01,0x0a,0x00,0x0d,0x01,0x0e,0x00,0x01,0x01,0x06,0xb3,0x06,0x09,0x0e,0x11,0xb8,0x01,0x0c,0xb2,0x04,0x04,0x09,0xb8,0x01,0x0c,0xb4,0x18,0x18,0x1c,0x0e,0x15,0xb9,0x01,0x0c,0x00,0x00,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x00,0x3f,0xed, +0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x13,0x11,0x33,0x20,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x03,0x15,0x33,0x32,0x35,0x34,0x23,0x03,0x15,0x33,0x32,0x35,0x34,0x23,0x7b,0xe7,0x01,0x06,0x89,0xaa,0x99,0x84,0x6e,0x5a,0x8a,0x8c,0x58,0x6e,0x96,0xa0,0x02,0x9a,0x03,0x00,0xbf,0x7d,0x29,0x02,0x19,0x9f, +0x68,0x79,0x02,0x8f,0xc9,0x66,0x63,0xfe,0xc7,0xe6,0x71,0x75,0x00,0x03,0x00,0x23,0x02,0x9a,0x02,0xb2,0x05,0x9a,0x00,0x12,0x00,0x19,0x00,0x20,0x00,0x64,0xb5,0x01,0x11,0x14,0x1a,0x04,0x08,0xb8,0x01,0x0e,0xb4,0x40,0x0b,0x0c,0x07,0x0b,0xb8,0x01,0x0e,0xb2,0x32,0x30,0x1b,0xbe,0x01,0x0e,0x00,0x07,0x01,0x0a,0x00,0x13,0x01,0x0e, +0x00,0x0c,0x01,0x06,0xb4,0x11,0x01,0x03,0x14,0x17,0xb8,0x01,0x0c,0xb5,0x0f,0x0f,0x03,0x00,0x00,0x03,0xb8,0x01,0x0c,0xb7,0x1e,0x1e,0x22,0x14,0x0b,0x1b,0x09,0x07,0x2f,0xc6,0xc1,0x39,0x39,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x10,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x17,0x39, +0x31,0x30,0x01,0x23,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x20,0x15,0x14,0x07,0x33,0x25,0x15,0x33,0x32,0x35,0x34,0x23,0x03,0x15,0x33,0x32,0x35,0x34,0x23,0x02,0xb2,0x6a,0x56,0x97,0x86,0xf1,0x6d,0x6d,0xe7,0x01,0x06,0x48,0x7d,0xfe,0x60,0x5a,0x8a,0x8c,0x58,0x6f,0x95,0x9f,0x03,0xf0,0x28,0x58,0x62,0x74, +0x01,0x56,0x70,0x01,0x3a,0xbf,0x53,0x28,0xc9,0xc9,0x66,0x63,0xfe,0xc7,0xe6,0x6d,0x79,0x00,0x00,0x02,0x00,0x7b,0x02,0x9a,0x03,0x08,0x05,0x9a,0x00,0x07,0x00,0x0f,0x00,0x2d,0x41,0x0a,0x00,0x09,0x01,0x0e,0x00,0x00,0x01,0x0a,0x00,0x08,0x01,0x0e,0x00,0x01,0x01,0x06,0x00,0x04,0x01,0x0c,0xb3,0x0d,0x0d,0x11,0x09,0xb9,0x01,0x0c, +0x00,0x00,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x13,0x11,0x33,0x20,0x11,0x14,0x06,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x7b,0xf1,0x01,0x9c,0xe2,0xc0,0x68,0x64,0x89,0x96,0xfe,0xe7,0x02,0x9a,0x03,0x00,0xfe,0x87,0xb1,0xd6,0x02,0x8f,0xfd,0xe1,0x90,0x84,0x01,0x0b,0x00,0x00,0x01,0x00,0x7b, +0x02,0x9a,0x02,0x2b,0x05,0x9a,0x00,0x0b,0x00,0x43,0xb9,0x00,0x09,0x01,0x0e,0xb4,0x40,0x06,0x02,0x01,0x06,0xb8,0x01,0x0e,0xb2,0xff,0x30,0x0a,0xbe,0x01,0x0e,0x00,0x01,0x01,0x0a,0x00,0x05,0x01,0x0e,0x00,0x02,0x01,0x06,0xb6,0x04,0x08,0x00,0x00,0x0d,0x06,0x0a,0xb9,0x01,0x0c,0x00,0x01,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xc4,0xc4, +0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x02,0x2b,0xfe,0x50,0x01,0x9f,0xfe,0xe4,0x01,0x08,0xfe,0xf8,0x01,0x2d,0x02,0x9a,0x03,0x00,0x71,0xd7,0x70,0xd8,0x00,0x00,0x01,0x00,0x48,0x02,0x9a,0x01,0xf8,0x05,0x9a,0x00,0x0b,0x00,0x43,0xb9,0x00, +0x04,0x01,0x0e,0xb4,0x40,0x07,0x0b,0x00,0x07,0xb8,0x01,0x0e,0xb2,0xff,0x30,0x03,0x41,0x09,0x01,0x0e,0x00,0x00,0x01,0x0a,0x00,0x08,0x01,0x0e,0x00,0x0b,0x01,0x06,0x00,0x00,0x01,0x0c,0xb6,0x07,0x03,0x03,0x0d,0x09,0x05,0x01,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31, +0x30,0x01,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x01,0xf8,0xfe,0x50,0x01,0x2c,0xfe,0xf8,0x01,0x08,0xfe,0xe4,0x01,0xa0,0x02,0x9a,0x70,0xd8,0x70,0xd7,0x71,0x00,0x01,0x00,0x3e,0x02,0x89,0x02,0xcb,0x05,0xaa,0x00,0x19,0x00,0x50,0xb9,0x00,0x17,0x01,0x0e,0xb5,0x18,0x18,0x08,0x15,0x00,0x13,0xba,0x01,0x0e,0x00, +0x02,0x01,0x0b,0xb4,0xaf,0x0b,0x01,0x0b,0x0d,0xba,0x01,0x0e,0x00,0x08,0x01,0x07,0xb6,0x17,0x17,0x16,0x10,0x0b,0x0b,0x19,0xb8,0x01,0x0c,0xb3,0x16,0x16,0x1b,0x10,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0xed,0x32,0x32,0x11,0x39,0x2f,0xed,0x31,0x30, +0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x35,0x23,0x35,0x21,0x02,0xcb,0x75,0x96,0xb2,0xd0,0xe7,0xb8,0x77,0x5e,0x62,0x75,0x7a,0x9d,0x8d,0x77,0x49,0x37,0x9c,0x01,0x1f,0x02,0xcb,0x42,0xd0,0xb5,0xb7,0xe5,0x27,0x81,0x38,0xa2,0x82,0x85,0x97,0x1c,0xb2,0x72, +0x00,0x01,0x00,0x7b,0x02,0x9a,0x02,0xea,0x05,0x9a,0x00,0x0b,0x00,0x49,0xb9,0x00,0x03,0x01,0x0e,0xb4,0x40,0x08,0x06,0x05,0x08,0xb8,0x01,0x0e,0xb5,0x32,0x30,0x0b,0x00,0x06,0x05,0xba,0x01,0x0a,0x00,0x06,0x01,0x06,0xb3,0x09,0x08,0x04,0x00,0xbb,0x01,0x0c,0x00,0x01,0x00,0x04,0x01,0x0c,0xb4,0x05,0x01,0x01,0x0d,0x05,0x2f,0x12, +0x39,0x2f,0x10,0xe1,0x10,0xe1,0x12,0x39,0x39,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x02,0xea,0x84,0xfe,0x98,0x83,0x83,0x01,0x68,0x84,0x02,0x9a,0x01,0x4e,0xfe,0xb2,0x03,0x00,0xfe,0xbe,0x01,0x42,0x00,0x00,0x01,0x00,0x7b,0x02,0x9a, +0x00,0xfe,0x05,0x9a,0x00,0x03,0x00,0x16,0xbe,0x00,0x01,0x01,0x0a,0x00,0x02,0x01,0x06,0x00,0x00,0x01,0x0c,0x00,0x01,0x2f,0xe1,0x00,0x3f,0x3f,0x31,0x30,0x13,0x23,0x11,0x33,0xfe,0x83,0x83,0x02,0x9a,0x03,0x00,0x00,0x00,0x01,0x00,0x0a,0x02,0x87,0x01,0x5e,0x05,0x9a,0x00,0x0c,0x00,0x23,0xb1,0x06,0x08,0xbe,0x01,0x0e,0x00,0x03, +0x01,0x0b,0x00,0x0b,0x01,0x06,0x00,0x0c,0x01,0x0c,0xb3,0x0b,0x0b,0x0e,0x06,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0x01,0x5e,0x82,0x74,0x35,0x29,0x2a,0x2c,0x7b,0x83,0x03,0xaa,0x8a,0x99,0x15,0x78,0x1c,0xb6,0x01,0xec,0x00,0x01,0x00,0x7b, +0x02,0x9a,0x02,0xc0,0x05,0x9a,0x00,0x10,0x00,0x21,0xbb,0x00,0x07,0x01,0x0a,0x00,0x08,0x01,0x06,0xb5,0x0f,0x00,0x12,0x10,0x0a,0x05,0xb9,0x01,0x0c,0x00,0x07,0x2f,0xe1,0x32,0x32,0x10,0xd6,0xc6,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x03,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x37,0x13,0x33,0x01,0x02,0xc0,0xa8,0xe9, +0x1f,0x0e,0x04,0x83,0x83,0x04,0x10,0x1d,0xe1,0x9c,0xfe,0xd7,0x02,0x9a,0x01,0x31,0x28,0x1d,0xfe,0x8a,0x03,0x00,0xfe,0x99,0x19,0x26,0x01,0x28,0xfe,0x8d,0x00,0x01,0x00,0x7b,0x02,0x9a,0x02,0x25,0x05,0x9a,0x00,0x05,0x00,0x22,0xbd,0x00,0x04,0x01,0x0e,0x00,0x01,0x01,0x0a,0x00,0x02,0x01,0x06,0xb3,0x00,0x00,0x07,0x04,0xb9,0x01, +0x0c,0x00,0x01,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0x3f,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x11,0x21,0x02,0x25,0xfe,0x56,0x83,0x01,0x27,0x02,0x9a,0x03,0x00,0xfd,0x70,0x00,0x00,0x01,0x00,0x7b,0x02,0x9a,0x03,0xb6,0x05,0x9a,0x00,0x1b,0x00,0x27,0xbe,0x00,0x11,0x01,0x0a,0x00,0x13,0x01,0x06,0x00,0x1a,0x00,0x00,0x01,0x0c,0xb4, +0x01,0x01,0x1d,0x13,0x10,0xb9,0x01,0x0c,0x00,0x11,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x33,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x03,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x03,0xb6,0x83,0x07,0x05,0x07,0x10,0xd6,0x62,0xd8,0x0a,0x0e,0x04, +0x04,0x7b,0xbd,0xc6,0x14,0x08,0x04,0x11,0x0f,0xc2,0xb6,0x02,0x9a,0x01,0xe9,0x3b,0x58,0x20,0x36,0xfd,0xda,0x02,0x20,0x18,0x46,0x40,0x6a,0xfe,0x2c,0x03,0x00,0xfe,0x08,0x32,0x2c,0x3e,0x24,0x01,0xf4,0x00,0x00,0x01,0x00,0x7b,0x02,0x9a,0x03,0x06,0x05,0x9a,0x00,0x11,0x00,0x29,0xbb,0x00,0x08,0x01,0x0a,0x00,0x0a,0x01,0x06,0xb3, +0x0a,0x01,0x07,0x11,0xb8,0x01,0x0c,0xb3,0x10,0x10,0x13,0x07,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x01,0x26,0x27,0x23,0x17,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x27,0x11,0x33,0x03,0x06,0x8d,0xfe,0xb2,0x15,0x1c,0x04,0x02,0x7d,0x93,0x01,0x48,0x15,0x1c, +0x05,0x03,0x7d,0x02,0x9a,0x01,0xfc,0x1f,0x3d,0x6f,0xfe,0x17,0x03,0x00,0xfe,0x0e,0x1f,0x3d,0x6e,0x01,0xe0,0x00,0x00,0x01,0x00,0x7b,0x02,0x9a,0x03,0x06,0x05,0x9a,0x00,0x11,0x00,0x29,0xbb,0x00,0x07,0x01,0x0a,0x00,0x09,0x01,0x06,0xb3,0x10,0x07,0x0a,0x00,0xb8,0x01,0x0c,0xb3,0x01,0x01,0x13,0x0a,0xb9,0x01,0x0c,0x00,0x08,0x2f, +0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x11,0x37,0x23,0x06,0x07,0x01,0x23,0x11,0x33,0x11,0x07,0x33,0x36,0x37,0x01,0x33,0x03,0x06,0x7d,0x03,0x05,0x0d,0x24,0xfe,0xb2,0x8d,0x7d,0x02,0x04,0x0e,0x23,0x01,0x47,0x94,0x02,0x9a,0x01,0xe9,0x6f,0x1e,0x3e,0xfe,0x04,0x03,0x00,0xfe,0x20,0x6e,0x1e, +0x3e,0x01,0xf2,0x00,0x00,0x02,0x00,0x3e,0x02,0x89,0x03,0x2b,0x05,0xaa,0x00,0x0b,0x00,0x17,0x00,0x2d,0x41,0x0a,0x00,0x12,0x01,0x0e,0x00,0x00,0x01,0x0b,0x00,0x0c,0x01,0x0e,0x00,0x06,0x01,0x07,0x00,0x09,0x01,0x0c,0xb3,0x15,0x15,0x19,0x0f,0xb9,0x01,0x0c,0x00,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31, +0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0xae,0xa6,0xca,0xd3,0xa9,0xa7,0xca,0xd2,0xa3,0x6c,0x86,0x82,0x6c,0x6c,0x86,0x82,0x02,0x89,0xd9,0xb0,0xb7,0xe1,0xd8,0xb1,0xb5,0xe3,0x02,0xb1,0x9e,0x84,0x83,0x9b,0x9d,0x83,0x83,0x9d,0x00,0x02, +0x00,0x3e,0x02,0x89,0x02,0xcf,0x05,0x9a,0x00,0x1b,0x00,0x27,0x00,0x5c,0xb2,0x12,0x00,0x1c,0xb8,0x01,0x0e,0xb3,0x09,0x09,0x04,0x22,0xbf,0x01,0x0e,0x00,0x17,0x01,0x0b,0x00,0x0e,0x00,0x04,0x01,0x06,0x00,0x0b,0x01,0x0c,0xb6,0x10,0x10,0x14,0x1a,0x05,0x05,0x07,0xb8,0x01,0x0c,0xb5,0x02,0x02,0x12,0x00,0x1a,0x14,0xb8,0x01,0x0c, +0xb3,0x25,0x25,0x29,0x1f,0xb9,0x01,0x0c,0x00,0x1a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x33,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x13,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x32,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x15,0x14, +0x06,0x23,0x22,0x26,0x35,0x34,0x25,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0xdd,0x75,0x19,0x7d,0x16,0x9d,0x9e,0x15,0x80,0x16,0x73,0x9e,0xba,0x92,0x92,0xb3,0x01,0x47,0x58,0x6d,0x6e,0x57,0x58,0x6f,0x73,0x04,0x7f,0x35,0x75,0x35,0x3c,0x2e,0x37,0x83,0x83,0x3b,0x2a,0x38,0x39,0x70,0x3a,0x3f,0xa2,0x7a,0x9b,0x96, +0x79,0xa0,0x0a,0x59,0x4b,0x4a,0x5a,0x58,0x4c,0x48,0x5c,0x00,0x00,0x02,0x00,0x7b,0x02,0x9a,0x02,0x83,0x05,0x9a,0x00,0x09,0x00,0x10,0x00,0x35,0xb9,0x00,0x00,0x01,0x0e,0xb3,0x0b,0x0b,0x03,0x02,0xbe,0x01,0x0a,0x00,0x0a,0x01,0x0e,0x00,0x03,0x01,0x06,0x00,0x06,0x01,0x0c,0xb4,0x0e,0x0e,0x12,0x0b,0x01,0xb9,0x01,0x0c,0x00,0x02, +0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x31,0x30,0x13,0x11,0x23,0x11,0x33,0x20,0x15,0x14,0x06,0x23,0x03,0x11,0x33,0x32,0x35,0x34,0x23,0xfe,0x83,0xef,0x01,0x19,0xa1,0x86,0x5e,0x54,0xaa,0xa4,0x03,0xa6,0xfe,0xf4,0x03,0x00,0xf2,0x71,0x91,0x01,0x83,0xfe,0xed,0x8e,0x85,0x00,0x02,0x00,0x7b, +0x02,0x9a,0x02,0xa4,0x05,0x9a,0x00,0x11,0x00,0x18,0x00,0x42,0xb1,0x0f,0x05,0xb8,0x01,0x0e,0xb4,0x13,0x13,0x08,0x00,0x07,0xbc,0x01,0x0a,0x00,0x12,0x01,0x0e,0x00,0x08,0x01,0x06,0xb4,0x0f,0x13,0x00,0x00,0x0c,0xb8,0x01,0x0c,0xb4,0x16,0x16,0x1a,0x13,0x06,0xb9,0x01,0x0c,0x00,0x07,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f, +0x12,0x39,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x23,0x27,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x17,0x01,0x15,0x33,0x32,0x35,0x34,0x23,0x02,0xa4,0x96,0x5c,0x2a,0x4a,0x40,0x83,0x01,0x00,0x7f,0x89,0xae,0x37,0x29,0xfe,0xc9,0x68,0x94,0x90,0x02,0x9a,0xd2,0x61,0xfe, +0xcd,0x03,0x00,0x73,0x65,0xa8,0x22,0x02,0x16,0x59,0x01,0xa2,0xeb,0x78,0x73,0x00,0x00,0x01,0x00,0x0a,0x02,0x9a,0x02,0x48,0x05,0x9a,0x00,0x07,0x00,0x2d,0xbe,0x00,0x03,0x01,0x0a,0x00,0x01,0x00,0x04,0x01,0x0e,0x00,0x06,0x01,0x06,0xb4,0x00,0x03,0x05,0x05,0x02,0xb8,0x01,0x0c,0xb3,0x03,0x03,0x09,0x08,0x11,0x12,0x39,0x2f,0xf1, +0xc0,0x2f,0x10,0xc4,0x00,0x3f,0xed,0x32,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x21,0x02,0x48,0xde,0x82,0xde,0x02,0x3e,0x05,0x29,0xfd,0x71,0x02,0x8f,0x71,0x00,0x00,0x01,0x00,0x74,0x02,0x89,0x02,0xdb,0x05,0x9a,0x00,0x0d,0x00,0x2b,0x41,0x09,0x00,0x09,0x01,0x0e,0x00,0x02,0x01,0x0b,0x00,0x0d,0x00,0x05,0x01,0x06, +0x00,0x0d,0x01,0x0c,0xb3,0x0c,0x0c,0x0f,0x06,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x33,0x3f,0xed,0x31,0x30,0x01,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x35,0x11,0x33,0x02,0xdb,0xfe,0xc5,0xfe,0xd4,0x84,0xb0,0xb0,0x83,0x03,0xd3,0xfe,0xb6,0x01,0x3f,0x01,0xd2,0xfe,0x35,0xd5,0xd5,0x01, +0xcb,0x00,0x00,0x01,0x00,0x10,0x02,0x9a,0x04,0x25,0x05,0x9a,0x00,0x1b,0x00,0x15,0xbb,0x00,0x0a,0x01,0x0a,0x00,0x0b,0x01,0x06,0xb2,0x00,0x1d,0x0b,0x2f,0x10,0xc6,0x00,0x3f,0x3f,0x31,0x30,0x01,0x03,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x37, +0x13,0x04,0x25,0xc7,0x9e,0x8f,0x0a,0x02,0x04,0x05,0x0a,0x95,0x9e,0xcf,0x92,0x85,0x09,0x03,0x07,0x02,0x0e,0x9c,0x88,0x8e,0x0a,0x04,0x06,0x02,0x0c,0x82,0x05,0x9a,0xfd,0x00,0x02,0x0e,0x25,0x2d,0x2c,0x24,0xfd,0xf0,0x03,0x00,0xfd,0xdf,0x26,0x2a,0x1f,0x31,0x02,0x21,0xfd,0xda,0x26,0x25,0x19,0x35,0x02,0x23,0x00,0x02,0x00,0x3e, +0x02,0x89,0x02,0x1e,0x04,0xcf,0x00,0x14,0x00,0x1d,0x00,0x61,0x40,0x0c,0x02,0x05,0x16,0x0f,0x30,0x11,0x17,0x48,0x0f,0x0f,0x0d,0x16,0xb8,0x01,0x0d,0xb4,0x40,0x0b,0x12,0x05,0x0b,0xb8,0x01,0x0d,0xb2,0x30,0x30,0x1b,0x41,0x0b,0x01,0x0d,0x00,0x05,0x01,0x0b,0x00,0x00,0x01,0x0a,0x00,0x0d,0x01,0x0d,0x00,0x12,0x01,0x09,0x00,0x00, +0x01,0x0c,0xb6,0x16,0x0b,0x01,0x01,0x1f,0x0f,0x19,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0x2b,0x11,0x12,0x39,0x31,0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x34,0x23,0x22,0x07,0x35,0x36,0x33, +0x32,0x15,0x07,0x35,0x07,0x06,0x15,0x14,0x33,0x32,0x36,0x02,0x1e,0x7e,0x02,0x38,0x76,0x53,0x5f,0xc2,0xa0,0x6f,0x64,0x59,0x56,0x76,0xde,0x7e,0x79,0x6d,0x5e,0x3c,0x4c,0x02,0x9a,0x50,0x61,0x59,0x4b,0x9b,0x1c,0x16,0x72,0x3f,0x71,0x31,0xd7,0x81,0x2f,0x10,0x0e,0x4e,0x50,0x4e,0x00,0x02,0x00,0x66,0x02,0x89,0x02,0x48,0x04,0xcf, +0x00,0x14,0x00,0x1d,0x00,0x61,0xb9,0x00,0x04,0xff,0xd0,0xb6,0x11,0x17,0x48,0x04,0x04,0x02,0x00,0xb8,0x01,0x0d,0x40,0x0c,0x15,0x5f,0x15,0x01,0x15,0x40,0x18,0x1b,0x48,0x15,0x0f,0x02,0x41,0x09,0x01,0x0d,0x00,0x07,0x01,0x0b,0x00,0x0a,0x01,0x08,0x00,0x1a,0x01,0x0d,0x00,0x0f,0x01,0x09,0xb2,0x04,0x04,0x12,0xb8,0x01,0x0c,0xb5, +0x18,0x18,0x1f,0x15,0x00,0x0b,0xb9,0x01,0x0c,0x00,0x0a,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x11,0x39,0x2b,0x71,0x2f,0xed,0x11,0x39,0x2f,0x2b,0x31,0x30,0x13,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x35,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x27,0x37,0x36,0x35, +0x34,0x23,0x22,0x06,0x15,0xe6,0x6e,0x64,0x58,0x54,0x76,0xe0,0x80,0x02,0x37,0x77,0x52,0x60,0xc3,0x9f,0x78,0x6d,0x5f,0x3a,0x4c,0x03,0x5e,0x72,0x3f,0x71,0x31,0xd7,0x01,0x5e,0x50,0x61,0x5c,0x48,0x9b,0x1c,0x3e,0x10,0x0f,0x4d,0x50,0x4e,0x3e,0x00,0x00,0x02,0x00,0x3e,0x02,0x89,0x02,0x60,0x04,0xcf,0x00,0x10,0x00,0x1b,0x00,0x41, +0xb3,0x0e,0x02,0x0b,0x19,0x41,0x0d,0x01,0x0d,0x00,0x05,0x01,0x0b,0x00,0x00,0x01,0x0a,0x00,0x10,0x01,0x08,0x00,0x15,0x01,0x0d,0x00,0x0b,0x01,0x09,0x00,0x00,0x01,0x0c,0xb5,0x11,0x0e,0x01,0x01,0x1d,0x17,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31, +0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0x36,0x02,0x60,0x7e,0x03,0x42,0x76,0x68,0x81,0x8e,0x6e,0x70,0x35,0x03,0x7e,0x7e,0x52,0x40,0x90,0x8e,0x42,0x52,0x02,0x9a,0x50,0x61,0x97,0x80,0x84,0xab,0x54,0x43,0xfe,0xda,0x2e,0x46, +0x5c,0xc2,0xb6,0x5e,0x00,0x03,0x00,0x48,0x02,0x89,0x03,0xa2,0x04,0xcf,0x00,0x22,0x00,0x2b,0x00,0x30,0x00,0xa9,0x40,0x09,0x1a,0x0a,0x0c,0x18,0x15,0x15,0x13,0x10,0x04,0xb8,0xff,0xd0,0xb6,0x11,0x17,0x48,0x04,0x04,0x02,0x00,0xb8,0x01,0x0d,0x40,0x0d,0x23,0x5f,0x23,0x01,0x23,0x40,0x18,0x1b,0x48,0x23,0x1d,0x02,0x10,0xb8,0x01, +0x0d,0x40,0x0c,0x03,0x2d,0x13,0x2d,0x23,0x2d,0x03,0x2d,0x2d,0x13,0x0c,0x02,0xb8,0x01,0x0d,0xb2,0x07,0x07,0x2f,0xbc,0x01,0x0d,0x00,0x0c,0x01,0x0b,0x00,0x28,0x01,0x0d,0xb3,0x1d,0x1d,0x13,0x18,0xb8,0x01,0x09,0xb5,0x00,0x09,0x1a,0x2c,0x04,0x23,0xb8,0x01,0x0c,0xb6,0x11,0x11,0x20,0x10,0x04,0x04,0x20,0xb8,0x01,0x0c,0xb4,0x26, +0x26,0x32,0x15,0x2d,0xb9,0x01,0x0c,0x00,0x10,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x17,0x39,0x00,0x3f,0xcd,0x33,0x10,0xed,0x3f,0xed,0x33,0x10,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x11,0x12,0x39,0x2b,0x71,0x2f,0xed,0x11,0x39,0x2f,0x2b,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x39,0x31,0x30,0x01, +0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x27,0x23,0x06,0x23,0x22,0x26,0x35,0x35,0x21,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x27,0x37,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x07,0x23,0x16,0x33,0x32,0x02,0x40,0x6e,0x64,0x58,0x54,0x76,0x7e,0x32,0x04,0x48,0x6a,0x72,0x80,0x01,0x78, +0x08,0x9c,0x5c,0x4e,0x4a,0x73,0x97,0x44,0x04,0x43,0x8a,0x58,0x6f,0xc3,0x9f,0x78,0x6d,0x5f,0x3a,0x4c,0x80,0xfe,0x02,0x7a,0x78,0x03,0x5e,0x72,0x3f,0x71,0x31,0x50,0x50,0x93,0x7a,0x43,0x8f,0x35,0x6f,0x2d,0x6b,0x6b,0x5e,0x46,0x9b,0x1c,0x3e,0x10,0x0f,0x4d,0x50,0x4e,0x3e,0x6b,0x8b,0x00,0x00,0x02,0x00,0x66,0x02,0x89,0x02,0x89, +0x05,0xc4,0x00,0x10,0x00,0x1b,0x00,0x41,0xb3,0x06,0x01,0x09,0x15,0x41,0x0d,0x01,0x0d,0x00,0x0f,0x01,0x0b,0x00,0x03,0x01,0x0a,0x00,0x19,0x01,0x0d,0x00,0x09,0x01,0x09,0x00,0x04,0x01,0x06,0x00,0x0c,0x01,0x0c,0xb5,0x17,0x17,0x1d,0x12,0x06,0x02,0xb9,0x01,0x0c,0x00,0x03,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x3f, +0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x13,0x23,0x15,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x06,0xe8,0x02,0x80,0x80,0x02,0x42,0x76,0x68,0x81,0x8f,0x6c,0x72,0x36,0x51,0x40,0x91,0x8d,0x43,0x52,0x02,0xdd,0x43,0x03,0x2a,0xfe,0xaa,0x61, +0x97,0x80,0x84,0xab,0x01,0x37,0x2e,0x46,0x5c,0xc2,0xb6,0x60,0x00,0x02,0x00,0x3e,0x02,0x89,0x02,0x60,0x05,0xc4,0x00,0x10,0x00,0x1b,0x00,0x41,0xb3,0x0e,0x02,0x0b,0x19,0x41,0x0d,0x01,0x0d,0x00,0x05,0x01,0x0b,0x00,0x00,0x01,0x0a,0x00,0x15,0x01,0x0d,0x00,0x0b,0x01,0x09,0x00,0x10,0x01,0x06,0x00,0x10,0x01,0x0c,0xb5,0x12,0x02, +0x0f,0x0f,0x1d,0x17,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x11,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0x36,0x02,0x60,0x7e,0x03,0x42,0x76,0x68, +0x81,0x8e,0x6e,0x70,0x35,0x03,0x7e,0x7e,0x52,0x40,0x92,0x8e,0x42,0x54,0x02,0x9a,0x50,0x61,0x97,0x80,0x84,0xab,0x54,0x01,0x49,0xfd,0xd4,0x2e,0x46,0x5c,0xc2,0xb6,0x60,0x00,0x00,0x02,0x00,0x3e,0x02,0x89,0x02,0x35,0x04,0xcf,0x00,0x11,0x00,0x16,0x00,0x4e,0xb3,0x05,0x05,0x03,0x01,0xb8,0x01,0x0d,0x40,0x0b,0x0c,0x16,0x1c,0x16, +0x2c,0x16,0x03,0x16,0x16,0x0e,0x03,0xbe,0x01,0x0d,0x00,0x08,0x01,0x0b,0x00,0x14,0x01,0x0d,0x00,0x0e,0x01,0x09,0xb2,0x05,0x05,0x00,0xb8,0x01,0x0c,0xb4,0x12,0x12,0x18,0x16,0x01,0xb9,0x01,0x0c,0x00,0x0b,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x5d,0xed,0x11,0x39,0x2f,0x31,0x30, +0x01,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x27,0x26,0x23,0x22,0x07,0x02,0x35,0xfe,0x87,0x0a,0x9a,0x5c,0x4e,0x48,0x78,0x7e,0x8e,0x92,0x72,0x71,0x82,0x7b,0x02,0x78,0x78,0x0c,0x03,0x7f,0x8f,0x35,0x6f,0x2d,0x97,0x88,0x81,0xa6,0x91,0x7c,0x20,0x8a,0x8a,0x00,0x00,0x02,0x00,0x48, +0x02,0x87,0x02,0x40,0x04,0xd1,0x00,0x11,0x00,0x16,0x00,0x4c,0xb3,0x05,0x05,0x03,0x00,0xb8,0x01,0x0d,0x40,0x0b,0x03,0x13,0x13,0x13,0x23,0x13,0x03,0x13,0x13,0x03,0x15,0x41,0x09,0x01,0x0d,0x00,0x0e,0x01,0x0b,0x00,0x03,0x01,0x0d,0x00,0x08,0x01,0x09,0x00,0x0b,0x01,0x0c,0xb5,0x01,0x12,0x12,0x18,0x05,0x13,0xb9,0x01,0x0c,0x00, +0x00,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x11,0x39,0x2f,0x31,0x30,0x13,0x21,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x05,0x23,0x16,0x33,0x32,0x48,0x01,0x78,0x09,0x9b,0x5c,0x4e,0x4a,0x77,0x7c,0x91,0x94,0x70,0x72,0x82,0x01,0x78, +0xfe,0x02,0x7a,0x74,0x03,0xd9,0x91,0x35,0x6f,0x2d,0x99,0x88,0x81,0xa8,0x94,0x7b,0x1f,0x8d,0x00,0x01,0x00,0x3e,0x02,0x89,0x01,0xdb,0x04,0xcf,0x00,0x1e,0x00,0x5b,0xb1,0x06,0x17,0xb8,0x01,0x0d,0xb4,0x40,0x16,0x0c,0x02,0x16,0xb8,0x01,0x0d,0xb3,0x30,0x30,0x1e,0x1c,0xbf,0x01,0x0d,0x00,0x02,0x01,0x0b,0x00,0x0f,0x00,0x11,0x01, +0x0d,0x00,0x0c,0x01,0x09,0x40,0x0b,0x06,0x04,0x17,0x17,0x1a,0x0f,0x00,0x00,0x20,0x04,0x13,0xbc,0x01,0x0c,0x00,0x09,0x00,0x1a,0x01,0x0c,0x00,0x04,0x2f,0xe1,0xd4,0xe1,0x11,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x35, +0x34,0x37,0x35,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x14,0x33,0x33,0x15,0x23,0x22,0x15,0x14,0x33,0x32,0x37,0x01,0xdb,0x49,0x58,0xfc,0x7a,0x66,0x80,0x6e,0x4d,0x40,0x3e,0x49,0x71,0x8b,0x32,0x34,0x9e,0x88,0x55,0x3e,0x02,0xa4,0x1b,0xa4,0x6f,0x1c,0x04,0x20,0x59,0x48,0x52,0x17,0x68,0x1c,0x41,0x47,0x63, +0x4c,0x49,0x1c,0x00,0x00,0x01,0x00,0x42,0x02,0x89,0x01,0xdf,0x04,0xcf,0x00,0x1e,0x00,0x54,0xb1,0x01,0x11,0xb8,0x01,0x0d,0xb5,0x10,0x10,0x16,0x06,0x09,0x0b,0xbf,0x01,0x0d,0x00,0x06,0x01,0x0b,0x00,0x18,0x00,0x16,0x01,0x0d,0x00,0x1b,0x01,0x09,0xb6,0x01,0x1d,0x11,0x11,0x14,0x18,0x0d,0xb8,0x01,0x0c,0xb2,0x03,0x03,0x1d,0xb8, +0x01,0x0c,0xb4,0x14,0x14,0x20,0x09,0x18,0x2f,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35, +0x36,0x33,0x32,0x15,0x14,0x01,0x64,0x67,0x81,0x6d,0x4d,0x40,0x3e,0x49,0x71,0x8c,0x30,0x32,0x9e,0x87,0x55,0x3e,0x49,0x59,0xfb,0x03,0xa0,0x04,0x1f,0x5a,0x49,0x51,0x17,0x68,0x1c,0x41,0x47,0x63,0x4c,0x49,0x1c,0x64,0x1b,0xa4,0x6f,0x00,0x00,0x02,0x00,0x3e,0x01,0x94,0x02,0x60,0x04,0xcf,0x00,0x18,0x00,0x23,0x00,0x4e,0xb3,0x05, +0x05,0x0d,0x07,0xb8,0x01,0x0d,0xb5,0x02,0x02,0x15,0x0a,0x13,0x21,0x41,0x0b,0x01,0x0d,0x00,0x0d,0x01,0x0b,0x00,0x18,0x01,0x08,0x00,0x1d,0x01,0x0d,0x00,0x13,0x01,0x09,0x00,0x18,0x01,0x0c,0xb5,0x16,0x0a,0x19,0x19,0x25,0x1f,0xb8,0x01,0x0c,0xb1,0x05,0x10,0x2f,0xc4,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0xed,0x3f,0x3f, +0xed,0x12,0x39,0x39,0xc4,0x2f,0xed,0x11,0x39,0x2f,0x31,0x30,0x01,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0x36,0x02,0x60,0xfe,0xbe,0x62,0x4a,0x58,0x59,0xbf,0x03,0x42,0x76,0x68,0x81,0x8e,0x6e, +0x70,0x35,0x03,0x7e,0x7e,0x52,0x40,0x90,0x8e,0x42,0x52,0x02,0xbc,0xfe,0xd8,0x22,0x79,0x31,0xbc,0x30,0x61,0x97,0x80,0x84,0xab,0x54,0x43,0xfe,0xda,0x2e,0x46,0x5c,0xc2,0xb6,0x5e,0x00,0x00,0x02,0x00,0x58,0x01,0x94,0x00,0xf6,0x04,0xbe,0x00,0x03,0x00,0x0b,0x00,0x22,0xb4,0x01,0x08,0x40,0x04,0x02,0xb8,0x01,0x08,0xb6,0x01,0x00, +0x06,0x0a,0xff,0x3a,0x00,0xb9,0x01,0x0c,0x00,0x01,0x2f,0xe1,0x2b,0x00,0x18,0x3f,0xd4,0x1a,0xdd,0xce,0x31,0x30,0x13,0x23,0x11,0x33,0x03,0x22,0x35,0x34,0x33,0x32,0x15,0x14,0xe8,0x82,0x82,0x42,0x4e,0x50,0x4e,0x02,0x9a,0x02,0x24,0xfc,0xd6,0x4b,0x4c,0x4c,0x4b,0x00,0x00,0x01,0x00,0x66,0x02,0x9a,0x02,0x56,0x05,0xc4,0x00,0x0c, +0x00,0x2e,0xb5,0x03,0x08,0x0c,0x03,0x05,0x00,0xbc,0x01,0x0a,0x00,0x0b,0x01,0x08,0x00,0x06,0x01,0x07,0xb5,0x0b,0x00,0x0e,0x0c,0x08,0x03,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xe1,0x32,0x32,0x10,0xd6,0xc6,0x00,0x3f,0x3f,0x3f,0x33,0x17,0x39,0x31,0x30,0x01,0x23,0x03,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x37,0x33,0x03,0x02,0x56,0xa0, +0xce,0x02,0x80,0x80,0x02,0xc2,0x9c,0xde,0x02,0x9a,0x01,0x0e,0xfe,0xf2,0x03,0x2a,0xfd,0xfc,0xfe,0xfe,0xfc,0x00,0x00,0x01,0x00,0x66,0x02,0x9a,0x03,0x9a,0x04,0xcf,0x00,0x1d,0x00,0x59,0xb6,0x01,0x09,0x14,0x19,0x04,0x17,0x11,0xba,0x01,0x0a,0x00,0x12,0x01,0x08,0xb2,0x1b,0x04,0x0c,0xbb,0x01,0x0d,0x00,0x40,0x00,0x17,0x01,0x09, +0xb3,0x19,0x08,0x14,0x00,0xb8,0x01,0x0c,0xb7,0x01,0x0e,0x09,0x11,0x09,0x42,0x14,0x10,0xbb,0x01,0x0c,0x00,0x11,0x00,0x08,0x01,0x0c,0xb3,0x09,0x09,0x1f,0x1e,0x11,0x12,0x39,0x2f,0xe1,0x2f,0xe1,0x32,0x2b,0x01,0x10,0xf0,0xe1,0x11,0x12,0x39,0x00,0x18,0x3f,0x1a,0xed,0x39,0x39,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x01,0x23,0x11, +0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x15,0x03,0x9a,0x80,0x68,0x31,0x41,0x80,0x68,0x32,0x40,0x80,0x7e,0x02,0x38,0x72,0x77,0x28,0x3d,0x7c,0xb2,0x02,0x9a,0x01,0x3b,0x8f,0x54,0x3f,0xfe,0xc9,0x01,0x3f,0x8b,0x52,0x45,0xfe,0xcd,0x02, +0x24,0x52,0x63,0x6f,0x6f,0xe3,0x00,0x01,0x00,0x66,0x01,0x98,0x02,0x50,0x04,0xcf,0x00,0x19,0x00,0x40,0xb1,0x05,0x07,0x41,0x0a,0x01,0x0d,0x00,0x02,0x00,0x11,0x01,0x0a,0x00,0x12,0x01,0x08,0x00,0x0c,0x01,0x0d,0x00,0x17,0x01,0x09,0xb3,0x05,0x05,0x10,0x00,0xb8,0x01,0x0c,0xb4,0x09,0x09,0x1b,0x14,0x10,0xb9,0x01,0x0c,0x00,0x11, +0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xed,0x3f,0x3f,0xd4,0xfd,0xc6,0x31,0x30,0x01,0x10,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0xd9,0x2b,0x25,0x22,0x23,0x65,0x6d,0x39,0x45,0x80,0x80,0x02,0x3b,0x79,0xb4,0x02, +0xa6,0xfe,0xf2,0x10,0x68,0x14,0x9e,0x01,0x33,0x97,0x54,0x3f,0xfe,0xc9,0x02,0x24,0x56,0x67,0xe7,0x00,0x00,0x02,0x00,0x3e,0x02,0x89,0x02,0x7f,0x04,0xcf,0x00,0x0b,0x00,0x17,0x00,0x2d,0x41,0x0a,0x00,0x12,0x01,0x0d,0x00,0x00,0x01,0x0b,0x00,0x0c,0x01,0x0d,0x00,0x06,0x01,0x09,0x00,0x09,0x01,0x0c,0xb3,0x15,0x15,0x19,0x0f,0xb9, +0x01,0x0c,0x00,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x58,0x80,0x9a,0xa2,0x84,0x80,0x9b,0xa3,0x7e,0x49,0x57,0x58,0x48,0x49,0x57,0x57,0x02,0x89,0x9e,0x7f,0x87,0xa2, +0x9f,0x7e,0x88,0xa1,0x01,0xdb,0x62,0x56,0x56,0x62,0x62,0x56,0x58,0x60,0x00,0x01,0x00,0x3e,0x02,0x89,0x01,0xec,0x04,0xcf,0x00,0x15,0x00,0x2e,0xb1,0x01,0x03,0x41,0x0a,0x01,0x0d,0x00,0x14,0x01,0x0b,0x00,0x0b,0x00,0x09,0x01,0x0d,0x00,0x0e,0x01,0x09,0x00,0x11,0x01,0x0c,0xb4,0x06,0x06,0x17,0x0b,0x00,0x2f,0x32,0x11,0x39,0x2f, +0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x3e,0x35,0x45,0x52,0x60,0x5a,0x50,0x49,0x39,0x45,0x56,0x7c,0x97,0xa4,0x88,0x50,0x02,0xa2,0x78,0x26,0x62,0x56,0x56,0x62,0x28,0x70,0x23,0x9f,0x80,0x8b,0x9c,0x00, +0x00,0x01,0x00,0x3e,0x03,0xac,0x02,0x7f,0x04,0xcf,0x00,0x0d,0x00,0x26,0xb2,0x01,0x07,0x04,0xbc,0x01,0x0d,0x00,0x0b,0x01,0x09,0x00,0x00,0x01,0x0c,0xb3,0x01,0x01,0x0f,0x07,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x32,0x31,0x30,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33, +0x32,0x16,0x02,0x7f,0x81,0x57,0x49,0x49,0x57,0x80,0xa5,0x81,0x82,0x99,0x03,0xac,0x58,0x60,0x62,0x56,0x84,0x9f,0xa1,0x00,0x00,0x01,0x00,0x3e,0x02,0x89,0x02,0x7f,0x03,0xac,0x00,0x0d,0x00,0x26,0xb2,0x00,0x06,0x0a,0xbc,0x01,0x0d,0x00,0x03,0x01,0x0b,0x00,0x00,0x01,0x0c,0xb3,0x0d,0x0d,0x0f,0x07,0xb9,0x01,0x0c,0x00,0x06,0x2f, +0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc4,0x32,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x02,0x7f,0xa5,0x82,0x80,0x9a,0x80,0x58,0x48,0x49,0x57,0x03,0xac,0x84,0x9f,0xa0,0x83,0x56,0x62,0x62,0x56,0x00,0x00,0x02,0x00,0x66,0x01,0xa4,0x02,0x89,0x04,0xcf,0x00,0x10,0x00,0x1b,0x00,0x3e, +0xb4,0x03,0x06,0x00,0x09,0x15,0x41,0x0b,0x01,0x0d,0x00,0x0f,0x01,0x0b,0x00,0x04,0x01,0x08,0x00,0x19,0x01,0x0d,0x00,0x09,0x01,0x09,0x00,0x0c,0x01,0x0c,0xb5,0x17,0x17,0x1d,0x11,0x01,0x05,0xb9,0x01,0x0c,0x00,0x04,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0xc4,0x31,0x30,0x13,0x23, +0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x06,0xe8,0x02,0x80,0x80,0x02,0x42,0x76,0x68,0x81,0x8f,0x6c,0x72,0x36,0x51,0x40,0x91,0x8d,0x43,0x52,0x02,0xdd,0xfe,0xc7,0x03,0x1a,0x50,0x61,0x97,0x80,0x84,0xab,0x01,0x37,0x2e,0x46,0x5c,0xc2,0xb6, +0x60,0x00,0x00,0x01,0x00,0x0a,0x02,0x8e,0x01,0x68,0x05,0x62,0x00,0x13,0x00,0x45,0xb1,0x13,0x11,0xba,0x01,0x0d,0x00,0x02,0x01,0x0b,0xb4,0x0a,0x0b,0x0e,0x0b,0x05,0xba,0x01,0x0d,0x00,0x08,0x01,0x08,0xb7,0x0d,0x13,0x13,0x15,0x05,0x0e,0x05,0x0b,0xb8,0x01,0x0c,0x40,0x09,0x07,0x10,0x08,0x20,0x08,0x30,0x08,0x03,0x08,0x2f,0x5d, +0xcd,0xe1,0x39,0x39,0x11,0x12,0x39,0x2f,0xc4,0x00,0x3f,0xed,0x39,0x39,0x10,0xcd,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x35,0x11,0x23,0x35,0x33,0x35,0x37,0x15,0x33,0x15,0x23,0x15,0x14,0x33,0x32,0x37,0x01,0x68,0x22,0x40,0xa0,0x5c,0x5c,0x80,0x82,0x82,0x49,0x1e,0x1b,0x02,0xa0,0x12,0xbe,0x01,0x08,0x6a,0x80,0x24,0xa4, +0x6a,0xfe,0x5e,0x10,0x00,0x01,0x00,0x5c,0x02,0x89,0x02,0x46,0x04,0xbe,0x00,0x11,0x00,0x36,0xb3,0x11,0x02,0x08,0x0c,0x41,0x0a,0x01,0x0d,0x00,0x05,0x01,0x0b,0x00,0x00,0x01,0x0a,0x00,0x08,0x01,0x08,0x00,0x02,0x00,0x11,0x01,0x0c,0xb3,0x10,0x10,0x13,0x09,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0xc4,0x00,0x3f, +0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x02,0x46,0x80,0x02,0x3b,0x79,0xb4,0x7f,0x6d,0x39,0x45,0x80,0x02,0x9a,0x56,0x67,0xe7,0x01,0x4e,0xfe,0xce,0x98,0x53,0x40,0x01,0x37,0x00,0x01,0x00,0x3e,0x02,0xb8,0x02,0x72,0x04,0xa2,0x00,0x12, +0x00,0x2e,0x40,0x15,0x00,0x0e,0x40,0x01,0x09,0x0d,0x08,0x09,0x08,0x42,0x08,0x09,0x0c,0x00,0x09,0x0a,0x0f,0x04,0x04,0x14,0x09,0x2f,0x12,0x39,0x2f,0xdd,0xc4,0x12,0x39,0x39,0x00,0x2f,0xcd,0x2b,0x00,0x18,0x10,0xc4,0x10,0xd6,0x1a,0xed,0x31,0x30,0x13,0x35,0x21,0x32,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x15,0x23,0x15,0x16,0x15, +0x14,0x06,0x23,0x3e,0x01,0x32,0x98,0x54,0x40,0xfe,0xca,0x02,0x24,0x4c,0x5c,0x7c,0x6a,0x02,0xb8,0x80,0x6c,0x38,0x47,0x7f,0x7f,0x02,0x3f,0x69,0x58,0x69,0x00,0x01,0x00,0x60,0x02,0x89,0x03,0x94,0x04,0xbe,0x00,0x1d,0x00,0x67,0x40,0x09,0x02,0x07,0x14,0x1d,0x04,0x0c,0x18,0x05,0x10,0xbf,0x01,0x0d,0x00,0x40,0x00,0x09,0x01,0x0b, +0x00,0x00,0x01,0x0a,0x00,0x0c,0x01,0x08,0xb4,0x07,0x14,0x02,0x02,0x1d,0xb8,0x01,0x0c,0xb6,0x1c,0x0e,0x14,0x0c,0x14,0x42,0x0d,0xb8,0x01,0x0c,0xb6,0x00,0x0c,0x01,0x0b,0x03,0x0c,0x15,0xb8,0x01,0x0c,0xb3,0x14,0x1e,0x1f,0x14,0xb8,0x01,0x0c,0xb1,0x08,0x30,0x2b,0x01,0x10,0xe1,0x18,0x2f,0x5f,0x5e,0x5d,0xe1,0x2b,0x01,0x10,0xf0, +0xe1,0xc1,0x18,0x2f,0x12,0x39,0x00,0x3f,0x3f,0x3f,0x1a,0xed,0x39,0x39,0x12,0x17,0x39,0x31,0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0x94,0x7e,0x02,0x38,0x72,0x77,0x28,0x3d,0x7c,0xb2,0x7f,0x69,0x31,0x41, +0x80,0x68,0x32,0x40,0x80,0x02,0x9a,0x52,0x63,0x6f,0x6f,0xe3,0x01,0x52,0xfe,0xc5,0x8f,0x54,0x3f,0x01,0x37,0xfe,0xc1,0x8b,0x52,0x46,0x01,0x32,0x00,0x01,0x00,0x0a,0x02,0x9a,0x02,0x35,0x04,0xbe,0x00,0x0b,0x00,0x1b,0xb3,0x07,0x00,0x03,0x02,0xba,0x01,0x0a,0x00,0x03,0x01,0x08,0xb2,0x00,0x0d,0x03,0x2f,0x10,0xc6,0x00,0x3f,0x3f, +0x12,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x02,0x35,0xc9,0x9b,0xc7,0x8a,0x78,0x0f,0x03,0x05,0x04,0x11,0x78,0x04,0xbe,0xfd,0xdc,0x02,0x24,0xfe,0x8e,0x2f,0x25,0x22,0x32,0x01,0x72,0x00,0x01,0x00,0x14,0x02,0x89,0x02,0x79,0x04,0xcf,0x00,0x1b,0x00,0x4a,0x40,0x0b,0x17,0x0d,0x0b,0x04, +0x06,0x12,0x1b,0x09,0x19,0x02,0x0b,0xbd,0x01,0x0d,0x00,0x40,0x00,0x06,0x01,0x0b,0x00,0x12,0x01,0x09,0x40,0x10,0x04,0x0d,0x17,0x03,0x0f,0x1b,0x0e,0x15,0x15,0x1d,0x0f,0x08,0x0f,0x42,0x08,0x0f,0x2f,0x2f,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0xe2,0x12,0x17,0x39,0x00,0x3f,0x3f,0x1a,0xfd,0x39,0x39,0xd6,0xc4,0x11,0x12,0x39,0x12, +0x39,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x33,0x32,0x37,0x02,0x79,0x3c,0x49,0x60,0x4e,0x4f,0x5b,0x46,0x42,0x43,0x3f,0x36,0x28,0x77,0x6e,0x5d,0x5c,0x6c,0x78,0x2a,0x36,0x41,0x40,0x02,0xb4,0x2b,0x3b,0x3b,0x2b,0x79,0x39, +0x20,0x6b,0x85,0x57,0x74,0x71,0x56,0x84,0x6e,0x22,0x37,0x00,0x00,0x02,0x00,0x60,0x01,0xa4,0x02,0x74,0x05,0xc4,0x00,0x12,0x00,0x25,0x00,0x63,0xb3,0x02,0x11,0x0c,0x13,0xb8,0x01,0x0d,0xb4,0x40,0x14,0x06,0x11,0x14,0xb8,0x01,0x0d,0xb3,0x1e,0x30,0x1d,0x1f,0xbe,0x01,0x0d,0x00,0x11,0x01,0x0b,0x00,0x1a,0x01,0x0d,0x00,0x06,0x01, +0x07,0xb6,0x0c,0x0e,0x13,0x13,0x22,0x1d,0x18,0xb8,0x01,0x0c,0xb2,0x09,0x09,0x0e,0xb8,0x01,0x0c,0xb4,0x22,0x22,0x27,0x1d,0x01,0xb9,0x01,0x0c,0x00,0x02,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xed,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x10,0xc4,0x31,0x30,0x13, +0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x13,0x35,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x15,0x11,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0xdf,0x7f,0x8c,0x74,0x70,0x86,0x7f,0x9d,0x93,0x79,0x4a,0x09,0x1d,0x42,0x51,0x79,0x7f,0x3b,0x46,0x42,0x52,0x60,0x50,0x02,0xa6,0xfe,0xfe, +0x03,0x14,0x7a,0x92,0x7c,0x5c,0x81,0x2f,0x04,0x2e,0x93,0x67,0x87,0x01,0x77,0x62,0x46,0x3a,0x7c,0xa2,0xfe,0x5a,0x22,0x46,0x3a,0x40,0x4c,0x00,0x00,0x01,0xff,0xec,0x01,0xa4,0x02,0x23,0x04,0xbe,0x00,0x13,0x00,0x36,0xb4,0x03,0x0a,0x05,0x07,0x00,0xbb,0x01,0x0a,0x00,0x10,0x00,0x07,0x01,0x08,0xb6,0x0a,0x00,0x05,0x07,0x07,0x00, +0x0d,0xbc,0x01,0x0c,0x00,0x12,0x00,0x00,0x01,0x0c,0x00,0x05,0x2f,0xe1,0xd4,0xe1,0x10,0xc1,0x2f,0x11,0x12,0x39,0x00,0x3f,0x33,0x3f,0x11,0x39,0x39,0xcd,0x31,0x30,0x01,0x14,0x07,0x23,0x36,0x35,0x02,0x03,0x33,0x16,0x17,0x33,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x01,0x50,0x02,0x88,0x0b,0x48,0x9d,0x91,0x75,0x39,0x04,0x75, +0x06,0x80,0x05,0x02,0x83,0xb3,0x2c,0x6e,0x94,0x01,0x06,0x01,0x12,0xda,0xc8,0xa5,0xb1,0x2a,0x22,0x20,0x21,0xe8,0x00,0x02,0x00,0x3e,0x02,0x89,0x02,0x7f,0x05,0xc4,0x00,0x17,0x00,0x21,0x00,0x4c,0x40,0x09,0x00,0x02,0x0d,0x10,0x18,0x1f,0x06,0x05,0x1d,0xbf,0x01,0x0d,0x00,0x13,0x01,0x0b,0x00,0x08,0x00,0x0a,0x01,0x0d,0x00,0x05, +0x01,0x07,0xb3,0x08,0x08,0x10,0x0c,0xb8,0x01,0x0c,0xb2,0x02,0x16,0x10,0xb8,0x01,0x0c,0xb3,0x1f,0x1f,0x23,0x1a,0xb9,0x01,0x0c,0x00,0x16,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x10,0xd4,0xe1,0x10,0xc0,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x12,0x17,0x39,0x31,0x30,0x13,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x14, +0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x25,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0xee,0x4a,0x72,0x63,0x5f,0x60,0x5e,0x5b,0x5a,0x8f,0xcb,0xa2,0x83,0x81,0x9b,0x01,0x08,0x88,0x56,0x4a,0xa0,0x48,0x04,0xa0,0x37,0x4e,0x45,0x5a,0x2a,0x75,0x39,0x3b,0x25,0x58,0x7c,0x9c,0x72,0x93,0x8f,0x6f,0xa0,0x3b,0x54,0x80, +0x48,0x52,0x9a,0x36,0x5d,0x00,0x00,0x02,0x00,0x3e,0x01,0xa4,0x03,0x06,0x04,0xcf,0x00,0x15,0x00,0x1d,0x00,0x61,0xb3,0x02,0x1c,0x00,0x0d,0x41,0x0a,0x01,0x0d,0x00,0x03,0x01,0x0b,0x00,0x09,0x01,0x08,0x00,0x19,0x01,0x0d,0x00,0x40,0x00,0x10,0x01,0x09,0xb4,0x09,0x09,0x0d,0x0b,0x16,0xb8,0x01,0x0c,0xb6,0x13,0x0e,0x01,0x06,0x02, +0x42,0x0b,0xb8,0x01,0x0c,0xb3,0x06,0x1c,0x0d,0x01,0xb8,0x01,0x0c,0xb3,0x02,0x1e,0x1f,0x02,0xb8,0x01,0x0c,0xb1,0x08,0x30,0x2b,0x01,0x10,0xe1,0x39,0x39,0x18,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0xe1,0x11,0x12,0x39,0x18,0x2f,0x00,0x3f,0x1a,0xed,0x3f,0x3f,0xed,0x39,0x39,0xcd,0x31,0x30,0x01,0x15,0x23,0x35,0x26,0x26,0x35,0x34,0x37, +0x33,0x06,0x15,0x14,0x17,0x11,0x34,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x34,0x26,0x23,0x22,0x15,0x11,0x36,0x01,0xe2,0x80,0x8a,0x9a,0x56,0x86,0x5e,0xa6,0xba,0x68,0x82,0x9e,0x1f,0x3e,0x2f,0x38,0xa5,0x02,0x89,0xe5,0xe5,0x05,0x9c,0x86,0x8a,0x84,0x78,0x90,0xbc,0x06,0x01,0x24,0xb7,0x9b,0x82,0x84,0x9e,0x01,0x1e,0x54,0x62,0x48, +0xfe,0xd8,0x08,0x00,0x00,0x01,0xff,0xf6,0x01,0x94,0x02,0x62,0x04,0xcf,0x00,0x1c,0x00,0x3c,0x40,0x0b,0x06,0x09,0x14,0x17,0x04,0x08,0x16,0x0e,0x0c,0x1c,0x1a,0xb8,0x01,0x0d,0xb3,0x02,0x08,0x11,0x16,0xbc,0x01,0x08,0x00,0x0c,0x01,0x0d,0x00,0x11,0x01,0x09,0xb4,0x16,0x00,0x1e,0x0e,0x08,0x2f,0xc6,0x10,0xd4,0xc4,0x00,0x3f,0xed, +0x3f,0x10,0xd4,0xd4,0xfd,0xc6,0x10,0xc6,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x27,0x27,0x03,0x23,0x13,0x27,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x17,0x37,0x33,0x03,0x17,0x16,0x33,0x32,0x37,0x02,0x62,0x20,0x21,0x41,0x4c,0x28,0x47,0xa0,0x8f,0xf0,0x4e,0x29,0x2b,0x13,0x1b,0x1c,0x28,0x6a,0x34,0x3d, +0x7d,0x8c,0xca,0x67,0x2f,0x2e,0x17,0x13,0x01,0x9e,0x0a,0x44,0x5b,0xa8,0xfe,0xc9,0x01,0xb4,0xb0,0x5c,0x0a,0x6c,0x09,0x7b,0x92,0xfc,0xfe,0x8e,0xe6,0x68,0x08,0x00,0xff,0xff,0x00,0x58,0xff,0x42,0x00,0xf6,0x02,0x6c,0x00,0x07,0x07,0xce,0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x66,0xff,0x42,0x01,0xa8,0x01,0x70,0x00,0x07,0x06,0x79, +0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x5c,0xff,0x31,0x02,0x46,0x01,0x66,0x00,0x07,0x07,0xba,0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x0a,0xff,0x42,0x02,0x35,0x01,0x66,0x00,0x07,0x07,0xbd,0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x60,0xfe,0x4c,0x02,0x74,0x02,0x6c,0x00,0x07,0x07,0xbf,0x00,0x00,0xfc,0xa8,0xff,0xff,0xff,0xec,0xfe,0x4c, +0x02,0x23,0x01,0x66,0x00,0x07,0x07,0xc0,0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x66,0xfe,0x4c,0x02,0x89,0x01,0x77,0x00,0x07,0x07,0xcf,0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x3e,0xfe,0x4c,0x03,0x06,0x01,0x77,0x00,0x07,0x07,0xc2,0x00,0x00,0xfc,0xa8,0xff,0xff,0xff,0xf6,0xfe,0x3c,0x02,0x62,0x01,0x77,0x00,0x07,0x07,0xc3,0x00,0x00, +0xfc,0xa8,0x00,0x01,0x00,0xfc,0x04,0xc2,0x03,0xc4,0x05,0xf2,0x00,0x0c,0x00,0x16,0x40,0x09,0x00,0x07,0x09,0xf2,0x03,0x00,0x0c,0x07,0x06,0x2f,0xcd,0xd4,0xcd,0x00,0x2f,0xfd,0xd6,0xc4,0x31,0x30,0x01,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x03,0xc4,0x0f,0xc5,0x94,0x98,0xbf,0x09,0xa2,0x0e,0xb2,0x50,0x68, +0x0c,0x05,0xf2,0x8d,0xa3,0xa3,0x8d,0xbc,0x63,0x59,0x00,0x02,0x00,0x58,0x02,0x9a,0x00,0xf6,0x05,0xc4,0x00,0x07,0x00,0x0b,0x00,0x25,0xb3,0x04,0x00,0x40,0x0a,0xba,0x01,0x08,0x00,0x09,0x01,0x0a,0xb6,0x09,0x08,0x02,0x06,0xff,0x3a,0x08,0xb9,0x01,0x0c,0x00,0x09,0x2f,0xe1,0x2b,0x00,0x18,0x3f,0x3f,0x1a,0xde,0xcd,0x31,0x30,0x13, +0x22,0x35,0x34,0x33,0x32,0x15,0x14,0x03,0x23,0x11,0x33,0xa6,0x4e,0x50,0x4e,0x0e,0x82,0x82,0x05,0x2d,0x4c,0x4b,0x4b,0x4c,0xfd,0x6d,0x02,0x24,0x00,0x02,0x00,0x66,0x01,0xa4,0x02,0x89,0x04,0xcf,0x00,0x0e,0x00,0x19,0x00,0x31,0xb1,0x02,0x13,0x41,0x09,0x01,0x0d,0x00,0x0d,0x01,0x0b,0x00,0x17,0x01,0x0d,0x00,0x07,0x01,0x09,0x00, +0x0a,0x01,0x0c,0xb4,0x15,0x15,0x1b,0x0f,0x02,0xb9,0x01,0x0c,0x00,0x03,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0xc6,0x31,0x30,0x13,0x23,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x06,0xe8,0x02,0x80,0x9a,0x7d,0x7a,0x92,0x8f,0x6c, +0x72,0x36,0x51,0x40,0x91,0x91,0x40,0x51,0x02,0xdd,0xfe,0xc7,0x02,0x00,0x8b,0xa0,0x9a,0x7d,0x84,0xab,0x01,0x37,0x2e,0x46,0x5c,0xc2,0xb6,0x60,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x06,0x00,0x33,0x40,0x1c,0x9d,0x02,0x01,0x5b,0x02,0x6b,0x02,0x7b,0x02,0x03,0x49,0x02,0x01,0x38,0x02,0x01,0x05,0x02,0x06,0x08, +0x03,0x04,0x04,0x03,0x03,0x02,0x06,0x00,0x00,0x2f,0x2f,0x33,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x33,0x03,0xc1,0x9c,0xfd,0x71,0x54,0x02,0xe3,0x9c,0x05,0x00,0xfd,0x8f,0x6a,0x02,0xc1,0x00,0x02,0x00,0x8f,0xff,0xe7,0x06,0xb2,0x04,0x19,0x00,0x20, +0x00,0x27,0x00,0xe1,0x40,0x34,0x69,0x23,0x79,0x23,0x02,0xe6,0x1e,0xf6,0x1e,0x02,0x55,0x14,0x65,0x14,0x02,0xaa,0x0f,0x01,0xcf,0x26,0xdf,0x26,0x02,0x9b,0x26,0xfb,0x26,0x02,0x24,0x26,0x34,0x26,0x02,0x05,0x17,0x01,0x7e,0x0f,0x8e,0x0f,0x9e,0x0f,0x03,0x09,0x0f,0x19,0x0f,0x02,0x5b,0x0a,0x01,0x02,0xb8,0xff,0xe8,0x40,0x0e,0x13, +0x16,0x48,0x24,0x02,0x34,0x02,0x44,0x02,0x03,0xe2,0x1b,0x01,0x1b,0xb8,0xff,0xe0,0xb3,0x19,0x1c,0x48,0x1b,0xb8,0xff,0xe0,0x40,0x51,0x0b,0x0e,0x48,0xcb,0x0b,0x01,0x5b,0x0b,0x01,0x1b,0x0b,0x1d,0x0e,0x27,0x95,0xe0,0x01,0xf0,0x01,0x02,0x01,0x01,0x09,0x24,0x95,0x1d,0x10,0x19,0x11,0x0f,0x07,0xec,0x00,0x06,0x10,0x06,0x02,0x06, +0x04,0x95,0x09,0x16,0x15,0x95,0x0e,0x16,0x27,0x01,0x0b,0x03,0x1a,0x84,0x5f,0x19,0x7f,0x19,0x02,0x20,0x19,0xa0,0x19,0x02,0x19,0x19,0x11,0x06,0x40,0x0f,0x12,0x48,0x06,0x21,0x83,0x00,0x29,0x12,0x84,0x00,0x11,0x01,0x11,0x2f,0x5d,0xe1,0x10,0xde,0xe1,0xc6,0x2b,0x12,0x39,0x2f,0x5d,0x5d,0xe1,0x17,0x39,0x00,0x3f,0xed,0x3f,0xfd, +0xd6,0x5d,0xed,0x3f,0xc4,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x11,0x12,0x39,0x39,0x5d,0x5d,0x2b,0x2b,0x5d,0x31,0x30,0x5d,0x2b,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x27,0x06,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33, +0x15,0x36,0x33,0x32,0x12,0x15,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x06,0xb2,0xfd,0x2f,0x05,0xae,0x99,0xac,0x91,0x8a,0xc7,0xfe,0xd9,0x71,0x2a,0xba,0x8d,0xfe,0x7f,0xa4,0xfe,0x7c,0x90,0xa4,0x7d,0xbb,0xc2,0xd7,0xa8,0x02,0x86,0x78,0x71,0xa3,0x15,0x01,0xd7,0xae,0xb6,0x70,0x99,0x63,0xea,0x66,0x84,0x01,0xb5,0x02,0x64,0xfd,0xb6, +0xfe,0xbd,0xb3,0x94,0x02,0x46,0x7b,0x94,0xfe,0xf8,0xe4,0x35,0x91,0x9a,0xa0,0x8b,0x00,0x01,0x00,0x74,0x00,0x00,0x04,0x8b,0x05,0xb4,0x00,0x27,0x00,0x57,0x40,0x2e,0x1d,0x91,0x02,0x02,0x1e,0x00,0x25,0x92,0x40,0x22,0x1e,0x00,0x22,0x92,0x28,0x30,0x21,0x92,0x1e,0x1e,0x0c,0x27,0x92,0x00,0x10,0x13,0x92,0x0c,0x04,0x0f,0x0f,0x1d, +0x22,0x26,0x7e,0x01,0x01,0x07,0x24,0x20,0x00,0x00,0x29,0x18,0x7e,0x07,0x2f,0xe1,0x12,0x39,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0xf1,0x32,0x33,0xc0,0x2f,0x31,0x00,0x3f,0xfd,0xc6,0x2f,0xed,0x12,0x39,0x2f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x21,0x11,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32, +0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x04,0x8b,0xfd,0xb6,0x6b,0xab,0x77,0x40,0x49,0x8a,0xc5,0x7c,0x44,0x7d,0x34,0x39,0x80,0x42,0x55,0x86,0x5b,0x30,0x24,0x49,0x6e,0x4a,0x02,0x33,0xfe,0x6f,0x01,0x74,0xfe,0x8c,0x01,0xa8,0x01,0x7e,0x03,0x54, +0x8d,0xb9,0x69,0x7a,0xce,0x95,0x53,0x19,0x19,0xac,0x28,0x26,0x3f,0x6d,0x93,0x53,0x4c,0x81,0x63,0x3f,0x0b,0x01,0xe8,0x8c,0xfe,0xd4,0x8c,0xfe,0xd0,0x00,0x00,0x03,0x00,0x76,0xff,0xb5,0x04,0x18,0x06,0x3d,0x00,0x2e,0x00,0x36,0x00,0x40,0x00,0x97,0x40,0x1d,0x23,0x1e,0x1b,0x1d,0x20,0x22,0x25,0x04,0x1b,0x0e,0x31,0x3b,0x3e,0x04, +0x3f,0x15,0x01,0x15,0x10,0x92,0x1b,0x13,0x04,0x07,0x0a,0x2d,0x04,0x01,0x0b,0xb8,0xff,0xc0,0x40,0x3c,0x0c,0x0f,0x48,0x0b,0x37,0x0d,0x32,0x3a,0x3f,0x04,0x37,0x05,0x2e,0x37,0x92,0x01,0x32,0x3a,0x3f,0x0d,0x04,0x0b,0x31,0x3b,0x3e,0x0e,0x04,0x16,0x2f,0x2d,0x01,0x04,0x07,0x04,0x0b,0x25,0x22,0x20,0x1d,0x04,0x16,0x28,0x05,0x06, +0x1e,0x03,0x1f,0x00,0x23,0x2e,0x03,0x24,0x28,0x0b,0x16,0x16,0x42,0x2f,0x7d,0x28,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x10,0xd4,0x17,0x32,0xc4,0x17,0x32,0x11,0x12,0x17,0x39,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x12,0x17,0x39,0x31,0x00,0x2f,0xed,0xcd,0x32,0x11,0x17,0x33,0x10,0xc4,0x2b,0x11,0x17,0x33,0x3f,0xfd,0xc6,0x5d,0x17,0x33, +0x11,0x17,0x33,0x10,0xce,0x32,0x30,0x01,0x07,0x32,0x16,0x17,0x37,0x33,0x07,0x16,0x16,0x17,0x15,0x26,0x27,0x01,0x16,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x27,0x07,0x23,0x37,0x26,0x27,0x07,0x23,0x13,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x37,0x37,0x01,0x14,0x17,0x01,0x0e,0x03,0x01,0x22,0x06,0x07,0x01,0x16,0x16, +0x17,0x01,0x26,0x03,0x36,0x2b,0x1a,0x2f,0x16,0x2b,0x73,0x31,0x10,0x20,0x11,0x3c,0x30,0xfe,0xa3,0x42,0x52,0x2f,0x4e,0x49,0x48,0x27,0x26,0x4a,0x50,0x57,0x34,0x5a,0x50,0x17,0x71,0x23,0x2a,0x27,0x33,0x71,0x4d,0x4c,0x54,0x52,0x91,0xc7,0x76,0x2d,0xfe,0x63,0x34,0x01,0x0b,0x48,0x76,0x54,0x2d,0x01,0xdf,0x0a,0x12,0x09,0xfe,0xc4, +0x11,0x25,0x14,0x01,0x52,0x1c,0x06,0x3d,0x8b,0x02,0x02,0x8f,0xa2,0x04,0x0a,0x05,0xa5,0x1b,0x10,0xfb,0x82,0x1c,0x0a,0x14,0x1e,0x14,0x96,0x11,0x1a,0x12,0x09,0x18,0x4b,0x74,0x18,0x1e,0xaa,0x01,0x00,0x5e,0x01,0x00,0x9f,0x9a,0x01,0x03,0xc5,0x7f,0x15,0x95,0xfc,0x7f,0xa6,0x80,0x03,0x71,0x1d,0x6d,0x98,0xbd,0x01,0xfe,0x01,0x01, +0xfb,0xf0,0x16,0x25,0x11,0x04,0x5b,0x03,0x00,0x01,0x00,0x76,0xff,0xe8,0x04,0x18,0x05,0xb2,0x00,0x3e,0x00,0x5e,0x40,0x16,0x38,0x37,0x3b,0x00,0x02,0x95,0x3b,0x35,0x35,0x1f,0x15,0x34,0x07,0x3f,0x0f,0x01,0x0f,0x0a,0x92,0x15,0x13,0x25,0xb8,0xff,0xc0,0x40,0x0c,0x0c,0x0f,0x48,0x25,0x2a,0x92,0x1f,0x04,0x38,0x00,0x37,0x07,0xb8, +0x01,0x2e,0x40,0x0b,0x34,0x34,0x1a,0x00,0x25,0x10,0x10,0x40,0x2f,0x7d,0x1a,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0x12,0x39,0x2f,0xe1,0x32,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x2b,0x3f,0xfd,0xc6,0x5d,0x33,0x33,0x11,0x12,0x39,0x2f,0xd4,0xfd,0xc6,0x11,0x33,0x33,0x31,0x30,0x01,0x26,0x23,0x22,0x07,0x06,0x15,0x11,0x16,0x32,0x33,0x32, +0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x04,0x18,0x27,0x48,0x5f,0x3f,0x3f,0x05,0x0c,0x06,0x2f,0x4e,0x49,0x48,0x27,0x26,0x4a,0x50,0x57,0x34,0x83, +0xdc,0x9f,0x59,0x65,0xb1,0xf0,0x8b,0x2c,0x47,0x40,0x3d,0x21,0x27,0x42,0x40,0x43,0x27,0x69,0xaf,0x80,0x47,0x27,0x48,0x66,0x3f,0x92,0x04,0x20,0x80,0x50,0x1d,0x2b,0x10,0x03,0x1c,0x1e,0x59,0x58,0x9a,0xfe,0x86,0x01,0x0a,0x14,0x1e,0x14,0x96,0x11,0x1a,0x12,0x09,0x66,0xba,0x01,0x08,0xa2,0xac,0x01,0x1b,0xca,0x6f,0x05,0x0a,0x10, +0x0b,0xa5,0x12,0x19,0x10,0x08,0x5b,0xa3,0xe3,0x89,0x63,0xae,0x8c,0x68,0x1e,0x03,0x18,0xbd,0x61,0x6c,0x07,0x06,0x00,0x01,0x00,0xa6,0xff,0x12,0x06,0x54,0x05,0x0c,0x00,0x2e,0x00,0x8c,0x40,0x48,0x10,0x13,0x16,0x03,0x12,0x26,0x2e,0x01,0x15,0x12,0x06,0x20,0x2d,0x2b,0x0f,0x0c,0x95,0x01,0x24,0x23,0x19,0x95,0x01,0x26,0x10,0x21, +0x0f,0x2d,0x16,0x15,0x2e,0x15,0x2d,0x16,0x2e,0x15,0x13,0x10,0x0f,0x01,0x14,0x00,0x01,0x0f,0x10,0x13,0x04,0x14,0x2e,0x00,0x00,0x06,0x14,0x15,0x20,0x2b,0x2b,0x17,0x11,0x84,0x12,0x12,0x20,0x06,0x84,0x05,0x05,0x30,0x23,0x1f,0x84,0x20,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xf1,0x33,0xc1,0x2f,0x10,0xc6,0x32,0x10, +0xc0,0x2f,0x32,0x12,0x00,0x17,0x39,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x31,0x00,0x3f,0x3f,0x33,0xed,0x32,0x32,0x10,0xed,0x32,0x33,0x33,0x2f,0x33,0x33,0xc6,0x10,0xcd,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x07,0x33,0x20,0x11,0x11,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x03, +0x11,0x23,0x35,0x03,0x23,0x01,0x35,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x17,0x36,0x37,0x13,0x05,0x85,0x87,0x04,0x01,0x52,0xa4,0x11,0x32,0x5a,0x48,0x07,0x0d,0x07,0xe1,0xa4,0xf5,0x99,0x01,0x8e,0xe9,0x3f,0x5e,0x3d,0x1e,0xa4,0xa4,0x04,0x6e,0xd0,0x32,0x5d,0x4d,0x38,0x0e,0x3e, +0x5f,0x9f,0x05,0x0c,0xf4,0xfe,0x5f,0xfd,0x89,0x02,0x4c,0x46,0x76,0x56,0x30,0x01,0x01,0xfe,0x69,0xfe,0x0b,0xcc,0xfe,0x46,0x02,0xd0,0x7e,0x01,0x2e,0x39,0x5c,0x75,0x3c,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x1e,0x38,0x4e,0x30,0x73,0x34,0x01,0x21,0x00,0x00,0x05,0x00,0x23,0x00,0x00,0x05,0x0a,0x05,0x9a,0x00,0x1b,0x00,0x1f,0x00,0x23, +0x00,0x29,0x00,0x31,0x00,0x98,0x40,0x5a,0x24,0x25,0x2a,0x2b,0x04,0x15,0x02,0x0f,0x13,0x29,0x03,0x0c,0x1c,0x20,0x03,0x17,0x92,0x18,0x0b,0x1f,0x23,0x03,0x04,0x08,0x2e,0x03,0x1b,0x92,0x2f,0x00,0x01,0x90,0x00,0xa0,0x00,0xc0,0x00,0xd0,0x00,0x04,0x00,0x00,0x02,0x11,0x15,0x06,0x02,0x03,0x12,0x21,0x22,0x2f,0x04,0x2a,0x11,0x29, +0x1c,0x1f,0x04,0x04,0x03,0x24,0x1b,0x17,0x15,0x19,0x01,0x15,0x0c,0x08,0x0a,0x0e,0x25,0x1e,0x13,0x20,0x2a,0x03,0x14,0x03,0x15,0x11,0x06,0x7f,0x10,0x10,0x33,0x14,0x7f,0x15,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x33,0x11,0x33,0x11,0x17,0x33,0x32,0x32,0xc6,0x32,0x33,0x33,0x11,0x33,0x33,0x10,0xc6,0x32,0x11,0x12,0x17,0x39,0x11,0x12, +0x17,0x39,0x31,0x00,0x3f,0x33,0x2f,0x33,0x12,0x39,0x2f,0x5d,0x5d,0xfd,0x17,0x33,0x17,0x32,0xd6,0xed,0x17,0x33,0x17,0x32,0x11,0x12,0x17,0x39,0x31,0x30,0x13,0x33,0x11,0x33,0x13,0x21,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x23,0x01,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x05,0x33,0x35,0x21,0x05,0x21, +0x27,0x23,0x01,0x33,0x26,0x35,0x35,0x23,0x01,0x23,0x16,0x15,0x15,0x33,0x27,0x26,0x23,0x99,0xcb,0xf1,0x01,0x5f,0x97,0x9c,0x9c,0x9c,0x9c,0xc2,0xfe,0xfb,0xfe,0xac,0x97,0x99,0x99,0x99,0x02,0xde,0xd6,0xfe,0xe7,0xfe,0x95,0x01,0x0f,0x44,0xcb,0x02,0x88,0x03,0x07,0x92,0xfe,0x0c,0x05,0x07,0x85,0x60,0x1b,0x03,0xae,0x01,0xec,0xfe, +0x14,0x01,0xec,0xfe,0x14,0x8d,0x88,0x8c,0xfd,0xf3,0x02,0x0d,0xfd,0xf3,0x02,0x0d,0x8c,0x88,0x88,0x88,0x88,0x88,0xfd,0xbc,0x31,0xa0,0x5f,0x02,0xbb,0x2e,0x94,0x58,0xc2,0x37,0x00,0x03,0x00,0xbc,0xff,0xe8,0x06,0x77,0x05,0x9a,0x00,0x16,0x00,0x21,0x00,0x54,0x00,0x84,0x40,0x12,0x2c,0x47,0x51,0x36,0x60,0x3a,0x70,0x3a,0x02,0x3a, +0x3d,0x95,0x36,0x36,0x36,0x07,0x08,0x22,0xb8,0xff,0xc0,0x40,0x33,0x09,0x0e,0x48,0x22,0x25,0x95,0x51,0x16,0x14,0x13,0x18,0x91,0x05,0x05,0x08,0x01,0x07,0x17,0x91,0x08,0x03,0x22,0x31,0x3a,0x4c,0x42,0x7e,0x31,0x31,0x27,0x1e,0x13,0x13,0x0e,0x01,0x00,0x00,0x0e,0x7d,0x1e,0x1e,0x07,0x27,0x7e,0x4c,0x4c,0x56,0x18,0x06,0x7e,0x07, +0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xf1,0xc2,0x2f,0x32,0x10,0xc1,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x10,0xc4,0x10,0xc6,0x31,0x00,0x3f,0xed,0x2f,0x33,0x12,0x39,0x2f,0xed,0x39,0x39,0x3f,0xfd,0xc6,0x2b,0x11,0x12,0x39,0x2f,0x2f,0xfd,0xc6,0x5d,0x11,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x03,0x26,0x23,0x23,0x11,0x23, +0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x16,0x17,0x01,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x01,0x16,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26, +0x27,0x04,0x04,0xc8,0xb1,0x4e,0x8d,0x4c,0xa8,0x01,0x60,0x5e,0x9e,0x72,0x40,0x29,0x4e,0x72,0x4a,0x51,0x42,0xfe,0x3a,0x92,0x3f,0x6b,0x4e,0x2c,0x8f,0x8d,0x02,0x21,0x3e,0x81,0x44,0xb0,0x1d,0x31,0x40,0x23,0x49,0x61,0x3b,0x18,0x2e,0x57,0x7d,0x4f,0x39,0x73,0x2d,0x33,0x6e,0x3d,0x24,0x3d,0x2b,0x19,0x17,0x2b,0x3c,0x24,0x42,0x64, +0x42,0x22,0x23,0x51,0x84,0x61,0x45,0x84,0x36,0x01,0xb0,0xb2,0xfd,0x9e,0x05,0x9a,0x2f,0x60,0x8f,0x60,0x4b,0x82,0x67,0x48,0x10,0x04,0x1e,0x8c,0x03,0x20,0xfd,0xf8,0x26,0x47,0x67,0x40,0x73,0x81,0xfb,0xcc,0x2a,0x31,0x6e,0x1f,0x2c,0x1f,0x18,0x0c,0x18,0x35,0x41,0x4d,0x2f,0x35,0x5c,0x46,0x28,0x14,0x12,0xa3,0x1f,0x20,0x0f,0x1c, +0x28,0x19,0x21,0x2a,0x1d,0x16,0x0c,0x16,0x2f,0x3e,0x50,0x37,0x31,0x5e,0x4a,0x2d,0x1d,0x1b,0x00,0x07,0x00,0x14,0x00,0x00,0x05,0xe0,0x05,0x9a,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x33,0x00,0x3b,0x00,0x43,0x01,0x3f,0x40,0xb7,0x1a,0x1d,0x1e,0x01,0x02,0x19,0x02,0x17,0x26,0x25,0x3a,0x39,0x18,0x39,0x3b,0x24,0x27,0x16, +0x15,0x34,0x15,0x04,0x29,0x2a,0x41,0x42,0x03,0x42,0x40,0x2b,0x28,0x05,0x06,0x3f,0x06,0x13,0x22,0x21,0x32,0x31,0x14,0x31,0x12,0x23,0x20,0x33,0x2c,0x11,0x2c,0x0f,0x0c,0x0b,0x08,0x07,0x10,0x07,0x2e,0x2f,0x36,0x37,0x04,0x07,0x10,0x01,0x05,0x33,0x3b,0x04,0x1e,0x20,0x24,0x28,0x04,0x09,0x92,0x0a,0x1d,0x23,0x27,0x2b,0x04,0x12, +0x16,0x1a,0x40,0x41,0x05,0x0d,0x92,0x0e,0x0e,0x10,0x03,0x07,0x18,0x14,0x10,0x03,0x04,0x2a,0x41,0x03,0x3c,0x03,0x3b,0x24,0x27,0x16,0x04,0x15,0x37,0x3a,0x25,0x26,0x17,0x04,0x18,0x36,0x01,0x1e,0x1d,0x1a,0x04,0x19,0x02,0x05,0x28,0x2b,0x40,0x04,0x3d,0x06,0x32,0x21,0x22,0x13,0x04,0x14,0x2f,0x12,0x23,0x20,0x33,0x04,0x11,0x2e, +0x08,0x0c,0x0f,0x03,0x10,0x07,0x15,0x14,0x06,0x1c,0x00,0x02,0x0d,0x09,0x07,0x11,0x10,0x07,0x18,0x19,0x03,0x36,0x37,0x19,0x04,0x02,0x02,0x45,0x07,0x11,0x10,0x06,0x2e,0x2f,0x10,0x04,0x07,0x2f,0x17,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x17,0x33,0x2f,0x33,0x11,0x33,0x33,0x10,0xc6,0x32,0x10,0xc6,0x32,0x10,0xcd,0x32,0x11,0x12, +0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x31,0x00,0x3f,0x33,0x33,0x2f,0x33,0x12,0x39,0x2f,0xfd,0x17,0x33,0x17,0x32,0xd6,0xed,0x17,0x33,0x17,0x32,0x11,0x12,0x17,0x39,0x30,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x10, +0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x31,0x30,0x01,0x21,0x03,0x23,0x03,0x23,0x03,0x23,0x03,0x21,0x35,0x33,0x27,0x23,0x35,0x33,0x03,0x33,0x13,0x21,0x13, +0x33,0x13,0x21,0x13,0x33,0x03,0x33,0x15,0x23,0x07,0x33,0x21,0x33,0x37,0x23,0x05,0x33,0x37,0x23,0x05,0x33,0x27,0x23,0x03,0x16,0x17,0x33,0x36,0x37,0x37,0x23,0x05,0x16,0x17,0x33,0x36,0x37,0x37,0x23,0x03,0x23,0x06,0x07,0x07,0x33,0x27,0x26,0x05,0xe0,0xfe,0xf3,0x63,0xa2,0x63,0xe7,0x63,0xa1,0x67,0xfe,0xfb,0xe9,0x1a,0xcf,0xb3, +0x5f,0x8f,0x5a,0x01,0x0d,0x5e,0x84,0x59,0x01,0x01,0x57,0x8d,0x5c,0xbe,0xd9,0x19,0xf1,0xfb,0xa5,0xa5,0x1a,0xd8,0x02,0x60,0x9e,0x18,0xcf,0xfe,0xed,0xb2,0x19,0x80,0xf7,0x0d,0x03,0x04,0x03,0x11,0x25,0x71,0x02,0x6d,0x0b,0x05,0x02,0x03,0x0f,0x23,0x6c,0xea,0x03,0x04,0x0d,0x14,0x4a,0x13,0x0d,0x02,0x10,0xfd,0xf0,0x02,0x10,0xfd, +0xf0,0x02,0x10,0x8c,0x88,0x8d,0x01,0xe9,0xfe,0x17,0x01,0xe9,0xfe,0x17,0x01,0xe9,0xfe,0x17,0x8d,0x88,0x88,0x88,0x88,0x88,0x88,0xfe,0x2a,0x45,0x4b,0x35,0x5b,0xc2,0xca,0x39,0x4d,0x34,0x56,0xc6,0x02,0x9a,0x4a,0x46,0x69,0x67,0x43,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x03,0xd3,0x04,0x00,0x00,0x0f,0x00,0x1f,0x00,0x4a,0x40,0x23, +0x19,0x01,0xbe,0x0e,0x0e,0x1f,0x0f,0x1e,0xbe,0x06,0x11,0x0f,0x00,0xcd,0x0f,0x0f,0x10,0x18,0xc2,0x19,0x19,0x10,0x06,0xc2,0x2f,0x07,0x3f,0x07,0x02,0x07,0x07,0x21,0x1f,0xcd,0x10,0xb8,0xff,0xc0,0xb3,0x0b,0x10,0x48,0x10,0x2f,0x2b,0xe1,0x12,0x39,0x2f,0x5d,0xe1,0x11,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x31,0x00,0x3f,0x33,0xfd, +0xc6,0x2f,0x33,0x10,0xfd,0xc6,0x31,0x30,0x01,0x11,0x21,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x21,0x11,0x03,0x11,0x21,0x32,0x1e,0x02,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x21,0x11,0x01,0xe0,0x01,0x07,0x31,0x3a,0x81,0x1a,0x38,0x57,0x3d,0xfe,0x75,0xfe,0x01,0x8b,0x3d,0x57,0x38,0x1a,0x81,0x3a,0x31,0xfe,0xf9,0x03, +0x05,0xfd,0x7f,0x40,0x3b,0x03,0x01,0xfc,0xe4,0x2d,0x52,0x3f,0x26,0x03,0x05,0xfc,0xfb,0x04,0x00,0x25,0x3f,0x53,0x2d,0xfd,0xdf,0x02,0x07,0x3a,0x40,0xfc,0x84,0x00,0x00,0x03,0x00,0x60,0xfe,0xd7,0x04,0x98,0x05,0xec,0x00,0x1c,0x00,0x31,0x00,0x35,0x00,0x5b,0x40,0x33,0x33,0x96,0x34,0x05,0x01,0x02,0x2d,0x95,0x05,0x16,0x11,0x23, +0x95,0x0f,0x10,0x1c,0x19,0x14,0x96,0x0f,0x15,0x1f,0x15,0x2f,0x15,0x03,0x15,0x17,0x00,0x11,0x03,0x0a,0x35,0x00,0x34,0x14,0x0a,0x1b,0x19,0x12,0x16,0x1d,0x03,0x01,0x84,0x00,0x00,0x37,0x28,0x83,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x17,0x32,0x33,0xc6,0x10,0xc4,0xc4,0x10,0xc6,0x12,0x39,0x39,0x31,0x00,0x3f,0xd6,0x5d,0xed,0x33, +0x32,0x3f,0xed,0x33,0x3f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x33,0x11,0x21,0x35,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x13,0x21,0x35,0x21,0x04,0x10,0xa4, +0x04,0x72,0xee,0x6c,0xa0,0x69,0x33,0x3b,0x75,0xb0,0x75,0xd0,0x63,0x04,0xfe,0xb5,0x01,0x4b,0xa4,0x88,0x88,0xa4,0x2c,0x4d,0x6a,0x3f,0x56,0x7a,0x4e,0x24,0x23,0x4a,0x73,0x50,0x47,0x73,0x51,0x2b,0x7b,0xfc,0xae,0x03,0x52,0xae,0xc6,0x52,0x8b,0xba,0x69,0x71,0xcc,0x99,0x5a,0xa6,0x01,0x40,0x86,0xb4,0xb4,0x86,0xfd,0x1d,0x97,0x3e, +0x6c,0x50,0x2e,0x43,0x72,0x96,0x53,0x4c,0x8b,0x69,0x3e,0x39,0x60,0x7e,0xfd,0x4e,0x77,0x00,0x00,0x01,0x00,0x2a,0x00,0x00,0x03,0xfd,0x05,0x9a,0x00,0x19,0x00,0x44,0x40,0x22,0x19,0x06,0x16,0x10,0x0a,0x92,0x0b,0x0b,0x0d,0x01,0x08,0x14,0x0d,0x03,0x05,0x10,0x16,0x19,0x04,0x17,0x08,0x01,0x00,0x14,0x17,0x15,0x15,0x1b,0x0a,0x0f, +0x0c,0x07,0x7e,0x08,0x2f,0xe1,0x33,0x32,0xc6,0x12,0x39,0x2f,0xc6,0x33,0xc6,0x32,0x11,0x12,0x17,0x39,0x31,0x00,0x3f,0x33,0x2f,0x33,0x12,0x39,0x2f,0xed,0x33,0x33,0x32,0x32,0x31,0x30,0x21,0x23,0x01,0x26,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x21,0x15,0x21,0x03,0xfd, +0xdb,0xfe,0x6c,0x10,0x0e,0x08,0x04,0xa8,0x92,0x92,0xa8,0x04,0x08,0x16,0x08,0x01,0x96,0xc2,0xfe,0x36,0x01,0x70,0xfe,0x97,0x02,0x54,0x1a,0x1b,0x0e,0xfd,0x69,0x02,0x9e,0x8d,0x02,0x6f,0xfd,0x8f,0x0e,0x22,0x0c,0x02,0x35,0xfd,0x91,0x8d,0x00,0x01,0x00,0x29,0x00,0x00,0x03,0x6c,0x05,0x9a,0x00,0x17,0x00,0x73,0x40,0x3b,0x08,0x05, +0x09,0x04,0x0b,0x02,0x0a,0x03,0x0c,0x01,0x0d,0x00,0x16,0x0f,0x17,0x0e,0x0d,0x0a,0x09,0x04,0x50,0x03,0x01,0x03,0x00,0x0d,0x00,0x6f,0x17,0x7f,0x17,0x02,0x17,0x17,0x12,0x07,0x15,0x11,0x91,0x12,0x03,0x0a,0x0e,0x11,0x07,0x03,0x17,0x16,0x02,0x06,0x0f,0x0b,0x07,0x14,0x14,0x19,0x06,0x7e,0x07,0x2f,0xe1,0x12,0x39,0x2f,0x11,0x33, +0x33,0x11,0x33,0x33,0xc6,0x32,0x10,0xd4,0xc6,0x32,0x31,0x00,0x3f,0xed,0x32,0x2f,0x12,0x39,0x2f,0x5d,0xcd,0xcd,0x10,0xd6,0x5d,0xcd,0xdd,0xcd,0x10,0xcd,0x11,0x39,0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x07,0x15,0x37,0x15,0x07,0x11,0x23,0x11,0x07,0x35,0x37,0x35,0x07,0x35,0x37,0x11, +0x21,0x35,0x21,0x15,0x21,0x11,0x37,0x03,0x08,0xea,0xea,0xea,0xa8,0xef,0xef,0xef,0xef,0xfe,0xb3,0x03,0x43,0xfe,0xb2,0xea,0x03,0xb5,0x85,0xcc,0x85,0x8e,0x85,0xfe,0x2a,0x01,0x76,0x87,0x8e,0x87,0xcc,0x87,0x8e,0x87,0x01,0xa4,0x98,0x98,0xfe,0xbc,0x85,0x00,0x00,0x05,0x00,0x2c,0xfe,0x9e,0x08,0xe2,0x06,0x77,0x00,0x3a,0x00,0x53, +0x00,0x6a,0x00,0x7e,0x00,0x8e,0x00,0x84,0x40,0x4c,0x1e,0x3e,0x8c,0x0c,0x04,0x0f,0x19,0x29,0x32,0x24,0x36,0x4f,0xe2,0x2f,0x7a,0xe7,0x59,0x70,0x69,0x70,0x52,0x63,0x7f,0xdb,0x0f,0x19,0x1f,0x19,0x02,0x19,0x89,0x43,0xe2,0x07,0x63,0x07,0x89,0xdb,0x0f,0x0c,0x1e,0x24,0x2f,0x36,0x3e,0x4f,0x8c,0x08,0x00,0x14,0x32,0x33,0x33,0x00, +0x29,0x2a,0x14,0x54,0x68,0x69,0x6b,0x04,0x6a,0x00,0xb1,0x4a,0x4a,0x14,0x75,0xea,0x5e,0x5e,0x90,0x84,0xf3,0x14,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0xc4,0x17,0x32,0x10,0xc4,0x32,0x10,0xc0,0x2f,0x32,0x11,0x12,0x17,0x39,0x31,0x00,0x2f,0xed,0x33,0x33,0x10,0xed,0x10,0xd4,0x5d,0xed,0x10,0xed,0xc6,0x10,0xd4,0xed, +0x2f,0xed,0x33,0x32,0xcd,0xc4,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x36,0x12,0x37,0x36,0x36,0x37,0x0e,0x03,0x07,0x27,0x3e,0x03,0x37,0x36,0x36,0x37,0x17,0x06,0x06,0x07,0x1e,0x03,0x05,0x06,0x02,0x07,0x1e,0x03, +0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x02,0x27,0x0e,0x03,0x01,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x03,0x23,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x05,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x26,0x26,0x06,0x84,0x23,0x4d,0x78, +0xaa,0xdf,0x8c,0x3b,0x66,0x58,0x4c,0x22,0x42,0x94,0x55,0x2e,0x4a,0x34,0x1d,0x23,0x3a,0x4b,0x28,0x26,0x44,0x3d,0x3a,0x1c,0x36,0x58,0x26,0x25,0x5e,0x3c,0x5a,0x9b,0x8a,0x7d,0x3d,0x34,0x45,0x9f,0xb2,0xc2,0x68,0x43,0xa1,0x61,0x37,0x47,0x6c,0x2c,0x8a,0xcf,0x8a,0x45,0xfc,0xcf,0x32,0x74,0x46,0x1e,0x3f,0x48,0x50,0x2e,0x69,0xa8, +0x82,0x5e,0x3d,0x1d,0x3b,0x72,0xa9,0x6d,0x1b,0x31,0x2d,0x2e,0x02,0xf0,0x0f,0x2e,0x51,0x80,0x62,0x3d,0x66,0x4a,0x2a,0x2c,0x55,0x7b,0x4f,0x21,0x3f,0x36,0x2b,0x0d,0x8a,0xa3,0x01,0x64,0x12,0x25,0x39,0x27,0x2c,0x44,0x2f,0x18,0x14,0x25,0x35,0x21,0x35,0x49,0x2d,0x14,0xf9,0xfc,0x15,0x27,0x1e,0x12,0x12,0x1c,0x25,0x12,0x39,0x63, +0x2c,0x32,0x5c,0x03,0x3c,0x59,0xc0,0xb8,0xa4,0x7d,0x49,0x14,0x22,0x2d,0x18,0x3f,0x3c,0x1c,0x33,0x47,0x2b,0x30,0x4a,0x31,0x1a,0x10,0x1c,0x25,0x15,0x5f,0x01,0x0d,0xab,0xa9,0xf9,0x5d,0x0a,0x35,0x49,0x58,0x2d,0x50,0x38,0x69,0x51,0x34,0x03,0x48,0x66,0x26,0x42,0x1f,0x49,0x30,0x0f,0x5f,0x9b,0xd4,0xb1,0xc4,0xfe,0xe4,0x60,0x15, +0x24,0x1b,0x10,0x3f,0x6b,0x8e,0x9c,0xa1,0x4a,0x77,0xbb,0x85,0x4e,0x0a,0x2e,0x71,0x88,0xa3,0xfd,0xba,0x36,0x74,0x60,0x3f,0x25,0x47,0x68,0x43,0x48,0x7f,0x5f,0x36,0x10,0x1f,0x2c,0x1b,0xfe,0x29,0x02,0x7c,0x20,0x3e,0x30,0x1d,0x26,0x3f,0x51,0x2b,0x28,0x43,0x30,0x1a,0x31,0x47,0x52,0x15,0x0e,0x19,0x24,0x16,0x19,0x26,0x1a,0x0e, +0x36,0x35,0x27,0x36,0x00,0x02,0x00,0x30,0xfe,0x52,0x03,0x6a,0x05,0xe2,0x00,0x3c,0x00,0x4e,0x00,0x5d,0x40,0x32,0x01,0x02,0x07,0x1b,0x35,0x3b,0x4a,0x07,0x00,0x11,0x2b,0x25,0x3a,0x00,0x42,0xcb,0x11,0x00,0x4a,0x07,0x3d,0x02,0x35,0x1b,0x16,0x02,0x3a,0x00,0x47,0x48,0x0c,0x0c,0x3d,0x00,0x28,0x28,0x30,0x3d,0xc4,0x16,0x30,0xc0, +0x20,0x20,0x50,0x01,0x3b,0x3c,0x03,0x00,0x2f,0x17,0x32,0x11,0x39,0x2f,0xe1,0xd4,0xe1,0x10,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x10,0xc6,0x32,0x11,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x00,0x3f,0xed,0x2f,0xd6,0xd4,0xcd,0x11,0x12,0x17,0x39,0x31,0x30,0x33,0x13,0x13,0x36,0x37,0x36,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33, +0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x35,0x26,0x36,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x27,0x06,0x06,0x07,0x06,0x07,0x03,0x07,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x3e,0x03,0x30,0xfe,0x4c,0x11,0x13,0x11,0x28,0x16,0x26,0x4a,0x3a,0x23,0x20,0x3b,0x54, +0x34,0x30,0x47,0x2f,0x17,0x10,0x1d,0x26,0x16,0x2f,0x62,0x50,0x32,0x3e,0x6e,0x96,0x57,0x0b,0x0b,0x01,0x08,0x0c,0x25,0x51,0x43,0x2c,0x17,0x29,0x35,0x1e,0x23,0x47,0x1c,0x21,0x1e,0x64,0x62,0x01,0xcd,0x0e,0x19,0x22,0x14,0x11,0x21,0x19,0x0f,0x41,0x32,0x0e,0x19,0x12,0x0b,0x02,0x23,0xfe,0xe4,0x37,0x40,0x37,0x90,0x51,0x4b,0x8e, +0x8b,0x8a,0x47,0x3f,0x67,0x49,0x28,0x23,0x40,0x5b,0x38,0x22,0x69,0x85,0x99,0x52,0x54,0xad,0xbc,0xce,0x74,0x50,0x96,0x74,0x46,0x0c,0x09,0x06,0x10,0x03,0x09,0x3b,0x5a,0x78,0x47,0x56,0x9f,0x92,0x88,0x40,0x7d,0xe7,0x5b,0x6a,0x5d,0x01,0x50,0xf6,0x04,0xe1,0x30,0x41,0x28,0x11,0x13,0x29,0x41,0x2f,0x67,0xbf,0x60,0x3b,0x71,0x66, +0x56,0x00,0x00,0x04,0x00,0x26,0x00,0x00,0x04,0x8e,0x05,0x9a,0x00,0x1f,0x00,0x27,0x00,0x2d,0x00,0x33,0x00,0x81,0x40,0x4a,0x2c,0x12,0x24,0x0f,0x1c,0x92,0x1d,0x40,0x09,0x0d,0x48,0x1d,0x1d,0x03,0x18,0x23,0x0a,0x2f,0x07,0x00,0x92,0x00,0x01,0x10,0x01,0x20,0x01,0x03,0x01,0x01,0x03,0x2d,0x91,0x18,0x18,0x03,0x19,0x2e,0x91,0x03, +0x03,0x07,0x0a,0x0f,0x12,0x04,0x0c,0x22,0x25,0x2b,0x30,0x04,0x20,0x24,0x2d,0x2f,0x03,0x19,0x00,0x1c,0x1a,0x1e,0x02,0x1a,0x10,0x09,0x20,0x7d,0x0c,0x0c,0x35,0x19,0x7e,0x1a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0xc6,0x32,0x11,0x33,0x33,0x10,0xc6,0x32,0x11,0x17,0x33,0x11,0x17,0x33,0x11,0x17,0x33,0x31,0x00,0x3f,0xed,0x2f,0x12,0x39, +0x2f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x33,0x33,0x32,0x32,0x11,0x12,0x39,0x2f,0x2b,0xed,0x33,0x33,0x32,0x32,0x31,0x30,0x13,0x35,0x33,0x11,0x21,0x32,0x16,0x17,0x33,0x15,0x23,0x16,0x15,0x14,0x06,0x07,0x33,0x15,0x23,0x0e,0x03,0x23,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x05,0x34,0x27,0x21,0x15,0x21,0x36,0x36,0x01,0x32,0x36, +0x37,0x21,0x15,0x11,0x15,0x21,0x26,0x26,0x23,0x26,0x96,0x01,0x7c,0xa1,0xdb,0x2e,0xac,0x90,0x03,0x03,0x02,0x92,0xb7,0x1b,0x59,0x73,0x8d,0x50,0xaf,0xa8,0x96,0x96,0x02,0x95,0x03,0xfe,0x16,0x01,0xe8,0x02,0x03,0xfe,0xb9,0x67,0x87,0x26,0xfe,0x46,0x01,0xbe,0x23,0x7f,0x64,0x03,0xfd,0x8d,0x01,0x10,0x8b,0x85,0x8d,0x1b,0x1c,0x15, +0x28,0x14,0x8c,0x42,0x69,0x49,0x27,0xfe,0x32,0x02,0xe9,0x8c,0x88,0x3f,0x21,0x1e,0x88,0x11,0x24,0xfe,0xbc,0x45,0x3e,0x83,0x02,0x9c,0x78,0x39,0x3f,0x00,0x00,0x04,0x00,0xa2,0xff,0xdf,0x06,0x7d,0x05,0xbb,0x00,0x1b,0x00,0x33,0x00,0x42,0x00,0x4f,0x00,0x52,0x40,0x2d,0x34,0x4c,0x0f,0x44,0x1f,0x44,0x02,0x44,0x44,0x37,0x36,0x36, +0x28,0x43,0x4c,0x37,0x37,0x1c,0x28,0xcb,0x00,0xc7,0x1c,0xcb,0x0e,0x04,0x3d,0xbd,0x4a,0x4a,0x2d,0x44,0x35,0xc2,0x36,0x36,0x07,0x2d,0xc9,0x15,0x15,0x51,0x21,0xc9,0x07,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x31,0x00,0x3f,0xed,0xf4,0xed,0x11,0x39,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x2f, +0x5d,0xed,0x31,0x30,0x05,0x22,0x2e,0x04,0x35,0x34,0x3e,0x04,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x04,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x04,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x03,0x11,0x23,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x03,0x90,0x67,0xbf, +0xa7,0x89,0x62,0x36,0x36,0x62,0x8a,0xa6,0xbf,0x67,0x67,0xbe,0xa7,0x89,0x62,0x36,0x36,0x62,0x89,0xa6,0xbf,0x67,0x88,0xf1,0xb4,0x69,0x30,0x56,0x79,0x94,0xa8,0x5b,0x88,0xf1,0xb4,0x68,0x30,0x56,0x79,0x93,0xa9,0xdd,0x83,0x01,0x1d,0x53,0x84,0x5b,0x30,0x29,0x59,0x8c,0x64,0x8a,0x81,0x48,0x5f,0x37,0x16,0x1a,0x3a,0x5a,0x41,0x21, +0x36,0x62,0x89,0xa7,0xbf,0x67,0x67,0xbf,0xa7,0x89,0x62,0x36,0x36,0x62,0x8a,0xa7,0xbf,0x66,0x66,0xbf,0xa7,0x8a,0x62,0x36,0x05,0x84,0x69,0xb4,0xf1,0x88,0x5b,0xa9,0x93,0x78,0x57,0x2f,0x68,0xb4,0xf1,0x88,0x5b,0xa8,0x93,0x79,0x57,0x30,0xfc,0xdb,0xfe,0xba,0x03,0xba,0x28,0x4d,0x71,0x4a,0x3a,0x74,0x5d,0x39,0x02,0x01,0xfe,0x71, +0x23,0x3a,0x49,0x25,0x2d,0x49,0x33,0x1b,0x00,0x03,0x00,0x60,0xff,0xe8,0x07,0x1a,0x05,0xec,0x00,0x1d,0x00,0x2b,0x00,0x39,0x00,0x41,0x40,0x24,0x11,0x00,0x36,0x95,0x16,0x10,0x22,0x95,0x0d,0x10,0x30,0x95,0x1c,0x16,0x28,0x95,0x07,0x16,0x03,0x12,0x2d,0x02,0x84,0x11,0x1e,0x03,0x03,0x0a,0x19,0x83,0x33,0x33,0x3b,0x25,0x83,0x0a, +0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x32,0x32,0x00,0x2f,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0x31,0x30,0x25,0x23,0x15,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x01,0x35,0x34,0x26,0x23,0x22,0x06, +0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x13,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x04,0x14,0x04,0xa4,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5,0xd3,0x60,0x04,0xa4,0x04,0x79,0xe9,0xc5,0xdf,0xfa,0xd9,0xcb,0xfe,0xf0,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0x55,0x51,0xa9,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f, +0x57,0x53,0x94,0x94,0xae,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x02,0x7a,0xfd,0x60,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x01,0xd8,0xa6,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0x63,0x5e,0x01,0x0d,0x9e,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0x64,0x5e,0x00,0x00,0x03,0x00,0x60,0xfe,0x29,0x07,0x1a,0x04,0x18,0x00,0x1d,0x00,0x2b,0x00,0x39, +0x00,0x42,0x40,0x25,0x11,0x0f,0x36,0x95,0x16,0x10,0x22,0x95,0x0d,0x10,0x30,0x95,0x1c,0x16,0x28,0x95,0x07,0x16,0x03,0x1b,0x12,0x2d,0x02,0x84,0x11,0x1e,0x03,0x03,0x0a,0x19,0x83,0x33,0x33,0x3b,0x25,0x83,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x32,0x32,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x3f, +0xed,0x3f,0x31,0x30,0x25,0x23,0x11,0x23,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x35,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x13,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x04,0x14, +0x04,0xa4,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5,0xd3,0x60,0x04,0xa4,0x04,0x79,0xe9,0xc5,0xdf,0xfa,0xd9,0xcb,0xfe,0xf0,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0x55,0x51,0xa9,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0x57,0x53,0x94,0xfd,0x95,0x02,0x85,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x8e,0xb4,0xcc,0xfe,0xed,0xe7,0xfe,0xff, +0xfe,0xcb,0x01,0xd8,0xa6,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0x63,0x5e,0x01,0x0d,0x9e,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0x64,0x5e,0x00,0x01,0x00,0x16,0xff,0x6a,0x04,0xf0,0x06,0x30,0x00,0x03,0x00,0x18,0x40,0x0c,0x00,0x02,0xa0,0x03,0x01,0x0f,0x03,0x3f,0x03,0x02,0x03,0x02,0x00,0x2f,0x2f,0x5d,0x5d,0x01,0x2f,0xcd,0x31,0x30,0x01,0x01, +0x23,0x01,0x04,0xf0,0xfb,0xca,0xa4,0x04,0x36,0x06,0x30,0xf9,0x3a,0x06,0xc6,0x00,0xff,0xff,0x00,0x16,0xff,0x6a,0x05,0x12,0x06,0x30,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x06,0x07,0xe3,0x00,0x00,0xff,0xff,0x00,0x16,0xff,0x6a,0x04,0xf0,0x06,0x30,0x02,0x26,0x00,0x26,0x00,0x00,0x00,0x06,0x07,0xe3,0x00,0x00,0xff,0xff,0x00,0x21, +0xff,0x37,0x04,0x0b,0x04,0xd1,0x02,0x26,0x00,0x46,0x00,0x00,0x00,0x07,0x00,0xbc,0x01,0x59,0xff,0x37,0xff,0xff,0x00,0x12,0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x00,0x07,0x00,0xd9,0xff,0xd4,0xfd,0xf5,0xff,0xff,0xff,0xef,0xff,0x6a,0x04,0xc9,0x06,0x30,0x02,0x26,0x00,0x37,0x00,0x00,0x00,0x06,0x07,0xe3, +0xd9,0x00,0x00,0x01,0x00,0x68,0xfe,0x92,0x03,0x0f,0x04,0x18,0x00,0x3c,0x00,0x57,0x40,0x31,0x3c,0x3a,0x95,0x02,0x0d,0x30,0x17,0x26,0x04,0x1c,0x36,0x1f,0x21,0x95,0x1c,0x10,0x08,0x36,0x20,0x09,0x30,0x09,0x40,0x09,0x03,0x09,0x0b,0x95,0x36,0x16,0x3c,0x3c,0x36,0x09,0x1f,0x1f,0x30,0x26,0x83,0x17,0x17,0x09,0x30,0x83,0x0d,0x0d, +0x3e,0x06,0x09,0x2f,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x11,0x39,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x5d,0x11,0x39,0x3f,0xfd,0xc6,0x11,0x12,0x17,0x39,0x2f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x27,0x26,0x27,0x26,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33, +0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x06,0x06,0x07,0x06,0x07,0x16,0x17,0x16,0x33,0x32,0x37,0x02,0xc7,0x3a,0x5c,0x8c,0x46,0x3d,0x92,0x15,0x13,0x86,0xa1,0xd8,0x25,0x3f,0x55,0x31,0x44,0x67,0x45,0x23,0x42,0x6e,0x8d,0x4b,0x85,0x69,0x71,0x93,0x2e,0x4a,0x35,0x1d,0x1d,0x38,0x50, +0x33,0x44,0x6c,0x4c,0x29,0x43,0x70,0x49,0x40,0x44,0x27,0x16,0x30,0x3c,0x48,0x47,0xfe,0xb7,0x25,0xa4,0x90,0x4b,0x09,0x0b,0xb0,0x63,0x90,0x29,0x39,0x2c,0x23,0x13,0x1b,0x37,0x45,0x58,0x3b,0x48,0x6f,0x4b,0x26,0x2e,0xa6,0x4a,0x15,0x26,0x35,0x20,0x28,0x36,0x2a,0x22,0x14,0x1a,0x37,0x45,0x5a,0x3e,0x4c,0x70,0x4a,0x12,0x0f,0x03, +0x24,0x35,0x71,0x28,0x00,0x01,0x00,0x21,0xfe,0x92,0x03,0x70,0x04,0x00,0x00,0x13,0x00,0x30,0x40,0x19,0x13,0x11,0x95,0x02,0x0c,0x08,0x95,0x0a,0x0f,0x07,0x0d,0x96,0x06,0x13,0x09,0x08,0x09,0x0d,0x13,0x04,0x07,0x0c,0x0c,0x15,0x07,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x00,0x2f,0xed,0x39,0x3f,0xed,0x39,0x2f,0xfd,0xc6, +0x31,0x30,0x01,0x06,0x23,0x22,0x00,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x17,0x16,0x33,0x32,0x37,0x03,0x6a,0x3a,0x5c,0x96,0xfe,0xcf,0xb2,0x3a,0x02,0x5e,0xfd,0xdb,0x03,0x16,0xfd,0x97,0x85,0x81,0x88,0x46,0x48,0x47,0xfe,0xb7,0x25,0x01,0x6e,0x33,0x03,0x41,0x8c,0x2f,0xfc,0xad,0x2b,0x97,0x9e,0x28,0x00,0x00,0x01, +0x00,0x30,0x00,0x00,0x03,0xf6,0x06,0x02,0x00,0x19,0x00,0x29,0x40,0x14,0x13,0x08,0x10,0x01,0x0d,0x0b,0x95,0x10,0x01,0x00,0x84,0x01,0x01,0x0d,0x13,0x83,0x08,0x08,0x1b,0x0d,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0xed,0x00,0x3f,0xfd,0xc6,0x2f,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x11,0x34,0x36,0x37,0x36,0x36,0x35,0x34,0x26, +0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x04,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x02,0x47,0xa3,0x5d,0x88,0x82,0x45,0xc1,0xe1,0xd8,0xa6,0xa1,0xde,0x01,0x29,0x01,0x1e,0x61,0x9e,0x63,0x4d,0x01,0xee,0x87,0xa2,0x6c,0x69,0x6e,0x3e,0x5f,0x80,0x4c,0x97,0x40,0xc8,0x98,0x5b,0x9f,0x7b,0x4d,0x83,0x6f,0x00,0xff,0xff,0x00,0x6c,0x04,0xc2, +0x01,0x31,0x05,0x85,0x02,0x06,0x00,0xdb,0x00,0x00,0x00,0x01,0xff,0x2b,0xfe,0x52,0x00,0xd4,0xff,0xe6,0x00,0x0e,0x00,0x0c,0xb3,0x05,0x0b,0x0c,0x0b,0x2f,0xcd,0x00,0x2f,0xc4,0x31,0x30,0x17,0x07,0x17,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x27,0x33,0x07,0x37,0xd4,0x9e,0x6b,0x4f,0x53,0x52,0x4f,0x6a,0x9d,0x1f,0x94,0x0f,0x61, +0x0e,0x94,0xd7,0x23,0x7b,0x39,0x8c,0x8c,0x39,0x7b,0x23,0x5b,0x40,0xa2,0xa2,0x40,0x00,0x03,0xfe,0xbd,0xfe,0x5c,0x01,0x43,0xff,0xc8,0x00,0x1a,0x00,0x26,0x00,0x32,0x00,0x34,0x40,0x1d,0x0e,0x06,0xc3,0x40,0x27,0x0f,0x1b,0x1f,0x1b,0x2f,0x1b,0x03,0x1b,0x80,0x2d,0x21,0xc3,0x13,0x00,0x30,0xf1,0x11,0x2a,0x1e,0xf1,0x03,0x24,0xf1, +0x2a,0x2f,0xfd,0xd4,0xed,0x10,0xd4,0xed,0x00,0x2f,0x33,0xed,0x32,0x1a,0xdc,0x5d,0x32,0x1a,0xed,0x32,0x31,0x30,0x17,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x27,0x06,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x32,0x17,0x16,0x17,0x36,0x37,0x36,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x23,0x32,0x36, +0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x8f,0x4b,0x69,0x69,0x4b,0x4b,0x35,0x08,0x07,0x07,0x09,0x34,0x4b,0x4b,0x69,0x69,0x96,0x34,0x09,0x07,0x07,0x08,0x35,0x4b,0x2c,0x3f,0x3f,0x2c,0x2c,0x3e,0x3e,0xf2,0x2c,0x3f,0x3f,0x2c,0x2c,0x3e,0x3e,0x38,0x6b,0x4b,0x4b,0x6b,0x36,0x08,0x0a,0x0a,0x08,0x36,0x6b,0x4b,0x4b,0x6b,0x35, +0x09,0x09,0x09,0x09,0x35,0xfe,0xdd,0x40,0x2d,0x2c,0x40,0x40,0x2c,0x2d,0x40,0x40,0x2d,0x2c,0x40,0x40,0x2c,0x2d,0x40,0x00,0x00,0x01,0xff,0x60,0x04,0xba,0x00,0xa0,0x06,0x70,0x00,0x07,0x00,0x16,0x40,0x09,0x05,0x06,0xdb,0x40,0x01,0x03,0x07,0x80,0x03,0x2f,0x1a,0xcd,0x00,0x2f,0xc6,0x1a,0xfd,0xcd,0x31,0x30,0x13,0x23,0x37,0x23, +0x13,0x33,0x07,0x33,0x5a,0x64,0x2d,0xc3,0x46,0x64,0x2d,0xc3,0x04,0xba,0xac,0x01,0x0a,0xac,0xff,0xff,0xfc,0xe6,0xfe,0x52,0x03,0x1a,0xff,0xd0,0x02,0x07,0x07,0x5d,0x00,0x00,0xf8,0x90,0xff,0xff,0x00,0x21,0xfe,0x74,0x04,0x50,0x04,0x18,0x02,0x26,0x01,0xd0,0x00,0x00,0x01,0x07,0x00,0xd9,0xff,0xe3,0xfa,0x31,0x00,0x0f,0x40,0x09, +0x02,0x10,0x1c,0x20,0x1c,0x40,0x1c,0x03,0x1c,0x00,0x11,0x5d,0x35,0x00,0x00,0x01,0x00,0x68,0xff,0xe8,0x04,0x96,0x05,0xb2,0x00,0x15,0x00,0x2c,0x40,0x17,0x0b,0x0a,0x08,0x91,0x0d,0x04,0x15,0x20,0x00,0x01,0x00,0x02,0x91,0x13,0x13,0x10,0x7d,0x05,0x05,0x17,0x0a,0x0a,0x00,0x2f,0x32,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6, +0x5d,0x32,0x3f,0xfd,0xc6,0x32,0x31,0x30,0x37,0x16,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x27,0x68,0x9e,0xd8,0xe9,0x01,0x1f,0xfe,0xcd,0xf7,0xba,0x9a,0x86,0xcc,0x01,0x3e,0x01,0x9e,0xfe,0x90,0xfe,0xce,0xed,0x9f,0xdf,0x60,0x01,0x37,0x01,0x06,0x01,0x14,0x01,0x4a,0x56, +0xb3,0x3b,0xfe,0x58,0xfe,0xa8,0xfe,0xc0,0xfe,0x76,0x54,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x34,0xfd,0xb0,0x00,0x15,0x40,0x0e,0x01,0x1f,0x1c,0x01,0x0f,0x1c,0x5f,0x1c,0xcf,0x1c,0xff,0x1c,0x04,0x1c,0x00,0x11,0x5d,0x71,0x35,0x00,0xff,0xff,0x00,0x68, +0xff,0xe8,0x04,0x96,0x05,0xb2,0x02,0x26,0x07,0xf2,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x23,0xfd,0xb0,0x00,0x15,0x40,0x0e,0x01,0x1f,0x1c,0x01,0x0f,0x1c,0x5f,0x1c,0xcf,0x1c,0xff,0x1c,0x04,0x1c,0x00,0x11,0x5d,0x71,0x35,0x00,0x00,0x01,0x00,0xbc,0xfe,0x80,0x03,0xa4,0x05,0x9a,0x00,0x09,0x00,0x26,0x40,0x13,0x01,0xee,0x08,0x03, +0x02,0x91,0x06,0x05,0x00,0x00,0x0b,0x07,0x03,0x7f,0x06,0x06,0x02,0x7e,0x07,0x2f,0xf1,0xc1,0x2f,0xed,0x11,0x12,0x39,0x2f,0x00,0x2f,0x2f,0xed,0x3f,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x21,0x03,0xa4,0xfd,0xc1,0x99,0x99,0xa9,0x02,0xe8,0x04,0xfe,0xfb,0x98,0xfd,0xea,0x01,0x80,0x05,0x9a,0x00,0x00,0x01, +0x00,0xa6,0xfe,0x8b,0x02,0xdf,0x04,0x00,0x00,0x09,0x00,0x26,0x40,0x13,0x01,0x95,0x08,0x0f,0x02,0x96,0x06,0x05,0x00,0x00,0x0b,0x07,0x03,0xed,0x06,0x06,0x02,0x84,0x07,0x2f,0xf1,0xc1,0x2f,0xed,0x11,0x12,0x39,0x2f,0x00,0x2f,0x2f,0xed,0x3f,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x21,0x02,0xdf,0xfe,0x6b, +0x8c,0x8c,0xa4,0x02,0x39,0x03,0x74,0xfd,0x0d,0xfe,0x0a,0x01,0x75,0x04,0x00,0x00,0xff,0xff,0xff,0xbb,0xff,0xe8,0x04,0x54,0x05,0xec,0x02,0x26,0x00,0x45,0x00,0x00,0x01,0x06,0x00,0xd8,0x98,0xc5,0x00,0x11,0x40,0x0b,0x02,0x10,0x2b,0x20,0x2b,0x70,0x2b,0xaf,0x2b,0x04,0x2b,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8, +0x04,0xff,0x05,0xec,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x00,0xd8,0x02,0x5b,0xff,0xc5,0x00,0x11,0x40,0x0b,0x02,0x10,0x2b,0x20,0x2b,0x70,0x2b,0xaf,0x2b,0x04,0x2b,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0xff,0xf8,0x00,0x00,0x02,0xa0,0x06,0x02,0x02,0x26,0x00,0x49,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xd5,0xfc,0xb7,0x00,0x0a, +0xb4,0x01,0x10,0x22,0x01,0x22,0x00,0x11,0x5d,0x35,0x00,0x03,0xff,0xc0,0x00,0x00,0x07,0x34,0x04,0x18,0x00,0x2c,0x00,0x36,0x00,0x3f,0x00,0xa3,0x40,0x2b,0x15,0x3e,0x0c,0x09,0x11,0x07,0x04,0x09,0x2c,0x28,0x02,0x96,0x23,0x28,0x35,0x37,0x2d,0x09,0x96,0x28,0x3e,0x3e,0x0b,0x02,0x19,0x01,0x0c,0x04,0x1e,0x31,0x19,0x03,0x3a,0x95, +0x20,0x1b,0x10,0x16,0x0f,0x06,0x01,0x0b,0x27,0xb8,0x01,0x03,0x40,0x0f,0x40,0x28,0x28,0x22,0x2d,0x00,0x84,0x01,0x0e,0x06,0x06,0x0b,0x42,0x14,0x10,0xb8,0x01,0x03,0x40,0x1b,0x40,0x11,0x16,0x17,0x3e,0x03,0x0a,0x84,0x0b,0x37,0x1e,0x35,0x03,0x05,0x84,0x06,0x0f,0x06,0x01,0x0c,0x03,0x40,0x41,0x06,0x84,0x30,0x30,0x2b,0x01,0x5f, +0x5e,0x5d,0x10,0xe1,0x17,0x39,0x18,0x2f,0xe1,0x17,0x39,0xd6,0x1a,0xed,0x33,0x2b,0x01,0x18,0x10,0xf4,0xf1,0x39,0x39,0xc0,0x2f,0x1a,0xed,0x00,0x2f,0x33,0x33,0x3f,0x3f,0x33,0xed,0x17,0x32,0x5f,0x5e,0x5d,0x12,0x39,0x2f,0xc4,0xed,0xd4,0x39,0x39,0x11,0x39,0xfd,0x11,0x39,0x11,0x39,0x39,0xc4,0x11,0x39,0x11,0x39,0x31,0x30,0x21, +0x23,0x11,0x26,0x25,0x11,0x23,0x11,0x24,0x27,0x11,0x23,0x11,0x06,0x07,0x06,0x15,0x23,0x36,0x37,0x36,0x37,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x20,0x11,0x15,0x36,0x37,0x36,0x35,0x33,0x06,0x07,0x06,0x07,0x27,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x04,0x25,0x35,0x10,0x23,0x22,0x07,0x06,0x07,0x16,0x06, +0x54,0xa4,0xb3,0xfe,0xd2,0xa4,0xfe,0xd1,0xb2,0xa4,0x21,0x16,0x38,0x77,0x02,0x5a,0x35,0x55,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0x01,0x52,0x1c,0x14,0x39,0x77,0x02,0x5b,0x34,0x4f,0xa4,0x69,0x7c,0x69,0x93,0x01,0x32,0xfe,0x2a,0xe9,0x6c,0x46,0x35,0x0d,0xb4,0x01,0x5a,0x05,0x42,0xfe,0x5f,0x01,0xc6,0x42,0x06,0xfd,0xf2, +0x01,0xfb,0x0d,0x15,0x35,0x50,0x88,0x58,0x34,0x15,0x01,0x83,0xa2,0xba,0x75,0x5f,0xd4,0xfe,0x5f,0x8a,0x0c,0x13,0x36,0x50,0x86,0x59,0x33,0x16,0x6c,0x76,0xaa,0x98,0xc0,0x86,0x2a,0x43,0x68,0x1d,0x01,0x2e,0x5b,0x44,0x64,0x07,0x00,0x02,0xff,0xc0,0x00,0x00,0x04,0xdc,0x04,0x18,0x00,0x25,0x00,0x30,0x00,0x5f,0x40,0x1a,0x0e,0x06, +0x02,0x13,0x25,0x96,0x1c,0x21,0x2f,0x28,0x09,0x96,0x21,0x12,0x12,0x08,0x16,0x2b,0x95,0x18,0x10,0x13,0x0f,0x01,0x08,0x20,0xb8,0x01,0x03,0x40,0x0b,0x21,0x21,0x1c,0x28,0x00,0x84,0x01,0x01,0x32,0x08,0x0d,0xb8,0x01,0x03,0xb7,0x0e,0x13,0x14,0x2f,0x03,0x07,0x84,0x08,0x2f,0xe1,0x17,0x39,0xd6,0xed,0x11,0x12,0x39,0x2f,0xf1,0x39, +0x39,0xc0,0x2f,0xed,0x00,0x2f,0x33,0x3f,0x3f,0xed,0x32,0x12,0x39,0x2f,0xc4,0xed,0xd4,0x39,0x11,0x39,0xfd,0x11,0x39,0x39,0xc4,0x31,0x30,0x21,0x23,0x11,0x26,0x27,0x26,0x27,0x11,0x23,0x11,0x06,0x07,0x06,0x15,0x23,0x36,0x37,0x36,0x37,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x15,0x36,0x37,0x36,0x35,0x33,0x06,0x07,0x06, +0x07,0x25,0x16,0x17,0x35,0x10,0x23,0x22,0x07,0x06,0x07,0x16,0x03,0xf8,0xa4,0x6c,0x9a,0x9a,0x6a,0xa4,0x27,0x1a,0x2e,0x77,0x02,0x50,0x3b,0x59,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0x25,0x19,0x2f,0x77,0x02,0x51,0x3b,0x56,0xfe,0x59,0x9a,0x69,0xee,0x7b,0x51,0x3f,0x0e,0x6c,0x01,0x63,0x14,0x3d,0x3d,0x14,0xfd,0xfb,0x02,0x04,0x0d,0x1e, +0x35,0x50,0x88,0x58,0x41,0x11,0x01,0x7a,0xaa,0xc2,0xd9,0xcd,0x91,0x0e,0x1d,0x36,0x50,0x86,0x59,0x41,0x12,0xd1,0x3d,0x14,0x68,0x01,0x46,0x5d,0x49,0x67,0x14,0x00,0xff,0xff,0xff,0xbb,0xfe,0x29,0x04,0x54,0x04,0x18,0x02,0x26,0x00,0x53,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0x98,0xf9,0xf2,0x00,0x11,0x40,0x0b,0x02,0x20,0x2b,0x5f, +0x2b,0x70,0x2b,0xe0,0x2b,0x04,0x2b,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0xff,0xbb,0x00,0x00,0x02,0xbc,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0x98,0xfc,0xc8,0x00,0x11,0x40,0x0b,0x01,0x10,0x1e,0x20,0x1e,0x70,0x1e,0xaf,0x1e,0x04,0x1e,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0xff,0xa5,0x00,0x00,0x02,0xa2, +0x04,0x18,0x02,0x26,0x05,0x83,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0x82,0xfc,0xc8,0x00,0x11,0x40,0x0b,0x01,0x10,0x1e,0x20,0x1e,0x70,0x1e,0xaf,0x1e,0x04,0x1e,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0x00,0x27,0xff,0xe8,0x03,0xac,0x04,0x18,0x00,0x26,0x00,0x56,0x28,0x00,0x00,0x06,0x08,0x5f,0x00,0x00,0xff,0xff,0xff,0xef,0xff,0xea, +0x02,0x81,0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xcc,0xfc,0xc8,0x00,0x13,0x40,0x0d,0x01,0x10,0x1e,0x20,0x1e,0x70,0x1e,0x8f,0x1e,0xaf,0x1e,0x05,0x1e,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0x00,0x21,0x00,0x00,0x03,0x70,0x04,0x00,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0x5f,0xfc,0xc8, +0x00,0x13,0x40,0x0d,0x01,0x10,0x17,0x20,0x17,0x70,0x17,0x8f,0x17,0xaf,0x17,0x05,0x17,0x00,0x11,0x5d,0x35,0x00,0x00,0x02,0x00,0xa6,0xfe,0x1e,0x04,0x56,0x04,0x18,0x00,0x18,0x00,0x25,0x00,0x44,0x40,0x26,0x0a,0x23,0x95,0x0d,0x0d,0x02,0x1d,0x05,0x40,0x0b,0x0f,0x48,0x05,0x07,0x95,0x02,0x10,0x16,0x1d,0x95,0x18,0x13,0x1c,0x05, +0x05,0x09,0x10,0x83,0x20,0x20,0x27,0x09,0x84,0x19,0x84,0x17,0x84,0x18,0x2f,0xe1,0xe1,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xc4,0xed,0x32,0x3f,0xfd,0xc6,0x2b,0x11,0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x13,0x10,0x21,0x32,0x17,0x15,0x26,0x23,0x20,0x11,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x27, +0x23,0x15,0x23,0x13,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0xa6,0x02,0x1c,0xbe,0x8e,0xad,0x9d,0xfe,0x86,0x04,0x75,0xeb,0xbf,0xe9,0xfb,0xda,0xcf,0x64,0x04,0xa4,0xa4,0xa5,0x7b,0x98,0xac,0xa5,0x88,0x8a,0xad,0x01,0xe4,0x02,0x34,0x48,0xa4,0x60,0xfe,0x6e,0x70,0xc4,0xfe,0xef,0xe6,0xfe,0xfb,0xfe,0xcc,0xa6, +0x8e,0x02,0x31,0x97,0x7a,0xae,0xdd,0xc7,0xab,0xcd,0xc4,0x00,0x00,0x01,0x00,0x7a,0x01,0xf6,0x03,0x37,0x05,0x9a,0x00,0x0b,0x00,0x3b,0x40,0x23,0x03,0x54,0x3f,0x08,0x4f,0x08,0x5f,0x08,0x8f,0x08,0x9f,0x08,0xaf,0x08,0x06,0x08,0x08,0x06,0x01,0x05,0x05,0x0c,0x0a,0x06,0x03,0x00,0x50,0x09,0x01,0x01,0x0d,0x08,0x04,0x50,0x05,0x2f, +0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x00,0x3f,0x33,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x03,0x37,0x6d,0xfe,0x1d,0x6d,0x6d,0x01,0xe3,0x6d,0x01,0xf6,0x01,0xa9,0xfe,0x57,0x03,0xa4,0xfe,0x67,0x01,0x99,0x00,0x00,0x02,0x00,0x60,0xfe,0x21,0x04,0x3f, +0x04,0x00,0x00,0x26,0x00,0x3c,0x00,0x54,0x40,0x30,0x38,0x0e,0x00,0x07,0x00,0x24,0x10,0x24,0x40,0x24,0x50,0x24,0x04,0x24,0x24,0x07,0x2c,0x95,0x1a,0x1b,0x09,0x06,0x95,0x07,0x0f,0x0e,0x84,0x05,0x08,0x38,0x24,0x31,0x00,0x08,0x07,0x07,0x08,0x00,0x03,0x1f,0x15,0x83,0x31,0x31,0x3e,0x27,0x83,0x1f,0x2f,0xe1,0x12,0x39,0x2f,0xe1, +0x11,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x39,0x12,0x39,0xe1,0x00,0x3f,0xed,0x39,0x3f,0xed,0x11,0x39,0x2f,0x5d,0x12,0x39,0x39,0x33,0x31,0x30,0x01,0x34,0x3e,0x02,0x37,0x21,0x35,0x21,0x15,0x0e,0x03,0x15,0x14,0x1e,0x04,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x03,0x14,0x1e,0x02,0x33,0x32, +0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x27,0x0e,0x03,0x01,0xd9,0x1d,0x33,0x45,0x29,0xfe,0x40,0x03,0x2d,0x58,0x90,0x66,0x37,0x42,0x64,0x74,0x64,0x42,0x4f,0x8b,0xbf,0x70,0x5b,0xaa,0x83,0x4e,0x37,0x6a,0x9a,0x63,0x14,0x11,0xd1,0x31,0x54,0x70,0x3f,0x48,0x7f,0x5e,0x36,0x15,0x3a,0x67,0x51,0x21,0x19,0x6e,0x84,0x46,0x16,0x02, +0x73,0x28,0x4d,0x43,0x37,0x12,0x8c,0x47,0x28,0x4f,0x4f,0x53,0x2d,0x32,0x4e,0x4c,0x53,0x6e,0x94,0x66,0x72,0xab,0x74,0x3a,0x37,0x6e,0xa5,0x6e,0x59,0x9b,0x85,0x70,0x2e,0x21,0x41,0xfd,0x87,0x4c,0x71,0x4b,0x25,0x27,0x4e,0x77,0x50,0x34,0x50,0x50,0x5c,0x3f,0x1a,0x17,0x36,0x6e,0x6e,0x6b,0xff,0xff,0x00,0x16,0xff,0xea,0x06,0xae, +0x05,0xec,0x00,0x26,0x00,0x57,0x00,0x00,0x00,0x27,0x00,0x4b,0x02,0xb6,0x00,0x00,0x00,0x06,0x08,0x06,0x00,0x00,0x00,0x01,0x00,0x16,0x00,0x00,0x05,0x18,0x05,0x9a,0x00,0x03,0x00,0x09,0xb2,0x03,0x03,0x02,0x00,0x2f,0x3f,0x31,0x30,0x01,0x01,0x23,0x01,0x05,0x18,0xfb,0xa2,0xa4,0x04,0x5e,0x05,0x9a,0xfa,0x66,0x05,0x9a,0xff,0xff, +0x00,0x4a,0x00,0x00,0x02,0x46,0x04,0x00,0x02,0x26,0x05,0x6f,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0x0c,0xfd,0x17,0x00,0x15,0x40,0x0e,0x01,0x0c,0x2f,0x0c,0x4f,0x0c,0x02,0xaf,0x0c,0xcf,0x0c,0xff,0x0c,0x03,0x00,0x5d,0x71,0x11,0x35,0x00,0xff,0xff,0xff,0xfb,0xff,0xf4,0x02,0x08,0x04,0x00,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07, +0x00,0xd9,0xff,0xbd,0xfd,0x17,0x00,0x15,0x40,0x0e,0x01,0x2f,0x0e,0x4f,0x0e,0x02,0xaf,0x0e,0xcf,0x0e,0xff,0x0e,0x03,0x0e,0x00,0x11,0x5d,0x71,0x35,0x00,0x00,0x03,0x00,0x22,0xfe,0x29,0x04,0xd5,0x04,0x18,0x00,0x19,0x00,0x23,0x00,0x2c,0x00,0x4b,0x40,0x29,0x14,0x21,0x05,0xe2,0x11,0x2a,0x06,0x06,0x1c,0x0a,0x26,0x95,0x0d,0x10, +0x08,0x0f,0x00,0x1c,0x95,0x18,0x16,0x03,0x1b,0x13,0x13,0x11,0x14,0x83,0x2b,0x20,0x20,0x2e,0x07,0x0a,0x2a,0x21,0x04,0x02,0x84,0x05,0x03,0x2f,0xc6,0xe1,0x17,0x39,0x12,0x39,0x2f,0x33,0xf1,0x32,0xc1,0x2f,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x31,0x30,0x25,0x23,0x11,0x23,0x11, +0x23,0x35,0x33,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x16,0x17,0x33,0x15,0x23,0x06,0x07,0x06,0x23,0x22,0x27,0x16,0x33,0x32,0x37,0x36,0x37,0x21,0x15,0x14,0x01,0x26,0x23,0x22,0x07,0x06,0x07,0x21,0x26,0x01,0x4e,0x04,0xa4,0x84,0x84,0xa4,0x04,0x79,0xe9,0xc6,0x6f,0x65,0x09,0x82,0x84,0x0f,0x6b,0x7d,0xd9,0xc7,0x1e,0x53,0x7f, +0x95,0x54,0x45,0x0d,0xfd,0xa1,0x02,0x13,0x4f,0x87,0x8f,0x57,0x51,0x06,0x02,0x61,0x08,0x94,0xfd,0x95,0x03,0xaf,0x6d,0x01,0xbb,0xb4,0xcc,0x8a,0x7d,0xcc,0x6d,0xd1,0x85,0x9a,0xe2,0x58,0x72,0x5c,0x98,0x36,0x7f,0x02,0x0a,0x61,0x64,0x5d,0x88,0x91,0x00,0x02,0x00,0x22,0xff,0xe8,0x04,0x24,0x04,0x00,0x00,0x12,0x00,0x19,0x00,0x3b, +0x40,0x1e,0x01,0x17,0x08,0xe2,0x11,0x0d,0x09,0x09,0x0f,0x0b,0x0f,0x13,0x95,0x04,0x16,0x12,0x12,0x01,0x16,0x10,0x84,0x0f,0x0f,0x1b,0x09,0x17,0x07,0x0c,0x84,0x0b,0x2f,0xe1,0x39,0x39,0xc6,0x12,0x39,0x2f,0xf1,0x39,0x39,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0x33,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x31,0x30,0x01,0x23,0x15,0x10,0x21, +0x20,0x11,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x01,0x32,0x11,0x35,0x21,0x15,0x10,0x04,0x24,0x6e,0xfe,0x64,0xfe,0x76,0x6e,0x6e,0xa1,0x01,0xe3,0xa2,0x6e,0xfd,0xff,0xf1,0xfe,0x1d,0x01,0xd8,0x32,0xfe,0x42,0x01,0xb2,0x3e,0x6d,0x01,0xbb,0xfe,0x45,0x01,0xbb,0xfe,0x45,0xfe,0x2d,0x01,0x2a,0x3c,0x36,0xfe, +0xd0,0x00,0x00,0x02,0x00,0x14,0xff,0xe8,0x04,0xae,0x04,0x00,0x00,0x1e,0x00,0x27,0x00,0x5e,0x40,0x31,0x12,0x26,0x1a,0xe2,0x0f,0x06,0x1d,0x1d,0x21,0x04,0x09,0x0d,0x03,0x01,0x95,0x0a,0x02,0x0f,0x21,0x95,0x16,0x16,0x0d,0x12,0x09,0x00,0x1a,0x04,0x09,0x04,0x12,0x1a,0x11,0x11,0x0c,0x0f,0x12,0x84,0x07,0x25,0x25,0x29,0x06,0x26, +0x84,0x01,0x1d,0x07,0x1a,0x2f,0xcd,0x33,0x33,0xe1,0x32,0x12,0x39,0x2f,0x33,0xf1,0x32,0x32,0xc1,0x2f,0x11,0x12,0x39,0x39,0x2f,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xed,0x3f,0x33,0xed,0x17,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x31,0x30,0x01,0x23,0x35,0x21,0x15,0x06,0x07,0x21,0x26,0x27,0x35,0x21,0x15,0x23,0x16,0x17, +0x33,0x15,0x23,0x06,0x07,0x06,0x23,0x22,0x27,0x26,0x27,0x23,0x35,0x33,0x36,0x13,0x16,0x33,0x32,0x37,0x36,0x37,0x21,0x16,0x01,0x1c,0xbc,0x01,0x7f,0xba,0x1c,0x02,0xb0,0x1c,0xb9,0x01,0x7e,0xb8,0x95,0x1c,0x53,0x4c,0x04,0x86,0x8a,0xf2,0xed,0x88,0x85,0x02,0x4c,0x54,0x1e,0xdc,0x5f,0xa1,0xa6,0x5b,0x54,0x06,0xfd,0x47,0x07,0x03, +0x74,0x8c,0x8e,0x55,0xd8,0xd8,0x55,0x8e,0x8c,0x6f,0xc0,0x6d,0xda,0x89,0x8d,0x8b,0x89,0xdc,0x6d,0xbe,0xfd,0xd8,0x69,0x66,0x5e,0xa2,0x9c,0x00,0xff,0xff,0x00,0xa6,0xfe,0x96,0x04,0x54,0x05,0xec,0x02,0x26,0x00,0x45,0x00,0x00,0x00,0x07,0x08,0x5b,0x03,0x05,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x96,0x04,0xa9,0x05,0xec,0x02,0x26, +0x00,0x47,0x00,0x00,0x01,0x07,0x08,0x5d,0x03,0xd2,0x00,0x00,0x00,0x09,0xb3,0x02,0x2a,0x2a,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x35,0xfe,0x96,0x02,0xa0,0x06,0x02,0x02,0x26,0x00,0x49,0x00,0x00,0x01,0x07,0x08,0x5d,0x01,0x49,0x00,0x00,0x00,0x09,0xb3,0x01,0x21,0x21,0x09,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x60, +0xfe,0x1e,0x05,0xfc,0x04,0x18,0x02,0x26,0x00,0x4a,0x00,0x00,0x00,0x27,0x08,0x5d,0x05,0x25,0x00,0x00,0x01,0x07,0x08,0x60,0x03,0xc2,0xfb,0x74,0x00,0x1b,0x40,0x0c,0x02,0x32,0x32,0x33,0x02,0x26,0x26,0x36,0x03,0x35,0x35,0x18,0x10,0x3c,0x12,0x34,0x10,0x3c,0x12,0x34,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0xa6,0xfe,0x96, +0x03,0xf9,0x05,0xec,0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x08,0x5d,0x03,0x22,0x00,0x00,0x00,0x09,0xb3,0x01,0x0d,0x0d,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x5c,0xfe,0x96,0x01,0xe3,0x05,0xec,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x08,0x5d,0x01,0x0c,0x00,0x00,0x00,0x09,0xb3,0x01,0x10,0x10,0x00,0x10,0x3c,0x12, +0x34,0x00,0xff,0xff,0x00,0xa6,0xfe,0x96,0x06,0xed,0x04,0x18,0x02,0x26,0x00,0x50,0x00,0x00,0x01,0x07,0x08,0x5d,0x06,0x16,0x00,0x00,0x00,0x09,0xb3,0x01,0x2c,0x2c,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0xa6,0xfe,0x96,0x04,0x91,0x04,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x08,0x5d,0x03,0xba,0x00,0x00,0x00,0x09, +0xb3,0x01,0x1f,0x1f,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0xa6,0xfe,0x29,0x04,0x54,0x04,0x18,0x02,0x26,0x00,0x53,0x00,0x00,0x00,0x07,0x08,0x5b,0x03,0x05,0x00,0x00,0xff,0xff,0x00,0x5c,0xfe,0x96,0x02,0xbc,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x08,0x5d,0x01,0x0c,0x00,0x00,0x00,0x09,0xb3,0x01,0x1d,0x1d, +0x06,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x68,0xfe,0x96,0x03,0xad,0x04,0x18,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x27,0x08,0x5d,0x02,0xd6,0x00,0x00,0x01,0x07,0x08,0x60,0x01,0x73,0xfb,0x27,0x00,0x11,0xb7,0x02,0x3d,0x42,0x2d,0x01,0x30,0x30,0x3f,0x10,0x3c,0x12,0x34,0x00,0x10,0xf4,0x34,0x00,0xff,0xff,0xff,0x92,0xfe,0x1e, +0x03,0x4b,0x06,0x02,0x00,0x26,0x05,0x88,0x00,0x00,0x00,0x27,0x08,0x5d,0x02,0x74,0x00,0x00,0x01,0x07,0x08,0x60,0x01,0x11,0xfb,0x74,0x00,0x1b,0x40,0x0c,0x01,0x22,0x22,0x24,0x01,0x17,0x17,0x26,0x02,0x25,0x25,0x04,0x10,0x3c,0x12,0x34,0x10,0x3c,0x12,0x34,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x0e,0xfe,0x96,0x04,0x06, +0x04,0x00,0x02,0x26,0x00,0x59,0x00,0x00,0x00,0x27,0x08,0x5d,0x03,0x2f,0x00,0x00,0x01,0x07,0x08,0x60,0x01,0xcc,0xfb,0x3f,0x00,0x12,0xb7,0x02,0x1a,0x1a,0x02,0x01,0x0c,0x0c,0x1c,0x10,0x3c,0x12,0x34,0x00,0x10,0x3c,0x12,0x34,0xff,0xff,0x00,0x1a,0xfe,0x96,0x03,0x92,0x04,0x00,0x02,0x26,0x00,0x5b,0x00,0x00,0x01,0x07,0x08,0x5d, +0x02,0xbb,0x00,0x00,0x00,0x09,0xb3,0x01,0x14,0x14,0x02,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x21,0xfe,0x96,0x03,0x70,0x04,0x00,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x08,0x5d,0x02,0x93,0x00,0x00,0x00,0x09,0xb3,0x01,0x0a,0x0a,0x03,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x5a,0xfe,0x96,0x04,0x71,0x04,0x18,0x02,0x26, +0x00,0x44,0x00,0x00,0x01,0x07,0x08,0x5e,0x03,0xc1,0x00,0x00,0x00,0x09,0xb3,0x02,0x20,0x20,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x60,0xfe,0x96,0x04,0xfe,0x04,0x18,0x02,0x26,0x05,0x57,0x00,0x00,0x01,0x07,0x08,0x5e,0x04,0x4e,0x00,0x00,0x00,0x09,0xb3,0x02,0x1e,0x1e,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x60, +0xfe,0x96,0x05,0x21,0x06,0x02,0x02,0x26,0x05,0x5d,0x00,0x00,0x01,0x07,0x08,0x5e,0x04,0x4e,0x00,0x00,0x00,0x09,0xb3,0x02,0x27,0x27,0x05,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x60,0xfe,0xb4,0x04,0x84,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x08,0x5e,0x03,0xd4,0x00,0x1e,0x00,0x09,0xb3,0x02,0x1a,0x1a,0x06,0x10, +0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x52,0xfe,0x96,0x04,0x29,0x04,0x19,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x07,0x08,0x5e,0x03,0x79,0x00,0x00,0x00,0x09,0xb3,0x01,0x26,0x26,0x25,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x50,0xfe,0x96,0x03,0x3b,0x04,0x19,0x02,0x26,0x02,0x0e,0x00,0x00,0x01,0x07,0x08,0x5e,0x01,0x27,0x00,0x00, +0x00,0x09,0xb3,0x01,0x2d,0x2d,0x01,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x52,0xff,0xe8,0x05,0xe0,0x04,0x18,0x00,0x26,0x02,0xce,0x00,0x00,0x00,0x27,0x08,0x5e,0x05,0x30,0x01,0xf4,0x01,0x07,0x08,0x60,0x02,0x70,0xfc,0xdd,0x00,0x12,0xb7,0x02,0x1a,0x1a,0x00,0x03,0x29,0x29,0x00,0x00,0x10,0x3c,0x12,0x34,0x10,0x3c,0x12,0x34, +0xff,0xff,0x00,0x90,0xfe,0x96,0x02,0xd1,0x05,0xd9,0x02,0x26,0x00,0x4c,0x00,0x00,0x01,0x07,0x08,0x5e,0x02,0x21,0x00,0x00,0x00,0x09,0xb3,0x02,0x1c,0x1c,0x0f,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x5a,0xfe,0x96,0x03,0x5a,0x04,0x18,0x02,0x26,0x05,0x5a,0x00,0x00,0x01,0x07,0x08,0x5e,0x01,0x33,0x00,0x00,0x00,0x09,0xb3,0x01, +0x21,0x21,0x01,0x10,0x3c,0x12,0x34,0x00,0x00,0x01,0xff,0x92,0xfe,0x1d,0x02,0x68,0x06,0x02,0x00,0x1f,0x00,0x28,0x40,0x15,0x17,0x95,0x09,0x0c,0x95,0x11,0x1c,0x02,0x95,0x1d,0x00,0x00,0x00,0x05,0x84,0x19,0x0e,0x09,0x83,0x15,0x19,0x2f,0xd6,0xe1,0xc4,0x10,0xf1,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x2f,0xed,0x31,0x30,0x01,0x26, +0x23,0x22,0x15,0x11,0x14,0x07,0x06,0x07,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x11,0x16,0x33,0x32,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x02,0x68,0x32,0x3c,0xaa,0x5d,0x4c,0x7d,0x7f,0x3b,0x35,0x34,0x3d,0x7d,0x99,0x32,0x3c,0xac,0xb8,0x8e,0x4c,0x2a,0x05,0x5c,0x1b,0xdf,0xfc,0x71,0xa2,0x60,0x4d,0x0e,0x67,0x9d, +0x1e,0x92,0x17,0xa0,0x8b,0x01,0x06,0x1a,0xdf,0x03,0x8d,0xa4,0xbe,0x12,0xff,0xff,0x00,0x90,0xfe,0x96,0x04,0xd0,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x08,0x5e,0x04,0x20,0x00,0x00,0x00,0x09,0xb3,0x01,0x13,0x13,0x00,0x10,0x3c,0x12,0x34,0x00,0x00,0x01,0xff,0xdd,0xfe,0x21,0x03,0x68,0x04,0x00,0x00,0x23,0x00,0x53, +0x40,0x2f,0x09,0x96,0x11,0x11,0x0e,0x10,0x01,0x01,0x01,0x17,0x95,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x10,0x0d,0x95,0x0e,0x0f,0x1d,0xec,0x21,0x1c,0x11,0x0c,0x0b,0x10,0x0b,0x10,0x0b,0x16,0x0e,0x14,0x83,0x06,0x06,0x25,0x0e,0x1f,0x19,0x83,0x01,0x2f,0xed,0xc4,0x2f,0x12,0x39,0x2f,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x12, +0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x39,0x2f,0x5d,0xed,0xc6,0x5d,0x12,0x39,0x2f,0xed,0x31,0x30,0x07,0x11,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x04,0x23,0x22,0x27,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x23,0xa5,0xb1,0xae,0xdf,0xde,0xce,0x52,0x01, +0x63,0xfd,0xdb,0x03,0x2d,0xfe,0x95,0xbc,0xea,0xfe,0xbc,0xf7,0x5f,0x58,0x7e,0x3c,0x34,0x34,0x3c,0x7f,0x98,0xb7,0x01,0x01,0x68,0x84,0x72,0x81,0x74,0x33,0x01,0x74,0x8c,0x33,0xfe,0x81,0x1a,0xb8,0xa0,0xae,0xd7,0x17,0x25,0x9d,0x1f,0x93,0x17,0x9f,0x00,0x02,0x00,0x66,0x02,0x89,0x02,0x88,0x04,0xcf,0x00,0x10,0x00,0x1b,0x00,0x48, +0xb3,0x0e,0x02,0x05,0x13,0x41,0x0d,0x01,0x0d,0x00,0x0b,0x01,0x0b,0x00,0x10,0x01,0x0a,0x00,0x00,0x01,0x08,0x00,0x17,0x01,0x0d,0x00,0x05,0x01,0x09,0x00,0x08,0x01,0x0c,0x40,0x09,0x11,0x0e,0x01,0x15,0x15,0x1d,0x0f,0x02,0x1b,0xb9,0x01,0x0c,0x00,0x10,0x2f,0xed,0x32,0x32,0x12,0x39,0x2f,0x11,0x33,0x33,0xed,0x00,0x3f,0xed,0x3f, +0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x13,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x23,0x15,0x23,0x36,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x06,0x15,0x15,0x66,0x7e,0x03,0x35,0x70,0x6e,0x8e,0x81,0x68,0x76,0x42,0x03,0x7e,0x7e,0x52,0x42,0x8e,0x90,0x40,0x52,0x04,0xbe,0x43,0x54,0xab,0x84,0x80,0x97, +0x61,0x50,0xb4,0x5e,0xb6,0xc2,0x5c,0x46,0x2e,0x00,0x00,0x01,0x00,0x3e,0x02,0x89,0x01,0xec,0x04,0xd1,0x00,0x15,0x00,0x32,0xb1,0x0b,0x0d,0xba,0x01,0x0d,0x00,0x08,0x01,0x09,0xb6,0xc0,0x15,0xd0,0x15,0x02,0x15,0x13,0xba,0x01,0x0d,0x00,0x02,0x01,0x0b,0xb3,0x0b,0x15,0x17,0x10,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xed,0x10,0xc6,0x32, +0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x01,0xec,0x42,0x5b,0x7b,0x96,0xa2,0x87,0x4b,0x3a,0x3a,0x42,0x50,0x60,0x5b,0x51,0x44,0x3c,0x02,0xb2,0x29,0x9b,0x7c,0x8a,0xa7,0x24,0x6c,0x2c,0x6c,0x58,0x56,0x66, +0x31,0x00,0x00,0x02,0x00,0x3d,0x02,0x48,0x02,0x10,0x04,0xd1,0x00,0x1d,0x00,0x26,0x00,0x5b,0xb5,0x05,0x00,0x0a,0x1c,0x0d,0x0f,0xba,0x01,0x0d,0x00,0x0a,0x01,0x09,0x40,0x0d,0x25,0xbf,0x16,0x01,0x00,0x16,0x10,0x16,0x20,0x16,0x03,0x16,0x20,0xbb,0x01,0x0d,0x00,0x03,0x00,0x1c,0x01,0x0b,0x40,0x0f,0x03,0x05,0x00,0x03,0x03,0x19, +0x07,0x1e,0x14,0x12,0x23,0x19,0x0d,0x28,0x12,0xb9,0x01,0x0c,0x00,0x07,0x2f,0xed,0x10,0xd4,0xd4,0xcd,0x11,0x39,0x39,0x11,0x12,0x17,0x39,0x2f,0x00,0x3f,0xc4,0xfd,0xd4,0x5d,0x5d,0xcd,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x39,0x31,0x30,0x13,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15, +0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0xdb,0x10,0x03,0x59,0x07,0x1c,0x55,0xa2,0x88,0x4b,0x3a,0x39,0x40,0x4f,0x64,0x21,0x4d,0x58,0x3d,0x4d,0x6d,0x54,0x45,0x0d,0x2d,0x24,0x1e,0x2f,0x3c,0x36,0x02,0x9e,0x27,0x2f,0x49,0x3d,0x4e,0x84,0x8a,0xa7,0x24,0x6c,0x2c,0x6d, +0x59,0x4c,0x2a,0x4d,0x42,0x32,0x42,0x3f,0x71,0x13,0x0f,0x12,0x20,0x00,0x00,0x02,0x00,0x3e,0x02,0x8a,0x02,0x7f,0x05,0xd4,0x00,0x1c,0x00,0x27,0x00,0x62,0x40,0x10,0x16,0x14,0x17,0x02,0x1c,0x01,0x06,0x15,0x00,0x15,0x00,0x15,0x1a,0x06,0x09,0x1d,0xbe,0x01,0x0d,0x00,0x0f,0x01,0x09,0x00,0x23,0x01,0x0d,0x00,0x09,0x01,0x0b,0x40, +0x10,0x01,0x1c,0x01,0x02,0x03,0x06,0x16,0x17,0x14,0x11,0x03,0x26,0x19,0x19,0x0c,0x06,0xb8,0x01,0x0c,0xb3,0x26,0x26,0x29,0x20,0xb9,0x01,0x0c,0x00,0x0c,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xc6,0x12,0x17,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0xc4,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x31,0x30, +0x01,0x17,0x07,0x16,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x37,0x26,0x27,0x07,0x27,0x37,0x26,0x27,0x33,0x16,0x17,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x02,0x38,0x21,0x8a,0x22,0x22,0x6c,0x9d,0x86,0x86,0x98,0x9d,0x86,0x32,0x2c,0x02,0x28,0x2e,0xb6,0x1e,0x95,0x43,0x4f,0xa4, +0x2a,0x2b,0x30,0x4d,0x58,0x56,0x4d,0x49,0x54,0x05,0xd4,0x47,0x37,0x26,0x2f,0x94,0xb8,0x83,0xa8,0x99,0x83,0x85,0xa5,0x16,0x02,0x40,0x32,0x48,0x49,0x3b,0x38,0x2e,0x17,0x26,0xfe,0xd1,0x64,0x57,0x53,0x62,0x64,0x53,0xb9,0x00,0x00,0x01,0x00,0x42,0x02,0x89,0x01,0xdf,0x04,0xcf,0x00,0x1e,0x00,0x55,0xb1,0x1d,0x0d,0xb8,0x01,0x0d, +0x40,0x09,0x0e,0x0e,0x18,0x08,0xb0,0x15,0x01,0x15,0x13,0xbf,0x01,0x0d,0x00,0x18,0x01,0x09,0x00,0x06,0x00,0x08,0x01,0x0d,0x00,0x03,0x01,0x0b,0xb2,0x16,0x0e,0x1b,0xb8,0x01,0x0c,0xb6,0x11,0x0e,0x16,0x11,0x03,0x06,0x01,0xb8,0x01,0x0c,0xb3,0x0a,0x0a,0x20,0x06,0x2f,0x12,0x39,0x2f,0xed,0x12,0x17,0x39,0x2f,0xed,0x2f,0x2f,0x00, +0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x71,0x11,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x00,0x15,0x14,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x01,0xdf,0xfb,0x59,0x49,0x3e,0x55,0x87,0x9e,0x32,0x30,0x8c,0x71,0x49,0x3e,0x40,0x4d,0x6d, +0x81,0x67,0x03,0x9c,0x6f,0xa4,0x1b,0x64,0x1c,0x49,0x4c,0x63,0x47,0x41,0x1c,0x68,0x17,0x51,0x49,0x5a,0x1f,0x04,0x00,0x01,0x00,0x0a,0x02,0x9a,0x01,0x83,0x05,0xd3,0x00,0x14,0x00,0x33,0xb9,0x00,0x02,0x01,0x0d,0xb2,0x12,0x08,0x0c,0xbd,0x01,0x0d,0x00,0x05,0x00,0x0d,0x01,0x08,0x00,0x0a,0x01,0x0a,0x40,0x09,0x06,0x06,0x00,0x05, +0x09,0xcd,0x0e,0x0c,0x0a,0x2f,0xc6,0x33,0xfd,0x32,0xc4,0x39,0x2f,0x00,0x3f,0x3f,0x33,0xed,0x32,0xd4,0xed,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x01,0x83,0x1b,0x22,0x60,0x82,0x82,0x80,0x5c,0x5c,0x79,0x62,0x2a,0x18,0x05,0x59,0x0f,0x61,0x49,0x6a, +0xfe,0x46,0x01,0xba,0x6a,0x4d,0x62,0x66,0x0a,0x00,0x00,0x01,0xff,0xdd,0x01,0x94,0x01,0x56,0x04,0xbe,0x00,0x14,0x00,0x48,0x40,0x0b,0x0e,0x0c,0x0a,0xcd,0x09,0x06,0x06,0x00,0x05,0x09,0x09,0xba,0x01,0x08,0x00,0x02,0x01,0x0d,0x40,0x13,0x0f,0x12,0x1f,0x12,0x02,0x2f,0x12,0x3f,0x12,0x9f,0x12,0xaf,0x12,0xbf,0x12,0x05,0x12,0x0b, +0x08,0xbb,0x01,0x0d,0x00,0x0e,0x00,0x05,0x01,0x0a,0x00,0x3f,0x33,0xed,0x32,0xd4,0x5d,0x71,0xed,0x3f,0x01,0x2f,0x33,0xc4,0x39,0x2f,0x10,0xfd,0xc6,0x33,0x31,0x30,0x03,0x16,0x33,0x32,0x35,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x14,0x06,0x23,0x22,0x27,0x23,0x1b,0x22,0x60,0x82,0x82,0x80,0x5c,0x5c,0x79,0x62, +0x2a,0x18,0x02,0x0e,0x0f,0x61,0x58,0x6a,0x01,0x9c,0xfe,0x64,0x6a,0x5c,0x62,0x66,0x0a,0x00,0xff,0xff,0x00,0x3e,0x01,0x94,0x02,0x60,0x04,0xcf,0x02,0x06,0x07,0xaf,0x00,0x00,0x00,0x01,0x00,0x5c,0x01,0xa4,0x02,0x46,0x04,0xbe,0x00,0x11,0x00,0x30,0x41,0x0a,0x00,0x0c,0x01,0x0d,0x00,0x01,0x00,0x05,0x01,0x0b,0x00,0x10,0x00,0x08, +0x01,0x08,0x00,0x11,0x01,0x0c,0xb4,0x01,0x10,0x10,0x13,0x09,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x00,0x3f,0x33,0x3f,0xc6,0xed,0x31,0x30,0x01,0x23,0x11,0x23,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x02,0x46,0x80,0x02,0x3b,0x79,0xb4,0x7f,0x6d,0x39,0x45,0x80,0x01,0xa4, +0x01,0x4c,0x67,0xe7,0x01,0x4e,0xfe,0xce,0x98,0x53,0x40,0x01,0x37,0x00,0x00,0x02,0x00,0x0f,0x02,0x9a,0x01,0x3f,0x05,0xc4,0x00,0x0b,0x00,0x13,0x00,0x48,0x40,0x19,0x01,0x05,0x0a,0x1f,0x06,0x01,0x06,0x40,0x0c,0x10,0x48,0x06,0x06,0x08,0x03,0x0c,0x0f,0x10,0x1f,0x10,0x2f,0x10,0x03,0x10,0x08,0xba,0x01,0x08,0x00,0x03,0x01,0x0a, +0xb3,0x0b,0x12,0x0a,0x02,0xb8,0x01,0x0c,0xb3,0x0e,0x06,0x07,0x03,0x2f,0xc4,0xc4,0xc4,0xfd,0x32,0xc4,0xc4,0x00,0x3f,0x3f,0xd4,0x5d,0xcd,0x11,0x12,0x39,0x2f,0x2b,0x71,0x33,0xcd,0x32,0x31,0x30,0x01,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x03,0x22,0x35,0x34,0x33,0x32,0x15,0x14,0x01,0x3f,0x57,0x82,0x57,0x57, +0x82,0x57,0x99,0x4e,0x50,0x4e,0x03,0x91,0xf7,0xf7,0x56,0xd7,0xd7,0x01,0x46,0x4c,0x4b,0x4b,0x4c,0x00,0x00,0x01,0x00,0x66,0x02,0x8b,0x01,0x72,0x04,0xbe,0x00,0x0b,0x00,0x1f,0x41,0x0a,0x00,0x05,0x01,0x08,0x00,0x09,0x01,0x0d,0x00,0x02,0x01,0x0b,0x00,0x0b,0x00,0x06,0x01,0x0c,0x00,0x05,0x2f,0xfd,0xc6,0x00,0x3f,0xed,0x3f,0x31, +0x30,0x01,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x01,0x72,0x25,0x3c,0xab,0x82,0x50,0x22,0x18,0x02,0x9b,0x10,0xb5,0x01,0x7e,0xfe,0x8a,0x52,0x12,0x00,0x01,0x00,0x11,0x02,0x9a,0x01,0x51,0x04,0xbe,0x00,0x0b,0x00,0x2e,0xb1,0x0b,0x07,0xbf,0x01,0x0d,0x00,0x08,0x01,0x08,0x00,0x01,0x00,0x04,0x01,0x0d,0x00,0x03, +0x01,0x0a,0xb2,0x0a,0x01,0x00,0xb8,0x01,0x0c,0xb2,0x07,0x04,0x05,0x2f,0xcd,0x32,0xfd,0xcd,0x32,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x31,0x30,0x13,0x33,0x15,0x21,0x35,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0xf2,0x5f,0xfe,0xc0,0x5f,0x5f,0x01,0x40,0x5f,0x02,0xf0,0x56,0x56,0x01,0x78,0x56,0x56,0x00,0x00,0x01,0x00,0x11,0x02,0x9a, +0x01,0x51,0x04,0xbe,0x00,0x13,0x00,0x44,0x40,0x09,0x01,0x09,0xcb,0x12,0x0a,0x0a,0x06,0x11,0x0d,0xbf,0x01,0x0d,0x00,0x0e,0x01,0x08,0x00,0x02,0x00,0x06,0x01,0x0d,0x00,0x05,0x01,0x0a,0xb4,0x00,0x0f,0x03,0x12,0x02,0xb8,0x01,0x0c,0xb4,0x0e,0x0a,0x06,0x0b,0x07,0x2f,0x33,0xcd,0x32,0x32,0xfd,0x32,0xcd,0x32,0x32,0x00,0x3f,0xed, +0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x23,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x21,0x15,0x23,0x15,0x33,0x01,0x49,0x57,0x5f,0xfe,0xc0,0x5f,0x57,0x57,0x5f,0x01,0x40,0x5f,0x57,0x03,0x91,0xa1,0x56,0x56,0xa1,0x56,0x81,0x56,0x56,0x81,0x00,0x00,0x03,0xff,0x87,0x01,0x94, +0x01,0x6d,0x05,0xc4,0x00,0x11,0x00,0x19,0x00,0x21,0x00,0x51,0x40,0x1f,0x02,0x00,0x14,0x0f,0x0c,0x00,0x0a,0x18,0x00,0x18,0x40,0x04,0x50,0x04,0x02,0x2f,0x04,0x3f,0x04,0x02,0x04,0x1a,0x0f,0x1e,0x1f,0x1e,0x2f,0x1e,0x03,0x1e,0x0d,0xb8,0x01,0x0a,0xb3,0x11,0x20,0x02,0x0e,0xb8,0x01,0x0c,0xb5,0x1c,0x0d,0x16,0x07,0x12,0x0d,0x2f, +0x33,0xd4,0xcd,0x10,0xc4,0xfd,0x32,0xc4,0xc6,0x00,0x3f,0xd4,0x5d,0xcd,0x2f,0x5d,0x5d,0xcd,0xc4,0x10,0xd4,0x11,0x39,0x39,0xcd,0x11,0x39,0x31,0x30,0x01,0x26,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x11,0x33,0x11,0x16,0x17,0x25,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0x13,0x22,0x35,0x34,0x33,0x32,0x15,0x14,0x01, +0x6d,0x45,0x47,0x23,0xb1,0x3a,0x4c,0x65,0x52,0x15,0x13,0x82,0x44,0x41,0xfe,0xf9,0x14,0x14,0x58,0x32,0x4b,0x43,0x4e,0x50,0x4e,0x01,0xcf,0x39,0x1c,0x90,0x42,0x33,0x3b,0x4f,0x02,0x02,0x2d,0xfd,0xbb,0x18,0x2e,0x0b,0x03,0x33,0x27,0x03,0x46,0x4c,0x4b,0x4b,0x4c,0x00,0x00,0x01,0x00,0x66,0x01,0x98,0x01,0x72,0x05,0xc4,0x00,0x0b, +0x00,0x1b,0xbb,0x00,0x05,0x01,0x07,0x00,0x09,0x01,0x0d,0xb2,0x02,0x0b,0x06,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xfd,0xc6,0x00,0x2f,0xed,0x3f,0x31,0x30,0x01,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x01,0x72,0x25,0x3c,0xab,0x82,0x50,0x22,0x18,0x01,0xa8,0x10,0xb5,0x03,0x77,0xfc,0x91,0x52,0x12,0x00,0x01,0x00,0x31, +0x01,0xcb,0x01,0x3d,0x05,0xc4,0x00,0x0e,0x00,0x38,0xbb,0x00,0x00,0x01,0x07,0x00,0x0b,0x01,0x0d,0xb3,0x50,0x06,0x01,0x06,0xb8,0xff,0xc0,0xb5,0x09,0x0c,0x48,0x06,0x02,0x0e,0xbf,0x01,0x0a,0x00,0x09,0x00,0x03,0x01,0x0c,0x00,0x0d,0x00,0x01,0x01,0x0c,0x00,0x00,0x2f,0xfd,0xd5,0xfd,0xc4,0x00,0x3f,0xd5,0xd4,0x2b,0x71,0xed,0x3f, +0x31,0x30,0x13,0x33,0x11,0x33,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x23,0x66,0x80,0x57,0x64,0x63,0x25,0x20,0x1d,0x23,0x59,0x0a,0x6e,0x05,0xc4,0xfc,0xf3,0x6f,0x7d,0x0b,0x61,0x10,0x73,0x00,0x00,0x01,0x00,0x66,0x02,0x96,0x01,0xb4,0x04,0xc4,0x00,0x05,0x00,0x20,0xbb,0x00,0x02,0x01,0x06,0x00,0x04,0x01,0x0d,0xb5, +0x01,0xff,0x00,0x00,0x07,0x04,0xb9,0x01,0x0c,0x00,0x01,0x2f,0xed,0x12,0x39,0x2f,0x00,0x3f,0xed,0x3f,0x31,0x30,0x01,0x21,0x11,0x33,0x13,0x33,0x01,0xb3,0xfe,0xb3,0x7f,0x01,0xce,0x02,0x96,0x02,0x2e,0xfe,0x3c,0x00,0x00,0x01,0x00,0x66,0x01,0x98,0x03,0x9a,0x04,0xcf,0x00,0x25,0x00,0x65,0xb9,0x00,0x24,0x01,0x0d,0x40,0x09,0x1f, +0x1d,0x00,0x08,0x13,0x18,0x05,0x16,0x10,0xba,0x01,0x0a,0x00,0x11,0x01,0x08,0xb2,0x1a,0x03,0x0b,0xba,0x01,0x0d,0x00,0x16,0x01,0x09,0xb3,0x18,0x07,0x13,0x1d,0xb8,0x01,0x0c,0x40,0x0a,0x40,0x22,0x00,0x0e,0x08,0x10,0x08,0x42,0x13,0x0f,0xbb,0x01,0x0c,0x00,0x10,0x00,0x07,0x01,0x0c,0xb3,0x08,0x08,0x27,0x26,0x11,0x12,0x39,0x2f, +0xed,0x2f,0xed,0x32,0x2b,0x01,0x18,0x10,0xf4,0xc6,0x1a,0xed,0x11,0x12,0x39,0x00,0x3f,0xed,0x39,0x39,0x3f,0x3f,0x12,0x17,0x39,0xd4,0xed,0x31,0x30,0x01,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x15,0x11,0x02,0x23,0x22,0x27,0x35, +0x16,0x33,0x32,0x03,0x1a,0x68,0x31,0x41,0x80,0x68,0x32,0x40,0x80,0x7e,0x02,0x38,0x72,0x77,0x28,0x3d,0x7c,0xb2,0x01,0xd9,0x2b,0x25,0x22,0x23,0x65,0x02,0x9a,0x01,0x3b,0x8f,0x54,0x3f,0xfe,0xc9,0x01,0x3f,0x8b,0x52,0x45,0xfe,0xcd,0x02,0x24,0x52,0x63,0x6f,0x6f,0xe3,0xfe,0xba,0xfe,0xf2,0x10,0x68,0x14,0x00,0x00,0x01,0x00,0x60, +0x01,0xa4,0x03,0x94,0x04,0xbe,0x00,0x1d,0x00,0x56,0xb4,0x07,0x18,0x02,0x03,0x10,0xb8,0x01,0x0d,0xb2,0x05,0x01,0x09,0xb8,0x01,0x0b,0xb2,0x1c,0x14,0x0c,0xb8,0x01,0x08,0xb3,0x07,0x01,0x14,0x1d,0xb8,0x01,0x0c,0x40,0x09,0x40,0x01,0x1c,0x0e,0x14,0x0c,0x14,0x42,0x0d,0xbb,0x01,0x0c,0x00,0x0c,0x00,0x15,0x01,0x0c,0xb3,0x14,0x14, +0x1f,0x1e,0x11,0x12,0x39,0x2f,0xed,0x2f,0xed,0x2b,0x01,0x18,0x10,0xf4,0x32,0x1a,0xed,0x11,0x12,0x39,0x00,0x3f,0x33,0x33,0x3f,0xc6,0x33,0xed,0x17,0x32,0x31,0x30,0x01,0x23,0x11,0x23,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0x94, +0x7e,0x02,0x38,0x72,0x77,0x28,0x3d,0x7c,0xb2,0x7f,0x69,0x31,0x41,0x80,0x68,0x32,0x40,0x80,0x01,0xa4,0x01,0x48,0x63,0x6f,0x6f,0xe3,0x01,0x52,0xfe,0xc5,0x8f,0x54,0x3f,0x01,0x37,0xfe,0xc1,0x8b,0x52,0x46,0x01,0x32,0x00,0x01,0xff,0xbc,0x01,0x98,0x02,0x50,0x04,0xcf,0x00,0x19,0x00,0x3e,0xb1,0x0c,0x16,0xbe,0x01,0x0d,0x00,0x0f, +0x01,0x09,0x00,0x0a,0x01,0x08,0x00,0x07,0x01,0x0d,0xb3,0x02,0x00,0x09,0x13,0xba,0x01,0x0a,0x00,0x12,0x01,0x0c,0xb4,0x13,0x13,0x1b,0x0b,0x00,0xb8,0x01,0x0c,0xb1,0x05,0x09,0x2f,0xc6,0xed,0x32,0x12,0x39,0x2f,0xed,0x00,0x3f,0x33,0x33,0xd4,0xed,0x3f,0x3f,0xed,0x32,0x31,0x30,0x13,0x10,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35, +0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0xe6,0xda,0x2b,0x25,0x22,0x23,0x65,0x80,0x02,0x3b,0x79,0xb4,0x7f,0x6d,0x39,0x45,0x02,0xa6,0xfe,0xf2,0x10,0x68,0x14,0x9e,0x02,0x24,0x56,0x67,0xe7,0xfe,0xb2,0x01,0x33,0x97,0x54,0x3f,0x00,0x01,0x00,0x66,0x01,0x98,0x02,0xfa,0x04,0xcf,0x00,0x19, +0x00,0x3f,0xb1,0x14,0x0c,0xbe,0x01,0x0d,0x00,0x17,0x01,0x09,0x00,0x12,0x01,0x08,0x00,0x02,0x01,0x0d,0xb3,0x07,0x00,0x09,0x11,0xbb,0x01,0x0a,0x00,0x04,0x00,0x00,0x01,0x0c,0xb4,0x09,0x09,0x1b,0x13,0x10,0xb9,0x01,0x0c,0x00,0x11,0x2f,0xed,0x32,0x12,0x39,0x2f,0xfd,0xc6,0x00,0x3f,0x33,0x33,0xd4,0xed,0x3f,0x3f,0xed,0x32,0x31, +0x30,0x01,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x11,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0x65,0x23,0x22,0x25,0x2b,0xd9,0x6d,0x39,0x45,0x80,0x80,0x02,0x3b,0x79,0xb4,0x02,0x9a,0x9e,0x14,0x68,0x10,0x01,0x0e,0x01,0x27,0x97,0x54,0x3f,0xfe,0xc9,0x02,0x24,0x56,0x67,0xe7, +0x00,0x01,0x00,0x66,0x02,0x9a,0x02,0x6a,0x04,0xbe,0x00,0x13,0x00,0x26,0xbd,0x00,0x0a,0x01,0x08,0x00,0x09,0x01,0x0a,0x00,0x00,0x01,0x0c,0xb5,0x01,0x11,0x11,0x15,0x0b,0x08,0xb9,0x01,0x0c,0x00,0x09,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33, +0x13,0x16,0x17,0x33,0x26,0x35,0x11,0x33,0x02,0x6a,0x7f,0xea,0x14,0x07,0x02,0x02,0x80,0x84,0xe5,0x12,0x09,0x02,0x04,0x82,0x02,0x9a,0x01,0x4d,0x1c,0x0d,0x1d,0x2a,0xfe,0xd1,0x02,0x24,0xfe,0xbc,0x18,0x12,0x1c,0x22,0x01,0x30,0x00,0x03,0x00,0x3e,0x02,0x89,0x02,0x7f,0x04,0xcf,0x00,0x0b,0x00,0x14,0x00,0x1d,0x00,0x3f,0xb9,0x00, +0x13,0x01,0x0d,0xb3,0x19,0x19,0x0e,0x15,0xbe,0x01,0x0d,0x00,0x06,0x01,0x09,0x00,0x0e,0x01,0x0d,0x00,0x00,0x01,0x0b,0xb3,0x1a,0x19,0x13,0x09,0xb8,0x01,0x0c,0xb3,0x12,0x12,0x1f,0x13,0xb9,0x01,0x0c,0x00,0x03,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x26, +0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x16,0x33,0x32,0x37,0x36,0x37,0x21,0x16,0x13,0x22,0x07,0x06,0x07,0x21,0x26,0x27,0x26,0x01,0x58,0x80,0x9a,0xa2,0x84,0x80,0x9b,0xa3,0xf2,0x2c,0x48,0x49,0x2b,0x21,0x08,0xfe,0xc5,0x08,0x96,0x49,0x2c,0x1d,0x0a,0x01,0x38,0x0a,0x1e,0x2b,0x02,0x89,0x9e,0x7f,0x87,0xa2,0x9f,0x7e, +0x88,0xa1,0x97,0x2c,0x2c,0x21,0x40,0x40,0x01,0x23,0x2c,0x1e,0x36,0x37,0x1e,0x2b,0x00,0x03,0x00,0x3e,0x01,0xa4,0x02,0xb1,0x05,0xc4,0x00,0x15,0x00,0x1e,0x00,0x27,0x00,0x54,0xb1,0x1c,0x26,0xb8,0x01,0x0d,0xb2,0x0c,0x0a,0x09,0xbb,0x01,0x09,0x00,0x1d,0x00,0x25,0x01,0x0d,0xb5,0x14,0x40,0x00,0x01,0x00,0x01,0xb8,0x01,0x0b,0xb2, +0x0c,0x1d,0x15,0xb8,0x01,0x0c,0xb5,0x09,0x25,0x00,0x00,0x05,0x10,0xb8,0x01,0x0c,0xb3,0x18,0x18,0x29,0x21,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x00,0x3f,0xcd,0x5d,0x33,0xed,0x32,0x3f,0xcd,0x33,0xed,0x32,0x31,0x30,0x01,0x35,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37, +0x35,0x33,0x15,0x16,0x17,0x16,0x15,0x14,0x07,0x06,0x07,0x15,0x13,0x36,0x35,0x34,0x27,0x26,0x27,0x11,0x36,0x01,0x06,0x15,0x14,0x17,0x16,0x17,0x11,0x06,0x01,0x36,0x6e,0x3d,0x4d,0x51,0x3d,0x6a,0x82,0x6e,0x3d,0x4e,0x52,0x3e,0x69,0x4c,0x2c,0x2c,0x1b,0x31,0x31,0xff,0x00,0x2b,0x2c,0x1b,0x31,0x31,0x01,0xa4,0xe8,0x0d,0x3f,0x4f, +0x7f,0x87,0x51,0x3d,0x0f,0xfa,0xf8,0x0d,0x40,0x4f,0x7e,0x88,0x51,0x3d,0x0f,0xe9,0x01,0x81,0x31,0x56,0x58,0x30,0x1e,0x0b,0xfe,0x9d,0x0c,0x01,0x2d,0x31,0x56,0x56,0x31,0x1f,0x0c,0x01,0x63,0x0b,0x00,0x01,0x00,0x42,0x01,0xe2,0x01,0xa1,0x04,0xd1,0x00,0x2b,0x00,0x4f,0xb1,0x03,0x08,0xb8,0xff,0xc0,0x40,0x0b,0x0c,0x12,0x48,0x08, +0x10,0x27,0x16,0x21,0x04,0x19,0x0e,0xbe,0x01,0x0d,0x00,0x2a,0x01,0x0b,0x00,0x1e,0x01,0x0d,0x00,0x19,0x01,0x09,0xb7,0x1b,0x21,0xcd,0x16,0x1b,0x16,0x0c,0x27,0xb8,0x01,0x0c,0xb5,0x10,0x10,0x2d,0x05,0x01,0x0c,0x2f,0xcd,0xc4,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0xed,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0xd4,0x2b, +0xcd,0x31,0x30,0x13,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x97,0x4a,0x21,0x21,0x24,0x29,0x45,0x4f,0x3f,0x41,0x60,0x2b,0x3c,0x47,0x31,0x71,0x5a, +0x44,0x36,0x31,0x3e,0x31,0x27,0x24,0x3d,0x48,0x37,0x6c,0x5f,0x24,0x02,0x92,0x12,0x53,0x13,0x4d,0x11,0x4e,0x47,0xa7,0x36,0x3b,0x20,0x29,0x1d,0x24,0x4c,0x37,0x45,0x5c,0x19,0x6f,0x29,0x23,0x18,0x21,0x27,0x1d,0x23,0x4e,0x36,0x47,0x5b,0x00,0x01,0xff,0xc9,0x01,0x94,0x01,0x83,0x05,0xd3,0x00,0x15,0x00,0x2d,0xbc,0x00,0x02,0x01, +0x0d,0x00,0x13,0x00,0x0d,0x01,0x0d,0x40,0x0d,0x40,0x08,0x50,0x08,0x02,0x2f,0x08,0x3f,0x08,0x02,0x08,0x01,0x05,0xb8,0x01,0x0c,0xb1,0x0b,0x0f,0x2f,0xc6,0xfd,0xc6,0x00,0x2f,0x5d,0x5d,0xed,0x2f,0xed,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x01, +0x83,0x1b,0x22,0x60,0x79,0x62,0x2a,0x18,0x1b,0x22,0x60,0x79,0x62,0x2a,0x18,0x05,0x59,0x0f,0x61,0xfd,0x55,0x62,0x66,0x0a,0x70,0x0f,0x61,0x02,0xab,0x62,0x66,0x0a,0x00,0x01,0x00,0x0a,0x01,0xe2,0x01,0x68,0x05,0x62,0x00,0x1d,0x00,0x53,0xb1,0x08,0x03,0xb8,0xff,0xc0,0xb6,0x0c,0x11,0x48,0x03,0x0c,0x1d,0x1b,0xbb,0x01,0x0d,0x00, +0x00,0x00,0x0c,0x01,0x0b,0xb4,0x14,0x15,0x18,0x15,0x0f,0xba,0x01,0x0d,0x00,0x12,0x01,0x08,0x40,0x0a,0x06,0x0a,0x17,0x1d,0x1d,0x1f,0x0f,0x18,0x0f,0x15,0xb8,0x01,0x0c,0xb1,0x11,0x12,0x2f,0xcd,0xed,0x39,0x39,0x11,0x12,0x39,0x2f,0xc4,0xcd,0xc4,0x00,0x3f,0xed,0x39,0x39,0x10,0xcd,0x3f,0x33,0xfd,0xc6,0x10,0xd4,0x2b,0xcd,0x31, +0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0x23,0x22,0x35,0x11,0x23,0x35,0x33,0x35,0x37,0x15,0x33,0x15,0x23,0x15,0x14,0x33,0x32,0x37,0x01,0x68,0x4f,0x45,0x29,0x24,0x21,0x21,0x4a,0x0d,0xa0,0x5c,0x5c,0x80,0x82,0x82,0x49,0x1e,0x1b,0x02,0x77,0x47,0x4e,0x11,0x4d,0x13,0x53,0x0e,0xbe,0x01,0x08,0x6a,0x80, +0x24,0xa4,0x6a,0xfe,0x5e,0x10,0x00,0x02,0x00,0x05,0x02,0x89,0x02,0x9d,0x04,0xbe,0x00,0x15,0x00,0x1d,0x00,0x59,0xb4,0x1b,0x1a,0x01,0x03,0x0a,0xb8,0x01,0x0d,0x40,0x09,0x14,0x10,0x5f,0x0d,0x01,0x0d,0x0d,0x12,0x0e,0xbf,0x01,0x08,0x00,0x04,0x00,0x16,0x01,0x0d,0x00,0x07,0x01,0x0b,0x00,0x03,0x01,0x0a,0xb5,0x15,0x1a,0x03,0x01, +0x03,0x13,0xb8,0x01,0x0c,0xb5,0x12,0x12,0x1f,0x1c,0x0a,0x0f,0xb8,0x01,0x0c,0xb1,0x0c,0x0e,0x2f,0xc6,0xed,0x39,0x39,0x12,0x39,0x2f,0xfd,0x17,0x39,0xc6,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x33,0x39,0x2f,0x71,0x33,0x33,0xed,0x17,0x32,0x31,0x30,0x01,0x23,0x15,0x23,0x35,0x23,0x06,0x23,0x22,0x35,0x35,0x23,0x35,0x33,0x35,0x33,0x15, +0x33,0x35,0x33,0x15,0x33,0x05,0x32,0x36,0x35,0x35,0x23,0x15,0x14,0x02,0x9d,0x57,0x80,0x02,0x3b,0x79,0xb4,0x57,0x57,0x7f,0xeb,0x80,0x57,0xfe,0xab,0x39,0x45,0xeb,0x03,0x91,0xf7,0x56,0x67,0xe7,0x21,0x56,0xd7,0xd7,0xd7,0xd7,0xf3,0x53,0x40,0x0a,0x05,0x98,0x00,0x01,0x00,0x3e,0x02,0x89,0x02,0x7f,0x04,0xbe,0x00,0x1b,0x00,0x4f, +0xb4,0x04,0x0e,0x12,0x03,0x01,0xbf,0x01,0x0d,0x00,0x0f,0x00,0x02,0x01,0x08,0x00,0x09,0x01,0x0d,0x00,0x17,0x01,0x0b,0x40,0x0c,0x12,0x14,0x0f,0x00,0x1a,0x03,0x0f,0x03,0x0c,0x06,0x10,0x14,0xb8,0x01,0x0c,0xb3,0x0c,0x0c,0x1d,0x06,0xb8,0x01,0x0c,0xb1,0x02,0x1a,0x2f,0xc4,0xed,0x12,0x39,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x39,0x2f, +0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xed,0x3f,0x33,0xed,0x17,0x32,0x31,0x30,0x13,0x23,0x35,0x33,0x15,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x35,0x33,0x15,0x23,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0xad,0x6f,0xfa,0x7a,0x56,0x4b,0x4c,0x53,0x7a,0xfb,0x6e,0x6e,0x9b,0x89,0x84,0x99,0x04,0x54,0x6a,0x5b,0x31, +0x83,0x5f,0x5c,0x59,0x62,0x83,0x31,0x5b,0x6a,0x41,0x74,0x7c,0x9a,0x97,0x7b,0x75,0x00,0x01,0x00,0x5c,0x02,0x89,0x02,0x46,0x04,0xbe,0x00,0x0d,0x00,0x29,0xb1,0x0c,0x05,0xbe,0x01,0x08,0x00,0x09,0x01,0x0d,0x00,0x02,0x01,0x0b,0x00,0x0d,0x01,0x0c,0xb3,0x0c,0x0c,0x0f,0x06,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xed,0x12,0x39,0x2f,0xed, +0x00,0x3f,0xed,0x3f,0x33,0x31,0x30,0x01,0x14,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x35,0x11,0x33,0x02,0x46,0xfb,0xef,0x7f,0x76,0x75,0x80,0x03,0x79,0xf0,0xea,0x01,0x4b,0xfe,0xcf,0x99,0x95,0x01,0x35,0x00,0x00,0x01,0x00,0x5c,0x02,0x89,0x02,0x55,0x04,0xcf,0x00,0x17,0x00,0x33,0x41,0x0c,0x00,0x0a,0x01,0x0d,0x00,0x0f, +0x00,0x00,0x01,0x08,0x00,0x04,0x01,0x0d,0x00,0x15,0x01,0x0b,0x00,0x0d,0x00,0x12,0x01,0x0c,0xb3,0x07,0x07,0x19,0x01,0xb9,0x01,0x0c,0x00,0x00,0x2f,0xed,0x12,0x39,0x2f,0xed,0xc4,0x00,0x3f,0xed,0x3f,0xd4,0xed,0x31,0x30,0x13,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x23,0x22,0x35,0x5c,0x7f,0x73,0x4d,0x39,0x1e,0x24,0x21,0x1e,0x23,0x2c,0x5e,0x55,0x86,0x89,0xea,0x04,0xbe,0xfe,0xc6,0x90,0x6b,0x56,0x63,0x4c,0x0f,0x6c,0x0e,0x99,0x7e,0x8a,0xa5,0xf3,0x00,0x01,0x00,0x0b,0x02,0x9a,0x02,0x36,0x04,0xbe,0x00,0x0b,0x00,0x17,0xbb,0x00,0x00,0x01,0x0a,0x00,0x01,0x01,0x08,0xb3,0x03,0x03,0x0d,0x00, +0x2f,0x11,0x39,0x2f,0x00,0x3f,0x3f,0x31,0x30,0x13,0x13,0x33,0x13,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x0b,0xc9,0x9b,0xc7,0x8a,0x78,0x0f,0x03,0x05,0x04,0x11,0x78,0x02,0x9a,0x02,0x24,0xfd,0xdc,0x01,0x72,0x2f,0x25,0x22,0x32,0xfe,0x8e,0x00,0x00,0x01,0x00,0x1a,0x02,0x9a,0x01,0xf5,0x04,0xbe,0x00,0x09,0x00,0x34,0xb1,0x05, +0x01,0xbf,0x01,0x0d,0x00,0x04,0x01,0x0a,0x00,0x00,0x00,0x06,0x01,0x0d,0x00,0x09,0x01,0x08,0x40,0x0c,0x02,0x07,0x06,0x07,0x02,0x01,0x04,0x05,0x00,0x00,0x0b,0x05,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x35,0x01,0x23,0x35,0x21,0x01,0xf5,0xfe,0xe8, +0x01,0x14,0xfe,0x29,0x01,0x18,0xf8,0x01,0xbb,0x04,0x86,0xfe,0x7e,0x6a,0x3a,0x01,0x80,0x6a,0x00,0x01,0x00,0x1a,0x01,0xe2,0x02,0x5a,0x04,0xbe,0x00,0x16,0x00,0x47,0xb1,0x04,0x09,0xb8,0xff,0xc0,0xb5,0x0c,0x10,0x48,0x09,0x10,0x16,0xbf,0x01,0x0d,0x00,0x0f,0x01,0x0a,0x00,0x15,0x00,0x11,0x01,0x0d,0x00,0x14,0x01,0x08,0x40,0x0f, +0x06,0x0c,0x02,0x00,0x12,0x11,0x12,0x00,0x16,0x04,0x10,0x15,0x15,0x18,0x10,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0xd6,0xcd,0xc6,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0xd4,0x2b,0xcd,0x31,0x30,0x01,0x06,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x21,0x35,0x01,0x23,0x35,0x21,0x15,0x01,0x01,0xf1, +0x23,0x4a,0x21,0x21,0x24,0x29,0x45,0x4f,0x04,0xfe,0x9d,0x01,0x18,0xf8,0x01,0xbb,0xfe,0xe8,0x03,0x04,0x41,0x43,0x53,0x13,0x4d,0x11,0x4e,0x47,0x11,0x12,0x3a,0x01,0x80,0x6a,0x38,0xfe,0x7e,0x00,0x00,0x02,0x00,0x1a,0x02,0x55,0x02,0x82,0x04,0xbe,0x00,0x17,0x00,0x1e,0x00,0x52,0xb6,0x1d,0x11,0x07,0x00,0x18,0x03,0x0d,0x41,0x09, +0x01,0x0d,0x00,0x03,0x00,0x06,0x01,0x0a,0x00,0x0c,0x00,0x08,0x01,0x0d,0x00,0x0b,0x01,0x08,0x40,0x15,0x18,0x00,0x1b,0x02,0x0e,0x05,0x14,0x03,0x09,0x1b,0x14,0x08,0x09,0x0d,0x03,0x04,0x07,0x0c,0x0c,0x20,0x07,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0xd4,0xcd,0x2f,0x2f,0x12,0x39,0x39,0xcd,0x11,0x39,0x39,0x00,0x3f,0xed,0x39,0x3f, +0xce,0xfd,0x17,0x39,0xd4,0xcd,0x31,0x30,0x01,0x06,0x07,0x23,0x36,0x37,0x23,0x35,0x01,0x23,0x35,0x21,0x15,0x01,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x36,0x35,0x34,0x23,0x22,0x01,0x4b,0x11,0x07,0x59,0x0b,0x0d,0xd8,0x01,0x18,0xf8,0x01,0xbb,0xfe,0xe8,0x3d,0x2b,0x72,0x44,0x45,0x42,0x60,0x58,0x48,0x54, +0x51,0x2e,0x41,0x02,0x9a,0x26,0x1f,0x27,0x1e,0x3a,0x01,0x80,0x6a,0x38,0xfe,0x7e,0x4e,0x57,0x42,0x32,0x43,0x58,0x6a,0x02,0x2a,0x23,0x00,0x01,0xff,0xfb,0x01,0x94,0x01,0xf7,0x04,0xbe,0x00,0x18,0x00,0x4c,0xb1,0x0b,0x09,0xb8,0x01,0x0d,0xb6,0x11,0x11,0x03,0x10,0x0d,0xe2,0x0e,0xbb,0x01,0x08,0x00,0x01,0x00,0x03,0x01,0x0d,0x40, +0x0d,0x17,0x11,0x0c,0x0f,0x0b,0x0b,0x0e,0x0f,0x0e,0x0f,0x0e,0x01,0x14,0xb8,0x01,0x0c,0xb3,0x06,0x06,0x1a,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0x00,0x2f,0xfd,0xc6,0x3f,0xed,0x39,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x03,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35, +0x37,0x21,0x35,0x21,0x15,0x03,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x05,0x5a,0x5a,0x5e,0x68,0x6c,0x65,0x28,0xa7,0xfe,0xec,0x01,0xc7,0xb3,0x55,0x7f,0xb2,0x8d,0x66,0x01,0xc0,0x76,0x38,0x4d,0x46,0x4a,0x44,0x3a,0xfb,0x6a,0x3a,0xfe,0xf7,0x0c,0x79,0x62,0x70,0x90,0x00,0x00,0x03,0x00,0x3e,0x02,0x89,0x02,0x7f,0x05,0xd3,0x00,0x0a, +0x00,0x10,0x00,0x17,0x00,0x3f,0xb9,0x00,0x12,0x01,0x0d,0xb3,0x10,0x10,0x15,0x0d,0xbe,0x01,0x0d,0x00,0x06,0x01,0x07,0x00,0x15,0x01,0x0d,0x00,0x00,0x01,0x0b,0xb3,0x0b,0x10,0x12,0x08,0xb8,0x01,0x0c,0xb3,0x11,0x11,0x19,0x12,0xb9,0x01,0x0c,0x00,0x03,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x12, +0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x20,0x11,0x14,0x06,0x13,0x02,0x23,0x22,0x06,0x07,0x05,0x21,0x16,0x16,0x33,0x32,0x36,0x01,0x58,0x85,0x95,0x9c,0x91,0x01,0x14,0x99,0x14,0x08,0x91,0x46,0x54,0x05,0x01,0x39,0xfe,0xc5,0x03,0x52,0x4a,0x48,0x51,0x02,0x89,0xd9,0xc5,0xcf,0xdd,0xfe,0x61,0xcc,0xdf,0x01, +0xdd,0x01,0x02,0x8c,0x76,0x63,0x85,0x8a,0x8c,0x00,0x00,0x03,0xff,0x3e,0x04,0xba,0x00,0xc2,0x05,0xd3,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x27,0x40,0x11,0x00,0x07,0x40,0x0d,0x80,0x02,0x19,0x13,0x01,0x03,0x01,0x03,0x16,0x0a,0x04,0x10,0x16,0x2f,0xcd,0xd4,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x00,0x2f,0xcd,0xc4,0x1a,0xdc,0x1a,0xcd, +0xc4,0x31,0x30,0x03,0x05,0x07,0x25,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x6a,0x01,0x02,0x2e,0xfe,0xfe,0x01,0x5a,0x22,0x19,0x19,0x22,0x22,0x19,0x19,0x22,0xfe,0xf2,0x22,0x19,0x19,0x22,0x22,0x19,0x19,0x22,0x05,0xd3,0xe7,0x32,0xe7,0x09,0x19, +0x22,0x22,0x19,0x19,0x22,0x22,0xbc,0x19,0x22,0x22,0x19,0x19,0x22,0x22,0x00,0x03,0xff,0x3e,0x04,0xba,0x00,0xc2,0x05,0xd3,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x27,0x40,0x11,0x0d,0x40,0x03,0x07,0x80,0x01,0x13,0x19,0x00,0x02,0x00,0x02,0x04,0x10,0x16,0x0a,0x04,0x2f,0xcd,0xd4,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x00,0x2f,0xcd,0xc4, +0x1a,0xdc,0xc4,0x1a,0xcd,0x31,0x30,0x13,0x05,0x27,0x25,0x05,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x05,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x98,0xfe,0xfe,0x2e,0x01,0x02,0xfe,0xd4,0x22,0x19,0x19,0x22,0x22,0x19,0x19,0x22,0x01,0x0e,0x22,0x19,0x19,0x22,0x22,0x19,0x19,0x22,0x05,0xa1,0xe7, +0x32,0xe7,0x3b,0x19,0x22,0x22,0x19,0x19,0x22,0x22,0x8a,0x19,0x22,0x22,0x19,0x19,0x22,0x22,0x00,0x01,0xff,0x9c,0xfe,0x51,0x00,0x5b,0xff,0xc9,0x00,0x36,0x00,0x2c,0x40,0x15,0x30,0x1c,0x00,0x33,0x03,0x21,0x16,0x26,0x11,0x2b,0x0c,0x0c,0x11,0x16,0x1b,0x04,0x00,0x30,0x06,0x36,0x00,0x2f,0xcd,0xd4,0xcd,0x12,0x17,0x39,0x2f,0xcd, +0x2f,0xcd,0x2f,0xcd,0x00,0x2f,0xcd,0xcd,0xc4,0x39,0x31,0x30,0x07,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x07,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x35,0x34,0x2e,0x02,0x35,0x34,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x64,0x13,0x39,0x24, +0x24,0x2b,0x0e,0x13,0x15,0x18,0x12,0x17,0x12,0x12,0x15,0x12,0x0f,0x17,0x1b,0x0b,0x01,0x1b,0x35,0x28,0x19,0x12,0x15,0x12,0x12,0x15,0x11,0x18,0x1d,0x18,0x11,0x0f,0x0f,0x18,0x04,0x87,0x2a,0x26,0x26,0x14,0x14,0x1d,0x0b,0x0c,0x13,0x08,0x07,0x0c,0x0f,0x17,0x11,0x10,0x15,0x12,0x10,0x0b,0x0b,0x0f,0x0c,0x08,0x04,0x0d,0x04,0x0c, +0x15,0x10,0x0f,0x14,0x11,0x0f,0x0b,0x0a,0x11,0x12,0x15,0x0e,0x0f,0x17,0x14,0x13,0x0c,0x0a,0x0d,0x10,0x0b,0x00,0x00,0x01,0xfe,0xdd,0x04,0xd2,0x01,0x29,0x05,0xbc,0x00,0x19,0x00,0x19,0x40,0x0a,0x0d,0x40,0x0c,0x0c,0x19,0x80,0x05,0x14,0x0d,0x19,0x2f,0xc4,0x00,0x2f,0xcd,0x1a,0xcd,0x39,0x2f,0x1a,0xcd,0x31,0x30,0x03,0x14,0x1e, +0x02,0x33,0x32,0x3e,0x04,0x33,0x17,0x22,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0xbe,0x0c,0x18,0x22,0x16,0x14,0x3a,0x43,0x48,0x44,0x3d,0x16,0x1b,0x19,0x40,0x47,0x4b,0x48,0x43,0x1b,0x29,0x45,0x31,0x1c,0x05,0x7b,0x10,0x29,0x26,0x1a,0x1b,0x28,0x2e,0x28,0x1b,0x29,0x1c,0x29,0x31,0x29,0x1c,0x36,0x4b,0x50,0x19,0xff,0xff,0x00,0x70, +0xfe,0x3c,0x01,0x50,0x05,0xd1,0x02,0x27,0x00,0x11,0x00,0x00,0x00,0x8d,0x00,0x27,0x00,0x11,0x00,0x00,0xfe,0x52,0x00,0x27,0x00,0x11,0x00,0x00,0x02,0xca,0x00,0x07,0x00,0x11,0x00,0x00,0x05,0x06,0xff,0xff,0x00,0x3e,0xfe,0xde,0x02,0x1e,0x01,0x24,0x02,0x07,0x07,0xa5,0x00,0x00,0xfc,0x55,0xff,0xff,0x00,0x3e,0xfe,0xde,0x02,0x35, +0x01,0x24,0x02,0x07,0x07,0xab,0x00,0x00,0xfc,0x55,0xff,0xff,0x00,0x3e,0xfe,0xde,0x02,0x7f,0x01,0x24,0x02,0x07,0x07,0xb4,0x00,0x00,0xfc,0x55,0xff,0xff,0x00,0x12,0xfe,0xef,0x02,0x11,0x01,0x13,0x02,0x07,0x08,0x61,0x00,0x00,0xfc,0x55,0xff,0xff,0x00,0x48,0xfe,0xdc,0x02,0x40,0x01,0x26,0x02,0x07,0x07,0xac,0x00,0x00,0xfc,0x55, +0x00,0x03,0x00,0x54,0xff,0x2f,0x03,0xf2,0x06,0x50,0x00,0x1c,0x00,0x27,0x00,0x2e,0x00,0x1f,0xb7,0x17,0x39,0x2d,0x28,0x22,0x2e,0x39,0x1c,0xb8,0x01,0x4d,0xb3,0x23,0x16,0x39,0x0f,0xb8,0x01,0x06,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0xed,0x31,0x30,0x05,0x23,0x37,0x2e,0x03,0x35,0x34,0x12,0x36,0x36,0x37,0x37,0x33,0x07,0x16, +0x16,0x17,0x15,0x26,0x26,0x27,0x03,0x21,0x11,0x06,0x23,0x23,0x01,0x14,0x1e,0x02,0x17,0x13,0x0e,0x03,0x01,0x32,0x36,0x37,0x11,0x23,0x03,0x02,0x39,0x6d,0x13,0x64,0x95,0x62,0x30,0x43,0x83,0xc1,0x7f,0x11,0x6d,0x11,0x51,0x8e,0x39,0x3d,0x94,0x53,0x2e,0x01,0x65,0xb9,0xe1,0x0c,0xfe,0xb0,0x1b,0x39,0x5b,0x41,0x62,0x56,0x7f,0x54, +0x29,0x01,0x67,0x43,0x7d,0x31,0xd4,0x28,0xd1,0xe2,0x15,0x6e,0xae,0xe9,0x8f,0xa5,0x01,0x07,0xbb,0x69,0x08,0xbe,0xbe,0x05,0x25,0x20,0xb0,0x2f,0x35,0x07,0xfd,0xe9,0xfd,0x94,0x7a,0x02,0xc0,0x70,0xb7,0x8a,0x5c,0x15,0x04,0x5e,0x0b,0x59,0x95,0xc9,0xfd,0x53,0x21,0x22,0x01,0x88,0xfe,0x35,0x00,0x03,0x00,0x0c,0x00,0x00,0x04,0x44, +0x05,0x9a,0x00,0x17,0x00,0x1b,0x00,0x23,0x00,0x91,0x40,0x4d,0x06,0x03,0x02,0x17,0x16,0x07,0x16,0x23,0x22,0x21,0x1a,0x19,0x09,0x08,0x1c,0x08,0x1d,0x1e,0x1f,0x20,0x1b,0x18,0x0a,0x0b,0x1c,0x0b,0x14,0x11,0x10,0x0d,0x0c,0x15,0x0c,0x02,0x1b,0x11,0x92,0x17,0x20,0x14,0x06,0x0a,0x0d,0x92,0x03,0x18,0x00,0x10,0x10,0x10,0x80,0x10, +0x03,0x10,0x10,0x14,0x1c,0x03,0x15,0x03,0x08,0x0c,0x01,0x05,0x13,0x0e,0x0e,0x15,0x16,0x1d,0x05,0x05,0x0c,0x07,0x07,0x25,0x0c,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x33,0x2f,0x33,0x00,0x2f,0x32,0x3f,0x17,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x2f,0x33,0x33,0xed,0x32,0x32,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0, +0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x0e,0xc0,0xc0,0x05,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x0e,0xc0,0xc0,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x01,0x15,0x23,0x17,0x33,0x15,0x23,0x13,0x23,0x03,0x21,0x03,0x23,0x13,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x13,0x33,0x13,0x01,0x21,0x27,0x21,0x13,0x23,0x06,0x07,0x03,0x33,0x03,0x26,0x04, +0x2c,0xcd,0x39,0x94,0x68,0x80,0xba,0x76,0xfe,0x25,0x72,0xbb,0x7f,0x67,0x93,0x39,0xcc,0xf8,0xb5,0xad,0xb5,0xfe,0x2e,0x01,0x8a,0x34,0xfe,0xdd,0x92,0x03,0x08,0x0b,0x53,0xd1,0x55,0x09,0x03,0x5f,0x8d,0xb3,0x8d,0xfe,0x6e,0x01,0x92,0xfe,0x6e,0x01,0x92,0x8d,0xb3,0x8d,0x02,0x3b,0xfd,0xc5,0xfe,0xc0,0xb3,0x02,0x10,0x3d,0x23,0xfe, +0xdd,0x01,0x23,0x1e,0x00,0x01,0x00,0x69,0xff,0xe8,0x03,0xe2,0x05,0xb2,0x00,0x47,0x00,0x89,0xb1,0x01,0x2f,0xb8,0x01,0x05,0xb6,0x46,0x2f,0x30,0x01,0x30,0x09,0x26,0xb8,0x01,0x05,0x40,0x44,0x06,0xd0,0x27,0xe0,0x27,0x02,0x27,0x21,0x0e,0x35,0x44,0x27,0x30,0x06,0x3f,0x1c,0x3d,0x3c,0x3a,0x91,0x3f,0x04,0x17,0x00,0x16,0x10,0x16, +0x20,0x16,0x03,0x16,0x11,0x91,0x1c,0x13,0x3c,0x09,0x06,0x01,0x46,0x04,0x44,0x0e,0x25,0x28,0x2e,0x31,0x3c,0x05,0x35,0x21,0x16,0x16,0x44,0x08,0x00,0x00,0x44,0x7d,0x35,0x35,0x49,0x48,0x30,0x27,0x0e,0x7d,0x21,0x2f,0xe1,0xc4,0x32,0x11,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x32,0x10,0xc0,0x2f,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39, +0x2f,0x00,0x3f,0xfd,0xc6,0x5d,0x32,0x3f,0xfd,0xc6,0x32,0x11,0x12,0x17,0x39,0x2f,0x5d,0x33,0xed,0x32,0x2f,0x5d,0x33,0xed,0x32,0x31,0x30,0x01,0x23,0x07,0x06,0x07,0x06,0x07,0x21,0x15,0x21,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x36,0x37,0x23,0x35,0x33, +0x36,0x37,0x36,0x37,0x36,0x37,0x21,0x35,0x21,0x36,0x37,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x33,0x03,0xe2,0x6f,0x04,0x30,0x41,0x34,0x3a,0x01,0x52,0xfd,0xe2,0x24,0x1d,0x2d,0x33,0x99,0x9b,0x2d,0x6a,0x69,0x5f,0x22,0x1c,0x5d,0x68,0x64,0x22,0x66,0xb8,0x8d,0x53,0x1e,0x12,0x1a, +0x54,0xc7,0x16,0x17,0x45,0x4d,0x2e,0x28,0xfe,0x24,0x02,0x80,0x19,0x0f,0x15,0x36,0x56,0x6e,0x37,0xc7,0x7f,0x61,0xd4,0x5d,0xb3,0x8c,0x56,0x1a,0x26,0x03,0x41,0x04,0x2f,0x27,0x1f,0x1f,0x6b,0x16,0x17,0x23,0x56,0x3a,0x6c,0x73,0x12,0x21,0x30,0x1e,0xc6,0x13,0x1f,0x15,0x0b,0x29,0x5c,0x93,0x6a,0x50,0x3e,0x25,0x21,0x6b,0x0f,0x0e, +0x2a,0x26,0x17,0x14,0x6b,0x19,0x1e,0x28,0x37,0x3b,0x52,0x34,0x17,0x58,0xbd,0x33,0x2e,0x5e,0x91,0x62,0x4d,0x3a,0x00,0x02,0x00,0x56,0xff,0x2f,0x03,0xe6,0x06,0x50,0x00,0x18,0x00,0x21,0x00,0x4f,0x40,0x2d,0x13,0x20,0x15,0x91,0x0d,0x9f,0x0f,0xaf,0x0f,0x02,0x0f,0x10,0x04,0x20,0x18,0x01,0x18,0x1f,0x16,0x91,0x05,0x60,0x03,0x70, +0x03,0x02,0x03,0x02,0x13,0x10,0x16,0x03,0x8c,0x0d,0x1f,0x04,0x04,0x09,0x13,0x00,0x00,0x23,0x1b,0x7e,0x09,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x00,0x3f,0xcd,0x5d,0x33,0xfd,0x32,0xc6,0x5d,0x3f,0xcd,0x5d,0x33,0xfd,0x32,0xc6,0x31,0x30,0x25,0x06,0x07,0x15,0x23,0x35,0x26,0x27,0x26,0x11,0x10, +0x37,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x15,0x26,0x27,0x11,0x36,0x37,0x01,0x06,0x11,0x10,0x17,0x16,0x17,0x11,0x06,0x03,0xe6,0x73,0xa7,0x68,0xe6,0x8d,0x9b,0xaf,0x8e,0xd1,0x68,0xad,0x6d,0x7d,0x9d,0xa4,0x76,0xfd,0x97,0x7f,0x77,0x5f,0x90,0x8a,0x3c,0x48,0x0a,0xbb,0xbb,0x11,0xb2,0xc5,0x01,0x40,0x01,0x58,0xd4,0xad,0x1f,0xa6, +0x9e,0x01,0x3a,0xb3,0x55,0x01,0xfb,0x65,0x07,0x59,0x03,0x96,0xa5,0xfe,0xec,0xfe,0xfa,0x9c,0x7c,0x19,0x04,0x89,0x1f,0x00,0x00,0x02,0x00,0x42,0x00,0xc8,0x02,0x68,0x03,0x49,0x00,0x03,0x00,0x07,0x00,0x23,0x40,0x11,0x01,0x00,0x03,0x10,0x03,0x02,0x03,0x03,0x08,0x05,0x07,0x03,0x07,0x07,0x09,0x02,0x06,0x2f,0x33,0x12,0x39,0x2f, +0x33,0x00,0x2f,0xcd,0x12,0x39,0x2f,0x5d,0xcd,0x31,0x30,0x01,0x05,0x35,0x25,0x35,0x05,0x35,0x25,0x02,0x68,0xfd,0xda,0x02,0x26,0xfd,0xda,0x02,0x26,0x01,0x9a,0xd2,0x83,0xd2,0xa9,0xd2,0x83,0xd2,0x00,0x01,0xff,0x50,0xfe,0x96,0x00,0xd7,0x00,0xc1,0x00,0x0c,0x00,0x12,0xb7,0x09,0x95,0x04,0x00,0x00,0x84,0x07,0x0c,0x2f,0xc6,0xed, +0x00,0x2f,0x2f,0xed,0x31,0x30,0x37,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0xd7,0x98,0x7f,0x3c,0x34,0x34,0x3c,0x7e,0xc1,0xfe,0xfd,0x89,0x9f,0x17,0x93,0x1f,0x9d,0x01,0x03,0x00,0x01,0xff,0x50,0xfe,0x96,0x00,0xd7,0x00,0x8f,0x00,0x0c,0x00,0x12,0xb7,0x09,0x95,0x04,0x00,0x00,0x84,0x07,0x0c,0x2f,0xc6,0xed, +0x00,0x2f,0x2f,0xed,0x31,0x30,0x37,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0xd7,0x98,0x7f,0x3c,0x34,0x34,0x3c,0x7e,0x8f,0xd1,0x89,0x9f,0x17,0x93,0x1f,0x9d,0xd1,0x00,0x01,0xff,0x50,0xfe,0x96,0x00,0xd7,0x00,0x35,0x00,0x0c,0x00,0x12,0xb7,0x09,0x95,0x04,0x00,0x00,0x84,0x07,0x0c,0x2f,0xc6,0xed,0x00,0x2f, +0x2f,0xed,0x31,0x30,0x37,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0xd7,0x98,0x7f,0x3c,0x34,0x34,0x3c,0x7e,0x35,0x77,0x89,0x9f,0x17,0x93,0x1f,0x9d,0x77,0x00,0x01,0xff,0x29,0xfe,0x96,0x00,0xb0,0x00,0x35,0x00,0x0c,0x00,0x12,0xb7,0x03,0x95,0x08,0x00,0x05,0x00,0x84,0x0c,0x2f,0xfd,0xc6,0x00,0x2f,0x2f,0xed, +0x31,0x30,0x27,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x35,0x3e,0x7e,0x3c,0x34,0x34,0x3c,0x7f,0x98,0x35,0x77,0x9d,0x1f,0x93,0x17,0x9f,0x89,0x77,0x00,0x01,0x00,0x27,0x01,0x83,0x03,0xac,0x02,0x83,0x00,0x11,0x00,0x27,0x40,0x0c,0x09,0x0f,0x96,0x03,0x06,0x96,0x11,0x2f,0x0c,0x01,0x0c,0x00,0xbc,0x01,0x03,0x00, +0x11,0x00,0x08,0x01,0x03,0x00,0x09,0x2f,0xed,0x2f,0xed,0x00,0x2f,0x5d,0xc6,0xfd,0xdc,0xed,0xc4,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x24,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x04,0x33,0x32,0x35,0x03,0xac,0x60,0x7a,0x47,0xfe,0xc2,0x48,0x80,0x5e,0x60,0x7e,0x5f,0x01,0x34,0x36,0x7c,0x02,0x83,0x69,0x85,0x5f,0x71,0x6b,0x81, +0x60,0x74,0x00,0x01,0x00,0x3e,0x04,0xc2,0x02,0x3a,0x05,0x4d,0x00,0x03,0x00,0x0d,0xb4,0x02,0x95,0x01,0x03,0x02,0x2f,0x2f,0x00,0x2f,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0x3a,0xfe,0x04,0x01,0xfc,0x04,0xc2,0x8b,0x00,0x01,0x00,0x12,0x02,0x9a,0x02,0x11,0x04,0xbe,0x00,0x0d,0x00,0x13,0xbb,0x00,0x07,0x01,0x0a,0x00,0x09,0x01, +0x08,0xb1,0x02,0x07,0x2f,0x2f,0x00,0x3f,0x3f,0x31,0x30,0x01,0x03,0x13,0x23,0x27,0x23,0x07,0x23,0x13,0x03,0x33,0x17,0x33,0x37,0x02,0x11,0xbc,0xb8,0x91,0x6a,0x02,0x6e,0x90,0xbe,0xb6,0x92,0x67,0x02,0x6f,0x04,0xbe,0xfe,0xeb,0xfe,0xf1,0xb2,0xb2,0x01,0x0c,0x01,0x18,0xbd,0xbd,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x07,0x32, +0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x83,0x00,0x00,0x01,0x07,0x04,0x36,0x00,0x29,0x01,0x2c,0x00,0x10,0xb7,0x04,0x03,0x38,0x2a,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x07,0x32,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x83,0x00,0x00, +0x01,0x07,0x04,0x37,0x00,0x29,0x01,0x2c,0x00,0x10,0xb7,0x04,0x03,0x39,0x2a,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x07,0x32,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x83,0x00,0x00,0x01,0x07,0x04,0x43,0x00,0x29,0x01,0x2c,0x00,0x10,0xb7,0x04,0x03,0x38, +0x2a,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x07,0x32,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x83,0x00,0x00,0x01,0x07,0x04,0x44,0x00,0x29,0x01,0x2c,0x00,0x10,0xb7,0x04,0x03,0x39,0x2a,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff, +0x00,0x5a,0xff,0xe8,0x04,0xc5,0x07,0x46,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x83,0xff,0xcf,0x01,0x07,0x04,0x36,0x00,0x29,0x01,0x40,0x00,0x1b,0x40,0x10,0x04,0x03,0x2f,0x41,0x01,0x0f,0x41,0x10,0x41,0x02,0x41,0x27,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x5a, +0xff,0xe8,0x04,0xc5,0x07,0x46,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x83,0xff,0xcf,0x01,0x07,0x04,0x37,0x00,0x29,0x01,0x40,0x00,0x1b,0x40,0x10,0x04,0x03,0x2f,0x42,0x01,0x0f,0x42,0x10,0x42,0x02,0x42,0x27,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8, +0x04,0xc5,0x07,0x46,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x83,0xff,0xcf,0x01,0x07,0x04,0x43,0x00,0x29,0x01,0x40,0x00,0x1b,0x40,0x10,0x04,0x03,0x2f,0x42,0x01,0x0f,0x42,0x10,0x42,0x02,0x42,0x27,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5, +0x07,0x46,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x83,0xff,0xcf,0x01,0x07,0x04,0x44,0x00,0x29,0x01,0x40,0x00,0x1b,0x40,0x10,0x04,0x03,0x2f,0x42,0x01,0x0f,0x42,0x10,0x42,0x02,0x42,0x27,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0xff,0xf9,0xff,0xf4,0x02,0x15,0x07,0x32, +0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x64,0x01,0x00,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0xaf,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x1e,0x0f,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x02,0xff,0xf4,0x02,0x32,0x07,0x32,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x64,0x01,0x00,0x00,0x00, +0x01,0x07,0x04,0x37,0xfe,0xc4,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x1e,0x0f,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0xff,0xfc,0xff,0xf4,0x02,0x24,0x07,0x32,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x64,0x01,0x00,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0xb8,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x1e, +0x0f,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0xff,0xe5,0xff,0xf4,0x02,0x28,0x07,0x32,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x64,0x01,0x00,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0xad,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x1e,0x0f,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff, +0xff,0xee,0xff,0xf4,0x02,0x1a,0x07,0x46,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x66,0x01,0x00,0xff,0xcf,0x01,0x07,0x04,0x36,0xfe,0xb4,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x27,0x01,0x0f,0x27,0x10,0x27,0x02,0x27,0x0c,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0xff,0xee, +0xff,0xf4,0x02,0x2d,0x07,0x46,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x66,0x01,0x00,0xff,0xcf,0x01,0x07,0x04,0x37,0xfe,0xbf,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x27,0x01,0x0f,0x27,0x10,0x27,0x02,0x27,0x0c,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0xff,0xee,0xff,0xf4, +0x02,0x20,0x07,0x46,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x66,0x01,0x00,0xff,0xcf,0x01,0x07,0x04,0x43,0xfe,0xb4,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x27,0x01,0x0f,0x27,0x10,0x27,0x02,0x27,0x0c,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0xff,0xee,0xff,0xf4,0x02,0x3a, +0x07,0x46,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x66,0x01,0x00,0xff,0xcf,0x01,0x07,0x04,0x44,0xfe,0xbf,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x27,0x01,0x0f,0x27,0x10,0x27,0x02,0x27,0x0c,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x32, +0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0x00,0x01,0x07,0x04,0x36,0xff,0xcc,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x2f,0x20,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x32,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0x00, +0x01,0x07,0x04,0x37,0xff,0xd9,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x2f,0x20,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x32,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0x00,0x01,0x07,0x04,0x43,0xff,0xcd,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x2f, +0x20,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x32,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0x00,0x01,0x07,0x04,0x44,0xff,0xd0,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x2f,0x20,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff, +0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x46,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x1b,0xff,0xcf,0x01,0x07,0x04,0x36,0xff,0xc7,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x38,0x01,0x0f,0x38,0x10,0x38,0x02,0x38,0x1d,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x14, +0xff,0xe6,0x04,0x0e,0x07,0x46,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x1b,0xff,0xcf,0x01,0x07,0x04,0x37,0xff,0xd0,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x38,0x01,0x0f,0x38,0x10,0x38,0x02,0x38,0x1d,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x14,0xff,0xe6, +0x04,0x0e,0x07,0x46,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x1b,0xff,0xcf,0x01,0x07,0x04,0x43,0xff,0xc5,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x38,0x01,0x0f,0x38,0x10,0x38,0x02,0x38,0x1d,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e, +0x07,0x46,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x1b,0xff,0xcf,0x01,0x07,0x04,0x44,0xff,0xd0,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x38,0x01,0x0f,0x38,0x10,0x38,0x02,0x38,0x1d,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0xff,0xd3,0xff,0xf4,0x02,0x1b,0x07,0x40, +0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x68,0x00,0xf6,0xff,0xcf,0x00,0x27,0x04,0x64,0x00,0xf6,0x00,0xd2,0x01,0x07,0x02,0x46,0xff,0xc1,0x01,0x88,0x00,0x29,0x40,0x1a,0x04,0x0f,0x2b,0x3f,0x2b,0x8f,0x2b,0x03,0x2b,0x40,0x0d,0x15,0x36,0x2b,0x03,0x24,0x12,0x02,0x01,0x70,0x0c,0x90,0x0c,0x02,0x0c,0x05,0x00,0x10,0xda,0x5d, +0x34,0x34,0x10,0xda,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0xff,0xd3,0xff,0xf4,0x02,0x1b,0x07,0x40,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x68,0x00,0xf6,0xff,0xcf,0x00,0x27,0x04,0x64,0x00,0xf6,0x00,0xd2,0x01,0x07,0x02,0x47,0xff,0xf3,0x01,0x88,0x00,0x29,0x40,0x1a,0x04,0x0f,0x2b,0x3f,0x2b,0x8f,0x2b,0x03,0x2b,0x40, +0x0d,0x15,0x36,0x2b,0x03,0x24,0x12,0x02,0x01,0x70,0x0c,0x90,0x0c,0x02,0x0c,0x05,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xda,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0xff,0xd3,0xff,0xf4,0x02,0x1b,0x07,0x40,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x68,0x00,0xf6,0xff,0xcf,0x00,0x27,0x04,0x66,0x00,0xf6,0x00,0xaa,0x01,0x07, +0x02,0x46,0xff,0x8f,0x01,0x88,0x00,0x33,0x40,0x22,0x04,0x4f,0x32,0x8f,0x32,0x02,0x32,0x40,0x0c,0x15,0x36,0x32,0x03,0x7f,0x27,0x8f,0x27,0x02,0x27,0x40,0x0d,0x11,0x36,0x27,0x12,0x02,0x01,0x70,0x0c,0x90,0x0c,0x02,0x0c,0x06,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xd2,0x2b,0x5d,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0xff,0xd3, +0xff,0xf4,0x02,0x1b,0x07,0x40,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x68,0x00,0xf6,0xff,0xcf,0x00,0x27,0x04,0x66,0x00,0xf6,0x00,0xaa,0x01,0x07,0x02,0x47,0x00,0x19,0x01,0x88,0x00,0x33,0x40,0x22,0x04,0x4f,0x32,0x8f,0x32,0x02,0x32,0x40,0x0c,0x15,0x36,0x32,0x03,0x7f,0x27,0x8f,0x27,0x02,0x27,0x40,0x0d,0x11,0x36,0x27, +0x12,0x02,0x01,0x70,0x0c,0x90,0x0c,0x02,0x0c,0x06,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xd2,0x2b,0x5d,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x40,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x68,0x02,0x18,0xff,0xcf,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0xd2,0x01,0x07,0x02,0x46,0x00,0xef, +0x01,0x88,0x00,0x2b,0x40,0x1b,0x04,0x4f,0x3c,0x8f,0x3c,0x02,0x3c,0x40,0x0c,0x15,0x36,0x3c,0x03,0x00,0x35,0x01,0x35,0x23,0x02,0x01,0x70,0x1d,0x90,0x1d,0x02,0x1d,0x14,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xda,0x5d,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x40,0x02,0x26,0x01,0xd2,0x00,0x00, +0x00,0x27,0x04,0x68,0x02,0x18,0xff,0xcf,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0xd2,0x01,0x07,0x02,0x47,0x01,0x20,0x01,0x88,0x00,0x2b,0x40,0x1b,0x04,0x4f,0x3c,0x8f,0x3c,0x02,0x3c,0x40,0x0c,0x15,0x36,0x3c,0x03,0x00,0x35,0x01,0x35,0x23,0x02,0x01,0x70,0x1d,0x90,0x1d,0x02,0x1d,0x14,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xda,0x5d, +0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x40,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x68,0x02,0x18,0xff,0xcf,0x00,0x27,0x04,0x66,0x02,0x1b,0x00,0xaa,0x01,0x07,0x02,0x46,0x00,0xd1,0x01,0x88,0x00,0x31,0x40,0x20,0x04,0x8f,0x45,0x01,0x45,0x40,0x0c,0x15,0x36,0x45,0x03,0x7f,0x38,0x8f, +0x38,0x02,0x38,0x40,0x0e,0x11,0x36,0x38,0x23,0x02,0x01,0x70,0x1d,0x90,0x1d,0x02,0x1d,0x14,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xd2,0x2b,0x5d,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x40,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x68,0x02,0x18,0xff,0xcf,0x00,0x27,0x04,0x66,0x02,0x1b, +0x00,0xaa,0x01,0x07,0x02,0x47,0x01,0x48,0x01,0x88,0x00,0x31,0x40,0x20,0x04,0x8f,0x45,0x01,0x45,0x40,0x0c,0x15,0x36,0x45,0x03,0x7f,0x38,0x8f,0x38,0x02,0x38,0x40,0x0e,0x11,0x36,0x38,0x23,0x02,0x01,0x70,0x1d,0x90,0x1d,0x02,0x1d,0x14,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xd2,0x2b,0x5d,0x34,0x11,0x2b,0x5d,0x35,0x00,0x00,0x03, +0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x16,0x00,0x1e,0x00,0x39,0xbc,0x00,0x0f,0x01,0x43,0x00,0x19,0x00,0x1d,0x01,0x43,0xb5,0x14,0x19,0x14,0x06,0x00,0x17,0xb8,0x01,0x44,0xb2,0x11,0x07,0x1b,0xb8,0x01,0x44,0xb2,0x0c,0x19,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0x3f,0xe6,0x01,0x2f, +0xc4,0x39,0x39,0x2f,0xe6,0x2f,0xe6,0x31,0x30,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x01,0x32,0x12,0x11,0x10,0x21,0x22,0x02,0x11,0x10,0x12,0x13,0x32,0x11,0x10,0x23,0x22,0x11,0x10,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x04,0x8e,0xe4,0xfe,0xfe,0x3e,0xeb, +0xf9,0xef,0xec,0xe7,0xed,0xf1,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0xff,0x00,0x01,0x7f,0x01,0x6c,0x02,0xdf,0xfe,0x7a,0xfe,0x84,0xfe,0xa6,0xfe,0x92,0x05,0x0d,0xfd,0xcd,0xfd,0xe2,0x02,0x14,0x02,0x3d,0x00,0x02,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x1a,0x00,0x32, +0xb9,0x00,0x1a,0x01,0x43,0x40,0x11,0x13,0x19,0x19,0x00,0x06,0x00,0x1a,0x18,0x04,0x18,0x01,0x18,0x12,0x13,0x0c,0x07,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xde,0xce,0x33,0x5d,0x3f,0x01,0x2f,0x2f,0x12,0x39,0x2f,0xcd,0xe6,0x30,0x31,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x01,0x23, +0x0e,0x03,0x07,0x15,0x3e,0x03,0x37,0x11,0x33,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x05,0x15,0x7a,0x26,0x68,0x75,0x79,0x36,0x30,0x65,0x5b,0x49,0x13,0xe0,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0x04,0xd2,0x21,0x45,0x3f,0x33,0x0f,0xce, +0x0c,0x2a,0x30,0x31,0x13,0xfb,0x51,0x00,0x00,0x02,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0f,0x00,0x32,0x00,0x4e,0xb1,0x23,0x11,0xb8,0x01,0x43,0xb2,0x31,0x10,0x1b,0xb8,0x01,0x43,0x40,0x0c,0x27,0x31,0x27,0x31,0x27,0x00,0x08,0x00,0x12,0x27,0x20,0x10,0xb8,0x01,0x44,0xb3,0x31,0x18,0x23,0x25,0xb8,0x01,0x44,0xb3,0x22, +0x20,0x07,0x0c,0xba,0x01,0x42,0x00,0x04,0x01,0x41,0x00,0x3f,0x3f,0x3f,0x33,0xe6,0x32,0x3f,0xe6,0x12,0x39,0x39,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe6,0x32,0x10,0xe6,0x33,0x30,0x31,0x13,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x11,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x05,0x21,0x35,0x34,0x3e,0x06,0x35,0x34,0x2e,0x02, +0x23,0x22,0x07,0x15,0x36,0x33,0x32,0x15,0x14,0x0e,0x06,0x15,0x15,0x21,0xb4,0x01,0x5b,0x01,0x5c,0x01,0xe5,0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe,0xa4,0xfe,0xa5,0xfe,0x1b,0xfe,0x1b,0xfe,0xa4,0xfe,0xa5,0x06,0x52,0xfd,0x88,0x36,0x58,0x70,0x75,0x70,0x58,0x36,0x41,0x71,0x96,0x54,0xde,0xa9,0xb0,0xc0,0xce,0x38,0x5b,0x74,0x7a,0x74, +0x5b,0x38,0x03,0x74,0x02,0xcd,0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe,0xa4,0xfe,0xa5,0xfe,0x1b,0xfe,0x1a,0xfe,0xa6,0xfe,0xa4,0x01,0x5c,0x01,0x5b,0x22,0x16,0x27,0x4a,0x4d,0x52,0x5f,0x6e,0x85,0x9f,0x60,0x5d,0x8c,0x5d,0x2f,0x83,0xde,0xa4,0xda,0x4b,0x7b,0x6b,0x61,0x61,0x66,0x76,0x8c,0x55,0x6b,0x00,0x00,0x02,0x00,0xb4,0xfe,0x31, +0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x2d,0x00,0x73,0xb2,0x15,0x25,0x17,0xb8,0x01,0x43,0x40,0x09,0x21,0x1d,0x25,0x25,0x1d,0x21,0x03,0x0c,0x11,0xb8,0x01,0x43,0x40,0x09,0x28,0x0c,0x28,0x0c,0x06,0x00,0x15,0x1a,0x25,0xb8,0x01,0x44,0x40,0x0d,0x24,0x24,0x2b,0x80,0x1d,0x01,0x2b,0x1d,0x3b,0x1d,0x02,0x1d,0x1f,0xb8,0x01,0x44,0x40, +0x09,0x1a,0x07,0x24,0x2d,0x34,0x2d,0x02,0x2d,0x2b,0xb8,0x01,0x44,0xb2,0x0e,0x19,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0xc6,0x5d,0x3f,0xe6,0xc6,0x5d,0x5d,0x12,0x39,0x2f,0xe6,0x11,0x39,0x01,0x2f,0xc4,0x39,0x39,0x2f,0x2f,0xe6,0x12,0x17,0x39,0x2f,0x2f,0x2f,0xe6,0x11,0x39,0x31,0x30,0x13,0x10,0x00, +0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x05,0x16,0x33,0x32,0x24,0x35,0x34,0x26,0x27,0x35,0x24,0x11,0x34,0x26,0x23,0x22,0x07,0x15,0x36,0x33,0x32,0x15,0x14,0x21,0x23,0x15,0x33,0x20,0x15,0x14,0x06,0x23,0x22,0x27,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x03,0x0b,0x79,0xcc, +0xe3,0x01,0x15,0xb7,0x9b,0x01,0x20,0xd9,0xb5,0xbc,0x8a,0x86,0x97,0xd2,0xfe,0xda,0x71,0x77,0x01,0x53,0x92,0x7b,0xb9,0x93,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0xb3,0x4d,0xed,0xc1,0x8c,0xbb,0x0f,0x04,0x51,0x01,0x1b,0x96,0xc0,0x52,0xd2,0x67,0xda,0xd7,0xbd,0xe9,0x6a,0x90,0x74,0x00, +0x00,0x03,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0f,0x00,0x1c,0x00,0x27,0x00,0x4f,0xb3,0x10,0x11,0x11,0x1a,0xb8,0x01,0x43,0x40,0x0e,0x27,0x13,0x19,0x1d,0x17,0x19,0x17,0x19,0x17,0x00,0x08,0x00,0x1b,0x18,0xb8,0x01,0x44,0x40,0x0b,0x16,0x11,0x1d,0x1d,0x12,0x1a,0x18,0x22,0x12,0x07,0x0c,0xba,0x01,0x42,0x00,0x04,0x01, +0x41,0x00,0x3f,0x3f,0x3f,0x33,0x3f,0x12,0x39,0x2f,0x33,0x33,0xe6,0x32,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x33,0xe6,0x32,0x11,0x33,0x30,0x31,0x13,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x11,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x01,0x23,0x11,0x21,0x02,0x00,0x07,0x15,0x21,0x11,0x33,0x11,0x33,0x25,0x3e, +0x03,0x37,0x33,0x06,0x06,0x15,0x11,0xb4,0x01,0x5b,0x01,0x5c,0x01,0xe5,0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe,0xa4,0xfe,0xa5,0xfe,0x1b,0xfe,0x1b,0xfe,0xa4,0xfe,0xa5,0x06,0x68,0xae,0xfe,0xfe,0xa4,0xfe,0xda,0x82,0x02,0x70,0xde,0xae,0xfc,0xde,0x35,0x6f,0x69,0x61,0x28,0x04,0x02,0x02,0x02,0xcd,0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe, +0xa4,0xfe,0xa5,0xfe,0x1b,0xfe,0x1a,0xfe,0xa6,0xfe,0xa4,0x01,0x5c,0x01,0x5b,0x01,0x4c,0x03,0x66,0xfe,0xe0,0xfe,0x4e,0xa4,0xa7,0xfe,0x83,0x01,0x7d,0xb7,0x3b,0x95,0xa4,0xa8,0x4e,0x2a,0x49,0x21,0xfe,0x2a,0x00,0x02,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0f,0x00,0x34,0x00,0x50,0xb1,0x23,0x17,0xb8,0x01,0x43,0xb2,0x2d, +0x34,0x21,0xb8,0x01,0x43,0x40,0x09,0x26,0x2d,0x26,0x2d,0x26,0x00,0x08,0x00,0x28,0xb8,0x01,0x44,0xb3,0x1c,0x1c,0x12,0x23,0xb8,0x01,0x44,0xb2,0x25,0x06,0x32,0xb8,0x01,0x44,0xb2,0x12,0x19,0x0c,0xba,0x01,0x42,0x00,0x04,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0x3f,0xe6,0x12,0x39,0x2f,0xe6,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f, +0x10,0xe6,0x33,0x10,0xe6,0x32,0x30,0x31,0x13,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x11,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x05,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x22,0x06,0x06,0x07,0x13,0x21,0x35,0x21,0x03,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x27,0xb4,0x01,0x5b,0x01,0x5c,0x01,0xe5, +0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe,0xa4,0xfe,0xa5,0xfe,0x1b,0xfe,0x1b,0xfe,0xa4,0xfe,0xa5,0x03,0x22,0x62,0xc7,0x6d,0xba,0x87,0x4d,0x4c,0x83,0xb0,0x63,0x07,0x1b,0x1f,0x1c,0x09,0x1b,0x01,0xec,0xfd,0x5e,0x3c,0xa5,0x3c,0x4a,0x7f,0x5d,0x35,0x2c,0x4c,0x65,0x39,0x97,0x94,0x02,0xcd,0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe,0xa4,0xfe, +0xa5,0xfe,0x1b,0xfe,0x1a,0xfe,0xa6,0xfe,0xa4,0x01,0x5c,0x01,0x5b,0xc5,0x3b,0x3f,0x77,0xab,0x6d,0x6f,0xa3,0x6a,0x34,0x01,0x02,0x01,0x01,0x72,0xc6,0xfc,0xff,0x0c,0x22,0x40,0x5d,0x3b,0x3e,0x62,0x44,0x23,0x5f,0x00,0x00,0x03,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x22,0x00,0x2e,0x00,0x5a,0xb5,0x0c,0x2c,0x0c, +0x2c,0x1d,0x17,0xbb,0x01,0x43,0x00,0x26,0x00,0x1d,0x01,0x43,0xb5,0x11,0x26,0x11,0x06,0x00,0x23,0xb8,0x01,0x44,0x40,0x0b,0x1a,0x1a,0x0e,0x29,0x22,0x20,0x09,0x12,0x48,0x22,0x20,0xb8,0x01,0x44,0xb2,0x0e,0x07,0x29,0xb8,0x01,0x44,0xb2,0x14,0x19,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0x3f,0xf6,0xcd, +0x2b,0x11,0x12,0x39,0x2f,0xe6,0x01,0x2f,0xc4,0x39,0x39,0x2f,0xe6,0x2f,0xe6,0x11,0x39,0x39,0x2f,0x2f,0x31,0x30,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x01,0x26,0x23,0x20,0x00,0x11,0x10,0x12,0x33,0x32,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x23,0x34,0x12,0x33,0x32,0x17,0x01,0x32,0x16,0x15,0x14,0x06,0x23, +0x22,0x26,0x35,0x34,0x36,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x05,0xf2,0x58,0x96,0xfe,0xf8,0xfe,0xbe,0xf6,0xd8,0xc4,0xfe,0xde,0xbc,0xad,0x61,0x03,0xc5,0xa4,0x7b,0x6f,0xfe,0x99,0x68,0x73,0x78,0x61,0x66,0x7c,0x7c,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b, +0xfd,0x49,0x02,0xb7,0x04,0xa1,0x29,0xfe,0x3e,0xfe,0x87,0xfe,0xc9,0xfe,0xa8,0x01,0x0b,0xd3,0xca,0xf1,0x8f,0xe0,0x01,0x23,0x39,0xfe,0x08,0x91,0x81,0x75,0x99,0xb0,0x7c,0x63,0x91,0x00,0x00,0x02,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x1a,0x00,0x3a,0xb2,0x0f,0x0c,0x15,0xb8,0x01,0x43,0x40,0x0e,0x14,0x0c,0x14, +0x0d,0x0d,0x14,0x0c,0x03,0x00,0x06,0x00,0x15,0x18,0x0f,0xb8,0x01,0x44,0xb2,0x0d,0x06,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0x3f,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xe6,0x11,0x33,0x30,0x31,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x01,0x21,0x15,0x21,0x06,0x0a, +0x02,0x07,0x33,0x36,0x1a,0x02,0x37,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x06,0x78,0xfc,0x64,0x02,0x91,0x66,0x9c,0x75,0x55,0x1f,0xec,0x11,0x4e,0x80,0xb4,0x77,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0x04,0xb2,0xc6,0xad,0xfe,0xbc,0xfe, +0xce,0xfe,0xdc,0x8d,0x94,0x01,0x38,0x01,0x4c,0x01,0x60,0xbc,0x00,0x04,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x25,0x00,0x39,0x00,0x4d,0x00,0x59,0x00,0x71,0xb3,0x21,0x0f,0x1e,0x44,0xb8,0x01,0x43,0xb2,0x14,0x14,0x0a,0xbb,0x01,0x43,0x00,0x30,0x00,0x3a,0x01,0x43,0xb2,0x1e,0x1e,0x26,0xb8,0x01,0x43,0x40,0x0b,0x00,0x30, +0x00,0x30,0x00,0x4e,0x54,0x4e,0x21,0x0f,0x2b,0xb8,0x01,0x44,0x40,0x09,0x60,0x49,0x70,0x49,0x02,0x49,0x49,0x51,0x57,0xbc,0x01,0x42,0x00,0x51,0x01,0x41,0x00,0x3f,0x01,0x44,0xb2,0x19,0x07,0x35,0xb8,0x01,0x44,0xb1,0x05,0x19,0x00,0x3f,0xe6,0x3f,0xe6,0x3f,0x3f,0x12,0x39,0x2f,0x5d,0xe6,0x39,0x39,0x01,0x2f,0x2f,0x12,0x39,0x39, +0x2f,0x2f,0x10,0xe6,0x33,0x2f,0xe6,0x10,0xe6,0x32,0x2f,0xe6,0x12,0x39,0x39,0x30,0x31,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x0e,0x03,0x17,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x13,0x34, +0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x01,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x03,0x76,0x47,0x7d,0xac,0x66,0x67,0xac,0x7c,0x44,0x1d,0x38,0x4f,0x32,0x24,0x3a,0x29,0x17,0x3e,0x6e,0x97,0x58,0x57,0x95,0x6f,0x3f,0x52,0x4d,0x32,0x51,0x39,0x1f,0xe8,0x24,0x40,0x57,0x34,0x37, +0x59,0x3f,0x22,0x23,0x40,0x59,0x35,0x37,0x59,0x3e,0x21,0x2d,0x1c,0x33,0x48,0x2b,0x29,0x46,0x34,0x1d,0x1e,0x34,0x46,0x28,0x28,0x46,0x35,0x1f,0xfc,0x29,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x01,0x97,0x5f,0xa0,0x76,0x42,0x42,0x76,0xa0,0x5f,0x34,0x6c,0x65,0x55,0x1d,0x1b,0x43,0x4e, +0x55,0x2c,0x4f,0x89,0x65,0x3a,0x39,0x65,0x89,0x50,0x5a,0x9e,0x35,0x1d,0x56,0x64,0x6c,0x26,0x35,0x5e,0x46,0x29,0x2b,0x48,0x5d,0x32,0x38,0x5e,0x43,0x26,0x25,0x43,0x5e,0x02,0xc3,0x28,0x47,0x35,0x1e,0x1d,0x33,0x48,0x2a,0x29,0x4a,0x3a,0x22,0x22,0x39,0x4b,0xfe,0xc7,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49, +0x02,0xb7,0x00,0x03,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x22,0x00,0x2e,0x00,0x5c,0xb5,0x0c,0x2c,0x0c,0x2c,0x1d,0x26,0xbb,0x01,0x43,0x00,0x17,0x00,0x11,0x01,0x43,0xb5,0x1d,0x1d,0x17,0x06,0x00,0x23,0xb8,0x01,0x44,0xb4,0x1a,0x1a,0x0e,0x29,0x22,0xb8,0xff,0xe0,0xb4,0x09,0x12,0x48,0x22,0x20,0xb8,0x01,0x44, +0xb2,0x0e,0x19,0x29,0xb8,0x01,0x44,0xb2,0x14,0x07,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0x3f,0xf6,0xcd,0x2b,0x11,0x12,0x39,0x2f,0xe6,0x01,0x2f,0xc4,0x39,0x39,0x2f,0xe6,0x2f,0xe6,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x05,0x16,0x33,0x20, +0x00,0x11,0x10,0x02,0x23,0x22,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x33,0x14,0x02,0x23,0x22,0x27,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x03,0x33,0x58,0x96,0x01,0x08,0x01,0x42,0xf6,0xd8,0xc4,0xfe,0xde,0xbc,0xad,0x61, +0x03,0xc5,0xa4,0x7b,0x6f,0x01,0x67,0x68,0x73,0x78,0x61,0x66,0x7c,0x7c,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0xd7,0x29,0x01,0xc2,0x01,0x79,0x01,0x37,0x01,0x58,0xfe,0xf5,0xd3,0xca,0xf1,0x8f,0xe0,0xfe,0xdd,0x39,0x01,0xf8,0x91,0x81,0x75,0x99,0xb0,0x7c,0x63,0x91,0x00,0x05,0x00,0xbc, +0xff,0x2f,0x03,0xea,0x06,0x50,0x00,0x17,0x00,0x1e,0x00,0x22,0x00,0x26,0x00,0x2d,0x00,0x5d,0x40,0x34,0x1c,0x0d,0x1f,0x91,0x2c,0x24,0x24,0x20,0x2b,0x23,0x91,0x05,0x80,0x03,0x01,0x03,0x01,0x03,0x1d,0x20,0x91,0x14,0x16,0x00,0x09,0x7d,0x29,0x1d,0x1c,0x0c,0x2c,0x05,0x05,0x15,0x8c,0x21,0x25,0x02,0x03,0x16,0x29,0x16,0x00,0x10, +0x7d,0x1a,0x1a,0x2f,0x24,0x20,0x7e,0x00,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x17,0x33,0xed,0x17,0x32,0x2f,0xe1,0x00,0x2f,0xc6,0x33,0xed,0x32,0x3f,0xc6,0x5d,0x33,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x39,0x32,0x31,0x30,0x33,0x11,0x21,0x35,0x33,0x15,0x16,0x17,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15, +0x14,0x07,0x06,0x07,0x15,0x23,0x35,0x37,0x36,0x35,0x34,0x27,0x11,0x36,0x01,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0x13,0x36,0x35,0x34,0x27,0x11,0x36,0xbc,0x01,0x3a,0x68,0x93,0x5b,0x66,0x84,0x74,0x8a,0xa6,0x7a,0x6e,0xa4,0x68,0xfd,0x47,0xdc,0x5c,0xfe,0xaa,0x92,0x92,0x92,0xc6,0x46,0xa4,0x37,0x05,0x9a,0xb6,0xb7,0x09,0x51,0x5b, +0x92,0x7a,0xb4,0x26,0x04,0x11,0xb9,0x94,0xb8,0x72,0x68,0x09,0xd2,0xd1,0xde,0x46,0x7a,0xd8,0x20,0xfe,0x05,0x0b,0x01,0xf6,0xfd,0xfc,0x02,0x04,0x02,0x66,0xfe,0x31,0x01,0xcf,0xfe,0x73,0x43,0x79,0xab,0x1f,0xfe,0x45,0x10,0x00,0x00,0x02,0x00,0x48,0x02,0x34,0x02,0xa5,0x05,0xae,0x00,0x0a,0x00,0x12,0x00,0x1f,0x40,0x10,0x0b,0xe6, +0x06,0x27,0x0f,0xe6,0x00,0x29,0x08,0xcc,0x11,0x11,0x14,0x0d,0xcc,0x03,0x2f,0xed,0x12,0x39,0x2f,0xed,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x20,0x11,0x14,0x06,0x03,0x22,0x11,0x10,0x33,0x32,0x11,0x10,0x01,0x6d,0x8b,0x9a,0xa1,0x99,0x01,0x23,0xa3,0x87,0xa9,0xa6,0xa4,0x02,0x34,0xdb,0xd1,0xe5, +0xe9,0xfe,0x47,0xdb,0xe6,0x03,0x03,0xfe,0xaf,0xfe,0xc6,0x01,0x40,0x01,0x4b,0x00,0x00,0x02,0x00,0x49,0x02,0x34,0x02,0xa6,0x05,0xae,0x00,0x26,0x00,0x36,0x00,0x3c,0x40,0x23,0x04,0x10,0x14,0x10,0x02,0x27,0xe6,0x04,0x10,0x14,0x10,0x02,0x10,0x10,0x31,0x06,0xe6,0x24,0x27,0x31,0xe6,0x1a,0x29,0x01,0x01,0x1f,0x15,0xcc,0x34,0x34, +0x38,0x2c,0x0c,0xcc,0x1f,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x5d,0x31,0x30,0x01,0x15,0x2e,0x03,0x23,0x22,0x06,0x07,0x06,0x06,0x15,0x33,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x03,0x22,0x0e, +0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x63,0x0e,0x28,0x2b,0x2c,0x12,0x39,0x55,0x21,0x1f,0x2d,0x04,0x1d,0x6e,0x4e,0x3c,0x5f,0x42,0x23,0x2d,0x4f,0x6b,0x3d,0x3f,0x72,0x56,0x32,0x38,0x65,0x8c,0x54,0x2b,0x52,0xc1,0x22,0x3c,0x2c,0x1a,0x15,0x29,0x3a,0x25,0x4b,0x55,0x4d,0x05,0x8b,0x81,0x09,0x10,0x0c,0x07, +0x24,0x24,0x22,0x7f,0x61,0x32,0x41,0x27,0x47,0x63,0x3d,0x3d,0x68,0x4d,0x2b,0x31,0x63,0x99,0x67,0x75,0xb5,0x7c,0x40,0x12,0xfe,0x59,0x15,0x28,0x38,0x24,0x22,0x41,0x32,0x1e,0x5b,0x49,0x4e,0x5a,0x00,0x02,0x00,0x49,0x02,0x33,0x02,0xa6,0x05,0xae,0x00,0x27,0x00,0x39,0x00,0x3c,0x40,0x23,0x0b,0x0b,0x1b,0x0b,0x02,0x30,0xe6,0x0b, +0x0b,0x1b,0x0b,0x02,0x0b,0x0b,0x1f,0x28,0xe6,0x15,0x27,0x00,0xe6,0x1f,0x29,0x23,0x23,0x10,0x1a,0xcc,0x35,0x06,0x06,0x3b,0x2d,0xcc,0x10,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x11,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x5d,0xed,0x5d,0x31,0x30,0x01,0x32,0x3e,0x02,0x35,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34, +0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x1e,0x03,0x13,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x01,0x34,0x42,0x5e,0x3c,0x1b,0x04,0x0d,0x2b,0x37,0x42,0x24,0x3c,0x61,0x46,0x26,0x2a,0x4d,0x6c,0x41,0x40,0x72,0x55,0x32,0x30,0x5d,0x8a,0x5b,0x30,0x61,0x26,0x13, +0x2e,0x30,0x30,0x52,0x21,0x39,0x2a,0x18,0x52,0x45,0x20,0x3d,0x2f,0x1d,0x19,0x2c,0x3c,0x02,0xaa,0x33,0x5c,0x7e,0x4b,0x1c,0x2f,0x21,0x13,0x26,0x47,0x63,0x3c,0x3f,0x6a,0x4c,0x2a,0x33,0x65,0x96,0x64,0x69,0xb4,0x82,0x4a,0x17,0x16,0x7f,0x0b,0x13,0x0f,0x08,0x02,0x8e,0x17,0x2b,0x3f,0x28,0x4c,0x56,0x16,0x26,0x33,0x1d,0x2a,0x47, +0x32,0x1c,0x00,0x01,0x00,0x5d,0x02,0xcb,0x02,0x91,0x04,0xff,0x00,0x0b,0x00,0x1b,0x40,0x10,0x04,0x7f,0x07,0x9f,0x07,0x02,0x3f,0x07,0xdf,0x07,0xff,0x07,0x03,0x07,0x02,0x03,0x2f,0xcd,0x00,0x2f,0x5d,0x71,0xcd,0x31,0x30,0x01,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x02,0x91,0xe8,0x64,0xe8,0xe8,0x64,0xe8,0x03, +0xb3,0xe8,0xe8,0x64,0xe8,0xe8,0x00,0x01,0x00,0x5d,0x03,0xb3,0x02,0x91,0x04,0x17,0x00,0x03,0x00,0x1b,0x40,0x10,0x02,0x7f,0x01,0x9f,0x01,0x02,0x3f,0x01,0xdf,0x01,0xff,0x01,0x03,0x01,0x02,0x03,0x2f,0xcd,0x00,0x2f,0x5d,0x71,0xcd,0x31,0x30,0x13,0x21,0x15,0x21,0x5d,0x02,0x34,0xfd,0xcc,0x04,0x17,0x64,0x00,0x00,0x02,0x00,0x5d, +0x03,0x22,0x02,0x91,0x04,0xa8,0x00,0x03,0x00,0x07,0x00,0x21,0x40,0x11,0x03,0x40,0x00,0x80,0x07,0x0f,0x04,0x2f,0x04,0x3f,0x04,0x03,0x04,0x06,0x07,0x02,0x03,0x2f,0xcd,0x33,0x32,0x00,0x2f,0x5d,0xcd,0x1a,0xde,0x1a,0xcd,0x31,0x30,0x13,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x5d,0x02,0x34,0xfd,0xcc,0x02,0x34,0xfd,0xcc,0x03,0x86, +0x64,0x01,0x86,0x64,0x00,0x01,0x00,0xcc,0x01,0xce,0x02,0x06,0x05,0xee,0x00,0x09,0x00,0x1a,0x40,0x0d,0xdf,0x05,0x01,0x40,0x05,0x01,0x05,0x01,0x06,0x00,0x08,0xcd,0x03,0x2f,0xed,0xd4,0xc6,0x00,0x2f,0x2f,0x5d,0x5d,0x31,0x30,0x01,0x23,0x26,0x11,0x10,0x37,0x33,0x06,0x11,0x10,0x02,0x05,0x7f,0xba,0xba,0x80,0xbc,0x01,0xce,0xd4, +0x01,0x38,0x01,0x38,0xdc,0xe4,0xfe,0xd1,0xfe,0xd3,0x00,0x01,0x00,0x64,0x01,0xce,0x01,0x9e,0x05,0xee,0x00,0x09,0x00,0x1a,0x40,0x0d,0xdf,0x03,0x01,0x40,0x03,0x01,0x03,0x09,0x09,0x03,0x06,0xcd,0x01,0x2f,0xfd,0xd4,0xc6,0x00,0x2f,0x2f,0x5d,0x5d,0x31,0x30,0x00,0x11,0x10,0x27,0x33,0x16,0x11,0x10,0x07,0x23,0x01,0x20,0xbc,0x80, +0xba,0xba,0x7f,0x02,0xae,0x01,0x2d,0x01,0x2f,0xe4,0xdc,0xfe,0xc8,0xfe,0xc8,0xd4,0x00,0x02,0x00,0x5b,0x02,0xcd,0x01,0x05,0x06,0xeb,0x00,0x0b,0x00,0x0f,0x00,0x1c,0x40,0x0d,0x0d,0x24,0x00,0x40,0x06,0x80,0x0e,0x03,0x09,0x0c,0xc2,0x03,0x0d,0x2f,0xc4,0xfd,0xc4,0x00,0x3f,0x1a,0xdc,0x1a,0xcd,0x3f,0x31,0x30,0x13,0x22,0x26,0x35, +0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x23,0x11,0x33,0xaf,0x25,0x2f,0x2f,0x25,0x26,0x30,0x30,0x19,0x80,0x80,0x06,0x54,0x2b,0x21,0x1f,0x2c,0x2c,0x1f,0x20,0x2c,0xfc,0x79,0x02,0xcf,0x00,0xff,0xff,0x00,0x68,0x03,0x74,0x02,0x92,0x06,0xda,0x02,0x07,0x00,0xf1,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x81,0x03,0x5f,0x02,0x8e, +0x06,0xda,0x02,0x07,0x00,0xf2,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x50,0x03,0x74,0x01,0xc2,0x06,0xdc,0x02,0x07,0x00,0xf0,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x48,0x03,0x60,0x02,0xa5,0x06,0xda,0x02,0x07,0x08,0x8d,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x2f,0x03,0x74,0x02,0xaa,0x06,0xc6,0x02,0x07,0x02,0x38,0x00,0x00,0x01,0x2c, +0xff,0xff,0x00,0x7b,0x03,0x5f,0x02,0x8a,0x06,0xca,0x02,0x07,0x02,0x39,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x49,0x03,0x60,0x02,0xa6,0x06,0xda,0x02,0x07,0x08,0x8e,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x4d,0x03,0x74,0x02,0xa0,0x06,0xd0,0x02,0x07,0x02,0x3a,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x41,0x03,0x60,0x02,0xad,0x06,0xda, +0x02,0x07,0x02,0x3b,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x49,0x03,0x5f,0x02,0xa6,0x06,0xda,0x02,0x07,0x08,0x8f,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x5d,0x03,0xf7,0x02,0x91,0x06,0x2b,0x02,0x07,0x08,0x90,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x5d,0x04,0xdf,0x02,0x91,0x05,0x43,0x02,0x07,0x08,0x91,0x00,0x00,0x01,0x2c,0xff,0xff, +0x00,0x5d,0x04,0x4e,0x02,0x91,0x05,0xd4,0x02,0x07,0x08,0x92,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0xcc,0x02,0xfa,0x02,0x06,0x07,0x1a,0x02,0x07,0x08,0x93,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x64,0x02,0xfa,0x01,0x9e,0x07,0x1a,0x02,0x07,0x08,0x94,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x48,0xfe,0xfa,0x02,0xa5,0x02,0x74,0x03,0x07, +0x08,0x8d,0x00,0x00,0xfc,0xc6,0x00,0x0e,0xb7,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x50,0xff,0x0e,0x01,0xc2,0x02,0x76,0x03,0x07,0x00,0xf0,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x68,0xff,0x0e,0x02,0x92,0x02,0x74, +0x03,0x07,0x00,0xf1,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x81,0xfe,0xf9,0x02,0x8e,0x02,0x74,0x03,0x07,0x00,0xf2,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x2f,0xff,0x0e,0x02,0xaa,0x02,0x60, +0x03,0x07,0x02,0x38,0x00,0x00,0xfc,0xc6,0x00,0x0e,0xb7,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x7b,0xfe,0xf9,0x02,0x8a,0x02,0x64,0x03,0x07,0x02,0x39,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x49,0xfe,0xfa,0x02,0xa6, +0x02,0x74,0x03,0x07,0x08,0x8e,0x00,0x00,0xfc,0xc6,0x00,0x0e,0xb7,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x4d,0xff,0x0e,0x02,0xa0,0x02,0x6a,0x03,0x07,0x02,0x3a,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x41,0xfe,0xfa, +0x02,0xad,0x02,0x74,0x03,0x07,0x02,0x3b,0x00,0x00,0xfc,0xc6,0x00,0x11,0x40,0x09,0x02,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x49,0xfe,0xf9,0x02,0xa6,0x02,0x74,0x03,0x07,0x08,0x8f,0x00,0x00,0xfc,0xc6,0x00,0x0e,0xb7,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d, +0x35,0x35,0xff,0xff,0x00,0x5d,0xff,0x91,0x02,0x91,0x01,0xc5,0x03,0x07,0x08,0x90,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x5d,0x00,0x79,0x02,0x91,0x00,0xdd,0x03,0x07,0x08,0x91,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11, +0x5d,0x35,0xff,0xff,0x00,0x5d,0xff,0xe8,0x02,0x91,0x01,0x6e,0x03,0x07,0x08,0x92,0x00,0x00,0xfc,0xc6,0x00,0x0e,0xb7,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xcc,0xfe,0x94,0x02,0x06,0x02,0xb4,0x03,0x07,0x08,0x93,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00, +0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x64,0xfe,0x94,0x01,0x9e,0x02,0xb4,0x03,0x07,0x08,0x94,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x00,0x02,0x00,0xbc,0xfe,0x7e,0x06,0x12,0x07,0x4e,0x00,0x17,0x00,0x24,0x00,0x77,0x40,0x16,0x24,0xc4,0x18,0x1e,0xc4,0x1f,0x1f,0x00,0x0c,0x0f, +0x04,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7e,0x0e,0xb8,0xff,0xfe,0x40,0x17,0x0b,0x06,0x4d,0x0e,0x04,0x03,0x40,0x01,0x01,0x00,0x04,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x16,0x05,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x05,0xb8,0xff,0xdc,0x40,0x11,0x0b,0x06,0x4d,0x05,0x24,0x1e,0x80,0x21,0xda,0x1b,0x17, +0x03,0x00,0x91,0x05,0x12,0x03,0x00,0x2f,0x3f,0xed,0x3f,0xd6,0xed,0x1a,0xcc,0x32,0x01,0x2f,0x2b,0x2b,0x33,0xf1,0x2b,0x2b,0xc1,0x2f,0x1a,0xcd,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x32,0x12,0x39,0x2f,0xfd,0xd4,0xed,0x31,0x30,0x25,0x33,0x03,0x23,0x13,0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x01,0x23,0x11,0x33,0x11,0x14,0x07,0x33,0x36, +0x37,0x01,0x33,0x03,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x05,0x40,0xd2,0xb8,0xc1,0xab,0xac,0x0a,0x06,0x13,0x1b,0xfd,0x1e,0xd0,0xa8,0x08,0x04,0x16,0x22,0x02,0xd0,0xd8,0xd4,0x0f,0xc5,0x94,0x98,0xbf,0x09,0xa2,0x0e,0xb2,0x50,0x68,0x0c,0x96,0xfd,0xe8,0x01,0x82,0x04,0x0c,0x8c,0x39,0x31,0x29,0xfb,0x89, +0x05,0x9a,0xfc,0x0e,0xa2,0x31,0x2c,0x34,0x04,0x65,0x01,0xb4,0x8d,0xa3,0xa3,0x8d,0xbc,0x63,0x59,0x00,0x00,0x02,0x00,0xa6,0xfe,0x8b,0x04,0xda,0x05,0xf2,0x00,0x11,0x00,0x1e,0x00,0x49,0x40,0x0a,0x1e,0xc4,0x12,0x18,0xc4,0x19,0x19,0x01,0x05,0x08,0xb8,0x01,0x2e,0xb6,0x07,0x00,0x11,0x0f,0x0f,0x40,0x0e,0xb8,0x01,0x2e,0x40,0x0f, +0x0c,0x01,0x11,0x1e,0x18,0x80,0x1b,0xda,0x15,0x0d,0x0f,0x0e,0xec,0x01,0x15,0x00,0x3f,0xed,0x3f,0xd6,0xed,0x1a,0xcc,0x32,0x2f,0x01,0x2f,0x33,0xf1,0x1a,0xc9,0x2f,0xcd,0x39,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xfd,0xd4,0xed,0x31,0x30,0x21,0x23,0x11,0x06,0x07,0x01,0x23,0x11,0x33,0x11,0x36,0x37,0x01,0x33,0x11,0x33,0x03,0x23,0x13, +0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x04,0x19,0xad,0x16,0x2d,0xfe,0x27,0xaa,0x96,0x0c,0x28,0x01,0xe6,0xaa,0xda,0xb0,0xb4,0x4e,0x0f,0xc5,0x94,0x98,0xbf,0x09,0xa2,0x0e,0xb2,0x50,0x68,0x0c,0x03,0x31,0x2b,0x4e,0xfd,0x48,0x04,0x00,0xfc,0xd9,0x1d,0x46,0x02,0xc4,0xfc,0x96,0xfd,0xf5,0x07,0x67,0x8d,0xa3, +0xa3,0x8d,0xbc,0x63,0x59,0x00,0x00,0x01,0x00,0x10,0xfe,0x7e,0x05,0x76,0x05,0x9a,0x00,0x16,0x00,0x62,0x40,0x19,0x0b,0x18,0x0b,0x00,0x4d,0x04,0x03,0x01,0x01,0x00,0x08,0x0b,0x0d,0x06,0x4c,0x00,0x7e,0x07,0x15,0x05,0x28,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x05,0xb8,0xff,0xda,0x40,0x1a,0x0b,0x06,0x4d,0x20, +0x05,0x01,0x05,0x15,0x05,0x15,0x18,0x0f,0x06,0x91,0x16,0x03,0x0f,0x11,0x91,0x0c,0x13,0x00,0x91,0x05,0x12,0x03,0x00,0x2f,0x3f,0xed,0x3f,0xfd,0xc6,0x3f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x2b,0x2b,0x11,0x33,0xf1,0x2b,0xc1,0x2f,0xcd,0x39,0x31,0x30,0x00,0x2b,0x25,0x33,0x03,0x23,0x13,0x23,0x11,0x21,0x02,0x02, +0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x12,0x13,0x21,0x04,0xa4,0xd2,0xb8,0xc1,0xab,0xac,0xfe,0x72,0x45,0x50,0x52,0x8c,0x62,0x4f,0x3a,0x33,0x3e,0x3e,0x6d,0x71,0x45,0x02,0xc2,0x96,0xfd,0xe8,0x01,0x82,0x05,0x02,0xfd,0xe2,0xfe,0x40,0xd4,0x67,0x15,0x9e,0x1d,0x94,0x02,0x6e,0x02,0x19,0x00,0x01,0x00,0x10,0xfe,0x8b, +0x04,0x6c,0x04,0x00,0x00,0x12,0x00,0x36,0x40,0x1c,0x07,0xed,0x11,0x04,0x03,0x01,0x01,0x00,0x84,0x11,0x0d,0x05,0x05,0x14,0x0d,0x06,0x95,0x12,0x0f,0x0f,0x95,0x0a,0x15,0x00,0xec,0x05,0x15,0x03,0x00,0x2f,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x12,0x39,0x2f,0x12,0x39,0xf1,0xc1,0x2f,0xcd,0x39,0x10,0xed,0x31,0x30,0x25,0x33, +0x03,0x23,0x13,0x23,0x11,0x23,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x03,0x91,0xdb,0xb0,0xb4,0xa3,0xbd,0xee,0x29,0xc7,0xa8,0x33,0x25,0x23,0x29,0xdc,0x3f,0x02,0x1a,0x96,0xfd,0xf5,0x01,0x75,0x03,0x75,0xfe,0x0f,0xfe,0x6e,0x0e,0x8d,0x12,0x03,0x85,0x00,0x01,0x00,0xbc,0xfe,0x7e,0x05,0xc4,0x05,0x9a,0x00,0x0f, +0x00,0x4c,0x40,0x17,0x02,0x06,0x91,0x40,0x0b,0x0a,0x07,0x0b,0x91,0x2b,0x30,0x0d,0x0a,0x03,0x0f,0x91,0x04,0x40,0x04,0x07,0x03,0x00,0x01,0xb8,0x01,0x2c,0x40,0x0e,0x02,0x80,0x00,0x00,0x0f,0x7e,0x0c,0x05,0x05,0x11,0x0b,0x07,0x7e,0x08,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xf1,0xc1,0x2f,0x1a,0xdd,0xe1,0x12,0x39,0x00,0x2f,0x33, +0x1a,0x10,0xed,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x2f,0x31,0x30,0x25,0x03,0x23,0x13,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x05,0xc4,0xb8,0xc1,0xab,0xac,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0xa8,0x96,0xfd,0xe8,0x01,0x82,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfa,0xfc,0x00,0x01,0x00,0xa6, +0xfe,0x8b,0x04,0xd3,0x04,0x00,0x00,0x0f,0x00,0x4a,0x40,0x14,0x06,0x95,0x40,0x0b,0x0a,0x07,0x0b,0x95,0x2b,0x30,0x0d,0x0a,0x0f,0x02,0x0f,0xec,0x04,0x04,0x07,0x01,0xb8,0x01,0x2c,0x40,0x10,0x02,0x03,0x00,0x00,0x03,0x03,0x0f,0x84,0x0c,0x05,0x05,0x11,0x0b,0x06,0x84,0x08,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xe1,0x32,0x2f,0x33, +0x2f,0x10,0xdd,0xe1,0x00,0x2f,0x33,0x10,0xed,0x2f,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x25,0x03,0x23,0x13,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x04,0xd3,0xb0,0xb4,0xa3,0xbe,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0xa4,0x96,0xfd,0xf5,0x01,0x75,0x01,0xd1,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4, +0xfc,0x96,0x00,0x01,0x00,0xbc,0xfe,0x7e,0x07,0x44,0x05,0x9a,0x00,0x1f,0x00,0x2b,0x40,0x15,0x04,0x03,0x01,0x01,0x00,0x7e,0x1e,0x05,0x05,0x21,0x17,0x14,0x7e,0x15,0x1f,0x03,0x00,0x91,0x05,0x12,0x03,0x00,0x2f,0x3f,0xed,0x3f,0x01,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xf1,0xc1,0x2f,0xcd,0x39,0x31,0x30,0x25,0x33,0x03,0x23,0x13, +0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x06,0x72,0xd2,0xb8,0xc1,0xab,0xab,0x0e,0x04,0x18,0x13,0xfe,0x16,0x52,0xfe,0x17,0x15,0x16,0x04,0x08,0xa2,0xde,0x01,0xb8,0x33,0x0f,0x06,0x2b,0x1a,0x01,0xc1,0xd2,0x96,0xfd,0xe8,0x01,0x82, +0x03,0xc2,0x72,0xa5,0x61,0x2a,0xfb,0xb2,0x04,0x46,0x30,0x63,0x56,0xc3,0xfc,0x40,0x05,0x9a,0xfc,0x18,0x73,0x39,0x76,0x3a,0x03,0xe4,0x00,0x01,0x00,0xa6,0xfe,0x8b,0x05,0xd3,0x04,0x00,0x00,0x17,0x00,0x29,0x40,0x14,0x04,0x03,0x01,0x16,0x00,0x84,0x05,0x05,0x19,0x11,0x0e,0xed,0x0f,0x17,0x0f,0x00,0xec,0x05,0x15,0x03,0x00,0x2f, +0x3f,0xed,0x3f,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xe1,0x33,0xdd,0xcd,0x39,0x31,0x30,0x25,0x33,0x03,0x23,0x13,0x23,0x11,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x37,0x01,0x33,0x04,0xf8,0xdb,0xb0,0xb4,0xa3,0xbc,0x16,0x2e,0xff,0x00,0x93,0xfe,0xf8,0x15,0x2f,0x8d,0xd1,0x01,0x0e,0x1d,0x2d,0x49, +0x01,0x06,0xda,0x96,0xfd,0xf5,0x01,0x75,0x03,0x4c,0x40,0x7c,0xfd,0x70,0x02,0x90,0x35,0x87,0xfc,0xb4,0x04,0x00,0xfd,0x64,0x49,0x81,0xc6,0x02,0xa0,0x00,0x00,0x01,0x00,0x5a,0x01,0xfa,0x03,0xf6,0x02,0x7b,0x00,0x03,0x00,0x0e,0xb4,0x03,0x02,0x01,0xeb,0x02,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0xf6, +0xfc,0x64,0x03,0x9c,0x01,0xfa,0x81,0x00,0x00,0x02,0x00,0x6e,0x03,0xf4,0x02,0xa0,0x05,0xb2,0x00,0x03,0x00,0x07,0x00,0x1c,0x40,0x0e,0x05,0xb4,0x07,0x01,0xb4,0x03,0x06,0xb3,0x07,0x04,0x02,0xb3,0x03,0x04,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x13,0x23,0x03,0x21,0x13,0x23,0x03,0x01,0x04,0x6c,0x76, +0x8c,0x01,0xc3,0x6f,0x76,0x8c,0x05,0xb2,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x01,0xbe,0x00,0x03,0x00,0x8d,0x03,0xdb,0x03,0x9d,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x20,0x40,0x0e,0x08,0x0a,0x04,0x06,0x00,0x02,0x0a,0x06,0x02,0xb3,0x0b,0x07,0x03,0x03,0x00,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcd,0x2f,0xcd,0x2f,0xcd, +0x31,0x30,0x01,0x03,0x23,0x13,0x21,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x01,0x69,0x69,0x73,0x55,0x02,0xbb,0x6a,0x74,0x56,0x93,0x69,0x73,0x55,0x05,0x9a,0xfe,0x41,0x01,0xbf,0xfe,0x41,0x01,0xbf,0xfe,0x41,0x01,0xbf,0x00,0x03,0x00,0xe8,0x00,0x69,0x04,0x94,0x04,0x3a,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x43,0x40,0x1b,0x02,0x01, +0xbe,0x59,0x0a,0x02,0x0e,0x59,0x0a,0x09,0xbe,0x59,0x06,0x05,0xbe,0x59,0x0a,0x06,0x42,0x06,0x4f,0x0a,0x01,0x0a,0x03,0x0b,0x04,0xb8,0xff,0xe0,0xb6,0x0c,0x06,0x4d,0x04,0x02,0x0a,0x05,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x05,0x2f,0x2b,0x33,0x33,0x2f,0x2b,0x33,0x33,0x00,0x2f,0x5d,0xc6,0x2b,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x25, +0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x04,0x94,0xfc,0x54,0x03,0xac,0xfc,0x54,0x03,0xac,0xfc,0x54,0x03,0xac,0x69,0x84,0x02,0xc9,0x84,0xfd,0xd9,0x84,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x03,0xdf,0x05,0xb2,0x00,0x15,0x00,0x1f,0x40,0x0f,0x0b,0x15,0x15,0x17,0x10,0x7d,0x05,0x0d,0x91,0x08,0x04,0x13,0x91,0x02, +0x13,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xe1,0x11,0x39,0x2f,0x33,0x31,0x30,0x25,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x37,0x03,0xdf,0x85,0xc7,0xff,0x00,0xfe,0xcb,0x01,0x5b,0x01,0x0b,0xab,0x70,0x7c,0x96,0xc7,0xf8,0xe7,0xbc,0xaf,0x7f,0x3c,0x54,0x01,0x8a,0x01, +0x40,0x01,0x58,0x01,0xa8,0x3b,0xb3,0x56,0xfe,0xb6,0xfe,0xec,0xfe,0xfa,0xfe,0xc9,0x60,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x05,0xd2,0x05,0x9a,0x00,0x25,0x00,0x32,0x40,0x1a,0x0b,0x7e,0x09,0x0c,0x0c,0x27,0x00,0x23,0x7e,0x24,0x04,0x1e,0x10,0x03,0x25,0x18,0x18,0x24,0x25,0x03,0x24,0x12,0x0c,0x12,0x09,0x03,0x00,0x3f,0x3f,0x3f, +0x3f,0x12,0x39,0x2f,0x12,0x17,0x39,0x01,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xe1,0x31,0x30,0x01,0x01,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x11,0x23,0x11,0x34,0x36,0x37,0x23,0x0e,0x03,0x07,0x01,0x23,0x01,0x2e,0x03,0x27,0x23,0x16,0x16,0x15,0x11,0x23,0x11,0x01,0x95,0x01,0x74,0x19,0x21,0x08,0x06,0x0a,0x1d,0x1a,0x01, +0x64,0xdc,0xa7,0x07,0x07,0x04,0x07,0x18,0x1b,0x16,0x05,0xfe,0x8f,0x52,0xfe,0x90,0x04,0x19,0x1a,0x17,0x05,0x04,0x04,0x04,0xa2,0x05,0x9a,0xfd,0x56,0x2d,0x4e,0x1d,0x1e,0x50,0x2e,0x02,0xa6,0xfa,0x66,0x03,0xc2,0x39,0x91,0x53,0x18,0x3b,0x37,0x2c,0x0b,0xfd,0x58,0x02,0xa6,0x0c,0x2d,0x37,0x3a,0x19,0x2b,0x92,0x62,0xfc,0x40,0x05, +0x9a,0x00,0x00,0x01,0x00,0xa6,0xfe,0x2a,0x04,0xf8,0x04,0x00,0x00,0x13,0x00,0x32,0x40,0x1a,0x13,0x84,0x12,0x02,0x02,0x15,0x0d,0x09,0xed,0x0c,0x12,0x0f,0x10,0x09,0x02,0x03,0x0c,0x06,0x06,0x01,0x0c,0x0f,0x0b,0x1b,0x01,0x15,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x17,0x39,0x3f,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0xe1, +0x31,0x30,0x21,0x23,0x11,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x37,0x01,0x33,0x04,0xf8,0xa2,0x16,0x2e,0xff,0x00,0x93,0xfe,0xf8,0x15,0x2f,0x8d,0xd1,0x01,0x0e,0x1d,0x2d,0x49,0x01,0x06,0xda,0x03,0x4c,0x2c,0x54,0xfe,0x42,0x01,0xbe,0x24,0x5c,0xfa,0xde,0x05,0xd6,0xfe,0x33,0x32,0x59,0x89,0x01, +0xcf,0x00,0x00,0x01,0xff,0xdc,0xfe,0x68,0x00,0x24,0x06,0xd6,0x00,0x03,0x00,0x11,0xb3,0x03,0x02,0x1b,0x01,0xb9,0x04,0xf1,0x00,0x02,0x2f,0xed,0x00,0x3f,0x2f,0x31,0x30,0x13,0x11,0x23,0x11,0x24,0x48,0x06,0xd6,0xf7,0x92,0x08,0x6e,0x00,0x00,0x01,0xff,0x25,0xfe,0x68,0x00,0xdb,0x06,0xd6,0x00,0x0e,0x00,0x44,0x40,0x0c,0x07,0x06, +0x03,0x04,0x01,0x09,0x0a,0x0d,0x0c,0x08,0x0b,0x00,0xb8,0x04,0xf1,0x40,0x13,0x05,0x01,0x0a,0x09,0x07,0x0c,0x0d,0x08,0x0b,0x05,0x02,0x0e,0x05,0x04,0x03,0x06,0x07,0x01,0x1b,0x00,0x3f,0x2f,0x33,0xdc,0x32,0x17,0x39,0xc4,0x32,0x10,0xc4,0x32,0x01,0x2f,0x33,0xfd,0x32,0x39,0xde,0x32,0xc4,0x32,0x10,0xde,0x32,0xc4,0x32,0x31,0x30, +0x13,0x23,0x11,0x07,0x27,0x37,0x27,0x37,0x17,0x37,0x17,0x07,0x17,0x07,0x27,0x24,0x48,0x86,0x31,0xab,0xab,0x31,0xaa,0xaa,0x31,0xab,0xab,0x31,0x86,0xfe,0x68,0x07,0x43,0x88,0x31,0xa9,0xa8,0x31,0xab,0xab,0x31,0xa8,0xa9,0x31,0x88,0x00,0x00,0x01,0xff,0xdc,0xfe,0x68,0x01,0xaf,0x06,0xd6,0x00,0x0a,0x00,0x30,0xb7,0x0a,0x09,0x03, +0x08,0x00,0x01,0x02,0x07,0xb8,0x04,0xf1,0xb4,0x04,0x02,0x01,0x00,0x04,0xb8,0x04,0xf1,0xb4,0x08,0x09,0x0a,0x05,0x1b,0x00,0x3f,0x2f,0x33,0xdd,0xfd,0x39,0xcc,0x32,0x01,0x2f,0xed,0xde,0x32,0xcd,0x39,0x39,0xc4,0x32,0x31,0x30,0x01,0x07,0x27,0x37,0x21,0x11,0x23,0x11,0x21,0x27,0x37,0x01,0xaf,0xd9,0x31,0x89,0xfe,0xf6,0x48,0x01, +0x52,0x89,0x31,0x05,0xff,0xd6,0x31,0x82,0xf8,0x8c,0x07,0xbb,0x82,0x31,0x00,0x01,0xfe,0x51,0xfe,0x68,0x00,0x24,0x06,0xd6,0x00,0x0a,0x00,0x32,0xb7,0x03,0x09,0x06,0x05,0x04,0x07,0x08,0x0a,0xb8,0x04,0xf1,0xb5,0x02,0x06,0x09,0x04,0x05,0x02,0xb8,0x04,0xf1,0xb4,0x09,0x08,0x07,0x00,0x1b,0x00,0x3f,0x2f,0x33,0xdd,0xfd,0xcc,0x32, +0x12,0x39,0x01,0x2f,0xed,0xdc,0x32,0xc4,0x32,0xcd,0x39,0x39,0x31,0x30,0x13,0x23,0x11,0x21,0x17,0x07,0x27,0x37,0x17,0x07,0x21,0x24,0x48,0xfe,0xf6,0x89,0x31,0xd9,0xd9,0x31,0x89,0x01,0x52,0xfe,0x68,0x07,0x74,0x82,0x31,0xd6,0xd7,0x31,0x82,0x00,0x00,0x01,0x00,0xab,0xff,0xf2,0x02,0x01,0x05,0xec,0x00,0x0e,0x00,0x1b,0xb1,0x0e, +0x09,0xb8,0x05,0x0a,0xb2,0x06,0x07,0x0e,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x01,0x2f,0xed,0xc4,0x31,0x30,0x05,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x02,0x01,0x14,0x66,0x7f,0x45,0x18,0x9c,0x0a,0x26,0x4a,0x40,0x0e,0x3e,0x66,0x82,0x45,0x04,0x8f,0xfb,0xac,0x42,0x60,0x3f,0x1e,0x00, +0xff,0xff,0x00,0x49,0xff,0xf2,0x02,0x01,0x07,0xe9,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x09,0x7e,0x00,0x00,0xff,0xff,0xff,0xa2,0xff,0xf2,0x02,0x65,0x07,0x30,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x09,0x37,0x00,0x00,0xff,0xff,0x00,0x49,0xfd,0xfe,0x02,0x01,0x05,0xec,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x09,0x7f, +0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x01,0xf2,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9a,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9a,0x05,0xca,0x02,0x26,0x0e,0x6f, +0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x9c,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0xfe,0xab,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x03,0x54,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0xa3,0xff,0xa7,0x00,0x01,0xff,0xba,0xff,0xf2, +0x04,0x7c,0x03,0x0f,0x00,0x28,0x00,0x2c,0x40,0x0a,0x0c,0x21,0x2a,0x15,0x21,0x0c,0x20,0x03,0x00,0x12,0xb8,0x04,0xff,0xb4,0x2f,0x19,0x01,0x19,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x12,0x17,0x39,0x01,0x2f,0x12,0x39,0x39,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37, +0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x0e,0x05,0x23,0x23,0x23,0x23,0x23,0x3b,0x7b,0xe0,0xcf,0xbf,0x5a,0x39,0x60,0x68,0x7c,0x57,0x4e,0x7e,0x33,0x37,0x84,0x4e,0x50,0x7c,0x6a,0x61,0x69,0x7a,0x4e,0x20,0x2b,0x73,0x92,0xb1,0xd0,0xf1,0x88,0x0e,0x34,0x20,0x20,0x33,0x37,0x59,0x70,0x39, +0x05,0x1b,0x35,0x2b,0x1b,0x14,0x10,0x9d,0x12,0x17,0x1d,0x2b,0x32,0x2c,0x1e,0x01,0xc8,0x0a,0x42,0x59,0x62,0x53,0x36,0x00,0x00,0x01,0x00,0x7e,0xfd,0xff,0x04,0xad,0x03,0x54,0x00,0x40,0x00,0x5c,0xb9,0x00,0x03,0x05,0x0b,0x40,0x0c,0x0f,0x00,0x0f,0x1c,0x0f,0x35,0x35,0x0f,0x1c,0x03,0x09,0x14,0xb8,0x05,0x0a,0xb3,0x25,0x09,0x03, +0x0f,0xb8,0x04,0xfb,0xb5,0x40,0x39,0x2d,0x2d,0x20,0x32,0xbb,0x04,0xff,0x00,0x39,0x00,0x19,0x04,0xfc,0xb6,0x1f,0x20,0x2f,0x20,0x02,0x20,0x08,0xba,0x04,0xfb,0x00,0x09,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0xe4,0x32,0x01,0x2f,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed, +0x31,0x30,0x01,0x06,0x06,0x07,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x04,0x0c,0x22,0x40,0x1e,0x05,0x26,0x46,0x69,0x47,0x18,0x63, +0x8f,0x5f,0x31,0x05,0x8d,0xc0,0x75,0x32,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0x02,0x01,0x09,0x12,0x09,0x60,0x7e,0x49,0x1d,0xa7,0x3f,0x75,0xa6,0x67,0x33,0x6e,0x77,0x80, +0x45,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x7c,0x04,0x61,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x03,0xb1,0xff,0xff, +0x00,0x7e,0xfd,0xff,0x04,0xad,0x04,0xda,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x2a,0x00,0x01,0xff,0xba,0xff,0xf2,0x05,0xf4,0x03,0x0f,0x00,0x42,0x00,0x60,0xb1,0x18,0x00,0xbb,0x05,0x0a,0x00,0x40,0x00,0x0d,0x05,0x0a,0x40,0x09,0x0a,0x21,0x33,0x40,0x0a,0x40,0x0a,0x44,0x36,0xb8,0x05,0x0a,0xb6,0x33, +0x41,0x2f,0x35,0x01,0x35,0x26,0xba,0x05,0x03,0x00,0x1d,0x05,0x03,0xb7,0x3b,0x2e,0x2e,0x2d,0x2d,0x21,0x18,0x05,0xba,0x04,0xfb,0x00,0x12,0x05,0x03,0xb3,0x2f,0x0b,0x01,0x0b,0x00,0x2f,0x5d,0x3f,0xed,0x39,0x39,0x32,0x11,0x33,0x11,0x33,0x3f,0x3f,0x2f,0x5d,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10, +0xed,0x39,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x03,0xf3,0x0b,0x27, +0x48,0x3e,0x26,0x40,0x2e,0x19,0x9c,0x39,0x5d,0x77,0x3f,0x2c,0x4f,0x42,0x34,0x12,0x04,0x1a,0x42,0x47,0x48,0x21,0x64,0x77,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0x0b,0x24,0x44,0x39,0x24,0x43,0x33,0x1f,0x9c,0x01,0x98,0x43,0x60,0x3e,0x1e,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe, +0x37,0x6c,0x85,0x4a,0x19,0x0d,0x1c,0x2f,0x23,0x23,0x2f,0x1d,0x0c,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0x0b,0xc9,0x41,0x5f,0x3e,0x1e,0x10,0x2a,0x48,0x38,0x01,0x0b,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4,0x05,0x1f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xa4,0x03,0x57, +0x00,0x02,0xff,0xba,0xff,0xea,0x07,0x4b,0x03,0x3c,0x00,0x39,0x00,0x4b,0x00,0x52,0xb9,0x00,0x2a,0x05,0x0a,0x40,0x0d,0x3f,0x49,0x1e,0x1e,0x15,0x3f,0x3f,0x4d,0x16,0x15,0x00,0x15,0x31,0xba,0x05,0x03,0x00,0x44,0x04,0xfb,0x40,0x0f,0x2f,0x25,0x01,0x25,0x2f,0x15,0x01,0x15,0x49,0x49,0x3a,0x3a,0x1e,0x1e,0x0c,0xba,0x04,0xfb,0x00, +0x05,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x33,0x11,0x33,0x2f,0x2f,0x5d,0x2f,0x5d,0xed,0x3f,0x12,0x39,0x01,0x2f,0xcd,0x12,0x39,0x2f,0x12,0x39,0x10,0xcd,0x10,0xed,0x31,0x30,0x25,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x17,0x3e,0x05,0x33,0x32, +0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x24,0x26,0x26,0x27,0x26,0x26,0x27,0x25,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x16,0x16,0x01,0x98,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x27,0x42,0x30,0x1c,0x0f,0x0d,0x9a,0x0b,0x0d,0x08,0x03,0x11,0x21,0x36,0x28,0x18,0x4c,0x67,0x81,0x9a,0xb4, +0x65,0x79,0xae,0x70,0x36,0x2d,0x52,0x71,0x88,0x9a,0x52,0xb3,0xff,0x00,0xaf,0x69,0x1b,0x23,0x2e,0x14,0x03,0x61,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x6e,0xbc,0x97,0x6e,0x1f,0x5c,0xee,0x6d,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x18,0x27,0x33,0x1b,0x30,0x6e,0x3d,0x3f,0x72,0x3a,0x17,0x2b,0x22,0x15,0x02,0x41,0x96,0x95, +0x8b,0x6a,0x40,0x4b,0x80,0xab,0x60,0x5d,0x80,0x55,0x2f,0x16,0x05,0x01,0x06,0x0d,0x0c,0x0f,0x31,0x23,0x26,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0x5c,0x92,0xb5,0x5a,0x02,0x01,0x00,0x00,0x01,0x00,0xb9,0x01,0xac,0x02,0x89,0x03,0x7c,0x00,0x13,0x00,0x13,0xb6,0x0f,0x05,0x05,0x15,0x14,0x00,0x0a,0x00,0x2f,0xcd,0x11,0x12,0x01, +0x39,0x2f,0xcd,0x31,0x30,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0xa3,0x29,0x52,0x45,0x2a,0x2b,0x44,0x52,0x29,0x29,0x51,0x43,0x29,0x29,0x43,0x51,0x01,0xac,0x29,0x43,0x51,0x29,0x28,0x53,0x44,0x2b,0x2a,0x45,0x52,0x29,0x29,0x51,0x43,0x29,0x00,0x01,0x00,0x2b,0x00,0x00,0x01,0x56, +0x05,0x9a,0x00,0x0f,0x00,0x19,0xbc,0x00,0x08,0x05,0x0a,0x00,0x09,0x00,0x08,0x04,0xe6,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x3f,0x01,0x2f,0xed,0x31,0x30,0x13,0x1e,0x05,0x15,0x11,0x23,0x11,0x34,0x26,0x26,0x02,0x27,0xcb,0x17,0x26,0x1f,0x18,0x0f,0x08,0x9c,0x11,0x23,0x36,0x25,0x05,0x9a,0x62,0xad,0xa2,0x9f,0xaa,0xb9,0x6c, +0xfe,0x85,0x01,0x73,0x94,0xff,0xf8,0x01,0x03,0x99,0x00,0x01,0x00,0x2b,0x00,0x00,0x03,0x50,0x05,0x9a,0x00,0x0f,0x00,0x28,0xb5,0x03,0x0a,0x01,0x01,0x11,0x09,0xbd,0x05,0x0a,0x00,0x0a,0x00,0x09,0x04,0xe6,0x00,0x02,0x04,0xfb,0xb3,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0xed,0x3f,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x31,0x30, +0x13,0x21,0x15,0x21,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x26,0x26,0x02,0x2b,0x03,0x25,0xfd,0xa1,0x19,0x26,0x19,0x0d,0x9c,0x11,0x23,0x36,0x05,0x9a,0xa7,0x71,0xca,0xd0,0xe4,0x89,0xfe,0x85,0x01,0x73,0x94,0xff,0xf8,0x01,0x03,0x00,0x01,0x00,0x2b,0x00,0x00,0x04,0x1a,0x05,0x9a,0x00,0x38,0x00,0x5c,0xb3,0x1c,0x0d,0x32,0x1f,0xbb, +0x05,0x0a,0x00,0x1a,0x00,0x10,0x05,0x0a,0x40,0x0d,0x0b,0x27,0x0b,0x1a,0x0b,0x1a,0x0b,0x3a,0x32,0x03,0x2b,0x2b,0x31,0xbb,0x05,0x0a,0x00,0x32,0x00,0x31,0x04,0xe6,0xb4,0x2b,0x2b,0x29,0x29,0x24,0xb8,0x04,0xfc,0xb7,0x06,0x15,0x1c,0x0d,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0x32,0x2f,0x33,0xed,0x32,0x2f,0x32,0x2f,0x3f,0x01, +0x2f,0xed,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x13,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x27,0x1e, +0x03,0x15,0x11,0x23,0x11,0x34,0x26,0x26,0x02,0x27,0xcb,0x15,0x24,0x0f,0x15,0x26,0x11,0x2a,0x3b,0x26,0x11,0x24,0x9d,0x24,0x1f,0x1d,0x34,0x17,0x2a,0x3b,0x26,0x11,0x24,0x9d,0x24,0x26,0x4a,0x6c,0x46,0x2d,0x67,0x3c,0x47,0x63,0x29,0x2b,0x0b,0x10,0x0b,0x06,0x9c,0x11,0x23,0x36,0x25,0x05,0x9a,0x5b,0xa1,0x4c,0x05,0x04,0x1c,0x30, +0x3f,0x24,0x54,0x4e,0x59,0x56,0x51,0x40,0x09,0x08,0x1c,0x30,0x3f,0x24,0x54,0x4e,0x59,0x56,0x3e,0x6b,0x4f,0x2d,0x18,0x1c,0x33,0x09,0x43,0x88,0x91,0x9f,0x5a,0xfe,0x85,0x01,0x73,0x94,0xff,0xf8,0x01,0x03,0x99,0x00,0x00,0x01,0x00,0x62,0xff,0xea,0x02,0xf5,0x05,0xb8,0x00,0x31,0x00,0x3f,0xb9,0x00,0x2c,0x05,0x0a,0xb2,0x21,0x21, +0x07,0xb8,0x05,0x0a,0xb7,0x17,0x17,0x33,0x32,0x31,0x1c,0x12,0x27,0xb8,0x05,0x02,0xb7,0x2f,0x26,0x01,0x26,0x0f,0x10,0x10,0x0c,0xba,0x04,0xfb,0x00,0x12,0x05,0x03,0x00,0x3f,0xed,0x33,0x11,0x33,0x2f,0x5d,0xed,0x12,0x39,0x39,0x11,0x12,0x01,0x39,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x0e,0x05,0x15,0x14,0x1e,0x02,0x33,0x32, +0x36,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x02,0x67,0x54,0x76,0x50,0x2e,0x18,0x07,0x2b,0x47,0x58,0x2d,0x4b,0x79,0x3a,0x7e,0x8e,0x47,0x8b,0x70,0x45,0x1b,0x42,0x6f,0x54,0x50,0x6b,0x3f,0x1a,0x2c,0x6d,0xb6,0x8a,0x73,0x87,0x45, +0x14,0x1f,0x52,0x90,0x72,0x03,0x13,0x4e,0x7f,0x67,0x50,0x3b,0x29,0x0c,0x2a,0x35,0x1d,0x0a,0x13,0x0f,0xa5,0x2c,0x1d,0x40,0x65,0x47,0x29,0x69,0x7e,0x93,0x53,0x25,0x44,0x45,0x49,0x2a,0x36,0x71,0x6f,0x69,0x2f,0xb0,0x24,0x46,0x3f,0x33,0x10,0x18,0x29,0x35,0x48,0x38,0x00,0x02,0x00,0x4f,0x00,0x9c,0x03,0xa9,0x04,0xd2,0x00,0x15, +0x00,0x29,0x00,0x31,0xb9,0x00,0x1b,0x05,0x0a,0xb3,0x0f,0x0f,0x2a,0x05,0xbb,0x05,0x0a,0x00,0x25,0x00,0x0a,0x04,0xfb,0xb4,0x2f,0x20,0x01,0x20,0x16,0xb8,0x04,0xff,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x11,0x33,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e, +0x02,0x35,0x34,0x3e,0x04,0x17,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x01,0xf4,0x47,0x9b,0x80,0x53,0x3d,0x72,0xa4,0x67,0x65,0x9b,0x6a,0x36,0x27,0x41,0x56,0x5e,0x5f,0x28,0x28,0x5c,0x4e,0x34,0x2a,0x48,0x5f,0x36,0x4a,0x6a,0x45,0x20,0x3b,0x56,0x62,0x04,0xd2,0x55,0xa5,0xf2,0x9c,0x60,0x9f, +0x71,0x3e,0x38,0x66,0x90,0x59,0x69,0xb7,0x99,0x78,0x52,0x2c,0xa2,0x4a,0x85,0xbb,0x70,0x41,0x5c,0x3a,0x1a,0x22,0x3e,0x58,0x37,0x77,0xbd,0x83,0x45,0x00,0x00,0x01,0xff,0xef,0x00,0x00,0x03,0x92,0x05,0x9a,0x00,0x15,0x00,0x22,0xb1,0x15,0x0e,0xb8,0x05,0x0a,0xb2,0x00,0x09,0x0a,0xb8,0x04,0xfb,0xb4,0x2f,0x0d,0x01,0x0d,0x00,0xb8, +0x04,0xe6,0x00,0x3f,0x2f,0x5d,0xed,0x01,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x2e,0x07,0x27,0x27,0x21,0x35,0x21,0x17,0x1e,0x05,0x17,0x02,0xee,0x18,0x25,0x1c,0x15,0x0e,0x0b,0x07,0x06,0x03,0x03,0xfd,0x9b,0x02,0xfc,0x06,0x04,0x08,0x0d,0x14,0x21,0x31,0x22,0x66,0xa6,0x8e,0x7c,0x79,0x7b,0x8d,0xa4,0x65,0x53,0xa7,0xc6,0x8c,0xd7, +0xb7,0xa6,0xb5,0xd5,0x8a,0x00,0x00,0x01,0xff,0xf4,0x00,0x00,0x03,0xfa,0x05,0x9a,0x00,0x11,0x00,0x14,0xb1,0x04,0x0b,0xb8,0x04,0xe6,0xb4,0x07,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0x3f,0x39,0x31,0x30,0x13,0x12,0x12,0x13,0x33,0x12,0x12,0x13,0x33,0x02,0x02,0x03,0x23,0x26,0x0a,0x02,0x27,0x93,0x65,0xae,0x4e,0x06,0x51,0xad, +0x64,0x9e,0x80,0xd8,0x61,0x94,0x33,0x69,0x6d,0x73,0x3d,0x05,0x9a,0xfe,0xf0,0xfd,0xc1,0xfe,0xcb,0x01,0x36,0x02,0x3f,0x01,0x0f,0xfe,0x9f,0xfd,0x39,0xfe,0x8e,0xc2,0x01,0x71,0x01,0x64,0x01,0x59,0xaa,0x00,0x00,0x01,0x00,0x49,0x00,0x00,0x04,0x4f,0x05,0x9a,0x00,0x11,0x00,0x21,0x40,0x0d,0x11,0x00,0x00,0x13,0x07,0x08,0x04,0x2f, +0x0d,0x01,0x0d,0x07,0x00,0xb8,0x04,0xe6,0x00,0x3f,0x32,0x2f,0x5d,0x39,0x01,0x2f,0x33,0x12,0x39,0x11,0x33,0x31,0x30,0x21,0x02,0x02,0x03,0x23,0x02,0x02,0x03,0x23,0x36,0x1a,0x02,0x37,0x33,0x12,0x12,0x13,0x03,0xb0,0x65,0xae,0x4e,0x06,0x51,0xad,0x64,0x9e,0x40,0x75,0x6d,0x66,0x31,0x94,0x66,0xd8,0x7b,0x01,0x10,0x02,0x3f,0x01, +0x35,0xfe,0xca,0xfd,0xc1,0xfe,0xf1,0xb1,0x01,0x61,0x01,0x65,0x01,0x6a,0xb9,0xfe,0x7d,0xfd,0x3c,0xfe,0xad,0x00,0x00,0x02,0x00,0x22,0x00,0x00,0x03,0xdb,0x05,0xa8,0x00,0x1e,0x00,0x33,0x00,0x3a,0xb9,0x00,0x1a,0x05,0x0a,0xb4,0x06,0x1f,0x1f,0x35,0x2c,0xb8,0x05,0x0a,0xb2,0x0d,0x06,0x08,0xb8,0x04,0xfb,0xb4,0x2f,0x31,0x01,0x31, +0x27,0xb8,0x04,0xfb,0xb4,0x2f,0x12,0x01,0x12,0x00,0xb8,0x04,0xe6,0x00,0x3f,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x21,0x23,0x2e,0x03,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03,0x01,0x2e,0x03,0x27,0x26,0x26,0x23,0x22,0x0e, +0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x03,0xdb,0x9f,0x29,0x36,0x24,0x15,0x08,0x7e,0x78,0x50,0x8d,0x69,0x3e,0x33,0x60,0x8c,0x5a,0x58,0x8d,0x3c,0x20,0x26,0x16,0x0c,0x06,0x07,0x14,0x26,0x3e,0xfe,0xe5,0x04,0x08,0x0a,0x0e,0x0a,0x23,0x6f,0x45,0x2c,0x4b,0x37,0x20,0x28,0x46,0x61,0x39,0x30,0x67,0x61,0xbd,0xb1,0xa3,0x48,0x3b, +0x34,0x61,0x8e,0x5a,0x50,0x9a,0x78,0x4a,0x51,0x5e,0x33,0x63,0x6d,0x7b,0x49,0x52,0xb5,0xcb,0xe2,0x02,0xd4,0x2a,0x42,0x38,0x32,0x1a,0x58,0x61,0x26,0x40,0x58,0x31,0x37,0x56,0x3c,0x1f,0x17,0x00,0xff,0xff,0xff,0xba,0xff,0xea,0x07,0x4b,0x04,0xb2,0x02,0x26,0x08,0xd6,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x1e,0x04,0x02,0x00,0x01, +0xff,0xba,0xff,0xf2,0x04,0x3c,0x03,0x8a,0x00,0x2c,0x00,0x36,0xb9,0x00,0x24,0x05,0x0a,0xb5,0x13,0x13,0x2e,0x2d,0x1c,0x1f,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x18,0x01,0x18,0x00,0x2c,0x2c,0x29,0x29,0x0c,0xba,0x04,0xfb,0x00,0x05,0x05,0x03,0x00,0x3f,0xed,0x32,0x11,0x33,0x11,0x33,0x2f,0x5d,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0xed, +0x31,0x30,0x25,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x37,0x04,0x3c,0x78,0xd5,0xc9,0xc5,0x67,0xfa,0x23,0x23,0x23,0x23,0x01,0x71,0x01,0x3e,0x4e,0x2c,0x0f,0x45,0x82,0xbc,0x77,0x28, +0x59,0x30,0x2e,0x63,0x36,0x3f,0x76,0x5c,0x37,0x16,0x36,0x5c,0x47,0x80,0xf9,0x8c,0xab,0x37,0x47,0x2a,0x11,0x34,0x20,0x20,0x33,0x06,0x33,0x63,0x5c,0x51,0x21,0x4f,0x8e,0x6b,0x3f,0x08,0x09,0xaa,0x08,0x0b,0x14,0x35,0x5a,0x45,0x21,0x4c,0x53,0x59,0x2e,0x19,0x54,0x42,0x00,0x02,0xff,0xba,0xff,0xf2,0x04,0xad,0x03,0x5e,0x00,0x29, +0x00,0x38,0x00,0x47,0xb3,0x28,0x13,0x23,0x31,0xb8,0x05,0x0a,0xb3,0x16,0x16,0x39,0x23,0xb8,0x05,0x0a,0xb7,0x2a,0x05,0x13,0x28,0x34,0x04,0x01,0x2d,0xb8,0x04,0xff,0xb7,0x2f,0x1c,0x01,0x1c,0x10,0x0f,0x0f,0x00,0xbb,0x04,0xfb,0x00,0x08,0x00,0x01,0x05,0x03,0x00,0x3f,0x33,0xed,0x32,0x11,0x33,0x2f,0x5d,0xed,0x12,0x17,0x39,0x01, +0x2f,0xed,0x11,0x33,0x2f,0xed,0x12,0x39,0x39,0x31,0x30,0x25,0x15,0x23,0x22,0x26,0x27,0x06,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x36,0x37,0x26,0x26,0x27,0x35,0x3e,0x03,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x02,0x07,0x16,0x03,0x34,0x26,0x23,0x22,0x06,0x07,0x15,0x16,0x16,0x17,0x3e,0x03,0x04,0xad,0x3e,0x87, +0xef,0x6d,0x67,0xfe,0xf0,0xae,0x67,0x23,0x23,0x23,0x23,0x71,0x80,0xc7,0x4f,0x6a,0xad,0x45,0x2d,0x72,0x7e,0x85,0x3f,0x27,0x54,0x50,0x47,0x36,0x20,0x19,0x35,0x52,0x39,0xb8,0x7c,0x79,0x67,0x4c,0x9e,0x49,0x45,0xa7,0x69,0x34,0x49,0x2d,0x14,0x99,0xa7,0x4a,0x45,0x40,0x4f,0x34,0x20,0x20,0x33,0x2a,0x23,0x58,0xd0,0x70,0xad,0x07, +0x12,0x0f,0x0b,0x05,0x10,0x1c,0x2d,0x41,0x2c,0x26,0x65,0x70,0x74,0x36,0x55,0x01,0xcb,0x33,0x2a,0x0f,0x08,0x0b,0x6a,0xb1,0x48,0x29,0x58,0x51,0x42,0x00,0x00,0x02,0x00,0x65,0xfd,0xff,0x04,0xad,0x03,0x95,0x00,0x3c,0x00,0x4a,0x00,0x63,0xb3,0x3a,0x23,0x1e,0x35,0xbb,0x05,0x0a,0x00,0x3d,0x00,0x44,0x05,0x0a,0xb2,0x28,0x28,0x0d, +0xb8,0x05,0x0a,0x40,0x0e,0x1e,0x3d,0x1e,0x3d,0x1e,0x4c,0x4b,0x08,0x3a,0x23,0x46,0x04,0x02,0x40,0xb8,0x04,0xff,0xb5,0x2f,0x2e,0x01,0x2e,0x15,0x12,0xb8,0x04,0xfc,0xb7,0x16,0x1f,0x19,0x2f,0x19,0x02,0x19,0x00,0xba,0x04,0xfb,0x00,0x02,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0x33,0xed,0x32,0x2f,0x5d,0xed,0x12,0x17,0x39,0x11,0x12, +0x01,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x25,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x27,0x35,0x3e,0x03,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x02,0x07,0x16,0x16, +0x03,0x34,0x26,0x23,0x22,0x06,0x07,0x15,0x16,0x17,0x3e,0x03,0x04,0x98,0x15,0x3e,0x56,0xa3,0x98,0x8d,0x40,0x4d,0x68,0x40,0x1b,0x2e,0x63,0x9e,0x71,0x61,0xc7,0x64,0x6d,0xbf,0x64,0x98,0xd7,0x89,0x40,0x1c,0x48,0x7e,0x62,0x20,0x46,0x44,0x3e,0x16,0x2d,0x72,0x7f,0x85,0x3f,0x27,0x54,0x4f,0x48,0x35,0x20,0x1b,0x48,0x80,0x66,0x70, +0xf2,0xb6,0x78,0x67,0x4c,0x9f,0x49,0x71,0x87,0x55,0x6e,0x40,0x18,0x99,0xa7,0x26,0x45,0x61,0x3b,0x20,0x46,0x4a,0x4f,0x28,0x40,0x72,0x55,0x32,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5b,0x36,0x69,0x69,0x67,0x33,0x22,0x58,0x5e,0x5d,0x26,0xa5,0x07,0x12,0x0f,0x0b,0x06,0x0f,0x1b,0x2c,0x3e,0x2a,0x23,0x5f,0x6b,0x6f,0x31,0x52, +0x59,0x02,0x07,0x2f,0x29,0x0f,0x08,0x0d,0xb0,0x81,0x26,0x4d,0x44,0x36,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x3c,0x04,0xe4,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x1d,0x04,0x34,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x04,0xb2,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x02,0xff,0xff, +0x00,0x65,0xfd,0xff,0x04,0xad,0x05,0x01,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x51,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x05,0x24,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x05,0x24,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07, +0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x05,0x24,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x05,0x24,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07, +0x0f,0x51,0x00,0xd5,0x04,0x74,0x00,0x01,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0x02,0x00,0x21,0x00,0x33,0xb9,0x00,0x1a,0x05,0x0a,0x40,0x12,0x0c,0x0c,0x23,0x22,0x11,0x12,0x0c,0x1a,0x15,0x12,0x04,0x00,0x14,0x2f,0x13,0x01,0x13,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0x33,0x12,0x17,0x39,0x11,0x33,0x11, +0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x35,0x01,0x15,0x01,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x23,0x23,0x23,0x01,0x28,0x61,0x80,0x4c,0x1e,0x58,0xa4,0xe7,0x90,0x03,0x4b,0xfd,0x66,0x8b,0xe1,0x9e,0x56,0x0b,0x23,0x42,0x6d,0xa0,0x6f,0x0e,0x34, +0x20,0x20,0x33,0x16,0x2a,0x3f,0x29,0x4c,0x8c,0x86,0x85,0x46,0x76,0x02,0x22,0xb0,0xfe,0x5f,0x42,0x8a,0x97,0xa6,0x5d,0x1e,0x4a,0x4d,0x49,0x39,0x22,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x01,0xf2,0x05,0xec,0x00,0x16,0x00,0x20,0xb9,0x00,0x08,0x05,0x0a,0xb4,0x05,0x05,0x18,0x17,0x00,0xbb,0x04,0xfb,0x00,0x0f,0x05,0x03,0x00,0x06, +0x00,0x2f,0x3f,0xed,0x11,0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x37,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x99,0x2e,0x47,0x30,0x18,0x9c,0x1c,0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x99,0x0f,0x2a,0x48,0x39,0x04,0x99,0xfb,0x60,0x4b,0x6e,0x4c,0x31,0x1a,0x0a,0x34, +0x20,0x20,0x33,0x00,0x00,0x02,0xff,0xba,0xff,0xf2,0x03,0xf4,0x02,0xaf,0x00,0x23,0x00,0x33,0x00,0x39,0xb9,0x00,0x16,0x05,0x0a,0x40,0x0a,0x2a,0x2a,0x35,0x34,0x20,0x24,0x0c,0x03,0x11,0x1b,0xba,0x05,0x03,0x00,0x2f,0x04,0xfb,0xb5,0x2f,0x11,0x01,0x11,0x27,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x5d, +0xed,0x3f,0x12,0x17,0x39,0x11,0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x01,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x23,0x23,0x23,0x23,0x1a,0x3f,0x57, +0x3b,0x22,0x0b,0x14,0x37,0x54,0x79,0x56,0x61,0x8b,0x58,0x2a,0x2b,0x56,0x81,0x57,0x36,0x63,0x58,0x4b,0x1f,0x35,0x9a,0x5e,0x01,0x6e,0x2a,0x8f,0x55,0x5e,0x6a,0x1a,0x35,0x52,0x38,0x32,0x4e,0x3f,0x2d,0x0e,0x34,0x20,0x20,0x33,0x2e,0x41,0x48,0x1a,0x2f,0x72,0x62,0x42,0x4d,0x74,0x86,0x3a,0x3b,0x72,0x59,0x36,0x17,0x28,0x35,0x1f, +0x50,0x43,0x01,0x13,0x34,0x37,0x44,0x46,0x21,0x50,0x45,0x2f,0x28,0x47,0x5f,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x01,0xf9,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x53,0xff,0xf2,0x05,0x32,0x04,0x53,0x02,0x06,0x0e,0x5c,0x00,0x00,0x00,0x03,0x00,0x67,0xfd,0xff,0x05,0x58, +0x03,0x56,0x00,0x2f,0x00,0x3f,0x00,0x4f,0x00,0x61,0xb1,0x3f,0x40,0xb8,0x05,0x0a,0xb7,0x00,0x0b,0x0b,0x00,0x00,0x50,0x24,0x17,0xb8,0x05,0x0a,0xb4,0x35,0x4a,0x4a,0x35,0x45,0xb8,0x04,0xfb,0xb6,0x1f,0x29,0x2f,0x29,0x02,0x29,0x3a,0xb8,0x04,0xfb,0x40,0x0c,0x2f,0x12,0x01,0x12,0x3f,0x30,0x30,0x1e,0x1e,0x1d,0x1d,0x0b,0xb8,0x04, +0xfb,0xb2,0x40,0x20,0x00,0xb8,0x05,0x03,0x00,0x3f,0x32,0x32,0xed,0x32,0x11,0x33,0x11,0x33,0x11,0x33,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x11,0x33,0x2f,0x33,0x2f,0x10,0xed,0x32,0x31,0x30,0x05,0x22,0x2e,0x02,0x27,0x27,0x1e,0x03,0x33,0x3e,0x05,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x17, +0x21,0x15,0x21,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x04,0x01,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x07,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x02,0x01,0x53,0x7d,0x5b,0x3c,0x13,0x20,0x2c,0x5a,0x65,0x73,0x45,0x15,0x41,0x4e,0x55,0x52,0x49,0x1c,0x2e,0x53,0x3f,0x25,0x17, +0x27,0x34,0x1c,0x02,0x01,0x45,0xfe,0xc0,0x01,0x48,0x40,0x28,0x48,0x64,0x3d,0x26,0x55,0x56,0x50,0x3f,0x29,0x01,0x21,0x30,0x52,0x3a,0x21,0x11,0x1e,0x27,0x15,0x1a,0x48,0x48,0x3c,0x0e,0x0b,0x04,0x2e,0x45,0x52,0x29,0x21,0x2d,0x1c,0x0d,0x20,0x3d,0x58,0x38,0x0e,0x03,0x04,0x06,0x03,0xa9,0x05,0x07,0x04,0x02,0x85,0xcf,0x9c,0x6c, +0x43,0x1e,0x45,0x6e,0x88,0x43,0x35,0x5b,0x4e,0x41,0x19,0x07,0xa7,0x06,0x2d,0x78,0x3e,0x34,0x60,0x4a,0x2c,0x14,0x2e,0x4b,0x6f,0x96,0x01,0x08,0x33,0x53,0x69,0x36,0x28,0x55,0x46,0x2c,0x47,0x87,0xc7,0x7f,0xa7,0x58,0x7d,0x50,0x26,0x16,0x22,0x2c,0x16,0x24,0x4b,0x3c,0x26,0x00,0x00,0x02,0x00,0xa1,0xff,0xf2,0x04,0x02,0x03,0xd7, +0x00,0x1b,0x00,0x29,0x00,0x3f,0xb9,0x00,0x1c,0x05,0x0a,0xb4,0x16,0x16,0x2a,0x24,0x01,0xbb,0x05,0x0a,0x00,0x00,0x00,0x11,0x04,0xfb,0xb4,0x2f,0x21,0x01,0x21,0x07,0xbc,0x04,0xfb,0x00,0x08,0x05,0x03,0x00,0x25,0x04,0xfc,0xb4,0x1b,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0xdd,0xed,0x3f,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x33,0x11, +0x33,0x2f,0xed,0x31,0x30,0x01,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x01,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x11,0x0e,0x03,0x02,0xac,0x9c,0x0f,0x29,0x48,0x3a,0x16,0x38,0x64,0x50,0x3a,0x0e,0x2b,0x62,0x2a,0x45,0x7f,0x62,0x3a,0x58,0x92,0xbc,0x65, +0xfe,0x8b,0x24,0x3a,0x4f,0x2a,0x27,0x55,0x22,0x4c,0x88,0x66,0x3b,0x03,0xd7,0xfd,0xb5,0x3e,0x5c,0x3c,0x1d,0xa7,0x19,0x35,0x52,0x3a,0x11,0x0c,0x20,0x45,0x6c,0x4d,0x5e,0x92,0x68,0x42,0x0f,0xfe,0x66,0x26,0x35,0x21,0x0e,0x0a,0x0b,0x01,0x76,0x0e,0x2f,0x41,0x52,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x48,0x03,0x0f,0x02,0x26, +0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0x9a,0xfd,0xd3,0x06,0xae,0x02,0x13,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0x01,0xfd,0xd8,0xff,0xff,0x00,0xa1,0xff,0xf2,0x04,0x02,0x05,0x64,0x02,0x26,0x08,0xf3,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x29,0x04,0xb4,0x00,0x01,0x00,0x9a, +0xff,0x02,0x06,0xae,0x02,0x13,0x00,0x44,0x00,0x4c,0xb9,0x00,0x36,0x05,0x0a,0xb2,0x0f,0x0f,0x14,0xb8,0x05,0x0a,0xb3,0x31,0x31,0x46,0x27,0xbb,0x05,0x0a,0x00,0x20,0x00,0x0c,0x04,0xff,0xb4,0x2f,0x3b,0x01,0x3b,0x1b,0xb8,0x04,0xfb,0x40,0x09,0x2f,0x2c,0x01,0x2c,0x2f,0x24,0x01,0x24,0x00,0xba,0x04,0xfb,0x00,0x01,0x05,0x03,0x00, +0x3f,0xed,0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x25,0x15,0x23,0x22,0x2e,0x04,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e, +0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x05,0x06,0xae,0x16,0x43,0x67,0x4e,0x3b,0x2d,0x25,0x12,0x17,0x2b,0x18,0x1d,0x27,0x20,0x26,0x20,0x2d,0x4e,0x68,0x77,0x80,0x3e,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x21,0x5a,0xa1,0x81,0x54,0x81,0x59,0x2d,0x20,0x26,0x20,0x26,0x41,0x57,0x30,0x31,0x60,0x27,0x11,0x1e, +0x21,0x2a,0x3b,0x52,0x99,0xa7,0x21,0x35,0x45,0x47,0x44,0x1b,0x23,0x1c,0x22,0x24,0x21,0x2c,0x2f,0x3e,0x34,0x3a,0x5c,0x47,0x31,0x20,0x0e,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6f,0x3e,0x4a,0x7c,0x5c,0x33,0x16,0x27,0x35,0x20,0x1c,0x2b,0x30,0x41,0x32,0x35,0x57,0x3e,0x22,0x2c,0x3a,0x1a,0x3d,0x3d,0x3a,0x2c,0x1a,0x00,0x01, +0x00,0x6f,0xff,0xea,0x01,0x76,0x01,0xe7,0x00,0x12,0x00,0x1c,0xb1,0x09,0x0e,0xb8,0x05,0x0c,0xb5,0x05,0x05,0x14,0x13,0x08,0x00,0xb8,0x05,0x03,0x00,0x3f,0xcd,0x11,0x12,0x01,0x39,0x2f,0xed,0x39,0x31,0x30,0x17,0x22,0x2e,0x02,0x35,0x34,0x37,0x13,0x33,0x03,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0xf1,0x1b,0x2f,0x23,0x15,0x0a,0x6a, +0x75,0x4b,0x64,0x02,0x03,0x15,0x24,0x30,0x16,0x15,0x24,0x2f,0x1b,0x15,0x1e,0x01,0x47,0xfe,0xe3,0x23,0x0e,0x18,0x0b,0x23,0x35,0x23,0x11,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x14,0x05,0x3e,0x02,0x26,0x0e,0x6f,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0x72,0xfd,0x55,0x00,0x0a,0xb4,0x01,0x2f,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35, +0xff,0xff,0x00,0x52,0xff,0xea,0x03,0xf3,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x07,0x0f,0x8c,0x02,0xac,0x00,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xad,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x07,0x0f,0x8d,0x02,0xac,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x49,0xff,0xea,0x03,0xf3,0x07,0x78,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x7e,0x00,0x8f,0xff,0xff, +0x00,0x49,0xff,0xea,0x04,0xad,0x07,0x78,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x7e,0x00,0x8f,0xff,0xff,0xff,0xa2,0xff,0xea,0x03,0xf3,0x06,0xbf,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x01,0x06,0x09,0x37,0x00,0x8f,0x00,0x0a,0xb4,0x02,0x2f,0x2d, +0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x82,0xff,0x02,0x06,0xae,0x04,0x21,0x02,0x26,0x08,0xf7,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0x39,0xfc,0x38,0x00,0x0a,0xb4,0x01,0x2f,0x5b,0x01,0x5b,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0x00,0xfe,0xea,0x01,0x77,0x00,0xe4,0x00,0x0f,0x00,0x0a,0xb2,0x02,0x0d,0x07,0x00,0x2f,0x2f,0xcd, +0x30,0x31,0x15,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x36,0x2c,0x4a,0x41,0x2f,0x8c,0x2d,0x94,0x79,0x37,0x33,0x7b,0x0e,0x48,0x47,0x5e,0x80,0x79,0x6e,0x82,0x91,0x15,0xff,0xff,0xff,0xa2,0xff,0xea,0x04,0xad,0x06,0xbf,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00, +0x01,0x06,0x09,0x37,0x00,0x8f,0x00,0x0a,0xb4,0x02,0x2f,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x6f,0xff,0xea,0x01,0x76,0x04,0x00,0x00,0x26,0x00,0x11,0x00,0x00,0x00,0x07,0x08,0xf8,0x00,0x00,0x02,0x19,0x00,0x02,0x00,0xab,0xff,0xee,0x03,0x57,0x05,0xb3,0x00,0x29,0x00,0x3d,0x00,0x3e,0xb5,0x00,0x2f,0x24,0x39,0x39, +0x24,0xb8,0x05,0x0a,0xb3,0x05,0x05,0x3f,0x1d,0xbd,0x05,0x0a,0x00,0x0c,0x00,0x34,0x04,0xfe,0x00,0x2a,0x05,0x03,0xb2,0x14,0x15,0x18,0xb8,0x04,0xfc,0xb3,0x2f,0x11,0x01,0x11,0x00,0x2f,0x5d,0xfd,0xc2,0x32,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0x10,0xc4,0x39,0x31,0x30,0x01,0x3e,0x03,0x35,0x34,0x2e,0x04,0x35, +0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x04,0x15,0x14,0x0e,0x02,0x07,0x03,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0xf5,0x04,0x08,0x06,0x04,0x34,0x4e,0x5c,0x4e,0x34,0x3e,0x6c,0x91,0x53,0x48,0x91,0x45,0x3d,0x97,0x46,0x34,0x58,0x41,0x24, +0x33,0x4c,0x58,0x4c,0x33,0x04,0x06,0x09,0x04,0x5a,0x15,0x28,0x1f,0x13,0x12,0x1f,0x28,0x16,0x16,0x28,0x1f,0x12,0x13,0x1f,0x28,0x01,0x8e,0x0c,0x22,0x26,0x25,0x0f,0x3c,0x5b,0x4e,0x4a,0x58,0x6f,0x4b,0x51,0x81,0x5a,0x30,0x23,0x2a,0xac,0x39,0x34,0x1b,0x32,0x48,0x2e,0x38,0x5b,0x53,0x51,0x5c,0x6c,0x44,0x13,0x2a,0x27,0x23,0x0c, +0xfe,0x60,0x11,0x1d,0x28,0x18,0x17,0x29,0x1e,0x11,0x11,0x1e,0x29,0x17,0x18,0x28,0x1d,0x11,0x00,0x01,0x00,0x5a,0x00,0x00,0x02,0xe5,0x02,0xb4,0x00,0x1e,0x00,0x3a,0xb5,0x0c,0x00,0x0c,0x00,0x20,0x08,0xb8,0x05,0x0a,0xb3,0x16,0x1e,0x1e,0x03,0xb8,0x04,0xfb,0x40,0x09,0x2f,0x1b,0x01,0x1b,0x10,0x10,0x0f,0x0f,0x0b,0xba,0x04,0xfb, +0x00,0x0d,0x04,0xe6,0x00,0x3f,0xed,0x32,0x2f,0x33,0x2f,0x2f,0x5d,0xed,0x33,0x2f,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x15,0x21,0x27,0x33,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x02,0xac,0x1d,0x43,0x20,0x30,0x53,0x3d,0x24,0x7b,0x79, +0xa9,0xfd,0x92,0x1d,0xa9,0x01,0x19,0x22,0x15,0x09,0x37,0x66,0x8f,0x58,0x1c,0x41,0x20,0x01,0xff,0x05,0x07,0x13,0x2a,0x42,0x30,0x5b,0x5e,0xa3,0x99,0x06,0x19,0x38,0x3b,0x39,0x19,0x45,0x72,0x52,0x2e,0x05,0x05,0x00,0xff,0xff,0xff,0xa2,0x00,0x00,0x02,0x65,0x07,0x30,0x02,0x26,0x09,0x0d,0x00,0x00,0x00,0x06,0x09,0x37,0x00,0x00, +0xff,0xff,0x00,0x49,0x00,0x00,0x01,0xa2,0x07,0xe9,0x02,0x26,0x09,0x0d,0x00,0x00,0x00,0x06,0x09,0x7e,0x00,0x00,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x05,0x3e,0x02,0x26,0x09,0x29,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0xe4,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x4d,0x01,0x4d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x49,0xfd,0xfe, +0x01,0xa2,0x05,0xec,0x02,0x26,0x09,0x0d,0x00,0x00,0x00,0x06,0x09,0x7f,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0x55,0x05,0x91,0x04,0xcc,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0x39,0xfc,0xe3,0x00,0x01,0x00,0xab,0x00,0x00,0x01,0x47,0x05,0xec,0x00,0x03,0x00,0x15,0xbd,0x00,0x01,0x05,0x0a,0x00,0x00,0x00,0x02,0x04, +0xe6,0x00,0x01,0x00,0x2f,0x3f,0x01,0x2f,0xed,0x31,0x30,0x13,0x33,0x11,0x23,0xab,0x9c,0x9c,0x05,0xec,0xfa,0x14,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xad,0xfe,0xab,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x05,0x5d,0x02,0x26,0x09,0x28,0x00,0x00,0x00,0x07, +0x0f,0x51,0x01,0x01,0x04,0xad,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x04,0xb2,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x05,0xca,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xad,0x04,0x02,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54, +0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0xc8,0xff,0xcf,0x00,0x01,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x00,0x31,0x00,0x40,0x40,0x0a,0x1d,0x00,0x31,0x03,0x16,0x0d,0x0d,0x33,0x26,0x05,0xb8,0x05,0x0a,0xb6,0x16,0x00,0x1d,0x31,0x03,0x11,0x23,0xb8,0x04,0xff,0xb2,0x2a,0x0d,0x0a,0xb8,0x04,0xff,0xb6,0x0e,0x1f, +0x11,0x2f,0x11,0x02,0x11,0x00,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x01,0x2f,0xed,0x39,0x12,0x39,0x2f,0x12,0x17,0x39,0x31,0x30,0x01,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33, +0x32,0x1e,0x04,0x17,0x04,0x0c,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0x02,0x01,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26, +0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x04,0xda,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x2a,0x00,0x01,0x00,0x52,0xff,0xea,0x03,0x4a,0x03,0xba,0x00,0x19, +0x00,0x24,0xb9,0x00,0x11,0x05,0x0a,0xb4,0x08,0x08,0x1b,0x1a,0x03,0xba,0x04,0xfb,0x00,0x16,0x05,0x03,0xb3,0x2f,0x0e,0x01,0x0e,0x00,0x2f,0x5d,0x3f,0xed,0x11,0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x37,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x12,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x52,0x61,0xa6, +0x39,0x4f,0x6c,0x42,0x1d,0x3b,0x60,0x7b,0x40,0xb9,0x9f,0x9c,0x48,0x7a,0xa0,0x57,0x3a,0x9a,0x4b,0xa9,0x0b,0x0b,0x15,0x2c,0x44,0x2f,0x49,0x9c,0x9f,0xa1,0x4e,0xb1,0xfe,0xbf,0x91,0x63,0x80,0x4c,0x1e,0x0c,0x0a,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x05,0x5d,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xab, +0x04,0xad,0x00,0x01,0x00,0x00,0xfd,0xff,0x02,0x9e,0x02,0x5e,0x00,0x1a,0x00,0x26,0xb9,0x00,0x12,0x05,0x0a,0xb2,0x07,0x00,0x02,0xb8,0x04,0xfb,0x40,0x0b,0x1a,0x1f,0x17,0x2f,0x17,0x02,0x17,0x2f,0x0d,0x01,0x0d,0x00,0x2f,0x5d,0x2f,0x5d,0x33,0xed,0x32,0x01,0x2f,0xed,0x31,0x30,0x11,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02, +0x27,0x33,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x7c,0x59,0x55,0x74,0x45,0x1e,0x13,0x1f,0x29,0x16,0xa1,0x1a,0x28,0x1c,0x0f,0x44,0x79,0xa7,0x62,0x33,0x6c,0x39,0xfe,0xd1,0x27,0x3d,0x6c,0x92,0x56,0x4b,0x8e,0x88,0x83,0x3f,0x41,0x8e,0x8f,0x8b,0x3e,0x8a,0xd4,0x90,0x4a,0x16,0x17,0x00,0xff,0xff,0x00,0x00,0xfd,0xff, +0x02,0x9e,0x04,0x07,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x9a,0x03,0x57,0x00,0x01,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x03,0x0f,0x00,0x4d,0x00,0x74,0xb9,0x00,0x1b,0x05,0x0a,0xb2,0x18,0x26,0x0e,0xb8,0x05,0x0a,0xb3,0x0b,0x2f,0x2f,0x03,0xb8,0x05,0x0a,0x40,0x0a,0x4a,0x18,0x0b,0x4a,0x4a,0x0b,0x18,0x03,0x4f,0x40, +0xb8,0x05,0x0a,0xb5,0x39,0x2f,0x3d,0x01,0x3d,0x45,0xb8,0x04,0xfb,0x40,0x0a,0x1f,0x34,0x2f,0x34,0x02,0x34,0x26,0x2f,0x13,0x06,0xbc,0x04,0xfb,0x00,0x2b,0x05,0x03,0x00,0x20,0x05,0x03,0x40,0x09,0x19,0x20,0x0d,0x01,0x0d,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xd4,0x5d,0xc6,0x3f,0x3f,0xed,0x32,0x39,0x39,0x2f,0x5d,0xed,0x2f,0x5d, +0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x2f,0x10,0xed,0x39,0x10,0xed,0x31,0x30,0x01,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x07,0x0e,0x03,0x23, +0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x04,0x80,0x08,0x0c,0x05,0x06,0x58,0x5e,0x22,0x3f,0x30,0x1d,0x9c,0x0b,0x27,0x48,0x3e,0x26,0x40,0x2e,0x19,0x9c,0x38,0x5d,0x78,0x3f,0x2c,0x4f,0x42,0x34,0x12,0x04,0x19,0x3f,0x44,0x46,0x1f,0x42,0x52,0x19,0x05,0x03, +0x3d,0x80,0xcc,0x91,0x8a,0xb9,0x70,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x93,0x5d,0x2b,0x12,0x10,0x02,0x01,0x3f,0x70,0x38,0x42,0x3f,0x10,0x2a,0x48,0x38,0x01,0x0b,0xc6,0x43,0x60,0x3e,0x1e,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x37,0x6c,0x85,0x4a,0x19,0x0d,0x1c,0x2f,0x23,0x23,0x2f,0x1d,0x0c,0x26,0x20,0x01, +0x84,0xd3,0x93,0x4e,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x53,0xbb,0x78,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x05,0x1f,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0x46,0x03,0x57,0x00,0x02,0x00,0x9b,0xfd,0xff,0x09,0xf7,0x03,0x3c,0x00,0x42,0x00,0x56, +0x00,0x57,0xb3,0x54,0x09,0x13,0x3c,0xbe,0x05,0x0a,0x00,0x48,0x00,0x1a,0x05,0x0a,0x00,0x13,0x00,0x4d,0x04,0xfb,0x40,0x0d,0x2f,0x37,0x01,0x37,0x2f,0x28,0x01,0x28,0x2f,0x17,0x01,0x17,0x1f,0xb8,0x04,0xfb,0x40,0x0c,0x1f,0x0e,0x2f,0x0e,0x02,0x0e,0x54,0x54,0x43,0x43,0x09,0x30,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed, +0x39,0x32,0x11,0x33,0x2f,0x2f,0x5d,0xed,0x2f,0x5d,0x2f,0x5d,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x2f,0xed,0x11,0x39,0x39,0x31,0x30,0x05,0x22,0x2e,0x02,0x27,0x26,0x26,0x27,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x1e, +0x03,0x17,0x3e,0x05,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x27,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x07,0x93,0xa1,0xe7,0x9d,0x5e,0x18,0x1f,0x28,0x12,0x05,0x03,0x3d,0x81,0xcd,0x94,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x93,0x5d,0x2b,0x12,0x17,0x9a,0x0b, +0x0d,0x08,0x03,0x11,0x21,0x36,0x28,0x18,0x4c,0x67,0x81,0x9a,0xb4,0x65,0x79,0xae,0x70,0x36,0x2d,0x52,0x71,0x88,0x9b,0x3b,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x85,0x75,0x65,0x52,0x3f,0x15,0x5c,0xee,0x16,0x01,0x03,0x08,0x07,0x09,0x1d,0x15,0x01,0x84,0xd3,0x93,0x4e,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39, +0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x53,0xc5,0x6e,0x3f,0x72,0x3a,0x17,0x2b,0x22,0x15,0x02,0x41,0x96,0x95,0x8b,0x6a,0x40,0x4b,0x80,0xab,0x60,0x5d,0x80,0x55,0x2f,0x16,0x05,0xa9,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0x2a,0x49,0x63,0x71,0x7a,0x3c,0x02,0x01,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0xf7,0x04,0xb2,0x02,0x26, +0x09,0x1b,0x00,0x00,0x00,0x07,0x0f,0x50,0x05,0xca,0x04,0x02,0x00,0x02,0x00,0x19,0xff,0xea,0x05,0xf5,0x05,0xec,0x00,0x20,0x00,0x34,0x00,0x3a,0xb9,0x00,0x0d,0x05,0x0a,0xb2,0x26,0x32,0x01,0xb8,0x05,0x0a,0xb5,0x00,0x32,0x32,0x21,0x21,0x1d,0xb8,0x04,0xfb,0xb3,0x03,0x1a,0x01,0x14,0xba,0x05,0x03,0x00,0x2b,0x04,0xfb,0xb1,0x08, +0x01,0x00,0x2f,0x2f,0xed,0x3f,0x12,0x39,0x39,0xed,0x32,0x11,0x33,0x2f,0x01,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x33,0x11,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x24,0x26,0x26,0x27,0x27,0x16,0x16,0x17,0x36,0x36,0x37,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16, +0x01,0x55,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x5a,0x79,0xae,0x70,0x36,0x2d,0x52,0x71,0x88,0x9a,0x52,0xb7,0xfe,0xf5,0xc6,0x92,0x3e,0x20,0x2d,0x91,0x58,0x08,0x13,0x0b,0x02,0x52,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5c,0xe9,0x05,0xec,0xfc,0x1d,0x01,0x43,0x7a,0x5d,0x36,0x4f,0x88,0xb5,0x66, +0x5d,0x80,0x55,0x2f,0x16,0x05,0x03,0x06,0x09,0x06,0xa7,0x06,0x07,0x01,0x16,0x2e,0x1a,0x66,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0xff,0xff,0x00,0x19,0xff,0xea,0x05,0xf5,0x05,0xec,0x02,0x26,0x09,0x1d,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xe5,0x04,0x02,0x00,0x01,0x00,0x65,0xfd,0xff, +0x04,0x2d,0x04,0x2a,0x00,0x37,0x00,0x52,0xb4,0x29,0x00,0x16,0x39,0x31,0xb8,0x05,0x0a,0xb2,0x20,0x20,0x05,0xb8,0x05,0x0a,0xb4,0x16,0x28,0x29,0x29,0x2c,0xb8,0x04,0xfb,0x40,0x0d,0x25,0x00,0x34,0x1b,0x37,0x37,0x11,0x2f,0x25,0x01,0x25,0x0d,0x0a,0xb8,0x04,0xfc,0xb6,0x0e,0x1f,0x11,0x2f,0x11,0x02,0x11,0x00,0x2f,0x5d,0x33,0xed, +0x32,0x2f,0x5d,0x12,0x39,0x2f,0x39,0x39,0x33,0x10,0xed,0x32,0x11,0x33,0x01,0x2f,0xed,0x39,0x2f,0xed,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22, +0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x37,0x03,0x5c,0xaf,0xe8,0x8b,0x39,0x2e,0x63,0x9e,0x71,0x61,0xc7,0x64,0x6d,0xbf,0x64,0x98,0xd7,0x89,0x40,0x14,0x31,0x53,0x3f,0x26,0x37,0x23,0x11,0x3d,0x72,0xa6,0x69,0x23,0x4f,0x2a,0x27,0x56,0x2a,0x36,0x65,0x4d,0x2f,0x37,0x33,0x51,0xd1,0x89,0x01,0x9a,0x2e,0x66,0x72,0x7d,0x45,0x40, +0x72,0x55,0x32,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5b,0x31,0x64,0x65,0x64,0x30,0x24,0x51,0x55,0x56,0x29,0x4f,0x92,0x70,0x42,0x08,0x09,0xaa,0x08,0x0b,0x16,0x38,0x5d,0x46,0x4c,0x7f,0x2b,0x2d,0x52,0x24,0x00,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x05,0x8f,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xe4, +0x04,0xdf,0x00,0x01,0xff,0xba,0xff,0xf2,0x01,0x56,0x00,0x99,0x00,0x08,0x00,0x13,0xb2,0x08,0x04,0x07,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x01,0x2f,0xcd,0x31,0x30,0x05,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x01,0x56,0xfe,0xaa,0x23,0x23,0x23,0x23,0x01,0x56,0x0e,0x34,0x20,0x20,0x33,0x00,0xff,0xff,0x00,0xab, +0xff,0xea,0x07,0x4b,0x05,0x24,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x50,0x04,0xd7,0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x4b,0x04,0x79,0x02,0x26,0x09,0x7c,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xd4,0x03,0xc9,0x00,0x02,0x00,0xab,0xff,0xea,0x05,0xf4,0x05,0xec,0x00,0x25,0x00,0x46,0x00,0x71,0xbf,0x00,0x13,0x05, +0x0a,0x00,0x10,0x00,0x41,0x05,0x0b,0x00,0x28,0x00,0x39,0x05,0x0b,0x40,0x10,0x30,0x36,0x10,0x28,0x26,0x30,0x22,0x10,0x28,0x30,0x30,0x28,0x10,0x03,0x48,0x03,0xbe,0x05,0x0a,0x00,0x22,0x00,0x26,0x04,0xfd,0x00,0x46,0x00,0x36,0x04,0xfd,0x40,0x0a,0x28,0x41,0x30,0x39,0x04,0x1a,0x35,0x35,0x11,0x0b,0xba,0x04,0xfb,0x00,0x1a,0x05, +0x03,0xb4,0x11,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0x3f,0xed,0x12,0x39,0x2f,0x12,0x17,0x39,0xed,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e, +0x04,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x25,0x36,0x35,0x34,0x26,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x01,0x62,0x09,0x11,0x1f,0x2f,0x1a,0x4e,0x7b,0xb1,0x7d,0x6d,0xa2,0x6c,0x36,0x9c,0x2d,0x52,0x71,0x88,0x9a,0x51,0x76,0xc2,0x9b, +0x78,0x2c,0x3f,0x30,0x12,0x0b,0x01,0xe4,0xc5,0x1f,0x15,0x10,0x21,0x1b,0x11,0x2e,0x4f,0x69,0x3b,0x5e,0x54,0x21,0x17,0x0f,0x20,0x1a,0x10,0x25,0x4c,0x74,0x4f,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x63,0x23,0x13,0x1a,0x10,0x07,0x0a,0x29,0x53,0x48,0x04,0x8b,0xfb,0x6e,0x5a,0x7c,0x52,0x2d,0x16,0x05,0x06,0x16,0x2c,0x26,0x37,0x98,0x58, +0x3d,0x70,0x33,0x57,0x0b,0x47,0x12,0x16,0x0b,0x08,0x14,0x1b,0x27,0x1b,0x26,0x3e,0x2f,0x1f,0x08,0x5d,0x0c,0x2d,0x21,0x14,0x18,0x0b,0x08,0x12,0x1a,0x23,0x19,0x1f,0x3e,0x33,0x23,0x04,0x00,0x01,0x00,0x9b,0xfe,0xac,0x04,0x9e,0x05,0xec,0x00,0x1d,0x00,0x25,0xbf,0x00,0x03,0x05,0x0a,0x00,0x1a,0x00,0x10,0x05,0x0a,0x00,0x0d,0x00, +0x08,0x04,0xfb,0xb5,0x15,0x0f,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0x2f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x01,0x4e,0x0b,0x0b,0x23,0x4f,0x7d,0x59,0x67,0x93,0x5d,0x2b,0x9c,0x38,0x81, +0xd4,0x9d,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x01,0xa6,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x04,0xc4,0xfb,0x28,0x8f,0xe4,0x9f,0x56,0x45,0x7f,0xb7,0x72,0x3f,0x83,0x4b,0x00,0x02,0x00,0x39,0xfd,0xff,0x03,0xf4,0x02,0xb9,0x00,0x26,0x00,0x38,0x00,0x41,0xb2,0x17,0x1b,0x05,0xbb,0x05,0x0a,0x00,0x2c,0x00,0x12,0x05, +0x0a,0x40,0x0a,0x1b,0x2f,0x17,0x01,0x17,0x20,0x34,0x34,0x00,0x27,0xbd,0x04,0xfb,0x00,0x0f,0x00,0x0a,0x05,0x03,0x00,0x31,0x04,0xfb,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xed,0x3f,0x33,0xed,0x12,0x39,0x11,0x33,0x2f,0x5d,0x01,0x2f,0xed,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e, +0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x05,0x13,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x1e,0x03,0x02,0xac,0x4c,0x79,0x55,0x2e,0x23,0x47,0x69,0x45,0x31,0x66,0x61,0x59,0x24,0x4e,0x43,0x09,0x11,0x17,0x0e,0xa6,0x19,0x1d,0x24,0x42,0x5d,0x3a,0x17,0x3d,0x45, +0x49,0x44,0x3b,0x2e,0x21,0x35,0x27,0x15,0x1e,0x33,0x45,0x27,0x4b,0x6d,0x29,0x21,0x44,0x44,0x43,0x02,0xb9,0x53,0x7d,0x91,0x3e,0x3b,0x6c,0x52,0x30,0x13,0x17,0x13,0x63,0x5b,0x26,0x5d,0x63,0x61,0x2a,0x67,0xbd,0x45,0x48,0x79,0x5b,0x39,0x09,0x71,0xa2,0x6f,0x43,0x23,0x0b,0xfd,0xdf,0x0c,0x1c,0x30,0x23,0x25,0x59,0x4e,0x34,0xa4, +0xad,0x05,0x0f,0x0d,0x09,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x03,0x5c,0x02,0x26,0x09,0x5f,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x9f,0x02,0xac,0x00,0x02,0x00,0xab,0xff,0xea,0x03,0x57,0x03,0xce,0x00,0x17,0x00,0x29,0x00,0x36,0xb9,0x00,0x06,0x05,0x0a,0xb6,0x20,0x20,0x10,0x2b,0x00,0x00,0x18,0xb8,0x05,0x0a,0xb4,0x10, +0x15,0x25,0x01,0x1d,0xba,0x04,0xfb,0x00,0x0b,0x05,0x03,0xb3,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0x3f,0xed,0x12,0x39,0x39,0x01,0x2f,0xed,0x32,0x2f,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x37,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x03,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34, +0x2e,0x02,0x27,0x0e,0x03,0x01,0x3f,0x60,0x76,0xa7,0x6a,0x31,0x30,0x5a,0x83,0x53,0x51,0x7c,0x54,0x2b,0x2a,0x43,0x56,0x2c,0x15,0x2d,0x13,0x1d,0x32,0x42,0x25,0x66,0x5c,0x12,0x2b,0x46,0x34,0x29,0x47,0x34,0x1d,0x03,0x4f,0x7f,0x4e,0x9f,0xa5,0xaa,0x59,0x4b,0x7b,0x59,0x30,0x2b,0x50,0x70,0x45,0x53,0x96,0x7f,0x65,0x23,0x11,0x22, +0xfd,0xfb,0x2d,0x3e,0x28,0x12,0x58,0x4b,0x2e,0x5a,0x5c,0x5f,0x33,0x1d,0x52,0x60,0x6d,0x00,0x00,0x02,0x00,0x00,0xfd,0xff,0x03,0x49,0x02,0xb7,0x00,0x22,0x00,0x36,0x00,0x47,0xb2,0x23,0x23,0x1a,0xb8,0x05,0x0a,0xb3,0x08,0x08,0x38,0x2f,0xb8,0x05,0x0a,0xb2,0x0f,0x00,0x03,0xb8,0x04,0xfb,0xb7,0x22,0x1f,0x1f,0x2f,0x1f,0x02,0x1f, +0x2a,0xb8,0x04,0xfb,0xb5,0x2f,0x14,0x01,0x14,0x08,0x34,0xba,0x04,0xfb,0x00,0x0a,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d,0xed,0x2f,0x5d,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x33,0x2f,0x31,0x30,0x11,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16, +0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x2e,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x6c,0xad,0x52,0x64,0x7b,0x45,0x1a,0x02,0x53,0x59,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x36,0x36,0x34,0x72,0xb6,0x82,0x5b,0xac,0x64,0x02,0xa9,0x01,0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c, +0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0xfe,0xf9,0x2c,0x23,0x42,0x68,0x82,0x41,0x25,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x55,0xed,0x84,0x74,0xd3,0xa2,0x60,0x26,0x2e,0x02,0x66,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0x00,0x01,0x00,0x9a,0xff,0x55,0x05,0x91,0x04,0x15,0x00,0x35, +0x00,0x42,0xb2,0x09,0x05,0x2f,0xbb,0x05,0x0a,0x00,0x16,0x00,0x28,0x05,0x0a,0xb6,0x1d,0x16,0x1d,0x16,0x1d,0x37,0x0c,0xb8,0x05,0x0a,0xb2,0x05,0x28,0x23,0xbe,0x04,0xff,0x00,0x22,0x00,0x00,0x04,0xfb,0x00,0x11,0x04,0xe6,0x00,0x09,0x00,0x2f,0x3f,0xed,0x2f,0xed,0x2f,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed, +0x11,0x39,0x31,0x30,0x05,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x04,0x15,0x14,0x0e,0x04,0x02,0x9c,0x94,0xc5,0x77,0x32,0x23,0x1d,0x97,0x17,0x23,0x21,0x52,0x8e,0x6d,0x6d,0xbd,0x8d,0x51,0x33,0x4b, +0x59,0x4b,0x33,0x54,0x96,0xd1,0x7e,0x64,0x9c,0x6c,0x38,0x33,0x4d,0x5a,0x4d,0x33,0x27,0x4e,0x73,0x98,0xbc,0xab,0x4e,0x85,0xb1,0x63,0x5b,0xba,0x5b,0x58,0xaf,0x55,0x47,0x7b,0x5c,0x34,0x2e,0x4b,0x5e,0x30,0x26,0x33,0x2c,0x2e,0x40,0x5c,0x45,0x55,0x7f,0x5b,0x3b,0x12,0xa2,0x0d,0x23,0x31,0x41,0x2a,0x29,0x39,0x2f,0x2c,0x3a,0x4f, +0x3a,0x31,0x6a,0x68,0x5e,0x47,0x2a,0x00,0xff,0xff,0x00,0x9a,0xfd,0xfb,0x05,0x91,0x04,0x15,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0x01,0xfe,0x00,0x00,0x02,0x00,0x05,0x06,0x7c,0x02,0x01,0x07,0x8d,0x00,0x03,0x00,0x07,0x00,0x1d,0xb4,0x05,0x01,0x04,0x00,0x02,0xbc,0x04,0xfd,0x00,0x01,0x00,0x06,0x04,0xfd,0x00, +0x05,0x00,0x2f,0xfd,0xde,0xed,0x01,0x2f,0x33,0xcd,0x32,0x31,0x30,0x13,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x05,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04,0x06,0xd4,0x58,0x01,0x11,0x58,0x00,0x02,0xff,0x33,0x06,0x55,0x01,0xca,0x08,0x0e,0x00,0x23,0x00,0x31,0x00,0x3b,0xb2,0x20,0x13,0x1d,0xb8,0x05,0x0d,0xb5,0x24,0x23,0x23,0x24, +0x11,0x2c,0xb8,0x05,0x0d,0xb4,0x13,0x0b,0x08,0x05,0x18,0xb8,0x04,0xfd,0xb3,0x27,0x20,0x2f,0x0e,0xb9,0x04,0xfd,0x00,0x05,0x00,0x2f,0xfd,0x32,0x39,0xd4,0xed,0x11,0x39,0x39,0x01,0x2f,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x07,0x27,0x37,0x16,0x16,0x33,0x32,0x37, +0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x01,0x3c,0x2f,0x21,0x19,0x2f,0x15,0x42,0x5e,0x25,0x61,0x36,0x99,0x31,0x5b,0x34,0x10,0x0f,0x01,0x36,0x1f,0x31,0x3f,0x21,0x1f,0x3b,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x04, +0x33,0x1f,0x10,0x1f,0x19,0x0f,0x23,0x1a,0x30,0x3c,0x06,0x55,0x22,0x22,0x07,0x06,0x34,0x2a,0x59,0x3b,0x8e,0x3c,0x3e,0x03,0x02,0x45,0x45,0x26,0x3b,0x29,0x15,0x14,0x29,0x3d,0x29,0x42,0x5a,0x1a,0x0b,0x10,0x08,0xd6,0x29,0x25,0x09,0x13,0x1c,0x12,0x1d,0x3d,0x1d,0x10,0x39,0x00,0x00,0x02,0x00,0x05,0xfe,0x60,0x02,0x01,0xff,0x71, +0x00,0x03,0x00,0x07,0x00,0x1d,0xb4,0x05,0x01,0x04,0x00,0x02,0xbc,0x04,0xfd,0x00,0x01,0x00,0x06,0x04,0xfd,0x00,0x05,0x00,0x2f,0xfd,0xde,0xed,0x01,0x2f,0x33,0xcd,0x32,0x31,0x30,0x13,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x05,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04,0xfe,0xb8,0x58,0x01,0x11,0x58,0x00,0x01,0x00,0x05,0x06,0x7c, +0x02,0x01,0x06,0xd4,0x00,0x03,0x00,0x11,0xb2,0x01,0x00,0x02,0xb9,0x04,0xfd,0x00,0x01,0x00,0x2f,0xed,0x01,0x10,0xcd,0x31,0x30,0x13,0x21,0x15,0x21,0x05,0x01,0xfc,0xfe,0x04,0x06,0xd4,0x58,0x00,0x00,0x02,0xff,0xbf,0x06,0x55,0x01,0xca,0x08,0x0e,0x00,0x22,0x00,0x30,0x00,0x35,0xb2,0x1f,0x12,0x1c,0xb8,0x05,0x0d,0xb5,0x23,0x22, +0x22,0x23,0x10,0x2b,0xbb,0x05,0x0d,0x00,0x12,0x00,0x17,0x04,0xfd,0xb3,0x26,0x1f,0x2e,0x0c,0xb9,0x04,0xfd,0x00,0x05,0x00,0x2f,0xfd,0x32,0x39,0xd4,0xed,0x01,0x2f,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x32,0x37,0x37,0x26,0x35,0x34,0x3e, +0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x01,0x3c,0x2d,0x23,0x18,0x30,0x15,0x39,0x67,0x30,0x12,0x32,0x5c,0x38,0x01,0x0b,0x06,0x01,0x34,0x1e,0x32,0x3f,0x20,0x1f,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x04,0x33,0x1f,0x10,0x1f,0x19,0x0f, +0x23,0x1a,0x30,0x3c,0x06,0x55,0x22,0x22,0x05,0x03,0x0e,0x0e,0x53,0x0d,0x0f,0x01,0x02,0x43,0x44,0x26,0x3c,0x29,0x15,0x14,0x29,0x3d,0x29,0x42,0x5a,0x1a,0x0b,0x10,0x08,0xd6,0x29,0x25,0x09,0x13,0x1c,0x12,0x1d,0x3d,0x1d,0x10,0x39,0x00,0x00,0x01,0x00,0x05,0xff,0x19,0x02,0x01,0xff,0x71,0x00,0x03,0x00,0x11,0xb2,0x01,0x00,0x02, +0xb9,0x04,0xfd,0x00,0x01,0x00,0x2f,0xed,0x01,0x10,0xcd,0x31,0x30,0x17,0x21,0x15,0x21,0x05,0x01,0xfc,0xfe,0x04,0x8f,0x58,0x00,0x01,0xff,0xd4,0x06,0x76,0x02,0x33,0x07,0xa0,0x00,0x33,0x00,0x53,0xb2,0x00,0x00,0x03,0xb8,0x05,0x0d,0x40,0x09,0x30,0x33,0x33,0x30,0x0a,0x21,0x25,0x25,0x2a,0xb8,0x05,0x0d,0xb4,0x21,0x24,0x24,0x21, +0x1b,0xb8,0x05,0x0b,0x40,0x0b,0x12,0x15,0x15,0x12,0x16,0x25,0x25,0x33,0x0a,0x0d,0x06,0xb8,0x04,0xfd,0xb1,0x1e,0x2d,0x00,0x2f,0x33,0xed,0x32,0x39,0xce,0x32,0x11,0x33,0x01,0x2f,0x33,0x2f,0x10,0xed,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23, +0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x0e,0x02,0x14,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x06,0x06,0x14,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x03, +0x02,0x02,0x26,0x2d,0x2c,0x23,0x02,0x61,0x01,0x01,0x22,0x2d,0x2f,0x25,0x04,0x02,0x07,0xa0,0x14,0x25,0x0e,0x6d,0x76,0x1f,0x20,0x20,0x1f,0x22,0x3a,0x4e,0x2c,0x1a,0x2c,0x0e,0x17,0x1d,0x13,0x0c,0x05,0x33,0x3f,0x3e,0x3b,0x14,0x2e,0x0f,0x07,0x15,0x16,0x16,0x08,0x3d,0x3d,0x3e,0x37,0x17,0x30,0x0e,0x00,0x02,0x00,0x45,0x06,0x76, +0x01,0xc1,0x07,0xe9,0x00,0x13,0x00,0x1f,0x00,0x26,0x41,0x0c,0x00,0x05,0x05,0x0d,0x00,0x17,0x00,0x1d,0x05,0x0d,0x00,0x0f,0x00,0x00,0x04,0xfd,0x00,0x1a,0x00,0x14,0x04,0xfd,0x00,0x0a,0x00,0x2f,0xfd,0xd6,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02, +0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x03,0x29,0x45,0x33,0x1d,0x1d,0x33,0x45,0x29,0x2a,0x46,0x32,0x1c,0x1c,0x33,0x45,0x2a,0x30,0x34,0x34,0x30,0x2f,0x35,0x35,0x07,0xe9,0x1d,0x32,0x44,0x27,0x27,0x44,0x31,0x1d,0x1d,0x31,0x44,0x27,0x27,0x44,0x32,0x1d,0xfe,0xe4,0x36,0x2c,0x2b,0x38,0x38,0x2b,0x2c, +0x36,0x00,0xff,0xff,0x00,0x52,0xfd,0xfe,0x03,0xf3,0x05,0xec,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x7f,0x72,0x00,0xff,0xff,0x00,0x52,0xfd,0xfe,0x04,0xad,0x05,0xec,0x02,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x7f,0x72,0x00,0xff,0xff, +0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xa2,0x06,0x62,0x02,0x65,0x07,0x30,0x00,0x1b,0x00,0x20,0x40,0x0d,0x00,0x0e,0x0e,0x0d,0x0d,0x05,0x00,0x1b,0x1b,0x13,0x0a,0x18,0x05,0x00,0x2f,0xcd,0xd4,0xcd,0x32,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xcd,0x31,0x30,0x01,0x0e,0x03,0x23, +0x22,0x2e,0x02,0x23,0x22,0x06,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x37,0x02,0x65,0x1a,0x31,0x2d,0x29,0x12,0x33,0x5c,0x56,0x54,0x2d,0x22,0x31,0x19,0x3e,0x1a,0x31,0x2d,0x29,0x12,0x33,0x5c,0x56,0x54,0x2c,0x23,0x31,0x19,0x06,0xb6,0x1b,0x21,0x12,0x06,0x1e,0x24,0x1e,0x16,0x16,0x46,0x1b,0x21,0x12,0x06,0x1e, +0x24,0x1e,0x15,0x17,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x02,0xac,0x03,0x0f,0x00,0x1f, +0x00,0x26,0xb1,0x0b,0x00,0xb8,0x05,0x0a,0xb7,0x1d,0x2f,0x1f,0x01,0x1f,0x0b,0x17,0x05,0xbb,0x04,0xfb,0x00,0x10,0x00,0x06,0x05,0x03,0x00,0x3f,0x33,0xed,0x32,0x39,0x2f,0x5d,0x01,0x2f,0xed,0x39,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e, +0x02,0x35,0x11,0x33,0x01,0xf2,0x0c,0x27,0x4a,0x3d,0x16,0x64,0x78,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0xbc,0x00,0x02,0xff,0xba,0xff,0xf2,0x03,0x49,0x03,0x62, +0x00,0x24,0x00,0x38,0x00,0x31,0xb9,0x00,0x12,0x05,0x0a,0xb3,0x25,0x25,0x3a,0x31,0xb8,0x05,0x0a,0xb2,0x05,0x36,0x20,0xbc,0x04,0xfb,0x00,0x19,0x05,0x03,0x00,0x2c,0x04,0xfb,0xb3,0x2f,0x0a,0x01,0x0a,0x00,0x2f,0x5d,0xed,0x3f,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32, +0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0xa5,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x14,0x26,0x1d,0x12,0x39,0x61,0x81,0x91,0x97,0x47,0xbf,0x23,0x23,0x23,0x23,0xc8, +0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x37,0x2c,0x1b,0x19,0x41,0x73,0x5a,0x21,0x1d,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x58,0x21,0x4a,0x52,0x5a,0x30,0x60,0x83,0x55,0x2e,0x15,0x04,0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3f,0x42, +0x4a,0x2a,0x18,0x4d,0x00,0x02,0xff,0xba,0xff,0xf2,0x04,0x02,0x03,0x62,0x00,0x2f,0x00,0x43,0x00,0x3e,0xb1,0x15,0x12,0xb8,0x05,0x0a,0xb4,0x30,0x30,0x05,0x19,0x3c,0xb8,0x05,0x0a,0xb5,0x05,0x1f,0x0a,0x41,0x2b,0x18,0xbd,0x04,0xfb,0x00,0x24,0x00,0x19,0x05,0x03,0x00,0x37,0x04,0xfb,0xb3,0x2f,0x0a,0x01,0x0a,0x00,0x2f,0x5d,0xed, +0x3f,0x33,0xed,0x32,0x32,0x12,0x39,0x01,0x2f,0xed,0x2f,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22, +0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0xa5,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x38,0x72,0x43,0x16,0x2c,0x60,0x5f,0x5c,0x27,0x32,0x70,0x75,0x74,0x34,0xbf,0x23,0x23,0x23,0x23,0xc8,0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19, +0x43,0x74,0x5b,0x21,0x19,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x53,0x56,0x21,0x4a,0x53,0x5a,0x30,0x42,0x64,0x26,0x09,0x03,0xa7,0x07,0x0e,0x16,0x0f,0x16,0x17,0x0b,0x02,0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3e,0x44,0x4a,0x2b,0x18,0x4f,0x00,0x01,0x00,0xab, +0xff,0xea,0x06,0x9f,0x03,0x0f,0x00,0x25,0x00,0x2c,0xb9,0x00,0x13,0x05,0x0a,0xb3,0x10,0x10,0x27,0x03,0xbd,0x05,0x0a,0x00,0x22,0x00,0x0b,0x04,0xfb,0x00,0x1a,0x05,0x03,0xb4,0x11,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xc6,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33, +0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x01,0x62,0x09,0x11,0x1e,0x30,0x1d,0x5c,0x91,0xd2,0x93,0x80,0xc0,0x7f,0x3f,0x9c,0x33,0x5d,0x81,0x9a,0xaf,0x5d,0x86,0xde,0xb3,0x87,0x30,0x3f,0x30,0x12,0x0b,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x63,0x23,0x15,0x1b,0x0f,0x05, +0x0a,0x29,0x53,0x48,0x01,0xae,0xfe,0x4b,0x5a,0x7c,0x52,0x2d,0x16,0x05,0x03,0x15,0x2d,0x29,0x37,0x98,0x58,0x3d,0x70,0x33,0x00,0x01,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xec,0x00,0x1f,0x00,0x26,0xb1,0x0b,0x00,0xb8,0x05,0x0a,0xb6,0x1d,0x1e,0x18,0x17,0x17,0x0b,0x05,0xbb,0x04,0xfb,0x00,0x10,0x00,0x06,0x05,0x03,0x00,0x3f,0x33, +0xed,0x39,0x32,0x11,0x33,0x2f,0x01,0x2f,0xed,0x39,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x01,0xf2,0x0c,0x27,0x4a,0x3d,0x16,0x61,0x74,0x1d,0x04,0x1b,0x43,0x48,0x49,0x22,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43, +0x38,0x25,0x9c,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x04,0x99,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x81,0x03,0x0f,0x02,0x26,0x0e,0x6f, +0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0x00,0x04,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x00,0x31,0x00,0x35,0x00,0x39,0x00,0x3d,0x00,0x74,0xb9,0x00,0x3b,0x05,0x0a,0xb2,0x3a,0x3a,0x39,0xb8,0x05,0x0a,0xb3,0x38,0x1d,0x38,0x32,0xb8,0x05,0x0a,0xb7,0x33,0x38,0x33,0x38,0x33,0x3f,0x26,0x05,0xbb,0x05,0x0a,0x00,0x16, +0x00,0x3a,0x05,0x02,0xb2,0x3d,0x36,0x32,0xb8,0x05,0x02,0x40,0x0d,0x38,0x2f,0x35,0x3f,0x35,0x02,0x35,0x31,0x1d,0x00,0x03,0x11,0x23,0xb8,0x04,0xff,0xb2,0x2a,0x0d,0x0a,0xb8,0x04,0xfc,0xb6,0x0e,0x1f,0x11,0x2f,0x11,0x02,0x11,0x00,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x2f,0x5d,0x33,0xfd,0x32,0xd6,0xed,0x01,0x2f, +0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x01,0x23,0x35,0x33,0x05,0x23, +0x35,0x33,0x03,0x23,0x35,0x33,0x04,0x0c,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe,0x6a,0xb5,0xb5,0x01,0x42,0xb5,0xb5,0xa1,0xb5,0xb5,0x02,0x01, +0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfd,0x64,0xb3,0xb3,0xb3,0xfe,0x3f,0xb3,0x00,0x00,0x05,0x00,0x7e,0xfd,0xff,0x05,0x58,0x03,0x54,0x00,0x03,0x00,0x07, +0x00,0x0b,0x00,0x3d,0x00,0x4b,0x00,0x97,0xb1,0x19,0x3e,0xbb,0x05,0x0b,0x00,0x49,0x00,0x09,0x05,0x0a,0xb2,0x08,0x08,0x04,0xbb,0x05,0x0a,0x00,0x05,0x00,0x00,0x05,0x0a,0x40,0x0b,0x01,0x49,0x05,0x01,0x01,0x05,0x49,0x03,0x4d,0x32,0x11,0xbd,0x05,0x0a,0x00,0x22,0x00,0x41,0x04,0xfb,0x00,0x43,0x05,0x03,0xb6,0x3e,0x0c,0x29,0x3d, +0x04,0x1d,0x2f,0xb8,0x04,0xff,0xb2,0x36,0x19,0x16,0xb8,0x04,0xfc,0x40,0x0c,0x1a,0x1f,0x1d,0x2f,0x1d,0x02,0x1d,0x07,0x06,0x06,0x02,0x08,0xb8,0x05,0x02,0xb7,0x0f,0x0b,0x1f,0x0b,0x02,0x0b,0x04,0x00,0xb8,0x05,0x02,0xb5,0x2f,0x02,0x3f,0x02,0x02,0x02,0x00,0x2f,0x5d,0xfd,0x32,0xde,0x5d,0xed,0x11,0x33,0x11,0x33,0x2f,0x5d,0x33, +0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x3f,0xed,0x01,0x2f,0xed,0x39,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x39,0x31,0x30,0x25,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x13,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35, +0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x13,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x36,0x36,0x02,0x78,0xb5,0xb5,0x01,0x2e,0xb5,0xb5,0x97,0xb5,0xb5,0xfd,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19, +0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0x2b,0x06,0x74,0x68,0x1f,0x37,0x4f,0x77,0x52,0x2c,0x04,0x1f,0x3f,0x02,0xb3,0xb3,0xb3,0xfe,0x49,0xb3,0x02,0x50,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38, +0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfe,0x9a,0x68,0x55,0xa7,0x30,0x56,0x74,0x44,0x0b,0x13,0x00,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x00,0xfd,0xff, +0x02,0x9e,0x05,0x1f,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x9a,0x03,0x57,0x00,0x01,0x00,0xab,0xff,0xea,0x06,0xa2,0x06,0x02,0x00,0x36,0x00,0x33,0xb2,0x1e,0x23,0x03,0xbb,0x05,0x0a,0x00,0x33,0x00,0x23,0x05,0x0a,0x40,0x09,0x15,0x1a,0x1e,0x1b,0x03,0x00,0x00,0x1c,0x0b,0xbb,0x04,0xfb,0x00,0x2b,0x05,0x03,0x00, +0x1c,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0x17,0x39,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x27,0x35,0x01,0x15,0x01,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37, +0x01,0x62,0x09,0x11,0x1f,0x2f,0x1a,0x4f,0x7b,0xb1,0x7c,0x4e,0x7e,0x67,0x51,0x20,0x25,0x32,0x1c,0x0c,0x57,0xa3,0xe8,0x91,0x03,0x4b,0xfd,0x66,0x8b,0xe1,0x9e,0x56,0x0f,0x31,0x5d,0x4f,0x57,0xef,0xa5,0x76,0xc2,0x9b,0x78,0x2c,0x3f,0x30,0x12,0x0b,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x63,0x23,0x13,0x1a,0x10,0x07,0x01,0x06,0x0a,0x09, +0x0a,0x1d,0x26,0x2c,0x1a,0x4d,0x8b,0x86,0x85,0x47,0x76,0x02,0x22,0xb0,0xfe,0x5f,0x42,0x8b,0x96,0xa6,0x5e,0x1f,0x56,0x59,0x50,0x19,0x1b,0x0e,0x06,0x16,0x2c,0x26,0x37,0x98,0x58,0x3d,0x70,0x33,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0x02,0x02,0x06,0x08,0xed,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x07,0x38, +0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x07,0x38,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff,0x00,0x9a,0xff,0x55,0x05,0x91,0x04,0x15,0x02,0x06,0x09,0x2a,0x00,0x00,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x02,0x13,0x02,0x06, +0x08,0xf7,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x48,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0xa1,0xff,0xf2,0x04,0x02,0x06,0x19,0x02,0x26,0x08,0xf3,0x00,0x00,0x00,0x07,0x09,0x7e,0x01,0x3e,0xfe,0x30,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x06,0x12,0x02,0x26, +0x09,0x28,0x00,0x00,0x01,0x07,0x09,0x7e,0x01,0x16,0xfe,0x29,0x00,0x0a,0xb4,0x02,0x2f,0x40,0x01,0x40,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb9,0x01,0xac,0x02,0x89,0x03,0x7c,0x02,0x06,0x08,0xd7,0x00,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x01,0x56,0x05,0x9a,0x02,0x06,0x08,0xd8,0x00,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x03,0x50, +0x05,0x9a,0x02,0x06,0x08,0xd9,0x00,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0x1a,0x05,0x9a,0x02,0x06,0x08,0xda,0x00,0x00,0x00,0x01,0x00,0x2b,0x00,0x00,0x03,0x70,0x05,0xb7,0x00,0x36,0x00,0x4a,0xb5,0x1d,0x0b,0x38,0x29,0x02,0x2f,0xb8,0x05,0x0a,0x40,0x09,0x30,0x1e,0x1d,0x1d,0x13,0x02,0x03,0x07,0x2f,0xbb,0x04,0xe6,0x00,0x29, +0x00,0x23,0x04,0xfb,0xb4,0x2f,0x18,0x01,0x18,0x0e,0xb8,0x04,0xfb,0xb7,0x2f,0x07,0x01,0x07,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x39,0x3f,0x12,0x17,0x39,0x11,0x33,0x01,0x2f,0xed,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x13,0x17,0x33,0x3e,0x03,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02, +0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x07,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x26,0x26,0x02,0x27,0xcb,0x30,0x05,0x0e,0x3f,0x5f,0x7d,0x4b,0x20,0x49,0x24,0x23,0x45,0x23,0x43,0x77,0x5a,0x34,0x29,0x41,0x51,0x29,0x32,0x62,0x5b,0x50,0x1f,0x14,0x49,0x5c,0x6b,0x36,0x1e,0x3e,0x39, +0x32,0x13,0x04,0x07,0x0c,0x07,0x04,0x9c,0x11,0x23,0x36,0x25,0x05,0x9a,0xd2,0x2f,0x56,0x42,0x28,0x08,0x09,0xa6,0x08,0x08,0x1b,0x30,0x43,0x28,0x23,0x33,0x21,0x0f,0x14,0x20,0x28,0x14,0xaa,0x11,0x26,0x21,0x15,0x08,0x10,0x19,0x11,0x03,0x38,0x71,0x7a,0x84,0x4a,0xfe,0x85,0x01,0x73,0x94,0xff,0xf8,0x01,0x03,0x99,0x00,0x00,0x02, +0x00,0x72,0xff,0xe9,0x04,0x28,0x05,0x9a,0x00,0x1e,0x00,0x3f,0x00,0x46,0xbf,0x00,0x17,0x05,0x0a,0x00,0x2a,0x00,0x20,0x05,0x0a,0x00,0x1f,0x00,0x38,0x05,0x0a,0xb3,0x09,0x3d,0x3d,0x25,0xb8,0x04,0xfb,0xb7,0x1c,0x00,0x1c,0x20,0x20,0x10,0x04,0x1c,0xba,0x05,0x03,0x00,0x31,0x04,0xff,0xb3,0x2f,0x10,0x01,0x10,0x00,0x2f,0x5d,0xed, +0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x10,0xed,0x32,0x2f,0x01,0x2f,0xed,0xd4,0xed,0xd6,0xed,0x31,0x30,0x25,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x03,0x33,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x23,0x22,0x0e,0x04,0x15,0x14,0x1e,0x02, +0x33,0x32,0x36,0x02,0x51,0x08,0x2a,0x66,0x3d,0x31,0x5f,0x4b,0x2f,0x2c,0x4b,0x62,0x6b,0x6e,0x31,0x30,0x6b,0x68,0x5e,0x48,0x2a,0x32,0x4f,0x64,0x31,0x3b,0x61,0x6c,0x86,0x0f,0x1f,0x2e,0x1f,0x1a,0x2f,0x23,0x15,0x1e,0x32,0x42,0x48,0x4a,0x21,0x21,0x48,0x46,0x3e,0x30,0x1c,0x14,0x23,0x2f,0x1c,0x36,0x41,0x7d,0x51,0x43,0x2c,0x70, +0xbe,0x92,0x8e,0xfd,0xd6,0xac,0x78,0x40,0x3e,0x75,0xa6,0xd1,0xf7,0x8a,0x98,0xc7,0x76,0x30,0x43,0x01,0x39,0x2d,0x4b,0x37,0x1e,0x1a,0x46,0x7a,0x60,0x72,0xd1,0xb3,0x92,0x67,0x38,0x39,0x68,0x91,0xb1,0xcd,0x6e,0x5c,0x7c,0x4c,0x20,0x6a,0x00,0x01,0x00,0x2f,0xff,0xf5,0x03,0x65,0x05,0xa4,0x00,0x28,0x00,0x3d,0xb5,0x00,0x16,0x07, +0x03,0x2a,0x1e,0xbb,0x05,0x0a,0x00,0x0d,0x00,0x08,0x04,0xfc,0x40,0x09,0x2f,0x23,0x01,0x23,0x00,0x28,0x28,0x03,0x19,0xb8,0x04,0xfb,0xb5,0x2f,0x12,0x01,0x12,0x04,0x03,0xb8,0x04,0xe6,0x00,0x3f,0x33,0x2f,0x5d,0xed,0x12,0x39,0x11,0x33,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x31,0x30,0x01,0x06,0x00,0x03,0x27,0x36,0x12, +0x37,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x36,0x36,0x37,0x03,0x65,0xe1,0xfe,0x7d,0xac,0x26,0x5e,0xec,0x84,0x01,0x49,0x74,0x51,0x2b,0x3b,0x6e,0x9e,0x62,0x1d,0x47,0x23,0x20,0x4d,0x21,0x37,0x5f,0x46,0x28,0x21,0x3a,0x51,0x2f,0x45,0x4d, +0x26,0x4a,0x27,0x03,0x0a,0x6e,0xfe,0x77,0xfe,0xe2,0xc2,0x9e,0x01,0x17,0x6b,0x04,0x0c,0x3b,0x5a,0x76,0x46,0x53,0x86,0x5f,0x34,0x05,0x05,0xab,0x05,0x07,0x17,0x31,0x4f,0x39,0x34,0x4e,0x35,0x1a,0x1b,0x17,0x2a,0x14,0xff,0xff,0xff,0xf4,0x00,0x00,0x03,0xfa,0x05,0x9a,0x02,0x06,0x08,0xde,0x00,0x00,0xff,0xff,0x00,0x49,0x00,0x00, +0x04,0x4f,0x05,0x9a,0x02,0x06,0x08,0xdf,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x03,0xdb,0x05,0xa8,0x02,0x06,0x08,0xe0,0x00,0x00,0x00,0x01,0x00,0x9b,0xfe,0xac,0x05,0x58,0x05,0xec,0x00,0x28,0x00,0x36,0xb1,0x1b,0x10,0xb8,0x05,0x0a,0xb3,0x0d,0x0d,0x17,0x03,0xb8,0x05,0x0a,0xb2,0x25,0x17,0x08,0xb8,0x04,0xfb,0xb2,0x20,0x1b, +0x15,0xba,0x04,0xfb,0x00,0x16,0x05,0x03,0xb1,0x0f,0x00,0x00,0x2f,0x2f,0x3f,0xed,0x39,0x2f,0xed,0x01,0x2f,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36, +0x37,0x01,0x4e,0x0b,0x0b,0x23,0x4f,0x7d,0x59,0x67,0x93,0x5d,0x2b,0x9c,0x0c,0x27,0x4a,0x3d,0x13,0x49,0x59,0x1c,0x04,0x11,0x4c,0x7f,0xb7,0x7c,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x01,0xa6,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x04,0xc4,0xfb,0xb0,0x43,0x61,0x40,0x1f,0xa7,0x28,0x26,0x5f,0x95,0x69,0x37,0x45,0x7f, +0xb7,0x72,0x3f,0x83,0x4b,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x05,0xb9,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x57,0x02,0xad,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9e,0x06,0x32,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07, +0x0f,0x57,0x00,0x72,0x03,0xd0,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x07,0x0f,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0xc6,0x05,0xb9,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0x9a,0x03,0x57,0x00,0x01,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x01,0xc1, +0x00,0x20,0x00,0x34,0xb9,0x00,0x02,0x05,0x0a,0xb3,0x1d,0x1d,0x22,0x13,0xb8,0x05,0x0a,0x40,0x0a,0x0c,0x2f,0x20,0x01,0x20,0x2f,0x10,0x01,0x10,0x18,0xb8,0x04,0xfb,0xb5,0x1f,0x07,0x2f,0x07,0x02,0x07,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0x2f,0x5d,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x16,0x15,0x14,0x0e,0x02,0x23,0x22, +0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x04,0x84,0x22,0x37,0x83,0xd6,0x9e,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x94,0x5e,0x2b,0x11,0x10,0x01,0xc1,0xb9,0xa1,0x8f,0xe4,0x9f,0x56,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f, +0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x45,0x9d,0x64,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x03,0xce,0x02,0x06,0x09,0x28,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0x0a,0x01,0xf2,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x06,0x0f,0x5a,0x00,0x00,0x00,0x01,0xff,0xba,0xfd,0xfa,0x04,0x02,0x02,0x01,0x00,0x32,0x00,0x48, +0xb9,0x00,0x1e,0x05,0x0b,0x40,0x0a,0x13,0x09,0x09,0x13,0x13,0x24,0x19,0x28,0x28,0x0e,0xb8,0x05,0x0a,0xb5,0x03,0x24,0x19,0x28,0x18,0x00,0xbb,0x04,0xfb,0x00,0x19,0x00,0x2b,0x05,0x03,0xb7,0x2f,0x1f,0x01,0x1f,0x2f,0x09,0x01,0x09,0x00,0x2f,0x5d,0x2f,0x5d,0x3f,0x33,0xed,0x32,0x39,0x01,0x2f,0x2f,0x33,0xed,0x33,0x2f,0x11,0x12, +0x39,0x2f,0x33,0x2f,0x10,0xed,0x31,0x30,0x37,0x32,0x36,0x37,0x3e,0x03,0x37,0x33,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x3e,0x03,0x33,0x15,0x22,0x0e,0x02,0x15,0x15,0x2e,0x03,0x35,0x34,0x36,0x37,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x9b,0x30,0x3d,0x0e,0x09,0x10,0x1c,0x2e,0x27,0x97,0x2f,0x42,0x28,0x12,0x21, +0x33,0x3e,0x1e,0x07,0x42,0x73,0xa2,0x68,0x57,0x81,0x54,0x2a,0x7c,0xa9,0x68,0x2d,0x07,0x06,0x04,0x1a,0x40,0x2d,0x74,0x23,0x23,0x23,0x23,0x99,0x0a,0x0e,0x09,0x26,0x4b,0x7a,0x5c,0x67,0xa8,0x8b,0x71,0x2e,0x45,0x59,0x38,0x1e,0x09,0x60,0xa9,0x7d,0x48,0xa7,0x3f,0x76,0xa9,0x6a,0x30,0x18,0x47,0x60,0x7b,0x4d,0x20,0x43,0x25,0x02, +0x0c,0x0d,0x34,0x20,0x20,0x33,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x06,0x12,0x02,0x26,0x09,0x28,0x00,0x00,0x01,0x07,0x09,0x7e,0x01,0x16,0xfe,0x29,0x00,0x0a,0xb4,0x02,0x2f,0x40,0x01,0x40,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x05,0x5d,0x02,0x26,0x09,0x28,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x01, +0x04,0xad,0x00,0x01,0x00,0x72,0xff,0xea,0x06,0xe5,0x03,0x5b,0x00,0x2b,0x00,0x1f,0xb9,0x00,0x0a,0x05,0x0a,0xb6,0x21,0x00,0x2f,0x2b,0x01,0x2b,0x0f,0xba,0x04,0xfb,0x00,0x1a,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xcd,0x01,0x2f,0xed,0x31,0x30,0x01,0x0e,0x03,0x07,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e, +0x03,0x23,0x22,0x2e,0x04,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x37,0x03,0x4b,0x3a,0x72,0x69,0x60,0x28,0x24,0x3b,0x2a,0x17,0x45,0x93,0xe5,0xa1,0x7b,0xf4,0xe5,0xcf,0x56,0x72,0xf9,0xf0,0xda,0x54,0x93,0xe1,0xa6,0x70,0x43,0x1d,0x27,0x43,0x5c,0x35,0x2e,0x62,0x63,0x60,0x2c,0x02,0xd3,0x30,0x4e,0x3f,0x34,0x16,0x14,0x25,0x25,0x28, +0x18,0x2e,0x3c,0x23,0x0e,0x07,0x0c,0x10,0x09,0xa5,0x0c,0x12,0x0c,0x06,0x12,0x24,0x35,0x45,0x55,0x32,0x37,0x5a,0x4c,0x43,0x20,0x1c,0x38,0x3c,0x43,0x27,0x00,0x01,0x00,0x72,0xfe,0x28,0x06,0xe5,0x00,0x99,0x00,0x25,0x00,0x23,0xbc,0x00,0x06,0x05,0x0a,0x00,0x1d,0x00,0x0b,0x04,0xfb,0xb4,0x2f,0x16,0x01,0x16,0x24,0xba,0x04,0xfb, +0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x04,0x35,0x34,0x3e,0x04,0x33,0x33,0x02,0xac,0x0d,0x43,0x8e,0x75,0x4b,0x45,0x93,0xe5,0xa1,0x7b,0xf4,0xe5,0xcf,0x56,0x72,0xf9,0xf0,0xda,0x54,0x93, +0xe1,0xa6,0x70,0x43,0x1d,0x3d,0x63,0x7c,0x7d,0x72,0x27,0x08,0x0e,0x04,0x19,0x37,0x32,0x2e,0x3c,0x23,0x0e,0x07,0x0c,0x10,0x09,0xa5,0x0c,0x12,0x0c,0x06,0x12,0x24,0x35,0x45,0x55,0x32,0x4a,0x69,0x45,0x28,0x15,0x05,0xff,0xff,0x00,0x72,0xff,0xea,0x06,0xe5,0x05,0x3e,0x02,0x26,0x09,0x65,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0xab, +0xfd,0x55,0x00,0x0a,0xb4,0x01,0x2f,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x3d,0x02,0x26,0x09,0x66,0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0xab,0xfb,0x54,0x00,0x01,0x00,0x2d,0x00,0x00,0x01,0xab,0x00,0xbc,0x00,0x03,0x00,0x13,0xb2,0x03,0x02,0x02,0xba,0x04,0xfb,0x00,0x00,0x04,0xe6,0x00, +0x3f,0xed,0x01,0x2f,0xcd,0x31,0x30,0x21,0x21,0x27,0x21,0x01,0xab,0xfe,0xaa,0x28,0x01,0x7e,0xbc,0x00,0x00,0x03,0x00,0x7c,0x00,0x00,0x04,0x18,0x05,0x58,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x34,0xbc,0x00,0x05,0x05,0x0c,0x00,0x04,0x00,0x01,0x05,0x0c,0xb5,0x00,0x2f,0x09,0x01,0x09,0x08,0xba,0x04,0xe6,0x00,0x06,0x04,0xfe,0xb4, +0x2f,0x05,0x01,0x05,0x02,0xb9,0x04,0xfe,0x00,0x01,0x00,0x2f,0xed,0x2f,0x5d,0xed,0x3f,0x2f,0x5d,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x13,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x05,0x01,0x33,0x01,0xc0,0xf7,0xf7,0x02,0x36,0xf7,0xf7,0xfd,0x86,0x03,0x0d,0x8f,0xfc,0xf3,0x04,0xfd,0xf7,0xfd,0x4c,0xf7,0x5b,0x05,0x58,0xfa,0xa8,0x00, +0x00,0x01,0x00,0x42,0x01,0xae,0x02,0xd9,0x04,0x25,0x00,0x0e,0x00,0x0c,0xb4,0x20,0x03,0x01,0x03,0x0c,0x00,0x2f,0xc4,0x5d,0x31,0x30,0x01,0x07,0x17,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x27,0x33,0x07,0x37,0x02,0xd9,0xf6,0xa6,0x7b,0x81,0x81,0x7b,0xa6,0xf5,0x2f,0xe7,0x16,0x97,0x16,0xe7,0x02,0xfe,0x37,0xbf,0x5a,0xdb,0xdb, +0x5a,0xbf,0x37,0x8f,0x64,0xfc,0xfc,0x64,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x4b,0x06,0x3c,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x53,0x04,0xd7,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x06,0x3c,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02, +0x06,0x3c,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x04,0x74,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0xa1,0xff,0xf2,0x07,0x4a,0x08,0x36,0x00,0x3a,0x00,0x48,0x00,0x4c, +0x00,0x7a,0x00,0xdd,0xb9,0x00,0x0d,0x05,0x0a,0xb3,0x0a,0x66,0x66,0x69,0xb8,0x05,0x0d,0xb6,0x63,0x65,0x65,0x63,0x5a,0x5a,0x5d,0xb8,0x05,0x0d,0x40,0x09,0x4a,0x4b,0x4b,0x56,0x56,0x4a,0x59,0x59,0x49,0xb8,0x05,0x0b,0xb4,0x16,0x70,0x4a,0x4a,0x00,0xb8,0x05,0x0a,0xb3,0x38,0x4d,0x4d,0x50,0xb8,0x05,0x0b,0xb5,0x78,0x7a,0x7a,0x78, +0x43,0x2d,0xb8,0x05,0x0a,0x40,0x0e,0x2c,0x0a,0x63,0x38,0x78,0x2c,0x2c,0x78,0x38,0x63,0x0a,0x05,0x7c,0x3b,0xbb,0x05,0x0a,0x00,0x26,0x00,0x21,0x04,0xfb,0xb6,0x2f,0x40,0x01,0x40,0x16,0x33,0x05,0xbb,0x04,0xfb,0x00,0x19,0x00,0x12,0x05,0x03,0x40,0x0b,0x70,0x60,0x6c,0x30,0x4c,0x01,0x4c,0x49,0x5a,0x53,0x60,0xb8,0x04,0xfd,0xb3, +0x73,0x6c,0x0b,0x44,0xb8,0x04,0xfc,0x40,0x0a,0x2b,0x2f,0x2c,0x01,0x2c,0x3a,0x20,0x0b,0x01,0x0b,0x00,0x2f,0x5d,0xd6,0xd4,0x5d,0xdd,0xed,0x10,0xd4,0x32,0xfd,0x32,0xd6,0xde,0xcd,0x5d,0x11,0x12,0x39,0x3f,0x33,0xed,0x32,0x39,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x33,0x11,0x33,0x2f, +0x10,0xed,0x32,0x2f,0x10,0xed,0x39,0x2f,0x39,0x39,0xed,0x33,0x2f,0x11,0x33,0x2f,0x33,0x2f,0x10,0xe4,0x32,0x2f,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x10,0xed,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x22, +0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x01,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x11,0x0e,0x03,0x01,0x23,0x11,0x33,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x34,0x27,0x33,0x06,0x14,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x16,0x15, +0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x05,0x49,0x0c,0x26,0x46,0x39,0x25,0x42,0x31,0x1c,0x9c,0x3c,0x61,0x7b,0x3e,0x68,0x75,0x1c,0x04,0x31,0x91,0x49,0x38,0x64,0x50,0x3a,0x0e,0x2b,0x62,0x2a,0x45,0x7f,0x62,0x3a,0x58,0x92,0xbc,0x65,0x9c,0x0e,0x26,0x44,0x36,0x1d,0x40,0x36,0x24,0x9c, +0xfb,0xee,0x23,0x3c,0x4e,0x2a,0x27,0x55,0x22,0x4d,0x87,0x66,0x3b,0x04,0x03,0x74,0x74,0xfe,0xf5,0x03,0x01,0x26,0x2d,0x2c,0x23,0x01,0x5f,0x01,0x22,0x2d,0x2f,0x25,0x03,0x5f,0x01,0x01,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x03,0x01,0x8c,0x3b,0x5a,0x3e,0x20,0x16,0x2d,0x46,0x31,0x04,0x2b,0xfb,0xce, +0x65,0x86,0x4f,0x20,0x40,0x3b,0x3f,0x3c,0x19,0x35,0x52,0x3a,0x11,0x0c,0x20,0x45,0x6c,0x4d,0x5e,0x92,0x68,0x42,0x0f,0x61,0xfd,0xb5,0x3d,0x5b,0x3d,0x1e,0x13,0x2c,0x47,0x34,0x03,0x95,0xfc,0xf4,0x26,0x35,0x21,0x0e,0x0a,0x0b,0x01,0x76,0x0e,0x2f,0x41,0x52,0x04,0xd3,0x01,0x56,0xfe,0x57,0x1c,0x18,0x09,0x33,0x3f,0x3e,0x3b,0x0d, +0x1c,0x0d,0x0e,0x1c,0x0b,0x3d,0x3d,0x3e,0x37,0x1f,0x1b,0x0c,0x18,0x08,0x6d,0x76,0x1f,0x20,0x20,0x1f,0x22,0x3a,0x4e,0x2c,0x21,0x18,0x00,0x01,0x00,0x57,0xff,0xaf,0x04,0x02,0x01,0xbb,0x00,0x1e,0x00,0x2a,0xbc,0x00,0x0d,0x05,0x0a,0x00,0x12,0x00,0x08,0x04,0xfb,0x40,0x09,0x2f,0x17,0x01,0x17,0x2f,0x0e,0x01,0x0e,0x1e,0xba,0x04, +0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x05,0x23,0x22,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x04,0x33,0x04,0x02,0x0c,0x42,0x6c,0x60,0x56,0x55,0x58,0x32,0x2a,0x4d,0x3b,0x23,0x83,0x03,0x01,0x42,0x69,0x80,0x3f,0x3f,0x6b, +0x60,0x58,0x56,0x58,0x31,0x0e,0x2b,0x40,0x4c,0x40,0x2b,0x23,0x4e,0x7c,0x58,0x20,0x16,0x1e,0x05,0x7e,0xb2,0x70,0x33,0x2b,0x40,0x4c,0x40,0x2b,0x00,0x01,0x00,0xc4,0x06,0x7c,0x01,0x42,0x08,0x04,0x00,0x03,0x00,0x15,0xbd,0x00,0x00,0x05,0x0b,0x00,0x01,0x00,0x00,0x04,0xfe,0x00,0x03,0x00,0x2f,0xed,0x01,0x10,0xed,0x31,0x30,0x01, +0x23,0x11,0x33,0x01,0x42,0x7e,0x7e,0x06,0x7c,0x01,0x88,0x00,0x00,0x02,0xff,0x17,0x06,0x1d,0x02,0xee,0x08,0xde,0x00,0x53,0x00,0x65,0x00,0x6f,0xb5,0x09,0x26,0x61,0x03,0x47,0x1a,0xb8,0x05,0x0d,0xb2,0x59,0x2d,0x00,0xbb,0x05,0x0d,0x00,0x51,0x00,0x38,0x05,0x0d,0xb2,0x47,0x53,0x15,0xb8,0x05,0x01,0x40,0x11,0x5c,0x54,0x26,0x2d, +0x54,0x1f,0x61,0x61,0x54,0x4c,0x4c,0x54,0x10,0x10,0x0a,0x03,0x54,0xb8,0x05,0x01,0x40,0x09,0x1f,0x35,0x35,0x30,0x30,0x29,0x29,0x1f,0x3b,0xb9,0x05,0x01,0x00,0x42,0x00,0x2f,0xfd,0xce,0x32,0x2f,0x32,0x2f,0x32,0x2f,0x10,0xfd,0x32,0xcc,0x33,0x2f,0x11,0x33,0x2f,0x11,0x33,0x2f,0x11,0x12,0x39,0x39,0x10,0xde,0xfd,0xc6,0x01,0x2f, +0xed,0x2f,0xed,0x39,0x2f,0xed,0x11,0x17,0x39,0x31,0x30,0x13,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x26,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x22,0x06,0x22,0x23,0x22,0x06,0x15, +0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x37,0x36,0x36,0x35,0x11,0x33,0x01,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x32,0x32,0x16,0x32,0x61,0x0e,0x1a,0x1a,0x15,0x05,0x05,0x51,0x06,0x09,0x02,0x04,0x13,0x1d,0x0d,0x2f,0x43,0x57,0x36,0x28,0x3c,0x27,0x13, +0x20,0x46,0x71,0x51,0x48,0x61,0x15,0x0a,0x14,0x06,0x01,0x12,0x31,0x1a,0x1f,0x28,0x0a,0x01,0x11,0x2c,0x16,0x03,0x0e,0x0f,0x0e,0x04,0x18,0x26,0x60,0x69,0x63,0x9b,0x40,0x52,0xab,0x43,0x46,0x6c,0x49,0x26,0x25,0x35,0x3b,0x16,0x1d,0x10,0x0e,0x0c,0x58,0x01,0x9b,0x2e,0x3b,0x23,0x0e,0x34,0x25,0x1f,0x34,0x29,0x1e,0x09,0x08,0x1c, +0x1d,0x1b,0x07,0x7e,0x2a,0x27,0x1c,0x1a,0x0b,0x2a,0x12,0x18,0x2f,0x0b,0x10,0x18,0x02,0x27,0x5f,0x53,0x38,0x22,0x3a,0x50,0x2d,0x3a,0x40,0x1e,0x06,0x03,0x08,0x04,0x14,0x0b,0x18,0x13,0x17,0x14,0x19,0x12,0x01,0x0f,0x12,0x19,0x10,0x09,0x06,0x61,0x08,0x09,0x0c,0x1e,0x33,0x28,0x29,0x35,0x1f,0x0d,0x08,0x08,0x17,0x15,0x01,0x76, +0xfe,0x4d,0x02,0x0e,0x1b,0x1a,0x39,0x33,0x1f,0x33,0x3f,0x1f,0x01,0x00,0x00,0x01,0x00,0x10,0x06,0x71,0x01,0xbb,0x08,0xde,0x00,0x14,0x00,0x27,0xb9,0x00,0x0c,0x05,0x0d,0xb5,0x09,0x06,0x06,0x00,0x00,0x03,0xb8,0x05,0x01,0xb5,0x11,0x14,0x14,0x11,0x0b,0x05,0x00,0x2f,0xc4,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x32,0x2f,0x01,0x2f, +0xed,0x31,0x30,0x13,0x16,0x16,0x33,0x03,0x33,0x13,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x10,0x2e,0x51,0x27,0x99,0x5d,0x98,0x28,0x28,0x59,0x23,0x3d,0x53,0x30,0x2d,0x5e,0x30,0x06,0xe2,0x06,0x04,0x01,0xca,0xfe,0x37,0x02,0x1c,0x2a,0x01,0xbd,0xfe,0x22,0x34,0x3a,0x1b,0x06,0x04,0x06,0x00,0xff,0xff, +0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xc2,0xfd,0xfe,0x01,0xa2,0xff,0x6b,0x00,0x28,0x00,0x3e,0xbc,0x00,0x1b,0x05,0x0d,0x00,0x0d,0x00,0x26,0x04,0xfd,0xb5,0x04,0x04,0x1f,0x14,0x14,0x12,0xb8,0x04,0xfd,0x40,0x0a,0x00,0x18,0x10,0x18,0x02,0x18,0x1f,0x09,0x09,0x1f,0xb8,0x04,0xfd, +0xb3,0x1f,0x20,0x01,0x20,0x00,0x2f,0x5d,0xed,0x32,0x2f,0x10,0xde,0x5d,0xed,0x32,0x2f,0x11,0x39,0x2f,0xed,0x01,0x2f,0xed,0x31,0x30,0x03,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x23,0x22,0x07, +0x3e,0x19,0x28,0x11,0x11,0x1d,0x1f,0x24,0x19,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x0d,0x1d,0x10,0x2d,0x3e,0x46,0x48,0x46,0xc7,0x31,0x40,0x2b,0x1e,0x0f,0x1f,0x2e,0xfe,0x06,0x56,0x15,0x10,0x0c,0x0f,0x0c,0x01,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0x65,0x03,0x04,0x26,0x25,0x30,0x2d,0x61,0x0f,0x11,0x0f,0x28, +0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00, +0x00,0x02,0x00,0x9b,0xfd,0xff,0x05,0x4b,0x02,0xb7,0x00,0x30,0x00,0x44,0x00,0x5b,0xb2,0x31,0x31,0x14,0xbb,0x05,0x0a,0x00,0x00,0x00,0x3d,0x05,0x0a,0xb6,0x07,0x00,0x07,0x00,0x07,0x46,0x25,0xb8,0x05,0x0a,0xb3,0x1e,0x1e,0x13,0x2a,0xb8,0x04,0xfb,0x40,0x0a,0x1f,0x19,0x2f,0x19,0x02,0x19,0x22,0x22,0x02,0x38,0xb8,0x04,0xfb,0xb5, +0x2f,0x0c,0x01,0x0c,0x00,0x42,0xba,0x04,0xfb,0x00,0x02,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x2f,0x5d,0xed,0x3f,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x33,0x2f,0x31,0x30,0x25,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23, +0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x35,0x2e,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x04,0xad,0x50,0x5c,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x1b,0x28,0x1b,0x0e,0x4a,0x98,0xed,0xa3,0xa1,0xdb,0x87,0x3b,0x0f,0x0e,0x97,0x0b,0x0c, +0x2b,0x64,0xa5,0x7a,0x67,0x93,0x64,0x3b,0x21,0x0b,0x01,0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0x17,0x25,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x2a,0x68,0x75,0x7f,0x40,0x95,0xdc,0x91,0x47,0x41,0x7c,0xb7,0x77,0x3f,0x8c,0x4e,0x4b,0x7d,0x36,0x5f,0x84,0x54,0x26,0x1d,0x32, +0x46,0x51,0x5b,0xd0,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x49,0x06,0x7c,0x01,0xa2,0x07,0xe9,0x00,0x18,0x00,0x2f,0xb1,0x0e,0x06,0xb8,0x05,0x0d,0xb6,0x11,0x0e,0x09,0x0a,0x18,0x18,0x16, +0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c,0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x11,0x12,0x39,0x01,0x2f,0xed,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e, +0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x07,0x7e,0x03,0x04,0x25,0x2b,0x58,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0x00,0x01,0x00,0x49,0xfd,0xfe,0x01,0xa2,0xff,0x6b,0x00,0x18,0x00,0x34,0xb1,0x0e,0x06,0xb8,0x05,0x0d,0xb3,0x11,0x18,0x18,0x16,0xb8,0x04,0xfd,0x40,0x0a,0x00,0x03, +0x10,0x03,0x02,0x03,0x09,0x0d,0x0d,0x09,0xb8,0x04,0xfd,0xb3,0x1f,0x0a,0x01,0x0a,0x00,0x2f,0x5d,0xed,0x32,0x2f,0x10,0xde,0x5d,0xed,0x32,0x2f,0x01,0x2f,0xed,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0x73,0x0d,0x1d,0x10,0x2d, +0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xff,0x00,0x03,0x04,0x26,0x27,0x5b,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0x00,0xff,0xff,0xff,0x97,0x00,0x00,0x01,0xf0,0x07,0xe8,0x02,0x26,0x09,0x0d,0x00,0x00,0x00,0x06,0x0f,0x58,0x00,0x00,0xff,0xff,0xff,0x97,0xff,0xf2,0x02,0x01, +0x07,0xe8,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x0f,0x58,0x00,0x00,0xff,0xff,0xff,0xc2,0x00,0x00,0x01,0xa2,0x07,0xe9,0x02,0x26,0x09,0x0d,0x00,0x00,0x01,0x07,0x09,0x77,0x00,0x00,0x08,0x7e,0x00,0x0a,0xb4,0x01,0x20,0x23,0x01,0x23,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xc2,0xff,0xf2,0x02,0x01,0x07,0xe9,0x02,0x26,0x08,0xc7, +0x00,0x00,0x01,0x07,0x09,0x77,0x00,0x00,0x08,0x7e,0x00,0x0a,0xb4,0x01,0x20,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xc2,0xfd,0xfe,0x01,0xa2,0x05,0xec,0x02,0x26,0x09,0x0d,0x00,0x00,0x00,0x06,0x09,0x77,0x00,0x00,0xff,0xff,0xff,0xc2,0xfd,0xfe,0x02,0x01,0x05,0xec,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x09,0x77, +0x00,0x00,0xff,0xff,0x00,0xab,0x00,0x00,0x02,0xf8,0x05,0xec,0x00,0x26,0x09,0x0d,0x00,0x00,0x01,0x07,0x09,0x7e,0x01,0x56,0xfe,0x00,0x00,0x0a,0xb4,0x01,0x20,0x1a,0x01,0x1a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xf2,0x03,0x57,0x05,0xec,0x00,0x26,0x08,0xc7,0x00,0x00,0x00,0x27,0x09,0x21,0x02,0x01,0x00,0x00,0x01,0x07, +0x09,0x7e,0x01,0x56,0xfe,0x00,0x00,0x0a,0xb4,0x02,0x20,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0xa3,0x05,0x3e,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x07,0x09,0x7e,0x02,0x01,0xfd,0x55,0xff,0xff,0xff,0xe7,0xfd,0xff,0x03,0xa3,0x05,0x63,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x27,0x09,0x7e,0x02,0x01, +0xfd,0x55,0x00,0x07,0x09,0x30,0x00,0x28,0xfd,0x55,0xff,0xff,0x00,0x9a,0xff,0x55,0x06,0x4f,0x05,0xe9,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x09,0x7e,0x04,0xad,0xfe,0x00,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xfa,0x05,0x3e,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x09,0x7e,0x05,0x58,0xfd,0x55,0xff,0xff,0x00,0xab,0xff,0xea, +0x06,0x9f,0x05,0xca,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x52,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x01,0xf9,0x05,0xca,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x52,0x02,0xad, +0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x01,0xf2,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0xab,0xfe,0xee,0x06,0x9f,0x04,0xb2,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x27,0x0f,0x5b,0x02,0xad,0x00,0xef,0x01,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0x00,0x0c,0xb5,0x02,0x01,0x20, +0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0x05,0x02,0x9a,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x5b,0x00,0x1a,0x01,0x06,0x01,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0x00,0x0c,0xb5,0x02,0x01,0x20,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x05,0xca, +0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9a,0x05,0xca,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x05,0xca,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x56,0x02,0xad,0x04,0x02,0xff,0xff, +0xff,0xba,0xff,0xf2,0x02,0x9a,0x05,0xca,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x56,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x81,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07, +0x0f,0x56,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x05,0x8f,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x09,0x7e,0x01,0x56,0xfd,0xa6,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x05,0x8f,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x09,0x7e,0x01,0x56,0xfd,0xa6,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x7c,0x05,0x16, +0x02,0x26,0x08,0xd0,0x00,0x00,0x01,0x07,0x09,0x7e,0x01,0x56,0xfd,0x2d,0x00,0x0a,0xb4,0x01,0x2f,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x05,0xf2,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x04,0x2a,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x05,0xf2,0x02,0x26,0x08,0xd1, +0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x04,0x2a,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x7c,0x05,0x79,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x03,0xb1,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0xc8,0xff,0xb1,0xff,0xff,0x00,0x7e,0xfd,0xff, +0x04,0xad,0x03,0x54,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x96,0xff,0x75,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0xfe,0xab,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x02,0x26,0x09,0x13,0x00,0x00,0x01,0x07,0x0f,0x52,0x01,0xc8, +0xff,0x26,0x00,0x0c,0xb5,0x02,0x01,0x20,0x34,0x01,0x34,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x03,0x54,0x02,0x26,0x08,0xd1,0x00,0x00,0x01,0x07,0x0f,0x52,0x01,0x91,0xff,0x14,0x00,0x0c,0xb5,0x02,0x01,0x20,0x43,0x01,0x43,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x7c,0x03,0x0f, +0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x05,0xf2,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x04,0x2a,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x05,0xf2,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x04,0x2a,0xff,0xff, +0xff,0xba,0xff,0xf2,0x04,0x7c,0x05,0x79,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x03,0xb1,0x00,0x05,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x00,0x31,0x00,0x35,0x00,0x39,0x00,0x3d,0x00,0x41,0x00,0x84,0xb1,0x3e,0x36,0xb8,0x05,0x0a,0xb4,0x37,0x3f,0x37,0x3a,0x32,0xb8,0x05,0x0a,0x40,0x0e,0x33,0x3b,0x33, +0x1d,0x00,0x0d,0x03,0x37,0x33,0x37,0x33,0x43,0x26,0x05,0xb8,0x05,0x0a,0xb2,0x16,0x3e,0x3a,0xb8,0x04,0xfb,0x40,0x09,0x40,0x0f,0x3d,0x1f,0x3d,0x02,0x3d,0x36,0x32,0xb8,0x04,0xfb,0x40,0x0d,0x38,0x2f,0x35,0x3f,0x35,0x02,0x35,0x31,0x1d,0x00,0x03,0x11,0x23,0xb8,0x04,0xff,0xb2,0x2a,0x0d,0x0a,0xb8,0x04,0xfc,0xb6,0x0e,0x1f,0x11, +0x2f,0x11,0x02,0x11,0x00,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x2f,0x5d,0x33,0xfd,0x32,0xde,0x5d,0x32,0xed,0x32,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x17,0x39,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x01,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06, +0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x0c,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64, +0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe,0x7e,0xb5,0xb5,0x01,0x1a,0xb5,0xb5,0xfe,0xe6,0xb5,0xb5,0x01,0x1a,0xb5,0xb5,0x02,0x01,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a, +0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfd,0x78,0xb3,0xb3,0xb3,0xfe,0x35,0xb3,0xb3,0xb3,0x00,0x04,0x00,0x7e,0xfd,0xff,0x05,0x58,0x03,0x54,0x00,0x42,0x00,0x46,0x00,0x4a,0x00,0x4e,0x00,0x90,0xb2,0x03,0x43,0x00,0xb8,0x05,0x0a,0xb4,0x01,0x44,0x01,0x4b,0x47,0xb8,0x05,0x0a,0x40,0x0e, +0x48,0x4c,0x48,0x23,0x38,0x13,0x03,0x01,0x48,0x01,0x48,0x50,0x2c,0x0b,0xbd,0x05,0x0a,0x00,0x1c,0x00,0x3c,0x04,0xfb,0x00,0x3e,0x05,0x03,0xb6,0x06,0x38,0x23,0x37,0x04,0x17,0x29,0xb8,0x04,0xff,0xb2,0x30,0x13,0x10,0xb8,0x04,0xfc,0x40,0x09,0x14,0x1f,0x17,0x2f,0x17,0x02,0x17,0x47,0x43,0xb8,0x04,0xfb,0x40,0x09,0x49,0x0f,0x46, +0x1f,0x46,0x02,0x46,0x4b,0x00,0xb8,0x04,0xfb,0xb4,0x4d,0x2f,0x03,0x01,0x03,0x00,0x2f,0x5d,0x33,0xfd,0x32,0xde,0x5d,0x32,0xed,0x32,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x3f,0xed,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x17,0x39,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x39,0x31,0x30,0x25,0x23, +0x35,0x33,0x26,0x26,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x07,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x27,0x11,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x35,0x23,0x35, +0x33,0x03,0xa6,0xb5,0xa9,0x1d,0x2a,0x0f,0x9d,0xd5,0x81,0x37,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0x20,0x4b,0x24,0xc1,0x99,0x19,0x2f,0x84,0xc0,0x3f,0xb5,0xb5,0xfe,0xf0, +0xb5,0xb5,0xb5,0xb5,0x34,0xb3,0x31,0x70,0x3e,0x35,0x72,0x7b,0x86,0x48,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x15,0x9f,0xb4,0xa7,0x7a,0x66,0xfe,0x4a,0xb3,0xb3,0xb3,0x65,0xb3, +0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x52,0xfe,0xf4,0x03,0x4a,0x03,0xba,0x02,0x26,0x09,0x15,0x00,0x00,0x01,0x07,0x0f,0x5b,0x00,0xab,0x00,0xf5,0x00,0x0c,0xb5,0x02,0x01,0x20,0x20,0x01,0x20,0x00,0x11,0x5d,0x35,0x35,0xff,0xff, +0x00,0x52,0xfe,0xa6,0x03,0x4a,0x03,0xba,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0x52,0xfe,0xa6,0x03,0x4a,0x07,0x0f,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0xab,0xfe,0xab,0x00,0x07,0x0f,0x57,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x05,0x5d, +0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x52,0xfe,0xa6,0x03,0x4a,0x03,0xba,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x06,0x75,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xab,0x04,0xad,0xff,0xff, +0x00,0x52,0xff,0xea,0x03,0x4a,0x06,0x75,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x06,0x75,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0xc2,0x04,0xaf,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07, +0x0a,0x6d,0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x31,0x02,0x5e,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x5b,0x01,0x90,0x00,0x00,0xff,0xff,0x00,0x00,0xfd,0xfb,0x03,0x4f,0x02,0x5e,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0xf2,0xfe,0x00,0xff,0xff,0x00,0x00,0xfd,0xe1,0x04,0x31,0x02,0x5e, +0x00,0x26,0x09,0x17,0x00,0x00,0x01,0x07,0x0a,0x6d,0x02,0x09,0xf7,0x65,0x00,0x0a,0xb4,0x01,0x2f,0x1d,0x01,0x1d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xfb,0x03,0x4f,0x02,0x5e,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0xf2,0xfe,0x00,0x00,0x06,0x0f,0x50,0xce,0x05,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0x9e, +0x04,0x07,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0x9e,0x05,0x1f,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x04,0x07,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x27,0x0f,0x50,0x05,0x50,0x03,0x57, +0x00,0x07,0x0f,0x50,0x05,0x50,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x05,0xf4,0x04,0x07,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0xa4,0x03,0x57,0x00,0x07,0x0f,0x50,0x02,0xa4,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x08,0xa0,0x03,0x0f,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x07,0x0f,0x54,0x05,0x50,0xfd,0xce, +0xff,0xff,0xff,0xba,0xfd,0xc9,0x05,0xf4,0x03,0x0f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xa4,0xfd,0xce,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x08,0xa0,0x05,0x1f,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x27,0x0f,0x54,0x05,0x50,0xfd,0xce,0x00,0x07,0x0f,0x53,0x05,0x46,0x03,0x57,0xff,0xff,0xff,0xba,0xfd,0xc9,0x05,0xf4, +0x05,0x1f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x27,0x0f,0x54,0x02,0xa4,0xfd,0xce,0x00,0x07,0x0f,0x53,0x02,0xa4,0x03,0x57,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0xf7,0x03,0x3c,0x02,0x26,0x09,0x1b,0x00,0x00,0x00,0x07,0x0f,0x51,0x06,0x3c,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x07,0x4b,0x03,0x3c,0x02,0x26,0x08,0xd6,0x00,0x00, +0x00,0x07,0x0f,0x51,0x03,0x86,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0xf7,0x05,0xca,0x02,0x26,0x09,0x1b,0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0xca,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xea,0x07,0x4b,0x05,0xca,0x02,0x26,0x08,0xd6,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x1e,0x04,0x02,0xff,0xff,0x00,0x19,0xff,0xea,0x05,0xf5, +0x05,0xec,0x02,0x26,0x09,0x1d,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xe5,0x04,0x02,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x06,0xa7,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xe4,0x04,0xdf,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad,0x06,0x42,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x04,0x7a, +0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x3c,0x05,0xfc,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x1d,0x04,0x34,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0xca,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x04,0x02,0x00,0x02,0x00,0xab,0xff,0xea,0x07,0x4b,0x03,0x62,0x00,0x36,0x00,0x4a,0x00,0x4c, +0xbc,0x00,0x23,0x05,0x0a,0x00,0x37,0x00,0x43,0x05,0x0a,0xb6,0x16,0x37,0x16,0x37,0x16,0x4c,0x03,0xb8,0x05,0x0a,0xb4,0x33,0x48,0x10,0x10,0x0d,0xb8,0x04,0xfb,0xb4,0x2a,0x00,0x00,0x1b,0x2a,0xba,0x05,0x03,0x00,0x3e,0x04,0xfb,0xb3,0x2f,0x1b,0x01,0x1b,0x00,0x2f,0x5d,0xed,0x3f,0x12,0x39,0x2f,0x10,0xed,0x32,0x2f,0x32,0x01,0x2f, +0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x05,0x33,0x32,0x36,0x37,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x05,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14, +0x1e,0x02,0x17,0x36,0x36,0x01,0x62,0x09,0x11,0x20,0x2e,0x17,0x39,0x4f,0x6d,0x96,0xc7,0x82,0x5b,0x8e,0x3b,0x02,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x3a,0x64,0x89,0x9d,0xac,0x55,0xb9,0x86,0xd6,0xaa,0x7f,0x2e,0x3f,0x30,0x12,0x0b,0x05,0xe6,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2c, +0x1a,0x18,0x42,0x73,0x5a,0x21,0x1d,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x66,0x20,0x10,0x17,0x0f,0x08,0x05,0x01,0x02,0x03,0x06,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x57,0x21,0x4a,0x53,0x5a,0x30,0x60,0x84,0x57,0x30,0x17,0x05,0x05,0x15,0x2d,0x27,0x36,0x99,0x58,0x3d,0x70,0x33,0xf2,0x1d,0x47,0x49,0x45,0x36,0x20,0x26, +0x3c,0x4c,0x26,0x20,0x3e,0x44,0x49,0x2a,0x18,0x4d,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x4b,0x03,0x62,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x50,0x05,0x10,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x49,0x03,0x62,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x0e,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6, +0x04,0x02,0x03,0x62,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x0e,0xfe,0xab,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x4b,0x05,0x24,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x27,0x0f,0x50,0x04,0xd7,0x04,0x74,0x00,0x07,0x0f,0x50,0x05,0x10,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x49,0x05,0x24,0x02,0x26,0x09,0x3c, +0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x0e,0xfe,0xab,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x05,0x24,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x0e,0xfe,0xab,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x4b,0x03,0x62,0x02,0x26,0x09,0xc8, +0x00,0x00,0x00,0x07,0x0f,0x54,0x05,0x10,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x49,0x03,0x62,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x0e,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02,0x03,0x62,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x0e,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea, +0x07,0x4b,0x06,0x3c,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x56,0x04,0xd7,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x06,0x3c,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x3c,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0xd5, +0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x4b,0x04,0x79,0x02,0x26,0x09,0x7c,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xd4,0x03,0xc9,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x4b,0x05,0x91,0x02,0x26,0x09,0x7c,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xd4,0x03,0xc9,0x00,0x01,0x00,0x19,0xff,0xea,0x08,0x3d,0x04,0x19,0x00,0x3f,0x00,0x41, +0xb9,0x00,0x2e,0x05,0x0a,0xb6,0x0f,0x0c,0x0c,0x0f,0x0f,0x41,0x23,0xbf,0x05,0x0a,0x00,0x18,0x00,0x07,0x04,0xfb,0x00,0x38,0x05,0x03,0x00,0x12,0x04,0xfb,0xb4,0x2f,0x29,0x01,0x29,0x1e,0xb8,0x04,0xfb,0xb3,0x2f,0x1d,0x01,0x1d,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0x2f,0x10,0xed,0x31, +0x30,0x37,0x1e,0x05,0x33,0x32,0x3e,0x02,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x22,0x2e,0x02,0x35,0x34,0x36,0x36,0x24,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x02,0x04,0x23,0x22,0x2e,0x04,0x27,0x19,0x25,0x83,0xaa,0xc8,0xd8,0xdd,0x69,0xa5,0xf9,0xc5,0x9e,0x4b,0x03, +0x03,0x5d,0x55,0xfb,0xd3,0x56,0x88,0x5e,0x32,0x6b,0xc7,0x01,0x1f,0xb4,0x7f,0xe3,0xac,0x65,0x18,0x4a,0x89,0x71,0x03,0xba,0x46,0x76,0x54,0x2f,0x0d,0x1d,0x2e,0x20,0x3a,0xb4,0xed,0xfe,0xdc,0xaa,0x46,0xb1,0xc0,0xc2,0xae,0x8f,0x2d,0xa9,0x05,0x07,0x06,0x03,0x02,0x01,0x02,0x04,0x08,0x06,0x0b,0x12,0x0b,0x43,0x55,0x07,0x1f,0x40, +0x39,0x52,0xa9,0x92,0x6f,0x19,0xa6,0x10,0x43,0x56,0x61,0x2d,0x12,0x15,0x0a,0x02,0x2e,0x4d,0x66,0x38,0x1c,0x41,0x40,0x3b,0x16,0x05,0x09,0x06,0x04,0x01,0x02,0x03,0x06,0x07,0x05,0x00,0x00,0x01,0xff,0xba,0xff,0xea,0x07,0x92,0x04,0x19,0x00,0x44,0x00,0x48,0xb9,0x00,0x29,0x05,0x0a,0xb3,0x1e,0x1e,0x45,0x34,0xb8,0x05,0x0a,0xb4, +0x15,0x12,0x12,0x15,0x3e,0xba,0x05,0x03,0x00,0x18,0x04,0xfb,0xb4,0x2f,0x2f,0x01,0x2f,0x24,0xb8,0x04,0xfb,0xb5,0x2f,0x23,0x01,0x23,0x0d,0x07,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x3f,0x01,0x2f,0x33,0x2f,0x10,0xed,0x11,0x33,0x2f,0xed,0x31,0x30,0x17,0x23,0x22,0x26,0x35,0x34, +0x36,0x33,0x33,0x32,0x16,0x16,0x04,0x33,0x32,0x3e,0x02,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x22,0x2e,0x02,0x35,0x34,0x36,0x36,0x24,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x02,0x04,0x23,0x22,0x2e,0x04,0x32,0x32,0x23,0x23,0x23,0x23,0x3b,0x1e,0xa2,0xef,0x01,0x2e, +0xab,0x9d,0xf6,0xc3,0x99,0x40,0x03,0x03,0x5d,0x55,0xfb,0xd3,0x56,0x88,0x5e,0x32,0x6b,0xc7,0x01,0x1f,0xb4,0x7f,0xe3,0xac,0x65,0x19,0x4b,0x88,0x70,0x03,0xba,0x46,0x76,0x54,0x2f,0x0d,0x1d,0x2e,0x20,0x34,0xb6,0xec,0xfe,0xe9,0x96,0x50,0xb3,0xb2,0xa8,0x8b,0x66,0x0e,0x34,0x20,0x20,0x33,0x03,0x03,0x02,0x03,0x05,0x07,0x05,0x0b, +0x12,0x0b,0x43,0x55,0x07,0x1f,0x40,0x39,0x52,0xa9,0x92,0x6f,0x19,0xa6,0x10,0x43,0x56,0x61,0x2e,0x12,0x14,0x0a,0x02,0x2e,0x4d,0x66,0x38,0x1c,0x41,0x40,0x3b,0x16,0x05,0x08,0x07,0x04,0x01,0x02,0x02,0x02,0x01,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x06,0x02,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x5b,0x04,0xa6, +0x05,0xb0,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0x02,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x5b,0x01,0x4f,0x05,0xb0,0xff,0xff,0x00,0xab,0xff,0xea,0x05,0xf4,0x06,0xb3,0x02,0x26,0x09,0x24,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x73,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0xb3,0x02,0x26,0x08,0xed, +0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x05,0xf4,0x07,0xcb,0x02,0x26,0x09,0x24,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0x73,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x07,0xcb,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xfd,0xc9, +0x05,0xf4,0x05,0xec,0x02,0x26,0x09,0x24,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0x74,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x4b,0x06,0x02,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xab,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x07,0x38,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x27,0x0f,0x5b,0x04,0xa6, +0x05,0xb0,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x07,0x38,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x27,0x0f,0x5b,0x01,0x4f,0x05,0xb0,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x07,0xc3,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00, +0x01,0x07,0x0f,0x51,0x03,0x90,0x07,0x13,0x00,0x0c,0xb5,0x02,0x03,0x20,0x3e,0x01,0x3e,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x07,0xc3,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x26,0x0f,0x59,0x00,0x00,0x01,0x07,0x0f,0x51,0x00,0x39,0x07,0x13,0x00,0x0c,0xb5,0x02,0x03,0x20,0x28,0x01,0x28,0x00,0x11,0x5d, +0x35,0x35,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0xa2,0x07,0x38,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x4b,0x07,0x38,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x26,0x0f,0x59,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0xfe,0xab, +0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0xa2,0x07,0x38,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x27,0x0f,0x52,0x02,0xad,0xfd,0xce,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x4b,0x07,0x38,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x27,0x0f,0x52,0x00,0xab,0xfd,0xce,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff, +0x00,0xab,0xff,0xea,0x06,0xa2,0x08,0xbd,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00,0x01,0x07,0x0f,0x53,0x03,0x57,0x06,0xf5,0x00,0x13,0x40,0x0a,0x04,0x03,0x02,0x20,0x45,0x01,0x20,0x45,0x01,0x45,0x00,0x11,0x5d,0x5d,0x35,0x35,0x35,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x08,0xbd,0x02,0x26, +0x08,0xed,0x00,0x00,0x00,0x26,0x0f,0x59,0x00,0x00,0x01,0x07,0x0f,0x53,0x00,0x00,0x06,0xf5,0x00,0x13,0x40,0x0a,0x04,0x03,0x02,0x20,0x30,0x01,0x20,0x30,0x01,0x30,0x00,0x11,0x5d,0x5d,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x70,0x08,0x0e,0x02,0x26,0x09,0x25,0x00,0x00,0x00,0x07,0x0a,0x6d,0x03,0x48,0x00,0x32, +0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x08,0x0e,0x02,0x26,0x08,0xee,0x00,0x00,0x00,0x07,0x0a,0x6d,0x00,0x9c,0x00,0x32,0xff,0xff,0x00,0x9b,0xfe,0xac,0x04,0xa5,0x07,0x67,0x02,0x26,0x09,0x25,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x48,0x06,0xb7,0xff,0xff,0xff,0xba,0xff,0xf2,0x01,0xf9,0x07,0x67,0x02,0x26,0x08,0xee,0x00,0x00, +0x00,0x07,0x0f,0x50,0x00,0x9c,0x06,0xb7,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x46,0x08,0x7f,0x02,0x26,0x09,0x25,0x00,0x00,0x01,0x07,0x0f,0x53,0x03,0x48,0x06,0xb7,0x00,0x0e,0xb6,0x03,0x02,0x01,0x20,0x28,0x01,0x28,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9a,0x08,0x7f,0x02,0x26,0x08,0xee,0x00,0x00, +0x01,0x07,0x0f,0x53,0x00,0x9c,0x06,0xb7,0x00,0x0e,0xb6,0x03,0x02,0x01,0x20,0x21,0x01,0x21,0x00,0x11,0x5d,0x35,0x35,0x35,0x00,0x04,0x00,0x9b,0xfd,0xc4,0x04,0x9e,0x05,0xec,0x00,0x1d,0x00,0x21,0x00,0x25,0x00,0x29,0x00,0x65,0xbc,0x00,0x10,0x05,0x0a,0x00,0x0d,0x00,0x27,0x05,0x0c,0xb2,0x26,0x26,0x22,0xbb,0x05,0x0c,0x00,0x23, +0x00,0x1e,0x05,0x0c,0x40,0x0a,0x1f,0x0d,0x23,0x1f,0x1f,0x23,0x0d,0x03,0x2b,0x03,0xbb,0x05,0x0a,0x00,0x1a,0x00,0x26,0x04,0xfb,0xb2,0x29,0x22,0x1e,0xb8,0x04,0xfb,0xb5,0x24,0x20,0x21,0x01,0x21,0x08,0xba,0x04,0xfb,0x00,0x15,0x05,0x03,0xb1,0x0e,0x00,0x00,0x2f,0x2f,0x3f,0xed,0xd6,0x5d,0x32,0xfd,0x32,0xd6,0xed,0x01,0x2f,0xed, +0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x01,0x4e,0x0b,0x0b,0x23,0x4f,0x7d,0x59,0x67, +0x93,0x5d,0x2b,0x9c,0x38,0x81,0xd4,0x9d,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x01,0x9d,0xc9,0xc9,0x01,0x56,0xc9,0xc9,0xab,0xc9,0xc9,0x02,0xec,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x03,0x7e,0xfc,0x6e,0x8f,0xe4,0x9f,0x56,0x45,0x7f,0xb7,0x72,0x3f,0x83,0x4b,0xfb,0xf0,0xbd,0xbd,0xbd,0xfe,0x2b,0xbd,0x00,0xff,0xff, +0xff,0xba,0xfd,0xc9,0x02,0x48,0x05,0xec,0x02,0x26,0x08,0xee,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x4a,0xfd,0xce,0xff,0xff,0x00,0x9b,0xfd,0xfb,0x04,0xa6,0x04,0xb2,0x02,0x27,0x09,0x5f,0x00,0x00,0x01,0x56,0x00,0x27,0x0f,0x50,0x01,0x9f,0x04,0x02,0x00,0x07,0x0f,0x50,0x01,0x9f,0xfe,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x01,0xf9, +0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c,0x04,0x02,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x05,0x0e,0x02,0x26,0x09,0x5f,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x9f,0x02,0xac,0xff,0xff,0x00,0x9b,0xfe,0x55,0x04,0xa6,0x04,0xb2,0x02,0x27,0x09,0x5f,0x00,0x00, +0x01,0x56,0x00,0x27,0x0f,0x5b,0x01,0x9f,0x00,0x56,0x00,0x07,0x0f,0x50,0x01,0x9f,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0x05,0x01,0xf9,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x5b,0x00,0x1a,0x01,0x06,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x04,0x74,0x02,0x26,0x09,0x5f, +0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x9f,0x02,0xac,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x81,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x04,0xda,0x00,0x26,0x09,0x42,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x2a,0xff,0xff,0x00,0x7e,0xfd,0xff, +0x05,0x58,0x04,0xda,0x02,0x26,0x09,0x43,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x2a,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x7c,0x04,0x61,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x27,0x0f,0x54,0x01,0x56,0xfd,0xce,0x00,0x07,0x0f,0x50,0x01,0x56,0x03,0xb1,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x02,0xb7,0x02,0x26,0x09,0x29, +0x00,0x00,0x00,0x06,0x0f,0x5b,0x66,0x60,0x00,0x02,0x00,0x00,0xfd,0xfe,0x03,0x4b,0x03,0x1c,0x00,0x2a,0x00,0x3f,0x00,0x62,0xb2,0x08,0x20,0x35,0xb8,0x05,0x0a,0xb2,0x09,0x16,0x20,0xb8,0x05,0x0a,0xb7,0x0e,0x3d,0x3d,0x0e,0x0e,0x3a,0x11,0x08,0xb8,0x04,0xfd,0xb3,0x0b,0x0b,0x03,0x11,0xb8,0x04,0xfb,0x40,0x09,0x3d,0x2f,0x3a,0x3f, +0x3a,0x02,0x3a,0x00,0x03,0xb8,0x04,0xfb,0xb7,0x2a,0x1f,0x27,0x2f,0x27,0x02,0x27,0x30,0xb8,0x04,0xfb,0xb3,0x2f,0x1b,0x01,0x1b,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0x33,0xed,0x32,0x2f,0x5d,0x33,0xed,0x11,0x39,0x2f,0xed,0x11,0x12,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x2f,0x33,0xed,0x12,0x39,0x31,0x30,0x11,0x16,0x16,0x33,0x32,0x3e, +0x02,0x37,0x21,0x35,0x21,0x36,0x36,0x37,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x26,0x27,0x01,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x26,0x26,0x67,0xab,0x45,0x3e,0x60,0x48,0x33,0x11,0xfe,0x2a,0x01,0xf4,0x08,0x07,0x01,0x2f,0x58, +0x29,0x42,0x7b,0x5e,0x39,0x30,0x55,0x75,0x45,0x42,0x7f,0x63,0x3d,0x13,0x2c,0x49,0x6e,0x96,0x62,0x58,0xad,0x58,0x02,0x98,0x0f,0x2a,0x32,0x35,0x1a,0x1c,0x37,0x2c,0x1b,0x20,0x3a,0x4e,0x2f,0x1b,0x4b,0x2a,0x02,0x09,0xfe,0xfa,0x2b,0x25,0x1b,0x31,0x43,0x28,0x6d,0x2b,0x58,0x2d,0x16,0x11,0x29,0x4f,0x72,0x48,0x41,0x8e,0x77,0x4d, +0x4f,0x9e,0xee,0x9f,0x51,0xa2,0x96,0x83,0x61,0x37,0x2c,0x2a,0x03,0x34,0x33,0x55,0x3d,0x22,0x26,0x3d,0x4a,0x24,0x26,0x3c,0x29,0x16,0x0c,0x14,0x1d,0x33,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x05,0x31,0x02,0x26,0x09,0x29,0x00,0x00,0x01,0x07,0x0a,0x6d,0x00,0xe5,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x38,0x01,0x38,0x00,0x11, +0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x05,0x63,0x02,0x26,0x09,0x29,0x00,0x00,0x01,0x07,0x09,0x30,0x00,0xe4,0xfd,0x55,0x00,0x0c,0xb5,0x03,0x02,0x2f,0x38,0x01,0x38,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x05,0x59,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x07,0x09,0x73,0x00,0xe5,0xfd,0x55, +0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x05,0x31,0x02,0x26,0x09,0x29,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0xe5,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x38,0x01,0x38,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x04,0x79,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xd5,0x03,0xc9,0xff,0xff,0x00,0x00, +0xfd,0xff,0x03,0x49,0x05,0x91,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x03,0xc9,0x00,0x01,0x00,0x32,0xff,0x55,0x06,0x3d,0x04,0x15,0x00,0x37,0x00,0x3a,0xb2,0x0b,0x05,0x31,0xbb,0x05,0x0a,0x00,0x18,0x00,0x2a,0x05,0x0a,0x40,0x09,0x1f,0x25,0x18,0x1f,0x18,0x1f,0x39,0x08,0x0e,0xbd,0x05,0x0a,0x00,0x05,0x00, +0x00,0x04,0xfb,0x00,0x13,0x04,0xe6,0x00,0x3f,0xed,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x39,0x10,0xed,0x10,0xed,0x11,0x39,0x31,0x30,0x05,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05,0x35,0x25,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e, +0x04,0x15,0x14,0x0e,0x04,0x03,0x48,0x91,0xc4,0x78,0x34,0x0e,0x0e,0xfe,0xcf,0x01,0xeb,0x17,0x23,0x21,0x52,0x8e,0x6d,0x6d,0xbd,0x8d,0x51,0x33,0x4b,0x59,0x4b,0x33,0x54,0x96,0xd1,0x7e,0x64,0x9c,0x6c,0x38,0x33,0x4d,0x5a,0x4d,0x33,0x27,0x4e,0x73,0x98,0xbc,0xab,0x4c,0x81,0xad,0x60,0x38,0x72,0x39,0x39,0x72,0x61,0x58,0xaf,0x55, +0x47,0x7b,0x5c,0x34,0x2e,0x4b,0x5e,0x30,0x26,0x33,0x2c,0x2e,0x40,0x5c,0x45,0x55,0x7f,0x5b,0x3b,0x12,0xa2,0x0d,0x23,0x31,0x41,0x2a,0x29,0x39,0x2f,0x2c,0x3a,0x4f,0x3a,0x31,0x6a,0x68,0x5e,0x47,0x2a,0x00,0x00,0x01,0x00,0x1e,0xff,0x02,0x07,0x58,0x02,0x13,0x00,0x44,0x00,0x5a,0xb3,0x26,0x14,0x20,0x38,0xb8,0x05,0x0a,0xb2,0x0f, +0x0f,0x14,0xb8,0x05,0x0a,0xb3,0x33,0x33,0x46,0x29,0xb8,0x05,0x0a,0x40,0x09,0x20,0x23,0x23,0x20,0x26,0x3d,0x23,0x23,0x0c,0xb8,0x04,0xff,0xb4,0x2f,0x3d,0x01,0x3d,0x1b,0xb8,0x04,0xfb,0xb4,0x2f,0x2e,0x01,0x2e,0x00,0xba,0x04,0xfb,0x00,0x01,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x32,0x2f,0x11,0x39,0x01,0x2f, +0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x39,0x2f,0xed,0x11,0x12,0x39,0x31,0x30,0x25,0x15,0x23,0x22,0x2e,0x04,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05,0x35,0x25,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x35,0x34,0x3e, +0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x07,0x58,0x16,0x43,0x67,0x4f,0x3b,0x2e,0x25,0x12,0x17,0x29,0x18,0x1d,0x27,0x20,0x26,0x20,0x2d,0x4e,0x68,0x77,0x80,0x3e,0x97,0xcc,0x7d,0x35,0x04,0x04,0xfe,0xd0,0x01,0xe3,0x0e,0x12,0x23,0x5d,0xa0,0x7d,0x54,0x81,0x59,0x2d,0x20,0x26,0x20,0x26,0x41,0x57,0x30,0x31,0x60,0x27,0x19,0x2c,0x40, +0x66,0x99,0xa7,0x21,0x35,0x45,0x47,0x44,0x1b,0x23,0x1c,0x22,0x24,0x21,0x2c,0x2f,0x3e,0x34,0x3a,0x5c,0x47,0x31,0x20,0x0e,0x4b,0x81,0xad,0x63,0x1f,0x49,0x23,0x39,0x72,0x5f,0x49,0x79,0x3f,0x4d,0x7d,0x5a,0x31,0x16,0x27,0x35,0x20,0x1c,0x2b,0x30,0x41,0x32,0x35,0x57,0x3e,0x22,0x2c,0x3a,0x27,0x60,0x54,0x39,0xff,0xff,0x00,0x9a, +0xff,0x55,0x05,0x91,0x05,0xdc,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0x01,0xfe,0x00,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x04,0x2c,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0x01,0xfc,0x50,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xc4,0x05,0x5a,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0a,0x6d, +0x00,0x9c,0xfd,0x7e,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x04,0x79,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x03,0xc9,0xff,0xff,0x00,0x9a,0xfd,0xc9,0x05,0x91,0x04,0xaa,0x02,0x27,0x09,0x2a,0x00,0x00,0x00,0x95,0x00,0x07,0x0f,0x52,0x02,0x01,0xfd,0xce,0xff,0xff, +0x00,0x9a,0xfd,0xc4,0x06,0xae,0x02,0xbd,0x02,0x26,0x0f,0x61,0x00,0x00,0x01,0x07,0x0f,0x52,0x01,0xc8,0xfd,0xc9,0x00,0x08,0xb3,0x02,0x4a,0x14,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x9a,0xfd,0xc9,0x05,0x91,0x04,0xaa,0x02,0x27,0x09,0x2a,0x00,0x00,0x00,0x95,0x00,0x07,0x0f,0x54,0x02,0x01,0xfd,0xce,0xff,0xff,0x00,0x9a,0xfd,0xc4, +0x06,0xae,0x02,0xbd,0x02,0x26,0x0f,0x61,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0xc8,0xfd,0xc9,0x00,0x04,0xff,0xa8,0x06,0x1d,0x02,0x5f,0x08,0xde,0x00,0x46,0x00,0x56,0x00,0x5a,0x00,0x5e,0x00,0x7a,0xb9,0x00,0x5c,0x05,0x0d,0xb2,0x5b,0x5b,0x0e,0xb8,0x05,0x0d,0xb5,0x47,0x29,0x29,0x47,0x18,0x3f,0xbe,0x05,0x0d,0x00,0x3c,0x00,0x23, +0x05,0x0d,0x00,0x32,0x00,0x57,0x05,0x0d,0xb2,0x58,0x58,0x51,0xb8,0x05,0x0d,0xb6,0x03,0x5d,0x5a,0x5b,0x57,0x3e,0x08,0xb8,0x05,0x01,0x40,0x0a,0x4c,0x43,0x18,0x13,0x54,0x46,0x46,0x37,0x37,0x43,0xb8,0x05,0x01,0xb4,0x13,0x1b,0x1b,0x13,0x26,0xb9,0x05,0x01,0x00,0x2d,0x00,0x2f,0xfd,0xce,0x32,0x2f,0x10,0xed,0x32,0x2f,0x32,0x2f, +0x32,0x11,0x39,0x10,0xd4,0xfd,0xcc,0xde,0x32,0xcd,0x32,0x01,0x2f,0xed,0x39,0x2f,0xed,0x2f,0xed,0x2f,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x22,0x06,0x22,0x23,0x22, +0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x37,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x32,0x32,0x17,0x37,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x03,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x01,0x98,0x32,0x23,0x14,0x25,0x32, +0x1e,0x1e,0x2f,0x19,0x11,0x1c,0x38,0x55,0x65,0x2e,0x17,0x27,0x30,0x0b,0x01,0x11,0x2c,0x16,0x03,0x0e,0x0f,0x0e,0x04,0x18,0x26,0x60,0x69,0x63,0x9b,0x40,0x52,0xab,0x43,0x46,0x6c,0x49,0x26,0x25,0x35,0x3b,0x16,0x1d,0x10,0x0e,0x0c,0x58,0x10,0x1a,0x1a,0x21,0x2d,0x14,0x6e,0x0a,0x11,0x16,0x0c,0x09,0x11,0x0d,0x09,0x25,0x36,0x09, +0x09,0x58,0x57,0x57,0x8f,0x57,0x57,0x07,0x2f,0x15,0x3a,0x1f,0x1b,0x36,0x2b,0x1c,0x1f,0x25,0x1a,0x46,0x2a,0x3b,0x3f,0x1e,0x05,0x17,0x15,0x19,0x12,0x01,0x0f,0x12,0x19,0x10,0x09,0x06,0x61,0x08,0x09,0x0c,0x1e,0x33,0x28,0x29,0x35,0x1f,0x0d,0x08,0x08,0x17,0x15,0x01,0x76,0xfe,0xa0,0x2f,0x22,0x01,0x40,0x10,0x24,0x1f,0x15,0x0c, +0x12,0x17,0x0c,0x14,0x29,0x18,0x06,0x1b,0x01,0x06,0x56,0x56,0x56,0x00,0x00,0x02,0xff,0xb7,0x06,0x71,0x02,0x28,0x08,0x06,0x00,0x1f,0x00,0x2f,0x00,0x35,0xb9,0x00,0x12,0x05,0x0d,0xb6,0x26,0x1a,0x20,0x08,0x03,0x17,0x0d,0xb8,0x05,0x01,0xb2,0x2b,0x13,0x23,0xbb,0x05,0x01,0x00,0x17,0x00,0x03,0x05,0x01,0xb3,0x1f,0x1f,0x1d,0x17, +0x00,0x2f,0x33,0x33,0x2f,0xed,0x10,0xfd,0x32,0xd6,0xed,0x11,0x17,0x39,0x01,0x2f,0xed,0x31,0x30,0x03,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x49,0x0e,0x1c,0x0b, +0x26,0x30,0x21,0x16,0x0d,0x0a,0x1f,0x30,0x45,0x32,0x37,0x50,0x33,0x18,0x19,0x32,0x4a,0x31,0x3f,0x67,0x24,0x20,0x57,0x31,0x16,0x16,0xfa,0x18,0x53,0x31,0x36,0x3e,0x0f,0x1f,0x2f,0x20,0x1d,0x2e,0x24,0x1a,0x06,0xdc,0x02,0x02,0x11,0x21,0x30,0x1e,0x19,0x3d,0x35,0x23,0x2c,0x43,0x4e,0x21,0x23,0x41,0x34,0x1f,0x32,0x23,0x30,0x25, +0x03,0x9e,0x1d,0x1e,0x26,0x26,0x12,0x2c,0x26,0x19,0x16,0x26,0x34,0x00,0x00,0x02,0x00,0x37,0x06,0x1e,0x01,0x9b,0x08,0x4e,0x00,0x2b,0x00,0x2f,0x00,0x39,0xb1,0x19,0x2c,0xb8,0x05,0x0d,0xb2,0x2d,0x20,0x05,0xb8,0x05,0x0e,0xb4,0x13,0x2b,0x18,0x0e,0x24,0xb8,0x04,0xfd,0xb2,0x1e,0x00,0x2f,0xbc,0x04,0xfd,0x00,0x2c,0x00,0x08,0x05, +0x01,0x00,0x0e,0x00,0x2f,0xfd,0xde,0xfd,0xd6,0xd4,0xed,0x11,0x39,0x39,0x01,0x2f,0xed,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x03,0x23,0x35,0x33,0x01,0x86, +0x49,0x62,0x3c,0x19,0x3b,0x46,0x46,0x4e,0x29,0x48,0x23,0x38,0x4f,0x32,0x17,0x14,0x37,0x5f,0x4b,0x12,0x1d,0x1e,0x25,0x1b,0x35,0x23,0x14,0x2d,0x1a,0x1c,0x2b,0x24,0x20,0x24,0x2a,0x1d,0x50,0x57,0x57,0x07,0x93,0x12,0x29,0x2d,0x31,0x1a,0x29,0x38,0x1a,0x61,0x0e,0x0c,0x1e,0x33,0x42,0x23,0x1f,0x42,0x3f,0x39,0x17,0x03,0x06,0x0e, +0x0c,0x08,0x0d,0x5f,0x06,0x07,0x0a,0x0f,0x13,0x10,0x0b,0x01,0xfe,0xc7,0x56,0x00,0x00,0x03,0x00,0x1d,0x06,0x70,0x01,0xec,0x08,0x17,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x2d,0xbf,0x00,0x09,0x05,0x0a,0x00,0x08,0x00,0x00,0x05,0x0a,0x00,0x01,0x00,0x0b,0x04,0xff,0xb5,0x20,0x08,0x01,0x08,0x06,0x03,0xb8,0x04,0xff,0xb1,0x04,0x00, +0x00,0x2f,0x32,0xfd,0x32,0xde,0x5d,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0xbf,0xa2,0xa2,0x01,0x2d,0xa1,0xa1,0x96,0xa2,0xa2,0x06,0x70,0x9e,0x9e,0x9e,0x6b,0x9e,0x00,0x01,0xff,0x2b,0x06,0x1f,0x02,0xae,0x08,0x2f,0x00,0x43,0x00,0x60,0xb4,0x28,0x28,0x00,0x00,0x03, +0xb8,0x05,0x0d,0xb2,0x40,0x21,0x0b,0xb8,0x05,0x0d,0xb6,0x08,0x40,0x08,0x40,0x08,0x18,0x38,0xbb,0x05,0x0d,0x00,0x32,0x00,0x18,0x05,0x0d,0x40,0x0b,0x15,0x21,0x28,0x10,0x1d,0x17,0x0a,0x0a,0x00,0x05,0x10,0xb8,0x05,0x01,0xb3,0x24,0x1d,0x35,0x3b,0xb9,0x04,0xfd,0x00,0x2d,0x00,0x2f,0xfd,0xc6,0xd4,0x32,0xfd,0x32,0xc4,0x32,0x11, +0x33,0x11,0x12,0x39,0x39,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x32,0x2f,0x32,0x2f,0x31,0x30,0x13,0x16,0x16,0x17,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23, +0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0xe0,0x03,0x05,0x02,0x03,0x3f,0x1d,0x26,0x59,0x04,0x0f,0x1c,0x18,0x10,0x1a,0x12,0x0a,0x59,0x1b,0x2b,0x38,0x1d,0x29,0x3e,0x11,0x01,0x14,0x3a,0x1a,0x1a,0x21,0x0a,0x02,0x02,0x19,0x37,0x56,0x3e,0x3f,0x54,0x32, +0x15,0x0d,0x56,0x05,0x05,0x3b,0x44,0x28,0x38,0x23,0x10,0x07,0x07,0x07,0xbc,0x1a,0x2c,0x17,0x34,0x1e,0x2d,0x6d,0x50,0x1b,0x28,0x19,0x0c,0x06,0x11,0x1e,0x17,0xb8,0xd2,0x2d,0x3a,0x21,0x0c,0x17,0x1d,0x1e,0x16,0x0f,0x0e,0x30,0x4a,0x33,0x1a,0x1b,0x32,0x48,0x2d,0x33,0x3b,0x1b,0x29,0x16,0x41,0x35,0x12,0x28,0x41,0x2f,0x21,0x43, +0x2f,0x00,0x00,0x04,0x00,0x2d,0xfe,0xd2,0x08,0xcf,0x06,0x97,0x00,0x20,0x00,0x48,0x00,0x5c,0x00,0x70,0x00,0x31,0x40,0x16,0x18,0x6c,0x6c,0x15,0x3d,0x62,0x62,0x38,0x42,0x1b,0x15,0x08,0x4e,0x4e,0x0d,0x29,0x58,0x58,0x2e,0x24,0x03,0x0d,0x00,0x2f,0x33,0xcd,0x32,0x32,0x2f,0xcd,0x11,0x33,0x2f,0xcd,0x2f,0x33,0xcd,0x32,0x32,0x2f, +0xcd,0x11,0x33,0x2f,0xcd,0x30,0x31,0x25,0x06,0x04,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x24,0x27,0x24,0x11,0x10,0x25,0x36,0x25,0x36,0x36,0x33,0x32,0x16,0x17,0x04,0x17,0x04,0x11,0x10,0x05,0x16,0x04,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x36,0x24,0x37,0x36,0x12,0x35,0x10,0x25,0x26,0x25,0x0e,0x03,0x23,0x22,0x2e,0x02, +0x27,0x06,0x04,0x07,0x04,0x11,0x10,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0xa1,0x7c,0xfe,0xcc,0xbe,0x08,0x22,0x2f,0x3a,0x20,0x20,0x3a,0x2f,0x22,0x08,0xfe,0x82,0xf7,0xfe,0xd5,0x01,0x2e,0xf1,0x01, +0x83,0x12,0x60,0x3f,0x3e,0x5f,0x13,0x01,0x7a,0xf9,0x01,0x2c,0xf8,0xe8,0x6d,0x01,0x09,0xa1,0x09,0x22,0x2e,0x39,0x20,0x1f,0x3a,0x2e,0x22,0x09,0xa4,0x01,0x0a,0x6a,0x86,0x81,0xfe,0xfd,0xce,0xfe,0xb4,0x07,0x21,0x30,0x3b,0x21,0x21,0x3a,0x30,0x22,0x07,0x9f,0xfe,0xf9,0x6a,0xfe,0xef,0x03,0x5b,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21, +0x13,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21,0x13,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21,0x13,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21,0x13,0x41,0x61,0x72,0x13,0x1e,0x32,0x24,0x15,0x15,0x24,0x32,0x1d,0x24,0xc1,0xed,0x01,0x7c,0x01,0x96,0xf1,0xc1,0x27,0x38,0x48,0x47,0x37,0x21,0xc4,0xec,0xfe,0x83,0xfe,0x65,0xa5,0x55,0x63,0x11,0x1c,0x31, +0x23,0x14,0x14,0x23,0x31,0x1c,0x11,0x5e,0x50,0x66,0x01,0x16,0xb7,0x01,0x72,0xc9,0x9f,0x23,0x1f,0x34,0x26,0x15,0x15,0x25,0x33,0x1e,0x11,0x65,0x53,0xd4,0xfe,0xa6,0xfe,0xa6,0xfe,0x2f,0x19,0x2d,0x21,0x13,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21,0x13,0x13,0x21,0x2d,0x06,0x38,0x19,0x2d,0x21,0x13,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21, +0x13,0x13,0x21,0x2d,0x00,0x0a,0x01,0x46,0xfe,0xa4,0x07,0x66,0x06,0xc8,0x00,0x17,0x00,0x2b,0x00,0x34,0x00,0x3d,0x00,0x45,0x00,0x52,0x00,0x5e,0x00,0x66,0x00,0x6e,0x00,0x76,0x00,0x0c,0xb3,0x3d,0x12,0x31,0x06,0x00,0x2f,0x33,0x2f,0x33,0x30,0x31,0x01,0x34,0x3e,0x02,0x37,0x01,0x01,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x01,0x01, +0x2e,0x03,0x25,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x01,0x32,0x16,0x17,0x13,0x27,0x07,0x13,0x36,0x01,0x03,0x06,0x06,0x23,0x22,0x27,0x03,0x17,0x13,0x16,0x16,0x17,0x25,0x26,0x26,0x27,0x01,0x14,0x16,0x17,0x25,0x26,0x26,0x35,0x34,0x37,0x25,0x06,0x06,0x05,0x14,0x06,0x07,0x05,0x36,0x35, +0x34,0x26,0x27,0x05,0x16,0x01,0x26,0x26,0x27,0x05,0x16,0x16,0x17,0x01,0x06,0x06,0x07,0x13,0x36,0x36,0x37,0x01,0x36,0x36,0x37,0x03,0x06,0x06,0x07,0x01,0x46,0x42,0x78,0xa7,0x65,0x01,0x4a,0x01,0x4a,0x65,0xa7,0x78,0x42,0x43,0x78,0xa7,0x64,0xfe,0xb6,0xfe,0xb4,0x64,0xa6,0x78,0x42,0x01,0xf5,0x2c,0x4d,0x67,0x3b,0x3b,0x67,0x4d, +0x2c,0x2c,0x4d,0x67,0x3b,0x3b,0x67,0x4d,0x2c,0x01,0x1b,0x20,0x3e,0x1d,0x72,0xed,0xee,0x73,0x3c,0x01,0x2c,0x73,0x1d,0x3d,0x20,0x41,0x3a,0x72,0xed,0xb3,0x38,0x58,0x1d,0x01,0x06,0x33,0xa7,0x6c,0xfc,0x3a,0x14,0x14,0x01,0x05,0x09,0x0a,0x14,0xfe,0xfa,0x14,0x14,0x04,0x32,0x0b,0x09,0x01,0x05,0x29,0x14,0x14,0xfe,0xfa,0x14,0xfd, +0xc0,0x38,0x58,0x1d,0xfe,0xfb,0x33,0xa7,0x6c,0x02,0x80,0x1d,0x58,0x38,0x6c,0x6c,0xa7,0x33,0xfc,0x3a,0x1d,0x58,0x38,0x6c,0x6b,0xa8,0x33,0x02,0xb6,0x76,0xda,0xb8,0x91,0x2f,0x01,0x4a,0xfe,0xb5,0x2f,0x91,0xb8,0xd9,0x76,0x76,0xd9,0xb8,0x92,0x2e,0xfe,0xb5,0x01,0x4c,0x2e,0x91,0xb8,0xd9,0x76,0x3b,0x67,0x4d,0x2c,0x2c,0x4d,0x67, +0x3b,0x3b,0x67,0x4d,0x2c,0x2c,0x4d,0x67,0x01,0x51,0x0b,0x09,0x01,0x16,0xee,0xee,0xfe,0xea,0x14,0xfb,0xe5,0x01,0x16,0x09,0x0a,0x14,0xfe,0xe9,0xed,0x04,0xdc,0x1d,0x58,0x38,0x6d,0x6c,0xa7,0x33,0xfd,0x9a,0x3d,0x74,0x36,0x6c,0x1d,0x3e,0x20,0x3f,0x3c,0x6c,0x36,0x74,0x3d,0x20,0x3e,0x1d,0x6c,0x6d,0x7a,0x3d,0x74,0x36,0x6d,0x3a, +0xfe,0x5f,0x1d,0x58,0x38,0x6c,0x6c,0xa7,0x33,0x01,0xb2,0x38,0x58,0x1d,0xfe,0xfc,0x33,0xa6,0x6c,0x01,0xd3,0x38,0x58,0x1d,0x01,0x05,0x33,0xa7,0x6b,0x00,0x00,0x02,0x00,0x63,0x06,0x8f,0x01,0xa4,0x07,0xd0,0x00,0x0b,0x00,0x17,0x00,0x26,0x41,0x0c,0x00,0x03,0x05,0x0e,0x00,0x0f,0x00,0x15,0x05,0x0e,0x00,0x09,0x00,0x00,0x05,0x00, +0x00,0x12,0x00,0x0c,0x05,0x00,0x00,0x06,0x00,0x2f,0xfd,0xd6,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x05,0x41,0x5e,0x5e,0x41,0x45,0x5d,0x5d,0x45,0x23,0x31,0x31,0x23,0x25,0x32,0x32,0x07,0xd0,0x5d, +0x45,0x41,0x5e,0x5e,0x41,0x45,0x5d,0xf6,0x31,0x23,0x25,0x32,0x32,0x25,0x23,0x31,0x00,0x02,0x00,0x63,0x06,0x7b,0x01,0xa4,0x08,0x1c,0x00,0x0b,0x00,0x19,0x00,0x24,0xbf,0x00,0x03,0x05,0x0e,0x00,0x0f,0x00,0x15,0x05,0x0e,0x00,0x09,0x00,0x00,0x05,0x00,0xb2,0x12,0x0c,0x06,0xb8,0x01,0x4c,0x00,0x3f,0xdd,0xd6,0xed,0x01,0x2f,0xed, +0x2f,0xed,0x31,0x30,0x01,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x01,0x02,0x4b,0x57,0x53,0x4f,0x4c,0x53,0x54,0x4e,0x30,0x21,0x22,0x2f,0x30,0x24,0x08,0x14,0x20,0x08,0x1c,0x67,0x69,0x66,0x6b,0x69,0x67,0x6a,0x67,0xfe,0xaa,0x3b,0x49,0x4b,0x3c, +0x3b,0x4b,0x25,0x33,0x1f,0x0e,0x00,0x01,0x00,0x23,0x06,0x71,0x01,0xe3,0x07,0xb8,0x00,0x20,0x00,0x1d,0xb4,0x0b,0x12,0x1b,0x04,0x16,0xbc,0x04,0xfd,0x00,0x10,0x00,0x07,0x05,0x01,0x00,0x00,0x00,0x2f,0xfd,0xd6,0xed,0x01,0x2f,0xc4,0x39,0x39,0x31,0x30,0x13,0x22,0x26,0x27,0x27,0x16,0x16,0x33,0x32,0x36,0x37,0x35,0x2e,0x03,0x23, +0x22,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x07,0x0e,0x03,0x5f,0x0d,0x15,0x0d,0x0d,0x0e,0x1c,0x0d,0x54,0x90,0x39,0x12,0x1f,0x22,0x29,0x1d,0x32,0x24,0x13,0x2e,0x18,0x2b,0x3c,0x36,0x3b,0x2a,0x12,0x15,0x43,0x5c,0x76,0x06,0x71,0x01,0x02,0x67,0x02,0x02,0x34,0x23,0x03,0x06,0x0e,0x0c,0x08,0x0d,0x5f,0x06,0x07,0x16,0x1a, +0x17,0x01,0x73,0x09,0x2e,0x30,0x25,0x00,0x00,0x02,0x00,0x16,0x06,0x1f,0x02,0x28,0x08,0x5e,0x00,0x20,0x00,0x30,0x00,0x40,0xb3,0x06,0x2c,0x03,0x10,0xb8,0x05,0x0d,0xb3,0x24,0x20,0x20,0x1d,0xb8,0x05,0x0d,0x40,0x0a,0x03,0x00,0x00,0x03,0x1a,0x06,0x2c,0x03,0x15,0x0b,0xbb,0x05,0x01,0x00,0x29,0x00,0x21,0x05,0x01,0xb1,0x15,0x20, +0x00,0x2f,0xd6,0xfd,0xd6,0xed,0x11,0x17,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0xed,0x12,0x39,0x39,0x31,0x30,0x13,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x13,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x1e, +0x03,0x1e,0x04,0x04,0x31,0x2b,0x12,0x41,0x48,0x44,0x15,0x33,0x4a,0x2f,0x16,0x16,0x2a,0x3f,0x29,0x1a,0x35,0x31,0x2e,0x13,0x2b,0x24,0x04,0x05,0xfa,0x27,0x34,0x0d,0x1b,0x2b,0x1e,0x35,0x50,0x14,0x16,0x2c,0x2b,0x2b,0x06,0x1f,0x1a,0x31,0x14,0x44,0x61,0x17,0x65,0x74,0x3b,0x10,0x2c,0x44,0x4f,0x23,0x24,0x40,0x30,0x1d,0x0b,0x0c, +0x0b,0x3a,0x34,0x14,0x32,0x1a,0x01,0x12,0x1e,0x2b,0x13,0x2d,0x26,0x19,0x56,0x58,0x01,0x09,0x09,0x07,0x00,0x01,0xff,0x2b,0xfd,0xf5,0x02,0xae,0x00,0x05,0x00,0x43,0x00,0x66,0xb9,0x00,0x18,0x05,0x0d,0xb2,0x15,0x21,0x0b,0xb8,0x05,0x0d,0xb5,0x08,0x28,0x28,0x00,0x00,0x03,0xb8,0x05,0x0d,0x40,0x0a,0x40,0x15,0x08,0x40,0x40,0x08, +0x15,0x03,0x17,0x38,0xb8,0x05,0x0d,0xb4,0x32,0x17,0x38,0x32,0x2d,0xb8,0x04,0xfd,0xb4,0x3b,0x21,0x28,0x24,0x1d,0xb8,0x04,0xfd,0xb6,0x05,0x10,0x16,0x09,0x09,0x35,0x00,0x00,0x2f,0x32,0x32,0x11,0x33,0xd4,0x32,0xed,0x32,0x39,0x39,0xd4,0xed,0x2f,0x2f,0x01,0x2f,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x2f,0x32, +0x2f,0x10,0xed,0x39,0x10,0xed,0x31,0x30,0x17,0x16,0x16,0x17,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e, +0x02,0x35,0x34,0x26,0x27,0xe0,0x03,0x05,0x02,0x03,0x3f,0x1d,0x26,0x59,0x04,0x0f,0x1c,0x18,0x10,0x1a,0x12,0x0a,0x59,0x1b,0x2b,0x38,0x1d,0x29,0x3e,0x11,0x01,0x14,0x3a,0x1a,0x1a,0x21,0x0a,0x02,0x02,0x19,0x37,0x56,0x3e,0x3f,0x54,0x32,0x15,0x0d,0x56,0x05,0x05,0x3b,0x44,0x28,0x38,0x23,0x10,0x07,0x07,0x6e,0x1a,0x2c,0x17,0x34, +0x1e,0x2d,0x6d,0x50,0x1b,0x28,0x19,0x0c,0x06,0x11,0x1e,0x17,0xb8,0xd2,0x2d,0x3a,0x21,0x0c,0x17,0x1d,0x1e,0x16,0x0f,0x0e,0x30,0x4a,0x33,0x1a,0x1b,0x32,0x48,0x2d,0x33,0x3b,0x1b,0x29,0x16,0x41,0x35,0x12,0x28,0x41,0x2f,0x21,0x43,0x2f,0x00,0x01,0xff,0xc9,0x06,0x71,0x02,0x3c,0x07,0x26,0x00,0x1b,0x00,0x28,0x40,0x0a,0x00,0x0e, +0x0e,0x0d,0x0d,0x05,0x00,0x1b,0x1b,0x13,0xbc,0x05,0x01,0x00,0x0a,0x00,0x18,0x05,0x01,0x00,0x05,0x00,0x2f,0xed,0xdc,0xed,0x32,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xcd,0x31,0x30,0x01,0x0e,0x03,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x37,0x02,0x3c,0x18,0x2e,0x2a,0x26, +0x10,0x30,0x4b,0x45,0x46,0x29,0x20,0x2d,0x17,0x3a,0x18,0x2d,0x2a,0x26,0x11,0x30,0x4c,0x45,0x44,0x29,0x21,0x2d,0x17,0x06,0xbf,0x19,0x1f,0x10,0x06,0x19,0x1d,0x19,0x15,0x14,0x41,0x19,0x1f,0x10,0x06,0x19,0x1d,0x19,0x13,0x16,0x00,0x02,0x00,0x4d,0x06,0x1f,0x01,0xb8,0x08,0x29,0x00,0x22,0x00,0x32,0x00,0x39,0xb1,0x13,0x2d,0xb8, +0x05,0x0d,0xb4,0x0f,0x0f,0x33,0x23,0x1a,0xb8,0x05,0x0d,0xb2,0x08,0x03,0x14,0xb8,0x05,0x01,0xb2,0x28,0x08,0x30,0xbc,0x04,0xfd,0x00,0x0a,0x00,0x03,0x04,0xfd,0x00,0x1f,0x00,0x2f,0xfd,0xde,0xfd,0x39,0xde,0xed,0x01,0x2f,0x2f,0xed,0x33,0x11,0x33,0x2f,0xed,0x32,0x31,0x30,0x13,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x06,0x23,0x22, +0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x4d,0x2c,0x45,0x21,0x29,0x32,0x1b,0x0a,0x01,0x21,0x28,0x1e,0x36,0x29,0x18,0x16,0x27,0x36,0x20,0x22,0x34,0x1a,0x1a,0x19,0x17,0x31,0x4f,0x38,0x26,0x49, +0x2d,0x01,0x13,0x0c,0x15,0x1b,0x0f,0x0b,0x16,0x11,0x0b,0x2f,0x1c,0x10,0x1f,0x06,0x9c,0x11,0x0c,0x14,0x1f,0x28,0x14,0x0c,0x12,0x23,0x35,0x23,0x1e,0x42,0x36,0x24,0x25,0x25,0x26,0x69,0x3b,0x30,0x59,0x44,0x29,0x0e,0x11,0x01,0x0d,0x0d,0x2b,0x28,0x1d,0x0e,0x16,0x1c,0x0d,0x1d,0x1f,0x04,0xff,0xff,0x00,0x21,0x06,0x70,0x03,0x36, +0x08,0x35,0x00,0x07,0x0a,0x1e,0x00,0x9f,0x00,0x00,0x00,0x01,0xff,0x82,0x06,0x70,0x02,0x97,0x08,0x35,0x00,0x23,0x00,0x1b,0xb9,0x00,0x08,0x05,0x0d,0xb4,0x1b,0x00,0x23,0x23,0x0b,0xb9,0x05,0x01,0x00,0x16,0x00,0x2f,0xed,0x32,0x2f,0x33,0x01,0x2f,0xed,0x31,0x30,0x01,0x0e,0x03,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02, +0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x36,0x36,0x37,0x01,0x02,0x20,0x38,0x33,0x31,0x19,0x2d,0x23,0x81,0x8b,0x38,0x77,0x72,0x66,0x27,0x34,0x7a,0x78,0x6c,0x27,0x63,0x86,0x51,0x22,0x13,0x23,0x2f,0x1b,0x2a,0x68,0x31,0x07,0xe3,0x1a,0x28,0x20,0x1b,0x0d,0x17,0x19,0x12,0x25,0x1b,0x04,0x06,0x08,0x05, +0x65,0x06,0x09,0x07,0x03,0x15,0x29,0x3a,0x25,0x1e,0x2e,0x27,0x21,0x11,0x19,0x40,0x2a,0x00,0x00,0x02,0x00,0x32,0x06,0x71,0x01,0xd4,0x08,0x8c,0x00,0x1e,0x00,0x22,0x00,0x31,0xbc,0x00,0x1f,0x05,0x0b,0x00,0x20,0x00,0x03,0x05,0x0d,0xb3,0x1b,0x11,0x11,0x13,0xb8,0x05,0x0d,0xb5,0x0d,0x22,0x1f,0x1e,0x11,0x16,0xb9,0x05,0x01,0x00, +0x08,0x00,0x2f,0xfd,0xc6,0xd6,0xd6,0xcd,0x01,0x2f,0xed,0x32,0x2f,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x27,0x23,0x35,0x33,0x01,0xc7,0x07,0x06,0x16,0x35,0x56,0x40,0x37,0x4a,0x2d,0x13,0x06, +0x05,0x58,0x09,0x31,0x3b,0x23,0x31,0x20,0x0e,0x07,0x06,0x31,0x73,0x73,0x07,0xe3,0x23,0x43,0x1f,0x37,0x58,0x3d,0x21,0x1a,0x32,0x46,0x2c,0x18,0x35,0x1e,0x3b,0x29,0x35,0x2a,0x0f,0x22,0x37,0x27,0x1a,0x3d,0x26,0x38,0x71,0x00,0x00,0x04,0x00,0x64,0xff,0xe0,0x04,0x68,0x06,0xb4,0x00,0x17,0x00,0x2e,0x00,0x45,0x00,0x5b,0x00,0x14, +0xb7,0x3a,0x23,0x0b,0x52,0x45,0x18,0x17,0x46,0x00,0x2f,0xcd,0xde,0xcd,0x2f,0x33,0xce,0x32,0x30,0x31,0x01,0x26,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x01,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x07,0x11,0x21,0x37,0x11,0x26,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x06,0x06, +0x07,0x11,0x27,0x11,0x36,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x17,0x11,0x07,0x21,0x11,0x36,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x27,0x01,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x17,0x01,0x18,0x41,0x2b,0x23,0x25,0x13,0x24,0x33,0x21,0x01,0x77,0x01,0x75,0x40,0x4d,0x22, +0x23,0x15,0x37,0x23,0xfd,0x64,0xbe,0x34,0x40,0x14,0x16,0x16,0x2a,0x26,0xf4,0xf2,0x24,0x2e,0x17,0x15,0x17,0x44,0x2d,0x44,0x39,0x4c,0x11,0x0e,0x10,0x21,0x19,0xc6,0xc6,0x1c,0x1e,0x0f,0x0e,0x0e,0x4a,0x3f,0x9a,0x01,0xcc,0x33,0x3f,0x0e,0x1a,0x1a,0x3c,0x33,0xfe,0xd5,0xfe,0xd3,0x33,0x3a,0x1c,0x1a,0x1e,0x60,0x02,0xa2,0x29,0x42, +0x35,0x7c,0x42,0x32,0x56,0x4d,0x45,0x21,0x01,0x79,0xfe,0x8b,0x41,0x9f,0x60,0x41,0x7b,0x35,0x20,0x37,0x15,0xfd,0x3e,0xbe,0x02,0x6c,0x15,0x2f,0x19,0x1c,0x4e,0x2d,0x3c,0x5b,0x26,0xf5,0xf2,0x24,0x5e,0x40,0x2d,0x4c,0x1b,0x1d,0x2f,0x14,0xfd,0x96,0x44,0x02,0x52,0x1a,0x2d,0x16,0x12,0x37,0x22,0x30,0x45,0x19,0xc6,0xc8,0x1d,0x41, +0x2c,0x21,0x39,0x12,0x13,0x33,0x14,0xfd,0xaa,0x9a,0x02,0x95,0x1e,0x35,0x17,0x28,0x5e,0x32,0x49,0x7f,0x33,0x01,0x2b,0xfe,0xd2,0x34,0x76,0x4d,0x33,0x60,0x27,0x2e,0x3d,0x00,0x00,0x02,0x00,0x10,0xfd,0xda,0x01,0xf7,0xff,0xc1,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x14,0x00,0x07,0x07,0x05,0x05,0x06,0x01,0x04,0x03,0x02,0x02,0x01, +0x2f,0x03,0x01,0x03,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0x2f,0x5d,0x12,0x39,0x3d,0x2f,0x12,0x39,0x12,0x39,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x13,0x37,0x17,0x07,0x35,0x37,0x27,0x07,0x10,0xf4,0xf3,0xf4,0x8a,0x89,0x8a,0xfe,0xcd,0xf4,0xf4,0xf3,0x6a,0x89,0x89,0x89,0x00,0x02,0x00,0x10,0x06,0x35,0x01,0xf7,0x08,0x1c,0x00,0x03, +0x00,0x07,0x00,0x22,0x40,0x0e,0x00,0x07,0x07,0x05,0x05,0x06,0x01,0x04,0x03,0x02,0x02,0x01,0x03,0x01,0x00,0x2f,0x2f,0x12,0x39,0x3d,0x2f,0x12,0x39,0x12,0x39,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x13,0x37,0x17,0x07,0x35,0x37,0x27,0x07,0x10,0xf4,0xf3,0xf4,0x8a,0x89,0x8a,0x07,0x28,0xf4,0xf4,0xf3,0x6a,0x89,0x89,0x89,0x00,0x02, +0x00,0x16,0xfd,0xf5,0x02,0x28,0x00,0x34,0x00,0x20,0x00,0x30,0x00,0x40,0xb9,0x00,0x10,0x05,0x0d,0xb5,0x24,0x20,0x20,0x06,0x06,0x1d,0xb8,0x05,0x0d,0x40,0x09,0x03,0x00,0x00,0x03,0x1a,0x2c,0x0b,0x20,0x15,0xbb,0x04,0xfd,0x00,0x21,0x00,0x29,0x04,0xfd,0xb3,0x2f,0x0b,0x01,0x0b,0x00,0x2f,0x5d,0xfd,0xd6,0xed,0x32,0x11,0x39,0x39, +0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x32,0x2f,0x2f,0xed,0x31,0x30,0x13,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x13,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x1e,0x03,0x1e,0x04,0x04,0x31,0x2b,0x12,0x41,0x48,0x44, +0x15,0x33,0x4a,0x2f,0x16,0x16,0x2a,0x3f,0x29,0x1a,0x35,0x31,0x2e,0x13,0x2b,0x24,0x04,0x05,0xfa,0x27,0x34,0x0d,0x1b,0x2b,0x1e,0x35,0x50,0x14,0x16,0x2c,0x2b,0x2b,0xfd,0xf5,0x1a,0x31,0x14,0x44,0x61,0x17,0x65,0x74,0x3b,0x10,0x2c,0x44,0x4f,0x23,0x24,0x40,0x30,0x1d,0x0b,0x0c,0x0b,0x3a,0x34,0x14,0x32,0x1a,0x01,0x12,0x1e,0x2b, +0x13,0x2d,0x26,0x19,0x56,0x58,0x01,0x09,0x09,0x07,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x05,0x1f,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x27,0x0f,0x53,0x05,0x46,0x03,0x57,0x00,0x07,0x0f,0x50,0x05,0x50,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x05,0xf4,0x05,0x1f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x27,0x0f,0x53,0x02,0xa4, +0x03,0x57,0x00,0x07,0x0f,0x50,0x02,0xa4,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0xf7,0x04,0xb2,0x02,0x26,0x09,0x1b,0x00,0x00,0x00,0x27,0x0f,0x50,0x06,0x3c,0xfe,0xab,0x00,0x07,0x0f,0x50,0x05,0xca,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x07,0x4b,0x04,0xb2,0x02,0x26,0x08,0xd6,0x00,0x00,0x00,0x27,0x0f,0x50,0x03,0x1e, +0x04,0x02,0x00,0x07,0x0f,0x50,0x03,0x90,0xfe,0xab,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x05,0x8f,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0xe4,0x04,0xdf,0x00,0x07,0x0f,0x50,0x01,0x8f,0xff,0xb1,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad,0x05,0x2a,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x56, +0x04,0x7a,0x00,0x07,0x0f,0x50,0x01,0x56,0xff,0x57,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x3c,0x04,0xe4,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x1d,0x04,0x34,0x00,0x07,0x0f,0x50,0x01,0x1d,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0xad,0x04,0xb2,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x56, +0x04,0x02,0x00,0x07,0x0f,0x50,0x01,0x56,0xfe,0xab,0xff,0xff,0x00,0x5a,0xfd,0xff,0x02,0xe5,0x02,0xb4,0x02,0x26,0x09,0x07,0x00,0x00,0x00,0x07,0x0f,0x5d,0x00,0xab,0x00,0x00,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0xf4,0x02,0xb9,0x02,0x26,0x09,0x26,0x00,0x00,0x00,0x07,0x0f,0x5d,0x01,0x99,0x00,0x00,0xff,0xff,0xff,0xc2,0xff,0xea, +0x03,0xf3,0x07,0x77,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x01,0x07,0x09,0x77,0x00,0x00,0x08,0x0c,0x00,0x0a,0xb4,0x02,0x20,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xc2,0xff,0xea,0x04,0xad,0x07,0x77,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x01,0x07, +0x09,0x77,0x00,0x00,0x08,0x0c,0x00,0x0a,0xb4,0x02,0x20,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x34,0xfd,0xfe,0x03,0xf3,0x05,0xec,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x77,0x72,0x00,0xff,0xff,0x00,0x34,0xfd,0xfe,0x04,0xad,0x05,0xec,0x00,0x27,0x0f,0x8d,0x02,0xac, +0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x77,0x72,0x00,0xff,0xff,0x00,0x3a,0xff,0xea,0x03,0xf3,0x05,0xec,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0xc8,0x00,0x00,0x07,0x09,0x7e,0x01,0x56,0xfe,0x00,0xff,0xff,0x00,0x3a,0xff,0xea,0x04,0xad,0x05,0xec,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00, +0x00,0x26,0x0f,0x65,0xc8,0x00,0x00,0x07,0x09,0x7e,0x01,0x56,0xfe,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xc5,0x08,0x0e,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0x9d,0x00,0x32,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xc5,0x08,0x0e,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27, +0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0x9d,0x00,0x32,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0xfa,0x07,0x67,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x9d,0x06,0xb7,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xad,0x07,0x67,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27, +0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x9d,0x06,0xb7,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x9b,0x08,0x7f,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x01,0x07,0x0f,0x53,0x02,0x9d,0x06,0xb7,0x00,0x0e,0xb6,0x04,0x03,0x02,0x20,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff, +0x00,0x52,0xff,0xea,0x04,0xad,0x08,0x7f,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x01,0x07,0x0f,0x53,0x02,0x9d,0x06,0xb7,0x00,0x0e,0xb6,0x04,0x03,0x02,0x20,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0x00,0x52,0xfd,0xc9,0x04,0x9b,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27, +0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0x9d,0xfd,0xce,0xff,0xff,0x00,0x52,0xfd,0xc9,0x04,0xad,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0x9d,0xfd,0xce,0x00,0x01,0x00,0x65,0x00,0x00,0x03,0xf8,0x05,0xa8,0x00,0x2b,0x00,0x40,0xb4,0x04,0x03,0x15, +0x2d,0x1d,0xb8,0x05,0x0a,0xb2,0x0e,0x0e,0x14,0xb8,0x05,0x0a,0xb6,0x15,0x27,0x22,0x04,0x04,0x14,0x09,0xb8,0x04,0xfb,0xb7,0x22,0x00,0x00,0x2f,0x22,0x01,0x22,0x14,0xb8,0x04,0xe6,0x00,0x3f,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x12,0x39,0x01,0x2f,0xed,0x39,0x2f,0xed,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x06,0x02,0x07, +0x23,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x16,0x12,0x15,0x11,0x23,0x11,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x03,0xf8,0x48,0x6d,0x23,0x9a,0x11,0x38,0x4a,0x5b,0x33,0x1d,0x25,0x14,0x07,0x18,0x1e,0x18,0x9c,0x0d,0x12,0x17,0x12,0x0d,0x21,0x41,0x5f,0x3f,0x46,0x75,0x5c,0x3f, +0x0f,0x05,0x1a,0x43,0x26,0x05,0x9a,0x6f,0xfe,0xfe,0x95,0x4a,0x83,0x62,0x39,0x11,0x1b,0x23,0x11,0x1d,0x72,0xbe,0xfe,0xec,0xc0,0xfe,0x85,0x01,0x73,0x88,0xd5,0xa4,0x7a,0x5c,0x44,0x1c,0x39,0x5d,0x43,0x25,0x3c,0x5d,0x6e,0x33,0x56,0x94,0x42,0x00,0x00,0x01,0x00,0x52,0x00,0x00,0x03,0x81,0x05,0x9a,0x00,0x12,0x00,0x20,0xb9,0x00, +0x08,0x05,0x0a,0xb2,0x07,0x00,0x0f,0xba,0x04,0xfb,0x00,0x11,0x04,0xe6,0xb3,0x2f,0x08,0x01,0x08,0x00,0x2f,0x5d,0x3f,0xed,0x32,0x01,0x2f,0xed,0x31,0x30,0x37,0x3e,0x04,0x12,0x37,0x33,0x06,0x02,0x0e,0x03,0x07,0x21,0x15,0x21,0x52,0x31,0x53,0x45,0x36,0x27,0x19,0x05,0x9c,0x07,0x19,0x23,0x2d,0x37,0x41,0x25,0x02,0x5c,0xfc,0xd1, +0x42,0x5c,0xb1,0xba,0xcd,0xf3,0x01,0x20,0xb1,0xb4,0xfe,0xe2,0xe8,0xba,0xa2,0x92,0x4b,0xa7,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x07,0xcb,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x90,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x07,0xcb,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x90, +0x06,0x03,0x00,0x01,0x00,0x00,0x01,0x87,0x02,0xfe,0x01,0xd9,0x00,0x03,0x00,0x10,0xb9,0x00,0x00,0x04,0xfd,0xb3,0x2f,0x03,0x01,0x03,0x00,0x2f,0x5d,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0xfe,0xfd,0x02,0x02,0xfe,0x01,0x87,0x52,0x00,0xff,0xff,0xff,0x97,0xff,0xea,0x03,0xf3,0x07,0x77,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00, +0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x0f,0x58,0x00,0x8f,0xff,0xff,0xff,0x97,0xff,0xea,0x04,0xad,0x07,0x77,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x0f,0x58,0x00,0x8f,0x00,0x10,0x00,0x66,0x00,0x5a,0x04,0x5b,0x04,0x4e,0x00,0x07,0x00,0x0f,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0x2f, +0x00,0x37,0x00,0x3f,0x00,0x47,0x00,0x4f,0x00,0x57,0x00,0x5f,0x00,0x67,0x00,0x6f,0x00,0x77,0x00,0x7f,0x01,0x23,0xb9,0x00,0x18,0x05,0x0b,0xb2,0x1c,0x30,0x10,0xb8,0x05,0x0b,0xb4,0x34,0x14,0x14,0x40,0x00,0xb8,0x05,0x0b,0xb4,0x04,0x44,0x04,0x48,0x08,0xb8,0x05,0x0b,0xb4,0x0c,0x4c,0x0c,0x60,0x20,0xb8,0x05,0x0b,0xb4,0x24,0x64, +0x24,0x70,0x28,0xb8,0x05,0x0b,0xb4,0x2c,0x74,0x2c,0x78,0x38,0xb8,0x05,0x0b,0xb4,0x3c,0x7c,0x3c,0x68,0x50,0xb8,0x05,0x0b,0x40,0x14,0x54,0x6c,0x54,0x1c,0x04,0x0c,0x24,0x2c,0x3c,0x54,0x54,0x3c,0x2c,0x24,0x0c,0x04,0x1c,0x07,0x81,0x58,0xb8,0x05,0x0b,0xb2,0x5c,0x2a,0x0a,0xb8,0x04,0xfd,0xb4,0x0e,0x2e,0x0e,0x3a,0x02,0xb8,0x04, +0xfd,0xb4,0x06,0x3e,0x06,0x52,0x12,0xb8,0x04,0xfd,0xb4,0x16,0x56,0x16,0x5a,0x1a,0xb8,0x04,0xfd,0xb4,0x1e,0x5e,0x1e,0x6a,0x32,0xb8,0x04,0xfd,0xb4,0x36,0x6e,0x36,0x7a,0x42,0xb8,0x04,0xfd,0xb4,0x46,0x7e,0x46,0x72,0x4a,0xb8,0x04,0xfd,0x40,0x14,0x4e,0x76,0x4e,0x0e,0x06,0x16,0x1e,0x36,0x46,0x4e,0x4e,0x46,0x36,0x1e,0x16,0x06, +0x0e,0x07,0x26,0x62,0xbb,0x04,0xfd,0x00,0x66,0x00,0x22,0x04,0xfd,0xb3,0x3f,0x26,0x01,0x26,0x00,0x2f,0x5d,0xed,0x2f,0xed,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32, +0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x32,0x2f,0x33,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x14,0x23,0x22,0x35,0x34,0x33, +0x32,0x27,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x13,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x17,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x07,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33, +0x32,0x07,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x07,0x16,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x25,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x13,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x27,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x03,0xd4,0x30,0x34,0x34,0x30,0x94, +0x30,0x34,0x34,0x30,0xf7,0x33,0x31,0x33,0x31,0x24,0x30,0x34,0x34,0x30,0xfe,0x37,0x32,0x32,0x32,0x32,0xad,0x33,0x31,0x31,0x33,0x02,0x52,0x33,0x31,0x31,0x33,0xfd,0x1a,0x32,0x32,0x32,0x32,0x02,0x83,0x30,0x34,0x34,0x30,0x94,0x30,0x34,0x34,0x30,0xfd,0xae,0x30,0x34,0x32,0x32,0x24,0x01,0x31,0x34,0x34,0x31,0x01,0xc7,0x32,0x32, +0x32,0x32,0xfe,0x5c,0x32,0x32,0x32,0x32,0xf7,0x33,0x31,0x31,0x33,0x94,0x32,0x32,0x32,0x32,0x03,0x96,0x32,0x32,0x32,0x30,0x31,0x31,0x33,0xfe,0xd7,0x33,0x33,0x31,0xdf,0x32,0x32,0x32,0x01,0x97,0x33,0x33,0x31,0x56,0x31,0x31,0x33,0xfd,0x7b,0x31,0x31,0x33,0x01,0xbd,0x32,0x2f,0x35,0xfd,0x48,0x31,0x31,0x33,0x95,0x30,0x30,0x34, +0x02,0x20,0x33,0x33,0x31,0xdf,0x32,0x32,0x32,0xfe,0x07,0x33,0x33,0x31,0xe8,0x31,0x31,0x33,0xfe,0xd9,0x34,0x30,0x34,0x2e,0x31,0x31,0x33,0x00,0x00,0x01,0x00,0x73,0xff,0xf2,0x09,0x63,0x01,0xef,0x00,0x0f,0x00,0x10,0xb2,0x0e,0x0b,0x07,0xb9,0x04,0xfb,0x00,0x00,0x00,0x2f,0xfd,0xcd,0x33,0x30,0x31,0x05,0x21,0x22,0x26,0x27,0x27, +0x37,0x21,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x33,0x09,0x63,0xf8,0x84,0x55,0xb2,0x51,0x1c,0x05,0x07,0x66,0x20,0x23,0x9d,0x25,0x1e,0xe8,0x0e,0x0e,0x0f,0x85,0x05,0x5a,0xa8,0x54,0x5a,0xa3,0x59,0x00,0x01,0x00,0x73,0xff,0xf1,0x08,0x39,0x01,0x60,0x00,0x4d,0x00,0x22,0xb1,0x2e,0x3d,0xb8,0x04,0xfb,0xb5,0x1d,0x00,0x10,0x18,0x06, +0x22,0xb8,0x04,0xfb,0xb2,0x45,0x33,0x29,0x00,0x2f,0x33,0x33,0xfd,0x32,0x32,0xdc,0x32,0x32,0xed,0x32,0x30,0x31,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x1e,0x03,0x33,0x21,0x17,0x07,0x06,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23, +0x22,0x2e,0x02,0x27,0x2e,0x03,0x23,0x22,0x06,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x01,0x24,0x0a,0x0b,0x23,0x1b,0x16,0x2a,0x28,0x25,0x11,0x14,0x2e,0x34,0x3c,0x21,0x20,0x31,0x27,0x1f,0x0e,0x1e,0x30,0x22,0x12,0x29,0x2e,0x32,0x1a,0x36,0x74,0x87,0x9f,0x62,0x01,0x7a,0x05,0x1c,0x51,0xb2,0x55,0x35,0x60,0x8d, +0x71,0x60,0x33,0x20,0x3c,0x38,0x33,0x18,0x21,0x33,0x29,0x20,0x0f,0x12,0x1c,0x1a,0x1b,0x12,0x1d,0x34,0x1d,0x16,0x32,0x3d,0x4c,0x30,0x33,0x48,0x2d,0x15,0x13,0x0f,0x01,0x48,0x1e,0x3b,0x16,0x26,0x20,0x10,0x1b,0x21,0x11,0x13,0x28,0x20,0x15,0x15,0x20,0x29,0x13,0x2a,0x32,0x10,0x26,0x3e,0x2f,0x1d,0x39,0x2c,0x1b,0x05,0x85,0x0f, +0x0e,0x17,0x25,0x31,0x1b,0x2a,0x35,0x1d,0x0b,0x0f,0x1a,0x22,0x13,0x17,0x25,0x19,0x0e,0x28,0x1c,0x15,0x2d,0x25,0x18,0x1b,0x30,0x43,0x28,0x2a,0x52,0x25,0x00,0x02,0x00,0x49,0xff,0xf2,0x05,0xd0,0x02,0x6c,0x00,0x1c,0x00,0x2e,0x00,0x16,0xb9,0x00,0x15,0x04,0xfb,0xb2,0x22,0x2c,0x1c,0xb9,0x04,0xfb,0x00,0x0b,0x00,0x2f,0xfd,0x32, +0xdc,0xed,0x30,0x31,0x25,0x17,0x07,0x06,0x06,0x23,0x23,0x2a,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x04,0x17,0x23,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x05,0xcc,0x04,0x1c,0x51,0xb2,0x55,0x36,0x1c,0x5e,0x7b,0x95,0x52,0x82,0xc1,0x7f,0x3f,0x32,0x5a,0x7c,0x4a,0x3e,0x68,0x55, +0x43,0x33,0x23,0x0b,0x9f,0x0b,0x2b,0x3f,0x53,0x34,0x20,0x43,0x38,0x24,0x20,0x42,0x66,0x47,0x30,0x52,0x99,0x06,0x84,0x0f,0x0e,0x05,0x2a,0x59,0x53,0x55,0x97,0x71,0x42,0x2d,0x4a,0x60,0x68,0x68,0x2c,0x36,0x6a,0x55,0x35,0x17,0x31,0x4c,0x35,0x24,0x28,0x13,0x03,0x01,0x00,0x02,0x00,0x73,0xff,0xed,0x0b,0xbf,0x02,0x6c,0x00,0x32, +0x00,0x46,0x00,0x1c,0xb9,0x00,0x18,0x04,0xfb,0xb4,0x3d,0x42,0x11,0x09,0x00,0xb8,0x04,0xfb,0xb1,0x22,0x2c,0x00,0x2f,0x33,0xfd,0xcc,0x33,0x33,0xdc,0xed,0x30,0x31,0x25,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x17,0x3e,0x05,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x26,0x26,0x27, +0x23,0x06,0x06,0x23,0x21,0x22,0x26,0x27,0x27,0x37,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x32,0x32,0x16,0x32,0x07,0xab,0x2d,0x23,0x02,0x04,0x07,0x04,0x8a,0x0b,0x0e,0x04,0x03,0x0a,0x13,0x20,0x19,0x0f,0x2d,0x3d,0x4c,0x5b,0x6b,0x3d,0x45,0x65,0x43,0x20,0x36,0x78,0xc0,0x8a,0x7c,0xa4,0x24,0x11,0x21, +0x0b,0x02,0x1e,0x53,0x2d,0xfa,0x41,0x55,0xb2,0x51,0x1c,0x05,0x09,0xab,0x4e,0x65,0x3c,0x17,0x18,0x29,0x37,0x1f,0x35,0x59,0x46,0x33,0x0f,0x0d,0x30,0x32,0x2d,0x99,0x2f,0x2d,0x0a,0x1d,0x21,0x22,0x0f,0x2a,0x4e,0x14,0x0d,0x18,0x13,0x0d,0x02,0x2c,0x68,0x67,0x60,0x4a,0x2c,0x3a,0x64,0x87,0x4d,0x63,0x6d,0x33,0x0a,0x05,0x0e,0x06, +0x22,0x13,0x2a,0x1f,0x0e,0x0f,0x85,0x05,0x03,0x04,0x16,0x2f,0x2c,0x31,0x45,0x2d,0x15,0x36,0x55,0x6b,0x36,0x01,0x00,0x02,0x00,0x49,0xff,0xf0,0x08,0x3d,0x02,0x6c,0x00,0x1e,0x00,0x30,0x00,0x36,0xb4,0x1e,0x1f,0x1f,0x32,0x29,0xbb,0x05,0x0a,0x00,0x12,0x00,0x24,0x04,0xfb,0x40,0x0b,0x2f,0x17,0x01,0x17,0x2e,0x2e,0x1f,0x1f,0x1e, +0x1e,0x00,0xb9,0x04,0xfb,0x00,0x07,0x00,0x2f,0xed,0x32,0x11,0x33,0x11,0x33,0x2f,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x10,0xcd,0x30,0x31,0x25,0x32,0x36,0x37,0x07,0x06,0x06,0x23,0x21,0x22,0x06,0x22,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x04,0x17,0x23,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e, +0x02,0x33,0x32,0x36,0x06,0xfe,0x51,0x9c,0x52,0x21,0x23,0x80,0x55,0xfd,0x63,0x5c,0x8c,0x80,0x82,0x53,0x82,0xc1,0x7f,0x3f,0x32,0x5a,0x7c,0x4a,0x3e,0x68,0x55,0x43,0x33,0x23,0x0b,0x9f,0x0b,0x2a,0x40,0x54,0x33,0x20,0x43,0x38,0x24,0x20,0x42,0x66,0x47,0x30,0x53,0x99,0x08,0x0a,0xa9,0x05,0x0b,0x01,0x01,0x07,0x2a,0x5a,0x52,0x55, +0x97,0x71,0x42,0x2d,0x4a,0x60,0x68,0x68,0x2c,0x36,0x6a,0x55,0x35,0x17,0x31,0x4c,0x35,0x24,0x28,0x13,0x03,0x01,0x00,0x01,0x00,0x46,0xfe,0xaa,0x02,0x1e,0x02,0x01,0x00,0x09,0x00,0x18,0x40,0x0a,0x00,0x06,0x06,0x0b,0x0a,0x09,0x2f,0x05,0x01,0x05,0x00,0x2f,0x5d,0xcd,0x11,0x12,0x01,0x39,0x2f,0xcd,0x31,0x30,0x01,0x0e,0x03,0x07, +0x23,0x36,0x12,0x37,0x02,0x1e,0x2c,0x5a,0x56,0x51,0x23,0x88,0x46,0x9f,0x4f,0x02,0x01,0x5a,0xce,0xdb,0xe4,0x70,0xfb,0x01,0xb4,0xa8,0x00,0x02,0x00,0x32,0xfd,0xfe,0x04,0x2e,0x04,0x0c,0x00,0x45,0x00,0x58,0x00,0x6d,0xb2,0x45,0x26,0x13,0xb8,0x05,0x0a,0xb4,0x4b,0x4b,0x5a,0x2e,0x26,0xb8,0x05,0x0a,0xb3,0x09,0x05,0x05,0x3f,0xb8, +0x05,0x0a,0xb7,0x2e,0x1b,0x23,0x55,0x09,0x04,0x18,0x0e,0xbc,0x04,0xfc,0x00,0x50,0x04,0xe6,0x00,0x00,0x04,0xfb,0xb5,0x42,0x2b,0x45,0x45,0x18,0x3a,0xb8,0x04,0xfb,0xb2,0x33,0x20,0x46,0xb8,0x04,0xfc,0x40,0x09,0x18,0x1f,0x1f,0x1f,0x18,0x2f,0x18,0x02,0x18,0x00,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x39,0x2f,0xed,0x12,0x39,0x2f,0x39, +0x39,0xed,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0xed,0x39,0x2f,0x39,0xed,0x11,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x0e,0x03,0x15,0x14,0x16,0x17,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x07,0x06,0x06,0x07,0x23,0x36,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34, +0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x37,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x15,0x16,0x16,0x03,0x5c,0xad,0xe9,0x8c,0x3b,0x08,0x07,0x05,0x3a,0x76,0x78,0x78,0x3d,0x4f,0x77,0x50,0x28,0x40,0x78,0xae,0x6e,0x6f,0xad,0x3f,0x03,0x10,0x1e, +0x10,0x8c,0x1d,0x3b,0x1d,0x21,0x21,0x14,0x32,0x52,0x3f,0x4c,0x45,0x3d,0x72,0xa6,0x69,0x23,0x4f,0x2a,0x27,0x55,0x2b,0x36,0x65,0x4d,0x2f,0x37,0x33,0x51,0xd0,0x8a,0xfb,0x4b,0x72,0x4e,0x27,0x14,0x2c,0x45,0x30,0x2a,0x5c,0x62,0x6a,0x37,0x2d,0x86,0x01,0x9f,0x2e,0x68,0x73,0x7c,0x42,0x1d,0x33,0x1a,0x51,0x70,0x46,0x1f,0x2e,0x4f, +0x68,0x39,0x49,0x87,0x69,0x3f,0x40,0x36,0x01,0x1b,0x39,0x20,0x3d,0x6b,0x30,0x36,0x78,0x40,0x2e,0x65,0x66,0x65,0x30,0x45,0xa3,0x4f,0x4c,0x8c,0x6a,0x40,0x08,0x09,0xaa,0x08,0x0b,0x15,0x34,0x57,0x43,0x48,0x71,0x28,0x2d,0x52,0x24,0xfc,0x55,0x26,0x3d,0x4d,0x26,0x1b,0x33,0x28,0x18,0x17,0x39,0x63,0x4c,0x02,0x2d,0x36,0x00,0x02, +0xff,0xc9,0x06,0x37,0x02,0x29,0x07,0xeb,0x00,0x24,0x00,0x36,0x00,0x2e,0xbc,0x00,0x11,0x05,0x0d,0x00,0x2a,0x00,0x0c,0x05,0x01,0x40,0x09,0x2d,0x25,0x32,0x32,0x25,0x07,0x07,0x01,0x25,0xb8,0x05,0x01,0xb1,0x1f,0x16,0x00,0x2f,0xc6,0xfd,0xc4,0x33,0x2f,0x11,0x33,0x2f,0x10,0xd6,0xed,0x01,0x2f,0xed,0x31,0x30,0x03,0x33,0x16,0x16, +0x17,0x16,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x07,0x06,0x06,0x07,0x23,0x36,0x36,0x35,0x34,0x05,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x32,0x16,0x32,0x32,0x17,0x51,0x06,0x09,0x02,0x04,0x13,0x1d,0x0d,0x2f,0x43,0x57,0x36,0x28,0x3c,0x27,0x13,0x20,0x46,0x71, +0x51,0x30,0x41,0x2c,0x1b,0x0c,0x03,0x05,0x0e,0x07,0x57,0x13,0x17,0x01,0x44,0x2e,0x3b,0x23,0x0e,0x34,0x25,0x1f,0x34,0x29,0x1e,0x09,0x08,0x1c,0x1d,0x1b,0x07,0x56,0x18,0x2f,0x0b,0x10,0x18,0x02,0x27,0x5f,0x53,0x38,0x22,0x3a,0x50,0x2d,0x3a,0x40,0x1e,0x06,0x01,0x04,0x09,0x08,0x01,0x16,0x2b,0x11,0x33,0x63,0x33,0x2f,0x58,0x02, +0x0e,0x1b,0x1a,0x39,0x33,0x1f,0x33,0x3f,0x1f,0x01,0x00,0x01,0xff,0xe9,0x06,0x37,0x01,0xee,0x07,0xeb,0x00,0x2e,0x00,0x4a,0xb1,0x24,0x06,0xb8,0x05,0x0d,0xb4,0x00,0x27,0x27,0x09,0x1e,0xb8,0x05,0x0d,0x40,0x0b,0x18,0x1a,0x1a,0x18,0x09,0x24,0x09,0x0a,0x2e,0x2e,0x2c,0xb8,0x05,0x01,0xb5,0x03,0x09,0x23,0x23,0x1b,0x09,0xb8,0x05, +0x01,0xb1,0x14,0x0a,0x00,0x2f,0xc6,0xfd,0xc4,0x33,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x11,0x12,0x39,0x01,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x39,0xed,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x07,0x06,0x06,0x07,0x23,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x16,0x17, +0x1e,0x03,0x33,0x33,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0xbe,0x0e,0x1d,0x11,0x2e,0x40,0x92,0x48,0xcd,0x30,0x41,0x2c,0x1b,0x0c,0x03,0x05,0x0e,0x07,0x57,0x13,0x17,0x0a,0x51,0x06,0x09,0x02,0x02,0x08,0x12,0x20,0x1b,0x1d,0x12,0x17,0x1d,0x34,0x49,0x2c,0x20,0x22,0x07,0x7e,0x03,0x04,0x26,0x2c,0x5b,0x64,0x01,0x04, +0x09,0x08,0x01,0x16,0x2b,0x11,0x33,0x63,0x33,0x2f,0x27,0x18,0x2f,0x0b,0x0a,0x11,0x0c,0x06,0x1b,0x3b,0x1e,0x23,0x3b,0x2b,0x17,0x06,0x00,0x02,0x00,0x03,0x06,0x1f,0x02,0x20,0x08,0x00,0x00,0x1d,0x00,0x36,0x00,0x2c,0xbf,0x00,0x2e,0x05,0x0d,0x00,0x25,0x00,0x11,0x04,0xfd,0x00,0x18,0x00,0x20,0x04,0xfd,0x40,0x0a,0x33,0x1e,0x00, +0x0c,0x14,0x1d,0x05,0x05,0x28,0x05,0x00,0x2f,0x2f,0x12,0x17,0x39,0x2f,0xfd,0xd4,0xed,0x01,0x2f,0xed,0x31,0x30,0x01,0x0e,0x03,0x07,0x23,0x3e,0x03,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x03,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22, +0x26,0x27,0x01,0x4a,0x49,0x5a,0x34,0x18,0x07,0x51,0x06,0x17,0x32,0x57,0x47,0x14,0x1c,0x1e,0x25,0x1c,0x18,0x2d,0x11,0x14,0x2e,0x17,0x2b,0x39,0x32,0x37,0x2b,0x65,0x38,0x26,0x21,0x2c,0x1a,0x0b,0x1d,0x13,0x5a,0x0c,0x11,0x0c,0x06,0x1f,0x38,0x4b,0x2b,0x17,0x2b,0x1a,0x07,0x2f,0x12,0x29,0x2f,0x36,0x1e,0x1e,0x40,0x3f,0x3a,0x18, +0x03,0x07,0x0e,0x0c,0x07,0x06,0x07,0x5f,0x06,0x07,0x15,0x1b,0x17,0x01,0xfe,0xee,0x11,0x17,0x29,0x37,0x21,0x3e,0x75,0x36,0x1d,0x3d,0x3e,0x3a,0x19,0x3c,0x5c,0x3e,0x20,0x09,0x0a,0x00,0x00,0x04,0xff,0x88,0x06,0x1f,0x02,0xb1,0x08,0xbb,0x00,0x24,0x00,0x36,0x00,0x4d,0x00,0x51,0x00,0x52,0xb2,0x41,0x45,0x4e,0xbb,0x05,0x0d,0x00, +0x4f,0x00,0x45,0x05,0x0d,0xb2,0x3e,0x37,0x11,0xb8,0x05,0x0d,0xb3,0x2a,0x51,0x4e,0x0c,0xb8,0x05,0x01,0x40,0x09,0x2d,0x25,0x32,0x32,0x25,0x07,0x07,0x01,0x25,0xb8,0x05,0x01,0xb3,0x1f,0x16,0x41,0x39,0xb9,0x04,0xfd,0x00,0x4a,0x00,0x2f,0xfd,0xce,0xd4,0xce,0xfd,0xc4,0x33,0x2f,0x11,0x33,0x2f,0x10,0xd6,0xfd,0xd6,0xcd,0x01,0x2f, +0xed,0x39,0x2f,0xed,0x2f,0xed,0x12,0x39,0x31,0x30,0x03,0x33,0x16,0x16,0x17,0x16,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x07,0x06,0x06,0x07,0x23,0x36,0x36,0x35,0x34,0x05,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x32,0x16,0x32,0x32,0x17,0x16,0x33,0x32,0x3e,0x02, +0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x03,0x23,0x35,0x33,0x58,0x51,0x06,0x09,0x02,0x04,0x13,0x1d,0x0c,0x2d,0x40,0x53,0x33,0x27,0x38,0x26,0x12,0x1e,0x42,0x69,0x4b,0x30,0x41,0x2c,0x1b,0x0c,0x03,0x05,0x0e,0x07,0x57,0x13,0x17,0x01,0x3c,0x2a,0x37,0x20,0x0d,0x30,0x22,0x1d,0x2f,0x26,0x1c, +0x08,0x07,0x1a,0x1b,0x18,0xa0,0x36,0x28,0x21,0x2c,0x1a,0x0b,0x1d,0x13,0x5a,0x17,0x18,0x1f,0x38,0x4b,0x2b,0x17,0x2b,0x1a,0x98,0x57,0x57,0x07,0x92,0x18,0x2f,0x0b,0x10,0x18,0x02,0x27,0x5f,0x53,0x38,0x22,0x3a,0x50,0x2d,0x3a,0x40,0x1e,0x06,0x01,0x04,0x09,0x08,0x01,0x16,0x2b,0x11,0x33,0x63,0x33,0x2f,0x58,0x02,0x0e,0x1b,0x1a, +0x39,0x33,0x1f,0x33,0x3f,0x1f,0x01,0x83,0x11,0x17,0x28,0x38,0x20,0x3f,0x74,0x37,0x39,0x7f,0x34,0x3c,0x5b,0x3e,0x20,0x09,0x0a,0x02,0x33,0x56,0x00,0x01,0xff,0xc4,0x06,0x71,0x02,0x22,0x07,0xb0,0x00,0x2a,0x00,0x31,0xb9,0x00,0x01,0x05,0x0d,0xb2,0x29,0x0c,0x1e,0xb8,0x05,0x0d,0xb5,0x1d,0x1e,0x18,0x15,0x15,0x24,0xb8,0x05,0x01, +0xb5,0x06,0x14,0x14,0x11,0x06,0x00,0x00,0x2f,0x2f,0x33,0x33,0x2f,0x10,0xed,0x32,0x2f,0x32,0x2f,0x01,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x27,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x02, +0x22,0x1b,0x2b,0x38,0x1d,0x26,0x33,0x20,0x10,0x03,0x04,0x0b,0x22,0x35,0x4d,0x34,0x10,0x21,0x13,0x0c,0x17,0x2a,0x13,0x3f,0x4f,0x2d,0x10,0x59,0x04,0x0f,0x1c,0x18,0x10,0x1a,0x12,0x0a,0x07,0xb0,0xa7,0x2d,0x3b,0x23,0x0d,0x11,0x1f,0x2b,0x1a,0x19,0x2b,0x1f,0x12,0x02,0x02,0x66,0x02,0x02,0x15,0x29,0x3a,0x25,0x35,0x1b,0x28,0x19, +0x0c,0x06,0x11,0x1e,0x17,0x8d,0x00,0x01,0x00,0xc4,0xfd,0xf6,0x01,0x42,0xff,0x7e,0x00,0x03,0x00,0x15,0xbd,0x00,0x00,0x05,0x0b,0x00,0x01,0x00,0x00,0x04,0xfe,0x00,0x03,0x00,0x2f,0xed,0x01,0x10,0xed,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x42,0x7e,0x7e,0xfd,0xf6,0x01,0x88,0x00,0x00,0x02,0xff,0xbf,0x06,0x73,0x01,0xca,0x08,0x2c, +0x00,0x23,0x00,0x2f,0x00,0x35,0xb2,0x03,0x10,0x06,0xb8,0x05,0x0d,0xb5,0x24,0x00,0x00,0x24,0x14,0x2a,0xb8,0x05,0x0d,0xb3,0x10,0x03,0x23,0x1e,0xbc,0x04,0xfd,0x00,0x17,0x00,0x2d,0x04,0xfd,0x00,0x0b,0x00,0x2f,0xfd,0xd4,0xed,0x32,0x39,0x01,0x2f,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x06,0x06,0x07,0x16, +0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x27,0x26,0x22,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x37,0x13,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x71,0x09,0x14,0x0b,0x39,0x48,0x1d,0x31,0x3e,0x21,0x26,0x3e,0x2c,0x18,0x17,0x1a,0x01,0x06,0x07,0x01,0x38,0x5c, +0x32,0x12,0x30,0x66,0x3c,0x14,0x30,0x17,0x23,0x2d,0x39,0x3c,0x34,0x1d,0x1c,0x29,0x29,0x21,0x36,0x07,0xef,0x08,0x10,0x0b,0x1a,0x59,0x42,0x2a,0x3d,0x29,0x14,0x19,0x2b,0x3b,0x21,0x20,0x46,0x21,0x02,0x01,0x0f,0x0d,0x53,0x0e,0x0e,0x03,0x05,0x22,0x22,0xfe,0xec,0x2a,0x3a,0x10,0x1a,0x3d,0x1c,0x21,0x2d,0x23,0x00,0x01,0x00,0x32, +0x06,0x71,0x01,0xd4,0x07,0xe3,0x00,0x1c,0x00,0x29,0xb2,0x11,0x11,0x13,0xb8,0x05,0x0d,0xb3,0x0d,0x0d,0x1d,0x03,0xb8,0x05,0x0d,0xb3,0x19,0x1c,0x11,0x16,0xb9,0x05,0x01,0x00,0x08,0x00,0x2f,0xfd,0xc6,0xc6,0x01,0x2f,0xed,0x11,0x33,0x2f,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34, +0x36,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x01,0xc7,0x07,0x06,0x16,0x35,0x56,0x40,0x37,0x4a,0x2d,0x13,0x06,0x05,0x58,0x09,0x30,0x3c,0x46,0x3c,0x07,0x06,0x07,0xe3,0x23,0x43,0x1f,0x37,0x58,0x3d,0x21,0x1a,0x32,0x46,0x2c,0x18,0x35,0x1e,0x3b,0x29,0x36,0x29,0x40,0x4f,0x1a,0x3d,0x26,0x00,0xff,0xff, +0xff,0xc6,0x06,0x7c,0x02,0x2c,0x08,0xde,0x01,0x07,0x0f,0x57,0x00,0x00,0x06,0x7c,0x00,0x15,0x40,0x0c,0x01,0x00,0x20,0x00,0x01,0x20,0x00,0x01,0x20,0x00,0x01,0x00,0x00,0x11,0x5d,0x5d,0x5d,0x35,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x06,0x05,0x02,0x26,0x09,0x15,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0xab,0xfe,0x29, +0x00,0x0a,0xb4,0x01,0x2f,0x20,0x01,0x20,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x06,0x05,0x02,0x26,0x0e,0x2f,0x00,0x00,0x01,0x07,0x0a,0x6e,0x01,0x1d,0xfe,0x29,0x00,0x0a,0xb4,0x01,0x2f,0x2b,0x01,0x2b,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0xc2,0x04,0xaf,0x02,0x26,0x09,0x17,0x00,0x00, +0x00,0x07,0x0a,0x6e,0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x04,0xaf,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0a,0x6e,0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0x53,0xff,0xf2,0x05,0x32,0x06,0x40,0x02,0x26,0x0e,0x5c,0x00,0x00,0x00,0x07,0x0a,0x6e,0x02,0x01,0xfe,0x64,0xff,0xff,0x00,0x67,0xfd,0xff,0x05,0x58, +0x05,0xaa,0x02,0x26,0x08,0xf2,0x00,0x00,0x01,0x07,0x0a,0x6e,0x02,0x73,0xfd,0xce,0x00,0x0a,0xb4,0x03,0x2f,0x56,0x01,0x56,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x87,0x06,0x40,0x02,0x26,0x0e,0x5b,0x00,0x00,0x01,0x07,0x0a,0x6e,0x01,0x56,0xfe,0x64,0x00,0x0a,0xb4,0x03,0x2f,0x57,0x01,0x57,0x00,0x11,0x5d,0x35, +0xff,0xff,0xff,0xba,0xfd,0xff,0x04,0x02,0x05,0xaa,0x02,0x26,0x0e,0x5d,0x00,0x00,0x01,0x07,0x0a,0x6e,0x01,0x1d,0xfd,0xce,0x00,0x0a,0xb4,0x03,0x2f,0x4d,0x01,0x4d,0x00,0x11,0x5d,0x35,0x00,0x06,0xfe,0x93,0xfe,0x64,0x01,0x6d,0xff,0xa4,0x00,0x08,0x00,0x11,0x00,0x15,0x00,0x1f,0x00,0x29,0x00,0x32,0x00,0x57,0xbc,0x00,0x20,0x05, +0x0a,0x00,0x25,0x00,0x2f,0x05,0x0a,0xb2,0x2a,0x2a,0x16,0xbb,0x05,0x0a,0x00,0x1a,0x00,0x12,0x05,0x0d,0xb2,0x13,0x09,0x00,0xb8,0x05,0x0a,0xb3,0x0e,0x04,0x31,0x10,0xb8,0x04,0xfc,0xb5,0x2c,0x12,0x0b,0x23,0x18,0x02,0xb8,0x04,0xfc,0xb6,0x27,0x1d,0x14,0x2f,0x07,0x01,0x07,0x00,0x2f,0x5d,0x33,0x33,0x33,0xed,0x32,0x32,0xd4,0x32, +0x32,0xed,0x32,0x01,0x2f,0x33,0xed,0x32,0x2f,0xed,0x2f,0xed,0x39,0x2f,0xed,0x2f,0xed,0x31,0x30,0x05,0x14,0x23,0x22,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x23,0x22,0x26,0x35,0x34,0x33,0x32,0x07,0x23,0x11,0x33,0x07,0x14,0x23,0x22,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x14,0x06,0x23,0x22,0x35,0x34,0x33,0x32,0x16,0x17,0x14,0x23, +0x22,0x26,0x35,0x34,0x33,0x32,0x01,0x6d,0x41,0x44,0x28,0x1c,0x41,0x41,0x1c,0x28,0x44,0x41,0xe4,0x5c,0x5c,0xbb,0x43,0x44,0x28,0x1c,0x1c,0x27,0xb6,0x28,0x1b,0x42,0x42,0x1c,0x27,0x5a,0x41,0x1c,0x28,0x44,0x41,0xa0,0x41,0x41,0x1c,0x28,0xfc,0x44,0x28,0x1c,0x41,0x85,0x01,0x40,0x44,0x41,0x41,0x1c,0x28,0x28,0x1c,0x1b,0x26,0x41, +0x44,0x28,0xd4,0x44,0x28,0x1c,0x41,0x00,0x00,0x04,0xfe,0xa9,0xfe,0x64,0x01,0x54,0xff,0xa4,0x00,0x08,0x00,0x11,0x00,0x15,0x00,0x19,0x00,0x47,0xbc,0x00,0x16,0x05,0x0c,0x00,0x17,0x00,0x12,0x05,0x0d,0xb2,0x13,0x09,0x00,0xb8,0x05,0x0a,0xb3,0x0e,0x04,0x12,0x0b,0xbb,0x04,0xfc,0x00,0x10,0x00,0x02,0x04,0xfc,0xb4,0x07,0x15,0x07, +0x07,0x16,0xb8,0x04,0xfd,0xb4,0x14,0x2f,0x19,0x01,0x19,0x00,0x2f,0x5d,0x33,0xed,0x33,0x11,0x33,0x10,0xfd,0xd6,0xed,0x32,0x01,0x2f,0x33,0xed,0x32,0x2f,0xed,0x2f,0xed,0x31,0x30,0x05,0x14,0x23,0x22,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x23,0x22,0x26,0x35,0x34,0x33,0x32,0x07,0x23,0x11,0x33,0x07,0x21,0x35,0x21,0x01,0x54,0x41, +0x44,0x28,0x1c,0x41,0x41,0x1c,0x28,0x44,0x41,0xe4,0x5c,0x5c,0xbb,0xfe,0xf4,0x01,0x0c,0xa0,0x41,0x41,0x1c,0x28,0xfc,0x44,0x28,0x1c,0x41,0x85,0x01,0x40,0x52,0x52,0x00,0x04,0xfe,0x91,0xfe,0x64,0x01,0x71,0xff,0xa4,0x00,0x08,0x00,0x11,0x00,0x15,0x00,0x1d,0x00,0x59,0xb9,0x00,0x18,0x05,0x0d,0xb4,0x19,0x19,0x1e,0x1b,0x12,0xb8, +0x05,0x0d,0xb2,0x13,0x09,0x00,0xb8,0x05,0x0a,0xb3,0x0e,0x04,0x1a,0x16,0xb8,0x04,0xfd,0xb2,0x1d,0x15,0x02,0xb8,0x04,0xfc,0xb2,0x07,0x07,0x18,0xb8,0x04,0xfe,0xb6,0x14,0x2f,0x1d,0x01,0x1d,0x12,0x0b,0xb8,0x04,0xfc,0xb3,0x2f,0x10,0x01,0x10,0x00,0x2f,0x5d,0xed,0x32,0x2f,0x5d,0x33,0xe4,0x33,0x10,0xed,0x33,0x10,0xed,0x32,0x01, +0x2f,0x33,0xed,0x32,0x2f,0xed,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x14,0x23,0x22,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x23,0x22,0x26,0x35,0x34,0x33,0x32,0x07,0x23,0x11,0x33,0x07,0x23,0x15,0x23,0x35,0x23,0x35,0x21,0x01,0x71,0x41,0x44,0x28,0x1c,0x41,0x41,0x1c,0x28,0x44,0x41,0xe4,0x5c,0x5c,0xba,0x73,0x5c,0x73,0x01,0x42, +0xa0,0x41,0x41,0x1c,0x28,0xfc,0x44,0x28,0x1c,0x41,0x85,0x01,0x40,0x54,0x85,0x85,0x54,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x08,0x0e,0x02,0x26,0x09,0x3f,0x00,0x00,0x00,0x07,0x0a,0x6d,0x00,0x9c,0x00,0x32,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x07,0x67,0x02,0x26,0x09,0x3f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x9c, +0x06,0xb7,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x08,0x7f,0x02,0x26,0x09,0x3f,0x00,0x00,0x01,0x07,0x0f,0x53,0x00,0x9c,0x06,0xb7,0x00,0x0e,0xb6,0x03,0x02,0x01,0x20,0x2a,0x01,0x2a,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x05,0xec,0x02,0x26,0x09,0x3f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x4a, +0xfd,0xce,0xff,0xff,0x00,0xa1,0xff,0xf2,0x09,0x4b,0x08,0x36,0x00,0x26,0x09,0x71,0x00,0x00,0x00,0x07,0x09,0x0d,0x08,0x04,0x00,0x00,0x00,0x05,0x00,0x9b,0xfd,0xff,0x0b,0x15,0x05,0xec,0x00,0x1d,0x00,0x37,0x00,0x52,0x00,0x56,0x00,0x5a,0x00,0xb2,0xb2,0x44,0x1a,0x4a,0xb8,0x05,0x0a,0xb2,0x3f,0x38,0x24,0xba,0x05,0x0a,0x00,0x58, +0x05,0x0a,0xb6,0x21,0x57,0x57,0x21,0x54,0x54,0x53,0x41,0x09,0x05,0x0a,0x00,0x33,0x05,0x0a,0x00,0x30,0x00,0x10,0x05,0x0a,0x00,0x0d,0x00,0x03,0x05,0x0a,0x40,0x17,0x1a,0x3f,0x21,0x30,0x0d,0x1a,0x1a,0x0d,0x30,0x21,0x3f,0x05,0x5c,0x5b,0x5a,0x5a,0x08,0x55,0x55,0x08,0x08,0x59,0x56,0xb8,0x04,0xfb,0x40,0x0b,0x58,0x53,0x53,0x54, +0x54,0x15,0x15,0x57,0x57,0x38,0x3a,0xb8,0x04,0xfb,0x40,0x0b,0x52,0x1f,0x4f,0x2f,0x4f,0x02,0x4f,0x44,0x33,0x32,0x1e,0xba,0x04,0xfb,0x00,0x29,0x05,0x03,0xb2,0x23,0x0e,0x00,0x00,0x2f,0x2f,0x2f,0x3f,0xed,0x2f,0x2f,0x2f,0x2f,0x5d,0x33,0xed,0x32,0x32,0x2f,0x32,0x2f,0x33,0x2f,0x32,0x2f,0x33,0xed,0x32,0x32,0x2f,0x33,0x2f,0x11, +0x33,0x2f,0x11,0x12,0x01,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0xe4,0x33,0x2f,0x11,0x33,0x2f,0x10,0xe4,0xed,0x39,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x01,0x32,0x36,0x35, +0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x04,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x01,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x25,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x4e,0x0b,0x0b,0x24,0x4e,0x7d,0x59,0x67,0x93,0x5d,0x2b,0x9c,0x38,0x81,0xd4,0x9d, +0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x06,0x96,0x5d,0x5b,0x9c,0x37,0x5f,0x7e,0x47,0x44,0x65,0x48,0x2d,0x1a,0x0a,0x9c,0x09,0x23,0x45,0x01,0x67,0x7c,0x59,0x55,0x74,0x45,0x1e,0x13,0x1f,0x29,0x16,0xa1,0x1a,0x28,0x1c,0x0f,0x44,0x79,0xa7,0x62,0x33,0x6c,0x39,0xfe,0x48,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x01,0xa6,0x48,0x7a,0x37,0x5f,0x84, +0x51,0x24,0x31,0x6e,0xb3,0x81,0x04,0xc4,0xfb,0x28,0x8f,0xe4,0x9f,0x56,0x45,0x7f,0xb7,0x72,0x3f,0x83,0x4b,0xfe,0xeb,0x68,0x70,0x01,0xa6,0xfe,0x53,0x6b,0x90,0x58,0x25,0x21,0x39,0x4c,0x57,0x5e,0x2e,0x04,0x79,0xfb,0xc2,0x40,0x69,0x4b,0x29,0xfe,0x40,0x27,0x3d,0x6c,0x92,0x56,0x4b,0x8e,0x88,0x83,0x3f,0x41,0x8e,0x8f,0x8b,0x3e, +0x8a,0xd4,0x90,0x4a,0x16,0x17,0x79,0xb5,0xb5,0xb5,0x00,0x02,0xff,0xd4,0x05,0x20,0x02,0x33,0x06,0xf2,0x00,0x2f,0x00,0x33,0x00,0x62,0xb2,0x00,0x00,0x03,0xb8,0x05,0x0d,0x40,0x09,0x2c,0x2f,0x2f,0x2c,0x0a,0x1f,0x23,0x23,0x26,0xb8,0x05,0x0d,0xb6,0x1f,0x22,0x22,0x1f,0x16,0x16,0x19,0xb8,0x05,0x0b,0xb7,0x12,0x15,0x15,0x12,0x0a, +0x29,0x06,0x31,0xb8,0x04,0xfd,0xb6,0x32,0x15,0x23,0x23,0x00,0x1c,0x29,0xb8,0x04,0xfd,0xb1,0x0d,0x06,0x00,0x2f,0x33,0xfd,0x32,0xdc,0x32,0x11,0x33,0xde,0xed,0x11,0x12,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15, +0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x25,0x21,0x15,0x21,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11, +0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0xfe,0x36,0x01,0xfc,0xfe,0x04,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0xbc, +0x58,0x00,0x00,0x03,0xff,0xd4,0x05,0x20,0x02,0x33,0x07,0xfd,0x00,0x2f,0x00,0x53,0x00,0x61,0x00,0x85,0xb9,0x00,0x54,0x05,0x0d,0xb3,0x4d,0x00,0x00,0x03,0xb8,0x05,0x0d,0xb4,0x2c,0x2f,0x2f,0x2c,0x43,0xb8,0x05,0x0d,0x40,0x09,0x0a,0x41,0x1f,0x5c,0x5c,0x1f,0x23,0x23,0x26,0xb8,0x05,0x0d,0xb6,0x1f,0x22,0x22,0x1f,0x16,0x16,0x19, +0xb8,0x05,0x0b,0xb4,0x12,0x15,0x15,0x12,0x48,0xb8,0x04,0xfd,0xb3,0x57,0x50,0x5f,0x3d,0xb8,0x04,0xfd,0x40,0x0a,0x36,0x33,0x33,0x36,0x15,0x00,0x23,0x0a,0x0d,0x06,0xb8,0x04,0xfd,0xb1,0x1c,0x29,0x00,0x2f,0x33,0xed,0x32,0x39,0xde,0x32,0x32,0xce,0x32,0x2f,0x10,0xfd,0x32,0x39,0xd4,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f, +0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x12,0x39,0x39,0xed,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0xed,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14, +0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x32,0x37,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14, +0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0x5a,0x17,0x28,0x11,0x18,0x2f,0x14,0x3c,0x65,0x31,0x12,0x33,0x5a,0x39,0x01,0x0b,0x06,0x01,0x34,0x1e,0x31,0x3e,0x21,0x20,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x02,0x33,0x1f,0x0f,0x1f, +0x18,0x0f,0x23,0x1a,0x30,0x3a,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0x1d,0x11,0x22,0x11,0x05,0x03,0x0e,0x0e,0x53,0x0d,0x0f,0x01,0x02,0x40,0x40,0x24,0x39,0x27,0x14,0x14, +0x27,0x3a,0x27,0x3f,0x56,0x19,0x0b,0x10,0x08,0xcd,0x26,0x22,0x09,0x11,0x1a,0x10,0x1a,0x3a,0x1a,0x0e,0x36,0x00,0x00,0x02,0xff,0xd4,0x05,0x28,0x02,0x33,0x06,0xfc,0x00,0x2f,0x00,0x33,0x00,0x63,0xb2,0x00,0x00,0x03,0xb8,0x05,0x0d,0x40,0x09,0x2c,0x2f,0x2f,0x2c,0x0a,0x1f,0x23,0x23,0x26,0xb8,0x05,0x0d,0xb6,0x1f,0x22,0x22,0x1f, +0x16,0x16,0x19,0xb8,0x05,0x0b,0x40,0x0d,0x12,0x15,0x15,0x12,0x0a,0x29,0x06,0x15,0x22,0x22,0x00,0x1c,0x29,0xb8,0x04,0xfd,0xb2,0x0d,0x06,0x31,0xb9,0x04,0xfd,0x00,0x32,0x00,0x2f,0xfd,0xd6,0x32,0xfd,0x32,0xcc,0x32,0x11,0x33,0x11,0x12,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39, +0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x01,0x21,0x15,0x21,0x02,0x2f,0x02,0x02, +0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0xfe,0x36,0x01,0xfc,0xfe,0x04,0x06,0xfc,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12, +0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0xfe,0x84,0x58,0x00,0x00,0x03,0xff,0x6c,0x05,0x20,0x02,0x33,0x07,0xfd,0x00,0x2f,0x00,0x54,0x00,0x62,0x00,0x8b,0xb2,0x16,0x16,0x19,0xb8,0x05,0x0b,0xb7,0x12,0x15,0x15,0x12,0x12,0x63,0x3b,0x55,0xb8,0x05,0x0d,0xb4,0x4e,0x3b,0x00,0x00,0x03,0xb8,0x05,0x0d,0xb4,0x2c, +0x2f,0x2f,0x2c,0x44,0xb8,0x05,0x0d,0x40,0x09,0x0a,0x42,0x1f,0x5d,0x5d,0x1f,0x23,0x23,0x26,0xb8,0x05,0x0d,0x40,0x0a,0x1f,0x22,0x22,0x1f,0x3c,0x60,0x39,0x03,0x36,0x49,0xbb,0x04,0xfd,0x00,0x58,0x00,0x3f,0x04,0xfd,0xb6,0x36,0x16,0x00,0x22,0x0a,0x1c,0x29,0xb8,0x04,0xfd,0xb1,0x0d,0x06,0x00,0x2f,0x33,0xfd,0x32,0x39,0xd4,0x32, +0x32,0xd6,0xfd,0xd4,0xed,0x11,0x17,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x12,0x39,0x39,0xed,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0x2f,0xed,0x11,0x12,0x39,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34, +0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x07,0x27,0x37,0x16,0x16,0x33,0x32,0x37,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37, +0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0x5a,0x17,0x28,0x11,0x19,0x2f,0x15,0x42,0x5e,0x25,0x61,0x36,0x99,0x31,0x5b,0x34, +0x10,0x0f,0x01,0x36,0x1e,0x31,0x3f,0x20,0x20,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x02,0x33,0x1f,0x0f,0x1f,0x18,0x0f,0x23,0x1a,0x2f,0x3b,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14, +0x2c,0x0d,0x1d,0x11,0x22,0x11,0x07,0x06,0x34,0x2a,0x59,0x3b,0x8e,0x3c,0x3e,0x03,0x02,0x42,0x41,0x24,0x38,0x27,0x14,0x14,0x27,0x3a,0x27,0x3f,0x56,0x19,0x0b,0x10,0x08,0xcd,0x26,0x22,0x09,0x11,0x19,0x11,0x1b,0x38,0x1b,0x0e,0x35,0x00,0x00,0x03,0xff,0xd4,0x05,0x28,0x02,0x33,0x07,0xab,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x6b, +0xb2,0x00,0x00,0x03,0xb8,0x05,0x0d,0x40,0x09,0x2c,0x2f,0x2f,0x2c,0x0a,0x1f,0x23,0x23,0x26,0xb8,0x05,0x0d,0xb6,0x1f,0x22,0x22,0x1f,0x16,0x16,0x19,0xb8,0x05,0x0b,0x40,0x0d,0x12,0x15,0x15,0x12,0x0a,0x29,0x06,0x15,0x23,0x23,0x00,0x1c,0x29,0xb8,0x04,0xfd,0xb2,0x0d,0x06,0x31,0xbc,0x04,0xfd,0x00,0x32,0x00,0x35,0x04,0xfd,0x00, +0x36,0x00,0x2f,0xfd,0xd6,0xfd,0xd6,0x32,0xfd,0x32,0xcc,0x32,0x11,0x33,0x11,0x12,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37, +0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01, +0x22,0x2d,0x30,0x24,0x04,0x02,0xfe,0x36,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04,0x07,0xab,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0xfe,0x84,0x58,0x57,0x58,0x00,0x00,0x04,0x00,0x35, +0xfd,0xf6,0x03,0xf2,0x05,0x28,0x00,0x27,0x00,0x39,0x00,0x3d,0x00,0x41,0x00,0x58,0xbc,0x00,0x14,0x05,0x0a,0x00,0x28,0x00,0x3e,0x05,0x0b,0xb2,0x3f,0x3f,0x3a,0xbb,0x05,0x0c,0x00,0x3b,0x00,0x32,0x05,0x0a,0x40,0x0b,0x05,0x28,0x3b,0x05,0x05,0x3b,0x28,0x03,0x43,0x42,0x3a,0xb8,0x04,0xfb,0xb4,0x3d,0x3f,0x40,0x37,0x24,0xbd,0x04, +0xfb,0x00,0x1b,0x05,0x03,0x00,0x2d,0x04,0xfb,0x00,0x0c,0x00,0x2f,0xed,0x3f,0xed,0x32,0xd6,0xcd,0x2f,0xed,0x11,0x12,0x01,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x31,0x30,0x25,0x2e,0x03,0x35,0x34,0x3e,0x04,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x27,0x27,0x16, +0x16,0x33,0x32,0x36,0x37,0x25,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x03,0x23,0x35,0x33,0x03,0x23,0x11,0x33,0x02,0x4e,0x49,0x60,0x38,0x16,0x15,0x28,0x3a,0x47,0x54,0x2f,0x45,0x75,0x38,0x14,0x26,0x1d,0x11,0x3c,0x64,0x82,0x8e,0x8f,0x3e,0x39,0x52,0x41,0x36,0x1e,0x20,0x51,0x9e,0x47,0x49,0x77, +0x21,0x01,0x09,0x22,0x38,0x4a,0x27,0x1d,0x37,0x2b,0x1b,0x18,0x42,0x73,0x5a,0x21,0x1d,0xab,0xc9,0xc9,0x23,0x7e,0x7e,0x9e,0x1d,0x45,0x4c,0x52,0x2b,0x2e,0x60,0x5b,0x50,0x3d,0x23,0x51,0x58,0x20,0x4a,0x54,0x5d,0x32,0x5e,0x82,0x56,0x30,0x17,0x05,0x02,0x04,0x06,0x04,0xa7,0x0a,0x08,0x07,0x04,0xc6,0x33,0x78,0x66,0x44,0x26,0x3c, +0x4c,0x26,0x20,0x3e,0x44,0x49,0x2a,0x17,0x52,0x03,0x36,0xbd,0xf8,0xce,0x01,0x88,0x00,0x03,0x00,0x65,0xff,0xea,0x03,0x9d,0x03,0x6c,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x3a,0xb9,0x00,0x21,0x05,0x0c,0xb4,0x13,0x1b,0x1b,0x24,0x15,0xbb,0x05,0x0c,0x00,0x0f,0x00,0x09,0x05,0x0c,0xb2,0x03,0x1e,0x12,0xbe,0x04,0xfe,0x00,0x18,0x00, +0x0c,0x05,0x03,0x00,0x00,0x04,0xfe,0x00,0x06,0x00,0x2f,0xed,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0xd4,0xed,0x11,0x33,0x2f,0xc4,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x02,0x00,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0xfd,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0xfd,0x79,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x02,0x8e,0x42,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x42,0xfd,0x5c,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x00,0x01,0xff,0xe7,0x06,0x7c,0x02,0x1f,0x06,0xe8, +0x00,0x03,0x00,0x15,0xb2,0x01,0x00,0x02,0xb8,0x04,0xfd,0xb3,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0xed,0x01,0x2f,0xcd,0x31,0x30,0x03,0x21,0x15,0x21,0x19,0x02,0x38,0xfd,0xc8,0x06,0xe8,0x6c,0x00,0x00,0x01,0xff,0xdf,0x06,0x7c,0x02,0x28,0x07,0xdc,0x00,0x06,0x00,0x15,0xb7,0x03,0x01,0x05,0x01,0x04,0x02,0x03,0x00,0x00,0x2f,0x32, +0xcd,0x32,0x01,0x2f,0x2f,0x12,0x39,0x31,0x30,0x13,0x03,0x33,0x17,0x37,0x33,0x03,0xcb,0xec,0x7d,0xab,0xa8,0x79,0xe6,0x06,0x7c,0x01,0x60,0xff,0xff,0xfe,0xa0,0x00,0x00,0x01,0xff,0xdf,0x06,0x7c,0x02,0x28,0x07,0xdc,0x00,0x06,0x00,0x15,0xb7,0x03,0x01,0x05,0x01,0x03,0x00,0x04,0x02,0x00,0x2f,0x33,0xcd,0x32,0x01,0x2f,0x2f,0x12, +0x39,0x31,0x30,0x01,0x13,0x23,0x27,0x07,0x23,0x13,0x01,0x3c,0xec,0x7d,0xab,0xa8,0x79,0xe6,0x07,0xdc,0xfe,0xa0,0xff,0xff,0x01,0x60,0x00,0x01,0x00,0x97,0xfe,0x92,0x01,0x6e,0xff,0x69,0x00,0x0b,0x00,0x15,0xbd,0x00,0x06,0x05,0x0c,0x00,0x00,0x00,0x09,0x04,0xfe,0x00,0x03,0x00,0x2f,0xed,0x01,0x10,0xed,0x31,0x30,0x13,0x34,0x36, +0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x97,0x3d,0x2f,0x2f,0x3c,0x3c,0x2f,0x2f,0x3d,0xfe,0xfe,0x2f,0x3c,0x3c,0x2f,0x2f,0x3d,0x3d,0x00,0x00,0x02,0x00,0x3d,0x06,0x55,0x02,0x48,0x08,0x0e,0x00,0x23,0x00,0x2f,0x00,0x39,0xb4,0x14,0x2a,0x03,0x06,0x10,0xb8,0x05,0x0d,0xb3,0x2a,0x00,0x00,0x24,0xbb,0x05,0x0d,0x00,0x06,0x00, +0x0b,0x04,0xfd,0xb3,0x2d,0x03,0x27,0x17,0xb8,0x04,0xfd,0xb3,0x20,0x1e,0x01,0x1e,0x00,0x2f,0x5d,0xfd,0x32,0x39,0xd4,0xed,0x01,0x2f,0xed,0x32,0x2f,0x2f,0xed,0x11,0x39,0x11,0x39,0x31,0x30,0x13,0x36,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x17,0x16,0x32,0x33,0x32,0x36,0x37,0x17,0x06, +0x06,0x23,0x22,0x26,0x27,0x06,0x07,0x03,0x14,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x96,0x09,0x14,0x0b,0x39,0x48,0x1d,0x31,0x3e,0x21,0x26,0x3e,0x2c,0x18,0x17,0x1a,0x01,0x06,0x07,0x01,0x38,0x5c,0x32,0x12,0x30,0x66,0x3c,0x14,0x30,0x17,0x23,0x2d,0x39,0x3c,0x34,0x1d,0x1c,0x29,0x29,0x21,0x36,0x06,0x92,0x08,0x10, +0x0b,0x1a,0x59,0x42,0x2a,0x3d,0x29,0x14,0x19,0x2b,0x3b,0x21,0x20,0x46,0x21,0x02,0x01,0x0f,0x0d,0x53,0x0e,0x0e,0x03,0x05,0x22,0x22,0x01,0x14,0x2a,0x3a,0x10,0x1a,0x3d,0x1c,0x21,0x2d,0x23,0x00,0x00,0x03,0x00,0x05,0x06,0x67,0x02,0x01,0x08,0x31,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x34,0xb9,0x00,0x08,0x05,0x0a,0xb3,0x00,0x09, +0x01,0x04,0xb8,0x05,0x0a,0x40,0x0f,0x05,0x02,0x01,0x03,0x00,0x01,0x00,0x04,0x0b,0x08,0x07,0x20,0x04,0x01,0x04,0x00,0x2f,0x5d,0xdd,0xd4,0xcd,0x11,0x39,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0x32,0x2f,0x33,0xed,0x31,0x30,0x13,0x01,0x15,0x01,0x25,0x23,0x35,0x33,0x25,0x23,0x35,0x33,0x05,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xa1, +0xa1,0xfe,0xa5,0xa1,0xa1,0x06,0xd3,0x01,0x5e,0x6c,0xfe,0xa2,0x01,0x9d,0x8f,0x9d,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x55,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x22,0x03,0x0f,0x00,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x55,0x00,0x83,0xfe,0xab, +0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x05,0xca,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x27,0x0f,0x53,0x02,0xad,0x04,0x02,0x00,0x07,0x0f,0x50,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x9a,0x05,0xca,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x53,0x00,0x9c,0x04,0x02,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab, +0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x81,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0x9f,0x04,0xb2,0x02,0x26,0x09,0x3e,0x00,0x00, +0x00,0x27,0x0f,0x53,0x02,0xad,0xfd,0xce,0x00,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x9a,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x53,0x00,0x83,0xfd,0xce,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x04,0xb2,0x02,0x26,0x09,0x3e,0x00,0x00, +0x00,0x27,0x0f,0x51,0x02,0xad,0xfe,0xab,0x00,0x07,0x0f,0x50,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x81,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x83,0xfe,0xab,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfe,0x13,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00, +0x01,0x07,0x0a,0x6e,0x02,0xad,0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x2a,0x01,0x2a,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0x13,0x02,0xab,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0x83,0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f, +0x05,0x5a,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0xad,0xfd,0x7e,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x05,0x5a,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0a,0x6d,0x00,0x9c,0xfd,0x7e,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x04,0xda,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x04,0x2a, +0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x04,0xda,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x04,0x2a,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x7c,0x04,0x61,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x03,0xb1,0x00,0x04,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x00,0x31,0x00,0x35,0x00,0x39, +0x00,0x3d,0x00,0x75,0xb9,0x00,0x3a,0x05,0x0a,0xb2,0x3b,0x3b,0x33,0xb8,0x05,0x0a,0xb3,0x32,0x1d,0x32,0x37,0xb8,0x05,0x0a,0xb7,0x36,0x32,0x36,0x32,0x36,0x3f,0x26,0x05,0xbb,0x05,0x0a,0x00,0x16,0x00,0x3c,0x04,0xfb,0xb5,0x2f,0x3b,0x01,0x3b,0x38,0x34,0xbb,0x04,0xfb,0x00,0x36,0x00,0x33,0x04,0xe6,0xb5,0x00,0x1d,0x31,0x03,0x11, +0x23,0xb8,0x04,0xff,0xb2,0x2a,0x0d,0x0a,0xb8,0x04,0xfc,0xb6,0x0e,0x1f,0x11,0x2f,0x11,0x02,0x11,0x00,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x3f,0x33,0xed,0x32,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x06,0x04,0x06,0x06,0x15,0x14, +0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x01,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x13,0x33,0x15,0x23,0x04,0x0c,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7, +0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe,0xf7,0xb5,0xb5,0xfe,0xbe,0xb5,0xb5,0xa1,0xb5,0xb5,0x02,0x01,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a, +0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfd,0x44,0xb3,0xb3,0xb3,0x01,0xc1,0xb3,0x00,0x05,0x00,0x7e,0xfd,0xff,0x05,0x58,0x03,0x54,0x00,0x0d,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x8b,0xb1,0x2b,0x40,0xbb,0x05,0x0a,0x00,0x1b,0x00,0x00,0x05,0x0b,0xb4,0x0b,0x41,0x41,0x0b,0x49, +0xb8,0x05,0x0a,0xb2,0x48,0x48,0x45,0xb8,0x05,0x0a,0xb7,0x44,0x0b,0x44,0x0b,0x44,0x4d,0x34,0x13,0xbb,0x05,0x0a,0x00,0x24,0x00,0x4a,0x04,0xfb,0xb5,0x2f,0x49,0x01,0x49,0x46,0x42,0xbb,0x04,0xfb,0x00,0x44,0x00,0x41,0x04,0xe6,0xb5,0x0e,0x2b,0x3f,0x03,0x1f,0x31,0xb8,0x04,0xff,0xb2,0x38,0x1b,0x18,0xb8,0x04,0xfc,0xb7,0x1c,0x1f, +0x1f,0x2f,0x1f,0x02,0x1f,0x03,0xba,0x04,0xfb,0x00,0x05,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x3f,0x33,0xed,0x32,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0xed,0x11,0x33,0x2f,0x10,0xed,0x39,0xe6,0x32,0x31,0x30,0x01,0x16,0x16,0x33,0x33,0x15,0x23, +0x22,0x2e,0x02,0x27,0x36,0x36,0x27,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x01,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x13,0x33,0x15,0x23,0x04,0x57,0x06,0x74,0x68,0x1f, +0x37,0x4f,0x77,0x52,0x2c,0x04,0x1f,0x3f,0x2b,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe,0xf7,0xb5,0xb5,0xfe,0xbe,0xb5,0xb5,0xa1,0xb5,0xb5,0x01, +0x56,0x68,0x55,0xa7,0x30,0x56,0x74,0x44,0x0b,0x13,0xb3,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfd,0x44,0xb3,0xb3,0xb3,0x01,0xc1,0xb3,0xff,0xff,0xff,0xba, +0xfd,0xc9,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x52,0xfd,0xc9,0x03,0x4a,0x07,0x0f,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x27,0x0f,0x52,0x00,0xab,0xfd,0xce,0x00,0x07,0x0f,0x57,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x52,0xfe,0x13,0x03,0x4a,0x03,0xba,0x02,0x26, +0x09,0x15,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0xab,0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x20,0x01,0x20,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x4e,0x02,0x5e,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x5c,0x00,0xc0,0xfc,0xfa,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x05,0x1f,0x02,0x26,0x09,0x19,0x00,0x00, +0x00,0x07,0x0f,0x56,0x05,0x46,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4,0x05,0x1f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x07,0x0f,0x56,0x02,0xa4,0x03,0x57,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x05,0xa3,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xe4,0x04,0xf3,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad, +0x05,0x20,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x04,0x70,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x3c,0x04,0xe4,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x1d,0x04,0x34,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x04,0xb2,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x04,0x02, +0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x06,0xbb,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xe4,0x04,0xf3,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad,0x06,0x38,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x56,0x04,0x70,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x3c,0x05,0xfc,0x02,0x26,0x08,0xe2,0x00,0x00, +0x00,0x07,0x0f,0x54,0x01,0x1d,0x04,0x34,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0xca,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x56,0x04,0x02,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x06,0xbb,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0xe4,0x04,0xf3,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad, +0x06,0x38,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x04,0x70,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x3c,0x05,0xfc,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x1d,0x04,0x34,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0xca,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x04,0x02, +0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x4b,0x03,0x62,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x51,0x05,0x10,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x49,0x03,0x62,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x0e,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x03,0x62,0x02,0x26,0x09,0x3d,0x00,0x00, +0x00,0x07,0x0f,0x51,0x01,0x0e,0xfe,0xab,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x4b,0x03,0x62,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0x10,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x49,0x03,0x62,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x0e,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02, +0x03,0x62,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x0e,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x06,0xb3,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x90,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0xb3,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x39,0x06,0x03, +0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0xb3,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x07,0xcb,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x90,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x07,0xcb,0x02,0x26,0x08,0xed,0x00,0x00, +0x00,0x07,0x0f,0x53,0x00,0x39,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x07,0xcb,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0xa2,0x06,0x02,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x4b, +0x06,0x02,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xab,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02,0x06,0x02,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xab,0xfd,0xce,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0xf4,0x04,0x79,0x02,0x26,0x09,0x26,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0x03,0xc9, +0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0xf4,0x04,0x79,0x02,0x26,0x08,0xef,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0x03,0xc9,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0xf4,0x02,0xb9,0x02,0x26,0x09,0x26,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0xf4,0x02,0xaf,0x02,0x26,0x08,0xef,0x00,0x00, +0x00,0x07,0x0f,0x50,0x01,0x8f,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xfb,0x04,0xa6,0x04,0xb2,0x02,0x27,0x09,0x5f,0x00,0x00,0x01,0x56,0x00,0x27,0x0f,0x50,0x01,0x9f,0x04,0x02,0x00,0x07,0x0f,0x51,0x01,0x9f,0xfe,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x48,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a, +0xfe,0xab,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x06,0x64,0x02,0x26,0x09,0x5f,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x9f,0x02,0xac,0x00,0x07,0x0f,0x57,0x01,0x9f,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9e,0x07,0xba,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c, +0x04,0x02,0x01,0x07,0x0f,0x57,0x00,0x72,0x05,0x58,0x00,0x0a,0xb4,0x01,0x20,0x18,0x01,0x18,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x05,0x63,0x02,0x26,0x09,0x5f,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x9f,0x02,0xac,0x01,0x07,0x0a,0x6d,0x01,0x9f,0xfd,0x87,0x00,0x0a,0xb4,0x01,0x20,0x22,0x01,0x22,0x00,0x11, +0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x06,0xb9,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c,0x04,0x02,0x01,0x07,0x0a,0x6d,0x00,0x9c,0xfe,0xdd,0x00,0x13,0x40,0x0a,0x02,0x2f,0x1c,0x01,0x1c,0x01,0x20,0x19,0x01,0x19,0x00,0x11,0x5d,0x35,0x11,0x5d,0x35,0x00,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x51, +0x05,0xec,0x02,0x26,0x09,0x25,0x00,0x00,0x00,0x07,0x0f,0x5c,0x02,0xc3,0x00,0x00,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x58,0x05,0xec,0x02,0x26,0x09,0x59,0x00,0x00,0x00,0x07,0x0f,0x5c,0x02,0xc3,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xa5,0x05,0xec,0x02,0x26,0x08,0xee,0x00,0x00,0x00,0x06,0x0f,0x5c,0x17,0x00,0xff,0xff, +0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xec,0x02,0x26,0x09,0x3f,0x00,0x00,0x00,0x06,0x0f,0x5c,0x17,0x00,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0x9e,0x05,0x1f,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0x9e,0x04,0xbc,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x09,0x7e, +0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x05,0x1f,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x07,0x0f,0x52,0x05,0x46,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4,0x05,0x1f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x07,0x0f,0x52,0x02,0xa4,0x03,0x57,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06, +0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xa6,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x5c,0x02,0x18,0x00,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xad,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x5c, +0x02,0x18,0x00,0x00,0x00,0x01,0xff,0x1a,0xfe,0x96,0x00,0xe6,0x00,0x00,0x00,0x0a,0x00,0x15,0x40,0x09,0x03,0x91,0x08,0x00,0x05,0x05,0x01,0x7e,0x00,0x2f,0xf1,0xc2,0x2f,0x00,0x2f,0xd4,0xed,0x31,0x30,0x23,0x33,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0xe6,0xa8,0xb2,0x3f,0x33,0x38,0x42,0x9f,0xb3,0xd3,0x1d,0xa0,0x14,0xc5, +0x00,0x01,0xff,0x1a,0xfe,0x96,0x00,0xe6,0x00,0x35,0x00,0x0a,0x00,0x12,0xb7,0x08,0x91,0x03,0x0a,0x00,0x7e,0x0a,0x06,0x2f,0xd6,0xe1,0x00,0x2f,0xd4,0xed,0x31,0x30,0x37,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0xe6,0xb3,0x9f,0x42,0x38,0x33,0x3f,0xb2,0x35,0xbd,0xe2,0x14,0xa0,0x1d,0x01,0x08,0x00,0x00,0x01,0x01,0x9f, +0xfe,0x80,0x02,0x60,0x00,0x98,0x00,0x05,0x00,0x18,0xb9,0x00,0x01,0x01,0x2c,0xb5,0x04,0x00,0x91,0x05,0x22,0x03,0xb8,0x01,0x30,0x00,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x31,0x30,0x25,0x33,0x11,0x23,0x11,0x23,0x01,0x9f,0xc1,0x9b,0x26,0x98,0xfd,0xe8,0x01,0x80,0x00,0x01,0x01,0xb3,0xfe,0x8a,0x02,0x4d,0x00,0x8b,0x00,0x05,0x00,0x18, +0xb9,0x00,0x01,0x01,0x2c,0xb5,0x04,0x00,0x95,0x05,0x22,0x03,0xb8,0x01,0x31,0x00,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x31,0x30,0x25,0x33,0x11,0x23,0x11,0x23,0x01,0xb3,0x9a,0x8f,0x0b,0x8b,0xfd,0xff,0x01,0x76,0x00,0x01,0x00,0x14,0x00,0x8b,0x02,0xe8,0x05,0x30,0x00,0x1d,0x00,0x30,0x40,0x17,0x17,0xb1,0x0c,0x00,0xb1,0x05,0x0c,0x05, +0x0c,0x05,0x04,0x01,0x01,0x1f,0x11,0x04,0x0f,0xbe,0x14,0x00,0x04,0xbe,0x03,0x00,0x2f,0xed,0x32,0x2f,0xed,0x01,0x2f,0x33,0x11,0x33,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x21,0x15,0x21,0x35,0x33,0x34,0x37,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x07,0x06,0x07,0x06,0x01,0x89,0x01,0x2f,0xfd,0x5c,0xd2,0x26,0x26,0x6e,0x6a,0x38,0x97,0x7e,0x8f,0x82,0x84,0x9c,0xc2,0xea,0x4f,0x81,0x50,0x20,0x1f,0x01,0x20,0x95,0x95,0x84,0x50,0x51,0x6c,0x69,0x6e,0x3e,0x5f,0x80,0x4c,0x97,0x40,0xc8,0x98,0x5b,0x9f,0x7b,0x4d,0x42,0x40,0x00,0x00,0x03,0x00,0x1c,0x00,0x00,0x04,0x2f,0x05,0x9a, +0x00,0x13,0x00,0x1f,0x00,0x27,0x00,0x84,0x40,0x0b,0x0c,0x19,0x10,0x06,0x0b,0x0d,0x06,0x4c,0x10,0x7d,0x1d,0xb8,0xff,0xf0,0x40,0x42,0x0b,0x0d,0x06,0x4c,0x1d,0x1d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x7d,0x25,0x08,0x0b,0x0c,0x06,0x4c,0x7f,0x25,0x01,0x25,0x25,0x29,0x00,0x29,0x40,0x0b,0x00,0x4d,0x21,0x17,0x17,0x15,0x19,0x7e,0x00, +0x04,0x00,0x02,0x02,0x00,0x0c,0x14,0x91,0x21,0x18,0x01,0x91,0x04,0x15,0x04,0x21,0x04,0x21,0x04,0x19,0x20,0x91,0x05,0x03,0x19,0x91,0x00,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x39,0x01,0x2f,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0x32,0x2f,0x32,0x2b,0x11,0x12,0x39,0x2f,0x5d, +0x2b,0xe9,0x2b,0x39,0x2f,0x2b,0xe9,0x2b,0x11,0x39,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x04,0x23,0x03,0x15,0x33,0x15,0x23,0x15,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0xbc,0xa0,0xa0,0x01,0x98,0xba,0xda,0x84,0x74,0x91,0xae,0xfe, +0xf8,0xc9,0xfa,0xfc,0xfc,0xe4,0x94,0xa3,0xfe,0xa6,0xc1,0xac,0x8a,0x9e,0xfe,0xed,0x01,0x4f,0x98,0x03,0xb3,0xb6,0x92,0x7a,0xb4,0x26,0x04,0x11,0xb9,0x94,0xb8,0xe4,0x02,0x9c,0xb5,0x98,0xb7,0x8c,0x7a,0xfe,0x02,0x66,0xfe,0x31,0x85,0x79,0xd1,0x00,0x00,0x02,0x00,0x1e,0xff,0xe8,0x05,0x61,0x05,0x9a,0x00,0x12,0x00,0x19,0x00,0x41, +0x40,0x21,0x12,0x10,0x10,0x0e,0x7e,0x16,0x0d,0x0d,0x1b,0x17,0x0a,0x7e,0x09,0x07,0x07,0x05,0x09,0x0d,0x03,0x17,0x12,0x06,0x91,0x0f,0x0b,0x07,0x07,0x09,0x03,0x13,0x91,0x02,0x12,0x00,0x3f,0xed,0x3f,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x3f,0x01,0x2f,0x33,0x33,0x2f,0x10,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x2f,0x32,0x31, +0x30,0x01,0x10,0x21,0x20,0x11,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x15,0x23,0x01,0x20,0x11,0x35,0x21,0x15,0x10,0x04,0xd5,0xfd,0xdf,0xfd,0xf6,0x8c,0x8c,0xa8,0x02,0xdb,0xa8,0x8c,0x8c,0xfd,0xf1,0x01,0x67,0xfd,0x25,0x02,0x44,0xfd,0xa4,0x02,0x45,0x57,0x98,0x02,0x7e,0xfd,0x82,0x02,0x7e,0xfd,0x82,0x98, +0xfd,0xfb,0x01,0xaa,0x5b,0x4c,0xfe,0x47,0xff,0xff,0x00,0x18,0x00,0x00,0x04,0xef,0x05,0x9a,0x00,0x06,0x01,0xb0,0x00,0x00,0xff,0xff,0x00,0x8b,0xff,0x70,0x03,0xb4,0x05,0xf8,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x04,0x96,0x02,0x1b,0x00,0x5e,0x00,0x1b,0x40,0x14,0x20,0x0e,0x30,0x0e,0x02,0x20,0x0d,0x30,0x0d,0x02,0x0f,0x0f, +0x1f,0x0f,0x02,0x0f,0x0c,0x1f,0x0c,0x02,0x00,0x5d,0x5d,0x5d,0x5d,0x00,0xff,0xff,0x00,0x60,0xfe,0xb5,0x03,0xdd,0x05,0x3d,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x04,0x96,0x02,0x3a,0xff,0xa3,0x00,0x0a,0xb4,0x02,0x4f,0x1c,0x01,0x1c,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0x14,0xff,0xe8,0x02,0xbd,0x05,0x9a,0x00,0x14,0x00,0x75, +0x40,0x0d,0x79,0x09,0x01,0x76,0x09,0x01,0x76,0x01,0x01,0x13,0x13,0x11,0x05,0xb8,0xff,0xf0,0x40,0x18,0x0d,0x06,0x4d,0x05,0x05,0x00,0x08,0x0b,0x0d,0x06,0x4c,0x00,0x7e,0x0a,0x0e,0x0a,0x0c,0x0c,0x0a,0x18,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xf6,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xfa,0x40,0x15,0x0b,0x06,0x4d,0x0a,0x0a,0x16,0x15, +0x14,0x0c,0x91,0x11,0x0d,0x0d,0x0f,0x03,0x06,0x06,0x08,0x91,0x03,0x13,0x00,0x3f,0xed,0x32,0x2f,0x3f,0x39,0x2f,0x33,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x2b,0x2b,0x2b,0x33,0x2f,0x11,0x33,0x10,0xe9,0x2b,0x32,0x2f,0x2b,0x32,0x32,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x01,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11, +0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x02,0x2b,0xd8,0xb5,0x54,0x36,0x36,0x56,0xe3,0xd8,0xd8,0xa8,0x92,0x92,0x02,0x02,0xff,0xfe,0xe5,0x18,0xa6,0x27,0x01,0x81,0x81,0x98,0x02,0x81,0xfd,0x7f,0x98,0x00,0x00,0x02,0xff,0x3a,0xfe,0x1e,0x01,0xd4,0x05,0xd9,0x00,0x14,0x00,0x20,0x00,0x7a,0x40,0x28,0x1e,0x62,0x18,0x0a, +0x00,0x18,0x62,0xff,0x30,0x06,0x0a,0x12,0x12,0x11,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x0a,0x0e,0x0a,0x0c,0x0c,0x7f,0x0a,0x01,0x0a,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xfe,0x40,0x19,0x0b,0x06,0x4d,0x0a,0x0a,0x22,0x21,0x1b,0x63,0x15,0x0f,0x14,0x0c,0x95,0x11, +0x0d,0x0d,0x0f,0x0f,0x06,0x06,0x08,0x95,0x03,0x1c,0x00,0x3f,0xed,0x32,0x2f,0x3f,0x39,0x2f,0x33,0xed,0x32,0x10,0xde,0xed,0x11,0x12,0x01,0x39,0x2f,0x2b,0x2b,0x5d,0x33,0x2f,0x11,0x33,0x10,0xe1,0x2b,0x2b,0x2b,0x32,0x32,0x2f,0x10,0xc6,0x2b,0x01,0x10,0xe1,0x31,0x30,0x25,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11, +0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x4a,0xcb,0xbd,0x46,0x42,0x4a,0x42,0xe0,0x8a,0x8a,0xa4,0x8a,0x8a,0x50,0x2c,0x3e,0x3e,0x2c,0x2d,0x3f,0x3f,0x2b,0xfc,0xfe,0xef,0x20,0x99,0x2d,0x01,0x66,0x01,0x9d,0x87,0x01,0xcc,0xfe,0x34,0x87,0x03,0x57,0x3c,0x2e, +0x2e,0x3d,0x3d,0x2e,0x2c,0x3e,0x00,0x02,0x00,0x5e,0xfe,0x96,0x06,0x3d,0x05,0xb2,0x00,0x1b,0x00,0x29,0x00,0x30,0x40,0x19,0x05,0x05,0x01,0x7e,0x25,0x1a,0x0b,0x0b,0x2b,0x1f,0x7d,0x13,0x1b,0x03,0x1c,0x91,0x16,0x04,0x22,0x91,0x10,0x13,0x03,0x91,0x08,0x00,0x2f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33, +0x33,0xed,0x32,0x2f,0x31,0x30,0x01,0x11,0x10,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x35,0x06,0x07,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x17,0x16,0x17,0x35,0x05,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x11,0x35,0x02,0x27,0x26,0x05,0x19,0xb2,0x3f,0x33,0x38,0x42,0x9f,0xb3,0x0c,0x0d,0xa2,0xfe,0xf1,0xfe,0xf6, +0xfe,0xc1,0x01,0x45,0x01,0x19,0x01,0x02,0x9e,0x0b,0x0a,0xfe,0x54,0xc3,0xf4,0xed,0xbf,0xcc,0xeb,0x03,0x6f,0x72,0x05,0x9a,0xfa,0x9b,0xfe,0xf8,0x1d,0xa0,0x14,0xe2,0xbd,0xa0,0x11,0x10,0xcc,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0xc8,0x0e,0x0f,0xcd,0x80,0xfe,0xba,0xfe,0xf7,0xfe,0xf7,0xfe,0xbd,0x01,0x34,0x01,0x15,0x0e,0x01, +0x12,0x97,0x9b,0x00,0x00,0x02,0x00,0x60,0xfe,0x96,0x05,0x34,0x04,0x18,0x00,0x1d,0x00,0x2e,0x00,0x2c,0x40,0x17,0x27,0x83,0x12,0x02,0x02,0x1c,0x84,0x1e,0x1a,0x0a,0x1a,0x0f,0x23,0x95,0x16,0x10,0x2b,0x95,0x0e,0x16,0x00,0xec,0x05,0x00,0x2f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0x01,0x2f,0x33,0x33,0xed,0x32,0x2f,0x2f,0xed,0x31,0x30, +0x05,0x32,0x37,0x15,0x06,0x23,0x22,0x27,0x26,0x26,0x35,0x35,0x23,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x10,0x03,0x35,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x04,0xc2,0x3e,0x34,0x39,0x41,0x9f,0x5a,0x2d,0x28,0x04,0x72,0xee,0xc1,0x74,0x73,0x80, +0x80,0xd5,0xd3,0x60,0x04,0xa4,0xa4,0x52,0x53,0x7d,0x96,0x56,0x56,0x52,0x53,0x8b,0x89,0x55,0x56,0xd3,0x1d,0xa0,0x14,0x71,0x39,0x96,0x5f,0x79,0xc6,0x89,0x89,0xee,0xfd,0x9a,0x99,0xa6,0x8e,0xfc,0x35,0xfe,0xf8,0x02,0xa2,0x97,0x7d,0x55,0x56,0x6e,0x6e,0xc2,0xb1,0x67,0x66,0x63,0x64,0x00,0x00,0x02,0x00,0x1c,0x00,0x00,0x04,0xc0, +0x05,0x9a,0x00,0x20,0x00,0x2b,0x00,0xb0,0x40,0x32,0x75,0x13,0x01,0x76,0x12,0x01,0x39,0x02,0x01,0x0e,0x1b,0x22,0x91,0x0b,0x08,0x08,0x0a,0x21,0x91,0x0f,0x03,0x01,0x0a,0x1b,0x09,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x28,0x7d,0x15,0x79,0x02,0x01,0x7a,0x01,0x01,0x02,0xb8,0xff,0xe8,0xb4, +0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe8,0x40,0x28,0x0b,0x0d,0x01,0x4c,0x01,0x1c,0x02,0x15,0x04,0x70,0x00,0x01,0x00,0x08,0x0d,0x06,0x4d,0x00,0x2d,0x22,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x0e,0x0d,0x09,0x7e,0x0a,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xfa,0xb3,0x0c,0x06, +0x4d,0x0a,0xb8,0xff,0xfa,0xb3,0x0b,0x06,0x4d,0x0a,0x2f,0x2b,0x2b,0x2b,0xe1,0x33,0x33,0x2b,0x2b,0x2b,0x32,0x10,0xc6,0x2b,0x5d,0x17,0x32,0x2b,0x2b,0x5d,0x5d,0x2f,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x00,0x2f,0x33,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0x39,0x32,0x31,0x30,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x03,0x2e,0x03,0x23,0x23,0x11, +0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x17,0x01,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x04,0xc0,0xc8,0xf0,0x21,0x3e,0x41,0x4b,0x2f,0x8a,0xa8,0xa0,0xa0,0x01,0xac,0x5e,0x9f,0x75,0x42,0x2d,0x53,0x75,0x49,0x24,0x35,0x30,0x2f,0x1d,0xfd,0xb1,0xe4,0x3f,0x6b,0x4e,0x2c, +0x95,0x8d,0x01,0x92,0x38,0x4f,0x32,0x17,0xfd,0x9e,0x02,0x62,0x98,0x02,0xa0,0x2f,0x60,0x8f,0x60,0x4b,0x7d,0x62,0x45,0x13,0x04,0x10,0x29,0x38,0x47,0x2f,0x03,0x53,0xfd,0xf8,0x26,0x47,0x67,0x40,0x73,0x81,0x00,0x01,0x00,0x1c,0x00,0x00,0x02,0xbc,0x04,0x12,0x00,0x18,0x00,0x3f,0x40,0x1f,0x00,0x00,0x1a,0x11,0x06,0x0a,0x84,0x0b, +0x0f,0x0b,0x0d,0x0d,0x0b,0x09,0x0c,0xec,0x06,0x0f,0x0f,0x0b,0x16,0x12,0x00,0x00,0x02,0x16,0x10,0x10,0x0f,0x0b,0x15,0x00,0x3f,0x3f,0x3f,0xcd,0x32,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0x32,0x11,0x39,0x2f,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x15,0x21,0x15,0x21,0x11, +0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x02,0xbc,0x2b,0x51,0x69,0x8d,0x01,0x16,0xfe,0xea,0xa4,0x8a,0x8a,0xa4,0x04,0x23,0x90,0x59,0x40,0x22,0x03,0x5a,0x21,0xc6,0xab,0x23,0x98,0xfe,0xb1,0x01,0x4f,0x98,0x02,0x19,0xd3,0x6c,0x79,0x0e,0x00,0x02,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x00,0x11, +0x00,0x19,0x00,0x68,0x40,0x34,0x18,0x10,0x14,0x11,0x11,0x00,0x0f,0x19,0x0e,0x14,0x14,0x07,0x04,0x01,0x00,0x06,0x7e,0x0c,0x09,0x07,0x07,0x0d,0x00,0x02,0x02,0x00,0x00,0x1b,0x0e,0x0d,0x0b,0x0b,0x0d,0x19,0x04,0x0a,0x91,0x0f,0x01,0x0b,0x0b,0x11,0x11,0x14,0x05,0x08,0x03,0x07,0x0d,0x03,0x07,0x12,0x00,0x3f,0x3f,0x12,0x17,0x39, +0x33,0x11,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x33,0x2f,0x11,0x33,0x11,0x33,0x2f,0x33,0x2f,0x11,0x12,0x39,0x2f,0x39,0x39,0xed,0x11,0x39,0x39,0x11,0x39,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x03,0x33,0x15,0x23,0x03,0x11,0x23,0x11,0x03,0x23,0x35,0x33,0x03,0x33,0x13,0x21,0x13,0x01,0x16, +0x17,0x33,0x36,0x37,0x37,0x21,0x04,0x60,0x8b,0x7a,0xc9,0xff,0xa8,0xfa,0xc9,0x7c,0x86,0xbf,0x83,0x01,0xd0,0x8a,0xfe,0x64,0x06,0x1d,0x03,0x0a,0x1c,0x78,0xfe,0xc9,0x05,0x9a,0xfe,0xf7,0x98,0xfe,0x19,0xfd,0xee,0x02,0x0e,0x01,0xeb,0x98,0x01,0x09,0xfe,0xf7,0x01,0x09,0xfd,0x78,0x0c,0x4c,0x22,0x36,0xe7,0x00,0x00,0x02,0x00,0x0e, +0xfe,0x1e,0x03,0xd5,0x04,0x00,0x00,0x18,0x00,0x20,0x00,0x66,0x40,0x35,0x1f,0x17,0x18,0x18,0x00,0x20,0x16,0x1b,0x15,0x01,0x04,0x05,0x1b,0x0f,0x10,0x13,0x07,0x00,0x0a,0x0a,0x14,0x00,0x02,0x02,0x00,0x00,0x22,0x15,0x14,0x12,0x12,0x14,0x20,0x04,0x11,0x96,0x16,0x01,0x12,0x12,0x21,0x18,0x14,0x0f,0x1b,0x05,0x0f,0x0a,0x0a,0x0c, +0x95,0x07,0x1c,0x00,0x3f,0xed,0x32,0x2f,0x2f,0x33,0x33,0x3f,0x33,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x33,0x2f,0x11,0x33,0x11,0x33,0x2f,0x33,0x2f,0x11,0x12,0x39,0x2f,0x12,0x17,0x39,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x39,0x39,0x31,0x30,0x01,0x03,0x33,0x15,0x23,0x01,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32, +0x37,0x37,0x03,0x23,0x35,0x33,0x03,0x33,0x13,0x21,0x13,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x21,0x03,0xd5,0x8b,0x79,0xae,0xfe,0xe9,0x7e,0xe4,0x40,0x2b,0x35,0x2c,0x7c,0x3e,0x52,0xd3,0xae,0x79,0x88,0xb6,0x7a,0x01,0x6c,0x81,0xfe,0xae,0x05,0x10,0x06,0x05,0x0f,0x71,0xfe,0xf4,0x04,0x00,0xfe,0xa3,0x86,0xfd,0x3f,0xfe,0xc2,0x0d, +0x93,0x12,0x94,0xc2,0x02,0x1b,0x86,0x01,0x5d,0xfe,0xa3,0x01,0x5d,0xfc,0xec,0x0f,0x3f,0x18,0x34,0x01,0x33,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x6c,0x04,0x18,0x02,0x06,0x07,0x72,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x78,0xfc,0xe6,0x00,0x1b, +0x40,0x14,0x01,0x0f,0x1c,0x1f,0x1c,0x02,0x3f,0x1c,0x6f,0x1c,0x70,0x1c,0x8f,0x1c,0xcf,0x1c,0xdf,0x1c,0x06,0x1c,0x00,0x11,0x5d,0x71,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x6c,0x04,0x18,0x02,0x26,0x07,0x72,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0xb5,0xfc,0xe6,0x00,0x1b,0x40,0x14,0x01,0x0f,0x1c,0x1f,0x1c,0x02,0x3f,0x1c, +0x6f,0x1c,0x70,0x1c,0x8f,0x1c,0xcf,0x1c,0xdf,0x1c,0x06,0x1c,0x00,0x11,0x5d,0x71,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x01,0x4a,0x05,0xec,0x02,0x06,0x00,0x4f,0x00,0x00,0xff,0xff,0x00,0x29,0xfe,0x96,0x03,0xf6,0x05,0x9a,0x02,0x26,0x02,0xb9,0x00,0x00,0x01,0x07,0x08,0x5c,0x01,0x78,0x00,0x00,0x00,0x09,0xb3,0x01,0x1a,0x1a, +0x06,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0x1e,0xfe,0x96,0x03,0x29,0x04,0x00,0x02,0x26,0x02,0xba,0x00,0x00,0x01,0x07,0x08,0x5c,0x01,0x56,0x00,0x00,0x00,0x09,0xb3,0x01,0x1a,0x1a,0x06,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0x1a,0xfe,0x96,0x04,0xda,0x05,0x9a,0x00,0x26,0x00,0x3b,0x00,0x00,0x00,0x07,0x08,0x5c,0x04,0x03, +0x00,0x00,0xff,0xff,0x00,0x1a,0xfe,0x96,0x03,0xc6,0x04,0x00,0x00,0x26,0x00,0x5b,0x00,0x00,0x00,0x07,0x08,0x5c,0x02,0xef,0x00,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x00,0x1b,0x00,0x9b,0xb9,0x00,0x16,0xff,0xe0,0x40,0x11,0x0b,0x0d,0x01,0x4c,0x0f,0x20,0x0b,0x0d,0x01,0x4c,0x08,0x20,0x0b,0x0d,0x01,0x4c,0x01, +0xb8,0xff,0xe0,0x40,0x0a,0x0b,0x0d,0x01,0x4c,0x16,0x08,0x0c,0x00,0x4d,0x0f,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x00,0x4d,0x0a,0x10,0x0b,0x00,0x4d,0x08,0xb8,0xff,0xf8,0x40,0x1d,0x0c,0x00,0x4d,0x01,0x08,0x0c,0x00,0x4d,0x0a,0x18,0x0d,0x1b,0x04,0x0e,0x19,0x19,0x17,0x00,0x10,0x0b,0x00,0x4d,0x00,0x00,0x1d,0x0b,0x0b,0x0e,0x09,0xb8, +0xff,0xf0,0x40,0x16,0x0b,0x00,0x4d,0x09,0x1b,0x04,0x0b,0x91,0x18,0x12,0x2f,0x0c,0x01,0x0c,0x0c,0x08,0x16,0x0f,0x03,0x01,0x08,0x12,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x2b,0xc6,0x33,0x2f,0x11,0x33,0x2f,0x2b,0xc6,0x33,0x2f,0x11,0x17,0x39,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x2b,0x21,0x23,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x21,0x35,0x21,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x21,0x15,0x21,0x04,0x9a,0xcd,0xfe,0xb6,0x0f,0x12,0x04,0x0a,0x18,0xfe,0xac,0xce,0x01,0xb2,0xfe,0x66,0x01,0x94,0xfe,0x7a,0xce,0x01,0x25,0x1d,0x16,0x04,0x20,0x18,0x01,0x31,0xc1,0xfe, +0x71,0x01,0x8b,0xfe,0x6d,0x02,0x25,0x19,0x2e,0x17,0x30,0xfd,0xdb,0x02,0x8d,0x98,0x02,0x75,0xfe,0x08,0x32,0x32,0x42,0x26,0x01,0xf4,0xfd,0x8b,0x98,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0x92,0x04,0x00,0x00,0x19,0x00,0x4e,0x40,0x2f,0x0d,0x0a,0x18,0x01,0x04,0x02,0x09,0x02,0x00,0x17,0x09,0x0c,0x0b,0x0e,0x13,0x0d,0x19,0x96, +0x0a,0x06,0x0f,0x00,0x1f,0x00,0x4f,0x00,0x5f,0x00,0x04,0x2f,0x00,0x3f,0x00,0x6f,0x00,0x7f,0x00,0x04,0x00,0x00,0x03,0x0f,0x16,0x15,0x08,0x03,0x0f,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x71,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x33,0x33,0x33,0x2f,0x33,0x33,0x11,0x12,0x17,0x39,0x31,0x30,0x13,0x21,0x01,0x33,0x13,0x16, +0x17,0x33,0x01,0x33,0x01,0x21,0x15,0x21,0x01,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x01,0x21,0x28,0x01,0x21,0xfe,0xe0,0xbf,0xc6,0x16,0x15,0x04,0x01,0x00,0xb5,0xfe,0xd4,0x01,0x1e,0xfe,0xe3,0x01,0x25,0xbf,0xc9,0x13,0x1a,0x04,0x05,0x2a,0xcd,0xbd,0x01,0x31,0xfe,0xdd,0x02,0x3d,0x01,0xc3,0xfe,0xa2,0x27,0x29,0x01,0xae, +0xfe,0x3d,0x86,0xfe,0x49,0x01,0x4c,0x1f,0x2f,0x09,0x45,0xfe,0xb4,0x01,0xb7,0x00,0xff,0xff,0x00,0x70,0xff,0xe8,0x03,0xf4,0x05,0xb2,0x02,0x06,0x04,0xbf,0x00,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x04,0x19,0x02,0x06,0x01,0x31,0x00,0x00,0xff,0xff,0x00,0x10,0xfe,0x96,0x04,0xa4,0x05,0x9a,0x02,0x26,0x01,0xf2,0x00,0x00, +0x01,0x07,0x04,0x80,0x03,0xbe,0x00,0x00,0x00,0x09,0xb3,0x01,0x1d,0x1d,0x01,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0x10,0xfe,0x96,0x03,0x92,0x04,0x00,0x02,0x26,0x02,0x12,0x00,0x00,0x01,0x07,0x04,0x80,0x02,0xac,0x00,0x00,0x00,0x09,0xb3,0x01,0x19,0x19,0x01,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0x3e,0x04,0xc2,0x03,0x75, +0x06,0x0a,0x00,0x26,0x00,0xd9,0x00,0x00,0x00,0x07,0x00,0x8e,0x01,0x69,0x00,0x00,0xff,0xff,0x00,0x3f,0x04,0xc2,0x03,0x75,0x06,0x0a,0x00,0x27,0x00,0xd9,0x01,0x3b,0x00,0x00,0x00,0x06,0x00,0x43,0xed,0x00,0xff,0xff,0x00,0x3e,0x03,0xe8,0x03,0x68,0x05,0x30,0x00,0x26,0x00,0xd9,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x91,0xff,0x26, +0x00,0x0a,0xb3,0x01,0x06,0x06,0x02,0x00,0x10,0x3c,0x11,0x35,0xff,0xff,0x00,0x3f,0x03,0xe8,0x03,0x68,0x05,0x30,0x00,0x27,0x00,0xd9,0x01,0x2e,0x00,0x00,0x01,0x07,0x00,0x8e,0xff,0xb8,0xff,0x26,0x00,0x0a,0xb3,0x01,0x07,0x07,0x02,0x00,0x10,0x3c,0x11,0x35,0xff,0xff,0x00,0x3f,0x04,0x83,0x03,0xd0,0x05,0xcb,0x00,0x26,0x00,0x43, +0xed,0xc1,0x00,0x27,0x00,0x8e,0x00,0xbd,0xff,0xc1,0x00,0x07,0x00,0x43,0x01,0xf9,0xff,0xc1,0xff,0xff,0x00,0x3f,0x04,0x83,0x03,0xd0,0x05,0xcb,0x00,0x26,0x00,0x8e,0xb8,0xc1,0x00,0x27,0x00,0x43,0x00,0xf3,0xff,0xc1,0x00,0x07,0x00,0x8e,0x01,0xc4,0xff,0xc1,0xff,0xff,0x00,0x66,0xfd,0xfe,0x01,0xa8,0x00,0x2c,0x00,0x07,0x06,0x79, +0x00,0x00,0xfb,0x64,0x00,0x01,0x00,0x77,0x04,0x09,0x02,0x30,0x06,0x83,0x00,0x06,0x00,0x0d,0xb3,0x00,0x01,0x03,0x00,0x00,0x2f,0xce,0x01,0x2f,0xcd,0x31,0x30,0x01,0x25,0x35,0x25,0x15,0x05,0x05,0x02,0x30,0xfe,0x47,0x01,0xb9,0xfe,0xb6,0x01,0x4a,0x04,0x09,0xdd,0xc0,0xdd,0x7c,0xc1,0xc1,0x00,0x02,0x00,0xdb,0xfe,0x05,0x04,0x57, +0x00,0x1b,0x00,0x06,0x00,0x0d,0x00,0x2c,0x40,0x17,0x07,0x0a,0x05,0x40,0x06,0x80,0x0a,0x01,0x0a,0x80,0x30,0x09,0x40,0x09,0x02,0x09,0x09,0x03,0xc0,0x2f,0x06,0x01,0x06,0x00,0x2f,0x5d,0x1a,0xce,0x33,0x2f,0x5d,0x1a,0xcd,0x5d,0x01,0x2f,0x1a,0xcd,0x2f,0xcc,0x31,0x30,0x13,0x37,0x27,0x35,0x05,0x15,0x05,0x01,0x03,0x23,0x03,0x33, +0x17,0x37,0xdb,0xc8,0xc8,0x01,0x37,0xfe,0xc9,0x03,0x7c,0xab,0xc0,0xab,0x7c,0x8f,0x8f,0xfe,0x81,0x8f,0x8f,0x7c,0xab,0xc0,0xab,0x01,0x94,0xfe,0xc9,0x01,0x37,0xc8,0xc8,0x00,0x00,0x04,0x00,0x35,0xff,0xf5,0x05,0xae,0x05,0x9a,0x00,0x07,0x00,0x0a,0x00,0x40,0x00,0x44,0x00,0x8e,0x40,0x0f,0x08,0x02,0x01,0x09,0x01,0x0a,0x03,0x04, +0x09,0x04,0x2c,0x13,0x3b,0x25,0x27,0xb8,0x01,0x0e,0x40,0x0c,0x0f,0x22,0x3f,0x22,0x5f,0x22,0x6f,0x22,0x04,0x22,0x0b,0x10,0xb8,0x01,0x0e,0xb3,0x3b,0x02,0x08,0x03,0xb8,0x01,0x0e,0xb7,0x0a,0x0a,0x06,0x05,0x43,0x44,0x09,0x06,0xbc,0x01,0x06,0x00,0x01,0x01,0x0a,0x00,0x05,0x01,0x0a,0xb3,0x41,0x43,0x0b,0x2c,0xb8,0x01,0x0c,0xb2, +0x1d,0x25,0x36,0xb8,0x01,0x0c,0x40,0x09,0x13,0x13,0x46,0x0a,0x08,0x05,0x00,0x00,0x05,0x2f,0x33,0x2f,0x12,0x39,0x39,0x11,0x33,0x2f,0xed,0x32,0xd4,0xed,0x33,0x2f,0x2f,0x00,0x3f,0x3f,0x3f,0x33,0x33,0x2f,0x11,0x12,0x39,0x2f,0xed,0x33,0x32,0x2f,0xed,0x32,0x2f,0x5d,0xed,0x32,0x12,0x39,0x39,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0, +0x10,0x87,0xc0,0xc0,0x01,0x23,0x27,0x21,0x07,0x23,0x01,0x33,0x13,0x03,0x03,0x01,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x01,0x01,0x23,0x01,0x02,0xd3,0x83, +0x49,0xfe,0xf7,0x46,0x83,0x01,0x17,0x6f,0x23,0x5d,0x5a,0x02,0xbe,0x17,0x36,0x37,0x34,0x15,0x3b,0x46,0x17,0x29,0x37,0x20,0x26,0x42,0x32,0x1c,0x2d,0x49,0x5d,0x30,0x6a,0x3e,0x59,0x57,0x18,0x2e,0x24,0x16,0x13,0x24,0x34,0x20,0x24,0x46,0x37,0x21,0x29,0x46,0x5e,0x35,0x1a,0x38,0x35,0x2f,0x11,0x01,0x4d,0xfc,0xa6,0x90,0x03,0x5b, +0x02,0xc0,0xc2,0xc2,0x02,0xd9,0xfe,0x59,0x01,0x01,0xfe,0xff,0xfc,0xc8,0x14,0x1f,0x16,0x0c,0x2d,0x2b,0x17,0x23,0x1f,0x1d,0x10,0x14,0x27,0x32,0x3f,0x2b,0x35,0x4c,0x32,0x18,0x20,0x8b,0x3b,0x09,0x14,0x20,0x17,0x15,0x21,0x1d,0x1c,0x10,0x13,0x2b,0x35,0x40,0x29,0x38,0x4f,0x33,0x17,0x07,0x0d,0x12,0x0b,0x05,0x74,0xfa,0x66,0x05, +0x9a,0x00,0x00,0x01,0x00,0x48,0x00,0x00,0x03,0x0c,0x04,0x01,0x00,0x09,0x00,0x2d,0x40,0x16,0x07,0x84,0x06,0x02,0x06,0x03,0x06,0x03,0x06,0x0b,0x00,0x02,0x95,0x05,0x05,0x06,0x01,0x95,0x08,0x15,0x06,0x0f,0x00,0x3f,0x3f,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x31,0x30,0x37,0x21,0x11, +0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x48,0x02,0x21,0xfe,0x34,0x01,0xcc,0xa3,0xfd,0x3c,0x8a,0x01,0x5d,0x8c,0x01,0x8e,0xfb,0xff,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x6c,0x04,0x18,0x02,0x06,0x07,0x72,0x00,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x03,0xa4,0x05,0x9a,0x00,0x15,0x00,0x86,0xb9,0x00,0x15,0xff,0xf0,0xb3,0x10,0x06, +0x4d,0x15,0xb8,0xff,0xf0,0xb4,0x0b,0x0d,0x06,0x4c,0x15,0xb8,0xff,0xe8,0xb3,0x0a,0x06,0x4d,0x15,0xb8,0xff,0xe0,0xb3,0x09,0x06,0x4d,0x15,0xb8,0xff,0xc0,0x40,0x32,0x0a,0x1f,0x48,0x15,0x15,0x17,0x01,0x0e,0x11,0x11,0x10,0x0c,0x14,0x7e,0x01,0x07,0x03,0x03,0x09,0x05,0x01,0x13,0x02,0x91,0x05,0x10,0x05,0x0f,0x06,0x91,0x09,0x0c, +0x09,0x2f,0x09,0x6f,0x09,0x7f,0x09,0x03,0x05,0x09,0x05,0x09,0x0a,0x03,0x14,0x91,0x01,0x12,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0x33,0x33,0x33,0x2f,0x33,0x10,0xed,0x32,0x32,0x32,0x2f,0x33,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x21,0x21, +0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x21,0x03,0xa4,0xfd,0x18,0xa0,0xa0,0xa0,0xa0,0xa8,0x01,0x2e,0xfe,0xd2,0x01,0x2e,0xfe,0xd2,0x02,0x40,0x01,0xda,0x98,0x9e,0x98,0x01,0xf2,0xfe,0x0e,0x98,0x9e,0x98,0xfe,0xbe,0x00,0x00,0x01,0x00,0x14,0x00,0x00,0x02,0x36,0x05,0xec, +0x00,0x13,0x00,0x51,0x40,0x2d,0x08,0x03,0x03,0x01,0x0e,0x12,0x12,0x00,0x84,0x09,0x05,0x01,0x0f,0x07,0x96,0x08,0x0c,0x08,0x13,0x03,0x96,0x04,0x10,0x04,0x0f,0x08,0x1f,0x08,0x3f,0x08,0x03,0x6f,0x04,0x8f,0x04,0x02,0x08,0x04,0x08,0x04,0x01,0x0a,0x00,0x01,0x15,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x11,0x33,0x10, +0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0x33,0x33,0xed,0x32,0x2f,0x33,0x11,0x33,0x2f,0x33,0x31,0x30,0x21,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x01,0x77,0xa4,0xbf,0xbf,0xbf,0xbf,0xa4,0xbf,0xbf,0xbf,0xbf,0x01,0xe1,0x86,0x92,0x86,0x02,0x6d,0xfd,0x93,0x86,0x92, +0x86,0x00,0xff,0xff,0x00,0x27,0x00,0x00,0x03,0xf9,0x05,0x9a,0x00,0x26,0x00,0x2f,0x55,0x00,0x00,0x07,0x00,0xd8,0x00,0x04,0xfd,0x66,0x00,0x02,0x00,0x1c,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x0e,0x00,0x1a,0x00,0x51,0x40,0x29,0x12,0x12,0x14,0x0b,0x7d,0x18,0x18,0x1c,0x02,0x10,0x14,0x14,0x00,0x01,0x7e,0x02,0x06,0x02,0x04,0x04, +0x02,0x00,0x91,0x14,0x13,0x03,0x91,0x06,0x10,0x06,0x14,0x06,0x14,0x06,0x02,0x0f,0x91,0x07,0x03,0x02,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x01,0x2f,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x31,0x30,0x01,0x11,0x23,0x11,0x23, +0x35,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x15,0x21,0x15,0x21,0x15,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0xa8,0xa0,0xa0,0x01,0x8a,0xe6,0xfd,0xfe,0xe7,0xef,0xbd,0x01,0x24,0xfe,0xdc,0xb0,0xae,0xb7,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x03,0x8a,0x98,0x01,0x78,0xe0,0xcc,0xcc,0xfe,0xfc,0x02,0xe4,0xe0,0x98,0xd4,0x9f, +0x91,0x01,0x1c,0x00,0xff,0xff,0x00,0xbc,0xfe,0x96,0x04,0xc0,0x05,0x9a,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x0a,0xbb,0x01,0xa2,0x00,0x00,0x00,0x09,0xb3,0x02,0x29,0x29,0x09,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0xb5,0x03,0x95,0x05,0x3d,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x04,0x96,0x02,0x03,0xff,0xa3, +0x00,0x0a,0xb4,0x02,0x4f,0x1f,0x01,0x1f,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xb5,0xff,0x12,0x02,0xd7,0x05,0x9a,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x04,0x96,0x01,0x45,0x00,0x00,0x00,0x0a,0xb4,0x01,0x4f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xbc,0xfe,0x80,0x05,0xb2,0x05,0x9a,0x02,0x06,0x02,0xc1,0x00,0x00, +0xff,0xff,0x00,0xa6,0xfe,0x8a,0x04,0x92,0x05,0xec,0x00,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x0a,0xbe,0x02,0x45,0x00,0x00,0x00,0x09,0xb3,0x01,0x12,0x12,0x00,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x80,0x04,0xdd,0x05,0x9a,0x00,0x26,0x00,0x2e,0x00,0x00,0x00,0x07,0x0a,0xbd,0x02,0x7d,0x00,0x00,0xff,0xff,0x00,0xa6, +0xfe,0x8a,0x04,0x0c,0x05,0xec,0x00,0x26,0x00,0x4e,0x00,0x00,0x00,0x07,0x0a,0xbe,0x01,0xbf,0x00,0x00,0xff,0xff,0x00,0x21,0xfe,0x80,0x04,0xb6,0x05,0x9a,0x00,0x26,0x00,0x3d,0x00,0x00,0x00,0x07,0x0a,0xbd,0x02,0x56,0x00,0x00,0xff,0xff,0x00,0x21,0xfe,0x8b,0x03,0xbd,0x04,0x00,0x00,0x26,0x00,0x5d,0x00,0x00,0x00,0x07,0x0a,0xbe, +0x01,0x70,0x00,0x01,0x00,0x02,0x00,0x4b,0x00,0x00,0x04,0x3a,0x04,0x23,0x00,0x21,0x00,0x2d,0x00,0x5c,0x40,0x2e,0x0a,0xef,0x1c,0x1f,0x1b,0x00,0x1b,0x0f,0x2b,0x28,0x1a,0x13,0x13,0x19,0x22,0x22,0x00,0x18,0x19,0x19,0x2f,0x28,0xef,0x00,0x1e,0x1e,0x00,0x1f,0x2b,0x1e,0x25,0x1e,0x1c,0x0f,0x05,0x1d,0x1d,0x13,0x1b,0x15,0x18,0x0f, +0x25,0x95,0x05,0x10,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x39,0x2f,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x11,0x33,0x11,0x33,0x12,0x39,0x2f,0x12,0x39,0x11,0x33,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0xed,0x31,0x30,0x13,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x13,0x16,0x16, +0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x23,0x01,0x07,0x27,0x37,0x26,0x26,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0x95,0x26,0x41,0x53,0x2d,0x2c,0x52,0x3e,0x25,0x1d,0x37,0x50,0x32,0x9f,0x14,0x18,0x07,0x04,0x05,0x10,0x0b,0x01,0x10,0xad,0xfe,0x68,0x9a,0xfe,0xf9,0x7a,0x3c,0x7b,0x15,0x1c,0x01,0x31,0x26, +0x24,0x1e,0x31,0x0f,0x10,0x3f,0x3b,0x03,0x3f,0x3c,0x56,0x37,0x1b,0x1a,0x33,0x4d,0x32,0x31,0x4f,0x43,0x3a,0x1d,0xfe,0xd2,0x26,0x42,0x1e,0x26,0x46,0x1f,0x02,0xec,0xfc,0x00,0x01,0xf6,0x41,0x7a,0x3e,0x31,0x68,0x43,0x24,0x2f,0x2f,0x35,0x24,0x3f,0x23,0x23,0x46,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xfa,0x05,0x9a,0x00,0x07, +0x00,0x22,0x40,0x10,0x07,0x03,0x7e,0x04,0x01,0x01,0x04,0x02,0x91,0x07,0x07,0x04,0x05,0x03,0x04,0x12,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x31,0x30,0x01,0x15,0x21,0x11,0x23,0x11,0x33,0x11,0x03,0xfa,0xfd,0x6a,0xa8,0xa8,0x03,0x25,0x97,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x00,0x00,0x01,0x00,0xa6, +0x00,0x00,0x03,0x04,0x04,0x00,0x00,0x07,0x00,0x22,0x40,0x10,0x07,0x03,0x84,0x04,0x00,0x00,0x04,0x02,0x95,0x07,0x07,0x04,0x05,0x0f,0x04,0x15,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x31,0x30,0x01,0x15,0x21,0x11,0x23,0x11,0x33,0x11,0x03,0x04,0xfe,0x46,0xa4,0xa4,0x02,0x5c,0x8b,0xfe,0x2f,0x04, +0x00,0xfe,0x5c,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x05,0x38,0x04,0x18,0x00,0x15,0x00,0x1f,0x00,0x35,0xb9,0x00,0x1f,0x01,0x2e,0x40,0x18,0x0e,0x07,0x0e,0x07,0x04,0x13,0x83,0x1a,0x1a,0x21,0x09,0x83,0x04,0x1d,0x95,0x10,0x10,0x07,0x0f,0x16,0x0d,0x95,0x01,0x16,0x00,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f, +0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x05,0x23,0x22,0x00,0x35,0x10,0x37,0x33,0x06,0x11,0x14,0x16,0x33,0x33,0x11,0x10,0x21,0x32,0x12,0x15,0x14,0x00,0x25,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x15,0x03,0x36,0xd2,0xec,0xfe,0xe8,0xd2,0xc2,0xec,0xbf,0x9b,0x1e,0x01,0x12,0xbc,0xea,0xfe,0xe7,0xfe,0xf5,0x22,0x98,0xc2, +0x93,0x67,0x82,0x18,0x01,0x20,0xf6,0x01,0x3b,0xc7,0xd8,0xfe,0xd2,0xb8,0xce,0x02,0x95,0x01,0x0f,0xfe,0xd7,0xfb,0xe9,0xfe,0xdd,0x8c,0xd3,0xb5,0xb4,0xdc,0x81,0x00,0x00,0x02,0x00,0xaf,0x03,0xf9,0x02,0x48,0x05,0xf5,0x00,0x03,0x00,0x0f,0x00,0x22,0xb3,0x0d,0xc0,0x07,0x01,0xb8,0x01,0x32,0x40,0x09,0x02,0x0a,0xc1,0x04,0x04,0x02, +0x03,0x03,0x02,0x00,0x2f,0x33,0x2f,0x11,0x33,0x2f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x48,0x6d,0xc9,0x28,0x3b,0x3a,0x29,0x29,0x39,0x39,0x05,0xf5,0xfe,0x04,0x01,0xfc,0xfe,0xa0,0x39,0x2a,0x28,0x38,0x37,0x29,0x29,0x3a,0x00,0x00,0x02, +0x00,0xaf,0x03,0xfd,0x02,0xa0,0x05,0xee,0x00,0x13,0x00,0x17,0x00,0x28,0x40,0x14,0x14,0x14,0x16,0x16,0x0c,0xc0,0x02,0x07,0xc1,0x0f,0x11,0x1f,0x11,0x02,0x11,0x11,0x15,0x17,0x17,0x15,0x00,0x2f,0x33,0x2f,0x11,0x33,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x33,0x2f,0x33,0x2f,0x31,0x30,0x13,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02, +0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x25,0x01,0x27,0x01,0xcc,0x1d,0x0f,0x19,0x24,0x15,0x15,0x24,0x1b,0x10,0x11,0x1b,0x25,0x13,0x12,0x24,0x01,0xc6,0xfe,0x99,0x4d,0x01,0x67,0x05,0x47,0x1d,0x29,0x13,0x24,0x1a,0x10,0x11,0x1c,0x23,0x13,0x14,0x23,0x1a,0x10,0x0f,0x2c,0xfe,0x98,0x4d,0x01,0x68,0x00,0x00,0x02,0x00,0xaf,0x04,0x2b, +0x02,0xab,0x05,0xc4,0x00,0x03,0x00,0x0f,0x00,0x27,0x40,0x14,0x0a,0xc0,0x04,0x04,0x01,0x00,0x00,0x01,0x07,0xc1,0x0d,0x40,0x09,0x0e,0x48,0x0d,0x0d,0x02,0xe7,0x01,0x00,0x2f,0xed,0x33,0x2f,0x2b,0xed,0x01,0x2f,0x33,0x2f,0x11,0x33,0x2f,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x25,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22, +0x26,0x02,0xab,0xfe,0x04,0x01,0xfc,0xfe,0xa0,0x39,0x2a,0x28,0x38,0x37,0x29,0x29,0x3a,0x04,0x2b,0x6d,0xc9,0x28,0x3b,0x3a,0x29,0x29,0x39,0x39,0x00,0x01,0x00,0x75,0x04,0xfe,0x03,0x69,0x06,0x58,0x00,0x05,0x00,0x18,0x40,0x0a,0x04,0xea,0x01,0x01,0x02,0x05,0x05,0x03,0xbe,0x02,0x00,0x2f,0xed,0x33,0x2f,0x01,0x2f,0x33,0x2f,0xed, +0x31,0x30,0x01,0x11,0x21,0x35,0x21,0x35,0x03,0x69,0xfd,0x0c,0x02,0x5f,0x06,0x58,0xfe,0xa6,0x95,0xc5,0x00,0x01,0x00,0x75,0x04,0x7c,0x04,0x54,0x06,0x58,0x00,0x09,0x00,0x25,0x40,0x11,0x09,0xea,0x00,0x00,0x04,0x07,0x07,0x03,0xea,0x04,0x08,0x02,0xbe,0x05,0x05,0x00,0x04,0x00,0x2f,0x33,0x33,0x2f,0xed,0x32,0x01,0x2f,0xed,0x33, +0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x21,0x11,0x23,0x11,0x21,0x15,0x21,0x11,0x02,0x23,0xfe,0xe7,0x95,0x03,0xdf,0xfe,0x64,0x04,0x7d,0x01,0x46,0xfe,0xb9,0x01,0xdc,0x95,0xfe,0xba,0x00,0x00,0x01,0x00,0x75,0x04,0x7c,0x04,0x54,0x06,0x58,0x00,0x09,0x00,0x27,0x40,0x12,0x00,0xea,0x09,0x09,0x05,0x02,0x02,0x06,0xea,0x05, +0x01,0x07,0xbe,0x04,0x09,0x05,0x05,0x04,0x00,0x2f,0x33,0x2f,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x33,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x21,0x15,0x21,0x11,0x33,0x11,0x21,0x11,0x02,0xb8,0x01,0x9c,0xfc,0x21,0x95,0x01,0x19,0x06,0x57,0xfe,0xba,0x95,0x01,0xdc,0xfe,0xb9,0x01,0x46,0x00,0x00,0x01,0x00,0x00,0xfd,0xff, +0x03,0x57,0x02,0x5e,0x00,0x23,0x00,0x34,0xb1,0x05,0x1f,0xb8,0x05,0x0a,0x40,0x09,0x16,0x1f,0x05,0x02,0x2f,0x1b,0x01,0x1b,0x11,0xb8,0x04,0xfb,0xb6,0x1f,0x0b,0x2f,0x0b,0x02,0x0b,0x00,0xba,0x04,0xfb,0x00,0x02,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x2f,0x5d,0x12,0x39,0x39,0x01,0x2f,0xed,0x32,0x31,0x30,0x25,0x15,0x23,0x22, +0x26,0x27,0x07,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x03,0x57,0x16,0x3f,0x4a,0x19,0x05,0x44,0x78,0xa5,0x61,0x33,0x6c,0x39,0x7c,0x59,0x55,0x74,0x45,0x1e,0x13,0x1f,0x29,0x16,0xa1,0x1d,0x2c,0x0e,0x06,0x1c,0x30,0x49,0x99,0xa7,0x24,0x21,0x01, +0x8c,0xd5,0x8e,0x48,0x16,0x17,0xa5,0x27,0x3d,0x6c,0x92,0x56,0x4b,0x8e,0x88,0x83,0x3f,0x4b,0xa0,0x51,0x23,0x34,0x22,0x10,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x04,0x07,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x05,0x1f,0x02,0x26,0x0b,0x0c,0x00,0x00, +0x00,0x07,0x0f,0x53,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x05,0xb9,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x04,0xaf,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0a,0x6d,0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57, +0x02,0x5e,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x5b,0x01,0x90,0x00,0x00,0xff,0xff,0x00,0x00,0xfd,0xfb,0x03,0x57,0x02,0x5e,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0xf2,0xfe,0x00,0xff,0xff,0x00,0x00,0xfd,0xe1,0x04,0x31,0x02,0x5e,0x02,0x26,0x0b,0x0c,0x00,0x00,0x01,0x07,0x0a,0x6d,0x02,0x09,0xf7,0x65, +0x00,0x0a,0xb4,0x01,0x2f,0x25,0x01,0x25,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xfb,0x03,0x57,0x02,0x5e,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0xf2,0xfe,0x00,0x00,0x06,0x0f,0x50,0xce,0x05,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x04,0x07,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x9a, +0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x05,0x1f,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x05,0x1f,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x04,0xbc,0x02,0x26,0x0b,0x0c, +0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x03,0xce,0x02,0x06,0x09,0x28,0x00,0x00,0xff,0xff,0x00,0xa1,0xff,0xf2,0x04,0x02,0x03,0xd7,0x02,0x06,0x08,0xf3,0x00,0x00,0x00,0x03,0x00,0x79,0xfe,0x1e,0x06,0xf3,0x06,0x02,0x00,0x13,0x00,0x37,0x00,0x3b,0x00,0x1f,0x40,0x0e,0x28,0x23, +0x37,0x0a,0x00,0x23,0x00,0x23,0x00,0x38,0x3a,0x00,0x38,0x1b,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xd6,0xcd,0x11,0x33,0x31,0x30,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x13,0x26,0x26,0x35,0x34,0x3e,0x04,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x15,0x36,0x33,0x32,0x1e,0x02,0x15, +0x14,0x0e,0x04,0x15,0x14,0x16,0x17,0x13,0x09,0x02,0x03,0x91,0x16,0x26,0x1c,0x10,0x11,0x1d,0x25,0x15,0x16,0x26,0x1d,0x10,0x12,0x1d,0x26,0x5b,0x08,0x13,0x2b,0x40,0x4b,0x40,0x2b,0x34,0x57,0x72,0x3e,0x87,0x7c,0x67,0x89,0x24,0x40,0x30,0x1c,0x2a,0x3e,0x49,0x3e,0x2a,0x0c,0x0b,0x78,0xfc,0xc3,0x03,0x3d,0x03,0x3d,0x89,0x12,0x1d, +0x25,0x14,0x15,0x26,0x1d,0x11,0x12,0x1d,0x26,0x14,0x16,0x26,0x1c,0x10,0x01,0x63,0x15,0x3d,0x25,0x2d,0x49,0x45,0x44,0x4f,0x5f,0x3d,0x40,0x60,0x40,0x21,0x54,0x9e,0x6d,0x12,0x24,0x35,0x22,0x2e,0x4d,0x46,0x43,0x4a,0x54,0x34,0x22,0x43,0x15,0xfd,0x44,0x03,0xf2,0x03,0xf2,0xfc,0x0e,0x00,0x00,0x01,0x00,0x3f,0x04,0xc1,0x03,0x26, +0x05,0xba,0x00,0x17,0x00,0x1e,0x40,0x0e,0x0c,0x00,0x0d,0x07,0x96,0x12,0x12,0x17,0x96,0x0c,0x0f,0x02,0x01,0x02,0x00,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x01,0x2f,0xc4,0xcd,0x31,0x30,0x01,0x15,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x33,0x03,0x26,0x29,0x3f,0x88,0x81,0x71,0x29, +0x16,0x22,0x18,0x0c,0x80,0x18,0x33,0x53,0x3a,0x38,0x7e,0x7f,0x7d,0x37,0x05,0x40,0x7f,0x26,0x2e,0x26,0x13,0x21,0x2d,0x19,0x2f,0x5a,0x46,0x2a,0x26,0x2e,0x26,0x00,0xff,0xff,0x00,0x5e,0xff,0x3f,0x06,0x25,0x05,0xb2,0x02,0x06,0x00,0x34,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x29,0x04,0x10,0x04,0x18,0x02,0x06,0x00,0x54,0x00,0x00, +0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x60,0x05,0x9a,0x02,0x06,0x00,0x3a,0x00,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x04,0x00,0x02,0x06,0x00,0x5a,0x00,0x00,0x00,0x01,0x00,0xb0,0xff,0xe8,0x04,0x9d,0x05,0xb1,0x00,0x36,0x00,0x57,0x40,0x2e,0x29,0x7d,0x16,0x2f,0x7d,0x0b,0x2c,0x11,0x16,0x01,0x11,0x16,0x0b,0x0b,0x16,0x11, +0x01,0x04,0x38,0x1d,0x7e,0x1e,0x2c,0x10,0x11,0x11,0x10,0x92,0x59,0x11,0x11,0x06,0x24,0x34,0x06,0x91,0x59,0x34,0x13,0x24,0x19,0x91,0x59,0x24,0x04,0x1e,0x00,0x2f,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x01,0x18,0x2f,0xe1,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10, +0xe1,0x10,0xe1,0x31,0x30,0x25,0x35,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x35,0x3e,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x04,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x01,0xf6,0x17,0x3a,0x3e,0x40,0x1d,0x3c,0x62,0x46,0x27,0x37,0x71, +0xab,0x74,0x4c,0x7a,0x56,0x2f,0x84,0x77,0x8e,0x90,0xa8,0x4f,0x83,0xa8,0x59,0x5e,0x99,0x6d,0x3b,0x9c,0x98,0x01,0xaf,0x43,0x74,0x9e,0x5c,0x56,0x72,0x0d,0xad,0x0c,0x15,0x11,0x09,0x21,0x40,0x61,0x40,0x41,0x6e,0x54,0x34,0x07,0x7a,0x09,0x2b,0x45,0x61,0x3f,0x66,0x63,0x8d,0x9d,0xfc,0x0f,0x04,0x09,0x79,0xa2,0x63,0x2a,0x2f,0x57, +0x78,0x4a,0x86,0xae,0x29,0x05,0x47,0xfe,0xb3,0x5b,0x93,0x66,0x37,0x16,0xff,0xff,0xfc,0x8c,0x04,0xa7,0xff,0x4c,0x07,0x68,0x00,0x07,0x00,0x0d,0xfc,0x40,0x01,0xce,0xff,0xff,0x00,0x4a,0xff,0xec,0x06,0xd9,0x05,0xb0,0x00,0x26,0x00,0xf0,0xfa,0x00,0x00,0x27,0x00,0xbc,0x03,0x03,0x00,0x00,0x01,0x07,0x00,0xf2,0x04,0x4b,0xfd,0xb9, +0x00,0x07,0xb2,0x02,0x30,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x8d,0xff,0xec,0x06,0xd7,0x05,0xae,0x00,0x26,0x00,0xf1,0x25,0x00,0x00,0x27,0x00,0xbc,0x03,0x01,0x00,0x00,0x01,0x07,0x00,0xf2,0x04,0x49,0xfd,0xb9,0x00,0x07,0xb2,0x02,0x43,0x2d,0x00,0x3f,0x35,0x00,0x00,0x01,0x00,0x96,0x01,0x08,0x06,0x00,0x03,0xa4,0x00,0x09, +0x00,0x1b,0x40,0x0c,0x09,0x08,0x01,0x07,0x03,0x04,0x02,0x05,0x04,0x00,0xbe,0x09,0x00,0x2f,0xed,0x01,0x2f,0x2f,0xcd,0x11,0x17,0x39,0x2f,0x31,0x30,0x01,0x21,0x17,0x15,0x01,0x35,0x01,0x15,0x07,0x21,0x06,0x00,0xfb,0x5a,0x7b,0xfe,0xc1,0x01,0x3f,0x7d,0x04,0xa8,0x02,0x12,0x76,0x94,0x01,0x4c,0x04,0x01,0x4c,0x94,0x78,0x00,0x01, +0x00,0x96,0xff,0xf4,0x03,0x31,0x05,0x5e,0x00,0x09,0x00,0x10,0xb6,0x08,0x01,0x07,0x03,0x03,0x04,0x00,0x00,0x2f,0x2f,0xcd,0x17,0x39,0x31,0x30,0x05,0x11,0x07,0x23,0x01,0x33,0x01,0x23,0x27,0x11,0x01,0xa0,0x77,0x93,0x01,0x4b,0x04,0x01,0x4c,0x93,0x79,0x0c,0x04,0xa4,0x79,0x01,0x3f,0xfe,0xc1,0x7b,0xfb,0x5a,0x00,0x01,0x00,0xe7, +0x01,0x08,0x06,0x52,0x03,0xa4,0x00,0x09,0x00,0x17,0x40,0x0a,0x01,0x02,0x08,0x03,0x07,0x05,0x00,0x09,0xbe,0x00,0x00,0x2f,0xed,0x01,0x2f,0x2f,0xcd,0x17,0x39,0x31,0x30,0x13,0x21,0x27,0x35,0x01,0x15,0x01,0x35,0x37,0x21,0xe7,0x04,0xa6,0x7b,0x01,0x40,0xfe,0xc0,0x79,0xfb,0x5c,0x02,0x98,0x78,0x94,0xfe,0xb4,0x04,0xfe,0xb4,0x94, +0x76,0x00,0x00,0x01,0x00,0x96,0xff,0xf6,0x03,0x31,0x05,0x60,0x00,0x09,0x00,0x10,0xb6,0x09,0x01,0x02,0x08,0x03,0x06,0x05,0x00,0x2f,0xcd,0x17,0x39,0x2f,0x31,0x30,0x01,0x11,0x37,0x33,0x01,0x23,0x01,0x33,0x17,0x11,0x02,0x25,0x79,0x93,0xfe,0xb4,0x04,0xfe,0xb5,0x93,0x77,0x05,0x60,0xfb,0x58,0x7d,0xfe,0xc1,0x01,0x3f,0x7b,0x04, +0xa6,0x00,0x00,0x01,0x00,0x96,0x01,0x08,0x06,0x50,0x03,0xa4,0x00,0x0f,0x00,0x1f,0x40,0x0f,0x01,0x0a,0x0b,0x03,0x00,0x0e,0x09,0x02,0x08,0x03,0x03,0x06,0x02,0xbe,0x09,0x00,0x2f,0xed,0x01,0x2f,0xcd,0x17,0x39,0x2f,0xcd,0x17,0x39,0x31,0x30,0x01,0x37,0x21,0x17,0x15,0x01,0x35,0x01,0x15,0x07,0x21,0x27,0x35,0x01,0x15,0x01,0x05, +0x10,0x79,0xfb,0xd1,0x7b,0xfe,0xc1,0x01,0x3f,0x7d,0x04,0x33,0x7b,0x01,0x40,0xfe,0xc0,0x01,0x9c,0x76,0x76,0x94,0x01,0x4c,0x04,0x01,0x4c,0x94,0x78,0x78,0x94,0xfe,0xb4,0x04,0xfe,0xb4,0xff,0xff,0x00,0x33,0x00,0x00,0x04,0xf8,0x05,0x9a,0x02,0x06,0x00,0xa9,0x00,0x00,0x00,0x01,0x00,0xe6,0x00,0x00,0x04,0x92,0x03,0xac,0x00,0x05, +0x00,0x13,0xb7,0x02,0xbd,0x05,0x03,0x02,0xbe,0x05,0x00,0x00,0x2f,0x2f,0xed,0x01,0x2f,0x2f,0xed,0x31,0x30,0x13,0x33,0x11,0x21,0x15,0x21,0xe6,0x84,0x03,0x28,0xfc,0x54,0x03,0xac,0xfc,0xd7,0x83,0x00,0x01,0x00,0xe6,0x00,0x6a,0x04,0xb7,0x04,0x4f,0x00,0x19,0x00,0x1e,0x40,0x0d,0x13,0x14,0x14,0x1b,0x06,0x07,0x00,0x0d,0x14,0x10, +0x07,0x01,0x07,0x00,0x2f,0x5d,0x33,0x2f,0xcd,0x01,0x2f,0xcd,0x12,0x39,0x2f,0xcd,0x31,0x30,0x01,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x02,0xc8,0x48,0x7f,0x5f,0x38,0x84,0x55,0x8a,0xb0,0x5a,0x5d,0xb0,0x88,0x53,0x84,0x3c,0x64,0x83,0x03,0xd1,0x31,0x65,0x9a, +0x69,0xfe,0x32,0x01,0xcf,0x8a,0xc9,0x83,0x40,0x40,0x83,0xc9,0x8a,0xfe,0x31,0x01,0xce,0x66,0x99,0x67,0x33,0x00,0x00,0x03,0x00,0xe6,0x00,0x70,0x04,0xac,0x04,0x3a,0x00,0x13,0x00,0x27,0x00,0x3b,0x00,0x2e,0x40,0x17,0x37,0xaf,0x2d,0x23,0xaf,0x19,0x2d,0x19,0x2d,0x19,0x3d,0x0f,0xaf,0x05,0x28,0xb0,0x32,0x10,0x1e,0x0a,0xb0,0x14, +0x00,0x00,0x2f,0x32,0xed,0x32,0x3f,0xed,0x01,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x31,0x30,0x25,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32, +0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0x55,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x02,0xcf,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0xfe,0x76,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x70,0x12,0x1e,0x29,0x17,0x17,0x29, +0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x02,0xe9,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x01,0x00,0xe6,0x00,0x6a,0x05,0x38,0x04,0x3b,0x00,0x1b,0x00,0x2e,0x40,0x16,0x15,0x0f,0x1a,0x13, +0x16,0xea,0x08,0x05,0x0f,0xbe,0x0e,0x0e,0x07,0x1a,0xbe,0x1b,0x1b,0x16,0x06,0xbe,0x13,0x07,0x00,0x2f,0x33,0xed,0x32,0x32,0x2f,0xed,0x11,0x33,0x2f,0xed,0x01,0x2f,0x33,0xed,0x32,0x2f,0x33,0x33,0x31,0x30,0x25,0x22,0x2e,0x02,0x27,0x23,0x35,0x33,0x3e,0x03,0x33,0x21,0x15,0x21,0x22,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x33,0x21, +0x15,0x03,0xa8,0x6a,0xb3,0x87,0x53,0x0a,0xc1,0xc1,0x0c,0x5b,0x8a,0xb0,0x60,0x01,0x90,0xfe,0x80,0xad,0xc1,0x11,0x02,0xff,0xfd,0x01,0x11,0xcb,0xc1,0x01,0x62,0x6a,0x37,0x6b,0x9f,0x69,0x84,0x68,0x9d,0x69,0x35,0x84,0x8d,0x92,0x84,0x93,0x93,0x84,0x00,0x01,0x00,0xa5,0x00,0x00,0x06,0x3f,0x05,0x9a,0x00,0x03,0x00,0x0d,0xb3,0x03, +0x02,0x03,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x11,0x21,0xa5,0x05,0x9a,0xfa,0x66,0x05,0x9a,0xfa,0x66,0x00,0x01,0x00,0xa5,0x00,0x00,0x07,0x5b,0x04,0xac,0x00,0x03,0x00,0x0d,0xb3,0x03,0x02,0x03,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x11,0x21,0xa5,0x06,0xb6,0xf9,0x4a,0x04,0xac,0xfb,0x54, +0x00,0x01,0x00,0x50,0x00,0x00,0x06,0x94,0x05,0x9a,0x00,0x02,0x00,0x0d,0xb3,0x01,0x02,0x00,0x02,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x01,0x21,0x03,0x72,0x03,0x22,0xf9,0xbc,0x05,0x9a,0xfa,0x66,0x00,0x01,0x00,0xa5,0x01,0x61,0x06,0x3f,0x04,0x39,0x00,0x02,0x00,0x0d,0xb3,0x01,0x00,0x02,0x01,0x00,0x2f,0x2f,0x01,0x2f, +0x2f,0x31,0x30,0x01,0x01,0x11,0x06,0x3f,0xfa,0x66,0x02,0xcd,0xfe,0x94,0x02,0xd8,0x00,0x01,0x00,0x50,0x00,0x00,0x06,0x94,0x05,0x9a,0x00,0x02,0x00,0x0d,0xb3,0x01,0x00,0x02,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x01,0x50,0x06,0x44,0xfc,0xde,0x05,0x9a,0xfa,0x66,0x00,0x00,0x01,0x00,0xa5,0x01,0x61,0x06,0x3f, +0x04,0x39,0x00,0x02,0x00,0x0d,0xb3,0x01,0x02,0x01,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x11,0x01,0x06,0x3f,0xfa,0x66,0x04,0x39,0xfd,0x28,0x01,0x6c,0x00,0x02,0x00,0x8c,0xff,0xe7,0x06,0x58,0x05,0xb2,0x00,0x1b,0x00,0x33,0x00,0x15,0xb7,0x0e,0x28,0x1c,0x00,0x21,0x15,0x2f,0x07,0x00,0x2f,0xcd,0x2f,0xcd,0x01,0x2f, +0xcd,0x2f,0xcd,0x31,0x30,0x13,0x34,0x3e,0x04,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x04,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x8c,0x35,0x60,0x87,0xa5,0xbe,0x66,0x66,0xbe,0xa5,0x88,0x61,0x35,0x35,0x61,0x88,0xa5,0xbe,0x66,0x67,0xbd,0xa5,0x87,0x60,0x35,0x7c,0x61, +0xa7,0xe1,0x80,0x55,0x9f,0x89,0x71,0x51,0x2c,0x2c,0x51,0x71,0x89,0x9f,0x55,0x80,0xe1,0xa7,0x61,0x02,0xcc,0x66,0xbe,0xa5,0x87,0x61,0x35,0x35,0x61,0x87,0xa5,0xbe,0x66,0x67,0xbd,0xa5,0x87,0x60,0x35,0x35,0x60,0x87,0xa5,0xbe,0x66,0x80,0xe1,0xa7,0x61,0x2c,0x50,0x70,0x8a,0x9e,0x55,0x55,0x9f,0x89,0x71,0x50,0x2c,0x61,0xa8,0xe1, +0x00,0x02,0x02,0x0d,0x00,0x00,0x04,0xd7,0x05,0x9a,0x00,0x03,0x00,0x17,0x00,0x1a,0x40,0x0a,0x0e,0x02,0x04,0x03,0x13,0x09,0x13,0x09,0x03,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x01,0x2f,0xcd,0xdd,0xcd,0x31,0x30,0x01,0x21,0x11,0x21,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x02,0x0d, +0x02,0xca,0xfd,0x36,0x64,0x28,0x46,0x5d,0x36,0x35,0x5d,0x46,0x29,0x29,0x46,0x5d,0x35,0x36,0x5d,0x46,0x28,0x05,0x9a,0xfa,0x66,0x02,0xcd,0x35,0x5e,0x46,0x28,0x28,0x46,0x5e,0x35,0x35,0x5e,0x46,0x28,0x28,0x46,0x5e,0x00,0x03,0x00,0xa5,0x00,0x00,0x06,0x3f,0x05,0x9a,0x00,0x03,0x00,0x1d,0x00,0x31,0x00,0x1f,0x40,0x0d,0x1e,0x04, +0x03,0x28,0x12,0x02,0x2d,0x0b,0x03,0x22,0x23,0x17,0x00,0x00,0x2f,0xdd,0xce,0x3f,0xdd,0xce,0x01,0x2f,0xdd,0xce,0x2f,0xdd,0xce,0x31,0x30,0x13,0x21,0x11,0x21,0x13,0x14,0x1e,0x04,0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x17,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0xa5, +0x05,0x9a,0xfa,0x66,0x64,0x2c,0x50,0x70,0x89,0x9d,0x55,0x55,0x9f,0x89,0x71,0x51,0x2c,0x61,0xa8,0xe2,0x80,0x55,0x9d,0x89,0x70,0x50,0x2c,0x67,0x51,0x8b,0xba,0x6a,0x6b,0xbc,0x8c,0x51,0x51,0x8c,0xbc,0x6b,0x6a,0xba,0x8b,0x51,0x05,0x9a,0xfa,0x66,0x02,0xcb,0x55,0x9d,0x89,0x70,0x50,0x2c,0x2c,0x50,0x70,0x89,0x9d,0x55,0x80,0xe2, +0xa8,0x61,0x2c,0x51,0x71,0x89,0x9f,0x55,0x6b,0xbc,0x8c,0x51,0x51,0x8c,0xbc,0x6b,0x6a,0xbb,0x8b,0x50,0x50,0x8b,0xbb,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x05,0x1c,0x05,0xb2,0x00,0x2b,0x00,0x1e,0x40,0x0d,0x0f,0x1c,0x1c,0x07,0x24,0x07,0x0c,0x1f,0x1f,0x16,0x22,0x00,0x26,0x00,0x3f,0x3f,0x39,0x2f,0x33,0x01,0x2f,0x2f,0x12,0x39, +0x2f,0xcd,0x31,0x30,0x01,0x1e,0x05,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x1e,0x03,0x17,0x15,0x21,0x35,0x3e,0x03,0x37,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x02,0xc1,0x2c,0x7b,0x86,0x84,0x69,0x41,0x34,0x55,0x6d,0x39,0x37,0x63,0x27,0x04,0x15,0x26,0x36,0x25,0xfd,0xee,0x25,0x36,0x26,0x15,0x04,0x27,0x63, +0x37,0x39,0x6d,0x55,0x34,0x41,0x69,0x84,0x86,0x7b,0x2c,0x05,0xb2,0x34,0x6b,0x76,0x82,0x93,0xa6,0x5f,0x52,0x7e,0x55,0x2c,0x1c,0x20,0x22,0x4c,0x4c,0x4a,0x1f,0x4b,0x4b,0x1f,0x4a,0x4c,0x4c,0x22,0x20,0x1c,0x2c,0x55,0x7e,0x52,0x5f,0xa6,0x93,0x82,0x76,0x6c,0x33,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x05,0x1c,0x05,0x9a,0x00,0x38, +0x00,0x1c,0x40,0x0b,0x32,0x06,0x06,0x10,0x28,0x10,0x2d,0x0b,0x0b,0x1c,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x33,0x01,0x2f,0x2f,0x12,0x39,0x2f,0xcd,0x31,0x30,0x21,0x35,0x3e,0x03,0x35,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02, +0x23,0x22,0x2e,0x02,0x27,0x14,0x1e,0x02,0x17,0x15,0x01,0xb4,0x1c,0x36,0x2a,0x1a,0x13,0x25,0x2a,0x31,0x1f,0x41,0x73,0x55,0x31,0x2d,0x53,0x73,0x45,0x10,0x2d,0x52,0x72,0x46,0x46,0x72,0x52,0x2d,0x10,0x45,0x73,0x53,0x2d,0x31,0x55,0x73,0x41,0x1f,0x31,0x2a,0x25,0x13,0x19,0x2a,0x36,0x1d,0x4b,0x17,0x46,0x5c,0x72,0x44,0x0d,0x14, +0x0f,0x08,0x2c,0x51,0x74,0x48,0x41,0x71,0x55,0x32,0x01,0x34,0x37,0x40,0x73,0x55,0x32,0x32,0x55,0x73,0x40,0x37,0x34,0x01,0x32,0x55,0x71,0x41,0x48,0x74,0x51,0x2c,0x08,0x0f,0x14,0x0d,0x44,0x72,0x5c,0x46,0x17,0x4b,0x00,0x01,0x00,0x5e,0x00,0x78,0x05,0x1c,0x05,0x23,0x00,0x23,0x00,0x0d,0xb3,0x05,0x14,0x19,0x0c,0x00,0x2f,0x2f, +0x01,0x2f,0x2f,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x07,0x23,0x2e,0x05,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x33,0x3e,0x03,0x03,0xea,0x3b,0x6f,0x55,0x33,0x40,0x68,0x83,0x86,0x7d,0x2d,0x09,0x2d,0x7c,0x86,0x83,0x68,0x40,0x33,0x55,0x6f,0x3b,0x39,0x5b,0x49,0x37,0x14,0x09,0x14,0x38,0x49,0x5b,0x05,0x23, +0x2b,0x57,0x84,0x5a,0x64,0xad,0x98,0x85,0x79,0x6f,0x35,0x35,0x6f,0x79,0x85,0x98,0xad,0x64,0x5a,0x84,0x57,0x2b,0x1e,0x33,0x41,0x22,0x22,0x41,0x33,0x1e,0x00,0x01,0x00,0xcd,0x00,0x00,0x04,0xae,0x05,0x9a,0x00,0x03,0x00,0x0d,0xb3,0x02,0x00,0x03,0x01,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x13,0x09,0x02,0xcd,0x01,0xf0,0x01, +0xf1,0xfe,0x0f,0x02,0xcc,0x02,0xce,0xfd,0x32,0xfd,0x34,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0x2c,0x05,0xb2,0x00,0x16,0x00,0x2d,0x00,0x2d,0x40,0x17,0x13,0x12,0x7e,0x10,0x28,0x28,0x2f,0x1c,0x7d,0x05,0x13,0x10,0x03,0x17,0x91,0x0f,0x0a,0x04,0x21,0x91,0x14,0x00,0x13,0x00,0x3f,0x32,0xed,0x3f,0x33,0xed,0x3f,0x2f,0x01,0x2f, +0xe1,0x12,0x39,0x2f,0x33,0xe1,0x33,0x31,0x30,0x05,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x35,0x33,0x11,0x23,0x35,0x06,0x06,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x35,0x11,0x34,0x2e,0x02,0x02,0xb9,0x86,0xde,0x9f,0x58,0x5c,0xaa,0xef,0x94,0x4e,0x80,0x66,0x4d,0x1c,0xa8, +0xa8,0x40,0xe1,0x80,0x6c,0xad,0x7a,0x42,0x42,0x79,0xa9,0x66,0x33,0x67,0x5f,0x53,0x3d,0x23,0x3b,0x6e,0x99,0x18,0x6a,0xbf,0x01,0x0b,0xa0,0xac,0x01,0x18,0xc6,0x6c,0x21,0x39,0x4b,0x2a,0xb7,0xfa,0x66,0xd6,0x6d,0x81,0x05,0x32,0x56,0x9c,0xd9,0x84,0x84,0xd9,0x9a,0x55,0x13,0x2c,0x48,0x6a,0x90,0x5d,0x01,0x0d,0x6c,0xa2,0x6c,0x36, +0xff,0xff,0x00,0x0e,0x00,0x00,0x04,0x9a,0x04,0x18,0x02,0x06,0x05,0xef,0x00,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x08,0x74,0x05,0xb2,0x00,0x2c,0x00,0x54,0x40,0x2b,0x25,0x24,0x1c,0x2c,0x01,0x00,0x19,0x15,0x14,0x06,0x0a,0x09,0x10,0x24,0x2c,0x19,0x06,0x10,0x10,0x06,0x19,0x2c,0x24,0x05,0x2e,0x0c,0x0b,0x27,0x92,0x40,0x25,0x80, +0x21,0x04,0x14,0x05,0x0b,0x03,0x18,0x0f,0x01,0x0a,0x12,0x00,0x3f,0x33,0x33,0x33,0x3f,0x33,0x33,0x3f,0x1a,0xcc,0x1a,0xed,0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x21,0x23,0x01,0x26,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x33,0x01, +0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x3e,0x03,0x33,0x32,0x16,0x17,0x23,0x26,0x23,0x22,0x0e,0x02,0x07,0x05,0xcb,0xc5,0xfe,0xd9,0x0a,0x0b,0x02,0x04,0x06,0x14,0xfe,0xd7,0xc3,0xfe,0x5c,0xb9,0x01,0x31,0x14,0x04,0x05,0x02,0x10,0x0d,0x01,0x3d,0xa1,0x01,0x30,0x10,0x08,0x04,0x05,0x16,0xe1, +0x12,0x32,0x45,0x5c,0x3c,0x69,0x79,0x0b,0x9a,0x0c,0x47,0x16,0x23,0x1b,0x17,0x0b,0x04,0x18,0x22,0x48,0x28,0x47,0x49,0xfb,0xe6,0x05,0x9a,0xfb,0xb4,0x45,0x4b,0x1a,0x48,0x2e,0x04,0x4c,0xfb,0xac,0x39,0x4d,0x35,0x55,0x03,0x54,0x46,0x68,0x44,0x22,0x79,0x79,0x63,0x16,0x29,0x3d,0x27,0x00,0x00,0x01,0x00,0x18,0x00,0x00,0x06,0x97, +0x04,0x18,0x00,0x2c,0x00,0x54,0x40,0x2b,0x0a,0x09,0x11,0x15,0x14,0x06,0x01,0x00,0x19,0x1d,0x2c,0x26,0x25,0x11,0x06,0x19,0x2c,0x25,0x25,0x2c,0x19,0x06,0x11,0x05,0x2e,0x0c,0x0b,0x29,0x95,0x40,0x26,0x80,0x22,0x10,0x14,0x05,0x0b,0x0f,0x18,0x10,0x01,0x0a,0x15,0x00,0x3f,0x33,0x33,0x33,0x3f,0x33,0x33,0x3f,0x1a,0xcc,0x1a,0xed, +0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x31,0x30,0x21,0x23,0x03,0x26,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x36,0x37,0x13,0x3e,0x03,0x33,0x32,0x16,0x17,0x23,0x26, +0x26,0x23,0x22,0x06,0x07,0x04,0x7d,0xaa,0xd3,0x06,0x08,0x02,0x04,0x03,0x12,0xe5,0xa4,0xfe,0xca,0xac,0xd4,0x05,0x07,0x02,0x08,0x03,0x0f,0xec,0x96,0xd4,0x0b,0x04,0x08,0x01,0x09,0x07,0x9a,0x0d,0x26,0x38,0x4e,0x35,0x5b,0x6b,0x0b,0x96,0x04,0x23,0x1c,0x21,0x2a,0x14,0x02,0xdd,0x15,0x30,0x1a,0x24,0x39,0xfd,0x21,0x04,0x00,0xfc, +0xfe,0x11,0x2e,0x1d,0x2d,0x31,0x03,0x00,0xfc,0xfc,0x26,0x36,0x14,0x2e,0x1a,0x02,0x46,0x32,0x4f,0x38,0x1d,0x6d,0x6f,0x2a,0x2a,0x3f,0x46,0x00,0x00,0x01,0x00,0x96,0x03,0x82,0x03,0x31,0x05,0xd3,0x00,0x09,0x00,0x0d,0xb3,0x09,0x00,0x00,0x04,0x00,0x2f,0xcd,0x01,0x2f,0xcd,0x31,0x30,0x01,0x11,0x07,0x23,0x01,0x33,0x01,0x23,0x27, +0x11,0x01,0xa0,0x77,0x93,0x01,0x4b,0x04,0x01,0x4c,0x93,0x79,0x03,0x82,0x01,0x8b,0x79,0x01,0x3f,0xfe,0xc1,0x7b,0xfe,0x73,0x00,0x01,0x00,0x96,0x03,0x82,0x03,0x31,0x05,0xd3,0x00,0x09,0x00,0x0d,0xb3,0x00,0x09,0x04,0x09,0x00,0x2f,0xcd,0x01,0x2f,0xcd,0x31,0x30,0x01,0x11,0x37,0x33,0x01,0x23,0x01,0x33,0x17,0x11,0x02,0x25,0x79, +0x93,0xfe,0xb4,0x04,0xfe,0xb5,0x93,0x77,0x05,0xd3,0xfe,0x73,0x7b,0xfe,0xc1,0x01,0x3f,0x79,0x01,0x8b,0x00,0x02,0x00,0xb4,0x03,0x83,0x01,0x92,0x06,0x89,0x00,0x03,0x00,0x0f,0x00,0x20,0x40,0x0f,0x00,0x03,0x03,0x0d,0x07,0x02,0x50,0x0a,0x01,0x0a,0x00,0x04,0x01,0x04,0x03,0x00,0x2f,0xd4,0x5d,0xdd,0x5d,0xce,0x01,0x2f,0xcd,0x33, +0x2f,0xcd,0x31,0x30,0x01,0x03,0x23,0x03,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x77,0x13,0x87,0x12,0x58,0x2e,0x41,0x41,0x2e,0x2d,0x42,0x42,0x06,0x89,0xfe,0x2d,0x01,0xd3,0xfc,0xfa,0x40,0x2e,0x2e,0x41,0x41,0x2e,0x2e,0x40,0x00,0x00,0x02,0x00,0xb4,0x03,0x83,0x01,0x92,0x06,0x89,0x00,0x03,0x00,0x0f, +0x00,0x20,0x40,0x0f,0x03,0x00,0x00,0x07,0x0d,0x02,0x5f,0x0a,0x01,0x0a,0x00,0x03,0x01,0x03,0x04,0x00,0x2f,0xc4,0x5d,0xdd,0x5d,0xce,0x01,0x2f,0xcd,0x33,0x2f,0xcd,0x31,0x30,0x13,0x13,0x33,0x13,0x03,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0xcb,0x12,0x87,0x13,0x54,0x2d,0x42,0x42,0x2d,0x2e,0x41,0x41,0x03,0x83, +0x01,0xd3,0xfe,0x2d,0x03,0x06,0x40,0x2e,0x2e,0x41,0x41,0x2e,0x2e,0x40,0x00,0x02,0x00,0xb4,0x01,0xd5,0x01,0x92,0x04,0xdb,0x00,0x03,0x00,0x0f,0x00,0x23,0x40,0x0f,0x03,0x00,0x00,0x07,0x0d,0x01,0x5f,0x0a,0x01,0x0a,0x00,0x00,0x01,0x00,0x04,0xb8,0x01,0x3a,0x00,0x3f,0xc4,0x5d,0xdd,0x5d,0xce,0x01,0x2f,0xcd,0x33,0x2f,0xcd,0x31, +0x30,0x13,0x13,0x33,0x13,0x03,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0xcb,0x12,0x87,0x13,0x54,0x2d,0x42,0x42,0x2d,0x2e,0x41,0x41,0x01,0xd5,0x01,0xd3,0xfe,0x2d,0x03,0x06,0x40,0x2e,0x2e,0x41,0x41,0x2e,0x2e,0x40,0x00,0x00,0x01,0x00,0x63,0xfe,0x3e,0x02,0x95,0xff,0x89,0x00,0x06,0x00,0x18,0x40,0x0c,0x00,0x04, +0x04,0x80,0x0f,0x05,0x1f,0x05,0x2f,0x05,0x03,0x05,0x00,0x2f,0x5d,0x1a,0xcd,0x01,0x2f,0xc4,0x31,0x30,0x01,0x23,0x27,0x07,0x23,0x13,0x33,0x02,0x95,0x78,0xa4,0xa6,0x70,0xd6,0x86,0xfe,0x3e,0xe5,0xe5,0x01,0x4b,0x00,0xff,0xff,0x00,0x70,0xff,0xea,0x01,0x50,0x04,0x16,0x02,0x06,0x00,0x1d,0x00,0x00,0x00,0x02,0x00,0xe8,0x01,0x3e, +0x03,0x9a,0x03,0x6c,0x00,0x03,0x00,0x07,0x00,0x1a,0x40,0x0b,0x00,0x01,0x04,0x05,0x04,0x05,0xbe,0x06,0x01,0xbe,0x02,0x00,0x2f,0xed,0xd6,0xed,0x01,0x2f,0x2f,0x11,0x39,0x39,0x31,0x30,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x03,0x9a,0xfd,0x4e,0x02,0xb2,0xfd,0x4e,0x02,0xb2,0x02,0xe8,0x84,0xfd,0xd2,0x84,0x00,0x01,0x00,0x94, +0x02,0xc3,0x01,0x43,0x05,0x9a,0x00,0x03,0x00,0x1c,0x40,0x0e,0x00,0x7d,0x03,0x04,0x0d,0x06,0x4d,0x03,0x03,0x05,0x04,0x01,0x00,0x03,0x00,0x3f,0xcd,0x11,0x12,0x01,0x39,0x2f,0x2b,0xe1,0x31,0x30,0x01,0x03,0x23,0x03,0x01,0x43,0x1e,0x73,0x1e,0x05,0x9a,0xfd,0x29,0x02,0xd7,0x00,0xff,0xff,0x00,0xa3,0x03,0xdb,0x01,0x34,0x05,0x9a, +0x02,0x06,0x00,0x0a,0x00,0x00,0x00,0x01,0x03,0x9b,0xfe,0x80,0x04,0x36,0x00,0x00,0x00,0x03,0x00,0x0d,0xb3,0x01,0x00,0x03,0x00,0x00,0x2f,0x2f,0x01,0x2f,0xcd,0x31,0x30,0x21,0x33,0x11,0x23,0x03,0x9b,0x9b,0x9b,0xfe,0x80,0x00,0x00,0x01,0x02,0xd6,0xfe,0x8a,0x03,0x64,0x00,0x00,0x00,0x03,0x00,0x0d,0xb3,0x01,0x00,0x03,0x00,0x00, +0x2f,0x2f,0x01,0x2f,0xcd,0x31,0x30,0x21,0x33,0x11,0x23,0x02,0xd6,0x8e,0x8e,0xfe,0x8a,0x00,0x00,0x02,0x00,0x00,0xfd,0xff,0x00,0xb9,0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x2f,0xb9,0x00,0x00,0x01,0x51,0xb2,0x06,0x06,0x0c,0xb8,0x01,0x51,0xb3,0x12,0x12,0x19,0x03,0xbb,0x01,0x55,0x00,0x09,0x00,0x0f,0x01,0x55,0xb2,0x15,0x15,0x19, +0x11,0x00,0x33,0x2f,0xfd,0xde,0xed,0x11,0x01,0x33,0x2f,0xed,0x33,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x35,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0xb9,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0x5a,0x2a,0x31,0x2f,0x2c, +0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x05,0x00,0x00,0xfd,0xff,0x02,0xdd,0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x3b,0x00,0x00,0x17,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x06,0x23,0x22,0x26, +0x35,0x34,0x36,0x33,0x32,0x16,0x35,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0xb9,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x01,0x14,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x01,0x10,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x33,0x29,0x2a,0x33,0x31, +0x2a,0x2a,0x34,0xfe,0x67,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x2d,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xfe,0xce,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xfe,0xce,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x03,0x00,0x00,0xfd,0xff,0x02,0xe2, +0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x37,0xb9,0x00,0x0c,0x01,0x51,0xb2,0x12,0x12,0x00,0xb8,0x01,0x51,0xb7,0x06,0x1b,0x1a,0x18,0x1b,0x1b,0x09,0x0f,0xbb,0x01,0x55,0x00,0x15,0x00,0x03,0x01,0x55,0xb2,0x09,0x09,0x1d,0x11,0x00,0x33,0x2f,0xfd,0xde,0xed,0x11,0x33,0x2f,0xcd,0x01,0x2f,0xdd,0xde,0xed,0x33,0x2f,0xed,0x30, +0x31,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x25,0x21,0x35,0x21,0x02,0xdd,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0xce,0xfe,0x50,0x01,0xb0,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xfe,0xce, +0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xb1,0x66,0x00,0x00,0x03,0x00,0x00,0xfd,0xff,0x02,0xe1,0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x1f,0x00,0x40,0xb9,0x00,0x0c,0x01,0x51,0xb2,0x12,0x12,0x00,0xb8,0x01,0x51,0x40,0x0c,0x06,0x1f,0x19,0x1e,0x1c,0x1c,0x1a,0x19,0x1f,0x1f,0x09,0x0f,0xbb,0x01,0x55,0x00,0x15,0x00,0x03,0x01,0x55,0xb2, +0x09,0x09,0x21,0x11,0x00,0x33,0x2f,0xfd,0xde,0xed,0x11,0x33,0x2f,0xdd,0xcd,0x33,0x01,0x2f,0xcd,0xdd,0xdd,0xde,0xed,0x33,0x2f,0xed,0x30,0x31,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x25,0x23,0x15,0x23,0x35,0x23,0x35,0x21,0x02,0xdd,0x33,0x29, +0x2a,0x33,0x31,0x2a,0x2a,0x34,0x04,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0xcf,0xa5,0x66,0xa5,0x01,0xb0,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xfe,0xce,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xb1,0xdf,0xdf,0x66,0x00,0x00,0x01,0x00,0x00,0xff,0x04,0x00,0xb9,0xff,0xbb,0x00,0x0b,0x00,0x1d,0xb9,0x00,0x00,0x01,0x51,0xb3, +0x06,0x06,0x0d,0x03,0xb8,0x01,0x55,0xb2,0x09,0x09,0x0d,0x11,0x00,0x33,0x2f,0xed,0x11,0x01,0x33,0x2f,0xed,0x30,0x31,0x17,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0xb9,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x02,0x00,0x00,0xff,0x04,0x01,0xd6,0xff,0xbb,0x00,0x0b, +0x00,0x17,0x00,0x2f,0xbc,0x00,0x00,0x01,0x51,0x00,0x06,0x00,0x0c,0x01,0x51,0xb3,0x12,0x12,0x19,0x03,0xb8,0x01,0x55,0xb2,0x09,0x09,0x0f,0xb8,0x01,0x55,0xb2,0x15,0x15,0x19,0x11,0x00,0x33,0x2f,0xed,0x33,0x2f,0xed,0x11,0x01,0x33,0x2f,0xfd,0xde,0xed,0x30,0x31,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05, +0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0xd6,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0xe3,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x2d,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x03,0x00,0x00,0xfd,0xff,0x01,0xd6,0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x23, +0x00,0x45,0xb9,0x00,0x00,0x01,0x51,0xb3,0x06,0x06,0x1e,0x0c,0xbb,0x01,0x51,0x00,0x12,0x00,0x18,0x01,0x51,0xb3,0x1e,0x1e,0x25,0x03,0xbe,0x01,0x55,0x00,0x09,0x00,0x1b,0x01,0x55,0x00,0x21,0x00,0x0f,0x01,0x55,0xb4,0x15,0x15,0x21,0x21,0x25,0x11,0x00,0x33,0x2f,0x33,0x2f,0xed,0x10,0xfd,0xde,0xed,0x11,0x01,0x33,0x2f,0xfd,0xde, +0xed,0x12,0x39,0x2f,0xed,0x30,0x31,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x37,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x48,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x8e,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0xe3, +0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0x5a,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x2d,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x01,0x00,0x00,0xff,0x38,0x01,0xb0,0xff,0x9e,0x00,0x03,0x00,0x11,0xb5,0x00,0x02,0x00,0x02,0x02,0x05,0x11,0x00,0x33,0x2f,0xcd,0x01,0x2f,0xcd,0x30, +0x31,0x05,0x21,0x35,0x21,0x01,0xb0,0xfe,0x50,0x01,0xb0,0xc8,0x66,0x00,0x00,0x01,0x00,0x00,0xfe,0x59,0x01,0xb0,0xff,0x9e,0x00,0x07,0x00,0x1a,0x40,0x0a,0x07,0x01,0x06,0x04,0x02,0x01,0x04,0x06,0x06,0x09,0x11,0x00,0x33,0x2f,0xdd,0x32,0xcd,0x01,0x2f,0xcd,0xdd,0xcd,0x30,0x31,0x05,0x23,0x15,0x23,0x35,0x23,0x35,0x21,0x01,0xb0, +0xa5,0x66,0xa5,0x01,0xb0,0xc8,0xdf,0xdf,0x66,0x00,0x00,0x01,0xff,0xa4,0x05,0x4e,0x00,0x5d,0x06,0x05,0x00,0x0b,0x00,0x17,0xbe,0x00,0x00,0x01,0x51,0x00,0x06,0x00,0x09,0x01,0x55,0x00,0x03,0x05,0x10,0x00,0x3f,0xed,0x01,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x5d,0x33,0x29,0x2a,0x33, +0x31,0x2a,0x2a,0x34,0x05,0xa9,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x03,0x00,0x00,0xfd,0xff,0x02,0x77,0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x3d,0xbf,0x00,0x18,0x01,0x51,0x00,0x1e,0x00,0x0c,0x01,0x51,0x00,0x12,0x00,0x00,0x01,0x51,0xb3,0x06,0x06,0x25,0x1b,0xbe,0x01,0x55,0x00,0x21,0x00,0x0f,0x01,0x55,0x00, +0x15,0x00,0x03,0x01,0x55,0xb2,0x09,0x09,0x25,0x11,0x00,0x33,0x2f,0xed,0xdc,0xed,0xdc,0xed,0x11,0x01,0x33,0x2f,0xfd,0xde,0xfd,0xde,0xed,0x30,0x31,0x17,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32, +0x16,0xb9,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xdf,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xdf,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xaf,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xb0,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x01,0xff,0xa5,0x02,0x18,0x00,0x5e,0x02,0xcf,0x00,0x0b, +0x00,0x15,0xbd,0x00,0x00,0x01,0x51,0x00,0x06,0x00,0x09,0x01,0x55,0x00,0x03,0x00,0x2f,0xed,0x01,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x5e,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x02,0x73,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x01,0xff,0xcd,0xfe,0x09,0x00,0x33,0xff,0xb1, +0x00,0x03,0x00,0x11,0xb5,0x03,0x02,0x00,0x03,0x03,0x05,0x11,0x00,0x33,0x2f,0xcd,0x01,0x2f,0xcd,0x30,0x31,0x13,0x23,0x11,0x33,0x33,0x66,0x66,0xfe,0x09,0x01,0xa8,0x00,0x01,0x00,0x4b,0x04,0x38,0x02,0xe8,0x04,0xcd,0x00,0x03,0x00,0x14,0xb5,0x03,0x05,0x02,0x04,0x01,0x03,0xb8,0x01,0x4a,0x00,0x3f,0xcd,0x11,0x01,0x33,0x11,0x33, +0x30,0x31,0x01,0x21,0x37,0x21,0x02,0xd0,0xfd,0x7b,0x18,0x02,0x85,0x04,0x38,0x95,0x00,0x01,0xfe,0xd2,0x05,0x6b,0x01,0x31,0x05,0xd5,0x00,0x03,0x00,0x0d,0xb3,0x03,0x01,0x03,0x01,0x00,0x2f,0xcd,0x01,0x2f,0xcd,0x30,0x31,0x01,0x21,0x35,0x21,0x01,0x31,0xfd,0xa1,0x02,0x5f,0x05,0x6b,0x6a,0x00,0x01,0x00,0x94,0xff,0x9d,0x01,0x09, +0x05,0x30,0x00,0x03,0x00,0x15,0xbd,0x00,0x03,0x01,0x50,0x00,0x02,0x00,0x03,0x01,0x4b,0x00,0x00,0x00,0x2f,0x3f,0x01,0x2f,0xed,0x30,0x31,0x05,0x23,0x11,0x33,0x01,0x09,0x75,0x75,0x63,0x05,0x93,0x00,0x01,0x02,0x00,0x05,0x4e,0x02,0xb9,0x06,0x05,0x00,0x0b,0x00,0x17,0xbe,0x00,0x00,0x01,0x51,0x00,0x06,0x00,0x09,0x01,0x55,0x00, +0x03,0x05,0x10,0x00,0x3f,0xed,0x01,0x2f,0xed,0x30,0x31,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x02,0xb9,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0xa9,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x01,0xfd,0x3c,0x05,0x4e,0xfd,0xf5,0x06,0x05,0x00,0x0b,0x00,0x17,0xbe,0x00,0x00,0x01,0x51,0x00,0x06,0x00, +0x09,0x01,0x55,0x00,0x03,0x05,0x10,0x00,0x3f,0xed,0x01,0x2f,0xed,0x30,0x31,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0xfd,0xf5,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0xa9,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x02,0x00,0x70,0xff,0xea,0x01,0x50,0x04,0x16,0x00,0x0b,0x00,0x17,0x00,0x36,0x40,0x12, +0x00,0xb0,0x06,0x10,0x12,0xb0,0x0c,0x13,0x09,0x03,0x15,0xaf,0x1f,0x0f,0x2f,0x0f,0x02,0x0f,0xb8,0xff,0xec,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xec,0xb6,0x0b,0x06,0x4d,0x0f,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x71,0xe1,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x03,0x38,0x42,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x42,0xfc,0xb2,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x00,0x01,0xff,0x9c,0x05,0x77,0x00,0x67,0x06,0x40,0x00,0x0b,0x00,0x17,0xbe,0x00, +0x00,0x01,0x51,0x00,0x06,0x00,0x09,0x01,0x55,0x00,0x03,0x05,0x10,0x00,0x3f,0xed,0x01,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x67,0x38,0x2d,0x2e,0x38,0x36,0x2e,0x2e,0x39,0x05,0xdb,0x2e,0x36,0x34,0x30,0x2e,0x37,0x34,0x00,0x00,0x01,0xff,0x9c,0xfe,0x8d,0x00,0x67,0xff,0x56,0x00,0x0b, +0x00,0x19,0xbc,0x00,0x00,0x01,0x51,0x00,0x06,0x00,0x03,0x01,0x57,0xb2,0x09,0x09,0x0d,0x11,0x00,0x33,0x2f,0xed,0x01,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x67,0x38,0x2d,0x2e,0x38,0x36,0x2e,0x2e,0x39,0xfe,0xf1,0x2e,0x36,0x34,0x30,0x2e,0x37,0x34,0x00,0x00,0x01,0x00,0xa5,0x00,0x00, +0x04,0x9a,0x04,0xd4,0x00,0x28,0x00,0x51,0x40,0x0b,0x1e,0x28,0x17,0x00,0x15,0x08,0x16,0x01,0x01,0x00,0x23,0xb8,0x01,0x50,0xb7,0x20,0x20,0x0f,0x2a,0x17,0x16,0x16,0x0e,0xb8,0x01,0x50,0x40,0x0a,0x0f,0x15,0x08,0x1e,0x28,0x04,0x16,0x17,0x17,0x21,0xbb,0x01,0x4a,0x00,0x0f,0x00,0x00,0x01,0x4d,0x00,0x3f,0x32,0x3f,0x33,0x2f,0x33, +0x17,0x39,0x01,0x2f,0xed,0x33,0x11,0x33,0x11,0x12,0x39,0x2f,0xed,0xc4,0x32,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x2e,0x05,0x27,0x0e,0x03,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x37,0x03,0x37,0x1e,0x03,0x17,0x16,0x17,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x07,0x04,0x9a,0xc5,0x2f,0x51,0x4b,0x4a,0x54, +0x61,0x3c,0x28,0x32,0x1c,0x09,0xa9,0x17,0x34,0x52,0x3c,0xdb,0x8e,0x2d,0x5a,0x54,0x4e,0x22,0x4f,0x46,0xae,0xaa,0x21,0x41,0x61,0x41,0x45,0x75,0x6e,0x6c,0x77,0x88,0x53,0x27,0x4c,0x51,0x5d,0x38,0xfe,0x73,0x01,0x98,0x4c,0x77,0x68,0x5f,0x33,0x01,0x38,0x47,0x3c,0x79,0x74,0x6d,0x30,0x70,0x66,0x63,0xd5,0x01,0x5d,0xfe,0xc1,0x52, +0x85,0x6d,0x5a,0x29,0x00,0x01,0x00,0x50,0x00,0x00,0x04,0x3c,0x04,0xde,0x00,0x24,0x00,0x38,0xb2,0x07,0x07,0x00,0xb8,0x01,0x50,0xb7,0x06,0x12,0x12,0x26,0x09,0x19,0x19,0x16,0x41,0x09,0x01,0x54,0x00,0x1a,0x00,0x1f,0x01,0x4b,0x00,0x06,0x00,0x0a,0x01,0x54,0x00,0x09,0x01,0x4d,0x00,0x3f,0xed,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f, +0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x2f,0x31,0x30,0x01,0x14,0x0e,0x02,0x07,0x07,0x21,0x07,0x21,0x37,0x21,0x32,0x3e,0x04,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x03,0xee,0x17,0x28,0x38,0x20,0x34,0x01,0x19,0x16,0xfc,0x2e,0x18,0x01,0xa6,0x44,0x62,0x44,0x29,0x17,0x07,0xc0,0xb0,0x69, +0xc7,0x53,0x16,0x2a,0x5f,0x60,0x5b,0x27,0x78,0xc7,0x8f,0x4f,0x02,0x66,0x54,0x7b,0x5d,0x47,0x1f,0x32,0xa2,0xa2,0x33,0x52,0x65,0x64,0x59,0x1b,0x86,0xb4,0xad,0x21,0x12,0xa0,0x09,0x0f,0x09,0x05,0x3b,0x7a,0xba,0x7f,0x00,0x01,0x00,0x31,0x00,0x00,0x03,0x17,0x04,0xcd,0x00,0x25,0x00,0x43,0xb3,0x17,0x02,0x02,0x00,0xb8,0x01,0x50, +0xb6,0x01,0x01,0x0b,0x27,0x1e,0x1e,0x0a,0xbb,0x01,0x50,0x00,0x0b,0x00,0x02,0x01,0x56,0xb3,0x17,0x17,0x00,0x1e,0xbd,0x01,0x54,0x00,0x1f,0x01,0x4a,0x00,0x0b,0x00,0x00,0x01,0x4d,0x00,0x3f,0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x33,0x2f,0x11,0x12,0x39,0x2f,0xed,0x33,0x11,0x33,0x31,0x30,0x21,0x23,0x03,0x06,0x06, +0x07,0x0e,0x03,0x07,0x23,0x36,0x37,0x3e,0x03,0x37,0x3e,0x03,0x37,0x03,0x2e,0x03,0x23,0x23,0x37,0x33,0x32,0x1e,0x02,0x17,0x03,0x17,0xa1,0x28,0x4d,0x7b,0x28,0x19,0x29,0x20,0x18,0x0a,0xa9,0x13,0x19,0x0b,0x18,0x1c,0x1f,0x10,0x24,0x54,0x61,0x6b,0x3a,0x1b,0x06,0x2a,0x44,0x5b,0x38,0xc5,0x16,0xaa,0x62,0x99,0x6d,0x3f,0x07,0x01, +0xe0,0x14,0x4e,0x2f,0x1d,0x4f,0x59,0x5e,0x2c,0x4d,0x47,0x1e,0x41,0x3f,0x38,0x15,0x2f,0x45,0x35,0x29,0x13,0x01,0x0e,0x36,0x4c,0x31,0x17,0x91,0x24,0x51,0x84,0x60,0x00,0x01,0x00,0x20,0x00,0x00,0x03,0xab,0x04,0xcd,0x00,0x14,0x00,0x2d,0xb1,0x04,0x14,0xb8,0x01,0x50,0x40,0x09,0x00,0x0c,0x00,0x0c,0x16,0x0a,0x0e,0x04,0x0a,0xbc, +0x01,0x54,0x00,0x0b,0x01,0x4a,0x00,0x00,0x01,0x4d,0x00,0x3f,0x3f,0xed,0x32,0x32,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xed,0x32,0x31,0x30,0x21,0x11,0x34,0x36,0x37,0x22,0x0e,0x02,0x23,0x21,0x37,0x21,0x07,0x23,0x22,0x0e,0x02,0x15,0x11,0x02,0x2e,0x42,0x39,0x0c,0x26,0x27,0x23,0x0a,0xfd,0xfd,0x18,0x03,0x73,0x19,0x37,0x28,0x33, +0x1e,0x0b,0x03,0x32,0x5b,0x81,0x30,0x02,0x02,0x02,0x95,0x95,0x29,0x3e,0x46,0x1e,0xfc,0x93,0x00,0x02,0x00,0xb8,0x00,0x00,0x04,0xc0,0x04,0xde,0x00,0x17,0x00,0x1b,0x00,0x38,0xb9,0x00,0x00,0x01,0x50,0xb3,0x01,0x01,0x1d,0x18,0xb8,0x01,0x50,0xb5,0x19,0x0c,0x0c,0x19,0x0c,0x07,0xb8,0x01,0x54,0xb2,0x1b,0x0d,0x12,0xbb,0x01,0x4b, +0x00,0x19,0x00,0x00,0x01,0x4d,0x00,0x3f,0x32,0x3f,0x33,0xc4,0xed,0x32,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x01,0x23,0x11,0x37,0x04,0xc0,0xab,0x34,0x61,0x8d,0x59,0x3a,0x86,0x83,0x75,0x2a,0x13,0x30,0x73, +0x7f,0x88,0x46,0x6e,0xbc,0x8c,0x4f,0xfc,0xae,0xa9,0xa9,0x02,0xea,0x65,0x88,0x52,0x22,0x0c,0x13,0x17,0x0a,0xa5,0x09,0x10,0x0d,0x08,0x36,0x77,0xba,0x84,0xfd,0x0d,0x02,0xc9,0x51,0x00,0x00,0x01,0x00,0xbe,0x00,0x00,0x01,0x67,0x04,0xcd,0x00,0x03,0x00,0x17,0xbe,0x00,0x00,0x01,0x50,0x00,0x01,0x00,0x00,0x01,0x4d,0x00,0x02,0x01, +0x4a,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x67,0xa9,0xa9,0x04,0xcd,0x00,0x00,0x01,0x00,0x31,0x00,0x00,0x02,0x5f,0x04,0xcd,0x00,0x20,0x00,0x2a,0xb4,0x18,0x0c,0x00,0x00,0x06,0xb8,0x01,0x50,0xb4,0x1e,0x0d,0x13,0x00,0x1e,0xbc,0x01,0x54,0x00,0x1f,0x01,0x4a,0x00,0x0c,0x01,0x4d,0x00,0x3f,0x3f,0xed, +0x32,0x01,0x2f,0x33,0xc6,0xed,0x32,0x2f,0x32,0x32,0x31,0x30,0x01,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x13,0x23,0x03,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x22,0x0e,0x02,0x23,0x23,0x37,0x21,0x02,0x5f,0x31,0x31,0x49,0x31,0x18,0x06,0x07,0x09,0x03,0x6f,0xb1,0x6f,0x02,0x07,0x06,0x04,0x09,0x1e,0x3b,0x31,0x18,0x3b,0x39, +0x33,0x10,0x53,0x13,0x02,0x1b,0x04,0x38,0x1d,0x35,0x4a,0x2c,0x12,0x35,0x39,0x36,0x13,0xfd,0x59,0x02,0xb4,0x0e,0x29,0x31,0x34,0x17,0x1a,0x3c,0x3a,0x34,0x12,0x02,0x01,0x02,0x95,0x00,0x00,0x01,0x00,0xbe,0x00,0x00,0x04,0xba,0x04,0xde,0x00,0x17,0x00,0x30,0xb9,0x00,0x00,0x01,0x50,0xb3,0x01,0x01,0x19,0x0b,0xb8,0x01,0x50,0xb2, +0x0c,0x0a,0x07,0xbe,0x01,0x54,0x00,0x0d,0x00,0x12,0x01,0x4b,0x00,0x0c,0x00,0x00,0x01,0x4d,0x00,0x3f,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x04,0xba,0xab,0x34,0x60,0x8a,0x57,0x53,0xa4,0x3c, +0xa9,0x30,0x7f,0x86,0x83,0x35,0x7f,0xc4,0x86,0x46,0x02,0xf8,0x63,0x82,0x4d,0x1e,0x14,0x0c,0xfb,0xd8,0x04,0xad,0x0a,0x12,0x0d,0x08,0x36,0x77,0xba,0x84,0x00,0x01,0x00,0xa0,0xff,0xed,0x05,0x01,0x04,0xdd,0x00,0x29,0x00,0x3e,0xb9,0x00,0x00,0x01,0x50,0xb6,0x17,0x20,0x17,0x20,0x17,0x2b,0x0d,0xb8,0x01,0x50,0xb2,0x0a,0x20,0x1d, +0x41,0x0a,0x01,0x54,0x00,0x21,0x00,0x24,0x01,0x4b,0x00,0x0b,0x01,0x4a,0x00,0x12,0x01,0x54,0x00,0x05,0x01,0x4e,0x00,0x3f,0xed,0x3f,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x34, +0x2e,0x02,0x23,0x22,0x06,0x07,0x37,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x05,0x01,0x52,0x98,0xd8,0x86,0x7c,0xc7,0x8c,0x4a,0xaa,0x22,0x54,0x90,0x6d,0x67,0x99,0x66,0x33,0x26,0x47,0x63,0x3d,0x35,0x5e,0x30,0x15,0x2c,0x5d,0x41,0x52,0x95,0x72,0x43,0x02,0x56,0x87,0xe3,0xa3,0x5c,0x52,0x9d,0xe6,0x94,0x02,0x77,0xfd,0x96,0x54,0xaa, +0x8a,0x56,0x49,0x7d,0xa5,0x5c,0x8f,0x4c,0x84,0x62,0x39,0x07,0x09,0x94,0x08,0x0b,0x47,0x86,0xc0,0x79,0x00,0x01,0x00,0xbe,0x02,0x27,0x01,0x67,0x04,0xcd,0x00,0x03,0x00,0x14,0xb9,0x00,0x00,0x01,0x50,0xb2,0x01,0x00,0x02,0xb8,0x01,0x4a,0x00,0x3f,0xcd,0x01,0x2f,0xed,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x67,0xa9,0xa9,0x02,0x27, +0x02,0xa6,0x00,0x01,0x00,0x2f,0xfe,0x00,0x03,0xcd,0x04,0xde,0x00,0x13,0x00,0x27,0xb9,0x00,0x00,0x01,0x50,0xb5,0x01,0x01,0x15,0x08,0x08,0x05,0xbd,0x01,0x54,0x00,0x09,0x00,0x0e,0x01,0x4b,0x00,0x00,0x01,0x4f,0x00,0x3f,0x3f,0x33,0xed,0x32,0x01,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x07, +0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x03,0xcd,0xab,0xc0,0xb0,0x69,0xc7,0x53,0x16,0x2a,0x5f,0x60,0x5b,0x27,0x78,0xc7,0x8f,0x4f,0xfe,0x00,0x04,0xea,0xb4,0xad,0x21,0x12,0xa0,0x09,0x0f,0x09,0x05,0x3b,0x7a,0xba,0x7f,0x00,0x00,0x01,0x00,0x4e,0xff,0xed,0x03,0xeb,0x04,0xde,0x00,0x25,0x00,0x35,0xb9,0x00,0x00,0x01,0x50,0xb6, +0x11,0x11,0x27,0x08,0x1b,0x1b,0x16,0x41,0x0a,0x01,0x54,0x00,0x1c,0x00,0x21,0x01,0x4b,0x00,0x09,0x00,0x0c,0x01,0x54,0x00,0x08,0x00,0x03,0x01,0x4e,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f,0x33,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x10,0x00,0x21,0x22,0x2e,0x02,0x27,0x37,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34, +0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x03,0xeb,0xfe,0xcb,0xfe,0xc4,0x28,0x53,0x4b,0x3d,0x12,0x15,0x2f,0x81,0x46,0x77,0xae,0x72,0x37,0x33,0x6e,0xab,0x78,0x1b,0x4d,0x53,0x51,0x20,0x14,0x1d,0x4a,0x4f,0x51,0x24,0x91,0xe2,0x9a,0x51,0x02,0x5f,0xfe,0xc7,0xfe,0xc7,0x07,0x0b,0x0d,0x07,0x8d,0x0a, +0x12,0x38,0x75,0xb4,0x7d,0x76,0xb5,0x7b,0x40,0x04,0x07,0x0b,0x06,0x8f,0x08,0x0d,0x09,0x05,0x4b,0x9d,0xf1,0x00,0x00,0x01,0x00,0x59,0x00,0x00,0x03,0xeb,0x06,0xa0,0x00,0x2b,0x00,0x39,0xb9,0x00,0x00,0x01,0x50,0xb6,0x1d,0x0e,0x1d,0x0e,0x1d,0x2d,0x26,0x41,0x0c,0x01,0x50,0x00,0x23,0x00,0x23,0x01,0x54,0x00,0x26,0x01,0x4a,0x00, +0x24,0x01,0x4c,0x00,0x0f,0x01,0x54,0x00,0x0e,0x01,0x4d,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x03,0x0e,0x03,0x07,0x0e,0x03,0x07,0x37,0x32,0x3e,0x02,0x37,0x3e,0x03,0x37,0x13,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x21,0x11,0x33,0x11,0x21,0x32,0x1e,0x02, +0x03,0xeb,0x05,0x02,0x1c,0x06,0x1a,0x2d,0x41,0x2d,0x2f,0x7e,0x85,0x7e,0x2f,0x32,0x1a,0x48,0x4f,0x4f,0x1f,0x25,0x38,0x27,0x18,0x05,0x1b,0x01,0x05,0x22,0x3f,0x5a,0x37,0xfe,0x0a,0xa9,0x01,0x6e,0x56,0x8c,0x63,0x36,0x03,0x95,0x1c,0x3e,0x13,0xfe,0xe1,0x3b,0x76,0x6c,0x60,0x25,0x27,0x29,0x13,0x03,0x01,0x8e,0x03,0x0b,0x15,0x12, +0x15,0x42,0x53,0x5f,0x31,0x01,0x1a,0x0a,0x38,0x19,0x30,0x4a,0x32,0x1a,0x02,0x68,0xfe,0x2d,0x2f,0x54,0x72,0x00,0x00,0x02,0x00,0xbe,0x00,0x00,0x04,0xe2,0x04,0xde,0x00,0x0b,0x00,0x16,0x00,0x36,0xb9,0x00,0x00,0x01,0x50,0xb3,0x0c,0x0c,0x18,0x16,0xb8,0x01,0x50,0xb2,0x02,0x15,0x12,0x41,0x09,0x01,0x54,0x00,0x03,0x00,0x06,0x01, +0x4b,0x00,0x00,0x00,0x16,0x01,0x54,0x00,0x02,0x01,0x4d,0x00,0x3f,0xed,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x07,0x21,0x11,0x36,0x24,0x33,0x32,0x1e,0x02,0x15,0x03,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x11,0x04,0xe2,0x31,0xfc,0x0d,0x80,0x01,0x00,0x86,0x82,0xca,0x8a,0x48,0xab,0x37, +0x69,0x96,0x60,0x6a,0x9c,0x34,0xa9,0xa9,0x04,0xac,0x17,0x1b,0x42,0x7e,0xb6,0x75,0xfd,0xaf,0x02,0x53,0x5b,0x80,0x52,0x26,0x14,0x0b,0xfc,0x79,0x00,0x01,0x00,0xa4,0xff,0xed,0x04,0xe8,0x04,0xe5,0x00,0x33,0x00,0x4b,0xb9,0x00,0x00,0x01,0x50,0x40,0x09,0x11,0x08,0x11,0x08,0x35,0x28,0x27,0x2b,0x22,0xb8,0x01,0x50,0xb2,0x23,0x21, +0x19,0x41,0x0d,0x01,0x54,0x00,0x2b,0x00,0x2e,0x01,0x4a,0x00,0x27,0x00,0x28,0x01,0x4b,0x00,0x23,0x01,0x4d,0x00,0x0c,0x01,0x54,0x00,0x05,0x01,0x4e,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0x32,0xc6,0x32,0x12,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x37,0x16,0x16, +0x33,0x32,0x3e,0x02,0x35,0x35,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x07,0x06,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x27,0x37,0x16,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x04,0xe8,0x31,0x60,0x8e,0x5c,0x35,0x62,0x26,0x2c,0x21,0x40,0x28,0x38,0x51,0x35,0x1a,0x0e,0x21,0x38,0x52,0x71,0x4a,0x2c,0x5f,0x57,0x4a,0x17,0x09,0x0f, +0xa9,0x0a,0x17,0x94,0x16,0x1a,0x02,0x4a,0xba,0x75,0x7e,0xc1,0x83,0x43,0x01,0xb9,0x6f,0xab,0x75,0x3d,0x13,0x11,0x85,0x08,0x09,0x2a,0x4c,0x69,0x40,0xf8,0x30,0x64,0x5f,0x54,0x3e,0x25,0x15,0x29,0x3d,0x29,0x11,0x27,0x14,0xfc,0xaa,0x03,0xf5,0x2e,0x55,0x2d,0x40,0x20,0x54,0x3f,0x50,0x5c,0x52,0x94,0xcc,0x7a,0x00,0x01,0x00,0xbe, +0xfd,0xff,0x01,0x67,0x04,0xcd,0x00,0x03,0x00,0x17,0xbe,0x00,0x00,0x01,0x50,0x00,0x01,0x00,0x00,0x01,0x4f,0x00,0x02,0x01,0x4a,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x67,0xa9,0xa9,0xfd,0xff,0x06,0xce,0x00,0x00,0x01,0x00,0x67,0x00,0x00,0x02,0x87,0x04,0xde,0x00,0x19,0x00,0x33,0xb9,0x00,0x00,0x01, +0x50,0x40,0x09,0x03,0x03,0x01,0x1b,0x0e,0x0e,0x01,0x0e,0x09,0xbf,0x01,0x54,0x00,0x0f,0x00,0x12,0x01,0x4b,0x00,0x02,0x01,0x54,0x00,0x01,0x01,0x4d,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x01,0x2f,0x33,0x2f,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x21,0x37,0x21,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x37,0x36,0x36,0x33, +0x32,0x1e,0x04,0x15,0x02,0x87,0xfd,0xe0,0x13,0x01,0x62,0x0d,0x2b,0x52,0x44,0x0f,0x24,0x24,0x1f,0x08,0x18,0x1c,0x56,0x25,0x45,0x65,0x49,0x2f,0x1b,0x0b,0xa2,0x02,0x7b,0x41,0x6d,0x50,0x2c,0x02,0x03,0x04,0x02,0x94,0x06,0x08,0x22,0x3e,0x54,0x64,0x71,0x3a,0x00,0x02,0x00,0x96,0xff,0xed,0x04,0xf7,0x04,0xde,0x00,0x14,0x00,0x27, +0x00,0x32,0xb9,0x00,0x00,0x01,0x50,0xb3,0x15,0x15,0x29,0x1e,0xb8,0x01,0x50,0xb2,0x0a,0x1d,0x1a,0xbf,0x01,0x54,0x00,0x0b,0x00,0x10,0x01,0x4b,0x00,0x23,0x01,0x54,0x00,0x05,0x01,0x4e,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x3e,0x03, +0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x04,0xf7,0x4f,0x96,0xd9,0x8a,0x89,0xca,0x85,0x41,0x3c,0x87,0x8f,0x92,0x45,0x8c,0xd5,0x8f,0x48,0xab,0x2f,0x63,0x9a,0x6b,0x63,0xc4,0x4f,0x22,0x55,0x90,0x6d,0x6f,0x9c,0x61,0x2d,0x02,0x56,0x82,0xe1,0xa7,0x5f,0x5b,0xa4,0xe3, +0x87,0x02,0x59,0x09,0x11,0x0d,0x08,0x61,0xac,0xee,0x8d,0x68,0xb5,0x85,0x4d,0x10,0x0b,0xfe,0x39,0x54,0xaa,0x8a,0x56,0x55,0x86,0xa5,0x00,0x01,0x00,0x59,0xff,0x94,0x04,0x2b,0x04,0xcd,0x00,0x17,0x00,0x3a,0xb2,0x10,0x0d,0x00,0xb8,0x01,0x50,0xb5,0x0d,0x0e,0x15,0x15,0x19,0x0f,0xb8,0x01,0x51,0xb7,0x0e,0x08,0x08,0x0e,0x0d,0x10, +0x16,0x0e,0xbb,0x01,0x4a,0x00,0x08,0x01,0x54,0x00,0x07,0x00,0x2f,0xed,0x3f,0x33,0x39,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x11,0x33,0x31,0x30,0x01,0x14,0x0e,0x04,0x07,0x27,0x3e,0x03,0x37,0x01,0x33,0x01,0x3e,0x03,0x35,0x11,0x33,0x04,0x2b,0x4d,0x86,0xb4,0xcd,0xdb,0x6b,0x2f,0x31,0x68,0x65,0x5f, +0x28,0xfe,0x72,0xb6,0x01,0x70,0x38,0x5e,0x46,0x27,0xa9,0x02,0x64,0x91,0xd3,0x95,0x61,0x3f,0x27,0x10,0xa5,0x05,0x0d,0x13,0x17,0x0d,0x04,0x4b,0xfb,0xe8,0x1b,0x46,0x5f,0x7c,0x50,0x02,0x8c,0x00,0x00,0x01,0x00,0x6c,0xfd,0xff,0x04,0x39,0x04,0xde,0x00,0x1b,0x00,0x3d,0xb9,0x00,0x00,0x01,0x50,0xb6,0x01,0x0e,0x01,0x0e,0x01,0x1d, +0x0d,0xbb,0x01,0x50,0x00,0x10,0x00,0x10,0x01,0x54,0xb4,0x0d,0x0d,0x1c,0x0c,0x07,0xbc,0x01,0x54,0x00,0x11,0x00,0x16,0x01,0x4b,0x00,0x00,0x00,0x2f,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x11,0x21,0x07,0x21, +0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x04,0x39,0xab,0x30,0x6a,0xaa,0x7a,0x16,0x34,0x33,0x2e,0x11,0x01,0x18,0x19,0xfe,0x59,0x24,0x57,0x5e,0x5f,0x2c,0xa5,0xeb,0x94,0x45,0xfd,0xff,0x04,0x73,0x81,0xb3,0x70,0x32,0x04,0x06,0x08,0x04,0xfe,0x65,0x96,0x02,0xaa,0x0b,0x12,0x0e,0x08,0x47,0x98,0xec,0xa5,0x00,0x00,0x01,0x00,0x96, +0xff,0xed,0x04,0x9c,0x04,0xde,0x00,0x27,0x00,0x51,0xb9,0x00,0x00,0x01,0x50,0xb6,0x13,0x1b,0x13,0x1b,0x13,0x29,0x1a,0xb8,0x01,0x50,0xb4,0x1d,0x0a,0x0a,0x1d,0x1d,0xb8,0x01,0x54,0xb4,0x1a,0x1a,0x0e,0x19,0x16,0x41,0x0a,0x01,0x54,0x00,0x1e,0x00,0x23,0x01,0x4b,0x00,0x0b,0x00,0x0e,0x01,0x54,0x00,0x0a,0x00,0x05,0x01,0x4e,0x00, +0x3f,0x33,0xed,0x32,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0x32,0x2f,0x10,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x37,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x02,0x23,0x22,0x06,0x07,0x11,0x21,0x07,0x21,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x04,0x9c,0x54, +0x9c,0xde,0x8a,0x2d,0x70,0x74,0x70,0x2d,0x1c,0x4b,0xbc,0x7d,0x6a,0xa4,0x71,0x3a,0xca,0xd4,0x5c,0x94,0x26,0x01,0x4c,0x1c,0xfe,0x2b,0x2c,0x71,0x75,0x70,0x2c,0x8f,0xdf,0x9a,0x50,0x02,0x59,0xa0,0xea,0x98,0x4a,0x06,0x0c,0x14,0x0e,0x96,0x14,0x1c,0x32,0x6d,0xaf,0x7e,0xf2,0x01,0x03,0x11,0x0b,0xfe,0x7f,0x96,0x02,0x8b,0x0f,0x17, +0x10,0x08,0x50,0xa1,0xf2,0x00,0x00,0x01,0x00,0x1e,0xfd,0xff,0x04,0x03,0x04,0xe5,0x00,0x22,0x00,0x44,0xb3,0x17,0x09,0x06,0x0a,0xb8,0x01,0x50,0xb4,0x0b,0x0b,0x12,0x20,0x00,0xb8,0x01,0x50,0x40,0x0e,0x1f,0x1c,0x1c,0x24,0x13,0x12,0x12,0x13,0x13,0x17,0x06,0x0a,0x1f,0x20,0xba,0x01,0x4b,0x00,0x0a,0x01,0x4f,0x00,0x3f,0x3f,0x33, +0x12,0x39,0x39,0x33,0x2f,0x33,0x01,0x2f,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x32,0x32,0x32,0x31,0x30,0x01,0x14,0x0e,0x02,0x07,0x07,0x16,0x16,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x01,0x37,0x01,0x16,0x16,0x17,0x3e,0x03,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x04,0x03,0x1e,0x44,0x70,0x52,0x61,0x05,0x02, +0xa9,0x0a,0x17,0x27,0x1e,0xfe,0xa8,0xab,0x01,0x36,0x1d,0x32,0x0c,0x4a,0x63,0x3b,0x19,0x1d,0x14,0xa3,0x17,0x1f,0x03,0xd4,0x59,0x96,0x7a,0x61,0x24,0x2b,0x26,0x50,0x20,0xfc,0xda,0x03,0x23,0x3a,0x62,0x5a,0x54,0x2d,0x02,0x05,0x40,0xfe,0x1f,0x2d,0x6b,0x2d,0x20,0x4e,0x60,0x72,0x44,0x4c,0x72,0x29,0x42,0x32,0x8e,0x00,0x00,0x01, +0x00,0x4b,0x00,0x00,0x04,0x25,0x04,0xd4,0x00,0x14,0x00,0x4e,0xb3,0x05,0x0d,0x0c,0x06,0xb8,0x01,0x51,0xb3,0x0a,0x0a,0x08,0x00,0xb8,0x01,0x50,0x40,0x10,0x12,0x12,0x08,0x16,0x0c,0x0b,0x0b,0x08,0x05,0x0d,0x06,0x0c,0x13,0x13,0x0b,0x0c,0xbd,0x01,0x4a,0x00,0x06,0x00,0x09,0x01,0x54,0x00,0x08,0x01,0x4d,0x00,0x3f,0xed,0x32,0x3f, +0x33,0x33,0x2f,0x11,0x12,0x39,0x39,0x01,0x2f,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x31,0x30,0x01,0x14,0x0e,0x02,0x07,0x13,0x07,0x21,0x37,0x21,0x01,0x37,0x01,0x3e,0x03,0x35,0x11,0x33,0x04,0x25,0x28,0x48,0x64,0x3c,0xdc,0x2c,0xfc,0x86,0x2d,0x02,0xb3,0xfd,0x39,0x9a,0x01,0xc9,0x23,0x41, +0x32,0x1e,0xaa,0x03,0xd4,0x60,0x94,0x77,0x62,0x2f,0xfe,0xca,0xa2,0xa2,0x03,0xee,0x44,0xfd,0x74,0x15,0x42,0x5c,0x76,0x47,0x01,0x15,0x00,0x02,0x00,0x42,0xfd,0xff,0x04,0xd2,0x04,0xde,0x00,0x29,0x00,0x2d,0x00,0x46,0xb9,0x00,0x00,0x01,0x50,0xb6,0x15,0x09,0x15,0x09,0x15,0x2f,0x2a,0xb8,0x01,0x50,0xb2,0x1f,0x2b,0x2a,0xb8,0x01, +0x4f,0xb4,0x2c,0x2c,0x0a,0x1f,0x1a,0xbf,0x01,0x54,0x00,0x20,0x00,0x25,0x01,0x4b,0x00,0x0a,0x01,0x54,0x00,0x09,0x01,0x4e,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0x3f,0x01,0x2f,0xc6,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x07,0x0e,0x03,0x07,0x37,0x3e,0x03,0x37,0x37,0x3e,0x03,0x35, +0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x01,0x23,0x11,0x33,0x04,0xd2,0x02,0x02,0x08,0x10,0x60,0x9f,0xdf,0x90,0x15,0x5e,0x99,0x72,0x47,0x0c,0x0d,0x01,0x01,0x01,0x01,0x2a,0x58,0x88,0x5f,0x5b,0xa4,0x9b,0x97,0x4e,0x20,0x2d,0x7f,0x9a,0xad,0x5a,0x91,0xcf,0x85,0x3e,0xfc,0x9c,0xa9,0xa9,0x03, +0x4a,0x10,0x35,0x11,0x68,0xb7,0xf7,0x9a,0x4c,0x0b,0xa1,0x0b,0x35,0x69,0xaa,0x80,0x8a,0x09,0x1a,0x1b,0x1a,0x09,0x44,0x61,0x3e,0x1d,0x0a,0x11,0x18,0x0e,0xa6,0x06,0x10,0x0d,0x0a,0x32,0x65,0x97,0xfa,0x4f,0x04,0xe2,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xcd,0x04,0xde,0x00,0x13,0x00,0x27,0xb9,0x00,0x00,0x01,0x50,0xb5,0x01,0x01, +0x15,0x08,0x08,0x05,0xbd,0x01,0x54,0x00,0x09,0x00,0x0e,0x01,0x4b,0x00,0x00,0x01,0x4d,0x00,0x3f,0x3f,0x33,0xed,0x32,0x01,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x03,0xcd,0xab,0xc0,0xb0,0x69,0xc7,0x53,0x16,0x2a,0x5f,0x60,0x5b,0x27,0x78,0xc7, +0x8f,0x4f,0x02,0xea,0xb4,0xad,0x21,0x12,0xa0,0x09,0x0f,0x09,0x05,0x3b,0x7a,0xba,0x7f,0x00,0x00,0x01,0x00,0x6e,0x00,0x00,0x05,0xd8,0x04,0xcd,0x00,0x31,0x00,0x56,0xbc,0x00,0x00,0x01,0x50,0x00,0x31,0x00,0x1b,0x01,0x50,0x40,0x0d,0x1a,0x31,0x1a,0x31,0x1a,0x33,0x0c,0x26,0x25,0x25,0x0e,0x0e,0x0d,0xb8,0x01,0x51,0xb2,0x0b,0x0c, +0x25,0xb8,0x01,0x54,0xb3,0x0e,0x0e,0x00,0x26,0xba,0x01,0x54,0x00,0x0b,0x01,0x4d,0xb2,0x1a,0x0c,0x00,0xb8,0x01,0x4a,0x00,0x3f,0x32,0x32,0x3f,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x33,0xed,0x32,0x11,0x33,0x11,0x33,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x07,0x06,0x06,0x07,0x0e,0x03,0x23,0x21, +0x03,0x33,0x13,0x3e,0x05,0x37,0x36,0x36,0x37,0x36,0x37,0x33,0x06,0x07,0x06,0x06,0x07,0x0e,0x03,0x07,0x17,0x21,0x32,0x3e,0x02,0x37,0x36,0x36,0x37,0x36,0x37,0x05,0xd8,0x06,0x0a,0x08,0x1a,0x14,0x13,0x4f,0x7e,0xaf,0x73,0xfd,0x97,0xb9,0xb3,0x6b,0x3b,0x5f,0x4a,0x38,0x2a,0x1d,0x09,0x05,0x0a,0x05,0x05,0x05,0xb0,0x04,0x05,0x05, +0x0a,0x06,0x0e,0x3e,0x76,0xb9,0x89,0x18,0x01,0xd6,0x3c,0x6b,0x58,0x40,0x10,0x16,0x1c,0x08,0x0a,0x05,0x04,0xcd,0x33,0x54,0x48,0xe8,0xab,0xa8,0xeb,0x94,0x44,0x04,0xcd,0xfd,0x0e,0x12,0x24,0x31,0x44,0x61,0x85,0x5a,0x2e,0x5d,0x26,0x2d,0x29,0x24,0x2c,0x26,0x62,0x39,0x8a,0xc9,0x93,0x66,0x27,0xa7,0x27,0x64,0xad,0x85,0xa6,0xea, +0x4c,0x59,0x39,0x00,0x00,0x01,0x00,0x34,0xff,0xed,0x05,0x23,0x04,0xde,0x00,0x2d,0x00,0x47,0xb2,0x22,0x22,0x0b,0xb8,0x01,0x50,0xb3,0x1e,0x1e,0x15,0x00,0xb8,0x01,0x50,0x40,0x09,0x01,0x01,0x2f,0x15,0x22,0x0a,0x0a,0x1f,0x07,0x41,0x09,0x01,0x54,0x00,0x23,0x00,0x28,0x01,0x4b,0x00,0x1a,0x01,0x54,0x00,0x12,0x01,0x4e,0x00,0x01, +0x00,0x2f,0x3f,0xed,0x3f,0x33,0xed,0x32,0x32,0x11,0x33,0x01,0x2f,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0x33,0x2f,0x31,0x30,0x21,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x11,0x14,0x0e,0x04,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x06,0x06,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x05, +0x23,0xab,0x39,0x71,0xaa,0x71,0x33,0x6f,0x39,0x04,0x12,0x24,0x42,0x64,0x48,0x1d,0x3e,0x21,0x13,0x14,0x20,0x0f,0x2e,0x3e,0x27,0x11,0x2c,0x4c,0x1e,0x13,0x37,0x81,0x8f,0x9a,0x4f,0x7c,0xd5,0x9d,0x5a,0x02,0xea,0x61,0x86,0x54,0x26,0x08,0x06,0xfd,0x73,0x3d,0x72,0x64,0x54,0x3b,0x21,0x04,0x05,0x91,0x04,0x01,0x1f,0x44,0x69,0x49, +0x02,0x90,0x07,0x0f,0x06,0xa5,0x09,0x10,0x0d,0x08,0x36,0x77,0xba,0x84,0xff,0xff,0x00,0xbe,0x00,0x00,0x03,0x70,0x04,0xcd,0x00,0x26,0x0b,0x6d,0x00,0x00,0x00,0x07,0x0b,0x6d,0x02,0x09,0x00,0x00,0xff,0xff,0x00,0xbe,0x00,0x00,0x03,0x70,0x04,0xcd,0x00,0x27,0x0b,0x6d,0x02,0x09,0x00,0x00,0x00,0x06,0x0b,0x71,0x00,0x00,0xff,0xff, +0x00,0xbe,0x02,0x27,0x03,0x70,0x04,0xcd,0x00,0x26,0x0b,0x71,0x00,0x00,0x00,0x07,0x0b,0x71,0x02,0x09,0x00,0x00,0x00,0x01,0x00,0x6e,0x03,0x0e,0x01,0x70,0x04,0xcc,0x00,0x03,0x00,0x11,0xb5,0x03,0x00,0x01,0x02,0x00,0x02,0x00,0x2f,0xcd,0x01,0x2f,0x33,0xcd,0x32,0x30,0x31,0x01,0x03,0x23,0x13,0x01,0x70,0x8c,0x76,0x6f,0x04,0xcc, +0xfe,0x42,0x01,0xbe,0x00,0x02,0x00,0x6e,0x03,0x0e,0x02,0xa0,0x04,0xcc,0x00,0x03,0x00,0x07,0x00,0x20,0x40,0x0d,0x03,0x00,0x01,0x02,0x07,0x04,0x05,0x06,0x00,0x02,0x02,0x04,0x06,0x00,0x2f,0xcd,0x33,0x2f,0xcd,0x01,0x2f,0x33,0xdd,0x32,0xd6,0x32,0xcd,0x32,0x30,0x31,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0xa0,0x8c,0x76, +0x6c,0x9a,0x8c,0x76,0x6f,0x04,0xcc,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x01,0xbe,0x00,0xff,0xff,0x00,0x2f,0xfe,0x00,0x03,0xcd,0x04,0xde,0x02,0x26,0x0b,0x72,0x00,0x00,0x00,0x07,0x0b,0x53,0x01,0x48,0x02,0xfb,0xff,0xff,0x00,0x2f,0xfe,0x00,0x03,0xcd,0x04,0xde,0x02,0x26,0x0b,0x72,0x00,0x00,0x00,0x07,0x0b,0x5b,0x00,0xce,0x02,0xfb, +0xff,0xff,0xff,0x51,0x00,0x00,0x03,0xeb,0x06,0xa0,0x02,0x26,0x0b,0x74,0x00,0x00,0x00,0x06,0x0b,0x5c,0xad,0x00,0xff,0xff,0xff,0x51,0x00,0x00,0x03,0xeb,0x06,0xa0,0x02,0x26,0x0b,0x74,0x00,0x00,0x00,0x26,0x0b,0x5c,0xad,0x00,0x00,0x07,0x0b,0x5e,0x01,0xc6,0x00,0x00,0x00,0x03,0x00,0xbe,0x01,0x58,0x03,0x95,0x04,0xcd,0x00,0x03, +0x00,0x07,0x00,0x0b,0x00,0x30,0xb1,0x03,0x0b,0xb8,0x01,0x50,0xb3,0x0a,0x0a,0x0d,0x07,0xb8,0x01,0x50,0xb2,0x02,0x06,0x0a,0xb8,0x01,0x4b,0xb4,0x00,0x02,0x09,0x04,0x06,0xb8,0x01,0x4b,0x00,0x3f,0xdd,0x32,0xde,0xcd,0x3f,0x01,0x2f,0x33,0xed,0x12,0x39,0x2f,0xed,0x32,0x30,0x31,0x01,0x21,0x35,0x21,0x25,0x23,0x11,0x33,0x01,0x23, +0x11,0x33,0x03,0x95,0xfd,0x29,0x02,0xd7,0xfd,0xd2,0xa9,0xa9,0x02,0x2e,0xa9,0xa9,0x01,0x58,0x6a,0x65,0x02,0xa6,0xfd,0x5a,0x02,0xa6,0x00,0x01,0x00,0x59,0x00,0x00,0x04,0x2b,0x04,0xcd,0x00,0x16,0x00,0x3a,0xb2,0x0f,0x0c,0x16,0xb8,0x01,0x50,0xb5,0x0c,0x0d,0x15,0x15,0x18,0x0e,0xb8,0x01,0x51,0xb7,0x0d,0x08,0x08,0x0d,0x0c,0x0f, +0x16,0x0e,0xbb,0x01,0x4a,0x00,0x08,0x01,0x54,0x00,0x07,0x00,0x2f,0xed,0x3f,0x33,0x39,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x11,0x33,0x31,0x30,0x01,0x14,0x0e,0x03,0x23,0x23,0x27,0x33,0x32,0x32,0x37,0x01,0x33,0x01,0x3e,0x03,0x35,0x11,0x33,0x04,0x2b,0x4d,0x86,0xb4,0xaf,0x9a,0xca,0x2f,0xcd,0x33, +0x53,0x2b,0xfe,0x79,0xb6,0x01,0x70,0x38,0x5e,0x46,0x27,0xa9,0x02,0x80,0x91,0xd3,0x95,0x61,0x26,0xa2,0x08,0x04,0x23,0xfc,0x04,0x1b,0x46,0x5f,0x7c,0x50,0x02,0x70,0xff,0xff,0x00,0xa5,0x00,0x00,0x04,0x9a,0x04,0xd4,0x02,0x06,0x0b,0x68,0x00,0x00,0xff,0xff,0x00,0x20,0x00,0x00,0x03,0xab,0x04,0xcd,0x02,0x06,0x0b,0x6b,0x00,0x00, +0xff,0xff,0x00,0xb8,0x00,0x00,0x04,0xc0,0x04,0xde,0x02,0x06,0x0b,0x6c,0x00,0x00,0xff,0xff,0x00,0x4e,0xff,0xed,0x03,0xeb,0x04,0xde,0x02,0x06,0x0b,0x73,0x00,0x00,0xff,0xff,0x00,0x59,0x00,0x00,0x03,0xeb,0x06,0xa0,0x02,0x06,0x0b,0x74,0x00,0x00,0xff,0xff,0x00,0xbe,0x00,0x00,0x04,0xe2,0x04,0xde,0x02,0x06,0x0b,0x75,0x00,0x00, +0xff,0xff,0x00,0x2f,0x00,0x00,0x03,0xcd,0x04,0xde,0x02,0x06,0x0b,0x80,0x00,0x00,0xff,0xff,0x00,0x34,0xff,0xed,0x05,0x23,0x04,0xde,0x02,0x06,0x0b,0x82,0x00,0x00,0x00,0x01,0x00,0x5f,0x02,0x12,0x04,0x0b,0x04,0x2b,0x00,0x07,0x00,0x19,0xb1,0x07,0x05,0xb8,0x01,0x50,0xb5,0x02,0x04,0x06,0x00,0x02,0x04,0x00,0x2f,0xde,0xcd,0x33, +0x01,0x2f,0xce,0xfd,0xce,0x30,0x31,0x01,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x04,0x0b,0xfc,0x54,0x01,0x93,0x85,0x01,0x94,0x02,0x12,0x86,0x01,0x93,0xfe,0x6d,0x00,0xff,0xff,0x00,0x6e,0x00,0x00,0x05,0xde,0x06,0x05,0x02,0x26,0x0b,0x81,0x00,0x00,0x00,0x07,0x0b,0x63,0x03,0x25,0x00,0x00,0xff,0xff,0x00,0x61,0x00,0x00,0x05,0xd8, +0x06,0x05,0x02,0x26,0x0b,0x81,0x00,0x00,0x00,0x07,0x0b,0x64,0x03,0x25,0x00,0x00,0xff,0xff,0x00,0x6e,0x00,0x00,0x05,0xde,0x06,0x05,0x02,0x26,0x0b,0x81,0x00,0x00,0x00,0x27,0x0b,0x63,0x03,0x25,0x00,0x00,0x00,0x07,0x0b,0x5e,0x03,0xc0,0xff,0x2a,0xff,0xff,0x00,0x61,0x00,0x00,0x05,0xd8,0x06,0x05,0x02,0x26,0x0b,0x81,0x00,0x00, +0x00,0x27,0x0b,0x64,0x03,0x25,0x00,0x00,0x00,0x07,0x0b,0x5e,0x03,0xc0,0xff,0x2a,0xff,0xff,0x00,0xa5,0xff,0x38,0x04,0x9a,0x04,0xd4,0x02,0x26,0x0b,0x68,0x00,0x00,0x00,0x07,0x0b,0x5a,0x01,0xae,0x00,0x00,0xff,0xff,0x00,0xa5,0xfe,0x59,0x04,0x9a,0x04,0xd4,0x02,0x26,0x0b,0x68,0x00,0x00,0x00,0x07,0x0b,0x5b,0x01,0xae,0x00,0x00, +0xff,0xff,0x00,0xa5,0x00,0x00,0x04,0x9a,0x04,0xd4,0x02,0x26,0x0b,0x68,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0x3a,0xfe,0x43,0xff,0xff,0x00,0x50,0x00,0x00,0x04,0x3c,0x04,0xde,0x02,0x26,0x0b,0x69,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0xd3,0x00,0x00,0xff,0xff,0x00,0x31,0x00,0x00,0x03,0x17,0x04,0xcd,0x02,0x26,0x0b,0x6a,0x00,0x00, +0x00,0x07,0x0b,0x5e,0x01,0x10,0x00,0x8c,0xff,0xff,0x00,0x20,0x00,0x00,0x03,0xab,0x04,0xcd,0x02,0x26,0x0b,0x6b,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0x36,0x00,0x00,0xff,0xff,0x00,0xb8,0x00,0x00,0x04,0xc0,0x04,0xde,0x02,0x26,0x0b,0x6c,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0xb8,0x00,0x00,0xff,0xff,0xff,0xfb,0x00,0x00,0x01,0xad, +0x04,0xcd,0x00,0x26,0x0b,0x6d,0x46,0x00,0x00,0x06,0x0b,0x5e,0x56,0x00,0xff,0xff,0xff,0xfa,0x00,0x00,0x02,0x87,0x04,0xcd,0x00,0x26,0x0b,0x6e,0x28,0x00,0x00,0x06,0x0b,0x5e,0x55,0x00,0xff,0xff,0x00,0xa0,0xff,0xed,0x05,0x01,0x04,0xdd,0x02,0x26,0x0b,0x70,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0xc7,0x00,0x00,0xff,0xff,0xff,0xfb, +0x02,0x27,0x01,0xad,0x04,0xcd,0x00,0x26,0x0b,0x71,0x46,0x00,0x00,0x07,0x0b,0x5e,0x00,0x56,0x01,0x0e,0xff,0xff,0x00,0x2f,0xfe,0x00,0x03,0xcd,0x04,0xde,0x02,0x26,0x0b,0x72,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0xa4,0x00,0x00,0xff,0xff,0x00,0x4e,0xff,0xed,0x03,0xeb,0x04,0xde,0x02,0x26,0x0b,0x73,0x00,0x00,0x00,0x07,0x0b,0x5e, +0x01,0xa4,0x00,0x00,0xff,0xff,0x00,0x59,0x00,0x00,0x03,0xeb,0x06,0xa0,0x02,0x26,0x0b,0x74,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0xc6,0x00,0x00,0xff,0xff,0x00,0xa4,0xff,0xed,0x04,0xe8,0x04,0xe5,0x02,0x26,0x0b,0x76,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0xd2,0x00,0x00,0xff,0xff,0x00,0x67,0x00,0x00,0x02,0x87,0x04,0xde,0x02,0x26, +0x0b,0x78,0x00,0x00,0x00,0x07,0x0b,0x5e,0x00,0xfa,0x00,0x00,0xff,0xff,0x00,0x96,0xff,0xed,0x04,0xf7,0x04,0xde,0x02,0x26,0x0b,0x79,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0xb2,0x00,0x00,0xff,0xff,0x00,0x6c,0xfd,0xff,0x04,0x39,0x04,0xde,0x02,0x26,0x0b,0x7b,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0xd5,0xff,0xd9,0xff,0xff,0x00,0x96, +0xff,0xed,0x04,0x9c,0x04,0xde,0x02,0x26,0x0b,0x7c,0x00,0x00,0x00,0x07,0x0b,0x5e,0x03,0x2f,0xff,0xf7,0xff,0xff,0x00,0x4b,0x00,0x00,0x04,0x25,0x04,0xd4,0x02,0x26,0x0b,0x7e,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0x68,0xff,0x16,0xff,0xff,0x00,0x42,0xfd,0xff,0x04,0xd2,0x04,0xde,0x02,0x26,0x0b,0x7f,0x00,0x00,0x00,0x07,0x0b,0x5e, +0x02,0xad,0x00,0x00,0xff,0xff,0x00,0x2f,0x00,0x00,0x03,0xcd,0x04,0xde,0x02,0x26,0x0b,0x80,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0xb3,0x00,0x00,0xff,0xff,0x00,0x6e,0x00,0x00,0x05,0xd8,0x04,0xcd,0x02,0x26,0x0b,0x81,0x00,0x00,0x00,0x07,0x0b,0x5e,0x03,0xc0,0xff,0x2a,0xff,0xff,0x00,0x34,0xff,0xed,0x05,0x23,0x04,0xde,0x02,0x26, +0x0b,0x82,0x00,0x00,0x00,0x07,0x0b,0x5e,0x03,0x20,0x00,0x00,0xff,0xff,0x00,0xb5,0x00,0x00,0x01,0x6e,0x06,0x05,0x02,0x26,0x0b,0x6d,0x00,0x00,0x00,0x07,0x0b,0x5c,0x01,0x11,0x00,0x00,0xff,0xff,0x00,0x50,0x00,0x00,0x04,0x3c,0x05,0xd5,0x02,0x26,0x0b,0x69,0x00,0x00,0x00,0x07,0x0b,0x61,0x01,0xea,0x00,0x00,0xff,0xff,0x00,0x4e, +0xff,0xed,0x03,0xeb,0x05,0xd5,0x02,0x26,0x0b,0x73,0x00,0x00,0x00,0x07,0x0b,0x61,0x01,0xc7,0x00,0x00,0xff,0xff,0x00,0x96,0xff,0xed,0x04,0x9c,0x05,0xd5,0x02,0x26,0x0b,0x7c,0x00,0x00,0x00,0x07,0x0b,0x61,0x02,0x44,0x00,0x00,0x00,0x01,0x00,0x59,0x00,0x00,0x04,0xba,0x06,0xa0,0x00,0x1b,0x00,0x40,0xb6,0x17,0x06,0x12,0x0c,0x0b, +0x0b,0x01,0xb8,0x01,0x50,0xb3,0x1a,0x1a,0x1d,0x12,0xb8,0x01,0x50,0xb7,0x0f,0x06,0x17,0x0b,0x12,0x12,0x0f,0x1b,0xbc,0x01,0x4a,0x00,0x10,0x01,0x4c,0x00,0x0b,0x01,0x4d,0x00,0x3f,0x3f,0x3f,0x33,0x33,0x11,0x12,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0x33,0x12,0x39,0x39,0x31,0x30,0x01,0x11,0x14,0x0e,0x02,0x07, +0x1e,0x03,0x17,0x23,0x02,0x00,0x25,0x11,0x33,0x11,0x16,0x16,0x17,0x16,0x17,0x36,0x36,0x35,0x11,0x04,0x89,0x28,0x4a,0x68,0x41,0x24,0x52,0x57,0x57,0x28,0xcb,0xc4,0xfe,0x36,0xfe,0xf8,0xaa,0x6f,0xc2,0x48,0x54,0x47,0x5c,0x6c,0x04,0xcd,0xfe,0xc1,0x52,0x83,0x6c,0x58,0x29,0x2b,0x6e,0x79,0x7e,0x3c,0x01,0x23,0x02,0x19,0xf6,0x02, +0x6e,0xfd,0xde,0x6f,0xd2,0x51,0x5f,0x55,0x35,0x99,0x6a,0x01,0x5d,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x09,0x9a,0x06,0xe8,0x00,0x04,0x00,0x08,0x00,0x0c,0x00,0x18,0x00,0x1c,0x00,0x21,0x00,0x2c,0x00,0x31,0x00,0x35,0x00,0x41,0x00,0x45,0x00,0x49,0x00,0x4e,0x00,0x55,0x00,0x5c,0x00,0x64,0x00,0xee,0x40,0x10,0x05,0x32,0x06,0x33, +0x0a,0x19,0x46,0x1a,0x47,0x4b,0x2d,0x61,0x4a,0xce,0x3c,0x36,0xb8,0x01,0x50,0xb2,0x5d,0x53,0x5a,0x41,0x0a,0x01,0x52,0x00,0x25,0x00,0x29,0x01,0x52,0x00,0x4f,0x00,0x22,0x01,0x50,0x00,0x56,0x00,0x0d,0x01,0x50,0x40,0x28,0x16,0x02,0x1e,0x3c,0x5d,0x25,0x4f,0x56,0x16,0x1e,0x1e,0x16,0x56,0x4f,0x25,0x5d,0x3c,0x07,0x0a,0x42,0xce, +0x43,0x2f,0x4b,0x09,0x00,0x1d,0xce,0x0a,0x0b,0x44,0x30,0x0a,0x43,0x48,0x20,0x4c,0x0f,0x25,0x39,0xb8,0x01,0x56,0xb4,0x63,0x14,0x5a,0x63,0x59,0xb8,0x01,0x56,0xb2,0x53,0x52,0x5f,0xb8,0x01,0x56,0x40,0x19,0x3f,0x26,0x17,0x3f,0x01,0x2f,0x4c,0x63,0x53,0x3f,0x2f,0x2f,0x3f,0x53,0x63,0x4c,0x05,0x30,0x34,0x48,0x1e,0x33,0x47,0x03, +0x4b,0xb8,0x01,0x4d,0xb6,0x06,0x1a,0x03,0x07,0x1b,0x03,0x30,0x00,0x2f,0x17,0x33,0xc4,0x32,0x3f,0x17,0x33,0xc4,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x33,0x10,0xed,0x32,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x10,0xc6,0x32,0x10,0xc6,0x32,0x01,0x2f,0xe4,0x32,0x32,0x2f,0x33,0x33, +0xe4,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x10,0xe4,0x32,0x32,0x10,0xc4,0x32,0xc4,0x32,0x10,0xc4,0x32,0xc4,0x32,0x31,0x30,0x01,0x23,0x01,0x35,0x21,0x05,0x21,0x35,0x21,0x01,0x23,0x11,0x33,0x01,0x10,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x35,0x11, +0x33,0x01,0x21,0x35,0x21,0x01,0x21,0x35,0x01,0x33,0x01,0x14,0x21,0x21,0x11,0x21,0x20,0x15,0x14,0x07,0x16,0x01,0x01,0x23,0x11,0x21,0x01,0x21,0x35,0x21,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x23,0x11,0x33,0x01,0x21,0x35,0x21,0x05,0x21,0x11,0x33,0x01,0x01,0x34,0x23,0x23,0x15,0x33,0x32,0x17,0x34, +0x23,0x23,0x11,0x33,0x32,0x01,0x10,0x23,0x22,0x11,0x10,0x33,0x32,0x09,0x9a,0x78,0xfe,0xf3,0x01,0x85,0xfd,0x4e,0xfe,0x7d,0x01,0x83,0x02,0xb2,0x78,0x78,0xfe,0xc0,0xfd,0x67,0x3d,0x55,0x20,0x2f,0x71,0x8c,0xfb,0xda,0xfe,0x7e,0x01,0x82,0x05,0x66,0xfe,0x7b,0x01,0x0d,0x78,0xfd,0x12,0xfe,0xb7,0xfe,0xe0,0x01,0x1b,0x01,0x2a,0x6a, +0x8e,0xfa,0xd9,0xfe,0xf3,0x78,0x01,0x85,0x05,0x63,0xfe,0x7d,0x01,0x83,0xfd,0x19,0xc5,0xb8,0xb8,0xc0,0xc0,0xb8,0xb8,0xc5,0xfc,0x77,0x78,0x78,0x03,0xbc,0xfe,0x7e,0x01,0x82,0xfd,0x51,0xfe,0x7b,0x78,0x01,0x0d,0x04,0x79,0xc5,0x6c,0x7a,0xb7,0x22,0xcc,0x87,0x96,0xbd,0xfd,0x54,0xf0,0xec,0xec,0xf0,0x05,0x65,0x01,0x09,0x7a,0x7a, +0x7a,0xfb,0xca,0x01,0x82,0xfe,0xa8,0xfe,0xe1,0x36,0x5e,0x1e,0xa4,0x02,0x45,0x01,0x52,0x7a,0xf9,0x18,0x78,0x01,0x0d,0x01,0x41,0xfa,0x03,0x50,0xe0,0x6f,0x3d,0x36,0x03,0x14,0xfe,0xf7,0x01,0x83,0xf9,0x18,0x78,0x02,0xfa,0xd1,0xe4,0xe4,0xd1,0xd1,0xe7,0xe7,0xfe,0x6f,0x01,0x82,0xfb,0xcc,0x78,0x78,0x01,0x85,0xfe,0xf3,0x03,0xb8, +0x75,0xe6,0xf9,0x82,0xfe,0xf7,0x01,0x33,0x01,0x43,0xfe,0xbd,0xfe,0xc1,0x00,0x01,0x00,0x00,0xfe,0x09,0x01,0xb0,0xff,0x9e,0x00,0x07,0x00,0x1a,0x40,0x0a,0x07,0x01,0x06,0x04,0x02,0x01,0x04,0x06,0x06,0x09,0x11,0x00,0x33,0x2f,0xdd,0x32,0xcd,0x01,0x2f,0xcd,0xdd,0xcd,0x30,0x31,0x05,0x23,0x11,0x23,0x11,0x23,0x35,0x21,0x01,0xb0, +0xa5,0x66,0xa5,0x01,0xb0,0xc8,0xfe,0xd1,0x01,0x2f,0x66,0x00,0xff,0xff,0x00,0xa5,0x00,0x00,0x04,0x9a,0x04,0xd4,0x02,0x26,0x0b,0x68,0x00,0x00,0x01,0x07,0x0b,0x5e,0x02,0x2a,0xfe,0x6f,0x00,0x0f,0xb1,0x01,0x2c,0xb8,0xff,0xc0,0xb3,0x10,0x10,0x36,0x2c,0x00,0x11,0x2b,0x35,0x00,0xff,0xff,0x00,0x59,0x00,0x00,0x03,0xeb,0x06,0xa0, +0x02,0x06,0x0b,0x74,0x00,0x00,0xff,0xff,0x00,0x59,0xff,0x04,0x04,0xba,0x06,0xa0,0x02,0x26,0x0b,0xb7,0x00,0x00,0x00,0x07,0x0b,0x58,0x02,0x3f,0x00,0x00,0xff,0xff,0x00,0x59,0xfd,0xff,0x04,0xba,0x06,0xa0,0x02,0x26,0x0b,0xb7,0x00,0x00,0x00,0x07,0x0b,0x59,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x59,0xfd,0xff,0x05,0x40,0x06,0xa0, +0x02,0x26,0x0b,0xb7,0x00,0x00,0x00,0x07,0x0b,0x54,0x02,0x63,0x00,0x00,0x00,0x01,0xff,0x43,0xfe,0x09,0x00,0xbe,0xff,0xb1,0x00,0x18,0x00,0x2a,0x40,0x12,0x02,0x18,0x12,0x11,0x08,0x0b,0x11,0x13,0x05,0x40,0x10,0x10,0x01,0x0a,0xc0,0x11,0x11,0x1a,0x11,0x00,0x33,0x2f,0x1a,0xcc,0x32,0x39,0x2f,0x1a,0xcd,0x33,0x01,0x2f,0xdc,0xcd, +0x10,0xdd,0xdc,0xcd,0x30,0x31,0x13,0x23,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x1e,0x03,0x15,0xbe,0x66,0x27,0x30,0x31,0x27,0x66,0x0e,0x20,0x35,0x27,0x66,0x28,0x35,0x20,0x0e,0xfe,0x09,0x76,0x35,0x2f,0x2f,0x35,0x76,0x77,0x26,0x40,0x31,0x20,0x06,0x74,0x74,0x06,0x20,0x31,0x40, +0x26,0x00,0x00,0x03,0xff,0x15,0x05,0x4e,0x00,0xeb,0x07,0x0a,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x3f,0xb9,0x00,0x06,0x01,0x51,0xb3,0x00,0x00,0x0c,0x1e,0xbe,0x01,0x51,0x00,0x18,0x00,0x12,0x01,0x51,0x00,0x0c,0x00,0x1b,0x01,0x55,0xb3,0x21,0x21,0x15,0x03,0xbd,0x01,0x55,0x00,0x09,0x00,0x0f,0x01,0x55,0x00,0x15,0x05,0x10,0x00, +0x3f,0xfd,0xde,0xed,0x11,0x33,0x2f,0xed,0x01,0x2f,0xfd,0xde,0xed,0x12,0x39,0x2f,0xed,0x30,0x31,0x03,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x07,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x25,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x5d,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34, +0x8e,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x01,0x1d,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x06,0xaf,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x2d,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x01,0xff,0x73,0x05,0x4e,0x00,0x8e,0x07,0x0a,0x00,0x0b,0x00,0x24,0x40,0x0f,0x04,0x02,0x00,0x40, +0x0a,0x08,0x06,0x07,0x03,0x09,0x01,0x04,0x0b,0xc0,0x05,0xb8,0x05,0x10,0x00,0x3f,0x1a,0xcc,0x17,0x39,0x01,0x2f,0x33,0x33,0x1a,0xcc,0x32,0x32,0x30,0x31,0x13,0x07,0x17,0x07,0x17,0x07,0x23,0x37,0x27,0x37,0x27,0x37,0x8e,0xa1,0xa1,0xa1,0xa1,0xa1,0x7a,0xa1,0xa1,0xa1,0xa1,0xa1,0x07,0x0a,0x59,0x59,0x58,0x59,0x59,0x59,0x59,0x58, +0x59,0x59,0x00,0x02,0xff,0xa1,0x05,0x4e,0x00,0x5f,0x07,0x0a,0x00,0x0b,0x00,0x17,0x00,0x2a,0xb9,0x00,0x0c,0x01,0x51,0xb2,0x12,0x12,0x00,0x41,0x09,0x01,0x51,0x00,0x06,0x00,0x15,0x01,0x55,0x00,0x0f,0x00,0x09,0x01,0x55,0x00,0x03,0x05,0x10,0x00,0x3f,0xfd,0xde,0xed,0x01,0x2f,0xed,0x33,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23, +0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x27,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x5f,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0xa9,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x03,0xff,0x49,0x05,0x4e,0x00,0xb8, +0x07,0x0a,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x32,0xb9,0x00,0x04,0x01,0x51,0xb2,0x0a,0x0a,0x10,0xb8,0x01,0x51,0xb4,0x16,0x03,0x02,0x03,0x19,0xbe,0x01,0x55,0x00,0x13,0x00,0x0d,0x01,0x55,0x00,0x00,0x00,0x07,0x05,0x10,0x00,0x3f,0x33,0xfd,0xde,0xed,0x32,0x01,0x2f,0xdd,0xde,0xed,0x33,0x2f,0xed,0x30,0x31,0x03,0x23,0x11,0x33, +0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x27,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x51,0x66,0x66,0x01,0x09,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0x58,0x01,0xa8,0xfe,0xa9,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c, +0x2a,0x32,0x2f,0x00,0x00,0x01,0xff,0x45,0xfd,0xff,0x00,0xbb,0xff,0xb1,0x00,0x0b,0x00,0x15,0xb7,0x08,0x05,0x00,0x08,0x09,0x03,0x03,0x0d,0x11,0x00,0x33,0x2f,0xdc,0xcd,0x01,0x2f,0xcd,0xcc,0x30,0x31,0x07,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x15,0x22,0x26,0xbb,0x06,0x64,0x04,0x8b,0x85,0xbf,0xb7,0xa0,0x25,0x2c,0x31,0x23, +0x96,0x64,0x64,0xa7,0x00,0x01,0xff,0x61,0x05,0x4e,0x00,0x9f,0x06,0xdf,0x00,0x03,0x00,0x10,0xb3,0x00,0x02,0x03,0x01,0xb8,0x05,0x10,0x00,0x3f,0xcd,0x01,0x2f,0xcd,0x30,0x31,0x13,0x07,0x27,0x37,0x9f,0x9f,0x9f,0x9f,0x06,0x17,0xc9,0xc9,0xc8,0x00,0x00,0x01,0xfe,0xab,0x05,0x4e,0x01,0x56,0x06,0xa3,0x00,0x31,0x00,0x2d,0x40,0x12, +0x00,0x19,0x0f,0x24,0x21,0x28,0x0b,0x08,0x0f,0x08,0x21,0x2d,0x25,0x05,0x14,0x1e,0x0c,0x2d,0xb8,0x05,0x10,0x00,0x3f,0x33,0xcd,0xdd,0xcd,0x33,0x12,0x39,0x39,0x01,0x2f,0xcd,0x33,0xdc,0xcd,0x33,0x12,0x39,0x39,0x30,0x31,0x03,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02, +0x17,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x1b,0x1c,0x28,0x21,0x1d,0x12,0x27,0x31,0x1e,0x24,0x1a,0x38,0x3e,0x18,0x2c,0x3e,0x24,0x22,0x37,0x31,0x2c,0x17,0x1b,0x28,0x20,0x1d,0x12,0x27,0x31,0x1e,0x24,0x1a,0x38,0x3e,0x18,0x2c,0x3e,0x24,0x22,0x37,0x31,0x2b,0x05, +0xdf,0x26,0x31,0x1b,0x0b,0x32,0x2d,0x29,0x31,0x0d,0x48,0x14,0x56,0x45,0x24,0x3d,0x2c,0x19,0x15,0x26,0x36,0x1f,0x26,0x31,0x1b,0x0b,0x32,0x2c,0x29,0x32,0x0d,0x47,0x14,0x56,0x45,0x23,0x3e,0x2c,0x19,0x15,0x26,0x37,0x00,0x01,0xfe,0x26,0x05,0x57,0xff,0x9c,0x07,0x09,0x00,0x0b,0x00,0x14,0xb5,0x05,0x00,0x09,0x08,0x09,0x02,0xb8, +0x05,0x10,0x00,0x3f,0xdc,0xcd,0x01,0x2f,0xdc,0xcd,0x30,0x31,0x03,0x14,0x07,0x23,0x36,0x35,0x34,0x26,0x23,0x35,0x32,0x16,0x64,0x06,0x64,0x04,0x8b,0x85,0xbf,0xb7,0x05,0xaa,0x26,0x2d,0x32,0x24,0x91,0x67,0x64,0xab,0x00,0x01,0x00,0x64,0xfe,0x09,0x01,0xc4,0xff,0xb1,0x00,0x05,0x00,0x40,0x40,0x22,0xb4,0x02,0x01,0x03,0x01,0x00, +0x44,0x04,0x54,0x04,0x02,0xcb,0x04,0x01,0x04,0x80,0xcb,0x05,0x01,0x85,0x05,0x01,0x05,0x02,0x02,0x07,0x02,0x05,0x05,0x01,0xc0,0x03,0x03,0x07,0x11,0x00,0x33,0x2f,0x1a,0xcc,0x39,0x3d,0x2f,0x33,0x11,0x01,0x33,0x18,0x2f,0x33,0x5d,0x5d,0x1a,0xcd,0x5d,0x71,0x32,0x39,0x39,0x5d,0x30,0x31,0x01,0x23,0x27,0x37,0x33,0x07,0x01,0xc4, +0x8d,0xd3,0xd3,0x8d,0xd2,0xfe,0x09,0xd4,0xd4,0xd4,0x00,0x02,0xff,0x42,0xfd,0xff,0x00,0xbb,0xff,0xb1,0x00,0x0b,0x00,0x17,0x00,0x27,0xb3,0x04,0x00,0x07,0x0c,0xb8,0x01,0x51,0xb5,0x12,0x04,0x03,0x0a,0x0a,0x0f,0xb8,0x01,0x55,0xb2,0x15,0x15,0x19,0x11,0x00,0x33,0x2f,0xed,0x33,0x2f,0xdc,0xcd,0x01,0x2f,0xfd,0xde,0xcd,0xce,0x30, +0x31,0x17,0x14,0x06,0x23,0x35,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x07,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0xbb,0xb7,0xbf,0x85,0x8b,0x04,0x64,0x06,0xc0,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xa0,0xba,0xa7,0x64,0x64,0x96,0x23,0x31,0x2c,0x3a,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x01,0xff,0x45, +0x05,0x57,0x00,0xbb,0x07,0x09,0x00,0x0b,0x00,0x14,0xb5,0x07,0x03,0x00,0x04,0x03,0x09,0xb8,0x05,0x10,0x00,0x3f,0xdc,0xcd,0x01,0x2f,0xcc,0xcd,0x30,0x31,0x03,0x34,0x36,0x33,0x15,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0xbb,0xb7,0xbf,0x85,0x8b,0x04,0x64,0x06,0x05,0xa8,0xba,0xa7,0x64,0x64,0x97,0x22,0x31,0x2c,0x00,0x01,0x00,0x64, +0x05,0x57,0x01,0xda,0x07,0x09,0x00,0x0b,0x00,0x14,0xb5,0x07,0x03,0x00,0x04,0x03,0x09,0xb8,0x05,0x10,0x00,0x3f,0xdc,0xcd,0x01,0x2f,0xcc,0xcd,0x30,0x31,0x13,0x34,0x36,0x33,0x15,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x64,0xb7,0xbf,0x85,0x8b,0x04,0x64,0x06,0x05,0xa8,0xba,0xa7,0x64,0x64,0x97,0x22,0x31,0x2c,0x00,0x02,0xfe,0xe1, +0x05,0x57,0x01,0x1f,0x07,0x09,0x00,0x0b,0x00,0x17,0x00,0x25,0x40,0x0e,0x13,0x10,0x0c,0x0c,0x03,0x07,0x00,0x10,0x0f,0x0f,0x04,0x03,0x15,0x09,0xb8,0x05,0x10,0x00,0x3f,0x33,0xdc,0xcd,0x33,0x2f,0xcd,0x01,0x2f,0xcd,0xcc,0x32,0x2f,0xcc,0xcd,0x30,0x31,0x01,0x34,0x36,0x33,0x15,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x25,0x34,0x36, +0x33,0x15,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0xfe,0xe1,0x8c,0x92,0x5a,0x5e,0x04,0x64,0x06,0x01,0x20,0x8c,0x92,0x5a,0x5e,0x04,0x64,0x06,0x05,0xa8,0xba,0xa7,0x64,0x64,0x97,0x22,0x31,0x2c,0x25,0xba,0xa7,0x64,0x64,0x97,0x22,0x31,0x2c,0x00,0x04,0xfe,0x06,0x05,0x35,0x01,0xfa,0x07,0x0a,0x00,0x0f,0x00,0x1b,0x00,0x2b,0x00,0x37, +0x00,0x44,0x40,0x1f,0x29,0x32,0x1e,0x2c,0x24,0x2b,0x1e,0x02,0x16,0x00,0x0d,0x10,0x07,0x29,0x2a,0x35,0x2a,0x27,0x27,0x04,0x02,0x01,0x13,0x04,0x2f,0x21,0x21,0x19,0x0a,0x01,0x04,0x00,0x2f,0xce,0xdc,0xcd,0x33,0x2f,0xcd,0x10,0xcd,0x11,0x39,0x11,0x33,0x2f,0xce,0xcd,0x11,0x39,0x01,0x2f,0xcd,0xdc,0xce,0xcd,0x32,0xde,0xce,0xdc, +0xcd,0x10,0xcd,0x32,0x30,0x31,0x03,0x07,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x25,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x05,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x07,0x27,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x28,0x3e, +0x6d,0x29,0x3f,0x4f,0x70,0x71,0x4e,0x54,0x6f,0x1c,0xfe,0xeb,0x43,0x2e,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x02,0x3d,0x1c,0x6f,0x54,0x4e,0x71,0x70,0x4f,0x3f,0x29,0x6d,0x3e,0x01,0x81,0x43,0x2e,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x05,0x73,0x3e,0x6e,0x1e,0x6f,0x53,0x50,0x73,0x70,0x53,0x3e,0x28,0x66,0x2f,0x44,0x44,0x2f,0x2f,0x44,0x44, +0x95,0x28,0x3e,0x53,0x70,0x73,0x50,0x53,0x6f,0x1e,0x6e,0x3e,0xd4,0x2f,0x44,0x44,0x2f,0x2f,0x44,0x44,0x00,0x02,0xff,0x17,0x05,0x35,0x00,0xe9,0x07,0x0a,0x00,0x0f,0x00,0x1b,0x00,0x24,0x40,0x0f,0x0d,0x16,0x02,0x10,0x08,0x0f,0x02,0x0d,0x0e,0x19,0x0e,0x0b,0x13,0x05,0x0b,0x00,0x2f,0xdc,0xcd,0x10,0xce,0xcd,0x11,0x39,0x01,0x2f, +0xce,0xdc,0xcd,0x10,0xcd,0x32,0x30,0x31,0x03,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x07,0x27,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x7d,0x1c,0x6f,0x54,0x4e,0x71,0x70,0x4f,0x3f,0x29,0x6d,0x3e,0x01,0x81,0x43,0x2e,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x05,0xe1,0x28,0x3e,0x53,0x70, +0x73,0x50,0x53,0x6f,0x1e,0x6e,0x3e,0xd4,0x2f,0x44,0x44,0x2f,0x2f,0x44,0x44,0x00,0x00,0x01,0xff,0x5b,0x05,0x58,0x00,0xa6,0x07,0x00,0x00,0x11,0x00,0x2f,0x40,0x15,0x06,0x0a,0x09,0x11,0x40,0x00,0xc0,0x09,0x04,0x40,0x0d,0x40,0x09,0x10,0x48,0x0d,0x0d,0x11,0x09,0xc0,0x07,0xb8,0x05,0x10,0x00,0x3f,0x1a,0xcd,0x32,0x39,0x2f,0x2b, +0x1a,0xcd,0x01,0x2f,0x1a,0xdc,0x1a,0xcd,0x10,0xcd,0x32,0x30,0x31,0x13,0x15,0x14,0x06,0x23,0x22,0x27,0x15,0x23,0x11,0x33,0x15,0x16,0x33,0x32,0x36,0x35,0x35,0xa6,0x57,0x57,0x22,0x17,0x64,0x64,0x0f,0x1c,0x30,0x26,0x07,0x00,0x76,0x58,0x65,0x0a,0x7f,0x01,0xa8,0xcf,0x0b,0x2c,0x39,0x75,0x00,0x01,0xff,0x43,0xfe,0x09,0x00,0xbe, +0xff,0xb1,0x00,0x18,0x00,0x30,0x40,0x17,0x09,0x0a,0x10,0x13,0x01,0x00,0x13,0x10,0x13,0x40,0x05,0x40,0x09,0x10,0x48,0x05,0x05,0x12,0xc0,0x09,0x01,0x01,0x1a,0x11,0x00,0x33,0x2f,0x33,0x1a,0xcc,0x39,0x2f,0x2b,0x1a,0xcd,0x32,0x01,0x2f,0xdd,0xcd,0x10,0xdd,0xdd,0xcd,0x30,0x31,0x07,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35, +0x33,0x15,0x14,0x0e,0x02,0x07,0x15,0x23,0x35,0x2e,0x03,0x35,0xbd,0x66,0x27,0x30,0x31,0x27,0x66,0x0e,0x20,0x35,0x27,0x66,0x28,0x35,0x20,0x0e,0x4f,0x76,0x35,0x2f,0x2f,0x35,0x76,0x77,0x26,0x40,0x31,0x20,0x06,0x74,0x74,0x06,0x20,0x31,0x40,0x26,0x00,0x01,0xff,0x6a,0xfe,0x09,0x00,0x96,0xff,0xb1,0x00,0x05,0x00,0x15,0xb7,0x05, +0x02,0x04,0x02,0x01,0x05,0x05,0x07,0x11,0x00,0x33,0x2f,0xdc,0xcd,0x01,0x2f,0xce,0xcd,0x30,0x31,0x13,0x21,0x35,0x33,0x11,0x33,0x96,0xfe,0xd4,0xc6,0x66,0xfe,0x09,0x66,0x01,0x42,0x00,0x00,0x01,0xff,0x4b,0xfe,0x09,0x00,0xab,0xff,0xb1,0x00,0x05,0x00,0x40,0x40,0x22,0xb4,0x02,0x01,0x03,0x01,0x00,0x44,0x04,0x54,0x04,0x02,0xcb, +0x04,0x01,0x04,0x80,0xcb,0x05,0x01,0x85,0x05,0x01,0x05,0x02,0x02,0x07,0x02,0x05,0x05,0x01,0xc0,0x03,0x03,0x07,0x11,0x00,0x33,0x2f,0x1a,0xcc,0x39,0x3d,0x2f,0x33,0x11,0x01,0x33,0x18,0x2f,0x33,0x5d,0x5d,0x1a,0xcd,0x5d,0x71,0x32,0x39,0x39,0x5d,0x30,0x31,0x13,0x23,0x27,0x37,0x33,0x07,0xab,0x8d,0xd3,0xd3,0x8d,0xd2,0xfe,0x09, +0xd4,0xd4,0xd4,0x00,0x00,0x01,0xff,0x45,0xfd,0xff,0x00,0xbb,0xff,0xb1,0x00,0x0b,0x00,0x15,0xb7,0x04,0x00,0x07,0x04,0x03,0x0a,0x0a,0x0d,0x11,0x00,0x33,0x2f,0xdc,0xcd,0x01,0x2f,0xcd,0xce,0x30,0x31,0x17,0x14,0x06,0x23,0x35,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0xbb,0xb7,0xbf,0x85,0x8b,0x04,0x64,0x06,0xa0,0xba,0xa7,0x64,0x64, +0x96,0x23,0x31,0x2c,0x00,0x02,0xfe,0xe1,0xfd,0xff,0x01,0x1f,0xff,0xb1,0x00,0x0b,0x00,0x17,0x00,0x26,0x40,0x10,0x00,0x07,0x04,0x04,0x0c,0x10,0x13,0x10,0x0f,0x0f,0x04,0x03,0x16,0x0a,0x0a,0x19,0x11,0x00,0x33,0x2f,0x33,0xdc,0xcd,0x33,0x2f,0xcd,0x01,0x2f,0xce,0xcd,0x32,0x10,0xde,0xcd,0x30,0x31,0x05,0x14,0x06,0x23,0x35,0x32, +0x36,0x35,0x34,0x27,0x33,0x16,0x05,0x14,0x06,0x23,0x35,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x01,0x1f,0x8c,0x92,0x5a,0x5e,0x04,0x64,0x06,0xfe,0xe0,0x8c,0x92,0x5a,0x5e,0x04,0x64,0x06,0xa0,0xba,0xa7,0x64,0x64,0x96,0x23,0x31,0x2c,0x25,0xba,0xa7,0x64,0x64,0x96,0x23,0x31,0x2c,0x00,0x01,0xff,0x68,0xfd,0xff,0x00,0x99,0xff,0xbb, +0x00,0x09,0x00,0x2a,0x40,0x11,0x04,0x09,0x00,0x08,0x80,0x05,0x03,0x09,0x07,0x04,0x04,0x03,0x02,0x08,0x07,0x07,0x0b,0x11,0x00,0x33,0x2f,0x33,0xcc,0x32,0x39,0x19,0x2f,0x12,0x39,0x01,0x18,0x2f,0x33,0x1a,0xcc,0x32,0x39,0x39,0x30,0x31,0x13,0x07,0x07,0x35,0x37,0x27,0x37,0x37,0x15,0x07,0x99,0x4d,0xe4,0xa8,0xa8,0x4d,0xe4,0xaa, +0xfe,0x67,0x41,0x27,0x5c,0x1b,0xdd,0x41,0x27,0x59,0x1e,0x00,0x00,0x01,0xff,0x45,0x05,0x4d,0x00,0xbb,0x07,0x09,0x00,0x0b,0x00,0x14,0xb5,0x08,0x00,0x05,0x08,0x09,0x02,0xb8,0x05,0x10,0x00,0x3f,0xdc,0xcd,0x01,0x2f,0xcd,0xce,0x30,0x31,0x13,0x14,0x07,0x23,0x36,0x35,0x34,0x26,0x23,0x35,0x32,0x16,0xbb,0x06,0x64,0x04,0x8b,0x85, +0xbf,0xb7,0x05,0xa0,0x26,0x2d,0x32,0x24,0x9b,0x67,0x64,0xab,0x00,0x02,0xff,0x17,0x05,0x35,0x00,0xe9,0x07,0x0a,0x00,0x0f,0x00,0x1b,0x00,0x22,0x40,0x0e,0x02,0x16,0x00,0x0d,0x10,0x07,0x02,0x01,0x13,0x04,0x19,0x0a,0x01,0x04,0x00,0x2f,0xce,0xdc,0xcd,0x10,0xcd,0x11,0x39,0x01,0x2f,0xcd,0xdc,0xce,0xcd,0x32,0x30,0x31,0x13,0x07, +0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x25,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0xe9,0x3e,0x6d,0x29,0x3f,0x4f,0x70,0x71,0x4e,0x54,0x6f,0x1c,0xfe,0xeb,0x43,0x2e,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x05,0x73,0x3e,0x6e,0x1e,0x6f,0x53,0x50,0x73,0x70,0x53,0x3e,0x28,0x66,0x2f,0x44, +0x44,0x2f,0x2f,0x44,0x44,0x00,0xff,0xff,0xff,0x43,0xfe,0x09,0x00,0xbe,0xff,0xb1,0x02,0x06,0x0b,0xd0,0x00,0x00,0x00,0x01,0xff,0x4b,0x05,0x4d,0x00,0xb5,0x07,0x09,0x00,0x05,0x00,0x31,0x40,0x17,0x00,0x04,0x80,0x84,0x05,0x94,0x05,0x02,0x05,0x34,0x03,0x01,0x03,0x34,0x01,0x01,0x01,0x02,0x05,0x05,0x03,0xc0,0x00,0xb8,0x05,0x10, +0x00,0x3f,0x1a,0xcc,0x39,0x3d,0x2f,0x01,0x18,0x2f,0x33,0x71,0x33,0x71,0x33,0x5d,0x1a,0xcd,0x32,0x30,0x31,0x13,0x23,0x27,0x37,0x33,0x07,0xb5,0x8d,0xdd,0xdd,0x8d,0xdc,0x05,0x4d,0xde,0xde,0xde,0x00,0x01,0xff,0x6a,0x05,0x58,0x00,0x96,0x07,0x00,0x00,0x05,0x00,0x14,0xb5,0x05,0x02,0x04,0x05,0x02,0x00,0xb8,0x05,0x10,0x00,0x3f, +0xcd,0xcd,0x01,0x2f,0xce,0xcd,0x30,0x31,0x13,0x21,0x35,0x33,0x11,0x33,0x96,0xfe,0xd4,0xc6,0x66,0x05,0x58,0x66,0x01,0x42,0x00,0x01,0x00,0x64,0xfd,0xff,0x01,0xda,0xff,0xb1,0x00,0x0b,0x00,0x15,0xb7,0x08,0x05,0x00,0x08,0x09,0x02,0x02,0x0d,0x11,0x00,0x33,0x2f,0xdc,0xcd,0x01,0x2f,0xdd,0xce,0x30,0x31,0x17,0x34,0x37,0x33,0x06, +0x15,0x14,0x16,0x33,0x15,0x22,0x26,0x64,0x06,0x64,0x04,0x8b,0x85,0xbf,0xb7,0xa0,0x25,0x2c,0x31,0x23,0x96,0x64,0x64,0xa7,0x00,0x01,0xfd,0x87,0x05,0x4e,0x00,0x32,0x06,0xa3,0x00,0x31,0x00,0x2d,0x40,0x12,0x00,0x19,0x0f,0x24,0x21,0x28,0x0b,0x08,0x0f,0x08,0x21,0x2d,0x25,0x05,0x14,0x1e,0x0c,0x2d,0xb8,0x05,0x10,0x00,0x3f,0x33, +0xcd,0xdd,0xcd,0x33,0x12,0x39,0x39,0x01,0x2f,0xcd,0x33,0xdc,0xcd,0x33,0x12,0x39,0x39,0x30,0x31,0x01,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0xfe,0xc1,0x1c, +0x28,0x21,0x1d,0x12,0x27,0x31,0x1e,0x24,0x1a,0x38,0x3e,0x18,0x2c,0x3e,0x24,0x22,0x37,0x31,0x2c,0x17,0x1b,0x28,0x20,0x1d,0x12,0x27,0x31,0x1e,0x24,0x1a,0x38,0x3e,0x18,0x2c,0x3e,0x24,0x22,0x37,0x31,0x2b,0x05,0xdf,0x26,0x31,0x1b,0x0b,0x32,0x2d,0x29,0x31,0x0d,0x48,0x14,0x56,0x45,0x24,0x3d,0x2c,0x19,0x15,0x26,0x36,0x1f,0x26, +0x31,0x1b,0x0b,0x32,0x2c,0x29,0x32,0x0d,0x47,0x14,0x56,0x45,0x23,0x3e,0x2c,0x19,0x15,0x26,0x37,0x00,0x00,0x02,0xff,0x29,0x05,0x4e,0x00,0xd8,0x06,0xfd,0x00,0x0b,0x00,0x17,0x00,0x18,0xb7,0x12,0x06,0x0c,0x00,0x15,0x03,0x0f,0x09,0xb8,0x05,0x10,0x00,0x3f,0xcd,0xdc,0xcd,0x01,0x2f,0xcd,0xdc,0xcd,0x30,0x31,0x03,0x34,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0xd7,0x78,0x5f,0x5f,0x79,0x79,0x5f,0x5f,0x78,0x60,0x43,0x34,0x35,0x43,0x43,0x35,0x34,0x43,0x06,0x25,0x55,0x83,0x83,0x55,0x55,0x82,0x82,0x55,0x2f,0x48,0x48,0x2f,0x2f,0x49,0x49,0x00,0xff,0xff,0xff,0xa4,0x05,0x4e,0x00,0x5d, +0x06,0x05,0x02,0x06,0x0b,0x5c,0x00,0x00,0x00,0x01,0x00,0xab,0x00,0x00,0x02,0xcb,0x04,0xde,0x00,0x19,0x00,0x2c,0xb5,0x0b,0x0b,0x18,0x18,0x1b,0x15,0x41,0x0a,0x01,0x50,0x00,0x00,0x00,0x16,0x01,0x54,0x00,0x18,0x01,0x4d,0x00,0x10,0x01,0x54,0x00,0x07,0x01,0x4a,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0x2f, +0x31,0x30,0x13,0x34,0x3e,0x04,0x33,0x32,0x16,0x17,0x17,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x11,0x21,0x17,0x21,0xab,0x0b,0x1b,0x2f,0x49,0x65,0x45,0x25,0x56,0x1c,0x18,0x08,0x1f,0x24,0x24,0x0f,0x44,0x52,0x2b,0x0d,0x01,0x62,0x13,0xfd,0xe0,0x03,0x1b,0x3a,0x71,0x64,0x54,0x3e,0x22,0x08,0x06,0x94,0x02,0x04,0x03,0x02,0x2c,0x50, +0x6d,0x41,0xfd,0x85,0xa2,0x00,0xff,0xff,0x00,0xb6,0x00,0xfc,0x01,0x6f,0x04,0xcd,0x02,0x26,0x0b,0x71,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0x11,0xfe,0xe4,0x00,0x01,0xfe,0xb2,0x05,0x67,0x01,0x4f,0x06,0x78,0x00,0x0d,0x00,0x15,0xb7,0x00,0x01,0x08,0x07,0x00,0x08,0x0b,0x04,0x00,0x2f,0xcd,0xcc,0x32,0x01,0x2f,0x33,0xcc,0x32,0x30, +0x31,0x13,0x33,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0xc8,0x87,0x17,0xaa,0x8d,0x8e,0xa9,0x18,0x87,0x10,0x60,0x51,0x5e,0x60,0x06,0x78,0x84,0x8d,0x8a,0x87,0x49,0x54,0x51,0x00,0x01,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0x9a,0x00,0x19,0x00,0x8c,0x40,0x5f,0x59,0x17,0x01,0x48,0x17,0x01,0x56,0x13,0x01,0x79, +0x06,0x01,0x6a,0x06,0x01,0x0b,0x06,0x1b,0x06,0x02,0x9a,0x05,0x01,0x68,0x05,0x01,0x2a,0x05,0x01,0x96,0x03,0x01,0x24,0x03,0x01,0x05,0x03,0x15,0x03,0x02,0x66,0x02,0x76,0x02,0x02,0x0d,0x0d,0x00,0x7d,0x10,0x19,0x20,0x19,0x30,0x19,0x03,0x19,0x19,0x1b,0x0f,0x11,0x7d,0x08,0x0b,0x0b,0x8a,0x0a,0x01,0x69,0x0a,0x79,0x0a,0x02,0x4b, +0x0a,0x01,0x0a,0x0f,0x08,0x1f,0x08,0x02,0x08,0x00,0x00,0x15,0x0a,0x0f,0x91,0x0d,0x03,0x15,0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0xfd,0xc4,0x12,0x39,0x2f,0x01,0x2f,0x5d,0x33,0x5d,0x5d,0x5d,0x33,0x2f,0x10,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x01,0x10,0x07,0x06,0x21,0x20,0x27,0x26,0x11,0x10,0x13,0x23,0x35,0x21,0x15,0x21,0x04,0x11,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x11,0x05,0xaa,0xac,0xb6,0xfe,0xb6,0xfe,0xc6,0xb6,0xb0,0xf1,0xf1,0x05,0x4c,0xfc,0x89,0xfe,0xdb,0x7a,0x87,0xef,0xfc,0x86,0x7a,0x02,0xc8,0xfe,0xb4,0xc4,0xd0,0xc8,0xc1,0x01,0x3b,0x01,0x55,0x01,0x01, +0x98,0x98,0xef,0xfe,0xa8,0xf4,0x9c,0xac,0xaa,0x9b,0x01,0x04,0x00,0x01,0x00,0x33,0x00,0x00,0x04,0xf0,0x05,0x9a,0x00,0x16,0x00,0x5a,0x40,0x39,0x46,0x0e,0x01,0x37,0x0e,0x01,0x78,0x05,0x01,0x5b,0x05,0x01,0x16,0x15,0x7e,0x12,0x02,0x02,0x18,0x0a,0x0c,0x7e,0x68,0x09,0x78,0x09,0x02,0x09,0x0f,0x07,0x2f,0x07,0x3f,0x07,0x4f,0x07, +0x04,0x07,0x40,0x10,0x13,0x48,0x07,0x02,0x04,0x91,0x12,0x10,0x10,0x15,0x0a,0x13,0x03,0x15,0x91,0x01,0x12,0x00,0x3f,0xed,0x3f,0xc4,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x2b,0x5d,0x33,0x5d,0xed,0x32,0x12,0x39,0x2f,0xc4,0xfd,0xcd,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x11,0x06,0x23,0x22,0x02,0x35,0x34,0x37,0x33,0x06, +0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x11,0x33,0x11,0x33,0x04,0xf0,0xfe,0x97,0xbc,0xc3,0xd7,0xfe,0x5b,0xb0,0x63,0x52,0x55,0x96,0xb2,0xbd,0xa8,0xc1,0x02,0x7b,0x73,0x01,0x08,0xd8,0xfe,0xb4,0xce,0xe0,0x97,0x59,0x5c,0x70,0x02,0x8a,0xfa,0xfe,0x00,0x00,0x01,0x00,0x64,0xff,0x35,0x05,0x23,0x05,0xb2,0x00,0x17,0x00,0x5b,0x40,0x37, +0x82,0x14,0x01,0x8a,0x12,0x01,0x76,0x08,0x01,0x67,0x08,0x01,0x65,0x07,0x01,0x7a,0x05,0x01,0x69,0x05,0x01,0x16,0x7e,0x04,0x17,0x7e,0x02,0x04,0x02,0x04,0x02,0x19,0x0c,0x0a,0x7e,0x0d,0x0f,0x0f,0x1f,0x0f,0x02,0x0f,0x0c,0x0d,0x0d,0x16,0x06,0x91,0x13,0x04,0x16,0x91,0x01,0x03,0x12,0x00,0x3f,0xce,0xed,0x3f,0xed,0x11,0x39,0x2f, +0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x23,0x35,0x21,0x11,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x37,0x36,0x33,0x20,0x11,0x11,0x21,0x05,0x23,0x9c,0xfe,0x89,0xff,0x00,0x8a,0x44,0x36,0x22,0x96,0x34,0x66,0x71, +0xd5,0x01,0xa8,0x01,0x6b,0xcb,0xcb,0x03,0xe0,0x01,0x48,0x6c,0x56,0x83,0x64,0x4e,0x46,0x6a,0x8e,0xc9,0x7c,0x8a,0xfe,0x34,0xfc,0xb2,0x00,0x02,0x00,0x5a,0xff,0xe8,0x05,0x4c,0x05,0x9a,0x00,0x16,0x00,0x26,0x00,0x7c,0x40,0x53,0x29,0x25,0x79,0x25,0x02,0x26,0x21,0x76,0x21,0x02,0x26,0x1d,0x76,0x1d,0x02,0x29,0x19,0x79,0x19,0x02, +0x8a,0x0b,0x01,0x8a,0x0a,0x01,0x89,0x06,0x01,0x86,0x02,0x01,0x12,0x7e,0x0c,0x11,0x11,0x00,0x7d,0x17,0x50,0x0c,0x01,0x10,0x17,0x20,0x17,0x50,0x17,0x60,0x17,0x04,0x0c,0x17,0x0c,0x17,0x28,0x1f,0x7d,0x08,0x0e,0x0e,0x0f,0x08,0x1f,0x08,0x2f,0x08,0x03,0x08,0x1b,0x91,0x0c,0x13,0x12,0x0d,0x91,0x0f,0x03,0x23,0x91,0x04,0x13,0x00, +0x3f,0xed,0x3f,0xfd,0xc4,0xdd,0x32,0xed,0x01,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0x32,0x2f,0x10,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x07,0x06,0x21,0x20,0x27,0x26,0x11,0x34,0x37,0x36,0x37,0x35,0x21,0x35,0x21,0x15,0x21,0x15,0x16,0x17,0x16,0x07,0x34,0x27, +0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x05,0x4c,0xbe,0xb3,0xfe,0xfa,0xfe,0xfc,0xb7,0xc0,0xa0,0x99,0xec,0xfd,0xdb,0x04,0xf2,0xfd,0xdb,0xe9,0x9b,0xa1,0xb0,0x87,0x82,0xc0,0xbf,0x82,0x88,0x87,0x82,0xc0,0xbf,0x82,0x88,0x02,0x28,0xfe,0xfa,0xa2,0x98,0xa0,0xa9,0x01,0x04,0xee,0xa0,0x99,0x16,0x90,0x98, +0x98,0x90,0x19,0xa0,0xa5,0xe5,0xc3,0x79,0x73,0x74,0x7a,0xc1,0xc3,0x79,0x73,0x74,0x79,0x00,0x00,0x01,0x00,0x64,0x00,0x00,0x03,0xb8,0x05,0xb2,0x00,0x13,0x00,0x51,0x40,0x34,0x96,0x12,0x01,0x72,0x12,0x82,0x12,0x02,0x8a,0x10,0x01,0x79,0x10,0x01,0x7a,0x0f,0x01,0x56,0x06,0x66,0x06,0x02,0x59,0x03,0x69,0x03,0x02,0x00,0x7e,0x02, +0x02,0x15,0x0a,0x08,0x7e,0x0b,0x0f,0x0d,0x1f,0x0d,0x02,0x0d,0x0a,0x0b,0x0b,0x01,0x04,0x91,0x11,0x04,0x01,0x12,0x00,0x3f,0x3f,0xed,0x11,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34, +0x37,0x36,0x33,0x20,0x11,0x03,0xb8,0xa8,0xff,0x00,0x8a,0x44,0x36,0x22,0x96,0x34,0x66,0x71,0xd5,0x01,0xa8,0x03,0xe0,0x01,0x48,0x6c,0x56,0x83,0x64,0x4e,0x46,0x6a,0x8e,0xc9,0x7c,0x8a,0xfe,0x34,0x00,0x01,0x00,0x64,0x00,0x00,0x05,0x23,0x05,0xb2,0x00,0x19,0x00,0x6f,0x40,0x44,0xa7,0x16,0x01,0x84,0x16,0x01,0x71,0x16,0x01,0x06, +0x16,0x01,0x7a,0x14,0x8a,0x14,0x02,0x7a,0x13,0x01,0x66,0x0a,0x01,0x6a,0x07,0x01,0x03,0x18,0x7e,0x06,0x19,0x7e,0x01,0x00,0x06,0x01,0x06,0x01,0x06,0x01,0x1b,0x0e,0x0c,0x7e,0x0f,0x0f,0x11,0x1f,0x11,0x02,0x11,0x0e,0x0f,0x19,0x91,0x01,0x03,0x0f,0x03,0x0f,0x03,0x05,0x08,0x91,0x15,0x04,0x05,0x12,0x00,0x3f,0x3f,0xed,0x11,0x39, +0x39,0x2f,0x2f,0x10,0xce,0xed,0x11,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xfd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x23,0x11,0x23,0x11,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x37,0x36,0x33,0x20,0x11,0x15,0x21,0x05,0x23,0x9c, +0xcf,0xa8,0xff,0x00,0x8a,0x44,0x36,0x22,0x96,0x34,0x66,0x71,0xd5,0x01,0xa8,0x01,0x6b,0x01,0xc2,0xcb,0xfd,0x73,0x03,0xe0,0x01,0x48,0x6c,0x56,0x83,0x64,0x4e,0x46,0x6a,0x8e,0xc9,0x7c,0x8a,0xfe,0x34,0xc1,0x00,0x02,0x00,0x32,0xff,0xe8,0x05,0x9a,0x05,0x9a,0x00,0x12,0x00,0x22,0x00,0x51,0x40,0x18,0x4a,0x21,0x5a,0x21,0x02,0x45, +0x1d,0x55,0x1d,0x02,0x45,0x19,0x55,0x19,0x02,0x5a,0x15,0x01,0x49,0x15,0x01,0x00,0x7e,0x13,0xb8,0xff,0xc0,0x40,0x19,0x09,0x0c,0x48,0x13,0x13,0x24,0x1b,0x7e,0x0d,0x7e,0x0a,0x08,0x17,0x91,0x0d,0x0f,0x10,0x09,0x91,0x0c,0x03,0x1f,0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0xed,0x01,0x2f,0xce,0xed,0xed,0x12,0x39,0x2f, +0x2b,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x21,0x35,0x21,0x11,0x36,0x33,0x32,0x17,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x05,0x9a,0x85,0x8b,0xee,0xe7,0x87,0x84,0xfe,0x88,0x02,0x20,0x88,0xda,0xee,0x80,0x78,0xa8,0x4a,0x55, +0xab,0xaa,0x5b,0x51,0x54,0x5c,0xa6,0xab,0x54,0x4b,0x02,0x04,0xf1,0x93,0x98,0x94,0x8f,0xe9,0x03,0x0e,0x98,0xfe,0x07,0x77,0x95,0x8d,0xf8,0xb3,0x67,0x76,0x78,0x6c,0xb0,0xab,0x6a,0x73,0x74,0x66,0x00,0x02,0x00,0x5e,0x00,0x00,0x05,0xe7,0x05,0x9a,0x00,0x0e,0x00,0x17,0x00,0x6b,0x40,0x45,0x06,0x15,0x86,0x15,0x02,0x9b,0x0a,0x01, +0x89,0x0a,0x01,0x7c,0x0a,0x01,0x6e,0x0a,0x01,0x0a,0x48,0x0e,0x49,0x29,0x0a,0x01,0x1a,0x0a,0x01,0x59,0x07,0x69,0x07,0x02,0x0d,0x03,0x7e,0x0f,0x0e,0x7e,0x02,0x00,0x0f,0x01,0x0f,0x02,0x0f,0x02,0x19,0x13,0x7d,0x0f,0x09,0x1f,0x09,0x02,0x09,0x0e,0x91,0x01,0x03,0x03,0x04,0x10,0x91,0x0c,0x03,0x0f,0x91,0x04,0x12,0x00,0x3f,0xed, +0x3f,0xed,0x11,0x39,0x2f,0xce,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xfd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x23,0x11,0x21,0x20,0x27,0x26,0x11,0x10,0x21,0x21,0x11,0x21,0x01,0x11,0x23,0x20,0x11,0x10,0x17,0x16,0x21,0x05,0xe7,0x9c,0xcf,0xfe,0xe8,0xfe, +0xa8,0xd4,0xda,0x02,0xf6,0x01,0x28,0x01,0x6b,0xfd,0xed,0x7c,0xfd,0xb6,0x9f,0x9c,0x01,0x19,0x01,0xc2,0xcb,0xfd,0x73,0xc2,0xc8,0x01,0x55,0x02,0xbb,0xfd,0x8b,0xfd,0x73,0x04,0x6a,0xfd,0xd9,0xfe,0xe9,0x98,0x94,0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x03,0x08,0x05,0x9a,0x00,0x05,0x00,0x1a,0x40,0x0c,0x05,0x7e,0x02,0x02,0x07,0x03, +0x02,0x91,0x05,0x03,0x01,0x12,0x00,0x3f,0x3f,0xed,0x01,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x35,0x21,0x03,0x08,0xa8,0xfd,0xc0,0x02,0xe8,0x05,0x02,0x98,0x00,0x02,0x00,0x8c,0x00,0x00,0x04,0x7c,0x05,0x9a,0x00,0x11,0x00,0x21,0x00,0x6a,0x40,0x45,0x35,0x0f,0x01,0x35,0x0e,0x01,0x3a,0x06,0x01,0x3a,0x05,0x01, +0x45,0x0f,0x01,0x46,0x0e,0x01,0x4a,0x06,0x01,0x49,0x05,0x01,0x12,0x7e,0x11,0x7e,0x10,0x02,0x01,0x02,0x02,0x23,0x1a,0x7e,0x0b,0x7e,0x08,0x16,0x91,0x64,0x0b,0x01,0x35,0x0b,0x45,0x0b,0x55,0x0b,0x03,0x0b,0x0d,0x0a,0x03,0x1e,0x91,0x49,0x02,0x59,0x02,0x02,0x3a,0x02,0x01,0x02,0x04,0x01,0x12,0x00,0x3f,0xde,0x32,0x5d,0x5d,0xed, +0x3f,0xde,0x32,0x5d,0x5d,0xed,0x01,0x2f,0xed,0xed,0x12,0x39,0x2f,0x5d,0xfd,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x33,0x11,0x36,0x33,0x32,0x17,0x16,0x15,0x23,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x04,0x7c, +0xa8,0x88,0xda,0xed,0x81,0x78,0xa8,0x88,0xda,0xed,0x81,0x78,0xa8,0x4c,0x55,0xa9,0xa6,0x5c,0x54,0x4c,0x55,0xa9,0xa6,0x5c,0x54,0x01,0x30,0x77,0x96,0x8c,0xf2,0x02,0xcd,0xfe,0xd0,0x77,0x96,0x8c,0xf2,0xaf,0x67,0x74,0x75,0x6a,0xab,0xaf,0x67,0x74,0x75,0x6a,0x00,0x02,0x00,0x32,0xff,0xe8,0x05,0x9a,0x05,0x9a,0x00,0x13,0x00,0x23, +0x00,0x61,0x40,0x3f,0x43,0x12,0x53,0x12,0x02,0x4a,0x06,0x01,0x49,0x05,0x59,0x05,0x02,0x5b,0x02,0x01,0x4a,0x02,0x01,0x00,0x7e,0x10,0x14,0x20,0x14,0x30,0x14,0x03,0x14,0x14,0x07,0x25,0x0c,0x7e,0x0a,0x1c,0x7e,0x0e,0x7e,0x0f,0x07,0x01,0x07,0x18,0x91,0x55,0x0e,0x01,0x46,0x0e,0x01,0x0e,0x10,0x10,0x0a,0x08,0x91,0x0d,0x03,0x20, +0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0xfd,0xce,0x3f,0x33,0x5d,0x5d,0xed,0x01,0x2f,0x5d,0xed,0xed,0xde,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x00,0x35,0x11,0x23,0x15,0x23,0x11,0x21,0x11,0x36,0x33,0x32,0x17,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15, +0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x05,0x9a,0x85,0x8b,0xee,0xe2,0xfe,0xf0,0xdc,0x9c,0x02,0x20,0x88,0xda,0xee,0x80,0x78,0xa8,0x4a,0x55,0xab,0xaa,0x5b,0x51,0x54,0x5c,0xa6,0xab,0x54,0x4b,0x02,0x04,0xf1,0x93,0x98,0x01,0x20,0xec,0x03,0x0e,0xcb,0x01,0x63,0xfe,0x07,0x77,0x95,0x8d,0xf8,0xb3,0x67,0x76,0x78,0x6c,0xb0,0xab,0x6a, +0x73,0x74,0x66,0x00,0x00,0x02,0x00,0x5c,0xff,0xe8,0x05,0xb0,0x05,0x9a,0x00,0x17,0x00,0x21,0x00,0x7c,0x40,0x53,0x5b,0x0f,0x01,0x3a,0x0f,0x4a,0x0f,0x02,0x3a,0x0e,0x4a,0x0e,0x5a,0x0e,0x03,0x5a,0x0a,0x01,0x49,0x0a,0x01,0x3a,0x0a,0x01,0x49,0x09,0x01,0x36,0x07,0x46,0x07,0x56,0x07,0x03,0x35,0x06,0x45,0x06,0x55,0x06,0x03,0x17, +0x7e,0x01,0x03,0x16,0x7e,0x11,0x00,0x19,0x10,0x19,0x02,0x19,0x19,0x23,0x1c,0x7e,0x0c,0x13,0x13,0x0f,0x0c,0x1f,0x0c,0x02,0x0c,0x11,0x16,0x91,0x03,0x01,0x19,0x19,0x1e,0x12,0x91,0x15,0x03,0x1e,0x91,0x08,0x13,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xcc,0xc4,0xfd,0xc4,0x01,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x5d, +0xc4,0xfd,0xc4,0xdc,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x23,0x11,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x01,0x11,0x21,0x20,0x11,0x10,0x21,0x32,0x37,0x36,0x05,0xb0,0x9c,0xc8,0x83,0x87,0xe8,0xef,0x8a,0x85,0x78,0x7e,0xef,0x01, +0x63,0xfc,0xf4,0x03,0xb4,0x01,0x64,0xfd,0xf4,0xfe,0xaf,0xfe,0xb1,0x01,0x4a,0xa7,0x5b,0x54,0x02,0x9d,0xcb,0xfe,0x8c,0xea,0x8f,0x93,0x93,0x8f,0xf0,0xf0,0x87,0x8f,0x01,0x02,0x98,0xfe,0x66,0xfd,0xf8,0x01,0x70,0xfe,0x8c,0xfe,0x7e,0x72,0x69,0x00,0x00,0x01,0x00,0xc9,0x00,0x00,0x04,0xa4,0x05,0x9a,0x00,0x19,0x00,0x3d,0x40,0x20, +0x95,0x17,0x01,0x94,0x0b,0x01,0x0f,0x0f,0x00,0x7e,0x02,0x02,0x08,0x1b,0x13,0x06,0x7e,0x08,0x13,0x15,0x91,0x06,0x04,0x04,0x08,0x10,0x91,0x0e,0x03,0x01,0x08,0x12,0x00,0x3f,0xc4,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x21,0x23,0x11,0x34,0x23, +0x22,0x07,0x11,0x23,0x11,0x34,0x37,0x36,0x33,0x21,0x15,0x21,0x22,0x15,0x11,0x36,0x33,0x32,0x17,0x16,0x15,0x04,0xa4,0xa8,0xf5,0xb4,0xe2,0xa8,0x6c,0x67,0xb8,0x02,0x14,0xfd,0xfe,0xf5,0xe4,0xc6,0xb7,0x67,0x6b,0x02,0x12,0xe8,0x6e,0xfd,0x74,0x04,0x28,0xb5,0x60,0x5d,0x98,0xe8,0xfe,0xfa,0x7a,0x5e,0x61,0xb5,0x00,0x02,0x00,0x5e, +0xfe,0xea,0x05,0xaa,0x05,0xb2,0x00,0x1f,0x00,0x2f,0x00,0xc8,0x40,0x8d,0x59,0x2e,0x01,0x99,0x2d,0x01,0x6a,0x2d,0x01,0x54,0x2b,0x64,0x2b,0x02,0x56,0x2a,0x86,0x2a,0x02,0x86,0x26,0x01,0x67,0x26,0x01,0x56,0x26,0x01,0x64,0x25,0x01,0x56,0x25,0x01,0x6a,0x23,0x01,0x59,0x22,0x01,0x86,0x16,0x01,0x75,0x16,0x01,0x76,0x12,0x01,0x27, +0x12,0x01,0x13,0x12,0x01,0x04,0x12,0x01,0x24,0x11,0x94,0x11,0x02,0x07,0x11,0x01,0x29,0x0f,0x99,0x0f,0x02,0x79,0x0e,0x01,0x0a,0x0e,0x1a,0x0e,0x02,0x79,0x0a,0x01,0x1b,0x0a,0x01,0x0a,0x0a,0x01,0x2a,0x09,0x9a,0x09,0x02,0x09,0x09,0x01,0x19,0x7e,0x06,0x1f,0x1f,0x14,0x7d,0x20,0x40,0x06,0x01,0x10,0x20,0x20,0x20,0x30,0x20,0x03, +0x06,0x20,0x06,0x20,0x31,0x28,0x7d,0x0f,0x0c,0x1f,0x0c,0x02,0x0c,0x24,0x91,0x10,0x04,0x1f,0x1d,0x91,0x00,0x02,0x2c,0x91,0x06,0x08,0x13,0x00,0x3f,0x33,0xed,0xdc,0x32,0xed,0x32,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0x32,0x2f,0x10,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x06,0x23,0x22,0x27,0x26,0x27,0x06,0x23,0x20,0x27,0x26,0x11,0x10,0x37,0x36,0x21,0x20,0x17,0x16,0x11,0x10,0x07,0x06,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x03,0x10,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16, +0x33,0x32,0x37,0x36,0x05,0xaa,0x34,0x3c,0x88,0x5e,0x61,0x02,0x6e,0x85,0xfe,0xc8,0xb8,0xb0,0xb1,0xbb,0x01,0x4c,0x01,0x35,0xb4,0xab,0xba,0x23,0x43,0x39,0x32,0x45,0x3c,0x34,0xb0,0x73,0x81,0xfc,0xf2,0x8b,0x7f,0x7b,0x88,0xed,0xfc,0x86,0x7a,0xff,0x17,0x51,0x54,0x7e,0x25,0xd1,0xc7,0x01,0x3c,0x01,0x51,0xcd,0xd8,0xd2,0xc7,0xfe, +0xc6,0xfe,0xa1,0xcc,0x22,0x48,0x37,0x4a,0x2c,0x28,0x1f,0x03,0x34,0x01,0x05,0x9d,0xb0,0xb3,0xa3,0xf9,0xf5,0xa3,0xb4,0xaa,0x9b,0x00,0x00,0x01,0x00,0x32,0xff,0xe8,0x05,0xd5,0x05,0x9a,0x00,0x0f,0x00,0x45,0x40,0x2a,0x35,0x0c,0x01,0x26,0x0c,0x01,0x96,0x0a,0x01,0x33,0x0a,0x01,0x25,0x0a,0x01,0x59,0x03,0x01,0x4b,0x03,0x01,0x4a, +0x01,0x01,0x0f,0x7e,0x0d,0x0d,0x11,0x09,0x7e,0x07,0x05,0x0e,0x05,0x91,0x08,0x03,0x0b,0x91,0x02,0x13,0x00,0x3f,0xed,0x3f,0xed,0xc4,0x01,0x2f,0xcd,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x20,0x11,0x11,0x21,0x35,0x21,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x05,0xd5,0xfd, +0xdf,0xfd,0xf6,0xfe,0x88,0x02,0x20,0x01,0x74,0x01,0x67,0xa8,0x02,0x44,0xfd,0xa4,0x02,0x45,0x02,0xd5,0x98,0xfc,0x9e,0xfe,0x47,0x01,0xaa,0x03,0x71,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x05,0x43,0x05,0x9a,0x00,0x16,0x00,0x48,0x40,0x29,0x47,0x10,0x01,0x36,0x10,0x01,0x58,0x06,0x01,0x5a,0x05,0x01,0x14,0x00,0x7e,0x02,0x02,0x18, +0x0c,0x0e,0x7e,0x0a,0x09,0x0f,0x07,0x01,0x07,0x14,0x12,0x91,0x02,0x04,0x04,0x01,0x09,0x91,0x15,0x0c,0x03,0x01,0x12,0x00,0x3f,0x3f,0xc4,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x5d,0x33,0xce,0xed,0x32,0x12,0x39,0x2f,0xed,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x02,0x35,0x34,0x37,0x21,0x35, +0x21,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x11,0x33,0x05,0x43,0xa8,0xbc,0xc3,0xd7,0xfe,0x23,0xfe,0xc8,0x02,0x20,0x63,0x52,0x55,0x96,0xb2,0xbd,0xa8,0x02,0x7b,0x73,0x01,0x08,0xd8,0x94,0x86,0x98,0xce,0xe0,0x97,0x59,0x5c,0x70,0x02,0x8a,0x00,0x00,0x01,0x00,0x64,0xff,0xe8,0x05,0x23,0x05,0x9a,0x00,0x19,0x00,0x61,0x40,0x3c, +0x69,0x14,0x79,0x14,0x02,0x66,0x11,0x76,0x11,0x02,0x8a,0x07,0x01,0x96,0x05,0x01,0x80,0x05,0x01,0x05,0x05,0x01,0x19,0x7e,0x01,0x18,0x03,0x7e,0x00,0x15,0x01,0x15,0x15,0x1b,0x0d,0x0f,0x7e,0x0c,0x0f,0x0a,0x1f,0x0a,0x02,0x0a,0x0d,0x0c,0x19,0x91,0x01,0x03,0x0c,0x03,0x0c,0x03,0x16,0x03,0x13,0x91,0x06,0x13,0x00,0x3f,0xed,0x3f, +0x39,0x39,0x2f,0x2f,0x10,0xce,0xed,0x11,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x12,0x39,0x2f,0x5d,0xfd,0xc4,0xde,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x23,0x15,0x10,0x21,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x11,0x11,0x33,0x11,0x21,0x05,0x23,0x9c,0xcf,0xfe,0x58,0xd5, +0x71,0x66,0x34,0x96,0x22,0x36,0x44,0x8a,0x01,0x00,0xa8,0x01,0x6b,0x01,0xc2,0xcb,0xd9,0xfe,0x34,0x8a,0x7c,0xc9,0x8e,0x6a,0x46,0x4e,0x64,0x83,0x56,0x6c,0x01,0x48,0x03,0xe0,0xfd,0x8b,0x00,0x01,0x00,0xb0,0xff,0xe8,0x04,0x04,0x05,0x9a,0x00,0x13,0x00,0x4b,0x40,0x2f,0x59,0x0d,0x69,0x0d,0x02,0x66,0x0a,0x01,0x57,0x0a,0x01,0x99, +0x05,0x01,0x8a,0x05,0x01,0x7b,0x05,0x01,0x75,0x02,0x01,0x12,0x00,0x7e,0x11,0x10,0x0f,0x20,0x0f,0x02,0x0f,0x0f,0x15,0x09,0x7e,0x06,0x11,0x12,0x12,0x08,0x03,0x0b,0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x33,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07, +0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x21,0x32,0x37,0x36,0x35,0x34,0x27,0x37,0x16,0x04,0x04,0x65,0x72,0xd5,0xfe,0x58,0xa8,0x01,0x00,0x8a,0x44,0x36,0x22,0x96,0x34,0x01,0xb7,0xc9,0x7c,0x8a,0x01,0xcc,0x03,0xe6,0xfc,0x20,0xfe,0xb8,0x6c,0x56,0x83,0x64,0x4e,0x46,0x6a,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a, +0x00,0x0e,0x00,0x15,0x00,0x53,0x40,0x34,0x38,0x15,0x48,0x15,0x02,0x56,0x09,0x01,0x57,0x06,0x01,0x77,0x05,0x87,0x05,0x02,0x65,0x05,0x01,0x53,0x05,0x01,0x0e,0x0e,0x07,0x7d,0x10,0x0f,0x20,0x0f,0x02,0x0f,0x0f,0x01,0x17,0x13,0x0c,0x7e,0x01,0x0c,0x91,0x14,0x14,0x0d,0x12,0x91,0x02,0x03,0x0d,0x91,0x01,0x12,0x00,0x3f,0xed,0x3f, +0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x11,0x21,0x32,0x17,0x16,0x15,0x14,0x07,0x06,0x23,0x23,0x11,0x21,0x03,0x10,0x21,0x23,0x11,0x33,0x20,0x04,0x29,0xfc,0x93,0x01,0x8a,0xdc,0x7e,0x89,0x99,0x8f,0xe0,0xbd,0x02,0xc5,0xb0,0xfe, +0xb0,0xc5,0xb0,0x01,0x65,0x05,0x9a,0x66,0x70,0xd6,0xdb,0x7f,0x76,0xfe,0x7a,0x03,0x4e,0x01,0x1c,0xfd,0xb4,0x00,0x00,0x02,0x00,0x5e,0xfe,0xea,0x05,0xaa,0x05,0xb2,0x00,0x1d,0x00,0x2d,0x00,0xc8,0x40,0x8d,0x6a,0x2c,0x01,0x59,0x2c,0x01,0x69,0x2b,0x99,0x2b,0x02,0x64,0x29,0x01,0x87,0x28,0x01,0x55,0x28,0x01,0x87,0x24,0x01,0x55, +0x24,0x01,0x63,0x23,0x01,0x56,0x23,0x01,0x6b,0x21,0x01,0x59,0x20,0x01,0x07,0x1c,0x01,0x75,0x18,0x01,0x16,0x18,0x01,0x05,0x18,0x01,0x24,0x17,0x94,0x17,0x02,0x15,0x17,0x01,0x07,0x17,0x01,0x99,0x15,0x01,0x2a,0x15,0x01,0x18,0x15,0x01,0x19,0x14,0x79,0x14,0x02,0x0a,0x14,0x01,0x1a,0x10,0x7a,0x10,0x02,0x0b,0x10,0x01,0x99,0x0f, +0x01,0x2c,0x0f,0x01,0x1a,0x0f,0x01,0x09,0x0f,0x01,0x47,0x1c,0x01,0x1c,0x00,0x7e,0x0c,0x05,0x0a,0x0a,0x1a,0x7d,0x10,0x1e,0x20,0x1e,0x30,0x1e,0x03,0x1e,0x1e,0x2f,0x26,0x7d,0x0f,0x12,0x1f,0x12,0x02,0x12,0x22,0x91,0x16,0x04,0x05,0x91,0x06,0x2a,0x91,0x1c,0x0c,0x0e,0x13,0x00,0x3f,0x33,0x33,0xed,0xde,0xed,0x3f,0xed,0x01,0x2f, +0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x33,0x2f,0xcc,0x33,0xed,0x32,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x14,0x06,0x07,0x06,0x23,0x35,0x16,0x37,0x36,0x35,0x34,0x27,0x06,0x21,0x20,0x27,0x26, +0x11,0x10,0x37,0x36,0x21,0x20,0x17,0x16,0x11,0x10,0x07,0x16,0x03,0x10,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x05,0xaa,0x86,0x6b,0x25,0x4d,0x22,0x27,0x82,0x41,0xb4,0xfe,0xe1,0xfe,0xc8,0xb8,0xb0,0xb1,0xbb,0x01,0x4c,0x01,0x35,0xb4,0xab,0x7b,0x7b,0xb0,0x73,0x81,0xfc,0xf2,0x8b,0x7f,0x7b,0x88, +0xed,0xfc,0x86,0x7a,0x1c,0x64,0xa2,0x21,0x0b,0x87,0x03,0x0c,0x28,0x74,0x52,0x2c,0xac,0xd1,0xc7,0x01,0x3c,0x01,0x51,0xcd,0xd8,0xd2,0xc7,0xfe,0xc6,0xfe,0xe3,0xbc,0x55,0x02,0x17,0x01,0x05,0x9d,0xb0,0xb3,0xa3,0xf9,0xf5,0xa3,0xb4,0xaa,0x9b,0x00,0x00,0x03,0x00,0x5a,0x00,0x00,0x05,0x4c,0x05,0xb2,0x00,0x12,0x00,0x1b,0x00,0x24, +0x00,0x79,0x40,0x51,0x56,0x24,0x01,0x65,0x23,0x75,0x23,0x02,0x65,0x1f,0x75,0x1f,0x02,0x7b,0x1a,0x01,0x6a,0x1a,0x01,0x59,0x16,0x01,0x6a,0x15,0x7a,0x15,0x02,0x97,0x11,0x01,0x85,0x11,0x01,0x89,0x0d,0x01,0x98,0x09,0x01,0x8b,0x09,0x01,0x86,0x02,0x01,0x13,0x7d,0x10,0x00,0x20,0x00,0x02,0x00,0x04,0x18,0x7e,0x07,0x21,0x7d,0x1f, +0x0b,0x2f,0x0b,0x02,0x0b,0x1c,0x07,0x18,0x1c,0x91,0x07,0x04,0x04,0x06,0x17,0x1d,0x91,0x0f,0x04,0x06,0x12,0x00,0x3f,0x3f,0xed,0x32,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xc4,0xdd,0x5d,0xed,0x10,0xfd,0xc4,0xdc,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x07, +0x11,0x23,0x11,0x26,0x27,0x26,0x35,0x10,0x37,0x36,0x21,0x20,0x17,0x16,0x03,0x34,0x27,0x26,0x27,0x11,0x36,0x37,0x36,0x05,0x11,0x06,0x07,0x06,0x15,0x14,0x17,0x16,0x05,0x4c,0xa1,0x9b,0xe9,0xa8,0xec,0x99,0xa0,0xc0,0xb7,0x01,0x04,0x01,0x06,0xb3,0xbe,0xb0,0x6c,0x67,0xa2,0xa3,0x66,0x6c,0xfd,0xe3,0xa3,0x66,0x6c,0x6c,0x67,0x03, +0x72,0xec,0xa5,0xa0,0x19,0xfe,0xd8,0x01,0x28,0x16,0x99,0xa0,0xee,0x01,0x04,0xa9,0xa0,0x98,0xa2,0xfe,0xf3,0xab,0x75,0x6e,0x1a,0xfc,0xaf,0x19,0x6f,0x75,0xfc,0x03,0x51,0x19,0x6f,0x75,0xac,0xaa,0x75,0x6f,0x00,0x01,0x00,0x32,0x00,0x00,0x04,0x62,0x05,0x9a,0x00,0x0f,0x00,0x46,0x40,0x2b,0x00,0x7e,0x20,0x02,0xa0,0x02,0xb0,0x02, +0xc0,0x02,0x04,0x02,0x03,0x0e,0x7e,0x06,0x07,0x7e,0x2f,0x09,0xaf,0x09,0xbf,0x09,0xcf,0x09,0x04,0x09,0x0b,0x06,0x0e,0x09,0x0b,0x91,0x06,0x01,0x03,0x03,0x05,0x0d,0x03,0x05,0x12,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xce,0xc4,0xfd,0xce,0xc4,0x01,0x2f,0xc4,0xdc,0x5d,0xed,0x10,0xfd,0xc4,0xdd,0x5d,0xed,0x31,0x30,0x01,0x23,0x35,0x21, +0x11,0x23,0x11,0x21,0x11,0x33,0x15,0x21,0x11,0x33,0x11,0x21,0x04,0x62,0x9c,0xfe,0xd8,0xa8,0xfe,0x3c,0x9c,0x01,0x28,0xa8,0x01,0xc4,0x02,0x9d,0xcb,0xfc,0x98,0x03,0x68,0x01,0x63,0xcb,0x01,0x9a,0xfe,0x66,0x00,0x01,0x00,0xaa,0x00,0x00,0x04,0xd5,0x05,0xb2,0x00,0x0d,0x00,0x38,0x40,0x21,0x45,0x0c,0x01,0x44,0x0a,0x01,0x3a,0x05, +0x01,0x29,0x05,0x01,0x3a,0x03,0x01,0x29,0x03,0x01,0x00,0x7e,0x02,0x02,0x0f,0x06,0x7e,0x08,0x04,0x91,0x0b,0x04,0x01,0x07,0x12,0x00,0x3f,0xc4,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x10,0x21,0x20,0x11,0x11,0x23,0x11,0x10,0x21,0x20,0x11,0x04,0xd5,0xa8,0xfe, +0x93,0xfe,0x92,0xa8,0x02,0x17,0x02,0x14,0x03,0x71,0x01,0xaa,0xfe,0x47,0xfc,0x9e,0x03,0x6d,0x02,0x45,0xfd,0xa4,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x12,0x00,0x3a,0x40,0x20,0x36,0x0c,0x01,0x68,0x06,0x01,0x4a,0x06,0x5a,0x06,0x02,0x10,0x00,0x7e,0x02,0x02,0x14,0x09,0x7e,0x07,0x02,0x04,0x91,0x10,0x0e,0x0e, +0x00,0x09,0x11,0x03,0x00,0x12,0x00,0x3f,0x3f,0xc4,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x02,0x35,0x11,0x33,0x11,0x14,0x17,0x16,0x33,0x32,0x37,0x11,0x33,0x04,0xa2,0xa8,0xbc,0xc3,0xd7,0xfe,0xa8,0x52,0x55,0x96,0xb2,0xbd,0xa8,0x02, +0x7b,0x73,0x01,0x08,0xd8,0x01,0xb2,0xfe,0x52,0x97,0x59,0x5c,0x70,0x02,0x8a,0x00,0x00,0x01,0x00,0xa6,0xff,0xe8,0x04,0x81,0x05,0x9a,0x00,0x21,0x00,0x5c,0x40,0x38,0x86,0x1c,0x01,0x36,0x0f,0x01,0x36,0x0b,0x96,0x0b,0x02,0x27,0x0b,0x01,0x49,0x06,0x59,0x06,0x02,0x49,0x02,0x59,0x02,0x02,0x4a,0x01,0x01,0x21,0x7e,0x12,0x1f,0x1f, +0x18,0x23,0x09,0x7e,0x08,0x08,0x1a,0x7e,0x18,0x1f,0x1d,0x91,0x12,0x09,0x14,0x14,0x0d,0x1a,0x20,0x03,0x0d,0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0xc4,0x12,0x39,0x2f,0xce,0x33,0xed,0x32,0x01,0x2f,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xc4,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22, +0x27,0x26,0x35,0x33,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x11,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x04,0x81,0x85,0x88,0xdf,0xdb,0x8d,0x87,0xa8,0x57,0x61,0x8f,0x90,0x5e,0x56,0xe4,0xc6,0xb7,0x67,0x6b,0xa8,0xf5,0xb4,0xe2,0xa8,0x01,0xb4,0xce,0x7e,0x80,0x8a,0x85,0xc0,0x76,0x63,0x6c, +0x6a,0x61,0x7d,0x01,0x12,0x7a,0x5e,0x61,0xb5,0x01,0xd4,0xfe,0x34,0xe8,0x6e,0x02,0x46,0x00,0x00,0x01,0x00,0xc9,0x00,0x00,0x04,0xc5,0x05,0x9a,0x00,0x12,0x00,0x40,0x40,0x24,0x66,0x11,0x76,0x11,0x02,0x59,0x04,0x01,0x4a,0x04,0x01,0x39,0x04,0x01,0x00,0x7e,0x02,0x02,0x0a,0x14,0x0d,0x08,0x7e,0x0a,0x08,0x06,0x91,0x0d,0x0f,0x0f, +0x0a,0x0c,0x03,0x01,0x0a,0x12,0x00,0x3f,0xc4,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x34,0x27,0x26,0x23,0x22,0x07,0x11,0x23,0x11,0x33,0x11,0x36,0x33,0x32,0x12,0x15,0x04,0xc5,0xa8,0x52,0x55,0x96,0xb2,0xbd,0xa8,0xa8,0xbc,0xc3,0xd7, +0xfe,0x01,0xae,0x97,0x59,0x5c,0x70,0xfd,0x76,0x05,0x9a,0xfd,0x85,0x73,0xfe,0xf8,0xd8,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x05,0x00,0x05,0xb2,0x00,0x1f,0x00,0x83,0x40,0x57,0x66,0x18,0x01,0x06,0x17,0x16,0x17,0x56,0x17,0x66,0x17,0x04,0x56,0x13,0x66,0x13,0x02,0x66,0x12,0x01,0x08,0x0b,0x18,0x0b,0x02,0x29,0x05,0x01,0x77,0x0a, +0x01,0x99,0x07,0x01,0x79,0x06,0x01,0x0f,0x0f,0x1f,0x7e,0x02,0x10,0x1d,0x01,0x1d,0x1d,0x21,0x15,0x7d,0x0f,0x08,0x1f,0x08,0x02,0x08,0x1e,0x1e,0x19,0x0f,0x11,0x91,0x96,0x0e,0x01,0x87,0x0e,0x01,0x76,0x0e,0x01,0x0e,0x0c,0x04,0x1d,0x19,0x91,0x69,0x02,0x79,0x02,0x02,0x02,0x04,0x13,0x00,0x12,0x00,0x3f,0x3f,0x33,0x5d,0xed,0x32, +0x3f,0x33,0x5d,0x5d,0x5d,0xed,0x32,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xc4,0xed,0x32,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x35,0x06,0x23,0x20,0x27,0x26,0x11,0x10,0x37,0x36,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x06,0x11,0x10,0x17,0x16,0x33,0x32,0x37,0x36, +0x37,0x11,0x33,0x05,0x00,0xa8,0xa7,0xb9,0xfe,0xc6,0xb4,0xac,0xbf,0xc5,0x01,0x46,0xe0,0x9f,0xae,0xe4,0xf8,0x8d,0x82,0x7b,0x86,0xfe,0x66,0x5f,0x56,0x30,0xa8,0x40,0x58,0xcd,0xc3,0x01,0x42,0x01,0x4e,0xd2,0xd8,0x4c,0xba,0x6e,0xaf,0xa2,0xfe,0xfd,0xfe,0xf8,0x99,0xa6,0x28,0x23,0x34,0x01,0x56,0x00,0x00,0x02,0x00,0x5c,0xff,0xe8, +0x05,0xb0,0x05,0x9a,0x00,0x15,0x00,0x1f,0x00,0x73,0x40,0x4c,0x39,0x1e,0x01,0x39,0x1d,0x01,0x36,0x1b,0x01,0x35,0x19,0x01,0x4b,0x0f,0x5b,0x0f,0x02,0x49,0x0e,0x59,0x0e,0x02,0x59,0x0a,0x01,0x4a,0x0a,0x01,0x5a,0x09,0x01,0x56,0x07,0x01,0x55,0x06,0x01,0x44,0x06,0x01,0x15,0x7e,0x01,0x03,0x14,0x7e,0x11,0x00,0x17,0x10,0x17,0x02, +0x17,0x17,0x21,0x1a,0x7e,0x0f,0x0c,0x1f,0x0c,0x02,0x0c,0x14,0x11,0x91,0x17,0x01,0x03,0x03,0x12,0x03,0x1c,0x91,0x08,0x13,0x00,0x3f,0xed,0x3f,0x39,0x2f,0xce,0xc4,0xfd,0xc4,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xc4,0xfd,0xc4,0xdc,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35, +0x23,0x11,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x21,0x11,0x33,0x11,0x21,0x01,0x11,0x21,0x20,0x11,0x10,0x21,0x32,0x37,0x36,0x05,0xb0,0x9c,0xc8,0x83,0x87,0xe8,0xef,0x8a,0x85,0x78,0x7e,0xef,0x01,0x63,0xa8,0x01,0x64,0xfd,0xf4,0xfe,0xaf,0xfe,0xb1,0x01,0x4a,0xa7,0x5b,0x54,0x02,0x9d,0xcb,0xfe,0x8c,0xea, +0x8f,0x93,0x93,0x8f,0xf0,0xf0,0x87,0x8f,0x01,0x9a,0xfe,0x66,0xfd,0xf8,0x01,0x70,0xfe,0x8c,0xfe,0x7e,0x72,0x69,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x38,0x05,0x9a,0x00,0x12,0x00,0x19,0x00,0x5f,0x40,0x3c,0x67,0x19,0x77,0x19,0x02,0x68,0x14,0x78,0x14,0x02,0x85,0x12,0x95,0x12,0x02,0x86,0x11,0x96,0x11,0x02,0x89,0x02,0x99,0x02, +0x02,0x9a,0x01,0x01,0x89,0x01,0x01,0x00,0x7d,0x13,0x13,0x0d,0x1b,0x07,0x7e,0x09,0x17,0x0b,0x06,0x7e,0x0d,0x08,0x0a,0x91,0x07,0x18,0x91,0x05,0x05,0x0d,0x16,0x91,0x0e,0x03,0x0d,0x12,0x00,0x3f,0x3f,0xed,0x11,0x39,0x2f,0xed,0xde,0xfd,0xcd,0x01,0x2f,0xfd,0xc4,0xc4,0xdc,0xed,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x21,0x15,0x21,0x11,0x23,0x35,0x23,0x11,0x23,0x11,0x21,0x32,0x17,0x16,0x07,0x34,0x21,0x23,0x11,0x33,0x20,0x04,0x38,0x81,0x78,0xcb,0xfe,0xf0,0x01,0x6b,0x9c,0xcf,0xa8,0x01,0xaa,0xd5,0x79,0x84,0xb1,0xfe,0xc9,0xec,0xec,0x01,0x37,0x04,0x2f,0xb2,0x60,0x59,0x99,0xfe,0x9d,0xcb, +0xfe,0x6d,0x05,0x9a,0x56,0x5e,0xb7,0xd3,0xfe,0x5a,0x00,0x01,0x00,0x64,0xff,0xe8,0x04,0xb5,0x05,0xb2,0x00,0x31,0x00,0xa6,0x40,0x68,0x66,0x31,0x76,0x31,0x02,0x76,0x29,0x01,0x7a,0x27,0x01,0x95,0x20,0x01,0x66,0x20,0x86,0x20,0x02,0x9a,0x1c,0x01,0x8b,0x1c,0x01,0x6c,0x1c,0x01,0x89,0x1a,0x01,0x7c,0x12,0x01,0x56,0x0f,0x01,0x89, +0x07,0x01,0x7a,0x07,0x01,0x69,0x07,0x01,0x66,0x02,0x01,0x66,0x01,0x01,0x23,0x21,0x7d,0x24,0x26,0x26,0x13,0x2e,0x2a,0x00,0x7d,0x17,0x1b,0x20,0x13,0x50,0x13,0x02,0x13,0x13,0x33,0x2a,0x7d,0x1b,0x0b,0x0d,0x7d,0x0a,0x08,0x08,0x1b,0x23,0x23,0x2e,0x28,0x2e,0x1d,0x11,0x0a,0x0a,0x17,0x11,0x17,0x04,0x28,0x91,0x1d,0x04,0x11,0x91, +0x04,0x13,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x2f,0x01,0x2f,0x33,0x2f,0x33,0xed,0x32,0x10,0xed,0x12,0x39,0x2f,0x5d,0x12,0x39,0xed,0x11,0x39,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14, +0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x11,0x34,0x27,0x26,0x27,0x26,0x27,0x26,0x35,0x10,0x21,0x32,0x17,0x16,0x15,0x14,0x07,0x23,0x36,0x35,0x34,0x21,0x20,0x15,0x14,0x17,0x16,0x17,0x16,0x17,0x16,0x04,0xb5,0xab,0x8c,0xec,0xe8,0x93,0xb3,0x0f,0xb4,0x12,0x81,0x62,0x9c,0x01,0x71, +0x7a,0x49,0xa5,0xf5,0x70,0xaf,0x01,0xfa,0xcb,0x84,0xa1,0x0a,0xae,0x08,0xfe,0xbe,0xfe,0xb8,0x80,0x48,0xaa,0xee,0x73,0xa9,0x01,0x85,0xdd,0x6a,0x56,0x57,0x6b,0xd9,0x43,0x40,0x43,0x42,0x8e,0x42,0x32,0x01,0x06,0x85,0x44,0x28,0x1f,0x2e,0x43,0x68,0xcc,0x01,0x78,0x4e,0x5f,0xbd,0x25,0x4b,0x45,0x2b,0xd2,0xe0,0x85,0x42,0x26,0x1e, +0x2b,0x48,0x6b,0x00,0x00,0x01,0x00,0xc9,0x00,0x00,0x04,0xc5,0x05,0x9a,0x00,0x14,0x00,0x46,0x40,0x2a,0x39,0x10,0x01,0x66,0x02,0x76,0x02,0x02,0x45,0x02,0x55,0x02,0x02,0x47,0x01,0x57,0x01,0x02,0x07,0x07,0x14,0x7e,0x12,0x12,0x09,0x16,0x0c,0x05,0x7e,0x09,0x0e,0x91,0x03,0x03,0x06,0x13,0x0b,0x03,0x06,0x91,0x09,0x12,0x00,0x3f, +0xed,0x3f,0xc4,0x12,0x39,0x2f,0xed,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x02,0x23,0x22,0x27,0x11,0x21,0x15,0x21,0x11,0x33,0x11,0x16,0x33,0x32,0x37,0x36,0x35,0x11,0x33,0x04,0xc5,0xfe,0xd7,0xc3,0xbc,0x02,0xf2,0xfc,0x66,0xa8,0xbd,0xb2,0x96,0x55,0x52,0xa8,0x03,0xe8, +0xd8,0xfe,0xf8,0x73,0xfe,0x1d,0x98,0x05,0x9a,0xfd,0x76,0x70,0x5c,0x59,0x97,0x01,0xae,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x05,0x1d,0x05,0x9a,0x00,0x0a,0x00,0x0d,0x00,0x6b,0x40,0x41,0x0d,0x0b,0x04,0x0c,0x00,0x0a,0x09,0x03,0x0c,0x00,0x05,0x0b,0x04,0x01,0x06,0x02,0x09,0x03,0x01,0x06,0x0b,0x03,0x09,0x03,0x7e,0x04,0x0b,0x14, +0x04,0x04,0x0b,0x09,0x09,0x0c,0x01,0x06,0x01,0x7e,0x00,0x0c,0x14,0x00,0x0c,0x00,0x00,0x04,0x0f,0x07,0x06,0x06,0x0b,0x04,0x01,0x04,0x0c,0x06,0x0b,0x91,0x09,0x03,0x01,0x00,0x03,0x04,0x12,0x00,0x3f,0xc4,0xdc,0xc4,0x3f,0xfd,0xd4,0xc4,0x01,0x2f,0x5d,0x33,0x2f,0xcd,0x11,0x12,0x39,0x2f,0x87,0x2b,0x87,0x7d,0xc4,0x01,0x33,0x18, +0x2f,0x87,0x10,0x2b,0x87,0x7d,0xc4,0x0f,0x0f,0x0f,0x0f,0x31,0x30,0x25,0x23,0x01,0x01,0x23,0x01,0x01,0x21,0x35,0x21,0x01,0x13,0x21,0x13,0x05,0x1d,0xce,0xfe,0xa3,0xfe,0x0e,0xce,0x02,0x59,0xfe,0xad,0xfe,0xfa,0x04,0xeb,0xfe,0x3c,0x86,0xfe,0x27,0xec,0xcc,0x01,0xdb,0xfd,0x59,0x03,0x33,0x01,0xcf,0x98,0xfd,0x99,0x01,0xcf,0xfe, +0xbd,0x00,0x00,0x01,0x00,0x32,0xff,0xe8,0x05,0xd5,0x05,0x9a,0x00,0x11,0x00,0x55,0x40,0x35,0x29,0x0e,0x39,0x0e,0x49,0x0e,0x03,0x96,0x0c,0x01,0x44,0x0c,0x01,0x35,0x0c,0x01,0x26,0x0c,0x01,0x59,0x03,0x01,0x11,0x7e,0x10,0x0f,0x01,0x0f,0x0f,0x04,0x13,0x09,0x7e,0x07,0x0b,0x7e,0x0f,0x04,0x01,0x04,0x11,0x11,0x0a,0x0d,0x07,0x05, +0x91,0x0a,0x03,0x0d,0x91,0x02,0x13,0x00,0x3f,0xed,0x3f,0xfd,0xce,0x11,0x12,0x39,0x2f,0x01,0x2f,0x5d,0xed,0xde,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x20,0x11,0x11,0x23,0x15,0x23,0x11,0x21,0x11,0x10,0x21,0x20,0x11,0x35,0x33,0x05,0xd5,0xfd,0xdf,0xfd,0xf6,0xdc,0x9c,0x02, +0x20,0x01,0x74,0x01,0x67,0xa8,0x02,0x44,0xfd,0xa4,0x02,0x45,0x02,0xd5,0xcb,0x01,0x63,0xfc,0x9e,0xfe,0x47,0x01,0xaa,0x7f,0x00,0x01,0x00,0xc9,0x00,0x00,0x04,0xf0,0x05,0x9a,0x00,0x11,0x00,0x55,0x40,0x34,0x97,0x0f,0xa7,0x0f,0x02,0x86,0x0f,0x01,0x7a,0x02,0x01,0x00,0x10,0x7e,0x01,0x01,0x09,0x13,0x0c,0x07,0x7e,0x09,0x75,0x0c, +0x01,0x56,0x0c,0x66,0x0c,0x02,0x44,0x0c,0x01,0x23,0x0c,0x33,0x0c,0x02,0x0c,0x0e,0x91,0x03,0x10,0x91,0x01,0x03,0x03,0x08,0x0b,0x03,0x08,0x12,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xde,0xed,0x10,0xed,0x32,0x5d,0x5d,0x5d,0x5d,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xfd,0xcd,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x21,0x10,0x23,0x22, +0x07,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x36,0x33,0x20,0x13,0x33,0x04,0xf0,0xfe,0x95,0xf0,0x94,0x4c,0x44,0xa8,0xa8,0x6f,0xb5,0x01,0x49,0x41,0xd1,0x02,0x44,0x01,0x4a,0x78,0x6b,0xb1,0xfe,0x06,0x05,0x9a,0xfe,0x07,0x77,0xfe,0xc4,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0x9a,0x00,0x15,0x00,0x64,0x40,0x42,0x27,0x15, +0x01,0x86,0x14,0x01,0x37,0x14,0x01,0x25,0x14,0x01,0x6b,0x0d,0x7b,0x0d,0x02,0x59,0x0d,0x01,0x99,0x09,0x01,0x1b,0x09,0x5b,0x09,0x02,0x08,0x09,0x01,0x65,0x02,0x75,0x02,0x02,0x00,0x7d,0x00,0x0b,0x10,0x0b,0x02,0x0b,0x0b,0x17,0x12,0x7e,0x0f,0x06,0x06,0x0f,0x0f,0x91,0x13,0x10,0x03,0x06,0x08,0x91,0x9a,0x05,0x01,0x05,0x03,0x13, +0x00,0x3f,0x33,0x5d,0xed,0x32,0x3f,0xdc,0xed,0x01,0x2f,0x32,0x2f,0x10,0xed,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x00,0x21,0x22,0x27,0x35,0x16,0x33,0x20,0x00,0x11,0x34,0x00,0x23,0x21,0x11,0x33,0x15,0x33,0x20,0x00,0x04,0x8c,0xfe,0x75,0xfe,0xaf,0xcc,0x86,0x9a,0xba, +0x01,0x0a,0x01,0x20,0xfe,0xf1,0xf9,0xfe,0xf4,0x9c,0x86,0x01,0x3c,0x01,0x66,0x02,0xa7,0xfe,0xba,0xfe,0x87,0x3b,0xb3,0x56,0x01,0x1d,0x01,0x00,0xec,0x01,0x00,0x01,0x11,0x79,0xfe,0xb4,0x00,0x01,0x00,0x33,0x00,0x00,0x04,0x2f,0x05,0x9a,0x00,0x14,0x00,0x3f,0x40,0x24,0x36,0x0e,0x46,0x0e,0x02,0x5b,0x05,0x01,0x12,0x00,0x7e,0x02, +0x02,0x16,0x0a,0x0c,0x7e,0x09,0x07,0x40,0x09,0x0d,0x48,0x07,0x02,0x04,0x91,0x12,0x10,0x10,0x01,0x0a,0x13,0x03,0x01,0x12,0x00,0x3f,0x3f,0xce,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x2b,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0xc4,0x31,0x30,0x5d,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x02,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x17, +0x16,0x33,0x32,0x37,0x11,0x33,0x04,0x2f,0xa8,0xbc,0xc3,0xd7,0xfe,0x33,0xb0,0x3b,0x52,0x55,0x96,0xb2,0xbd,0xa8,0x02,0x7b,0x73,0x01,0x08,0xd8,0x72,0x88,0x92,0x64,0x97,0x59,0x5c,0x70,0x02,0x8a,0x00,0x01,0x00,0x96,0x00,0x00,0x04,0xc4,0x05,0x9a,0x00,0x10,0x00,0x41,0x40,0x26,0x96,0x0b,0x01,0x87,0x0b,0x01,0x49,0x06,0x01,0x3a, +0x06,0x01,0x3a,0x01,0x4a,0x01,0x02,0x09,0x7e,0x07,0x04,0x0f,0x7e,0x00,0x02,0x7e,0x04,0x05,0x02,0x91,0x0c,0x0c,0x04,0x0f,0x09,0x03,0x04,0x12,0x00,0x3f,0x3f,0xc4,0x12,0x39,0x2f,0xed,0x32,0x01,0x2f,0xfd,0xdc,0xed,0x10,0xdc,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x05,0x11,0x23,0x11,0x24,0x11,0x11,0x33,0x11, +0x10,0x21,0x20,0x11,0x11,0x33,0x04,0xc4,0xfe,0x3d,0xa8,0xfe,0x3d,0xa8,0x01,0x6f,0x01,0x6f,0xa8,0x04,0x48,0xfd,0xd4,0x2c,0xfe,0x10,0x01,0xf0,0x2e,0x02,0x13,0x01,0x69,0xfe,0xa2,0xfe,0x47,0x01,0xaa,0x01,0x6d,0x00,0x00,0x03,0x00,0x52,0xff,0xe8,0x06,0x3a,0x05,0x9a,0x00,0x17,0x00,0x22,0x00,0x2e,0x00,0x6b,0x40,0x40,0x89,0x2d, +0x01,0x85,0x27,0x01,0x77,0x27,0x01,0x95,0x17,0x01,0x9a,0x11,0x01,0x94,0x0a,0x01,0x94,0x01,0x01,0x1e,0x07,0x03,0x7e,0x24,0x14,0x06,0x06,0x00,0x7d,0x18,0x14,0x18,0x14,0x18,0x30,0x29,0x7e,0x0f,0x0f,0x1f,0x0f,0x02,0x0f,0x07,0x24,0x91,0x04,0x1e,0x91,0x02,0x14,0x04,0x04,0x2b,0x1d,0x91,0x15,0x03,0x2b,0x91,0x0b,0x13,0x00,0x3f, +0xed,0x3f,0xed,0x11,0x39,0x2f,0xc4,0xde,0xed,0x10,0xfd,0xc4,0x01,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x2f,0x10,0xc4,0xfd,0xc4,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x21,0x15,0x21,0x15,0x21,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x33,0x11,0x21,0x20,0x03, +0x34,0x27,0x26,0x23,0x23,0x11,0x33,0x32,0x37,0x36,0x01,0x35,0x23,0x22,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x36,0x06,0x3a,0xfe,0x3c,0xfe,0xf0,0x02,0x23,0xfd,0xdd,0xcd,0xb6,0xb5,0x6b,0x71,0x81,0x74,0xb1,0xc6,0x01,0xaa,0x01,0xd2,0xb1,0x5b,0x45,0x97,0xec,0xec,0xa4,0x45,0x4e,0xfd,0x35,0xc6,0x65,0x45,0x4c,0xe1,0x69,0x3a,0x38, +0x04,0x61,0xfe,0xc7,0x82,0x98,0xa8,0xb5,0xc9,0x57,0x5c,0xa8,0xab,0x60,0x58,0x02,0xf4,0xfe,0xc7,0x60,0x25,0x1c,0xfe,0xbe,0x21,0x24,0xfd,0x61,0xa8,0x32,0x39,0x60,0xc4,0x41,0x3e,0x00,0x00,0x01,0x00,0x60,0xff,0xea,0x03,0x98,0x04,0x00,0x00,0x2d,0x00,0x58,0x40,0x36,0x99,0x16,0x01,0x88,0x16,0x01,0x95,0x29,0x01,0x76,0x29,0x86, +0x29,0x02,0x27,0x29,0x37,0x29,0x02,0x29,0x00,0x24,0x84,0x23,0x00,0x84,0x19,0x6a,0x1e,0x01,0x1e,0x19,0x10,0x19,0x90,0x19,0x02,0x23,0x19,0x23,0x19,0x2f,0x0f,0x84,0x0a,0x0d,0x0c,0x0c,0x24,0x0f,0x14,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x12,0x39,0x5d,0x10,0xed,0x10, +0xed,0x11,0x39,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x27,0x33,0x1e,0x03,0x17,0x1e,0x03,0x03,0x98,0x44,0x72,0x96,0x51,0x51,0x95,0x72,0x43,0x28,0x9c,0x1e,0x27,0x43,0x59,0x32,0x32,0x5a, +0x43,0x28,0x16,0x28,0x39,0x23,0x36,0x41,0x26,0x0f,0x03,0xa4,0x01,0x0e,0x20,0x35,0x28,0x2c,0x47,0x31,0x1b,0x01,0x4a,0x57,0x84,0x58,0x2d,0x2d,0x58,0x84,0x57,0x5f,0x50,0x37,0x38,0x44,0x36,0x4f,0x34,0x19,0x19,0x34,0x4f,0x36,0x2f,0x49,0x42,0x3f,0x25,0x38,0x57,0x59,0x69,0x4b,0x37,0x54,0x48,0x45,0x28,0x2c,0x52,0x57,0x63,0x00, +0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0xec,0x00,0x16,0x00,0x26,0x00,0x84,0x40,0x59,0x96,0x21,0x01,0x96,0x1d,0x01,0x53,0x15,0x01,0x44,0x15,0x01,0x53,0x14,0x01,0x42,0x14,0x01,0x09,0x0a,0x01,0x5a,0x06,0x01,0x4b,0x06,0x01,0x59,0x05,0x01,0x56,0x03,0x01,0x56,0x02,0x01,0x45,0x02,0x01,0x17,0x83,0x40,0x00,0x50,0x00,0x02, +0x00,0x12,0x84,0x0c,0x10,0x84,0x0e,0x0c,0x1f,0x83,0x0f,0x08,0x3f,0x08,0x02,0x08,0x4f,0x0c,0x01,0x0c,0x0e,0x95,0x11,0x11,0x0f,0x1b,0x95,0x0c,0x00,0x13,0x10,0x13,0x20,0x13,0x03,0x13,0x10,0x0f,0x00,0x23,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x5d,0x33,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x5d,0xdd,0x5d,0xed,0x10,0xde,0xed, +0x10,0xfd,0xdc,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x10,0x37,0x36,0x37,0x35,0x21,0x11,0x33,0x15,0x21,0x11,0x16,0x17,0x16,0x03,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x04,0x50,0x85,0x8b,0xee, +0xe7,0x87,0x84,0x8d,0x71,0xb2,0xfe,0xb8,0xa4,0x01,0x48,0xb1,0x6b,0x80,0xa8,0x4a,0x55,0xab,0xaa,0x5b,0x51,0x54,0x5c,0xa6,0xab,0x54,0x4b,0x02,0x04,0xf1,0x93,0x98,0x94,0x8f,0xe9,0x01,0x02,0x91,0x74,0x17,0xc9,0x01,0x11,0x79,0xfe,0xa1,0x14,0x75,0x8c,0xfe,0xff,0xb3,0x67,0x76,0x78,0x6c,0xb0,0xab,0x6a,0x73,0x74,0x66,0x00,0x02, +0x00,0x60,0xfe,0x1e,0x04,0x50,0x04,0x18,0x00,0x32,0x00,0x42,0x00,0x8d,0x40,0x5b,0x49,0x42,0x59,0x42,0x02,0x59,0x3e,0x01,0x4a,0x3e,0x01,0x55,0x3b,0x01,0x46,0x3b,0x01,0x6a,0x23,0x01,0x76,0x1a,0x01,0x65,0x1a,0x01,0x07,0x1a,0x17,0x1a,0x02,0x48,0x0e,0x58,0x0e,0x02,0x19,0x0e,0x29,0x0e,0x39,0x0e,0x03,0x19,0x16,0x83,0x2e,0x2b, +0x2e,0x1c,0x83,0x40,0x30,0x40,0x01,0x2e,0x40,0x2e,0x40,0x26,0x44,0x08,0x05,0x83,0x09,0x0c,0x0c,0x38,0x83,0x0f,0x26,0x1f,0x26,0x02,0x26,0x08,0x09,0x33,0x95,0x19,0x2b,0x2b,0x00,0x3d,0x95,0x21,0x1c,0x00,0x95,0x11,0x10,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0xce,0x32,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x33,0xed,0x32, +0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02, +0x33,0x36,0x36,0x35,0x34,0x2e,0x02,0x13,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0xc6,0x2a,0x46,0x32,0x1c,0x06,0x0e,0xa6,0x10,0x06,0x35,0x5f,0x83,0x4f,0x4f,0x82,0x5e,0x34,0x17,0x0e,0xa5,0xa7,0x46,0x83,0xbd,0x78,0x74,0xb9,0x81,0x44,0x46,0x85,0xc2,0x7c,0x0e,0x10,0x1d,0x33,0x47,0x6e,0x57,0x81, +0x54,0x2a,0x2b,0x56,0x80,0x55,0x9f,0xab,0xab,0x03,0x8e,0x1f,0x35,0x45,0x27,0x1b,0x2f,0x39,0x1d,0x46,0x3a,0x20,0x4a,0x7a,0x57,0x2f,0x2f,0x58,0x7d,0x4e,0x43,0x60,0x22,0x28,0xfa,0xc3,0x76,0xbd,0x84,0x47,0x44,0x80,0xb7,0x73,0x7c,0xc1,0x84,0x45,0x27,0x4e,0x35,0x33,0x4f,0x35,0x1b,0xfd,0xfa,0x35,0x62,0x8a,0x55,0x53,0x86,0x5e, +0x33,0xb0,0xbe,0xc0,0xb2,0x00,0x00,0x02,0x00,0x60,0xfe,0x1e,0x06,0xa0,0x04,0x18,0x00,0x3e,0x00,0x52,0x01,0x00,0x40,0xa8,0x97,0x11,0x01,0x95,0x10,0x01,0x57,0x50,0x01,0x55,0x4b,0x01,0x58,0x42,0x01,0x65,0x3d,0x01,0x65,0x3c,0x01,0x55,0x37,0x01,0x56,0x34,0x01,0x47,0x34,0x01,0x36,0x34,0x01,0x46,0x33,0x56,0x33,0x02,0x37,0x33, +0x01,0x39,0x2d,0x49,0x2d,0x59,0x2d,0x03,0x29,0x11,0x01,0x28,0x10,0x01,0x69,0x07,0x01,0x69,0x03,0x01,0x68,0x02,0x01,0x49,0x83,0x0a,0x38,0x9a,0x0c,0x01,0x89,0x0c,0x01,0x68,0x0c,0x78,0x0c,0x02,0x0c,0x0a,0x9d,0x2c,0x01,0x8f,0x2c,0x01,0x2c,0x31,0x92,0x1a,0x01,0x70,0x1a,0x01,0x1a,0x13,0x9d,0x20,0x01,0x7a,0x20,0x8a,0x20,0x02, +0x20,0x1f,0x1f,0x00,0x83,0x3f,0x0a,0x3f,0x0a,0x3f,0x54,0x13,0x83,0x31,0x29,0x29,0x31,0x4e,0x95,0x05,0x05,0x2c,0x44,0x95,0x3a,0x0c,0x0e,0x95,0x56,0x38,0x01,0x25,0x38,0x01,0x14,0x38,0x01,0x05,0x38,0x01,0x38,0x36,0x36,0x3a,0x10,0x26,0x1a,0x01,0x1a,0x20,0x2c,0x95,0x25,0x17,0x29,0x01,0x29,0x95,0x28,0x28,0x25,0x1f,0x20,0x1c, +0x00,0x3f,0x33,0xce,0x32,0x2f,0xed,0x5d,0x10,0xed,0x11,0x39,0x5d,0x3f,0x33,0x2f,0x33,0x5d,0x5d,0x5d,0x5d,0xed,0x32,0x10,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x2f,0x33,0x5d,0x5d,0x12,0x39,0x5d,0x5d,0x12,0x39,0x5d,0x5d,0x11,0x33,0x5d,0x5d,0x5d,0x33,0x10,0xed,0x31, +0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x04,0x17,0x1e,0x03,0x17,0x07,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33, +0x32,0x17,0x36,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x06,0xa0,0x3c,0x74,0xa7,0x6b,0x6b,0xad,0x7b,0x43,0x46,0x6a,0x74,0x4d,0x7a,0x54,0x2d,0x2c,0x52,0x73,0x90,0xa7,0x5c,0x5d,0x96,0x7b,0x66,0x2d,0x68,0x64,0xc7,0xd4,0xe5,0x82,0x6c,0xc8,0x4b,0x4e,0xca,0x6b,0x54, +0x83,0x5c,0x30,0x45,0x81,0xbb,0x75,0xb7,0x83,0x7a,0xb4,0x6b,0xa7,0x74,0x3c,0xa8,0x21,0x45,0x6a,0x4a,0x4a,0x71,0x4c,0x27,0x27,0x4c,0x71,0x4a,0x4a,0x6a,0x45,0x21,0x02,0x2e,0x6a,0xb3,0x82,0x49,0x4a,0x83,0xb3,0x6a,0x9e,0x74,0x4c,0x41,0x70,0x94,0x53,0x61,0x98,0x78,0x5d,0x4c,0x3e,0x1d,0x1d,0x38,0x39,0x39,0x1f,0x7d,0x3f,0x5e, +0x3f,0x20,0x3f,0x3f,0xa8,0x31,0x31,0x2e,0x77,0x91,0xaa,0x62,0x7b,0xcd,0x95,0x53,0x64,0x64,0x4a,0x83,0xb4,0x69,0x46,0x80,0x61,0x39,0x39,0x60,0x7f,0x46,0x47,0x7f,0x61,0x39,0x38,0x60,0x7f,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x04,0x18,0x00,0x2d,0x00,0x6b,0x40,0x45,0x07,0x2b,0x17,0x2b,0x02,0x96,0x20,0x01,0x76,0x1f, +0x86,0x1f,0x96,0x1f,0x03,0x9c,0x1c,0x01,0x79,0x1c,0x89,0x1c,0x02,0x6a,0x16,0x01,0x59,0x16,0x01,0x75,0x12,0x01,0x57,0x12,0x67,0x12,0x02,0x77,0x11,0x01,0x2d,0x84,0x19,0x19,0x0a,0x2f,0x22,0x84,0x23,0x23,0x0d,0x0f,0x84,0x0c,0x0a,0x0d,0x0c,0x22,0x0c,0x22,0x14,0x1d,0x95,0x28,0x10,0x14,0x95,0x05,0x1c,0x00,0x3f,0xed,0x3f,0xed, +0x11,0x39,0x39,0x2f,0x2f,0x33,0x01,0x2f,0x33,0xed,0x32,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e, +0x02,0x33,0x32,0x1e,0x02,0x15,0x03,0xf1,0x4a,0x81,0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c,0x2e,0x4b,0x60,0x32,0x43,0x74,0x55,0x30,0x80,0x71,0x32,0x53,0x3c,0x22,0xa6,0x3e,0x6b,0x8f,0x51,0x50,0x92,0x70,0x43,0x22,0x69,0xa6,0x74,0x3d,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x28,0x4d,0x6d,0x45, +0x02,0xc2,0x79,0x83,0x19,0x34,0x51,0x37,0x55,0x83,0x5a,0x2e,0x2b,0x57,0x85,0x59,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x04,0x18,0x00,0x43,0x00,0x9b,0x40,0x61,0x87,0x3d,0x01,0x76,0x3d,0x01,0x76,0x2d,0x86,0x2d,0x96,0x2d,0x03,0x79,0x29,0x89,0x29,0x99,0x29,0x03,0x5b,0x1c,0x01,0x6a,0x16,0x01,0x59,0x16,0x01,0x56,0x12,0x66, +0x12,0x02,0x75,0x11,0x01,0x3f,0x3e,0x1f,0x3b,0x83,0x26,0x26,0x19,0x1f,0x1f,0x0f,0x00,0x83,0x19,0x19,0x0a,0x45,0x30,0x84,0x31,0x40,0x12,0x18,0x48,0x31,0x31,0x0d,0x0f,0x84,0x0c,0x0f,0x0a,0x1f,0x0a,0x02,0x0a,0x0d,0x0c,0x3f,0x3e,0x1e,0x31,0x31,0x2b,0x20,0x95,0x1e,0x0c,0x1e,0x0c,0x1e,0x14,0x2b,0x95,0x36,0x10,0x14,0x95,0x05, +0x1c,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x39,0x2f,0x11,0x39,0x39,0x11,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x33,0x2f,0x2b,0xed,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x11,0x33,0x2f,0xed,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e, +0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x03,0xf1,0x4a,0x81,0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c,0x2e,0x4b, +0x60,0x32,0x43,0x73,0x53,0x2f,0x38,0x68,0x94,0x5b,0x3b,0x35,0x59,0x80,0x53,0x28,0x1f,0x3c,0x58,0x39,0x32,0x56,0x40,0x25,0xa6,0x41,0x6f,0x92,0x51,0x55,0x93,0x6d,0x3f,0x98,0x8d,0x49,0x82,0x62,0x39,0x0e,0x75,0xb0,0x75,0x3a,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x26,0x4d,0x77,0x51,0x50,0x7c,0x54, +0x2b,0x8b,0x1a,0x39,0x59,0x3e,0x34,0x57,0x3d,0x22,0x1b,0x35,0x50,0x35,0x5a,0x84,0x57,0x2b,0x2d,0x57,0x80,0x52,0x89,0xa3,0x18,0x04,0x0b,0x43,0x66,0x85,0x00,0x03,0x00,0x3c,0xff,0xe8,0x05,0xcc,0x06,0x02,0x00,0x1a,0x00,0x2a,0x00,0x36,0x00,0x6e,0x40,0x44,0x48,0x36,0x58,0x36,0x02,0x46,0x33,0x56,0x33,0x02,0x47,0x2f,0x57,0x2f, +0x02,0x65,0x19,0x01,0x66,0x02,0x01,0x00,0x83,0x10,0x2b,0x30,0x2b,0x02,0x2b,0x2b,0x08,0x38,0x0f,0x84,0x23,0x31,0x83,0x08,0x1b,0x1b,0x15,0x84,0x0f,0x08,0x01,0x08,0x09,0x0b,0x95,0x27,0x2d,0x95,0x17,0x15,0x17,0x27,0x17,0x27,0x17,0x35,0x1f,0x95,0x12,0x01,0x35,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f, +0x11,0x33,0x10,0xed,0x10,0xed,0x32,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x10,0xed,0xdc,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x21,0x22,0x27,0x26,0x35,0x11,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x36,0x33,0x20,0x11,0x11,0x36,0x33,0x32,0x17,0x16,0x01,0x34,0x27,0x26,0x23,0x22,0x07, +0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x01,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x05,0xcc,0x6c,0x76,0xfe,0xf8,0xe5,0x80,0x79,0x31,0x64,0x91,0x52,0x50,0x9f,0x94,0x01,0x3d,0x88,0xc6,0xea,0x7a,0x6e,0xfc,0x38,0x24,0x28,0x44,0x44,0x28,0x24,0x24,0x28,0x43,0x43,0x29,0x25,0x03,0x20,0xfe,0xca,0xa8,0x53, +0x47,0x4a,0x55,0xa3,0x01,0x36,0x01,0xf0,0xf0,0x81,0x97,0x8f,0x88,0xe1,0x01,0xd3,0x2c,0x57,0x54,0x91,0x94,0xab,0xfe,0xc9,0xfe,0x9a,0x77,0x8d,0x80,0x01,0xf6,0x47,0x32,0x39,0x39,0x32,0x47,0x45,0x33,0x38,0x38,0x33,0xfd,0x6a,0x01,0x68,0x6d,0x5e,0xa1,0x9e,0x63,0x73,0x00,0x02,0x00,0x60,0xff,0xe8,0x06,0xc1,0x04,0x18,0x00,0x2a, +0x00,0x3e,0x00,0xca,0x40,0x8b,0x39,0x3c,0x01,0x36,0x38,0x01,0x37,0x32,0x01,0x38,0x2e,0x01,0x47,0x28,0x57,0x28,0x02,0x57,0x23,0x01,0x45,0x23,0x01,0x57,0x22,0x01,0x5a,0x1e,0x01,0x49,0x1e,0x01,0x48,0x1d,0x58,0x1d,0x02,0x58,0x19,0x01,0x49,0x19,0x01,0x4a,0x18,0x5a,0x18,0x02,0x45,0x14,0x55,0x14,0x02,0x47,0x13,0x57,0x13,0x02, +0x46,0x0f,0x01,0x39,0x0a,0x99,0x0a,0x02,0x2a,0x0a,0x01,0x99,0x09,0x01,0x68,0x05,0x98,0x05,0x02,0x94,0x03,0x01,0x76,0x02,0x86,0x02,0x02,0x03,0x04,0x04,0x07,0x19,0x23,0x01,0x23,0x37,0x0f,0x01,0x0f,0x11,0x83,0x2b,0x00,0x83,0x07,0x10,0x07,0x01,0x2b,0x07,0x2b,0x07,0x40,0x35,0x83,0x1b,0x30,0x95,0x20,0x20,0x0f,0x0c,0x95,0x24, +0x23,0x34,0x23,0x02,0x15,0x23,0x01,0x23,0x26,0x10,0x04,0x03,0x03,0x3a,0x95,0x16,0x16,0x00,0x3f,0xed,0x33,0x2f,0x33,0x3f,0x33,0x5d,0x5d,0xed,0x32,0x33,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xed,0x32,0x5d,0x32,0x5d,0x11,0x39,0x2f,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x06,0x07,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x05,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02, +0x33,0x32,0x3e,0x02,0x06,0xc1,0x7f,0x76,0x75,0x5d,0x65,0x2c,0x56,0x7e,0x52,0x3f,0x64,0x2d,0x4f,0x43,0x81,0xbc,0x79,0x74,0xb7,0x7f,0x43,0x44,0x83,0xc1,0x7d,0x5e,0x94,0x3c,0x43,0x98,0x5d,0x76,0xbb,0x81,0x44,0xfc,0xdd,0x23,0x4d,0x7c,0x59,0x58,0x7f,0x53,0x27,0x29,0x54,0x7e,0x56,0x59,0x7c,0x4d,0x23,0x01,0xe8,0xa5,0xfe,0x5d, +0x73,0x47,0xcc,0x88,0x4d,0x93,0x72,0x46,0x22,0x23,0x80,0xc5,0x77,0xc6,0x8f,0x50,0x4e,0x8b,0xc1,0x72,0x7b,0xca,0x90,0x4f,0x2e,0x30,0x30,0x2e,0x57,0x97,0xcd,0x5f,0x54,0x92,0x6c,0x3e,0x40,0x6d,0x93,0x54,0x52,0x8f,0x6a,0x3d,0x3d,0x6a,0x91,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x04,0x81,0x04,0x18,0x00,0x19,0x00,0x89,0x40,0x5a, +0x45,0x18,0x01,0x4a,0x14,0x01,0x96,0x0b,0x01,0x99,0x07,0x01,0x28,0x07,0x38,0x07,0x02,0x99,0x10,0x01,0x88,0x10,0x01,0x79,0x10,0x01,0x10,0x12,0x0f,0x96,0x02,0x01,0x87,0x02,0x01,0x76,0x02,0x01,0x02,0x03,0x00,0x67,0x0f,0x01,0x01,0x0f,0x01,0x68,0x03,0x01,0x0e,0x03,0x01,0x0f,0x03,0x0f,0x03,0x0d,0x00,0x83,0x20,0x05,0x30,0x05, +0xa0,0x05,0x03,0x05,0x05,0x1b,0x0d,0x83,0x0f,0x12,0x1f,0x12,0xaf,0x12,0x03,0x12,0x09,0x95,0x16,0x10,0x03,0x02,0x02,0x0f,0x10,0x16,0x00,0x3f,0x33,0x33,0x2f,0x33,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x5d,0x5d,0x11,0x12,0x39,0x5d,0x5d,0x5d,0x11,0x12,0x39,0x5d,0x5d,0x5d, +0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x07,0x27,0x36,0x11,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x10,0x17,0x07,0x26,0x11,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x04,0x81,0xeb,0x75,0xb8,0x5e,0x65,0xa8,0xa8,0x63,0x5b,0xb8,0x75,0xeb,0x8b,0x90,0xf7,0xf7,0x8e,0x8a,0x01,0xe8,0xfe,0xb8,0xb8,0x73,0x8d,0x01,0x0e,0xab,0x72, +0x7b,0x7b,0x71,0xac,0xfe,0xf2,0x8d,0x73,0xb8,0x01,0x48,0xfa,0x98,0x9e,0x9e,0x98,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x04,0x18,0x00,0x39,0x00,0x72,0x40,0x44,0x86,0x33,0x01,0x77,0x33,0x01,0x79,0x29,0x89,0x29,0x99,0x29,0x03,0x6b,0x16,0x01,0x59,0x16,0x01,0x74,0x12,0x01,0x67,0x12,0x01,0x56,0x12,0x01,0x34,0x35,0x31,0x1f, +0x1f,0x0f,0x00,0x83,0x19,0x19,0x0a,0x3b,0x31,0x83,0x2b,0x26,0x0d,0x0f,0x84,0x0c,0x0a,0x35,0x34,0x20,0x95,0x0d,0x0c,0x1e,0x0c,0x1e,0x0c,0x14,0x2b,0x95,0x2c,0x10,0x14,0x95,0x05,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x39,0x39,0x01,0x2f,0x33,0xed,0x32,0x2f,0xce,0xed,0x11,0x12,0x39,0x2f,0xed, +0x12,0x39,0x2f,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x35,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03, +0x03,0xf1,0x4a,0x81,0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c,0x2e,0x4b,0x60,0x32,0x43,0x73,0x53,0x2f,0x38,0x68,0x94,0x5b,0x3b,0x35,0x59,0x80,0x53,0x28,0x1f,0x3c,0x58,0x39,0x55,0x93,0x6d,0x3f,0x98,0x8d,0x49,0x82,0x62,0x39,0x0e,0x75,0xb0,0x75,0x3a,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x26, +0x4d,0x77,0x51,0x50,0x7c,0x54,0x2b,0x8b,0x1a,0x39,0x59,0x3e,0x34,0x57,0x3d,0x22,0x8b,0x2d,0x57,0x80,0x52,0x89,0xa3,0x18,0x04,0x0b,0x43,0x66,0x85,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x08,0x06,0x04,0x18,0x00,0x5f,0x01,0x72,0x40,0xf7,0x77,0x5e,0x01,0x86,0x5d,0x01,0x75,0x5d,0x01,0x89,0x58,0x01,0x77,0x53,0x01,0x89,0x50,0x01, +0x78,0x50,0x01,0x99,0x4f,0x01,0x97,0x4b,0x01,0x86,0x4b,0x01,0x99,0x47,0x01,0x88,0x47,0x01,0x79,0x47,0x01,0x78,0x41,0x01,0x66,0x2d,0x01,0x5a,0x29,0x6a,0x29,0x02,0x66,0x1f,0x01,0x64,0x1e,0x01,0x56,0x1e,0x01,0x5a,0x1a,0x6a,0x1a,0x02,0x6a,0x19,0x01,0x97,0x11,0x01,0x56,0x0f,0x66,0x0f,0x02,0x69,0x0b,0x01,0x99,0x07,0x01,0x88, +0x07,0x01,0x69,0x07,0x01,0x44,0x59,0x01,0x45,0x53,0x01,0x45,0x50,0x01,0x45,0x4c,0x01,0x47,0x4b,0x01,0x46,0x10,0x01,0x47,0x0f,0x01,0x4e,0x23,0x84,0x24,0x56,0x15,0x94,0x05,0x01,0x85,0x05,0x01,0x76,0x05,0x01,0x05,0x06,0x06,0x08,0x14,0x84,0x15,0x7f,0x3f,0x8f,0x3f,0x9f,0x3f,0x03,0x5c,0x3f,0x01,0x4b,0x3f,0x01,0x3a,0x3f,0x01, +0x2d,0x3f,0x01,0x3f,0x44,0x9b,0x38,0x01,0x8a,0x38,0x01,0x7b,0x38,0x01,0x6c,0x38,0x01,0x5a,0x38,0x01,0x38,0x93,0x35,0x01,0x85,0x35,0x01,0x62,0x35,0x01,0x35,0x37,0x37,0x30,0x00,0x83,0x08,0x24,0x15,0x08,0x08,0x15,0x24,0x03,0x61,0x30,0x83,0x44,0x3d,0x3d,0x44,0x0d,0x95,0x5b,0x5b,0x51,0x2b,0x95,0x49,0x49,0x70,0x4e,0x01,0x44, +0x4e,0x01,0x70,0x56,0x01,0x44,0x56,0x01,0x4e,0x56,0x23,0x51,0x14,0x14,0x23,0x23,0x05,0x1c,0x95,0x51,0x10,0x35,0x38,0x3f,0x95,0x3a,0x3d,0x95,0x3c,0x3c,0x3a,0x37,0x38,0x1c,0x06,0x05,0x16,0x00,0x3f,0x33,0x3f,0x33,0xce,0x32,0x2f,0xed,0x10,0xed,0x11,0x39,0x3f,0xed,0x11,0x39,0x2f,0x33,0x2f,0x11,0x12,0x39,0x39,0x5d,0x5d,0x5d, +0x5d,0x33,0x2f,0xed,0x11,0x33,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x12,0x39,0x2f,0x39,0x5d,0x5d,0x5d,0x33,0x5d,0x5d,0x5d,0x5d,0x5d,0x12,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x10,0xed,0x11,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x11,0x39,0x10,0xed,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x07,0x27,0x36,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x2e,0x04,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15, +0x14,0x1e,0x02,0x17,0x04,0x17,0x07,0x24,0x21,0x22,0x07,0x35,0x36,0x33,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x08,0x06,0x1c,0x3a,0x59,0x3c,0x75,0xb8,0x1f,0x36,0x4a,0x2b,0x2b,0x42,0x30,0x20,0x14,0x08,0xa4,0x08,0x14,0x20,0x30,0x42,0x2b,0x29, +0x3f,0x2e,0x1e,0x13,0x08,0xa4,0x08,0x14,0x21,0x30,0x41,0x2b,0x2b,0x4a,0x36,0x1f,0x56,0x9f,0xde,0x89,0x01,0x91,0xb6,0x68,0xfe,0x6f,0xfd,0xf9,0xd7,0x94,0x9b,0xd4,0x54,0x7e,0x53,0x2a,0x29,0x59,0x8d,0x63,0x2f,0x5a,0x4f,0x3f,0x15,0x2a,0x99,0x5d,0x2e,0x59,0x4f,0x3f,0x15,0x15,0x3f,0x4f,0x5a,0x2f,0x55,0x89,0x60,0x34,0x02,0x26, +0x4e,0xa3,0x99,0x85,0x2f,0x73,0x8d,0x01,0x3e,0x5a,0x87,0x5a,0x2d,0x2b,0x46,0x59,0x5d,0x59,0x22,0x22,0x58,0x5d,0x5a,0x46,0x2b,0x2d,0x48,0x5b,0x5d,0x56,0x1f,0x1f,0x56,0x5d,0x5b,0x48,0x2d,0x2d,0x5a,0x87,0x5a,0x91,0xd1,0x98,0x6c,0x2b,0x80,0x7a,0x7d,0xfc,0x7e,0xa8,0x62,0x2d,0x8c,0xaa,0xbe,0x5f,0x5b,0xb2,0x8d,0x58,0x1b,0x33, +0x4a,0x2f,0x5f,0x68,0x1b,0x33,0x4a,0x2f,0x2f,0x4a,0x33,0x1b,0x3e,0x7d,0xbb,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x28,0x06,0x02,0x00,0x25,0x00,0x33,0x00,0x72,0x40,0x4a,0x59,0x31,0x01,0x56,0x2e,0x01,0x59,0x29,0x01,0x99,0x1e,0x01,0x99,0x1d,0x01,0x76,0x18,0x01,0x67,0x17,0x01,0x6a,0x14,0x7a,0x14,0x02,0x69,0x0d,0x01,0x69, +0x0c,0x01,0x26,0x25,0x83,0x30,0x11,0x40,0x11,0x02,0x11,0x11,0x0a,0x35,0x1a,0x84,0x1b,0x1b,0x2d,0x83,0x0f,0x0a,0x1f,0x0a,0x02,0x0a,0x2b,0x95,0x4f,0x1b,0x01,0x1b,0x11,0x0f,0x0f,0x2f,0x15,0x95,0x20,0x01,0x2f,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0xce,0x5d,0xed,0x01,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x11, +0x12,0x39,0x2f,0x5d,0xed,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x03,0x34,0x2e,0x02,0x23,0x20,0x11,0x10,0x21,0x32,0x3e,0x02,0x04,0x28, +0x3f,0x7a,0xb2,0x73,0x75,0xb7,0x7d,0x41,0x3b,0x75,0xae,0x74,0xc5,0x89,0x8d,0x87,0x31,0x56,0x41,0x25,0xa6,0x41,0x6f,0x91,0x50,0x66,0xa5,0x74,0x3f,0xa8,0x26,0x4e,0x7a,0x54,0xfe,0xca,0x01,0x36,0x52,0x79,0x50,0x27,0x01,0xe0,0x70,0xb9,0x85,0x4a,0x4c,0x8a,0xbf,0x73,0x71,0xb6,0x80,0x45,0x77,0xec,0x8a,0x9d,0x1e,0x3b,0x58,0x39, +0x55,0x89,0x61,0x35,0x3d,0x74,0xa6,0x69,0xfd,0xa4,0x50,0x86,0x60,0x36,0xfe,0x98,0xfe,0x88,0x3a,0x65,0x87,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x28,0x06,0x02,0x00,0x1f,0x00,0x2b,0x00,0x7f,0x40,0x2c,0x59,0x2b,0x01,0x56,0x29,0x01,0x47,0x29,0x01,0x56,0x28,0x01,0x55,0x24,0x01,0x5a,0x21,0x01,0x66,0x1e,0x76,0x1e,0x02,0x2b, +0x0a,0x3b,0x0a,0x4b,0x0a,0x03,0x0c,0x0a,0x1c,0x0a,0x02,0x69,0x05,0x01,0x10,0x11,0x11,0x00,0x83,0x20,0xb8,0xff,0xc0,0x40,0x24,0x0a,0x0d,0x48,0x20,0x20,0x2d,0x26,0x83,0x1a,0x84,0x0f,0x08,0x1f,0x08,0x02,0x08,0x22,0x95,0x1a,0x1c,0x1c,0x2a,0x11,0x13,0x95,0x10,0x0e,0x0e,0x16,0x95,0x0b,0x01,0x2a,0x95,0x04,0x16,0x00,0x3f,0xed, +0x3f,0xed,0x33,0x2f,0x33,0xed,0x32,0x11,0x39,0x2f,0x33,0xed,0x01,0x2f,0x5d,0xed,0xed,0x12,0x39,0x2f,0x2b,0xed,0x32,0x2f,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x10,0x21,0x32,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x23,0x22,0x06,0x15,0x11, +0x36,0x33,0x32,0x17,0x16,0x07,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x04,0x28,0x7b,0x84,0xeb,0xe5,0x80,0x79,0x01,0x5a,0x40,0xeb,0x35,0x52,0x72,0x4a,0x83,0x88,0x44,0xf5,0x2d,0x64,0x4b,0x88,0xc6,0xea,0x7a,0x6e,0xa8,0xfe,0xca,0xa8,0x53,0x47,0x4a,0x55,0xa3,0x01,0x36,0x01,0xf0,0xe6,0x8c,0x96,0x8f,0x88,0xe1, +0x02,0xd0,0x01,0x52,0x46,0x46,0x71,0x5f,0x46,0x55,0x64,0xfe,0xa6,0x77,0x8d,0x80,0xe5,0x01,0x68,0x6d,0x5e,0xa1,0x9e,0x63,0x73,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x05,0xae,0x04,0x18,0x00,0x3e,0x00,0xb8,0x40,0x11,0x86,0x3c,0x96,0x3c,0x02,0x77,0x38,0x01,0x66,0x38,0x01,0x47,0x38,0x57,0x38,0x02,0x32,0xb8,0xff,0xf8,0x40,0x65, +0x0d,0x10,0x48,0x96,0x2e,0x01,0x87,0x2e,0x01,0x99,0x27,0x01,0x75,0x24,0x01,0x66,0x24,0x01,0x85,0x23,0x01,0x69,0x20,0x79,0x20,0x02,0x6a,0x0b,0x7a,0x0b,0x02,0x84,0x08,0x01,0x66,0x07,0x76,0x07,0x02,0x99,0x04,0x01,0x88,0x04,0x01,0x26,0x25,0x25,0x16,0x2b,0x83,0x22,0x16,0x35,0x16,0x05,0x06,0x06,0x15,0x00,0x83,0x09,0x15,0x84, +0x16,0x0e,0x95,0x3a,0x3a,0x71,0x35,0x01,0x62,0x35,0x01,0x40,0x35,0x50,0x35,0x02,0x35,0x30,0x16,0x16,0x26,0x1d,0x95,0x30,0x10,0x94,0x06,0x01,0x06,0x05,0x05,0x94,0x25,0x01,0x25,0x26,0x16,0x00,0x3f,0x33,0x5d,0x33,0x2f,0x33,0x5d,0x3f,0xed,0x11,0x39,0x2f,0x12,0x39,0x5d,0x5d,0x5d,0x32,0x2f,0xed,0x01,0x2f,0xfd,0xde,0xed,0x12, +0x39,0x2f,0x33,0x11,0x39,0x10,0xde,0xed,0x12,0x39,0x2f,0x33,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x2b,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x07,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x07,0x2e,0x03, +0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x05,0xae,0x1f,0x3e,0x5c,0x3c,0x75,0x5d,0x65,0x22,0x3a,0x4d,0x2b,0x2d,0x43,0x30,0x20,0x12,0x07,0xa4,0x08,0x14,0x20,0x30,0x42,0x2b,0x2b,0x4d,0x3a,0x22,0x65,0x5d,0x75,0x3c,0x5c,0x3e,0x1f,0x37,0x64,0x8c,0x55,0x2f,0x5a,0x4f,0x3f,0x15,0x15,0x3f,0x4f, +0x59,0x2e,0x55,0x8c,0x64,0x37,0x02,0x26,0x4e,0xa3,0x99,0x85,0x2f,0x73,0x47,0xe4,0xa0,0x5a,0x87,0x5a,0x2d,0x2a,0x45,0x59,0x5d,0x59,0x24,0x26,0x5b,0x5d,0x57,0x44,0x29,0x2d,0x5a,0x87,0x5a,0xa0,0xe4,0x47,0x73,0x2f,0x85,0x99,0xa3,0x4e,0x7c,0xbb,0x7d,0x3e,0x1e,0x37,0x4d,0x2f,0x2f,0x4d,0x37,0x1e,0x3e,0x7d,0xbb,0x00,0x00,0x01, +0x00,0x60,0xff,0xe8,0x03,0xf1,0x06,0x02,0x00,0x3f,0x00,0x99,0x40,0x5b,0x86,0x38,0x01,0x96,0x31,0x01,0x79,0x28,0x01,0x6a,0x16,0x01,0x59,0x16,0x01,0x56,0x12,0x66,0x12,0x02,0x7a,0x08,0x8a,0x08,0x02,0x7a,0x07,0x8a,0x07,0x02,0x46,0x3e,0x01,0x47,0x33,0x01,0x3a,0x3b,0x1f,0x31,0x2d,0x35,0x84,0x29,0x2d,0x26,0x26,0x19,0x2e,0x2d, +0x2d,0x1f,0x1f,0x0f,0x00,0x83,0x19,0x19,0x41,0x0d,0x0f,0x84,0x0c,0x0a,0x3b,0x3a,0x1e,0x18,0x31,0x01,0x09,0x31,0x01,0x29,0x31,0x2e,0x20,0x95,0x0d,0x0c,0x1e,0x0c,0x1e,0x0c,0x2d,0x2e,0x01,0x14,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f,0x33,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x11,0x39,0x39,0x5d,0x5d,0x11,0x39,0x39,0x01,0x2f,0x33, +0xed,0x32,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x33,0x2f,0x33,0x11,0x33,0x2f,0x12,0x39,0xed,0x11,0x39,0x11,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23, +0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x27,0x37,0x1e,0x05,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x03,0xf1,0x4a,0x81,0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c,0x2e,0x4b,0x60,0x32,0x43,0x73,0x53,0x2f,0x38,0x68,0x94,0x5b,0x3b,0x35,0x59,0x79,0x49,0x20,0x38,0x59,0x70,0x70,0x65,0x21,0x5e,0x23,0x70,0x7f,0x81,0x68, +0x41,0x1e,0x3f,0x64,0x46,0x49,0x82,0x62,0x39,0x01,0xbc,0x75,0xb0,0x75,0x3a,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x26,0x4d,0x77,0x51,0x50,0x7c,0x54,0x2b,0x8b,0x1d,0x34,0x47,0x2a,0x37,0x46,0x31,0x24,0x2b,0x3b,0x2f,0x56,0x2c,0x3b,0x31,0x31,0x43,0x5f,0x47,0x2c,0x54,0x47,0x35,0x0c,0x04,0x0b,0x43, +0x66,0x85,0x00,0x01,0x00,0x3f,0xfe,0x1e,0x03,0xf1,0x04,0x00,0x00,0x2d,0x00,0x8e,0x40,0x52,0x65,0x13,0x01,0x56,0x13,0x01,0x76,0x0f,0x01,0x57,0x0f,0x67,0x0f,0x02,0x2c,0x2d,0x84,0x16,0x18,0x1a,0x28,0x25,0x27,0x27,0x20,0x1a,0x84,0x25,0x25,0x0d,0x16,0x16,0x08,0x2f,0x20,0x84,0x1f,0x1f,0x0b,0x0d,0x84,0x0a,0x08,0x28,0x95,0x18, +0x27,0x18,0x1f,0x20,0x0b,0x0a,0x0a,0x11,0x1d,0x95,0x22,0x89,0x16,0x99,0x16,0x02,0x16,0x2d,0x00,0x18,0x10,0x18,0x02,0x18,0x20,0x22,0x22,0x20,0x18,0x03,0x2d,0x0f,0x11,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x12,0x39,0x5d,0x10,0xed,0x11,0x39,0x2f,0x33,0x11,0x33,0x11,0x33,0x10,0xed,0x01,0x2f,0x33, +0xed,0x32,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x10,0xed,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x11,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x03,0x37,0x16, +0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x32,0x37,0x36,0x37,0x33,0x03,0xf1,0x8e,0x85,0xcf,0xaa,0x7d,0x88,0x29,0x99,0x1c,0x55,0x4e,0x68,0x88,0x57,0x5d,0x5f,0xab,0x3f,0x8e,0x9b,0xf9,0x21,0x89,0x17,0x7a,0x4c,0x40,0x6f,0x37,0xac,0x62,0x73,0x73,0x50,0x22,0xd2,0x7b,0x73,0x61,0x6a,0xa9,0x5c,0x53,0x37,0x33,0x49,0x68,0x42,0x3c,0x4c, +0x51,0x8a,0x03,0x3b,0x39,0x08,0x4a,0x65,0x75,0x93,0x01,0x1d,0x26,0xb9,0x47,0x47,0x6b,0x3c,0x82,0x1f,0x24,0x6a,0x00,0x01,0x00,0x60,0xff,0xe8,0x05,0xae,0x06,0x02,0x00,0x52,0x00,0xfc,0x40,0xa7,0x96,0x4c,0x01,0x94,0x47,0x01,0x99,0x2f,0x01,0x66,0x4c,0x76,0x4c,0x02,0x84,0x4b,0x01,0x8c,0x48,0x01,0x8a,0x47,0x01,0x69,0x47,0x79, +0x47,0x02,0x4a,0x42,0x5a,0x42,0x6a,0x42,0x03,0x4a,0x39,0x5a,0x39,0x6a,0x39,0x03,0x7b,0x33,0x01,0x6a,0x33,0x01,0x85,0x2f,0x01,0x66,0x2f,0x76,0x2f,0x02,0x89,0x2c,0x01,0x86,0x25,0x96,0x25,0x02,0x77,0x21,0x01,0x25,0x04,0x01,0x55,0x03,0x01,0x46,0x03,0x01,0x34,0x03,0x01,0x26,0x03,0x01,0x9b,0x4e,0x01,0x4e,0x4d,0x4d,0x3e,0x94, +0x17,0x01,0x17,0x11,0x4a,0x07,0x0d,0x00,0x83,0x4a,0x3e,0x94,0x2d,0x01,0x2d,0x2e,0x2e,0x3d,0x31,0x0c,0x0d,0x0d,0x28,0x83,0x31,0x1e,0x3d,0x84,0x3e,0x70,0x1e,0x01,0x1e,0x23,0x3e,0x3e,0x4e,0x2e,0x2d,0x2d,0x4d,0x4e,0x16,0x36,0x95,0x23,0x45,0x95,0x17,0x19,0x19,0x9d,0x11,0x01,0x7a,0x11,0x8a,0x11,0x02,0x96,0x07,0x01,0x09,0x07, +0x19,0x07,0x29,0x07,0x03,0x11,0x07,0x0c,0x23,0x10,0x0d,0x0c,0x01,0x00,0x3f,0x33,0x3f,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x33,0x2f,0x33,0xed,0x10,0xed,0x3f,0x33,0x33,0x2f,0x33,0x11,0x39,0x2f,0x12,0x39,0x5d,0x01,0x2f,0xfd,0x39,0xde,0xed,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x5d,0x10,0xde,0xed,0x11,0x39,0x12,0x39,0x39, +0x5d,0x11,0x39,0x2f,0x33,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x13,0x34,0x3e,0x02,0x37,0x3e,0x05,0x37,0x17,0x0e,0x05,0x07,0x06,0x06,0x07,0x36,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07, +0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x07,0x2e,0x03,0x60,0x30,0x64,0x99,0x69,0x3f,0x85,0x81,0x7a,0x67,0x50,0x18,0x76,0x17,0x5d,0x7a,0x8b,0x8b,0x80,0x31,0x3c,0x4a,0x13,0x18,0x18,0x2f,0x5a,0x4f,0x3f,0x15,0x15,0x3f,0x4f,0x59,0x2e,0x55,0x8c, +0x64,0x37,0x1f,0x3e,0x5c,0x3c,0x75,0x5d,0x65,0x22,0x3a,0x4d,0x2b,0x2d,0x43,0x30,0x20,0x12,0x07,0xa4,0x08,0x14,0x20,0x30,0x42,0x2b,0x2b,0x4d,0x3a,0x22,0x65,0x5d,0x75,0x3c,0x5c,0x3e,0x1f,0x02,0x26,0x84,0xe2,0xb8,0x8c,0x2d,0x1b,0x2a,0x24,0x23,0x28,0x30,0x21,0x53,0x25,0x3c,0x33,0x2c,0x29,0x28,0x16,0x1b,0x3f,0x19,0x03,0x1e, +0x37,0x4d,0x2f,0x2f,0x4d,0x37,0x1e,0x3e,0x7d,0xbb,0x7c,0x4e,0xa3,0x99,0x85,0x2f,0x73,0x47,0xe4,0xa0,0x5a,0x87,0x5a,0x2d,0x2a,0x45,0x59,0x5d,0x59,0x24,0x26,0x5b,0x5d,0x57,0x44,0x29,0x2d,0x5a,0x87,0x5a,0xa0,0xe4,0x47,0x73,0x2f,0x85,0x99,0xa3,0x00,0x01,0x00,0x9a,0xff,0xe6,0x04,0x1d,0x05,0xec,0x00,0x19,0x00,0x6b,0x40,0x26, +0x99,0x13,0x01,0x68,0x13,0x78,0x13,0x02,0x69,0x0e,0x01,0x65,0x0c,0x01,0x56,0x0c,0x01,0x79,0x06,0x01,0x89,0x05,0x01,0x96,0x03,0x01,0x76,0x02,0x01,0x14,0x15,0x17,0x84,0x12,0x00,0x84,0x0f,0x12,0xb8,0xff,0xc0,0x40,0x1c,0x0a,0x0d,0x48,0x10,0x0f,0x20,0x0f,0x02,0x12,0x0f,0x12,0x0f,0x1b,0x0b,0x84,0x90,0x08,0x01,0x08,0x15,0x14, +0x10,0x0a,0x00,0x0d,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x01,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x10,0xed,0x10,0xfd,0xce,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x33,0x11,0x10,0x21,0x20,0x11,0x34,0x26,0x35,0x34,0x37,0x17,0x06, +0x15,0x14,0x16,0x04,0x1d,0x6a,0x76,0xe0,0xe5,0x74,0x6a,0xa2,0x01,0x21,0x01,0x1b,0x78,0xbf,0x4d,0x5e,0x6f,0x01,0xb3,0xd5,0x78,0x80,0x7b,0x77,0xd8,0x04,0x3c,0xfb,0xe1,0xfe,0xab,0x01,0x34,0x71,0xfb,0x3c,0x87,0x3d,0x87,0x23,0x34,0x1a,0xf7,0x00,0x00,0x02,0x00,0x5e,0xfe,0x1e,0x05,0xaa,0x05,0x31,0x00,0x36,0x00,0x42,0x01,0x23, +0x40,0xc8,0x09,0x13,0x01,0x06,0x10,0x01,0x57,0x35,0x01,0x77,0x2f,0x87,0x2f,0x02,0x77,0x2b,0x87,0x2b,0x02,0x88,0x27,0x01,0x7c,0x15,0x8c,0x15,0x02,0x6a,0x15,0x01,0x66,0x13,0x01,0x65,0x10,0x01,0x56,0x10,0x01,0x47,0x10,0x01,0x65,0x0f,0x85,0x0f,0x95,0x0f,0x03,0x69,0x0d,0x01,0x57,0x0a,0x01,0x79,0x06,0x01,0x79,0x02,0x01,0x1e, +0xa1,0x1f,0xb1,0x1f,0xc1,0x1f,0x03,0x50,0x1f,0x01,0x1f,0x1f,0x18,0x00,0x83,0x14,0x14,0x29,0x44,0x56,0x33,0x01,0x16,0x33,0x18,0x31,0x84,0x5a,0x27,0x01,0x27,0x41,0x25,0x37,0x3f,0x84,0x29,0x18,0x84,0x25,0x25,0x29,0x08,0x83,0x0f,0x0e,0x01,0x0e,0x0b,0x0c,0x29,0x7b,0x0c,0x8b,0x0c,0x9b,0x0c,0x03,0x49,0x0c,0x01,0x0c,0x85,0x41, +0x01,0x74,0x41,0x01,0x48,0x33,0x68,0x33,0x02,0x39,0x33,0x01,0x78,0x27,0x01,0x6a,0x27,0x01,0x58,0x27,0x01,0x3a,0x27,0x4a,0x27,0x02,0x06,0x27,0x16,0x27,0x26,0x27,0x03,0x27,0x33,0x41,0x03,0x3b,0x9c,0x16,0x01,0x8b,0x16,0x01,0x7c,0x16,0x01,0x6a,0x16,0x01,0x38,0x16,0x48,0x16,0x58,0x16,0x03,0x16,0x0b,0x0b,0x1c,0x2d,0x95,0x3b, +0x3b,0x1f,0x21,0x95,0x1e,0x1c,0x12,0x95,0x04,0x1c,0x00,0x3f,0xed,0x2f,0x33,0xed,0x32,0x33,0x2f,0xed,0x12,0x39,0x2f,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x12,0x17,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x33,0x5d,0x5d,0x01,0x2f,0xce,0x32,0xdc,0x5d,0xed,0x11,0x33,0x2f,0xed,0x10,0xfd,0xde,0x11,0x39,0x39,0x5d,0xed,0x11, +0x39,0x39,0x5d,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x5d,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x25,0x10,0x07,0x06,0x21,0x20,0x27,0x26,0x11,0x34,0x12,0x37,0x17,0x06,0x11,0x14,0x17,0x16,0x33,0x20,0x11,0x10,0x25,0x06,0x15,0x14,0x17,0x16,0x33, +0x32,0x37,0x17,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x36,0x05,0xaa,0xae,0xb5,0xfe,0xb2,0xfe,0xc5,0xb3,0xad,0xbb,0xb1,0x3b,0xf7,0x78,0x83,0xf0,0x02,0x01,0xfe,0x72,0x60,0x20,0x1d,0x25,0x39, +0x22,0x7a,0x52,0x83,0x62,0x4a,0x52,0x82,0x82,0x53,0x49,0x63,0x5e,0x4a,0x4f,0x87,0xd3,0x78,0x80,0xfe,0x22,0x1f,0x1b,0x23,0x25,0x1d,0x20,0x60,0x5f,0xd9,0xfe,0xb9,0xb7,0xbd,0xc1,0xbb,0x01,0x3a,0xeb,0x01,0x56,0x53,0x96,0x90,0xfe,0xa1,0xf3,0x96,0xa5,0x02,0x0d,0x01,0x67,0xf7,0x5b,0x45,0x28,0x19,0x17,0x2c,0x50,0x6d,0x39,0x40, +0x66,0x79,0x79,0x6e,0x72,0x6d,0x42,0x3a,0x3c,0x40,0x5b,0x62,0x7c,0x7b,0xaa,0xb5,0x02,0xb8,0x21,0x14,0x11,0x14,0x17,0x23,0x46,0x42,0x59,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x06,0x22,0x04,0x18,0x00,0x5a,0x00,0xe8,0x40,0x99,0x17,0x57,0x01,0x7a,0x53,0x01,0x69,0x53,0x01,0x7b,0x52,0x01,0x6a,0x52,0x01,0x48,0x50,0x58,0x50,0x02, +0x96,0x4e,0x01,0x65,0x4e,0x75,0x4e,0x02,0x97,0x4d,0x01,0x86,0x4d,0x01,0x65,0x4d,0x75,0x4d,0x02,0x69,0x49,0x01,0x98,0x3c,0x01,0x89,0x3c,0x01,0x57,0x35,0x01,0x46,0x35,0x01,0x37,0x35,0x01,0x48,0x2c,0x58,0x2c,0x02,0x49,0x2b,0x01,0x8a,0x1d,0x9a,0x1d,0x02,0x48,0x17,0x01,0x5a,0x16,0x01,0x49,0x16,0x01,0x65,0x12,0x75,0x12,0x02, +0x47,0x12,0x57,0x12,0x02,0x5a,0x84,0x19,0x19,0x27,0x5c,0x3d,0x20,0x3e,0x40,0x3e,0x50,0x3e,0x03,0x3e,0x3e,0x48,0x33,0x27,0x43,0x84,0x3b,0x50,0x26,0x84,0x27,0x0d,0x0f,0x84,0x0c,0x0a,0x0a,0x27,0x1f,0x95,0x55,0x55,0x4b,0x3e,0x3d,0x3d,0x4b,0x36,0x95,0x45,0x2e,0x0d,0x0c,0x50,0x26,0x4b,0x0c,0x26,0x0c,0x26,0x14,0x2e,0x95,0x4b, +0x10,0x14,0x95,0x05,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x10,0xdc,0xed,0x11,0x33,0x2f,0x33,0x11,0x33,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x33,0xed,0x32,0x10,0xed,0x39,0xdc,0xed,0x11,0x39,0x39,0x32,0x2f,0x5d,0x33,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x07,0x06,0x06,0x23,0x22,0x2e,0x02, +0x35,0x34,0x37,0x17,0x0e,0x03,0x15,0x14,0x33,0x36,0x36,0x37,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x06,0x22,0x4d,0x85,0xb4,0x66,0x59,0xa0,0x79,0x47,0x29,0x99,0x1c,0x2c,0x4c,0x64,0x39,0x43,0x77,0x59,0x33,0x17,0x2c,0x3d,0x27,0x24,0x38,0x2b,0x1e,0x12,0x09,0xa4,0x0a,0x13,0x1d,0x26,0x30,0x1c, +0x1d,0x2b,0x22,0x1e,0x11,0x21,0x73,0x63,0x32,0x50,0x38,0x1d,0x7f,0x69,0x12,0x20,0x1a,0x0f,0x4d,0x2e,0x45,0x1f,0x1f,0x84,0x58,0x2e,0x4c,0x3e,0x32,0x13,0x15,0x36,0x43,0x52,0x30,0x55,0x7e,0x52,0x29,0x0e,0x73,0xaf,0x76,0x3c,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x28,0x4f,0x76,0x4e,0x02,0x40,0x5f, +0x89,0x59,0x2a,0x2d,0x48,0x5b,0x5d,0x56,0x1f,0x1f,0x56,0x5d,0x5b,0x48,0x2d,0x1a,0x35,0x4e,0x34,0x68,0x69,0x22,0x3c,0x54,0x32,0x88,0x6c,0x59,0x0b,0x20,0x28,0x30,0x1a,0x54,0x01,0x56,0x67,0x68,0x78,0x1f,0x39,0x4f,0x2f,0x2f,0x4f,0x39,0x1f,0x38,0x77,0xbb,0x84,0x00,0x00,0x02,0x00,0x40,0xfe,0x1e,0x06,0x9c,0x04,0x18,0x00,0x55, +0x00,0x69,0x00,0xd9,0x40,0x52,0x5a,0x67,0x01,0x39,0x67,0x49,0x67,0x02,0x36,0x63,0x46,0x63,0x56,0x63,0x03,0x56,0x5d,0x01,0x35,0x5d,0x45,0x5d,0x02,0x39,0x59,0x49,0x59,0x59,0x59,0x03,0x56,0x54,0x01,0x86,0x4f,0x96,0x4f,0x02,0x75,0x4f,0x01,0x95,0x4b,0x01,0x96,0x4a,0x01,0x7b,0x29,0x8b,0x29,0x02,0x69,0x28,0x01,0x58,0x28,0x01, +0x5a,0x16,0x01,0x86,0x11,0x01,0x9a,0x08,0x01,0x0d,0x0f,0x84,0x0a,0x0c,0x0a,0x50,0x51,0x4d,0x1f,0x5a,0x43,0x01,0x43,0x30,0xb8,0xff,0xf0,0x40,0x38,0x0f,0x12,0x48,0x30,0x32,0x83,0x56,0x4d,0x83,0x26,0x00,0x83,0x19,0x0a,0x56,0x26,0x19,0x19,0x26,0x56,0x0a,0x04,0x6b,0x60,0x83,0x3c,0x5b,0x95,0x41,0x41,0x48,0x0d,0x0c,0x65,0x95, +0x37,0x51,0x50,0x20,0x95,0x1e,0x37,0x1e,0x37,0x1e,0x14,0x30,0x2b,0x95,0x43,0x48,0x10,0x14,0x95,0x05,0x1c,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x11,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x39,0x10,0xed,0xce,0x32,0x11,0x33,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xfd,0x32,0x2b,0x32, +0x5d,0xce,0x11,0x39,0x39,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e, +0x02,0x23,0x22,0x0e,0x02,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x06,0x9c,0x4a,0x81,0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c, +0x2e,0x4b,0x60,0x32,0x43,0x73,0x53,0x2f,0x38,0x68,0x94,0x5b,0x3b,0x35,0x59,0x80,0x53,0x28,0x2b,0x4a,0x63,0x38,0x2b,0x47,0x3c,0x35,0x1a,0x46,0x43,0x7b,0xad,0x6b,0x6b,0xad,0x7b,0x43,0x43,0x7b,0xad,0x6b,0xb4,0x7a,0x20,0x53,0x5e,0x64,0x30,0x58,0x9d,0x77,0x46,0x98,0x8d,0x49,0x82,0x62,0x39,0xfc,0xa8,0x27,0x4c,0x71,0x4a,0x4a, +0x71,0x4c,0x27,0x27,0x4c,0x71,0x4a,0x4a,0x71,0x4c,0x27,0x0e,0x75,0xb0,0x75,0x3a,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x26,0x4d,0x77,0x51,0x50,0x7c,0x54,0x2b,0x8b,0x1a,0x39,0x59,0x3e,0x36,0x57,0x3c,0x21,0x0a,0x13,0x1c,0x12,0x74,0x9e,0x6a,0xb3,0x83,0x4a,0x49,0x82,0xb3,0x6a,0x69,0xb4,0x83,0x4a, +0x64,0x17,0x25,0x1a,0x0e,0x2d,0x57,0x80,0x52,0x89,0xa3,0x18,0x04,0x0b,0x43,0x66,0x85,0x01,0xef,0x46,0x7f,0x60,0x39,0x39,0x61,0x80,0x46,0x47,0x7f,0x60,0x38,0x39,0x61,0x7f,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x05,0xec,0x00,0x29,0x00,0xad,0x40,0x70,0x76,0x1b,0x01,0x79,0x18,0x01,0x59,0x13,0x69,0x13,0x02,0x75,0x0f,0x01, +0x57,0x0f,0x67,0x0f,0x02,0x09,0x25,0x01,0x95,0x1f,0x01,0x88,0x1b,0x01,0x28,0x29,0x84,0x74,0x26,0x01,0x26,0x00,0x27,0x70,0x27,0x02,0x27,0x24,0x20,0x16,0x01,0x16,0x16,0x08,0x2b,0x1d,0x84,0x1e,0x1e,0x0b,0x0d,0x84,0x0a,0x30,0x08,0x01,0x0f,0x08,0x1f,0x08,0x02,0x08,0x8b,0x25,0x9b,0x25,0x02,0x7f,0x25,0x01,0x49,0x25,0x59,0x25, +0x02,0x27,0x25,0x28,0x8f,0x26,0x9f,0x26,0x02,0x26,0x22,0x0b,0x0a,0x1d,0x0a,0x1d,0x11,0x19,0x95,0x95,0x24,0x01,0x83,0x24,0x01,0x24,0x22,0x22,0x28,0x00,0x11,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0x39,0x2f,0x33,0x5d,0x5d,0xed,0x11,0x39,0x39,0x2f,0x2f,0x33,0x10,0xce,0x5d,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x01,0x2f,0x5d,0x5d,0x33, +0xed,0x32,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0xc4,0xcc,0x5d,0x32,0x5d,0xed,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x07,0x06,0x15,0x23,0x34,0x37,0x36,0x33, +0x32,0x17,0x11,0x07,0x27,0x01,0x33,0x03,0xf1,0x8e,0x85,0xcf,0xaa,0x7d,0x88,0x29,0x99,0x1c,0x55,0x4e,0x68,0x88,0x57,0x5d,0x88,0x77,0x66,0x43,0x49,0xa6,0x7d,0x73,0xa8,0x97,0x68,0x81,0x6f,0x01,0x10,0x84,0x22,0xd2,0x7b,0x73,0x61,0x6a,0xa9,0x5c,0x53,0x37,0x33,0x49,0x68,0x42,0x3c,0x4c,0x51,0x8a,0x01,0xfa,0x79,0x83,0x34,0x39, +0x68,0xa8,0x61,0x57,0x3e,0x01,0xd8,0x82,0x70,0x01,0x14,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x05,0xce,0x04,0x18,0x00,0x49,0x00,0xdb,0x40,0x91,0x67,0x3f,0x77,0x3f,0x02,0x49,0x3b,0x59,0x3b,0x02,0x3a,0x3b,0x01,0x6a,0x3a,0x01,0x66,0x31,0x01,0x46,0x30,0x56,0x30,0x66,0x30,0x03,0x35,0x30,0x01,0x69,0x2c,0x79,0x2c,0x02,0x86,0x1e, +0x96,0x1e,0x02,0x79,0x1a,0x01,0x99,0x19,0x01,0x7a,0x19,0x8a,0x19,0x02,0x76,0x15,0x86,0x15,0x96,0x15,0x03,0x75,0x14,0x01,0x89,0x10,0x99,0x10,0x02,0x47,0x42,0x8e,0x08,0x9e,0x08,0x02,0x7b,0x08,0x01,0x59,0x08,0x01,0x3a,0x08,0x4a,0x08,0x02,0x08,0x00,0x06,0x06,0x0d,0x83,0x42,0x36,0x26,0x27,0x27,0x21,0x83,0x29,0x8d,0x01,0x9d, +0x01,0x02,0x01,0x00,0x00,0x29,0x17,0x35,0x84,0x36,0x17,0x35,0x12,0x27,0x26,0x35,0x26,0x35,0x26,0x08,0x3d,0x95,0x12,0x2e,0x95,0x1c,0x1c,0x12,0x10,0x27,0x47,0x01,0x47,0x01,0x08,0x95,0x03,0x06,0xf4,0x05,0x05,0x03,0x00,0x01,0x1c,0x00,0x3f,0x33,0xce,0x32,0x2f,0xed,0x10,0xed,0x11,0x39,0x5d,0x3f,0x33,0x2f,0xed,0x10,0xed,0x11, +0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x12,0x39,0x01,0x2f,0xfd,0x39,0xce,0x32,0x2f,0x33,0x5d,0x10,0xed,0x33,0x2f,0x39,0x10,0xde,0xed,0x32,0x2f,0x11,0x39,0x5d,0x5d,0x5d,0x5d,0x12,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x07,0x24,0x21,0x22,0x07,0x35,0x36,0x33,0x2e,0x03, +0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x27,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x2e,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x16,0x04,0x05,0x42,0x68,0xfe,0x9c,0xfe,0x55,0xd7,0x94,0x9b,0xd4,0x54,0x7e,0x53,0x2a,0x37,0x64,0x8c,0x55, +0x2f,0x5a,0x4f,0x3f,0x15,0x15,0x3f,0x4f,0x59,0x2e,0x55,0x8c,0x64,0x37,0x08,0x0f,0x16,0x0e,0x98,0x2b,0x22,0x3a,0x4d,0x2b,0x2c,0x41,0x30,0x20,0x13,0x09,0xa4,0x01,0x08,0x13,0x20,0x30,0x42,0x2b,0x2b,0x4d,0x3a,0x22,0x48,0x88,0xc7,0x7f,0xab,0x01,0x00,0xfe,0x9b,0x7d,0xfc,0x7e,0xa8,0x62,0x2d,0x8c,0xaa,0xbe,0x5f,0x7c,0xbb,0x7d, +0x3e,0x1e,0x37,0x4d,0x2f,0x2f,0x4d,0x37,0x1e,0x3e,0x7d,0xbb,0x7c,0x28,0x59,0x57,0x4e,0x1e,0x37,0x80,0x8d,0x5a,0x87,0x5a,0x2d,0x33,0x52,0x69,0x6c,0x67,0x27,0x27,0x67,0x6c,0x69,0x52,0x33,0x2d,0x5a,0x88,0x5a,0x89,0xcc,0x9a,0x72,0x2f,0x3f,0x7c,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x04,0x18,0x00,0x3b,0x00,0xcb,0x40,0x77, +0x66,0x32,0x01,0x86,0x31,0x01,0x74,0x31,0x01,0x65,0x31,0x01,0x56,0x31,0x01,0x9a,0x22,0x01,0x98,0x21,0x01,0x55,0x17,0x65,0x17,0x02,0x47,0x16,0x01,0x67,0x11,0x01,0x56,0x11,0x01,0x7a,0x08,0x01,0x79,0x07,0x01,0x3b,0x84,0x1a,0x39,0x39,0x0a,0x3d,0x5c,0x2a,0x6c,0x2a,0x7c,0x2a,0x03,0x3b,0x2a,0x4b,0x2a,0x02,0x2d,0x2a,0x01,0x2a, +0x2f,0x84,0x7c,0x29,0x01,0x6b,0x29,0x01,0x5c,0x29,0x01,0x3d,0x29,0x4d,0x29,0x02,0x2e,0x29,0x01,0x29,0x60,0x24,0x01,0x24,0x24,0x0d,0x0f,0x84,0x0c,0x0a,0x2a,0x29,0x29,0x3a,0x34,0x95,0x6a,0x1a,0x01,0x59,0x1a,0x01,0x3a,0x1a,0x4a,0x1a,0x02,0x2b,0x1a,0x01,0x1a,0x1f,0x0d,0x0c,0x1f,0xb8,0xff,0xc0,0x40,0x0d,0x0b,0x10,0x48,0x1f, +0x0c,0x1f,0x0c,0x3a,0x0f,0x14,0x95,0x05,0x1c,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x2b,0x11,0x33,0x11,0x33,0x5d,0x5d,0x5d,0x5d,0xed,0x11,0x33,0x2f,0x33,0x01,0x2f,0x33,0xed,0x32,0x33,0x2f,0x5d,0x33,0x5d,0x5d,0x5d,0x5d,0x5d,0xed,0x32,0x5d,0x5d,0x5d,0x11,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x36,0x37,0x17,0x06,0x07,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x03,0xf1,0x4a,0x81, +0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c,0x2e,0x4b,0x60,0x32,0x43,0x74,0x55,0x30,0x17,0x3f,0x4b,0x53,0x2a,0x57,0x91,0x68,0x39,0x0f,0x0a,0x0b,0x0f,0x99,0x0b,0x08,0x08,0x0b,0x28,0x42,0x56,0x2f,0x3e,0x65,0x48,0x27,0xa4,0x22,0x69,0xa6,0x74,0x3d,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x28,0x4d, +0x6d,0x45,0x02,0x41,0x1a,0x2f,0x24,0x15,0x36,0x67,0x96,0x5f,0x33,0x59,0x22,0x28,0x22,0x37,0x1a,0x1e,0x1a,0x43,0x26,0x46,0x66,0x42,0x20,0x3b,0x63,0x80,0x45,0x85,0x00,0x02,0x00,0x32,0xff,0xe8,0x04,0xdb,0x06,0x02,0x00,0x2b,0x00,0x37,0x00,0x9d,0x40,0x65,0x48,0x36,0x58,0x36,0x02,0x39,0x36,0x01,0x37,0x33,0x47,0x33,0x57,0x33, +0x03,0x38,0x2e,0x48,0x2e,0x58,0x2e,0x03,0x88,0x10,0x01,0x69,0x0a,0x01,0x66,0x03,0x01,0x86,0x28,0x96,0x28,0x02,0x86,0x26,0x96,0x26,0x02,0x99,0x10,0x01,0x08,0x83,0x32,0x32,0x16,0x20,0x22,0x84,0x1f,0x1f,0x1d,0x01,0x1d,0x16,0x27,0x16,0x15,0x2c,0x83,0x2b,0x84,0x10,0x0e,0x01,0x0e,0x15,0x84,0x16,0x1a,0x95,0x25,0x25,0x83,0x27, +0x93,0x27,0x02,0x27,0x29,0x1f,0x20,0x20,0x16,0x30,0x95,0x0e,0x0c,0x0c,0x34,0x11,0x95,0x29,0x01,0x34,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0xce,0x32,0x2f,0x33,0x11,0x39,0x5d,0x33,0x2f,0xed,0x01,0x2f,0xfd,0xdc,0x5d,0xfd,0xed,0x11,0x12,0x39,0x10,0xde,0x5d,0x32,0xed,0x32,0x11,0x33,0x2f,0xed,0x31, +0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x35,0x10,0x23,0x22,0x07,0x06,0x15,0x23,0x34,0x27,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x33,0x20,0x11,0x03,0x34,0x27,0x26,0x23,0x20,0x11, +0x10,0x21,0x32,0x37,0x36,0x04,0xdb,0x79,0x80,0xe5,0xeb,0x84,0x7b,0x6e,0x7a,0xea,0xc6,0x88,0xac,0x67,0x30,0x24,0xa4,0x24,0x30,0x67,0x47,0x4c,0x1e,0xa6,0x20,0xad,0x8e,0xb9,0x53,0x53,0xbb,0x01,0x54,0xa8,0x47,0x53,0xa8,0xfe,0xca,0x01,0x36,0xa3,0x55,0x4a,0x01,0xe0,0xe1,0x88,0x8f,0x96,0x8c,0xe6,0xdf,0x80,0x8d,0x77,0xce,0x01, +0x45,0x64,0x49,0x69,0x69,0x49,0x64,0x65,0x51,0x3a,0x53,0x1d,0x52,0x4e,0x95,0xb5,0xbd,0xbd,0xfe,0x22,0xfd,0xc2,0xa1,0x5e,0x6d,0xfe,0x98,0xfe,0x88,0x73,0x63,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x03,0xf8,0x06,0x02,0x00,0x23,0x00,0x2c,0x00,0x72,0x40,0x44,0x85,0x21,0xa5,0x21,0x02,0x87,0x17,0x01,0x88,0x06,0x98,0x06,0x02,0x7b, +0x08,0x01,0x80,0x04,0x90,0x04,0x02,0x76,0x04,0x01,0x04,0x00,0x05,0x05,0x1e,0x00,0x83,0x07,0x07,0x10,0x2e,0x19,0x84,0x24,0x2b,0x0e,0x1e,0x84,0x10,0x2b,0x95,0x1d,0x1d,0x37,0x1e,0x01,0x26,0x1e,0x01,0x1e,0x0a,0x95,0x20,0x20,0x0f,0x26,0x95,0x15,0x01,0x05,0x04,0x04,0x0f,0x15,0x00,0x3f,0x33,0x2f,0x33,0x3f,0xed,0x11,0x39,0x2f, +0xed,0x33,0x5d,0x5d,0x33,0x2f,0xed,0x01,0x2f,0xfd,0xc4,0xc4,0xdc,0xed,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x07,0x27,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x15,0x11,0x23,0x11,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07,0x06,0x07, +0x15,0x36,0x33,0x32,0x17,0x16,0x01,0x34,0x23,0x22,0x07,0x06,0x15,0x15,0x36,0x03,0xf8,0x3d,0x3e,0x6b,0x75,0xb7,0x7a,0x74,0x81,0x51,0x4a,0xa4,0x37,0x48,0xb5,0x6b,0x41,0x46,0x7b,0x64,0xa3,0x72,0xe2,0x9c,0x61,0x5d,0xfe,0x32,0x50,0x43,0x28,0x25,0xe0,0x01,0xe3,0x8e,0x89,0x8c,0x58,0x73,0x9f,0xe1,0x88,0x9f,0x70,0x66,0x88,0xfe, +0x5c,0x04,0x83,0xb0,0x59,0x76,0x34,0x38,0x66,0x96,0x69,0x55,0x2b,0xd3,0xae,0x7a,0x77,0x02,0x91,0x4b,0x33,0x2f,0x45,0x8d,0x3c,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x04,0x8b,0x04,0x18,0x00,0x2d,0x00,0xcc,0x40,0x89,0x87,0x2d,0x01,0x65,0x2d,0x01,0x76,0x2c,0x01,0x86,0x29,0x96,0x29,0x02,0x64,0x29,0x74,0x29,0x02,0x46,0x26,0x96, +0x26,0x02,0x96,0x24,0x01,0x9a,0x20,0x01,0x8d,0x1f,0x01,0x39,0x1f,0x01,0x5d,0x17,0x01,0x48,0x16,0x01,0x69,0x13,0x01,0x48,0x13,0x01,0x84,0x10,0x01,0x75,0x0f,0x01,0x07,0x0f,0x17,0x0f,0x67,0x0f,0x03,0x9a,0x06,0x01,0x29,0x06,0x01,0x54,0x02,0x01,0x9a,0x0a,0x01,0x8b,0x0a,0x01,0x7e,0x0a,0x01,0x0a,0x08,0x0b,0x21,0x94,0x22,0x01, +0x22,0x21,0x2a,0x2b,0x19,0x28,0x83,0x1d,0x00,0x83,0x15,0x2f,0x21,0x3f,0x21,0x02,0x21,0x19,0x1d,0x15,0x15,0x1d,0x19,0x21,0x04,0x2f,0x0d,0x83,0x0f,0x08,0x1f,0x08,0x02,0x08,0x2b,0x2a,0x18,0x95,0x1a,0x1a,0x22,0x0b,0x0a,0x0a,0x21,0x22,0x10,0x11,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0x33,0x33,0x2f,0x33,0x11,0x39,0x2f,0xed,0x39, +0x39,0x01,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x11,0x33,0x5d,0x10,0xce,0x11,0x39,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x20,0x27,0x26,0x11,0x10,0x13,0x17, +0x02,0x11,0x10,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x20,0x35,0x34,0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x17,0x16,0x15,0x14,0x05,0x15,0x16,0x16,0x04,0x8b,0x8e,0x85,0xcf,0xfe,0xdf,0x9b,0x8d,0xb0,0x88,0x8a,0x74,0x6d,0xb1,0x89,0x5a,0x60,0xcb,0xb0,0x1d,0x17,0x01,0x4f,0xa2,0x8b,0x4c,0x77,0x3d,0x79, +0x65,0x45,0x4a,0xfe,0xef,0x92,0xb1,0x22,0xd2,0x7b,0x73,0xcc,0xba,0x01,0x35,0x01,0xa5,0x01,0x9a,0x3a,0xfe,0x88,0xfe,0x71,0xfe,0xf4,0x96,0x8d,0x4c,0x51,0x8a,0x8b,0x98,0x8b,0xd9,0x8b,0x2c,0x26,0x85,0x60,0x6d,0x22,0x1c,0x4e,0x52,0x65,0xf3,0x36,0x04,0x0e,0xba,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x28,0x06,0x02,0x00,0x16, +0x00,0x22,0x00,0x68,0x40,0x26,0x59,0x21,0x01,0x56,0x1e,0x01,0x55,0x1c,0x01,0x59,0x19,0x01,0x78,0x0b,0x01,0x69,0x0b,0x01,0x66,0x03,0x01,0x94,0x12,0x01,0x76,0x12,0x86,0x12,0x02,0x12,0x00,0x11,0x0e,0x17,0x83,0x00,0x84,0x0e,0xb8,0xff,0xc0,0x40,0x1a,0x0a,0x0d,0x48,0x0e,0x0e,0x24,0x1d,0x83,0x0f,0x08,0x1f,0x08,0x02,0x08,0x11, +0x12,0x01,0x1b,0x95,0x0e,0x0c,0x0f,0x1f,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x33,0xed,0x3f,0x33,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x2b,0xfd,0xed,0x10,0xce,0x11,0x39,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x35,0x10,0x27,0x37,0x16, +0x17,0x16,0x15,0x03,0x34,0x27,0x26,0x23,0x20,0x11,0x10,0x21,0x32,0x37,0x36,0x04,0x28,0x79,0x80,0xe5,0xeb,0x84,0x7b,0x6e,0x7a,0xea,0xc6,0x88,0xb8,0x75,0x71,0x3f,0x3b,0xa8,0x47,0x53,0xa8,0xfe,0xca,0x01,0x36,0xa3,0x55,0x4a,0x01,0xf4,0xf5,0x88,0x8f,0x96,0x8c,0xfa,0xf3,0x80,0x8d,0x77,0x4c,0x01,0x29,0x8d,0x73,0x58,0xa3,0x97, +0x98,0xfe,0x22,0xb5,0x5e,0x6d,0xfe,0x84,0xfe,0x74,0x73,0x63,0x00,0x02,0x00,0x32,0xfe,0x1e,0x04,0xdb,0x06,0x02,0x00,0x25,0x00,0x28,0x01,0x1e,0x40,0x21,0x98,0x22,0x01,0x96,0x20,0x01,0x86,0x0a,0x01,0x99,0x07,0x01,0x21,0x0d,0x0c,0x19,0x1a,0x18,0x1a,0x06,0x27,0x01,0x27,0x15,0x14,0x28,0x14,0x51,0x18,0x61,0x18,0x02,0x18,0xb8, +0xff,0xc8,0x40,0x90,0x33,0x36,0x48,0x00,0x18,0x10,0x18,0x20,0x18,0x03,0xf1,0x18,0x01,0x58,0x18,0x01,0x29,0x18,0x01,0x18,0x14,0x28,0x14,0x84,0x1a,0x18,0x14,0x1a,0x1a,0x18,0x0c,0x84,0x0d,0x0d,0x26,0x0f,0x1a,0x01,0x1a,0x1a,0x28,0x03,0x05,0x84,0x00,0x31,0x17,0x41,0x17,0x51,0x17,0x71,0x17,0x81,0x17,0x05,0x77,0x17,0x01,0x56, +0x17,0x01,0x47,0x17,0x01,0x25,0x17,0x01,0x16,0x17,0x01,0x3e,0x26,0x4e,0x26,0x02,0x38,0x26,0x01,0x0b,0x26,0x01,0x17,0x26,0x28,0x26,0x84,0x16,0x17,0x14,0x16,0x16,0x17,0x02,0x0e,0x00,0x01,0x00,0x00,0x80,0x16,0x01,0x16,0x16,0x58,0x28,0x01,0x26,0x28,0x01,0x28,0x28,0x1b,0x21,0x0d,0x08,0x95,0x23,0x23,0x1f,0x03,0x02,0x02,0x0d, +0x26,0x27,0x95,0x1a,0x16,0x15,0x14,0x15,0x0d,0x15,0x0d,0x15,0x18,0x11,0x95,0x1f,0x01,0x17,0x18,0x1b,0x00,0x3f,0xc4,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xc4,0x33,0xfd,0xc4,0x11,0x33,0x2f,0x33,0x11,0x33,0x2f,0xed,0x12,0x39,0x3f,0x01,0x3d,0x2f,0x5d,0x5d,0xc9,0x18,0x2f,0x5d,0x32,0x2f,0x5d,0x33,0x87,0x10,0x2b, +0x87,0x7d,0xc4,0x01,0x5d,0x5d,0x72,0x5d,0x5d,0x5d,0x5d,0x5d,0x72,0x18,0x10,0xed,0x32,0x10,0xc9,0x2f,0x5d,0x12,0x39,0x2f,0xed,0x87,0x10,0x2b,0x87,0x7d,0xc4,0x01,0x5d,0x5d,0x71,0x72,0x2b,0x72,0x10,0x87,0xc4,0xc4,0x01,0x5d,0x10,0x87,0x0e,0xc4,0x11,0x12,0x01,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x27,0x36,0x35, +0x34,0x26,0x23,0x22,0x07,0x06,0x15,0x23,0x34,0x27,0x26,0x23,0x22,0x11,0x14,0x17,0x21,0x01,0x23,0x01,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x16,0x01,0x21,0x01,0x04,0xdb,0x20,0xa6,0x1e,0x4c,0x47,0x67,0x30,0x24,0xa4,0x24,0x30,0x67,0xac,0x1c,0x03,0xa7,0xfe,0x25,0xa2,0xfe,0x67,0x55,0x4d,0x57,0xb0,0xbb,0x53, +0x53,0xb9,0x8e,0xad,0xfe,0xf4,0xfd,0x4c,0x01,0x56,0x04,0xb8,0x4e,0x52,0x1d,0x53,0x3a,0x51,0x65,0x64,0x49,0x69,0x69,0x49,0x64,0xfe,0xc5,0x6c,0x5d,0xfa,0xaa,0x04,0x7f,0xef,0xa2,0xd3,0x78,0x89,0xbd,0xbd,0xb5,0xfd,0x9a,0xfb,0xe8,0x00,0x00,0x02,0x00,0x50,0xfe,0x1e,0x04,0x00,0x05,0xec,0x00,0x41,0x00,0x4c,0x00,0xe4,0x40,0x8d, +0x76,0x3f,0x01,0x75,0x3e,0x01,0x86,0x3d,0x01,0x73,0x3d,0x01,0x99,0x18,0x01,0x76,0x13,0x01,0x76,0x0f,0x01,0x67,0x0f,0x01,0x88,0x01,0x01,0x37,0x36,0x39,0x2f,0x36,0x36,0x34,0x31,0x32,0x2f,0x84,0x28,0x1c,0x42,0x00,0x84,0x15,0x42,0x15,0x42,0x15,0x22,0x4e,0x2d,0x84,0x2a,0x2a,0x22,0x0b,0x0d,0x84,0x0a,0x08,0x08,0x48,0x84,0x22, +0x43,0x42,0x45,0x4b,0xb9,0x32,0x01,0xa8,0x32,0x01,0x32,0x31,0x31,0x66,0x2f,0x01,0x37,0x2f,0x47,0x2f,0x57,0x2f,0x03,0x26,0x2f,0x01,0x69,0x39,0x01,0x38,0x39,0x48,0x39,0x58,0x39,0x03,0x29,0x39,0x01,0x1c,0x39,0x34,0x2f,0x28,0x05,0x1e,0x26,0x95,0x45,0x4b,0xb6,0x36,0x01,0xa7,0x36,0x01,0x36,0x37,0x37,0x0b,0x0a,0x0a,0x11,0x1e, +0x95,0x4b,0x4b,0x11,0x29,0x95,0x2e,0x2c,0x00,0x11,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0xde,0xed,0x11,0x39,0x2f,0xed,0x11,0x39,0x2f,0x33,0x32,0x2f,0x33,0x5d,0x5d,0x10,0xde,0xed,0x11,0x17,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x32,0x2f,0x33,0x5d,0x5d,0x11,0x12,0x39,0x39,0x01,0x2f,0xed,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x2f, +0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xc4,0xc4,0xfd,0xcd,0x39,0x39,0x32,0x2f,0x10,0xc4,0x11,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x27,0x26,0x26,0x27,0x26,0x35,0x06, +0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x11,0x21,0x11,0x33,0x15,0x21,0x11,0x36,0x37,0x17,0x06,0x07,0x16,0x17,0x07,0x26,0x27,0x15,0x14,0x17,0x16,0x17,0x16,0x17,0x16,0x01,0x35,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x04,0x00,0x9d,0x86,0xb6,0xb3,0x88,0x9c,0x28,0x9c,0x1e,0x68,0x58,0x71,0x74,0x56,0x69, +0x25,0x06,0xb5,0x19,0x28,0x5d,0x5d,0x71,0x43,0x3f,0x3f,0x44,0x70,0x5b,0x5f,0xfe,0x7c,0xa4,0x01,0x84,0x55,0x40,0x81,0x4b,0x56,0x56,0x4b,0x81,0x40,0x55,0x23,0x13,0x42,0x67,0x19,0x2b,0xfe,0x39,0x64,0x56,0x25,0x3d,0x3d,0x25,0x56,0x8c,0xa5,0x5f,0x52,0x57,0x64,0xa5,0x5e,0x51,0x37,0x37,0x45,0x65,0x3b,0x32,0x2d,0x36,0x65,0x51, +0x34,0x09,0xbb,0x2c,0x45,0x66,0x29,0x4b,0x46,0x6d,0x6d,0x47,0x4b,0x2a,0x01,0xa1,0x01,0x11,0x79,0xfd,0x61,0x59,0x69,0x60,0x74,0x5d,0x5d,0x74,0x5f,0x69,0x59,0x6d,0x41,0x34,0x1c,0x41,0x66,0x27,0x46,0x02,0x5f,0x43,0x40,0x3f,0x22,0x22,0x40,0x00,0x00,0x02,0x00,0xae,0xff,0xe8,0x04,0x76,0x05,0xec,0x00,0x11,0x00,0x1d,0x00,0x92, +0x40,0x62,0x5a,0x1d,0x01,0x49,0x1d,0x01,0x45,0x1b,0x55,0x1b,0x02,0x46,0x1a,0x56,0x1a,0x02,0x46,0x16,0x56,0x16,0x02,0x49,0x13,0x59,0x13,0x02,0x69,0x05,0x01,0x37,0x1d,0x01,0x37,0x1a,0x01,0x38,0x16,0x01,0x85,0x0e,0x01,0x74,0x0e,0x01,0x07,0x0e,0x17,0x0e,0x02,0x0e,0x0c,0x0b,0x2e,0x0d,0x01,0x1f,0x0d,0x01,0x0d,0x0d,0x00,0x83, +0x10,0x12,0x20,0x12,0x30,0x12,0x03,0x12,0x12,0x1f,0x0b,0x84,0x18,0x83,0x08,0x0c,0x2e,0x0d,0x01,0x0d,0x0d,0x0a,0x14,0x95,0x66,0x0b,0x01,0x0b,0x0e,0x0f,0x0a,0x00,0x1c,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xc4,0x01,0x2f,0xed,0xed,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x5d,0x5d,0x12,0x39, +0x39,0x5d,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x33,0x11,0x01,0x33,0x01,0x32,0x17,0x16,0x07,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x04,0x76,0x7b,0x84,0xeb,0xe5,0x80,0x79,0xa8,0x01,0xd8,0xd7,0xfe,0xa0,0xea,0x79, +0x6e,0xa8,0xfe,0xca,0xa8,0x53,0x47,0x4a,0x55,0xa3,0x01,0x36,0x01,0xf0,0xe6,0x8c,0x96,0x8f,0x88,0xe1,0x04,0x0c,0xfd,0x7a,0x01,0x9e,0xfe,0xd8,0x8d,0x80,0xe5,0x01,0x68,0x6d,0x5e,0xa1,0x9e,0x63,0x73,0x00,0x00,0x01,0x00,0x21,0xfe,0x1e,0x05,0xf5,0x04,0x18,0x00,0x43,0x01,0x30,0x40,0xb7,0x75,0x3a,0x01,0x67,0x29,0x01,0x56,0x29, +0x01,0x45,0x29,0x01,0x26,0x29,0x01,0x36,0x17,0x01,0x6a,0x0e,0x01,0x42,0x41,0x41,0x00,0x84,0x3f,0x3b,0x30,0x31,0x31,0x2c,0x3a,0x3b,0x28,0x38,0x08,0x39,0x38,0x08,0x38,0x2a,0x2b,0x17,0x29,0x3b,0x28,0x2b,0x17,0x18,0x06,0x19,0x2b,0x17,0x07,0x06,0x19,0x38,0x08,0xa5,0x2b,0x01,0x2b,0x08,0x38,0x08,0x84,0x17,0x2b,0x14,0x17,0x17, +0x2b,0x2b,0x2c,0x84,0x38,0x37,0x37,0x28,0x06,0x19,0x06,0x84,0x3b,0x28,0x14,0x3b,0x28,0x3b,0x3b,0x17,0x45,0x20,0x1f,0x22,0x84,0x1d,0x1f,0x1f,0x1d,0x19,0x19,0x17,0x10,0x0f,0x08,0x17,0x0a,0x84,0x00,0x15,0x01,0x15,0x15,0x17,0x38,0x2e,0x31,0x33,0x30,0x30,0x2e,0x95,0x33,0x33,0x26,0xc5,0x1f,0x01,0x1f,0x20,0x20,0x19,0x1b,0x95, +0x28,0x26,0x10,0xba,0x41,0x01,0xa9,0x41,0x01,0x41,0x42,0x42,0x3b,0x3d,0x95,0x04,0xd2,0x17,0x01,0x24,0x17,0x44,0x17,0x54,0x17,0x03,0x09,0x17,0x01,0x17,0x76,0x10,0x86,0x10,0x02,0x10,0x12,0x95,0x6c,0x0f,0x01,0x0f,0x0d,0x0d,0x06,0x04,0x1c,0x00,0x3f,0x33,0x33,0x2f,0x33,0x5d,0xed,0x32,0x5d,0x32,0x5d,0x5d,0x5d,0x10,0xed,0x32, +0x32,0x2f,0x33,0x5d,0x5d,0x3f,0x33,0xed,0x32,0x32,0x2f,0x33,0x5d,0x11,0x33,0x2f,0xed,0x32,0x2f,0x12,0x39,0x11,0x33,0x01,0x2f,0x33,0x2f,0x5d,0xed,0x11,0x39,0xcc,0x32,0x11,0x33,0x2f,0xce,0x32,0x2f,0x10,0xed,0x11,0x39,0x11,0x12,0x39,0x2f,0x87,0x2b,0x87,0x7d,0xc4,0x01,0x33,0x18,0x2f,0x33,0xed,0x32,0x87,0x04,0x10,0x2b,0x87, +0x7d,0xc4,0x00,0x5d,0x0f,0x0f,0x0f,0x87,0x0e,0xc4,0x10,0x87,0x0e,0xc4,0x0f,0x11,0x01,0x33,0x18,0x2f,0x33,0x10,0xde,0xed,0x33,0x2f,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x01,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x01,0x01, +0x26,0x23,0x22,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x01,0x01,0x36,0x35,0x34,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07,0x01,0x01,0x16,0x33,0x32,0x35,0x34,0x27,0x37,0x16,0x05,0xf5,0x40,0x3c,0x5b,0x90,0x52,0xfe,0xcf,0xfe,0xa4,0x33,0x8e,0x69,0x77,0x53,0x43,0x3c,0x4b,0x24,0x36,0x83, +0x01,0xef,0xfe,0xc3,0x36,0x2f,0x2b,0x5a,0x7f,0x74,0x40,0x3c,0x5b,0x8b,0x52,0x01,0x3b,0x01,0xd3,0x59,0x38,0x3d,0x87,0x58,0xac,0x64,0x62,0x3a,0x37,0x86,0xfe,0x26,0x01,0x35,0x37,0x30,0x2b,0x5a,0x7f,0x74,0xfe,0xf1,0x62,0x3a,0x37,0x86,0x01,0xf3,0xfe,0xfd,0x38,0x6c,0x5d,0x75,0x47,0x8a,0x47,0x34,0x24,0x6b,0x50,0x01,0x70,0x02, +0x06,0x58,0x38,0x3d,0x87,0x58,0xac,0x64,0x62,0x3a,0x37,0x86,0xfd,0xff,0x01,0x5c,0x42,0x25,0x2b,0x5a,0x7f,0x74,0x40,0x3c,0x5b,0x7e,0x64,0xfe,0x9f,0xfe,0x08,0x59,0x38,0x3d,0x87,0x58,0xac,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0xf3,0x06,0x02,0x00,0x3d,0x00,0xa2,0x40,0x5f,0x94,0x32,0x01,0x87,0x2e,0x01,0x98,0x15,0x01,0x86, +0x12,0x01,0x77,0x12,0x01,0x77,0x0f,0x87,0x0f,0x02,0x99,0x01,0x01,0x36,0x20,0x33,0x84,0x24,0x24,0x13,0x3a,0x19,0x38,0x84,0x1d,0x1d,0x13,0x20,0x20,0x19,0x19,0x0d,0x00,0x84,0x13,0x13,0x08,0x3f,0x2d,0x2c,0x2c,0x0b,0x0d,0x84,0x0a,0x0f,0x08,0x01,0x08,0x36,0x20,0x95,0x22,0x3a,0x19,0x0b,0x0a,0x0a,0x17,0x95,0x19,0x8b,0x2c,0x01, +0x18,0x31,0x01,0x9a,0x28,0x01,0x28,0x31,0x2c,0x03,0x2d,0x22,0x19,0x22,0x19,0x2d,0x01,0x11,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x5d,0x5d,0x5d,0x10,0xed,0x32,0x2f,0x33,0x11,0x39,0x10,0xed,0x39,0x01,0x2f,0x5d,0x33,0xed,0x32,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x33,0x2f, +0x11,0x33,0x2f,0xed,0x11,0x39,0x11,0x33,0x2f,0xed,0x11,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x35,0x34,0x27,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x27,0x26,0x27,0x26, +0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x17,0x04,0x15,0x14,0x06,0x07,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x03,0xf3,0x8f,0x80,0xd5,0xae,0x79,0x88,0x29,0x99,0x1c,0x55,0x4a,0x6c,0x01,0x3f,0x3d,0x40,0x60,0x60,0x60,0x64,0x79,0xdd,0x60,0x60,0xdd,0x55,0x17,0x79,0xa1,0x2f,0x6a,0x3d,0x6d,0x41,0x5f,0x23,0x9d,0x01,0x32,0x6d,0x5c,0xc9, +0xc9,0x58,0x3a,0x37,0x01,0x2b,0xa2,0x55,0x4c,0x57,0x62,0xa7,0x5c,0x53,0x37,0x33,0x49,0x66,0x3a,0x32,0xc9,0x43,0x2f,0x30,0x8b,0x48,0x40,0x82,0x8b,0x84,0x44,0x1e,0x08,0x14,0x1b,0x10,0x24,0x54,0x60,0x48,0x1c,0x0b,0x18,0x2f,0xc9,0x4a,0x6e,0x13,0x2a,0xa1,0xa0,0x2a,0x13,0x4b,0x47,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x95, +0x06,0x02,0x00,0x3d,0x00,0x45,0x00,0xc6,0x40,0x7a,0x76,0x41,0x01,0x57,0x41,0x67,0x41,0x02,0x65,0x30,0x01,0x99,0x2b,0x01,0x98,0x2a,0x01,0x99,0x29,0x01,0x99,0x28,0x01,0x99,0x17,0x01,0x9b,0x14,0x01,0x89,0x14,0x01,0x94,0x12,0x01,0x55,0x12,0x85,0x12,0x02,0x37,0x11,0x01,0x86,0x0d,0x01,0x89,0x07,0x01,0x6b,0x03,0x01,0x36,0x22, +0x33,0x84,0x26,0x26,0x15,0x3a,0x1b,0x00,0x22,0x22,0x2f,0x1b,0x01,0x1b,0x1b,0x42,0x38,0x84,0x1f,0x1f,0x15,0x2d,0x2c,0x3e,0x84,0x0b,0x0b,0x42,0x00,0x84,0x15,0x15,0x47,0x0f,0x42,0x83,0x06,0x3a,0x19,0x95,0x1b,0x42,0x95,0x0f,0x36,0x23,0x95,0x21,0x1b,0x0f,0x21,0x21,0x0f,0x1b,0x03,0x13,0x40,0x95,0x08,0x2c,0x2d,0x2d,0x08,0x01, +0x13,0x95,0x02,0x16,0x00,0x3f,0xed,0x3f,0x33,0x2f,0x33,0x10,0xed,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x10,0xed,0x39,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0xce,0x32,0x11,0x33,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x33,0x2f,0x11,0x12,0x39,0x11,0x33,0x2f,0xed,0x11,0x39,0x31,0x30,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x20,0x03,0x26,0x11,0x10,0x21,0x32,0x16,0x15,0x14,0x07,0x06,0x07,0x14,0x17,0x12,0x33,0x20,0x35,0x34,0x27,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x27,0x26,0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x17, +0x16,0x15,0x14,0x06,0x07,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x23,0x22,0x11,0x36,0x37,0x36,0x04,0x95,0xfe,0x5f,0xfe,0xb4,0xb4,0x94,0x01,0x4e,0x67,0x7c,0x7d,0x7a,0x8f,0x67,0x87,0xf0,0x01,0x09,0x3d,0x40,0x60,0x60,0x60,0x64,0x79,0xdd,0x60,0x60,0xdd,0x3d,0x40,0x41,0x51,0x21,0x81,0x1a,0x5b,0x88,0x0c,0x49,0x6d,0x5c, +0xc9,0xc9,0x58,0x3a,0x37,0xfd,0x5a,0x41,0xa3,0x65,0x45,0x3a,0x01,0x2b,0xfe,0xbd,0x01,0x30,0xfa,0x01,0x59,0x02,0x97,0x74,0x68,0xa0,0xa0,0x9b,0x26,0xd8,0xcc,0xfe,0xf1,0xc9,0x43,0x2f,0x30,0x8b,0x48,0x40,0x82,0x8b,0x84,0x36,0x29,0x27,0x28,0x39,0x50,0x4a,0x41,0x3c,0x59,0x0b,0x42,0x5c,0x4a,0x6e,0x13,0x2a,0xa1,0xa0,0x2a,0x13, +0x4b,0x47,0x03,0xa4,0x55,0xfe,0x40,0x1b,0x83,0x6f,0x00,0x02,0x00,0x32,0xff,0xe8,0x05,0x1d,0x04,0x18,0x00,0x19,0x00,0x27,0x01,0x04,0x40,0xb7,0x48,0x20,0x58,0x20,0x02,0x48,0x1c,0x58,0x1c,0x02,0x08,0x17,0x01,0x77,0x13,0x01,0x65,0x13,0x01,0x77,0x0f,0x01,0x65,0x0f,0x01,0x08,0x0b,0x01,0x25,0x1a,0x22,0x17,0x04,0x0b,0x03,0x0d, +0x19,0x19,0x15,0x83,0x1a,0x1a,0x29,0x22,0x83,0x0d,0x09,0x09,0x0d,0x1e,0x95,0x11,0x10,0x16,0x25,0x01,0x07,0x25,0x01,0xe7,0x25,0xf7,0x25,0x02,0xc5,0x25,0x01,0x97,0x25,0x01,0x73,0x25,0x83,0x25,0x02,0x64,0x25,0x01,0x47,0x25,0x57,0x25,0x02,0x25,0x09,0xda,0x0b,0x01,0x99,0x0b,0x01,0x0b,0x95,0x06,0x19,0xda,0x17,0x01,0x99,0x17, +0x01,0x17,0x95,0x19,0x00,0x01,0x08,0x00,0x01,0xe9,0x00,0xf9,0x00,0x02,0x9b,0x00,0x01,0x00,0x02,0x02,0x19,0x08,0x01,0x08,0x08,0x01,0xe9,0x08,0xf9,0x08,0x02,0x9b,0x08,0x01,0x08,0x0b,0x04,0x01,0xeb,0x04,0xfb,0x04,0x02,0x04,0x20,0x21,0x24,0x48,0x7c,0x04,0x01,0x5d,0x04,0x6d,0x04,0x02,0x4b,0x04,0x01,0x1a,0x04,0x2a,0x04,0x3a, +0x04,0x03,0x09,0x04,0x01,0xfa,0x04,0x01,0xdb,0x04,0xeb,0x04,0x02,0x9d,0x04,0x01,0x04,0x06,0x16,0x00,0x3f,0x33,0x5d,0x5d,0x5d,0x71,0x71,0x71,0x71,0x71,0x2b,0x71,0x72,0x33,0x5d,0x5d,0x71,0x71,0x33,0x2f,0x33,0x5d,0x5d,0x71,0x71,0xed,0x5d,0x5d,0x32,0x10,0xed,0x5d,0x5d,0x32,0x32,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x71,0x3f, +0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0x11,0x17,0x39,0x11,0x12,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x27,0x35,0x16,0x37,0x26,0x11,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x10,0x07,0x16,0x37,0x01,0x34,0x27,0x26,0x23,0x22,0x07,0x06, +0x15,0x14,0x16,0x17,0x36,0x36,0x05,0x1d,0x92,0xec,0x84,0x73,0x73,0x85,0xec,0x92,0x8e,0xfb,0xe8,0x8a,0x7d,0xcc,0xcc,0x7e,0x8c,0xe8,0xfb,0x8e,0xfe,0xb7,0x59,0x4e,0x87,0x86,0x4e,0x57,0xa3,0x8a,0x8a,0xa2,0x1b,0x33,0x1e,0x1e,0x33,0x9c,0x47,0x02,0xa6,0x01,0x2a,0xe8,0x7d,0x71,0x71,0x7d,0xe8,0xfe,0xd6,0xa6,0x02,0x47,0x01,0x8b, +0xaa,0x56,0x4c,0x4c,0x56,0xaa,0x88,0xe0,0x39,0x39,0xe0,0x00,0x00,0x01,0x00,0x5e,0xfe,0x1e,0x03,0xf1,0x04,0x00,0x00,0x28,0x00,0x9a,0x40,0x5d,0x55,0x27,0x01,0x99,0x16,0x01,0x3a,0x16,0x4a,0x16,0x02,0x76,0x0f,0x01,0x57,0x0f,0x67,0x0f,0x02,0x66,0x02,0x01,0x54,0x02,0x01,0x77,0x25,0x01,0x99,0x1a,0x01,0x8a,0x1a,0x01,0x59,0x1a, +0x69,0x1a,0x02,0x25,0x1a,0x24,0x19,0x19,0x0d,0x15,0x24,0x24,0x00,0x83,0x15,0x15,0x08,0x2a,0x1f,0x1e,0x1e,0x0b,0x0d,0x84,0x0a,0x0f,0x08,0x01,0x08,0x1a,0x1c,0x24,0x23,0x23,0x1f,0x19,0x25,0x95,0x0b,0x0a,0x18,0x0a,0x18,0x0a,0x11,0x1c,0x95,0x21,0x21,0x1e,0x95,0x1f,0x0f,0x11,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x33,0x2f, +0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x39,0x11,0x33,0x2f,0x33,0x12,0x39,0x01,0x2f,0x5d,0x33,0xed,0x32,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x11,0x12,0x39,0x2f,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17, +0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x10,0x21,0x23,0x35,0x01,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x25,0x15,0x01,0x16,0x17,0x16,0x03,0xf1,0x8e,0x85,0xcf,0xaa,0x7d,0x88,0x29,0x99,0x1c,0x55,0x4e,0x68,0x86,0x57,0x5b,0xfe,0x54,0x52,0x01,0x65,0x77,0x77,0xab,0xb9,0x2b,0x93,0xcb,0xcc,0x01,0x03,0xfe,0x77,0xd2, +0x74,0x7e,0x1d,0xd2,0x7d,0x76,0x61,0x6a,0xa9,0x5c,0x53,0x37,0x33,0x49,0x68,0x42,0x3c,0x54,0x57,0x8c,0x01,0x4e,0x33,0x01,0xea,0x18,0x42,0x8c,0x42,0x42,0x33,0xfd,0xe1,0x19,0x6e,0x77,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x06,0x02,0x00,0x43,0x00,0xe0,0x40,0x8f,0x56,0x43,0x66,0x43,0x02,0x85,0x3d,0x01,0x57,0x3d,0x67,0x3d, +0x02,0x76,0x36,0x86,0x36,0x02,0x79,0x32,0x89,0x32,0x02,0x89,0x22,0x01,0x48,0x17,0x01,0x59,0x13,0x69,0x13,0x02,0x76,0x0f,0x86,0x0f,0x02,0x67,0x0f,0x01,0x56,0x0f,0x01,0x2d,0x2b,0x84,0x2e,0x30,0x30,0x15,0x85,0x3a,0x95,0x3a,0x02,0x3a,0x38,0x3e,0x83,0x9b,0x1f,0x01,0x79,0x1f,0x01,0x08,0x1f,0x01,0x1f,0x23,0x1d,0x1d,0x15,0x54, +0x40,0x01,0x41,0x40,0x00,0x19,0x19,0x0d,0x00,0x83,0x20,0x15,0x01,0x15,0x15,0x08,0x45,0x38,0x83,0x23,0x23,0x0b,0x0d,0x84,0x0a,0x0f,0x08,0x1f,0x08,0x02,0x08,0x2e,0x2d,0x40,0x41,0x1a,0x0b,0x0a,0x0a,0x11,0x18,0x95,0x1a,0x18,0x1f,0x01,0x3a,0x1f,0x1a,0x0f,0x2d,0x1f,0x2d,0x02,0x2d,0x1a,0x2d,0x1a,0x11,0x34,0x95,0x27,0x01,0x11, +0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x5d,0x12,0x39,0x39,0x5d,0x10,0xed,0x11,0x39,0x2f,0x33,0x11,0x39,0x39,0x11,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0x5d,0x11,0x33,0x2f,0x12,0x39,0x5d,0x5d,0x5d,0xed,0x11,0x39,0x5d,0x11, +0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x20,0x35,0x34,0x27,0x24,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07, +0x27,0x36,0x35,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x17,0x16,0x15,0x14,0x05,0x15,0x16,0x16,0x03,0xf1,0x8e,0x85,0xcf,0xaa,0x7d,0x88,0x29,0x99,0x1c,0x55,0x4e,0x68,0x88,0x55,0x5b,0xcb,0xb0,0x1d,0x17,0x01,0x4f,0xa7,0xfe,0xf2,0x2a,0xa7,0x89,0x79,0xaf,0xae,0x79,0x88,0x27,0x9d,0x1e,0x54,0x4a,0x6b,0x6c,0x4a, +0x55,0xa8,0x9c,0x9c,0xa8,0xfe,0xef,0x92,0xb1,0x22,0xd2,0x7b,0x73,0x61,0x6a,0xa9,0x5c,0x53,0x37,0x33,0x49,0x68,0x42,0x3c,0x4c,0x50,0x8b,0x8b,0x98,0x8b,0xd9,0x5d,0x3f,0x66,0x1a,0x6a,0xc6,0xa8,0x61,0x57,0x57,0x62,0xa7,0x60,0x4f,0x37,0x37,0x45,0x67,0x39,0x32,0x32,0x39,0x67,0x98,0x4b,0x38,0x38,0x4d,0x9e,0xf3,0x36,0x04,0x0e, +0xba,0x00,0x00,0x03,0x00,0x52,0xff,0xe8,0x04,0x92,0x06,0x02,0x00,0x21,0x00,0x2c,0x00,0x38,0x00,0x81,0x40,0x50,0x99,0x37,0x01,0x8a,0x37,0x01,0x85,0x31,0x01,0x8a,0x25,0x01,0x79,0x25,0x01,0x96,0x19,0x01,0x9a,0x16,0x01,0x7a,0x12,0x8a,0x12,0x02,0x9a,0x0b,0x01,0x7b,0x0b,0x01,0x7b,0x0a,0x01,0x1e,0x21,0x1c,0x01,0x1f,0x84,0x2e, +0x22,0x0e,0x0e,0x09,0x3a,0x28,0x83,0x14,0x14,0x33,0x83,0x09,0x40,0x09,0x0c,0x48,0x09,0x1c,0x22,0x95,0x0f,0x1f,0x0e,0x2e,0x01,0x95,0x20,0x0e,0x0e,0x35,0x26,0x95,0x18,0x01,0x35,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xc4,0xfd,0xc4,0x10,0xdd,0xc4,0xfd,0xc4,0x01,0x2f,0x2b,0xed,0x33,0x2f,0xed,0x11,0x12,0x39, +0x2f,0xc4,0xc4,0xfd,0xc4,0xc4,0xde,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x33,0x35,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x16,0x15,0x15,0x21,0x15,0x21,0x15,0x21,0x01,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x17, +0x16,0x33,0x13,0x35,0x23,0x22,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x36,0x04,0x92,0xfe,0xd4,0xcd,0xb6,0xb5,0x6b,0x71,0x81,0x74,0xb1,0xc6,0xc6,0xb1,0x74,0x81,0x71,0x6b,0xb5,0xb6,0xcd,0x01,0x2c,0xfe,0xd4,0x01,0x2c,0xfe,0x2c,0x72,0x69,0xe1,0x4c,0x45,0x65,0xc6,0xc6,0x65,0x45,0x4c,0xe1,0x69,0x3a,0x38,0x02,0x0e,0xa8,0xb5,0xc9, +0x57,0x5c,0xa8,0xab,0x60,0x58,0x9e,0x58,0x60,0xab,0xa8,0x5c,0x57,0xc9,0xb5,0xa8,0x98,0x9e,0x01,0x36,0xa8,0x68,0x7f,0xc4,0x60,0x39,0x32,0xfd,0x8a,0xa8,0x32,0x39,0x60,0xc4,0x41,0x3e,0x00,0x03,0x00,0x60,0xfe,0x1e,0x07,0x48,0x06,0x02,0x00,0x31,0x00,0x3d,0x00,0x49,0x00,0xb9,0x40,0x79,0x46,0x45,0x01,0x46,0x43,0x01,0x49,0x3d, +0x01,0x49,0x33,0x01,0x55,0x45,0x01,0x59,0x43,0x01,0x55,0x3d,0x01,0x5a,0x33,0x01,0x44,0x83,0x0f,0x19,0x1f,0x19,0x3f,0x19,0x03,0x19,0x12,0x32,0x83,0x00,0x00,0x10,0x00,0x30,0x00,0x03,0x00,0x06,0x38,0x38,0x2c,0x0b,0x06,0x84,0x12,0x3e,0x3e,0x24,0x1f,0x12,0x24,0x22,0x95,0x25,0x27,0x01,0x34,0x95,0x44,0x2c,0x54,0x2c,0x02,0x2c, +0x2e,0x2e,0x42,0x95,0x44,0x1f,0x54,0x1f,0x02,0x1f,0x1d,0x0f,0x3c,0x95,0x79,0x06,0x01,0x6a,0x06,0x01,0x4b,0x06,0x5b,0x06,0x02,0x06,0x04,0x04,0x46,0x95,0x69,0x13,0x79,0x13,0x02,0x4b,0x13,0x5b,0x13,0x02,0x13,0x15,0x16,0x0b,0x09,0x95,0x0c,0x0e,0x1c,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0x5d,0x5d,0xed,0x33,0x2f,0x33,0x5d,0x5d, +0x5d,0xed,0x3f,0x33,0x5d,0xed,0x33,0x2f,0x33,0x5d,0xed,0x3f,0x33,0xed,0x32,0x01,0x2f,0xc4,0xcc,0x33,0x2f,0x10,0xfd,0xce,0xc4,0x33,0x2f,0x10,0xdc,0x5d,0xed,0x10,0xdc,0x5d,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x27, +0x26,0x35,0x35,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x11,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x16,0x15,0x11,0x36,0x33,0x32,0x17,0x16,0x07,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x01,0x34,0x27,0x26,0x23,0x20,0x11,0x10,0x21,0x32,0x37,0x36,0x07,0x48,0x7b,0x84,0xeb,0xbc,0x7a, +0xac,0x3d,0x30,0x2c,0x4b,0x93,0x5d,0x5a,0x7a,0xbc,0xeb,0x84,0x7b,0x6e,0x7a,0xea,0xc6,0x88,0xac,0x3d,0x30,0x2c,0x4b,0x93,0x5d,0x5a,0x88,0xc6,0xea,0x7a,0x6e,0xa8,0xfe,0xca,0xa8,0x53,0x47,0x4a,0x55,0xa3,0x01,0x36,0xfc,0xe0,0x47,0x53,0xa8,0xfe,0xca,0x01,0x36,0xa1,0x56,0x4b,0x01,0xf0,0xe6,0x8c,0x96,0x63,0xc9,0xd9,0x1b,0x94, +0x12,0x65,0x62,0x95,0xd1,0x63,0x96,0x8c,0xe6,0xdf,0x80,0x8d,0x77,0x01,0x39,0xd9,0x1b,0x94,0x12,0x65,0x62,0x95,0xfe,0xbf,0x77,0x8d,0x80,0xe5,0x01,0x68,0x6d,0x5e,0xa1,0x9e,0x63,0x73,0x01,0x74,0xa1,0x5e,0x6d,0xfe,0x98,0xfe,0x88,0x71,0x62,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x04,0x18,0x00,0x2f,0x00,0xc2,0x40,0x83, +0x79,0x29,0x01,0x68,0x29,0x01,0x59,0x29,0x01,0x56,0x25,0x66,0x25,0x02,0x25,0x1f,0x01,0x77,0x1e,0x01,0x35,0x1e,0x01,0x85,0x1b,0x95,0x1b,0x02,0x8a,0x17,0x9a,0x17,0x02,0x75,0x12,0x01,0x67,0x12,0x01,0x7a,0x0f,0x01,0x2a,0x0a,0x01,0x69,0x09,0x01,0x06,0x02,0x16,0x02,0x02,0x2e,0x00,0x84,0x2d,0x2b,0x2b,0x0e,0x34,0x20,0x54,0x20, +0x64,0x20,0x84,0x20,0x04,0x20,0x23,0x1d,0x83,0x8b,0x0b,0x9b,0x0b,0x02,0x6d,0x0b,0x01,0x4a,0x0b,0x5a,0x0b,0x02,0x2f,0x0b,0x01,0x0b,0x08,0x20,0x0e,0x30,0x0e,0x02,0x0e,0x0e,0x31,0x23,0x83,0x08,0x14,0x84,0x15,0x15,0x0f,0x08,0x1f,0x08,0x02,0x08,0x2d,0x2e,0x2e,0x27,0x20,0x20,0x04,0x15,0x15,0x0b,0x10,0x95,0x0b,0x19,0x10,0x27, +0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0x39,0xed,0x11,0x39,0x2f,0x11,0x39,0x11,0x12,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x10,0xed,0x12,0x39,0x2f,0x5d,0x12,0x39,0x5d,0x5d,0x5d,0x5d,0xed,0x11,0x39,0x5d,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x36,0x35,0x34,0x21,0x22,0x07,0x06,0x15,0x23,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07,0x06,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x27,0x37,0x16,0x03,0xf1,0x88,0x7d,0xaa,0xcf,0x85,0x8e,0xbc,0xae,0xae,0xbc,0xfe,0xfb,0x68,0x44, +0x4b,0xa6,0x7f,0x73,0xab,0xba,0x77,0x7c,0xbc,0xae,0xae,0xbc,0x5b,0x55,0x88,0x68,0x4e,0x55,0x1c,0x9a,0x28,0x6e,0xa9,0x6a,0x61,0x73,0x7b,0xd2,0xcd,0x76,0x4d,0x4e,0x58,0x85,0xf4,0x34,0x39,0x68,0xa8,0x61,0x57,0x60,0x63,0xa7,0xe0,0x72,0x4b,0x4b,0x57,0xa0,0x8b,0x50,0x4c,0x3c,0x42,0x68,0x49,0x33,0x37,0x51,0x00,0x01,0x00,0x5f, +0xfe,0x1e,0x03,0xf0,0x04,0x18,0x00,0x3b,0x00,0x76,0x40,0x49,0x56,0x2a,0x66,0x2a,0x76,0x2a,0x03,0x55,0x24,0x65,0x24,0x02,0x47,0x24,0x01,0x99,0x1a,0x01,0x9a,0x19,0x01,0x76,0x0a,0x86,0x0a,0x02,0x2f,0x31,0x84,0x2c,0x12,0x17,0x84,0x11,0x0c,0x0c,0x2e,0x2c,0x2c,0x3d,0x02,0x21,0x84,0x3b,0x6b,0x21,0x01,0x3a,0x21,0x4a,0x21,0x5a, +0x21,0x03,0x21,0x07,0x95,0x2e,0x2f,0x1c,0x2f,0x1c,0x2f,0x01,0x27,0x95,0x36,0x1c,0x11,0x12,0x12,0x01,0x0f,0x00,0x3f,0x33,0x2f,0x33,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x33,0x5d,0x5d,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x13,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x5f,0xa4,0x27,0x48,0x65,0x3e,0x2e,0x57,0x42,0x28,0x0c,0x07, +0x09,0x0a,0x99,0x0e,0x0b,0x0a,0x10,0x39,0x68,0x91,0x57,0x2a,0x53,0x4b,0x40,0x16,0x30,0x55,0x73,0x44,0x32,0x60,0x4b,0x2e,0x1c,0x99,0x29,0x49,0x79,0x9b,0x52,0x66,0xb1,0x81,0x4a,0x04,0x00,0x85,0x45,0x80,0x63,0x3b,0x20,0x42,0x66,0x46,0x26,0x43,0x1a,0x1e,0x1a,0x37,0x22,0x28,0x22,0x59,0x33,0x5f,0x96,0x67,0x36,0x15,0x24,0x2f, +0x1a,0xfd,0xbf,0x45,0x6d,0x4d,0x28,0x20,0x3c,0x55,0x35,0x4a,0x32,0x37,0x54,0x5b,0x56,0x8a,0x60,0x34,0x3d,0x74,0xa6,0x69,0x00,0x02,0x00,0x60,0xfe,0x1e,0x04,0x50,0x04,0x18,0x00,0x36,0x00,0x46,0x00,0x93,0x40,0x60,0x45,0x46,0x55,0x46,0x02,0x55,0x42,0x01,0x46,0x42,0x01,0x5a,0x3f,0x01,0x49,0x3f,0x01,0x59,0x39,0x01,0x4a,0x39, +0x01,0x64,0x27,0x01,0x69,0x23,0x01,0x79,0x1e,0x01,0x6a,0x1e,0x01,0x09,0x1e,0x19,0x1e,0x02,0x16,0x12,0x26,0x12,0x46,0x12,0x56,0x12,0x04,0x2f,0x32,0x84,0x1a,0x1d,0x1a,0x0b,0x10,0x83,0x0a,0x05,0x05,0x2a,0x83,0x3c,0x30,0x3c,0x01,0x1a,0x3c,0x1a,0x3c,0x48,0x44,0x83,0x0f,0x20,0x1f,0x20,0x02,0x20,0x0a,0x0b,0x37,0x95,0x1d,0x2f, +0x2f,0x00,0x41,0x95,0x25,0x10,0x00,0x95,0x15,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0xce,0x32,0x01,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x32,0x3e,0x02,0x35, +0x34,0x26,0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x06,0x06,0x15,0x14,0x1e,0x02,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0xea,0x2a,0x46,0x32,0x1c,0x06, +0x04,0x04,0x06,0xa6,0x06,0x05,0x04,0x07,0x35,0x5f,0x83,0x4f,0x4f,0x82,0x5e,0x34,0x17,0x0e,0xa5,0xa7,0x46,0x83,0xbd,0x78,0x74,0xb9,0x81,0x44,0x46,0x86,0xc1,0x7c,0x0e,0x10,0x1d,0x33,0x47,0x6e,0x57,0x81,0x54,0x2a,0x2b,0x56,0x80,0x55,0x9f,0xab,0xab,0xfe,0xa8,0x1f,0x35,0x45,0x27,0x1a,0x30,0x12,0x15,0x12,0x1d,0x16,0x1a,0x16, +0x3a,0x20,0x4a,0x7a,0x57,0x2f,0x2f,0x58,0x7d,0x4e,0x43,0x60,0x22,0x28,0xfa,0xc3,0x76,0xbd,0x84,0x47,0x44,0x80,0xb7,0x73,0x7c,0xc1,0x84,0x45,0x27,0x4e,0x35,0x33,0x4f,0x35,0x1b,0x02,0x06,0x35,0x62,0x8a,0x55,0x53,0x86,0x5e,0x33,0xb0,0xbe,0xc0,0xb2,0x00,0x00,0x01,0x00,0x40,0xfe,0x1e,0x04,0x96,0x04,0x18,0x00,0x33,0x00,0x93, +0x40,0x60,0x35,0x27,0x45,0x27,0x55,0x27,0x95,0x27,0x04,0x3a,0x23,0x4a,0x23,0x5a,0x23,0x03,0x65,0x16,0x01,0x94,0x2f,0x01,0x86,0x2f,0x01,0x64,0x2f,0x74,0x2f,0x02,0x2f,0x2a,0x8f,0x0c,0x9f,0x0c,0x02,0x3b,0x0c,0x4b,0x0c,0x5b,0x0c,0x03,0x18,0x0c,0x01,0x0c,0x0f,0x8b,0x01,0x9b,0x01,0x02,0x19,0x01,0x39,0x01,0x02,0x01,0x00,0x00, +0x1c,0x19,0x83,0x1d,0x20,0x20,0x35,0x2a,0x83,0x0f,0x09,0x09,0x0f,0x1d,0x1c,0x1c,0x0c,0x25,0x95,0x14,0x10,0x2f,0x01,0x0c,0x95,0x06,0x09,0x95,0x08,0x08,0x06,0x00,0x01,0x1c,0x00,0x3f,0x33,0xce,0x32,0x2f,0xed,0x10,0xed,0x11,0x39,0x3f,0xed,0x11,0x39,0x2f,0x33,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x32, +0x2f,0x33,0x5d,0x5d,0x12,0x39,0x5d,0x5d,0x5d,0x12,0x39,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x01,0x07,0x2e,0x03,0x23,0x22,0x07,0x35,0x36,0x36,0x33,0x26,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x04,0x96, +0x68,0x4f,0x98,0x9c,0xa4,0x5c,0xd7,0x94,0x4e,0xc0,0x6b,0xa8,0xb1,0x49,0x89,0xc5,0x7d,0x6f,0xb1,0x7b,0x42,0x0a,0x13,0x9d,0x0c,0x06,0x2b,0x52,0x77,0x4d,0x57,0x84,0x58,0x2d,0x43,0x84,0xc4,0x81,0x3a,0x65,0x5c,0x59,0xfe,0x9b,0x7d,0x3f,0x5e,0x3f,0x20,0x7e,0xa8,0x31,0x31,0x5e,0x01,0x30,0xca,0x7c,0xc7,0x8c,0x4b,0x4a,0x8a,0xc2, +0x78,0x28,0x4c,0x61,0x37,0x42,0x3a,0x23,0x56,0x8f,0x66,0x38,0x3b,0x68,0x90,0x54,0x81,0xb9,0x8e,0x71,0x39,0x1a,0x39,0x3e,0x44,0x00,0x00,0x03,0x00,0x70,0xff,0xea,0x02,0xf4,0x04,0x16,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x32,0x40,0x1a,0x0c,0xaf,0x12,0x12,0x1e,0x25,0x00,0xaf,0x06,0x06,0x18,0xaf,0x1e,0x15,0xb0,0x0f,0x0f,0x03, +0x21,0xb0,0x1b,0x16,0x03,0xb0,0x09,0x10,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33, +0x32,0x16,0x01,0x50,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x01,0xa4,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f,0x42,0xfe,0x5c,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x03,0xa8,0x2f,0x41,0x42,0x2e,0x2e,0x40,0x3f,0xfe,0x28,0x2f,0x41,0x42,0x2e,0x2e,0x40,0x3f,0xfe,0x2c,0x2f,0x41,0x42,0x2e,0x2e,0x43,0x42,0x00,0x00,0x02,0x00,0x32, +0x02,0x58,0x02,0x76,0x06,0x02,0x00,0x20,0x00,0x2e,0x00,0x67,0x40,0x3f,0xd7,0x2a,0x01,0x0a,0x1c,0x01,0xea,0x1c,0xfa,0x1c,0x02,0x0a,0x06,0x01,0xeb,0x06,0xfb,0x06,0x02,0x0b,0x05,0x01,0x05,0x02,0x01,0xe5,0x02,0xf5,0x02,0x02,0x10,0x11,0x11,0x00,0x00,0x21,0x10,0x21,0x02,0x21,0x1b,0x29,0x29,0x09,0x1b,0x1b,0x1d,0x25,0x2b,0x04, +0x00,0x25,0x01,0x25,0x16,0x0b,0x11,0x13,0x10,0x0e,0x0e,0x0b,0x01,0x00,0x3f,0x33,0x2f,0x33,0xcd,0x32,0x10,0xdd,0xdc,0x5d,0xdc,0xcd,0x10,0xcd,0x32,0x01,0x2f,0xcd,0x33,0x2f,0x10,0xdc,0x5d,0xcd,0x32,0x2f,0x33,0x31,0x30,0x5d,0x71,0x71,0x5d,0x71,0x5d,0x71,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x34,0x33,0x32, +0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x23,0x22,0x07,0x06,0x15,0x15,0x36,0x33,0x32,0x17,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x36,0x02,0x76,0x4a,0x4f,0x8d,0x89,0x4d,0x48,0xcf,0x26,0x8d,0x20,0x31,0x45,0x2c,0x4f,0x51,0x29,0x93,0x1b,0x35,0x13,0x0d,0x52,0x63,0x8d,0x48,0x42,0x78,0x1d, +0x24,0x65,0x64,0x29,0x21,0xae,0x63,0x26,0x1d,0x03,0x90,0x8a,0x54,0x5a,0x56,0x52,0x87,0x01,0xb0,0xcb,0x2a,0x2a,0x58,0x39,0x2a,0x1f,0x17,0x39,0xbc,0x48,0x55,0x4d,0x89,0x65,0x2a,0x35,0x38,0x2d,0x62,0xcb,0x3b,0x2e,0x00,0x01,0x00,0x28,0xff,0x40,0x04,0x25,0x04,0x18,0x00,0x32,0x00,0x8c,0x40,0x4f,0x96,0x23,0x01,0x1b,0x1c,0x1c, +0x19,0x84,0x1e,0x03,0x00,0x84,0x04,0x07,0x07,0x1e,0x1e,0x28,0x34,0x2c,0x2b,0x2b,0x2a,0x2e,0x0c,0x0d,0x0e,0x2d,0x2d,0x0e,0x0e,0x84,0x28,0x2a,0x14,0x28,0x2a,0xa8,0x2a,0xb8,0x2a,0x02,0x19,0x2a,0x29,0x2a,0x02,0x0a,0x2a,0x01,0x2a,0x1f,0x28,0x01,0x28,0x0c,0x03,0x09,0x95,0x2e,0x31,0x10,0x2a,0x95,0x2d,0x0f,0x16,0x95,0x20,0x25, +0x1c,0x1b,0x1b,0x0e,0x11,0x95,0x28,0x25,0x16,0x00,0x3f,0x33,0xed,0x32,0x33,0x2f,0x33,0x10,0xdc,0xed,0x3f,0xed,0x3f,0x33,0xfd,0xcc,0x33,0x01,0x2f,0x5d,0x33,0x5d,0x5d,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x2f,0x33,0xed,0x32,0x10,0xed,0x33,0x2f, +0x39,0x31,0x30,0x5d,0x01,0x14,0x07,0x07,0x23,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x27,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x04,0x25,0x08,0x0d,0xa8,0x13,0x03,0x33,0x0d, +0x13,0xfe,0x54,0x7c,0x02,0x33,0x0d,0x13,0x01,0x2b,0x4a,0x30,0x40,0x50,0x72,0x7d,0x52,0x33,0x0d,0x13,0xfe,0xd4,0x4e,0x26,0x9f,0x08,0x8d,0xc7,0x1d,0x01,0x6e,0x18,0x01,0x77,0x4a,0x2a,0x9f,0x03,0x64,0x24,0x28,0x41,0x64,0x10,0x0d,0x35,0x05,0x73,0xfd,0xb6,0x09,0x1b,0x35,0x05,0x4d,0x13,0x53,0x41,0x6a,0x99,0x5b,0x57,0x2f,0x31, +0x05,0x51,0x15,0xb4,0x27,0x25,0x02,0x8e,0x8b,0x68,0x6b,0x15,0x00,0x01,0x00,0x28,0xfe,0x1f,0x04,0x4e,0x04,0x00,0x00,0x30,0x00,0x95,0x40,0x54,0x9b,0x17,0x01,0x89,0x17,0x01,0x78,0x17,0x01,0x2f,0x30,0x02,0x00,0x00,0x84,0x30,0x1c,0x14,0x30,0x30,0x1c,0x30,0x1c,0x06,0x84,0x19,0x19,0x1c,0x1c,0x22,0x32,0x27,0x29,0x29,0x84,0x22, +0x24,0x14,0x22,0x22,0x24,0x26,0x25,0x25,0x24,0xa8,0x24,0xb8,0x24,0x02,0x24,0x22,0x10,0x12,0x84,0x0f,0x0d,0x0d,0x1f,0x22,0x01,0x22,0x00,0x30,0x24,0x95,0x27,0x0f,0x2f,0x29,0x2c,0x95,0x10,0x15,0x0f,0x22,0x1c,0x02,0x1f,0x16,0x15,0x95,0x0a,0x1c,0x00,0x3f,0xed,0x3f,0x33,0x33,0x33,0xce,0x11,0x39,0xed,0x32,0x32,0x3f,0xed,0xd4, +0xc4,0x01,0x2f,0x5d,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x2f,0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x01,0x03,0x06,0x15,0x14,0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x17, +0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x26,0x35,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x23,0x37,0x21,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x04,0x4e,0xb8,0x02,0x9c,0xb3,0x84,0xbc,0x93,0xd5,0x47,0x90,0x30,0x84,0x5a,0x65,0x56,0x75,0x9b,0xfe,0x7f,0x48,0x2c,0x9f,0x08,0x8c,0xc7,0x1d,0x01,0x6e,0xae,0x03, +0x33,0x0d,0x13,0x01,0xad,0xa6,0x04,0x00,0xfc,0x95,0x0a,0x0c,0x32,0xba,0x43,0xa7,0x50,0x3a,0x85,0x5f,0x52,0x4e,0x37,0x33,0x27,0x2c,0x3d,0x21,0x2d,0x55,0x2d,0xa9,0x4a,0x70,0x15,0xb4,0x27,0x25,0x02,0x8e,0x8b,0xfc,0xc4,0x0e,0x0f,0x35,0x05,0x73,0x03,0x16,0x00,0x01,0x00,0x28,0xfe,0x1f,0x04,0x30,0x04,0x18,0x00,0x33,0x00,0xbd, +0x40,0x74,0x78,0x15,0x01,0x9a,0x11,0x01,0x89,0x11,0x01,0x30,0x2d,0x2d,0x84,0x1a,0x17,0x14,0x1a,0x1a,0x17,0xd9,0x1a,0x01,0x78,0x1a,0x01,0x1a,0x17,0x00,0x84,0x13,0x13,0x50,0x17,0x60,0x17,0x02,0x17,0x17,0x22,0x35,0x25,0x24,0x24,0x23,0x20,0x27,0x26,0x21,0x26,0x21,0x21,0x84,0x22,0x23,0x14,0x22,0x22,0x23,0xf7,0x23,0x01,0x88, +0x23,0xa8,0x23,0xc8,0x23,0x03,0x79,0x23,0x01,0x47,0x23,0x57,0x23,0x02,0x23,0x22,0x0a,0x0c,0x84,0x09,0x07,0x07,0x1f,0x22,0x01,0x22,0x40,0x0c,0x10,0x48,0x22,0x20,0x1a,0x1d,0x95,0x2d,0x27,0x2a,0x10,0x23,0x95,0x26,0x0f,0x0a,0x09,0x30,0x21,0x17,0x22,0x15,0x0f,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0x33,0xc4,0x33,0xce,0x32,0x3f, +0xed,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x2b,0x5d,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x5d,0x5d,0x5d,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x5d,0x33,0x2f,0xed,0x11,0x33,0x5d,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x05,0x14,0x07, +0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x16,0x04,0x30,0xb3,0x84,0xbc,0x93,0xd5,0x47,0x90,0x30,0x84,0x5a,0x65,0x56,0x75, +0x9b,0x09,0x83,0x03,0x33,0x0d,0x13,0xfe,0x57,0xa6,0xab,0xbe,0xc7,0x1d,0x01,0x6e,0x16,0x01,0x75,0x4a,0x2a,0x9f,0x08,0x87,0x02,0x9c,0xb0,0xa7,0x50,0x3a,0x85,0x5f,0x52,0x4e,0x37,0x33,0x27,0x2c,0x3d,0x21,0x2d,0x55,0x2c,0xa9,0x4b,0x1d,0x2c,0x02,0x86,0x0f,0x0e,0x35,0x05,0x72,0xfc,0xea,0x03,0x75,0x8b,0x67,0x6a,0x15,0xb4,0x26, +0x26,0xfd,0x7d,0x0a,0x0c,0x32,0xba,0x00,0x00,0x02,0x00,0x30,0xff,0xe7,0x04,0xa7,0x06,0x04,0x00,0x39,0x00,0x48,0x00,0xe4,0x40,0x9a,0x84,0x44,0x01,0x75,0x44,0x01,0x66,0x40,0x01,0x45,0x40,0x55,0x40,0x02,0x85,0x3f,0x01,0x8b,0x3d,0x01,0x7c,0x3d,0x01,0x48,0x3d,0x68,0x3d,0x02,0x79,0x3c,0x89,0x3c,0x02,0x48,0x36,0x58,0x36,0x68, +0x36,0x03,0x79,0x1e,0x89,0x1e,0x02,0x99,0x1d,0x01,0x99,0x1a,0x01,0x76,0x17,0x86,0x17,0x02,0x27,0x17,0x01,0x94,0x11,0x01,0x85,0x11,0x01,0x11,0x15,0x0c,0x0f,0x84,0x22,0x97,0x25,0x01,0x25,0x22,0x15,0x83,0x3a,0x03,0x00,0x84,0x04,0x07,0x07,0x89,0x3e,0x01,0x58,0x3e,0x78,0x3e,0x02,0x20,0x3e,0x3a,0x4f,0x22,0x5f,0x22,0x6f,0x22, +0x03,0x22,0x3a,0x22,0x3a,0x1c,0x4a,0x2e,0x31,0x84,0x2d,0x00,0x2a,0x10,0x2a,0x02,0x2a,0x2a,0x42,0x83,0x0f,0x1c,0x1f,0x1c,0x5f,0x1c,0x6f,0x1c,0x04,0x1c,0x25,0x0c,0x28,0x04,0x09,0x95,0x38,0x01,0x3e,0x95,0x20,0x20,0x45,0x28,0x95,0x33,0x2d,0x00,0x45,0x95,0x19,0x16,0x00,0x3f,0xed,0x3f,0xdc,0xed,0x11,0x39,0x2f,0xed,0x3f,0xfd, +0xce,0x12,0x39,0x39,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x5d,0x33,0xed,0x32,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x12,0x39,0x39,0x5d,0x5d,0x32,0x2f,0x33,0xed,0x32,0x10,0xed,0x11,0x33,0x5d,0x10,0xed,0x32,0x11,0x39,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x07, +0x23,0x37,0x36,0x35,0x34,0x23,0x22,0x0f,0x02,0x06,0x15,0x14,0x17,0x16,0x17,0x16,0x15,0x10,0x07,0x06,0x21,0x22,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x37,0x37,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x37,0x33,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x33,0x32,0x01,0x34,0x27,0x26,0x27,0x06,0x07,0x06,0x15,0x14,0x16, +0x33,0x32,0x37,0x36,0x04,0xa7,0x08,0x0d,0xa8,0x13,0x03,0x33,0x10,0x10,0xaa,0x28,0x02,0x53,0x7c,0x1d,0x53,0x9e,0xa6,0xfe,0xf7,0xbd,0xde,0x90,0x93,0xfd,0x1d,0x09,0x15,0x9b,0x44,0x30,0x9f,0x08,0x0d,0xa8,0x13,0x03,0x33,0x10,0x10,0x01,0xf7,0x44,0x30,0x9f,0xfe,0xc9,0x36,0x20,0x53,0xfe,0x84,0x6d,0x89,0x74,0xb9,0x77,0x6b,0x05, +0x50,0x24,0x28,0x41,0x64,0x10,0x0d,0x35,0x05,0x35,0xc3,0x0a,0x0c,0x3c,0x42,0x63,0x25,0x66,0x95,0xfe,0xf7,0xb5,0xc0,0xc9,0xad,0xf8,0xb0,0xb4,0x2e,0x2f,0x38,0x19,0x30,0x71,0x30,0x15,0xb4,0x24,0x28,0x41,0x64,0x10,0x0d,0x35,0x05,0x9c,0x15,0xfc,0x5c,0x5e,0x48,0x2b,0x41,0x1b,0xa8,0x8b,0xbf,0x6d,0x85,0xa3,0x91,0x00,0x00,0x01, +0x00,0x28,0xfe,0x25,0x04,0x25,0x04,0x18,0x00,0x21,0x00,0x90,0x40,0x57,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0xb8,0x10,0xc8,0x10,0x02,0x10,0x0d,0x08,0x84,0x09,0x09,0x0d,0x0d,0x18,0x23,0x1b,0x1a,0x1a,0x19,0x16,0x1d,0x1c,0x17,0x1c,0x17,0x17,0x84,0x18,0x19,0x14,0x18,0x19,0xf7,0x19,0x01,0x88,0x19,0xa8,0x19,0xc8, +0x19,0x03,0x79,0x19,0x01,0x57,0x19,0x01,0x19,0x1f,0x18,0x01,0x18,0x40,0x0c,0x10,0x48,0x18,0x16,0x10,0x13,0x95,0x1d,0x01,0x20,0x10,0x19,0x95,0x1c,0x0f,0x17,0x0d,0x04,0x18,0x15,0x09,0x1b,0x00,0x3f,0x3f,0x33,0x33,0xc4,0x3f,0xed,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x2b,0x5d,0x33,0x5d,0x5d,0x5d,0x5d,0x87,0x2b,0x7d,0x10, +0xc4,0x87,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x2f,0xed,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x04,0x25, +0x08,0x87,0x13,0x01,0x14,0xa4,0x14,0x01,0x14,0x88,0x03,0x33,0x0d,0x13,0xfe,0x57,0xa6,0xab,0xbe,0xc7,0x1d,0x01,0x6e,0x16,0x01,0x75,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfd,0x7e,0x5a,0x45,0x37,0x14,0xfe,0x79,0x01,0x87,0x14,0x34,0x40,0x63,0x02,0xa4,0x0f,0x0e,0x35,0x05,0x72,0xfc,0xea,0x03,0x75,0x8b,0x67,0x6a,0x15,0x00,0x01, +0x00,0x28,0xfe,0x25,0x06,0xc0,0x04,0x18,0x00,0x30,0x00,0xb5,0x40,0x69,0x25,0x24,0x24,0x23,0x20,0x27,0x26,0x21,0x26,0x21,0x21,0x84,0x22,0x23,0x14,0x22,0x23,0xc8,0x23,0x01,0x86,0x23,0x01,0x57,0x23,0x77,0x23,0x02,0x23,0x5f,0x22,0x8f,0x22,0xbf,0x22,0x03,0x22,0x17,0x2c,0x0e,0x0c,0x0c,0x84,0x1a,0x17,0x14,0x1a,0x1a,0x17,0xa8, +0x1a,0xc8,0x1a,0x02,0x1a,0x17,0x12,0x84,0x13,0x13,0x17,0x03,0x01,0x01,0x84,0x06,0x04,0x14,0x06,0x06,0x04,0xb8,0x06,0x01,0x06,0x04,0x17,0x0c,0x06,0x09,0x95,0x2c,0x01,0x2f,0x2f,0x20,0x1a,0x1d,0x95,0x27,0x2a,0x10,0x23,0x95,0x26,0x0f,0x03,0x04,0x21,0x17,0x0e,0x22,0x15,0x13,0x1b,0x00,0x3f,0x3f,0x33,0x33,0xc4,0xd4,0xc4,0x3f, +0xed,0x3f,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcc,0x32,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x01,0x33,0x18,0x2f,0xed,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x33,0x18,0x10,0xdc,0x5d,0x32,0x5d,0x5d,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x31, +0x30,0x01,0x14,0x07,0x03,0x23,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x17,0x25,0x36,0x33,0x32,0x06,0xc0,0x08,0xa5,0xa3,0xa6,0x03,0x33,0x0d,0x13,0xfe,0x56,0x86,0x13, +0x01,0x14,0xa4,0x14,0x01,0x14,0x88,0x03,0x33,0x0d,0x13,0xfe,0x57,0xa6,0xab,0xbe,0xc7,0x1d,0x01,0x6e,0x16,0x01,0x75,0x4a,0x2a,0x84,0x17,0x01,0x8c,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfc,0xe8,0x03,0x3b,0x0f,0x0e,0x35,0x05,0x73,0xfd,0x81,0x5a,0x45,0x37,0x14,0xfe,0x79,0x01,0x87,0x14,0x34,0x40,0x63,0x02,0xa4,0x0f,0x0e,0x35, +0x05,0x72,0xfc,0xea,0x03,0x75,0x8b,0x67,0x6a,0x15,0x86,0x71,0x15,0x00,0x00,0x02,0xff,0x3f,0xff,0xe7,0x04,0x25,0x06,0x04,0x00,0x2d,0x00,0x3f,0x00,0xa4,0x40,0x5e,0x87,0x04,0x01,0x76,0x04,0x01,0x64,0x04,0x01,0x53,0x04,0x01,0x03,0x01,0x01,0x84,0x3f,0x3d,0x14,0x3f,0x3f,0x3d,0x08,0x3f,0x18,0x3f,0x02,0x3f,0x3d,0x3d,0x0b,0x41, +0x1b,0x1d,0x84,0x18,0x34,0x33,0x29,0x28,0x27,0x35,0x27,0x35,0x35,0x84,0x0b,0x0e,0x14,0x0b,0x0b,0x0e,0x1a,0x18,0x18,0x0e,0x39,0x0e,0x01,0x2a,0x0e,0x01,0x0e,0x1f,0x0b,0x01,0x0b,0x3f,0x33,0x30,0x95,0x29,0x01,0x2c,0x10,0x0e,0x11,0x95,0x27,0x24,0x01,0x16,0x95,0x1f,0x1b,0x00,0x3d,0x35,0x38,0x95,0x0b,0x03,0x08,0x16,0x00,0x3f, +0x33,0x33,0xed,0x32,0x32,0x3f,0xde,0xed,0x3f,0x33,0xed,0x32,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x5d,0x33,0x5d,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x01,0x18,0x10,0xed,0x32,0x11,0x12,0x39,0x2f,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x5d,0x5d, +0x5d,0x5d,0x01,0x14,0x07,0x03,0x06,0x07,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x25,0x36,0x33,0x32,0x07,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37, +0x13,0x36,0x04,0x25,0x08,0x6c,0x1f,0xae,0xfe,0x8a,0x53,0x21,0x9f,0x08,0xec,0x03,0x2c,0x0e,0x12,0xbe,0x4d,0x2c,0x90,0x08,0xa3,0x04,0x29,0x0d,0x13,0xbd,0x51,0x23,0x96,0x08,0x51,0x01,0x75,0x4a,0x2a,0x9f,0xa7,0x33,0x0d,0x13,0xfe,0x57,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x6e,0x03,0x03,0x64,0x26,0x26,0xfe,0x03,0x94, +0x2c,0x5f,0x15,0xb4,0x27,0x25,0x04,0x4a,0x10,0x0d,0x2b,0x05,0x34,0x15,0x96,0x21,0x22,0x15,0x0e,0x28,0x05,0x31,0x15,0xaa,0x27,0x25,0xfe,0x8b,0x6a,0x15,0xc0,0x35,0x05,0x72,0xfd,0xae,0x0e,0x0f,0x35,0x05,0x63,0x0e,0x33,0x02,0x20,0x0f,0x00,0x02,0x00,0x5b,0xff,0xa7,0x06,0xc3,0x04,0x58,0x00,0x3a,0x00,0x4c,0x00,0xf0,0x40,0x85, +0x88,0x2c,0x98,0x2c,0x02,0x87,0x1c,0x01,0x76,0x1b,0x86,0x1b,0x96,0x1b,0x03,0x97,0x07,0x01,0x1d,0x1c,0x1c,0x18,0x16,0x36,0x01,0x07,0x36,0x01,0x36,0x16,0x49,0x4a,0x4b,0x4c,0x18,0x16,0x16,0x84,0x4c,0x20,0x14,0x4c,0x4c,0x20,0x4c,0x20,0x40,0x41,0x42,0x31,0x31,0x42,0x42,0x84,0x26,0x29,0x14,0x26,0x26,0x29,0x2e,0x2d,0x2d,0x29, +0x29,0x5f,0x26,0x01,0x26,0x20,0x09,0x08,0x08,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0x10,0x50,0x0d,0x01,0x0d,0x20,0x4c,0x40,0x29,0x3d,0x95,0x34,0x16,0x10,0x13,0x95,0x36,0x01,0x39,0x39,0x34,0x2d,0x2e,0x2e,0x31,0x34,0x10,0x49,0x42,0x45,0x95,0x23,0x0d,0x08,0x04,0x09,0x09,0x96,0x1c,0x01,0x1c,0x1d,0x1d,0x23,0x26, +0x26,0x20,0x18,0x23,0x16,0x00,0x3f,0x33,0x33,0x33,0x2f,0x11,0x33,0x2f,0x33,0x5d,0x33,0x2f,0x33,0x33,0x33,0x10,0xed,0x32,0x32,0x3f,0x33,0x33,0x2f,0x33,0x11,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x10,0xed,0x32,0x32,0x32,0x01,0x2f,0xcc,0x5d,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x10,0xcc,0x5d,0x32,0x11, +0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0x11,0x01,0x33,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0xc4,0x05,0xc4,0x11,0x01,0x33,0x5d,0x5d,0x11,0x33,0x18,0x2f,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x35,0x34,0x37,0x13,0x36,0x35, +0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x17,0x25,0x36,0x33,0x32,0x05,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x13,0x36,0x06,0xc3,0x08,0x81,0x04, +0x15,0x63,0x53,0x90,0x3f,0x07,0x86,0x03,0x33,0x0d,0x13,0xfe,0x53,0x80,0x04,0x15,0x63,0x53,0x90,0x34,0x09,0xfe,0x7e,0x53,0x21,0x9f,0x08,0x83,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0x01,0x7e,0x4b,0x29,0x84,0x17,0x01,0x8f,0x4b,0x29,0x9f,0xfc,0xbb,0x33,0x0d,0x13,0xfe,0x57,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x6e,0x03, +0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1b,0x22,0x02,0x86,0x0e,0x0f,0x35,0x05,0x73,0xfd,0x9f,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x22,0x39,0x62,0x15,0xb4,0x27,0x25,0x02,0x64,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0x85,0x70,0x15,0xc0,0x35,0x05,0x72,0xfd,0xae,0x0e,0x0f, +0x35,0x05,0x63,0x0e,0x33,0x02,0x20,0x0f,0x00,0x01,0x00,0x28,0x00,0x00,0x03,0xa4,0x04,0x00,0x00,0x1f,0x00,0x52,0x40,0x2f,0x03,0x01,0x01,0x84,0x06,0x04,0x14,0x06,0x06,0x04,0xd8,0x06,0x01,0x06,0x00,0x04,0x01,0x04,0x04,0x21,0x15,0x17,0x84,0x14,0x13,0x12,0x10,0x0e,0x95,0x0f,0x19,0x1f,0x19,0x02,0x19,0x06,0x09,0x95,0x01,0x1e, +0x12,0x95,0x15,0x0f,0x03,0x04,0x15,0x00,0x3f,0xc4,0x3f,0xed,0xde,0x32,0xed,0x32,0xdc,0x5d,0xed,0x01,0x2f,0x33,0xce,0x32,0xed,0x32,0x12,0x39,0x2f,0x5d,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x14,0x07,0x03,0x23,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x23,0x37,0x21,0x06,0x15, +0x14,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x03,0xa4,0x08,0x8a,0xa3,0x8e,0x03,0x2c,0x0e,0x12,0xbe,0x4d,0x2c,0x90,0x02,0xc7,0x1d,0x01,0x6e,0x1f,0x29,0x0d,0x13,0xbd,0x51,0x23,0x96,0x02,0xec,0x25,0x27,0xfd,0x60,0x02,0xc3,0x0f,0x0e,0x2b,0x05,0x34,0x15,0x96,0x12,0x10,0x8b,0x78,0x15,0x28,0x05,0x31,0x15,0x00,0x00,0x02,0x00,0x59, +0xfe,0x25,0x04,0x25,0x05,0xec,0x00,0x27,0x00,0x37,0x00,0x95,0x40,0x4e,0x36,0x35,0x0f,0x0e,0x0d,0x04,0x01,0x01,0x84,0x37,0x0d,0x14,0x37,0x37,0x0d,0x37,0x0d,0x08,0x84,0x09,0x09,0x0d,0x0d,0x15,0x39,0x2e,0x2d,0x23,0x22,0x21,0x2f,0x21,0x2f,0x2f,0x84,0x15,0x18,0x14,0x15,0x15,0x18,0x1d,0x84,0x1c,0x1c,0x18,0x87,0x18,0x01,0x18, +0x1f,0x15,0x01,0x15,0x37,0x2d,0x2a,0x95,0x23,0x21,0x18,0x01,0x26,0x10,0x1c,0x00,0x35,0x2f,0x32,0x95,0x15,0x0f,0x0d,0x04,0x12,0x16,0x09,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x5d,0x33,0x5d,0x11,0x33,0x2f,0xed,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e, +0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x2f,0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x31,0x30,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13, +0x16,0x15,0x14,0x07,0x07,0x25,0x36,0x33,0x32,0x07,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x36,0x04,0x25,0x09,0x99,0x13,0x01,0x0c,0xa4,0x0c,0x01,0x14,0x03,0xfe,0x89,0x4a,0x2a,0x9f,0x09,0x99,0x13,0x01,0x14,0xa4,0x14,0x01,0x14,0x03,0x01,0x77,0x4a,0x2a,0x9f,0xa7,0x33,0x0d,0x13,0xfe,0x54,0x7c, +0x03,0x33,0x0d,0x13,0x01,0xac,0x7c,0x03,0x03,0x64,0x22,0x2a,0xfd,0x3b,0x58,0x59,0x09,0x1d,0xfe,0xa9,0x01,0x50,0x16,0x0e,0x35,0x85,0x14,0x6b,0x15,0xb4,0x22,0x2a,0x02,0xc5,0x58,0x59,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x35,0x85,0x14,0x6b,0x15,0xc0,0x35,0x05,0x73,0xfd,0xaf,0x0e,0x0f,0x35,0x05,0x73,0x02,0x51,0x0e,0x00, +0x00,0x02,0x00,0x31,0xff,0xa7,0x06,0xbe,0x04,0x58,0x00,0x30,0x00,0x42,0x00,0xd9,0x40,0x7c,0x79,0x22,0x01,0x87,0x07,0x01,0x76,0x07,0x01,0x24,0x23,0x23,0x1f,0x27,0x1b,0x1c,0x1c,0x84,0x1d,0x1f,0x14,0x1d,0x1f,0x7a,0x1f,0x8a,0x1f,0x9a,0x1f,0x03,0x1f,0x1d,0x12,0x07,0x2c,0x17,0x2c,0x02,0x2c,0x36,0x38,0x38,0x84,0x12,0x15,0x14, +0x12,0x12,0x15,0x15,0x12,0x09,0x08,0x08,0x04,0x41,0x40,0x3f,0x0c,0x42,0x0c,0x97,0x04,0x01,0x04,0x01,0x01,0x84,0x42,0x0c,0x14,0x42,0x42,0x0c,0x42,0x0c,0x12,0x42,0x36,0x33,0x95,0x2c,0x01,0x2f,0x2f,0x2a,0x9a,0x23,0x01,0x8b,0x23,0x01,0x23,0x24,0x24,0x1b,0x15,0x18,0x95,0x27,0x1f,0x2a,0x10,0x1c,0x1d,0x15,0x3f,0x38,0x3b,0x95, +0x0f,0x85,0x08,0x95,0x08,0x02,0x08,0x09,0x09,0x12,0x0c,0x04,0x0f,0x16,0x00,0x3f,0x33,0x33,0x33,0x33,0x2f,0x33,0x5d,0x10,0xed,0x32,0x32,0x3f,0xc4,0x3f,0x33,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0x5d,0x5d,0x11,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcc,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x5d,0x10,0x87,0xc4,0x0e, +0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x5d,0x18,0x10,0xdc,0x32,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x11,0x33,0x18,0x2f,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35, +0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x17,0x25,0x36,0x33,0x32,0x07,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x13,0x36,0x06,0xbe,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x34,0x09,0xfe,0x7e,0x53,0x21,0x9f,0x08,0x80,0x02,0x33, +0x0d,0x13,0xfe,0x57,0xa6,0xab,0xb5,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0x01,0x7e,0x4b,0x29,0x83,0x18,0x01,0x8a,0x4b,0x29,0x9f,0xa7,0x33,0x0d,0x13,0xfe,0x57,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x6e,0x03,0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x21,0x3a,0x62,0x15,0xb4,0x27,0x25,0x02,0x54, +0x09,0x14,0x35,0x05,0x72,0xfc,0xea,0x03,0x4b,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0x83,0x6e,0x15,0xc0,0x35,0x05,0x72,0xfd,0xae,0x0e,0x0f,0x35,0x05,0x63,0x0e,0x33,0x02,0x20,0x0f,0x00,0x00,0x02,0x00,0x30,0xff,0xe7,0x05,0x4c,0x06,0x04,0x00,0x30,0x00,0x3d,0x00,0xcc,0x40,0x7d,0x56,0x3c,0x01,0x95,0x38,0x01, +0x87,0x38,0x01,0x89,0x35,0x01,0x95,0x0e,0x01,0x46,0x0e,0x56,0x0e,0x02,0x8a,0x07,0x01,0x21,0x23,0x84,0x20,0x1e,0x1e,0x14,0x00,0x01,0x01,0x2d,0x31,0x12,0x13,0x14,0x3d,0x14,0x2e,0x2f,0x05,0x06,0x2d,0x06,0x2d,0x2d,0x84,0x14,0x3d,0x14,0x14,0x14,0x3d,0x14,0x3d,0x3d,0x3f,0x37,0x83,0x0c,0x1c,0x95,0x0f,0x25,0x1f,0x25,0x02,0x25, +0x14,0x17,0x95,0x2d,0x2a,0x01,0x20,0x00,0x05,0x31,0x33,0x54,0x00,0x64,0x00,0x02,0x45,0x00,0x01,0x16,0x00,0x26,0x00,0x36,0x00,0x03,0x07,0x00,0x01,0x66,0x2f,0x01,0x12,0x2f,0x00,0x03,0x10,0x01,0x01,0x33,0x95,0x20,0x10,0x01,0x10,0x10,0x47,0x3d,0x01,0x3d,0x39,0x95,0x06,0x0a,0x16,0x00,0x3f,0x33,0xed,0x32,0x5d,0x3f,0x5d,0xed, +0x32,0x2f,0x12,0x17,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x12,0x39,0x39,0x3f,0x3f,0x33,0xed,0x32,0xdc,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x0e,0xc4,0x10,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x00,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x01,0x07,0x26,0x27,0x26,0x27,0x03,0x06,0x07,0x06,0x23,0x20,0x11,0x10,0x37,0x36,0x21,0x32,0x17,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x16,0x05,0x26,0x23,0x20,0x07,0x06,0x15,0x14,0x33,0x32,0x37, +0x36,0x37,0x05,0x4c,0x25,0x1c,0x20,0x4d,0x51,0x7e,0x21,0xc3,0x98,0xa8,0xfe,0x85,0xee,0xf7,0x01,0x75,0x27,0x1b,0x3c,0x03,0x2c,0x0e,0x12,0xbe,0x4d,0x2c,0x90,0x08,0xa3,0x04,0x29,0x0d,0x13,0xbd,0x51,0x23,0x96,0x08,0x3b,0x83,0xfe,0xc0,0x1f,0x1a,0xfe,0xe3,0xc8,0xbb,0xee,0x59,0x73,0x8d,0x10,0x03,0x9b,0xa2,0x15,0x12,0x2d,0x1b, +0xfd,0xb3,0x9c,0x55,0x43,0x01,0x7a,0x01,0x1f,0xc9,0xd0,0x02,0x01,0x1a,0x0e,0x0f,0x2b,0x05,0x34,0x15,0x96,0x21,0x22,0x15,0x0e,0x28,0x05,0x31,0x15,0xaa,0x27,0x25,0xfe,0xee,0x23,0x4f,0x03,0xaf,0xa4,0xcc,0xfb,0x2d,0x36,0x4c,0x00,0x01,0x00,0x31,0x00,0x00,0x04,0x8d,0x06,0x04,0x00,0x33,0x00,0x9e,0x40,0x59,0x03,0x00,0x84,0x06, +0x18,0x15,0x15,0x84,0x24,0x21,0x14,0x24,0x24,0x21,0x04,0x06,0x06,0x24,0x24,0x21,0x1c,0x84,0x1d,0x1d,0x00,0x21,0x01,0x21,0x21,0x2c,0x35,0x2a,0x0f,0x0e,0x2b,0x0e,0x2b,0x2b,0x84,0x2c,0x2d,0x14,0x2c,0x2d,0x08,0x2d,0x01,0x2d,0x2c,0x2f,0x03,0x01,0x03,0x03,0x12,0x19,0x0e,0x01,0x0e,0x09,0x95,0x77,0x2d,0x01,0x26,0x2d,0x01,0x19, +0x2d,0x01,0x2d,0x32,0x01,0x21,0x27,0x18,0x12,0x1d,0x2b,0x2c,0x15,0x2a,0x24,0x27,0x95,0x15,0x0f,0x12,0x10,0x00,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0xc4,0xc4,0x11,0x39,0x11,0x39,0x3f,0x33,0x5d,0x5d,0x5d,0xed,0x32,0x5d,0x11,0x39,0x2f,0x5d,0x01,0x2f,0x33,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x11,0x12,0x01,0x39,0x18, +0x2f,0x5d,0x33,0x2f,0xed,0x11,0x33,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xed,0x32,0x31,0x30,0x01,0x14,0x07,0x07,0x23,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x06,0x07,0x03,0x25,0x36,0x33,0x32,0x15,0x14,0x07,0x07,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x36,0x35,0x34,0x23, +0x22,0x07,0x05,0x03,0x23,0x01,0x36,0x37,0x25,0x36,0x33,0x32,0x04,0x8d,0x08,0x0e,0xa8,0x14,0x03,0x33,0x0d,0x13,0xfe,0x89,0x37,0x0a,0x3e,0x01,0x75,0x4a,0x2a,0x9f,0x08,0x27,0x13,0x03,0x12,0xa4,0x12,0x03,0x14,0x28,0x03,0x33,0x0d,0x13,0xfe,0x57,0xa6,0xab,0x01,0x06,0x1f,0xae,0x01,0x76,0x53,0x21,0x9f,0x05,0x50,0x27,0x25,0x41, +0x64,0x0f,0x0e,0x35,0x05,0x63,0x0f,0x32,0xfe,0xc9,0x6a,0x15,0xb4,0x2a,0x22,0xa7,0x51,0x44,0x30,0x3d,0xfe,0x91,0x01,0x6f,0x3d,0x2d,0x34,0x65,0xc9,0x0f,0x0e,0x35,0x05,0x72,0xfc,0xea,0x04,0xd0,0x94,0x2c,0x5f,0x15,0x00,0x01,0x00,0x5b,0xff,0xa7,0x06,0xea,0x04,0x58,0x00,0x35,0x00,0xba,0x40,0x67,0x96,0x05,0x01,0x07,0x87,0x06, +0x01,0x06,0x06,0x96,0x02,0x01,0x87,0x02,0x01,0x02,0x00,0x00,0x84,0x35,0x34,0x14,0x35,0x35,0x34,0x35,0x0a,0x50,0x34,0x01,0x34,0x2a,0x2c,0x2e,0x2e,0x84,0x2a,0x2b,0x14,0x2a,0x2a,0x2b,0x2b,0x2a,0x21,0x24,0x24,0x84,0x15,0x18,0x14,0x15,0x15,0x18,0x1d,0x1c,0x1c,0x18,0x99,0x18,0x01,0x08,0x18,0x01,0x18,0x5f,0x15,0x01,0x15,0x0f, +0x2a,0x00,0x35,0x2b,0x1c,0x1d,0x1d,0x2c,0x21,0x18,0x2b,0x0f,0x34,0x2e,0x31,0x95,0x0d,0x2a,0x24,0x27,0x95,0x15,0x0f,0x12,0x12,0x0d,0x06,0x07,0x07,0x0a,0x02,0x0d,0x16,0x00,0x3f,0x33,0x33,0x33,0x2f,0x33,0x11,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x10,0xed,0x32,0x32,0x3f,0x33,0x33,0xc4,0x33,0x2f,0x33,0x10,0xd4,0xc4,0x01,0x2f, +0x33,0xcc,0x5d,0x32,0x5d,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x01,0x33,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xcc,0x5d,0x32,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x5d,0x5d,0x32,0x18,0x2f,0x5d,0x33,0x31,0x30,0x5d,0x01,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23, +0x22,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x33,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x06,0xea,0xb2,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0xfe,0x82,0x4b,0x29,0x84,0x17,0xfe,0x71,0x4b,0x29,0x9f,0x08,0x81,0x04, +0x15,0x63,0x53,0x90,0x3f,0x07,0x86,0x03,0x33,0x0d,0x13,0x01,0xad,0xa6,0xa7,0xac,0x03,0x33,0x0d,0x13,0x01,0xa9,0xa5,0x04,0x00,0xfc,0xb4,0x18,0x04,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0x85,0x70,0x15,0xb4,0x26,0x26,0x02,0x64,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1b,0x22,0xfd,0x7a,0x0e,0x0f,0x35,0x05,0x73, +0x03,0x16,0xfc,0xc4,0x0e,0x0f,0x35,0x05,0x72,0x03,0x17,0x00,0x00,0x01,0x00,0x28,0xff,0xa7,0x05,0xa2,0x04,0x18,0x00,0x36,0x00,0x8e,0x40,0x4e,0x86,0x05,0x01,0x07,0x06,0x06,0x02,0x00,0x00,0x84,0x36,0x35,0x14,0x36,0x36,0x35,0x36,0x0a,0x35,0x35,0x10,0x38,0x20,0x22,0x84,0x1d,0xa7,0x2c,0x01,0x2c,0x2f,0x2f,0x84,0x10,0x13,0x14, +0x10,0x10,0x13,0x1f,0x1d,0x1d,0x13,0xd8,0x13,0x01,0x13,0x10,0x00,0x36,0x0f,0x1b,0x95,0x24,0x13,0x16,0x95,0x2c,0x29,0x10,0x1f,0x0f,0x35,0x2f,0x32,0x95,0x0d,0x94,0x06,0x01,0x06,0x07,0x07,0x10,0x0a,0x02,0x0d,0x16,0x00,0x3f,0x33,0x33,0x33,0x33,0x2f,0x33,0x5d,0x10,0xed,0x32,0x32,0x3f,0x3f,0x33,0xed,0x32,0xdc,0xed,0x3f,0xc4, +0x01,0x2f,0x33,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x5d,0x18,0x10,0xed,0x32,0x11,0x12,0x39,0x2f,0x33,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x31,0x30,0x5d,0x01,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22, +0x07,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x05,0xa2,0xb2,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0xfe,0x86,0x4a,0x30,0x9f,0x08,0x81,0x03,0x2c,0x0e,0x12,0xbe,0x4d,0x2c,0x90,0x08,0xa3,0x04,0x29,0x0d,0x13,0xbd,0x51, +0x23,0x96,0x08,0x81,0x03,0x33,0x13,0x13,0x01,0xa8,0xa5,0x04,0x00,0xfc,0xb4,0x18,0x04,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0xb4,0x26,0x26,0x02,0x5e,0x0e,0x0f,0x2b,0x05,0x34,0x15,0x96,0x21,0x22,0x15,0x0e,0x28,0x05,0x31,0x15,0xaa,0x26,0x26,0xfd,0xa2,0x0e,0x0f,0x35,0x05,0x72,0x03,0x17,0x00,0x01,0x00,0x28,0xfe,0x25, +0x05,0xa2,0x04,0x18,0x00,0x39,0x00,0x88,0x40,0x48,0x0c,0x0d,0x38,0x39,0x02,0x00,0x00,0x84,0x39,0x0b,0x14,0x39,0x39,0x0b,0x39,0x0b,0x06,0x84,0x07,0x07,0x0b,0x0b,0x13,0x3b,0x23,0x25,0x84,0x20,0x2f,0x32,0x32,0x84,0x13,0x16,0x14,0x13,0x13,0x16,0x22,0x20,0x20,0x16,0x16,0x13,0x00,0x39,0x0f,0x1e,0x95,0x27,0x16,0x19,0x95,0x2c, +0x2f,0x2c,0x22,0x22,0x2c,0x10,0x38,0x32,0x35,0x95,0x13,0x0d,0x0b,0x02,0x10,0x16,0x07,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x3f,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0xdc,0xed,0x3f,0xc4,0x01,0x2f,0x33,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xed,0x32,0x11,0x12,0x39,0x2f,0x33,0x2f, +0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0xc4,0xc4,0x0e,0xc4,0x31,0x30,0x01,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x15,0x14, +0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x05,0xa2,0xc3,0x11,0x01,0x0c,0xa4,0x0c,0x01,0x14,0x05,0xfe,0x85,0x4a,0x30,0x9f,0x08,0x81,0x03,0x2c,0x0e,0x12,0xbe,0x4d,0x2c,0x90,0x08,0xa3,0x04,0x29,0x0d,0x13,0xbd,0x51,0x23,0x96,0x08,0x81,0x03,0x33,0x13,0x13,0x01,0xa8,0xa5,0x04,0x00,0xfc,0x53,0x52,0x5f,0x09,0x1d,0xfe, +0xa9,0x01,0x4e,0x18,0x0e,0x61,0x59,0x14,0x6b,0x15,0xb4,0x26,0x26,0x02,0x5e,0x0e,0x0f,0x2b,0x05,0x34,0x15,0x96,0x21,0x22,0x15,0x0e,0x28,0x05,0x31,0x15,0xaa,0x26,0x26,0xfd,0xa2,0x0e,0x0f,0x35,0x05,0x72,0x03,0x17,0x00,0x01,0x00,0x59,0xff,0xa7,0x06,0xbc,0x05,0xec,0x00,0x3b,0x00,0xc6,0x40,0x6e,0x96,0x07,0x01,0x31,0x84,0x30, +0x30,0x19,0x2a,0x2b,0x2c,0x18,0x2c,0x16,0x37,0x36,0x35,0x17,0x35,0x17,0x17,0x84,0x18,0x2c,0x14,0x18,0x18,0x2c,0x57,0x2c,0x01,0x2c,0x18,0x22,0x24,0x24,0x84,0x1f,0x21,0x14,0x1f,0x21,0x38,0x21,0x01,0x09,0x21,0x01,0x21,0x6f,0x1f,0x01,0x1f,0x18,0x09,0x08,0x08,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0x28,0x10,0x01, +0x10,0x20,0x0d,0x50,0x0d,0x02,0x0d,0x18,0x16,0x10,0x13,0x95,0x37,0x35,0x2c,0x01,0x3a,0x10,0x31,0x30,0x00,0x22,0x21,0x0f,0x2a,0x24,0x27,0x95,0x1f,0x19,0x1c,0x16,0x0d,0x08,0x04,0x09,0x09,0x17,0x18,0x15,0x00,0x3f,0xc4,0x33,0x2f,0x33,0x33,0x33,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0xc4,0x3f,0xc4,0x3f,0x33,0x33,0x33,0x33,0xed, +0x32,0x32,0x01,0x2f,0xcc,0x5d,0x32,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x10,0xdc,0x5d,0x32,0x5d,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x11,0x01,0x33,0x5d,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x10,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x01,0x33,0x18,0x2f,0xed,0x31,0x30,0x5d,0x01,0x14, +0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x33,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x07,0x25,0x36,0x33,0x32,0x06,0xbc,0x08,0x81,0x04,0x15, +0x63,0x53,0x90,0x3f,0x07,0x86,0x03,0x33,0x0d,0x13,0xfe,0x54,0xa8,0xa6,0x16,0xfe,0x8e,0x4a,0x2a,0x9f,0x08,0xa5,0xa3,0xa6,0x03,0x33,0x0e,0x12,0x01,0xa7,0x98,0x13,0x01,0x14,0xa4,0x14,0x01,0x14,0x03,0x01,0x77,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1b,0x22,0x02,0x86,0x0e, +0x0f,0x35,0x05,0x73,0xfc,0xeb,0x65,0x69,0x15,0xb4,0x26,0x26,0x03,0x19,0xfc,0xc4,0x0f,0x0e,0x35,0x05,0x72,0x02,0xc3,0x58,0x59,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x35,0x85,0x14,0x6b,0x15,0x00,0x01,0x00,0x59,0xff,0xa7,0x04,0x4c,0x05,0xec,0x00,0x26,0x00,0x7d,0x40,0x45,0x07,0x06,0x06,0x02,0x00,0x00,0x84,0x26,0x25,0x14, +0x26,0x26,0x25,0x18,0x26,0x01,0x26,0x0a,0x25,0x25,0x10,0x28,0x1c,0x1f,0x1f,0x84,0x10,0x13,0x14,0x10,0x10,0x13,0x18,0x84,0x17,0x17,0x13,0x08,0x13,0x28,0x13,0x38,0x13,0x03,0x13,0x1f,0x10,0x01,0x10,0x1c,0x13,0x00,0x26,0x0f,0x17,0x00,0x25,0x1f,0x22,0x95,0x0d,0x06,0x02,0x07,0x07,0x10,0x0a,0x0d,0x16,0x00,0x3f,0x33,0x33,0x33, +0x2f,0x33,0x33,0x10,0xed,0x32,0x32,0x3f,0x3f,0xc4,0x33,0x33,0x01,0x2f,0x5d,0x33,0x5d,0x11,0x33,0x2f,0xed,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x31,0x30,0x01,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23,0x22, +0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x04,0x4c,0xb2,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0xfe,0x86,0x4a,0x30,0x9f,0x08,0x97,0x14,0x01,0x14,0xa4,0x14,0x01,0x14,0x9c,0x03,0x33,0x13,0x13,0x01,0xa8,0xa5,0x04,0x00,0xfc,0xb4,0x18,0x04,0x17,0x0f, +0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0xb4,0x26,0x26,0x02,0xc5,0x5e,0x53,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x5b,0x5f,0xfd,0x18,0x0e,0x0f,0x35,0x05,0x72,0x03,0x17,0x00,0x00,0x02,0x00,0x42,0xfe,0x1f,0x04,0x25,0x04,0x58,0x00,0x27,0x00,0x39,0x00,0xab,0x40,0x64,0x86,0x0e,0x01,0x75,0x0e,0x01,0x88,0x04,0x01,0x03,0x01,0x01, +0x84,0x39,0x37,0x14,0x39,0x39,0x37,0x18,0x39,0x01,0x09,0x39,0x01,0x39,0x37,0x12,0x13,0x13,0x37,0x37,0x18,0x3b,0x23,0x0a,0x2d,0x2f,0x2f,0x84,0x18,0x1b,0x14,0x18,0x18,0x1b,0x20,0x1f,0x1f,0x1b,0x09,0x1b,0x01,0x1b,0x1f,0x18,0x3f,0x18,0x02,0x18,0x39,0x2d,0x2a,0x95,0x26,0x1f,0x1b,0x20,0x20,0x23,0x01,0x26,0x10,0x5a,0x13,0x6a, +0x13,0x9a,0x13,0x03,0x13,0x15,0x12,0x12,0x10,0x95,0x15,0x1c,0x37,0x2f,0x32,0x95,0x18,0x0a,0x79,0x03,0x01,0x03,0x08,0x16,0x00,0x3f,0x33,0x5d,0x33,0x33,0xed,0x32,0x32,0x3f,0xed,0x32,0x2f,0x12,0x39,0x5d,0x3f,0x33,0x33,0x33,0x2f,0x33,0x33,0x10,0xed,0x32,0x32,0x01,0x2f,0x5d,0x33,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d, +0x10,0xc4,0x01,0x33,0x32,0x11,0x12,0x39,0x18,0x2f,0x33,0x2f,0x33,0x11,0x33,0x5d,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x03,0x06,0x07,0x05,0x06,0x23,0x22,0x27,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x07,0x06,0x23,0x20,0x11,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16, +0x17,0x25,0x36,0x33,0x32,0x07,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x13,0x36,0x04,0x25,0x08,0x6c,0x1f,0xae,0xfe,0x8a,0x53,0x21,0x08,0x0b,0x02,0x5a,0x53,0xb6,0xcd,0xb2,0x23,0xb1,0xbd,0xfe,0x0c,0x21,0x83,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0x01,0x7e,0x4b,0x29,0x9f,0xa7,0x33,0x0d,0x13, +0xfe,0x57,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x6e,0x03,0x03,0x64,0x26,0x26,0xfe,0x03,0x94,0x2c,0x5f,0x15,0x01,0x18,0x08,0x9e,0x44,0x3f,0x4c,0xa3,0x31,0x01,0xa9,0x85,0x9a,0x02,0x64,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x25,0x3f,0x6b,0x15,0xc0,0x35,0x05,0x72,0xfd,0xae,0x0e,0x0f,0x35,0x05,0x63,0x0e,0x33,0x02,0x20, +0x0f,0x00,0x00,0x01,0x00,0x5b,0xfe,0x25,0x06,0xea,0x05,0xec,0x00,0x42,0x00,0xb9,0x40,0x64,0x31,0x33,0x33,0x84,0x2f,0x30,0x14,0x2f,0x2f,0x30,0x30,0x2f,0x26,0x29,0x29,0x84,0x1a,0x1d,0x14,0x1a,0x1a,0x1d,0x22,0x21,0x21,0x1d,0x1d,0x5f,0x1a,0x8f,0x1a,0x02,0x1a,0x2f,0x40,0x84,0x3f,0x3f,0x0e,0x0f,0x39,0x3a,0x3b,0x04,0x01,0x01, +0x84,0x3b,0x0d,0x14,0x3b,0x3b,0x0d,0x68,0x3b,0x01,0x3b,0x0d,0x08,0x84,0x09,0x09,0x60,0x0d,0x01,0x0d,0x14,0x2f,0x3f,0x00,0x26,0x21,0x1d,0x22,0x22,0x3b,0x31,0x01,0x30,0x0f,0x39,0x33,0x36,0x95,0x12,0x2f,0x29,0x2c,0x95,0x1a,0x14,0x17,0x17,0x0f,0x0d,0x04,0x12,0x16,0x09,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0x2f,0x33,0x33, +0xed,0x32,0x32,0x10,0xed,0x32,0x32,0x3f,0x33,0xc4,0x33,0x33,0x2f,0x33,0x33,0x33,0x3f,0x01,0x2f,0x33,0xcc,0x5d,0x32,0x2f,0xed,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x01,0x33,0x18,0x2f,0xed,0x10,0xcc,0x5d,0x32,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x01,0x33, +0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x05,0x06,0x23,0x22,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x33,0x03,0x06,0x15,0x14,0x33, +0x32,0x37,0x25,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x06,0xea,0x13,0xb2,0x11,0x01,0x0c,0xa4,0x0c,0x01,0x14,0x05,0xfe,0x83,0x4a,0x2a,0x84,0x17,0xfe,0x71,0x4b,0x29,0x9f,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x3f,0x07,0x86,0x03,0x33,0x0d,0x13,0x01,0xad,0xa6,0xa7,0xac,0x03,0x33,0x0d,0x13,0x01,0xa9,0x96,0x14,0x01,0x14, +0xa4,0x14,0x01,0x04,0x66,0x5f,0x5b,0xfc,0xa7,0x52,0x5f,0x09,0x1d,0xfe,0xa9,0x01,0x4d,0x19,0x0e,0x61,0x59,0x14,0x6b,0x15,0x85,0x70,0x15,0xb4,0x26,0x26,0x02,0x64,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1b,0x22,0xfd,0x7a,0x0e,0x0f,0x35,0x05,0x73,0x03,0x16,0xfc,0xc4,0x0e,0x0f,0x35,0x05,0x72,0x02,0xc3,0x5e,0x53,0x14, +0x12,0x01,0x69,0xfe,0x97,0x12,0x00,0x03,0x00,0x5b,0xfe,0x25,0x06,0xbe,0x04,0x58,0x00,0x32,0x00,0x3e,0x00,0x50,0x01,0x06,0x40,0x94,0x25,0x2e,0x01,0x06,0x2e,0x16,0x2e,0x02,0x2e,0x38,0x18,0x4d,0x4e,0x4f,0x50,0x17,0x50,0x0d,0x38,0x0e,0x38,0x0e,0x0e,0x84,0x17,0x50,0x14,0x17,0x17,0x50,0x50,0x17,0x16,0x29,0x26,0x29,0x02,0x07, +0x29,0x01,0x29,0x44,0x46,0x46,0x84,0x1e,0x21,0x14,0x1e,0x1e,0x21,0x26,0x25,0x25,0x21,0x21,0x1e,0x17,0x12,0x84,0x13,0x13,0x17,0x09,0x08,0x08,0x04,0x3b,0x3c,0x3d,0x3e,0x04,0x01,0x01,0x84,0x3e,0x0c,0x14,0x3e,0x3e,0x0c,0x3e,0x20,0x0c,0x50,0x0c,0x02,0x0c,0x17,0x50,0x44,0x41,0x95,0x2c,0x3e,0x38,0x35,0x95,0x2e,0x01,0x31,0x31, +0x2c,0x25,0x21,0x26,0x26,0x29,0x2c,0x10,0x4d,0x46,0x39,0x49,0x95,0x1b,0x7b,0x3b,0x01,0x3b,0xa9,0x0c,0x01,0x9a,0x0c,0x01,0x7b,0x0c,0x8b,0x0c,0x02,0x0c,0x96,0x08,0x01,0x08,0x04,0x09,0x09,0x1e,0x18,0x17,0x0e,0x0d,0x1b,0x16,0x13,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0x33,0x33,0x2f,0x33,0x33,0x5d,0x33,0x5d,0x5d,0x5d,0x33, +0x5d,0x10,0xed,0x32,0x32,0x32,0x3f,0x33,0x33,0x2f,0x33,0x33,0x11,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x10,0xed,0x32,0x32,0x01,0x2f,0xcd,0x5d,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0xc4,0x05,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x33,0x2f,0xed,0x10,0xcc,0x32,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4, +0x01,0x32,0x5d,0x5d,0x11,0x33,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0x10,0x87,0x0e,0xc4,0xc4,0x05,0xc4,0xc4,0x11,0x01,0x33,0x5d,0x5d,0x31,0x30,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36, +0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x17,0x25,0x36,0x33,0x32,0x07,0x34,0x23,0x22,0x07,0x05,0x03,0x25,0x36,0x37,0x13,0x36,0x25,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x13,0x36,0x06,0xbe,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x34,0x09,0xfd,0xf4,0x03,0x01,0x0c,0xa4, +0x0c,0x01,0x17,0xfe,0x81,0x50,0x24,0x9f,0x08,0x83,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0x01,0x7e,0x4b,0x29,0x85,0x16,0x01,0x8a,0x4e,0x26,0x9f,0xa7,0x33,0x0e,0x12,0xfe,0x58,0x8c,0x01,0xd5,0x36,0x0b,0x6e,0x03,0xfd,0x67,0x33,0x0d,0x13,0xfe,0x57,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x6e,0x03,0x03,0x64,0x26,0x26,0xfd, +0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x21,0x3a,0x77,0x29,0x1c,0x09,0x1d,0xfe,0xa9,0x01,0x39,0x1a,0x21,0x5d,0x6b,0x65,0x15,0xb4,0x27,0x25,0x02,0x64,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0x7f,0x6a,0x15,0xc0,0x35,0x05,0x73,0xfd,0x58,0x6d,0x0d,0x34,0x02,0x20,0x0f,0x0e,0x35,0x05,0x72,0xfd,0xae,0x0e,0x0f, +0x35,0x05,0x63,0x0e,0x33,0x02,0x20,0x0f,0x00,0x01,0x00,0x71,0xfe,0x25,0x04,0x75,0x05,0xec,0x00,0x39,0x00,0xb1,0x40,0x63,0x30,0x84,0x2f,0x2f,0x2b,0x21,0x1e,0x84,0x22,0x2f,0x25,0x01,0x25,0x25,0x2b,0x03,0x00,0x84,0x04,0x7f,0x07,0x01,0x07,0x07,0x34,0x2a,0x19,0x18,0x17,0x2b,0x17,0x0d,0x0c,0x35,0x34,0x0e,0x34,0x0e,0x0e,0x84, +0x17,0x2b,0x14,0x17,0x17,0x2b,0x89,0x2b,0x01,0xf8,0x2b,0x01,0x99,0x2b,0x01,0x85,0x2b,0x01,0x66,0x2b,0x01,0x08,0x2b,0x01,0x2b,0x17,0x12,0x84,0x13,0x13,0x17,0x2a,0x35,0x38,0x27,0x95,0x0c,0x19,0x09,0x1c,0x1c,0x03,0x09,0x95,0x38,0x34,0x2b,0x38,0x22,0x22,0x38,0x10,0x2f,0x00,0x0e,0x17,0x15,0x13,0x1b,0x00,0x3f,0x3f,0x33,0x3f, +0x3f,0x33,0x2f,0x11,0x33,0x33,0x10,0xfd,0xcc,0x32,0x2f,0x12,0x39,0x39,0xed,0x11,0x39,0x39,0x01,0x2f,0x33,0x2f,0xed,0x11,0x33,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x0e,0xc4,0x10,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x5d,0x33,0xed,0x32,0x11,0x33,0x2f,0x5d,0x33,0xed, +0x32,0x11,0x33,0x2f,0xed,0x31,0x30,0x01,0x14,0x07,0x07,0x23,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x07,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x37,0x33,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x37,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x37,0x36,0x33, +0x32,0x04,0x75,0x08,0x0d,0xa8,0x13,0x03,0x33,0x10,0x10,0xad,0x9f,0x11,0x01,0x0c,0xa4,0x0c,0x01,0x13,0x92,0x9b,0x44,0x30,0x9f,0x08,0x0d,0xa8,0x13,0x03,0x33,0x10,0x10,0xd0,0x15,0x01,0x14,0xa4,0x14,0x01,0x0a,0x78,0x44,0x30,0x9f,0x03,0x64,0x24,0x28,0x41,0x64,0x10,0x0d,0x35,0x05,0x36,0xfd,0x01,0x52,0x5f,0x09,0x1d,0xfe,0xa9, +0x01,0x4d,0x19,0x0e,0x5d,0x5d,0x02,0xc9,0x30,0x15,0xb4,0x24,0x28,0x41,0x64,0x10,0x0d,0x35,0x05,0x41,0x67,0x4e,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x44,0x44,0x25,0x15,0x00,0x01,0x00,0x28,0xff,0xa7,0x04,0x25,0x04,0x18,0x00,0x21,0x00,0x84,0x40,0x4a,0x09,0x08,0x08,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0x10, +0x0d,0x0d,0x18,0x23,0x1b,0x1a,0x1a,0x19,0x16,0x1d,0x1c,0x17,0x1c,0x17,0x17,0x84,0x18,0x19,0x14,0x18,0x19,0x88,0x19,0x01,0x79,0x19,0x01,0x18,0x19,0x01,0x19,0x1f,0x18,0x3f,0x18,0x02,0x18,0x16,0x10,0x13,0x95,0x1d,0x01,0x20,0x10,0x19,0x95,0x1c,0x0f,0x0d,0x96,0x08,0x01,0x08,0x04,0x09,0x09,0x17,0x18,0x15,0x00,0x3f,0xc4,0x33, +0x2f,0x33,0x33,0x5d,0x33,0x3f,0xed,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x5d,0x33,0x5d,0x5d,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x31,0x30,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26, +0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x04,0x25,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x3f,0x0a,0x83,0x03,0x33,0x0d,0x13,0xfe,0x57,0xa6,0xab,0xbe,0xc7,0x1d,0x01,0x6e,0x16,0x01,0x75,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46, +0x85,0x5c,0x28,0x4d,0x0c,0x31,0x02,0x86,0x0f,0x0e,0x35,0x05,0x72,0xfc,0xea,0x03,0x75,0x8b,0x67,0x6a,0x15,0x00,0x00,0x01,0x00,0x28,0xfe,0x25,0x04,0x4e,0x04,0x00,0x00,0x21,0x00,0x7e,0x40,0x45,0x20,0x0d,0x0c,0x0b,0x00,0x02,0x02,0x84,0x0b,0x21,0x14,0x0b,0x0b,0x21,0xa8,0x21,0x01,0x21,0x0b,0x06,0x84,0x07,0x07,0x0b,0x0b,0x13, +0x23,0x18,0x1a,0x1a,0x84,0x13,0x15,0x14,0x13,0x13,0x15,0x17,0x16,0x16,0x15,0xa9,0x15,0xb9,0x15,0x02,0x15,0x1f,0x13,0x01,0x13,0x00,0x21,0x15,0x95,0x18,0x0f,0x20,0x1a,0x1d,0x95,0x13,0x0d,0x0b,0x02,0x10,0x16,0x07,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x3f,0xed,0xd4,0xc4,0x01,0x2f,0x5d,0x33,0x5d,0x11,0x33, +0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x2f,0xed,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0x05,0xc4,0xc4,0x31,0x30,0x01,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x23,0x37,0x21,0x03,0x06,0x15,0x14,0x33, +0x32,0x37,0x25,0x13,0x04,0x4e,0xc5,0x11,0x01,0x0c,0xa4,0x0c,0x01,0x10,0x06,0xfe,0x84,0x48,0x2c,0x9f,0x08,0x8c,0xc7,0x1d,0x01,0x6e,0xae,0x03,0x33,0x0d,0x13,0x01,0xad,0xa6,0x04,0x00,0xfc,0x53,0x51,0x60,0x09,0x1d,0xfe,0xa9,0x01,0x4d,0x19,0x0e,0x73,0x47,0x19,0x70,0x15,0xb4,0x27,0x25,0x02,0x8e,0x8b,0xfc,0xc4,0x0e,0x0f,0x35, +0x05,0x73,0x03,0x16,0x00,0x01,0x00,0x5b,0xfe,0x1f,0x04,0x4e,0x04,0x00,0x00,0x2c,0x00,0x8e,0x40,0x52,0x75,0x12,0x85,0x12,0x02,0x85,0x11,0x01,0x76,0x11,0x01,0x98,0x0c,0x01,0x95,0x08,0x01,0x95,0x07,0x01,0x2b,0x1a,0x02,0x00,0x00,0x84,0x2c,0x1a,0x14,0x2c,0x2c,0x1a,0x2c,0x1a,0x06,0x84,0x17,0x17,0x1a,0x1a,0x20,0x2e,0x23,0x25, +0x25,0x84,0x20,0x22,0x14,0x20,0x20,0x22,0x22,0x20,0x0f,0x84,0x0e,0x0e,0x1f,0x20,0x01,0x20,0x00,0x2c,0x23,0x22,0x0f,0x2b,0x25,0x28,0x95,0x0e,0x0f,0x20,0x1a,0x02,0x1d,0x16,0x13,0x95,0x0a,0x1c,0x00,0x3f,0xed,0x3f,0x33,0x33,0x33,0xce,0x32,0xed,0x32,0x32,0x3f,0xc4,0xd4,0xc4,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x11,0x33,0x87,0x10, +0x2b,0x7d,0x10,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x2f,0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x03,0x06,0x15,0x14,0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x26,0x35,0x05,0x06,0x23,0x22,0x35, +0x34,0x37,0x13,0x33,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x04,0x4e,0xb8,0x02,0x1a,0x9f,0x77,0xb5,0x9a,0x6f,0x61,0x12,0x9d,0x08,0x41,0x4c,0x67,0x5d,0x4a,0x61,0x19,0xfe,0x7f,0x48,0x2c,0x9f,0x08,0xa8,0xa8,0xae,0x03,0x33,0x0d,0x13,0x01,0xad,0xa6,0x04,0x00,0xfc,0x95,0x0a,0x0c,0x32,0xb0,0x43,0xae,0x51,0x3c,0x60,0x54, +0x6c,0x19,0x39,0x36,0x40,0x23,0x2f,0x5b,0x2d,0x9f,0x4a,0x70,0x15,0xb4,0x26,0x26,0x03,0x19,0xfc,0xc4,0x0e,0x0f,0x35,0x05,0x73,0x03,0x16,0x00,0x00,0x01,0x00,0x2f,0xfe,0x25,0x04,0x25,0x05,0xec,0x00,0x33,0x00,0x97,0x40,0x52,0x96,0x07,0x01,0x09,0x08,0x08,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0x10,0x0d,0x0d,0x21, +0x35,0x29,0x84,0x28,0x28,0x24,0x17,0x16,0x2f,0x2e,0x2d,0x18,0x2d,0x18,0x18,0x84,0x21,0x24,0x14,0x21,0x21,0x24,0xe6,0x24,0x01,0xd7,0x24,0x01,0x24,0x21,0x1c,0x84,0x1d,0x1d,0x1f,0x21,0x3f,0x21,0x02,0x21,0x16,0x10,0x13,0x95,0x2f,0x2d,0x24,0x01,0x32,0x10,0x28,0x00,0x0d,0x08,0x04,0x09,0x09,0x18,0x21,0x15,0x1d,0x1b,0x00,0x3f, +0x3f,0x33,0x33,0x2f,0x33,0x33,0x33,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x11,0x33,0x5d,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x11,0x01,0x33,0x18,0x2f,0xed,0x11,0x12,0x39,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x31,0x30, +0x5d,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x07,0x25,0x36,0x33,0x32,0x04,0x25,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x3f,0x07, +0x86,0x03,0x33,0x0d,0x13,0xfe,0x54,0x97,0x15,0x01,0x0c,0xa4,0x0c,0x01,0x14,0xb8,0x13,0x01,0x14,0xa4,0x14,0x01,0x14,0x03,0x01,0x77,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1b,0x22,0x02,0x86,0x0e,0x0f,0x35,0x05,0x73,0xfd,0x3e,0x62,0x4f,0x09,0x1d,0xfe,0xa9,0x01,0x4b,0x18, +0x11,0x5d,0x5d,0x03,0x59,0x58,0x59,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x35,0x85,0x14,0x6b,0x15,0x00,0x01,0x00,0x42,0xfe,0x1f,0x04,0x25,0x04,0x58,0x00,0x34,0x00,0xa5,0x40,0x5f,0x9a,0x23,0x01,0x76,0x1b,0x86,0x1b,0x02,0x95,0x07,0x01,0x77,0x07,0x87,0x07,0x02,0x1f,0x20,0x20,0x50,0x20,0x60,0x20,0x03,0x20,0x20,0x09,0x08, +0x08,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0x10,0x0d,0x0d,0x25,0x36,0x2d,0x2c,0x2c,0x28,0x30,0x16,0x18,0x18,0x84,0x25,0x28,0x14,0x25,0x28,0x28,0x1f,0x25,0x01,0x25,0x2c,0x28,0x2d,0x2d,0x16,0x10,0x13,0x95,0x30,0x01,0x33,0x10,0x9a,0x20,0x01,0x20,0x22,0x1f,0x1f,0x1d,0x95,0x22,0x1c,0x08,0x09,0x09,0x25,0x18,0x0d, +0x04,0x0a,0x15,0x00,0x3f,0x33,0x33,0x33,0x33,0x33,0x2f,0x33,0x3f,0xed,0x32,0x2f,0x12,0x39,0x5d,0x3f,0x33,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0x33,0x01,0x2f,0x5d,0x33,0x87,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x11,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x32,0x2f,0x5d, +0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x07,0x06,0x23,0x20,0x11,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x04,0x25,0x08,0x81, +0x04,0x15,0x63,0x53,0x90,0x3f,0x0a,0x83,0x03,0x33,0x0d,0x13,0xfe,0x57,0x7a,0x23,0x5a,0x53,0xb6,0xcd,0xb2,0x23,0xb1,0xbd,0xfe,0x0c,0x21,0x83,0x05,0x15,0x63,0x53,0x90,0x37,0x06,0x01,0x7f,0x4b,0x29,0x9f,0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x0c,0x31,0x02,0x86,0x0f,0x0e,0x35,0x05,0x72, +0xfd,0xba,0xa7,0x61,0x9e,0x44,0x3f,0x4c,0xa3,0x31,0x01,0xa9,0x85,0x9a,0x02,0x64,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x23,0x41,0x6b,0x15,0x00,0x00,0x02,0x00,0x59,0xff,0xe7,0x06,0xbc,0x05,0xec,0x00,0x2a,0x00,0x36,0x00,0xb6,0x40,0x64,0x20,0x84,0x1f,0x1f,0x1b,0x1a,0x2b,0x36,0x0f,0x0e,0x1b,0x0e,0x0c,0x26,0x25,0x24,0x0d,0x24, +0x0d,0x0d,0x84,0x0e,0x1b,0x14,0x0e,0x0e,0x1b,0x88,0x1b,0x01,0x79,0x1b,0x01,0x1b,0x0e,0x2d,0x30,0x30,0x84,0x15,0x18,0x14,0x15,0x18,0x78,0x18,0x01,0x69,0x18,0x01,0x08,0x18,0x01,0x18,0x15,0x0e,0x03,0x01,0x01,0x84,0x06,0x04,0x14,0x06,0x06,0x04,0x06,0x04,0x0e,0x2d,0x2b,0x95,0x24,0x1b,0x18,0x1a,0x1a,0x0c,0x06,0x09,0x95,0x26, +0x01,0x29,0x10,0x1f,0x00,0x36,0x30,0x33,0x95,0x15,0x0f,0x12,0x16,0x03,0x04,0x0d,0x0e,0x15,0x00,0x3f,0xc4,0xd4,0xc4,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0x3f,0x33,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0x33,0x33,0xed,0x32,0x01,0x2f,0xcc,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xdc,0x32,0x5d,0x5d,0x5d,0x87,0x2b,0x7d, +0x10,0xc4,0x11,0x01,0x33,0x5d,0x5d,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x10,0x87,0xc4,0xc4,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0xed,0x31,0x30,0x01,0x14,0x07,0x03,0x23,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x37,0x25,0x36,0x35,0x34, +0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x07,0x25,0x36,0x33,0x32,0x05,0x05,0x06,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x06,0xbc,0x08,0xa5,0xa7,0xaa,0x03,0x33,0x0d,0x13,0xfe,0x54,0xa8,0xa6,0x16,0xfe,0x8e,0x4a,0x2a,0x9f,0x08,0x69,0x20,0xad,0x02,0x0b,0x03,0x01,0x14,0xa4,0x14,0x01,0x14,0x03,0x01,0x77,0x4a,0x2a,0x9f, +0xfc,0xd0,0xfe,0x23,0x37,0x0a,0x6b,0x03,0x33,0x0e,0x12,0x01,0xa7,0x03,0x64,0x26,0x26,0xfc,0xe8,0x03,0x3b,0x0f,0x0e,0x35,0x05,0x73,0xfc,0xeb,0x65,0x69,0x15,0xb4,0x27,0x25,0x01,0xeb,0x94,0x2c,0x86,0x23,0x22,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x35,0x85,0x14,0x6b,0x15,0x87,0x7e,0x0e,0x33,0xfd,0xf2,0x0f,0x0e,0x35,0x05, +0x72,0x00,0x00,0x01,0x00,0x3f,0xfe,0x25,0x06,0xc0,0x04,0x58,0x00,0x35,0x00,0xae,0x40,0x61,0x29,0x28,0x28,0x24,0x15,0x2c,0x01,0x06,0x2c,0x01,0x2c,0x16,0x18,0x18,0x84,0x21,0x24,0x14,0x21,0x21,0x24,0x24,0x21,0x1c,0x84,0x1d,0x1d,0x5f,0x21,0x01,0x21,0x0e,0x06,0x31,0x16,0x31,0x02,0x31,0x0d,0x0c,0x0c,0x84,0x10,0x0e,0x14,0x10, +0x10,0x0e,0x10,0x0e,0x03,0x01,0x01,0x84,0x06,0x04,0x14,0x06,0x06,0x04,0x06,0x50,0x04,0x80,0x04,0x02,0x04,0x0e,0x0c,0x06,0x09,0x95,0x31,0x01,0x34,0x34,0x2f,0x28,0x24,0x29,0x29,0x16,0x10,0x13,0x95,0x2c,0x2f,0x10,0x1d,0x1b,0x03,0x04,0x21,0x18,0x0d,0x0e,0x15,0x00,0x3f,0xc4,0x33,0x33,0xd4,0xc4,0x3f,0x3f,0x33,0xed,0x32,0x32, +0x33,0x2f,0x33,0x33,0x11,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcc,0x5d,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x01,0x33,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x33,0x5d,0x18,0x10,0xcc,0x5d,0x32,0x2f,0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x5d,0x5d,0x11,0x33,0x18,0x2f,0x33,0x31,0x30,0x01,0x14, +0x07,0x03,0x23,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x17,0x25,0x36,0x33,0x32,0x06,0xc0,0x08,0xa5,0xa3,0xa6,0x03,0x33,0x0d,0x13,0xfe,0x56, +0xa5,0xa3,0xa7,0x03,0x33,0x0d,0x13,0xfe,0x57,0x87,0x18,0x01,0x14,0xa4,0x14,0x01,0x14,0x93,0x05,0x15,0x63,0x53,0x90,0x37,0x06,0x01,0x7f,0x4b,0x29,0x84,0x17,0x01,0x8c,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfc,0xe8,0x03,0x3b,0x0f,0x0e,0x35,0x05,0x73,0xfc,0xeb,0x03,0x3b,0x0f,0x0e,0x35,0x05,0x72,0xfd,0x80,0x72,0x2d,0x37,0x14, +0xfe,0x79,0x01,0x87,0x14,0x34,0x45,0x5e,0x02,0xb4,0x18,0x04,0x17,0x0f,0x46,0x85,0x5c,0x23,0x41,0x6b,0x15,0x86,0x71,0x15,0x00,0x01,0x00,0x21,0xfe,0x1f,0x04,0x80,0x04,0x18,0x00,0x44,0x00,0xd9,0x40,0x84,0x97,0x44,0x01,0x7a,0x2c,0x01,0x69,0x2c,0x01,0x9a,0x28,0x01,0x96,0x24,0x01,0x77,0x24,0x87,0x24,0x02,0x46,0x17,0x56,0x17, +0x02,0x85,0x13,0x01,0x36,0x28,0x01,0x01,0x00,0x00,0x42,0x84,0x04,0x3d,0x84,0x09,0x09,0x04,0x04,0x15,0x83,0x2a,0x2a,0x33,0x46,0x36,0x35,0x35,0x34,0x0f,0x0e,0x38,0x37,0x32,0x67,0x32,0x77,0x32,0x02,0x37,0x32,0x32,0x84,0x33,0x34,0x14,0x33,0x33,0x34,0x47,0x34,0x77,0x34,0x97,0x34,0x03,0x34,0x33,0x20,0x22,0x84,0x1f,0x1d,0x1d, +0x4f,0x33,0x5f,0x33,0x02,0x33,0x20,0x1f,0x0f,0x11,0x32,0x33,0x33,0x26,0x2e,0x95,0x00,0x01,0x09,0x01,0x19,0x01,0x29,0x01,0x03,0x11,0x01,0x11,0x01,0x26,0x0e,0x0b,0x95,0x38,0x3b,0x10,0x34,0x95,0x37,0x0f,0x26,0x95,0x19,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0xed,0x32,0x11,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0xed,0x11,0x39, +0x2f,0xc4,0x12,0x39,0xce,0x32,0x01,0x2f,0x5d,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x5d,0x87,0xc4,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0xed,0x33,0x2f,0x33,0x2f,0xed,0x10,0xed,0x32,0x2f,0x33,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01, +0x07,0x27,0x26,0x35,0x34,0x37,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x36,0x33,0x32,0x17,0x16,0x15,0x10,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x07,0x23,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x15,0x14,0x07,0x07, +0x06,0x15,0x14,0x17,0x04,0x80,0x53,0x90,0x3f,0x0a,0x13,0x03,0x33,0x0d,0x13,0xfe,0x57,0x5e,0x81,0xca,0xcd,0x74,0x62,0xb8,0x9a,0xf1,0xc7,0x78,0x6f,0x3b,0x90,0x24,0x4b,0x52,0x87,0x8e,0x6b,0x87,0x40,0x4e,0x8c,0x64,0x5f,0x70,0x2d,0xab,0xa8,0xc7,0x1d,0x01,0x6e,0x16,0x01,0x75,0x4a,0x2a,0x9f,0x08,0x11,0x04,0x15,0x02,0x47,0x85, +0x5c,0x28,0x4d,0x06,0x37,0x6b,0x10,0x0d,0x35,0x05,0x72,0xfe,0x3f,0x4a,0x7b,0x69,0x8f,0xfe,0xf2,0x8a,0x75,0x50,0x4b,0x71,0x53,0x52,0x37,0x38,0x27,0x3c,0x29,0x2c,0x52,0x69,0xc4,0x56,0x43,0x54,0x2a,0x31,0x56,0x03,0x11,0x8b,0x67,0x6a,0x15,0xb4,0x28,0x24,0x49,0x11,0x0b,0x17,0x0f,0x00,0x00,0x01,0x00,0x42,0xfe,0x1f,0x04,0x2e, +0x04,0x58,0x00,0x30,0x00,0xbb,0x40,0x6b,0x18,0x25,0x01,0x99,0x2c,0x01,0x88,0x2c,0x01,0x9a,0x0f,0x01,0x77,0x0a,0x87,0x0a,0x02,0x2e,0x2d,0x2d,0x29,0x0e,0x0f,0x0f,0x04,0x01,0x01,0x84,0x29,0x26,0x14,0x29,0x29,0x26,0x18,0x29,0x01,0x09,0x29,0x01,0x29,0x26,0x26,0x14,0x32,0x1c,0x1b,0x1b,0x17,0x21,0x22,0x23,0x24,0x06,0x20,0x20, +0x06,0x06,0x84,0x14,0x17,0x14,0x14,0x17,0x17,0x1f,0x14,0x01,0x14,0x2d,0x2e,0x2e,0x1b,0x1c,0x1c,0x29,0x20,0x17,0x01,0x1d,0x0f,0x7a,0x0f,0x01,0x5b,0x0f,0x6b,0x0f,0x02,0x0f,0x11,0x0e,0x0e,0x0c,0x95,0x11,0x1c,0x26,0x24,0x95,0x14,0x79,0x04,0x01,0x04,0x06,0x16,0x00,0x3f,0x33,0x5d,0x33,0xed,0x32,0x3f,0xed,0x32,0x2f,0x12,0x39, +0x5d,0x5d,0x3f,0x33,0x33,0x33,0x33,0x33,0x2f,0x33,0x33,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x87,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0x0e,0xc4,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x11,0x33,0x2f,0x33,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01, +0x5d,0x01,0x14,0x07,0x03,0x06,0x07,0x05,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x07,0x06,0x23,0x20,0x11,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x15,0x14,0x07,0x03,0x06,0x07,0x25,0x36,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x04,0x2e,0x06,0x73,0x1f,0xae,0xfd,0xfe,0x01,0x5a,0x53,0xb6,0xcd,0xb2, +0x23,0xb1,0xbd,0xfe,0x0c,0x21,0x84,0x03,0x15,0x63,0x53,0x90,0x3f,0x07,0x85,0x0c,0x07,0x01,0xdb,0x37,0x0a,0x70,0x03,0x15,0x63,0x53,0x90,0x3f,0x03,0x87,0x20,0x1d,0xfd,0xdc,0x95,0x2b,0x7f,0x12,0x0d,0x9e,0x44,0x3f,0x4c,0xa3,0x31,0x01,0xa9,0x86,0x99,0x02,0x64,0x10,0x0c,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1c,0x21,0xfd,0x86, +0x38,0x2d,0x7a,0x0e,0x33,0x02,0x25,0x0f,0x0d,0x17,0x0f,0x46,0x85,0x5c,0x28,0x00,0x00,0x02,0xff,0x8a,0xfe,0x25,0x04,0x5a,0x04,0xb5,0x00,0x15,0x00,0x18,0x00,0x95,0x40,0x5d,0x27,0x01,0x01,0x06,0x05,0x18,0x16,0x08,0x17,0x02,0x09,0x16,0x08,0x0a,0x03,0x04,0x00,0x05,0x0a,0x03,0x01,0x00,0x05,0x17,0x02,0x16,0x05,0x00,0x05,0x84, +0x08,0x16,0x14,0x08,0x08,0x16,0x17,0x03,0x0a,0x03,0x84,0x02,0x17,0x14,0x02,0x02,0x17,0x00,0x00,0x0f,0x02,0x4f,0x02,0x6f,0x02,0x7f,0x02,0xbf,0x02,0x05,0x02,0x02,0x08,0x1a,0x10,0x12,0x84,0x0f,0x0d,0x0d,0x0a,0x0a,0x07,0x0f,0x08,0x01,0x08,0x00,0x15,0x17,0x0a,0x16,0x95,0x10,0x15,0x0f,0x07,0x1b,0x08,0x05,0x03,0x02,0x15,0x00, +0x3f,0xc4,0x33,0x33,0x3f,0x3f,0xce,0xfd,0xc4,0xc4,0x12,0x39,0x01,0x2f,0x5d,0x33,0x33,0x2f,0x33,0x2f,0x33,0xed,0x32,0x11,0x12,0x39,0x2f,0x5d,0x33,0x2f,0x87,0x10,0x2b,0x87,0x7d,0xc4,0x87,0x18,0x10,0x2b,0x87,0x7d,0xc4,0x0f,0x0f,0x0f,0x0f,0x11,0x01,0x33,0x31,0x30,0x5d,0x01,0x01,0x13,0x23,0x03,0x00,0x03,0x23,0x12,0x01,0x03, +0x23,0x22,0x37,0x36,0x37,0x33,0x06,0x15,0x14,0x33,0x21,0x05,0x21,0x17,0x04,0x5a,0xfe,0x68,0xe6,0xb5,0xa5,0xfe,0x8d,0x8e,0xc3,0xc9,0x01,0xb5,0xaa,0x86,0x96,0x06,0x02,0x1d,0xa7,0x1f,0x29,0x03,0x42,0xfe,0xf5,0xfe,0xc4,0x6b,0x03,0xd1,0xfe,0x24,0xfe,0x0b,0x01,0x67,0xfe,0x2f,0xfe,0x8f,0x01,0xcd,0x02,0x0d,0x01,0x75,0x94,0x2f, +0x7e,0x78,0x15,0x28,0x8c,0xea,0x00,0x01,0x00,0x31,0xff,0xa7,0x06,0xe6,0x04,0x58,0x00,0x37,0x00,0xb7,0x40,0x65,0x89,0x20,0x01,0x97,0x05,0x01,0x22,0x70,0x21,0x01,0x21,0x21,0x1d,0x25,0x19,0x1a,0x1a,0x84,0x1b,0x1d,0x14,0x1b,0x1d,0x89,0x1d,0x01,0x1d,0x1b,0x10,0x2b,0x2e,0x2e,0x84,0x10,0x13,0x14,0x10,0x10,0x13,0x13,0x10,0x07, +0x06,0x06,0x02,0x36,0x35,0x0a,0x02,0x00,0x00,0x84,0x37,0x0a,0x14,0x37,0x37,0x0a,0x37,0x20,0x0a,0x01,0x0a,0x10,0x00,0x37,0x0f,0x21,0x1d,0x22,0x22,0x19,0x13,0x16,0x95,0x2b,0x25,0x28,0x10,0x1a,0x1b,0x15,0x29,0x35,0x01,0x35,0x2e,0x31,0x95,0x0d,0x06,0x02,0x07,0x07,0x10,0x28,0x0a,0x01,0x0a,0x0d,0x16,0x00,0x3f,0x33,0x5d,0x33, +0x33,0x2f,0x33,0x33,0x10,0xed,0x32,0x32,0x5d,0x3f,0xc4,0x3f,0x33,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0x33,0x3f,0xc4,0x01,0x2f,0xcc,0x5d,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0xc4,0x0e,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xdc,0x32,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x01, +0x32,0x11,0x33,0x18,0x2f,0x5d,0x33,0x31,0x30,0x5d,0x5d,0x01,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25, +0x36,0x37,0x13,0x06,0xe6,0xb1,0x04,0x15,0x63,0x53,0x90,0x34,0x09,0xfe,0x7e,0x53,0x21,0x9f,0x08,0x7f,0x03,0x33,0x0e,0x13,0xfe,0x58,0xa6,0xab,0xb5,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0x01,0x7d,0x4b,0x2a,0x9f,0x0a,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x94,0x04,0x00,0xfc,0xb4,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x21, +0x3a,0x62,0x15,0xb4,0x26,0x26,0x02,0x54,0x0e,0x0f,0x35,0x05,0x72,0xfc,0xea,0x03,0x4b,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0xb4,0x1e,0x30,0xfd,0xae,0x0e,0x0f,0x35,0x05,0x63,0x0e,0x33,0x02,0xe5,0x00,0x01,0x00,0x2f,0xfe,0x25,0x04,0xbe,0x05,0xec,0x00,0x2d,0x00,0x77,0x40,0x40,0x00,0x01,0x37,0x29,0x97,0x29, +0x02,0x29,0x2b,0x84,0x06,0x04,0x04,0x15,0x2f,0x1d,0x84,0x1c,0x1c,0x18,0x22,0x23,0x0a,0x0b,0x0c,0x21,0x21,0x0c,0x0c,0x84,0x15,0x18,0x14,0x15,0x15,0x18,0x69,0x18,0x01,0x18,0x15,0x10,0x84,0x11,0x11,0x15,0x02,0x95,0x2d,0x0a,0x07,0x95,0x23,0x21,0x18,0x26,0x10,0x1c,0x00,0x0c,0x15,0x15,0x11,0x1b,0x00,0x3f,0x3f,0x33,0x3f,0x3f, +0x33,0x33,0x33,0xed,0x32,0xdc,0xed,0x01,0x2f,0x33,0x2f,0xed,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x11,0x01,0x33,0x18,0x2f,0xed,0x11,0x12,0x39,0x2f,0x33,0xfd,0x32,0x5d,0xcc,0x32,0x31,0x30,0x01,0x07,0x23,0x22,0x27,0x27,0x26,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x13, +0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x07,0x25,0x36,0x33,0x32,0x17,0x16,0x17,0x17,0x16,0x33,0x04,0xbe,0x1d,0xd3,0x60,0x22,0x38,0x0d,0x2a,0x10,0x10,0xfe,0xc5,0x9a,0x15,0x01,0x0c,0xa4,0x0c,0x01,0x14,0xb8,0x13,0x01,0x14,0xa4,0x14,0x01,0x0f,0x03,0x01,0x04,0x42,0x32,0x4c, +0x27,0x19,0x17,0x32,0x08,0x19,0x02,0x7f,0x8b,0x87,0xde,0x34,0x05,0x63,0xfd,0x2e,0x62,0x4f,0x09,0x1d,0xfe,0xa9,0x01,0x4d,0x18,0x0f,0x5d,0x5d,0x03,0x59,0x58,0x59,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x3e,0x64,0x14,0x53,0x15,0x36,0x23,0x5a,0xc7,0x1f,0x00,0x01,0x00,0x35,0xff,0xe7,0x03,0xfe,0x04,0x00,0x00,0x1b,0x00,0x58, +0x40,0x35,0x89,0x0b,0x01,0x95,0x08,0x01,0x28,0x05,0x01,0x95,0x02,0x01,0x37,0x02,0x01,0x24,0x02,0x01,0x00,0x83,0x20,0x0d,0x01,0x0d,0x0d,0x1d,0x15,0x17,0x84,0x12,0x07,0x06,0x06,0x14,0x12,0x0f,0x95,0x1a,0x15,0x0f,0x08,0x06,0x18,0x06,0x02,0x06,0x04,0x07,0x07,0x09,0x95,0x04,0x16,0x00,0x3f,0xed,0x32,0x2f,0x12,0x39,0x5d,0x3f, +0xde,0xed,0x01,0x2f,0x33,0x33,0x2f,0x33,0x10,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x07,0x06,0x21,0x22,0x27,0x37,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x23,0x21,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x21,0x20,0x03,0xfe,0x9c,0xa5,0xfe,0xe9,0xe9,0x88,0x65,0x81,0x9a,0xbf, +0x77,0x6b,0xbb,0xfe,0xc8,0x90,0x0e,0xa3,0x0a,0x29,0x01,0x2c,0x01,0x2f,0x02,0x41,0xfe,0xfe,0xa7,0xb1,0x8b,0x7f,0x7e,0x91,0x84,0xb5,0xde,0x94,0x1e,0x33,0x25,0x0c,0x28,0x00,0x00,0x01,0x00,0x46,0xfe,0x29,0x04,0x3c,0x05,0xec,0x00,0x33,0x00,0x94,0x40,0x4e,0x9a,0x1b,0x01,0x31,0x84,0x30,0x30,0x2c,0x2b,0x2a,0x0f,0x0e,0x0d,0x04, +0x01,0x01,0x84,0x2c,0x0d,0x14,0x2c,0x2c,0x0d,0x2c,0x0d,0x08,0x84,0x09,0x09,0x0d,0x0d,0x15,0x35,0x21,0x24,0x24,0x84,0x15,0x18,0x14,0x15,0x15,0x18,0x1d,0x1c,0x1c,0x18,0x08,0x18,0x01,0x18,0x1f,0x15,0x01,0x15,0x30,0x00,0x1c,0x1d,0x1d,0x2c,0x21,0x18,0x01,0x1e,0x0f,0x2a,0x24,0x27,0x95,0x15,0x0f,0x0d,0x04,0x12,0x16,0x09,0x1b, +0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x3f,0x33,0x33,0x33,0x33,0x33,0x2f,0x33,0x3f,0x01,0x2f,0x5d,0x33,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x2f,0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x11,0x01,0x33,0x18,0x2f, +0xed,0x31,0x30,0x5d,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x04,0x3c,0x14,0xb8,0x13,0x01,0x10,0xa4, +0x10,0x01,0x14,0x03,0xfe,0x89,0x4a,0x2a,0x9f,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x3f,0x07,0x86,0x03,0x33,0x0d,0x13,0x01,0xac,0x97,0x15,0x01,0x0c,0xa4,0x0c,0x01,0x04,0x66,0x5d,0x5d,0xfc,0xa7,0x58,0x59,0x11,0x15,0xfe,0xad,0x01,0x53,0x15,0x08,0x35,0x85,0x14,0x6b,0x15,0xb4,0x26,0x26,0x02,0x64,0x13,0x09,0x17,0x0f,0x46,0x85, +0x5c,0x28,0x4d,0x1b,0x22,0xfd,0x7a,0x0e,0x0f,0x35,0x05,0x73,0x02,0xc2,0x62,0x4f,0x08,0x1e,0x01,0x69,0xfe,0x97,0x1e,0x00,0x00,0x01,0x00,0x28,0xfe,0x25,0x04,0x4e,0x04,0x00,0x00,0x27,0x00,0x6f,0x40,0x3c,0x02,0x00,0x00,0x84,0x27,0x25,0x14,0x27,0x27,0x25,0x27,0x25,0x0f,0x1c,0x1e,0x1e,0x84,0x17,0x19,0x14,0x17,0x17,0x19,0x1b, +0x1a,0x1a,0x19,0x19,0x17,0x0f,0x0b,0x84,0x0c,0x0c,0x06,0x08,0x84,0x11,0x0f,0x00,0x27,0x19,0x95,0x1c,0x0f,0x67,0x25,0x01,0x25,0x1e,0x21,0x95,0x17,0x11,0x06,0x02,0x14,0x16,0x0c,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x5d,0x3f,0xed,0xd4,0xc4,0x01,0x2f,0x33,0xed,0x32,0x33,0x2f,0xed,0x10,0xcc,0x32,0x11,0x33, +0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xcd,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x03,0x06,0x07,0x06,0x07,0x07,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x23,0x37,0x21,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x13,0x04,0x4e,0x99, +0x14,0x42,0x27,0x50,0x7e,0x06,0x01,0x14,0xa4,0x14,0x01,0x01,0x53,0x4b,0x29,0x9f,0x08,0x8c,0xc7,0x1d,0x01,0x6e,0xae,0x03,0x33,0x0f,0x11,0x01,0x7b,0x37,0x0a,0x96,0x04,0x00,0xfd,0x26,0x5d,0x31,0x1c,0x16,0x23,0x28,0x24,0x37,0x14,0xfe,0x79,0x01,0x87,0x14,0x34,0x0d,0x12,0x17,0x15,0xb4,0x27,0x25,0x02,0x8e,0x8b,0xfc,0xc4,0x0e, +0x0f,0x35,0x05,0x6e,0x10,0x31,0x02,0xda,0x00,0x02,0x00,0x59,0xff,0xe7,0x07,0x24,0x06,0x04,0x00,0x35,0x00,0x43,0x00,0xcc,0x40,0x71,0x43,0x36,0x2e,0x2f,0x30,0x42,0x30,0x0e,0x0f,0x20,0x21,0x22,0x0d,0x86,0x22,0x01,0x65,0x22,0x01,0x0d,0x22,0x22,0x84,0x42,0x30,0x14,0x42,0x42,0x30,0x3a,0x30,0x01,0x08,0x30,0x18,0x30,0x02,0x30, +0x42,0x38,0x3b,0x3b,0x84,0x29,0x2c,0x14,0x29,0x2c,0x78,0x2c,0x01,0x6a,0x2c,0x01,0x08,0x2c,0x01,0x2c,0x29,0x42,0x03,0x00,0x84,0x07,0x17,0x15,0x15,0x84,0x1a,0x18,0x14,0x1a,0x1a,0x18,0x04,0x07,0x07,0x1a,0x1a,0x18,0x42,0x0d,0x09,0x95,0x30,0x34,0x01,0x42,0x3b,0x3e,0x95,0x29,0x22,0x26,0x16,0x17,0x18,0x15,0x38,0x36,0x95,0x2c, +0x2e,0x2e,0x20,0x1a,0x1d,0x95,0x15,0x0f,0x03,0x12,0x10,0x00,0x3f,0xce,0x33,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0xed,0x32,0x3f,0xc4,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f,0xcc,0x32,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xed,0x32,0x10,0xdc,0x32,0x5d,0x5d,0x5d,0x87,0x2b,0x7d, +0x10,0xc4,0x11,0x01,0x33,0x5d,0x5d,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x5d,0x5d,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x10,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x31,0x30,0x01,0x14,0x07,0x07,0x23,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x06,0x07,0x03,0x25,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x23,0x13,0x36,0x35, +0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x07,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x37,0x25,0x37,0x36,0x37,0x25,0x36,0x33,0x32,0x01,0x05,0x06,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x07,0x24,0x08,0x0e,0xa8,0x14,0x03,0x33,0x0d,0x13,0xfe,0x89,0x37,0x0a,0x40,0x01,0x77,0x4a,0x2a,0x9f,0x08,0xa5,0xa7,0xaa, +0x03,0x33,0x0d,0x13,0xfe,0x54,0x6c,0x20,0xae,0xfe,0x90,0x55,0x1f,0x9f,0x08,0x69,0x20,0xad,0x02,0x12,0x25,0x1e,0xaf,0x01,0x76,0x53,0x21,0x9f,0xfc,0x68,0xfe,0x23,0x37,0x0a,0x6b,0x03,0x33,0x0f,0x13,0x01,0x6f,0x35,0x0b,0x05,0x50,0x27,0x25,0x41,0x64,0x0f,0x0e,0x35,0x05,0x63,0x0e,0x33,0xfe,0xc8,0x6b,0x15,0xb4,0x26,0x26,0xfc, +0xe8,0x03,0x3b,0x0f,0x0e,0x35,0x05,0x73,0xfe,0x02,0x95,0x2b,0x5b,0x15,0xb4,0x27,0x25,0x01,0xeb,0x94,0x2c,0x86,0xb8,0x93,0x2d,0x5f,0x15,0xfd,0x8d,0x7e,0x0e,0x33,0xfd,0xf2,0x0f,0x0e,0x35,0x05,0x5f,0x0e,0x33,0x00,0x00,0x01,0x00,0xaa,0xff,0xe8,0x06,0x3a,0x05,0x9a,0x00,0x25,0x00,0x70,0x40,0x4b,0x98,0x21,0x01,0x98,0x20,0x01, +0x3a,0x20,0x01,0x29,0x20,0x01,0x94,0x1c,0x01,0x86,0x1c,0x01,0x25,0x1c,0x35,0x1c,0x02,0x87,0x1b,0x97,0x1b,0x02,0x48,0x14,0x01,0x49,0x13,0x01,0x45,0x0e,0x01,0x57,0x0e,0x01,0x07,0x7e,0x00,0x08,0x01,0x08,0x03,0x0c,0x25,0x7e,0x10,0x23,0x20,0x23,0x30,0x23,0x03,0x23,0x23,0x27,0x18,0x7e,0x16,0x24,0x18,0x03,0x1e,0x91,0x11,0x13, +0x03,0x91,0x0c,0x08,0x12,0x00,0x3f,0xde,0xed,0x3f,0xed,0x3f,0xc4,0x01,0x2f,0xed,0x12,0x39,0x2f,0x5d,0xfd,0x32,0x32,0xdc,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x06,0x07,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14, +0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x05,0x25,0x03,0x04,0x83,0x99,0x99,0x47,0x5a,0x1a,0x66,0x8e,0xb1,0x65,0x83,0xd0,0x91,0x4e,0xa8,0x3b,0x6c,0x98,0x5d,0x5a,0x93,0x69,0x39,0xa8,0x02,0x44,0x23,0x40,0x1f,0x03,0x9f,0x9d,0x83,0x83,0x53,0x5c,0x01,0x53,0x7c,0x53,0x29,0x49,0x91,0xda,0x91,0x03,0x6d,0xfc,0x9e,0x6e,0xa6, +0x6e,0x37,0x35,0x6b,0x9f,0x6b,0x03,0x71,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0x07,0x05,0xb2,0x00,0x11,0x00,0x7a,0x40,0x51,0x37,0x10,0x01,0xa8,0x10,0xb8,0x10,0x02,0x56,0x10,0x01,0x45,0x10,0x01,0x58,0x0e,0x01,0x4a,0x0e,0x01,0x26,0x05,0x01,0x97,0x05,0xa7,0x05,0x02,0x34,0x05,0x01,0x26,0x05,0x01,0x99,0x03,0x01,0x3a,0x03,0x01, +0xc0,0x08,0x01,0x08,0x00,0x7e,0x9f,0x01,0x01,0x01,0x01,0x13,0x07,0x0a,0x7e,0x8f,0x0c,0x01,0x0c,0x01,0x01,0x0f,0x08,0x91,0xaf,0x0a,0x01,0x9f,0x0a,0xdf,0x0a,0x02,0x0a,0x0a,0x0b,0x04,0x91,0x0f,0x04,0x0b,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x5d,0x71,0xed,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0xfd, +0xc6,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x01,0x23,0x35,0x10,0x21,0x20,0x11,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x10,0x21,0x20,0x11,0x04,0xd5,0xa8,0xfe,0x93,0xfe,0x92,0x03,0xb5,0xfc,0x4b,0xa8,0x02,0x17,0x02,0x14,0x03,0x2a,0x47,0x01,0xaa,0xfe,0x47,0xfe,0xa8,0x98,0xfe,0x8e,0x03,0x6d, +0x02,0x45,0xfd,0xa4,0x00,0x02,0x00,0x5e,0x00,0x00,0x05,0x70,0x05,0xb2,0x00,0x10,0x00,0x19,0x00,0x76,0x40,0x4f,0x26,0x16,0x01,0xa7,0x14,0x01,0x26,0x14,0x01,0x3a,0x12,0x4a,0x12,0x02,0x28,0x12,0x01,0xa8,0x11,0x01,0xa8,0x0d,0x01,0x55,0x0d,0x01,0x3a,0x0a,0x4a,0x0a,0x5a,0x0a,0x03,0x3b,0x06,0x4b,0x06,0x5b,0x06,0x03,0x00,0x00, +0x1b,0x0f,0x01,0x7d,0x18,0x04,0x04,0x1b,0x15,0x7d,0x0f,0x08,0x1f,0x08,0x02,0x08,0x0f,0x18,0x91,0x01,0xaf,0x04,0x01,0x9f,0x04,0xdf,0x04,0x02,0x04,0x04,0x03,0x13,0x91,0x0b,0x04,0x03,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x5d,0x71,0x33,0xed,0x32,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x11,0x39,0x2f,0x31,0x30, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x11,0x23,0x11,0x21,0x20,0x00,0x35,0x10,0x00,0x21,0x32,0x00,0x15,0x11,0x21,0x00,0x26,0x23,0x20,0x03,0x12,0x21,0x21,0x11,0x05,0x70,0xfe,0xfc,0xa8,0xfe,0x9d,0xfe,0xfd,0xff,0x00,0x01,0x19,0x01,0x03,0xe8,0x01,0x0a,0x01,0x04,0xfe,0x54,0xaf,0xa7,0xfe,0xa2,0x0a,0x0a, +0x01,0x63,0x01,0x51,0x01,0x72,0xfe,0x8e,0x01,0x72,0x01,0x2a,0xf0,0x01,0x04,0x01,0x22,0xfe,0xde,0xfe,0xfe,0x78,0x02,0x43,0xdb,0xfe,0x6a,0xfe,0x78,0x01,0x84,0x00,0x00,0x01,0x00,0x78,0x00,0x00,0x05,0x94,0x05,0xb2,0x00,0x11,0x00,0x62,0x40,0x3e,0x96,0x0e,0x01,0x35,0x0e,0x01,0x26,0x0e,0x01,0x29,0x0c,0x01,0x98,0x0c,0x01,0x3a, +0x0c,0x01,0x29,0x0c,0x01,0x49,0x03,0x01,0x46,0x03,0x56,0x03,0x02,0xa7,0x01,0x01,0x49,0x01,0x59,0x01,0x02,0x07,0x05,0x08,0x7e,0x0a,0x0a,0x13,0x10,0x7e,0x11,0x11,0x11,0x0d,0x0a,0x06,0x91,0x08,0x08,0x02,0x0a,0x12,0x0d,0x91,0x02,0x04,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x11,0x12,0x39,0x2f,0x01,0x2f,0xed,0x12,0x39,0x2f, +0xfd,0x32,0xcd,0x31,0x30,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x13,0x10,0x21,0x20,0x11,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x10,0x21,0x20,0x11,0x15,0x23,0x78,0x02,0x14,0x02,0x17,0xf1,0xf1,0xa8,0xfe,0x92,0xfe,0x93,0xa8,0x03,0x56,0x02,0x5c,0xfd,0xbb,0xfe,0x9d,0x98,0xfe,0x8e,0x03,0x62,0x01,0xb9,0xfe,0x56, +0x47,0x00,0x00,0x01,0x00,0xaa,0xff,0xe8,0x05,0x07,0x05,0x9a,0x00,0x11,0x00,0x64,0x40,0x3e,0x99,0x0e,0x01,0x3a,0x0e,0x01,0x26,0x0c,0x01,0xa7,0x0c,0x01,0x95,0x0c,0x01,0x34,0x0c,0x01,0x26,0x0c,0x01,0x4a,0x03,0x01,0xa8,0x01,0x01,0x45,0x01,0x01,0x09,0x09,0x13,0x11,0x7e,0x9f,0x10,0x01,0x10,0x10,0x13,0x07,0x0a,0x7e,0x8f,0x04, +0x01,0x04,0x10,0x10,0x02,0x0a,0x91,0x08,0x08,0x02,0x05,0x03,0x0d,0x91,0x02,0x13,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x11,0x39,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x01,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x21,0x15,0x21,0x11, +0x10,0x21,0x20,0x11,0x35,0x33,0x04,0xd5,0xfd,0xec,0xfd,0xe9,0xa8,0x03,0xb5,0xfc,0x4b,0x01,0x6e,0x01,0x6d,0xa8,0x02,0x44,0xfd,0xa4,0x02,0x45,0x03,0x6d,0xfe,0x8e,0x98,0xfe,0xa8,0xfe,0x47,0x01,0xaa,0x47,0x00,0x01,0x00,0x64,0xff,0x38,0x05,0x44,0x05,0xb2,0x00,0x29,0x00,0x8e,0x40,0x5c,0x55,0x1c,0x01,0x27,0x19,0x01,0x84,0x18, +0x01,0x8c,0x14,0x01,0x99,0x13,0x01,0x24,0x0d,0x01,0x15,0x0d,0x01,0x69,0x09,0x79,0x09,0x02,0x1b,0x09,0x01,0x68,0x08,0x78,0x08,0x02,0x6a,0x04,0x7a,0x04,0x02,0x38,0x04,0x48,0x04,0x02,0x91,0x1d,0x01,0x83,0x1d,0x01,0x54,0x1d,0x01,0x1d,0x00,0x1b,0x7d,0x04,0x02,0x06,0x06,0x23,0x7d,0x24,0x24,0x02,0x2b,0x10,0x7d,0x11,0x11,0x00, +0x7e,0x0f,0x02,0x01,0x02,0x11,0x11,0x04,0x0b,0x91,0x16,0x04,0x1d,0x04,0x91,0x00,0x24,0x02,0x00,0x12,0x00,0x3f,0xdd,0xc4,0x10,0xfd,0xc4,0x3f,0xed,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x33,0x2f,0x12,0x39,0xed,0x11,0x39,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x21,0x15,0x23,0x11,0x21,0x24,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x10,0x05,0x33,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e,0x02,0x23,0x01,0x0e,0xaa,0x01,0x99,0x02,0x6f,0x36,0x69,0x9b,0x66,0x63,0x98,0x67,0x36,0xb0,0x54,0x99,0xd8,0x83,0x88,0xdc,0x99,0x53, +0xfe,0x29,0xc5,0x55,0x78,0x4b,0x22,0xb0,0x12,0x2a,0x43,0x30,0xc8,0x01,0x60,0xe6,0x01,0xbb,0x62,0xaf,0x84,0x4d,0x3e,0x6f,0x9b,0x5d,0x81,0xd3,0x96,0x52,0x5b,0xa3,0xe4,0x88,0xfe,0x3d,0xed,0x37,0x60,0x80,0x49,0x2b,0x49,0x36,0x1e,0x00,0x00,0x01,0x00,0xbc,0xff,0x38,0x04,0x83,0x05,0x9a,0x00,0x13,0x00,0x2d,0x40,0x17,0x12,0x12, +0x06,0x7e,0x07,0x07,0x0d,0x15,0x10,0x13,0x7e,0x0d,0x12,0x91,0x10,0x10,0x0f,0x03,0x07,0x00,0x91,0x0d,0x12,0x00,0x3f,0xed,0xce,0x3f,0x3f,0xed,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x31,0x30,0x25,0x21,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e,0x02,0x23,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x01,0x64,0x01,0xb3,0x55, +0x78,0x4b,0x22,0xb0,0x12,0x2a,0x43,0x30,0xfd,0xca,0xa8,0x03,0x1f,0xfc,0xe1,0x98,0x37,0x60,0x80,0x49,0x2b,0x49,0x36,0x1e,0x05,0x9a,0xfe,0x8e,0x98,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0x07,0x05,0xb2,0x00,0x0f,0x00,0x44,0x40,0x29,0xa8,0x0e,0x01,0x45,0x0e,0x01,0x4a,0x0c,0x01,0x25,0x05,0x35,0x05,0x02,0x2a,0x03,0x3a,0x03, +0x02,0x08,0x08,0x11,0x0f,0x7e,0x01,0x01,0x11,0x07,0x7e,0x0b,0x01,0x01,0x0a,0x04,0x91,0x0d,0x04,0x07,0x91,0x0a,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x10,0x21,0x20,0x11,0x11,0x21,0x15,0x21,0x11,0x10,0x21,0x20,0x11, +0x04,0xd5,0xa8,0xfe,0x93,0xfe,0x92,0x03,0xb5,0xfb,0xa3,0x02,0x17,0x02,0x14,0x03,0x2a,0x47,0x01,0xaa,0xfe,0x47,0xfd,0x36,0x98,0x03,0x6d,0x02,0x45,0xfd,0xa4,0x00,0x00,0x02,0x00,0xaa,0xff,0xe8,0x06,0x2b,0x05,0xb2,0x00,0x2c,0x00,0x3d,0x00,0xa0,0x40,0x6c,0x6a,0x3b,0x01,0x67,0x37,0x01,0x64,0x31,0x01,0x56,0x31,0x01,0x79,0x29, +0x01,0x78,0x28,0x01,0x99,0x24,0x01,0x88,0x24,0x01,0x7a,0x24,0x01,0x8a,0x23,0x9a,0x23,0x02,0x7b,0x23,0x01,0x86,0x1f,0x96,0x1f,0x02,0x75,0x1f,0x01,0x76,0x1e,0x01,0x46,0x14,0x01,0x49,0x10,0x01,0x97,0x08,0x01,0x86,0x07,0x96,0x07,0x02,0x25,0x07,0x35,0x07,0x02,0x16,0x07,0x01,0x98,0x03,0x01,0x2a,0x03,0x3a,0x03,0x02,0x1b,0x1a, +0x18,0x7e,0x2c,0x2e,0x2e,0x0c,0x3f,0x34,0x7e,0x26,0x0a,0x7e,0x0c,0x1b,0x2e,0x91,0x2c,0x18,0x18,0x39,0x05,0x91,0x12,0x04,0x39,0x91,0x21,0x21,0x0c,0x12,0x00,0x3f,0x33,0x2f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xc4,0xfd,0xc4,0x01,0x2f,0xfd,0xde,0xed,0x11,0x12,0x39,0x2f,0xc4,0xfd,0xcd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x15,0x21,0x15,0x21,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x35,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02, +0x17,0x32,0x3e,0x02,0x04,0x7d,0x3a,0x6b,0x95,0x5b,0x5c,0x95,0x6b,0x3a,0xa8,0x4f,0x95,0xd5,0x86,0x85,0xd4,0x94,0x4f,0x01,0x06,0xfe,0xfa,0x35,0x63,0x90,0x5b,0x53,0x89,0x62,0x35,0x3c,0x6d,0x97,0x5c,0xb2,0xb2,0x36,0x58,0x3d,0x21,0x18,0x31,0x49,0x31,0x34,0x52,0x38,0x1d,0x03,0x71,0x6a,0xa0,0x6b,0x35,0x37,0x6e,0xa6,0x6e,0xfc, +0x9e,0x03,0x6d,0x91,0xda,0x91,0x49,0x4b,0x97,0xe3,0x97,0x38,0x98,0xee,0x65,0xa0,0x6f,0x3c,0x3b,0x6a,0x92,0x56,0x5e,0x9d,0x70,0x3e,0xfe,0x7a,0xee,0x2a,0x49,0x64,0x3a,0x33,0x58,0x41,0x27,0x03,0x29,0x4b,0x67,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0x70,0x05,0x9a,0x00,0x10,0x00,0x19,0x00,0x6e,0x40,0x48,0x3a,0x18,0x4a,0x18, +0x9a,0x18,0x03,0x28,0x18,0x01,0x96,0x16,0x01,0x34,0x16,0x44,0x16,0x02,0x26,0x16,0x01,0x96,0x14,0x01,0x34,0x14,0x44,0x14,0x02,0x26,0x14,0x01,0x59,0x09,0x01,0x55,0x04,0x01,0x00,0x00,0x1b,0x0f,0x01,0x7e,0x0c,0x9f,0x11,0x01,0x11,0x11,0x1b,0x15,0x7d,0x0f,0x08,0x1f,0x08,0x02,0x08,0x12,0x01,0x91,0x0f,0x0c,0x0c,0x05,0x0d,0x03, +0x17,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x33,0xed,0x32,0x11,0x39,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x11,0x14,0x00,0x23,0x20,0x00,0x11,0x34,0x00,0x21,0x21,0x11,0x33,0x11,0x21,0x01,0x11,0x21,0x20,0x03,0x12,0x21, +0x32,0x36,0x05,0x70,0xfe,0xfc,0xfe,0xf6,0xe8,0xfe,0xfd,0xfe,0xe7,0x01,0x00,0x01,0x03,0x01,0x63,0xa8,0x01,0x04,0xfe,0x54,0xfe,0xaf,0xfe,0x9d,0x0a,0x0a,0x01,0x5e,0xa7,0xaf,0x03,0x90,0xfe,0x78,0xfe,0xfe,0xde,0x01,0x22,0x01,0x04,0xf0,0x01,0x2a,0x01,0x72,0xfe,0x8e,0xfd,0xe4,0x01,0x84,0xfe,0x78,0xfe,0x6a,0xdb,0x00,0x00,0x01, +0x00,0xaa,0x00,0x00,0x04,0xd5,0x05,0x9a,0x00,0x1b,0x00,0x5e,0x40,0x3c,0x9c,0x0a,0x01,0x8a,0x0a,0x01,0x89,0x09,0x99,0x09,0x02,0x98,0x05,0x01,0x39,0x05,0x01,0x89,0x04,0x01,0x4b,0x04,0x01,0x39,0x04,0x01,0x2b,0x04,0x01,0x18,0x04,0x01,0x1b,0x7e,0x01,0x01,0x0e,0x1d,0x11,0x0c,0x7e,0x0e,0x36,0x11,0x01,0x15,0x11,0x25,0x11,0x02, +0x11,0x07,0x91,0x16,0x16,0x10,0x03,0x01,0x0d,0x12,0x00,0x3f,0xce,0x3f,0x39,0x2f,0xed,0x33,0x5d,0x5d,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02, +0x15,0x04,0xd5,0xa8,0x2b,0x57,0x86,0x5b,0x5c,0x8c,0x5f,0x31,0xa8,0xa8,0x1d,0x4b,0x5e,0x71,0x42,0x85,0xc5,0x81,0x3f,0x01,0x3c,0xe7,0x6a,0xaa,0x75,0x3f,0x41,0x79,0xaf,0x6e,0xfd,0xec,0x05,0x9a,0xfe,0x45,0x21,0x3c,0x2c,0x1a,0x55,0xa2,0xec,0x97,0x00,0x01,0x00,0xbc,0xff,0x38,0x04,0x08,0x05,0x9a,0x00,0x0f,0x00,0x1f,0x40,0x0f, +0x09,0x7e,0x0a,0x0a,0x11,0x03,0x7e,0x00,0x02,0x03,0x0a,0x03,0x91,0x00,0x12,0x00,0x3f,0xed,0xce,0x3f,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x33,0x11,0x21,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e,0x02,0x23,0xbc,0xa8,0x01,0x6a,0x55,0x78,0x4b,0x22,0xb0,0x12,0x2a,0x43,0x30,0x05,0x9a,0xfa,0xfe,0x37,0x60,0x80,0x49, +0x2b,0x49,0x36,0x1e,0x00,0x01,0x00,0xbc,0xff,0xe8,0x05,0xc3,0x05,0x9a,0x00,0x1f,0x00,0x5a,0x40,0x38,0x94,0x1e,0x01,0x6a,0x15,0x7a,0x15,0x8a,0x15,0x03,0x59,0x15,0x01,0x84,0x11,0x01,0x65,0x11,0x75,0x11,0x02,0x56,0x11,0x01,0x9a,0x02,0x01,0x0d,0x7e,0x05,0x1a,0x7e,0x18,0x05,0x18,0x05,0x18,0x09,0x21,0x0c,0x07,0x7e,0x09,0x19, +0x06,0x91,0x0d,0x0f,0x0b,0x03,0x13,0x91,0x00,0x00,0x08,0x12,0x00,0x3f,0x33,0x2f,0xed,0x3f,0x3f,0xed,0xc4,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x22,0x2e,0x02,0x35,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e, +0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x04,0x23,0x5d,0x99,0x6c,0x3b,0xfe,0xde,0xa8,0xa8,0x01,0xc5,0x27,0x43,0x5b,0x35,0x35,0x5d,0x44,0x27,0xa3,0x3b,0x6d,0x9a,0x18,0x36,0x6d,0xa4,0x6d,0x01,0xcc,0xfc,0x98,0x05,0x9a,0xfe,0x66,0xfd,0xb6,0x51,0x7a,0x51,0x28,0x28,0x51,0x7a,0x51,0x02,0x4a,0xfd,0x9c,0x6d,0xa4,0x6d,0x36,0x00, +0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0x04,0x05,0xb2,0x00,0x1a,0x00,0x25,0x00,0xf0,0x40,0x33,0x76,0x21,0x01,0x79,0x25,0x01,0x26,0x22,0x76,0x22,0x02,0x3a,0x1f,0x01,0x86,0x1d,0x01,0x39,0x1d,0x01,0x45,0x17,0x55,0x17,0x02,0x05,0x17,0x15,0x17,0x25,0x17,0x03,0x98,0x04,0x01,0x38,0x02,0x88,0x02,0x02,0x89,0x1c,0x01,0x96,0x16,0xa6, +0x16,0xe6,0x16,0x03,0x15,0xb8,0xff,0xe0,0xb3,0x2e,0x31,0x48,0x15,0xb8,0xff,0xc0,0x40,0x6e,0x25,0x28,0x48,0x0c,0x15,0x0a,0x11,0x18,0x7d,0x6b,0x05,0x7b,0x05,0x8b,0x05,0x03,0x08,0x05,0x18,0x05,0x02,0x6b,0x1e,0x01,0x09,0x1e,0x19,0x1e,0x29,0x1e,0x03,0x1e,0x05,0x07,0x10,0x1b,0x20,0x1b,0x30,0x1b,0x03,0x1b,0x1b,0x03,0x27,0x0a, +0x7e,0x07,0x20,0x7d,0x0f,0x03,0x1f,0x03,0x02,0x03,0x1e,0x18,0x1a,0x1f,0x48,0x09,0x1e,0x01,0xe9,0x1e,0xf9,0x1e,0x02,0x1e,0x05,0x07,0x91,0x06,0x15,0x16,0x15,0x26,0x15,0x03,0xb9,0x15,0x01,0x15,0xb9,0x0c,0x01,0x0c,0xb0,0x0a,0xc0,0x0a,0xd0,0x0a,0x03,0x0a,0x0a,0x08,0x11,0x13,0x91,0x10,0x0e,0x04,0x08,0x03,0x23,0x91,0x00,0x13, +0x00,0x3f,0xed,0x3f,0x3f,0x33,0xed,0x32,0x10,0xcd,0x2f,0x5d,0x32,0x5d,0x32,0x71,0x72,0xed,0x32,0x32,0x5d,0x71,0x2b,0x01,0x2f,0x5d,0xed,0xd4,0xed,0x11,0x12,0x39,0x2f,0x5d,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0xfd,0xc4,0x12,0x39,0x39,0x2b,0x2b,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x05,0x20,0x00,0x11,0x10,0x37,0x26,0x27,0x11,0x33,0x15,0x16,0x17,0x36,0x21,0x32,0x17,0x15,0x26,0x23,0x26,0x07,0x16,0x00,0x11,0x10,0x00,0x13,0x10,0x24,0x27,0x06,0x11,0x14,0x16,0x33,0x36,0x36,0x02,0xc0,0xfe,0xf4,0xfe,0xaa,0xd4,0x63,0x71,0x9c,0x79,0x6c,0xed,0x01,0x42,0x86,0x70,0x7f,0x8a,0xad,0x84,0xe7,0x01,0x53,0xfe,0xbb, +0x95,0xfe,0x8e,0xe8,0xec,0xf7,0xb8,0xbd,0xda,0x18,0x01,0x4a,0x01,0x24,0x01,0x45,0xec,0x06,0x01,0x01,0x0c,0x79,0x01,0x0b,0x9d,0x10,0xb0,0x28,0x02,0x30,0x27,0xfe,0xd2,0xfe,0xde,0xfe,0xce,0xfe,0xa5,0x02,0x83,0x01,0x0c,0xef,0x0e,0xcb,0xfe,0xb9,0xea,0xf9,0x01,0xff,0x00,0x01,0x00,0xaa,0x00,0x00,0x04,0xd5,0x05,0x9a,0x00,0x17, +0x00,0x49,0x40,0x2d,0x4b,0x16,0x01,0x95,0x08,0x01,0x84,0x08,0x01,0x34,0x03,0x01,0x25,0x03,0x01,0x0c,0x7e,0x0a,0x0f,0x0f,0x19,0x01,0x7e,0x17,0x8e,0x0f,0x01,0x49,0x0f,0x01,0x2a,0x0f,0x3a,0x0f,0x02,0x0f,0x05,0x91,0x14,0x0e,0x12,0x0b,0x0f,0x01,0x03,0x00,0x3f,0x3f,0x3f,0xde,0xed,0x33,0x5d,0x5d,0x5d,0x01,0x2f,0xed,0x12,0x39, +0x2f,0xc4,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x11,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x11,0x23,0x11,0x0e,0x03,0x23,0x20,0x02,0x11,0xaa,0xa8,0xab,0xb7,0x51,0x8b,0x64,0x39,0xa8,0xa8,0x1b,0x50,0x63,0x71,0x3b,0xfe,0xf6,0xff,0x05,0x9a,0xfd,0xa1,0xd6,0xd4,0x34,0x6c,0xa6,0x73,0xb6,0xfc,0x00,0x01, +0x7f,0x1c,0x30,0x24,0x15,0x01,0x2e,0x01,0x2e,0x00,0x00,0x01,0x00,0x21,0xff,0x68,0x04,0x50,0x06,0x02,0x00,0x0d,0x00,0xa1,0x40,0x5e,0xa6,0x08,0xb6,0x08,0x02,0xa9,0x04,0x01,0xb8,0x04,0x01,0x08,0x07,0x08,0x09,0x07,0x7e,0x06,0x05,0x14,0x06,0x06,0x05,0x06,0x05,0x0b,0x04,0x03,0x04,0x7e,0x0a,0x0b,0x14,0x0a,0x04,0x05,0x0a,0x0b, +0x08,0x09,0x04,0x05,0x08,0x05,0x04,0x7e,0x09,0x08,0x14,0x09,0x08,0x04,0x09,0x09,0x0a,0x61,0x05,0x01,0xc1,0x05,0xd1,0x05,0xe1,0x05,0x03,0x05,0x0a,0x05,0x0a,0x03,0x0d,0x7e,0x00,0x00,0x0f,0x03,0x86,0x0a,0x01,0x48,0x05,0x01,0x07,0x05,0x09,0x0a,0x04,0x06,0x0b,0x91,0x03,0x00,0x02,0x12,0x00,0x3f,0xce,0x33,0xed,0x2f,0x17,0x39, +0x5d,0x5d,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x5d,0x71,0x11,0x33,0x10,0xc1,0x87,0x04,0x2b,0x10,0x01,0xc1,0x87,0x04,0x7d,0x10,0xc4,0x87,0x08,0x18,0x10,0x2b,0x87,0x05,0x7d,0xc4,0x11,0x01,0x33,0x87,0x18,0x10,0x2b,0x08,0x7d,0x10,0xc4,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x05,0x35,0x21,0x35,0x01,0x25,0x13, +0x17,0x07,0x05,0x15,0x01,0x21,0x11,0x03,0xa8,0xfc,0x79,0x02,0xb3,0xfe,0x8c,0x8c,0x95,0x46,0x01,0x6b,0xfd,0x76,0x03,0x34,0x98,0x98,0x2f,0x04,0x03,0xc2,0x01,0x0e,0x4e,0x86,0xba,0x1d,0xfc,0x41,0xfe,0xd0,0x00,0x02,0x00,0x5e,0xff,0xc6,0x05,0x38,0x05,0xb2,0x00,0x35,0x00,0x45,0x00,0xba,0x40,0x7a,0x39,0x34,0x49,0x34,0x59,0x34, +0x03,0x84,0x1f,0x01,0x9b,0x1a,0x01,0x86,0x14,0x01,0x7a,0x10,0x01,0x28,0x10,0x01,0x69,0x0f,0x79,0x0f,0x02,0x56,0x09,0x01,0x37,0x09,0x47,0x09,0x02,0x9d,0x2b,0x01,0x7c,0x2b,0x8c,0x2b,0x02,0x2b,0x2a,0x2a,0x91,0x25,0x01,0x64,0x25,0x74,0x25,0x84,0x25,0x03,0x30,0x25,0x36,0x22,0x7e,0x9e,0x3c,0x01,0x8d,0x3c,0x01,0x7e,0x3c,0x01, +0x6b,0x3c,0x01,0x3c,0x0a,0x36,0x10,0x0d,0x20,0x0d,0x02,0x0d,0x0d,0x47,0x36,0x7e,0x00,0x17,0x7e,0x18,0x18,0x0f,0x00,0x1f,0x00,0x02,0x00,0x3c,0x25,0x39,0x41,0x18,0x18,0x12,0x30,0x0a,0x33,0x05,0x91,0x41,0x39,0x91,0x33,0x2a,0x2b,0x2b,0x33,0x13,0x12,0x91,0x1d,0x04,0x00,0x3f,0xed,0x3f,0x33,0x2f,0x33,0x10,0xfd,0xde,0xed,0x11, +0x39,0x39,0x11,0x39,0x2f,0x11,0x12,0x39,0x39,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x10,0xed,0x12,0x39,0x2f,0x5d,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0xed,0x11,0x39,0x39,0x5d,0x5d,0x32,0x2f,0x33,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x36,0x36,0x35,0x34,0x2e,0x02, +0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x02,0x07,0x1e,0x03,0x17,0x07,0x2e,0x03,0x27,0x06,0x04,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x36,0x36,0x37,0x2e,0x03,0x23,0x22,0x0e,0x02,0x5e,0x05,0x31,0x5f,0x8e,0x61,0x3f,0x7c,0x78,0x73,0x35,0x41,0x48,0x34,0x67,0x9c,0x69,0x63,0x98,0x67,0x36,0xb0, +0x54,0x99,0xd7,0x84,0x89,0xdb,0x9a,0x52,0x5d,0x53,0x14,0x40,0x45,0x42,0x17,0x73,0x18,0x42,0x46,0x43,0x18,0x74,0xfe,0xff,0x91,0xa9,0xb3,0xa6,0x5b,0x5b,0x6d,0xb5,0x51,0x23,0x4e,0x57,0x5d,0x30,0x38,0x50,0x34,0x18,0xf8,0x3f,0x67,0x49,0x29,0x18,0x2a,0x38,0x1f,0x4f,0xcb,0x8a,0x63,0xb8,0x8f,0x56,0x3f,0x70,0x9d,0x5d,0x81,0xd4, +0x97,0x54,0x63,0xae,0xed,0x8a,0xa7,0xfe,0xfc,0x64,0x0f,0x37,0x3e,0x3c,0x13,0x82,0x16,0x3f,0x41,0x3a,0x12,0x57,0x69,0x92,0x7c,0x29,0x3d,0x01,0x41,0x33,0x12,0x23,0x1c,0x12,0x12,0x1f,0x29,0x00,0x00,0x01,0x00,0x78,0x00,0x00,0x05,0x94,0x05,0xb2,0x00,0x0f,0x00,0x56,0x40,0x38,0x96,0x0c,0x01,0x24,0x0c,0x34,0x0c,0x02,0x98,0x0a, +0x01,0x2a,0x0a,0x3a,0x0a,0x02,0xa8,0x03,0x01,0x57,0x03,0x01,0x45,0x03,0x01,0xa7,0x01,0x01,0x49,0x01,0x59,0x01,0x02,0x06,0x05,0x7e,0xc0,0x09,0x01,0x09,0x09,0x11,0x0e,0x7e,0x0f,0x0e,0x0e,0x02,0x05,0x91,0x08,0x12,0x0b,0x91,0x02,0x04,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x01,0x2f,0xed,0x12,0x39,0x2f,0x5d,0xfd,0xcd,0x31, +0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x10,0x21,0x20,0x11,0x11,0x33,0x15,0x21,0x11,0x10,0x21,0x20,0x11,0x15,0x23,0x78,0x02,0x14,0x02,0x17,0xf1,0xfe,0x67,0xfe,0x92,0xfe,0x93,0xa8,0x03,0x56,0x02,0x5c,0xfd,0xbb,0xfd,0x2b,0x98,0x03,0x62,0x01,0xb9,0xfe,0x56,0x97,0x00,0x00,0x02,0x00,0x62,0x00,0x00,0x05,0x3a, +0x05,0x9a,0x00,0x13,0x00,0x1b,0x00,0x7d,0x40,0x51,0x78,0x17,0x01,0x36,0x12,0x01,0x07,0x12,0x17,0x12,0x02,0x44,0x11,0x84,0x11,0x94,0x11,0x03,0x29,0x03,0x39,0x03,0x02,0x19,0x10,0x14,0x4a,0x04,0x7a,0x04,0x8a,0x04,0x9a,0x04,0x04,0x04,0x09,0x01,0x0d,0x0d,0x00,0x7e,0x15,0x15,0x1d,0x14,0x7e,0x01,0x06,0x06,0x01,0x19,0x20,0x24, +0x2a,0x48,0x19,0x20,0x17,0x1e,0x48,0x19,0x04,0x06,0x91,0x10,0x09,0xd0,0x07,0x01,0x07,0x07,0x01,0x0d,0x91,0x0c,0x03,0x14,0x91,0x01,0x12,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x2b,0x2b,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0x12,0x39,0x39,0x5d,0x12,0x39,0x39,0x31,0x30, +0x71,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x11,0x10,0x37,0x26,0x23,0x35,0x20,0x17,0x36,0x21,0x33,0x15,0x23,0x22,0x07,0x04,0x00,0x11,0x01,0x21,0x11,0x10,0x24,0x27,0x06,0x11,0x05,0x3a,0xfb,0x82,0xca,0x59,0xcb,0x01,0x47,0x76,0xf7,0x01,0x56,0xce,0xe1,0xd4,0xa9,0x01,0x07,0x01,0x57,0xfc,0x2a,0x03,0x2e,0xfe,0xa6,0xfd,0xd7,0x02,0x10, +0x01,0x45,0xe7,0x07,0x9b,0x0f,0xcb,0x98,0x53,0x2c,0xfe,0xde,0xfe,0xce,0xfe,0x69,0x01,0x8d,0x01,0x0f,0xe4,0x18,0xd3,0xfe,0xbf,0x00,0x00,0x01,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x05,0x9a,0x00,0x0f,0x00,0x57,0x40,0x39,0x29,0x0e,0x39,0x0e,0x02,0x96,0x0c,0x01,0x25,0x0c,0x35,0x0c,0x02,0x4a,0x07,0x5a,0x07,0xda,0x07,0x03,0xc8,0x05, +0x01,0xa9,0x05,0x01,0x46,0x05,0x01,0xb7,0x0c,0x01,0x02,0x03,0x7e,0x30,0x0f,0x01,0x0f,0x0f,0x11,0x0a,0x7e,0xb0,0x08,0x01,0x08,0x09,0x03,0x0d,0x91,0x06,0x13,0x03,0x91,0x00,0x03,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xfd,0xcd,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01, +0x21,0x15,0x23,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x10,0x21,0x20,0x11,0x04,0x2d,0x01,0xa3,0xfb,0xfd,0xdf,0xfd,0xf6,0xa8,0x01,0x74,0x01,0x67,0x05,0x9a,0x98,0xfd,0x42,0xfd,0xa4,0x02,0x45,0x03,0x6d,0xfc,0x9e,0xfe,0x47,0x01,0xaa,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0x4d,0x05,0xb2,0x00,0x3f,0x00,0x9b,0x40,0x63,0x49,0x3e, +0x01,0x33,0x10,0x10,0x13,0x48,0x6a,0x33,0x01,0x57,0x2d,0x01,0x67,0x29,0x77,0x29,0x02,0x56,0x29,0x01,0x46,0x24,0x56,0x24,0x02,0x84,0x20,0x01,0x87,0x1f,0x01,0xaa,0x1a,0x01,0x98,0x1a,0x01,0x7a,0x1a,0x8a,0x1a,0x02,0x63,0x14,0x01,0x79,0x10,0x01,0x6b,0x10,0x01,0x79,0x0f,0x01,0x25,0x06,0x22,0x7e,0x0d,0x0d,0x2b,0x7e,0x00,0x00, +0x18,0x41,0x36,0x7e,0x35,0x35,0x18,0x06,0x06,0x17,0x7e,0x18,0x26,0x25,0x06,0x18,0x18,0x12,0x08,0x91,0x06,0x36,0x06,0x36,0x12,0x3b,0x91,0x30,0x13,0x12,0x91,0x1d,0x04,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0xed,0x11,0x39,0x2f,0x11,0x39,0x39,0x01,0x2f,0xed,0x33,0x2f,0x11,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed, +0x33,0x2f,0xed,0x11,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x2b,0x5d,0x01,0x34,0x2e,0x02,0x23,0x21,0x35,0x21,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22, +0x2e,0x02,0x27,0x33,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xa5,0x3b,0x70,0xa3,0x69,0xfe,0xac,0x01,0x4e,0x5e,0x93,0x60,0x30,0x26,0x45,0x60,0x3a,0x34,0x61,0x4a,0x2c,0xa6,0x4b,0x79,0x9c,0x51,0x51,0x9a,0x79,0x49,0x9a,0x90,0x48,0x84,0x62,0x38,0x55,0x8f,0xba,0x64,0x5c,0xb0,0x8a,0x55,0x02,0xa6,0x30,0x57,0x7c,0x4b,0x41,0x7a, +0x5f,0x39,0x01,0x87,0x46,0x69,0x47,0x23,0x8b,0x21,0x42,0x63,0x42,0x3d,0x5c,0x3d,0x1e,0x1b,0x36,0x50,0x34,0x58,0x84,0x58,0x2c,0x2d,0x57,0x7f,0x53,0x8e,0xb6,0x28,0x04,0x05,0x34,0x5a,0x7b,0x48,0x67,0xa0,0x6e,0x39,0x27,0x54,0x86,0x60,0x34,0x50,0x37,0x1c,0x24,0x47,0x67,0x00,0x00,0x01,0xff,0xf6,0xff,0xe8,0x05,0x1c,0x05,0x9a, +0x00,0x0f,0x00,0x54,0x40,0x38,0x29,0x0c,0x39,0x0c,0x49,0x0c,0x99,0x0c,0x04,0x97,0x0a,0x01,0x25,0x0a,0x35,0x0a,0x45,0x0a,0x03,0x46,0x03,0x56,0x03,0x02,0xd7,0x03,0x01,0x58,0x03,0x01,0x56,0x01,0x01,0x0f,0x7e,0x10,0x0e,0x01,0x0e,0x0e,0x11,0x08,0x7e,0x06,0x04,0x0e,0x0e,0x02,0x05,0x91,0x07,0x03,0x0b,0x91,0x02,0x13,0x00,0x3f, +0xed,0x3f,0xed,0x12,0x39,0x2f,0x01,0x2f,0xce,0xed,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x20,0x11,0x11,0x23,0x35,0x21,0x11,0x10,0x21,0x20,0x11,0x35,0x33,0x05,0x1c,0xfd,0xec,0xfd,0xe9,0xfb,0x01,0xa3,0x01,0x6e,0x01,0x6d,0xa8,0x02,0x44,0xfd,0xa4,0x02,0x45,0x02,0xd5,0x98,0xfc, +0x9e,0xfe,0x47,0x01,0xaa,0xab,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0xf6,0x05,0xba,0x00,0x23,0x00,0xa4,0x40,0x69,0x97,0x22,0x01,0x98,0x1e,0x01,0x99,0x19,0x01,0x38,0x19,0x48,0x19,0x02,0x9b,0x18,0x01,0x94,0x14,0x01,0x85,0x09,0x01,0x76,0x09,0x01,0x27,0x09,0x01,0x87,0x08,0x01,0x84,0x02,0x01,0x55,0x02,0x01,0x47,0x02,0x01,0x01, +0x20,0x21,0x23,0x21,0x00,0x21,0x7e,0x22,0x23,0x14,0x22,0x22,0x23,0x00,0x9f,0x20,0x01,0x8c,0x20,0x01,0x71,0x01,0x01,0x64,0x01,0x01,0x20,0x01,0x21,0x23,0x23,0x11,0x7e,0x10,0x10,0x20,0x10,0x02,0x10,0x10,0x1b,0x25,0x22,0x21,0x21,0x06,0x7e,0x0f,0x1b,0x1f,0x1b,0x02,0x1b,0x00,0x11,0x00,0x11,0x22,0x04,0x0b,0x91,0x16,0x13,0x00, +0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x33,0x87,0x04,0x10,0x2b,0x87,0x7d,0xc4,0x10,0xc4,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x25,0x0e,0x03,0x15,0x14,0x1e,0x02, +0x33,0x32,0x3e,0x02,0x35,0x33,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x25,0x37,0x01,0x04,0xb8,0xfe,0x92,0x88,0xd4,0x93,0x4d,0x37,0x6a,0x9b,0x64,0x63,0x98,0x67,0x36,0xb0,0x54,0x99,0xd7,0x84,0x86,0xdb,0x9b,0x54,0x43,0x7e,0xb6,0x73,0xfe,0x8b,0x27,0x03,0xe5,0x04,0x14,0x66,0x15,0x6b,0x99,0xbd,0x69,0x61, +0xa3,0x76,0x42,0x3f,0x70,0x9d,0x5d,0x7d,0xd3,0x9a,0x56,0x4f,0x96,0xd7,0x88,0x6c,0xcf,0xae,0x84,0x22,0x6c,0x93,0xfe,0xed,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0x25,0x05,0xb2,0x00,0x19,0x00,0x3f,0x40,0x28,0x3b,0x12,0x4b,0x12,0x02,0x86,0x0a,0x96,0x0a,0x02,0x95,0x09,0x01,0x86,0x09,0x01,0x25,0x09,0x01,0x99,0x05,0x01,0x2a,0x05, +0x01,0x19,0x7e,0x01,0x01,0x1b,0x0c,0x7e,0x0e,0x07,0x91,0x14,0x04,0x01,0x0d,0x12,0x00,0x3f,0xc4,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x05,0x25,0xa8,0x39,0x69, +0x93,0x5a,0x5d,0x98,0x6c,0x3b,0xa8,0x4e,0x91,0xd0,0x83,0x88,0xd9,0x97,0x51,0x03,0x71,0x6a,0xa0,0x6b,0x35,0x37,0x6e,0xa6,0x6e,0xfc,0x9e,0x03,0x6d,0x91,0xda,0x91,0x49,0x4b,0x97,0xe3,0x97,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x04,0xf6,0x05,0xb2,0x00,0x23,0x00,0x9a,0x40,0x63,0x46,0x1e,0x56,0x1e,0x96,0x1e,0x03,0x93,0x19,0x01, +0x45,0x18,0x01,0x9c,0x14,0x01,0x38,0x14,0x01,0x86,0x0d,0x01,0x89,0x09,0x01,0x3a,0x09,0x01,0x01,0x20,0x21,0x23,0x21,0x00,0x21,0x7e,0x22,0x23,0x14,0x22,0x22,0x23,0x99,0x22,0x01,0x22,0x21,0x21,0x81,0x20,0x91,0x20,0x02,0x34,0x20,0x74,0x20,0x02,0x20,0x23,0x1b,0x7e,0x6d,0x01,0x01,0x01,0x23,0x10,0x06,0x20,0x06,0x30,0x06,0x03, +0x06,0x06,0x11,0x25,0x00,0x23,0x23,0x10,0x7e,0x0f,0x11,0x1f,0x11,0x02,0x11,0x00,0x10,0x00,0x10,0x22,0x12,0x0b,0x91,0x16,0x04,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x5d,0x12,0x39,0x5d,0xed,0x11,0x39,0x5d,0x5d,0x32,0x2f,0x33,0x5d,0x87,0x04,0x10,0x2b,0x87,0x7d,0xc4, +0x10,0xc4,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x05,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x05,0x07,0x01,0x9c,0x01,0x6e,0x88,0xd4,0x93,0x4d,0x37,0x6a,0x9b,0x64,0x63,0x98,0x67,0x36,0xb0,0x54,0x99,0xd7,0x84,0x86, +0xdb,0x9b,0x54,0x43,0x7e,0xb6,0x73,0x01,0x75,0x27,0xfc,0x1b,0x01,0xa6,0x66,0x15,0x65,0x91,0xb8,0x69,0x61,0x9f,0x71,0x3e,0x3f,0x70,0x9d,0x5d,0x7d,0xd3,0x9a,0x56,0x4b,0x91,0xd3,0x88,0x6c,0xc9,0xa7,0x7e,0x22,0x6c,0x93,0x01,0x13,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x05,0x89,0x05,0xb2,0x00,0x1c,0x00,0x58,0x40,0x38,0x7a,0x19, +0x01,0x68,0x19,0x01,0x1a,0x19,0x01,0x96,0x11,0x01,0x85,0x11,0x01,0x27,0x11,0x01,0x25,0x10,0x01,0x2a,0x0c,0x01,0x8b,0x0b,0x9b,0x0b,0x02,0x29,0x0b,0x01,0x16,0x03,0x01,0x13,0x7e,0x15,0x00,0x06,0x7e,0x08,0x1b,0x7e,0x00,0x08,0x08,0x01,0x00,0x15,0x12,0x1b,0x01,0x91,0x0e,0x04,0x00,0x3f,0xed,0x32,0x3f,0xce,0x11,0x39,0x2f,0x01, +0x2f,0xed,0xde,0xed,0x10,0xde,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x11,0x0e,0x03,0x15,0x15,0x23,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x11,0x02,0xaf,0x52,0x8e,0x69,0x3c,0xa8,0x5b,0xa8,0xed,0x92,0x92,0xee,0xa9,0x5c,0xa8,0x3c,0x6a,0x90,0x54, +0x01,0x59,0x03,0xbc,0x0b,0x47,0x74,0x9f,0x62,0x74,0x7f,0x91,0xe0,0x99,0x4f,0x52,0x9e,0xe9,0x97,0xfc,0xbe,0x03,0x5d,0x5f,0x9a,0x71,0x45,0x0a,0xfc,0x43,0x00,0x02,0x00,0x64,0xff,0x38,0x05,0x44,0x05,0xb2,0x00,0x28,0x00,0x3a,0x00,0xb7,0x40,0x79,0x95,0x37,0x01,0x47,0x37,0x01,0x93,0x36,0x01,0x94,0x33,0x01,0x55,0x32,0x95,0x32, +0x02,0x45,0x2d,0x01,0x36,0x2d,0x01,0x2b,0x2b,0x8b,0x2b,0x02,0x68,0x2a,0x78,0x2a,0x02,0x94,0x27,0x01,0x94,0x24,0x01,0x36,0x24,0x01,0x89,0x1e,0x01,0x8a,0x1d,0x01,0x8a,0x1b,0x01,0x5a,0x19,0x01,0x80,0x28,0x90,0x28,0x02,0x61,0x28,0x71,0x28,0x02,0x50,0x28,0x01,0x04,0x28,0x01,0x28,0x0c,0x39,0x7e,0x16,0x4f,0x10,0x01,0x3b,0x10, +0x01,0x29,0x10,0x01,0x10,0x0e,0x16,0x05,0x7e,0x06,0x06,0x26,0x7e,0x29,0x16,0x29,0x16,0x29,0x20,0x3c,0x0c,0x7e,0x0e,0x0e,0x2f,0x7e,0x20,0x39,0x10,0x2c,0x91,0x23,0x04,0x28,0x10,0x91,0x0c,0x06,0x0e,0x0c,0x12,0x00,0x3f,0xdd,0xc4,0x10,0xfd,0xc4,0x3f,0xed,0x11,0x39,0x01,0x2f,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f, +0x10,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x5d,0x5d,0x5d,0x10,0xed,0x11,0x39,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e,0x02,0x23,0x21,0x15,0x23,0x11,0x21,0x36,0x37,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35, +0x34,0x00,0x33,0x20,0x00,0x11,0x10,0x05,0x01,0x34,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x36,0x04,0x0a,0x55,0x78,0x4b,0x22,0xb0,0x12,0x2a,0x43,0x30,0xfd,0x29,0xaa,0x01,0x93,0x50,0x2f,0x35,0x41,0x1d,0x14,0x2c,0x45,0x30,0x43,0x88,0x6e,0x45,0x01,0x18,0xea,0x01,0x08,0x01,0x34,0xfe,0x26,0x01,0x2a,0xcf, +0xbd,0xa4,0xae,0x2d,0x4d,0x64,0x37,0x3d,0x63,0x44,0x25,0xc0,0x98,0x37,0x60,0x80,0x49,0x2b,0x49,0x36,0x1e,0xc8,0x01,0x60,0x1d,0x1b,0x1e,0x3b,0x38,0x17,0x20,0x34,0x2c,0x27,0x13,0x1a,0x48,0x66,0x8a,0x5c,0xc0,0x01,0x12,0xfe,0xb3,0xfe,0xe3,0xfe,0x42,0xf2,0x02,0xa1,0xd6,0x01,0x0c,0xc3,0x78,0x33,0x5b,0x4e,0x3d,0x15,0x18,0x39, +0x47,0x56,0x33,0xae,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0xc6,0x05,0xb2,0x00,0x11,0x00,0x6a,0x40,0x46,0xd9,0x0a,0xf9,0x0a,0x02,0xa8,0x0a,0x01,0x46,0x0a,0x01,0x09,0x08,0x01,0x59,0x08,0x01,0x4a,0x08,0x01,0x97,0x03,0x01,0x25,0x03,0x35,0x03,0x02,0xb7,0x01,0x01,0x29,0x01,0x39,0x01,0x02,0x70,0x0e,0x01,0x0e,0x0c,0x0f,0x7e,0x30, +0x11,0x70,0x11,0x02,0x11,0x11,0x13,0x04,0x7e,0xb0,0x06,0x01,0x06,0x0d,0x91,0x0f,0x0f,0x06,0x02,0x91,0x09,0x03,0x11,0x11,0x06,0x12,0x00,0x3f,0x33,0x2f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xfd,0x32,0xcd,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x20, +0x11,0x11,0x23,0x11,0x10,0x21,0x20,0x11,0x15,0x33,0x15,0x23,0x11,0x23,0x04,0x2d,0xfe,0x99,0xfe,0x8c,0xa8,0x02,0x0a,0x02,0x21,0xf1,0xf1,0xa8,0x03,0x71,0x01,0xaa,0xfe,0x47,0xfc,0x9e,0x03,0x6d,0x02,0x45,0xfd,0xa4,0x3d,0x98,0xfd,0x7f,0x00,0x01,0x00,0xaa,0xff,0xe8,0x05,0x25,0x05,0x9a,0x00,0x19,0x00,0x3f,0x40,0x28,0x99,0x14, +0x01,0x2a,0x14,0x01,0x95,0x10,0x01,0x86,0x10,0x01,0x25,0x10,0x01,0x87,0x0f,0x97,0x0f,0x02,0x3b,0x07,0x4b,0x07,0x02,0x19,0x7e,0x17,0x17,0x1b,0x0c,0x7e,0x0a,0x18,0x0c,0x03,0x12,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xc4,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23, +0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x05,0x25,0x51,0x97,0xd9,0x88,0x83,0xd0,0x91,0x4e,0xa8,0x3b,0x6c,0x98,0x5d,0x5a,0x93,0x69,0x39,0xa8,0x02,0x44,0x97,0xe3,0x97,0x4b,0x49,0x91,0xda,0x91,0x03,0x6d,0xfc,0x9e,0x6e,0xa6,0x6e,0x37,0x35,0x6b,0x9f,0x6b,0x03,0x71,0x00,0x00,0x01, +0x00,0x5e,0x00,0x00,0x05,0x7a,0x05,0x9a,0x00,0x11,0x00,0x57,0x40,0x36,0x9e,0x10,0x01,0x4b,0x10,0x01,0x93,0x06,0x01,0x84,0x06,0x01,0x35,0x03,0x01,0x26,0x03,0x01,0x0a,0x08,0x7e,0x0c,0x06,0x06,0x13,0x01,0x7e,0x11,0x0b,0x4a,0x0d,0x5a,0x0d,0x02,0x3b,0x0d,0x01,0x2d,0x0d,0x01,0x1b,0x0d,0x01,0x0d,0x04,0x91,0x0f,0x09,0x91,0x0c, +0x12,0x01,0x07,0x03,0x00,0x3f,0xce,0x3f,0xed,0xde,0xed,0x33,0x5d,0x5d,0x5d,0x5d,0x01,0x2f,0x2f,0xed,0x12,0x39,0x2f,0xc4,0xfd,0xce,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x33,0x15,0x21,0x11,0x06,0x23,0x20,0x11,0x5e,0xa8,0x01,0x6d,0x01,0x6e,0xa8,0xf1,0xfe,0x67,0x84, +0xeb,0xfd,0xec,0x04,0x5e,0xfe,0xf1,0xfe,0x56,0x01,0xb9,0x02,0x3c,0xfa,0xfe,0x98,0x01,0x93,0x85,0x02,0x5c,0x00,0x00,0x01,0x00,0x64,0xff,0xe8,0x04,0xb5,0x05,0xb2,0x00,0x3a,0x00,0xba,0x40,0x7a,0x75,0x2e,0x01,0x56,0x2e,0x66,0x2e,0x02,0x5b,0x2a,0x01,0x86,0x24,0x96,0x24,0x02,0x75,0x24,0x01,0x66,0x24,0x01,0x75,0x23,0x01,0x67, +0x23,0x01,0x89,0x1e,0x99,0x1e,0x02,0x89,0x1a,0x01,0x4a,0x1a,0x01,0x7a,0x15,0x01,0x69,0x14,0x01,0x5a,0x11,0x01,0x33,0x0e,0x01,0x88,0x08,0x01,0x08,0x10,0x0d,0x10,0x48,0x49,0x07,0x01,0x73,0x03,0x01,0x65,0x03,0x01,0x65,0x02,0x75,0x02,0x02,0x26,0x7e,0x27,0x27,0x12,0x36,0x31,0x00,0x7e,0x17,0x1c,0x60,0x12,0x01,0x12,0x12,0x3c, +0x31,0x7e,0x1c,0x0b,0x7e,0x0a,0x0a,0x60,0x1c,0x01,0x1c,0x27,0x27,0x36,0x2c,0x36,0x10,0x21,0x0b,0x0b,0x17,0x10,0x17,0x05,0x2c,0x91,0x21,0x04,0x10,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x2f,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x10,0xed,0x12,0x39,0x2f,0x5d,0x12,0x39, +0xed,0x11,0x39,0x11,0x33,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x33,0x14,0x1e,0x02,0x33,0x20,0x11,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e, +0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x04,0xb5,0x5a,0x97,0xc6,0x6c,0x67,0xc8,0x9e,0x61,0xb1,0x45,0x6e,0x88,0x44,0x01,0x71,0x33,0x59,0x7a,0x48,0x6d,0xbf,0x8e,0x53,0x3f,0x7a,0xb1,0x72,0x5a,0xae,0x89,0x55,0xb0,0x29,0x4f,0x75,0x4b,0x48,0x6f,0x4c,0x27,0x38,0x62,0x81,0x48,0x6c,0xb9,0x87,0x4c,0x01,0x85, +0x75,0x9e,0x60,0x2a,0x2f,0x67,0xa3,0x74,0x4e,0x6a,0x41,0x1d,0x01,0x06,0x49,0x5e,0x3a,0x22,0x0d,0x14,0x3b,0x60,0x8e,0x68,0x55,0x8b,0x63,0x35,0x2b,0x5f,0x99,0x6f,0x38,0x5c,0x42,0x24,0x20,0x3b,0x52,0x33,0x43,0x5b,0x3c,0x25,0x0c,0x13,0x37,0x5f,0x92,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0x25,0x05,0xb2,0x00,0x0d,0x00,0x4f, +0x40,0x33,0x46,0x0c,0x01,0x33,0x0c,0x01,0x4b,0x0a,0x01,0x3d,0x0a,0x01,0x94,0x05,0x01,0x85,0x05,0x01,0x26,0x05,0x01,0x17,0x05,0x01,0x89,0x03,0x99,0x03,0x02,0x18,0x03,0x28,0x03,0x02,0x0d,0x7e,0x01,0x01,0x0f,0x06,0x7e,0x08,0x00,0x00,0x07,0x04,0x91,0x0b,0x04,0x07,0x12,0x00,0x3f,0x3f,0xed,0x11,0x39,0x2f,0x01,0x2f,0xed,0x12, +0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x10,0x21,0x20,0x11,0x11,0x23,0x11,0x10,0x21,0x20,0x11,0x05,0x25,0xa8,0xfe,0x6b,0xfe,0x6a,0xa8,0x02,0x3f,0x02,0x3c,0x02,0xc6,0xab,0x01,0xaa,0xfe,0x47,0xfc,0x9e,0x03,0x6d,0x02,0x45,0xfd,0xa4,0x00,0x02,0x00,0x90,0xff,0xe8,0x04,0xdf, +0x05,0xb2,0x00,0x2f,0x00,0x43,0x00,0x9f,0x40,0x67,0x59,0x2d,0x01,0x48,0x29,0x01,0x26,0x24,0x01,0x79,0x1e,0x01,0x68,0x1e,0x01,0x59,0x1e,0x01,0x5a,0x1d,0x01,0x76,0x18,0x01,0x67,0x18,0x01,0x56,0x18,0x01,0x66,0x14,0x76,0x14,0x02,0x64,0x0c,0x74,0x0c,0x84,0x0c,0x03,0x66,0x0b,0x76,0x0b,0x02,0x6a,0x07,0x01,0x7b,0x06,0x8b,0x06, +0x02,0x6c,0x06,0x01,0x01,0x10,0x04,0x0e,0x7e,0x30,0x30,0x16,0x7e,0x50,0x2b,0x01,0x2b,0x2b,0x04,0x45,0x21,0x7e,0x20,0x20,0x3a,0x7e,0x04,0x2f,0x2f,0x04,0x11,0x10,0x2e,0x3f,0x3f,0x01,0x91,0x21,0x2e,0x2e,0x35,0x26,0x91,0x1b,0x13,0x35,0x91,0x09,0x04,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xce,0xed,0x32,0x2f,0x11,0x39,0x39, +0x01,0x2f,0x33,0x2f,0x10,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x10,0x05,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e, +0x02,0x27,0x33,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x21,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x3e,0x03,0xcc,0xbf,0x43,0x45,0x51,0x83,0xa6,0x56,0x55,0xa4,0x82,0x50,0xfe,0xf0,0x49,0x7b,0x5a,0x33,0x5d,0x99,0xc7,0x6a,0x6c,0xc6,0x98,0x5c,0x02,0xa8,0x35,0x64,0x8e,0x5a,0x48,0x89, +0x6c,0x41,0xd1,0xdc,0xfe,0x42,0x03,0x2a,0x30,0x50,0x6a,0x39,0x3f,0x6d,0x4f,0x2d,0x2a,0x4d,0x6c,0x42,0x42,0x6c,0x4e,0x2a,0x03,0x29,0x32,0x93,0x64,0x5b,0x85,0x56,0x2a,0x28,0x57,0x87,0x5a,0xfe,0xed,0x51,0x04,0x05,0x31,0x57,0x7b,0x4e,0x6d,0xa1,0x6a,0x34,0x34,0x6a,0xa1,0x6d,0x43,0x6c,0x4b,0x28,0x20,0x43,0x68,0x48,0x8c,0x8d, +0x01,0x95,0x3a,0x5b,0x3e,0x21,0x23,0x3f,0x5b,0x37,0x40,0x61,0x41,0x22,0x01,0x03,0x23,0x41,0x5f,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0xb2,0x05,0x9a,0x00,0x1a,0x00,0x57,0x40,0x34,0x9a,0x08,0x01,0x79,0x08,0x89,0x08,0x02,0x98,0x07,0x01,0x9a,0x03,0x01,0x3d,0x03,0x4d,0x03,0x02,0x2b,0x03,0x01,0x00,0x19,0x7e,0x01,0x01,0x0c, +0x1c,0x0f,0x0a,0x7e,0x0c,0x1a,0x91,0x01,0x26,0x0f,0x01,0x0f,0x14,0x91,0x05,0x01,0x05,0x01,0x05,0x0b,0x0e,0x03,0x0b,0x12,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x32,0x5d,0x10,0xed,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xfd,0xcd,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x35,0x34,0x26,0x23,0x22, +0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x33,0x05,0xb2,0xfe,0x7b,0xb7,0xb6,0x57,0x88,0x5e,0x31,0xa8,0xa8,0x21,0x49,0x58,0x6b,0x42,0x78,0xbb,0x84,0x4d,0x0b,0xe2,0x01,0xe6,0x47,0xd5,0xe9,0x41,0x79,0xaf,0x6e,0xfd,0xec,0x05,0x9a,0xfe,0x45,0x21,0x3c,0x2c,0x1a,0x44,0x84,0xc0,0x7c,0x00,0x03, +0x00,0x5e,0x00,0x00,0x05,0xf8,0x05,0x9a,0x00,0x14,0x00,0x1d,0x00,0x26,0x00,0x87,0x40,0x5a,0x29,0x22,0x01,0x29,0x1e,0x01,0x26,0x19,0x01,0x26,0x15,0x01,0x68,0x12,0x78,0x12,0x02,0x68,0x0e,0x78,0x0e,0x02,0x67,0x07,0x77,0x07,0x02,0x67,0x04,0x77,0x04,0x02,0x17,0x7d,0x0f,0x10,0x01,0x10,0x10,0x0b,0x20,0x7d,0x90,0x06,0x01,0x00, +0x06,0xc0,0x06,0x02,0x06,0x06,0x25,0x02,0x09,0x7e,0x1b,0x14,0x10,0x0b,0xc0,0x0b,0xd0,0x0b,0xf0,0x0b,0x04,0x0b,0x0b,0x27,0x28,0x1b,0x25,0x91,0x0c,0x09,0x40,0x12,0x16,0x48,0x09,0x0b,0x12,0x24,0x1c,0x91,0x02,0x14,0x00,0x03,0x00,0x3f,0xdd,0x32,0xed,0x32,0x3f,0xdd,0x2b,0x32,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x5d,0x33,0x33, +0xed,0x32,0x32,0x32,0x2f,0x5d,0x71,0xed,0x11,0x33,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x33,0x15,0x04,0x17,0x16,0x15,0x14,0x00,0x21,0x15,0x23,0x35,0x20,0x27,0x26,0x35,0x34,0x37,0x36,0x25,0x01,0x06,0x15,0x14,0x17,0x16,0x33,0x11,0x06,0x01,0x36,0x35,0x34,0x27,0x26,0x27,0x11,0x32,0x02,0xd7, +0xa8,0x01,0x0d,0xb6,0xb6,0xfe,0x94,0xfe,0xf3,0xa8,0xfe,0xf2,0xb5,0xb6,0xb6,0xb5,0x01,0x0e,0xfe,0xab,0x74,0x74,0x73,0xe2,0xe2,0x02,0xdf,0x74,0x74,0x74,0xe1,0xe1,0x05,0x9a,0x8c,0x01,0xa3,0xa3,0xfb,0xfd,0xfe,0xb9,0x88,0x88,0xa3,0xa4,0xfd,0xfb,0xa3,0xa3,0x01,0xfe,0xe6,0x7f,0xab,0xa9,0x80,0x7f,0x03,0x52,0x01,0xfd,0x2e,0x80, +0xa9,0xab,0x7f,0x7f,0x01,0xfc,0xae,0x00,0x00,0x02,0x00,0x14,0x00,0x00,0x04,0xe1,0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0xbe,0x40,0x87,0x39,0x20,0x49,0x20,0x59,0x20,0x99,0x20,0x04,0xe4,0x1e,0x01,0xa6,0x1e,0xb6,0x1e,0x02,0x94,0x1e,0x01,0x36,0x1e,0x46,0x1e,0x56,0x1e,0x03,0xe7,0x1a,0x01,0xa6,0x1a,0x01,0x94,0x1a,0x01,0x35,0x1a, +0x45,0x1a,0x55,0x1a,0x03,0x99,0x18,0x01,0x3a,0x18,0x4a,0x18,0x5a,0x18,0x03,0x06,0x10,0x01,0x5b,0x0c,0x01,0x49,0x0c,0x01,0xe8,0x0c,0x01,0xaa,0x0c,0xba,0x0c,0x02,0x56,0x0a,0x01,0xe7,0x0a,0x01,0x14,0x01,0x7e,0x1c,0x7d,0x04,0x07,0x04,0x15,0x15,0x0e,0x7e,0x16,0x10,0x16,0x01,0x00,0x16,0x10,0x16,0x20,0x16,0x03,0x04,0x16,0x04, +0x16,0x23,0x06,0x19,0x91,0x0b,0x26,0x1f,0x91,0x59,0x13,0x69,0x13,0x02,0x13,0x0f,0x11,0x01,0xbf,0x11,0xcf,0x11,0xdf,0x11,0x03,0x11,0x07,0x15,0x91,0x04,0x01,0x03,0x12,0x00,0x3f,0xdd,0x32,0xfd,0x32,0xde,0x5d,0x71,0x32,0x5d,0xed,0x3f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x71,0x10,0xed,0x32,0x2f,0x11,0x33,0x10,0xed, +0xed,0x32,0x31,0x30,0x5d,0x71,0x5d,0x5d,0x71,0x71,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x21,0x15,0x23,0x35,0x23,0x35,0x33,0x11,0x34,0x00,0x33,0x32,0x00,0x15,0x14,0x02,0x23,0x22,0x27,0x15,0x21,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xe1,0xfc,0xb8,0xa8,0xdd,0xdd,0x01, +0x0b,0xe7,0xee,0x01,0x10,0xf8,0xee,0xda,0x88,0x03,0x48,0xa8,0x9f,0xab,0xa6,0xb0,0xac,0xaa,0xab,0x9f,0x98,0x98,0x98,0x98,0x02,0x8a,0xdf,0x01,0x19,0xfe,0xdf,0xe7,0xe8,0xfe,0xe8,0x77,0xf1,0x02,0x80,0xa8,0xd0,0xd3,0xa1,0xa6,0xda,0xd3,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x17,0x00,0x82,0x40,0x61, +0x1a,0x17,0x01,0xc8,0x13,0x01,0x0a,0x13,0x1a,0x13,0x02,0xc6,0x11,0x01,0x05,0x11,0x15,0x11,0x02,0x85,0x0d,0xc5,0x0d,0x02,0x04,0x0d,0x14,0x0d,0x02,0xc9,0x0b,0x01,0x56,0x0b,0x66,0x0b,0x96,0x0b,0x03,0xd7,0x07,0x01,0x55,0x07,0x65,0x07,0x95,0x07,0x03,0xc6,0x05,0x01,0x59,0x05,0x69,0x05,0x99,0x05,0x03,0xc6,0x01,0x01,0x5a,0x01, +0x6a,0x01,0x9a,0x01,0x03,0x09,0x7d,0x00,0x15,0x10,0x15,0x30,0x15,0x03,0x15,0x15,0x19,0x0f,0x7d,0x0f,0x03,0x1f,0x03,0x02,0x03,0x0c,0x91,0x06,0x04,0x12,0x91,0x00,0x13,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x02,0xfe,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0x8c,0xfe,0xd4,0xe2,0xfe,0xe6,0x01,0x13,0xdd,0xec,0x01,0x10,0xfe,0xf8,0x18,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0xfe,0x70, +0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0x05,0x32,0xfe,0xba,0xfe,0xf7,0xfe,0xf7,0xfe,0xbd,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0x00,0x03,0x00,0x86,0xff,0xe8,0x05,0x45,0x05,0x9a,0x00,0x1f,0x00,0x2a,0x00,0x35,0x00,0x82,0x40,0x54,0x3a,0x28,0x4a,0x28,0x02,0x29,0x28,0x01,0x7c,0x23,0x01,0x69,0x23,0x01,0x4a,0x23,0x01,0x39,0x23,0x01, +0x95,0x1d,0x01,0x99,0x14,0x01,0x45,0x0e,0x95,0x0e,0x02,0x24,0x0e,0x34,0x0e,0x02,0x05,0x0e,0x15,0x0e,0x02,0x96,0x0d,0x01,0x55,0x03,0x01,0x57,0x02,0x01,0x16,0x7e,0x2b,0x11,0x00,0x7e,0x20,0x25,0x1b,0x7e,0x11,0x0a,0x7e,0x0b,0x30,0x11,0x0b,0x0b,0x26,0x11,0x11,0x25,0x05,0x31,0x91,0x1b,0x30,0x1a,0x03,0x10,0x26,0x91,0x05,0x13, +0x00,0x3f,0xed,0x32,0x3f,0x39,0x39,0xed,0x11,0x39,0x39,0x11,0x12,0x39,0x2f,0x01,0x2f,0xc4,0xde,0xed,0x10,0xfd,0xc4,0xdc,0xed,0x10,0xdc,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x33,0x14,0x1e,0x02,0x17,0x11,0x2e,0x03,0x35,0x34,0x36, +0x33,0x33,0x11,0x1e,0x03,0x07,0x34,0x2e,0x02,0x27,0x11,0x3e,0x03,0x01,0x14,0x1e,0x02,0x17,0x11,0x22,0x0e,0x02,0x05,0x45,0x59,0x9f,0xdb,0x82,0x88,0xe3,0xa4,0x5b,0xb1,0x36,0x61,0x84,0x4e,0x6d,0x9c,0x63,0x2f,0xd0,0xcb,0xa8,0x80,0xbf,0x7f,0x3f,0xb0,0x29,0x53,0x7d,0x54,0x4b,0x7b,0x57,0x30,0xfd,0x20,0x29,0x43,0x54,0x2b,0x40, +0x5a,0x38,0x19,0x01,0xe9,0x86,0xc2,0x7d,0x3c,0x44,0x86,0xc6,0x81,0x4d,0x82,0x63,0x3d,0x06,0x02,0xde,0x1a,0x3e,0x4b,0x5a,0x35,0x7a,0x8c,0xfe,0x3f,0x1e,0x61,0x7f,0x9b,0x57,0x3f,0x64,0x50,0x40,0x1b,0xfd,0x4f,0x09,0x33,0x57,0x7c,0x02,0xff,0x21,0x30,0x23,0x1a,0x0a,0x01,0x04,0x10,0x1c,0x28,0x00,0x00,0x01,0x00,0x00,0x04,0x90, +0x00,0xca,0x06,0x1c,0x00,0x0d,0x00,0x50,0x40,0x15,0x0c,0x18,0x22,0x25,0x48,0x0c,0x18,0x09,0x13,0x48,0x08,0x18,0x22,0x25,0x48,0x08,0x18,0x09,0x13,0x48,0x05,0xb8,0xff,0xe8,0xb3,0x1d,0x21,0x48,0x01,0xb8,0xff,0xf0,0x40,0x17,0x1d,0x21,0x48,0x00,0x06,0x03,0xc4,0x10,0x0a,0x20,0x0a,0x30,0x0a,0x03,0x0a,0x00,0xc5,0x40,0x0d,0xc0, +0x06,0xc5,0x07,0x00,0x2f,0xed,0x1a,0xde,0x1a,0xed,0x01,0x2f,0x5d,0xfd,0xce,0x32,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x13,0x22,0x06,0x15,0x14,0x16,0x33,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0xca,0x30,0x40,0x40,0x30,0x54,0x76,0x76,0x54,0x05,0xcb,0x41,0x34,0x34,0x41,0x51,0x6c,0x5a,0x5a,0x6c,0x00,0x01,0x00,0x00,0x04,0x8a, +0x00,0xe1,0x06,0x03,0x00,0x0e,0x00,0x25,0x40,0x0b,0x01,0x18,0x09,0x0d,0x48,0x00,0x03,0xfb,0x09,0x01,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x0d,0x48,0x01,0x03,0x0c,0xaf,0x06,0x2f,0xe1,0x39,0xc4,0x2b,0x00,0x3f,0xfd,0xc4,0x31,0x30,0x2b,0x11,0x35,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x5e,0x14,0x34,0x3e, +0x3a,0x30,0x35,0x42,0x71,0x04,0x8a,0x49,0x05,0x62,0x02,0x38,0x2a,0x2b,0x3a,0x49,0x38,0x60,0x93,0x00,0x00,0x01,0x00,0x00,0x04,0xc2,0x01,0x35,0x06,0x0a,0x00,0x03,0x00,0x22,0x40,0x11,0x78,0x03,0x88,0x03,0x98,0x03,0x03,0x03,0x40,0x00,0x80,0x01,0x40,0x02,0x03,0x80,0x02,0x00,0x2f,0x1a,0xcd,0x01,0x2f,0x1a,0xcd,0x1a,0xdd,0x1a, +0xcd,0x31,0x30,0x5d,0x01,0x03,0x23,0x13,0x01,0x35,0xb6,0x7f,0x8f,0x06,0x0a,0xfe,0xb8,0x01,0x48,0x00,0x00,0x01,0x00,0x00,0x04,0x3e,0x01,0x92,0x06,0x03,0x00,0x1d,0x00,0x13,0xb6,0x03,0x1b,0x1b,0x0d,0x13,0x00,0x0f,0x00,0x2f,0xcc,0x01,0x2f,0xcd,0x33,0x2f,0xcd,0x30,0x31,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15, +0x14,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x35,0x34,0x27,0x01,0x86,0x04,0x08,0x1a,0x2d,0x3c,0x22,0x1a,0x2c,0x21,0x12,0x08,0x71,0x04,0x07,0x59,0x48,0x18,0x2d,0x23,0x15,0x08,0x06,0x03,0x0f,0x30,0x13,0x23,0x38,0x2e,0x25,0x10,0x0c,0x19,0x1d,0x24,0x16,0x17,0x22,0x0f,0x2f,0x14,0x45,0x5b,0x1d,0x0a,0x19,0x1f,0x25, +0x16,0x17,0x22,0x00,0x00,0x01,0x00,0x00,0x04,0xc2,0x01,0x35,0x06,0x0a,0x00,0x03,0x00,0x31,0xb7,0x77,0x03,0x87,0x03,0x97,0x03,0x03,0x03,0xb8,0xff,0xf8,0x40,0x12,0x18,0x1c,0x48,0x01,0x40,0x00,0x80,0x03,0x40,0x50,0x02,0x60,0x02,0x02,0x02,0x03,0x80,0x01,0x00,0x2f,0x1a,0xcd,0x01,0x2f,0x5d,0x1a,0xcd,0x1a,0xdd,0x1a,0xcd,0x31, +0x30,0x2b,0x5d,0x01,0x23,0x03,0x33,0x01,0x35,0x7f,0xb6,0xa8,0x04,0xc2,0x01,0x48,0x00,0x01,0x00,0x00,0x04,0x76,0x02,0x29,0x06,0x1c,0x00,0x2d,0x00,0xa0,0xb5,0x2a,0x08,0x11,0x14,0x48,0x26,0xb8,0xff,0xf8,0x40,0x4f,0x11,0x14,0x48,0x2a,0x1c,0x01,0x1c,0x10,0x11,0x14,0x48,0x06,0x12,0x16,0x12,0x02,0x19,0x07,0x11,0x01,0x2a,0x09, +0x0d,0x01,0x08,0x0c,0x01,0x39,0x0c,0x10,0x19,0x1f,0x48,0x07,0x03,0x17,0x03,0x27,0x03,0x03,0x3e,0x00,0x7f,0x2d,0x8f,0x2d,0x02,0x2d,0x2d,0x16,0x0a,0x9f,0x23,0xaf,0x23,0x02,0x23,0x40,0x09,0x0c,0x48,0x23,0x16,0x10,0x17,0x20,0x17,0x30,0x17,0x03,0x17,0x00,0x00,0x0f,0xc0,0x05,0x01,0x05,0x28,0xb8,0xff,0xc0,0x40,0x12,0x15,0x1a, +0x48,0x28,0x17,0xaf,0x0f,0xbf,0x0f,0xcf,0x0f,0x03,0x0f,0xc0,0x1e,0x01,0x1e,0x17,0xb8,0x01,0x3a,0x00,0x3f,0xdc,0x71,0xcd,0x71,0x10,0xd4,0x2b,0xcd,0x71,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xcd,0xdc,0x2b,0x71,0xcd,0x11,0x39,0x2f,0x71,0xcd,0x31,0x30,0x5e,0x5d,0x2b,0x5e,0x5d,0x5d,0x5e,0x5d,0x5e,0x5d,0x2b,0x5d,0x2b,0x2b,0x01,0x14, +0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x3e,0x04,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x01,0x37,0x07,0x10,0x1b,0x14,0x15,0x1f,0x14,0x09,0x16,0x24,0x30,0x19,0x32,0x4b,0x35,0x23,0x13,0x08,0x5b,0x09,0x1a,0x2e,0x4a,0x69,0x47,0x2e,0x51,0x3c,0x23,0x18, +0x2d,0x40,0x27,0x2a,0x3c,0x28,0x13,0x05,0x4f,0x0e,0x1e,0x19,0x10,0x0e,0x18,0x1f,0x10,0x1a,0x2b,0x1e,0x11,0x20,0x36,0x45,0x4a,0x49,0x1f,0x20,0x57,0x5e,0x5c,0x48,0x2d,0x1e,0x36,0x4a,0x2c,0x23,0x3f,0x2e,0x1b,0x1b,0x2f,0x3d,0x21,0x00,0x00,0x01,0x00,0x00,0x04,0xb7,0x02,0xce,0x06,0x1c,0x00,0x06,0x00,0x2a,0x40,0x16,0xa5,0x01, +0xb5,0x01,0xc5,0x01,0x03,0x96,0x01,0x01,0x01,0x06,0x04,0x00,0x00,0x02,0x04,0x00,0x06,0x05,0x01,0x04,0x00,0x2f,0xdd,0x32,0xcd,0x32,0x01,0x2f,0xcd,0x39,0x2f,0x12,0x39,0x39,0x5d,0x5d,0x31,0x30,0x01,0x07,0x21,0x15,0x21,0x35,0x01,0x01,0x60,0xc9,0x02,0x37,0xfd,0x32,0x01,0x11,0x05,0xd1,0xd5,0x45,0x45,0x01,0x20,0x00,0x00,0x01, +0x00,0x90,0xff,0xe8,0x06,0x3e,0x04,0x00,0x00,0x1f,0x00,0x91,0x40,0x63,0x9c,0x1e,0x01,0x09,0x1e,0x19,0x1e,0x29,0x1e,0x03,0x57,0x1c,0x01,0x98,0x1b,0x01,0xc8,0x1a,0x01,0x9c,0x1a,0x01,0x07,0x0e,0x17,0x0e,0x02,0xf7,0x0e,0x01,0x36,0x0e,0x01,0x66,0x0c,0xe6,0x0c,0xf6,0x0c,0x03,0x55,0x0c,0x01,0x27,0x0c,0x37,0x0c,0x02,0x66,0x0c, +0x76,0x0c,0x86,0x0c,0x03,0x36,0x06,0x01,0x56,0x04,0x01,0x66,0x04,0x76,0x04,0x86,0x04,0x03,0x01,0x84,0x1f,0x08,0x15,0x15,0x12,0x84,0x10,0x1b,0x0a,0x84,0x08,0x08,0x20,0x21,0x16,0x0d,0x0d,0x1b,0x05,0x95,0x18,0x1d,0x16,0x14,0x0f,0x11,0x09,0x00,0x0f,0x00,0x3f,0x32,0x32,0x3f,0x3f,0x33,0xed,0x32,0x32,0x11,0x33,0x11,0x12,0x01, +0x39,0x2f,0xed,0x33,0xdc,0xed,0x33,0x2f,0x10,0xdc,0xed,0x31,0x30,0x5d,0x71,0x5d,0x5d,0x71,0x71,0x71,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x20,0x11,0x90,0xa4,0x69, +0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0xfe,0xae,0x04,0x00,0xfd,0xb4,0xaa,0x98,0xc0,0x86,0x02,0x48,0xfd,0xa0,0xfe,0xd2,0xb5,0x91,0x02,0x48,0xfc,0x00,0xa2,0xba,0x75,0x5f,0xd4,0x01,0xa1,0x00,0x01,0x00,0xa6,0xfe,0x29,0x04,0x2a,0x04,0x18,0x00,0x16,0x00,0x5a,0x40,0x3a,0x75,0x15, +0x01,0x05,0x14,0x15,0x14,0x25,0x14,0x75,0x14,0x85,0x14,0x95,0x14,0x06,0xe8,0x06,0xf8,0x06,0x02,0xc7,0x06,0xd7,0x06,0x02,0x69,0x03,0x01,0x09,0x09,0x18,0x16,0x84,0x01,0x01,0x18,0x0f,0x0b,0x07,0x84,0x0d,0x10,0x04,0x95,0x13,0x01,0x01,0x13,0x10,0x0e,0x0f,0x0d,0x1b,0x09,0x95,0x0b,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0x39,0x2f, +0x10,0xed,0x32,0x01,0x2f,0xed,0x32,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0x02,0xe0,0xfd,0x20,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0x01,0x30, +0x01,0x18,0x01,0x46,0xb9,0x8d,0xfe,0x50,0x98,0xfe,0x29,0x05,0xd7,0xaa,0xc2,0xd9,0xcd,0x00,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0xf2,0x04,0x18,0x00,0x14,0x00,0x21,0x00,0x72,0x40,0x4d,0xc9,0x21,0xd9,0x21,0x02,0x26,0x20,0x36,0x20,0x02,0xc9,0x1e,0xd9,0x1e,0x02,0x64,0x1e,0x01,0x45,0x1e,0x55,0x1e,0x02,0x44,0x1a,0x54,0x1a,0x02, +0x68,0x0d,0x01,0xa7,0x0c,0x01,0xca,0x09,0xda,0x09,0x02,0x02,0x00,0x13,0x84,0x16,0x12,0x20,0x04,0x01,0x04,0x04,0x23,0x1c,0x83,0x0f,0x0b,0x1f,0x0b,0x02,0x0b,0x12,0x0f,0x10,0x19,0x95,0x0e,0x10,0x05,0x1f,0x95,0x08,0x16,0x04,0x1b,0x00,0x95,0x02,0x15,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x01,0x2f,0x5d,0xed, +0x12,0x39,0x2f,0x5d,0x33,0x33,0xfd,0xce,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x15,0x23,0x11,0x23,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xf2,0xe2,0xa4,0x04,0x6b,0xf3,0xc1,0xe9,0x01, +0x00,0xd8,0xd2,0x5e,0x04,0xa4,0xa4,0xa5,0x7f,0x94,0xac,0xa6,0x83,0x90,0xab,0x98,0x98,0xfe,0x29,0x02,0x87,0xc8,0x01,0x13,0xed,0xff,0x01,0x31,0xa6,0x8e,0xfc,0x98,0x01,0x35,0x95,0x7e,0xae,0xdb,0xc7,0xb1,0xc9,0xc5,0x00,0x01,0x00,0xa6,0xfe,0x29,0x04,0xc3,0x04,0x18,0x00,0x16,0x00,0x5d,0x40,0x0b,0x28,0x11,0x01,0x76,0x11,0x86, +0x11,0x96,0x11,0x03,0x10,0xb8,0xff,0xe0,0x40,0x2f,0x10,0x14,0x48,0x05,0x10,0x15,0x10,0x25,0x10,0x03,0x86,0x06,0x96,0x06,0x02,0x28,0x03,0x01,0x68,0x03,0x01,0x14,0x00,0x12,0x84,0x01,0x01,0x18,0x0b,0x07,0x84,0x09,0x14,0x95,0x16,0x15,0x0c,0x04,0x95,0x0f,0x10,0x0a,0x0f,0x09,0x15,0x01,0x1b,0x00,0x3f,0x3f,0x3f,0x3f,0xed,0x32, +0x3f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xfd,0x32,0xce,0x31,0x30,0x5d,0x71,0x71,0x5d,0x2b,0x5d,0x71,0x01,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x33,0x15,0x23,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0xcb,0xcb,0xfe,0x29,0x04,0x1f,0x01, +0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd9,0xcd,0xfe,0x26,0x98,0x00,0x01,0x00,0xa6,0xff,0xe8,0x04,0x2a,0x05,0xec,0x00,0x16,0x00,0x60,0x40,0x3e,0x7a,0x11,0x8a,0x11,0x02,0x10,0x18,0x10,0x14,0x48,0x09,0x10,0x19,0x10,0x29,0x10,0x03,0xc9,0x06,0xd9,0x06,0x02,0x06,0x10,0x1f,0x22,0x48,0x36,0x06,0x01,0x65,0x03,0x01,0x00, +0x00,0x18,0x09,0x84,0x0b,0x07,0x07,0x18,0x15,0x01,0x84,0x12,0x08,0x08,0x0f,0x00,0x95,0x15,0x0f,0x13,0x00,0x0c,0x04,0x95,0x0f,0x16,0x0b,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x11,0x39,0x2f,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x11,0x39,0x2f,0x31,0x30,0x5d,0x5d,0x2b,0x5d,0x5d,0x2b,0x5d,0x01,0x21,0x11,0x10, +0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x21,0x04,0x2a,0xfd,0x20,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0xa4,0x02,0xe0,0x03,0x68,0xfe,0x50,0xfe,0xba,0xb9,0x8d,0x01,0x18,0xfd,0x30,0xaa,0xc2,0xd9,0xcd,0x04,0x5e,0xfe,0x14,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0xec, +0x04,0x18,0x00,0x12,0x00,0x1f,0x00,0x67,0x40,0x46,0xc9,0x1f,0xd9,0x1f,0x02,0x26,0x1e,0x36,0x1e,0x02,0xc9,0x1c,0xd9,0x1c,0x02,0x45,0x1c,0x55,0x1c,0x02,0x44,0x18,0x54,0x18,0x02,0xa7,0x07,0x01,0xca,0x04,0xda,0x04,0x02,0x10,0x0e,0x84,0x14,0x0d,0x00,0x12,0x10,0x12,0x20,0x12,0x03,0x12,0x12,0x21,0x1a,0x83,0x1f,0x06,0x01,0x06, +0x10,0x95,0x12,0x1b,0x0d,0x0f,0x0c,0x17,0x95,0x09,0x10,0x00,0x1d,0x95,0x03,0x16,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x33,0x33,0xfd,0xce,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x33, +0x15,0x21,0x11,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x6c,0x04,0x6b,0xf3,0xc1,0xe9,0x01,0x00,0xd8,0xd2,0x5e,0x04,0xa4,0xdc,0xfe,0x80,0xa5,0x7f,0x94,0xac,0xa6,0x83,0x90,0xab,0xb0,0xc8,0x01,0x13,0xed,0xff,0x01,0x31,0xa6,0x8e,0xfa,0xc1,0x98,0x03,0xa4,0x95,0x7e,0xae,0xdb,0xc7,0xb1,0xc9,0xc5,0x00, +0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x2a,0x05,0xec,0x00,0x09,0x00,0x26,0x40,0x13,0x09,0x06,0x09,0x06,0x0b,0x04,0x07,0x84,0x01,0x06,0x95,0x04,0x0f,0x02,0x00,0x09,0x95,0x01,0x15,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x03,0xf8, +0xfc,0xae,0xa4,0x02,0xe0,0xfd,0x20,0x02,0xae,0x05,0xec,0xfe,0x14,0x98,0xfd,0x30,0x00,0x01,0x00,0xa6,0xfe,0x29,0x04,0x2a,0x04,0x18,0x00,0x14,0x00,0x5c,0x40,0x0b,0x28,0x13,0x01,0x76,0x13,0x86,0x13,0x96,0x13,0x03,0x12,0xb8,0xff,0xe0,0x40,0x2f,0x10,0x14,0x48,0x05,0x12,0x15,0x12,0x25,0x12,0x03,0x86,0x06,0x96,0x06,0x02,0xe8, +0x05,0x01,0x28,0x03,0x01,0x69,0x03,0x01,0x09,0x14,0x84,0x01,0x01,0x16,0x0d,0x07,0x84,0x0b,0x0e,0x04,0x95,0x11,0x10,0x0c,0x0f,0x09,0x95,0x0b,0x1b,0x01,0x15,0x00,0x3f,0x3f,0xed,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xfd,0xc6,0x31,0x30,0x5d,0x71,0x5d,0x71,0x5d,0x2b,0x5d,0x71,0x21,0x23,0x11,0x10,0x23,0x22, +0x06,0x15,0x11,0x21,0x15,0x21,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0x02,0xe0,0xfc,0x7c,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0x02,0x48,0x01,0x46,0xb9,0x8d,0xfc,0x79,0x98,0x05,0xd7,0xaa,0xc2,0xd9,0xcd,0x00,0x02,0x00,0xa6,0xfe,0x29,0x05,0x2b,0x04,0x18,0x00,0x0c,0x00,0x38,0x00,0x8c,0x40,0x5b, +0x98,0x35,0x01,0x97,0x23,0x01,0x66,0x23,0x76,0x23,0x86,0x23,0x03,0x65,0x22,0x01,0x89,0x1e,0x01,0x96,0x15,0x01,0x87,0x15,0x01,0x5a,0x10,0x01,0x49,0x10,0x01,0x9a,0x0a,0x01,0x89,0x0a,0x01,0x78,0x0a,0x01,0x69,0x0a,0x01,0x97,0x07,0x01,0x66,0x03,0x76,0x03,0x86,0x03,0x03,0x28,0x27,0x25,0x84,0x0d,0x01,0x01,0x19,0x3a,0x05,0x84, +0x33,0x1b,0x17,0x84,0x19,0x01,0x28,0x95,0x25,0x0d,0x0d,0x12,0x08,0x95,0x2e,0x16,0x1c,0x1d,0x1d,0x12,0x95,0x20,0x10,0x1a,0x0f,0x18,0x1b,0x00,0x3f,0x3f,0x3f,0xed,0x33,0x11,0x33,0x3f,0xed,0x11,0x39,0x2f,0xc4,0xfd,0xc4,0x01,0x2f,0xfd,0xc4,0xde,0xed,0x11,0x12,0x39,0x2f,0xc4,0xfd,0xcd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x11,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x15,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x03,0xe9,0x80,0x58,0x67, +0x4f,0x47,0x2e,0x41,0x28,0x12,0x03,0x2e,0x4e,0x69,0x3e,0x57,0x8b,0x62,0x35,0xa4,0xa4,0x04,0x40,0xd4,0x8a,0x5a,0x99,0x71,0x40,0x01,0x9a,0x9a,0x2c,0x56,0x80,0x54,0x45,0x74,0x54,0x2f,0x36,0x60,0x85,0x4f,0x01,0x5c,0x9e,0x6a,0x61,0x54,0x61,0x27,0x40,0x51,0x01,0x60,0x3a,0x5d,0x42,0x23,0x41,0x6b,0x88,0x47,0xfc,0x16,0x05,0xd7, +0xb4,0x60,0x6c,0x38,0x67,0x90,0x57,0x98,0x9e,0x52,0x88,0x63,0x37,0x32,0x58,0x77,0x46,0x52,0x84,0x5c,0x31,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x04,0xca,0x05,0xec,0x00,0x16,0x00,0x23,0x00,0x55,0x40,0x36,0x68,0x0f,0x01,0x4a,0x0f,0x5a,0x0f,0x02,0x48,0x0e,0x58,0x0e,0x02,0x68,0x09,0x01,0x5a,0x09,0x01,0x4d,0x09,0x01,0x66,0x05, +0x01,0x55,0x05,0x01,0x43,0x05,0x01,0x01,0x00,0x15,0x84,0x12,0x17,0x17,0x25,0x1b,0x83,0x0c,0x01,0x17,0x95,0x12,0x15,0x0f,0x14,0x00,0x1e,0x95,0x07,0x16,0x00,0x3f,0xed,0x3f,0x3f,0xc4,0xfd,0xc4,0x01,0x2f,0xed,0x12,0x39,0x2f,0xc4,0xfd,0xcd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x11,0x14,0x0e, +0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x21,0x11,0x33,0x11,0x33,0x05,0x21,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x04,0xca,0xce,0x39,0x6f,0xa3,0x6b,0x7b,0xb8,0x79,0x3c,0x40,0x7b,0xb4,0x74,0x01,0x13,0xa8,0xce,0xfe,0x8a,0xfe,0xff,0xa7,0xa1,0x05,0x05,0xa1,0x8e,0x48,0x6b,0x45,0x22,0x03,0x76,0xfe,0x8d, +0x69,0xc3,0x96,0x59,0x52,0x92,0xc8,0x75,0x70,0xba,0x84,0x49,0x01,0xec,0xfe,0x14,0x8a,0xba,0xb9,0xc8,0xc9,0x46,0x72,0x92,0x4b,0x00,0x00,0x01,0x00,0xa6,0xfe,0x29,0x03,0xf8,0x05,0xec,0x00,0x11,0x00,0x4e,0xb3,0x37,0x10,0x01,0x10,0xb8,0xff,0xd0,0x40,0x2c,0x11,0x14,0x48,0x71,0x10,0x01,0x06,0x10,0x16,0x10,0x26,0x10,0x03,0x86, +0x06,0x96,0x06,0x02,0x28,0x03,0x01,0x68,0x03,0x01,0x11,0x84,0x01,0x01,0x13,0x0b,0x07,0x84,0x09,0x0c,0x04,0x95,0x0f,0x10,0x0a,0x00,0x08,0x1b,0x01,0x15,0x00,0x3f,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x71,0x71,0x5d,0x5d,0x2b,0x71,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23, +0x11,0x33,0x11,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xa4,0xee,0x78,0xa4,0xa4,0xa4,0x04,0x76,0xda,0x01,0x5a,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfb,0xe5,0x07,0xc3,0xfd,0x6a,0xc2,0xfe,0x5f,0x00,0x01,0x00,0xa6,0xfe,0x29,0x02,0x76,0x04,0x00,0x00,0x05,0x00,0x1a,0x40,0x0c,0x01,0x01,0x07,0x05,0x84,0x03,0x04,0x0f,0x01,0x95,0x03,0x1b, +0x00,0x3f,0xed,0x3f,0x01,0x2f,0xed,0x11,0x33,0x2f,0x31,0x30,0x01,0x21,0x15,0x21,0x11,0x33,0x01,0x4a,0x01,0x2c,0xfe,0x30,0xa4,0xfe,0xc1,0x98,0x05,0xd7,0x00,0x01,0x00,0xa6,0xfe,0x29,0x06,0x0b,0x05,0xec,0x00,0x35,0x00,0x49,0x40,0x29,0x95,0x2c,0x01,0x87,0x2c,0x01,0x28,0x84,0x0d,0x35,0x84,0x01,0x33,0x0d,0x33,0x0d,0x33,0x1a, +0x37,0x1c,0x18,0x84,0x1a,0x34,0x0f,0x1e,0x13,0x95,0x23,0x10,0x1c,0x00,0x19,0x1b,0x2e,0x95,0x03,0x08,0x16,0x00,0x15,0x00,0x3f,0x3f,0x33,0xed,0x3f,0x3f,0x3f,0xed,0x33,0x3f,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc4,0xed,0x10,0xed,0x31,0x30,0x5d,0x5d,0x21,0x23,0x35,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35, +0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x06,0x0b,0xa4,0x04,0x1a,0x38,0x44,0x51,0x32,0x61,0x80,0x4b,0x1f,0x0d,0x26,0x43,0x37,0x42,0x63,0x42,0x21,0xa4,0xa4,0x04,0x1e,0x41,0x4c,0x5b,0x36,0x54,0x6d, +0x3f,0x18,0x0d,0x2d,0x54,0x47,0x3e,0x5a,0x3b,0x1d,0xa4,0xa2,0x2f,0x45,0x2f,0x17,0x43,0x7c,0xb0,0x6d,0x62,0x50,0x84,0x5f,0x35,0x43,0x6b,0x84,0x40,0xfc,0x0d,0x07,0xc3,0xfd,0x6a,0x30,0x49,0x31,0x18,0x41,0x77,0xa9,0x68,0x71,0x51,0x86,0x60,0x35,0x43,0x69,0x80,0x3c,0x02,0x26,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0xb0,0x06,0x02, +0x00,0x15,0x00,0x25,0x00,0xc7,0x40,0x64,0x96,0x1a,0x01,0x96,0x16,0x01,0x48,0x0a,0x58,0x0a,0x02,0x49,0x06,0x59,0x06,0x02,0x5a,0x05,0x01,0x49,0x05,0x01,0x56,0x03,0x01,0x45,0x03,0x01,0x56,0x02,0x01,0x47,0x02,0x01,0x79,0x0c,0x99,0x0c,0x02,0x4c,0x0c,0x5c,0x0c,0x02,0x38,0x0c,0x01,0x0c,0x23,0x0d,0x20,0xb5,0x11,0xc5,0x11,0x02, +0x87,0x11,0x01,0x62,0x11,0x01,0x47,0x11,0x57,0x11,0x02,0x46,0x14,0x56,0x14,0x02,0x11,0x14,0x10,0x12,0x12,0x00,0x83,0x10,0x20,0x20,0x20,0x30,0x20,0x03,0x20,0x20,0x08,0x27,0xe9,0x0f,0x01,0x0f,0x10,0x0d,0x12,0x48,0x0f,0x10,0xb8,0xff,0xc0,0x40,0x21,0x0e,0x12,0x48,0x10,0x36,0x0e,0x01,0x0e,0x0d,0x0d,0x18,0x83,0x20,0x08,0x01, +0x08,0x14,0x23,0x95,0x0f,0x10,0x0d,0x03,0x0e,0x0c,0x11,0x0f,0x0e,0x00,0x1c,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x3f,0xc5,0x12,0x17,0x39,0xfd,0xc4,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x33,0x5d,0xcd,0x2b,0x32,0x2b,0x5d,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d, +0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x01,0x37,0x17,0x07,0x01,0x21,0x15,0x23,0x16,0x25,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x26,0x27,0x27,0x23,0x22,0x04,0x50,0x85,0x8b,0xee,0xe7,0x87,0x84,0x89,0x78,0xce,0xfe,0x55, +0x97,0x88,0x43,0x01,0xda,0x01,0x76,0xd9,0x78,0xfd,0x14,0x5b,0x54,0x5c,0xa6,0xab,0x54,0x4b,0x01,0x8c,0x2c,0x5b,0xd6,0x02,0x04,0xf1,0x93,0x98,0x94,0x8f,0xe9,0xfb,0x88,0x78,0x0f,0x01,0x21,0xe3,0x5a,0x65,0xfe,0xbd,0x8a,0x96,0x2c,0x69,0xa9,0xab,0x6a,0x73,0x74,0x66,0xb2,0xe6,0x73,0x1f,0x00,0x01,0x00,0x90,0xfe,0x29,0x03,0xe2, +0x05,0xec,0x00,0x11,0x00,0x37,0x40,0x21,0x76,0x0b,0x01,0x67,0x0b,0x01,0x8b,0x06,0x9b,0x06,0x02,0x28,0x06,0x01,0x11,0x84,0x03,0x01,0x0f,0x09,0x84,0x07,0x11,0x0f,0x09,0x00,0x0c,0x95,0x02,0x05,0x16,0x00,0x1b,0x00,0x3f,0x3f,0x33,0xed,0x3f,0x3f,0x01,0x2f,0xed,0x2f,0xc4,0x33,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x11, +0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xe2,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0xa4,0xfe,0x29,0x02,0x79,0xba,0x01,0xb4,0x04,0x50,0xfb,0xca,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x11,0x00,0x98,0x40,0x2c,0x75,0x10, +0x01,0x92,0x10,0x01,0x82,0x10,0x01,0x6a,0x03,0x01,0x75,0x10,0x01,0x01,0x15,0x09,0x15,0x0c,0x04,0x95,0x0f,0x10,0x0a,0x00,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x1e,0x0b, +0x06,0x4d,0x01,0x01,0x13,0x0c,0x08,0x06,0x0d,0x06,0x4d,0x08,0x06,0x0c,0x06,0x4d,0x08,0x06,0x0b,0x06,0x4d,0x08,0x84,0x09,0x02,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x13,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b, +0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xa4,0xee,0x78,0xa4,0xa4,0xa4,0x04,0x76,0xda,0x01,0x5a,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfd,0xbc,0x05,0xec,0xfd,0x6a,0xc2, +0xfe,0x5f,0x00,0x02,0x00,0x60,0xff,0xe8,0x03,0xb2,0x05,0xc6,0x00,0x14,0x00,0x2f,0x00,0x93,0x40,0x5d,0x99,0x27,0x01,0x46,0x24,0x01,0x37,0x1d,0x01,0x9a,0x12,0x01,0x85,0x08,0x01,0x78,0x15,0x88,0x15,0x02,0x75,0x07,0x01,0x66,0x07,0x01,0x84,0x1a,0x01,0x00,0x1a,0x05,0x91,0x19,0x01,0x19,0x2f,0x2f,0x2a,0x0f,0x99,0x17,0x01,0x17, +0x90,0x18,0x01,0x18,0x16,0x15,0x15,0x05,0x83,0x0f,0x2a,0x01,0x2a,0x21,0x1f,0x84,0x0f,0x0f,0x01,0x0f,0x6c,0x00,0x7c,0x00,0x02,0x4a,0x00,0x5a,0x00,0x02,0x00,0x2f,0x19,0x15,0x18,0x04,0x16,0x1a,0x1a,0x16,0x0a,0x95,0x23,0x25,0x16,0x20,0x15,0x16,0x00,0x00,0x3f,0x3f,0x3f,0x33,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0x33,0x5d,0x5d, +0x01,0x2f,0x5d,0xed,0xc4,0x2f,0x5d,0xed,0x33,0x2f,0x33,0xcd,0x5d,0x32,0x5d,0x11,0x12,0x39,0x2f,0xcd,0x5d,0x11,0x39,0x39,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x34,0x2e,0x02,0x01,0x37,0x17,0x07,0x05,0x07,0x1e,0x03,0x15,0x11,0x23, +0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x01,0xf0,0x48,0x5c,0x35,0x14,0x25,0x41,0x56,0x32,0x47,0x6b,0x47,0x24,0x2c,0x4d,0x69,0xfe,0x4e,0x6e,0x8f,0x37,0x01,0x89,0x71,0x49,0x7f,0x5d,0x35,0xa4,0x04,0x62,0xc6,0x54,0x8d,0x67,0x3a,0x29,0x5b,0x91,0x67,0x03,0x73,0x44,0x80,0x78,0x73,0x36,0x47,0x6a,0x47,0x24, +0x33,0x5a,0x78,0x45,0x28,0x56,0x79,0x5a,0x45,0x01,0x9e,0xd6,0x3c,0x63,0xda,0x75,0x29,0x5a,0x72,0x8e,0x5b,0xfe,0x06,0xa2,0xba,0x32,0x64,0x95,0x63,0x5a,0xaa,0xaa,0xad,0x5d,0x00,0x01,0x00,0xa6,0xfe,0x29,0x04,0xd4,0x04,0x18,0x00,0x14,0x00,0x58,0x40,0x0b,0x28,0x10,0x01,0x76,0x10,0x86,0x10,0x96,0x10,0x03,0x0f,0xb8,0xff,0xe0, +0x40,0x2c,0x10,0x14,0x48,0x05,0x0f,0x15,0x0f,0x25,0x0f,0x03,0x86,0x05,0x96,0x05,0x02,0x28,0x02,0x01,0x68,0x02,0x01,0x14,0x12,0x84,0x01,0x01,0x16,0x0a,0x06,0x84,0x09,0x0c,0x03,0x95,0x0e,0x10,0x0a,0x0f,0x08,0x15,0x12,0x95,0x00,0x1b,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xfd,0xcd,0x31, +0x30,0x5d,0x71,0x71,0x5d,0x2b,0x5d,0x71,0x01,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x33,0x15,0x03,0x54,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0xdc,0xfe,0x29,0x04,0x1f,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd9,0xcd,0xfc,0x4f,0x98,0x00,0x00,0x02, +0x00,0x60,0xff,0xe8,0x03,0x89,0x06,0x02,0x00,0x20,0x00,0x31,0x00,0x79,0x40,0x4c,0x49,0x2d,0x59,0x2d,0x02,0x76,0x24,0x86,0x24,0x96,0x24,0x03,0x67,0x24,0x01,0x75,0x12,0x01,0x66,0x12,0x01,0x86,0x0d,0x01,0x77,0x0d,0x01,0x49,0x03,0x59,0x03,0x99,0x03,0x03,0x2f,0x10,0x21,0x1f,0x01,0x1c,0x09,0x09,0x13,0x84,0x15,0x2b,0x2b,0x33, +0x21,0x84,0x1c,0x00,0x00,0x0f,0x1c,0x01,0x1c,0x26,0x95,0x17,0x19,0x16,0x14,0x15,0x09,0x0b,0x95,0x08,0x06,0x01,0x1f,0x2f,0x95,0x10,0x01,0x10,0x00,0x3f,0xc4,0xfd,0xc4,0x3f,0x33,0xed,0x32,0x3f,0x3f,0x33,0xed,0x01,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xc4,0xed,0x32,0x2f,0x12,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x3e,0x03,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x07,0x33,0x20,0x11,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x23,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x10,0x21,0x23,0x06,0x06,0x60,0x5a,0x21,0x77,0xa0,0xc0,0x6b,0x43,0x29,0x34,0x3e,0x50, +0x8a,0x71,0x55,0x19,0x5e,0x01,0xcd,0xa4,0x04,0x6a,0xd1,0x99,0xad,0x17,0x1d,0x34,0xa8,0x1c,0x33,0x48,0x2d,0x3f,0x68,0x4a,0x28,0xfe,0xc9,0x78,0x1b,0x13,0x04,0x18,0x62,0xb1,0x87,0x50,0x0a,0x8d,0x0d,0x3c,0x63,0x7e,0x43,0xfe,0x1e,0xfd,0xca,0xa0,0xb8,0xde,0xe0,0x8d,0xf3,0x68,0xfe,0x24,0x53,0x78,0x4f,0x26,0x30,0x52,0x6e,0x3e, +0x85,0x01,0x69,0x61,0xec,0x00,0x00,0x01,0x00,0x90,0xff,0xe8,0x04,0xaf,0x05,0xec,0x00,0x13,0x00,0x42,0x40,0x28,0x66,0x0b,0x76,0x0b,0x02,0x57,0x0b,0x01,0x8b,0x06,0x9b,0x06,0x02,0x28,0x06,0x01,0x11,0x13,0x84,0x03,0x01,0x0f,0x0f,0x15,0x09,0x84,0x07,0x12,0x95,0x10,0x00,0x09,0x0f,0x0c,0x95,0x02,0x05,0x16,0x00,0x15,0x00,0x3f, +0x3f,0x33,0xed,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xc4,0x32,0xfd,0xcd,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x21,0x15,0x23,0x03,0xe2,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x01,0x71,0xcd,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd, +0xb6,0xfe,0xbc,0xb1,0x8f,0x04,0x3a,0x98,0x00,0x01,0xff,0x70,0xfe,0x29,0x01,0x80,0x04,0x00,0x00,0x0a,0x00,0x16,0x40,0x0a,0x0a,0x84,0x05,0x09,0x09,0x0f,0x06,0x95,0x03,0x1c,0x00,0x3f,0xed,0x3f,0x01,0x2f,0xce,0xed,0x31,0x30,0x25,0x14,0x06,0x23,0x23,0x35,0x33,0x32,0x11,0x11,0x33,0x01,0x80,0xcb,0xb5,0x90,0x8c,0xe0,0xa4,0x09, +0xe8,0xf8,0x98,0x01,0x3b,0x04,0x04,0x00,0x00,0x01,0xff,0xf6,0xff,0xe8,0x04,0x0b,0x05,0xec,0x00,0x13,0x00,0x3e,0x40,0x25,0x9a,0x10,0x01,0x8b,0x10,0x01,0x29,0x10,0x01,0x76,0x03,0x01,0x67,0x03,0x01,0x13,0x01,0x84,0x11,0x0d,0x0b,0x09,0x84,0x07,0x0c,0x04,0x95,0x0f,0x16,0x0a,0x15,0x09,0x0f,0x12,0x95,0x01,0x00,0x00,0x3f,0xed, +0x3f,0x3f,0x3f,0xed,0x33,0x01,0x2f,0xed,0xc4,0x32,0x2f,0xed,0xce,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x03,0x21,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x23,0x0a,0x01,0x66,0xf8,0x78,0x9b,0xa4,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xc3,0x05,0xec,0xfb,0xca,0xfe,0xbc,0xb1,0x8f,0x02,0x4e, +0xfc,0x00,0xa2,0xba,0x01,0xb4,0x03,0xb8,0x00,0x01,0x00,0x60,0xfe,0x29,0x03,0xc6,0x04,0x18,0x00,0x2f,0x00,0x71,0x40,0x49,0x66,0x2d,0x76,0x2d,0x02,0x79,0x2b,0x01,0x48,0x22,0x58,0x22,0x02,0x9a,0x03,0x01,0x89,0x03,0x01,0x99,0x02,0x01,0x88,0x02,0x01,0x93,0x0f,0x01,0x64,0x0f,0x74,0x0f,0x84,0x0f,0x03,0x0f,0x13,0x1a,0x1a,0x0a, +0x84,0x9c,0x25,0x01,0x8b,0x25,0x01,0x6c,0x25,0x01,0x25,0x20,0x29,0x29,0x31,0x13,0x84,0x20,0x2f,0x84,0x00,0x00,0x20,0x19,0x95,0x1b,0x1b,0x00,0x00,0x2c,0x95,0x05,0x10,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x01,0x2f,0x33,0x2f,0xed,0x10,0xed,0x12,0x39,0x2f,0x12,0x39,0x5d,0x5d,0x5d,0xed,0x32,0x2f,0x11,0x39,0x5d,0x5d,0x31,0x30, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x06,0x15,0x14,0x1e,0x02,0x33,0x21,0x15,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x06,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x60,0x44,0x76,0x9e,0x5b,0x5b,0x9e,0x76,0x44,0x3d,0x63,0x80,0x84,0x80,0x63,0x3d,0x1a,0x33,0x49,0x30,0x01,0xfe,0xfd, +0xf1,0x51,0x7f,0x58,0x2f,0x3d,0x63,0x80,0x84,0x80,0x63,0x3d,0x8c,0x85,0x85,0x8c,0x02,0x89,0x5c,0x94,0x67,0x38,0x38,0x67,0x94,0x5c,0x5c,0x8e,0x6e,0x57,0x4b,0x46,0x4d,0x5b,0x3b,0x24,0x3d,0x2e,0x1a,0x94,0x30,0x57,0x77,0x48,0x4e,0x77,0x5d,0x4d,0x48,0x4a,0x5c,0x72,0x4b,0x7e,0x86,0x86,0x7e,0x00,0x00,0x01,0x00,0xa6,0x00,0x00, +0x03,0xf8,0x04,0x18,0x00,0x12,0x00,0x98,0x40,0x2c,0x75,0x11,0x01,0x92,0x10,0x01,0x82,0x10,0x01,0x6a,0x03,0x01,0x75,0x10,0x01,0x01,0x15,0x09,0x15,0x0a,0x0f,0x0c,0x04,0x95,0x0f,0x10,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf6,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff, +0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x1e,0x0b,0x06,0x4d,0x01,0x01,0x14,0x0c,0x08,0x06,0x0d,0x06,0x4d,0x08,0x06,0x0c,0x06,0x4d,0x08,0x06,0x0b,0x06,0x4d,0x08,0x84,0x09,0x02,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x14,0x01,0x5d,0x2f,0x2b,0x2b, +0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0xed,0x32,0x3f,0x3f,0x3f,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2, +0x02,0x48,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd9,0xcd,0x00,0x01,0x00,0x60,0xfe,0x29,0x02,0xec,0x04,0x1c,0x00,0x29,0x00,0x6a,0x40,0x41,0xb7,0x29,0x01,0xa6,0x29,0x01,0x88,0x25,0x01,0x9a,0x1f,0x01,0x89,0x1f,0x01,0x99,0x1e,0x01,0x8a,0x1e,0x01,0x65,0x0a,0x01,0x47,0x09,0x01,0x67,0x08,0x01,0x67,0x01,0x01,0x27, +0x28,0x28,0x29,0x95,0x29,0x01,0x29,0x11,0x11,0x03,0x84,0x26,0x23,0x23,0x2b,0x0e,0x84,0x16,0x23,0x03,0x11,0x29,0x28,0x95,0x26,0x27,0x10,0x11,0x95,0x12,0x1b,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x12,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x2f,0x32,0x5d,0x11,0x33,0x2f,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x07,0x06,0x06,0x15,0x14,0x33,0x21,0x15,0x21,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x37,0x36,0x36,0x35,0x34,0x27,0x01,0x25,0x17,0x07,0x02,0x64,0x11,0x13,0x34,0x3b,0x31,0x46,0x3a,0x38,0x22,0x0b,0x12,0x4e,0x01,0xad,0xfe,0x53,0x73,0x6c,0x06, +0x0d,0x15,0x0f,0x1b,0x4c,0x56,0x58,0x27,0x14,0x10,0x0c,0xfe,0x9c,0x01,0x07,0x5f,0x8d,0x01,0xa4,0x19,0x37,0x23,0x29,0x61,0x3b,0x30,0x48,0x41,0x41,0x29,0x0e,0x2b,0x0e,0x45,0x94,0x68,0x70,0x0c,0x24,0x28,0x29,0x13,0x22,0x54,0x59,0x58,0x27,0x13,0x26,0x10,0x19,0x12,0x02,0x08,0xbd,0x84,0x66,0x00,0x00,0x01,0x00,0x90,0xfe,0x29, +0x06,0x3e,0x04,0x00,0x00,0x1f,0x00,0x5b,0x40,0x38,0x9c,0x1e,0x01,0x85,0x0c,0x01,0x66,0x0c,0x76,0x0c,0x02,0x86,0x03,0x01,0x77,0x03,0x01,0x66,0x03,0x01,0x02,0x84,0x1f,0x08,0x16,0x14,0x12,0x84,0x10,0x1b,0x0b,0x84,0x08,0x05,0x95,0x1d,0x9d,0x1b,0x01,0x48,0x1b,0x58,0x1b,0x02,0x1b,0x15,0x0d,0x95,0x18,0x16,0x13,0x1b,0x11,0x01, +0x0a,0x0f,0x00,0x3f,0xc4,0xc4,0x3f,0x3f,0xed,0x33,0x33,0x5d,0x5d,0xd4,0xed,0x01,0x2f,0xed,0x33,0xdc,0xed,0xc4,0x33,0x10,0xdc,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x11,0x23,0x06,0x23,0x22,0x26,0x27,0x06, +0x23,0x20,0x11,0x90,0xa4,0x69,0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0xfe,0xae,0x04,0x00,0xfd,0xb4,0xaa,0x98,0xc0,0x86,0x02,0x48,0xfd,0xa0,0xfe,0xd2,0xb5,0x91,0x02,0x48,0xfa,0x29,0x02,0x79,0xba,0x75,0x5f,0xd4,0x01,0xa1,0x00,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0x04,0x04,0x18, +0x00,0x2d,0x00,0x44,0x00,0x86,0x40,0x57,0x66,0x40,0x01,0x67,0x3e,0x01,0x94,0x39,0x01,0x76,0x39,0x86,0x39,0x02,0x69,0x36,0x01,0x5a,0x29,0x01,0x49,0x29,0x01,0x67,0x17,0x01,0x93,0x16,0x01,0x86,0x16,0x01,0x75,0x16,0x01,0x66,0x16,0x01,0x95,0x15,0x01,0x85,0x14,0x01,0x77,0x0f,0x01,0x75,0x0e,0x01,0x89,0x02,0x99,0x02,0x02,0x1f, +0x1f,0x11,0x84,0x33,0x2e,0x42,0x84,0x00,0x00,0x07,0x33,0x33,0x26,0x46,0x3b,0x84,0x07,0x07,0x1b,0x84,0x26,0x2e,0x38,0x1f,0x95,0x21,0x1b,0x38,0x95,0x0c,0x10,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x01,0x2f,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x12,0x39,0x2f,0xed,0x32,0x10,0xed,0x32,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x3e,0x03,0x17,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x04,0x15,0x14,0x06, +0x01,0x5c,0x22,0x32,0x3c,0x32,0x22,0x43,0x78,0xa6,0x64,0x64,0xa8,0x78,0x43,0x4d,0x7d,0xa0,0xa6,0xa0,0x3e,0x10,0x15,0x2f,0x33,0x02,0xb1,0xfd,0x4f,0x39,0x5a,0x3f,0x21,0x28,0x23,0x3c,0x46,0x25,0x0a,0x6e,0x43,0x90,0x78,0x4d,0x2a,0x4d,0x6b,0x41,0x96,0x8f,0x1e,0x2e,0x34,0x2e,0x1e,0x0b,0x01,0x01,0x29,0x45,0x40,0x40,0x48,0x55, +0x35,0x58,0x81,0x55,0x29,0x39,0x65,0x8d,0x54,0x54,0x9b,0x8f,0x87,0x7f,0x7a,0x3b,0x0f,0x2d,0x0e,0x23,0x36,0x94,0x23,0x40,0x5b,0x38,0x2d,0x51,0x20,0x35,0x54,0x4b,0x48,0x43,0x3a,0x70,0x77,0x84,0x4e,0x3b,0x60,0x44,0x25,0x68,0x6a,0x23,0x41,0x3e,0x3d,0x41,0x45,0x27,0x2a,0x44,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x87,0x04,0x18, +0x00,0x17,0x00,0x55,0x40,0x31,0x86,0x10,0x96,0x10,0x02,0x75,0x10,0x01,0x6a,0x03,0x01,0x59,0x03,0x01,0x06,0x14,0x01,0x14,0x00,0x15,0x15,0x12,0x84,0x02,0x00,0x00,0x07,0x02,0x02,0x09,0x19,0x0d,0x0b,0x07,0x84,0x09,0x00,0x14,0x95,0x09,0x17,0x15,0x0c,0x04,0x95,0x0f,0x10,0x0a,0x0f,0x00,0x3f,0x3f,0xed,0x33,0x3f,0xc4,0xed,0x39, +0x01,0x2f,0xfd,0xc4,0x33,0x11,0x12,0x39,0x2f,0x12,0x39,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x25,0x24,0x11,0x10,0x25,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x21,0x15,0x21,0x02,0x5b,0x01,0x17,0xfe,0xfe,0x85,0xa1,0xa4,0xa4,0x04,0x74,0xe6,0x9e,0xd0, +0xc0,0x01,0x31,0xfd,0xd4,0x47,0x95,0x01,0x63,0x01,0x3e,0x11,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xea,0xf0,0xf7,0xbb,0x8c,0x00,0x00,0x01,0x00,0x90,0xff,0xe8,0x03,0xe2,0x04,0x00,0x00,0x11,0x00,0xa5,0x40,0x3c,0x79,0x06,0x01,0x9b,0x06,0x01,0x8b,0x06,0x01,0x66,0x0b,0x01,0x56,0x0b,0x01,0x79,0x06,0x01,0x0d,0x10,0x0b,0x0c, +0x00,0x4c,0x38,0x03,0x01,0x01,0x15,0x03,0x0c,0x95,0x05,0x16,0x10,0x0f,0x08,0x0f,0x01,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x0f,0x01,0x0f,0xb8,0xff,0xfa,0xb3,0x0d,0x06,0x4d,0x0f,0xb8,0xff,0xfc,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xfc,0x40,0x2a,0x0b,0x06,0x4d,0x0f,0x0f, +0x13,0x0a,0x06,0x0d,0x06,0x4d,0x0a,0x06,0x0c,0x06,0x4d,0x0a,0x06,0x0b,0x06,0x4d,0x0a,0x84,0x07,0x0a,0x0d,0x06,0x4d,0x07,0x06,0x0c,0x06,0x4d,0x07,0x02,0x0b,0x06,0x4d,0x07,0x2f,0x13,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x3f,0x3f,0xed,0x32, +0x3f,0x5d,0x31,0x30,0x2b,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xe2,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0xa4,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0x00,0x01,0x00,0x90,0xfe,0x29, +0x04,0xbe,0x05,0xec,0x00,0x13,0x00,0x42,0x40,0x28,0x66,0x0b,0x76,0x0b,0x02,0x57,0x0b,0x01,0x8b,0x06,0x9b,0x06,0x02,0x28,0x06,0x01,0x00,0x12,0x84,0x03,0x01,0x0f,0x0f,0x15,0x09,0x84,0x07,0x11,0x00,0x09,0x0f,0x0c,0x95,0x02,0x05,0x16,0x13,0x95,0x01,0x1b,0x00,0x3f,0xed,0x3f,0x33,0xed,0x3f,0x3f,0x01,0x2f,0xed,0x12,0x39,0x2f, +0xc4,0x33,0xfd,0xcd,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x11,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x33,0x04,0xbe,0xfe,0x80,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0xa4,0xdc,0xfe,0x29,0x02,0x79,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x04,0x3a,0xf8,0xd5, +0x00,0x01,0x00,0x8f,0xff,0xe8,0x06,0x17,0x04,0x18,0x00,0x26,0x00,0x53,0x40,0x33,0x94,0x24,0x01,0x85,0x16,0x01,0x66,0x16,0x76,0x16,0x02,0x9c,0x11,0x01,0x79,0x03,0x89,0x03,0x02,0x68,0x03,0x01,0x14,0x84,0x12,0x1c,0x1e,0x09,0x84,0x1c,0x00,0x84,0x02,0x0b,0x1c,0x20,0x04,0x95,0x23,0x10,0x14,0x1d,0x0f,0x17,0x95,0x0d,0x10,0x16, +0x01,0x0a,0x15,0x00,0x3f,0xc4,0x3f,0x33,0xed,0x3f,0xc4,0x3f,0xed,0x33,0x01,0x2f,0xc4,0xdc,0xed,0x10,0xfd,0xc4,0x10,0xdc,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x33, +0x36,0x36,0x33,0x32,0x16,0x15,0x06,0x17,0xa4,0xd0,0x39,0x5e,0x42,0x25,0xa4,0x04,0x33,0x8b,0x60,0xfe,0xb0,0xa3,0xda,0x36,0x5a,0x41,0x24,0xa4,0x04,0x3a,0x9c,0x5c,0x96,0xa6,0x02,0x48,0x01,0x46,0x33,0x56,0x71,0x3e,0xfd,0xaa,0xa2,0x5e,0x5c,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0x34,0x58,0x74,0x40,0x02,0x4e,0xaa,0x61,0x61, +0xd8,0xce,0x00,0x01,0x00,0xa6,0xfe,0x29,0x03,0xf8,0x04,0x18,0x00,0x12,0x00,0x53,0x40,0x0b,0x28,0x11,0x01,0x76,0x11,0x86,0x11,0x96,0x11,0x03,0x10,0xb8,0xff,0xe0,0x40,0x29,0x10,0x14,0x48,0x05,0x10,0x15,0x10,0x25,0x10,0x03,0x86,0x06,0x96,0x06,0x02,0x28,0x03,0x01,0x69,0x03,0x01,0x12,0x84,0x01,0x01,0x14,0x0b,0x07,0x84,0x09, +0x0c,0x04,0x95,0x0f,0x10,0x0a,0x0f,0x09,0x1b,0x01,0x15,0x00,0x3f,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x71,0x71,0x5d,0x2b,0x5d,0x71,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74, +0xdc,0xa8,0xb2,0x02,0x48,0x01,0x46,0xb9,0x8d,0xfb,0xe1,0x05,0xd7,0xaa,0xc2,0xd9,0xcd,0x00,0x00,0x02,0x00,0x60,0xfe,0x1e,0x04,0x10,0x04,0x18,0x00,0x28,0x00,0x3d,0x00,0x70,0x40,0x47,0x55,0x31,0x01,0x46,0x31,0x01,0x45,0x2b,0x01,0x5a,0x21,0x01,0x7a,0x1b,0x01,0x69,0x1b,0x01,0x38,0x12,0x01,0x74,0x0e,0x01,0x9a,0x08,0x01,0x89, +0x08,0x01,0x8a,0x07,0x01,0x54,0x02,0x01,0x45,0x02,0x01,0x27,0x15,0x00,0x84,0x38,0x38,0x1e,0x3f,0x0b,0x83,0x0a,0x0a,0x2e,0x83,0x1e,0x28,0x0f,0x29,0x95,0x25,0x23,0x10,0x33,0x95,0x17,0x0b,0x19,0x16,0x10,0x95,0x03,0x1c,0x00,0x3f,0xed,0x3f,0xce,0x33,0xed,0x3f,0x33,0xed,0x3f,0x01,0x2f,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f, +0xed,0xc4,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x10,0x00,0x23,0x22,0x2e,0x04,0x35,0x33,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x33,0x35,0x33,0x05,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02, +0x35,0x35,0x34,0x2e,0x02,0x04,0x10,0xfe,0xf7,0xf5,0x20,0x59,0x60,0x5f,0x4b,0x2f,0xa8,0x35,0x4f,0x5d,0x27,0x51,0x81,0x5a,0x30,0x04,0x75,0xeb,0x6a,0x9f,0x6a,0x35,0x38,0x73,0xb1,0x79,0xcf,0x64,0x04,0xa4,0xfe,0x3c,0x58,0x7b,0x4e,0x23,0x24,0x4a,0x71,0x4e,0x48,0x73,0x51,0x2b,0x2c,0x4e,0x69,0x52,0xfe,0xe6,0xfe,0xe6,0x0d,0x20, +0x35,0x52,0x70,0x4a,0x3f,0x57,0x35,0x17,0x32,0x65,0x96,0x65,0x70,0xc4,0x50,0x89,0xb7,0x67,0x74,0xcf,0x9b,0x5b,0xa6,0x8e,0x72,0x44,0x74,0x98,0x54,0x4a,0x88,0x68,0x3e,0x38,0x5f,0x7f,0x47,0x97,0x3c,0x6b,0x51,0x30,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0x02,0x04,0x00,0x00,0x05,0x00,0x1a,0x40,0x0c,0x01,0x01,0x07,0x00,0x84,0x03, +0x05,0x0f,0x00,0x95,0x03,0x15,0x00,0x3f,0xed,0x3f,0x01,0x2f,0xed,0x12,0x39,0x2f,0x31,0x30,0x25,0x21,0x15,0x21,0x11,0x33,0x01,0x4a,0x01,0xb8,0xfd,0xa4,0xa4,0x98,0x98,0x04,0x00,0x00,0x00,0x01,0x00,0x8f,0xfe,0x29,0x06,0x17,0x05,0xec,0x00,0x26,0x00,0x55,0x40,0x35,0x94,0x24,0x01,0x85,0x16,0x01,0x66,0x16,0x76,0x16,0x02,0x9c, +0x11,0x01,0x79,0x03,0x89,0x03,0x02,0x68,0x03,0x01,0x14,0x84,0x12,0x1c,0x1e,0x09,0x84,0x1c,0x00,0x84,0x02,0x0b,0x1c,0x20,0x04,0x95,0x23,0x10,0x1d,0x00,0x14,0x0f,0x17,0x95,0x0d,0x10,0x16,0x0a,0x1b,0x01,0x15,0x00,0x3f,0x3f,0x3f,0x33,0xed,0x3f,0x3f,0x3f,0xed,0x33,0x01,0x2f,0xc4,0xdc,0xed,0x10,0xfd,0xc4,0x10,0xdc,0xed,0x31, +0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x23,0x06,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x06,0x17,0xa4,0xd0,0x39,0x5e,0x42,0x25,0xa4,0x04,0x33,0x8b,0x60,0xfe,0xb0,0xa3,0xda,0x36,0x5a,0x41, +0x24,0xa4,0x04,0x3a,0x9c,0x5c,0x96,0xa6,0x02,0x48,0x01,0x46,0x33,0x56,0x71,0x3e,0xfb,0xd3,0x02,0x79,0x5e,0x5c,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0x34,0x58,0x74,0x40,0x04,0x3a,0xfd,0x6a,0x61,0x61,0xd8,0xce,0x00,0x02,0x00,0x00,0xfe,0x29,0x04,0x54,0x04,0x18,0x00,0x18,0x00,0x25,0x00,0x62,0x40,0x3b,0x4a,0x21,0x5a,0x21, +0x02,0x43,0x1f,0x53,0x1f,0x02,0x66,0x09,0x76,0x09,0x02,0x12,0x12,0x0a,0x83,0x20,0x20,0x17,0x27,0x05,0x03,0x1a,0x14,0x0f,0x11,0x84,0x01,0x00,0x17,0x11,0x01,0x95,0x17,0x00,0x14,0x10,0x14,0x20,0x14,0x03,0x14,0x16,0x1b,0x1d,0x95,0x0f,0x0d,0x16,0x23,0x95,0x04,0x07,0x10,0x02,0x0f,0x00,0x3f,0x3f,0x33,0xed,0x3f,0x33,0xed,0x3f, +0xdd,0x5d,0xc4,0xfd,0xc4,0x01,0x2f,0xcd,0xc4,0xfd,0x32,0xc4,0xc4,0xc4,0x32,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x15,0x33,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x27,0x23,0x11,0x21,0x15,0x21,0x15,0x23,0x35,0x23,0x01,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23, +0x22,0x06,0xa6,0xa4,0x04,0x79,0xe9,0xc6,0xde,0xfa,0xd9,0xc7,0x6c,0x04,0x03,0x0a,0xfc,0xf6,0xa4,0xa6,0x01,0x4a,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0xa7,0x04,0xa7,0xb4,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0xac,0xfe,0xc5,0x98,0x98,0x98,0x03,0x70,0x8f,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0xc7,0x00,0x02,0x00,0x60,0xff,0xe8, +0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x17,0x00,0x85,0x40,0x1f,0x19,0x40,0x0b,0x02,0x4d,0x12,0x95,0x00,0x16,0x0c,0x95,0x06,0x10,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x83,0x15,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x15,0xb8,0xff,0xf0,0x40,0x0b,0x0c,0x06,0x4d,0x20,0x15,0x30,0x15,0x90, +0x15,0x03,0x15,0xb8,0xff,0xde,0x40,0x2a,0x0b,0x06,0x4d,0x15,0x15,0x19,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x0a,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x83,0x03,0x10,0x0d,0x06,0x4d,0x03,0x0c,0x0c,0x06,0x4d,0x03,0x19,0x0b,0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d, +0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x01,0x2b,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x52,0xe3,0xfe,0xf1,0x01,0x1a,0xf0,0xe5,0x01,0x01,0xfe,0xeb,0xdd,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab,0x18,0x01,0x1f,0xed, +0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x03,0xa6,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0x00,0x03,0x00,0x60,0xfe,0x29,0x05,0x1f,0x05,0xec,0x00,0x0a,0x00,0x2f,0x00,0x38,0x00,0x93,0x40,0x5e,0x45,0x2d,0x01,0x46,0x2c,0x01,0x95,0x27,0x01,0x76,0x27,0x01,0x99,0x1c,0x01,0x96,0x16,0x01,0x34,0x16,0x01,0x25,0x16,0x01, +0x14,0x16,0x01,0x05,0x16,0x01,0x96,0x15,0x01,0x49,0x10,0x01,0x4c,0x0f,0x01,0x5b,0x08,0x01,0x3a,0x08,0x01,0x29,0x08,0x01,0x39,0x03,0x49,0x03,0x69,0x03,0x03,0x1e,0x83,0x30,0x19,0x2a,0x83,0x00,0x2f,0x05,0x25,0x84,0x19,0x12,0x83,0x13,0x35,0x0d,0x19,0x13,0x13,0x06,0x19,0x19,0x05,0x0d,0x36,0x95,0x25,0x35,0x24,0x00,0x18,0x06, +0x95,0x2f,0x0d,0x13,0x0b,0x1b,0x00,0x3f,0x3f,0x33,0xed,0x32,0x3f,0x39,0x39,0xed,0x11,0x39,0x39,0x11,0x12,0x39,0x2f,0x01,0x2f,0xc4,0xc4,0xde,0xed,0x10,0xfd,0xc4,0xc4,0xdc,0xed,0x10,0xdc,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x34,0x2e,0x02,0x27,0x11,0x3e, +0x03,0x01,0x23,0x11,0x2e,0x03,0x35,0x33,0x14,0x1e,0x02,0x17,0x11,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x01,0x14,0x1e,0x02,0x17,0x11,0x22,0x06,0x04,0x6f,0x29,0x53,0x7d,0x54,0x4c,0x7b,0x57,0x2f,0xfe,0xb3,0xa8,0x71,0xc5,0x91,0x53,0xb1,0x38,0x62,0x84,0x4b,0x6d,0x9c,0x63,0x2f,0x37, +0x69,0x99,0x62,0xa8,0x80,0xbf,0x7f,0x3f,0x4e,0x89,0xba,0x6c,0xfe,0x6d,0x29,0x43,0x54,0x2b,0x7c,0x6f,0x01,0xe9,0x3f,0x64,0x50,0x40,0x1b,0xfd,0x4f,0x0b,0x32,0x55,0x7c,0xfc,0x95,0x01,0xc2,0x07,0x49,0x84,0xbd,0x7d,0x50,0x83,0x60,0x3a,0x08,0x02,0xde,0x1e,0x47,0x56,0x67,0x3c,0x46,0x6f,0x4e,0x29,0xfd,0xea,0x1e,0x61,0x7c,0x9b, +0x57,0x7e,0xb7,0x7b,0x42,0x0a,0x04,0xd7,0x30,0x3b,0x2e,0x22,0x0d,0x01,0x56,0x4f,0x00,0x01,0x00,0x90,0xff,0xe8,0x05,0x5e,0x05,0xec,0x00,0x13,0x00,0x42,0x40,0x27,0x76,0x0b,0x01,0x67,0x0b,0x01,0x8b,0x06,0x9b,0x06,0x02,0x28,0x06,0x01,0x11,0x84,0x03,0x01,0x0f,0x13,0x0f,0x13,0x15,0x09,0x84,0x07,0x11,0x0f,0x09,0x00,0x0c,0x95, +0x02,0x05,0x16,0x12,0x95,0x01,0x15,0x00,0x3f,0xed,0x3f,0x33,0xed,0x3f,0x3f,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0xc4,0x33,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x21,0x05,0x5e,0xfd,0xe0,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78, +0x9b,0xa4,0x01,0x7c,0xa2,0xba,0x01,0xb4,0x04,0x50,0xfb,0xca,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0xfc,0x98,0x00,0x02,0x00,0x70,0xff,0xea,0x01,0x50,0x04,0x16,0x00,0x0b,0x00,0x17,0x00,0x36,0x40,0x12,0x00,0xb0,0x06,0x10,0x12,0xb0,0x0c,0x13,0x09,0x03,0x15,0xaf,0x1f,0x0f,0x2f,0x0f,0x02,0x0f,0xb8,0xff,0xec,0xb3,0x0c,0x06,0x4d,0x0f, +0xb8,0xff,0xec,0xb6,0x0b,0x06,0x4d,0x0f,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x71,0xe1,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f, +0x42,0x42,0x03,0x38,0x42,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x42,0xfc,0xb2,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x00,0x01,0x00,0x2a,0x00,0x00,0x02,0x19,0x00,0xc8,0x00,0x09,0x00,0x35,0x40,0x1f,0x07,0x08,0x08,0x0b,0x73,0x03,0x83,0x03,0x02,0x55,0x03,0x65,0x03,0x02,0x46,0x03,0x01,0x27,0x03,0x37,0x03,0x02,0x03,0x02,0x02,0x03, +0x07,0x05,0x08,0x00,0x15,0x00,0x3f,0x32,0xdd,0x32,0xce,0x32,0x01,0x2f,0x33,0x71,0x71,0x71,0x71,0x12,0x39,0x2f,0x33,0x31,0x30,0x21,0x22,0x27,0x37,0x16,0x33,0x32,0x37,0x17,0x06,0x01,0x19,0xa6,0x49,0x59,0x27,0x70,0x66,0x7b,0x1e,0x84,0x86,0x42,0x59,0x20,0x63,0x2c,0x00,0x01,0x00,0x90,0xff,0xe8,0x08,0x69,0x05,0xec,0x00,0x23, +0x00,0x79,0x40,0x4b,0x9b,0x20,0x01,0x85,0x13,0x01,0x76,0x13,0x01,0x67,0x13,0x01,0x85,0x0b,0x01,0x66,0x0b,0x76,0x0b,0x02,0x57,0x0b,0x01,0x9b,0x06,0x01,0x03,0x01,0x23,0x84,0x0f,0x12,0x84,0x21,0x1d,0x1b,0x19,0x84,0x17,0x80,0x0f,0x01,0x4f,0x21,0x01,0x0f,0x21,0x17,0x17,0x21,0x0f,0x03,0x25,0x09,0x84,0x07,0x23,0x95,0x10,0x00, +0x18,0x09,0x0f,0x1c,0x14,0x95,0x1f,0x0c,0x95,0x02,0x05,0x16,0x1a,0x00,0x15,0x00,0x3f,0xc4,0x3f,0x33,0xed,0xd4,0xed,0x33,0x3f,0xc4,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0xc4,0x32,0x10,0xed,0x10,0xed,0xc4,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x35,0x23,0x06, +0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x21,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x21,0x03,0xe2,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x02,0x7c,0xf8,0x78,0x9b,0xa4,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xfe,0xcb,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd, +0xb6,0xfe,0xbc,0xb1,0x8f,0x04,0x3a,0xfb,0xca,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0xfc,0x00,0xa2,0xba,0x01,0xb4,0x03,0xb8,0x00,0x00,0x01,0x00,0x90,0xff,0xe8,0x08,0x9b,0x05,0xec,0x00,0x28,0x00,0x8c,0x40,0x58,0x85,0x20,0x01,0x66,0x20,0x76,0x20,0x02,0x57,0x20,0x01,0x9b,0x1b,0x01,0x9a,0x10,0x01,0x85,0x03,0x01,0x66,0x03,0x76,0x03, +0x02,0x18,0x16,0x15,0x84,0x24,0x27,0x01,0x84,0x12,0x0d,0x0b,0x07,0x28,0x28,0x09,0x84,0x07,0x20,0x24,0x80,0x24,0x02,0x3f,0x12,0x01,0x10,0x07,0x70,0x07,0x02,0x24,0x12,0x07,0x07,0x12,0x24,0x03,0x2a,0x1e,0x84,0x1c,0x08,0x00,0x95,0x1e,0x27,0x0f,0x14,0x95,0x25,0x00,0x0c,0x04,0x95,0x0f,0x21,0x95,0x17,0x1a,0x16,0x0b,0x15,0x0f, +0x00,0x3f,0xc4,0x3f,0x33,0xed,0xd4,0xed,0x33,0x3f,0xed,0x3f,0xc4,0xfd,0xce,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x5d,0x5d,0x10,0xed,0x32,0x2f,0x10,0xc4,0x32,0x10,0xfd,0xc4,0x10,0xed,0xc4,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23, +0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x21,0x11,0x21,0x08,0x9b,0xfd,0x20,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0xfe,0xcb,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x02,0x7d,0x02,0xe0,0x03,0x68,0xfe,0x50,0xfe,0xba,0xb9, +0x8d,0x01,0x18,0xfd,0x30,0xaa,0xc2,0xd9,0xcd,0x03,0xc6,0xfa,0xac,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x04,0x3a,0xfe,0x14,0x00,0x00,0x01,0x00,0x90,0xfe,0x29,0x08,0x69,0x05,0xec,0x00,0x23,0x00,0x81,0x40,0x52,0x92,0x22,0x01,0x85,0x17,0x01,0x66,0x17,0x76,0x17,0x02,0x57,0x17,0x01,0x9b,0x12,0x01,0x8a, +0x03,0x01,0x79,0x03,0x01,0x68,0x03,0x01,0x0f,0x0d,0x0b,0x84,0x1b,0x1f,0x1d,0x07,0x84,0x09,0x23,0x84,0x02,0x20,0x1b,0x80,0x1b,0x02,0x7f,0x09,0x01,0x10,0x02,0x01,0x1b,0x09,0x02,0x02,0x09,0x1b,0x03,0x25,0x15,0x84,0x13,0x1e,0x04,0x95,0x21,0x10,0x0a,0x95,0x1c,0x00,0x15,0x0f,0x18,0x95,0x0e,0x11,0x16,0x01,0x0c,0x15,0x08,0x1b, +0x00,0x3f,0x3f,0xc4,0x3f,0x33,0xed,0x3f,0x3f,0xed,0x3f,0xed,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x5d,0x5d,0x10,0xed,0x10,0xfd,0xc4,0x33,0x10,0xed,0xc4,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x21,0x11,0x23,0x35,0x23,0x06,0x23,0x20, +0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x21,0x11,0x33,0x36,0x33,0x20,0x11,0x08,0x69,0xa4,0xee,0x78,0xa4,0xa4,0xfe,0xcb,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x02,0x7d,0x04,0x76,0xda,0x01,0x5a,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfb,0xe5,0x07,0x2b,0xfa,0xac,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe, +0xbc,0xb1,0x8f,0x04,0x3a,0xfd,0x6a,0xc2,0xfe,0x5f,0x00,0x01,0x00,0x90,0xfe,0x29,0x08,0x69,0x05,0xec,0x00,0x25,0x00,0x81,0x40,0x51,0x85,0x21,0x01,0x66,0x21,0x76,0x21,0x02,0x57,0x21,0x01,0x9c,0x1c,0x01,0x9b,0x10,0x01,0x75,0x03,0x85,0x03,0x02,0x66,0x03,0x01,0x16,0x14,0x84,0x19,0x17,0x25,0x02,0x84,0x11,0x0d,0x0b,0x09,0x84, +0x07,0x80,0x25,0x01,0x4f,0x11,0x01,0xc0,0x07,0x01,0x25,0x11,0x07,0x07,0x11,0x25,0x03,0x27,0x1f,0x84,0x1d,0x08,0x1f,0x0f,0x15,0x95,0x17,0x1b,0x22,0x95,0x18,0x1b,0x0c,0x04,0x95,0x0f,0x16,0x0a,0x15,0x12,0x95,0x00,0x00,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x33,0xd4,0x32,0xed,0x3f,0xed,0x3f,0xc4,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f, +0x2f,0x2f,0x5d,0x5d,0x5d,0x10,0xed,0xc4,0x33,0x10,0xed,0x10,0xc4,0x33,0xfd,0xcd,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x21,0x11,0x33,0x15,0x21,0x11,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x03, +0x3e,0x02,0x7c,0xf8,0x78,0x9b,0xa4,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xfe,0xcb,0xa5,0xfe,0xb7,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x05,0xec,0xfb,0xca,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0xfc,0x00,0xa2,0xba,0x01,0xb4,0x03,0xb8,0xf9,0x6d,0x98,0x02,0x79,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x00,0x00,0x01, +0x00,0x90,0xfe,0x29,0x0a,0xc2,0x05,0xec,0x00,0x31,0x00,0x90,0x40,0x59,0x85,0x2b,0x01,0x76,0x2b,0x01,0x67,0x2b,0x01,0x83,0x1d,0x01,0x66,0x1d,0x76,0x1d,0x02,0x57,0x1d,0x01,0x9b,0x18,0x01,0x9a,0x09,0x01,0x88,0x09,0x01,0x9b,0x06,0x01,0x15,0x13,0x11,0x84,0x21,0x25,0x23,0x0d,0x84,0x0f,0x29,0x84,0x07,0x03,0x01,0x31,0x84,0x2f, +0x21,0x0f,0x07,0x2f,0x2f,0x07,0x0f,0x21,0x04,0x33,0x1b,0x84,0x19,0x24,0x0a,0x95,0x27,0x10,0x10,0x95,0x22,0x00,0x30,0x1b,0x0f,0x2c,0x95,0x02,0x05,0x1e,0x95,0x14,0x17,0x16,0x01,0x12,0x15,0x0e,0x1b,0x00,0x3f,0x3f,0xc4,0x3f,0x33,0xed,0xd4,0x32,0xed,0x3f,0xc4,0x3f,0xed,0x3f,0xed,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f, +0x2f,0x2f,0x10,0xed,0xc4,0x32,0x10,0xed,0x10,0xfd,0xc4,0x33,0x10,0xed,0xc4,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x35,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x21,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x21, +0x11,0x33,0x36,0x33,0x20,0x11,0x15,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x0a,0xc2,0xa4,0x04,0x66,0xc7,0xfe,0xab,0xc1,0x78,0xa4,0xa4,0xfe,0xcb,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x02,0x7d,0x04,0x76,0xda,0x01,0x2c,0xdf,0x69,0x9b,0xa4,0xa2,0xba,0x01,0xb4,0xb2,0x01,0x40,0xb9,0x91,0xfb,0xe5,0x07,0x2b,0xfa,0xac, +0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x04,0x3a,0xfd,0x6a,0xc2,0xfe,0x5f,0xc1,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0x00,0x01,0x00,0x83,0x00,0x00,0x04,0x0a,0x05,0x9a,0x00,0x2b,0x00,0x5a,0x40,0x30,0x0f,0x09,0x1c,0x1b,0x11,0x0e,0x7e,0x01,0x2a,0x14,0x01,0x08,0x09,0x1b,0x01,0x01,0x1b,0x09,0x03,0x2d,0x24,0x00, +0x08,0x14,0x23,0x92,0x24,0x11,0x2b,0x92,0x0e,0x00,0x00,0x00,0x24,0x10,0x24,0x02,0x24,0x24,0x08,0x1c,0x12,0x0b,0x07,0x92,0x08,0x03,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x5d,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0x33,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x32,0x10,0xed,0x32,0x11,0x33,0x11,0x33, +0x31,0x30,0x13,0x21,0x2e,0x03,0x23,0x23,0x35,0x21,0x15,0x21,0x16,0x16,0x17,0x21,0x15,0x21,0x06,0x06,0x07,0x15,0x1e,0x03,0x17,0x13,0x23,0x03,0x2e,0x03,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x37,0x21,0x83,0x01,0xe5,0x08,0x25,0x43,0x63,0x44,0xce,0x03,0x87,0xfe,0xb8,0x1d,0x25,0x06,0x01,0x00,0xfe,0xfb,0x15,0x9b,0x77,0x22,0x38, +0x34,0x33,0x1d,0xff,0xbe,0xe4,0x21,0x3b,0x43,0x51,0x36,0x70,0xcd,0x33,0x5c,0x49,0x33,0x0b,0xfe,0x1d,0x04,0x53,0x2a,0x45,0x31,0x1b,0x8c,0x8c,0x25,0x5d,0x39,0x8c,0x78,0xa9,0x20,0x04,0x10,0x2a,0x37,0x48,0x2e,0xfe,0x65,0x01,0x7e,0x37,0x54,0x38,0x1c,0x89,0x21,0x3b,0x53,0x32,0x00,0x02,0x00,0x37,0x00,0x00,0x04,0x1a,0x05,0x9a, +0x00,0x07,0x00,0x0b,0x00,0x3b,0x40,0x1f,0x0b,0x00,0x02,0x7e,0x08,0x05,0x00,0x0d,0x05,0x0c,0x03,0x03,0x0d,0x0c,0x01,0x05,0x91,0x00,0x06,0x10,0x06,0x02,0x06,0x06,0x03,0x08,0x91,0x09,0x03,0x03,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x12,0x39,0x12,0x39,0x11,0x33,0xed,0x11,0x33,0x31, +0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x25,0x35,0x21,0x15,0x04,0x1a,0xfe,0x62,0xa8,0xfe,0x63,0x03,0xe3,0xfc,0x1d,0x03,0xe3,0x03,0xdc,0xfc,0x24,0x03,0xdc,0x98,0x8e,0x98,0x98,0xff,0xff,0x00,0x90,0x00,0x00,0x01,0x66,0x05,0xd9,0x02,0x06,0x00,0x4c,0x00,0x00,0x00,0x02,0x00,0x5c,0xff,0xe7,0x03,0xf4,0x04,0x19,0x00,0x0d, +0x00,0x18,0x00,0x22,0xbc,0x00,0x00,0x01,0x86,0x00,0x0e,0x00,0x13,0x01,0x86,0x40,0x09,0x08,0x10,0x9a,0x0b,0x10,0x16,0x9a,0x05,0x18,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x02,0x35,0x10,0x12,0x33,0x32,0x12,0x03,0x10,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xf4, +0x3d,0x77,0xaf,0x72,0xd9,0xea,0xf4,0xeb,0xe0,0xd9,0xac,0xfe,0xe9,0x8f,0x9c,0x91,0x90,0x8c,0x95,0x02,0x04,0x83,0xc9,0x8a,0x47,0x01,0x06,0xff,0x01,0x14,0x01,0x19,0xfe,0xf0,0xfe,0xf5,0x01,0x93,0xcb,0xd0,0xbf,0xc8,0xcd,0x00,0x00,0x01,0x00,0x79,0x00,0x00,0x02,0x71,0x04,0x1e,0x00,0x0e,0x00,0x24,0xbc,0x00,0x00,0x01,0x86,0x00, +0x01,0x00,0x08,0x01,0x81,0x40,0x09,0x02,0x0d,0x07,0x07,0x01,0x0d,0x10,0x01,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x0e,0x03,0x07,0x35,0x3e,0x03,0x37,0x33,0x02,0x71,0xac,0x13,0x49,0x5b,0x65,0x30,0x36,0x79,0x75,0x68,0x26,0x46,0x03,0x3b,0x13,0x31,0x30,0x2a,0x0c,0xa6,0x0f, +0x33,0x3f,0x45,0x21,0x00,0x01,0x00,0x99,0x00,0x00,0x03,0xd3,0x04,0x1b,0x00,0x26,0x00,0x34,0xb9,0x00,0x1b,0x01,0x86,0xb5,0x12,0x0a,0x0a,0x00,0x25,0x24,0xb8,0x01,0x86,0xb6,0x00,0x03,0x0a,0x12,0x03,0x24,0x0d,0xb8,0x01,0x7f,0xb5,0x16,0x10,0x24,0x99,0x00,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0xed,0x2f,0x12, +0x39,0x2f,0x39,0xed,0x31,0x30,0x33,0x35,0x34,0x3e,0x06,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x06,0x15,0x21,0x15,0x99,0x32,0x53,0x69,0x6e,0x69,0x53,0x32,0x7a,0x67,0x27,0x55,0x57,0x54,0x25,0x48,0xb5,0x67,0x5b,0x8a,0x5e,0x30,0x33,0x52,0x6a,0x6f,0x6a,0x52,0x33,0x02,0x93, +0x58,0x48,0x6d,0x56,0x44,0x3b,0x3a,0x40,0x4e,0x33,0x55,0x5d,0x12,0x20,0x2c,0x1a,0x9d,0x36,0x31,0x2b,0x4f,0x70,0x45,0x40,0x67,0x55,0x46,0x3e,0x39,0x3b,0x3f,0x26,0x93,0x00,0x00,0x01,0x00,0x7b,0xfe,0x50,0x03,0xb8,0x04,0x1b,0x00,0x2a,0x00,0x43,0x40,0x1b,0x16,0x89,0x1b,0x13,0x25,0x03,0x08,0x23,0x23,0x08,0x00,0x89,0x0f,0x0f, +0x2c,0x08,0x25,0x12,0x9a,0x08,0x05,0x1b,0x1e,0x13,0x13,0x05,0x18,0xb8,0x01,0x7f,0xb4,0x1e,0x10,0x0a,0x9a,0x05,0x00,0x2f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0xed,0x39,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x05,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02, +0x35,0x10,0x21,0x23,0x35,0x33,0x20,0x11,0x34,0x21,0x22,0x06,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x10,0x05,0x15,0x1e,0x03,0x03,0xb8,0x4a,0x85,0xb9,0x6f,0xcb,0x7b,0x91,0xbb,0x4a,0x7a,0x56,0x2f,0xfe,0x71,0x77,0x71,0x01,0x62,0xfe,0xf2,0x4b,0x90,0x42,0x88,0xbe,0x5b,0x92,0x68,0x38,0xfe,0xe1,0x4b,0x7c,0x59,0x32,0x02,0x60, +0x9f,0x71,0x3e,0x4e,0xb0,0x73,0x27,0x48,0x66,0x40,0x01,0x18,0x8b,0x01,0x09,0xf3,0x33,0x33,0xa0,0x52,0x32,0x5b,0x7e,0x4b,0xfe,0xe6,0x53,0x04,0x07,0x37,0x59,0x78,0x00,0x02,0x00,0x32,0xfe,0x68,0x04,0x2e,0x04,0x02,0x00,0x0e,0x00,0x15,0x00,0x31,0xb2,0x10,0x0e,0x05,0xb8,0x01,0x85,0x40,0x12,0x0f,0x09,0x06,0x06,0x17,0x09,0x11, +0x07,0x0e,0x10,0x09,0x01,0x10,0x9a,0x04,0x07,0x18,0x06,0x00,0x2f,0x3f,0x33,0xed,0x32,0x32,0x3f,0x12,0x39,0x01,0x2f,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x33,0x31,0x30,0x01,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x35,0x3e,0x03,0x37,0x01,0x21,0x11,0x0e,0x03,0x03,0x76,0xb8,0xb8,0xa2,0xfd,0x5e,0x5e,0xc0,0xaf,0x95,0x33,0xfe, +0x24,0x01,0xe9,0x46,0x83,0x7b,0x72,0x04,0x02,0xfc,0x83,0x85,0xfe,0x68,0x01,0x98,0x7d,0x64,0xe3,0xea,0xe9,0x6b,0xfc,0x83,0x02,0x89,0x75,0xbc,0x9b,0x82,0x00,0x01,0x00,0xa4,0xfe,0x4d,0x03,0xc9,0x04,0x00,0x00,0x23,0x00,0x35,0xb9,0x00,0x1c,0x01,0x85,0xb3,0x17,0x17,0x08,0x00,0xb8,0x01,0x86,0xb2,0x0f,0x08,0x12,0xb8,0x01,0x7f, +0xb7,0x1f,0x1f,0x0a,0x1b,0x99,0x18,0x0f,0x0a,0xb9,0x01,0x7f,0x00,0x05,0x00,0x2f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x13,0x21,0x15,0x21,0x03,0x36,0x36,0x33,0x32,0x1e, +0x02,0x03,0xc9,0x48,0x85,0xbc,0x73,0xc8,0x61,0x92,0x99,0x4e,0x7d,0x58,0x2f,0xbc,0xb3,0x1d,0x40,0x40,0x3d,0x19,0x31,0x02,0x97,0xfd,0xf7,0x1d,0x20,0x48,0x1c,0x72,0xb4,0x7d,0x41,0x1c,0x69,0xaa,0x7a,0x42,0x3c,0xae,0x5e,0x2e,0x52,0x74,0x45,0x8c,0x9f,0x02,0x03,0x04,0x03,0x02,0xcf,0x94,0xfe,0x5b,0x02,0x03,0x3c,0x6f,0xa1,0x00, +0x00,0x02,0x00,0x6f,0xff,0xe7,0x03,0xfe,0x05,0xb2,0x00,0x20,0x00,0x34,0x00,0x36,0xb3,0x12,0x2b,0x19,0x00,0xbb,0x01,0x86,0x00,0x21,0x00,0x19,0x01,0x86,0x40,0x0c,0x0a,0x26,0x9a,0x19,0x1c,0x1c,0x30,0x14,0x9a,0x0f,0x06,0x30,0xb8,0x01,0x7f,0xb1,0x05,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x2f, +0xed,0x11,0x39,0x39,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xfe,0x44,0x78,0xa6,0x61,0x6c,0xab,0x77,0x3e,0x53,0x99,0xd8, +0x85,0x94,0x5a,0x6f,0x7b,0x60,0x9a,0x6e,0x3b,0x04,0x63,0xe4,0x5e,0x97,0x6b,0x3a,0xa8,0x26,0x47,0x68,0x42,0x3d,0x68,0x4c,0x2b,0x2a,0x4c,0x69,0x40,0x3e,0x66,0x48,0x28,0x01,0xc7,0x69,0xb0,0x80,0x47,0x5a,0xa9,0xf4,0x99,0xbb,0x01,0x31,0xd9,0x76,0x29,0x9b,0x39,0x56,0x9d,0xde,0x88,0xb3,0x40,0x75,0xa2,0x78,0x4b,0x78,0x54,0x2d, +0x2e,0x4f,0x69,0x3b,0x4a,0x81,0x60,0x37,0x2f,0x54,0x75,0x00,0x00,0x01,0x00,0x45,0xfe,0x66,0x03,0xd5,0x04,0x00,0x00,0x12,0x00,0x22,0xb9,0x00,0x07,0x01,0x86,0x40,0x0c,0x0f,0x08,0x08,0x00,0x10,0x00,0x00,0x10,0x99,0x11,0x0f,0x08,0x00,0x2f,0x3f,0xed,0x39,0x01,0x2f,0x2f,0x12,0x39,0x2f,0x39,0xed,0x31,0x30,0x01,0x0e,0x03,0x02, +0x02,0x07,0x23,0x36,0x12,0x12,0x3e,0x02,0x37,0x21,0x35,0x21,0x03,0xd5,0x21,0x5d,0x68,0x6c,0x5e,0x47,0x10,0xb0,0x12,0x4b,0x5f,0x6a,0x64,0x53,0x19,0xfd,0x31,0x03,0x90,0x03,0xa1,0x39,0xaa,0xd4,0xf4,0xfe,0xfc,0xfe,0xf5,0x81,0x80,0x01,0x0b,0x01,0x01,0xee,0xc8,0x99,0x2b,0x94,0x00,0x03,0x00,0x5a,0xff,0xe9,0x03,0xfc,0x05,0xb2, +0x00,0x23,0x00,0x37,0x00,0x4b,0x00,0x47,0x40,0x25,0x38,0x89,0x08,0x42,0x8a,0x12,0x05,0x15,0x12,0x08,0x12,0x08,0x12,0x00,0x1a,0x89,0x2e,0x2e,0x4d,0x24,0x89,0x00,0x05,0x15,0x33,0x9a,0x3d,0x3d,0x0d,0x29,0x99,0x1f,0x18,0x47,0x9a,0x0d,0x06,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f, +0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x13,0x14,0x1e,0x02, +0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x5a,0x24,0x43,0x63,0x3f,0x5d,0x6e,0x3d,0x6c,0x94,0x56,0x57,0x94,0x6c,0x3c,0x6e,0x5b,0x3e,0x62,0x43,0x24,0x44,0x7b,0xab,0x67,0x66,0xaa,0x7c,0x45,0xb2,0x29,0x4b,0x6b,0x41,0x3f,0x6a,0x4d,0x2b,0x29,0x4c,0x6a,0x42,0x3e,0x69,0x4d,0x2c,0x33,0x25,0x41,0x56,0x31,0x31, +0x57,0x40,0x26,0x25,0x40,0x57,0x32,0x35,0x57,0x3f,0x22,0x01,0x90,0x39,0x73,0x64,0x52,0x18,0x34,0xa3,0x63,0x4f,0x86,0x62,0x37,0x38,0x62,0x86,0x4e,0x63,0xa3,0x34,0x18,0x52,0x64,0x73,0x39,0x5e,0x9c,0x6f,0x3e,0x3e,0x6f,0x9c,0x6c,0x43,0x6c,0x4c,0x29,0x2a,0x4c,0x6c,0x42,0x3c,0x69,0x50,0x2e,0x2b,0x4d,0x6b,0x02,0x59,0x33,0x57, +0x41,0x25,0x26,0x41,0x57,0x32,0x34,0x58,0x40,0x25,0x26,0x41,0x58,0x00,0x00,0x02,0x00,0x5e,0xfe,0x4e,0x03,0xec,0x04,0x19,0x00,0x20,0x00,0x34,0x00,0x33,0x40,0x16,0x21,0x00,0x89,0x08,0x17,0x10,0x10,0x36,0x2b,0x89,0x17,0x30,0x99,0x0f,0x12,0x12,0x05,0x26,0x9a,0x1c,0x10,0x0a,0xb9,0x01,0x7f,0x00,0x05,0x00,0x2f,0xed,0x3f,0xed, +0x11,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x31,0x30,0x01,0x14,0x02,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xec, +0x4e,0x96,0xd8,0x8a,0x8e,0x6c,0x77,0x87,0x61,0x99,0x6a,0x38,0x04,0x5c,0xe4,0x5c,0x9a,0x70,0x3e,0x45,0x7b,0xa9,0x64,0x6c,0xa7,0x72,0x3c,0xb1,0x2b,0x4c,0x69,0x3e,0x3b,0x66,0x4b,0x2b,0x29,0x4c,0x6b,0x41,0x39,0x65,0x4b,0x2b,0x01,0x8a,0xc5,0xfe,0xcd,0xd5,0x6f,0x32,0x9d,0x43,0x50,0x99,0xe0,0x91,0xb9,0x41,0x77,0xa4,0x63,0x6a, +0xb0,0x7f,0x46,0x57,0xa7,0xf4,0x0a,0x53,0x88,0x61,0x35,0x2f,0x55,0x75,0x45,0x4c,0x78,0x53,0x2c,0x2b,0x49,0x63,0xff,0xff,0x00,0x5c,0xff,0xe7,0x03,0xf4,0x04,0x19,0x02,0x06,0x0c,0xb9,0x00,0x00,0x00,0x01,0x00,0xe8,0x00,0x00,0x02,0xe0,0x04,0x1e,0x00,0x0e,0x00,0x24,0xbc,0x00,0x00,0x01,0x86,0x00,0x01,0x00,0x08,0x01,0x81,0x40, +0x09,0x02,0x0d,0x07,0x07,0x01,0x0d,0x10,0x01,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x0e,0x03,0x07,0x35,0x3e,0x03,0x37,0x33,0x02,0xe0,0xac,0x13,0x49,0x5b,0x65,0x30,0x36,0x79,0x75,0x68,0x26,0x46,0x03,0x3b,0x13,0x31,0x30,0x2a,0x0c,0xa6,0x0f,0x33,0x3f,0x45,0x21,0xff,0xff, +0x00,0x99,0x00,0x00,0x03,0xd3,0x04,0x1b,0x02,0x06,0x0c,0xbb,0x00,0x00,0xff,0xff,0x00,0x7b,0xfe,0x50,0x03,0xb8,0x04,0x1b,0x02,0x06,0x0c,0xbc,0x00,0x00,0xff,0xff,0x00,0x32,0xfe,0x68,0x04,0x2e,0x04,0x02,0x00,0x06,0x0c,0xbd,0x00,0x00,0xff,0xff,0x00,0xa4,0xfe,0x4d,0x03,0xc9,0x04,0x00,0x02,0x06,0x0c,0xbe,0x00,0x00,0xff,0xff, +0x00,0x6f,0xff,0xe7,0x03,0xfe,0x05,0xb2,0x02,0x06,0x0c,0xbf,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x66,0x03,0xf0,0x04,0x00,0x00,0x06,0x0c,0xc0,0x1b,0x00,0xff,0xff,0x00,0x5a,0xff,0xe9,0x03,0xfc,0x05,0xb2,0x02,0x06,0x0c,0xc1,0x00,0x00,0xff,0xff,0x00,0x5e,0xfe,0x4e,0x03,0xec,0x04,0x19,0x02,0x06,0x0c,0xc2,0x00,0x00,0x00,0x02, +0x00,0x56,0xff,0xe7,0x03,0xfc,0x05,0xb2,0x00,0x10,0x00,0x18,0x00,0x20,0x40,0x10,0x00,0x89,0x11,0x11,0x1a,0x15,0x89,0x0a,0x13,0x9a,0x0f,0x07,0x17,0x9a,0x05,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x02,0x06,0x06,0x23,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x20,0x03, +0x10,0x21,0x20,0x11,0x10,0x21,0x20,0x03,0xfc,0x41,0x7b,0xb3,0x72,0x6c,0xa9,0x74,0x3c,0x3f,0x7a,0xb5,0x75,0x01,0xc3,0xa8,0xfe,0xdd,0xfe,0xcd,0x01,0x2d,0x01,0x29,0x02,0xd3,0xb4,0xfe,0xea,0xbf,0x63,0x5f,0xb6,0x01,0x09,0xab,0xbc,0x01,0x20,0xc3,0x63,0xfd,0x11,0x02,0x64,0xfd,0x91,0xfd,0xbb,0x00,0x00,0x01,0x00,0x53,0x00,0x00, +0x02,0x43,0x05,0xba,0x00,0x0e,0x00,0x28,0x40,0x13,0x0e,0x8a,0x00,0x06,0x00,0x06,0x00,0x0f,0x10,0x07,0x99,0x01,0x0c,0x06,0x06,0x0c,0x07,0x00,0x18,0x00,0x3f,0x3f,0x39,0x2f,0x12,0x39,0xed,0x11,0x12,0x01,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x21,0x11,0x0e,0x03,0x07,0x35,0x3e,0x03,0x37,0x33,0x11,0x01,0x9f,0x13,0x49,0x5b, +0x65,0x30,0x36,0x79,0x75,0x68,0x26,0x3e,0x04,0xd7,0x13,0x31,0x30,0x2a,0x0c,0xa6,0x0f,0x33,0x3f,0x45,0x21,0xfa,0x46,0x00,0x00,0x01,0x00,0x6d,0x00,0x00,0x03,0xe2,0x05,0xb2,0x00,0x2a,0x00,0x2e,0x40,0x17,0x1e,0x13,0x89,0x0a,0x21,0x00,0x00,0x2c,0x1d,0x89,0x21,0x00,0x0e,0x1d,0x99,0x20,0x18,0x0a,0x0a,0x05,0x9a,0x0e,0x07,0x00, +0x3f,0xed,0x32,0x2f,0x3f,0xed,0x11,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x32,0x31,0x30,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15,0x21,0x15,0x21,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x03,0x04,0x29,0x47,0x60,0x38,0x30,0x5c,0x57,0x51, +0x23,0x45,0xab,0x7b,0x58,0x96,0x6e,0x3f,0x27,0x4f,0x78,0x51,0x65,0x83,0x4d,0x1f,0x02,0xca,0xfc,0x8b,0x28,0x5c,0x95,0x6c,0x4e,0x69,0x40,0x1b,0x04,0x22,0x42,0x62,0x41,0x20,0x1a,0x2e,0x40,0x27,0xb0,0x43,0x47,0x33,0x62,0x90,0x5d,0x55,0x8a,0x7a,0x70,0x3a,0x48,0x66,0x59,0x59,0x3a,0x93,0x47,0x5c,0x8c,0x7e,0x7e,0x4f,0x38,0x66, +0x66,0x69,0x00,0x01,0x00,0x7b,0xff,0xe7,0x03,0xb9,0x05,0xb2,0x00,0x29,0x00,0x55,0x40,0x32,0x16,0x89,0x1a,0x13,0x24,0x03,0x08,0x22,0x22,0x08,0x00,0x89,0x0f,0x0f,0x2b,0x08,0x39,0x1a,0x01,0x2f,0x1a,0x01,0x1a,0x1a,0x18,0x9a,0x1d,0x24,0x12,0x9a,0x13,0x13,0x1d,0x07,0x36,0x08,0x01,0x00,0x08,0x10,0x08,0x20,0x08,0x03,0x08,0x08, +0x0a,0x9a,0x05,0x19,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x5d,0x3f,0x39,0x2f,0xed,0x39,0x10,0xed,0x32,0x2f,0x5d,0x5d,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x10,0x21,0x23,0x35,0x33,0x20,0x11,0x34,0x21,0x22,0x07,0x35,0x36, +0x33,0x32,0x1e,0x02,0x15,0x10,0x05,0x15,0x1e,0x03,0x03,0xb9,0x49,0x85,0xba,0x70,0xcd,0x79,0x91,0xbb,0x4b,0x79,0x57,0x2f,0xfe,0x70,0x77,0x71,0x01,0x62,0xfe,0xf2,0x98,0x85,0x89,0xbd,0x5a,0x92,0x68,0x39,0xfe,0xe2,0x49,0x7c,0x5a,0x33,0x01,0x96,0x61,0x9f,0x71,0x3e,0x4e,0xb0,0x72,0x26,0x48,0x66,0x40,0x01,0x19,0x8b,0x01,0x08, +0xf4,0x66,0x9f,0x52,0x32,0x5a,0x7e,0x4c,0xfe,0xe5,0x51,0x04,0x08,0x37,0x58,0x77,0x00,0x02,0x00,0x32,0x00,0x00,0x04,0x56,0x05,0x9a,0x00,0x0e,0x00,0x15,0x00,0x2e,0x40,0x16,0x10,0x0e,0x04,0x8a,0x07,0x07,0x17,0x0f,0x09,0x04,0x08,0x99,0x09,0x01,0x0f,0x0f,0x06,0x11,0x0e,0x06,0x06,0x18,0x00,0x3f,0x3f,0x33,0x12,0x39,0x2f,0x33, +0x33,0xed,0x32,0x01,0x2f,0x33,0x12,0x39,0x2f,0xed,0x33,0x33,0x31,0x30,0x01,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x35,0x3e,0x03,0x37,0x01,0x21,0x11,0x0e,0x03,0x03,0x76,0xe0,0xe0,0xa2,0xfd,0x5e,0x5e,0xc0,0xaf,0x95,0x33,0xfe,0x24,0x01,0xe9,0x4b,0x86,0x79,0x6e,0x05,0x9a,0xfc,0x4d,0x96,0xfe,0xaf,0x01,0x51,0x8e,0x6a,0xf1, +0xf8,0xf7,0x71,0xfc,0x4d,0x02,0xbe,0x83,0xce,0xa8,0x88,0x00,0x00,0x01,0x00,0xa4,0xff,0xe7,0x03,0xc9,0x05,0x9a,0x00,0x23,0x00,0x3d,0x40,0x21,0x1c,0x8a,0x1a,0x17,0x17,0x08,0x00,0x89,0x0f,0x0f,0x25,0x08,0x12,0x9a,0x1f,0x1f,0x0a,0x1b,0x99,0x18,0x06,0x32,0x08,0x01,0x20,0x08,0x01,0x08,0x08,0x0a,0x9a,0x05,0x19,0x00,0x3f,0xed, +0x32,0x2f,0x5d,0x5d,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x39,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x13,0x21,0x15,0x21,0x03,0x36,0x36,0x33,0x32,0x1e,0x02,0x03,0xc9,0x48,0x85,0xbc,0x73,0xc8,0x61,0x92, +0x99,0x4e,0x7d,0x58,0x2f,0xbc,0xb3,0x1d,0x40,0x40,0x3d,0x19,0x31,0x02,0x97,0xfd,0xf7,0x1d,0x20,0x48,0x1c,0x72,0xb4,0x7d,0x41,0x01,0xb6,0x69,0xaa,0x7a,0x42,0x3c,0xae,0x5e,0x2e,0x52,0x74,0x45,0x8c,0x9f,0x02,0x03,0x04,0x03,0x02,0xcf,0x94,0xfe,0x5b,0x02,0x03,0x3c,0x6f,0xa1,0x00,0x02,0x00,0x6f,0xff,0xe7,0x03,0xfe,0x05,0xb2, +0x00,0x20,0x00,0x34,0x00,0x37,0x40,0x1c,0x12,0x0a,0x00,0x89,0x21,0x21,0x36,0x2b,0x19,0x89,0x0a,0x26,0x9a,0x1a,0x1c,0x1c,0x30,0x0f,0x12,0x12,0x14,0x9a,0x0f,0x07,0x30,0x9a,0x05,0x19,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x11,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x14,0x0e, +0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xfe,0x44,0x78,0xa6,0x61,0x6c,0xab,0x77,0x3e,0x53,0x99,0xd8,0x85,0x94,0x5a,0x6f,0x7b,0x60,0x9a,0x6e,0x3b, +0x04,0x63,0xe4,0x5e,0x97,0x6b,0x3a,0xa8,0x26,0x47,0x68,0x42,0x3d,0x68,0x4c,0x2b,0x2a,0x4c,0x69,0x40,0x3e,0x66,0x48,0x28,0x01,0xc7,0x69,0xb0,0x80,0x47,0x5a,0xa9,0xf4,0x99,0xbb,0x01,0x31,0xd9,0x76,0x29,0x9b,0x39,0x56,0x9d,0xde,0x88,0xb3,0x40,0x75,0xa2,0x78,0x4b,0x78,0x54,0x2d,0x2e,0x4f,0x69,0x3b,0x4a,0x81,0x60,0x37,0x2f, +0x54,0x75,0x00,0x01,0x00,0x45,0x00,0x00,0x03,0xd5,0x05,0x9a,0x00,0x12,0x00,0x24,0x40,0x11,0x07,0x89,0x0f,0x00,0x08,0x00,0x08,0x00,0x14,0x10,0x00,0x10,0x99,0x11,0x06,0x08,0x18,0x00,0x3f,0x3f,0xed,0x32,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x31,0x30,0x01,0x0e,0x03,0x02,0x02,0x07,0x23,0x36,0x12,0x12,0x3e,0x02, +0x37,0x21,0x35,0x21,0x03,0xd5,0x21,0x5d,0x68,0x6c,0x5e,0x47,0x10,0xb0,0x12,0x4b,0x5f,0x6a,0x64,0x53,0x19,0xfd,0x31,0x03,0x90,0x05,0x3b,0x39,0xaa,0xd4,0xf4,0xfe,0xfc,0xfe,0xf5,0x81,0x80,0x01,0x0b,0x01,0x01,0xee,0xc8,0x99,0x2b,0x94,0x00,0x03,0x00,0x5a,0xff,0xe9,0x03,0xfc,0x05,0xb2,0x00,0x23,0x00,0x37,0x00,0x4b,0x00,0x47, +0x40,0x25,0x38,0x89,0x08,0x42,0x8a,0x12,0x05,0x15,0x12,0x08,0x12,0x08,0x12,0x00,0x1a,0x89,0x2e,0x2e,0x4d,0x24,0x89,0x00,0x15,0x05,0x33,0x9a,0x3d,0x3d,0x0d,0x29,0x99,0x1f,0x19,0x47,0x9a,0x0d,0x07,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39, +0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02, +0x23,0x22,0x0e,0x02,0x5a,0x24,0x43,0x63,0x3f,0x5d,0x6e,0x3d,0x6c,0x94,0x56,0x57,0x94,0x6c,0x3c,0x6e,0x5b,0x3e,0x62,0x43,0x24,0x44,0x7b,0xab,0x67,0x66,0xaa,0x7c,0x45,0xb2,0x29,0x4b,0x6b,0x41,0x3f,0x6a,0x4d,0x2b,0x29,0x4c,0x6a,0x42,0x3e,0x69,0x4d,0x2c,0x33,0x25,0x41,0x56,0x31,0x31,0x57,0x40,0x26,0x25,0x40,0x57,0x32,0x35, +0x57,0x3f,0x22,0x01,0x90,0x39,0x73,0x64,0x52,0x18,0x34,0xa3,0x63,0x4f,0x86,0x62,0x37,0x38,0x62,0x86,0x4e,0x63,0xa3,0x34,0x18,0x52,0x64,0x73,0x39,0x5e,0x9c,0x6f,0x3e,0x3e,0x6f,0x9c,0x6c,0x43,0x6c,0x4c,0x29,0x2a,0x4c,0x6c,0x42,0x3c,0x69,0x50,0x2e,0x2b,0x4d,0x6b,0x02,0x59,0x33,0x57,0x41,0x25,0x26,0x41,0x57,0x32,0x34,0x58, +0x40,0x25,0x26,0x41,0x58,0x00,0x00,0x02,0x00,0x5e,0xff,0xe7,0x03,0xec,0x05,0xb2,0x00,0x20,0x00,0x34,0x00,0x35,0x40,0x1b,0x21,0x00,0x89,0x08,0x17,0x10,0x10,0x36,0x2b,0x89,0x17,0x30,0x99,0x0f,0x12,0x12,0x05,0x26,0x9a,0x1c,0x07,0x08,0x08,0x0a,0x9a,0x05,0x19,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x11,0x39,0x2f,0x39,0xed,0x01, +0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x31,0x30,0x01,0x14,0x02,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xec,0x4e,0x96,0xd8,0x8a,0x8e,0x6c, +0x77,0x87,0x61,0x99,0x6a,0x38,0x04,0x5c,0xe4,0x5c,0x9a,0x70,0x3e,0x45,0x7b,0xa9,0x64,0x6c,0xa7,0x72,0x3c,0xb1,0x2b,0x4c,0x69,0x3e,0x3b,0x66,0x4b,0x2b,0x29,0x4c,0x6b,0x41,0x39,0x65,0x4b,0x2b,0x03,0x23,0xc5,0xfe,0xcd,0xd5,0x6f,0x32,0x9d,0x43,0x50,0x99,0xe0,0x91,0xb9,0x41,0x77,0xa4,0x63,0x6a,0xb0,0x7f,0x46,0x57,0xa7,0xf4, +0x0a,0x53,0x88,0x61,0x35,0x2f,0x55,0x75,0x45,0x4c,0x78,0x53,0x2c,0x2b,0x49,0x63,0x00,0x02,0x00,0x56,0xff,0xe8,0x03,0xfc,0x05,0xb2,0x00,0x0a,0x00,0x12,0x00,0x88,0x40,0x1a,0x0f,0x9a,0x00,0x19,0x0b,0x9a,0x06,0x07,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x89,0x11,0xb8,0xff,0xf0,0xb3, +0x0d,0x06,0x4d,0x11,0xb8,0xff,0xe0,0xb6,0x0c,0x06,0x4d,0x30,0x11,0x01,0x11,0xb8,0xff,0xe0,0x40,0x1d,0x0b,0x06,0x4d,0x20,0x11,0x40,0x11,0x02,0x11,0x11,0x14,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x89,0x03,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xd8,0xb3,0x0d,0x06,0x4d, +0x03,0xb8,0xff,0xe0,0xb6,0x0b,0x06,0x4d,0x2f,0x03,0x01,0x03,0x2f,0x5d,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x5d,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x05,0x22,0x02,0x11,0x10,0x12,0x33,0x20,0x11,0x10,0x02,0x03,0x20,0x11,0x10,0x21,0x20,0x11,0x10,0x02,0x1a,0xd5,0xef,0xf9, +0xeb,0x01,0xc2,0xfe,0xcd,0xfe,0xcd,0x01,0x2d,0x01,0x29,0x18,0x01,0x6e,0x01,0x5a,0x01,0x7c,0x01,0x86,0xfd,0x21,0xfe,0x94,0xfe,0x81,0x05,0x3f,0xfd,0x91,0xfd,0xba,0x02,0x50,0x02,0x65,0x00,0x01,0x00,0xa8,0x00,0x00,0x03,0xdb,0x05,0xba,0x00,0x09,0x00,0x7e,0xb5,0x26,0x06,0x36,0x06,0x02,0x06,0xb8,0xff,0xf8,0x40,0x2d,0x0d,0x06, +0x4d,0x04,0x08,0x0d,0x06,0x4d,0x06,0x04,0x07,0x05,0x08,0x02,0x99,0x01,0x18,0x05,0x07,0x07,0x01,0x05,0x01,0x00,0x01,0x00,0x01,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x8a,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xd0,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xd6,0xb3,0x0b, +0x06,0x4d,0x03,0xb8,0xff,0xf0,0xb6,0x0b,0x01,0x4d,0x03,0x03,0x0b,0x0a,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x33,0x2f,0x2f,0x11,0x33,0x2f,0x00,0x3f,0x33,0x3f,0xed,0x32,0x2f,0x12,0x39,0x39,0x2b,0x2b,0x31,0x30,0x5d,0x21,0x21,0x35,0x21,0x11,0x05,0x35,0x25,0x11,0x21,0x03,0xdb,0xfc,0xd5,0x01,0x44, +0xfe,0xb4,0x01,0xf0,0x01,0x43,0x90,0x04,0x5a,0x63,0x9c,0x97,0xfa,0xd6,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0xcd,0x05,0xb2,0x00,0x17,0x00,0xa3,0xb3,0x78,0x08,0x01,0x15,0xb8,0xff,0xe8,0x40,0x36,0x0c,0x00,0x4d,0x11,0x06,0x0e,0x02,0x15,0x99,0x01,0x18,0x0b,0x0b,0x09,0x9a,0x0e,0x07,0x0b,0x00,0x10,0x0c,0x06,0x4d,0x00,0x18,0x0b, +0x0d,0x01,0x4c,0x00,0x00,0x11,0x08,0x0d,0x06,0x4d,0x11,0x08,0x0c,0x06,0x4d,0x11,0x08,0x0b,0x06,0x4d,0x11,0x8a,0x20,0x06,0x30,0x06,0x02,0x06,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf0,0xb6,0x0b,0x06,0x4d,0x06,0x06,0x19,0x0b,0xb8,0xff,0xf8,0x40,0x0c,0x0d,0x06,0x4d,0x0b, +0x16,0x20,0x0b,0x0c,0x01,0x4c,0x16,0x01,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x01,0x2f,0x2b,0x2b,0x33,0x2b,0x33,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x32,0x2f,0x2b,0x2b,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x32,0x12,0x39,0x39,0x31,0x30,0x01,0x2b,0x5d,0x21, +0x21,0x35,0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x07,0x01,0x15,0x21,0x03,0xc0,0xfc,0xa0,0x01,0xa2,0xa0,0x89,0x8e,0x83,0xc0,0xb0,0xa8,0xdf,0xc0,0xdc,0x98,0xc5,0xfe,0xb5,0x02,0x9b,0x92,0x01,0xa3,0xa0,0xd5,0x79,0x7c,0x88,0xa4,0xac,0x83,0xd0,0xaf,0x8a,0xfe,0xf9,0xc3,0xfe,0xb9, +0x04,0x00,0x00,0x01,0x00,0x83,0xff,0xe8,0x03,0xc0,0x05,0xb2,0x00,0x21,0x00,0xe5,0x40,0x3a,0x76,0x1c,0x01,0x74,0x16,0x01,0x7a,0x00,0x01,0x12,0x11,0x00,0x01,0x19,0x09,0x9a,0x0a,0x0a,0x14,0x34,0x01,0x01,0x00,0x01,0x10,0x01,0x20,0x01,0x03,0x01,0x01,0x03,0x9a,0x20,0x19,0x3b,0x11,0x01,0x2f,0x11,0x01,0x11,0x11,0x0f,0x9a,0x14, +0x07,0x19,0x09,0x10,0x0c,0x06,0x4d,0x09,0x70,0x11,0x01,0x11,0xb8,0xff,0xf0,0x40,0x3f,0x0d,0x06,0x4d,0x11,0x17,0x06,0x0c,0x06,0x4d,0x17,0x06,0x0b,0x06,0x4d,0x17,0x89,0x0d,0x10,0x0d,0x06,0x4d,0x0d,0x10,0x0c,0x06,0x4d,0x0d,0x14,0x0b,0x06,0x4d,0x0d,0x09,0x11,0x0d,0x03,0x00,0x1d,0x08,0x0d,0x06,0x4d,0x1d,0x08,0x0c,0x06,0x4d, +0x1d,0x08,0x0b,0x06,0x4d,0x1d,0x89,0x7f,0x06,0x01,0x06,0x08,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb6,0x0b,0x06,0x4d,0x06,0x06,0x23,0x00,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xd8,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xd8,0xb3,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x2b,0x11, +0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x12,0x17,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2f,0x2b,0x5d,0x2f,0x2b,0x39,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x5d,0x3f,0xed,0x32,0x2f,0x5d,0x5d,0x11,0x39,0x2f,0xed,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35, +0x33,0x20,0x11,0x34,0x21,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x10,0x05,0x15,0x16,0x16,0x15,0x14,0x04,0x23,0x22,0x83,0x93,0xb9,0x96,0xb3,0xfe,0x71,0x77,0x71,0x01,0x63,0xfe,0xf1,0x97,0x86,0x8a,0xbc,0xb5,0xd9,0xfe,0xe0,0x9b,0xb7,0xfe,0xeb,0xe3,0xcc,0x35,0xb1,0x74,0x96,0x7f,0x01,0x19,0x8b,0x01,0x08,0xf4,0x67,0xa0,0x52, +0xc0,0x96,0xfe,0xe5,0x51,0x04,0x0f,0xbb,0x8c,0xc1,0xed,0x00,0x00,0x02,0x00,0x0e,0x00,0x00,0x04,0x0a,0x05,0x9a,0x00,0x0a,0x00,0x12,0x00,0x8a,0x40,0x16,0x39,0x07,0x79,0x07,0x02,0x76,0x06,0x01,0x09,0x00,0x00,0x02,0x06,0x0b,0x0d,0x06,0x4c,0x02,0x8a,0x0b,0x07,0x03,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xd6,0xb4, +0x0b,0x0c,0x06,0x4c,0x03,0xb8,0xff,0xe0,0xb3,0x0d,0x01,0x4d,0x03,0xb8,0xff,0xf0,0x40,0x09,0x0b,0x0c,0x01,0x4c,0x03,0x03,0x14,0x12,0x05,0xb8,0xff,0xf8,0x40,0x15,0x0c,0x0d,0x06,0x4c,0x2f,0x05,0x3f,0x05,0x4f,0x05,0x03,0x05,0x01,0x05,0x9a,0x09,0x06,0x12,0x12,0x03,0x0f,0xb8,0xff,0xf0,0xb7,0x0c,0x00,0x4d,0x0f,0x07,0x06,0x03, +0x18,0x00,0x3f,0x3f,0x33,0x2b,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x01,0x2f,0x5d,0x2b,0x32,0x11,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0x33,0x33,0xe9,0x2b,0x32,0x2f,0x32,0x31,0x30,0x00,0x5d,0x01,0x5d,0x01,0x23,0x11,0x23,0x11,0x21,0x35,0x01,0x33,0x11,0x33,0x21,0x11,0x34,0x37,0x23,0x06,0x07,0x01,0x04,0x0a,0xb8,0xa2,0xfd,0x5e,0x02, +0x7e,0xc6,0xb8,0xfe,0xa6,0x04,0x04,0x0e,0x29,0xfe,0x47,0x01,0x7d,0xfe,0x83,0x01,0x7d,0x6b,0x03,0xb2,0xfc,0x68,0x02,0x6c,0x42,0x52,0x24,0x4a,0xfd,0x6e,0x00,0x01,0x00,0xa4,0xff,0xe8,0x03,0xc8,0x05,0x9a,0x00,0x19,0x00,0xb1,0x40,0x32,0x7a,0x00,0x01,0x00,0x01,0x0b,0x09,0x9a,0x12,0x12,0x0c,0x20,0x01,0x30,0x01,0x02,0x01,0x01, +0x03,0x9a,0x18,0x19,0x0f,0x99,0x0c,0x06,0x0e,0x00,0x0e,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x89,0x7f,0x06,0x01,0x06,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf0,0xb6,0x0b,0x06,0x4d,0x06,0x06,0x1b,0x00,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xe0,0x40,0x14, +0x0c,0x06,0x4d,0x00,0x10,0x06,0x0c,0x06,0x4d,0x10,0x0e,0x0b,0x06,0x4d,0x10,0x8b,0x70,0x0b,0x01,0x0b,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xf8,0x40,0x09,0x0b,0x06,0x4d,0x0b,0x20,0x0d,0x01,0x4d,0x0b,0x2f,0x2b,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x33,0x2b,0x2b,0x12,0x39, +0x2f,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x32,0x2f,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x5d,0x11,0x39,0x2f,0xed,0x32,0x11,0x33,0x31,0x30,0x5d,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x11,0x21,0x15,0x21,0x11,0x36,0x33,0x32,0x16,0x15,0x14,0x04,0x23,0x22,0xa4,0x93,0x98,0x98,0xba,0xbe,0xb1,0x3c,0xa5, +0x02,0xb6,0xfd,0xe5,0x42,0x38,0xe6,0xfc,0xfe,0xf1,0xec,0xc7,0x23,0xae,0x5f,0xac,0x8e,0x8d,0x9e,0x0c,0x02,0xcf,0x94,0xfe,0x5c,0x04,0xe7,0xc9,0xd0,0xfe,0x00,0x02,0x00,0x6e,0xff,0xe8,0x03,0xfe,0x05,0xb2,0x00,0x16,0x00,0x22,0x00,0xae,0x40,0x3b,0x7a,0x14,0x01,0x76,0x0a,0x01,0x29,0x14,0x39,0x14,0x02,0x06,0x0f,0x15,0x17,0x9a, +0x09,0x09,0x15,0x1d,0x9a,0x0f,0x19,0x01,0x01,0x03,0x9a,0x15,0x07,0x01,0x40,0x0c,0x00,0x4d,0x01,0x01,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x89,0x20,0x20,0x30,0x20,0x02,0x20,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x20,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x20,0xb8,0xff,0xe4,0x40,0x19, +0x0b,0x06,0x4d,0x20,0x20,0x24,0x1a,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x89,0x12,0xb8,0xff,0xd4,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xd6,0xb3,0x0c,0x06,0x4d,0x12,0xb8,0xff,0xd8,0xb3,0x0b,0x06,0x4d,0x12,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b, +0x5d,0xe9,0x2b,0x2b,0x2b,0x32,0x2f,0x2b,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x11,0x39,0x2f,0xed,0x11,0x12,0x39,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x01,0x15,0x26,0x23,0x22,0x02,0x11,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x23,0x22,0x02,0x11,0x10,0x00,0x21,0x32,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03, +0xa6,0x6f,0x7b,0xbf,0xe5,0x04,0x64,0xe4,0xbc,0xde,0xfe,0xc4,0xd8,0xf6,0x01,0x42,0x01,0x08,0x96,0xfe,0xf2,0x7f,0x9e,0x9d,0x82,0x7c,0x98,0x92,0x05,0x89,0x9b,0x39,0xfe,0xac,0xfe,0xe3,0xcb,0xf1,0xca,0xd3,0xfe,0xf5,0x01,0x58,0x01,0x37,0x01,0x79,0x01,0xc2,0xfd,0x44,0xac,0x75,0x93,0xd0,0xb5,0x8b,0x98,0xac,0x00,0x01,0x00,0x56, +0x00,0x00,0x03,0xf2,0x05,0x9a,0x00,0x06,0x00,0xbc,0x40,0x0b,0x73,0x01,0x01,0x02,0x18,0x00,0x04,0x99,0x05,0x06,0x03,0xb8,0xff,0xd8,0x40,0x0b,0x0b,0x0d,0x01,0x4c,0x01,0x28,0x0b,0x0d,0x01,0x4c,0x03,0xb8,0xff,0xf4,0x40,0x09,0x0d,0x06,0x4d,0x01,0x0c,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x06,0x4d,0x01,0x10,0x0c, +0x06,0x4d,0x03,0xb8,0xff,0xf0,0x40,0x14,0x0b,0x06,0x4d,0x01,0x10,0x0b,0x06,0x4d,0x01,0x03,0x00,0x02,0x02,0x04,0x20,0x00,0x30,0x00,0x02,0x00,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xf0,0x40,0x0d,0x0b,0x06,0x4d,0x00,0x20,0x0b,0x0c,0x01,0x4c,0x00,0x00,0x08,0x04,0xb8,0xff, +0xe0,0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x04,0xb8,0xff,0xe0,0x40,0x0e,0x0b,0x06,0x4d,0x04,0x40,0x0b,0x01,0x4d,0x04,0x40,0x0b,0x00,0x4d,0x04,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0x5d,0x12,0x39,0x2f,0x12,0x39,0x39,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x3f,0xed, +0x39,0x3f,0x31,0x30,0x01,0x5d,0x01,0x01,0x23,0x01,0x21,0x35,0x21,0x03,0xf2,0xfd,0xc8,0xaa,0x02,0x19,0xfd,0x2d,0x03,0x9c,0x05,0x66,0xfa,0x9a,0x05,0x06,0x94,0x00,0x00,0x03,0x00,0x64,0xff,0xe8,0x03,0xee,0x05,0xb2,0x00,0x15,0x00,0x1f,0x00,0x29,0x00,0xfa,0x40,0x26,0x7b,0x13,0x01,0x7b,0x0f,0x01,0x74,0x08,0x01,0x74,0x04,0x01, +0x76,0x07,0x01,0x29,0x08,0x0b,0x00,0x4d,0x35,0x1f,0x01,0x36,0x0a,0x01,0x36,0x1d,0x01,0x76,0x1e,0x01,0x20,0x08,0x0d,0x06,0x4d,0x1e,0xb8,0xff,0xf8,0x40,0x38,0x0d,0x06,0x4d,0x20,0x00,0x0b,0x03,0x1e,0x1e,0x06,0x25,0x9a,0x11,0x19,0x19,0x9a,0x06,0x07,0x00,0x0b,0x1e,0x20,0x04,0x03,0x16,0x89,0x09,0x18,0x0d,0x01,0x4d,0x09,0x09, +0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x89,0x20,0x28,0x30,0x28,0x02,0x28,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x28,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x28,0xb8,0xff,0xe8,0x40,0x0a,0x0b,0x06,0x4d,0x28,0x28,0x2b,0x14,0x1c,0x89,0x03,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff, +0xf8,0x40,0x17,0x0b,0x06,0x4d,0x03,0x03,0x22,0x08,0x0d,0x06,0x4d,0x22,0x08,0x0c,0x06,0x4d,0x22,0x08,0x0b,0x06,0x4d,0x22,0x89,0x14,0xb8,0xff,0xd8,0xb3,0x0d,0x06,0x4d,0x14,0xb8,0xff,0xd8,0xb3,0x0c,0x06,0x4d,0x14,0xb8,0xff,0xd8,0xb3,0x0b,0x06,0x4d,0x14,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x39,0x2f,0x2b,0x2b,0xe9,0x11, +0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x39,0x2f,0x2b,0xe9,0x12,0x17,0x39,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x11,0x17,0x33,0x2b,0x2b,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x2b,0x01,0x5d,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x35,0x24,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x05,0x15,0x04,0x11,0x14,0x04,0x23,0x22,0x26, +0x35,0x10,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x07,0x04,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x01,0x9a,0xfe,0xfe,0xec,0xba,0xa8,0xd8,0xfe,0xf6,0x01,0x3a,0xff,0x00,0xe4,0xb8,0xee,0x02,0xb2,0x7c,0x6b,0x64,0x8b,0xe9,0xed,0xf8,0xfe,0xee,0x9f,0x82,0x7c,0x9d,0x02,0xf0,0x04,0x78,0xe4,0x9b,0xc7,0xba,0x92,0xee, +0x84,0x04,0x70,0xfe,0xec,0xb2,0xd2,0xd0,0xa6,0x01,0x14,0x01,0xe0,0x63,0x72,0x77,0x5c,0xbb,0x5f,0x62,0xfa,0x6d,0xcf,0x6b,0x89,0x87,0x67,0xd8,0x00,0x02,0x00,0x5e,0xff,0xe8,0x03,0xec,0x05,0xb2,0x00,0x17,0x00,0x23,0x00,0xc1,0x40,0x29,0x79,0x14,0x01,0x74,0x15,0x01,0x76,0x04,0x01,0x2d,0x04,0x3d,0x04,0x02,0x29,0x14,0x39,0x14, +0x02,0x08,0x10,0x0a,0x9a,0x1e,0x1e,0x10,0x70,0x01,0x01,0x01,0x01,0x03,0x9a,0x16,0x19,0x18,0x9a,0x10,0x07,0x21,0x00,0xb8,0xff,0xea,0x40,0x17,0x0c,0x06,0x4d,0x00,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x08,0x0b,0x06,0x4d,0x21,0x13,0x89,0x06,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf0,0xb3,0x0c, +0x06,0x4d,0x06,0xb8,0xff,0xe8,0x40,0x1e,0x0b,0x06,0x4d,0x20,0x06,0x30,0x06,0x02,0x06,0x06,0x25,0x00,0x1b,0x08,0x0d,0x06,0x4d,0x1b,0x08,0x0c,0x06,0x4d,0x1b,0x08,0x0b,0x06,0x4d,0x1b,0x89,0x0d,0xb8,0xff,0xd8,0xb3,0x0d,0x06,0x4d,0x0d,0xb8,0xff,0xd8,0xb3,0x0c,0x06,0x4d,0x0d,0xb8,0xff,0xd8,0xb3,0x0b,0x06,0x4d,0x0d,0x2f,0x2b, +0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xe9,0x33,0x2b,0x2b,0x2b,0x2f,0x2b,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x5d,0x11,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x37,0x35,0x16,0x33,0x32,0x12,0x11,0x06,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x00,0x33,0x32,0x12, +0x11,0x10,0x00,0x21,0x22,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0xac,0x78,0x86,0xc3,0xd9,0x02,0x02,0x5c,0xe4,0xb8,0xec,0x01,0x03,0xca,0xd4,0xed,0xfe,0xcc,0xfe,0xee,0x90,0x01,0x06,0x77,0x9f,0x9c,0x85,0x74,0xa1,0xa0,0x18,0x9e,0x44,0x01,0x3a,0x01,0x21,0x01,0x01,0xb9,0xfa,0xc5,0xd2,0x01,0x0d,0xfe,0xb1, +0xfe,0xc0,0xfe,0x73,0xfe,0x52,0x05,0x3f,0xb3,0x8a,0x97,0xad,0x9e,0x72,0xa3,0xce,0x00,0x02,0x00,0x48,0xff,0xec,0x02,0xa5,0x03,0x66,0x00,0x0a,0x00,0x12,0x00,0x20,0x40,0x10,0x08,0xcc,0x11,0x11,0x14,0x0d,0xcc,0x03,0x0b,0xe7,0x06,0x2b,0x0f,0xe7,0x00,0x2d,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30, +0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x20,0x11,0x14,0x06,0x03,0x22,0x11,0x10,0x33,0x32,0x11,0x10,0x01,0x6d,0x8b,0x9a,0xa1,0x99,0x01,0x23,0xa3,0x87,0xa9,0xa6,0xa4,0x14,0xdb,0xd1,0xe5,0xe9,0xfe,0x47,0xdb,0xe6,0x03,0x03,0xfe,0xaf,0xfe,0xc6,0x01,0x40,0x01,0x4b,0x00,0xff,0xff,0x00,0x50,0x00,0x01,0x01,0xc2,0x03,0x69,0x01,0x07, +0x00,0xf0,0x00,0x00,0xfd,0xb9,0x00,0x07,0xb2,0x00,0x00,0x2c,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x68,0x00,0x01,0x02,0x92,0x03,0x67,0x03,0x07,0x00,0xf1,0x00,0x00,0xfd,0xb9,0x00,0x07,0xb2,0x00,0x01,0x2c,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x81,0xff,0xec,0x02,0x8e,0x03,0x67,0x03,0x07,0x00,0xf2,0x00,0x00,0xfd,0xb9,0x00,0x07, +0xb2,0x00,0x1f,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x2f,0x00,0x01,0x02,0xaa,0x03,0x53,0x01,0x07,0x02,0x38,0x00,0x00,0xfd,0xb9,0x00,0x09,0xb3,0x01,0x00,0x03,0x2c,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x7b,0xff,0xec,0x02,0x8a,0x03,0x57,0x03,0x07,0x02,0x39,0x00,0x00,0xfd,0xb9,0x00,0x07,0xb2,0x00,0x23,0x2d,0x00,0x3f, +0x35,0x00,0x00,0x02,0x00,0x49,0xff,0xec,0x02,0xa6,0x03,0x66,0x00,0x26,0x00,0x36,0x00,0x2f,0x40,0x18,0x01,0x15,0xcd,0x34,0x34,0x38,0x2c,0x0c,0xcc,0x1f,0x27,0xe7,0x0c,0x10,0x10,0x31,0x06,0xe6,0x24,0x2b,0x31,0xe6,0x1a,0x2d,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x32,0x31, +0x30,0x01,0x15,0x2e,0x03,0x23,0x22,0x06,0x07,0x06,0x06,0x15,0x33,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x63,0x0e,0x28,0x2b,0x2c,0x12,0x39,0x55,0x21,0x1f,0x2d,0x04,0x1d,0x6e,0x4e, +0x3c,0x5f,0x42,0x23,0x2d,0x4f,0x6b,0x3d,0x3f,0x72,0x56,0x32,0x38,0x65,0x8c,0x54,0x2b,0x52,0xc1,0x22,0x3c,0x2c,0x1a,0x15,0x29,0x3a,0x25,0x4b,0x55,0x4d,0x03,0x43,0x81,0x09,0x10,0x0c,0x07,0x24,0x24,0x22,0x7f,0x61,0x32,0x41,0x27,0x47,0x63,0x3d,0x3d,0x68,0x4d,0x2b,0x31,0x63,0x98,0x68,0x75,0xb5,0x7c,0x40,0x12,0xfe,0x59,0x15, +0x28,0x38,0x24,0x22,0x41,0x32,0x1e,0x5b,0x49,0x4e,0x5a,0x00,0xff,0xff,0x00,0x4d,0x00,0x01,0x02,0xa0,0x03,0x5d,0x03,0x07,0x02,0x3a,0x00,0x00,0xfd,0xb9,0x00,0x07,0xb2,0x00,0x00,0x2c,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x41,0xff,0xed,0x02,0xad,0x03,0x67,0x03,0x07,0x02,0x3b,0x00,0x00,0xfd,0xb9,0x00,0x0b,0xb4,0x02,0x01,0x00, +0x1f,0x2d,0x00,0x3f,0x35,0x35,0x35,0x00,0x00,0x02,0x00,0x49,0xff,0xeb,0x02,0xa6,0x03,0x66,0x00,0x27,0x00,0x39,0x00,0x31,0x40,0x19,0x2d,0xcc,0x23,0x10,0x35,0x1a,0xcd,0x06,0x05,0x05,0x10,0x3b,0x30,0xe7,0x0b,0x0b,0x28,0x00,0xe6,0x1f,0x2d,0x28,0xe6,0x15,0x2b,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x11,0x12,0x01,0x39, +0x2f,0x10,0xed,0x33,0x2f,0x33,0xed,0x31,0x30,0x25,0x32,0x3e,0x02,0x35,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x1e,0x03,0x13,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x01,0x34,0x42,0x5e,0x3c,0x1b,0x04,0x0d,0x2b, +0x37,0x42,0x24,0x3c,0x61,0x46,0x26,0x2a,0x4d,0x6c,0x41,0x40,0x71,0x56,0x32,0x30,0x5d,0x8a,0x5b,0x30,0x61,0x26,0x13,0x2e,0x30,0x30,0x52,0x21,0x39,0x2a,0x18,0x52,0x45,0x20,0x3d,0x2f,0x1d,0x19,0x2c,0x3c,0x62,0x33,0x5c,0x7e,0x4b,0x1c,0x2f,0x21,0x13,0x26,0x47,0x63,0x3c,0x3f,0x6a,0x4c,0x2a,0x33,0x65,0x96,0x64,0x69,0xb4,0x82, +0x4a,0x17,0x16,0x7f,0x0b,0x13,0x0f,0x08,0x02,0x8e,0x17,0x2c,0x3e,0x28,0x4c,0x56,0x16,0x26,0x33,0x1d,0x2a,0x47,0x32,0x1c,0x00,0x02,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x33,0x00,0x07,0x00,0x15,0x00,0x27,0x40,0x12,0x15,0x08,0x15,0x08,0x00,0x05,0x00,0x03,0x39,0x15,0x15,0x05,0x0f,0x06,0x35,0x01,0x05,0x33,0x00,0x3f,0x33,0x3f, +0x33,0x12,0x39,0x2f,0xed,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x33,0x13,0x03,0x2e,0x03,0x27,0x23,0x0e,0x03,0x07,0x03,0x04,0x04,0xb3,0x71,0xfe,0x3d,0x6a,0xb3,0x01,0xae,0xa4,0x5e,0x98,0x02,0x07,0x08,0x07,0x01,0x03,0x02,0x06,0x07,0x07,0x03,0x92,0x01,0x1a,0xfe,0xe6,0x04,0x33, +0xfd,0x73,0x01,0x9a,0x05,0x17,0x1d,0x1c,0x0b,0x0c,0x1d,0x1d,0x18,0x07,0xfe,0x6b,0x00,0x03,0x00,0xb0,0x00,0x00,0x03,0xa1,0x04,0x33,0x00,0x15,0x00,0x1e,0x00,0x27,0x00,0x3c,0x40,0x21,0x10,0x24,0x0d,0x38,0x16,0x16,0x06,0x00,0x38,0x1f,0x1b,0x24,0x37,0x06,0x10,0x23,0x3a,0x2f,0x1b,0x3f,0x1b,0x02,0x1b,0x1b,0x06,0x1a,0x3a,0x07, +0x35,0x24,0x3a,0x06,0x33,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x39,0x01,0x2f,0xed,0x32,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x21,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x03,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x13,0x34,0x26,0x23,0x23,0x11,0x33, +0x32,0x36,0x03,0xa1,0x3b,0x67,0x8e,0x52,0xfe,0x91,0x01,0x67,0x4c,0x7c,0x57,0x2f,0x6c,0x61,0x3d,0x63,0x44,0x25,0xe7,0x71,0x72,0x83,0x71,0x73,0x82,0x3c,0x8f,0x90,0x83,0xa0,0x7b,0x87,0x01,0x35,0x45,0x72,0x51,0x2d,0x04,0x33,0x23,0x41,0x5b,0x37,0x5b,0x86,0x1e,0x03,0x06,0x2a,0x44,0x5b,0x01,0xb9,0x4e,0x3a,0xfe,0xc3,0x5a,0xfe, +0x6c,0x60,0x55,0xfe,0x9b,0x54,0x00,0x01,0x00,0x58,0xff,0xed,0x03,0xbb,0x04,0x45,0x00,0x1d,0x00,0x1b,0x40,0x0d,0x16,0x38,0x07,0x0f,0x00,0x11,0x39,0x0c,0x36,0x1b,0x39,0x02,0x34,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x33,0x2f,0xed,0x31,0x30,0x25,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22, +0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x03,0xbb,0x83,0xc5,0x7d,0xc8,0x8c,0x4a,0x54,0x9b,0xd8,0x84,0xa9,0x6f,0x7a,0x96,0x63,0x9e,0x6d,0x3a,0x36,0x66,0x94,0x5e,0xad,0x7d,0x2c,0x3f,0x4d,0x8c,0xc6,0x79,0x80,0xd4,0x98,0x54,0x2c,0x9e,0x40,0x3d,0x70,0x9e,0x62,0x5d,0x96,0x6a,0x39,0x48,0x00,0x00,0x02,0x00,0xb0,0x00,0x00, +0x04,0x54,0x04,0x33,0x00,0x0a,0x00,0x17,0x00,0x1c,0x40,0x0e,0x00,0x38,0x0b,0x12,0x37,0x06,0x11,0x39,0x07,0x35,0x12,0x39,0x06,0x33,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x21,0x11,0x21,0x20,0x00,0x03,0x34,0x2e,0x02,0x23,0x23,0x11,0x33,0x32,0x3e,0x02,0x04,0x54,0x5d,0xa9,0xef, +0x92,0xfe,0xe3,0x01,0x2b,0x01,0x3c,0x01,0x3d,0xab,0x3c,0x76,0xae,0x72,0x83,0x7a,0x6e,0xb0,0x7b,0x42,0x02,0x27,0x7d,0xcb,0x90,0x4f,0x04,0x33,0xfe,0xfb,0xfe,0xf6,0x67,0x92,0x5c,0x2a,0xfc,0xed,0x30,0x64,0x98,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0x27,0x04,0x33,0x00,0x0b,0x00,0x3c,0x40,0x22,0x06,0x0a,0x37,0x01,0x08,0x04, +0x08,0x04,0x00,0x01,0x00,0x09,0x39,0x0f,0x06,0x01,0x2f,0x06,0x3f,0x06,0xff,0x06,0x03,0x06,0x06,0x01,0x05,0x39,0x02,0x35,0x0a,0x39,0x01,0x33,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0x71,0xed,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21, +0x03,0x27,0xfd,0x89,0x02,0x5b,0xfe,0x49,0x01,0x95,0xfe,0x6b,0x01,0xd3,0x04,0x33,0x8b,0xfe,0xc0,0x8b,0xfe,0xae,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0x0b,0x04,0x33,0x00,0x09,0x00,0x29,0x40,0x14,0x02,0x06,0x37,0x07,0x04,0x04,0x00,0x07,0x00,0x05,0x39,0x02,0x02,0x07,0x01,0x39,0x08,0x35,0x07,0x33,0x00,0x3f,0x3f,0xed,0x12,0x39, +0x2f,0xed,0x01,0x2f,0x2f,0x12,0x39,0x2f,0x10,0xed,0x32,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x03,0x0b,0xfe,0x49,0x01,0x95,0xfe,0x6b,0xa4,0x02,0x5b,0x03,0xa8,0xfe,0xb1,0x8a,0xfe,0x31,0x04,0x33,0x00,0x00,0x01,0x00,0x58,0xff,0xed,0x04,0x20,0x04,0x45,0x00,0x22,0x00,0x2f,0x40,0x18,0x20,0x20,0x07,0x1e, +0x0f,0x00,0x37,0x1e,0x16,0x38,0x07,0x20,0x39,0x21,0x21,0x02,0x11,0x39,0x0c,0x36,0x1b,0x39,0x02,0x34,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0x31,0x30,0x25,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02, +0x33,0x32,0x36,0x37,0x11,0x21,0x35,0x21,0x04,0x20,0xb3,0xdc,0x7f,0xd2,0x96,0x52,0x5c,0xa4,0xe3,0x87,0xc0,0x86,0x8e,0xbd,0x60,0xa3,0x75,0x42,0x39,0x6b,0x98,0x60,0x42,0x6d,0x30,0xfe,0xfe,0x01,0xa4,0x4a,0x5d,0x4f,0x8e,0xc8,0x79,0x7b,0xd1,0x98,0x56,0x39,0xa4,0x53,0x3f,0x71,0x9b,0x5b,0x5e,0x99,0x6c,0x3a,0x16,0x16,0x01,0x0b, +0x8b,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x04,0x39,0x04,0x33,0x00,0x0b,0x00,0x27,0x40,0x13,0x08,0x04,0x37,0x05,0x09,0x00,0x37,0x01,0x03,0x39,0x08,0x08,0x05,0x0a,0x06,0x35,0x01,0x05,0x33,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x33,0x2f,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11, +0x21,0x11,0x33,0x04,0x39,0xa5,0xfd,0xc0,0xa4,0xa4,0x02,0x40,0xa5,0x01,0xf3,0xfe,0x0d,0x04,0x33,0xfe,0x4b,0x01,0xb5,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x01,0x54,0x04,0x33,0x00,0x03,0x00,0x10,0xb6,0x00,0x37,0x01,0x02,0x35,0x01,0x33,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x54,0xa4,0xa4,0x04,0x33, +0x00,0x01,0x00,0x11,0xff,0xed,0x01,0xe5,0x04,0x33,0x00,0x11,0x00,0x16,0x40,0x0a,0x00,0x37,0x0f,0x07,0x10,0x35,0x0a,0x39,0x05,0x34,0x00,0x3f,0xed,0x3f,0x01,0x2f,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x01,0xe5,0x33,0x5d,0x83,0x4f,0x46,0x2c,0x2c,0x48,0x2f,0x46, +0x2f,0x18,0xa4,0x01,0x81,0x65,0x98,0x65,0x32,0x13,0x9a,0x1d,0x1b,0x3d,0x63,0x48,0x02,0xb3,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0xec,0x04,0x33,0x00,0x12,0x00,0x33,0x40,0x18,0x10,0x11,0x11,0x00,0x12,0x0b,0x07,0x37,0x08,0x01,0x00,0x00,0x14,0x12,0x06,0x0b,0x0b,0x08,0x10,0x09,0x35,0x01,0x08,0x33,0x00,0x3f,0x33,0x3f,0x33,0x12, +0x39,0x11,0x33,0x33,0x11,0x01,0x33,0x2f,0x33,0x2f,0xed,0x32,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x21,0x23,0x01,0x26,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x03,0xec,0xcc,0xfe,0x60,0x09,0x19,0x06,0x04,0xa4,0xa4,0x04,0x05,0x19,0x0a,0x01,0x91,0xb8,0xfe,0x33,0x01,0xdd,0x0b,0x20,0x0a,0xfd, +0xee,0x04,0x33,0xfe,0x07,0x08,0x1e,0x0b,0x01,0xc8,0xfd,0xfc,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0x2e,0x04,0x33,0x00,0x05,0x00,0x16,0x40,0x0a,0x04,0x37,0x01,0x00,0x02,0x35,0x04,0x39,0x01,0x33,0x00,0x3f,0xed,0x3f,0x01,0x2f,0x2f,0xed,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x03,0x2e,0xfd,0x82,0xa4,0x01,0xda,0x04,0x33,0xfc, +0x58,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x05,0x62,0x04,0x33,0x00,0x21,0x00,0x20,0x40,0x0f,0x17,0x10,0x14,0x37,0x15,0x20,0x06,0x05,0x00,0x37,0x01,0x16,0x35,0x15,0x33,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x33,0x33,0x33,0x2f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x34,0x36,0x37,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x26,0x26,0x27, +0x23,0x16,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x05,0x62,0x9e,0x02,0x06,0x04,0x0a,0x14,0x11,0xfe,0x9d,0x58,0xfe,0x98,0x12,0x15,0x09,0x03,0x03,0x03,0x99,0xda,0x01,0x45,0x15,0x1b,0x06,0x06,0x0b,0x1e,0x11,0x01,0x46,0xd7,0x02,0xbe,0x2b,0x61,0x3e,0x24,0x3a,0x26,0xfc,0xfc,0x03,0x04, +0x26,0x38,0x26,0x20,0x62,0x49,0xfd,0x43,0x04,0x33,0xfd,0x3e,0x2a,0x4a,0x17,0x1d,0x4d,0x24,0x02,0xbf,0x00,0x01,0x00,0xb0,0x00,0x00,0x04,0x7a,0x04,0x33,0x00,0x18,0x00,0x1a,0x40,0x0c,0x01,0x00,0x37,0x16,0x0c,0x09,0x37,0x0a,0x0b,0x35,0x01,0x33,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x32,0x2f,0xed,0x33,0x31,0x30,0x21,0x23,0x01,0x26, +0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x1e,0x03,0x17,0x33,0x26,0x26,0x35,0x11,0x33,0x04,0x7a,0xae,0xfd,0xcc,0x1f,0x29,0x08,0x05,0x06,0x99,0xb9,0x02,0x35,0x12,0x19,0x11,0x09,0x03,0x03,0x04,0x04,0x99,0x02,0xf7,0x2a,0x41,0x13,0x23,0x71,0xfd,0x1f,0x04,0x33,0xfd,0x04,0x19,0x23,0x18,0x10,0x05,0x17,0x4e,0x39,0x02, +0xc7,0x00,0x00,0x02,0x00,0x58,0xff,0xed,0x04,0x95,0x04,0x45,0x00,0x13,0x00,0x23,0x00,0x1c,0x40,0x0e,0x00,0x38,0x14,0x1c,0x38,0x0a,0x17,0x39,0x0f,0x36,0x21,0x39,0x05,0x34,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34, +0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x04,0x95,0x52,0x91,0xc9,0x77,0x78,0xc6,0x8e,0x4e,0x4b,0x8f,0xd0,0x85,0x7a,0xc3,0x88,0x49,0xab,0xb7,0xb7,0x57,0x8c,0x62,0x34,0x31,0x5f,0x88,0x57,0xb8,0xc0,0x02,0x27,0x86,0xd4,0x93,0x4d,0x4f,0x90,0xc8,0x79,0x7c,0xd0,0x97,0x55,0x55,0x93,0xc6,0x80,0xc8,0xdc,0x3c, +0x6e,0x9b,0x5e,0x5e,0x9a,0x6d,0x3c,0xda,0x00,0x02,0x00,0xb0,0x00,0x00,0x03,0x92,0x04,0x33,0x00,0x0e,0x00,0x17,0x00,0x24,0x40,0x12,0x00,0x38,0x0f,0x14,0x07,0x37,0x08,0x06,0x3a,0x14,0x14,0x08,0x13,0x3a,0x09,0x35,0x08,0x33,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02, +0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x03,0x92,0x3f,0x73,0xa3,0x63,0x86,0xa4,0x01,0x4b,0x61,0x98,0x68,0x36,0xab,0x86,0x87,0x86,0x76,0x89,0x94,0x02,0xee,0x4d,0x82,0x5e,0x34,0xfe,0x73,0x04,0x33,0x2c,0x54,0x79,0x52,0x6b,0x5a,0xfe,0x65,0x69,0x00,0x02,0x00,0x58,0xff,0x65, +0x04,0xc5,0x04,0x45,0x00,0x18,0x00,0x28,0x00,0x24,0x40,0x12,0x00,0x38,0x19,0x21,0x38,0x0f,0x08,0x05,0x0a,0x1c,0x39,0x14,0x36,0x26,0x39,0x0a,0x34,0x07,0x00,0x2f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x06,0x07,0x05,0x23,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02, +0x33,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x04,0x95,0x52,0x49,0x22,0x28,0x01,0x15,0xf8,0xb2,0x4f,0x5a,0x78,0xc6,0x8e,0x4e,0x4b,0x8f,0xd0,0x85,0x7a,0xc3,0x88,0x49,0xab,0xb7,0xb7,0x57,0x8c,0x62,0x34,0x31,0x5f,0x88,0x57,0xb8,0xc0,0x02,0x27,0x86,0xd4,0x4a,0x22,0x1b,0xe1,0x9e, +0x16,0x4f,0x90,0xc8,0x79,0x7c,0xd0,0x97,0x55,0x55,0x93,0xc6,0x80,0xc8,0xdc,0x3c,0x6e,0x9b,0x5e,0x5e,0x9a,0x6d,0x3c,0xda,0x00,0x02,0x00,0xb0,0x00,0x00,0x03,0xdf,0x04,0x33,0x00,0x19,0x00,0x24,0x00,0x2e,0x40,0x17,0x16,0x09,0x00,0x11,0x38,0x1a,0x1f,0x09,0x37,0x0a,0x16,0x08,0x3a,0x1f,0x1f,0x0a,0x1e,0x3a,0x0b,0x35,0x01,0x0a, +0x33,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0xed,0x32,0x2f,0xfd,0xc6,0x12,0x39,0x31,0x30,0x21,0x23,0x03,0x2e,0x03,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x16,0x17,0x03,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x3e,0x02,0x03,0xdf,0xc0,0xbe,0x13,0x24,0x29,0x2f,0x1d,0x61, +0xa4,0x01,0x6d,0x56,0x8a,0x61,0x34,0x26,0x46,0x62,0x3c,0x3c,0x3f,0x1c,0x77,0x76,0xa6,0xa0,0x37,0x59,0x40,0x23,0x01,0x47,0x20,0x2b,0x19,0x0a,0xfe,0x4b,0x04,0x33,0x27,0x4a,0x69,0x43,0x3a,0x63,0x4c,0x35,0x0d,0x03,0x1a,0x65,0x01,0xa1,0x57,0x4c,0xfe,0x8e,0x1e,0x37,0x4c,0x00,0x00,0x01,0x00,0x68,0xff,0xed,0x03,0x08,0x04,0x45, +0x00,0x37,0x00,0x26,0x40,0x13,0x2e,0x37,0x0a,0x1f,0x27,0x00,0x37,0x15,0x15,0x2d,0x05,0x29,0x39,0x24,0x36,0x10,0x39,0x05,0x34,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0xc4,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x35,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x2e, +0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x03,0x08,0x38,0x67,0x94,0x5d,0x20,0x4e,0x4c,0x41,0x12,0x1a,0x46,0x4d,0x4f,0x24,0x39,0x53,0x36,0x19,0x14,0x35,0x5d,0x4a,0x47,0x66,0x42,0x1f,0x39,0x66,0x8d,0x53,0xa0,0x4a,0x5f,0x93,0x32,0x4f,0x38,0x1d,0x0e,0x2f,0x56, +0x48,0x4f,0x6f,0x46,0x20,0x01,0x1b,0x44,0x70,0x4f,0x2b,0x0b,0x11,0x16,0x0c,0xac,0x15,0x24,0x1a,0x0e,0x16,0x28,0x38,0x22,0x1f,0x32,0x30,0x36,0x25,0x23,0x46,0x4c,0x58,0x35,0x40,0x68,0x49,0x28,0x26,0xa5,0x42,0x15,0x26,0x33,0x1e,0x1d,0x2f,0x31,0x36,0x22,0x26,0x47,0x4c,0x54,0x00,0x01,0x00,0x19,0x00,0x00,0x03,0x6c,0x04,0x33, +0x00,0x07,0x00,0x1e,0x40,0x0e,0x02,0x37,0x03,0x03,0x00,0x05,0x00,0x01,0x05,0x39,0x06,0x35,0x03,0x33,0x00,0x3f,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x03,0x6c,0xfe,0xa9,0xa4,0xfe,0xa8,0x03,0x53,0x03,0xa8,0xfc,0x58,0x03,0xa8,0x8b,0x00,0x01,0x00,0x9c,0xff,0xed, +0x04,0x26,0x04,0x33,0x00,0x15,0x00,0x1b,0x40,0x0d,0x00,0x37,0x13,0x09,0x37,0x06,0x14,0x07,0x35,0x0e,0x39,0x03,0x34,0x00,0x3f,0xed,0x3f,0x33,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x04,0x26,0xed,0xe2,0xd9,0xe2,0xa5,0x22,0x48, +0x6f,0x4d,0x4a,0x6b,0x45,0x20,0xa5,0x01,0xb3,0xe3,0xe3,0xdb,0xda,0x02,0x91,0xfd,0x80,0x51,0x77,0x4e,0x25,0x24,0x4d,0x76,0x51,0x02,0x83,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x04,0x15,0x04,0x33,0x00,0x0f,0x00,0x0f,0xb5,0x03,0x00,0x03,0x35,0x02,0x33,0x00,0x3f,0x3f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x01,0x23,0x01,0x33,0x01,0x1e, +0x03,0x17,0x33,0x36,0x36,0x37,0x01,0x04,0x15,0xfe,0x43,0xa3,0xfe,0x4b,0xb9,0x01,0x0c,0x10,0x17,0x0f,0x0a,0x02,0x03,0x04,0x20,0x22,0x01,0x12,0x04,0x33,0xfb,0xcd,0x04,0x33,0xfd,0x40,0x2a,0x40,0x32,0x24,0x0e,0x17,0x61,0x57,0x02,0xbf,0x00,0x01,0x00,0x05,0x00,0x00,0x06,0x64,0x04,0x33,0x00,0x26,0x00,0x0f,0xb5,0x1a,0x0a,0x1a, +0x35,0x19,0x33,0x00,0x3f,0x3f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x13,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x13,0x33,0x01,0x23,0x03,0x2e,0x03,0x27,0x0e,0x03,0x07,0x03,0x23,0x01,0x33,0x13,0x1e,0x03,0x17,0x33,0x36,0x36,0x37,0x13,0x03,0x81,0xdf,0x1d,0x1a,0x04,0x03,0x05,0x1c,0x20,0xd4,0xb1,0xfe,0x8c,0xa3,0xdf,0x07,0x10,0x10,0x0f, +0x04,0x06,0x10,0x11,0x10,0x07,0xda,0xa3,0xfe,0x8c,0xb0,0xd7,0x10,0x16,0x0e,0x09,0x02,0x03,0x04,0x1a,0x1d,0xde,0x04,0x33,0xfd,0x5e,0x5a,0x71,0x17,0x1c,0x71,0x62,0x02,0x95,0xfb,0xcd,0x02,0xa4,0x15,0x37,0x3e,0x3e,0x1c,0x1f,0x43,0x40,0x39,0x14,0xfd,0x67,0x04,0x33,0xfd,0x6b,0x31,0x4d,0x3a,0x29,0x0e,0x17,0x71,0x5a,0x02,0xa2, +0x00,0x01,0x00,0x1e,0x00,0x00,0x03,0xe4,0x04,0x33,0x00,0x19,0x00,0x0f,0xb5,0x0b,0x00,0x0d,0x35,0x0b,0x33,0x00,0x3f,0x3f,0x01,0x2f,0x2f,0x31,0x30,0x21,0x23,0x01,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x23,0x01,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x13,0x33,0x01,0x03,0xe4,0xc3,0xfe,0xfa,0x06,0x0e,0x08,0x03, +0x04,0x0e,0x0b,0xfe,0xc3,0x01,0x7c,0xfe,0xa2,0xc5,0xe6,0x0d,0x15,0x09,0x03,0x0d,0x17,0x0a,0xe3,0xb8,0xfe,0x9a,0x01,0x8e,0x0a,0x1a,0x12,0x09,0x1b,0x12,0xfe,0x72,0x02,0x28,0x02,0x0b,0xfe,0x91,0x14,0x25,0x12,0x19,0x27,0x0e,0x01,0x6c,0xfd,0xdf,0x00,0x01,0x00,0x14,0x00,0x00,0x03,0xa7,0x04,0x33,0x00,0x0f,0x00,0x1d,0x40,0x0d, +0x0a,0x02,0x37,0x03,0x03,0x06,0x05,0x0f,0x00,0x05,0x35,0x03,0x33,0x00,0x3f,0x3f,0x01,0x2f,0x32,0x2f,0x33,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x01,0x11,0x23,0x11,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x13,0x03,0xa7,0xfe,0x83,0xa3,0xfe,0x8d,0xb4,0xf3,0x06,0x0f,0x08,0x02,0x05,0x10,0x0b,0xff,0x04,0x33,0xfd,0x5a, +0xfe,0x73,0x01,0x8a,0x02,0xa9,0xfe,0x25,0x0c,0x21,0x15,0x0d,0x21,0x14,0x01,0xdb,0x00,0x01,0x00,0x29,0x00,0x00,0x03,0xb3,0x04,0x33,0x00,0x09,0x00,0x26,0x40,0x12,0x07,0x07,0x00,0x01,0x04,0x06,0x03,0x00,0x00,0x07,0x39,0x08,0x35,0x05,0x01,0x39,0x04,0x33,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x01,0x2f,0x33,0x33,0x2f,0x33,0x12, +0x39,0x2f,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x35,0x01,0x21,0x35,0x21,0x03,0xb3,0xfd,0x73,0x02,0x7c,0xfc,0x87,0x02,0x8b,0xfd,0xad,0x03,0x52,0x04,0x02,0xfc,0x89,0x8b,0x37,0x03,0x71,0x8b,0x00,0x00,0x02,0xff,0xf8,0x00,0x00,0x05,0x56,0x04,0x33,0x00,0x0f,0x00,0x13,0x00,0x59,0x40,0x33,0x0a,0x0e,0x37,0x01,0x11,0x01,0x10,0x01, +0x0c,0x08,0x08,0x0c,0x01,0x10,0x04,0x00,0x05,0x00,0x09,0x13,0x39,0x06,0x03,0x39,0x10,0x0d,0x39,0x0a,0x0f,0x0a,0x01,0x2f,0x0a,0x3f,0x0a,0xff,0x0a,0x03,0x10,0x0a,0x10,0x0a,0x01,0x06,0x35,0x05,0x33,0x0e,0x39,0x01,0x33,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x71,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x01,0x2f, +0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x11,0x21,0x03,0x23,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x01,0x21,0x11,0x23,0x05,0x56,0xfd,0x89,0xfe,0x6f,0x9b,0xbb,0x02,0x46,0x02,0xfc,0xfe,0x49,0x01,0x95,0xfe,0x6b,0x01,0xd3,0xfc,0x3c,0x01,0x4d,0x49,0x01,0x28,0xfe,0xd8, +0x04,0x33,0x8b,0xfe,0xc0,0x8b,0xfe,0xae,0x01,0x28,0x01,0xf6,0x00,0x02,0x00,0x58,0xff,0xed,0x05,0xe8,0x04,0x45,0x00,0x1e,0x00,0x2e,0x00,0x51,0x40,0x2f,0x19,0x1d,0x37,0x1f,0x1b,0x1f,0x1b,0x00,0x28,0x38,0x0b,0x17,0x00,0x18,0x20,0x39,0x15,0x1c,0x39,0x0f,0x19,0x01,0x2f,0x19,0x3f,0x19,0xff,0x19,0x03,0x19,0x19,0x01,0x15,0x35, +0x23,0x39,0x10,0x36,0x2d,0x39,0x06,0x34,0x1d,0x1f,0x39,0x01,0x33,0x00,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x5d,0x71,0xed,0x10,0xed,0x32,0x01,0x2f,0x33,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x32,0x31,0x30,0x21,0x21,0x22,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x23,0x21, +0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x25,0x11,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x05,0xe8,0xfd,0xab,0x06,0x3a,0x50,0x57,0x23,0x80,0xcf,0x93,0x4f,0x52,0x99,0xd8,0x86,0x25,0x58,0x49,0x2f,0x03,0x02,0x3b,0xfe,0x47,0x01,0x97,0xfe,0x69,0x01,0xd3,0xfd,0x89,0x40,0x6a,0x2b,0x5b,0x96,0x6c,0x3c,0x3b, +0x6b,0x95,0x59,0x5a,0x06,0x07,0x06,0x4f,0x8f,0xc8,0x7a,0x82,0xd2,0x94,0x50,0x06,0x06,0x06,0x8b,0xfe,0xc0,0x8b,0xfe,0xae,0x06,0x03,0x14,0x0b,0x0b,0x3f,0x70,0x9a,0x5a,0x5b,0x98,0x6e,0x3e,0x00,0x00,0x01,0x00,0x38,0x00,0x00,0x03,0x2e,0x04,0x33,0x00,0x0d,0x00,0x34,0x40,0x19,0x08,0x0c,0x37,0x01,0x0a,0x0a,0x00,0x05,0x03,0x01, +0x00,0x02,0x08,0x09,0x03,0x09,0x03,0x09,0x01,0x06,0x35,0x0c,0x39,0x01,0x33,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x01,0x2f,0x2f,0xc6,0x33,0x12,0x39,0x2f,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x11,0x07,0x35,0x37,0x11,0x33,0x11,0x25,0x15,0x05,0x11,0x21,0x03,0x2e,0xfd,0x82,0x78,0x78,0xa4,0x01,0x01,0xfe, +0xff,0x01,0xda,0x01,0x95,0x44,0x8a,0x43,0x02,0x15,0xfe,0x48,0x8f,0x8b,0x8d,0xfe,0x99,0x00,0x00,0x03,0x00,0x41,0xff,0xda,0x04,0xa9,0x04,0x65,0x00,0x1b,0x00,0x26,0x00,0x32,0x00,0x28,0x40,0x14,0x1f,0x30,0x2c,0x00,0x38,0x1c,0x2c,0x38,0x0e,0x2f,0x1e,0x22,0x27,0x39,0x13,0x36,0x22,0x39,0x05,0x34,0x00,0x3f,0xed,0x3f,0xed,0x11, +0x39,0x39,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x07,0x27,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x37,0x17,0x07,0x16,0x16,0x07,0x34,0x27,0x01,0x16,0x16,0x33,0x32,0x3e,0x02,0x01,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x01,0x26,0x26,0x04,0xa9,0x4d,0x90,0xce, +0x82,0x6f,0xb6,0x45,0x83,0x4e,0x86,0x36,0x39,0x4d,0x92,0xd4,0x86,0x61,0xa4,0x42,0x7b,0x4f,0x7a,0x3f,0x42,0xab,0x44,0xfd,0xc4,0x30,0x80,0x4e,0x5c,0x8f,0x63,0x34,0xfe,0x88,0x57,0x8f,0x66,0x37,0x1d,0x1b,0x02,0x34,0x2d,0x74,0x02,0x27,0x82,0xd2,0x95,0x51,0x3c,0x39,0x88,0x49,0x8c,0x45,0xb0,0x69,0x81,0xd1,0x95,0x51,0x32,0x2f, +0x81,0x4b,0x7f,0x47,0xbd,0x80,0xa8,0x68,0xfd,0xac,0x2d,0x2f,0x38,0x6a,0x9b,0x02,0x07,0x3c,0x6e,0x9b,0x5e,0x46,0x78,0x31,0x02,0x4e,0x21,0x23,0x00,0x02,0x00,0xb0,0x00,0x00,0x03,0x92,0x04,0x33,0x00,0x10,0x00,0x19,0x00,0x2e,0x40,0x17,0x00,0x38,0x11,0x16,0x0b,0x07,0x37,0x08,0x06,0x3a,0x16,0x15,0x3a,0x0b,0x16,0x0b,0x16,0x0b, +0x08,0x09,0x35,0x08,0x33,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x32,0x32,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x23,0x15,0x23,0x11,0x33,0x15,0x33,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x03,0x92,0x3f,0x73,0xa3,0x63,0x86,0xa4,0xa4,0xa7,0x61,0x98,0x68,0x36, +0xab,0x86,0x87,0x86,0x76,0x89,0x94,0x02,0x2c,0x4d,0x82,0x5e,0x34,0xcb,0x04,0x33,0xc2,0x2c,0x54,0x79,0x52,0x6b,0x5a,0xfe,0x65,0x69,0x00,0x02,0x00,0x2d,0x00,0x00,0x04,0x54,0x04,0x33,0x00,0x0e,0x00,0x1f,0x00,0x35,0x40,0x1b,0x18,0x18,0x06,0x00,0x38,0x0f,0x16,0x1a,0x37,0x0a,0x08,0x06,0x19,0x08,0x39,0x16,0x09,0x09,0x06,0x15, +0x39,0x0b,0x35,0x1a,0x39,0x06,0x33,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xc6,0x33,0xed,0x32,0x2f,0xed,0x12,0x39,0x2f,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x21,0x11,0x23,0x35,0x33,0x11,0x21,0x20,0x00,0x03,0x34,0x2e,0x02,0x23,0x23,0x11,0x33,0x15,0x23,0x11,0x33,0x32,0x3e,0x02,0x04,0x54,0x5d,0xa9, +0xef,0x92,0xfe,0xe3,0x83,0x83,0x01,0x2b,0x01,0x3c,0x01,0x3d,0xab,0x3c,0x76,0xae,0x72,0x83,0xfb,0xfb,0x7a,0x6e,0xb0,0x7b,0x42,0x02,0x27,0x7d,0xcb,0x90,0x4f,0x01,0xe1,0x89,0x01,0xc9,0xfe,0xfb,0xfe,0xf6,0x67,0x92,0x5c,0x2a,0xfe,0xc7,0x89,0xfe,0xaf,0x30,0x64,0x98,0x00,0x01,0x00,0xa6,0xff,0xee,0x03,0xe8,0x04,0x45,0x00,0x39, +0x00,0x3f,0x40,0x21,0x27,0x38,0x14,0x30,0x38,0x09,0x01,0x0f,0x1c,0x14,0x09,0x14,0x09,0x3b,0x1b,0x37,0x1c,0x2a,0x0e,0x3b,0x0f,0x0f,0x22,0x04,0x39,0x35,0x34,0x17,0x39,0x22,0x36,0x1c,0x33,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31, +0x30,0x25,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x35,0x3e,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x01,0x9a,0x26,0x73,0x43,0x28,0x48,0x36,0x1f,0x2a,0x57,0x84,0x5a,0x39,0x5c, +0x41,0x23,0x5a,0x58,0x65,0x74,0xa4,0x42,0x6c,0x8c,0x4a,0x4e,0x7f,0x5a,0x31,0x68,0x77,0x56,0x7b,0x4f,0x25,0x31,0x5e,0x88,0x56,0x2c,0x43,0x35,0x2a,0x0a,0x97,0x12,0x1a,0x13,0x2a,0x42,0x30,0x2f,0x4f,0x3b,0x25,0x05,0x71,0x06,0x1c,0x2f,0x41,0x2a,0x45,0x43,0x71,0x7d,0xfd,0x32,0x02,0xe3,0x68,0x88,0x51,0x21,0x24,0x43,0x61,0x3c, +0x5a,0x80,0x1e,0x04,0x0d,0x31,0x48,0x62,0x3f,0x45,0x70,0x4f,0x2c,0x05,0x07,0x0a,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x06,0x28,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0x96,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x06,0x28,0x02,0x26, +0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x0e,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x06,0x2c,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0x8c,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00, +0x00,0x00,0x04,0x04,0x05,0xd0,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0x9f,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x05,0xa5,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x06,0x00,0x8f,0x62,0x1e,0x00,0x0c,0xb5,0x03,0x02,0x0f,0x17,0x01,0x17,0x00, +0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x05,0x67,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0xdc,0x00,0xdf,0xff,0x4b,0x00,0x09,0xb3,0x03,0x02,0x27,0x35,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x58,0xfe,0x56,0x03,0xbb,0x04,0x45,0x02,0x26,0x0c,0xed,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x97,0x00,0x06, +0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x06,0x28,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x06,0x00,0x43,0x79,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x06,0x28,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xec,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d, +0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x06,0x2c,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x06,0x00,0xd7,0x6c,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x05,0xa5,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x06,0x00,0x8f,0x53,0x1e,0x00,0x0c, +0xb5,0x02,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xfc,0x00,0x00,0x01,0x81,0x06,0x28,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0x43,0xaa,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x87,0x00,0x00,0x02,0x0c,0x06,0x28,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06, +0x00,0x8e,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xe9,0x00,0x00,0x02,0x1d,0x06,0x2c,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0xd7,0x8d,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xe0,0x00,0x00,0x02,0x27,0x05,0xa5,0x02,0x26,0x0c,0xf3, +0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x63,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x7a,0x05,0xd0,0x02,0x26,0x0c,0xf8,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x32,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x23,0x01,0x23,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58, +0xff,0xed,0x04,0x95,0x06,0x28,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x14,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x06,0x28,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x68,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24, +0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x06,0x2c,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x00,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x05,0xd0,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x13,0x00,0x1e, +0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x05,0xa5,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xd6,0x00,0x1e,0x00,0x0c,0xb5,0x03,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x06,0x28,0x02,0x26,0x0c,0xff, +0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x07,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x06,0x28,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x62,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9c,0xff,0xed, +0x04,0x26,0x06,0x2c,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xeb,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x05,0xa5,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xc1,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x16,0x01,0x16,0x00, +0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x06,0x28,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xf1,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x10,0x01,0x10,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x05,0x4d,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xc6,0x00,0x1e, +0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x05,0xdc,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xc9,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfe,0x70,0x04,0x04,0x04,0x33,0x02,0x26,0x0c,0xeb,0x00,0x00, +0x00,0x07,0x00,0xdf,0x02,0xab,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xed,0x03,0xbb,0x06,0x28,0x02,0x26,0x0c,0xed,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x71,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1e,0x01,0x1e,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x03,0xbb,0x06,0x2a,0x02,0x26,0x0c,0xed,0x00,0x00,0x01,0x07,0x00,0xe0, +0x00,0xf1,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1e,0x01,0x1e,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x20,0x05,0xa3,0x02,0x26,0x0c,0xf1,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0xba,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x23,0x01,0x23,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x54,0x06,0x2a,0x02,0x26, +0x0c,0xee,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xc9,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x18,0x01,0x18,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x2d,0x00,0x00,0x04,0x54,0x04,0x33,0x02,0x06,0x0d,0x0a,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x05,0x4d,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0x9c,0x00,0x1e, +0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x05,0xdc,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xac,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x05,0xa3,0x02,0x26,0x0c,0xef,0x00,0x00, +0x01,0x07,0x00,0xdb,0x01,0x15,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0xfe,0x70,0x03,0x27,0x04,0x33,0x02,0x26,0x0c,0xef,0x00,0x00,0x00,0x07,0x00,0xdf,0x01,0xbe,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x06,0x2a,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x06,0x00,0xe0, +0x66,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x20,0x05,0xdc,0x02,0x26,0x0c,0xf1,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x52,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x23,0x01,0x23,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xfe,0x85,0x04,0x20,0x04,0x45,0x02,0x26,0x0c,0xf1, +0x00,0x00,0x00,0x07,0x01,0x9c,0x00,0xf8,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xed,0x03,0xbb,0x05,0xa3,0x02,0x26,0x0c,0xed,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0xb0,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1e,0x01,0x1e,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x39,0x06,0x2c,0x02,0x26,0x0c,0xf2,0x00,0x00,0x01,0x07, +0x00,0xd7,0x00,0xfe,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0c,0x01,0x0c,0x00,0x11,0x5d,0x35,0x00,0x02,0x00,0x2d,0x00,0x00,0x04,0xbc,0x04,0x33,0x00,0x13,0x00,0x17,0x00,0x4a,0x40,0x0e,0x17,0x0c,0x04,0x37,0x05,0x14,0x0d,0x00,0x37,0x01,0x03,0x39,0x17,0x17,0xb8,0xff,0xc0,0x40,0x16,0x09,0x0c,0x48,0x16,0x13,0x06,0x39,0x09,0x10, +0x0c,0x09,0x17,0x09,0x17,0x09,0x05,0x0e,0x0a,0x35,0x01,0x05,0x33,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x2b,0x10,0xed,0x01,0x2f,0xed,0x33,0x33,0x2f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23, +0x07,0x35,0x21,0x15,0x04,0x39,0xa5,0xfd,0xc0,0xa4,0x83,0x83,0xa4,0x02,0x40,0xa5,0x83,0x83,0xa5,0xfd,0xc0,0x01,0xf3,0xfe,0x0d,0x03,0x2b,0x89,0x7f,0x7f,0x7f,0x7f,0x89,0xad,0xad,0xad,0xff,0xff,0xff,0xc3,0x00,0x00,0x02,0x44,0x05,0xd0,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0xd8,0xa0,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05, +0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x04,0x00,0x00,0x02,0x00,0x05,0x4d,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0xd9,0xc6,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xf1,0x00,0x00,0x02,0x16,0x05,0xdc,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0xda,0xcc,0x1e,0x00,0x0a, +0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x3f,0xfe,0x70,0x01,0x54,0x04,0x33,0x02,0x26,0x0c,0xf3,0x00,0x00,0x00,0x06,0x00,0xdf,0x01,0x00,0xff,0xff,0x00,0xa0,0x00,0x00,0x01,0x65,0x05,0xa3,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0xdb,0x34,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11, +0x5d,0x35,0xff,0xff,0x00,0xb0,0xff,0xed,0x03,0xe9,0x04,0x33,0x00,0x26,0x0c,0xf3,0x00,0x00,0x00,0x07,0x0c,0xf4,0x02,0x04,0x00,0x00,0xff,0xff,0x00,0x11,0xff,0xed,0x02,0xac,0x06,0x2c,0x02,0x26,0x0c,0xf4,0x00,0x00,0x01,0x06,0x00,0xd7,0x1c,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x13,0x01,0x13,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0, +0xfe,0x85,0x03,0xec,0x04,0x33,0x02,0x26,0x0c,0xf5,0x00,0x00,0x00,0x07,0x01,0x9c,0x00,0xa8,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x2e,0x06,0x28,0x02,0x26,0x0c,0xf6,0x00,0x00,0x01,0x06,0x00,0x8e,0x52,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x06,0x01,0x06,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0xfe,0x85,0x03,0x2e,0x04,0x33, +0x02,0x26,0x0c,0xf6,0x00,0x00,0x00,0x06,0x01,0x9c,0x6b,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x2e,0x04,0x33,0x02,0x26,0x0c,0xf6,0x00,0x00,0x00,0x07,0x01,0x9c,0x01,0x13,0x04,0xaa,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x2e,0x04,0x33,0x02,0x26,0x0c,0xf6,0x00,0x00,0x00,0x07,0x00,0xdb,0x01,0x8a,0xfd,0x56,0xff,0xff,0x00,0xb0, +0x00,0x00,0x04,0x7a,0x06,0x28,0x02,0x26,0x0c,0xf8,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x9e,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1a,0x01,0x1a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0xfe,0x85,0x04,0x7a,0x04,0x33,0x02,0x26,0x0c,0xf8,0x00,0x00,0x00,0x07,0x01,0x9c,0x01,0x0c,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x7a, +0x06,0x2a,0x02,0x26,0x0c,0xf8,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x16,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1a,0x01,0x1a,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0xb0,0xfe,0x59,0x04,0x88,0x04,0x33,0x00,0x26,0x00,0x32,0x40,0x18,0x26,0x37,0x25,0x0f,0x25,0x08,0x08,0x25,0x1a,0x17,0x37,0x18,0x20,0x13,0x17,0x25,0x19,0x35,0x0f,0x00, +0x17,0x0a,0x39,0x05,0x00,0x2f,0xed,0x2f,0x33,0x33,0x3f,0x33,0x12,0x39,0x39,0x01,0x2f,0xed,0x32,0x2f,0x33,0x2f,0x11,0x33,0x10,0xed,0x31,0x30,0x05,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x01,0x26,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x1e,0x03,0x17,0x33,0x26,0x26,0x35,0x11,0x33,0x04, +0x88,0x33,0x5e,0x83,0x4f,0x46,0x2c,0x2c,0x48,0x2f,0x46,0x2f,0x18,0xfd,0xbc,0x20,0x28,0x08,0x05,0x06,0xa0,0xc0,0x02,0x35,0x12,0x19,0x11,0x09,0x03,0x03,0x04,0x04,0xa0,0x13,0x65,0x98,0x65,0x32,0x13,0x9a,0x1d,0x1b,0x42,0x6e,0x52,0x02,0xf1,0x29,0x42,0x13,0x23,0x71,0xfd,0x1f,0x04,0x33,0xfd,0x21,0x19,0x23,0x18,0x10,0x05,0x17, +0x4e,0x39,0x02,0xaa,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x05,0x4d,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x3a,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x05,0xdc,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x3f,0x00,0x1e, +0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x06,0x1e,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0xde,0x01,0x7d,0x00,0x1e,0x00,0x0c,0xb5,0x03,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0xdf,0x06,0x28,0x02,0x26,0x0c,0xfc, +0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x03,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x25,0x01,0x25,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0xfe,0x85,0x03,0xdf,0x04,0x33,0x02,0x26,0x0c,0xfc,0x00,0x00,0x00,0x07,0x01,0x9c,0x00,0xa0,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0xdf,0x06,0x2a,0x02,0x26,0x0c,0xfc,0x00,0x00,0x01,0x07, +0x00,0xe0,0x00,0x83,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x25,0x01,0x25,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x68,0xff,0xed,0x03,0x08,0x06,0x28,0x02,0x26,0x0c,0xfd,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xc9,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x3a,0x01,0x3a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x68,0xff,0xed,0x03,0x08,0x06,0x2c, +0x02,0x26,0x0c,0xfd,0x00,0x00,0x01,0x06,0x00,0xd7,0x4e,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x3a,0x01,0x3a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x68,0xfe,0x50,0x03,0x08,0x04,0x45,0x02,0x26,0x0c,0xfd,0x00,0x00,0x00,0x07,0x00,0xdd,0x00,0xdc,0x00,0x00,0xff,0xff,0x00,0x68,0xff,0xed,0x03,0x08,0x06,0x2a,0x02,0x26,0x0c,0xfd,0x00,0x00, +0x01,0x06,0x00,0xe0,0x4f,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x3a,0x01,0x3a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x19,0xfe,0x50,0x03,0x6c,0x04,0x33,0x02,0x26,0x0c,0xfe,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x15,0x00,0x00,0xff,0xff,0x00,0x19,0xfe,0x85,0x03,0x6c,0x04,0x33,0x02,0x26,0x0c,0xfe,0x00,0x00,0x00,0x06,0x01,0x9c,0x2d,0x00, +0xff,0xff,0x00,0x19,0x00,0x00,0x03,0x6c,0x06,0x2a,0x02,0x26,0x0c,0xfe,0x00,0x00,0x01,0x06,0x00,0xe0,0x43,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x08,0x01,0x08,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0x19,0x00,0x00,0x03,0x6c,0x04,0x33,0x00,0x0f,0x00,0x3d,0x40,0x1f,0x02,0x06,0x37,0x07,0x0b,0x07,0x0a,0x07,0x03,0x03,0x07,0x0a,0x03,0x00, +0x0d,0x00,0x01,0x0d,0x39,0x0e,0x05,0x09,0x39,0x02,0x0a,0x0a,0x07,0x0e,0x35,0x07,0x33,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x03,0x6c,0xfe, +0xa9,0x01,0x0e,0xfe,0xf2,0xa4,0xfe,0xf1,0x01,0x0f,0xfe,0xa8,0x03,0x53,0x03,0xa8,0xfe,0xb6,0x89,0xfe,0x2b,0x01,0xd5,0x89,0x01,0x4a,0x8b,0x00,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x05,0xd0,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xfe,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35, +0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x05,0x4d,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x25,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x05,0xdc,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x2a,0x00,0x1e,0x00,0x0a,0xb4,0x01, +0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x06,0x3a,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0xdc,0x01,0x41,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x06,0x1e,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07, +0x00,0xde,0x01,0x51,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x9c,0xfe,0x70,0x04,0x26,0x04,0x33,0x02,0x26,0x0c,0xff,0x00,0x00,0x00,0x07,0x00,0xdf,0x01,0xaa,0x00,0x00,0xff,0xff,0x00,0x05,0x00,0x00,0x06,0x64,0x06,0x2c,0x02,0x26,0x0d,0x01,0x00,0x00,0x01,0x07,0x00,0xd7, +0x01,0xbe,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x27,0x01,0x27,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x05,0x00,0x00,0x06,0x64,0x06,0x28,0x02,0x26,0x0d,0x01,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0xa6,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x27,0x01,0x27,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x05,0x00,0x00,0x06,0x64,0x06,0x28,0x02,0x26, +0x0d,0x01,0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x5e,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x27,0x01,0x27,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x05,0x00,0x00,0x06,0x64,0x05,0xa5,0x02,0x26,0x0d,0x01,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x94,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x27,0x01,0x27,0x00,0x11,0x5d,0x35,0x35,0xff,0xff, +0x00,0x14,0x00,0x00,0x03,0xa7,0x06,0x2c,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x06,0x00,0xd7,0x67,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x10,0x01,0x10,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x05,0xa5,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x06,0x00,0x8f,0x3d,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x10,0x01,0x10,0x00, +0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x06,0x28,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x06,0x00,0x43,0x71,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x10,0x01,0x10,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x29,0x00,0x00,0x03,0xb3,0x06,0x28,0x02,0x26,0x0d,0x04,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x21,0x00,0x1e,0x00,0x0a, +0xb4,0x01,0x0f,0x0b,0x01,0x0b,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x29,0x00,0x00,0x03,0xb3,0x05,0xa3,0x02,0x26,0x0d,0x04,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x3d,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x13,0x01,0x13,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x29,0x00,0x00,0x03,0xb3,0x06,0x2a,0x02,0x26,0x0d,0x04,0x00,0x00,0x01,0x07, +0x00,0xe0,0x00,0x8d,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0a,0x01,0x0a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x06,0xe3,0x02,0x26,0x0c,0xeb,0x00,0x00,0x00,0x27,0x00,0xdc,0x00,0xdf,0xff,0x4b,0x01,0x07,0x00,0x8e,0x01,0x14,0x00,0xd9,0x00,0x2a,0x40,0x1b,0x04,0xe0,0x2f,0x01,0x90,0x2f,0x01,0x90,0x2f,0x01, +0x80,0x2f,0x01,0x70,0x2f,0x01,0x70,0x2f,0x01,0x60,0x2f,0x01,0x2f,0x03,0x02,0x27,0x35,0x00,0x3f,0x35,0x35,0x11,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x35,0xff,0xff,0xff,0xf8,0x00,0x00,0x05,0x56,0x06,0x28,0x02,0x26,0x0d,0x05,0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x7b,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x16,0x01,0x16,0x00,0x11, +0x5d,0x35,0xff,0xff,0x00,0x41,0xff,0xda,0x04,0xa9,0x06,0x28,0x02,0x26,0x0d,0x08,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x69,0x00,0x1e,0x00,0x0a,0xb4,0x03,0x0f,0x35,0x01,0x35,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x33,0x02,0x06,0x0c,0xeb,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0xa1,0x04,0x33, +0x02,0x06,0x0c,0xec,0x00,0x00,0x00,0x01,0x00,0x9c,0x00,0x00,0x03,0x06,0x04,0x33,0x00,0x05,0x00,0x18,0x40,0x0b,0x00,0x07,0x02,0x37,0x03,0x01,0x39,0x04,0x35,0x03,0x33,0x00,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x11,0x33,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x03,0x06,0xfe,0x3a,0xa4,0x02,0x6a,0x03,0xa6,0xfc,0x5a,0x04,0x33,0x00, +0x00,0x02,0x00,0x2a,0x00,0x00,0x04,0x20,0x04,0x33,0x00,0x05,0x00,0x0e,0x00,0x23,0x40,0x10,0x0e,0x02,0x06,0x05,0x02,0x05,0x0f,0x10,0x09,0x01,0x03,0x35,0x0e,0x39,0x01,0x33,0x00,0x3f,0xed,0x3f,0x12,0x39,0x11,0x12,0x01,0x39,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x21,0x21,0x35,0x01,0x33,0x01,0x27,0x01,0x26,0x27,0x23,0x06,0x06, +0x07,0x01,0x04,0x20,0xfc,0x0a,0x01,0xa7,0xa4,0x01,0xab,0xcb,0xfe,0xed,0x1c,0x04,0x03,0x03,0x10,0x0e,0xfe,0xf3,0x39,0x03,0xfa,0xfc,0x06,0x51,0x02,0x9a,0x44,0x26,0x12,0x35,0x23,0xfd,0x66,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x04,0x33,0x02,0x06,0x0c,0xef,0x00,0x00,0xff,0xff,0x00,0x29,0x00,0x00,0x03,0xb3,0x04,0x33, +0x02,0x06,0x0d,0x04,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x39,0x04,0x33,0x02,0x06,0x0c,0xf2,0x00,0x00,0x00,0x03,0x00,0x58,0xff,0xed,0x04,0x95,0x04,0x45,0x00,0x03,0x00,0x17,0x00,0x27,0x00,0x2f,0x40,0x18,0x02,0x01,0x20,0x04,0x38,0x18,0x18,0x29,0x20,0x38,0x0e,0x00,0x39,0x01,0x01,0x25,0x1b,0x39,0x13,0x36,0x25,0x39, +0x09,0x34,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x35,0x21,0x15,0x25,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x01,0xac,0x01,0x95,0x01,0x54,0x52, +0x91,0xc9,0x77,0x78,0xc6,0x8e,0x4e,0x4b,0x8f,0xd0,0x85,0x7a,0xc3,0x88,0x49,0xab,0xb7,0xb7,0x57,0x8c,0x62,0x34,0x31,0x5f,0x88,0x57,0xb8,0xc0,0x01,0xdd,0x8b,0x8b,0x4a,0x86,0xd4,0x93,0x4d,0x4f,0x90,0xc8,0x79,0x7c,0xd0,0x97,0x55,0x55,0x93,0xc6,0x80,0xc8,0xdc,0x3c,0x6e,0x9b,0x5e,0x5e,0x9a,0x6d,0x3c,0xda,0xff,0xff,0x00,0xb0, +0x00,0x00,0x01,0x54,0x04,0x33,0x02,0x06,0x0c,0xf3,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0xec,0x04,0x33,0x02,0x06,0x0c,0xf5,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x04,0x15,0x04,0x33,0x00,0x0d,0x00,0x22,0x40,0x0f,0x04,0x03,0x0d,0x00,0x03,0x00,0x0f,0x0e,0x04,0x08,0x01,0x0d,0x33,0x01,0x35,0x00,0x3f,0x3f,0x12,0x39, +0x39,0x11,0x12,0x01,0x39,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x31,0x01,0x33,0x01,0x23,0x01,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x01,0xbd,0xa3,0x01,0xb5,0xb9,0xfe,0xf4,0x20,0x1e,0x04,0x03,0x04,0x20,0x22,0xfe,0xee,0x04,0x33,0xfb,0xcd,0x02,0xc0,0x53,0x5f,0x1c,0x17,0x61,0x57,0xfd,0x41,0x00,0xff,0xff,0x00,0xb0,0x00,0x00, +0x05,0x62,0x04,0x33,0x02,0x06,0x0c,0xf7,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x7a,0x04,0x33,0x02,0x06,0x0c,0xf8,0x00,0x00,0x00,0x03,0x00,0x49,0x00,0x00,0x03,0x4c,0x04,0x33,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x30,0x40,0x19,0x02,0x03,0x06,0x07,0x04,0x0b,0x0a,0x0b,0x0a,0x0b,0x0c,0x0d,0x05,0x39,0x06,0x06,0x02,0x0a, +0x39,0x09,0x33,0x01,0x39,0x02,0x35,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x11,0x12,0x01,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x21,0x35,0x21,0x13,0x21,0x35,0x21,0x03,0x36,0xfd,0x29,0x02,0xd7,0x73,0xfe,0x0f,0x01,0xf1,0x89,0xfc,0xfd,0x03,0x03,0x03,0xa3,0x90,0xfd,0xa7,0x8c,0xfd,0x9a, +0x91,0x00,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x04,0x45,0x02,0x06,0x0c,0xf9,0x00,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x04,0x37,0x04,0x33,0x00,0x07,0x00,0x1b,0x40,0x0d,0x04,0x37,0x05,0x00,0x37,0x01,0x03,0x39,0x06,0x35,0x01,0x05,0x33,0x00,0x3f,0x33,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x11, +0x23,0x11,0x21,0x04,0x37,0xa5,0xfd,0xc2,0xa4,0x03,0x87,0x03,0xa6,0xfc,0x5a,0x04,0x33,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x92,0x04,0x33,0x02,0x06,0x0c,0xfa,0x00,0x00,0x00,0x01,0x00,0x30,0x00,0x00,0x03,0x63,0x04,0x33,0x00,0x0b,0x00,0x34,0x40,0x1a,0x08,0x04,0x03,0x07,0x09,0x0b,0x04,0x09,0x0b,0x0b,0x09,0x04,0x03,0x0d, +0x0a,0x02,0x04,0x08,0x39,0x05,0x35,0x02,0x0a,0x39,0x01,0x33,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x32,0x11,0x33,0x31,0x30,0x21,0x21,0x35,0x01,0x01,0x35,0x21,0x15,0x21,0x01,0x01,0x21,0x03,0x63,0xfc,0xcd,0x01,0x82,0xfe,0xa1,0x02,0xdc,0xfe,0x0d,0x01,0x27,0xfe,0xb0, +0x02,0x50,0x44,0x01,0xe5,0x01,0xbd,0x4d,0x8c,0xfe,0x87,0xfe,0x59,0x00,0xff,0xff,0x00,0x19,0x00,0x00,0x03,0x6c,0x04,0x33,0x02,0x06,0x0c,0xfe,0x00,0x00,0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x04,0x33,0x02,0x06,0x0d,0x03,0x00,0x00,0x00,0x03,0x00,0x50,0xff,0xf5,0x04,0xb1,0x04,0x3d,0x00,0x1d,0x00,0x2a,0x00,0x37,0x00,0x46, +0x40,0x23,0x1f,0x12,0x01,0x37,0x37,0x0f,0x02,0x02,0x09,0x18,0x37,0x25,0x32,0x37,0x09,0x1f,0x37,0x3a,0x04,0x00,0x04,0x1e,0x2c,0x3a,0x0f,0x12,0x0f,0x04,0x0f,0x04,0x0f,0x02,0x10,0x36,0x02,0x00,0x2f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0x33, +0x33,0xed,0x32,0x32,0x31,0x30,0x25,0x15,0x23,0x35,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x33,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x03,0x11,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x02,0xcd,0x99,0x18,0x66,0xaa,0x79,0x43,0x43,0x7a, +0xaa,0x67,0x16,0x99,0x17,0x69,0xaa,0x78,0x42,0x44,0x79,0xa9,0x65,0x19,0x17,0x46,0x70,0x4e,0x29,0x2a,0x4f,0x70,0x46,0xae,0x14,0x45,0x71,0x4f,0x2b,0x29,0x4e,0x70,0x47,0x8b,0x96,0x96,0x3e,0x71,0x9c,0x5f,0x5d,0x97,0x6a,0x3a,0x70,0x70,0x3b,0x6b,0x97,0x5b,0x5f,0x9c,0x71,0x3e,0x02,0xc4,0xfd,0xc1,0x27,0x4b,0x6c,0x46,0x41,0x69, +0x49,0x28,0xfd,0xc1,0x02,0x3f,0x27,0x49,0x6a,0x42,0x46,0x6c,0x4a,0x27,0xff,0xff,0x00,0x1e,0x00,0x00,0x03,0xe4,0x04,0x33,0x02,0x06,0x0d,0x02,0x00,0x00,0x00,0x01,0x00,0x7d,0x00,0x00,0x04,0xc3,0x04,0x33,0x00,0x1b,0x00,0x34,0x40,0x1a,0x0d,0x00,0x37,0x0e,0x1b,0x1b,0x06,0x15,0x37,0x14,0x07,0x37,0x06,0x01,0x19,0x39,0x0c,0x10, +0x10,0x0e,0x1b,0x06,0x14,0x35,0x0e,0x33,0x00,0x3f,0x3f,0x33,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x11,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0x23,0x11,0x23,0x11,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x11,0x02,0xec,0x19,0x97, +0x88,0x9f,0xe1,0xdd,0x19,0x99,0x19,0xd7,0xe6,0x9e,0x88,0x97,0x19,0x04,0x33,0xfd,0x60,0x8a,0x89,0x01,0x8d,0xfe,0x73,0xc6,0xd4,0xfe,0xf4,0x01,0x0c,0xd1,0xc9,0x01,0x8d,0xfe,0x73,0x89,0x8a,0x02,0xa0,0x00,0x00,0x01,0x00,0x58,0x00,0x00,0x04,0xb8,0x04,0x45,0x00,0x2b,0x00,0x2a,0xbc,0x00,0x0f,0x01,0x50,0x00,0x1b,0x00,0x25,0x01, +0x50,0x40,0x0d,0x05,0x0a,0x39,0x20,0x36,0x2a,0x12,0x03,0x15,0x39,0x01,0x14,0x33,0x00,0x3f,0x33,0xed,0x32,0x32,0x32,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x21,0x21,0x35,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x15,0x21,0x35,0x21,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15, +0x14,0x0e,0x02,0x07,0x21,0x04,0xb8,0xfe,0x51,0x80,0x86,0x36,0x64,0x90,0x5a,0x5c,0x92,0x66,0x37,0x87,0x81,0xfe,0x50,0x01,0x0d,0x48,0x67,0x40,0x1e,0x51,0x93,0xcd,0x7d,0x7f,0xd0,0x93,0x50,0x1e,0x41,0x65,0x48,0x01,0x0c,0x8a,0x5d,0xd4,0x89,0x59,0x8c,0x62,0x33,0x33,0x62,0x8c,0x58,0x89,0xd5,0x5d,0x8a,0x8b,0x2c,0x62,0x6f,0x81, +0x4c,0x75,0xb8,0x80,0x43,0x42,0x7f,0xb9,0x76,0x4b,0x81,0x70,0x61,0x2d,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x06,0x28,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x1c,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x06,0x28,0x02,0x26,0x0c,0xef, +0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xe8,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x39,0x06,0x28,0x02,0x26,0x0c,0xf2,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x6f,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0c,0x01,0x0c,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x87,0x00,0x00, +0x02,0x0c,0x06,0x28,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0x8e,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x06,0x28,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x65,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35, +0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x06,0x28,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xf5,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x10,0x01,0x10,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0x00,0x00,0x04,0xb8,0x06,0x28,0x02,0x26,0x0d,0x80,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x6d,0x00,0x1e,0x00,0x0a,0xb4,0x01, +0x0f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xe0,0x00,0x00,0x02,0x27,0x05,0xa5,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x63,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x05,0xa5,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x06, +0x00,0x8f,0x3d,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x10,0x01,0x10,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x05,0x8a,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x06,0x00,0x8f,0x45,0x03,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0x35,0x00,0x01,0x00,0x22,0xff,0xf2,0x04,0x3f,0x04,0x33, +0x00,0x1d,0x00,0x3e,0x40,0x20,0x13,0x0b,0x37,0x0c,0x19,0x37,0x06,0x01,0x11,0x06,0x0c,0x06,0x0c,0x06,0x1f,0x0e,0x0a,0x39,0x13,0x13,0x0f,0x03,0x3a,0x1c,0x34,0x12,0x0e,0x39,0x0f,0x35,0x0c,0x33,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x32, +0x31,0x30,0x25,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x02,0x7c,0x32,0x49,0x4a,0x58,0x7e,0x72,0xba,0xa3,0xfe,0xd6,0x03,0x3a,0xfe,0x93,0xca,0x59,0x90,0x66,0x37,0xa4,0x97,0x4c,0x04,0x8c,0x19,0x5f,0x52,0x60,0x68,0xfe,0x10, +0x03,0xa9,0x8a,0x8a,0xfe,0xce,0x2c,0x56,0x7c,0x51,0x94,0xa2,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x1a,0x06,0x28,0x00,0x26,0x0d,0x6b,0x14,0x00,0x01,0x07,0x00,0x8e,0x00,0xd6,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x06,0x01,0x06,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0x58,0xff,0xee,0x03,0xca,0x04,0x45,0x00,0x1c,0x00,0x2e,0x40,0x17, +0x0f,0x16,0x07,0x1c,0x1c,0x1e,0x14,0x17,0x38,0x07,0x17,0x39,0x14,0x14,0x1a,0x11,0x39,0x0c,0x36,0x1a,0x39,0x02,0x34,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x12,0x39,0x33,0x31,0x30,0x25,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21, +0x15,0x21,0x16,0x16,0x33,0x32,0x37,0x03,0xca,0x83,0xc3,0x7d,0xcd,0x92,0x50,0x56,0x9a,0xd4,0x7f,0xb0,0x7f,0x86,0xaa,0xb1,0xcf,0x15,0x01,0xf7,0xfe,0x08,0x0e,0xc8,0xb4,0xb9,0x83,0x2d,0x3f,0x48,0x89,0xc7,0x7f,0x8a,0xd6,0x93,0x4d,0x2c,0x9e,0x40,0xa9,0xb6,0x89,0xa5,0xb7,0x48,0xff,0xff,0x00,0x68,0xff,0xed,0x03,0x08,0x04,0x45, +0x02,0x06,0x0c,0xfd,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x01,0x54,0x04,0x33,0x02,0x06,0x0c,0xf3,0x00,0x00,0xff,0xff,0xff,0xe0,0x00,0x00,0x02,0x27,0x05,0xa5,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x63,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x11, +0xff,0xed,0x01,0xe5,0x04,0x33,0x02,0x06,0x0c,0xf4,0x00,0x00,0x00,0x02,0x00,0x0d,0xff,0xef,0x06,0x32,0x04,0x33,0x00,0x26,0x00,0x2f,0x00,0x44,0xb6,0x02,0x19,0x1b,0x28,0x37,0x00,0x21,0xb8,0x01,0x50,0x40,0x1b,0x2c,0x19,0x00,0x2c,0x2c,0x00,0x19,0x03,0x31,0x0f,0x27,0x39,0x1b,0x1b,0x28,0x02,0x39,0x19,0x35,0x11,0x39,0x0c,0x34, +0x28,0x39,0x00,0x33,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x11,0x33,0x31,0x30,0x21,0x11,0x21,0x0e,0x03,0x07,0x0e,0x03,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x37,0x36,0x12,0x37,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23, +0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x03,0x37,0xfe,0xe5,0x0e,0x1a,0x16,0x14,0x08,0x0f,0x26,0x45,0x6f,0x5a,0x42,0x30,0x2b,0x33,0x2c,0x38,0x27,0x1e,0x12,0x19,0x34,0x1d,0x02,0x4a,0xe2,0x58,0x8b,0x60,0x33,0x36,0x65,0x8f,0x58,0xd6,0xc4,0x70,0x7a,0x74,0x76,0x03,0xa9,0x66,0xa5,0x87,0x6a,0x2a,0x4e,0x92,0x70,0x44,0x0f, +0x8f,0x16,0x28,0x51,0x7a,0x52,0x70,0x01,0x39,0xce,0xfe,0x44,0x2b,0x50,0x73,0x48,0x4a,0x77,0x53,0x2d,0x01,0xed,0xfe,0x9d,0x52,0x5d,0x60,0x54,0x00,0x02,0x00,0xb0,0x00,0x00,0x06,0x46,0x04,0x33,0x00,0x08,0x00,0x1f,0x00,0x49,0xb6,0x1f,0x01,0x37,0x14,0x1c,0x14,0x0e,0xb8,0x01,0x50,0x40,0x1c,0x05,0x14,0x05,0x14,0x05,0x21,0x1b, +0x17,0x37,0x18,0x16,0x39,0x1b,0x00,0x39,0x1f,0x1b,0x1f,0x1b,0x1f,0x1d,0x19,0x35,0x01,0x39,0x17,0x14,0x33,0x00,0x3f,0x33,0xed,0x3f,0x33,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x01,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x32, +0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x03,0xf3,0xbf,0x70,0x7a,0x6f,0x76,0x1e,0x58,0x8a,0x5e,0x31,0x36,0x65,0x8f,0x58,0xfe,0x8c,0xfe,0x03,0xa3,0xa3,0x01,0xfd,0xa3,0x01,0xed,0xfe,0x9d,0x52,0x5d,0x60,0x54,0x8a,0x2b,0x50,0x73,0x48,0x4a,0x77,0x53,0x2d,0x01,0xec,0xfe, +0x14,0x04,0x33,0xfe,0x43,0x01,0xbd,0xfe,0x44,0x00,0x00,0x01,0x00,0x22,0x00,0x00,0x04,0x64,0x04,0x33,0x00,0x12,0x00,0x34,0x40,0x1a,0x0f,0x07,0x37,0x08,0x00,0x37,0x01,0x08,0x01,0x08,0x01,0x14,0x0a,0x06,0x39,0x0f,0x0f,0x08,0x0e,0x0a,0x39,0x0b,0x35,0x01,0x08,0x33,0x00,0x3f,0x33,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f, +0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x20,0x11,0x04,0x64,0xa4,0x6f,0x65,0xfc,0xa3,0xfe,0xd5,0x03,0x3a,0xfe,0x94,0xfd,0x01,0x77,0x01,0x24,0x66,0x5f,0xfe,0x17,0x03,0xa9,0x8a,0x8a,0xfe,0xc7,0xfe,0xb4,0x00,0xff,0xff, +0x00,0xb0,0x00,0x00,0x03,0xec,0x06,0x28,0x02,0x26,0x0c,0xf5,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x42,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x13,0x01,0x13,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x36,0xff,0xed,0x03,0xf4,0x05,0xdc,0x02,0x26,0x0d,0xab,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xea,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1c, +0x01,0x1c,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0xb0,0xfe,0xe0,0x04,0x2f,0x04,0x33,0x00,0x0b,0x00,0x2e,0x40,0x17,0x01,0x37,0x04,0x00,0x37,0x09,0x04,0x09,0x04,0x09,0x0d,0x08,0x37,0x05,0x0a,0x06,0x35,0x08,0x39,0x01,0x05,0x33,0x03,0x00,0x2f,0x3f,0x33,0xed,0x3f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed, +0x31,0x30,0x21,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x04,0x2f,0xfe,0x8b,0x98,0xfe,0x8e,0xa3,0x02,0x38,0xa4,0xfe,0xe0,0x01,0x20,0x04,0x33,0xfc,0x57,0x03,0xa9,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x33,0x02,0x06,0x0c,0xeb,0x00,0x00,0x00,0x02,0x00,0xb0,0x00,0x00,0x03,0x9c,0x04,0x33,0x00,0x10, +0x00,0x1b,0x00,0x2f,0x40,0x18,0x03,0x12,0x0b,0x38,0x16,0x16,0x1d,0x05,0x12,0x37,0x00,0x11,0x39,0x05,0x05,0x12,0x04,0x39,0x01,0x35,0x12,0x39,0x00,0x33,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x33,0x11,0x21,0x15,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e, +0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0xb0,0x02,0x7c,0xfe,0x27,0xca,0x58,0x8e,0x64,0x35,0x38,0x67,0x92,0x59,0xbf,0xac,0x7d,0x75,0x1b,0x3b,0x5c,0x40,0x04,0x33,0x8a,0xfe,0xce,0x2b,0x51,0x73,0x47,0x4a,0x77,0x53,0x2d,0x01,0xed,0xfe,0x9d,0x50,0x5f,0x30,0x45,0x2b,0x14,0x00,0xff,0xff,0x00,0xb0,0x00,0x00, +0x03,0xa1,0x04,0x33,0x02,0x06,0x0c,0xec,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x1a,0x04,0x33,0x00,0x06,0x0d,0x6b,0x14,0x00,0x00,0x02,0x00,0x12,0xfe,0xdf,0x04,0x6c,0x04,0x33,0x00,0x0f,0x00,0x18,0x00,0x44,0x40,0x23,0x0f,0x37,0x02,0x0e,0x37,0x10,0x12,0x37,0x0c,0x18,0x07,0x0c,0x07,0x10,0x06,0x02,0x10,0x02,0x10,0x1a, +0x03,0x37,0x06,0x12,0x39,0x0c,0x35,0x01,0x04,0x0e,0x07,0x18,0x39,0x03,0x33,0x00,0x3f,0xed,0x32,0x32,0x2f,0x33,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x36,0x36,0x37,0x12,0x37,0x21,0x11,0x33,0x21,0x11, +0x21,0x06,0x06,0x07,0x06,0x06,0x07,0x04,0x6c,0x98,0xfc,0xd7,0x99,0x5d,0x3c,0x64,0x2a,0x55,0x0a,0x02,0x34,0xa0,0xfe,0xbd,0xfe,0xfd,0x07,0x2d,0x27,0x27,0x56,0x30,0xfe,0xdf,0x01,0x21,0xfe,0xdf,0x01,0xab,0x61,0xdf,0x81,0x01,0x02,0xe6,0xfc,0x57,0x03,0x1f,0x58,0xcb,0x75,0x76,0xc2,0x4f,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27, +0x04,0x33,0x02,0x06,0x0c,0xef,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x05,0xe7,0x04,0x33,0x00,0x1d,0x00,0x17,0x40,0x0a,0x06,0x37,0x07,0x07,0x1f,0x1e,0x15,0x35,0x07,0x33,0x00,0x3f,0x3f,0x11,0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x01,0x16, +0x17,0x33,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x05,0xe7,0xc9,0xfe,0x47,0x15,0x0a,0x04,0x9c,0x04,0x0b,0x13,0xfe,0x46,0xca,0x01,0xff,0xfe,0x25,0xb9,0x01,0xa7,0x13,0x0b,0x04,0x9c,0x04,0x0a,0x15,0x01,0xa6,0xb8,0xfe,0x26,0x01,0xec,0x14,0x11,0xfd,0xef,0x02,0x11,0x10,0x15,0xfe,0x14,0x02,0x2e,0x02,0x05,0xfe,0x2f,0x15, +0x10,0x01,0xf6,0xfe,0x0a,0x10,0x15,0x01,0xd1,0xfd,0xfb,0x00,0x00,0x01,0x00,0x50,0xff,0xee,0x03,0x3d,0x04,0x45,0x00,0x2f,0x00,0x39,0x40,0x1e,0x10,0x38,0x17,0x0c,0x23,0x03,0x00,0x20,0x20,0x00,0x29,0x38,0x08,0x08,0x31,0x00,0x24,0x0b,0x3a,0x0c,0x0c,0x1b,0x03,0x3b,0x2e,0x34,0x15,0x3b,0x1b,0x36,0x00,0x3f,0xed,0x3f,0xed,0x11, +0x39,0x2f,0xed,0x39,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x50,0x88,0xa9, +0x3d,0x65,0x46,0x27,0xfe,0xd9,0x76,0x6c,0x7e,0x89,0x1e,0x38,0x50,0x33,0x8e,0x89,0x42,0x96,0x56,0x54,0x88,0x60,0x34,0x75,0x71,0x3d,0x64,0x47,0x27,0x3d,0x72,0xa2,0x65,0xca,0x2d,0x96,0x5c,0x1b,0x33,0x48,0x2d,0xc2,0x80,0x60,0x58,0x25,0x3e,0x2c,0x18,0x55,0x8d,0x22,0x20,0x26,0x46,0x61,0x3b,0x69,0x83,0x1c,0x03,0x06,0x2b,0x44, +0x59,0x34,0x4a,0x77,0x54,0x2d,0x00,0x01,0x00,0xb0,0x00,0x00,0x04,0x7a,0x04,0x33,0x00,0x18,0x00,0x1e,0x40,0x0e,0x0e,0x37,0x0c,0x0f,0x0f,0x1a,0x17,0x01,0x37,0x00,0x17,0x33,0x01,0x35,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x13,0x33,0x11,0x14,0x06,0x07,0x33,0x3e,0x03,0x37,0x01,0x33,0x11,0x23, +0x11,0x34,0x37,0x23,0x06,0x06,0x07,0x01,0x23,0xb0,0x99,0x04,0x04,0x03,0x03,0x09,0x11,0x19,0x12,0x02,0x35,0xb9,0x99,0x06,0x05,0x08,0x29,0x1f,0xfd,0xcc,0xae,0x04,0x33,0xfd,0x39,0x39,0x4e,0x17,0x05,0x10,0x18,0x23,0x19,0x02,0xfc,0xfb,0xcd,0x02,0xe1,0x71,0x23,0x13,0x41,0x2a,0xfd,0x09,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x7a, +0x05,0xdc,0x02,0x26,0x0d,0xa0,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x65,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1c,0x01,0x1c,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0xec,0x04,0x33,0x02,0x06,0x0c,0xf5,0x00,0x00,0x00,0x01,0x00,0x0d,0xff,0xef,0x03,0xda,0x04,0x33,0x00,0x1b,0x00,0x2b,0x40,0x16,0x03,0x37,0x1a,0x00, +0x37,0x01,0x1a,0x01,0x1a,0x01,0x1d,0x10,0x03,0x39,0x1a,0x35,0x12,0x39,0x0d,0x34,0x01,0x33,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x0e,0x03,0x07,0x0e,0x03,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x37,0x36,0x12,0x37,0x21,0x03,0xda,0xa3,0xfe, +0xe5,0x0e,0x1a,0x16,0x14,0x08,0x0f,0x26,0x45,0x6f,0x5a,0x42,0x30,0x2b,0x33,0x2c,0x38,0x27,0x1e,0x12,0x19,0x34,0x1d,0x02,0x4a,0x03,0xa9,0x66,0xa5,0x87,0x6a,0x2a,0x4e,0x92,0x70,0x44,0x0f,0x8f,0x16,0x28,0x51,0x7a,0x52,0x70,0x01,0x39,0xce,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x05,0x62,0x04,0x33,0x02,0x06,0x0c,0xf7,0x00,0x00, +0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x39,0x04,0x33,0x02,0x06,0x0c,0xf2,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x04,0x45,0x02,0x06,0x0c,0xf9,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x37,0x04,0x33,0x02,0x06,0x0d,0x78,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x92,0x04,0x33,0x02,0x06,0x0c,0xfa,0x00,0x00, +0xff,0xff,0x00,0x58,0xff,0xed,0x03,0xbb,0x04,0x45,0x02,0x06,0x0c,0xed,0x00,0x00,0xff,0xff,0x00,0x19,0x00,0x00,0x03,0x6c,0x04,0x33,0x02,0x06,0x0c,0xfe,0x00,0x00,0x00,0x01,0x00,0x36,0xff,0xed,0x03,0xf4,0x04,0x33,0x00,0x18,0x00,0x23,0x40,0x10,0x18,0x00,0x00,0x1a,0x12,0x11,0x10,0x16,0x06,0x18,0x11,0x35,0x0b,0x39,0x06,0x34, +0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39,0x01,0x2f,0x33,0x11,0x33,0x2f,0x33,0x31,0x30,0x01,0x01,0x0e,0x03,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x37,0x01,0x33,0x01,0x16,0x16,0x17,0x33,0x01,0x03,0xf4,0xfe,0x91,0x2c,0x56,0x61,0x72,0x48,0x57,0x3d,0x45,0x4c,0x1f,0x3a,0x39,0x3b,0x21,0xfe,0x63,0xb6,0x01,0x18,0x08,0x11, +0x06,0x01,0x01,0x23,0x04,0x33,0xfd,0x12,0x5a,0x82,0x54,0x28,0x17,0x98,0x26,0x0e,0x29,0x49,0x3c,0x03,0x01,0xfd,0xdc,0x0e,0x26,0x12,0x02,0x6a,0xff,0xff,0x00,0x50,0xff,0xf5,0x04,0xb1,0x04,0x3d,0x02,0x06,0x0d,0x7d,0x00,0x00,0xff,0xff,0x00,0x1e,0x00,0x00,0x03,0xe4,0x04,0x33,0x02,0x06,0x0d,0x02,0x00,0x00,0x00,0x01,0x00,0xb0, +0xfe,0xdf,0x04,0xce,0x04,0x33,0x00,0x0b,0x00,0x2a,0x40,0x15,0x02,0x37,0x0b,0x0b,0x09,0x37,0x08,0x08,0x0d,0x05,0x37,0x04,0x08,0x04,0x35,0x0a,0x06,0x39,0x03,0x33,0x01,0x00,0x2f,0x3f,0xed,0x32,0x3f,0x33,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0xed,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33, +0x04,0xce,0x99,0xfc,0x7b,0xa3,0x02,0x38,0xa4,0x9f,0xfe,0xdf,0x01,0x21,0x04,0x33,0xfc,0x57,0x03,0xa9,0xfc,0x57,0x00,0x01,0x00,0x7d,0x00,0x00,0x03,0xb0,0x04,0x33,0x00,0x15,0x00,0x2b,0x40,0x15,0x15,0x37,0x02,0x14,0x14,0x17,0x0c,0x37,0x0b,0x10,0x39,0x02,0x0b,0x05,0x05,0x01,0x14,0x0b,0x35,0x01,0x33,0x00,0x3f,0x3f,0x33,0x12, +0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x21,0x23,0x11,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x11,0x33,0x03,0xb0,0xa3,0x56,0xa7,0x60,0x47,0x72,0x4f,0x2b,0xa3,0x54,0x60,0x4b,0x99,0x55,0xa3,0x01,0xd8,0x28,0x33,0x26,0x4b,0x6f,0x49,0x01,0x8d,0xfe, +0x90,0x64,0x5b,0x28,0x26,0x01,0xe1,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x05,0xc3,0x04,0x33,0x00,0x0b,0x00,0x2e,0x40,0x17,0x07,0x37,0x06,0x0b,0x37,0x0a,0x06,0x0a,0x06,0x0a,0x0d,0x03,0x37,0x02,0x0a,0x06,0x02,0x35,0x08,0x04,0x39,0x01,0x33,0x00,0x3f,0xed,0x32,0x3f,0x33,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed, +0x10,0xed,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x05,0xc3,0xfa,0xed,0xa3,0x01,0x95,0xa3,0x01,0x95,0xa3,0x04,0x33,0xfc,0x57,0x03,0xa9,0xfc,0x57,0x03,0xa9,0x00,0x00,0x01,0x00,0xb0,0xfe,0xdf,0x06,0x61,0x04,0x33,0x00,0x0f,0x00,0x39,0x40,0x1d,0x05,0x37,0x04,0x0e,0x37,0x0b,0x0b,0x09,0x37,0x08, +0x04,0x08,0x04,0x08,0x11,0x01,0x37,0x00,0x0a,0x06,0x02,0x39,0x0f,0x33,0x0d,0x08,0x04,0x00,0x35,0x00,0x3f,0x32,0x32,0x2f,0x3f,0xed,0x32,0x32,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x32,0x2f,0xed,0x10,0xed,0x31,0x30,0x13,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x21,0xb0,0xa3,0x01, +0x95,0xa3,0x01,0x95,0xa3,0x9e,0x99,0xfa,0xe8,0x04,0x33,0xfc,0x57,0x03,0xa9,0xfc,0x57,0x03,0xa9,0xfc,0x57,0xfe,0x55,0x01,0x21,0x00,0x00,0x02,0x00,0x22,0x00,0x00,0x04,0x3b,0x04,0x33,0x00,0x10,0x00,0x19,0x00,0x33,0x40,0x1a,0x05,0x12,0x37,0x00,0x0b,0x38,0x16,0x00,0x16,0x00,0x16,0x1b,0x02,0x11,0x3a,0x05,0x05,0x12,0x02,0x39, +0x03,0x35,0x12,0x3a,0x00,0x33,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x31,0x30,0x21,0x11,0x21,0x35,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x01,0x4d,0xfe,0xd5,0x01,0xce,0xca,0x58,0x8f,0x64,0x36, +0x39,0x68,0x92,0x59,0xbf,0xac,0x75,0x7f,0x7b,0x79,0x03,0xa9,0x8a,0xfe,0x44,0x2b,0x51,0x73,0x47,0x4a,0x77,0x53,0x2d,0x01,0xf1,0xfe,0x95,0x54,0x5f,0x61,0x57,0x00,0x00,0x03,0x00,0xb0,0x00,0x00,0x04,0xf1,0x04,0x33,0x00,0x0e,0x00,0x17,0x00,0x1b,0x00,0x35,0x40,0x1b,0x09,0x38,0x14,0x18,0x37,0x19,0x14,0x19,0x14,0x19,0x1d,0x03, +0x10,0x37,0x00,0x0f,0x3a,0x03,0x03,0x1a,0x01,0x35,0x10,0x3a,0x19,0x00,0x33,0x00,0x3f,0x32,0xed,0x3f,0x33,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x33,0x11,0x33,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x01,0x23,0x11, +0x33,0xb0,0xa3,0xca,0x58,0x8f,0x64,0x36,0x39,0x68,0x92,0x59,0xbf,0xac,0x75,0x7f,0x7b,0x79,0x02,0xf2,0xa4,0xa4,0x04,0x33,0xfe,0x44,0x2b,0x51,0x73,0x47,0x4a,0x77,0x53,0x2d,0x01,0xf1,0xfe,0x95,0x54,0x5f,0x61,0x57,0xfe,0x0f,0x04,0x33,0x00,0x02,0x00,0xb0,0x00,0x00,0x03,0x9e,0x04,0x33,0x00,0x0e,0x00,0x17,0x00,0x26,0x40,0x13, +0x09,0x38,0x14,0x14,0x19,0x03,0x10,0x37,0x00,0x0f,0x3a,0x03,0x03,0x01,0x35,0x10,0x3a,0x00,0x33,0x00,0x3f,0xed,0x3f,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x33,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0xb0,0xa3,0xca,0x58,0x8f,0x64, +0x36,0x39,0x68,0x92,0x59,0xbf,0xac,0x75,0x7f,0x7b,0x79,0x04,0x33,0xfe,0x44,0x2b,0x51,0x73,0x47,0x4a,0x77,0x53,0x2d,0x01,0xf1,0xfe,0x95,0x54,0x5f,0x61,0x57,0x00,0x00,0x01,0x00,0x54,0xff,0xee,0x03,0xc6,0x04,0x45,0x00,0x1c,0x00,0x2e,0x40,0x17,0x15,0x38,0x08,0x06,0x00,0x05,0x05,0x1e,0x0d,0x00,0x06,0x39,0x07,0x07,0x10,0x02, +0x39,0x1a,0x34,0x0b,0x39,0x10,0x36,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x33,0xed,0x31,0x30,0x37,0x16,0x33,0x32,0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x27,0x54,0x82,0xba,0xb4,0xc8,0x0e,0xfe,0x08,0x01, +0xf7,0x15,0xcf,0xb1,0xaa,0x86,0x7f,0xb0,0x86,0xd7,0x96,0x50,0x50,0x92,0xcd,0x7d,0xc4,0x82,0xbf,0x48,0xb7,0xa5,0x89,0xb6,0xa9,0x40,0x9e,0x2c,0x4d,0x94,0xd6,0x89,0x7f,0xc7,0x89,0x48,0x3f,0x00,0x00,0x02,0x00,0xb0,0xff,0xed,0x06,0x88,0x04,0x45,0x00,0x1a,0x00,0x2a,0x00,0x43,0xb9,0x00,0x23,0x01,0x50,0x40,0x20,0x0a,0x11,0x0a, +0x00,0x38,0x1b,0x0a,0x1b,0x0a,0x1b,0x2c,0x10,0x0c,0x37,0x0d,0x0b,0x3a,0x10,0x10,0x28,0x1e,0x39,0x16,0x36,0x0e,0x35,0x0d,0x33,0x28,0x39,0x05,0x34,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e, +0x02,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x06,0x88,0x52,0x91,0xc9,0x77,0x74,0xc1,0x8d,0x52,0x05,0xf9,0xa3,0xa3,0xfe,0x0e,0x57,0x8c,0xc0,0x78,0x7a,0xc3,0x88,0x49,0xab,0xb7,0xb7,0x57,0x8c,0x62,0x34,0x31,0x5f,0x88,0x57, +0xb8,0xc0,0x02,0x27,0x86,0xd4,0x93,0x4d,0x4b,0x87,0xbd,0x72,0xfe,0x12,0x04,0x33,0xfe,0x3d,0x68,0xac,0x7c,0x45,0x55,0x93,0xc6,0x80,0xc8,0xdc,0x3c,0x6e,0x9b,0x5e,0x5e,0x9a,0x6d,0x3c,0xda,0x00,0x00,0x02,0x00,0x12,0x00,0x00,0x03,0x39,0x04,0x33,0x00,0x1c,0x00,0x27,0x00,0x3d,0xb9,0x00,0x22,0x01,0x50,0x40,0x1b,0x16,0x1d,0x00, +0x37,0x01,0x10,0x01,0x16,0x01,0x16,0x01,0x29,0x09,0x0a,0x10,0x03,0x3a,0x27,0x27,0x09,0x1e,0x3a,0x1c,0x35,0x01,0x09,0x33,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x33,0x10,0xed,0x31,0x30,0x21,0x23,0x11,0x23,0x22,0x0e,0x02,0x07,0x03,0x23,0x13,0x3e,0x03, +0x37,0x35,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x21,0x03,0x11,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x03,0x39,0xa4,0x9c,0x16,0x26,0x24,0x24,0x14,0x97,0xb8,0xb7,0x08,0x1b,0x23,0x2b,0x18,0x3b,0x5d,0x40,0x22,0x39,0x66,0x8f,0x56,0x01,0x5d,0xa3,0xb0,0x6d,0x77,0x20,0x3b,0x52,0x33,0x01,0xb5,0x08,0x1b,0x32,0x2a,0xfe,0xca,0x01, +0x63,0x10,0x26,0x24,0x1e,0x09,0x03,0x0c,0x32,0x49,0x5d,0x36,0x46,0x71,0x50,0x2b,0xfe,0x08,0x01,0x72,0x5e,0x58,0x2c,0x45,0x31,0x1a,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0x1a,0x04,0xf9,0x00,0x07,0x00,0x1f,0x40,0x0f,0x00,0x37,0x05,0x05,0x09,0x02,0x37,0x03,0x06,0x01,0x39,0x04,0x35,0x03,0x33,0x00,0x3f,0x3f,0xed,0xce,0x01,0x2f, +0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x33,0x03,0x1a,0xfe,0x39,0xa3,0x01,0xda,0x90,0x03,0xa9,0xfc,0x57,0x04,0x33,0xc6,0x00,0x01,0x00,0x35,0x00,0x00,0x03,0xff,0x06,0x04,0x00,0x1d,0x00,0x37,0x40,0x1c,0x1c,0x04,0x84,0x09,0x05,0x05,0x01,0x07,0x13,0x00,0x84,0x01,0x13,0x13,0x08,0x16,0x95,0x0f, +0x01,0x03,0x07,0x95,0x1c,0x08,0x0f,0x01,0x05,0x15,0x00,0x3f,0x33,0x3f,0x33,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0x01,0x2f,0xfd,0xc4,0x2f,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x21,0x03, +0xff,0xa4,0xfe,0x2c,0xa4,0xae,0xae,0x40,0x81,0xc2,0x81,0x48,0x7e,0x23,0x2e,0x7f,0x49,0x53,0x7f,0x56,0x2b,0x02,0x78,0x03,0x75,0xfc,0x8b,0x03,0x75,0x8b,0x15,0x5e,0xb3,0x8a,0x54,0x09,0x09,0x94,0x0e,0x0d,0x37,0x61,0x85,0x4f,0x0d,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x04,0x01,0x06,0x04,0x00,0x1d,0x00,0x33,0x40,0x1a,0x0b,0x0f, +0x84,0x14,0x10,0x0d,0x10,0x0d,0x01,0x12,0x00,0x84,0x01,0x05,0x95,0x1a,0x01,0x0e,0x12,0x95,0x0b,0x13,0x0f,0x01,0x10,0x15,0x00,0x3f,0x33,0x3f,0x33,0xed,0x32,0x3f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11, +0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x04,0x01,0xa2,0x17,0x56,0x2c,0x53,0x79,0x4e,0x25,0xf1,0xf1,0xa4,0xae,0xae,0x3a,0x79,0xbc,0x81,0x3e,0x96,0x5a,0x05,0x6e,0x04,0x07,0x37,0x61,0x85,0x4f,0x0d,0x8b,0xfc,0x8b,0x03,0x75,0x8b,0x15,0x5e,0xb3,0x8a,0x54,0x0b,0x0d,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x05,0x19, +0x06,0x02,0x00,0x2c,0x00,0x59,0x40,0x2f,0x11,0x28,0x84,0x29,0x00,0x29,0x20,0x24,0x84,0x12,0x0a,0x25,0x29,0x25,0x22,0x22,0x25,0x29,0x03,0x1a,0x2b,0x1a,0x27,0x23,0x2b,0x95,0x2c,0x0a,0x1b,0x0a,0x1b,0x06,0x20,0x11,0x2c,0x0f,0x25,0x29,0x15,0x1d,0x95,0x18,0x01,0x0d,0x95,0x06,0x00,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x3f,0x33, +0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x32,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc4,0x33,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x13,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x21,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x15,0x33,0x15, +0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0xe3,0x2f,0x5e,0x8d,0x5f,0x35,0x5b,0x1a,0x1e,0x53,0x30,0x6d,0x71,0x01,0xd5,0x30,0x57,0x78,0x47,0x4b,0x2c,0x30,0x3d,0xac,0xf0,0xf0,0xa4,0xfe,0x2b,0xa4,0xae,0x04,0x00,0x15,0x5e,0xa9,0x80,0x4a,0x09,0x09,0x94,0x0e,0x0d,0xb0,0x9e,0x0d,0xa6,0x4e,0x80,0x5b,0x33,0x12,0x94,0x1b, +0xd9,0x9e,0x8b,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x03,0x75,0x8b,0x00,0x01,0x00,0x35,0x00,0x00,0x06,0x78,0x06,0x04,0x00,0x33,0x00,0x62,0x40,0x36,0x1e,0x08,0x84,0x09,0x0d,0x09,0x32,0x04,0x84,0x1f,0x17,0x05,0x09,0x05,0x09,0x05,0x01,0x0b,0x29,0x00,0x84,0x01,0x2c,0x95,0x25,0x01,0xb0,0x29,0xc0,0x29,0xe0,0x29,0x03,0x17,0x29,0x17, +0x29,0x0c,0x1a,0x95,0x13,0x00,0x07,0x03,0x0b,0x95,0x32,0x1e,0x0c,0x0f,0x05,0x01,0x09,0x15,0x00,0x3f,0x33,0x33,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x3f,0xed,0x01,0x2f,0xfd,0xc4,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc4,0x33,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x21, +0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x21,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x21,0x06,0x78,0xa4,0xfe,0x2c,0xa4,0xfe,0x2b,0xa4,0xae,0xae,0x2f,0x5e,0x8d,0x5f,0x35,0x5b,0x1a,0x1e, +0x53,0x30,0x6d,0x71,0x01,0xd5,0x40,0x81,0xc2,0x81,0x48,0x7e,0x23,0x2e,0x7f,0x49,0x53,0x7f,0x56,0x2b,0x02,0x78,0x03,0x75,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x03,0x75,0x8b,0x15,0x5e,0xa9,0x80,0x4a,0x09,0x09,0x94,0x0e,0x0d,0xb0,0x9e,0x0d,0x15,0x5e,0xb3,0x8a,0x54,0x09,0x09,0x94,0x0e,0x0d,0x37,0x61,0x85,0x4f,0x0d,0x00,0x00,0x01, +0x00,0x35,0x00,0x00,0x06,0x78,0x06,0x04,0x00,0x33,0x00,0x58,0x40,0x2f,0x29,0x13,0x84,0x14,0x18,0x14,0x0b,0x0f,0x84,0x2a,0x22,0x10,0x14,0x10,0x0d,0x0d,0x10,0x14,0x03,0x01,0x16,0x00,0x84,0x01,0x05,0x95,0x30,0x01,0x22,0x22,0x17,0x25,0x95,0x1e,0x00,0x12,0x0e,0x16,0x95,0x29,0x0b,0x17,0x0f,0x10,0x01,0x14,0x15,0x00,0x3f,0x33, +0x33,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0xed,0x12,0x39,0x2f,0x3f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc4,0x33,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x3e,0x02, +0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x21,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x06,0x78,0xa2,0x17,0x56,0x2c,0x53,0x79,0x4e,0x25,0xf1,0xf1,0xa4,0xfe,0x2d,0xa4,0xae,0xae,0x2f,0x5e,0x8d,0x5f,0x35,0x5b,0x1a,0x1e,0x53,0x30,0x6d,0x71,0x01,0xd3,0x3a,0x79,0xbc,0x81,0x3e,0x96,0x5a,0x05,0x6e,0x04,0x07, +0x37,0x61,0x85,0x4f,0x0d,0x8b,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x03,0x75,0x8b,0x15,0x5e,0xa9,0x80,0x4a,0x09,0x09,0x94,0x0e,0x0d,0xb0,0x9e,0x0d,0x15,0x5e,0xb3,0x8a,0x54,0x0b,0x0d,0x00,0x00,0x03,0x00,0x57,0xff,0xef,0x05,0x31,0x04,0x45,0x00,0x43,0x00,0x57,0x00,0x67,0x00,0x6d,0x40,0x3e,0x38,0x05,0x0f,0x33,0x37,0x2c,0x29,0x49, +0x2c,0x53,0x24,0x4e,0x12,0x03,0x17,0x21,0x37,0x58,0x60,0x37,0x17,0x40,0x2c,0x58,0x17,0x17,0x58,0x2c,0x40,0x04,0x69,0x53,0x37,0x0f,0x12,0x4e,0x49,0x05,0x04,0x00,0x5d,0x3b,0x1c,0x2f,0x2f,0x44,0x65,0x24,0x29,0x38,0x04,0x3d,0x1c,0x36,0x44,0x39,0x0a,0x34,0x3d,0x39,0x00,0x34,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x17,0x39,0x12, +0x39,0x2f,0x10,0xed,0x11,0x17,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x17,0x39,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x05,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07, +0x1e,0x03,0x17,0x36,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x25,0x32,0x3e,0x02,0x37,0x2e,0x03,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x13,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x14,0x1e,0x02,0x17,0x36,0x36,0x04,0xb2,0x2f,0x4a,0x41,0x3b,0x1f,0x23,0x56,0x6a, +0x7e,0x4b,0x5c,0x97,0x6c,0x3c,0x8b,0x85,0x19,0x30,0x26,0x17,0x30,0x53,0x71,0x41,0x40,0x6c,0x4d,0x2b,0x65,0x65,0x34,0x56,0x4a,0x3f,0x1e,0x33,0x35,0x08,0x07,0xa1,0x08,0x06,0x14,0x2a,0x40,0x2c,0x1d,0x2d,0x2d,0x33,0x21,0x18,0x34,0x1b,0x1e,0x41,0xfd,0x20,0x3a,0x63,0x52,0x44,0x1c,0x2a,0x4f,0x56,0x63,0x3d,0x2d,0x4e,0x39,0x20, +0x26,0x42,0x59,0xde,0x19,0x28,0x31,0x18,0x44,0x51,0x01,0x14,0x21,0x2a,0x17,0x5a,0x50,0x11,0x12,0x23,0x33,0x20,0x1b,0x31,0x26,0x16,0x2a,0x51,0x76,0x4b,0x73,0xa1,0x34,0x10,0x2b,0x36,0x43,0x28,0x3c,0x5b,0x3f,0x20,0x20,0x3c,0x54,0x34,0x5a,0x77,0x2a,0x14,0x3b,0x48,0x53,0x2b,0x55,0xcb,0x70,0x1d,0x32,0x19,0x19,0x2c,0x1e,0x40, +0x86,0x83,0x7e,0x37,0x20,0x2b,0x1a,0x0b,0x0c,0x09,0x85,0x0e,0x0b,0x8b,0x10,0x1d,0x27,0x18,0x3e,0x63,0x4d,0x3a,0x16,0x11,0x29,0x39,0x4a,0x32,0x2f,0x46,0x2e,0x18,0x02,0xd7,0x1f,0x2e,0x1e,0x0e,0x45,0x3b,0x1a,0x2f,0x28,0x20,0x0b,0x1c,0x4e,0x00,0xff,0xff,0x00,0x58,0xff,0xed,0x03,0xbb,0x06,0x2c,0x02,0x26,0x0c,0xed,0x00,0x00, +0x01,0x07,0x00,0xd7,0x00,0xf1,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1e,0x01,0x1e,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x20,0x06,0x2c,0x02,0x26,0x0c,0xf1,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x1e,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x23,0x01,0x23,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x68,0xfe,0x85,0x03,0x08, +0x04,0x45,0x02,0x26,0x0c,0xfd,0x00,0x00,0x00,0x06,0x01,0x9c,0x25,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x2f,0x05,0x9a,0x02,0x06,0x00,0x25,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a,0x02,0x06,0x00,0x33,0x00,0x00,0xff,0xff,0x00,0x52,0x00,0x00,0x03,0xbf,0x05,0x9a,0x01,0x0f,0x00,0x33,0x04,0x7b,0x05,0x9a, +0xc0,0x00,0x00,0x09,0xb3,0x01,0x00,0x03,0x12,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x3e,0x05,0x9a,0x02,0x06,0x00,0x27,0x00,0x00,0xff,0xff,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x02,0x06,0x00,0x37,0x00,0x00,0xff,0xff,0x00,0x27,0x00,0x00,0x04,0x0a,0x05,0x9a,0x01,0x47,0x00,0x37,0xff,0xfe,0x05,0x9a, +0x40,0x00,0xc0,0x00,0x00,0x07,0xb2,0x00,0x07,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0xec,0x05,0xb2,0x02,0x06,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x02,0x06,0x00,0x2e,0x00,0x00,0xff,0xff,0x00,0x02,0x00,0x00,0x03,0xe8,0x05,0x9a,0x01,0x0f,0x00,0x2e,0x04,0xa4,0x05,0x9a, +0xc0,0x00,0x00,0x07,0xb2,0x00,0x08,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe8,0x02,0x2b,0x05,0x9a,0x02,0x06,0x00,0x2d,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x02,0x06,0x00,0x26,0x00,0x00,0xff,0xff,0x00,0x68,0xff,0xe8,0x04,0x96,0x05,0xb2,0x01,0x0f,0x00,0x26,0x04,0xf4,0x05,0x9a,0xc0,0x00, +0x00,0x07,0xb2,0x00,0x08,0x13,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x05,0x9a,0x02,0x06,0x00,0x3d,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0x94,0x05,0x9a,0x02,0x06,0x00,0x29,0x00,0x00,0xff,0xff,0x00,0x54,0x00,0x00,0x03,0x2c,0x05,0x9a,0x01,0x0f,0x00,0x29,0x03,0xe8,0x05,0x9a,0xc0,0x00,0x00,0x07, +0xb2,0x00,0x08,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x06,0x72,0x05,0x9a,0x02,0x06,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x05,0x9a,0x02,0x06,0x00,0x31,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x06,0x00,0x2f,0x00,0x00,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde, +0x05,0xb2,0x02,0x06,0x00,0x36,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xc0,0x05,0x9a,0x02,0x06,0x00,0x35,0x00,0x00,0xff,0xff,0x00,0x09,0x00,0x00,0x04,0x0d,0x05,0x9a,0x01,0x0f,0x00,0x35,0x04,0xc9,0x05,0x9a,0xc0,0x00,0x00,0x09,0xb3,0x01,0x00,0x0b,0x12,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0xe6, +0x05,0x9a,0x01,0x0f,0x00,0x39,0x04,0xf8,0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x03,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0xe6,0x05,0x9a,0x02,0x06,0x00,0x39,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x05,0x9a,0x02,0x06,0x00,0x2b,0x00,0x00,0xff,0xff,0x00,0x91,0xff,0xe8,0x05,0x1f,0x05,0xb2, +0x01,0x0f,0x00,0x2a,0x05,0x7d,0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x08,0x13,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x02,0xc7,0x05,0xb2,0x01,0x0f,0x00,0x2d,0x02,0xdb,0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x0b,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x60,0x05,0x9a,0x02,0x06,0x00,0x3a, +0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x02,0x06,0x00,0x3b,0x00,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x02,0x06,0x00,0x3c,0x00,0x00,0xff,0xff,0x00,0x67,0x00,0x00,0x03,0xda,0x05,0x9a,0x01,0x0f,0x00,0x25,0x04,0x96,0x05,0x9a,0xc0,0x00,0x00,0x0b,0xb4,0x02,0x01,0x00,0x01,0x12,0x00,0x3f, +0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0x9a,0x02,0x06,0x00,0x24,0x00,0x00,0xff,0xff,0x00,0x17,0x00,0x00,0x05,0x13,0x05,0x9a,0x01,0x0f,0x00,0x24,0x05,0x29,0x05,0x9a,0xc0,0x00,0x00,0x09,0xb3,0x01,0x00,0x06,0x12,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x05,0x9a,0x02,0x06, +0x00,0x28,0x00,0x00,0xff,0xff,0x00,0x58,0x00,0x00,0x03,0x50,0x05,0x9a,0x01,0x0f,0x00,0x28,0x04,0x0c,0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x03,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x01,0x64,0x05,0x9a,0x02,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x02,0x06,0x00,0x32, +0x00,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x05,0x9a,0x02,0x06,0x00,0x38,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xd5,0x05,0xb2,0x01,0x0f,0x00,0x38,0x05,0x7f,0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x05,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x20,0x00,0x00,0x03,0x08,0x05,0x9a,0x01,0x0f,0x00,0x2f,0x03,0xc4, +0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x03,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x5e,0x00,0x00,0x04,0xe0,0x05,0x9a,0x01,0x0f,0x00,0x27,0x05,0x9c,0x05,0x9a,0xc0,0x00,0x00,0x09,0xb3,0x01,0x00,0x01,0x12,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x70,0xff,0xea,0x01,0x50,0x00,0xcb,0x02,0x06,0x00,0x11,0x00,0x00,0xff,0xff, +0x00,0x27,0xfe,0xf8,0x01,0x3c,0x00,0xe4,0x02,0x06,0x00,0x0f,0x00,0x00,0xff,0xff,0x00,0x70,0xff,0xea,0x03,0x0c,0x00,0xcb,0x00,0x26,0x00,0x11,0x00,0x00,0x00,0x07,0x00,0x11,0x01,0xbc,0x00,0x00,0xff,0xff,0x00,0x70,0xfe,0xf8,0x02,0xf8,0x00,0xe4,0x00,0x26,0x00,0x11,0x00,0x00,0x00,0x07,0x00,0x0f,0x01,0xbc,0x00,0x00,0xff,0xff, +0x00,0x27,0xfe,0xf8,0x01,0x52,0x04,0x16,0x02,0x06,0x00,0x1e,0x00,0x00,0xff,0xff,0x00,0x70,0xff,0xea,0x01,0x50,0x04,0x16,0x02,0x06,0x00,0x1d,0x00,0x00,0xff,0xff,0x00,0x90,0xff,0xea,0x04,0x83,0x02,0x7b,0x00,0x26,0x00,0x10,0x00,0x00,0x00,0x07,0x00,0x11,0x03,0x33,0x00,0x00,0xff,0xff,0x00,0x90,0x01,0xc8,0x02,0xb2,0x03,0xf4, +0x02,0x27,0x00,0x10,0x00,0x00,0x01,0x79,0x00,0x06,0x00,0x10,0x00,0xce,0x00,0x01,0x00,0x30,0x00,0x00,0x01,0xf0,0x05,0x9a,0x00,0x0b,0x00,0x61,0x40,0x40,0x02,0x0a,0x92,0x0b,0x03,0x03,0x07,0x92,0x40,0x06,0x01,0x04,0x0e,0x03,0x07,0x08,0x42,0x0a,0x07,0x40,0x03,0x06,0x0d,0x06,0x4d,0x03,0x06,0x0c,0x06,0x4d,0x03,0x06,0x0b,0x06, +0x4d,0x03,0x7e,0x08,0x08,0x04,0x0d,0x06,0x4d,0x08,0x02,0x0c,0x06,0x4d,0x08,0x02,0x0b,0x06,0x4d,0x08,0x40,0x0d,0x01,0x4d,0x0c,0x0d,0x08,0x7e,0xff,0x30,0x2b,0x01,0x2b,0x2b,0x2b,0x2b,0x10,0xe1,0x2b,0x2b,0x2b,0x1a,0x18,0xcd,0x32,0x2b,0x01,0x10,0xe1,0x32,0x00,0x18,0x2f,0x1a,0xed,0x32,0x3f,0xed,0x32,0x31,0x30,0x01,0x15,0x23, +0x11,0x33,0x15,0x21,0x35,0x33,0x11,0x23,0x35,0x01,0xf0,0x8c,0x8c,0xfe,0x40,0x8c,0x8c,0x05,0x9a,0x90,0xfb,0x86,0x90,0x90,0x04,0x7a,0x90,0x00,0x00,0x02,0x00,0x5e,0xfe,0x7c,0x05,0xcc,0x05,0xb2,0x00,0x28,0x00,0x38,0x00,0x96,0x40,0x29,0x78,0x12,0x01,0x14,0x00,0x29,0x91,0x0b,0x04,0x31,0x91,0x00,0x19,0xee,0x24,0x1e,0x1e,0x75, +0x14,0x01,0x14,0x00,0x07,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x35,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x35,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x35,0xb8,0xff,0xea,0x40,0x2f,0x0b,0x06,0x4d,0x20,0x35,0x30,0x35,0x02,0x35,0x35,0x3a,0x2d,0x06,0x0d,0x06,0x4d,0x2d,0x06,0x0c,0x06, +0x4d,0x2d,0x06,0x0b,0x06,0x4d,0x2d,0x7d,0x07,0x10,0x0d,0x06,0x4d,0x07,0x10,0x0c,0x06,0x4d,0x07,0x10,0x0b,0x06,0x4d,0x07,0x2f,0x3a,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0x11,0x39,0x39,0x5d,0xc2,0x2f,0x00,0x2f,0xed,0x2f,0xed,0x3f,0xed,0x12,0x39,0x31,0x30, +0x01,0x5d,0x05,0x22,0x2e,0x02,0x27,0x26,0x11,0x10,0x37,0x36,0x21,0x20,0x17,0x16,0x11,0x14,0x0e,0x02,0x07,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x03,0x22,0x07,0x06,0x11,0x10,0x17,0x16,0x33,0x32,0x37,0x36,0x11,0x10,0x27,0x26,0x02,0xf4,0x40,0x84,0x7c,0x71,0x2e,0xb7,0xba,0xbc,0x01,0x46,0x01, +0x24,0xb6,0xb6,0x3d,0x7c,0xbc,0x80,0x34,0x5b,0x5b,0x62,0x3b,0x10,0x26,0x27,0x24,0x0f,0x10,0x28,0x29,0x28,0x11,0x60,0x99,0x85,0x7c,0x2e,0xe2,0x8d,0x8d,0x89,0x8a,0xdd,0xec,0x88,0x88,0x84,0x84,0x18,0x19,0x33,0x4b,0x32,0xc8,0x01,0x43,0x01,0x5b,0xcd,0xce,0xc8,0xc8,0xfe,0xbd,0x88,0xf1,0xc2,0x87,0x1d,0x38,0x56,0x3b,0x1e,0x03, +0x07,0x09,0x06,0xa2,0x05,0x07,0x05,0x03,0x39,0x63,0x84,0x05,0x7e,0xa3,0xa3,0xfe,0xf7,0xfe,0xf8,0xa3,0xa1,0x9a,0x9a,0x01,0x15,0x01,0x1d,0x9a,0x9b,0x00,0x00,0x03,0x00,0x77,0xff,0xe7,0x05,0x91,0x05,0xb2,0x00,0x29,0x00,0x37,0x00,0x46,0x00,0x69,0x40,0x3c,0x02,0x38,0x3b,0x0b,0x04,0x12,0x04,0x24,0x27,0x1f,0x1c,0x36,0x24,0x05, +0x12,0x01,0x45,0x95,0x04,0x13,0x2f,0x96,0x12,0x04,0x27,0x02,0x25,0x09,0x1f,0x38,0x24,0x40,0x0b,0x36,0x3b,0x1c,0x04,0x17,0x0d,0x25,0xef,0x24,0x17,0x84,0x2a,0x34,0x84,0x0d,0x0d,0x2a,0x24,0x03,0x09,0x01,0x00,0x00,0x48,0x40,0x83,0x09,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x12,0x17,0x39,0x2f,0xe1,0x2f,0xe1,0x2f,0xe1,0x11,0x12,0x17, +0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2f,0x11,0x17,0x39,0x2f,0x11,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x27,0x06,0x21,0x22,0x2e,0x02,0x35,0x34,0x25,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x16,0x16,0x17,0x3e,0x03,0x37,0x33,0x02,0x07,0x16,0x16,0x01,0x34,0x2e, +0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x17,0x36,0x13,0x26,0x26,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x05,0x91,0xe5,0x9a,0xc2,0xfe,0xed,0x67,0xa7,0x77,0x41,0x01,0x47,0x9b,0x38,0x65,0x8a,0x52,0x4d,0x7e,0x5a,0x31,0x21,0x4c,0x7c,0x5b,0x67,0xbb,0x55,0x17,0x29,0x20,0x12,0x01,0x97,0x01,0xab,0x14,0x87,0xfe,0x34,0x1c,0x30, +0x41,0x25,0x32,0x50,0x39,0x1e,0x8d,0xfe,0x62,0x46,0xcc,0x87,0x45,0x60,0x3c,0x1b,0x2c,0x4d,0x68,0x3d,0xdc,0x9e,0xb7,0x39,0x66,0x8e,0x56,0xfd,0xa7,0xc7,0x8b,0x49,0x7c,0x5a,0x33,0x2d,0x50,0x6e,0x40,0x42,0x6b,0x5f,0x56,0x2d,0x6d,0xbe,0x54,0x21,0x5c,0x67,0x6a,0x2f,0xfe,0xf2,0xd8,0x14,0x87,0x04,0x04,0x27,0x43,0x30,0x1c,0x1e, +0x37,0x4c,0x2e,0x6d,0x9d,0x7a,0xfd,0x30,0x48,0xd3,0x8f,0x23,0x45,0x4b,0x54,0x32,0x3a,0x5e,0x42,0x24,0x00,0x02,0x00,0xb4,0xff,0xee,0x01,0x91,0x05,0x9a,0x00,0x03,0x00,0x17,0x00,0x1e,0x40,0x0f,0x03,0x03,0x02,0x13,0xb0,0x09,0x13,0x01,0x02,0x00,0x7d,0x03,0x04,0xaf,0x0e,0x2f,0xe1,0xd4,0xe1,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x3f, +0x31,0x30,0x01,0x03,0x23,0x03,0x13,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x01,0x77,0x14,0x72,0x14,0xb4,0x11,0x1e,0x28,0x17,0x17,0x29,0x1e,0x11,0x12,0x1e,0x28,0x17,0x16,0x28,0x1e,0x12,0x05,0x9a,0xfb,0xf9,0x04,0x07,0xfa,0xc2,0x16,0x28,0x1e,0x12,0x11,0x1e,0x28,0x17,0x17,0x28,0x1e,0x12, +0x12,0x1e,0x29,0x00,0x00,0x01,0x00,0x5c,0xfe,0xed,0x01,0x4e,0x00,0xcf,0x00,0x14,0x00,0x17,0x40,0x0a,0x14,0x0c,0xb2,0x15,0x03,0x0f,0x00,0x0f,0xaf,0x09,0x2f,0xe1,0xc6,0x12,0x39,0x00,0x10,0xf4,0xc4,0x31,0x30,0x17,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x5c,0x37,0x4c, +0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0xd8,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x02,0x00,0x5e,0xfe,0xed,0x01,0x52,0x04,0x17,0x00,0x13,0x00,0x28,0x00,0x22,0x40,0x11,0x05,0xb0,0x0f,0x10,0x28,0x20,0xb2,0x29,0x00,0xaf,0x0a,0x17,0x23,0x14, +0x23,0xaf,0x1d,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xe1,0x00,0x10,0xf4,0xc4,0x3f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x03,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x01,0x52,0x12,0x1e,0x29,0x18,0x17,0x28,0x1e,0x11, +0x11,0x1e,0x28,0x17,0x16,0x29,0x20,0x12,0xf4,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x03,0xa8,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x28,0x1e,0x12,0x11,0x1e,0x29,0xfb,0x69,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x02,0x00,0x83, +0xff,0xee,0x03,0x31,0x05,0xb2,0x00,0x20,0x00,0x34,0x00,0x32,0x40,0x0b,0x19,0x17,0x95,0x1c,0x04,0x09,0x30,0xb0,0x26,0x13,0x08,0xb8,0x01,0x03,0x40,0x0c,0x09,0x21,0xaf,0x2b,0x2b,0x19,0x00,0x84,0x12,0x12,0x36,0x19,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0xd4,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x14, +0x07,0x0e,0x03,0x15,0x15,0x23,0x35,0x34,0x3e,0x02,0x37,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x03,0x31,0xcf,0x31,0x44,0x2a,0x12,0x70,0x0f,0x25,0x3d,0x2d,0x57,0x59,0x21,0x3d,0x55,0x34,0xa9,0x7c,0x99,0xa5, +0x53,0x88,0x60,0x35,0xfe,0xc1,0x11,0x1e,0x28,0x18,0x17,0x29,0x1e,0x11,0x12,0x1e,0x28,0x17,0x17,0x28,0x1e,0x12,0x04,0x5a,0xce,0xaf,0x2a,0x41,0x39,0x3a,0x22,0x4a,0x4e,0x31,0x52,0x4a,0x48,0x29,0x4e,0x8f,0x50,0x31,0x51,0x39,0x20,0x85,0xb0,0x60,0x32,0x5a,0x7f,0xfb,0xb5,0x16,0x28,0x1e,0x12,0x11,0x1e,0x28,0x17,0x17,0x28,0x1e, +0x12,0x12,0x1e,0x28,0x00,0x02,0x00,0x6f,0x03,0xd0,0x02,0x9c,0x05,0xb2,0x00,0x14,0x00,0x29,0x00,0x32,0x40,0x18,0x21,0x0c,0x29,0x14,0x04,0x18,0x1e,0x24,0x03,0x09,0x0f,0x15,0x15,0x1e,0xaf,0x24,0x24,0x2b,0x11,0x00,0x00,0x09,0xaf,0x0f,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x00, +0x3f,0x33,0xc4,0x32,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x05,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x01,0x61,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x01,0x6b, +0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x05,0x77,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x02,0x00,0x68,0x03,0xd0,0x02,0x95,0x05,0xb2, +0x00,0x14,0x00,0x29,0x00,0x2c,0x40,0x15,0x14,0x29,0x0c,0x21,0x04,0x03,0x0f,0x09,0x18,0x24,0x1e,0x00,0x0f,0xaf,0x09,0x09,0x2b,0x15,0x24,0xaf,0x1e,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xe1,0xc6,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x3f,0x33,0xc4,0x32,0x31,0x30,0x01,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32, +0x16,0x15,0x14,0x0e,0x02,0x07,0x25,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x01,0xa3,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0xfe,0x95,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x04,0x0b,0x2d,0x5f,0x2a,0x18, +0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x01,0x00,0x6f,0x03,0xd0,0x01,0x61,0x05,0xb2,0x00,0x14,0x00,0x19,0x40,0x0b,0x0c,0x14,0x04,0x03,0x09,0x0f,0x00,0x00,0x09,0xaf,0x0f,0x2f,0xf1,0xc2, +0x2f,0x11,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x01,0x61,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x05,0x77,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44, +0x1e,0x00,0x00,0x01,0x00,0x74,0x03,0xd0,0x01,0x66,0x05,0xb2,0x00,0x14,0x00,0x15,0x40,0x09,0x14,0x0c,0x04,0x03,0x0f,0x00,0x0f,0xaf,0x09,0x2f,0xe1,0xc6,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x74,0x37,0x4c,0x14,0x1a,0x28,0x1a, +0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x04,0x0b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x01,0x00,0x62,0xfe,0xed,0x01,0x4e,0x00,0xcf,0x00,0x16,0x00,0x17,0x40,0x0a,0x16,0x0e,0xb2,0x17,0x05,0x11,0x00,0x11,0xaf,0x0b,0x2f,0xe1,0xc6,0x12,0x39,0x00,0x10,0xf4,0xc4,0x31, +0x30,0x17,0x3e,0x03,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x62,0x1b,0x31,0x24,0x15,0x19,0x1d,0x28,0x1a,0x2f,0x30,0x3b,0x45,0x20,0x35,0x46,0x27,0xde,0x16,0x31,0x31,0x2f,0x15,0x19,0x13,0x0d,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x02,0x00,0x68, +0xfe,0xed,0x02,0x95,0x00,0xcf,0x00,0x14,0x00,0x29,0x00,0x2a,0x40,0x14,0x14,0x0c,0x29,0x21,0xb2,0x2a,0x18,0x24,0x1e,0x03,0x0f,0xaf,0x09,0x09,0x09,0x2b,0x15,0x24,0xaf,0x1e,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0x2f,0xe1,0x39,0x11,0x12,0x39,0x00,0x10,0xf4,0xc4,0x33,0x32,0x31,0x30,0x05,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35, +0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x25,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x01,0xa3,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0xfe,0x95,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0xd8,0x2d, +0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0xff,0xff,0x00,0x60,0xff,0xe8,0x05,0x76,0x05,0xf6,0x00,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x0e,0x10,0x03,0x70,0x06,0x63,0x00,0x14,0x40,0x0b, +0x02,0x27,0x9d,0x27,0x27,0x10,0x10,0x25,0x02,0x2a,0x01,0x00,0x3f,0x35,0x01,0x2b,0x11,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0xa4,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x0e,0x10,0x01,0x54,0x06,0x11,0x00,0x16,0xb1,0x01,0x15,0xb8,0xff,0xb6,0xb7,0x15,0x15,0x05,0x05,0x25,0x01,0x12,0x04,0x00,0x3f,0x35,0x01,0x2b, +0x11,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0x8b,0x05,0xf6,0x00,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x0e,0x10,0x00,0x85,0x06,0x63,0x00,0x14,0x40,0x0b,0x01,0x0d,0x78,0x0d,0x0d,0x03,0x03,0x25,0x01,0x10,0x01,0x00,0x3f,0x35,0x01,0x2b,0x11,0x35,0xff,0xff,0xff,0xe4,0x00,0x00,0x04,0x4a,0x05,0xb2,0x00,0x26,0x00,0x51,0x52,0x00, +0x01,0x07,0x0d,0xfc,0xff,0x70,0x00,0x00,0x00,0x16,0xb1,0x01,0x1f,0xb8,0xff,0x62,0xb7,0x1f,0x1f,0x0a,0x0a,0x25,0x01,0x1f,0x04,0x00,0x3f,0x35,0x01,0x2b,0x11,0x35,0xff,0xff,0x00,0x5e,0xfe,0x05,0x04,0xec,0x05,0xb2,0x02,0x26,0x00,0x2a,0x00,0x00,0x00,0x07,0x0e,0x10,0x01,0x65,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10, +0x06,0x3c,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x0f,0x0e,0x10,0x03,0xe5,0x04,0x41,0xc0,0x00,0x00,0x15,0x40,0x0c,0x02,0x32,0x11,0x26,0x02,0x35,0x0b,0x35,0x2f,0x10,0x18,0x25,0x01,0x2b,0x11,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x05,0x04,0xa2,0x05,0x9a,0x02,0x26,0x00,0x2e,0x00,0x00,0x00,0x07,0x0e,0x10,0x00,0xd6, +0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x05,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4e,0x00,0x00,0x00,0x07,0x0e,0x10,0x00,0x87,0x00,0x00,0xff,0xff,0x00,0xbc,0xfe,0x05,0x05,0x40,0x05,0x9a,0x02,0x26,0x00,0x31,0x00,0x00,0x00,0x07,0x0e,0x10,0x01,0x45,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x05,0x03,0xf8,0x04,0x18,0x02,0x26,0x00,0x51, +0x00,0x00,0x00,0x07,0x0e,0x10,0x00,0xc5,0x00,0x00,0xff,0xff,0x00,0xbc,0xfe,0x05,0x04,0xc0,0x05,0x9a,0x02,0x26,0x00,0x35,0x00,0x00,0x00,0x07,0x0e,0x10,0x00,0xf9,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x05,0x02,0xbc,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x00,0x06,0x0e,0x10,0xed,0x00,0xff,0xff,0x00,0x2b,0xff,0xea,0x03,0x7f, +0x05,0xf6,0x00,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x0e,0x10,0x01,0x79,0x06,0x63,0x00,0x16,0xb1,0x01,0x1e,0xb8,0x01,0x37,0xb7,0x1e,0x1e,0x0a,0x0a,0x25,0x01,0x21,0x01,0x00,0x3f,0x35,0x01,0x2b,0x11,0x35,0xff,0xff,0x00,0x79,0xfe,0x05,0x03,0xde,0x05,0xb2,0x02,0x26,0x00,0x36,0x00,0x00,0x00,0x06,0x0e,0x10,0x7f,0x00,0xff,0xff, +0x00,0x68,0xfe,0x05,0x03,0x0f,0x04,0x18,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x06,0x0e,0x10,0x14,0x00,0xff,0xff,0x00,0x5e,0xfe,0xed,0x01,0x52,0x04,0x17,0x02,0x06,0x0d,0xf7,0x00,0x00,0x00,0x01,0x00,0x74,0x03,0xd0,0x01,0x66,0x05,0xb2,0x00,0x14,0x00,0x19,0x40,0x0b,0x00,0x08,0x04,0x11,0x0b,0x05,0x14,0x14,0x0b,0xaf,0x05,0x2f, +0xf1,0xc2,0x2f,0x11,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x01,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x36,0x27,0x46,0x35,0x20,0x44,0x38,0x33,0x30,0x1a,0x28,0x1a,0x14,0x4c,0x37,0x03,0xd0,0x1e,0x44,0x4f,0x5d,0x37,0x4e,0x4f,0x39,0x26,0x22,0x26,0x11,0x0c,0x15,0x18,0x2a, +0x5f,0x2d,0x00,0x01,0x01,0x3d,0xfe,0x05,0x02,0x06,0xff,0x93,0x00,0x12,0x00,0x12,0xb6,0x12,0x0c,0x03,0x0f,0x00,0x0f,0x09,0x2f,0xc1,0xc4,0x12,0x39,0x00,0x2f,0xc4,0x31,0x30,0x01,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x01,0x50,0x31,0x21,0x12,0x17,0x24,0x18,0x2b,0x2e,0x33, +0x3d,0x45,0x46,0xfe,0x3a,0x28,0x41,0x17,0x16,0x12,0x0b,0x10,0x22,0x1e,0x22,0x34,0x48,0x45,0x4e,0x7c,0x37,0x00,0xff,0xff,0x00,0x29,0xfe,0x05,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x00,0x06,0x0e,0x10,0x7a,0x00,0xff,0xff,0x00,0x2b,0xfe,0x05,0x02,0x81,0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x00,0x06,0x0e,0x10, +0xe5,0x00,0x00,0x02,0xff,0xba,0xff,0xab,0x05,0x1f,0x06,0xee,0x00,0x0a,0x00,0x3d,0x00,0x60,0x40,0x25,0x3b,0x36,0x14,0x0f,0x36,0x0f,0x36,0x0f,0x3f,0x25,0x31,0x28,0x11,0x38,0x38,0x2d,0x1f,0x19,0x0d,0x33,0x0d,0x00,0x01,0x01,0x02,0x0a,0x2d,0x0d,0x26,0x0a,0x0a,0x26,0x0d,0x2d,0x04,0x04,0x05,0xb8,0x04,0xff,0x40,0x09,0x2f,0x08, +0x01,0x08,0x09,0x2f,0x04,0x01,0x04,0x00,0x2f,0x5d,0x33,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xcd,0x32,0x11,0x33,0x11,0x33,0x10,0xcd,0x32,0x11,0x33,0x11,0x33,0x01,0x2f,0xcd,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x10,0xcd,0x31,0x30,0x01,0x07,0x27,0x01,0x07,0x01,0x23,0x35,0x21,0x01,0x01,0x03,0x16,0x33, +0x32,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x07,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x16,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x05,0x1f,0x2a,0xa9,0xfe,0x6d,0x54,0xfe,0x0d,0xb8,0x01,0x00,0x01,0xce,0x01,0x61,0x93,0x17, +0x12,0x4e,0x11,0x64,0x12,0x15,0x28,0x3a,0x26,0x17,0x32,0x1c,0x11,0x36,0x16,0x14,0x10,0x01,0x06,0x07,0x64,0x08,0x10,0x1a,0x12,0x67,0x0a,0x10,0x07,0x12,0x0e,0x23,0x23,0x11,0x63,0x10,0x06,0x03,0x2c,0x65,0x4b,0xfc,0xa0,0x07,0x06,0xa7,0x9c,0xf9,0xc5,0x03,0x08,0x02,0x1c,0x05,0x50,0x29,0x24,0x2f,0x2f,0x24,0x40,0x31,0x1c,0x0d, +0x10,0x0f,0x0d,0x03,0x01,0x32,0x6b,0x4a,0x7a,0x77,0x47,0x78,0x74,0x7a,0x49,0x2a,0x4a,0x24,0x05,0x2c,0x25,0x25,0x27,0x26,0x2e,0x12,0x24,0x00,0x00,0x02,0xff,0xba,0xff,0xab,0x05,0x1f,0x06,0xee,0x00,0x0a,0x00,0x3a,0x00,0x57,0xb3,0x09,0x10,0x10,0x35,0xb8,0x05,0x0d,0xb6,0x2a,0x20,0x20,0x2a,0x30,0x2f,0x1b,0xb8,0x04,0xfd,0x40, +0x11,0x15,0x00,0x01,0x01,0x02,0x0a,0x25,0x0b,0x2f,0x03,0x08,0x15,0x0a,0x15,0x0a,0x04,0x05,0xb8,0x04,0xff,0x40,0x09,0x2f,0x08,0x01,0x08,0x09,0x2f,0x04,0x01,0x04,0x00,0x2f,0x5d,0x33,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x10,0xcd,0x32,0x11,0x33,0x10,0xed,0x10,0xcd,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f, +0x39,0x31,0x30,0x01,0x07,0x27,0x01,0x07,0x01,0x23,0x35,0x21,0x01,0x01,0x03,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x05,0x1f,0x2a,0xa9,0xfe,0x6d,0x54,0xfe,0x0d,0xb8,0x01,0x00,0x01, +0xce,0x01,0x61,0xbf,0x38,0x3f,0x20,0x07,0x12,0x1e,0x25,0x12,0x24,0x33,0x1e,0x41,0x42,0x23,0x45,0x36,0x22,0x09,0x1b,0x2f,0x26,0x24,0x2d,0x19,0x0a,0x15,0x36,0x5d,0x48,0x33,0x3b,0x1e,0x08,0x11,0x26,0x3f,0x2e,0x03,0x2c,0x65,0x4b,0xfc,0xa0,0x07,0x06,0xa7,0x9c,0xf9,0xc5,0x03,0x08,0x01,0xa7,0x34,0x4a,0x32,0x1c,0x06,0x0d,0x0f, +0x08,0x03,0x07,0x08,0x67,0x14,0x0d,0x1c,0x2f,0x22,0x0f,0x2c,0x36,0x3f,0x23,0x10,0x21,0x21,0x21,0x11,0x19,0x33,0x31,0x2f,0x16,0x6c,0x0c,0x16,0x14,0x11,0x06,0x0a,0x14,0x18,0x20,0x17,0x00,0x02,0xff,0xba,0xff,0xab,0x05,0x1f,0x06,0xee,0x00,0x0a,0x00,0x30,0x00,0x4f,0xb1,0x09,0x1d,0xbb,0x05,0x0b,0x00,0x1e,0x00,0x14,0x04,0xfd, +0x40,0x14,0x27,0x0b,0x0b,0x27,0x00,0x01,0x01,0x02,0x0a,0x2c,0x08,0x0f,0x1d,0x0a,0x0a,0x1d,0x0f,0x03,0x04,0x05,0xb8,0x04,0xff,0x40,0x09,0x2f,0x08,0x01,0x08,0x09,0x2f,0x04,0x01,0x04,0x00,0x2f,0x5d,0x33,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xcd,0x32,0x11,0x33,0x2f,0x33,0x2f,0x10,0xed,0x01,0x2f,0xed, +0x39,0x31,0x30,0x01,0x07,0x27,0x01,0x07,0x01,0x23,0x35,0x21,0x01,0x01,0x13,0x06,0x06,0x07,0x23,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x05,0x1f,0x2a,0xa9,0xfe,0x6d,0x54,0xfe,0x0d,0xb8,0x01,0x00,0x01,0xce,0x01,0x61,0x23, +0x22,0x34,0x10,0x76,0x07,0x16,0x1c,0x24,0x14,0x13,0x11,0x0a,0x0b,0x0a,0x64,0x0c,0x0f,0x0c,0x4a,0x34,0x21,0x39,0x2e,0x22,0x0a,0x02,0x0d,0x1a,0x11,0x03,0x2c,0x65,0x4b,0xfc,0xa0,0x07,0x06,0xa7,0x9c,0xf9,0xc5,0x03,0x08,0x02,0xb5,0x35,0x8b,0x47,0x1b,0x37,0x2b,0x1c,0x17,0x12,0x0f,0x2b,0x4f,0x78,0x5b,0x7a,0x77,0x5e,0x82,0x5a, +0x39,0x15,0x36,0x3e,0x16,0x25,0x31,0x19,0x25,0x3b,0x1f,0x00,0x00,0x02,0x00,0x1e,0xfe,0xa9,0x06,0xd2,0x03,0x61,0x00,0x3b,0x00,0x4d,0x00,0x5d,0xb4,0x38,0x25,0x16,0x10,0x06,0xb8,0x05,0x0a,0xb4,0x25,0x49,0x49,0x25,0x41,0xb8,0x05,0x0a,0xb7,0x2d,0x25,0x2d,0x25,0x2d,0x4f,0x13,0x19,0xb8,0x05,0x0a,0xb3,0x10,0x25,0x05,0x28,0xb8, +0x04,0xfb,0xb5,0x38,0x2f,0x46,0x01,0x46,0x3c,0xb8,0x04,0xfb,0xb4,0x2f,0x32,0x01,0x32,0x1e,0xb9,0x04,0xfb,0x00,0x0b,0x00,0x2f,0xed,0x2f,0x5d,0xed,0x2f,0x5d,0x33,0xed,0x32,0x39,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x2f,0x10,0xed,0x11,0x39,0x11,0x39,0x31,0x30,0x01,0x0e,0x03,0x07,0x15,0x14,0x0e, +0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05,0x35,0x25,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x37,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x25,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x2e,0x03,0x06,0xd2,0x0f,0x2c,0x39,0x43,0x25, +0x49,0x99,0xed,0xa3,0xa1,0xdb,0x87,0x3b,0x09,0x08,0xfe,0xc7,0x01,0xeb,0x13,0x13,0x2b,0x64,0xa5,0x7a,0x62,0x8f,0x64,0x3e,0x24,0x0e,0x02,0x2d,0x57,0x28,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x23,0x30,0x0c,0x33,0x5a,0x23,0xfd,0xf3,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x25,0x4d,0x27,0x07,0x27,0x36,0x43, +0x01,0x7c,0x0d,0x20,0x23,0x25,0x11,0x04,0x95,0xdc,0x91,0x47,0x41,0x7c,0xb7,0x77,0x31,0x6b,0x3a,0x3a,0x72,0x61,0x64,0xa8,0x48,0x5f,0x84,0x54,0x26,0x1a,0x30,0x42,0x50,0x5b,0x30,0x0e,0x0f,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x38,0x91,0x52,0x1c,0x3b,0x1a,0xa6,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0e,0x0d, +0x3a,0x7a,0x63,0x40,0x00,0x04,0x00,0x7c,0x00,0x00,0x05,0x61,0x05,0x58,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x5e,0xb4,0x0d,0x0e,0x0e,0x00,0x09,0xbb,0x05,0x0c,0x00,0x08,0x00,0x05,0x05,0x0c,0x40,0x0c,0x04,0x0c,0x0f,0x0f,0x04,0x00,0x08,0x04,0x08,0x04,0x11,0x01,0xb8,0x05,0x0c,0xb5,0x00,0x2f,0x0d,0x01,0x0d,0x0c,0xbb, +0x04,0xe6,0x00,0x0a,0x00,0x06,0x04,0xfe,0xb5,0x08,0x2f,0x05,0x01,0x05,0x02,0xb9,0x04,0xfe,0x00,0x01,0x00,0x2f,0xed,0x2f,0x5d,0x33,0xed,0x32,0x3f,0x2f,0x5d,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x39,0x11,0x33,0x31,0x30,0x13,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x25,0x33, +0x15,0x23,0x05,0x01,0x33,0x01,0xc0,0xf7,0xf7,0x02,0x36,0xf7,0xf7,0x01,0x74,0xf7,0xf7,0xfc,0x12,0x03,0x0d,0x8f,0xfc,0xf3,0x04,0xfd,0xf7,0xfd,0x4c,0xf7,0xf7,0xf7,0x5b,0x05,0x58,0xfa,0xa8,0x00,0x00,0x05,0x00,0x7c,0x00,0x00,0x06,0xd5,0x05,0x58,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x6d,0xb4,0x01,0x02,0x02, +0x04,0x11,0xbe,0x05,0x0c,0x00,0x10,0x00,0x0d,0x05,0x0c,0x00,0x0c,0x00,0x09,0x05,0x0c,0x40,0x0f,0x08,0x00,0x03,0x03,0x08,0x04,0x10,0x0c,0x08,0x08,0x0c,0x10,0x03,0x15,0x05,0xb8,0x05,0x0c,0xb3,0x04,0x12,0x0e,0x0a,0xb8,0x04,0xfe,0xb6,0x10,0x0c,0x2f,0x09,0x01,0x09,0x06,0xb8,0x04,0xfe,0xb5,0x05,0x2f,0x01,0x01,0x01,0x00,0xb8, +0x04,0xe6,0x00,0x3f,0x2f,0x5d,0x2f,0xed,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x39,0x11,0x33,0x31,0x30,0x33,0x01,0x33,0x01,0x03,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x7c,0x03,0x0d, +0x8f,0xfc,0xf3,0x4b,0xf7,0xf7,0x02,0x36,0xf7,0xf7,0x01,0x74,0xf7,0xf7,0x01,0x74,0xf7,0xf7,0x05,0x58,0xfa,0xa8,0x04,0xfd,0xf7,0xfd,0x4c,0xf7,0xf7,0xf7,0xf7,0xf7,0x00,0x01,0x00,0x76,0xfe,0xf8,0x01,0x8b,0x00,0xe4,0x00,0x03,0x00,0x10,0xb7,0x2f,0x01,0x01,0x01,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0x5d,0x31,0x30,0x25,0x13, +0x23,0x03,0x01,0x16,0x75,0x75,0xa0,0xe4,0xfe,0x14,0x01,0xec,0x00,0x02,0xff,0xc8,0x06,0x1d,0x02,0x29,0x08,0xde,0x00,0x2b,0x00,0x2f,0x00,0x2c,0xbc,0x00,0x2f,0x05,0x0d,0x00,0x2c,0x00,0x13,0x05,0x0d,0x40,0x09,0x16,0x26,0x09,0x2d,0x14,0x0e,0x1e,0x2c,0x29,0xb9,0x05,0x01,0x00,0x04,0x00,0x2f,0xfd,0xce,0xde,0xcd,0x2f,0x2f,0x01, +0x2f,0xcd,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x37,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x07,0x06,0x06,0x23,0x22,0x22,0x06,0x22,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x11,0x33,0x11,0x02,0x29,0x52,0xab,0x43,0x46,0x6c,0x49,0x26,0x25,0x35, +0x3b,0x16,0x1d,0x10,0x0d,0x0d,0x58,0x10,0x1d,0x26,0x15,0x06,0x0c,0x06,0x03,0x0e,0x0f,0x0e,0x04,0x18,0x26,0x60,0x69,0x63,0x9b,0x7f,0x58,0x06,0x8f,0x61,0x08,0x09,0x0c,0x1e,0x33,0x28,0x29,0x35,0x1f,0x0d,0x08,0x07,0x17,0x16,0x01,0x76,0xfe,0x7e,0x26,0x34,0x21,0x11,0x03,0x01,0x01,0x01,0x0f,0x12,0x19,0x10,0x09,0x48,0x02,0x0d, +0xfd,0xf3,0x00,0x02,0x00,0x43,0x06,0x1f,0x01,0x6c,0x08,0xbb,0x00,0x16,0x00,0x1a,0x00,0x23,0xb2,0x17,0x17,0x0e,0xbb,0x05,0x0d,0x00,0x07,0x00,0x19,0x04,0xfd,0xb2,0x18,0x0a,0x02,0xb9,0x04,0xfd,0x00,0x13,0x00,0x2f,0xfd,0xd6,0xd6,0xed,0x01,0x2f,0xed,0x33,0x2f,0x31,0x30,0x13,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33, +0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x13,0x23,0x35,0x33,0x43,0x36,0x28,0x21,0x2c,0x1a,0x0b,0x1d,0x13,0x5a,0x17,0x18,0x1f,0x38,0x4b,0x2b,0x17,0x2b,0x1a,0xda,0x57,0x57,0x06,0x90,0x11,0x17,0x28,0x38,0x20,0x3f,0x74,0x37,0x39,0x7f,0x34,0x3c,0x5b,0x3e,0x20,0x09,0x0a,0x02,0x33,0x56,0x00,0x01,0x00,0x37,0x06,0x7c, +0x01,0xcf,0x06,0xca,0x00,0x03,0x00,0x0c,0xba,0x00,0x02,0x05,0x00,0x00,0x01,0x00,0x2f,0xed,0x31,0x30,0x13,0x21,0x15,0x21,0x37,0x01,0x98,0xfe,0x68,0x06,0xca,0x4e,0x00,0x02,0x00,0x0d,0x06,0x5c,0x01,0xb5,0x07,0xe2,0x00,0x23,0x00,0x2f,0x00,0x36,0xb2,0x16,0x09,0x13,0xb8,0x05,0x0e,0xb4,0x24,0x19,0x19,0x24,0x2a,0xb8,0x05,0x0e, +0x40,0x0c,0x09,0x16,0x19,0x19,0x20,0x0e,0x27,0x2d,0x03,0x03,0x20,0x1a,0x00,0x2f,0x2e,0xc9,0x2f,0x32,0xd4,0xcd,0x11,0x33,0x2f,0x39,0x01,0x2f,0xed,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x13,0x16,0x16,0x33,0x32,0x32,0x37,0x35,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26, +0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0x1e,0x21,0x41,0x26,0x01,0x09,0x06,0x2d,0x1b,0x2b,0x38,0x1d,0x1c,0x34,0x28,0x19,0x3f,0x33,0x05,0x19,0x06,0x2f,0x14,0x23,0x10,0x15,0x2b,0x11,0x28,0x48,0x23,0x01,0x5d,0x2d,0x1b,0x1d,0x30,0x1f,0x17,0x2a,0x35,0x06,0xea,0x08, +0x08,0x01,0x02,0x3c,0x3b,0x22,0x35,0x24,0x13,0x12,0x24,0x36,0x24,0x3b,0x4f,0x17,0x05,0x16,0x05,0x35,0x0f,0x1f,0x0f,0x05,0x03,0x08,0x07,0xb0,0x23,0x22,0x22,0x20,0x1a,0x36,0x19,0x0e,0x32,0x00,0x00,0x01,0x00,0x37,0xff,0x23,0x01,0xcf,0xff,0x71,0x00,0x03,0x00,0x0c,0xba,0x00,0x02,0x05,0x00,0x00,0x01,0x00,0x2f,0xed,0x31,0x30, +0x17,0x21,0x15,0x21,0x37,0x01,0x98,0xfe,0x68,0x8f,0x4e,0x00,0xff,0xff,0x00,0x70,0xfe,0xf8,0x01,0x8b,0x03,0x11,0x02,0x26,0x0e,0x19,0x00,0x00,0x00,0x07,0x00,0x11,0x00,0x00,0x02,0x46,0xff,0xff,0x00,0x9a,0xfe,0x63,0x05,0x91,0x04,0x15,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0f,0x5b,0x02,0x01,0x00,0x64,0xff,0xff,0x00,0x9a, +0xfe,0x0e,0x06,0xae,0x02,0x13,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x0f,0x5b,0x02,0x01,0x00,0x0f,0xff,0xff,0xff,0xba,0xff,0x05,0x01,0xf2,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x5b,0x00,0x1a,0x01,0x06,0xff,0xff,0xff,0xba,0xff,0x05,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x5b, +0x00,0x1a,0x01,0x06,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x3e,0x02,0x26,0x0e,0x5e,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0xe4,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0x3e,0x02,0x26,0x09,0x3b,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0x72,0xfd,0x55, +0x00,0x0a,0xb4,0x01,0x2f,0x36,0x01,0x36,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab,0xff,0xff,0x00,0xab, +0xff,0xea,0x07,0x59,0x04,0xb2,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x05,0xca,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x53, +0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xca,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x9c,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0xfe,0xab,0x00,0x01,0xff,0xba,0xff,0xf2,0x04,0xad,0x03,0x0f,0x00,0x35, +0x00,0x41,0xb1,0x0d,0x24,0xb8,0x05,0x0b,0xb4,0x30,0x30,0x37,0x15,0x2a,0xb8,0x05,0x03,0x40,0x09,0x30,0x24,0x24,0x21,0x0c,0x20,0x04,0x00,0x12,0xb8,0x04,0xff,0xb5,0x2f,0x19,0x01,0x19,0x29,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x5d,0xed,0x12,0x17,0x39,0x11,0x33,0x3f,0x01,0x2f,0x12,0x39,0x2f,0xed, +0x39,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x06,0x07,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x23,0x23,0x23,0x3b,0x7b,0xe0,0xcf,0xbf,0x5a,0x39,0x60,0x68,0x7c,0x57,0x4e,0x7e,0x33, +0x37,0x84,0x4e,0x50,0x7c,0x6a,0x61,0x69,0x7a,0x4e,0x20,0x20,0x50,0x31,0x01,0x14,0x35,0x5e,0x4a,0x14,0x62,0x7d,0x4a,0x1e,0x02,0x48,0xab,0xc8,0xe3,0x80,0x0e,0x34,0x20,0x20,0x33,0x37,0x59,0x70,0x39,0x05,0x1b,0x35,0x2b,0x1b,0x14,0x10,0x9d,0x12,0x17,0x1d,0x2b,0x32,0x2c,0x1e,0x01,0xc8,0x08,0x29,0x1d,0x2b,0x3b,0x25,0x10,0xa7, +0x29,0x46,0x5d,0x35,0x2b,0x5b,0x4b,0x30,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x04,0x61,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x03,0xb1,0x00,0x01,0x00,0x52,0xff,0xea,0x04,0x02,0x03,0xba,0x00,0x24,0x00,0x29,0xb1,0x1b,0x0f,0xb8,0x05,0x0a,0xb5,0x06,0x1c,0x21,0x14,0x14,0x03,0xbd,0x04,0xfb,0x00,0x0b, +0x00,0x21,0x05,0x03,0x00,0x15,0x05,0x03,0x00,0x3f,0x3f,0xc4,0xed,0x32,0x2f,0x11,0x39,0x01,0x2f,0xed,0x39,0x31,0x30,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x12,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x52,0x61,0xa6,0x39,0x92,0x7f,0x1c,0x31,0x40,0x24, +0xa6,0x38,0x4d,0x1d,0x07,0x18,0x2d,0x46,0x36,0x16,0x21,0x3f,0x38,0x2d,0x0f,0x05,0x1a,0x51,0x64,0x75,0x3e,0x3a,0x9a,0x4b,0xa9,0x0b,0x0b,0x47,0x4e,0x2e,0x92,0xb0,0xc3,0x5f,0xa7,0xfe,0xe3,0x80,0x20,0x4d,0x43,0x2d,0xa7,0x10,0x23,0x39,0x29,0x2d,0x3c,0x25,0x0f,0x0c,0x0a,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x05,0x5d, +0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x1d,0x04,0xad,0x00,0x01,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x03,0x0f,0x00,0x58,0x00,0x83,0xb1,0x13,0x08,0xb8,0x05,0x0a,0xb2,0x05,0x1e,0x54,0xb8,0x05,0x0a,0xb3,0x51,0x27,0x27,0x49,0xb8,0x05,0x0a,0x40,0x0a,0x42,0x05,0x51,0x42,0x42,0x51,0x05,0x03,0x5a,0x38,0xb8,0x05,0x0a, +0x40,0x0e,0x31,0x2f,0x53,0x01,0x53,0x2f,0x46,0x01,0x46,0x2f,0x35,0x01,0x35,0x3d,0xb8,0x04,0xfb,0xb6,0x1f,0x2c,0x2f,0x2c,0x02,0x2c,0x4c,0xba,0x04,0xfb,0x00,0x23,0x05,0x03,0xb6,0x26,0x12,0x1d,0x03,0x06,0x0d,0x00,0xba,0x04,0xfb,0x00,0x18,0x05,0x03,0xb3,0x2f,0x06,0x01,0x06,0x00,0x2f,0x5d,0x3f,0xed,0x32,0x12,0x17,0x39,0x3f, +0xed,0x2f,0x5d,0xed,0x2f,0x5d,0x2f,0x5d,0x2f,0x5d,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x2f,0x10,0xed,0x39,0x10,0xed,0x39,0x31,0x30,0x25,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x07, +0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x07,0x57,0x26,0x40,0x2e,0x19,0x9c,0x0c,0x27,0x49,0x3e,0x16,0x5d,0x70,0x1f,0x06,0x17,0x3a,0x42,0x47,0x24,0x2c, +0x4f,0x42,0x34,0x12,0x04,0x19,0x3f,0x44,0x46,0x1f,0x42,0x52,0x19,0x05,0x03,0x3d,0x80,0xcc,0x91,0x8a,0xb9,0x70,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x93,0x5d,0x2b,0x12,0x10,0x9b,0x08,0x0c,0x05,0x06,0x58,0x5e,0x22,0x3f,0x30,0x1d,0x9c,0x0b,0x27,0x48,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x8f,0x43,0x62, +0x41,0x1f,0xa7,0x36,0x39,0x21,0x2a,0x1a,0x0a,0x0d,0x1c,0x2f,0x23,0x23,0x2f,0x1d,0x0c,0x26,0x20,0x01,0x84,0xd3,0x93,0x4e,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x53,0xbb,0x78,0x3f,0x70,0x38,0x42,0x3f,0x10,0x2a,0x48,0x38,0x01,0x0b,0xc6,0x43,0x60,0x3e,0x1e,0x00,0x00,0x01, +0xff,0xba,0xff,0xf2,0x06,0xae,0x03,0x0f,0x00,0x4d,0x00,0x68,0xb5,0x27,0x39,0x1e,0x46,0x13,0x08,0xbe,0x05,0x0a,0x00,0x05,0x00,0x49,0x05,0x0a,0x00,0x46,0x00,0x3c,0x05,0x0a,0x40,0x17,0x39,0x48,0x2f,0x3a,0x01,0x3a,0x26,0x1d,0x06,0x13,0x18,0x12,0x12,0x06,0x18,0x41,0x34,0x34,0x33,0x33,0x0d,0x0d,0x00,0xb8,0x04,0xfb,0xb3,0x2c, +0x23,0x0e,0x18,0xb8,0x05,0x03,0xb3,0x2f,0x06,0x01,0x06,0x00,0x2f,0x5d,0x3f,0x33,0x33,0x33,0xed,0x32,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x39,0x2f,0x5d,0x33,0x01,0x2f,0xed,0xd4,0xed,0xd4,0xed,0x39,0x12,0x39,0x11,0x39,0x31,0x30,0x25,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33, +0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x04,0xab,0x26,0x40,0x2e,0x19,0x9c,0x0c,0x27,0x49,0x3e, +0x16,0x5d,0x70,0x1f,0x06,0x17,0x3a,0x42,0x47,0x24,0x2c,0x4f,0x42,0x34,0x12,0x04,0x1a,0x42,0x47,0x48,0x21,0x64,0x77,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0x0b,0x24,0x44,0x39,0x24,0x43,0x33,0x1f,0x9c,0x0b,0x27,0x48,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x8f,0x43,0x62, +0x41,0x1f,0xa7,0x36,0x39,0x21,0x2a,0x1a,0x0a,0x0d,0x1c,0x2f,0x23,0x23,0x2f,0x1d,0x0c,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0x0b,0xc9,0x41,0x5f,0x3e,0x1e,0x10,0x2a,0x48,0x38,0x01,0x0b,0xc6,0x43,0x60,0x3e,0x1e,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x05,0x1f,0x02,0x26,0x0e,0x31, +0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0x50,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x05,0x1f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xa4,0x03,0x57,0x00,0x02,0x00,0x9b,0xfd,0xff,0x0a,0xb0,0x03,0x3c,0x00,0x4b,0x00,0x5f,0x00,0x7b,0xbf,0x00,0x26,0x05,0x0a,0x00,0x1f,0x00,0x5d,0x05,0x0a,0x00,0x2b,0x00, +0x37,0x05,0x0a,0x40,0x0a,0x51,0x2b,0x51,0x1f,0x51,0x1f,0x51,0x0e,0x3d,0x15,0xb8,0x05,0x0a,0x40,0x0a,0x0e,0x5d,0x5d,0x4c,0x4c,0x3c,0x3c,0x42,0x04,0x2b,0xbd,0x04,0xfb,0x00,0x3d,0x00,0x47,0x05,0x03,0x00,0x56,0x04,0xfb,0x40,0x0d,0x2f,0x32,0x01,0x32,0x2f,0x23,0x01,0x23,0x2f,0x12,0x01,0x12,0x1a,0xb8,0x04,0xfb,0xb5,0x1f,0x09, +0x2f,0x09,0x02,0x09,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0x2f,0x5d,0x2f,0x5d,0xed,0x3f,0x33,0xed,0x39,0x39,0x32,0x2f,0x33,0x11,0x33,0x2f,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x26,0x26,0x27,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15, +0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x17,0x3e,0x05,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x25,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x04,0xf8,0x1f,0x28,0x12,0x05,0x03,0x3d,0x81, +0xcd,0x94,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x93,0x5d,0x2b,0x12,0x17,0x9a,0x0b,0x0d,0x08,0x03,0x11,0x21,0x36,0x28,0x18,0x4c,0x67,0x81,0x9a,0xb4,0x65,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x46,0x38,0x16,0x5e,0x74,0x1f,0x06,0x26,0x70,0x89,0x9d,0x54,0xa1,0xe7,0x9d,0x5e,0x02,0x99,0x6b, +0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x85,0x75,0x65,0x52,0x3f,0x15,0x5c,0xee,0x03,0x09,0x1d,0x15,0x01,0x84,0xd3,0x93,0x4e,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x53,0xc5,0x6e,0x3f,0x72,0x3a,0x17,0x2b,0x22,0x15,0x02,0x41,0x96,0x95,0x8b,0x6a,0x40,0x49,0x7d,0xa4,0x5b, +0x3a,0x54,0x36,0x1a,0xa7,0x3a,0x45,0x31,0x36,0x1a,0x06,0x01,0x03,0x08,0x9d,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0x2a,0x49,0x63,0x71,0x7a,0x3c,0x02,0x01,0x00,0x00,0x02,0xff,0xba,0xff,0xea,0x08,0x04,0x03,0x3c,0x00,0x42,0x00,0x54,0x00,0x64,0xbc,0x00,0x52,0x05,0x0a,0x00,0x27,0x00,0x33,0x05,0x0a,0xb7,0x48,0x27,0x48,0x27, +0x48,0x1b,0x39,0x22,0xbd,0x05,0x0a,0x00,0x1b,0x00,0x39,0x05,0x03,0x00,0x4d,0x04,0xfb,0x40,0x13,0x2f,0x2e,0x01,0x2e,0x2f,0x1e,0x01,0x1e,0x52,0x52,0x43,0x43,0x38,0x38,0x27,0x27,0x3e,0x09,0x15,0xbc,0x04,0xfb,0x00,0x0e,0x05,0x03,0x00,0x00,0x05,0x03,0x00,0x3f,0x3f,0xed,0x39,0x39,0x32,0x2f,0x33,0x2f,0x33,0x11,0x33,0x2f,0x2f, +0x5d,0x2f,0x5d,0xed,0x3f,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x22,0x24,0x26,0x26,0x27,0x26,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x17,0x3e,0x05,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03, +0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x27,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x16,0x16,0x04,0xe7,0xb3,0xff,0x00,0xaf,0x69,0x1b,0x23,0x2e,0x14,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x27,0x42,0x30,0x1c,0x0f,0x0d,0x9a,0x0b,0x0d,0x08,0x03,0x11,0x21,0x36,0x28,0x18,0x4c, +0x67,0x81,0x9a,0xb4,0x65,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26,0x70,0x89,0x9d,0x3e,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x6e,0xbc,0x97,0x6e,0x1f,0x5c,0xee,0x16,0x01,0x06,0x0d,0x0c,0x0f,0x31,0x23,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x18,0x27,0x33,0x1b,0x30,0x6e,0x3d,0x3f, +0x72,0x3a,0x17,0x2b,0x22,0x15,0x02,0x41,0x96,0x95,0x8b,0x6a,0x40,0x49,0x7d,0xa4,0x5b,0x3a,0x54,0x36,0x1a,0xa7,0x3a,0x45,0x31,0x36,0x1a,0x06,0xa9,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0x5c,0x92,0xb5,0x5a,0x02,0x01,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x0a,0xb0,0x04,0xb2,0x02,0x26,0x0e,0x35,0x00,0x00,0x00,0x07,0x0f,0x50, +0x05,0xca,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xea,0x08,0x04,0x04,0xb2,0x02,0x26,0x0e,0x36,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x1e,0x04,0x02,0x00,0x02,0x00,0x19,0xff,0xea,0x06,0xae,0x05,0xec,0x00,0x29,0x00,0x3d,0x00,0x4c,0xb9,0x00,0x05,0x05,0x0a,0xb4,0x2f,0x2f,0x0b,0x3b,0x24,0xb8,0x05,0x0a,0x40,0x11,0x21,0x0b,0x25,0x1b, +0x15,0x23,0x15,0x15,0x0b,0x3b,0x3b,0x2a,0x2a,0x1e,0x1e,0x10,0x0a,0xbd,0x04,0xfb,0x00,0x0b,0x05,0x03,0x00,0x34,0x04,0xfb,0x00,0x00,0x00,0x2f,0xed,0x3f,0xed,0x39,0x32,0x2f,0x33,0x11,0x33,0x2f,0x11,0x33,0x2f,0x2f,0x12,0x39,0x39,0x01,0x2f,0x2f,0xed,0x39,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33, +0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x24,0x26,0x26,0x27,0x27,0x16,0x16,0x17,0x36,0x36,0x37,0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x04,0x28,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26,0x70,0x89,0x9d,0x54, +0xb7,0xfe,0xf5,0xc6,0x92,0x3e,0x20,0x2d,0x91,0x58,0x08,0x13,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x27,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5c,0xe9,0x03,0x58,0x4e,0x84,0xae,0x61,0x3a,0x54,0x36,0x1a,0xa7,0x3a,0x45,0x31,0x36,0x1a,0x06,0x03,0x06,0x09,0x06,0xa7,0x06,0x07,0x01,0x16,0x2e, +0x1a,0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0x00,0x02,0xff,0xba,0xff,0xed,0x05,0xf5,0x05,0xec,0x00,0x24,0x00,0x38,0x00,0x43,0xb9,0x00,0x05,0x05,0x0a,0xb4,0x2a,0x2a,0x3a,0x36,0x1f,0xb8,0x05,0x0a,0x40,0x09,0x1c,0x20,0x0c,0x1e, +0x36,0x36,0x25,0x25,0x18,0xb8,0x04,0xff,0xb3,0x11,0x0c,0x0c,0x11,0xbb,0x05,0x03,0x00,0x2f,0x04,0xfb,0x00,0x00,0x00,0x2f,0xed,0x3f,0x33,0x2f,0x10,0xed,0x32,0x11,0x33,0x2f,0x2f,0x12,0x39,0x01,0x2f,0xed,0x39,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x23,0x23,0x22,0x26,0x35, +0x34,0x36,0x33,0x21,0x36,0x36,0x37,0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x04,0x28,0x79,0xae,0x70,0x36,0x2d,0x51,0x71,0x88,0x9a,0x52,0x72,0xc7,0xc6,0xd2,0x7c,0x45,0x23,0x23,0x23,0x23,0x01,0x2e,0x08,0x14,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x27,0x6b,0xa2, +0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x83,0x75,0x63,0x52,0x3e,0x15,0x5b,0xeb,0x03,0x58,0x4f,0x88,0xb5,0x66,0x5d,0x80,0x54,0x2e,0x16,0x04,0x02,0x01,0x02,0x34,0x20,0x20,0x33,0x17,0x2f,0x1a,0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2c,0x4e,0x68,0x77,0x81,0x3f,0x02,0x01, +0x00,0x02,0xff,0xba,0xff,0xed,0x06,0xae,0x05,0xec,0x00,0x2d,0x00,0x41,0x00,0x50,0xb9,0x00,0x05,0x05,0x0a,0xb4,0x33,0x33,0x0b,0x3f,0x28,0xb8,0x05,0x0a,0xb6,0x25,0x0b,0x29,0x15,0x27,0x1a,0x15,0xb8,0x05,0x03,0x40,0x0a,0x3f,0x3f,0x2e,0x2e,0x22,0x22,0x21,0x21,0x10,0x0a,0xbd,0x04,0xff,0x00,0x0b,0x05,0x03,0x00,0x38,0x04,0xfb, +0x00,0x00,0x00,0x2f,0xed,0x3f,0xed,0x39,0x32,0x2f,0x33,0x2f,0x33,0x11,0x33,0x2f,0x3f,0x33,0x2f,0x12,0x39,0x01,0x2f,0x2f,0xed,0x39,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x36,0x36,0x37, +0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x04,0x28,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26,0x6f,0x89,0x9d,0x54,0x72,0xc7,0xc6,0xd2,0x7c,0x45,0x23,0x23,0x23,0x23,0x01,0x2e,0x08,0x14,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4, +0x27,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5b,0xeb,0x03,0x58,0x4e,0x84,0xae,0x61,0x3a,0x54,0x36,0x1a,0xa7,0x3c,0x43,0x30,0x35,0x1a,0x05,0x02,0x01,0x02,0x34,0x20,0x20,0x33,0x17,0x2f,0x1a,0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25, +0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0xff,0xff,0x00,0x19,0xff,0xea,0x06,0xae,0x05,0xec,0x02,0x26,0x0e,0x39,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xe5,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xed,0x05,0xf5,0x05,0xec,0x02,0x26,0x0e,0x3a,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xe5,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xed,0x06,0xae, +0x05,0xec,0x02,0x26,0x0e,0x3b,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xe5,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x06,0xb3,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x51,0x03,0x90,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x06,0xb3,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x51,0x03,0x90,0x06,0x03, +0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0xb3,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x39,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0xb3,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0xa2,0x06,0x02,0x02,0x26,0x09,0x46,0x00,0x00, +0x00,0x07,0x0f,0x54,0x02,0xad,0xfd,0xce,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x06,0x02,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x4b,0x06,0x02,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xab,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02, +0x06,0x02,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xab,0xfd,0xce,0xff,0xff,0x00,0x9a,0xff,0x55,0x05,0x91,0x05,0xdc,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0a,0x6e,0x02,0x01,0xfe,0x00,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x04,0x2c,0x02,0x26,0x08,0xf7,0x00,0x00,0x01,0x07,0x0a,0x6e,0x02,0x01,0xfc,0x50, +0x00,0x0a,0xb4,0x01,0x2f,0x4b,0x01,0x4b,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xc4,0x05,0x5a,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0a,0x6e,0x00,0x9c,0xfd,0x7e,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xc4,0x05,0x5a,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0a,0x6e, +0x00,0x9c,0xfd,0x7e,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0x9a,0xff,0x55,0x05,0x91,0x04,0xf9,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x8f,0x04,0x49,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x03,0xb9,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0xdc,0x03,0x09,0xff,0xff,0xff,0xba, +0xfe,0xa6,0x02,0x9a,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x9a, +0xff,0x55,0x05,0x91,0x06,0x11,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x8f,0x04,0x49,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x04,0xd1,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0xdc,0x03,0x09,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x9a,0x05,0xca,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51, +0x00,0x4a,0xfe,0xab,0x00,0x07,0x0f,0x53,0x00,0x9c,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0xca,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x00,0x07,0x0f,0x53,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x08,0x04,0x05,0x24,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x50, +0x04,0xd7,0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x06,0x03,0x04,0x79,0x02,0x26,0x0e,0x70,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xd4,0x03,0xc9,0x00,0x02,0x00,0xab,0xff,0xea,0x06,0xae,0x05,0xec,0x00,0x2e,0x00,0x4f,0x00,0x66,0xb1,0x1e,0x13,0xbe,0x05,0x0a,0x00,0x10,0x00,0x4a,0x05,0x0b,0x00,0x31,0x00,0x42,0x05,0x0b,0x40,0x0a, +0x39,0x10,0x31,0x39,0x39,0x31,0x10,0x03,0x51,0x03,0xbe,0x05,0x0a,0x00,0x2b,0x00,0x3e,0x04,0xfd,0x00,0x3f,0x00,0x2f,0x04,0xfd,0xb5,0x4f,0x1e,0x23,0x18,0x18,0x0b,0xbc,0x04,0xfb,0x00,0x23,0x05,0x03,0x00,0x19,0x05,0x03,0xb4,0x11,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0x3f,0x3f,0xed,0x32,0x2f,0x11,0x39,0x2f,0xfd,0xd4,0xed, +0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x39,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x25,0x36,0x35,0x34,0x26,0x27, +0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x01,0x62,0x09,0x11,0x1f,0x2f,0x1a,0x4e,0x7b,0xb1,0x7d,0x6d,0xa2,0x6c,0x36,0x9c,0x0c,0x27,0x49,0x3e,0x16,0x64,0x75,0x20,0x04,0x26,0x6f,0x87,0x9b,0x53,0x76,0xc2,0x9b,0x78,0x2c,0x3f,0x30,0x12,0x0b,0x01,0xe4,0xc5,0x1f, +0x15,0x10,0x21,0x1b,0x11,0x2e,0x4f,0x69,0x3b,0x5e,0x54,0x21,0x17,0x0f,0x20,0x1a,0x10,0x25,0x4c,0x74,0x4f,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x63,0x23,0x13,0x1a,0x10,0x07,0x0a,0x29,0x53,0x48,0x04,0x8b,0xfb,0xac,0x43,0x60,0x3e,0x1e,0xa7,0x3a,0x40,0x2f,0x34,0x1a,0x05,0x06,0x16,0x2c,0x26,0x37,0x98,0x58,0x3d,0x70,0x33,0x57,0x0b, +0x47,0x12,0x16,0x0b,0x08,0x14,0x1b,0x27,0x1b,0x26,0x3e,0x2f,0x1f,0x08,0x5d,0x0c,0x2d,0x21,0x14,0x18,0x0b,0x08,0x12,0x1a,0x23,0x19,0x1f,0x3e,0x33,0x23,0x04,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x02,0x00,0x2c,0x00,0x2e,0x40,0x11,0x11,0x15,0x12,0x03,0x00,0x14,0x2f,0x13,0x01,0x13,0x27,0x27,0x26,0x26,0x21,0x21, +0x06,0xbb,0x04,0xfb,0x00,0x22,0x00,0x00,0x05,0x03,0x00,0x3f,0x32,0xed,0x32,0x11,0x33,0x2f,0x33,0x2f,0x2f,0x5d,0xcd,0x12,0x17,0x39,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x35,0x01,0x15,0x01,0x1e,0x03,0x17,0x1e,0x05,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23, +0x23,0x23,0x23,0x01,0x28,0x61,0x80,0x4c,0x1e,0x58,0xa4,0xe7,0x90,0x03,0x4b,0xfd,0x66,0xad,0xdd,0x85,0x40,0x10,0x03,0x0b,0x14,0x21,0x34,0x49,0x32,0x16,0x59,0x8d,0x2c,0x05,0x17,0x47,0x68,0x8d,0x5d,0x0e,0x34,0x20,0x20,0x33,0x16,0x2a,0x3f,0x29,0x4c,0x8c,0x86,0x85,0x46,0x76,0x02,0x22,0xb0,0xfe,0x5f,0x52,0x92,0x8b,0x8a,0x4a, +0x0f,0x2b,0x30,0x2e,0x26,0x17,0xa7,0x4a,0x55,0x22,0x3a,0x2b,0x18,0x00,0x00,0x02,0x00,0x39,0xfd,0xff,0x04,0xad,0x02,0xb9,0x00,0x2f,0x00,0x41,0x00,0x54,0xb9,0x00,0x3d,0x01,0x52,0xb5,0x1f,0x1f,0x16,0x1a,0x06,0x2b,0xbb,0x05,0x0a,0x00,0x35,0x00,0x11,0x05,0x0a,0xb4,0x1a,0x0e,0x05,0x09,0x3a,0xb8,0x04,0xfb,0x40,0x09,0x2f,0x26, +0x01,0x26,0x2f,0x16,0x01,0x16,0x09,0xb8,0x05,0x03,0xb3,0x1f,0x30,0x30,0x00,0xba,0x04,0xfb,0x00,0x01,0x05,0x03,0x00,0x3f,0xed,0x32,0x11,0x33,0x3f,0x2f,0x5d,0x2f,0x5d,0xed,0x12,0x39,0x39,0x01,0x2f,0xed,0x2f,0xed,0x39,0x11,0x39,0x39,0x10,0xed,0x31,0x30,0x25,0x15,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x23, +0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x05,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x1e,0x03,0x04,0xad,0x16,0x51,0x68,0x21,0x04,0x26,0x6c,0x4f,0x31,0x65,0x60,0x57,0x24,0x4e,0x43,0x09,0x11,0x17,0x0e,0xa6,0x19,0x1d,0x24,0x42, +0x5d,0x3a,0x17,0x3d,0x45,0x49,0x44,0x3b,0x15,0x44,0x6e,0x53,0x34,0x0b,0x06,0x0f,0x26,0x45,0xfe,0x55,0x21,0x35,0x27,0x15,0x1e,0x33,0x45,0x27,0x4b,0x6d,0x29,0x21,0x44,0x44,0x43,0x99,0xa7,0x3a,0x36,0x36,0x3b,0x13,0x17,0x13,0x63,0x5b,0x26,0x5d,0x63,0x61,0x2a,0x67,0xbd,0x45,0x48,0x79,0x5b,0x39,0x09,0x71,0xa2,0x6f,0x42,0x24, +0x0b,0x41,0x67,0x80,0x3f,0x26,0x43,0x33,0x1d,0x01,0x0c,0x1c,0x30,0x23,0x25,0x59,0x4e,0x34,0xa4,0xad,0x05,0x0e,0x0e,0x09,0x00,0x02,0xff,0xba,0xff,0xf2,0x04,0xad,0x02,0xaf,0x00,0x30,0x00,0x40,0x00,0x32,0xb2,0x31,0x08,0x3c,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x24,0x01,0x24,0x34,0x30,0x30,0x0d,0x05,0x17,0xb8,0x04,0xfb,0xb4,0x10, +0x08,0x08,0x00,0x10,0xb8,0x05,0x03,0x00,0x3f,0x33,0x33,0x2f,0x10,0xed,0x39,0x39,0x32,0x2f,0x33,0x2f,0x5d,0xed,0x12,0x39,0x31,0x30,0x05,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x3e,0x05,0x33,0x32,0x1e,0x04,0x17,0x1e,0x03,0x33, +0x25,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x04,0xad,0x16,0x5b,0x6f,0x1e,0x05,0x2d,0x87,0x61,0x34,0x61,0x57,0x4b,0x1e,0x35,0x99,0x5f,0x13,0x23,0x23,0x23,0x23,0x1a,0x3f,0x57,0x3a,0x23,0x0b,0x0d,0x21,0x2b,0x38,0x48,0x5c,0x39,0x4f,0x72,0x50,0x33,0x1c,0x0c,0x02,0x04,0x0d,0x25,0x46,0x3d,0xfc,0xd4, +0x2b,0x8e,0x56,0x5e,0x69,0x1a,0x35,0x52,0x37,0x30,0x4f,0x3e,0x2f,0x0e,0x40,0x41,0x39,0x48,0x18,0x28,0x35,0x1e,0x50,0x43,0x34,0x20,0x20,0x33,0x2e,0x41,0x48,0x1b,0x1f,0x49,0x48,0x42,0x34,0x1e,0x2e,0x48,0x56,0x51,0x40,0x0e,0x21,0x3e,0x30,0x1d,0x6d,0x35,0x36,0x44,0x45,0x21,0x51,0x45,0x2f,0x26,0x45,0x5f,0xff,0xff,0x00,0x9b, +0xfd,0xff,0x05,0x58,0x03,0x5c,0x02,0x26,0x0e,0xcf,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x9f,0x02,0xac,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0x00,0x03,0xff,0xba,0xff,0xf2,0x04,0x87,0x04,0x53,0x00,0x2d,0x00,0x3f,0x00,0x50,0x00,0x63,0xb3,0x12, +0x1f,0x17,0x24,0xb8,0x05,0x0a,0xb2,0x4b,0x46,0x43,0xb8,0x05,0x0b,0xb6,0x31,0x4b,0x31,0x4b,0x31,0x52,0x3b,0xbf,0x05,0x0a,0x00,0x17,0x00,0x49,0x04,0xfc,0x00,0x29,0x05,0x03,0x00,0x36,0x04,0xfc,0x40,0x10,0x1c,0x00,0x46,0x40,0x1c,0x04,0x05,0x1e,0x2f,0x1f,0x01,0x1f,0x2e,0x0f,0x0f,0x0c,0xba,0x04,0xfb,0x00,0x05,0x05,0x03,0x00, +0x3f,0xed,0x32,0x11,0x33,0x2f,0x5d,0xcd,0x12,0x17,0x39,0x10,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x25,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x33,0x32,0x37,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x37,0x27,0x35,0x16,0x04,0x16,0x16, +0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x36,0x35,0x34,0x2e,0x02,0x27,0x02,0x3b,0x26,0x61,0x6c,0x73,0x37,0x9e,0x23,0x23,0x23,0x23,0x3a,0x72,0x3a,0x84,0x38,0x01,0x4a,0x60,0x38,0x15,0x25,0x43,0x5c, +0x38,0x01,0x53,0xca,0x01,0x32,0xcd,0x68,0x17,0x2f,0x46,0x2e,0x1e,0x5a,0x6b,0x76,0x51,0x33,0x21,0x1c,0x2b,0x34,0x18,0x1c,0x3a,0x2f,0x1e,0x11,0x31,0x58,0x01,0x0a,0x09,0x08,0x2a,0x2d,0x43,0x9a,0x4b,0x1d,0x29,0x45,0x5b,0x31,0x4c,0x1d,0x23,0x14,0x06,0x34,0x20,0x20,0x33,0x02,0x03,0x04,0x1e,0x44,0x4d,0x55,0x2f,0x37,0x79,0x6c, +0x52,0x11,0x06,0x36,0xc7,0x71,0xf6,0xe7,0xc7,0x42,0x2f,0x5f,0x4c,0x30,0x09,0x15,0x22,0xbd,0x3f,0x7e,0x37,0x2d,0x50,0x3d,0x23,0x29,0x41,0x4f,0x26,0x19,0x36,0x3c,0x42,0x01,0x40,0x20,0x3c,0x21,0x4e,0x92,0x36,0x1a,0x20,0x06,0x2c,0x36,0x2b,0x5d,0x60,0x60,0x2e,0x00,0x00,0x03,0x00,0x53,0xff,0xf2,0x05,0x32,0x04,0x53,0x00,0x2a, +0x00,0x3c,0x00,0x4d,0x00,0x63,0xb3,0x0f,0x1c,0x14,0x21,0xb8,0x05,0x0a,0xb2,0x48,0x43,0x40,0xb8,0x05,0x0b,0xb6,0x2e,0x48,0x2e,0x48,0x2e,0x4f,0x38,0xbf,0x05,0x0a,0x00,0x14,0x00,0x46,0x04,0xfc,0x00,0x26,0x05,0x03,0x00,0x33,0x04,0xfc,0x40,0x10,0x19,0x00,0x43,0x3d,0x19,0x04,0x05,0x1b,0x2f,0x1c,0x01,0x1c,0x2b,0x0e,0x0e,0x0c, +0xba,0x04,0xfb,0x00,0x05,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x32,0x2f,0x5d,0xcd,0x12,0x17,0x39,0x10,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x25,0x0e,0x03,0x23,0x22,0x26,0x27,0x27,0x16,0x16,0x33,0x32,0x37,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x37,0x27, +0x35,0x16,0x04,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x36,0x35,0x34,0x2e,0x02,0x27,0x02,0xe6,0x23,0x59,0x63,0x69,0x33,0x55,0x80,0x23,0x20,0x52,0x9c,0x51,0x80,0x3b,0x01,0x4a,0x60,0x38, +0x15,0x25,0x43,0x5c,0x38,0x01,0x53,0xca,0x01,0x32,0xcd,0x68,0x17,0x2f,0x46,0x2e,0x1e,0x5a,0x6b,0x76,0x51,0x33,0x21,0x1c,0x2b,0x34,0x18,0x1c,0x3a,0x2f,0x1e,0x11,0x31,0x58,0x01,0x0a,0x09,0x08,0x2a,0x2d,0x43,0x9a,0x4b,0x1d,0x29,0x45,0x5b,0x31,0x4c,0x1d,0x23,0x14,0x06,0x0b,0x05,0xa7,0x0a,0x08,0x03,0x04,0x1e,0x44,0x4d,0x55, +0x2f,0x37,0x79,0x6c,0x52,0x11,0x06,0x36,0xc7,0x71,0xf6,0xe7,0xc7,0x42,0x2f,0x5f,0x4c,0x30,0x09,0x15,0x22,0xbd,0x3f,0x7e,0x37,0x2d,0x50,0x3d,0x23,0x29,0x41,0x4f,0x26,0x19,0x36,0x3c,0x42,0x01,0x40,0x20,0x3c,0x21,0x4e,0x92,0x36,0x1a,0x20,0x06,0x2c,0x36,0x2b,0x5d,0x60,0x60,0x2e,0x00,0x00,0x03,0xff,0xba,0xfd,0xff,0x04,0x02, +0x03,0x56,0x00,0x2c,0x00,0x3c,0x00,0x4c,0x00,0x59,0xb1,0x19,0x0c,0xb8,0x05,0x0a,0xb5,0x32,0x47,0x47,0x32,0x3c,0x3d,0xb8,0x05,0x0a,0x40,0x09,0x12,0x00,0x25,0x2d,0x13,0x13,0x12,0x12,0x00,0xb8,0x04,0xfb,0xb3,0x3d,0x16,0x14,0x25,0xba,0x05,0x03,0x00,0x42,0x04,0xfb,0xb6,0x1f,0x1e,0x2f,0x1e,0x02,0x1e,0x37,0xb8,0x04,0xfb,0xb3, +0x2f,0x07,0x01,0x07,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x3f,0x33,0x33,0x33,0xed,0x32,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x33,0xed,0x32,0x2f,0x33,0x2f,0x10,0xed,0x32,0x31,0x30,0x37,0x3e,0x05,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x17,0x21,0x15,0x21,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x04,0x27,0x23, +0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x07,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0xb4,0x15,0x41,0x4e,0x55,0x51,0x49,0x1b,0x2f,0x54,0x3f,0x25,0x16,0x27,0x34,0x1d,0x02,0x01,0x45,0xfe,0xc0,0x01,0x48,0x40,0x27,0x49,0x66,0x3f,0x24,0x54,0x55,0x50,0x3f, +0x29,0x04,0xab,0x23,0x23,0x23,0x23,0x01,0xd0,0x30,0x52,0x3a,0x21,0x11,0x1e,0x27,0x16,0x1a,0x47,0x47,0x3d,0x0e,0x0b,0x04,0x2e,0x45,0x52,0x27,0x22,0x2e,0x1c,0x0d,0x20,0x3d,0x58,0x38,0x99,0x85,0xcf,0x9c,0x6c,0x43,0x1e,0x45,0x6d,0x87,0x43,0x35,0x5d,0x4e,0x41,0x19,0x07,0xa7,0x06,0x2d,0x79,0x3f,0x33,0x5f,0x49,0x2d,0x14,0x2e, +0x4b,0x6f,0x96,0x61,0x34,0x20,0x20,0x33,0x33,0x53,0x69,0x36,0x28,0x55,0x45,0x2d,0x47,0x88,0xc6,0x7f,0xa7,0x58,0x7d,0x50,0x26,0x16,0x22,0x2c,0x16,0x24,0x4b,0x3c,0x26,0x00,0x00,0x02,0x00,0x00,0xfd,0xff,0x04,0x02,0x02,0xb7,0x00,0x27,0x00,0x38,0x00,0x55,0xb2,0x1f,0x1f,0x1c,0xb8,0x05,0x0a,0xb4,0x36,0x0b,0x0b,0x36,0x32,0xb8, +0x05,0x0a,0xb2,0x11,0x00,0x03,0xb8,0x04,0xfb,0xb7,0x27,0x1f,0x24,0x2f,0x24,0x02,0x24,0x2d,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x16,0x01,0x16,0x36,0x35,0x35,0x1d,0x1d,0x1c,0xbb,0x04,0xfb,0x00,0x1e,0x00,0x0b,0x05,0x03,0x00,0x3f,0x33,0xed,0x32,0x11,0x33,0x11,0x33,0x2f,0x5d,0xed,0x2f,0x5d,0x33,0xed,0x32,0x01,0x2f,0xed,0x2f,0x33, +0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x11,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x36,0x36,0x37,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x33,0x15,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x01,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x26,0x26,0x6c,0xad,0x52,0x45,0x66,0x48,0x2c,0x0c, +0x05,0x0b,0x04,0x75,0x5c,0x92,0x66,0x36,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x2d,0x35,0x07,0xbc,0xbd,0x08,0x3e,0x74,0xab,0x75,0x5b,0xac,0x64,0x02,0x8d,0x0d,0x25,0x2c,0x34,0x1c,0x1d,0x37,0x2c,0x1b,0x7c,0x87,0x65,0x04,0x0e,0xfe,0xf9,0x2c,0x23,0x21,0x39,0x4c,0x2c,0x13,0x3d,0x26,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54, +0x56,0x48,0xbf,0x6d,0xa7,0x66,0xb5,0x88,0x50,0x26,0x2e,0x02,0xe1,0x26,0x4d,0x3d,0x26,0x26,0x3c,0x4c,0x26,0x4b,0x52,0x27,0x4e,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x01,0xf2,0x03,0x0f,0x02,0x06,0x0e,0x6f,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x03,0x0f,0x02,0x06,0x09,0x3b,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6, +0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x00,0x03,0xff,0xd4,0x05,0x20,0x02,0x33,0x07,0xa1,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x60,0xb2,0x16,0x16,0x19,0xb8,0x05,0x0b,0xb5,0x12,0x15,0x15,0x12,0x12,0x03,0xb8,0x05,0x0d,0x40,0x09,0x2c,0x2f,0x2f,0x2c,0x0a,0x1f,0x23,0x23,0x26, +0xb8,0x05,0x0d,0xb5,0x1f,0x22,0x22,0x1f,0x00,0x31,0xbb,0x04,0xfd,0x00,0x32,0x00,0x35,0x04,0xfd,0xb4,0x36,0x23,0x0a,0x1c,0x29,0xb8,0x04,0xfd,0xb1,0x0d,0x06,0x00,0x2f,0x33,0xfd,0x32,0x39,0xd6,0xd6,0xfd,0xd6,0xed,0x01,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x33,0x2f,0x10,0xed,0x32,0x11,0x33,0x2f,0x10,0xed, +0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x02,0x2f,0x02,0x02,0x63, +0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0xfe,0x36,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37, +0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0x01,0x6b,0x58,0x57,0x58,0x00,0x03,0xff,0xd8,0x06,0x60,0x02,0x2c,0x08,0x21,0x00,0x1e,0x00,0x35,0x00,0x41,0x00,0x4c,0xb4,0x14,0x39,0x04,0x32,0x11,0xbe,0x05,0x0d,0x00,0x39,0x00,0x22,0x05,0x0d,0x00,0x32,0x00,0x3f,0x05,0x0d,0xb4,0x07,0x36,0x1b,0x1e, +0x0c,0xb8,0x04,0xfd,0x40,0x0a,0x3c,0x00,0x1f,0x35,0x04,0x14,0x27,0x2d,0x2d,0x00,0xb9,0x05,0x00,0x00,0x1e,0x00,0x2f,0xed,0x32,0x2f,0xdd,0x39,0x39,0xc0,0x32,0x10,0xd4,0xed,0x11,0x39,0x39,0x01,0x2f,0xed,0x2f,0xed,0x2f,0xed,0x11,0x39,0x11,0x39,0x31,0x30,0x13,0x36,0x36,0x37,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e, +0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x26,0x27,0x06,0x06,0x07,0x13,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x88,0x2d,0x58,0x2e,0x01,0x2e,0x2b,0x1a,0x2d,0x3c,0x22,0x24,0x3d,0x2c,0x19, +0x2a,0x23,0x0e,0x18,0x0b,0x21,0x1b,0x2e,0x15,0x3e,0x84,0x3f,0x0b,0x30,0x3a,0x05,0x06,0x0d,0x06,0x1e,0x2b,0x31,0x22,0x17,0x28,0x1d,0x11,0x54,0x4c,0x01,0x17,0x22,0x27,0x2e,0x23,0x23,0x2f,0x31,0x06,0xb0,0x04,0x0e,0x13,0x05,0x1f,0x4e,0x2d,0x24,0x3b,0x2b,0x18,0x18,0x2b,0x39,0x21,0x33,0x4c,0x21,0x08,0x09,0x05,0x4a,0x0a,0x15, +0x0b,0x21,0x1d,0x05,0x01,0x86,0x17,0x41,0x2a,0x0e,0x14,0x02,0x02,0x28,0x21,0x26,0x2c,0x17,0x27,0x35,0x1e,0x4d,0x74,0x24,0xfe,0xe1,0x18,0x3a,0x21,0x22,0x29,0x27,0x20,0x26,0x3a,0x00,0x00,0x04,0xff,0xd4,0x05,0x20,0x02,0x33,0x08,0x29,0x00,0x2f,0x00,0x4e,0x00,0x65,0x00,0x71,0x00,0xaa,0x40,0x0a,0x44,0x2c,0x34,0x03,0x12,0x52, +0x52,0x16,0x16,0x19,0xb8,0x05,0x0b,0x40,0x0b,0x12,0x62,0x62,0x12,0x15,0x15,0x12,0x12,0x41,0x41,0x03,0xb8,0x05,0x0d,0x40,0x0d,0x2c,0x69,0x69,0x2c,0x2f,0x2f,0x2c,0x0a,0x26,0x1f,0x6f,0x6f,0x37,0xb8,0x05,0x0d,0xb3,0x26,0x23,0x23,0x26,0xb8,0x05,0x0d,0x40,0x09,0x1f,0x22,0x22,0x1f,0x00,0x4b,0x66,0x4e,0x3c,0xb8,0x04,0xfd,0x40, +0x0a,0x6c,0x30,0x4f,0x65,0x34,0x44,0x57,0x5d,0x5d,0x30,0xb8,0x05,0x00,0xb6,0x4e,0x2f,0x16,0x23,0x0a,0x1c,0x29,0xb8,0x04,0xfd,0xb1,0x0d,0x06,0x00,0x2f,0x33,0xfd,0x32,0x39,0xd6,0x32,0x32,0xde,0xed,0x32,0x2f,0xcd,0x39,0x39,0xc0,0x32,0x10,0xd4,0xed,0x11,0x39,0x39,0x01,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x10,0xe4,0x33, +0x2f,0x11,0x12,0x39,0x2f,0x33,0x2f,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x32,0x11,0x33,0x2f,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x32,0x2f,0x11,0x12,0x39,0x11,0x39,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36, +0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x25,0x36,0x36,0x37,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x26,0x27,0x06,0x06,0x07,0x13,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x2e,0x02, +0x35,0x34,0x36,0x37,0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0xfe,0xb9,0x2d,0x58,0x2e,0x01,0x2e,0x28,0x1c,0x2d,0x3a,0x1f, +0x1f,0x3b,0x2e,0x1c,0x28,0x23,0x0e,0x18,0x0b,0x21,0x1b,0x2e,0x15,0x3e,0x84,0x3f,0x0b,0x30,0x3a,0x05,0x06,0x0d,0x06,0x1e,0x2b,0x31,0x22,0x17,0x28,0x1d,0x11,0x54,0x4c,0x01,0x17,0x22,0x25,0x32,0x1e,0x1d,0x31,0x2e,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30, +0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0x8e,0x04,0x0e,0x13,0x05,0x1d,0x49,0x2b,0x27,0x3a,0x27,0x13,0x13,0x25,0x38,0x25,0x30,0x48,0x20,0x08,0x09,0x05,0x4a,0x0a,0x15,0x0b,0x21,0x1b,0x05,0x01,0x78,0x15,0x3d,0x26,0x0e,0x12,0x02,0x02,0x28,0x21,0x26,0x2c,0x16,0x26,0x33,0x1d,0x4b,0x70, +0x23,0xfe,0xed,0x16,0x35,0x1f,0x23,0x23,0x23,0x21,0x23,0x33,0x00,0x02,0xff,0xd4,0x05,0x20,0x02,0x33,0x08,0x04,0x00,0x2f,0x00,0x33,0x00,0x5e,0xb4,0x0a,0x31,0x23,0x23,0x30,0xbb,0x05,0x0b,0x00,0x31,0x00,0x26,0x05,0x0d,0xb5,0x22,0x22,0x31,0x16,0x16,0x19,0xb8,0x05,0x0b,0xb5,0x12,0x15,0x15,0x12,0x12,0x03,0xb8,0x05,0x0d,0x40, +0x0d,0x2c,0x2f,0x2f,0x2c,0x00,0x33,0x30,0x2f,0x16,0x23,0x0a,0x1c,0x29,0xb8,0x04,0xfd,0xb1,0x0d,0x06,0x00,0x2f,0x33,0xfd,0x32,0x39,0xd6,0x32,0x32,0xd6,0xcd,0x01,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0x33,0x2f,0xed,0x10,0xed,0x32,0x2f,0x11,0x39,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06, +0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x23,0x11,0x33,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02, +0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0x92,0x74,0x74,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0x64,0x01,0x6a,0x00,0x00,0x03, +0xff,0x6c,0x05,0x26,0x02,0x03,0x08,0x58,0x00,0x18,0x00,0x3d,0x00,0x4b,0x00,0x69,0xb2,0x3a,0x11,0x37,0xb8,0x05,0x0d,0xb5,0x3e,0x09,0x09,0x3e,0x0e,0x11,0xb8,0x05,0x0d,0xb3,0x2b,0x06,0x06,0x46,0xb8,0x05,0x0d,0xb7,0x2d,0x0e,0x09,0x0a,0x25,0x22,0x1f,0x32,0xb8,0x04,0xfd,0xb3,0x41,0x3a,0x49,0x28,0xb8,0x04,0xfd,0xb4,0x1f,0x16, +0x18,0x18,0x16,0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c,0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x10,0xd6,0xfd,0x32,0x39,0xd4,0xed,0x11,0x39,0x39,0x11,0x12,0x39,0x01,0x2f,0xed,0x39,0x2f,0x39,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15, +0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x37,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x07,0x27,0x37,0x16,0x16,0x33,0x32,0x37,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36, +0x36,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x02,0x17,0x28,0x11,0x19,0x2f,0x15,0x42,0x5e,0x25,0x61,0x36,0x99,0x31,0x5b,0x34,0x10,0x0f,0x01,0x36,0x1e,0x31,0x3f,0x20,0x20,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x02,0x33,0x1f,0x0f,0x1f,0x18,0x0f,0x23,0x1a, +0x2f,0x3b,0x06,0x1e,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0x2b,0x11,0x22,0x11,0x07,0x06,0x34,0x2a,0x59,0x3b,0x8e,0x3c,0x3e,0x03,0x02,0x42,0x41,0x24,0x38,0x27,0x14,0x14,0x27,0x3a,0x27,0x3f,0x56,0x19,0x0b,0x10,0x08,0xcd,0x26,0x22,0x09,0x11,0x19,0x11,0x1b,0x38,0x1b,0x0e,0x35,0x00, +0x00,0x02,0x00,0x05,0x05,0x26,0x02,0x01,0x07,0x3b,0x00,0x18,0x00,0x1c,0x00,0x3f,0xb1,0x0e,0x06,0xb8,0x05,0x0d,0xb7,0x11,0x11,0x1d,0x1a,0x0e,0x09,0x0a,0x1a,0xb8,0x04,0xfd,0xb4,0x1b,0x16,0x18,0x18,0x16,0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c,0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f, +0x10,0xd6,0xed,0x11,0x12,0x39,0x01,0x2f,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x25,0x21,0x15,0x21,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21, +0xfe,0x92,0x01,0xfc,0xfe,0x04,0x06,0x1e,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0xb8,0x58,0x00,0x03,0xff,0xf8,0x05,0x26,0x02,0x03,0x08,0x58,0x00,0x18,0x00,0x3c,0x00,0x4a,0x00,0x65,0xb3,0x39,0x18,0x11,0x36,0xb8,0x05,0x0d,0xb5,0x3d,0x09,0x09,0x3d,0x0e,0x11,0xb8,0x05,0x0d,0xb3,0x2a, +0x06,0x06,0x45,0xb8,0x05,0x0d,0xb4,0x2c,0x0e,0x09,0x0a,0x31,0xb8,0x04,0xfd,0xb3,0x40,0x39,0x48,0x26,0xb8,0x04,0xfd,0xb4,0x1f,0x16,0x18,0x18,0x16,0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c,0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x10,0xd6,0xfd,0x32,0x39,0xd4,0xed,0x11,0x12,0x39,0x01, +0x2f,0xed,0x39,0x2f,0x39,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x37,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x32,0x37,0x37,0x26,0x35,0x34,0x3e,0x02, +0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x02,0x17,0x28,0x11,0x18,0x2f,0x14,0x3c,0x65,0x31,0x12,0x33,0x5a,0x39,0x01,0x0b,0x06,0x01,0x34, +0x1e,0x31,0x3e,0x21,0x20,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x02,0x33,0x1f,0x0f,0x1f,0x18,0x0f,0x23,0x1a,0x30,0x3a,0x06,0x1e,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0x2b,0x11,0x22,0x11,0x05,0x03,0x0e,0x0e,0x53,0x0d,0x0f,0x01,0x02,0x40,0x40,0x24,0x39,0x27,0x14,0x14,0x27,0x3a, +0x27,0x3f,0x56,0x19,0x0b,0x10,0x08,0xcd,0x26,0x22,0x09,0x11,0x1a,0x10,0x1a,0x3a,0x1a,0x0e,0x36,0x00,0x00,0x03,0x00,0x05,0x05,0x26,0x02,0x01,0x07,0xea,0x00,0x18,0x00,0x1c,0x00,0x20,0x00,0x41,0xb1,0x0e,0x06,0xb8,0x05,0x0d,0xb4,0x11,0x0e,0x09,0x0a,0x1a,0xbb,0x04,0xfd,0x00,0x1b,0x00,0x1e,0x04,0xfd,0xb4,0x1f,0x16,0x18,0x18, +0x16,0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c,0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x10,0xd6,0xfd,0xd6,0xed,0x11,0x12,0x39,0x01,0x2f,0xed,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01, +0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xfe,0x92,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04,0x06,0x1e,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0x01,0x67,0x58,0x57,0x58,0x00,0x00,0x03, +0x00,0x49,0x05,0x26,0x01,0xbd,0x08,0x42,0x00,0x17,0x00,0x2b,0x00,0x37,0x00,0x55,0xbc,0x00,0x1d,0x05,0x0d,0x00,0x2f,0x00,0x06,0x05,0x0d,0xb3,0x0e,0x10,0x10,0x35,0xb8,0x05,0x0d,0xb5,0x0b,0x27,0x0e,0x09,0x0a,0x18,0xbb,0x04,0xfd,0x00,0x32,0x00,0x2c,0x04,0xfd,0xb4,0x22,0x15,0x17,0x17,0x15,0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c, +0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x10,0xd6,0xfd,0xd6,0xed,0x11,0x12,0x39,0x01,0x2f,0x33,0xed,0x39,0x2f,0x39,0xed,0x2f,0xed,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x03,0x32,0x1e,0x02, +0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x2d,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x70,0x28,0x45,0x31,0x1c,0x1c,0x31,0x45,0x28,0x2a,0x45,0x30,0x1b,0x1b,0x31,0x44,0x2a,0x30,0x30,0x30, +0x30,0x30,0x30,0x30,0x06,0x1e,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x33,0x3a,0x21,0x37,0x28,0x16,0x06,0x01,0xbf,0x1c,0x31,0x42,0x26,0x26,0x42,0x30,0x1c,0x1c,0x30,0x42,0x26,0x26,0x42,0x31,0x1c,0xfe,0xee,0x33,0x2a,0x29,0x35,0x35,0x29,0x2a,0x33,0x00,0x00,0x03,0x00,0x05,0xfe,0x00,0x02,0x01,0x00,0xc1,0x00,0x18,0x00,0x1c, +0x00,0x20,0x00,0x3d,0xb1,0x0e,0x06,0xbe,0x05,0x0d,0x00,0x11,0x00,0x1b,0x04,0xfd,0x00,0x1a,0x00,0x1f,0x04,0xfd,0xb2,0x1e,0x0e,0x0a,0xb8,0x04,0xfd,0xb4,0x09,0x0c,0x0c,0x09,0x03,0xb8,0x04,0xfd,0xb3,0x16,0x18,0x18,0x16,0x00,0x2f,0x33,0x2f,0x10,0xfd,0xc6,0x32,0x2f,0x10,0xfd,0x39,0xd6,0xfd,0xd6,0xed,0x01,0x2f,0xed,0x39,0x31, +0x30,0x25,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xfe,0x92,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04, +0x56,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0xfd,0x9d,0x58,0x01,0x07,0x58,0x00,0x00,0x02,0x00,0x05,0xfe,0xaf,0x02,0x01,0x00,0xc1,0x00,0x18,0x00,0x1c,0x00,0x35,0xb1,0x0e,0x06,0xbb,0x05,0x0d,0x00,0x11,0x00,0x1b,0x04,0xfd,0xb2,0x1a,0x0e,0x0a,0xb8,0x04,0xfd,0xb4,0x09,0x0c,0x0c,0x09, +0x03,0xb8,0x04,0xfd,0xb3,0x16,0x18,0x18,0x16,0x00,0x2f,0x33,0x2f,0x10,0xfd,0xc6,0x32,0x2f,0x10,0xfd,0x39,0xd6,0xed,0x01,0x2f,0xed,0x39,0x31,0x30,0x25,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0x21,0x15,0x21,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e, +0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xfe,0x92,0x01,0xfc,0xfe,0x04,0x56,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0xfe,0x4c,0x58,0xff,0xff,0x00,0x4f,0xfe,0xf8,0x01,0x64,0x00,0xe4,0x00,0x06,0x00,0x0f,0x28,0x00,0x00,0x01,0x00,0xab,0xff,0xea,0x07,0x59, +0x03,0x0f,0x00,0x2e,0x00,0x3c,0xb1,0x0c,0x01,0xb8,0x05,0x0a,0xb3,0x2d,0x2d,0x30,0x20,0xb8,0x05,0x0a,0x40,0x0a,0x19,0x2f,0x2e,0x01,0x2e,0x2f,0x1d,0x01,0x1d,0x11,0xb8,0x05,0x03,0xb2,0x0c,0x28,0x06,0xba,0x04,0xfb,0x00,0x07,0x05,0x03,0x00,0x3f,0xed,0x32,0x39,0x3f,0x2f,0x5d,0x2f,0x5d,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39, +0x31,0x30,0x01,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x11,0x06,0x9f,0x0c,0x27,0x49,0x3e,0x16,0x61,0x70,0x20,0x04,0x2c,0x80,0x9d,0xb4,0x60,0x88,0xe1,0xb5,0x88,0x30,0x40, +0x30,0x12,0x0b,0x9a,0x09,0x11,0x1f,0x2f,0x1d,0x5c,0x92,0xd1,0x93,0x80,0xc0,0x7f,0x3f,0x03,0x0f,0xfe,0x89,0x43,0x60,0x3e,0x1e,0xa7,0x3a,0x40,0x2f,0x35,0x19,0x05,0x04,0x15,0x2c,0x29,0x37,0x98,0x58,0x3d,0x70,0x33,0x2b,0x65,0x36,0x3c,0x63,0x23,0x15,0x1b,0x0f,0x05,0x0a,0x29,0x53,0x48,0x01,0xae,0x00,0x01,0xff,0xba,0xff,0xf2, +0x01,0xf2,0x03,0x0f,0x00,0x16,0x00,0x1e,0xbe,0x00,0x08,0x05,0x0a,0x00,0x05,0x00,0x00,0x04,0xfb,0x00,0x0f,0x05,0x03,0xb3,0x2f,0x07,0x01,0x07,0x00,0x2f,0x5d,0x3f,0xed,0x01,0x2f,0xed,0x31,0x30,0x37,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x99,0x2e,0x47,0x30,0x18,0x9c,0x1c, +0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x3d,0x4b,0x6e,0x4c,0x31,0x1a,0x0a,0x34,0x20,0x20,0x33,0x00,0x00,0x02,0x00,0x9b,0xfd,0xff,0x06,0x03,0x02,0xb7,0x00,0x30,0x00,0x41,0x00,0x65,0xb2,0x13,0x13,0x10,0xb8,0x05,0x0a,0xb4,0x3f,0x30,0x30,0x3f,0x3b,0xb8,0x05,0x0a,0xb6,0x05, +0x3f,0x05,0x3f,0x05,0x43,0x24,0xb8,0x05,0x0a,0xb5,0x1d,0x2f,0x21,0x01,0x21,0x29,0xb8,0x04,0xfb,0x40,0x0a,0x1f,0x18,0x2f,0x18,0x02,0x18,0x3f,0x3e,0x3e,0x10,0xbd,0x04,0xfb,0x00,0x00,0x00,0x12,0x05,0x03,0x00,0x36,0x04,0xfb,0xb3,0x2f,0x0a,0x01,0x0a,0x00,0x2f,0x5d,0xed,0x3f,0x33,0xed,0x32,0x11,0x33,0x2f,0x5d,0xed,0x2f,0x5d, +0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x33,0x15,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x37,0x03,0x2e,0x03,0x23,0x22, +0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x26,0x26,0x04,0x36,0x5c,0x91,0x66,0x36,0x30,0x55,0x73,0x44,0x48,0x78,0x36,0x2d,0x34,0x07,0xbc,0xbb,0x0b,0x54,0x99,0xe0,0x97,0xa1,0xdb,0x87,0x3b,0x0f,0x0e,0x97,0x0b,0x0c,0x2b,0x64,0xa5,0x7a,0x60,0x8d,0x63,0x3e,0x24,0x10,0x03,0x1d,0x0d,0x25,0x2c,0x34,0x1c,0x1d,0x37,0x2c,0x1a,0x7c,0x86, +0x65,0x04,0x0e,0x0e,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x48,0xc0,0x6d,0xa7,0x7f,0xbc,0x7b,0x3d,0x41,0x7c,0xb7,0x77,0x3f,0x8c,0x4e,0x4b,0x7d,0x36,0x5f,0x84,0x54,0x26,0x19,0x2d,0x3e,0x49,0x52,0x2b,0x01,0x42,0x26,0x4d,0x3d,0x26,0x26,0x3c,0x4c,0x26,0x4b,0x52,0x27,0x4e,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49, +0x03,0x62,0x02,0x06,0x09,0x3c,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x03,0x62,0x02,0x06,0x09,0x3d,0x00,0x00,0xff,0xff,0x00,0x49,0x04,0x7c,0x01,0xa2,0x05,0xe9,0x00,0x07,0x09,0x7e,0x00,0x00,0xfe,0x00,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x3e,0x02,0x26,0x0e,0x5e,0x00,0x00,0x01,0x07,0x09,0x7e,0x02,0x01, +0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xe7,0xfd,0xff,0x04,0x02,0x05,0x63,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x09,0x7e,0x02,0x01,0xfd,0x55,0x01,0x07,0x09,0x30,0x00,0x28,0xfd,0x55,0x00,0x0e,0xb6,0x04,0x03,0x02,0x2f,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff, +0xff,0xba,0xff,0xf2,0x03,0xa3,0x05,0x3e,0x00,0x26,0x0e,0x6f,0x00,0x00,0x01,0x07,0x09,0x7e,0x02,0x01,0xfd,0x55,0x00,0x0a,0xb4,0x01,0x2f,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x05,0x3e,0x00,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x09,0x7e,0x02,0x01,0xfd,0x55,0x01,0x07,0x09,0x21,0x02,0xac, +0x00,0x00,0x00,0x0a,0xb4,0x01,0x2f,0x36,0x01,0x36,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x05,0xb9,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x57,0x02,0xad,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x06,0x32,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0x72,0x03,0xd0,0xff,0xff, +0x00,0xab,0xff,0xea,0x07,0x59,0x05,0xca,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x52,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xca,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07, +0x0f,0x52,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0xab,0xfe,0xee,0x07,0x59,0x04,0xb2,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x27,0x0f,0x5b,0x02,0xad,0x00,0xef,0x00,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0xff,0xff, +0xff,0xba,0xff,0x05,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x5b,0x00,0x1a,0x01,0x06,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x05,0xca,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xca, +0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff, +0x00,0xab,0xff,0xea,0x07,0x59,0x05,0xca,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x56,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xca,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07, +0x0f,0x56,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0x16,0x02,0x26,0x0e,0x2d,0x00,0x00,0x01,0x07,0x09,0x7e,0x01,0x56,0xfd,0x2d,0x00,0x0a,0xb4,0x01,0x2f,0x4c,0x01,0x4c,0x00,0x11, +0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0x79,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x03,0xb1,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0xfe,0xab,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d, +0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0xfd,0xce,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0x79,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x03,0xb1,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x56,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9, +0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x07,0x0f,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x1d,0x04,0xad,0xff,0xff,0x00,0x52,0xfe,0xf4,0x04,0x02,0x03,0xba,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x5b,0x00,0xab, +0x00,0xf5,0xff,0xff,0x00,0x52,0xfe,0xa6,0x04,0x02,0x03,0xba,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0x52,0xfe,0xa6,0x04,0x02,0x07,0x0f,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x27,0x0f,0x57,0x01,0x1d,0x04,0xad,0x00,0x07,0x0f,0x50,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0x52,0xff,0xea, +0x04,0x02,0x05,0x5d,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x1d,0x04,0xad,0xff,0xff,0x00,0x52,0xfe,0xa6,0x04,0x02,0x03,0xba,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x06,0x75,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x1d, +0x04,0xad,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x06,0x75,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x1d,0x04,0xad,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x06,0x75,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0x1d,0x04,0xad,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x04,0x07,0x02,0x26,0x0e,0x31, +0x00,0x00,0x00,0x27,0x0f,0x50,0x05,0x50,0x03,0x57,0x00,0x07,0x0f,0x50,0x05,0x50,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x06,0xae,0x04,0x07,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0xa4,0x03,0x57,0x00,0x07,0x0f,0x50,0x02,0xa4,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x09,0x5a,0x03,0x0f,0x02,0x26,0x0e,0x31, +0x00,0x00,0x00,0x07,0x0f,0x54,0x05,0x50,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x06,0xae,0x03,0x0f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xa4,0xfd,0xce,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x09,0x5a,0x05,0x1f,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x27,0x0f,0x54,0x05,0x50,0xfd,0xce,0x00,0x07,0x0f,0x53,0x05,0x46, +0x03,0x57,0xff,0xff,0xff,0xba,0xfd,0xc9,0x06,0xae,0x05,0x1f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x27,0x0f,0x54,0x02,0xa4,0xfd,0xce,0x00,0x07,0x0f,0x53,0x02,0xa4,0x03,0x57,0xff,0xff,0x00,0x9b,0xfd,0xff,0x0a,0xb0,0x03,0x3c,0x02,0x26,0x0e,0x35,0x00,0x00,0x00,0x07,0x0f,0x51,0x06,0x3c,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6, +0x08,0x04,0x03,0x3c,0x02,0x26,0x0e,0x36,0x00,0x00,0x00,0x07,0x0f,0x51,0x03,0x86,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x0a,0xb0,0x05,0xca,0x02,0x26,0x0e,0x35,0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0xca,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xea,0x08,0x04,0x05,0xca,0x02,0x26,0x0e,0x36,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x1e, +0x04,0x02,0xff,0xff,0x00,0x19,0xff,0xea,0x06,0xae,0x05,0xec,0x02,0x26,0x0e,0x39,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xe5,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xed,0x05,0xf5,0x05,0xec,0x02,0x26,0x0e,0x3a,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xe5,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xed,0x06,0xae,0x05,0xec,0x02,0x26,0x0e,0x3b, +0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xe5,0x04,0x02,0x00,0x02,0x00,0xab,0xff,0xea,0x08,0x04,0x03,0x62,0x00,0x41,0x00,0x55,0x00,0x5c,0xb1,0x10,0x0d,0xbb,0x05,0x0a,0x00,0x42,0x00,0x4e,0x05,0x0a,0xb6,0x00,0x42,0x00,0x42,0x00,0x57,0x2f,0xb8,0x05,0x0a,0xb5,0x28,0x2f,0x2c,0x01,0x2c,0x1f,0xb8,0x05,0x03,0x40,0x09,0x53,0x1a,0x05, +0x14,0x3c,0x3c,0x39,0x39,0x13,0xbc,0x04,0xfb,0x00,0x14,0x05,0x03,0x00,0x49,0x04,0xfb,0xb3,0x2f,0x05,0x01,0x05,0x00,0x2f,0x5d,0xed,0x3f,0xed,0x32,0x11,0x33,0x2f,0x11,0x12,0x39,0x39,0x3f,0x2f,0x5d,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x31,0x30,0x01,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03, +0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x05,0x33,0x32,0x36,0x37,0x37,0x2e,0x03,0x05,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x04,0xb0,0x30,0x55,0x74,0x44, +0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x38,0x72,0x43,0x16,0x2c,0x60,0x5f,0x5b,0x27,0x33,0x77,0x82,0x8a,0x45,0xb9,0x86,0xd6,0xaa,0x7f,0x2e,0x3f,0x30,0x12,0x0b,0x9a,0x09,0x11,0x20,0x2e,0x17,0x39,0x4f,0x6d,0x96,0xc7,0x82,0x5b,0x8e,0x3b,0x02,0x4a,0x60,0x38,0x15,0x01,0xfe,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b, +0x1b,0x19,0x41,0x73,0x5a,0x23,0x1b,0x01,0xd1,0x40,0x8d,0x77,0x4d,0x53,0x56,0x21,0x4a,0x53,0x5a,0x30,0x42,0x63,0x27,0x09,0x03,0xa7,0x07,0x0e,0x16,0x0f,0x18,0x1a,0x0d,0x03,0x05,0x15,0x2d,0x27,0x36,0x99,0x58,0x3d,0x70,0x33,0x2b,0x65,0x36,0x3c,0x66,0x20,0x10,0x17,0x0f,0x08,0x05,0x01,0x02,0x03,0x06,0x1e,0x44,0x4d,0x55,0x35, +0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x1f,0x3e,0x43,0x4a,0x2b,0x18,0x4d,0x00,0xff,0xff,0x00,0xab,0xfe,0xa6,0x08,0x04,0x03,0x62,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x50,0x05,0x10,0xfe,0xab,0xff,0xff,0x00,0xab,0xfe,0xa6,0x08,0x04,0x05,0x24,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x27,0x0f,0x50,0x04,0xd7, +0x04,0x74,0x00,0x07,0x0f,0x50,0x05,0x10,0xfe,0xab,0xff,0xff,0x00,0xab,0xff,0xea,0x08,0x04,0x06,0x3c,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x53,0x04,0xd7,0x04,0x74,0xff,0xff,0x00,0xab,0xfd,0xc9,0x08,0x04,0x03,0x62,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x54,0x05,0x10,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea, +0x08,0x04,0x06,0x3c,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x56,0x04,0xd7,0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x06,0x03,0x04,0x79,0x02,0x26,0x0e,0x70,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xd4,0x03,0xc9,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x05,0x24,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5, +0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x05,0x24,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x06,0x03,0x05,0x91,0x02,0x26,0x0e,0x70,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xd4,0x03,0xc9,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x06,0x3c,0x02,0x26,0x09,0x3c, +0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x3c,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x04,0x74,0x00,0x01,0x00,0xab,0xff,0xea,0x07,0x59,0x06,0x02,0x00,0x43,0x00,0x49,0xb4,0x13,0x05,0x05,0x1b,0x37,0xb8,0x05,0x0a,0x40,0x0c,0x30,0x1b,0x2f,0x34,0x01, +0x34,0x0a,0x0e,0x0b,0x03,0x0c,0x28,0xb8,0x05,0x03,0xb5,0x3f,0x20,0x20,0x1f,0x1f,0x1a,0xba,0x04,0xfb,0x00,0x1b,0x05,0x03,0xb4,0x0d,0x2f,0x0c,0x01,0x0c,0x00,0x2f,0x5d,0x33,0x3f,0xed,0x32,0x2f,0x33,0x2f,0x33,0x3f,0x12,0x17,0x39,0x2f,0x5d,0x01,0x2f,0x2f,0xed,0x12,0x39,0x10,0xcd,0x31,0x30,0x25,0x3e,0x03,0x35,0x34,0x2e,0x02, +0x27,0x35,0x01,0x15,0x01,0x1e,0x03,0x17,0x1e,0x05,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x05,0x4b,0x25,0x32,0x1c,0x0c,0x58,0xa4,0xe7,0x90,0x03,0x4b,0xfd,0x66,0xad,0xdd,0x85,0x40, +0x10,0x03,0x0b,0x14,0x21,0x34,0x49,0x32,0x16,0x59,0x8d,0x2c,0x05,0x22,0x53,0x44,0x27,0x5d,0x74,0x90,0x5a,0x76,0xc2,0x9b,0x78,0x2c,0x3f,0x30,0x12,0x0b,0x9a,0x09,0x11,0x1f,0x2f,0x1a,0x4f,0x7b,0xb1,0x7c,0x4f,0x80,0x66,0x4f,0xad,0x0a,0x1d,0x26,0x2d,0x1a,0x4c,0x8c,0x86,0x85,0x46,0x76,0x02,0x22,0xb0,0xfe,0x5f,0x52,0x92,0x8b, +0x8a,0x4a,0x0f,0x2b,0x30,0x2e,0x26,0x17,0xa7,0x4a,0x55,0x2d,0x3d,0x15,0x0c,0x10,0x09,0x03,0x06,0x16,0x2c,0x26,0x37,0x98,0x58,0x3d,0x70,0x33,0x2b,0x65,0x36,0x3c,0x63,0x23,0x13,0x1a,0x10,0x07,0x02,0x05,0x0a,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x02,0x02,0x06,0x0e,0x56,0x00,0x00,0x00,0x01,0x00,0x19,0xff,0xea, +0x08,0xaf,0x04,0x19,0x00,0x48,0x00,0x52,0xb9,0x00,0x25,0x05,0x0a,0xb2,0x1a,0x3b,0x30,0xb8,0x05,0x0a,0xb4,0x11,0x0e,0x0e,0x11,0x14,0xb8,0x04,0xfb,0xb7,0x2b,0x2b,0x1f,0x3b,0x41,0x35,0x35,0x07,0x41,0x09,0x04,0xfb,0x00,0x41,0x05,0x03,0x00,0x32,0x04,0xfb,0x00,0x36,0x05,0x03,0x00,0x20,0x04,0xfb,0xb3,0x2f,0x1f,0x01,0x1f,0x00, +0x2f,0x5d,0xed,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x11,0x39,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x39,0x2f,0xed,0x31,0x30,0x37,0x1e,0x05,0x33,0x32,0x3e,0x04,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x22,0x2e,0x02,0x35,0x34,0x36,0x36,0x24,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x21,0x32,0x1e,0x02,0x15,0x14, +0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x07,0x06,0x04,0x21,0x22,0x2e,0x04,0x27,0x19,0x25,0x83,0xaa,0xc7,0xd4,0xd8,0x65,0x72,0xbb,0x9d,0x83,0x72,0x68,0x33,0x03,0x03,0x5d,0x55,0xfb,0xd3,0x56,0x88,0x5e,0x32,0x6b,0xc7,0x01,0x1f,0xb4,0x7f,0xe3,0xac,0x65,0x19,0x4b,0x88,0x70,0x03,0xba,0x46,0x76,0x54,0x2f, +0x0b,0x20,0x3e,0x1f,0x07,0x39,0x4b,0x1a,0x04,0x0c,0x21,0x14,0x76,0xfe,0x25,0xfe,0xa9,0x47,0xb1,0xc0,0xc2,0xae,0x8f,0x2d,0xa9,0x05,0x07,0x06,0x03,0x02,0x01,0x01,0x02,0x02,0x05,0x06,0x04,0x0b,0x12,0x0b,0x43,0x55,0x07,0x1f,0x40,0x39,0x52,0xa9,0x92,0x6f,0x19,0xa6,0x10,0x43,0x56,0x61,0x2e,0x12,0x14,0x0a,0x02,0x2e,0x4d,0x66, +0x38,0x23,0x2c,0x05,0x03,0xa7,0x2c,0x29,0x16,0x21,0x0e,0x0a,0x0e,0x01,0x02,0x03,0x06,0x07,0x05,0x00,0x00,0x01,0xff,0xba,0xff,0xea,0x08,0x04,0x04,0x19,0x00,0x4d,0x00,0x61,0xb1,0x3f,0x34,0xb8,0x05,0x0a,0x40,0x09,0x15,0x12,0x12,0x24,0x15,0x15,0x1e,0x3a,0x29,0xbb,0x05,0x0a,0x00,0x1e,0x00,0x18,0x04,0xfb,0xb3,0x2f,0x2f,0x23, +0x47,0xbc,0x05,0x03,0x00,0x3a,0x05,0x03,0x00,0x24,0x04,0xfb,0x40,0x0c,0x2f,0x23,0x01,0x23,0x3f,0x00,0x39,0x36,0x36,0x0d,0x0d,0x07,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x33,0x2f,0x33,0x11,0x39,0x2f,0x5d,0xed,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x2f,0x39,0x33,0x2f,0x10,0xed, +0x39,0x31,0x30,0x17,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x16,0x04,0x33,0x32,0x3e,0x02,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x22,0x2e,0x02,0x35,0x34,0x36,0x36,0x24,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x21,0x32,0x1e,0x02,0x15,0x14,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x07, +0x0e,0x02,0x04,0x23,0x22,0x2e,0x04,0x32,0x32,0x23,0x23,0x23,0x23,0x3b,0x1e,0xa2,0xef,0x01,0x2e,0xab,0x9d,0xf6,0xc3,0x99,0x40,0x03,0x03,0x5d,0x55,0xfb,0xd3,0x56,0x88,0x5e,0x32,0x6b,0xc7,0x01,0x1f,0xb4,0x7f,0xe3,0xac,0x65,0x19,0x4b,0x88,0x70,0x03,0xba,0x46,0x76,0x54,0x2f,0x0b,0x20,0x3e,0x1f,0x07,0x39,0x4c,0x19,0x04,0x0b, +0x22,0x14,0x34,0xb6,0xec,0xfe,0xe9,0x96,0x50,0xb3,0xb2,0xa8,0x8b,0x66,0x0e,0x34,0x20,0x20,0x33,0x03,0x03,0x02,0x03,0x05,0x07,0x05,0x0b,0x12,0x0b,0x43,0x55,0x07,0x1f,0x40,0x39,0x52,0xa9,0x92,0x6f,0x19,0xa6,0x10,0x43,0x56,0x61,0x2e,0x12,0x14,0x0a,0x02,0x2e,0x4d,0x66,0x38,0x23,0x2c,0x05,0x03,0xa7,0x2d,0x28,0x15,0x22,0x0e, +0x05,0x08,0x07,0x04,0x01,0x02,0x02,0x02,0x01,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x06,0x02,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x5b,0x04,0xa6,0x05,0xb0,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x02,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x5b,0x01,0x4f,0x05,0xb0,0xff,0xff,0x00,0xab,0xff,0xea, +0x06,0xae,0x06,0xb3,0x02,0x26,0x0e,0x55,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x73,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0xb3,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xae,0x07,0xcb,0x02,0x26,0x0e,0x55,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0x73, +0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x07,0xcb,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0xae,0x05,0xec,0x02,0x26,0x0e,0x55,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0x74,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02,0x06,0x02,0x02,0x26,0x0e,0x56, +0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xab,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x07,0x38,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x07,0x38,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59, +0x07,0x38,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x27,0x0f,0x5b,0x04,0xa6,0x05,0xb0,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x07,0x38,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x27,0x0f,0x5b,0x01,0x4f,0x05,0xb0,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x07,0xc3, +0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00,0x01,0x07,0x0f,0x51,0x03,0x90,0x07,0x13,0x00,0x0c,0xb5,0x03,0x02,0x20,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x07,0xc3,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x26,0x0f,0x59,0x00,0x00,0x01,0x07,0x0f,0x51,0x00,0x39, +0x07,0x13,0x00,0x0c,0xb5,0x03,0x02,0x20,0x37,0x01,0x37,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x07,0x38,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x07,0x38,0x02,0x26,0x0e,0x56,0x00,0x00, +0x00,0x26,0x0f,0x59,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x07,0x38,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x27,0x0f,0x52,0x02,0xad,0xfd,0xce,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02,0x07,0x38,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x27, +0x0f,0x52,0x00,0xab,0xfd,0xce,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x08,0xbd,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00,0x01,0x07,0x0f,0x53,0x03,0x57,0x06,0xf5,0x00,0x13,0x40,0x0a,0x04,0x03,0x02,0x20,0x4f,0x01,0x20,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x5d,0x35,0x35, +0x35,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x08,0xbd,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x26,0x0f,0x59,0x00,0x00,0x01,0x07,0x0f,0x53,0x00,0x00,0x06,0xf5,0x00,0x13,0x40,0x0a,0x04,0x03,0x02,0x20,0x3c,0x01,0x20,0x3c,0x01,0x3c,0x00,0x11,0x5d,0x5d,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x70,0x08,0x0e, +0x02,0x26,0x09,0x59,0x00,0x00,0x00,0x07,0x0a,0x6d,0x03,0x48,0x00,0x32,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x58,0x07,0x67,0x02,0x26,0x09,0x59,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x48,0x06,0xb7,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x58,0x08,0x7f,0x02,0x26,0x09,0x59,0x00,0x00,0x01,0x07,0x0f,0x53,0x03,0x48,0x06,0xb7,0x00,0x0e, +0xb6,0x01,0x03,0x02,0x20,0x34,0x01,0x34,0x00,0x11,0x5d,0x35,0x35,0x35,0x00,0x04,0x00,0x9b,0xfd,0xc4,0x05,0x58,0x05,0xec,0x00,0x28,0x00,0x2c,0x00,0x30,0x00,0x34,0x00,0x72,0xb1,0x0e,0x01,0xbb,0x05,0x0a,0x00,0x27,0x00,0x2a,0x05,0x0c,0xb2,0x29,0x29,0x2d,0xbb,0x05,0x0c,0x00,0x2e,0x00,0x31,0x05,0x0c,0x40,0x0a,0x32,0x27,0x2e, +0x32,0x32,0x2e,0x27,0x03,0x36,0x1d,0xbb,0x05,0x0a,0x00,0x16,0x00,0x29,0x04,0xfb,0xb2,0x2c,0x31,0x2d,0xb8,0x04,0xfb,0x40,0x0c,0x33,0x2f,0x30,0x01,0x30,0x1a,0x0d,0x00,0x11,0x11,0x22,0x06,0xbb,0x04,0xfb,0x00,0x07,0x05,0x03,0x00,0x00,0x00,0x2f,0x3f,0xed,0x32,0x33,0x2f,0x12,0x39,0x2f,0x2f,0x5d,0x33,0xfd,0x32,0xd6,0xed,0x01, +0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x39,0x31,0x30,0x01,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x01,0x23,0x35,0x33,0x37,0x23,0x35,0x33, +0x05,0x23,0x35,0x33,0x04,0x9e,0x0c,0x27,0x49,0x3e,0x1a,0x23,0x4c,0x48,0x3e,0x14,0x03,0x41,0xda,0xa3,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x98,0x0b,0x0b,0x24,0x4e,0x7d,0x59,0x67,0x93,0x5d,0x2b,0xfe,0xfc,0xc9,0xc9,0xab,0xc9,0xc9,0xfe,0xaa,0xc9,0xc9,0x05,0xec,0xfb,0xb0,0x43,0x61,0x40,0x1f,0xa7,0x10,0x27,0x44,0x35,0x56,0x5a,0x45, +0x7f,0xb7,0x72,0x3f,0x83,0x4b,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x2e,0x67,0xa7,0x79,0x03,0x9c,0xf7,0xd8,0xbd,0x5b,0xbd,0xbd,0xbd,0x00,0x03,0x00,0x9b,0xfd,0xf6,0x05,0x58,0x04,0xb6,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x6e,0xb1,0x11,0x03,0xb8,0x05,0x0a,0xb2,0x2c,0x34,0x30,0xb8,0x05,0x0c,0x40,0x09,0x31,0x35,0x31,0x2c,0x31, +0x2c,0x31,0x39,0x22,0xbb,0x05,0x0a,0x00,0x1b,0x00,0x34,0x04,0xfb,0xb4,0x2f,0x37,0x01,0x37,0x30,0xb8,0x04,0xfb,0x40,0x09,0x2f,0x33,0x01,0x33,0x2f,0x2f,0x01,0x2f,0x16,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x27,0x01,0x27,0x2f,0x1f,0x01,0x1f,0x11,0x09,0xba,0x04,0xfb,0x00,0x0a,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d,0x2f,0x5d,0xed, +0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x39,0x31,0x30,0x01,0x16,0x16,0x15,0x15,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35, +0x34,0x26,0x27,0x27,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x04,0x84,0x11,0x11,0x0b,0x26,0x46,0x3b,0x19,0x1b,0x3b,0x3a,0x34,0x14,0x04,0x1b,0x56,0x79,0x9e,0x63,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x94,0x5e,0x2b,0x11,0x10,0xe4,0xc9,0xc9,0xc9,0xc9,0x03,0x17,0x5d,0xac,0x51,0x21,0x47,0x62,0x3e, +0x1c,0xa7,0x09,0x16,0x28,0x1e,0x3d,0x60,0x42,0x23,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x45,0x9d,0x64,0xe2,0xbd,0xf9,0x40,0xbd,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c,0x04,0x02,0x00,0x07,0x0f,0x50, +0x00,0x83,0xfe,0xab,0x00,0x01,0x00,0x9b,0xfd,0xff,0x05,0x58,0x01,0xc1,0x00,0x2a,0x00,0x4a,0xb2,0x0b,0x00,0x0c,0xb8,0x05,0x0a,0xb5,0x2a,0x27,0x27,0x2c,0x1a,0x1d,0xb8,0x05,0x0a,0x40,0x0b,0x19,0x16,0x2f,0x2a,0x01,0x2a,0x2f,0x1a,0x01,0x1a,0x22,0xb8,0x04,0xfb,0xb7,0x1f,0x11,0x2f,0x11,0x02,0x11,0x0c,0x06,0xba,0x04,0xfb,0x00, +0x07,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d,0xed,0x2f,0x5d,0x2f,0x5d,0x01,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0x33,0xe1,0x32,0x32,0x31,0x30,0x01,0x16,0x16,0x17,0x16,0x16,0x33,0x15,0x23,0x22,0x26,0x27,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34, +0x26,0x27,0x04,0x84,0x08,0x09,0x06,0x09,0x55,0x5f,0x16,0x3f,0x4a,0x17,0x05,0x03,0x3c,0x82,0xcf,0x95,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x94,0x5e,0x2b,0x11,0x10,0x01,0xc1,0x2d,0x54,0x2a,0x3f,0x3e,0xa7,0x26,0x20,0x01,0x84,0xd3,0x93,0x4e,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39, +0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x45,0x9d,0x64,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x58,0x05,0x0e,0x02,0x26,0x0e,0xcf,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x9f,0x02,0xac,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9e,0x06,0x32,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0x72,0x03,0xd0,0xff,0xff,0xff,0xba, +0xff,0xf2,0x02,0xac,0x06,0x32,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0x72,0x03,0xd0,0x00,0x03,0x00,0x9b,0xfe,0x55,0x05,0x58,0x04,0xb6,0x00,0x3c,0x00,0x40,0x00,0x4c,0x00,0x7e,0xb1,0x11,0x03,0xb8,0x05,0x0a,0xb2,0x39,0x14,0x17,0xb8,0x05,0x0e,0xb2,0x44,0x23,0x21,0xb8,0x05,0x0e,0xb5,0x4a,0x44,0x4a,0x44,0x4a, +0x3d,0xb8,0x05,0x0c,0xb6,0x3e,0x39,0x3e,0x39,0x3e,0x4e,0x2f,0xbb,0x05,0x0a,0x00,0x28,0x00,0x40,0x01,0x57,0xb5,0x3d,0x2f,0x3c,0x01,0x3c,0x1c,0xb8,0x05,0x00,0xb3,0x41,0x14,0x23,0x47,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x34,0x01,0x34,0x2f,0x2c,0x01,0x2c,0x11,0x09,0xba,0x04,0xfb,0x00,0x0a,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d, +0x2f,0x5d,0xfd,0x39,0x39,0xd6,0xed,0x2f,0x5d,0xd6,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x39,0x10,0xed,0x39,0x31,0x30,0x01,0x16,0x16,0x15,0x15,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e, +0x02,0x35,0x34,0x37,0x2e,0x03,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x27,0x23,0x35,0x33,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x84,0x11,0x11,0x0b,0x26,0x46,0x3b,0x19,0x1b,0x3b,0x39,0x35,0x14,0x04,0x2b,0xa3,0x80,0x14,0x17,0x1a,0x2b,0x3a, +0x20,0x23,0x3b,0x2b,0x19,0x21,0x6e,0x95,0x5b,0x27,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x94,0x5e,0x2b,0x11,0x10,0xe4,0xc9,0xc9,0x63,0x23,0x31,0x31,0x23,0x25,0x32,0x32,0x03,0x17,0x5e,0xab,0x51,0x21,0x47,0x62,0x3e,0x1c,0xa7,0x09,0x16,0x28,0x1e,0x60,0x7d,0x18,0x15,0x38,0x21,0x20,0x3a,0x2c,0x19,0x19,0x2c,0x39, +0x21,0x3b,0x2a,0x0b,0x4d,0x7e,0xab,0x68,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x45,0x9d,0x64,0xe2,0xbd,0xf9,0xea,0x31,0x23,0x25,0x32,0x32,0x25,0x23,0x31,0x00,0xff,0xff,0xff,0xba,0xff,0x05,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x5b,0x00,0x1a,0x01,0x06,0x00,0x07, +0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x58,0x04,0x74,0x02,0x26,0x0e,0xcf,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x9f,0x02,0xac,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x87,0x04,0x53, +0x02,0x06,0x0e,0x5b,0x00,0x00,0xff,0xff,0xff,0xba,0xfd,0xff,0x04,0x02,0x03,0x56,0x02,0x06,0x0e,0x5d,0x00,0x00,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0xad,0x04,0x61,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x27,0x0f,0x54,0x01,0x56,0xfd,0xce,0x00,0x07,0x0f,0x50,0x01,0x56,0x03,0xb1,0xff,0xff,0x00,0x57,0xff,0xaf,0x04,0x02,0x04,0x11, +0x02,0x26,0x09,0x72,0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0xab,0xfc,0x28,0xff,0xff,0x00,0x57,0xff,0xaf,0x04,0x02,0x03,0x5c,0x02,0x26,0x09,0x72,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0x02,0xac,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x02,0xb7,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x06,0x0f,0x5b,0x66,0x60,0x00,0x02,0x00,0x00, +0xfd,0xfe,0x04,0x02,0x03,0x1c,0x00,0x2c,0x00,0x41,0x00,0x6a,0xb2,0x12,0x2b,0x37,0xb8,0x05,0x0a,0xb2,0x13,0x20,0x2b,0xb8,0x05,0x0a,0xb4,0x18,0x3f,0x3f,0x18,0x12,0xb8,0x04,0xfd,0xb6,0x2f,0x15,0x01,0x15,0x15,0x0d,0x1b,0xb8,0x04,0xfb,0xb6,0x2f,0x3c,0x3f,0x3c,0x02,0x3c,0x32,0xb8,0x04,0xfb,0xb5,0x2f,0x25,0x01,0x25,0x0a,0x0d, +0xb8,0x04,0xfb,0x40,0x09,0x09,0x1f,0x06,0x2f,0x06,0x02,0x06,0x18,0x2b,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d,0x33,0xed,0x32,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x11,0x39,0x2f,0x5d,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x2f,0x33,0xed,0x12,0x39,0x31,0x30,0x05,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x35,0x16, +0x16,0x33,0x32,0x3e,0x02,0x37,0x21,0x35,0x21,0x36,0x36,0x37,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x15,0x33,0x25,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x26,0x26,0x04,0x02,0xc3,0x0d,0x3f,0x72,0xab,0x79,0x58,0xad,0x58,0x67,0xab,0x45,0x3e,0x60,0x48,0x33, +0x11,0xfe,0x2a,0x01,0xf4,0x08,0x07,0x01,0x30,0x56,0x2a,0x42,0x7b,0x5e,0x39,0x30,0x55,0x75,0x45,0x42,0x7f,0x63,0x3d,0xb7,0xfe,0x96,0x0f,0x2a,0x32,0x35,0x1a,0x1c,0x37,0x2c,0x1b,0x20,0x3a,0x4e,0x2f,0x1b,0x4b,0x2a,0x02,0x09,0x0e,0x62,0xb5,0x8a,0x53,0x2c,0x2a,0xa6,0x2b,0x25,0x1b,0x31,0x43,0x28,0x6d,0x2b,0x58,0x2d,0x16,0x11, +0x29,0x4f,0x72,0x48,0x41,0x8e,0x77,0x4d,0x4f,0x9e,0xee,0x9f,0x09,0xef,0x33,0x55,0x3d,0x22,0x26,0x3d,0x4a,0x24,0x26,0x3c,0x29,0x16,0x0c,0x14,0x1d,0x33,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x31,0x02,0x26,0x0e,0x5e,0x00,0x00,0x01,0x07,0x0a,0x6d,0x00,0xe5,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x3a,0x01,0x3a,0x00,0x11, +0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x63,0x02,0x26,0x0e,0x5e,0x00,0x00,0x01,0x07,0x09,0x30,0x00,0xe4,0xfd,0x55,0x00,0x0c,0xb5,0x03,0x02,0x2f,0x3a,0x01,0x3a,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x59,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x07,0x09,0x73,0x00,0xe5,0xfd,0x55, +0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x31,0x02,0x26,0x0e,0x5e,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0xe5,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x3a,0x01,0x3a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x04,0x79,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xd5,0x03,0xc9,0xff,0xff,0x00,0x00, +0xfd,0xff,0x04,0x02,0x05,0x91,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x03,0xc9,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xc4,0x05,0x5a,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0a,0x6d, +0x00,0x9c,0xfd,0x7e,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x04,0x79,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x03,0xc9,0xff,0xff,0xff,0xba,0xfd,0xc9,0x01,0xf2,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba, +0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x81,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x54, +0x00,0x83,0xfd,0xce,0x00,0x01,0x00,0x81,0x06,0xa6,0x01,0x86,0x07,0xab,0x00,0x13,0x00,0x19,0xbc,0x00,0x0a,0x05,0x0c,0x00,0x00,0x00,0x05,0x04,0xfe,0xb3,0x2f,0x0f,0x01,0x0f,0x00,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x13,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x81,0x13,0x23,0x2f,0x1d, +0x1c,0x31,0x22,0x14,0x14,0x22,0x31,0x1c,0x1d,0x2f,0x23,0x13,0x07,0x28,0x1c,0x31,0x22,0x14,0x14,0x22,0x31,0x1c,0x1d,0x2f,0x23,0x13,0x13,0x23,0x2f,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x05,0x1f,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x27,0x0f,0x53,0x05,0x50,0x03,0x57,0x00,0x07,0x0f,0x50,0x05,0x50,0xfe,0xab,0xff,0xff, +0xff,0xba,0xfe,0xa6,0x06,0xae,0x05,0x1f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x27,0x0f,0x53,0x02,0xa4,0x03,0x57,0x00,0x07,0x0f,0x50,0x02,0xa4,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x0a,0xb0,0x04,0xb2,0x00,0x26,0x0e,0x35,0x00,0x00,0x00,0x27,0x0f,0x50,0x05,0xca,0x04,0x02,0x00,0x07,0x0f,0x50,0x06,0x3c,0xfe,0xab,0xff,0xff, +0xff,0xba,0xfe,0xa6,0x08,0x04,0x04,0xb2,0x02,0x26,0x0e,0x36,0x00,0x00,0x00,0x27,0x0f,0x50,0x03,0x1e,0x04,0x02,0x00,0x07,0x0f,0x50,0x03,0x90,0xfe,0xab,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x55,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x03,0x0f, +0x00,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x55,0x00,0x83,0xfe,0xab,0x00,0x07,0x09,0x21,0x02,0xac,0x00,0x00,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x05,0xca,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x27,0x0f,0x53,0x02,0xad,0x04,0x02,0x00,0x07,0x0f,0x50,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0xca, +0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x53,0x00,0x9c,0x04,0x02,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07, +0x0f,0x53,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x04,0xb2,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x27,0x0f,0x53,0x02,0xad,0xfd,0xce,0x00,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x53,0x00,0x83,0xfd,0xce,0x00,0x07, +0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x04,0xb2,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x27,0x0f,0x51,0x02,0xad,0xfe,0xab,0x00,0x07,0x0f,0x50,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x83,0xfe,0xab,0x00,0x07, +0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfe,0x13,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x01,0x07,0x0a,0x6e,0x02,0xad,0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x35,0x01,0x35,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0x13,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0x83, +0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x26,0x01,0x26,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x05,0x5a,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0xad,0xfd,0x7e,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x05,0x5a,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0a,0x6d,0x00,0x9c,0xfd,0x7e,0xff,0xff, +0xff,0xba,0xff,0xf2,0x04,0xad,0x04,0x61,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x03,0xb1,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x52,0xfd,0xc9,0x04,0x02,0x07,0x0f,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x27, +0x0f,0x57,0x01,0x1d,0x04,0xad,0x00,0x07,0x0f,0x52,0x00,0xab,0xfd,0xce,0xff,0xff,0x00,0x52,0xfe,0x13,0x04,0x02,0x03,0xba,0x02,0x26,0x0e,0x2f,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0xab,0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x2b,0x01,0x2b,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x02,0x5e,0x02,0x26,0x0b,0x0c, +0x00,0x00,0x00,0x07,0x0f,0x5c,0x00,0xc0,0xfc,0xfa,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x05,0x1f,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x07,0x0f,0x56,0x05,0x50,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x05,0x1f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x07,0x0f,0x56,0x02,0xa4,0x03,0x57,0xff,0xff,0x00,0xab,0xfe,0xa6, +0x08,0x04,0x03,0x62,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x51,0x05,0x10,0xfe,0xab,0xff,0xff,0x00,0xab,0xfd,0xc9,0x08,0x04,0x03,0x62,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0x10,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x06,0xb3,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x90, +0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x07,0xcb,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x90,0x06,0x03,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x06,0x02,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xad,0xfd,0xce,0xff,0xff,0x00,0x39,0xfd,0xff,0x04,0xad,0x04,0x79,0x02,0x26,0x0e,0x57, +0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0x03,0xc9,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x04,0x79,0x02,0x26,0x0e,0x58,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0x03,0xc9,0xff,0xff,0x00,0x39,0xfd,0xff,0x04,0xad,0x02,0xb9,0x02,0x26,0x0e,0x57,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6, +0x04,0xad,0x02,0xaf,0x02,0x26,0x0e,0x58,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0xfe,0xab,0x00,0x04,0x00,0x9b,0xfd,0xf6,0x05,0x58,0x04,0xb6,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x82,0xb1,0x11,0x03,0xbb,0x05,0x0a,0x00,0x2c,0x00,0x31,0x05,0x0c,0xb2,0x30,0x30,0x38,0xbe,0x05,0x0c,0x00,0x39,0x00,0x34,0x05,0x0c,0x00, +0x35,0x00,0x22,0x05,0x0a,0x40,0x0e,0x1b,0x2c,0x39,0x35,0x1b,0x1b,0x35,0x39,0x2c,0x04,0x3d,0x3c,0x38,0x34,0xb8,0x04,0xfb,0xb5,0x3a,0x2f,0x37,0x01,0x37,0x33,0xb8,0x01,0x57,0xb5,0x30,0x2f,0x2f,0x01,0x2f,0x16,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x27,0x01,0x27,0x2f,0x1f,0x01,0x1f,0x11,0x09,0xba,0x04,0xfb,0x00,0x0a,0x05,0x03,0x00, +0x3f,0xed,0x39,0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xd6,0xed,0x2f,0x5d,0x33,0xed,0x32,0x11,0x12,0x01,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x39,0x31,0x30,0x01,0x16,0x16,0x15,0x15,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34, +0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x27,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x84,0x11,0x11,0x0b,0x26,0x46,0x3b,0x19,0x1b,0x3b,0x3a,0x34,0x14,0x04,0x1b,0x56,0x79,0x9e,0x63,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x94, +0x5e,0x2b,0x11,0x10,0xe4,0xc9,0xc9,0xab,0xc9,0xc9,0x01,0x56,0xc9,0xc9,0x03,0x17,0x5d,0xac,0x51,0x21,0x47,0x62,0x3e,0x1c,0xa7,0x09,0x16,0x28,0x1e,0x3d,0x60,0x42,0x23,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x45,0x9d,0x64,0xe2,0xbd,0xf9,0x40,0xbd,0xbd,0xbd,0x00,0xff,0xff, +0xff,0xba,0xfe,0xa6,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x58,0x06,0x64,0x02,0x26,0x0e,0xcf,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x9f,0x02,0xac,0x00,0x07,0x0f,0x57,0x01,0x9f,0x04,0x02,0xff,0xff, +0xff,0xba,0xff,0xf2,0x02,0xac,0x07,0xba,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c,0x04,0x02,0x01,0x07,0x0f,0x57,0x00,0x72,0x05,0x58,0x00,0x0a,0xb4,0x01,0x20,0x21,0x01,0x21,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x58,0x05,0x63,0x02,0x26,0x0e,0xcf,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x9f, +0x02,0xac,0x01,0x07,0x0a,0x6d,0x01,0x9f,0xfd,0x87,0x00,0x0a,0xb4,0x01,0x20,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x06,0xb9,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c,0x04,0x02,0x01,0x07,0x0a,0x6d,0x00,0x9c,0xfe,0xdd,0x00,0x14,0x40,0x0a,0x02,0x2f,0x25,0x01,0x25,0x01, +0x20,0x21,0x01,0x21,0x00,0x11,0x5d,0x35,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x05,0x1f,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x07,0x0f,0x52,0x05,0x50,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x05,0x1f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x07,0x0f,0x52,0x02,0xa4,0x03,0x57,0x00,0x03,0x00,0x7e, +0xfd,0xfe,0x04,0x2d,0x03,0x54,0x00,0x24,0x00,0x3e,0x00,0x4c,0x00,0x6a,0xb4,0x24,0x02,0x1b,0x1b,0x34,0xb8,0x05,0x0e,0xb2,0x44,0x4c,0x2b,0xb8,0x05,0x0d,0xb7,0x28,0x44,0x28,0x44,0x28,0x4e,0x10,0x21,0xbb,0x05,0x0a,0x00,0x02,0x00,0x39,0x04,0xfd,0xb6,0x3f,0x28,0x28,0x25,0x25,0x3f,0x47,0xb8,0x04,0xfd,0x40,0x0f,0x2a,0x2f,0x2f, +0x01,0x2f,0x1c,0x07,0x1b,0x03,0x14,0x2f,0x24,0x01,0x24,0x0d,0xb9,0x04,0xff,0x00,0x14,0x00,0x2f,0xed,0x2f,0x5d,0x12,0x17,0x39,0x2f,0x5d,0xc6,0xfd,0xc6,0x32,0x2f,0x32,0x2f,0x10,0xed,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x32,0x2f,0x11,0x39,0x31,0x30,0x01,0x26,0x35,0x34,0x3e,0x02,0x37,0x35, +0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x03,0x16,0x16,0x17,0x11,0x33,0x11,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x25,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x01,0x2b,0xad,0x53,0xa8,0xfe, +0xac,0x30,0x4c,0x52,0x63,0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54,0x5c,0x6d,0x48,0x20,0xc5,0xfe,0xe2,0xb8,0x58,0x5d,0x58,0x07,0x17,0x3f,0x29,0x59,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x01,0x4f,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0xfd,0xfe, +0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35,0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x01,0x1e,0x02,0x03,0x02,0x01,0xf7,0xfe,0xa5,0x01,0x3e,0x46,0x24,0x3d,0x50,0x2c,0x40,0x46,0x21,0x06,0x01,0x03,0x04,0x03,0x5e,0x02,0x0e,0x1c,0x1a,0x3b,0x38,0x1f, +0x33,0x43,0x24,0x00,0x00,0x04,0x00,0x7e,0xfd,0xfe,0x05,0x58,0x03,0x54,0x00,0x24,0x00,0x3e,0x00,0x4c,0x00,0x5a,0x00,0x7e,0xb2,0x1b,0x1b,0x34,0xb8,0x05,0x0e,0xb5,0x44,0x58,0x58,0x44,0x4c,0x2b,0xb8,0x05,0x0d,0x40,0x0b,0x28,0x44,0x28,0x44,0x28,0x5c,0x24,0x02,0x4d,0x10,0x21,0xbf,0x05,0x0a,0x00,0x02,0x00,0x50,0x04,0xfb,0x00, +0x52,0x05,0x03,0x00,0x39,0x04,0xfd,0xb6,0x3f,0x28,0x28,0x25,0x25,0x3f,0x47,0xb8,0x04,0xfd,0x40,0x10,0x2a,0x2f,0x2f,0x01,0x2f,0x1b,0x07,0x1c,0x4d,0x04,0x14,0x2f,0x24,0x01,0x24,0x0d,0xb9,0x04,0xff,0x00,0x14,0x00,0x2f,0xed,0x2f,0x5d,0x12,0x17,0x39,0x2f,0x5d,0xc6,0xfd,0xc6,0x32,0x2f,0x32,0x2f,0x10,0xed,0x3f,0xed,0x01,0x2f, +0xed,0x39,0x2f,0x12,0x39,0x11,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x26,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x03,0x16,0x16,0x17,0x11,0x33,0x11,0x17,0x36,0x36,0x33, +0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x25,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x01,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x36,0x36,0x01,0x2b,0xad,0x53,0xa8,0xfe,0xac,0x30,0x4c,0x52,0x63,0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54,0x5c,0x6d,0x48,0x20,0xc5, +0xfe,0xe2,0xb8,0x58,0x5d,0x58,0x06,0x17,0x3f,0x29,0x59,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x01,0x4f,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0x01,0xba,0x06,0x74,0x68,0x1f,0x37,0x4f,0x77,0x52,0x2c,0x04,0x1f,0x3f,0xfd,0xfe,0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35, +0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x01,0x1e,0x02,0x03,0x02,0x01,0xf7,0xfe,0xa5,0x01,0x3e,0x46,0x24,0x3d,0x50,0x2c,0x40,0x46,0x21,0x06,0x01,0x03,0x04,0x03,0x5e,0x02,0x0e,0x1c,0x1a,0x3b,0x38,0x1f,0x33,0x43,0x24,0x02,0x43,0x68,0x55, +0xa7,0x30,0x56,0x74,0x44,0x0b,0x13,0x00,0xff,0xff,0xff,0xba,0xfe,0x03,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x56,0xfe,0x03,0xff,0xff,0xff,0xba,0xfe,0x03,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x56,0xfe,0x03,0x00,0x05,0x00,0x7e,0xfd,0xfa,0x04,0x2d, +0x03,0x54,0x00,0x24,0x00,0x3e,0x00,0x4c,0x00,0x50,0x00,0x54,0x00,0x9d,0xb9,0x00,0x52,0x05,0x0a,0xb7,0x51,0x51,0x44,0x24,0x02,0x1b,0x1b,0x34,0xbb,0x05,0x0e,0x00,0x44,0x00,0x2b,0x05,0x0d,0xb4,0x2c,0x4c,0x28,0x28,0x4d,0xb8,0x05,0x0a,0xb7,0x4e,0x44,0x4e,0x44,0x4e,0x56,0x10,0x21,0xb8,0x05,0x0a,0xb4,0x02,0x2c,0x2a,0x52,0x4d, +0xb8,0x05,0x02,0xb2,0x53,0x50,0x39,0xb8,0x04,0xfd,0x40,0x0a,0x3f,0x28,0x28,0x25,0x25,0x2f,0x3f,0x01,0x3f,0x47,0xb8,0x04,0xfd,0x40,0x10,0x2f,0x2f,0x3f,0x2f,0x02,0x2f,0x2f,0x2a,0x01,0x2a,0x1c,0x07,0x1b,0x03,0x00,0x0d,0xb8,0x04,0xff,0xb4,0x14,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0xed,0x12,0x17,0x39,0x2f,0x5d,0x2f,0x5d, +0xfd,0xc6,0x5d,0x32,0x2f,0x32,0x2f,0x10,0xfd,0xd6,0x32,0xed,0x32,0x11,0x39,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0x39,0x39,0xed,0x10,0xed,0x32,0x2f,0x11,0x39,0x11,0x39,0x2f,0xed,0x31,0x30,0x01,0x26,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04, +0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x03,0x16,0x16,0x17,0x11,0x33,0x15,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x25,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x2b,0xad,0x53,0xa8,0xfe,0xac,0x30,0x4c,0x52,0x63, +0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54,0x5c,0x6d,0x48,0x20,0xc5,0xfe,0xe2,0xb8,0x58,0x5d,0x58,0x07,0x17,0x3f,0x29,0x59,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x01,0x4f,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0x21,0xb9,0xb9,0x01,0x42,0xb9,0xb9, +0xfd,0xfe,0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35,0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x01,0x82,0x02,0x03,0x02,0x01,0x93,0xf7,0x01,0x3e,0x46,0x24,0x3d,0x50,0x2c,0x40,0x46,0x21,0x06,0x01,0x03,0x04,0x03,0x5e,0x02,0x0e,0x1c,0x1a,0x3b,0x38, +0x1f,0x33,0x43,0x24,0xfe,0x83,0xb5,0xb5,0xb5,0x00,0x00,0x06,0x00,0x7e,0xfd,0xfa,0x05,0x58,0x03,0x54,0x00,0x24,0x00,0x3e,0x00,0x4c,0x00,0x5a,0x00,0x5e,0x00,0x62,0x00,0xb1,0xb2,0x24,0x02,0x4d,0xb8,0x05,0x0b,0xb3,0x58,0x58,0x44,0x60,0xb8,0x05,0x0a,0xb3,0x34,0x5f,0x5f,0x34,0xbb,0x05,0x0e,0x00,0x44,0x00,0x2b,0x05,0x0d,0xb4, +0x2c,0x4c,0x28,0x28,0x5b,0xb8,0x05,0x0a,0xb7,0x5c,0x44,0x5c,0x44,0x5c,0x64,0x10,0x21,0xb8,0x05,0x0a,0xb2,0x02,0x5f,0x5b,0xb8,0x04,0xfb,0x40,0x0a,0x61,0x2f,0x5e,0x01,0x5e,0x51,0x50,0x50,0x2f,0x39,0xb8,0x04,0xfd,0x40,0x0a,0x3f,0x28,0x28,0x25,0x25,0x2f,0x3f,0x01,0x3f,0x47,0xb8,0x04,0xfd,0xb3,0x2c,0x52,0x2a,0x2f,0xba,0x04, +0xfb,0x00,0x52,0x05,0x03,0xb6,0x4d,0x1c,0x07,0x1b,0x04,0x00,0x0d,0xb8,0x04,0xff,0xb4,0x14,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0xed,0x12,0x17,0x39,0x3f,0xf4,0xc6,0x12,0x39,0xfd,0xc6,0x5d,0x32,0x2f,0x32,0x2f,0x10,0xed,0x11,0x33,0x11,0x33,0x2f,0x5d,0x33,0xed,0x32,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed, +0x39,0x2f,0x39,0x39,0xed,0x10,0xed,0x32,0x2f,0x10,0xe4,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x26,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x03,0x16,0x16,0x17,0x11,0x33,0x15,0x17,0x36,0x36,0x33,0x32,0x1e,0x02, +0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x25,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x01,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x36,0x36,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x2b,0xad,0x53,0xa8,0xfe,0xac,0x30,0x4c,0x52,0x63,0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54, +0x5c,0x6d,0x48,0x20,0xc5,0xfe,0xe2,0xb8,0x58,0x5d,0x58,0x33,0x17,0x3f,0x29,0x59,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x01,0x4f,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0x01,0xe7,0x06,0x74,0x68,0x1f,0x37,0x4f,0x77,0x52,0x2c,0x04,0x1f,0x3f,0xfe,0x86,0xb9,0xb9, +0x01,0x42,0xb9,0xb9,0xfd,0xfe,0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35,0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x01,0x82,0x02,0x03,0x02,0x01,0x93,0xf7,0x01,0x3e,0x46,0x24,0x3d,0x50,0x2c,0x40,0x46,0x21,0x06,0x01,0x03,0x04,0x03,0x5e,0x02,0x0e, +0x1c,0x1a,0x3b,0x38,0x1f,0x33,0x43,0x24,0x01,0xdf,0x68,0x55,0xa7,0x30,0x56,0x74,0x44,0x0b,0x13,0xfc,0xac,0xb5,0xb5,0xb5,0x00,0x04,0xff,0xba,0xfd,0xfa,0x04,0x68,0x02,0xdb,0x00,0x42,0x00,0x50,0x00,0x54,0x00,0x58,0x00,0x92,0xb1,0x0d,0x30,0xb8,0x05,0x0e,0xb2,0x48,0x48,0x55,0xb8,0x05,0x0a,0xb2,0x56,0x50,0x27,0xb8,0x05,0x0d, +0xb2,0x3f,0x3f,0x51,0xb8,0x05,0x0a,0x40,0x09,0x52,0x56,0x52,0x56,0x52,0x5a,0x15,0x55,0x51,0xb8,0x04,0xfb,0x40,0x09,0x57,0x54,0x43,0x3e,0x3e,0x43,0x3b,0x3b,0x35,0xb8,0x04,0xfd,0xb4,0x2f,0x43,0x01,0x43,0x4b,0xb8,0x04,0xfd,0x40,0x0b,0x27,0x2f,0x2b,0x01,0x2b,0x20,0x0c,0x21,0x03,0x00,0x12,0xb8,0x04,0xff,0xb7,0x2f,0x19,0x01, +0x19,0x26,0x3f,0x3f,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x39,0x11,0x33,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x5d,0x33,0xfd,0xd6,0x5d,0xed,0x33,0x2f,0x11,0x33,0x2f,0x10,0xd4,0x32,0xed,0x32,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0xed,0x32,0x10,0xed,0x39,0x2f,0xed,0x39,0x31,0x30,0x15,0x22, +0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x0e,0x03,0x07,0x15,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x27,0x16,0x16,0x17,0x35,0x06,0x06,0x23,0x05,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e, +0x02,0x07,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x23,0x23,0x23,0x23,0x3b,0x7b,0xda,0xc7,0xb9,0x5a,0x3a,0x59,0x60,0x76,0x57,0x4e,0x7e,0x33,0x37,0x84,0x4e,0x50,0x79,0x66,0x5c,0x65,0x76,0x4e,0x20,0x2c,0x75,0x95,0xb4,0x6a,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x0d,0x17,0x3e, +0x2a,0x51,0xb4,0x64,0x02,0x46,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0x21,0xaf,0xaf,0x01,0x38,0xaf,0xaf,0x0e,0x34,0x20,0x20,0x33,0x31,0x4f,0x64,0x32,0x05,0x18,0x30,0x25,0x18,0x14,0x10,0x9d,0x12,0x17,0x1b,0x28,0x2f,0x29,0x1c,0x01,0xbb,0x09,0x41,0x57,0x5f,0x27,0x7a,0x01,0x3d,0x42,0x22,0x39,0x4b,0x29,0x3a, +0x40,0x1e,0x05,0x01,0x03,0x04,0x03,0x62,0x02,0x03,0x02,0xe6,0x17,0x1c,0xb5,0x02,0x0c,0x18,0x17,0x33,0x30,0x1b,0x2c,0x3a,0x1f,0xfe,0xbd,0xab,0xab,0xab,0x00,0x04,0xff,0xba,0xfd,0xfa,0x04,0xad,0x02,0xdb,0x00,0x4f,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0xa7,0xb1,0x0d,0x3d,0xb8,0x05,0x0e,0xb6,0x55,0x55,0x62,0x63,0x30,0x30,0x24, +0xba,0x05,0x0b,0x00,0x62,0x05,0x0a,0xb2,0x63,0x5d,0x34,0xb8,0x05,0x0d,0xb2,0x4c,0x4c,0x5e,0xb8,0x05,0x0a,0x40,0x09,0x5f,0x63,0x5f,0x63,0x5f,0x67,0x66,0x62,0x5e,0xb8,0x04,0xfb,0xb2,0x64,0x61,0x42,0xb8,0x04,0xfd,0x40,0x0a,0x50,0x4b,0x4b,0x48,0x48,0x2f,0x50,0x01,0x50,0x58,0xb8,0x04,0xfd,0xb5,0x34,0x2f,0x38,0x01,0x38,0x2a, +0xb8,0x05,0x03,0xb7,0x30,0x24,0x21,0x0c,0x20,0x05,0x00,0x12,0xb8,0x04,0xff,0x40,0x09,0x2f,0x19,0x01,0x19,0x33,0x4c,0x4c,0x29,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x39,0x11,0x33,0x2f,0x5d,0xed,0x12,0x17,0x39,0x3f,0x2f,0x5d,0x33,0xfd,0xc6,0x5d,0x32,0x2f,0x32,0x2f,0x10,0xfd,0xd6,0x32,0xed,0x32,0x11, +0x12,0x01,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0xed,0x32,0x10,0xfd,0xe4,0x33,0x2f,0x11,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x06,0x07,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02, +0x27,0x06,0x06,0x07,0x15,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x27,0x16,0x16,0x17,0x35,0x06,0x06,0x23,0x05,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x23,0x23,0x23,0x23,0x3b,0x7b,0xda,0xc7,0xb9,0x5a,0x3a,0x59,0x60,0x76,0x57, +0x4e,0x7e,0x33,0x37,0x84,0x4e,0x4f,0x7a,0x66,0x5c,0x64,0x77,0x4e,0x20,0x1d,0x46,0x2a,0x03,0x14,0x35,0x5c,0x4a,0x14,0x62,0x7c,0x49,0x1e,0x04,0x48,0xad,0x67,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x0d,0x17,0x3e,0x2a,0x51,0xb4,0x64,0x02,0x46,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23, +0x3f,0x35,0x2a,0x0f,0x21,0xaf,0xaf,0x01,0x38,0xaf,0xaf,0x0e,0x34,0x20,0x20,0x33,0x31,0x4f,0x64,0x32,0x05,0x18,0x2f,0x26,0x18,0x14,0x10,0x9d,0x12,0x17,0x1b,0x28,0x2f,0x29,0x1c,0x01,0xbb,0x06,0x22,0x17,0x27,0x36,0x23,0x10,0xa7,0x29,0x45,0x59,0x31,0x2a,0x5a,0x25,0x7a,0x01,0x3c,0x43,0x22,0x39,0x4b,0x29,0x3a,0x40,0x1e,0x05, +0x01,0x03,0x04,0x03,0x62,0x02,0x03,0x02,0xe5,0x17,0x1b,0xb5,0x02,0x0c,0x18,0x17,0x33,0x30,0x1b,0x2c,0x3a,0x1f,0xfe,0xbd,0xab,0xab,0xab,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x07,0x0d,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x27,0x0f,0x51,0x05,0x46,0x03,0x57,0x01,0x07,0x0f,0x57,0x05,0x46,0x04,0xab,0x00,0x0c,0xb5,0x02, +0x01,0x20,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x07,0x0d,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x27,0x0f,0x51,0x05,0x46,0x03,0x57,0x01,0x07,0x0f,0x57,0x05,0x46,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x5b,0x01,0x5b,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4, +0x07,0x0d,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x27,0x0f,0x51,0x02,0xa4,0x03,0x57,0x01,0x07,0x0f,0x57,0x02,0xa4,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x45,0x01,0x45,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x07,0x0d,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x27,0x0f,0x51,0x02,0xa4,0x03,0x57,0x01,0x07, +0x0f,0x57,0x02,0xa4,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0xc6,0x07,0x0d,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x9a,0x03,0x57,0x01,0x07,0x0f,0x57,0x00,0x9a,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x1d,0x01,0x1d,0x00,0x11,0x5d, +0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x07,0x0d,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x9a,0x03,0x57,0x01,0x07,0x0f,0x57,0x00,0x9a,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x26,0x01,0x26,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x06,0x8c,0x02,0x26,0x09,0x13,0x00,0x00, +0x00,0x07,0x0f,0x57,0x01,0x56,0x04,0x2a,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x06,0x8c,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x56,0x04,0x2a,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x7c,0x06,0x13,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x56,0x03,0xb1,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad, +0x06,0x13,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x56,0x03,0xb1,0xff,0xff,0x00,0x17,0x00,0x00,0x01,0xf2,0x07,0x6e,0x00,0x27,0x09,0x0d,0x00,0xab,0x00,0x00,0x00,0x06,0x0f,0x5e,0x00,0x00,0xff,0xff,0x00,0x17,0xff,0xf2,0x02,0xac,0x07,0x6e,0x00,0x27,0x08,0xc7,0x00,0xab,0x00,0x00,0x00,0x06,0x0f,0x5e,0x00,0x00, +0xff,0xff,0x00,0x16,0x00,0x00,0x01,0xfa,0x07,0x6e,0x00,0x27,0x09,0x0d,0x00,0xab,0x00,0x00,0x00,0x06,0x0f,0x5f,0x00,0x00,0xff,0xff,0x00,0x16,0xff,0xf2,0x02,0xac,0x07,0x6e,0x00,0x27,0x08,0xc7,0x00,0xab,0x00,0x00,0x00,0x06,0x0f,0x5f,0x00,0x00,0xff,0xff,0x00,0x9a,0xff,0x55,0x05,0x91,0x05,0x8a,0x02,0x26,0x09,0x2a,0x00,0x00, +0x01,0x07,0x0f,0x5e,0x00,0xab,0xfe,0x1c,0x00,0x0a,0xb4,0x01,0x2f,0x36,0x01,0x36,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x04,0xdf,0x02,0x26,0x08,0xf7,0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xa1,0xfd,0x71,0x00,0x0e,0xb7,0x01,0x2f,0x45,0x01,0x2f,0x45,0x01,0x45,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0xff,0xba, +0xfe,0xa6,0x02,0x4c,0x05,0xf6,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x01,0x07,0x0f,0x5e,0x00,0xd5,0xfe,0x88,0x00,0x0a,0xb4,0x03,0x2f,0x1f,0x01,0x1f,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0xf6,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab, +0x01,0x07,0x0f,0x5e,0x00,0xd5,0xfe,0x88,0x00,0x0a,0xb4,0x03,0x2f,0x28,0x01,0x28,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x55,0x05,0x91,0x05,0x8a,0x02,0x26,0x09,0x2a,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xab,0xfe,0x1c,0x00,0x0a,0xb4,0x01,0x2f,0x59,0x01,0x59,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae, +0x04,0xdf,0x02,0x26,0x08,0xf7,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xa1,0xfd,0x71,0x00,0x0e,0xb7,0x01,0x2f,0x68,0x01,0x2f,0x68,0x01,0x68,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x96,0x05,0xf6,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x01,0x07,0x0f,0x5f,0x00,0x9c,0xfe,0x88, +0x00,0x0a,0xb4,0x03,0x2f,0x42,0x01,0x42,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0xf6,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x01,0x07,0x0f,0x5f,0x00,0x9c,0xfe,0x88,0x00,0x0a,0xb4,0x03,0x2f,0x42,0x01,0x42,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xfd,0x78,0x05,0x91, +0x04,0xaa,0x02,0x27,0x09,0x2a,0x00,0x00,0x00,0x95,0x01,0x07,0x0f,0x60,0x02,0x01,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x42,0x01,0x42,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xfd,0x78,0x06,0xae,0x02,0xbd,0x02,0x26,0x0f,0x61,0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0xc8,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x43,0x01,0x43,0x00,0x11, +0x5d,0x35,0xff,0xff,0xff,0xba,0xfd,0x78,0x02,0x75,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x01,0x07,0x0f,0x60,0x00,0x9c,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x33,0x01,0x33,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfd,0x78,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x01,0x07,0x0f,0x60,0x00,0x9c,0xf8,0x34,0x00,0x0a, +0xb4,0x01,0x2f,0x42,0x01,0x42,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x17,0xfd,0xff,0x03,0xf4,0x04,0xc3,0x00,0x27,0x09,0x29,0x00,0xab,0x00,0x00,0x00,0x07,0x0f,0x5e,0x00,0x00,0xfd,0x55,0xff,0xff,0x00,0x17,0xfd,0xff,0x04,0xad,0x04,0xc3,0x00,0x27,0x0e,0x5e,0x00,0xab,0x00,0x00,0x00,0x07,0x0f,0x5e,0x00,0x00,0xfd,0x55,0xff,0xff, +0x00,0x16,0xfd,0xff,0x03,0xf4,0x04,0xc3,0x00,0x27,0x09,0x29,0x00,0xab,0x00,0x00,0x00,0x07,0x0f,0x5f,0x00,0x00,0xfd,0x55,0xff,0xff,0x00,0x16,0xfd,0xff,0x04,0xad,0x04,0xc3,0x00,0x27,0x0e,0x5e,0x00,0xab,0x00,0x00,0x00,0x07,0x0f,0x5f,0x00,0x00,0xfd,0x55,0xff,0xff,0x00,0x72,0xff,0xea,0x06,0xe5,0x05,0x6e,0x02,0x26,0x09,0x65, +0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xab,0xfe,0x00,0x00,0x0e,0xb7,0x01,0x2f,0x2c,0x01,0x2f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26,0x09,0x66,0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xab,0xfb,0xff,0x00,0x0a,0xb4,0x01,0x2f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff, +0x00,0x72,0xff,0xea,0x06,0xe5,0x05,0x6e,0x02,0x26,0x09,0x65,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xab,0xfe,0x00,0x00,0x0e,0xb7,0x01,0x2f,0x2c,0x01,0x2f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26,0x09,0x66,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xab,0xfb,0xff,0x00,0x0a, +0xb4,0x01,0x2f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0x00,0x02,0x00,0x7e,0xfd,0xfe,0x04,0x2c,0x03,0x54,0x00,0x24,0x00,0x4a,0x00,0x65,0xb9,0x00,0x3e,0x05,0x0b,0xb5,0x31,0x31,0x38,0x24,0x02,0x37,0xb8,0x05,0x0d,0xb4,0x38,0x38,0x4c,0x10,0x21,0xb8,0x05,0x0a,0x40,0x09,0x02,0x2f,0x37,0x01,0x37,0x47,0x25,0x28,0x2e,0xb8,0x04,0xfd, +0x40,0x13,0x41,0x4a,0x4a,0x41,0x41,0x2f,0x25,0x01,0x25,0x1c,0x07,0x1b,0x03,0x14,0x2f,0x24,0x01,0x24,0x0d,0xb9,0x04,0xff,0x00,0x14,0x00,0x2f,0xed,0x2f,0x5d,0x12,0x17,0x39,0x2f,0x5d,0x33,0x2f,0x33,0x2f,0x10,0xfd,0xc4,0x11,0x39,0x2f,0x5d,0x01,0x2f,0xed,0x39,0x12,0x39,0x2f,0xed,0x11,0x39,0x11,0x39,0x2f,0xed,0x31,0x30,0x01, +0x26,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x06,0x06,0x07,0x23,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x01, +0x2b,0xad,0x53,0xa8,0xfe,0xac,0x30,0x4c,0x52,0x63,0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54,0x5c,0x6d,0x48,0x20,0xc5,0xfe,0xe2,0xb8,0x58,0x5d,0x58,0x01,0xd3,0x1e,0x2e,0x0f,0x69,0x06,0x14,0x19,0x20,0x12,0x11,0x0f,0x09,0x0a,0x09,0x59,0x0b,0x0d,0x0b,0x42,0x2e,0x1e,0x33,0x29,0x1e,0x09,0x02,0x0b,0x17,0x10,0xfd, +0xfe,0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35,0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x02,0xd6,0x30,0x7c,0x3f,0x18,0x31,0x27,0x19,0x15,0x10,0x0d,0x27,0x46,0x6b,0x51,0x6d,0x6a,0x54,0x74,0x50,0x33,0x13,0x30,0x37,0x14,0x21,0x2b,0x17,0x21,0x35, +0x1c,0x00,0x00,0x03,0x00,0x7e,0xfd,0xfe,0x05,0x58,0x03,0x54,0x00,0x24,0x00,0x32,0x00,0x58,0x00,0x81,0xb5,0x24,0x55,0x33,0x03,0x02,0x25,0xbb,0x05,0x0b,0x00,0x30,0x00,0x4c,0x05,0x0b,0xb2,0x3f,0x3f,0x45,0xb8,0x05,0x0d,0xb7,0x46,0x30,0x46,0x30,0x46,0x5a,0x10,0x21,0xb8,0x05,0x0a,0x40,0x09,0x02,0x2f,0x45,0x01,0x45,0x55,0x33, +0x36,0x3c,0xb8,0x04,0xfd,0x40,0x0a,0x4f,0x58,0x58,0x4f,0x4f,0x2f,0x33,0x01,0x33,0x28,0xba,0x04,0xfb,0x00,0x2a,0x05,0x03,0x40,0x0a,0x1c,0x07,0x1b,0x03,0x14,0x2f,0x24,0x01,0x24,0x0d,0xb9,0x04,0xff,0x00,0x14,0x00,0x2f,0xed,0x2f,0x5d,0x12,0x17,0x39,0x3f,0xed,0x2f,0x5d,0x33,0x2f,0x33,0x2f,0x10,0xfd,0xc4,0x11,0x39,0x2f,0x5d, +0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x11,0x17,0x39,0x31,0x30,0x01,0x26,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x36, +0x36,0x07,0x06,0x06,0x07,0x23,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x01,0x2b,0xad,0x53,0xa8,0xfe,0xac,0x30,0x4c,0x52,0x63,0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54,0x5c,0x6d,0x48,0x20,0xc5,0xfe,0xe2,0xb8, +0x58,0x5d,0x58,0x02,0x89,0x06,0x74,0x68,0x1f,0x37,0x4f,0x77,0x52,0x2c,0x04,0x1f,0x3f,0x96,0x1e,0x2e,0x0f,0x69,0x06,0x14,0x19,0x20,0x12,0x11,0x0f,0x09,0x0a,0x09,0x59,0x0b,0x0d,0x0b,0x42,0x2e,0x1e,0x33,0x29,0x1e,0x09,0x02,0x0b,0x17,0x10,0xfd,0xfe,0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35,0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d, +0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x03,0x58,0x68,0x55,0xa7,0x30,0x56,0x74,0x44,0x0b,0x13,0x7a,0x30,0x7c,0x3f,0x18,0x31,0x27,0x19,0x15,0x10,0x0d,0x27,0x46,0x6b,0x51,0x6d,0x6a,0x54,0x74,0x50,0x33,0x13,0x30,0x37,0x14,0x21,0x2b,0x17,0x21,0x35,0x1c,0x00,0xff,0xff,0xff,0xba, +0xfd,0x78,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0x56,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfd,0x78,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0x56,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x52,0x01,0x52, +0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x05,0x50,0x02,0x26,0x09,0x19,0x00,0x00,0x01,0x07,0x0f,0x60,0x05,0x49,0xfd,0xdd,0x00,0x0a,0xb4,0x01,0x2f,0x6a,0x01,0x6a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x05,0x50,0x02,0x26,0x0e,0x31,0x00,0x00,0x01,0x07,0x0f,0x60,0x05,0x49,0xfd,0xdd, +0x00,0x0a,0xb4,0x01,0x2f,0x75,0x01,0x75,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4,0x05,0x50,0x02,0x26,0x08,0xd4,0x00,0x00,0x01,0x07,0x0f,0x60,0x02,0x9d,0xfd,0xdd,0x00,0x0a,0xb4,0x01,0x2f,0x5f,0x01,0x5f,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x05,0x50,0x02,0x26,0x0e,0x32,0x00,0x00, +0x01,0x07,0x0f,0x60,0x02,0x9d,0xfd,0xdd,0x00,0x0a,0xb4,0x01,0x2f,0x6a,0x01,0x6a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x04,0xb8,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x07,0x0a,0x6e,0x05,0x46,0xfc,0xdc,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x04,0xb8,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x07,0x0a,0x6e, +0x05,0x46,0xfc,0xdc,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4,0x04,0xb8,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x07,0x0a,0x6e,0x02,0xa4,0xfc,0xdc,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x04,0xb8,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x07,0x0a,0x6e,0x02,0xa4,0xfc,0xdc,0xff,0xff,0x00,0xab,0xff,0xea,0x05,0xf4,0x06,0xb3,0x02,0x26, +0x09,0x24,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0x73,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xae,0x06,0xb3,0x02,0x26,0x0e,0x55,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0x73,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0xb3,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x39,0x06,0x03,0xff,0xff,0xff,0xba, +0xff,0xf2,0x04,0x02,0x06,0xb3,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x39,0x06,0x03,0x00,0x01,0x00,0xa4,0xff,0xfb,0x01,0x5d,0x00,0xb0,0x00,0x03,0x00,0x19,0xbc,0x00,0x00,0x05,0x0a,0x00,0x01,0x00,0x02,0x04,0xfb,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x05,0x23,0x35,0x33,0x01, +0x5d,0xb9,0xb9,0x05,0xb5,0x00,0x00,0x02,0x00,0x03,0xff,0xfb,0x01,0xfe,0x00,0xb0,0x00,0x03,0x00,0x07,0x00,0x29,0xb9,0x00,0x00,0x05,0x0a,0xb3,0x01,0x01,0x08,0x04,0xb8,0x05,0x0a,0xb2,0x05,0x06,0x02,0xb8,0x05,0x02,0xb4,0x05,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0xed,0x32,0x01,0x2f,0xed,0x11,0x33,0x2f,0xed,0x31,0x30,0x17, +0x23,0x35,0x33,0x05,0x23,0x35,0x33,0xbc,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x05,0xb5,0xb5,0xb5,0x00,0x02,0x00,0xa4,0xff,0xfb,0x01,0x5d,0x01,0xc8,0x00,0x03,0x00,0x07,0x00,0x25,0xb1,0x04,0x00,0xb8,0x05,0x0a,0xb2,0x05,0x01,0x07,0xbb,0x05,0x02,0x00,0x04,0x00,0x02,0x05,0x02,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xfd,0xd6,0xed, +0x01,0x2f,0x33,0xed,0x32,0x31,0x30,0x05,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x5d,0xb9,0xb9,0xb9,0xb9,0x05,0xb5,0x63,0xb5,0x00,0x00,0x03,0x00,0x03,0xff,0xfb,0x01,0xfe,0x01,0xc8,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x41,0xbf,0x00,0x04,0x05,0x0a,0x00,0x05,0x00,0x08,0x05,0x0a,0x00,0x09,0x00,0x00,0x05,0x0a,0xb3,0x01,0x01, +0x0c,0x08,0xb8,0x05,0x02,0xb6,0x0b,0x0b,0x00,0x07,0x06,0x06,0x02,0xb8,0x05,0x02,0xb4,0x05,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0xed,0x32,0x11,0x33,0x11,0x33,0x2f,0xed,0x11,0x01,0x33,0x2f,0xed,0xd4,0xed,0xd6,0xed,0x31,0x30,0x17,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0xbc,0xb9,0xb9,0x01,0x42,0xb9,0xb9, +0xa1,0xb9,0xb9,0x05,0xb5,0xb5,0xb5,0x63,0xb5,0x00,0x00,0x03,0x00,0x03,0xff,0xfb,0x01,0xfe,0x01,0xc8,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x37,0xbf,0x00,0x04,0x05,0x0a,0x00,0x05,0x00,0x08,0x05,0x0a,0x00,0x09,0x00,0x00,0x05,0x0a,0xb2,0x01,0x04,0x00,0xb8,0x05,0x02,0xb3,0x06,0x03,0x03,0x0a,0xb8,0x05,0x02,0xb3,0x2f,0x08,0x01, +0x08,0x00,0x2f,0x5d,0xed,0x33,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0xd6,0xed,0xd4,0xed,0x31,0x30,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0xbc,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x01,0x13,0xb5,0xb5,0xb5,0xfe,0x33,0xb5,0x00,0x00,0x03,0xff,0x62,0xff,0xfb,0x02,0x9f,0x00,0xb0,0x00,0x03,0x00,0x07, +0x00,0x0b,0x00,0x35,0xbf,0x00,0x08,0x05,0x0a,0x00,0x09,0x00,0x04,0x05,0x0a,0x00,0x05,0x00,0x00,0x05,0x0a,0xb5,0x01,0x01,0x0c,0x0a,0x06,0x02,0xb8,0x05,0x02,0xb5,0x09,0x05,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0x32,0xed,0x32,0x32,0x11,0x01,0x33,0x2f,0xed,0xd4,0xed,0xd4,0xed,0x31,0x30,0x17,0x23,0x35,0x33,0x05,0x23,0x35, +0x33,0x05,0x23,0x35,0x33,0x1b,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x05,0xb5,0xb5,0xb5,0xb5,0xb5,0x00,0x04,0x00,0x03,0xff,0xfb,0x01,0xfe,0x01,0xc8,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x3f,0xb1,0x08,0x00,0xb8,0x05,0x0a,0xb5,0x09,0x01,0x01,0x10,0x0c,0x04,0xb8,0x05,0x0a,0xb3,0x0d,0x05,0x0d,0x08,0xb8, +0x05,0x02,0xb4,0x0e,0x0b,0x0b,0x06,0x02,0xb8,0x05,0x02,0xb4,0x05,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0xed,0x32,0x33,0x2f,0x33,0xed,0x32,0x01,0x2f,0x33,0xed,0x32,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x17,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x25,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0xbc,0xb9,0xb9,0x01,0x42,0xb9,0xb9, +0xfe,0xbe,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x05,0xb5,0xb5,0xb5,0x63,0xb5,0xb5,0xb5,0x00,0x02,0xff,0xc6,0x00,0x00,0x02,0x2c,0x02,0x62,0x00,0x19,0x00,0x27,0x00,0x44,0xb2,0x27,0x27,0x06,0xb8,0x05,0x0d,0xb3,0x03,0x03,0x28,0x0f,0xb8,0x05,0x0e,0xb4,0x1f,0x06,0x14,0x05,0x0a,0xb8,0x05,0x01,0xb7,0x22,0x00,0x27,0x1a,0x1a,0x03,0x03, +0x00,0xb8,0x05,0x01,0xb4,0x2f,0x14,0x01,0x14,0x02,0x00,0x3f,0x5d,0xed,0x32,0x2f,0x33,0x11,0x33,0x10,0xd4,0xfd,0xc6,0x12,0x39,0x01,0x2f,0xed,0x11,0x33,0x2f,0xed,0x32,0x2f,0x31,0x30,0x27,0x16,0x16,0x17,0x11,0x33,0x11,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x25,0x32,0x3e,0x02,0x35, +0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x3a,0x17,0x3f,0x29,0x59,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x01,0x4f,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0x72,0x02,0x03,0x02,0x01,0xf7,0xfe,0xa5,0x01,0x3e,0x46,0x24,0x3d,0x50,0x2c,0x40,0x46,0x21,0x06,0x01,0x03,0x04, +0x03,0x5e,0x02,0x0e,0x1c,0x1a,0x3b,0x38,0x1f,0x33,0x43,0x24,0x00,0x02,0xff,0x97,0x06,0x7d,0x01,0xf0,0x07,0xe8,0x00,0x1b,0x00,0x29,0x00,0x2b,0xbf,0x00,0x0e,0x05,0x0d,0x00,0x21,0x00,0x09,0x04,0xfd,0x00,0x24,0x00,0x1c,0x04,0xfd,0xb3,0x13,0x27,0x13,0x03,0xb8,0x04,0xfd,0xb1,0x18,0x13,0x00,0x2f,0xdc,0xed,0x11,0x39,0x10,0xfd, +0xd6,0xed,0x01,0x2f,0xed,0x31,0x30,0x03,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x07,0x25,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x69,0x2f,0x4d,0x27,0x0c,0x15,0x0b,0x24,0x77,0x4d,0x27,0x3c,0x29,0x16,0x21,0x39,0x4b,0x2a,0x20, +0x3e,0x3a,0x38,0x19,0x16,0x39,0x23,0x01,0x57,0x1c,0x2b,0x1e,0x10,0x2c,0x1f,0x27,0x4e,0x20,0x1a,0x37,0x06,0xcd,0x20,0x21,0x02,0x03,0x70,0x6f,0x1b,0x2d,0x3a,0x20,0x29,0x49,0x37,0x20,0x10,0x14,0x10,0x13,0x1b,0x56,0x13,0x1e,0x25,0x13,0x22,0x27,0x46,0x53,0x0a,0x0f,0x00,0x01,0x00,0x00,0x04,0x82,0x03,0x4b,0x07,0x38,0x00,0x03, +0x00,0x11,0xb6,0x03,0x01,0x00,0x2f,0x02,0x01,0x02,0x00,0x2f,0x5d,0xcd,0x01,0x2f,0xcd,0x31,0x30,0x11,0x35,0x01,0x15,0x03,0x4b,0x04,0x82,0x94,0x02,0x22,0x94,0x00,0x00,0x01,0x00,0x89,0xfe,0x0a,0x01,0x93,0xff,0xfa,0x00,0x1c,0x00,0x17,0xb9,0x00,0x03,0x05,0x0b,0xb2,0x17,0x1c,0x12,0xb9,0x04,0xfe,0x00,0x08,0x00,0x2f,0xfd,0xc4, +0x01,0x2f,0xed,0x31,0x30,0x05,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x01,0x5d,0x36,0x3a,0x06,0x0c,0x19,0x0e,0x1b,0x29,0x1b,0x0e,0x0f,0x1d,0x2c,0x1d,0x27,0x39,0x24,0x11,0x14,0x2a,0x44,0x30,0x46,0x17,0x57,0x33,0x17,0x16,0x03,0x05,0x14,0x20, +0x29,0x16,0x16,0x2b,0x21,0x15,0x22,0x3a,0x4c,0x2b,0x2c,0x54,0x49,0x3e,0x16,0x00,0x00,0x02,0x00,0x60,0xfd,0xff,0x01,0xa1,0xff,0x40,0x00,0x0b,0x00,0x17,0x00,0x2d,0xbf,0x00,0x03,0x05,0x0e,0x00,0x0f,0x00,0x15,0x05,0x0e,0x00,0x09,0x00,0x06,0x05,0x00,0xb4,0x2f,0x0c,0x01,0x0c,0x12,0xb8,0x05,0x00,0xb3,0x2f,0x00,0x01,0x00,0x00, +0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x05,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x02,0x41,0x5e,0x5e,0x41,0x45,0x5d,0x5d,0x45,0x23,0x31,0x31,0x23,0x25,0x32,0x32,0xc0,0x5d,0x45,0x41,0x5e,0x5e,0x41,0x45,0x5d,0xf6, +0x31,0x23,0x25,0x32,0x32,0x25,0x23,0x31,0x00,0x01,0x00,0x1e,0x04,0x20,0x02,0x8e,0x04,0x8d,0x00,0x03,0x00,0x10,0xb9,0x00,0x00,0x04,0xfd,0xb3,0x2f,0x03,0x01,0x03,0x00,0x2f,0x5d,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0x8e,0xfd,0x90,0x02,0x70,0x04,0x20,0x6d,0x00,0x00,0x02,0x00,0x3c,0xfd,0xff,0x01,0xc5,0xff,0x67,0x00,0x03, +0x00,0x07,0x00,0x21,0xbc,0x00,0x04,0x05,0x0b,0x00,0x05,0x00,0x00,0x05,0x0b,0xb2,0x01,0x04,0x00,0xb8,0x04,0xfe,0xb1,0x06,0x03,0x00,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x13,0x23,0x11,0x33,0x01,0x23,0x11,0x33,0xb5,0x79,0x79,0x01,0x10,0x79,0x79,0xfd,0xff,0x01,0x68,0xfe,0x98,0x01,0x68,0x00,0x01,0x00,0x17, +0x05,0x44,0x01,0x77,0x07,0x6e,0x00,0x0f,0x00,0x17,0xb9,0x00,0x09,0x05,0x0d,0xb2,0x0a,0x09,0x01,0xb9,0x05,0x01,0x00,0x02,0x00,0x2f,0xed,0x2f,0x01,0x2f,0xed,0x31,0x30,0x13,0x21,0x15,0x23,0x1e,0x03,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x17,0x01,0x60,0xee,0x09,0x0d,0x09,0x04,0x59,0x08,0x0f,0x16,0x07,0x6e,0x66,0x2c,0x4e,0x50, +0x58,0x35,0x6d,0x6a,0x3f,0x6b,0x68,0x6d,0x00,0x01,0x00,0x16,0x05,0x44,0x01,0xfa,0x07,0x6e,0x00,0x33,0x00,0x44,0xb9,0x00,0x31,0x05,0x0d,0xb2,0x2c,0x18,0x1c,0xb8,0x05,0x0d,0xb3,0x07,0x2e,0x1d,0x0a,0xb8,0x05,0x0d,0x40,0x0b,0x04,0x1c,0x18,0x02,0x0f,0x24,0x2f,0x2f,0x07,0x29,0x02,0xb8,0x05,0x01,0xb3,0x0f,0x15,0x15,0x0f,0x00, +0x2f,0x33,0x2f,0x10,0xfd,0x32,0xc6,0x32,0x11,0x33,0x11,0x12,0x39,0x2f,0x01,0x2f,0xed,0x2f,0x39,0x39,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x33,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x07,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x16,0x17, +0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x01,0x36,0x13,0x12,0x45,0x08,0x07,0x59,0x10,0x12,0x24,0x34,0x22,0x14,0x2d,0x19,0x0f,0x30,0x14,0x11,0x0f,0x01,0x06,0x06,0x59,0x07,0x0f,0x17,0x10,0x5c,0x09,0x0e,0x06,0x0f,0x0e,0x1f,0x1f,0x0f,0x58,0x0f,0x06,0x06,0xe6,0x04,0x47,0x12,0x24,0x0f,0x29,0x2b,0x20,0x39, +0x2c,0x19,0x0c,0x0e,0x0d,0x0c,0x03,0x01,0x2d,0x5f,0x42,0x6d,0x6a,0x3f,0x6b,0x68,0x6d,0x41,0x26,0x42,0x20,0x04,0x27,0x21,0x23,0x21,0x23,0x28,0x10,0x20,0x00,0x01,0x00,0x30,0x05,0x44,0x01,0xd9,0x07,0x73,0x00,0x25,0x00,0x2b,0xb9,0x00,0x19,0x05,0x0b,0xb2,0x0c,0x0c,0x12,0xb8,0x05,0x0d,0xb6,0x13,0x13,0x22,0x03,0x25,0x25,0x1c, +0xb8,0x05,0x01,0xb1,0x03,0x09,0x00,0x2f,0xc4,0xed,0x32,0x2f,0x12,0x39,0x2f,0x01,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x06,0x06,0x07,0x23,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x01,0xd9,0x1e,0x2e,0x0f,0x69,0x06,0x14, +0x19,0x20,0x12,0x11,0x0f,0x09,0x0a,0x09,0x59,0x0b,0x0d,0x0b,0x42,0x2e,0x1e,0x33,0x29,0x1e,0x09,0x02,0x0b,0x17,0x10,0x07,0x6e,0x30,0x7c,0x3f,0x18,0x31,0x27,0x19,0x15,0x10,0x0d,0x27,0x46,0x6b,0x51,0x6d,0x6a,0x54,0x74,0x50,0x33,0x13,0x30,0x37,0x14,0x21,0x2b,0x17,0x21,0x35,0x1c,0x00,0x00,0x01,0x00,0x9a,0xff,0xd2,0x06,0xae, +0x02,0xbd,0x00,0x42,0x00,0x4c,0xb9,0x00,0x14,0x05,0x0a,0xb2,0x2f,0x2f,0x0f,0xb8,0x05,0x0a,0xb3,0x34,0x34,0x44,0x27,0xbb,0x05,0x0a,0x00,0x20,0x00,0x0c,0x04,0xff,0xb4,0x2f,0x39,0x01,0x39,0x1b,0xb8,0x04,0xfb,0x40,0x09,0x2f,0x2c,0x01,0x2c,0x2f,0x24,0x01,0x24,0x00,0xba,0x04,0xfb,0x00,0x01,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d, +0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x25,0x15,0x23,0x22,0x2e,0x04,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x35,0x34,0x3e,0x02, +0x33,0x32,0x16,0x17,0x1e,0x05,0x06,0xae,0x16,0x41,0x63,0x4d,0x3a,0x2f,0x27,0x14,0x1a,0x2b,0x1d,0x1c,0x1f,0x12,0x15,0x12,0x29,0x48,0x60,0x6e,0x76,0x39,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x21,0x5a,0xa1,0x81,0xa0,0x91,0x10,0x13,0x10,0x21,0x3a,0x4e,0x2c,0x3d,0x65,0x2a,0x12,0x1e,0x21,0x29,0x3a,0x50,0x99,0xa7,0x22, +0x3a,0x4c,0x53,0x55,0x25,0x33,0x2e,0x24,0x17,0x11,0x27,0x2d,0x36,0x20,0x2e,0x4a,0x39,0x28,0x1b,0x0c,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6f,0x3e,0x4a,0x7c,0x5c,0x33,0x41,0x38,0x14,0x29,0x2b,0x31,0x1d,0x27,0x45,0x33,0x1e,0x41,0x4d,0x20,0x49,0x47,0x41,0x32,0x1d,0x00,0xff,0xff,0xff,0xa2,0x00,0x26,0x02,0xd4,0x06,0xbf, +0x02,0x26,0x0f,0x65,0x00,0x00,0x01,0x06,0x09,0x37,0x00,0x8f,0x00,0x0a,0xb4,0x01,0x2f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x49,0x00,0x26,0x02,0xd4,0x07,0x78,0x02,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x7e,0x00,0x8f,0xff,0xff,0x00,0x72,0xfd,0xfe,0x02,0xd4,0x05,0x58,0x02,0x26,0x0f,0x65,0x00,0x00,0x00,0x06, +0x09,0x7f,0x72,0x00,0x00,0x01,0x00,0x72,0x00,0x26,0x02,0xd4,0x05,0x58,0x00,0x03,0x00,0x0c,0xb4,0x02,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x25,0x01,0x33,0x01,0x02,0x32,0xfe,0x40,0xa6,0x01,0xbc,0x26,0x05,0x32,0xfa,0xce,0xff,0xff,0xff,0x97,0x00,0x26,0x02,0xd4,0x07,0x77,0x02,0x26,0x0f,0x65,0x00,0x00,0x00,0x06, +0x0f,0x58,0x00,0x8f,0xff,0xff,0xff,0xc2,0x00,0x26,0x02,0xd4,0x07,0x77,0x02,0x26,0x0f,0x65,0x00,0x00,0x01,0x07,0x09,0x77,0x00,0x00,0x08,0x0c,0x00,0x0a,0xb4,0x01,0x20,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x34,0xfd,0xfe,0x02,0xd4,0x05,0x58,0x02,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x77,0x72,0x00,0xff,0xff, +0x00,0x3a,0x00,0x26,0x02,0xf8,0x05,0xe9,0x02,0x26,0x0f,0x65,0xc8,0x00,0x00,0x07,0x09,0x7e,0x01,0x56,0xfe,0x00,0xff,0xff,0x00,0x17,0x00,0x26,0x03,0x7f,0x06,0xf6,0x00,0x27,0x0f,0x65,0x00,0xab,0x00,0x00,0x01,0x06,0x0f,0x5e,0x00,0x88,0x00,0x0a,0xb4,0x01,0x2f,0x04,0x01,0x04,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x16,0x00,0x26, +0x03,0x7f,0x06,0xf6,0x00,0x27,0x0f,0x65,0x00,0xab,0x00,0x00,0x01,0x06,0x0f,0x5f,0x00,0x88,0x00,0x0a,0xb4,0x01,0x2f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0x00,0x01,0xff,0xc8,0xff,0xf2,0x05,0x49,0x03,0x0f,0x00,0x37,0x00,0x4b,0xb9,0x00,0x1a,0x05,0x0a,0xb2,0x17,0x23,0x0d,0xbb,0x05,0x0a,0x00,0x0a,0x00,0x00,0x05,0x0a,0xb3,0x30, +0x30,0x30,0x33,0xb8,0x04,0xff,0xb6,0x2f,0x34,0x01,0x34,0x23,0x12,0x05,0xbc,0x04,0xfb,0x00,0x28,0x05,0x03,0x00,0x1f,0x05,0x03,0xb4,0x18,0x2f,0x0b,0x01,0x0b,0x00,0x2f,0x5d,0xc6,0x3f,0x3f,0xed,0x32,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x01,0x2f,0xed,0xd4,0xed,0x39,0xd4,0xed,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35, +0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x04,0x35,0x35,0x26,0x26,0x23,0x37,0x32,0x16,0x17,0x01,0x47,0x0b,0x24,0x44,0x39,0x24,0x43,0x33,0x1f,0x9c,0x0b,0x27,0x48,0x3e,0x26,0x40,0x2e,0x19,0x9c,0x39,0x5d,0x77,0x3f,0x5b,0x84,0x24, +0x04,0x1a,0x42,0x47,0x48,0x21,0x46,0x65,0x47,0x2c,0x18,0x09,0x3a,0x70,0x39,0x17,0x57,0xb6,0x5b,0x01,0x95,0x41,0x5f,0x3e,0x1e,0x10,0x2a,0x48,0x38,0x01,0x0b,0xc6,0x43,0x60,0x3e,0x1e,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x37,0x6c,0x85,0x4a,0x19,0x36,0x45,0x23,0x2f,0x1d,0x0c,0x21,0x37,0x48,0x4e,0x50,0x23,0x13,0x05,0x03,0x9c, +0x09,0x08,0x00,0x01,0xff,0xc8,0xff,0xf2,0x06,0x03,0x03,0x0f,0x00,0x44,0x00,0x5c,0xb1,0x35,0x2a,0xb8,0x05,0x0a,0xb2,0x27,0x40,0x1d,0x41,0x09,0x05,0x0a,0x00,0x1a,0x00,0x10,0x05,0x0a,0x00,0x08,0x00,0x3a,0x05,0x03,0x00,0x30,0x05,0x03,0xb7,0x28,0x2f,0x1b,0x01,0x1b,0x08,0x08,0x0b,0xb8,0x04,0xff,0x40,0x0b,0x2f,0x0c,0x01,0x0c, +0x40,0x35,0x00,0x2f,0x22,0x22,0x15,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x11,0x33,0x11,0x39,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x2f,0x5d,0xc6,0x3f,0x3f,0x01,0x2f,0xed,0xd4,0xed,0x39,0xd4,0xed,0x39,0x31,0x30,0x05,0x22,0x2e,0x04,0x35,0x35,0x26,0x26,0x23,0x37,0x32,0x16,0x17,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e, +0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x01,0xea,0x46,0x65,0x47,0x2c,0x18,0x09,0x3a,0x70,0x39,0x17,0x57,0xb6,0x5b,0x0b,0x24,0x44,0x39,0x24,0x43,0x33,0x1f,0x9c,0x0b,0x27,0x48,0x3e, +0x26,0x40,0x2e,0x19,0x9c,0x0c,0x27,0x49,0x3e,0x16,0x5d,0x70,0x1f,0x06,0x17,0x3a,0x42,0x47,0x24,0x2c,0x4f,0x42,0x34,0x12,0x04,0x1a,0x42,0x47,0x48,0x0e,0x21,0x37,0x48,0x4e,0x50,0x23,0x13,0x05,0x03,0x9c,0x09,0x08,0x64,0x41,0x5f,0x3e,0x1e,0x10,0x2a,0x48,0x38,0x01,0x0b,0xc6,0x43,0x60,0x3e,0x1e,0x0f,0x2a,0x48,0x39,0x01,0xbc, +0xfe,0x8f,0x43,0x62,0x41,0x1f,0xa7,0x36,0x39,0x21,0x2a,0x1a,0x0a,0x0d,0x1c,0x2f,0x23,0x23,0x2f,0x1d,0x0c,0x00,0xff,0xff,0xff,0xc8,0xff,0xf2,0x05,0x49,0x05,0x1f,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xff,0xf2,0x06,0x03,0x05,0x1f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x07, +0x0f,0x53,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x05,0x49,0x04,0x07,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0xf9,0x03,0x57,0x00,0x07,0x0f,0x50,0x01,0xf9,0xfe,0xab,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x06,0x03,0x04,0x07,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0xf9,0x03,0x57,0x00,0x07, +0x0f,0x50,0x01,0xf9,0xfe,0xab,0xff,0xff,0xff,0xc8,0xfd,0xc9,0x05,0x49,0x03,0x0f,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0xf9,0xfd,0xce,0xff,0xff,0xff,0xc8,0xfd,0xc9,0x06,0x03,0x03,0x0f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0xf9,0xfd,0xce,0xff,0xff,0xff,0xc8,0xfd,0xc9,0x05,0x49,0x05,0x1f, +0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x27,0x0f,0x54,0x01,0xf9,0xfd,0xce,0x00,0x07,0x0f,0x53,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xfd,0xc9,0x06,0x03,0x05,0x1f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x27,0x0f,0x53,0x01,0xf9,0x03,0x57,0x00,0x07,0x0f,0x54,0x01,0xf9,0xfd,0xce,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x05,0x49,0x05,0x1f, +0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x27,0x0f,0x53,0x01,0xf9,0x03,0x57,0x00,0x07,0x0f,0x50,0x01,0xf9,0xfe,0xab,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x06,0x03,0x05,0x1f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x27,0x0f,0x53,0x01,0xf9,0x03,0x57,0x00,0x07,0x0f,0x50,0x01,0xf9,0xfe,0xab,0xff,0xff,0xff,0xc8,0xff,0xf2,0x05,0x49,0x05,0x1f, +0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xff,0xf2,0x06,0x03,0x05,0x1f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xff,0xf2,0x05,0x49,0x05,0x1f,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0xf9,0x03,0x57,0xff,0xff, +0xff,0xc8,0xff,0xf2,0x06,0x03,0x05,0x1f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xff,0xf2,0x05,0x49,0x07,0x0d,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x27,0x0f,0x51,0x01,0xf9,0x03,0x57,0x01,0x07,0x0f,0x57,0x01,0xf9,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x3d,0x01,0x3d,0x00, +0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xc8,0xff,0xf2,0x06,0x03,0x07,0x0d,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x27,0x0f,0x57,0x01,0xf9,0x04,0xab,0x01,0x07,0x0f,0x51,0x01,0xf9,0x03,0x57,0x00,0x0c,0xb5,0x04,0x03,0x20,0x72,0x01,0x72,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xc8,0xff,0xf2,0x05,0x49,0x05,0x50,0x02,0x26,0x0f,0x6c, +0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0xf2,0xfd,0xdd,0x00,0x0a,0xb4,0x01,0x2f,0x54,0x01,0x54,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xc8,0xff,0xf2,0x06,0x03,0x05,0x50,0x02,0x26,0x0f,0x6d,0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0xf2,0xfd,0xdd,0x00,0x0a,0xb4,0x01,0x2f,0x54,0x01,0x54,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xc8,0xff,0xf2, +0x05,0x49,0x04,0xb8,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x07,0x0a,0x6e,0x01,0xf9,0xfc,0xdc,0xff,0xff,0xff,0xc8,0xff,0xf2,0x06,0x03,0x04,0xb8,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x07,0x0a,0x6e,0x01,0xf9,0xfc,0xdc,0x00,0x02,0xff,0xc8,0xff,0xea,0x06,0xa0,0x03,0x3c,0x00,0x30,0x00,0x42,0x00,0x44,0xb9,0x00,0x0c,0x05,0x0a,0xb7, +0x36,0x36,0x44,0x40,0x00,0x20,0x20,0x23,0xb8,0x04,0xff,0x40,0x09,0x2f,0x24,0x01,0x24,0x40,0x40,0x31,0x31,0x00,0xbc,0x04,0xfb,0x00,0x13,0x05,0x03,0x00,0x3b,0x04,0xfb,0xb3,0x2f,0x07,0x01,0x07,0x00,0x2f,0x5d,0xed,0x3f,0xed,0x32,0x11,0x33,0x2f,0x2f,0x5d,0xed,0x32,0x2f,0x01,0x2f,0xcd,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x3e, +0x05,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x24,0x26,0x26,0x27,0x2e,0x03,0x27,0x26,0x26,0x27,0x26,0x26,0x23,0x37,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x16,0x16,0x01,0xd4,0x18,0x4c,0x67,0x81,0x9a,0xb3,0x66,0x79,0xae,0x70,0x36,0x2d,0x52,0x71, +0x88,0x9a,0x52,0xb3,0xff,0x00,0xaf,0x68,0x1c,0x2e,0x3b,0x24,0x13,0x07,0x05,0x04,0x04,0x3c,0x68,0x36,0x17,0x42,0xae,0x5b,0x06,0x09,0x07,0x06,0x04,0x03,0x0d,0x1e,0x33,0x02,0xa7,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x6e,0xbc,0x97,0x6e,0x1f,0x5c,0xee,0x9b,0x41,0x96,0x95,0x8b,0x6a,0x40,0x4b,0x80,0xab,0x60,0x5d,0x80,0x55, +0x2f,0x16,0x05,0x01,0x06,0x0d,0x0c,0x14,0x35,0x3f,0x47,0x27,0x1a,0x31,0x1c,0x03,0x04,0x9c,0x06,0x07,0x21,0x3a,0x37,0x37,0x1e,0x1a,0x2c,0x20,0x13,0x0a,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0x5c,0x92,0xb5,0x5a,0x02,0x01,0x00,0x02,0xff,0xc8,0xff,0xea,0x07,0x59,0x03,0x3c,0x00,0x39,0x00,0x4b,0x00,0x50,0xb9,0x00,0x05,0x05, +0x0a,0x40,0x09,0x47,0x47,0x0b,0x3f,0x33,0x0b,0x22,0x22,0x25,0xb8,0x04,0xff,0xb4,0x2f,0x26,0x01,0x26,0x15,0xb8,0x05,0x03,0xb6,0x42,0x3f,0x3f,0x33,0x33,0x10,0x0a,0xbc,0x04,0xfb,0x00,0x0b,0x05,0x03,0x00,0x3a,0x04,0xfb,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xed,0x3f,0xed,0x39,0x32,0x2f,0x33,0x2f,0x33,0x3f,0x2f,0x5d,0xed, +0x32,0x2f,0x01,0x2f,0x2f,0xcd,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x24,0x26,0x26,0x27,0x2e,0x03,0x27,0x26,0x26,0x27,0x26,0x26,0x23,0x37,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03,0x17,0x3e,0x05,0x17,0x22,0x0e,0x02,0x07,0x16,0x16,0x33,0x32, +0x3e,0x02,0x35,0x34,0x2e,0x02,0x04,0xd3,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26,0x70,0x89,0x9d,0x54,0xb3,0xff,0x00,0xaf,0x68,0x1c,0x2e,0x3b,0x24,0x13,0x07,0x05,0x04,0x04,0x3c,0x68,0x36,0x17,0x42,0xae,0x5b,0x06,0x09,0x07,0x06,0x04,0x03,0x0d,0x1e,0x33,0x29,0x18,0x4c,0x67,0x81,0x9a, +0xb3,0x4c,0x6e,0xbc,0x97,0x6e,0x1f,0x5c,0xee,0x9d,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x03,0x3c,0x49,0x7d,0xa4,0x5b,0x3a,0x54,0x36,0x1a,0xa7,0x3a,0x45,0x31,0x36,0x1a,0x06,0x01,0x06,0x0d,0x0c,0x14,0x35,0x3f,0x47,0x27,0x1a,0x31,0x1c,0x03,0x04,0x9c,0x06,0x07,0x21,0x3a,0x37,0x37,0x1e,0x1a,0x2c,0x20,0x13,0x02,0x41,0x96,0x95, +0x8b,0x6a,0x40,0xa9,0x5c,0x92,0xb5,0x5a,0x02,0x01,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0xff,0xff,0xff,0xc8,0xff,0xea,0x06,0xa0,0x04,0xb2,0x02,0x26,0x0f,0x82,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x73,0x04,0x02,0xff,0xff,0xff,0xc8,0xff,0xea,0x07,0x59,0x04,0xb2,0x02,0x26,0x0f,0x83,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x73, +0x04,0x02,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x06,0xa0,0x03,0x3c,0x02,0x26,0x0f,0x82,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xdb,0xfe,0xab,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x07,0x59,0x03,0x3c,0x02,0x26,0x0f,0x83,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xdb,0xfe,0xab,0xff,0xff,0xff,0xc8,0xff,0xea,0x06,0xa0,0x05,0xca,0x02,0x26,0x0f,0x82, +0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0x73,0x04,0x02,0xff,0xff,0xff,0xc8,0xff,0xea,0x07,0x59,0x05,0xca,0x02,0x26,0x0f,0x83,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0x73,0x04,0x02,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x06,0xa0,0x04,0xb2,0x02,0x26,0x0f,0x82,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0x73,0x04,0x02,0x00,0x07,0x0f,0x50,0x02,0xe5, +0xfe,0xab,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x07,0x59,0x04,0xb2,0x02,0x26,0x0f,0x83,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0x73,0x04,0x02,0x00,0x07,0x0f,0x50,0x02,0xe5,0xfe,0xab,0x00,0x01,0xfd,0xa6,0xff,0xea,0x01,0x47,0x05,0xec,0x00,0x15,0x00,0x1a,0xbf,0x00,0x0b,0x05,0x0a,0x00,0x08,0x00,0x03,0x04,0xfb,0x00,0x12,0x05,0x03,0x00, +0x0a,0x00,0x2f,0x3f,0xed,0x01,0x2f,0xed,0x31,0x30,0x25,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x22,0x26,0x27,0xfd,0xa6,0x7f,0xe1,0x6d,0x4f,0x75,0x4e,0x26,0x9c,0x23,0x3f,0x5a,0x6e,0x81,0x46,0x61,0xcb,0x64,0xa8,0x0f,0x09,0x06,0x25,0x4f,0x49,0x04,0x99,0xfb,0x60,0x56,0x77,0x4f,0x2c,0x15,0x05, +0x0a,0x0e,0x00,0x01,0xfd,0xa6,0xff,0xea,0x02,0x01,0x05,0xec,0x00,0x1e,0x00,0x29,0xb1,0x16,0x0b,0xb8,0x05,0x0a,0xb5,0x08,0x16,0x1b,0x10,0x10,0x03,0xbd,0x04,0xfb,0x00,0x1b,0x05,0x03,0x00,0x11,0x05,0x03,0x00,0x0a,0x00,0x2f,0x3f,0x3f,0xed,0x32,0x2f,0x11,0x39,0x01,0x2f,0xed,0x39,0x31,0x30,0x25,0x16,0x16,0x33,0x32,0x3e,0x02, +0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0xfd,0xa6,0x7f,0xe1,0x6d,0x4f,0x75,0x4e,0x26,0x9c,0x0f,0x2a,0x48,0x39,0x16,0x5a,0x6d,0x1e,0x04,0x1d,0x56,0x6d,0x82,0x4a,0x61,0xcb,0x64,0xa8,0x0f,0x09,0x06,0x25,0x4f,0x49,0x04,0x99,0xfb,0xac,0x47,0x62,0x3c,0x1a,0xa7,0x3b, +0x3c,0x2d,0x33,0x19,0x06,0x0a,0x0e,0x00,0xff,0xff,0xfd,0xa6,0xff,0xea,0x02,0x1a,0x08,0x0e,0x02,0x26,0x0f,0x8c,0x00,0x00,0x00,0x06,0x0a,0x6d,0xf2,0x32,0xff,0xff,0xfd,0xa6,0xff,0xea,0x02,0x1a,0x08,0x0e,0x02,0x26,0x0f,0x8d,0x00,0x00,0x00,0x06,0x0a,0x6d,0xf2,0x32,0xff,0xff,0xfd,0xa6,0xff,0xea,0x01,0x4f,0x07,0x67,0x02,0x26, +0x0f,0x8c,0x00,0x00,0x00,0x07,0x0f,0x50,0xff,0xf2,0x06,0xb7,0xff,0xff,0xfd,0xa6,0xff,0xea,0x02,0x01,0x07,0x67,0x02,0x26,0x0f,0x8d,0x00,0x00,0x00,0x07,0x0f,0x50,0xff,0xf2,0x06,0xb7,0xff,0xff,0xfd,0xa6,0xff,0xea,0x01,0xf0,0x08,0x7f,0x02,0x26,0x0f,0x8c,0x00,0x00,0x01,0x07,0x0f,0x53,0xff,0xf2,0x06,0xb7,0x00,0x0e,0xb6,0x03, +0x02,0x01,0x20,0x18,0x01,0x18,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0xfd,0xa6,0xff,0xea,0x02,0x01,0x08,0x7f,0x02,0x26,0x0f,0x8d,0x00,0x00,0x01,0x07,0x0f,0x53,0xff,0xf2,0x06,0xb7,0x00,0x0e,0xb6,0x03,0x02,0x01,0x20,0x29,0x01,0x29,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0xfd,0xa6,0xfd,0xc9,0x01,0xf0,0x05,0xec,0x02,0x26, +0x0f,0x8c,0x00,0x00,0x00,0x07,0x0f,0x54,0xff,0xf2,0xfd,0xce,0xff,0xff,0xfd,0xa6,0xfd,0xc9,0x02,0x01,0x05,0xec,0x02,0x26,0x0f,0x8d,0x00,0x00,0x00,0x07,0x0f,0x54,0xff,0xf2,0xfd,0xce,0xff,0xff,0xfd,0xa6,0xff,0xea,0x01,0xfb,0x05,0xec,0x02,0x26,0x0f,0x8c,0x00,0x00,0x00,0x07,0x0f,0x5c,0xff,0x6d,0x00,0x00,0xff,0xff,0xfd,0xa6, +0xff,0xea,0x02,0x01,0x05,0xec,0x02,0x26,0x0f,0x8d,0x00,0x00,0x00,0x07,0x0f,0x5c,0xff,0x6d,0x00,0x00,0x00,0x01,0x00,0x39,0xfd,0xff,0x03,0x72,0x02,0x0a,0x00,0x22,0x00,0x2c,0xbc,0x00,0x0b,0x05,0x0a,0x00,0x1b,0x00,0x16,0x04,0xfb,0x40,0x09,0x1f,0x10,0x2f,0x10,0x02,0x10,0x08,0x08,0x06,0xb8,0x04,0xff,0xb3,0x2f,0x00,0x01,0x00, +0x00,0x2f,0x5d,0xed,0x32,0x2f,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x01,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x3e,0x03,0x03,0x35,0x1d,0x20,0x28,0x2c,0x3c,0x30,0x11,0x14,0x44,0x79,0xa7,0x62,0x33,0x6c,0x39,0x7c,0x59, +0x55,0x74,0x45,0x1e,0x2d,0x20,0x2a,0x5b,0x57,0x4e,0x02,0x0a,0x2f,0x1d,0x1e,0x32,0x03,0x52,0x9c,0x46,0x8a,0xd4,0x90,0x4a,0x16,0x17,0xa5,0x27,0x3d,0x6c,0x92,0x56,0x76,0xda,0x67,0x06,0x09,0x06,0x03,0x00,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x04,0x07,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x0c,0x03,0x57, +0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x05,0xb9,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x0c,0x03,0x57,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x04,0xaf,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0a,0x6d,0x01,0x0c,0xfc,0xd3,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x02,0x0a,0x02,0x26,0x0f,0x98,0x00,0x00, +0x00,0x07,0x0f,0x5b,0x01,0xc9,0x00,0x00,0xff,0xff,0x00,0x39,0xfd,0xfb,0x03,0x88,0x02,0x0a,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x2b,0xfe,0x00,0xff,0xff,0x00,0x39,0xfd,0xe1,0x04,0x6a,0x02,0x0a,0x02,0x26,0x0f,0x98,0x00,0x00,0x01,0x07,0x0a,0x6d,0x02,0x42,0xf7,0x65,0x00,0x0a,0xb4,0x01,0x2f,0x27,0x01,0x27, +0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x39,0xfd,0xfb,0x03,0x88,0x04,0x07,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0x2b,0xfe,0x00,0x00,0x07,0x0f,0x50,0x01,0x0c,0x03,0x57,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x04,0x07,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x0c,0x03,0x57,0xff,0xff,0x00,0x39, +0xfd,0xff,0x03,0x72,0x05,0x1f,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0x0c,0x03,0x57,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x04,0xaf,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0a,0x6e,0x01,0x0c,0xfc,0xd3,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x87,0x02,0x0a,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x5c, +0x00,0xf9,0xfc,0x4f,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x05,0x1f,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x0c,0x03,0x57,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x04,0xbc,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x09,0x7e,0x01,0x0c,0xfc,0xd3,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x07,0x0d,0x02,0x26, +0x0f,0x98,0x00,0x00,0x00,0x27,0x0f,0x51,0x01,0x0c,0x03,0x57,0x01,0x07,0x0f,0x57,0x01,0x0c,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x82,0xff,0x02,0x05,0x74,0x04,0x21,0x02,0x26,0x0f,0xab,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0x39,0xfc,0x38,0x00,0x0a,0xb4,0x01,0x2f,0x4d, +0x01,0x4d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x04,0x2c,0x02,0x26,0x0f,0xab,0x00,0x00,0x01,0x07,0x0a,0x6e,0x02,0x01,0xfc,0x50,0x00,0x0a,0xb4,0x01,0x2f,0x3d,0x01,0x3d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x03,0xb9,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0xdc, +0x03,0x09,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x04,0xd1,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0xdc,0x03,0x09,0x00,0x01,0x00,0x9a,0xff,0x02,0x05,0x74,0x02,0x0a,0x00,0x36,0x00,0x41,0xb9,0x00,0x0a,0x05,0x0a,0xb2,0x25,0x25,0x05,0xb8,0x05,0x0a,0xb3,0x2c,0x2c,0x38,0x1d,0xbb,0x05,0x0a,0x00,0x16,0x00,0x00, +0x04,0xff,0xb4,0x2f,0x31,0x01,0x31,0x11,0xb8,0x04,0xfb,0xb7,0x2f,0x22,0x01,0x22,0x2f,0x1a,0x01,0x1a,0x00,0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06, +0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x20,0x3b,0x43,0x21,0x08,0x22,0x29,0x22,0x2e,0x51,0x6e,0x7d,0x88,0x43,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x20,0x5b,0xa2,0x83,0xbc,0xb9,0x10,0x18,0x1b,0x18,0x10,0x29,0x54,0x81,0x58,0x1d,0x20,0x28,0x01, +0x6e,0x13,0x1b,0x1e,0x0b,0x22,0x2a,0x2c,0x3b,0x33,0x39,0x5a,0x43,0x2f,0x1d,0x0d,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6e,0x40,0x4a,0x7c,0x5b,0x33,0x48,0x3d,0x13,0x1d,0x1b,0x1e,0x26,0x33,0x23,0x37,0x5b,0x40,0x23,0x2f,0x1d,0x1e,0x32,0x00,0xff,0xff,0x00,0x9a,0xfd,0xd3,0x05,0x74,0x02,0x0a,0x02,0x26,0x0f,0xab,0x00,0x00, +0x00,0x07,0x0f,0x51,0x02,0x01,0xfd,0xd8,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0xdd,0x05,0x3e,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x07,0x09,0x7e,0x04,0x3b,0xfd,0x55,0x00,0x01,0x00,0x1e,0xff,0x02,0x06,0x1f,0x02,0x0a,0x00,0x38,0x00,0x58,0xb9,0x00,0x1d,0x05,0x0a,0xb5,0x2d,0x2d,0x16,0x0b,0x05,0x32,0xb8,0x05,0x0a,0xb3,0x16,0x16, +0x3a,0x0e,0xb8,0x05,0x0a,0x40,0x0d,0x05,0x08,0x08,0x05,0x09,0x0a,0x0a,0x0b,0x0b,0x22,0x08,0x08,0x28,0xb8,0x04,0xff,0xb4,0x2f,0x22,0x01,0x22,0x00,0xb8,0x04,0xfb,0xb3,0x2f,0x13,0x01,0x13,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x32,0x2f,0x11,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x11,0x39, +0x11,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05,0x35,0x25,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x03,0x5c,0x98,0xcc,0x7d,0x35,0x04,0x04,0xfe,0xd0,0x01,0xe3, +0x0e,0x12,0x24,0x5d,0xa2,0x7e,0xbc,0xb9,0x10,0x18,0x1b,0x18,0x10,0x29,0x54,0x81,0x58,0x1d,0x20,0x28,0x2c,0x3b,0x43,0x21,0x08,0x22,0x29,0x22,0x2e,0x51,0x6e,0x7d,0x88,0xfe,0x4b,0x81,0xad,0x63,0x1f,0x49,0x23,0x39,0x72,0x5f,0x49,0x79,0x3f,0x4d,0x7d,0x5a,0x31,0x48,0x3d,0x13,0x1d,0x1b,0x1e,0x26,0x33,0x23,0x37,0x5b,0x40,0x23, +0x2f,0x1d,0x1e,0x32,0x13,0x1b,0x1e,0x0b,0x22,0x2a,0x2c,0x3b,0x33,0x39,0x5a,0x43,0x2f,0x1d,0x0d,0x00,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x04,0x2c,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0x01,0xfc,0x50,0xff,0xff,0x00,0x9a,0xfd,0xc4,0x05,0x74,0x02,0xbd,0x02,0x26,0x0f,0xb4,0x00,0x00,0x00,0x07,0x0f,0x54, +0x01,0xc8,0xfd,0xc9,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x04,0xdf,0x02,0x26,0x0f,0xab,0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xa1,0xfd,0x71,0x00,0x0e,0xb7,0x01,0x2f,0x37,0x01,0x2f,0x37,0x01,0x37,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x04,0xdf,0x02,0x26,0x0f,0xab,0x00,0x00,0x01,0x07,0x0f,0x5f, +0x00,0xa1,0xfd,0x71,0x00,0x0e,0xb7,0x01,0x2f,0x37,0x01,0x2f,0x37,0x01,0x37,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0x00,0x9a,0xfd,0x78,0x05,0x74,0x02,0xbd,0x02,0x26,0x0f,0xb4,0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0xc8,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x37,0x01,0x37,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0x9a,0xff,0xd2,0x05,0x74, +0x02,0xbd,0x00,0x32,0x00,0x41,0xb9,0x00,0x0a,0x05,0x0a,0xb2,0x25,0x25,0x05,0xb8,0x05,0x0a,0xb3,0x2a,0x2a,0x34,0x1d,0xbb,0x05,0x0a,0x00,0x16,0x00,0x00,0x04,0xff,0xb4,0x2f,0x2d,0x01,0x2d,0x11,0xb8,0x04,0xfb,0xb7,0x2f,0x22,0x01,0x22,0x2f,0x1a,0x01,0x1a,0x00,0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39, +0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x20,0x38,0x40,0x1f,0x07,0x0c,0x0f,0x0d,0x29,0x47,0x60,0x70,0x7b, +0x3e,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x20,0x5b,0xa2,0x83,0xa9,0x96,0x0e,0x12,0x0e,0xae,0xa1,0x1d,0x20,0x28,0x01,0x6e,0x0a,0x10,0x12,0x07,0x0c,0x15,0x19,0x20,0x17,0x2d,0x48,0x37,0x27,0x19,0x0c,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6e,0x40,0x4a,0x7c,0x5b,0x33,0x30,0x29,0x0e,0x1a,0x1c,0x21,0x17,0x59,0x61, +0x2f,0x1d,0x1e,0x32,0x00,0x01,0x00,0x72,0xfe,0x28,0x06,0xe5,0x00,0x99,0x00,0x25,0x00,0x23,0xbc,0x00,0x06,0x05,0x0a,0x00,0x1d,0x00,0x0b,0x04,0xfb,0xb4,0x2f,0x16,0x01,0x16,0x24,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x05,0x21,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32, +0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x04,0x35,0x34,0x3e,0x04,0x33,0x21,0x04,0xad,0xfd,0xf2,0x43,0x8e,0x75,0x4b,0x45,0x93,0xe5,0xa1,0x7b,0xf4,0xe5,0xcf,0x56,0x72,0xf9,0xf0,0xda,0x54,0x93,0xe1,0xa6,0x70,0x43,0x1d,0x3d,0x63,0x7c,0x7d,0x72,0x27,0x02,0x09,0x0e,0x04,0x19,0x37,0x32,0x2e,0x3c,0x23,0x0e,0x07,0x0c,0x10, +0x09,0xa5,0x0c,0x12,0x0c,0x06,0x12,0x24,0x35,0x45,0x55,0x32,0x4a,0x69,0x45,0x28,0x15,0x05,0x00,0x01,0x00,0x72,0xfe,0x28,0x06,0xe5,0x00,0x99,0x00,0x25,0x00,0x23,0xbc,0x00,0x06,0x05,0x0a,0x00,0x1d,0x00,0x0b,0x04,0xfb,0xb4,0x2f,0x16,0x01,0x16,0x24,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x01,0x2f, +0xed,0x31,0x30,0x05,0x21,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x04,0x35,0x34,0x3e,0x04,0x33,0x21,0x06,0xae,0xfb,0xf1,0x43,0x8e,0x75,0x4b,0x45,0x93,0xe5,0xa1,0x7b,0xf4,0xe5,0xcf,0x56,0x72,0xf9,0xf0,0xda,0x54,0x93,0xe1,0xa6,0x70,0x43,0x1d,0x3d,0x63,0x7c,0x7d,0x72,0x27, +0x04,0x0a,0x0e,0x04,0x19,0x37,0x32,0x2e,0x3c,0x23,0x0e,0x07,0x0c,0x10,0x09,0xa5,0x0c,0x12,0x0c,0x06,0x12,0x24,0x35,0x45,0x55,0x32,0x4a,0x69,0x45,0x28,0x15,0x05,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x3d,0x02,0x26,0x0f,0xb5,0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0xab,0xfb,0x54,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5, +0x03,0x3d,0x02,0x26,0x0f,0xb6,0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0xab,0xfb,0x54,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26,0x0f,0xb5,0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xab,0xfb,0xff,0x00,0x0a,0xb4,0x01,0x2f,0x26,0x01,0x26,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26, +0x0f,0xb6,0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xab,0xfb,0xff,0x00,0x0a,0xb4,0x01,0x2f,0x26,0x01,0x26,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26,0x0f,0xb5,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xab,0xfb,0xff,0x00,0x0a,0xb4,0x01,0x2f,0x37,0x01,0x37,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x72, +0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26,0x0f,0xb6,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xab,0xfb,0xff,0x00,0x0a,0xb4,0x01,0x2f,0x37,0x01,0x37,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x02,0x0a,0x02,0x06,0x0f,0xab,0x00,0x00,0xff,0xff,0x00,0x9a,0xfd,0xc4,0x05,0x74,0x02,0xbd,0x02,0x26,0x0f,0xb4,0x00,0x00, +0x00,0x07,0x0f,0x52,0x01,0xc8,0xfd,0xc9,0xff,0xff,0x00,0x9a,0xfe,0x0e,0x05,0x74,0x02,0x0a,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x07,0x0f,0x5b,0x02,0x01,0x00,0x0f,0x00,0x01,0xff,0xf1,0xff,0xf2,0x01,0x47,0x05,0x7e,0x00,0x0d,0x00,0x1a,0xbf,0x00,0x08,0x05,0x0a,0x00,0x05,0x00,0x00,0x04,0xfb,0x00,0x0d,0x05,0x03,0x00,0x07,0x00, +0x2f,0x3f,0xed,0x01,0x2f,0xed,0x31,0x30,0x27,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x09,0x25,0x42,0x31,0x1c,0x9c,0x3c,0x61,0x7b,0x3e,0x99,0x16,0x2d,0x46,0x31,0x04,0x2b,0xfb,0xce,0x65,0x86,0x4f,0x20,0x00,0x00,0x01,0xff,0xea,0xff,0xf2,0x02,0x24,0x04,0xe8,0x00,0x1c,0x00,0x22,0xb9,0x00,0x00,0x05,0x0a,0xb5, +0x1a,0x10,0x0d,0x1c,0x15,0x05,0xbb,0x04,0xfb,0x00,0x14,0x00,0x0d,0x05,0x03,0x00,0x3f,0x33,0xed,0x32,0x2f,0x12,0x39,0x01,0x2f,0xed,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x37,0x32,0x3e,0x02,0x35,0x11,0x33,0x01,0x47,0x0c,0x26,0x46,0x39,0x16,0x16,0x06,0x0d, +0x13,0x0c,0x68,0x75,0x1c,0x04,0x31,0x91,0x49,0x0a,0x1c,0x41,0x36,0x24,0x9c,0x01,0x8c,0x3b,0x5a,0x3e,0x20,0x31,0x1f,0x10,0x1f,0x19,0x0f,0x40,0x3b,0x3f,0x3c,0xa7,0x13,0x2c,0x47,0x34,0x03,0x95,0x00,0x02,0x00,0xa1,0xff,0xf2,0x04,0x25,0x03,0xd7,0x00,0x21,0x00,0x2f,0x00,0x48,0xb9,0x00,0x15,0x05,0x0a,0xb5,0x12,0x05,0x2a,0x2a, +0x31,0x22,0xbb,0x05,0x0a,0x00,0x0d,0x00,0x2b,0x04,0xfc,0xb2,0x12,0x14,0x2a,0xb8,0x04,0xfc,0x40,0x0a,0x15,0x14,0x05,0x05,0x00,0x2f,0x14,0x01,0x14,0x1a,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0x12,0x39,0x2f,0x12,0x39,0xed,0x10,0xdd,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0x33,0xed,0x31,0x30,0x05,0x22, +0x2e,0x02,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x01,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x11,0x0e,0x03,0x03,0xec,0x38,0x64,0x50,0x3a,0x0e,0x2b,0x62,0x2a,0x45,0x7f,0x62,0x3a,0x58,0x92,0xbc,0x65,0x9c,0x0e,0x26,0x44,0x36,0x17,0x18,0x07, +0x0e,0x16,0xfd,0x3d,0x23,0x3c,0x4e,0x2a,0x27,0x55,0x22,0x4d,0x87,0x66,0x3b,0x0e,0x19,0x35,0x52,0x3a,0x11,0x0c,0x20,0x45,0x6c,0x4d,0x5e,0x92,0x68,0x42,0x0f,0x61,0xfd,0xb5,0x3d,0x5b,0x3d,0x1e,0x31,0x1e,0x10,0x20,0x19,0x0f,0x01,0xea,0x26,0x35,0x21,0x0e,0x0a,0x0b,0x01,0x76,0x0e,0x2f,0x41,0x52,0xff,0xff,0x00,0x39,0xfd,0xff, +0x03,0x72,0x05,0x1f,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x0c,0x03,0x57,0x00,0x01,0x00,0x64,0x00,0x00,0x04,0x77,0x05,0xb2,0x00,0x23,0x00,0x65,0x40,0x38,0x82,0x16,0x01,0x76,0x0a,0x01,0x63,0x09,0x01,0x6a,0x07,0x7a,0x07,0x02,0x1a,0x1d,0x1f,0x18,0x1b,0x7e,0x01,0x00,0x03,0x22,0x05,0x01,0x01,0x25,0x0e,0x0c, +0x7e,0x0f,0x11,0x0e,0x0f,0x1f,0x22,0x91,0x01,0x1c,0x02,0x05,0x18,0x91,0x1b,0x02,0x0f,0x02,0x0f,0x02,0x20,0x12,0x08,0x91,0x15,0x04,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x10,0xc4,0xfd,0xc4,0x10,0xdd,0xc4,0xfd,0xc4,0x11,0x33,0x01,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0xc4,0xc4,0xde,0xc4,0x10,0xfd,0xc4,0xc4,0xde,0xc4,0x31, +0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x33,0x35,0x23,0x35,0x33,0x35,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x37,0x36,0x33,0x20,0x11,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x02,0x52,0xbe,0xbe,0xbe,0xff,0x00,0x8a,0x44,0x36,0x22,0x96,0x34,0x66,0x71,0xd5,0x01,0xa8,0xbf,0xbf,0xbf,0xbf,0xa8, +0xbe,0x02,0x33,0x6e,0x84,0xbb,0x01,0x48,0x6c,0x56,0x83,0x64,0x4e,0x46,0x6a,0x8e,0xc9,0x7c,0x8a,0xfe,0x34,0xc1,0x84,0x6e,0x84,0xfe,0x51,0x01,0xaf,0x00,0x00,0x01,0x00,0x65,0xff,0xe8,0x04,0xb6,0x05,0xb2,0x00,0x31,0x00,0xed,0x40,0xa0,0x6a,0x31,0x7a,0x31,0x8a,0x31,0x03,0x7a,0x30,0x01,0x68,0x30,0x01,0x08,0x2c,0x01,0x8c,0x2b, +0x01,0x6b,0x2b,0x7b,0x2b,0x02,0x56,0x24,0x01,0x56,0x23,0x01,0x37,0x23,0x01,0x57,0x20,0x01,0x88,0x19,0x01,0x49,0x19,0x01,0x8b,0x18,0x01,0x4a,0x18,0x01,0x86,0x17,0x01,0x77,0x17,0x01,0x83,0x16,0x93,0x16,0x02,0x61,0x16,0x71,0x16,0x02,0x07,0x16,0x01,0x85,0x13,0x95,0x13,0x02,0x76,0x13,0x01,0x07,0x13,0x01,0x95,0x12,0x01,0x86, +0x12,0x01,0x65,0x12,0x75,0x12,0x02,0x76,0x01,0x01,0x65,0x01,0x01,0x28,0x2a,0x7d,0x27,0x25,0x25,0x08,0x1b,0x1f,0x17,0x7d,0x04,0x00,0x00,0x08,0x01,0x08,0x08,0x33,0x1f,0x7d,0x00,0x0e,0x0c,0x7d,0x0f,0x11,0x11,0x0f,0x00,0x01,0x00,0x00,0x28,0x10,0x28,0x02,0x28,0x28,0x1b,0x21,0x0f,0x0f,0x04,0x0a,0x25,0x04,0x01,0x04,0x15,0x21, +0x91,0x3a,0x1b,0x01,0x29,0x1b,0x01,0x1b,0x2e,0x13,0x0a,0x91,0x15,0x04,0x00,0x3f,0xed,0x3f,0x39,0x5d,0x5d,0xed,0x11,0x39,0x5d,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x5d,0x01,0x2f,0x5d,0x33,0x2f,0x33,0xed,0x32,0x10,0xed,0x12,0x39,0x2f,0x5d,0x12,0x39,0xed,0x11,0x39,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x00,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x34,0x37,0x36,0x37,0x36,0x37,0x36,0x35,0x34,0x21,0x20,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x37,0x36,0x33,0x20,0x11,0x14,0x07,0x06,0x07,0x06,0x07,0x06,0x15,0x10,0x21,0x32,0x37,0x36,0x35,0x34, +0x27,0x33,0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x65,0xa9,0x73,0xee,0xaa,0x48,0x80,0xfe,0xb8,0xfe,0xbe,0x08,0xae,0x0a,0xa1,0x84,0xcb,0x01,0xfa,0xaf,0x70,0xf5,0xa5,0x49,0x7a,0x01,0x71,0x9c,0x62,0x81,0x12,0xb4,0x0f,0xb3,0x93,0xe8,0xec,0x8c,0xab,0x01,0x85,0xcc,0x6b,0x48,0x2b,0x1e,0x26,0x42,0x85,0xe0,0xd2,0x2b,0x45, +0x4b,0x25,0xbd,0x5f,0x4e,0xfe,0x88,0xcc,0x68,0x43,0x2e,0x1f,0x28,0x44,0x85,0xfe,0xfa,0x32,0x42,0x8e,0x42,0x43,0x40,0x43,0xd9,0x6b,0x57,0x56,0x6a,0x00,0x00,0x01,0x00,0x21,0x00,0x00,0x04,0x64,0x05,0x9a,0x00,0x09,0x00,0x95,0x40,0x0d,0x7c,0x06,0x01,0x74,0x01,0x01,0x01,0x20,0x0b,0x0d,0x01,0x4c,0x06,0xb8,0xff,0xe0,0x40,0x29, +0x0b,0x0d,0x01,0x4c,0x15,0x00,0x25,0x00,0x02,0x03,0x00,0x01,0xe3,0x00,0xf3,0x00,0x02,0x1a,0x05,0x2a,0x05,0x02,0x0c,0x05,0x01,0xec,0x05,0xfc,0x05,0x02,0x05,0x01,0x91,0x04,0x12,0x00,0x07,0x91,0x08,0x03,0x06,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x01,0x08,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x09,0x0c,0x06,0x4d,0x01, +0x0c,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x14,0x0b,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x03,0x07,0x07,0x01,0x06,0x03,0x04,0x04,0x00,0x00,0x0b,0x04,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x31,0x30,0x5d,0x71,0x71,0x5d,0x71,0x71,0x01,0x2b,0x2b,0x5d, +0x5d,0x01,0x01,0x21,0x15,0x21,0x35,0x01,0x21,0x35,0x21,0x04,0x64,0xfc,0xb8,0x03,0x34,0xfb,0xd1,0x03,0x41,0xfd,0x02,0x04,0x00,0x05,0x72,0xfb,0x26,0x98,0x2f,0x04,0xd3,0x98,0x00,0x01,0x00,0x5f,0xff,0xe8,0x03,0xf0,0x06,0x02,0x00,0x2f,0x00,0xc5,0x40,0x82,0x7a,0x2f,0x01,0x79,0x2e,0x01,0x08,0x2e,0x18,0x2e,0x02,0x86,0x27,0x01, +0x24,0x27,0x01,0x26,0x26,0x46,0x26,0x02,0x85,0x23,0x01,0x56,0x23,0x01,0x79,0x21,0x01,0x79,0x1e,0x01,0x87,0x1a,0x97,0x1a,0x02,0x96,0x19,0x01,0x85,0x19,0x01,0x07,0x19,0x01,0x95,0x15,0x01,0x06,0x15,0x86,0x15,0x02,0x86,0x14,0x01,0x79,0x12,0x01,0x3b,0x12,0x01,0x38,0x11,0x01,0x9a,0x0e,0x01,0x65,0x0b,0x01,0x57,0x0b,0x01,0x57, +0x07,0x67,0x07,0x02,0x25,0x22,0x28,0x83,0x10,0x0d,0x0d,0x13,0x31,0x1b,0x84,0x1c,0x22,0x83,0x13,0x05,0x84,0x00,0x00,0x13,0x03,0x02,0x02,0x09,0x10,0x98,0x10,0x01,0x6a,0x10,0x01,0x10,0x20,0x2c,0x1b,0x1b,0x25,0x20,0x25,0x17,0x09,0x95,0x2c,0x16,0x20,0x95,0x17,0x01,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x11,0x12,0x39,0x2f,0x11, +0x12,0x39,0x5d,0x5d,0x11,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x2f,0xed,0x10,0xed,0x2f,0xed,0x11,0x12,0x39,0x2f,0x39,0xed,0x11,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32, +0x37,0x36,0x35,0x34,0x27,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x23,0x34,0x27,0x26,0x23,0x20,0x15,0x14,0x17,0x16,0x17,0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x5f,0x28,0x9a,0x1c,0x55,0x4e,0x68,0x88,0x55,0x5b,0xbc,0xae,0xae,0xbc,0x7c,0x77,0xba,0xab,0x73,0x7f,0xa6,0x4b,0x44,0x68,0xfe,0xfb,0xbc, +0xae,0xae,0xbc,0x8e,0x85,0xcf,0xaa,0x7d,0x88,0x01,0x5c,0x5e,0x51,0x37,0x33,0x49,0x68,0x42,0x3c,0x4c,0x50,0x95,0xaa,0x57,0x4b,0x4b,0x72,0xe5,0xae,0x63,0x60,0x57,0x61,0xa8,0x68,0x39,0x34,0xfb,0x8a,0x58,0x4e,0x4d,0x76,0xd7,0xdc,0x7b,0x73,0x61,0x6a,0x00,0x00,0x02,0x00,0x0a,0xff,0xe8,0x04,0x52,0x04,0x54,0x00,0x35,0x00,0x49, +0x00,0x8c,0x40,0x5b,0x49,0x47,0x59,0x47,0x69,0x47,0x03,0x65,0x43,0x01,0x46,0x43,0x56,0x43,0x02,0x64,0x3d,0x01,0x9c,0x09,0x01,0x7a,0x08,0x01,0x8f,0x0a,0x9f,0x0a,0x02,0x7e,0x0a,0x01,0x6f,0x0a,0x01,0x87,0x3b,0x01,0x92,0x2c,0x01,0x81,0x2c,0x01,0x63,0x2c,0x73,0x2c,0x02,0x2c,0x1b,0x3b,0x0a,0x04,0x05,0x24,0x24,0x31,0x83,0x30, +0x36,0x01,0x36,0x36,0x4b,0x40,0x83,0x05,0x12,0x12,0x05,0x13,0x18,0x95,0x12,0x0a,0x0d,0x0d,0x3b,0x2c,0x24,0x29,0x95,0x23,0x1b,0x1e,0x10,0x45,0x95,0x00,0x16,0x00,0x3f,0xed,0x3f,0x33,0x33,0xed,0x32,0x32,0x32,0x32,0x2f,0x33,0x33,0xed,0x32,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x11,0x17,0x39,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x23,0x22,0x06,0x07,0x06,0x07,0x35,0x36,0x37,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x17,0x16,0x17,0x15,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x13, +0x34,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x02,0x4c,0x6c,0xad,0x7b,0x42,0x22,0x4f,0x81,0x5f,0x30,0x69,0x3b,0x33,0x55,0x1f,0x24,0x1e,0x1b,0x22,0x1d,0x51,0x33,0x89,0xda,0x57,0x34,0x72,0x40,0x30,0x4b,0x1a,0x1f,0x16,0x1a,0x21,0x1c,0x4e,0x30,0x0c,0x16,0x0b,0x39,0x50,0x32,0x17,0x42,0x7b,0xad,0xc2, +0x1d,0x3d,0x5d,0x3f,0x59,0x86,0x5a,0x2d,0x26,0x4b,0x72,0x4b,0x4b,0x72,0x4b,0x26,0x18,0x40,0x7a,0xae,0x6e,0x33,0x84,0x89,0x81,0x30,0x0d,0x0e,0x09,0x05,0x06,0x07,0x97,0x03,0x04,0x02,0x05,0x31,0x2a,0x0b,0x0b,0x03,0x02,0x03,0x02,0x92,0x05,0x04,0x03,0x06,0x01,0x01,0x35,0x77,0x77,0x72,0x30,0x6e,0xae,0x7a,0x40,0x01,0xd6,0x32, +0x70,0x6e,0x66,0x29,0x1e,0x61,0x72,0x78,0x36,0x4c,0x7b,0x56,0x2f,0x2f,0x56,0x7b,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x17,0x00,0x83,0x40,0x1f,0x19,0x40,0x0b,0x02,0x4d,0x12,0x95,0x00,0x16,0x0c,0x95,0x06,0x10,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x83, +0x15,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x15,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x06,0x4d,0x20,0x15,0x30,0x15,0x02,0x15,0xb8,0xff,0xde,0x40,0x2a,0x0b,0x06,0x4d,0x15,0x15,0x19,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x0a,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x83,0x03,0x10,0x0d,0x06,0x4d,0x03,0x0c,0x0c,0x06,0x4d,0x03,0x19,0x0b, +0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x01,0x2b,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x52,0xe3,0xfe,0xf1, +0x01,0x1a,0xf0,0xe5,0x01,0x01,0xfe,0xeb,0xdd,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab,0x18,0x01,0x1f,0xed,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x03,0xa6,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0x00,0x01,0xff,0xe6,0xfe,0x1e,0x04,0x10,0x04,0x18,0x00,0x3f,0x00,0x91,0x40,0x58,0x75,0x35,0x85,0x35,0x02,0x09,0x2d,0x01, +0x05,0x28,0x15,0x28,0x02,0x6a,0x1d,0x01,0x99,0x0a,0x01,0x99,0x05,0x01,0x00,0x02,0x83,0x3f,0x3d,0x3d,0x17,0x30,0x2f,0x33,0x2a,0x83,0x11,0x12,0x0c,0x17,0x17,0x41,0x33,0x83,0x0c,0x1f,0x84,0x20,0x20,0x0c,0x3f,0x00,0x00,0x30,0x38,0x09,0x2f,0x49,0x2f,0x59,0x2f,0x03,0x7a,0x30,0x01,0x28,0x30,0x01,0x2f,0x30,0x07,0x20,0x20,0x12, +0x1a,0x95,0x16,0x12,0x01,0x35,0x11,0x01,0x12,0x11,0x25,0x10,0x38,0x95,0x07,0x1c,0x00,0x3f,0xed,0x3f,0x39,0x39,0x5d,0x5d,0xed,0x11,0x39,0x2f,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x11,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x2f,0xed,0x10,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0xed,0x11,0x39,0x39,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30, +0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x25,0x3e,0x03,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x23,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x05,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x03,0x70,0x0d,0x53,0x8c, +0xb9,0x66,0x51,0x94,0x71,0x43,0x25,0x45,0x64,0x3f,0x01,0x7d,0x43,0x5c,0x3a,0x1a,0x6c,0x6d,0x32,0x5c,0x4e,0x3a,0x0f,0xa6,0x12,0x5b,0x80,0x9d,0x54,0x4b,0x87,0x65,0x3c,0x27,0x46,0x63,0x3d,0xfe,0x85,0x80,0x79,0x28,0x45,0x5e,0x36,0x3d,0x75,0x5b,0x37,0x09,0x41,0x2a,0x30,0x66,0xa9,0x78,0x42,0x32,0x5b,0x83,0x51,0x45,0x80,0x6d, +0x56,0x1a,0x9b,0x1b,0x3e,0x49,0x54,0x31,0x4d,0x5d,0x1b,0x36,0x50,0x34,0x56,0x84,0x59,0x2d,0x23,0x49,0x6e,0x4b,0x43,0x7a,0x68,0x54,0x1e,0x96,0x33,0x9c,0x70,0x35,0x53,0x39,0x1e,0x2c,0x4e,0x6c,0x41,0x20,0x1b,0x00,0x00,0x01,0x00,0x2d,0x00,0x00,0x04,0x55,0x04,0x00,0x00,0x09,0x00,0x41,0x40,0x22,0x06,0x01,0x00,0x01,0x84,0x05, +0x06,0x14,0x05,0x05,0x06,0x09,0x00,0x00,0x02,0x03,0x03,0x05,0x0b,0x08,0x07,0x07,0x04,0x05,0x06,0x95,0x00,0x08,0x0f,0x05,0x01,0x95,0x03,0x15,0x00,0x3f,0xed,0x33,0x3f,0x33,0xed,0x01,0x2f,0x33,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x33,0x2f,0x33,0x87,0x10,0x2b,0x87,0x7d,0xc4,0x31,0x30,0x01,0x01,0x21,0x07,0x21,0x37,0x01, +0x21,0x37,0x21,0x04,0x4b,0xfd,0x04,0x02,0x44,0x1d,0xfc,0xb7,0x0a,0x02,0xfb,0xfd,0xef,0x1e,0x03,0x16,0x03,0xd1,0xfc,0xbb,0x8c,0x33,0x03,0x41,0x8c,0x00,0x00,0x02,0x00,0x72,0xff,0xe8,0x03,0xde,0x05,0xb2,0x00,0x0d,0x00,0x18,0x00,0x20,0x40,0x10,0x0a,0x89,0x11,0x11,0x1a,0x16,0x89,0x04,0x13,0x9a,0x07,0x07,0x0e,0x9a,0x00,0x19, +0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x26,0x02,0x35,0x10,0x12,0x33,0x32,0x12,0x11,0x14,0x02,0x06,0x27,0x32,0x12,0x11,0x10,0x21,0x22,0x02,0x11,0x10,0x12,0x02,0x22,0x80,0xc6,0x6a,0xef,0xda,0xcb,0xd8,0x6e,0xc9,0x84,0x82,0x91,0xfe,0xff,0x8b,0x90,0x8e,0x18,0xb6,0x01,0x4d,0xdd,0x01, +0x64,0x01,0x86,0xfe,0x89,0xfe,0x9e,0xe4,0xfe,0xa9,0xb6,0x8a,0x01,0x3b,0x01,0x36,0x02,0x45,0xfe,0xd9,0xfe,0xd8,0xfe,0xdd,0xfe,0xbc,0x00,0x01,0x00,0xa1,0x00,0x00,0x03,0xb2,0x05,0x9a,0x00,0x1f,0x00,0x29,0x40,0x0f,0x18,0x08,0x01,0x8a,0x0b,0x10,0x00,0x14,0x1d,0x1d,0x09,0x14,0x06,0x01,0x0e,0xb8,0x01,0x81,0xb1,0x09,0x18,0x00, +0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x12,0x39,0x01,0x2f,0xcd,0xfd,0xcd,0xc4,0x31,0x30,0x01,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x11,0x34,0x36,0x33,0x33,0x32,0x17,0x13,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x02,0x75,0xf4,0x1d,0x1f,0x1f,0x1d,0xfd,0x74,0x1f,0x1d,0x1d,0x1f,0xf4,0x29, +0x33,0x7f,0x24,0x0f,0xce,0x05,0x42,0x23,0x24,0x0f,0x04,0xe3,0xfb,0xc1,0x30,0x20,0x20,0x34,0x34,0x20,0x20,0x30,0x04,0xa5,0x2f,0x22,0x1c,0xfe,0x70,0x0c,0x0b,0x20,0x2f,0x1d,0x00,0x01,0x00,0xc2,0xff,0xe8,0x03,0x8a,0x05,0xb2,0x00,0x1b,0x00,0x27,0x40,0x13,0x00,0x8a,0x14,0x14,0x1d,0x13,0x05,0x8a,0x0b,0x04,0x9b,0x13,0x13,0x08, +0x18,0x0f,0x07,0x08,0x19,0x00,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x21,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x21,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x03,0x8a,0x1c,0x1d,0xfe,0x15,0x30,0x20,0x22,0x32,0x31,0x23,0x20, +0x30,0x01,0x80,0x31,0x23,0x20,0x30,0x03,0x54,0x22,0x32,0xfd,0x21,0x1e,0x1b,0x1c,0x1d,0x05,0x58,0x1d,0x1c,0x1b,0x1e,0xfe,0x2b,0x01,0xd5,0x1d,0x1c,0x1b,0x1e,0x00,0x00,0x01,0x01,0x1f,0x00,0x00,0x03,0x34,0x05,0xb2,0x00,0x19,0x00,0x26,0x40,0x0c,0x0f,0x07,0x01,0x8a,0x13,0x0a,0x0c,0x9b,0x11,0x11,0x17,0x09,0xb8,0x01,0x81,0xb3, +0x05,0x18,0x17,0x07,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0xed,0xcd,0x32,0x31,0x30,0x01,0x11,0x14,0x06,0x23,0x21,0x22,0x35,0x34,0x33,0x21,0x11,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x11,0x34,0x36,0x33,0x32,0x16,0x03,0x34,0x2c,0x1a,0xfe,0x77,0x46,0x46,0x01,0x2b,0xfe,0xcb,0x1f,0x1d,0x1d,0x1f,0x01,0x35, +0x30,0x20,0x22,0x32,0x05,0x79,0xfa,0xd9,0x1c,0x36,0x51,0x53,0x01,0x99,0x30,0x20,0x20,0x34,0x02,0x98,0x1e,0x1b,0x1c,0x00,0x00,0x01,0x00,0xf7,0x00,0x00,0x03,0x55,0x05,0xb2,0x00,0x1a,0x00,0x2b,0x40,0x0f,0x09,0x01,0x8a,0x14,0x14,0x1c,0x05,0x8a,0x0f,0x04,0x9b,0x13,0x13,0x18,0x05,0xb8,0x01,0x81,0xb3,0x0c,0x18,0x18,0x07,0x00, +0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xfd,0xc4,0x31,0x30,0x01,0x11,0x14,0x23,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x21,0x11,0x34,0x36,0x33,0x32,0x16,0x03,0x55,0x32,0xfe,0x78,0x01,0x74,0x1e,0x28,0x46,0xfe,0x2e,0x1e,0x28,0x1d,0x1f,0x01,0x7e,0x31,0x23, +0x20,0x30,0x05,0x79,0xfd,0x7a,0x54,0xfe,0x05,0x2a,0x23,0x57,0x39,0x30,0x02,0x86,0x20,0x34,0x02,0x36,0x1d,0x1c,0x1b,0x00,0x00,0x01,0x01,0x08,0xff,0xe8,0x03,0x47,0x05,0xb2,0x00,0x16,0x00,0x1e,0x40,0x0e,0x06,0x01,0x0a,0x8a,0x10,0x09,0x9b,0x01,0x01,0x0d,0x14,0x07,0x0d,0x19,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0xfd, +0x32,0xc6,0x31,0x30,0x01,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x01,0xac,0x01,0x55,0x1e,0x28,0x28,0x1e,0xfe,0xab,0x30,0x20,0x22,0x32,0x31,0x23,0x20,0x30,0x05,0x79,0xfd,0xb3,0x2a,0x28,0x2b,0x27,0xfd,0x99,0x1e,0x1b,0x1c,0x1d,0x05,0x58,0x1d,0x1c,0x1b, +0x00,0x01,0x00,0xe1,0xff,0xe9,0x03,0x73,0x05,0xb2,0x00,0x17,0x00,0x23,0x40,0x11,0x01,0x8a,0x07,0x07,0x19,0x14,0x8a,0x0b,0x09,0x9b,0x14,0x14,0x10,0x04,0x19,0x10,0x07,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x22,0x26,0x35,0x11,0x34, +0x36,0x33,0x32,0x16,0x15,0x11,0x21,0x32,0x16,0x03,0x73,0x31,0x23,0x20,0x30,0xfe,0x66,0x22,0x32,0x30,0x20,0x22,0x32,0x01,0xb2,0x1d,0x1f,0x02,0xef,0xfd,0x33,0x1c,0x1d,0x1b,0x1e,0x02,0x7d,0x1c,0x1d,0x02,0xa1,0x1e,0x1b,0x1c,0x1d,0xfd,0xca,0x34,0x00,0x01,0x00,0xa1,0x00,0x00,0x03,0xaf,0x05,0xb2,0x00,0x16,0x00,0x21,0x40,0x0f, +0x0d,0x11,0x11,0x18,0x0c,0x8a,0x04,0x0c,0x0f,0x0f,0x01,0x08,0x07,0x01,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0x31,0x30,0x21,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x01,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x01,0x06,0x01,0x68,0x73,0x25,0x2f,0x31,0x23,0x20,0x30,0x01, +0xd6,0x0d,0x20,0x24,0x43,0x06,0xfd,0xec,0x0e,0x1b,0x1b,0x05,0x43,0x1d,0x1c,0x1b,0x1e,0xfb,0x59,0x03,0x42,0x19,0x35,0x1f,0x0b,0x0c,0xfc,0x57,0x19,0x00,0x00,0x02,0x00,0xa9,0x00,0x00,0x03,0xa7,0x05,0xb2,0x00,0x14,0x00,0x17,0x00,0x26,0x40,0x12,0x15,0x03,0x03,0x19,0x00,0x17,0x8a,0x0d,0x16,0x9b,0x17,0x00,0x00,0x0a,0x11,0x07, +0x0a,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x21,0x32,0x15,0x14,0x06,0x07,0x01,0x06,0x23,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x01,0x21,0x11,0x01,0x4d,0x02,0x1d,0x3d,0x16,0x16,0xfe,0x22,0x0e,0x1f,0x73,0x25,0x2f,0x31,0x23,0x20,0x30,0x01,0x83, +0xfe,0x7d,0x04,0x2a,0x3a,0x26,0x3a,0x27,0xfc,0xb0,0x19,0x1b,0x1b,0x05,0x43,0x1d,0x1c,0x1b,0x1e,0xfe,0x0d,0xfd,0x4d,0x00,0x00,0x02,0x00,0xbc,0xff,0xe8,0x03,0x94,0x05,0xb2,0x00,0x13,0x00,0x1f,0x00,0x33,0x40,0x1a,0x04,0x8a,0x09,0x00,0x8b,0x14,0x09,0x14,0x09,0x14,0x21,0x1a,0x8b,0x0e,0x1d,0x9b,0x03,0x0b,0x0b,0x11,0x07,0x19, +0x17,0x9b,0x11,0x07,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x94,0x9a,0x80,0x32, +0x20,0x20,0x32,0x82,0x98,0xca,0xa6,0xa6,0xc2,0x9a,0x6b,0x61,0x65,0x73,0x71,0x67,0x5c,0x70,0x04,0x6f,0x78,0xab,0x17,0xfc,0xec,0x1e,0x1b,0x1b,0x1e,0x03,0x15,0x19,0xaa,0x76,0x94,0xaf,0xad,0x8d,0x4f,0x57,0x57,0x4f,0x56,0x60,0x64,0x00,0x00,0x02,0x00,0x76,0x00,0xf7,0x03,0xb0,0x04,0x66,0x00,0x0b,0x00,0x1b,0x00,0x1f,0x40,0x0f, +0x10,0x8a,0x09,0x09,0x1d,0x03,0x8a,0x18,0x06,0x99,0x14,0x00,0x99,0x0c,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x02,0x14,0x6e,0x8f,0x93,0x6a,0x6a, +0x91,0x8d,0x6e,0x71,0xbe,0x6d,0x6f,0xbf,0x6e,0x6e,0xbf,0x71,0x6e,0xbe,0x03,0xcc,0xa2,0x7a,0x77,0xa8,0xa7,0x78,0x78,0xa4,0x9a,0x73,0xcc,0x78,0x76,0xcd,0x75,0x76,0xcc,0x76,0x76,0xcd,0x74,0x00,0x00,0x01,0x00,0x8a,0xfe,0xe6,0x03,0x37,0x05,0x9c,0x00,0x29,0x00,0x49,0x40,0x26,0x0a,0x8a,0x20,0x11,0x8a,0x17,0x0e,0x29,0x14,0x1c, +0x29,0x14,0x20,0x17,0x17,0x20,0x14,0x29,0x1c,0x05,0x2b,0x26,0x8a,0x02,0x0e,0x1c,0x29,0x1c,0x13,0x00,0x00,0x06,0x14,0x13,0x23,0x99,0x06,0x06,0x00,0x3f,0xed,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x26,0x35, +0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x07,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x01,0x6f,0xe5,0x50,0x94,0x55,0x5b,0x98,0x57,0x48,0x86,0x9c,0xf0,0xa4,0x56,0x87,0x1c,0x1c,0x2a,0x6e,0xb5,0x75,0x9d,0xad,0x4f,0x55,0x49, +0x45,0x59,0x50,0x47,0x02,0xf7,0x8f,0xd7,0x5b,0x92,0x52,0x58,0xa4,0x68,0x5f,0xb8,0xc0,0xa7,0xd2,0xd2,0x5e,0x6a,0x68,0x52,0x27,0x3b,0x23,0x2c,0x4b,0x75,0xa9,0x67,0x9d,0xd7,0xab,0x5b,0x63,0x6c,0x60,0x49,0x42,0x7d,0x2c,0x00,0x00,0x01,0x00,0x6d,0xfe,0xdb,0x03,0xbe,0x05,0x9c,0x00,0x21,0x00,0x3c,0x40,0x1d,0x00,0x21,0x1d,0x1a, +0x8a,0x0e,0x02,0x0e,0x06,0x06,0x13,0x14,0x0b,0x0e,0x09,0x09,0x11,0x0b,0x9a,0x02,0x1d,0x1d,0x00,0x11,0x9b,0x16,0x06,0x21,0x00,0x00,0x2f,0x32,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x11,0x39,0x2f,0x01,0x2f,0x33,0xc4,0x32,0x39,0x2f,0x12,0x39,0x10,0xed,0x32,0x2f,0x33,0x31,0x30,0x01,0x02,0x03,0x2e,0x02,0x35,0x34,0x36,0x33,0x32, +0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x07,0x07,0x16,0x12,0x17,0x03,0x39,0xee,0x9a,0x46,0x74,0x42,0x4a,0x3c,0x7c,0x50,0x85,0x8d,0xc3,0x9a,0x88,0x96,0x31,0xb1,0xa4,0x8f,0xea,0x83,0xca,0xb0,0x01,0x72,0x9e,0x66,0xfe,0xdb,0x01,0x56,0x01,0x6c,0x02,0x47,0x72,0x3b,0x3b,0x4a, +0xd2,0x2a,0xb4,0x7d,0x9c,0xc8,0x49,0x94,0x4c,0x85,0xe9,0x86,0xa9,0xfe,0xfa,0x3e,0x03,0xed,0xfe,0xf6,0x89,0x00,0x00,0x01,0x00,0x76,0xfe,0xde,0x03,0xa2,0x05,0x88,0x00,0x2f,0x00,0x60,0x40,0x19,0x00,0x2f,0x2b,0x28,0x8a,0x0f,0x0c,0x24,0x0f,0x2f,0x0f,0x2f,0x0f,0x31,0x03,0x18,0x14,0x06,0x14,0x06,0x1c,0x22,0x8a,0x18,0x0c,0xb8, +0x01,0x7e,0x40,0x15,0x2b,0x03,0x2b,0x24,0x13,0x9b,0x14,0x2b,0x09,0x14,0x14,0x09,0x2b,0x03,0x00,0x1c,0x9b,0x1d,0x06,0x2f,0x00,0x00,0x2f,0x32,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x39,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0xc6,0x39,0x39,0x2f,0x2f,0x12,0x39,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x32,0x10,0xed,0x32, +0x11,0x33,0x31,0x30,0x01,0x26,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16,0x16,0x15,0x14,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x17,0x02,0xf6,0x5a,0x71,0x4b,0x81,0x9d,0x4c,0x39,0x3a,0x83,0x3a, +0x5f,0x61,0x95,0x88,0xfe,0xc3,0x7a,0x8c,0x86,0x82,0xfe,0xd2,0x01,0x29,0x89,0xc3,0x65,0x84,0x62,0x74,0x98,0x7c,0x27,0x93,0x33,0xfe,0xde,0x8b,0x93,0x51,0x05,0x6b,0x51,0x38,0x48,0x57,0x52,0x19,0x85,0x5f,0x7b,0x83,0x97,0x66,0x5c,0x5a,0x5f,0x96,0x53,0x98,0x64,0x9d,0x61,0x06,0x2b,0xc0,0x70,0x84,0xcc,0x24,0x04,0x29,0xb9,0x4c, +0x00,0x02,0x00,0x6c,0xff,0xf3,0x04,0x48,0x05,0x88,0x00,0x25,0x00,0x31,0x00,0x50,0xb6,0x26,0x8b,0x10,0x09,0x8b,0x2c,0x02,0xb8,0x01,0x85,0x40,0x22,0x24,0x2f,0x20,0x13,0x03,0x10,0x06,0x2c,0x24,0x10,0x2c,0x24,0x24,0x2c,0x10,0x03,0x33,0x1c,0x8a,0x17,0x06,0x13,0x20,0x13,0x2f,0x03,0x0d,0x25,0x19,0x06,0x29,0x99,0x0d,0x19,0x00, +0x3f,0xed,0x3f,0x33,0x12,0x17,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x17,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x16,0x17, +0x3e,0x02,0x35,0x27,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x04,0x41,0x07,0x4d,0x8b,0xa5,0x7e,0x69,0x56,0x98,0x59,0x9c,0xc4,0x65,0x80,0xae,0x89,0x4d,0x0a,0xa6,0x0e,0x41,0x77,0x96,0x92,0x77,0x42,0x04,0xfd,0xfe,0x64,0x57,0x52,0x6e,0x55,0x67,0x68,0x57,0x05,0x88,0x25,0x2e,0x66,0xba,0xb3,0x99,0x74,0xc1, +0x63,0x5d,0x91,0x50,0xb3,0x8f,0x5f,0xb9,0x79,0x94,0xa5,0xae,0x61,0x41,0x39,0x3e,0x32,0x51,0x92,0x8e,0x80,0x84,0x9a,0xa4,0x5b,0x44,0xfb,0xa6,0x4b,0x5a,0x63,0x4c,0x42,0x8f,0x5c,0x63,0x92,0x00,0x00,0x01,0x00,0x97,0xfe,0xdb,0x05,0x22,0x05,0x88,0x00,0x25,0x00,0x49,0x40,0x24,0x25,0x00,0x1a,0x09,0x13,0x0b,0x11,0x00,0x0b,0x11, +0x11,0x0b,0x00,0x03,0x22,0x17,0x16,0x27,0x03,0x8a,0x22,0x13,0x1a,0x1a,0x1e,0x9b,0x09,0x06,0x0e,0x06,0x0e,0x17,0x25,0x06,0x16,0x17,0x00,0x2f,0x33,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x33,0xed,0x32,0x11,0x33,0x01,0x2f,0xed,0x10,0xc6,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x39,0x32,0x11,0x33,0x31,0x30,0x01,0x06,0x06, +0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x12,0x12,0x17,0x07,0x26,0x02,0x27,0x35,0x06,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x37,0x01,0x8d,0x2e,0x24,0x8f,0x7f,0x35,0x66,0x24,0x42,0x48,0x3e,0x48,0x5f,0x3a,0x54,0xb1,0x64,0x80,0x62,0xc9,0x25,0x37,0x8c,0x3f,0x82,0xc8,0x6f,0x2b, +0x23,0x05,0x88,0xb2,0xe2,0x63,0xc9,0xd5,0x30,0x2c,0x60,0x6b,0x4b,0x5f,0x7b,0x5c,0x5f,0x5b,0xfe,0xf9,0xfe,0x91,0x85,0x5d,0x86,0x01,0xcd,0x90,0x01,0x2f,0x35,0x91,0x01,0x04,0x9c,0x6f,0x01,0x11,0x7c,0x00,0x00,0x01,0x00,0x90,0xfe,0xde,0x04,0xce,0x05,0x88,0x00,0x36,0x00,0x63,0x40,0x33,0x04,0x8a,0x19,0x16,0x15,0x22,0x1f,0x13, +0x0b,0x11,0x1f,0x0b,0x11,0x15,0x15,0x11,0x0b,0x1f,0x04,0x26,0x38,0x2d,0x2d,0x36,0x32,0x8a,0x26,0x0e,0x01,0x13,0x19,0x19,0x09,0x07,0x99,0x1b,0x22,0x01,0x9b,0x35,0x1b,0x35,0x1b,0x35,0x16,0x2e,0x9b,0x2b,0x06,0x15,0x16,0x00,0x2f,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x32,0x33,0x11,0x33,0x11,0x39, +0x01,0x2f,0xfd,0xc6,0x39,0x2f,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x11,0x33,0x32,0xed,0x31,0x30,0x01,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x07,0x26,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35, +0x34,0x3e,0x02,0x33,0x33,0x15,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x21,0x03,0x61,0xed,0x73,0x7c,0x9d,0x7c,0x45,0x37,0x2a,0x3c,0x39,0x52,0x73,0x45,0x57,0x92,0x7d,0x3f,0x7c,0x2f,0x60,0x5a,0x80,0xd5,0x77,0x3c,0x4b,0x63,0x75,0x3b,0x64,0xa9,0x85,0xe0,0xca,0x7e,0x7e,0x43,0x96,0x7d,0x01,0x1a,0x02,0xe0,0x75,0x6d,0x7e,0xa2, +0x13,0x56,0x4a,0x3f,0x49,0x8f,0x5a,0x57,0x35,0xad,0xbd,0x5c,0x44,0xd4,0x6d,0x1c,0x75,0xce,0x7d,0x51,0x87,0x3c,0x06,0x26,0xa8,0x6f,0x4d,0x6c,0x47,0x2a,0x96,0x22,0x4a,0x3f,0x5e,0x72,0x00,0x01,0x00,0x76,0xff,0xf8,0x04,0xca,0x05,0x88,0x00,0x29,0x00,0x4d,0xbc,0x00,0x24,0x01,0x85,0x00,0x06,0x00,0x0d,0x01,0x85,0x40,0x0a,0x1d, +0x06,0x29,0x1d,0x1d,0x29,0x06,0x03,0x2b,0x16,0xb8,0x01,0x85,0x40,0x0f,0x15,0x00,0x9b,0x29,0x21,0x9b,0x09,0x29,0x09,0x29,0x09,0x11,0x15,0x06,0x1a,0xb8,0x01,0x80,0xb1,0x11,0x18,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01, +0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x06,0x23,0x22,0x00,0x02,0x11,0x33,0x10,0x12,0x12,0x33,0x32,0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x37,0x03,0xd4,0x16,0x1d,0x78,0xaf,0x5e,0xa8,0x84,0x72,0xb0,0x60,0x7d,0xe2,0x8f,0xcd,0xfe,0xea,0x83,0x9f,0x69,0xcd,0x93, +0x95,0xb9,0x3e,0x6b,0x3e,0x3f,0x4c,0x43,0x75,0x46,0x1a,0x01,0xd4,0x05,0x62,0xae,0x67,0x89,0xb1,0x8b,0xfc,0x9c,0xb6,0xfe,0xe8,0x97,0x01,0x43,0x02,0x95,0x01,0xb8,0xfe,0x5a,0xfd,0xc3,0xfe,0xeb,0x01,0x05,0xce,0x6f,0xb1,0x64,0x59,0x4c,0x48,0x66,0x36,0x02,0x00,0x01,0x00,0x80,0xff,0xa1,0x04,0x3e,0x05,0x96,0x00,0x16,0x00,0x2f, +0x40,0x16,0x16,0x00,0x0a,0x0b,0x00,0x0b,0x00,0x0b,0x18,0x04,0x8b,0x12,0x0b,0x0a,0x0a,0x0e,0x00,0x16,0x06,0x07,0x99,0x0e,0x00,0x2f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x00,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x04,0x23,0x22,0x26, +0x26,0x35,0x34,0x12,0x00,0x13,0x03,0x97,0xfd,0xef,0x52,0x19,0x95,0x73,0x6c,0xb9,0x6d,0x89,0x81,0xfe,0xfd,0x95,0x75,0xc1,0x6f,0x82,0x01,0x23,0xe9,0x05,0x39,0xfd,0x2c,0xc9,0x3c,0x3b,0x6c,0x83,0x89,0xb4,0x57,0xc7,0xb4,0x64,0xb4,0x72,0x72,0x01,0x05,0x01,0xb2,0x01,0x42,0x00,0x00,0x01,0x00,0x76,0xfe,0xe6,0x04,0x23,0x05,0x9c, +0x00,0x27,0x00,0x42,0x40,0x21,0x27,0x00,0x24,0x8a,0x02,0x12,0x13,0x10,0x89,0x16,0x00,0x1d,0x13,0x16,0x02,0x16,0x02,0x16,0x29,0x08,0x8a,0x1d,0x00,0x9a,0x27,0x27,0x12,0x05,0x9b,0x20,0x06,0x13,0x12,0x00,0x2f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x12,0x39,0x10,0xed,0x11,0x33, +0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x17,0x1e,0x02,0x15,0x14,0x07,0x27,0x36,0x35,0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x01,0xf1,0xc5,0x6f,0x59,0x60,0x77,0x38,0x86,0xcc,0xd0,0x7a,0x38,0x56,0x87,0x36,0x29,0x54,0xb4,0xec, +0xa0,0x49,0xcf,0xa2,0x6b,0xaa,0x5f,0x99,0x90,0x03,0x32,0x54,0xa6,0x60,0x76,0x84,0x63,0x40,0x7e,0xa8,0xd8,0xdd,0x99,0x74,0x37,0x6b,0x6b,0x52,0x4e,0x34,0x22,0x4f,0x69,0xbf,0xfa,0xd2,0xb0,0x5a,0xa5,0xce,0x61,0xad,0x67,0x82,0xc5,0x36,0x00,0x02,0x00,0x96,0x00,0x93,0x04,0x9f,0x04,0xc9,0x00,0x0e,0x00,0x1e,0x00,0x1f,0x40,0x0f, +0x1b,0x8a,0x00,0x00,0x20,0x08,0x8a,0x13,0x0b,0x9b,0x0f,0x04,0x9b,0x17,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x36,0x01,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x06,0x03,0xff,0x55,0x9d, +0x66,0x6c,0xa8,0x5e,0xba,0x96,0x67,0xaf,0x64,0xfe,0x79,0x8c,0xdd,0x79,0x8c,0xfa,0x96,0x8e,0xe2,0x7d,0x93,0xff,0x02,0xc0,0x64,0xa4,0x5d,0x66,0xb7,0x6c,0x9b,0xcb,0x68,0xb6,0xfe,0x3f,0x8a,0xf4,0x8e,0x98,0xff,0x93,0x87,0xed,0x90,0x99,0xfe,0xfb,0x94,0x00,0x00,0x01,0x00,0x64,0xff,0xe7,0x03,0x88,0x05,0xb1,0x00,0x25,0x00,0x35, +0x40,0x1a,0x06,0x8a,0x14,0x25,0x0d,0x12,0x22,0x14,0x0d,0x22,0x14,0x14,0x22,0x0d,0x03,0x27,0x1c,0x25,0x1f,0x10,0x10,0x0a,0x1f,0x07,0x0a,0x19,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x10,0xed,0x31,0x30,0x01,0x16,0x16,0x17,0x16,0x16,0x15,0x14,0x02,0x06,0x23, +0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x35,0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x01,0x32,0x12,0x5d,0x74,0xc3,0xb0,0x76,0xb2,0x6a,0x5f,0x73,0xa2,0x73,0x35,0x40,0x3b,0x3f,0x75,0x8e,0x9d,0x6a,0x3c,0x59,0x3d,0x37,0x47,0x22,0x23,0x04,0xd3,0x20,0x56,0x59,0x98,0xfe,0x81,0x7a, +0xfe,0xfa,0x86,0x5a,0x4b,0x57,0x74,0x10,0x4d,0x54,0x3d,0x77,0x7c,0x74,0x7f,0x6e,0x6a,0x35,0x44,0x55,0x3f,0x36,0x25,0x2d,0x11,0x00,0x00,0x01,0x00,0x78,0xff,0xa7,0x05,0x09,0x05,0xb1,0x00,0x2d,0x00,0x43,0x40,0x13,0x03,0x00,0x89,0x0c,0x15,0x27,0x23,0x1d,0x07,0x15,0x23,0x23,0x15,0x07,0x03,0x2f,0x1d,0x03,0x0d,0xb8,0x01,0x81, +0x40,0x0b,0x19,0x27,0x27,0x20,0x0c,0x0c,0x08,0x20,0x07,0x07,0x08,0x00,0x2f,0x33,0x3f,0x12,0x39,0x2f,0x12,0x39,0x11,0x33,0xed,0x39,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xc4,0xed,0x32,0x31,0x30,0x01,0x14,0x06,0x07,0x15,0x16,0x04,0x17,0x07,0x26,0x24,0x24,0x27,0x37,0x16,0x17,0x16,0x33,0x32,0x36,0x36, +0x35,0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x1e,0x05,0x04,0x47,0xcc,0xcf,0xc8,0x01,0x3c,0x59,0x68,0x4d,0xfe,0x8e,0xfe,0x5e,0xc8,0x10,0x31,0x85,0x3c,0x36,0x7e,0xf5,0x7c,0x41,0x75,0xa9,0x97,0x82,0x46,0x56,0x42,0x36,0x46,0x22,0x23,0x01,0x34,0x8a,0x94,0x8f,0x71,0x46,0x03,0x4b, +0x7e,0xc8,0x3f,0x06,0x4b,0xe2,0x83,0x69,0x71,0xfa,0x9c,0x12,0xa5,0x03,0x19,0x06,0x4b,0x74,0x49,0x36,0x48,0x31,0x24,0x20,0x3c,0x57,0x41,0x44,0x5b,0x42,0x2f,0x1d,0x38,0x12,0x06,0x07,0x14,0x24,0x37,0x52,0x72,0x00,0x00,0x01,0x00,0x82,0x00,0x93,0x05,0x8b,0x05,0x36,0x00,0x23,0x00,0x38,0x40,0x14,0x1a,0x8a,0x07,0x0a,0x0d,0x13, +0x0d,0x07,0x07,0x0d,0x13,0x03,0x25,0x00,0x22,0x0a,0x10,0x10,0x16,0x03,0xb8,0x01,0x80,0xb4,0x1e,0x22,0x00,0x16,0x06,0x00,0x3f,0xc6,0x32,0xd4,0xed,0x12,0x39,0x2f,0x39,0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x31,0x30,0x13,0x12,0x00,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x27,0x07,0x16,0x15,0x14,0x06, +0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x22,0x24,0x02,0x03,0x37,0xfb,0x96,0x01,0x40,0xce,0x64,0x97,0x53,0x98,0x83,0x09,0x30,0x8d,0x5b,0x61,0x83,0xc7,0xa8,0x95,0xe1,0x79,0x7a,0xdf,0x8e,0xb4,0xfe,0xce,0xf2,0x4a,0x73,0x05,0x36,0xfd,0xd2,0xfe,0x25,0x6c,0xc0,0x70,0x9e,0xe3,0x18,0x0e,0x3c, +0x4a,0x5b,0x83,0x93,0x6a,0x80,0x9c,0x91,0xfe,0xfe,0x9f,0xa0,0xfe,0xf5,0x99,0xf7,0x01,0xf5,0x01,0x5e,0x59,0x00,0x00,0x03,0x00,0x8c,0x00,0x4c,0x04,0x91,0x05,0xb1,0x00,0x1d,0x00,0x2b,0x00,0x38,0x00,0x46,0x40,0x26,0x2c,0x8a,0x12,0x1a,0x8a,0x33,0x03,0x8b,0x1e,0x0e,0x12,0x33,0x1d,0x1e,0x12,0x33,0x1e,0x1e,0x33,0x12,0x03,0x3a, +0x26,0x8a,0x0b,0x22,0x1d,0x0e,0x30,0x04,0x16,0x29,0x99,0x07,0x36,0x9b,0x16,0x07,0x00,0x3f,0xed,0x2f,0xed,0x12,0x17,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26, +0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x13,0x34,0x26,0x26,0x27,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x14,0x16,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0x7e,0x95,0x7e,0x8a,0xee,0x8f,0x8e,0xed,0x83,0x8f,0xa7,0x87,0x7a,0x7f,0xe0,0x80,0x82,0xd2,0x77,0x6e,0x7f,0x77,0x46,0x80,0x9b, +0x9d,0x84,0x47,0xd8,0xa0,0x94,0xbd,0xfd,0x6c,0x3f,0x76,0x9f,0x9c,0x7a,0xb7,0x89,0x84,0xa6,0x03,0x32,0x3f,0xa8,0x77,0x75,0xb3,0x60,0x62,0xb1,0x75,0x7e,0xaa,0x37,0x06,0x34,0x91,0x65,0x62,0x98,0x54,0x51,0x94,0x64,0x6b,0x92,0x33,0xfe,0x98,0x44,0x63,0x4a,0x31,0x28,0x44,0x61,0x47,0x71,0x91,0x85,0x03,0x0b,0x37,0x50,0x3d,0x2f, +0x2c,0x71,0x54,0x4c,0x62,0x5e,0x00,0x02,0x00,0x96,0x00,0x01,0x05,0x82,0x05,0xb1,0x00,0x1f,0x00,0x32,0x00,0x5a,0x40,0x18,0x02,0x8a,0x30,0x2b,0x25,0x0f,0x89,0x28,0x09,0x14,0x00,0x30,0x28,0x28,0x30,0x00,0x14,0x09,0x05,0x34,0x20,0x8a,0x1a,0x13,0xb8,0x01,0x7e,0x40,0x10,0x09,0x2b,0x05,0x12,0x30,0x08,0x1e,0x12,0x08,0x12,0x08, +0x16,0x00,0x1e,0x07,0x25,0xb8,0x01,0x80,0xb1,0x16,0x18,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x39,0x32,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x33,0x33,0x10,0xed,0x31,0x30,0x01,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x15,0x07,0x0e,0x02,0x15,0x14, +0x16,0x33,0x17,0x15,0x06,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x00,0x37,0x17,0x01,0x14,0x16,0x16,0x33,0x37,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x35,0x37,0x06,0x02,0x03,0xbf,0x2f,0x84,0x5f,0x18,0x2e,0x34,0x95,0x70,0xcb,0x8f,0x48,0x7a,0x50,0x79,0xd2,0xd1,0xb0,0xfe,0xdb,0xa5,0xa5,0x01,0x2d,0xc2,0x95,0xfd,0x75,0x78, +0xde,0x95,0x43,0x42,0x5a,0x83,0x97,0x70,0x82,0x02,0xd9,0xe3,0x05,0x5e,0x5c,0x47,0x5d,0x86,0x0d,0x1f,0x4b,0x06,0x49,0x7d,0x78,0x77,0x40,0x4c,0x80,0x80,0x06,0x6b,0x95,0x01,0x01,0x95,0x91,0x01,0x4c,0x01,0x35,0x73,0x4d,0xfc,0xcc,0x76,0xb8,0x63,0x03,0x36,0xa2,0x4d,0x62,0xc2,0x6e,0x2a,0xaa,0x71,0x15,0x15,0xac,0xfe,0xac,0x00, +0x00,0x01,0x00,0x64,0xff,0xe5,0x06,0x29,0x05,0xb1,0x00,0x2d,0x00,0x5a,0xb9,0x00,0x0a,0x01,0x85,0x40,0x12,0x19,0x06,0x1b,0x01,0x8a,0x21,0x1b,0x21,0x19,0x21,0x28,0x28,0x21,0x19,0x03,0x2f,0x11,0x02,0xb8,0x01,0x80,0x40,0x12,0x11,0x12,0x1b,0x1e,0x22,0x06,0x12,0x1e,0x06,0x12,0x12,0x06,0x1e,0x03,0x0e,0x2b,0x07,0x15,0xb8,0x01, +0x80,0xb1,0x0e,0x19,0x00,0x3f,0xed,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x11,0x33,0xed,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x01,0x11,0x14,0x33,0x32,0x36,0x37,0x33,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x20,0x00,0x03,0x37,0x33,0x12,0x21,0x32,0x36, +0x36,0x35,0x34,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x03,0x92,0x23,0x68,0xbd,0x68,0x0e,0x66,0x73,0x87,0xff,0xae,0xfe,0xae,0xfe,0x39,0x78,0x77,0x06,0xfa,0x02,0x1c,0x7a,0xb6,0x62,0x34,0x47,0xc2,0x66,0x74,0x85,0x06,0x1a,0x1d,0x2a,0x46,0x58,0x41,0x56,0x63,0x04,0x89, +0xfe,0xd2,0x73,0x93,0xa4,0x59,0xfe,0xf7,0x98,0xa6,0xfe,0xf9,0x93,0x02,0x35,0x02,0x51,0x64,0xfb,0xb5,0x6f,0xc6,0x7b,0x7a,0x6a,0x60,0x6e,0x8f,0x78,0x01,0x72,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x00,0x02,0x00,0x87,0xff,0xe8,0x04,0xa0,0x05,0xb1,0x00,0x21,0x00,0x30,0x00,0x43,0x40,0x0a,0x24,0x14,0x8a,0x21,0x1b,0x21,0x1b,0x21, +0x32,0x2e,0xb8,0x01,0x82,0xb4,0x05,0x05,0x2e,0x24,0x22,0xb8,0x01,0x80,0x40,0x0d,0x00,0x0d,0x15,0x1e,0x02,0x02,0x0d,0x1e,0x19,0x2a,0x9b,0x0d,0x07,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0xed,0x32,0x32,0x39,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x31,0x30,0x01,0x06,0x23,0x22,0x24,0x27,0x26, +0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x03,0x15,0x11,0x17,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x01,0x32,0x37,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x06,0x15,0x17,0x16,0x03,0x4e,0x63,0x96,0x5c,0xfe,0xe1,0x1b,0x19,0x1f,0x62,0x9a,0xc7,0x73,0x1f,0x58,0x59,0x3e,0x27,0x01,0x06,0x1a,0x1d,0x2a,0x46,0x58, +0x41,0x57,0x62,0xfe,0xfb,0xa2,0x63,0x29,0x37,0x3a,0x11,0x61,0xae,0x65,0x07,0x8c,0x02,0x74,0x1d,0x2a,0x13,0x1c,0x5b,0x2a,0x65,0xfc,0xb7,0x64,0x35,0x62,0x84,0xb2,0x74,0xfd,0xb2,0x4c,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x8a,0x01,0xe2,0x27,0x57,0x75,0xa0,0x63,0x2c,0x87,0xe9,0x83,0x0a,0x25,0x00,0x00,0x02,0x00,0x78,0xff,0xe8, +0x06,0x08,0x05,0xb1,0x00,0x31,0x00,0x41,0x00,0x6e,0xb3,0x1f,0x8a,0x18,0x26,0xb8,0x01,0x86,0x40,0x2d,0x3e,0x12,0x24,0x1a,0x3e,0x18,0x1a,0x3e,0x3e,0x1a,0x18,0x03,0x43,0x0e,0x35,0x8a,0x07,0x31,0x1a,0x1c,0x3e,0x34,0x32,0x9b,0x10,0x23,0x9b,0x15,0x12,0x0e,0x02,0x0a,0x1c,0x0e,0x15,0x2b,0x1c,0x10,0x15,0x15,0x10,0x1c,0x03,0x0a, +0x3a,0xb8,0x01,0x80,0xb3,0x2b,0x19,0x0a,0x07,0x00,0x3f,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x32,0x32,0x11,0x33,0x01,0x2f,0xc4,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x27,0x27,0x06,0x23,0x22,0x26,0x35, +0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x36,0x35,0x34,0x27,0x35,0x37,0x33,0x16,0x15,0x14,0x06,0x23,0x22,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x03,0x35,0x25,0x22,0x07,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x36,0x35,0x27,0x26,0x26,0x01,0x26,0x01,0x06,0x1a,0x1d,0x2a,0x46,0x58,0x41, +0x56,0x63,0x78,0xa1,0x90,0x80,0x26,0x52,0x54,0x58,0x4c,0x0b,0x82,0x06,0x28,0xad,0x90,0x30,0x1b,0x0e,0x62,0x99,0xc7,0x71,0x1f,0x58,0x59,0x3e,0x27,0x01,0xca,0x9b,0x8b,0x29,0x37,0x3a,0x11,0x61,0xab,0x65,0x07,0x3b,0x6f,0x04,0x71,0x52,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x8a,0xfe,0xa4,0x36,0x3c,0x18,0x12,0x3a,0x3b,0x1d,0x1f, +0x06,0x62,0x4f,0x52,0x81,0x9b,0x06,0x19,0x2a,0x64,0xff,0xb6,0x63,0x35,0x62,0x84,0xb2,0x74,0x97,0x40,0x57,0x75,0xa0,0x63,0x2c,0x85,0xeb,0x83,0x0a,0x20,0x1e,0x00,0x00,0x01,0x00,0x96,0xff,0xe7,0x05,0x3b,0x05,0xb1,0x00,0x3c,0x00,0x67,0xb9,0x00,0x1a,0x01,0x83,0xb6,0x39,0x0d,0x39,0x0d,0x39,0x07,0x35,0xb8,0x01,0x85,0x40,0x24, +0x1d,0x2d,0x2a,0x24,0x2a,0x1d,0x1d,0x2a,0x24,0x03,0x3e,0x07,0x89,0x14,0x00,0x9b,0x18,0x31,0x21,0x07,0x10,0x0a,0x21,0x2d,0x18,0x27,0x0a,0x18,0x0a,0x18,0x10,0x27,0x07,0x10,0x19,0x1a,0xb8,0x01,0x81,0xb1,0x39,0x19,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x01, +0x2f,0xec,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x22,0x06,0x06,0x15,0x14,0x17,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x20,0x13,0x36,0x36,0x35,0x34,0x26,0x26,0x27,0x24,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x07,0x07,0x14,0x16,0x17,0x04,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x2e,0x02,0x02,0x26,0x41,0x6f,0x42,0x0c,0x0b,0x0f,0x4e,0x2d,0x41,0x5d,0x5f,0x4b,0x4d,0x90,0x56,0x6d,0xb2,0x6d,0x01,0x6e,0x4c,0x56,0x6a,0x55,0xac,0xff,0xfe,0xe1,0xe2,0x4f,0x44,0x39,0x48,0x22,0x23,0x01,0x94,0xa2,0x01,0x37,0xeb,0x7a,0x87,0xd5,0x85, +0x23,0x4e,0x72,0x02,0x1f,0x45,0x7a,0x41,0x28,0x25,0x02,0x2a,0x36,0x66,0x44,0x47,0x58,0x57,0x95,0x59,0x6a,0xc4,0x63,0xfd,0xec,0x23,0xa6,0x5f,0x42,0x6e,0x61,0x5f,0x69,0xcd,0x8a,0x54,0x5c,0x3e,0x37,0x25,0x2d,0x11,0x06,0x3f,0x6c,0x39,0x6e,0x8c,0xaf,0x6d,0x81,0xf5,0x7c,0xe5,0xe2,0x71,0x00,0x02,0x00,0x98,0x00,0xe6,0x03,0xee, +0x04,0x23,0x00,0x0b,0x00,0x17,0x00,0x2a,0xb9,0x00,0x00,0x01,0x85,0xb3,0x0c,0x0c,0x19,0x12,0xbe,0x01,0x85,0x00,0x06,0x00,0x15,0x01,0x7e,0x00,0x03,0x00,0x0f,0x01,0x7e,0xb1,0x09,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x34, +0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xee,0xf8,0xb3,0xb3,0xf8,0xf0,0xbb,0xbb,0xf0,0xa0,0x93,0x78,0x77,0x94,0x97,0x74,0x73,0x98,0x02,0x83,0xae,0xef,0xef,0xae,0xbb,0xe5,0xe5,0xbb,0x71,0xab,0xad,0x6f,0x77,0xa5,0xa8,0x00,0x02,0x01,0x00,0xff,0xba,0x03,0x6f,0x05,0x1a,0x00,0x15,0x00,0x1e,0x00,0x36,0x40,0x09, +0x16,0x12,0x8a,0x02,0x00,0x02,0x00,0x20,0x1b,0xb8,0x01,0x85,0x40,0x0b,0x0a,0x1d,0x99,0x05,0x05,0x00,0x19,0x9b,0x0d,0x06,0x15,0xb8,0x01,0x80,0xb1,0x00,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x33,0x31,0x30,0x05,0x24,0x11,0x35,0x12,0x35,0x06,0x23,0x22,0x26,0x35,0x34, +0x36,0x33,0x32,0x16,0x15,0x10,0x03,0x15,0x14,0x17,0x01,0x35,0x34,0x23,0x22,0x15,0x14,0x33,0x32,0x03,0x6f,0xfe,0xeb,0x0a,0x25,0x25,0x7e,0x9c,0x9f,0x7c,0x7a,0x72,0x0a,0x72,0xfe,0xfa,0x4e,0x7b,0x78,0x21,0x46,0x24,0x01,0x11,0x0c,0x01,0x1e,0xe4,0x08,0x9b,0x7d,0x74,0x99,0xb2,0xe0,0xfe,0xf0,0xfe,0x83,0x07,0x8e,0x0d,0x03,0x44, +0x25,0xb8,0x6d,0x7c,0x00,0x01,0x00,0x5d,0xff,0xbe,0x04,0x26,0x04,0xee,0x00,0x20,0x00,0x4d,0xb2,0x1e,0x05,0x1c,0xb8,0x01,0x85,0x40,0x1d,0x10,0x0d,0x10,0x01,0x00,0x09,0x10,0x00,0x00,0x10,0x09,0x03,0x22,0x16,0x0d,0x05,0x1e,0x1e,0x07,0x0b,0x07,0x0b,0x07,0x01,0x13,0x9b,0x19,0x06,0x00,0xb8,0x01,0x80,0xb1,0x01,0x19,0x00,0x3f, +0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x11,0x33,0x33,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xed,0x32,0x32,0x31,0x30,0x25,0x07,0x26,0x27,0x26,0x27,0x06,0x23,0x22,0x35,0x34,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x36,0x33,0x32,0x00,0x15,0x10,0x05,0x16,0x16, +0x04,0x26,0x28,0x79,0x5b,0x19,0xa2,0x6c,0x6f,0xd9,0xe9,0x79,0x6b,0x6b,0x80,0xc3,0xa3,0xbc,0x8f,0x65,0x72,0xbe,0x80,0xe5,0x01,0x21,0xfe,0xf6,0x65,0x6d,0x58,0x9a,0x11,0x43,0x12,0x98,0x24,0x91,0x8e,0x45,0x38,0xc5,0x73,0xa4,0xc8,0x77,0x7c,0x57,0x44,0xfe,0xda,0xe6,0xfe,0xd1,0xad,0x63,0x3e,0x00,0x00,0x01,0x00,0x6b,0xff,0x7b, +0x04,0x19,0x05,0x04,0x00,0x2a,0x00,0x68,0xb6,0x05,0x04,0x04,0x2c,0x29,0x00,0x26,0xb8,0x01,0x85,0x40,0x19,0x1b,0x08,0x02,0x02,0x16,0x1b,0x0d,0x16,0x0d,0x16,0x22,0x13,0x1b,0x02,0x09,0x29,0x29,0x17,0x0f,0x0f,0x11,0x16,0x9b,0x17,0x11,0xb8,0x01,0x81,0x40,0x0b,0x09,0x17,0x09,0x17,0x09,0x05,0x1f,0x9b,0x24,0x06,0x04,0xb9,0x01, +0x80,0x00,0x05,0x00,0x2f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x2f,0x11,0x39,0x11,0x12,0x39,0x01,0x2f,0x33,0xc4,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x32,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x14,0x05,0x16,0x17,0x07,0x26,0x26,0x27,0x07,0x22,0x27,0x26,0x35,0x34,0x33, +0x32,0x17,0x24,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x27,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x20,0x11,0x14,0x06,0x07,0x16,0x04,0x19,0xfe,0xdb,0x41,0x7d,0x29,0x72,0x96,0x62,0x4c,0x8c,0x41,0x77,0xaa,0x6d,0xb3,0x01,0x20,0xfe,0xca,0xcd,0xeb,0x7c,0x94,0x82,0x49,0xa0,0xa8,0xbb,0x38,0xd6,0xc5,0x02,0x0b,0x57,0x3c, +0x9b,0x01,0x8f,0xe9,0x41,0x2e,0x22,0x9a,0x1f,0x51,0x61,0x01,0x12,0x22,0x65,0x78,0x6e,0x14,0x8d,0xcb,0xa1,0x5a,0x53,0x7c,0x29,0x17,0x47,0x97,0x50,0xfe,0xa4,0x46,0x9b,0x24,0x77,0x00,0x00,0x02,0x00,0x94,0xff,0xba,0x03,0xf0,0x05,0x1e,0x00,0x1c,0x00,0x29,0x00,0x53,0xb3,0x00,0x89,0x1c,0x06,0xbb,0x01,0x85,0x00,0x1d,0x00,0x24, +0x01,0x85,0x40,0x1e,0x0e,0x02,0x1c,0x12,0x21,0x18,0x03,0x1d,0x0e,0x1c,0x1d,0x0e,0x0e,0x1d,0x1c,0x03,0x2b,0x15,0x89,0x14,0x18,0x02,0x12,0x21,0x04,0x0a,0x1c,0x14,0x06,0x27,0xb8,0x01,0x80,0xb1,0x0a,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x17,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x17,0x39,0x11,0x39,0x10, +0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x02,0x01,0x1e,0x02,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x00,0x03,0x33,0x16,0x16,0x17,0x3e,0x02,0x37,0x03,0x34,0x27,0x26,0x27,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xf0,0x30,0xfe,0xef,0x81,0x3d,0x1f,0x5c,0x9b,0x53,0x54,0x9a,0x5c,0x1f,0x3e,0x80, +0xfe,0xeb,0x2c,0xaa,0x22,0x76,0x6f,0x57,0x55,0x3d,0x18,0x5a,0x38,0x11,0x5e,0x72,0x3b,0x67,0x43,0x43,0x67,0x05,0x1e,0xfe,0x81,0xfe,0xdc,0x95,0x64,0x63,0x30,0x51,0x8f,0x55,0x55,0x8f,0x51,0x30,0x63,0x65,0x94,0x01,0x28,0x01,0x7b,0xb6,0xfa,0x76,0x5a,0x8d,0xba,0x85,0xfb,0xd1,0x3b,0x50,0x18,0x6c,0x84,0x50,0x3b,0x38,0x5e,0x5c, +0x00,0x01,0x00,0x59,0xff,0xf6,0x04,0x2b,0x04,0xe1,0x00,0x1a,0x00,0x48,0xb9,0x00,0x10,0x01,0x85,0xb2,0x0a,0x18,0x00,0xb8,0x01,0x85,0x40,0x0d,0x01,0x0a,0x01,0x0a,0x01,0x1c,0x12,0x89,0x0d,0x07,0x18,0x12,0x15,0xb8,0x01,0x80,0x40,0x0b,0x02,0x07,0x0d,0x04,0x04,0x01,0x19,0x0d,0x06,0x01,0x18,0x00,0x3f,0x3f,0x33,0x12,0x39,0x2f, +0x12,0x39,0x39,0xed,0x32,0x32,0x01,0x2f,0xc6,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x10,0xed,0x31,0x30,0x05,0x23,0x11,0x06,0x23,0x22,0x24,0x27,0x37,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16,0x33,0x32,0x36,0x37,0x11,0x33,0x04,0x2b,0xa0,0x7b,0xe0,0xa7,0xfe,0xf9,0x29,0x4f,0x39,0x41,0x23,0xaa,0x5a, +0x65,0x1f,0x9f,0x56,0x57,0xd7,0x2d,0xa0,0x0a,0x01,0x53,0x2a,0x8e,0x7e,0x69,0x66,0x92,0x50,0xde,0x27,0xac,0xa9,0xcd,0x98,0x31,0x37,0x22,0x16,0x02,0xea,0x00,0x01,0x00,0x7d,0xff,0xf6,0x04,0x06,0x06,0x30,0x00,0x2d,0x00,0x68,0xb9,0x00,0x17,0x01,0x85,0x40,0x10,0x0c,0x13,0x0e,0x13,0x1a,0x1a,0x13,0x0e,0x03,0x05,0x2f,0x25,0x25, +0x00,0x20,0x28,0xb8,0x01,0x85,0x40,0x1c,0x09,0x07,0x05,0x14,0x9b,0x11,0x0c,0x00,0x2d,0x07,0x26,0x9b,0x23,0x1a,0x1b,0x2d,0x23,0x1b,0x1b,0x23,0x2d,0x03,0x02,0x1d,0x9b,0x0c,0x06,0x2b,0xb8,0x01,0x80,0xb1,0x02,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x39,0x11,0x33,0x10,0xdd,0xed,0x01, +0x2f,0x33,0x33,0xfd,0x32,0xc4,0x39,0x2f,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0xed,0x31,0x30,0x25,0x06,0x23,0x22,0x24,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x17,0x15,0x27,0x22,0x06,0x15,0x14,0x17,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x20,0x15,0x14,0x16,0x33, +0x32,0x37,0x04,0x06,0xb9,0xc0,0xe9,0xfe,0xd9,0xa0,0x9c,0xde,0xc2,0x1c,0x98,0x7a,0x69,0x69,0x50,0x22,0x68,0x88,0x23,0x75,0x7a,0xc1,0xa2,0xba,0x84,0xec,0xcb,0xfe,0x9d,0xe0,0x91,0xa3,0xa5,0x39,0x43,0xc4,0xaf,0xa5,0x5c,0x5d,0xb1,0x98,0xb4,0x10,0x32,0x45,0x6a,0x7b,0x04,0xa7,0x03,0x1c,0x21,0x47,0x27,0x23,0x9c,0x1a,0x5f,0x61, +0x52,0x6d,0xaf,0xa1,0x61,0x72,0x3b,0x00,0x00,0x01,0x00,0xbf,0xff,0xf0,0x03,0xc4,0x05,0x25,0x00,0x17,0x00,0x40,0xb4,0x03,0x04,0x10,0x0f,0x00,0xb8,0x01,0x85,0x40,0x09,0x07,0x0f,0x07,0x04,0x07,0x04,0x07,0x19,0x0d,0xb8,0x01,0x85,0x40,0x0c,0x12,0x0f,0x10,0x10,0x15,0x04,0x03,0x19,0x0a,0x9b,0x15,0x06,0x00,0x3f,0xed,0x3f,0x33, +0x12,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x14,0x00,0x05,0x27,0x36,0x00,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x03,0xc4,0xfe,0xba,0xff,0x00,0x70,0xe0,0x01,0x37,0x98,0x69,0x52,0x74,0x40,0x8c,0x53,0xc4, +0xa1,0xb1,0xef,0x03,0x92,0xc2,0xfe,0x08,0xe8,0x71,0xcb,0x01,0xc9,0x9d,0x61,0x92,0x6b,0x46,0x52,0x6b,0x4e,0x75,0x96,0x8f,0xc2,0xe8,0x00,0x01,0x00,0x2b,0xff,0xf6,0x04,0x59,0x05,0x29,0x00,0x18,0x00,0x3c,0xb6,0x10,0x00,0x10,0x00,0x1a,0x0e,0x13,0xb8,0x01,0x85,0x40,0x09,0x09,0x05,0x00,0x18,0x18,0x10,0x02,0x0c,0x0f,0xb8,0x01, +0x80,0xb3,0x07,0x10,0x06,0x16,0xb8,0x01,0x80,0xb1,0x02,0x18,0x00,0x3f,0xed,0x3f,0x33,0xfd,0xc4,0x11,0x12,0x39,0x2f,0x33,0x01,0x2f,0xc4,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x25,0x06,0x23,0x22,0x00,0x11,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x21,0x15,0x21,0x16,0x15,0x10,0x12,0x33,0x32,0x37,0x04,0x59,0x9b, +0xa6,0xfb,0xfe,0xcd,0x07,0xb8,0x83,0x40,0x5c,0x26,0x02,0xbd,0xfd,0x59,0x03,0xdd,0xb2,0x65,0x79,0x65,0x6f,0x01,0xd2,0x01,0x80,0x52,0x47,0x09,0x89,0x3f,0x77,0xa8,0x9f,0x2f,0x6b,0xfe,0xc9,0xfe,0x85,0x4d,0x00,0x01,0x00,0x2b,0xff,0xf6,0x04,0x59,0x05,0xda,0x00,0x25,0x00,0x4a,0xb9,0x00,0x19,0x01,0x85,0x40,0x0e,0x0f,0x1d,0x11, +0x1d,0x15,0x00,0x00,0x15,0x1d,0x11,0x04,0x27,0x0e,0x20,0xb8,0x01,0x85,0xb7,0x09,0x05,0x17,0x9b,0x14,0x1c,0x0c,0x0e,0xb8,0x01,0x80,0xb3,0x07,0x1e,0x06,0x23,0xb8,0x01,0x80,0xb1,0x02,0x18,0x00,0x3f,0xed,0x3f,0x33,0xfd,0xcd,0x33,0xd4,0xed,0x01,0x2f,0xc4,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x12,0x39,0xed,0x31,0x30, +0x25,0x06,0x23,0x22,0x00,0x11,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x21,0x26,0x35,0x34,0x36,0x33,0x15,0x22,0x07,0x06,0x15,0x14,0x16,0x33,0x15,0x21,0x16,0x15,0x10,0x12,0x33,0x32,0x37,0x04,0x59,0x9b,0xa6,0xfb,0xfe,0xcd,0x07,0xb8,0x83,0x40,0x5c,0x26,0x01,0xb5,0x11,0x8e,0xb1,0x44,0x17,0x45,0x46,0x34,0xfd,0x59,0x03, +0xdd,0xb2,0x65,0x79,0x65,0x6f,0x01,0xd2,0x01,0x80,0x52,0x47,0x09,0x89,0x3f,0x77,0xa8,0x2c,0x37,0x7f,0x77,0xa0,0x06,0x11,0x3f,0x2c,0x37,0x9f,0x2f,0x6b,0xfe,0xc9,0xfe,0x85,0x4d,0x00,0x00,0x02,0x00,0x76,0x01,0x13,0x03,0xc8,0x04,0xa4,0x00,0x0b,0x00,0x19,0x00,0x27,0xb9,0x00,0x10,0x01,0x85,0xb3,0x09,0x09,0x1b,0x03,0xbb,0x01, +0x85,0x00,0x17,0x00,0x06,0x01,0x80,0xb4,0x13,0x00,0x9b,0x0c,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x02,0x20,0x73,0x99,0x9d,0x6f,0x70,0x9a,0x97,0x73,0x75, +0xc3,0x70,0xed,0xbb,0x72,0xc6,0x72,0xe9,0x04,0x09,0xab,0x81,0x7f,0xb0,0xb0,0x7f,0x80,0xac,0x9b,0x76,0xd3,0x7f,0xc8,0xfe,0xff,0x7a,0xd3,0x7c,0xce,0xfa,0x00,0x02,0x00,0x2d,0xff,0xe8,0x03,0x89,0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0x3c,0x40,0x0b,0x18,0x0d,0x8a,0x0e,0x0f,0x15,0x0f,0x15,0x0f,0x23,0x1f,0xbb,0x01,0x85,0x00,0x06, +0x00,0x16,0x01,0x80,0xb3,0x03,0x03,0x09,0x0d,0xb8,0x01,0x80,0xb5,0x12,0x19,0x1c,0x9b,0x09,0x07,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x33,0x31,0x30,0x01,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35, +0x03,0x32,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x0c,0x02,0x50,0x4e,0x8c,0xb3,0xb2,0x87,0x92,0xb8,0x90,0x49,0x3f,0x83,0x35,0x42,0x44,0xa4,0x58,0x4c,0x55,0x49,0x47,0x5c,0x5b,0x03,0x39,0x02,0x15,0xb7,0x98,0x8c,0xb1,0xc9,0x9f,0xfc,0x38,0x67,0xac,0x28,0x2d,0x55,0x4b,0x03,0x3e,0x23,0x66,0x5e,0x6a,0x5e,0x49, +0x4c,0x5e,0x00,0x01,0x00,0x7c,0xff,0xe8,0x04,0x43,0x05,0xb2,0x00,0x26,0x00,0x55,0xb9,0x00,0x00,0x01,0x85,0x40,0x24,0x09,0x0a,0x1b,0x0a,0x1b,0x0a,0x28,0x18,0x03,0x8b,0x21,0x13,0x10,0x0a,0x09,0x03,0x21,0x20,0x18,0x10,0x16,0x09,0x10,0x16,0x20,0x20,0x16,0x10,0x09,0x04,0x0c,0x1e,0x9b,0x23,0x07,0x07,0xb8,0x01,0x80,0xb1,0x0c, +0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x32,0x11,0x33,0x01,0x2f,0xcd,0xc4,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x17,0x16,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x36, +0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x03,0x84,0xca,0xac,0x25,0x22,0x64,0x51,0x73,0x8c,0x3a,0x96,0x9f,0x90,0xb4,0x30,0x28,0x7d,0x79,0x68,0x47,0x94,0x38,0x6e,0x81,0xbe,0x9f,0x62,0x33,0x1a,0x38,0x60,0xa7,0xed,0x7e,0x03,0xce,0xa3,0xf2,0x26,0x90,0x82,0x7e,0x47,0x9e,0x44,0xbc,0xc0,0xa3,0x05,0x4e,0x53, +0x45,0x5d,0x9d,0x20,0x9c,0x6b,0x90,0xae,0x08,0x95,0x0e,0x7a,0xdb,0x00,0x00,0x01,0x00,0x0f,0xff,0xe8,0x04,0x52,0x05,0xb2,0x00,0x2b,0x00,0x5b,0xb9,0x00,0x02,0x01,0x85,0x40,0x0d,0x00,0x1d,0x10,0x10,0x2d,0x1d,0x23,0x17,0x23,0x17,0x0a,0x09,0x29,0xb8,0x01,0x85,0x40,0x17,0x1d,0x09,0x0a,0x00,0x13,0x17,0x9b,0x18,0x23,0x22,0x0a, +0x18,0x22,0x22,0x18,0x0a,0x03,0x06,0x20,0x9b,0x25,0x07,0x0d,0xb8,0x01,0x80,0xb1,0x06,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x39,0x11,0x33,0x01,0x2f,0xed,0xc4,0x32,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x2f,0x12,0x39,0xed,0x31,0x30,0x01,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x24, +0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x07,0x03,0x80,0xd2,0x7b,0xdd,0x89,0xb9,0xfe,0xd6,0x7f,0x7a,0x5e,0xf8,0x8d,0x97,0xb1,0x70,0x5e,0x36,0x40,0x58,0x4d,0x13,0x29,0x5d,0x6f,0x8e,0x96,0x78, +0x4d,0x3f,0x23,0x4d,0x57,0x88,0xc7,0x68,0x7f,0x02,0xf7,0x8d,0xe4,0x7d,0xbc,0x65,0xb6,0xc0,0x5f,0x94,0xa6,0x8e,0x7e,0x56,0x90,0x2f,0x10,0x0b,0x97,0x07,0x89,0x6a,0x6f,0x86,0x12,0x97,0x16,0x6a,0xbd,0x74,0xb0,0x6e,0x00,0x02,0x00,0x0a,0xff,0xe8,0x04,0xc4,0x05,0xbc,0x00,0x10,0x00,0x1b,0x00,0x57,0xbc,0x00,0x16,0x01,0x85,0x00, +0x0d,0x00,0x07,0x01,0x85,0x40,0x1c,0x11,0x02,0x03,0x14,0x01,0x0f,0x03,0x0d,0x04,0x11,0x03,0x0d,0x11,0x03,0x03,0x11,0x0d,0x03,0x1d,0x00,0x10,0x01,0x0f,0x04,0x14,0x04,0x00,0x19,0xb8,0x01,0x80,0xb7,0x0a,0x19,0x03,0x10,0x10,0x02,0x00,0x07,0x00,0x3f,0x32,0x32,0x11,0x33,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0x33,0x12,0x17,0x39, +0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x17,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x01,0x01,0x17,0x01,0x16,0x12,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x10,0x37,0x01,0x01,0x34,0x26,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x70,0x01,0xf5,0x01,0xed,0x72,0xfe,0x16,0x76,0x71,0xbd,0x9b,0x9f,0xbd,0xe6,0xfe,0x17,0x03,0x19, +0x55,0x64,0xbf,0x67,0x50,0x54,0x6d,0x05,0xbc,0xfe,0x3a,0x01,0xc6,0x75,0xfe,0x3b,0x81,0xfe,0xff,0x92,0xae,0xd8,0xe0,0xb0,0x01,0x1a,0xf6,0x01,0xbc,0xfc,0x35,0x5a,0xd5,0x6e,0xcb,0xd8,0x67,0x89,0x8a,0x00,0x00,0x01,0x00,0x16,0xff,0xe8,0x05,0x11,0x05,0xb2,0x00,0x22,0x00,0x4b,0x40,0x12,0x01,0x02,0x20,0x00,0x8a,0x08,0x02,0x08, +0x02,0x08,0x24,0x1b,0x8a,0x15,0x0e,0x21,0x06,0x1e,0xb8,0x01,0x80,0x40,0x0d,0x15,0x09,0x14,0x0b,0x14,0x0b,0x14,0x05,0x12,0x9b,0x17,0x07,0x00,0xb8,0x01,0x80,0xb1,0x05,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x32,0xed,0x3f,0x01,0x2f,0xc4,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x11,0x33,0x31, +0x30,0x25,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x16,0x33,0x32,0x37,0x11,0x33,0x04,0x38,0x90,0x49,0x3f,0x83,0x35,0x42,0x44,0x6e,0x8b,0xda,0xe8,0x2c,0x2f,0x2d,0x1c,0x1f,0x28,0x41,0x76,0x88,0x8e,0x7c,0x97,0x76,0xa4,0x82, +0x67,0xac,0x28,0x2d,0x55,0x4b,0xfb,0x35,0xed,0xdb,0x01,0xa2,0x29,0x36,0x05,0x96,0x0a,0x91,0x7f,0xfe,0x5e,0x87,0x90,0x66,0x03,0x4b,0x00,0x01,0x00,0x41,0xff,0xe8,0x04,0x85,0x05,0xbb,0x00,0x36,0x00,0x70,0xbf,0x00,0x0a,0x01,0x85,0x00,0x15,0x00,0x2a,0x01,0x85,0x00,0x27,0x00,0x04,0x01,0x85,0x40,0x11,0x1b,0x1d,0x27,0x1b,0x15, +0x00,0x0f,0x27,0x1b,0x1b,0x27,0x0f,0x00,0x15,0x05,0x38,0x30,0xb8,0x01,0x85,0x40,0x16,0x20,0x0f,0x10,0x07,0x17,0x17,0x1d,0x12,0x00,0x9b,0x2d,0x22,0x10,0x0d,0x22,0x27,0x36,0x36,0x0d,0x27,0x07,0x12,0xb8,0x01,0x80,0xb1,0x0d,0x19,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x11,0x33,0xed,0x12,0x39,0x39,0x11,0x33, +0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x2e,0x02,0x35,0x34,0x37,0x35,0x24,0x35,0x10,0x21,0x32,0x36,0x35,0x34,0x27,0x17, +0x16,0x15,0x14,0x06,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x03,0x30,0xb9,0x5f,0x66,0x81,0xb5,0xdb,0xc2,0xa2,0x89,0x86,0x60,0x2f,0x57,0x5b,0x3f,0x53,0xfa,0xb6,0xc1,0x62,0x44,0xfe,0xe9,0x01,0x9a,0x43,0x56,0x06,0x9d,0x04,0xac,0x82,0x87,0x7b,0x89,0x6c,0x2b,0x2d,0xed,0x03,0x1a,0x1c,0x0e,0x59,0x48,0x3d,0x3d,0x05, +0x07,0x79,0x75,0x6d,0x86,0x28,0x8b,0x1b,0x38,0x27,0x50,0x06,0x05,0x3d,0x7b,0x62,0x66,0x4a,0x02,0x45,0xdb,0x01,0x25,0x25,0x22,0x17,0x12,0x33,0x12,0x1e,0x49,0x5f,0x47,0x47,0x43,0x50,0x03,0x23,0x00,0x02,0x00,0x36,0xff,0xe8,0x04,0xaf,0x05,0xb2,0x00,0x1d,0x00,0x29,0x00,0x53,0xb1,0x21,0x16,0xbb,0x01,0x85,0x00,0x07,0x00,0x27, +0x01,0x85,0x40,0x0d,0x0f,0x07,0x0f,0x07,0x0f,0x2b,0x00,0x8b,0x1d,0x1d,0x00,0x21,0x1e,0xb8,0x01,0x80,0x40,0x09,0x0c,0x09,0x0c,0x00,0x0c,0x00,0x0c,0x12,0x03,0xb8,0x01,0x80,0xb5,0x1a,0x19,0x24,0x9b,0x12,0x07,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x32,0x11,0x33,0x01,0x2f,0xed,0x12,0x39,0x39, +0x2f,0x2f,0x10,0xed,0x10,0xed,0x33,0x31,0x30,0x13,0x12,0x12,0x33,0x32,0x36,0x12,0x35,0x34,0x27,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x22,0x00,0x03,0x25,0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xd1,0x2c,0xcf,0xb5,0x76,0xb8,0x62,0x04,0x02,0x7d,0x9b,0xa1,0xc9, +0xc0,0xa2,0x89,0xce,0x6d,0x89,0xfd,0xa2,0xf8,0xfe,0xde,0x37,0x02,0xb4,0x42,0x89,0x3d,0x21,0x83,0x52,0x5e,0x77,0x6d,0x03,0x23,0xfe,0x94,0xfe,0xcc,0x92,0x01,0x00,0x97,0x3d,0x3a,0x6a,0xdb,0xb0,0xa5,0xc9,0xbf,0xfe,0x9b,0xed,0xc9,0xfe,0xc0,0xb0,0x01,0x70,0x01,0xa2,0x5a,0x47,0x44,0x91,0xa7,0x73,0x5f,0x6c,0x85,0x00,0x00,0x01, +0x00,0x80,0xff,0xe8,0x04,0x3e,0x05,0xbc,0x00,0x14,0x00,0x33,0x40,0x14,0x14,0x00,0x09,0x0a,0x00,0x0a,0x00,0x0a,0x16,0x04,0x8b,0x10,0x0a,0x09,0x09,0x0d,0x00,0x14,0x07,0x07,0xb8,0x01,0x80,0xb1,0x0d,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x01, +0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x13,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x37,0x01,0x03,0x7c,0xfe,0x6e,0x6f,0x5e,0x90,0x74,0xe9,0xab,0x89,0x7c,0xfd,0xa0,0xbb,0xea,0x6c,0x71,0x01,0x96,0x05,0x5f,0xfd,0xdf,0x97,0xd8,0x5a,0x6a,0x88,0x01,0x3b,0x57,0xd3,0xac,0xe3,0xaf,0x7c,0x01,0x07,0x98,0x02,0x27,0x00,0x02, +0x00,0x7d,0xff,0xe8,0x04,0x96,0x05,0xb5,0x00,0x03,0x00,0x18,0x00,0x58,0x40,0x13,0x03,0x00,0x15,0x16,0x01,0x02,0x0b,0x0c,0x00,0x16,0x02,0x0c,0x0c,0x02,0x16,0x00,0x04,0x1a,0x04,0xb8,0x01,0x85,0x40,0x13,0x12,0x0c,0x0b,0x00,0x03,0x02,0x01,0x0b,0x03,0x01,0x01,0x03,0x0b,0x03,0x0e,0x16,0x15,0x07,0x08,0xb8,0x01,0x80,0xb1,0x0e, +0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x01,0x17,0x01,0x25,0x14,0x16,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x37,0x17,0x06,0x02,0x02, +0x1d,0x01,0xb1,0x71,0xfe,0x52,0xfe,0x8a,0x72,0xc8,0x78,0x61,0xa7,0x51,0x70,0xce,0xf5,0xae,0xfe,0xef,0x97,0xdc,0xca,0x70,0xad,0xcb,0x02,0x68,0x01,0x8c,0x73,0xfe,0x75,0x9a,0x99,0xf0,0x84,0x49,0x43,0x73,0xb4,0xab,0x01,0x3c,0xcc,0xe6,0x01,0x97,0x9d,0x75,0x84,0xfe,0x90,0x00,0x00,0x02,0x00,0x82,0x00,0xd7,0x04,0x4f,0x04,0x89, +0x00,0x0f,0x00,0x1c,0x00,0x22,0x40,0x09,0x08,0x89,0x10,0x10,0x1e,0x16,0x89,0x00,0x19,0xb8,0x01,0x80,0xb4,0x0c,0x13,0x9b,0x04,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x13,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14, +0x16,0x33,0x32,0x36,0x36,0x82,0x81,0xe3,0x83,0x81,0xe3,0x82,0x84,0xe2,0x80,0x81,0xe3,0x83,0x03,0x26,0xb9,0x86,0x84,0xbc,0xbb,0x85,0x55,0x94,0x56,0x02,0xb0,0x7d,0xda,0x82,0x80,0xdc,0x7d,0x7e,0xdc,0x7f,0x80,0xdc,0x7d,0x84,0xbc,0xbc,0x84,0x82,0xbd,0x54,0x96,0x00,0x00,0x02,0x00,0x82,0xff,0xe2,0x03,0x7f,0x05,0x7d,0x00,0x15, +0x00,0x21,0x00,0x3b,0x40,0x0e,0x08,0x8a,0x13,0x12,0x16,0x12,0x16,0x12,0x23,0x0e,0x1c,0x89,0x00,0x1f,0xb8,0x01,0x80,0x40,0x0d,0x0e,0x04,0x0c,0x0c,0x13,0x19,0x9b,0x04,0x06,0x12,0x9a,0x13,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x31,0x30,0x13, +0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x27,0x1e,0x02,0x17,0x07,0x24,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x82,0x69,0xb2,0x67,0x65,0xb1,0x65,0x64,0xb2,0x65,0x68,0x47,0x1b,0x8c,0xe0,0x84,0x56,0xfe,0xcc,0xfe,0xac,0x02,0x58,0x7d,0x59,0x55,0x7f,0x7e,0x56,0x59,0x7d,0x03, +0xe5,0x6c,0xbe,0x6e,0x69,0xb1,0x62,0x64,0xae,0x68,0x33,0x72,0xe3,0xc1,0x3c,0x86,0x92,0x02,0x27,0x01,0x66,0x5c,0x84,0x8b,0x63,0x58,0x7c,0x87,0x00,0x02,0x00,0x96,0xff,0xe2,0x03,0x93,0x05,0x7d,0x00,0x17,0x00,0x23,0x00,0x3d,0x40,0x0f,0x03,0x04,0x0a,0x00,0x89,0x1e,0x04,0x1e,0x04,0x1e,0x25,0x18,0x89,0x10,0x1b,0xb8,0x01,0x80, +0x40,0x0d,0x0a,0x14,0x0c,0x0c,0x03,0x21,0x9b,0x14,0x06,0x04,0x9a,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x11,0x33,0x31,0x30,0x01,0x10,0x00,0x05,0x27,0x36,0x36,0x37,0x15,0x36,0x37,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16, +0x16,0x05,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0x93,0xfe,0xaa,0xfe,0xcf,0x55,0x68,0xbc,0x44,0x74,0x2e,0x49,0x67,0x65,0xb1,0x65,0x67,0xb0,0x64,0x66,0xb3,0x69,0xfd,0xaa,0x7d,0x57,0x57,0x7d,0x7d,0x57,0x58,0x7c,0x03,0xe5,0xfe,0xb7,0xfd,0xd7,0x91,0x86,0x31,0x90,0x4f,0x01,0x91,0xb2,0x33,0x67,0xaf,0x64, +0x64,0xb1,0x67,0x6e,0xbe,0x50,0x5d,0x85,0x7d,0x57,0x62,0x8c,0x83,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x05,0x4c,0x05,0x7d,0x00,0x33,0x00,0x57,0x40,0x1a,0x11,0x10,0x14,0x89,0x0d,0x22,0x32,0x8a,0x33,0x29,0x8a,0x2a,0x10,0x0d,0x33,0x2a,0x2a,0x33,0x0d,0x10,0x04,0x35,0x07,0x89,0x1b,0x0a,0xb8,0x01,0x81,0x40,0x11,0x10,0x22,0x11, +0x17,0x11,0x17,0x11,0x1f,0x2a,0x33,0x18,0x2e,0x04,0x9b,0x25,0x1f,0x06,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x33,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36, +0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x02,0xaf,0x31,0x4f,0x27,0x5c,0x82,0x4c,0x36,0x17,0x1c,0x2e,0x27,0x33,0x52,0x77,0x80,0x5a,0x50,0x8b,0x4f,0x61,0xb4,0x74,0x4f, +0x86,0x1d,0x2a,0x7f,0x4e,0xa1,0xb7,0xa4,0x69,0x46,0x4a,0x5c,0xa4,0x03,0xe7,0x3f,0x76,0x45,0xc8,0x91,0x6d,0x9d,0x26,0x19,0x16,0x2e,0x11,0x8d,0x04,0x87,0x57,0x5f,0x88,0x77,0xc7,0x74,0x8f,0xe5,0x81,0x53,0x40,0x48,0x4b,0xc0,0xa2,0xfb,0xe5,0x04,0x1b,0x4f,0x77,0x8d,0x6d,0xfc,0x19,0x00,0x00,0x02,0x00,0x64,0xff,0xe5,0x05,0x0b, +0x05,0xa9,0x00,0x17,0x00,0x23,0x00,0x53,0x40,0x29,0x1e,0x89,0x00,0x10,0x89,0x18,0x0b,0x8b,0x0a,0x08,0x1b,0x03,0x03,0x00,0x0d,0x18,0x0a,0x00,0x18,0x0a,0x0a,0x18,0x00,0x03,0x25,0x06,0x89,0x05,0x0b,0x05,0x05,0x08,0x03,0x0d,0x1b,0x04,0x14,0x0a,0x06,0x07,0x21,0xb8,0x01,0x80,0xb1,0x14,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x17, +0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x17,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x37,0x26,0x03,0x37,0x12,0x05,0x36,0x13,0x17,0x02,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x25,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01, +0x27,0x95,0x84,0xee,0xee,0xa6,0xa6,0x01,0x1e,0xc3,0xe1,0x99,0xd6,0xde,0x85,0x93,0x72,0xc3,0x6f,0x6f,0xc1,0x74,0x02,0xa0,0x8c,0x70,0x73,0x8a,0x94,0x69,0x67,0x95,0x01,0x60,0x87,0xfa,0x57,0x94,0x01,0x9b,0x42,0xfe,0xa2,0xb0,0x6d,0x01,0x87,0x43,0xfe,0x8d,0xa2,0x64,0xf1,0x74,0x6e,0xb5,0x66,0x65,0xb1,0x72,0x5f,0xc7,0x3f,0x38, +0xcf,0x6b,0x5c,0x84,0x8b,0x00,0x00,0x03,0x00,0x64,0xff,0xe5,0x05,0x23,0x05,0x7d,0x00,0x24,0x00,0x30,0x00,0x3c,0x00,0x6e,0x40,0x39,0x37,0x89,0x0a,0x1d,0x89,0x25,0x12,0x89,0x31,0x19,0x18,0x3a,0x28,0x03,0x08,0x04,0x0a,0x25,0x15,0x1b,0x31,0x18,0x0a,0x25,0x31,0x18,0x18,0x31,0x25,0x0a,0x04,0x3e,0x06,0x05,0x2b,0x89,0x00,0x18, +0x05,0x08,0x3a,0x15,0x03,0x28,0x1b,0x06,0x06,0x19,0x06,0x19,0x06,0x21,0x34,0x9b,0x0e,0x06,0x2e,0xb8,0x01,0x80,0xb1,0x21,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x32,0x33,0x01,0x2f,0xed,0xc6,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x39,0x11,0x12,0x17,0x39,0x11,0x33,0x10,0xed, +0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x37,0x26,0x03,0x37,0x16,0x17,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x27,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x25,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x13,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16, +0x17,0x36,0x36,0x01,0x0b,0x7d,0x6e,0xc8,0xca,0x86,0x80,0x8c,0x49,0x63,0xaa,0x61,0x5c,0xa4,0x60,0x89,0x5f,0x73,0xba,0x63,0x88,0x60,0x82,0x48,0x66,0xb0,0x64,0x65,0xb0,0x67,0x02,0x50,0x50,0x43,0x7d,0x97,0x7c,0x57,0x56,0x7e,0x79,0x6d,0x4c,0x52,0x74,0x4f,0x45,0x6a,0x81,0x01,0x47,0x57,0xb0,0x47,0x59,0x01,0x24,0x65,0xe0,0x56, +0x62,0x78,0x5d,0xa5,0x60,0x64,0xab,0x60,0x5d,0xb5,0x3b,0x2b,0xa3,0x89,0x65,0xaa,0x5c,0x7e,0x62,0x55,0x98,0x59,0x60,0xa4,0x42,0x54,0x9f,0x32,0x29,0x95,0x4b,0x53,0x74,0x62,0x03,0x2c,0x56,0x7d,0x74,0x52,0x3f,0x8a,0x3d,0x38,0x89,0x00,0x00,0x01,0x00,0x64,0x00,0x00,0x04,0xe2,0x05,0x7d,0x00,0x2f,0x00,0x57,0x40,0x16,0x12,0x89, +0x1f,0x2c,0x89,0x05,0x1f,0x05,0x1f,0x05,0x24,0x31,0x19,0x18,0x18,0x00,0x0c,0x89,0x24,0x18,0x19,0x1c,0xb8,0x01,0x80,0x40,0x0f,0x15,0x0c,0x28,0x1f,0x15,0x19,0x15,0x19,0x15,0x00,0x09,0x9b,0x28,0x06,0x01,0xb8,0x01,0x81,0xb1,0x00,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x12,0x39,0x10,0xed,0x11,0x33, +0x01,0x2f,0xed,0xc4,0x39,0x2f,0x33,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x33,0x35,0x33,0x20,0x00,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15, +0x10,0x00,0x21,0x64,0xcc,0x01,0x42,0x01,0xc7,0x56,0x94,0x56,0x57,0x7e,0x37,0x2e,0x43,0x4b,0xc1,0x86,0x61,0xc1,0x42,0x86,0x36,0x75,0x33,0x44,0x5c,0x76,0x3a,0x42,0x66,0xaf,0x66,0x81,0xe4,0x84,0xfd,0xd4,0xfe,0x7a,0xa7,0x01,0x9f,0x01,0x27,0x63,0xad,0x64,0x54,0x3c,0x17,0x39,0x1a,0x26,0x6b,0x3a,0x77,0xa7,0x77,0x76,0x55,0x50, +0x57,0x46,0x2f,0x3e,0x3d,0x1f,0x6e,0x3d,0x4f,0x8b,0x50,0x90,0xf5,0x8b,0xfe,0x94,0xfd,0xff,0x00,0x02,0x00,0x64,0xff,0xe5,0x04,0xed,0x05,0x7d,0x00,0x27,0x00,0x33,0x00,0x50,0x40,0x13,0x24,0x89,0x05,0x15,0x89,0x2e,0x05,0x2e,0x00,0x00,0x2e,0x05,0x03,0x35,0x28,0x0d,0x8a,0x1c,0x2b,0xb8,0x01,0x80,0x40,0x10,0x18,0x31,0x9b,0x12, +0x0f,0x12,0x18,0x12,0x18,0x12,0x00,0x09,0x9b,0x20,0x06,0x01,0xb8,0x01,0x80,0xb1,0x00,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x17,0x35,0x33,0x20,0x00,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15, +0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x10,0x00,0x21,0x13,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x64,0x95,0x01,0x5e,0x01,0xef,0x73,0xcc,0x72,0x69,0xb8,0x6b,0x09,0x27,0x7d,0x4a,0x77,0xa0,0xa0,0x70,0x6e,0xc4,0x71,0x99,0x01,0x06, +0x92,0x9f,0x01,0x17,0xa2,0xfd,0xab,0xfe,0x61,0x79,0x11,0x53,0x31,0x2e,0x3b,0x46,0x2a,0x30,0x50,0x1b,0x9c,0x01,0xad,0x01,0x32,0x66,0xb3,0x68,0x5e,0xa2,0x5e,0x18,0x26,0x43,0x54,0x9a,0x69,0x6b,0x98,0x75,0xc9,0x6f,0x86,0xec,0x88,0x92,0xfd,0x8e,0xfe,0x8b,0xfd,0xfa,0x02,0xcb,0x1b,0x24,0x40,0x28,0x26,0x36,0x4c,0x00,0x00,0x01, +0x00,0xb4,0x00,0x00,0x04,0x5a,0x05,0x42,0x00,0x05,0x00,0x16,0x40,0x0a,0x01,0x04,0x89,0x05,0x05,0x18,0x03,0x9b,0x00,0x06,0x00,0x3f,0xed,0x3f,0x01,0x2f,0xfd,0xc4,0x31,0x30,0x13,0x21,0x15,0x21,0x11,0x23,0xb4,0x03,0xa6,0xfd,0x02,0xa8,0x05,0x42,0x99,0xfb,0x57,0x00,0x00,0x01,0x00,0x82,0xff,0xe2,0x03,0xf2,0x05,0x62,0x00,0x16, +0x00,0x3b,0x40,0x1d,0x04,0x03,0x0c,0x08,0x89,0x13,0x12,0x0c,0x00,0x05,0x12,0x05,0x12,0x18,0x0f,0x89,0x00,0x0c,0x05,0x0b,0x0b,0x03,0x12,0x99,0x13,0x19,0x06,0x03,0x06,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x11,0x33,0xed,0x11,0x33,0x33,0x31,0x30,0x13,0x34,0x12, +0x37,0x33,0x01,0x11,0x33,0x11,0x14,0x06,0x23,0x01,0x06,0x06,0x15,0x14,0x00,0x17,0x07,0x26,0x24,0x02,0x82,0xb1,0x9b,0x1b,0x01,0x62,0xa7,0x1e,0x13,0xfe,0x14,0x56,0x54,0x01,0x19,0xec,0x43,0xac,0xfe,0xe0,0x9f,0x02,0xe5,0xac,0x01,0x58,0x79,0xfe,0x8f,0x01,0x71,0xfd,0x5b,0x0b,0x13,0x01,0xf5,0x51,0xde,0x80,0xcd,0xfe,0xb1,0x51, +0x96,0x3b,0xf3,0x01,0x35,0x00,0x00,0x02,0x00,0x77,0xff,0xe8,0x04,0x41,0x05,0x48,0x00,0x0b,0x00,0x17,0x00,0x20,0x40,0x10,0x00,0x89,0x0c,0x0c,0x19,0x12,0x89,0x06,0x09,0x99,0x0f,0x06,0x15,0x99,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33, +0x32,0x12,0x03,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x04,0x41,0xfb,0xeb,0xea,0xfa,0xfa,0xea,0xeb,0xfb,0xab,0x9a,0xa1,0xa1,0x98,0x97,0xa2,0xa2,0x99,0x02,0x97,0xfe,0xa8,0xfe,0xa9,0x01,0x57,0x01,0x58,0x01,0x59,0x01,0x58,0xfe,0xa8,0xfe,0xa7,0x01,0x17,0x01,0x06,0xfe,0xf7,0xfe,0xec,0xfe,0xeb,0xfe,0xfc,0x01, +0x02,0x00,0x00,0x03,0x00,0x50,0x00,0x00,0x05,0x94,0x05,0x31,0x00,0x1d,0x00,0x21,0x00,0x2d,0x00,0x57,0x40,0x30,0x21,0x89,0x14,0x19,0x0a,0x89,0x2d,0x1e,0x2d,0x00,0x89,0x07,0x14,0x2d,0x03,0x07,0x17,0x17,0x07,0x03,0x2d,0x14,0x05,0x2f,0x26,0x89,0x11,0x09,0x23,0x9b,0x14,0x19,0x21,0x21,0x0d,0x18,0x20,0x9b,0x15,0x06,0x2a,0x99, +0x0d,0x18,0x04,0x99,0x03,0x18,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x35,0x32,0x36,0x35,0x10,0x21,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37, +0x11,0x21,0x15,0x21,0x11,0x33,0x32,0x16,0x16,0x01,0x11,0x21,0x11,0x05,0x21,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x35,0x05,0x94,0xdd,0xae,0x68,0x78,0xfe,0xc6,0xd0,0xd0,0x6e,0xce,0x83,0x8d,0x7d,0x03,0x58,0xfe,0xfd,0x39,0x72,0xc5,0x75,0xfd,0x73,0xfe,0xfb,0x01,0x05,0xfe,0xc8,0x61,0x6f,0x56,0x85,0x3b,0x79,0x79,0x01, +0xc0,0xc9,0xf5,0x02,0x95,0x92,0x89,0x01,0x04,0xd5,0xff,0xe0,0x88,0xe7,0x71,0x86,0xb7,0x13,0x02,0x01,0x94,0xfe,0xab,0x65,0xb8,0x01,0x1d,0x01,0x55,0xfe,0xab,0x94,0x72,0x62,0x49,0x9c,0x66,0xad,0xbe,0x00,0x00,0x02,0x00,0x50,0x00,0x00,0x05,0xf0,0x05,0x31,0x00,0x2e,0x00,0x3a,0x00,0x62,0xb4,0x23,0x89,0x0d,0x13,0x16,0xb8,0x01, +0x84,0x40,0x0f,0x2f,0x2a,0x89,0x04,0x00,0x0d,0x2f,0x04,0x04,0x2f,0x0d,0x00,0x04,0x3c,0x35,0xbe,0x01,0x84,0x00,0x1c,0x00,0x32,0x01,0x7e,0x00,0x13,0x00,0x38,0x01,0x7e,0x40,0x12,0x19,0x08,0x27,0x27,0x19,0x13,0x19,0x13,0x19,0x01,0x10,0x9b,0x20,0x06,0x2d,0x99,0x01,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11, +0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x21,0x21,0x22,0x26,0x35,0x34,0x3e,0x06,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x15,0x14,0x06,0x06,0x07,0x06,0x06,0x15, +0x14,0x16,0x33,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0xf0,0xfb,0xe3,0xc7,0xa3,0x45,0x70,0x90,0x96,0x90,0x70,0x45,0xb7,0x9b,0x4d,0x6f,0x33,0x84,0x7d,0x98,0x6d,0x69,0x8b,0x89,0xda,0x88,0xe2,0x01,0x16,0x83,0xf2,0xad,0x8d,0x70,0x56,0x82,0x04,0x04,0xfb,0xcf,0x46,0x2d,0x2f,0x44,0x43,0x30,0x2f, +0x44,0x60,0x6e,0x4a,0x61,0x42,0x2e,0x2d,0x36,0x52,0x7a,0x5a,0x90,0xa5,0x30,0x2f,0x04,0x80,0x7c,0x61,0x8a,0x97,0x6a,0x7d,0xe0,0x76,0xf2,0xc9,0x8a,0xd0,0x79,0x2e,0x25,0x3f,0x2c,0x2e,0x23,0x02,0xbf,0x31,0x47,0x48,0x30,0x33,0x45,0x45,0x00,0x01,0x00,0x8c,0x00,0x00,0x05,0xd1,0x05,0x31,0x00,0x20,0x00,0x51,0x40,0x2b,0x16,0x0c, +0x89,0x0d,0x1f,0x1c,0x89,0x05,0x14,0x00,0x05,0x0d,0x01,0x05,0x05,0x01,0x0d,0x03,0x22,0x10,0x89,0x11,0x02,0x1f,0x99,0x01,0x08,0x9b,0x16,0x01,0x19,0x19,0x12,0x01,0x18,0x15,0x0f,0x9b,0x12,0x06,0x0d,0x11,0x18,0x00,0x3f,0x33,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f, +0x2f,0x2f,0x11,0x39,0x39,0x10,0xed,0x32,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x35,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x15,0x23,0x11,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x21,0x05,0xd1,0xfd,0xf0,0x61,0x84,0x7b,0x6b,0x47,0x54,0x3d,0xa8,0xfe,0xf4,0xa8,0x02,0xce,0x72, +0x3e,0x64,0x45,0xa8,0xd7,0x45,0x38,0x01,0x00,0x95,0x0d,0xbe,0x7a,0x81,0x9b,0x1e,0x32,0xfd,0x5a,0x04,0x9d,0xfb,0x63,0x05,0x31,0x94,0xfe,0xb5,0x20,0x19,0xe8,0xaf,0x5e,0xbf,0x43,0x00,0x00,0x03,0x00,0x50,0x00,0x00,0x05,0xa3,0x05,0x31,0x00,0x14,0x00,0x18,0x00,0x24,0x00,0x50,0x40,0x2b,0x18,0x89,0x0c,0x11,0x02,0x89,0x24,0x15, +0x24,0x00,0x89,0x12,0x0c,0x24,0x0f,0x12,0x12,0x0f,0x24,0x0c,0x04,0x26,0x1e,0x89,0x09,0x01,0x1a,0x9b,0x11,0x0c,0x18,0x18,0x05,0x10,0x17,0x9b,0x13,0x0d,0x06,0x21,0x99,0x05,0x18,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10, +0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x21,0x15,0x10,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x21,0x15,0x23,0x11,0x21,0x11,0x33,0x01,0x11,0x21,0x11,0x05,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x05,0xa3,0xfe,0x20,0xe0,0xda,0x7f,0xc8,0x72,0x92,0x7e,0x02,0xd0,0x6d,0x01,0x38,0xa8,0xfd,0x78,0xfe,0xed, +0x01,0x13,0xa9,0x95,0x9b,0x46,0x9c,0x86,0x79,0x84,0x02,0xb4,0x90,0xfe,0xf4,0xfe,0xe8,0x70,0xd5,0x92,0x81,0xb4,0x1f,0x02,0x06,0x94,0xfe,0xab,0x01,0xe9,0xfe,0x17,0x01,0x55,0xfe,0xab,0x94,0x28,0x5d,0x5c,0x93,0xab,0xe8,0xcc,0x00,0x01,0x00,0x8c,0xfd,0xb9,0x07,0x18,0x07,0x21,0x00,0x34,0x00,0x62,0x40,0x35,0x19,0x89,0x1a,0x1f, +0x15,0x89,0x16,0x24,0x8a,0x0f,0x34,0x8a,0x00,0x1d,0x16,0x0f,0x1a,0x16,0x0f,0x00,0x00,0x0f,0x16,0x1a,0x04,0x36,0x08,0x89,0x2c,0x1e,0x18,0x9b,0x1b,0x04,0x9b,0x30,0x1b,0x12,0x9b,0x1f,0x21,0x00,0x21,0x00,0x1a,0x1b,0x06,0x0c,0x99,0x28,0x16,0x1a,0x18,0x00,0x3f,0x33,0xd4,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x39,0xed,0x10,0xd4, +0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x02,0x02,0x24,0x23,0x22,0x04,0x02,0x11,0x10,0x12,0x04,0x33,0x20,0x00,0x11,0x34,0x26,0x23,0x22,0x07,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x21,0x15,0x23,0x11,0x36,0x33,0x32,0x16, +0x15,0x14,0x02,0x04,0x23,0x20,0x00,0x02,0x11,0x10,0x12,0x00,0x21,0x32,0x04,0x12,0x13,0x06,0x76,0x07,0xa4,0xfe,0xde,0xba,0xd3,0xfe,0xc7,0xad,0x9d,0x01,0x1e,0xc8,0x01,0x0b,0x01,0x2e,0x5d,0x4f,0x70,0x37,0xa8,0xee,0xa8,0x02,0xb0,0x72,0x53,0x55,0xa1,0xae,0xb5,0xfe,0xb2,0xd6,0xfe,0xff,0xfe,0x93,0xc3,0xd3,0x01,0x8c,0x01,0x10, +0xe3,0x01,0x63,0xcb,0x0c,0x03,0x1d,0x01,0x03,0x01,0x91,0xdc,0xf7,0xfe,0x22,0xfe,0xbc,0xfe,0xb2,0xfe,0x1c,0xf5,0x01,0x6b,0x01,0x4f,0x72,0x8c,0x51,0xfe,0x4c,0x04,0x9d,0xfb,0x63,0x05,0x31,0x94,0xfd,0xaa,0x51,0xe9,0xdd,0xed,0xfe,0x96,0xc2,0x01,0x18,0x02,0x22,0x01,0x81,0x01,0x71,0x02,0x22,0x01,0x1a,0xfe,0xfe,0x2c,0xfe,0xce, +0x00,0x03,0x00,0x50,0x00,0x00,0x07,0x45,0x05,0x31,0x00,0x2e,0x00,0x3a,0x00,0x3e,0x00,0x7a,0x40,0x44,0x3e,0x89,0x2d,0x03,0x23,0x89,0x3a,0x3b,0x3a,0x06,0x1d,0x89,0x1e,0x10,0x0d,0x89,0x17,0x2d,0x3a,0x1e,0x01,0x13,0x17,0x12,0x12,0x17,0x13,0x01,0x1e,0x3a,0x2d,0x07,0x40,0x34,0x89,0x2a,0x14,0x10,0x99,0x13,0x19,0x9b,0x06,0x13, +0x0a,0x0a,0x2e,0x13,0x18,0x22,0x30,0x9b,0x03,0x2d,0x3e,0x3e,0x26,0x02,0x3d,0x9b,0x2e,0x06,0x37,0x99,0x26,0x18,0x1e,0x18,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x32, +0x10,0xed,0x39,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x15,0x23,0x11,0x16,0x16,0x17,0x3e,0x02,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x33,0x15,0x21,0x35,0x36,0x36,0x35,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x27,0x15,0x10,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x01,0x23,0x22,0x06,0x06,0x15, +0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x11,0x21,0x11,0x04,0x30,0x6d,0x52,0x75,0x32,0x23,0x50,0x53,0x48,0x94,0xaf,0x3a,0x30,0xa2,0xfe,0xc3,0x28,0x33,0xa1,0x59,0x64,0xa8,0x49,0x51,0xe0,0xda,0x7f,0xc8,0x72,0x92,0x7e,0x01,0xbb,0xa9,0x95,0x9b,0x46,0x9c,0x86,0x79,0x84,0xfe,0xed,0x05,0x31,0x94,0xfe,0xa9,0x0a,0x43,0x40,0x42,0x4d, +0x23,0xd1,0xab,0x64,0xbb,0x3b,0x95,0x93,0x39,0xb3,0x58,0x01,0x00,0x9f,0x95,0xfe,0x5d,0x01,0x94,0x82,0x7e,0x18,0x88,0xfe,0xf4,0xfe,0xe8,0x70,0xd5,0x92,0x81,0xb4,0x1f,0x02,0x06,0xfd,0x83,0x28,0x5d,0x5c,0x93,0xab,0xe8,0xcc,0xff,0x01,0x55,0xfe,0xab,0x00,0x00,0x02,0x00,0x50,0x00,0x00,0x05,0x5f,0x05,0x31,0x00,0x1a,0x00,0x26, +0x00,0x41,0x40,0x23,0x0f,0x89,0x1b,0x02,0x89,0x03,0x1b,0x03,0x00,0x00,0x03,0x1b,0x03,0x28,0x09,0x21,0x89,0x15,0x1e,0x9b,0x09,0x0c,0x0c,0x12,0x01,0x05,0x9b,0x19,0x06,0x24,0x99,0x12,0x18,0x03,0x18,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10, +0xed,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x22,0x06,0x02,0x07,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x11,0x34,0x12,0x24,0x33,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x05,0x5f,0xab,0xa8,0xed,0x99,0xf7,0x90,0x08,0x2c,0x88,0x44,0x96,0xb7,0xbe,0x91,0xcb,0xd2,0xbd,0x01,0x47,0xc3, +0x02,0x48,0xfd,0x32,0x63,0x45,0x47,0x77,0x2a,0x0a,0x79,0x6b,0x44,0x5e,0x04,0x9d,0xfb,0x63,0x04,0x9d,0x8d,0xfe,0xfc,0xa8,0x2b,0x33,0xbf,0x9c,0x9e,0xc8,0x01,0x21,0x01,0x1e,0xd0,0x01,0x5e,0xc3,0xfc,0x27,0x54,0x82,0x3c,0x30,0x8d,0xa0,0x74,0x00,0x00,0x03,0x00,0x32,0xff,0x00,0x06,0xe6,0x05,0x31,0x00,0x2a,0x00,0x34,0x00,0x40, +0x00,0x78,0x40,0x2c,0x29,0x01,0x89,0x02,0x28,0x89,0x11,0x04,0x89,0x2b,0x14,0x17,0x89,0x35,0x3b,0x8a,0x1e,0x0f,0x11,0x2b,0x02,0x11,0x2b,0x35,0x1e,0x1e,0x35,0x2b,0x11,0x02,0x05,0x42,0x2f,0x89,0x0b,0x2a,0x06,0x04,0x2c,0x9b,0x0e,0x28,0x0e,0x3e,0xb8,0x01,0x80,0x40,0x13,0x1a,0x14,0x1a,0x22,0x0e,0x1a,0x0e,0x1a,0x07,0x38,0x9b, +0x22,0x06,0x32,0x99,0x07,0x19,0x02,0x18,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x3f,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x10,0xed,0x10,0xed,0x33,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x06, +0x00,0x21,0x22,0x24,0x26,0x35,0x34,0x36,0x33,0x21,0x36,0x35,0x34,0x02,0x27,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x07,0x33,0x11,0x01,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x24,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x06,0xe6,0xa8,0xfb,0x59, +0xfe,0x6c,0xfe,0xef,0x8d,0xfe,0xfd,0x83,0xba,0x9a,0x03,0x3c,0x07,0x80,0x78,0x25,0x1b,0xbf,0x92,0x5f,0x97,0x56,0x66,0xc1,0x84,0xb7,0x01,0x0d,0x92,0x06,0xcf,0xfe,0x58,0xfc,0xcb,0x36,0x43,0xd2,0xc5,0xaf,0x01,0x06,0xc9,0x67,0x44,0x44,0x66,0x60,0x4a,0x4b,0x60,0x05,0x31,0xf9,0xf9,0x01,0xdc,0xf9,0xfe,0xf3,0x6e,0xb8,0x75,0x74, +0x8c,0x60,0x31,0xb9,0x01,0x09,0x46,0x25,0x52,0x36,0xa2,0xc1,0x55,0x9f,0x70,0x6d,0xa9,0x5f,0xad,0xfe,0xb1,0xee,0x30,0x48,0x03,0x96,0xfb,0xd5,0x4b,0x35,0x74,0x7d,0xb6,0x03,0x30,0x53,0x7f,0x7d,0x55,0x52,0x6c,0x6e,0x00,0x04,0x00,0x50,0xff,0xe4,0x07,0x4d,0x05,0x31,0x00,0x30,0x00,0x3c,0x00,0x40,0x00,0x4c,0x00,0x91,0x40,0x50, +0x40,0x89,0x20,0x13,0x15,0x08,0x41,0x26,0x03,0x03,0x23,0x23,0x03,0x25,0x15,0x89,0x3c,0x3d,0x3c,0x44,0x8a,0x11,0x0b,0x8a,0x49,0x30,0x00,0x2d,0x8a,0x03,0x00,0x49,0x03,0x20,0x3c,0x11,0x49,0x03,0x03,0x49,0x11,0x3c,0x20,0x05,0x4e,0x36,0x89,0x1d,0x14,0x32,0x9b,0x25,0x20,0x40,0x40,0x19,0x23,0x3f,0x9b,0x21,0x06,0x9b,0x08,0x41, +0x29,0x29,0x0e,0x21,0x06,0x39,0x99,0x19,0x18,0x47,0x99,0x0e,0x18,0x00,0x30,0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x39,0x39,0xed,0x10,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33, +0x10,0xed,0x32,0x11,0x39,0x2f,0x12,0x17,0x39,0x12,0x39,0x10,0xed,0x31,0x30,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x23,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x21,0x15,0x23,0x11,0x33,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x07, +0x01,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x11,0x23,0x11,0x05,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x26,0x06,0x43,0x2d,0x3b,0x87,0x73,0x4d,0x42,0x69,0x78,0x88,0x79,0x80,0x9b,0x31,0x9b,0x4b,0xa2,0x87,0x7f,0xc8,0x72,0x72,0x6c,0x02,0xbc,0x6d,0xea,0x3f,0xa8,0x61,0x72,0xc0,0x6c,0x47,0x3d, +0xfc,0x0c,0x63,0x95,0x9b,0x46,0x9c,0x86,0x65,0x52,0xff,0x02,0xf9,0x25,0x20,0x44,0x30,0x62,0x2a,0x46,0x2c,0x43,0xff,0x70,0xca,0xca,0x47,0x35,0xdf,0x8e,0xb4,0xd5,0xe1,0xc0,0x8d,0x86,0x90,0xd0,0xe5,0x6f,0x70,0xd5,0x92,0x86,0xa4,0x2a,0x02,0x06,0x94,0xfe,0xab,0x57,0x65,0x83,0xeb,0x99,0xa0,0xfe,0xda,0x53,0x02,0xd0,0x28,0x5d, +0x5c,0x93,0xab,0xc1,0xf3,0xff,0x01,0x55,0xfe,0xab,0x98,0x33,0x7c,0x65,0x74,0x93,0xf1,0x47,0x80,0x5a,0x00,0x02,0x00,0x72,0xff,0xe5,0x05,0x5b,0x04,0xc9,0x00,0x0f,0x00,0x1f,0x00,0x23,0x40,0x0d,0x0c,0x8b,0x1c,0x1c,0x21,0x14,0x8b,0x04,0x10,0x9b,0x08,0x06,0x18,0xb8,0x01,0x80,0xb1,0x00,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f, +0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x03,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x02,0xe6,0xa6,0xfe,0xdc,0xaa,0xa9,0x01,0x25,0xa6,0xa8,0x01,0x24,0xa9,0xa9,0xfe,0xdb,0xa7,0x7f,0xda,0x80,0x7f,0xda,0x80,0x7f, +0xda,0x80,0x80,0xd9,0x1b,0xa6,0x01,0x21,0xab,0xa9,0x01,0x22,0xa7,0xa7,0xfe,0xdd,0xa8,0xa8,0xfe,0xdd,0xa7,0x04,0x5b,0x7f,0xdf,0x81,0x80,0xdd,0x7e,0x7d,0xdd,0x81,0x81,0xe0,0x7e,0x00,0x00,0x01,0x00,0x74,0xff,0xe6,0x06,0x74,0x04,0xc9,0x00,0x1b,0x00,0x3e,0xb4,0x07,0x06,0x15,0x16,0x12,0xb8,0x01,0x85,0x40,0x0a,0x18,0x06,0x16, +0x18,0x18,0x16,0x06,0x03,0x1d,0x04,0xb8,0x01,0x85,0x40,0x0b,0x0a,0x00,0x9b,0x0e,0x06,0x16,0x06,0x06,0x15,0x07,0x19,0x00,0x3f,0x33,0x33,0x11,0x33,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x22,0x04,0x06,0x15,0x10,0x05,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32, +0x04,0x12,0x15,0x14,0x02,0x07,0x27,0x24,0x11,0x34,0x26,0x24,0x03,0x74,0xaa,0xfe,0xe8,0xa0,0x01,0x32,0x62,0xaf,0xbf,0xc1,0x01,0x61,0xde,0xe0,0x01,0x60,0xc0,0xbf,0xb0,0x61,0x01,0x31,0xa0,0xfe,0xea,0x04,0x33,0x89,0xef,0x88,0xfe,0xef,0xc2,0x7a,0x6a,0x01,0x37,0xac,0xb7,0x01,0x32,0xad,0xaf,0xfe,0xcf,0xb6,0xac,0xfe,0xc8,0x69, +0x7a,0xc2,0x01,0x11,0x88,0xef,0x89,0x00,0x00,0x02,0x00,0x60,0x00,0x00,0x06,0x3d,0x04,0xdc,0x00,0x1e,0x00,0x2a,0x00,0x45,0xb9,0x00,0x19,0x01,0x85,0x40,0x12,0x05,0x08,0x0a,0x8b,0x1f,0x25,0x8b,0x11,0x05,0x1f,0x11,0x11,0x1f,0x05,0x03,0x2c,0x00,0x28,0xb8,0x01,0x80,0x40,0x0c,0x08,0x0e,0x0e,0x15,0x00,0x99,0x1e,0x18,0x22,0x9b, +0x15,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x37,0x21,0x32,0x36,0x36,0x35,0x34,0x26,0x27,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x21,0x01,0x34,0x26,0x27, +0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x60,0x03,0x61,0x87,0xe4,0x72,0xb2,0x8d,0x2c,0x4e,0x81,0x4b,0x72,0x9c,0x66,0xb0,0x5f,0x99,0x01,0x21,0xab,0x9b,0xfe,0xcd,0xae,0xfc,0x9f,0x03,0x91,0x31,0x2f,0x40,0x57,0x4b,0x32,0x33,0x47,0x97,0x7d,0xd7,0x8e,0x95,0xf7,0x31,0x44,0x45,0x42,0x81,0x4b,0x9f,0x73,0x55,0x88,0x4e,0xac,0xfe, +0xe0,0xa5,0xb1,0xfe,0xee,0xa8,0x03,0xb1,0x28,0x4e,0x1f,0x0b,0x57,0x33,0x33,0x47,0x47,0x00,0x00,0x01,0x00,0x58,0xff,0xe7,0x03,0xcf,0x04,0xc9,0x00,0x28,0x00,0x53,0x40,0x2c,0x23,0x8b,0x17,0x00,0x8b,0x0e,0x26,0x0e,0x12,0x17,0x0e,0x0e,0x17,0x12,0x03,0x2a,0x1c,0x1d,0x07,0x06,0x06,0x07,0x26,0x12,0x9b,0x13,0x1d,0x1c,0x07,0x13, +0x1c,0x1c,0x13,0x07,0x03,0x1f,0x0a,0x99,0x04,0x19,0x1a,0x9b,0x1f,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x39,0x11,0x33,0x01,0x2f,0x33,0xc6,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x06,0x23,0x22,0x27,0x37,0x16,0x16,0x33,0x32,0x36, +0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x03,0xcf,0x75,0xca,0x7b,0xd9,0xe4,0x5a,0x65,0xab,0x53,0x51,0x81,0x4b,0x96,0x77,0xb6,0xb6,0x77,0x83,0x98,0x7d,0x7f,0x95,0x5c,0xa8,0xe6,0x72,0xba,0x68,0x49,0x50,0x4e,0x5e,0x01,0x54, +0x60,0xab,0x62,0xc6,0x7b,0x5b,0x50,0x39,0x64,0x3a,0x60,0x74,0x8d,0x6b,0x58,0x50,0x6d,0x74,0x64,0xa4,0x58,0x9a,0x5a,0x5f,0x84,0x2d,0x2a,0x98,0x00,0x02,0x00,0x73,0xff,0xe8,0x05,0x9f,0x04,0xec,0x00,0x0b,0x00,0x32,0x00,0x66,0x40,0x36,0x16,0x8b,0x0f,0x13,0x12,0x1d,0x8b,0x03,0x08,0x8b,0x23,0x2a,0x2b,0x1a,0x12,0x25,0x03,0x23, +0x0f,0x12,0x03,0x23,0x2b,0x2b,0x23,0x03,0x12,0x0f,0x05,0x34,0x2e,0x8b,0x28,0x2b,0x2a,0x06,0x9b,0x0c,0x1a,0x26,0x0c,0x20,0x2a,0x0c,0x2a,0x0c,0x13,0x00,0x9a,0x20,0x19,0x12,0x13,0x06,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f, +0x2f,0x11,0x12,0x39,0x11,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x25,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x13,0x24,0x36,0x37,0x26,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x24,0x11,0x34,0x37,0x17,0x06,0x06, +0x15,0x14,0x16,0x16,0x17,0x02,0xfe,0x33,0x47,0x47,0x33,0x35,0x45,0x48,0x30,0x01,0x17,0xee,0x05,0x05,0x58,0x51,0x3e,0x7e,0x8b,0x6c,0xca,0xb8,0x27,0x39,0x9d,0x76,0x77,0x9b,0x37,0x27,0xfe,0x29,0x8a,0x5c,0x31,0x1d,0x5c,0xbf,0xb0,0x72,0x44,0x38,0x29,0x4d,0x0e,0x0f,0x4d,0x28,0x39,0x43,0x01,0xa6,0x3b,0xb0,0x7e,0x4f,0x77,0x31, +0x74,0x3c,0xc2,0x6d,0x74,0xaf,0x7d,0x33,0x1e,0x62,0x40,0x6f,0x97,0x98,0x6e,0x37,0x67,0x21,0x67,0x01,0x46,0xa9,0x71,0x66,0x2f,0x59,0x2c,0x4d,0x79,0x54,0x20,0x00,0x00,0x02,0x00,0x5d,0xff,0xc0,0x06,0x59,0x04,0xcd,0x00,0x33,0x00,0x3e,0x00,0x7f,0xb9,0x00,0x1a,0x01,0x84,0x40,0x0a,0x19,0x0a,0x8b,0x34,0x13,0x20,0x3a,0x8b,0x04, +0x00,0xb8,0x01,0x84,0x40,0x14,0x2c,0x02,0x0d,0x20,0x03,0x34,0x2c,0x04,0x2f,0x19,0x34,0x04,0x2f,0x2f,0x04,0x34,0x19,0x04,0x40,0x28,0xb8,0x01,0x84,0x40,0x0c,0x29,0x00,0x2c,0x28,0x2f,0x9b,0x30,0x06,0x29,0x28,0x19,0x3c,0xb8,0x01,0x81,0x40,0x0f,0x02,0x0d,0x25,0x19,0x25,0x19,0x07,0x16,0x99,0x1d,0x19,0x37,0x9b,0x07,0x06,0x00, +0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x39,0x39,0xed,0x3f,0x33,0x3f,0xed,0x12,0x39,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x17,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x02,0x17, +0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x27,0x2e,0x03,0x23,0x22,0x00,0x03,0x27,0x36,0x12,0x37,0x26,0x26,0x27,0x37,0x1e,0x02,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x36,0x02,0xbd,0x38,0x3a,0x51,0xa3,0x85,0x80,0xa1,0x6e,0x69,0x30,0x3f,0x2b,0x17,0x0b,0x11,0x05,0x24,0x20,0x29,0x31, +0x0e,0x8b,0x13,0x83,0x63,0x5e,0x79,0x13,0x1d,0x2d,0x40,0x49,0x33,0xe0,0xfe,0xc2,0x66,0x8f,0x3d,0xf0,0xa3,0x2d,0xc1,0x7c,0x21,0x55,0xba,0x9b,0x02,0x01,0x57,0x37,0x38,0x53,0x5e,0x51,0x6a,0x02,0xc8,0x0f,0x06,0x59,0x6d,0x7f,0xa4,0x9e,0x75,0x5e,0x91,0x27,0x25,0x65,0x82,0x82,0x43,0x44,0x16,0x1f,0x5a,0x61,0x18,0x96,0xa0,0x7f, +0x79,0xb5,0x7a,0x4d,0x21,0xfe,0xd0,0xfe,0xc7,0x25,0xdd,0x01,0x4f,0x55,0x9a,0xe7,0x32,0x88,0x14,0x90,0xdb,0x5f,0x38,0x54,0x55,0x41,0x64,0x3f,0x07,0x62,0x00,0x01,0x00,0x73,0x00,0x00,0x05,0xa9,0x04,0xbe,0x00,0x1e,0x00,0x38,0x40,0x1d,0x02,0x00,0x0a,0x13,0x1a,0x1a,0x13,0x0a,0x03,0x20,0x0e,0x17,0x8a,0x04,0x00,0x02,0x14,0x9b, +0x11,0x11,0x08,0x19,0x99,0x1c,0x18,0x0b,0x9b,0x08,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0x33,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x31,0x30,0x13,0x34,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x14,0x21,0x21,0x15, +0x21,0x22,0x26,0x73,0xa7,0xa7,0x5c,0xa0,0x5f,0x97,0x7f,0x66,0x6a,0x97,0x7b,0x01,0xd2,0xfe,0x2e,0x7b,0x97,0x01,0x04,0x03,0x8f,0xfc,0x56,0xbc,0xd0,0x01,0x42,0xbd,0x6b,0x6b,0xbe,0x50,0x8c,0x4f,0x92,0x59,0x54,0x5a,0x6f,0x97,0x77,0x61,0xb0,0x97,0xa8,0x00,0x00,0x01,0x00,0x70,0xff,0xe5,0x04,0x44,0x04,0xc9,0x00,0x2e,0x00,0x54, +0xb3,0x04,0x8a,0x03,0x22,0xb8,0x01,0x85,0x40,0x0d,0x14,0x1a,0x8b,0x1b,0x03,0x14,0x1b,0x1b,0x14,0x03,0x03,0x30,0x2c,0xb8,0x01,0x85,0x40,0x11,0x0b,0x2c,0x07,0x03,0x14,0x1b,0x1e,0x03,0x1b,0x03,0x1b,0x07,0x17,0x9b,0x1e,0x06,0x00,0xb8,0x01,0x80,0xb1,0x07,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39, +0x11,0x12,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x25,0x32,0x36,0x37,0x33,0x06,0x04,0x23,0x22,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x0e,0x03,0x07,0x0e,0x02,0x15,0x14,0x16,0x02,0x56, +0x95,0xa1,0x16,0xa2,0x18,0xfe,0xff,0xd5,0x8b,0xdf,0x7c,0x2e,0x5c,0x9a,0x95,0x8b,0x6f,0x3b,0xa5,0x6e,0x75,0x97,0x0d,0x9b,0xf9,0xbb,0x7b,0xc6,0x72,0x24,0x3d,0x59,0x6f,0x81,0x94,0x71,0x3e,0xad,0x7d,0x7c,0x7b,0xbd,0xd2,0x56,0x9e,0x6b,0x49,0x71,0x54,0x42,0x22,0x20,0x32,0x44,0x32,0x4c,0x6a,0x74,0x68,0xa1,0xd0,0x59,0x9b,0x53, +0x40,0x5f,0x48,0x33,0x27,0x1e,0x21,0x35,0x4d,0x38,0x5f,0x6c,0x00,0x01,0x00,0x74,0xff,0xe7,0x06,0x8b,0x04,0xc9,0x00,0x20,0x00,0x42,0xb1,0x03,0x06,0xb8,0x01,0x85,0x40,0x0c,0x1d,0x12,0x20,0x1d,0x01,0x01,0x1d,0x20,0x12,0x04,0x22,0x15,0xb8,0x01,0x85,0xb5,0x0e,0x12,0x11,0x11,0x00,0x19,0xb8,0x01,0x81,0xb6,0x0a,0x19,0x20,0x03, +0x9b,0x00,0x06,0x00,0x3f,0xed,0x39,0x3f,0xed,0x12,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x31,0x30,0x01,0x21,0x15,0x21,0x16,0x16,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34,0x36,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x02,0x27,0x03,0x21,0x03, +0x6a,0xfd,0xd4,0x7c,0x81,0xa4,0xfe,0xd4,0xa4,0xa4,0xfe,0xd3,0xa3,0x7c,0x6e,0x5b,0x4d,0x58,0x7c,0xdb,0x7d,0x7c,0xdc,0x7c,0xdb,0xc0,0x04,0xc9,0x8b,0x5d,0xfb,0x91,0xa9,0xfe,0xe8,0xad,0xad,0x01,0x19,0xa8,0x92,0xfb,0x5a,0x6e,0x40,0xc9,0x70,0x7d,0xd3,0x7b,0x7b,0xd4,0x7c,0xae,0x01,0x02,0x3b,0x00,0x00,0x01,0x00,0x73,0x00,0x00, +0x05,0xa9,0x04,0xbe,0x00,0x1e,0x00,0x38,0x40,0x1d,0x1d,0x1b,0x16,0x0e,0x04,0x04,0x0e,0x16,0x03,0x20,0x08,0x12,0x8a,0x00,0x1b,0x1d,0x0f,0x9b,0x0c,0x0c,0x03,0x14,0x99,0x17,0x18,0x06,0x9b,0x03,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0x33,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x31,0x30, +0x13,0x34,0x36,0x33,0x21,0x15,0x21,0x20,0x15,0x14,0x16,0x16,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x23,0x22,0x26,0x26,0x35,0x34,0x37,0x26,0x73,0xcf,0xbd,0x03,0xaa,0xfc,0x71,0xfe,0xfc,0x43,0x7a,0x55,0x01,0xd2,0xfe,0x2e,0x7b,0x97,0xd0,0x7f,0x97,0x60,0xa0,0x5b,0xa7,0xa7,0x03,0x7b,0x99,0xaa,0x98,0xb0,0x3c, +0x64,0x38,0x96,0x70,0x59,0xa8,0x97,0x50,0x8b,0x50,0xbd,0x6b,0x6b,0x00,0x00,0x02,0x00,0x82,0x00,0x00,0x05,0x05,0x04,0xac,0x00,0x0f,0x00,0x1f,0x00,0x23,0x40,0x0d,0x00,0x8a,0x10,0x10,0x21,0x18,0x8a,0x08,0x14,0x9b,0x0c,0x06,0x1c,0xb8,0x01,0x81,0xb1,0x04,0x18,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31, +0x30,0x01,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x07,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x05,0x05,0x9b,0xfe,0xf4,0x9b,0x9c,0xfe,0xf6,0x9b,0x9a,0x01,0x0d,0x9a,0x9a,0x01,0x0c,0x9c,0xa5,0x6c,0xc0,0x71,0x70,0xc1,0x6c,0x6e,0xbe,0x71,0x70,0xbf,0x6e, +0x02,0x55,0xa2,0xfe,0xea,0x9d,0x9f,0x01,0x14,0xa2,0xa1,0x01,0x16,0xa0,0xa0,0xfe,0xe9,0xa0,0x73,0xc9,0x76,0x76,0xca,0x72,0x74,0xc9,0x74,0x73,0xca,0x00,0x00,0x01,0x00,0x82,0xff,0xfd,0x05,0x1b,0x04,0xac,0x00,0x1d,0x00,0x37,0x40,0x1c,0x13,0x12,0x03,0x04,0x00,0x8a,0x07,0x12,0x04,0x07,0x07,0x04,0x12,0x03,0x1f,0x0f,0x8a,0x16, +0x0b,0x9b,0x1a,0x06,0x04,0x12,0x12,0x03,0x13,0x18,0x00,0x3f,0x33,0x33,0x11,0x33,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x14,0x02,0x07,0x27,0x36,0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04, +0x12,0x05,0x1b,0xc2,0x8b,0x4a,0x68,0x8a,0x75,0xc4,0x6f,0x70,0xc5,0x72,0x8e,0x63,0x49,0x8d,0xc0,0xa0,0x01,0x10,0x9c,0x9d,0x01,0x11,0x9f,0x02,0x55,0xb8,0xfe,0xa6,0x46,0x93,0x37,0x01,0x08,0x86,0x72,0xcb,0x75,0x77,0xc9,0x72,0x8b,0xfe,0xf9,0x34,0x92,0x47,0x01,0x59,0xb8,0xa0,0x01,0x18,0x9f,0xa1,0xfe,0xe8,0x00,0x01,0x00,0x64, +0x00,0x00,0x04,0x54,0x04,0xac,0x00,0x25,0x00,0x44,0x40,0x0f,0x17,0x18,0x00,0x8a,0x0b,0x18,0x0b,0x18,0x0b,0x27,0x12,0x89,0x05,0x1e,0x15,0xb8,0x01,0x81,0x40,0x0c,0x18,0x17,0x1a,0x17,0x1a,0x17,0x05,0x0f,0x9b,0x22,0x06,0x06,0xb8,0x01,0x81,0xb1,0x05,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x01, +0x2f,0xc4,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x14,0x02,0x04,0x23,0x21,0x35,0x21,0x32,0x37,0x24,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x04,0x54,0x9c,0xfe,0xef,0x9f,0xfe,0x5c,0x01,0xa4,0x3c,0x4d, +0x01,0x1e,0x73,0xc4,0x70,0x54,0x80,0x7d,0x57,0x5c,0x3f,0x75,0x62,0xae,0x64,0xb0,0x66,0x66,0xb0,0x64,0xa8,0x01,0x0d,0x97,0x02,0x55,0x9d,0xfe,0xea,0xa2,0xa4,0x1b,0x64,0x01,0x32,0x72,0xca,0x76,0x7c,0x59,0x55,0x7f,0x44,0x72,0x77,0x66,0xae,0x65,0x64,0xb1,0x65,0x9b,0xfe,0xec,0x00,0x02,0x00,0x82,0xff,0xdd,0x04,0xa3,0x04,0xac, +0x00,0x32,0x00,0x3c,0x00,0x7a,0x40,0x21,0x1e,0x1f,0x1f,0x13,0x1a,0x8a,0x25,0x2c,0x8a,0x13,0x03,0x11,0x35,0x03,0x25,0x2e,0x13,0x00,0x25,0x13,0x00,0x00,0x13,0x25,0x03,0x3e,0x3a,0x8a,0x0a,0x38,0x9b,0x0e,0x1c,0xb8,0x01,0x81,0x40,0x12,0x22,0x1f,0x1e,0x11,0x35,0x2e,0x03,0x04,0x06,0x0e,0x22,0x1e,0x1e,0x22,0x0e,0x03,0x28,0x33, +0xb8,0x01,0x81,0xb2,0x06,0x18,0x30,0xb8,0x01,0x81,0xb5,0x00,0x19,0x17,0x9b,0x28,0x06,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x17,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x17,0x39,0x10,0xed,0x10,0xed,0x11,0x39,0x2f,0x33,0x31,0x30, +0x05,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x32,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x07,0x16,0x33,0x32,0x37,0x05,0x32,0x37,0x26,0x26,0x23,0x22,0x15,0x14,0x16,0x04,0xa3,0x54, +0x6c,0x6b,0x58,0xb2,0x92,0x57,0xa4,0x5f,0x57,0x99,0x5d,0x73,0xee,0x48,0x3b,0x65,0xae,0x66,0x2d,0x3a,0x65,0x36,0x2f,0x56,0x20,0x6b,0x32,0x70,0x97,0x97,0x6a,0x8d,0xff,0x9c,0x70,0x46,0x38,0x0c,0x26,0xfd,0x55,0xc5,0x55,0x3c,0xad,0x51,0xa6,0x6d,0x23,0x33,0x61,0x45,0x2c,0x4e,0x81,0x46,0x53,0x7c,0x42,0x6f,0x55,0x53,0xbe,0x6e, +0xbd,0x69,0x30,0x27,0x58,0x41,0x68,0x35,0x47,0x8e,0x6d,0x66,0x96,0x9e,0xfe,0xf1,0x96,0xe1,0x9a,0x51,0x09,0x02,0x4f,0x43,0x4b,0x64,0x36,0x43,0x00,0x03,0x00,0x6e,0xff,0xf3,0x05,0x8a,0x04,0xc1,0x00,0x26,0x00,0x30,0x00,0x3c,0x00,0x72,0x40,0x39,0x37,0x8a,0x11,0x26,0x26,0x22,0x1b,0x8a,0x27,0x0b,0x8a,0x31,0x05,0x8a,0x22,0x2f, +0x15,0x11,0x13,0x1d,0x27,0x08,0x31,0x22,0x11,0x27,0x31,0x22,0x22,0x31,0x27,0x11,0x04,0x3e,0x2c,0x8b,0x15,0x26,0x9b,0x00,0x06,0x34,0x9b,0x13,0x08,0x0e,0x1d,0x2f,0x18,0x1f,0x1f,0x0e,0x29,0x9b,0x18,0x06,0x3a,0xb8,0x01,0x81,0xb1,0x0e,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0x12,0x39,0x39,0xed,0x3f,0xed, +0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x39,0x2f,0x10,0xed,0x31,0x30,0x01,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x24,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x36,0x36, +0x35,0x34,0x26,0x26,0x27,0x05,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xfe,0x51,0x90,0x6c,0x3f,0xca,0xb8,0x25,0x37,0xbb,0x8f,0x8d,0xbd,0x48,0xfe,0x56,0x92,0x69,0x67,0x95,0xc1,0x82,0xf3,0xf0,0xdd,0x3a,0x5e,0x74,0xfd,0xe6,0x33,0x24,0x25,0x3f,0x33,0x88, +0x02,0x00,0x60,0x46,0x45,0x61,0x5d,0x49,0x4b,0x5b,0x04,0xc1,0x0c,0x1f,0x44,0x78,0x64,0x87,0xce,0x46,0x23,0x63,0x38,0x88,0xa2,0xa7,0x83,0x6f,0x45,0x9b,0x01,0x45,0x69,0x92,0x95,0x67,0xa8,0x49,0x61,0x24,0x3f,0xa0,0x63,0x3a,0x42,0x1f,0x06,0x61,0x27,0x37,0x39,0x25,0x5c,0x3c,0x2d,0xfd,0xc2,0x39,0x51,0x4e,0x3c,0x35,0x45,0x45, +0x00,0x03,0x00,0x82,0xff,0xdc,0x05,0xd8,0x04,0xac,0x00,0x35,0x00,0x3e,0x00,0x47,0x00,0x99,0x40,0x4a,0x00,0x8b,0x36,0x04,0x8b,0x0b,0x3b,0x8b,0x30,0x22,0x21,0x21,0x1e,0x18,0x18,0x3f,0x08,0x08,0x0b,0x2c,0x0f,0x8a,0x3f,0x1e,0x8b,0x25,0x02,0x36,0x2e,0x0d,0x3d,0x03,0x0b,0x30,0x36,0x0b,0x30,0x3f,0x25,0x25,0x3f,0x30,0x0b,0x36, +0x05,0x49,0x42,0x8b,0x15,0x3f,0x0f,0x9b,0x18,0x3d,0x2e,0x33,0x02,0x0d,0x2c,0x2c,0x07,0x39,0x9b,0x33,0x06,0x21,0x22,0x22,0x12,0x1b,0x9b,0x28,0x06,0x45,0xb8,0x01,0x80,0xb2,0x12,0x18,0x08,0xb8,0x01,0x80,0xb1,0x07,0x19,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0x3f,0xed,0x12,0x39,0x2f,0x39,0x39,0x12,0x39,0x39, +0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x17,0x39,0x11,0x39,0x10,0xed,0x10,0xed,0x32,0x11,0x39,0x2f,0x11,0x33,0x11,0x12,0x39,0x2f,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x07,0x16,0x15,0x14,0x06,0x07,0x27,0x32,0x36,0x35,0x34,0x27,0x06,0x07,0x06,0x06,0x23,0x22,0x26, +0x35,0x34,0x36,0x25,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x17,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x15,0x14,0x17,0x36,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0xd8,0xaa,0x74,0x89,0xaa,0x4b,0x62,0x7f,0x84,0x6b,0xf7,0x1b, +0xc7,0xa8,0x73,0xa0,0xea,0x01,0x1f,0x08,0x89,0x57,0x35,0x47,0x25,0x30,0x5a,0x3e,0x59,0xa3,0x76,0x68,0xae,0x67,0x06,0x7f,0x43,0x50,0xa5,0x7a,0x80,0xa0,0x9d,0x4e,0x35,0x83,0x72,0x94,0xfd,0x42,0xc5,0x99,0x49,0x2d,0x4d,0x7e,0x03,0x78,0xdd,0x63,0x78,0x8b,0x99,0x9a,0x26,0xa0,0x67,0x49,0x5c,0x6e,0x19,0x0f,0xe1,0xed,0x9e,0x73, +0xa2,0x9e,0x18,0xac,0xfa,0x4c,0x3c,0x1d,0x3a,0x27,0x82,0x20,0x93,0x4d,0x78,0xad,0x93,0xfe,0xfa,0xa0,0x08,0x0a,0x6a,0x89,0x84,0xb0,0xb0,0x73,0x38,0x4e,0x97,0x5c,0x69,0x3e,0xfe,0xd3,0x10,0x56,0x56,0x2b,0x42,0xa5,0x00,0x02,0x00,0x64,0x00,0x00,0x05,0x43,0x04,0xac,0x00,0x1d,0x00,0x28,0x00,0x64,0xb9,0x00,0x11,0x01,0x85,0x40, +0x12,0x1e,0x23,0x8b,0x17,0x0c,0x8b,0x07,0x00,0x1e,0x17,0x07,0x07,0x17,0x1e,0x00,0x04,0x2a,0x19,0xb8,0x01,0x85,0x40,0x09,0x09,0x05,0x17,0x23,0x23,0x21,0x9b,0x0e,0x26,0xb8,0x01,0x81,0x40,0x0d,0x0c,0x07,0x0e,0x14,0x14,0x01,0x0e,0x06,0x09,0x9b,0x0a,0x06,0x1c,0xb8,0x01,0x81,0xb1,0x01,0x18,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12, +0x39,0x2f,0x12,0x39,0x39,0xed,0x10,0xed,0x32,0x11,0x33,0x01,0x2f,0xc6,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x21,0x21,0x22,0x24,0x26,0x35,0x34,0x37,0x26,0x23,0x37,0x20,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x33,0x21,0x01,0x34,0x26,0x23, +0x22,0x07,0x16,0x16,0x33,0x32,0x36,0x05,0x43,0xfe,0x06,0xa4,0xfe,0xed,0x9d,0x9d,0x73,0xbb,0x0f,0x01,0x20,0x98,0x7c,0xa2,0x86,0xac,0xad,0x85,0x7e,0xa1,0x4c,0x4a,0xfc,0xb9,0x01,0xfa,0xfe,0x98,0x54,0x3e,0x7b,0x59,0x3a,0x59,0x41,0x3f,0x53,0x84,0xeb,0x8d,0xc7,0x7d,0xc7,0xa5,0xfe,0xe6,0x2b,0xa0,0x7a,0x7b,0xa7,0x85,0xa0,0x4a, +0x6c,0x93,0xb9,0x01,0xf5,0x36,0x49,0x1d,0x79,0x5c,0x40,0x00,0x00,0x01,0x00,0x6e,0x00,0x00,0x04,0x9e,0x04,0xc1,0x00,0x27,0x00,0x42,0x40,0x1a,0x11,0x8a,0x16,0x1c,0x8a,0x0b,0x16,0x0b,0x27,0x27,0x0b,0x16,0x03,0x29,0x23,0x8a,0x05,0x1e,0x09,0x13,0x09,0x01,0x14,0x14,0x19,0x26,0xb8,0x01,0x81,0xb5,0x01,0x18,0x0e,0x9b,0x19,0x06, +0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x21,0x21,0x22,0x26,0x26,0x35,0x34,0x37,0x36,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x06,0x07,0x06,0x15, +0x14,0x16,0x33,0x21,0x04,0x9e,0xfd,0x4d,0x66,0xb1,0x66,0x8d,0x27,0xd9,0x84,0x4b,0x3f,0x37,0x4a,0x1b,0x8e,0x31,0xab,0x7c,0x84,0xa8,0x8b,0x3e,0x84,0x3f,0x84,0x7c,0x5c,0x02,0xb3,0x62,0xab,0x64,0xb5,0x66,0x1e,0x61,0x3a,0x49,0x3f,0x50,0x45,0x2f,0x30,0x1c,0x52,0x41,0x62,0x74,0x9f,0xae,0x8d,0x9d,0x46,0x1f,0x34,0x1e,0x40,0x70, +0x5b,0x83,0x00,0x02,0x00,0x82,0x00,0x00,0x05,0x43,0x04,0xc1,0x00,0x26,0x00,0x31,0x00,0x59,0xb3,0x24,0x24,0x22,0x13,0xb8,0x01,0x84,0x40,0x24,0x27,0x01,0x04,0x8a,0x22,0x27,0x22,0x00,0x00,0x22,0x27,0x03,0x33,0x2d,0x1a,0x8a,0x0c,0x2f,0x99,0x16,0x24,0x01,0x9b,0x25,0x18,0x25,0x16,0x25,0x16,0x25,0x08,0x2a,0x9b,0x10,0x06,0x1e, +0xb8,0x01,0x81,0xb1,0x08,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x39,0x10,0xed,0x01,0x2f,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x10,0xed,0x11,0x39,0x2f,0x31,0x30,0x01,0x23,0x16,0x16,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x15,0x14, +0x06,0x23,0x22,0x27,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x10,0x27,0x35,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x33,0x32,0x36,0x05,0x43,0xd6,0x62,0x4d,0x9f,0xfe,0xf0,0x9d,0xa4,0xfe,0xf0,0x9a,0x5a,0x91,0x5d,0x64,0x90,0x90,0x64,0x5c,0x3f,0x08,0x70,0xc3,0x76,0x6e,0xc5,0x75,0xec,0x01,0xb7,0xfc,0xeb,0x3f, +0x25,0x2e,0x41,0x0b,0x3f,0x3b,0x2b,0x39,0x04,0x07,0x6a,0xc1,0x87,0x9f,0xfe,0xed,0xa3,0xa5,0x01,0x22,0xaf,0xa0,0x01,0x21,0x8a,0xa4,0x72,0x6f,0xa6,0x3c,0x23,0x40,0x80,0xd5,0x76,0x74,0xc6,0x70,0x01,0x15,0xa7,0xa1,0xff,0x00,0x29,0x49,0x58,0x53,0x4b,0x4f,0x00,0x02,0x00,0x82,0x00,0x00,0x04,0x44,0x04,0xac,0x00,0x26,0x00,0x31, +0x00,0x70,0x40,0x3c,0x17,0x18,0x0b,0x8b,0x31,0x10,0x89,0x1d,0x1f,0x06,0x2c,0x03,0x31,0x1d,0x00,0x18,0x31,0x1d,0x1d,0x31,0x18,0x00,0x04,0x33,0x04,0x8a,0x21,0x18,0x17,0x2f,0x99,0x0e,0x29,0x9b,0x08,0x06,0x2c,0x1f,0x10,0x04,0x0e,0x08,0xc0,0x0e,0xf0,0x0e,0x02,0x17,0x0e,0x08,0x08,0x0e,0x17,0x03,0x1a,0x01,0x9b,0x25,0x06,0x15, +0xb8,0x01,0x81,0xb1,0x1a,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x11,0x12,0x17,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x17,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x21,0x22,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x23,0x22,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x21,0x01,0x34,0x23,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x04,0x44,0xfd,0x93,0x48,0x68,0x35,0x73,0xa4,0x80,0x92,0x92,0x68,0x9c,0x74,0x08,0x7d,0x63,0x5c,0x37,0x74,0x6a,0x9d,0xab,0xdb,0x25,0x70,0x5b, +0x9e,0x5c,0x02,0x6d,0xfe,0xa4,0x5e,0x29,0x7f,0x17,0x20,0x6e,0x27,0x27,0x41,0x04,0x07,0x68,0x48,0x5e,0x32,0x63,0x6f,0x62,0x5d,0x7b,0x45,0x1b,0x16,0x6a,0x87,0x25,0x73,0x56,0xe3,0xb2,0x4e,0x53,0x7c,0xa5,0x5a,0x9f,0x5c,0xfd,0xa9,0x41,0x28,0x15,0x1a,0x2b,0x29,0x00,0x00,0x02,0x00,0x5d,0xff,0xe8,0x03,0xe9,0x03,0x7c,0x00,0x0b, +0x00,0x1b,0x00,0x23,0x40,0x0d,0x18,0x89,0x03,0x03,0x1d,0x09,0x89,0x10,0x06,0x9b,0x14,0x06,0x00,0xb8,0x01,0x80,0xb1,0x0c,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15, +0x14,0x06,0x06,0x02,0x23,0x7f,0xa0,0xa0,0x7f,0x7f,0xa0,0xa0,0x7f,0x7e,0xd0,0x78,0x78,0xd1,0x7d,0x7e,0xd0,0x78,0x78,0xd0,0x81,0xa9,0x88,0x88,0xa9,0xa9,0x88,0x88,0xa9,0x99,0x76,0xd3,0x81,0x81,0xd3,0x76,0x76,0xd3,0x81,0x81,0xd3,0x76,0x00,0x02,0x00,0x00,0xfe,0x63,0x06,0xd4,0x05,0xb3,0x00,0x18,0x00,0x21,0x00,0x37,0x40,0x1e, +0x21,0x8a,0x11,0x00,0x8a,0x19,0x11,0x09,0x19,0x19,0x09,0x11,0x03,0x23,0x04,0x89,0x0d,0x1d,0x9b,0x15,0x07,0x07,0x99,0x0a,0x18,0x21,0x10,0x99,0x01,0x18,0x00,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x21,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21, +0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x11,0x10,0x12,0x21,0x20,0x00,0x11,0x03,0x11,0x10,0x26,0x23,0x22,0x06,0x11,0x11,0x06,0xd4,0xfa,0x99,0x67,0x5f,0x60,0x66,0x01,0x55,0xfe,0xb6,0xc2,0xb6,0xc4,0xb4,0x01,0x57,0xff,0x01,0x03,0x01,0x02,0x01,0x01,0xa4,0xb1,0xae,0xb0,0xae,0x3f,0x46,0x4a,0x3b,0x93,0x86,0x90,0x8f,0x8b,0x02,0x9d, +0x01,0x44,0x01,0x3f,0xfe,0xc5,0xfe,0xb8,0xfd,0x63,0x02,0x8e,0x01,0x05,0xf4,0xf8,0xfe,0xff,0xfd,0x72,0x00,0x01,0x00,0x64,0xff,0xe6,0x07,0x12,0x05,0xb3,0x00,0x1e,0x00,0x3d,0x40,0x21,0x10,0x0f,0x1e,0x89,0x02,0x1b,0x89,0x06,0x0f,0x02,0x06,0x00,0x00,0x06,0x02,0x0f,0x04,0x20,0x0c,0x89,0x13,0x03,0x1e,0x99,0x02,0x18,0x09,0x9b, +0x17,0x07,0x0f,0x10,0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x33,0x31,0x30,0x25,0x15,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x07,0x07,0x12, +0xfc,0xd6,0x67,0x56,0xf8,0xd5,0xd5,0xf8,0x66,0x83,0x98,0x80,0x78,0xa4,0x01,0x27,0xb4,0xae,0x01,0x1c,0x9f,0x56,0x4a,0x93,0x93,0x62,0xa7,0x01,0x15,0x96,0x01,0x19,0x01,0x4d,0xfe,0xb2,0xfe,0xe8,0xae,0xfe,0xdd,0xc6,0x37,0xb9,0x01,0x64,0xbb,0xdc,0x01,0x5b,0xbe,0xbe,0xfe,0xa7,0xde,0x8d,0xfe,0xd6,0x74,0x00,0x00,0x01,0x00,0x64, +0xff,0xe6,0x07,0x1b,0x05,0xb3,0x00,0x2d,0x00,0x50,0x40,0x2b,0x19,0x18,0x22,0x0d,0x8a,0x0e,0x2d,0x2a,0x8a,0x06,0x01,0x06,0x18,0x0e,0x02,0x06,0x06,0x02,0x0e,0x18,0x04,0x2f,0x15,0x8a,0x1c,0x22,0x19,0x09,0x12,0x9b,0x26,0x1f,0x07,0x18,0x19,0x19,0x0e,0x18,0x03,0x2d,0x99,0x02,0x18,0x00,0x3f,0xed,0x39,0x3f,0x3f,0x33,0x3f,0x33, +0xed,0x32,0x12,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x39,0x10,0xed,0x32,0x10,0xed,0x39,0x11,0x33,0x31,0x30,0x25,0x15,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x10,0x12,0x33,0x32,0x16,0x17,0x33,0x36,0x36, +0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x07,0x07,0x1b,0xfd,0x59,0x53,0x52,0x6c,0x79,0x71,0x61,0xa4,0x61,0x71,0x7b,0x6a,0x66,0x5d,0x9b,0x5f,0x6c,0xc5,0xbe,0x6e,0x96,0x21,0x08,0x20,0x96,0x6f,0x76,0xad,0x60,0x4b,0x30,0x93,0x93,0x51,0x74,0x01,0x4b,0xf6,0x01,0x12,0x01,0x00,0xc7,0xeb,0xfc,0x9a,0x03,0x66,0xea,0xc8,0xfb,0xfe,0xe9, +0xf9,0xfe,0x87,0x77,0x37,0x7f,0x01,0xa8,0xe2,0x01,0x56,0x01,0x6e,0x74,0x6b,0x6a,0x75,0xa3,0xfe,0xc0,0xe1,0x99,0xfe,0x93,0x56,0x00,0x00,0x02,0x00,0x61,0xff,0xe6,0x06,0x81,0x07,0xc8,0x00,0x30,0x00,0x3c,0x00,0x6d,0x40,0x38,0x14,0x13,0x37,0x89,0x07,0x00,0x89,0x31,0x26,0x26,0x10,0x2b,0x89,0x20,0x1d,0x34,0x0a,0x03,0x07,0x31, +0x2e,0x20,0x13,0x07,0x31,0x20,0x20,0x31,0x07,0x13,0x04,0x3e,0x10,0x89,0x17,0x1d,0x2e,0x0a,0x34,0x04,0x04,0x26,0x25,0x25,0x1b,0x23,0x9b,0x28,0x0c,0x9b,0x1b,0x07,0x13,0x14,0x19,0x3a,0xb8,0x01,0x80,0xb1,0x04,0x19,0x00,0x3f,0xed,0x3f,0x33,0x3f,0xed,0xd4,0xed,0x12,0x39,0x2f,0x33,0x11,0x17,0x39,0x01,0x2f,0xed,0x12,0x17,0x39, +0x2f,0x2f,0x2f,0x2f,0x11,0x39,0x11,0x12,0x17,0x39,0x10,0xed,0x12,0x39,0x2f,0x10,0xed,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x14,0x02,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x37,0x26,0x23,0x22,0x04,0x02,0x15,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x12,0x07,0x34,0x26,0x27,0x06,0x02,0x15,0x14,0x16,0x33,0x32,0x12,0x06,0x31,0x79,0xd9,0x88,0xac,0xd5,0xd6,0xd3,0x80,0xaf,0xac,0xfe,0xf0,0x8c,0x6e,0x6e,0x95,0x71,0x7d,0xb3,0x01,0x60,0xde,0xfd,0xba,0x77,0x5b,0x79,0x7a,0x9b,0x9f,0x1d,0xac,0xbb,0xb2,0xd7,0x7f,0x94,0x5e,0x65,0xa7,0x55,0x4b, +0xbb,0xb2,0x7c,0x69,0x80,0xa8,0x02,0x8e,0xb7,0xfe,0xc0,0xb1,0x01,0x1c,0xdd,0xdb,0x01,0x6c,0x9e,0x54,0x9d,0xfe,0xec,0xb7,0xb6,0xfe,0xc4,0x9e,0x3a,0xa6,0x01,0x7d,0xaa,0xe3,0x01,0x57,0xc6,0x8c,0x5b,0x97,0x51,0x62,0x6e,0x3b,0x8a,0x3f,0xba,0x95,0x6f,0xcf,0x72,0x6b,0xfe,0xde,0xba,0x94,0xfc,0x55,0x8d,0xfe,0xc6,0xc1,0xa3,0xbe, +0x01,0x24,0x00,0x01,0x00,0x61,0xfd,0xfe,0x07,0x0f,0x07,0x61,0x00,0x43,0x00,0x71,0x40,0x38,0x1f,0x8a,0x24,0x22,0x21,0x2a,0x8a,0x19,0x30,0x8a,0x11,0x00,0x01,0x41,0x8a,0x03,0x2c,0x11,0x01,0x24,0x21,0x14,0x19,0x11,0x01,0x03,0x03,0x01,0x11,0x19,0x14,0x21,0x24,0x07,0x45,0x0a,0x8a,0x39,0x01,0x00,0x19,0x06,0x9b,0x3d,0x27,0x2c, +0x14,0x9b,0x15,0x15,0x22,0x1c,0x9b,0x27,0x07,0x0e,0xb8,0x01,0x80,0xb3,0x34,0x21,0x22,0x19,0x00,0x3f,0x33,0xd4,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x10,0xd4,0xed,0x3f,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x31, +0x30,0x05,0x27,0x12,0x11,0x10,0x00,0x21,0x22,0x00,0x02,0x11,0x10,0x12,0x04,0x33,0x32,0x12,0x35,0x10,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x11,0x10,0x13,0x07,0x02,0x11,0x10,0x00,0x33,0x32,0x16,0x15,0x10,0x07,0x15,0x16,0x16,0x15,0x14,0x02,0x06,0x23,0x22,0x24,0x02,0x02,0x35,0x10,0x12,0x00,0x21,0x32, +0x04,0x12,0x11,0x14,0x02,0x06,0x7d,0x9e,0x8b,0xfe,0xaf,0xfe,0xd1,0xd4,0xfe,0xa5,0xb6,0x9c,0x01,0x0e,0xb4,0xbf,0xd4,0xf8,0x72,0x65,0x63,0x6d,0x73,0x7a,0xa8,0xa0,0x8b,0x99,0x96,0x01,0x03,0xed,0xb9,0xd3,0xae,0x67,0x7d,0x96,0xff,0xa8,0xa9,0xfe,0xea,0xc9,0x74,0xde,0x01,0xaa,0x01,0x0a,0xef,0x01,0x6b,0xc2,0x4c,0x19,0x37,0x01, +0x9f,0x01,0x92,0x01,0xa6,0x01,0xd3,0xfe,0xfe,0xfe,0x32,0xfe,0xcd,0xfe,0xd1,0xfe,0x00,0xff,0x01,0x24,0xfd,0x01,0x7d,0x96,0x9b,0x85,0xa2,0x8d,0xfe,0xe7,0xfe,0xbd,0xfe,0xb1,0xfe,0xae,0x37,0x01,0x75,0x01,0x5f,0x01,0x69,0x01,0x90,0xf0,0xca,0xfe,0xf8,0x67,0x06,0x1e,0xfc,0xb4,0xc0,0xfe,0xb0,0xa8,0xb1,0x01,0x4d,0x01,0xd0,0xe9, +0x01,0x60,0x02,0x19,0x01,0x33,0xfd,0xfe,0x2f,0xfe,0xc6,0xd7,0xfe,0x31,0x00,0x01,0x00,0x64,0xfd,0xfe,0x06,0xf4,0x05,0xb3,0x00,0x3e,0x00,0x6a,0x40,0x0b,0x00,0x3e,0x0a,0x33,0x8a,0x34,0x11,0x2a,0x8a,0x2b,0x17,0xb8,0x01,0x85,0x40,0x24,0x23,0x3e,0x34,0x1d,0x2b,0x23,0x23,0x2b,0x1d,0x34,0x3e,0x05,0x40,0x3c,0x8a,0x03,0x12,0x0b, +0x0b,0x34,0x2f,0x26,0x38,0x9b,0x15,0x0e,0x07,0x07,0x3e,0x00,0x19,0x1d,0x1e,0x1e,0x34,0x20,0xb8,0x01,0x80,0xb3,0x1b,0x2b,0x34,0x18,0x00,0x3f,0x33,0xd4,0xed,0x12,0x39,0x2f,0x33,0x3f,0x33,0x3f,0x33,0x33,0xed,0x32,0x32,0x12,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x10, +0xed,0x39,0x11,0x33,0x31,0x30,0x17,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x20,0x11,0x10,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x12,0x11,0x10,0x02,0x23,0x22,0x06,0x11,0x11,0x23,0x11,0x10,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x26,0x23,0x22, +0x06,0x02,0x15,0x10,0x17,0xee,0x41,0x49,0x51,0x92,0x64,0x56,0x7e,0x2a,0x05,0x24,0x86,0x5a,0x5b,0x6f,0x31,0x06,0x26,0x7f,0x60,0x01,0x3c,0x7f,0xe3,0x99,0x8c,0x6f,0x7e,0x77,0xb3,0xad,0x59,0x4e,0x5e,0x51,0xa3,0x4e,0x5b,0x63,0x54,0xa3,0x49,0x55,0x32,0x52,0x2f,0x7d,0x1a,0x85,0x01,0x91,0xdc,0xe8,0x01,0x4b,0xa8,0x56,0x6b,0x5f, +0x62,0x52,0x73,0x64,0x61,0xfc,0xcf,0xfe,0xaa,0xfd,0xe8,0xfe,0xea,0x2d,0xac,0x40,0x01,0xe2,0x01,0xf7,0x01,0x51,0x01,0x57,0xda,0xfe,0xfe,0xfc,0xc4,0x03,0x3c,0x01,0x05,0xd7,0xe9,0xf1,0xfc,0xc2,0x03,0x3e,0x01,0x0b,0xcf,0x8b,0xfe,0xf9,0xb5,0xfe,0x46,0xfa,0x00,0x02,0x00,0x46,0xff,0xe6,0x05,0x17,0x05,0xb3,0x00,0x0b,0x00,0x30, +0x00,0x47,0x40,0x1d,0x2a,0x89,0x13,0x17,0x1b,0x89,0x00,0x13,0x00,0x30,0x30,0x00,0x13,0x03,0x32,0x06,0x8a,0x22,0x09,0x99,0x30,0x0c,0x18,0x1f,0x0c,0x1f,0x0c,0x26,0x0f,0xb8,0x01,0x80,0xb5,0x2e,0x19,0x03,0x9b,0x26,0x07,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x39,0x11,0x33,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f, +0x2f,0x2f,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x16,0x04,0x33,0x32,0x36,0x12,0x35,0x34,0x02,0x26,0x27,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x20,0x27,0x02,0x8f,0x6e,0x5e,0x5e,0x7a, +0x6e,0x5d,0x63,0x76,0xfd,0xb9,0x68,0x01,0x05,0x92,0xa8,0xfd,0x84,0x86,0xe3,0x82,0x03,0x55,0x62,0x62,0xb1,0x6f,0xa9,0xc8,0x86,0xed,0x9a,0xcb,0x01,0x41,0xb8,0xb6,0xfe,0xb1,0xcb,0xfe,0xbf,0xbe,0x04,0x1e,0x69,0x80,0x82,0x64,0x66,0x7c,0x78,0xfd,0x84,0x5c,0x60,0x95,0x01,0x0f,0xb0,0x9f,0x01,0x12,0xa3,0x07,0x08,0x1c,0x9b,0x60, +0x65,0xa5,0x5d,0xc6,0xa3,0x7f,0xbd,0x66,0xb4,0xfe,0xa9,0xd3,0xdc,0xfe,0xab,0xbe,0x94,0x00,0x00,0x01,0x00,0x64,0xfd,0xfe,0x06,0xea,0x05,0xb3,0x00,0x2d,0x00,0x57,0x40,0x2a,0x2c,0x01,0x8a,0x0e,0x28,0x89,0x13,0x1d,0x1c,0x0e,0x13,0x0f,0x07,0x1c,0x1c,0x07,0x0f,0x13,0x0e,0x05,0x2f,0x19,0x89,0x20,0x2d,0x06,0x16,0x9b,0x24,0x07, +0x1c,0x1d,0x19,0x10,0x2b,0x99,0x0f,0x07,0x08,0x08,0x0f,0x0b,0xb8,0x01,0x80,0xb2,0x04,0x0f,0x18,0x00,0x3f,0xd4,0xed,0x12,0x39,0x11,0x33,0x10,0xed,0x39,0x3f,0x33,0x3f,0xed,0x3f,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x10,0xed,0x33,0x31,0x30,0x01,0x11,0x10,0x00,0x21,0x22,0x26,0x27,0x35, +0x17,0x16,0x33,0x32,0x36,0x35,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x07,0x21,0x11,0x06,0xea,0xfe,0xcd,0xfe,0xe6,0x46,0x76,0x55,0x4a,0x69,0x70,0xbb,0xdc,0xfd,0xa2,0x67,0x56,0xf8,0xd5,0xd5,0xf8,0x66,0x83,0x98,0x80,0x78, +0xa4,0x01,0x27,0xb4,0xae,0x01,0x1c,0x9f,0x56,0x4a,0x01,0x9a,0x05,0x99,0xfa,0xb4,0xfe,0xe3,0xfe,0xce,0x13,0x14,0xac,0x18,0x22,0xc6,0xa3,0x62,0xa7,0x01,0x15,0x96,0x01,0x19,0x01,0x4d,0xfe,0xb2,0xfe,0xe8,0xae,0xfe,0xdd,0xc6,0x37,0xb9,0x01,0x64,0xbb,0xdc,0x01,0x5b,0xbe,0xbe,0xfe,0xa7,0xde,0x8d,0xfe,0xd6,0x74,0x05,0x06,0x00, +0x00,0x02,0x00,0x61,0xff,0xe6,0x07,0x02,0x07,0xc8,0x00,0x3f,0x00,0x4a,0x00,0x84,0x40,0x45,0x1b,0x1a,0x26,0x10,0x8a,0x11,0x46,0x8a,0x07,0x00,0x8a,0x40,0x35,0x35,0x17,0x3a,0x8a,0x2e,0x2b,0x43,0x0a,0x03,0x07,0x40,0x3d,0x2e,0x1a,0x11,0x07,0x40,0x2e,0x2e,0x40,0x07,0x11,0x1a,0x05,0x4c,0x17,0x8a,0x1e,0x0c,0x14,0x9b,0x22,0x2b, +0x26,0x43,0x0a,0x3d,0x26,0x04,0x04,0x35,0x34,0x34,0x22,0x31,0x9b,0x37,0x29,0x22,0x07,0x1a,0x1b,0x19,0x11,0x18,0x48,0xb8,0x01,0x80,0xb1,0x04,0x19,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x3f,0x33,0xd4,0xed,0x12,0x39,0x2f,0x33,0x11,0x17,0x39,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x39, +0x11,0x12,0x17,0x39,0x10,0xed,0x12,0x39,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x39,0x11,0x33,0x31,0x30,0x01,0x14,0x02,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x37,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x17, +0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x12,0x07,0x34,0x26,0x27,0x06,0x02,0x15,0x10,0x33,0x32,0x12,0x06,0xc2,0x64,0xac,0x6c,0x88,0xad,0xb0,0xad,0x57,0x59,0x88,0x91,0xa2,0xea,0x8c,0x88,0x65,0x58,0x9a,0x5c,0x6b,0x6e,0xc5,0x81,0x75,0xab,0x20,0x07,0x2b,0xc0,0x7d,0x90, +0x85,0x3d,0x49,0x60,0x63,0x3b,0x64,0x3f,0x17,0x89,0x97,0x8e,0xad,0x67,0x75,0x48,0x54,0xa4,0x2b,0x30,0x8f,0x7f,0x9a,0x61,0x6e,0x02,0x8e,0xbb,0xfe,0xc2,0xaf,0x01,0x18,0xe1,0xdd,0x01,0x6f,0xa0,0x4f,0xf6,0xe6,0xfc,0xc2,0x03,0x3e,0x01,0xdc,0xfe,0xe3,0xfe,0xd4,0xb4,0xfe,0x8c,0x8c,0x37,0x98,0x01,0x9f,0xbb,0xe4,0x01,0x4a,0xad, +0x90,0x81,0x83,0x8e,0x87,0x3a,0xa8,0x5c,0x63,0x6d,0x1d,0x1e,0x8a,0x3f,0xb8,0x97,0x6f,0xd0,0x70,0x6d,0xfe,0xdd,0xb8,0xb7,0xd9,0x4b,0x84,0xfe,0xd5,0xcf,0xfe,0x9f,0x01,0x13,0x00,0x02,0x00,0x82,0xff,0xf4,0x05,0x2b,0x03,0xf1,0x00,0x0b,0x00,0x1b,0x00,0x20,0x40,0x10,0x18,0x89,0x03,0x03,0x1d,0x09,0x89,0x10,0x06,0x9b,0x14,0x06, +0x00,0x99,0x0c,0x18,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x22,0x24,0x26,0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x14,0x06,0x04,0x02,0xd5,0xc7,0xdf,0xdf,0xc7,0xc5,0xdd,0xdd,0xc5,0xaa,0xfe,0xee,0x97,0x95,0x01,0x13,0xab, +0xae,0x01,0x14,0x94,0x97,0xfe,0xee,0x87,0xc2,0xa9,0xab,0xc1,0xc3,0xa9,0xa9,0xc2,0x93,0x7f,0xe9,0x96,0x97,0xea,0x7e,0x7f,0xe9,0x97,0x96,0xe8,0x80,0x00,0x00,0x02,0x00,0x82,0xff,0xf4,0x05,0xa3,0x03,0xf1,0x00,0x2b,0x00,0x37,0x00,0x5f,0xbc,0x00,0x2c,0x01,0x82,0x00,0x00,0x00,0x06,0x01,0x82,0x40,0x18,0x32,0x14,0x89,0x1b,0x28, +0x32,0x00,0x32,0x17,0x1b,0x1b,0x17,0x32,0x00,0x04,0x39,0x22,0x89,0x0c,0x18,0x99,0x17,0x18,0x2f,0xb8,0x01,0x7d,0x40,0x11,0x28,0x35,0x9b,0x03,0x28,0x03,0x28,0x03,0x09,0x1f,0x9b,0x10,0x06,0x26,0x99,0x09,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f, +0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x14,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x04,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x27,0x26,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35, +0x34,0x26,0x23,0x22,0x06,0x02,0x28,0x74,0x5a,0x5d,0x77,0xe8,0xc2,0xb7,0xe7,0xa0,0x01,0x2c,0xc4,0xbf,0x01,0x2c,0xa6,0xcb,0xc2,0x6d,0x6f,0x7a,0xdc,0x8a,0xd9,0xfe,0xf9,0x3f,0x73,0x43,0x82,0x41,0x03,0x55,0x6a,0x6c,0x3a,0x2a,0x27,0x3a,0x39,0x28,0x2b,0x39,0x01,0xb7,0x58,0x78,0x7b,0x63,0xc5,0xf0,0x01,0x05,0xd6,0x9f,0xf9,0x8a, +0x88,0xfa,0x9d,0xc0,0xf6,0x27,0x95,0x1d,0xa8,0x83,0x74,0xb5,0x63,0xd9,0xb6,0x62,0x91,0x51,0x58,0x06,0x06,0x72,0x58,0x29,0x39,0x37,0x2b,0x29,0x39,0x39,0x00,0x02,0x00,0xb4,0x00,0x00,0x05,0x90,0x05,0xe6,0x00,0x3e,0x00,0x4a,0x00,0x71,0xb9,0x00,0x2d,0x01,0x83,0x40,0x2f,0x00,0x42,0x8c,0x30,0x39,0x8c,0x48,0x27,0x26,0x06,0x0e, +0x89,0x1f,0x06,0x48,0x1f,0x00,0x30,0x48,0x1f,0x1f,0x48,0x30,0x00,0x04,0x4c,0x18,0x89,0x15,0x16,0x06,0x45,0x3f,0x30,0x3c,0x36,0x06,0x27,0x3c,0x36,0x27,0x27,0x36,0x3c,0x03,0x03,0x1b,0xb8,0x01,0x80,0xb7,0x12,0x18,0x23,0x2a,0x9b,0x0a,0x03,0x06,0x00,0x3f,0x33,0xed,0x32,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x39,0x11, +0x12,0x39,0x33,0x32,0x3f,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x11, +0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x25,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x22,0x76,0x72,0x41,0x5d,0x15,0x07,0x0d,0x6e,0x4a,0x7e,0x89,0xb7,0xa0,0xfd,0xd2,0xa1,0xb6,0xad,0x66,0x5b, +0x02,0x00,0x5b,0x64,0x36,0x33,0x2e,0x3f,0x03,0x91,0x02,0x3e,0x2d,0x31,0x31,0x27,0x1e,0x05,0x04,0x55,0x44,0x44,0x57,0x64,0x5d,0x96,0xa9,0x01,0x67,0x1f,0x2e,0x2d,0x20,0x1e,0x2d,0x2e,0x02,0x98,0xb3,0xa9,0x48,0x45,0x3f,0x4e,0xaf,0x99,0xfe,0x9e,0x9b,0xaf,0xb0,0x9a,0x04,0x9c,0xfb,0x6f,0x5b,0x60,0x60,0x5b,0x01,0x5e,0x55,0x5a, +0x4c,0x3e,0x3e,0x4c,0x58,0x72,0x4f,0x73,0x10,0x05,0x05,0x18,0x42,0x58,0x59,0x41,0x4f,0x56,0xb1,0x3e,0x2b,0x20,0x20,0x2a,0x2a,0x20,0x20,0x2b,0x00,0x02,0x00,0x82,0xff,0xf4,0x05,0x73,0x03,0xf3,0x00,0x2d,0x00,0x39,0x00,0x71,0xbc,0x00,0x31,0x01,0x82,0x00,0x25,0x00,0x2b,0x01,0x82,0x40,0x30,0x37,0x1c,0x1b,0x09,0x0f,0x89,0x15, +0x09,0x37,0x12,0x25,0x37,0x12,0x15,0x15,0x12,0x37,0x25,0x04,0x3b,0x22,0x89,0x03,0x13,0x99,0x12,0x18,0x18,0x1f,0x9b,0x06,0x2e,0x9b,0x25,0x00,0x28,0x09,0x1c,0x06,0x28,0x1c,0x28,0x1c,0x00,0x0c,0x06,0x06,0x34,0xb8,0x01,0x7d,0xb1,0x00,0x18,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0xed, +0x10,0xed,0x32,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x22,0x02,0x35,0x34,0x12,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x12,0x15,0x14,0x02,0x07,0x35,0x36,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15, +0x14,0x17,0x37,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x2f,0xc3,0xea,0xc8,0xa4,0x5f,0x8d,0x24,0x1e,0x91,0x63,0xa2,0xc1,0xc4,0xa5,0xb8,0x78,0x58,0x4e,0x53,0xab,0x58,0x4f,0x56,0x77,0x37,0x07,0x06,0x6f,0x58,0x5b,0x76,0x7a,0x55,0x29,0x39,0x39,0x29,0x2a,0x37, +0x38,0x0c,0x01,0x1d,0xeb,0xdf,0x01,0x18,0x72,0x74,0x6b,0x7b,0xfe,0xea,0xdf,0xce,0xfe,0xe9,0x24,0x96,0x3c,0x01,0x37,0x92,0xd0,0x9c,0x91,0x91,0x9c,0xce,0x96,0xb0,0x74,0x02,0x54,0x68,0x74,0x58,0x5d,0x79,0x01,0x38,0x02,0x39,0x29,0x2a,0x38,0x38,0x2a,0x28,0x3c,0x00,0x00,0x02,0x00,0x82,0xff,0xed,0x05,0x4b,0x05,0x82,0x00,0x3b, +0x00,0x47,0x00,0x84,0xb9,0x00,0x06,0x01,0x82,0xb4,0x3f,0x28,0x89,0x27,0x45,0xbb,0x01,0x82,0x00,0x0c,0x00,0x0e,0x01,0x83,0x40,0x16,0x00,0x39,0x0c,0x00,0x14,0x3f,0x27,0x0c,0x00,0x00,0x0c,0x27,0x3f,0x14,0x05,0x49,0x32,0x89,0x1e,0x17,0x11,0x3c,0xb8,0x01,0x7d,0x40,0x1a,0x09,0x42,0x9b,0x03,0x22,0x2d,0x11,0x1b,0x0c,0x09,0x2d, +0x03,0x27,0x09,0x03,0x09,0x03,0x1b,0x27,0x06,0x39,0x35,0x99,0x1b,0x18,0x13,0xb8,0x01,0x80,0xb1,0x14,0x19,0x00,0x3f,0xed,0x3f,0xed,0x32,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed, +0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x17,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x24,0x37,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37, +0x26,0x26,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0xcb,0xb7,0x96,0x70,0x81,0x78,0x58,0x56,0x71,0x08,0x1f,0x9b,0x81,0x8c,0x58,0x39,0xb1,0x54,0x41,0xab,0xa5,0x33,0xda,0xed,0x93,0x01,0x20,0xf9,0xaf,0xa5,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c,0x98,0x81,0x29,0x75,0x3c,0x38,0x39,0x57,0x01,0x6f, +0x27,0x3b,0x38,0x2a,0x27,0x3b,0x3c,0x01,0xae,0x89,0xa6,0x74,0x62,0x5a,0x74,0x6a,0x59,0x23,0x38,0x5e,0x7b,0x10,0x0e,0x23,0x9a,0x19,0x24,0x18,0x16,0xeb,0xcc,0xa3,0xef,0xa4,0x3b,0x28,0x77,0x57,0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71,0x93,0x5f,0x85,0xa0,0x13,0x0b,0x05,0x1e,0x8e,0x45,0x39,0x2b,0x29,0x3a,0x39,0x2a, +0x2a,0x3a,0x00,0x03,0x00,0x82,0xff,0xed,0x05,0x4b,0x05,0x82,0x00,0x43,0x00,0x4f,0x00,0x5b,0x00,0xaa,0xbf,0x00,0x29,0x01,0x83,0x00,0x1b,0x00,0x4d,0x01,0x82,0x00,0x27,0x00,0x21,0x01,0x82,0x40,0x12,0x47,0x18,0x27,0x1b,0x27,0x47,0x2f,0x2f,0x47,0x27,0x1b,0x04,0x11,0x5d,0x07,0x89,0x06,0x00,0xb8,0x01,0x82,0x40,0x18,0x56,0x50, +0x8c,0x3e,0x3c,0x56,0x3e,0x06,0x56,0x3e,0x3e,0x56,0x06,0x03,0x5d,0x11,0x89,0x39,0x0c,0x01,0x4b,0x9b,0x1e,0x44,0xb8,0x01,0x7d,0x40,0x1a,0x24,0x32,0x2c,0x3c,0x53,0x01,0x03,0x41,0x27,0x1e,0x2c,0x24,0x1e,0x24,0x1e,0x24,0x36,0x59,0x41,0x06,0x18,0x14,0x99,0x36,0x18,0x2e,0xb8,0x01,0x80,0xb3,0x2f,0x19,0x06,0x06,0x00,0x3f,0x3f, +0xed,0x3f,0xed,0x32,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x12,0x39,0x11,0x17,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x07, +0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x17,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16, +0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0x5d,0x08,0x9e,0x8f,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c,0x98,0x81,0x29,0x75,0x3c,0x38,0x39,0x57,0xb7,0x96,0x70,0x81,0x78,0x58,0x56,0x71,0x08,0x1f,0x9b,0x81,0x8c,0x58,0x39,0xb1,0x54,0x41, +0xab,0xa5,0x33,0xda,0xed,0xb0,0xc5,0x3d,0x74,0x59,0x64,0x72,0xdd,0x27,0x3b,0x38,0x2a,0x27,0x3b,0x3c,0xfe,0x0f,0x3c,0x28,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x04,0x3d,0x10,0x29,0x72,0x52,0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71,0x93,0x5f,0x85,0xa0,0x13,0x0b,0x05,0x1e,0x8e,0x4f,0x89,0xa6,0x74,0x62,0x5a,0x74,0x6a,0x59, +0x23,0x38,0x5e,0x7b,0x10,0x0e,0x23,0x9a,0x19,0x24,0x18,0x16,0xeb,0xcc,0xb9,0x01,0x03,0x58,0x3c,0x5c,0x5a,0x75,0x81,0xfc,0xf7,0x39,0x2b,0x29,0x3a,0x39,0x2a,0x2a,0x3a,0x02,0xbc,0x28,0x3b,0x3c,0x27,0x29,0x3b,0x3b,0x00,0x02,0x00,0x50,0xff,0xf4,0x04,0xa7,0x05,0x6a,0x00,0x28,0x00,0x34,0x00,0x63,0x40,0x09,0x18,0x89,0x05,0x25, +0x8c,0x2f,0x12,0x0b,0x29,0xb8,0x01,0x83,0x40,0x14,0x1f,0x00,0x0b,0x2f,0x1f,0x05,0x2f,0x1f,0x1f,0x2f,0x05,0x03,0x36,0x0f,0x89,0x0e,0x32,0x9b,0x22,0x2c,0xb8,0x01,0x7d,0x40,0x12,0x00,0x12,0x0b,0x22,0x00,0x22,0x00,0x15,0x02,0x99,0x1c,0x18,0x08,0x9b,0x15,0x06,0x0e,0x06,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f, +0x39,0x39,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x25,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x26,0x02,0x27,0x33,0x16,0x16,0x17,0x36,0x36,0x33,0x32,0x04,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0xb5,0x47,0x8b,0xa9,0xc6,0xae,0x9b,0x47,0xa9,0x46,0x30,0xae,0x49,0xd5,0x2c,0x49,0x25,0x30,0x91,0x3b,0xe7,0x01,0x05,0x7e,0xeb,0x98,0xca,0xfe,0xfa,0x7a,0x6a,0x58,0x75,0x75,0x5b,0x60,0x3b,0x28,0x28,0x3b,0x3b,0x28,0x2a,0x39,0xb9, +0x34,0xc2,0xb1,0xa2,0xb0,0x26,0x1f,0xa1,0x01,0x70,0x54,0x44,0xd5,0xa6,0x16,0x1a,0xfc,0xe7,0x98,0xec,0x80,0xd7,0xaa,0x6d,0x7c,0x74,0x5c,0x57,0x76,0xce,0x2a,0x39,0x3c,0x27,0x29,0x3b,0x3a,0x00,0x00,0x02,0x00,0x82,0xff,0xf4,0x06,0x80,0x05,0xe6,0x00,0x3b,0x00,0x47,0x00,0x7b,0x40,0x0c,0x17,0x89,0x14,0x26,0x25,0x06,0x06,0x2c, +0x0d,0x89,0x1e,0x35,0xb8,0x01,0x82,0x40,0x21,0x45,0x3f,0x8c,0x2f,0x1c,0x1e,0x45,0x14,0x1e,0x45,0x2f,0x2f,0x45,0x1e,0x14,0x04,0x49,0x2c,0x89,0x00,0x3c,0x9b,0x2e,0x38,0x32,0x06,0x26,0x32,0x26,0x32,0x26,0x03,0x42,0xb8,0x01,0x7d,0xb2,0x38,0x18,0x10,0xb8,0x01,0x80,0x40,0x0a,0x1c,0x18,0x15,0x06,0x21,0x29,0x9b,0x0a,0x03,0x06, +0x00,0x3f,0x33,0xed,0x32,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x12,0x39,0x11,0x33,0x33,0x10,0xed,0x31,0x30,0x13,0x34,0x12,0x33,0x32,0x16,0x17,0x3e,0x02,0x33,0x32,0x12,0x15,0x14,0x06, +0x07,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x06,0x23,0x21,0x36,0x11,0x34,0x26,0x23,0x22,0x06,0x06,0x15,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x37,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x05,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x82,0xac,0xa3,0x53,0x8a,0x23,0x0d,0x48, +0x66,0x36,0xa0,0xac,0x25,0x15,0x46,0x56,0x62,0xae,0x58,0xa4,0x66,0xfe,0xe2,0x5d,0x52,0x4d,0x2d,0x49,0x29,0xa7,0x01,0x53,0x47,0x51,0x58,0x37,0x07,0x06,0x70,0x58,0x5c,0x74,0x7b,0x64,0x80,0xc5,0x6a,0x01,0xbf,0x2a,0x3a,0x3a,0x2a,0x29,0x39,0x3a,0x01,0xfc,0xf8,0x01,0x00,0x75,0x66,0x37,0x65,0x3f,0xfe,0xfe,0xf4,0x64,0xce,0x31, +0x5f,0x5b,0x04,0x91,0xfb,0x64,0x5d,0x97,0x56,0xc8,0x01,0x36,0xa7,0xbd,0x45,0x8c,0x64,0x9f,0x96,0xb8,0xae,0xbb,0x69,0x02,0x57,0x65,0x75,0x57,0x5f,0x77,0x82,0xec,0x36,0x02,0x39,0x29,0x2a,0x38,0x3b,0x27,0x27,0x3d,0x00,0x02,0x00,0x82,0xff,0xf6,0x05,0x9c,0x05,0x82,0x00,0x40,0x00,0x4c,0x00,0x7e,0xb9,0x00,0x0b,0x01,0x82,0x40, +0x1b,0x47,0x27,0x89,0x26,0x41,0x8c,0x05,0x1a,0x33,0x00,0x47,0x26,0x33,0x05,0x1d,0x47,0x26,0x05,0x05,0x26,0x47,0x03,0x4e,0x31,0x89,0x1d,0x44,0xb8,0x01,0x7d,0x40,0x1a,0x02,0x15,0x9b,0x36,0x4a,0x9b,0x08,0x21,0x2c,0x00,0x02,0x36,0x2c,0x08,0x26,0x02,0x36,0x08,0x08,0x36,0x02,0x03,0x0e,0x26,0x06,0x33,0xb8,0x01,0x81,0xb5,0x1a, +0x18,0x3d,0x99,0x0e,0x18,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36, +0x33,0x32,0x16,0x15,0x14,0x02,0x23,0x22,0x26,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x06,0x07,0x07,0x26,0x26,0x35,0x34,0x36,0x24,0x37,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26, +0x23,0x22,0x06,0x04,0xfc,0x16,0x1b,0x57,0x78,0x77,0x56,0x5c,0x77,0x9e,0x80,0x2f,0x57,0x56,0x45,0x3e,0x3e,0x1b,0x1e,0x25,0x18,0x10,0x02,0xda,0xfd,0x93,0x01,0x20,0xf9,0xaf,0xa5,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c,0xb4,0x16,0x6f,0x5d,0x26,0x49,0x49,0x52,0x46,0x4b,0x1c,0x2e,0x49,0x0d,0x9a,0x3b,0x29,0x27,0x3b,0x3a, +0x28,0x27,0x3d,0x01,0x18,0x05,0x76,0x59,0x5a,0x75,0x7c,0x65,0xd1,0xfe,0xf7,0x27,0x46,0x4d,0x44,0x2e,0x33,0x57,0x84,0x1b,0x02,0xf1,0xc7,0xa3,0xef,0xa4,0x3b,0x28,0x77,0x57,0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71,0x93,0x5f,0xca,0x39,0x8b,0x7f,0x22,0x39,0x54,0x4c,0x34,0x49,0x3d,0xd0,0x29,0x3b,0x39,0x2b,0x29,0x39, +0x3a,0x00,0x00,0x02,0x00,0x82,0xff,0xf4,0x06,0x1b,0x04,0xfe,0x00,0x37,0x00,0x43,0x00,0x7a,0x40,0x0a,0x06,0x20,0x2a,0x13,0x89,0x12,0x21,0x89,0x22,0x32,0xbb,0x01,0x82,0x00,0x41,0x00,0x3b,0x01,0x82,0x40,0x19,0x2c,0x12,0x22,0x41,0x2c,0x2c,0x41,0x22,0x12,0x04,0x45,0x2a,0x89,0x00,0x38,0x9b,0x06,0x20,0x03,0x2c,0x35,0x2f,0x2f, +0x03,0x3e,0xb8,0x01,0x7d,0x40,0x15,0x35,0x18,0x1d,0x9b,0x09,0x17,0x9b,0x0f,0x09,0x0f,0x09,0x0f,0x12,0x22,0x18,0x12,0x06,0x26,0x9b,0x03,0x06,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x39,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10, +0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x12,0x39,0x39,0x31,0x30,0x13,0x34,0x12,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x02,0x06,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x01,0x23,0x03,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14, +0x06,0x23,0x22,0x02,0x25,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x82,0xd9,0xc5,0x57,0x9d,0x2b,0x1e,0x51,0x38,0x1a,0x3f,0x4b,0x35,0x37,0x15,0x31,0x37,0xa8,0x54,0x79,0x43,0x23,0x55,0x51,0x1d,0x2e,0x11,0x1d,0x2d,0x0b,0x01,0x13,0xc1,0xe5,0x3e,0x6d,0x3f,0x4a,0x67,0x31,0x3c,0x08,0x6f,0x58,0x5b,0x76,0x7a,0x65, +0xc7,0xe6,0x01,0xbd,0x2a,0x39,0x3a,0x29,0x2a,0x37,0x38,0x01,0xdb,0xfa,0x01,0x1c,0x6a,0x57,0x94,0x7a,0x26,0x48,0x35,0x26,0xe1,0xa8,0x88,0xfe,0xe5,0x8f,0x32,0x51,0x1d,0x28,0x88,0x7f,0xfd,0x73,0x02,0x46,0xa1,0x7a,0x63,0xb5,0x6a,0x9d,0x76,0x5c,0x6e,0x74,0x58,0x5d,0x79,0x01,0x06,0x32,0x02,0x3b,0x27,0x2a,0x38,0x38,0x2a,0x28, +0x3c,0x00,0x00,0x02,0x00,0x78,0xff,0xf2,0x05,0x3f,0x04,0xa3,0x00,0x0f,0x00,0x1e,0x00,0x20,0x40,0x10,0x04,0x89,0x13,0x13,0x20,0x1b,0x89,0x0c,0x00,0x99,0x17,0x06,0x10,0x99,0x08,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34, +0x12,0x24,0x13,0x32,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x02,0xe2,0xaa,0x01,0x18,0x9b,0x9e,0xfe,0xe6,0xaf,0xa9,0xfe,0xe7,0x9e,0xa0,0x01,0x1e,0xa2,0xcb,0xf2,0x6d,0xc7,0x7f,0x82,0xcd,0x71,0x71,0xc9,0x04,0xa3,0x9a,0xfe,0xed,0xad,0xad,0xfe,0xec,0x96,0x9c,0x01,0x14,0xa7,0xa9,0x01,0x15,0x9c,0xfb, +0xe5,0xf9,0xc8,0x80,0xd0,0x74,0x76,0xd0,0x80,0x7d,0xcf,0x73,0x00,0x02,0x00,0x78,0xff,0xf7,0x05,0x3b,0x04,0xa3,0x00,0x2a,0x00,0x36,0x00,0x61,0xb5,0x29,0x89,0x04,0x00,0x01,0x19,0xbb,0x01,0x82,0x00,0x2e,0x00,0x33,0x01,0x82,0x40,0x12,0x13,0x11,0x2e,0x13,0x04,0x01,0x2e,0x13,0x13,0x2e,0x01,0x04,0x04,0x38,0x0c,0x89,0x21,0x0f, +0xb8,0x01,0x7f,0x40,0x11,0x2b,0x11,0x31,0x11,0x16,0x1d,0x16,0x1d,0x16,0x00,0x25,0x99,0x08,0x06,0x01,0x00,0x18,0x00,0x3f,0x32,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x32,0x11,0x33,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x05,0x27,0x36, +0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x10,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0xf3,0x75,0x80,0x94,0x70,0xc9,0x81,0x85,0xc7,0x6e,0x85, +0x6e,0x2d,0x15,0x38,0x69,0x48,0x48,0x6b,0x5b,0xa4,0x6f,0x75,0xbc,0x68,0xa0,0x01,0x11,0xaf,0xa5,0x01,0x15,0xa9,0xfd,0x93,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x09,0x70,0x69,0x01,0x19,0x97,0x65,0xb9,0x6f,0x6a,0xbc,0x71,0x9a,0xb4,0x0b,0x34,0x4d,0x4b,0x69,0x6b,0x49,0x4e,0x81,0x49,0x73,0xd6,0x8e,0x97,0x01,0x07,0x92,0x8e,0xfe, +0xfa,0x8f,0xfe,0x90,0x65,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x02,0x00,0x78,0xff,0xf2,0x04,0x52,0x06,0x66,0x00,0x25,0x00,0x31,0x00,0x5a,0xbf,0x00,0x2f,0x01,0x82,0x00,0x03,0x00,0x17,0x01,0x84,0x00,0x16,0x00,0x09,0x01,0x82,0x40,0x22,0x29,0x00,0x16,0x29,0x03,0x16,0x29,0x29,0x16,0x03,0x03,0x33,0x20,0x89,0x11, +0x13,0x1b,0x2c,0x06,0x31,0x00,0x1b,0x16,0x00,0x06,0x06,0x0d,0x17,0x16,0x07,0x24,0x99,0x0d,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x39,0x12,0x39,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x25,0x26,0x26,0x35,0x34,0x36,0x33,0x32, +0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x10,0x01,0x36,0x12,0x37,0x17,0x0e,0x02,0x07,0x0e,0x03,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x39,0x26,0x26,0x65,0x4b,0x50,0x65,0x6c,0xc8,0x7e,0xa2,0xfb,0x8b,0x01,0x82,0x94,0xca,0x3a,0x92,0x2e,0x5c,0x75,0x8d,0x69, +0x8f,0x57,0x27,0x69,0xba,0x6a,0x61,0x90,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0xa1,0x26,0x3e,0x2d,0x50,0x62,0x68,0x4a,0x58,0x93,0x55,0x7f,0xe8,0x93,0x01,0x2b,0x01,0x35,0x77,0x01,0x06,0x9d,0x36,0x7b,0xa7,0x89,0x77,0x5a,0x91,0x7b,0x71,0x51,0x5c,0xa0,0x62,0x6b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x03,0x00,0x50, +0xff,0xf2,0x05,0x71,0x06,0xac,0x00,0x45,0x00,0x50,0x00,0x5c,0x00,0x88,0x40,0x23,0x4e,0x89,0x27,0x54,0x22,0x07,0x89,0x3f,0x24,0x46,0x16,0x2f,0x04,0x27,0x2d,0x89,0x48,0x0f,0x89,0x35,0x22,0x3f,0x27,0x3f,0x48,0x35,0x45,0x45,0x35,0x48,0x3f,0x27,0x05,0x5e,0x5a,0xb8,0x01,0x82,0x40,0x1e,0x1c,0x0a,0x3b,0x45,0x3b,0x00,0x00,0x2a, +0x04,0x9b,0x42,0x2a,0x57,0x9b,0x24,0x2f,0x22,0x16,0x04,0x19,0x46,0x2a,0x1f,0x1f,0x19,0x4c,0x9b,0x2a,0x06,0x51,0xb8,0x01,0x7d,0xb5,0x19,0x19,0x32,0x99,0x13,0x19,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x17,0x39,0xed,0x10,0xd4,0xed,0x12,0x39,0x2f,0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39, +0x2f,0x2f,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x11,0x17,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x01,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x02,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x37,0x26,0x02,0x35,0x34,0x36,0x33,0x32,0x16, +0x15,0x14,0x07,0x16,0x16,0x33,0x32,0x12,0x35,0x34,0x2e,0x03,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x04,0x17,0x01,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x90,0xec,0x71,0x4f,0x26,0x1d,0x2a,0x44,0x67,0xe9,0xc2,0x6f,0x35,0x64,0xb5,0x71,0x62,0xcb, +0x6a,0x47,0x9f,0x69,0x49,0x68,0x69,0x48,0x36,0x57,0x16,0x27,0x1c,0x54,0x7a,0x7f,0x62,0x76,0x86,0x56,0x5d,0xa3,0x39,0x6d,0x81,0x1f,0x3c,0x59,0x73,0xb3,0x78,0x6a,0x3e,0x8b,0x66,0x56,0x01,0x2a,0x96,0xfd,0x51,0x27,0x2e,0x24,0x17,0x20,0x39,0xf9,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x05,0x66,0x71,0x2d,0x12,0x2d,0x1e,0x1d,0x2e, +0x28,0x59,0x74,0x93,0xcf,0x8f,0xc0,0xfe,0xc6,0xae,0x81,0x6f,0x78,0x78,0x69,0x49,0x4b,0x69,0x3b,0x30,0x32,0x4c,0x74,0x01,0x4f,0x72,0x72,0x97,0xd8,0xd4,0x9c,0xe5,0x73,0x81,0x01,0x1d,0xfc,0x65,0x92,0x6c,0x4c,0x3c,0x40,0x2b,0x43,0x57,0x3a,0x5f,0x82,0x68,0x53,0xfc,0x2e,0x69,0x77,0x81,0x93,0x39,0x3e,0x4c,0xe4,0xfd,0xf9,0x27, +0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x03,0x00,0x78,0xff,0xf2,0x05,0x25,0x06,0x3d,0x00,0x3d,0x00,0x47,0x00,0x53,0x00,0x8b,0xbc,0x00,0x0d,0x01,0x84,0x00,0x43,0x00,0x3b,0x01,0x82,0x40,0x44,0x4b,0x25,0x89,0x22,0x51,0x03,0x03,0x3e,0x08,0x03,0x43,0x06,0x8a,0x34,0x13,0x32,0x22,0x34,0x43,0x4b,0x22,0x34,0x34,0x22,0x4b, +0x43,0x04,0x55,0x2d,0x89,0x19,0x46,0x0a,0x53,0x00,0x4d,0x38,0x1d,0x29,0x08,0x32,0x3e,0x13,0x04,0x10,0x0a,0x03,0x00,0x29,0x38,0x23,0x0a,0x00,0x38,0x38,0x00,0x0a,0x03,0x10,0x23,0x06,0x30,0x99,0x15,0x19,0x40,0x10,0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x11,0x12,0x17,0x39, +0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x17,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34, +0x36,0x36,0x37,0x24,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x05,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x42,0x32,0x64,0x16,0x2b,0x3a,0x19,0x74, +0x65,0x73,0x8f,0x86,0x6d,0x50,0x7a,0x5a,0xe5,0x6f,0x80,0x85,0x3d,0x5c,0xbc,0xa9,0x01,0x42,0x85,0x4b,0x1e,0xa8,0xb4,0xcc,0xfe,0xf4,0x87,0x98,0x44,0x4c,0x4a,0x41,0xc6,0x32,0x7a,0xcb,0x70,0x48,0x6b,0x6c,0xf8,0x5d,0x42,0x26,0x3e,0x42,0x2f,0x3d,0x5e,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x02,0x0e,0x4c,0x3a,0x16,0x70,0x42,0x4f, +0x34,0x3c,0x70,0x56,0x5d,0x70,0x34,0x55,0x89,0x73,0xfa,0xd7,0xa5,0xe0,0x8c,0x2c,0x54,0x2f,0x34,0x41,0x2f,0xa3,0xb0,0x86,0xa0,0x34,0x45,0x23,0x6d,0xa7,0xa2,0xb9,0xd4,0x75,0x5e,0x74,0x71,0xc4,0x70,0x6b,0x49,0x49,0x69,0xfe,0xb6,0x50,0x2c,0x1f,0x20,0x27,0x01,0x7b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x04,0x00,0x78, +0xff,0xf2,0x05,0x25,0x06,0x3d,0x00,0x47,0x00,0x51,0x00,0x5c,0x00,0x68,0x00,0xba,0xb9,0x00,0x59,0x01,0x82,0xb6,0x3a,0x38,0x03,0x42,0x03,0x3a,0x40,0xb8,0x01,0x82,0x40,0x13,0x54,0x00,0x8a,0x45,0x3a,0x54,0x45,0x45,0x54,0x3a,0x03,0x33,0x6a,0x20,0x8a,0x10,0x66,0x1d,0x17,0xbb,0x01,0x82,0x00,0x60,0x00,0x27,0x01,0x84,0x40,0x41, +0x4d,0x1d,0x48,0x22,0x2d,0x0e,0x05,0x60,0x10,0x60,0x4d,0x4d,0x60,0x10,0x03,0x6a,0x09,0x89,0x33,0x50,0x24,0x68,0x1a,0x62,0x14,0x06,0x38,0x03,0x42,0x56,0x3d,0x22,0x0e,0x48,0x2d,0x04,0x2a,0x24,0x1d,0x1a,0x42,0x52,0x38,0x03,0x14,0x3d,0x24,0x1a,0x14,0x3d,0x3d,0x14,0x1a,0x24,0x04,0x2a,0x47,0x06,0x0c,0x99,0x2f,0x19,0x4a,0x2a, +0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x17,0x39,0x11,0x39,0x11,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x17,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10, +0xed,0x10,0xed,0x11,0x17,0x39,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x06,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36, +0x36,0x25,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36,0x36,0x35,0x35,0x33,0x01,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x03,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x05,0x12,0xd0,0xa8,0x23,0x72,0x80,0xc7,0x9c,0x4c,0x4a,0x41,0xc6, +0x32,0x7a,0xcb,0x70,0x48,0x6b,0x6c,0x47,0x32,0x64,0x16,0x2b,0x3a,0x19,0x74,0x65,0x73,0x8f,0x86,0x6d,0x50,0x7a,0x5a,0xe5,0x6f,0x80,0x85,0x3d,0x68,0xe7,0x01,0x20,0x0f,0x4c,0x66,0x4d,0x4a,0x67,0x0b,0x2b,0x3f,0xa5,0xfe,0x7f,0x5d,0x42,0x26,0x3e,0x42,0x2f,0x3d,0x7d,0x35,0x2a,0x17,0x1c,0x25,0x31,0xf7,0x1a,0x27,0x27,0x1a,0x1a, +0x26,0x26,0x05,0xd5,0x99,0xbe,0x23,0x3c,0x31,0x4a,0xd9,0xb6,0xb9,0xd4,0x75,0x5e,0x74,0x71,0xc4,0x70,0x6b,0x49,0x49,0x69,0x4c,0x3a,0x16,0x70,0x42,0x4f,0x34,0x3c,0x70,0x56,0x5d,0x70,0x34,0x55,0x89,0x73,0xfa,0xd7,0xa6,0xc8,0x9e,0x6b,0x08,0x35,0x5c,0x49,0x6b,0x71,0x47,0x18,0x1d,0x1c,0x6b,0x4b,0x5e,0xfa,0x87,0x50,0x2c,0x1f, +0x20,0x27,0x03,0xf6,0x21,0x29,0x1c,0x29,0x27,0x1e,0x18,0x30,0xfd,0x83,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x03,0x00,0x78,0xff,0xf2,0x06,0x58,0x06,0xac,0x00,0x4d,0x00,0x58,0x00,0x64,0x00,0xad,0x40,0x0c,0x2a,0x29,0x38,0x89,0x1c,0x0c,0x3e,0x4e,0x16,0x04,0x0e,0x14,0xb8,0x01,0x84,0xb4,0x51,0x31,0x89,0x24,0x57,0xbb, +0x01,0x84,0x00,0x0e,0x00,0x4b,0x01,0x82,0x40,0x26,0x5c,0x62,0x03,0x03,0x5c,0x44,0x29,0x1c,0x51,0x24,0x0e,0x5c,0x5c,0x0e,0x24,0x51,0x1c,0x29,0x06,0x66,0x06,0x89,0x44,0x21,0x34,0x29,0x34,0x2a,0x2a,0x5f,0x2e,0x9b,0x27,0x5f,0x54,0x9b,0x11,0x59,0xb8,0x01,0x7d,0x40,0x11,0x00,0x4e,0x16,0x0c,0x3e,0x04,0x40,0x11,0x03,0x00,0x5f, +0x11,0x00,0x11,0x00,0x40,0x48,0xb8,0x01,0x7d,0xb7,0x5f,0x06,0x18,0x0a,0x99,0x3c,0x40,0x19,0x00,0x3f,0x33,0xed,0x32,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x17,0x39,0x10,0xed,0x10,0xed,0x10,0xd4,0xed,0x12,0x39,0x2f,0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11, +0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x17,0x39,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x05,0x07,0x27, +0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x32,0x36,0x57,0x15,0x2e,0x40, +0x54,0x94,0x54,0x5b,0x40,0x63,0x79,0x5a,0x5b,0x6f,0x5d,0x39,0x62,0x50,0x93,0x59,0x35,0x74,0xd1,0xa0,0x70,0x6f,0x92,0x5d,0xa7,0x01,0x70,0x46,0x8f,0xa7,0x5a,0x3f,0x1d,0x28,0x48,0x5f,0xfb,0xed,0x69,0x84,0xe1,0x82,0x9d,0x6d,0x71,0x98,0x87,0xe1,0x7e,0x76,0xcc,0x78,0x48,0x6b,0x6c,0xf0,0x14,0x25,0x21,0x1a,0x1a,0x25,0xf4,0x1a, +0x27,0x27,0x1a,0x1a,0x26,0x26,0x03,0x50,0x3b,0x30,0x43,0xe3,0x6e,0x71,0xc0,0x6e,0x37,0x6f,0x87,0x62,0x7f,0x7f,0x62,0x87,0x6d,0x39,0x88,0xe6,0x80,0xa4,0xa7,0x7b,0x70,0x38,0x27,0x7e,0x4e,0x58,0x7d,0xbb,0x8b,0x43,0x4f,0x1e,0x2e,0x1d,0x20,0x2f,0x24,0x5d,0xb8,0xfe,0xfe,0xcb,0xaf,0xfe,0xd5,0xaa,0x6a,0x6a,0x94,0x01,0x04,0x9f, +0xa1,0x01,0x3a,0xb2,0x6b,0x49,0x49,0x69,0xfd,0xd9,0x14,0x57,0x17,0x2f,0x35,0x32,0x2a,0x4b,0x02,0x5b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x03,0x00,0x64,0xfd,0xeb,0x05,0x98,0x04,0xa5,0x00,0x2d,0x00,0x37,0x00,0x43,0x00,0x85,0xb3,0x3b,0x1e,0x21,0x40,0xb8,0x01,0x82,0xb2,0x19,0x0f,0x00,0xb8,0x01,0x83,0x40,0x14,0x2e, +0x23,0x2e,0x11,0x89,0x21,0x06,0x89,0x07,0x19,0x2e,0x21,0x07,0x07,0x21,0x2e,0x19,0x04,0x45,0x33,0xb8,0x01,0x83,0x40,0x11,0x28,0x3f,0x9b,0x35,0x25,0x1e,0x16,0x1c,0x23,0x0f,0x25,0x1c,0x25,0x1c,0x25,0x0c,0x38,0xb8,0x01,0x7d,0x40,0x0f,0x07,0x16,0x19,0x30,0x2b,0x2e,0x00,0x00,0x0c,0x2b,0x2b,0x02,0x99,0x0c,0x06,0x00,0x3f,0xed, +0x39,0x2f,0x12,0x39,0x11,0x33,0x11,0x33,0x3f,0xc6,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x39,0x11,0x12,0x39,0x11,0x33,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x01,0x24,0x33,0x32,0x12,0x15,0x11,0x23,0x11,0x34,0x26,0x26,0x23, +0x22,0x06,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0xfc,0x01,0x16,0xc4,0xd3,0xef,0xa8,0x4d,0x82, +0x4b,0x4c,0xee,0x5f,0x39,0x39,0x57,0x74,0x44,0x49,0x68,0x69,0x48,0x3b,0x32,0x17,0x1a,0x22,0x48,0x41,0x57,0x66,0x70,0x4a,0x48,0x5f,0x44,0x29,0x3d,0x1b,0x24,0x26,0x19,0x2c,0x17,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x0f,0x96,0xfe,0xeb,0xf3,0xfb,0x4e,0x04,0xb2,0x66,0xab,0x61,0x4b,0x36,0xa7,0xba,0x55,0xea,0xa3,0x59,0x69, +0x49,0x4b,0x69,0x27,0x34,0x8f,0x37,0xac,0x73,0x22,0x69,0x52,0x4c,0x70,0x3c,0x92,0x5a,0x2a,0x1b,0x1b,0x30,0xfc,0xca,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x04,0x00,0x70,0xfe,0xa4,0x05,0x65,0x04,0xa5,0x00,0x4a,0x00,0x5d,0x00,0x67,0x00,0x73,0x00,0xa6,0xb3,0x0a,0x56,0x14,0x0c,0xb8,0x01,0x82,0x40,0x09,0x5e,0x24, +0x06,0x89,0x5a,0x62,0x8c,0x14,0x3d,0xb8,0x01,0x82,0x40,0x1e,0x6b,0x71,0x37,0x34,0x89,0x44,0x37,0x6b,0x44,0x5e,0x5a,0x14,0x6b,0x44,0x44,0x6b,0x14,0x5a,0x5e,0x05,0x75,0x4b,0x89,0x1d,0x2b,0x9b,0x00,0x00,0x03,0x48,0xb8,0x01,0x80,0xb4,0x31,0x54,0x0a,0x14,0x68,0xb8,0x01,0x7d,0x40,0x1b,0x40,0x5a,0x21,0x6e,0x9b,0x3a,0x56,0x60, +0x14,0x03,0x1a,0x21,0x37,0x3a,0x40,0x3a,0x40,0x3a,0x1a,0x28,0x31,0x06,0x4e,0x99,0x1a,0x19,0x65,0xb8,0x01,0x7d,0xb1,0x0f,0x19,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x12,0x17,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x32,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39, +0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x33,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x01,0x36,0x36,0x33,0x32,0x16,0x11,0x10,0x02,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x06,0x07,0x07,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x25,0x36,0x36,0x35,0x34, +0x26,0x26,0x23,0x22,0x07,0x06,0x07,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x36,0x24,0x33,0x32,0x17,0x36,0x36,0x35,0x35,0x01,0x06,0x06,0x05,0x34,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x36, +0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0xfa,0x1d,0xd2,0x3c,0xa8,0x98,0x19,0x38,0x34,0x5e,0x6b,0x48,0x49,0x6a,0x15,0x5b,0x45,0xbc,0x86,0x8c,0x3e,0x63,0x6e,0xae,0xbf,0x02,0x0d,0x7d,0x54,0x1c,0x3c,0x40,0x56,0xa3,0x22,0x0f,0x14,0x39,0x4a,0x5a,0x36,0x58,0x60,0x39,0x2c,0x0d,0x62,0x3f,0x48,0x6b,0x6c, +0x47,0x74,0xcf,0x7a,0x5c,0xa6,0x66,0x44,0x9c,0xfe,0x62,0x21,0x16,0x1c,0x60,0x60,0x82,0x01,0x21,0x42,0x21,0x2c,0x26,0x31,0xfd,0x99,0xae,0x87,0x03,0xb6,0x47,0x3c,0x26,0x1c,0x1c,0x25,0xfd,0x5f,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x3f,0x1b,0x49,0xee,0xff,0x00,0xfe,0xff,0xfe,0xf8,0x88,0x1b,0x35,0x7e,0x46,0x6c,0x6c,0x51, +0x20,0x26,0x16,0x1e,0x57,0x41,0x2f,0x6a,0x67,0x56,0x95,0x53,0xe5,0x36,0x7a,0x72,0x7d,0x8f,0x3f,0x5a,0x13,0x05,0x03,0x24,0x2a,0x21,0x78,0x7b,0x3a,0x70,0x1b,0x44,0x50,0x6b,0x49,0x49,0x69,0x70,0xc2,0x71,0x71,0xaf,0x5f,0x38,0xfb,0x11,0x1d,0x1f,0x25,0x2e,0x3e,0x68,0x06,0x19,0x7f,0x49,0x42,0xfe,0xf0,0x4d,0x5b,0x46,0x35,0x20, +0x24,0x31,0x19,0x29,0x26,0x02,0xb8,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x02,0x00,0x78,0xff,0xf2,0x06,0xb5,0x04,0xa1,0x00,0x33,0x00,0x3f,0x00,0x64,0x40,0x09,0x02,0x89,0x31,0x00,0x33,0x27,0x89,0x0d,0x1a,0xb8,0x01,0x82,0x40,0x1b,0x37,0x3d,0x14,0x14,0x37,0x21,0x31,0x33,0x0d,0x37,0x37,0x0d,0x33,0x31,0x04,0x41, +0x12,0x89,0x21,0x3a,0x9b,0x14,0x1d,0x17,0x17,0x0f,0x34,0xb8,0x01,0x7d,0x40,0x0c,0x1d,0x19,0x33,0x00,0x24,0x99,0x0f,0x06,0x2e,0x99,0x06,0x19,0x00,0x3f,0xed,0x3f,0xed,0xc4,0x32,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33, +0x10,0xed,0x31,0x30,0x01,0x12,0x11,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x37,0x36,0x35,0x10,0x21,0x22,0x06,0x15,0x10,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x10,0x03,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22, +0x06,0x15,0x14,0x16,0x06,0x13,0xa2,0x70,0xcd,0x84,0x78,0xca,0x6a,0x03,0x0c,0xfe,0xe9,0x88,0x97,0x5e,0x17,0x50,0x30,0x48,0x6b,0x6c,0x47,0x6e,0xba,0x76,0xf3,0xcf,0xcf,0xf6,0x06,0x07,0x91,0x83,0x78,0x8d,0x9c,0xfc,0xa9,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x9f,0xfe,0x8d,0xfe,0xdf,0x9f,0xf6,0x84,0x5f,0xb4,0x7a,0x56,0xcd, +0x22,0x01,0x47,0xc6,0xb2,0xfe,0xf2,0x83,0x27,0x2f,0x6b,0x49,0x49,0x69,0xb0,0x01,0x49,0xa5,0xf4,0x01,0x1d,0xfd,0xdc,0x30,0x6b,0x6c,0x33,0x7a,0x8c,0xbb,0xc8,0x01,0x1a,0x01,0x42,0xfb,0xfe,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x02,0x00,0x78,0x01,0xb4,0x03,0xde,0x05,0x9a,0x00,0x0c,0x00,0x1c,0x00,0x1f,0x40,0x0f, +0x11,0x89,0x09,0x09,0x1e,0x03,0x89,0x19,0x06,0x99,0x15,0x00,0x9b,0x0d,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x02,0x2c,0x79,0x93,0x8d,0x7f, +0x80,0x8a,0x42,0x78,0x50,0x74,0xcb,0x73,0x6d,0xc8,0x7d,0x75,0xcb,0x74,0x6f,0xca,0x05,0x09,0xc9,0x9a,0xa5,0xbc,0xbb,0xa6,0x62,0xa6,0x5b,0x91,0x86,0xe6,0x89,0x92,0xe3,0x7c,0x80,0xe4,0x8d,0x8c,0xe6,0x83,0x00,0x01,0x00,0x64,0xff,0x83,0x03,0x98,0x05,0x9a,0x00,0x1d,0x00,0x38,0x40,0x1c,0x19,0x89,0x0e,0x0d,0x1d,0x00,0x03,0x0d, +0x00,0x00,0x0d,0x03,0x03,0x1f,0x09,0x89,0x11,0x0d,0x0a,0x0e,0x0e,0x15,0x00,0x1d,0x06,0x9b,0x15,0x06,0x00,0x3f,0xed,0x2f,0x33,0x12,0x39,0x2f,0x39,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0xed,0x31,0x30,0x17,0x36,0x00,0x35,0x34,0x02,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35, +0x34,0x36,0x24,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x00,0x07,0xe9,0xfa,0x01,0x0b,0x5d,0x3d,0x35,0xb1,0x60,0x42,0x39,0x9b,0x39,0x51,0xa5,0x01,0x14,0x6f,0x4b,0x78,0x49,0x85,0xfe,0xf0,0xb0,0x19,0xe7,0x01,0xb7,0xba,0x97,0x01,0x33,0x35,0x39,0x18,0x4b,0xb0,0x43,0x4d,0x51,0xe6,0x5f,0x3a,0x78,0x5a,0x88,0xfe,0xed,0x90,0x9b,0xfe, +0xae,0xfe,0x9b,0x9a,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0x00,0x05,0x9a,0x00,0x23,0x00,0x38,0x40,0x1b,0x00,0x23,0x23,0x25,0x0c,0x20,0x0f,0x08,0x08,0x16,0x1c,0x89,0x0f,0x05,0x9b,0x20,0x0a,0x15,0x0a,0x15,0x00,0x12,0x9b,0x19,0x06,0x23,0x00,0x00,0x2f,0x32,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x39,0xed,0x01,0x2f,0xed,0xc4,0x39, +0x2f,0x12,0x39,0x39,0x11,0x39,0x2f,0x33,0x31,0x30,0x05,0x26,0x02,0x26,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x12,0x13,0x03,0x67,0x21,0x4d,0x63,0x85,0x57,0x74,0x5b,0x1b,0x6d,0xb8,0x41,0x41,0x5d,0x79,0x77,0x6a, +0x53,0xf2,0x6d,0x42,0xa3,0xe7,0x6b,0xba,0xd0,0x38,0x61,0x64,0x62,0x88,0x1c,0x7d,0xf0,0x01,0x05,0xa0,0x59,0x36,0x8c,0x3b,0x18,0x54,0xc7,0x48,0x59,0x63,0x90,0x73,0x85,0x90,0x7f,0x98,0x8b,0x5d,0x9f,0x89,0x5d,0x5f,0xfe,0x91,0xfe,0xff,0x00,0x01,0x00,0x78,0xff,0x83,0x03,0xd3,0x05,0x9a,0x00,0x31,0x00,0x64,0x40,0x33,0x1f,0x1e, +0x1e,0x33,0x07,0x18,0x89,0x2b,0x28,0x04,0x00,0x16,0x2b,0x07,0x0e,0x00,0x2b,0x2b,0x00,0x0e,0x03,0x24,0x14,0x89,0x07,0x2e,0x9b,0x02,0x16,0x02,0x21,0x9b,0x26,0x0d,0x11,0x02,0x28,0x1c,0x26,0x1f,0x02,0x26,0x02,0x26,0x11,0x1e,0x1f,0x0a,0x9b,0x11,0x06,0x00,0x3f,0xed,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x11, +0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0xc4,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x39,0x10,0xed,0x11,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x17,0x07, +0x02,0x21,0x22,0x07,0x27,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x01,0x0a,0x8c,0x8f,0x33,0x2e,0x59,0x4a,0x5c,0x69,0x4e,0xec,0x60,0x3c,0x8b,0xee,0x71,0x9c,0xbf,0xb1,0x8e,0x2d,0x63,0x53,0x88,0x5b,0x8d,0xa8,0xfe,0xa1,0x37,0x36,0x37,0x5f,0x69,0x85,0x6c,0x59,0x7c,0x78,0x73,0x43,0x81,0x23,0x03,0x68, +0x36,0x08,0x41,0x67,0x32,0x4b,0x4e,0x7f,0x5b,0x7b,0x77,0x79,0x99,0x84,0x8b,0x92,0x52,0x93,0x59,0x78,0x75,0x37,0x69,0xc4,0x4e,0x01,0x68,0x14,0x81,0x23,0x28,0x2c,0x97,0x46,0x53,0x5e,0x18,0x11,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0x81,0x05,0x9a,0x00,0x22,0x00,0x33,0x40,0x1a,0x1c,0x89,0x04,0x0e,0x02,0x0e,0x20,0x20,0x0e,0x02, +0x03,0x24,0x09,0x89,0x14,0x21,0x9b,0x20,0x20,0x0f,0x04,0x9b,0x18,0x06,0x0e,0x0f,0x00,0x2f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0xed,0x31,0x30,0x01,0x20,0x11,0x34,0x37,0x22,0x0e,0x02,0x15,0x14,0x12,0x12,0x04,0x17,0x07,0x26,0x00,0x00,0x02,0x35,0x34,0x36,0x24,0x33,0x32, +0x17,0x06,0x15,0x14,0x16,0x33,0x37,0x07,0x06,0x04,0x29,0xfe,0x53,0x0e,0x2e,0xa9,0x76,0x1b,0x86,0xfb,0x01,0x1c,0x77,0x30,0x97,0xfe,0xb0,0xfe,0xe9,0x90,0x57,0x01,0x32,0x83,0x8e,0x27,0x13,0x8a,0x91,0x40,0x10,0x2a,0x02,0xa8,0x01,0xc3,0x57,0x50,0x1c,0x23,0x2a,0x45,0x92,0xfe,0xa9,0xfe,0xad,0xf2,0x2b,0x88,0x32,0x01,0x13,0x01, +0x80,0x01,0x7e,0xac,0x6f,0x61,0x58,0x29,0x9f,0x3f,0xb0,0x9e,0x05,0x9d,0x05,0x00,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0xff,0x05,0xae,0x00,0x16,0x00,0x3a,0x40,0x1c,0x04,0x03,0x00,0x89,0x16,0x07,0x14,0x16,0x03,0x16,0x03,0x16,0x18,0x0e,0x8a,0x0d,0x12,0x99,0x07,0x0e,0x09,0x09,0x04,0x00,0x0e,0x07,0x03,0x04,0x00,0x2f,0x33,0x3f, +0x33,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x12,0x12,0x17,0x07,0x26,0x02,0x03,0x06,0x23,0x22,0x26,0x02,0x03,0x37,0x17,0x12,0x16,0x33,0x32,0x37,0x02,0x03,0x03,0x36,0x19,0xee,0xc2,0x4c,0x98,0xe5,0x46,0xa6,0x81,0x73,0x93,0x48,0x03,0xa5,0x08, +0x09,0x69,0x6d,0x3c,0x91,0x3c,0x0b,0x05,0xae,0xfd,0xd5,0xfd,0x09,0x8f,0x7a,0x62,0x01,0x9b,0x01,0x24,0x56,0x9e,0x01,0x57,0x01,0x57,0x14,0x9d,0xfe,0xbf,0xf1,0x4e,0x01,0x2c,0x01,0x41,0x00,0x01,0x00,0x78,0xff,0xf6,0x05,0x17,0x05,0x9a,0x00,0x2c,0x00,0x3f,0x40,0x20,0x17,0x16,0x16,0x1c,0x24,0x89,0x08,0x1c,0x89,0x10,0x08,0x10, +0x08,0x10,0x2e,0x00,0x8a,0x2c,0x1c,0x08,0x28,0x00,0x00,0x13,0x04,0x99,0x28,0x18,0x19,0x9b,0x13,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x2f,0x33,0x31,0x30,0x01,0x12,0x12,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x2e,0x02, +0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x02,0x03,0x01,0x1c,0x0d,0x94,0xef,0x9d,0x39,0x8f,0x5c,0x61,0x61,0x70,0x7f,0x73,0x40,0xdb,0xaf,0x53,0xa0,0x5b,0x4e,0x9a,0x65,0x67,0x7a,0x5f,0x63,0x99,0x7d,0x57,0x35,0x8c,0xee,0x74,0xbe,0xfe,0xe1, +0xb5,0x1f,0x04,0x66,0xfe,0xd1,0xfe,0x33,0xe3,0x5a,0x91,0x52,0x42,0x6d,0x31,0x38,0x3f,0x62,0x7a,0x4e,0x95,0xc0,0x45,0x42,0x73,0x69,0x6c,0x5a,0x3c,0x6a,0x34,0x51,0x4b,0x54,0x68,0x41,0x70,0xdb,0x8f,0xf0,0x01,0xf1,0x01,0x75,0x00,0x01,0x00,0x64,0xff,0xf6,0x05,0x65,0x05,0xae,0x00,0x26,0x00,0x46,0x40,0x12,0x00,0x8b,0x26,0x1b, +0x89,0x0c,0x1f,0x0c,0x07,0x26,0x0c,0x07,0x07,0x0c,0x26,0x03,0x28,0x12,0xb8,0x01,0x84,0x40,0x10,0x13,0x13,0x07,0x12,0x12,0x04,0x0f,0x9b,0x17,0x06,0x21,0x99,0x04,0x18,0x00,0x07,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x39,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x31,0x30, +0x01,0x0a,0x02,0x23,0x22,0x26,0x27,0x36,0x37,0x36,0x12,0x35,0x34,0x26,0x23,0x22,0x02,0x03,0x27,0x12,0x12,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x02,0x07,0x16,0x33,0x32,0x36,0x12,0x12,0x13,0x05,0x65,0x07,0x72,0xf7,0xd9,0x71,0x98,0x45,0x0a,0x19,0x89,0x6d,0x67,0x6b,0x79,0x90,0x1b,0x8d,0x1c,0x68,0xb7,0x93,0x6f,0x9c,0x54, +0x3e,0x73,0x3a,0x34,0x2c,0x83,0xa4,0x61,0x31,0x0a,0x05,0xae,0xfd,0xac,0xfd,0xa6,0xfe,0xf6,0x29,0x2a,0x18,0x2c,0xef,0x01,0x4f,0x8a,0x92,0x81,0xfe,0xe8,0xfe,0xbd,0x2f,0x01,0x1b,0x01,0x19,0x89,0x65,0xb1,0x68,0x69,0xfe,0xf8,0xfe,0xe9,0x5c,0x10,0x77,0x01,0x01,0x01,0xc4,0x01,0xd7,0x00,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0x5a, +0x05,0xae,0x00,0x15,0x00,0x2f,0x40,0x15,0x0c,0x0d,0x00,0x15,0x0f,0x08,0x0d,0x15,0x0d,0x15,0x17,0x08,0x0f,0x08,0x07,0x07,0x0d,0x0c,0x07,0x15,0x00,0x00,0x2f,0x32,0x3f,0x33,0x39,0x2f,0x33,0x33,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x05,0x26,0x02,0x26,0x26,0x23,0x22,0x07,0x27,0x3e,0x02, +0x37,0x17,0x04,0x07,0x36,0x33,0x32,0x04,0x12,0x17,0x03,0xc1,0x12,0x80,0xa2,0xb4,0x5b,0x83,0x60,0x23,0x2b,0x9f,0xda,0x63,0x6a,0xfe,0xeb,0x87,0x38,0x3e,0x89,0x01,0x1b,0xda,0x19,0x7d,0x81,0x01,0x4c,0xf6,0x85,0x39,0x7e,0x67,0xef,0xf2,0x56,0x64,0xff,0xf6,0x07,0xfe,0xfe,0x43,0xdb,0x00,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0x2a, +0x05,0x9a,0x00,0x25,0x00,0x3e,0x40,0x20,0x00,0x25,0x0e,0x89,0x16,0x09,0x89,0x1c,0x25,0x16,0x1c,0x11,0x11,0x1c,0x16,0x25,0x04,0x27,0x23,0x89,0x02,0x11,0x0e,0x06,0x12,0x12,0x00,0x1c,0x9b,0x06,0x06,0x00,0x00,0x2f,0x3f,0xec,0x12,0x39,0x2f,0x12,0x39,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed, +0x11,0x33,0x31,0x30,0x17,0x26,0x35,0x10,0x12,0x00,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x2e,0x02,0x35,0x34,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x02,0x15,0x14,0x17,0xa3,0x2b,0xce,0x01,0x45,0xbc,0x66,0x6c,0x73,0x4b,0x28,0x85,0x72,0x21,0x7a,0xaa,0x5c,0x36,0x3d,0x3a,0x39,0x1e,0x2b, +0x88,0xeb,0x91,0x2e,0x7d,0x95,0xc0,0x01,0x31,0x02,0x4d,0x01,0x44,0x4d,0x45,0x88,0x6b,0x46,0x33,0x1a,0x41,0x54,0x0f,0x91,0x12,0x54,0x74,0x3d,0x28,0x56,0x3b,0x38,0x5c,0x2d,0x19,0x12,0xfe,0xda,0xfd,0xf6,0xfc,0xc5,0x78,0x00,0x00,0x02,0x00,0x80,0xff,0xf1,0x04,0x01,0x03,0x6e,0x00,0x0f,0x00,0x1b,0x00,0x21,0x40,0x0c,0x00,0x8b, +0x10,0x10,0x1d,0x16,0x8b,0x08,0x13,0x9b,0x0c,0x19,0xb9,0x01,0x7f,0x00,0x04,0x00,0x2f,0xed,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x01,0x78,0xd2,0x78,0x78,0xd0, +0x77,0x79,0xd0,0x76,0x79,0xd0,0x79,0x97,0xaf,0x7c,0x7c,0xab,0xad,0x7a,0x7e,0xad,0x01,0xaf,0x76,0xce,0x7a,0x79,0xd0,0x75,0x7a,0xd1,0x74,0x75,0xd0,0x7a,0x80,0xb0,0xae,0x82,0x81,0xae,0xb4,0x00,0x00,0x01,0x00,0x7f,0xff,0xf1,0x03,0xda,0x03,0x6e,0x00,0x1b,0x00,0x34,0x40,0x12,0x1b,0x0f,0x0f,0x00,0x0e,0x07,0x8b,0x15,0x00,0x1b, +0x0e,0x0f,0x1b,0x0f,0x1b,0x0f,0x03,0x12,0xb8,0x01,0x7f,0xb3,0x0b,0x18,0x9b,0x03,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0xc4,0x32,0x32,0x11,0x33,0x31,0x30,0x13,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26, +0x23,0x22,0x06,0x07,0x80,0x3d,0xe0,0x84,0x79,0xcb,0x75,0x7c,0xd1,0x76,0x85,0xda,0x39,0x89,0x26,0x88,0x59,0x84,0xb0,0xac,0x7e,0x5c,0x93,0x24,0x02,0x68,0x7a,0x8c,0x7a,0xd0,0x75,0x73,0xd1,0x7a,0x91,0x7b,0x37,0x54,0x60,0xab,0x7c,0x7f,0xb9,0x65,0x58,0x00,0x00,0x01,0x00,0x3a,0xfd,0xfe,0x03,0xc2,0x03,0x64,0x00,0x12,0x00,0x24, +0x40,0x0d,0x00,0x8b,0x10,0x10,0x14,0x09,0x8b,0x08,0x08,0x08,0x04,0x11,0x0d,0xb9,0x01,0x7f,0x00,0x04,0x00,0x2f,0xed,0x2f,0x12,0x39,0x2f,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x33,0x14,0x16,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xc2,0x70,0xc5,0x85,0x92,0xcf,0x6d,0x98, +0x4d,0x8d,0x5c,0x88,0x9b,0x97,0x0d,0x91,0xef,0x75,0x6f,0xc7,0x82,0x52,0x8a,0x4d,0xc8,0xb1,0x03,0x5e,0x00,0x01,0x00,0x7f,0xfd,0xfe,0x03,0xda,0x03,0x6e,0x00,0x1f,0x00,0x47,0x40,0x1b,0x00,0xa8,0x1f,0x1f,0x21,0x1e,0x0a,0x10,0x04,0x04,0x11,0x03,0x18,0x8b,0x0a,0x11,0x10,0x03,0x1e,0x04,0x1c,0x10,0x04,0x10,0x04,0x14,0x07,0xb8, +0x01,0x7f,0xb4,0x1c,0x0d,0x9b,0x14,0x00,0x00,0x2f,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x32,0x11,0x33,0x01,0x2f,0xed,0xc4,0x32,0x32,0x11,0x33,0x11,0x39,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x01,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16, +0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x27,0x01,0x03,0x0f,0xfd,0xcb,0x2d,0x2e,0x89,0x26,0x88,0x59,0x83,0xb1,0xab,0x7f,0x5c,0x93,0x24,0x86,0x3d,0xe0,0x84,0x79,0xcc,0x74,0x7c,0xd1,0x76,0x05,0x05,0x01,0xc2,0xfd,0xfe,0x02,0x7d,0x32,0x54,0x38,0x54,0x60,0xa8,0x7e,0x80,0xb4,0x65,0x58,0x46,0x7a,0x8c,0x78,0xcd,0x75,0x73,0xd1,0x7a, +0x01,0xfe,0x07,0x00,0x00,0x01,0x00,0x80,0xfd,0xfe,0x03,0xdb,0x03,0x6e,0x00,0x1f,0x00,0x45,0x40,0x1d,0x0f,0x1b,0x1b,0x0e,0x01,0x1c,0x1c,0x07,0x21,0x1f,0x89,0x00,0x15,0x8b,0x07,0x1c,0x1b,0x0e,0x0f,0x01,0x1b,0x0f,0x1b,0x0f,0x03,0x12,0x9b,0x0b,0x18,0xb8,0x01,0x7f,0xb1,0x03,0x00,0x00,0x2f,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39, +0x2f,0x2f,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0xd4,0xed,0x11,0x12,0x39,0x2f,0x39,0x33,0x33,0x11,0x33,0x31,0x30,0x13,0x01,0x07,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x07,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x07,0x01,0x9f,0x01,0xb5,0x0b,0x06,0x75,0xd2,0x7c,0x74, +0xcb,0x7a,0x84,0xdd,0x40,0x86,0x25,0x93,0x5b,0x7f,0xab,0xb2,0x82,0x59,0x88,0x26,0x89,0x2a,0x32,0xfd,0xe0,0xfd,0xfe,0x01,0xf9,0x01,0x7a,0xd0,0x74,0x74,0xcd,0x79,0x8b,0x7b,0x46,0x58,0x65,0xb3,0x81,0x7e,0xa8,0x60,0x54,0x38,0x50,0x36,0xfd,0x83,0x00,0x02,0x00,0x80,0xfd,0xfe,0x04,0x08,0x03,0x6e,0x00,0x27,0x00,0x33,0x00,0x5c, +0xb4,0x14,0x8b,0x24,0x02,0x05,0xbb,0x01,0x83,0x00,0x2e,0x00,0x28,0x01,0x83,0x40,0x0d,0x0b,0x24,0x2e,0x0b,0x0b,0x2e,0x24,0x03,0x35,0x1d,0x8b,0x1c,0x31,0xbb,0x01,0x7e,0x00,0x02,0x00,0x2b,0x01,0x7e,0x40,0x0a,0x08,0x02,0x08,0x1c,0x1c,0x08,0x02,0x03,0x0f,0x21,0xb8,0x01,0x7f,0xb3,0x18,0x00,0x9b,0x0f,0x00,0x2f,0xed,0x2f,0xed, +0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x33,0x14,0x16,0x16,0x33,0x32,0x36, +0x35,0x11,0x34,0x26,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x4d,0x7a,0x52,0x55,0x73,0x82,0x61,0x5f,0x83,0x75,0xd3,0x81,0x86,0xc5,0x70,0x70,0xc6,0x85,0x91,0xcf,0x6d,0x98,0x4d,0x8d,0x5b,0x89,0x9b,0x99,0xfe,0x2b,0x3c,0x28,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x02,0xdf,0x4e,0x0a,0x81,0x56,0x5b,0x87,0x84, +0x5d,0x7b,0xce,0x76,0x76,0xee,0x91,0xfe,0x7a,0x90,0xef,0x76,0x6e,0xc8,0x82,0x56,0x86,0x4d,0xc8,0xb1,0x01,0x6a,0xb0,0xbf,0xfe,0xd2,0x28,0x3b,0x3c,0x27,0x29,0x3b,0x3b,0x00,0x00,0x02,0x00,0x80,0xff,0xf1,0x04,0x08,0x05,0xe9,0x00,0x2f,0x00,0x3b,0x00,0x6f,0xb9,0x00,0x30,0x01,0x83,0xb7,0x00,0x0b,0x8b,0x28,0x1a,0x8b,0x1b,0x06, +0xb8,0x01,0x83,0x40,0x11,0x36,0x08,0x36,0x00,0x28,0x1b,0x36,0x36,0x1b,0x28,0x00,0x04,0x3d,0x23,0x8b,0x12,0x33,0xb8,0x01,0x7e,0x40,0x18,0x2d,0x08,0x2d,0x39,0x9b,0x03,0x2d,0x03,0x2f,0x1b,0x01,0x1b,0x30,0x2d,0x01,0x1b,0x03,0x2d,0x03,0x0e,0x1f,0x9b,0x17,0x25,0xb9,0x01,0x7f,0x00,0x0e,0x00,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39, +0x5d,0x2f,0x5d,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x12,0x15,0x23,0x34,0x26,0x26, +0x23,0x22,0x06,0x15,0x11,0x10,0x21,0x32,0x36,0x35,0x34,0x26,0x27,0x07,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x0f,0x86,0x5c,0x5e,0x85,0x38,0x2a,0x35,0xfb,0xc6,0x8a,0xc6,0x6a,0x73,0xc5,0x82,0xd9,0xf5,0x98,0x4d,0x8d,0x5c,0x88,0x9b,0x01,0x23,0x94,0x96,0x3a,0x25,0x0a,0x0b,0x5e,0x83, +0x7f,0x3c,0x27,0x29,0x3b,0x3b,0x29,0x28,0x3b,0x02,0x7c,0x60,0x84,0x85,0x5e,0x52,0x43,0x1d,0x49,0x37,0x9f,0xbb,0x6a,0xd7,0x8c,0x02,0x54,0x8a,0xdf,0x6e,0xfe,0xf0,0xdb,0x60,0xa0,0x5c,0xbd,0xb2,0xfd,0xe6,0xfe,0xaf,0x61,0x5b,0x23,0x2d,0x10,0x01,0x83,0x60,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x3c,0x00,0x00,0x01,0x00,0x80,0xfe,0x05, +0x04,0x30,0x03,0x6e,0x00,0x32,0x00,0x43,0xb9,0x00,0x00,0x01,0x84,0x40,0x0c,0x32,0x23,0x8b,0x10,0x32,0x10,0x32,0x10,0x34,0x19,0x18,0x2a,0xb8,0x01,0x84,0x40,0x0b,0x08,0x18,0x19,0x32,0x19,0x32,0x04,0x13,0x9b,0x1f,0x2d,0xb9,0x01,0x7f,0x00,0x04,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x33,0x01,0x2f,0xed,0xc6,0x32, +0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x0e,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x04,0x30,0x07,0x40,0x6d, +0x4b,0x50,0x68,0x3a,0x1d,0x35,0x45,0x44,0x34,0x1c,0xaf,0x7c,0x7c,0xab,0x2d,0x7b,0x4a,0x79,0xd0,0x76,0x7a,0xd1,0x77,0x1e,0x32,0x50,0x58,0x35,0x2c,0x28,0x13,0x1d,0x1d,0x15,0x15,0xf9,0x48,0x74,0x46,0x32,0x5d,0x3b,0x3d,0x62,0x6e,0x6b,0x69,0x6c,0x69,0x34,0x7f,0xa7,0xae,0x82,0x58,0x4a,0x52,0x72,0x82,0x7a,0xd1,0x74,0x72,0xca, +0x79,0x34,0x75,0x68,0x7e,0x88,0x88,0x37,0x2a,0x2c,0x09,0x19,0x23,0x48,0x00,0x02,0x00,0x80,0xff,0xf0,0x04,0x01,0x03,0x6e,0x00,0x1d,0x00,0x24,0x00,0x47,0xb5,0x1a,0x8b,0x03,0x1d,0x00,0x0c,0xb8,0x01,0x83,0x40,0x0f,0x1e,0x03,0x00,0x1e,0x1e,0x00,0x03,0x03,0x26,0x21,0x8b,0x12,0x00,0x1d,0x21,0xb8,0x01,0x7d,0xb6,0x09,0x09,0x0f, +0x06,0x9b,0x16,0x23,0xb9,0x01,0x80,0x00,0x0f,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x2f,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x07,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15, +0x14,0x06,0x07,0x25,0x34,0x26,0x27,0x16,0x17,0x36,0x02,0xa5,0x53,0x72,0xaf,0x7c,0x64,0xa0,0x1a,0x7c,0x9d,0x6e,0x51,0x77,0x84,0x79,0xd1,0x75,0x79,0xd0,0x79,0x9d,0x76,0xfe,0xc5,0x57,0x42,0x0a,0x74,0x1b,0x6f,0x1d,0xb5,0x6e,0x80,0xb0,0x76,0x5e,0x09,0x9b,0x6f,0x4d,0x9d,0x1d,0x45,0xf8,0x92,0x72,0xc6,0x76,0x75,0xd0,0x7a,0x92, +0xfe,0x2f,0xfd,0x45,0x66,0x04,0x91,0x7a,0x2e,0x00,0x00,0x02,0x00,0x80,0xfd,0xfe,0x04,0x08,0x03,0x6e,0x00,0x30,0x00,0x3c,0x00,0x72,0x40,0x09,0x05,0x29,0x16,0x8b,0x15,0x26,0x8b,0x08,0x2b,0xbb,0x01,0x83,0x00,0x37,0x00,0x31,0x01,0x83,0x40,0x10,0x00,0x29,0x15,0x08,0x37,0x00,0x00,0x37,0x08,0x15,0x04,0x3e,0x0e,0x8b,0x1e,0x34, +0xb8,0x01,0x7e,0x40,0x19,0x2e,0x3a,0x9b,0x03,0x29,0x03,0x20,0x15,0x30,0x15,0x40,0x15,0x03,0x15,0x2e,0x03,0x03,0x2e,0x15,0x03,0x1a,0x0b,0x9b,0x23,0x11,0xb9,0x01,0x7f,0x00,0x1a,0x00,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x39, +0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x33,0x31,0x30,0x25,0x34,0x36,0x33,0x33,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x20,0x11,0x11,0x14,0x16,0x33,0x32,0x36,0x36,0x35,0x33,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x37,0x14,0x16, +0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x0f,0x83,0x5e,0x0b,0x0a,0x25,0x3a,0x97,0x93,0xfe,0xdd,0x98,0x8b,0x5b,0x93,0x48,0x98,0x6e,0xcf,0x91,0x83,0xc4,0x73,0x6a,0xc7,0x89,0xc6,0xfb,0x35,0x2a,0x38,0x82,0x61,0x5c,0x86,0x7f,0x3b,0x28,0x29,0x3b,0x3c,0x28,0x28,0x3b,0xe3,0x5e,0x83,0x01,0x10,0x2d,0x23,0x5c,0x60,0xfe, +0xaf,0xfe,0x6e,0xb1,0xbe,0x4c,0x83,0x5a,0x82,0xc7,0x6f,0x6e,0xe0,0x89,0x01,0xcc,0x8c,0xd8,0x69,0xbc,0x9e,0x37,0x49,0x1d,0x43,0x52,0x5c,0x87,0x84,0x5e,0x29,0x3b,0x3b,0x29,0x28,0x3b,0x3c,0x00,0x00,0x02,0x00,0x80,0xff,0xf1,0x04,0x08,0x05,0xe9,0x00,0x0f,0x00,0x1a,0x00,0x23,0x40,0x0d,0x00,0x8b,0x1a,0x1a,0x1c,0x16,0x8b,0x07, +0x12,0x9b,0x0c,0x07,0x18,0xb8,0x01,0x7f,0xb1,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x02,0x23,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x07,0x10,0x21,0x22,0x06,0x15,0x11,0x10,0x21,0x20,0x11,0x04,0x08,0xf6,0xd8,0x8a,0xc6,0x6a,0x74,0xc7,0x83,0xdb,0xef, +0x97,0xfe,0xc9,0x88,0x9b,0x01,0x23,0x01,0x37,0x01,0xc8,0xd6,0xfe,0xff,0x6a,0xd7,0x8c,0x02,0x54,0x85,0xe3,0x6f,0xf2,0xdc,0x0d,0x01,0x4c,0xbd,0xb2,0xfd,0xe6,0xfe,0xaf,0x01,0x6f,0x00,0x00,0x01,0x00,0x66,0xff,0xe7,0x03,0xa8,0x05,0xe8,0x00,0x09,0x00,0x2d,0x40,0x15,0x03,0x8b,0x07,0x05,0x07,0x05,0x0b,0x00,0x05,0x04,0x00,0x09, +0x04,0x09,0x04,0x09,0x01,0x07,0x18,0x01,0x06,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x13,0x25,0x33,0x11,0x25,0x17,0x05,0x23,0x11,0x05,0x66,0x01,0xd1,0x1c,0x01,0x2b,0x2a,0xfe,0x30,0x1c,0xfe,0xd4,0x05,0x16,0xd2,0xfa,0xcb,0x86,0x80,0xd2,0x05,0x35,0x83, +0x00,0x01,0x00,0x80,0x00,0x00,0x03,0xd2,0x05,0xe9,0x00,0x22,0x00,0x32,0xb7,0x08,0x8b,0x1b,0x1b,0x24,0x22,0x03,0x11,0xb8,0x01,0x84,0x40,0x0e,0x00,0x12,0x03,0x00,0x00,0x01,0x12,0x18,0x1e,0x9b,0x05,0x05,0x01,0x06,0x00,0x3f,0x33,0x2f,0xed,0x3f,0x12,0x39,0x2f,0x39,0x01,0x2f,0x33,0xed,0x32,0x32,0x12,0x39,0x2f,0xed,0x31,0x30, +0x13,0x11,0x33,0x15,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x36,0x36,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x15,0x80,0x97,0x73,0x87,0xca,0xf7,0x51,0x92,0xaa,0x80,0x66,0x37,0x94,0x43,0x77,0x9d,0x91,0x7d,0x42,0xaa,0x80,0x4e,0x83,0x29,0x04,0x12,0x01,0xd1,0x45,0x4b,0xed, +0xbd,0x57,0x9f,0x9d,0x85,0x65,0x66,0x5d,0x2e,0xd1,0xe0,0x42,0x7b,0x7d,0x7b,0x71,0x81,0x7a,0x3e,0x7b,0xa0,0x4e,0x3c,0xbe,0x00,0x01,0x00,0x66,0x00,0x00,0x04,0x34,0x05,0xe3,0x00,0x12,0x00,0x2c,0xb6,0x0a,0x8b,0x0b,0x0b,0x14,0x03,0x12,0xbb,0x01,0x85,0x00,0x00,0x00,0x0f,0x01,0x7f,0xb7,0x03,0x05,0x05,0x01,0x06,0x0b,0x00,0x18, +0x00,0x3f,0x32,0x3f,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x01,0x33,0x03,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x07,0x03,0x66,0x01,0xeb,0xa7,0xd1,0x28,0x2c,0x7d,0xcb,0x71,0x97,0xac,0x7e,0x44,0x3f,0xe9,0x05,0xe3,0xfd,0x83,0x08,0x6a,0xbd,0x70,0xfe,0x29,0x01, +0xa7,0x7f,0xb9,0x1e,0xfd,0x3f,0x00,0x01,0x00,0x66,0xff,0xe7,0x04,0x8b,0x05,0xe3,0x00,0x09,0x00,0x37,0x40,0x09,0x03,0x8b,0x07,0x05,0x07,0x05,0x07,0x0b,0x09,0xb8,0x01,0x85,0x40,0x0f,0x00,0x05,0x08,0x01,0x03,0x07,0x04,0x04,0x01,0x07,0x18,0x01,0x06,0x00,0x18,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x33,0x01, +0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x33,0x01,0x33,0x11,0x25,0x17,0x05,0x23,0x11,0x01,0x66,0x02,0x1d,0xb3,0x01,0x2c,0x29,0xfe,0x30,0x1c,0xfe,0x68,0x05,0xe3,0xfa,0xcf,0x87,0x80,0xd2,0x04,0x7a,0xfb,0x9f,0x00,0x02,0x00,0x80,0xff,0xf1,0x04,0x59,0x05,0xe3,0x00,0x11,0x00,0x1d,0x00,0x35,0x40,0x16,0x00,0x04, +0x8b,0x0f,0x1c,0x02,0x1c,0x02,0x1f,0x15,0x8b,0x0b,0x03,0x12,0x9b,0x00,0x0e,0x0e,0x08,0x10,0x06,0x18,0xb8,0x01,0x7f,0xb1,0x08,0x19,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x33,0x15,0x23,0x11,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33, +0x21,0x11,0x33,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x36,0x35,0x11,0x03,0xdf,0x7a,0x7a,0x67,0xbb,0x7a,0xd0,0xf3,0xf1,0xc9,0x01,0x0e,0x97,0xfe,0x62,0x8d,0x9d,0xa6,0x8e,0x40,0x78,0x45,0x03,0x6e,0x8f,0xfe,0xa0,0x7c,0xb3,0x5f,0xee,0xd0,0xcb,0xf4,0x02,0x75,0xfc,0xfc,0xa4,0x94,0x8a,0x9d,0x3a,0x64,0x3f,0x01,0x82,0x00, +0x00,0x02,0x00,0x80,0x00,0x00,0x04,0x59,0x05,0xe9,0x00,0x11,0x00,0x1d,0x00,0x36,0x40,0x1b,0x10,0x02,0x8b,0x03,0x1d,0x03,0x00,0x03,0x00,0x03,0x1f,0x19,0x8b,0x08,0x10,0x1c,0x99,0x01,0x05,0x05,0x03,0x16,0x9b,0x0b,0x07,0x03,0x18,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11, +0x33,0x10,0xed,0x32,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x33,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x04,0x59,0x7a,0x97,0xfe,0xf2,0xca,0xf0,0xf3,0xd0,0x79,0xbc,0x67,0x7a,0xfe,0xef,0x46,0x77,0x40,0x8e,0xa6,0x9d,0x8d,0x01,0x07,0x02,0x6c,0xfd, +0x94,0x02,0x6c,0xf4,0xcb,0xcf,0xef,0x5f,0xb3,0x7c,0xfe,0xa1,0x01,0x81,0x3f,0x65,0x39,0x9c,0x8a,0x96,0xa2,0x00,0x00,0x01,0x00,0x67,0x00,0x00,0x03,0x41,0x05,0xe3,0x00,0x07,0x00,0x2a,0x40,0x0d,0x02,0x89,0x05,0x03,0x01,0x05,0x05,0x01,0x03,0x03,0x09,0x00,0x02,0xb8,0x01,0x7f,0xb5,0x05,0x18,0x07,0x9b,0x00,0x06,0x00,0x3f,0xed, +0x3f,0xed,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x31,0x30,0x13,0x21,0x01,0x21,0x15,0x21,0x01,0x21,0x67,0x02,0xa8,0xfe,0x4f,0x01,0xe3,0xfd,0x50,0x01,0xaa,0xfe,0x2c,0x05,0xe3,0xfa,0xac,0x8f,0x05,0x54,0x00,0x02,0x00,0x80,0xff,0xf1,0x04,0x01,0x05,0xfe,0x00,0x28,0x00,0x34,0x00,0x59,0x40,0x29,0x1a,0x1b,0x00,0x27, +0x03,0x09,0x8b,0x29,0x24,0x29,0x14,0x11,0x1b,0x06,0x29,0x1b,0x27,0x29,0x29,0x27,0x1b,0x03,0x36,0x1e,0x2f,0x8b,0x17,0x11,0x27,0x1b,0x1b,0x00,0x1a,0x14,0x06,0x0d,0x2c,0x9b,0x21,0x06,0x32,0xb8,0x01,0x7f,0xb1,0x0d,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0xc4,0x32,0x32,0x11,0x33,0x01,0x2f,0x33,0xed,0x32,0x12,0x17,0x39, +0x2f,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x13,0x34,0x26,0x23, +0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x5b,0x4c,0x5a,0x6e,0x60,0x5f,0x6f,0x78,0xd2,0x78,0x78,0xd0,0x77,0x6a,0x63,0x5e,0x6f,0x5d,0x4d,0x63,0x36,0x3f,0xad,0x7a,0x7e,0xad,0x40,0x39,0x66,0x13,0xaf,0x7c,0x7c,0xab,0xad,0x7a,0x7e,0xad,0x05,0xfb,0x3c,0xb3,0x6d,0x6f,0xca,0x3e,0x3d,0xc7,0x75,0x76,0xce,0x7a,0x79,0xd0,0x75, +0x72,0xc7,0x40,0x3d,0xc8,0x72,0x6e,0xb4,0x3d,0x6a,0x2a,0x7e,0x4d,0x81,0xae,0xb4,0x7b,0x4b,0x80,0x2b,0x66,0xfb,0xb4,0x80,0xb0,0xae,0x82,0x81,0xae,0xb4,0x00,0x02,0x00,0x80,0xff,0xdc,0x04,0x01,0x05,0xe9,0x00,0x27,0x00,0x33,0x00,0x5a,0x40,0x2e,0x0d,0x0c,0x27,0x00,0x1e,0x24,0x8b,0x03,0x28,0x03,0x13,0x10,0x0c,0x21,0x03,0x0c, +0x00,0x03,0x03,0x00,0x0c,0x03,0x35,0x2e,0x09,0x8b,0x16,0x10,0x31,0x99,0x13,0x21,0x1a,0x06,0x06,0x0d,0x2b,0x9b,0x1a,0x07,0x00,0x0c,0x0c,0x27,0x0d,0x19,0x00,0x3f,0x33,0x33,0x11,0x33,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0xed,0x01,0x2f,0x33,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0x11,0x33,0x10, +0xed,0x32,0x11,0x33,0x11,0x33,0x31,0x30,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x07,0x13,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x02,0xf1,0x39,0x40, +0xae,0x7d,0x7a,0xad,0x3f,0x36,0x63,0x4d,0x5d,0x6f,0x5e,0x61,0x6c,0x78,0xd0,0x77,0x78,0xd2,0x78,0x6f,0x5f,0x61,0x6d,0x5b,0x4d,0x11,0xae,0x7d,0x7a,0xad,0xa9,0x7e,0x7e,0xad,0x46,0x2a,0x80,0x4b,0x7c,0xb3,0xae,0x81,0x4d,0x7e,0x29,0x6b,0x3d,0xb4,0x6e,0x71,0xc9,0x3d,0x3e,0xca,0x71,0x76,0xd0,0x78,0x7a,0xce,0x76,0x75,0xc6,0x3e, +0x3f,0xc9,0x6f,0x6d,0xb3,0x3e,0x04,0x4e,0x7c,0xb3,0xae,0x81,0x81,0xae,0xb1,0x00,0x00,0x02,0x00,0xa0,0xff,0xec,0x04,0x14,0x05,0xa3,0x00,0x0b,0x00,0x17,0x00,0x26,0xb9,0x00,0x00,0x01,0x85,0x40,0x0b,0x0c,0x0c,0x19,0x12,0x8a,0x06,0x0f,0x9b,0x09,0x06,0x15,0xb8,0x01,0x7f,0xb1,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed, +0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x03,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x04,0x14,0xd6,0xe5,0xe0,0xd9,0xda,0xdf,0xe0,0xdb,0xa0,0x8c,0x8f,0x8a,0x8d,0x88,0x8f,0x92,0x89,0x02,0xc8,0xfe,0x7a,0xfe,0xaa,0x01,0x58,0x01,0x84,0x01,0x78,0x01,0x63,0xfe, +0xa0,0xfe,0x85,0x01,0x3c,0x01,0x13,0xfe,0xe1,0xfe,0xd0,0xfe,0xc9,0xfe,0xe7,0x01,0x11,0x00,0x00,0x01,0x00,0x8c,0xff,0xec,0x04,0x4d,0x05,0xa3,0x00,0x2c,0x00,0x56,0xb9,0x00,0x16,0x01,0x85,0x40,0x0e,0x2b,0x09,0x03,0x23,0x09,0x03,0x1d,0x1d,0x03,0x09,0x23,0x04,0x2e,0x28,0xbb,0x01,0x85,0x00,0x0f,0x00,0x2b,0x01,0x7f,0x40,0x15, +0x0c,0x1c,0x1d,0x00,0x0c,0x06,0x0c,0x1d,0x1d,0x0c,0x06,0x03,0x13,0x1f,0x99,0x1a,0x19,0x25,0x9b,0x13,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0xed,0x31,0x30,0x01,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x00,0x11,0x14,0x02,0x04,0x23,0x22,0x27,0x27,0x16,0x33,0x32,0x36,0x12,0x35,0x10,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x02,0x38,0x29,0x30,0x4c,0x34,0x3e,0x4c,0x94,0x6f,0x9e,0xbc,0x77,0xd6,0x84,0xeb,0x01,0x05,0xaf,0xfe,0xcf,0xc4,0x48,0x50,0x1b,0x5f,0x68,0x93,0xdc, +0x81,0xfe,0xa4,0x88,0x9d,0x68,0x54,0x3a,0x02,0xf2,0x0b,0x42,0x27,0x32,0x4e,0x5a,0x3f,0x68,0x95,0xd9,0xb3,0x7b,0xd3,0x79,0xfe,0xa1,0xfe,0xb6,0xe2,0xfe,0x95,0xc1,0x0a,0xa5,0x19,0x92,0x01,0x1e,0xb6,0x02,0x2f,0xbd,0x90,0x66,0x88,0x00,0x00,0x02,0x00,0x64,0xff,0xec,0x05,0x7f,0x06,0x3b,0x00,0x4c,0x00,0x55,0x00,0x85,0xb5,0x31, +0x1a,0x1a,0x13,0x21,0x4d,0xbe,0x01,0x85,0x00,0x2b,0x00,0x25,0x01,0x84,0x00,0x52,0x00,0x38,0x01,0x85,0x40,0x0b,0x13,0x2b,0x52,0x13,0x13,0x52,0x2b,0x03,0x57,0x4c,0x04,0xb8,0x01,0x85,0xb4,0x48,0x40,0x9b,0x0b,0x50,0xb8,0x01,0x7e,0x40,0x13,0x28,0x55,0x9b,0x21,0x1a,0x9b,0x31,0x0b,0x28,0x21,0x31,0x31,0x21,0x28,0x0b,0x04,0x2f, +0x10,0x07,0xb8,0x01,0x7f,0x40,0x0b,0x3b,0x45,0x19,0x16,0x1d,0x9b,0x4c,0x00,0x34,0x2f,0x06,0x00,0x3f,0x33,0xc4,0x32,0xed,0x32,0x3f,0x33,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0xc6,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x11,0x39,0x11, +0x33,0x31,0x30,0x13,0x16,0x16,0x15,0x11,0x14,0x33,0x32,0x36,0x37,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x11,0x34,0x23,0x22,0x06,0x07,0x07,0x27,0x26,0x23,0x22,0x06,0x15,0x15,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x2e,0x02, +0x23,0x22,0x0e,0x02,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x27,0x01,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x94,0x66,0x65,0x57,0x24,0x47,0x3e,0x6c,0x68,0x30,0x5f,0x5a,0x53,0x24,0x20,0x2c,0x62,0x22,0x5a,0x2f,0x23,0x2c,0x5c,0x52,0x26,0x2e,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0x65,0x6d,0x92,0x6a,0x2d,0x83,0x41,0x69,0x76,0x85, +0x59,0x34,0x56,0x54,0x59,0x37,0x36,0x5e,0x5b,0x5f,0x37,0x78,0x77,0x26,0x35,0x02,0x1d,0x22,0x1c,0x37,0x4d,0x28,0x06,0x3b,0x13,0x72,0x6e,0xfb,0xa2,0x72,0x11,0x17,0x28,0x19,0x1e,0x19,0x38,0x20,0x03,0xbd,0x8a,0x46,0x38,0x2a,0x33,0x74,0x55,0x56,0xbd,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59,0x4e,0x01,0xfd,0xa8,0x9b,0x82,0x3a,0x48, +0x9b,0x8b,0xfc,0x21,0x45,0x6d,0x19,0x1e,0x19,0x19,0x1e,0x19,0x67,0x6d,0x04,0x44,0x5b,0x43,0x0f,0xfc,0xd9,0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x00,0x02,0x00,0xa0,0xff,0xec,0x06,0x1e,0x05,0xa3,0x00,0x28,0x00,0x31,0x00,0x5e,0xb9,0x00,0x15,0x01,0x84,0xb2,0x2e,0x22,0x08,0xbb,0x01,0x85,0x00,0x09,0x00,0x28,0x01,0x85,0x40,0x0b, +0x00,0x2e,0x09,0x00,0x00,0x09,0x2e,0x03,0x33,0x11,0x29,0xb8,0x01,0x85,0x40,0x0f,0x1b,0x31,0x9b,0x22,0x1f,0x11,0x11,0x18,0x04,0x0d,0x9b,0x24,0x1f,0x06,0x2c,0xb8,0x01,0x7e,0xb4,0x18,0x19,0x00,0x09,0x18,0x00,0x3f,0x33,0x3f,0xed,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f, +0x2f,0x10,0xed,0x10,0xed,0x39,0x10,0xed,0x31,0x30,0x21,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x32,0x16,0x15,0x11,0x25,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x05,0x7e,0x82,0x62,0x69, +0x82,0xa0,0x82,0x69,0x63,0x81,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0xd4,0xb0,0x64,0xa2,0x35,0x6c,0xcf,0xaf,0xd5,0xfb,0x22,0x22,0x1c,0x37,0x4d,0x28,0x04,0x1e,0x70,0x89,0x8a,0x6f,0xfb,0xe2,0x04,0x1e,0x6f,0x8a,0x8a,0x6f,0xfd,0xc0,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59,0x4e,0x03,0x89,0xb5,0xd2,0x44,0x42,0x86,0xd1,0xb6,0xfb,0xe4, +0xba,0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x00,0x01,0x00,0xa0,0xff,0xec,0x04,0xc4,0x06,0x27,0x00,0x3d,0x00,0x6f,0x40,0x12,0x08,0x89,0x32,0x38,0x8b,0x03,0x2f,0x00,0x32,0x00,0x03,0x03,0x00,0x32,0x03,0x28,0x0b,0x1f,0xb8,0x01,0x85,0xb6,0x1c,0x0b,0x1c,0x0b,0x1c,0x3f,0x28,0xb8,0x01,0x85,0x40,0x14,0x15,0x23,0x19,0x19,0x1d,0x35, +0x0e,0x2f,0x2f,0x12,0x03,0x35,0x3b,0x3b,0x12,0x06,0x9b,0x35,0x06,0x2b,0xb8,0x01,0x7f,0xb4,0x12,0x19,0x0b,0x0c,0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x11,0x33,0x10,0xc4,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10, +0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x33,0x26,0x26,0x23,0x22,0x15,0x14,0x16,0x17,0x07,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x11,0x10,0x00,0x25,0x36,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x06,0x07,0x0e,0x02,0x15,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23, +0x22,0x26,0x03,0x9f,0x51,0x37,0x08,0x57,0x44,0xb6,0xe7,0xf1,0x1a,0xc0,0x64,0x55,0x77,0x78,0x3c,0x95,0xb3,0x01,0x00,0x01,0x1e,0xa9,0x97,0xa0,0x5a,0xac,0xa3,0xa4,0xb7,0x5a,0x6a,0x64,0x2e,0x77,0x7d,0x2d,0x93,0xa6,0xb8,0x9f,0x96,0xb3,0x58,0x44,0x39,0x50,0x02,0x26,0x39,0x4f,0x3b,0x44,0xdc,0x90,0xdd,0x56,0xa0,0x21,0x11,0x12, +0xc2,0x9f,0x01,0x0f,0x01,0x05,0x01,0x2e,0x4e,0x2d,0x61,0x41,0x7b,0x73,0x56,0x81,0x58,0x2b,0x2c,0x82,0xc7,0x8b,0xd6,0x83,0x89,0x0f,0x0f,0x01,0x3d,0xd9,0x93,0xb1,0xc8,0xcb,0xa7,0x4c,0x5e,0x4f,0x00,0x02,0x00,0xa0,0xff,0xec,0x04,0xf8,0x06,0x3b,0x00,0x4e,0x00,0x5a,0x00,0xa2,0xb9,0x00,0x4f,0x01,0x84,0xb4,0x3e,0x46,0x3c,0x3e, +0x44,0xbb,0x01,0x84,0x00,0x55,0x00,0x04,0x01,0x85,0x40,0x1f,0x4a,0x2a,0x89,0x15,0x1b,0x8b,0x24,0x13,0x21,0x15,0x21,0x24,0x24,0x21,0x15,0x03,0x0c,0x2d,0x3e,0x55,0x4a,0x2d,0x00,0x00,0x2d,0x4a,0x55,0x3e,0x05,0x5c,0x0c,0xb8,0x01,0x85,0x40,0x1e,0x37,0x00,0x4e,0x41,0x30,0x13,0x27,0x9b,0x18,0x46,0x3c,0x08,0x13,0x34,0x24,0x1e, +0x08,0x52,0x18,0x41,0x1e,0x18,0x1e,0x18,0x34,0x58,0x9b,0x41,0x06,0x0f,0xb8,0x01,0x7f,0xb4,0x34,0x19,0x2d,0x2e,0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x11,0x39,0x12,0x39,0x11,0x33,0x33,0x10,0xed,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f, +0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x15,0x14,0x06,0x06,0x23,0x06,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x24,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x26,0x26,0x23, +0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x3e,0x02,0x35,0x35,0x34,0x36,0x37,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x04,0xf8,0x37,0x23,0x7d,0xf5,0x8f,0xae,0xaf,0x6a,0x64,0x2e,0x77,0x7d, +0x2d,0xfe,0xc7,0xc5,0x92,0x96,0xb3,0x58,0x44,0x39,0x50,0x51,0x37,0x08,0x57,0x44,0x53,0x63,0xf9,0xdf,0x1a,0xc0,0x64,0x55,0x77,0x78,0x3c,0x95,0xb3,0x43,0x8b,0x72,0x61,0x7a,0x62,0x5f,0x84,0x1b,0x41,0x62,0x38,0x67,0x64,0xfd,0x3f,0x30,0x23,0x24,0x31,0x31,0x24,0x23,0x30,0x05,0xb1,0x10,0x45,0x58,0x53,0x56,0x80,0x47,0x1d,0xbe, +0xaf,0x86,0x83,0x89,0x0f,0x0f,0x01,0x7c,0xf5,0x8b,0xb8,0xcb,0xa7,0x4c,0x5e,0x4f,0x3a,0x39,0x4f,0x3b,0x44,0x60,0x53,0x7a,0xc7,0x3d,0xa0,0x21,0x11,0x12,0xc2,0x9f,0xbf,0x7f,0xa2,0x7d,0x2a,0x43,0x70,0x5f,0x83,0x86,0x5b,0x34,0x33,0x01,0x2e,0x4b,0x25,0x88,0x6f,0x71,0x13,0xfe,0x57,0x23,0x30,0x30,0x23,0x24,0x31,0x31,0x00,0x01, +0x00,0x7b,0xff,0xec,0x04,0x61,0x06,0x3b,0x00,0x3a,0x00,0x76,0xb9,0x00,0x24,0x01,0x85,0xb4,0x0b,0x32,0x89,0x00,0x1e,0xb8,0x01,0x85,0x40,0x11,0x17,0x12,0x13,0x0b,0x00,0x39,0x17,0x13,0x13,0x17,0x39,0x00,0x0b,0x05,0x3c,0x1a,0x05,0xb8,0x01,0x85,0xb3,0x2b,0x13,0x12,0x02,0xb8,0x01,0x7f,0x40,0x0d,0x2e,0x00,0x2e,0x35,0x12,0x2e, +0x35,0x35,0x2e,0x12,0x03,0x20,0x08,0xb8,0x01,0x7f,0x40,0x0a,0x27,0x19,0x1a,0x1b,0x17,0x1e,0x0f,0x9b,0x20,0x06,0x00,0x3f,0xed,0x39,0x39,0xc4,0x32,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0xc6,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed, +0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x12,0x11,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x37,0x36,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x17,0x36,0x33,0x32,0x00,0x11,0x15,0x10,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x02,0x4c,0x16, +0x3a,0x54,0x68,0x9c,0x89,0xb3,0xa9,0xac,0xa5,0x6d,0xba,0x2e,0x65,0x11,0x0c,0x04,0x2f,0x2d,0x2f,0x60,0x6c,0x02,0x70,0x74,0xfc,0x01,0x09,0xff,0xf1,0x84,0xd6,0x77,0xbc,0x9e,0x49,0x77,0x43,0x4c,0x3e,0x35,0x4b,0x30,0x02,0x9d,0x16,0x88,0x66,0x90,0xbd,0x01,0x08,0x01,0x13,0x9e,0xef,0xed,0x63,0x4e,0x72,0x26,0x1b,0x15,0x19,0x2a, +0x3e,0x0c,0x8a,0x13,0x72,0x4b,0x38,0xfe,0xc8,0xfe,0xd0,0xba,0xfe,0xbd,0xfe,0xae,0x79,0xd3,0x7b,0xb3,0xd9,0x44,0x76,0x43,0x3f,0x5a,0x4f,0x31,0x27,0x42,0x00,0x02,0x00,0xa0,0xff,0xec,0x05,0x85,0x06,0x3b,0x00,0x37,0x00,0x40,0x00,0x76,0xb9,0x00,0x1c,0x01,0x84,0xb5,0x3d,0x28,0x11,0x11,0x38,0x2e,0xbb,0x01,0x85,0x00,0x0a,0x00, +0x04,0x01,0x85,0x40,0x0d,0x33,0x3d,0x0a,0x37,0x33,0x33,0x37,0x0a,0x3d,0x04,0x42,0x18,0x38,0xb8,0x01,0x85,0x40,0x15,0x22,0x40,0x9b,0x18,0x11,0x9b,0x28,0x18,0x28,0x18,0x28,0x1f,0x0e,0x14,0x9b,0x37,0x00,0x2a,0x26,0x06,0x3b,0xb8,0x01,0x7e,0xb2,0x1f,0x19,0x30,0xb8,0x01,0x7f,0xb1,0x07,0x19,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33, +0xc6,0x32,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x12,0x39,0x11,0x33,0x10,0xed,0x31,0x30,0x01,0x16,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x26,0x23,0x22,0x06,0x15,0x11,0x1e,0x02,0x15, +0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x27,0x01,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x04,0xba,0x66,0x65,0x85,0x72,0x72,0x7f,0x28,0x30,0x23,0x63,0x52,0x2b,0x5a,0x54,0x26,0x2e,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0x65,0x6d,0x91, +0x6a,0x6c,0x84,0x6a,0x76,0x54,0x27,0x2d,0x29,0x31,0xfc,0xb5,0x22,0x1c,0x37,0x4d,0x28,0x06,0x3b,0x15,0x6e,0x65,0xfb,0x6d,0x64,0x70,0x69,0x5d,0x03,0xdb,0x46,0x44,0x49,0x5f,0x33,0x74,0x55,0x56,0xfd,0x73,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59,0x4e,0x03,0xcd,0xa8,0x9b,0x82,0x82,0x9d,0x89,0xfc,0x67,0x6c,0x39,0x39,0x04,0x2c,0x57, +0x3c,0x08,0xfb,0x09,0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x01,0x00,0xa0,0xff,0xec,0x04,0x8e,0x06,0x27,0x00,0x45,0x00,0x6d,0xb9,0x00,0x00,0x01,0x85,0xb5,0x43,0x33,0x13,0x13,0x0c,0x2e,0xb8,0x01,0x85,0x40,0x0f,0x1a,0x1f,0x89,0x28,0x43,0x1a,0x22,0x28,0x28,0x22,0x1a,0x43,0x04,0x47,0x0c,0xbb,0x01,0x85,0x00,0x39,0x00,0x13,0x01, +0x81,0x40,0x09,0x33,0x1f,0x25,0x33,0x25,0x33,0x2b,0x17,0x0f,0xb8,0x01,0x7f,0x40,0x0b,0x31,0x36,0x19,0x05,0x3f,0x3f,0x44,0x1d,0x9b,0x2b,0x06,0x00,0x3f,0xed,0xc4,0x39,0x11,0x33,0x3f,0x33,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x39,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x12,0x39,0x11, +0x33,0x10,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x07,0x0e,0x04,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x17,0x16,0x16,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x3e,0x02,0x37, +0x3e,0x02,0x35,0x35,0x33,0x04,0x8e,0x2e,0x54,0x92,0x9a,0x7e,0x72,0x56,0x3a,0x20,0x3b,0x36,0x22,0x5a,0x2f,0x23,0x2c,0x2f,0x54,0x2b,0x41,0x39,0x52,0x3c,0x16,0x1a,0x27,0x25,0x48,0x34,0x3a,0x4b,0x7e,0x6d,0x8a,0x9e,0x8e,0x6a,0x92,0x6a,0x2d,0x84,0x40,0x6c,0x82,0x38,0x73,0xc5,0xc1,0x72,0x71,0x3a,0xa0,0x05,0xb4,0x4a,0x72,0x55, +0x44,0x26,0x20,0x36,0x4e,0x73,0xa1,0x6f,0xfe,0xf0,0x44,0x46,0x46,0x38,0x2a,0x32,0x3b,0x39,0x01,0x9f,0x98,0x75,0x90,0x07,0x0a,0x39,0x23,0x2b,0x45,0x4c,0x3a,0x60,0x80,0xe4,0xbc,0xb9,0xf9,0x82,0x3b,0x47,0xa1,0x85,0x01,0x2c,0x8b,0xcd,0x8f,0x6c,0x39,0x23,0x3d,0x52,0x30,0x7b,0x00,0x01,0x00,0xe9,0xff,0xec,0x04,0xac,0x06,0x3b, +0x00,0x43,0x00,0x85,0xb9,0x00,0x2f,0x01,0x85,0xb5,0x1b,0x40,0x04,0x8a,0x05,0x0b,0xb8,0x01,0x85,0x40,0x15,0x3b,0x05,0x23,0x38,0x29,0x3b,0x00,0x1b,0x10,0x23,0x29,0x3b,0x3b,0x29,0x23,0x10,0x1b,0x00,0x06,0x45,0x15,0xb8,0x01,0x85,0x40,0x20,0x36,0x00,0x43,0x3e,0x1e,0x9b,0x2c,0x38,0x12,0x9b,0x0f,0x20,0x26,0x2c,0x40,0x05,0x3e, +0x26,0x2c,0x0f,0x05,0x05,0x0f,0x2c,0x26,0x04,0x33,0x08,0x9b,0x3e,0x06,0x18,0xb8,0x01,0x7f,0xb1,0x33,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xed,0x39,0x10,0xed,0x10,0xc4,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39, +0x10,0xed,0x10,0xed,0x39,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x15,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x21,0x07,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x35, +0x10,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x34,0x36,0x37,0x04,0xac,0x37,0x23,0xa2,0x22,0x8e,0x61,0x6a,0x85,0x35,0x63,0x46,0x01,0x3c,0x10,0xed,0x8f,0xb5,0xb8,0x8c,0x91,0xa8,0x41,0x30,0x16,0x1a,0x27,0x25,0x48,0x34,0x3a,0x4b,0x7e,0x6d,0x7e,0x8d,0x78,0xda,0x87,0xdf,0xfe,0xfb,0xdc,0x57,0x5e,0xe0,0xb6,0xa3,0x69,0x67, +0x64,0x05,0xb1,0x10,0x45,0x58,0xa4,0x56,0x61,0x70,0x5b,0x35,0x58,0x32,0x8c,0xb2,0x91,0x8f,0xb7,0x7d,0x6d,0x49,0x5e,0x07,0x0a,0x39,0x23,0x2b,0x45,0x4c,0x3a,0x60,0x80,0xa7,0x99,0x6c,0xa2,0x58,0xf1,0xcd,0x01,0x2d,0x69,0x26,0x8b,0x5b,0x9b,0xbc,0x5b,0x6f,0x71,0x13,0x00,0x02,0x00,0x84,0x00,0x45,0x03,0x96,0x05,0xa3,0x00,0x0e, +0x00,0x1d,0x00,0x1f,0x40,0x0f,0x0f,0x89,0x00,0x00,0x1f,0x07,0x89,0x17,0x0b,0x9a,0x13,0x03,0x9b,0x1b,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x12,0x37,0x14,0x02,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32, +0x12,0x02,0xef,0x60,0x4c,0x4e,0x7c,0x4e,0x33,0x55,0x2f,0x4f,0x77,0x47,0xa7,0x75,0xc9,0x87,0x67,0x95,0x51,0x7a,0xd7,0x7c,0x98,0xad,0x03,0x81,0xb6,0xe2,0xb0,0xfe,0xa8,0xb8,0x72,0xb7,0x62,0xa8,0x01,0x5f,0xa0,0xf3,0xfe,0x7f,0xbc,0x8f,0x01,0x1e,0xba,0xd5,0x01,0x5e,0xc4,0xfe,0xd5,0x00,0x00,0x01,0x00,0x69,0xfe,0xf1,0x03,0x48, +0x05,0xa3,0x00,0x2e,0x00,0x3d,0x40,0x0f,0x00,0x89,0x15,0x1c,0x89,0x28,0x15,0x21,0x28,0x28,0x21,0x15,0x03,0x30,0x0e,0xb8,0x01,0x83,0x40,0x0e,0x09,0x0c,0x24,0x0c,0x24,0x05,0x18,0x9b,0x2c,0x06,0x11,0x99,0x05,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10, +0xed,0x31,0x30,0x01,0x14,0x02,0x02,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x16,0x16,0x33,0x32,0x12,0x12,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x16,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x10,0x12,0x36,0x33,0x32,0x12,0x03,0x48,0x5d,0x88,0xa7,0x50,0x3b,0x7b,0x4d,0x4d,0x11,0x1f,0x06,0x0b, +0x51,0x2d,0x46,0x93,0x53,0x3c,0x36,0x42,0x75,0x4d,0x27,0x10,0x09,0x5f,0x1d,0x11,0x38,0x22,0x74,0xcc,0x7a,0x7f,0x8b,0x03,0x60,0xec,0xfe,0x42,0xfe,0xdd,0xa2,0x4f,0x7b,0x3a,0x12,0x3a,0x20,0x3b,0x61,0x01,0x52,0x01,0xf7,0xcb,0xb6,0xca,0xc0,0xfe,0xa8,0x90,0x72,0x8f,0x29,0x17,0x15,0x1a,0x44,0x68,0x96,0x5a,0x01,0x0e,0x01,0x9e, +0xe2,0xfe,0xd5,0x00,0x00,0x01,0x00,0x84,0x00,0x8a,0x04,0x64,0x05,0xa3,0x00,0x3f,0x00,0x4e,0xb5,0x0c,0x32,0x08,0x32,0x0f,0x00,0xb8,0x01,0x83,0x40,0x21,0x3b,0x2f,0x89,0x15,0x3b,0x15,0x0f,0x20,0x20,0x0f,0x15,0x3b,0x04,0x41,0x1c,0x89,0x27,0x32,0x08,0x0c,0x05,0x08,0x3d,0x3d,0x08,0x05,0x0c,0x04,0x23,0x17,0x9b,0x2c,0x06,0x00, +0x3f,0xed,0xc4,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x11,0x33,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x01,0x36,0x36,0x35,0x34,0x23,0x22,0x06,0x06,0x02,0x15,0x14,0x17,0x16,0x15, +0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x12,0x12,0x36,0x33,0x32,0x16,0x15,0x14,0x03,0x03,0x36,0x33,0x32,0x16,0x33,0x32,0x36,0x37,0x36,0x36,0x33,0x32,0x16,0x04,0x64,0x0f,0x6e,0x65,0x44,0x1f,0x3a,0x1f,0x2b,0x35,0x0a,0x09,0x15,0x3e,0x0b,0x01,0x1a,0x29,0x31,0x68,0x41,0xb8,0x9e,0x55,0x30,0x09,0x5f,0x1c,0x13,0x31,0x21,0x6f, +0xcc,0xf4,0x72,0x78,0x89,0xa9,0xc5,0x0d,0x14,0x18,0x2c,0x1b,0x17,0x62,0x21,0x0b,0x0d,0x0b,0x23,0x4c,0x02,0x21,0x11,0x2d,0xd7,0x60,0x12,0x22,0x07,0x40,0x10,0x16,0x16,0x02,0x32,0x52,0xaa,0x28,0xb2,0x9b,0xf7,0xfe,0xeb,0x89,0x5b,0x7d,0x18,0x11,0x17,0x47,0x5b,0x8b,0x3f,0xbf,0x01,0x6d,0x01,0x23,0xa5,0xa4,0x86,0x71,0xfe,0xbb, +0xfe,0x84,0x04,0x09,0x8d,0x51,0x1c,0x17,0x23,0x00,0x00,0x01,0x00,0x84,0x01,0x73,0x04,0x1b,0x05,0xa3,0x00,0x54,0x00,0x4c,0x40,0x28,0x47,0x89,0x14,0x41,0x4b,0x0c,0x14,0x34,0x23,0x0c,0x14,0x00,0x00,0x14,0x0c,0x23,0x34,0x05,0x56,0x2f,0x89,0x3a,0x16,0x2b,0x9b,0x3e,0x41,0x3e,0x51,0x1f,0x51,0x1f,0x04,0x37,0x4b,0x03,0x0a,0x43, +0x3e,0x06,0x00,0x3f,0x33,0xc4,0x17,0x32,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x39,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x06,0x23,0x22,0x26,0x23,0x22,0x07,0x07,0x22,0x35,0x35,0x34,0x37,0x37,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07, +0x0e,0x02,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x07,0x16,0x33,0x32,0x36,0x37,0x36,0x33,0x32,0x16,0x04,0x0e,0x62,0x7f,0x2a,0x11,0x2d,0x28,0x23,0x23, +0x10,0x36,0x43,0x20,0x9b,0x2a,0x3b,0x19,0x15,0x16,0x2b,0x31,0x38,0x24,0x23,0x30,0x27,0x1b,0x11,0x2f,0x2b,0x25,0x48,0x29,0x23,0x38,0x58,0x35,0x0d,0x11,0x0d,0x6b,0x1e,0x12,0x36,0x5f,0xa8,0x72,0x29,0x68,0x16,0x5e,0x61,0x36,0x53,0x2f,0x54,0x50,0x8d,0x18,0x1c,0x20,0x4f,0x1c,0x0d,0x15,0x11,0x32,0x02,0x62,0x22,0x71,0x51,0x07, +0x0f,0x03,0x24,0x0d,0x0e,0x71,0x39,0x01,0x23,0x4d,0xc1,0x35,0x26,0x31,0x32,0x61,0x90,0x5d,0x5c,0x66,0x2e,0x1d,0x11,0x14,0x6d,0x5e,0xb5,0x62,0x26,0x26,0x82,0xfe,0xf1,0x90,0x4b,0x5c,0x3c,0x29,0x16,0x14,0x41,0xc6,0x49,0xe7,0x01,0x75,0xb7,0x32,0x23,0x55,0x32,0x57,0x33,0x4a,0xf1,0x94,0xfe,0x0b,0x3e,0x32,0x18,0x24,0x00,0x01, +0x00,0x84,0xff,0xc3,0x03,0x45,0x05,0xa7,0x00,0x26,0x00,0x2d,0x40,0x17,0x10,0x12,0x04,0x89,0x1f,0x25,0x12,0x1f,0x1f,0x12,0x25,0x03,0x28,0x18,0x8a,0x0b,0x1b,0x9a,0x08,0x10,0x06,0x00,0x07,0x00,0x3f,0x3f,0xd4,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x32,0x16,0x16,0x15,0x10,0x02, +0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x37,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x12,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x36,0x02,0xa9,0x20,0x4c,0x30,0x69,0xba,0x83,0x8c,0x8f,0x8d,0x81,0x1a,0x15,0x0e,0x57,0x2c,0x75,0x5d,0x43,0x3b,0x4a,0x6e,0x40,0x28,0x2e,0x08,0x54,0x05,0xa7,0x9c,0xed, +0x6b,0xfe,0xef,0xfe,0x1c,0xfb,0xee,0xe8,0xd0,0x01,0x65,0x8e,0x1c,0x36,0x0c,0x14,0x3a,0xa0,0xfe,0xed,0x98,0x94,0xbb,0xde,0x01,0xa1,0xca,0x94,0xb9,0x49,0x0c,0x13,0x11,0x4a,0x00,0x01,0x00,0x84,0x01,0x46,0x03,0x79,0x05,0xa7,0x00,0x33,0x00,0x49,0xb9,0x00,0x31,0x01,0x83,0xb4,0x07,0x2f,0x89,0x28,0x0a,0xb8,0x01,0x84,0x40,0x1b, +0x21,0x00,0x07,0x28,0x21,0x21,0x28,0x07,0x00,0x04,0x35,0x19,0x8b,0x13,0x0a,0x16,0x2b,0x04,0x16,0x04,0x16,0x0f,0x2b,0x07,0x1d,0x99,0x0f,0x00,0x2f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x27, +0x27,0x26,0x27,0x27,0x06,0x02,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x07,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x36,0x37,0x36,0x35,0x34,0x27,0x27,0x34,0x36,0x33,0x32,0x16,0x16,0x17,0x17,0x13,0x17,0x16,0x03,0x79,0x3b,0x29,0x19,0x2e,0x19,0x1a,0x18,0x0a,0x05,0x06,0x29,0x35,0x5a,0x49,0x57,0x65,0x2d, +0x1e,0x37,0x27,0x1d,0x04,0x2a,0x2b,0x30,0x38,0x0d,0x06,0x0b,0x1d,0x14,0x16,0x04,0x3e,0x17,0x1b,0x17,0x14,0x0b,0x04,0x64,0x3c,0x24,0x01,0xdd,0x17,0x23,0x7b,0x8b,0x8a,0x77,0x80,0x2b,0x7f,0xfe,0x64,0xa3,0x51,0x71,0xe0,0xf8,0x21,0x1b,0x15,0x14,0xed,0x72,0x68,0xa7,0xd6,0x5a,0xa9,0x3a,0x3c,0x40,0x10,0x45,0x11,0x11,0x1f,0x18, +0x47,0x45,0x18,0xfe,0x6e,0xd2,0x7f,0x00,0x00,0x01,0x00,0x84,0xff,0xc3,0x03,0xdd,0x05,0xa3,0x00,0x40,0x00,0x49,0xb7,0x06,0x89,0x22,0x00,0x3b,0x8b,0x36,0x27,0xb8,0x01,0x82,0x40,0x1c,0x2e,0x22,0x15,0x36,0x2e,0x2e,0x36,0x15,0x22,0x04,0x42,0x1c,0x89,0x0d,0x24,0x00,0x00,0x2b,0x2b,0x39,0x1f,0x9a,0x09,0x39,0x06,0x19,0x12,0x06, +0x00,0x3f,0x33,0x3f,0xd4,0xed,0x12,0x39,0x2f,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x10,0xed,0x31,0x30,0x01,0x36,0x36,0x33,0x32,0x16,0x15,0x10,0x02,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x06,0x02,0x15,0x10,0x12,0x33,0x32, +0x36,0x35,0x34,0x23,0x22,0x06,0x06,0x07,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x35,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x07,0x06,0x15,0x14,0x02,0x7d,0x14,0x2a,0x16,0x78,0x94,0xc8,0xbe,0x88,0xd5,0x76,0x60,0xad,0xd8,0x60,0x37,0x26,0x10,0x2a,0x2f,0xb7,0xdc,0xa1,0x8a,0x70,0x72,0x7c,0x17,0x2e,0x20,0x01, +0x01,0x17,0x22,0x1f,0x17,0x0e,0x0d,0x08,0x08,0x1d,0x30,0x4f,0x0b,0x0b,0x03,0x2a,0x06,0x0d,0xb3,0x93,0xfe,0xee,0xfe,0xde,0xb1,0x01,0x49,0xd2,0x9a,0x01,0x1e,0xdb,0x81,0x13,0x1a,0x31,0x1d,0x12,0x07,0x1a,0xfe,0xa4,0xff,0xfe,0xee,0xfe,0xc6,0xb9,0xc6,0xf6,0x31,0x49,0x19,0x1c,0x1d,0x15,0x22,0x33,0x5d,0x5c,0x35,0x26,0x44,0x44, +0x24,0x29,0x28,0x3e,0x1e,0x46,0x47,0x2e,0x23,0x00,0x00,0x01,0x00,0x84,0xff,0xf6,0x03,0xe8,0x05,0xa3,0x00,0x3e,0x00,0x4a,0x40,0x29,0x00,0x89,0x2c,0x23,0x89,0x0a,0x27,0x89,0x06,0x2c,0x0a,0x06,0x16,0x16,0x06,0x0a,0x2c,0x04,0x40,0x37,0x10,0x89,0x1d,0x34,0x34,0x20,0x30,0x9b,0x3b,0x06,0x0d,0x9b,0x20,0x06,0x16,0x19,0x18,0x29, +0x9a,0x03,0x18,0x00,0x3f,0xed,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x01,0x2f,0xed,0xc4,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x10,0x02,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x02,0x35, +0x34,0x12,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0x10,0x33,0x32,0x12,0x11,0x34,0x02,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x03,0xe8,0x91,0x9e,0x6b,0x60,0x0d,0x0c,0x34,0x3c,0x3c,0x30,0x34,0x35,0x08,0x1a,0x59,0x19,0x2b,0x53,0x42,0x9b,0x89,0x78,0x90,0x0c,0x0c,0x41,0x34,0x34,0x5b, +0xa1,0x60,0x23,0x46,0x47,0x20,0x09,0x20,0x14,0xab,0x62,0x95,0xeb,0x83,0x02,0xa5,0xfe,0x97,0xfe,0xba,0xb8,0xb6,0x33,0x95,0x94,0x30,0x7c,0x71,0xb2,0xb6,0x85,0xdd,0x6d,0x0f,0x1b,0x0f,0x15,0x4f,0xab,0x01,0x50,0x71,0xea,0x01,0x09,0xbd,0x9b,0x31,0x94,0x89,0x39,0xfe,0xf8,0x01,0x20,0x01,0x07,0xa6,0x01,0x23,0xa8,0x16,0x17,0x21, +0x2f,0x1e,0x18,0x31,0xc4,0xfe,0x9f,0x00,0x00,0x01,0x00,0x70,0x00,0x45,0x03,0x6c,0x05,0xa7,0x00,0x31,0x00,0x41,0xb9,0x00,0x1c,0x01,0x85,0x40,0x10,0x17,0x05,0x89,0x27,0x17,0x27,0x00,0x00,0x27,0x17,0x03,0x33,0x22,0x8b,0x14,0x22,0xb8,0x01,0x81,0xb5,0x11,0x2f,0x11,0x2f,0x19,0x27,0xb8,0x01,0x80,0xb2,0x0a,0x19,0x07,0x00,0x3f, +0xd4,0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xec,0x10,0xed,0x31,0x30,0x01,0x14,0x07,0x06,0x06,0x07,0x0e,0x02,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x13,0x01,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x01,0x37,0x37,0x32,0x17,0x17,0x32,0x37, +0x3e,0x04,0x17,0x32,0x16,0x03,0x6c,0x2e,0x24,0x56,0x16,0x1b,0x17,0x20,0x0f,0x26,0x47,0x47,0x23,0x24,0x3f,0x3f,0x20,0x1d,0x27,0x67,0x01,0x43,0x09,0x44,0x23,0x31,0x12,0x14,0x26,0x57,0xfe,0xef,0x39,0x34,0x0e,0x65,0x20,0x11,0x21,0x0e,0x1f,0x0e,0x54,0x20,0x17,0x1f,0x4e,0x02,0xc6,0x14,0x4c,0x4b,0xd1,0x55,0x69,0x2a,0x1d,0x0f, +0x0e,0x0e,0x0f,0x25,0x26,0x30,0x01,0x24,0x03,0xa9,0x1a,0x1a,0x13,0x0e,0x34,0x2f,0x5b,0xe2,0xfd,0x1f,0x07,0x04,0x10,0x03,0x68,0x2d,0x60,0x25,0xd5,0x34,0x03,0x27,0x00,0x01,0x00,0x84,0xff,0xc3,0x03,0x33,0x05,0xa7,0x00,0x37,0x00,0x3f,0x40,0x21,0x00,0x1f,0x2d,0x89,0x0e,0x33,0x89,0x08,0x1f,0x0e,0x08,0x08,0x0e,0x1f,0x03,0x39, +0x14,0x89,0x27,0x36,0x9a,0x02,0x1c,0x02,0x1c,0x2a,0x17,0x9a,0x23,0x11,0x9b,0x2a,0x07,0x00,0x3f,0xed,0xd4,0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x14,0x06,0x23,0x27,0x26,0x23,0x22,0x35,0x34,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x02, +0x11,0x10,0x12,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x02,0x35,0x10,0x12,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x03,0x07,0x25,0x0d,0x22,0x5d,0x3d,0x3b,0x21,0x33,0x40,0x16,0x3c,0x30,0x72,0x79,0x73,0x66,0x4c,0x31,0x35,0x09,0x10,0x16,0x42,0x5d,0x89,0x4e, +0x72,0xa8,0x5b,0xe6,0xd5,0x6e,0x86,0x2e,0x55,0x0e,0x13,0x24,0x33,0x21,0x01,0x94,0x13,0x4e,0x04,0x12,0x3b,0x18,0x54,0x81,0xdb,0x97,0x48,0x72,0x80,0xfe,0x9f,0xfe,0xc4,0xfe,0xf4,0xfe,0xda,0x3c,0x40,0x0b,0x3a,0x19,0x21,0x61,0x3d,0xa4,0x01,0x3b,0xde,0x01,0x85,0x01,0xa2,0xd1,0xab,0x4c,0xc0,0xe1,0x23,0x29,0x0e,0x10,0x0f,0x0b, +0x08,0x00,0x00,0x02,0x00,0x60,0xff,0xe7,0x04,0xa2,0x04,0x19,0x00,0x0b,0x00,0x17,0x00,0x23,0x40,0x0d,0x09,0x89,0x15,0x15,0x19,0x0f,0x89,0x03,0x0c,0x9b,0x06,0x06,0x12,0xb8,0x01,0x7f,0xb1,0x00,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x00,0x35,0x10,0x00,0x21,0x32,0x00,0x15,0x14, +0x00,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x81,0xf5,0xfe,0xd4,0x01,0x2c,0x01,0x01,0xf8,0x01,0x1d,0xfe,0xdf,0xfa,0xb3,0xcc,0xd0,0xaf,0xb5,0xbe,0xbe,0x19,0x01,0x21,0xec,0x01,0x02,0x01,0x23,0xfe,0xe7,0xfc,0xfb,0xfe,0xde,0x03,0xa6,0xd9,0xba,0xb5,0xd2,0xcb,0xc0,0xc1,0xce,0x00,0x00,0x01,0x00,0x50, +0xff,0xe7,0x03,0x44,0x04,0x19,0x00,0x15,0x00,0x28,0x40,0x0b,0x0a,0x00,0x05,0x89,0x10,0x0b,0x15,0x0b,0x15,0x02,0x0d,0xb8,0x01,0x7f,0xb5,0x08,0x19,0x13,0x9b,0x02,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x01,0x2f,0xed,0xc4,0x32,0x31,0x30,0x13,0x36,0x33,0x32,0x12,0x15,0x10,0x00,0x23,0x22,0x27,0x35,0x16,0x33, +0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x56,0x72,0x9e,0xdf,0xff,0xfe,0xf8,0xf2,0x8e,0x6c,0x69,0x8f,0xa9,0xad,0xa1,0x9d,0x96,0x74,0x03,0xd3,0x46,0xfe,0xe5,0xf6,0xfe,0xfc,0xfe,0xe3,0x38,0xa2,0x4e,0xd0,0xc7,0xbe,0xc5,0x56,0x00,0x02,0x00,0x2d,0xfd,0x6d,0x03,0xe5,0x04,0x19,0x00,0x1c,0x00,0x27,0x00,0x50,0xb9,0x00,0x0d,0x01, +0x83,0x40,0x0b,0x25,0x19,0x8a,0x0b,0x25,0x0b,0x25,0x0b,0x29,0x03,0x20,0xb8,0x01,0x83,0xb3,0x13,0x03,0x04,0x22,0xb8,0x01,0x7d,0x40,0x11,0x10,0x0d,0x10,0x16,0x04,0x10,0x04,0x10,0x00,0x1d,0x9b,0x16,0x06,0x06,0x9a,0x00,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x01,0x2f,0xed, +0xc4,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x36,0x35,0x11,0x34,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x10,0x00,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0xb0,0x7b,0xb8,0x50,0xa8,0xdf,0x77,0xb4,0x63,0x1d,0x0c, +0x73,0x60,0x64,0x71,0x80,0x86,0xb6,0xb8,0xfe,0xd1,0x68,0x2f,0x33,0x60,0x2b,0x33,0x31,0xfd,0x6d,0x23,0x28,0xaa,0x6c,0x79,0xe6,0x9d,0x02,0x25,0xb3,0x65,0x59,0x65,0x70,0x61,0x6d,0x6a,0xe8,0xdd,0xfd,0x9e,0xfe,0xce,0xfe,0xad,0x06,0x3d,0x35,0x31,0x5f,0x34,0x2d,0x30,0x34,0x00,0x00,0x01,0x00,0x50,0xfd,0x6d,0x03,0xd7,0x04,0x19, +0x00,0x25,0x00,0x40,0x40,0x18,0x1c,0x27,0x13,0x0a,0x25,0x10,0x89,0x05,0x19,0x99,0x1e,0x19,0x0b,0x0a,0x15,0x00,0x13,0x0a,0x00,0x0a,0x00,0x0d,0x25,0x02,0xb8,0x01,0x7f,0xb5,0x13,0x18,0x08,0x9b,0x0d,0x06,0x00,0x3f,0xed,0x3f,0xed,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x3f,0xed,0x01,0x2f,0xed,0xc4,0x32,0x39, +0x10,0xc6,0x31,0x30,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x10,0x00,0x21,0x23,0x27,0x17,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x04,0x27,0x50,0x78,0xa2,0xc0,0xc6,0xb9,0xb2,0xad,0x82,0x7d,0xb2,0xf7,0x01,0x1a,0xfe,0xdd,0xfe,0xf1,0x1a,0x19,0x53,0xb6,0xe0,0x44,0x43, +0x36,0x36,0x59,0x49,0x94,0x8f,0x87,0x78,0x66,0x27,0xc1,0x4e,0xd0,0xc7,0xbe,0xc5,0x56,0x9c,0x46,0xfe,0xe4,0xf5,0xfe,0xfc,0xfe,0xe3,0x02,0x5d,0xd2,0xb8,0x1b,0x90,0x20,0x52,0x80,0x9c,0x94,0x7b,0x1e,0x00,0x00,0x01,0x00,0x60,0xfd,0x6d,0x03,0xe5,0x04,0x19,0x00,0x21,0x00,0x46,0x40,0x1d,0x1f,0x0a,0x0e,0x89,0x0f,0x12,0x0f,0x0a, +0x0f,0x0a,0x0f,0x23,0x03,0x89,0x17,0x1e,0x1f,0x12,0x09,0x1f,0x09,0x1f,0x14,0x00,0x9b,0x1b,0x06,0x0a,0x06,0xb8,0x01,0x7f,0xb3,0x14,0x18,0x0f,0x18,0x00,0x3f,0x3f,0xed,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x22,0x06,0x15, +0x14,0x16,0x33,0x32,0x24,0x37,0x15,0x03,0x06,0x02,0x07,0x23,0x36,0x12,0x01,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x02,0x75,0xb0,0xbf,0x9e,0x9b,0x57,0x01,0x09,0x46,0xcd,0xa7,0xaf,0x26,0xbb,0x3e,0xea,0x01,0x24,0x6d,0x8b,0xd4,0xfe,0xff,0x84,0xf5,0x98,0x73,0xbf,0x3c,0x41,0xcd,0x03,0x8f, +0xa9,0x9c,0x93,0x98,0x3e,0x24,0x9c,0xfe,0xf7,0xd5,0xfe,0xe1,0x7b,0xa9,0x01,0x5d,0x01,0x50,0x30,0xed,0xce,0x87,0xd2,0x72,0x26,0x20,0x9c,0x29,0x2f,0x00,0x00,0x01,0x00,0x60,0xfd,0x6d,0x05,0xb0,0x04,0x19,0x00,0x32,0x00,0x59,0xb9,0x00,0x0a,0x01,0x84,0x40,0x21,0x05,0x18,0x17,0x2b,0x2b,0x1f,0x00,0x8a,0x0f,0x22,0x05,0x0f,0x0f, +0x05,0x22,0x03,0x34,0x1f,0x89,0x24,0x21,0x22,0x2b,0x18,0x07,0x22,0x18,0x18,0x22,0x07,0x03,0x28,0x0d,0xb8,0x01,0x7f,0xb7,0x02,0x19,0x14,0x1b,0x9b,0x2e,0x28,0x06,0x00,0x3f,0x33,0xed,0x32,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x12,0x39,0x11,0x33, +0x33,0x10,0xed,0x31,0x30,0x01,0x10,0x23,0x22,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x10,0x17,0x15,0x24,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x05,0xb0,0xfa,0x6c,0x79,0x14,0x83,0x0e, +0x2e,0x26,0x5e,0x29,0x5c,0x52,0x60,0x6f,0x0e,0x9e,0x0e,0x6d,0x60,0x51,0x5c,0x2a,0xbf,0xfe,0x99,0x4e,0xa8,0x89,0x78,0x8a,0x29,0x29,0x8b,0x77,0x88,0xa5,0x4e,0xfe,0x81,0xfe,0xec,0x75,0x64,0x50,0x24,0x2f,0x2d,0x30,0x32,0x8b,0x03,0x79,0xb0,0x91,0x4c,0x75,0x8b,0x8a,0x76,0x4b,0x90,0xb0,0xfe,0xa5,0x24,0x9c,0x48,0x01,0xd3,0xca, +0xdb,0x72,0x60,0x75,0x74,0x61,0x70,0xda,0xcf,0x00,0x00,0x01,0x00,0x77,0xff,0xe7,0x04,0x35,0x07,0x62,0x00,0x31,0x00,0x50,0x40,0x26,0x19,0x8b,0x0d,0x1f,0x89,0x06,0x0d,0x06,0x13,0x2c,0x2c,0x13,0x06,0x0d,0x04,0x33,0x31,0x8a,0x26,0x12,0x06,0x19,0x22,0x13,0x13,0x22,0x2b,0x2c,0x2c,0x10,0x2e,0x9b,0x29,0x16,0x9b,0x10,0x06,0x03, +0xb8,0x01,0x7f,0xb1,0x22,0x19,0x00,0x3f,0xed,0x3f,0xed,0xd4,0xed,0x12,0x39,0x2f,0x33,0x11,0x39,0x2f,0x12,0x39,0x39,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x10,0x12,0x33,0x32,0x36,0x35,0x34,0x27,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15, +0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x20,0x00,0x11,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x02,0x11,0x01,0x1b,0xb1,0xc5,0x7a,0x84,0x7c,0x77,0x4b,0x32,0x1b,0x96,0x8b,0x73,0x54,0x29,0x60,0x3e,0x41,0x46,0x57,0x75,0x66,0x65,0xd8,0xcc,0xfe,0xed,0xfe,0xf9,0x01,0x3b,0x01,0x2f,0xb6,0x98,0xa5,0xa7,0xe7,0xe1, +0x02,0xe9,0xfe,0xb3,0xfe,0xd7,0x57,0x51,0x5b,0x4a,0x46,0x3b,0x45,0x4f,0x33,0x7f,0x92,0x2b,0x90,0x13,0x20,0x4c,0x39,0x33,0x55,0x43,0x3b,0x89,0x56,0xa0,0xa0,0x01,0x72,0x01,0x90,0x01,0x40,0x01,0x97,0x01,0xa2,0x4e,0xaa,0x6d,0xfe,0x9d,0xfe,0x86,0x00,0x01,0x00,0x60,0xfd,0x6d,0x06,0xec,0x04,0x19,0x00,0x32,0x00,0x5e,0x40,0x09, +0x08,0x07,0x1b,0x1b,0x0f,0x23,0x8a,0x32,0x2b,0xb8,0x01,0x83,0x40,0x21,0x2a,0x12,0x32,0x2a,0x2a,0x32,0x12,0x03,0x34,0x0f,0x89,0x14,0x04,0x0b,0x9b,0x18,0x11,0x12,0x1b,0x08,0x18,0x2a,0x12,0x08,0x08,0x12,0x2a,0x03,0x30,0x1e,0x18,0x06,0x25,0xb8,0x01,0x7f,0xb1,0x30,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f, +0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x12,0x39,0x11,0x33,0x33,0x31,0x30,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x10,0x17,0x15,0x24,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x11, +0x14,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x23,0x22,0x11,0x05,0x0c,0x29,0x5c,0x52,0x60,0x6f,0x0e,0x9e,0x0e,0x6d,0x60,0x51,0x5c,0x2a,0xbf,0xfe,0x99,0x4e,0xa8,0x89,0x78,0x8a,0x29,0x29,0x8b,0x77,0x88,0xa5,0x4e,0x5e,0x27,0x2d,0x0e,0x83,0x15,0x79,0x6d,0xfa,0x02,0x00,0xb0,0x91,0x4c,0x75,0x8b,0x8a,0x76,0x4b, +0x90,0xb0,0xfe,0xa5,0x24,0x9c,0x48,0x01,0xd3,0xca,0xdb,0x72,0x60,0x75,0x74,0x61,0x70,0xda,0xcf,0xfc,0x85,0x89,0x32,0x30,0x2d,0x2f,0x26,0x3e,0x70,0x79,0x01,0x14,0x00,0x01,0x00,0x0a,0x00,0x00,0x04,0x3f,0x04,0x00,0x00,0x0e,0x00,0x2a,0x40,0x14,0x0b,0x89,0x08,0x07,0x00,0x00,0x04,0x0c,0x0c,0x10,0x03,0x89,0x04,0x00,0x04,0x07, +0x06,0x0c,0x04,0x18,0x00,0x3f,0x33,0x3f,0x12,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x11,0x33,0x33,0xed,0x31,0x30,0x01,0x06,0x02,0x07,0x23,0x36,0x12,0x37,0x33,0x16,0x12,0x17,0x23,0x26,0x02,0x02,0x25,0x2b,0xc5,0x6e,0xbd,0x9a,0xf7,0x36,0xa8,0x3b,0xf2,0x99,0xbc,0x71,0xc3,0x03,0x31,0xbc,0xfe,0x3c,0xb1,0xe1,0x02,0x2e, +0xf1,0xfe,0xfd,0xe1,0xe3,0xb6,0x01,0xc4,0x00,0x01,0x00,0x60,0xfd,0x6d,0x04,0x25,0x04,0x19,0x00,0x24,0x00,0x4d,0xb9,0x00,0x0e,0x01,0x85,0x40,0x12,0x09,0x05,0x89,0x14,0x09,0x14,0x20,0x20,0x14,0x09,0x03,0x26,0x1a,0x89,0x00,0x20,0x1f,0x11,0xb8,0x01,0x7e,0x40,0x11,0x07,0x1f,0x07,0x0b,0x0b,0x07,0x1f,0x03,0x02,0x1d,0x9a,0x22, +0x19,0x17,0x9b,0x02,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x10,0x21,0x32,0x16,0x15,0x10,0x21,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x11,0x10,0x12, +0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x00,0x60,0x02,0x11,0xd1,0xe3,0xfe,0xcd,0xfa,0x08,0xa0,0x08,0x2b,0x35,0x48,0x3d,0x8b,0x81,0xb3,0xb6,0xf8,0xe9,0x8f,0x86,0x7e,0x9f,0xfe,0xc4,0xfe,0xbb,0x01,0x29,0x02,0xf0,0xea,0xdb,0xfe,0x62,0xdd,0x30,0x12,0x18,0x27,0x2f,0x30,0x8e,0x8b,0x9b,0xa2,0xfe,0xd6,0xfe,0xbc,0xfe,0x74,0xfe,0x65, +0x52,0xa0,0x3d,0x01,0xe3,0x00,0x00,0x01,0x00,0x60,0xff,0xe7,0x04,0x7b,0x05,0xfa,0x00,0x22,0x00,0x4b,0xb1,0x03,0x0e,0xb8,0x01,0x84,0x40,0x19,0x0f,0x0a,0x89,0x05,0x0f,0x1b,0x05,0x05,0x1b,0x0f,0x03,0x24,0x15,0x89,0x20,0x1b,0x1a,0x03,0x0f,0x1a,0x0f,0x1a,0x0f,0x00,0x18,0xb8,0x01,0x7f,0xb6,0x1d,0x19,0x12,0x9b,0x07,0x00,0x06, +0x00,0x3f,0xc6,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x31,0x30,0x01,0x32,0x16,0x17,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x06,0x07,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x00,0x11, +0x34,0x12,0x02,0x29,0x68,0xa6,0x29,0x75,0x3f,0xb0,0x35,0x2f,0x54,0x75,0x8d,0x6e,0x5d,0x8d,0x98,0xad,0xa9,0x82,0x76,0x6c,0x8e,0xf2,0xfe,0xf8,0xf2,0x04,0x19,0x5f,0x56,0xa4,0xfc,0x8b,0x6b,0x6a,0x8e,0x65,0xa9,0x9a,0x97,0x5b,0x6f,0xce,0xb5,0xc7,0xd0,0x4e,0xa2,0x38,0x01,0x1a,0x01,0x07,0xfc,0x01,0x15,0x00,0x00,0x03,0x00,0x82, +0xff,0xe8,0x05,0x70,0x06,0xd0,0x00,0x1a,0x00,0x26,0x00,0x33,0x00,0x5c,0xbc,0x00,0x1b,0x01,0x85,0x00,0x27,0x00,0x00,0x01,0x85,0xb2,0x1a,0x05,0x14,0xb8,0x01,0x85,0x40,0x0f,0x13,0x2e,0x8a,0x21,0x27,0x1a,0x13,0x21,0x21,0x13,0x1a,0x27,0x04,0x35,0x0c,0xb8,0x01,0x85,0x40,0x12,0x0b,0x16,0x10,0x99,0x05,0x1a,0x13,0x0b,0x02,0x09, +0x2b,0x9b,0x24,0x06,0x31,0x99,0x1e,0x19,0x00,0x3f,0xed,0x3f,0xed,0xde,0x32,0xcd,0x32,0x32,0x39,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x02,0x21,0x22,0x26,0x27,0x0e,0x02,0x23,0x20,0x03,0x33,0x14,0x16,0x16,0x33,0x32,0x36,0x35,0x33,0x12,0x33, +0x32,0x36,0x36,0x35,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x03,0x34,0x26,0x26,0x23,0x22,0x00,0x15,0x14,0x00,0x33,0x32,0x00,0x05,0x70,0x01,0xfe,0x9f,0x59,0x9d,0x1f,0x0f,0x53,0x76,0x3c,0xfe,0x9e,0x01,0xa1,0x1f,0x5a,0x49,0x63,0x62,0xa1,0x02,0xc0,0x47,0x5a,0x21,0x99,0xfe,0x94,0xfe,0xfd,0xfe,0xfd,0xfe, +0x94,0x01,0x6d,0x01,0x02,0x01,0x01,0x01,0x6e,0xa1,0x7e,0xd5,0x7b,0xbc,0xfe,0xef,0x01,0x0c,0xc1,0xc5,0x01,0x09,0x06,0xd0,0xfe,0x51,0x57,0x4e,0x2c,0x4e,0x2b,0x01,0xaf,0x62,0x7a,0x42,0x86,0x98,0xfe,0xe2,0x3e,0x75,0x6b,0xfb,0x87,0xfe,0xfd,0xfe,0x94,0x01,0x6e,0x01,0x01,0x01,0x01,0x01,0x6e,0xfe,0x94,0xfe,0xfd,0x80,0xdb,0x83, +0xfe,0xe3,0xc1,0xbe,0xfe,0xe0,0x01,0x23,0x00,0x01,0x00,0xf0,0x00,0x00,0x01,0x91,0x06,0xd0,0x00,0x03,0x00,0x12,0xb9,0x00,0x00,0x01,0x85,0xb3,0x01,0x02,0x01,0x18,0x00,0x3f,0xcd,0x01,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x91,0xa1,0xa1,0x06,0xd0,0x00,0x04,0x00,0x64,0xff,0xe8,0x06,0x29,0x06,0xe8,0x00,0x20,0x00,0x2c, +0x00,0x38,0x00,0x45,0x00,0x81,0xb9,0x00,0x14,0x01,0x84,0xb4,0x39,0x21,0x89,0x27,0x18,0xbb,0x01,0x85,0x00,0x09,0x00,0x3f,0x01,0x84,0x40,0x37,0x0e,0x00,0x39,0x27,0x09,0x0e,0x0e,0x09,0x27,0x39,0x00,0x05,0x47,0x2d,0x89,0x33,0x3c,0x9b,0x11,0x43,0x00,0x20,0x06,0x9b,0x1a,0x24,0x30,0x2a,0x36,0x17,0x0a,0x18,0x20,0x1a,0x0a,0x36, +0x43,0x20,0x1a,0x30,0x36,0x36,0x30,0x1a,0x20,0x04,0x09,0x43,0x06,0x09,0x18,0x1e,0x99,0x02,0x19,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x11,0x33,0x11,0x33,0x11,0x33,0x10,0xed,0x11,0x33,0x10,0xd4,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10, +0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x25,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x23,0x11,0x26,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x14,0x06,0x07,0x11,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16, +0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x36,0x06,0x29,0x73,0x9d,0x78,0x9b,0x86,0x4c,0x9d,0x5e,0xa2,0x72,0x50,0x49,0xcb,0x90,0x90,0xca,0x01,0x8f,0x7b,0x79,0x91,0x6f,0x9e,0x85,0x4d,0x6b,0x4b,0xfd,0x93,0x3d,0x2d,0x2d,0x3e,0x3e,0x2d,0x2c,0x3e,0xfd,0xd0,0x3e,0x2d,0x2b,0x40,0x40,0x2b,0x2d,0x3e,0x01,0x77, +0x76,0x54,0x50,0x7a,0x3a,0x3d,0x53,0x54,0x76,0x69,0x81,0x6d,0x5a,0xaf,0x04,0x3a,0x1d,0x5d,0x62,0x77,0x90,0xcb,0xcc,0x8f,0x78,0xbb,0x20,0xfc,0xa4,0x61,0x6b,0x5b,0x5b,0x01,0xe4,0x2d,0x3d,0x3e,0x2c,0x2d,0x3e,0x3e,0x2d,0x2c,0x3e,0x3d,0x2d,0x2e,0x3d,0x3e,0x02,0xa8,0x56,0x74,0x71,0x59,0x53,0x3d,0x3a,0x72,0x00,0x02,0x00,0x64, +0x00,0x00,0x04,0xfa,0x06,0xe8,0x00,0x29,0x00,0x35,0x00,0x6f,0xb1,0x16,0x22,0xbb,0x01,0x84,0x00,0x2a,0x00,0x04,0x01,0x85,0xb2,0x05,0x25,0x00,0xb8,0x01,0x84,0x40,0x0f,0x0b,0x12,0x27,0x0b,0x2a,0x05,0x0e,0x0b,0x0b,0x0e,0x05,0x2a,0x04,0x37,0x30,0xb8,0x01,0x84,0x40,0x1b,0x1c,0x33,0x99,0x19,0x2d,0x9b,0x1f,0x22,0x07,0x03,0x9b, +0x06,0x27,0x0e,0x9b,0x0f,0x06,0x0f,0x06,0x0f,0x05,0x16,0x9b,0x22,0x06,0x05,0x18,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x33,0x10,0xdd,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x39,0x33,0x10,0xed,0x32,0x10,0xed,0x10,0xed,0x32,0x31,0x30,0x01,0x10,0x21,0x23,0x11, +0x23,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x26,0x23,0x35,0x20,0x36,0x35,0x34,0x26,0x23,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x20,0x15,0x14,0x07,0x15,0x16,0x01,0x34,0x26,0x27,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xfa,0xfe,0x8f,0x5f,0xa1,0x01,0x00,0x79,0x67,0x43,0xa7,0xa1,0x01,0x02, +0x89,0x71,0x6f,0x76,0x19,0xbb,0x80,0x8c,0xcf,0xcb,0x90,0x7c,0xbf,0x19,0x76,0x01,0x71,0xc5,0xc5,0xfd,0x8f,0x76,0x54,0x51,0x79,0x6f,0x5b,0x56,0x74,0x03,0x16,0xfe,0xf9,0xfd,0xf1,0x02,0xa0,0x40,0x4a,0x34,0x3b,0x12,0x91,0x42,0x4d,0x4c,0x2f,0x75,0xa0,0xc7,0x95,0x90,0xcb,0x9c,0x75,0xf8,0xb6,0x32,0x07,0x35,0x01,0xd2,0x55,0x74, +0x01,0x71,0x59,0x51,0x79,0x76,0x00,0x01,0x00,0xb4,0x00,0x00,0x05,0x0a,0x06,0xd0,0x00,0x12,0x00,0x5c,0xb1,0x11,0x04,0xb8,0x01,0x85,0xb5,0x05,0x0e,0x05,0x0b,0x0a,0x00,0xb8,0x01,0x85,0x40,0x0a,0x01,0x05,0x0a,0x01,0x01,0x0a,0x05,0x03,0x14,0x0d,0xb8,0x01,0x85,0x40,0x16,0x07,0x03,0x07,0x9b,0x11,0x0d,0x0a,0x0b,0x0d,0x0f,0x0b, +0x0b,0x0f,0x0d,0x03,0x0c,0x01,0x05,0x18,0x08,0x0c,0x07,0x00,0x3f,0xcd,0x3f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x01,0x07,0x01,0x11,0x21,0x11, +0x33,0x11,0x21,0x05,0x0a,0xa1,0xfe,0xc7,0xa1,0xfe,0x25,0xa3,0x01,0xa5,0x72,0xfe,0xcb,0x01,0x3a,0xa1,0x01,0xda,0x02,0x48,0xfd,0xb8,0x02,0x48,0x04,0x88,0xfe,0x58,0x72,0x01,0x39,0xfc,0xea,0x01,0x22,0xfe,0xde,0x00,0x00,0x01,0x00,0xb4,0xff,0xe9,0x04,0xc6,0x06,0xd0,0x00,0x1b,0x00,0x4b,0xb9,0x00,0x00,0x01,0x84,0x40,0x0d,0x12, +0x11,0x07,0x04,0x11,0x11,0x04,0x07,0x03,0x1d,0x14,0x10,0x0d,0xb8,0x01,0x85,0x40,0x13,0x0e,0x0a,0x9b,0x11,0x12,0x14,0x18,0x12,0x18,0x12,0x0e,0x0f,0x13,0x07,0x0e,0x18,0x04,0x03,0x19,0x00,0x3f,0x33,0x3f,0x3f,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x39,0x11,0x33,0xed,0x01,0x2f,0xed,0x32,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33, +0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x27,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x00,0x07,0x23,0x11,0x33,0x01,0x07,0x01,0x11,0x36,0x37,0x36,0x33,0x32,0x16,0x16,0x04,0xc6,0xd5,0x96,0x37,0x7c,0x95,0x86,0x70,0xd8,0xfe,0xef,0x01,0xa1,0xa3,0x01,0xa6,0x72,0xfe,0xca,0x51,0x87,0x7f,0x93,0x71,0xb5,0x61,0x01,0xa6,0x9a,0xf6,0x2d,0x7b, +0x21,0xb4,0x6d,0x62,0x74,0xfe,0x82,0xfe,0x06,0xd0,0xfe,0x58,0x72,0x01,0x39,0xfb,0xf9,0x89,0x47,0x47,0x51,0x9e,0x00,0x02,0x00,0x64,0xff,0xe8,0x03,0xfa,0x06,0xd0,0x00,0x1a,0x00,0x26,0x00,0x5e,0xb9,0x00,0x00,0x01,0x84,0x40,0x13,0x1b,0x21,0x1b,0x21,0x1b,0x05,0x28,0x07,0x0a,0x14,0x11,0x04,0x08,0x12,0x12,0x08,0x0e,0x08,0x16, +0xb8,0x01,0x85,0x40,0x18,0x05,0x1e,0x9b,0x18,0x14,0x08,0x9b,0x09,0x11,0x09,0x16,0x18,0x09,0x18,0x09,0x03,0x0c,0x99,0x0f,0x06,0x24,0x99,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x39,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x01,0x2f,0xed,0xc6,0xc4,0x11,0x39,0x2f,0x12,0x17,0x39,0x11,0x12,0x39,0x39,0x2f,0x2f, +0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x20,0x11,0x10,0x13,0x21,0x35,0x21,0x36,0x37,0x21,0x15,0x21,0x06,0x07,0x21,0x15,0x21,0x02,0x11,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xfa,0xcc,0x8f,0xfe,0x6e,0x7d,0xfe,0xda,0x01,0x61,0x47,0x7a,0x01,0x74,0xfe,0xf2,0x47,0x2f,0x01,0x2f, +0xfe,0x94,0x8b,0x69,0x88,0x8f,0xcc,0x91,0x72,0x58,0x59,0x72,0x70,0x5b,0x5a,0x70,0x01,0x44,0x90,0xcc,0x02,0x57,0x01,0x2d,0x01,0x53,0x92,0xa2,0xdd,0x92,0x83,0x6a,0x92,0xfe,0xa1,0xfe,0xde,0x60,0xcc,0x8e,0x50,0x79,0x78,0x51,0x50,0x7b,0x7a,0x00,0x00,0x02,0x00,0x00,0xff,0xe8,0x05,0x9d,0x06,0xe8,0x00,0x1f,0x00,0x2b,0x00,0x5a, +0xb5,0x0a,0x8a,0x16,0x08,0x16,0x0d,0xb8,0x01,0x84,0xb7,0x26,0x16,0x26,0x16,0x26,0x2d,0x00,0x20,0xb8,0x01,0x84,0x40,0x1b,0x13,0x0a,0x16,0x16,0x1f,0x29,0x29,0x10,0x1f,0x19,0x9b,0x06,0x08,0x06,0x08,0x06,0x1f,0x1d,0x9b,0x02,0x17,0x1f,0x07,0x23,0x99,0x10,0x19,0x00,0x3f,0xed,0x3f,0x33,0xdd,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10, +0xed,0x11,0x12,0x39,0x2f,0x12,0x39,0x11,0x33,0x01,0x2f,0xed,0xc6,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x11,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x33,0x11,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x11,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x01,0x14,0x16,0x33,0x32,0x36, +0x35,0x34,0x26,0x23,0x22,0x06,0x73,0x9d,0x76,0x9d,0x83,0x4e,0x9e,0x5d,0xa3,0x75,0x96,0xca,0x92,0x8f,0xcc,0x98,0x72,0x77,0x93,0x70,0x9d,0x85,0x4c,0x69,0x4e,0x03,0x26,0x77,0x53,0x54,0x77,0x78,0x53,0x53,0x77,0x06,0x67,0x81,0x6d,0x5b,0xb0,0xfb,0xc5,0x1c,0xc0,0x76,0x90,0xcb,0xca,0x91,0x77,0xc0,0x1b,0x03,0x5d,0x62,0x6c,0x5b, +0x5b,0xfb,0x47,0x53,0x77,0x76,0x54,0x54,0x76,0x77,0x00,0x04,0x00,0x82,0xff,0xe8,0x04,0x4e,0x06,0x83,0x00,0x0b,0x00,0x17,0x00,0x2d,0x00,0x39,0x00,0x6f,0x40,0x0a,0x34,0x8a,0x1e,0x0c,0x89,0x12,0x00,0x89,0x06,0x18,0xb8,0x01,0x85,0x40,0x11,0x2e,0x20,0x12,0x2c,0x06,0x2e,0x1e,0x12,0x06,0x2e,0x2e,0x06,0x12,0x1e,0x04,0x22,0x2a, +0xbb,0x01,0x85,0x00,0x29,0x00,0x23,0x01,0x85,0x40,0x11,0x22,0x31,0x9b,0x2c,0x20,0x26,0x26,0x1b,0x22,0x09,0x15,0x03,0x0f,0x29,0x22,0x06,0x37,0xb8,0x01,0x80,0xb1,0x1b,0x19,0x00,0x3f,0xed,0x3f,0x33,0xde,0x32,0xcd,0x32,0x11,0x12,0x39,0x2f,0x39,0x39,0xed,0x01,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12, +0x39,0x11,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x37,0x26,0x03,0x33,0x16,0x16,0x33,0x32,0x36,0x37,0x33,0x02,0x07,0x16,0x03,0x34,0x26,0x23,0x22, +0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x13,0x3d,0x2d,0x2e,0x3d,0x3e,0x2d,0x2c,0x3e,0xfd,0x7f,0x3d,0x2d,0x2e,0x3d,0x3e,0x2d,0x2c,0x3e,0x02,0xbc,0xfe,0xe6,0xcc,0xcc,0xfe,0xe6,0xda,0xd9,0x01,0xa2,0x01,0xbd,0x86,0x87,0xbd,0x01,0xa1,0x02,0xd8,0xda,0xa1,0xbf,0x86,0x86,0xbe,0xbf,0x85,0x86,0xbf,0x06,0x18,0x2b,0x40,0x40,0x2b, +0x2d,0x3e,0x3e,0x2d,0x2b,0x40,0x40,0x2b,0x2d,0x3e,0x3e,0xfb,0x8c,0xc7,0xfe,0xde,0x01,0x20,0xc9,0x01,0x02,0x95,0x93,0x01,0x00,0x7e,0xc5,0xc7,0x7c,0xfe,0xff,0x92,0x95,0xfe,0xfe,0x7f,0xc7,0xc6,0x80,0x83,0xc5,0xc7,0x00,0x03,0x00,0x64,0xff,0xe9,0x05,0xdd,0x06,0xe8,0x00,0x28,0x00,0x35,0x00,0x41,0x00,0x82,0xb9,0x00,0x30,0x01, +0x84,0x40,0x11,0x23,0x0d,0x0d,0x3b,0x06,0x89,0x36,0x04,0x08,0x8b,0x12,0x1d,0x12,0x20,0x03,0x23,0x00,0xb8,0x01,0x84,0x40,0x0c,0x29,0x23,0x36,0x12,0x29,0x29,0x12,0x36,0x23,0x04,0x43,0x3b,0xb8,0x01,0x85,0xb5,0x17,0x2d,0x9b,0x26,0x33,0x3f,0xb8,0x01,0x81,0x40,0x14,0x14,0x38,0x9b,0x1b,0x20,0x03,0x1d,0x36,0x06,0x12,0x06,0x1b, +0x14,0x1b,0x14,0x1b,0x0c,0x33,0x06,0x0d,0xb8,0x01,0x80,0xb1,0x0c,0x19,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x10,0xed,0x10,0xed,0x10,0xd4,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x39,0x39,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x12,0x39,0x2f,0x10,0xed,0x31,0x30,0x01,0x14, +0x06,0x07,0x15,0x14,0x07,0x16,0x15,0x14,0x06,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x27,0x06,0x21,0x22,0x24,0x27,0x34,0x37,0x36,0x33,0x20,0x17,0x36,0x35,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x32,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x06,0x07,0x14,0x16,0x33,0x32,0x36,0x01,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x20,0x37, +0x05,0xdd,0x92,0x81,0x2f,0x2f,0x79,0xf2,0x98,0xb0,0xc2,0x07,0xb5,0xfe,0xc7,0xcb,0xfe,0xec,0x01,0x8b,0x8a,0xcb,0x01,0x38,0xb6,0x07,0x01,0x7c,0x96,0xca,0x91,0x90,0xcc,0x92,0x3b,0x3a,0x55,0x55,0x74,0x01,0x71,0x59,0x56,0x74,0xfe,0x9f,0x8c,0xfe,0xe6,0x87,0xb8,0x57,0x93,0x55,0x01,0x1b,0x8b,0x05,0x8d,0x76,0xc2,0x1d,0x18,0x86, +0x74,0x72,0x88,0x9d,0xeb,0x9e,0x1d,0xa1,0x2b,0xd7,0xa0,0x28,0x29,0xc4,0xd8,0x95,0x97,0x6a,0x6c,0xc3,0x28,0x28,0x18,0x1d,0xbf,0x79,0x90,0xca,0x01,0xcc,0x8f,0x57,0x38,0x3b,0x76,0x54,0x51,0x79,0x76,0xfd,0xef,0xc2,0x74,0x50,0x32,0x5e,0x33,0xc1,0x00,0x02,0x00,0x67,0xff,0xe7,0x04,0x72,0x05,0xb2,0x00,0x0f,0x00,0x1d,0x00,0x2b, +0xb9,0x00,0x0c,0x01,0x86,0xb3,0x1b,0x1b,0x1f,0x14,0xbb,0x01,0x86,0x00,0x04,0x00,0x10,0x01,0x80,0xb2,0x08,0x07,0x17,0xb8,0x01,0x80,0xb1,0x00,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x26,0x26,0x35,0x10,0x12,0x24,0x33,0x32,0x16,0x16,0x15,0x10,0x02,0x04,0x13,0x22,0x06,0x02,0x15, +0x14,0x16,0x33,0x32,0x36,0x12,0x35,0x34,0x26,0x01,0xe2,0x78,0xab,0x58,0xae,0x01,0x28,0xc1,0x69,0xaa,0x61,0xab,0xfe,0xde,0x4a,0x87,0xd4,0x86,0x75,0x70,0x81,0xd2,0x85,0x71,0x19,0x75,0xd1,0x86,0x01,0x19,0x01,0xe9,0xfd,0x6a,0xc3,0x7e,0xfe,0xcf,0xfe,0x0a,0xf9,0x05,0x2d,0xd0,0xfe,0x65,0xd5,0xa5,0xaa,0xcf,0x01,0x9b,0xd0,0xa4, +0xb1,0x00,0x00,0x01,0x00,0x84,0xff,0xe7,0x04,0x18,0x05,0xb5,0x00,0x23,0x00,0x40,0xb9,0x00,0x18,0x01,0x86,0xb2,0x0d,0x13,0x1f,0xb8,0x01,0x86,0x40,0x0d,0x06,0x0d,0x06,0x0d,0x06,0x25,0x00,0x00,0x13,0x00,0x13,0x10,0x03,0xb8,0x01,0x80,0xb2,0x21,0x19,0x16,0xb8,0x01,0x80,0xb1,0x10,0x07,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39, +0x2f,0x2f,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xfd,0xc6,0x10,0xed,0x31,0x30,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x27,0x26,0x23,0x22,0x15,0x14,0x16,0x17,0x1e,0x02,0x15,0x10,0x21,0x22,0x27,0x84,0x3b,0xbe,0x50,0x9c,0x97,0x33,0x4d,0x46,0x3a,0x1f,0xc2,0xbd,0x5d, +0x5b,0x2e,0x35,0x48,0xe4,0x34,0x54,0x49,0x30,0x1d,0xfe,0x26,0xcd,0x7b,0xb2,0x13,0x1a,0x83,0x9b,0x3a,0x7c,0x6b,0x61,0x70,0x78,0x3f,0xb2,0xb7,0x10,0x9e,0x08,0x08,0xb2,0x40,0x88,0x7b,0x6c,0x62,0x69,0x3c,0xfe,0x38,0x1d,0x00,0x00,0x01,0x00,0x67,0xff,0xe7,0x04,0x8e,0x05,0xb2,0x00,0x27,0x00,0x61,0xb9,0x00,0x19,0x01,0x86,0xb4, +0x0b,0x12,0x89,0x13,0x00,0xb8,0x01,0x85,0x40,0x0e,0x27,0x09,0x1d,0x0b,0x1d,0x13,0x27,0x27,0x13,0x1d,0x0b,0x04,0x29,0x21,0xb8,0x01,0x86,0xb2,0x06,0x09,0x1c,0xb8,0x01,0x80,0x40,0x09,0x1d,0x27,0x13,0x13,0x27,0x1d,0x03,0x03,0x16,0xb8,0x01,0x80,0xb2,0x0f,0x07,0x24,0xb8,0x01,0x80,0xb1,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12, +0x17,0x39,0x2f,0x2f,0x2f,0xed,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x02,0x00,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33, +0x32,0x12,0x13,0x04,0x8e,0x5d,0xfe,0xc9,0xde,0xcc,0xe9,0x92,0x7a,0xaa,0x64,0xc0,0x84,0xa0,0xe2,0x1d,0xac,0x18,0x7e,0x65,0x73,0x86,0x97,0x8a,0x28,0x9b,0xc0,0x97,0x7c,0xa0,0xec,0x3f,0x02,0xcf,0xfe,0x7f,0xfe,0x99,0xe4,0xca,0x85,0xd5,0x2a,0x6c,0xc4,0x6b,0xa4,0x5a,0xae,0x91,0x4b,0x56,0x6d,0x57,0x70,0x74,0x9e,0xa7,0x8f,0x7e, +0x95,0x01,0x4f,0x01,0x26,0x00,0x00,0x01,0x00,0x3f,0xff,0xe7,0x04,0x9f,0x05,0x9d,0x00,0x2c,0x00,0x5e,0xb6,0x0e,0x8a,0x1e,0x09,0x8a,0x23,0x15,0xb8,0x01,0x85,0x40,0x0d,0x14,0x1e,0x23,0x14,0x14,0x23,0x1e,0x03,0x2a,0x2e,0x03,0x01,0x29,0xb8,0x01,0x85,0x40,0x0f,0x2c,0x2a,0x2a,0x18,0x25,0x99,0x06,0x04,0x06,0x14,0x06,0x14,0x06, +0x00,0x10,0xb8,0x01,0x80,0xb6,0x1b,0x19,0x03,0x2c,0x99,0x00,0x06,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x3f,0x01,0x2f,0xc6,0xfd,0xc4,0x33,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x21,0x07,0x21,0x03,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x06, +0x15,0x14,0x33,0x32,0x36,0x37,0x37,0x33,0x07,0x0e,0x03,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x36,0x35,0x34,0x23,0x22,0x06,0x07,0x03,0x23,0x01,0x23,0xb1,0x03,0x9f,0x20,0xfd,0xc3,0x4d,0x6c,0x69,0x77,0x90,0x04,0x3d,0x21,0x52,0x2b,0x33,0x17,0x16,0xa2,0x17,0x0f,0x21,0x3e,0x68,0x57,0x70,0x6f,0x26,0x36,0x06,0x84,0x51,0x7f,0x19, +0x91,0xa1,0x01,0x12,0xc0,0x05,0x9d,0x91,0xfe,0x96,0x36,0x84,0x6e,0x10,0x26,0xfe,0xf3,0x79,0x44,0x61,0x44,0x68,0x62,0x6d,0x44,0x75,0x56,0x30,0x69,0x72,0x3a,0xab,0xf1,0x1b,0x1b,0x79,0x51,0x48,0xfd,0x52,0x05,0x0c,0x00,0x02,0x00,0x6b,0xff,0xe7,0x04,0x21,0x05,0xb0,0x00,0x14,0x00,0x21,0x00,0x4f,0xb2,0x10,0x0f,0x03,0xb8,0x01, +0x86,0x40,0x21,0x1e,0x14,0x00,0x01,0x12,0x15,0x0e,0x04,0x1e,0x0f,0x1e,0x00,0x00,0x1e,0x0f,0x03,0x23,0x19,0x89,0x09,0x00,0x0f,0x0f,0x15,0x01,0x0e,0x12,0x04,0x06,0x14,0x10,0x07,0x1b,0xb8,0x01,0x80,0xb1,0x06,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x17,0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x17, +0x39,0x11,0x33,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x01,0x00,0x15,0x14,0x04,0x21,0x22,0x26,0x35,0x34,0x36,0x36,0x37,0x37,0x27,0x37,0x16,0x17,0x36,0x37,0x01,0x0e,0x02,0x15,0x14,0x21,0x32,0x36,0x35,0x34,0x02,0x27,0x04,0x20,0xff,0x00,0x01,0x01,0xfe,0xf8,0xfe,0xf2,0xcb,0xd5,0x51,0x92,0xa5,0x5f,0xaa,0x98,0x3e,0x53,0x78,0x5c, +0xfe,0xfc,0x5d,0xc5,0x69,0x01,0x0b,0xa0,0xb9,0x7d,0x56,0x05,0x4f,0xfe,0xff,0xfe,0x52,0xeb,0xec,0xe2,0xb4,0xb0,0x66,0xc6,0xcb,0xad,0x64,0xfd,0x60,0x53,0x80,0x7a,0x58,0xfe,0x16,0x4b,0xf3,0xd3,0x47,0xe8,0x9a,0x8a,0x54,0x01,0x3f,0x88,0x00,0x02,0x00,0x5c,0xff,0xe7,0x04,0x61,0x05,0xb5,0x00,0x26,0x00,0x32,0x00,0x63,0x41,0x0b, +0x00,0x30,0x01,0x86,0x00,0x21,0x00,0x04,0x01,0x84,0x00,0x1f,0x00,0x00,0x01,0x86,0x00,0x2a,0x00,0x12,0x01,0x85,0x40,0x0c,0x11,0x21,0x1f,0x2a,0x11,0x11,0x2a,0x1f,0x21,0x04,0x34,0x0b,0xb8,0x01,0x86,0x40,0x0a,0x18,0x27,0x1f,0x04,0x11,0x04,0x11,0x04,0x15,0x2d,0xb8,0x01,0x80,0xb2,0x24,0x07,0x0e,0xb8,0x01,0x80,0xb1,0x15,0x19, +0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x06,0x07,0x06,0x06,0x07,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x12,0x37,0x17,0x02,0x00,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x37,0x36,0x36,0x37, +0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x03,0x8f,0x51,0xa4,0x63,0x0b,0x37,0x52,0x49,0x38,0x1e,0x7b,0x7b,0x8f,0xf7,0x3f,0xa2,0x58,0xfe,0xc1,0xd5,0xc6,0xd3,0x1f,0x39,0x4c,0x51,0x45,0x0e,0x3d,0xa0,0x77,0x7f,0x92,0xfe,0x9d,0x5c,0x5f,0x3e,0x2f,0x2b,0x40,0x18,0x04,0xab, +0x4b,0x78,0x54,0x0d,0x2d,0x5e,0x5c,0x50,0x56,0x59,0x30,0x72,0x7a,0x01,0x10,0xd8,0x27,0xfe,0xdc,0xfe,0xc5,0xcb,0xbc,0x3e,0x65,0x5c,0x54,0x58,0x72,0x39,0x74,0x6b,0x77,0x9b,0x93,0xfe,0x0f,0x47,0x31,0x2b,0x41,0x43,0x30,0x35,0x48,0x00,0x00,0x01,0x00,0xd6,0xff,0xe7,0x04,0x48,0x05,0x9a,0x00,0x1e,0x00,0x3d,0xb9,0x00,0x1a,0x01, +0x85,0x40,0x0c,0x19,0x05,0x19,0x01,0x19,0x01,0x19,0x20,0x12,0x8a,0x0b,0x15,0xb8,0x01,0x80,0x40,0x0c,0x05,0x0e,0x08,0x08,0x00,0x19,0x0e,0x06,0x01,0x9a,0x00,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x31,0x30,0x05,0x27,0x36,0x36,0x37,0x37,0x06, +0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x13,0x33,0x03,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x13,0x33,0x03,0x0e,0x02,0x01,0x7d,0x10,0x98,0xae,0x2b,0x34,0x29,0x97,0x57,0x81,0xa4,0x08,0x5d,0xa1,0x5a,0x06,0x5d,0x45,0x55,0x9d,0x2d,0x6a,0xa1,0xbd,0x2e,0x81,0xca,0x19,0x87,0x0c,0xa9,0xc3,0xf1,0x1a,0x22,0x87,0x67,0x2b,0x20,0x01, +0xc6,0xfe,0x4d,0x1d,0x19,0x35,0x43,0x32,0x2a,0x02,0x05,0xfc,0x7e,0xd5,0xdf,0x77,0x00,0x01,0x00,0x59,0xff,0xe7,0x04,0x5f,0x05,0xb5,0x00,0x19,0x00,0x41,0xb2,0x0c,0x0d,0x12,0xb8,0x01,0x86,0x40,0x11,0x07,0x0d,0x07,0x0d,0x07,0x1b,0x00,0x89,0x19,0x0d,0x0c,0x19,0x0c,0x19,0x0c,0x0f,0x02,0xb8,0x01,0x80,0xb2,0x16,0x19,0x0a,0xb8, +0x01,0x80,0xb1,0x0f,0x07,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x16,0x33,0x32,0x36,0x36,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x21,0x32,0x16,0x15,0x10,0x02,0x04,0x23,0x22,0x26,0x27,0x01,0x0d,0x2e,0x9a,0x69,0xaf,0x7f, +0x4c,0x75,0x71,0x9e,0x75,0x89,0xa9,0x01,0x04,0xb1,0xcb,0xae,0xfe,0xd6,0xc0,0x8c,0xc8,0x1a,0x01,0x34,0xaf,0x7f,0xe7,0x01,0x44,0x99,0xa1,0xae,0x96,0x5a,0xda,0xf9,0xd4,0xfe,0xe8,0xfe,0x14,0xfd,0xb4,0x98,0x00,0x01,0x00,0x7b,0xff,0xe7,0x04,0x7f,0x05,0xb2,0x00,0x1a,0x00,0x3f,0x40,0x0b,0x0d,0x0c,0x1a,0x89,0x00,0x0c,0x00,0x0c, +0x00,0x1c,0x07,0xb8,0x01,0x86,0xb7,0x13,0x0d,0x0c,0x00,0x0c,0x00,0x10,0x02,0xb8,0x01,0x80,0xb2,0x17,0x07,0x0a,0xb8,0x01,0x80,0xb1,0x10,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x06,0x02,0x15,0x14,0x16,0x33, +0x32,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x10,0x12,0x24,0x33,0x32,0x16,0x17,0x03,0xcc,0x30,0x98,0x69,0xad,0x80,0x4c,0x75,0x70,0x9e,0x75,0x88,0x57,0xd3,0x82,0xaf,0xcc,0xae,0x01,0x28,0xc1,0x8d,0xc7,0x19,0x04,0x65,0xaf,0x7c,0xe7,0xfe,0xbd,0x9a,0xa5,0xaa,0x96,0x5a,0x70,0x6a,0xf9,0xd3,0x01,0x19,0x01,0xe9,0xfd,0xb6,0x96, +0x00,0x01,0x00,0x8b,0xff,0xe7,0x04,0x9b,0x05,0x9d,0x00,0x15,0x00,0x29,0xb9,0x00,0x08,0x01,0x85,0xb4,0x07,0x07,0x17,0x13,0x00,0xb8,0x01,0x86,0xb4,0x0f,0x07,0x12,0x06,0x03,0xb8,0x01,0x80,0xb1,0x0c,0x19,0x00,0x3f,0xed,0x3f,0x33,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x13,0x33, +0x03,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x13,0x33,0x03,0x06,0x01,0x32,0x68,0x6d,0x75,0x88,0x22,0xd3,0xa2,0xd8,0x32,0xe2,0xbf,0xa7,0xbe,0x31,0xb1,0xa2,0xaf,0x2e,0x01,0x45,0x67,0x59,0x97,0x99,0x03,0xe7,0xfc,0x0a,0xef,0xd0,0xa3,0x8f,0x6c,0xd2,0x03,0x46,0xfc,0xca,0xcf,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x05,0x9a, +0x02,0x06,0x0d,0xf2,0x00,0x00,0xff,0xff,0xff,0xd0,0xfe,0x9d,0x02,0x51,0x05,0x9a,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xad,0xf9,0xeb,0x00,0x0b,0xb6,0x01,0x00,0x16,0x0c,0x0b,0x05,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xf9,0x00,0x00,0x02,0x29,0x07,0x18,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x04,0x2a, +0xfe,0xb9,0x01,0x84,0x00,0x13,0x40,0x0b,0x01,0x00,0x12,0x0c,0x0b,0x05,0x25,0x01,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0x86,0x00,0x00,0x01,0xf0,0x07,0x5e,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x04,0x6e,0x00,0xa9,0x01,0x5e,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x78,0x40,0x0a,0x12,0x0c,0x0b,0x05, +0x25,0x02,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x05,0x9a,0x02,0x06,0x0d,0xf2,0x00,0x00,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xfe,0x07,0x66,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0x8e,0xff,0xf2,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xe8,0x40,0x09,0x0d, +0x0d,0x0b,0x05,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xfd,0x00,0x00,0x02,0x31,0x07,0x6b,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xd7,0xff,0xa1,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x10,0x05,0x26,0x01,0x00,0x10,0x0c,0x0b,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0xff,0xbe, +0x00,0x00,0x03,0x58,0x05,0xa1,0x00,0x27,0x0d,0xf2,0x01,0x68,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x74,0xff,0x9b,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x40,0x40,0x09,0x0d,0x19,0x0b,0x05,0x25,0x02,0x01,0x1b,0x03,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xbd,0x00,0x00,0x03,0x6e,0x05,0xa1,0x00,0x27,0x0d,0xf2, +0x01,0x7e,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7b,0xff,0x9b,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x31,0x40,0x09,0x0d,0x19,0x0b,0x05,0x25,0x02,0x01,0x1c,0x03,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xc1,0x00,0x00,0x03,0x67,0x05,0xa1,0x00,0x27,0x0d,0xf2,0x01,0x77,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x7d, +0xff,0x9b,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x3a,0x40,0x09,0x0f,0x19,0x0b,0x05,0x25,0x02,0x01,0x1b,0x03,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xbe,0x00,0x00,0x03,0x6e,0x05,0xb3,0x00,0x27,0x0d,0xf2,0x01,0x7e,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x8b,0xff,0x30,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x41, +0x40,0x09,0x12,0x0c,0x0b,0x05,0x25,0x02,0x01,0x15,0x04,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xc0,0x00,0x00,0x03,0x88,0x05,0xa1,0x00,0x27,0x0d,0xf2,0x01,0x98,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x88,0xff,0x9b,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x25,0x40,0x09,0x0f,0x19,0x0b,0x05,0x25,0x02,0x01,0x1c, +0x03,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xbe,0x00,0x00,0x03,0x6e,0x05,0xb3,0x00,0x27,0x0d,0xf2,0x01,0x7e,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x8b,0xff,0x30,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x41,0x40,0x09,0x12,0x0c,0x0b,0x05,0x25,0x02,0x01,0x15,0x04,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00, +0xff,0xff,0xff,0xbf,0x00,0x00,0x02,0x48,0x05,0xa1,0x00,0x26,0x0d,0xf2,0x58,0x00,0x01,0x07,0x04,0x61,0xfd,0xdd,0xff,0x7e,0x00,0x14,0xb9,0x00,0x01,0xfe,0xb9,0xb7,0x10,0x0c,0x0b,0x05,0x25,0x01,0x13,0x04,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x02,0x4a,0x05,0xa1,0x00,0x26,0x0d,0xf2,0x5a,0x00,0x01,0x07, +0x04,0x27,0xfd,0xda,0xff,0x7e,0x00,0x14,0xb9,0x00,0x01,0xfe,0xb5,0xb7,0x0d,0x18,0x0b,0x05,0x25,0x01,0x15,0x04,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xfe,0x00,0x00,0x02,0x22,0x07,0x0a,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x04,0x66,0x01,0x10,0x01,0x4c,0x00,0x13,0x40,0x0b,0x01,0x00,0x12,0x0c,0x0b,0x05,0x25,0x01, +0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xf2,0x00,0x00,0x02,0x39,0x06,0xe3,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x75,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x05,0x1b,0x15,0x0b,0x05,0x25,0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xf2, +0x00,0x00,0x02,0x39,0x06,0xe3,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x75,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x05,0x1b,0x15,0x0b,0x05,0x25,0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xf2,0x00,0x00,0x02,0x39,0x06,0xe3,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07, +0x00,0x8f,0xff,0x75,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x05,0x1b,0x15,0x0b,0x05,0x25,0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x05,0x9a,0x02,0x06,0x0d,0xf2,0x00,0x00,0xff,0xff,0x00,0x30,0xfe,0x70,0x01,0xf0,0x05,0x9a,0x02,0x26,0x0d,0xf2,0x00,0x00, +0x01,0x06,0x00,0xdf,0x12,0x00,0x00,0x0b,0xb6,0x01,0x00,0x1a,0x0c,0x0b,0x05,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x05,0x9a,0x02,0x06,0x0d,0xf2,0x00,0x00,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x07,0x83,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x02,0x50,0xff,0xf0,0x01,0x5c,0x00,0x13,0x40,0x0b, +0x01,0x00,0x16,0x15,0x0b,0x05,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x30,0xff,0xe8,0x04,0x4c,0x05,0x9a,0x00,0x26,0x0d,0xf2,0x00,0x00,0x00,0x07,0x00,0x2d,0x02,0x21,0x00,0x00,0xff,0xff,0xff,0xd1,0x00,0x00,0x02,0x52,0x07,0x0c,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xae, +0x01,0x5a,0x00,0x13,0x40,0x0b,0x01,0x00,0x16,0x0c,0x0b,0x05,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x30,0xfe,0xc6,0x01,0xf0,0x05,0x9a,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x06,0x02,0x45,0xbc,0x00,0x00,0x0b,0xb6,0x01,0x00,0x0f,0x15,0x0b,0x05,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x1c, +0x00,0x00,0x01,0xf0,0x07,0x66,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0x43,0xff,0xca,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xc5,0x40,0x09,0x0e,0x0c,0x0b,0x05,0x25,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xc7,0x00,0x00,0x02,0x4a,0x05,0x9b,0x00,0x26,0x0d,0xf2,0x5a,0x00,0x01,0x07,0x04,0x60, +0xfd,0xf6,0xff,0x9b,0x00,0x14,0xb9,0x00,0x01,0xfe,0xd0,0xb7,0x0e,0x0c,0x0b,0x05,0x25,0x01,0x0f,0x03,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xc7,0x00,0x00,0x02,0x4a,0x05,0x9b,0x00,0x26,0x0d,0xf2,0x5a,0x00,0x01,0x07,0x01,0x9f,0xfe,0xf9,0xff,0x9a,0x00,0x14,0xb9,0x00,0x01,0xfe,0xcf,0xb7,0x0e,0x0c,0x0b,0x05,0x25,0x01, +0x0f,0x03,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xf3,0x00,0x00,0x02,0x3a,0x07,0xd1,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x02,0xd5,0xff,0x76,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x06,0x1f,0x19,0x0b,0x05,0x25,0x03,0x02,0x01,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff, +0xff,0xf8,0x00,0x00,0x02,0x2a,0x07,0x62,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xe0,0xff,0x92,0x01,0x56,0x00,0x13,0x40,0x0b,0x01,0x00,0x0f,0x0c,0x0b,0x05,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x02,0x0e,0x06,0x79,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x04,0x64, +0x01,0x10,0x01,0x4a,0x00,0x13,0x40,0x0b,0x01,0x00,0x0e,0x0f,0x0b,0x05,0x25,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xaf,0x00,0x00,0x02,0x2c,0x05,0x9b,0x00,0x26,0x0d,0xf2,0x3c,0x00,0x01,0x07,0x04,0x55,0xfd,0xde,0xff,0x9b,0x00,0x14,0xb9,0x00,0x01,0xfe,0xd6,0xb7,0x0e,0x0c,0x0b,0x05,0x25,0x01, +0x0f,0x03,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x06,0xe2,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0x42,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x0f,0x15,0x0b,0x05,0x25,0x01,0x0c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x14,0x00,0x00,0x02,0x10,0x06,0x79, +0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xd9,0xff,0xd6,0x01,0x4a,0x00,0x13,0x40,0x0b,0x01,0x00,0x0e,0x0f,0x0b,0x05,0x25,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x02,0x24,0x07,0x1a,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xda,0xff,0xda,0x01,0x5c,0x00,0x13,0x40,0x0b, +0x01,0x00,0x12,0x0c,0x0b,0x05,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x14,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x09,0x00,0x15,0x00,0x4b,0x00,0x55,0x00,0x5b,0x00,0x61,0x00,0x67,0x00,0x6d,0x00,0x71,0x00,0x75,0x00,0x79,0x00,0x7d,0x00,0x81,0x00,0x85,0x00,0x89,0x00,0x8d,0x00,0x91,0x00,0x95, +0x00,0x99,0x00,0x9d,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x11,0x33,0x21,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e, +0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x05,0x21,0x35,0x33,0x11,0x07,0x35,0x37,0x11,0x33,0x01,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35, +0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x03,0x20,0x97,0x8b,0x8b,0x61,0xf8,0x02,0x1a,0x94,0x6e,0x92,0x68,0x5a,0x07,0x01,0x02,0x02,0x07,0x5a,0xfd,0x35,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d, +0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40,0x02,0xe0,0xfe,0xf0,0x59,0x5b,0xba,0x58,0xfb,0xbb,0xeb,0x96,0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56, +0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0x04,0x7b,0x6a,0x4e,0xa7,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0xd4,0x18,0x13,0x15,0x18,0x01,0x2a,0xfc,0x44,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08, +0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x04,0x4b,0x01,0x0b,0x13,0x4c,0x26,0xfe,0x96,0x03,0x8b,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c, +0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0x00,0x14,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x09,0x00,0x15,0x00,0x4b,0x00,0x61,0x00,0x67,0x00,0x6d,0x00,0x73,0x00,0x79,0x00,0x7d,0x00,0x81,0x00,0x85,0x00,0x89,0x00,0x8d,0x00,0x91,0x00,0x95,0x00,0x99, +0x00,0x9d,0x00,0xa1,0x00,0xa5,0x00,0xa9,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x11,0x33,0x21,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14, +0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x25,0x15,0x33,0x15,0x21,0x35,0x37,0x36,0x36,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x01,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35, +0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x03,0x20,0x97,0x8b,0x8b,0x61,0xf8,0x02,0x1a,0x94,0x6e,0x92,0x68,0x5a,0x07,0x01,0x02,0x02,0x07,0x5a,0xfd,0x35, +0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40,0x02,0x2f,0xae,0xfe,0xe5,0x7c,0x25,0x1e,0x40,0x37,0x33,0x38,0x47,0x42,0x4a,0x5b,0xfc,0x14,0xeb,0x96,0x04, +0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0x04,0x7b,0x6a,0x4e,0xa7,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0xd4,0x18,0x13,0x15,0x18, +0x01,0x2a,0xfc,0x44,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x4d,0x02,0x4f,0x4a,0x76,0x24,0x30,0x1b,0x3b,0x2c,0x53,0x25,0x43,0x38,0x4b, +0x51,0x03,0x37,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0x00,0x00,0x14,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0, +0x00,0x09,0x00,0x15,0x00,0x4b,0x00,0x6e,0x00,0x74,0x00,0x7a,0x00,0x80,0x00,0x86,0x00,0x8a,0x00,0x8e,0x00,0x92,0x00,0x96,0x00,0x9a,0x00,0x9e,0x00,0xa2,0x00,0xa6,0x00,0xaa,0x00,0xae,0x00,0xb2,0x00,0xb6,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x11,0x33,0x21,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13, +0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x25,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35, +0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x01,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01, +0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x03,0x20,0x97,0x8b,0x8b,0x61,0xf8,0x02,0x1a,0x94,0x6e,0x92,0x68,0x5a,0x07,0x01,0x02,0x02,0x07,0x5a,0xfd,0x35,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34, +0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40,0x01,0xd9,0x2b,0x3a,0x24,0x28,0x32,0x2b,0x27,0x24,0x54,0x41,0x2b,0x29,0x2d,0x3d,0x42,0x49,0x55,0x2d,0x35,0x58,0x4e,0x42,0xfc,0x98,0xeb,0x96,0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56, +0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0x04,0x7b,0x6a,0x4e,0xa7,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0xd4,0x18,0x13,0x15,0x18,0x01,0x2a,0xfc,0x45,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a, +0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x0a,0x52,0x1f,0x1f,0x1c,0x1d,0x1f,0x48,0x38,0x35,0x1c,0x4d,0x17,0x3b,0x30,0x54,0x15,0x02,0x06,0x37,0x27,0x3d,0x46,0x03,0xdd,0xec, +0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0x00,0x00,0x13,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x0b,0x00,0x41, +0x00,0x5d,0x00,0x63,0x00,0x69,0x00,0x6f,0x00,0x75,0x00,0x79,0x00,0x7d,0x00,0x81,0x00,0x85,0x00,0x89,0x00,0x8d,0x00,0x91,0x00,0x95,0x00,0x99,0x00,0x9d,0x00,0xa1,0x00,0xa5,0x00,0x00,0x01,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x13,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35, +0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x13,0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x03,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x15,0x23,0x11,0x33,0x17,0x16,0x17,0x33,0x36,0x37,0x37,0x33,0x25,0x35,0x33,0x15,0x23,0x15,0x25,0x35, +0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33, +0x03,0x82,0x94,0x6e,0x92,0x68,0x5a,0x07,0x01,0x02,0x02,0x07,0x5a,0xe5,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40,0x7b,0x60,0x04,0x02,0x08,0x06,0x65, +0x4f,0x67,0x04,0x09,0x03,0x04,0x57,0x8e,0x58,0x0a,0x05,0x02,0x08,0x09,0x58,0x8a,0xfc,0x28,0xeb,0x96,0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55, +0x05,0x6b,0x56,0x56,0x02,0xac,0xfe,0x52,0x01,0xae,0xfe,0xd4,0x18,0x13,0x15,0x18,0x01,0x2a,0xfe,0x63,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d, +0x0c,0x02,0x19,0x01,0x01,0x2a,0x32,0x27,0x12,0xfe,0xdc,0x01,0x21,0x0c,0x30,0x3f,0x30,0xee,0x01,0xae,0xff,0x1f,0x1e,0x23,0x1b,0xfe,0x0a,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03, +0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0x00,0x00,0x03,0x00,0x93,0xff,0x43,0x03,0x75,0x05,0xb8,0x00,0x1e,0x00,0x25,0x00,0x2a,0x00,0x5b,0xb1,0x16,0x1c,0xb8,0x01,0x84,0x40,0x0d,0x29,0x19,0x13,0x00,0x00,0x1f,0x10,0x09,0x03,0x03,0x0d,0x29,0x23,0xb8,0x01,0x84,0x40,0x0b,0x06,0x0d,0x1f,0x19,0x13,0x09, +0x26,0x0a,0x03,0x20,0x18,0xb8,0x01,0x7e,0xb6,0x10,0x7f,0x13,0x01,0x13,0x27,0x09,0xb8,0x01,0x7e,0xb1,0x00,0x03,0x00,0x2f,0x33,0xed,0x32,0x2f,0x71,0x33,0xed,0x32,0x11,0x39,0x39,0x11,0x12,0x39,0x39,0x01,0x2f,0x33,0xed,0x2f,0x12,0x39,0x2f,0x33,0x33,0x33,0x33,0x11,0x33,0x33,0x10,0xed,0x32,0x31,0x30,0x25,0x15,0x23,0x35,0x22, +0x27,0x35,0x16,0x16,0x33,0x11,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x15,0x26,0x27,0x11,0x16,0x16,0x15,0x14,0x06,0x03,0x11,0x06,0x06,0x15,0x14,0x16,0x13,0x11,0x36,0x35,0x34,0x02,0x2e,0x5e,0xc1,0x79,0x35,0xb6,0x4f,0xc7,0x76,0xb3,0x8a,0x5e,0xb2,0x44,0x5d,0x99,0xbd,0x8a,0xad,0xf8,0x4c,0x59,0x48,0xbb,0xaf, +0x07,0xc4,0xbd,0x4e,0x9e,0x2f,0x3e,0x01,0xd0,0x60,0xa2,0x6e,0x84,0xbf,0x13,0xa3,0x9f,0x06,0x2d,0x9a,0x48,0x06,0xfe,0x21,0x59,0xa8,0x6b,0x80,0xaf,0x02,0xce,0x01,0xa6,0x0f,0x68,0x4b,0x4d,0x64,0xfe,0xff,0xfe,0x66,0x26,0x97,0x7d,0x00,0x00,0x05,0x00,0x48,0xff,0xec,0x05,0xaa,0x05,0x27,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x27, +0x00,0x33,0x00,0x6f,0xb5,0x18,0x1a,0x18,0x1a,0x03,0x25,0xbe,0x01,0x83,0x00,0x31,0x00,0x09,0x01,0x83,0x00,0x15,0x00,0x2b,0x01,0x83,0xb7,0x1f,0x15,0x1f,0x15,0x1f,0x03,0x31,0x0f,0xbb,0x01,0x83,0x00,0x03,0x00,0x12,0x01,0x7d,0xb5,0x70,0x00,0x01,0x00,0x00,0x0c,0xb8,0x01,0x7d,0xb6,0x06,0x06,0x7f,0x1b,0x01,0x1b,0x28,0xb8,0x01, +0x7d,0xb2,0x22,0x22,0x2e,0xb8,0x01,0x7d,0xb2,0x1c,0x1c,0x1a,0x00,0x2f,0x33,0x2f,0xed,0x33,0x2f,0xed,0x2f,0x71,0x33,0x2f,0xed,0x33,0x2f,0x71,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03, +0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x25,0x01,0x23,0x01,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x6e,0x86,0xa0,0xa9,0x8f,0x8b,0x99,0xab,0x7e,0x56,0x64,0x62,0x54,0x55,0x60,0x5f,0x03,0x07,0xfc,0xbe,0x81,0x03,0x40,0x23, +0x86,0xa0,0xab,0x8d,0x8a,0x9a,0xac,0x7e,0x57,0x62,0x62,0x54,0x55,0x60,0x5f,0x02,0x88,0xb0,0x94,0xa1,0xba,0xac,0x9c,0x9c,0xbb,0x02,0x3b,0x7f,0x70,0x6d,0x7b,0x7f,0x71,0x6d,0x7a,0x50,0xfa,0xe4,0x05,0x1c,0xfa,0xd9,0xb2,0x92,0xa2,0xbb,0xae,0x9c,0x9b,0xbc,0x02,0x3b,0x7f,0x70,0x6c,0x7a,0x7f,0x70,0x6e,0x78,0x00,0x03,0x00,0x6c, +0xff,0xeb,0x05,0xa8,0x05,0x29,0x00,0x43,0x00,0x57,0x00,0x67,0x00,0x7e,0xb1,0x41,0x33,0xbb,0x01,0x84,0x00,0x2c,0x00,0x60,0x01,0x84,0xb6,0x17,0x12,0x4e,0x24,0x03,0x17,0x21,0xb8,0x01,0x84,0xb3,0x58,0x29,0x05,0x38,0xb8,0x01,0x85,0x40,0x0b,0x49,0x17,0x58,0x49,0x49,0x58,0x17,0x03,0x0f,0x2c,0x53,0xb8,0x01,0x84,0xb3,0x0f,0x24, +0x12,0x4e,0xb8,0x01,0x7e,0x40,0x0c,0x29,0x49,0x38,0x05,0x04,0x0a,0x65,0x2f,0x65,0x2f,0x44,0x5d,0xb8,0x01,0x7e,0xb2,0x1c,0x3d,0x44,0xb8,0x01,0x7e,0xb1,0x00,0x0a,0x00,0x2f,0x33,0xed,0x32,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0xed,0x39,0x39,0x01,0x2f,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x39,0x39, +0x10,0xed,0x11,0x17,0x39,0x10,0xed,0x10,0xfd,0xc4,0x31,0x30,0x05,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x17,0x36,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x14,0x0e,0x02,0x07,0x1e,0x03,0x33,0x32,0x36,0x37, +0x15,0x06,0x06,0x25,0x32,0x3e,0x02,0x37,0x2e,0x03,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x14,0x1e,0x02,0x17,0x36,0x36,0x05,0x1d,0x33,0x4f,0x43,0x3f,0x22,0x25,0x5f,0x74,0x89,0x51,0x62,0xa3,0x74,0x40,0x9d,0x91,0x1c,0x36,0x2b,0x1a,0x34,0x5a,0x7c,0x47,0x47,0x75,0x54,0x2f,0x7c,0x7c,0x3e, +0x66,0x56,0x4a,0x24,0x4a,0x4a,0x08,0x07,0x90,0x07,0x03,0x02,0x23,0x3a,0x4d,0x2a,0x1f,0x35,0x35,0x39,0x25,0x1b,0x38,0x1e,0x21,0x47,0xfc,0xe5,0x45,0x74,0x62,0x4f,0x21,0x37,0x5e,0x5f,0x6b,0x47,0x39,0x60,0x46,0x28,0x2d,0x4f,0x69,0x01,0x20,0x22,0x34,0x3f,0x1f,0x59,0x6a,0x01,0x17,0x29,0x36,0x1f,0x72,0x71,0x15,0x1c,0x34,0x4a, +0x2f,0x27,0x48,0x38,0x22,0x31,0x5f,0x8c,0x5a,0x8b,0xc5,0x3e,0x14,0x35,0x44,0x53,0x31,0x47,0x6f,0x4c,0x27,0x27,0x48,0x66,0x3e,0x6d,0x90,0x33,0x18,0x47,0x57,0x64,0x35,0x66,0xf7,0x87,0x22,0x3d,0x1e,0x1e,0x36,0x25,0x52,0xa7,0x9d,0x8d,0x3b,0x2b,0x41,0x2b,0x15,0x0e,0x0b,0x89,0x0d,0x0d,0x81,0x1e,0x32,0x42,0x24,0x56,0x7a,0x59, +0x40,0x1b,0x17,0x37,0x4b,0x64,0x43,0x3e,0x5e,0x3e,0x20,0x03,0x9d,0x2d,0x40,0x29,0x13,0x60,0x52,0x25,0x42,0x38,0x2b,0x10,0x28,0x6a,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0x8f,0x05,0x29,0x00,0x1b,0x00,0x4d,0xb1,0x14,0x18,0xb8,0x01,0x84,0x40,0x0c,0x08,0x04,0x16,0x0f,0x00,0x00,0x0f,0x16,0x04,0x04,0x1d,0x1a,0xb8,0x01,0x86,0xb3, +0x06,0x01,0x17,0x06,0xb8,0x01,0x7e,0xb4,0x14,0x07,0x07,0x1a,0x11,0xb8,0x01,0x7e,0xb2,0x0c,0x02,0x1a,0xb9,0x01,0x7e,0x00,0x01,0x00,0x2f,0xed,0x32,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xc4,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x21,0x35,0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x34, +0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x15,0x21,0x15,0x21,0x15,0x14,0x07,0x21,0x03,0x8f,0xfc,0xd1,0xc6,0xb3,0xb3,0xc5,0x9d,0x6a,0x57,0x5b,0x64,0xd0,0x01,0x0c,0xfe,0xf4,0xaf,0x02,0x84,0x7a,0x3f,0xdd,0xa9,0x80,0xe6,0xab,0xd9,0x25,0x8d,0x34,0xfe,0xea,0xd6,0x80,0x8d,0xdb,0x58,0x00,0x02,0x00,0x77,0xff,0xc4,0x02,0xdb, +0x05,0x47,0x00,0x26,0x00,0x30,0x00,0x5c,0xb2,0x1c,0x00,0x25,0xbb,0x01,0x84,0x00,0x2e,0x00,0x20,0x01,0x84,0xb2,0x07,0x16,0x02,0xb8,0x01,0x84,0x40,0x09,0x0d,0x16,0x0d,0x16,0x0d,0x12,0x2e,0x14,0x29,0xb8,0x01,0x84,0x40,0x0c,0x12,0x00,0x2c,0x14,0x27,0x20,0x27,0x2c,0x0d,0x04,0x05,0x1e,0xbc,0x01,0x7e,0x00,0x19,0x00,0x0a,0x01, +0x7e,0x00,0x05,0x00,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0xfd,0xc5,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xc4,0xed,0x10,0xfd,0xcd,0xc4,0x31,0x30,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17, +0x15,0x26,0x23,0x22,0x15,0x14,0x16,0x17,0x16,0x15,0x14,0x01,0x06,0x15,0x14,0x16,0x17,0x36,0x35,0x34,0x26,0x02,0x54,0x52,0xb6,0x8c,0x77,0x61,0x75,0x6d,0x4c,0x53,0x40,0x83,0xd3,0x85,0x60,0xa9,0x8b,0x76,0x50,0x5b,0x6f,0x98,0x49,0x94,0xca,0xfe,0x8e,0x5c,0x66,0x80,0x50,0x5f,0x01,0x79,0x43,0x66,0x77,0x95,0x33,0x8f,0x43,0x48, +0x36,0x30,0x42,0x46,0x6e,0xb1,0x94,0x49,0x4b,0x7f,0x73,0x95,0x27,0x8f,0x38,0x83,0x31,0x52,0x47,0x61,0xa8,0x9a,0x01,0x5b,0x2e,0x62,0x41,0x63,0x39,0x3d,0x5f,0x41,0x5b,0x00,0x00,0x01,0x00,0x3e,0x00,0x00,0x03,0xb0,0x05,0x13,0x00,0x1b,0x00,0x72,0xb3,0x10,0x0c,0x05,0x09,0xbb,0x01,0x84,0x00,0x0a,0x00,0x01,0x01,0x82,0x40,0x15, +0x18,0x03,0x07,0x0c,0x12,0x0a,0x0e,0x18,0x07,0x07,0x18,0x0e,0x0a,0x12,0x0c,0x06,0x00,0x13,0x00,0x08,0x0c,0xb8,0x01,0x7e,0xb4,0x0d,0x05,0x0d,0x04,0x10,0xb8,0x01,0x7e,0x40,0x13,0x11,0x01,0x18,0x11,0x0f,0x11,0x1f,0x11,0x02,0x0d,0x11,0x0d,0x11,0x0a,0x13,0x7f,0x00,0x01,0x00,0x00,0x2f,0x71,0x32,0x2f,0x39,0x39,0x2f,0x2f,0x5d, +0x11,0x39,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x10,0xed,0x32,0x11,0x33,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x01,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x03,0xb0, +0xfe,0xbe,0x01,0x02,0xfe,0xd1,0x01,0x2f,0xfe,0xd1,0x94,0xfe,0xc8,0x01,0x38,0xfe,0xc8,0x01,0x08,0xfe,0xc1,0xae,0xe2,0x19,0x12,0x03,0x0c,0x21,0xe4,0x05,0x13,0xfd,0xae,0x7e,0xbc,0x7e,0xfe,0xf7,0x01,0x09,0x7e,0xbc,0x7e,0x02,0x52,0xfe,0x2f,0x35,0x30,0x26,0x44,0x01,0xcc,0x00,0x00,0x01,0x00,0x96,0xfe,0x99,0x03,0xb5,0x03,0xa0, +0x00,0x18,0x00,0x29,0xb1,0x0e,0x0a,0xbb,0x01,0x84,0x00,0x0b,0x00,0x17,0x01,0x84,0xb5,0x14,0x03,0x15,0x0d,0x0b,0x11,0xb8,0x01,0x7e,0xb1,0x06,0x01,0x00,0x2f,0x2f,0xed,0x2f,0x2f,0x33,0x01,0x2f,0x33,0xed,0x2f,0xed,0x32,0x31,0x30,0x21,0x23,0x26,0x35,0x23,0x06,0x23,0x22,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x14,0x16,0x33,0x32, +0x36,0x35,0x11,0x33,0x11,0x14,0x03,0xb5,0x9a,0x14,0x05,0x4c,0xb1,0x97,0x40,0x04,0x94,0x94,0x7d,0x65,0x6d,0x89,0x96,0x41,0x57,0xad,0x70,0xfe,0x3e,0x05,0x07,0xfd,0xc9,0x73,0x88,0x9b,0x84,0x02,0x13,0xfd,0x50,0xaa,0x00,0x01,0x00,0x2e,0xfe,0x57,0x04,0x48,0x05,0x13,0x00,0x0b,0x00,0x32,0xb1,0x08,0x0a,0xbb,0x01,0x86,0x00,0x01, +0x00,0x09,0x01,0x86,0x40,0x10,0x03,0x03,0x00,0x04,0x01,0x07,0x00,0x08,0x9a,0x7f,0x05,0x01,0x05,0x0a,0x9a,0x01,0x00,0x2f,0xed,0x2f,0x71,0xed,0x01,0x2f,0x33,0x2f,0x33,0x12,0x39,0x2f,0xed,0x10,0xed,0x32,0x31,0x30,0x01,0x21,0x35,0x01,0x01,0x35,0x21,0x15,0x21,0x01,0x01,0x21,0x04,0x48,0xfb,0xe6,0x02,0x65,0xfd,0xbd,0x03,0xd4, +0xfd,0x0b,0x02,0x1a,0xfd,0xca,0x03,0x35,0xfe,0x57,0x47,0x03,0x20,0x03,0x04,0x51,0x8b,0xfd,0x39,0xfd,0x21,0x00,0x00,0x01,0x00,0x5c,0xff,0xea,0x03,0x97,0x05,0x29,0x00,0x25,0x00,0x58,0xb4,0x14,0x25,0x25,0x27,0x1d,0xb8,0x01,0x85,0xb2,0x09,0x21,0x05,0xb8,0x01,0x7e,0xb4,0x06,0x1e,0x06,0x1c,0x0c,0xb8,0x01,0x7e,0x40,0x13,0x0d, +0x19,0x0d,0x0f,0x06,0x1f,0x06,0x02,0x3f,0x0d,0x4f,0x0d,0x02,0x06,0x0d,0x06,0x0d,0x23,0x16,0xbc,0x01,0x7e,0x00,0x11,0x00,0x23,0x01,0x7e,0x00,0x02,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0x39,0x31,0x30,0x25,0x06,0x23,0x20, +0x03,0x23,0x35,0x33,0x26,0x35,0x34,0x37,0x23,0x35,0x33,0x36,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x06,0x17,0x21,0x15,0x21,0x12,0x33,0x32,0x37,0x03,0x97,0x79,0x87,0xfe,0x7d,0x4a,0x6e,0x62,0x03,0x05,0x64,0x77,0x2e,0x01,0x01,0xb7,0x7c,0x62,0x68,0x80,0x72,0xb0,0x24,0x01,0xc3,0xfe,0x2a,0x08,0x07, +0x01,0xd7,0xfe,0x37,0x41,0xfc,0x77,0x80,0x2d,0x43,0x01,0xcb,0x7f,0x1c,0x29,0x2c,0x36,0x7f,0xd9,0xf6,0x33,0x93,0x47,0xb6,0x9a,0x7f,0x5a,0x4d,0x7f,0xfe,0xb4,0x4f,0x00,0x03,0x00,0x73,0x00,0x00,0x06,0x30,0x05,0x27,0x00,0x09,0x00,0x0d,0x00,0x24,0x00,0x70,0xb1,0x0e,0x1f,0xbe,0x01,0x83,0x00,0x14,0x00,0x08,0x01,0x82,0x00,0x03, +0x00,0x23,0x01,0x84,0x40,0x11,0x19,0x0f,0x03,0x00,0x0f,0x0f,0x00,0x03,0x03,0x05,0x0a,0x14,0x0c,0x01,0x05,0x08,0x02,0xbb,0x01,0x7d,0x00,0x01,0x00,0x17,0x01,0x7d,0xb7,0x1c,0x01,0x1c,0x01,0x1c,0x0d,0x10,0x23,0xb8,0x01,0x7d,0x40,0x0a,0x0f,0x04,0x99,0x07,0x07,0x7f,0x0d,0x01,0x0d,0x0c,0x00,0x2f,0x2f,0x71,0x33,0x2f,0xed,0x2f, +0xed,0x32,0x11,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x01,0x2f,0x33,0xc4,0x2f,0xc4,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc4,0xed,0x10,0xed,0x10,0xfd,0xc4,0x31,0x30,0x01,0x21,0x35,0x33,0x11,0x07,0x35,0x25,0x11,0x33,0x01,0x01,0x23,0x01,0x01,0x21,0x35,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32, +0x16,0x15,0x14,0x07,0x07,0x15,0x21,0x02,0x43,0xfe,0x37,0xa8,0xaf,0x01,0x25,0xab,0x02,0xab,0xfc,0xf7,0x83,0x03,0x0a,0x01,0xc4,0xfe,0x0a,0xd9,0x5e,0x33,0x45,0x38,0x6b,0x59,0x4d,0x88,0x6b,0x7d,0xb9,0x95,0x01,0x5e,0x02,0x11,0x66,0x02,0x1a,0x32,0x71,0x57,0xfd,0x50,0x02,0x9c,0xfa,0xed,0x05,0x13,0xfa,0xee,0x67,0xd6,0x5c,0x63, +0x32,0x35,0x42,0x5d,0x87,0x45,0x77,0x62,0x8b,0xb1,0x8d,0x04,0x00,0x04,0x00,0x73,0x00,0x00,0x06,0x0a,0x05,0x27,0x00,0x09,0x00,0x0d,0x00,0x18,0x00,0x20,0x00,0x7d,0xb5,0x17,0x10,0x0e,0xa8,0x11,0x08,0xbb,0x01,0x82,0x00,0x03,0x00,0x1d,0x01,0x83,0x40,0x18,0x13,0x03,0x00,0x13,0x13,0x00,0x03,0x03,0x05,0x1e,0x1a,0x19,0x0a,0x11, +0x0c,0x01,0x05,0x04,0x99,0x07,0x07,0x0d,0x0f,0x13,0xb8,0x01,0x7d,0xb5,0x1d,0x17,0x14,0x1d,0x08,0x02,0xb8,0x01,0x7d,0x40,0x11,0x01,0x19,0x15,0x1d,0x01,0x15,0x15,0x01,0x1d,0x03,0x0c,0x7f,0x0d,0x01,0x0d,0x11,0x0c,0x00,0x2f,0x33,0x2f,0x71,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x33,0x10,0xed,0x32, +0x11,0x33,0x2f,0xed,0x01,0x2f,0x33,0xc4,0x2f,0xc4,0x33,0x33,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xf4,0xc6,0x32,0x31,0x30,0x01,0x21,0x35,0x33,0x11,0x07,0x35,0x25,0x11,0x33,0x01,0x01,0x23,0x01,0x01,0x23,0x15,0x23,0x35,0x21,0x35,0x01,0x33,0x11,0x33,0x03,0x23,0x06,0x07,0x03,0x33,0x11,0x34,0x02,0x43, +0xfe,0x37,0xa8,0xaf,0x01,0x25,0xab,0x02,0xab,0xfc,0xf7,0x83,0x03,0x0a,0x01,0x9e,0x64,0x78,0xfe,0x9c,0x01,0x4f,0x8d,0x64,0xd8,0x04,0x0a,0x18,0xc6,0xe8,0x02,0x11,0x66,0x02,0x1a,0x32,0x71,0x57,0xfd,0x50,0x02,0x9c,0xfa,0xed,0x05,0x13,0xfb,0xa6,0xb9,0xb9,0x53,0x01,0xf6,0xfe,0x1a,0x01,0x74,0x1c,0x26,0xfe,0xce,0x01,0x24,0x1d, +0x00,0x04,0x00,0x75,0x00,0x00,0x06,0x45,0x05,0x25,0x00,0x20,0x00,0x24,0x00,0x2f,0x00,0x37,0x00,0x9a,0xb5,0x2e,0x27,0x25,0xa8,0x28,0x17,0xbe,0x01,0x82,0x00,0x0d,0x00,0x1c,0x01,0x83,0x00,0x06,0x00,0x34,0x01,0x83,0x40,0x0f,0x2a,0x0d,0x06,0x2a,0x2a,0x06,0x0d,0x03,0x09,0x35,0x30,0x21,0x28,0x23,0x1a,0xb8,0x01,0x86,0xb4,0x11, +0x00,0x09,0x26,0x2a,0xb8,0x01,0x7d,0xb5,0x34,0x2e,0x2b,0x34,0x19,0x09,0xb8,0x01,0x7d,0xb3,0x0a,0x0a,0x14,0x03,0xb8,0x01,0x7d,0x40,0x0d,0x1f,0x30,0x2c,0x34,0x1f,0x2c,0x2c,0x1f,0x34,0x03,0x23,0x24,0x0f,0xb8,0x01,0x7d,0xb7,0x14,0x14,0x7f,0x24,0x01,0x24,0x28,0x23,0x00,0x2f,0x33,0x2f,0x71,0x33,0x2f,0xed,0x11,0x12,0x17,0x39, +0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x11,0x39,0x2f,0xed,0x39,0x11,0x33,0x33,0x10,0xed,0x32,0x01,0x2f,0xc4,0xc6,0xed,0xc4,0x2f,0xc4,0x33,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xf4,0xc6,0x32,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07, +0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x01,0x01,0x23,0x01,0x01,0x23,0x15,0x23,0x35,0x21,0x35,0x01,0x33,0x11,0x33,0x03,0x23,0x06,0x07,0x03,0x33,0x11,0x34,0x75,0x5d,0x67,0x49,0x53,0xc6,0x4c,0x48,0xb3,0x83,0x55,0x53,0x4f,0x72,0x66,0x7a,0x84,0xa1,0x9a,0x81,0x7c,0x04,0x74,0xfc,0xf7,0x82, +0x03,0x0a,0x01,0x98,0x64,0x78,0xfe,0x9c,0x01,0x4f,0x8d,0x64,0xd8,0x04,0x0b,0x17,0xc6,0xe8,0x02,0x2e,0x81,0x45,0x44,0x3a,0x80,0x6a,0x7a,0x6c,0x3f,0x7e,0x2e,0x6b,0x57,0x89,0x31,0x04,0x26,0x91,0x6a,0x86,0x03,0x15,0xfa,0xed,0x05,0x13,0xfb,0xa6,0xb9,0xb9,0x53,0x01,0xf6,0xfe,0x1a,0x01,0x74,0x1c,0x26,0xfe,0xce,0x01,0x24,0x1d, +0x00,0x01,0x00,0x19,0x00,0x00,0x03,0x3e,0x05,0x13,0x00,0x11,0x00,0x4b,0x40,0x09,0x00,0x0e,0x00,0x0e,0x03,0x09,0x10,0x0c,0x02,0xb8,0x01,0x85,0xb4,0x07,0x05,0x03,0x01,0x05,0xb8,0x01,0x7f,0x40,0x12,0x06,0x10,0x06,0x0f,0x9a,0x0c,0x06,0x0c,0x06,0x0c,0x03,0x0b,0x9a,0x7f,0x08,0x01,0x08,0x03,0x00,0x2f,0x2f,0x71,0xed,0x12,0x39, +0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xc6,0x33,0xed,0x32,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x25,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x15,0x33,0x02,0x20,0xdd,0x99,0x91,0x91,0x02,0x94,0xfe,0x05,0x01,0xd5,0xfe,0x2b,0xdd,0xfc,0xfc,0xfc,0x8d,0x03,0x8a, +0x8a,0xfe,0x3f,0x89,0xb6,0x00,0x00,0x04,0x00,0xaa,0xff,0xea,0x07,0xd0,0x05,0x13,0x00,0x09,0x00,0x10,0x00,0x25,0x00,0x45,0x00,0x9b,0xb1,0x36,0x41,0xbb,0x01,0x84,0x00,0x2b,0x00,0x06,0x01,0x85,0xb2,0x0e,0x1d,0x21,0xb8,0x01,0x84,0xb5,0x1a,0x18,0x16,0x1f,0x11,0x3b,0xb8,0x01,0x84,0x40,0x0f,0x26,0x30,0x0e,0x16,0x11,0x30,0x30, +0x11,0x16,0x0e,0x04,0x02,0x2b,0x0b,0x01,0xb8,0x01,0x85,0x40,0x0e,0x02,0x2b,0x3b,0x44,0x33,0x44,0x13,0x0b,0x9a,0x00,0x33,0x38,0x20,0x18,0xb8,0x01,0x7e,0x40,0x0d,0x19,0x1d,0x19,0x00,0x19,0x1c,0x1c,0x19,0x00,0x03,0x03,0x29,0x23,0xb8,0x01,0x7e,0x40,0x09,0x13,0x0a,0x9a,0x7f,0x03,0x01,0x03,0x02,0x18,0x00,0x3f,0x2f,0x71,0xed, +0x2f,0xed,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x32,0x33,0x10,0xed,0x11,0x33,0x11,0x12,0x39,0x39,0x01,0x2f,0xed,0x32,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xc4,0xed,0x11,0x33,0x10,0xc6,0x33,0xed,0x32,0x10,0xed,0x10,0xfd,0xc4,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x20,0x11,0x14,0x06,0x23,0x03, +0x11,0x33,0x20,0x11,0x10,0x21,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x33,0x15,0x23,0x11,0x14,0x33,0x32,0x37,0x17,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x01,0x43,0x99,0x01,0x1b,0x01, +0xa3,0xf0,0xd5,0x60,0x55,0x01,0x30,0xfe,0xe3,0x03,0xd3,0x34,0x57,0x76,0x6a,0x8d,0x8d,0x94,0xd7,0xd7,0x77,0x36,0x2a,0x3e,0x6d,0x7c,0x93,0x3a,0xdf,0x61,0xa6,0x85,0x75,0x47,0x57,0x67,0x42,0x4f,0x62,0x55,0x7f,0x44,0x9f,0x8c,0x92,0x01,0xeb,0xfe,0x15,0x05,0x13,0xfe,0x7c,0xbe,0xe6,0x02,0x9e,0xfd,0xec,0x01,0x13,0x01,0x01,0xfb, +0x80,0x1d,0x81,0x8f,0x01,0xa4,0x7d,0xe3,0x31,0xfe,0xec,0x7d,0xfe,0x76,0xad,0x1f,0x66,0x9f,0x5a,0x68,0x24,0x48,0x54,0x38,0x69,0x6e,0x83,0x2a,0x91,0x3e,0x39,0x2e,0x33,0x28,0x23,0x39,0x66,0x43,0x71,0x82,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0x8f,0x05,0x29,0x00,0x23,0x00,0x81,0xb5,0x10,0x0c,0x07,0x22,0x1e,0x01,0xb8,0x01,0x84, +0x40,0x0e,0x12,0x0e,0x0a,0x20,0x00,0x0a,0x00,0x19,0x19,0x00,0x0a,0x03,0x05,0x04,0xb8,0x01,0x86,0xb3,0x07,0x05,0x01,0x0c,0xb8,0x01,0x7e,0xb4,0x0d,0x22,0x0d,0x21,0x10,0xb8,0x01,0x7e,0x40,0x16,0x11,0x1e,0x11,0x30,0x0d,0x40,0x0d,0x02,0x2f,0x11,0x01,0x00,0x11,0x10,0x11,0x02,0x0d,0x11,0x0d,0x11,0x04,0x1b,0xb8,0x01,0x7e,0xb2, +0x16,0x08,0x04,0xb9,0x01,0x7e,0x00,0x07,0x00,0x2f,0xed,0x32,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x5d,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x33,0xed,0x32,0x32,0x10,0xc4,0x32,0x31,0x30,0x01,0x21,0x15,0x14,0x07,0x21,0x15,0x21,0x35, +0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x15,0x21,0x15,0x21,0x15,0x21,0x02,0xc6,0xfe,0xf4,0xaf,0x02,0x84,0xfc,0xd1,0xc6,0xb3,0xb3,0xb3,0xb3,0xc5,0x9d,0x6b,0x56,0x5a,0x65,0xd0,0x01,0x0c,0xfe,0xf4,0x01,0x0c,0x01,0xba,0x08,0xdc,0x57,0x7f,0x7a,0x41,0xdb,0x24, +0x7f,0x7b,0x80,0x71,0xab,0xd9,0x25,0x8d,0x34,0xfe,0xea,0x61,0x80,0x7b,0x00,0x05,0x00,0x73,0xff,0xee,0x06,0x35,0x05,0x27,0x00,0x09,0x00,0x0d,0x00,0x21,0x00,0x2a,0x00,0x34,0x00,0x9a,0xbc,0x00,0x24,0x01,0x83,0x00,0x20,0x00,0x29,0x01,0x83,0x40,0x0a,0x1a,0x0e,0x18,0x1a,0x20,0x1a,0x20,0x1a,0x16,0x10,0xbb,0x01,0x83,0x00,0x33, +0x00,0x2d,0x01,0x83,0x40,0x0b,0x16,0x0c,0x16,0x0a,0x0a,0x16,0x0c,0x03,0x03,0x33,0x08,0xb8,0x01,0x82,0xb7,0x03,0x04,0x99,0x07,0x07,0x0d,0x08,0x02,0xb8,0x01,0x7d,0xb7,0x01,0x18,0x0e,0x2b,0x22,0x2b,0x13,0x26,0xb8,0x01,0x7d,0x40,0x0e,0x1d,0x22,0x30,0x1d,0x01,0x1d,0x01,0x1d,0x0c,0x7f,0x0d,0x01,0x0d,0x30,0xb8,0x01,0x7d,0xb3, +0x13,0x13,0x0c,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x39,0x11,0x12,0x39,0x39,0x10,0xed,0x32,0x11,0x33,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x21, +0x35,0x33,0x11,0x07,0x35,0x25,0x11,0x33,0x01,0x01,0x23,0x01,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x14,0x17,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x02,0x43,0xfe,0x37,0xa8,0xaf,0x01,0x25,0xab,0x02,0xab,0xfc,0xf7, +0x83,0x03,0x0a,0x01,0x35,0x94,0x94,0x87,0x72,0x97,0x93,0x77,0x8b,0x76,0x6a,0x84,0xf8,0x7b,0x79,0x36,0x46,0x74,0x90,0x55,0x42,0x41,0x53,0x02,0x11,0x66,0x02,0x1a,0x32,0x71,0x57,0xfd,0x50,0x02,0x9c,0xfa,0xed,0x05,0x13,0xfc,0x83,0x41,0x8b,0x66,0x76,0x75,0x60,0x8a,0x49,0x43,0x72,0x5b,0x6e,0x69,0x55,0x79,0x10,0x34,0x4a,0x5d, +0x33,0x28,0x4d,0xa0,0x30,0x69,0x2e,0x3e,0x3d,0x2c,0x67,0x00,0x00,0x05,0x00,0x75,0xff,0xee,0x06,0x76,0x05,0x25,0x00,0x20,0x00,0x24,0x00,0x38,0x00,0x41,0x00,0x4b,0x00,0xc3,0xbc,0x00,0x3b,0x01,0x83,0x00,0x37,0x00,0x40,0x01,0x83,0x40,0x0a,0x31,0x25,0x2f,0x31,0x37,0x31,0x37,0x31,0x2d,0x27,0xbb,0x01,0x83,0x00,0x4a,0x00,0x0d, +0x01,0x82,0x40,0x09,0x11,0x09,0x1a,0x03,0x00,0x17,0x17,0x00,0x1c,0xbb,0x01,0x83,0x00,0x06,0x00,0x44,0x01,0x83,0x40,0x0f,0x2d,0x23,0x06,0x2d,0x21,0x21,0x2d,0x06,0x23,0x04,0x00,0x4a,0x00,0x19,0x09,0xb8,0x01,0x7d,0xb3,0x0a,0x0a,0x14,0x03,0xb8,0x01,0x7d,0xb7,0x1f,0x2f,0x25,0x42,0x39,0x42,0x2a,0x3d,0xb8,0x01,0x7d,0x40,0x0b, +0x34,0x39,0x34,0x47,0x1f,0x34,0x1f,0x34,0x23,0x24,0x0f,0xb8,0x01,0x7d,0xb6,0x14,0x14,0x7f,0x24,0x01,0x24,0x47,0xb8,0x01,0x7d,0xb3,0x2a,0x2a,0x23,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x33,0x2f,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x39,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x39,0x2f,0xed,0x39, +0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15, +0x16,0x15,0x14,0x06,0x23,0x22,0x01,0x01,0x23,0x01,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x14,0x17,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x75,0x5d,0x67,0x49,0x53,0xc6,0x4c,0x48,0xb3,0x83,0x55,0x53,0x4f,0x72,0x66, +0x7a,0x84,0xa1,0x9a,0x81,0x7c,0x04,0x75,0xfc,0xf7,0x83,0x03,0x0b,0x01,0x35,0x93,0x94,0x87,0x71,0x98,0x93,0x77,0x8b,0x77,0x6a,0x83,0xf8,0x7b,0x79,0x36,0x46,0x74,0x90,0x55,0x43,0x40,0x53,0x02,0x2e,0x81,0x45,0x44,0x3a,0x80,0x6a,0x7a,0x6c,0x3f,0x7e,0x2e,0x6b,0x57,0x89,0x31,0x04,0x26,0x91,0x6a,0x86,0x03,0x15,0xfa,0xed,0x05, +0x13,0xfc,0x83,0x41,0x8b,0x66,0x76,0x75,0x60,0x8a,0x49,0x43,0x72,0x5b,0x6e,0x69,0x55,0x79,0x10,0x34,0x4a,0x5d,0x33,0x28,0x4d,0xa0,0x30,0x69,0x2e,0x3e,0x3d,0x2c,0x67,0x00,0x00,0x05,0x00,0x82,0xff,0xee,0x06,0x78,0x05,0x17,0x00,0x15,0x00,0x19,0x00,0x2d,0x00,0x36,0x00,0x40,0x00,0xb6,0xbc,0x00,0x30,0x01,0x83,0x00,0x2c,0x00, +0x35,0x01,0x83,0x40,0x0a,0x26,0x1a,0x24,0x26,0x2c,0x26,0x2c,0x26,0x22,0x1c,0xb8,0x01,0x83,0xb2,0x3f,0x0c,0x11,0xbb,0x01,0x83,0x00,0x06,0x00,0x39,0x01,0x83,0x40,0x0d,0x22,0x18,0x06,0x22,0x16,0x16,0x22,0x06,0x18,0x04,0x09,0x3f,0x0e,0xb8,0x01,0x82,0xb2,0x00,0x09,0x08,0xb8,0x01,0x7d,0xb3,0x0e,0x0e,0x0a,0x03,0xb8,0x01,0x7d, +0xb7,0x14,0x1a,0x24,0x37,0x2e,0x37,0x1f,0x32,0xb8,0x01,0x7d,0x40,0x0b,0x29,0x2e,0x29,0x3c,0x14,0x29,0x14,0x29,0x1f,0x19,0x0d,0xb8,0x01,0x7d,0xb6,0x0a,0x0a,0x7f,0x19,0x01,0x19,0x3c,0xb8,0x01,0x7d,0xb3,0x1f,0x1f,0x18,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x33,0x2f,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10, +0xed,0x11,0x39,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0xc4,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xfd,0xc4,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x07,0x11,0x21,0x15,0x21,0x15,0x36,0x16,0x15, +0x14,0x06,0x23,0x22,0x01,0x01,0x23,0x01,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x14,0x17,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x82,0x67,0x4e,0x4d,0x5b,0xb9,0x8c,0x01,0x9e,0xfe,0xd6,0xa5,0xa9,0x9e,0x89,0x70,0x04, +0x6c,0xfc,0xf7,0x83,0x03,0x0b,0x01,0x34,0x94,0x94,0x87,0x72,0x97,0x93,0x77,0x8b,0x76,0x6a,0x84,0xf8,0x7b,0x79,0x36,0x46,0x74,0x90,0x55,0x42,0x41,0x53,0x02,0x25,0x84,0x3f,0x51,0x40,0x8a,0x08,0x01,0x9a,0x71,0xb5,0x0c,0x89,0x74,0x72,0x90,0x03,0x15,0xfa,0xed,0x05,0x13,0xfc,0x83,0x41,0x8b,0x66,0x76,0x75,0x60,0x8a,0x49,0x43, +0x72,0x5b,0x6e,0x69,0x55,0x79,0x10,0x34,0x4a,0x5d,0x33,0x28,0x4d,0xa0,0x30,0x69,0x2e,0x3e,0x3d,0x2c,0x67,0x00,0x00,0x05,0x00,0x93,0xff,0xee,0x05,0xfe,0x05,0x1c,0x00,0x06,0x00,0x0a,0x00,0x1e,0x00,0x27,0x00,0x31,0x00,0x9a,0xbc,0x00,0x21,0x01,0x83,0x00,0x1d,0x00,0x26,0x01,0x83,0x40,0x0a,0x17,0x0b,0x15,0x17,0x1d,0x17,0x1d, +0x17,0x13,0x0d,0xbe,0x01,0x83,0x00,0x30,0x00,0x06,0x01,0x85,0x00,0x02,0x00,0x2a,0x01,0x83,0x40,0x0f,0x13,0x01,0x09,0x02,0x13,0x07,0x07,0x13,0x02,0x09,0x01,0x05,0x30,0x03,0x03,0xb8,0x01,0x7d,0x40,0x0a,0x04,0x04,0x0a,0x0b,0x15,0x1f,0x28,0x28,0x10,0x23,0xb8,0x01,0x7d,0x40,0x0e,0x1a,0x1f,0x2d,0x1a,0x01,0x1a,0x01,0x1a,0x10, +0x7f,0x0a,0x01,0x0a,0x2d,0xb8,0x01,0x7d,0xb3,0x10,0x10,0x09,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x39,0x11,0x12,0x39,0x39,0x11,0x33,0x2f,0xed,0x01,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39, +0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x23,0x01,0x21,0x35,0x21,0x15,0x25,0x01,0x23,0x01,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x14,0x17,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x01,0x73,0x84,0x01,0x23,0xfe,0x81,0x02, +0x1b,0x02,0x09,0xfc,0xf6,0x82,0x03,0x0a,0x01,0x35,0x94,0x95,0x87,0x71,0x97,0x92,0x76,0x8a,0x77,0x6a,0x83,0xf8,0x7b,0x78,0x36,0x46,0x74,0x90,0x55,0x42,0x40,0x54,0x02,0x11,0x02,0xa0,0x6b,0x30,0x27,0xfa,0xed,0x05,0x13,0xfc,0x83,0x41,0x8b,0x66,0x76,0x75,0x60,0x8a,0x49,0x43,0x72,0x5b,0x6e,0x69,0x55,0x79,0x10,0x34,0x4a,0x5d, +0x33,0x28,0x4d,0xa0,0x30,0x69,0x2e,0x3e,0x3d,0x2c,0x67,0x00,0x00,0x01,0x00,0x69,0x00,0x00,0x04,0x1e,0x05,0x2b,0x00,0x27,0x00,0x61,0xb1,0x22,0x26,0xb8,0x01,0x84,0x40,0x0a,0x1d,0x01,0x10,0x24,0x24,0x10,0x01,0x03,0x00,0x18,0xb8,0x01,0x84,0xb3,0x07,0x20,0x00,0x02,0xbe,0x01,0x7e,0x00,0x1d,0x00,0x25,0x01,0x7e,0x00,0x22,0x00, +0x21,0x01,0x7e,0x40,0x0a,0x1e,0x1d,0x22,0x1e,0x1e,0x22,0x1d,0x03,0x26,0x13,0xbc,0x01,0x7e,0x00,0x0c,0x00,0x26,0x01,0x7e,0x00,0x01,0x00,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x01,0x2f,0x33,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x21,0x11,0x2e,0x03, +0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x04,0x1e,0xfd,0xed,0x61,0x9b,0x6c,0x3a,0x42,0x7d,0xb3,0x70,0x3e,0x71,0x2f,0x34,0x74,0x3b,0x4d,0x7a,0x52,0x2c,0x21,0x42,0x64,0x43,0x01,0xfe,0xfe,0x95,0x01,0x51,0xfe,0xaf, +0x01,0x80,0x01,0x5a,0x03,0x4c,0x80,0xa7,0x5f,0x6f,0xbb,0x87,0x4b,0x17,0x17,0x9b,0x24,0x22,0x39,0x63,0x85,0x4b,0x45,0x75,0x59,0x39,0x0a,0x01,0xba,0x7f,0xfe,0xf0,0x7f,0xfe,0xed,0x00,0x00,0x03,0x00,0x6b,0xff,0xbc,0x03,0xb5,0x05,0xa7,0x00,0x2e,0x00,0x36,0x00,0x40,0x00,0x34,0x40,0x09,0x3b,0x32,0x3f,0x03,0x28,0x15,0x15,0x42, +0x2f,0xb8,0x01,0x85,0xb6,0x28,0x3e,0x31,0x32,0x03,0x37,0x10,0xbc,0x01,0x7e,0x00,0x1b,0x00,0x37,0x01,0x7e,0x00,0x01,0x00,0x2f,0xed,0x2f,0xed,0x11,0x17,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x17,0x39,0x31,0x30,0x01,0x07,0x32,0x16,0x17,0x37,0x33,0x07,0x16,0x16,0x17,0x15,0x26,0x27,0x01,0x16,0x33,0x32,0x3e,0x02,0x37,0x15, +0x0e,0x03,0x23,0x22,0x27,0x07,0x23,0x37,0x26,0x27,0x07,0x23,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x37,0x01,0x14,0x17,0x13,0x0e,0x03,0x01,0x22,0x06,0x07,0x01,0x16,0x16,0x17,0x01,0x26,0x02,0xe9,0x27,0x17,0x2b,0x14,0x27,0x68,0x2c,0x0e,0x1d,0x0f,0x36,0x2b,0xfe,0xc3,0x3c,0x4b,0x2a,0x47,0x42,0x41,0x23,0x22,0x43,0x48,0x4f, +0x2f,0x52,0x48,0x15,0x67,0x20,0x26,0x23,0x2f,0x66,0x46,0x45,0x4c,0x4a,0x84,0xb4,0x6b,0x29,0xfe,0x89,0x2f,0xf2,0x41,0x6b,0x4c,0x29,0x01,0xb2,0x09,0x10,0x08,0xfe,0xe2,0x0f,0x21,0x13,0x01,0x32,0x1a,0x05,0xa7,0x7e,0x02,0x02,0x82,0x93,0x04,0x09,0x04,0x96,0x19,0x0e,0xfb,0xee,0x19,0x09,0x12,0x1b,0x13,0x88,0x10,0x17,0x11,0x08, +0x16,0x44,0x69,0x16,0x1b,0x9a,0xe8,0x55,0xe8,0x90,0x8c,0xea,0xb3,0x73,0x13,0x87,0xfc,0xd3,0x96,0x74,0x03,0x1e,0x1a,0x63,0x8a,0xab,0x01,0xce,0x01,0x01,0xfc,0x52,0x14,0x21,0x10,0x03,0xf2,0x03,0x00,0x01,0x00,0x6b,0xff,0xea,0x03,0xb5,0x05,0x29,0x00,0x3e,0x00,0x45,0xb1,0x37,0x07,0xb8,0x01,0x83,0xb3,0x34,0x34,0x00,0x2f,0xb8, +0x01,0x85,0xb4,0x1a,0x25,0x10,0x00,0x02,0xb8,0x01,0x7e,0x40,0x09,0x35,0x37,0x34,0x07,0x04,0x3b,0x3b,0x0a,0x2a,0xbc,0x01,0x7e,0x00,0x1f,0x00,0x0a,0x01,0x7e,0x00,0x15,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0x17,0x39,0xed,0x01,0x2f,0x33,0x33,0x2f,0xed,0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x01,0x26,0x23,0x22,0x07,0x06,0x15, +0x11,0x16,0x32,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x03,0xb5,0x23,0x41,0x56,0x39,0x39,0x04,0x0b,0x06,0x2a,0x47,0x42,0x41,0x23,0x22,0x43, +0x48,0x4f,0x2f,0x77,0xc7,0x90,0x51,0x5b,0xa1,0xd9,0x7e,0x28,0x40,0x3a,0x38,0x1d,0x23,0x3c,0x3a,0x3c,0x24,0x5f,0x9e,0x74,0x41,0x24,0x41,0x5c,0x39,0x85,0x03,0x1d,0x74,0x49,0x1a,0x27,0x0e,0x02,0xd1,0x1b,0x50,0x50,0x8c,0xfe,0xaa,0x01,0x09,0x12,0x1b,0x13,0x88,0x10,0x17,0x11,0x08,0x5d,0xa8,0xef,0x93,0x9c,0x01,0x00,0xb7,0x65, +0x05,0x09,0x0e,0x0a,0x96,0x11,0x16,0x0f,0x07,0x52,0x94,0xce,0x7c,0x59,0x9e,0x7f,0x5e,0x1b,0x02,0xcd,0xab,0x58,0x62,0x07,0x05,0x00,0x00,0x01,0x00,0x96,0xff,0x28,0x05,0xbc,0x04,0x93,0x00,0x2e,0x00,0x62,0xb1,0x23,0x1f,0xb8,0x01,0x84,0xb2,0x20,0x2b,0x11,0xb8,0x01,0x84,0x40,0x0d,0x16,0x15,0x20,0x12,0x00,0x01,0x12,0x01,0x12, +0x01,0x06,0x20,0x05,0xb8,0x01,0x84,0xb2,0x06,0x0f,0x19,0xb8,0x01,0x7e,0x40,0x12,0x26,0x13,0x16,0x10,0x2b,0x04,0x26,0x20,0x2e,0x2e,0x2d,0x01,0x26,0x15,0x15,0x12,0x06,0x20,0x00,0x2f,0x33,0x33,0x33,0x2f,0x2f,0x33,0x33,0x33,0x2f,0x11,0x12,0x17,0x39,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x11, +0x12,0x39,0x33,0xed,0x39,0x10,0xed,0x32,0x31,0x30,0x01,0x07,0x33,0x20,0x11,0x11,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x22,0x07,0x03,0x11,0x23,0x35,0x03,0x23,0x01,0x35,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x17,0x36,0x37,0x13,0x05,0x00,0x7a,0x03,0x01,0x33,0x95,0x0f,0x2e,0x51, +0x41,0x07,0x0b,0x07,0xcc,0x94,0xde,0x8b,0x01,0x69,0xd3,0x39,0x56,0x37,0x1b,0x95,0x95,0x04,0x63,0xbd,0x2d,0x54,0x46,0x33,0x0c,0x39,0x56,0x90,0x04,0x93,0xde,0xfe,0x87,0xfd,0xc4,0x02,0x15,0x3f,0x6b,0x4e,0x2b,0x01,0xfe,0x8f,0xfe,0x3a,0xb9,0xfe,0x6f,0x02,0x8d,0x72,0x01,0x11,0x33,0x54,0x6a,0x36,0xfd,0xef,0x03,0xa0,0x93,0xa8, +0x1b,0x32,0x47,0x2c,0x69,0x2f,0x01,0x06,0x00,0x05,0x00,0x20,0x00,0x00,0x04,0x91,0x05,0x13,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x29,0x00,0x31,0x00,0xa2,0x40,0x0f,0x2f,0x22,0x21,0x12,0x04,0x11,0x14,0x11,0x28,0x0e,0x09,0x09,0x0c,0x08,0x10,0xb8,0x01,0x83,0x40,0x0d,0x29,0x1c,0x1f,0x04,0x04,0x03,0x1d,0x05,0x28,0x03,0x2e,0x20, +0x14,0xb8,0x01,0x84,0x40,0x0b,0x15,0x17,0x00,0x00,0x19,0x01,0x15,0x29,0x13,0x0f,0x17,0xb8,0x01,0x7e,0x40,0x09,0x18,0x20,0x1c,0x0c,0x18,0x23,0x1f,0x0b,0x1b,0xb8,0x01,0x7e,0x40,0x1c,0x00,0x2e,0x08,0x04,0x00,0x0f,0x00,0x1f,0x00,0x3f,0x00,0x4f,0x00,0x04,0x18,0x00,0x18,0x00,0x02,0x25,0x15,0x11,0x2b,0x06,0x7f,0x02,0x01,0x02, +0x00,0x2f,0x71,0xc4,0x33,0x2f,0xc4,0x33,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x33,0x33,0x10,0xed,0x32,0x32,0x32,0x11,0x33,0x33,0x33,0x10,0xed,0x32,0x32,0x32,0x01,0x2f,0x33,0x33,0x33,0x2f,0x33,0x10,0xed,0x32,0x32,0x32,0x2f,0x33,0x33,0x12,0x17,0x39,0xed,0x32,0x32,0x32,0x2f,0x33,0x11,0x33,0x11,0x12,0x17,0x39,0x31,0x30, +0x13,0x33,0x11,0x33,0x13,0x21,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x23,0x03,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x05,0x33,0x27,0x23,0x01,0x33,0x26,0x35,0x35,0x23,0x01,0x23,0x16,0x15,0x15,0x33,0x27,0x26,0x20,0x8a,0xb8,0xdb,0x01,0x3e,0x88,0x8e,0x8e,0x8e,0x8e,0xaf,0xed,0xfe, +0xcc,0x89,0x8a,0x8a,0x8a,0x02,0x99,0xc2,0xff,0xfe,0xb7,0xf6,0x3e,0xb8,0x02,0x4b,0x03,0x06,0x85,0xfe,0x3b,0x04,0x06,0x79,0x57,0x19,0x03,0x55,0x01,0xbe,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x7f,0x7c,0x7e,0xfe,0x24,0x01,0xdc,0xfe,0x24,0x01,0xdc,0x7e,0x7c,0x7c,0x7c,0x7c,0x7c,0xfd,0xf2,0x2d,0x91,0x56,0x02,0x79,0x2a,0x86,0x50,0xb0, +0x32,0x00,0x00,0x03,0x00,0xaa,0xff,0xea,0x05,0xdb,0x05,0x13,0x00,0x16,0x00,0x21,0x00,0x54,0x00,0x79,0xb1,0x3a,0x4c,0xb8,0x01,0x84,0xb3,0x27,0x13,0x07,0x0e,0xbb,0x01,0x85,0x00,0x1e,0x00,0x42,0x01,0x84,0x40,0x0c,0x31,0x22,0x00,0x31,0x1e,0x31,0x1e,0x31,0x07,0x27,0x18,0x06,0xb8,0x01,0x85,0x40,0x09,0x07,0x13,0x18,0x9a,0x05, +0x27,0x42,0x51,0x3d,0xb8,0x01,0x7e,0x40,0x0d,0x36,0x05,0x36,0x05,0x36,0x07,0x17,0x9a,0x7f,0x08,0x01,0x08,0x25,0xb8,0x01,0x7e,0xb4,0x51,0x51,0x01,0x07,0x18,0x00,0x3f,0x33,0x33,0x2f,0xed,0x2f,0x71,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x12,0x39,0x39,0x10,0xed,0x39,0x01,0x2f,0xed,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11, +0x33,0x33,0x10,0xed,0x10,0xed,0x11,0x39,0x10,0xed,0x32,0x31,0x30,0x21,0x23,0x03,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x16,0x17,0x01,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x01,0x16,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17, +0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x03,0xa3,0xb5,0xa0,0x47,0x80,0x44,0x99,0x01,0x3f,0x55,0x90,0x67,0x3a,0x25,0x47,0x67,0x43,0x49,0x3c,0xfe,0x65,0x84,0x39,0x61,0x46,0x28,0x81,0x80,0x01,0xee,0x38,0x75,0x3d,0xa0,0x1a,0x2d,0x3a,0x1f,0x43,0x57,0x36, +0x16,0x2a,0x4f,0x71,0x48,0x33,0x69,0x28,0x2e,0x64,0x37,0x20,0x38,0x27,0x16,0x14,0x27,0x37,0x20,0x3c,0x5b,0x3c,0x1e,0x1f,0x4a,0x77,0x58,0x3f,0x77,0x31,0x01,0x87,0xa2,0xfd,0xd7,0x05,0x13,0x2a,0x57,0x82,0x57,0x44,0x76,0x5d,0x41,0x0f,0x03,0x1b,0x7f,0x02,0xd4,0xfe,0x29,0x23,0x40,0x5d,0x3a,0x69,0x74,0xfc,0x32,0x26,0x2d,0x64, +0x1c,0x28,0x1c,0x16,0x0b,0x15,0x30,0x3b,0x46,0x2a,0x31,0x53,0x3f,0x25,0x13,0x10,0x94,0x1d,0x1c,0x0d,0x19,0x25,0x16,0x1e,0x26,0x1b,0x14,0x0a,0x14,0x2b,0x38,0x49,0x31,0x2d,0x55,0x43,0x29,0x1b,0x18,0x00,0x00,0x07,0x00,0x12,0x00,0x00,0x05,0x53,0x05,0x13,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x33,0x00,0x3b,0x00,0x43, +0x00,0x6a,0xb4,0x3b,0x33,0x05,0x01,0x09,0xb8,0x01,0x7e,0x40,0x0b,0x0a,0x28,0x24,0x20,0x1e,0x0a,0x2b,0x27,0x23,0x1d,0x0d,0xb8,0x01,0x7e,0x40,0x23,0x0e,0x40,0x1a,0x16,0x12,0x0e,0x0f,0x0e,0x1f,0x0e,0x3f,0x0e,0x4f,0x0e,0x04,0x0a,0x0e,0x0a,0x0e,0x07,0x3c,0x18,0x14,0x10,0x10,0x7f,0x14,0x01,0x14,0x37,0x36,0x2e,0x2e,0x03,0x07, +0x00,0x2f,0x33,0x33,0x11,0x33,0x33,0x2f,0x71,0x33,0x2f,0x11,0x33,0x33,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x33,0x33,0x33,0x10,0xed,0x32,0x32,0x32,0x32,0x11,0x33,0x33,0x33,0x33,0x10,0xed,0x32,0x32,0x32,0x32,0x31,0x30,0x01,0x23,0x03,0x23,0x03,0x23,0x03,0x23,0x03,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x03,0x33,0x13,0x33, +0x13,0x33,0x13,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x07,0x33,0x21,0x33,0x37,0x23,0x05,0x33,0x37,0x23,0x07,0x33,0x27,0x23,0x03,0x16,0x17,0x33,0x36,0x37,0x37,0x23,0x05,0x16,0x17,0x33,0x36,0x37,0x37,0x23,0x03,0x23,0x06,0x07,0x07,0x33,0x27,0x26,0x05,0x53,0xf4,0x5a,0x93,0x59,0xd2,0x59,0x92,0x5d,0xed,0xd3,0x17,0xbc,0xa2,0x56, +0x82,0x51,0xf4,0x55,0x78,0x50,0xe9,0x4f,0x80,0x54,0xad,0xc5,0x17,0xdb,0xfc,0x0e,0x95,0x18,0xc4,0x02,0x27,0x8f,0x16,0xbc,0xf9,0xa1,0x16,0x74,0xe0,0x0c,0x02,0x04,0x03,0x0f,0x22,0x67,0x02,0x33,0x0a,0x04,0x02,0x03,0x0d,0x20,0x62,0xd4,0x02,0x04,0x0c,0x12,0x43,0x11,0x0c,0x01,0xde,0xfe,0x22,0x01,0xde,0xfe,0x22,0x01,0xde,0x7f, +0x7b,0x80,0x01,0xbb,0xfe,0x45,0x01,0xbb,0xfe,0x45,0x01,0xbb,0xfe,0x45,0x80,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0xfe,0x57,0x3f,0x44,0x30,0x53,0xaf,0xb7,0x33,0x46,0x2f,0x4e,0xb3,0x02,0x5c,0x43,0x40,0x5f,0x5d,0x3d,0x00,0x00,0x03,0x00,0x57,0xfe,0xf3,0x04,0x29,0x05,0x5d,0x00,0x1c,0x00,0x31,0x00,0x35,0x00,0x64,0xb4,0x14,0x14,0x01, +0x33,0x28,0xb8,0x01,0x84,0xb4,0x0a,0x32,0x1b,0x19,0x00,0xb8,0x01,0x84,0xb4,0x1d,0x16,0x12,0x01,0x33,0xbb,0x01,0x7d,0x00,0x34,0x00,0x23,0x01,0x7e,0xb2,0x0f,0x1c,0x14,0xb8,0x01,0x7e,0x40,0x0c,0x15,0x19,0x15,0x02,0x12,0x0f,0x15,0x0f,0x15,0x05,0x18,0x2d,0xb8,0x01,0x7e,0xb3,0x05,0x18,0x01,0x18,0x00,0x3f,0x3f,0xed,0x2f,0x12, +0x39,0x39,0x2f,0x2f,0x39,0x39,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x2f,0xed,0x01,0x2f,0x33,0x33,0x33,0xfd,0x32,0xc6,0xc6,0x2f,0xed,0xc4,0x12,0x39,0x2f,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x33,0x11,0x21,0x35,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x03,0x35,0x34,0x2e,0x02, +0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x13,0x21,0x35,0x21,0x03,0xae,0x94,0x04,0x67,0xd8,0x62,0x91,0x5f,0x2e,0x35,0x6a,0xa0,0x6a,0xbc,0x5a,0x04,0xfe,0xd4,0x01,0x2c,0x94,0x7b,0x7b,0x94,0x28,0x46,0x60,0x39,0x4e,0x6f,0x46,0x21,0x20,0x43,0x68,0x49,0x40,0x68,0x4a,0x26,0x70,0xfc,0xfe,0x03,0x02,0x9e,0xb4, +0x4b,0x7d,0xa9,0x5f,0x67,0xb8,0x8b,0x51,0x96,0x01,0x22,0x79,0xa3,0xa3,0x79,0xfd,0x62,0x89,0x38,0x62,0x49,0x29,0x3c,0x68,0x87,0x4c,0x44,0x7e,0x60,0x38,0x34,0x57,0x72,0xfd,0x8f,0x6c,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0x9d,0x05,0x13,0x00,0x19,0x00,0x42,0xb6,0x18,0x19,0x16,0x03,0x00,0x0f,0x07,0xb8,0x01,0x85,0xb7,0x0c,0x0a, +0x08,0x15,0x00,0x19,0x06,0x0a,0xb8,0x01,0x7e,0x40,0x0d,0x16,0x10,0x0f,0x0b,0x0b,0x01,0x14,0x7f,0x0e,0x01,0x0e,0x08,0x01,0x00,0x2f,0x33,0x2f,0x71,0x33,0x12,0x39,0x2f,0x33,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x33,0x2f,0xc6,0x33,0xed,0x32,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x01,0x26,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x35, +0x33,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x21,0x15,0x21,0x03,0x9d,0xc6,0xfe,0x92,0x0f,0x0d,0x07,0x03,0x99,0x84,0x84,0x99,0x03,0x07,0x14,0x08,0x01,0x6f,0xb0,0xfe,0x61,0x01,0x4e,0xfe,0xb9,0x02,0x1c,0x18,0x18,0x0d,0xfd,0xa7,0x02,0x5f,0x80,0x02,0x34,0xfd,0xca,0x0d,0x1e,0x0b,0x02,0x00,0xfd,0xcc,0x80,0x00,0x01, +0x00,0x25,0x00,0x00,0x03,0x1a,0x05,0x13,0x00,0x17,0x00,0x5e,0xb9,0x00,0x06,0x01,0x84,0x40,0x2c,0x07,0x15,0x11,0x9a,0x12,0x02,0x0b,0x03,0x0a,0x0a,0x09,0x0f,0x16,0x0e,0x17,0x0e,0x0d,0x08,0x05,0x09,0x04,0x04,0x03,0x0c,0x01,0x0d,0x00,0x00,0x17,0x09,0x0d,0x03,0x17,0x17,0x03,0x0d,0x09,0x04,0x07,0x7f,0x12,0x01,0x12,0x07,0x00, +0x2f,0x2f,0x71,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x10,0xed,0x32,0x01,0x2f,0xed,0x31,0x30,0x01,0x07,0x15,0x37,0x15,0x07,0x11,0x23,0x11,0x07,0x35,0x37,0x35,0x07,0x35,0x37,0x11,0x21,0x35,0x21,0x15,0x21, +0x11,0x37,0x02,0xbf,0xd4,0xd4,0xd4,0x98,0xd9,0xd9,0xd9,0xd9,0xfe,0xd2,0x02,0xf5,0xfe,0xd1,0xd4,0x03,0x5c,0x79,0xb9,0x79,0x81,0x78,0xfe,0x56,0x01,0x53,0x7a,0x80,0x7a,0xb9,0x7a,0x81,0x7a,0x01,0x7c,0x8a,0x8a,0xfe,0xdb,0x78,0x00,0x05,0x00,0x28,0xfe,0xbf,0x08,0x0c,0x05,0xdb,0x00,0x3a,0x00,0x53,0x00,0x6a,0x00,0x7e,0x00,0x8e, +0x00,0x98,0x40,0x09,0x8c,0x3e,0x0c,0x1e,0x4f,0x36,0x2f,0x24,0x00,0xb8,0x01,0x85,0x40,0x11,0x4a,0x68,0x54,0x6b,0x2a,0x1e,0x24,0x4a,0x6b,0x6b,0x4a,0x24,0x1e,0x2a,0x05,0x14,0x5e,0xbb,0x01,0x83,0x00,0x75,0x00,0x84,0x01,0x82,0x40,0x29,0x14,0x6a,0x24,0x4f,0x4f,0x36,0x0c,0x8c,0x07,0x7f,0x7f,0x3e,0x1e,0x43,0x19,0x68,0x63,0x7a, +0x59,0x19,0x59,0x29,0x29,0x59,0x19,0x03,0x0f,0x36,0x32,0x32,0x2f,0x36,0x43,0x89,0x89,0x0f,0x70,0x63,0x63,0x07,0x0f,0x00,0x2f,0x33,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x2f,0x33,0x33,0x2f,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x12,0x39,0x11,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x33,0x2f,0x01,0x2f, +0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x11,0x33,0x33,0x33,0x11,0x33,0x33,0x33,0x31,0x30,0x01,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x36,0x36,0x37,0x36,0x36,0x37,0x0e,0x03,0x07,0x27,0x3e,0x03,0x37,0x36, +0x36,0x37,0x17,0x06,0x06,0x07,0x1e,0x03,0x05,0x06,0x02,0x07,0x1e,0x03,0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x02,0x27,0x0e,0x03,0x01,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x03,0x23,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x05,0x22,0x0e,0x02,0x15, +0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x26,0x26,0x05,0xe7,0x20,0x45,0x6d,0x9a,0xca,0x7f,0x35,0x5d,0x4f,0x45,0x1f,0x3c,0x86,0x4d,0x2a,0x43,0x2f,0x1a,0x20,0x34,0x44,0x24,0x23,0x3d,0x38,0x34,0x1a,0x30,0x50,0x23,0x21,0x55,0x37,0x52,0x8c,0x7d,0x72,0x37,0x2f,0x3f,0x90,0xa1,0xb0,0x5e,0x3d,0x91,0x58,0x32,0x40,0x62,0x28,0x7d,0xbc, +0x7d,0x3e,0xfd,0x1c,0x2d,0x69,0x40,0x1b,0x39,0x42,0x48,0x2a,0x5f,0x98,0x76,0x55,0x37,0x1b,0x36,0x67,0x99,0x63,0x18,0x2d,0x29,0x29,0x02,0xa9,0x0e,0x29,0x4a,0x74,0x58,0x38,0x5c,0x43,0x26,0x28,0x4d,0x6f,0x48,0x1e,0x39,0x31,0x27,0x0b,0x7d,0x94,0x01,0x43,0x10,0x21,0x34,0x23,0x28,0x3e,0x2a,0x16,0x12,0x21,0x31,0x1d,0x30,0x43, +0x28,0x12,0xfa,0x8c,0x13,0x23,0x1b,0x11,0x11,0x19,0x22,0x10,0x34,0x59,0x28,0x2d,0x53,0x02,0xee,0x50,0xae,0xa7,0x95,0x71,0x42,0x12,0x1f,0x29,0x15,0x39,0x36,0x19,0x2e,0x41,0x27,0x2b,0x43,0x2d,0x17,0x0e,0x1a,0x21,0x13,0x56,0xf4,0x9b,0x99,0xe1,0x55,0x0a,0x30,0x42,0x4f,0x29,0x48,0x33,0x5f,0x4a,0x2f,0x02,0x42,0x5c,0x22,0x3b, +0x1c,0x43,0x2b,0x0e,0x56,0x8c,0xc0,0xa1,0xb1,0xfe,0xff,0x57,0x13,0x21,0x19,0x0e,0x39,0x61,0x81,0x8d,0x92,0x43,0x6c,0xa9,0x79,0x46,0x09,0x29,0x67,0x7b,0x94,0xfd,0xf1,0x31,0x69,0x57,0x39,0x21,0x41,0x5e,0x3d,0x41,0x73,0x56,0x31,0x0f,0x1c,0x28,0x18,0xfe,0x55,0x02,0x40,0x1d,0x38,0x2b,0x1a,0x22,0x39,0x49,0x27,0x25,0x3c,0x2c, +0x17,0x2c,0x40,0x4b,0x13,0x0c,0x17,0x21,0x14,0x16,0x23,0x17,0x0d,0x31,0x30,0x23,0x31,0x00,0x00,0x02,0x00,0x2b,0xfe,0x7a,0x03,0x18,0x05,0x54,0x00,0x3c,0x00,0x4e,0x00,0x5e,0xb9,0x00,0x02,0x01,0x82,0xb2,0x3b,0x28,0x47,0xb8,0x01,0x83,0xb3,0x0c,0x4a,0x35,0x1b,0xbb,0x01,0x82,0x00,0x07,0x00,0x16,0x01,0x82,0x40,0x1a,0x3d,0x3b, +0x0c,0x07,0x3d,0x3d,0x07,0x0c,0x3b,0x04,0x00,0x20,0x8a,0x30,0x00,0x25,0x4a,0x1b,0x07,0x35,0x01,0x02,0x3b,0x07,0x00,0x42,0xb8,0x01,0x7d,0xb2,0x11,0x3a,0x00,0x00,0x2f,0x32,0x2f,0xed,0x12,0x17,0x39,0x2f,0x01,0x2f,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0xcd,0x32,0x10,0xfd,0xc4,0x10,0xed,0x31,0x30, +0x33,0x13,0x13,0x36,0x37,0x36,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x35,0x26,0x36,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x27,0x06,0x06,0x07,0x06,0x07,0x03,0x07,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x3e,0x03, +0x2b,0xe7,0x44,0x10,0x11,0x0f,0x25,0x14,0x23,0x43,0x34,0x20,0x1d,0x35,0x4c,0x30,0x2b,0x40,0x2b,0x15,0x0f,0x1a,0x22,0x14,0x2a,0x59,0x49,0x2d,0x38,0x64,0x88,0x4f,0x0a,0x0a,0x01,0x08,0x0b,0x21,0x49,0x3d,0x28,0x15,0x25,0x30,0x1b,0x20,0x40,0x1a,0x1d,0x1c,0x5a,0x59,0x01,0xa2,0x0d,0x17,0x1e,0x13,0x0f,0x1e,0x17,0x0d,0x3b,0x2d, +0x0d,0x16,0x11,0x0a,0x01,0xf0,0xfe,0xfe,0x32,0x3a,0x32,0x82,0x4a,0x44,0x80,0x7e,0x7d,0x41,0x39,0x5d,0x42,0x24,0x1f,0x3a,0x53,0x32,0x1f,0x5f,0x79,0x8a,0x4b,0x4c,0x9d,0xaa,0xbb,0x69,0x48,0x88,0x69,0x40,0x0b,0x08,0x06,0x0e,0x03,0x08,0x36,0x51,0x6d,0x40,0x4e,0x90,0x85,0x7b,0x3a,0x72,0xd1,0x52,0x60,0x55,0x01,0x31,0xdf,0x04, +0x6c,0x2b,0x3b,0x24,0x10,0x12,0x25,0x3b,0x2a,0x5e,0xad,0x57,0x36,0x66,0x5d,0x4e,0x00,0x04,0x00,0x22,0x00,0x00,0x04,0x20,0x05,0x13,0x00,0x1f,0x00,0x27,0x00,0x2d,0x00,0x33,0x00,0x7f,0xb3,0x30,0x2b,0x2d,0x0c,0xb8,0x01,0x85,0xb6,0x20,0x00,0x1c,0x2d,0x2f,0x24,0x19,0xb8,0x01,0x85,0x40,0x09,0x1e,0x02,0x1a,0x18,0x9a,0x2d,0x2c, +0x12,0x1c,0xb8,0x01,0x7e,0xb6,0x1d,0x24,0x0f,0x1d,0x23,0x0a,0x00,0xb8,0x01,0x7e,0x40,0x21,0x01,0x2f,0x07,0x01,0x50,0x2d,0x01,0x50,0x1d,0x01,0x1d,0x40,0x09,0x0d,0x48,0x20,0x01,0x01,0x2d,0x1d,0x01,0x01,0x1d,0x2d,0x03,0x03,0x1a,0x2e,0x9a,0x7f,0x03,0x01,0x03,0x00,0x2f,0x71,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x2b, +0x5d,0x5d,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x10,0xed,0x01,0x2f,0x33,0x33,0xed,0x32,0x32,0x32,0xc6,0x32,0x2f,0xed,0x12,0x39,0x39,0x31,0x30,0x13,0x35,0x33,0x35,0x21,0x32,0x16,0x17,0x33,0x15,0x23,0x16,0x15,0x14,0x06,0x07,0x33,0x15,0x23,0x0e,0x03,0x23,0x23,0x11,0x23,0x11,0x23,0x35,0x33, +0x35,0x05,0x34,0x27,0x21,0x15,0x21,0x36,0x36,0x01,0x32,0x36,0x37,0x21,0x15,0x11,0x15,0x21,0x26,0x26,0x23,0x22,0x88,0x01,0x59,0x91,0xc7,0x2a,0x9b,0x82,0x03,0x03,0x02,0x84,0xa5,0x19,0x50,0x69,0x7f,0x49,0x9e,0x99,0x88,0x88,0x02,0x57,0x03,0xfe,0x45,0x01,0xba,0x01,0x03,0xfe,0xd8,0x5d,0x7b,0x22,0xfe,0x70,0x01,0x94,0x20,0x73, +0x5b,0x03,0x9d,0x80,0xf6,0x7e,0x78,0x80,0x18,0x1a,0x13,0x24,0x12,0x7f,0x3c,0x5f,0x42,0x23,0xfe,0x5d,0x02,0xa3,0x7f,0x7b,0x39,0x1e,0x1b,0x7b,0x0f,0x21,0xfe,0xda,0x3f,0x38,0x77,0x02,0x5d,0x6c,0x33,0x39,0x00,0x03,0x00,0x4c,0xff,0x43,0x03,0x93,0x05,0xb8,0x00,0x1c,0x00,0x27,0x00,0x2e,0x00,0x65,0x40,0x1a,0x1c,0x2e,0x2d,0x17, +0x16,0x0f,0x06,0x0e,0x00,0x00,0x02,0x22,0x23,0x0c,0x04,0x0d,0x01,0x0d,0x13,0x0e,0x01,0x0e,0x01,0x0e,0x07,0x19,0xbe,0x01,0x84,0x00,0x2b,0x00,0x1d,0x01,0x84,0x00,0x07,0x00,0x2d,0x01,0x7e,0xb4,0x17,0x17,0x0f,0x22,0x28,0xb8,0x01,0x7e,0xb4,0x02,0x1b,0x18,0x23,0x16,0xb8,0x01,0x7e,0xb1,0x0c,0x0f,0x00,0x2f,0x33,0xed,0x32,0x3f, +0x33,0xed,0x32,0x11,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x39,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0x31,0x30,0x05,0x23,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x37,0x33,0x07,0x16,0x16,0x17,0x15,0x26,0x26,0x27,0x03,0x21,0x11,0x06,0x23,0x23,0x01,0x14,0x1e,0x02,0x17,0x13,0x0e, +0x03,0x01,0x32,0x36,0x37,0x11,0x23,0x03,0x02,0x04,0x63,0x11,0x5b,0x87,0x58,0x2c,0x3d,0x76,0xaf,0x73,0x10,0x63,0x10,0x4a,0x80,0x34,0x37,0x87,0x4b,0x29,0x01,0x43,0xa8,0xcb,0x0b,0xfe,0xcf,0x19,0x33,0x53,0x3b,0x59,0x4e,0x73,0x4d,0x25,0x01,0x46,0x3c,0x72,0x2c,0xc0,0x24,0xbd,0xcc,0x13,0x64,0x9e,0xd3,0x81,0x96,0xee,0xaa,0x5f, +0x07,0xac,0xac,0x05,0x21,0x1d,0xa0,0x2b,0x30,0x06,0xfe,0x1c,0xfd,0xce,0x6f,0x02,0x7e,0x65,0xa6,0x7d,0x53,0x13,0x03,0xf4,0x09,0x51,0x87,0xb6,0xfd,0x93,0x1e,0x1f,0x01,0x63,0xfe,0x60,0x00,0x03,0x00,0x0b,0x00,0x00,0x03,0xdd,0x05,0x13,0x00,0x17,0x00,0x1b,0x00,0x23,0x00,0x45,0xb6,0x1c,0x1d,0x1d,0x15,0x0a,0x06,0x0e,0xb8,0x01, +0x7e,0xb6,0x0f,0x18,0x03,0x0f,0x1b,0x02,0x12,0xb8,0x01,0x7e,0x40,0x0f,0x13,0x20,0x17,0x13,0x0f,0x13,0x0f,0x13,0x08,0x7f,0x15,0x01,0x15,0x0c,0x08,0x00,0x2f,0x33,0x2f,0x71,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x15,0x23,0x17,0x33, +0x15,0x23,0x13,0x23,0x03,0x21,0x03,0x23,0x13,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x13,0x33,0x13,0x01,0x21,0x27,0x21,0x13,0x23,0x06,0x07,0x03,0x33,0x03,0x26,0x03,0xc8,0xba,0x34,0x86,0x5f,0x74,0xa8,0x6b,0xfe,0x52,0x68,0xa9,0x73,0x5d,0x85,0x33,0xb8,0xe0,0xa4,0x9d,0xa4,0xfe,0x5a,0x01,0x65,0x2f,0xfe,0xf8,0x84,0x02,0x08,0x0a, +0x4b,0xbe,0x4d,0x09,0x03,0x0e,0x80,0xa2,0x80,0xfe,0x94,0x01,0x6c,0xfe,0x94,0x01,0x6c,0x80,0xa2,0x80,0x02,0x05,0xfd,0xfb,0xfe,0xde,0xa2,0x01,0xde,0x37,0x1f,0xfe,0xf8,0x01,0x08,0x1b,0x00,0x01,0x00,0x5f,0xff,0xea,0x03,0x85,0x05,0x29,0x00,0x47,0x00,0x5c,0xb3,0x3c,0x21,0x16,0x44,0xbb,0x01,0x85,0x00,0x35,0x00,0x0e,0x01,0x85, +0xb2,0x21,0x09,0x26,0xb8,0x01,0x7d,0xb4,0x27,0x06,0x27,0x01,0x2f,0xb8,0x01,0x7d,0x40,0x1b,0x30,0x46,0x30,0x20,0x27,0x01,0x0f,0x27,0x1f,0x27,0x02,0x3f,0x30,0x4f,0x30,0x02,0x27,0x30,0x27,0x30,0x11,0x3a,0x9a,0x3f,0x11,0x9a,0x1c,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x5d,0x11,0x33,0x10,0xed,0x32,0x11, +0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x32,0x11,0x39,0x31,0x30,0x01,0x23,0x07,0x06,0x07,0x06,0x07,0x21,0x15,0x21,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x36,0x37,0x23,0x35,0x33,0x36,0x37,0x36,0x37,0x36,0x37,0x21,0x35,0x21,0x36,0x37,0x36,0x35, +0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x33,0x03,0x85,0x65,0x04,0x2b,0x3b,0x2f,0x35,0x01,0x33,0xfe,0x15,0x21,0x1a,0x29,0x2e,0x8a,0x8d,0x28,0x60,0x60,0x56,0x1f,0x1a,0x54,0x5e,0x5b,0x1f,0x5c,0xa7,0x80,0x4b,0x1b,0x11,0x17,0x4c,0xb4,0x14,0x15,0x3f,0x45,0x2a,0x24,0xfe,0x51,0x02,0x44,0x17, +0x0d,0x13,0x31,0x4e,0x63,0x32,0xb4,0x73,0x57,0xc1,0x54,0xa2,0x7f,0x4e,0x18,0x23,0x02,0xf3,0x04,0x2b,0x23,0x1c,0x1c,0x61,0x14,0x15,0x1f,0x4e,0x35,0x62,0x68,0x10,0x1e,0x2c,0x1b,0xb3,0x12,0x1c,0x13,0x0a,0x25,0x54,0x85,0x60,0x48,0x39,0x21,0x1e,0x61,0x0e,0x0c,0x26,0x23,0x15,0x12,0x61,0x16,0x1b,0x25,0x32,0x35,0x4a,0x2f,0x15, +0x4f,0xab,0x2e,0x2a,0x55,0x83,0x59,0x46,0x34,0x00,0x00,0x02,0x00,0x4e,0xff,0x43,0x03,0x88,0x05,0xb8,0x00,0x18,0x00,0x21,0x00,0x38,0xb2,0x16,0x10,0x03,0xb8,0x01,0x82,0xb5,0x1f,0x0d,0x04,0x04,0x00,0x1b,0xb8,0x01,0x84,0x40,0x0d,0x09,0x13,0x00,0x20,0x15,0x9a,0x0d,0x10,0x1f,0x16,0x9a,0x05,0x02,0x00,0x2f,0x33,0xed,0x32,0x2f, +0x33,0xed,0x32,0x01,0x2f,0x33,0x2f,0xed,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x31,0x30,0x25,0x06,0x07,0x15,0x23,0x35,0x26,0x27,0x26,0x11,0x10,0x37,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x15,0x26,0x27,0x11,0x36,0x37,0x01,0x06,0x15,0x14,0x17,0x16,0x17,0x11,0x06,0x03,0x88,0x68,0x97,0x5f,0xd0,0x80,0x8c,0x9e,0x81,0xbd,0x5f, +0x9c,0x63,0x71,0x8e,0x94,0x6b,0xfd,0xd1,0x73,0x6c,0x56,0x82,0x7d,0x36,0x41,0x09,0xa9,0xa9,0x0f,0xa2,0xb2,0x01,0x22,0x01,0x38,0xc0,0x9d,0x1c,0x96,0x8f,0x01,0x35,0xa2,0x4d,0x01,0xfb,0xd4,0x06,0x51,0x03,0x40,0x96,0xfa,0xed,0x8e,0x70,0x17,0x04,0x1c,0x1c,0x00,0x05,0x00,0xaa,0xff,0x43,0x03,0x8c,0x05,0xb8,0x00,0x17,0x00,0x1e, +0x00,0x22,0x00,0x26,0x00,0x2d,0x00,0x76,0xb6,0x0c,0x10,0x1d,0x1d,0x2c,0x05,0x15,0xb8,0x01,0x82,0xb4,0x16,0x25,0x02,0x16,0x09,0xb8,0x01,0x85,0x40,0x0a,0x29,0x16,0x21,0x29,0x29,0x21,0x16,0x03,0x00,0x10,0xb8,0x01,0x85,0xb2,0x1a,0x24,0x20,0xb8,0x01,0x85,0x40,0x1c,0xa0,0x00,0xb0,0x00,0x02,0x00,0x0d,0x1c,0x1f,0x9a,0x2c,0x24, +0x24,0x01,0x1d,0x20,0x9a,0x17,0x14,0x04,0x2b,0x23,0x9a,0x05,0x7f,0x01,0x01,0x01,0x00,0x2f,0x71,0x33,0xed,0x32,0x2f,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x39,0x01,0x2f,0x5d,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x32,0x11,0x12,0x39,0x31,0x30,0x33,0x11, +0x21,0x35,0x33,0x15,0x16,0x17,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x07,0x06,0x07,0x15,0x23,0x35,0x37,0x36,0x35,0x34,0x27,0x11,0x36,0x01,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0x13,0x36,0x35,0x34,0x27,0x11,0x36,0xaa,0x01,0x1d,0x5e,0x85,0x53,0x5c,0x78,0x69,0x7d,0x97,0x6f,0x63,0x95,0x5e,0xe5,0x40,0xc7,0x53,0xfe, +0xcb,0x84,0x84,0x84,0xb3,0x40,0x95,0x32,0x05,0x13,0xa5,0xa6,0x08,0x49,0x53,0x84,0x6e,0xa4,0x22,0x04,0x0f,0xa8,0x86,0xa6,0x68,0x5e,0x08,0xbe,0xbd,0xc9,0x40,0x6e,0xc4,0x1d,0xfe,0x34,0x0a,0x01,0xc7,0xfe,0x2d,0x01,0xd3,0x02,0x2c,0xfe,0x5d,0x01,0xa3,0xfe,0x99,0x3d,0x6d,0x9b,0x1c,0xfe,0x6f,0x0e,0x00,0x05,0x00,0x8c,0xfe,0x2f, +0x0a,0x0a,0x05,0x5d,0x00,0x1d,0x00,0x37,0x00,0x52,0x00,0x56,0x00,0x5a,0x00,0x95,0xbc,0x00,0x10,0x05,0x0a,0x00,0x0d,0x00,0x33,0x05,0x0a,0x40,0x09,0x30,0x30,0x53,0x89,0x54,0x57,0x89,0x58,0x24,0xb8,0x05,0x0a,0x40,0x0e,0x21,0x0d,0x54,0x58,0x21,0x52,0x52,0x21,0x58,0x54,0x0d,0x05,0x1a,0x4a,0xb8,0x05,0x0a,0xb2,0x3f,0x00,0x03, +0xb8,0x05,0x0a,0x40,0x0a,0x1a,0x1d,0x44,0x22,0x22,0x44,0x1d,0x03,0x0f,0x3a,0xb8,0x04,0xfb,0xb4,0x2f,0x4f,0x01,0x4f,0x1e,0xb8,0x04,0xfb,0xb6,0x2f,0x29,0x01,0x29,0x59,0x55,0x08,0xb8,0x04,0xfb,0x40,0x0b,0x58,0x54,0x2f,0x15,0x01,0x15,0x31,0x2f,0x0f,0x01,0x0f,0x00,0x2f,0x5d,0x33,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x2f,0x5d, +0xed,0x2f,0x5d,0xed,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x01,0x2f,0xfd,0xc6,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05, +0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x04,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x01,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x25,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x2f,0x0a,0x0a,0x20,0x47,0x71,0x51,0x5d,0x85,0x55,0x27,0x8d,0x33, +0x75,0xc0,0x8e,0x7a,0xa5,0x63,0x2b,0x0c,0x0d,0x05,0xf7,0x55,0x52,0x8d,0x31,0x56,0x73,0x40,0x3e,0x5b,0x41,0x29,0x18,0x09,0x8e,0x08,0x20,0x3e,0x01,0x45,0x71,0x50,0x4d,0x69,0x3f,0x1b,0x11,0x1c,0x25,0x14,0x92,0x17,0x24,0x1a,0x0d,0x3d,0x6e,0x97,0x59,0x2e,0x62,0x34,0xfe,0x72,0xa8,0xa8,0x01,0x23,0xa7,0xa7,0x01,0x7e,0x41,0x6e, +0x32,0x56,0x78,0x49,0x21,0x2c,0x64,0xa2,0x75,0x04,0x51,0xfb,0x9d,0x82,0xce,0x90,0x4e,0x3e,0x74,0xa5,0x68,0x39,0x76,0x44,0xfb,0x5f,0x65,0x01,0x7e,0xfe,0x7c,0x61,0x83,0x4f,0x22,0x1e,0x34,0x44,0x4f,0x55,0x2a,0x04,0x0d,0xfc,0x29,0x3a,0x60,0x43,0x26,0xfe,0x6a,0x23,0x37,0x62,0x85,0x4d,0x44,0x81,0x7b,0x77,0x39,0x3b,0x81,0x81, +0x7e,0x38,0x7d,0xc0,0x83,0x43,0x14,0x15,0x6e,0xa4,0xa4,0xa4,0x00,0x03,0x00,0x6e,0xff,0xee,0x06,0x34,0x05,0x27,0x00,0x09,0x00,0x0d,0x00,0x2e,0x00,0x82,0xb9,0x00,0x1b,0x01,0x82,0x40,0x09,0x27,0x18,0x1f,0x03,0x0f,0x25,0x25,0x0f,0x2a,0xb8,0x01,0x83,0x40,0x0b,0x14,0x0a,0x0f,0x0c,0x0c,0x0f,0x0a,0x03,0x03,0x14,0x08,0xb8,0x01, +0x82,0xb7,0x03,0x04,0x99,0x07,0x07,0x0d,0x08,0x02,0xb8,0x01,0x7d,0xb2,0x01,0x27,0x17,0xb8,0x01,0x7d,0xb3,0x18,0x18,0x11,0x1d,0xb8,0x01,0x7d,0x40,0x0b,0x22,0x01,0x22,0x01,0x22,0x0c,0x7f,0x0d,0x01,0x0d,0x11,0xb8,0x01,0x7d,0xb3,0x2d,0x2d,0x0c,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x12, +0x39,0x2f,0xed,0x39,0x10,0xed,0x32,0x11,0x33,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x01,0x21,0x35,0x33,0x11,0x07,0x35,0x25,0x11,0x33,0x01,0x01,0x23,0x01,0x03,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07, +0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x3d,0xfe,0x38,0xa7,0xae,0x01,0x24,0xab,0x02,0xef,0xfc,0xf6,0x82,0x03,0x0a,0x51,0x5d,0x67,0x49,0x53,0xc6,0x4d,0x49,0xb2,0x82,0x55,0x54,0x4f,0x72,0x67,0x79,0x83,0xa0,0x9a,0x80,0x7d,0x02,0x11,0x66,0x02,0x1a,0x32,0x71,0x57,0xfd,0x50,0x02,0x9c, +0xfa,0xed,0x05,0x13,0xfb,0x0b,0x81,0x45,0x44,0x3a,0x7f,0x6b,0x7a,0x6b,0x3e,0x7e,0x2e,0x6c,0x57,0x88,0x31,0x04,0x26,0x91,0x6a,0x86,0x00,0x03,0x00,0x80,0xff,0xee,0x06,0x32,0x05,0x25,0x00,0x16,0x00,0x1a,0x00,0x3b,0x00,0x9c,0xb9,0x00,0x28,0x01,0x82,0x40,0x09,0x2c,0x24,0x35,0x03,0x1b,0x32,0x32,0x1b,0x37,0xbb,0x01,0x83,0x00, +0x21,0x00,0x11,0x01,0x83,0x40,0x13,0x06,0x0b,0x01,0x19,0x00,0x06,0x1b,0x19,0x06,0x1b,0x17,0x17,0x1b,0x06,0x19,0x04,0x01,0x21,0x15,0xbb,0x01,0x84,0x00,0x01,0x00,0x09,0x01,0x7d,0xb4,0x0e,0x0e,0x1a,0x34,0x24,0xb8,0x01,0x7d,0xb3,0x25,0x25,0x1e,0x2a,0xb8,0x01,0x7d,0xb2,0x2f,0x02,0x15,0xb8,0x01,0x7d,0x40,0x0b,0x01,0x2f,0x01, +0x2f,0x01,0x19,0x7f,0x1a,0x01,0x1a,0x1e,0xb8,0x01,0x7d,0xb3,0x3a,0x3a,0x19,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x32,0x10,0xed,0x12,0x39,0x2f,0xed,0x39,0x11,0x33,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x11, +0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x01,0x21,0x35,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x07,0x15,0x21,0x01,0x01,0x23,0x01,0x03,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15, +0x14,0x06,0x23,0x22,0x02,0x76,0xfe,0x0a,0xd9,0x5e,0x33,0x45,0x38,0x6b,0x59,0x4d,0x88,0x6b,0x7d,0xb9,0x95,0x01,0x5e,0x02,0xb4,0xfc,0xf7,0x83,0x03,0x0a,0x51,0x5d,0x67,0x49,0x53,0xc6,0x4c,0x48,0xb3,0x83,0x55,0x53,0x4e,0x73,0x66,0x79,0x83,0xa0,0x9a,0x80,0x7c,0x02,0x11,0x67,0xd6,0x5d,0x62,0x32,0x35,0x42,0x5d,0x87,0x45,0x77, +0x62,0x8b,0xb0,0x8e,0x03,0x02,0x93,0xfa,0xed,0x05,0x13,0xfb,0x0b,0x81,0x45,0x44,0x3a,0x7f,0x6b,0x7a,0x6b,0x3e,0x7e,0x2e,0x6c,0x57,0x88,0x31,0x04,0x26,0x91,0x6a,0x86,0x00,0x00,0x02,0x00,0xb2,0x04,0x37,0x02,0xbc,0x06,0x1f,0x00,0x03,0x00,0x07,0x00,0x1f,0xbc,0x00,0x05,0x01,0x85,0x00,0x06,0x00,0x01,0x01,0x85,0xb5,0x02,0x06, +0x02,0x02,0x07,0x00,0x00,0x2f,0x32,0x32,0x2f,0x33,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x01,0x51,0x9f,0x02,0x0a,0x9f,0x06,0x1f,0xfe,0x18,0x01,0xe8,0xfe,0x18,0x01,0xe8,0x00,0x00,0x01,0x00,0xb2,0x04,0x37,0x01,0x51,0x06,0x1f,0x00,0x03,0x00,0x13,0xb9,0x00,0x01,0x01,0x85,0xb3,0x02,0x02, +0x02,0x00,0x00,0x2f,0x32,0x2f,0x01,0x2f,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x01,0x51,0x9f,0x06,0x1f,0xfe,0x18,0x01,0xe8,0x00,0x01,0x00,0x53,0x03,0x1d,0x03,0x55,0x06,0x1f,0x00,0x0e,0x00,0x0f,0xb4,0x0c,0x0b,0x03,0x03,0x0c,0x00,0x2f,0x33,0x2f,0x01,0x2f,0xcd,0x31,0x30,0x01,0x05,0x13,0x07,0x03,0x03,0x27,0x13,0x25,0x37,0x05, +0x03,0x33,0x03,0x25,0x03,0x55,0xfe,0xd4,0xd0,0x79,0xaa,0xad,0x78,0xd0,0xfe,0xd2,0x31,0x01,0x1f,0x1a,0x97,0x19,0x01,0x20,0x04,0xb7,0x3e,0xfe,0xf7,0x53,0x01,0x21,0xfe,0xdf,0x53,0x01,0x09,0x3e,0x88,0x6c,0x01,0x4c,0xfe,0xb4,0x6c,0x00,0x00,0x01,0x00,0x2b,0xfe,0xdf,0x01,0x59,0x00,0xf9,0x00,0x03,0x00,0x0f,0xb4,0x02,0x00,0x02, +0x02,0x00,0x00,0x2f,0x32,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x25,0x03,0x23,0x13,0x01,0x59,0xae,0x80,0x80,0xf9,0xfd,0xe6,0x02,0x1a,0x00,0x00,0x01,0x00,0xa6,0x02,0x49,0x03,0x1e,0x02,0xde,0x00,0x03,0x00,0x0e,0xb4,0x01,0x00,0x01,0x99,0x02,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x1e,0xfd,0x88,0x02,0x78, +0x02,0x49,0x95,0x00,0x00,0x01,0x00,0x7a,0xff,0xe8,0x01,0x6f,0x00,0xde,0x00,0x0b,0x00,0x0d,0xb3,0x09,0x03,0x06,0x00,0x00,0x2f,0x32,0x01,0x2f,0xcd,0x31,0x30,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xf4,0x33,0x47,0x47,0x33,0x33,0x48,0x48,0x18,0x48,0x32,0x33,0x49,0x49,0x33,0x32,0x48,0x00,0x02,0x00,0x7a, +0xff,0xe8,0x01,0x6f,0x04,0x77,0x00,0x0b,0x00,0x17,0x00,0x15,0xb7,0x15,0x09,0x0f,0x03,0x12,0x0c,0x00,0x06,0x00,0x2f,0x33,0x2f,0x33,0x01,0x2f,0x33,0xcd,0x32,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xf4,0x33,0x47,0x47,0x33,0x33,0x48, +0x48,0x33,0x33,0x47,0x47,0x33,0x33,0x48,0x48,0x03,0x85,0x48,0x32,0x32,0x46,0x46,0x32,0x32,0x48,0xfc,0x63,0x48,0x32,0x33,0x49,0x49,0x33,0x32,0x48,0x00,0x00,0x02,0x00,0x2b,0xfe,0xdf,0x01,0x71,0x04,0x77,0x00,0x0b,0x00,0x0f,0x00,0x1a,0x40,0x0a,0x0c,0x0c,0x0e,0x09,0x03,0x0e,0x0e,0x0f,0x00,0x06,0x00,0x2f,0x33,0x2f,0x33,0x2f, +0x01,0x2f,0xcd,0x2f,0x39,0x2f,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x03,0x23,0x13,0xf7,0x33,0x47,0x47,0x33,0x32,0x48,0x48,0x30,0xae,0x80,0x80,0x03,0x85,0x48,0x32,0x32,0x46,0x46,0x32,0x32,0x48,0xfd,0x74,0xfd,0xe6,0x02,0x1a,0x00,0x01,0x00,0x00,0xfe,0xa9,0x03,0xd7,0xff,0x32,0x00,0x03, +0x00,0x0e,0xb4,0x01,0x00,0x01,0x9a,0x02,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0xd7,0xfc,0x29,0x03,0xd7,0xfe,0xa9,0x89,0x00,0x00,0x02,0x00,0x6a,0x00,0xe7,0x04,0x48,0x03,0xf9,0x00,0x05,0x00,0x0b,0x00,0x09,0xb1,0x05,0x0b,0x00,0x19,0x2f,0x33,0x31,0x30,0x25,0x23,0x01,0x01,0x33,0x01,0x03,0x23,0x01, +0x01,0x33,0x01,0x04,0x46,0xc3,0xfe,0xa7,0x01,0x59,0xc5,0xfe,0x9d,0x61,0xc0,0xfe,0xa6,0x01,0x5a,0xc0,0xfe,0xa2,0xe7,0x01,0x85,0x01,0x8d,0xfe,0x73,0xfe,0x7b,0x01,0x85,0x01,0x8d,0xfe,0x73,0x00,0x00,0x02,0x00,0x68,0x00,0xe7,0x04,0x48,0x03,0xf9,0x00,0x05,0x00,0x0b,0x00,0x09,0xb1,0x03,0x09,0x00,0x19,0x2f,0x33,0x31,0x30,0x01, +0x01,0x23,0x01,0x01,0x33,0x03,0x01,0x23,0x01,0x01,0x33,0x04,0x48,0xfe,0xa4,0xbf,0x01,0x5d,0xfe,0xa3,0xbf,0x66,0xfe,0xa7,0xc5,0x01,0x64,0xfe,0x9c,0xc5,0x02,0x6e,0xfe,0x79,0x01,0x87,0x01,0x8b,0xfe,0x75,0xfe,0x79,0x01,0x87,0x01,0x8b,0x00,0x01,0x00,0x00,0x02,0x29,0x04,0x5f,0x02,0xb6,0x00,0x03,0x00,0x11,0xb2,0x01,0x00,0x01, +0xb9,0x01,0x7f,0x00,0x02,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x35,0x21,0x04,0x5f,0xfb,0xa1,0x04,0x5f,0x02,0x29,0x8d,0x00,0x02,0x00,0x6f,0x03,0xd0,0x02,0x9c,0x05,0xb2,0x00,0x14,0x00,0x29,0x00,0x32,0x40,0x18,0x21,0x0c,0x29,0x14,0x04,0x18,0x1e,0x24,0x03,0x09,0x0f,0x15,0x15,0x1e,0xaf,0x24,0x24,0x2b,0x11,0x00, +0x00,0x09,0xaf,0x0f,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x3f,0x33,0xc4,0x32,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x05,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35, +0x34,0x3e,0x02,0x37,0x01,0x61,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x01,0x6b,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x05,0x77,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11, +0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x02,0x00,0x68,0x03,0xd0,0x02,0x95,0x05,0xb2,0x00,0x14,0x00,0x29,0x00,0x2c,0x40,0x15,0x14,0x29,0x0c,0x21,0x04,0x03,0x0f,0x09,0x18,0x24,0x1e,0x00,0x0f,0xaf,0x09,0x09,0x2b,0x15,0x24,0xaf,0x1e,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xe1,0xc6,0x11,0x12,0x39,0x11,0x12, +0x39,0x00,0x3f,0x33,0xc4,0x32,0x31,0x30,0x01,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x25,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x01,0xa3,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27, +0xfe,0x95,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x04,0x0b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x01,0x00,0x6f,0x03,0xd0,0x01,0x61, +0x05,0xb2,0x00,0x14,0x00,0x19,0x40,0x0b,0x0c,0x14,0x04,0x03,0x09,0x0f,0x00,0x00,0x09,0xaf,0x0f,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x01,0x61,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20, +0x35,0x46,0x27,0x05,0x77,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x01,0x00,0x74,0x03,0xd0,0x01,0x66,0x05,0xb2,0x00,0x14,0x00,0x15,0x40,0x09,0x14,0x0c,0x04,0x03,0x0f,0x00,0x0f,0xaf,0x09,0x2f,0xe1,0xc6,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x13,0x36,0x36,0x35,0x34, +0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x74,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x04,0x0b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x01,0x00,0x62,0xfe,0xed,0x01,0x4e,0x00,0xcf,0x00,0x16,0x00,0x17, +0x40,0x0a,0x16,0x0e,0xb2,0x17,0x05,0x11,0x00,0x11,0xaf,0x0b,0x2f,0xe1,0xc6,0x12,0x39,0x00,0x10,0xf4,0xc4,0x31,0x30,0x17,0x3e,0x03,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x62,0x1b,0x31,0x24,0x15,0x19,0x1d,0x28,0x1a,0x2f,0x30,0x3b,0x45,0x20,0x35,0x46,0x27,0xde,0x16,0x31,0x31, +0x2f,0x15,0x19,0x13,0x0d,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x02,0x00,0x68,0xfe,0xed,0x02,0x95,0x00,0xcf,0x00,0x14,0x00,0x29,0x00,0x2a,0x40,0x14,0x14,0x0c,0x29,0x21,0xb2,0x2a,0x18,0x24,0x1e,0x03,0x0f,0xaf,0x09,0x09,0x09,0x2b,0x15,0x24,0xaf,0x1e,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0x2f,0xe1, +0x39,0x11,0x12,0x39,0x00,0x10,0xf4,0xc4,0x33,0x32,0x31,0x30,0x05,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x25,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x01,0xa3,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44, +0x20,0x35,0x46,0x27,0xfe,0x95,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0xd8,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x01,0x00,0x74,0x03,0xd0, +0x01,0x66,0x05,0xb2,0x00,0x14,0x00,0x19,0x40,0x0b,0x00,0x08,0x04,0x11,0x0b,0x05,0x14,0x14,0x0b,0xaf,0x05,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x01,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x36,0x27,0x46,0x35,0x20,0x44,0x38,0x33,0x30,0x1a,0x28, +0x1a,0x14,0x4c,0x37,0x03,0xd0,0x1e,0x44,0x4f,0x5d,0x37,0x4e,0x4f,0x39,0x26,0x22,0x26,0x11,0x0c,0x15,0x18,0x2a,0x5f,0x2d,0x00,0x02,0x00,0x90,0x03,0xd0,0x02,0xbd,0x05,0xb2,0x00,0x14,0x00,0x29,0x00,0x2d,0x40,0x15,0x26,0x1a,0x20,0x29,0x29,0x20,0xaf,0x1a,0x11,0x0b,0x05,0x14,0x14,0x0b,0xaf,0x05,0x15,0x00,0x1d,0x08,0x04,0x00, +0x3f,0x33,0xc4,0x32,0x01,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x31,0x30,0x01,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x05,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x52,0x27,0x46,0x35, +0x20,0x44,0x38,0x33,0x30,0x1a,0x28,0x1a,0x14,0x4c,0x37,0x01,0x0b,0x27,0x46,0x35,0x20,0x44,0x38,0x33,0x30,0x1a,0x28,0x1a,0x14,0x4c,0x37,0x03,0xd0,0x1e,0x44,0x4f,0x5d,0x37,0x4e,0x4f,0x39,0x26,0x22,0x26,0x11,0x0c,0x15,0x18,0x2a,0x5f,0x2d,0x3b,0x1e,0x44,0x4f,0x5d,0x37,0x4e,0x4f,0x39,0x26,0x22,0x26,0x11,0x0c,0x15,0x18,0x2a, +0x5f,0x2d,0x00,0x03,0x00,0x8d,0xff,0xe7,0x06,0x57,0x05,0xb1,0x00,0x15,0x00,0x31,0x00,0x4d,0x00,0x40,0x40,0x1d,0x10,0x0b,0x00,0x05,0x00,0x05,0x00,0x40,0x32,0x16,0x24,0x40,0x0b,0x0b,0x0d,0x15,0x02,0x13,0x0d,0x08,0x13,0x08,0x13,0x08,0x1d,0x39,0x2b,0x47,0x1d,0x00,0x2f,0xc9,0x2f,0xc9,0x11,0x39,0x39,0x2f,0x2f,0x10,0xc9,0x10, +0xc9,0xc6,0x10,0xc2,0x2f,0x01,0x2f,0xc9,0x2f,0xc9,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xc9,0x31,0x30,0x01,0x06,0x23,0x22,0x24,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x25,0x34,0x3e,0x04,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x04,0x37,0x14,0x1e,0x04,0x33,0x32, +0x3e,0x04,0x35,0x34,0x2e,0x04,0x23,0x22,0x0e,0x04,0x04,0x80,0x69,0x8f,0xc0,0xfe,0xfc,0x01,0x0a,0xd5,0x79,0x60,0x56,0x8f,0x8d,0xb7,0xbb,0x90,0x84,0x5e,0xfc,0x0d,0x35,0x60,0x88,0xa4,0xbe,0x66,0x66,0xbe,0xa4,0x88,0x60,0x35,0x35,0x60,0x88,0xa4,0xbe,0x66,0x66,0xbe,0xa4,0x88,0x60,0x35,0x7f,0x2c,0x50,0x70,0x88,0x9d,0x55,0x54, +0x9d,0x88,0x70,0x50,0x2c,0x2c,0x50,0x70,0x88,0x9d,0x54,0x55,0x9d,0x88,0x70,0x50,0x2c,0x01,0x49,0x45,0xfa,0xbc,0xda,0x01,0x04,0x35,0x96,0x48,0xb4,0x98,0x94,0xb2,0x4e,0xfb,0x66,0xbe,0xa4,0x88,0x60,0x35,0x35,0x60,0x88,0xa4,0xbe,0x66,0x66,0xbe,0xa4,0x88,0x60,0x35,0x35,0x60,0x88,0xa4,0xbe,0x5f,0x55,0x9c,0x88,0x70,0x50,0x2c, +0x2c,0x50,0x70,0x88,0x9c,0x55,0x55,0x9d,0x88,0x70,0x50,0x2c,0x2c,0x50,0x70,0x88,0x9d,0x00,0xff,0xff,0x00,0x70,0x00,0xb2,0x01,0x50,0x04,0xde,0x02,0x07,0x00,0x1d,0x00,0x00,0x00,0xc8,0x00,0x17,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x05,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b, +0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x5b,0x00,0x6b,0x00,0x73,0x00,0x7c,0x00,0xb2,0x00,0xbc,0x00,0xc3,0x01,0x65,0x40,0xc6,0x3b,0x1b,0x38,0x18,0x37,0x2f,0x14,0x34,0x2c,0x23,0x1f,0x20,0x1c,0x0c,0x64,0x65,0x79,0x97,0x97,0xab,0x7d,0x8e,0x03,0x11,0x4d,0x50,0x51,0xa1,0x8e,0xab,0x86,0x48, +0x57,0x59,0x57,0xbe,0xb4,0xb5,0x6d,0x75,0x5c,0xb9,0xc1,0x61,0x71,0x68,0x79,0x06,0x12,0x11,0x51,0x8e,0x86,0x57,0xb5,0x5c,0xc1,0x71,0x79,0x12,0x12,0x79,0x71,0xc1,0x5c,0xb5,0x57,0x86,0x8e,0x51,0x11,0x0b,0x14,0x30,0x3c,0x40,0x05,0x04,0x0f,0x00,0x31,0x3d,0x41,0x04,0x0c,0x09,0x24,0x28,0x44,0x04,0x17,0x25,0x29,0x45,0x0a,0x04, +0x14,0x2a,0x42,0x29,0x41,0x46,0x3e,0x01,0x45,0x3d,0x3d,0x0f,0x26,0x32,0x32,0x0f,0x25,0x31,0x31,0x0f,0x97,0x97,0x9c,0x7e,0x81,0x5a,0x52,0x51,0x51,0x49,0x15,0x0d,0xb0,0x81,0xb3,0xbe,0xbd,0xb6,0x9c,0x93,0x5c,0x75,0x49,0x57,0x74,0x6d,0x6c,0x5d,0x4d,0x52,0x0a,0x00,0x0d,0xb5,0x81,0xbe,0xb6,0x93,0x75,0x57,0x6d,0x5d,0x52,0x00, +0x00,0x52,0x5d,0x6d,0x57,0x75,0x93,0xb6,0xbe,0x81,0xb5,0x0d,0x0c,0x01,0x19,0x1d,0x2d,0x13,0x04,0x0f,0x12,0x18,0x1c,0x2c,0x04,0x0c,0x20,0x34,0x38,0x06,0x04,0x04,0x07,0x21,0x35,0x39,0x04,0x01,0x00,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9,0x17,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f, +0x2f,0x2f,0x11,0x33,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x11,0x33,0x10,0xc0,0x2f,0x10,0xc4,0x10,0xc6,0x10,0xc2,0x2f,0x10,0xc0,0x2f,0x32,0x10,0xc0,0x2f,0x32,0x10,0xc0,0x2f,0x32,0x10,0xc6,0x32,0xc6,0x32,0xc6,0x32,0x01,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9, +0x17,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x32,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x32,0x11,0x33,0x10,0xc4,0x10,0xc0,0x2f,0x10,0xc5,0x32,0x10,0xc4,0x32,0xc4,0x32,0xc4,0x32,0x10,0xc4,0x32,0xc4,0x32,0xc4, +0x32,0x31,0x30,0x13,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01, +0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x05,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x15,0x23,0x11,0x33,0x13,0x16,0x17,0x33,0x26,0x35,0x35,0x33,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x03,0x15,0x33,0x32,0x36,0x35,0x34,0x23,0x07,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23, +0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x25,0x15,0x23,0x11,0x33,0x32,0x15,0x14,0x06,0x23,0x27,0x15,0x33,0x32,0x35,0x34,0x23,0xbc,0xeb,0x96, +0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0xfd,0x02,0x61,0xb2,0x0f,0x06,0x01,0x02,0x5c,0x69,0xab,0x0b,0x0a,0x01,0x02,0x5b, +0x98,0x9d,0x48,0x4d,0x2f,0x25,0x2e,0x37,0x55,0x49,0x44,0x2a,0x1e,0x23,0x47,0x24,0x34,0x22,0x26,0x25,0x22,0xfd,0x7c,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22, +0x24,0x40,0x02,0x1f,0x61,0x98,0xa2,0x5d,0x4e,0x2e,0x26,0x4d,0x4d,0x04,0xd4,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff, +0xd1,0x2c,0x01,0x0e,0x18,0x0c,0x17,0x2f,0xec,0x01,0xae,0xfe,0xfa,0x12,0x11,0x0f,0x2c,0xee,0xfe,0x52,0x01,0xae,0x35,0x30,0x23,0x34,0x0a,0x01,0x06,0x38,0x29,0x3b,0x45,0x01,0x67,0x66,0x1d,0x19,0x30,0xae,0x72,0x1f,0x1b,0x1a,0x1e,0xfd,0x3a,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30, +0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x8f,0x94,0x01,0xae,0x89,0x41,0x50,0xd0,0x86,0x43,0x43,0x00,0x00,0x15,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x05,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23, +0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x7d,0x00,0x87,0x00,0x8e,0x00,0x98,0x00,0xb4,0x01,0x57,0x40,0xbf,0x3b,0x1b,0x38,0x18,0x14,0x23,0x1f,0x20,0x1c,0x0c,0xa8,0x2f,0x2f,0x37,0x62,0x62,0x76,0x34,0x2c,0xa4,0x8f,0x8f,0x96,0x48,0x59,0x93,0x03,0x11,0x97,0x90,0x6c,0x59, +0x96,0x92,0x76,0x51,0x37,0xa4,0x89,0x7f,0x80,0x84,0x8c,0x06,0x12,0x11,0x90,0x59,0x92,0x51,0xa4,0x80,0x8c,0x12,0x99,0x99,0x12,0x8c,0x80,0xa4,0x51,0x92,0x59,0x90,0x11,0x0a,0x14,0x30,0x3c,0x40,0x05,0x04,0x0f,0x00,0x31,0x3d,0x41,0x04,0x0c,0x09,0x24,0x28,0x44,0x04,0x17,0x25,0x29,0x45,0x0a,0x04,0x14,0x2a,0x42,0x29,0x41,0x46, +0x3e,0x01,0x45,0x3d,0x3d,0x0f,0x26,0x32,0x32,0x0f,0x25,0x31,0x31,0x0f,0x62,0x62,0x67,0x49,0x4c,0xb4,0xa4,0xac,0x15,0x0d,0x7b,0x4c,0x7e,0x89,0x88,0x81,0x67,0x5e,0xa3,0x9b,0x90,0x97,0xb1,0xb0,0xa9,0xa8,0x04,0x97,0x9e,0x9f,0xac,0x93,0x94,0x0a,0x00,0x0d,0x80,0x4c,0x89,0x81,0x5e,0x97,0xac,0x94,0x00,0x00,0x94,0xac,0x97,0x5e, +0x81,0x89,0x4c,0x80,0x0d,0x0a,0x01,0x19,0x1d,0x2d,0x13,0x04,0x0f,0x12,0x18,0x1c,0x2c,0x04,0x0c,0x20,0x34,0x38,0x06,0x04,0x04,0x07,0x21,0x35,0x39,0x04,0x01,0x00,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9,0x17,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xc9,0x10,0xc9,0x32, +0x11,0x17,0x33,0x10,0xc9,0x32,0x32,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x11,0x33,0x10,0xc4,0x32,0x10,0xc6,0x10,0xc2,0x2f,0x10,0xc0,0x2f,0x32,0x10,0xc0,0x2f,0x32,0x10,0xc0,0x2f,0x32,0x10,0xc6,0x32,0xc6,0x32,0xc6,0x32,0x01,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9,0x17,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f, +0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xc9,0x10,0xc9,0x32,0x10,0xca,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x11,0x33,0xc4,0x10,0xc4,0x10,0xc0,0x2f,0x10,0xc4,0x32,0x10,0xc0,0x2f,0x10,0xc0,0x2f,0x32,0x10,0xc4,0x32,0xc4,0x32,0x10,0xc4,0x32,0xc4,0x32,0x31,0x30,0x13,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23, +0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x01,0x35,0x16, +0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x25,0x15,0x23,0x11,0x33,0x32,0x15,0x14,0x06,0x23,0x27,0x15,0x33,0x32,0x35,0x34,0x23,0x25,0x21,0x35,0x13,0x23,0x35, +0x21,0x15,0x03,0x33,0x01,0x03,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0xbc,0xeb,0x96,0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1, +0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0xfb,0xac,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40, +0x02,0x1f,0x61,0x98,0xa2,0x5d,0x4e,0x2e,0x26,0x4d,0x4d,0xfe,0x82,0xfe,0xa5,0xdd,0xcd,0x01,0x4a,0xd8,0xd9,0x02,0xb6,0x71,0x6c,0x47,0x06,0x01,0x01,0x03,0x05,0x49,0x70,0x71,0x6a,0x3c,0x04,0x02,0x02,0x01,0x07,0x4e,0x68,0x47,0x04,0x03,0x01,0x01,0x05,0x3b,0x04,0xd4,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56, +0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0xfd,0xc7,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c, +0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x8f,0x94,0x01,0xae,0x89,0x41,0x50,0xd0,0x86,0x43,0x43,0xba,0x38,0x01,0x27,0x4f,0x36,0xfe,0xd6,0x01,0x60,0xfe,0x52,0x01,0x14,0x15,0x1b,0x1d,0x13,0xfe,0xec,0x01,0xae,0xfe,0xe2,0x13,0x1f,0x17,0x1c,0x01,0x1d,0xfe,0xdf, +0x10,0x1e,0x18,0x18,0x01,0x1f,0x00,0x16,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x35,0x00,0x3b,0x00,0x41,0x00,0x47,0x00,0x4d,0x00,0x51,0x00,0x55,0x00,0x59,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0x69,0x00,0x6d,0x00,0x71,0x00,0x75,0x00,0x79,0x00,0x7d,0x00,0x91,0x00,0xa5,0x00,0xb5,0x00,0xbd,0x00,0xc6,0x01,0x62,0x40,0xc3, +0x71,0x51,0x6e,0x4e,0x6d,0x65,0x4a,0x6a,0x62,0x59,0x56,0x52,0x42,0x1a,0x1a,0x2e,0x00,0x11,0xae,0xaf,0xc3,0x39,0x47,0x83,0x86,0x87,0xb7,0xbf,0xa6,0xab,0xbb,0xb2,0xc3,0x7e,0x8d,0x8f,0x8d,0x97,0x9a,0x9b,0x24,0x11,0x2e,0x09,0x92,0xa1,0xa3,0xa1,0x3c,0x48,0x47,0x87,0xa6,0xbb,0xc3,0x8d,0x9b,0x11,0x09,0xa1,0x48,0x48,0xa1,0x09, +0x11,0x9b,0x8d,0xc3,0xbb,0xa6,0x87,0x47,0x0b,0x4a,0x66,0x72,0x76,0x3b,0x04,0x45,0x36,0x67,0x73,0x77,0x04,0x42,0x3f,0x5a,0x5e,0x7a,0x04,0x4d,0x5b,0x5f,0x7b,0x40,0x04,0x4a,0x60,0x78,0x5f,0x77,0x7c,0x74,0x37,0x5b,0x67,0x67,0x45,0x01,0xbf,0xa4,0x90,0x88,0x9b,0x87,0x87,0x7f,0x1a,0x7b,0x73,0x73,0xb6,0x5c,0xae,0xaf,0x03,0x68, +0xb7,0x4b,0x43,0x33,0xa6,0xbf,0x04,0xbf,0xbe,0xb7,0x1f,0xb6,0xa7,0x16,0xa7,0x93,0x7f,0x8d,0xa1,0x8d,0x97,0x83,0x88,0x9c,0x88,0x40,0x36,0x43,0xbf,0xb7,0xa7,0x8d,0x88,0x36,0x36,0x88,0x8d,0xa7,0xb7,0xbf,0x43,0x07,0x37,0x4f,0x53,0x63,0x49,0x04,0x45,0x48,0x4e,0x52,0x62,0x04,0x42,0x56,0x6a,0x6e,0x3c,0x04,0x3a,0x3d,0x57,0x6b, +0x6f,0x04,0x37,0x00,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9,0x17,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x32,0x10,0xc9,0x11,0x33,0x10,0xc9,0x32,0x11,0x33,0x10,0xc4,0x17,0x32,0x10,0xc0,0x2f,0x32,0x32,0x10,0xc0,0x2f, +0x32,0x10,0xc4,0x32,0x10,0xc4,0x10,0xc0,0x2f,0x32,0x10,0xc6,0x32,0xc6,0x32,0xc6,0x32,0x01,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9,0x17,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x10,0xc9,0x10, +0xc9,0x10,0xc9,0x32,0x10,0xc9,0x32,0x11,0x33,0x10,0xc5,0x32,0x10,0xc4,0x10,0xc0,0x2f,0x10,0xc4,0x32,0xc4,0xc4,0x32,0x10,0xc4,0x32,0xc4,0x32,0xc4,0x32,0x31,0x30,0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14, +0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x01,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23,0x35,0x33, +0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x05,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x15,0x23,0x11,0x33,0x13,0x16,0x17,0x33,0x26,0x35,0x35,0x33,0x01,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x15,0x23,0x11,0x33,0x13,0x16,0x17,0x33,0x26,0x35,0x35,0x33,0x01,0x11,0x33,0x32, +0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x03,0x15,0x33,0x32,0x36,0x35,0x34,0x23,0x07,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x04,0x10,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13, +0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40,0xfc,0x95,0xeb,0x96,0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0xfc,0xe4, +0x61,0xb2,0x0f,0x06,0x01,0x02,0x5c,0x69,0xab,0x0b,0x0a,0x01,0x02,0x5b,0x02,0x01,0x61,0xb2,0x0f,0x06,0x01,0x02,0x5c,0x69,0xab,0x0b,0x0a,0x01,0x02,0x5b,0xfc,0xc7,0x9d,0x48,0x4d,0x2f,0x25,0x2e,0x37,0x55,0x49,0x44,0x2a,0x1e,0x23,0x47,0x24,0x34,0x22,0x26,0x25,0x22,0x01,0x0e,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11, +0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x03,0xd2,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01, +0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0x2c,0x01,0x0e,0x18,0x0c,0x17,0x2f,0xec,0x01,0xae,0xfe,0xfa,0x12,0x11,0x0f,0x2c,0xee,0xfe,0x52,0x01,0x0e,0x18,0x0c,0x17,0x2f,0xec,0x01,0xae,0xfe,0xfa,0x12,0x11,0x0f,0x2c,0xee,0xfc,0x34,0x01,0xae,0x35,0x30, +0x23,0x34,0x0a,0x01,0x06,0x38,0x29,0x3b,0x45,0x01,0x67,0x66,0x1d,0x19,0x30,0xae,0x72,0x1f,0x1b,0x1a,0x1e,0x00,0xff,0xff,0x00,0xab,0xff,0xf2,0x04,0x15,0x05,0xec,0x00,0x26,0x08,0xc7,0x00,0x00,0x00,0x27,0x0e,0x6f,0x02,0x01,0x00,0x00,0x01,0x07,0x09,0x7e,0x02,0x73,0xfd,0x56,0x00,0x0a,0xb4,0x02,0x2f,0x3c,0x01,0x3c,0x00,0x11, +0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xf2,0x04,0xad,0x05,0xec,0x00,0x26,0x08,0xc7,0x00,0x00,0x00,0x27,0x09,0x3b,0x02,0x01,0x00,0x00,0x01,0x07,0x09,0x7e,0x02,0x73,0xfd,0x56,0x00,0x0a,0xb4,0x02,0x2f,0x3c,0x01,0x3c,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xa1,0xff,0xf2,0x06,0x16,0x05,0x3f,0x00,0x26,0x08,0xf3,0x00,0x00,0x00,0x27, +0x0e,0x6f,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x03,0x2f,0x57,0x01,0x57,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xa1,0xff,0xf2,0x06,0xae,0x05,0x3f,0x00,0x26,0x08,0xf3,0x00,0x00,0x00,0x27,0x09,0x3b,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x03,0x2f,0x60, +0x01,0x60,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0x16,0x05,0x3f,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x0e,0x6f,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x03,0x2f,0x59,0x01,0x59,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0xae,0x05,0x3f,0x00,0x26,0x0e,0x5e, +0x00,0x00,0x00,0x27,0x09,0x3b,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x03,0x2f,0x59,0x01,0x59,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0x16,0x05,0x64,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x09,0x30,0x00,0xe4,0xfd,0x56,0x00,0x27,0x0e,0x6f,0x04,0x02,0x00,0x00,0x01,0x07, +0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0e,0xb6,0x05,0x02,0x03,0x2f,0x59,0x01,0x59,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0xae,0x05,0x64,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x09,0x30,0x00,0xe4,0xfd,0x56,0x00,0x27,0x09,0x3b,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0e, +0xb6,0x05,0x02,0x03,0x2f,0x59,0x01,0x59,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0x16,0x05,0x3f,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x0a,0x6d,0x00,0xe5,0xfd,0x56,0x00,0x27,0x0e,0x6f,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0c,0xb5,0x04,0x02,0x2f,0x3e,0x01,0x3e,0x00, +0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0xae,0x05,0x3f,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x0a,0x6d,0x00,0xe5,0xfd,0x56,0x00,0x27,0x09,0x3b,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0c,0xb5,0x04,0x02,0x2f,0x3e,0x01,0x3e,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff, +0x06,0x16,0x05,0x5a,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x09,0x73,0x00,0xe5,0xfd,0x56,0x00,0x27,0x0e,0x6f,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x04,0x2f,0x5d,0x01,0x5d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0xae,0x05,0x5a,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27, +0x09,0x73,0x00,0xe5,0xfd,0x56,0x00,0x27,0x09,0x3b,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x04,0x2f,0x5d,0x01,0x5d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xfd,0xc5,0x08,0xc2,0x05,0x3f,0x00,0x26,0x0f,0x61,0x00,0x00,0x00,0x27,0x0f,0x52,0x01,0xc8,0xfd,0xca,0x00,0x27,0x0e,0x6f,0x06,0xae, +0x00,0x00,0x01,0x07,0x09,0x7e,0x07,0x20,0xfd,0x56,0x00,0x0a,0xb4,0x04,0x2f,0x6c,0x01,0x6c,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xfd,0xc5,0x09,0x5a,0x05,0x3f,0x00,0x26,0x0f,0x61,0x00,0x00,0x00,0x27,0x0f,0x52,0x01,0xc8,0xfd,0xca,0x00,0x27,0x09,0x3b,0x06,0xae,0x00,0x00,0x01,0x07,0x09,0x7e,0x07,0x20,0xfd,0x56,0x00,0x0a, +0xb4,0x04,0x2f,0x6c,0x01,0x6c,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfd,0xca,0x04,0xc0,0x05,0x3f,0x00,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x52,0x00,0x83,0xfd,0xcf,0x00,0x27,0x0e,0x6f,0x02,0xac,0x00,0x00,0x01,0x07,0x09,0x7e,0x03,0x1e,0xfd,0x56,0x00,0x0a,0xb4,0x04,0x2f,0x55,0x01,0x55,0x00,0x11,0x5d,0x35,0xff,0xff, +0x00,0x9a,0xff,0x02,0x08,0xc2,0x05,0x3f,0x00,0x26,0x08,0xf7,0x00,0x00,0x00,0x27,0x0e,0x6f,0x06,0xae,0x00,0x00,0x01,0x07,0x09,0x7e,0x07,0x20,0xfd,0x56,0x00,0x0a,0xb4,0x02,0x2f,0x72,0x01,0x72,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x09,0x5a,0x05,0x3f,0x00,0x26,0x08,0xf7,0x00,0x00,0x00,0x27,0x09,0x3b,0x06,0xae, +0x00,0x00,0x01,0x07,0x09,0x7e,0x07,0x20,0xfd,0x56,0x00,0x0a,0xb4,0x02,0x2f,0x72,0x01,0x72,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xc0,0x05,0x3f,0x00,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0e,0x6f,0x02,0xac,0x00,0x00,0x01,0x07,0x09,0x7e,0x03,0x1e,0xfd,0x56,0x00,0x0a,0xb4,0x02,0x2f,0x4d,0x01,0x4d,0x00,0x11, +0x5d,0x35,0x00,0x02,0xff,0x0e,0x04,0x88,0x00,0xf3,0x07,0x90,0x00,0x19,0x00,0x25,0x00,0x2b,0x40,0x0d,0x0d,0x0d,0x00,0x1a,0x14,0x14,0x20,0x06,0x1d,0x14,0x17,0x17,0x0c,0xbb,0x01,0x36,0x00,0x23,0x00,0x03,0x01,0x3a,0x00,0x3f,0xc9,0x3f,0x39,0x2f,0x39,0xc9,0x01,0x2f,0xd9,0xc0,0x2f,0x2f,0xd9,0xc0,0x2f,0x31,0x30,0x13,0x14,0x06, +0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x37,0x36,0x37,0x15,0x06,0x07,0x07,0x0e,0x02,0x07,0x33,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x07,0x15,0x14,0x16,0x33,0x32,0x36,0xf3,0x83,0x6c,0x74,0x82,0x2d,0x68,0x80,0x71,0x1e,0x0e,0x34,0x58,0x46,0x42,0x26,0x06,0x02,0x3c,0x6f,0x69,0x79,0x54,0x58,0x48,0x68,0x34,0x59,0x4a,0x45, +0x54,0x05,0x8c,0x77,0x8d,0xa3,0xa0,0x78,0xaa,0x67,0x15,0x13,0x14,0x4d,0x0e,0x09,0x0e,0x0c,0x2f,0x68,0x49,0x57,0x8c,0x7a,0x59,0x67,0x62,0x3f,0x5c,0x79,0x68,0x00,0x00,0x03,0xff,0x36,0x04,0x96,0x00,0xcb,0x06,0x96,0x00,0x0c,0x00,0x13,0x00,0x1a,0x00,0x31,0x40,0x10,0x0b,0x09,0x0d,0x0d,0x04,0x00,0x14,0x11,0x18,0x04,0x17,0x11, +0x11,0x18,0x10,0x05,0xbb,0x01,0x38,0x00,0x18,0x00,0x04,0x01,0x3a,0x00,0x3f,0xc9,0x3f,0xc9,0x12,0x39,0x2f,0xc9,0x01,0x2f,0xc9,0x32,0x2f,0xc9,0x12,0x39,0x2f,0xc9,0xc4,0x31,0x30,0x13,0x14,0x06,0x23,0x23,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x27,0x34,0x23,0x23,0x15,0x33,0x32,0x17,0x34,0x23,0x23,0x15,0x33,0x32,0xcb,0x61, +0x47,0xed,0xdf,0x4c,0x57,0x62,0x75,0x65,0x59,0x85,0x7b,0x63,0x13,0x6f,0x82,0x8e,0x63,0x05,0x29,0x40,0x53,0x02,0x00,0x42,0x3b,0x64,0x15,0x0f,0x7c,0x43,0x90,0x94,0x4e,0x9e,0x00,0x01,0xff,0x72,0x04,0x96,0x00,0x8f,0x06,0x96,0x00,0x05,0x00,0x17,0xb4,0x04,0x01,0x02,0x00,0x03,0xba,0x01,0x38,0x00,0x02,0x01,0x3a,0x00,0x3f,0x3f, +0xc9,0x01,0x2f,0xc9,0x2f,0x31,0x30,0x03,0x11,0x23,0x11,0x21,0x15,0x3c,0x52,0x01,0x1d,0x06,0x50,0xfe,0x46,0x02,0x00,0x46,0x00,0x02,0xfe,0xfc,0x03,0xdb,0x01,0x05,0x06,0x96,0x00,0x0c,0x00,0x11,0x00,0x2f,0x40,0x0b,0x0a,0x11,0x11,0x00,0x10,0x03,0x04,0x0c,0x00,0x0e,0x08,0xb8,0x01,0x38,0xb5,0x10,0x0a,0x05,0x04,0x00,0x02,0xb8, +0x01,0x3a,0x00,0x3f,0xce,0x32,0xc9,0x32,0x32,0x3f,0xc9,0x01,0x2f,0xc9,0x2f,0xc9,0xc8,0x12,0x39,0x2f,0xc9,0x31,0x30,0x13,0x35,0x21,0x15,0x23,0x11,0x33,0x36,0x13,0x21,0x11,0x33,0x11,0x03,0x23,0x06,0x07,0x33,0xbf,0xfe,0x83,0x46,0x2e,0x81,0x04,0x01,0x0a,0x4c,0x9e,0x72,0x0d,0x67,0xe6,0x03,0xdb,0xbb,0xbb,0x01,0x01,0xba,0x01, +0x00,0xfe,0x46,0xfe,0xff,0x02,0x75,0xd5,0x9f,0x00,0x00,0x01,0xfe,0x84,0x04,0x96,0x01,0x7d,0x06,0x96,0x00,0x15,0x00,0x2f,0x40,0x12,0x10,0x03,0x04,0x0d,0x04,0x0a,0x09,0x04,0x13,0x13,0x04,0x09,0x0a,0x04,0x08,0x15,0x08,0x0b,0xba,0x01,0x38,0x00,0x00,0x01,0x3a,0x00,0x3f,0x3f,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f, +0x11,0x33,0x10,0xc9,0x32,0x31,0x30,0x01,0x27,0x23,0x15,0x23,0x35,0x23,0x07,0x23,0x13,0x27,0x33,0x17,0x33,0x35,0x33,0x15,0x33,0x37,0x33,0x07,0x13,0x01,0x0e,0xe5,0x02,0x4e,0x02,0xe4,0x6f,0xfe,0xee,0x68,0xdb,0x02,0x4e,0x02,0xdb,0x6a,0xf0,0xff,0x04,0x96,0xfd,0xfd,0xfd,0xfd,0x01,0x08,0xf8,0xf0,0xf0,0xf0,0xf0,0xf8,0xfe,0xf8, +0x00,0x01,0xff,0x46,0x04,0x88,0x00,0xbb,0x06,0xa1,0x00,0x21,0x00,0x37,0x40,0x13,0x1e,0x1f,0x0d,0x1b,0x11,0x11,0x0a,0x16,0x05,0x0d,0x00,0x0a,0x1f,0x0d,0x0e,0x0e,0x08,0x14,0x19,0xbb,0x01,0x39,0x00,0x08,0x00,0x03,0x01,0x3b,0x00,0x3f,0xc9,0x3f,0xc9,0x12,0x39,0x2f,0xc9,0x39,0x01,0x2f,0xc9,0x2f,0xc4,0x32,0x12,0x39,0x2f,0xc9, +0x10,0xc9,0x32,0x31,0x30,0x13,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0xbb,0x70,0x64,0x6b,0x36,0x3f,0x5d,0x88,0x95,0x32,0x30,0x82,0x37,0x39,0x4b,0x4a,0x57,0x45,0xbb,0x3a,0x30,0x38,0x46,0x05,0x21, +0x47,0x52,0x1b,0x51,0x26,0x56,0x55,0x46,0x51,0x1f,0x2c,0x25,0x4c,0x1f,0x89,0x2e,0x41,0x09,0x02,0x05,0x42,0x00,0x00,0x01,0xff,0x2c,0x04,0x96,0x00,0xd5,0x06,0x96,0x00,0x0c,0x00,0x29,0x40,0x0c,0x0a,0x0a,0x04,0x0c,0x07,0x03,0x0b,0x04,0x02,0x07,0x09,0x06,0xbb,0x01,0x38,0x00,0x04,0x00,0x00,0x01,0x3a,0x00,0x3f,0x32,0x3f,0x33, +0x39,0x39,0x01,0x2f,0xc8,0xc9,0x32,0x2f,0x12,0x39,0x2f,0x31,0x30,0x13,0x27,0x23,0x15,0x23,0x11,0x33,0x15,0x33,0x37,0x33,0x07,0x01,0x62,0xe2,0x02,0x52,0x52,0x02,0xd7,0x6c,0xee,0x01,0x00,0x04,0x96,0xf6,0xf6,0x02,0x00,0xeb,0xeb,0xf7,0xfe,0xf7,0x00,0x01,0xff,0x20,0x04,0x8f,0x00,0xe1,0x06,0x96,0x00,0x0e,0x00,0x1c,0xb4,0x07, +0x0e,0x00,0x02,0x0c,0xb8,0x01,0x38,0xb2,0x0a,0x05,0x00,0xb8,0x01,0x3a,0x00,0x3f,0xd4,0xc9,0x3f,0xc9,0x01,0x2f,0xc9,0x2f,0x31,0x30,0x13,0x11,0x23,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x11,0x8f,0x77,0x12,0x61,0x59,0x1a,0x12,0x0d,0x19,0x70,0x1e,0x01,0x0d,0x04,0x96,0x01,0xbb,0xe9,0xd9,0x07,0x47,0x09,0x01, +0xc2,0xfe,0x00,0x00,0x00,0x01,0xfe,0xec,0x04,0x96,0x01,0x15,0x06,0x96,0x00,0x10,0x00,0x17,0xb4,0x07,0x08,0x10,0x00,0x09,0xba,0x01,0x38,0x00,0x08,0x01,0x3a,0x00,0x3f,0x3f,0x01,0x2f,0xc9,0x2f,0xc9,0x31,0x30,0x13,0x11,0x07,0x03,0x23,0x03,0x27,0x11,0x23,0x11,0x33,0x13,0x17,0x37,0x13,0x33,0x11,0xc4,0x0f,0x93,0x49,0x84,0x22, +0x47,0x69,0x87,0x25,0x24,0x83,0x6d,0x04,0x96,0x01,0xa6,0x2d,0xfe,0x87,0x01,0x48,0x5e,0xfe,0x5a,0x02,0x00,0xfe,0xb2,0x65,0x63,0x01,0x50,0xfe,0x00,0x00,0x00,0x01,0xff,0x2c,0x04,0x96,0x00,0xd5,0x06,0x96,0x00,0x0b,0x00,0x27,0x40,0x0b,0x07,0x03,0x04,0x0b,0x08,0x00,0x02,0x07,0x07,0x09,0x06,0xbb,0x01,0x38,0x00,0x04,0x00,0x00, +0x01,0x3a,0x00,0x3f,0x32,0x3f,0x33,0x39,0x2f,0xc9,0x01,0x2f,0x33,0xc9,0x2f,0xc9,0x32,0x31,0x30,0x13,0x35,0x21,0x15,0x23,0x11,0x33,0x15,0x21,0x35,0x33,0x11,0x83,0xfe,0xfb,0x52,0x52,0x01,0x05,0x52,0x04,0x96,0xe8,0xe8,0x02,0x00,0xd2,0xd2,0xfe,0x00,0x00,0x00,0x02,0xff,0x04,0x04,0x89,0x00,0xfc,0x06,0xa2,0x00,0x0b,0x00,0x15, +0x00,0x1c,0xb5,0x09,0x14,0x0f,0x03,0x0c,0x06,0xbb,0x01,0x39,0x00,0x12,0x00,0x00,0x01,0x3b,0x00,0x3f,0xc9,0x3f,0xc9,0x01,0x2f,0xc9,0x2f,0xc9,0x31,0x30,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x02,0x71,0x89,0x8d,0x79,0x71,0x81,0x8a,0x6e,0x4f,0x5d,0x5b, +0x51,0xa4,0x04,0x89,0x91,0x76,0x82,0x90,0x8e,0x7c,0x7c,0x93,0x01,0xd3,0x6a,0x5e,0x5b,0x6a,0xc7,0xc6,0x00,0x01,0xff,0x2c,0x04,0x96,0x00,0xd5,0x06,0x96,0x00,0x07,0x00,0x1c,0xb5,0x03,0x04,0x07,0x00,0x02,0x05,0xbb,0x01,0x38,0x00,0x04,0x00,0x00,0x01,0x3a,0x00,0x3f,0x32,0x3f,0xc9,0x01,0x2f,0xc9,0x2f,0xc9,0x31,0x30,0x13,0x11, +0x21,0x11,0x23,0x11,0x21,0x11,0x83,0xfe,0xfb,0x52,0x01,0xa9,0x04,0x96,0x01,0xba,0xfe,0x46,0x02,0x00,0xfe,0x00,0x00,0x02,0xff,0x15,0x03,0xa9,0x00,0xec,0x06,0xa2,0x00,0x10,0x00,0x1d,0x00,0x2e,0x40,0x0c,0x0b,0x17,0x11,0x05,0x01,0x02,0x00,0x05,0x08,0x14,0x01,0x0e,0xbd,0x01,0x3b,0x00,0x1a,0x00,0x08,0x01,0x39,0x00,0x03,0x01, +0x38,0x00,0x3f,0x3f,0xc9,0x3f,0xce,0xc9,0x12,0x39,0x39,0x01,0x2f,0xc9,0x32,0x32,0x2f,0xc9,0x31,0x30,0x03,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x99,0x52,0x52,0x02,0x3c,0x75,0x64,0x6e,0x7d,0x6c,0x65,0x35,0x02,0x52, +0x40,0x46,0x59,0x4e,0x44,0x47,0x58,0x04,0xdf,0xfe,0xca,0x02,0xed,0x5a,0x66,0x8a,0x73,0x82,0x9a,0x56,0x83,0x3b,0x59,0x6c,0x6d,0x52,0x64,0x62,0x48,0x00,0x00,0x01,0xff,0x40,0x04,0x89,0x00,0xc1,0x06,0xa2,0x00,0x15,0x00,0x1c,0xb5,0x05,0x10,0x0b,0x00,0x02,0x13,0xbb,0x01,0x39,0x00,0x08,0x00,0x0d,0x01,0x3b,0x00,0x3f,0xc9,0x3f, +0xc9,0x01,0x2f,0x33,0x2f,0xc9,0x31,0x30,0x13,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0xc1,0x38,0x41,0x4f,0x65,0x5d,0x51,0x43,0x3c,0x3d,0x51,0x6b,0x88,0x93,0x77,0x46,0x31,0x06,0x35,0x27,0x72,0x58,0x58,0x6b,0x2d,0x4e,0x25,0x8c,0x74,0x7d,0x9c,0x19,0x00,0x01, +0xff,0x3e,0x04,0x96,0x00,0xc3,0x06,0x96,0x00,0x07,0x00,0x1d,0xb7,0x01,0x02,0x02,0x06,0x04,0x00,0x04,0x05,0xba,0x01,0x38,0x00,0x02,0x01,0x3a,0x00,0x3f,0x3f,0xc9,0x32,0x01,0x2f,0x2f,0x39,0x2f,0xc9,0x31,0x30,0x13,0x11,0x23,0x11,0x23,0x35,0x21,0x15,0x2a,0x52,0x9a,0x01,0x85,0x06,0x50,0xfe,0x46,0x01,0xba,0x46,0x46,0x00,0x01, +0xff,0x23,0x04,0x96,0x00,0xdd,0x06,0x96,0x00,0x10,0x00,0x1d,0xb7,0x01,0x09,0x09,0x0a,0x08,0x02,0x00,0x03,0xba,0x01,0x3a,0x00,0x00,0x01,0x38,0x00,0x3f,0x3f,0x01,0x2f,0x32,0x2f,0x33,0x39,0x2f,0xc9,0x31,0x30,0x13,0x03,0x17,0x23,0x27,0x23,0x06,0x07,0x23,0x37,0x03,0x33,0x16,0x17,0x33,0x37,0x37,0xdd,0xac,0xaa,0x60,0x7b,0x02, +0x12,0x6b,0x5e,0xae,0xa8,0x60,0x6b,0x0e,0x02,0x1a,0x65,0x06,0x96,0xfe,0xfe,0xfe,0xcc,0x20,0xac,0xfc,0x01,0x04,0xbd,0x1b,0x31,0xa7,0x00,0x01,0xff,0x06,0x03,0xdb,0x00,0xfb,0x06,0x96,0x00,0x0b,0x00,0x29,0x40,0x0a,0x09,0x06,0x06,0x00,0x05,0x02,0x0b,0x00,0x07,0x04,0xb8,0x01,0x38,0xb3,0x09,0x05,0x00,0x02,0xb8,0x01,0x3a,0x00, +0x3f,0xce,0xc9,0x32,0x3f,0x33,0x01,0x2f,0xc9,0x2f,0xc9,0x12,0x39,0x2f,0xc9,0x31,0x30,0x13,0x35,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x11,0xb4,0xfe,0x52,0x52,0x01,0x05,0x52,0x4c,0x03,0xdb,0xbb,0x02,0x00,0xfe,0x45,0x01,0xbb,0xfe,0x45,0xff,0x00,0x00,0x01,0xff,0x2f,0x04,0x96,0x00,0xd2,0x06,0x96,0x00,0x0f,0x00,0x24, +0x40,0x0b,0x08,0x05,0x0f,0x0c,0x00,0x03,0x01,0x0a,0x0a,0x0d,0x07,0xba,0x01,0x38,0x00,0x00,0x01,0x3a,0x00,0x3f,0x3f,0x33,0x39,0x2f,0xcd,0xc9,0x01,0x2f,0x33,0xc9,0x2f,0xc9,0x31,0x30,0x13,0x35,0x06,0x23,0x22,0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x37,0x35,0x33,0x11,0x81,0x57,0x4f,0xac,0x52,0x61,0x49,0x56,0x51,0x04,0x96,0xce, +0x31,0xb6,0xad,0xa9,0x71,0x2b,0xeb,0xfe,0x04,0x00,0x00,0x01,0xfe,0xba,0x04,0x96,0x01,0x47,0x06,0x96,0x00,0x0b,0x00,0x29,0x40,0x0b,0x07,0x04,0x04,0x00,0x0b,0x08,0x03,0x00,0x09,0x05,0x02,0xb8,0x01,0x38,0xb2,0x07,0x03,0x00,0xb8,0x01,0x3a,0x00,0x3f,0xc9,0x32,0x3f,0x33,0x33,0x01,0x2f,0xc9,0x2f,0xc9,0x12,0x39,0x2f,0xc9,0x31, +0x30,0x01,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0xfe,0xba,0x52,0xcc,0x52,0xcb,0x52,0x04,0x96,0x02,0x00,0xfe,0x46,0x01,0xba,0xfe,0x46,0x01,0xba,0xfe,0x00,0x00,0x01,0xfe,0x93,0x03,0xdb,0x01,0x6d,0x06,0x96,0x00,0x0f,0x00,0x37,0x40,0x10,0x09,0x06,0x0d,0x0a,0x06,0x0a,0x06,0x0a,0x00,0x05,0x02,0x0f,0x00,0x0b, +0x07,0x04,0xb8,0x01,0x38,0xb4,0x0d,0x09,0x05,0x00,0x02,0xb8,0x01,0x3a,0x00,0x3f,0xce,0xc9,0x32,0x32,0x3f,0x33,0x33,0x01,0x2f,0xc9,0x2f,0xc9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x31,0x30,0x01,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x01,0x25,0xfd,0x6e,0x52,0xcb,0x52,0xcc,0x52, +0x4d,0x03,0xdb,0xbb,0x02,0x00,0xfe,0x45,0x01,0xbb,0xfe,0x45,0x01,0xbb,0xfe,0x45,0xff,0x00,0x00,0x03,0xff,0x04,0x04,0x89,0x00,0xfc,0x06,0xa1,0x00,0x0b,0x00,0x1b,0x00,0x28,0x00,0x40,0x40,0x19,0x27,0x09,0x19,0x1f,0x13,0x03,0x19,0x13,0x1f,0x0c,0x27,0x10,0x21,0x25,0x1f,0x27,0x21,0x21,0x27,0x1f,0x25,0x04,0x16,0x1c,0x06,0xbb, +0x01,0x39,0x00,0x16,0x00,0x00,0x01,0x3b,0x00,0x3f,0xc9,0x3f,0xc9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x32,0x01,0x2f,0xc9,0x32,0x2f,0xc9,0x33,0x31,0x30,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x22,0x27,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x37,0x06,0x06, +0x03,0x22,0x06,0x07,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x26,0x02,0x73,0x87,0x8c,0x79,0x73,0x80,0x89,0x29,0x16,0x36,0x32,0x15,0x0d,0x29,0x27,0x08,0x5c,0x45,0x48,0x51,0x0a,0x1d,0x30,0x55,0x49,0x59,0x08,0x48,0x19,0x13,0x39,0x3b,0x0c,0x0e,0x4a,0x10,0x04,0x89,0x8f,0x78,0x80,0x91,0x8c,0x7d,0x7c,0x91,0xcc,0x1b,0x1a,0x10, +0x0c,0x4b,0x57,0x4e,0x55,0x0b,0x0f,0x01,0x05,0x55,0x4d,0x18,0x19,0x1b,0x1d,0xa1,0x00,0x01,0xfe,0x94,0x04,0x88,0x01,0x6c,0x06,0x96,0x00,0x17,0x00,0x30,0x40,0x0d,0x01,0x02,0x0d,0x02,0x0d,0x02,0x12,0x16,0x07,0x12,0x00,0x04,0x15,0xbd,0x01,0x38,0x00,0x0a,0x00,0x0f,0x01,0x3b,0x00,0x02,0x01,0x3a,0x00,0x3f,0x3f,0xc9,0x3f,0xc9, +0x32,0x01,0x2f,0xc9,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc9,0x31,0x30,0x13,0x11,0x23,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x15,0xd3,0x52,0xe0,0x56,0x64,0x58,0x4b,0x44,0x3a,0x39,0x48,0x6d,0x86,0x8d,0x7c,0x01,0xcf,0x06,0x50,0xfe,0x46,0x01,0xba,0x65,0x59,0x55, +0x6e,0x2d,0x4e,0x26,0x8c,0x75,0x7d,0x90,0x46,0x00,0x00,0x02,0xff,0x36,0x04,0x89,0x00,0xcb,0x06,0xa2,0x00,0x14,0x00,0x1e,0x00,0x3a,0x40,0x12,0x0f,0x0f,0x19,0x08,0x1e,0x0b,0x00,0x01,0x15,0x0f,0x12,0x0b,0x0b,0x1b,0x02,0x05,0x0d,0x12,0xbd,0x01,0x39,0x00,0x1b,0x00,0x05,0x01,0x3b,0x00,0x01,0x01,0x3a,0x00,0x3f,0x3f,0xc9,0x3f, +0xc9,0x12,0x39,0x12,0x39,0x2f,0x12,0x39,0xc9,0x01,0x2f,0xc9,0x33,0x33,0x2f,0xd9,0xc0,0x2f,0x31,0x30,0x13,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x15,0x07,0x07,0x06,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0xcb,0x52,0x02,0x35,0x68,0x4e,0x56,0xa4,0x9f,0x6a,0x5c,0x4a,0x40, +0x6e,0xb4,0x52,0x7c,0x42,0x31,0x64,0x3a,0x51,0x04,0x96,0x50,0x5d,0x52,0x43,0x8d,0x18,0x18,0x81,0x3e,0x54,0x30,0xbe,0x4a,0x13,0x0a,0x2a,0x2e,0x56,0x54,0x40,0x00,0x00,0x02,0xff,0x21,0x04,0x89,0x00,0xdf,0x06,0xa2,0x00,0x11,0x00,0x17,0x00,0x2d,0x40,0x0e,0x06,0x06,0x00,0x12,0x17,0x01,0x0b,0x01,0x05,0x17,0x17,0x03,0x14,0x0e, +0xbb,0x01,0x39,0x00,0x03,0x00,0x08,0x01,0x3b,0x00,0x3f,0xc9,0x3f,0xc9,0x12,0x39,0x2f,0x39,0xc9,0x01,0x2f,0xc9,0x32,0x2f,0xd9,0xc2,0x2f,0x31,0x30,0x13,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x27,0x26,0x23,0x22,0x06,0x07,0xdf,0xfe,0x98,0x04,0xa1,0x56,0x4a,0x41,0x71,0x6d,0x7c, +0x86,0x65,0x64,0x6f,0x53,0x02,0x7e,0x3a,0x52,0x09,0x05,0x81,0xb2,0x39,0x4e,0x31,0x8b,0x80,0x76,0x98,0x80,0x76,0x1a,0x96,0x51,0x45,0x00,0x01,0xff,0x27,0x04,0x96,0x00,0xda,0x06,0x96,0x00,0x19,0x00,0x4c,0x40,0x1f,0x04,0x08,0x01,0x17,0x17,0x14,0x0d,0x19,0x19,0x13,0x14,0x06,0x06,0x0c,0x0d,0x10,0x17,0x08,0x17,0x07,0x19,0x00, +0x04,0x00,0x17,0x00,0x17,0x00,0x02,0x14,0x0d,0xba,0x01,0x3a,0x00,0x02,0x01,0x38,0x00,0x3f,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x01,0x2f,0xd9,0xc0,0x2f,0x2f,0xd9,0xc0,0x2f,0x11,0x12,0x39,0x2f,0x33,0xc9,0x32,0x31,0x30,0x03,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x16,0x16,0x15, +0x15,0x23,0x35,0x34,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x37,0x35,0x23,0xae,0x86,0x52,0x85,0x85,0x57,0x59,0x52,0x85,0x8a,0x52,0xb1,0x86,0x06,0x3a,0x5c,0x5c,0x43,0x4c,0x0a,0x78,0x6a,0x29,0x32,0xa1,0xa1,0x32,0x2c,0xd8,0x12,0x4b,0x00,0x00,0x02,0xff,0x18,0x04,0x88,0x00,0xe8,0x07,0x8c,0x00,0x12,0x00,0x1c,0x00,0x3b,0x40,0x1a, +0x10,0x08,0x0c,0x19,0x00,0x16,0x08,0x19,0x16,0x16,0x19,0x08,0x03,0x06,0x0f,0x1b,0x09,0x06,0x19,0x0c,0x09,0x0c,0x09,0x0f,0x13,0x03,0xb8,0x01,0x3b,0x00,0x3f,0xc9,0x2f,0x39,0x39,0x2f,0x2f,0xc9,0x01,0x2f,0xc6,0xc9,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc9,0x11,0x33,0x10,0xc9,0x31,0x30,0x13,0x14,0x06,0x23,0x22,0x26,0x35, +0x34,0x37,0x03,0x33,0x16,0x17,0x37,0x13,0x33,0x03,0x16,0x16,0x07,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x15,0x14,0x5d,0x44,0x34,0x35,0x47,0x47,0x98,0x5f,0x59,0x0e,0x09,0xa5,0x5c,0xda,0x23,0x2c,0x7a,0x19,0x10,0x0f,0x1d,0x26,0x04,0xf8,0x30,0x40,0x3d,0x36,0x37,0x89,0x01,0x20,0xb6,0x23,0x16,0x01,0x74,0xfe,0x30,0x3e,0x5e,0x52, +0x21,0x0e,0x10,0x2d,0x3a,0x4f,0x28,0x2f,0x00,0x02,0xfe,0xf7,0x04,0x96,0x01,0x0a,0x07,0x8c,0x00,0x12,0x00,0x19,0x00,0x3b,0x40,0x19,0x0f,0x0b,0x17,0x08,0x04,0x04,0x06,0x0d,0x00,0x13,0x06,0x16,0x0f,0x0e,0x06,0x07,0x0b,0x07,0x0f,0x07,0x0f,0x07,0x09,0x17,0x04,0xb8,0x01,0x3a,0x00,0x3f,0xc9,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33, +0x10,0xc9,0x32,0x10,0xc9,0x01,0x2f,0x2f,0xc9,0xc4,0x12,0x39,0x2f,0x33,0xc9,0x32,0x32,0x31,0x30,0x01,0x14,0x06,0x23,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x32,0x16,0x07,0x34,0x23,0x23,0x15,0x33,0x32,0x01,0x0a,0x5c,0x48,0xe3,0x8c,0x8c,0x52,0x9c,0x9c,0x89,0x4f,0x5d,0x54,0x68,0x79,0x7a,0x67,0x05, +0x36,0x47,0x59,0x02,0x59,0x43,0x5a,0x5a,0x43,0xfe,0xe2,0x51,0x4a,0x55,0xaf,0x00,0x00,0x02,0xfe,0xa2,0x04,0x8a,0x01,0x5e,0x06,0xa2,0x00,0x12,0x00,0x1a,0x00,0x3b,0x40,0x10,0x15,0x0a,0x03,0x03,0x06,0x10,0x19,0x09,0x05,0x06,0x04,0x09,0x09,0x17,0x13,0x0d,0xbf,0x01,0x39,0x00,0x07,0x01,0x38,0x00,0x06,0x01,0x3a,0x00,0x17,0x00, +0x00,0x01,0x3b,0x00,0x3f,0xc9,0x3f,0x3f,0x3f,0xc9,0x12,0x39,0x2f,0xc9,0x01,0x2f,0xc9,0x32,0x2f,0xc9,0x12,0x39,0x2f,0x33,0xc9,0x31,0x30,0x13,0x22,0x26,0x27,0x23,0x15,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x15,0x14,0x33,0x32,0x35,0x34,0x6c,0x6a,0x79,0x04,0x91,0x52,0x52,0x92,0x0d,0x7c, +0x69,0x70,0x76,0x81,0x6c,0x99,0x9b,0x97,0x04,0x8a,0x7f,0x75,0xe8,0x02,0x00,0xd2,0x66,0x78,0x8e,0x7c,0x7f,0x8f,0x01,0xd3,0xc8,0xc6,0xc7,0xc7,0x00,0x02,0xfe,0xc2,0x04,0x8a,0x01,0x3f,0x06,0xa2,0x00,0x1b,0x00,0x26,0x00,0x5e,0x40,0x1d,0x0f,0x0b,0x0c,0x15,0x15,0x1c,0x09,0x07,0x07,0x00,0x0c,0x22,0x1b,0x11,0x00,0x15,0x15,0x13, +0x18,0x0a,0x0f,0x23,0x11,0x0f,0x11,0x0f,0x11,0x1f,0x18,0xbd,0x01,0x39,0x00,0x0d,0x01,0x38,0x00,0x00,0x00,0x0c,0x01,0x3a,0xb4,0x01,0x02,0x02,0x1f,0x04,0xb8,0x01,0x3b,0x00,0x3f,0xd9,0xc0,0x2f,0x32,0x3f,0x33,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x10,0xd9,0xc2,0x2f,0x01,0x2f,0x33,0xc9,0x33,0x2f,0x12,0x39, +0x2f,0xcd,0xd9,0xc0,0x2f,0x10,0xc9,0x32,0x31,0x30,0x13,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x23,0x15,0x23,0x11,0x33,0x15,0x21,0x37,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x15,0x11,0x25,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x07,0x06,0x06,0xed,0x02,0x32,0x6b,0x4c,0x57,0x1c,0xb3,0x52,0x52,0x01,0x38,0xa1,0x69,0x5b, +0x4c,0x47,0x67,0xb4,0xfe,0xc0,0x3a,0x28,0x3f,0x4d,0x7c,0x42,0x30,0x04,0x96,0x50,0x5c,0x51,0x43,0x3c,0x24,0xe8,0x02,0x00,0xd2,0x16,0x83,0x3f,0x54,0x30,0xbf,0xfe,0xb3,0x8e,0x2a,0x2b,0x57,0x3c,0x37,0x12,0x0a,0x2b,0x00,0x02,0xff,0x07,0x04,0x96,0x00,0xfa,0x06,0x96,0x00,0x08,0x00,0x14,0x00,0x47,0x40,0x1b,0x00,0x00,0x0d,0x07, +0x0e,0x04,0x03,0x0b,0x08,0x10,0x0e,0x08,0x08,0x0e,0x10,0x03,0x09,0x12,0x09,0x0b,0x10,0x10,0x08,0x0a,0x03,0x04,0x13,0xb8,0x01,0x38,0xb2,0x12,0x0e,0x0a,0xb8,0x01,0x3a,0x00,0x3f,0x33,0x33,0x3f,0xc9,0x32,0x12,0x39,0x39,0x11,0x33,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc9,0xc6,0x32,0x10,0xc4,0xd9,0xc0,0x2f,0x31, +0x30,0x13,0x27,0x26,0x27,0x23,0x06,0x06,0x07,0x17,0x17,0x23,0x27,0x07,0x15,0x23,0x35,0x27,0x07,0x23,0x13,0x33,0x3a,0x26,0x0e,0x04,0x02,0x02,0x08,0x2f,0x3d,0xf6,0x58,0x4c,0x30,0x4b,0x32,0x4e,0x54,0xd6,0x51,0x05,0xa3,0x69,0x22,0x25,0x14,0x23,0x75,0x46,0xcb,0xc6,0x3b,0x8b,0x8b,0x3c,0xc7,0x02,0x00,0x00,0x00,0x02,0xfe,0xee, +0x04,0x96,0x01,0x12,0x06,0x96,0x00,0x12,0x00,0x17,0x00,0x51,0x40,0x20,0x12,0x12,0x0e,0x13,0x03,0x04,0x0f,0x16,0x0c,0x04,0x16,0x16,0x04,0x0c,0x03,0x0d,0x13,0x14,0x09,0x0d,0x0f,0x0c,0x02,0x05,0x16,0x0c,0x16,0x0c,0x16,0x00,0x14,0x0d,0xb8,0x01,0x38,0xb2,0x09,0x04,0x00,0xb8,0x01,0x3a,0x00,0x3f,0x32,0x32,0x3f,0xc9,0x12,0x39, +0x39,0x2f,0x2f,0x10,0xc9,0x32,0x11,0x33,0x01,0x2f,0xc6,0xc9,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x10,0xd9,0xc2,0x2f,0x31,0x30,0x13,0x26,0x27,0x15,0x23,0x35,0x06,0x06,0x07,0x23,0x36,0x36,0x37,0x27,0x21,0x07,0x16,0x16,0x17,0x03,0x23,0x17,0x17,0x37,0xbb,0x12,0x80,0x4e,0x44,0x47,0x0b,0x57,0x15,0x5c,0x57, +0x9f,0x01,0xda,0xa4,0x53,0x5b,0x17,0xa8,0xc9,0x5b,0x07,0x04,0x04,0x96,0xb3,0x26,0xd9,0xda,0x15,0x68,0x5d,0x7e,0x7c,0x1b,0xeb,0xec,0x1b,0x7a,0x7f,0x01,0xbc,0x91,0x0f,0x08,0x00,0x02,0xfe,0xb2,0x04,0x96,0x01,0x4f,0x06,0x96,0x00,0x17,0x00,0x1c,0x00,0x69,0x40,0x2d,0x17,0x17,0x13,0x18,0x19,0x12,0x03,0x04,0x14,0x1b,0x12,0x0a, +0x11,0x04,0x1b,0x1b,0x04,0x11,0x0a,0x12,0x05,0x0d,0x18,0x10,0x0c,0x08,0x08,0x0c,0x0d,0x02,0x05,0x1b,0x0b,0x10,0x14,0x1b,0x10,0x10,0x1b,0x14,0x03,0x00,0x19,0x0e,0x12,0xb8,0x01,0x38,0xb3,0x0d,0x08,0x04,0x00,0xb8,0x01,0x3a,0x00,0x3f,0x32,0x32,0x32,0x3f,0xc4,0xc9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x32,0x01, +0x2f,0xd9,0xc2,0x2f,0x11,0x33,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xd9,0xc2,0x2f,0x31,0x30,0x13,0x26,0x27,0x15,0x23,0x35,0x06,0x07,0x23,0x36,0x37,0x23,0x15,0x23,0x11,0x33,0x15,0x33,0x27,0x21,0x07,0x16,0x16,0x17,0x03,0x23,0x17,0x17,0x37,0xf8,0x11,0x82,0x4e,0x86,0x0f,0x57,0x1e, +0x72,0xb7,0x52,0x52,0xdf,0x8f,0x01,0xda,0xa4,0x54,0x5a,0x17,0xa8,0xc9,0x5a,0x07,0x09,0x04,0x96,0xb0,0x29,0xd9,0xda,0x29,0xb1,0xb7,0x35,0xec,0x02,0x00,0xd4,0xd4,0xec,0x1c,0x76,0x82,0x01,0xbc,0x91,0x0f,0x0f,0x00,0x00,0x01,0x00,0x21,0xfe,0x99,0x04,0x7b,0x05,0x9a,0x00,0x25,0x00,0x3f,0x40,0x21,0x06,0x1a,0x0a,0x0a,0x1a,0x06, +0x03,0x00,0x03,0x09,0x0e,0x7f,0x05,0x00,0x09,0x06,0x91,0x07,0x03,0x1d,0x92,0x16,0x16,0x03,0x23,0x92,0x1a,0x11,0x04,0x0a,0x91,0x03,0x12,0x00,0x3f,0xed,0x39,0xd4,0x32,0xed,0x12,0x39,0x2f,0xed,0x3f,0xed,0x39,0x01,0x2f,0xc4,0xfd,0xc4,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x31,0x30,0x05,0x34,0x23,0x21,0x35,0x01,0x21,0x35,0x21, +0x15,0x01,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x03,0xe8,0xa4,0xfc,0xdd,0x03,0x41,0xfd,0x02,0x04,0x00,0xfc,0xb8,0x02,0x2a,0x94,0xa1,0x8b,0x73,0x45,0x8b,0x50,0x5d,0x4e,0x40,0x41,0x8c,0x87,0x78,0x4a,0x79,0x3f,0x30,0x64,0x32, +0x37,0x45,0x79,0x79,0x2f,0x04,0xd3,0x98,0x28,0xfb,0x26,0x87,0x7f,0x6f,0x8a,0x2e,0x24,0x29,0x43,0x33,0x73,0x85,0x29,0x19,0x13,0x26,0x3e,0x00,0x00,0x01,0x00,0x21,0xfe,0xa9,0x03,0x9e,0x04,0x00,0x00,0x22,0x00,0x40,0x40,0x22,0x18,0x06,0x0a,0x05,0x05,0x0a,0x06,0x18,0x04,0x00,0x03,0x09,0x0d,0xed,0x00,0x09,0x06,0x95,0x07,0x0f, +0x1b,0x96,0x14,0x14,0x03,0x20,0x96,0x18,0x10,0x04,0x0a,0x95,0x03,0x15,0x00,0x3f,0xed,0x39,0xd4,0x32,0xed,0x12,0x39,0x2f,0xed,0x3f,0xed,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x31,0x30,0x05,0x34,0x23,0x21,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x20,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22, +0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x17,0x16,0x33,0x32,0x36,0x03,0x11,0x99,0xfd,0xa9,0x02,0x5e,0xfd,0xdb,0x03,0x16,0xfd,0xa2,0x01,0x7b,0x01,0x11,0x7a,0x67,0x65,0x9b,0x52,0x46,0x39,0x39,0x81,0x78,0x6e,0x44,0x82,0x4b,0x50,0x2e,0x36,0x34,0x72,0x72,0x33,0x03,0x41,0x8c,0x2f,0xfc,0xbb,0xf5,0x6a,0x84,0x4c,0x28,0x40,0x30, +0x6f,0x7e,0x2c,0x22,0x26,0x3e,0x00,0x01,0x00,0x21,0xfe,0x99,0x04,0x7b,0x05,0x9a,0x00,0x2d,0x00,0x5a,0x40,0x30,0x2d,0x1b,0x03,0x1b,0x0b,0x2c,0x07,0x07,0x2c,0x0b,0x1b,0x03,0x05,0x27,0x2a,0x09,0x06,0x0f,0x7f,0x02,0x27,0x1e,0x92,0x17,0x17,0x2a,0x24,0x92,0x1b,0x12,0x2b,0x0b,0x91,0x2a,0x0a,0x2d,0x92,0x07,0x00,0x00,0x04,0x2a, +0x12,0x06,0x03,0x91,0x04,0x03,0x00,0x3f,0xed,0x39,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x39,0xd4,0x32,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xc4,0xfd,0xc4,0xc4,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x31,0x30,0x13,0x21,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x21,0x01,0x21,0x32,0x16,0x15,0x14,0x06, +0x23,0x22,0x26,0x27,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x17,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x21,0x35,0x01,0x21,0xa2,0x01,0x85,0x01,0x3b,0xfd,0x02,0x04,0x00,0xfe,0x78,0x01,0x38,0xfe,0x72,0xfe,0x96,0x02,0x2a,0xa2,0x93,0x8b,0x72,0x42,0x7d,0x61,0x61,0x4a,0x40,0x42,0x8c,0x87,0x79,0x5c,0x69,0x3e, +0x30,0x63,0x32,0x37,0x44,0xa4,0xfc,0xdd,0x01,0xae,0xfe,0xd3,0x03,0x2e,0x01,0xd4,0x98,0x28,0xfd,0xbc,0x80,0xfd,0xea,0x7e,0x88,0x6f,0x8a,0x27,0x2b,0x29,0x43,0x33,0x73,0x85,0x2a,0x18,0x13,0x26,0x3e,0x2e,0x79,0x2f,0x02,0x7f,0x00,0x01,0x00,0x21,0xfe,0xa9,0x03,0x9e,0x04,0x00,0x00,0x2c,0x00,0x5a,0x40,0x31,0x1b,0x03,0x2c,0x0b, +0x2b,0x07,0x02,0x02,0x07,0x2b,0x0b,0x2c,0x03,0x1b,0x07,0x26,0x29,0x09,0x06,0x0f,0xed,0x26,0x1e,0x96,0x17,0x17,0x29,0x23,0x96,0x1b,0x12,0x2a,0x0b,0x95,0x29,0x0a,0x2c,0x96,0x07,0x00,0x00,0x04,0x29,0x15,0x06,0x03,0x95,0x04,0x0f,0x00,0x3f,0xed,0x39,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x39,0xd4,0x32,0xed,0x12,0x39, +0x2f,0xed,0x01,0x2f,0xfd,0xc4,0xc4,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x31,0x30,0x13,0x21,0x13,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x21,0x03,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x21,0x35,0x01, +0x23,0x7d,0x01,0x31,0xd1,0xfd,0xdb,0x03,0x16,0xfe,0xec,0x01,0x04,0xfe,0xa4,0xf2,0x01,0x7f,0x80,0x8d,0x7c,0x6b,0x40,0x97,0x2f,0x4c,0x45,0x36,0x37,0x81,0x76,0x6a,0x41,0x7d,0x4f,0x54,0x2f,0x39,0x36,0x76,0xfd,0x86,0x01,0x33,0xd7,0x02,0x54,0x01,0x20,0x8c,0x2f,0xfe,0x83,0x7a,0xfe,0xb2,0x7f,0x76,0x69,0x85,0x33,0x19,0x28,0x40, +0x30,0x70,0x7d,0x2b,0x23,0x26,0x3e,0x2a,0x72,0x33,0x01,0xa7,0x00,0x01,0x00,0x77,0xff,0xe8,0x03,0xdc,0x05,0xb2,0x00,0x27,0x00,0x29,0x40,0x16,0x00,0x1a,0x7d,0x0d,0x22,0x7d,0x13,0x06,0x13,0x0d,0x22,0x27,0x04,0x03,0x10,0x91,0x17,0x04,0x24,0x91,0x03,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0xc4,0xed,0x2f,0xfd, +0xc4,0x31,0x30,0x25,0x06,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x04,0x15,0x14,0x06,0x06,0x07,0x0e,0x02,0x15,0x14,0x21,0x32,0x36,0x37,0x03,0xdc,0x3f,0xcb,0x5d,0xf1,0xfe,0xf3,0xae,0xce,0x8f,0x74,0x34,0x9b,0x96,0x5e,0x8e,0x5a,0x4f,0x88,0x5e,0xef,0x01, +0x03,0x43,0x92,0x8f,0x9d,0x7a,0x38,0x01,0x34,0x63,0xe0,0x3e,0x3a,0x26,0x2c,0xb6,0xa9,0x91,0xd8,0x66,0x48,0x55,0x5d,0x44,0x5a,0x6c,0x24,0x34,0xbd,0x1e,0x15,0xbd,0xad,0x5d,0x8e,0x7a,0x49,0x50,0x5e,0x65,0x44,0xc4,0x4a,0x37,0x00,0x01,0x00,0x70,0xff,0xe8,0x03,0x17,0x04,0x18,0x00,0x22,0x00,0x29,0x40,0x16,0x00,0x16,0x83,0x0b, +0x1d,0x83,0x10,0x05,0x10,0x0b,0x1d,0x22,0x04,0x02,0x0e,0x95,0x13,0x10,0x1f,0x95,0x02,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0xc4,0xed,0x2f,0xfd,0xc4,0x31,0x30,0x25,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x0e,0x02,0x15, +0x14,0x33,0x32,0x36,0x37,0x03,0x17,0x70,0xa2,0xc6,0xcf,0x87,0x9e,0x82,0x56,0x6a,0x60,0x91,0x73,0x68,0x86,0xb5,0xd3,0x75,0x9e,0x6c,0x53,0x2b,0xd8,0x52,0x99,0x3c,0x25,0x3d,0x88,0x85,0x71,0x9c,0x3e,0x34,0x55,0x3c,0x40,0x49,0x4a,0xa6,0x2e,0x91,0x7e,0x72,0x91,0x40,0x2c,0x36,0x41,0x2b,0x86,0x35,0x2e,0x00,0x00,0x01,0x00,0xbc, +0xff,0xf0,0x02,0xc8,0x05,0x9a,0x00,0x11,0x00,0x1f,0x40,0x0f,0x09,0x7e,0x06,0x00,0x7f,0x0f,0x10,0x10,0x03,0x07,0x03,0x0c,0x91,0x03,0x13,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x25,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x02,0xc8,0x8b,0x79,0x7d, +0x8b,0xa8,0x3c,0x2d,0x2c,0x37,0x98,0xfa,0x7d,0x8d,0x9a,0x93,0x04,0x7d,0xfb,0x82,0x54,0x45,0x3b,0x3d,0x2b,0x00,0x00,0x01,0x00,0xa6,0xff,0xf0,0x02,0xa5,0x04,0x00,0x00,0x11,0x00,0x22,0xb3,0x09,0x84,0x06,0x00,0xb8,0x01,0x2e,0x40,0x0a,0x0f,0x10,0x10,0x03,0x07,0x0f,0x0c,0xec,0x03,0x16,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x01, +0x2f,0xed,0x2f,0xed,0x31,0x30,0x25,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x02,0xa5,0x85,0x78,0x7b,0x87,0xa3,0x38,0x31,0x2a,0x34,0x95,0xf1,0x76,0x8b,0x98,0x8b,0x02,0xed,0xfd,0x12,0x4a,0x48,0x38,0x3b,0x28,0x00,0x01,0x00,0xaa,0x00,0x00,0x04,0xd5,0x05,0x9a,0x00,0x19,0x00,0x4d, +0x40,0x29,0x12,0x16,0x7e,0x0f,0x0b,0x0b,0x07,0x00,0x0d,0x06,0x7e,0x07,0x14,0x19,0x7e,0x00,0x16,0x03,0x91,0x0b,0x15,0x0d,0x92,0x0e,0x12,0x0e,0x00,0x0b,0x10,0x0b,0x02,0x0b,0x0e,0x0b,0x0e,0x07,0x10,0x03,0x00,0x07,0x12,0x00,0x3f,0x33,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x33,0x01,0x2f,0xfd, +0xc4,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x11,0x10,0x21,0x20,0x11,0x11,0x23,0x11,0x10,0x12,0x37,0x35,0x21,0x35,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x15,0x04,0x11,0x11,0x04,0x2d,0xfe,0x99,0xfe,0x8c,0xa8,0xe0,0xe2,0xfe,0xba,0x01,0x46,0xa8,0x01,0x46,0xfe,0xba,0x01,0xc1,0x01,0x7c,0x01,0xaa,0xfe, +0x47,0xfe,0x93,0x01,0x78,0x01,0x08,0x01,0x28,0x11,0x99,0x8a,0xbe,0xbe,0x8a,0x9b,0x2e,0xfd,0xd8,0xfe,0x9f,0x00,0x00,0x01,0x00,0x7d,0x00,0x00,0x03,0xe4,0x04,0x00,0x00,0x19,0x00,0x47,0x40,0x24,0x14,0x19,0x0d,0x07,0x12,0x16,0x84,0x0f,0x0b,0x0b,0x00,0x07,0x84,0x08,0x19,0x84,0x00,0x15,0x0d,0x96,0x12,0x0e,0x0e,0x08,0x10,0x03, +0x96,0x16,0x0b,0x0b,0x08,0x10,0x0f,0x00,0x08,0x15,0x00,0x3f,0x33,0x3f,0x12,0x39,0x2f,0x33,0xed,0x11,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xc4,0x10,0xc4,0x31,0x30,0x21,0x35,0x10,0x21,0x22,0x06,0x15,0x15,0x23,0x35,0x10,0x25,0x35,0x21,0x35,0x21,0x35,0x33,0x15,0x21,0x15, +0x21,0x15,0x04,0x11,0x15,0x03,0x40,0xfe,0xf5,0x8b,0x89,0xa4,0x01,0x62,0xfe,0xf5,0x01,0x0b,0xa4,0x01,0x0b,0xfe,0xf5,0x01,0x61,0x6b,0x01,0x3c,0xa1,0xa7,0x5f,0x58,0x01,0xac,0x28,0x96,0x86,0xb8,0xb8,0x86,0x97,0x2c,0xfe,0x54,0x53,0x00,0x00,0x02,0x00,0x48,0xff,0xe7,0x05,0x73,0x05,0x9a,0x00,0x16,0x00,0x35,0x00,0x55,0x40,0x18, +0x2b,0x1d,0x7e,0x07,0x10,0x23,0x28,0x23,0x28,0x23,0x04,0x17,0x0f,0x13,0x7d,0x17,0x2e,0x7d,0x08,0x04,0x20,0x25,0x1a,0x2b,0xb8,0x01,0x05,0x40,0x10,0x07,0x10,0x0c,0x07,0x25,0x07,0x25,0x07,0x00,0x0e,0x08,0x03,0x32,0x92,0x00,0x13,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x11,0x33,0x01, +0x2f,0xc4,0xed,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xc4,0xfd,0xcd,0x31,0x30,0x05,0x22,0x24,0x26,0x35,0x34,0x36,0x37,0x01,0x33,0x01,0x17,0x33,0x37,0x01,0x33,0x01,0x16,0x16,0x15,0x14,0x06,0x04,0x01,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x06, +0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x02,0xe9,0xca,0xfe,0xcb,0xa2,0xfe,0xed,0xfe,0x69,0xdc,0x01,0x34,0x36,0x06,0x31,0x01,0x2b,0xca,0xfe,0x88,0xe1,0xfc,0xa4,0xfe,0xd6,0x01,0x1c,0xd1,0xb0,0x46,0x36,0x2a,0x33,0x38,0x43,0x4f,0x4e,0x69,0x7a,0x32,0x39,0xb2,0xdb,0x73,0xf1,0x92,0x8f,0xd8,0x6a,0x19,0x6e,0xc8,0x86,0xad, +0xe5,0x26,0x02,0x3f,0xfe,0x20,0x5e,0x56,0x01,0xe8,0xfd,0xc3,0x26,0xdc,0xa4,0x8d,0xd3,0x70,0x01,0xca,0x88,0xa3,0x0c,0x60,0x71,0x2b,0x21,0x2f,0x1f,0x89,0x1d,0x64,0x59,0x48,0x7f,0x4e,0x14,0xa6,0x82,0x61,0x8f,0x54,0x52,0x95,0x00,0x02,0x00,0x19,0xff,0xe7,0x03,0xb6,0x05,0xed,0x00,0x14,0x00,0x20,0x00,0x3b,0x40,0x1e,0x0e,0x1e, +0x09,0x15,0x84,0x07,0x12,0x00,0x84,0x1b,0x07,0x1b,0x07,0x1b,0x0a,0x11,0x0a,0x0e,0x12,0x1e,0x03,0x0a,0x0a,0x04,0x10,0x00,0x18,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x17,0x39,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0xc5,0x10,0xfd,0xc5,0xc6,0x32,0x31,0x30,0x25,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34, +0x13,0x01,0x33,0x13,0x16,0x17,0x37,0x01,0x33,0x01,0x16,0x16,0x05,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x02,0xa2,0x3c,0x6e,0x45,0x71,0x87,0x8d,0xfe,0xd1,0xbe,0x92,0x20,0x1c,0x13,0x01,0x46,0xb8,0xfe,0x4e,0x4f,0x4f,0xfe,0xba,0x2c,0x27,0x26,0x2c,0x32,0x27,0x28,0x24,0xc6,0x3b,0x68,0x3c,0x7e,0x67,0x79,0x01, +0x07,0x02,0x40,0xfe,0xd5,0x42,0x45,0x2d,0x02,0xe6,0xfc,0x62,0x87,0xb5,0x43,0x2b,0x32,0x32,0x2b,0x23,0x85,0x47,0x59,0x6e,0x00,0x01,0x00,0x5e,0xff,0xe8,0x08,0xaa,0x05,0xb2,0x00,0x32,0x00,0x49,0x40,0x28,0x1e,0x02,0x1e,0x02,0x17,0x09,0x7d,0x30,0x24,0x7d,0x17,0x00,0x21,0x91,0x1b,0x10,0xee,0x02,0x1e,0x1e,0x1b,0x0f,0x2a,0x1f, +0x2a,0x2f,0x2a,0x03,0x2a,0x2a,0x13,0x05,0x1b,0x04,0x2d,0x27,0x91,0x0d,0x13,0x13,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x12,0x39,0x11,0x33,0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x01,0x22,0x07,0x35,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x22,0x26,0x27, +0x06,0x06,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x36,0x37,0x16,0x16,0x33,0x32,0x00,0x11,0x10,0x00,0x06,0x14,0xa8,0x66,0x71,0x9b,0xc5,0x01,0x2e,0xa5,0xa4,0xfe,0xd0,0xc6,0x5e,0xd2,0x5b,0x5a,0xd6,0x5d,0xc5,0xfe,0xcf,0xa4,0xa2,0x01,0x2e,0xc8,0xa1,0x6b, +0x2e,0x8f,0x51,0xdc,0xfe,0xf6,0x01,0x0c,0xf2,0x6f,0xc9,0x3f,0x42,0xc2,0x75,0xef,0x01,0x0f,0xfe,0xf8,0x05,0x1a,0x45,0xb2,0x2b,0xb9,0xfe,0xaa,0xdf,0xd9,0xfe,0xb3,0xb6,0x2c,0x2a,0x29,0x2d,0xb6,0x01,0x4c,0xd8,0xda,0x01,0x57,0xbf,0x2b,0xb2,0x20,0x25,0xfe,0xbc,0xfe,0xf0,0xfe,0xee,0xfe,0xcb,0x35,0x2b,0x2b,0x35,0x01,0x31,0x01, +0x16,0x01,0x11,0x01,0x43,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x06,0xc6,0x04,0x18,0x00,0x2b,0x00,0x47,0x40,0x26,0x0c,0x20,0x0c,0x20,0x06,0x27,0x83,0x1b,0x11,0x83,0x06,0x1e,0x0e,0xec,0x09,0x00,0xec,0x20,0x0c,0x0c,0x09,0x16,0x40,0x09,0x0c,0x48,0x16,0x16,0x02,0x23,0x09,0x10,0x18,0x14,0x95,0x2a,0x02,0x16,0x00,0x3f,0x33,0xed, +0x32,0x3f,0x33,0x12,0x39,0x2f,0x2b,0x12,0x39,0x11,0x33,0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x25,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32, +0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x03,0x96,0x93,0xaf,0x98,0xe4,0x78,0x01,0x0a,0xdc,0x80,0x67,0x69,0x82,0x93,0xa7,0xc1,0xa7,0xa5,0x7f,0x80,0xa2,0xa9,0xbf,0xa5,0x93,0x83,0x69,0x6a,0x7e,0x90,0xdd,0x77,0xfe,0xf3,0xe6,0xae,0x42,0x5a,0x84,0xf3,0x9b,0xf6,0x01,0x28,0x30,0xaa,0x49,0xd2,0xb9,0xb9,0xcf,0x63,0x63,0xd0,0xb8,0xb8, +0xd3,0x49,0xaa,0x30,0x87,0xf7,0xa0,0xef,0xfe,0xdd,0x00,0x02,0xff,0xf3,0x00,0x00,0x04,0x5a,0x05,0xb2,0x00,0x14,0x00,0x1d,0x00,0x2d,0x40,0x17,0x00,0x1a,0x7e,0x08,0x08,0x0e,0x04,0x7d,0x15,0x0e,0x19,0x91,0x00,0x00,0x08,0x0c,0x92,0x11,0x04,0x1a,0x91,0x08,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x2f,0xed, +0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x01,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x01,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x01,0x86,0x01,0x1d,0xcb,0xec,0xf5,0xda,0xfe,0x53,0x4a,0x51,0x26,0x2a,0x2f,0x3e,0x8e,0x98,0x02,0x23,0xa1,0x9d,0xe5,0xe7,0x9a,0xa2,0x03, +0x3a,0xd0,0xbe,0xc5,0xe7,0x04,0x05,0x9f,0x83,0x15,0x8e,0x12,0xce,0xbf,0xfd,0x7d,0x86,0x7a,0xfd,0xf6,0x8c,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x04,0x19,0x04,0x18,0x00,0x06,0x00,0x1b,0x00,0x2d,0x40,0x17,0x13,0x04,0x84,0x1b,0x1b,0x00,0x0c,0x17,0x83,0x00,0x03,0x95,0x13,0x13,0x0f,0x04,0x95,0x1b,0x15,0x0a,0x95,0x0f,0x10,0x00, +0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x01,0x34,0x23,0x23,0x11,0x33,0x32,0x01,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x15,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x03,0x71,0xce,0xf4,0xf6,0xcc,0xfd,0x9a,0x3b,0x4a,0x30,0x24,0x39,0x37,0x83,0x8a,0x01, +0x14,0x9b,0xbb,0xb5,0x91,0xfe,0x38,0x01,0x40,0xaa,0xfe,0xa2,0x02,0x5b,0x50,0x57,0x0f,0x88,0x11,0x99,0x91,0x77,0xa5,0x92,0x92,0xae,0x00,0x03,0x00,0x33,0x00,0x00,0x06,0xa2,0x05,0x9a,0x00,0x03,0x00,0x10,0x00,0x18,0x00,0x40,0x40,0x22,0x0d,0x15,0x7e,0x08,0x04,0x7d,0x11,0x08,0x11,0x08,0x11,0x00,0x0a,0x03,0x7e,0x00,0x14,0x91, +0x0d,0x0d,0x08,0x0b,0x01,0x03,0x00,0x12,0x0a,0x91,0x0b,0x03,0x15,0x91,0x08,0x12,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0x11,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x31,0x30,0x21,0x11,0x33,0x11,0x01,0x14,0x06,0x23,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x32,0x16,0x07,0x10,0x21, +0x23,0x11,0x33,0x32,0x36,0x05,0xfa,0xa8,0xfe,0xb1,0xf5,0xda,0xfe,0x53,0xfe,0x5c,0x02,0x4c,0x01,0x1e,0xcb,0xeb,0xb1,0xfe,0xc3,0xe6,0xe7,0x97,0xa5,0x05,0x9a,0xfa,0x66,0x01,0xac,0xc4,0xe8,0x05,0x02,0x98,0xfd,0xa0,0xd3,0xc5,0x01,0x00,0xfd,0xf6,0x89,0x00,0x00,0x03,0x00,0x1c,0x00,0x00,0x05,0xae,0x04,0x00,0x00,0x03,0x00,0x10, +0x00,0x18,0x00,0x40,0x40,0x22,0x0d,0x16,0x84,0x08,0x04,0x83,0x11,0x08,0x11,0x08,0x11,0x00,0x0a,0x03,0x84,0x00,0x15,0x95,0x0d,0x0d,0x08,0x0b,0x01,0x0f,0x00,0x15,0x0a,0x95,0x0b,0x0f,0x16,0x95,0x08,0x15,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0x11,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10, +0xed,0x32,0x31,0x30,0x21,0x11,0x33,0x11,0x01,0x14,0x06,0x23,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x32,0x16,0x07,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x05,0x0c,0xa2,0xfe,0xae,0xb6,0x92,0xfe,0x3a,0xfe,0xce,0x01,0xd6,0x01,0x14,0xa0,0xb6,0xa8,0x67,0x6c,0xef,0xef,0xd3,0x04,0x00,0xfc,0x00,0x01,0x40,0x93,0xad,0x03,0x73,0x8d,0xfe, +0x77,0xa6,0x93,0x57,0x55,0xfe,0xa2,0x00,0x00,0x02,0x00,0xbb,0x00,0x00,0x06,0x5d,0x05,0x9a,0x00,0x16,0x00,0x1f,0x00,0x4b,0x40,0x27,0x07,0x0b,0x1c,0x7e,0x04,0x13,0x09,0x13,0x09,0x17,0x03,0x16,0x7e,0x00,0x0f,0x7d,0x17,0x0a,0x15,0x91,0x07,0x03,0x03,0x13,0x01,0x1b,0x91,0x0b,0x0b,0x13,0x05,0x01,0x03,0x00,0x12,0x1c,0x91,0x13, +0x12,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x11,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x33,0xed,0x32,0x32,0x31,0x30,0x33,0x11,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x21,0x11,0x01,0x34,0x26,0x23,0x23,0x11, +0x33,0x32,0x36,0xbb,0xa8,0x01,0x7e,0xa8,0x01,0x67,0xfe,0x99,0x01,0x1a,0xce,0xec,0xfb,0xd7,0xfe,0x56,0xfe,0x82,0x04,0x49,0x9c,0xa5,0xe2,0xe3,0x9c,0xa4,0x05,0x9a,0x95,0x95,0x95,0x98,0xfe,0xcd,0xd2,0xbc,0xc9,0xe3,0x04,0x6d,0xfb,0x93,0x01,0xa2,0x80,0x80,0xfd,0xf6,0x89,0x00,0x00,0x02,0x00,0xa6,0x00,0x00,0x05,0xaa,0x05,0xec, +0x00,0x16,0x00,0x1e,0x00,0x4b,0x40,0x27,0x09,0x17,0x07,0x0b,0x1c,0x84,0x04,0x13,0x13,0x17,0x03,0x16,0x84,0x00,0x0f,0x83,0x17,0x0a,0x15,0x95,0x07,0x03,0x03,0x13,0x01,0x1b,0x95,0x0b,0x0b,0x13,0x05,0x01,0x00,0x00,0x15,0x1c,0x95,0x13,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x11,0x12,0x39,0x2f,0x33,0xed,0x32, +0x01,0x2f,0xed,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x32,0x10,0xc4,0x31,0x30,0x33,0x11,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x21,0x11,0x01,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0xa6,0xa4,0x01,0x52,0xa4,0x01,0x1e,0xfe,0xe2,0x01,0x14,0xa2,0xb4,0xb6,0x91,0xfe, +0x39,0xfe,0xae,0x03,0xb8,0x63,0x70,0xef,0xef,0xd3,0x05,0xec,0xc3,0xc3,0xc3,0x8d,0xfd,0xdb,0xa7,0x90,0x91,0xaf,0x04,0x9c,0xfb,0x64,0x01,0x3e,0x55,0x57,0xfe,0xa2,0x00,0x02,0x00,0x60,0xff,0xe8,0x07,0x6a,0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0x36,0x40,0x1d,0x07,0x7e,0x1c,0x1c,0x0c,0x16,0x7d,0x00,0x0b,0x7e,0x08,0x0c,0x0e,0x91, +0x07,0x07,0x0c,0x09,0x03,0x0c,0x12,0x1f,0x91,0x04,0x04,0x19,0x91,0x12,0x13,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x13,0x34,0x12,0x24,0x33,0x20,0x00,0x13,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x37,0x10,0x12,0x33, +0x32,0x12,0x11,0x10,0x00,0x23,0x22,0x02,0x60,0x9a,0x01,0x21,0xbf,0x01,0x1b,0x01,0x5b,0x1f,0x01,0x53,0xa8,0xa8,0xfe,0xb2,0xa5,0xfe,0xdb,0xb7,0xcd,0xfe,0xd7,0x9d,0xb0,0xfe,0xe5,0xdf,0xf2,0xfe,0xfd,0xe1,0xe0,0xf0,0x02,0xdf,0xd7,0x01,0x49,0xb3,0xfe,0xae,0xfe,0xd5,0x02,0x65,0xfa,0x66,0x02,0x9e,0xc6,0xfe,0xbb,0xab,0xb7,0x01, +0x59,0xd0,0xfe,0xe9,0xfe,0xce,0x01,0x3b,0x01,0x17,0x01,0x13,0x01,0x36,0xfe,0xcd,0x00,0x02,0x00,0x63,0xff,0xe8,0x05,0xdb,0x04,0x18,0x00,0x13,0x00,0x1b,0x00,0x38,0x40,0x1e,0x06,0x0d,0x84,0x18,0x18,0x0b,0x14,0x83,0x00,0x0a,0x84,0x07,0x0b,0x0d,0x95,0x06,0x06,0x0b,0x08,0x0f,0x0b,0x15,0x1a,0x95,0x03,0x10,0x16,0x95,0x11,0x16, +0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x13,0x34,0x12,0x33,0x32,0x16,0x17,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x0e,0x02,0x23,0x22,0x00,0x37,0x10,0x21,0x20,0x11,0x10,0x21,0x20,0x63,0xf0,0xdc,0xca,0xff,0x1b,0x01,0x24,0xa4,0xa4,0xfe,0xde,0x05, +0x6f,0xcb,0x8f,0xe2,0xfe,0xfe,0xa7,0x01,0x2f,0x01,0x36,0xfe,0xce,0xfe,0xcd,0x02,0x04,0xff,0x01,0x15,0xe9,0xd3,0x01,0xa4,0xfc,0x00,0x01,0xd1,0x94,0xde,0x77,0x01,0x24,0xf2,0xfe,0x74,0x01,0x8c,0x01,0x90,0x00,0x02,0x00,0xbc,0x00,0x00,0x07,0x50,0x05,0x9a,0x00,0x0f,0x00,0x17,0x00,0x48,0xb9,0x00,0x14,0x01,0x04,0x40,0x22,0x05, +0x04,0x05,0x15,0x15,0x05,0x04,0x03,0x08,0x0f,0x0b,0x07,0x7e,0x08,0x02,0x91,0x14,0x06,0x91,0x0b,0x14,0x0b,0x14,0x0b,0x08,0x11,0x0d,0x03,0x09,0x03,0x04,0x00,0x08,0x12,0x00,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x32,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x31,0x30, +0x21,0x03,0x21,0x03,0x23,0x13,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x13,0x33,0x01,0x01,0x23,0x06,0x07,0x03,0x21,0x03,0x26,0x06,0x96,0x98,0xfd,0xa0,0x8f,0xbb,0xfb,0xfe,0x15,0xa8,0xa8,0x02,0x25,0xf1,0xae,0x02,0x28,0xfd,0x80,0x04,0x09,0x0e,0xdf,0x01,0xf1,0xe1,0x0b,0x01,0x92,0xfe,0x6e,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b, +0x02,0x75,0xfa,0x66,0x04,0xec,0x37,0x29,0xfd,0x9d,0x02,0x63,0x1f,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x05,0xa1,0x04,0x18,0x00,0x1c,0x00,0x27,0x00,0x5d,0x40,0x31,0x0f,0x0b,0x84,0x0c,0x16,0x1d,0x83,0x09,0x07,0x07,0x00,0x0c,0x23,0x1c,0x84,0x11,0x00,0x13,0x95,0x19,0x10,0x01,0x02,0x0a,0x95,0x0f,0x24,0x96,0x11,0x02,0x0c,0x0f, +0x16,0x11,0x0d,0x0f,0x11,0x0f,0x11,0x0c,0x0d,0x0f,0x00,0x0c,0x15,0x20,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x33,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x3f,0xed,0x01,0x2f,0x33,0xed,0x33,0x2f,0x12,0x39,0x2f,0xcd,0xfd,0xc4,0x10,0xed,0x32,0x31,0x30,0x21,0x35,0x23,0x06,0x23, +0x22,0x26,0x35,0x34,0x37,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x25,0x10,0x23,0x22,0x06,0x07,0x35,0x36,0x33,0x20,0x11,0x11,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x07,0x06,0x06,0x04,0xfd,0x04,0x67,0xd4,0x97,0xaf,0x38,0xfe,0x9a,0xa4,0xa4,0x02,0x71,0x01,0x42,0xd3,0x60,0xa0,0x4e,0x93,0xc9,0x01,0x69,0xfd,0x7f,0x6b,0x59,0x7a, +0x9f,0xef,0x88,0x66,0xa0,0xb8,0x9f,0x89,0x74,0x4d,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x2d,0x01,0x05,0x3d,0x41,0xa8,0x60,0xfe,0x82,0xfd,0x66,0x01,0x1c,0x4c,0x5e,0xab,0x83,0x66,0x21,0x14,0x56,0x00,0x00,0x03,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x11,0x00,0x2f,0x40,0x18,0x07,0x0d,0x0e,0x04,0x04,0x0e, +0x0d,0x07,0x04,0x00,0x03,0x00,0x06,0x92,0x0d,0x0d,0x00,0x09,0x01,0x03,0x07,0x92,0x00,0x12,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x31,0x30,0x33,0x01,0x33,0x01,0x27,0x03,0x21,0x03,0x01,0x23,0x06,0x06,0x07,0x03,0x21,0x03,0x26,0x26,0x16,0x02,0x26,0xae,0x02,0x28,0xf1, +0xae,0xfe,0x3a,0xa8,0x01,0x8d,0x04,0x08,0x08,0x08,0x97,0x01,0x62,0x99,0x08,0x06,0x05,0x9a,0xfa,0x66,0x91,0x01,0xd2,0xfe,0x2e,0x04,0x5b,0x23,0x2b,0x14,0xfe,0x62,0x01,0xa0,0x17,0x2c,0x00,0x03,0x00,0x0a,0x00,0x00,0x03,0xc7,0x04,0x00,0x00,0x03,0x00,0x07,0x00,0x0f,0x00,0x2f,0x40,0x18,0x04,0x0b,0x0c,0x05,0x05,0x0c,0x0b,0x04, +0x04,0x00,0x01,0x00,0x07,0x96,0x0b,0x0b,0x01,0x08,0x02,0x0f,0x04,0x96,0x01,0x15,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x31,0x30,0x21,0x21,0x01,0x33,0x01,0x21,0x03,0x21,0x13,0x06,0x07,0x07,0x33,0x27,0x26,0x27,0x03,0xc7,0xfc,0x43,0x01,0x98,0xa1,0xfe,0xa0,0x02,0x05, +0x71,0xfe,0xe3,0x8c,0x05,0x1a,0x43,0xcb,0x40,0x14,0x10,0x04,0x00,0xfc,0x7b,0x01,0x44,0x01,0xb8,0x44,0x47,0xb9,0xb5,0x34,0x5b,0x00,0x00,0x04,0x00,0x29,0x00,0x00,0x05,0xaa,0x05,0x9a,0x00,0x14,0x00,0x1b,0x00,0x1f,0x00,0x24,0x00,0x69,0x40,0x38,0x16,0x14,0x1c,0x0b,0x7e,0x0c,0x24,0x0c,0x15,0x02,0x7e,0x19,0x00,0x23,0x14,0x0c, +0x19,0x1d,0x01,0x01,0x1d,0x19,0x0c,0x14,0x23,0x00,0x07,0x06,0x11,0x06,0x0a,0x0e,0x92,0x23,0x1c,0x23,0x1f,0x20,0x92,0x14,0x19,0x02,0x14,0x23,0x14,0x23,0x14,0x00,0x0c,0x07,0x11,0x12,0x16,0x91,0x00,0x03,0x00,0x3f,0xed,0x3f,0x33,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f, +0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xfd,0xcd,0x11,0x33,0x10,0xed,0x32,0x10,0xcd,0x31,0x30,0x13,0x21,0x01,0x16,0x16,0x12,0x17,0x23,0x26,0x27,0x21,0x11,0x23,0x11,0x21,0x06,0x07,0x23,0x12,0x00,0x37,0x01,0x21,0x13,0x16,0x17,0x36,0x36,0x13,0x21,0x26,0x27,0x27,0x06,0x06,0x07,0x21,0xa5,0x04,0x9f,0xfe, +0x52,0x9e,0xcb,0x7e,0x2d,0xbf,0x10,0x31,0xfe,0x98,0xa8,0xfe,0x8c,0x2c,0x10,0xc1,0x2f,0x01,0x01,0xe9,0x01,0xe5,0xfd,0x9f,0xf8,0x23,0x11,0x11,0x0e,0x31,0x01,0x25,0x6e,0xb7,0xa8,0x68,0x8b,0x3e,0x01,0x31,0x05,0x9a,0xfd,0x60,0x36,0xb2,0xfe,0xea,0xfc,0xb1,0x6b,0xfe,0xe4,0x01,0x1c,0x6d,0xaf,0x01,0x4a,0x01,0x6c,0x46,0x02,0x06, +0xfe,0x6a,0x37,0x39,0x33,0x1a,0xfe,0x58,0x9c,0x33,0x02,0x1f,0x5b,0x57,0x00,0x04,0x00,0x1e,0x00,0x00,0x04,0x66,0x04,0x00,0x00,0x15,0x00,0x1c,0x00,0x21,0x00,0x26,0x00,0x6d,0x40,0x0c,0x20,0x17,0x0e,0x22,0x04,0xef,0x05,0x21,0x05,0x23,0x16,0x11,0xb8,0x01,0x2e,0x40,0x2a,0x1a,0x0f,0x0e,0x05,0x1a,0x10,0x10,0x1a,0x05,0x0e,0x0f, +0x05,0x0a,0x15,0x0a,0x03,0x07,0x96,0x20,0x22,0x20,0x26,0x1d,0x96,0x0e,0x11,0x1a,0x0e,0x0f,0x20,0x0e,0x20,0x0e,0x0a,0x17,0x95,0x0f,0x0f,0x05,0x00,0x0a,0x15,0x00,0x3f,0x33,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x32,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f, +0x2f,0x10,0xfd,0xcd,0xcd,0x11,0x33,0x10,0xed,0x32,0x10,0xcd,0xcd,0x31,0x30,0x21,0x26,0x27,0x23,0x15,0x23,0x35,0x21,0x06,0x07,0x23,0x3e,0x02,0x37,0x01,0x21,0x01,0x1e,0x02,0x17,0x01,0x21,0x17,0x16,0x17,0x36,0x36,0x07,0x06,0x06,0x07,0x3b,0x02,0x26,0x26,0x27,0x03,0xb8,0x0a,0x21,0xf9,0x9c,0xff,0x00,0x1a,0x11,0xaf,0x24,0x60, +0x98,0x74,0xfe,0xc2,0x03,0xb5,0xfe,0xb8,0x73,0x9b,0x5e,0x1d,0xfe,0xb0,0xfe,0x6f,0x9f,0x1c,0x08,0x03,0x0a,0x5d,0x3a,0x5a,0x2d,0xc1,0x9c,0xb9,0x35,0x4c,0x38,0x74,0x4e,0xc2,0xc2,0x40,0x82,0xbe,0xc9,0x81,0x23,0x01,0xd5,0xfe,0x29,0x24,0x8a,0xcd,0xae,0x03,0x79,0xff,0x2b,0x17,0x08,0x11,0x9d,0x12,0x37,0x35,0x3a,0x30,0x12,0x00, +0x00,0x03,0x00,0xbc,0x00,0x00,0x07,0x50,0x05,0x9a,0x00,0x0b,0x00,0x0f,0x00,0x17,0x00,0x49,0x40,0x27,0x08,0x04,0x7e,0x05,0x14,0x0e,0x7e,0x0f,0x02,0x01,0x02,0x15,0x0c,0x0c,0x15,0x02,0x01,0x04,0x00,0x05,0x00,0x0e,0x03,0x91,0x14,0x08,0x08,0x01,0x11,0x0a,0x03,0x06,0x03,0x05,0x12,0x0f,0x92,0x01,0x12,0x00,0x3f,0xed,0x3f,0x3f, +0x3f,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xc5,0xfd,0xcd,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x13,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x13,0x33,0x01,0x03,0x21,0x03,0x01,0x23,0x06,0x07,0x03,0x21,0x03,0x26,0x07,0x50,0xfb,0x04,0xfb,0xfe,0x15,0xa8,0xa8,0x02,0x25,0xf1,0xae, +0x01,0x37,0xbe,0xfe,0x5a,0xb8,0x01,0x8d,0x04,0x09,0x0e,0x83,0x01,0x38,0x84,0x09,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfa,0xf7,0x01,0xfd,0xfe,0x03,0x04,0x5b,0x37,0x29,0xfe,0x99,0x01,0x67,0x1b,0x00,0x00,0x03,0x00,0xa6,0x00,0x00,0x05,0xd0,0x04,0x00,0x00,0x0b,0x00,0x0f,0x00,0x17,0x00,0x4d,0x40,0x2a,0x08,0x04, +0x84,0x05,0x01,0x02,0x0c,0x13,0x14,0x0d,0x0d,0x14,0x13,0x0c,0x02,0x01,0x06,0x00,0x05,0x00,0x0f,0x96,0x13,0x03,0x95,0x08,0x13,0x08,0x13,0x08,0x01,0x10,0x0a,0x0f,0x06,0x0f,0x05,0x15,0x0c,0x96,0x01,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f, +0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x13,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x13,0x33,0x01,0x21,0x03,0x21,0x13,0x06,0x07,0x07,0x33,0x26,0x26,0x27,0x05,0xd0,0xfc,0x43,0xba,0xfe,0x7d,0xa4,0xa4,0x01,0xba,0xa7,0xa1,0xfe,0xa0,0x02,0x05,0x71,0xfe,0xe3,0x8c,0x06,0x18,0x44,0xcb,0x2c,0x2c,0x0c,0x01,0xd1,0xfe, +0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4,0xfc,0x7b,0x01,0x44,0x01,0xb8,0x47,0x44,0xb9,0x7b,0x7c,0x4d,0x00,0x00,0x01,0x00,0x1e,0xfe,0x29,0x05,0xfe,0x05,0x9a,0x00,0x1a,0x00,0x2f,0x40,0x17,0x1a,0x7e,0x02,0x00,0x00,0x0b,0x14,0x0b,0x19,0x18,0x01,0x02,0x02,0x12,0x15,0x12,0x12,0x03,0x0e,0x91,0x00,0x08,0x13,0x00,0x3f,0xc6,0xed,0x3f, +0x3f,0x12,0x39,0x11,0x33,0x33,0x33,0x01,0x2f,0x2f,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x01,0x11,0x23,0x06,0x07,0x03,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x01,0x33,0x01,0x23,0x01,0x26,0x27,0x23,0x11,0x03,0x4d,0x05,0x0e,0x1a,0xe0,0x2c,0x8c,0x6d,0x6b,0x85,0x0d,0xa1,0x0d,0x51,0x2c,0x3c,0x1f,0x01,0xb4, +0x9a,0x02,0x0c,0xc0,0xfe,0xe4,0x1d,0x0a,0x05,0xfe,0x29,0x05,0xc9,0x60,0x47,0xfd,0xa3,0x89,0x7e,0x7b,0x80,0x64,0x4b,0x51,0x04,0x80,0xfa,0x66,0x03,0x44,0x5c,0x52,0xfa,0x37,0x00,0x01,0x00,0x05,0xfe,0x29,0x04,0xd0,0x04,0x00,0x00,0x1a,0x00,0x30,0x40,0x18,0x1a,0xef,0x02,0x00,0x00,0x0a,0x14,0x0a,0x19,0x18,0x01,0x02,0x02,0x12, +0x15,0x15,0x12,0x0f,0x0e,0x95,0x08,0x16,0x00,0x1b,0x00,0x3f,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x11,0x33,0x33,0x33,0x01,0x2f,0x2f,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x01,0x11,0x23,0x06,0x07,0x03,0x06,0x06,0x23,0x22,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x37,0x01,0x33,0x01,0x23,0x03,0x26,0x27,0x23,0x11,0x02,0xa3,0x05,0x0f,0x12, +0x81,0x2f,0x78,0x5c,0xd5,0x1f,0x9d,0x05,0x29,0x29,0x27,0x39,0x22,0x01,0x2a,0x9d,0x01,0x8e,0xaa,0xbd,0x1a,0x0b,0x05,0xfe,0x29,0x04,0x86,0x54,0x36,0xfe,0xaf,0x85,0x68,0xeb,0x30,0x2d,0x43,0x56,0x02,0xf2,0xfc,0x00,0x02,0x16,0x58,0x41,0xfb,0x7a,0x00,0x01,0x00,0x3e,0xfe,0x7f,0x05,0x34,0x05,0x9a,0x00,0x0b,0x00,0x2a,0x40,0x15, +0x05,0x7e,0x02,0x02,0x06,0x0b,0x7f,0x00,0x09,0x7e,0x06,0x00,0x0a,0x07,0x03,0x03,0x05,0x01,0x91,0x0a,0x12,0x00,0x3f,0xed,0x32,0x3f,0x33,0x10,0xcd,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x13,0x11,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x3e,0xc0,0xa8,0x02,0xe6,0xa8,0xfb,0xa5,0xfe,0x7f,0x02,0x19, +0x05,0x02,0xfa,0xfe,0x05,0x02,0xfa,0x66,0xfe,0x7f,0x00,0x01,0x00,0x3e,0xfe,0x8b,0x04,0x27,0x04,0x00,0x00,0x0b,0x00,0x2a,0x40,0x15,0x05,0x84,0x02,0x02,0x06,0x0b,0xed,0x00,0x09,0x84,0x06,0x00,0x0a,0x07,0x03,0x0f,0x05,0x01,0x95,0x0a,0x15,0x00,0x3f,0xed,0x32,0x3f,0x33,0x10,0xcd,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed, +0x31,0x30,0x13,0x11,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x3e,0x97,0xa4,0x02,0x0a,0xa4,0xfc,0xa4,0xfe,0x8b,0x02,0x00,0x03,0x75,0xfc,0x8b,0x03,0x75,0xfc,0x00,0xfe,0x8b,0x00,0x02,0x00,0x0f,0xfe,0x7f,0x06,0xc6,0x05,0x9a,0x00,0x0f,0x00,0x15,0x00,0x3d,0x40,0x1f,0x14,0x07,0x01,0x7e,0x15,0x03,0x7f,0x04,0x15,0x04, +0x15,0x04,0x0e,0x07,0x7f,0x08,0x0e,0x04,0x08,0x06,0x00,0x11,0xee,0x0d,0x03,0x01,0x14,0x09,0x91,0x06,0x12,0x00,0x3f,0xed,0x32,0x32,0x3f,0xed,0x32,0x10,0xcd,0x32,0x01,0x2f,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xc4,0x31,0x30,0x01,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x12,0x12,0x13,0x21, +0x15,0x21,0x21,0x06,0x02,0x07,0x21,0x04,0x87,0xc1,0x9b,0xfb,0xfd,0x9b,0x6f,0x92,0xc8,0x0c,0x04,0xe2,0xfd,0x19,0xfe,0x94,0x0e,0xb9,0x78,0x02,0xab,0x04,0xfe,0xfb,0x9a,0xfd,0xe7,0x01,0x81,0xfe,0x7f,0x02,0x19,0x01,0x0d,0x02,0xba,0x01,0x3b,0x9c,0xe5,0xfd,0x66,0xe7,0x00,0x02,0x00,0x12,0xfe,0x8b,0x05,0x20,0x04,0x00,0x00,0x0f, +0x00,0x15,0x00,0x3d,0x40,0x1f,0x14,0x07,0x01,0x84,0x15,0x03,0xed,0x04,0x15,0x04,0x15,0x04,0x0e,0x07,0xed,0x08,0x0e,0x04,0x08,0x06,0x00,0x11,0x95,0x0d,0x0f,0x01,0x14,0x09,0x95,0x06,0x15,0x00,0x3f,0xed,0x32,0x32,0x3f,0xed,0x32,0x10,0xcd,0x32,0x01,0x2f,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xc4,0x31, +0x30,0x01,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x36,0x12,0x35,0x21,0x15,0x21,0x23,0x06,0x02,0x07,0x21,0x03,0x8b,0x98,0x8b,0xfd,0x06,0x8c,0x5b,0x7d,0x8d,0x03,0xa9,0xfd,0xc7,0xe3,0x0a,0x79,0x66,0x01,0xcc,0x03,0x74,0xfd,0x17,0xfe,0x00,0x01,0x75,0xfe,0x8b,0x02,0x00,0xb0,0x01,0xc9,0xfc,0x8c,0xc5,0xfe,0x7d,0xa1, +0x00,0x01,0x00,0x10,0xff,0xe9,0x06,0xe3,0x05,0x9a,0x00,0x17,0x00,0x24,0x40,0x12,0x17,0x7e,0x00,0x00,0x0a,0x14,0x0a,0x16,0x02,0xee,0x13,0x03,0x0e,0x91,0x08,0x13,0x00,0x12,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x11,0x21,0x07,0x06,0x02,0x02,0x06,0x23,0x22,0x27,0x35,0x16,0x16, +0x33,0x32,0x36,0x12,0x12,0x13,0x21,0x15,0x21,0x11,0x03,0xfc,0xfe,0x71,0x20,0x1e,0x46,0x57,0x8e,0x6b,0x4d,0x3c,0x12,0x47,0x18,0x44,0x4f,0x4b,0x55,0x2e,0x05,0x01,0xfd,0xc1,0x04,0xfe,0xf9,0xe7,0xfe,0x48,0xfe,0xfa,0x77,0x15,0x9e,0x0b,0x12,0x6e,0x01,0x26,0x02,0x1c,0x01,0x6b,0x9c,0xfb,0x02,0x00,0x00,0x01,0x00,0x10,0xff,0xf2, +0x05,0x26,0x04,0x00,0x00,0x11,0x00,0x24,0x40,0x12,0x11,0x84,0x00,0x00,0x07,0x0e,0x07,0x10,0x02,0x95,0x0d,0x0f,0x0a,0x95,0x05,0x16,0x00,0x15,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x11,0x23,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x12,0x13,0x21,0x15,0x21,0x11,0x02,0xee, +0xee,0x28,0xc1,0xaf,0x38,0x20,0x1f,0x2d,0x6d,0x8b,0x23,0x03,0xaf,0xfe,0x6b,0x03,0x74,0xfe,0x21,0xfe,0x5d,0x0e,0x8d,0x12,0x01,0xbf,0x01,0xc6,0x8c,0xfc,0x8c,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x08,0xb1,0x05,0x9a,0x00,0x1f,0x00,0x3f,0x40,0x1f,0x07,0x06,0x03,0x01,0x7e,0x02,0x02,0x14,0x1e,0x10,0x13,0x7e,0x14,0x00,0xee,0x1d, +0x1d,0x15,0x0f,0x07,0x06,0x10,0x19,0x10,0x14,0x15,0x03,0x0c,0x02,0x14,0x12,0x00,0x3f,0x33,0x33,0x3f,0x12,0x39,0x39,0x11,0x33,0x33,0x33,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0x32,0x2f,0x12,0x39,0x2f,0xed,0x33,0x33,0x33,0x31,0x30,0x01,0x11,0x23,0x11,0x34,0x36,0x37,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x23,0x16,0x15, +0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x36,0x01,0x21,0x15,0x06,0x72,0xa7,0x02,0x0c,0x04,0x0d,0x10,0x0e,0xfe,0x16,0x52,0xfe,0x17,0x13,0x17,0x05,0x08,0xa2,0xde,0x01,0xb8,0x31,0x11,0x06,0x29,0x1a,0x01,0xc4,0x03,0x10,0x04,0xfe,0xfb,0x02,0x03,0xc2,0x20,0x39,0xbe,0x2e,0x3f,0x1e,0xfb,0xb2,0x04,0x46,0x2d,0x66,0x6a,0xaf, +0xfc,0x40,0x05,0x9a,0xfc,0x18,0x70,0x3c,0x70,0x3c,0x03,0xe8,0x9c,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x06,0x8d,0x04,0x00,0x00,0x17,0x00,0x34,0x40,0x1a,0x17,0x84,0x00,0x00,0x0a,0x14,0x09,0xed,0x0a,0x16,0x95,0x13,0x13,0x0b,0x01,0x08,0x0f,0x08,0x0a,0x0b,0x0f,0x00,0x0a,0x15,0x05,0x15,0x00,0x3f,0x3f,0x33,0x3f,0x12,0x39,0x39, +0x11,0x33,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x11,0x06,0x06,0x01,0x23,0x01,0x26,0x27,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x21,0x15,0x21,0x11,0x04,0x56,0x10,0x26,0xfe,0xf2,0x93,0xfe,0xf8,0x2d,0x17,0x8d,0xd1,0x01,0x0e,0x3e,0x0a,0x04,0x0f,0x26,0x01,0x18,0x02,0x6f, +0xfe,0x6b,0x03,0x4c,0x2f,0x6a,0xfd,0x4d,0x02,0x90,0x74,0x48,0xfc,0xb4,0x04,0x00,0xfd,0x64,0x9a,0x2f,0x39,0x5d,0x02,0xcf,0x8c,0xfc,0x8c,0x00,0x00,0x03,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x28,0x40,0x14,0x15,0x7d,0x09,0x21,0x1b,0x7d,0x03,0x0f,0x00,0x06,0x06,0x0c,0x18,0x91,0x12,0x04, +0x1e,0x91,0x0c,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0x01,0x2f,0xc4,0xed,0x2f,0xc6,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x03,0x02,0x30,0x41,0x42,0x31, +0x30,0x42,0x41,0x37,0xfe,0xd0,0xfe,0x90,0x01,0x75,0x01,0x43,0x01,0x23,0x01,0x71,0xfe,0x89,0xfe,0xd7,0xe1,0xfe,0xe5,0x01,0x0f,0xe1,0xef,0x01,0x0d,0xfe,0xf5,0x02,0x70,0x3c,0x30,0x2b,0x3e,0x39,0x30,0x2e,0x3e,0xfd,0x78,0x01,0x90,0x01,0x44,0x01,0x5a,0x01,0x9c,0xfe,0x75,0xfe,0xb8,0xfe,0x9d,0xfe,0x6c,0x05,0x32,0xfe,0xbb,0xfe, +0xf6,0xfe,0xfb,0xfe,0xb9,0x01,0x36,0x01,0x13,0x01,0x20,0x01,0x32,0x00,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x18,0x00,0x24,0x00,0x28,0x40,0x14,0x15,0x83,0x09,0x22,0x1c,0x83,0x03,0x0f,0x00,0x06,0x06,0x0c,0x19,0x95,0x12,0x10,0x1f,0x95,0x0c,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0x01, +0x2f,0xc4,0xed,0x2f,0xc6,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x12,0x17,0x14,0x06,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x58,0x29,0x38,0x3a,0x27,0x2a,0x37,0x35,0x32,0xe7,0xfe,0xf5,0x01,0x1c,0xee,0xe6,0xfe,0x02, +0x83,0xe1,0x8e,0x9e,0xb8,0xb6,0xa0,0xa0,0xaa,0xac,0x01,0xaa,0x38,0x2a,0x2d,0x32,0x37,0x28,0x27,0x3b,0xfe,0x3e,0x01,0x23,0xe9,0x01,0x04,0x01,0x20,0xfe,0xe6,0xfa,0xaa,0xf1,0x81,0x03,0xa6,0xd7,0xbd,0xb2,0xd6,0xd0,0xbc,0xc2,0xce,0x00,0x00,0x04,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f, +0x00,0x32,0x40,0x19,0x2d,0x27,0x15,0x7d,0x21,0x1b,0x7d,0x09,0x03,0x0f,0x24,0x00,0x00,0x2a,0x06,0x06,0x0c,0x18,0x91,0x12,0x04,0x1e,0x91,0x0c,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0x33,0x11,0x33,0x01,0x2f,0xc4,0xc4,0xed,0x2f,0xed,0xc4,0xc6,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x13,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x34,0x2c,0x3d,0x3e,0x2d,0x30,0x3a,0x3c,0x9a,0xfe,0xd0,0xfe,0x90,0x01,0x75,0x01,0x43,0x01,0x23,0x01,0x71,0xfe,0x89,0xfe,0xd7,0xe1,0xfe, +0xe5,0x01,0x0f,0xe1,0xef,0x01,0x0d,0xfe,0xf5,0x1e,0x2c,0x3d,0x3e,0x2d,0x30,0x3a,0x3c,0x02,0x70,0x3c,0x30,0x2e,0x3b,0x3e,0x2b,0x2d,0x3f,0xfd,0x78,0x01,0x90,0x01,0x44,0x01,0x5a,0x01,0x9c,0xfe,0x75,0xfe,0xb8,0xfe,0x9d,0xfe,0x6c,0x05,0x32,0xfe,0xbb,0xfe,0xf6,0xfe,0xfb,0xfe,0xb9,0x01,0x36,0x01,0x13,0x01,0x20,0x01,0x32,0xfd, +0x56,0x3c,0x30,0x2e,0x3b,0x3e,0x2b,0x2d,0x3f,0x00,0x00,0x04,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x18,0x00,0x24,0x00,0x30,0x00,0x32,0x40,0x19,0x2e,0x28,0x15,0x83,0x09,0x22,0x1c,0x83,0x03,0x0f,0x25,0x00,0x00,0x2b,0x06,0x06,0x0c,0x19,0x95,0x12,0x10,0x1f,0x95,0x0c,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39, +0x2f,0x33,0x33,0x11,0x33,0x01,0x2f,0xc4,0xed,0x2f,0xc4,0xed,0xc4,0xc6,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x12,0x17,0x14,0x06,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14, +0x06,0x01,0xc9,0x28,0x34,0x37,0x25,0x25,0x38,0x37,0x63,0xe7,0xfe,0xf5,0x01,0x1c,0xee,0xe6,0xfe,0x02,0x83,0xe1,0x8e,0x9e,0xb8,0xb6,0xa0,0xa0,0xaa,0xac,0x16,0x28,0x34,0x37,0x25,0x25,0x38,0x37,0x01,0xaf,0x37,0x26,0x2b,0x30,0x31,0x2a,0x28,0x35,0xfe,0x39,0x01,0x23,0xe9,0x01,0x04,0x01,0x20,0xfe,0xe6,0xfa,0xaa,0xf1,0x81,0x03, +0xa6,0xd7,0xbd,0xb2,0xd6,0xd0,0xbc,0xc2,0xce,0xfe,0x21,0x37,0x26,0x2b,0x30,0x31,0x2a,0x28,0x35,0x00,0x00,0x05,0x00,0x5e,0xff,0xe8,0x09,0x58,0x05,0xb2,0x00,0x1d,0x00,0x2b,0x00,0x37,0x00,0x43,0x00,0x4f,0x00,0x3f,0x40,0x20,0x21,0x7d,0x35,0x35,0x0c,0x4d,0x47,0x1a,0x7d,0x28,0x41,0x3b,0x2f,0x7d,0x0c,0x44,0x38,0x38,0x4a,0x3e, +0x3e,0x09,0x1e,0x2c,0x91,0x0f,0x04,0x25,0x32,0x91,0x09,0x13,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0x11,0x33,0x01,0x2f,0xed,0xc4,0xc4,0x2f,0xed,0xc4,0xc6,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x26,0x26,0x27,0x23,0x06,0x07,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x04,0x17,0x33,0x3e,0x02,0x33, +0x20,0x00,0x11,0x10,0x07,0x06,0x01,0x22,0x02,0x11,0x14,0x12,0x16,0x33,0x32,0x12,0x11,0x34,0x02,0x26,0x21,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x35,0x10,0x02,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0xe8,0x7b,0xc7,0x98,0x2f,0x08,0x27, +0x36,0x9e,0xfe,0xe7,0xfe,0xea,0xfe,0xb1,0x01,0x55,0x01,0x26,0xb8,0x01,0x0a,0x3e,0x08,0x24,0x9d,0xd9,0x83,0x01,0x0e,0x01,0x4c,0xaa,0xa8,0xfe,0xed,0xca,0xf6,0x69,0xc2,0x8a,0xcd,0xf3,0x67,0xc5,0xfb,0x52,0xc8,0xf8,0xf4,0xc1,0xdb,0xe5,0xef,0xcd,0x2d,0x3c,0x40,0x2a,0x2b,0x40,0x3d,0x03,0xf6,0x2b,0x3e,0x3f,0x2b,0x2b,0x40,0x3c, +0x18,0x4e,0x9d,0x7b,0x68,0x3d,0xc1,0x01,0x91,0x01,0x44,0x01,0x59,0x01,0x9c,0xbb,0xa6,0x66,0xa8,0x53,0xfe,0x70,0xfe,0xbd,0xfe,0x9f,0xca,0xcc,0x05,0x32,0xfe,0xb7,0xfe,0xfc,0xac,0xfe,0xf5,0x97,0x01,0x2e,0x01,0x1b,0xbb,0x01,0x0a,0x8d,0xfe,0xba,0xfe,0xf7,0xfe,0xf3,0xfe,0xc1,0x01,0x41,0xfe,0x01,0x2f,0x01,0x2d,0xfd,0x56,0x3f, +0x2d,0x30,0x39,0x39,0x30,0x2e,0x3e,0x3b,0x31,0x30,0x39,0x39,0x30,0x2e,0x3e,0x00,0x00,0x05,0x00,0x60,0xff,0xe8,0x06,0xdc,0x04,0x18,0x00,0x1b,0x00,0x28,0x00,0x34,0x00,0x40,0x00,0x4c,0x00,0x4b,0x40,0x28,0x3e,0x83,0x38,0x20,0x83,0x32,0x4a,0x83,0x44,0x38,0x32,0x44,0x44,0x32,0x38,0x03,0x0c,0x19,0x83,0x26,0x2c,0x83,0x0c,0x41, +0x35,0x35,0x47,0x3b,0x3b,0x08,0x1c,0x29,0x95,0x0f,0x10,0x23,0x2f,0x95,0x08,0x16,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0x11,0x33,0x01,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x22,0x26,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x10,0x00, +0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x12,0x17,0x14,0x02,0x03,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x0e, +0x57,0x89,0x6d,0x25,0x04,0x2a,0xbe,0x8c,0x86,0xc6,0x78,0x01,0x08,0xd1,0x84,0xbd,0x29,0x04,0x32,0xc4,0x86,0xca,0xee,0x01,0xfb,0xc9,0x5f,0x86,0x41,0x99,0x8d,0x88,0x94,0x94,0xfc,0x8e,0x85,0xa1,0x9d,0x89,0x84,0x98,0x95,0x8c,0x24,0x34,0x32,0x26,0x23,0x35,0x32,0x02,0xc4,0x25,0x33,0x32,0x26,0x23,0x35,0x32,0x18,0x32,0x66,0x57, +0x71,0x7e,0x7a,0xea,0xa8,0x01,0x0b,0x01,0x19,0x7e,0x70,0x75,0x79,0xfe,0xe2,0xf6,0xf5,0xfe,0xd9,0x03,0xa6,0x6b,0xad,0x78,0xb2,0xda,0xce,0xbe,0xc2,0xce,0xd3,0xc1,0xb5,0xd3,0xc8,0xc9,0xbb,0xd0,0xfe,0x1c,0x38,0x2a,0x2a,0x35,0x33,0x2c,0x29,0x39,0x39,0x29,0x2a,0x35,0x33,0x2c,0x29,0x39,0x00,0x0f,0x00,0x7e,0xff,0xe7,0x05,0xd7, +0x05,0xb3,0x00,0x2a,0x00,0x36,0x00,0x42,0x00,0x4e,0x00,0x5a,0x00,0x66,0x00,0x72,0x00,0x7e,0x00,0x8a,0x00,0x96,0x00,0xa2,0x00,0xae,0x00,0xba,0x00,0xc6,0x00,0xd2,0x01,0x3c,0xb1,0xbe,0x82,0xb8,0x01,0x04,0x40,0x0f,0x0f,0x09,0x07,0x11,0x07,0x58,0x7f,0x52,0x34,0x64,0x7f,0x5e,0x2e,0x5e,0xa6,0xb8,0x01,0x04,0xb4,0xa0,0x16,0x02, +0xca,0x8e,0xb8,0x01,0x04,0x40,0x0d,0x88,0xc4,0x88,0x4c,0x7f,0x46,0x40,0x7c,0x7f,0x76,0x3a,0x76,0xb2,0xb8,0x01,0x04,0xb4,0xac,0x1d,0x26,0x1b,0x28,0xb8,0x01,0x04,0x40,0x1d,0x94,0xd0,0x94,0x70,0x7f,0x6a,0x07,0x52,0x5e,0xa0,0x88,0x46,0x76,0xac,0x94,0x6a,0x6a,0x94,0xac,0x76,0x46,0x88,0xa0,0x5e,0x52,0x07,0x0a,0x0c,0x21,0xbb, +0x01,0x04,0x00,0xb8,0x00,0x9a,0x01,0x04,0xb2,0x0c,0xc7,0xbb,0xb8,0x01,0x05,0x40,0x0c,0x14,0x73,0x5b,0xee,0x61,0x79,0x61,0x8b,0x7f,0x26,0x25,0x09,0xb8,0x01,0x05,0x40,0x0f,0x9d,0xb5,0x9d,0x67,0x43,0x4f,0xee,0x55,0x6d,0x49,0x55,0xcd,0xc1,0xaf,0x97,0xb8,0x01,0x05,0x40,0x2a,0x0f,0x1e,0x1d,0x0f,0x37,0x2b,0xee,0x31,0x3d,0x31, +0x80,0x55,0x01,0x02,0x61,0x7f,0x9d,0xa9,0x55,0xa3,0xc1,0x0f,0x31,0x16,0x16,0x31,0x0f,0xc1,0xa3,0x55,0xa9,0x9d,0x7f,0x61,0x02,0x0b,0x04,0x18,0x14,0x04,0x91,0x85,0xb8,0x01,0x05,0xb2,0x00,0x04,0x13,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x5d,0x11,0x33,0x10, +0xed,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x11,0x33,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xfd,0x32,0xcd,0x32,0x10,0xed,0x11,0x33, +0x10,0xed,0x32,0x10,0xed,0x11,0x33,0x10,0xfd,0x32,0xcd,0x32,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x11,0x33,0x10,0xcd,0x32,0xed,0x32,0x31,0x30,0x05,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x37,0x32,0x16,0x15, +0x14,0x06,0x07,0x23,0x27,0x16,0x15,0x14,0x06,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x22,0x26,0x35,0x34,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34, +0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03,0xe2,0x8f,0x45,0x45,0x8b,0x78,0x94,0x27,0x65,0x76,0x74,0x66,0x26,0x91, +0x7e,0x8a,0x43,0x47,0x8f,0x7a,0x88,0x23,0x1c,0x6f,0x89,0x80,0x6e,0x13,0x14,0x24,0x89,0xfd,0xdc,0x1d,0x2c,0x2b,0x1e,0x1f,0x2d,0x2b,0x01,0x83,0x1d,0x2c,0x2c,0x1d,0x1e,0x2e,0x2b,0xd5,0x1d,0x2c,0x2c,0x1d,0x1d,0x2f,0x2c,0xfe,0x3c,0x1d,0x2d,0x2d,0x1d,0x1e,0x2e,0x2c,0x94,0x1d,0x2c,0x2d,0x1c,0x1e,0x2e,0x2b,0x02,0x73,0x1d,0x2c, +0x2c,0x1d,0x20,0x2b,0x2b,0xfe,0xf0,0x1d,0x2c,0x2b,0x1e,0x1e,0x2e,0x2b,0xfe,0x3b,0x46,0x54,0x56,0x48,0x4b,0x4f,0x4f,0x01,0x55,0x47,0x54,0x57,0x48,0x49,0x51,0x50,0xfd,0x5a,0x47,0x54,0x56,0x49,0x48,0x51,0x50,0x01,0x57,0x47,0x54,0x55,0x4a,0x48,0x51,0x51,0x01,0x58,0x46,0x55,0x56,0x48,0x49,0x51,0x4e,0xfd,0x1d,0x46,0x54,0x56, +0x48,0x49,0x51,0x50,0x01,0x56,0x47,0x54,0x56,0x49,0x49,0x51,0x50,0x19,0x65,0x65,0x9e,0x84,0x60,0x44,0x0f,0x99,0x76,0x77,0x9b,0x11,0x41,0x5d,0x86,0xa1,0x66,0x66,0x9e,0x8a,0x5c,0x41,0x02,0x9f,0x87,0x80,0x98,0x07,0x01,0x44,0x60,0x83,0x9e,0x04,0x5f,0x2a,0x25,0x22,0x2b,0x28,0x25,0x22,0x2d,0x2b,0x24,0x24,0x29,0x28,0x25,0x22, +0x2d,0xfe,0x3e,0x2a,0x26,0x24,0x29,0x27,0x26,0x22,0x2e,0x2b,0x25,0x22,0x2b,0x28,0x25,0x23,0x2d,0xfe,0x3f,0x2b,0x24,0x25,0x28,0x28,0x25,0x22,0x2d,0x01,0xc1,0x2c,0x24,0x23,0x2a,0x2a,0x23,0x23,0x2d,0xfe,0x3f,0x2b,0x24,0x22,0x2b,0x27,0x26,0x22,0x2d,0x01,0x09,0x69,0x59,0x5a,0x65,0x66,0x5a,0x5a,0x67,0x6a,0x59,0x59,0x65,0x64, +0x5c,0x5c,0x65,0x01,0xc2,0x6a,0x58,0x58,0x67,0x64,0x5b,0x5d,0x65,0x69,0x59,0x5a,0x65,0x63,0x5c,0x5f,0x63,0x6a,0x58,0x5a,0x65,0x64,0x5c,0x59,0x68,0x01,0xc2,0x69,0x5a,0x5a,0x65,0x64,0x5c,0x5b,0x67,0x6a,0x59,0x5a,0x65,0x64,0x5c,0x5c,0x66,0x00,0x00,0x01,0xfe,0xc2,0x04,0xd3,0x01,0x3e,0x05,0x87,0x00,0x0f,0x00,0x1a,0x40,0x0a, +0x0b,0x0c,0x03,0x04,0x00,0x40,0x07,0x80,0x0c,0x04,0x00,0x2f,0x33,0x1a,0xdd,0x1a,0xc9,0x01,0x2f,0xc9,0x2f,0xc9,0x31,0x30,0x03,0x22,0x15,0x15,0x23,0x35,0x34,0x33,0x21,0x32,0x15,0x15,0x23,0x35,0x34,0x23,0x70,0x42,0x8c,0x7a,0x01,0x88,0x7a,0x8b,0x42,0x05,0x20,0x31,0x1c,0x2e,0x86,0x88,0x2c,0x1c,0x31,0x00,0x00,0x08,0x00,0x6f, +0xfe,0xb6,0x07,0x72,0x05,0xf8,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x3b,0x00,0x47,0x00,0x53,0x00,0x5f,0x00,0x39,0x40,0x1b,0x35,0x59,0x5b,0x37,0x5b,0x29,0x4d,0x4f,0x2b,0x4f,0x1d,0x41,0x43,0x1f,0x43,0x5b,0x4f,0x43,0x43,0x4f,0x5b,0x03,0x07,0x11,0x13,0x05,0x07,0x00,0x2f,0xce,0x2f,0xce,0x12,0x17,0x39,0x2f,0x2f,0x2f, +0x11,0x33,0x10,0xce,0x32,0x11,0x33,0x10,0xce,0x32,0x11,0x33,0x10,0xce,0x32,0x31,0x30,0x01,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x03,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x01,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x13,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37, +0x33,0x01,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x01,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x01,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x13,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x04,0x1d,0x7e,0x60,0x4a,0x4b,0x5f,0x7e,0x88,0x60,0x54,0x53,0x60,0x87,0x7e, +0x60,0x4a,0x4b,0x5f,0x7e,0x88,0x60,0x54,0x53,0x60,0x01,0xa4,0x7d,0x5f,0x4b,0x4a,0x60,0x7f,0x88,0x60,0x53,0x54,0x60,0x1c,0x7e,0x60,0x4a,0x4b,0x5f,0x7e,0x88,0x60,0x54,0x53,0x60,0xfe,0xdf,0x7d,0x5f,0x4b,0x4a,0x60,0x7f,0x88,0x60,0x53,0x54,0x60,0xfb,0x1c,0x7d,0x5f,0x4b,0x4a,0x60,0x7f,0x88,0x60,0x53,0x54,0x60,0xfe,0xd4,0x7e, +0x60,0x4a,0x4b,0x5f,0x7e,0x88,0x60,0x54,0x53,0x60,0x27,0x7d,0x5f,0x4b,0x4a,0x60,0x7f,0x88,0x60,0x53,0x54,0x60,0x05,0x30,0xba,0x7c,0x7c,0xba,0xc8,0x89,0x89,0xf9,0x78,0xba,0x7b,0x7b,0xba,0xc7,0x88,0x88,0x04,0x63,0xba,0x7c,0x7c,0xba,0xc8,0x89,0x89,0xfc,0xee,0xb9,0x7b,0x7b,0xb9,0xc8,0x88,0x88,0xfc,0xed,0xba,0x7c,0x7c,0xba, +0xc8,0x89,0x89,0x03,0xcd,0xba,0x7c,0x7c,0xba,0xc8,0x89,0x89,0xfc,0xee,0xb9,0x7b,0x7b,0xb9,0xc8,0x88,0x88,0xfc,0xed,0xba,0x7c,0x7c,0xba,0xc8,0x89,0x89,0x00,0x02,0x01,0x13,0xfe,0x52,0x06,0xce,0x06,0x5b,0x00,0x07,0x00,0x0f,0x00,0x40,0xb1,0x05,0x0b,0xb8,0x01,0x04,0xb3,0x06,0x08,0x01,0x0f,0xb8,0x01,0x04,0x40,0x0c,0x02,0x0c, +0x0d,0x09,0x02,0x06,0x09,0x06,0x09,0x06,0x07,0x0b,0xbc,0x01,0x05,0x00,0x08,0x00,0x04,0x01,0x05,0x00,0x07,0x00,0x2f,0xed,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0xed,0x32,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x11,0x23,0x19,0x02,0x33,0x11,0x21,0x11,0x33,0x11,0x06,0xce,0x60, +0xfb,0x09,0x64,0x64,0x04,0xf7,0x60,0x06,0x5b,0xfe,0x26,0x01,0x80,0xfe,0x80,0x01,0xda,0xf7,0xf7,0x01,0xda,0xfe,0x80,0x01,0x80,0xfe,0x26,0x00,0x00,0x0a,0x00,0x26,0xfe,0x52,0x07,0xbb,0x06,0x5b,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0xae,0xb3,0x28,0x10,0x14, +0x2f,0xb8,0x01,0x04,0xb3,0x2c,0x0b,0x07,0x0f,0xb8,0x01,0x04,0xb4,0x0c,0x04,0x00,0x0c,0x1b,0xb8,0x01,0x04,0x40,0x1f,0x18,0x25,0x1d,0x21,0x14,0x2c,0x02,0x0c,0x09,0x18,0x21,0x21,0x18,0x09,0x0c,0x02,0x2c,0x14,0x07,0x11,0x24,0x20,0x1c,0x29,0x15,0x11,0x19,0x0d,0x2d,0x22,0x16,0xb8,0x01,0x05,0xb4,0x15,0x21,0x15,0x26,0x2a,0xb8, +0x01,0x05,0xb4,0x29,0x25,0x29,0x1e,0x12,0xb8,0x01,0x05,0x40,0x12,0x11,0x1d,0x11,0x2d,0x15,0x29,0x11,0x11,0x29,0x15,0x2d,0x04,0x03,0x18,0x0c,0x2c,0x0a,0x02,0xb8,0x01,0x05,0xb1,0x07,0x03,0x00,0x2f,0x33,0xed,0x32,0x2f,0x33,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33, +0x10,0xed,0x32,0x11,0x33,0x33,0x01,0x2f,0x33,0x33,0x2f,0x33,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x10,0xed,0x11,0x33,0x33,0x31,0x30,0x01,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x03,0x11,0x33,0x11,0x01,0x21,0x35,0x21,0x11,0x21, +0x35,0x21,0x01,0x11,0x33,0x11,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x05,0x21,0x35,0x21,0x13,0x11,0x33,0x11,0x03,0xbd,0xc0,0xc0,0x64,0xb6,0xb6,0x64,0x64,0xfd,0xd5,0xfe,0x30,0x01,0xd0,0xfe,0x30,0x01,0xd0,0x03,0x61,0x64,0x02,0x00,0xfe,0x30,0x01,0xd0,0xfe,0x30,0x01,0xd0,0xfe,0x30,0x01,0xd0,0xfa,0x3b, +0xfe,0x30,0x01,0xd0,0x2d,0x64,0x04,0x8b,0xb6,0x64,0xb6,0xb6,0x64,0xb6,0xf9,0xc7,0x01,0xd0,0xfe,0x30,0x05,0x6c,0x64,0xfc,0x68,0x64,0xfd,0x64,0x01,0xd0,0xfe,0x30,0x05,0x6c,0x64,0xfc,0x68,0x64,0x01,0x36,0x64,0x64,0x64,0xfb,0xca,0x01,0xd0,0xfe,0x30,0x00,0x00,0x02,0x00,0x7d,0x02,0xaf,0x03,0x54,0x05,0xeb,0x00,0x0b,0x00,0x17, +0x00,0x64,0xb2,0x16,0x0c,0x17,0xb8,0x01,0x00,0xb5,0x00,0x14,0x0e,0x12,0x10,0x06,0xb8,0x01,0x00,0x40,0x23,0x11,0x00,0x0e,0x11,0x11,0x0e,0x00,0x03,0x01,0x07,0x05,0x0b,0x01,0x0f,0x0c,0x0b,0x08,0x0b,0x13,0x16,0x01,0x04,0x01,0x0e,0x09,0x0b,0x14,0x01,0x0b,0x01,0x0b,0x01,0x03,0x09,0x03,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f, +0x11,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x32,0x01,0x2f,0x33,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xfd,0xc5,0x32,0x11,0x33,0x10,0xed,0xc5,0x32,0x31,0x30,0x13,0x27,0x33,0x37,0x17,0x33,0x07,0x17,0x23,0x07,0x27,0x23,0x37,0x33,0x17,0x37,0x33,0x27,0x37,0x23,0x27,0x07,0x23,0x17,0xfa,0x7d, +0xf9,0x73,0x74,0xf7,0x7c,0x7c,0xf8,0x73,0x73,0xf7,0x69,0xb1,0x50,0x50,0xb0,0x58,0x58,0xb0,0x50,0x51,0xb0,0x58,0x04,0x4e,0xd5,0xc8,0xc8,0xd6,0xd6,0xc8,0xc8,0x3d,0x8b,0x8b,0x99,0x99,0x8b,0x8b,0x99,0x00,0x00,0x01,0xfe,0x9c,0x04,0xc2,0x01,0x64,0x05,0xf2,0x00,0x0d,0x00,0x13,0xb6,0x0a,0x04,0x0a,0x04,0x80,0x00,0x07,0x00,0x2f, +0xc9,0x1a,0xcd,0x32,0x01,0x2f,0x2f,0x31,0x30,0x03,0x32,0x36,0x37,0x33,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x01,0x4e,0x6c,0x09,0xa2,0x0f,0xc2,0x97,0x9c,0xbb,0x09,0xa2,0x12,0xae,0x05,0x36,0x67,0x55,0x8c,0xa4,0xa5,0x8b,0xbc,0x00,0x01,0xff,0x33,0x04,0x80,0x00,0xce,0x05,0xbe,0x00,0x12,0x00,0x26,0x40,0x10,0x01,0x01, +0x06,0x11,0x00,0x00,0x09,0x06,0x0c,0x40,0x03,0x03,0x10,0x08,0x80,0x00,0x00,0x2f,0x1a,0xcc,0x32,0x39,0x2f,0x1a,0xc9,0x01,0x2f,0xd9,0xc0,0x2f,0x2f,0x12,0x39,0x2f,0x31,0x30,0x13,0x37,0x06,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x33,0x03,0x0e,0x1b,0x41,0x35,0x39,0x47,0x76,0x1c,0x1f,0x1d,0x27, +0x15,0x18,0x79,0x46,0x04,0x80,0x77,0x1f,0x46,0x48,0x58,0x3c,0x26,0x21,0x0e,0x09,0x6c,0xfe,0xc2,0x00,0x00,0x01,0x00,0xfc,0x04,0xc2,0x03,0xc4,0x05,0xf2,0x00,0x0d,0x00,0x11,0xb5,0x0a,0x04,0x00,0x07,0x0a,0x04,0x00,0x2f,0x33,0x2f,0xc9,0x01,0x2f,0x2f,0x31,0x30,0x01,0x32,0x36,0x37,0x33,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16, +0x33,0x02,0x5f,0x4e,0x6c,0x09,0xa2,0x0f,0xc2,0x97,0x9c,0xbb,0x09,0xa2,0x12,0xae,0x05,0x36,0x67,0x55,0x8c,0xa4,0xa5,0x8b,0xbc,0x00,0x00,0x01,0x01,0x33,0x04,0x80,0x02,0xce,0x05,0xbe,0x00,0x12,0x00,0x26,0x40,0x10,0x01,0x01,0x06,0x11,0x00,0x00,0x09,0x06,0x0c,0x40,0x03,0x03,0x10,0x08,0x80,0x00,0x00,0x2f,0x1a,0xcc,0x32,0x39, +0x2f,0x1a,0xc9,0x01,0x2f,0xd9,0xc0,0x2f,0x2f,0x12,0x39,0x2f,0x31,0x30,0x01,0x37,0x06,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x33,0x03,0x02,0x0f,0x1a,0x41,0x35,0x39,0x47,0x76,0x1c,0x1f,0x1e,0x26,0x15,0x18,0x79,0x46,0x04,0x80,0x77,0x1f,0x46,0x48,0x58,0x3c,0x26,0x21,0x0e,0x09,0x6c,0xfe,0xc2, +0x00,0x02,0x00,0x0f,0xfe,0x7f,0x05,0x48,0x06,0xa2,0x00,0x10,0x00,0x16,0x00,0x42,0x40,0x22,0x15,0x03,0x0c,0x7f,0x09,0x0e,0x7e,0x16,0x09,0x16,0x09,0x16,0x00,0x03,0x7f,0x04,0x10,0x7f,0x00,0x0a,0x0c,0x00,0x04,0x02,0x12,0x91,0x0c,0x03,0x0e,0x15,0x05,0x91,0x02,0x12,0x00,0x3f,0xed,0x32,0x32,0x3f,0xed,0x10,0xcd,0x32,0x10,0xcd, +0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xc4,0x31,0x30,0x01,0x11,0x21,0x11,0x23,0x11,0x33,0x12,0x12,0x11,0x35,0x33,0x11,0x21,0x11,0x33,0x11,0x01,0x21,0x06,0x02,0x07,0x21,0x04,0xad,0xfb,0xfd,0x9b,0x6f,0xa4,0xc2,0x90,0x02,0x13,0xc1,0xfe,0x97,0xfe,0x94,0x11,0xb6,0x78,0x02,0xab,0xfe,0x7f, +0x01,0x81,0xfe,0x7f,0x02,0x19,0x01,0x31,0x02,0xdb,0x01,0x11,0xed,0xfe,0xf8,0xfa,0xfe,0xfd,0xe7,0x06,0x83,0xf6,0xfd,0x7c,0xf0,0x00,0x00,0x02,0x00,0x12,0xfe,0x8b,0x04,0x23,0x05,0x0e,0x00,0x10,0x00,0x15,0x00,0x40,0x40,0x21,0x14,0x0c,0xed,0x09,0x0e,0x84,0x15,0x09,0x15,0x09,0x15,0x00,0x03,0xed,0x04,0x10,0xed,0x00,0x0a,0x0c, +0x00,0x04,0x02,0x12,0x95,0x0c,0x0f,0x0e,0x14,0x05,0x95,0x02,0x15,0x00,0x3f,0xed,0x32,0x32,0x3f,0xed,0x10,0xcd,0x32,0x10,0xcd,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0xc4,0x31,0x30,0x01,0x11,0x21,0x11,0x23,0x11,0x33,0x36,0x12,0x11,0x35,0x33,0x11,0x21,0x11,0x33,0x11,0x01,0x23,0x02,0x03,0x21, +0x03,0x98,0xfd,0x06,0x8c,0x5c,0x88,0x81,0x90,0x01,0x84,0x98,0xfe,0xc4,0xe3,0x20,0xc9,0x01,0xcc,0xfe,0x8b,0x01,0x75,0xfe,0x8b,0x02,0x00,0xcf,0x01,0xad,0x01,0x15,0xf2,0xfe,0xf2,0xfc,0x8b,0xfe,0x00,0x04,0xea,0xfe,0x4d,0xfe,0xc9,0x00,0x00,0x01,0x00,0x79,0xfe,0x29,0x03,0xde,0x05,0xb2,0x00,0x22,0x00,0x28,0x40,0x15,0x22,0x16, +0x7d,0x0b,0x11,0x1d,0x7d,0x05,0x11,0x16,0x05,0x00,0x04,0x0e,0x02,0x91,0x20,0x13,0x91,0x0e,0x04,0x00,0x3f,0xed,0x2f,0xed,0x12,0x17,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0xed,0xc4,0x31,0x30,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x02, +0x15,0x14,0x04,0x23,0x22,0x27,0x79,0xb7,0xca,0x93,0xa1,0x87,0xc8,0xbf,0xa5,0x01,0x0f,0xe3,0xa5,0x90,0x9e,0xa8,0x88,0xa9,0xa3,0x95,0x98,0x9b,0x48,0xfe,0xf6,0xf4,0xcc,0x9b,0xbf,0x81,0xa4,0x94,0x7d,0xbf,0x8b,0x83,0xff,0x9e,0xd4,0xff,0x33,0xbd,0x58,0xa9,0x89,0x7f,0xd0,0x5e,0x61,0xa0,0xb7,0x76,0xe7,0xfd,0x52,0x00,0x00,0x01, +0x00,0x67,0xfe,0x29,0x03,0x0f,0x04,0x18,0x00,0x23,0x00,0x29,0x40,0x16,0x23,0x18,0x83,0x0c,0x13,0x1e,0x83,0x06,0x13,0x18,0x06,0x00,0x04,0x10,0x03,0x95,0x21,0x1b,0x15,0x95,0x10,0x10,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0xed,0xc4,0x31,0x30,0x17,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x26, +0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x67,0x3d,0x9b,0x50,0x64,0x74,0x6d,0x7d,0x8e,0x85,0x61,0xb3,0x74,0x8e,0x60,0x72,0x88,0x63,0x71,0x62,0x76,0xa0,0x85,0xda,0xbb,0x9b,0x77,0xea,0x2e,0x35,0x7c,0x74,0x5d,0x93,0x4b,0x53,0xd5,0x8d,0x70, +0xb3,0x62,0x2e,0xa6,0x4a,0x81,0x72,0x63,0x90,0x48,0x63,0xc3,0x83,0xb5,0xd9,0x3d,0x00,0x01,0x00,0x60,0xff,0xe8,0x08,0x9a,0x05,0xb2,0x00,0x34,0x00,0x72,0x40,0x3e,0x28,0x7d,0x1d,0x2b,0x08,0x7d,0x06,0x15,0x2f,0x03,0x7e,0x04,0x2c,0x04,0x22,0x18,0x1d,0x15,0x04,0x33,0x32,0x32,0x33,0x04,0x15,0x1d,0x18,0x22,0x07,0x0e,0x34,0x0e, +0x33,0x2f,0x02,0x2f,0x02,0x06,0x18,0x92,0x2b,0x0f,0x04,0x22,0x2d,0x19,0x19,0x04,0x31,0x2d,0x03,0x20,0x92,0x25,0x04,0x12,0x92,0x0c,0x13,0x00,0x04,0x12,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x33,0xed,0x32,0x32,0x33,0x11,0x12,0x39,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f, +0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xcd,0xed,0xc4,0x10,0xed,0x31,0x30,0x21,0x01,0x23,0x11,0x23,0x11,0x21,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x21,0x11,0x33,0x11, +0x33,0x01,0x33,0x01,0x01,0x07,0xb0,0xfd,0xd7,0x2b,0xa8,0xfe,0x9d,0x91,0x7c,0xed,0xa2,0xf6,0x81,0x55,0xc7,0x61,0x9e,0xb4,0xfe,0x8b,0x95,0x89,0x9f,0xaf,0x94,0x7c,0xb9,0xa5,0xa3,0xc9,0xcc,0xea,0x54,0x45,0x01,0x9d,0xa8,0x2b,0x02,0x17,0xd1,0xfd,0xa1,0x02,0x8a,0x02,0xa0,0xfd,0x60,0x02,0xa0,0x5f,0xab,0x80,0xc3,0x6b,0x54,0xb6, +0x40,0x3b,0x96,0x7f,0x01,0x14,0x8b,0x8c,0x7c,0x6f,0x7f,0x71,0xaa,0x58,0xbf,0xa1,0x64,0x9a,0x29,0x02,0x6f,0xfd,0x91,0x02,0x6f,0xfd,0x59,0xfd,0x0d,0x00,0x00,0x01,0x00,0x50,0xff,0xe7,0x07,0x39,0x04,0x19,0x00,0x31,0x00,0x6f,0x40,0x3c,0x30,0x1d,0x84,0x13,0x20,0x00,0x84,0x0b,0x24,0x2d,0x84,0x2e,0x21,0x2e,0x0e,0x13,0x0b,0x2e, +0x28,0x27,0x27,0x28,0x2e,0x0b,0x13,0x0e,0x06,0x05,0x29,0x18,0x05,0x28,0x2c,0x24,0x24,0x2c,0x30,0x0e,0x95,0x20,0x06,0x2e,0x18,0x0f,0x0f,0x22,0x2a,0x2e,0x15,0x26,0x22,0x0f,0x16,0x95,0x1b,0x10,0x09,0x95,0x03,0x16,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x39,0x12,0x39,0x33,0xed,0x32,0x32,0x33,0x11,0x12, +0x39,0x01,0x2f,0x33,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0xcd,0x10,0xfd,0xc4,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x16,0x33,0x20,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x14,0x06,0x07,0x21,0x11,0x33,0x11, +0x33,0x01,0x33,0x01,0x01,0x23,0x01,0x23,0x11,0x23,0x11,0x21,0x16,0x03,0x3b,0xe0,0xc8,0xde,0x65,0x3a,0xab,0x54,0x01,0x0f,0xfe,0xd7,0x65,0x60,0x84,0x81,0x76,0x6a,0x95,0x96,0xa1,0x97,0x01,0x76,0x35,0x2c,0x01,0x36,0xa4,0x2a,0x01,0x88,0xd7,0xfe,0x29,0x01,0xfc,0xe6,0xfe,0x62,0x2a,0xa4,0xfe,0xf6,0x5e,0x01,0x19,0x8c,0xa6,0x36, +0xa1,0x23,0x28,0xac,0xaa,0x8b,0x4f,0x53,0x46,0x51,0x4b,0x99,0x3e,0xfe,0xed,0x3f,0x53,0x20,0x01,0xac,0xfe,0x54,0x01,0xac,0xfe,0x16,0xfd,0xea,0x01,0xc9,0xfe,0x37,0x01,0xc9,0x40,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x06,0xc6,0x05,0x9a,0x00,0x20,0x00,0x38,0x40,0x1c,0x19,0x7e,0x16,0x14,0x14,0x00,0x0f,0x7e,0x0c,0x20,0x7e,0x1d, +0x00,0x1b,0x11,0x91,0x03,0x01,0x05,0x0d,0x09,0x09,0x1e,0x17,0x0d,0x03,0x00,0x12,0x00,0x3f,0x3f,0x33,0x33,0x39,0x2f,0x12,0x39,0x39,0x33,0xed,0x32,0x01,0x2f,0x33,0xed,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x21,0x11,0x06,0x23,0x22,0x27,0x0e,0x02,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x37,0x26,0x35, +0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x11,0x06,0x1e,0xc3,0xa9,0xc3,0x5b,0x68,0x79,0x7c,0x41,0x9f,0xb1,0xa8,0xc9,0x4d,0xba,0x4d,0x09,0xa8,0xc9,0x96,0xb5,0xa8,0x02,0x85,0x79,0x95,0x3f,0x36,0x20,0xc1,0xad,0x02,0x20,0xfd,0xf2,0xec,0x42,0x32,0x2f,0x3c,0x02,0x1b,0xfd,0xed,0xe7,0x6e,0x02,0x8c,0xfa,0x66,0x00,0x00,0x01, +0x00,0x98,0x00,0x00,0x06,0x3b,0x04,0x00,0x00,0x20,0x00,0x3c,0x40,0x1e,0x19,0xef,0x14,0x16,0x14,0x16,0x14,0x00,0x0f,0x84,0x0c,0x20,0x84,0x1d,0x00,0x1b,0x11,0xec,0x04,0x01,0x07,0x0d,0x0a,0x0a,0x1e,0x17,0x0d,0x0f,0x00,0x15,0x00,0x3f,0x3f,0x33,0x33,0x39,0x2f,0x12,0x39,0x39,0x33,0xed,0x32,0x01,0x2f,0x33,0xed,0x2f,0xed,0x12, +0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x21,0x11,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x37,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x11,0x05,0x98,0x46,0x9a,0x5a,0x60,0x8d,0x22,0x90,0x98,0x49,0xfe,0xba,0xa4,0xb4,0x59,0x98,0x43,0x0c,0xa3,0xb5,0x8b,0x9d, +0xa3,0x01,0x9c,0x27,0x3b,0x43,0x3c,0x4f,0x30,0x01,0x6c,0x01,0x5a,0xfe,0xaf,0xe2,0x38,0x24,0x32,0x4b,0x01,0x5a,0xfe,0xae,0xe1,0x56,0x01,0xdd,0xfc,0x00,0x00,0x02,0x00,0x0f,0xfe,0x38,0x05,0xda,0x05,0x9a,0x00,0x29,0x00,0x2f,0x00,0x4c,0x40,0x27,0x2e,0x13,0x7f,0x14,0x08,0x1b,0x7e,0x29,0x2f,0x1e,0x7f,0x0e,0x2f,0x0e,0x2f,0x0e, +0x05,0x14,0x21,0x24,0x7f,0x05,0x2b,0x91,0x19,0x03,0x21,0x09,0x08,0x08,0x03,0x27,0x2e,0x1b,0x15,0x91,0x14,0x12,0x12,0x00,0x3f,0xcd,0xed,0x32,0x32,0xc4,0x32,0x39,0x2f,0x33,0x33,0x3f,0xed,0x01,0x2f,0xfd,0xcd,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xc4,0xfd,0xc4,0x10,0xfd,0xc4,0x31,0x30,0x01,0x16,0x16,0x33,0x32,0x35, +0x34,0x23,0x23,0x35,0x17,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x23,0x11,0x33,0x12,0x12,0x13,0x21,0x11,0x33,0x32,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x03,0x21,0x06,0x02,0x07,0x21,0x04,0x2a,0x24,0x60,0x1e,0x7d,0x89,0x47,0x20,0x20,0x3b,0x42,0x3c,0x40,0xfb,0xf0,0x9b,0x6f,0x92,0xc7,0x0d,0x02, +0xa3,0x47,0xf9,0x36,0x28,0x32,0x3f,0x85,0x77,0x68,0x4b,0x4c,0xfe,0x94,0x0f,0xb1,0x7f,0x02,0xab,0xfe,0xc7,0x0e,0x12,0x43,0x3a,0x69,0x01,0x21,0x1b,0x1f,0x19,0xfe,0x7f,0x02,0x19,0x01,0x0a,0x02,0xc6,0x01,0x32,0xfa,0xec,0xa6,0x33,0x41,0x0b,0x0c,0x45,0x34,0x4e,0x56,0x1a,0x06,0xb0,0xef,0xfd,0x83,0xfe,0x00,0x00,0x02,0x00,0x12, +0xfe,0x38,0x04,0xcb,0x04,0x00,0x00,0x2a,0x00,0x30,0x00,0x54,0x40,0x0a,0x2f,0x13,0xed,0x14,0x08,0x1c,0x84,0x2a,0x30,0x1f,0xb8,0x01,0x2e,0x40,0x09,0x0e,0x30,0x0e,0x30,0x0e,0x05,0x14,0x22,0x25,0xb8,0x01,0x2e,0x40,0x12,0x05,0x2c,0x95,0x1a,0x0f,0x22,0x09,0x08,0x08,0x03,0x28,0x2f,0x1c,0x15,0x95,0x14,0x12,0x15,0x00,0x3f,0xcd, +0xed,0x32,0x32,0xc4,0x32,0x39,0x2f,0x33,0x33,0x3f,0xed,0x01,0x2f,0xfd,0xcd,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xc4,0xfd,0xc4,0x10,0xfd,0xc4,0x31,0x30,0x01,0x16,0x16,0x33,0x32,0x35,0x34,0x23,0x23,0x35,0x17,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x23,0x11,0x33,0x36,0x12,0x35,0x35,0x21,0x11,0x33,0x32,0x15, +0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x03,0x23,0x06,0x02,0x07,0x21,0x03,0x1b,0x17,0x6d,0x1e,0x7d,0x89,0x47,0x20,0x20,0x3a,0x43,0x3c,0x36,0xfc,0xe9,0x8c,0x5b,0x80,0x8a,0x02,0x14,0x34,0xf9,0x36,0x28,0x30,0x41,0x87,0x75,0x68,0x4b,0x35,0xe3,0x0a,0x73,0x6d,0x01,0xcd,0xfe,0xc7,0x0a,0x16,0x43,0x3a,0x69,0x01, +0x20,0x1c,0x1f,0x19,0xfe,0x8b,0x02,0x00,0xb6,0x01,0xc8,0xea,0x0d,0xfc,0x87,0xa7,0x34,0x40,0x0b,0x0c,0x45,0x34,0x4e,0x56,0x1a,0x05,0x23,0xbc,0xfe,0x80,0xae,0x00,0x00,0x01,0x00,0x29,0xfe,0x66,0x05,0x3d,0x05,0x9a,0x00,0x1e,0x00,0x39,0x40,0x1d,0x13,0x0b,0xad,0x0c,0x1e,0x1e,0x05,0x0e,0x18,0x7d,0x11,0x05,0x0a,0x91,0x13,0x13, +0x0c,0x12,0x0e,0x91,0x0f,0x03,0x00,0x0c,0x02,0x91,0x1c,0x0c,0x12,0x00,0x3f,0xd4,0xed,0x11,0x39,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0xc4,0xed,0x2f,0x12,0x39,0x2f,0x33,0xe4,0x32,0x31,0x30,0x05,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x32,0x04,0x12,0x15, +0x14,0x02,0x06,0x23,0x22,0x27,0x01,0xc8,0xa2,0x9c,0xba,0xcd,0x76,0xda,0x8d,0x42,0xa8,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x4a,0xc1,0x01,0x26,0x9e,0x89,0xff,0xab,0xaa,0x98,0x96,0x6c,0xde,0xcc,0x94,0xe8,0x7e,0xfd,0x5e,0x05,0x02,0x98,0x98,0xfe,0x38,0xa2,0xfe,0xd6,0xc0,0xab,0xfe,0xf5,0x92,0x4c,0x00,0x00,0x01,0x00,0x1e,0xfe,0x66, +0x04,0x56,0x04,0x00,0x00,0x1d,0x00,0x39,0x40,0x1d,0x12,0x0a,0x84,0x1d,0x0b,0x0b,0x05,0x0d,0x16,0x83,0x10,0x05,0x09,0x95,0x12,0x12,0x0b,0x11,0x0d,0x95,0x0e,0x0f,0x00,0x0b,0x02,0x95,0x1a,0x0b,0x15,0x00,0x3f,0xd4,0xed,0x11,0x39,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0xc4,0xed,0x2f,0x12,0x39,0x2f,0xc4,0xed,0x32,0x31, +0x30,0x05,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x32,0x00,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x27,0x01,0x52,0x79,0x87,0xa5,0xb7,0xd9,0xbf,0x20,0xa4,0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0x42,0xf7,0x01,0x27,0x81,0xeb,0x9a,0x4c,0x6c,0x46,0xc0,0x4e,0xb9,0xab,0xb9,0xd7,0xfe, +0x1a,0x03,0x74,0x8c,0x8c,0xff,0x00,0xfe,0xde,0xfa,0x8e,0xe5,0x7f,0x16,0x24,0x00,0x00,0x01,0x00,0x29,0xff,0xe8,0x04,0x0c,0x05,0x9a,0x00,0x11,0x00,0x23,0x40,0x11,0x0c,0x7e,0x05,0x00,0x05,0x00,0x09,0x07,0x0b,0x07,0x91,0x08,0x03,0x0f,0x92,0x02,0x13,0x00,0x3f,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0xed,0x31, +0x30,0x25,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x03,0x83,0x3c,0x57,0x95,0x95,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x52,0x56,0x44,0x29,0x01,0x19,0xa3,0xac,0x03,0xcb,0x98,0x98,0xfc,0x53,0x78,0x66,0x1d,0x00,0x01,0x00,0x1e,0xff,0xe8,0x03,0x29,0x04,0x00,0x00,0x10,0x00,0x23,0x40,0x11, +0x0b,0x84,0x04,0x00,0x04,0x00,0x08,0x06,0x0a,0x06,0x95,0x07,0x0f,0x0e,0x95,0x02,0x16,0x00,0x3f,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x25,0x06,0x23,0x20,0x11,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x03,0x0c,0x34,0x58,0xfe,0xd2,0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0x55,0x53, +0x45,0x29,0x01,0x19,0x01,0x50,0x02,0x3c,0x8c,0x8c,0xfd,0xdd,0x78,0x67,0x1d,0x00,0x00,0x01,0x00,0xae,0xfe,0x29,0x05,0xbd,0x05,0x9a,0x00,0x26,0x00,0x40,0x40,0x12,0x26,0x17,0x7e,0x14,0x14,0x0c,0x13,0x03,0x7f,0x10,0x21,0x1a,0x7f,0x0c,0x15,0x11,0x03,0x24,0xb8,0x01,0x05,0xb3,0x00,0x00,0x10,0x07,0xb8,0x01,0x05,0xb5,0x1e,0x17, +0x13,0x91,0x10,0x12,0x00,0x3f,0xed,0x32,0xd4,0xed,0x12,0x39,0x2f,0xed,0x3f,0x33,0x01,0x2f,0xed,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0xc4,0x31,0x30,0x05,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x21,0x32,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x16,0x16,0x15,0x14,0x04,0x21,0x21,0x22,0x26,0x35, +0x34,0x36,0x33,0x21,0x15,0x01,0xd0,0x45,0x4e,0x88,0x8b,0x0f,0x01,0x32,0x93,0xb4,0x51,0x74,0x68,0xfc,0x6f,0xa8,0x02,0xe6,0xa8,0x63,0x68,0xff,0x00,0xfe,0xf0,0xfe,0x9a,0xd3,0xc6,0x8b,0x93,0x02,0x5a,0xd8,0x23,0x21,0x30,0x24,0x2c,0x51,0x4e,0x51,0x54,0x05,0x9a,0xfa,0xfe,0x05,0x02,0xfa,0xf8,0x22,0x92,0x69,0xab,0xa1,0x56,0x63, +0x4e,0x5d,0x65,0x00,0x00,0x01,0x00,0x8f,0xfe,0x29,0x04,0xc6,0x04,0x00,0x00,0x24,0x00,0x44,0x40,0x10,0x11,0x84,0x0e,0x24,0x15,0x84,0x12,0x0e,0x12,0x0e,0x12,0x0a,0x03,0xed,0x1f,0x18,0xb8,0x01,0x2e,0x40,0x10,0x0a,0x22,0x00,0x00,0x0e,0x06,0x1c,0x1b,0x13,0x0f,0x0f,0x15,0x11,0x95,0x0e,0x15,0x00,0x3f,0xed,0x32,0x3f,0x33,0x3f, +0xcd,0x12,0x39,0x2f,0xcd,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0xc4,0x10,0xed,0x31,0x30,0x05,0x22,0x06,0x15,0x14,0x16,0x33,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x16,0x16,0x15,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x15,0x01,0x9a,0x3c,0x44,0x78, +0x6c,0xc3,0xc3,0xaf,0x72,0x60,0xfd,0x45,0xa4,0x02,0x0a,0xa4,0x61,0x6d,0xfb,0xfb,0xed,0xaa,0xaa,0x87,0x77,0x01,0xab,0xd8,0x23,0x20,0x32,0x26,0x01,0x66,0x67,0x4c,0x59,0x04,0x00,0xfc,0x8b,0x03,0x75,0xfc,0x7b,0x1d,0x91,0x62,0x9e,0xa4,0x5c,0x62,0x4d,0x57,0x63,0x00,0x00,0x01,0x00,0x29,0xfe,0x9b,0x04,0x0c,0x05,0x9a,0x00,0x13, +0x00,0x31,0x40,0x19,0x00,0x7e,0x0a,0x05,0x13,0x7e,0x0c,0x0a,0x0c,0x0a,0x0c,0x10,0x0e,0x12,0x0e,0x91,0x0f,0x03,0x02,0x92,0x07,0x0b,0x92,0x00,0x12,0x00,0x3f,0xed,0xd4,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xfd,0xc4,0x10,0xed,0x31,0x30,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x35,0x33, +0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x01,0xcf,0x0a,0xa5,0x4c,0x32,0x38,0x52,0x9f,0xac,0x9f,0xfe,0x63,0x03,0xe3,0xfe,0x62,0xdb,0x20,0x92,0x18,0xc5,0xba,0x76,0x04,0x72,0x98,0x98,0xfa,0xfe,0x00,0x00,0x01,0x00,0x1e,0xfe,0x9b,0x03,0x29,0x04,0x00,0x00,0x13,0x00,0x2d,0x40,0x17,0x05,0x13,0x84,0x0c,0x0c,0x0a,0x10,0x0e,0x00,0x84, +0x0a,0x12,0x0e,0x95,0x0f,0x0f,0x02,0x95,0x07,0x0b,0xec,0x00,0x15,0x00,0x3f,0xed,0xd4,0xed,0x3f,0xed,0x32,0x01,0x2f,0xed,0xc6,0x2f,0x12,0x39,0x2f,0xfd,0xc4,0x31,0x30,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x35,0x33,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x01,0x53,0x0a,0xa4,0x44,0x2e,0x3d,0x45,0x9c,0xa6,0xa3, +0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0xdb,0x20,0x93,0x17,0xc7,0xb8,0x76,0x02,0xe4,0x8c,0x8c,0xfc,0x8c,0x00,0x00,0x01,0x00,0x29,0x00,0x00,0x05,0xc5,0x05,0x9a,0x00,0x14,0x00,0x37,0x40,0x1c,0x0d,0x7e,0x06,0x0b,0x06,0x0b,0x00,0x08,0x14,0x7e,0x11,0x00,0x12,0x03,0x0c,0x08,0x91,0x09,0x0f,0x91,0x01,0x09,0x03,0x03,0x09,0x03,0x00,0x12, +0x00,0x3f,0x3f,0x39,0x2f,0x12,0x39,0xed,0x10,0xed,0x32,0x3f,0x01,0x2f,0x33,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x21,0x11,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x21,0x32,0x37,0x11,0x33,0x11,0x05,0x1d,0xf2,0xcb,0xc3,0xd7,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x01,0x04,0xc4,0xe7,0xa8,0x02, +0x85,0x79,0xc3,0xb0,0x01,0x85,0x96,0x98,0xfe,0x85,0xe7,0x6e,0x02,0x8c,0xfa,0x66,0x00,0x01,0x00,0x1e,0x00,0x00,0x04,0xae,0x04,0x00,0x00,0x13,0x00,0x37,0x40,0x1c,0x0c,0x84,0x05,0x0a,0x05,0x0a,0x00,0x07,0x13,0x84,0x10,0x00,0x11,0x0f,0x0b,0x07,0x95,0x08,0x0e,0xec,0x01,0x08,0x03,0x03,0x08,0x0f,0x00,0x15,0x00,0x3f,0x3f,0x39, +0x2f,0x12,0x39,0xed,0x10,0xed,0x32,0x3f,0x01,0x2f,0x33,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x21,0x11,0x06,0x23,0x20,0x11,0x35,0x21,0x35,0x21,0x15,0x21,0x15,0x14,0x33,0x32,0x37,0x11,0x33,0x11,0x04,0x0b,0xba,0x9c,0xfe,0x9d,0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0xca,0x9a,0xb1,0xa3,0x01,0x9c,0x62,0x01,0x6c,0xce,0x8c, +0x8c,0xc6,0xe1,0x56,0x01,0xdd,0xfc,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x81,0x05,0xb4,0x00,0x19,0x00,0x2c,0x40,0x16,0x0b,0x18,0x7e,0x19,0x11,0x7e,0x05,0x12,0x15,0x91,0x0b,0x19,0x0d,0x0d,0x02,0x12,0x19,0x12,0x07,0x91,0x02,0x04,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xc4,0xed,0x2f,0xed,0x32, +0x31,0x30,0x13,0x10,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x15,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x07,0x11,0x23,0xa6,0x01,0xf2,0x63,0x61,0x5c,0x63,0xae,0xa1,0xea,0xc0,0xbf,0xca,0xa8,0xf5,0xb6,0xe0,0xa8,0x03,0xb4,0x02,0x00,0x17,0x9a,0x1d,0xba,0xca,0x88,0x7a,0xc5,0xaf,0xfd,0xe6,0x02,0x12,0xe8, +0x6e,0xfd,0x74,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x02,0x00,0x1d,0x00,0x29,0x40,0x15,0x0d,0x1c,0x84,0x1d,0x06,0x13,0x84,0x14,0x0d,0x10,0x14,0x1d,0x15,0x17,0x95,0x10,0x10,0x09,0x95,0x03,0x01,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x12,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0xed,0x32,0x31,0x30,0x13,0x34,0x12,0x33,0x32, +0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x36,0x33,0x20,0x11,0x11,0x23,0x11,0x10,0x23,0x22,0x06,0x06,0x15,0x11,0x23,0xa6,0xf2,0xe5,0x86,0x82,0x3e,0x8c,0x3d,0xa4,0x90,0x04,0x75,0xdb,0x01,0x5a,0xa4,0xee,0x4d,0x83,0x4c,0xa4,0x03,0xe9,0xfc,0x01,0x1d,0x37,0x98,0x20,0x24,0xc3,0xc8,0x96,0xc2,0xfe,0x5f,0xfd,0x89,0x02, +0x4e,0x01,0x40,0x53,0x97,0x60,0xfd,0xbc,0x00,0x01,0x00,0xbc,0xfe,0x29,0x07,0xa5,0x05,0x9a,0x00,0x2a,0x00,0x54,0x40,0x1d,0x03,0x7f,0x25,0x17,0x7e,0x14,0x2a,0x1b,0x7e,0x18,0x25,0x14,0x18,0x18,0x14,0x25,0x03,0x0c,0x13,0x7e,0x10,0x1e,0x7f,0x0c,0x19,0x15,0x11,0x03,0x28,0xb8,0x01,0x05,0xb3,0x00,0x00,0x10,0x07,0xb8,0x01,0x05, +0xb6,0x22,0x1b,0x17,0x13,0x91,0x10,0x12,0x00,0x3f,0xed,0x32,0x32,0xd4,0xed,0x12,0x39,0x2f,0xed,0x3f,0x33,0x33,0x01,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0xc4,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x21,0x32,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x33,0x11,0x21,0x11, +0x33,0x11,0x21,0x11,0x33,0x11,0x16,0x16,0x15,0x14,0x04,0x21,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x15,0x03,0x47,0x45,0x4e,0x88,0x8b,0x0f,0x01,0xa3,0x93,0xb4,0x51,0x75,0x68,0xfa,0x88,0xa8,0x02,0x13,0xa8,0x02,0x12,0xa8,0x62,0x6a,0xff,0x00,0xfe,0xf0,0xfe,0x28,0xd2,0xc6,0x8b,0x93,0x02,0xcb,0xd8,0x23,0x21,0x30,0x24,0x2b, +0x53,0x4d,0x51,0x54,0x05,0x9a,0xfa,0xfe,0x05,0x02,0xfa,0xfe,0x05,0x02,0xfa,0xf8,0x22,0x91,0x6a,0xaa,0xa2,0x56,0x63,0x4e,0x5d,0x65,0x00,0x01,0x00,0xa6,0xfe,0x29,0x06,0x8f,0x04,0x00,0x00,0x28,0x00,0x51,0x40,0x16,0x03,0xed,0x23,0x15,0x84,0x12,0x28,0x19,0x84,0x16,0x23,0x12,0x16,0x16,0x12,0x23,0x03,0x0a,0x11,0x84,0x0e,0x1c, +0xb8,0x01,0x2e,0x40,0x12,0x0a,0x26,0x00,0x00,0x0e,0x06,0x20,0x1b,0x17,0x13,0x0f,0x0f,0x19,0x15,0x11,0x95,0x0e,0x15,0x00,0x3f,0xed,0x32,0x32,0x3f,0x33,0x33,0x3f,0xcd,0x12,0x39,0x2f,0xcd,0x01,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0xc4,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x22,0x06,0x15,0x14,0x16,0x33, +0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x16,0x16,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x15,0x02,0x85,0x3c,0x44,0x78,0x6c,0x01,0xa1,0xc3,0xaf,0x72,0x60,0xfb,0x7c,0xa4,0x01,0x97,0xa4,0x01,0x98,0xa4,0x61,0x6d,0xfb,0xfb,0xfe,0x35,0xaa,0xaa,0x87, +0x77,0x02,0x89,0xd8,0x23,0x20,0x32,0x26,0x01,0x66,0x67,0x4c,0x59,0x04,0x00,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x03,0x75,0xfc,0x7b,0x1d,0x91,0x62,0x9e,0xa4,0x5c,0x62,0x4d,0x57,0x63,0x00,0x00,0x01,0x00,0x2b,0xff,0xea,0x04,0x1b,0x05,0x2f,0x00,0x1c,0x00,0x47,0x40,0x24,0x0f,0x07,0x84,0x08,0x0c,0x08,0x13,0x17,0x84,0x04,0x10,0x04, +0x08,0x04,0x08,0x04,0x00,0x0a,0x15,0x00,0x12,0x0e,0x16,0x06,0x0a,0x95,0x13,0x0f,0x0b,0x0f,0x08,0x15,0x1a,0x95,0x02,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x33,0xed,0x32,0x32,0xc4,0x32,0x01,0x2f,0x33,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x25,0x06,0x23,0x20,0x11,0x11,0x23, +0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x04,0x1b,0x3a,0x5f,0xfe,0xf3,0xf6,0xa4,0xb0,0xb0,0xa4,0xf6,0xa4,0x01,0x01,0xfe,0xff,0x46,0x51,0x3f,0x2c,0x0a,0x20,0x01,0x2c,0x02,0x5e,0xfc,0x8c,0x03,0x74,0x8c,0xfa,0x35,0xfe,0xd1,0xfa,0x35,0xfe,0xd1,0x8b,0xfd, +0xbe,0x67,0x58,0x22,0x00,0x04,0x00,0x32,0x00,0x00,0x04,0x37,0x05,0xb2,0x00,0x3f,0x00,0x48,0x00,0x51,0x00,0x5a,0x00,0xb2,0xb1,0x4f,0x2b,0xb8,0x01,0x04,0xb2,0x09,0x2c,0x35,0xb8,0x01,0x04,0xb2,0x58,0x46,0x26,0xb8,0x01,0x04,0xb4,0x51,0x15,0x27,0x3e,0x21,0xb8,0x01,0x04,0x40,0x0e,0x22,0x48,0x22,0x2c,0x58,0x27,0x22,0x22,0x27, +0x58,0x2c,0x04,0x00,0x55,0xb8,0x01,0x04,0x40,0x40,0x30,0x10,0x1d,0x7d,0x00,0x58,0x3e,0x4f,0x48,0x51,0x05,0x52,0x46,0x25,0x52,0x33,0x42,0x3b,0x3b,0x33,0x4b,0x37,0x37,0x1d,0x00,0x39,0x35,0x2d,0x2a,0x20,0x23,0x28,0x09,0x25,0x10,0x15,0x09,0x03,0x33,0x25,0x40,0x09,0x11,0x48,0x0f,0x33,0x1f,0x33,0x2f,0x33,0x03,0x25,0x33,0x25, +0x33,0x0d,0x27,0x22,0x2c,0x12,0x12,0x91,0x0d,0x04,0x00,0x3f,0xed,0x3f,0x33,0x33,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x11,0x17,0x39,0x12,0x17,0x39,0x33,0x2f,0xc9,0x11,0x33,0x2f,0xc9,0x10,0xc9,0x10,0xc9,0x11,0x17,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xc4,0x33, +0xed,0x32,0x10,0xed,0x10,0xc4,0xed,0x32,0x31,0x30,0x01,0x34,0x2e,0x02,0x27,0x2e,0x02,0x35,0x34,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x17,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x06,0x23,0x15,0x23,0x35,0x26,0x27,0x15,0x23,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x33,0x32, +0x17,0x36,0x33,0x32,0x15,0x15,0x36,0x27,0x34,0x23,0x22,0x06,0x15,0x15,0x32,0x37,0x25,0x34,0x23,0x22,0x06,0x15,0x15,0x16,0x17,0x25,0x22,0x06,0x15,0x14,0x16,0x17,0x35,0x34,0x03,0x87,0x33,0x5a,0x7b,0x47,0x9e,0x83,0x43,0x82,0xe5,0x8b,0xd3,0x62,0x7f,0xc7,0x8d,0xa4,0x2f,0x66,0xa2,0xaa,0x88,0x4a,0x90,0x84,0x60,0x42,0x61,0x60, +0x64,0x40,0x60,0x3f,0x4b,0x3c,0x33,0x5b,0x17,0x2f,0x5a,0x59,0x1e,0x2f,0x5c,0x85,0x64,0xc4,0x4e,0x24,0x31,0x69,0x3a,0xfe,0xfd,0x4e,0x26,0x30,0x39,0x6b,0xfe,0xde,0x13,0x0f,0x22,0x1e,0x01,0x5e,0x3a,0x56,0x48,0x40,0x24,0x50,0x6f,0x84,0x56,0x74,0xae,0x5d,0x33,0xbd,0x58,0x76,0x62,0x3a,0x56,0x4c,0x50,0x55,0x71,0x8a,0x57,0x7d, +0x8b,0x1b,0x4c,0x3e,0x06,0x38,0x3a,0x05,0x0d,0x4c,0x68,0x1a,0x6d,0x49,0x33,0x3d,0x54,0x53,0x53,0x53,0xaa,0x53,0x36,0x0c,0x6b,0x3e,0x30,0x6b,0x0c,0x65,0x68,0x3d,0x34,0x55,0x0c,0x05,0xe8,0x26,0x15,0x23,0x46,0x11,0x6e,0x47,0x00,0x01,0x00,0xe7,0x00,0x50,0x04,0xf6,0x04,0x5c,0x00,0x09,0x00,0x0d,0xb3,0x06,0x00,0x09,0x03,0x00, +0x2f,0xc4,0x01,0x2f,0xc4,0x31,0x30,0x37,0x01,0x23,0x27,0x05,0x17,0x13,0x27,0x35,0x01,0xe7,0x03,0x46,0xa8,0x68,0x01,0xcc,0x05,0x08,0x69,0xfc,0xb9,0xae,0x03,0x46,0x68,0x08,0x04,0xfe,0x33,0x69,0xac,0xfc,0xb8,0x00,0x00,0x01,0x00,0xe7,0x00,0x50,0x04,0xf6,0x04,0x5c,0x00,0x09,0x00,0x0d,0xb3,0x00,0x06,0x09,0x03,0x00,0x2f,0xc4, +0x01,0x2f,0xc4,0x31,0x30,0x01,0x01,0x37,0x17,0x25,0x27,0x03,0x17,0x07,0x01,0x04,0xf6,0xfc,0xb8,0xaa,0x69,0xfe,0x33,0x04,0x09,0x69,0x02,0x03,0x4a,0x03,0xfe,0xfc,0xb8,0x02,0x68,0x08,0x04,0x01,0xcd,0x68,0xaf,0x03,0x4a,0x00,0x00,0x02,0x00,0x00,0xff,0xb8,0x06,0x78,0x06,0x2e,0x00,0x09,0x00,0x13,0x00,0x2e,0x40,0x16,0x06,0x10, +0x06,0x10,0x00,0x0a,0x0a,0x15,0x30,0x00,0x01,0x00,0x03,0x0d,0x03,0x0d,0x09,0x3f,0x13,0x01,0x13,0x09,0x00,0x2f,0x2f,0x5d,0x12,0x39,0x39,0x2f,0x2f,0x01,0x2f,0x5d,0x11,0x33,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x35,0x01,0x21,0x37,0x21,0x17,0x11,0x07,0x11,0x09,0x02,0x21,0x07,0x21,0x27,0x11,0x37,0x11,0x01,0x01,0xee,0xfe, +0x91,0xb3,0x01,0xfe,0x02,0xb3,0xfe,0x11,0x05,0xe8,0xfe,0x12,0x01,0x6f,0xb3,0xfe,0x02,0x02,0xb3,0x01,0xef,0x48,0x01,0xee,0xb3,0x02,0xfe,0x02,0xb3,0x01,0x73,0xfe,0x0f,0x05,0xe6,0xfe,0x12,0xb3,0x02,0x01,0xfe,0xb3,0xfe,0x8d,0x01,0xf1,0x00,0x03,0x00,0x83,0xff,0xee,0x03,0x31,0x05,0xb2,0x00,0x13,0x00,0x1b,0x00,0x2f,0x00,0x3a, +0x40,0x1d,0x1b,0x08,0x08,0x09,0x09,0x1c,0xaf,0x26,0x26,0x0c,0x00,0x84,0x17,0x17,0x31,0x0c,0x1b,0x0f,0x09,0x2b,0xb0,0x21,0x15,0x0c,0x0a,0x1a,0x95,0x0f,0x00,0x00,0x3f,0xfd,0x32,0xcc,0x3f,0xfd,0xce,0x11,0x39,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0xed,0x33,0x2f,0x33,0x11,0x33,0x31,0x30,0x01,0x14,0x07,0x0e,0x03,0x15, +0x07,0x23,0x03,0x06,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x01,0x36,0x36,0x35,0x34,0x26,0x27,0x03,0x13,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x03,0x31,0xcf,0x1e,0x38,0x2b,0x1a,0x03,0x87,0x10,0x5e,0x4c,0x99,0xa5,0x53,0x88,0x60,0x35,0xfe,0xae,0x57,0x59,0x65,0x55,0x0a,0x27,0x11,0x1e,0x28, +0x18,0x17,0x29,0x1e,0x11,0x12,0x1e,0x28,0x17,0x16,0x29,0x1e,0x12,0x04,0x5a,0xce,0xaf,0x1a,0x33,0x32,0x32,0x19,0x7f,0x03,0x80,0x20,0x52,0xb0,0x60,0x32,0x5a,0x7f,0xfe,0x78,0x4e,0x8f,0x50,0x58,0x73,0x0d,0xfd,0xe8,0xfd,0x50,0x16,0x28,0x1e,0x12,0x11,0x1e,0x28,0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x29,0x00,0xff,0xff,0x00,0xac, +0xfe,0x1e,0x03,0x00,0x06,0x1e,0x00,0x26,0x00,0x5f,0x00,0x00,0x00,0x07,0x00,0x5f,0x01,0xc0,0x00,0x00,0x00,0x02,0x00,0x5e,0x00,0x78,0x05,0x1c,0x05,0x23,0x00,0x23,0x00,0x45,0x00,0x15,0xb7,0x24,0x14,0x32,0x05,0x41,0x19,0x2b,0x0d,0x00,0x2f,0x33,0x2f,0x33,0x01,0x2f,0x33,0x2f,0x33,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e, +0x04,0x07,0x23,0x2e,0x05,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x33,0x3e,0x03,0x01,0x14,0x1e,0x04,0x17,0x3e,0x05,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x2e,0x03,0x23,0x22,0x0e,0x02,0x03,0xea,0x3b,0x6f,0x55,0x33,0x40,0x68,0x83,0x86,0x7d,0x2d,0x09,0x2d,0x7c,0x86,0x83,0x68,0x40,0x33,0x55,0x6f,0x3b,0x39,0x5b, +0x49,0x37,0x14,0x09,0x14,0x38,0x49,0x5b,0xfd,0x2b,0x34,0x54,0x69,0x6c,0x63,0x23,0x23,0x62,0x6b,0x68,0x53,0x34,0x1c,0x30,0x42,0x26,0x3a,0x5b,0x49,0x39,0x16,0x17,0x38,0x49,0x5c,0x39,0x26,0x42,0x30,0x1c,0x05,0x23,0x2b,0x57,0x84,0x5a,0x64,0xad,0x98,0x85,0x79,0x6f,0x35,0x35,0x6f,0x79,0x85,0x98,0xad,0x64,0x5a,0x84,0x57,0x2b, +0x1e,0x33,0x41,0x22,0x22,0x41,0x33,0x1e,0xfe,0xa0,0x50,0x8e,0x7e,0x6f,0x63,0x57,0x26,0x26,0x57,0x63,0x6f,0x7e,0x8e,0x50,0x3d,0x58,0x38,0x1a,0x2e,0x4b,0x5e,0x2f,0x2f,0x5e,0x4b,0x2e,0x1a,0x38,0x58,0x00,0x00,0x02,0x00,0x30,0x00,0x00,0x03,0x43,0x05,0x9a,0x00,0x1b,0x00,0x1f,0x00,0x21,0x40,0x0e,0x1c,0x00,0x0f,0x12,0x1d,0x0b, +0x01,0x0e,0x1e,0x1c,0x03,0x11,0x03,0x03,0x00,0x3f,0x2f,0x12,0x39,0x39,0x01,0x2f,0x33,0xcd,0x33,0x2f,0xcd,0x32,0x32,0x31,0x30,0x01,0x25,0x11,0x33,0x15,0x37,0x15,0x07,0x11,0x37,0x15,0x07,0x11,0x23,0x35,0x05,0x11,0x23,0x35,0x07,0x35,0x37,0x11,0x07,0x35,0x37,0x11,0x33,0x11,0x25,0x11,0x05,0x01,0x37,0x01,0x05,0x67,0xa0,0xa0, +0xa0,0xa0,0x67,0xfe,0xfb,0x67,0xa0,0xa0,0xa0,0xa0,0x67,0x01,0x05,0xfe,0xfb,0x03,0xff,0x8b,0x01,0x10,0xd9,0x55,0x98,0x55,0xfe,0x42,0x55,0x98,0x55,0xfe,0xda,0xef,0x8b,0xfe,0xef,0xda,0x55,0x98,0x55,0x01,0xbe,0x55,0x98,0x55,0x01,0x0e,0xfc,0xd3,0x8b,0x01,0xbe,0x8b,0x00,0x09,0x00,0xe6,0xff,0xb8,0x07,0x19,0x05,0xe7,0x00,0x1e, +0x00,0x2c,0x00,0x3a,0x00,0x48,0x00,0x56,0x00,0x64,0x00,0x72,0x00,0x7f,0x00,0x8c,0x00,0x1e,0x40,0x13,0x30,0x49,0x23,0x36,0x57,0x41,0x86,0x50,0x79,0x6e,0x2b,0x5d,0x80,0x68,0x0e,0x3b,0x0f,0x73,0x00,0x00,0x2f,0x32,0x2f,0x33,0x17,0x39,0x31,0x30,0x05,0x22,0x27,0x2e,0x02,0x27,0x26,0x35,0x34,0x37,0x36,0x36,0x37,0x36,0x33,0x32, +0x17,0x16,0x16,0x17,0x16,0x15,0x14,0x06,0x07,0x0e,0x02,0x07,0x06,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x07,0x36,0x33,0x32,0x16,0x17,0x36,0x03,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x01,0x22,0x06,0x15,0x14,0x16,0x17,0x26,0x35,0x34,0x36,0x36,0x37,0x26,0x05,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32, +0x37,0x26,0x26,0x35,0x34,0x03,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x37,0x06,0x23,0x22,0x26,0x13,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x27,0x06,0x06,0x23,0x22,0x01,0x32,0x36,0x35,0x34,0x26,0x27,0x16,0x15,0x14,0x06,0x07,0x16,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x03,0xff,0xa4,0x76,0x69, +0xb5,0x6e,0x05,0x6e,0x6e,0x08,0xe8,0xa1,0x76,0xa4,0xa2,0x79,0xa0,0xe6,0x0a,0x6f,0x3a,0x34,0x07,0x6d,0xb6,0x69,0x77,0x02,0x11,0x54,0x96,0x56,0x63,0xa4,0x24,0x5a,0x64,0x87,0xde,0x2d,0x1b,0x84,0x23,0xa4,0x62,0x53,0x95,0x58,0x1c,0x2a,0xe1,0x86,0x66,0xfe,0x27,0x83,0xbd,0x6f,0x5e,0x2d,0x51,0x88,0x48,0x3e,0xfe,0x44,0x5b,0x71, +0x53,0x93,0x59,0x46,0x3b,0x81,0xa0,0xf1,0x1b,0x54,0x92,0x59,0x61,0xa7,0x22,0x5a,0x63,0x88,0xde,0x3c,0x24,0x9d,0x5c,0x5c,0x9b,0x56,0x1b,0x2c,0xdf,0x87,0x60,0x01,0xd3,0x82,0xbd,0x6b,0x60,0x2c,0x9d,0x86,0x40,0x01,0xbb,0x5a,0x74,0xb9,0x86,0x43,0x3e,0x7f,0xa0,0x48,0x6c,0x05,0x6c,0xb8,0x67,0x76,0xa5,0xa4,0x78,0xa0,0xe8,0x08, +0x6c,0x6d,0x08,0xe7,0x9f,0x7b,0xa4,0x4f,0x92,0x39,0x6a,0xb4,0x6c,0x06,0x6b,0x03,0x16,0x54,0x95,0x58,0x70,0x5d,0x2d,0x9f,0x84,0x40,0x01,0xbd,0x5c,0x6f,0x55,0x95,0x54,0x47,0x3c,0x82,0xa0,0x01,0x0c,0xbb,0x85,0x61,0xa5,0x24,0x58,0x67,0x60,0xa7,0x75,0x13,0x1c,0x81,0x23,0xa6,0x61,0x54,0x94,0x58,0x1b,0x2a,0xe1,0x85,0x66,0xfe, +0xaa,0x3c,0x46,0x53,0x95,0x57,0x6f,0x5d,0x2d,0xa1,0xfe,0x86,0x5b,0x71,0x56,0x94,0x55,0x45,0x3e,0x83,0xa0,0xfe,0xf5,0xbe,0x80,0x61,0xa2,0x28,0x58,0x66,0x87,0xda,0x2e,0x1c,0x80,0x23,0xa2,0x65,0x82,0xbf,0x1b,0x2b,0xdd,0x86,0x6f,0x00,0x00,0x09,0x00,0xe6,0xff,0xb8,0x07,0x19,0x05,0xe7,0x00,0x1e,0x00,0x2c,0x00,0x3a,0x00,0x48, +0x00,0x56,0x00,0x64,0x00,0x72,0x00,0x80,0x00,0x8e,0x00,0x21,0x40,0x15,0x38,0x49,0x2f,0x29,0x32,0x57,0x43,0x88,0x50,0x7a,0x21,0x6a,0x5f,0x81,0x70,0x0f,0x07,0x73,0x16,0x3b,0x07,0x00,0x2f,0x33,0x2f,0x33,0x12,0x17,0x39,0x31,0x30,0x13,0x34,0x37,0x36,0x36,0x37,0x36,0x33,0x32,0x17,0x1e,0x02,0x17,0x16,0x15,0x14,0x07,0x06,0x06, +0x07,0x06,0x23,0x22,0x27,0x2e,0x02,0x27,0x26,0x26,0x37,0x14,0x17,0x36,0x36,0x33,0x32,0x17,0x26,0x26,0x23,0x22,0x06,0x06,0x13,0x36,0x33,0x32,0x16,0x17,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x25,0x22,0x07,0x1e,0x02,0x15,0x14,0x07,0x36,0x36,0x35,0x34,0x26,0x17,0x16,0x15,0x14,0x06,0x07,0x16,0x33,0x32,0x36,0x36,0x35,0x34, +0x26,0x13,0x06,0x06,0x23,0x22,0x27,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x03,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x05,0x32,0x37,0x26,0x26,0x35,0x34,0x37,0x06,0x06,0x15,0x14,0x16,0x16,0x25,0x26,0x35,0x34,0x36,0x37,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0xe6,0x6f,0x08,0xe6,0xa2,0x79,0xa2, +0xa4,0x76,0x68,0xb6,0x6e,0x05,0x6e,0x6e,0x08,0xe6,0xa3,0x76,0xa4,0xa2,0x77,0x68,0xb6,0x70,0x05,0x34,0x3a,0x67,0x1b,0x2d,0xde,0x87,0x64,0x5a,0x23,0xa6,0x62,0x57,0x95,0x54,0x84,0x56,0x66,0x86,0xe1,0x2a,0x1c,0x57,0x94,0x55,0x62,0xa4,0x02,0x0c,0x43,0x3e,0x49,0x87,0x51,0x2d,0x5e,0x6f,0xbe,0xf7,0x2d,0xa0,0x81,0x3b,0x46,0x57, +0x94,0x54,0x71,0xc3,0x2b,0xde,0x88,0x63,0x5a,0x23,0xa6,0x61,0x5a,0x92,0x53,0x82,0x5d,0x60,0x88,0xdf,0x2b,0x1b,0x56,0x9a,0x5d,0x5b,0x9d,0xfd,0xf5,0x43,0x40,0x84,0x9f,0x2c,0x5f,0x6c,0x57,0x95,0xfe,0xdb,0x2d,0xa0,0x7f,0x3e,0x43,0x55,0x93,0x57,0x74,0x02,0xcd,0xa4,0x7b,0x9c,0xe9,0x09,0x6d,0x6c,0x05,0x6e,0xb5,0x68,0x78,0xa4, +0xa5,0x76,0xa0,0xe8,0x08,0x6c,0x6b,0x05,0x6c,0xb6,0x69,0x39,0x92,0x50,0x42,0x40,0x85,0x9e,0x2d,0x5c,0x71,0x58,0x95,0x01,0x27,0x2c,0xa0,0x82,0x3c,0x47,0x54,0x94,0x56,0x70,0xdd,0x1c,0x14,0x75,0xa6,0x60,0x67,0x58,0x24,0xa6,0x60,0x85,0xbb,0x81,0x59,0x66,0x85,0xe1,0x2a,0x1b,0x57,0x93,0x56,0x61,0xa6,0xfe,0x74,0x81,0xa1,0x2d, +0x5f,0x6d,0x58,0x96,0x51,0x46,0xfe,0x41,0x2d,0xa0,0x83,0x3e,0x45,0x55,0x94,0x56,0x70,0xdc,0x1c,0x2d,0xda,0x88,0x66,0x58,0x27,0xa3,0x61,0x54,0x94,0x56,0x80,0x53,0x6f,0x86,0xdd,0x2b,0x1b,0x55,0x97,0x55,0x64,0xa4,0xff,0xff,0x00,0x37,0xfe,0x70,0x01,0x4b,0x04,0x00,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06,0x00,0xdf,0xf9,0x00, +0x00,0x0b,0xb6,0x01,0x00,0x12,0x04,0x02,0x03,0x25,0x01,0x2b,0x35,0x00,0x00,0x02,0xfd,0x33,0x00,0x00,0x02,0xcd,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x00,0x01,0x21,0x11,0x21,0x37,0x21,0x11,0x21,0xfd,0x33,0x05,0x9a,0xfa,0x66,0x7c,0x04,0xa2,0xfb,0x5e,0x05,0x9a,0xfa,0x66,0x7c,0x04,0xa2,0x00,0x04,0x00,0x00,0xfe,0xb9,0x07,0xd1, +0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x23,0x00,0x27,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x07,0x23,0x07,0x33,0x07,0x23,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x23,0x37,0x33,0x37,0x23,0x37,0x33,0x13,0x33,0x03,0x33,0x13,0x33,0x03,0x07,0x23,0x07,0x33,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfd,0xf6,0x19,0xd1, +0x32,0xe1,0x1a,0xdc,0x42,0x8d,0x41,0xc8,0x3f,0x8c,0x3f,0xd2,0x14,0xd4,0x31,0xde,0x17,0xde,0x3d,0x8d,0x3d,0xc9,0x3f,0x8a,0x3d,0xa2,0xc9,0x35,0xcb,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfd,0x0f,0x6e,0xf0,0x6b,0xfe,0xd9,0x01,0x27,0xfe,0xd9,0x01,0x27,0x6b,0xf0,0x6e,0x01,0x29,0xfe,0xd7,0x01,0x29,0xfe,0xd7,0x6e, +0xf0,0x00,0x00,0x03,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x16,0x00,0x1a,0x00,0x1e,0x00,0x00,0x01,0x11,0x23,0x11,0x06,0x06,0x07,0x06,0x06,0x07,0x35,0x36,0x36,0x37,0x36,0x36,0x37,0x36,0x36,0x37,0x36,0x36,0x37,0x01,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x04,0x62,0xae,0x16,0x31,0x1a,0x1c,0x3e,0x25,0x19,0x29,0x14,0x14, +0x28,0x14,0x13,0x27,0x13,0x15,0x29,0x15,0xfc,0x7a,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0x04,0xb2,0xfb,0xfd,0x03,0x3f,0x0f,0x1c,0x0b,0x0b,0x13,0x09,0x8b,0x07,0x0e,0x07,0x08,0x11,0x08,0x0a,0x14,0x0b,0x0b,0x1a,0x0b,0x01,0x41,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0x00,0x03,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03, +0x00,0x07,0x00,0x27,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x21,0x35,0x01,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x07,0x21,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfd,0x4a,0xfd,0x6f,0x01,0x3d,0x31,0x45,0x2c,0x13,0x10,0x28,0x42,0x32,0x49, +0x82,0x43,0x80,0xa9,0x45,0x73,0x53,0x2e,0x1f,0x3d,0x5b,0x3b,0xed,0x01,0xd6,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfa,0x20,0x84,0x01,0x23,0x2d,0x4a,0x46,0x4c,0x2f,0x15,0x38,0x33,0x23,0x3a,0x39,0x97,0x5c,0x2e,0x4e,0x65,0x37,0x3b,0x65,0x60,0x5f,0x34,0xd1,0x00,0x00,0x03,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89, +0x00,0x03,0x00,0x07,0x00,0x3e,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x94, +0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfa,0xd6,0x3a,0x95,0x48,0x21,0x4c,0x41,0x2b,0x29,0x49,0x63,0x3a,0x5d,0x58,0x34,0x57,0x3f,0x23,0x21,0x33,0x3c,0x1c,0x3b,0x82,0x35,0x36,0x81,0x49,0x3f,0x77,0x5c,0x37,0x73,0x64,0x31,0x5c,0x47,0x2a,0x3f,0x6c,0x8f,0x4f,0x50,0x92,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfa,0x4a, +0x9a,0x29,0x28,0x0e,0x25,0x40,0x31,0x31,0x45,0x2b,0x14,0x80,0x12,0x29,0x40,0x2e,0x2b,0x37,0x1f,0x0c,0x24,0x24,0x8e,0x1d,0x1d,0x1d,0x3c,0x5c,0x3f,0x64,0x80,0x17,0x05,0x26,0x3f,0x55,0x33,0x4a,0x70,0x4c,0x27,0x1b,0x00,0x04,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x12,0x00,0x15,0x00,0x00,0x13,0x11, +0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x23,0x11,0x23,0x11,0x21,0x35,0x01,0x33,0x11,0x33,0x21,0x11,0x01,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfd,0x83,0x88,0xae,0xfe,0x21,0x01,0xc4,0xc9,0x88,0xfe,0xca,0xfe,0xd7,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfb,0x2a,0xfe,0xfb,0x01,0x05,0x7f,0x02,0x79,0xfd,0x99,0x01, +0xac,0xfe,0x54,0x00,0x00,0x03,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x2c,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x11,0x21,0x15,0x21,0x11,0x3e,0x02,0x32,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x94,0x06, +0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfa,0xd7,0x7b,0x7e,0x36,0x5c,0x43,0x26,0x2d,0x4b,0x64,0x37,0x33,0x88,0x02,0x41,0xfe,0x6c,0x0e,0x0c,0x09,0x0a,0x0c,0x4f,0x92,0x6e,0x42,0x47,0x75,0x98,0x52,0xa5,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfa,0x3f,0x97,0x42,0x18,0x30,0x47,0x2f,0x30,0x43,0x2c,0x14,0x09,0x02,0x16,0x86, +0xfe,0xf8,0x01,0x01,0x01,0x21,0x48,0x73,0x52,0x56,0x7a,0x4f,0x25,0x00,0x00,0x04,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x2d,0x00,0x41,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x26,0x23,0x22,0x0e,0x02,0x15,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02, +0x35,0x34,0x3e,0x04,0x33,0x32,0x17,0x01,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfd,0x31,0x5a,0x61,0x56,0x77,0x4a,0x22,0x03,0x12,0x30,0x3d,0x48,0x29,0x47,0x75,0x54,0x2e,0x31,0x5a,0x82,0x51,0x66,0x8e,0x57,0x27,0x19,0x32,0x4d,0x68,0x84,0x51,0x76, +0x48,0xfe,0xe2,0x26,0x4a,0x3b,0x25,0x1b,0x36,0x4e,0x33,0x30,0x47,0x2f,0x18,0x21,0x36,0x45,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfd,0x7c,0x2c,0x46,0x70,0x90,0x49,0x1f,0x34,0x27,0x16,0x2f,0x53,0x72,0x42,0x4c,0x80,0x5c,0x33,0x50,0x81,0xa2,0x52,0x45,0x8c,0x82,0x71,0x55,0x30,0x20,0xfe,0x24,0x1c,0x34,0x4a,0x2e, +0x29,0x49,0x39,0x21,0x24,0x3a,0x49,0x26,0x34,0x4b,0x31,0x17,0x00,0x03,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x0e,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x01,0x23,0x01,0x21,0x35,0x21,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfd,0xae,0xfe,0x1a,0xad,0x01,0xb4,0xfd,0x9a,0x03,0x45, +0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfe,0x05,0xfc,0x23,0x03,0x78,0x8b,0x00,0x00,0x05,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x2b,0x00,0x3f,0x00,0x53,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22, +0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x13,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x13,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfc,0x03,0x3b,0x70,0x56,0x34,0x5a,0x5e,0x34,0x53,0x3b,0x1f,0x3a, +0x62,0x7e,0x44,0x44,0x7e,0x62,0x3a,0x1f,0x3b,0x53,0x34,0x5e,0x5a,0x34,0x56,0x70,0x3b,0x1e,0x37,0x28,0x18,0x13,0x26,0x37,0x25,0x25,0x38,0x25,0x13,0x18,0x28,0x37,0x1e,0x28,0x44,0x32,0x1d,0x1a,0x30,0x46,0x2b,0x2c,0x45,0x30,0x1a,0x1d,0x32,0x44,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfe,0x2b,0x21,0x40,0x5e,0x3d, +0x50,0x86,0x23,0x17,0x3a,0x47,0x54,0x31,0x43,0x64,0x42,0x20,0x20,0x42,0x64,0x43,0x31,0x54,0x47,0x3a,0x17,0x23,0x86,0x50,0x3d,0x5e,0x40,0x21,0xfe,0x4a,0x0a,0x24,0x31,0x3c,0x21,0x13,0x2a,0x24,0x18,0x18,0x24,0x2a,0x13,0x21,0x3c,0x31,0x24,0xfe,0x11,0x19,0x2a,0x37,0x1e,0x24,0x39,0x30,0x2a,0x15,0x15,0x2a,0x30,0x39,0x24,0x1e, +0x37,0x2a,0x19,0x00,0x00,0x04,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x2d,0x00,0x41,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x16,0x33,0x32,0x3e,0x02,0x35,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x27,0x01,0x32,0x3e, +0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfa,0xdb,0x5a,0x61,0x55,0x78,0x4a,0x22,0x03,0x12,0x30,0x3d,0x48,0x29,0x47,0x75,0x54,0x2e,0x31,0x5a,0x82,0x51,0x66,0x8e,0x57,0x27,0x19,0x32,0x4d,0x68,0x84,0x51,0x76,0x48,0x01,0x1e,0x26,0x4a,0x3b,0x25,0x1b,0x36,0x4e, +0x33,0x30,0x47,0x2f,0x18,0x21,0x36,0x45,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfa,0xc2,0x2c,0x46,0x70,0x8f,0x4a,0x1f,0x34,0x27,0x16,0x2f,0x53,0x72,0x42,0x4c,0x80,0x5c,0x33,0x50,0x81,0xa2,0x52,0x45,0x8c,0x82,0x71,0x55,0x30,0x20,0x01,0xdc,0x1c,0x34,0x4a,0x2e,0x28,0x4a,0x39,0x21,0x24,0x3a,0x49,0x26,0x34,0x4b, +0x31,0x17,0x00,0x04,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x10,0x00,0x1a,0x00,0x1e,0x00,0x22,0x00,0x00,0x25,0x22,0x26,0x27,0x26,0x35,0x34,0x36,0x37,0x36,0x33,0x20,0x11,0x14,0x06,0x07,0x06,0x03,0x22,0x11,0x14,0x16,0x33,0x32,0x11,0x34,0x26,0x01,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x03,0xd1,0x55,0x7f,0x30,0x5d,0x2f, +0x32,0x62,0xb5,0x01,0x5c,0x2f,0x32,0x63,0xa0,0xc1,0x5f,0x5e,0xb9,0x58,0xfc,0x57,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0x9e,0x40,0x40,0x7f,0xf5,0x87,0xc8,0x46,0x89,0xfd,0xfa,0x80,0xc2,0x44,0x86,0x03,0x8e,0xfe,0x6d,0xbd,0xbc,0x01,0x7f,0xc9,0xc4,0x01,0xc7,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xff,0xff,0x00,0x90,0x01,0xfa, +0x02,0xb2,0x02,0x7b,0x02,0x06,0x00,0x10,0x00,0x00,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0x9b,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26, +0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23, +0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x1e,0x05,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x08, +0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20, +0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x01, +0xeb,0x13,0x1e,0x19,0x13,0x0c,0x07,0x7d,0x0e,0x1c,0x2b,0x1e,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d, +0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x05,0xc4,0x4e,0x8b,0x81,0x7f,0x88,0x94,0x57,0xfe,0xd1,0x01, +0x29,0x76,0xcc,0xc7,0xcf,0x7a,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0x9b,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34, +0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06, +0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x13,0x21,0x15,0x21,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x08,0xca,0x68, +0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e, +0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0xd5,0x02,0x84, +0xfe,0x1b,0x14,0x1e,0x14,0x0b,0x7d,0x0e,0x1c,0x2b,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13, +0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x05,0xc4,0x85,0x5b,0xa1,0xa7,0xb6,0x6e,0xfe,0xd1,0x01,0x29,0x76,0xcc, +0xc7,0xcf,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0xc4,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26, +0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06, +0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x13,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16, +0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x27,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0, +0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27, +0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0xd3,0x11,0x1d,0x0c,0x11,0x1e,0x0e,0x21,0x30,0x1e,0x0e,0x1d,0x7d,0x1d,0x19,0x18,0x29,0x13,0x21,0x2f,0x1f,0x0d,0x1c,0x7d,0x1d,0x1e,0x3c,0x56,0x38,0x24,0x52,0x30,0x39, +0x4f,0x21,0x23,0x09,0x0d,0x09,0x05,0x7d,0x0e,0x1c,0x2b,0x1e,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d, +0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x05,0xc4,0x49,0x80,0x3d,0x04,0x03,0x16,0x26,0x33,0x1d,0x43, +0x3e,0x47,0x45,0x41,0x33,0x07,0x06,0x16,0x26,0x33,0x1d,0x43,0x3e,0x47,0x45,0x31,0x56,0x3f,0x24,0x13,0x16,0x28,0x07,0x36,0x6d,0x74,0x7f,0x48,0xfe,0xd1,0x01,0x29,0x76,0xcc,0xc7,0xcf,0x7a,0x00,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b, +0x00,0xbd,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14, +0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27, +0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x0e,0x05,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0, +0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f, +0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x02,0x63,0x43,0x5f,0x40,0x24,0x14,0x05,0x22,0x39,0x46, +0x24,0x3c,0x61,0x2f,0x65,0x72,0x39,0x6f,0x59,0x38,0x16,0x35,0x59,0x43,0x40,0x56,0x32,0x15,0x23,0x57,0x92,0x6e,0x5c,0x6c,0x37,0x10,0x19,0x42,0x73,0x5b,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16, +0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20, +0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x03,0xbf,0x3f,0x65,0x53,0x40,0x2f,0x21,0x09,0x22,0x2a,0x18,0x08,0x10,0x0c,0x84,0x24,0x18,0x33,0x51,0x38,0x21,0x54,0x65,0x76,0x42,0x1e,0x36,0x37,0x3b,0x21,0x2b,0x5b,0x59,0x54,0x25,0x8d,0x1c,0x38,0x33,0x29,0x0c,0x14,0x20,0x2b,0x39,0x2d,0x00,0x00,0x0a,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16, +0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0xa1,0x00,0xb5,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17, +0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21, +0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x17,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34, +0x2e,0x02,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39, +0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20, +0x20,0x2f,0x01,0xe9,0x39,0x7c,0x66,0x43,0x31,0x5b,0x84,0x52,0x51,0x7c,0x55,0x2b,0x1f,0x34,0x45,0x4b,0x4c,0x20,0x20,0x49,0x3f,0x29,0x21,0x3a,0x4c,0x2b,0x3b,0x55,0x37,0x1a,0x2f,0x45,0x4e,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e, +0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20, +0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x05,0x24,0x44,0x84,0xc1,0x7d,0x4d,0x7f,0x5b,0x31,0x2d,0x51,0x73,0x48,0x54,0x92,0x7a,0x60,0x42,0x23,0x81,0x3c,0x6a,0x96,0x59,0x34,0x4a,0x2e,0x15,0x1b,0x32,0x46,0x2c,0x5f,0x98,0x68,0x38,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f, +0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0xa1,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14, +0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01, +0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x2e,0x07,0x27,0x27,0x21,0x35,0x21,0x17,0x1e,0x05,0x17,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68, +0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c, +0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x02,0xb1,0x13,0x1e,0x16,0x11,0x0b,0x09,0x06,0x04,0x03,0x02,0xfe,0x15,0x02,0x64,0x04,0x04,0x06,0x0a,0x10,0x1b,0x27,0x1b, +0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb, +0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x01,0x49,0x52,0x84,0x72,0x63,0x61,0x62,0x71,0x83,0x51,0x43,0x85,0x9e,0x70,0xac,0x93,0x84,0x91,0xab,0x6e,0x00,0x00,0x09, +0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0x9d,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33, +0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10, +0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x13,0x16,0x12,0x17,0x33,0x36,0x12,0x37,0x33,0x02,0x02,0x03,0x23,0x26,0x0a,0x02,0x27,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e, +0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05, +0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0xce,0x50,0x8c,0x3e,0x05,0x41,0x8a, +0x50,0x7e,0x66,0xad,0x4d,0x77,0x29,0x54,0x57,0x5c,0x31,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d, +0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x05,0xba,0xd9,0xfe,0x34,0xf8,0xf8,0x01,0xcc,0xd9,0xfe,0xe6,0xfd, +0xc7,0xfe,0xd8,0x9b,0x01,0x27,0x01,0x1d,0x01,0x14,0x88,0x00,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0x9d,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34, +0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27, +0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x26,0x02,0x27,0x23,0x06,0x02,0x07,0x23,0x36, +0x1a,0x02,0x37,0x33,0x12,0x12,0x13,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6, +0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e, +0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x03,0x06,0x51,0x8b,0x3e,0x05,0x41,0x8a,0x50,0x7f,0x34,0x5d,0x57,0x52,0x27,0x77,0x51,0xad,0x62,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e, +0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21, +0x2e,0x2f,0x01,0x49,0xda,0x01,0xcc,0xf7,0xf8,0xfe,0x34,0xd9,0x8e,0x01,0x1a,0x01,0x1e,0x01,0x21,0x94,0xfe,0xcb,0xfd,0xc9,0xfe,0xf1,0x00,0x0a,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0xaa,0x00,0xbf,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16, +0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07, +0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06, +0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x23,0x2e,0x03,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03,0x03,0x2e,0x03,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28, +0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27, +0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x03,0x51,0x80,0x20,0x2c,0x1c,0x11,0x07,0x64,0x60,0x40,0x71,0x54,0x32,0x29,0x4d,0x70,0x48, +0x46,0x71,0x30,0x1a,0x1e,0x12,0x09,0x05,0x06,0x10,0x1e,0x32,0xe3,0x03,0x06,0x08,0x0c,0x08,0x1c,0x58,0x38,0x23,0x3c,0x2c,0x19,0x20,0x38,0x4d,0x2e,0x26,0x53,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f, +0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80, +0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x01,0x49,0x4e,0x97,0x8d,0x83,0x39,0x2f,0x2a,0x4d,0x72,0x48,0x40,0x7b,0x60,0x3b,0x40,0x4c,0x28,0x50,0x57,0x62,0x3b,0x41,0x91,0xa2,0xb5,0x02,0x43,0x22,0x34,0x2d,0x28,0x15,0x46,0x4e,0x1e,0x34,0x46,0x27,0x2c,0x45,0x30,0x19,0x13,0x00,0x01,0x00,0x53,0x00,0x00,0x04,0x2d,0x05,0x9a,0x00,0x1d, +0x00,0x70,0x40,0x25,0x1b,0x00,0x1a,0x01,0x1a,0x03,0x18,0x02,0x0f,0x19,0x1f,0x19,0x02,0x19,0x40,0x0f,0x12,0x48,0x19,0x19,0x15,0x17,0x04,0x16,0x05,0x16,0x14,0x07,0x15,0x06,0x06,0x00,0x05,0x10,0x05,0x02,0x05,0xb8,0xff,0xc0,0x40,0x1a,0x0f,0x12,0x48,0x05,0x05,0x02,0x01,0x60,0x15,0x70,0x15,0x02,0x0d,0x15,0x01,0x01,0x15,0x0d, +0x03,0x13,0x1c,0x03,0x08,0x91,0x13,0x12,0x00,0x3f,0xed,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x11,0x33,0x33,0x2f,0x2b,0x5d,0x33,0x11,0x12,0x39,0x39,0x32,0x11,0x12,0x39,0x39,0x11,0x33,0x2f,0x2b,0x5d,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x25,0x15,0x05,0x15,0x25,0x15,0x05,0x11,0x33,0x32,0x37,0x36,0x37, +0x33,0x06,0x07,0x06,0x23,0x23,0x11,0x07,0x35,0x37,0x35,0x07,0x35,0x37,0x11,0x33,0x01,0xea,0x01,0x58,0xfe,0xa8,0x01,0x58,0xfe,0xa8,0x23,0xa3,0x68,0x66,0x0b,0xa4,0x14,0x93,0x90,0xee,0xc6,0xef,0xef,0xef,0xef,0xa8,0x04,0x1d,0x89,0x99,0x89,0x83,0x89,0x99,0x88,0xfe,0x2e,0x69,0x69,0xb9,0xfe,0x92,0x92,0x02,0x26,0x5e,0x98,0x5f, +0x83,0x5f,0x98,0x5f,0x01,0xc0,0x00,0x02,0x00,0xbb,0x00,0xf7,0x03,0xf5,0x04,0x66,0x00,0x0b,0x00,0x1b,0x00,0x00,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x02,0x59,0x6e,0x8f,0x93,0x6a,0x6a,0x91,0x8d,0x6e,0x71,0xbe,0x6d,0x6f, +0xbf,0x6e,0x6e,0xbf,0x71,0x6e,0xbe,0x03,0xcc,0xa2,0x7a,0x77,0xa8,0xa7,0x78,0x78,0xa4,0x9a,0x73,0xcc,0x78,0x76,0xcd,0x75,0x76,0xcc,0x76,0x76,0xcd,0x74,0x00,0x01,0x01,0x01,0xfe,0xe6,0x03,0xae,0x05,0x9c,0x00,0x29,0x00,0x00,0x01,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x07, +0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x01,0xe6,0xe5,0x50,0x94,0x55,0x5b,0x98,0x57,0x48,0x86,0x9c,0xf0,0xa4,0x56,0x87,0x1c,0x1c,0x2a,0x6e,0xb5,0x75,0x9d,0xad,0x4f,0x55,0x49,0x45,0x59,0x50,0x47,0x02,0xf7,0x8f,0xd7,0x5b,0x92,0x52,0x58,0xa4,0x68,0x5f,0xb8,0xc0, +0xa7,0xd2,0xd2,0x5e,0x6a,0x68,0x52,0x27,0x3b,0x23,0x2c,0x4b,0x75,0xa9,0x67,0x9d,0xd7,0xab,0x5b,0x63,0x6c,0x60,0x49,0x42,0x7d,0x2c,0x00,0x01,0x00,0xaf,0xfe,0xdb,0x04,0x00,0x05,0x9c,0x00,0x21,0x00,0x00,0x01,0x02,0x03,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16, +0x16,0x15,0x14,0x02,0x07,0x07,0x16,0x12,0x17,0x03,0x7b,0xee,0x9a,0x46,0x74,0x42,0x4a,0x3c,0x7c,0x50,0x85,0x8d,0xc3,0x9a,0x88,0x96,0x31,0xb1,0xa4,0x8f,0xea,0x83,0xca,0xb0,0x01,0x72,0x9e,0x66,0xfe,0xdb,0x01,0x56,0x01,0x6c,0x02,0x47,0x72,0x3b,0x3b,0x4a,0xd2,0x2a,0xb4,0x7d,0x9c,0xc8,0x49,0x94,0x4c,0x85,0xe9,0x86,0xa9,0xfe, +0xfa,0x3e,0x03,0xed,0xfe,0xf6,0x89,0x00,0x00,0x01,0x00,0xc2,0xfe,0xde,0x03,0xee,0x05,0x88,0x00,0x2f,0x00,0x00,0x01,0x26,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16,0x16,0x15,0x14,0x07,0x15,0x16,0x16,0x15,0x14, +0x06,0x07,0x15,0x16,0x16,0x17,0x03,0x42,0x5a,0x71,0x4b,0x81,0x9d,0x4c,0x39,0x3a,0x83,0x3a,0x5f,0x61,0x95,0x88,0xfe,0xc3,0x7a,0x8c,0x86,0x82,0xfe,0xd2,0x01,0x29,0x89,0xc3,0x65,0x84,0x62,0x74,0x98,0x7c,0x27,0x93,0x33,0xfe,0xde,0x8b,0x93,0x51,0x05,0x6b,0x51,0x38,0x48,0x57,0x52,0x19,0x85,0x5f,0x7b,0x83,0x97,0x66,0x5c,0x5a, +0x5f,0x96,0x53,0x98,0x64,0x9d,0x61,0x06,0x2b,0xc0,0x70,0x84,0xcc,0x24,0x04,0x29,0xb9,0x4c,0x00,0x02,0x00,0x6a,0xff,0xf3,0x04,0x46,0x05,0x88,0x00,0x25,0x00,0x31,0x00,0x00,0x01,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16, +0x16,0x17,0x3e,0x02,0x35,0x27,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x04,0x3f,0x07,0x4d,0x8b,0xa5,0x7e,0x69,0x56,0x98,0x59,0x9c,0xc4,0x65,0x80,0xae,0x89,0x4d,0x0a,0xa6,0x0e,0x41,0x77,0x96,0x92,0x77,0x42,0x04,0xfd,0xfe,0x64,0x57,0x52,0x6e,0x55,0x67,0x68,0x57,0x05,0x88,0x25,0x2e,0x66,0xba,0xb3,0x99, +0x74,0xc1,0x63,0x5d,0x91,0x50,0xb3,0x8f,0x5f,0xb9,0x79,0x94,0xa5,0xae,0x61,0x41,0x39,0x3e,0x32,0x51,0x92,0x8e,0x80,0x84,0x9a,0xa4,0x5b,0x44,0xfb,0xa6,0x4b,0x5a,0x63,0x4c,0x42,0x8f,0x5c,0x63,0x92,0x00,0x00,0x01,0x00,0x64,0xfe,0xdb,0x04,0xef,0x05,0x88,0x00,0x25,0x00,0x00,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37, +0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x12,0x12,0x17,0x07,0x26,0x02,0x27,0x35,0x06,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x37,0x01,0x5a,0x2e,0x24,0x8f,0x7f,0x35,0x66,0x24,0x42,0x48,0x3e,0x48,0x5f,0x3a,0x54,0xb1,0x64,0x80,0x62,0xc9,0x25,0x37,0x8c,0x3f,0x82,0xc8,0x6f,0x2b,0x23,0x05,0x88,0xb2,0xe2,0x63,0xc9, +0xd5,0x30,0x2c,0x60,0x6b,0x4b,0x5f,0x7b,0x5c,0x5f,0x5b,0xfe,0xf9,0xfe,0x91,0x85,0x5d,0x86,0x01,0xcd,0x90,0x01,0x2f,0x35,0x91,0x01,0x04,0x9c,0x6f,0x01,0x11,0x7c,0x00,0x01,0x00,0x39,0xfe,0xde,0x04,0x77,0x05,0x88,0x00,0x36,0x00,0x00,0x01,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x07,0x16,0x17,0x07,0x26,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x15,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x21,0x03,0x0a,0xed,0x73,0x7c,0x9d,0x7c,0x45,0x37,0x2a,0x3c,0x39,0x52,0x73,0x45,0x57,0x92,0x7d,0x3f,0x7c,0x2f,0x60,0x5a,0x80,0xd5,0x77,0x3c,0x4b, +0x63,0x75,0x3b,0x64,0xa9,0x85,0xe0,0xca,0x7e,0x7e,0x43,0x96,0x7d,0x01,0x1a,0x02,0xe0,0x75,0x6d,0x7e,0xa2,0x13,0x56,0x4a,0x3f,0x49,0x8f,0x5a,0x57,0x35,0xad,0xbd,0x5c,0x44,0xd4,0x6d,0x1c,0x75,0xce,0x7d,0x51,0x87,0x3c,0x06,0x26,0xa8,0x6f,0x4d,0x6c,0x47,0x2a,0x96,0x22,0x4a,0x3f,0x5e,0x72,0x00,0x00,0x01,0x00,0x2e,0xff,0xf8, +0x04,0x82,0x05,0x88,0x00,0x29,0x00,0x00,0x01,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x06,0x23,0x22,0x00,0x02,0x11,0x33,0x10,0x12,0x12,0x33,0x32,0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x37,0x03,0x8c,0x16,0x1d,0x78,0xaf,0x5e,0xa8,0x84,0x72,0xb0,0x60,0x7d,0xe2, +0x8f,0xcd,0xfe,0xea,0x83,0x9f,0x69,0xcd,0x93,0x95,0xb9,0x3e,0x6b,0x3e,0x3f,0x4c,0x43,0x75,0x46,0x1a,0x01,0xd4,0x05,0x62,0xae,0x67,0x89,0xb1,0x8b,0xfc,0x9c,0xb6,0xfe,0xe8,0x97,0x01,0x43,0x02,0x95,0x01,0xb8,0xfe,0x5a,0xfd,0xc3,0xfe,0xeb,0x01,0x05,0xce,0x6f,0xb1,0x64,0x59,0x4c,0x48,0x66,0x36,0x02,0x00,0x00,0x01,0x00,0x79, +0xff,0xa1,0x04,0x37,0x05,0x96,0x00,0x16,0x00,0x00,0x01,0x00,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x04,0x23,0x22,0x26,0x26,0x35,0x34,0x12,0x00,0x13,0x03,0x90,0xfd,0xef,0x52,0x19,0x95,0x73,0x6c,0xb9,0x6d,0x89,0x81,0xfe,0xfd,0x95,0x75,0xc1,0x6f,0x82,0x01,0x23,0xe9,0x05,0x39,0xfd,0x2c,0xc9,0x3c,0x3b,0x6c, +0x83,0x89,0xb4,0x57,0xc7,0xb4,0x64,0xb4,0x72,0x72,0x01,0x05,0x01,0xb2,0x01,0x42,0x00,0x01,0x00,0x81,0xfe,0xe6,0x04,0x2e,0x05,0x9c,0x00,0x27,0x00,0x00,0x01,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x17,0x1e,0x02,0x15,0x14,0x07,0x27,0x36,0x35,0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x16, +0x15,0x14,0x06,0x07,0x01,0xfc,0xc5,0x6f,0x59,0x60,0x77,0x38,0x86,0xcc,0xd0,0x7a,0x38,0x56,0x87,0x36,0x29,0x54,0xb4,0xec,0xa0,0x49,0xcf,0xa2,0x6b,0xaa,0x5f,0x99,0x90,0x03,0x32,0x54,0xa6,0x60,0x76,0x84,0x63,0x40,0x7e,0xa8,0xd8,0xdd,0x99,0x74,0x37,0x6b,0x6b,0x52,0x4e,0x34,0x22,0x4f,0x69,0xbf,0xfa,0xd2,0xb0,0x5a,0xa5,0xce, +0x61,0xad,0x67,0x82,0xc5,0x36,0x00,0x02,0x00,0xfd,0x00,0x93,0x05,0x06,0x04,0xc9,0x00,0x0e,0x00,0x1e,0x00,0x00,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x36,0x01,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x06,0x04,0x66,0x55,0x9d,0x66,0x6c,0xa8,0x5e,0xba,0x96,0x67, +0xaf,0x64,0xfe,0x79,0x8c,0xdd,0x79,0x8c,0xfa,0x96,0x8e,0xe2,0x7d,0x93,0xff,0x02,0xc0,0x64,0xa4,0x5d,0x66,0xb7,0x6c,0x9b,0xcb,0x68,0xb6,0xfe,0x3f,0x8a,0xf4,0x8e,0x98,0xff,0x93,0x87,0xed,0x90,0x99,0xfe,0xfb,0x94,0x00,0x01,0x01,0x70,0xff,0xe7,0x04,0x94,0x05,0xb1,0x00,0x25,0x00,0x00,0x01,0x16,0x16,0x17,0x16,0x16,0x15,0x14, +0x02,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x35,0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x02,0x3e,0x12,0x5d,0x74,0xc3,0xb0,0x76,0xb2,0x6a,0x5f,0x73,0xa2,0x73,0x35,0x40,0x3b,0x3f,0x75,0x8e,0x9d,0x6a,0x3c,0x59,0x3d,0x37,0x47,0x22,0x23,0x04,0xd3,0x20,0x56,0x59,0x98, +0xfe,0x81,0x7a,0xfe,0xfa,0x86,0x5a,0x4b,0x57,0x74,0x10,0x4d,0x54,0x3d,0x77,0x7c,0x74,0x7f,0x6e,0x6a,0x35,0x44,0x55,0x3f,0x36,0x25,0x2d,0x11,0x00,0x01,0x00,0xb9,0xff,0xa7,0x05,0x4a,0x05,0xb1,0x00,0x2d,0x00,0x00,0x01,0x14,0x06,0x07,0x15,0x16,0x04,0x17,0x07,0x26,0x24,0x24,0x27,0x37,0x16,0x17,0x16,0x33,0x32,0x36,0x36,0x35, +0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x1e,0x05,0x04,0x88,0xcc,0xcf,0xc8,0x01,0x3c,0x59,0x68,0x4d,0xfe,0x8e,0xfe,0x5e,0xc8,0x10,0x31,0x85,0x3c,0x36,0x7e,0xf5,0x7c,0x41,0x75,0xa9,0x97,0x82,0x46,0x56,0x42,0x36,0x46,0x22,0x23,0x01,0x34,0x8a,0x94,0x8f,0x71,0x46,0x03,0x4b,0x7e, +0xc8,0x3f,0x06,0x4b,0xe2,0x83,0x69,0x71,0xfa,0x9c,0x12,0xa5,0x03,0x19,0x06,0x4b,0x74,0x49,0x36,0x48,0x31,0x24,0x20,0x3c,0x57,0x41,0x44,0x5b,0x42,0x2f,0x1d,0x38,0x12,0x06,0x07,0x14,0x24,0x37,0x52,0x72,0x00,0x01,0x00,0x7d,0x00,0x93,0x05,0x86,0x05,0x36,0x00,0x23,0x00,0x00,0x13,0x12,0x00,0x33,0x32,0x36,0x36,0x35,0x34,0x26, +0x27,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x22,0x24,0x02,0x03,0x37,0xf6,0x96,0x01,0x40,0xce,0x64,0x97,0x53,0x98,0x83,0x09,0x30,0x8d,0x5b,0x61,0x83,0xc7,0xa8,0x95,0xe1,0x79,0x7a,0xdf,0x8e,0xb4,0xfe,0xce,0xf2,0x4a,0x73,0x05,0x36,0xfd,0xd2,0xfe,0x25,0x6c,0xc0, +0x70,0x9e,0xe3,0x18,0x0e,0x3c,0x4a,0x5b,0x83,0x93,0x6a,0x80,0x9c,0x91,0xfe,0xfe,0x9f,0xa0,0xfe,0xf5,0x99,0xf7,0x01,0xf5,0x01,0x5e,0x59,0x00,0x00,0x03,0x00,0xff,0x00,0x4c,0x05,0x04,0x05,0xb1,0x00,0x1d,0x00,0x2b,0x00,0x38,0x00,0x00,0x01,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26, +0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x13,0x34,0x26,0x26,0x27,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x14,0x16,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0xf1,0x95,0x7e,0x8a,0xee,0x8f,0x8e,0xed,0x83,0x8f,0xa7,0x87,0x7a,0x7f,0xe0,0x80,0x82,0xd2,0x77,0x6e,0x7f,0x77,0x46,0x80,0x9b, +0x9d,0x84,0x47,0xd8,0xa0,0x94,0xbd,0xfd,0x6c,0x3f,0x76,0x9f,0x9c,0x7a,0xb7,0x89,0x84,0xa6,0x03,0x32,0x3f,0xa8,0x77,0x75,0xb3,0x60,0x62,0xb1,0x75,0x7e,0xaa,0x37,0x06,0x34,0x91,0x65,0x62,0x98,0x54,0x51,0x94,0x64,0x6b,0x92,0x33,0xfe,0x98,0x44,0x63,0x4a,0x31,0x28,0x44,0x61,0x47,0x71,0x91,0x85,0x03,0x0b,0x37,0x50,0x3d,0x2f, +0x2c,0x71,0x54,0x4c,0x62,0x5e,0x00,0x02,0x00,0x8c,0x00,0x01,0x05,0x78,0x05,0xb1,0x00,0x1f,0x00,0x32,0x00,0x00,0x01,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x15,0x07,0x0e,0x02,0x15,0x14,0x16,0x33,0x17,0x15,0x06,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x00,0x37,0x17,0x01,0x14,0x16,0x16,0x33,0x37,0x26,0x26,0x35,0x34,0x36, +0x37,0x26,0x26,0x35,0x35,0x37,0x06,0x02,0x03,0xb5,0x2f,0x84,0x5f,0x18,0x2e,0x34,0x95,0x70,0xcb,0x8f,0x48,0x7a,0x50,0x79,0xd2,0xd1,0xb0,0xfe,0xdb,0xa5,0xa5,0x01,0x2d,0xc2,0x95,0xfd,0x75,0x78,0xde,0x95,0x43,0x42,0x5a,0x83,0x97,0x70,0x82,0x02,0xd9,0xe3,0x05,0x5e,0x5c,0x47,0x5d,0x86,0x0d,0x1f,0x4b,0x06,0x49,0x7d,0x78,0x77, +0x40,0x4c,0x80,0x80,0x06,0x6b,0x95,0x01,0x01,0x95,0x91,0x01,0x4c,0x01,0x35,0x73,0x4d,0xfc,0xcc,0x76,0xb8,0x63,0x03,0x36,0xa2,0x4d,0x62,0xc2,0x6e,0x2a,0xaa,0x71,0x15,0x15,0xac,0xfe,0xac,0x00,0x00,0x01,0x00,0x1f,0xff,0xe5,0x05,0xe4,0x05,0xb1,0x00,0x2d,0x00,0x00,0x01,0x11,0x14,0x33,0x32,0x36,0x37,0x33,0x16,0x12,0x15,0x14, +0x02,0x06,0x23,0x20,0x00,0x03,0x37,0x33,0x12,0x21,0x32,0x36,0x36,0x35,0x34,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x03,0x4d,0x23,0x68,0xbd,0x68,0x0e,0x66,0x73,0x87,0xff,0xae,0xfe,0xae,0xfe,0x39,0x78,0x77,0x06,0xfa,0x02,0x1c,0x7a,0xb6,0x62,0x34,0x47,0xc2,0x66,0x74, +0x85,0x06,0x1a,0x1d,0x2a,0x46,0x58,0x41,0x56,0x63,0x04,0x89,0xfe,0xd2,0x73,0x93,0xa4,0x59,0xfe,0xf7,0x98,0xa6,0xfe,0xf9,0x93,0x02,0x35,0x02,0x51,0x64,0xfb,0xb5,0x6f,0xc6,0x7b,0x7a,0x6a,0x60,0x6e,0x8f,0x78,0x01,0x72,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x00,0x02,0x00,0xf5,0xff,0xe8,0x05,0x0e,0x05,0xb1,0x00,0x21,0x00,0x30, +0x00,0x00,0x01,0x06,0x23,0x22,0x24,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x03,0x15,0x11,0x17,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x01,0x32,0x37,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x06,0x15,0x17,0x16,0x03,0xbc,0x63,0x96,0x5c,0xfe,0xe1,0x1b,0x19,0x1f,0x62,0x9a,0xc7,0x73,0x1f,0x58,0x59, +0x3e,0x27,0x01,0x06,0x1a,0x1d,0x2a,0x46,0x58,0x41,0x57,0x62,0xfe,0xfb,0xa2,0x63,0x29,0x37,0x3a,0x11,0x61,0xae,0x65,0x07,0x8c,0x02,0x74,0x1d,0x2a,0x13,0x1c,0x5b,0x2a,0x65,0xfc,0xb7,0x64,0x35,0x62,0x84,0xb2,0x74,0xfd,0xb2,0x4c,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x8a,0x01,0xe2,0x27,0x57,0x75,0xa0,0x63,0x2c,0x87,0xe9,0x83, +0x0a,0x25,0x00,0x02,0x00,0x3a,0xff,0xe8,0x05,0xca,0x05,0xb1,0x00,0x31,0x00,0x41,0x00,0x00,0x13,0x27,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x36,0x35,0x34,0x27,0x35,0x37,0x33,0x16,0x15,0x14,0x06,0x23,0x22,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x03, +0x35,0x25,0x22,0x07,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x36,0x35,0x27,0x26,0x26,0xe8,0x01,0x06,0x1a,0x1d,0x2a,0x46,0x58,0x41,0x56,0x63,0x78,0xa1,0x90,0x80,0x26,0x52,0x54,0x58,0x4c,0x0b,0x82,0x06,0x28,0xad,0x90,0x30,0x1b,0x0e,0x62,0x99,0xc7,0x71,0x1f,0x58,0x59,0x3e,0x27,0x01,0xca,0x9b,0x8b,0x29,0x37,0x3a,0x11,0x61,0xab, +0x65,0x07,0x3b,0x6f,0x04,0x71,0x52,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x8a,0xfe,0xa4,0x36,0x3c,0x18,0x12,0x3a,0x3b,0x1d,0x1f,0x06,0x62,0x4f,0x52,0x81,0x9b,0x06,0x19,0x2a,0x64,0xff,0xb6,0x63,0x35,0x62,0x84,0xb2,0x74,0x97,0x40,0x57,0x75,0xa0,0x63,0x2c,0x85,0xeb,0x83,0x0a,0x20,0x1e,0x00,0x01,0x00,0xaf,0xff,0xe7,0x05,0x54, +0x05,0xb1,0x00,0x3c,0x00,0x00,0x01,0x22,0x06,0x06,0x15,0x14,0x17,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x20,0x13,0x36,0x36,0x35,0x34,0x26,0x26,0x27,0x24,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x14,0x16,0x17,0x04,0x16,0x16,0x15,0x14,0x06,0x06,0x23, +0x2e,0x02,0x02,0x3f,0x41,0x6f,0x42,0x0c,0x0b,0x0f,0x4e,0x2d,0x41,0x5d,0x5f,0x4b,0x4d,0x90,0x56,0x6d,0xb2,0x6d,0x01,0x6e,0x4c,0x56,0x6a,0x55,0xac,0xff,0xfe,0xe1,0xe2,0x4f,0x44,0x39,0x48,0x22,0x23,0x01,0x94,0xa2,0x01,0x37,0xeb,0x7a,0x87,0xd5,0x85,0x23,0x4e,0x72,0x02,0x1f,0x45,0x7a,0x41,0x28,0x25,0x02,0x2a,0x36,0x66,0x44, +0x47,0x58,0x57,0x95,0x59,0x6a,0xc4,0x63,0xfd,0xec,0x23,0xa6,0x5f,0x42,0x6e,0x61,0x5f,0x69,0xcd,0x8a,0x54,0x5c,0x3e,0x37,0x25,0x2d,0x11,0x06,0x3f,0x6c,0x39,0x6e,0x8c,0xaf,0x6d,0x81,0xf5,0x7c,0xe5,0xe2,0x71,0x00,0x00,0x02,0x00,0xb7,0x00,0xe6,0x04,0x0d,0x04,0x23,0x00,0x0b,0x00,0x17,0x00,0x00,0x01,0x14,0x06,0x23,0x22,0x26, +0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x0d,0xf8,0xb3,0xb3,0xf8,0xf0,0xbb,0xbb,0xf0,0xa0,0x93,0x78,0x77,0x94,0x97,0x74,0x73,0x98,0x02,0x83,0xae,0xef,0xef,0xae,0xbb,0xe5,0xe5,0xbb,0x71,0xab,0xad,0x6f,0x77,0xa5,0xa8,0x00,0x02,0x01,0x2a,0xff,0xba,0x03,0x99,0x05,0x1a, +0x00,0x15,0x00,0x1e,0x00,0x00,0x05,0x24,0x11,0x35,0x12,0x35,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x10,0x03,0x15,0x14,0x17,0x01,0x35,0x34,0x23,0x22,0x15,0x14,0x33,0x32,0x03,0x99,0xfe,0xeb,0x0a,0x25,0x25,0x7e,0x9c,0x9f,0x7c,0x7a,0x72,0x0a,0x72,0xfe,0xfa,0x4e,0x7b,0x78,0x21,0x46,0x24,0x01,0x11,0x0c,0x01, +0x1e,0xe4,0x08,0x9b,0x7d,0x74,0x99,0xb2,0xe0,0xfe,0xf0,0xfe,0x83,0x07,0x8e,0x0d,0x03,0x44,0x25,0xb8,0x6d,0x7c,0x00,0x01,0x00,0x7d,0xff,0xbe,0x04,0x46,0x04,0xee,0x00,0x20,0x00,0x00,0x25,0x07,0x26,0x27,0x26,0x27,0x06,0x23,0x22,0x35,0x34,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x36,0x33,0x32,0x00, +0x15,0x10,0x05,0x16,0x16,0x04,0x46,0x28,0x79,0x5b,0x19,0xa2,0x6c,0x6f,0xd9,0xe9,0x79,0x6b,0x6b,0x80,0xc3,0xa3,0xbc,0x8f,0x65,0x72,0xbe,0x80,0xe5,0x01,0x21,0xfe,0xf6,0x65,0x6d,0x58,0x9a,0x11,0x43,0x12,0x98,0x24,0x91,0x8e,0x45,0x38,0xc5,0x73,0xa4,0xc8,0x77,0x7c,0x57,0x44,0xfe,0xda,0xe6,0xfe,0xd1,0xad,0x63,0x3e,0x00,0x01, +0x00,0x8b,0xff,0x7b,0x04,0x39,0x05,0x04,0x00,0x2a,0x00,0x00,0x01,0x14,0x05,0x16,0x17,0x07,0x26,0x26,0x27,0x07,0x22,0x27,0x26,0x35,0x34,0x33,0x32,0x17,0x24,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x27,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x20,0x11,0x14,0x06,0x07,0x16,0x04,0x39,0xfe,0xdb,0x41,0x7d,0x29,0x72,0x96, +0x62,0x4c,0x8c,0x41,0x77,0xaa,0x6d,0xb3,0x01,0x20,0xfe,0xca,0xcd,0xeb,0x7c,0x94,0x82,0x49,0xa0,0xa8,0xbb,0x38,0xd6,0xc5,0x02,0x0b,0x57,0x3c,0x9b,0x01,0x8f,0xe9,0x41,0x2e,0x22,0x9a,0x1f,0x51,0x61,0x01,0x12,0x22,0x65,0x78,0x6e,0x14,0x8d,0xcb,0xa1,0x5a,0x53,0x7c,0x29,0x17,0x47,0x97,0x50,0xfe,0xa4,0x46,0x9b,0x24,0x77,0x00, +0x00,0x02,0x00,0xb4,0xff,0xba,0x04,0x10,0x05,0x1e,0x00,0x1c,0x00,0x29,0x00,0x00,0x01,0x02,0x01,0x1e,0x02,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x00,0x03,0x33,0x16,0x16,0x17,0x3e,0x02,0x37,0x03,0x34,0x27,0x26,0x27,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0x30,0xfe,0xef,0x81,0x3d,0x1f, +0x5c,0x9b,0x53,0x54,0x9a,0x5c,0x1f,0x3e,0x80,0xfe,0xeb,0x2c,0xaa,0x22,0x76,0x6f,0x57,0x55,0x3d,0x18,0x5a,0x38,0x11,0x5e,0x72,0x3b,0x67,0x43,0x43,0x67,0x05,0x1e,0xfe,0x81,0xfe,0xdc,0x95,0x64,0x63,0x30,0x51,0x8f,0x55,0x55,0x8f,0x51,0x30,0x63,0x65,0x94,0x01,0x28,0x01,0x7b,0xb6,0xfa,0x76,0x5a,0x8d,0xba,0x85,0xfb,0xd1,0x3b, +0x50,0x18,0x6c,0x84,0x50,0x3b,0x38,0x5e,0x5c,0x00,0x00,0x01,0x00,0x79,0xff,0xf6,0x04,0x4b,0x04,0xe1,0x00,0x1a,0x00,0x00,0x05,0x23,0x11,0x06,0x23,0x22,0x24,0x27,0x37,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16,0x33,0x32,0x36,0x37,0x11,0x33,0x04,0x4b,0xa0,0x7b,0xe0,0xa7,0xfe,0xf9,0x29,0x4f,0x39,0x41,0x23, +0xaa,0x5a,0x65,0x1f,0x9f,0x56,0x57,0xd7,0x2d,0xa0,0x0a,0x01,0x53,0x2a,0x8e,0x7e,0x69,0x66,0x92,0x50,0xde,0x27,0xac,0xa9,0xcd,0x98,0x31,0x37,0x22,0x16,0x02,0xea,0x00,0x01,0x00,0x9d,0xff,0xf6,0x04,0x26,0x06,0x30,0x00,0x2d,0x00,0x00,0x25,0x06,0x23,0x22,0x24,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x37,0x26,0x35,0x34,0x36,0x33, +0x17,0x15,0x27,0x22,0x06,0x15,0x14,0x17,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x20,0x15,0x14,0x16,0x33,0x32,0x37,0x04,0x26,0xb9,0xc0,0xe9,0xfe,0xd9,0xa0,0x9c,0xde,0xc2,0x1c,0x98,0x7a,0x69,0x69,0x50,0x22,0x68,0x88,0x23,0x75,0x7a,0xc1,0xa2,0xba,0x84,0xec,0xcb,0xfe,0x9d,0xe0,0x91,0xa3,0xa5,0x39, +0x43,0xc4,0xaf,0xa5,0x5c,0x5d,0xb1,0x98,0xb4,0x10,0x32,0x45,0x6a,0x7b,0x04,0xa7,0x03,0x1c,0x21,0x47,0x27,0x23,0x9c,0x1a,0x5f,0x61,0x52,0x6d,0xaf,0xa1,0x61,0x72,0x3b,0x00,0x00,0x01,0x00,0xdf,0xff,0xf0,0x03,0xe4,0x05,0x25,0x00,0x17,0x00,0x00,0x01,0x14,0x00,0x05,0x27,0x36,0x00,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17, +0x07,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x03,0xe4,0xfe,0xba,0xff,0x00,0x70,0xe0,0x01,0x37,0x98,0x69,0x52,0x74,0x40,0x8c,0x53,0xc4,0xa1,0xb1,0xef,0x03,0x92,0xc2,0xfe,0x08,0xe8,0x71,0xcb,0x01,0xc9,0x9d,0x61,0x92,0x6b,0x46,0x52,0x6b,0x4e,0x75,0x96,0x8f,0xc2,0xe8,0x00,0x01,0x00,0x4b,0xff,0xf6,0x04,0x79,0x05,0x29,0x00,0x18, +0x00,0x00,0x25,0x06,0x23,0x22,0x00,0x11,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x21,0x15,0x21,0x16,0x15,0x10,0x12,0x33,0x32,0x37,0x04,0x79,0x9b,0xa6,0xfb,0xfe,0xcd,0x07,0xb8,0x83,0x40,0x5c,0x26,0x02,0xbd,0xfd,0x59,0x03,0xdd,0xb2,0x65,0x79,0x65,0x6f,0x01,0xd2,0x01,0x80,0x52,0x47,0x09,0x89,0x3f,0x77,0xa8,0x9f,0x2f, +0x6b,0xfe,0xc9,0xfe,0x85,0x4d,0x00,0x01,0x00,0x4b,0xff,0xf6,0x04,0x79,0x05,0xda,0x00,0x25,0x00,0x00,0x25,0x06,0x23,0x22,0x00,0x11,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x21,0x26,0x35,0x34,0x36,0x33,0x15,0x22,0x07,0x06,0x15,0x14,0x16,0x33,0x15,0x21,0x16,0x15,0x10,0x12,0x33,0x32,0x37,0x04,0x79,0x9b,0xa6,0xfb,0xfe, +0xcd,0x07,0xb8,0x83,0x40,0x5c,0x26,0x01,0xb5,0x11,0x8e,0xb1,0x44,0x17,0x45,0x46,0x34,0xfd,0x59,0x03,0xdd,0xb2,0x65,0x79,0x65,0x6f,0x01,0xd2,0x01,0x80,0x52,0x47,0x09,0x89,0x3f,0x77,0xa8,0x2c,0x37,0x7f,0x77,0xa0,0x06,0x11,0x3f,0x2c,0x37,0x9f,0x2f,0x6b,0xfe,0xc9,0xfe,0x85,0x4d,0x00,0x00,0x02,0x00,0xe1,0x01,0x13,0x04,0x33, +0x04,0xa4,0x00,0x0b,0x00,0x19,0x00,0x00,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x02,0x8b,0x73,0x99,0x9d,0x6f,0x70,0x9a,0x97,0x73,0x75,0xc3,0x70,0xed,0xbb,0x72,0xc6,0x72,0xe9,0x04,0x09,0xab,0x81,0x7f,0xb0,0xb0,0x7f,0x80,0xac,0x9b, +0x76,0xd3,0x7f,0xc8,0xfe,0xff,0x7a,0xd3,0x7c,0xce,0xfa,0x00,0x00,0x02,0x00,0xdc,0xff,0xe8,0x04,0x38,0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0x00,0x01,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x03,0x32,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0xbb, +0x02,0x50,0x4e,0x8c,0xb3,0xb2,0x87,0x92,0xb8,0x90,0x49,0x3f,0x83,0x35,0x42,0x44,0xa4,0x58,0x4c,0x55,0x49,0x47,0x5c,0x5b,0x03,0x39,0x02,0x15,0xb7,0x98,0x8c,0xb1,0xc9,0x9f,0xfc,0x38,0x67,0xac,0x28,0x2d,0x55,0x4b,0x03,0x3e,0x23,0x66,0x5e,0x6a,0x5e,0x49,0x4c,0x5e,0x00,0x01,0x00,0xa6,0xff,0xe8,0x04,0x6d,0x05,0xb2,0x00,0x26, +0x00,0x00,0x01,0x14,0x06,0x07,0x17,0x16,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x03,0xae,0xca,0xac,0x25,0x22,0x64,0x51,0x73,0x8c,0x3a,0x96,0x9f,0x90,0xb4,0x30,0x28,0x7d,0x79,0x68,0x47,0x94,0x38, +0x6e,0x81,0xbe,0x9f,0x62,0x33,0x1a,0x38,0x60,0xa7,0xed,0x7e,0x03,0xce,0xa3,0xf2,0x26,0x90,0x82,0x7e,0x47,0x9e,0x44,0xbc,0xc0,0xa3,0x05,0x4e,0x53,0x45,0x5d,0x9d,0x20,0x9c,0x6b,0x90,0xae,0x08,0x95,0x0e,0x7a,0xdb,0x00,0x01,0x00,0x68,0xff,0xe8,0x04,0xab,0x05,0xb2,0x00,0x2b,0x00,0x00,0x01,0x16,0x15,0x14,0x06,0x06,0x23,0x22, +0x24,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x07,0x03,0xd9,0xd2,0x7b,0xdd,0x89,0xb9,0xfe,0xd6,0x7f,0x7a,0x5e,0xf8,0x8d,0x97,0xb1,0x70,0x5e,0x36,0x40,0x58,0x4d,0x13,0x29,0x5d,0x6f,0x8e,0x96, +0x78,0x4d,0x3f,0x23,0x4d,0x57,0x88,0xc7,0x68,0x7f,0x02,0xf7,0x8d,0xe4,0x7d,0xbc,0x65,0xb6,0xc0,0x5f,0x94,0xa6,0x8e,0x7e,0x56,0x90,0x2f,0x10,0x0b,0x97,0x07,0x89,0x6a,0x6f,0x86,0x12,0x97,0x16,0x6a,0xbd,0x74,0xb0,0x6e,0x00,0x00,0x02,0x00,0x2d,0xff,0xe8,0x04,0xe7,0x05,0xbc,0x00,0x10,0x00,0x1b,0x00,0x00,0x13,0x01,0x01,0x17, +0x01,0x16,0x12,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x10,0x37,0x01,0x01,0x34,0x26,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x93,0x01,0xf5,0x01,0xed,0x72,0xfe,0x16,0x76,0x71,0xbd,0x9b,0x9f,0xbd,0xe6,0xfe,0x17,0x03,0x19,0x55,0x64,0xbf,0x67,0x50,0x54,0x6d,0x05,0xbc,0xfe,0x3a,0x01,0xc6,0x75,0xfe,0x3b,0x81,0xfe,0xff,0x92,0xae, +0xd8,0xe0,0xb0,0x01,0x1a,0xf6,0x01,0xbc,0xfc,0x35,0x5a,0xd5,0x6e,0xcb,0xd8,0x67,0x89,0x8a,0x00,0x01,0x00,0x0c,0xff,0xe8,0x05,0x07,0x05,0xb2,0x00,0x22,0x00,0x00,0x25,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x16,0x33,0x32, +0x37,0x11,0x33,0x04,0x2e,0x90,0x49,0x3f,0x83,0x35,0x42,0x44,0x6e,0x8b,0xda,0xe8,0x2c,0x2f,0x2d,0x1c,0x1f,0x28,0x41,0x76,0x88,0x8e,0x7c,0x97,0x76,0xa4,0x82,0x67,0xac,0x28,0x2d,0x55,0x4b,0xfb,0x35,0xed,0xdb,0x01,0xa2,0x29,0x36,0x05,0x96,0x0a,0x91,0x7f,0xfe,0x5e,0x87,0x90,0x66,0x03,0x4b,0x00,0x00,0x01,0x00,0x68,0xff,0xe8, +0x04,0xac,0x05,0xbb,0x00,0x36,0x00,0x00,0x01,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x2e,0x02,0x35,0x34,0x37,0x35,0x24,0x35,0x10,0x21,0x32,0x36,0x35,0x34,0x27,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x03,0x57, +0xb9,0x5f,0x66,0x81,0xb5,0xdb,0xc2,0xa2,0x89,0x86,0x60,0x2f,0x57,0x5b,0x3f,0x53,0xfa,0xb6,0xc1,0x62,0x44,0xfe,0xe9,0x01,0x9a,0x43,0x56,0x06,0x9d,0x04,0xac,0x82,0x87,0x7b,0x89,0x6c,0x2b,0x2d,0xed,0x03,0x1a,0x1c,0x0e,0x59,0x48,0x3d,0x3d,0x05,0x07,0x79,0x75,0x6d,0x86,0x28,0x8b,0x1b,0x38,0x27,0x50,0x06,0x05,0x3d,0x7b,0x62, +0x66,0x4a,0x02,0x45,0xdb,0x01,0x25,0x25,0x22,0x17,0x12,0x33,0x12,0x1e,0x49,0x5f,0x47,0x47,0x43,0x50,0x03,0x23,0x00,0x02,0x00,0x4d,0xff,0xe8,0x04,0xc6,0x05,0xb2,0x00,0x1d,0x00,0x29,0x00,0x00,0x13,0x12,0x12,0x33,0x32,0x36,0x12,0x35,0x34,0x27,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x06, +0x23,0x22,0x00,0x03,0x25,0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xe8,0x2c,0xcf,0xb5,0x76,0xb8,0x62,0x04,0x02,0x7d,0x9b,0xa1,0xc9,0xc0,0xa2,0x89,0xce,0x6d,0x89,0xfd,0xa2,0xf8,0xfe,0xde,0x37,0x02,0xb4,0x42,0x89,0x3d,0x21,0x83,0x52,0x5e,0x77,0x6d,0x03,0x23,0xfe,0x94,0xfe,0xcc,0x92,0x01,0x00,0x97,0x3d,0x3a, +0x6a,0xdb,0xb0,0xa5,0xc9,0xbf,0xfe,0x9b,0xed,0xc9,0xfe,0xc0,0xb0,0x01,0x70,0x01,0xa2,0x5a,0x47,0x44,0x91,0xa7,0x73,0x5f,0x6c,0x85,0x00,0x01,0x00,0xab,0xff,0xe8,0x04,0x69,0x05,0xbc,0x00,0x14,0x00,0x00,0x01,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x13,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x37,0x01,0x03,0xa7,0xfe, +0x6e,0x6f,0x5e,0x90,0x74,0xe9,0xab,0x89,0x7c,0xfd,0xa0,0xbb,0xea,0x6c,0x71,0x01,0x96,0x05,0x5f,0xfd,0xdf,0x97,0xd8,0x5a,0x6a,0x88,0x01,0x3b,0x57,0xd3,0xac,0xe3,0xaf,0x7c,0x01,0x07,0x98,0x02,0x27,0x00,0x00,0x02,0x00,0x7d,0xff,0xe8,0x04,0x96,0x05,0xb5,0x00,0x03,0x00,0x18,0x00,0x00,0x01,0x01,0x17,0x01,0x25,0x14,0x16,0x16, +0x33,0x32,0x36,0x37,0x17,0x06,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x37,0x17,0x06,0x02,0x02,0x1d,0x01,0xb1,0x71,0xfe,0x52,0xfe,0x8a,0x72,0xc8,0x78,0x61,0xa7,0x51,0x70,0xce,0xf5,0xae,0xfe,0xef,0x97,0xdc,0xca,0x70,0xad,0xcb,0x02,0x68,0x01,0x8c,0x73,0xfe,0x75,0x9a,0x99,0xf0,0x84,0x49,0x43,0x73,0xb4,0xab,0x01,0x3c,0xcc,0xe6, +0x01,0x97,0x9d,0x75,0x84,0xfe,0x90,0x00,0x00,0x02,0x00,0xad,0x00,0xd7,0x04,0x7a,0x04,0x89,0x00,0x0f,0x00,0x1c,0x00,0x00,0x13,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x36,0xad,0x81,0xe3,0x83,0x81,0xe3,0x82,0x84,0xe2,0x80,0x81, +0xe3,0x83,0x03,0x26,0xb9,0x86,0x84,0xbc,0xbb,0x85,0x55,0x94,0x56,0x02,0xb0,0x7d,0xda,0x82,0x80,0xdc,0x7d,0x7e,0xdc,0x7f,0x80,0xdc,0x7d,0x84,0xbc,0xbc,0x84,0x82,0xbd,0x54,0x96,0x00,0x00,0x02,0x01,0x15,0xff,0xe2,0x04,0x12,0x05,0x7d,0x00,0x15,0x00,0x21,0x00,0x00,0x01,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06, +0x23,0x22,0x27,0x1e,0x02,0x17,0x07,0x24,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x15,0x69,0xb2,0x67,0x65,0xb1,0x65,0x64,0xb2,0x65,0x68,0x47,0x1b,0x8c,0xe0,0x84,0x56,0xfe,0xcc,0xfe,0xac,0x02,0x58,0x7d,0x59,0x55,0x7f,0x7e,0x56,0x59,0x7d,0x03,0xe5,0x6c,0xbe,0x6e,0x69,0xb1,0x62,0x64,0xae,0x68, +0x33,0x72,0xe3,0xc1,0x3c,0x86,0x92,0x02,0x27,0x01,0x66,0x5c,0x84,0x8b,0x63,0x58,0x7c,0x87,0x00,0x02,0x01,0x15,0xff,0xe2,0x04,0x12,0x05,0x7d,0x00,0x17,0x00,0x23,0x00,0x00,0x01,0x10,0x00,0x05,0x27,0x36,0x36,0x37,0x15,0x36,0x37,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x05,0x14,0x16,0x33,0x32,0x36, +0x35,0x34,0x26,0x23,0x22,0x06,0x04,0x12,0xfe,0xaa,0xfe,0xcf,0x55,0x68,0xbc,0x44,0x74,0x2e,0x49,0x67,0x65,0xb1,0x65,0x67,0xb0,0x64,0x66,0xb3,0x69,0xfd,0xaa,0x7d,0x57,0x57,0x7d,0x7d,0x57,0x58,0x7c,0x03,0xe5,0xfe,0xb7,0xfd,0xd7,0x91,0x86,0x31,0x90,0x4f,0x01,0x91,0xb2,0x33,0x67,0xaf,0x64,0x64,0xb1,0x67,0x6e,0xbe,0x50,0x5d, +0x85,0x7d,0x57,0x62,0x8c,0x83,0x00,0x01,0x00,0x2f,0x00,0x00,0x04,0xf9,0x05,0x7d,0x00,0x33,0x00,0x00,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11, +0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x02,0x5c,0x31,0x4f,0x27,0x5c,0x82,0x4c,0x36,0x17,0x1c,0x2e,0x27,0x33,0x52,0x77,0x80,0x5a,0x50,0x8b,0x4f,0x61,0xb4,0x74,0x4f,0x86,0x1d,0x2a,0x7f,0x4e,0xa1,0xb7,0xa4,0x69,0x46,0x4a,0x5c,0xa4,0x03,0xe7,0x3f,0x76,0x45,0xc8,0x91,0x6d,0x9d,0x26,0x19,0x16,0x2e,0x11,0x8d,0x04,0x87,0x57, +0x5f,0x88,0x77,0xc7,0x74,0x8f,0xe5,0x81,0x53,0x40,0x48,0x4b,0xc0,0xa2,0xfb,0xe5,0x04,0x1b,0x4f,0x77,0x8d,0x6d,0xfc,0x19,0x00,0x02,0x00,0x40,0xff,0xe5,0x04,0xe7,0x05,0xa9,0x00,0x17,0x00,0x23,0x00,0x00,0x01,0x34,0x36,0x37,0x26,0x03,0x37,0x12,0x05,0x36,0x13,0x17,0x02,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26, +0x25,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x03,0x95,0x84,0xee,0xee,0xa6,0xa6,0x01,0x1e,0xc3,0xe1,0x99,0xd6,0xde,0x85,0x93,0x72,0xc3,0x6f,0x6f,0xc1,0x74,0x02,0xa0,0x8c,0x70,0x73,0x8a,0x94,0x69,0x67,0x95,0x01,0x60,0x87,0xfa,0x57,0x94,0x01,0x9b,0x42,0xfe,0xa2,0xb0,0x6d,0x01,0x87,0x43,0xfe,0x8d,0xa2, +0x64,0xf1,0x74,0x6e,0xb5,0x66,0x65,0xb1,0x72,0x5f,0xc7,0x3f,0x38,0xcf,0x6b,0x5c,0x84,0x8b,0x00,0x03,0x00,0x34,0xff,0xe5,0x04,0xf3,0x05,0x7d,0x00,0x24,0x00,0x30,0x00,0x3c,0x00,0x00,0x13,0x34,0x36,0x37,0x26,0x03,0x37,0x16,0x17,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x27, +0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x25,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x13,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0xdb,0x7d,0x6e,0xc8,0xca,0x86,0x80,0x8c,0x49,0x63,0xaa,0x61,0x5c,0xa4,0x60,0x89,0x5f,0x73,0xba,0x63,0x88,0x60,0x82,0x48,0x66,0xb0,0x64,0x65,0xb0,0x67,0x02, +0x50,0x50,0x43,0x7d,0x97,0x7c,0x57,0x56,0x7e,0x79,0x6d,0x4c,0x52,0x74,0x4f,0x45,0x6a,0x81,0x01,0x47,0x57,0xb0,0x47,0x59,0x01,0x24,0x65,0xe0,0x56,0x62,0x78,0x5d,0xa5,0x60,0x64,0xab,0x60,0x5d,0xb5,0x3b,0x2b,0xa3,0x89,0x65,0xaa,0x5c,0x7e,0x62,0x55,0x98,0x59,0x60,0xa4,0x42,0x54,0x9f,0x32,0x29,0x95,0x4b,0x53,0x74,0x62,0x03, +0x2c,0x56,0x7d,0x74,0x52,0x3f,0x8a,0x3d,0x38,0x89,0x00,0x01,0x00,0x55,0x00,0x00,0x04,0xd3,0x05,0x7d,0x00,0x2f,0x00,0x00,0x33,0x35,0x33,0x20,0x00,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x26,0x26,0x35,0x34,0x36,0x36, +0x33,0x32,0x16,0x16,0x15,0x10,0x00,0x21,0x55,0xcc,0x01,0x42,0x01,0xc7,0x56,0x94,0x56,0x57,0x7e,0x37,0x2e,0x43,0x4b,0xc1,0x86,0x61,0xc1,0x42,0x86,0x36,0x75,0x33,0x44,0x5c,0x76,0x3a,0x42,0x66,0xaf,0x66,0x81,0xe4,0x84,0xfd,0xd4,0xfe,0x7a,0xa7,0x01,0x9f,0x01,0x27,0x63,0xad,0x64,0x54,0x3c,0x17,0x39,0x1a,0x26,0x6b,0x3a,0x77, +0xa7,0x77,0x76,0x55,0x50,0x57,0x46,0x2f,0x3e,0x3d,0x1f,0x6e,0x3d,0x4f,0x8b,0x50,0x90,0xf5,0x8b,0xfe,0x94,0xfd,0xff,0x00,0x00,0x02,0x00,0x4f,0xff,0xe5,0x04,0xd8,0x05,0x7d,0x00,0x27,0x00,0x33,0x00,0x00,0x17,0x35,0x33,0x20,0x00,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x10,0x00,0x21,0x13,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x4f,0x95,0x01,0x5e,0x01,0xef,0x73,0xcc,0x72,0x69,0xb8,0x6b,0x09,0x27,0x7d,0x4a,0x77,0xa0,0xa0,0x70,0x6e,0xc4,0x71,0x99,0x01,0x06,0x92,0x9f,0x01,0x17,0xa2,0xfd,0xab,0xfe,0x61,0x79, +0x11,0x53,0x31,0x2e,0x3b,0x46,0x2a,0x30,0x50,0x1b,0x9c,0x01,0xad,0x01,0x32,0x66,0xb3,0x68,0x5e,0xa2,0x5e,0x18,0x26,0x43,0x54,0x9a,0x69,0x6b,0x98,0x75,0xc9,0x6f,0x86,0xec,0x88,0x92,0xfd,0x8e,0xfe,0x8b,0xfd,0xfa,0x02,0xcb,0x1b,0x24,0x40,0x28,0x26,0x36,0x4c,0x00,0x00,0x01,0x00,0xc1,0x00,0x00,0x04,0x67,0x05,0x42,0x00,0x05, +0x00,0x00,0x13,0x21,0x15,0x21,0x11,0x23,0xc1,0x03,0xa6,0xfd,0x02,0xa8,0x05,0x42,0x99,0xfb,0x57,0x00,0x00,0x01,0x00,0xdc,0xff,0xe2,0x04,0x4c,0x05,0x62,0x00,0x16,0x00,0x00,0x13,0x34,0x12,0x37,0x33,0x01,0x11,0x33,0x11,0x14,0x06,0x23,0x01,0x06,0x06,0x15,0x14,0x00,0x17,0x07,0x26,0x24,0x02,0xdc,0xb1,0x9b,0x1b,0x01,0x62,0xa7, +0x1e,0x13,0xfe,0x14,0x56,0x54,0x01,0x19,0xec,0x43,0xac,0xfe,0xe0,0x9f,0x02,0xe5,0xac,0x01,0x58,0x79,0xfe,0x8f,0x01,0x71,0xfd,0x5b,0x0b,0x13,0x01,0xf5,0x51,0xde,0x80,0xcd,0xfe,0xb1,0x51,0x96,0x3b,0xf3,0x01,0x35,0x00,0x02,0x01,0xbd,0xff,0xe8,0x05,0x87,0x05,0x48,0x00,0x0b,0x00,0x17,0x00,0x00,0x01,0x10,0x02,0x23,0x22,0x02, +0x11,0x10,0x12,0x33,0x32,0x12,0x03,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x05,0x87,0xfb,0xeb,0xea,0xfa,0xfa,0xea,0xeb,0xfb,0xab,0x9a,0xa1,0xa1,0x98,0x97,0xa2,0xa2,0x99,0x02,0x97,0xfe,0xa8,0xfe,0xa9,0x01,0x57,0x01,0x58,0x01,0x59,0x01,0x58,0xfe,0xa8,0xfe,0xa7,0x01,0x17,0x01,0x06,0xfe,0xf7,0xfe,0xec,0xfe, +0xeb,0xfe,0xfc,0x01,0x02,0x00,0x00,0x03,0x01,0x00,0x00,0x00,0x06,0x44,0x05,0x31,0x00,0x1d,0x00,0x21,0x00,0x2d,0x00,0x00,0x01,0x14,0x06,0x07,0x35,0x32,0x36,0x35,0x10,0x21,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x21,0x15,0x21,0x11,0x33,0x32,0x16,0x16,0x01,0x11,0x21,0x11,0x05,0x21,0x22,0x06,0x15,0x14, +0x16,0x16,0x33,0x32,0x36,0x35,0x06,0x44,0xdd,0xae,0x68,0x78,0xfe,0xc6,0xd0,0xd0,0x6e,0xce,0x83,0x8d,0x7d,0x03,0x58,0xfe,0xfd,0x39,0x72,0xc5,0x75,0xfd,0x73,0xfe,0xfb,0x01,0x05,0xfe,0xc8,0x61,0x6f,0x56,0x85,0x3b,0x79,0x79,0x01,0xc0,0xc9,0xf5,0x02,0x95,0x92,0x89,0x01,0x04,0xd5,0xff,0xe0,0x88,0xe7,0x71,0x86,0xb7,0x13,0x02, +0x01,0x94,0xfe,0xab,0x65,0xb8,0x01,0x1d,0x01,0x55,0xfe,0xab,0x94,0x72,0x62,0x49,0x9c,0x66,0xad,0xbe,0x00,0x02,0x00,0xd2,0x00,0x00,0x06,0x72,0x05,0x31,0x00,0x2e,0x00,0x3a,0x00,0x00,0x21,0x21,0x22,0x26,0x35,0x34,0x3e,0x06,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33, +0x32,0x04,0x15,0x14,0x06,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x06,0x72,0xfb,0xe3,0xc7,0xa3,0x45,0x70,0x90,0x96,0x90,0x70,0x45,0xb7,0x9b,0x4d,0x6f,0x33,0x84,0x7d,0x98,0x6d,0x69,0x8b,0x89,0xda,0x88,0xe2,0x01,0x16,0x83,0xf2,0xad,0x8d,0x70,0x56,0x82,0x04, +0x04,0xfb,0xcf,0x46,0x2d,0x2f,0x44,0x43,0x30,0x2f,0x44,0x60,0x6e,0x4a,0x61,0x42,0x2e,0x2d,0x36,0x52,0x7a,0x5a,0x90,0xa5,0x30,0x2f,0x04,0x80,0x7c,0x61,0x8a,0x97,0x6a,0x7d,0xe0,0x76,0xf2,0xc9,0x8a,0xd0,0x79,0x2e,0x25,0x3f,0x2c,0x2e,0x23,0x02,0xbf,0x31,0x47,0x48,0x30,0x33,0x45,0x45,0x00,0x01,0x00,0xff,0x00,0x00,0x06,0x44, +0x05,0x31,0x00,0x20,0x00,0x00,0x21,0x21,0x35,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x15,0x23,0x11,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x21,0x06,0x44,0xfd,0xf0,0x61,0x84,0x7b,0x6b,0x47,0x54,0x3d,0xa8,0xfe,0xf4,0xa8,0x02,0xce,0x72,0x3e,0x64,0x45,0xa8,0xd7,0x45,0x38, +0x01,0x00,0x95,0x0d,0xbe,0x7a,0x81,0x9b,0x1e,0x32,0xfd,0x5a,0x04,0x9d,0xfb,0x63,0x05,0x31,0x94,0xfe,0xb5,0x20,0x19,0xe8,0xaf,0x5e,0xbf,0x43,0x00,0x03,0x00,0xf8,0x00,0x00,0x06,0x4b,0x05,0x31,0x00,0x14,0x00,0x18,0x00,0x24,0x00,0x00,0x01,0x21,0x15,0x10,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x21,0x15,0x23,0x11, +0x21,0x11,0x33,0x01,0x11,0x21,0x11,0x05,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x06,0x4b,0xfe,0x20,0xe0,0xda,0x7f,0xc8,0x72,0x92,0x7e,0x02,0xd0,0x6d,0x01,0x38,0xa8,0xfd,0x78,0xfe,0xed,0x01,0x13,0xa9,0x95,0x9b,0x46,0x9c,0x86,0x79,0x84,0x02,0xb4,0x90,0xfe,0xf4,0xfe,0xe8,0x70,0xd5,0x92,0x81,0xb4,0x1f,0x02, +0x06,0x94,0xfe,0xab,0x01,0xe9,0xfe,0x17,0x01,0x55,0xfe,0xab,0x94,0x28,0x5d,0x5c,0x93,0xab,0xe8,0xcc,0x00,0x01,0x00,0x5c,0xfd,0xb9,0x06,0xe8,0x07,0x21,0x00,0x34,0x00,0x00,0x01,0x02,0x02,0x24,0x23,0x22,0x04,0x02,0x11,0x10,0x12,0x04,0x33,0x20,0x00,0x11,0x34,0x26,0x23,0x22,0x07,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x21,0x15, +0x23,0x11,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x04,0x23,0x20,0x00,0x02,0x11,0x10,0x12,0x00,0x21,0x32,0x04,0x12,0x13,0x06,0x46,0x07,0xa4,0xfe,0xde,0xba,0xd3,0xfe,0xc7,0xad,0x9d,0x01,0x1e,0xc8,0x01,0x0b,0x01,0x2e,0x5d,0x4f,0x70,0x37,0xa8,0xee,0xa8,0x02,0xb0,0x72,0x53,0x55,0xa1,0xae,0xb5,0xfe,0xb2,0xd6,0xfe,0xff,0xfe,0x93, +0xc3,0xd3,0x01,0x8c,0x01,0x10,0xe3,0x01,0x63,0xcb,0x0c,0x03,0x1d,0x01,0x03,0x01,0x91,0xdc,0xf7,0xfe,0x22,0xfe,0xbc,0xfe,0xb2,0xfe,0x1c,0xf5,0x01,0x6b,0x01,0x4f,0x72,0x8c,0x51,0xfe,0x4c,0x04,0x9d,0xfb,0x63,0x05,0x31,0x94,0xfd,0xaa,0x51,0xe9,0xdd,0xed,0xfe,0x96,0xc2,0x01,0x18,0x02,0x22,0x01,0x81,0x01,0x71,0x02,0x22,0x01, +0x1a,0xfe,0xfe,0x2c,0xfe,0xce,0x00,0x03,0x00,0x27,0x00,0x00,0x07,0x1c,0x05,0x31,0x00,0x2e,0x00,0x3a,0x00,0x3e,0x00,0x00,0x01,0x15,0x23,0x11,0x16,0x16,0x17,0x3e,0x02,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x33,0x15,0x21,0x35,0x36,0x36,0x35,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x27,0x15,0x10,0x02,0x23,0x22,0x26, +0x26,0x35,0x34,0x36,0x37,0x11,0x01,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x11,0x21,0x11,0x04,0x07,0x6d,0x52,0x75,0x32,0x23,0x50,0x53,0x48,0x94,0xaf,0x3a,0x30,0xa2,0xfe,0xc3,0x28,0x33,0xa1,0x59,0x64,0xa8,0x49,0x51,0xe0,0xda,0x7f,0xc8,0x72,0x92,0x7e,0x01,0xbb,0xa9,0x95,0x9b,0x46,0x9c,0x86,0x79,0x84, +0xfe,0xed,0x05,0x31,0x94,0xfe,0xa9,0x0a,0x43,0x40,0x42,0x4d,0x23,0xd1,0xab,0x64,0xbb,0x3b,0x95,0x93,0x39,0xb3,0x58,0x01,0x00,0x9f,0x95,0xfe,0x5d,0x01,0x94,0x82,0x7e,0x18,0x88,0xfe,0xf4,0xfe,0xe8,0x70,0xd5,0x92,0x81,0xb4,0x1f,0x02,0x06,0xfd,0x83,0x28,0x5d,0x5c,0x93,0xab,0xe8,0xcc,0xff,0x01,0x55,0xfe,0xab,0x00,0x00,0x02, +0x01,0x1a,0x00,0x00,0x06,0x29,0x05,0x31,0x00,0x1a,0x00,0x26,0x00,0x00,0x01,0x23,0x11,0x23,0x11,0x23,0x22,0x06,0x02,0x07,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x11,0x34,0x12,0x24,0x33,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x06,0x29,0xab,0xa8,0xed,0x99,0xf7,0x90,0x08,0x2c,0x88, +0x44,0x96,0xb7,0xbe,0x91,0xcb,0xd2,0xbd,0x01,0x47,0xc3,0x02,0x48,0xfd,0x32,0x63,0x45,0x47,0x77,0x2a,0x0a,0x79,0x6b,0x44,0x5e,0x04,0x9d,0xfb,0x63,0x04,0x9d,0x8d,0xfe,0xfc,0xa8,0x2b,0x33,0xbf,0x9c,0x9e,0xc8,0x01,0x21,0x01,0x1e,0xd0,0x01,0x5e,0xc3,0xfc,0x27,0x54,0x82,0x3c,0x30,0x8d,0xa0,0x74,0x00,0x03,0x00,0x48,0xff,0x00, +0x06,0xfc,0x05,0x31,0x00,0x2a,0x00,0x34,0x00,0x40,0x00,0x00,0x01,0x11,0x23,0x11,0x23,0x06,0x00,0x21,0x22,0x24,0x26,0x35,0x34,0x36,0x33,0x21,0x36,0x35,0x34,0x02,0x27,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x07,0x33,0x11,0x01,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32, +0x24,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x06,0xfc,0xa8,0xfb,0x59,0xfe,0x6c,0xfe,0xef,0x8d,0xfe,0xfd,0x83,0xba,0x9a,0x03,0x3c,0x07,0x80,0x78,0x25,0x1b,0xbf,0x92,0x5f,0x97,0x56,0x66,0xc1,0x84,0xb7,0x01,0x0d,0x92,0x06,0xcf,0xfe,0x58,0xfc,0xcb,0x36,0x43,0xd2,0xc5,0xaf,0x01,0x06,0xc9,0x67,0x44,0x44, +0x66,0x60,0x4a,0x4b,0x60,0x05,0x31,0xf9,0xf9,0x01,0xdc,0xf9,0xfe,0xf3,0x6e,0xb8,0x75,0x74,0x8c,0x60,0x31,0xb9,0x01,0x09,0x46,0x25,0x52,0x36,0xa2,0xc1,0x55,0x9f,0x70,0x6d,0xa9,0x5f,0xad,0xfe,0xb1,0xee,0x30,0x48,0x03,0x96,0xfb,0xd5,0x4b,0x35,0x74,0x7d,0xb6,0x03,0x30,0x53,0x7f,0x7d,0x55,0x52,0x6c,0x6e,0x00,0x04,0x00,0x23, +0xff,0xe4,0x07,0x20,0x05,0x31,0x00,0x30,0x00,0x3c,0x00,0x40,0x00,0x4c,0x00,0x00,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x23,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x21,0x15,0x23,0x11,0x33,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02, +0x07,0x01,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x11,0x23,0x11,0x05,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x26,0x06,0x16,0x2d,0x3b,0x87,0x73,0x4d,0x42,0x69,0x78,0x88,0x79,0x80,0x9b,0x31,0x9b,0x4b,0xa2,0x87,0x7f,0xc8,0x72,0x72,0x6c,0x02,0xbc,0x6d,0xea,0x3f,0xa8,0x61,0x72,0xc0,0x6c,0x47, +0x3d,0xfc,0x0c,0x63,0x95,0x9b,0x46,0x9c,0x86,0x65,0x52,0xff,0x02,0xf9,0x25,0x20,0x44,0x30,0x62,0x2a,0x46,0x2c,0x43,0xff,0x70,0xca,0xca,0x47,0x35,0xdf,0x8e,0xb4,0xd5,0xe1,0xc0,0x8d,0x86,0x90,0xd0,0xe5,0x6f,0x70,0xd5,0x92,0x86,0xa4,0x2a,0x02,0x06,0x94,0xfe,0xab,0x57,0x65,0x83,0xeb,0x99,0xa0,0xfe,0xda,0x53,0x02,0xd0,0x28, +0x5d,0x5c,0x93,0xab,0xc1,0xf3,0xff,0x01,0x55,0xfe,0xab,0x98,0x33,0x7c,0x65,0x74,0x93,0xf1,0x47,0x80,0x5a,0x00,0x00,0x02,0x00,0xbf,0xff,0xe5,0x05,0xa8,0x04,0xc9,0x00,0x0f,0x00,0x1f,0x00,0x00,0x05,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x03,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32, +0x36,0x36,0x35,0x34,0x26,0x26,0x03,0x33,0xa6,0xfe,0xdc,0xaa,0xa9,0x01,0x25,0xa6,0xa8,0x01,0x24,0xa9,0xa9,0xfe,0xdb,0xa7,0x7f,0xda,0x80,0x7f,0xda,0x80,0x7f,0xda,0x80,0x80,0xd9,0x1b,0xa6,0x01,0x21,0xab,0xa9,0x01,0x22,0xa7,0xa7,0xfe,0xdd,0xa8,0xa8,0xfe,0xdd,0xa7,0x04,0x5b,0x7f,0xdf,0x81,0x80,0xdd,0x7e,0x7d,0xdd,0x81,0x81, +0xe0,0x7e,0x00,0x01,0x00,0x34,0xff,0xe6,0x06,0x34,0x04,0xc9,0x00,0x1b,0x00,0x00,0x01,0x22,0x04,0x06,0x15,0x10,0x05,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x07,0x27,0x24,0x11,0x34,0x26,0x24,0x03,0x34,0xaa,0xfe,0xe8,0xa0,0x01,0x32,0x62,0xaf,0xbf,0xc1,0x01,0x61,0xde,0xe0,0x01,0x60,0xc0,0xbf, +0xb0,0x61,0x01,0x31,0xa0,0xfe,0xea,0x04,0x33,0x89,0xef,0x88,0xfe,0xef,0xc2,0x7a,0x6a,0x01,0x37,0xac,0xb7,0x01,0x32,0xad,0xaf,0xfe,0xcf,0xb6,0xac,0xfe,0xc8,0x69,0x7a,0xc2,0x01,0x11,0x88,0xef,0x89,0x00,0x00,0x02,0x00,0x45,0x00,0x00,0x06,0x22,0x04,0xdc,0x00,0x1e,0x00,0x2a,0x00,0x00,0x37,0x21,0x32,0x36,0x36,0x35,0x34,0x26, +0x27,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x21,0x01,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x45,0x03,0x61,0x87,0xe4,0x72,0xb2,0x8d,0x2c,0x4e,0x81,0x4b,0x72,0x9c,0x66,0xb0,0x5f,0x99,0x01,0x21,0xab,0x9b,0xfe,0xcd,0xae,0xfc,0x9f,0x03,0x91, +0x31,0x2f,0x40,0x57,0x4b,0x32,0x33,0x47,0x97,0x7d,0xd7,0x8e,0x95,0xf7,0x31,0x44,0x45,0x42,0x81,0x4b,0x9f,0x73,0x55,0x88,0x4e,0xac,0xfe,0xe0,0xa5,0xb1,0xfe,0xee,0xa8,0x03,0xb1,0x28,0x4e,0x1f,0x0b,0x57,0x33,0x33,0x47,0x47,0x00,0x01,0x01,0x78,0xff,0xe7,0x04,0xef,0x04,0xc9,0x00,0x28,0x00,0x00,0x01,0x14,0x06,0x06,0x23,0x22, +0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x04,0xef,0x75,0xca,0x7b,0xd9,0xe4,0x5a,0x65,0xab,0x53,0x51,0x81,0x4b,0x96,0x77,0xb6,0xb6,0x77,0x83,0x98,0x7d,0x7f,0x95,0x5c,0xa8,0xe6,0x72,0xba, +0x68,0x49,0x50,0x4e,0x5e,0x01,0x54,0x60,0xab,0x62,0xc6,0x7b,0x5b,0x50,0x39,0x64,0x3a,0x60,0x74,0x8d,0x6b,0x58,0x50,0x6d,0x74,0x64,0xa4,0x58,0x9a,0x5a,0x5f,0x84,0x2d,0x2a,0x98,0x00,0x00,0x02,0x00,0x9e,0xff,0xe8,0x05,0xca,0x04,0xec,0x00,0x0b,0x00,0x32,0x00,0x00,0x25,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16, +0x13,0x24,0x36,0x37,0x26,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x24,0x11,0x34,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x16,0x17,0x03,0x29,0x33,0x47,0x47,0x33,0x35,0x45,0x48,0x30,0x01,0x17,0xee,0x05,0x05,0x58,0x51,0x3e,0x7e,0x8b,0x6c,0xca,0xb8,0x27,0x39, +0x9d,0x76,0x77,0x9b,0x37,0x27,0xfe,0x29,0x8a,0x5c,0x31,0x1d,0x5c,0xbf,0xb0,0x72,0x44,0x38,0x29,0x4d,0x0e,0x0f,0x4d,0x28,0x39,0x43,0x01,0xa6,0x3b,0xb0,0x7e,0x4f,0x77,0x31,0x74,0x3c,0xc2,0x6d,0x74,0xaf,0x7d,0x33,0x1e,0x62,0x40,0x6f,0x97,0x98,0x6e,0x37,0x67,0x21,0x67,0x01,0x46,0xa9,0x71,0x66,0x2f,0x59,0x2c,0x4d,0x79,0x54, +0x20,0x00,0x00,0x02,0x00,0x36,0xff,0xc0,0x06,0x32,0x04,0xcd,0x00,0x33,0x00,0x3e,0x00,0x00,0x01,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x02,0x17,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x27,0x2e,0x03,0x23,0x22,0x00,0x03,0x27,0x36,0x12,0x37,0x26,0x26,0x27,0x37, +0x1e,0x02,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x36,0x02,0x96,0x38,0x3a,0x51,0xa3,0x85,0x80,0xa1,0x6e,0x69,0x30,0x3f,0x2b,0x17,0x0b,0x11,0x05,0x24,0x20,0x29,0x31,0x0e,0x8b,0x13,0x83,0x63,0x5e,0x79,0x13,0x1d,0x2d,0x40,0x49,0x33,0xe0,0xfe,0xc2,0x66,0x8f,0x3d,0xf0,0xa3,0x2d,0xc1,0x7c,0x21,0x55,0xba,0x9b,0x02, +0x01,0x57,0x37,0x38,0x53,0x5e,0x51,0x6a,0x02,0xc8,0x0f,0x06,0x59,0x6d,0x7f,0xa4,0x9e,0x75,0x5e,0x91,0x27,0x25,0x65,0x82,0x82,0x43,0x44,0x16,0x1f,0x5a,0x61,0x18,0x96,0xa0,0x7f,0x79,0xb5,0x7a,0x4d,0x21,0xfe,0xd0,0xfe,0xc7,0x25,0xdd,0x01,0x4f,0x55,0x9a,0xe7,0x32,0x88,0x14,0x90,0xdb,0x5f,0x38,0x54,0x55,0x41,0x64,0x3f,0x07, +0x62,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x05,0xcf,0x04,0xbe,0x00,0x1e,0x00,0x00,0x13,0x34,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x14,0x21,0x21,0x15,0x21,0x22,0x26,0x99,0xa7,0xa7,0x5c,0xa0,0x5f,0x97,0x7f,0x66,0x6a,0x97,0x7b,0x01,0xd2,0xfe,0x2e,0x7b, +0x97,0x01,0x04,0x03,0x8f,0xfc,0x56,0xbc,0xd0,0x01,0x42,0xbd,0x6b,0x6b,0xbe,0x50,0x8c,0x4f,0x92,0x59,0x54,0x5a,0x6f,0x97,0x77,0x61,0xb0,0x97,0xa8,0x00,0x00,0x01,0x01,0x4a,0xff,0xe5,0x05,0x1e,0x04,0xc9,0x00,0x2e,0x00,0x00,0x25,0x32,0x36,0x37,0x33,0x06,0x04,0x23,0x22,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x02,0x35,0x34, +0x26,0x23,0x22,0x06,0x07,0x23,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x0e,0x03,0x07,0x0e,0x02,0x15,0x14,0x16,0x03,0x30,0x95,0xa1,0x16,0xa2,0x18,0xfe,0xff,0xd5,0x8b,0xdf,0x7c,0x2e,0x5c,0x9a,0x95,0x8b,0x6f,0x3b,0xa5,0x6e,0x75,0x97,0x0d,0x9b,0xf9,0xbb,0x7b,0xc6,0x72,0x24,0x3d,0x59,0x6f,0x81,0x94,0x71,0x3e,0xad,0x7d,0x7c, +0x7b,0xbd,0xd2,0x56,0x9e,0x6b,0x49,0x71,0x54,0x42,0x22,0x20,0x32,0x44,0x32,0x4c,0x6a,0x74,0x68,0xa1,0xd0,0x59,0x9b,0x53,0x40,0x5f,0x48,0x33,0x27,0x1e,0x21,0x35,0x4d,0x38,0x5f,0x6c,0x00,0x01,0x00,0x28,0xff,0xe7,0x06,0x3f,0x04,0xc9,0x00,0x20,0x00,0x00,0x01,0x21,0x15,0x21,0x16,0x16,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02, +0x35,0x34,0x36,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x02,0x27,0x02,0xd5,0x03,0x6a,0xfd,0xd4,0x7c,0x81,0xa4,0xfe,0xd4,0xa4,0xa4,0xfe,0xd3,0xa3,0x7c,0x6e,0x5b,0x4d,0x58,0x7c,0xdb,0x7d,0x7c,0xdc,0x7c,0xdb,0xc0,0x04,0xc9,0x8b,0x5d,0xfb,0x91,0xa9,0xfe,0xe8,0xad,0xad,0x01,0x19,0xa8,0x92,0xfb, +0x5a,0x6e,0x40,0xc9,0x70,0x7d,0xd3,0x7b,0x7b,0xd4,0x7c,0xae,0x01,0x02,0x3b,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x05,0xcf,0x04,0xbe,0x00,0x1e,0x00,0x00,0x13,0x34,0x36,0x33,0x21,0x15,0x21,0x20,0x15,0x14,0x16,0x16,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x23,0x22,0x26,0x26,0x35,0x34,0x37,0x26,0x99,0xcf,0xbd, +0x03,0xaa,0xfc,0x71,0xfe,0xfc,0x43,0x7a,0x55,0x01,0xd2,0xfe,0x2e,0x7b,0x97,0xd0,0x7f,0x97,0x60,0xa0,0x5b,0xa7,0xa7,0x03,0x7b,0x99,0xaa,0x98,0xb0,0x3c,0x64,0x38,0x96,0x70,0x59,0xa8,0x97,0x50,0x8b,0x50,0xbd,0x6b,0x6b,0x00,0x00,0x02,0x00,0xac,0x00,0x00,0x05,0x2f,0x04,0xac,0x00,0x0f,0x00,0x1f,0x00,0x00,0x01,0x14,0x02,0x04, +0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x07,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x05,0x2f,0x9b,0xfe,0xf4,0x9b,0x9c,0xfe,0xf6,0x9b,0x9a,0x01,0x0d,0x9a,0x9a,0x01,0x0c,0x9c,0xa5,0x6c,0xc0,0x71,0x70,0xc1,0x6c,0x6e,0xbe,0x71,0x70,0xbf,0x6e,0x02,0x55,0xa2,0xfe,0xea, +0x9d,0x9f,0x01,0x14,0xa2,0xa1,0x01,0x16,0xa0,0xa0,0xfe,0xe9,0xa0,0x73,0xc9,0x76,0x76,0xca,0x72,0x74,0xc9,0x74,0x73,0xca,0x00,0x01,0x00,0xa1,0xff,0xfd,0x05,0x3a,0x04,0xac,0x00,0x1d,0x00,0x00,0x01,0x14,0x02,0x07,0x27,0x36,0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24, +0x33,0x32,0x04,0x12,0x05,0x3a,0xc2,0x8b,0x4a,0x68,0x8a,0x75,0xc4,0x6f,0x70,0xc5,0x72,0x8e,0x63,0x49,0x8d,0xc0,0xa0,0x01,0x10,0x9c,0x9d,0x01,0x11,0x9f,0x02,0x55,0xb8,0xfe,0xa6,0x46,0x93,0x37,0x01,0x08,0x86,0x72,0xcb,0x75,0x77,0xc9,0x72,0x8b,0xfe,0xf9,0x34,0x92,0x47,0x01,0x59,0xb8,0xa0,0x01,0x18,0x9f,0xa1,0xfe,0xe8,0x00, +0x00,0x01,0x00,0xf6,0x00,0x00,0x04,0xe6,0x04,0xac,0x00,0x25,0x00,0x00,0x01,0x14,0x02,0x04,0x23,0x21,0x35,0x21,0x32,0x37,0x24,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x04,0xe6,0x9c,0xfe,0xef,0x9f,0xfe,0x5c,0x01,0xa4,0x3c,0x4d, +0x01,0x1e,0x73,0xc4,0x70,0x54,0x80,0x7d,0x57,0x5c,0x3f,0x75,0x62,0xae,0x64,0xb0,0x66,0x66,0xb0,0x64,0xa8,0x01,0x0d,0x97,0x02,0x55,0x9d,0xfe,0xea,0xa2,0xa4,0x1b,0x64,0x01,0x32,0x72,0xca,0x76,0x7c,0x59,0x55,0x7f,0x44,0x72,0x77,0x66,0xae,0x65,0x64,0xb1,0x65,0x9b,0xfe,0xec,0x00,0x02,0x00,0xdd,0xff,0xdd,0x04,0xfe,0x04,0xac, +0x00,0x32,0x00,0x3c,0x00,0x00,0x05,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x32,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x07,0x16,0x33,0x32,0x37,0x05,0x32,0x37,0x26,0x26,0x23,0x22, +0x15,0x14,0x16,0x04,0xfe,0x54,0x6c,0x6b,0x58,0xb2,0x92,0x57,0xa4,0x5f,0x57,0x99,0x5d,0x73,0xee,0x48,0x3b,0x65,0xae,0x66,0x2d,0x3a,0x65,0x36,0x2f,0x56,0x20,0x6b,0x32,0x70,0x97,0x97,0x6a,0x8d,0xff,0x9c,0x70,0x46,0x38,0x0c,0x26,0xfd,0x55,0xc5,0x55,0x3c,0xad,0x51,0xa6,0x6d,0x23,0x33,0x61,0x45,0x2c,0x4e,0x81,0x46,0x53,0x7c, +0x42,0x6f,0x55,0x53,0xbe,0x6e,0xbd,0x69,0x30,0x27,0x58,0x41,0x68,0x35,0x47,0x8e,0x6d,0x66,0x96,0x9e,0xfe,0xf1,0x96,0xe1,0x9a,0x51,0x09,0x02,0x4f,0x43,0x4b,0x64,0x36,0x43,0x00,0x03,0x00,0x60,0xff,0xf3,0x05,0x7c,0x04,0xc1,0x00,0x26,0x00,0x30,0x00,0x3c,0x00,0x00,0x01,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06, +0x23,0x22,0x26,0x35,0x34,0x37,0x24,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x26,0x27,0x05,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xf0,0x51,0x90,0x6c,0x3f,0xca,0xb8,0x25,0x37,0xbb,0x8f,0x8d,0xbd,0x48,0xfe,0x56, +0x92,0x69,0x67,0x95,0xc1,0x82,0xf3,0xf0,0xdd,0x3a,0x5e,0x74,0xfd,0xe6,0x33,0x24,0x25,0x3f,0x33,0x88,0x02,0x00,0x60,0x46,0x45,0x61,0x5d,0x49,0x4b,0x5b,0x04,0xc1,0x0c,0x1f,0x44,0x78,0x64,0x87,0xce,0x46,0x23,0x63,0x38,0x88,0xa2,0xa7,0x83,0x6f,0x45,0x9b,0x01,0x45,0x69,0x92,0x95,0x67,0xa8,0x49,0x61,0x24,0x3f,0xa0,0x63,0x3a, +0x42,0x1f,0x06,0x61,0x27,0x37,0x39,0x25,0x5c,0x3c,0x2d,0xfd,0xc2,0x39,0x51,0x4e,0x3c,0x35,0x45,0x45,0x00,0x03,0x00,0x43,0xff,0xdc,0x05,0x99,0x04,0xac,0x00,0x35,0x00,0x3e,0x00,0x47,0x00,0x00,0x01,0x14,0x07,0x16,0x15,0x14,0x06,0x07,0x27,0x32,0x36,0x35,0x34,0x27,0x06,0x07,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x25,0x26, +0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x17,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x15,0x14,0x17,0x36,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x99,0xaa,0x74,0x89,0xaa,0x4b,0x62,0x7f,0x84,0x6b,0xf7,0x1b,0xc7,0xa8,0x73,0xa0,0xea, +0x01,0x1f,0x08,0x89,0x57,0x35,0x47,0x25,0x30,0x5a,0x3e,0x59,0xa3,0x76,0x68,0xae,0x67,0x06,0x7f,0x43,0x50,0xa5,0x7a,0x80,0xa0,0x9d,0x4e,0x35,0x83,0x72,0x94,0xfd,0x42,0xc5,0x99,0x49,0x2d,0x4d,0x7e,0x03,0x78,0xdd,0x63,0x78,0x8b,0x99,0x9a,0x26,0xa0,0x67,0x49,0x5c,0x6e,0x19,0x0f,0xe1,0xed,0x9e,0x73,0xa2,0x9e,0x18,0xac,0xfa, +0x4c,0x3c,0x1d,0x3a,0x27,0x82,0x20,0x93,0x4d,0x78,0xad,0x93,0xfe,0xfa,0xa0,0x08,0x0a,0x6a,0x89,0x84,0xb0,0xb0,0x73,0x38,0x4e,0x97,0x5c,0x69,0x3e,0xfe,0xd3,0x10,0x56,0x56,0x2b,0x42,0xa5,0x00,0x00,0x02,0x00,0x7e,0x00,0x00,0x05,0x5d,0x04,0xac,0x00,0x1d,0x00,0x28,0x00,0x00,0x21,0x21,0x22,0x24,0x26,0x35,0x34,0x37,0x26,0x23, +0x37,0x20,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x33,0x21,0x01,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x33,0x32,0x36,0x05,0x5d,0xfe,0x06,0xa4,0xfe,0xed,0x9d,0x9d,0x73,0xbb,0x0f,0x01,0x20,0x98,0x7c,0xa2,0x86,0xac,0xad,0x85,0x7e,0xa1,0x4c,0x4a,0xfc,0xb9,0x01,0xfa,0xfe,0x98,0x54,0x3e, +0x7b,0x59,0x3a,0x59,0x41,0x3f,0x53,0x84,0xeb,0x8d,0xc7,0x7d,0xc7,0xa5,0xfe,0xe6,0x2b,0xa0,0x7a,0x7b,0xa7,0x85,0xa0,0x4a,0x6c,0x93,0xb9,0x01,0xf5,0x36,0x49,0x1d,0x79,0x5c,0x40,0x00,0x00,0x01,0x00,0xd6,0x00,0x00,0x05,0x06,0x04,0xc1,0x00,0x27,0x00,0x00,0x21,0x21,0x22,0x26,0x26,0x35,0x34,0x37,0x36,0x37,0x36,0x35,0x34,0x26, +0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x06,0x07,0x06,0x15,0x14,0x16,0x33,0x21,0x05,0x06,0xfd,0x4d,0x66,0xb1,0x66,0x8d,0x27,0xd9,0x84,0x4b,0x3f,0x37,0x4a,0x1b,0x8e,0x31,0xab,0x7c,0x84,0xa8,0x8b,0x3e,0x84,0x3f,0x84,0x7c,0x5c,0x02,0xb3,0x62,0xab,0x64,0xb5,0x66,0x1e,0x61, +0x3a,0x49,0x3f,0x50,0x45,0x2f,0x30,0x1c,0x52,0x41,0x62,0x74,0x9f,0xae,0x8d,0x9d,0x46,0x1f,0x34,0x1e,0x40,0x70,0x5b,0x83,0x00,0x02,0x00,0x8d,0x00,0x00,0x05,0x4e,0x04,0xc1,0x00,0x26,0x00,0x31,0x00,0x00,0x01,0x23,0x16,0x16,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22, +0x27,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x10,0x27,0x35,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x33,0x32,0x36,0x05,0x4e,0xd6,0x62,0x4d,0x9f,0xfe,0xf0,0x9d,0xa4,0xfe,0xf0,0x9a,0x5a,0x91,0x5d,0x64,0x90,0x90,0x64,0x5c,0x3f,0x08,0x70,0xc3,0x76,0x6e,0xc5,0x75,0xec,0x01,0xb7,0xfc,0xeb,0x3f,0x25,0x2e,0x41, +0x0b,0x3f,0x3b,0x2b,0x39,0x04,0x07,0x6a,0xc1,0x87,0x9f,0xfe,0xed,0xa3,0xa5,0x01,0x22,0xaf,0xa0,0x01,0x21,0x8a,0xa4,0x72,0x6f,0xa6,0x3c,0x23,0x40,0x80,0xd5,0x76,0x74,0xc6,0x70,0x01,0x15,0xa7,0xa1,0xff,0x00,0x29,0x49,0x58,0x53,0x4b,0x4f,0x00,0x00,0x02,0x01,0x0d,0x00,0x00,0x04,0xcf,0x04,0xac,0x00,0x26,0x00,0x31,0x00,0x00, +0x01,0x21,0x22,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x21,0x01,0x34,0x23,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x04,0xcf,0xfd,0x93,0x48,0x68,0x35,0x73,0xa4,0x80,0x92,0x92,0x68,0x9c, +0x74,0x08,0x7d,0x63,0x5c,0x37,0x74,0x6a,0x9d,0xab,0xdb,0x25,0x70,0x5b,0x9e,0x5c,0x02,0x6d,0xfe,0xa4,0x5e,0x29,0x7f,0x17,0x20,0x6e,0x27,0x27,0x41,0x04,0x07,0x68,0x48,0x5e,0x32,0x63,0x6f,0x62,0x5d,0x7b,0x45,0x1b,0x16,0x6a,0x87,0x25,0x73,0x56,0xe3,0xb2,0x4e,0x53,0x7c,0xa5,0x5a,0x9f,0x5c,0xfd,0xa9,0x41,0x28,0x15,0x1a,0x2b, +0x29,0x00,0x00,0x02,0x01,0xc8,0xff,0xe8,0x05,0x54,0x03,0x7c,0x00,0x0b,0x00,0x1b,0x00,0x00,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x8e,0x7f,0xa0,0xa0,0x7f,0x7f,0xa0,0xa0,0x7f,0x7e,0xd0,0x78,0x78,0xd1,0x7d,0x7e,0xd0, +0x78,0x78,0xd0,0x81,0xa9,0x88,0x88,0xa9,0xa9,0x88,0x88,0xa9,0x99,0x76,0xd3,0x81,0x81,0xd3,0x76,0x76,0xd3,0x81,0x81,0xd3,0x76,0x00,0x00,0x02,0x00,0x24,0xfe,0x63,0x06,0xf8,0x05,0xb3,0x00,0x18,0x00,0x21,0x00,0x00,0x21,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x11,0x10,0x12,0x21, +0x20,0x00,0x11,0x03,0x11,0x10,0x26,0x23,0x22,0x06,0x11,0x11,0x06,0xf8,0xfa,0x99,0x67,0x5f,0x60,0x66,0x01,0x55,0xfe,0xb6,0xc2,0xb6,0xc4,0xb4,0x01,0x57,0xff,0x01,0x03,0x01,0x02,0x01,0x01,0xa4,0xb1,0xae,0xb0,0xae,0x3f,0x46,0x4a,0x3b,0x93,0x86,0x90,0x8f,0x8b,0x02,0x9d,0x01,0x44,0x01,0x3f,0xfe,0xc5,0xfe,0xb8,0xfd,0x63,0x02, +0x8e,0x01,0x05,0xf4,0xf8,0xfe,0xff,0xfd,0x72,0x00,0x00,0x01,0x00,0x37,0xff,0xe6,0x06,0xe5,0x05,0xb3,0x00,0x1e,0x00,0x00,0x25,0x15,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x07,0x06,0xe5,0xfc,0xd6,0x67,0x56,0xf8,0xd5,0xd5, +0xf8,0x66,0x83,0x98,0x80,0x78,0xa4,0x01,0x27,0xb4,0xae,0x01,0x1c,0x9f,0x56,0x4a,0x93,0x93,0x62,0xa7,0x01,0x15,0x96,0x01,0x19,0x01,0x4d,0xfe,0xb2,0xfe,0xe8,0xae,0xfe,0xdd,0xc6,0x37,0xb9,0x01,0x64,0xbb,0xdc,0x01,0x5b,0xbe,0xbe,0xfe,0xa7,0xde,0x8d,0xfe,0xd6,0x74,0x00,0x01,0x00,0x32,0xff,0xe6,0x06,0xe9,0x05,0xb3,0x00,0x2d, +0x00,0x00,0x25,0x15,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x10,0x12,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x07,0x06,0xe9,0xfd,0x59,0x53,0x52,0x6c,0x79,0x71,0x61,0xa4,0x61,0x71,0x7b,0x6a,0x66, +0x5d,0x9b,0x5f,0x6c,0xc5,0xbe,0x6e,0x96,0x21,0x08,0x20,0x96,0x6f,0x76,0xad,0x60,0x4b,0x30,0x93,0x93,0x51,0x74,0x01,0x4b,0xf6,0x01,0x12,0x01,0x00,0xc7,0xeb,0xfc,0x9a,0x03,0x66,0xea,0xc8,0xfb,0xfe,0xe9,0xf9,0xfe,0x87,0x77,0x37,0x7f,0x01,0xa8,0xe2,0x01,0x56,0x01,0x6e,0x74,0x6b,0x6a,0x75,0xa3,0xfe,0xc0,0xe1,0x99,0xfe,0x93, +0x56,0x00,0x00,0x02,0x00,0x7e,0xff,0xe6,0x06,0x9e,0x07,0xc8,0x00,0x30,0x00,0x3c,0x00,0x00,0x01,0x14,0x02,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x37,0x26,0x23,0x22,0x04,0x02,0x15,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x07,0x16,0x12,0x07,0x34,0x26,0x27,0x06,0x02,0x15,0x14,0x16,0x33,0x32,0x12,0x06,0x4e,0x79,0xd9,0x88,0xac,0xd5,0xd6,0xd3,0x80,0xaf,0xac,0xfe,0xf0,0x8c,0x6e,0x6e,0x95,0x71,0x7d,0xb3,0x01,0x60,0xde,0xfd,0xba,0x77,0x5b,0x79,0x7a,0x9b,0x9f,0x1d,0xac,0xbb,0xb2,0xd7,0x7f,0x94,0x5e,0x65,0xa7,0x55,0x4b,0xbb,0xb2,0x7c,0x69,0x80, +0xa8,0x02,0x8e,0xb7,0xfe,0xc0,0xb1,0x01,0x1c,0xdd,0xdb,0x01,0x6c,0x9e,0x54,0x9d,0xfe,0xec,0xb7,0xb6,0xfe,0xc4,0x9e,0x3a,0xa6,0x01,0x7d,0xaa,0xe3,0x01,0x57,0xc6,0x8c,0x5b,0x97,0x51,0x62,0x6e,0x3b,0x8a,0x3f,0xba,0x95,0x6f,0xcf,0x72,0x6b,0xfe,0xde,0xba,0x94,0xfc,0x55,0x8d,0xfe,0xc6,0xc1,0xa3,0xbe,0x01,0x24,0x00,0x00,0x01, +0x00,0x37,0xfd,0xfe,0x06,0xe5,0x07,0x61,0x00,0x43,0x00,0x00,0x05,0x27,0x12,0x11,0x10,0x00,0x21,0x22,0x00,0x02,0x11,0x10,0x12,0x04,0x33,0x32,0x12,0x35,0x10,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x11,0x10,0x13,0x07,0x02,0x11,0x10,0x00,0x33,0x32,0x16,0x15,0x10,0x07,0x15,0x16,0x16,0x15,0x14,0x02,0x06, +0x23,0x22,0x24,0x02,0x02,0x35,0x10,0x12,0x00,0x21,0x32,0x04,0x12,0x11,0x14,0x02,0x06,0x53,0x9e,0x8b,0xfe,0xaf,0xfe,0xd1,0xd4,0xfe,0xa5,0xb6,0x9c,0x01,0x0e,0xb4,0xbf,0xd4,0xf8,0x72,0x65,0x63,0x6d,0x73,0x7a,0xa8,0xa0,0x8b,0x99,0x96,0x01,0x03,0xed,0xb9,0xd3,0xae,0x67,0x7d,0x96,0xff,0xa8,0xa9,0xfe,0xea,0xc9,0x74,0xde,0x01, +0xaa,0x01,0x0a,0xef,0x01,0x6b,0xc2,0x4c,0x19,0x37,0x01,0x9f,0x01,0x92,0x01,0xa6,0x01,0xd3,0xfe,0xfe,0xfe,0x32,0xfe,0xcd,0xfe,0xd1,0xfe,0x00,0xff,0x01,0x24,0xfd,0x01,0x7d,0x96,0x9b,0x85,0xa2,0x8d,0xfe,0xe7,0xfe,0xbd,0xfe,0xb1,0xfe,0xae,0x37,0x01,0x75,0x01,0x5f,0x01,0x69,0x01,0x90,0xf0,0xca,0xfe,0xf8,0x67,0x06,0x1e,0xfc, +0xb4,0xc0,0xfe,0xb0,0xa8,0xb1,0x01,0x4d,0x01,0xd0,0xe9,0x01,0x60,0x02,0x19,0x01,0x33,0xfd,0xfe,0x2f,0xfe,0xc6,0xd7,0xfe,0x31,0x00,0x00,0x01,0x00,0x46,0xfd,0xfe,0x06,0xd6,0x05,0xb3,0x00,0x3e,0x00,0x00,0x17,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x20,0x11, +0x10,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x12,0x11,0x10,0x02,0x23,0x22,0x06,0x11,0x11,0x23,0x11,0x10,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x26,0x23,0x22,0x06,0x02,0x15,0x10,0x17,0xd0,0x41,0x49,0x51,0x92,0x64,0x56,0x7e,0x2a,0x05,0x24,0x86,0x5a,0x5b,0x6f,0x31,0x06,0x26,0x7f,0x60,0x01,0x3c,0x7f,0xe3,0x99, +0x8c,0x6f,0x7e,0x77,0xb3,0xad,0x59,0x4e,0x5e,0x51,0xa3,0x4e,0x5b,0x63,0x54,0xa3,0x49,0x55,0x32,0x52,0x2f,0x7d,0x1a,0x85,0x01,0x91,0xdc,0xe8,0x01,0x4b,0xa8,0x56,0x6b,0x5f,0x62,0x52,0x73,0x64,0x61,0xfc,0xcf,0xfe,0xaa,0xfd,0xe8,0xfe,0xea,0x2d,0xac,0x40,0x01,0xe2,0x01,0xf7,0x01,0x51,0x01,0x57,0xda,0xfe,0xfe,0xfc,0xc4,0x03, +0x3c,0x01,0x05,0xd7,0xe9,0xf1,0xfc,0xc2,0x03,0x3e,0x01,0x0b,0xcf,0x8b,0xfe,0xf9,0xb5,0xfe,0x46,0xfa,0x00,0x02,0x01,0x25,0xff,0xe6,0x05,0xf6,0x05,0xb3,0x00,0x0b,0x00,0x30,0x00,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x16,0x04,0x33,0x32,0x36,0x12,0x35,0x34,0x02,0x26,0x27,0x07,0x16,0x16,0x15, +0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x20,0x27,0x03,0x6e,0x6e,0x5e,0x5e,0x7a,0x6e,0x5d,0x63,0x76,0xfd,0xb9,0x68,0x01,0x05,0x92,0xa8,0xfd,0x84,0x86,0xe3,0x82,0x03,0x55,0x62,0x62,0xb1,0x6f,0xa9,0xc8,0x86,0xed,0x9a,0xcb,0x01,0x41,0xb8,0xb6,0xfe,0xb1,0xcb,0xfe,0xbf, +0xbe,0x04,0x1e,0x69,0x80,0x82,0x64,0x66,0x7c,0x78,0xfd,0x84,0x5c,0x60,0x95,0x01,0x0f,0xb0,0x9f,0x01,0x12,0xa3,0x07,0x08,0x1c,0x9b,0x60,0x65,0xa5,0x5d,0xc6,0xa3,0x7f,0xbd,0x66,0xb4,0xfe,0xa9,0xd3,0xdc,0xfe,0xab,0xbe,0x94,0x00,0x01,0x00,0x4b,0xfd,0xfe,0x06,0xd1,0x05,0xb3,0x00,0x2d,0x00,0x00,0x01,0x11,0x10,0x00,0x21,0x22, +0x26,0x27,0x35,0x17,0x16,0x33,0x32,0x36,0x35,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x07,0x21,0x11,0x06,0xd1,0xfe,0xcd,0xfe,0xe6,0x46,0x76,0x55,0x4a,0x69,0x70,0xbb,0xdc,0xfd,0xa2,0x67,0x56,0xf8,0xd5,0xd5,0xf8,0x66,0x83, +0x98,0x80,0x78,0xa4,0x01,0x27,0xb4,0xae,0x01,0x1c,0x9f,0x56,0x4a,0x01,0x9a,0x05,0x99,0xfa,0xb4,0xfe,0xe3,0xfe,0xce,0x13,0x14,0xac,0x18,0x22,0xc6,0xa3,0x62,0xa7,0x01,0x15,0x96,0x01,0x19,0x01,0x4d,0xfe,0xb2,0xfe,0xe8,0xae,0xfe,0xdd,0xc6,0x37,0xb9,0x01,0x64,0xbb,0xdc,0x01,0x5b,0xbe,0xbe,0xfe,0xa7,0xde,0x8d,0xfe,0xd6,0x74, +0x05,0x06,0x00,0x02,0x00,0x3d,0xff,0xe6,0x06,0xde,0x07,0xc8,0x00,0x3f,0x00,0x4a,0x00,0x00,0x01,0x14,0x02,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x37,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x17,0x36,0x36, +0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x12,0x07,0x34,0x26,0x27,0x06,0x02,0x15,0x10,0x33,0x32,0x12,0x06,0x9e,0x64,0xac,0x6c,0x88,0xad,0xb0,0xad,0x57,0x59,0x88,0x91,0xa2,0xea,0x8c,0x88,0x65,0x58,0x9a,0x5c,0x6b,0x6e,0xc5,0x81,0x75,0xab,0x20,0x07,0x2b,0xc0,0x7d,0x90,0x85,0x3d, +0x49,0x60,0x63,0x3b,0x64,0x3f,0x17,0x89,0x97,0x8e,0xad,0x67,0x75,0x48,0x54,0xa4,0x2b,0x30,0x8f,0x7f,0x9a,0x61,0x6e,0x02,0x8e,0xbb,0xfe,0xc2,0xaf,0x01,0x18,0xe1,0xdd,0x01,0x6f,0xa0,0x4f,0xf6,0xe6,0xfc,0xc2,0x03,0x3e,0x01,0xdc,0xfe,0xe3,0xfe,0xd4,0xb4,0xfe,0x8c,0x8c,0x37,0x98,0x01,0x9f,0xbb,0xe4,0x01,0x4a,0xad,0x90,0x81, +0x83,0x8e,0x87,0x3a,0xa8,0x5c,0x63,0x6d,0x1d,0x1e,0x8a,0x3f,0xb8,0x97,0x6f,0xd0,0x70,0x6d,0xfe,0xdd,0xb8,0xb7,0xd9,0x4b,0x84,0xfe,0xd5,0xcf,0xfe,0x9f,0x01,0x13,0x00,0x02,0x00,0xdf,0xff,0xf4,0x05,0x88,0x03,0xf1,0x00,0x0b,0x00,0x1b,0x00,0x00,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x22,0x24,0x26, +0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x14,0x06,0x04,0x03,0x32,0xc7,0xdf,0xdf,0xc7,0xc5,0xdd,0xdd,0xc5,0xaa,0xfe,0xee,0x97,0x95,0x01,0x13,0xab,0xae,0x01,0x14,0x94,0x97,0xfe,0xee,0x87,0xc2,0xa9,0xab,0xc1,0xc3,0xa9,0xa9,0xc2,0x93,0x7f,0xe9,0x96,0x97,0xea,0x7e,0x7f,0xe9,0x97,0x96,0xe8,0x80,0x00,0x00,0x02,0x00,0xa3, +0xff,0xf4,0x05,0xc4,0x03,0xf1,0x00,0x2b,0x00,0x37,0x00,0x00,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x14,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x04,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x27,0x26,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34, +0x26,0x23,0x22,0x06,0x02,0x49,0x74,0x5a,0x5d,0x77,0xe8,0xc2,0xb7,0xe7,0xa0,0x01,0x2c,0xc4,0xbf,0x01,0x2c,0xa6,0xcb,0xc2,0x6d,0x6f,0x7a,0xdc,0x8a,0xd9,0xfe,0xf9,0x3f,0x73,0x43,0x82,0x41,0x03,0x55,0x6a,0x6c,0x3a,0x2a,0x27,0x3a,0x39,0x28,0x2b,0x39,0x01,0xb7,0x58,0x78,0x7b,0x63,0xc5,0xf0,0x01,0x05,0xd6,0x9f,0xf9,0x8a,0x88, +0xfa,0x9d,0xc0,0xf6,0x27,0x95,0x1d,0xa8,0x83,0x74,0xb5,0x63,0xd9,0xb6,0x62,0x91,0x51,0x58,0x06,0x06,0x72,0x58,0x29,0x39,0x37,0x2b,0x29,0x39,0x39,0x00,0x00,0x02,0x00,0xc6,0x00,0x00,0x05,0xa2,0x05,0xe6,0x00,0x3e,0x00,0x4a,0x00,0x00,0x01,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23, +0x21,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x25,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x34,0x76,0x72,0x41,0x5d,0x15, +0x07,0x0d,0x6e,0x4a,0x7e,0x89,0xb7,0xa0,0xfd,0xd2,0xa1,0xb6,0xad,0x66,0x5b,0x02,0x00,0x5b,0x64,0x36,0x33,0x2e,0x3f,0x03,0x91,0x02,0x3e,0x2d,0x31,0x31,0x27,0x1e,0x05,0x04,0x55,0x44,0x44,0x57,0x64,0x5d,0x96,0xa9,0x01,0x67,0x1f,0x2e,0x2d,0x20,0x1e,0x2d,0x2e,0x02,0x98,0xb3,0xa9,0x48,0x45,0x3f,0x4e,0xaf,0x99,0xfe,0x9e,0x9b, +0xaf,0xb0,0x9a,0x04,0x9c,0xfb,0x6f,0x5b,0x60,0x60,0x5b,0x01,0x5e,0x55,0x5a,0x4c,0x3e,0x3e,0x4c,0x58,0x72,0x4f,0x73,0x10,0x05,0x05,0x18,0x42,0x58,0x59,0x41,0x4f,0x56,0xb1,0x3e,0x2b,0x20,0x20,0x2a,0x2a,0x20,0x20,0x2b,0x00,0x00,0x02,0x00,0xbb,0xff,0xf4,0x05,0xac,0x03,0xf3,0x00,0x2d,0x00,0x39,0x00,0x00,0x05,0x22,0x02,0x35, +0x34,0x12,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x12,0x15,0x14,0x02,0x07,0x35,0x36,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x37,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x68,0xc3,0xea,0xc8,0xa4,0x5f,0x8d,0x24,0x1e, +0x91,0x63,0xa2,0xc1,0xc4,0xa5,0xb8,0x78,0x58,0x4e,0x53,0xab,0x58,0x4f,0x56,0x77,0x37,0x07,0x06,0x6f,0x58,0x5b,0x76,0x7a,0x55,0x29,0x39,0x39,0x29,0x2a,0x37,0x38,0x0c,0x01,0x1d,0xeb,0xdf,0x01,0x18,0x72,0x74,0x6b,0x7b,0xfe,0xea,0xdf,0xce,0xfe,0xe9,0x24,0x96,0x3c,0x01,0x37,0x92,0xd0,0x9c,0x91,0x91,0x9c,0xce,0x96,0xb0,0x74, +0x02,0x54,0x68,0x74,0x58,0x5d,0x79,0x01,0x38,0x02,0x39,0x29,0x2a,0x38,0x38,0x2a,0x28,0x3c,0x00,0x02,0x00,0xcf,0xff,0xed,0x05,0x98,0x05,0x82,0x00,0x3b,0x00,0x47,0x00,0x00,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x17,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26, +0x35,0x34,0x36,0x24,0x37,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x26,0x26,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x18,0xb7,0x96,0x70,0x81,0x78,0x58,0x56,0x71,0x08,0x1f,0x9b,0x81,0x8c,0x58,0x39,0xb1,0x54,0x41,0xab,0xa5,0x33,0xda, +0xed,0x93,0x01,0x20,0xf9,0xaf,0xa5,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c,0x98,0x81,0x29,0x75,0x3c,0x38,0x39,0x57,0x01,0x6f,0x27,0x3b,0x38,0x2a,0x27,0x3b,0x3c,0x01,0xae,0x89,0xa6,0x74,0x62,0x5a,0x74,0x6a,0x59,0x23,0x38,0x5e,0x7b,0x10,0x0e,0x23,0x9a,0x19,0x24,0x18,0x16,0xeb,0xcc,0xa3,0xef,0xa4,0x3b,0x28,0x77,0x57, +0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71,0x93,0x5f,0x85,0xa0,0x13,0x0b,0x05,0x1e,0x8e,0x45,0x39,0x2b,0x29,0x3a,0x39,0x2a,0x2a,0x3a,0x00,0x03,0x00,0xcf,0xff,0xed,0x05,0x98,0x05,0x82,0x00,0x43,0x00,0x4f,0x00,0x5b,0x00,0x00,0x01,0x07,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x16, +0x33,0x32,0x37,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x17,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x14,0x16,0x33, +0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0xaa,0x08,0x9e,0x8f,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c,0x98,0x81,0x29,0x75,0x3c,0x38,0x39,0x57,0xb7,0x96,0x70,0x81,0x78,0x58,0x56,0x71,0x08,0x1f,0x9b,0x81,0x8c,0x58,0x39,0xb1,0x54,0x41,0xab,0xa5,0x33,0xda,0xed,0xb0,0xc5,0x3d,0x74,0x59,0x64,0x72,0xdd,0x27,0x3b,0x38, +0x2a,0x27,0x3b,0x3c,0xfe,0x0f,0x3c,0x28,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x04,0x3d,0x10,0x29,0x72,0x52,0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71,0x93,0x5f,0x85,0xa0,0x13,0x0b,0x05,0x1e,0x8e,0x4f,0x89,0xa6,0x74,0x62,0x5a,0x74,0x6a,0x59,0x23,0x38,0x5e,0x7b,0x10,0x0e,0x23,0x9a,0x19,0x24,0x18,0x16,0xeb,0xcc,0xb9,0x01, +0x03,0x58,0x3c,0x5c,0x5a,0x75,0x81,0xfc,0xf7,0x39,0x2b,0x29,0x3a,0x39,0x2a,0x2a,0x3a,0x02,0xbc,0x28,0x3b,0x3c,0x27,0x29,0x3b,0x3b,0x00,0x02,0x01,0x08,0xff,0xf4,0x05,0x5f,0x05,0x6a,0x00,0x28,0x00,0x34,0x00,0x00,0x25,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x26,0x02,0x27,0x33,0x16,0x16,0x17,0x36,0x36,0x33, +0x32,0x04,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x6d,0x47,0x8b,0xa9,0xc6,0xae,0x9b,0x47,0xa9,0x46,0x30,0xae,0x49,0xd5,0x2c,0x49,0x25,0x30,0x91,0x3b,0xe7,0x01,0x05,0x7e,0xeb,0x98,0xca,0xfe,0xfa,0x7a,0x6a,0x58, +0x75,0x75,0x5b,0x60,0x3b,0x28,0x28,0x3b,0x3b,0x28,0x2a,0x39,0xb9,0x34,0xc2,0xb1,0xa2,0xb0,0x26,0x1f,0xa1,0x01,0x70,0x54,0x44,0xd5,0xa6,0x16,0x1a,0xfc,0xe7,0x98,0xec,0x80,0xd7,0xaa,0x6d,0x7c,0x74,0x5c,0x57,0x76,0xce,0x2a,0x39,0x3c,0x27,0x29,0x3b,0x3a,0x00,0x02,0x00,0x35,0xff,0xf4,0x06,0x33,0x05,0xe6,0x00,0x3b,0x00,0x47, +0x00,0x00,0x13,0x34,0x12,0x33,0x32,0x16,0x17,0x3e,0x02,0x33,0x32,0x12,0x15,0x14,0x06,0x07,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x06,0x23,0x21,0x36,0x11,0x34,0x26,0x23,0x22,0x06,0x06,0x15,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x37,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x05,0x06,0x06, +0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0xac,0xa3,0x53,0x8a,0x23,0x0d,0x48,0x66,0x36,0xa0,0xac,0x25,0x15,0x46,0x56,0x62,0xae,0x58,0xa4,0x66,0xfe,0xe2,0x5d,0x52,0x4d,0x2d,0x49,0x29,0xa7,0x01,0x53,0x47,0x51,0x58,0x37,0x07,0x06,0x70,0x58,0x5c,0x74,0x7b,0x64,0x80,0xc5,0x6a,0x01,0xbf,0x2a,0x3a,0x3a,0x2a,0x29,0x39, +0x3a,0x01,0xfc,0xf8,0x01,0x00,0x75,0x66,0x37,0x65,0x3f,0xfe,0xfe,0xf4,0x64,0xce,0x31,0x5f,0x5b,0x04,0x91,0xfb,0x64,0x5d,0x97,0x56,0xc8,0x01,0x36,0xa7,0xbd,0x45,0x8c,0x64,0x9f,0x96,0xb8,0xae,0xbb,0x69,0x02,0x57,0x65,0x75,0x57,0x5f,0x77,0x82,0xec,0x36,0x02,0x39,0x29,0x2a,0x38,0x3b,0x27,0x27,0x3d,0x00,0x00,0x02,0x00,0xa7, +0xff,0xf6,0x05,0xc1,0x05,0x82,0x00,0x40,0x00,0x4c,0x00,0x00,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x23,0x22,0x26,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x06,0x07,0x07,0x26,0x26,0x35,0x34,0x36,0x24,0x37,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x17,0x36,0x36, +0x33,0x32,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x05,0x21,0x16,0x1b,0x57,0x78,0x77,0x56,0x5c,0x77,0x9e,0x80,0x2f,0x57,0x56,0x45,0x3e,0x3e,0x1b,0x1e,0x25,0x18,0x10,0x02,0xda,0xfd,0x93,0x01,0x20,0xf9,0xaf,0xa5,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c, +0xb4,0x16,0x6f,0x5d,0x26,0x49,0x49,0x52,0x46,0x4b,0x1c,0x2e,0x49,0x0d,0x9a,0x3b,0x29,0x27,0x3b,0x3a,0x28,0x27,0x3d,0x01,0x18,0x05,0x76,0x59,0x5a,0x75,0x7c,0x65,0xd1,0xfe,0xf7,0x27,0x46,0x4d,0x44,0x2e,0x33,0x57,0x84,0x1b,0x02,0xf1,0xc7,0xa3,0xef,0xa4,0x3b,0x28,0x77,0x57,0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71, +0x93,0x5f,0xca,0x39,0x8b,0x7f,0x22,0x39,0x54,0x4c,0x34,0x49,0x3d,0xd0,0x29,0x3b,0x39,0x2b,0x29,0x39,0x3a,0x00,0x00,0x02,0x00,0x67,0xff,0xf4,0x06,0x00,0x04,0xfe,0x00,0x37,0x00,0x43,0x00,0x00,0x13,0x34,0x12,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x02,0x06,0x23,0x22,0x26, +0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x01,0x23,0x03,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x25,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x67,0xd9,0xc5,0x57,0x9d,0x2b,0x1e,0x51,0x38,0x1a,0x3f,0x4b,0x35,0x37,0x15,0x31,0x37,0xa8,0x54,0x79,0x43,0x23, +0x55,0x51,0x1d,0x2e,0x11,0x1d,0x2d,0x0b,0x01,0x13,0xc1,0xe5,0x3e,0x6d,0x3f,0x4a,0x67,0x31,0x3c,0x08,0x6f,0x58,0x5b,0x76,0x7a,0x65,0xc7,0xe6,0x01,0xbd,0x2a,0x39,0x3a,0x29,0x2a,0x37,0x38,0x01,0xdb,0xfa,0x01,0x1c,0x6a,0x57,0x94,0x7a,0x26,0x48,0x35,0x26,0xe1,0xa8,0x88,0xfe,0xe5,0x8f,0x32,0x51,0x1d,0x28,0x88,0x7f,0xfd,0x73, +0x02,0x46,0xa1,0x7a,0x63,0xb5,0x6a,0x9d,0x76,0x5c,0x6e,0x74,0x58,0x5d,0x79,0x01,0x06,0x32,0x02,0x3b,0x27,0x2a,0x38,0x38,0x2a,0x28,0x3c,0x00,0x00,0x02,0x00,0xd0,0xff,0xf2,0x05,0x97,0x04,0xa3,0x00,0x0f,0x00,0x1e,0x00,0x00,0x01,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x13,0x32,0x36,0x35, +0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x03,0x3a,0xaa,0x01,0x18,0x9b,0x9e,0xfe,0xe6,0xaf,0xa9,0xfe,0xe7,0x9e,0xa0,0x01,0x1e,0xa2,0xcb,0xf2,0x6d,0xc7,0x7f,0x82,0xcd,0x71,0x71,0xc9,0x04,0xa3,0x9a,0xfe,0xed,0xad,0xad,0xfe,0xec,0x96,0x9c,0x01,0x14,0xa7,0xa9,0x01,0x15,0x9c,0xfb,0xe5,0xf9,0xc8,0x80,0xd0,0x74, +0x76,0xd0,0x80,0x7d,0xcf,0x73,0x00,0x02,0x00,0xd2,0xff,0xf7,0x05,0x95,0x04,0xa3,0x00,0x2a,0x00,0x36,0x00,0x00,0x05,0x27,0x36,0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15, +0x10,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x4d,0x75,0x80,0x94,0x70,0xc9,0x81,0x85,0xc7,0x6e,0x85,0x6e,0x2d,0x15,0x38,0x69,0x48,0x48,0x6b,0x5b,0xa4,0x6f,0x75,0xbc,0x68,0xa0,0x01,0x11,0xaf,0xa5,0x01,0x15,0xa9,0xfd,0x93,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x09,0x70,0x69,0x01,0x19,0x97,0x65,0xb9, +0x6f,0x6a,0xbc,0x71,0x9a,0xb4,0x0b,0x34,0x4d,0x4b,0x69,0x6b,0x49,0x4e,0x81,0x49,0x73,0xd6,0x8e,0x97,0x01,0x07,0x92,0x8e,0xfe,0xfa,0x8f,0xfe,0x90,0x65,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x02,0x01,0x47,0xff,0xf2,0x05,0x21,0x06,0x66,0x00,0x25,0x00,0x31,0x00,0x00,0x25,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x10,0x01,0x36,0x12,0x37,0x17,0x0e,0x02,0x07,0x0e,0x03,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x08,0x26,0x26,0x65,0x4b,0x50,0x65,0x6c,0xc8,0x7e,0xa2,0xfb,0x8b,0x01,0x82,0x94,0xca,0x3a,0x92,0x2e,0x5c,0x75,0x8d,0x69,0x8f,0x57, +0x27,0x69,0xba,0x6a,0x61,0x90,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0xa1,0x26,0x3e,0x2d,0x50,0x62,0x68,0x4a,0x58,0x93,0x55,0x7f,0xe8,0x93,0x01,0x2b,0x01,0x35,0x77,0x01,0x06,0x9d,0x36,0x7b,0xa7,0x89,0x77,0x5a,0x91,0x7b,0x71,0x51,0x5c,0xa0,0x62,0x6b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x03,0x00,0xa3,0xff,0xf2, +0x05,0xc4,0x06,0xac,0x00,0x45,0x00,0x50,0x00,0x5c,0x00,0x00,0x01,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x02,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x37,0x26,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x33,0x32,0x12,0x35,0x34, +0x2e,0x03,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x04,0x17,0x01,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0xe3,0xec,0x71,0x4f,0x26,0x1d,0x2a,0x44,0x67,0xe9,0xc2,0x6f,0x35,0x64,0xb5,0x71,0x62,0xcb,0x6a,0x47,0x9f,0x69,0x49,0x68,0x69,0x48,0x36,0x57, +0x16,0x27,0x1c,0x54,0x7a,0x7f,0x62,0x76,0x86,0x56,0x5d,0xa3,0x39,0x6d,0x81,0x1f,0x3c,0x59,0x73,0xb3,0x78,0x6a,0x3e,0x8b,0x66,0x56,0x01,0x2a,0x96,0xfd,0x51,0x27,0x2e,0x24,0x17,0x20,0x39,0xf9,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x05,0x66,0x71,0x2d,0x12,0x2d,0x1e,0x1d,0x2e,0x28,0x59,0x74,0x93,0xcf,0x8f,0xc0,0xfe,0xc6,0xae, +0x81,0x6f,0x78,0x78,0x69,0x49,0x4b,0x69,0x3b,0x30,0x32,0x4c,0x74,0x01,0x4f,0x72,0x72,0x97,0xd8,0xd4,0x9c,0xe5,0x73,0x81,0x01,0x1d,0xfc,0x65,0x92,0x6c,0x4c,0x3c,0x40,0x2b,0x43,0x57,0x3a,0x5f,0x82,0x68,0x53,0xfc,0x2e,0x69,0x77,0x81,0x93,0x39,0x3e,0x4c,0xe4,0xfd,0xf9,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x03, +0x00,0xdd,0xff,0xf2,0x05,0x8a,0x06,0x3d,0x00,0x3d,0x00,0x47,0x00,0x53,0x00,0x00,0x01,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x24,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x05,0x0e,0x02,0x15,0x14,0x16,0x33,0x32, +0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0xa7,0x32,0x64,0x16,0x2b,0x3a,0x19,0x74,0x65,0x73,0x8f,0x86,0x6d,0x50,0x7a,0x5a,0xe5,0x6f,0x80,0x85,0x3d,0x5c,0xbc,0xa9,0x01,0x42,0x85,0x4b,0x1e, +0xa8,0xb4,0xcc,0xfe,0xf4,0x87,0x98,0x44,0x4c,0x4a,0x41,0xc6,0x32,0x7a,0xcb,0x70,0x48,0x6b,0x6c,0xf8,0x5d,0x42,0x26,0x3e,0x42,0x2f,0x3d,0x5e,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x02,0x0e,0x4c,0x3a,0x16,0x70,0x42,0x4f,0x34,0x3c,0x70,0x56,0x5d,0x70,0x34,0x55,0x89,0x73,0xfa,0xd7,0xa5,0xe0,0x8c,0x2c,0x54,0x2f,0x34,0x41,0x2f, +0xa3,0xb0,0x86,0xa0,0x34,0x45,0x23,0x6d,0xa7,0xa2,0xb9,0xd4,0x75,0x5e,0x74,0x71,0xc4,0x70,0x6b,0x49,0x49,0x69,0xfe,0xb6,0x50,0x2c,0x1f,0x20,0x27,0x01,0x7b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x04,0x00,0xdd,0xff,0xf2,0x05,0x8a,0x06,0x3d,0x00,0x47,0x00,0x51,0x00,0x5c,0x00,0x68,0x00,0x00,0x01,0x14,0x06,0x23, +0x06,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x25,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36, +0x36,0x35,0x35,0x33,0x01,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x03,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x05,0x77,0xd0,0xa8,0x23,0x72,0x80,0xc7,0x9c,0x4c,0x4a,0x41,0xc6,0x32,0x7a,0xcb,0x70,0x48,0x6b,0x6c,0x47,0x32,0x64,0x16,0x2b,0x3a,0x19, +0x74,0x65,0x73,0x8f,0x86,0x6d,0x50,0x7a,0x5a,0xe5,0x6f,0x80,0x85,0x3d,0x68,0xe7,0x01,0x20,0x0f,0x4c,0x66,0x4d,0x4a,0x67,0x0b,0x2b,0x3f,0xa5,0xfe,0x7f,0x5d,0x42,0x26,0x3e,0x42,0x2f,0x3d,0x7d,0x35,0x2a,0x17,0x1c,0x25,0x31,0xf7,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x05,0xd5,0x99,0xbe,0x23,0x3c,0x31,0x4a,0xd9,0xb6,0xb9,0xd4, +0x75,0x5e,0x74,0x71,0xc4,0x70,0x6b,0x49,0x49,0x69,0x4c,0x3a,0x16,0x70,0x42,0x4f,0x34,0x3c,0x70,0x56,0x5d,0x70,0x34,0x55,0x89,0x73,0xfa,0xd7,0xa6,0xc8,0x9e,0x6b,0x08,0x35,0x5c,0x49,0x6b,0x71,0x47,0x18,0x1d,0x1c,0x6b,0x4b,0x5e,0xfa,0x87,0x50,0x2c,0x1f,0x20,0x27,0x03,0xf6,0x21,0x29,0x1c,0x29,0x27,0x1e,0x18,0x30,0xfd,0x83, +0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x03,0x00,0x44,0xff,0xf2,0x06,0x24,0x06,0xac,0x00,0x4d,0x00,0x58,0x00,0x64,0x00,0x00,0x01,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36, +0x33,0x32,0x05,0x07,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0xfe, +0x36,0x57,0x15,0x2e,0x40,0x54,0x94,0x54,0x5b,0x40,0x63,0x79,0x5a,0x5b,0x6f,0x5d,0x39,0x62,0x50,0x93,0x59,0x35,0x74,0xd1,0xa0,0x70,0x6f,0x92,0x5d,0xa7,0x01,0x70,0x46,0x8f,0xa7,0x5a,0x3f,0x1d,0x28,0x48,0x5f,0xfb,0xed,0x69,0x84,0xe1,0x82,0x9d,0x6d,0x71,0x98,0x87,0xe1,0x7e,0x76,0xcc,0x78,0x48,0x6b,0x6c,0xf0,0x14,0x25,0x21, +0x1a,0x1a,0x25,0xf4,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x03,0x50,0x3b,0x30,0x43,0xe3,0x6e,0x71,0xc0,0x6e,0x37,0x6f,0x87,0x62,0x7f,0x7f,0x62,0x87,0x6d,0x39,0x88,0xe6,0x80,0xa4,0xa7,0x7b,0x70,0x38,0x27,0x7e,0x4e,0x58,0x7d,0xbb,0x8b,0x43,0x4f,0x1e,0x2e,0x1d,0x20,0x2f,0x24,0x5d,0xb8,0xfe,0xfe,0xcb,0xaf,0xfe,0xd5,0xaa,0x6a, +0x6a,0x94,0x01,0x04,0x9f,0xa1,0x01,0x3a,0xb2,0x6b,0x49,0x49,0x69,0xfd,0xd9,0x14,0x57,0x17,0x2f,0x35,0x32,0x2a,0x4b,0x02,0x5b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x03,0x00,0x9a,0xfd,0xeb,0x05,0xce,0x04,0xa5,0x00,0x2d,0x00,0x37,0x00,0x43,0x00,0x00,0x01,0x24,0x33,0x32,0x12,0x15,0x11,0x23,0x11,0x34,0x26,0x26, +0x23,0x22,0x06,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x32,0x01,0x16,0xc4,0xd3,0xef,0xa8,0x4d, +0x82,0x4b,0x4c,0xee,0x5f,0x39,0x39,0x57,0x74,0x44,0x49,0x68,0x69,0x48,0x3b,0x32,0x17,0x1a,0x22,0x48,0x41,0x57,0x66,0x70,0x4a,0x48,0x5f,0x44,0x29,0x3d,0x1b,0x24,0x26,0x19,0x2c,0x17,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x0f,0x96,0xfe,0xeb,0xf3,0xfb,0x4e,0x04,0xb2,0x66,0xab,0x61,0x4b,0x36,0xa7,0xba,0x55,0xea,0xa3,0x59, +0x69,0x49,0x4b,0x69,0x27,0x34,0x8f,0x37,0xac,0x73,0x22,0x69,0x52,0x4c,0x70,0x3c,0x92,0x5a,0x2a,0x1b,0x1b,0x30,0xfc,0xca,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x04,0x00,0xb9,0xfe,0xa4,0x05,0xae,0x04,0xa5,0x00,0x4a,0x00,0x5d,0x00,0x67,0x00,0x73,0x00,0x00,0x01,0x36,0x36,0x33,0x32,0x16,0x11,0x10,0x02,0x06,0x07,0x16, +0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x06,0x07,0x07,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x25,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x07,0x06,0x07,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x01,0x14,0x16, +0x33,0x32,0x36,0x37,0x36,0x24,0x33,0x32,0x17,0x36,0x36,0x35,0x35,0x01,0x06,0x06,0x05,0x34,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x43,0x1d,0xd2,0x3c,0xa8,0x98,0x19,0x38,0x34,0x5e,0x6b,0x48,0x49,0x6a,0x15,0x5b,0x45,0xbc,0x86,0x8c,0x3e,0x63,0x6e,0xae,0xbf, +0x02,0x0d,0x7d,0x54,0x1c,0x3c,0x40,0x56,0xa3,0x22,0x0f,0x14,0x39,0x4a,0x5a,0x36,0x58,0x60,0x39,0x2c,0x0d,0x62,0x3f,0x48,0x6b,0x6c,0x47,0x74,0xcf,0x7a,0x5c,0xa6,0x66,0x44,0x9c,0xfe,0x62,0x21,0x16,0x1c,0x60,0x60,0x82,0x01,0x21,0x42,0x21,0x2c,0x26,0x31,0xfd,0x99,0xae,0x87,0x03,0xb6,0x47,0x3c,0x26,0x1c,0x1c,0x25,0xfd,0x5f, +0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x3f,0x1b,0x49,0xee,0xff,0x00,0xfe,0xff,0xfe,0xf8,0x88,0x1b,0x35,0x7e,0x46,0x6c,0x6c,0x51,0x20,0x26,0x16,0x1e,0x57,0x41,0x2f,0x6a,0x67,0x56,0x95,0x53,0xe5,0x36,0x7a,0x72,0x7d,0x8f,0x3f,0x5a,0x13,0x05,0x03,0x24,0x2a,0x21,0x78,0x7b,0x3a,0x70,0x1b,0x44,0x50,0x6b,0x49,0x49,0x69,0x70, +0xc2,0x71,0x71,0xaf,0x5f,0x38,0xfb,0x11,0x1d,0x1f,0x25,0x2e,0x3e,0x68,0x06,0x19,0x7f,0x49,0x42,0xfe,0xf0,0x4d,0x5b,0x46,0x35,0x20,0x24,0x31,0x19,0x29,0x26,0x02,0xb8,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x02,0x00,0x15,0xff,0xf2,0x06,0x52,0x04,0xa1,0x00,0x33,0x00,0x3f,0x00,0x00,0x01,0x12,0x11,0x14,0x06,0x06, +0x23,0x22,0x26,0x26,0x35,0x37,0x36,0x35,0x10,0x21,0x22,0x06,0x15,0x10,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x10,0x03,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x05,0xb0,0xa2,0x70,0xcd,0x84, +0x78,0xca,0x6a,0x03,0x0c,0xfe,0xe9,0x88,0x97,0x5e,0x17,0x50,0x30,0x48,0x6b,0x6c,0x47,0x6e,0xba,0x76,0xf3,0xcf,0xcf,0xf6,0x06,0x07,0x91,0x83,0x78,0x8d,0x9c,0xfc,0xa9,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x9f,0xfe,0x8d,0xfe,0xdf,0x9f,0xf6,0x84,0x5f,0xb4,0x7a,0x56,0xcd,0x22,0x01,0x47,0xc6,0xb2,0xfe,0xf2,0x83,0x27,0x2f, +0x6b,0x49,0x49,0x69,0xb0,0x01,0x49,0xa5,0xf4,0x01,0x1d,0xfd,0xdc,0x30,0x6b,0x6c,0x33,0x7a,0x8c,0xbb,0xc8,0x01,0x1a,0x01,0x42,0xfb,0xfe,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x02,0x01,0x09,0x01,0xb4,0x04,0x6f,0x05,0x9a,0x00,0x0c,0x00,0x1c,0x00,0x00,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26, +0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x02,0xbd,0x79,0x93,0x8d,0x7f,0x80,0x8a,0x42,0x78,0x50,0x74,0xcb,0x73,0x6d,0xc8,0x7d,0x75,0xcb,0x74,0x6f,0xca,0x05,0x09,0xc9,0x9a,0xa5,0xbc,0xbb,0xa6,0x62,0xa6,0x5b,0x91,0x86,0xe6,0x89,0x92,0xe3,0x7c,0x80,0xe4,0x8d,0x8c,0xe6,0x83,0x00, +0x00,0x01,0x01,0x22,0xff,0x83,0x04,0x56,0x05,0x9a,0x00,0x1d,0x00,0x00,0x05,0x36,0x00,0x35,0x34,0x02,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x24,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x00,0x07,0x01,0xa7,0xfa,0x01,0x0b,0x5d,0x3d,0x35,0xb1,0x60,0x42,0x39,0x9b,0x39,0x51,0xa5,0x01,0x14,0x6f,0x4b, +0x78,0x49,0x85,0xfe,0xf0,0xb0,0x19,0xe7,0x01,0xb7,0xba,0x97,0x01,0x33,0x35,0x39,0x18,0x4b,0xb0,0x43,0x4d,0x51,0xe6,0x5f,0x3a,0x78,0x5a,0x88,0xfe,0xed,0x90,0x9b,0xfe,0xae,0xfe,0x9b,0x9a,0x00,0x00,0x01,0x00,0xf8,0xff,0x83,0x04,0x80,0x05,0x9a,0x00,0x23,0x00,0x00,0x05,0x26,0x02,0x26,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32, +0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x12,0x13,0x03,0xe7,0x21,0x4d,0x63,0x85,0x57,0x74,0x5b,0x1b,0x6d,0xb8,0x41,0x41,0x5d,0x79,0x77,0x6a,0x53,0xf2,0x6d,0x42,0xa3,0xe7,0x6b,0xba,0xd0,0x38,0x61,0x64,0x62,0x88,0x1c,0x7d,0xf0,0x01,0x05,0xa0,0x59,0x36, +0x8c,0x3b,0x18,0x54,0xc7,0x48,0x59,0x63,0x90,0x73,0x85,0x90,0x7f,0x98,0x8b,0x5d,0x9f,0x89,0x5d,0x5f,0xfe,0x91,0xfe,0xff,0x00,0x01,0x01,0x0e,0xff,0x83,0x04,0x69,0x05,0x9a,0x00,0x31,0x00,0x00,0x01,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x15,0x14, +0x06,0x06,0x07,0x16,0x17,0x07,0x02,0x21,0x22,0x07,0x27,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x01,0xa0,0x8c,0x8f,0x33,0x2e,0x59,0x4a,0x5c,0x69,0x4e,0xec,0x60,0x3c,0x8b,0xee,0x71,0x9c,0xbf,0xb1,0x8e,0x2d,0x63,0x53,0x88,0x5b,0x8d,0xa8,0xfe,0xa1,0x37,0x36,0x37,0x5f,0x69,0x85,0x6c,0x59,0x7c,0x78, +0x73,0x43,0x81,0x23,0x03,0x68,0x36,0x08,0x41,0x67,0x32,0x4b,0x4e,0x7f,0x5b,0x7b,0x77,0x79,0x99,0x84,0x8b,0x92,0x52,0x93,0x59,0x78,0x75,0x37,0x69,0xc4,0x4e,0x01,0x68,0x14,0x81,0x23,0x28,0x2c,0x97,0x46,0x53,0x5e,0x18,0x11,0x00,0x01,0x00,0xb7,0xff,0x83,0x04,0xc0,0x05,0x9a,0x00,0x22,0x00,0x00,0x01,0x20,0x11,0x34,0x37,0x22, +0x0e,0x02,0x15,0x14,0x12,0x12,0x04,0x17,0x07,0x26,0x00,0x00,0x02,0x35,0x34,0x36,0x24,0x33,0x32,0x17,0x06,0x15,0x14,0x16,0x33,0x37,0x07,0x06,0x04,0x68,0xfe,0x53,0x0e,0x2e,0xa9,0x76,0x1b,0x86,0xfb,0x01,0x1c,0x77,0x30,0x97,0xfe,0xb0,0xfe,0xe9,0x90,0x57,0x01,0x32,0x83,0x8e,0x27,0x13,0x8a,0x91,0x40,0x10,0x2a,0x02,0xa8,0x01, +0xc3,0x57,0x50,0x1c,0x23,0x2a,0x45,0x92,0xfe,0xa9,0xfe,0xad,0xf2,0x2b,0x88,0x32,0x01,0x13,0x01,0x80,0x01,0x7e,0xac,0x6f,0x61,0x58,0x29,0x9f,0x3f,0xb0,0x9e,0x05,0x9d,0x05,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0xff,0x05,0xae,0x00,0x16,0x00,0x00,0x01,0x12,0x12,0x17,0x07,0x26,0x02,0x03,0x06,0x23,0x22,0x26,0x02,0x03,0x37,0x17, +0x12,0x16,0x33,0x32,0x37,0x02,0x03,0x03,0x36,0x19,0xee,0xc2,0x4c,0x98,0xe5,0x46,0xa6,0x81,0x73,0x93,0x48,0x03,0xa5,0x08,0x09,0x69,0x6d,0x3c,0x91,0x3c,0x0b,0x05,0xae,0xfd,0xd5,0xfd,0x09,0x8f,0x7a,0x62,0x01,0x9b,0x01,0x24,0x56,0x9e,0x01,0x57,0x01,0x57,0x14,0x9d,0xfe,0xbf,0xf1,0x4e,0x01,0x2c,0x01,0x41,0x00,0x01,0x00,0x6c, +0xff,0xf6,0x05,0x0b,0x05,0x9a,0x00,0x2c,0x00,0x00,0x01,0x12,0x12,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x02,0x03,0x01,0x10,0x0d,0x94,0xef,0x9d,0x39,0x8f,0x5c,0x61,0x61,0x70, +0x7f,0x73,0x40,0xdb,0xaf,0x53,0xa0,0x5b,0x4e,0x9a,0x65,0x67,0x7a,0x5f,0x63,0x99,0x7d,0x57,0x35,0x8c,0xee,0x74,0xbe,0xfe,0xe1,0xb5,0x1f,0x04,0x66,0xfe,0xd1,0xfe,0x33,0xe3,0x5a,0x91,0x52,0x42,0x6d,0x31,0x38,0x3f,0x62,0x7a,0x4e,0x95,0xc0,0x45,0x42,0x73,0x69,0x6c,0x5a,0x3c,0x6a,0x34,0x51,0x4b,0x54,0x68,0x41,0x70,0xdb,0x8f, +0xf0,0x01,0xf1,0x01,0x75,0x00,0x00,0x01,0x00,0x3b,0xff,0xf6,0x05,0x3c,0x05,0xae,0x00,0x26,0x00,0x00,0x01,0x0a,0x02,0x23,0x22,0x26,0x27,0x36,0x37,0x36,0x12,0x35,0x34,0x26,0x23,0x22,0x02,0x03,0x27,0x12,0x12,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x02,0x07,0x16,0x33,0x32,0x36,0x12,0x12,0x13,0x05,0x3c,0x07,0x72,0xf7,0xd9, +0x71,0x98,0x45,0x0a,0x19,0x89,0x6d,0x67,0x6b,0x79,0x90,0x1b,0x8d,0x1c,0x68,0xb7,0x93,0x6f,0x9c,0x54,0x3e,0x73,0x3a,0x34,0x2c,0x83,0xa4,0x61,0x31,0x0a,0x05,0xae,0xfd,0xac,0xfd,0xa6,0xfe,0xf6,0x29,0x2a,0x18,0x2c,0xef,0x01,0x4f,0x8a,0x92,0x81,0xfe,0xe8,0xfe,0xbd,0x2f,0x01,0x1b,0x01,0x19,0x89,0x65,0xb1,0x68,0x69,0xfe,0xf8, +0xfe,0xe9,0x5c,0x10,0x77,0x01,0x01,0x01,0xc4,0x01,0xd7,0x00,0x00,0x01,0x00,0xcb,0xff,0x83,0x04,0xad,0x05,0xae,0x00,0x15,0x00,0x00,0x05,0x26,0x02,0x26,0x26,0x23,0x22,0x07,0x27,0x3e,0x02,0x37,0x17,0x04,0x07,0x36,0x33,0x32,0x04,0x12,0x17,0x04,0x14,0x12,0x80,0xa2,0xb4,0x5b,0x83,0x60,0x23,0x2b,0x9f,0xda,0x63,0x6a,0xfe,0xeb, +0x87,0x38,0x3e,0x89,0x01,0x1b,0xda,0x19,0x7d,0x81,0x01,0x4c,0xf6,0x85,0x39,0x7e,0x67,0xef,0xf2,0x56,0x64,0xff,0xf6,0x07,0xfe,0xfe,0x43,0xdb,0x00,0x01,0x00,0xe3,0xff,0x83,0x04,0x95,0x05,0x9a,0x00,0x25,0x00,0x00,0x05,0x26,0x35,0x10,0x12,0x00,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x2e,0x02,0x35, +0x34,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x02,0x15,0x14,0x17,0x01,0x0e,0x2b,0xce,0x01,0x45,0xbc,0x66,0x6c,0x73,0x4b,0x28,0x85,0x72,0x21,0x7a,0xaa,0x5c,0x36,0x3d,0x3a,0x39,0x1e,0x2b,0x88,0xeb,0x91,0x2e,0x7d,0x95,0xc0,0x01,0x31,0x02,0x4d,0x01,0x44,0x4d,0x45,0x88,0x6b,0x46,0x33,0x1a,0x41,0x54,0x0f,0x91,0x12, +0x54,0x74,0x3d,0x28,0x56,0x3b,0x38,0x5c,0x2d,0x19,0x12,0xfe,0xda,0xfd,0xf6,0xfc,0xc5,0x78,0x00,0x02,0x00,0x47,0xff,0xf1,0x03,0xc8,0x03,0x6e,0x00,0x0f,0x00,0x1b,0x00,0x00,0x01,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xc8, +0x78,0xd2,0x78,0x78,0xd0,0x77,0x79,0xd0,0x76,0x79,0xd0,0x79,0x97,0xaf,0x7c,0x7c,0xab,0xad,0x7a,0x7e,0xad,0x01,0xaf,0x76,0xce,0x7a,0x79,0xd0,0x75,0x7a,0xd1,0x74,0x75,0xd0,0x7a,0x80,0xb0,0xae,0x82,0x81,0xae,0xb4,0x00,0x01,0x00,0x5a,0xff,0xf1,0x03,0xb5,0x03,0x6e,0x00,0x1b,0x00,0x00,0x13,0x36,0x36,0x33,0x32,0x16,0x16,0x15, +0x14,0x06,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x5b,0x3d,0xe0,0x84,0x79,0xcb,0x75,0x7c,0xd1,0x76,0x85,0xda,0x39,0x89,0x26,0x88,0x59,0x84,0xb0,0xac,0x7e,0x5c,0x93,0x24,0x02,0x68,0x7a,0x8c,0x7a,0xd0,0x75,0x73,0xd1,0x7a,0x91,0x7b,0x37,0x54,0x60,0xab,0x7c,0x7f,0xb9,0x65, +0x58,0x00,0x00,0x01,0x00,0x44,0xfd,0xfe,0x03,0xcc,0x03,0x64,0x00,0x12,0x00,0x00,0x05,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x33,0x14,0x16,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xcc,0x70,0xc5,0x85,0x92,0xcf,0x6d,0x98,0x4d,0x8d,0x5c,0x88,0x9b,0x97,0x0d,0x91,0xef,0x75,0x6f,0xc7,0x82,0x52,0x8a,0x4d,0xc8,0xb1,0x03,0x5e, +0x00,0x01,0x00,0x5a,0xfd,0xfe,0x03,0xb5,0x03,0x6e,0x00,0x1f,0x00,0x00,0x01,0x01,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x27,0x01,0x02,0xea,0xfd,0xcb,0x2d,0x2e,0x89,0x26,0x88,0x59,0x83,0xb1,0xab,0x7f,0x5c,0x93,0x24,0x86, +0x3d,0xe0,0x84,0x79,0xcc,0x74,0x7c,0xd1,0x76,0x05,0x05,0x01,0xc2,0xfd,0xfe,0x02,0x7d,0x32,0x54,0x38,0x54,0x60,0xa8,0x7e,0x80,0xb4,0x65,0x58,0x46,0x7a,0x8c,0x78,0xcd,0x75,0x73,0xd1,0x7a,0x01,0xfe,0x07,0x00,0x01,0x00,0x5a,0xfd,0xfe,0x03,0xb5,0x03,0x6e,0x00,0x1f,0x00,0x00,0x13,0x01,0x07,0x23,0x22,0x26,0x26,0x35,0x34,0x36, +0x36,0x33,0x32,0x16,0x17,0x07,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x07,0x01,0x79,0x01,0xb5,0x0b,0x06,0x75,0xd2,0x7c,0x74,0xcb,0x7a,0x84,0xdd,0x40,0x86,0x25,0x93,0x5b,0x7f,0xab,0xb2,0x82,0x59,0x88,0x26,0x89,0x2a,0x32,0xfd,0xe0,0xfd,0xfe,0x01,0xf9,0x01,0x7a,0xd0,0x74,0x74,0xcd,0x79,0x8b, +0x7b,0x46,0x58,0x65,0xb3,0x81,0x7e,0xa8,0x60,0x54,0x38,0x50,0x36,0xfd,0x83,0x00,0x00,0x02,0x00,0x44,0xfd,0xfe,0x03,0xcc,0x03,0x6e,0x00,0x27,0x00,0x33,0x00,0x00,0x01,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x33,0x14,0x16, +0x16,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x11,0x7a,0x52,0x55,0x73,0x82,0x61,0x5f,0x83,0x75,0xd3,0x81,0x86,0xc5,0x70,0x70,0xc6,0x85,0x91,0xcf,0x6d,0x98,0x4d,0x8d,0x5b,0x89,0x9b,0x99,0xfe,0x2b,0x3c,0x28,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x02,0xdf,0x4e,0x0a,0x81, +0x56,0x5b,0x87,0x84,0x5d,0x7b,0xce,0x76,0x76,0xee,0x91,0xfe,0x7a,0x90,0xef,0x76,0x6e,0xc8,0x82,0x56,0x86,0x4d,0xc8,0xb1,0x01,0x6a,0xb0,0xbf,0xfe,0xd2,0x28,0x3b,0x3c,0x27,0x29,0x3b,0x3b,0x00,0x00,0x02,0x00,0x44,0xff,0xf1,0x03,0xcc,0x05,0xe9,0x00,0x2f,0x00,0x3b,0x00,0x00,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16, +0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x12,0x15,0x23,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x11,0x10,0x21,0x32,0x36,0x35,0x34,0x26,0x27,0x07,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0xd3,0x86,0x5c,0x5e,0x85,0x38,0x2a,0x35,0xfb,0xc6,0x8a,0xc6,0x6a, +0x73,0xc5,0x82,0xd9,0xf5,0x98,0x4d,0x8d,0x5c,0x88,0x9b,0x01,0x23,0x94,0x96,0x3a,0x25,0x0a,0x0b,0x5e,0x83,0x7f,0x3c,0x27,0x29,0x3b,0x3b,0x29,0x28,0x3b,0x02,0x7c,0x60,0x84,0x85,0x5e,0x52,0x43,0x1d,0x49,0x37,0x9f,0xbb,0x6a,0xd7,0x8c,0x02,0x54,0x8a,0xdf,0x6e,0xfe,0xf0,0xdb,0x60,0xa0,0x5c,0xbd,0xb2,0xfd,0xe6,0xfe,0xaf,0x61, +0x5b,0x23,0x2d,0x10,0x01,0x83,0x60,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x3c,0x00,0x01,0x00,0x30,0xfe,0x05,0x03,0xe0,0x03,0x6e,0x00,0x32,0x00,0x00,0x05,0x0e,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06, +0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x03,0xe0,0x07,0x40,0x6d,0x4b,0x50,0x68,0x3a,0x1d,0x35,0x45,0x44,0x34,0x1c,0xaf,0x7c,0x7c,0xab,0x2d,0x7b,0x4a,0x79,0xd0,0x76,0x7a,0xd1,0x77,0x1e,0x32,0x50,0x58,0x35,0x2c,0x28,0x13,0x1d,0x1d,0x15,0x15,0xf9,0x48,0x74,0x46,0x32,0x5d,0x3b,0x3d,0x62,0x6e,0x6b,0x69, +0x6c,0x69,0x34,0x7f,0xa7,0xae,0x82,0x58,0x4a,0x52,0x72,0x82,0x7a,0xd1,0x74,0x72,0xca,0x79,0x34,0x75,0x68,0x7e,0x88,0x88,0x37,0x2a,0x2c,0x09,0x19,0x23,0x48,0x00,0x00,0x02,0x00,0x47,0xff,0xf0,0x03,0xc8,0x03,0x6e,0x00,0x1d,0x00,0x24,0x00,0x00,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x07, +0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x25,0x34,0x26,0x27,0x16,0x17,0x36,0x02,0x6c,0x53,0x72,0xaf,0x7c,0x64,0xa0,0x1a,0x7c,0x9d,0x6e,0x51,0x77,0x84,0x79,0xd1,0x75,0x79,0xd0,0x79,0x9d,0x76,0xfe,0xc5,0x57,0x42,0x0a,0x74,0x1b,0x6f,0x1d,0xb5,0x6e,0x80,0xb0,0x76,0x5e,0x09,0x9b,0x6f,0x4d,0x9d, +0x1d,0x45,0xf8,0x92,0x72,0xc6,0x76,0x75,0xd0,0x7a,0x92,0xfe,0x2f,0xfd,0x45,0x66,0x04,0x91,0x7a,0x2e,0x00,0x02,0x00,0x44,0xfd,0xfe,0x03,0xcc,0x03,0x6e,0x00,0x30,0x00,0x3c,0x00,0x00,0x25,0x34,0x36,0x33,0x33,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x20,0x11,0x11,0x14,0x16,0x33,0x32,0x36,0x36,0x35,0x33,0x14,0x06,0x06,0x23,0x22, +0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0xd3,0x83,0x5e,0x0b,0x0a,0x25,0x3a,0x97,0x93,0xfe,0xdd,0x98,0x8b,0x5b,0x93,0x48,0x98,0x6e,0xcf,0x91,0x83,0xc4,0x73,0x6a,0xc7,0x89,0xc6,0xfb,0x35,0x2a, +0x38,0x82,0x61,0x5c,0x86,0x7f,0x3b,0x28,0x29,0x3b,0x3c,0x28,0x28,0x3b,0xe3,0x5e,0x83,0x01,0x10,0x2d,0x23,0x5c,0x60,0xfe,0xaf,0xfe,0x6e,0xb1,0xbe,0x4c,0x83,0x5a,0x82,0xc7,0x6f,0x6e,0xe0,0x89,0x01,0xcc,0x8c,0xd8,0x69,0xbc,0x9e,0x37,0x49,0x1d,0x43,0x52,0x5c,0x87,0x84,0x5e,0x29,0x3b,0x3b,0x29,0x28,0x3b,0x3c,0x00,0x00,0x02, +0x00,0x80,0xff,0xf1,0x04,0x08,0x05,0xe9,0x00,0x0f,0x00,0x1a,0x00,0x00,0x01,0x14,0x02,0x23,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x07,0x10,0x21,0x22,0x06,0x15,0x11,0x10,0x21,0x20,0x11,0x04,0x08,0xf6,0xd8,0x8a,0xc6,0x6a,0x74,0xc7,0x83,0xdb,0xef,0x97,0xfe,0xc9,0x88,0x9b,0x01,0x23,0x01,0x37,0x01,0xc8, +0xd6,0xfe,0xff,0x6a,0xd7,0x8c,0x02,0x54,0x85,0xe3,0x6f,0xf2,0xdc,0x0d,0x01,0x4c,0xbd,0xb2,0xfd,0xe6,0xfe,0xaf,0x01,0x6f,0x00,0x01,0x00,0xa3,0xff,0xe7,0x03,0xe5,0x05,0xe8,0x00,0x09,0x00,0x00,0x13,0x25,0x33,0x11,0x25,0x17,0x05,0x23,0x11,0x05,0xa3,0x01,0xd1,0x1c,0x01,0x2b,0x2a,0xfe,0x30,0x1c,0xfe,0xd4,0x05,0x16,0xd2,0xfa, +0xcb,0x86,0x80,0xd2,0x05,0x35,0x83,0x00,0x00,0x01,0x00,0x9b,0x00,0x00,0x03,0xed,0x05,0xe9,0x00,0x22,0x00,0x00,0x13,0x11,0x33,0x15,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x36,0x36,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x15,0x9b,0x97,0x73,0x87,0xca,0xf7,0x51,0x92,0xaa, +0x80,0x66,0x37,0x94,0x43,0x77,0x9d,0x91,0x7d,0x42,0xaa,0x80,0x4e,0x83,0x29,0x04,0x12,0x01,0xd1,0x45,0x4b,0xed,0xbd,0x57,0x9f,0x9d,0x85,0x65,0x66,0x5d,0x2e,0xd1,0xe0,0x42,0x7b,0x7d,0x7b,0x71,0x81,0x7a,0x3e,0x7b,0xa0,0x4e,0x3c,0xbe,0x00,0x01,0x00,0x5d,0x00,0x00,0x04,0x2b,0x05,0xe3,0x00,0x12,0x00,0x00,0x33,0x01,0x33,0x03, +0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x07,0x03,0x5d,0x01,0xeb,0xa7,0xd1,0x28,0x2c,0x7d,0xcb,0x71,0x97,0xac,0x7e,0x44,0x3f,0xe9,0x05,0xe3,0xfd,0x83,0x08,0x6a,0xbd,0x70,0xfe,0x29,0x01,0xa7,0x7f,0xb9,0x1e,0xfd,0x3f,0x00,0x01,0x00,0x31,0xff,0xe7,0x04,0x56,0x05,0xe3,0x00,0x09,0x00,0x00,0x33,0x01, +0x33,0x11,0x25,0x17,0x05,0x23,0x11,0x01,0x31,0x02,0x1d,0xb3,0x01,0x2c,0x29,0xfe,0x30,0x1c,0xfe,0x68,0x05,0xe3,0xfa,0xcf,0x87,0x80,0xd2,0x04,0x7a,0xfb,0x9f,0x00,0x00,0x02,0x00,0x57,0xff,0xf1,0x04,0x30,0x05,0xe3,0x00,0x11,0x00,0x1d,0x00,0x00,0x01,0x33,0x15,0x23,0x11,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21, +0x11,0x33,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x36,0x35,0x11,0x03,0xb6,0x7a,0x7a,0x67,0xbb,0x7a,0xd0,0xf3,0xf1,0xc9,0x01,0x0e,0x97,0xfe,0x62,0x8d,0x9d,0xa6,0x8e,0x40,0x78,0x45,0x03,0x6e,0x8f,0xfe,0xa0,0x7c,0xb3,0x5f,0xee,0xd0,0xcb,0xf4,0x02,0x75,0xfc,0xfc,0xa4,0x94,0x8a,0x9d,0x3a,0x64,0x3f,0x01,0x82,0x00,0x02, +0x00,0x57,0x00,0x00,0x04,0x30,0x05,0xe9,0x00,0x11,0x00,0x1d,0x00,0x00,0x01,0x23,0x11,0x23,0x11,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x33,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x04,0x30,0x7a,0x97,0xfe,0xf2,0xca,0xf0,0xf3,0xd0,0x79,0xbc,0x67,0x7a,0xfe,0xef,0x46,0x77,0x40,0x8e, +0xa6,0x9d,0x8d,0x01,0x07,0x02,0x6c,0xfd,0x94,0x02,0x6c,0xf4,0xcb,0xcf,0xef,0x5f,0xb3,0x7c,0xfe,0xa1,0x01,0x81,0x3f,0x65,0x39,0x9c,0x8a,0x96,0xa2,0x00,0x00,0x01,0x00,0xd7,0x00,0x00,0x03,0xb1,0x05,0xe3,0x00,0x07,0x00,0x00,0x13,0x21,0x01,0x21,0x15,0x21,0x01,0x21,0xd7,0x02,0xa8,0xfe,0x4f,0x01,0xe3,0xfd,0x50,0x01,0xaa,0xfe, +0x2c,0x05,0xe3,0xfa,0xac,0x8f,0x05,0x54,0x00,0x02,0x00,0x83,0xff,0xf1,0x04,0x04,0x05,0xfe,0x00,0x28,0x00,0x34,0x00,0x00,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27, +0x37,0x13,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x5e,0x4c,0x5a,0x6e,0x60,0x5f,0x6f,0x78,0xd2,0x78,0x78,0xd0,0x77,0x6a,0x63,0x5e,0x6f,0x5d,0x4d,0x63,0x36,0x3f,0xad,0x7a,0x7e,0xad,0x40,0x39,0x66,0x13,0xaf,0x7c,0x7c,0xab,0xad,0x7a,0x7e,0xad,0x05,0xfb,0x3c,0xb3,0x6d,0x6f,0xca,0x3e,0x3d,0xc7,0x75,0x76, +0xce,0x7a,0x79,0xd0,0x75,0x72,0xc7,0x40,0x3d,0xc8,0x72,0x6e,0xb4,0x3d,0x6a,0x2a,0x7e,0x4d,0x81,0xae,0xb4,0x7b,0x4b,0x80,0x2b,0x66,0xfb,0xb4,0x80,0xb0,0xae,0x82,0x81,0xae,0xb4,0x00,0x00,0x02,0x00,0x83,0xff,0xdc,0x04,0x04,0x05,0xe9,0x00,0x27,0x00,0x33,0x00,0x00,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16, +0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x07,0x13,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x02,0xf4,0x39,0x40,0xae,0x7d,0x7a,0xad,0x3f,0x36,0x63,0x4d,0x5d,0x6f,0x5e,0x61,0x6c,0x78,0xd0,0x77,0x78,0xd2,0x78,0x6f, +0x5f,0x61,0x6d,0x5b,0x4d,0x11,0xae,0x7d,0x7a,0xad,0xa9,0x7e,0x7e,0xad,0x46,0x2a,0x80,0x4b,0x7c,0xb3,0xae,0x81,0x4d,0x7e,0x29,0x6b,0x3d,0xb4,0x6e,0x71,0xc9,0x3d,0x3e,0xca,0x71,0x76,0xd0,0x78,0x7a,0xce,0x76,0x75,0xc6,0x3e,0x3f,0xc9,0x6f,0x6d,0xb3,0x3e,0x04,0x4e,0x7c,0xb3,0xae,0x81,0x81,0xae,0xb1,0x00,0x00,0x02,0x01,0x48, +0xff,0xec,0x04,0xbc,0x05,0xa3,0x00,0x0b,0x00,0x17,0x00,0x00,0x01,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x03,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x04,0xbc,0xd6,0xe5,0xe0,0xd9,0xda,0xdf,0xe0,0xdb,0xa0,0x8c,0x8f,0x8a,0x8d,0x88,0x8f,0x92,0x89,0x02,0xc8,0xfe,0x7a,0xfe,0xaa,0x01,0x58,0x01, +0x84,0x01,0x78,0x01,0x63,0xfe,0xa0,0xfe,0x85,0x01,0x3c,0x01,0x13,0xfe,0xe1,0xfe,0xd0,0xfe,0xc9,0xfe,0xe7,0x01,0x11,0x00,0x00,0x01,0x01,0x21,0xff,0xec,0x04,0xe2,0x05,0xa3,0x00,0x2c,0x00,0x00,0x01,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x00,0x11,0x14,0x02,0x04, +0x23,0x22,0x27,0x27,0x16,0x33,0x32,0x36,0x12,0x35,0x10,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x02,0xcd,0x29,0x30,0x4c,0x34,0x3e,0x4c,0x94,0x6f,0x9e,0xbc,0x77,0xd6,0x84,0xeb,0x01,0x05,0xaf,0xfe,0xcf,0xc4,0x48,0x50,0x1b,0x5f,0x68,0x93,0xdc,0x81,0xfe,0xa4,0x88,0x9d,0x68,0x54,0x3a,0x02,0xf2,0x0b,0x42,0x27,0x32,0x4e,0x5a, +0x3f,0x68,0x95,0xd9,0xb3,0x7b,0xd3,0x79,0xfe,0xa1,0xfe,0xb6,0xe2,0xfe,0x95,0xc1,0x0a,0xa5,0x19,0x92,0x01,0x1e,0xb6,0x02,0x2f,0xbd,0x90,0x66,0x88,0x00,0x00,0x02,0x00,0x74,0xff,0xec,0x05,0x8f,0x06,0x3b,0x00,0x4c,0x00,0x55,0x00,0x00,0x13,0x16,0x16,0x15,0x11,0x14,0x33,0x32,0x36,0x37,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36, +0x35,0x11,0x34,0x23,0x22,0x06,0x07,0x07,0x27,0x26,0x23,0x22,0x06,0x15,0x15,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x27,0x01,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x27, +0xa4,0x66,0x65,0x57,0x24,0x47,0x3e,0x6c,0x68,0x30,0x5f,0x5a,0x53,0x24,0x20,0x2c,0x62,0x22,0x5a,0x2f,0x23,0x2c,0x5c,0x52,0x26,0x2e,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0x65,0x6d,0x92,0x6a,0x2d,0x83,0x41,0x69,0x76,0x85,0x59,0x34,0x56,0x54,0x59,0x37,0x36,0x5e,0x5b,0x5f,0x37,0x78,0x77,0x26,0x35,0x02,0x1d,0x22,0x1c,0x37,0x4d, +0x28,0x06,0x3b,0x13,0x72,0x6e,0xfb,0xa2,0x72,0x11,0x17,0x28,0x19,0x1e,0x19,0x38,0x20,0x03,0xbd,0x8a,0x46,0x38,0x2a,0x33,0x74,0x55,0x56,0xbd,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59,0x4e,0x01,0xfd,0xa8,0x9b,0x82,0x3a,0x48,0x9b,0x8b,0xfc,0x21,0x45,0x6d,0x19,0x1e,0x19,0x19,0x1e,0x19,0x67,0x6d,0x04,0x44,0x5b,0x43,0x0f,0xfc,0xd9, +0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x02,0x00,0x43,0xff,0xec,0x05,0xc1,0x05,0xa3,0x00,0x28,0x00,0x31,0x00,0x00,0x21,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x32,0x16,0x15,0x11,0x25,0x14, +0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x05,0x21,0x82,0x62,0x69,0x82,0xa0,0x82,0x69,0x63,0x81,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0xd4,0xb0,0x64,0xa2,0x35,0x6c,0xcf,0xaf,0xd5,0xfb,0x22,0x22,0x1c,0x37,0x4d,0x28,0x04,0x1e,0x70,0x89,0x8a,0x6f,0xfb,0xe2,0x04,0x1e,0x6f,0x8a,0x8a,0x6f,0xfd,0xc0,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59, +0x4e,0x03,0x89,0xb5,0xd2,0x44,0x42,0x86,0xd1,0xb6,0xfb,0xe4,0xba,0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x00,0x01,0x00,0xf0,0xff,0xec,0x05,0x14,0x06,0x27,0x00,0x3d,0x00,0x00,0x01,0x34,0x36,0x33,0x26,0x26,0x23,0x22,0x15,0x14,0x16,0x17,0x07,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x11,0x10,0x00,0x25,0x36,0x36,0x35,0x35, +0x33,0x15,0x14,0x06,0x06,0x07,0x0e,0x02,0x15,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x03,0xef,0x51,0x37,0x08,0x57,0x44,0xb6,0xe7,0xf1,0x1a,0xc0,0x64,0x55,0x77,0x78,0x3c,0x95,0xb3,0x01,0x00,0x01,0x1e,0xa9,0x97,0xa0,0x5a,0xac,0xa3,0xa4,0xb7,0x5a,0x6a, +0x64,0x2e,0x77,0x7d,0x2d,0x93,0xa6,0xb8,0x9f,0x96,0xb3,0x58,0x44,0x39,0x50,0x02,0x26,0x39,0x4f,0x3b,0x44,0xdc,0x90,0xdd,0x56,0xa0,0x21,0x11,0x12,0xc2,0x9f,0x01,0x0f,0x01,0x05,0x01,0x2e,0x4e,0x2d,0x61,0x41,0x7b,0x73,0x56,0x81,0x58,0x2b,0x2c,0x82,0xc7,0x8b,0xd6,0x83,0x89,0x0f,0x0f,0x01,0x3d,0xd9,0x93,0xb1,0xc8,0xcb,0xa7, +0x4c,0x5e,0x4f,0x00,0x00,0x02,0x00,0xd6,0xff,0xec,0x05,0x2e,0x06,0x3b,0x00,0x4e,0x00,0x5a,0x00,0x00,0x01,0x06,0x06,0x15,0x15,0x14,0x06,0x06,0x23,0x06,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x24,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x26,0x26,0x23,0x22,0x06,0x15,0x14, +0x16,0x17,0x07,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x3e,0x02,0x35,0x35,0x34,0x36,0x37,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x05,0x2e,0x37,0x23,0x7d,0xf5,0x8f,0xae,0xaf,0x6a,0x64,0x2e,0x77,0x7d,0x2d,0xfe,0xc7,0xc5, +0x92,0x96,0xb3,0x58,0x44,0x39,0x50,0x51,0x37,0x08,0x57,0x44,0x53,0x63,0xf9,0xdf,0x1a,0xc0,0x64,0x55,0x77,0x78,0x3c,0x95,0xb3,0x43,0x8b,0x72,0x61,0x7a,0x62,0x5f,0x84,0x1b,0x41,0x62,0x38,0x67,0x64,0xfd,0x3f,0x30,0x23,0x24,0x31,0x31,0x24,0x23,0x30,0x05,0xb1,0x10,0x45,0x58,0x53,0x56,0x80,0x47,0x1d,0xbe,0xaf,0x86,0x83,0x89, +0x0f,0x0f,0x01,0x7c,0xf5,0x8b,0xb8,0xcb,0xa7,0x4c,0x5e,0x4f,0x3a,0x39,0x4f,0x3b,0x44,0x60,0x53,0x7a,0xc7,0x3d,0xa0,0x21,0x11,0x12,0xc2,0x9f,0xbf,0x7f,0xa2,0x7d,0x2a,0x43,0x70,0x5f,0x83,0x86,0x5b,0x34,0x33,0x01,0x2e,0x4b,0x25,0x88,0x6f,0x71,0x13,0xfe,0x57,0x23,0x30,0x30,0x23,0x24,0x31,0x31,0x00,0x01,0x01,0x0f,0xff,0xec, +0x04,0xf5,0x06,0x3b,0x00,0x3a,0x00,0x00,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x12,0x11,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x37,0x36,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x17,0x36,0x33,0x32,0x00,0x11,0x15,0x10,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26, +0x35,0x34,0x36,0x02,0xe0,0x16,0x3a,0x54,0x68,0x9c,0x89,0xb3,0xa9,0xac,0xa5,0x6d,0xba,0x2e,0x65,0x11,0x0c,0x04,0x2f,0x2d,0x2f,0x60,0x6c,0x02,0x70,0x74,0xfc,0x01,0x09,0xff,0xf1,0x84,0xd6,0x77,0xbc,0x9e,0x49,0x77,0x43,0x4c,0x3e,0x35,0x4b,0x30,0x02,0x9d,0x16,0x88,0x66,0x90,0xbd,0x01,0x08,0x01,0x13,0x9e,0xef,0xed,0x63,0x4e, +0x72,0x26,0x1b,0x15,0x19,0x2a,0x3e,0x0c,0x8a,0x13,0x72,0x4b,0x38,0xfe,0xc8,0xfe,0xd0,0xba,0xfe,0xbd,0xfe,0xae,0x79,0xd3,0x7b,0xb3,0xd9,0x44,0x76,0x43,0x3f,0x5a,0x4f,0x31,0x27,0x42,0x00,0x02,0x00,0x8f,0xff,0xec,0x05,0x74,0x06,0x3b,0x00,0x37,0x00,0x40,0x00,0x00,0x01,0x16,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11, +0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x26,0x23,0x22,0x06,0x15,0x11,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x27,0x01,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x04,0xa9,0x66,0x65,0x85,0x72,0x72,0x7f,0x28,0x30,0x23,0x63, +0x52,0x2b,0x5a,0x54,0x26,0x2e,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0x65,0x6d,0x91,0x6a,0x6c,0x84,0x6a,0x76,0x54,0x27,0x2d,0x29,0x31,0xfc,0xb5,0x22,0x1c,0x37,0x4d,0x28,0x06,0x3b,0x15,0x6e,0x65,0xfb,0x6d,0x64,0x70,0x69,0x5d,0x03,0xdb,0x46,0x44,0x49,0x5f,0x33,0x74,0x55,0x56,0xfd,0x73,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59,0x4e, +0x03,0xcd,0xa8,0x9b,0x82,0x82,0x9d,0x89,0xfc,0x67,0x6c,0x39,0x39,0x04,0x2c,0x57,0x3c,0x08,0xfb,0x09,0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x01,0x01,0x0b,0xff,0xec,0x04,0xf9,0x06,0x27,0x00,0x45,0x00,0x00,0x01,0x14,0x0e,0x02,0x07,0x0e,0x04,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x17,0x16,0x16,0x17,0x32,0x36,0x35,0x34, +0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x3e,0x02,0x37,0x3e,0x02,0x35,0x35,0x33,0x04,0xf9,0x2e,0x54,0x92,0x9a,0x7e,0x72,0x56,0x3a,0x20,0x3b,0x36,0x22,0x5a,0x2f,0x23,0x2c,0x2f,0x54,0x2b,0x41,0x39,0x52, +0x3c,0x16,0x1a,0x27,0x25,0x48,0x34,0x3a,0x4b,0x7e,0x6d,0x8a,0x9e,0x8e,0x6a,0x92,0x6a,0x2d,0x84,0x40,0x6c,0x82,0x38,0x73,0xc5,0xc1,0x72,0x71,0x3a,0xa0,0x05,0xb4,0x4a,0x72,0x55,0x44,0x26,0x20,0x36,0x4e,0x73,0xa1,0x6f,0xfe,0xf0,0x44,0x46,0x46,0x38,0x2a,0x32,0x3b,0x39,0x01,0x9f,0x98,0x75,0x90,0x07,0x0a,0x39,0x23,0x2b,0x45, +0x4c,0x3a,0x60,0x80,0xe4,0xbc,0xb9,0xf9,0x82,0x3b,0x47,0xa1,0x85,0x01,0x2c,0x8b,0xcd,0x8f,0x6c,0x39,0x23,0x3d,0x52,0x30,0x7b,0x00,0x00,0x01,0x01,0x20,0xff,0xec,0x04,0xe3,0x06,0x3b,0x00,0x43,0x00,0x00,0x01,0x06,0x06,0x15,0x15,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x21,0x07,0x23,0x22,0x06,0x15,0x14,0x16, +0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x35,0x10,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x34,0x36,0x37,0x04,0xe3,0x37,0x23,0xa2,0x22,0x8e,0x61,0x6a,0x85,0x35,0x63,0x46,0x01,0x3c,0x10,0xed,0x8f,0xb5,0xb8, +0x8c,0x91,0xa8,0x41,0x30,0x16,0x1a,0x27,0x25,0x48,0x34,0x3a,0x4b,0x7e,0x6d,0x7e,0x8d,0x78,0xda,0x87,0xdf,0xfe,0xfb,0xdc,0x57,0x5e,0xe0,0xb6,0xa3,0x69,0x67,0x64,0x05,0xb1,0x10,0x45,0x58,0xa4,0x56,0x61,0x70,0x5b,0x35,0x58,0x32,0x8c,0xb2,0x91,0x8f,0xb7,0x7d,0x6d,0x49,0x5e,0x07,0x0a,0x39,0x23,0x2b,0x45,0x4c,0x3a,0x60,0x80, +0xa7,0x99,0x6c,0xa2,0x58,0xf1,0xcd,0x01,0x2d,0x69,0x26,0x8b,0x5b,0x9b,0xbc,0x5b,0x6f,0x71,0x13,0x00,0x00,0x02,0x00,0x9d,0x00,0x45,0x03,0xaf,0x05,0xa3,0x00,0x0e,0x00,0x1d,0x00,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x12,0x37,0x14,0x02,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x33, +0x32,0x12,0x03,0x08,0x60,0x4c,0x4e,0x7c,0x4e,0x33,0x55,0x2f,0x4f,0x77,0x47,0xa7,0x75,0xc9,0x87,0x67,0x95,0x51,0x7a,0xd7,0x7c,0x98,0xad,0x03,0x81,0xb6,0xe2,0xb0,0xfe,0xa8,0xb8,0x72,0xb7,0x62,0xa8,0x01,0x5f,0xa0,0xf3,0xfe,0x7f,0xbc,0x8f,0x01,0x1e,0xba,0xd5,0x01,0x5e,0xc4,0xfe,0xd5,0x00,0x01,0x00,0xb6,0xfe,0xf1,0x03,0x95, +0x05,0xa3,0x00,0x2e,0x00,0x00,0x01,0x14,0x02,0x02,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x16,0x16,0x33,0x32,0x12,0x12,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x16,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x10,0x12,0x36,0x33,0x32,0x12,0x03,0x95,0x5d,0x88,0xa7,0x50,0x3b,0x7b,0x4d,0x4d,0x11, +0x1f,0x06,0x0b,0x51,0x2d,0x46,0x93,0x53,0x3c,0x36,0x42,0x75,0x4d,0x27,0x10,0x09,0x5f,0x1d,0x11,0x38,0x22,0x74,0xcc,0x7a,0x7f,0x8b,0x03,0x60,0xec,0xfe,0x42,0xfe,0xdd,0xa2,0x4f,0x7b,0x3a,0x12,0x3a,0x20,0x3b,0x61,0x01,0x52,0x01,0xf7,0xcb,0xb6,0xca,0xc0,0xfe,0xa8,0x90,0x72,0x8f,0x29,0x17,0x15,0x1a,0x44,0x68,0x96,0x5a,0x01, +0x0e,0x01,0x9e,0xe2,0xfe,0xd5,0x00,0x01,0x00,0x36,0x00,0x8a,0x04,0x16,0x05,0xa3,0x00,0x3f,0x00,0x00,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x01,0x36,0x36,0x35,0x34,0x23,0x22,0x06,0x06,0x02,0x15,0x14,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x12,0x12,0x36,0x33, +0x32,0x16,0x15,0x14,0x03,0x03,0x36,0x33,0x32,0x16,0x33,0x32,0x36,0x37,0x36,0x36,0x33,0x32,0x16,0x04,0x16,0x0f,0x6e,0x65,0x44,0x1f,0x3a,0x1f,0x2b,0x35,0x0a,0x09,0x15,0x3e,0x0b,0x01,0x1a,0x29,0x31,0x68,0x41,0xb8,0x9e,0x55,0x30,0x09,0x5f,0x1c,0x13,0x31,0x21,0x6f,0xcc,0xf4,0x72,0x78,0x89,0xa9,0xc5,0x0d,0x14,0x18,0x2c,0x1b, +0x17,0x62,0x21,0x0b,0x0d,0x0b,0x23,0x4c,0x02,0x21,0x11,0x2d,0xd7,0x60,0x12,0x22,0x07,0x40,0x10,0x16,0x16,0x02,0x32,0x52,0xaa,0x28,0xb2,0x9b,0xf7,0xfe,0xeb,0x89,0x5b,0x7d,0x18,0x11,0x17,0x47,0x5b,0x8b,0x3f,0xbf,0x01,0x6d,0x01,0x23,0xa5,0xa4,0x86,0x71,0xfe,0xbb,0xfe,0x84,0x04,0x09,0x8d,0x51,0x1c,0x17,0x23,0x00,0x00,0x01, +0x00,0x5a,0x01,0x73,0x03,0xf1,0x05,0xa3,0x00,0x54,0x00,0x00,0x01,0x14,0x06,0x06,0x23,0x22,0x26,0x23,0x22,0x07,0x07,0x22,0x35,0x35,0x34,0x37,0x37,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x0e,0x02,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x1e,0x02,0x15,0x14,0x06, +0x23,0x22,0x26,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x07,0x16,0x33,0x32,0x36,0x37,0x36,0x33,0x32,0x16,0x03,0xe4,0x62,0x7f,0x2a,0x11,0x2d,0x28,0x23,0x23,0x10,0x36,0x43,0x20,0x9b,0x2a,0x3b,0x19,0x15,0x16,0x2b,0x31,0x38,0x24,0x23,0x30,0x27,0x1b,0x11,0x2f,0x2b,0x25,0x48,0x29, +0x23,0x38,0x58,0x35,0x0d,0x11,0x0d,0x6b,0x1e,0x12,0x36,0x5f,0xa8,0x72,0x29,0x68,0x16,0x5e,0x61,0x36,0x53,0x2f,0x54,0x50,0x8d,0x18,0x1c,0x20,0x4f,0x1c,0x0d,0x15,0x11,0x32,0x02,0x62,0x22,0x71,0x51,0x07,0x0f,0x03,0x24,0x0d,0x0e,0x71,0x39,0x01,0x23,0x4d,0xc1,0x35,0x26,0x31,0x32,0x61,0x90,0x5d,0x5c,0x66,0x2e,0x1d,0x11,0x14, +0x6d,0x5e,0xb5,0x62,0x26,0x26,0x82,0xfe,0xf1,0x90,0x4b,0x5c,0x3c,0x29,0x16,0x14,0x41,0xc6,0x49,0xe7,0x01,0x75,0xb7,0x32,0x23,0x55,0x32,0x57,0x33,0x4a,0xf1,0x94,0xfe,0x0b,0x3e,0x32,0x18,0x24,0x00,0x01,0x00,0xc5,0xff,0xc3,0x03,0x86,0x05,0xa7,0x00,0x26,0x00,0x00,0x01,0x32,0x16,0x16,0x15,0x10,0x02,0x06,0x23,0x22,0x26,0x35, +0x34,0x12,0x37,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x12,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x36,0x02,0xea,0x20,0x4c,0x30,0x69,0xba,0x83,0x8c,0x8f,0x8d,0x81,0x1a,0x15,0x0e,0x57,0x2c,0x75,0x5d,0x43,0x3b,0x4a,0x6e,0x40,0x28,0x2e,0x08,0x54,0x05,0xa7,0x9c,0xed,0x6b,0xfe,0xef,0xfe,0x1c, +0xfb,0xee,0xe8,0xd0,0x01,0x65,0x8e,0x1c,0x36,0x0c,0x14,0x3a,0xa0,0xfe,0xed,0x98,0x94,0xbb,0xde,0x01,0xa1,0xca,0x94,0xb9,0x49,0x0c,0x13,0x11,0x4a,0x00,0x00,0x01,0x00,0xab,0x01,0x46,0x03,0xa0,0x05,0xa7,0x00,0x33,0x00,0x00,0x01,0x14,0x06,0x23,0x22,0x26,0x27,0x27,0x26,0x27,0x27,0x06,0x02,0x06,0x06,0x23,0x22,0x26,0x26,0x35, +0x34,0x36,0x33,0x32,0x16,0x15,0x07,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x36,0x37,0x36,0x35,0x34,0x27,0x27,0x34,0x36,0x33,0x32,0x16,0x16,0x17,0x17,0x13,0x17,0x16,0x03,0xa0,0x3b,0x29,0x19,0x2e,0x19,0x1a,0x18,0x0a,0x05,0x06,0x29,0x35,0x5a,0x49,0x57,0x65,0x2d,0x1e,0x37,0x27,0x1d,0x04,0x2a,0x2b,0x30,0x38,0x0d,0x06,0x0b,0x1d, +0x14,0x16,0x04,0x3e,0x17,0x1b,0x17,0x14,0x0b,0x04,0x64,0x3c,0x24,0x01,0xdd,0x17,0x23,0x7b,0x8b,0x8a,0x77,0x80,0x2b,0x7f,0xfe,0x64,0xa3,0x51,0x71,0xe0,0xf8,0x21,0x1b,0x15,0x14,0xed,0x72,0x68,0xa7,0xd6,0x5a,0xa9,0x3a,0x3c,0x40,0x10,0x45,0x11,0x11,0x1f,0x18,0x47,0x45,0x18,0xfe,0x6e,0xd2,0x7f,0x00,0x01,0x00,0x79,0xff,0xc3, +0x03,0xd2,0x05,0xa3,0x00,0x40,0x00,0x00,0x01,0x36,0x36,0x33,0x32,0x16,0x15,0x10,0x02,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x06,0x02,0x15,0x10,0x12,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x06,0x06,0x07,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x35,0x34,0x27,0x26,0x35,0x34, +0x36,0x33,0x32,0x15,0x14,0x07,0x06,0x15,0x14,0x02,0x72,0x14,0x2a,0x16,0x78,0x94,0xc8,0xbe,0x88,0xd5,0x76,0x60,0xad,0xd8,0x60,0x37,0x26,0x10,0x2a,0x2f,0xb7,0xdc,0xa1,0x8a,0x70,0x72,0x7c,0x17,0x2e,0x20,0x01,0x01,0x17,0x22,0x1f,0x17,0x0e,0x0d,0x08,0x08,0x1d,0x30,0x4f,0x0b,0x0b,0x03,0x2a,0x06,0x0d,0xb3,0x93,0xfe,0xee,0xfe, +0xde,0xb1,0x01,0x49,0xd2,0x9a,0x01,0x1e,0xdb,0x81,0x13,0x1a,0x31,0x1d,0x12,0x07,0x1a,0xfe,0xa4,0xff,0xfe,0xee,0xfe,0xc6,0xb9,0xc6,0xf6,0x31,0x49,0x19,0x1c,0x1d,0x15,0x22,0x33,0x5d,0x5c,0x35,0x26,0x44,0x44,0x24,0x29,0x28,0x3e,0x1e,0x46,0x47,0x2e,0x23,0x00,0x01,0x00,0x74,0xff,0xf6,0x03,0xd8,0x05,0xa3,0x00,0x3e,0x00,0x00, +0x01,0x10,0x02,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0x10,0x33,0x32,0x12,0x11,0x34,0x02,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x03, +0xd8,0x91,0x9e,0x6b,0x60,0x0d,0x0c,0x34,0x3c,0x3c,0x30,0x34,0x35,0x08,0x1a,0x59,0x19,0x2b,0x53,0x42,0x9b,0x89,0x78,0x90,0x0c,0x0c,0x41,0x34,0x34,0x5b,0xa1,0x60,0x23,0x46,0x47,0x20,0x09,0x20,0x14,0xab,0x62,0x95,0xeb,0x83,0x02,0xa5,0xfe,0x97,0xfe,0xba,0xb8,0xb6,0x33,0x95,0x94,0x30,0x7c,0x71,0xb2,0xb6,0x85,0xdd,0x6d,0x0f, +0x1b,0x0f,0x15,0x4f,0xab,0x01,0x50,0x71,0xea,0x01,0x09,0xbd,0x9b,0x31,0x94,0x89,0x39,0xfe,0xf8,0x01,0x20,0x01,0x07,0xa6,0x01,0x23,0xa8,0x16,0x17,0x21,0x2f,0x1e,0x18,0x31,0xc4,0xfe,0x9f,0x00,0x00,0x01,0x00,0xa8,0x00,0x45,0x03,0xa4,0x05,0xa7,0x00,0x31,0x00,0x00,0x01,0x14,0x07,0x06,0x06,0x07,0x0e,0x02,0x23,0x22,0x27,0x26, +0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x13,0x01,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x01,0x37,0x37,0x32,0x17,0x17,0x32,0x37,0x3e,0x04,0x17,0x32,0x16,0x03,0xa4,0x2e,0x24,0x56,0x16,0x1b,0x17,0x20,0x0f,0x26,0x47,0x47,0x23,0x24,0x3f,0x3f,0x20,0x1d,0x27,0x67,0x01,0x43,0x09,0x44,0x23,0x31,0x12,0x14,0x26, +0x57,0xfe,0xef,0x39,0x34,0x0e,0x65,0x20,0x11,0x21,0x0e,0x1f,0x0e,0x54,0x20,0x17,0x1f,0x4e,0x02,0xc6,0x14,0x4c,0x4b,0xd1,0x55,0x69,0x2a,0x1d,0x0f,0x0e,0x0e,0x0f,0x25,0x26,0x30,0x01,0x24,0x03,0xa9,0x1a,0x1a,0x13,0x0e,0x34,0x2f,0x5b,0xe2,0xfd,0x1f,0x07,0x04,0x10,0x03,0x68,0x2d,0x60,0x25,0xd5,0x34,0x03,0x27,0x00,0x00,0x01, +0x00,0xce,0xff,0xc3,0x03,0x7d,0x05,0xa7,0x00,0x37,0x00,0x00,0x01,0x14,0x06,0x23,0x27,0x26,0x23,0x22,0x35,0x34,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x02,0x35,0x10,0x12,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14, +0x16,0x17,0x16,0x03,0x51,0x25,0x0d,0x22,0x5d,0x3d,0x3b,0x21,0x33,0x40,0x16,0x3c,0x30,0x72,0x79,0x73,0x66,0x4c,0x31,0x35,0x09,0x10,0x16,0x42,0x5d,0x89,0x4e,0x72,0xa8,0x5b,0xe6,0xd5,0x6e,0x86,0x2e,0x55,0x0e,0x13,0x24,0x33,0x21,0x01,0x94,0x13,0x4e,0x04,0x12,0x3b,0x18,0x54,0x81,0xdb,0x97,0x48,0x72,0x80,0xfe,0x9f,0xfe,0xc4, +0xfe,0xf4,0xfe,0xda,0x3c,0x40,0x0b,0x3a,0x19,0x21,0x61,0x3d,0xa4,0x01,0x3b,0xde,0x01,0x85,0x01,0xa2,0xd1,0xab,0x4c,0xc0,0xe1,0x23,0x29,0x0e,0x10,0x0f,0x0b,0x08,0x00,0x02,0x00,0xc3,0xff,0xe7,0x05,0x05,0x04,0x19,0x00,0x0b,0x00,0x17,0x00,0x00,0x05,0x22,0x00,0x35,0x10,0x00,0x21,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x06,0x15, +0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0xe4,0xf5,0xfe,0xd4,0x01,0x2c,0x01,0x01,0xf8,0x01,0x1d,0xfe,0xdf,0xfa,0xb3,0xcc,0xd0,0xaf,0xb5,0xbe,0xbe,0x19,0x01,0x21,0xec,0x01,0x02,0x01,0x23,0xfe,0xe7,0xfc,0xfb,0xfe,0xde,0x03,0xa6,0xd9,0xba,0xb5,0xd2,0xcb,0xc0,0xc1,0xce,0x00,0x01,0x01,0x6a,0xff,0xe7,0x04,0x5e,0x04,0x19, +0x00,0x15,0x00,0x00,0x01,0x36,0x33,0x32,0x12,0x15,0x10,0x00,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x01,0x70,0x72,0x9e,0xdf,0xff,0xfe,0xf8,0xf2,0x8e,0x6c,0x69,0x8f,0xa9,0xad,0xa1,0x9d,0x96,0x74,0x03,0xd3,0x46,0xfe,0xe5,0xf6,0xfe,0xfc,0xfe,0xe3,0x38,0xa2,0x4e,0xd0,0xc7,0xbe,0xc5,0x56,0x00, +0x00,0x02,0x01,0x08,0xfd,0x6d,0x04,0xc0,0x04,0x19,0x00,0x1c,0x00,0x27,0x00,0x00,0x01,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x36,0x35,0x11,0x34,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x10,0x00,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x8b,0x7b,0xb8,0x50,0xa8,0xdf,0x77, +0xb4,0x63,0x1d,0x0c,0x73,0x60,0x64,0x71,0x80,0x86,0xb6,0xb8,0xfe,0xd1,0x68,0x2f,0x33,0x60,0x2b,0x33,0x31,0xfd,0x6d,0x23,0x28,0xaa,0x6c,0x79,0xe6,0x9d,0x02,0x25,0xb3,0x65,0x59,0x65,0x70,0x61,0x6d,0x6a,0xe8,0xdd,0xfd,0x9e,0xfe,0xce,0xfe,0xad,0x06,0x3d,0x35,0x31,0x5f,0x34,0x2d,0x30,0x34,0x00,0x00,0x01,0x01,0x20,0xfd,0x6d, +0x04,0xa7,0x04,0x19,0x00,0x25,0x00,0x00,0x25,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x10,0x00,0x21,0x23,0x27,0x17,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x04,0x27,0x01,0x20,0x78,0xa2,0xc0,0xc6,0xb9,0xb2,0xad,0x82,0x7d,0xb2,0xf7,0x01,0x1a,0xfe,0xdd,0xfe,0xf1,0x1a,0x19, +0x53,0xb6,0xe0,0x44,0x43,0x36,0x36,0x59,0x49,0x94,0x8f,0x87,0x78,0x66,0x27,0xc1,0x4e,0xd0,0xc7,0xbe,0xc5,0x56,0x9c,0x46,0xfe,0xe4,0xf5,0xfe,0xfc,0xfe,0xe3,0x02,0x5d,0xd2,0xb8,0x1b,0x90,0x20,0x52,0x80,0x9c,0x94,0x7b,0x1e,0x00,0x01,0x01,0x21,0xfd,0x6d,0x04,0xa6,0x04,0x19,0x00,0x21,0x00,0x00,0x01,0x22,0x06,0x15,0x14,0x16, +0x33,0x32,0x24,0x37,0x15,0x03,0x06,0x02,0x07,0x23,0x36,0x12,0x01,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x03,0x36,0xb0,0xbf,0x9e,0x9b,0x57,0x01,0x09,0x46,0xcd,0xa7,0xaf,0x26,0xbb,0x3e,0xea,0x01,0x24,0x6d,0x8b,0xd4,0xfe,0xff,0x84,0xf5,0x98,0x73,0xbf,0x3c,0x41,0xcd,0x03,0x8f,0xa9,0x9c, +0x93,0x98,0x3e,0x24,0x9c,0xfe,0xf7,0xd5,0xfe,0xe1,0x7b,0xa9,0x01,0x5d,0x01,0x50,0x30,0xed,0xce,0x87,0xd2,0x72,0x26,0x20,0x9c,0x29,0x2f,0x00,0x00,0x01,0x00,0x3c,0xfd,0x6d,0x05,0x8c,0x04,0x19,0x00,0x32,0x00,0x00,0x01,0x10,0x23,0x22,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x11,0x34,0x26,0x26,0x23,0x22, +0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x10,0x17,0x15,0x24,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x05,0x8c,0xfa,0x6c,0x79,0x14,0x83,0x0e,0x2e,0x26,0x5e,0x29,0x5c,0x52,0x60,0x6f,0x0e,0x9e,0x0e,0x6d,0x60,0x51,0x5c,0x2a,0xbf,0xfe,0x99,0x4e,0xa8,0x89,0x78,0x8a,0x29,0x29,0x8b, +0x77,0x88,0xa5,0x4e,0xfe,0x81,0xfe,0xec,0x75,0x64,0x50,0x24,0x2f,0x2d,0x30,0x32,0x8b,0x03,0x79,0xb0,0x91,0x4c,0x75,0x8b,0x8a,0x76,0x4b,0x90,0xb0,0xfe,0xa5,0x24,0x9c,0x48,0x01,0xd3,0xca,0xdb,0x72,0x60,0x75,0x74,0x61,0x70,0xda,0xcf,0x00,0x01,0x01,0x05,0xff,0xe7,0x04,0xc3,0x07,0x62,0x00,0x31,0x00,0x00,0x01,0x10,0x12,0x33, +0x32,0x36,0x35,0x34,0x27,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x20,0x00,0x11,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x02,0x11,0x01,0xa9,0xb1,0xc5,0x7a,0x84,0x7c,0x77,0x4b,0x32,0x1b,0x96,0x8b,0x73,0x54,0x29,0x60,0x3e,0x41,0x46, +0x57,0x75,0x66,0x65,0xd8,0xcc,0xfe,0xed,0xfe,0xf9,0x01,0x3b,0x01,0x2f,0xb6,0x98,0xa5,0xa7,0xe7,0xe1,0x02,0xe9,0xfe,0xb3,0xfe,0xd7,0x57,0x51,0x5b,0x4a,0x46,0x3b,0x45,0x4f,0x33,0x7f,0x92,0x2b,0x90,0x13,0x20,0x4c,0x39,0x33,0x55,0x43,0x3b,0x89,0x56,0xa0,0xa0,0x01,0x72,0x01,0x90,0x01,0x40,0x01,0x97,0x01,0xa2,0x4e,0xaa,0x6d, +0xfe,0x9d,0xfe,0x86,0x00,0x01,0x00,0x50,0xfd,0x6d,0x06,0xdc,0x04,0x19,0x00,0x32,0x00,0x00,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x10,0x17,0x15,0x24,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x14,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15, +0x14,0x06,0x23,0x22,0x11,0x04,0xfc,0x29,0x5c,0x52,0x60,0x6f,0x0e,0x9e,0x0e,0x6d,0x60,0x51,0x5c,0x2a,0xbf,0xfe,0x99,0x4e,0xa8,0x89,0x78,0x8a,0x29,0x29,0x8b,0x77,0x88,0xa5,0x4e,0x5e,0x27,0x2d,0x0e,0x83,0x15,0x79,0x6d,0xfa,0x02,0x00,0xb0,0x91,0x4c,0x75,0x8b,0x8a,0x76,0x4b,0x90,0xb0,0xfe,0xa5,0x24,0x9c,0x48,0x01,0xd3,0xca, +0xdb,0x72,0x60,0x75,0x74,0x61,0x70,0xda,0xcf,0xfc,0x85,0x89,0x32,0x30,0x2d,0x2f,0x26,0x3e,0x70,0x79,0x01,0x14,0x00,0x01,0x00,0xc9,0x00,0x00,0x04,0xfe,0x04,0x00,0x00,0x0e,0x00,0x00,0x01,0x06,0x02,0x07,0x23,0x36,0x12,0x37,0x33,0x16,0x12,0x17,0x23,0x26,0x02,0x02,0xe4,0x2b,0xc5,0x6e,0xbd,0x9a,0xf7,0x36,0xa8,0x3b,0xf2,0x99, +0xbc,0x71,0xc3,0x03,0x31,0xbc,0xfe,0x3c,0xb1,0xe1,0x02,0x2e,0xf1,0xfe,0xfd,0xe1,0xe3,0xb6,0x01,0xc4,0x00,0x01,0x01,0x01,0xfd,0x6d,0x04,0xc6,0x04,0x19,0x00,0x24,0x00,0x00,0x01,0x10,0x21,0x32,0x16,0x15,0x10,0x21,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x11,0x10,0x12,0x33, +0x32,0x37,0x15,0x06,0x23,0x20,0x00,0x01,0x01,0x02,0x11,0xd1,0xe3,0xfe,0xcd,0xfa,0x08,0xa0,0x08,0x2b,0x35,0x48,0x3d,0x8b,0x81,0xb3,0xb6,0xf8,0xe9,0x8f,0x86,0x7e,0x9f,0xfe,0xc4,0xfe,0xbb,0x01,0x29,0x02,0xf0,0xea,0xdb,0xfe,0x62,0xdd,0x30,0x12,0x18,0x27,0x2f,0x30,0x8e,0x8b,0x9b,0xa2,0xfe,0xd6,0xfe,0xbc,0xfe,0x74,0xfe,0x65, +0x52,0xa0,0x3d,0x01,0xe3,0x00,0x00,0x01,0x00,0xd6,0xff,0xe7,0x04,0xf1,0x05,0xfa,0x00,0x22,0x00,0x00,0x01,0x32,0x16,0x17,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x06,0x07,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x00,0x11,0x34,0x12,0x02,0x9f,0x68,0xa6,0x29,0x75,0x3f,0xb0,0x35, +0x2f,0x54,0x75,0x8d,0x6e,0x5d,0x8d,0x98,0xad,0xa9,0x82,0x76,0x6c,0x8e,0xf2,0xfe,0xf8,0xf2,0x04,0x19,0x5f,0x56,0xa4,0xfc,0x8b,0x6b,0x6a,0x8e,0x65,0xa9,0x9a,0x97,0x5b,0x6f,0xce,0xb5,0xc7,0xd0,0x4e,0xa2,0x38,0x01,0x1a,0x01,0x07,0xfc,0x01,0x15,0x00,0x03,0x00,0x8b,0xff,0xe8,0x05,0x79,0x06,0xd0,0x00,0x1a,0x00,0x26,0x00,0x33, +0x00,0x00,0x01,0x02,0x21,0x22,0x26,0x27,0x0e,0x02,0x23,0x20,0x03,0x33,0x14,0x16,0x16,0x33,0x32,0x36,0x35,0x33,0x12,0x33,0x32,0x36,0x36,0x35,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x03,0x34,0x26,0x26,0x23,0x22,0x00,0x15,0x14,0x00,0x33,0x32,0x00,0x05,0x79,0x01,0xfe,0x9f,0x59,0x9d,0x1f,0x0f,0x53,0x76, +0x3c,0xfe,0x9e,0x01,0xa1,0x1f,0x5a,0x49,0x63,0x62,0xa1,0x02,0xc0,0x47,0x5a,0x21,0x99,0xfe,0x94,0xfe,0xfd,0xfe,0xfd,0xfe,0x94,0x01,0x6d,0x01,0x02,0x01,0x01,0x01,0x6e,0xa1,0x7e,0xd5,0x7b,0xbc,0xfe,0xef,0x01,0x0c,0xc1,0xc5,0x01,0x09,0x06,0xd0,0xfe,0x51,0x57,0x4e,0x2c,0x4e,0x2b,0x01,0xaf,0x62,0x7a,0x42,0x86,0x98,0xfe,0xe2, +0x3e,0x75,0x6b,0xfb,0x87,0xfe,0xfd,0xfe,0x94,0x01,0x6e,0x01,0x01,0x01,0x01,0x01,0x6e,0xfe,0x94,0xfe,0xfd,0x80,0xdb,0x83,0xfe,0xe3,0xc1,0xbe,0xfe,0xe0,0x01,0x23,0x00,0x01,0x02,0xb1,0x00,0x00,0x03,0x52,0x06,0xd0,0x00,0x03,0x00,0x00,0x21,0x23,0x11,0x33,0x03,0x52,0xa1,0xa1,0x06,0xd0,0x00,0x04,0x00,0x1f,0xff,0xe8,0x05,0xe4, +0x06,0xe8,0x00,0x20,0x00,0x2c,0x00,0x38,0x00,0x45,0x00,0x00,0x25,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x23,0x11,0x26,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x14,0x06,0x07,0x11,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35, +0x34,0x36,0x33,0x32,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x36,0x05,0xe4,0x73,0x9d,0x78,0x9b,0x86,0x4c,0x9d,0x5e,0xa2,0x72,0x50,0x49,0xcb,0x90,0x90,0xca,0x01,0x8f,0x7b,0x79,0x91,0x6f,0x9e,0x85,0x4d,0x6b,0x4b,0xfd,0x93,0x3d,0x2d,0x2d,0x3e,0x3e,0x2d,0x2c,0x3e,0xfd,0xd0,0x3e,0x2d,0x2b,0x40,0x40, +0x2b,0x2d,0x3e,0x01,0x77,0x76,0x54,0x50,0x7a,0x3a,0x3d,0x53,0x54,0x76,0x69,0x81,0x6d,0x5a,0xaf,0x04,0x3a,0x1d,0x5d,0x62,0x77,0x90,0xcb,0xcc,0x8f,0x78,0xbb,0x20,0xfc,0xa4,0x61,0x6b,0x5b,0x5b,0x01,0xe4,0x2d,0x3d,0x3e,0x2c,0x2d,0x3e,0x3e,0x2d,0x2c,0x3e,0x3d,0x2d,0x2e,0x3d,0x3e,0x02,0xa8,0x56,0x74,0x71,0x59,0x53,0x3d,0x3a, +0x72,0x00,0x00,0x02,0x00,0xb7,0x00,0x00,0x05,0x4d,0x06,0xe8,0x00,0x29,0x00,0x35,0x00,0x00,0x01,0x10,0x21,0x23,0x11,0x23,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x26,0x23,0x35,0x20,0x36,0x35,0x34,0x26,0x23,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x20,0x15,0x14,0x07,0x15,0x16,0x01,0x34,0x26,0x27, +0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x4d,0xfe,0x8f,0x5f,0xa1,0x01,0x00,0x79,0x67,0x43,0xa7,0xa1,0x01,0x02,0x89,0x71,0x6f,0x76,0x19,0xbb,0x80,0x8c,0xcf,0xcb,0x90,0x7c,0xbf,0x19,0x76,0x01,0x71,0xc5,0xc5,0xfd,0x8f,0x76,0x54,0x51,0x79,0x6f,0x5b,0x56,0x74,0x03,0x16,0xfe,0xf9,0xfd,0xf1,0x02,0xa0,0x40,0x4a,0x34,0x3b, +0x12,0x91,0x42,0x4d,0x4c,0x2f,0x75,0xa0,0xc7,0x95,0x90,0xcb,0x9c,0x75,0xf8,0xb6,0x32,0x07,0x35,0x01,0xd2,0x55,0x74,0x01,0x71,0x59,0x51,0x79,0x76,0x00,0x00,0x01,0x00,0xd7,0x00,0x00,0x05,0x2d,0x06,0xd0,0x00,0x12,0x00,0x00,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x01,0x07,0x01,0x11,0x21,0x11,0x33,0x11,0x21,0x05, +0x2d,0xa1,0xfe,0xc7,0xa1,0xfe,0x25,0xa3,0x01,0xa5,0x72,0xfe,0xcb,0x01,0x3a,0xa1,0x01,0xda,0x02,0x48,0xfd,0xb8,0x02,0x48,0x04,0x88,0xfe,0x58,0x72,0x01,0x39,0xfc,0xea,0x01,0x22,0xfe,0xde,0x00,0x00,0x01,0x00,0xf9,0xff,0xe9,0x05,0x0b,0x06,0xd0,0x00,0x1b,0x00,0x00,0x01,0x14,0x06,0x07,0x27,0x36,0x36,0x35,0x34,0x26,0x23,0x22, +0x00,0x07,0x23,0x11,0x33,0x01,0x07,0x01,0x11,0x36,0x37,0x36,0x33,0x32,0x16,0x16,0x05,0x0b,0xd5,0x96,0x37,0x7c,0x95,0x86,0x70,0xd8,0xfe,0xef,0x01,0xa1,0xa3,0x01,0xa6,0x72,0xfe,0xca,0x51,0x87,0x7f,0x93,0x71,0xb5,0x61,0x01,0xa6,0x9a,0xf6,0x2d,0x7b,0x21,0xb4,0x6d,0x62,0x74,0xfe,0x82,0xfe,0x06,0xd0,0xfe,0x58,0x72,0x01,0x39, +0xfb,0xf9,0x89,0x47,0x47,0x51,0x9e,0x00,0x00,0x02,0x01,0x37,0xff,0xe8,0x04,0xcd,0x06,0xd0,0x00,0x1a,0x00,0x26,0x00,0x00,0x01,0x14,0x06,0x23,0x20,0x11,0x10,0x13,0x21,0x35,0x21,0x36,0x37,0x21,0x15,0x21,0x06,0x07,0x21,0x15,0x21,0x02,0x11,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04, +0xcd,0xcc,0x8f,0xfe,0x6e,0x7d,0xfe,0xda,0x01,0x61,0x47,0x7a,0x01,0x74,0xfe,0xf2,0x47,0x2f,0x01,0x2f,0xfe,0x94,0x8b,0x69,0x88,0x8f,0xcc,0x91,0x72,0x58,0x59,0x72,0x70,0x5b,0x5a,0x70,0x01,0x44,0x90,0xcc,0x02,0x57,0x01,0x2d,0x01,0x53,0x92,0xa2,0xdd,0x92,0x83,0x6a,0x92,0xfe,0xa1,0xfe,0xde,0x60,0xcc,0x8e,0x50,0x79,0x78,0x51, +0x50,0x7b,0x7a,0x00,0x00,0x02,0x00,0x33,0xff,0xe8,0x05,0xd0,0x06,0xe8,0x00,0x1f,0x00,0x2b,0x00,0x00,0x13,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x33,0x11,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x11,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06, +0x33,0x73,0x9d,0x76,0x9d,0x83,0x4e,0x9e,0x5d,0xa3,0x75,0x96,0xca,0x92,0x8f,0xcc,0x98,0x72,0x77,0x93,0x70,0x9d,0x85,0x4c,0x69,0x4e,0x03,0x26,0x77,0x53,0x54,0x77,0x78,0x53,0x53,0x77,0x06,0x67,0x81,0x6d,0x5b,0xb0,0xfb,0xc5,0x1c,0xc0,0x76,0x90,0xcb,0xca,0x91,0x77,0xc0,0x1b,0x03,0x5d,0x62,0x6c,0x5b,0x5b,0xfb,0x47,0x53,0x77, +0x76,0x54,0x54,0x76,0x77,0x00,0x00,0x04,0x01,0x1c,0xff,0xe8,0x04,0xe8,0x06,0x83,0x00,0x0b,0x00,0x17,0x00,0x2d,0x00,0x39,0x00,0x00,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x37,0x26,0x03,0x33,0x16,0x16, +0x33,0x32,0x36,0x37,0x33,0x02,0x07,0x16,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xad,0x3d,0x2d,0x2e,0x3d,0x3e,0x2d,0x2c,0x3e,0xfd,0x7f,0x3d,0x2d,0x2e,0x3d,0x3e,0x2d,0x2c,0x3e,0x02,0xbc,0xfe,0xe6,0xcc,0xcc,0xfe,0xe6,0xda,0xd9,0x01,0xa2,0x01,0xbd,0x86,0x87,0xbd,0x01,0xa1,0x02,0xd8,0xda,0xa1,0xbf, +0x86,0x86,0xbe,0xbf,0x85,0x86,0xbf,0x06,0x18,0x2b,0x40,0x40,0x2b,0x2d,0x3e,0x3e,0x2d,0x2b,0x40,0x40,0x2b,0x2d,0x3e,0x3e,0xfb,0x8c,0xc7,0xfe,0xde,0x01,0x20,0xc9,0x01,0x02,0x95,0x93,0x01,0x00,0x7e,0xc5,0xc7,0x7c,0xfe,0xff,0x92,0x95,0xfe,0xfe,0x7f,0xc7,0xc6,0x80,0x83,0xc5,0xc7,0x00,0x00,0x03,0x00,0x45,0xff,0xe9,0x05,0xbe, +0x06,0xe8,0x00,0x28,0x00,0x35,0x00,0x41,0x00,0x00,0x01,0x14,0x06,0x07,0x15,0x14,0x07,0x16,0x15,0x14,0x06,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x27,0x06,0x21,0x22,0x24,0x27,0x34,0x37,0x36,0x33,0x20,0x17,0x36,0x35,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x32,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x06,0x07,0x14,0x16,0x33,0x32,0x36, +0x01,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x20,0x37,0x05,0xbe,0x92,0x81,0x2f,0x2f,0x79,0xf2,0x98,0xb0,0xc2,0x07,0xb5,0xfe,0xc7,0xcb,0xfe,0xec,0x01,0x8b,0x8a,0xcb,0x01,0x38,0xb6,0x07,0x01,0x7c,0x96,0xca,0x91,0x90,0xcc,0x92,0x3b,0x3a,0x55,0x55,0x74,0x01,0x71,0x59,0x56,0x74,0xfe,0x9f,0x8c,0xfe,0xe6,0x87,0xb8,0x57, +0x93,0x55,0x01,0x1b,0x8b,0x05,0x8d,0x76,0xc2,0x1d,0x18,0x86,0x74,0x72,0x88,0x9d,0xeb,0x9e,0x1d,0xa1,0x2b,0xd7,0xa0,0x28,0x29,0xc4,0xd8,0x95,0x97,0x6a,0x6c,0xc3,0x28,0x28,0x18,0x1d,0xbf,0x79,0x90,0xca,0x01,0xcc,0x8f,0x57,0x38,0x3b,0x76,0x54,0x51,0x79,0x76,0xfd,0xef,0xc2,0x74,0x50,0x32,0x5e,0x33,0xc1,0xff,0xff,0x00,0x00, +0xfd,0xff,0x03,0xbd,0xff,0xbb,0x02,0x26,0x0b,0x59,0x00,0x00,0x00,0x27,0x0b,0x5f,0x02,0x6d,0x00,0x00,0x00,0x07,0x0b,0x53,0x03,0x04,0x00,0x00,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x97,0xff,0xbb,0x02,0x26,0x0b,0x5a,0x00,0x00,0x00,0x67,0x0b,0x5f,0x02,0x47,0x00,0x00,0xc0,0x01,0x40,0x00,0x00,0x07,0x0b,0x53,0x02,0xde,0x00,0x00, +0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x97,0xff,0xbb,0x02,0x26,0x0b,0x5b,0x00,0x00,0x00,0x67,0x0b,0x5f,0x02,0x47,0x00,0x00,0xc0,0x01,0x40,0x00,0x00,0x07,0x0b,0x53,0x02,0xde,0x00,0x00,0xff,0xff,0xff,0x9c,0x05,0x77,0x00,0x67,0x06,0x40,0x02,0x06,0x0b,0x66,0x00,0x00,0xff,0xff,0xfe,0xe6,0x05,0x77,0x01,0x1b,0x06,0x40,0x02,0x27, +0x0b,0x66,0xff,0x4a,0x00,0x00,0x00,0x07,0x0b,0x66,0x00,0xb4,0x00,0x00,0xff,0xff,0xff,0x9c,0xfe,0x8d,0x00,0x67,0xff,0x56,0x02,0x06,0x0b,0x67,0x00,0x00,0xff,0xff,0x00,0x31,0x00,0x00,0x03,0x17,0x05,0xd5,0x02,0x26,0x0b,0x6a,0x00,0x00,0x00,0x07,0x0b,0x61,0x01,0x9f,0x00,0x00,0xff,0xff,0x00,0x20,0x00,0x00,0x03,0xab,0x05,0xd5, +0x02,0x26,0x0b,0x6b,0x00,0x00,0x00,0x07,0x0b,0x61,0x01,0xea,0x00,0x00,0xff,0xff,0x00,0xb8,0x00,0x00,0x04,0xc0,0x05,0xd5,0x02,0x26,0x0b,0x6c,0x00,0x00,0x00,0x07,0x0b,0x61,0x02,0xad,0x00,0x00,0xff,0xff,0x00,0x34,0xff,0xed,0x05,0x23,0x05,0xd5,0x02,0x26,0x0b,0x82,0x00,0x00,0x00,0x07,0x0b,0x61,0x02,0xf3,0x00,0x00,0x00,0x02, +0x00,0x6d,0xff,0xe8,0x01,0xcc,0x05,0xb2,0x00,0x0d,0x00,0x1b,0x00,0x4d,0x40,0x2e,0x11,0x03,0x7e,0x18,0x0a,0x0a,0x1d,0x1b,0x14,0x0d,0x06,0x15,0x91,0x14,0x0d,0x91,0x00,0x2f,0x14,0x01,0x20,0x00,0x50,0x00,0x80,0x00,0xb0,0x00,0xd0,0x00,0xe0,0x00,0x06,0x14,0x00,0x14,0x00,0x06,0x1b,0x91,0x0e,0x04,0x07,0x91,0x06,0x13,0x00,0x3f, +0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0x10,0xed,0x01,0x2f,0x33,0x33,0x33,0x12,0x39,0x2f,0x33,0xe9,0x32,0x31,0x30,0x13,0x32,0x16,0x15,0x14,0x06,0x23,0x35,0x36,0x36,0x35,0x34,0x26,0x27,0x11,0x32,0x16,0x15,0x14,0x06,0x23,0x35,0x36,0x36,0x35,0x34,0x26,0x27,0x6d,0x91,0xce,0xce,0x91,0x52,0x65,0x65,0x52, +0x91,0xce,0xce,0x91,0x52,0x65,0x65,0x52,0x02,0xa6,0xce,0x91,0x91,0xce,0x98,0x06,0x6e,0x53,0x53,0x6e,0x06,0x03,0xa4,0xce,0x91,0x91,0xce,0x98,0x06,0x6e,0x53,0x53,0x6e,0x06,0x00,0x02,0x00,0x5a,0x01,0x80,0x01,0x52,0x05,0xb2,0x00,0x0d,0x00,0x1b,0x00,0x30,0x40,0x18,0x11,0x03,0xed,0x18,0x0a,0x0a,0x1d,0x1b,0x14,0x0d,0x06,0x07, +0x96,0x06,0x0d,0x96,0x00,0x15,0x96,0x14,0x1b,0x96,0x0e,0x04,0x00,0x3f,0xed,0xd6,0xed,0xd6,0xed,0xd6,0xed,0x01,0x2f,0x33,0x33,0x33,0x12,0x39,0x2f,0x33,0xe9,0x32,0x31,0x30,0x13,0x16,0x16,0x15,0x14,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x26,0x27,0x11,0x16,0x16,0x15,0x14,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x26,0x27,0x5a,0x68, +0x90,0x90,0x68,0x36,0x3a,0x3a,0x36,0x68,0x90,0x90,0x68,0x36,0x3a,0x3a,0x36,0x03,0x70,0x02,0x91,0x65,0x65,0x91,0x02,0x82,0x05,0x3b,0x36,0x36,0x3b,0x05,0x02,0xc4,0x02,0x91,0x65,0x65,0x91,0x02,0x82,0x05,0x3b,0x36,0x36,0x3b,0x05,0x00,0x00,0x01,0x00,0x5b,0x02,0xac,0x01,0xde,0x05,0xb2,0x00,0x0d,0x00,0x1e,0x40,0x0e,0x00,0x07, +0x07,0x0f,0x03,0x7e,0x0a,0x06,0x91,0x07,0x00,0x91,0x0d,0x04,0x00,0x3f,0xed,0xd6,0xed,0x01,0x2f,0xe9,0x12,0x39,0x11,0x33,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x01,0xde,0x60,0x7b,0x7b,0x60,0xa7,0xdc,0xdc,0xa7,0x05,0x1a,0x06,0x85,0x60,0x60,0x85,0x06,0x98,0xdc,0xa7,0xa7,0xdc,0x00, +0x00,0x01,0x00,0x4e,0x03,0x90,0x01,0x5e,0x05,0xb2,0x00,0x0d,0x00,0x1e,0x40,0x0e,0x00,0x07,0x07,0x0f,0x03,0xed,0x0a,0x06,0x96,0x07,0x00,0x96,0x0d,0x04,0x00,0x3f,0xed,0xd6,0xed,0x01,0x2f,0xe9,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x15,0x26,0x26,0x35,0x34,0x36,0x37,0x01,0x5e,0x3f,0x49,0x49,0x3f, +0x77,0x99,0x95,0x7b,0x05,0x30,0x05,0x4b,0x3f,0x3f,0x4b,0x05,0x82,0x02,0x98,0x77,0x75,0x98,0x04,0x00,0x00,0x01,0x00,0xbc,0xfe,0x5a,0x04,0xf2,0x05,0x9a,0x00,0x15,0x00,0x3b,0x40,0x1f,0x13,0x00,0x7e,0x0b,0x06,0x0b,0x06,0x0b,0x17,0x12,0x0e,0x7e,0x0f,0x0d,0x91,0x40,0x12,0x10,0x0f,0x12,0x91,0x2b,0x30,0x14,0x10,0x03,0x08,0x91, +0x03,0x0f,0x12,0x00,0x3f,0xd4,0xed,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x33,0x31,0x30,0x25,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x04,0xf2,0xb5,0xb7,0x4c,0x3d,0x4f,0x3e,0x5f,0x61,0xfd,0x1a,0xa8, +0xa8,0x02,0xe6,0xa8,0x3f,0xf8,0xed,0x1f,0xa5,0x2c,0x86,0x89,0x02,0x8d,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0x00,0x01,0x00,0xa6,0xfe,0x5a,0x03,0xf8,0x05,0xec,0x00,0x1a,0x00,0x2f,0x40,0x18,0x00,0x84,0x0a,0x06,0x0a,0x06,0x0a,0x1c,0x15,0x11,0x84,0x12,0x15,0x0d,0x95,0x18,0x0f,0x13,0x00,0x08,0xec,0x03,0x12,0x15,0x00,0x3f, +0xd4,0xed,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x21,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xb7,0xaf,0x4d,0x3d,0x4f,0x3f,0xbe,0xee,0x77,0xa5,0xa4,0xa4,0x04,0x77,0xd9,0x01, +0x5a,0xd4,0xd2,0x1f,0xa5,0x2c,0x01,0x0e,0x02,0x4e,0x01,0x40,0xb8,0x92,0xfd,0xbc,0x05,0xec,0xfd,0x6a,0xc2,0xfe,0x5f,0x00,0x00,0x01,0x00,0x29,0xfe,0x21,0x05,0x83,0x05,0x9a,0x00,0x21,0x00,0x5c,0x40,0x31,0x1f,0x17,0x7e,0x13,0x0a,0x18,0x03,0x7d,0x10,0x15,0x21,0x1a,0x18,0x1d,0x10,0x21,0x21,0x10,0x1d,0x18,0x1a,0x05,0x22,0x23, +0x00,0x14,0x21,0x15,0x91,0x1f,0x12,0x92,0x00,0x00,0x06,0x1f,0x1f,0x18,0x1e,0x1a,0x91,0x1b,0x03,0x0a,0x0d,0x92,0x06,0x18,0x12,0x00,0x3f,0xd4,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x12,0x39,0x2f,0xed,0x10,0xed,0x32,0x01,0x2f,0x33,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xe9,0x10,0xc6,0xc4,0xe9,0x32, +0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x04,0x23,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x21,0x15,0x03,0xea,0xbf,0xda,0xfe,0xdf,0xea,0x76,0xaa,0x56,0x63,0xb7,0x63,0x96,0xbc,0xfe,0xa1,0x8c,0x01,0x8a,0xfd,0xfe,0xa8,0xfe,0x63,0x03,0xe3,0xfe, +0x62,0x03,0x02,0x01,0x73,0x04,0xd8,0xb6,0xce,0xf2,0x26,0x2e,0xb6,0x44,0x37,0xa0,0x87,0x01,0x1e,0x07,0x02,0x3f,0xfc,0xc5,0x05,0x02,0x98,0x98,0xfe,0xd1,0x28,0x00,0x00,0x01,0x00,0x2b,0xfe,0x21,0x04,0xe4,0x05,0x2f,0x00,0x29,0x00,0x57,0x40,0x2e,0x00,0x12,0x03,0x83,0x0e,0x14,0x29,0x12,0x0e,0x29,0x29,0x0e,0x12,0x03,0x2b,0x27, +0x15,0x84,0x24,0x22,0x09,0x20,0x29,0x15,0x21,0x95,0x23,0x11,0x96,0x00,0x00,0x06,0x27,0x26,0x23,0x0f,0x1b,0x19,0x95,0x1e,0x15,0x09,0x0b,0x95,0x06,0x1b,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x33,0x33,0x12,0x39,0x2f,0xed,0x10,0xed,0x32,0x32,0x01,0x2f,0xc4,0x33,0x33,0xe9,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10, +0xe9,0x11,0x33,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x03,0x20,0xd2,0xf2,0xfe,0xb5,0xf0,0xb6,0x9a,0xa6,0xb0,0xab,0xe2,0xdb,0xd1,0x52,0x01, +0x80,0xfd,0xc1,0x46,0x51,0x3f,0x2c,0x3b,0x5e,0xfe,0xf3,0xb0,0xb0,0xa4,0x03,0x2a,0x01,0xae,0x1c,0xe9,0xb3,0xce,0xfe,0xf9,0x51,0xa2,0x68,0xb2,0x94,0x9b,0xa0,0x33,0x02,0x14,0xfd,0xbf,0x67,0x58,0x22,0x8c,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xfa,0x35,0xfe,0xd1,0x33,0x00,0x00,0x01,0x00,0x66,0xff,0xe9,0x04,0x0b,0x05,0xb2,0x00,0x24, +0x00,0x4b,0x40,0x17,0x24,0x1a,0x18,0x01,0x20,0x0e,0x1a,0x01,0x0e,0x0e,0x01,0x1a,0x03,0x26,0x09,0x7d,0x15,0x20,0x23,0x91,0x1c,0x00,0x05,0xb8,0x01,0x05,0x40,0x0e,0x19,0x1a,0x24,0x1b,0x19,0x04,0x12,0x1c,0x04,0x0e,0x0c,0x91,0x12,0x13,0x00,0x3f,0xed,0x32,0x3f,0x12,0x17,0x39,0x10,0xed,0x33,0x10,0xed,0x32,0x01,0x2f,0xe9,0x12, +0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x15,0x26,0x26,0x27,0x27,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x06,0x23,0x20,0x24,0x35,0x34,0x24,0x37,0x35,0x01,0x35,0x01,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x07,0x03,0x3c,0x0c,0x25,0x13,0x26,0x1f,0xd2,0xca,0xd4,0xac,0xb9,0xbb,0x5c, +0xb3,0x65,0xfe,0xfd,0xfe,0xd2,0x01,0x17,0xf4,0xfe,0x49,0x01,0xb7,0x93,0x9c,0x4f,0x53,0xbf,0x58,0xf8,0x03,0x40,0x8c,0x03,0x03,0x01,0x02,0x99,0x9b,0x7e,0x8c,0x5c,0xa6,0x29,0x23,0xdc,0xc3,0xc6,0xd8,0x02,0x04,0x01,0x23,0x2e,0x01,0x35,0x24,0x22,0xaa,0x30,0x28,0xab,0x00,0x01,0x00,0x26,0xfe,0x1d,0x03,0xc5,0x04,0x00,0x00,0x25, +0x00,0x4a,0x40,0x26,0x25,0x1b,0x19,0x00,0x1b,0x00,0x1b,0x00,0x16,0x21,0x10,0x10,0x27,0x09,0x84,0x16,0x21,0x24,0x95,0x1d,0x06,0x96,0x00,0x1c,0x25,0x1b,0x03,0x1d,0x19,0x19,0x13,0x1d,0x10,0x0f,0x0c,0x95,0x13,0x1c,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x12,0x17,0x39,0x33,0xed,0x10,0xed,0x32,0x01,0x2f,0xe9,0x12,0x39,0x2f, +0xc4,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x15,0x26,0x26,0x27,0x27,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x24,0x35,0x34,0x24,0x37,0x35,0x01,0x35,0x01,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x07,0x02,0xf6,0x0c,0x25,0x13,0x26,0x1f,0xc3,0xde,0xe3,0xa2,0x5e,0xb8,0x5e, +0x67,0xaa,0x63,0xf9,0xfe,0xce,0x01,0x1e,0xee,0xfe,0x56,0x01,0x8f,0x9a,0xaa,0x4e,0x53,0xbf,0x58,0xf0,0x01,0x8e,0x8c,0x03,0x03,0x01,0x02,0xa9,0x97,0x83,0xa0,0x34,0x2e,0x9c,0x2d,0x24,0xe3,0xca,0xc5,0xe3,0x02,0x05,0x01,0x23,0x2e,0x01,0x36,0x24,0x22,0x9b,0x30,0x28,0xbe,0x00,0x00,0x02,0x00,0x51,0xff,0xe6,0x03,0x95,0x05,0x9a, +0x00,0x12,0x00,0x1e,0x00,0x35,0x40,0x1a,0x13,0x12,0x01,0x7e,0x0f,0x08,0x0f,0x08,0x0f,0x20,0x1e,0x10,0x11,0x10,0x91,0x17,0x12,0x1e,0x1e,0x04,0x12,0x03,0x0b,0x91,0x04,0x12,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x01,0x2f,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x33,0x33,0x31,0x30,0x01,0x11,0x14,0x06,0x23, +0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x21,0x35,0x01,0x13,0x11,0x34,0x36,0x37,0x23,0x06,0x07,0x07,0x06,0x07,0x01,0x03,0x95,0xa4,0xbc,0x23,0x65,0x21,0x1f,0x61,0x29,0x60,0x58,0xfd,0x64,0x02,0x95,0x07,0x07,0x03,0x04,0x07,0x09,0x11,0x09,0x08,0xfe,0x47,0x05,0x9a,0xfb,0xdc,0xde,0xb2,0x0f,0x10,0xa5,0x11,0x1b, +0x58,0x80,0x0f,0x81,0x03,0xb4,0xfc,0x61,0x02,0x4d,0x18,0x54,0x1a,0x0f,0x10,0x1d,0x0f,0x0c,0xfd,0x84,0x00,0x02,0x00,0x21,0xfe,0x1e,0x03,0x50,0x04,0x00,0x00,0x12,0x00,0x1d,0x00,0x30,0x40,0x18,0x13,0x11,0x00,0x84,0x0e,0x07,0x0e,0x07,0x0e,0x1f,0x1d,0x10,0x17,0x11,0x0f,0x10,0x1d,0x96,0x0f,0x15,0x0a,0x95,0x03,0x1c,0x00,0x3f, +0xed,0x3f,0xed,0x32,0x3f,0x33,0x01,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x33,0x33,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x21,0x35,0x01,0x33,0x03,0x11,0x34,0x36,0x37,0x23,0x06,0x06,0x07,0x07,0x01,0x03,0x50,0xae,0xa5,0x29,0x57,0x29,0x2b,0x51,0x2a,0x5a,0x58,0xfd,0x75, +0x02,0x85,0xaa,0xa4,0x02,0x05,0x03,0x03,0x0a,0x06,0x14,0xfe,0x46,0x3f,0xca,0xd9,0x0c,0x14,0x99,0x1b,0x12,0x7e,0x9b,0x3d,0x6f,0x03,0x91,0xfc,0x84,0x02,0x54,0x1e,0x32,0x15,0x07,0x14,0x0a,0x22,0xfd,0x8e,0x00,0x03,0x00,0x51,0xff,0xe6,0x04,0xa1,0x05,0x9a,0x00,0x16,0x00,0x22,0x00,0x26,0x00,0x54,0x40,0x2c,0x26,0x23,0x24,0x25, +0x01,0x04,0x7e,0x13,0x17,0x16,0x13,0x23,0x03,0x25,0x13,0x0c,0x0c,0x13,0x25,0x03,0x23,0x05,0x28,0x22,0x14,0x25,0x12,0x26,0x04,0x14,0x91,0x15,0x01,0x1b,0x16,0x22,0x22,0x08,0x16,0x03,0x0f,0x91,0x08,0x13,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0x33,0x33,0xfd,0x32,0xcc,0x3f,0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f, +0x2f,0x2f,0x11,0x33,0x33,0x10,0xe9,0x32,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x11,0x33,0x15,0x23,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x21,0x35,0x01,0x13,0x11,0x34,0x36,0x37,0x23,0x06,0x07,0x07,0x06,0x07,0x01,0x05,0x03,0x23,0x13,0x03,0x95,0xf1,0xf1,0xa6,0xba,0x23,0x65,0x21,0x1f,0x61, +0x29,0x60,0x58,0xfd,0x64,0x02,0x95,0x07,0x07,0x03,0x04,0x07,0x09,0x11,0x09,0x08,0xfe,0x47,0x03,0x99,0xa6,0x7b,0x75,0x05,0x9a,0xfc,0x61,0x96,0x0e,0xc7,0xaa,0x0f,0x10,0xa5,0x11,0x1b,0x58,0x80,0x0f,0x81,0x03,0xb4,0xfc,0x61,0x02,0x4d,0x18,0x54,0x1a,0x0f,0x10,0x1d,0x0f,0x0c,0xfd,0x84,0xf8,0xfe,0xfc,0x01,0x04,0x00,0x00,0x03, +0x00,0x21,0xfe,0x1e,0x04,0x72,0x04,0x00,0x00,0x16,0x00,0x21,0x00,0x25,0x00,0x4b,0x40,0x26,0x23,0x24,0x25,0x22,0x07,0x24,0x14,0x22,0x22,0x14,0x24,0x07,0x04,0x27,0x21,0x10,0x13,0x16,0x84,0x17,0x11,0x0e,0x1b,0x11,0x0f,0x24,0x24,0x03,0x13,0x10,0x21,0x25,0x16,0x0f,0x15,0x0a,0x03,0x1c,0x00,0x3f,0xcd,0x3f,0x33,0xcc,0xcd,0x32, +0x32,0x12,0x39,0x2f,0x3f,0x33,0x01,0x2f,0x33,0x33,0xe9,0x32,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x21,0x35,0x01,0x33,0x11,0x21,0x15,0x21,0x27,0x11,0x34,0x36,0x37,0x23,0x06,0x06,0x07,0x07,0x01,0x05,0x03,0x23, +0x13,0x03,0x50,0xae,0xa5,0x29,0x57,0x29,0x2b,0x51,0x2a,0x5a,0x58,0xfd,0x75,0x02,0x85,0xaa,0x01,0x05,0xfe,0xfb,0xa4,0x02,0x05,0x03,0x03,0x0a,0x06,0x14,0xfe,0x46,0x03,0xa3,0xa6,0x7b,0x75,0x3f,0xca,0xd9,0x0c,0x14,0x99,0x1b,0x12,0x7e,0x9b,0x3d,0x6f,0x03,0x91,0xfc,0x84,0x84,0x84,0x02,0x54,0x1e,0x32,0x15,0x07,0x14,0x0a,0x22, +0xfd,0x8e,0xdc,0xfe,0xfc,0x01,0x04,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0x0b,0x04,0x33,0x00,0x09,0x00,0x26,0x40,0x12,0x03,0x00,0x00,0x0b,0x02,0x05,0x84,0x07,0x05,0x95,0x02,0x02,0x07,0x01,0x95,0x08,0x07,0x15,0x00,0x3f,0xdd,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xe9,0x32,0x12,0x39,0x2f,0xc6,0x31,0x30,0x01,0x21,0x11,0x21, +0x15,0x21,0x11,0x23,0x11,0x21,0x03,0x0b,0xfe,0x49,0x01,0x95,0xfe,0x6b,0xa4,0x02,0x5b,0x03,0xa8,0xfe,0xb1,0x8a,0xfe,0x31,0x04,0x33,0x00,0x01,0x00,0x68,0xff,0xed,0x03,0x08,0x04,0x45,0x00,0x21,0x00,0x34,0x40,0x1b,0x1b,0x84,0x06,0x11,0x06,0x11,0x21,0x23,0x16,0x84,0x0b,0x21,0x11,0x13,0x95,0x16,0x0b,0x1b,0x06,0x04,0x0e,0x1e, +0x00,0x03,0x95,0x1e,0x16,0x00,0x3f,0xfd,0xc6,0x10,0xd4,0x17,0x39,0xfd,0xc6,0x01,0x2f,0xd4,0xe9,0x11,0x12,0x39,0x39,0x2f,0x2f,0xe9,0x31,0x30,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x24,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x6b,0x33, +0xa3,0x4a,0x73,0x68,0x71,0xfe,0xef,0x7c,0xd7,0xa8,0xa0,0x4a,0x5f,0x93,0x61,0x75,0x77,0x01,0x01,0x87,0xd7,0xb9,0x43,0xa8,0x22,0xd7,0x29,0x38,0x54,0x44,0x46,0x57,0x87,0x91,0x69,0x7e,0x9b,0x26,0xa5,0x42,0x4e,0x3e,0x4d,0x59,0x7b,0x8d,0x67,0x88,0xa6,0x28,0x16,0x00,0x00,0x03,0x00,0x16,0x00,0x00,0x08,0xf1,0x05,0x9a,0x00,0x17, +0x00,0x21,0x00,0x2b,0x00,0x3f,0x40,0x1f,0x17,0x0c,0x1c,0x03,0x05,0x26,0x13,0x00,0x00,0x05,0x13,0x13,0x2d,0x05,0x26,0x1c,0x16,0x03,0x91,0x2b,0x21,0x21,0x04,0x1c,0x11,0x06,0x03,0x14,0x01,0x04,0x12,0x00,0x3f,0x33,0x33,0x3f,0x33,0xcd,0x12,0x39,0x2f,0x33,0xed,0x32,0x11,0x33,0x01,0x2f,0x11,0x33,0x2f,0x12,0x39,0x2f,0x12,0x39, +0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x33,0x01,0x17,0x16,0x16,0x17,0x33,0x34,0x36,0x37,0x01,0x33,0x01,0x23,0x03,0x21,0x03,0x01,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x21,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x05,0x12,0xba,0x98,0xfd,0xa0,0x8f,0xbb,0x02,0x26,0xae,0x01,0x6f,0x16,0x06, +0x0b,0x02,0x04,0x15,0x09,0x01,0x77,0xae,0x02,0x28,0xba,0x98,0xfd,0xa0,0x60,0xfe,0xaa,0xe1,0x06,0x0e,0x02,0x04,0x02,0x0d,0x08,0xdf,0x05,0xd0,0xe1,0x06,0x0e,0x02,0x04,0x02,0x0d,0x08,0xdf,0x01,0x92,0xfe,0x6e,0x05,0x9a,0xfc,0x47,0x3b,0x12,0x23,0x0d,0x0d,0x40,0x16,0x03,0xd3,0xfa,0x66,0x01,0x92,0xfe,0xf2,0x01,0xa5,0x02,0x63, +0x10,0x3a,0x16,0x14,0x36,0x15,0xfd,0x9c,0x02,0x63,0x10,0x3a,0x16,0x14,0x36,0x15,0xfd,0x9c,0x00,0x03,0x00,0x5a,0xff,0xe8,0x05,0xfc,0x04,0x18,0x00,0x2d,0x00,0x38,0x00,0x43,0x00,0x5d,0x40,0x30,0x09,0x09,0x00,0x32,0xef,0x39,0x23,0x19,0x39,0x2e,0x11,0x84,0x12,0x04,0x12,0x39,0x12,0x39,0x12,0x45,0x3d,0x83,0x27,0x20,0x09,0x27, +0x27,0x06,0x25,0x95,0x2a,0x2e,0x39,0x96,0x04,0x23,0x23,0x0d,0x2a,0x0f,0x35,0x40,0x95,0x16,0x1d,0x16,0x12,0x15,0x00,0x3f,0x3f,0x33,0xed,0x32,0x3f,0x33,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x32,0x11,0x33,0x01,0x2f,0xc4,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xe9,0x33,0x11,0x33,0x33,0x10,0xf9,0x32,0xc0,0x2f,0x31, +0x30,0x01,0x36,0x36,0x37,0x25,0x10,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x05,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x25,0x07,0x06,0x06,0x15,0x14, +0x16,0x33,0x32,0x36,0x35,0x03,0x7b,0x1f,0x5b,0x30,0x01,0x33,0xcd,0x3f,0x8f,0x1f,0x3d,0x87,0x52,0x9f,0xa9,0xa4,0x04,0x6a,0xd1,0x78,0x91,0x26,0x04,0x32,0xa9,0x6b,0x94,0xb2,0x01,0x52,0x01,0x33,0xd3,0xba,0x94,0x97,0xc5,0xb9,0xa8,0x01,0xdd,0xf7,0x82,0x64,0x73,0x51,0x78,0xa1,0xfd,0x87,0xf7,0x82,0x64,0x6d,0x57,0x7a,0x9f,0x02, +0x2d,0x12,0x18,0x07,0x2b,0x01,0x05,0x49,0x35,0x9e,0x39,0x31,0xbe,0xc0,0xfd,0x66,0xa0,0xb8,0x5b,0x61,0x5a,0x62,0xa1,0x87,0x01,0x1f,0x2f,0x2b,0x01,0x05,0x7e,0xa8,0x60,0xc3,0xbb,0x94,0x22,0x12,0x5f,0x57,0x4d,0x5d,0xae,0x80,0x66,0x22,0x12,0x5f,0x57,0x50,0x5a,0xae,0x80,0x00,0x00,0x03,0x00,0x16,0xff,0xe8,0x08,0xdb,0x05,0xb2, +0x00,0x15,0x00,0x21,0x00,0x2b,0x00,0x3b,0x40,0x1f,0x0d,0x7d,0x26,0x06,0x1b,0x1b,0x00,0x2d,0x21,0x7f,0x07,0x00,0x14,0x91,0x06,0x2b,0x2b,0x01,0x15,0x12,0x18,0x91,0x10,0x13,0x1e,0x91,0x0a,0x04,0x26,0x01,0x03,0x00,0x3f,0xcd,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0x2f,0xe9,0x11,0x12,0x39,0x2f,0x39,0x39, +0xe9,0x31,0x30,0x33,0x01,0x33,0x13,0x16,0x17,0x17,0x33,0x36,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x24,0x27,0x21,0x03,0x00,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x11,0x07,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x16,0x02,0x26,0xae,0x9f,0x0b,0x08,0x0c,0x04,0x21,0x01,0x60,0x01,0x1a,0x01,0x28,0x01, +0x6c,0xfe,0x8c,0xfe,0xc8,0xeb,0xfe,0xbd,0x42,0xfd,0xa1,0x8f,0x03,0x6e,0x01,0x12,0xde,0xec,0x01,0x10,0xfe,0xf8,0xe8,0xe2,0xfe,0xe6,0xb6,0xe1,0x05,0x0c,0x05,0x04,0x05,0x0b,0x07,0xdf,0x05,0x9a,0xfe,0x62,0x1d,0x19,0x2c,0xdf,0x01,0x39,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0xed,0xbd,0xfe,0x6e,0x01,0xc1,0xfe,0xbe,0x01,0x34, +0x01,0x15,0x01,0x1c,0x01,0x36,0xfe,0xb9,0xfe,0xf8,0xa2,0x02,0x63,0x0f,0x30,0x21,0x1f,0x30,0x11,0xfd,0x9d,0x00,0x00,0x03,0x00,0x5a,0xff,0xe8,0x06,0xb6,0x04,0x18,0x00,0x20,0x00,0x2c,0x00,0x37,0x00,0x52,0x40,0x2c,0x00,0x14,0x2c,0x84,0x30,0x0a,0x30,0x1b,0x83,0x26,0x30,0x26,0x30,0x26,0x39,0x34,0x83,0x0e,0x07,0x23,0x95,0x1e, +0x16,0x29,0x95,0x18,0x10,0x0e,0x0c,0x95,0x11,0x30,0x96,0x14,0x11,0x00,0x0a,0x0a,0x11,0x10,0x37,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x39,0x2f,0x39,0x12,0x39,0xed,0x10,0xed,0x32,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xc4,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x11,0x33,0x10,0xe9,0x39,0x39,0x31,0x30,0x25,0x23,0x06,0x06,0x23,0x22, +0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x12,0x15,0x14,0x00,0x23,0x22,0x26,0x36,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x00,0x36,0x35,0x35,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x03,0x27,0x02,0x45,0xc8,0x78,0x92,0xb4,0x01,0x52,0x01,0x33,0xd3,0xba, +0x94,0x97,0xc5,0x8d,0x98,0x18,0x04,0x44,0xd3,0x6a,0xe0,0xfa,0xfe,0xf2,0xe4,0x83,0xe0,0x22,0xb4,0x99,0x9c,0xa2,0xa2,0x9c,0x9c,0xb1,0xfe,0xc2,0x9a,0xf7,0x8f,0x57,0x6e,0x56,0xcd,0x73,0x72,0xa2,0x86,0x01,0x1f,0x2f,0x2b,0x01,0x05,0x7e,0xa8,0x60,0x64,0x4b,0x61,0x4e,0xfe,0xe4,0xf8,0xf3,0xfe,0xd7,0x75,0xed,0xd8,0xcf,0xbd,0xbe, +0xd2,0xe1,0xa1,0xfe,0x66,0xa9,0x8f,0x5c,0x22,0x15,0x5e,0x55,0x4b,0x5f,0x00,0x02,0x00,0x16,0xff,0xe8,0x07,0x3a,0x05,0x9a,0x00,0x13,0x00,0x1d,0x00,0x30,0x40,0x18,0x02,0x7e,0x18,0x08,0x0c,0x01,0x01,0x1f,0x0c,0x0a,0x91,0x1d,0x1d,0x0b,0x18,0x01,0x0d,0x03,0x0b,0x12,0x12,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0x3f,0x33,0xcd,0x12, +0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0xe9,0x31,0x30,0x01,0x11,0x33,0x11,0x10,0x21,0x22,0x26,0x27,0x03,0x21,0x03,0x23,0x01,0x33,0x01,0x16,0x16,0x33,0x20,0x01,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x06,0x92,0xa8,0xfd,0xdf,0x34,0x59,0x34,0x98,0xfd,0xa0,0x8f,0xbb,0x02,0x26,0xae,0x01,0xf5,0x12,0x29, +0x11,0x01,0x67,0xfc,0xf7,0xe1,0x05,0x0c,0x05,0x04,0x05,0x0b,0x07,0xdf,0x02,0x29,0x03,0x71,0xfc,0xaa,0xfd,0xa4,0x0a,0x0e,0x01,0x92,0xfe,0x6e,0x05,0x9a,0xfa,0xea,0x03,0x02,0x01,0xaa,0x02,0x63,0x0f,0x30,0x21,0x1f,0x30,0x11,0xfd,0x9d,0x00,0x02,0x00,0x5a,0xff,0xe8,0x06,0x1e,0x04,0x18,0x00,0x26,0x00,0x31,0x00,0x50,0x40,0x2b, +0x1d,0x84,0x2a,0x12,0x08,0x2a,0x02,0x00,0x84,0x24,0x2a,0x24,0x2a,0x24,0x33,0x2e,0x83,0x18,0x0f,0x25,0x0f,0x18,0x16,0x95,0x1b,0x2a,0x96,0x12,0x12,0x1b,0x0f,0x08,0x31,0x95,0x0c,0x16,0x02,0x21,0x95,0x05,0x16,0x01,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x39,0x2f,0xed,0x10,0xed,0x32,0x3f,0x01,0x2f,0xc4,0xe1,0x12, +0x39,0x39,0x2f,0x2f,0x10,0xe9,0x33,0x11,0x33,0x33,0x10,0xe9,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x00,0x36,0x35,0x35,0x07,0x06,0x06,0x15,0x14,0x16,0x33, +0x06,0x1e,0x9f,0x04,0x63,0xd0,0x75,0x98,0x2f,0x03,0x3f,0xc0,0x6a,0x99,0xad,0x01,0x52,0x01,0x33,0x6b,0x68,0xba,0x94,0x97,0xc5,0x01,0x69,0x7b,0x74,0x74,0x94,0xa4,0xfc,0x27,0x9a,0xf7,0x8f,0x57,0x6e,0x56,0xa2,0xba,0x57,0x65,0x5d,0x5f,0xa1,0x87,0x01,0x1f,0x2f,0x2b,0x11,0x75,0x7f,0x7e,0xa8,0x60,0xfe,0x82,0xf4,0x92,0xa2,0xb2, +0x8e,0x02,0x4e,0xfc,0x72,0xa9,0x8f,0x5c,0x22,0x15,0x5e,0x55,0x4b,0x5f,0x00,0x02,0x00,0x16,0x00,0x00,0x07,0x24,0x05,0x9a,0x00,0x10,0x00,0x1a,0x00,0x32,0x40,0x18,0x15,0x05,0x00,0x0a,0x0b,0x0b,0x1c,0x0c,0x06,0x00,0x0f,0x91,0x1a,0x1a,0x01,0x10,0x05,0x0d,0x12,0x0a,0x03,0x15,0x01,0x03,0x00,0x3f,0xcd,0x3f,0x3f,0x33,0x33,0x12, +0x39,0x2f,0xed,0x01,0x2f,0x2f,0x33,0x11,0x33,0x2f,0x33,0x12,0x39,0x39,0x31,0x30,0x33,0x01,0x33,0x01,0x16,0x17,0x33,0x34,0x36,0x37,0x01,0x33,0x01,0x23,0x03,0x21,0x03,0x01,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x16,0x02,0x26,0xae,0x01,0xb5,0x14,0x0b,0x04,0x10,0x08,0x01,0x95,0xb5,0xfd,0xed,0xb9,0x98,0xfd,0xa0,0x8f, +0x02,0xb8,0xe1,0x05,0x0c,0x05,0x04,0x05,0x0b,0x07,0xdf,0x05,0x9a,0xfb,0x8f,0x36,0x49,0x18,0x51,0x16,0x04,0x71,0xfa,0x66,0x01,0x92,0xfe,0x6e,0x02,0x29,0x02,0x63,0x0f,0x30,0x21,0x1f,0x30,0x11,0xfd,0x9d,0x00,0x02,0x00,0x5a,0xff,0xe8,0x05,0x3a,0x04,0x18,0x00,0x1b,0x00,0x26,0x00,0x45,0x40,0x24,0x0c,0x04,0x84,0x17,0x0e,0x1f, +0x1f,0x14,0x0a,0x0b,0x0b,0x28,0x23,0x83,0x1b,0x14,0x1f,0x96,0x05,0x17,0x17,0x02,0x0e,0x26,0x95,0x11,0x16,0x0c,0x15,0x0a,0x0f,0x1b,0x19,0x95,0x02,0x10,0x00,0x3f,0xed,0x32,0x3f,0x3f,0x3f,0xed,0x32,0x11,0x39,0x2f,0x39,0xed,0x01,0x2f,0xc4,0xe9,0x11,0x33,0x2f,0x33,0x12,0x39,0x2f,0x33,0x33,0xe9,0x32,0x31,0x30,0x13,0x36,0x33, +0x20,0x11,0x11,0x33,0x36,0x36,0x37,0x13,0x33,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x00,0x36,0x35,0x35,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0xbe,0x97,0xc5,0x01,0x69,0x04,0x03,0x16,0x11,0xdc,0xad,0xfe,0x4a,0xa5,0x04,0x6a,0xd1,0x99,0xad,0x01,0x52,0x01,0x33,0xd3,0xba,0x94,0x01,0x87, +0x9a,0xf7,0x8f,0x57,0x6e,0x56,0x03,0xb8,0x60,0xfe,0x82,0xfe,0x87,0x24,0x51,0x2a,0x02,0x40,0xfc,0x00,0xa0,0xb8,0xa1,0x87,0x01,0x1f,0x2f,0x2b,0x01,0x05,0x7e,0xfd,0x62,0xa9,0x8f,0x5c,0x22,0x15,0x5e,0x55,0x4b,0x5f,0x00,0x03,0x00,0x16,0x00,0x00,0x07,0x24,0x05,0x9a,0x00,0x0f,0x00,0x19,0x00,0x22,0x00,0x3b,0x40,0x1c,0x00,0x1d, +0x10,0x1d,0x05,0x0d,0x0a,0x0b,0x0b,0x24,0x05,0x22,0x0f,0x03,0x91,0x0c,0x08,0x1c,0x14,0x14,0x04,0x10,0x0a,0x06,0x03,0x01,0x04,0x12,0x00,0x3f,0x33,0x3f,0x33,0xcd,0x12,0x39,0x2f,0x39,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x11,0x33,0x2f,0x33,0xc6,0x12,0x39,0x39,0x11,0x33,0x31,0x30,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x33,0x01, +0x21,0x13,0x33,0x03,0x33,0x15,0x21,0x01,0x06,0x06,0x07,0x03,0x21,0x03,0x26,0x26,0x27,0x01,0x16,0x17,0x33,0x34,0x36,0x37,0x13,0x21,0x05,0x11,0xb9,0xe5,0xfe,0x3a,0xdc,0xbb,0x02,0x26,0xae,0x01,0x02,0x01,0x94,0xef,0xb5,0xf9,0xcd,0xfe,0xfb,0xfc,0x9b,0x05,0x0b,0x07,0x93,0x01,0x57,0x93,0x05,0x0c,0x05,0x02,0x0d,0x14,0x0b,0x04, +0x10,0x08,0x70,0xfe,0xdc,0x02,0x64,0xfd,0x9c,0x05,0x9a,0xfd,0x61,0x02,0x9f,0xfd,0x61,0x97,0x02,0x88,0x1f,0x30,0x11,0xfe,0x6f,0x01,0x91,0x0f,0x30,0x21,0xfc,0x3d,0x36,0x49,0x18,0x51,0x16,0x01,0x3b,0x00,0x00,0x03,0x00,0x5a,0xff,0xe8,0x05,0x3a,0x04,0x18,0x00,0x1d,0x00,0x24,0x00,0x2f,0x00,0x4d,0x40,0x28,0x1a,0x17,0x18,0x18, +0x31,0x1d,0x15,0x1f,0x84,0x0a,0x01,0x2f,0x28,0x83,0x0f,0x07,0x17,0x0f,0x0f,0x0d,0x95,0x12,0x1f,0x1c,0x2f,0x96,0x19,0x15,0x20,0x0a,0x0a,0x12,0x10,0x01,0x2b,0x95,0x04,0x16,0x00,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x39,0x2f,0x39,0x33,0x33,0xed,0x32,0x32,0x10,0xed,0x32,0x3f,0x01,0x2f,0xc4,0xe9,0x2f,0x33,0x33,0xe9,0x32,0x32, +0x11,0x33,0x2f,0x33,0xc6,0x31,0x30,0x21,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x24,0x21,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x15,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x03,0x13,0x23,0x15,0x33,0x36,0x36,0x37,0x27,0x20,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x02,0xdf,0x04,0x6a,0xd1,0x99,0xad,0x01,0x29, +0x01,0x5c,0x69,0x6a,0xba,0x94,0x97,0xc5,0x01,0x69,0x7e,0x8c,0xad,0x9f,0x77,0xaf,0xdf,0x4b,0x4c,0x04,0x05,0x20,0x11,0xf3,0xfe,0xf6,0xbe,0x6e,0x56,0x7f,0x9a,0xa0,0xb8,0xa1,0x87,0xbe,0xbf,0x83,0x7e,0x7e,0xa8,0x60,0xfe,0x82,0x0d,0x01,0x73,0xfe,0x8d,0x83,0xfd,0xf6,0x02,0x0a,0xf1,0x2e,0x64,0x2e,0x31,0x76,0x78,0x4b,0x5f,0xa9, +0x8f,0x60,0x00,0x02,0x00,0x16,0xfe,0x1e,0x07,0x24,0x05,0x9a,0x00,0x1c,0x00,0x26,0x00,0x42,0x40,0x22,0x21,0x00,0x0c,0x05,0x19,0x03,0x0b,0x13,0x13,0x00,0x0a,0x0b,0x0b,0x28,0x00,0x1b,0x91,0x05,0x1c,0x26,0x26,0x01,0x19,0x1c,0x12,0x15,0x91,0x0f,0x1c,0x0a,0x03,0x21,0x01,0x03,0x00,0x3f,0xcd,0x3f,0x3f,0xed,0x3f,0x33,0x12,0x39, +0x2f,0x12,0x39,0xed,0x01,0x2f,0x11,0x33,0x2f,0x33,0x12,0x39,0x2f,0x12,0x17,0x39,0x12,0x39,0x31,0x30,0x33,0x01,0x33,0x01,0x16,0x17,0x33,0x34,0x36,0x37,0x01,0x33,0x01,0x06,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x37,0x37,0x03,0x21,0x03,0x01,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x16,0x02,0x26,0xae,0x01, +0xb5,0x14,0x0b,0x04,0x10,0x08,0x01,0x95,0xb5,0xfd,0xe5,0x5f,0xb6,0x8c,0x1e,0x30,0x1d,0x31,0x30,0x3a,0x60,0x22,0x48,0xa2,0xfd,0xa0,0x8f,0x02,0xb8,0xe1,0x05,0x0c,0x05,0x04,0x05,0x0b,0x07,0xdf,0x05,0x9a,0xfb,0x8f,0x36,0x49,0x18,0x51,0x16,0x04,0x71,0xfa,0x53,0xfd,0xd2,0x05,0x08,0x9d,0x12,0x56,0x50,0xa4,0x01,0x92,0xfe,0x6e, +0x02,0x29,0x02,0x63,0x0f,0x30,0x21,0x1f,0x30,0x11,0xfd,0x9d,0x00,0x02,0x00,0x5a,0xfe,0x1e,0x05,0x3a,0x04,0x18,0x00,0x25,0x00,0x30,0x00,0x56,0x40,0x2d,0x28,0x13,0x84,0x25,0x0a,0x1b,0x25,0x1a,0x20,0x25,0x20,0x25,0x07,0x19,0x1a,0x1a,0x32,0x2d,0x83,0x07,0x0e,0x0e,0x07,0x22,0x95,0x1d,0x1c,0x19,0x0f,0x0e,0x0c,0x95,0x11,0x29, +0x96,0x14,0x0a,0x0a,0x11,0x10,0x00,0x30,0x95,0x04,0x16,0x00,0x3f,0xed,0x32,0x3f,0x39,0x2f,0x39,0xed,0x10,0xed,0x32,0x3f,0x3f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xe9,0x11,0x33,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x32,0x10,0xe9,0x33,0x31,0x30,0x25,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22, +0x07,0x35,0x36,0x33,0x20,0x11,0x11,0x33,0x36,0x36,0x37,0x13,0x33,0x01,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x37,0x26,0x36,0x35,0x35,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x02,0xe4,0x04,0x36,0xa1,0x69,0x99,0xad,0x01,0x52,0x01,0x33,0xd3,0xba,0x94,0x97,0xc5,0x01,0x69,0x04,0x03,0x18,0x10,0xdb,0xad,0xfe,0x0a,0x7e,0xe4, +0x41,0x2a,0x34,0x2d,0x7f,0x3d,0x50,0x9f,0x9a,0xf7,0x8f,0x57,0x6e,0x56,0xa8,0x5d,0x63,0xa1,0x87,0x01,0x1f,0x2f,0x2b,0x01,0x05,0x7e,0xa8,0x60,0xfe,0x82,0xfe,0x8c,0x24,0x51,0x2a,0x02,0x3b,0xfb,0x5c,0xfe,0xc2,0x0d,0x93,0x12,0x94,0xc2,0x70,0xa9,0x8f,0x5c,0x22,0x15,0x5e,0x55,0x4b,0x5f,0x00,0x02,0x00,0x68,0xff,0xe8,0x04,0x96, +0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0x37,0x40,0x1c,0x1b,0xc0,0x21,0x10,0x7d,0x05,0x21,0x05,0x21,0x05,0x23,0x0a,0x15,0x1e,0xc1,0x18,0x18,0x0d,0x00,0x02,0x91,0x13,0x13,0x0a,0x08,0x91,0x0d,0x04,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x11,0x39,0x2f,0xed,0x01,0x2f,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x31,0x30,0x37, +0x16,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x27,0x00,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x68,0x9d,0xd9,0xea,0x01,0x1e,0xfe,0xcc,0xf6,0xb9,0x9b,0x87,0xcb,0x01,0x3e,0x01,0x9e,0xfe,0x8f,0xfe,0xcf,0xed,0x9f,0x01,0x27,0x3a,0x29,0x2a,0x38,0x38,0x2a, +0x29,0x3a,0xdf,0x60,0x01,0x38,0x01,0x05,0x01,0x14,0x01,0x4a,0x56,0xb3,0x3b,0xfe,0x58,0xfe,0xa8,0xfe,0xbf,0xfe,0x77,0x54,0x02,0xc2,0x37,0x36,0x2a,0x2a,0x39,0x3b,0x28,0x00,0x00,0x02,0x00,0x50,0xff,0xe8,0x03,0x52,0x04,0x18,0x00,0x15,0x00,0x21,0x00,0x37,0x40,0x1c,0x1b,0xc0,0x21,0x10,0x83,0x05,0x21,0x05,0x21,0x05,0x23,0x0a, +0x15,0x1e,0xc1,0x18,0x18,0x0d,0x00,0x02,0x95,0x13,0x16,0x0a,0x08,0x95,0x0d,0x10,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x11,0x39,0x2f,0xed,0x01,0x2f,0xc6,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x31,0x30,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x27,0x12, +0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x52,0x77,0x85,0x9e,0xbe,0xca,0x9c,0x81,0x73,0x69,0x85,0xf1,0x01,0x23,0xfe,0xf3,0xdb,0xa1,0x77,0xa1,0x3a,0x29,0x2a,0x38,0x38,0x2a,0x29,0x3a,0xcb,0x59,0xd0,0xb4,0xb6,0xe2,0x50,0xa8,0x32,0xfe,0xcd,0xfd,0xe4,0xfe,0xe4,0x47,0x01,0xfd,0x37,0x36,0x2a,0x2a,0x39,0x3b,0x28, +0x00,0x01,0x00,0x12,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x19,0x00,0x46,0x40,0x23,0x17,0x18,0x00,0x19,0x10,0x10,0x07,0x01,0x00,0x00,0x1b,0x12,0x0e,0x06,0x7e,0x0b,0x09,0x07,0x11,0x09,0x92,0x0e,0x04,0x19,0x12,0x03,0x0a,0x0a,0x07,0x17,0x0c,0x03,0x01,0x07,0x12,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x17,0x39,0x33,0xed,0x32, +0x01,0x2f,0xc6,0x33,0xe1,0x32,0x32,0x11,0x33,0x2f,0x33,0x12,0x39,0x2f,0x39,0x10,0xc6,0x32,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x04,0xa2,0xea,0xfd,0xd6,0x1e,0x08,0x04,0xa8,0xaa,0xaa,0xa8,0xe8,0xe8,0x04,0x07,0x13,0x0c, +0x02,0x18,0xd1,0xfd,0x99,0x02,0x90,0x24,0x0e,0xfd,0x3e,0x04,0x9c,0x85,0x79,0x79,0x85,0xfe,0x5c,0x0b,0x18,0x0e,0x02,0x71,0xfd,0x50,0x00,0x01,0x00,0x27,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x14,0x00,0x43,0x40,0x22,0x09,0x09,0x0d,0x0e,0x11,0x0e,0x10,0x10,0x16,0x0f,0x0b,0x07,0x14,0x84,0x04,0x02,0x00,0x0d,0x0f,0x0a,0x02,0x96, +0x07,0x12,0x0f,0x0b,0x03,0x03,0x03,0x05,0x00,0x11,0x00,0x15,0x00,0x3f,0x32,0x3f,0x39,0x2f,0x17,0x39,0x33,0xed,0x32,0x3f,0x01,0x2f,0xc6,0x33,0xe1,0x32,0x32,0x32,0x11,0x33,0x11,0x33,0x33,0x2f,0x33,0x39,0x2f,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x01,0x33,0x01,0x01,0x23,0x01,0x23,0x11, +0xa6,0x7f,0x7f,0xa4,0x01,0x54,0xfe,0xac,0x04,0x01,0xae,0xd7,0xfe,0x25,0x02,0x00,0xe6,0xfe,0x3c,0x04,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfd,0x79,0x01,0xd5,0xfe,0x12,0xfd,0xee,0x01,0xec,0xfe,0x14,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x19,0x00,0x41,0x40,0x21,0x0a,0x0c,0x13,0x0c,0x13,0x0c,0x08,0x09,0x09,0x10, +0x0f,0x0f,0x1b,0x03,0x19,0x7e,0x00,0x13,0x12,0x0d,0x0c,0x0c,0x03,0x0a,0x17,0x12,0x05,0x08,0x01,0x03,0x10,0x00,0x12,0x00,0x3f,0x32,0x3f,0x33,0x17,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0xe1,0x32,0x11,0x33,0x2f,0x33,0x33,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x12,0x39,0x31,0x30,0x33,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01, +0x17,0x01,0x15,0x07,0x01,0x23,0x01,0x07,0x35,0x37,0x27,0x26,0x27,0x23,0x11,0xbc,0xa8,0x04,0x07,0x13,0x0c,0x02,0x18,0xd1,0xfd,0x99,0xa5,0x01,0x08,0xa8,0x01,0x8d,0xea,0xfe,0xec,0xcc,0x6e,0xb8,0x1e,0x08,0x04,0x05,0x9a,0xfd,0x5e,0x0b,0x18,0x0e,0x02,0x71,0xfd,0x50,0xbc,0x01,0x21,0xd5,0xb8,0xfe,0x3e,0x01,0x46,0xe1,0xd7,0x79, +0xdb,0x24,0x0e,0xfd,0x3e,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x14,0x00,0x40,0x40,0x21,0x02,0x13,0x84,0x14,0x0e,0x08,0x0e,0x08,0x05,0x14,0x04,0x05,0x05,0x0c,0x0b,0x0f,0x0e,0x09,0x08,0x08,0x02,0x06,0x11,0x0e,0x05,0x04,0x0c,0x14,0x15,0x04,0x0f,0x00,0x00,0x00,0x3f,0x3f,0x3f,0x33,0x12,0x17,0x39,0x11, +0x33,0x11,0x33,0x01,0x2f,0x33,0x33,0x2f,0x33,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x32,0x31,0x30,0x13,0x33,0x11,0x33,0x01,0x33,0x01,0x17,0x37,0x15,0x07,0x01,0x23,0x27,0x07,0x35,0x37,0x27,0x23,0x11,0x23,0xa6,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0x67,0xe6,0x88,0x01,0x3b,0xe6,0xc4,0x99,0x3e,0xa5,0x04,0xa4,0x05,0xec,0xfc, +0x3f,0x01,0xd5,0xfe,0x12,0x6b,0xee,0xc2,0x8d,0xfe,0xba,0xd4,0x9e,0xc2,0x40,0xb4,0xfe,0x14,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x21,0x00,0x54,0x40,0x2b,0x12,0x14,0x1b,0x14,0x1b,0x14,0x10,0x11,0x11,0x18,0x17,0x17,0x23,0x0b,0x07,0x21,0x7e,0x04,0x02,0x00,0x0a,0x02,0x92,0x07,0x03,0x15,0x14,0x1b,0x1a,0x1a, +0x1f,0x12,0x0b,0x14,0x05,0x03,0x03,0x10,0x05,0x03,0x18,0x00,0x12,0x00,0x3f,0x32,0x3f,0x33,0x39,0x2f,0x17,0x39,0x11,0x33,0x11,0x33,0x11,0x33,0xed,0x32,0x01,0x2f,0xc6,0x33,0xe1,0x32,0x32,0x11,0x33,0x2f,0x33,0x33,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x12,0x39,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11, +0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x17,0x01,0x15,0x07,0x01,0x23,0x01,0x07,0x35,0x37,0x27,0x26,0x27,0x23,0x11,0xbc,0xaa,0xaa,0xa8,0xe8,0xe8,0x04,0x07,0x13,0x0c,0x02,0x18,0xd1,0xfd,0x99,0xa5,0x01,0x08,0xa8,0x01,0x8d,0xea,0xfe,0xec,0xcc,0x6e,0xb8,0x1e,0x08,0x04,0x04,0x9c,0x85,0x79,0x79,0x85,0xfe,0x5c,0x0b,0x18,0x0e,0x02, +0x71,0xfd,0x50,0xbc,0x01,0x21,0xd5,0xb8,0xfe,0x3e,0x01,0x46,0xe1,0xd7,0x79,0xdb,0x24,0x0e,0xfd,0x3e,0x00,0x01,0x00,0x27,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x1c,0x00,0x59,0x40,0x2e,0x0d,0x0f,0x16,0x0f,0x16,0x0f,0x0b,0x0c,0x0c,0x13,0x12,0x12,0x1e,0x09,0x05,0x1a,0x84,0x02,0x00,0x1b,0x10,0x0f,0x16,0x15,0x15,0x18,0x0d,0x09, +0x0f,0x05,0x0b,0x1b,0x08,0x00,0x96,0x05,0x01,0x01,0x03,0x13,0x1b,0x15,0x0b,0x0f,0x03,0x00,0x00,0x3f,0x3f,0x3f,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x11,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0xc6,0x33,0xe1,0x32,0x32,0x11,0x33,0x2f,0x33,0x33,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x12,0x39,0x31,0x30,0x13,0x35,0x33,0x35,0x33, +0x15,0x21,0x15,0x21,0x11,0x33,0x01,0x33,0x01,0x17,0x37,0x15,0x07,0x01,0x23,0x27,0x07,0x35,0x37,0x27,0x23,0x11,0x23,0x11,0x27,0x7f,0xa4,0x01,0x54,0xfe,0xac,0x04,0x01,0xae,0xd7,0xfe,0x25,0x67,0xe6,0x88,0x01,0x3b,0xe6,0xc4,0x99,0x3e,0xa5,0x04,0xa4,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfd,0x79,0x01,0xd5,0xfe,0x12,0x6b,0xee,0xc2, +0x8d,0xfe,0xba,0xd4,0x9e,0xc2,0x40,0xb4,0xfe,0x14,0x04,0xb2,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0x3b,0x05,0x9a,0x00,0x09,0x00,0x2a,0x40,0x16,0x01,0x7e,0x04,0x02,0x04,0x02,0x0b,0x08,0x7e,0x06,0x06,0x05,0x09,0x00,0x04,0x04,0x07,0x03,0x01,0x91,0x04,0x12,0x00,0x3f,0xed,0x3f,0x12,0x17,0x39,0x01,0x2f,0xe1,0x12,0x39,0x39,0x2f, +0x2f,0xe1,0x31,0x30,0x01,0x11,0x21,0x15,0x21,0x11,0x07,0x11,0x33,0x11,0x01,0xfc,0x02,0x3f,0xfd,0x18,0x97,0xa9,0x03,0x18,0xfd,0x80,0x98,0x02,0xa8,0x2f,0x03,0x21,0xfd,0x4d,0x00,0x01,0x00,0xa6,0x00,0x00,0x01,0xdc,0x05,0xed,0x00,0x07,0x00,0x2b,0x40,0x16,0x06,0x84,0x04,0x00,0x84,0x02,0x04,0x02,0x04,0x02,0x08,0x09,0x04,0x03, +0x07,0x00,0x04,0x02,0x05,0x00,0x02,0x15,0x00,0x3f,0x3f,0x12,0x17,0x39,0x11,0x12,0x01,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x31,0x30,0x01,0x11,0x23,0x11,0x07,0x11,0x33,0x11,0x01,0xdc,0xa4,0x92,0xa4,0x03,0x43,0xfc,0xbd,0x02,0xd5,0x2e,0x03,0x46,0xfd,0x26,0x00,0x00,0x01,0x00,0x12,0x00,0x00,0x03,0xa4,0x05,0x9a,0x00,0x0d, +0x00,0x2d,0x40,0x16,0x09,0x0c,0x09,0x0c,0x0f,0x0b,0x7e,0x02,0x00,0x0a,0x02,0x92,0x07,0x03,0x03,0x00,0x05,0x03,0x0b,0x91,0x00,0x12,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xc6,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x21,0x15,0xbc,0xaa,0xaa, +0xa8,0xe8,0xe8,0x02,0x40,0x04,0x9c,0x85,0x79,0x79,0x85,0xfb,0xfc,0x98,0x00,0x01,0x00,0x1e,0x00,0x00,0x01,0xd2,0x05,0xec,0x00,0x0b,0x00,0x2c,0x40,0x15,0x09,0x09,0x07,0x0a,0x84,0x04,0x02,0x00,0x00,0x0c,0x0d,0x0a,0x02,0x96,0x07,0x03,0x03,0x05,0x00,0x00,0x15,0x00,0x3f,0x3f,0x39,0x2f,0x33,0xed,0x32,0x11,0x12,0x01,0x39,0x2f, +0xc6,0x33,0xf1,0x32,0xc1,0x2f,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0xa6,0x88,0x88,0xa4,0x88,0x88,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfb,0x4e,0x00,0x03,0x00,0x00,0xff,0xe8,0x06,0x08,0x05,0xb2,0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x3f,0x40,0x20,0x0a,0x0a,0x08,0x0b,0x7d,0x12,0x1f,0x1f,0x21,0x18, +0x19,0x7d,0x02,0x00,0x11,0x19,0x0b,0x11,0x91,0x18,0x08,0x02,0x02,0x05,0x1c,0x91,0x0e,0x13,0x15,0x91,0x05,0x04,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcd,0x33,0xe1,0x32,0x12,0x39,0x2f,0x33,0xf1,0x32,0xc1,0x2f,0x31,0x30,0x11,0x35,0x33,0x12,0x00,0x21,0x20,0x00,0x13,0x33,0x15,0x23,0x02, +0x00,0x21,0x20,0x00,0x03,0x25,0x26,0x02,0x23,0x22,0x00,0x07,0x15,0x16,0x00,0x33,0x32,0x00,0x37,0x61,0x14,0x01,0x7a,0x01,0x27,0x01,0x1e,0x01,0x5d,0x17,0x60,0x62,0x16,0xfe,0x91,0xfe,0xdd,0xfe,0xdc,0xfe,0x9a,0x14,0x04,0x97,0x15,0xfe,0xda,0xd3,0xfe,0xee,0x14,0x14,0x01,0x0f,0xca,0xdf,0x01,0x05,0x15,0x02,0x7e,0x9b,0x01,0x2c, +0x01,0x6d,0xfe,0x9e,0xfe,0xc9,0x9b,0xfe,0xd0,0xfe,0x9a,0x01,0x69,0x01,0x2d,0x9b,0xf9,0x01,0x08,0xfe,0xea,0xeb,0x9b,0xe6,0xfe,0xe7,0x01,0x09,0xf6,0x00,0x00,0x03,0x00,0x00,0xff,0xe8,0x04,0xb0,0x04,0x18,0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x3b,0x40,0x1e,0x08,0x08,0x07,0x0a,0x83,0x19,0x18,0x1f,0x12,0x83,0x01,0x00,0x10,0x12, +0x0a,0x11,0x95,0x1f,0x07,0x00,0x00,0x04,0x15,0x95,0x0d,0x16,0x1c,0x95,0x04,0x10,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcd,0x33,0xe1,0x32,0x2f,0x33,0xf1,0x32,0xc1,0x2f,0x31,0x30,0x11,0x33,0x36,0x24,0x33,0x32,0x16,0x17,0x33,0x15,0x23,0x06,0x00,0x23,0x22,0x00,0x27,0x23,0x21,0x16,0x16, +0x33,0x32,0x36,0x37,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x66,0x1e,0x01,0x10,0xd6,0xce,0xfd,0x16,0x65,0x62,0x10,0xfe,0xf2,0xde,0xdc,0xfe,0xf9,0x0e,0x61,0x01,0x0a,0x0c,0xb1,0x97,0x96,0xa5,0x0d,0x04,0x15,0xa3,0x8c,0x87,0xb0,0x19,0x02,0x5b,0xd0,0xed,0xec,0xd1,0x8b,0xe1,0xfe,0xf9,0x01,0x04,0xe4,0xa4,0xba,0xb2,0xac,0x8c,0x95, +0x9d,0xa0,0x92,0x00,0x00,0x03,0x00,0x5e,0xff,0xe8,0x06,0xcb,0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0x2c,0x00,0x44,0x40,0x25,0x00,0x2b,0x22,0x03,0x11,0x0b,0x7d,0x1b,0x06,0x7f,0x25,0x1b,0x25,0x1b,0x25,0x2e,0x21,0x7d,0x11,0x1e,0x91,0x14,0x04,0x22,0x92,0x09,0x09,0x03,0x18,0x91,0x0e,0x13,0x00,0x28,0x92,0x03,0x04,0x00,0x3f,0xed, +0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x3f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x11,0x17,0x39,0x31,0x30,0x01,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x17,0x15,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x15,0x25,0x36,0x36,0x35, +0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x04,0xda,0x26,0x7c,0x55,0x73,0x87,0xa0,0x83,0x02,0xfe,0x8e,0xfe,0xc6,0xfe,0xd0,0xfe,0x90,0x01,0x78,0x01,0x40,0x01,0x14,0xfc,0xe4,0x01,0x11,0xdf,0xef,0x01,0x0d,0xfe,0xfd,0xed,0xe8,0xfe,0xec,0x04,0x89,0x47,0x59,0x39,0x37,0x31,0x4e,0x19,0x4c,0x05,0x04,0x52,0x5c,0x9d,0x84,0x95,0xcd,0x11, +0x1f,0x20,0xfe,0xa8,0xfe,0x61,0x01,0x97,0x01,0x3d,0x01,0x59,0x01,0x9d,0xfc,0x1a,0xfe,0xb3,0x01,0x40,0x01,0x09,0x01,0x17,0x01,0x3b,0xfe,0xac,0xfb,0xd3,0x13,0x7e,0x57,0x4f,0x56,0x4a,0x42,0x71,0x00,0x03,0x00,0x60,0xff,0xe8,0x05,0x4b,0x04,0x18,0x00,0x13,0x00,0x1f,0x00,0x2a,0x00,0x45,0xb7,0x20,0x29,0x04,0x03,0x0d,0x84,0x19, +0x0a,0xb8,0x01,0x03,0x40,0x1b,0x23,0x19,0x23,0x19,0x23,0x2c,0x1f,0x83,0x13,0x20,0x96,0x0d,0x0d,0x07,0x16,0x95,0x10,0x16,0x04,0x26,0x96,0x07,0x0f,0x1c,0x95,0x02,0x10,0x00,0x3f,0xed,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x17,0x39,0x31,0x30,0x12,0x00,0x33, +0x32,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x00,0x23,0x22,0x00,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x60,0x01,0x1b,0xef,0xc4,0x7a,0x22,0x61,0x3c,0x6a,0x7a,0x8e,0x6f,0x16,0xfe,0xef,0xd5,0xe3,0xfe,0xf1,0xa8,0xba,0x9c,0xa1, +0xa9,0xa8,0xa2,0x9f,0xb7,0x03,0x45,0x39,0x40,0x34,0x31,0x23,0x33,0x14,0x4a,0x02,0xef,0x01,0x29,0x68,0x2f,0x39,0x8d,0x79,0x79,0xb8,0x15,0xe0,0xfe,0xfc,0x01,0x24,0xe8,0xa9,0xd9,0xcf,0xbd,0xbf,0xd1,0xe1,0xb3,0x4c,0x19,0x67,0x45,0x40,0x55,0x29,0x1f,0x70,0x00,0x03,0x00,0x5e,0xff,0xe8,0x0a,0x47,0x05,0xb2,0x00,0x19,0x00,0x25, +0x00,0x31,0x00,0x3f,0x40,0x22,0x00,0x0d,0x25,0x7d,0x2b,0x2b,0x07,0x13,0x7d,0x1f,0x1f,0x33,0x31,0x7d,0x07,0x1c,0x91,0x16,0x13,0x22,0x91,0x10,0x04,0x0d,0x00,0x04,0x2e,0x91,0x0a,0x04,0x28,0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x39, +0x39,0x31,0x30,0x01,0x0e,0x02,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x04,0x17,0x36,0x24,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x26,0x26,0x36,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x11,0x00,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x11,0x05,0x50,0x1e,0xb0,0xef,0x95,0xfe,0xcf,0xfe,0x91,0x01,0x77, +0x01,0x41,0xd1,0x01,0x2c,0x43,0x42,0x01,0x39,0xe2,0x01,0x28,0x01,0x6c,0xfe,0x8c,0xfe,0xc8,0x93,0xec,0xae,0x3d,0x01,0x12,0xde,0xec,0x01,0x10,0xfe,0xf8,0xe8,0xe2,0xfe,0xe6,0xfb,0x63,0x01,0x12,0xde,0xec,0x01,0x10,0xfe,0xf8,0xe8,0xe2,0xfe,0xe6,0x01,0x4a,0x54,0xb2,0x5c,0x01,0x91,0x01,0x43,0x01,0x5b,0x01,0x9b,0xc5,0x9e,0x9a, +0xc9,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0x5d,0xb1,0xcb,0xfe,0xbe,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0xfe,0xb9,0xfe,0xf8,0xfe,0xf6,0xfe,0xbe,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0xfe,0xb9,0xfe,0xf8,0x00,0x03,0x00,0x60,0xff,0xe8,0x07,0x98,0x04,0x18,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x3f,0x40,0x22,0x00,0x0c, +0x23,0x83,0x29,0x29,0x06,0x12,0x83,0x1d,0x1d,0x31,0x2f,0x83,0x06,0x1a,0x95,0x15,0x16,0x20,0x95,0x0f,0x10,0x0c,0x00,0x03,0x2c,0x95,0x09,0x10,0x26,0x95,0x03,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x39,0x39,0x31,0x30,0x25,0x06,0x06,0x23,0x22, +0x00,0x35,0x10,0x00,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x26,0x36,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x04,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x03,0xf9,0x2d,0xdb,0x9f,0xe4,0xfe,0xf2,0x01,0x19,0xf1,0x92,0xd7,0x2e,0x27,0xe6,0xa4,0xe6,0x01,0x00,0xfe, +0xeb,0xe9,0x98,0xde,0x2c,0xbb,0x9b,0xa1,0xa9,0xa8,0xa2,0xa0,0xb6,0xfc,0xb8,0xba,0x9c,0xa1,0xa9,0xa8,0xa2,0xa0,0xb6,0xc9,0x60,0x81,0x01,0x1f,0xed,0x01,0x01,0x01,0x23,0x75,0x6b,0x5b,0x85,0xfe,0xe5,0xf9,0xf5,0xfe,0xd9,0x81,0xd9,0xd0,0xcf,0xbd,0xbf,0xd1,0xda,0xbb,0xb5,0xd2,0xcf,0xbd,0xbf,0xd1,0xda,0xba,0x00,0x02,0x00,0x19, +0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x12,0x00,0x1a,0x00,0x47,0x40,0x24,0x0f,0x7d,0x18,0x18,0x06,0x1c,0x14,0x05,0x03,0x03,0x01,0x05,0x7e,0x0a,0x08,0x06,0x00,0x91,0x14,0x04,0x08,0x92,0x09,0x01,0x09,0x14,0x09,0x14,0x09,0x06,0x13,0x91,0x0b,0x03,0x06,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32, +0x10,0xed,0x01,0x2f,0xc6,0x33,0xf9,0x32,0xc2,0x2f,0x11,0x33,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30,0x01,0x15,0x21,0x15,0x21,0x15,0x23,0x35,0x23,0x35,0x33,0x11,0x21,0x32,0x04,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0x01,0x0d,0xfe,0xf3,0xa8,0xa3,0xa3,0x01,0x8a,0xe1,0x01,0x02,0xfe,0xe8,0xf0,0xbd, +0xb0,0xaf,0xb6,0xfe,0xb0,0x02,0x1e,0x9d,0x85,0xfc,0xfc,0x85,0x04,0x19,0xe2,0xca,0xcb,0xfe,0xfb,0x02,0xe4,0xfd,0xb4,0x9e,0x92,0x01,0x1c,0x00,0x00,0x02,0x00,0x1e,0xfe,0x29,0x04,0x54,0x04,0x18,0x00,0x19,0x00,0x26,0x00,0x49,0x40,0x27,0x0d,0x83,0x20,0x20,0x19,0x28,0x16,0x16,0x14,0x06,0x18,0x84,0x03,0x01,0x19,0x00,0x16,0x96, +0x03,0x15,0x15,0x10,0x19,0x1b,0x12,0x1d,0x95,0x2f,0x10,0x01,0x10,0x16,0x06,0x23,0x95,0x0a,0x10,0x04,0x0f,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x5d,0xed,0x32,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xc6,0x33,0xf9,0x32,0x32,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30,0x13,0x23,0x35,0x33,0x11,0x33,0x15,0x33,0x36,0x36,0x33, +0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x27,0x23,0x11,0x21,0x15,0x21,0x15,0x23,0x13,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0xa6,0x88,0x88,0xa4,0x04,0x3f,0xaf,0x74,0xc4,0xe0,0xfa,0xd9,0xc7,0x6c,0x04,0x01,0x4b,0xfe,0xb5,0xa4,0xa4,0xa4,0x80,0x94,0xaa,0x9e,0x87,0x8d,0xb0,0xfe,0xdd,0x86,0x04,0x9d,0xb4,0x68, +0x64,0xfe,0xee,0xe8,0xfe,0xfe,0xfe,0xcc,0xac,0xfe,0xcf,0x86,0xb4,0x03,0x79,0x80,0xb0,0xe3,0xcc,0xab,0xc2,0xc5,0x98,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x05,0x31,0x05,0x9a,0x00,0x18,0x00,0x20,0x00,0x39,0x40,0x1d,0x15,0x7d,0x1e,0x1e,0x02,0x22,0x07,0x7e,0x0c,0x1a,0x01,0x7e,0x10,0x02,0x03,0x00,0x91,0x10,0x1a,0x09,0x1a,0x09, +0x02,0x19,0x91,0x11,0x03,0x02,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x33,0xed,0x32,0x01,0x2f,0x33,0xe9,0x32,0xd4,0xe9,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35, +0x10,0x21,0x02,0x6c,0xa8,0x5c,0x51,0x59,0x14,0x9e,0x16,0xca,0x9a,0x42,0x01,0x8a,0xe5,0xfe,0xfe,0xe8,0xf0,0xbd,0xb0,0xaf,0xb6,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x02,0x1e,0x5c,0x4e,0x36,0x34,0x36,0x44,0x89,0xa9,0x02,0xe4,0xe3,0xc9,0xcb,0xfe,0xfb,0x02,0xe4,0xfd,0xb4,0x9e,0x92,0x01,0x1c,0x00,0x02,0x00,0x05,0xfe,0x29,0x05,0x46, +0x04,0x18,0x00,0x1d,0x00,0x28,0x00,0x39,0x40,0x1e,0x09,0x83,0x22,0x14,0x83,0x1a,0x1e,0x02,0x0e,0x84,0x00,0x0f,0x17,0x17,0x0d,0x0f,0x1b,0x00,0x1e,0x95,0x10,0x0d,0x15,0x03,0x25,0x95,0x06,0x10,0x01,0x0f,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x33,0xed,0x32,0x3f,0x12,0x39,0x2f,0x01,0x2f,0x33,0xe9,0x32,0x32,0xd4,0xed,0x2f,0xe9,0x31, +0x30,0x25,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x00,0x21,0x23,0x11,0x23,0x11,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x3b,0x02,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x98,0xa4,0x04,0x79,0xe9,0xc4,0xe0,0xfe,0xdd,0xfe,0xf1,0xd8,0xa4,0x39,0x64,0x6c,0x1c,0x94,0x07,0x0b,0xb1,0x99, +0xed,0xe4,0xc6,0xb8,0x9e,0x87,0x8d,0xb0,0x8a,0x03,0x76,0xb4,0xcc,0xfe,0xee,0xe8,0xff,0x00,0xfe,0xe2,0xfe,0x29,0x01,0xd7,0x52,0x52,0x32,0x3a,0x0e,0x4b,0x1d,0x89,0x9b,0xd1,0xc6,0xab,0xc2,0xc5,0x98,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x06,0x27,0x05,0xb2,0x00,0x23,0x00,0x2b,0x00,0x41,0x40,0x22,0x20,0x7d,0x29,0x29,0x02,0x2d, +0x15,0x7e,0x0e,0x08,0x08,0x2c,0x25,0x01,0x7e,0x1b,0x02,0x03,0x00,0x91,0x1b,0x25,0x25,0x01,0x24,0x91,0x1c,0x03,0x0b,0x91,0x12,0x04,0x01,0x12,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x33,0xe9,0x32,0x12,0x39,0x2f,0xc6,0xe9,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x22,0x26, +0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x16,0x16,0x33,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x03,0x62,0xa8,0x27,0xcd,0xb4,0x41,0x4e,0x20,0x3a,0x1f,0x28,0x42,0x28,0x7f,0x9f,0x27,0x5b,0x55,0x29,0x01,0x8a,0xe5,0xfe,0xfe,0xe8,0xf0, +0xbd,0xb0,0xaf,0xb6,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x02,0x1e,0xb0,0xca,0xd3,0x4e,0x5b,0x0c,0x0a,0x9e,0x0b,0x0b,0x9c,0x7c,0xc4,0x83,0x6b,0x31,0x02,0xe3,0xe3,0xc9,0xcb,0xfe,0xfb,0x02,0xe4,0xfd,0xb4,0x9e,0x92,0x01,0x1c,0x00,0x00,0x02,0x00,0x05,0xfe,0x29,0x06,0x85,0x04,0x96,0x00,0x28,0x00,0x33,0x00,0x44,0x40,0x24,0x23,0x83, +0x2d,0x2d,0x00,0x35,0x15,0x84,0x0c,0x05,0x05,0x34,0x29,0x1d,0x28,0x84,0x1a,0x00,0x1d,0x30,0x95,0x20,0x10,0x09,0x95,0x11,0x1b,0x0f,0x29,0x1a,0x95,0x27,0x01,0x15,0x00,0x1b,0x00,0x3f,0x3f,0x33,0xed,0x32,0x3f,0xd4,0xed,0x3f,0xed,0x32,0x01,0x2f,0x33,0xe9,0x32,0x32,0x12,0x39,0x2f,0xc6,0xe9,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30, +0x01,0x11,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x37,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x16,0x16,0x33,0x33,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x00,0x21,0x23,0x11,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x02,0xd7,0x49,0xcd,0xb4,0x3e,0x43,0x23,0x41,0x23,0x28,0x1e, +0x31,0x20,0x83,0x92,0x29,0x5d,0x55,0x4b,0xa4,0x04,0x79,0xe9,0xc4,0xe0,0xfe,0xdd,0xfe,0xf1,0xd8,0xe4,0xc6,0xb8,0x9e,0x87,0x8d,0xb0,0xfe,0x29,0x01,0xd7,0xb0,0xca,0x01,0xf3,0x4f,0x50,0x10,0x10,0x94,0x09,0x07,0x06,0x95,0x83,0xfe,0x2b,0x81,0x6c,0x32,0x03,0x76,0xb4,0xcc,0xfe,0xee,0xe8,0xff,0x00,0xfe,0xe2,0xfe,0x29,0x02,0x61, +0xd1,0xc6,0xab,0xc2,0xc5,0x98,0x00,0x02,0x00,0x5e,0xfe,0xd0,0x06,0x25,0x05,0xb2,0x00,0x18,0x00,0x24,0x00,0x4f,0x40,0x2a,0x02,0x7d,0x1e,0x0b,0x0a,0x07,0x10,0x05,0x1e,0x0e,0x1e,0x07,0x07,0x1e,0x0e,0x03,0x26,0x24,0x7d,0x15,0x21,0x91,0x18,0x04,0x0c,0x0f,0x09,0x06,0x04,0x0b,0x0b,0x0d,0x08,0x07,0x1b,0x91,0x0e,0x0d,0x10,0x05, +0x12,0x13,0x00,0x3f,0x33,0x33,0xc6,0x32,0xfd,0xc0,0x32,0x11,0x39,0x2f,0x17,0x39,0x3f,0xed,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x39,0x10,0xc6,0x32,0x10,0xe9,0x31,0x30,0x00,0x00,0x11,0x14,0x02,0x07,0x17,0x25,0x15,0x07,0x17,0x21,0x27,0x05,0x35,0x37,0x27,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x00,0x00, +0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x11,0x04,0x3e,0x01,0x6c,0xa1,0x77,0x44,0x01,0x05,0x8d,0xd7,0xfe,0xcf,0x46,0xff,0x00,0x8a,0x52,0x6b,0x7d,0xfe,0xcf,0xfe,0x91,0x01,0x77,0x01,0x41,0xfd,0xf8,0x01,0x12,0xde,0xec,0x01,0x10,0xfe,0xf8,0xe8,0xe2,0xfe,0xe6,0x05,0xb2,0xfe,0x70,0xfe,0xbd,0xeb,0xfe,0xbd,0x51,0x31,0xa6, +0xa3,0x59,0x9a,0x34,0xa3,0xa3,0x58,0x3e,0x21,0x01,0x91,0x01,0x43,0x01,0x5b,0x01,0x9b,0xfc,0x11,0xfe,0xbc,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0xfe,0xb9,0xfe,0xf8,0x00,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0x98,0x04,0x18,0x00,0x18,0x00,0x25,0x00,0x4f,0x40,0x2b,0x14,0x17,0x84,0x00,0x25,0x10,0x04,0x00,0x02,0x00,0x16,0x16, +0x00,0x02,0x03,0x27,0x1f,0x83,0x0b,0x12,0x0f,0x10,0x1c,0x95,0x0e,0x10,0x06,0x22,0x95,0x08,0x17,0x02,0x96,0x14,0x03,0x03,0x2f,0x08,0x01,0x08,0x16,0x00,0x1b,0x00,0x3f,0x3f,0x5d,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x3f,0xed,0x32,0x3f,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x33,0x33,0x10,0xe9,0x32,0x31, +0x30,0x01,0x35,0x21,0x35,0x21,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x33,0x15,0x23,0x15,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x03,0x6c,0xfe,0xb5,0x01,0x4b,0x04,0x6b,0xf3,0xc2,0xe8,0xff,0xd9,0xd2,0x5e,0x04,0xa4,0x88,0x88,0xa4,0xa7,0x7d,0x94,0xac,0xa4, +0x85,0x90,0xab,0xfe,0x29,0xb4,0x86,0x01,0x4d,0xc8,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x8e,0xfb,0x63,0x86,0xb4,0x04,0x39,0x7f,0xad,0xdc,0xc6,0xb0,0xca,0xc6,0x95,0x00,0x02,0x00,0x5e,0xfe,0x3c,0x07,0xa9,0x05,0xb2,0x00,0x23,0x00,0x2f,0x00,0x5a,0x40,0x31,0x00,0x01,0x0e,0x7d,0x29,0x1d,0x7e,0x16,0x03,0x11,0x29,0x01,0x29,0x19, +0x22,0x16,0x16,0x22,0x19,0x29,0x01,0x05,0x31,0x2f,0x7d,0x08,0x19,0x92,0x11,0x12,0x03,0x03,0x1a,0x1a,0x05,0x2c,0x91,0x0b,0x04,0x21,0x02,0x05,0x23,0x23,0x01,0x26,0x91,0x05,0x13,0x00,0x3f,0xed,0xc6,0x39,0x2f,0x12,0x39,0x39,0x3f,0xed,0x12,0x39,0x2f,0x17,0x39,0xed,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x12, +0x39,0x39,0x10,0xe9,0x10,0xe9,0x11,0x33,0x31,0x30,0x01,0x23,0x01,0x27,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x14,0x02,0x07,0x17,0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x37,0x32,0x16,0x15,0x14,0x06,0x07,0x01,0x17,0x21,0x00,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x11,0x04,0x43,0xaf,0x01,0x00,0xae, +0x6b,0x7d,0xfe,0xcf,0xfe,0x91,0x01,0x77,0x01,0x41,0x01,0x28,0x01,0x6c,0x8f,0x89,0x6e,0x01,0x38,0x64,0x6c,0x6d,0x85,0x01,0xc6,0xcc,0x59,0x8a,0xfe,0xaa,0xb5,0xfe,0xe7,0xfc,0x02,0x01,0x11,0xdf,0xec,0x01,0x10,0xfe,0xf8,0xe8,0xe2,0xfe,0xe6,0xfe,0x3c,0x01,0x4b,0x82,0x21,0x01,0x91,0x01,0x43,0x01,0x5b,0x01,0x9b,0xfe,0x70,0xfe, +0xbd,0xce,0xfe,0xac,0x5d,0x4f,0x01,0x93,0x81,0xb7,0x32,0x4c,0x4c,0x91,0x90,0x8e,0x3d,0xb4,0xb0,0xfe,0x49,0x82,0x02,0x83,0xfe,0xbd,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0xfe,0xb9,0xfe,0xf8,0x00,0x02,0x00,0x60,0xfe,0x29,0x06,0x12,0x04,0x18,0x00,0x25,0x00,0x32,0x00,0x56,0x40,0x2e,0x00,0x01,0x32,0x23,0x84,0x24,0x10,0x02, +0x24,0x1d,0xef,0x16,0x01,0x09,0x24,0x19,0x16,0x16,0x19,0x24,0x03,0x34,0x2c,0x83,0x09,0x25,0x01,0x01,0x06,0x24,0x1b,0x19,0x95,0x1a,0x10,0x0e,0x29,0x95,0x0c,0x10,0x12,0x03,0x2f,0x95,0x06,0x16,0x00,0x3f,0xed,0x32,0x32,0x3f,0xed,0x32,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x39,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39, +0x10,0xed,0x11,0x33,0x33,0x10,0xe9,0x33,0x11,0x33,0x31,0x30,0x01,0x23,0x01,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x37,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x01,0x11,0x23,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x02, +0xcd,0xa5,0x01,0x44,0x04,0x6b,0xf3,0xc2,0xe8,0xff,0xd9,0xd2,0x5e,0x04,0xa4,0x9b,0x64,0x6c,0x71,0x81,0x01,0xc4,0xc4,0x52,0x43,0x4e,0xfe,0xe1,0xa4,0xa7,0x7d,0x94,0xac,0xa4,0x85,0x90,0xab,0xfe,0x4e,0x01,0x9f,0xc3,0xc8,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x8e,0xfc,0xbe,0xc7,0x81,0xb7,0x32,0x4f,0x50,0x8a,0x90,0x8e,0x40,0xa4, +0x58,0x65,0xfe,0x92,0xfe,0x3e,0xf0,0x03,0x49,0x7f,0xad,0xdc,0xc6,0xb0,0xca,0xc6,0x95,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x04,0x13,0x05,0xb3,0x00,0x16,0x00,0x3d,0x40,0x1f,0x14,0x01,0x11,0x7d,0x04,0x16,0x15,0x01,0x04,0x15,0x15,0x04,0x01,0x03,0x18,0x0a,0x7e,0x0b,0x14,0x01,0x0a,0x01,0x0a,0x01,0x0e,0x16,0x12,0x07,0x91,0x0e, +0x04,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x35,0x24,0x24,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x24,0x33,0x32,0x04,0x15,0x14,0x00,0x07,0x01,0x23,0x01,0x3c,0x01,0x0c,0x01,0x0a,0xa1,0x84,0x8f,0xb1,0x24,0xab, +0x24,0x01,0x1a,0xd4,0xd0,0x01,0x02,0xfe,0xeb,0xca,0x01,0xf0,0xd3,0x02,0x4c,0x3e,0x27,0xc6,0x94,0x7b,0x95,0x9b,0x8f,0xd2,0xf0,0xe7,0xc1,0xa8,0xfe,0xf9,0x2c,0xfd,0xd0,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x03,0x0b,0x04,0x18,0x00,0x16,0x00,0x3e,0x40,0x20,0x0b,0x0a,0x06,0x83,0x10,0x09,0x0c,0x0a,0x10,0x0c,0x0c,0x10,0x0a,0x03, +0x18,0x16,0x84,0x00,0x0c,0x09,0x96,0x0d,0x00,0x0d,0x00,0x03,0x0b,0x15,0x13,0x95,0x03,0x10,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0xed,0x32,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xe9,0x11,0x33,0x31,0x30,0x13,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x01,0x23,0x01,0x35,0x36,0x36,0x35,0x34, +0x26,0x23,0x22,0x06,0x07,0x0f,0x29,0xbb,0xa1,0x94,0xbe,0xab,0x93,0x01,0x63,0xd6,0xfe,0xaa,0x9d,0xc2,0x5e,0x4e,0x58,0x66,0x1f,0x02,0xcf,0xa1,0xa8,0xae,0x89,0x71,0xae,0x32,0xfe,0x70,0x01,0x9e,0x40,0x16,0x8c,0x61,0x4c,0x61,0x56,0x69,0x00,0x01,0x00,0x3d,0x00,0x00,0x04,0x53,0x05,0xb0,0x00,0x1e,0x00,0x4c,0x40,0x26,0x10,0x7e, +0x04,0x1a,0x1a,0x18,0x1c,0x7e,0x1d,0x15,0x1d,0x04,0x1d,0x04,0x1d,0x20,0x14,0x09,0x00,0x1b,0x1e,0x91,0x15,0x18,0x01,0x15,0x16,0x15,0x16,0x15,0x0d,0x1d,0x12,0x09,0x07,0x92,0x0d,0x04,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x01,0x2f,0xc4,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10, +0xf9,0x32,0xc2,0x2f,0x10,0xe9,0x31,0x30,0x13,0x35,0x12,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x21,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x3d,0xfe,0xa8,0x4e,0x3e,0x76,0x5f,0x3d,0x77,0x3d,0x80,0x95,0x5a,0x91,0xaf,0x01,0xf1,0xa8,0xcc,0xcc,0xa8,0x01,0x47,0x96,0x01, +0x05,0x01,0x29,0x7c,0x43,0x55,0x76,0xa4,0x39,0x2a,0x9e,0x8b,0x64,0xc5,0xc3,0xbe,0x01,0xfb,0xfe,0x05,0x96,0xfe,0xb9,0x01,0x47,0x00,0x00,0x01,0x00,0x0f,0xfe,0xe7,0x03,0xe0,0x04,0x18,0x00,0x1e,0x00,0x48,0x40,0x24,0x1b,0x84,0x0e,0x04,0x04,0x03,0x07,0x84,0x08,0x00,0x08,0x0e,0x08,0x0e,0x08,0x20,0x1e,0x14,0x0a,0x14,0x11,0x95, +0x18,0x01,0x01,0x09,0x18,0x10,0x0b,0x03,0x00,0x96,0x08,0x06,0x09,0x15,0x00,0x3f,0x33,0xcd,0xed,0x32,0x32,0x3f,0x12,0x39,0x2f,0x10,0xed,0x32,0x01,0x2f,0xc4,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xf9,0x32,0xc0,0x2f,0x10,0xe9,0x31,0x30,0x25,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x37,0x36,0x12,0x35,0x34, +0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x07,0x02,0x9d,0xa4,0x9f,0x9f,0xa4,0xfd,0x72,0x02,0xc9,0xca,0x46,0x42,0x36,0x6b,0x30,0x39,0x79,0x39,0x7d,0x91,0xb1,0xd6,0x84,0x01,0xe3,0xfe,0x1d,0x84,0xfe,0xe7,0x01,0x19,0x77,0xc4,0x01,0x44,0x7f,0x42,0x4e,0x36,0x36,0x93,0x34,0x2f,0x98,0x7b,0x7a,0xfe, +0xd1,0xd8,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0xe6,0x05,0x9a,0x00,0x14,0x00,0x3a,0x40,0x1d,0x14,0x00,0x05,0x06,0x00,0x06,0x00,0x06,0x0f,0x10,0x10,0x16,0x03,0x02,0x04,0x07,0x01,0x13,0x0b,0x05,0x14,0x14,0x02,0x12,0x12,0x0f,0x05,0x02,0x03,0x00,0x3f,0x33,0x33,0x3f,0x12,0x39,0x2f,0x17,0x39,0x01,0x2f,0x32,0x11,0x33,0x2f,0x33, +0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x37,0x13,0x01,0x33,0x13,0x13,0x33,0x01,0x17,0x16,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x23,0x03,0x03,0xb0,0xb1,0xfe,0xb1,0xbb,0xed,0xf3,0x93,0xfe,0xc2,0x58,0x0a,0x0e,0x05,0x04,0x07,0x1a,0x01,0x95,0xb5,0xfd,0xed,0xb9,0x6f,0x68,0x0f,0x01,0xee,0x03,0x9d,0xfd,0x5a,0x02, +0xa6,0xfc,0x8a,0xfb,0x1c,0x3f,0x24,0x3c,0x45,0x04,0x6f,0xfa,0x66,0x01,0x31,0xfe,0xde,0x00,0x00,0x01,0xff,0xe8,0xff,0x37,0x03,0xcb,0x04,0xd1,0x00,0x14,0x00,0x42,0x40,0x24,0x10,0x0f,0x06,0x03,0x01,0x13,0x04,0x07,0x12,0x05,0x05,0x02,0x0f,0x05,0x02,0x02,0x05,0x0f,0x03,0x16,0x14,0x00,0x04,0x07,0x01,0x0a,0x04,0x03,0x14,0x12, +0x15,0x06,0x0f,0x0f,0x03,0x0f,0x00,0x3f,0x3f,0xce,0x3f,0xce,0x12,0x17,0x39,0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x17,0x39,0x33,0x32,0x11,0x33,0x30,0x31,0x07,0x01,0x03,0x33,0x13,0x13,0x33,0x01,0x17,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x23,0x03,0x03,0x18,0x01,0x09,0xe3,0xb4,0x88,0xff,0x87,0xfe, +0xb7,0x3f,0x1d,0x07,0x04,0x05,0x10,0x0b,0x01,0x10,0xad,0xfe,0x68,0xa1,0x62,0xc3,0xc9,0x02,0x71,0x02,0x58,0xfe,0x79,0x02,0x58,0xfc,0xfb,0xb4,0x53,0x3c,0x26,0x46,0x1f,0x02,0xec,0xfc,0x00,0x01,0x01,0xfe,0x36,0x00,0x00,0x01,0x00,0x1a,0xfe,0x1e,0x07,0x60,0x05,0x9a,0x00,0x2c,0x00,0x4e,0x40,0x27,0x18,0x17,0x1d,0x23,0x22,0x13, +0x0f,0x01,0x27,0x1d,0x19,0x13,0x27,0x00,0x09,0x09,0x19,0x2c,0x00,0x00,0x2e,0x1a,0x19,0x1d,0x27,0x13,0x03,0x18,0x2c,0x22,0x19,0x03,0x0f,0x18,0x12,0x0b,0x91,0x05,0x1c,0x00,0x3f,0xed,0x3f,0x33,0x3f,0x33,0x33,0x12,0x17,0x39,0x01,0x2f,0x33,0x11,0x33,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x39,0x12,0x39,0x11,0x33,0x33,0x11,0x33, +0x33,0x11,0x33,0x33,0x31,0x30,0x01,0x01,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x37,0x37,0x01,0x26,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x07,0x60,0xfe,0x74,0x3c,0x75,0x9c,0x63,0x1d,0x31,0x1d,0x30,0x31,0x3b, +0x67,0x1f,0x3c,0xfe,0xc8,0x0a,0x0b,0x02,0x04,0x06,0x14,0xfe,0xd7,0xc3,0xfe,0x5c,0xb9,0x01,0x31,0x13,0x05,0x05,0x02,0x10,0x0d,0x01,0x3d,0xa1,0x01,0x37,0x09,0x09,0x03,0x03,0x04,0x0a,0x0a,0x01,0x24,0x05,0x9a,0xfa,0x88,0xd5,0xca,0x65,0x05,0x08,0x9d,0x12,0x56,0x52,0xa2,0x04,0x18,0x22,0x48,0x28,0x47,0x49,0xfb,0xe6,0x05,0x9a, +0xfb,0xb4,0x45,0x4b,0x1a,0x48,0x2e,0x04,0x4c,0xfb,0xb0,0x20,0x4a,0x20,0x21,0x43,0x26,0x04,0x50,0x00,0x00,0x01,0x00,0x18,0xfe,0x1e,0x05,0xb0,0x04,0x00,0x00,0x2c,0x00,0x4b,0x40,0x25,0x18,0x17,0x1f,0x23,0x22,0x13,0x0f,0x27,0x1f,0x19,0x13,0x27,0x00,0x09,0x09,0x19,0x2c,0x00,0x00,0x2e,0x1a,0x19,0x27,0x1e,0x13,0x03,0x18,0x2c, +0x22,0x19,0x0f,0x0b,0x95,0x05,0x0f,0x18,0x15,0x00,0x3f,0x33,0xd4,0xed,0x3f,0x33,0x33,0x12,0x17,0x39,0x01,0x2f,0x33,0x11,0x33,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x39,0x12,0x39,0x11,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x31,0x30,0x01,0x01,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x37,0x37,0x03,0x26,0x26,0x27, +0x23,0x06,0x07,0x03,0x23,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x16,0x17,0x33,0x34,0x36,0x37,0x13,0x05,0xb0,0xfe,0xb4,0x39,0x59,0x88,0x6a,0x1c,0x34,0x1b,0x34,0x2d,0x51,0x66,0x23,0x2d,0xdd,0x06,0x08,0x02,0x04,0x03,0x12,0xe5,0xa4,0xfe,0xca,0xac,0xd4,0x05,0x07,0x02,0x08,0x03,0x0f,0xec,0x96,0xd5, +0x05,0x06,0x02,0x06,0x06,0x08,0xd6,0x04,0x00,0xfb,0xb6,0xba,0x90,0x4e,0x05,0x08,0x93,0x12,0x5b,0x6f,0x8a,0x02,0xdd,0x15,0x30,0x1a,0x24,0x39,0xfd,0x21,0x04,0x00,0xfc,0xfe,0x11,0x2e,0x1d,0x2d,0x31,0x03,0x00,0xfc,0xfc,0x13,0x2d,0x1c,0x13,0x2f,0x1a,0x03,0x04,0x00,0x00,0x01,0x00,0x55,0xfe,0x21,0x04,0x93,0x05,0xc2,0x00,0x2c, +0x00,0x53,0x40,0x19,0x0c,0x20,0x20,0x26,0x00,0x00,0x26,0x22,0x0b,0x0b,0x0f,0x7d,0x1c,0x1c,0x2e,0x16,0x06,0x7d,0x26,0x0b,0x22,0x91,0x09,0x21,0x1f,0xb8,0x01,0x05,0x40,0x0e,0x0c,0x09,0x0c,0x09,0x0c,0x12,0x03,0x91,0x29,0x16,0x19,0x91,0x12,0x1c,0x00,0x3f,0xed,0x32,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x10,0xed, +0x32,0x01,0x2f,0xe9,0xc4,0x12,0x39,0x2f,0xf9,0xc0,0x2f,0x32,0x11,0x39,0x2f,0x12,0x39,0x11,0x33,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x01,0x32,0x04,0x15,0x14,0x04,0x21,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32, +0x16,0x17,0x02,0x7e,0x1f,0x63,0x27,0x59,0x78,0x8e,0x84,0x01,0xf9,0xfe,0xad,0xd3,0x01,0x04,0xfe,0xc0,0xfe,0xfb,0x57,0xae,0x57,0x59,0xb1,0x58,0xb9,0xd8,0xc2,0xf0,0x68,0x01,0x4c,0xfe,0xd8,0xec,0xd9,0x9b,0x32,0x5b,0x29,0x05,0x00,0x10,0x1d,0x74,0x5b,0x74,0x7d,0x56,0xfe,0x65,0xe0,0xbe,0xcc,0xf1,0x20,0x2a,0xa2,0x32,0x22,0x9c, +0x8e,0x91,0x8e,0x37,0x01,0x9c,0xc9,0xc0,0x95,0xcf,0x0b,0x0c,0x00,0x01,0x00,0x3e,0xfe,0x21,0x04,0x0c,0x04,0xdd,0x00,0x2c,0x00,0x53,0x40,0x19,0x0c,0x20,0x20,0x26,0x00,0x00,0x26,0x22,0x0b,0x0b,0x0f,0x83,0x1c,0x1c,0x2e,0x16,0x06,0x83,0x26,0x0b,0x22,0x95,0x09,0x21,0x1f,0xb8,0x01,0x05,0x40,0x0e,0x0c,0x09,0x0c,0x09,0x0c,0x12, +0x03,0x96,0x29,0x16,0x19,0x95,0x12,0x1c,0x00,0x3f,0xed,0x32,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0xc4,0x12,0x39,0x2f,0xf9,0xc0,0x2f,0x32,0x11,0x39,0x2f,0x12,0x39,0x11,0x33,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x04,0x23, +0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x02,0x00,0x26,0x4b,0x27,0x39,0x4a,0x5d,0x5e,0x01,0xec,0xfe,0xbe,0xd4,0xee,0xfe,0xc6,0xf1,0x53,0xa6,0x53,0x55,0xa8,0x54,0xab,0xd3,0xe0,0xcf,0x4f,0x01,0x42,0xfe,0xf9,0x9e,0xc5,0xa8,0x77,0x29, +0x51,0x29,0x04,0x33,0x14,0x10,0x46,0x39,0x4a,0x4e,0x53,0xfe,0x7e,0x11,0xd6,0xb6,0xc6,0xe7,0x1f,0x28,0xa2,0x34,0x2a,0x9c,0x8b,0x91,0x96,0x35,0x01,0x85,0xa0,0x84,0x70,0x95,0x0b,0x11,0x00,0x02,0x00,0x12,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x14,0x00,0x1c,0x00,0x56,0x40,0x16,0x11,0x7d,0x1a,0x16,0x0d,0x01,0x0b,0x0b,0x09,0x01, +0x7e,0x06,0x04,0x02,0x00,0x91,0x16,0x15,0x91,0x0d,0x0c,0x04,0xb8,0x01,0x05,0xb6,0x05,0x09,0x05,0x20,0x16,0x01,0x05,0xb8,0xff,0xc0,0x40,0x0c,0x09,0x0e,0x48,0x16,0x05,0x16,0x05,0x02,0x07,0x03,0x02,0x12,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x5d,0x11,0x33,0x10,0xfd,0x32,0xdc,0xed,0x10,0xed,0x01,0x2f,0xc6,0x33,0xf9, +0x32,0xc0,0x2f,0x11,0x33,0x33,0x2f,0xe9,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0xa8,0xaa,0xaa,0xa8,0xd4,0xd4,0xe2,0xe8,0xfb,0xfe,0xe5,0xf0,0xba,0xb0,0xae,0xb7,0xfe,0xb0,0x01,0x3e,0xfe,0xc2,0x04, +0xee,0x67,0x45,0x45,0x67,0x36,0xe0,0xcc,0xcb,0xfe,0xfd,0x02,0xe3,0xfd,0xb4,0x9b,0x92,0x01,0x1f,0x00,0x00,0x02,0x00,0x27,0xfe,0x29,0x04,0x54,0x05,0xec,0x00,0x18,0x00,0x25,0x00,0x4f,0x40,0x2c,0x10,0x83,0x1f,0x08,0x1f,0x08,0x1f,0x27,0x0a,0x06,0x17,0x84,0x03,0x01,0x18,0x17,0x1b,0x15,0x1c,0x95,0x13,0x16,0x0a,0x22,0x95,0x0d, +0x09,0x01,0x96,0x06,0x02,0x02,0x04,0x00,0x0d,0x10,0x0d,0x20,0x0d,0x03,0x0d,0x10,0x04,0x00,0x00,0x3f,0x3f,0x5d,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x3f,0xed,0x32,0x3f,0x01,0x2f,0xc6,0x33,0xe9,0x32,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x13,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x36, +0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x27,0x23,0x11,0x23,0x13,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0xa6,0x7f,0x7f,0xa4,0x01,0x54,0xfe,0xac,0x04,0x79,0xe9,0xc4,0xe0,0xfa,0xd9,0xc7,0x6c,0x04,0xa4,0xa4,0xa4,0x80,0x94,0xaa,0x9e,0x87,0x8d,0xb0,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfe,0x9a,0xcc,0xfe,0xee, +0xe8,0xfe,0xfe,0xfe,0xcc,0xac,0xfd,0x95,0x03,0x79,0x80,0xb0,0xe3,0xcc,0xab,0xc2,0xc5,0x98,0x00,0x02,0x00,0x12,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x14,0x00,0x1c,0x00,0x44,0x40,0x23,0x11,0x7d,0x1a,0x1a,0x06,0x1e,0x16,0x05,0x03,0x03,0x01,0x05,0x7e,0x0a,0x08,0x06,0x15,0x91,0x0d,0x0d,0x06,0x0b,0x03,0x16,0x91,0x00,0x01,0x0f, +0x09,0x01,0x09,0x04,0x08,0x06,0x12,0x00,0x3f,0xde,0x32,0xdd,0x5d,0x32,0xdc,0xed,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0xc6,0x33,0xf9,0x32,0xc2,0x2f,0x11,0x33,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30,0x01,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x11,0x33,0x15,0x33,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36, +0x35,0x10,0x21,0x01,0x64,0xd4,0xd4,0xa8,0xaa,0xaa,0xa8,0xe2,0xe8,0xfb,0xfe,0xe5,0xf0,0xba,0xb0,0xae,0xb7,0xfe,0xb0,0x01,0x3e,0x55,0x67,0x82,0x82,0x67,0x04,0xb1,0xe2,0xe0,0xcc,0xcb,0xfe,0xfd,0x02,0xe3,0xfd,0xb4,0x9b,0x92,0x01,0x1f,0x00,0x02,0x00,0x27,0xfe,0x29,0x04,0x54,0x05,0xec,0x00,0x18,0x00,0x25,0x00,0x4b,0x40,0x28, +0x0c,0x1f,0x1f,0x18,0x27,0x19,0x17,0x15,0x15,0x13,0x06,0x17,0x03,0x01,0x18,0x17,0x1b,0x11,0x1c,0x95,0x0f,0x00,0x16,0x96,0x03,0x13,0x1f,0x0f,0x2f,0x0f,0x02,0x0f,0x16,0x06,0x22,0x95,0x09,0x10,0x04,0x00,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x5d,0xde,0x32,0xed,0x32,0x10,0xed,0x32,0x3f,0x01,0x2f,0xc6,0x33,0xd1,0x32,0x32,0xc2,0x2f, +0x11,0x33,0x11,0x12,0x39,0x2f,0xc1,0x31,0x30,0x17,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x27,0x23,0x11,0x21,0x15,0x21,0x15,0x23,0x13,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0xa6,0x7f,0x7f,0xa4,0x04,0x79,0xe9,0xc4,0xe0,0xfa,0xd9,0xc7,0x6c,0x04,0x01,0x54,0xfe, +0xac,0xa4,0xa4,0xa4,0x80,0x94,0xaa,0x9e,0x87,0x8d,0xb0,0xf8,0x86,0x06,0x5e,0xfd,0x60,0xcc,0xfe,0xee,0xe8,0xfe,0xfe,0xfe,0xcc,0xac,0xfe,0xfa,0x86,0xdf,0x03,0x79,0x80,0xb0,0xe3,0xcc,0xab,0xc2,0xc5,0x98,0x00,0x01,0x00,0xbc,0xfe,0x29,0x03,0xc7,0x05,0x9a,0x00,0x0b,0x00,0x23,0x40,0x10,0x09,0x0a,0x0a,0x0d,0x04,0x00,0x7e,0x01, +0x04,0x0b,0x01,0x09,0x02,0x03,0x01,0x1b,0x00,0x3f,0x3f,0x33,0x12,0x39,0x39,0x01,0x2f,0xe9,0x32,0x11,0x33,0x2f,0x33,0x31,0x30,0x01,0x23,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x01,0x64,0xa8,0xa8,0x04,0x03,0x0e,0x0d,0x01,0x8c,0xb5,0xfd,0x9d,0xfe,0x29,0x07,0x71,0xfb,0xcb,0x12,0x31,0x1e,0x03,0xd4,0xfa,0x66,0x00, +0x00,0x01,0x00,0xa6,0xfe,0x29,0x03,0x28,0x04,0x00,0x00,0x0b,0x00,0x21,0x40,0x0f,0x08,0x09,0x09,0x0d,0x03,0x0a,0x84,0x00,0x0a,0x03,0x08,0x01,0x0f,0x00,0x1b,0x00,0x3f,0x3f,0x33,0x39,0x39,0x01,0x2f,0xe9,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x13,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x13,0x33,0x01,0x11,0xa6,0xa4,0x04,0x0a,0x2b, +0x14,0xe4,0xad,0xfe,0x22,0xfe,0x29,0x05,0xd7,0xfd,0x34,0x33,0x68,0x2f,0x02,0x02,0xfc,0x00,0xfe,0x29,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x5d,0x05,0xb2,0x00,0x29,0x00,0x41,0x40,0x22,0x1c,0x7d,0x0f,0x23,0x7d,0x06,0x1f,0x0f,0x0a,0x0f,0x06,0x06,0x0f,0x0a,0x03,0x2b,0x15,0x29,0x1f,0x0a,0x91,0x0b,0x0b,0x19,0x00,0x03,0x91,0x26, +0x13,0x15,0x12,0x91,0x19,0x04,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0xc4,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xe9,0x10,0xe9,0x31,0x30,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x60,0x4b,0xa1,0x4b,0x80,0x99,0x9b,0x93,0x71,0x5a,0x7f,0x95,0x67,0x62,0x45,0x99,0x41,0x4b,0x93,0x4b,0xa9,0xc3,0x6d,0x6a,0x7c,0x8c,0xf8,0xcc,0x4e,0x9d,0x4e,0xd7,0x32,0x26,0x95,0x82,0x80,0x85,0x98,0x97,0x84,0x64,0x69,0x2d,0x30,0xa2,0x2b,0x27,0xc1,0xa0,0x7d, +0xa9,0x2d,0x08,0x16,0xbe,0x8c,0xc4,0xea,0x21,0x2c,0x00,0x01,0x00,0x1e,0xfe,0x23,0x02,0xe7,0x04,0x18,0x00,0x29,0x00,0x41,0x40,0x22,0x1c,0x84,0x0f,0x23,0x84,0x06,0x20,0x0f,0x0a,0x0f,0x06,0x06,0x0f,0x0a,0x03,0x2b,0x15,0x00,0x1f,0x0a,0x95,0x0b,0x0b,0x19,0x00,0x03,0x95,0x26,0x1c,0x15,0x12,0x95,0x19,0x10,0x00,0x3f,0xed,0x32, +0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0xc6,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xe9,0x10,0xe9,0x31,0x30,0x13,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x00,0x23, +0x22,0x26,0x27,0x21,0x23,0x6c,0x2b,0x97,0xd0,0x9c,0xba,0x46,0x52,0x78,0xa1,0x71,0x65,0x47,0x8f,0x47,0x48,0x94,0x48,0xaf,0xc6,0x72,0x51,0x80,0x73,0xfe,0xcf,0xdb,0x2a,0x66,0x2a,0xfe,0xcc,0x0f,0x11,0xc5,0x96,0x8b,0x85,0x89,0xa2,0x78,0x65,0x70,0x29,0x2b,0x98,0x25,0x20,0xb8,0xa6,0x5d,0xc0,0x2a,0x05,0x2c,0xbb,0x80,0xcd,0xfe, +0xe9,0x08,0x09,0x00,0x00,0x02,0x00,0x14,0xff,0xe8,0x03,0xba,0x05,0xb0,0x00,0x19,0x00,0x24,0x00,0x41,0x40,0x21,0x24,0x0e,0x7e,0x00,0x03,0x00,0x0a,0x7d,0x1d,0x00,0x1d,0x00,0x1d,0x26,0x01,0x15,0x15,0x17,0x91,0x12,0x0e,0x00,0x91,0x24,0x02,0x02,0x07,0x12,0x13,0x20,0x91,0x07,0x04,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed, +0x32,0x10,0xed,0x32,0x01,0x2f,0xc6,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x11,0x33,0x10,0xe9,0x32,0x31,0x30,0x01,0x21,0x35,0x21,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x01,0x83,0xfe,0xe2,0x01,0x1e, +0x95,0x86,0x7d,0x9f,0xb9,0x86,0x50,0xd1,0xbc,0x54,0x36,0x36,0x56,0xe3,0xf9,0x49,0x45,0x31,0x36,0x41,0x37,0x03,0x70,0x97,0x81,0x8c,0x9c,0x99,0x7c,0x80,0xab,0xfe,0x92,0xf8,0xfe,0xde,0x18,0xa6,0x27,0x01,0x81,0x02,0x07,0x53,0x41,0x36,0x4a,0x50,0x43,0x81,0x00,0x02,0xff,0x76,0xfe,0x1e,0x03,0x15,0x06,0x02,0x00,0x19,0x00,0x24, +0x00,0x41,0x40,0x21,0x24,0x0e,0x84,0x00,0x03,0x00,0x0a,0x83,0x1d,0x00,0x1d,0x00,0x1d,0x26,0x01,0x15,0x15,0x17,0x95,0x12,0x0e,0x00,0x95,0x24,0x02,0x02,0x07,0x12,0x1c,0x20,0x95,0x07,0x00,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0xc6,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x11,0x33,0x10,0xe9, +0x32,0x31,0x30,0x13,0x23,0x35,0x37,0x35,0x34,0x36,0x37,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0xe2,0xd8,0xd8,0x91,0x8a,0x7d,0x9b,0xae,0x83,0x5e,0xcc,0xbc,0x45,0x43,0x49,0x43,0xe0,0xf9,0x43,0x4f,0x3d,0x33,0x3c,0x3b, +0x03,0xc6,0x8c,0x01,0x87,0x89,0x9e,0x01,0x98,0x7a,0x82,0xa8,0xfc,0x65,0xfd,0xfe,0xf0,0x20,0x99,0x2d,0x01,0x66,0x04,0x42,0x57,0x47,0x3d,0x4b,0x54,0x4a,0x88,0x00,0x00,0x01,0x00,0x38,0xff,0xe8,0x03,0xca,0x05,0xb2,0x00,0x25,0x00,0x37,0x40,0x1c,0x15,0x7d,0x22,0x08,0x22,0x08,0x22,0x27,0x1c,0x02,0x7e,0x0f,0x1c,0x1f,0x91,0x18, +0x08,0x05,0x91,0x0c,0x0c,0x12,0x18,0x13,0x25,0x91,0x12,0x04,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0xe9,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x00,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x33,0x32,0x12,0x11,0x10,0x00,0x21,0x22,0x26, +0x27,0x35,0x16,0x16,0x33,0x32,0x12,0x11,0x10,0x26,0x23,0x01,0x7c,0x9b,0x8b,0x7c,0x3a,0x6e,0x36,0x35,0x6d,0x3d,0xc1,0xee,0xf8,0xcd,0xde,0xef,0xfe,0xc0,0xfe,0xe7,0x3c,0x77,0x3c,0x39,0x81,0x39,0xcf,0xd6,0x8f,0x90,0x05,0x1c,0xae,0x8d,0x90,0xaf,0x28,0x2b,0xa2,0x23,0x24,0xfc,0xc7,0xd7,0x01,0x0c,0xfe,0x9f,0xfe,0xbe,0xfe,0x87, +0xfe,0x52,0x18,0x16,0xa5,0x1d,0x20,0x01,0x4c,0x01,0x45,0x01,0x10,0xfd,0x00,0x01,0x00,0x43,0xfe,0x4e,0x03,0xce,0x04,0x18,0x00,0x25,0x00,0x34,0x40,0x1a,0x15,0x83,0x22,0x08,0x22,0x08,0x22,0x27,0x1c,0x02,0x84,0x0f,0x08,0x05,0x95,0x0c,0x0c,0x12,0x1c,0x1f,0x95,0x18,0x25,0x95,0x12,0x0f,0x00,0x3f,0xed,0x2f,0xed,0x32,0x11,0x39, +0x2f,0xed,0x32,0x01,0x2f,0xe9,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x00,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x33,0x32,0x12,0x11,0x10,0x00,0x21,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x12,0x11,0x10,0x02,0x23,0x01,0x83,0x9c,0x8e,0x7b,0x39,0x6d,0x37,0x36,0x71, +0x37,0xc0,0xec,0xf5,0xcd,0xdd,0xec,0xfe,0xc8,0xfe,0xe2,0x3c,0x76,0x3c,0x39,0x82,0x38,0xd4,0xd5,0x91,0x92,0x03,0x8e,0xb6,0x8e,0x96,0xb2,0x24,0x2b,0x98,0x23,0x1e,0xfb,0xc5,0xd6,0x01,0x0a,0xfe,0xa2,0xfe,0xbb,0xfe,0x8a,0xfe,0x4f,0x16,0x14,0x9d,0x1d,0x20,0x01,0x55,0x01,0x49,0x01,0x18,0x01,0x00,0x00,0x01,0x00,0x28,0x02,0x89, +0x02,0x39,0x05,0xaa,0x00,0x24,0x00,0x44,0xb3,0x00,0x00,0x05,0x0b,0xb8,0x01,0x04,0xb3,0x18,0x18,0x26,0x1e,0xb8,0x01,0x04,0xb3,0x12,0x05,0x12,0x15,0xb8,0x01,0x05,0xb2,0x0e,0x24,0x21,0xb8,0x01,0x05,0xb4,0x02,0x02,0x08,0x0e,0x1b,0xb8,0x01,0x05,0xb1,0x08,0x04,0x00,0x3f,0xed,0x2f,0x12,0x39,0x2f,0xed,0x32,0x10,0xed,0x32,0x01, +0x2f,0xc4,0xe9,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x01,0x7a,0x2b,0x32,0x77,0x7e,0x8f,0x71,0x83,0x8e,0xa9,0x9c,0x29,0x4b,0x26, +0x28,0x4b,0x28,0x5f,0x62,0x49,0x45,0x3a,0x47,0x38,0x3f,0x18,0x31,0x13,0x03,0xbb,0x11,0x83,0x72,0x74,0x97,0xbf,0xad,0xc5,0xf0,0x0f,0x0e,0x78,0x14,0x11,0xa3,0xa1,0x86,0x77,0x55,0x42,0x3f,0x52,0x0c,0x0e,0x00,0x02,0x00,0x60,0xff,0x43,0x05,0x60,0x05,0xec,0x00,0x1a,0x00,0x27,0x00,0x4e,0x40,0x2a,0x27,0x19,0x84,0x15,0x09,0x06, +0x07,0x00,0x01,0x09,0x07,0x01,0x03,0x03,0x01,0x07,0x09,0x04,0x29,0x21,0x83,0x10,0x17,0x00,0x15,0x1e,0x95,0x13,0x10,0x0a,0x24,0x95,0x07,0x0d,0x16,0x02,0x00,0x19,0x95,0x05,0x09,0x15,0x00,0x3f,0x33,0xfd,0xc6,0x33,0x3f,0xc6,0xed,0x32,0x3f,0xed,0x32,0x3f,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33, +0x11,0x33,0xe9,0x33,0x31,0x30,0x01,0x33,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x33,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x04,0xbc,0x8e,0x59,0x6f,0xb1,0x59,0x8e,0x59,0xb5,0x04,0x72,0xee,0xc0,0xe8,0xff,0xd6,0xd3, +0x60,0x04,0xa4,0x53,0xf7,0xa6,0x7c,0x97,0xab,0xa3,0x8d,0x88,0xac,0x01,0x44,0xba,0x8a,0xbd,0xbd,0xae,0xc6,0x01,0x11,0xef,0xfc,0x01,0x34,0xa6,0x02,0x7a,0xfa,0x9e,0x01,0xdc,0x7e,0xaa,0xdd,0xc1,0xb1,0xcd,0xc6,0x97,0x00,0x01,0x00,0xa6,0xff,0x43,0x02,0x9a,0x05,0xec,0x00,0x0d,0x00,0x30,0x40,0x17,0x0b,0x0c,0x05,0x06,0x0c,0x06, +0x00,0x08,0x08,0x0f,0x03,0x84,0x00,0x01,0x00,0x07,0x05,0x03,0x95,0x0c,0x0a,0x00,0x15,0x00,0x3f,0x32,0xc6,0xfd,0xc6,0x33,0x3f,0x01,0x2f,0xe9,0x12,0x39,0x2f,0x12,0x39,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x33,0x11,0x33,0x11,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0xa6,0xa4,0x53,0x57,0x8e,0x57,0x6f,0xb1,0x59,0x8e, +0x59,0x05,0xec,0xfa,0x9e,0xba,0xba,0x8a,0xbd,0xbd,0x00,0x01,0x00,0xa6,0xff,0x43,0x07,0xa4,0x04,0x18,0x00,0x29,0x00,0x5d,0x40,0x32,0x1d,0x19,0x84,0x1a,0x23,0x11,0x84,0x12,0x28,0x84,0x09,0x06,0x07,0x00,0x01,0x12,0x09,0x07,0x01,0x03,0x03,0x01,0x07,0x09,0x12,0x05,0x04,0x1a,0x04,0x23,0x1d,0x0d,0x15,0x95,0x25,0x20,0x10,0x1b, +0x0f,0x12,0x19,0x15,0x02,0x00,0x28,0x95,0x07,0x05,0x09,0x15,0x00,0x3f,0x33,0xc6,0xfd,0xc6,0x33,0x3f,0x33,0x3f,0x3f,0x33,0xed,0x32,0x32,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xe9,0x10,0xe9,0x39,0x10,0xe9,0x32,0x31,0x30,0x01,0x33,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x11, +0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x20,0x11,0x11,0x33,0x06,0xfe,0x8e,0x57,0x6f,0xb1,0x59,0x8e,0x59,0xb5,0x68,0x7d,0x69,0x93,0xa4,0xe9,0x6a,0x8e,0xa4,0xa4,0x04,0x6d,0xd1,0x68,0x9e,0x1c,0x72,0xe2,0x01,0x52,0x53,0x01,0x44, +0xba,0x8a,0xbd,0xbd,0x02,0x4c,0xa7,0x9b,0xbe,0x88,0xfd,0xb8,0x02,0x60,0x01,0x2e,0xb3,0x93,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x76,0x5e,0xd4,0xfe,0x5f,0xfe,0x13,0x00,0x00,0x01,0x00,0xa6,0xff,0x43,0x05,0x48,0x04,0x18,0x00,0x1c,0x00,0x45,0x40,0x25,0x14,0x10,0x84,0x11,0x1b,0x84,0x06,0x07,0x00,0x01,0x09,0x07,0x01,0x03,0x03,0x01, +0x07,0x09,0x04,0x04,0x11,0x04,0x15,0x0c,0x95,0x17,0x10,0x12,0x0f,0x11,0x15,0x00,0x1b,0x95,0x07,0x09,0x15,0x00,0x3f,0xc6,0xfd,0xc6,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0xed,0x10,0xe9,0x32,0x31,0x30,0x01,0x33,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x11,0x10,0x23, +0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x33,0x04,0xa5,0x8e,0x5a,0x6f,0xb1,0x59,0x8e,0x59,0xb5,0xee,0x7a,0xa2,0xa4,0xa4,0x04,0x74,0xdc,0xa9,0xb1,0x53,0x01,0x46,0xbc,0x8a,0xbd,0xbd,0x02,0x48,0x01,0x46,0xb8,0x8e,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd8,0xce,0xfe,0x18,0x00,0x00,0x01,0x00,0xa6, +0x00,0x00,0x02,0xbc,0x04,0x91,0x00,0x17,0x00,0x3a,0x40,0x1e,0x09,0x0a,0x00,0x01,0x0a,0x01,0x06,0x06,0x01,0x0a,0x03,0x19,0x12,0x0f,0x84,0x10,0x11,0x0f,0x10,0x15,0x14,0x0b,0x09,0x08,0xec,0x17,0x00,0x96,0x02,0x10,0x00,0x3f,0xed,0x33,0xfd,0xcd,0x33,0x33,0x3f,0x3f,0x01,0x2f,0xe9,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33, +0x11,0x33,0x31,0x30,0x01,0x33,0x07,0x16,0x16,0x17,0x15,0x26,0x27,0x07,0x23,0x37,0x06,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x37,0x02,0x26,0x7a,0x23,0x14,0x1e,0x0d,0x26,0x42,0x3a,0x7a,0x31,0x3a,0x4d,0xa4,0xa4,0x04,0x1a,0x5b,0x3b,0x04,0x91,0x80,0x02,0x06,0x05,0xaa,0x1d,0x03,0xd7,0xb7,0x26,0xa8,0x82,0xfd,0xf6, +0x04,0x00,0xd3,0x4f,0x6c,0x18,0x00,0x02,0x00,0xa6,0xff,0x43,0x04,0xa2,0x04,0x01,0x00,0x1e,0x00,0x27,0x00,0x53,0x40,0x2c,0x0f,0x06,0x0c,0x83,0x1c,0x1d,0x16,0x17,0x17,0x14,0x1d,0x00,0x04,0x19,0x24,0x19,0x24,0x19,0x07,0x1a,0x20,0x06,0x84,0x07,0x0f,0x20,0x96,0x05,0x05,0x06,0x1f,0x96,0x08,0x0f,0x06,0x15,0x18,0x16,0x14,0x95, +0x1d,0x1b,0x00,0x15,0x00,0x3f,0x32,0xc6,0xfd,0xc6,0x33,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0xe9,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0xed,0x11,0x39,0x31,0x30,0x21,0x03,0x26,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x17,0x17,0x33,0x37, +0x33,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x01,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x02,0xe5,0x98,0x2e,0x40,0x4e,0x47,0xa4,0x01,0x36,0xce,0xb2,0x90,0x67,0x1f,0x3b,0x2a,0x69,0x53,0x4f,0x8e,0x4f,0x6f,0xb1,0x59,0x8e,0x59,0xfd,0xe7,0x78,0x72,0x80,0x67,0x73,0x01,0x1b,0x54,0x34,0xfe,0x5d,0x04,0x01,0x8b,0x94,0x5f,0x97,0x0c, +0x03,0x09,0x3d,0x4d,0xc0,0xa7,0xa7,0x8a,0xbd,0xbd,0x03,0x7e,0xfe,0xab,0x5f,0x5a,0x4f,0x4d,0x00,0x02,0x00,0x2b,0xff,0xea,0x05,0x12,0x05,0xb1,0x00,0x21,0x00,0x2c,0x00,0x4d,0x40,0x28,0x1c,0xef,0x25,0x09,0x25,0x09,0x25,0x2e,0x14,0x03,0x84,0x11,0x0f,0x0d,0x2c,0x21,0x84,0x15,0x00,0x28,0x96,0x19,0x20,0x02,0x0e,0x95,0x11,0x2c, +0x14,0x11,0x13,0x13,0x11,0x0f,0x06,0x95,0x0b,0x16,0x00,0x15,0x00,0x3f,0x3f,0xed,0x3f,0x33,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0xd4,0xed,0x01,0x2f,0x33,0xe9,0x32,0x2f,0xc6,0x33,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x21,0x11,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x11,0x11,0x23,0x35, +0x33,0x35,0x37,0x11,0x21,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x02,0xf2,0xfe,0x8d,0x46,0x51,0x3f,0x2c,0x3b,0x5e,0xfe,0xf3,0xb0,0xb0,0xa4,0x01,0x73,0x8c,0x8a,0x83,0x87,0xa7,0xa0,0x35,0x36,0x4f,0x5d,0x37,0x39,0x39,0x37,0x03,0x74,0xfd,0xbf,0x67, +0x58,0x22,0x8c,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xfa,0x35,0xfe,0xd1,0x6e,0xa9,0x9a,0x96,0x82,0x8d,0x98,0xfc,0x8c,0x04,0x00,0x4b,0x4f,0x49,0x48,0x52,0x6e,0x6b,0x00,0x00,0x02,0xff,0xec,0x00,0x00,0x03,0x5b,0x05,0xb2,0x00,0x22,0x00,0x2e,0x00,0x4c,0x40,0x28,0x1f,0x10,0x22,0x0d,0x7e,0x26,0x03,0x23,0x00,0x26,0x13,0x7e,0x1c,0x26, +0x1c,0x26,0x1c,0x30,0x22,0x00,0x2c,0x7e,0x18,0x07,0x1f,0x03,0x10,0x23,0x04,0x22,0x22,0x0a,0x18,0x91,0x16,0x12,0x29,0x91,0x0a,0x03,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x17,0x39,0x01,0x2f,0xc6,0xe9,0xc6,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x11,0x12,0x39,0x39,0x10,0xe9,0x11,0x39,0x39,0x31,0x30,0x13,0x36,0x12,0x37, +0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x21,0x35,0x21,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x07,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x95,0x4d,0x8d,0x3c,0x10,0x93,0x4c,0x98,0x6f,0x73,0x88,0x31,0x22,0x84,0x6c,0xe5,0xc4,0xfe,0x3a,0x01,0xd1, +0x69,0x89,0x42,0x48,0x3d,0x87,0x4b,0xcf,0x15,0x18,0x2c,0x29,0x29,0x31,0x49,0x01,0x3a,0x80,0x01,0x04,0x80,0x0e,0x82,0x97,0x4f,0x6b,0x93,0x92,0x79,0x4b,0xa5,0x59,0x84,0xd8,0x73,0xba,0xd5,0x97,0x89,0x6d,0x54,0x9e,0x4e,0x7e,0xed,0x7b,0x02,0xf5,0x38,0x5d,0x38,0x36,0x3b,0x3c,0x29,0x39,0x69,0x00,0x00,0x02,0x00,0x0f,0xff,0xe8, +0x05,0xaa,0x05,0x9a,0x00,0x0e,0x00,0x1a,0x00,0x28,0x40,0x14,0x05,0x7d,0x0e,0x0b,0x14,0x14,0x1c,0x1a,0x7d,0x00,0x0b,0x11,0x91,0x08,0x13,0x17,0x0e,0x91,0x01,0x03,0x00,0x3f,0xed,0x32,0x3f,0xed,0x01,0x2f,0xc6,0xe9,0x12,0x39,0x2f,0x12,0x39,0xe9,0x31,0x30,0x13,0x35,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x34,0x12, +0x37,0x02,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x15,0x0f,0x03,0x07,0x01,0x25,0x01,0x6f,0xfe,0x8c,0xfe,0xc8,0xfe,0xd4,0xfe,0x8c,0x99,0x74,0x5d,0x01,0x11,0xdf,0xe9,0x01,0x13,0xfe,0xfc,0xec,0xe1,0xfe,0xe5,0x05,0x02,0x98,0xfe,0x6d,0xfe,0xcc,0xfe,0xb0,0xfe,0x65,0x01,0x8d,0x01,0x3b,0xe1,0x01,0x2a,0x47,0xfc,0xc1, +0xfe,0xbc,0x01,0x34,0x01,0x09,0x01,0x10,0x01,0x36,0xfe,0xb9,0xfc,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x18,0x05,0xe9,0x00,0x13,0x00,0x1e,0x00,0x2f,0x40,0x18,0x09,0x0c,0x10,0x83,0x19,0x19,0x20,0x0d,0x0c,0x1e,0x83,0x02,0x08,0x05,0x16,0x95,0x13,0x16,0x0d,0x00,0x1b,0x95,0x05,0x10,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39, +0x01,0x2f,0xe9,0xc4,0x32,0x12,0x39,0x2f,0xed,0x12,0x39,0x31,0x30,0x04,0x02,0x35,0x34,0x00,0x33,0x32,0x16,0x17,0x37,0x26,0x00,0x27,0x33,0x04,0x00,0x11,0x14,0x00,0x23,0x00,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x22,0x06,0x15,0x01,0x5c,0xfc,0x01,0x09,0xde,0x33,0x5e,0x1f,0x03,0x4f,0xfe,0xea,0xbc,0xfa,0x01,0x20,0x01,0x25,0xfe, +0xfa,0xd4,0xfe,0xca,0xa9,0x91,0x8a,0xa4,0xfe,0xd6,0x96,0xa8,0x18,0x01,0x1c,0xf6,0xf0,0x01,0x2e,0x1e,0x1d,0x02,0x77,0x01,0x06,0x8d,0xdb,0xfe,0x07,0xfe,0xf1,0xef,0xfe,0xd1,0x01,0x61,0xd7,0xdf,0xad,0x01,0x90,0xdc,0xb8,0x00,0x00,0x01,0x00,0xbc,0xfe,0x29,0x02,0xf4,0x05,0xac,0x00,0x15,0x00,0x2b,0x40,0x16,0x07,0x00,0x00,0x17, +0x0d,0x06,0x09,0x83,0x0b,0x0e,0x02,0xf4,0x12,0x01,0x0c,0x00,0x0a,0x1b,0x06,0xec,0x09,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x32,0x32,0x11,0x39,0x2f,0x33,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x02,0xf4,0x2f,0x57,0x78, +0x92,0x01,0x77,0xfe,0x89,0xa8,0xa8,0x04,0x26,0x9b,0x61,0x23,0x34,0x13,0x04,0xea,0x21,0xd1,0xc8,0xfd,0x25,0x97,0xfe,0x29,0x07,0x71,0xd3,0x6b,0x7a,0x07,0x07,0x00,0x00,0x01,0x00,0xa6,0xfe,0x29,0x02,0xbc,0x04,0x12,0x00,0x14,0x00,0x2b,0x40,0x16,0x07,0x00,0x00,0x16,0x0d,0x06,0x09,0x84,0x0b,0x0e,0x02,0xec,0x12,0x10,0x0c,0x0f, +0x0a,0x1b,0x06,0x95,0x09,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x32,0x32,0x11,0x39,0x2f,0x33,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x02,0xbc,0x2c,0x50,0x6a,0x8c,0x01,0x56,0xfe,0xaa,0xa4,0xa4,0x04,0x25,0x8f,0x58,0x3e,0x24, +0x03,0x5a,0x21,0xc5,0xac,0xfe,0x80,0x8a,0xfe,0x29,0x05,0xd7,0xd3,0x6e,0x77,0x0e,0x00,0x02,0x00,0x5a,0xff,0xe8,0x04,0x49,0x05,0x9a,0x00,0x1a,0x00,0x2b,0x00,0x4d,0x40,0x28,0x07,0x7d,0x18,0x0b,0x7d,0x1d,0x00,0x04,0x15,0x25,0x1d,0x18,0x1d,0x04,0x04,0x1d,0x18,0x03,0x2d,0x28,0x7d,0x01,0x12,0x18,0x07,0x25,0x07,0x02,0x15,0x15, +0x02,0x2b,0x91,0x0f,0x13,0x04,0x00,0x91,0x02,0x03,0x00,0x3f,0xed,0x32,0x3f,0xed,0x11,0x39,0x2f,0x12,0x39,0xcd,0x11,0x33,0x01,0x2f,0xc4,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x39,0x11,0x33,0x10,0xe9,0x10,0xe9,0x31,0x30,0x01,0x21,0x35,0x21,0x15,0x06,0x06,0x15,0x14,0x04,0x16,0x15,0x15,0x06,0x04,0x23,0x22,0x24,0x35, +0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x12,0x36,0x35,0x34,0x26,0x2f,0x02,0x26,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x02,0x82,0xfe,0x27,0x03,0x4b,0x95,0xeb,0x01,0x31,0xa4,0x06,0xfe,0xe8,0xe5,0xdb,0xfe,0xef,0xc0,0xda,0x19,0x17,0x69,0xb6,0xb6,0x55,0x39,0x4b,0x3c,0x0e,0x19,0x0e,0xbe,0x87,0xa9,0x96,0x05,0x04,0x96,0x85, +0x1a,0x90,0x52,0x52,0xce,0xcb,0x81,0x07,0xd0,0xee,0xed,0xc3,0x9d,0xee,0x61,0x21,0x53,0x23,0x46,0x7f,0xfb,0x9f,0xa1,0x8c,0x40,0x76,0x2d,0x3a,0x2d,0x0a,0x14,0x0c,0x5a,0xae,0x76,0x88,0x9b,0x00,0x00,0x02,0x00,0x59,0x00,0x00,0x04,0x48,0x05,0xb2,0x00,0x1d,0x00,0x2d,0x00,0x45,0x40,0x24,0x1b,0x7d,0x07,0x15,0x7d,0x2a,0x00,0x0f, +0x07,0x2a,0x01,0x01,0x2a,0x07,0x03,0x2f,0x20,0x7d,0x04,0x0f,0x27,0x1b,0x07,0x07,0x18,0x18,0x03,0x2d,0x91,0x12,0x04,0x04,0x00,0x91,0x03,0x12,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0x39,0x11,0x33,0xcd,0x01,0x2f,0xc4,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xe9,0x10,0xe9,0x31,0x30,0x25,0x21,0x15,0x21,0x35, +0x36,0x24,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x35,0x36,0x24,0x33,0x32,0x04,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x02,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x02,0x20,0x01,0xd9,0xfc,0xb5,0x7b,0x01,0x05,0x45,0x47,0x46,0x8f,0x74,0x06,0x01,0x17,0xe6,0xdb,0x01,0x11,0xc9,0xd1, +0x19,0x17,0x69,0xb6,0xb6,0x60,0x9a,0x1c,0x0d,0x19,0x0e,0xbe,0x87,0xa9,0x96,0x96,0x96,0x85,0x12,0x93,0x57,0x2a,0x53,0x33,0x32,0x6a,0xb5,0x65,0x0d,0xcf,0xef,0xed,0xc3,0xa1,0xf0,0x5b,0x21,0x53,0x23,0x46,0x7f,0x04,0x61,0xa1,0x8c,0x41,0x85,0x6f,0x15,0x0a,0x14,0x0c,0x5a,0xae,0x76,0x88,0x9b,0x00,0x00,0x02,0x00,0x60,0xfe,0x39, +0x04,0x3f,0x04,0x18,0x00,0x19,0x00,0x27,0x00,0x48,0x40,0x25,0x21,0x14,0x1c,0x17,0x84,0x07,0x11,0x83,0x24,0x00,0x0b,0x07,0x01,0x24,0x07,0x24,0x07,0x24,0x29,0x1c,0x83,0x04,0x0b,0x21,0x96,0x14,0x14,0x02,0x27,0x95,0x0e,0x10,0x04,0x00,0x95,0x02,0x1b,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xc4,0xe9,0x12, +0x39,0x39,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0x10,0xe9,0x10,0xe9,0x11,0x39,0x39,0x31,0x30,0x01,0x21,0x15,0x21,0x35,0x36,0x36,0x35,0x34,0x24,0x26,0x35,0x34,0x24,0x33,0x32,0x04,0x15,0x14,0x02,0x07,0x16,0x16,0x15,0x14,0x06,0x02,0x06,0x15,0x14,0x16,0x1f,0x02,0x36,0x36,0x35,0x34,0x26,0x23,0x02,0x08,0x01,0xc0,0xfc,0xd3,0xd5, +0xb0,0xfe,0xc2,0x82,0x01,0x1a,0xef,0xca,0x01,0x0c,0xd8,0xc6,0x14,0x11,0x6a,0x96,0xbe,0x5c,0x60,0x6a,0x1b,0xa7,0xa7,0xaa,0x8a,0xfe,0xc5,0x8c,0x47,0x61,0x97,0x4e,0x5b,0xd6,0xd0,0x86,0xd5,0xf6,0xef,0xc9,0xb2,0xfe,0xf7,0x5c,0x21,0x41,0x21,0x4d,0x8e,0x04,0xa2,0xa7,0x95,0x68,0x7f,0x4d,0x54,0x18,0x52,0xc8,0x95,0x8c,0xa1,0x00, +0x00,0x01,0x00,0x20,0x00,0x00,0x03,0x08,0x05,0x9a,0x00,0x05,0x00,0x1a,0x40,0x0c,0x02,0x7e,0x03,0x03,0x07,0x05,0x03,0x12,0x05,0x91,0x00,0x03,0x00,0x3f,0xed,0x3f,0x01,0x2f,0x12,0x39,0x2f,0xe9,0x31,0x30,0x13,0x21,0x11,0x23,0x11,0x21,0x20,0x02,0xe8,0xa8,0xfd,0xc0,0x05,0x9a,0xfa,0x66,0x05,0x02,0x00,0x01,0x00,0xa6,0x00,0x00, +0x01,0x4a,0x05,0xec,0x00,0x03,0x00,0x17,0x40,0x0a,0x00,0x84,0x01,0x01,0x04,0x05,0x02,0x00,0x01,0x15,0x00,0x3f,0x3f,0x11,0x12,0x01,0x39,0x2f,0xe9,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x4a,0xa4,0xa4,0x05,0xec,0x00,0x00,0x01,0x00,0xbc,0xfe,0x29,0x05,0xfc,0x05,0xb2,0x00,0x1e,0x00,0x2e,0x40,0x18,0x00,0x7e,0x0d,0x06,0x0d,0x06, +0x20,0x17,0x14,0x7e,0x15,0x19,0x10,0x91,0x1b,0x04,0x17,0x03,0x14,0x1b,0x03,0x91,0x0a,0x13,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0xe9,0x31,0x30,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x10,0x21,0x22,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x33, +0x12,0x21,0x32,0x12,0x11,0x05,0x27,0x34,0x31,0x20,0x36,0x1a,0x18,0x44,0x1f,0x7e,0x84,0xfe,0x9f,0xc1,0xf9,0xa8,0xa8,0x06,0x9d,0x01,0x3f,0xe8,0xf9,0x01,0x21,0x5b,0x48,0x0e,0x0e,0x9e,0x0b,0x09,0x91,0x7f,0x02,0x3d,0x01,0xe5,0xfe,0xe5,0xd4,0xfa,0xfe,0x07,0x71,0xfe,0xfa,0x01,0x1e,0xfe,0xcd,0xfe,0xe3,0x00,0x00,0x01,0x00,0xa6, +0xfe,0x29,0x04,0xb0,0x04,0x18,0x00,0x1e,0x00,0x2e,0x40,0x18,0x00,0x84,0x0d,0x06,0x0d,0x06,0x20,0x18,0x14,0x84,0x15,0x18,0x10,0x95,0x1b,0x10,0x17,0x0f,0x14,0x1b,0x03,0x95,0x0a,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0xe9,0x31,0x30,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x15, +0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0x2c,0x2c,0x16,0x34,0x16,0x17,0x39,0x19,0x73,0x80,0xee,0x7a,0xa2,0xa4,0xa4,0x04,0x74,0xdc,0xa9,0xb1,0x01,0x14,0x5e,0x45,0x0a,0x0e,0x8d,0x0b,0x09,0x8d,0x83,0x01,0x50,0x01,0x46,0xb8,0x8e,0xfb,0xe1, +0x05,0xd7,0xaa,0xc2,0xd8,0xce,0x00,0x01,0x00,0xbc,0xfe,0x29,0x02,0xf4,0x05,0xb2,0x00,0x11,0x00,0x21,0x40,0x10,0x0c,0x0c,0x13,0x04,0x00,0x83,0x01,0x04,0x0e,0xf4,0x08,0x01,0x03,0x00,0x00,0x1b,0x00,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe1,0x32,0x11,0x39,0x2f,0x31,0x30,0x01,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16, +0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x01,0x64,0xa8,0xa8,0x04,0x26,0x9b,0x61,0x23,0x34,0x13,0x2f,0x57,0x78,0x92,0xfe,0x29,0x07,0x71,0xcd,0x6b,0x7a,0x07,0x07,0xb4,0x21,0xd1,0xc8,0x00,0x00,0x01,0x00,0xa6,0xfe,0x29,0x02,0xbc,0x04,0x12,0x00,0x10,0x00,0x21,0x40,0x10,0x00,0x00,0x12,0x0b,0x06,0x84,0x07,0x0a,0x02,0xec,0x0e,0x10, +0x09,0x0f,0x06,0x1b,0x00,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe1,0x32,0x11,0x39,0x2f,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x02,0xbc,0x2c,0x50,0x6a,0x8c,0xa4,0xa4,0x04,0x25,0x8f,0x58,0x3e,0x24,0x03,0x5a,0x21,0xc5,0xac,0xfc,0x1f,0x05,0xd7,0xd3,0x6e,0x77,0x0e,0x00, +0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0xb9,0x05,0x9b,0x00,0x1e,0x00,0x2f,0x40,0x17,0x1d,0x19,0x12,0x08,0x12,0x08,0x20,0x1e,0x0c,0x7d,0x19,0x13,0x12,0x12,0x0f,0x91,0x16,0x13,0x09,0x1d,0x91,0x00,0x03,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x2f,0x33,0x01,0x2f,0xe1,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x31,0x30,0x13,0x33,0x32, +0x37,0x21,0x32,0x17,0x33,0x15,0x21,0x22,0x00,0x15,0x14,0x00,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x20,0x00,0x11,0x34,0x12,0x36,0x37,0x21,0x6b,0xe6,0x64,0x4f,0x01,0xc6,0x32,0x3a,0x83,0xfe,0x88,0xe7,0xfe,0xb4,0x01,0x20,0xe9,0x57,0xa6,0x78,0x50,0xc0,0x6a,0xfe,0xc4,0xfe,0x88,0x84,0xad,0x35,0xfe,0xa7,0x05,0x9a,0x01,0x01, +0x97,0xfe,0xa4,0xeb,0xfa,0xfe,0xbd,0x28,0x38,0xa3,0x2a,0x2a,0x01,0x88,0x01,0x42,0x91,0x01,0x18,0x96,0x12,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x98,0x04,0x00,0x00,0x17,0x00,0x2d,0x40,0x16,0x16,0x13,0x0c,0x02,0x0c,0x02,0x19,0x17,0x06,0x83,0x13,0x0c,0x0c,0x09,0x95,0x10,0x16,0x03,0x16,0x95,0x00,0x0f,0x00,0x3f,0xed,0x32, +0x3f,0xed,0x32,0x2f,0x01,0x2f,0xe9,0xc6,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x31,0x30,0x13,0x21,0x15,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x00,0x35,0x34,0x36,0x37,0x23,0x60,0x03,0x38,0xfe,0xe3,0x9c,0xbf,0xbd,0x93,0x44,0x7f,0x44,0x45,0x82,0x44,0xdd,0xfe,0xe7,0x72,0x5a,0xe2,0x04,0x00, +0x89,0xda,0xaf,0xa1,0xdc,0x2b,0x30,0x9c,0x29,0x1f,0x01,0x16,0xdf,0x95,0xcc,0x39,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xf2,0x05,0x9a,0x00,0x09,0x00,0x25,0x40,0x12,0x08,0x7e,0x01,0x07,0x07,0x0b,0x04,0x7e,0x03,0x02,0x91,0x05,0x05,0x07,0x03,0x03,0x00,0x12,0x00,0x3f,0x3f,0x33,0x39,0x2f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x2f,0x33, +0xe9,0x31,0x30,0x21,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x04,0x4a,0xfc,0x72,0xa8,0x02,0xe6,0xa8,0x02,0x8e,0x03,0x0c,0xfd,0x8b,0x02,0x75,0xfa,0x66,0x00,0x00,0x02,0xff,0xe5,0xfe,0x1e,0x03,0x30,0x05,0xec,0x00,0x22,0x00,0x2c,0x00,0x55,0x40,0x2c,0x00,0x08,0x84,0x12,0x23,0x20,0x12,0x0c,0x04,0x12,0x04,0x12,0x04,0x2e, +0x28,0xef,0x1a,0x07,0x17,0x96,0x04,0x03,0x2b,0x00,0x2b,0x25,0x96,0x1d,0x20,0x1d,0x20,0x2b,0x01,0x2b,0x1d,0x2b,0x1d,0x0f,0x21,0x00,0x0a,0x95,0x0f,0x1c,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x11,0x33,0x10,0xc4,0x32,0xed,0x32,0x01,0x2f,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc6,0x11,0x33,0x33, +0x10,0xe9,0x32,0x31,0x30,0x01,0x36,0x36,0x37,0x15,0x06,0x06,0x07,0x11,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x11,0x07,0x22,0x07,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x11,0x33,0x03,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x02,0x16,0x3c,0x75,0x3c,0x3c,0x75,0x3c,0xac,0x3c,0x32,0x29,0x4d,0x8e, +0xba,0x15,0x0c,0x0d,0x2e,0x8d,0xa4,0x85,0x6a,0x25,0x53,0x26,0xa4,0xa4,0x04,0x8f,0x2a,0x39,0x4d,0x61,0x25,0x03,0x8b,0x1a,0x49,0x34,0xa6,0x2a,0x3f,0x17,0xfc,0x8d,0xdf,0x1a,0x93,0x13,0xc0,0xa1,0x03,0x51,0x02,0x01,0x01,0x81,0x73,0x65,0x7b,0x16,0x22,0x01,0x84,0xfd,0x6a,0xc4,0x30,0x2a,0x3a,0x36,0x00,0x01,0x00,0xbc,0xfe,0x7f, +0x06,0x00,0x05,0x9a,0x00,0x1a,0x00,0x38,0x40,0x1c,0x12,0x0c,0x7e,0x0b,0x0e,0x7f,0x10,0x0b,0x10,0x0b,0x10,0x1c,0x02,0x1a,0x7e,0x00,0x15,0x06,0x01,0x1a,0x10,0x0d,0x91,0x12,0x12,0x0b,0x01,0x03,0x00,0x3f,0x33,0x3f,0xed,0xce,0x33,0x12,0x39,0x39,0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x33,0x31,0x30, +0x33,0x11,0x33,0x01,0x16,0x16,0x17,0x33,0x26,0x26,0x35,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x23,0x01,0x26,0x27,0x23,0x16,0x16,0x15,0x11,0xbc,0xda,0x02,0xce,0x17,0x1c,0x07,0x04,0x05,0x05,0xa8,0xc0,0x9b,0xf3,0xfd,0x1e,0x1b,0x13,0x06,0x04,0x04,0x05,0x9a,0xfb,0x9b,0x23,0x30,0x0d,0x1f,0x68,0x4c,0x03,0xf2,0xfa,0xfe,0xfd,0xe7, +0x01,0x81,0x04,0x77,0x2a,0x30,0x17,0x61,0x4d,0xfb,0xf4,0x00,0x00,0x01,0x00,0xa6,0xfe,0x8b,0x04,0x8f,0x04,0x18,0x00,0x16,0x00,0x35,0x40,0x1b,0x13,0x84,0x01,0x15,0xed,0x16,0x01,0x16,0x01,0x16,0x18,0x0b,0x08,0x84,0x09,0x0c,0x04,0x0f,0x10,0x0a,0x0f,0x08,0x15,0x16,0x13,0x01,0x15,0x00,0x3f,0xcd,0xce,0x3f,0x3f,0x3f,0xcd,0x32, +0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x31,0x30,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x33,0x11,0x23,0x04,0x02,0xae,0xee,0x7a,0xa2,0xa4,0xa4,0x04,0x74,0xdc,0xa9,0xb1,0x97,0x8d,0x02,0x48,0x01,0x46,0xb8,0x8e,0xfd,0xb8,0x04,0x00,0xaa, +0xc2,0xd8,0xce,0xfe,0x19,0xfe,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x00,0x1b,0x00,0x3e,0x40,0x1f,0x15,0x06,0x06,0x1d,0x1a,0x01,0x7d,0x0f,0x0d,0x0c,0x14,0x15,0x15,0x17,0x91,0x12,0x01,0x0c,0x91,0x1a,0x0f,0x0f,0x12,0x04,0x07,0x06,0x06,0x04,0x91,0x09,0x13,0x00,0x3f,0xed,0x32,0x2f,0x33,0x3f,0x39,0x2f, +0x33,0xed,0x32,0x10,0xed,0x32,0x2f,0x33,0x01,0x2f,0xcd,0x33,0xe9,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x21,0x16,0x00,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x00,0x03,0x23,0x35,0x33,0x12,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x07,0x21,0x02,0xa2,0xfe,0x6e,0x10,0x01,0x18,0xde,0xd8,0x9e,0x9f,0xed,0xfe,0xdc,0xfe,0x93, +0x10,0x5f,0x62,0x1d,0x01,0x91,0x01,0x2a,0xcb,0x87,0x9b,0xb9,0xe3,0xfe,0xd6,0x19,0x01,0x90,0x02,0x7d,0xe7,0xfe,0xe9,0x60,0xa3,0x54,0x01,0x6b,0x01,0x2a,0x9b,0x01,0x25,0x01,0x75,0x3b,0xb3,0x56,0xfe,0xe8,0xea,0x00,0x00,0x01,0x00,0x00,0xff,0xe8,0x03,0x62,0x04,0x18,0x00,0x1b,0x00,0x32,0x40,0x19,0x07,0x14,0x14,0x1d,0x0c,0x0f, +0x83,0x01,0x00,0x1a,0x0f,0x1a,0x95,0x0c,0x00,0x00,0x04,0x12,0x95,0x17,0x16,0x09,0x95,0x04,0x10,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xcd,0x33,0xe9,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x11,0x33,0x36,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x33,0x32,0x37,0x15, +0x06,0x23,0x22,0x00,0x27,0x23,0x68,0x1f,0x01,0x15,0xd8,0x85,0x69,0x73,0x81,0x89,0xbc,0x19,0x01,0x36,0xfe,0xc3,0x09,0xbc,0x96,0x85,0x77,0x77,0xa1,0xd5,0xfe,0xf5,0x08,0x60,0x02,0x5c,0xc6,0xf6,0x32,0xa8,0x50,0xac,0x86,0x8b,0xa5,0xba,0x59,0x9c,0x47,0x01,0x0d,0xdc,0x00,0x01,0x00,0x01,0xff,0xe8,0x05,0x1a,0x05,0xb2,0x00,0x1f, +0x00,0x78,0x40,0x2b,0x19,0x19,0x00,0x00,0x0b,0x7e,0x06,0x08,0x06,0x08,0x06,0x21,0x1e,0x01,0x7e,0x13,0x10,0x19,0x19,0x1b,0x91,0x16,0x10,0x01,0x11,0x00,0x00,0x1f,0x08,0x91,0x13,0x1e,0x12,0x1f,0x12,0x11,0x1f,0x16,0x11,0xc0,0x09,0x01,0x09,0xb8,0xff,0xc0,0xb3,0x0f,0x13,0x48,0x09,0xb8,0xff,0xc0,0x40,0x0d,0x0a,0x0d,0x48,0x09, +0x09,0x16,0x04,0x0b,0x06,0x04,0x91,0x0d,0x13,0x00,0x3f,0xed,0x32,0x32,0x3f,0x39,0x2f,0x2b,0x2b,0x5d,0x39,0x12,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0xed,0x11,0x33,0x11,0x12,0x39,0x39,0x10,0xed,0x32,0x2f,0x01,0x2f,0x33,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x32,0x2f,0x32,0x2f,0x31,0x30,0x01,0x01,0x16,0x00,0x33,0x32, +0x37,0x11,0x21,0x35,0x21,0x11,0x06,0x21,0x20,0x00,0x03,0x07,0x35,0x37,0x12,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x07,0x01,0x05,0x1a,0xfb,0xf6,0x13,0x01,0x19,0xe5,0xa9,0x7a,0xfe,0xc6,0x01,0xe2,0xd9,0xfe,0xf9,0xfe,0xe7,0xfe,0x92,0x20,0x64,0x5d,0x0b,0x01,0xa2,0x01,0x3b,0xeb,0x9e,0xaf,0xed,0xe2,0xfe,0xd5,0x14,0x04, +0x08,0x03,0xe0,0xfe,0x9c,0xed,0xfe,0xf0,0x43,0x01,0x92,0x98,0xfd,0x76,0x7a,0x01,0x4c,0x01,0x0d,0x22,0x9a,0x20,0x01,0x41,0x01,0x98,0x4c,0xba,0x6e,0xfe,0xdc,0xe0,0x01,0x64,0x00,0x03,0x00,0x00,0xfe,0x1e,0x04,0x81,0x04,0x18,0x00,0x21,0x00,0x29,0x00,0x31,0x00,0x60,0x40,0x34,0x22,0x2a,0x84,0x0d,0x0b,0x00,0x0e,0x1b,0x1b,0x19, +0x1d,0x84,0x2b,0x29,0x16,0x04,0x00,0x02,0x95,0x1f,0x1b,0x17,0x0f,0x15,0x2e,0x95,0x1c,0x29,0x22,0x0b,0x04,0x0c,0x1b,0x1b,0x19,0x2a,0x0e,0x03,0x0d,0x1a,0x0d,0x0c,0x1a,0x0c,0x08,0x13,0x10,0x05,0x25,0x95,0x08,0x16,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0xed,0x32,0x3f, +0x3f,0xed,0x32,0x01,0x2f,0x33,0x33,0x33,0xf9,0x32,0xc2,0x2f,0x2f,0xc4,0x33,0xcd,0xe9,0x32,0x31,0x30,0x17,0x16,0x33,0x20,0x11,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x07,0x35,0x37,0x26,0x35,0x10,0x12,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x37,0x15,0x07,0x11,0x10,0x21,0x22,0x27,0x13,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x05,0x25, +0x26,0x26,0x23,0x22,0x06,0x15,0xa8,0xac,0x9e,0x01,0x7a,0x04,0x75,0xeb,0x96,0xd0,0x29,0x79,0x62,0x02,0xfa,0xdb,0xcf,0x64,0x04,0xa4,0x71,0x71,0xfd,0xe4,0xbe,0x8e,0x72,0x1e,0x91,0x6c,0x8a,0xad,0xfd,0x9c,0x02,0x5c,0x16,0x97,0x6b,0x99,0xab,0xf6,0x60,0x01,0x92,0x70,0xc4,0xa8,0x8e,0x29,0x8e,0x21,0x0e,0x1e,0x01,0x14,0x01,0x34, +0xa6,0x8e,0xfe,0xe9,0x27,0x8e,0x27,0xfd,0xf7,0xfd,0xcc,0x48,0x02,0xf0,0x67,0x7d,0xc4,0x99,0x53,0x45,0xd1,0x5c,0x84,0xdf,0xc5,0x00,0x00,0x02,0x00,0x12,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x17,0x00,0x1d,0x00,0x57,0x40,0x2f,0x0b,0x10,0x0d,0x09,0x0a,0x0a,0x11,0x10,0x10,0x1f,0x13,0x04,0x19,0x7e,0x17,0x01,0x15,0x0f,0x12,0x13, +0x16,0x04,0x17,0x0e,0x0e,0x0c,0x1a,0x19,0x01,0x04,0x00,0x0d,0x00,0x17,0x17,0x18,0x0b,0x04,0x0d,0x05,0x02,0x11,0x15,0x12,0x09,0x02,0x03,0x00,0x3f,0x33,0x3f,0x33,0x12,0x17,0x39,0x11,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0x01,0x2f,0x33,0xc6,0xed,0x32,0x32,0x11,0x33,0x2f,0x33,0x33,0x2f,0x33,0x33,0x11,0x39,0x31, +0x30,0x13,0x37,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x17,0x25,0x15,0x05,0x01,0x23,0x01,0x07,0x11,0x23,0x11,0x07,0x01,0x15,0x37,0x27,0x26,0x27,0x12,0xaa,0xa8,0x04,0x07,0x13,0x0c,0x02,0x18,0xd1,0xfd,0x99,0x81,0x01,0xfb,0xfe,0x6a,0x01,0xac,0xea,0xfe,0x97,0xeb,0xa8,0xaa,0x01,0x52,0x89,0x5f,0x1e,0x08,0x01,0x7c, +0x3a,0x03,0xe4,0xfd,0x5e,0x0b,0x18,0x0e,0x02,0x71,0xfd,0x50,0x93,0xaf,0x96,0x8c,0xfe,0x1c,0x01,0xab,0x51,0xfe,0xa6,0x01,0x20,0x3a,0x01,0xdc,0xd2,0x2f,0x71,0x24,0x0e,0x00,0x00,0x02,0x00,0x26,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x14,0x00,0x18,0x00,0x54,0x40,0x2e,0x12,0x11,0x15,0x0e,0x06,0x84,0x0b,0x09,0x07,0x14,0x10,0x11, +0x11,0x03,0x02,0x01,0x04,0x05,0x08,0x04,0x09,0x00,0x00,0x13,0x16,0x15,0x0b,0x04,0x0a,0x14,0x0a,0x09,0x09,0x17,0x12,0x0e,0x14,0x05,0x07,0x10,0x0f,0x0c,0x00,0x03,0x07,0x15,0x00,0x3f,0x33,0x3f,0x3f,0x12,0x17,0x39,0x11,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0x01,0x2f,0x33,0x33,0x2f,0x33,0x33,0x2f,0xce,0x33,0xe9, +0x32,0x32,0x11,0x39,0x31,0x30,0x01,0x05,0x01,0x23,0x01,0x07,0x15,0x23,0x35,0x07,0x35,0x37,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x17,0x25,0x05,0x37,0x27,0x23,0x03,0xea,0xfe,0xc2,0x01,0x4c,0xe6,0xfe,0xf7,0xbf,0xa4,0x80,0x80,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0x4d,0x01,0xa5,0xfd,0x60,0x5c,0x58,0x04,0x01,0xc5,0x6d,0xfe,0xa8, +0x01,0x20,0x42,0xde,0xa6,0x2c,0x8e,0x2c,0x04,0xb8,0xfc,0x3f,0x01,0xd5,0xfe,0x12,0x50,0x91,0xe7,0x20,0x60,0x00,0x00,0x03,0x00,0x12,0x00,0x00,0x05,0xea,0x05,0x9a,0x00,0x13,0x00,0x1c,0x00,0x26,0x00,0x58,0x40,0x31,0x0c,0x08,0x0a,0x0a,0x08,0x7e,0x25,0x07,0x07,0x28,0x18,0x04,0x11,0x7e,0x02,0x00,0x12,0x0c,0x25,0x26,0x0f,0x10, +0x13,0x06,0x00,0x0b,0x0b,0x06,0x09,0x01,0x0a,0x01,0x00,0x20,0x00,0x02,0x18,0x19,0x05,0x0a,0x14,0x08,0x03,0x0e,0x12,0x12,0x07,0x03,0x03,0x00,0x3f,0x33,0x3f,0x33,0x12,0x17,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x33,0x11,0x12,0x17,0x39,0x01,0x2f,0xce,0x33,0xe9,0x32,0x32,0x12,0x39,0x2f,0x33,0xf9,0xca,0x2f,0x11,0x33,0x31,0x30, +0x13,0x35,0x37,0x11,0x33,0x01,0x25,0x11,0x33,0x11,0x37,0x15,0x07,0x11,0x23,0x01,0x05,0x11,0x23,0x11,0x13,0x16,0x16,0x15,0x11,0x25,0x03,0x26,0x27,0x01,0x16,0x16,0x17,0x33,0x26,0x26,0x35,0x11,0x05,0x12,0xaa,0xda,0x01,0x90,0x01,0x72,0xa8,0xaa,0xaa,0xce,0xfe,0x6a,0xfe,0x88,0xa8,0xa0,0x04,0x04,0x01,0x26,0xfa,0x1b,0x13,0x03, +0x02,0x17,0x1c,0x07,0x04,0x05,0x05,0xfe,0xde,0x01,0x82,0x9a,0x3a,0x03,0x44,0xfd,0x8e,0x7e,0x01,0xf4,0xfe,0x45,0x3a,0x9a,0x3a,0xfc,0xbb,0x02,0x75,0x80,0xfe,0x0b,0x01,0xbc,0x03,0x15,0x17,0x61,0x4d,0xfe,0x83,0x64,0x01,0x84,0x2a,0x30,0xfc,0x64,0x23,0x30,0x0d,0x1f,0x68,0x4c,0x01,0x64,0x63,0x00,0x00,0x02,0x00,0x19,0x00,0x00, +0x04,0x86,0x04,0x18,0x00,0x15,0x00,0x1c,0x00,0x55,0x40,0x2e,0x17,0x0d,0x06,0x84,0x0b,0x09,0x07,0x14,0x02,0x00,0x00,0x02,0x84,0x18,0x03,0x0f,0x1a,0x95,0x01,0x04,0x05,0x03,0x09,0x00,0x00,0x14,0x18,0x17,0x0b,0x04,0x0a,0x15,0x0a,0x09,0x09,0x08,0x15,0x03,0x06,0x11,0x10,0x0d,0x0f,0x03,0x06,0x15,0x00,0x3f,0x33,0x3f,0x3f,0x12, +0x17,0x39,0x11,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0xed,0x32,0x01,0x2f,0x33,0xf9,0xca,0x2f,0x11,0x33,0x2f,0xce,0x33,0xe9,0x32,0x32,0x31,0x30,0x01,0x07,0x11,0x23,0x11,0x05,0x11,0x23,0x11,0x07,0x35,0x37,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x17,0x37,0x05,0x15,0x25,0x26,0x23,0x22,0x06,0x04,0x86,0x8e,0xa4, +0xfd,0xf6,0xa4,0x8d,0x8d,0xa4,0x04,0x74,0xdc,0x93,0xad,0x14,0x94,0xfc,0xc4,0x02,0x05,0x1d,0xcc,0x7a,0xa2,0x02,0x78,0x30,0xfd,0xb8,0x02,0x10,0xb4,0xfe,0xa4,0x01,0x23,0x30,0x8e,0x30,0x02,0x4f,0xaa,0xc2,0xa6,0x9e,0x32,0xbe,0x5e,0xb2,0xf2,0xb8,0x00,0x03,0x00,0x12,0x00,0x00,0x04,0xc0,0x05,0x9a,0x00,0x1d,0x00,0x24,0x00,0x2a, +0x00,0x65,0x40,0x35,0x0f,0x22,0x1c,0x15,0x14,0x09,0x09,0x14,0x14,0x2c,0x07,0x0c,0x27,0x23,0x26,0x1e,0x1b,0x7e,0x02,0x00,0x1c,0x0a,0x23,0x24,0x1d,0x04,0x00,0x09,0x09,0x07,0x27,0x26,0x02,0x04,0x01,0x08,0x01,0x00,0x0f,0x1e,0x91,0x08,0x00,0x1a,0x1a,0x03,0x15,0x1b,0x12,0x25,0x91,0x03,0x03,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39, +0x2f,0x39,0x39,0xed,0x39,0x11,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0x01,0x2f,0xc6,0x33,0xe9,0x32,0x32,0x2f,0x33,0xc1,0x32,0x11,0x33,0x2f,0x33,0x2f,0x11,0x33,0x12,0x39,0x39,0x31,0x30,0x13,0x35,0x37,0x11,0x21,0x32,0x16,0x17,0x37,0x15,0x07,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x17,0x01,0x23,0x03,0x26,0x26, +0x23,0x23,0x11,0x23,0x11,0x17,0x33,0x32,0x36,0x35,0x35,0x05,0x11,0x11,0x25,0x26,0x26,0x23,0x12,0xaa,0x01,0xac,0x84,0xcd,0x35,0xbc,0x91,0x03,0xa7,0x97,0x2f,0x4d,0x59,0x01,0x0d,0xc8,0xf0,0x47,0x7b,0x58,0x8a,0xa8,0xa8,0xe4,0x81,0xa3,0xfd,0xf8,0x01,0xdb,0x23,0x7b,0x57,0x02,0xf4,0x9a,0x3a,0x01,0xd2,0x5d,0x5f,0x40,0x9a,0x31, +0x1b,0x1c,0x90,0xcb,0x27,0x04,0x15,0x44,0x8e,0xfe,0x51,0x01,0x92,0x79,0x57,0xfd,0x9e,0x03,0x2e,0x34,0x97,0x7d,0x0a,0xb1,0x01,0x9b,0xfe,0xff,0xa1,0x2f,0x31,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0xbc,0x04,0x12,0x00,0x17,0x00,0x48,0x40,0x23,0x17,0x11,0x11,0x19,0x16,0x09,0x02,0x84,0x07,0x05,0x03,0x11,0x11,0x0b,0x13,0x0e, +0x10,0x04,0x01,0x05,0x00,0x00,0x07,0x16,0x06,0x17,0x06,0x05,0x17,0x05,0x03,0x08,0x0f,0x03,0x15,0x00,0x3f,0x3f,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0x3f,0xcd,0x32,0x32,0x2f,0x01,0x2f,0xc6,0x33,0xe9,0x32,0x32,0x11,0x39,0x2f,0x33,0x31,0x30,0x01,0x05,0x11,0x23,0x11,0x07,0x35,0x37,0x11,0x33, +0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x25,0x02,0xa4,0xfe,0xa6,0xa4,0x83,0x83,0xa4,0x04,0x25,0x8f,0x58,0x3e,0x24,0x2c,0x50,0x69,0x8d,0x01,0x5a,0x02,0x20,0xa1,0xfe,0x81,0x01,0x33,0x3c,0x92,0x3c,0x02,0x3b,0xd3,0x6e,0x77,0x0e,0xaa,0x21,0xc5,0xa5,0xa1,0x00,0x00,0x01,0x00,0x45,0xff,0xe8,0x04,0x06, +0x05,0xb2,0x00,0x2a,0x00,0x5b,0x40,0x31,0x0f,0x7d,0x00,0x04,0x15,0x15,0x19,0x7d,0x26,0x04,0x26,0x0a,0x0a,0x26,0x04,0x03,0x2c,0x20,0x1f,0x20,0x29,0x16,0x2a,0x15,0x15,0x01,0x13,0x00,0x14,0x00,0x2a,0x26,0x19,0x2a,0x14,0x04,0x0f,0x06,0x07,0x23,0x91,0x1c,0x13,0x09,0x0a,0x0c,0x91,0x07,0x04,0x00,0x3f,0xed,0xcd,0x32,0x3f,0xed, +0x12,0x17,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0xc4,0x32,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xf9,0xc2,0x2f,0x10,0xc6,0xe9,0x31,0x30,0x13,0x25,0x26,0x26,0x35,0x34,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x17,0x25,0x15,0x05,0x16,0x16,0x15,0x14,0x04,0x23,0x22,0x26, +0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x05,0x45,0x01,0x2b,0x86,0x6f,0x01,0x1b,0xd7,0xd3,0x62,0x7f,0xc7,0x8a,0xa7,0x54,0x8e,0x3f,0x01,0xba,0xfe,0xf0,0x7b,0x6d,0xfe,0xf2,0xf0,0x52,0xe2,0x33,0x40,0xe2,0x5f,0x9c,0x98,0x62,0xaf,0xfe,0x28,0x02,0x6f,0x66,0x4d,0xa4,0x6d,0xae,0xd1,0x33,0xbd,0x58,0x74,0x64,0x4d, +0x68,0x4d,0x1f,0x97,0x96,0x5d,0x4f,0xa8,0x64,0xba,0xc8,0x2f,0x23,0xc6,0x39,0x48,0x72,0x6d,0x4a,0x79,0x59,0xa1,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x2b,0x04,0x18,0x00,0x27,0x00,0x63,0x40,0x35,0x26,0x01,0x04,0x22,0x83,0x13,0x17,0x04,0x83,0x0e,0x27,0x1d,0x14,0x11,0x0e,0x17,0x0e,0x1d,0x1d,0x0e,0x17,0x03,0x29,0x09,0x1d,0x1f, +0x95,0x11,0x01,0x12,0x00,0x00,0x14,0x26,0x13,0x27,0x13,0x12,0x0e,0x04,0x12,0x27,0x17,0x22,0x06,0x07,0x1a,0x10,0x0a,0x0c,0x95,0x07,0x16,0x00,0x3f,0xfd,0xc6,0x3f,0x12,0x17,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0xfd,0xc6,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x39,0x10,0xc6,0x10,0xe9,0x10, +0xc6,0xe9,0x11,0x39,0x39,0x31,0x30,0x01,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x05,0x35,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x25,0x03,0x2b,0x9e,0x3f,0x43,0xe2,0xb3,0x9f,0x73,0x85,0xa2,0xd8,0x41,0x68,0xfe,0xa2,0xa7, +0x53,0x4a,0xe2,0xa6,0x86,0x68,0x71,0x93,0x5b,0x6f,0x41,0x39,0x51,0x01,0x4e,0x02,0x2a,0x37,0x27,0x6a,0x50,0x89,0xa1,0x3d,0xb0,0x63,0x90,0x33,0x4d,0x2a,0x78,0x8e,0x39,0x2d,0x74,0x54,0x84,0xa4,0x2e,0xa6,0x4a,0x50,0x40,0x3b,0x45,0x18,0x21,0x73,0x00,0x01,0xff,0xac,0x00,0x00,0x05,0x44,0x05,0x9a,0x00,0x17,0x00,0x39,0x40,0x1e, +0x17,0x7e,0x14,0x00,0x00,0x04,0x19,0x09,0x7e,0x0e,0x13,0x03,0x7e,0x04,0x15,0x03,0x02,0x91,0x13,0x0b,0x0b,0x04,0x06,0x91,0x11,0x03,0x04,0x12,0x00,0x12,0x00,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x2f,0xed,0x3f,0x01,0x2f,0xed,0x32,0xd4,0xe9,0x11,0x12,0x39,0x2f,0x33,0xe9,0x31,0x30,0x21,0x11,0x21,0x11,0x23,0x11,0x23,0x22,0x06, +0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x33,0x11,0x21,0x11,0x33,0x11,0x04,0x9c,0xfd,0x1a,0xa8,0x18,0x51,0x59,0x14,0x9e,0x16,0xc8,0x9a,0xa8,0x02,0xe6,0xa8,0x02,0x8e,0xfd,0x72,0x05,0x02,0x5c,0x4e,0x36,0x34,0x36,0x44,0x88,0xaa,0xfd,0x8b,0x02,0x75,0xfa,0x66,0x00,0x02,0x00,0x19,0x02,0x9a,0x03,0x4b,0x05,0x9a,0x00,0x13, +0x00,0x17,0x00,0x5d,0xb3,0x0a,0x0a,0x08,0x0c,0xb8,0x01,0x0c,0xb7,0x14,0x05,0x0d,0x0d,0x19,0x17,0x04,0x10,0xb8,0x01,0x0c,0xb3,0x13,0x01,0x11,0x0f,0xb8,0x01,0x0e,0x40,0x0a,0x30,0x17,0x40,0x17,0x02,0x17,0x17,0x00,0x0d,0x11,0xb8,0x01,0x0a,0xb2,0x16,0x0b,0x13,0xb8,0x01,0x0e,0xb4,0x08,0x04,0x00,0x06,0x02,0xb8,0x01,0x06,0x00, +0x3f,0x33,0xde,0x32,0x32,0xed,0x32,0x32,0x3f,0x33,0x12,0x39,0x2f,0x5d,0xed,0x01,0x2f,0x33,0xce,0xe1,0x32,0x32,0x12,0x39,0x2f,0x33,0x33,0xf1,0x32,0xca,0x2f,0x31,0x30,0x13,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x05,0x35,0x21,0x15,0x19,0x62,0x83,0x01,0x68,0x84,0x61, +0x61,0x84,0xfe,0x98,0x83,0x62,0x02,0x4d,0xfe,0x98,0x05,0x2b,0x6f,0x6f,0x6f,0x6f,0x70,0xfd,0xdf,0x01,0x4e,0xfe,0xb2,0x02,0x21,0x63,0x63,0x63,0x00,0x03,0x00,0x3e,0x02,0x89,0x03,0xf6,0x04,0xcf,0x00,0x1f,0x00,0x2b,0x00,0x30,0x00,0x7a,0xb3,0x15,0x02,0x30,0x0b,0xb8,0x01,0x0c,0xb2,0x22,0x0f,0x0a,0xb8,0x01,0x0c,0xb6,0x2c,0x22, +0x2c,0x22,0x2c,0x32,0x28,0xb8,0x01,0x0c,0xb2,0x1c,0x02,0x25,0xbb,0x01,0x0d,0x00,0x1f,0x00,0x0b,0x01,0x0d,0x40,0x0e,0x0c,0x30,0x1c,0x30,0x2c,0x30,0x03,0x30,0x0f,0x30,0x0f,0x1f,0x0d,0x2e,0x41,0x0d,0x01,0x0d,0x00,0x06,0x00,0x1f,0x01,0x09,0x00,0x15,0x00,0x2b,0x01,0x0d,0x00,0x19,0x00,0x0d,0x01,0x0d,0x00,0x12,0x00,0x19,0x01, +0x0b,0x00,0x3f,0xd4,0xed,0x10,0xed,0x32,0x3f,0xd4,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xfd,0xc6,0x10,0xed,0x32,0x39,0x39,0x31,0x30,0x00,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x27,0x23,0x06, +0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x12,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x25,0x26,0x23,0x22,0x07,0x01,0x9f,0x71,0x2b,0x04,0x23,0x6a,0x37,0x71,0x82,0xfe,0x87,0x0b,0x99,0x5b,0x4f,0x48,0x78,0x3b,0x6c,0x29,0x04,0x26,0x71,0x48,0x7f,0x9b,0xa0,0x86,0x43,0x57,0x57,0x49,0x49,0x57,0x58,0x48,0x02,0x1d, +0x02,0x78,0x78,0x0c,0x04,0xcf,0x2c,0x3c,0x36,0x32,0x92,0x7b,0x43,0x8f,0x35,0x6f,0x2d,0x2a,0x3c,0x30,0x36,0x9d,0x80,0x85,0xa4,0xfe,0x25,0x61,0x57,0x58,0x60,0x61,0x57,0x57,0x61,0xee,0x8a,0x8a,0x00,0x01,0x00,0x90,0xff,0xe8,0x06,0x3e,0x04,0x00,0x00,0x1f,0x00,0x3b,0x40,0x1f,0x1b,0x0b,0x84,0x08,0x08,0x1f,0x14,0x12,0x84,0x11, +0x11,0x21,0x02,0x84,0x1f,0x1b,0x05,0x95,0x1d,0x16,0x15,0x0d,0x95,0x18,0x16,0x14,0x15,0x11,0x01,0x09,0x0f,0x00,0x3f,0x33,0x33,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xed,0x33,0x12,0x39,0x2f,0xe9,0x33,0x31,0x30,0x13,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35, +0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x20,0x11,0x90,0xa4,0x67,0x7e,0x68,0x94,0xa4,0xe9,0x6c,0x8c,0xa4,0xa4,0x04,0x6e,0xd0,0x6b,0x9a,0x1d,0x72,0xe2,0xfe,0xae,0x04,0x00,0xfd,0xb4,0xa8,0x9a,0xc1,0x85,0x02,0x48,0xfd,0xa0,0xfe,0xd2,0xb4,0x92,0x02,0x48,0xfc,0x00,0xa2,0xba,0x75,0x5f,0xd4,0x01,0xa1, +0x00,0x01,0x00,0x54,0x00,0x00,0x03,0x2c,0x05,0x9a,0x00,0x09,0x00,0x29,0x40,0x14,0x02,0x7e,0x03,0x06,0x03,0x06,0x03,0x0b,0x09,0x04,0x91,0x07,0x07,0x00,0x03,0x12,0x08,0x91,0x00,0x03,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x13,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11, +0x21,0x54,0x02,0xd8,0xa8,0xfd,0xfa,0x02,0x06,0xfd,0xd0,0x05,0x9a,0xfa,0x66,0x02,0x7b,0x97,0x01,0xf0,0x00,0x02,0x00,0x52,0x00,0x00,0x03,0xbf,0x05,0x9a,0x00,0x0a,0x00,0x12,0x00,0x28,0x40,0x14,0x11,0x08,0x7e,0x09,0x09,0x14,0x0d,0x7d,0x03,0x0a,0x91,0x11,0x11,0x06,0x09,0x12,0x12,0x91,0x06,0x03,0x00,0x3f,0xed,0x3f,0x12,0x39, +0x2f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x33,0x31,0x30,0x01,0x22,0x00,0x35,0x34,0x36,0x33,0x21,0x11,0x23,0x11,0x03,0x20,0x11,0x14,0x16,0x33,0x33,0x11,0x02,0x5a,0xf0,0xfe,0xe8,0xff,0xe4,0x01,0x8a,0xa8,0xc5,0xfe,0xb0,0xb6,0xaf,0xb0,0x02,0x1e,0x01,0x05,0xcb,0xcd,0xdf,0xfa,0x66,0x02,0x1e,0x02,0xe4,0xfe,0xe4,0x92,0x9e, +0x02,0x4c,0x00,0x01,0x00,0xbd,0x00,0x00,0x06,0x73,0x05,0x9a,0x00,0x1e,0x00,0x30,0x40,0x18,0x15,0x13,0x7e,0x05,0x00,0x0d,0x12,0x12,0x20,0x1d,0x01,0x7e,0x00,0x0d,0x06,0x18,0x03,0x15,0x1d,0x12,0x12,0x09,0x00,0x03,0x00,0x3f,0x32,0x32,0x3f,0x33,0x17,0x39,0x01,0x2f,0xe9,0x32,0x12,0x39,0x2f,0x39,0x12,0x39,0xe9,0x33,0x31,0x30, +0x13,0x33,0x11,0x14,0x06,0x07,0x33,0x36,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x26,0x26,0x35,0x11,0x33,0x11,0x23,0x01,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x23,0xbd,0xa7,0x07,0x07,0x04,0x18,0x13,0x01,0xea,0x52,0x01,0xe9,0x14,0x17,0x04,0x04,0x04,0xa2,0xde,0xfe,0x48,0x33,0x0f,0x06,0x16,0x22,0x0d,0xfe,0x3f,0xd2,0x05,0x9a,0xfc, +0x3e,0x39,0x8b,0x53,0x63,0x28,0x04,0x4e,0xfb,0xba,0x2e,0x65,0x2b,0x8b,0x63,0x03,0xc0,0xfa,0x66,0x03,0xe8,0x74,0x38,0x3c,0x57,0x1d,0xfc,0x1c,0x00,0x01,0x00,0xbc,0xfe,0x29,0x01,0x64,0x05,0x9a,0x00,0x03,0x00,0x17,0x40,0x0a,0x00,0x7e,0x01,0x01,0x04,0x05,0x02,0x03,0x01,0x1b,0x00,0x3f,0x3f,0x11,0x12,0x01,0x39,0x2f,0xe9,0x31, +0x30,0x01,0x23,0x11,0x33,0x01,0x64,0xa8,0xa8,0xfe,0x29,0x07,0x71,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x09,0x12,0x05,0x9a,0x00,0x27,0x00,0x48,0x40,0x25,0x0c,0x0b,0x04,0x00,0x0f,0x15,0x14,0x24,0x1f,0x1e,0x18,0x18,0x24,0x0f,0x04,0x04,0x0a,0x1d,0x1d,0x29,0x27,0x10,0x0a,0x0f,0x18,0x04,0x23,0x04,0x09,0x1c,0x14,0x0b,0x03,0x1f, +0x00,0x09,0x12,0x00,0x3f,0x33,0x33,0x3f,0x33,0x33,0x12,0x17,0x39,0x01,0x2f,0x2f,0x33,0x11,0x33,0x2f,0x12,0x17,0x39,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x11,0x33,0x33,0x31,0x30,0x21,0x01,0x27,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37, +0x01,0x33,0x01,0x23,0x01,0x26,0x26,0x27,0x23,0x06,0x07,0x01,0x03,0x70,0xfe,0xcc,0x13,0x0a,0x03,0x04,0x03,0x12,0x0a,0xfe,0xd7,0xb6,0x01,0xb2,0xb9,0x01,0x31,0x13,0x05,0x05,0x02,0x10,0x0d,0x01,0x3d,0xa1,0x01,0x30,0x10,0x08,0x04,0x04,0x17,0x01,0x25,0xb6,0xfe,0x6b,0xc5,0xfe,0xd9,0x0a,0x0b,0x02,0x04,0x06,0x14,0xfe,0xd7,0x04, +0x1a,0x46,0x23,0x25,0x25,0x46,0x23,0xfb,0xe6,0x05,0x9a,0xfb,0xb4,0x45,0x4b,0x1a,0x48,0x2e,0x04,0x4c,0xfb,0xac,0x39,0x4d,0x34,0x56,0x04,0x50,0xfa,0x66,0x04,0x18,0x22,0x48,0x28,0x47,0x49,0xfb,0xe6,0x00,0xff,0xff,0x00,0x50,0x00,0x00,0x06,0xd7,0x05,0xb0,0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00, +0x01,0x07,0x02,0x3a,0x04,0x37,0xfd,0xb9,0x00,0x07,0xb2,0x02,0x11,0x2c,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x50,0xff,0xeb,0x06,0xd4,0x05,0xb0,0x00,0x27,0x0c,0xea,0x04,0x2e,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x06,0x00,0xf0,0x00,0x00,0x00,0x09,0xb3,0x01,0x00,0x1f,0x2d,0x00,0x3f,0x35,0x35,0x00,0xff,0xff, +0x00,0x4a,0xff,0xec,0x09,0x19,0x05,0xb0,0x00,0x26,0x00,0xf0,0xfa,0x00,0x00,0x27,0x00,0xf0,0x04,0x00,0xfd,0xb9,0x00,0x27,0x0c,0xe1,0x06,0x74,0x00,0x00,0x01,0x07,0x00,0xbc,0x02,0xbf,0x00,0x00,0x00,0x0e,0xb6,0x03,0x02,0x1a,0x2d,0x01,0x0d,0x2c,0x00,0x3f,0x35,0x3f,0x35,0x35,0xff,0xff,0x00,0x50,0xff,0xec,0x06,0xa3,0x05,0xb0, +0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x02,0x39,0x04,0x19,0xfd,0xb9,0x01,0x07,0x00,0xbc,0x02,0xbf,0x00,0x00,0x00,0x07,0xb2,0x01,0x30,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x8d,0xff,0xec,0x06,0xe5,0x05,0xae,0x00,0x26,0x00,0xf1,0x25,0x00,0x00,0x27,0x00,0xbc,0x03,0x01,0x00,0x00,0x01,0x07,0x02,0x39,0x04,0x5b,0xfd,0xb9, +0x00,0x07,0xb2,0x02,0x47,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x81,0xff,0xec,0x06,0xe5,0x05,0xae,0x00,0x26,0x00,0xf2,0x00,0x00,0x00,0x27,0x00,0xbc,0x03,0x01,0x00,0x00,0x01,0x07,0x02,0x39,0x04,0x5b,0xfd,0xb9,0x00,0x07,0xb2,0x02,0x48,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x2f,0xff,0xec,0x06,0xa3,0x05,0x9a,0x00,0x26, +0x02,0x38,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x07,0x02,0x39,0x04,0x19,0xfd,0xb9,0x00,0x07,0xb2,0x03,0x39,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x50,0xff,0xec,0x06,0xb3,0x05,0xb0,0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x07,0x0c,0xe7,0x04,0x0d,0x00,0x00,0x00,0x09, +0xb3,0x03,0x02,0x2b,0x2d,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x7b,0xff,0xec,0x06,0xed,0x05,0x9e,0x00,0x26,0x02,0x39,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xf9,0x00,0x00,0x01,0x07,0x0c,0xe7,0x04,0x47,0x00,0x00,0x00,0x09,0xb3,0x03,0x02,0x43,0x2d,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x50,0x00,0x00,0x05,0x71,0x05,0xb0, +0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x07,0x00,0xbc,0x02,0xbf,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x06,0x00,0x2f,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x02,0x06,0x00,0x26,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x3e,0x05,0x9a,0x02,0x06,0x00,0x27,0x00,0x00,0xff,0xff, +0x00,0xbc,0x00,0x00,0x06,0x72,0x05,0x9a,0x02,0x06,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x05,0x12,0x05,0xd9,0x00,0x26,0x00,0x5b,0x00,0x00,0x00,0x07,0x00,0x4c,0x03,0xac,0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x02,0x05,0xd9,0x00,0x26,0x00,0x5b,0x00,0x00,0x00,0x27,0x00,0x4c,0x03,0xac,0x00,0x00,0x00,0x07, +0x00,0x4c,0x05,0x9c,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x01,0x4a,0x05,0xec,0x02,0x06,0x00,0x4f,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x02,0x06,0x00,0x46,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x10,0x05,0xec,0x02,0x06,0x00,0x47,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x06,0x54,0x04,0x18, +0x02,0x06,0x00,0x50,0x00,0x00,0x00,0x03,0x00,0x5e,0x00,0x00,0x07,0xde,0x05,0x9a,0x00,0x0f,0x00,0x19,0x00,0x23,0x00,0x2d,0x40,0x17,0x11,0x7e,0x22,0x22,0x05,0x0a,0x7d,0x17,0x17,0x25,0x1c,0x7d,0x05,0x10,0x23,0x91,0x07,0x03,0x11,0x22,0x91,0x00,0x12,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x12, +0x39,0x2f,0xe9,0x31,0x30,0x21,0x22,0x24,0x26,0x02,0x35,0x10,0x21,0x21,0x20,0x11,0x14,0x02,0x06,0x04,0x23,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x10,0x21,0x21,0x20,0x11,0x14,0x1e,0x02,0x33,0x33,0x11,0x03,0x64,0xaa,0xfe,0xe4,0xce,0x72,0x02,0xf6,0x01,0x94,0x02,0xf6,0x72,0xce,0xfe,0xe4,0xaa,0x66,0x68,0x8b,0xdd,0x9a,0x52,0xfd, +0xb6,0xfe,0x74,0xfd,0xb6,0x52,0x9a,0xdd,0x8b,0x68,0x65,0xbf,0x01,0x10,0xab,0x02,0xbb,0xfd,0x45,0xab,0xfe,0xf0,0xbf,0x65,0x05,0x02,0xfb,0x96,0x4c,0x93,0xd8,0x8c,0x02,0x27,0xfd,0xd9,0x8c,0xd8,0x93,0x4c,0x04,0x6a,0x00,0x03,0x00,0xbc,0x00,0x00,0x05,0x3e,0x05,0x9a,0x00,0x09,0x00,0x20,0x00,0x2b,0x00,0x41,0x40,0x22,0x11,0x7e, +0x24,0x24,0x00,0x04,0x7d,0x1e,0x1e,0x2d,0x2b,0x0b,0x18,0x7e,0x00,0x2a,0x92,0x0b,0x2b,0x92,0x17,0x0b,0x17,0x0b,0x17,0x00,0x0a,0x91,0x01,0x03,0x18,0x91,0x00,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xe9,0x32,0x32,0x12,0x39,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x31,0x30,0x33,0x11,0x21, +0x20,0x11,0x14,0x02,0x06,0x04,0x23,0x03,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x33,0x32,0x3e,0x02,0x35,0x10,0x21,0x03,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0xbc,0x01,0x8c,0x02,0xf6,0x72,0xce,0xfe,0xe4,0xaa,0xd4,0x5a,0x65,0xa1,0x6f,0x3b,0x3a,0x6f,0xa0,0x65,0x5c,0xd6,0x8b,0xdd,0x9a,0x52,0xfd, +0xb6,0x83,0x78,0x89,0x24,0x44,0x60,0x3c,0x5a,0x05,0x9a,0xfd,0x45,0xab,0xfe,0xf0,0xbf,0x65,0x05,0x02,0x9d,0x30,0x61,0x95,0x65,0x65,0x9d,0x6b,0x38,0x9d,0x4c,0x93,0xd8,0x8c,0x02,0x27,0xfc,0xba,0x8b,0x93,0x49,0x64,0x3d,0x1a,0xfd,0xde,0x00,0x05,0x00,0x5e,0x00,0x00,0x07,0xde,0x05,0x9a,0x00,0x0f,0x00,0x26,0x00,0x3d,0x00,0x48, +0x00,0x53,0x00,0x6b,0x40,0x39,0x45,0x7e,0x20,0x53,0x30,0x3d,0x7e,0x19,0x3e,0x26,0x19,0x36,0x7e,0x4c,0x20,0x19,0x4c,0x4c,0x19,0x20,0x03,0x05,0x0a,0x7d,0x2c,0x2c,0x55,0x13,0x7d,0x05,0x52,0x3f,0x92,0x26,0x30,0x26,0x53,0x3e,0x92,0x1a,0x3c,0x1a,0x26,0x1a,0x26,0x1a,0x00,0x2f,0x10,0x91,0x07,0x03,0x3d,0x19,0x91,0x00,0x12,0x00, +0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xe9,0x11,0x33,0x33,0x10,0xe9,0x32,0x32,0x10,0xe9,0x31,0x30,0x21,0x22,0x24,0x26,0x02,0x35,0x10,0x21,0x21,0x20,0x11,0x14,0x02,0x06,0x04,0x23,0x01, +0x23,0x20,0x11,0x14,0x1e,0x02,0x33,0x33,0x35,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x01,0x32,0x3e,0x02,0x35,0x10,0x21,0x23,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x03,0x11,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x03,0x64,0xaa,0xfe,0xe4, +0xce,0x72,0x02,0xf6,0x01,0x94,0x02,0xf6,0x72,0xce,0xfe,0xe4,0xaa,0xfe,0xf2,0x72,0xfd,0xb6,0x52,0x9a,0xdd,0x8b,0x68,0x5c,0x65,0xa0,0x6f,0x3a,0x3b,0x6f,0xa1,0x65,0x5a,0x01,0x10,0x8b,0xdd,0x9a,0x52,0xfd,0xb6,0x72,0x5a,0x65,0xa1,0x6f,0x3b,0x3a,0x6f,0xa0,0x65,0x5c,0xa8,0x5a,0x3c,0x60,0x44,0x24,0x89,0x78,0x01,0x62,0x78,0x89, +0x24,0x44,0x60,0x3c,0x5a,0x65,0xbf,0x01,0x10,0xab,0x02,0xbb,0xfd,0x45,0xab,0xfe,0xf0,0xbf,0x65,0x05,0x02,0xfd,0xd9,0x8c,0xd8,0x93,0x4c,0x9d,0x38,0x6b,0x9d,0x65,0x65,0x95,0x61,0x30,0xfc,0x33,0x4c,0x93,0xd8,0x8c,0x02,0x27,0x9d,0x30,0x61,0x95,0x65,0x65,0x9d,0x6b,0x38,0x9d,0x01,0x24,0x02,0x22,0x1a,0x3d,0x64,0x49,0x93,0x8b, +0x8b,0x93,0x49,0x64,0x3d,0x1a,0xfd,0xde,0x00,0x01,0x00,0x68,0xff,0xe8,0x04,0x96,0x05,0xb2,0x00,0x19,0x00,0x2f,0x40,0x18,0x06,0x7d,0x13,0x13,0x1b,0x0d,0x19,0x0c,0x2f,0x0d,0x01,0x0d,0x0d,0x0f,0x91,0x0a,0x13,0x00,0x19,0x19,0x17,0x91,0x02,0x04,0x00,0x3f,0xed,0x32,0x2f,0x33,0x3f,0xed,0x32,0x2f,0x5d,0x33,0x01,0x2f,0x33,0x12, +0x39,0x2f,0xe9,0x31,0x30,0x13,0x36,0x33,0x20,0x17,0x16,0x11,0x10,0x07,0x06,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x36,0x11,0x10,0x27,0x26,0x23,0x22,0x07,0x68,0x9f,0xed,0x01,0x31,0xb9,0xb8,0xcf,0xcf,0xfe,0xc2,0xcb,0x87,0x9b,0xb9,0xf6,0x9b,0x99,0x8f,0x90,0xe9,0xd9,0x9d,0x05,0x5e,0x54,0xc5,0xc4,0xfe,0xbf,0xfe,0xa7,0xd3, +0xd4,0x3b,0xb3,0x56,0xa5,0xa5,0x01,0x14,0x01,0x05,0x9d,0x9b,0x60,0x00,0x00,0x01,0x00,0x5e,0xfe,0x7f,0x04,0x8c,0x05,0xb2,0x00,0x20,0x00,0x38,0x40,0x1e,0x1c,0x7f,0x1f,0x0d,0x1f,0x0d,0x22,0x14,0x7d,0x05,0x0c,0x30,0x0d,0x01,0x0d,0x0d,0x0f,0x91,0x0a,0x04,0x20,0x1c,0x01,0x1c,0x1c,0x19,0x91,0x1e,0x00,0x13,0x00,0x3f,0xce,0xed, +0x32,0x2f,0x5d,0x3f,0xed,0x32,0x2f,0x5d,0x33,0x01,0x2f,0xe9,0x12,0x39,0x39,0x2f,0x2f,0xe9,0x31,0x30,0x05,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x11,0x23,0x11,0x06,0x03,0x00,0xa1,0xfb,0xac,0x5a,0x6b,0xc2,0x01,0x0d,0xa2,0xcb,0x87, +0x9b,0xb9,0x87,0xcf,0x8c,0x48,0x47,0x87,0xc0,0x7a,0x6b,0xba,0x51,0x9b,0x6e,0x18,0x70,0xc2,0x01,0x04,0x94,0xa6,0x01,0x1a,0xcd,0x73,0x3b,0xb3,0x56,0x61,0xa6,0xdc,0x7b,0x7a,0xd1,0x9a,0x58,0x2f,0x32,0xfd,0x9f,0x01,0x83,0x1a,0x00,0x01,0x01,0x05,0xff,0xcc,0x05,0x57,0x05,0xc6,0x00,0x08,0x00,0x24,0x40,0x0f,0x03,0x08,0x01,0x07, +0x07,0x0a,0x05,0x07,0x00,0x06,0x06,0x03,0x01,0x05,0x03,0x00,0x2f,0xdd,0xc4,0x12,0x39,0x11,0x33,0x2f,0x01,0x2f,0x12,0x39,0x2f,0x39,0xc9,0x39,0x31,0x30,0x01,0x01,0x11,0x01,0x01,0x11,0x01,0x11,0x21,0x03,0xb1,0x01,0xa6,0xfd,0xd7,0xfd,0xd7,0x01,0xa8,0x01,0x04,0x01,0x66,0x01,0x70,0xfe,0xd7,0xfe,0x1f,0x01,0xe1,0x01,0x29,0xfe, +0x90,0x04,0x60,0x00,0x00,0x04,0x00,0xbc,0x00,0x00,0x05,0x3e,0x05,0x9a,0x00,0x09,0x00,0x20,0x00,0x36,0x00,0x3f,0x00,0x65,0x40,0x18,0x2f,0x7f,0x3a,0x11,0x7e,0x26,0x3a,0x26,0x3a,0x26,0x00,0x04,0x7d,0x1e,0x1e,0x41,0x3f,0x36,0x2b,0x0b,0x18,0x7e,0x00,0x3e,0xb8,0x01,0x05,0xb4,0x2b,0x2a,0x92,0x0b,0x3f,0xb8,0x01,0x05,0x40,0x14, +0x35,0x36,0x92,0x17,0x40,0x0b,0x01,0x0b,0x17,0x0b,0x17,0x00,0x0a,0x91,0x01,0x03,0x18,0x91,0x00,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xfd,0xd6,0xed,0x10,0xfd,0xd6,0xed,0x01,0x2f,0xe9,0x32,0x32,0x32,0x32,0x12,0x39,0x2f,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x31,0x30,0x33,0x11,0x21, +0x20,0x11,0x14,0x02,0x06,0x04,0x23,0x03,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x33,0x32,0x3e,0x02,0x35,0x10,0x21,0x03,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0xbc,0x01,0x8c,0x02,0xf6,0x72,0xce,0xfe, +0xe4,0xaa,0xd4,0x8c,0x7d,0xc6,0x89,0x48,0x48,0x89,0xc5,0x7c,0x8e,0xd6,0x8b,0xdd,0x9a,0x52,0xfd,0xb6,0x54,0x61,0x8b,0x5a,0x2a,0xb1,0xbf,0x8c,0x3c,0x9f,0xa8,0x30,0x56,0x77,0x48,0x3e,0x3c,0x5b,0x57,0x56,0x5c,0x3c,0x05,0x9a,0xfd,0x45,0xab,0xfe,0xf0,0xbf,0x65,0x05,0x02,0x53,0x35,0x71,0xb2,0x7c,0x73,0xb5,0x7e,0x42,0x5b,0x4c, +0x93,0xd8,0x8c,0x02,0x27,0xfc,0x6e,0x3a,0x64,0x83,0x4a,0xa8,0xaf,0x4b,0x7c,0x90,0x50,0x6e,0x44,0x1e,0x4b,0xba,0x52,0x5f,0x55,0x48,0xfe,0xb2,0x00,0x07,0x00,0x5e,0x00,0x00,0x08,0xba,0x05,0x9a,0x00,0x0f,0x00,0x26,0x00,0x3d,0x00,0x53,0x00,0x69,0x00,0x72,0x00,0x7b,0x00,0x95,0x40,0x2c,0x4e,0x7e,0x2c,0x78,0x7f,0x45,0x72,0x69, +0x5e,0x19,0x26,0x7e,0x3c,0x73,0x49,0x3e,0x32,0x3c,0x62,0x7f,0x6d,0x1f,0x7e,0x59,0x2c,0x45,0x3c,0x6d,0x59,0x59,0x6d,0x3c,0x45,0x2c,0x05,0x05,0x0a,0x7d,0x15,0x36,0x7d,0x05,0x71,0x74,0xb8,0x01,0x05,0x40,0x13,0x5e,0x49,0x5d,0x4a,0x92,0x19,0x20,0x32,0x30,0x32,0x02,0x32,0x18,0x33,0x91,0x07,0x03,0x72,0x73,0xb8,0x01,0x05,0x40, +0x0f,0x68,0x3f,0x69,0x3e,0x92,0x25,0x2f,0x3d,0x01,0x3d,0x26,0x3c,0x91,0x00,0x12,0x00,0x3f,0xfd,0x32,0xd6,0x5d,0x32,0xfd,0x32,0xd6,0x32,0xed,0x32,0x3f,0xfd,0x32,0xd6,0x5d,0x32,0xfd,0x32,0xd6,0x32,0xed,0x32,0x01,0x2f,0xe9,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x11,0x33,0x33,0x33,0x33,0x10, +0xe9,0x32,0x32,0x32,0x32,0x10,0xe9,0x10,0xe9,0x31,0x30,0x21,0x22,0x24,0x26,0x02,0x35,0x10,0x21,0x21,0x20,0x11,0x14,0x02,0x06,0x04,0x23,0x37,0x32,0x3e,0x02,0x35,0x10,0x21,0x23,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x25,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x23,0x20,0x11,0x14,0x1e,0x02, +0x33,0x33,0x3d,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x33,0x33,0x35,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x21,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x03,0x64,0xaa,0xfe, +0xe4,0xce,0x72,0x02,0xf6,0x02,0x70,0x02,0xf6,0x72,0xce,0xfe,0xe4,0xaa,0x02,0x8b,0xdd,0x9a,0x52,0xfd,0xb6,0xe0,0x8c,0x7d,0xc6,0x89,0x48,0x48,0x89,0xc5,0x7c,0x8e,0xfe,0xca,0x7d,0xc4,0x89,0x48,0x48,0x89,0xc6,0x7d,0x8c,0xe0,0xfd,0xb6,0x52,0x9a,0xdd,0x8b,0xd6,0x3e,0x48,0x77,0x56,0x30,0xa8,0x9f,0x3c,0x8c,0xbf,0xb1,0x2a,0x5a, +0x8b,0x61,0x01,0xc0,0x61,0x8b,0x5a,0x2a,0xb1,0xbf,0x8c,0x3c,0x9f,0xa8,0x30,0x56,0x77,0x48,0x3e,0x3c,0x5b,0x57,0x56,0x5c,0x3c,0xa8,0x3c,0x5c,0x56,0x56,0x5c,0x65,0xbf,0x01,0x10,0xab,0x02,0xbb,0xfd,0x45,0xab,0xfe,0xf0,0xbf,0x65,0x98,0x4c,0x93,0xd8,0x8c,0x02,0x27,0x53,0x35,0x71,0xb2,0x7c,0x73,0xb5,0x7e,0x42,0x5b,0x5b,0x42, +0x7e,0xb5,0x73,0x7c,0xb2,0x71,0x35,0x53,0xfd,0xd9,0x8c,0xd8,0x93,0x4c,0x5b,0x7d,0x4b,0x1e,0x44,0x6e,0x50,0x90,0x7c,0x4b,0xaf,0xa8,0x4a,0x83,0x64,0x3a,0x3a,0x64,0x83,0x4a,0xa8,0xaf,0x4b,0x7c,0x90,0x50,0x6e,0x44,0x1e,0x4b,0xba,0x52,0x5f,0x55,0x48,0xfe,0xb2,0x01,0x4e,0x48,0x55,0x5f,0x52,0x00,0xff,0xff,0x00,0x48,0xff,0xec, +0x06,0xd9,0x05,0xae,0x00,0x27,0x00,0xbc,0x03,0x03,0x00,0x00,0x00,0x27,0x00,0xf2,0x04,0x4b,0xfd,0xb9,0x01,0x06,0x08,0x8d,0x00,0x00,0x00,0x07,0xb2,0x01,0x23,0x2d,0x00,0x3f,0x35,0x00,0x00,0x01,0x00,0x00,0x01,0x46,0x04,0x27,0x01,0xb6,0x00,0x03,0x00,0x0e,0xb4,0x01,0x00,0x01,0x52,0x02,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30, +0x01,0x21,0x35,0x21,0x04,0x27,0xfb,0xd9,0x04,0x27,0x01,0x46,0x70,0x00,0x00,0x02,0x00,0xab,0xfe,0x0a,0x07,0x59,0x03,0x0f,0x00,0x2e,0x00,0x35,0x00,0x00,0x01,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03, +0x33,0x32,0x3e,0x02,0x35,0x11,0x01,0x03,0x33,0x17,0x37,0x33,0x03,0x06,0x9f,0x0c,0x27,0x49,0x3e,0x16,0x61,0x70,0x20,0x04,0x2c,0x80,0x9d,0xb4,0x60,0x88,0xe1,0xb5,0x88,0x30,0x40,0x30,0x12,0x0b,0x9a,0x09,0x11,0x1f,0x2f,0x1d,0x5c,0x92,0xd1,0x93,0x80,0xc0,0x7f,0x3f,0xfd,0x6c,0xec,0x7d,0xab,0xa8,0x79,0xe6,0x03,0x0f,0xfe,0x89, +0x43,0x60,0x3e,0x1e,0xa7,0x3a,0x40,0x2f,0x35,0x19,0x05,0x04,0x15,0x2c,0x29,0x37,0x98,0x58,0x3d,0x70,0x33,0x2b,0x65,0x36,0x3c,0x63,0x23,0x15,0x1b,0x0f,0x05,0x0a,0x29,0x53,0x48,0x01,0xae,0xfa,0xfb,0x01,0x60,0xff,0xff,0xfe,0xa0,0x00,0x00,0x02,0xff,0xba,0xfe,0x0a,0x02,0xac,0x03,0x0f,0x00,0x1f,0x00,0x26,0x00,0x00,0x01,0x14, +0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x03,0x03,0x33,0x17,0x37,0x33,0x03,0x01,0xf2,0x0c,0x27,0x4a,0x3d,0x16,0x64,0x78,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0xa9,0xec,0x7d,0xab, +0xa8,0x79,0xe6,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0xbc,0xfa,0xfb,0x01,0x60,0xff,0xff,0xfe,0xa0,0x00,0x02,0x00,0xab,0xfe,0x0a,0x06,0x9f,0x03,0x0f,0x00,0x25,0x00,0x2c,0x00,0x00,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35, +0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x01,0x03,0x33,0x17,0x37,0x33,0x03,0x01,0x62,0x09,0x11,0x1e,0x30,0x1d,0x5c,0x91,0xd2,0x93,0x80,0xc0,0x7f,0x3f,0x9c,0x33,0x5d,0x81,0x9a,0xaf,0x5d,0x86,0xde,0xb3,0x87,0x30,0x3f,0x30,0x12,0x0b,0x02,0xa7,0xec,0x7d,0xab,0xa8,0x79,0xe6,0x02, +0x5f,0x2b,0x65,0x36,0x3c,0x63,0x23,0x15,0x1b,0x0f,0x05,0x0a,0x29,0x53,0x48,0x01,0xae,0xfe,0x4b,0x5a,0x7c,0x52,0x2d,0x16,0x05,0x03,0x15,0x2d,0x29,0x37,0x98,0x58,0x3d,0x70,0x33,0xfb,0xab,0x01,0x60,0xff,0xff,0xfe,0xa0,0x00,0x00,0x02,0xff,0xba,0xfe,0x0a,0x02,0xa6,0x03,0x0f,0x00,0x16,0x00,0x1d,0x00,0x00,0x37,0x32,0x3e,0x02, +0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x01,0x03,0x33,0x17,0x37,0x33,0x03,0x99,0x2e,0x47,0x30,0x18,0x9c,0x1c,0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x01,0x49,0xec,0x7d,0xab,0xa8,0x79,0xe6,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x3d,0x4b,0x6e,0x4c,0x31,0x1a,0x0a,0x34,0x20, +0x20,0x33,0xfd,0x71,0x01,0x60,0xff,0xff,0xfe,0xa0,0x00,0x04,0x00,0x7e,0xfd,0xff,0x04,0x41,0x04,0xb2,0x00,0x31,0x00,0x35,0x00,0x39,0x00,0x3d,0x00,0x00,0x01,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36, +0x36,0x33,0x32,0x1e,0x04,0x17,0x01,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x0c,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe, +0xf9,0xb9,0xb9,0xfe,0xe9,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x02,0x01,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfd,0x0e,0xb5,0x03,0x7e,0xb5,0xb5,0xb5,0x00,0x04, +0x00,0x7e,0xfd,0xff,0x04,0xad,0x04,0xb2,0x00,0x40,0x00,0x44,0x00,0x48,0x00,0x4c,0x00,0x00,0x01,0x06,0x06,0x07,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33, +0x32,0x1e,0x04,0x17,0x01,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x0c,0x22,0x40,0x1e,0x05,0x26,0x46,0x69,0x47,0x18,0x63,0x8f,0x5f,0x31,0x05,0x8d,0xc0,0x75,0x32,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31, +0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe,0xd4,0xb9,0xb9,0xf2,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x02,0x01,0x09,0x12,0x09,0x60,0x7e,0x49,0x1d,0xa7,0x3f,0x75,0xa6,0x67,0x33,0x6e,0x77,0x80,0x45,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19, +0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfc,0xe6,0xb5,0x03,0xa6,0xb5,0xb5,0xb5,0x00,0x04,0xff,0xba,0xfe,0xa6,0x04,0x7c,0x04,0xb2,0x00,0x28,0x00,0x2c,0x00,0x30,0x00,0x34,0x00,0x00,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32, +0x1e,0x04,0x17,0x07,0x0e,0x05,0x23,0x01,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x23,0x23,0x23,0x23,0x3b,0x7b,0xe0,0xcf,0xbf,0x5a,0x39,0x60,0x68,0x7c,0x57,0x4e,0x7e,0x33,0x37,0x84,0x4e,0x50,0x7c,0x6a,0x61,0x69,0x7a,0x4e,0x20,0x2b,0x73,0x92,0xb1,0xd0,0xf1,0x88,0x02,0x81,0xb9,0xb9,0xc3,0xb9,0xb9,0x01,0x42, +0xb9,0xb9,0x0e,0x34,0x20,0x20,0x33,0x37,0x59,0x70,0x39,0x05,0x1b,0x35,0x2b,0x1b,0x14,0x10,0x9d,0x12,0x17,0x1d,0x2b,0x32,0x2c,0x1e,0x01,0xc8,0x0a,0x42,0x59,0x62,0x53,0x36,0xfe,0xb4,0xb5,0x04,0xa2,0xb5,0xb5,0xb5,0x00,0x04,0xff,0xba,0xfe,0xa6,0x04,0xad,0x04,0xb2,0x00,0x35,0x00,0x39,0x00,0x3d,0x00,0x41,0x00,0x00,0x15,0x22, +0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x06,0x07,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x01,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x23,0x23,0x23,0x23,0x3b,0x7b,0xe0,0xcf,0xbf,0x5a,0x39, +0x60,0x68,0x7c,0x57,0x4e,0x7e,0x33,0x37,0x84,0x4e,0x50,0x7c,0x6a,0x61,0x69,0x7a,0x4e,0x20,0x20,0x50,0x31,0x01,0x14,0x35,0x5e,0x4a,0x14,0x62,0x7d,0x4a,0x1e,0x02,0x48,0xab,0xc8,0xe3,0x80,0x02,0x81,0xb9,0xb9,0xc3,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x0e,0x34,0x20,0x20,0x33,0x37,0x59,0x70,0x39,0x05,0x1b,0x35,0x2b,0x1b,0x14,0x10, +0x9d,0x12,0x17,0x1d,0x2b,0x32,0x2c,0x1e,0x01,0xc8,0x08,0x29,0x1d,0x2b,0x3b,0x25,0x10,0xa7,0x29,0x46,0x5d,0x35,0x2b,0x5b,0x4b,0x30,0xfe,0xb4,0xb5,0x04,0xa2,0xb5,0xb5,0xb5,0x00,0x04,0x00,0x19,0xff,0xea,0x05,0xf5,0x05,0xec,0x00,0x20,0x00,0x34,0x00,0x38,0x00,0x3c,0x00,0x00,0x01,0x33,0x11,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02, +0x15,0x14,0x0e,0x04,0x23,0x22,0x24,0x26,0x26,0x27,0x27,0x16,0x16,0x17,0x36,0x36,0x37,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x55,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x5a,0x79,0xae,0x70,0x36,0x2d,0x52,0x71,0x88,0x9a,0x52,0xb7,0xfe,0xf5,0xc6,0x92, +0x3e,0x20,0x2d,0x91,0x58,0x08,0x13,0x0b,0x02,0x52,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5c,0xe9,0x97,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x05,0xec,0xfc,0x1d,0x01,0x43,0x7a,0x5d,0x36,0x4f,0x88,0xb5,0x66,0x5d,0x80,0x55,0x2f,0x16,0x05,0x03,0x06,0x09,0x06,0xa7,0x06,0x07,0x01,0x16,0x2e,0x1a, +0x66,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0x03,0x6a,0xb5,0xb5,0xb5,0x00,0x04,0xff,0xba,0xff,0xed,0x05,0xf5,0x05,0xec,0x00,0x24,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x00,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x36, +0x36,0x37,0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x28,0x79,0xae,0x70,0x36,0x2d,0x51,0x71,0x88,0x9a,0x52,0x72,0xc7,0xc6,0xd2,0x7c,0x45,0x23,0x23,0x23,0x23,0x01,0x2e,0x08,0x14,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4, +0x27,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x83,0x75,0x63,0x52,0x3e,0x15,0x5b,0xeb,0x96,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x03,0x58,0x4f,0x88,0xb5,0x66,0x5d,0x80,0x54,0x2e,0x16,0x04,0x02,0x01,0x02,0x34,0x20,0x20,0x33,0x17,0x2f,0x1a,0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82, +0x52,0x25,0x2c,0x4e,0x68,0x77,0x81,0x3f,0x02,0x01,0x03,0x6a,0xb5,0xb5,0xb5,0x00,0x00,0x04,0xff,0xba,0xff,0xed,0x06,0xae,0x05,0xec,0x00,0x2d,0x00,0x41,0x00,0x45,0x00,0x49,0x00,0x00,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33, +0x21,0x36,0x36,0x37,0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x28,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26,0x6f,0x89,0x9d,0x54,0x72,0xc7,0xc6,0xd2,0x7c,0x45,0x23,0x23,0x23, +0x23,0x01,0x2e,0x08,0x14,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x27,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5b,0xeb,0x96,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x03,0x58,0x4e,0x84,0xae,0x61,0x3a,0x54,0x36,0x1a,0xa7,0x3c,0x43,0x30,0x35,0x1a,0x05,0x02,0x01,0x02,0x34,0x20,0x20,0x33,0x17,0x2f,0x1a, +0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0x03,0x6a,0xb5,0xb5,0xb5,0x00,0x04,0x00,0x19,0xff,0xea,0x06,0xae,0x05,0xec,0x00,0x29,0x00,0x3d,0x00,0x41,0x00,0x45,0x00,0x00,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26, +0x27,0x23,0x0e,0x03,0x23,0x22,0x24,0x26,0x26,0x27,0x27,0x16,0x16,0x17,0x36,0x36,0x37,0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x28,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26, +0x70,0x89,0x9d,0x54,0xb7,0xfe,0xf5,0xc6,0x92,0x3e,0x20,0x2d,0x91,0x58,0x08,0x13,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x27,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5c,0xe9,0x97,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x03,0x58,0x4e,0x84,0xae,0x61,0x3a,0x54,0x36,0x1a,0xa7,0x3a,0x45,0x31,0x36,0x1a, +0x06,0x03,0x06,0x09,0x06,0xa7,0x06,0x07,0x01,0x16,0x2e,0x1a,0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0x03,0x6a,0xb5,0xb5,0xb5,0x00,0x06,0x00,0xab,0xfe,0xa6,0x07,0x4b,0x06,0x3c,0x00,0x36,0x00,0x4a,0x00,0x4e,0x00,0x52,0x00,0x56, +0x00,0x5a,0x00,0x00,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x05,0x33,0x32,0x36,0x37,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x05,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0x23,0x35, +0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x01,0x62,0x09,0x11,0x20,0x2e,0x17,0x39,0x4f,0x6d,0x96,0xc7,0x82,0x5b,0x8e,0x3b,0x02,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x3a,0x64,0x89,0x9d,0xac,0x55,0xb9,0x86,0xd6,0xaa,0x7f,0x2e,0x3f,0x30,0x12,0x0b,0x05,0xe6,0x0f, +0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2c,0x1a,0x18,0x42,0x73,0x5a,0x21,0x1d,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0xfe,0x0f,0xb9,0xb9,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x66,0x20,0x10,0x17,0x0f,0x08,0x05,0x01,0x02,0x03,0x06,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x57,0x21,0x4a,0x53,0x5a,0x30,0x60, +0x84,0x57,0x30,0x17,0x05,0x05,0x15,0x2d,0x27,0x36,0x99,0x58,0x3d,0x70,0x33,0xf2,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3e,0x44,0x49,0x2a,0x18,0x4d,0x03,0x3e,0xb5,0xb5,0xb5,0x63,0xb5,0xf8,0x6a,0xb5,0x00,0x00,0x06,0xff,0xba,0xfe,0xa6,0x03,0x49,0x06,0x3c,0x00,0x24,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x44, +0x00,0x48,0x00,0x00,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x13,0x23,0x35,0x33, +0x01,0xa5,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x14,0x26,0x1d,0x12,0x39,0x61,0x81,0x91,0x97,0x47,0xbf,0x23,0x23,0x23,0x23,0xc8,0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x37,0x2c,0x1b,0x19,0x41,0x73,0x5a,0x21,0x1d,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x39,0xb9,0xb9, +0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x58,0x21,0x4a,0x52,0x5a,0x30,0x60,0x83,0x55,0x2e,0x15,0x04,0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3f,0x42,0x4a,0x2a,0x18,0x4d,0x03,0x3e,0xb5,0xb5,0xb5,0x63,0xb5,0xf8,0x6a,0xb5,0x00,0x00,0x06,0xff,0xba,0xfe,0xa6, +0x04,0x02,0x06,0x3c,0x00,0x2f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x00,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22, +0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x13,0x23,0x35,0x33,0x01,0xa5,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x38,0x72,0x43,0x16,0x2c,0x60,0x5f,0x5c,0x27,0x32,0x70,0x75,0x74,0x34,0xbf,0x23,0x23,0x23,0x23,0xc8, +0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19,0x43,0x74,0x5b,0x21,0x19,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x39,0xb9,0xb9,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x53,0x56,0x21,0x4a,0x53,0x5a,0x30,0x42,0x64,0x26,0x09,0x03,0xa7,0x07,0x0e,0x16,0x0f,0x16,0x17, +0x0b,0x02,0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3e,0x44,0x4a,0x2b,0x18,0x4f,0x03,0x3e,0xb5,0xb5,0xb5,0x63,0xb5,0xf8,0x6a,0xb5,0x00,0x06,0x00,0xab,0xfe,0xa6,0x08,0x04,0x06,0x3c,0x00,0x41,0x00,0x55,0x00,0x59,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0x00,0x01,0x34,0x3e,0x02, +0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x05,0x33,0x32,0x36,0x37,0x37,0x2e,0x03,0x05,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36, +0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x04,0xb0,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x38,0x72,0x43,0x16,0x2c,0x60,0x5f,0x5b,0x27,0x33,0x77,0x82,0x8a,0x45,0xb9,0x86,0xd6,0xaa,0x7f,0x2e,0x3f,0x30,0x12,0x0b,0x9a,0x09,0x11,0x20,0x2e,0x17,0x39,0x4f,0x6d, +0x96,0xc7,0x82,0x5b,0x8e,0x3b,0x02,0x4a,0x60,0x38,0x15,0x01,0xfe,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19,0x41,0x73,0x5a,0x23,0x1b,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0xfe,0x0f,0xb9,0xb9,0x01,0xd1,0x40,0x8d,0x77,0x4d,0x53,0x56,0x21,0x4a,0x53,0x5a,0x30,0x42,0x63,0x27,0x09,0x03,0xa7,0x07, +0x0e,0x16,0x0f,0x18,0x1a,0x0d,0x03,0x05,0x15,0x2d,0x27,0x36,0x99,0x58,0x3d,0x70,0x33,0x2b,0x65,0x36,0x3c,0x66,0x20,0x10,0x17,0x0f,0x08,0x05,0x01,0x02,0x03,0x06,0x1e,0x44,0x4d,0x55,0x35,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x1f,0x3e,0x43,0x4a,0x2b,0x18,0x4d,0x03,0x3e,0xb5,0xb5,0xb5,0x63,0xb5,0xf8,0x6a,0xb5, +0x00,0x05,0x00,0x9b,0xfc,0xb6,0x05,0x4b,0x04,0x79,0x00,0x30,0x00,0x44,0x00,0x48,0x00,0x4c,0x00,0x50,0x00,0x00,0x25,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x35,0x2e,0x05, +0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x04,0xad,0x50,0x5c,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x1b,0x28,0x1b,0x0e,0x4a,0x98,0xed,0xa3,0xa1,0xdb,0x87,0x3b,0x0f,0x0e,0x97,0x0b,0x0c,0x2b,0x64,0xa5,0x7a,0x67,0x93,0x64,0x3b,0x21, +0x0b,0x01,0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0xf8,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xfe,0x6a,0xb9,0xb9,0x17,0x25,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x2a,0x68,0x75,0x7f,0x40,0x95,0xdc,0x91,0x47,0x41,0x7c,0xb7,0x77,0x3f,0x8c,0x4e,0x4b,0x7d,0x36,0x5f,0x84,0x54,0x26, +0x1d,0x32,0x46,0x51,0x5b,0xd0,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0x03,0x1f,0xb5,0xb5,0xb5,0xf8,0x3d,0xb5,0x00,0x00,0x05,0xff,0xba,0xfe,0xa6,0x03,0x49,0x05,0x24,0x00,0x24,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x44,0x00,0x00,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e, +0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x01,0xa5,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x14,0x26,0x1d,0x12,0x39,0x61,0x81, +0x91,0x97,0x47,0xbf,0x23,0x23,0x23,0x23,0xc8,0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x37,0x2c,0x1b,0x19,0x41,0x73,0x5a,0x21,0x1d,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x68,0xb9,0xb9,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x58,0x21,0x4a,0x52,0x5a,0x30,0x60,0x83,0x55,0x2e,0x15,0x04, +0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3f,0x42,0x4a,0x2a,0x18,0x4d,0x03,0x3e,0xb5,0xb5,0xb5,0xf9,0x82,0xb5,0x00,0x05,0xff,0xba,0xfe,0xa6,0x04,0x02,0x05,0x24,0x00,0x2f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x00,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16, +0x17,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x01,0xa5,0x4a,0x60,0x38,0x15,0x30, +0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x38,0x72,0x43,0x16,0x2c,0x60,0x5f,0x5c,0x27,0x32,0x70,0x75,0x74,0x34,0xbf,0x23,0x23,0x23,0x23,0xc8,0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19,0x43,0x74,0x5b,0x21,0x19,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x68,0xb9,0xb9, +0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x53,0x56,0x21,0x4a,0x53,0x5a,0x30,0x42,0x64,0x26,0x09,0x03,0xa7,0x07,0x0e,0x16,0x0f,0x16,0x17,0x0b,0x02,0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3e,0x44,0x4a,0x2b,0x18,0x4f,0x03,0x3e,0xb5,0xb5,0xb5,0xf9,0x82,0xb5,0x00, +0x00,0x05,0x00,0x9b,0xfc,0xb6,0x06,0x03,0x04,0x79,0x00,0x30,0x00,0x41,0x00,0x45,0x00,0x49,0x00,0x4d,0x00,0x00,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x33,0x15,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x37,0x03,0x2e, +0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x26,0x26,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x04,0x36,0x5c,0x91,0x66,0x36,0x30,0x55,0x73,0x44,0x48,0x78,0x36,0x2d,0x34,0x07,0xbc,0xbb,0x0b,0x54,0x99,0xe0,0x97,0xa1,0xdb,0x87,0x3b,0x0f,0x0e,0x97,0x0b,0x0c,0x2b,0x64,0xa5,0x7a,0x60,0x8d,0x63,0x3e, +0x24,0x10,0x03,0x1d,0x0d,0x25,0x2c,0x34,0x1c,0x1d,0x37,0x2c,0x1a,0x7c,0x86,0x65,0x04,0x0e,0xfe,0xf5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xfe,0x6a,0xb9,0xb9,0x0e,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x48,0xc0,0x6d,0xa7,0x7f,0xbc,0x7b,0x3d,0x41,0x7c,0xb7,0x77,0x3f,0x8c,0x4e,0x4b,0x7d,0x36,0x5f,0x84,0x54,0x26,0x19, +0x2d,0x3e,0x49,0x52,0x2b,0x01,0x42,0x26,0x4d,0x3d,0x26,0x26,0x3c,0x4c,0x26,0x4b,0x52,0x27,0x4e,0x02,0xb6,0xb5,0xb5,0xb5,0xf8,0x3d,0xb5,0x00,0x00,0x01,0x00,0x9b,0xfe,0xac,0x05,0x51,0x05,0xec,0x00,0x2d,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15, +0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x33,0x05,0x51,0xb3,0xb3,0xb3,0x38,0x81,0xd4,0x9d,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x98,0x0b,0x0b,0x23,0x4f,0x7d,0x59,0x67,0x93,0x5d,0x2b,0xfe,0xdf,0x01,0x21,0xfe,0xdf,0x01,0x21,0x9c,0xb3,0x04,0x5c,0x83,0x6d,0xfd,0xa8,0x8f,0xe4, +0x9f,0x56,0x45,0x7f,0xb7,0x72,0x3f,0x83,0x4b,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x02,0x44,0x6d,0x83,0x6d,0x01,0x23,0xfe,0xdd,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x02,0xa5,0x05,0xec,0x00,0x26,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32, +0x3e,0x02,0x35,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x33,0x02,0xa5,0xb3,0xb3,0xb3,0x1c,0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x99,0x2e,0x47,0x30,0x18,0xfe,0xdf,0x01,0x21,0xfe,0xdf,0x01,0x21,0x9c,0xb3,0x04,0x5c,0x83,0x6d,0xfd,0xe0,0x4b,0x6e,0x4c,0x31,0x1a,0x0a,0x34,0x20,0x20,0x33,0x0f,0x2a, +0x48,0x39,0x02,0x19,0x6d,0x83,0x6d,0x01,0x23,0xfe,0xdd,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xec,0x00,0x2f,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x21,0x35,0x21,0x35,0x21, +0x35,0x21,0x11,0x33,0x11,0x33,0x02,0xa5,0xb3,0xb3,0xb3,0x0c,0x27,0x4a,0x3d,0x16,0x61,0x74,0x1d,0x04,0x1b,0x43,0x48,0x49,0x22,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0xfe,0xdf,0x01,0x21,0xfe,0xdf,0x01,0x21,0x9c,0xb3,0x04,0x5c,0x83,0x6d,0xfe,0x2c,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20, +0x20,0x33,0x12,0x2c,0x47,0x35,0x02,0x19,0x6d,0x83,0x6d,0x01,0x23,0xfe,0xdd,0x00,0x00,0x01,0x00,0x9b,0xfe,0xac,0x05,0x58,0x05,0xec,0x00,0x38,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02, +0x33,0x32,0x3e,0x02,0x35,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x33,0x05,0x51,0xb3,0xb3,0xb3,0x0c,0x27,0x4a,0x3d,0x13,0x49,0x59,0x1c,0x04,0x11,0x4c,0x7f,0xb7,0x7c,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x98,0x0b,0x0b,0x23,0x4f,0x7d,0x59,0x67,0x93,0x5d,0x2b,0xfe,0xdf,0x01,0x21,0xfe,0xdf,0x01,0x21,0x9c,0xb3,0x04, +0x5c,0x83,0x6d,0xfe,0x30,0x43,0x61,0x40,0x1f,0xa7,0x28,0x26,0x5f,0x95,0x69,0x37,0x45,0x7f,0xb7,0x72,0x3f,0x83,0x4b,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x02,0x44,0x6d,0x83,0x6d,0x01,0x23,0xfe,0xdd,0x00,0x00,0x05,0x00,0x39,0xfd,0xff,0x03,0xf4,0x05,0x91,0x00,0x26,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x44, +0x00,0x00,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x05,0x13,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x1e,0x03,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x02,0xac,0x4c,0x79,0x55,0x2e, +0x23,0x47,0x69,0x45,0x31,0x66,0x61,0x59,0x24,0x4e,0x43,0x09,0x11,0x17,0x0e,0xa6,0x19,0x1d,0x24,0x42,0x5d,0x3a,0x17,0x3d,0x45,0x49,0x44,0x3b,0x2e,0x21,0x35,0x27,0x15,0x1e,0x33,0x45,0x27,0x4b,0x6d,0x29,0x21,0x44,0x44,0x43,0x54,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x02,0xb9,0x53,0x7d,0x91,0x3e,0x3b,0x6c,0x52,0x30, +0x13,0x17,0x13,0x63,0x5b,0x26,0x5d,0x63,0x61,0x2a,0x67,0xbd,0x45,0x48,0x79,0x5b,0x39,0x09,0x71,0xa2,0x6f,0x43,0x23,0x0b,0xfd,0xdf,0x0c,0x1c,0x30,0x23,0x25,0x59,0x4e,0x34,0xa4,0xad,0x05,0x0f,0x0d,0x09,0x03,0x2c,0xb5,0xb5,0xb5,0x63,0xb5,0x00,0x00,0x05,0xff,0xba,0xff,0xf2,0x03,0xf4,0x05,0x91,0x00,0x23,0x00,0x33,0x00,0x37, +0x00,0x3b,0x00,0x3f,0x00,0x00,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x01,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x23,0x23, +0x23,0x23,0x1a,0x3f,0x57,0x3b,0x22,0x0b,0x14,0x37,0x54,0x79,0x56,0x61,0x8b,0x58,0x2a,0x2b,0x56,0x81,0x57,0x36,0x63,0x58,0x4b,0x1f,0x35,0x9a,0x5e,0x01,0x6e,0x2a,0x8f,0x55,0x5e,0x6a,0x1a,0x35,0x52,0x38,0x32,0x4e,0x3f,0x2d,0xb0,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x0e,0x34,0x20,0x20,0x33,0x2e,0x41,0x48,0x1a,0x2f, +0x72,0x62,0x42,0x4d,0x74,0x86,0x3a,0x3b,0x72,0x59,0x36,0x17,0x28,0x35,0x1f,0x50,0x43,0x01,0x13,0x34,0x37,0x44,0x46,0x21,0x50,0x45,0x2f,0x28,0x47,0x5f,0x02,0x89,0xb5,0xb5,0xb5,0x63,0xb5,0x00,0x00,0x05,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0x91,0x00,0x30,0x00,0x40,0x00,0x44,0x00,0x48,0x00,0x4c,0x00,0x00,0x05,0x23,0x22,0x26, +0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x3e,0x05,0x33,0x32,0x1e,0x04,0x17,0x1e,0x03,0x33,0x25,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x04,0xad,0x16,0x5b, +0x6f,0x1e,0x05,0x2d,0x87,0x61,0x34,0x61,0x57,0x4b,0x1e,0x35,0x99,0x5f,0x13,0x23,0x23,0x23,0x23,0x1a,0x3f,0x57,0x3a,0x23,0x0b,0x0d,0x21,0x2b,0x38,0x48,0x5c,0x39,0x4f,0x72,0x50,0x33,0x1c,0x0c,0x02,0x04,0x0d,0x25,0x46,0x3d,0xfc,0xd4,0x2b,0x8e,0x56,0x5e,0x69,0x1a,0x35,0x52,0x37,0x30,0x4f,0x3e,0x2f,0xaf,0xb9,0xb9,0x01,0x42, +0xb9,0xb9,0xa1,0xb9,0xb9,0x0e,0x40,0x41,0x39,0x48,0x18,0x28,0x35,0x1e,0x50,0x43,0x34,0x20,0x20,0x33,0x2e,0x41,0x48,0x1b,0x1f,0x49,0x48,0x42,0x34,0x1e,0x2e,0x48,0x56,0x51,0x40,0x0e,0x21,0x3e,0x30,0x1d,0x6d,0x35,0x36,0x44,0x45,0x21,0x51,0x45,0x2f,0x26,0x45,0x5f,0x02,0x85,0xb5,0xb5,0xb5,0x63,0xb5,0x00,0x00,0x05,0x00,0x39, +0xfd,0xff,0x04,0xad,0x05,0x91,0x00,0x2f,0x00,0x41,0x00,0x45,0x00,0x49,0x00,0x4d,0x00,0x00,0x25,0x15,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x05,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02, +0x23,0x22,0x06,0x07,0x1e,0x03,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x04,0xad,0x16,0x51,0x68,0x21,0x04,0x26,0x6c,0x4f,0x31,0x65,0x60,0x57,0x24,0x4e,0x43,0x09,0x11,0x17,0x0e,0xa6,0x19,0x1d,0x24,0x42,0x5d,0x3a,0x17,0x3d,0x45,0x49,0x44,0x3b,0x15,0x44,0x6e,0x53,0x34,0x0b,0x06,0x0f,0x26,0x45,0xfe,0x55, +0x21,0x35,0x27,0x15,0x1e,0x33,0x45,0x27,0x4b,0x6d,0x29,0x21,0x44,0x44,0x43,0x54,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x99,0xa7,0x3a,0x36,0x36,0x3b,0x13,0x17,0x13,0x63,0x5b,0x26,0x5d,0x63,0x61,0x2a,0x67,0xbd,0x45,0x48,0x79,0x5b,0x39,0x09,0x71,0xa2,0x6f,0x42,0x24,0x0b,0x41,0x67,0x80,0x3f,0x26,0x43,0x33,0x1d,0x01, +0x0c,0x1c,0x30,0x23,0x25,0x59,0x4e,0x34,0xa4,0xad,0x05,0x0e,0x0e,0x09,0x03,0x2c,0xb5,0xb5,0xb5,0x63,0xb5,0x00,0x00,0x04,0x00,0x82,0xfe,0x10,0x05,0x91,0x04,0xcc,0x00,0x35,0x00,0x4e,0x00,0x52,0x00,0x56,0x00,0x00,0x05,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e, +0x04,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x04,0x15,0x14,0x0e,0x04,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x02,0x9c,0x94,0xc5,0x77,0x32,0x23,0x1d,0x97,0x17,0x23,0x21,0x52,0x8e,0x6d, +0x6d,0xbd,0x8d,0x51,0x33,0x4b,0x59,0x4b,0x33,0x54,0x96,0xd1,0x7e,0x64,0x9c,0x6c,0x38,0x33,0x4d,0x5a,0x4d,0x33,0x27,0x4e,0x73,0x98,0xbc,0xfe,0xa1,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xc2,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xab,0x4e,0x85,0xb1,0x63,0x5b,0xba,0x5b,0x58, +0xaf,0x55,0x47,0x7b,0x5c,0x34,0x2e,0x4b,0x5e,0x30,0x26,0x33,0x2c,0x2e,0x40,0x5c,0x45,0x55,0x7f,0x5b,0x3b,0x12,0xa2,0x0d,0x23,0x31,0x41,0x2a,0x29,0x39,0x2f,0x2c,0x3a,0x4f,0x3a,0x31,0x6a,0x68,0x5e,0x47,0x2a,0x05,0x0c,0x03,0x04,0x25,0x2b,0x58,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0xf9,0x4a,0xb5,0xb5,0xb5, +0x00,0x04,0xff,0xba,0xfe,0xa6,0x02,0x48,0x05,0x3e,0x00,0x16,0x00,0x1a,0x00,0x1e,0x00,0x37,0x00,0x00,0x37,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26, +0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x99,0x2e,0x47,0x30,0x18,0x9c,0x1c,0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x01,0x06,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x63,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x3d,0x4b,0x6e,0x4c, +0x31,0x1a,0x0a,0x34,0x20,0x20,0x33,0xfe,0x0d,0xb5,0xb5,0xb5,0x05,0x78,0x03,0x04,0x25,0x2b,0x58,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0x00,0x04,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0x3e,0x00,0x1f,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x00,0x01,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23, +0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x03,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0xf2,0x0c,0x27,0x4a,0x3d,0x16,0x64,0x78,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23, +0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0x0d,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xdf,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0xbc,0x01,0xc4,0x03,0x04,0x25, +0x2b,0x58,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0xf9,0x6e,0xb5,0xb5,0xb5,0x00,0x04,0x00,0x82,0xfd,0xc0,0x06,0xae,0x04,0x68,0x00,0x44,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0x00,0x25,0x15,0x23,0x22,0x2e,0x04,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34, +0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x05,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x06,0xae,0x16,0x43,0x67, +0x4e,0x3b,0x2d,0x25,0x12,0x17,0x2b,0x18,0x1d,0x27,0x20,0x26,0x20,0x2d,0x4e,0x68,0x77,0x80,0x3e,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x21,0x5a,0xa1,0x81,0x54,0x81,0x59,0x2d,0x20,0x26,0x20,0x26,0x41,0x57,0x30,0x31,0x60,0x27,0x11,0x1e,0x21,0x2a,0x3b,0x52,0xfb,0x36,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55, +0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xc2,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x99,0xa7,0x21,0x35,0x45,0x47,0x44,0x1b,0x23,0x1c,0x22,0x24,0x21,0x2c,0x2f,0x3e,0x34,0x3a,0x5c,0x47,0x31,0x20,0x0e,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6f,0x3e,0x4a,0x7c,0x5c,0x33,0x16,0x27,0x35,0x20,0x1c,0x2b,0x30,0x41,0x32,0x35,0x57, +0x3e,0x22,0x2c,0x3a,0x1a,0x3d,0x3d,0x3a,0x2c,0x1a,0x03,0x64,0x03,0x04,0x25,0x2b,0x58,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0xf9,0x5e,0xb5,0xb5,0xb5,0x00,0x00,0x04,0x00,0x9a,0xfe,0x10,0x05,0x91,0x04,0x78,0x00,0x35,0x00,0x39,0x00,0x3d,0x00,0x41,0x00,0x00,0x05,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06, +0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x04,0x15,0x14,0x0e,0x04,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x02,0x9c,0x94,0xc5,0x77,0x32,0x23,0x1d,0x97,0x17,0x23,0x21,0x52,0x8e,0x6d,0x6d,0xbd,0x8d,0x51,0x33,0x4b,0x59,0x4b, +0x33,0x54,0x96,0xd1,0x7e,0x64,0x9c,0x6c,0x38,0x33,0x4d,0x5a,0x4d,0x33,0x27,0x4e,0x73,0x98,0xbc,0x9d,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xfe,0xb2,0xb9,0xb9,0xab,0x4e,0x85,0xb1,0x63,0x5b,0xba,0x5b,0x58,0xaf,0x55,0x47,0x7b,0x5c,0x34,0x2e,0x4b,0x5e,0x30,0x26,0x33,0x2c,0x2e,0x40,0x5c,0x45,0x55,0x7f,0x5b,0x3b,0x12,0xa2,0x0d,0x23, +0x31,0x41,0x2a,0x29,0x39,0x2f,0x2c,0x3a,0x4f,0x3a,0x31,0x6a,0x68,0x5e,0x47,0x2a,0xfe,0xbb,0xb5,0xb5,0xb5,0x04,0xfe,0xb5,0x00,0x04,0xff,0xba,0xfe,0xa6,0x02,0x48,0x04,0xb2,0x00,0x16,0x00,0x1a,0x00,0x1e,0x00,0x22,0x00,0x00,0x37,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x01, +0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x99,0x2e,0x47,0x30,0x18,0x9c,0x1c,0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x01,0x06,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x4f,0xb9,0xb9,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x3d,0x4b,0x6e,0x4c,0x31,0x1a,0x0a,0x34,0x20,0x20,0x33,0xfe,0x0d,0xb5,0xb5,0xb5,0x04, +0xa2,0xb5,0x00,0x04,0xff,0xba,0xfe,0xa6,0x02,0xac,0x04,0xb2,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x00,0x01,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x01,0xf2, +0x0c,0x27,0x4a,0x3d,0x16,0x64,0x78,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0xec,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x4f,0xb9,0xb9,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0xbc,0xfb,0x97,0xb5,0xb5,0xb5,0x04, +0xa2,0xb5,0x00,0x04,0x00,0x9a,0xfd,0xc0,0x06,0xae,0x03,0xba,0x00,0x44,0x00,0x48,0x00,0x4c,0x00,0x50,0x00,0x00,0x25,0x15,0x23,0x22,0x2e,0x04,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e, +0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x05,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x06,0xae,0x16,0x43,0x67,0x4e,0x3b,0x2d,0x25,0x12,0x17,0x2b,0x18,0x1d,0x27,0x20,0x26,0x20,0x2d,0x4e,0x68,0x77,0x80,0x3e,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x21,0x5a,0xa1,0x81,0x54,0x81,0x59,0x2d, +0x20,0x26,0x20,0x26,0x41,0x57,0x30,0x31,0x60,0x27,0x11,0x1e,0x21,0x2a,0x3b,0x52,0xfb,0xf8,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xfe,0x9b,0xb9,0xb9,0x99,0xa7,0x21,0x35,0x45,0x47,0x44,0x1b,0x23,0x1c,0x22,0x24,0x21,0x2c,0x2f,0x3e,0x34,0x3a,0x5c,0x47,0x31,0x20,0x0e,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6f,0x3e,0x4a,0x7c,0x5c, +0x33,0x16,0x27,0x35,0x20,0x1c,0x2b,0x30,0x41,0x32,0x35,0x57,0x3e,0x22,0x2c,0x3a,0x1a,0x3d,0x3d,0x3a,0x2c,0x1a,0xfd,0x27,0xb5,0xb5,0xb5,0x04,0x90,0xb5,0x00,0x02,0xff,0xa6,0xfd,0xff,0x03,0x5a,0x02,0x5e,0x00,0x28,0x00,0x38,0x00,0x00,0x01,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e, +0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x03,0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x02,0x31,0x1a,0x28,0x1c,0x0f,0x0f,0x0d,0x3c,0x6c,0x30,0x8b,0x3f,0x51,0x23,0x56,0x5f,0x64,0x30,0x45,0x6f,0x4f,0x2a,0x2e,0x4e,0x67,0x39,0x4e,0x9a,0x4b,0x07,0x05,0x13,0x1f, +0x29,0x16,0xbc,0x46,0x78,0x2a,0x37,0x7c,0x47,0x26,0x31,0x1d,0x0b,0x0f,0x23,0x37,0x02,0x5e,0x41,0x8e,0x8f,0x8b,0x3e,0x3e,0x6d,0x31,0x2b,0x72,0x4a,0x57,0x61,0x44,0x36,0x4a,0x2e,0x15,0x22,0x40,0x5d,0x3b,0x3d,0x5b,0x3a,0x1d,0x1d,0x20,0x31,0x41,0x1e,0x4b,0x8e,0x88,0x83,0x3f,0xfc,0x49,0x33,0x39,0x18,0x19,0x0d,0x16,0x1d,0x10, +0x10,0x1c,0x15,0x0c,0x00,0x02,0xff,0xa6,0xfd,0xff,0x03,0x5a,0x02,0x5e,0x00,0x30,0x00,0x40,0x00,0x00,0x01,0x16,0x16,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26,0x27,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x03,0x32, +0x36,0x37,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x02,0x31,0x1e,0x2b,0x0f,0x06,0x1c,0x31,0x49,0x32,0x16,0x3f,0x4a,0x1a,0x0f,0x0d,0x3c,0x6c,0x30,0x8b,0x3f,0x51,0x23,0x56,0x5f,0x64,0x30,0x45,0x6f,0x4f,0x2a,0x2e,0x4e,0x67,0x39,0x4e,0x9a,0x4b,0x07,0x05,0x13,0x1f,0x29,0x16,0xbc,0x46,0x78,0x2a,0x37,0x7c,0x47,0x26, +0x31,0x1d,0x0b,0x0f,0x23,0x37,0x02,0x5e,0x4c,0xa5,0x53,0x21,0x31,0x20,0x0f,0xa7,0x24,0x21,0x3e,0x6d,0x31,0x2b,0x72,0x4a,0x57,0x61,0x44,0x36,0x4a,0x2e,0x15,0x22,0x40,0x5d,0x3b,0x3d,0x5b,0x3a,0x1d,0x1d,0x20,0x31,0x41,0x1e,0x4b,0x8e,0x88,0x83,0x3f,0xfc,0x49,0x33,0x39,0x18,0x19,0x0d,0x16,0x1d,0x10,0x10,0x1c,0x15,0x0c,0x00, +0x00,0x03,0x00,0x00,0xfd,0xff,0x03,0x49,0x02,0xb7,0x00,0x22,0x00,0x36,0x00,0x3a,0x00,0x00,0x11,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x2e,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x01, +0x23,0x35,0x33,0x6c,0xad,0x52,0x64,0x7b,0x45,0x1a,0x02,0x53,0x59,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x36,0x36,0x34,0x72,0xb6,0x82,0x5b,0xac,0x64,0x02,0xa9,0x01,0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0xfe,0x93,0xb9,0xb9,0xfe,0xf9,0x2c,0x23,0x42,0x68,0x82,0x41, +0x25,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x55,0xed,0x84,0x74,0xd3,0xa2,0x60,0x26,0x2e,0x02,0x66,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0xfe,0x8c,0xb5,0x00,0x03,0x00,0x00,0xfd,0xff,0x04,0x02,0x02,0xb7,0x00,0x27,0x00,0x38,0x00,0x3c,0x00,0x00,0x11,0x16,0x16,0x33,0x32,0x3e, +0x02,0x37,0x36,0x36,0x37,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x33,0x15,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x01,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x26,0x26,0x01,0x23,0x35,0x33,0x6c,0xad,0x52,0x45,0x66,0x48,0x2c,0x0c,0x05,0x0b,0x04,0x75,0x5c,0x92,0x66,0x36,0x30, +0x55,0x74,0x44,0x48,0x77,0x36,0x2d,0x35,0x07,0xbc,0xbd,0x08,0x3e,0x74,0xab,0x75,0x5b,0xac,0x64,0x02,0x8d,0x0d,0x25,0x2c,0x34,0x1c,0x1d,0x37,0x2c,0x1b,0x7c,0x87,0x65,0x04,0x0e,0xfe,0x7f,0xb9,0xb9,0xfe,0xf9,0x2c,0x23,0x21,0x39,0x4c,0x2c,0x13,0x3d,0x26,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x56,0x48,0xbf,0x6d,0xa7, +0x66,0xb5,0x88,0x50,0x26,0x2e,0x02,0xe1,0x26,0x4d,0x3d,0x26,0x26,0x3c,0x4c,0x26,0x4b,0x52,0x27,0x4e,0xfe,0x23,0xb5,0x00,0x00,0x04,0x00,0x02,0xfe,0x8d,0x03,0xfe,0x03,0x62,0x00,0x3d,0x00,0x51,0x00,0x55,0x00,0x59,0x00,0x00,0x25,0x16,0x16,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23, +0x22,0x0e,0x02,0x15,0x15,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x27,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x15,0x1d,0x47,0x26,0x19,0x23,0x23,0x23, +0x23,0x22,0x17,0x3f,0x4a,0x51,0x27,0x32,0x5e,0x4d,0x35,0x07,0x10,0x29,0x49,0x39,0x21,0x83,0x03,0x01,0x41,0x67,0x7f,0x3e,0x10,0x22,0x0a,0x02,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x82,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19,0x43,0x74,0x5b,0x21,0x19,0x87,0xb9,0xb9, +0x01,0x42,0xb9,0xb9,0xa5,0x05,0x07,0x33,0x20,0x20,0x34,0x07,0x0e,0x16,0x0f,0x16,0x17,0x0b,0x02,0x25,0x4f,0x7b,0x56,0x20,0x16,0x1e,0x05,0x7d,0xb1,0x71,0x34,0x01,0x01,0x07,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x57,0x21,0x4a,0x53,0x5a,0x30,0x42,0x64,0xa2,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20, +0x3e,0x44,0x4a,0x2b,0x18,0x4f,0xfd,0x75,0xb5,0xb5,0xb5,0x00,0x00,0x04,0x00,0x02,0xfe,0x8d,0x04,0x1c,0x03,0x62,0x00,0x37,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x00,0x25,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x37,0x2e,0x03,0x35,0x34, +0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x1c,0x30,0x2c,0x60,0x5f,0x5c,0x27,0x32,0x5e,0x4d,0x35,0x07,0x10,0x29,0x49,0x39,0x21,0x83,0x03,0x01,0x41,0x67,0x7f,0x3e,0x0e,0x25, +0x09,0x02,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x39,0x8b,0xfe,0xd3,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19,0x43,0x74,0x5b,0x21,0x19,0x87,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x99,0xa7,0x07,0x0e,0x16,0x0f,0x16,0x17,0x0b,0x02,0x25,0x4f,0x7b,0x56,0x20,0x16,0x1e,0x05, +0x7d,0xb1,0x71,0x34,0x01,0x01,0x07,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x57,0x21,0x4a,0x53,0x5a,0x30,0x42,0x64,0x26,0x09,0x03,0xd4,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3e,0x44,0x4a,0x2b,0x18,0x4f,0xfd,0x75,0xb5,0xb5,0xb5,0x00,0x00,0x01,0x00,0x00,0x06,0x40,0x02,0x35,0x07,0xaa,0x00,0x1b, +0x00,0x00,0x13,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x0c,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0x06,0x40,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b,0x20,0x23, +0x3d,0x2d,0x19,0x1e,0x20,0x13,0x0d,0x00,0x00,0x02,0x00,0x00,0x06,0x76,0x02,0x33,0x08,0x14,0x00,0x2a,0x00,0x37,0x00,0x00,0x01,0x06,0x07,0x06,0x07,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x03,0x33,0x32,0x37,0x36,0x37,0x26,0x27,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x36,0x37,0x27,0x34,0x26, +0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x02,0x33,0x25,0x29,0x0b,0x11,0x22,0x72,0x54,0x21,0x44,0x3e,0x31,0x0d,0x44,0x07,0x1a,0x27,0x34,0x22,0x2d,0x26,0x12,0x10,0x10,0x10,0x1c,0x2c,0x1b,0x18,0x29,0x38,0x21,0x1f,0x38,0x2a,0x19,0x04,0x0f,0x0e,0x6e,0x2a,0x1b,0x1c,0x28,0x29,0x15,0x24,0x1c,0x0b,0x07,0x07,0x0c,0x09, +0x14,0x12,0x25,0x31,0x13,0x22,0x31,0x1e,0x35,0x0e,0x22,0x1e,0x14,0x0b,0x05,0x07,0x02,0x05,0x09,0x24,0x38,0x27,0x23,0x3a,0x29,0x17,0x14,0x29,0x3d,0x29,0x14,0x15,0x06,0x07,0x19,0x2a,0x21,0x24,0x1f,0x1f,0x24,0x02,0x1a,0x00,0x00,0x01,0x00,0x00,0xfe,0x89,0x02,0x35,0xff,0xf3,0x00,0x1b,0x00,0x00,0x13,0x26,0x35,0x34,0x3e,0x02, +0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x0c,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0xfe,0x89,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x13,0x0d,0x00, +0x00,0x02,0x00,0x00,0x06,0x40,0x02,0x7b,0x08,0x72,0x00,0x1b,0x00,0x37,0x00,0x00,0x13,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x27,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22, +0x06,0x15,0x14,0x17,0x52,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0x9f,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0x06,0x40,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e, +0x20,0x13,0x0d,0x9d,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x13,0x0d,0x00,0x00,0x04,0x00,0x00,0x06,0x76,0x02,0xdd,0x08,0xfa,0x00,0x28,0x00,0x51,0x00,0x5e,0x00,0x6c,0x00,0x00,0x01,0x06,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x03,0x33,0x32,0x37,0x2e,0x03, +0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x36,0x36,0x37,0x01,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x03,0x23,0x22,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x06,0x06,0x07,0x17,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x05,0x34,0x26,0x23,0x22, +0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x36,0x02,0xdd,0x26,0x28,0x0f,0x2e,0x40,0x53,0x34,0x21,0x44,0x3e,0x31,0x0d,0x44,0x07,0x1a,0x27,0x34,0x22,0x43,0x31,0x19,0x2f,0x24,0x16,0x18,0x29,0x38,0x21,0x1f,0x38,0x2a,0x19,0x04,0x08,0x0e,0x07,0xfd,0x35,0x25,0x29,0x0f,0x2e,0x40,0x52,0x35,0x21,0x44,0x3e,0x30,0x0e,0x44,0x08,0x19, +0x27,0x34,0x22,0x44,0x31,0x19,0x2f,0x25,0x16,0x18,0x29,0x38,0x21,0x1f,0x38,0x2a,0x19,0x04,0x08,0x0e,0x07,0x6e,0x2a,0x1b,0x1c,0x28,0x29,0x15,0x24,0x1c,0x0b,0x01,0xdd,0x2a,0x1b,0x1c,0x28,0x29,0x15,0x12,0x20,0x0e,0x0b,0x07,0x07,0x0c,0x09,0x1a,0x2d,0x21,0x14,0x13,0x22,0x31,0x1e,0x35,0x0e,0x22,0x1e,0x14,0x17,0x03,0x15,0x24, +0x34,0x23,0x23,0x3a,0x29,0x17,0x14,0x29,0x3d,0x29,0x16,0x13,0x03,0x06,0x04,0x01,0x14,0x0c,0x09,0x19,0x2e,0x21,0x14,0x13,0x22,0x31,0x1e,0x35,0x0d,0x22,0x1e,0x15,0x18,0x03,0x15,0x24,0x34,0x22,0x23,0x3a,0x29,0x17,0x14,0x29,0x3d,0x29,0x15,0x13,0x02,0x07,0x03,0x19,0x2a,0x21,0x24,0x1f,0x1f,0x24,0x03,0x1b,0xb1,0x2a,0x21,0x24, +0x1f,0x1f,0x24,0x01,0x01,0x1b,0x00,0x02,0x00,0x00,0xfd,0xc1,0x02,0x7b,0xff,0xf3,0x00,0x1b,0x00,0x37,0x00,0x00,0x13,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x27,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15, +0x14,0x0e,0x02,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x52,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0x9f,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0xfd,0xc1,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b, +0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x13,0x0d,0x9d,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x13,0x0d,0x00,0x00,0x01,0x00,0x64,0x06,0x76,0x01,0x1d,0x07,0x2b,0x00,0x03,0x00,0x00,0x01,0x23,0x35,0x33,0x01,0x1d,0xb9,0xb9,0x06,0x76,0xb5,0x00,0x00,0x02,0x00,0x64,0x06,0x76, +0x02,0x5f,0x07,0x2b,0x00,0x03,0x00,0x07,0x00,0x00,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x1d,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x06,0x76,0xb5,0xb5,0xb5,0x00,0x00,0x02,0x00,0x00,0x06,0x41,0x02,0x3f,0x07,0xda,0x00,0x1c,0x00,0x2b,0x00,0x00,0x01,0x26,0x27,0x06,0x07,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16, +0x17,0x16,0x17,0x36,0x37,0x17,0x06,0x07,0x06,0x07,0x16,0x17,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x01,0xa4,0x09,0x0b,0x1a,0x1e,0x36,0x43,0x28,0x50,0x3f,0x28,0x5a,0x51,0x3b,0x6c,0x2b,0x27,0x1e,0x37,0x2a,0x1c,0x1a,0x21,0x0e,0x10,0x0b,0x07,0xb5,0x1e,0x4a,0x28,0x0f,0x20,0x1b,0x11,0x47,0x3d, +0x4c,0x3f,0x11,0x06,0x41,0x23,0x20,0x04,0x04,0x06,0x0d,0x27,0x48,0x3a,0x51,0x5d,0x3e,0x36,0x30,0x3f,0x0f,0x10,0x64,0x07,0x0b,0x04,0x05,0x23,0x26,0xcf,0x2a,0x30,0x07,0x12,0x1e,0x17,0x29,0x27,0x0a,0x20,0x00,0x01,0x00,0x64,0xfe,0xa6,0x01,0x1d,0xff,0x5b,0x00,0x03,0x00,0x00,0x01,0x23,0x35,0x33,0x01,0x1d,0xb9,0xb9,0xfe,0xa6, +0xb5,0x00,0x00,0x02,0x00,0x64,0xfe,0xa6,0x02,0x5f,0xff,0x5b,0x00,0x03,0x00,0x07,0x00,0x00,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x1d,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xfe,0xa6,0xb5,0xb5,0xb5,0x00,0x00,0x02,0x00,0x00,0xfd,0xd1,0x02,0x3f,0xff,0x6a,0x00,0x1c,0x00,0x2b,0x00,0x00,0x01,0x26,0x27,0x06,0x07,0x06,0x23,0x22, +0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x16,0x17,0x36,0x37,0x17,0x06,0x07,0x06,0x07,0x16,0x17,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x01,0xa4,0x09,0x0b,0x1b,0x1d,0x36,0x43,0x28,0x50,0x3f,0x28,0x5a,0x51,0x3b,0x6c,0x2b,0x27,0x1e,0x37,0x2a,0x1c,0x1a,0x21,0x0e,0x10,0x0b,0x07,0xb5,0x1e, +0x4a,0x28,0x0f,0x20,0x1b,0x11,0x47,0x3d,0x4c,0x40,0x11,0xfd,0xd1,0x23,0x21,0x05,0x03,0x07,0x0d,0x27,0x48,0x3a,0x51,0x5d,0x3e,0x36,0x30,0x3f,0x0f,0x10,0x64,0x07,0x0a,0x05,0x04,0x24,0x26,0xd0,0x29,0x30,0x07,0x12,0x1e,0x17,0x29,0x27,0x0a,0x20,0x00,0x02,0x00,0x00,0x06,0x76,0x02,0xae,0x08,0x74,0x00,0x03,0x00,0x07,0x00,0x00, +0x11,0x25,0x17,0x05,0x13,0x25,0x17,0x05,0x02,0x22,0x1e,0xfd,0xde,0x50,0x02,0x22,0x1e,0xfd,0xde,0x06,0xde,0x9c,0x68,0x9c,0x01,0x62,0x9c,0x68,0x9c,0x00,0x00,0x04,0xff,0xbf,0x06,0x55,0x03,0xd2,0x08,0x0e,0x00,0x21,0x00,0x2f,0x00,0x51,0x00,0x5f,0x00,0x00,0x01,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x37,0x16,0x16,0x33,0x32, +0x36,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x05,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37, +0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x01,0x3c,0x17,0x28,0x11,0x18,0x30,0x15,0x72,0x5e,0x12,0x33,0x5a,0x39,0x01,0x0b,0x07,0x34,0x1e,0x32,0x3f,0x20,0x1f,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x04,0x33,0x1f,0x10,0x1f,0x19,0x0f,0x23,0x1a,0x30,0x3c,0x01,0xcf,0x17,0x28,0x11,0x18,0x30,0x15,0x72,0x5e, +0x12,0x33,0x5a,0x39,0x01,0x0b,0x07,0x34,0x1e,0x32,0x3f,0x20,0x1f,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x04,0x33,0x1f,0x10,0x1f,0x19,0x0f,0x23,0x1a,0x30,0x3c,0x06,0x55,0x11,0x22,0x11,0x05,0x03,0x1c,0x53,0x0d,0x0f,0x01,0x02,0x43,0x44,0x26,0x3c,0x29,0x15,0x14,0x29,0x3d,0x29,0x42,0x5a,0x1a,0x0b,0x10,0x08,0xd6,0x29,0x25, +0x09,0x13,0x1c,0x12,0x1d,0x3d,0x1d,0x10,0x39,0xe9,0x11,0x22,0x11,0x05,0x03,0x1c,0x53,0x0d,0x0f,0x01,0x02,0x43,0x44,0x26,0x3c,0x29,0x15,0x14,0x29,0x3d,0x29,0x42,0x5a,0x1a,0x0b,0x10,0x08,0xd6,0x29,0x25,0x09,0x13,0x1c,0x12,0x1d,0x3d,0x1d,0x10,0x39,0x00,0x00,0x02,0x00,0x00,0xfd,0x6c,0x02,0xae,0xff,0x6a,0x00,0x03,0x00,0x07, +0x00,0x00,0x11,0x25,0x17,0x05,0x13,0x25,0x17,0x05,0x02,0x22,0x1e,0xfd,0xde,0x50,0x02,0x22,0x1e,0xfd,0xde,0xfd,0xd4,0x9c,0x68,0x9c,0x01,0x62,0x9c,0x68,0x9c,0x00,0x00,0x02,0x00,0x00,0x06,0x76,0x01,0xc8,0x08,0xdd,0x00,0x23,0x00,0x35,0x00,0x00,0x11,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34, +0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x3c,0x5c,0x2b,0x34,0x41,0x25,0x0e,0x15,0x2d,0x17,0x24,0x42,0x33,0x1e,0x1a,0x2e,0x3f,0x24,0x26,0x45,0x1d,0x1d,0x1d,0x1e,0x3f,0x63,0x45,0x31,0x5c,0x36,0x01,0x6a,0x01,0x11, +0x1d,0x25,0x15,0x0f,0x1c,0x17,0x0e,0x12,0x1d,0x27,0x15,0x13,0x28,0x07,0x01,0x18,0x12,0x1e,0x31,0x3d,0x20,0x08,0x0a,0x16,0x2a,0x3d,0x28,0x22,0x47,0x39,0x25,0x2b,0x2e,0x2d,0x70,0x47,0x3e,0x6c,0x51,0x2f,0x10,0x19,0x01,0x3d,0x14,0x38,0x33,0x24,0x0f,0x1a,0x24,0x14,0x13,0x1f,0x15,0x0c,0x06,0x00,0x00,0x03,0x00,0x0a,0x06,0x7b, +0x02,0x06,0x08,0x1c,0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x00,0x13,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x33,0x15,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x32,0x36,0x37,0x23,0x16,0x16,0x13,0x22,0x06,0x07,0x33,0x26,0x26,0x0a,0x5c,0x0a,0x50,0x42,0x42,0x52,0x0b,0x65,0x64,0x08,0x50,0x48,0x45,0x51,0x08,0x5a,0xfb,0x2a,0x22, +0x04,0xa3,0x04,0x25,0x2a,0x27,0x26,0x05,0xa0,0x05,0x23,0x07,0x7e,0x50,0x4e,0x4e,0x50,0x58,0x55,0x56,0x56,0x55,0x60,0x2b,0x35,0x35,0x2b,0x01,0x0b,0x25,0x2e,0x2d,0x26,0x00,0x00,0x02,0x00,0x05,0x06,0x7c,0x02,0x01,0x07,0xdf,0x00,0x03,0x00,0x07,0x00,0x00,0x13,0x21,0x15,0x21,0x25,0x23,0x35,0x33,0x05,0x01,0xfc,0xfe,0x04,0x01, +0x5b,0xb9,0xb9,0x06,0xd4,0x58,0xae,0xb5,0x00,0x02,0x00,0x05,0xfe,0x07,0x02,0x01,0xff,0x6a,0x00,0x03,0x00,0x07,0x00,0x00,0x17,0x21,0x15,0x21,0x01,0x23,0x35,0x33,0x05,0x01,0xfc,0xfe,0x04,0x01,0x5b,0xb9,0xb9,0x96,0x58,0xfe,0xf5,0xb5,0x00,0x01,0x00,0x00,0x06,0x62,0x01,0x49,0x08,0x48,0x00,0x06,0x00,0x00,0x11,0x25,0x15,0x07, +0x17,0x15,0x25,0x01,0x49,0xe7,0xe7,0xfe,0xb7,0x07,0x8e,0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x00,0x01,0x00,0x00,0x06,0x62,0x01,0x49,0x08,0x48,0x00,0x06,0x00,0x00,0x01,0x05,0x35,0x37,0x27,0x35,0x05,0x01,0x49,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x07,0x1c,0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x00,0x01,0x00,0x00,0xfd,0x84,0x01,0x49, +0xff,0x6a,0x00,0x06,0x00,0x00,0x11,0x25,0x15,0x07,0x17,0x15,0x25,0x01,0x49,0xe7,0xe7,0xfe,0xb7,0xfe,0xb0,0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x00,0x01,0x00,0x00,0xfd,0x84,0x01,0x49,0xff,0x6a,0x00,0x06,0x00,0x00,0x01,0x05,0x35,0x37,0x27,0x35,0x05,0x01,0x49,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0xfe,0x3e,0xba,0x7d,0x76,0x76,0x7d, +0xba,0x00,0x00,0x02,0x00,0x00,0x06,0x62,0x02,0xd9,0x08,0x48,0x00,0x06,0x00,0x0d,0x00,0x00,0x01,0x05,0x35,0x37,0x27,0x35,0x0d,0x02,0x35,0x37,0x27,0x35,0x05,0x01,0x49,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x01,0x90,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x07,0x1c,0xba,0x7d,0x76,0x76,0x7d,0xba,0x72,0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x03, +0x00,0x64,0x06,0x62,0x04,0x41,0x08,0x48,0x00,0x03,0x00,0x0a,0x00,0x11,0x00,0x00,0x01,0x23,0x35,0x33,0x05,0x05,0x35,0x37,0x27,0x35,0x0d,0x02,0x35,0x37,0x27,0x35,0x05,0x01,0x1d,0xb9,0xb9,0x01,0x94,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x01,0x90,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x06,0xf8,0xb5,0x91,0xba,0x7d,0x76,0x76,0x7d,0xba,0x72, +0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x02,0x00,0x64,0x06,0x62,0x02,0xb1,0x08,0x48,0x00,0x03,0x00,0x0a,0x00,0x00,0x01,0x23,0x35,0x33,0x05,0x05,0x35,0x37,0x27,0x35,0x05,0x01,0x1d,0xb9,0xb9,0x01,0x94,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x06,0xf8,0xb5,0x91,0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x00,0x03,0x00,0x00,0x06,0x55,0x02,0x84, +0x08,0x0e,0x00,0x21,0x00,0x2f,0x00,0x33,0x00,0x00,0x01,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x37,0x16,0x16,0x33,0x32,0x32,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x25,0x23,0x35,0x33,0x01,0xf6,0x17,0x28,0x11, +0x18,0x30,0x15,0x72,0x5e,0x12,0x33,0x5a,0x39,0x01,0x0c,0x08,0x36,0x1e,0x32,0x3f,0x20,0x1f,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x04,0x33,0x1f,0x10,0x1f,0x19,0x0f,0x23,0x1a,0x30,0x3c,0xfe,0x8a,0xb9,0xb9,0x06,0x55,0x11,0x22,0x11,0x05,0x03,0x1c,0x53,0x0d,0x0f,0x02,0x45,0x43,0x26,0x3c,0x29,0x15,0x14,0x29,0x3d,0x29,0x42, +0x5a,0x1a,0x0b,0x10,0x08,0xd6,0x29,0x25,0x09,0x13,0x1c,0x12,0x1d,0x3d,0x1d,0x10,0x39,0x11,0xb5,0x00,0x00,0x01,0x00,0x73,0xff,0xf2,0x0b,0xf8,0x02,0x3e,0x00,0x45,0x00,0x2c,0xb1,0x40,0x37,0xb8,0x04,0xfb,0xb5,0x0e,0x45,0x45,0x3c,0x3c,0x30,0xb8,0x04,0xfb,0xb4,0x15,0x05,0x0e,0x28,0x1f,0xb9,0x04,0xfb,0x00,0x21,0x00,0x2f,0xfd, +0x32,0xde,0x32,0xdc,0xed,0x32,0x2f,0x33,0x2f,0x10,0xed,0x32,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x33,0x15,0x21,0x22,0x26,0x27,0x27,0x37,0x21,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x04,0x33,0x32,0x3e,0x02,0x35,0x33,0x14, +0x16,0x33,0x32,0x3e,0x02,0x35,0x0b,0xf8,0x16,0x2d,0x44,0x2e,0x2d,0x4a,0x17,0x07,0x12,0x24,0x26,0x28,0x16,0x29,0x39,0x2c,0x25,0x2b,0x36,0x26,0x20,0x24,0x14,0x05,0x0b,0x17,0x21,0x17,0x8c,0xf8,0x84,0x55,0xb2,0x51,0x1c,0x05,0x07,0xa7,0x17,0x15,0x1a,0x38,0x56,0x3c,0x2a,0x3d,0x30,0x28,0x29,0x2f,0x20,0x20,0x2d,0x1c,0x0d,0x6e, +0x26,0x33,0x13,0x18,0x0e,0x06,0x02,0x3d,0x45,0x6f,0x4e,0x2a,0x27,0x2a,0x1a,0x20,0x11,0x06,0x14,0x1e,0x24,0x1e,0x14,0x11,0x1a,0x20,0x10,0x15,0x30,0x2e,0x27,0x0b,0xa7,0x0e,0x0f,0x85,0x05,0x25,0x5c,0x23,0x30,0x5a,0x47,0x2b,0x17,0x22,0x27,0x22,0x17,0x20,0x30,0x37,0x17,0x54,0x4a,0x1f,0x30,0x37,0x18,0x00,0x00,0x01,0x00,0xbc, +0x00,0x00,0x03,0xfa,0x05,0x9a,0x00,0x07,0x00,0x00,0x01,0x15,0x21,0x11,0x23,0x11,0x33,0x11,0x03,0xfa,0xfd,0x6a,0xa8,0xa8,0x03,0x25,0x97,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0x04,0x04,0x00,0x00,0x07,0x00,0x00,0x01,0x15,0x21,0x11,0x23,0x11,0x33,0x11,0x03,0x04,0xfe,0x46,0xa4,0xa4,0x02,0x5c, +0x8b,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x04,0x33,0x05,0x9a,0x00,0x0b,0x00,0x00,0x01,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x04,0x33,0xa8,0xf6,0xa8,0xf5,0xa8,0x05,0x9a,0xfe,0x1e,0x01,0x4a,0xfa,0xfe,0x05,0x02,0xfe,0xb6,0x01,0xe2,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x03,0xe8, +0x05,0x3f,0x00,0x0b,0x00,0x00,0x01,0x11,0x23,0x35,0x23,0x11,0x23,0x11,0x23,0x15,0x23,0x11,0x03,0xe8,0x9e,0xdc,0xa4,0xdc,0x9e,0x05,0x3f,0xfe,0x8e,0xe6,0xfb,0x4d,0x04,0xb3,0xe6,0x01,0x72,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x05,0x9a,0x02,0x06,0x01,0xef,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x00,0x04,0x00, +0x02,0x06,0x02,0x0f,0x00,0x00,0x00,0x01,0x00,0xbc,0xfe,0x8c,0x04,0x98,0x05,0x9a,0x00,0x12,0x00,0x00,0x25,0x01,0x27,0x01,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x04,0x98,0xfe,0x30,0x63,0x01,0x49,0xfd,0xe0,0x1f,0x07,0x04,0xa8,0xa8,0x04,0x0e,0x18,0x02,0x18,0xd1,0xfd,0x99,0x05,0xfe,0x87, +0x74,0x01,0x0b,0x02,0x85,0x25,0x0d,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x16,0x1b,0x02,0x71,0xfd,0x50,0x00,0x00,0x01,0x00,0x10,0xff,0xe9,0x06,0xe4,0x05,0x9a,0x00,0x28,0x00,0x00,0x21,0x23,0x01,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x01,0x23,0x03,0x06,0x06,0x07,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x36,0x12,0x13, +0x21,0x01,0x16,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x06,0xe4,0xcd,0xfe,0xb6,0x10,0x11,0x04,0x05,0x11,0x0c,0xfe,0xac,0xce,0x01,0xe0,0xfe,0xa4,0x7a,0x6d,0x10,0x2d,0x14,0x52,0xc5,0x4f,0x3a,0x34,0x3d,0x3e,0x36,0x37,0x71,0x45,0x01,0x76,0x01,0x25,0x0e,0x1a,0x0b,0x04,0x1f,0x19,0x01,0x31,0xc1,0xfe,0x3d,0x02,0x25,0x1b,0x2c, +0x0b,0x24,0x18,0xfd,0xdb,0x02,0xd1,0x02,0x31,0xfd,0x02,0x71,0xa3,0x36,0xd1,0x15,0x9e,0x1d,0x4a,0x4a,0x02,0x6e,0x02,0x19,0xfe,0x08,0x19,0x32,0x19,0x41,0x27,0x01,0xf4,0xfd,0x39,0x00,0x00,0x01,0x00,0x10,0xff,0xf2,0x05,0x40,0x04,0x00,0x00,0x21,0x00,0x00,0x09,0x02,0x23,0x03,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x23,0x01,0x03, +0x23,0x02,0x07,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x13,0x16,0x16,0x17,0x33,0x01,0x05,0x40,0xfe,0xa8,0x01,0x52,0xbf,0xc9,0x14,0x19,0x04,0x02,0x18,0x15,0xcd,0xbd,0x01,0x5d,0xf5,0x30,0x29,0x64,0x63,0xa8,0x31,0x27,0x22,0x2a,0xdc,0x3f,0x01,0x1f,0xc6,0x0b,0x15,0x0b,0x04,0x01,0x00,0x04,0x00,0xfd,0xfa,0xfe,0x06, +0x01,0x4c,0x1f,0x2f,0x05,0x26,0x23,0xfe,0xb4,0x01,0xf6,0x01,0x7f,0xfe,0x0f,0xc9,0xc9,0x0e,0x8d,0x12,0x03,0x85,0xfe,0xa2,0x14,0x28,0x14,0x01,0xae,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x05,0xe0,0x05,0x9a,0x00,0x11,0x00,0x19,0x00,0x00,0x01,0x11,0x23,0x11,0x21,0x32,0x17,0x16,0x17,0x13,0x33,0x01,0x01,0x23,0x01,0x06,0x06,0x23, +0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0xa8,0x01,0x8a,0xe7,0x7d,0x73,0x0b,0xf1,0xc1,0xfe,0x3d,0x01,0xc9,0xcd,0xfe,0x63,0x42,0xab,0x68,0xbd,0xb0,0xaf,0xb6,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x05,0x9a,0x70,0x66,0xb5,0x01,0x8b,0xfd,0x39,0xfd,0x2d,0x02,0x80,0x32,0x30,0x02,0xe4,0xfd,0xb4,0x9e,0x92,0x01,0x1c,0x00,0x02, +0x00,0xa6,0xfe,0x29,0x05,0xea,0x04,0x18,0x00,0x1a,0x00,0x2f,0x00,0x00,0x09,0x02,0x23,0x03,0x0e,0x03,0x23,0x22,0x27,0x23,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x17,0x13,0x01,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x05,0xea,0xfe,0xa8,0x01,0x52,0xbf,0xe2,0x13,0x4e, +0x72,0x95,0x5a,0xc7,0x6c,0x04,0xa4,0xa4,0x04,0x79,0xe9,0x58,0x8f,0x6a,0x42,0x0b,0xe7,0xfc,0x15,0x2b,0x4e,0x6b,0x40,0x4b,0x76,0x52,0x2b,0x29,0x4c,0x6d,0x43,0x47,0x75,0x53,0x2e,0x04,0x00,0xfd,0xfa,0xfe,0x06,0x01,0x74,0x5b,0x93,0x67,0x37,0xac,0xfd,0x95,0x05,0xd7,0xb4,0xcc,0x3a,0x6b,0x99,0x5e,0x01,0x84,0xfe,0x31,0x8f,0x3f, +0x6f,0x52,0x30,0x3b,0x70,0x9f,0x65,0x55,0x87,0x5f,0x32,0x35,0x5e,0x80,0x00,0x02,0x00,0x3d,0x00,0x00,0x06,0x4d,0x05,0x9a,0x00,0x24,0x00,0x2f,0x00,0x00,0x21,0x21,0x11,0x23,0x22,0x0e,0x02,0x07,0x03,0x23,0x13,0x3e,0x03,0x37,0x35,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x01,0x11,0x23, +0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x06,0x4d,0xfd,0x08,0xd1,0x1e,0x34,0x31,0x2f,0x19,0xb4,0xc8,0xda,0x0a,0x21,0x2b,0x33,0x1d,0x47,0x70,0x4e,0x29,0x44,0x7a,0xaa,0x66,0x03,0xd0,0xfd,0xd0,0x02,0x06,0xfd,0xfa,0x02,0x50,0xfd,0x08,0xe9,0x8f,0x9c,0x2a,0x4d,0x6d,0x43,0x02,0x62,0x0b,0x25,0x47,0x3b,0xfe,0x50,0x01,0xdf,0x16,0x34, +0x30,0x29,0x0b,0x04,0x10,0x43,0x60,0x7b,0x47,0x5c,0x95,0x6a,0x39,0x98,0xfe,0x23,0x97,0xfe,0x0a,0x02,0x62,0x02,0x08,0x85,0x7b,0x3d,0x62,0x44,0x25,0x00,0x00,0x03,0x00,0x3e,0xff,0xe8,0x06,0x3a,0x04,0x18,0x00,0x28,0x00,0x31,0x00,0x38,0x00,0x00,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x27,0x23,0x22, +0x07,0x03,0x23,0x13,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x21,0x15,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x07,0x11,0x23,0x22,0x15,0x14,0x33,0x06,0x3a,0xfd,0x2d,0x04,0xaf,0x9b,0xac,0x92,0x88,0xdd,0x63,0xa1,0x77,0x48,0x0a,0x8c,0x63,0x51,0x85,0xbe,0xac,0x3d,0x54,0x79,0x7d,0x33, +0x61,0x8b,0x58,0x01,0x66,0x3e,0x9b,0x5a,0x65,0x9d,0x6b,0x38,0xa8,0x01,0x86,0x79,0x3a,0x64,0x4e,0x33,0x0a,0xab,0xc2,0xcf,0xc9,0x01,0xd7,0xac,0xb9,0x72,0x9a,0x62,0x3c,0x72,0xa7,0x6b,0xa0,0xfe,0xf8,0x01,0x3c,0x6f,0x22,0x10,0x8f,0x6d,0x44,0x6d,0x4d,0x29,0x62,0x3a,0x40,0x43,0x7f,0xb6,0x73,0x35,0x8f,0x9d,0x2c,0x4f,0x6f,0x42, +0x31,0x01,0x43,0x9d,0xa6,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x19,0x00,0x00,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x27,0x37,0x17,0x37,0x33,0x01,0x17,0x07,0x27,0x03,0x04,0xa2,0xea,0xfd,0xd6,0x1e,0x08,0x04,0xa8,0xa8,0x04,0x07,0x13,0x0c,0x01,0x04,0x7f,0x6a, +0x79,0xb0,0xd1,0xfe,0xe6,0x92,0x6e,0x8b,0xe6,0x02,0x90,0x24,0x0e,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x0b,0x18,0x0e,0x01,0x30,0x8d,0x69,0x82,0xcd,0xfe,0xc5,0x9c,0x71,0x99,0xfe,0xff,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x00,0x14,0x00,0x00,0x01,0x37,0x33,0x07,0x17,0x07,0x27,0x07,0x01,0x23,0x01,0x23,0x11,0x23, +0x11,0x33,0x11,0x33,0x37,0x27,0x37,0x02,0x84,0x78,0xd7,0xed,0x66,0x61,0x5e,0x95,0x02,0x00,0xe6,0xfe,0x3c,0x04,0xa4,0xa4,0x04,0xdf,0x57,0x5f,0x03,0x7d,0x83,0xf6,0x77,0x54,0x6e,0x9b,0xfd,0xee,0x01,0xec,0xfe,0x14,0x04,0x00,0xfe,0x2b,0xf3,0x66,0x55,0x00,0x00,0x01,0x00,0x10,0xfe,0x66,0x07,0x73,0x05,0x9a,0x00,0x2e,0x00,0x00, +0x01,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x23,0x11,0x21,0x03,0x06,0x06,0x07,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x36,0x12,0x13,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x03,0xfe,0xa3,0x9b,0xbe,0xc9,0x42,0x7a,0xb0,0x6d,0x46,0xa8,0xfe,0x72,0x6d,0x10,0x2d,0x14,0x52,0xc5, +0x4f,0x3a,0x34,0x3d,0x3e,0x36,0x37,0x71,0x45,0x02,0xc2,0x4a,0x93,0xee,0xa8,0x5c,0x4b,0x90,0xd2,0x86,0xae,0xfe,0xb2,0xb8,0x6c,0xde,0xcc,0x69,0xb9,0x89,0x4f,0xfd,0x5e,0x05,0x02,0xfd,0x02,0x71,0xa3,0x36,0xd1,0x15,0x9e,0x1d,0x4a,0x4a,0x02,0x6e,0x02,0x19,0xfd,0xa0,0x5f,0xac,0xf0,0x91,0x7d,0xd6,0x9c,0x59,0x00,0x01,0x00,0x10, +0xfe,0x66,0x05,0xf1,0x04,0x00,0x00,0x2c,0x00,0x00,0x01,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x23,0x11,0x23,0x06,0x02,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x02,0xed,0x75,0x8b,0x54,0x81,0x59,0x2e,0x39,0x6a,0x97,0x5e,0x20, +0xa3,0xee,0x15,0x46,0x65,0x85,0x53,0x31,0x27,0x22,0x2a,0xdc,0x3f,0x02,0x1a,0x42,0x7b,0xc8,0x8e,0x4d,0x49,0x87,0xbf,0x77,0x9a,0xfe,0xa0,0xa0,0x4e,0x30,0x5b,0x85,0x54,0x5d,0x94,0x67,0x38,0xfe,0x1a,0x03,0x75,0xfb,0xfe,0xa9,0xd4,0x5d,0x0e,0x8d,0x12,0x03,0x85,0xfe,0x74,0x4c,0x8d,0xc8,0x7b,0x6b,0xb6,0x85,0x4c,0x00,0x00,0x01, +0x00,0xbc,0xfe,0x66,0x07,0xc1,0x05,0x9a,0x00,0x25,0x00,0x00,0x01,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x04,0x4c,0xa3,0x9b,0xbe,0xc9,0x42,0x7a,0xb0,0x6d,0x46,0xa8,0xfd,0x1a,0xa8,0xa8,0x02, +0xe6,0xa8,0x4a,0x93,0xee,0xa8,0x5c,0x4b,0x90,0xd2,0x86,0xae,0xfe,0xb2,0xb8,0x6c,0xde,0xcc,0x69,0xb9,0x89,0x4f,0xfd,0x5e,0x02,0xa3,0xfd,0x5d,0x05,0x9a,0xfd,0xa0,0x02,0x60,0xfd,0xa0,0x5f,0xac,0xf0,0x91,0x7d,0xd6,0x9c,0x59,0x00,0x01,0x00,0xa6,0xfe,0x66,0x06,0x58,0x04,0x00,0x00,0x27,0x00,0x00,0x01,0x35,0x16,0x33,0x32,0x3e, +0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x03,0x54,0x75,0x8b,0x54,0x81,0x59,0x2e,0x39,0x6a,0x97,0x5e,0x20,0xa4,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0xa4,0x42,0x7b,0xc8,0x8e,0x4d,0x49,0x87,0xbf,0x77,0x9a,0xfe,0xa0,0xa0, +0x4e,0x30,0x5b,0x85,0x54,0x5d,0x94,0x67,0x38,0xfe,0x1a,0x01,0xd1,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4,0xfe,0x74,0x4c,0x8d,0xc8,0x7b,0x6b,0xb6,0x85,0x4c,0x00,0x00,0x01,0x00,0xa6,0xfe,0x7f,0x05,0x41,0x05,0x9a,0x00,0x16,0x00,0x00,0x13,0x33,0x11,0x36,0x33,0x32,0x1e,0x02,0x15,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x34,0x23, +0x22,0x07,0x11,0x23,0xa6,0xa8,0xe5,0xc5,0x5e,0x92,0x65,0x34,0xc0,0x9b,0xcd,0xf6,0xb1,0xe4,0xa8,0x05,0x9a,0xfd,0x7b,0x79,0x32,0x5f,0x8a,0x58,0xfe,0x7d,0xfd,0xe7,0x01,0x81,0x02,0x13,0xe7,0x6e,0xfd,0x74,0x00,0x01,0x00,0x98,0xfe,0x8b,0x04,0x76,0x04,0x00,0x00,0x13,0x00,0x00,0x01,0x23,0x11,0x23,0x11,0x34,0x23,0x22,0x07,0x11, +0x23,0x11,0x33,0x11,0x36,0x33,0x20,0x11,0x15,0x33,0x04,0x76,0x8d,0xae,0xc2,0x94,0xaa,0xa3,0xa3,0xb5,0x97,0x01,0x58,0x97,0xfe,0x8b,0x01,0x75,0x01,0x52,0xe1,0x56,0xfe,0x23,0x04,0x00,0xfe,0x64,0x62,0xfe,0x94,0xcf,0x00,0x01,0x00,0x35,0x00,0x00,0x02,0xa0,0x06,0x02,0x00,0x1a,0x00,0x00,0x01,0x07,0x11,0x23,0x11,0x07,0x35,0x37, +0x35,0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x11,0x37,0x02,0x77,0xf0,0xa3,0xaf,0xaf,0xaf,0xaf,0x32,0x58,0x76,0x45,0x4b,0x2c,0x30,0x3d,0xac,0xf0,0x02,0xec,0x92,0xfd,0xa6,0x01,0xf8,0x6a,0xa5,0x68,0xd9,0x8c,0xa6,0x51,0x81,0x5a,0x30,0x12,0x94,0x1b,0xd9,0xfe,0x5f,0x8f,0x00,0x01,0x00,0x35, +0x00,0x00,0x02,0xa0,0x06,0x02,0x00,0x18,0x00,0x00,0x01,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x3e,0x03,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x02,0x77,0xf0,0xa3,0xaf,0xaf,0xaf,0xba,0x0d,0x3b,0x52,0x67,0x39,0x4b,0x2c,0x30,0x3d,0x7b,0x23,0x05,0x09,0x8c,0xfb,0x83,0x03,0x74,0x8c,0x7d,0x8c,0x3a,0x5d, +0x40,0x22,0x12,0x94,0x1b,0x6e,0x00,0x02,0x00,0x5c,0xff,0xe7,0x04,0x53,0x05,0xfe,0x00,0x27,0x00,0x38,0x00,0x00,0x01,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x03,0x04,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e, +0x02,0x35,0x34,0x2e,0x02,0x03,0xe7,0xa9,0xab,0x32,0x51,0x3a,0x20,0x19,0x36,0x55,0x3c,0x72,0xa7,0x6e,0x36,0x4a,0x88,0xc0,0x77,0x6d,0xb5,0x83,0x49,0xd3,0xcc,0xee,0x36,0x65,0x91,0x5a,0xa6,0xbf,0xfe,0x92,0x2f,0x57,0x7a,0x4b,0x4f,0x7f,0x59,0x30,0x22,0x4a,0x75,0x05,0xbe,0xb7,0x65,0x12,0x21,0x2f,0x1d,0x18,0x31,0x36,0x3e,0x24, +0x45,0x7c,0x81,0x8f,0x5a,0x75,0xbb,0x83,0x47,0x46,0x7f,0xb1,0x6c,0x9c,0x01,0x01,0x58,0x93,0xa3,0x40,0x63,0x44,0x23,0xfd,0x75,0x95,0xfe,0xec,0x4f,0x7e,0x59,0x30,0x32,0x5d,0x82,0x50,0x3b,0x68,0x63,0x62,0x00,0x02,0x00,0xbc,0x00,0x00,0x05,0x0c,0x05,0x9a,0x00,0x05,0x00,0x09,0x00,0x00,0x21,0x21,0x11,0x33,0x11,0x21,0x05,0x23, +0x11,0x33,0x05,0x0c,0xfd,0x18,0xa8,0x02,0x40,0xfc,0x58,0xa8,0xa8,0x05,0x9a,0xfa,0xfe,0x98,0x05,0x9a,0x00,0x01,0x00,0x1e,0x00,0x00,0x03,0x26,0x05,0xec,0x00,0x13,0x00,0x00,0x01,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x03,0x26,0x88,0xa4,0xb0,0xa4,0x88,0x88,0xa4,0xb0, +0xa4,0x88,0x04,0xb2,0xfb,0x4e,0x04,0xb2,0xfb,0x4e,0x04,0xb2,0x86,0xb4,0xb4,0xb4,0xb4,0x00,0x00,0x01,0x00,0x81,0xff,0xe9,0x04,0x4b,0x05,0xee,0x00,0x25,0x00,0x00,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x37,0x17,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27, +0x03,0x8d,0x5a,0x64,0x43,0x7d,0xb1,0x6e,0x77,0xb7,0x7d,0x40,0x3b,0x62,0x7d,0x42,0x80,0x3e,0x6c,0x50,0x2e,0x2a,0x51,0x75,0x4b,0x43,0x6d,0x4e,0x2b,0x38,0x33,0x03,0x9b,0x43,0xda,0x8d,0x75,0xbf,0x89,0x4b,0x56,0xa4,0xf0,0x9b,0x92,0x01,0x11,0xea,0xb9,0x3a,0x6b,0x40,0x9e,0xc2,0xe8,0x8b,0x6c,0xb7,0x84,0x4b,0x36,0x5e,0x82,0x4c, +0x60,0x96,0x32,0x00,0x00,0x01,0x00,0x77,0xff,0xe8,0x03,0xaa,0x05,0xf1,0x00,0x25,0x00,0x00,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x37,0x17,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x02,0xf1,0x58,0x61,0x33,0x61,0x8c,0x5a,0x6c,0xa5,0x6f,0x39,0x3b,0x61, +0x7c,0x42,0x78,0x3e,0x6c,0x50,0x2e,0x25,0x47,0x66,0x41,0x31,0x4d,0x34,0x1c,0x38,0x33,0x03,0x96,0x42,0xd8,0x8c,0x75,0xbf,0x89,0x4b,0x56,0xa5,0xf0,0x9b,0x93,0x01,0x13,0xeb,0xb9,0x39,0x65,0x40,0x9f,0xc4,0xec,0x8d,0x6e,0xbb,0x88,0x4d,0x37,0x62,0x86,0x4e,0x61,0x98,0x33,0x00,0x00,0x02,0x00,0x06,0xff,0xe7,0x04,0x96,0x05,0x9a, +0x00,0x1a,0x00,0x29,0x00,0x00,0x01,0x01,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0x33,0x01,0x16,0x16,0x17,0x33,0x01,0x01,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x26,0x04,0x96,0xfe,0x45,0x3c,0x70,0x71,0x76,0x41,0x3b,0x5f,0x43,0x24,0x42,0x6e,0x8d,0x4b,0x30,0x2f,0xfe,0x4f,0xbf, +0x01,0x58,0x05,0x12,0x0e,0x05,0x01,0x65,0xfd,0x96,0x2e,0x4a,0x35,0x1d,0x3a,0x35,0x18,0x35,0x3c,0x42,0x24,0x43,0x05,0x9a,0xfc,0x17,0x87,0xb0,0x69,0x2a,0x26,0x44,0x5e,0x37,0x48,0x6f,0x4b,0x26,0x06,0x03,0x92,0xfd,0x02,0x0a,0x2e,0x25,0x03,0x5b,0xfb,0xea,0x15,0x26,0x35,0x20,0x3b,0x3c,0x19,0x38,0x5c,0x44,0x16,0x00,0x00,0x02, +0xff,0xbd,0xfe,0x1e,0x03,0xd5,0x04,0x00,0x00,0x19,0x00,0x29,0x00,0x00,0x01,0x01,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x01,0x33,0x01,0x17,0x33,0x36,0x36,0x37,0x01,0x01,0x22,0x0e,0x02,0x15,0x14,0x33,0x32,0x3e,0x02,0x37,0x37,0x26,0x22,0x03,0xd5,0xfe,0x29,0x7e,0xe4,0x32,0x52,0x3b,0x20,0x43,0x6f, +0x8f,0x4b,0x14,0x25,0x13,0xfe,0x79,0xb6,0x01,0x15,0x15,0x06,0x02,0x0a,0x08,0x01,0x23,0xfe,0x08,0x2e,0x4c,0x36,0x1e,0x49,0x12,0x2a,0x2b,0x28,0x0f,0x22,0x0e,0x1e,0x04,0x00,0xfb,0x5c,0xfe,0xc2,0x1b,0x36,0x51,0x36,0x48,0x6f,0x4a,0x26,0x02,0x02,0x03,0xe7,0xfc,0xec,0x4e,0x0c,0x26,0x1a,0x03,0x16,0xfb,0x93,0x15,0x25,0x35,0x20, +0x58,0x12,0x25,0x38,0x25,0x51,0x02,0x00,0x00,0x02,0x00,0xbc,0xff,0xe8,0x05,0x8c,0x05,0xb2,0x00,0x18,0x00,0x2d,0x00,0x00,0x01,0x3e,0x03,0x33,0x32,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x15,0x23,0x11,0x33,0x11,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x01,0x64, +0x27,0x70,0x7c,0x7e,0x35,0x85,0xe0,0xa2,0x5b,0x67,0xb0,0xea,0x82,0x42,0x7c,0x6c,0x5a,0x21,0xa8,0xa8,0x16,0x65,0x7c,0x84,0x35,0x5d,0xa5,0x7d,0x49,0x40,0x76,0xa5,0x66,0x33,0x82,0x7d,0x69,0x1c,0x04,0xab,0x4a,0x65,0x3d,0x1b,0x6a,0xc3,0xfe,0xeb,0xab,0xa9,0xfe,0xf1,0xbf,0x66,0x22,0x3b,0x4d,0x2b,0xbd,0x05,0x9a,0xfc,0x6d,0x6e, +0x96,0x5c,0x28,0x4e,0x96,0xd9,0x8c,0x8a,0xdc,0x9a,0x52,0x27,0x5c,0x98,0x70,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x06,0x40,0x04,0x18,0x00,0x31,0x00,0x3a,0x00,0x00,0x01,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e, +0x02,0x33,0x32,0x1e,0x02,0x15,0x15,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x01,0x0a,0x04,0xaf,0x9b,0x3c,0x79,0x6b,0x52,0x15,0x6a,0x03,0x18,0x2d,0x45,0x30,0x28,0x46,0x3b,0x32,0x15,0x4a,0x1e,0x4d,0x56,0x5c,0x2d,0x54,0x7a,0x1b,0x29,0x67,0x75,0x7d,0x3f,0x75,0xb7,0x7e,0x42,0x49,0x7f,0xad,0x63,0x65,0x9d,0x6b,0x38,0xa8,0x01, +0x86,0x79,0x3a,0x64,0x4e,0x33,0x0a,0x01,0xd7,0xac,0xb9,0x12,0x39,0x6a,0x57,0x1b,0x1f,0x43,0x37,0x24,0x23,0x3d,0x51,0x2e,0x23,0x57,0x7f,0x54,0x29,0x67,0x62,0x45,0x5c,0x38,0x17,0x47,0x89,0xc6,0x7e,0x77,0xc7,0x8f,0x4f,0x43,0x7f,0xb6,0x73,0x56,0x8b,0x8f,0x9d,0x2c,0x4f,0x6f,0x42,0x00,0x00,0x01,0x00,0x78,0xff,0xee,0x02,0x8e, +0x05,0xfe,0x00,0x25,0x00,0x00,0x37,0x16,0x33,0x32,0x37,0x36,0x36,0x35,0x11,0x34,0x26,0x27,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x35,0x33,0x11,0x23,0x35,0x23,0x0e,0x03,0x23,0x22,0x27,0x78,0x2b,0x51,0x69,0x47,0x22,0x24,0x24,0x22,0x47,0x69,0x51,0x2b,0x24,0x3e,0x2d,0x51,0x46,0x36,0x12,0x04,0xa4,0xa4, +0x04,0x12,0x36,0x46,0x51,0x2d,0x3e,0x24,0xa6,0x21,0x63,0x30,0x81,0x53,0x02,0x14,0x52,0x82,0x30,0x63,0x21,0xaa,0x0e,0x1f,0x3b,0x55,0x36,0xd3,0xfa,0x14,0xd3,0x36,0x55,0x3b,0x1f,0x0e,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x13,0x00,0x2f,0x00,0x3e,0x00,0x00,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32, +0x1e,0x02,0x15,0x14,0x0e,0x02,0x03,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x36,0x36,0x35,0x34,0x26,0x03,0x22,0x0e,0x02,0x15,0x14,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x02,0x52,0x71,0xb8,0x82,0x47,0x49,0x88,0xc1,0x78,0x73,0xb4,0x7d,0x42,0x48,0x84,0xbd,0x69,0x4e,0x7f, +0x59,0x30,0x4d,0x46,0x06,0x1f,0x38,0x4d,0x2d,0x2c,0x4a,0x36,0x1f,0x07,0x3e,0x40,0xaa,0x9f,0x18,0x29,0x1e,0x11,0x70,0x19,0x2b,0x1f,0x11,0x41,0x18,0x4b,0x8a,0xc1,0x76,0x81,0xcb,0x8d,0x4b,0x49,0x8a,0xc5,0x7c,0x79,0xc7,0x8e,0x4e,0x03,0xa6,0x37,0x69,0x96,0x5e,0x73,0xab,0x31,0x18,0x1b,0x2d,0x49,0x34,0x1c,0x1d,0x33,0x46,0x2a, +0x1c,0x16,0x31,0xa7,0x74,0xc1,0xcf,0xfd,0xc5,0x11,0x1f,0x29,0x18,0x70,0x11,0x1e,0x29,0x18,0x31,0x40,0x00,0x01,0x00,0x49,0x00,0x00,0x02,0xc0,0x04,0x33,0x00,0x0b,0x00,0x00,0x37,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x49,0x01,0xd3,0xfe,0x6b,0x01,0x95,0xfe,0x49,0x02,0x5b,0xfd,0x89,0x8b,0x01,0x52,0x8b,0x01, +0x40,0x8b,0xfb,0xcd,0x00,0x02,0x00,0x06,0xfd,0xe3,0x01,0x4a,0x02,0x13,0x00,0x0d,0x00,0x19,0x00,0x00,0x05,0x14,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0x27,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x40,0x74,0x6e,0x15,0x2c,0x17,0x3a,0x20,0x6a,0x76,0x3f,0x1d,0x2a,0x2a,0x1d,0x1e,0x2b, +0x2b,0xf7,0x8f,0x97,0x0b,0x0a,0x72,0x25,0xb5,0x02,0x19,0x76,0x28,0x1e,0x1d,0x27,0x27,0x1d,0x1d,0x29,0x00,0x01,0x00,0x1c,0x02,0x9a,0x02,0xdb,0x05,0xa3,0x00,0x08,0x00,0x00,0x01,0x01,0x23,0x01,0x33,0x13,0x17,0x37,0x13,0x02,0xdb,0xfe,0xd7,0x79,0xfe,0xe3,0x83,0xcf,0x0a,0x0a,0xd9,0x05,0xa3,0xfc,0xf7,0x03,0x09,0xfd,0xb7,0x2f, +0x2e,0x02,0x4a,0x00,0x00,0x01,0x00,0x79,0xfe,0x92,0x03,0xde,0x05,0xb2,0x00,0x49,0x00,0x00,0x01,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x26,0x27,0x26,0x26,0x27,0x35,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03, +0x15,0x14,0x0e,0x02,0x07,0x16,0x16,0x17,0x1e,0x03,0x33,0x32,0x36,0x37,0x03,0xab,0x23,0x5b,0x38,0x32,0x5f,0x53,0x42,0x15,0x41,0x8c,0x23,0x3d,0x14,0x22,0x5f,0x69,0x6a,0x2d,0x9c,0x98,0x27,0x53,0x7e,0x57,0x4b,0x82,0x60,0x37,0x56,0x8c,0xb3,0x5d,0xd3,0x62,0x7f,0xc7,0x38,0x6d,0x56,0x36,0x29,0x50,0x73,0x4b,0x4d,0x8a,0x68,0x3d, +0x4d,0x83,0xac,0x5f,0x13,0x1d,0x0b,0x0f,0x2c,0x33,0x38,0x1a,0x2c,0x56,0x2b,0xfe,0xb9,0x14,0x13,0x15,0x2b,0x40,0x2b,0x83,0x4a,0x0a,0x18,0x0e,0xc6,0x1e,0x30,0x21,0x12,0x71,0x6d,0x37,0x4f,0x45,0x45,0x2d,0x27,0x4d,0x5e,0x77,0x50,0x62,0x90,0x5f,0x2e,0x33,0xbd,0x58,0x17,0x34,0x52,0x3b,0x37,0x50,0x42,0x3e,0x25,0x26,0x54,0x66, +0x7d,0x4f,0x64,0x8e,0x5d,0x2e,0x04,0x11,0x28,0x17,0x1d,0x2c,0x1d,0x0f,0x14,0x15,0x00,0x01,0x00,0x21,0xfe,0x8b,0x04,0x64,0x05,0x9a,0x00,0x1c,0x00,0x00,0x01,0x01,0x1e,0x03,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x27,0x2e,0x03,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x04,0x64,0xfc,0xbd,0x3a,0x6d,0x60,0x54,0x23, +0x4e,0x75,0x32,0x29,0x43,0x28,0x40,0x69,0xaa,0xaa,0x2b,0x51,0x54,0x59,0x33,0xae,0x03,0x41,0xfd,0x02,0x04,0x00,0x05,0x72,0xfb,0x2e,0x0c,0x30,0x3e,0x48,0x24,0x51,0x50,0x14,0x15,0x91,0x26,0xba,0x2e,0x47,0x2e,0x18,0x2f,0x04,0xd3,0x98,0x00,0x01,0x00,0x70,0xff,0xea,0x01,0x50,0x01,0xcf,0x00,0x17,0x00,0x00,0x17,0x22,0x2e,0x02, +0x35,0x34,0x3e,0x02,0x37,0x17,0x0e,0x03,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0xdf,0x17,0x28,0x1e,0x12,0x1b,0x24,0x26,0x0b,0x66,0x0b,0x16,0x13,0x10,0x06,0x24,0x30,0x12,0x1f,0x29,0x16,0x12,0x1e,0x29,0x17,0x20,0x67,0x6e,0x63,0x1d,0x13,0x19,0x3c,0x41,0x41,0x1e,0x0a,0x3d,0x26,0x17,0x29,0x1e,0x12,0x00,0x01,0x00,0x70,0x00,0xf8, +0x01,0x50,0x01,0xd9,0x00,0x13,0x00,0x00,0x37,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0xdf,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0xf8,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x01,0x00,0x27,0xff,0xd4, +0x01,0x3c,0x01,0xc0,0x00,0x03,0x00,0x00,0x01,0x03,0x23,0x13,0x01,0x3c,0xa0,0x75,0x75,0x01,0xc0,0xfe,0x14,0x01,0xec,0x00,0x00,0x02,0x00,0x6f,0xff,0xea,0x01,0x9a,0x05,0x08,0x00,0x13,0x00,0x17,0x00,0x00,0x37,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x03,0x13,0x33,0x03,0xdf,0x17,0x29,0x1e, +0x12,0x12,0x1e,0x29,0x17,0x17,0x29,0x1e,0x12,0x12,0x1e,0x29,0x43,0xa0,0x75,0x75,0xc8,0x12,0x1e,0x29,0x17,0x18,0x28,0x1d,0x11,0x11,0x1e,0x28,0x17,0x17,0x29,0x1e,0x12,0x02,0x54,0x01,0xec,0xfe,0x14,0x00,0x00,0x01,0x00,0x30,0x00,0xe5,0x01,0xda,0x05,0x99,0x00,0x09,0x00,0x00,0x25,0x23,0x03,0x05,0x35,0x05,0x03,0x33,0x03,0x33, +0x01,0xaa,0x4c,0x28,0xfe,0xfa,0x01,0x2e,0x28,0x9c,0x28,0x30,0xe5,0x02,0xb6,0x1e,0x96,0x14,0x01,0x9a,0xfe,0x66,0x00,0x01,0x01,0x2e,0x00,0xe5,0x02,0xd8,0x05,0x99,0x00,0x09,0x00,0x00,0x01,0x33,0x03,0x33,0x03,0x25,0x15,0x25,0x03,0x23,0x01,0x2e,0x30,0x28,0x9c,0x28,0x01,0x2e,0xfe,0xfa,0x28,0x4c,0x03,0xff,0x01,0x9a,0xfe,0x66, +0x14,0x96,0x1e,0xfd,0x4a,0x00,0x00,0x01,0x00,0x30,0x00,0xe5,0x02,0xd8,0x05,0x99,0x00,0x0b,0x00,0x00,0x01,0x25,0x13,0x23,0x13,0x05,0x35,0x05,0x13,0x33,0x13,0x25,0x02,0xd8,0xfe,0xd2,0x28,0x9c,0x28,0xfe,0xd2,0x01,0x06,0x28,0x4c,0x28,0x01,0x06,0x02,0x6b,0x14,0xfe,0x66,0x01,0x9a,0x14,0x96,0x1e,0x02,0xb6,0xfd,0x4a,0x1e,0x00, +0x00,0x02,0x00,0x83,0x01,0x31,0x03,0x27,0x05,0xd3,0x00,0x1f,0x00,0x2d,0x00,0x00,0x01,0x26,0x26,0x27,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x14,0x1e,0x02,0x17,0x16,0x15,0x14,0x06,0x07,0x01,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x35,0x34,0x2e,0x02,0x02,0x1e,0x18,0x5d,0x3d,0xe9, +0x93,0x6a,0x31,0x5a,0x7d,0x4c,0x84,0x57,0x65,0x7a,0xa8,0x0d,0x32,0x61,0x54,0xdf,0x3d,0x39,0xfe,0xdd,0x65,0x1a,0x3c,0x61,0x47,0x58,0x18,0x38,0x5d,0x01,0x31,0x13,0x3c,0x20,0x7a,0xc3,0xa3,0x51,0x52,0x8d,0x40,0x6b,0x4d,0x2b,0x2b,0x9e,0x3e,0x90,0x1c,0x2f,0x32,0x3a,0x28,0x6a,0xbb,0x4c,0x7b,0x35,0x01,0xd1,0x33,0x6c,0x25,0x3d, +0x39,0x39,0x20,0x43,0x69,0x24,0x3b,0x36,0x35,0x00,0x00,0x01,0x00,0x00,0x01,0xfa,0x0b,0xf2,0x02,0x7b,0x00,0x03,0x00,0x00,0x01,0x21,0x35,0x21,0x0b,0xf2,0xf4,0x0e,0x0b,0xf2,0x01,0xfa,0x81,0x00,0x00,0x01,0x00,0x00,0x01,0xfa,0x0f,0xfe,0x02,0x7b,0x00,0x03,0x00,0x00,0x01,0x21,0x35,0x21,0x0f,0xfe,0xf0,0x02,0x0f,0xfe,0x01,0xfa, +0x81,0x00,0x00,0x01,0x00,0x25,0x06,0x12,0x02,0x7d,0x09,0x46,0x00,0x1f,0x00,0x00,0x01,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x1e,0x03,0x33,0x32,0x36,0x37,0x02,0x7d,0x5c,0x85,0x55,0x8a,0x62,0x36,0x3a,0x67,0x8f,0x56,0x74,0x5e,0x6b,0x68,0x6b,0x8d,0x0e,0x01, +0x54,0xfe,0xac,0x06,0x2a,0x42,0x58,0x35,0x39,0x6d,0x34,0x06,0x44,0x32,0x3a,0x68,0x92,0x58,0x60,0x9c,0x6f,0x3d,0x25,0x7c,0x38,0x83,0x7b,0x69,0x39,0x5d,0x42,0x23,0x1f,0x21,0x00,0x01,0x00,0x5b,0x06,0x20,0x02,0xe6,0x09,0x3a,0x00,0x09,0x00,0x00,0x01,0x23,0x11,0x01,0x23,0x11,0x33,0x11,0x01,0x33,0x02,0xe6,0x78,0xfe,0x76,0x89, +0x78,0x01,0x87,0x8c,0x06,0x20,0x02,0x64,0xfd,0x9c,0x03,0x1a,0xfd,0x9e,0x02,0x62,0x00,0x03,0xff,0xda,0x06,0x1f,0x01,0x31,0x09,0x2f,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x00,0x13,0x23,0x11,0x33,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xc2,0x76, +0x76,0x2c,0x1b,0x28,0x27,0x1b,0x1d,0x27,0x26,0xeb,0x1d,0x29,0x28,0x1c,0x1c,0x29,0x28,0x06,0x1f,0x02,0x3e,0x51,0x24,0x1c,0x1c,0x25,0x25,0x1c,0x1b,0x25,0x26,0x1a,0x1c,0x25,0x25,0x1c,0x1b,0x25,0x00,0x01,0xff,0xf7,0x05,0x1c,0x02,0x26,0x08,0x5d,0x00,0x14,0x00,0x00,0x01,0x01,0x06,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32, +0x36,0x37,0x37,0x26,0x02,0x27,0x33,0x13,0x13,0x02,0x26,0xfe,0xfc,0x22,0x68,0x41,0x12,0x24,0x12,0x2b,0x17,0x1b,0x2e,0x0e,0x2a,0x35,0x70,0x36,0x80,0x97,0x9e,0x08,0x5d,0xfd,0x72,0x55,0x5e,0x05,0x06,0x68,0x0f,0x25,0x23,0x65,0x89,0x01,0x1e,0x89,0xfe,0x53,0x01,0xad,0x00,0x02,0x00,0x0c,0x06,0x1f,0x02,0xe6,0x09,0x39,0x00,0x0e, +0x00,0x16,0x00,0x00,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x23,0xea,0xde,0x01,0x55,0x84,0x79,0x88,0x25,0x45,0x62,0x3d,0x7c,0x71,0x48,0x50,0x98,0x06,0x1f,0x02,0xb0,0x6a,0xfe,0xb9,0x74,0x6e,0x37,0x59,0x3f,0x22,0x01,0x6b,0xfe,0xff,0x44,0x3e,0x7f,0x00,0x03, +0x00,0x5b,0x06,0x1f,0x03,0x0c,0x09,0x39,0x00,0x03,0x00,0x10,0x00,0x18,0x00,0x00,0x01,0x23,0x11,0x33,0x01,0x11,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x23,0x03,0x0c,0x77,0x77,0xfd,0x4f,0x78,0x83,0x7a,0x88,0x25,0x45,0x62,0x3d,0x7c,0x71,0x48,0x50,0x98,0x06,0x1f,0x03,0x1a,0xfc, +0xe6,0x03,0x1a,0xfe,0xb9,0x75,0x6d,0x37,0x59,0x3f,0x22,0x01,0x6b,0xfe,0xff,0x43,0x3f,0x7f,0x00,0x02,0x00,0x5a,0x06,0x1f,0x02,0x57,0x09,0x39,0x00,0x0c,0x00,0x14,0x00,0x00,0x13,0x11,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x23,0x5a,0x78,0x83,0x7a,0x88,0x25,0x45,0x62,0x3d,0x7c, +0x71,0x48,0x50,0x98,0x06,0x1f,0x03,0x1a,0xfe,0xb9,0x75,0x6d,0x37,0x59,0x3f,0x22,0x01,0x6b,0xfe,0xff,0x43,0x3f,0x7f,0x00,0x00,0x01,0x00,0x1e,0x06,0x1f,0x03,0xd5,0x09,0x39,0x00,0x2d,0x00,0x00,0x01,0x2e,0x05,0x27,0x33,0x1e,0x03,0x17,0x13,0x2e,0x03,0x27,0x33,0x1e,0x03,0x17,0x3e,0x05,0x37,0x33,0x0e,0x05,0x07,0x23,0x26,0x26, +0x27,0x03,0x01,0x19,0x2b,0x41,0x31,0x24,0x1c,0x14,0x0a,0x79,0x0c,0x20,0x2b,0x38,0x26,0x6b,0x0c,0x12,0x0f,0x0d,0x06,0x78,0x0d,0x1f,0x2b,0x39,0x26,0x1a,0x2a,0x23,0x1c,0x18,0x14,0x09,0x78,0x09,0x15,0x1b,0x24,0x32,0x40,0x2b,0x6b,0x2a,0x3f,0x18,0x68,0x06,0x1f,0x53,0x89,0x7b,0x73,0x7a,0x86,0x50,0x6c,0xa7,0x90,0x89,0x4f,0x01, +0x11,0x28,0x52,0x59,0x60,0x37,0x6e,0xa6,0x91,0x89,0x51,0x36,0x5f,0x5d,0x5f,0x6a,0x7a,0x4a,0x51,0x86,0x7a,0x74,0x7a,0x89,0x52,0x51,0x83,0x3c,0xfe,0xf0,0x00,0x01,0x00,0x5c,0x06,0x12,0x03,0xfb,0x09,0x46,0x00,0x27,0x00,0x00,0x01,0x06,0x23,0x22,0x2e,0x02,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x3e,0x03,0x33,0x32,0x16,0x17, +0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x1e,0x03,0x33,0x32,0x36,0x37,0x03,0xfb,0x5e,0x84,0x50,0x84,0x61,0x3a,0x06,0xcf,0x79,0x79,0xd1,0x09,0x40,0x66,0x86,0x4e,0x3b,0x68,0x2f,0x6d,0x66,0x6c,0x8d,0x0d,0x01,0x53,0xfe,0xac,0x06,0x2a,0x42,0x58,0x35,0x39,0x6d,0x35,0x06,0x44,0x32,0x33,0x5e,0x83,0x50,0xfe,0xa9,0x03,0x1a, +0xfe,0xa6,0x52,0x85,0x5d,0x33,0x13,0x12,0x7c,0x38,0x83,0x7b,0x69,0x39,0x5d,0x42,0x23,0x1f,0x21,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x79,0x07,0x71,0x00,0x03,0x00,0x17,0x00,0x00,0x21,0x23,0x11,0x33,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x02,0x79,0x94,0x94,0xfe,0x5a,0x17,0x28, +0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x07,0x58,0xc8,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x79,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x21,0x23,0x11,0x33,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02, +0x15,0x14,0x0e,0x02,0x02,0x79,0x94,0x94,0xfe,0x5a,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x07,0x58,0xfd,0xa3,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x79,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x21,0x23, +0x11,0x33,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x02,0x79,0x94,0x94,0xfe,0x5a,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x07,0x58,0xfb,0xe1,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x02,0x00,0x64, +0x00,0x00,0x02,0x79,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x21,0x23,0x11,0x33,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x02,0x79,0x94,0x94,0xfe,0x5a,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x07,0x58,0xfa,0x1f,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f, +0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x02,0x00,0x64,0xff,0xf1,0x02,0x79,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x21,0x23,0x11,0x33,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x02,0x79,0x94,0x94,0xfe,0x5a,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12, +0x12,0x1f,0x29,0x07,0x58,0xf8,0x99,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x02,0x00,0x96,0x00,0x00,0x02,0xab,0x07,0x71,0x00,0x03,0x00,0x17,0x00,0x00,0x13,0x33,0x11,0x23,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x96,0x94,0x94,0x01, +0xa6,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x28,0x07,0x58,0xf8,0xa8,0x06,0x90,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x02,0x00,0x96,0x00,0x00,0x02,0xab,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x13,0x33,0x11,0x23,0x01,0x22,0x2e,0x02,0x35,0x34, +0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x96,0x94,0x94,0x01,0xa6,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x28,0x07,0x58,0xf8,0xa8,0x04,0xfb,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x02,0x00,0x96,0x00,0x00,0x02,0xab,0x07,0x58,0x00,0x03, +0x00,0x17,0x00,0x00,0x13,0x33,0x11,0x23,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x96,0x94,0x94,0x01,0xa6,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x28,0x07,0x58,0xf8,0xa8,0x03,0x39,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29, +0x1e,0x12,0x00,0x02,0x00,0x96,0x00,0x00,0x02,0xab,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x13,0x33,0x11,0x23,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x96,0x94,0x94,0x01,0xa6,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x28,0x07,0x58,0xf8,0xa8,0x01,0x77, +0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x02,0x00,0x96,0xff,0xf1,0x02,0xab,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x13,0x33,0x11,0x23,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x96,0x94,0x94,0x01,0xa6,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29, +0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x28,0x07,0x58,0xf8,0xa8,0x0f,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0x5f,0x07,0x58,0x00,0x05,0x00,0x00,0x01,0x21,0x11,0x23,0x11,0x21,0x03,0x5f,0xfd,0xcb,0x94,0x02,0xc9,0x06,0xd4,0xf9,0x2c,0x07,0x58,0x00, +0x00,0x01,0x00,0x96,0x00,0x00,0x03,0x5f,0x07,0x58,0x00,0x07,0x00,0x00,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x03,0x5f,0xfd,0xcb,0x94,0x94,0x02,0x35,0x05,0x1f,0xfa,0xe1,0x07,0x58,0xfe,0x4b,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0x5f,0x07,0x58,0x00,0x07,0x00,0x00,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x03,0x5f,0xfd,0xcb, +0x94,0x94,0x02,0x35,0x03,0x6a,0xfc,0x96,0x07,0x58,0xfc,0x96,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0x5f,0x07,0x58,0x00,0x07,0x00,0x00,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x03,0x5f,0xfd,0xcb,0x94,0x94,0x02,0x35,0x01,0xb5,0xfe,0x4b,0x07,0x58,0xfa,0xe1,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0x5f,0x07,0x58,0x00,0x05,0x00,0x00, +0x13,0x33,0x11,0x21,0x15,0x21,0x96,0x94,0x02,0x35,0xfd,0x37,0x07,0x58,0xf9,0x2c,0x84,0x00,0x00,0x04,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0e,0x00,0x26,0x00,0x3a,0x00,0x46,0x00,0x5f,0xb9,0x00,0x0e,0x01,0x43,0xb2,0x07,0x0d,0x36,0xbb,0x01,0x43,0x00,0x20,0x00,0x16,0x01,0x43,0x40,0x0c,0x2c,0x0d,0x20,0x2c,0x2c,0x20, +0x0d,0x03,0x3b,0x41,0x3b,0x44,0xbc,0x01,0x42,0x00,0x3e,0x01,0x41,0x00,0x27,0x01,0x44,0xb2,0x1b,0x07,0x31,0xb8,0x01,0x44,0x40,0x0c,0x0f,0x19,0x0e,0x18,0x04,0x0c,0x01,0x0c,0x06,0x07,0x00,0x07,0x00,0x3f,0xde,0xce,0x33,0x5d,0x3f,0x3f,0xe6,0x3f,0xe6,0x3f,0x3f,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xe6,0x10,0xe6, +0x10,0xcd,0xe6,0x30,0x31,0x01,0x23,0x0e,0x03,0x07,0x15,0x3e,0x03,0x37,0x11,0x33,0x05,0x32,0x3e,0x04,0x35,0x34,0x02,0x26,0x26,0x23,0x22,0x06,0x06,0x02,0x15,0x14,0x1e,0x04,0x13,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x01,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x04,0x2f, +0x7a,0x26,0x68,0x75,0x79,0x36,0x30,0x65,0x5b,0x49,0x13,0xe0,0x02,0x8f,0x64,0x8f,0x62,0x3b,0x20,0x0a,0x2c,0x61,0x9d,0x70,0x75,0xa8,0x6c,0x33,0x0f,0x24,0x3c,0x5c,0x7e,0x6a,0x3a,0x4a,0x2b,0x10,0x11,0x2c,0x4d,0x3b,0x3c,0x4e,0x2d,0x12,0x12,0x2f,0x50,0xfa,0x1d,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe, +0x1b,0xfd,0x49,0x05,0xba,0x21,0x45,0x3f,0x33,0x0f,0xce,0x0c,0x2a,0x30,0x31,0x13,0xfb,0x51,0x18,0x45,0x73,0x98,0xa6,0xa9,0x4c,0xb8,0x01,0x13,0xb8,0x5c,0x62,0xc2,0xfe,0xe0,0xbe,0x58,0xae,0x9f,0x87,0x64,0x38,0x05,0x0d,0x46,0x8d,0xd3,0x8d,0x87,0xcc,0x87,0x44,0x42,0x85,0xc8,0x85,0x8f,0xd7,0x8f,0x48,0xfd,0xd8,0x01,0xe5,0x02, +0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0x00,0x00,0x02,0x00,0x40,0x00,0x00,0x04,0x08,0x05,0x9a,0x00,0x1a,0x00,0x27,0x00,0x5c,0x40,0x35,0x76,0x15,0x01,0x59,0x22,0x69,0x22,0x89,0x22,0x03,0x22,0x15,0x29,0x05,0x01,0x1c,0x09,0x0d,0x0b,0x06,0x0f,0x07,0x03,0x02,0x0a,0x02,0x0b,0x1a,0x1d,0x0e,0x1d,0x2f,0x02,0x6f, +0x02,0x7f,0x02,0xbf,0x02,0x04,0x2f,0x1d,0x01,0x02,0x1d,0x02,0x1d,0x05,0x27,0x0f,0x06,0x05,0x18,0x00,0x3f,0x3f,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x11,0x33,0x10,0xcd,0x32,0x11,0x33,0x10,0xcd,0x32,0x01,0x2f,0x33,0x33,0xce,0x32,0xcd,0x32,0x32,0x10,0xde,0xcd,0x5d,0x5d,0x30,0x31,0x01,0x15,0x21,0x15,0x21,0x11,0x23,0x11, +0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x01,0x5b,0x01,0x82,0xfe,0x7e,0xa4,0x77,0x77,0x77,0x77,0x01,0x84,0x5c,0xa7,0x7f,0x4b,0x43,0x80,0xb8,0x76,0xbc,0xa7,0x57,0x85,0x5b,0x2e,0x2a,0x54,0x7e,0x54,0x02,0x7f,0xcf,0x8b,0xfe, +0xdb,0x01,0x25,0x8b,0xcf,0x8b,0x02,0x90,0x2f,0x60,0x92,0x63,0x66,0x98,0x66,0x33,0x02,0x90,0xfd,0xfb,0x1b,0x3d,0x64,0x48,0x47,0x62,0x3d,0x1b,0x00,0x01,0x00,0x32,0x00,0x00,0x05,0xe6,0x05,0x9a,0x00,0x27,0x00,0x57,0x40,0x35,0x67,0x25,0x01,0x00,0x12,0x25,0x13,0x13,0x1e,0x0a,0x0f,0x07,0x3f,0x07,0x02,0x07,0x29,0x1b,0x5f,0x1e, +0x6f,0x1e,0x8f,0x1e,0xaf,0x1e,0x04,0x1e,0x78,0x11,0x88,0x11,0x02,0x11,0x5b,0x14,0x01,0x3a,0x14,0x4a,0x14,0x02,0x14,0x00,0x25,0x25,0x13,0x27,0x06,0x1c,0x09,0x13,0x18,0x00,0x3f,0x33,0x33,0x3f,0x12,0x39,0x2f,0x33,0xcd,0x5d,0x5d,0x32,0x5d,0x01,0x2f,0x5d,0xcd,0x10,0xde,0x5d,0xcd,0x12,0x39,0x2f,0x33,0xcd,0x32,0x00,0x5d,0x30, +0x31,0x01,0x1e,0x04,0x12,0x15,0x15,0x23,0x35,0x34,0x2e,0x04,0x27,0x11,0x23,0x11,0x0e,0x05,0x15,0x15,0x23,0x35,0x34,0x12,0x3e,0x03,0x37,0x11,0x33,0x03,0x5e,0x55,0xa3,0x90,0x78,0x57,0x31,0xa4,0x27,0x45,0x5d,0x6c,0x75,0x3a,0xa4,0x39,0x73,0x6c,0x5e,0x46,0x28,0xa4,0x32,0x58,0x7a,0x90,0xa1,0x53,0xa4,0x04,0x6d,0x09,0x39,0x65, +0x95,0xcd,0xfe,0xf9,0xa5,0xb8,0xbf,0x91,0xe3,0xac,0x79,0x51,0x2c,0x09,0xfc,0x22,0x03,0xe0,0x08,0x2a,0x4f,0x7a,0xad,0xe5,0x94,0xbf,0xb8,0xa8,0x01,0x0b,0xce,0x95,0x63,0x35,0x08,0x01,0x2c,0x00,0x00,0x16,0x00,0x26,0x00,0x00,0x07,0x15,0x05,0xc0,0x00,0x05,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23, +0x00,0x27,0x00,0x2d,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x57,0x00,0x5c,0x00,0x62,0x00,0x7c,0x00,0x00,0x13,0x35,0x33,0x15,0x23,0x15,0x03,0x35,0x33,0x15,0x33,0x15,0x33,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x13,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23, +0x35,0x33,0x35,0x23,0x35,0x33,0x25,0x35,0x33,0x15,0x23,0x35,0x03,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x23,0x27,0x23,0x07,0x23,0x13,0x33,0x13,0x27,0x27,0x15,0x07,0x05,0x21,0x11,0x33,0x11, +0x33,0x05,0x23,0x11,0x34,0x34,0x37,0x03,0x23,0x03,0x15,0x11,0x23,0x11,0x33,0x13,0x16,0x16,0x17,0x36,0x37,0x3e,0x03,0x37,0x33,0x26,0xeb,0x96,0x55,0x55,0x96,0x5b,0xd3,0xd3,0xd3,0x5e,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0xfd,0x0d,0x55,0x55,0x55,0x55,0x05,0xae,0xec,0x56,0x96,0x96,0x56,0xfd,0xe6,0xd2,0x01,0x48,0x56,0x56, +0x56,0x56,0xfc,0xb7,0xd1,0xd1,0xd1,0x5e,0xd2,0x01,0x48,0x56,0x56,0xfb,0x91,0x50,0x35,0xc6,0x32,0x50,0xc2,0x48,0x28,0x4d,0x01,0x4b,0x02,0x7d,0xfe,0xed,0x4a,0xc9,0x02,0x4a,0x4b,0x01,0xa9,0x28,0xaa,0x48,0x5b,0x9a,0x08,0x04,0x05,0x0a,0x08,0x12,0x28,0x29,0x28,0x12,0x58,0x04,0xd4,0xec,0x55,0x97,0xfb,0x2c,0xeb,0x95,0x56,0x56, +0x56,0x05,0x6b,0x55,0x55,0xfa,0x95,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xf3,0x55,0xec,0x97,0xfa,0x95,0x56,0x95,0xeb,0x56,0x56,0x01,0x48,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x05,0x6b,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0xfe,0xb6,0x8c,0x8c,0x01,0xfb,0xfe,0xce,0xcf,0x02,0x02,0xcf,0xc9, +0x01,0xfb,0xfe,0x42,0x3d,0x01,0x53,0x09,0x14,0x0b,0xfe,0x85,0x01,0x7b,0x29,0xfe,0xae,0x01,0xfb,0xfe,0xa2,0x12,0x0f,0x09,0x1b,0x10,0x28,0x59,0x5c,0x59,0x27,0x00,0x00,0x01,0x00,0xbc,0xfe,0x96,0x06,0x72,0x05,0x9a,0x00,0x26,0x00,0x1f,0x40,0x10,0x0e,0x16,0x21,0x03,0x1c,0x1d,0x03,0x08,0x03,0x03,0x1c,0x12,0x12,0x12,0x00,0x03, +0x00,0x3f,0x3f,0x3f,0x33,0x2f,0x33,0x3f,0x12,0x17,0x39,0x30,0x31,0x01,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x34,0x36,0x37,0x23,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x23,0x16,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x06,0x72,0xfe,0xaf,0x3f,0x39,0x32,0x3e,0xb2,0x07,0x07,0x04, +0x18,0x13,0xfe,0x16,0x52,0xfe,0x17,0x14,0x17,0x04,0x04,0x04,0xa2,0xde,0x01,0xb8,0x33,0x0f,0x06,0x16,0x22,0x0d,0x01,0xc1,0x05,0x9a,0xfa,0x9b,0xfe,0x61,0x14,0xa0,0x1d,0x01,0x08,0x03,0x8d,0x39,0x8b,0x53,0x63,0x28,0xfb,0xb2,0x04,0x46,0x2e,0x65,0x2b,0x8c,0x62,0xfc,0x40,0x05,0x9a,0xfc,0x18,0x74,0x38,0x3c,0x57,0x1d,0x03,0xe4, +0x00,0x02,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0x9a,0x00,0x07,0x00,0x11,0x00,0x1a,0x40,0x0c,0x11,0x0d,0x06,0x02,0x02,0x01,0x06,0x12,0x04,0x03,0x01,0x03,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0x33,0x30,0x31,0x13,0x33,0x13,0x21,0x13,0x33,0x01,0x23,0x03,0x13,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x13,0x16,0xba,0x98,0x02, +0x60,0x8f,0xbb,0xfd,0xda,0xae,0x9f,0xe1,0x05,0x0c,0x05,0x04,0x05,0x0b,0x07,0xdf,0x05,0x9a,0xfe,0x6e,0x01,0x92,0xfa,0x66,0x03,0x71,0xfd,0x9d,0x0f,0x30,0x21,0x1f,0x30,0x11,0x02,0x63,0xff,0xff,0x00,0x60,0xfe,0x96,0x03,0x62,0x04,0x18,0x02,0x26,0x00,0x46,0x00,0x00,0x00,0x07,0x08,0x5d,0x02,0x89,0x00,0x00,0xff,0xff,0x00,0xa6, +0xfe,0x96,0x04,0x91,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x00,0x07,0x08,0x5d,0x03,0xba,0x00,0x00,0x00,0x03,0x00,0x6e,0x00,0x00,0x05,0x5b,0x05,0x9a,0x00,0x2a,0x00,0x32,0x00,0x3c,0x00,0x29,0x40,0x15,0x1f,0x35,0x91,0x2b,0x13,0x91,0x01,0x01,0x2b,0x0a,0x2b,0x0a,0x00,0x3c,0x91,0x14,0x03,0x2c,0x91,0x00,0x12,0x00,0x3f,0xed, +0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x33,0x2f,0xed,0x10,0xed,0x39,0x30,0x31,0x21,0x11,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x23,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x11,0x33,0x32,0x3e, +0x02,0x35,0x34,0x21,0x01,0xe8,0x47,0x28,0x3b,0x27,0x13,0x06,0x05,0x98,0x09,0x28,0x4b,0x6a,0x41,0x5c,0x01,0x98,0x5d,0x95,0x69,0x39,0x22,0x40,0x5c,0x3a,0x48,0x75,0x54,0x2e,0x47,0x7c,0xab,0x63,0xfa,0xe4,0x95,0xa2,0xfe,0xa6,0xc1,0xac,0x45,0x6e,0x4c,0x29,0xfe,0xed,0x02,0x9c,0x17,0x25,0x31,0x1a,0x0f,0x2c,0x13,0x30,0x29,0x47, +0x67,0x44,0x20,0x02,0x68,0x30,0x57,0x78,0x49,0x3d,0x6b,0x58,0x41,0x13,0x04,0x08,0x38,0x5a,0x7a,0x4a,0x5c,0x98,0x6c,0x3c,0x02,0x9c,0xfd,0xfc,0x8b,0x7b,0xfe,0x02,0x66,0xfe,0x31,0x22,0x41,0x5f,0x3c,0xd1,0x00,0x02,0x00,0x75,0xfe,0xab,0x05,0x80,0x05,0xec,0x00,0x30,0x00,0x43,0x00,0x24,0x40,0x14,0x12,0x0f,0x21,0x03,0x15,0x23, +0x15,0x2d,0x96,0x05,0x36,0x95,0x1f,0x15,0x40,0x95,0x15,0x10,0x11,0x00,0x00,0x3f,0x3f,0xed,0x3f,0xed,0xdc,0xed,0x3f,0x12,0x17,0x39,0x30,0x31,0x05,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x11,0x33,0x11,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x27,0x23,0x15,0x23,0x11,0x0e,0x03,0x15,0x14, +0x16,0x33,0x32,0x36,0x37,0x03,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x03,0x4d,0x10,0x3c,0x4c,0x54,0x27,0x7d,0xac,0x6c,0x30,0x2b,0x57,0x83,0x58,0xa4,0x46,0x9f,0x5b,0x66,0xa9,0x78,0x43,0x40,0x79,0xad,0x6d,0xcc,0x67,0x04,0xa4,0x2f,0x44,0x2c,0x16,0x8d,0x98,0x3f,0x77,0x27,0xa9,0x2b,0x4e, +0x6b,0x40,0x4b,0x76,0x52,0x2b,0x22,0x50,0x83,0x61,0x4e,0x85,0x39,0xf7,0x12,0x22,0x1a,0x10,0x44,0x79,0xa9,0x65,0x4c,0xc0,0xc9,0xc3,0x4e,0x02,0x90,0xfd,0xe0,0x23,0x29,0x48,0x85,0xbb,0x72,0x7f,0xd1,0x94,0x52,0xac,0x94,0x02,0x9c,0x41,0x91,0x92,0x89,0x39,0xa8,0xae,0x1d,0x19,0x02,0x4c,0x3f,0x6f,0x52,0x30,0x3b,0x70,0x9f,0x65, +0x46,0x83,0x66,0x3d,0x2b,0x25,0x00,0x01,0xff,0x9a,0xfe,0x96,0x03,0x94,0x05,0x9a,0x00,0x15,0x00,0x20,0x40,0x10,0x14,0x91,0x01,0x01,0x09,0x91,0x06,0x06,0x02,0x11,0x91,0x0c,0x04,0x91,0x02,0x03,0x00,0x3f,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x33,0x2f,0xed,0x30,0x31,0x03,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x10, +0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x23,0x1f,0xdb,0x02,0xd8,0xfd,0xd0,0x01,0x20,0xfe,0xe0,0xfe,0xae,0x3f,0x39,0x32,0x3e,0xb2,0xdb,0x03,0x12,0x02,0x88,0x98,0xfe,0x10,0x97,0xfd,0xba,0xfe,0x61,0x14,0xa0,0x1d,0x01,0x08,0x02,0x46,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x02,0xa0,0x06,0x02,0x00,0x1d,0x00,0x33,0xb6,0x05, +0x95,0x08,0x08,0x02,0x95,0x1d,0xb8,0xff,0xc0,0x40,0x14,0x09,0x0c,0x48,0x1d,0x1d,0x03,0x1c,0x95,0x19,0x0f,0x16,0x95,0x11,0x00,0x09,0x95,0x0c,0x0f,0x03,0x15,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x2b,0xed,0x33,0x2f,0xed,0x30,0x31,0x01,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x34, +0x37,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x15,0x02,0x77,0xf0,0xa3,0xaf,0xaf,0xaf,0xaf,0x5d,0x5d,0x8b,0x4b,0x2c,0x30,0x3d,0xac,0xf0,0xf0,0x03,0x06,0x8c,0xfd,0x86,0x02,0x7a,0x8c,0x6e,0x8c,0xa6,0xa1,0x5d,0x5e,0x12,0x94,0x1b,0xd9,0x9e,0x8c,0x6e,0x00,0x02,0x00,0x5e,0xff,0xe8,0x04,0x8e,0x05,0xb2, +0x00,0x21,0x00,0x3d,0x00,0x26,0x40,0x14,0x0f,0x36,0x92,0x35,0x35,0x00,0x21,0x03,0x1f,0x2d,0x91,0x1a,0x04,0x02,0x22,0x92,0x05,0x13,0x00,0x12,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x21,0x23,0x35,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x35,0x34,0x3e, +0x02,0x33,0x32,0x1e,0x02,0x17,0x35,0x33,0x01,0x32,0x3e,0x02,0x37,0x11,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x15,0x22,0x06,0x15,0x14,0x1e,0x02,0x04,0x8e,0xa8,0x4e,0xd4,0x83,0x6c,0xb1,0x80,0x46,0x2d,0x54,0x77,0x4a,0x44,0x66,0x44,0x22,0x43,0x79,0xab,0x68,0x3b,0x70,0x64,0x56,0x22,0xa8,0xfd,0xbe,0x4d,0x7b,0x63, +0x4e,0x21,0x21,0x54,0x63,0x72,0x3f,0x47,0x69,0x46,0x23,0xae,0x9d,0xc2,0xbc,0x30,0x55,0x73,0x8c,0x4b,0x59,0x3f,0x72,0x9e,0x5f,0x45,0x77,0x5a,0x3a,0x08,0x04,0x12,0x38,0x4f,0x6a,0x44,0x54,0x8b,0x63,0x37,0x14,0x23,0x31,0x1d,0x6d,0xfa,0xdd,0x27,0x40,0x52,0x2c,0x02,0xf3,0x2d,0x4b,0x36,0x1d,0x23,0x40,0x59,0x35,0x7e,0x80,0x8b, +0x8a,0x8a,0x3e,0x66,0x49,0x28,0x00,0x02,0x00,0x60,0xff,0xe8,0x03,0x97,0x04,0x19,0x00,0x1f,0x00,0x3d,0x00,0x26,0x40,0x14,0x0f,0x36,0x96,0x34,0x34,0x01,0x1f,0x0f,0x1d,0x2b,0x95,0x18,0x10,0x02,0x20,0x95,0x05,0x16,0x01,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x21,0x23,0x35,0x06, +0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x35,0x33,0x01,0x32,0x3e,0x02,0x37,0x11,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x03,0x97,0xa4,0x3c,0x8d,0x5f,0x4f,0x85,0x61,0x36,0x24,0x42,0x5d,0x39,0x64, +0x6f,0x36,0x5d,0x7c,0x47,0x2e,0x52,0x45,0x39,0x16,0xa4,0xfe,0x54,0x24,0x4a,0x45,0x3e,0x17,0x16,0x38,0x41,0x48,0x25,0x37,0x4d,0x31,0x16,0x6d,0x7b,0x06,0x0b,0x4a,0x67,0x3f,0x1c,0x78,0x5d,0x34,0x41,0x2b,0x4f,0x71,0x46,0x34,0x57,0x41,0x28,0x05,0x05,0x15,0x6c,0x5a,0x45,0x6d,0x4c,0x29,0x12,0x1c,0x23,0x12,0x4a,0xfc,0x71,0x10, +0x1e,0x2e,0x1e,0x02,0x28,0x1b,0x2d,0x21,0x12,0x19,0x2b,0x3c,0x22,0x51,0x4c,0x81,0x17,0x2c,0x42,0x2a,0x57,0x57,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0x14,0x05,0xb2,0x00,0x1e,0x00,0x39,0x00,0x1c,0x40,0x0e,0x0a,0x28,0x92,0x27,0x27,0x00,0x1f,0x91,0x15,0x04,0x30,0x92,0x00,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39, +0x30,0x31,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x06,0x03,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x15,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x02,0x6a,0x7b,0xc3,0x87,0x47,0x2d,0x54,0x77,0x4a,0x44,0x66,0x44, +0x22,0x44,0x80,0xb8,0x74,0x94,0xf3,0xae,0x5f,0x62,0xb3,0xfb,0x90,0x50,0x72,0x4b,0x23,0xae,0x9d,0xc2,0xbc,0x31,0x58,0x7a,0x4a,0x75,0xc0,0x87,0x4a,0x46,0x81,0xb7,0x18,0x3f,0x72,0x9e,0x5f,0x45,0x77,0x5a,0x3a,0x08,0x04,0x12,0x38,0x4f,0x6a,0x44,0x54,0x8b,0x63,0x37,0x6a,0xbf,0xfe,0xf6,0xa0,0xaa,0xfe,0xe9,0xc8,0x6e,0x05,0x32, +0x23,0x40,0x59,0x35,0x7e,0x80,0x8b,0x8a,0x8a,0x3e,0x66,0x49,0x28,0x52,0x99,0xdc,0x8a,0x8f,0xde,0x97,0x4e,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x10,0x04,0x19,0x00,0x1c,0x00,0x3b,0x00,0x1e,0x40,0x0f,0x00,0x1c,0x1d,0x96,0x3b,0x3b,0x08,0x26,0x95,0x12,0x16,0x30,0x95,0x08,0x10,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed, +0x39,0x39,0x30,0x31,0x01,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x17,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x33,0x01,0x5c,0x64,0x6f,0x38,0x68,0x96,0x5d,0x6f,0xb8, +0x84,0x49,0x49,0x87,0xc0,0x78,0x63,0x9d,0x6d,0x3b,0x24,0x42,0x5d,0x39,0xbe,0x0b,0x4a,0x67,0x3f,0x1c,0x80,0x89,0x54,0x82,0x58,0x2e,0x24,0x50,0x82,0x5e,0x37,0x56,0x3c,0x1f,0x18,0x36,0x59,0x41,0x06,0x02,0x17,0x15,0x6c,0x5a,0x45,0x6d,0x4c,0x29,0x43,0x85,0xc8,0x85,0x71,0xc5,0x92,0x54,0x2b,0x4f,0x71,0x46,0x34,0x57,0x41,0x28, +0x05,0x44,0x17,0x2c,0x42,0x2a,0x57,0x57,0x3b,0x6a,0x92,0x56,0x52,0x92,0x6d,0x3f,0x19,0x2b,0x3c,0x22,0x29,0x3b,0x26,0x13,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0x8e,0x05,0x9a,0x00,0x2b,0x00,0x21,0x40,0x11,0x0f,0x1c,0x92,0x1b,0x1b,0x00,0x2b,0x03,0x15,0x03,0x02,0x24,0x92,0x05,0x13,0x00,0x12,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f, +0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x21,0x23,0x35,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x11,0x33,0x04,0x8e,0xa8,0x4e,0xd4,0x83,0x6c,0xb1,0x80,0x46,0x2d,0x54,0x77,0x4a,0x7d,0x8a,0xa8,0x31, +0x58,0x7b,0x4a,0xc2,0xbc,0x30,0x55,0x73,0x43,0x4d,0x7b,0x63,0x4e,0x21,0xa8,0x8c,0x4b,0x59,0x3f,0x72,0x9e,0x5f,0x45,0x77,0x5a,0x3a,0x08,0x04,0x22,0x87,0x74,0x01,0x8b,0xfe,0x76,0x39,0x56,0x39,0x1d,0x8b,0x8a,0x8a,0x3e,0x66,0x49,0x28,0x27,0x40,0x52,0x2c,0x04,0x3e,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x97,0x04,0x00,0x00,0x2b, +0x00,0x21,0x40,0x11,0x0f,0x1b,0x96,0x1a,0x1a,0x00,0x2b,0x0f,0x15,0x0f,0x02,0x24,0x92,0x05,0x16,0x00,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x21,0x23,0x35,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x0e, +0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x11,0x33,0x03,0x97,0xa4,0x3c,0x8d,0x5f,0x4f,0x85,0x61,0x36,0x24,0x42,0x5d,0x39,0x64,0x6f,0xa4,0x6d,0x7a,0x06,0x0b,0x4a,0x67,0x3f,0x1c,0x78,0x70,0x24,0x4a,0x45,0x3e,0x17,0xa4,0x5d,0x34,0x41,0x2b,0x4f,0x71,0x46,0x34,0x57,0x41,0x28,0x05,0x05,0x15,0x6c,0x5a,0x01,0x0e,0xfe,0xec, +0x51,0x4c,0x81,0x17,0x2c,0x42,0x2a,0x57,0x57,0x10,0x1e,0x2e,0x1e,0x03,0x15,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xe2,0x05,0xb2,0x02,0x06,0x01,0xee,0x00,0x00,0x00,0x02,0x00,0x5e,0xfe,0x1e,0x05,0x2c,0x05,0xb2,0x00,0x1f,0x00,0x36,0x00,0x25,0x40,0x14,0x19,0x91,0x16,0x2f,0x14,0x01,0x14,0x11,0x03,0x0f,0x1d,0x00,0x20,0x91, +0x0a,0x04,0x2a,0x91,0x00,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0x2f,0x5d,0x33,0xed,0x30,0x31,0x05,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x35,0x33,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x35,0x06,0x06,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04, +0x35,0x11,0x34,0x2e,0x02,0x02,0xb9,0x86,0xde,0x9f,0x58,0x5c,0xa9,0xf0,0x94,0x4e,0x80,0x66,0x4d,0x1c,0xa8,0xfd,0x6b,0xf4,0xb6,0xdf,0xc9,0xf2,0xfd,0x40,0xe1,0x80,0x6c,0xad,0x7a,0x42,0x42,0x79,0xa9,0x66,0x33,0x67,0x5f,0x53,0x3d,0x23,0x3b,0x6e,0x9a,0x18,0x6a,0xbf,0x01,0x0a,0xa1,0xac,0x01,0x18,0xc6,0x6c,0x21,0x39,0x4b,0x2a, +0xb7,0xfa,0xf0,0xfd,0x94,0x4f,0xb2,0x69,0xdf,0xdd,0x64,0x6d,0x81,0x05,0x32,0x56,0x9c,0xd9,0x84,0x84,0xd9,0x9a,0x55,0x13,0x2c,0x48,0x6a,0x90,0x5d,0x01,0x0d,0x6c,0xa2,0x6c,0x36,0x00,0x00,0x02,0x00,0x28,0x00,0x00,0x04,0x9d,0x05,0x9a,0x00,0x20,0x00,0x2c,0x00,0x32,0x40,0x1c,0x1e,0x07,0x92,0x2b,0x17,0x2b,0x23,0x92,0x11,0x8f, +0x11,0xef,0x11,0x02,0x61,0x11,0x01,0x2b,0x11,0x2b,0x11,0x01,0x15,0x03,0x1f,0x91,0x01,0x12,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x30,0x31,0x21,0x21,0x11,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x11,0x33,0x11,0x36,0x36,0x37,0x15,0x06,0x06, +0x07,0x11,0x21,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x04,0x9d,0xfd,0x18,0x0b,0x10,0x13,0x19,0x15,0x46,0x71,0x4f,0x2b,0x23,0x3f,0x58,0x35,0x25,0x53,0x26,0xa8,0x3c,0x75,0x3c,0x3c,0x75,0x3c,0x02,0x40,0xfd,0x18,0x04,0x8f,0x2a,0x39,0x12,0x29,0x43,0x30,0x25,0x02,0x22,0x01,0x01,0x01,0x01,0x21,0x3e,0x5b,0x3a, +0x31,0x53,0x3b,0x21,0x16,0x22,0x01,0xe0,0xfd,0x43,0x1a,0x49,0x34,0xa6,0x2a,0x3f,0x17,0xfe,0x4a,0x02,0x10,0xc4,0x30,0x2a,0x1d,0x2a,0x1c,0x0d,0x00,0x01,0x00,0x02,0x00,0x00,0x03,0xe8,0x05,0x9a,0x00,0x10,0x00,0x19,0x40,0x0d,0x0e,0x12,0x04,0x10,0x0a,0x03,0x06,0x09,0x12,0x06,0x03,0x01,0x03,0x00,0x3f,0x3f,0x3f,0x12,0x17,0x39, +0x3f,0x30,0x31,0x13,0x33,0x01,0x16,0x17,0x33,0x11,0x33,0x11,0x23,0x11,0x23,0x06,0x07,0x01,0x23,0x01,0x02,0xea,0x02,0x2a,0x1f,0x07,0x04,0xa8,0xa8,0x04,0x0e,0x18,0xfd,0xe8,0xd1,0x02,0x67,0x05,0x9a,0xfd,0x70,0x25,0x0d,0x02,0xc2,0xfa,0x66,0x02,0xa2,0x16,0x1b,0xfd,0x8f,0x02,0xb0,0x00,0x00,0x01,0x00,0x29,0x00,0x00,0x04,0x0c, +0x05,0x9a,0x00,0x07,0x00,0x0f,0xb6,0x05,0x03,0x06,0x02,0x91,0x00,0x12,0x00,0x3f,0xed,0x32,0x3f,0x30,0x31,0x21,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x04,0x0c,0xfc,0x1d,0x01,0x9d,0xa8,0x01,0x9e,0x98,0x05,0x02,0xfa,0xfe,0x00,0x00,0x01,0x00,0x32,0x02,0x79,0x05,0xcc,0x03,0x21,0x00,0x03,0x00,0x08,0xb1,0x01,0x03,0x00,0x2f,0xcd, +0x30,0x31,0x01,0x15,0x21,0x35,0x05,0xcc,0xfa,0x66,0x03,0x21,0xa8,0xa8,0x00,0x03,0xff,0xf9,0xff,0xe8,0x04,0xc5,0x04,0x18,0x00,0x27,0x00,0x30,0x00,0x39,0x00,0x30,0x40,0x19,0x1c,0x0f,0x20,0x0c,0x35,0x1d,0x0f,0x19,0x14,0x04,0x2d,0x2d,0x07,0x28,0x95,0x14,0x10,0x31,0xec,0x07,0x16,0x25,0xec,0x02,0x16,0x00,0x3f,0xed,0x3f,0xed, +0x3f,0xed,0x12,0x39,0x2f,0x39,0x12,0x39,0x33,0x33,0xcd,0x32,0x32,0x3f,0x30,0x31,0x25,0x06,0x23,0x22,0x03,0x23,0x02,0x21,0x22,0x2e,0x02,0x27,0x23,0x35,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x1e,0x03,0x33,0x32,0x37,0x01,0x22,0x0e,0x02,0x07,0x21,0x26,0x26,0x03,0x32,0x36,0x37,0x21,0x1e, +0x03,0x04,0xc5,0x33,0x2c,0x9a,0x36,0x04,0x95,0xfe,0xf7,0x5a,0x94,0x6b,0x3d,0x04,0x61,0x67,0x0c,0x4d,0x79,0xa3,0x63,0x3f,0x72,0x60,0x4c,0x1a,0x04,0x55,0xac,0xab,0xa0,0xaa,0x10,0x20,0x26,0x2c,0x1c,0x16,0x12,0xfd,0x74,0x3f,0x67,0x4e,0x33,0x0a,0x02,0x53,0x2a,0x92,0x95,0x66,0xa8,0x3a,0xfd,0xb1,0x05,0x29,0x43,0x5d,0x05,0x0d, +0x01,0x25,0xfe,0xcb,0x48,0x7f,0xae,0x66,0x81,0x68,0xac,0x7c,0x44,0x26,0x4a,0x6a,0x44,0x01,0x06,0xfe,0x44,0x81,0x59,0x75,0x46,0x1d,0x05,0x02,0xf9,0x32,0x59,0x79,0x48,0xa2,0xaa,0xfc,0xe8,0xa6,0xa5,0x47,0x79,0x58,0x33,0x00,0x00,0x03,0x00,0x5a,0xff,0xe8,0x06,0x58,0x04,0x18,0x00,0x29,0x00,0x38,0x00,0x41,0x00,0x43,0x40,0x24, +0x23,0x25,0x95,0x20,0x10,0x18,0x16,0x95,0x1b,0x39,0x95,0x28,0x2a,0x95,0x14,0x08,0x0c,0x28,0x1d,0x14,0x1b,0x28,0x14,0x28,0x14,0x0c,0x1b,0x10,0x33,0x95,0x0c,0x16,0x3e,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x3f,0xed,0x32,0x30, +0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x15,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x05,0x07,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x37,0x1e,0x03,0x33,0x32,0x36,0x37,0x06,0x58,0x38, +0x6b,0x9d,0x65,0x80,0xcc,0x3e,0x04,0x91,0xf2,0x4d,0x79,0x55,0x2d,0x01,0x7f,0x01,0x06,0xd7,0xaf,0x9b,0x94,0xc8,0xdb,0x48,0x3c,0xb8,0x7b,0xdd,0x88,0x92,0xac,0x9b,0xaf,0x04,0x02,0xd3,0xfc,0x87,0xcb,0x8b,0x89,0x1b,0x33,0x49,0x2d,0x3b,0x67,0x4d,0x2c,0xa8,0x0a,0x33,0x4e,0x64,0x3a,0x79,0x86,0x01,0x01,0xd3,0x73,0xb6,0x7f,0x43, +0x7e,0x6e,0x07,0xe5,0x2a,0x4d,0x6d,0x44,0x01,0x2c,0x18,0x10,0x01,0x2a,0x7a,0xa4,0x60,0xb1,0x56,0x5b,0x62,0x9a,0x72,0xb9,0xac,0x50,0x0c,0x08,0x52,0x5f,0x24,0x3c,0x2b,0x17,0x2d,0x50,0x6c,0x3f,0x04,0x43,0x6e,0x4f,0x2c,0x9d,0x8f,0x00,0x00,0x02,0x00,0x64,0xff,0xd8,0x03,0x40,0x04,0x12,0x00,0x20,0x00,0x2a,0x00,0x22,0x40,0x0f, +0x1f,0x1e,0x14,0x21,0x1e,0x21,0x1e,0x21,0x01,0x25,0x0d,0x20,0x19,0x01,0x15,0x00,0x3f,0xcd,0x33,0x2f,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x30,0x31,0x05,0x37,0x2e,0x03,0x35,0x11,0x34,0x3e,0x02,0x37,0x25,0x33,0x13,0x16,0x15,0x14,0x07,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x17,0x01,0x03,0x25,0x36,0x35, +0x27,0x0e,0x03,0x15,0x01,0xac,0x09,0x62,0x82,0x4d,0x20,0x07,0x10,0x1c,0x14,0x01,0x7c,0x31,0xd9,0x0f,0x1a,0xfe,0x35,0x2f,0x45,0x50,0x21,0x21,0x31,0x2d,0x2f,0x1e,0x2d,0xfe,0xaf,0x92,0x01,0x0b,0x11,0xa7,0x19,0x2b,0x1f,0x12,0x0d,0x1a,0x1e,0x4b,0x5b,0x6c,0x40,0x01,0x18,0x23,0x2d,0x20,0x17,0x0c,0xea,0xfe,0xd6,0x1a,0x09,0x0f, +0x10,0xfe,0xef,0x30,0x44,0x2d,0x15,0x07,0x13,0x21,0x19,0x2d,0xfe,0xd2,0x02,0x09,0x9a,0x0b,0x07,0xf1,0x10,0x1a,0x23,0x35,0x2c,0x00,0x00,0x02,0x00,0x13,0xff,0xe8,0x04,0x23,0x04,0x18,0x00,0x20,0x00,0x29,0x00,0x36,0x40,0x1e,0x11,0x0b,0xff,0x06,0x01,0x06,0x03,0x14,0x03,0x01,0x95,0x29,0xe0,0x03,0xf0,0x03,0x02,0x03,0x29,0x03, +0x29,0x0e,0x24,0x95,0x1b,0x10,0x09,0x95,0x0e,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x11,0x33,0x10,0xdd,0x5d,0xce,0x33,0x30,0x31,0x01,0x21,0x14,0x17,0x21,0x15,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x27,0x23,0x35,0x33,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x27, +0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x03,0xdd,0xfd,0x2d,0x06,0x03,0x13,0xfd,0x15,0x29,0x92,0x65,0xac,0x92,0x88,0xdd,0xa1,0xdb,0x31,0x71,0x53,0x06,0x49,0x7f,0xad,0x63,0x65,0x9d,0x6b,0x38,0xa8,0x01,0x86,0x79,0x3a,0x64,0x4e,0x33,0x0a,0x01,0xd7,0x26,0x21,0x81,0x4d,0x50,0x72,0x9a,0x62,0x98,0x8f,0x81,0x33,0x39,0x77,0xc7,0x8f, +0x4f,0x43,0x7f,0xb6,0x73,0x35,0x8f,0x9d,0x2c,0x4f,0x6f,0x42,0x00,0x02,0x00,0x29,0xff,0xe8,0x04,0xc4,0x04,0x18,0x00,0x26,0x00,0x2f,0x00,0x27,0x40,0x14,0x0f,0x95,0x1b,0x1b,0x01,0x95,0x2f,0x13,0x2f,0x13,0x2f,0x09,0x2a,0x95,0x21,0x10,0x04,0x95,0x09,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x2f, +0xed,0x30,0x31,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x27,0x23,0x22,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x04,0xc4,0xfd,0x2d,0x04,0xaf,0x9b,0xac,0x92,0x88,0xdd,0x75,0xab,0x72,0x3a,0x04,0x0e,0x8a,0x29, +0x89,0x27,0x25,0x44,0x60,0x3b,0x22,0x0e,0x4c,0x77,0x9f,0x60,0x6f,0xa0,0x66,0x30,0xa8,0x01,0x86,0x79,0x41,0x66,0x4b,0x2e,0x09,0x01,0xd7,0xac,0xb9,0x72,0x9a,0x62,0x4e,0x87,0xb4,0x66,0x77,0x4a,0x47,0x49,0x56,0x38,0x5a,0x40,0x22,0x5b,0x9f,0x77,0x45,0x50,0x88,0xb2,0x61,0x35,0x8f,0x9d,0x34,0x54,0x6c,0x38,0xff,0xff,0x00,0x35, +0x00,0x00,0x02,0xa0,0x06,0x02,0x02,0x06,0x00,0x49,0x00,0x00,0x00,0x03,0x00,0x60,0xfe,0x11,0x04,0x35,0x04,0x18,0x00,0x2d,0x00,0x42,0x00,0x4e,0x00,0x45,0x40,0x2b,0x24,0x15,0x18,0x27,0x0f,0x33,0x95,0x22,0x10,0x24,0x12,0x01,0x02,0x46,0x2a,0x12,0x04,0x05,0x49,0x96,0x2f,0x0f,0x01,0x0f,0x3d,0x95,0xef,0x18,0x01,0x18,0x40,0x09, +0x0f,0x48,0x18,0x15,0x43,0x96,0x05,0x1b,0x2d,0x00,0x1b,0x00,0x3f,0x32,0x3f,0xed,0x3f,0x2b,0x5d,0xed,0xde,0x5d,0xed,0x12,0x17,0x39,0x5d,0x3f,0xed,0x3f,0x12,0x39,0x39,0x30,0x31,0x01,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x35,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e, +0x02,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x14,0x07,0x16,0x16,0x17,0x03,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x01,0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0xaa,0x1c,0x2b,0x49,0xbc,0x63,0x3a,0x69,0x50,0x2f,0x34,0x56,0x71,0x3e,0x51,0x9e,0x45,0x26,0x04,0x75,0xeb, +0x5f,0x9d,0x6f,0x3d,0x41,0x79,0xae,0x6d,0xcf,0x64,0x04,0xa4,0x4a,0x26,0x38,0x11,0xc9,0x2c,0x4e,0x69,0x3d,0x4b,0x78,0x54,0x2d,0x2a,0x4f,0x6f,0x45,0x45,0x72,0x53,0x2d,0xfe,0x95,0x4d,0x78,0x2d,0x30,0x6e,0x3e,0x4d,0x51,0x48,0xfe,0x11,0x42,0x36,0x3b,0x30,0x1c,0x35,0x4b,0x2f,0x31,0x4b,0x33,0x1b,0x29,0x27,0x5b,0x7e,0x70,0xc4, +0x47,0x83,0xba,0x73,0x82,0xd2,0x95,0x50,0xa6,0x8e,0xfc,0x52,0xd0,0x83,0x29,0x60,0x39,0x04,0x29,0x3c,0x6b,0x51,0x30,0x38,0x6c,0x9c,0x64,0x54,0x8b,0x63,0x36,0x35,0x5d,0x80,0x4b,0xfc,0xd1,0x2a,0x26,0x1f,0x22,0x27,0x1d,0x23,0x2a,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0xb7,0x05,0xec,0x00,0x2b,0x00,0x2b,0x40,0x15,0x21,0x20, +0x11,0x03,0x03,0x1a,0x27,0x0a,0x0b,0x20,0x27,0x0b,0x0b,0x27,0x20,0x03,0x16,0x2a,0x00,0x16,0x15,0x00,0x3f,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xcd,0x33,0x2f,0xcd,0x11,0x33,0x30,0x31,0x01,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x11,0x23,0x11,0x26,0x26, +0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x11,0x33,0x01,0xae,0x0f,0x1d,0x0e,0x1b,0x25,0x17,0x09,0x57,0x27,0x58,0x47,0x6f,0x68,0x0e,0x18,0x0c,0xa4,0x0f,0x20,0x11,0x32,0x29,0x2d,0x2a,0x26,0x4d,0x53,0x6a,0x68,0x1a,0x1e,0xa4,0x03,0x1f,0x06,0x08,0x10,0x1c,0x27,0x17,0x5b,0x19,0x52,0x17, +0x63,0x4c,0x5f,0x70,0x04,0x03,0xfd,0x4d,0x02,0xff,0x05,0x07,0x3c,0x2e,0x34,0x32,0x0e,0x51,0x0e,0x62,0x55,0x5f,0x70,0x08,0x02,0x84,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0xa4,0x05,0xec,0x00,0x26,0x00,0x4f,0x6e,0x00,0x00,0x27,0x00,0xd8,0x00,0x00,0xfe,0x71,0x00,0x07,0x00,0xd8,0x00,0x00,0xfd,0x3b,0x00,0x03,0xff,0xf6,0x00,0x00, +0x01,0xfa,0x05,0xec,0x00,0x15,0x00,0x1b,0x00,0x22,0x00,0x29,0x40,0x13,0x20,0x15,0x15,0x18,0x02,0x1f,0x0d,0x0d,0x19,0x0a,0x02,0x0a,0x02,0x0a,0x01,0x0b,0x00,0x01,0x15,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x2f,0x33,0x11,0x33,0x33,0x2f,0x33,0x30,0x31,0x21,0x23,0x11,0x2e,0x03,0x35,0x34,0x36,0x37,0x11,0x33, +0x11,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x27,0x14,0x17,0x35,0x06,0x06,0x05,0x34,0x26,0x27,0x15,0x36,0x36,0x01,0x4a,0xa4,0x27,0x41,0x2e,0x1a,0x60,0x50,0xa4,0x50,0x60,0x1a,0x2f,0x41,0x26,0xe4,0x40,0x1d,0x23,0x01,0x1e,0x20,0x1a,0x1a,0x20,0x02,0x1c,0x0a,0x2a,0x3a,0x4a,0x2c,0x5b,0x7a,0x17,0x02,0x00,0xfe,0x01,0x16,0x7a,0x55, +0x2a,0x4a,0x3c,0x2d,0x0c,0xe6,0x5f,0x1e,0xf5,0x13,0x3f,0x26,0x23,0x3c,0x13,0xe3,0x13,0x3b,0x00,0x02,0x00,0xa6,0xff,0xe8,0x06,0xb4,0x04,0x18,0x00,0x3a,0x00,0x47,0x00,0x36,0x40,0x1e,0x36,0x1a,0x95,0x38,0x03,0x96,0x01,0x01,0x3b,0x96,0x13,0x13,0x20,0x38,0x10,0x2e,0x24,0x95,0x31,0x10,0x2d,0x0f,0x2a,0x15,0x20,0x15,0x43,0x95, +0x09,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0xed,0x33,0x2f,0xed,0x10,0xed,0x32,0x30,0x31,0x01,0x33,0x15,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33, +0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x17,0x36,0x33,0x20,0x11,0x03,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x06,0x54,0x60,0x60,0x28,0x49,0x67,0x3f,0x37,0x5c,0x42,0x24,0x2a,0x4a,0x66,0x3c,0x56,0x19,0x37,0x57,0x3e,0x35,0x5c,0x44,0x27,0xa4,0xe9,0x35,0x5b,0x42,0x26,0xa4,0xa4,0x04,0x6d,0xd1,0x34,0x5d,0x4b,0x38, +0x0e,0x72,0xe2,0x01,0x52,0xeb,0x24,0x36,0x23,0x11,0x36,0x36,0x36,0x33,0x01,0xd8,0x6f,0x63,0x46,0x6b,0x48,0x25,0x27,0x45,0x5e,0x37,0x3c,0x59,0x3c,0x1e,0x74,0x54,0x7a,0x4f,0x25,0x34,0x5a,0x76,0x42,0xfd,0xb8,0x02,0x60,0x01,0x2e,0x30,0x56,0x78,0x48,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x1f,0x38,0x4e,0x2f,0xd4,0xfe,0x5f,0xfe,0xf2, +0x16,0x24,0x2f,0x19,0x35,0x3f,0x50,0x43,0x63,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x58,0x04,0x18,0x00,0x26,0x00,0x33,0x00,0x2b,0x40,0x17,0x20,0x17,0x95,0x23,0x03,0x96,0x00,0x00,0x27,0x96,0x13,0x13,0x1c,0x23,0x10,0x1f,0x0f,0x1c,0x15,0x2f,0x95,0x09,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x33,0x2f,0xed, +0x10,0xed,0x32,0x30,0x31,0x01,0x33,0x15,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x10,0x23,0x22,0x07,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x03,0xf8,0x60,0x60,0x28,0x49,0x67,0x3f,0x37,0x5c,0x42, +0x24,0x2a,0x4a,0x66,0x3c,0x56,0xee,0x7b,0x51,0x50,0xa4,0xa4,0x04,0x74,0xdc,0xa9,0xb1,0xeb,0x24,0x36,0x23,0x11,0x36,0x36,0x36,0x33,0x01,0xd8,0x6f,0x63,0x46,0x6b,0x48,0x25,0x27,0x45,0x5e,0x37,0x3c,0x59,0x3c,0x1e,0x70,0x01,0x46,0x5d,0x5c,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd8,0xce,0xfe,0xf7,0x16,0x24,0x2f,0x19,0x35,0x3f, +0x50,0x43,0x63,0x00,0x00,0x02,0x00,0xa6,0xfe,0x11,0x04,0x1c,0x04,0x18,0x00,0x2e,0x00,0x3a,0x00,0x3f,0x40,0x28,0x17,0x95,0x24,0x10,0x20,0x0f,0x24,0x12,0x01,0x02,0x32,0x2b,0x12,0x04,0x05,0x35,0x96,0x2f,0x0f,0x5f,0x0f,0x6f,0x0f,0xef,0x0f,0x04,0x06,0x0f,0x01,0x0f,0x0f,0x1d,0x15,0x2e,0x00,0x00,0x2f,0x96,0x05,0x1b,0x00,0x3f, +0xed,0x33,0x2f,0x33,0x3f,0x33,0x2f,0x5d,0x5d,0xed,0x12,0x17,0x39,0x5d,0x3f,0x3f,0xed,0x30,0x31,0x01,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x35,0x11,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x16,0x16,0x17,0x25, +0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x91,0x1c,0x2a,0x4a,0xbb,0x64,0x3a,0x69,0x50,0x2f,0x34,0x56,0x71,0x3e,0x51,0x9e,0x46,0x26,0xee,0x3d,0x68,0x4c,0x2b,0xa4,0xa4,0x04,0x74,0xdc,0xa9,0xb1,0x27,0x23,0x26,0x37,0x11,0xfd,0xca,0x44,0x83,0x2d,0x30,0x6e,0x3e,0x4d,0x51,0x47,0xfe,0x11,0x42,0x36,0x3b,0x30, +0x1c,0x35,0x4b,0x2f,0x31,0x4b,0x33,0x1b,0x29,0x27,0x5a,0x7f,0x02,0x0c,0x01,0x46,0x31,0x57,0x78,0x46,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd8,0xce,0xfd,0xca,0x61,0x9e,0x3f,0x28,0x60,0x39,0x63,0x29,0x26,0x1f,0x23,0x27,0x1d,0x23,0x2a,0x00,0x00,0x02,0x00,0x64,0xff,0xd8,0x03,0xc9,0x04,0x12,0x00,0x1e,0x00,0x30,0x00,0x0d,0xb4,0x30, +0x1e,0x25,0x10,0x16,0x00,0x3f,0xcd,0x2f,0xcd,0x30,0x31,0x01,0x07,0x1e,0x03,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x07,0x23,0x26,0x26,0x27,0x35,0x3e,0x03,0x35,0x11,0x34,0x26,0x27,0x25,0x05,0x11,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x26,0x26,0x27,0x03,0x02,0x20,0x03,0x23,0x36,0x40,0x20,0x16,0x15,0x19,0x38, +0x5c,0x42,0xbd,0x43,0x04,0xbe,0xb4,0x10,0x13,0x0b,0x04,0x05,0x05,0x02,0x54,0xfe,0xa6,0x2d,0x52,0x42,0x2d,0x06,0x0e,0x26,0x22,0x18,0x29,0x28,0x30,0x56,0x13,0x03,0xd9,0x0e,0x05,0x3b,0x55,0x67,0x32,0x23,0x41,0x2a,0x28,0x4e,0x58,0x69,0x42,0xbe,0x14,0x50,0x2d,0x3e,0x05,0x11,0x20,0x31,0x26,0x01,0x57,0x33,0x53,0x22,0xdf,0xd4, +0xfd,0xb8,0x15,0x1e,0x15,0x0a,0x2b,0x47,0x5a,0x2f,0x3a,0x6d,0x3f,0x4a,0x74,0x2a,0x00,0x03,0x00,0x54,0xff,0xb4,0x03,0xc9,0x04,0x40,0x00,0x22,0x00,0x31,0x00,0x37,0x00,0x16,0x40,0x09,0x37,0x00,0x20,0x13,0x12,0x12,0x23,0x0e,0x16,0x00,0x3f,0xcd,0x33,0x2f,0x33,0x2f,0x33,0x33,0x30,0x31,0x01,0x07,0x16,0x16,0x17,0x16,0x16,0x15, +0x14,0x0e,0x02,0x07,0x07,0x23,0x26,0x26,0x27,0x07,0x23,0x37,0x27,0x35,0x3e,0x03,0x35,0x11,0x34,0x26,0x27,0x25,0x17,0x37,0x03,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x27,0x01,0x1e,0x03,0x03,0x11,0x13,0x26,0x26,0x27,0x03,0x9e,0x83,0x1b,0x46,0x22,0x16,0x15,0x19,0x38,0x5c,0x42,0xbd,0x43,0x03,0x60,0x5b,0x50,0x78,0x62,0x52,0x10, +0x13,0x0b,0x04,0x05,0x05,0x02,0x54,0x14,0x31,0xab,0x0e,0x26,0x22,0x18,0x29,0x28,0x06,0xfe,0xff,0x2b,0x4f,0x3f,0x2b,0xee,0xcb,0x1b,0x2d,0x0b,0x04,0x40,0xd3,0x2d,0x6d,0x36,0x23,0x41,0x2a,0x28,0x4e,0x58,0x69,0x42,0xbe,0x0e,0x31,0x1e,0x81,0x9f,0x16,0x3e,0x05,0x11,0x20,0x31,0x26,0x01,0x57,0x33,0x53,0x22,0xdf,0x22,0x50,0xfc, +0x64,0x2b,0x47,0x5a,0x2f,0x3a,0x6d,0x3f,0x09,0xfe,0x63,0x14,0x1c,0x14,0x09,0x02,0x9a,0xfe,0x64,0x01,0x48,0x27,0x42,0x1a,0x00,0x02,0x00,0x80,0xff,0xb4,0x04,0x50,0x04,0x40,0x00,0x23,0x00,0x2b,0x00,0x2b,0x40,0x15,0x0c,0x22,0x0e,0x23,0x23,0x1f,0x12,0x1b,0x12,0x1b,0x09,0x18,0x95,0x1f,0x10,0x0e,0x0e,0x24,0x95,0x09,0x16,0x00, +0x3f,0xed,0x33,0x2f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x2f,0x12,0x39,0x39,0x30,0x31,0x01,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x07,0x23,0x37,0x26,0x27,0x33,0x16,0x16,0x17,0x01,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x17,0x37,0x01,0x32,0x36,0x35,0x34,0x27,0x01,0x16,0x04,0x25, +0x66,0x47,0x4a,0x48,0x84,0xbd,0x75,0x38,0x64,0x2d,0x36,0x78,0x53,0x7a,0x34,0xb3,0x0e,0x28,0x17,0x01,0x9c,0x4d,0x71,0x6b,0x9b,0x29,0xaf,0x34,0xfd,0xb9,0x4b,0x81,0x36,0x40,0xfe,0xb2,0xa0,0xaa,0x42,0xfe,0x72,0x3c,0x04,0x40,0xa5,0x45,0xce,0x84,0x79,0xc7,0x8e,0x4e,0x12,0x11,0x57,0x87,0x54,0x98,0x1f,0x34,0x15,0x02,0x99,0x36, +0x65,0x5e,0x9f,0xae,0x20,0x1f,0x67,0xfc,0x32,0xcd,0xbf,0xa8,0x65,0xfd,0x7f,0x18,0x00,0x03,0x00,0x60,0xff,0xe8,0x07,0x1f,0x04,0x18,0x00,0x22,0x00,0x32,0x00,0x3b,0x00,0x2c,0x40,0x18,0x1e,0x95,0x19,0x10,0x33,0x95,0x16,0x14,0x08,0x21,0x21,0x0a,0x23,0x95,0x14,0x10,0x2d,0x95,0x0a,0x16,0x38,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f, +0xed,0x3f,0xed,0x12,0x39,0x2f,0x39,0x12,0x39,0xed,0x3f,0xed,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x20,0x17,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x01,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x1e,0x03,0x33, +0x32,0x36,0x37,0x07,0x1f,0x38,0x6b,0x9d,0x65,0x80,0xca,0x3c,0x83,0xfe,0xe1,0x72,0xb9,0x81,0x46,0x4a,0x89,0xc1,0x78,0x01,0x17,0x6f,0x39,0xc2,0x86,0xdd,0x88,0x92,0xac,0x9b,0xaf,0x04,0x02,0xd3,0xfb,0x3f,0x4e,0x7f,0x59,0x30,0x30,0x58,0x7e,0x4e,0xa0,0xac,0xac,0x01,0x52,0x0a,0x33,0x4e,0x64,0x3a,0x79,0x86,0x01,0x01,0xd3,0x73, +0xb6,0x7f,0x43,0x7e,0x6e,0xec,0x4b,0x89,0xc0,0x76,0x81,0xcc,0x8e,0x4b,0xd4,0x67,0x6d,0x62,0x9a,0x72,0xb9,0xac,0x01,0x65,0x38,0x69,0x98,0x5f,0x5a,0x8f,0x65,0x36,0xcc,0xbe,0xc3,0xcf,0xfe,0x10,0x43,0x6e,0x4f,0x2c,0x9d,0x8f,0x00,0x04,0x00,0x60,0xff,0xb4,0x07,0x21,0x04,0x40,0x00,0x2d,0x00,0x36,0x00,0x41,0x00,0x4a,0x00,0x41, +0x40,0x24,0x2e,0x95,0x29,0x2c,0x3f,0x34,0x0b,0x04,0x0c,0x2d,0x2d,0x29,0x10,0x42,0x95,0x10,0x13,0x26,0x24,0x19,0x19,0x13,0x1f,0x95,0x24,0x10,0x45,0x95,0x13,0x16,0x0c,0x0c,0x37,0x95,0x09,0x16,0x00,0x3f,0xed,0x33,0x2f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0xed,0x3f,0x33,0x2f,0x12,0x17,0x39,0x10,0xed,0x30, +0x31,0x01,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x27,0x07,0x23,0x37,0x26,0x27,0x23,0x06,0x21,0x22,0x2e,0x02,0x35,0x35,0x21,0x2e,0x03,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x17,0x33,0x36,0x21,0x32,0x16,0x17,0x37,0x05,0x22,0x06,0x15,0x14,0x16,0x17,0x01,0x26,0x03,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x01,0x16,0x01,0x16, +0x16,0x33,0x32,0x3e,0x02,0x37,0x06,0xf5,0x69,0x48,0x4d,0x4a,0x89,0xc2,0x77,0x6a,0x55,0x33,0x78,0x52,0x4d,0x2d,0x04,0x76,0xfe,0xf5,0x63,0x9a,0x6a,0x37,0x02,0xd5,0x02,0x2f,0x56,0x7a,0x4d,0xaf,0x90,0x89,0xdc,0x01,0x0d,0x71,0x04,0x82,0x01,0x1e,0x4d,0x85,0x38,0x43,0xfe,0xa9,0xa0,0xac,0x3c,0x39,0x01,0x9c,0x52,0x75,0x4f,0x7f, +0x59,0x2f,0x24,0x22,0xfe,0x72,0x39,0xfc,0x2a,0x02,0x85,0x75,0x3d,0x67,0x50,0x33,0x08,0x04,0x40,0xaa,0x45,0xc7,0x7c,0x81,0xcc,0x8e,0x4b,0x1f,0x53,0x84,0x38,0x63,0xeb,0x45,0x7f,0xb5,0x70,0x58,0x55,0x85,0x5c,0x2f,0x72,0x9a,0x62,0xed,0xed,0x23,0x21,0x6c,0xb2,0xcc,0xbe,0x72,0xa5,0x33,0x02,0x9a,0x3a,0xfc,0xe4,0x39,0x69,0x97, +0x5f,0x4e,0x7f,0x31,0xfd,0x7f,0x15,0x01,0x2c,0x8f,0x9d,0x2e,0x51,0x6e,0x3f,0x00,0x00,0x04,0x00,0x60,0xff,0xe8,0x07,0x21,0x04,0x18,0x00,0x24,0x00,0x2d,0x00,0x36,0x00,0x3f,0x00,0x3b,0x40,0x20,0x3a,0x95,0x1f,0x16,0x37,0x95,0x01,0x2b,0x95,0x31,0x1c,0x1a,0x01,0x0d,0x31,0x01,0x31,0x01,0x31,0x10,0x25,0x95,0x1a,0x16,0x2e,0x95, +0x10,0x10,0x06,0x95,0x0b,0x10,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x3f,0xed,0x30,0x31,0x13,0x21,0x2e,0x03,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x17,0x33,0x36,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x20,0x27,0x23,0x06,0x21,0x22,0x2e,0x02,0x35,0x01, +0x32,0x3e,0x02,0x37,0x21,0x16,0x16,0x13,0x22,0x06,0x07,0x21,0x2e,0x03,0x01,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x60,0x02,0xd5,0x02,0x2f,0x56,0x7a,0x4d,0xaf,0x90,0x89,0xdc,0x01,0x0d,0x71,0x04,0x82,0x01,0x1e,0x73,0xb8,0x81,0x46,0x4a,0x89,0xc2,0x77,0xfe,0xda,0x6c,0x04,0x76,0xfe,0xf5,0x63,0x9a,0x6a,0x37,0x04,0xc3,0x49,0x77, +0x58,0x35,0x07,0xfd,0x63,0x0b,0xab,0x95,0x8c,0xa7,0x14,0x02,0x95,0x0a,0x38,0x55,0x72,0xfb,0x9e,0x02,0x85,0x75,0x3d,0x67,0x50,0x33,0x08,0x02,0x29,0x55,0x85,0x5c,0x2f,0x72,0x9a,0x62,0xed,0xed,0x4c,0x89,0xc0,0x75,0x81,0xcc,0x8e,0x4b,0xeb,0xeb,0x45,0x7f,0xb5,0x70,0xfe,0xa1,0x30,0x5b,0x82,0x52,0xab,0xb4,0x03,0x1c,0x9d,0x95, +0x47,0x72,0x4f,0x2a,0xfe,0x10,0x8f,0x9d,0x2e,0x51,0x6e,0x3f,0x00,0x02,0x00,0x60,0xff,0xe8,0x07,0x98,0x04,0x18,0x00,0x32,0x00,0x42,0x00,0x1f,0x40,0x11,0x33,0x95,0x29,0x10,0x17,0x95,0x10,0x10,0x21,0x95,0x06,0x16,0x03,0x3d,0x95,0x00,0x16,0x00,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x30,0x31,0x05,0x22,0x26,0x27,0x06, +0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x07,0x26,0x22,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x05,0x9a,0x8d,0xd5,0x3f,0x42,0xd6,0x8f,0x71,0xb8,0x82, +0x47,0x49,0x88,0xc1,0x78,0x0d,0x18,0x0c,0x19,0x09,0x12,0x09,0x4e,0x7f,0x59,0x30,0x30,0x5a,0x7e,0x4e,0xa0,0xaa,0x4a,0x89,0xc0,0x77,0x73,0xb4,0x7d,0x42,0x48,0x84,0xbd,0x69,0x4e,0x7f,0x59,0x30,0x30,0x5a,0x7e,0x4e,0xa0,0xaa,0xaa,0x18,0x71,0x66,0x66,0x71,0x4b,0x8a,0xc1,0x76,0x81,0xcb,0x8d,0x4b,0x01,0x01,0x89,0x01,0x37,0x69, +0x96,0x5e,0x5a,0x91,0x66,0x37,0xcd,0xbf,0x7e,0xc8,0x8b,0x49,0x49,0x8a,0xc5,0x7c,0x79,0xc7,0x8e,0x4e,0x03,0xa6,0x37,0x69,0x96,0x5e,0x5a,0x91,0x66,0x37,0xcd,0xbf,0xc1,0xcf,0x00,0x03,0x00,0x60,0xff,0xb4,0x07,0x98,0x04,0x40,0x00,0x3c,0x00,0x47,0x00,0x4f,0x00,0x30,0x40,0x1b,0x03,0x45,0x4d,0x32,0x04,0x05,0x33,0x33,0x3d,0x95, +0x2f,0x10,0x1d,0x95,0x16,0x10,0x09,0x27,0x95,0x0c,0x16,0x05,0x05,0x48,0x95,0x00,0x16,0x00,0x3f,0xed,0x33,0x2f,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x33,0x2f,0x12,0x17,0x39,0x30,0x31,0x05,0x22,0x26,0x27,0x07,0x23,0x37,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x07,0x26,0x22,0x23, +0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x37,0x33,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x03,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x01,0x26,0x03,0x32,0x36,0x35,0x34,0x27,0x01,0x16,0x05,0x9a,0x38,0x64,0x2d,0x36,0x78,0x54,0x26,0x3f,0x19,0x42,0xd6,0x8f,0x71,0xb8,0x82,0x47,0x49, +0x88,0xc1,0x78,0x0d,0x18,0x0c,0x19,0x09,0x12,0x09,0x4e,0x7f,0x59,0x30,0x30,0x5a,0x7e,0x4e,0xa0,0xaa,0x4a,0x89,0xc0,0x77,0x4b,0x81,0x36,0x40,0x79,0x66,0x47,0x4a,0x48,0x84,0xbd,0x69,0x4e,0x7f,0x59,0x30,0x3f,0x3a,0x01,0x9b,0x4d,0x71,0xa0,0xaa,0x42,0xfe,0x72,0x3c,0x18,0x13,0x11,0x58,0x87,0x1a,0x42,0x28,0x66,0x71,0x4b,0x8a, +0xc1,0x76,0x81,0xcb,0x8d,0x4b,0x01,0x01,0x89,0x01,0x37,0x69,0x96,0x5e,0x5a,0x91,0x66,0x37,0xcd,0xbf,0x7e,0xc8,0x8b,0x49,0x20,0x1f,0x67,0xa5,0x45,0xce,0x84,0x79,0xc7,0x8e,0x4e,0x03,0xa6,0x37,0x69,0x96,0x5e,0x69,0x9f,0x33,0x02,0x99,0x36,0xfc,0xe4,0xcd,0xbf,0xa8,0x65,0xfd,0x7f,0x18,0x00,0x01,0x00,0x7d,0x00,0x00,0x03,0xe4, +0x04,0x00,0x00,0x11,0x00,0x19,0x40,0x0c,0x0b,0x03,0x96,0x0e,0x0e,0x07,0x0c,0x0f,0x07,0x15,0x00,0x15,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x33,0x30,0x31,0x21,0x35,0x10,0x21,0x22,0x06,0x15,0x15,0x23,0x35,0x10,0x25,0x11,0x33,0x11,0x04,0x11,0x15,0x03,0x40,0xfe,0xf5,0x8c,0x88,0xa4,0x01,0x62,0xa4,0x01,0x61,0x6b,0x01,0x3c, +0xa0,0xa8,0x5f,0x58,0x01,0xab,0x29,0x01,0xd4,0xfe,0x2b,0x2c,0xfe,0x54,0x53,0x00,0x00,0x02,0x00,0xb0,0xfe,0x8d,0x04,0x24,0x04,0x33,0x00,0x2a,0x00,0x35,0x00,0x1d,0x40,0x0e,0x0a,0x27,0x3a,0x30,0x30,0x28,0x2f,0x3a,0x2a,0x16,0x3a,0x1d,0x28,0x08,0x00,0x3f,0xdc,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x01,0x32,0x1e, +0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x23,0x11,0x01,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x3e,0x02,0x02,0x1d,0x56,0x8a,0x61,0x34,0x26,0x46,0x62,0x3c,0x3c,0x55,0x37,0x19,0x09,0x1b,0x30,0x28,0x11,0x20, +0x0e,0x11,0x22,0x13,0x96,0x83,0x27,0x40,0x51,0x29,0x90,0xa4,0x02,0x37,0x77,0x76,0xa6,0xa0,0x37,0x59,0x40,0x23,0x04,0x33,0x27,0x4a,0x69,0x43,0x3b,0x62,0x4c,0x35,0x0d,0x03,0x14,0x2e,0x3e,0x4f,0x33,0xe8,0x3b,0x58,0x3a,0x1e,0x05,0x05,0x88,0x04,0x04,0xb8,0xb9,0xff,0x25,0x43,0x33,0x1d,0xfe,0x4b,0x04,0x33,0xfe,0xd7,0x57,0x4c, +0xfe,0x8e,0x1e,0x37,0x4c,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x01,0xef,0x04,0x00,0x00,0x0d,0x00,0x11,0xb7,0x09,0x00,0x0d,0x0f,0x07,0x0f,0x05,0x15,0x00,0x3f,0x3f,0x3f,0x33,0x32,0x30,0x31,0x01,0x06,0x07,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x37,0x01,0xef,0x35,0x2a,0x46,0xa4,0xa4,0x04,0x18,0x51,0x35,0x03,0x6a, +0x18,0x3a,0x62,0xac,0xfd,0xf6,0x04,0x00,0xd3,0x49,0x68,0x1a,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf2,0x04,0x12,0x00,0x1e,0x00,0x1b,0x40,0x0e,0x14,0x07,0x0a,0xec,0x1a,0x10,0x13,0x0f,0x10,0x15,0x05,0xec,0x00,0x10,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x32,0x30,0x31,0x01,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x26,0x26,0x23, +0x22,0x06,0x07,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x3e,0x03,0x33,0x32,0x16,0x17,0x36,0x03,0x90,0x3e,0x24,0x2c,0x50,0x65,0x45,0x2a,0x50,0x20,0x35,0x4a,0x23,0x46,0xa4,0xa4,0x04,0x12,0x36,0x46,0x51,0x2d,0x32,0x49,0x1a,0x47,0x04,0x12,0x0e,0xaa,0x21,0x5b,0x37,0x24,0x31,0x32,0x62,0xac,0xfd,0xf6,0x04,0x00,0xd3,0x36,0x55, +0x3b,0x1f,0x20,0x1d,0x3d,0x00,0x00,0x02,0x00,0x1c,0xff,0xe8,0x03,0x9e,0x04,0x12,0x00,0x26,0x00,0x33,0x00,0x28,0x40,0x15,0x02,0xec,0x24,0x10,0x0a,0x96,0x07,0x07,0x27,0x96,0x1e,0x1c,0x1b,0x1b,0x10,0x1c,0x0f,0x2f,0x95,0x10,0x16,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x2f,0xed,0x3f,0xed,0x30,0x31,0x01,0x26, +0x23,0x22,0x07,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x33,0x15,0x33,0x3e,0x03,0x33,0x32,0x17,0x01,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x03,0x9e,0x2c,0x50,0x6a,0x46,0x46,0x60,0x60,0x28,0x49,0x67,0x3f,0x37,0x5c,0x42,0x24,0x2a,0x4a,0x66, +0x3c,0x56,0xa4,0x04,0x12,0x36,0x46,0x51,0x2d,0x3e,0x24,0xfd,0xa3,0x24,0x36,0x23,0x11,0x36,0x36,0x36,0x33,0x03,0x5a,0x21,0x63,0x62,0xac,0x32,0x6f,0x63,0x46,0x6b,0x48,0x25,0x27,0x45,0x5e,0x37,0x3c,0x59,0x3c,0x1e,0x02,0x28,0xd3,0x36,0x55,0x3b,0x1f,0x0e,0xfd,0x65,0x16,0x24,0x2f,0x19,0x35,0x3f,0x50,0x43,0x63,0x00,0x00,0x02, +0x00,0x1c,0xff,0xe8,0x04,0xd4,0x04,0x12,0x00,0x32,0x00,0x3f,0x00,0x30,0x40,0x1a,0x07,0x0a,0xec,0x2e,0x10,0x14,0x96,0x11,0x11,0x33,0x96,0x28,0x27,0x25,0x25,0x1a,0x27,0x0f,0x3b,0x95,0x1a,0x16,0x05,0xec,0x00,0x10,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x2f,0xed,0x3f,0xed,0x32,0x30,0x31,0x01,0x32, +0x17,0x15,0x26,0x23,0x22,0x07,0x26,0x26,0x23,0x22,0x06,0x07,0x06,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x33,0x15,0x33,0x3e,0x03,0x33,0x32,0x16,0x17,0x36,0x01,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x04,0x72,0x3e,0x24,0x2c,0x50,0x65,0x45, +0x2a,0x50,0x20,0x35,0x4a,0x23,0x23,0x23,0x60,0x60,0x28,0x49,0x67,0x3f,0x37,0x5c,0x42,0x24,0x2a,0x4a,0x66,0x3c,0x56,0xa4,0x04,0x12,0x36,0x46,0x51,0x2d,0x32,0x49,0x1a,0x47,0xfd,0x29,0x24,0x36,0x23,0x11,0x36,0x36,0x36,0x33,0x04,0x12,0x0e,0xaa,0x21,0x5b,0x37,0x24,0x31,0x32,0x32,0x90,0x56,0x28,0x6f,0x63,0x46,0x6b,0x48,0x25, +0x27,0x45,0x5e,0x37,0x3c,0x59,0x3c,0x1e,0x02,0x28,0xd3,0x36,0x55,0x3b,0x1f,0x20,0x1d,0x3d,0xfd,0x57,0x16,0x24,0x2f,0x19,0x35,0x3f,0x50,0x43,0x63,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x03,0x14,0x04,0x00,0x00,0x15,0x00,0x1d,0x40,0x0e,0x05,0x96,0x0f,0x0a,0x0f,0x0a,0x0f,0x01,0x14,0x0f,0x0c,0x0f,0x01,0x15,0x00,0x3f,0x3f,0x3f, +0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x30,0x31,0x21,0x23,0x11,0x06,0x06,0x23,0x22,0x26,0x27,0x15,0x23,0x11,0x33,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x33,0x03,0x14,0xa4,0x2d,0x70,0x46,0x4a,0x6e,0x2b,0x6e,0x83,0x27,0x64,0x41,0x25,0x4a,0x3f,0x2e,0x09,0xa4,0x03,0x64,0x1a,0x1f,0x1f,0x1c,0xd4,0x01,0x6e,0x38,0x24,0x10,0x1a,0x21, +0x11,0x00,0x00,0x02,0x00,0x3c,0xff,0xe9,0x05,0x06,0x04,0x00,0x00,0x20,0x00,0x2c,0x00,0x29,0x40,0x16,0x21,0x96,0x1c,0x09,0x96,0x13,0x0d,0x1c,0x13,0x13,0x1c,0x0d,0x03,0x00,0x18,0x0f,0x10,0x0f,0x27,0x96,0x00,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x30,0x31,0x05,0x22,0x2e,0x02,0x35, +0x11,0x06,0x06,0x23,0x22,0x26,0x27,0x15,0x23,0x11,0x33,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x33,0x11,0x36,0x33,0x20,0x11,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03,0xb0,0x48,0x76,0x54,0x2e,0x2d,0x70,0x46,0x4a,0x6e,0x2b,0x6e,0x83,0x27,0x64,0x41,0x25,0x4a,0x3f,0x2e,0x09,0xa4,0x49,0x6b,0x01, +0x3e,0xb2,0x94,0x5d,0x4f,0x4e,0x5b,0x5a,0x4c,0x4b,0x17,0x27,0x4b,0x70,0x4a,0x02,0x4f,0x1a,0x1f,0x1f,0x1c,0xd4,0x01,0x6e,0x38,0x24,0x10,0x1a,0x21,0x11,0xfe,0x73,0x24,0xfe,0xac,0xaa,0xb0,0x02,0x52,0x81,0x83,0x79,0x79,0x7a,0x7d,0x80,0x7f,0x00,0xff,0xff,0xff,0x92,0xfe,0x1e,0x02,0x68,0x06,0x02,0x02,0x06,0x05,0x88,0x00,0x00, +0x00,0x01,0x00,0x90,0xff,0xe8,0x03,0xe2,0x04,0x00,0x00,0x12,0x00,0x19,0x40,0x0c,0x11,0x11,0x01,0x09,0x0f,0x02,0x0c,0x95,0x05,0x16,0x01,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x30,0x31,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x37,0x36,0x35,0x11,0x33,0x03,0xe2,0xa4,0x04,0x66,0xd6, +0xfe,0x92,0xa3,0xf8,0x79,0x4c,0x4e,0xa4,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0x58,0x58,0x90,0x01,0x03,0x00,0x00,0x02,0x00,0x21,0xff,0xe8,0x04,0xa4,0x04,0x00,0x00,0x15,0x00,0x1f,0x00,0x28,0x40,0x13,0x0a,0x01,0x18,0x10,0x14,0x0d,0x10,0x12,0x10,0x12,0x10,0x07,0x0f,0x0f,0x04,0x1b,0x95,0x07,0x15,0x00,0x3f,0xed, +0x32,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xcd,0x32,0x32,0x30,0x31,0x01,0x23,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x35,0x33,0x15,0x33,0x05,0x35,0x21,0x15,0x10,0x33,0x32,0x3e,0x02,0x04,0xa4,0x98,0xa4,0x04,0x66,0xd5,0xfe,0x8f,0x97,0x97,0xa4,0x02,0x0c,0xa4,0x98,0xfe, +0xc4,0xfd,0xf4,0xfa,0x3c,0x65,0x48,0x29,0x01,0xdb,0xfe,0x25,0xa2,0xba,0x01,0xb4,0x3f,0x8b,0x01,0x9a,0xfe,0x66,0x50,0x50,0xb4,0x29,0x25,0xfe,0xbc,0x2f,0x54,0x76,0x00,0x02,0x00,0xa6,0xff,0xe8,0x06,0x54,0x04,0x12,0x00,0x27,0x00,0x3b,0x00,0x29,0x40,0x16,0x0e,0x0e,0x25,0x28,0x32,0x10,0x07,0x95,0x25,0x16,0x23,0x1b,0x11,0x95, +0x1e,0x16,0x1a,0x15,0x17,0x0f,0x01,0x0f,0x00,0x3f,0x3f,0x3f,0x3f,0xed,0x32,0x32,0x3f,0xed,0x3f,0xcd,0x12,0x39,0x2f,0x30,0x31,0x13,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x10,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x27,0x06,0x23,0x20,0x11,0x01,0x22,0x2e, +0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0xa6,0xa4,0x19,0x36,0x57,0x3f,0x34,0x5c,0x45,0x27,0xa4,0xe9,0x36,0x5b,0x42,0x25,0xa4,0xa4,0x04,0x6e,0xd0,0x35,0x5d,0x4b,0x37,0x0e,0x72,0xe2,0xfe,0xae,0x02,0xd7,0x16,0x27,0x1c,0x11,0x11,0x1c,0x27,0x16,0x16,0x28,0x1d,0x11,0x11,0x1d,0x28,0x04,0x00,0xfd,0xb4, +0x55,0x7a,0x4e,0x25,0x35,0x59,0x76,0x42,0x8d,0xa5,0xfe,0xd2,0x30,0x57,0x77,0x48,0x02,0x48,0xfc,0x00,0xa2,0xba,0x1f,0x38,0x4e,0x2f,0xd4,0x01,0xa1,0x01,0xb4,0x10,0x1c,0x27,0x17,0x17,0x27,0x1d,0x10,0x10,0x1d,0x27,0x17,0x16,0x27,0x1c,0x11,0x00,0x00,0x02,0x00,0xa6,0xff,0xee,0x06,0x54,0x04,0x18,0x00,0x27,0x00,0x3b,0x00,0x2b, +0x40,0x17,0x28,0x32,0x16,0x07,0x95,0x25,0x10,0x11,0x95,0x1e,0x10,0x23,0x1b,0x19,0x0e,0x0e,0x18,0x19,0x0f,0x18,0x15,0x01,0x15,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0x39,0x3f,0xed,0x3f,0xed,0x3f,0xcd,0x30,0x31,0x21,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x10,0x23,0x22,0x0e,0x02,0x15,0x11, +0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x17,0x36,0x33,0x20,0x11,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x06,0x54,0xa4,0x19,0x36,0x57,0x3f,0x35,0x5b,0x45,0x27,0xa4,0xe9,0x36,0x5b,0x42,0x25,0xa4,0xa4,0x04,0x6d,0xd1,0x34,0x5e,0x4b,0x37,0x0e,0x72,0xe2,0x01,0x52,0xfd,0x29, +0x16,0x27,0x1c,0x11,0x11,0x1c,0x27,0x16,0x17,0x27,0x1d,0x11,0x11,0x1d,0x27,0x02,0x4c,0x55,0x7a,0x4e,0x25,0x35,0x59,0x76,0x42,0x8d,0xa5,0x01,0x2e,0x30,0x57,0x77,0x48,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x1f,0x38,0x4e,0x2f,0xd4,0xfe,0x5f,0xfe,0x4c,0x10,0x1c,0x27,0x17,0x17,0x27,0x1d,0x10,0x10,0x1d,0x27,0x17,0x16,0x27,0x1c,0x11, +0x00,0x01,0x00,0x0e,0xff,0xe8,0x04,0x46,0x04,0x31,0x00,0x21,0x00,0x1c,0x40,0x0e,0x0d,0x95,0x13,0x13,0x02,0x01,0x20,0x0f,0x1b,0x95,0x05,0x16,0x01,0x15,0x00,0x3f,0x3f,0xed,0x3f,0x12,0x39,0x33,0x2f,0xed,0x30,0x31,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x35,0x36,0x33,0x32,0x1e,0x02, +0x15,0x11,0x10,0x33,0x32,0x37,0x36,0x35,0x11,0x33,0x04,0x46,0xa4,0x04,0x66,0xd6,0xfe,0x92,0x0a,0x1c,0x35,0x2a,0x1e,0x2a,0x19,0x2a,0x4c,0x48,0x68,0x43,0x20,0xf8,0x79,0x4c,0x4e,0xa4,0xa2,0xba,0x01,0xb4,0x01,0x2b,0x38,0x54,0x37,0x1c,0x0d,0x0e,0x94,0x12,0x34,0x5e,0x82,0x4e,0xfe,0xe7,0xfe,0xbc,0x58,0x58,0x90,0x02,0x4e,0x00, +0xff,0xff,0x00,0x0c,0xfe,0x21,0x04,0x46,0x04,0x18,0x02,0x06,0x01,0xd3,0x00,0x00,0x00,0x02,0x00,0x0c,0xfe,0x21,0x04,0xbc,0x04,0x18,0x00,0x28,0x00,0x3c,0x00,0x28,0x40,0x15,0x38,0x18,0x0a,0x1b,0x07,0x04,0x19,0x1f,0x1f,0x08,0x19,0x0f,0x0d,0xec,0x12,0x10,0x2e,0x00,0x00,0x08,0x1b,0x00,0x3f,0x33,0x2f,0x32,0x3f,0xed,0x3f,0x12, +0x39,0x2f,0x12,0x17,0x39,0x33,0x30,0x31,0x01,0x22,0x26,0x27,0x26,0x26,0x27,0x03,0x01,0x23,0x01,0x03,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x17,0x13,0x01,0x33,0x01,0x13,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x27,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x03,0xea, +0x3e,0x5c,0x1c,0x1c,0x35,0x1f,0xa0,0xfe,0xa1,0xb9,0x01,0xc6,0xae,0x42,0x48,0x2e,0x2a,0x21,0x4a,0x2b,0x44,0x39,0x32,0x1a,0x8c,0x01,0x11,0xb9,0xfe,0x89,0xdc,0x1c,0x4c,0x2d,0x2c,0x4a,0x36,0x1f,0x21,0x39,0x4d,0x8c,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0xfe,0x21,0x38,0x30,0x30,0x6c, +0x43,0x01,0x56,0xfd,0x6f,0x03,0x38,0x01,0x89,0x94,0x0e,0x9a,0x0a,0x15,0x32,0x51,0x3c,0xfe,0xb6,0x02,0x06,0xfd,0x58,0xfe,0x18,0x1a,0x1b,0x1d,0x33,0x46,0x2a,0x2a,0x48,0x34,0x1e,0xc6,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x00,0x00,0x01,0x00,0x0c,0xfe,0x21,0x04,0x46,0x04,0x18,0x00,0x21, +0x00,0x20,0x40,0x12,0x02,0xec,0x1f,0x1c,0x08,0x16,0x05,0x19,0x04,0x07,0x18,0x1b,0x13,0xec,0x0e,0x10,0x07,0x0f,0x00,0x3f,0x3f,0xed,0x3f,0x12,0x17,0x39,0x3f,0xed,0x30,0x31,0x13,0x16,0x33,0x32,0x37,0x13,0x01,0x33,0x01,0x13,0x3e,0x03,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x03,0x01,0x23,0x01,0x03,0x0e,0x03,0x23,0x22,0x27, +0x0c,0x27,0x27,0x48,0x44,0xec,0xfe,0x89,0xb9,0x01,0x11,0x8c,0x1a,0x32,0x39,0x44,0x2b,0x4a,0x21,0x2a,0x2e,0x48,0x42,0xae,0x01,0xc6,0xb9,0xfe,0xa1,0x9f,0x26,0x44,0x45,0x4b,0x2d,0x31,0x2b,0xfe,0xc6,0x10,0x96,0x02,0x0c,0x02,0xa8,0xfd,0xfa,0x01,0x4a,0x3d,0x52,0x31,0x14,0x0a,0x9a,0x0e,0x94,0xfe,0x77,0xfc,0xc8,0x02,0x91,0xfe, +0x95,0x57,0x75,0x48,0x1e,0x09,0x00,0x02,0x00,0x1a,0xff,0xd3,0x04,0x2c,0x04,0x00,0x00,0x27,0x00,0x3b,0x00,0x26,0x40,0x16,0x21,0x0f,0x37,0x25,0x01,0x1f,0x18,0x04,0x05,0x40,0x0b,0x0e,0x48,0x05,0x05,0x1d,0x15,0x2d,0x0f,0x16,0x00,0x0f,0x00,0x3f,0x3f,0x33,0x3f,0x39,0x2f,0x2b,0x17,0x39,0x33,0x3f,0x30,0x31,0x01,0x01,0x17,0x36, +0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x27,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x23,0x01,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x01,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x03,0x92,0xfe,0xa8,0x88,0x1c,0x51,0x32,0x2c,0x4a,0x36,0x1f,0x21,0x39,0x4d, +0x2b,0x34,0x46,0x34,0x2c,0x19,0x63,0x09,0x17,0x0d,0x04,0x02,0x18,0x15,0xcd,0xbd,0x01,0x5d,0xfe,0xb2,0xbf,0xc6,0x0b,0x15,0x0b,0x04,0x01,0x00,0x1b,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x04,0x00,0xfd,0xfa,0xe2,0x1e,0x21,0x1d,0x33,0x46,0x2a,0x2a,0x48,0x34,0x1e,0x1b,0x32,0x49,0x2e, +0xb5,0x11,0x26,0x17,0x05,0x26,0x23,0xfe,0xb4,0x01,0xf6,0x02,0x0a,0xfe,0xa2,0x14,0x28,0x14,0x01,0xae,0xfc,0x99,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x00,0x00,0x01,0xff,0x1f,0xfe,0x57,0x03,0x92,0x04,0x00,0x00,0x15,0x00,0x1a,0x40,0x0e,0x06,0x0d,0x01,0x13,0x04,0x03,0x15,0x0f,0x0f,0x0f, +0x0b,0x1b,0x03,0x15,0x00,0x3f,0x3f,0x3f,0x3f,0x12,0x17,0x39,0x30,0x31,0x09,0x02,0x23,0x03,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x01,0x03,0x92,0xfe,0xa8,0x01,0x52,0xbf,0xc9,0x14,0x19,0x04,0x02,0x18,0x15,0xfe,0x38,0xbd,0x02,0x58,0xfe,0xb2,0xbf,0xc6,0x0b,0x15,0x0b,0x04,0x01,0x00, +0x04,0x00,0xfd,0xfa,0xfe,0x06,0x01,0x4c,0x1f,0x2f,0x05,0x26,0x23,0xfd,0x0b,0x03,0x9f,0x02,0x0a,0xfe,0xa2,0x14,0x28,0x14,0x01,0xae,0x00,0x02,0xff,0x1f,0xfe,0x57,0x04,0x2c,0x04,0x00,0x00,0x27,0x00,0x3b,0x00,0x2a,0x40,0x18,0x37,0x18,0x1f,0x01,0x25,0x04,0x27,0x2f,0x05,0x3f,0x05,0x02,0x05,0x05,0x0f,0x27,0x0f,0x21,0x0f,0x1d, +0x1b,0x2d,0x0f,0x16,0x00,0x3f,0x33,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0x5d,0x12,0x17,0x39,0x33,0x30,0x31,0x01,0x01,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x27,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x01,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e, +0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x03,0x92,0xfe,0xa8,0x88,0x1c,0x51,0x32,0x2c,0x4a,0x36,0x1f,0x21,0x39,0x4d,0x2b,0x29,0x3f,0x36,0x2e,0x16,0x74,0x09,0x17,0x0d,0x04,0x02,0x18,0x15,0xfe,0x38,0xbd,0x02,0x58,0xfe,0xb2,0xbf,0xc6,0x0b,0x15,0x0b,0x04,0x01,0x00,0x1b,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d, +0x26,0x15,0x15,0x26,0x1d,0x10,0x04,0x00,0xfd,0xfa,0xe2,0x1e,0x21,0x1d,0x33,0x46,0x2a,0x2a,0x48,0x34,0x1e,0x15,0x29,0x3e,0x29,0xd4,0x11,0x26,0x17,0x05,0x26,0x23,0xfd,0x0b,0x03,0x9f,0x02,0x0a,0xfe,0xa2,0x14,0x28,0x14,0x01,0xae,0xfc,0x99,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x00,0x01, +0xfe,0xc8,0xfe,0x21,0x03,0x7a,0x04,0x00,0x00,0x23,0x00,0x1d,0x40,0x10,0x02,0xec,0x21,0x1c,0x0e,0x12,0x08,0x17,0x04,0x10,0x14,0x15,0x10,0x0f,0x0a,0x0f,0x00,0x3f,0x3f,0x3f,0x12,0x17,0x39,0x3f,0xed,0x30,0x31,0x01,0x16,0x33,0x32,0x3e,0x02,0x37,0x01,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x01,0x33,0x01,0x01,0x23,0x03,0x26,0x27, +0x23,0x06,0x06,0x07,0x01,0x0e,0x03,0x23,0x22,0x27,0xfe,0xc8,0x27,0x27,0x14,0x1d,0x1f,0x2a,0x21,0x01,0xae,0xfe,0xb2,0xbf,0xc6,0x0b,0x15,0x0b,0x04,0x01,0x00,0xb5,0xfe,0xa8,0x01,0x52,0xbf,0xc9,0x14,0x19,0x04,0x02,0x18,0x15,0xfe,0xab,0x2b,0x41,0x3c,0x41,0x2a,0x31,0x2b,0xfe,0xc6,0x10,0x0a,0x21,0x3f,0x34,0x02,0xa2,0x02,0x0a, +0xfe,0xa2,0x14,0x28,0x14,0x01,0xae,0xfd,0xfa,0xfe,0x06,0x01,0x4c,0x1f,0x2f,0x05,0x26,0x23,0xfd,0xdc,0x45,0x64,0x40,0x1e,0x09,0x00,0x00,0x01,0x00,0x0e,0xfe,0x1e,0x03,0x40,0x04,0x00,0x00,0x14,0x00,0x18,0x40,0x0b,0x0f,0x0b,0x14,0x14,0x03,0x0d,0x0f,0x08,0x95,0x03,0x1c,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x39,0x39,0x30,0x31, +0x01,0x01,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x37,0x01,0x33,0x01,0x17,0x33,0x36,0x36,0x37,0x13,0x03,0x40,0xfe,0xbe,0x7e,0xe4,0x41,0x2a,0x34,0x2d,0x7d,0x3d,0x52,0xfe,0x70,0xb6,0x01,0x15,0x15,0x06,0x02,0x0a,0x08,0x99,0x02,0x89,0xfc,0xd3,0xfe,0xc2,0x0d,0x93,0x12,0x94,0xc2,0x03,0xfe,0xfc,0xec,0x4e,0x0c,0x26,0x1a, +0x01,0x9f,0x00,0x02,0x00,0x25,0x03,0x50,0x02,0x4a,0x05,0xbe,0x00,0x10,0x00,0x21,0x00,0x14,0xb7,0x11,0x16,0x14,0x1c,0x0b,0x10,0x0d,0x05,0x00,0x2f,0xcd,0xcc,0x32,0xde,0xcd,0xcc,0x32,0x30,0x31,0x01,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x11,0x26,0x26,0x23,0x22,0x07,0x23,0x3e,0x03,0x33,0x32,0x1e, +0x02,0x17,0x02,0x4a,0x05,0x2e,0x4a,0x61,0x39,0x3a,0x61,0x47,0x2a,0x02,0x64,0x0c,0xa0,0x45,0x60,0x0a,0x0a,0x60,0x45,0xa0,0x0c,0x64,0x02,0x2a,0x47,0x61,0x3a,0x37,0x62,0x4a,0x2f,0x05,0x05,0xbe,0x38,0x5c,0x43,0x25,0x24,0x42,0x5d,0x39,0x9b,0x53,0x48,0xfd,0x92,0x48,0x53,0x9b,0x39,0x5d,0x42,0x24,0x25,0x42,0x5d,0x38,0x00,0x01, +0x00,0x64,0x01,0xbc,0x02,0x4e,0x05,0xc4,0x00,0x21,0x00,0x14,0xb7,0x12,0x1f,0x1f,0x19,0x1a,0x0a,0x05,0x19,0x00,0x2f,0xdc,0xcd,0x2f,0x12,0x39,0x2f,0xcd,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x15,0x02, +0x4e,0x1f,0x3a,0x56,0x36,0x2b,0x24,0x2b,0x26,0x13,0x25,0x1b,0x11,0x6d,0x1d,0x2e,0x21,0x12,0x80,0x80,0x02,0x3a,0x7a,0xb4,0x02,0xa0,0x3e,0x57,0x36,0x19,0x10,0x5f,0x16,0x06,0x1a,0x32,0x2c,0x01,0x3a,0x97,0x16,0x28,0x36,0x1f,0xfe,0xc9,0x03,0x2a,0xfe,0xa4,0x67,0xe7,0x00,0x01,0x00,0x00,0x02,0x9a,0x01,0xf4,0x05,0xc4,0x00,0x28, +0x00,0x29,0x40,0x13,0x1c,0x1d,0x0e,0x02,0x02,0x16,0x23,0x07,0x08,0x1d,0x23,0x08,0x08,0x23,0x1d,0x03,0x12,0x27,0x12,0x00,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xcd,0x33,0x2f,0xcd,0x11,0x33,0x30,0x31,0x01,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x11,0x23,0x11,0x26, +0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x11,0x33,0x01,0x3c,0x12,0x11,0x24,0x1b,0x3f,0x1e,0x42,0x35,0x50,0x4b,0x10,0x0d,0x80,0x0a,0x14,0x0b,0x21,0x1b,0x21,0x1e,0x1e,0x39,0x3f,0x4d,0x4c,0x09,0x11,0x09,0x80,0x04,0x6b,0x05,0x27,0x20,0x3d,0x11,0x43,0x11,0x48,0x38,0x45,0x52, +0x03,0xfe,0x81,0x01,0xb9,0x03,0x04,0x29,0x1f,0x23,0x23,0x0a,0x41,0x0b,0x48,0x3e,0x45,0x52,0x03,0x02,0x01,0x20,0x00,0x01,0x00,0x00,0x02,0x95,0x01,0xbf,0x05,0xc0,0x00,0x2f,0x00,0x23,0x40,0x0f,0x03,0x2d,0x2d,0x0a,0x10,0x10,0x28,0x22,0x22,0x15,0x1b,0x1b,0x07,0x1e,0x07,0x00,0x2f,0x2f,0x12,0x39,0x2f,0xcd,0x33,0x2f,0xcd,0x32, +0x2f,0xcd,0x33,0x2f,0xcd,0x30,0x31,0x01,0x06,0x06,0x23,0x22,0x27,0x11,0x23,0x11,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x35,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x35,0x33,0x11,0x16,0x33,0x32,0x37,0x33,0x06,0x06,0x23,0x22,0x27,0x15,0x16,0x33,0x32,0x37,0x01,0xbf,0x02,0x40,0x38,0x11,0x10,0x86,0x14, +0x0d,0x41,0x02,0x3a,0x02,0x40,0x3b,0x11,0x10,0x14,0x0d,0x41,0x02,0x3a,0x02,0x40,0x3b,0x11,0x10,0x86,0x0d,0x11,0x3e,0x02,0x3d,0x02,0x40,0x38,0x11,0x10,0x0d,0x11,0x3e,0x02,0x04,0x3d,0x47,0x59,0x03,0xfe,0xf5,0x01,0x45,0x06,0x50,0x49,0x57,0x04,0x76,0x06,0x50,0x49,0x57,0x04,0xcc,0xfe,0xf7,0x04,0x52,0x47,0x59,0x03,0x79,0x04, +0x52,0x00,0x00,0x01,0x00,0x00,0x02,0x8d,0x02,0x80,0x04,0xfc,0x00,0x25,0x00,0x19,0x40,0x0a,0x0c,0x13,0x13,0x02,0x01,0x25,0x1e,0x06,0x06,0x01,0x00,0x2f,0x33,0x2f,0xcd,0x2f,0x12,0x39,0x33,0x2f,0xcd,0x30,0x31,0x01,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02, +0x15,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x02,0x80,0x7f,0x02,0x1d,0x4f,0x3d,0xd3,0x1c,0x30,0x11,0x18,0x0e,0x0c,0x2e,0x16,0x29,0x42,0x2d,0x18,0x05,0x14,0x29,0x23,0x24,0x3a,0x29,0x15,0x7f,0x02,0x9a,0x5c,0x35,0x34,0xf7,0xa0,0x40,0x3f,0x07,0x08,0x5e,0x05,0x05,0x1e,0x35,0x4a,0x2c,0x8c,0x2e,0x45,0x2e,0x17, +0x1e,0x33,0x41,0x24,0x01,0x3b,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x0e,0x04,0x18,0x00,0x14,0x00,0x29,0x00,0x1b,0x40,0x0e,0x00,0x1b,0x95,0x13,0x10,0x06,0x25,0x95,0x09,0x16,0x04,0x15,0x03,0x0f,0x00,0x3f,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x30,0x31,0x01,0x33,0x35,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34, +0x3e,0x02,0x33,0x32,0x13,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0x66,0x04,0xa4,0xa4,0x04,0x7a,0xe8,0x63,0x9c,0x6c,0x39,0x40,0x79,0xad,0x6d,0xcc,0x6b,0x2c,0x4e,0x6b,0x3f,0x4a,0x76,0x52,0x2c,0x29,0x4c,0x6c,0x44,0x48,0x75,0x53,0x2d,0x03,0x6c,0x94,0xfc,0x00,0xb4,0xcc,0x48,0x84, +0xbb,0x73,0x7f,0xd0,0x95,0x52,0xfd,0xb7,0x8f,0x3e,0x6f,0x53,0x30,0x3b,0x6f,0xa0,0x65,0x55,0x87,0x5f,0x32,0x36,0x5e,0x7f,0xff,0xff,0x00,0x58,0x00,0x00,0x04,0xb8,0x04,0x45,0x02,0x06,0x0d,0x80,0x00,0x00,0xff,0xff,0x00,0xcf,0x03,0xca,0x01,0x88,0x04,0x7f,0x00,0x07,0x0f,0x50,0x00,0x2b,0x03,0xcf,0xff,0xff,0x00,0xcf,0xfe,0xe8, +0x01,0x88,0xff,0x9d,0x00,0x07,0x0f,0x50,0x00,0x2b,0xfe,0xed,0xff,0xff,0x00,0x2e,0x03,0xca,0x02,0x29,0x04,0x7f,0x00,0x07,0x0f,0x51,0x00,0x2b,0x03,0xcf,0xff,0xff,0x00,0x2e,0xfe,0xe8,0x02,0x29,0xff,0x9d,0x00,0x07,0x0f,0x51,0x00,0x2b,0xfe,0xed,0xff,0xff,0x00,0x2e,0x03,0xca,0x02,0x29,0x05,0x97,0x00,0x07,0x0f,0x53,0x00,0x2b, +0x03,0xcf,0xff,0xff,0x00,0x2e,0xfd,0xd0,0x02,0x29,0xff,0x9d,0x00,0x07,0x0f,0x53,0x00,0x2b,0xfd,0xd5,0xff,0xff,0x00,0x2e,0x03,0xca,0x02,0x29,0x05,0x97,0x00,0x07,0x0f,0x54,0x00,0x2b,0x03,0xcf,0xff,0xff,0x00,0x2e,0xfd,0xd0,0x02,0x29,0xff,0x9d,0x00,0x07,0x0f,0x54,0x00,0x2b,0xfd,0xd5,0xff,0xff,0x00,0x2e,0x03,0xca,0x02,0x29, +0x05,0x97,0x00,0x07,0x0f,0x56,0x00,0x2b,0x03,0xcf,0xff,0xff,0x00,0x2e,0xfd,0xd0,0x02,0x29,0xff,0x9d,0x00,0x07,0x0f,0x56,0x00,0x2b,0xfd,0xd5,0xff,0xff,0x00,0x67,0xfe,0x36,0x01,0xf0,0xff,0x9e,0x00,0x06,0x0f,0x5d,0x2b,0x37,0xff,0xff,0x00,0xcf,0x03,0xca,0x01,0x88,0x05,0x97,0x00,0x07,0x0f,0x52,0x00,0x2b,0x03,0xcf,0xff,0xff, +0x00,0xcf,0xfd,0xd0,0x01,0x88,0xff,0x9d,0x00,0x07,0x0f,0x52,0x00,0x2b,0xfd,0xd5,0xff,0xff,0x00,0x8b,0xfe,0x63,0x01,0xcc,0xff,0xa4,0x00,0x06,0x0f,0x5b,0x2b,0x64,0xff,0xff,0x00,0x0c,0x03,0xca,0x02,0x72,0x06,0x2c,0x00,0x07,0x0f,0x57,0x00,0x46,0x03,0xca,0xff,0xff,0x00,0x0c,0xfe,0x17,0x02,0x72,0x00,0x79,0x00,0x07,0x0f,0x57, +0x00,0x46,0xfe,0x17,0xff,0xff,0xff,0xd4,0x03,0xc3,0x02,0x33,0x06,0xa7,0x02,0x07,0x0e,0x65,0x00,0x00,0xfe,0xa3,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x51,0x05,0x95,0x00,0x27,0x0a,0x65,0x00,0x1e,0xfe,0xa3,0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x51,0x06,0xa0,0x00,0x27,0x0a,0x66,0x00,0x1e,0xfe,0xa3, +0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x51,0x05,0x9f,0x00,0x27,0x0a,0x67,0x00,0x1e,0xfe,0xa3,0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0x00,0x05,0xff,0xf2,0x02,0x01,0x07,0x8d,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x09,0x2c,0x00,0x00,0xff,0xff,0x00,0x05,0x00,0x00,0x02,0x01,0x07,0x8d,0x02,0x26, +0x09,0x0d,0x00,0x00,0x00,0x06,0x09,0x2c,0x00,0x00,0x00,0x02,0x00,0x52,0xfe,0x9c,0x0c,0xb6,0x03,0xba,0x00,0x7a,0x00,0x8a,0x00,0x68,0xb1,0x72,0x03,0xbd,0x04,0xfb,0x00,0x77,0x05,0x03,0x00,0x15,0x00,0x6a,0x04,0xfb,0xb6,0x6b,0x6b,0x59,0x1f,0x5e,0x37,0x34,0xb8,0x04,0xfb,0xb6,0x7b,0x55,0x59,0x33,0x33,0x2c,0x3c,0x41,0x09,0x04, +0xfb,0x00,0x59,0x05,0x03,0x00,0x7e,0x04,0xfb,0x00,0x50,0x05,0x03,0x00,0x86,0x04,0xfb,0xb5,0x2f,0x46,0x01,0x46,0x46,0x25,0xb8,0x04,0xff,0xb3,0x2c,0x0e,0x0e,0x2c,0x00,0x2f,0x33,0x2f,0x10,0xed,0x33,0x2f,0x5d,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0xed,0x32,0x32,0x39,0x11,0x33,0x2f,0xed,0x32,0x3f,0xed,0x32, +0x30,0x31,0x37,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x00,0x17,0x1e,0x03,0x17,0x26,0x26,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x06,0x07,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23, +0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x0e,0x05,0x15,0x14,0x1e,0x02,0x17,0x07,0x2e,0x05,0x27,0x0e,0x03,0x23,0x22,0x26,0x27,0x01,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x52,0x61,0xa6,0x39,0x4f,0x6c,0x42,0x1d,0x3b,0x60,0x7b,0x40,0xb9,0x01,0x05,0x2d,0x1f,0x5e,0x76,0x8a,0x4b, +0x06,0x09,0x31,0x5a,0x80,0x9f,0xb9,0x67,0x39,0x60,0x68,0x7d,0x56,0x4e,0x7e,0x33,0x37,0x84,0x4e,0x50,0x7c,0x6a,0x61,0x69,0x7a,0x4e,0x20,0x20,0x50,0x31,0x01,0x13,0x30,0x55,0x44,0x3f,0x56,0x3a,0x22,0x0b,0x14,0x37,0x54,0x79,0x56,0x61,0x8b,0x58,0x2a,0x2b,0x56,0x81,0x57,0x36,0x63,0x58,0x4b,0x1f,0x32,0x88,0x55,0x31,0x43,0x6e, +0x50,0x30,0x05,0x30,0x6f,0x70,0x66,0x50,0x2f,0x24,0x4b,0x73,0x50,0x2f,0x50,0xad,0xad,0xa5,0x91,0x77,0x28,0x1c,0x53,0x67,0x76,0x3f,0x3a,0x9a,0x4b,0x09,0xd1,0x2a,0x8f,0x55,0x5e,0x6a,0x1a,0x35,0x52,0x38,0x32,0x4e,0x3e,0x2e,0xa9,0x0b,0x0b,0x15,0x2c,0x44,0x2f,0x49,0x9c,0x9f,0xa1,0x4e,0xfe,0xdc,0xf9,0x5a,0x97,0x7b,0x61,0x23, +0x1e,0x39,0x12,0x38,0x57,0x47,0x3e,0x3d,0x42,0x29,0x05,0x1b,0x36,0x2a,0x1b,0x14,0x10,0x9d,0x12,0x17,0x1d,0x2b,0x32,0x2c,0x1e,0x01,0xc8,0x08,0x29,0x1d,0x2a,0x3a,0x26,0x11,0x2e,0x41,0x48,0x1a,0x2f,0x72,0x62,0x42,0x4d,0x74,0x86,0x3a,0x3b,0x72,0x59,0x36,0x17,0x28,0x35,0x1f,0x4b,0x48,0x29,0x4d,0x6e,0x45,0x0c,0x24,0x2a,0x31, +0x34,0x38,0x1b,0x25,0x43,0x35,0x22,0x04,0xaa,0x08,0x2a,0x41,0x55,0x67,0x77,0x42,0x2c,0x3b,0x24,0x0f,0x0c,0x0a,0x01,0x05,0x34,0x37,0x44,0x46,0x21,0x50,0x45,0x2f,0x28,0x47,0x5f,0x00,0x00,0x12,0x00,0x32,0xff,0x17,0x07,0xc3,0x06,0x5d,0x01,0x37,0x01,0x67,0x01,0x8a,0x01,0xb5,0x01,0xb9,0x01,0xc7,0x01,0xec,0x02,0x11,0x02,0x21, +0x02,0x30,0x02,0x3a,0x02,0x44,0x02,0x48,0x02,0x4c,0x02,0x50,0x02,0x54,0x02,0x58,0x02,0x5c,0x00,0x00,0x01,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17, +0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x15,0x14,0x16,0x33,0x33,0x35,0x33,0x15,0x21, +0x32,0x3e,0x02,0x35,0x11,0x23,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x33,0x14,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x17, +0x33,0x11,0x33,0x11,0x36,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x2e,0x02,0x27,0x23,0x06,0x06,0x23,0x23,0x11,0x14,0x1e,0x02,0x33,0x33,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17, +0x36,0x36,0x37,0x15,0x0e,0x03,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x21,0x11,0x14,0x1e,0x02,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x16,0x17,0x32,0x3e,0x02,0x35,0x35,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06, +0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x01,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x27,0x15,0x14,0x0e,0x02,0x23, +0x22,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x21,0x35,0x21,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x17,0x32,0x36,0x35,0x35,0x01,0x33,0x11,0x23,0x25,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x01,0x06,0x06,0x15,0x14,0x33,0x32,0x35,0x35,0x33,0x15,0x14, +0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x34,0x37,0x05,0x06,0x06,0x15,0x14,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x34,0x37,0x01,0x34, +0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x1e,0x03,0x03,0x14,0x16,0x33,0x32,0x36,0x37,0x35,0x06,0x06,0x13,0x14,0x16,0x33,0x32,0x36,0x37,0x35,0x06,0x06,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x01,0x21,0x15,0x21,0x25,0x33,0x15,0x23,0x03,0x23,0x35,0x33, +0x07,0x23,0x35,0x33,0x05,0xf4,0x19,0x27,0x32,0x18,0x23,0x37,0x0e,0x11,0x39,0x17,0x1d,0x38,0x10,0x17,0x39,0x17,0x68,0x2f,0x35,0x0b,0x15,0x31,0x14,0x97,0x18,0x28,0x0d,0x10,0x24,0x19,0x13,0x27,0x11,0x0f,0x1b,0x0a,0x19,0x14,0x0e,0x0b,0x47,0x0a,0x0a,0x2e,0x2b,0x0d,0x24,0x26,0x23,0x0c,0x18,0x27,0x1e,0x13,0x05,0x01,0x05,0x0e, +0x19,0x15,0x8d,0x09,0x15,0x11,0x0c,0xdb,0x1d,0x27,0x0d,0x14,0x30,0x17,0x26,0x3c,0x0c,0x10,0x20,0x0b,0x19,0x2f,0x24,0x15,0x1e,0x33,0x41,0x23,0x42,0x15,0x21,0x13,0x26,0x43,0x13,0x23,0xd2,0x41,0x01,0xee,0x09,0x15,0x11,0x0c,0x0c,0x26,0x2e,0x0a,0x15,0x31,0x14,0x27,0x2f,0x22,0x1b,0x12,0x13,0x24,0x21,0x29,0x21,0x8b,0x94,0x75, +0x6a,0x01,0x02,0x3c,0x03,0x20,0x30,0x3a,0x1a,0x73,0x6d,0x24,0x2a,0x24,0x42,0x3c,0x1f,0x2a,0x22,0x24,0x1a,0x09,0x14,0x11,0x0b,0x41,0x18,0x22,0x0a,0x41,0x1a,0x21,0x05,0x05,0x42,0x04,0x04,0x03,0x04,0x3c,0x10,0x36,0x3d,0x3e,0x19,0x2c,0x3c,0x25,0x10,0x21,0x39,0x4d,0x2d,0x4b,0x1a,0x36,0x30,0x28,0x0d,0x01,0x0f,0x2d,0x16,0x0e, +0x07,0x11,0x1d,0x15,0xb7,0x2e,0x1b,0x15,0x2c,0x42,0x2c,0x0e,0x2d,0x12,0x11,0x25,0x14,0x17,0x26,0x1d,0x10,0x24,0x35,0x2f,0x4e,0x33,0x2d,0x4e,0x4a,0x48,0x27,0x8c,0x2f,0x35,0x0b,0x15,0x31,0x14,0xfe,0x16,0x07,0x11,0x1d,0x15,0x6b,0x0b,0x18,0x13,0x0d,0x43,0x1d,0x26,0x0c,0x17,0x12,0x0c,0x40,0x21,0x2a,0x0e,0x1a,0x13,0x0b,0xfc, +0x2c,0x13,0x23,0x17,0x22,0x42,0x16,0x24,0x2d,0x16,0x20,0x2a,0x0e,0x14,0x30,0x17,0x26,0x3c,0x0c,0x10,0x20,0x0b,0x19,0x2f,0x24,0x15,0x1e,0x33,0x41,0x23,0x42,0x15,0x21,0x13,0x26,0x43,0x04,0x1d,0x2a,0x43,0x20,0x27,0x31,0x1b,0x0a,0x01,0x21,0x22,0x1a,0x30,0x25,0x16,0x13,0x21,0x2d,0x1b,0x1d,0x2e,0x14,0x16,0x15,0x14,0x2d,0x48, +0x33,0x23,0x43,0x27,0xe6,0x12,0x1c,0x23,0x12,0x34,0x16,0x0d,0x27,0x11,0x14,0x29,0x0b,0x11,0x28,0x11,0xfe,0xa3,0x01,0x60,0x11,0x1f,0x30,0x15,0x1b,0x11,0x1e,0x2d,0x18,0x1d,0x15,0x1e,0xfd,0xf8,0x42,0x42,0x04,0x15,0x4d,0x3c,0x11,0x19,0x1c,0x0c,0x17,0x2d,0x28,0x21,0x0b,0xfa,0xe9,0x02,0x01,0x18,0x14,0x2d,0x09,0x0c,0x0e,0x09, +0x01,0x2c,0x01,0x26,0x1e,0x18,0x16,0x17,0x16,0x22,0x1d,0x02,0x02,0x68,0x02,0x01,0x18,0x14,0x2d,0x09,0x0c,0x0e,0x09,0x01,0x2c,0x01,0x26,0x1e,0x18,0x16,0x17,0x16,0x22,0x1d,0x02,0x03,0x7c,0x0d,0x16,0x1c,0x0f,0x0c,0x16,0x11,0x0b,0x31,0x20,0x0f,0x1e,0xfa,0x73,0x14,0x19,0x09,0x11,0x15,0x0c,0x2d,0x1b,0x17,0x1d,0x12,0x0a,0xf3, +0x29,0x1b,0x0c,0x18,0x0c,0x32,0x42,0x05,0x29,0x1b,0x0c,0x18,0x0c,0x32,0x42,0x03,0x5d,0x01,0x0d,0xfe,0xf3,0x01,0x0d,0xfe,0xf3,0x02,0x36,0x01,0x0d,0xfe,0xf3,0xfd,0x85,0xd1,0xd1,0xe2,0x4c,0x4c,0x83,0x4b,0x4b,0x01,0x23,0xa2,0x29,0x31,0x1b,0x09,0x12,0x0f,0x14,0x0d,0x11,0x14,0x16,0x0f,0x18,0x0d,0x15,0x10,0x13,0x0e,0x10,0x11, +0x07,0x05,0x04,0x05,0x1f,0x1c,0x1a,0x41,0x22,0x26,0x3c,0x18,0x33,0x42,0x08,0x3c,0x46,0x24,0x09,0x18,0x26,0x2f,0x16,0x0c,0x14,0x0f,0x09,0x05,0x0d,0x16,0x11,0x01,0x48,0x14,0x11,0x11,0x14,0x23,0x26,0x05,0x03,0x0c,0x19,0x28,0x1d,0x21,0x31,0x22,0x16,0x06,0x2b,0xd1,0x27,0x26,0x19,0x20,0x01,0x07,0xf3,0x26,0x27,0x7c,0x7c,0x05, +0x0d,0x16,0x11,0x01,0x83,0x02,0x17,0x0c,0x15,0x10,0x2b,0x34,0x2b,0x1d,0x1a,0x10,0x26,0x2b,0x30,0x1a,0x4f,0x4b,0x4d,0x55,0x0e,0x17,0x0e,0x13,0x15,0x09,0x20,0x25,0x12,0x05,0x29,0x30,0x11,0x22,0x26,0x2c,0x1c,0x39,0x48,0x2b,0x33,0x2b,0x05,0x0e,0x15,0x11,0x02,0x0c,0xfe,0x0b,0x1a,0x30,0x05,0x01,0xb8,0xfe,0x48,0x02,0x17,0x14, +0x11,0x29,0x17,0x17,0x2b,0x15,0x21,0x03,0x38,0x59,0x3e,0x21,0x1c,0x2f,0x40,0x24,0x33,0x39,0x1b,0x06,0x02,0x09,0x14,0x12,0x14,0x1d,0xfe,0x94,0x0f,0x1c,0x17,0x0e,0x27,0x3b,0x19,0x1d,0x35,0x27,0x17,0x03,0x03,0x46,0x03,0x04,0x05,0x11,0x1f,0x19,0x17,0x37,0x21,0x09,0x1f,0x19,0x4e,0x14,0x1a,0x10,0x06,0x18,0x0d,0x15,0x10,0xfe, +0xcf,0x0f,0x1c,0x17,0x0e,0x04,0x0d,0x16,0x12,0x63,0x4b,0x2c,0x25,0x04,0x0c,0x17,0x12,0x63,0x49,0x2c,0x26,0x01,0x04,0x0c,0x17,0x12,0x9f,0x03,0x42,0x26,0x27,0x1a,0x1f,0x01,0x6d,0xfe,0x90,0x25,0x30,0x1d,0x0c,0x13,0x12,0x11,0x14,0x23,0x26,0x05,0x03,0x0c,0x19,0x28,0x1d,0x21,0x31,0x22,0x16,0x06,0x2b,0xd1,0x27,0x26,0x19,0x20, +0x01,0x39,0xfa,0x39,0x11,0x0e,0x1a,0x28,0x33,0x1a,0x0f,0x10,0x1f,0x2d,0x1d,0x19,0x37,0x2f,0x1e,0x21,0x21,0x22,0x5c,0x34,0x2d,0x53,0x3f,0x26,0x0f,0x12,0x56,0x6d,0x1b,0x21,0x12,0x06,0x16,0x0e,0x08,0x0b,0x0e,0x0f,0x0a,0x30,0x0f,0x17,0x43,0x32,0x1d,0x1a,0x0e,0x18,0x43,0x31,0x1d,0x1a,0x01,0x0e,0x18,0x6b,0x06,0x70,0xfd,0x3c, +0x95,0x1b,0x24,0x20,0x29,0x18,0x0a,0x1c,0x2f,0x3e,0x21,0x02,0x02,0x0a,0x14,0x02,0x20,0x22,0x1e,0x1e,0x11,0x11,0x10,0x11,0x08,0x0d,0x0a,0x07,0x0b,0x08,0x26,0x2a,0x12,0x12,0x30,0x20,0x03,0x0f,0x08,0x69,0x0a,0x14,0x02,0x20,0x22,0x1e,0x1e,0x11,0x11,0x10,0x11,0x08,0x0d,0x0a,0x07,0x0b,0x08,0x26,0x2a,0x12,0x12,0x30,0x20,0x03, +0x0f,0x08,0xfa,0xc0,0x0f,0x2d,0x2a,0x1e,0x0f,0x17,0x1e,0x0f,0x1d,0x21,0x05,0x20,0x0f,0x14,0x0c,0x1d,0x18,0x11,0x68,0x04,0x05,0x03,0x01,0x02,0x33,0x17,0x13,0x02,0x04,0x74,0x0b,0x28,0x01,0xe7,0x17,0x13,0x02,0x04,0x74,0x0b,0x28,0xfc,0xd6,0x25,0x01,0x6f,0x25,0x03,0x3f,0x25,0x51,0x25,0xfb,0x58,0x4c,0x4c,0x4c,0x00,0x00,0x05, +0x00,0x32,0xff,0xba,0x06,0xc7,0x06,0x22,0x00,0xa9,0x00,0xb9,0x00,0xc7,0x00,0xcb,0x00,0xcf,0x00,0x00,0x25,0x22,0x26,0x27,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x35,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x35,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x35,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x27,0x26, +0x26,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x11,0x14,0x16,0x33,0x32,0x37,0x26,0x02,0x27,0x35,0x33,0x16,0x12,0x17,0x33,0x11,0x33,0x11,0x14,0x07,0x16,0x16,0x17,0x3e,0x03,0x35,0x11,0x33,0x11,0x14,0x16,0x17,0x16,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x32,0x3e,0x02, +0x37,0x26,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x17,0x17,0x36,0x36,0x37,0x26,0x26,0x27,0x26,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x17,0x16,0x17,0x36,0x36,0x37,0x17,0x07,0x06,0x06,0x07,0x16,0x16,0x17,0x37,0x15,0x0e,0x05,0x25,0x26,0x26,0x27,0x0e,0x03,0x07,0x16,0x16,0x33,0x32,0x3e,0x02,0x01,0x0e,0x03,0x15,0x14,0x16,0x33,0x32, +0x3e,0x02,0x35,0x01,0x23,0x35,0x33,0x07,0x23,0x35,0x33,0x04,0xc2,0x2d,0x39,0x10,0x09,0x0a,0x3b,0x5d,0x7e,0x4c,0x6b,0xc5,0xab,0x8a,0x2e,0x33,0x93,0xae,0xc0,0x60,0x3e,0x70,0x56,0x32,0x14,0x2d,0x39,0x16,0x14,0x37,0x3d,0x42,0x20,0x2d,0x5e,0x58,0x4d,0x1c,0x34,0x69,0x29,0x25,0x40,0x22,0x10,0x10,0x05,0x10,0x07,0x0f,0x08,0x32, +0x43,0x2c,0x4d,0x39,0x20,0x17,0x48,0x2a,0x21,0x33,0x23,0x13,0x34,0x51,0x61,0x2d,0x4c,0x3e,0x46,0x3a,0x24,0x39,0x96,0x61,0x5c,0x41,0x81,0x3e,0x08,0x48,0x25,0x0e,0x1b,0x0d,0x13,0x22,0x18,0x0e,0x47,0x08,0x0b,0x0a,0x25,0x14,0x16,0x47,0x16,0x19,0x3d,0x42,0x44,0x21,0x22,0x41,0x22,0x23,0x27,0x2a,0x62,0x35,0x22,0x13,0x1f,0x0c, +0x15,0x3e,0x2a,0x2b,0x56,0x2f,0x1c,0x21,0x2a,0x57,0x33,0x63,0x5d,0x14,0x2d,0x14,0x03,0x19,0x17,0x3d,0x22,0x15,0x27,0x15,0x59,0x1e,0x51,0x5d,0x63,0x5f,0x56,0x01,0x3d,0x0f,0x2b,0x20,0x2f,0x60,0x5b,0x51,0x20,0x0f,0x2e,0x1d,0x29,0x5e,0x5c,0x56,0xfb,0x47,0x22,0x43,0x35,0x21,0x24,0x1f,0x10,0x2a,0x25,0x19,0x04,0xb9,0x3f,0x3f, +0xad,0x3f,0x3f,0x47,0x28,0x26,0x1f,0x18,0x38,0x30,0x20,0x31,0x4e,0x61,0x30,0x61,0x37,0x67,0x50,0x30,0x18,0x29,0x36,0x1e,0x1c,0x24,0x2f,0x25,0x34,0x21,0x0f,0x11,0x1d,0x24,0x13,0x54,0x1e,0x2d,0x0b,0x0a,0x06,0x03,0x02,0x39,0x19,0x33,0x19,0x19,0x15,0x28,0x39,0x23,0x17,0x20,0x18,0x29,0x34,0x1c,0x34,0x44,0x29,0x13,0x03,0x25, +0xfe,0xec,0x32,0x36,0x15,0xab,0x01,0x4c,0x9f,0x05,0x6b,0xfe,0xea,0xb4,0x03,0x86,0xfc,0x77,0x4c,0x31,0x2b,0x5c,0x30,0x08,0x1f,0x27,0x2c,0x15,0x04,0x7b,0xfb,0xb5,0x20,0x38,0x1a,0x17,0x20,0x04,0xa7,0xfb,0x59,0x0d,0x16,0x1c,0x10,0x0a,0x08,0x52,0x13,0x11,0x0c,0x0a,0x11,0x08,0x11,0x21,0x10,0x10,0x0e,0x52,0x0e,0x10,0x1e,0x43, +0x0b,0x1a,0x0b,0x5a,0x0f,0x0e,0x24,0x13,0x0c,0x1a,0x10,0x32,0x54,0x16,0x33,0x34,0x31,0x25,0x17,0xda,0x0e,0x1b,0x0f,0x18,0x2d,0x23,0x16,0x01,0x1c,0x24,0x18,0x27,0x30,0x01,0xe0,0x03,0x0b,0x19,0x2b,0x22,0x1e,0x29,0x06,0x0d,0x14,0x0e,0xfd,0x9c,0x40,0x85,0x40,0x00,0x00,0x20,0x00,0x32,0xfe,0x62,0x08,0x31,0x06,0xaf,0x00,0x69, +0x00,0xcf,0x01,0x2d,0x01,0x5d,0x01,0x61,0x01,0x86,0x01,0x8a,0x01,0x96,0x01,0xa5,0x01,0xb4,0x01,0xbe,0x01,0xc2,0x01,0xc6,0x01,0xca,0x01,0xf0,0x01,0xf4,0x02,0x1a,0x02,0x1e,0x02,0x2a,0x02,0x36,0x02,0x42,0x02,0x4e,0x02,0x52,0x02,0x56,0x02,0x5a,0x02,0x5e,0x02,0x62,0x02,0x66,0x02,0x6a,0x02,0x6e,0x02,0x93,0x02,0xb8,0x00,0x00, +0x01,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x33,0x32,0x3e,0x02, +0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x16,0x17,0x32,0x3e,0x02,0x35,0x35,0x01,0x06,0x06,0x07,0x0e,0x03,0x23,0x23,0x22,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36, +0x37,0x36,0x36,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x1e,0x03,0x33,0x33,0x32,0x3e,0x02,0x37,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x03,0x06,0x06,0x07,0x0e,0x03,0x23,0x23, +0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x33,0x32,0x3e,0x02,0x37,0x27,0x26,0x26,0x23,0x22,0x06, +0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x17,0x1e,0x03,0x33,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x25,0x33,0x11,0x23,0x01,0x06,0x06,0x15, +0x14,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x34,0x37,0x01,0x23,0x35,0x33,0x13,0x22,0x06,0x07,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x01,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x01,0x32,0x36,0x35, +0x34,0x2e,0x02,0x23,0x22,0x07,0x1e,0x03,0x25,0x14,0x16,0x33,0x32,0x36,0x37,0x35,0x06,0x06,0x01,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x13,0x23,0x35,0x33,0x01,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x27,0x0e,0x03,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x16, +0x33,0x01,0x33,0x11,0x23,0x03,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x27,0x0e,0x03,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x16,0x33,0x01,0x33,0x11,0x23,0x01,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22, +0x06,0x15,0x14,0x16,0x01,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x01,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x03,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x05,0x33,0x15,0x23,0x03,0x33,0x15,0x23,0x05,0x06,0x06,0x15, +0x14,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x34,0x37,0x13,0x06,0x06,0x15,0x14,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x23, +0x22,0x26,0x35,0x34,0x34,0x37,0x08,0x31,0x19,0x27,0x32,0x18,0x23,0x37,0x0e,0x11,0x39,0x17,0x1d,0x38,0x10,0x17,0x39,0x17,0x20,0x33,0x0f,0x15,0x31,0x14,0x30,0x18,0x28,0x0d,0x10,0x24,0x19,0x13,0x27,0x11,0x0f,0x1b,0x0a,0x19,0x14,0x0e,0x0b,0x47,0x0a,0x0a,0x2e,0x2b,0x0d,0x24,0x26,0x23,0x0c,0x18,0x27,0x1e,0x13,0x05,0x01,0x05, +0x0e,0x19,0x15,0x26,0x09,0x15,0x11,0x0c,0x41,0x1d,0x23,0x0b,0x18,0x13,0x0d,0x43,0x1d,0x26,0x0c,0x17,0x12,0x0c,0x40,0x21,0x2a,0x0e,0x1a,0x13,0x0b,0xfd,0x03,0x1a,0x32,0x17,0x16,0x32,0x39,0x3f,0x23,0x24,0x44,0x1c,0x13,0x2c,0x20,0x21,0x3a,0x18,0x12,0x2d,0x19,0x18,0x11,0x15,0x09,0x05,0x58,0x65,0x2f,0x41,0x28,0x12,0x03,0x02, +0x02,0x03,0x42,0x05,0x05,0x31,0x3b,0x23,0x32,0x1f,0x0e,0x07,0x06,0x42,0x08,0x02,0x1c,0x1d,0x10,0x16,0x11,0x0b,0x04,0x0d,0x1a,0x20,0x29,0x1c,0x29,0x34,0x1c,0x0b,0x01,0x08,0x12,0x20,0x1b,0x1c,0x18,0x2f,0x34,0x3b,0x23,0x16,0x23,0x23,0x23,0x16,0x18,0x2f,0x17,0x14,0x33,0x1b,0x22,0x3c,0x3c,0x3f,0x23,0x4f,0x0e,0x31,0x2a,0x16, +0x2e,0x37,0x42,0x2a,0x38,0x20,0x2a,0x0e,0x15,0x31,0x14,0x27,0x17,0x28,0x0d,0x10,0x24,0x1a,0x13,0x26,0x11,0x0f,0x1b,0x0a,0x19,0x15,0x0f,0x0b,0x47,0x0a,0x0a,0x2e,0x2b,0x0d,0x24,0x26,0x23,0x0b,0x19,0x27,0x1e,0x13,0x05,0x01,0x05,0x0e,0x18,0x15,0x1d,0x09,0x15,0x11,0x0c,0x40,0x14,0x23,0x4b,0x19,0x2e,0x33,0x3b,0x26,0x19,0x19, +0x38,0x2c,0x18,0x2e,0x17,0x14,0x32,0x1c,0x2a,0x39,0x1a,0x0d,0x19,0x1e,0x24,0x17,0xfd,0x23,0x13,0x23,0x17,0x22,0x42,0x16,0x24,0x2d,0x16,0x20,0x2a,0x0e,0x14,0x30,0x17,0x26,0x3c,0x0c,0x10,0x20,0x0b,0x19,0x2f,0x24,0x15,0x1e,0x33,0x41,0x23,0x42,0x15,0x21,0x13,0x26,0x43,0x01,0x20,0x42,0x42,0xfe,0x7f,0x02,0x01,0x18,0x14,0x2d, +0x09,0x0c,0x0e,0x09,0x01,0x2c,0x01,0x26,0x1e,0x18,0x16,0x17,0x16,0x22,0x1d,0x02,0x01,0x40,0x33,0x33,0x32,0x1e,0x27,0x0c,0x1e,0x38,0x3e,0x08,0x10,0x19,0xfe,0x84,0x17,0x1c,0x12,0x0a,0x06,0x15,0x19,0x09,0x11,0x16,0x0c,0x2c,0x03,0x0f,0x14,0x19,0x09,0x11,0x15,0x0c,0x2d,0x1b,0x17,0x1d,0x12,0x0a,0xfb,0xfb,0x29,0x1b,0x0c,0x18, +0x0c,0x32,0x42,0x07,0xb1,0x4b,0x4b,0xf9,0x00,0x4b,0x4b,0xac,0x2d,0x2d,0x04,0xac,0x1e,0x1d,0x42,0x16,0x24,0x2e,0x18,0x3e,0x20,0x15,0x03,0x1a,0x2a,0x38,0x21,0x23,0x2e,0x31,0x1f,0x36,0x2c,0x1a,0x10,0x42,0x0e,0x0f,0x05,0x04,0x20,0x26,0x01,0x10,0x41,0x41,0xdf,0x1e,0x1d,0x42,0x16,0x24,0x2e,0x18,0x3e,0x20,0x15,0x03,0x1a,0x2a, +0x38,0x21,0x23,0x2e,0x31,0x1f,0x36,0x2c,0x1a,0x10,0x42,0x0e,0x0f,0x05,0x04,0x20,0x26,0x01,0x10,0x41,0x41,0xfe,0x50,0x20,0x2c,0x2c,0x20,0x20,0x2c,0x2c,0x20,0x11,0x15,0x15,0x11,0x10,0x15,0x15,0xfe,0xd8,0x1f,0x2c,0x2c,0x1f,0x21,0x2c,0x2c,0x21,0x10,0x15,0x15,0x10,0x11,0x15,0x15,0xfe,0x51,0x4b,0x4b,0x83,0x4c,0x4c,0x02,0x10, +0xd1,0xd1,0xfe,0xd8,0xc7,0xc7,0x60,0xc7,0xc7,0x01,0x86,0xd1,0xd1,0xfb,0x5c,0xc7,0xc7,0x75,0xbd,0xbd,0x05,0x44,0x02,0x01,0x18,0x14,0x2d,0x09,0x0c,0x0e,0x09,0x01,0x2c,0x01,0x26,0x1e,0x18,0x16,0x17,0x16,0x22,0x1d,0x02,0x2c,0x02,0x01,0x18,0x14,0x2d,0x09,0x0c,0x0e,0x09,0x01,0x2c,0x01,0x26,0x1e,0x18,0x16,0x17,0x16,0x22,0x1d, +0x02,0x04,0xf0,0xa2,0x29,0x31,0x1b,0x09,0x12,0x0f,0x14,0x0d,0x11,0x14,0x16,0x0f,0x14,0x11,0x15,0x10,0x13,0x0e,0x10,0x11,0x07,0x05,0x04,0x05,0x1f,0x1c,0x1a,0x41,0x22,0x26,0x3c,0x18,0x33,0x42,0x08,0x3c,0x46,0x24,0x09,0x18,0x26,0x2f,0x16,0x0c,0x14,0x0f,0x09,0x05,0x0d,0x16,0x11,0x63,0x4c,0x2a,0x26,0x04,0x0d,0x16,0x12,0x63, +0x4b,0x2c,0x25,0x04,0x0c,0x17,0x12,0x9f,0x85,0x2c,0x26,0x01,0x04,0x0c,0x17,0x12,0x9f,0xfc,0xfb,0x07,0x20,0x0e,0x0e,0x1f,0x1a,0x10,0x27,0x14,0x13,0x1c,0x14,0x14,0x1c,0x08,0x07,0x59,0x63,0x19,0x2e,0x42,0x29,0x0f,0x1b,0x0e,0x0e,0x16,0x0c,0x21,0x2f,0x11,0x3f,0x31,0x10,0x24,0x3b,0x2b,0x17,0x3d,0x24,0x41,0x11,0x14,0x0b,0x11, +0x13,0x09,0x1b,0x2e,0x23,0x14,0x22,0x2d,0x2c,0x0a,0x09,0x12,0x0f,0x09,0x0f,0x1a,0x25,0x17,0x0b,0x11,0x0c,0x06,0x08,0x06,0x46,0x06,0x08,0x15,0x19,0x15,0x01,0xfd,0x54,0x04,0x19,0x1d,0x0f,0x1d,0x17,0x0e,0x14,0x11,0x15,0x10,0x13,0x0e,0x10,0x11,0x07,0x05,0x04,0x05,0x1f,0x1c,0x1a,0x41,0x22,0x26,0x3c,0x18,0x33,0x42,0x08,0x3c, +0x46,0x24,0x09,0x18,0x26,0x2f,0x16,0x0c,0x14,0x0f,0x09,0x05,0x0d,0x16,0x11,0x9f,0x89,0x2a,0x25,0x0d,0x19,0x26,0x19,0x0c,0x0d,0x15,0x08,0x06,0x45,0x06,0x08,0x15,0x0d,0x06,0x0c,0x09,0x06,0x04,0x83,0x26,0x27,0x1a,0x1f,0x01,0x6d,0xfe,0x90,0x25,0x30,0x1d,0x0c,0x13,0x12,0x11,0x14,0x23,0x26,0x05,0x03,0x0c,0x19,0x28,0x1d,0x21, +0x31,0x22,0x16,0x06,0x2b,0xd1,0x27,0x26,0x19,0x20,0x01,0x39,0x5a,0xfd,0xf1,0x02,0x46,0x0a,0x14,0x02,0x20,0x22,0x1e,0x1e,0x11,0x11,0x10,0x11,0x08,0x0d,0x0a,0x07,0x0b,0x08,0x26,0x2a,0x12,0x12,0x30,0x20,0x03,0x0f,0x08,0xfc,0x7e,0xdb,0xfe,0xa4,0x2c,0x25,0x20,0x29,0x0a,0x19,0x16,0x0f,0xfd,0x41,0x04,0x05,0x03,0x01,0x0f,0x14, +0x0c,0x1c,0x19,0x11,0x04,0x56,0x0f,0x14,0x0c,0x1d,0x18,0x11,0x68,0x04,0x05,0x03,0x01,0x6a,0x17,0x13,0x02,0x04,0x74,0x0b,0x28,0xfe,0xb5,0x4c,0xfe,0xb0,0x4d,0x03,0xa2,0x71,0xfb,0x17,0x14,0x25,0x01,0x9c,0xfe,0x61,0x29,0x32,0x1b,0x09,0x10,0x2e,0x3e,0x27,0x11,0x12,0x45,0x10,0x35,0x38,0x31,0x5b,0x2b,0x1f,0x2c,0x1b,0x16,0x12, +0x01,0xd0,0xfd,0xe7,0xfd,0xd0,0x14,0x25,0x01,0xa7,0xfe,0x56,0x29,0x31,0x1b,0x09,0x10,0x2e,0x41,0x2a,0x13,0x12,0x44,0x10,0x3d,0x39,0x30,0x5b,0x2c,0x1f,0x2d,0x1b,0x16,0x12,0x01,0xdb,0xfd,0xdd,0x06,0xa1,0x2d,0x20,0x20,0x2c,0x2c,0x20,0x20,0x2d,0x71,0x14,0x10,0x10,0x15,0x15,0x10,0x10,0x14,0xfd,0xfb,0x2d,0x21,0x20,0x2c,0x2c, +0x20,0x21,0x2d,0x72,0x14,0x10,0x10,0x16,0x16,0x10,0x10,0x14,0xfb,0xca,0x4c,0x4c,0x4c,0x04,0x61,0x25,0x8e,0x29,0xfb,0x6f,0x29,0x02,0x00,0x25,0x21,0x2a,0x03,0x7d,0x2a,0xbb,0x0a,0x14,0x02,0x20,0x22,0x1e,0x1e,0x11,0x11,0x10,0x11,0x08,0x0d,0x0a,0x07,0x0b,0x08,0x26,0x2a,0x12,0x12,0x30,0x20,0x03,0x0f,0x08,0xfd,0x87,0x0a,0x14, +0x02,0x20,0x22,0x1e,0x1e,0x11,0x11,0x10,0x11,0x08,0x0d,0x0a,0x07,0x0b,0x08,0x26,0x2a,0x12,0x12,0x30,0x20,0x03,0x0f,0x08,0xff,0xff,0x00,0x29,0x03,0xcb,0x02,0x25,0x04,0xdc,0x00,0x07,0x09,0x2c,0x00,0x24,0xfd,0x4f,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x4e,0x04,0xdc,0x00,0x27,0x09,0x2c,0x00,0x24,0xfd,0x4f,0x00,0x06,0x14,0x02, +0x00,0x00,0xff,0xff,0x00,0x05,0x03,0x9a,0x02,0x9c,0x05,0x53,0x00,0x07,0x09,0x2d,0x00,0xd2,0xfd,0x45,0x00,0x01,0x00,0x9a,0xff,0xf2,0x03,0x2a,0x02,0xdd,0x00,0x13,0x00,0x10,0xb1,0x0a,0x12,0xba,0x04,0xfb,0x00,0x01,0x05,0x03,0x00,0x3f,0xed,0x2f,0x30,0x31,0x05,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14, +0x1e,0x02,0x33,0x33,0x03,0x2a,0x79,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x21,0x5a,0xa1,0x81,0x56,0x0e,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6f,0x3e,0x4a,0x7c,0x5c,0x33,0xff,0xff,0x00,0x05,0xfe,0x60,0x02,0x01,0xff,0x71,0x00,0x06,0x09,0x2e,0x00,0x00,0xff,0xff,0x00,0x15,0x03,0xcb,0x02,0x11,0x04,0x23,0x00,0x07, +0x09,0x2f,0x00,0x10,0xfd,0x4f,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x4e,0x04,0x23,0x02,0x26,0x14,0x02,0x00,0x00,0x00,0x07,0x09,0x2f,0x00,0x10,0xfd,0x4f,0xff,0xff,0x00,0x21,0x03,0x90,0x02,0x2c,0x05,0x49,0x00,0x07,0x09,0x30,0x00,0x62,0xfd,0x3b,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x4e,0x05,0x49,0x00,0x27,0x09,0x30,0x00,0x62, +0xfd,0x3b,0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0x00,0x29,0xff,0x19,0x02,0x25,0xff,0x71,0x00,0x06,0x09,0x31,0x24,0x00,0xff,0xff,0xff,0xba,0xff,0x19,0x02,0x4e,0x00,0x99,0x00,0x26,0x09,0x31,0x24,0x00,0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0xff,0xf8,0x03,0xc5,0x02,0x57,0x04,0xef,0x00,0x07,0x09,0x32,0x00,0x24,0xfd,0x4f, +0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x57,0x04,0xef,0x00,0x27,0x09,0x32,0x00,0x24,0xfd,0x4f,0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0x00,0x69,0x03,0xbb,0x01,0xe5,0x05,0x2e,0x00,0x07,0x09,0x33,0x00,0x24,0xfd,0x45,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x4e,0x05,0x2e,0x00,0x27,0x09,0x33,0x00,0x24,0xfd,0x45,0x00,0x06,0x14,0x02, +0x00,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x02,0x4e,0x00,0x99,0x00,0x08,0x00,0x0e,0xbb,0x00,0x08,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x30,0x31,0x05,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x02,0x4e,0xfd,0xb2,0x23,0x23,0x23,0x23,0x02,0x4e,0x0e,0x34,0x20,0x20,0x33,0x00,0x01,0xff,0xe7,0x06,0x19,0x05,0x0f,0x07,0x5f, +0x00,0x1a,0x00,0x16,0xbc,0x00,0x12,0x04,0xfb,0x00,0x07,0x00,0x19,0x04,0xfb,0xb1,0x0c,0x02,0x00,0x2f,0x33,0xed,0xdc,0xed,0x30,0x31,0x01,0x07,0x21,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x23,0x3e,0x03,0x33,0x32,0x1e,0x04,0x33,0x21,0x05,0x0f,0x5a,0xfd,0xf4,0x4a,0x7d,0x66,0x4d,0x19,0x10,0x27,0x2e,0x34,0x1d,0x79,0x28,0x57, +0x5a,0x59,0x2a,0x18,0x39,0x3f,0x44,0x49,0x4c,0x27,0x02,0x3c,0x06,0xb6,0x9d,0x32,0x3d,0x32,0x08,0x1f,0x3c,0x34,0x55,0x78,0x4c,0x23,0x18,0x23,0x29,0x23,0x18,0x00,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x04,0x76,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0xad,0xfe,0xab,0x00,0x07,0x09,0x7e,0x02,0xb6,0xfc,0x8d, +0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x14,0x05,0x3e,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x83,0xfe,0xab,0x00,0x07,0x09,0x7e,0x00,0x72,0xfd,0x55,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0x3e,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x83,0xfe,0xab,0x00,0x07,0x09,0x7e,0x00,0x72,0xfd,0x55, +0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x04,0x76,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0xad,0xfe,0xab,0x00,0x07,0x09,0x7e,0x02,0xb6,0xfc,0x8d,0xff,0xff,0x00,0xc4,0xfd,0xe4,0x01,0x42,0xff,0x6c,0x00,0x07,0x09,0x73,0x00,0x00,0xf7,0x68,0xff,0xff,0x00,0x52,0xfd,0xc9,0x03,0x4a,0x03,0xba,0x02,0x26,0x09,0x15, +0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xc9,0xfd,0xce,0xff,0xff,0x00,0x52,0xfd,0xc9,0x04,0x02,0x03,0xba,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xc9,0xfd,0xce,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x09,0xf7,0x03,0x3c,0x02,0x26,0x09,0x1b,0x00,0x00,0x00,0x07,0x0f,0x54,0x06,0x46,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9, +0x07,0x4b,0x03,0x3c,0x02,0x26,0x08,0xd6,0x00,0x00,0x00,0x07,0x0f,0x54,0x03,0x9c,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x08,0x04,0x03,0x3c,0x02,0x26,0x0e,0x36,0x00,0x00,0x00,0x07,0x0f,0x54,0x03,0x9c,0xfd,0xce,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x0a,0xb0,0x03,0x3c,0x02,0x26,0x0e,0x35,0x00,0x00,0x00,0x07,0x0f,0x54,0x06,0x46, +0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xb9,0x06,0x02,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x14,0x18,0x06,0xe0,0xff,0x38,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x5d,0x06,0x02,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x14,0x18,0x03,0x84,0xff,0x38,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x02,0x02,0x26,0x0e,0x56, +0x00,0x00,0x00,0x07,0x14,0x18,0x03,0x84,0xff,0x38,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x06,0x02,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x14,0x18,0x06,0xe0,0xff,0x38,0x00,0x02,0x00,0xab,0xfe,0x0c,0x03,0x49,0x02,0xb7,0x00,0x15,0x00,0x29,0x00,0x18,0xb1,0x11,0x1d,0xbd,0x04,0xfb,0x00,0x0a,0x00,0x27,0x04,0xfb,0x00,0x00, +0x05,0x03,0x00,0x3f,0xed,0x2f,0xed,0x2f,0x30,0x31,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x11,0x23,0x11,0x06,0x06,0x37,0x2e,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x01,0xff,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x36,0x36,0x9c,0x2a,0x58,0x7e,0x01, +0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0x0e,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x55,0xf0,0x92,0xfd,0xd5,0x02,0x09,0x11,0x12,0xc7,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0x00,0x02,0x00,0xab,0xfe,0x0c,0x04,0x02,0x02,0xb7,0x00,0x18, +0x00,0x2c,0x00,0x23,0xb1,0x14,0x11,0x41,0x0a,0x04,0xfb,0x00,0x13,0x05,0x03,0x00,0x20,0x04,0xfb,0x00,0x0a,0x00,0x2a,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0xed,0x3f,0xed,0x2f,0x30,0x31,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x33,0x15,0x23,0x11,0x23,0x11,0x06,0x06,0x37,0x2e, +0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x01,0xff,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x2d,0x33,0x08,0xbd,0xb9,0x9c,0x2a,0x58,0x7e,0x01,0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0x0e,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x47,0xbc, +0x72,0xa7,0xfe,0x1a,0x02,0x09,0x11,0x12,0xc7,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0xc3,0x05,0xca,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9a,0x03,0x57,0x00,0x07,0x0a,0x6e,0x00,0x9b,0xfd,0xee,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57, +0x05,0xca,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9a,0x03,0x57,0x00,0x07,0x0a,0x6e,0x00,0x9b,0xfd,0xee,0x00,0x01,0x00,0x8c,0x06,0x56,0x01,0xc8,0x08,0x05,0x00,0x18,0x00,0x0c,0xb3,0x08,0x0e,0x00,0x18,0x00,0x2f,0xcd,0xdc,0xcd,0x30,0x31,0x13,0x3e,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x33,0x32, +0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x8c,0x2a,0x49,0x35,0x1f,0x3e,0x2d,0x10,0x1d,0x0d,0x21,0x1f,0x37,0x52,0x36,0x1b,0x2d,0x53,0x75,0x47,0x06,0xa9,0x0a,0x17,0x23,0x33,0x26,0x29,0x2a,0x04,0x03,0x6d,0x06,0x1c,0x2e,0x3e,0x22,0x3e,0x57,0x3c,0x26,0x0e,0x00,0x00,0x01,0xfe,0x45,0x04,0x3a,0xff,0xd9,0x05,0xc0,0x00,0x03,0x00,0x0c, +0xb3,0x03,0x02,0x01,0x00,0x00,0x2f,0x32,0xcd,0x32,0x30,0x31,0x01,0x35,0x01,0x15,0xfe,0x45,0x01,0x94,0x04,0x3a,0x85,0x01,0x01,0x8f,0xff,0xff,0x00,0x14,0xff,0xe8,0x02,0x2b,0x05,0x9a,0x02,0x06,0x00,0x2d,0x00,0x00,0xff,0xff,0x00,0xbc,0xfe,0x80,0x05,0xbb,0x05,0x9a,0x00,0x26,0x01,0xb5,0x00,0x00,0x00,0x07,0x0a,0xbd,0x03,0x5b, +0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x8a,0x04,0x91,0x04,0x00,0x00,0x26,0x02,0x16,0x00,0x00,0x00,0x07,0x0a,0xbe,0x02,0x44,0x00,0x00,0x00,0x01,0xff,0x98,0xfe,0x96,0x04,0xf2,0x05,0x9a,0x00,0x13,0x00,0x1d,0x40,0x0e,0x10,0x91,0x0b,0x0b,0x06,0x07,0x91,0x01,0x01,0x06,0x12,0x03,0x00,0x03,0x00,0x3f,0x32,0x3f,0x39,0x2f,0xed,0x11, +0x33,0x2f,0xed,0x30,0x31,0x01,0x11,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x01,0x64,0x02,0xe6,0xa8,0xa8,0xfd,0x1a,0xfe,0xbc,0x4c,0x3c,0x36,0x44,0xaa,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfa,0x66,0x02,0x8e,0xfd,0x9d,0xfe,0x6b,0x1a,0x94,0x17,0x01,0x08,0x05,0x65,0x00,0x00,0x01, +0xff,0x5c,0xfe,0x1e,0x03,0xf8,0x04,0x00,0x00,0x16,0x00,0x1f,0x40,0x0f,0x16,0x95,0x10,0x10,0x0e,0x14,0x0a,0x95,0x05,0x05,0x14,0x15,0x11,0x0e,0x0f,0x00,0x3f,0x33,0x3f,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x30,0x31,0x05,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x23,0x11, +0x21,0x01,0x4a,0x31,0x5d,0x87,0x57,0x4b,0x37,0x3d,0x45,0xc8,0xa4,0x02,0x0a,0xa4,0xa4,0xfd,0xf6,0x04,0x73,0xb2,0x7a,0x3f,0x1a,0x99,0x27,0x01,0x3e,0x04,0x18,0xfe,0x5c,0x01,0xa4,0xfc,0x00,0x01,0xd1,0x00,0x00,0x02,0x00,0x0f,0xfe,0x7f,0x0a,0x06,0x05,0x9a,0x00,0x25,0x00,0x2e,0x00,0x32,0x40,0x1b,0x08,0x91,0x04,0x25,0x1e,0x03, +0x1a,0x1a,0x07,0x23,0x1c,0x03,0x27,0x91,0x19,0x03,0x12,0x0a,0x26,0x91,0x10,0x0c,0x0e,0x12,0x01,0x07,0x12,0x00,0x3f,0x33,0x3f,0xcd,0x32,0xed,0x32,0x32,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x17,0x39,0xed,0x30,0x31,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x36,0x12, +0x37,0x12,0x13,0x21,0x11,0x21,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x01,0x11,0x21,0x06,0x02,0x07,0x06,0x02,0x07,0x0a,0x06,0xea,0xfd,0xd6,0x1e,0x08,0x04,0xa8,0xfe,0x67,0xc1,0x9b,0xfb,0xfd,0x9b,0x6f,0x48,0x79,0x33,0x65,0x0d,0x02,0xa3,0x01,0x99,0xa8,0x04,0x07,0x13,0x0c,0x02,0x18,0xd1,0xfd,0x99,0xfc,0x6b,0xfe, +0x94,0x08,0x36,0x30,0x30,0x67,0x3a,0x02,0x90,0x24,0x0e,0xfd,0x3e,0x02,0x8e,0xfe,0x0a,0xfd,0xe7,0x01,0x81,0xfe,0x7f,0x02,0x19,0x84,0x01,0x31,0xb1,0x01,0x61,0x01,0x3b,0xfd,0x8b,0x02,0x75,0xfd,0x5e,0x0b,0x18,0x0e,0x02,0x71,0xfd,0x50,0xfd,0xae,0x04,0x6a,0x7d,0xfe,0xe2,0xa7,0xa7,0xfe,0xee,0x6f,0x00,0x02,0x00,0x12,0xfe,0x8b, +0x08,0x44,0x04,0x00,0x00,0x1d,0x00,0x22,0x00,0x32,0x40,0x1b,0x07,0x95,0x02,0x1d,0x19,0x03,0x15,0x15,0x05,0x1b,0x17,0x0f,0x1f,0x95,0x14,0x0f,0x10,0x08,0x1e,0x95,0x0e,0x0a,0x0c,0x15,0x01,0x05,0x15,0x00,0x3f,0x33,0x3f,0xcd,0x32,0xed,0x32,0x32,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x17,0x39,0xed,0x30,0x31,0x21,0x23,0x01,0x23, +0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x00,0x13,0x21,0x11,0x21,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x01,0x11,0x23,0x02,0x03,0x08,0x44,0xe6,0xfe,0x3c,0x04,0xa4,0xfe,0x99,0x98,0x8b,0xfd,0x06,0x8c,0x5b,0x01,0x05,0x05,0x02,0x14,0x01,0x67,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0xfc,0xa3,0xe3,0x1b, +0xce,0x01,0xec,0xfe,0x14,0x01,0xd1,0xfe,0xba,0xfe,0x00,0x01,0x75,0xfe,0x8b,0x02,0x00,0x01,0x79,0x01,0xfc,0xfe,0x5c,0x01,0xa4,0xfe,0x2b,0x01,0xd5,0xfe,0x12,0xfe,0x79,0x02,0xea,0xfe,0x62,0xfe,0xb4,0x00,0x00,0x03,0x00,0x0f,0xfe,0x7f,0x05,0x48,0x05,0x9a,0x00,0x13,0x00,0x1a,0x00,0x1f,0x00,0x29,0x40,0x14,0x09,0x14,0x91,0x11, +0x1e,0x13,0x1b,0x1b,0x04,0x0e,0x13,0x03,0x08,0x00,0x18,0x91,0x06,0x02,0x04,0x12,0x00,0x3f,0xcd,0x32,0xed,0x32,0x32,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x33,0xed,0x32,0x30,0x31,0x25,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x01,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x17,0x01,0x33,0x01,0x22,0x27,0x01,0x21,0x11,0x06,0x27,0x32, +0x37,0x11,0x01,0x04,0x81,0xc7,0x9b,0xfb,0xfd,0x9b,0x01,0x40,0x53,0x56,0xa8,0x63,0x02,0x28,0xa8,0xfd,0xae,0x30,0x2b,0xfe,0xe2,0x03,0x23,0xe5,0xb0,0xb1,0xe4,0xfe,0x66,0x98,0xfd,0xe7,0x01,0x81,0xfe,0x7f,0x02,0x1a,0x01,0xa4,0x2d,0xa2,0x73,0x02,0x1b,0xfd,0xed,0x93,0x36,0x02,0xdc,0xfc,0x72,0x06,0xfe,0x86,0x01,0xed,0x79,0x94, +0x6e,0x01,0xb1,0xfd,0xe1,0x00,0x00,0x03,0x00,0x12,0xfe,0x8b,0x04,0x23,0x04,0x00,0x00,0x12,0x00,0x19,0x00,0x1f,0x00,0x2b,0x40,0x15,0x09,0x13,0xec,0x18,0x10,0x1d,0x0d,0x1a,0x1a,0x04,0x11,0x0d,0x0f,0x08,0x01,0x16,0x95,0x06,0x02,0x04,0x15,0x00,0x3f,0xcd,0x32,0xed,0x32,0x32,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x33,0x33,0xed, +0x32,0x30,0x31,0x25,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x37,0x26,0x35,0x11,0x33,0x11,0x14,0x17,0x01,0x33,0x01,0x22,0x27,0x07,0x21,0x11,0x06,0x27,0x32,0x37,0x11,0x01,0x16,0x03,0xdf,0x44,0x8b,0xfd,0x06,0x8c,0xe8,0x62,0xa4,0x30,0x01,0xd0,0xa3,0xfe,0x11,0x52,0x3f,0xb2,0x02,0x8f,0xb5,0x89,0x94,0xaa,0xfe,0x98,0x13,0x8b, +0xfe,0x00,0x01,0x75,0xfe,0x8b,0x02,0x00,0xfe,0x59,0xc4,0x01,0x5a,0xfe,0xae,0x6f,0x39,0x01,0xfa,0xfd,0x3a,0x15,0xc4,0x01,0x11,0x62,0x93,0x56,0x01,0x3a,0xfe,0x73,0x03,0x00,0xff,0xff,0x00,0x10,0xfe,0x80,0x05,0x60,0x05,0x9a,0x00,0x26,0x01,0xf2,0x00,0x00,0x00,0x07,0x0a,0xbd,0x03,0x00,0x00,0x00,0xff,0xff,0x00,0x10,0xfe,0x8a, +0x04,0x29,0x04,0x00,0x00,0x26,0x02,0x12,0x00,0x00,0x00,0x07,0x0a,0xbe,0x01,0xdc,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x0a,0x47,0x05,0xb2,0x02,0x06,0x12,0x8f,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x07,0x98,0x04,0x18,0x02,0x06,0x12,0x90,0x00,0x00,0x00,0x05,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x13,0x00,0x1a, +0x00,0x21,0x00,0x28,0x00,0x2f,0x00,0x22,0x40,0x11,0x15,0x2a,0x91,0x23,0x21,0x21,0x00,0x24,0x20,0x91,0x0a,0x03,0x14,0x2b,0x91,0x00,0x12,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x30,0x31,0x05,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x24,0x33,0x32,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x06,0x27,0x11, +0x21,0x1e,0x03,0x01,0x2e,0x03,0x27,0x11,0x21,0x21,0x11,0x0e,0x03,0x01,0x21,0x11,0x3e,0x03,0x02,0xfe,0x98,0xf8,0xb0,0x60,0x61,0xb4,0x01,0x02,0xa1,0x94,0xf3,0xae,0x5f,0x61,0xb3,0xfc,0xdf,0xfe,0x57,0x09,0x45,0x6f,0x94,0x02,0x93,0x08,0x40,0x6b,0x92,0x5a,0xfd,0xbb,0x01,0xa9,0x59,0x93,0x6e,0x45,0x03,0xda,0xfe,0x61,0x5b,0x91, +0x6a,0x40,0x18,0x6a,0xbf,0x01,0x0a,0xa1,0xac,0x01,0x18,0xc6,0x6c,0x6a,0xbf,0xfe,0xf6,0xa0,0xaf,0xfe,0xe7,0xc5,0x6a,0x9b,0x01,0xfa,0x6b,0xb0,0x82,0x51,0x02,0x89,0x6e,0xb2,0x82,0x4f,0x0c,0xfe,0x03,0x01,0xfc,0x0d,0x53,0x84,0xaf,0xfe,0xfc,0xfe,0x08,0x0d,0x50,0x80,0xaf,0x00,0x00,0x05,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18, +0x00,0x13,0x00,0x17,0x00,0x1e,0x00,0x22,0x00,0x27,0x00,0x22,0x40,0x11,0x19,0x15,0x95,0x24,0x22,0x22,0x00,0x25,0x21,0x95,0x0a,0x0f,0x18,0x16,0x95,0x00,0x15,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x30,0x31,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x13,0x21, +0x11,0x36,0x05,0x11,0x21,0x1e,0x03,0x01,0x02,0x27,0x11,0x21,0x21,0x11,0x06,0x06,0x02,0x52,0x72,0xb8,0x82,0x46,0x49,0x88,0xc1,0x78,0x73,0xb4,0x7d,0x42,0x48,0x84,0xbd,0xdf,0xfe,0xfe,0xef,0xfe,0x7d,0xfe,0xfa,0x06,0x26,0x40,0x5c,0x01,0xd0,0x24,0xda,0xfe,0x6a,0x01,0x02,0x69,0x85,0x18,0x4c,0x8a,0xc1,0x75,0x81,0xcb,0x8d,0x4b, +0x49,0x8a,0xc5,0x7c,0x79,0xc7,0x8e,0x4e,0x01,0xe9,0xfe,0xa6,0x25,0x23,0x01,0x58,0x42,0x72,0x5a,0x3d,0x01,0xd6,0x01,0x0a,0x22,0xfe,0xd4,0x01,0x2a,0x15,0x98,0x00,0xff,0xff,0x00,0x0c,0x06,0x1f,0x02,0xe6,0x09,0x39,0x02,0x06,0x13,0x7b,0x00,0x00,0xff,0xff,0x00,0x5a,0x06,0x1f,0x02,0x57,0x09,0x39,0x02,0x06,0x13,0x7d,0x00,0x00, +0x00,0x03,0x00,0x28,0xff,0xe8,0x04,0xca,0x05,0x88,0x00,0x4a,0x00,0x68,0x00,0x79,0x00,0x54,0x40,0x16,0x3a,0x37,0x99,0x40,0x32,0x27,0x2e,0x03,0x5a,0x4f,0x2b,0x00,0x4a,0x4a,0x2b,0x9a,0x55,0x55,0x22,0x9a,0x5e,0x07,0xb8,0x01,0x7f,0xb2,0x6f,0x6f,0x4b,0xb8,0x01,0x7f,0x40,0x0a,0x18,0x5e,0x18,0x5e,0x18,0x11,0x3b,0x40,0x19,0x75, +0xb9,0x01,0x7d,0x00,0x11,0x00,0x2f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x2f,0xed,0x10,0xed,0x33,0x2f,0xed,0x32,0x2f,0x33,0x10,0xcd,0x32,0x17,0x39,0x10,0xed,0x32,0x30,0x31,0x13,0x3e,0x03,0x37,0x11,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x15,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e, +0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x07,0x1e,0x03,0x33,0x32,0x36,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x07,0x01,0x11,0x36,0x36,0x37,0x17,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x17,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x01,0x14,0x1e,0x02, +0x33,0x33,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x7c,0x09,0x2b,0x3c,0x48,0x26,0x23,0x56,0x6b,0x3a,0x14,0x25,0x41,0x59,0x35,0x3e,0x56,0x36,0x18,0x01,0x6f,0x49,0x7f,0x5e,0x37,0x1a,0x3a,0x5d,0x43,0x12,0x26,0x25,0x20,0x0c,0x07,0x18,0x3b,0x26,0x20,0x3e,0x17,0x07,0x0e,0x28,0x19,0x07,0x27,0x3f,0x58,0x39,0x5b,0x8b,0x34,0x1c, +0x47,0x4c,0x4d,0x22,0x5b,0x91,0x69,0x40,0x09,0x24,0x44,0x3c,0x30,0x0e,0x01,0x82,0x21,0x2e,0x07,0x3b,0x05,0x0f,0x1b,0x15,0x15,0x2a,0x22,0x15,0x3b,0x30,0x2b,0x10,0x26,0x22,0x17,0x24,0x3d,0x51,0x2e,0xfd,0x4e,0x0d,0x21,0x38,0x2c,0x0c,0x03,0x0e,0x1e,0x1b,0x17,0x20,0x14,0x09,0x01,0x97,0x01,0x09,0x0f,0x15,0x0e,0x01,0x9d,0x37, +0x50,0x59,0x21,0x43,0x68,0x47,0x25,0x2c,0x46,0x56,0x2b,0x98,0x2a,0x4f,0x72,0x49,0x3e,0x78,0x5e,0x3b,0x06,0x11,0x1b,0x15,0x26,0x21,0x20,0x27,0x0b,0x14,0x0a,0x54,0x6c,0x40,0x19,0x35,0x30,0xb1,0x13,0x1c,0x13,0x09,0x2b,0x5d,0x92,0x67,0x08,0x0e,0x0a,0x07,0x02,0x02,0x30,0xfe,0xb3,0x17,0x37,0x20,0x11,0x14,0x2d,0x27,0x19,0x1c, +0x2c,0x33,0x17,0x11,0x39,0x48,0x14,0x2d,0x46,0x32,0x2e,0x45,0x2e,0x17,0x01,0x1b,0x21,0x35,0x25,0x13,0x7a,0x1b,0x3a,0x30,0x1f,0x17,0x27,0x34,0x00,0x01,0xff,0x38,0x06,0x19,0x05,0x0f,0x06,0xc0,0x00,0x04,0x00,0x0c,0xba,0x00,0x02,0x04,0xfb,0x00,0x00,0x00,0x2f,0xed,0x30,0x31,0x01,0x21,0x35,0x21,0x15,0x04,0xb5,0xfa,0x83,0x05, +0xd7,0x06,0x19,0xa7,0x0a,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x05,0x26,0x06,0x50,0x00,0x3b,0x00,0x2e,0x40,0x12,0x3a,0x31,0x00,0x30,0x17,0x0b,0x11,0x9a,0x36,0x15,0x06,0x0d,0x0d,0x23,0x36,0x07,0x26,0x21,0xb8,0x01,0x7f,0xb1,0x23,0x18,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x33,0x33,0x10,0xed,0x32,0x32,0x39,0x39,0xcc,0x32, +0x30,0x31,0x01,0x1e,0x03,0x17,0x23,0x2e,0x03,0x27,0x11,0x23,0x11,0x26,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x21,0x15,0x21,0x35,0x21,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x36,0x36,0x33,0x32,0x16,0x17,0x35,0x33,0x03,0x6d,0x67,0xa0,0x6f,0x3e,0x05,0xa5,0x05,0x23,0x42,0x65, +0x45,0x72,0x0e,0x1e,0x0f,0x12,0x21,0x10,0x72,0x47,0x67,0x43,0x20,0x45,0x83,0xbd,0x78,0x01,0xd7,0xfb,0xb4,0x01,0x12,0x4a,0x78,0x54,0x2e,0x40,0x74,0xa4,0x63,0x72,0x11,0x23,0x12,0x0e,0x1c,0x0e,0x72,0x05,0x9c,0x1b,0x76,0xa6,0xcd,0x73,0x5c,0x9d,0x7d,0x59,0x18,0xfe,0x19,0x01,0xff,0x01,0x02,0x02,0x02,0xfe,0x02,0x01,0xe1,0x1d, +0x69,0x8e,0xae,0x62,0x78,0xd9,0xa4,0x61,0x8c,0x8c,0x22,0x7c,0xa1,0xbb,0x62,0x7c,0xde,0xb3,0x81,0x20,0xba,0xa2,0x02,0x02,0x02,0x01,0xa1,0x00,0x00,0x03,0x00,0xbc,0xff,0x2f,0x03,0xea,0x06,0x50,0x00,0x28,0x00,0x33,0x00,0x3e,0x00,0x38,0x40,0x0b,0x12,0x2a,0x99,0x35,0x35,0x27,0x26,0x06,0x00,0x00,0x34,0xb8,0x01,0x80,0xb7,0x08, +0x02,0x27,0x06,0x1d,0x24,0x24,0x2b,0xb8,0x01,0x80,0xb3,0x22,0x1b,0x26,0x18,0x00,0x3f,0x33,0x33,0xed,0x33,0x2f,0x33,0x3f,0x33,0x33,0xed,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x01,0x33,0x15,0x33,0x32,0x17,0x35,0x33,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x14,0x06,0x07,0x15,0x23,0x35, +0x06,0x22,0x23,0x23,0x15,0x23,0x35,0x23,0x11,0x33,0x13,0x23,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x01,0x7f,0x68,0x0f,0x23,0x24,0x68,0x3a,0x62,0x48,0x29,0x24,0x42,0x5b,0x37,0x48,0x71,0x4e,0x29,0xa9,0x9c,0x68,0x11,0x22,0x12,0x11,0x68,0xc3,0xc3,0x77,0x92,0x94,0x48,0x77, +0x54,0x2f,0xdc,0xfa,0x92,0x81,0x8b,0x17,0x3c,0x68,0x51,0x06,0x50,0xb6,0x03,0xb9,0xc7,0x0c,0x30,0x4b,0x69,0x47,0x3d,0x6c,0x58,0x41,0x12,0x04,0x09,0x3c,0x5c,0x78,0x45,0xac,0xc2,0x1f,0xe0,0xd3,0x02,0xd1,0xd1,0x05,0x9a,0xfd,0x02,0xfd,0xfc,0x1a,0x3d,0x64,0x4b,0xd9,0x1f,0x02,0x6c,0xfe,0x31,0x82,0x7c,0x2b,0x4c,0x39,0x21,0x00, +0x00,0x01,0x00,0x66,0xfe,0xef,0x02,0x50,0x02,0x19,0x00,0x13,0x00,0x12,0xb6,0x04,0x11,0x11,0x0b,0x0c,0x01,0x0b,0x00,0x2f,0x33,0x2f,0x12,0x39,0x2f,0x33,0x30,0x31,0x01,0x23,0x11,0x34,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0x7f,0x6d,0x1d,0x2e,0x21,0x12,0x80,0x80,0x02,0x3a,0x7a, +0xb4,0xfe,0xef,0x01,0x33,0x97,0x16,0x28,0x36,0x1f,0xfe,0xc9,0x03,0x2a,0xfe,0xa4,0x67,0xe7,0xff,0xff,0x00,0x66,0xfe,0xef,0x02,0x56,0x02,0x19,0x02,0x07,0x07,0xb1,0x00,0x00,0xfc,0x55,0x00,0x01,0x00,0x66,0xfe,0xef,0x00,0xe6,0x02,0x19,0x00,0x03,0x00,0x08,0xb1,0x03,0x00,0x00,0x2f,0x2f,0x30,0x31,0x13,0x23,0x11,0x33,0xe6,0x80, +0x80,0xfe,0xef,0x03,0x2a,0x00,0xff,0xff,0x00,0x66,0xfe,0xef,0x03,0x9a,0x01,0x24,0x02,0x07,0x07,0xb2,0x00,0x00,0xfc,0x55,0x00,0x01,0x00,0x66,0xfe,0xef,0x02,0x50,0x01,0x24,0x00,0x13,0x00,0x14,0xb7,0x04,0x11,0x11,0x0e,0x0b,0x0c,0x01,0x0b,0x00,0x2f,0x33,0x2f,0x12,0x39,0x33,0x2f,0x33,0x30,0x31,0x01,0x23,0x11,0x34,0x23,0x22, +0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0x7f,0x6d,0x1d,0x2e,0x21,0x12,0x80,0x80,0x02,0x3a,0x7a,0xb4,0xfe,0xef,0x01,0x33,0x97,0x16,0x28,0x36,0x1f,0xfe,0xc9,0x02,0x24,0x56,0x67,0xe7,0x00,0xff,0xff,0x00,0x66,0xfd,0xf9,0x02,0x89,0x01,0x24,0x02,0x07,0x07,0xb8,0x00,0x00,0xfc,0x55,0x00,0x01, +0x00,0x3c,0xfe,0xdc,0x01,0xcd,0x01,0x26,0x00,0x2e,0x00,0x12,0xb6,0x06,0x1f,0x15,0x03,0x2c,0x1c,0x15,0x00,0x2f,0x33,0x2f,0x33,0x12,0x39,0x39,0x30,0x31,0x17,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15, +0x14,0x0e,0x02,0x23,0x22,0x27,0x3c,0x28,0x59,0x2f,0x33,0x32,0x10,0x1d,0x27,0x16,0x2c,0x40,0x2a,0x14,0x22,0x3b,0x51,0x30,0x2a,0x4e,0x20,0x23,0x4d,0x2d,0x2a,0x34,0x39,0x33,0x27,0x3f,0x2c,0x17,0x27,0x42,0x55,0x2e,0x60,0x45,0x96,0x16,0x15,0x1d,0x21,0x13,0x1a,0x14,0x10,0x09,0x10,0x21,0x27,0x30,0x21,0x28,0x3e,0x2a,0x16,0x0f, +0x0e,0x6d,0x0f,0x14,0x1a,0x1d,0x20,0x26,0x13,0x0f,0x1f,0x28,0x32,0x21,0x2b,0x40,0x2a,0x15,0x25,0x00,0xff,0xff,0x00,0x0a,0xfe,0xe3,0x01,0x68,0x01,0xb7,0x02,0x07,0x07,0xb9,0x00,0x00,0xfc,0x55,0x00,0x03,0x00,0x1e,0x04,0xdb,0x03,0x93,0x0a,0x63,0x00,0x1d,0x00,0x26,0x00,0x31,0x00,0x27,0x40,0x11,0x1f,0x1d,0x1d,0x27,0x04,0x1e, +0x13,0x13,0x28,0x0e,0x04,0x0e,0x04,0x0e,0x02,0x10,0x02,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x2f,0x33,0x11,0x33,0x33,0x2f,0x33,0x30,0x31,0x01,0x11,0x23,0x11,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x33,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34, +0x26,0x23,0x03,0x11,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x02,0x14,0x77,0x12,0x52,0x87,0x60,0x34,0x36,0x61,0x88,0x53,0x0d,0x77,0x0a,0x54,0x8a,0x62,0x35,0x34,0x5f,0x86,0x52,0x14,0x0a,0x73,0x7f,0x7c,0x71,0x86,0x0d,0x70,0x7f,0x20,0x3e,0x5a,0x3b,0x06,0x29,0xfe,0xb2,0x01,0x4e,0x38,0x65,0x8d,0x55,0x5a,0x93,0x69,0x3a,0x01, +0x2b,0xfe,0xd5,0x3a,0x69,0x93,0x5a,0x54,0x8d,0x66,0x38,0x02,0xa4,0xfd,0xc6,0x95,0x84,0x89,0x98,0xfd,0xc6,0x02,0x3a,0x97,0x8a,0x41,0x67,0x4a,0x27,0x00,0x00,0x01,0x00,0x6e,0xff,0x35,0x02,0x7f,0x01,0x12,0x00,0x15,0x00,0x0e,0xb4,0x07,0x09,0x09,0x00,0x14,0x00,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x25,0x23,0x22,0x06,0x15,0x14, +0x16,0x33,0x33,0x15,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x21,0x02,0x7f,0xf3,0x4c,0x4c,0x50,0x48,0xf3,0xfe,0xf8,0x3d,0x62,0x45,0x25,0x23,0x42,0x60,0x3c,0x01,0x10,0x9d,0x3c,0x40,0x3f,0x36,0x77,0x20,0x3d,0x58,0x37,0x37,0x59,0x3f,0x22,0x00,0x02,0x00,0x6e,0xfe,0x48,0x02,0x7f,0x01,0x12,0x00,0x15,0x00,0x19,0x00,0x14, +0xb7,0x16,0x19,0x19,0x07,0x09,0x09,0x00,0x14,0x00,0x2f,0x33,0x33,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x25,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x21,0x11,0x21,0x35,0x21,0x02,0x7f,0xf3,0x4c,0x4c,0x50,0x48,0xf3,0xfe,0xf8,0x3d,0x62,0x45,0x25,0x23,0x42,0x60,0x3c,0x01,0x10, +0xfe,0x0a,0x01,0xf6,0x9d,0x3c,0x40,0x3f,0x36,0x77,0x20,0x3d,0x58,0x37,0x37,0x59,0x3f,0x22,0xfd,0x36,0x75,0x00,0x00,0x01,0x00,0x6e,0x05,0x32,0x02,0x7f,0x07,0x0f,0x00,0x15,0x00,0x0e,0xb4,0x07,0x09,0x09,0x00,0x14,0x00,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x01,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x21,0x22,0x2e,0x02, +0x35,0x34,0x3e,0x02,0x33,0x21,0x02,0x7f,0xf3,0x4c,0x4c,0x50,0x48,0xf3,0xfe,0xf8,0x3d,0x62,0x45,0x25,0x23,0x42,0x60,0x3c,0x01,0x10,0x06,0x9a,0x3c,0x40,0x3f,0x36,0x77,0x20,0x3d,0x58,0x37,0x37,0x59,0x3f,0x22,0x00,0x00,0x02,0x00,0x6e,0x04,0x45,0x02,0x7f,0x07,0x0f,0x00,0x15,0x00,0x19,0x00,0x14,0xb7,0x16,0x19,0x19,0x07,0x09, +0x09,0x00,0x14,0x00,0x2f,0x33,0x33,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x01,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x21,0x11,0x21,0x35,0x21,0x02,0x7f,0xf3,0x4c,0x4c,0x50,0x48,0xf3,0xfe,0xf8,0x3d,0x62,0x45,0x25,0x23,0x42,0x60,0x3c,0x01,0x10,0xfe,0x0a,0x01,0xf6,0x06,0x9a, +0x3c,0x40,0x3f,0x36,0x77,0x20,0x3d,0x58,0x37,0x37,0x59,0x3f,0x22,0xfd,0x36,0x75,0x00,0x01,0x00,0x6e,0x05,0x32,0x02,0x7f,0x07,0x0f,0x00,0x15,0x00,0x0e,0xb4,0x0d,0x0c,0x0c,0x14,0x00,0x00,0x2f,0x32,0x32,0x2f,0x33,0x30,0x31,0x13,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23, +0x6e,0x01,0x10,0x3c,0x60,0x42,0x23,0x25,0x45,0x62,0x3d,0xfe,0xf8,0xf3,0x48,0x50,0x4c,0x4c,0xf3,0x07,0x0f,0x22,0x3f,0x59,0x37,0x37,0x58,0x3d,0x20,0x77,0x36,0x3f,0x40,0x3c,0x00,0x02,0x00,0x6e,0x04,0x45,0x02,0x7f,0x07,0x0f,0x00,0x15,0x00,0x19,0x00,0x14,0xb7,0x19,0x16,0x16,0x0d,0x0c,0x0c,0x14,0x00,0x00,0x2f,0x32,0x32,0x2f, +0x33,0x33,0x2f,0x33,0x30,0x31,0x13,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x21,0x15,0x21,0x6e,0x01,0x10,0x3c,0x60,0x42,0x23,0x25,0x45,0x62,0x3d,0xfe,0xf8,0xf3,0x48,0x50,0x4c,0x4c,0xf3,0x01,0xf6,0xfe,0x0a,0x07,0x0f,0x22,0x3f,0x59,0x37,0x37,0x58,0x3d,0x20,0x77, +0x36,0x3f,0x40,0x3c,0xfe,0x20,0x75,0x00,0x00,0x01,0x00,0x6e,0xff,0x35,0x02,0x7f,0x01,0x12,0x00,0x15,0x00,0x0e,0xb4,0x0d,0x0c,0x0c,0x14,0x00,0x00,0x2f,0x32,0x32,0x2f,0x33,0x30,0x31,0x13,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x6e,0x01,0x10,0x3c,0x60,0x42,0x23,0x25, +0x45,0x62,0x3d,0xfe,0xf8,0xf3,0x48,0x50,0x4c,0x4c,0xf3,0x01,0x12,0x22,0x3f,0x59,0x37,0x37,0x58,0x3d,0x20,0x77,0x36,0x3f,0x40,0x3c,0x00,0x02,0x00,0x6e,0xfe,0x48,0x02,0x7f,0x01,0x12,0x00,0x15,0x00,0x19,0x00,0x14,0xb7,0x19,0x16,0x16,0x0d,0x0c,0x0c,0x14,0x00,0x00,0x2f,0x32,0x32,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x13,0x21, +0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x21,0x15,0x21,0x6e,0x01,0x10,0x3c,0x60,0x42,0x23,0x25,0x45,0x62,0x3d,0xfe,0xf8,0xf3,0x48,0x50,0x4c,0x4c,0xf3,0x01,0xf6,0xfe,0x0a,0x01,0x12,0x22,0x3f,0x59,0x37,0x37,0x58,0x3d,0x20,0x77,0x36,0x3f,0x40,0x3c,0xfe,0x20,0x75,0x00, +0xff,0xff,0x00,0x70,0x01,0xfe,0x01,0x50,0x02,0xdf,0x02,0x02,0x00,0xc3,0x00,0x00,0x00,0x01,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x00,0x0b,0x00,0x15,0x40,0x0a,0x09,0x04,0x91,0x06,0x03,0x0a,0x03,0x91,0x01,0x12,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x30,0x31,0x21,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x21,0x04, +0x0c,0xfc,0x1d,0x01,0x9d,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x01,0x9e,0x98,0x04,0x6a,0x98,0x98,0xfb,0x96,0x00,0x02,0x00,0x20,0xff,0xde,0x02,0xd9,0x05,0xa4,0x00,0x1d,0x00,0x29,0x00,0x2a,0x40,0x19,0x07,0x21,0x00,0x16,0x04,0xb9,0x24,0xc9,0x24,0x02,0x24,0x14,0x14,0x0a,0x19,0x03,0xb6,0x1e,0xc6,0x1e,0x02,0x1e,0x04,0x0a,0x12,0x00, +0x3f,0x33,0x33,0x5d,0x3f,0x12,0x39,0x2f,0x33,0x5d,0x17,0x39,0x30,0x31,0x25,0x16,0x16,0x17,0x07,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x05,0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x83,0x1c,0x2d,0x0d,0x91,0x09,0x18,0x0d,0x38, +0x86,0x4a,0x35,0x59,0x40,0x24,0x29,0x46,0x5f,0x35,0x77,0x66,0x12,0xa8,0x17,0xfe,0x7c,0x2c,0x4d,0x20,0x22,0x47,0x28,0x33,0x33,0x36,0xd6,0x29,0x63,0x37,0x35,0x1b,0x3d,0x17,0x33,0x29,0x1d,0x36,0x4d,0x30,0x32,0x50,0x37,0x1d,0x43,0x4e,0x6d,0x03,0x95,0xfc,0x68,0x52,0x9e,0x91,0x1b,0x20,0x1b,0x1d,0x20,0x19,0x1e,0x1c,0xff,0xff, +0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x02,0x02,0x00,0x3b,0x00,0x00,0x00,0x03,0x00,0xbc,0xfe,0x29,0x04,0x2f,0x05,0x9a,0x00,0x19,0x00,0x21,0x00,0x2b,0x00,0x22,0x40,0x11,0x0b,0x1a,0x91,0x23,0x23,0x00,0x1b,0x91,0x17,0x19,0x19,0x17,0x12,0x22,0x91,0x00,0x03,0x00,0x3f,0xed,0x3f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x39, +0x30,0x31,0x13,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x23,0x11,0x23,0x13,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x21,0xbc,0x01,0x98,0x5d,0x95,0x69,0x39,0x22,0x40,0x5c,0x3a,0x48,0x75,0x54,0x2e,0x47,0x7c,0xab,0x63,0xfa,0xa8,0xa8,0xe4,0x95, +0xa2,0xfe,0xa6,0xc1,0xac,0x45,0x6e,0x4c,0x29,0xfe,0xed,0x05,0x9a,0x30,0x57,0x78,0x49,0x3d,0x6b,0x58,0x41,0x13,0x04,0x08,0x38,0x5a,0x7a,0x4a,0x5c,0x98,0x6c,0x3c,0xfe,0x29,0x04,0x73,0xfd,0xfc,0x8b,0x7b,0xfe,0x02,0x66,0xfe,0x31,0x22,0x41,0x5f,0x3c,0xd1,0xff,0xff,0x00,0xa7,0xfe,0x1f,0x04,0x15,0x05,0xfc,0x02,0x02,0x01,0xc4, +0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0xe8,0x07,0x58,0x05,0x9a,0x00,0x44,0x00,0x20,0x40,0x10,0x38,0x91,0x21,0x12,0x1c,0x17,0x3f,0x3f,0x0a,0x00,0x91,0x17,0x12,0x2e,0x0a,0x03,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x3f,0xed,0x30,0x31,0x25,0x32,0x12,0x11,0x34,0x2e,0x04,0x27,0x33,0x1e,0x05,0x15,0x14,0x02,0x06,0x06, +0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x22,0x26,0x26,0x02,0x35,0x34,0x3e,0x04,0x37,0x33,0x0e,0x05,0x15,0x10,0x12,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x05,0x5d,0xa0,0xab,0x18,0x28,0x35,0x3a,0x3b,0x1b,0xb5,0x18,0x38,0x39,0x35,0x29,0x19,0x46,0x85,0xc0,0x79,0x4a,0x72,0x5a,0x47,0x1e,0x1f,0x47,0x5a,0x72, +0x49,0x7a,0xbf,0x85,0x46,0x19,0x29,0x35,0x39,0x38,0x18,0xb5,0x1b,0x3b,0x3a,0x35,0x28,0x18,0xaa,0xa1,0x5c,0x76,0x44,0x1a,0xa8,0x18,0x42,0x77,0x7f,0x01,0x0a,0x01,0x15,0x45,0x96,0x96,0x8f,0x7b,0x63,0x1e,0x1c,0x58,0x73,0x88,0x98,0xa4,0x54,0xa7,0xfe,0xff,0xb0,0x5b,0x16,0x2b,0x3f,0x29,0x29,0x3f,0x2b,0x16,0x5b,0xb0,0x01,0x01, +0xa7,0x54,0xa4,0x98,0x88,0x73,0x58,0x1c,0x1e,0x63,0x7b,0x8f,0x96,0x96,0x45,0xfe,0xeb,0xfe,0xf6,0x32,0x62,0x93,0x62,0x01,0xc7,0xfe,0x4d,0x66,0x9b,0x68,0x34,0x00,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x04,0x01,0x02,0x02,0x01,0xd5,0x00,0x01,0x00,0x02,0x00,0xa6,0x00,0x00,0x06,0x14,0x04,0x00,0x00,0x11,0x00,0x18,0x00,0x1e, +0x40,0x0f,0x12,0x95,0x04,0x04,0x00,0x11,0x95,0x02,0x0f,0x13,0x95,0x0f,0x0f,0x00,0x15,0x00,0x3f,0x32,0x2f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x30,0x31,0x21,0x23,0x11,0x21,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x07,0x06,0x23,0x21,0x11,0x21,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x01,0x4a,0xa4,0x03,0x04,0x01,0x14,0x51,0x7f,0x58, +0x2e,0x5c,0x5c,0x8f,0xfe,0x39,0xfe,0x44,0x02,0x60,0xf6,0xcc,0xce,0x04,0x00,0xfe,0x6a,0x28,0x4e,0x71,0x49,0x93,0x54,0x53,0x03,0x74,0xfe,0x69,0xfe,0xaf,0xae,0xa3,0x00,0x02,0x00,0xa6,0xff,0xe8,0x05,0xfe,0x04,0x18,0x00,0x1f,0x00,0x28,0x00,0x27,0x40,0x15,0x23,0x95,0x1a,0x0f,0x01,0x95,0x28,0x28,0x0f,0x95,0x14,0x14,0x11,0x12, +0x0f,0x11,0x15,0x04,0x95,0x09,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x33,0x2f,0xed,0x3f,0xed,0x30,0x31,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x27,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x05,0xfe,0xfd,0x2d,0x04, +0xaf,0x9b,0xac,0x92,0x88,0xdd,0x68,0xa8,0x78,0x44,0x04,0xfe,0xc8,0xa4,0xa4,0x01,0x3e,0x0f,0x52,0x7b,0x9c,0x59,0x65,0x9d,0x6b,0x38,0xa8,0x01,0x86,0x79,0x3a,0x64,0x4e,0x33,0x0a,0x01,0xd7,0xac,0xb9,0x72,0x9a,0x62,0x42,0x7f,0xb8,0x76,0xfe,0x29,0x04,0x00,0xfe,0x62,0x62,0xa2,0x73,0x3f,0x43,0x7f,0xb6,0x73,0x35,0x8f,0x9d,0x2c, +0x4f,0x6f,0x42,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x06,0x37,0x04,0x18,0x00,0x2e,0x00,0x37,0x00,0x2e,0x40,0x19,0x32,0x95,0x29,0x0f,0x01,0x95,0x0c,0x0f,0x26,0x23,0x37,0x37,0x0f,0x1e,0x95,0x23,0x0f,0x14,0x95,0x0f,0x15,0x04,0x95,0x09,0x15,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0xed,0x3f,0xed, +0x30,0x31,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x06,0x37,0xfd,0x2d,0x04,0xaf,0x9b,0xac,0x92,0x88, +0xdd,0x88,0xc8,0x3a,0x45,0xdd,0x91,0x85,0x69,0x73,0x81,0x4e,0x84,0x5f,0x35,0x31,0x5b,0x81,0x4f,0x85,0x77,0x77,0xa1,0x89,0xd0,0x3f,0x40,0xc7,0x79,0x65,0x9d,0x6b,0x38,0xa8,0x01,0x86,0x79,0x3a,0x64,0x4e,0x33,0x0a,0x01,0xd7,0xac,0xb9,0x72,0x9a,0x62,0x6d,0x69,0x66,0x70,0x32,0xa8,0x50,0x3b,0x6c,0x96,0x5b,0x5a,0x8f,0x65,0x36, +0x59,0x9c,0x47,0x73,0x65,0x66,0x72,0x43,0x7f,0xb6,0x73,0x35,0x8f,0x9d,0x2c,0x4f,0x6f,0x42,0x00,0x02,0x00,0x90,0xff,0xe8,0x07,0x2a,0x04,0x18,0x00,0x23,0x00,0x33,0x00,0x22,0x40,0x12,0x24,0x95,0x1a,0x0f,0x17,0x03,0x08,0x15,0x0b,0x0f,0x0f,0x95,0x08,0x15,0x2e,0x95,0x00,0x15,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39, +0x3f,0xed,0x30,0x31,0x05,0x22,0x26,0x27,0x0e,0x03,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x21,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x05,0x2c,0x81,0xc6,0x40,0x17,0x3d,0x58,0x77,0x4f,0xfe,0x5d,0xa3,0x01,0x00, +0x48,0x66,0x40,0x1d,0xa4,0x42,0xb2,0x6e,0x73,0xb4,0x7d,0x42,0x48,0x84,0xbd,0x69,0x4e,0x7f,0x59,0x30,0x30,0x5a,0x7e,0x4e,0xa0,0xaa,0xaa,0x18,0x5e,0x57,0x23,0x41,0x33,0x1e,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0x2f,0x55,0x75,0x47,0x02,0x4e,0x62,0x3c,0x3e,0x49,0x8a,0xc5,0x7c,0x79,0xc7,0x8e,0x4e,0x03,0xa6,0x37,0x69,0x96, +0x5e,0x5a,0x91,0x66,0x37,0xcd,0xbf,0xc1,0xcf,0x00,0x00,0x01,0x00,0x35,0xff,0xea,0x04,0xce,0x06,0x02,0x00,0x26,0x00,0x26,0x40,0x14,0x1c,0x0b,0x16,0x95,0x11,0x00,0x20,0x06,0x09,0x95,0x1d,0x19,0x0b,0x0f,0x07,0x15,0x24,0x95,0x02,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0xed,0x12,0x39,0x30,0x31,0x25,0x06, +0x23,0x20,0x11,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x15,0x21,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x04,0xce,0x3b,0x5e,0xfe,0xf3,0xfe,0x5f,0xa3,0xaf,0xaf,0x5d,0x5d,0x8b,0x4b,0x2c,0x30,0x3d,0xac,0x01,0xa1,0xa4,0x01,0x02,0xfe,0xfe,0x46, +0x51,0x3f,0x2c,0x0a,0x20,0x01,0x2c,0x02,0x5e,0xfc,0x8c,0x03,0x74,0x8c,0xa6,0xa1,0x5d,0x5e,0x12,0x94,0x1b,0xd9,0x9e,0xfa,0x35,0xfe,0xd1,0x8c,0xfd,0xbf,0x67,0x58,0x22,0x00,0x00,0x01,0x00,0x68,0xff,0xe8,0x05,0x47,0x05,0x2f,0x00,0x3d,0x00,0x25,0x40,0x14,0x37,0x95,0x34,0x0f,0x0b,0x21,0x1a,0x33,0x05,0x95,0x31,0x0f,0x1f,0x95, +0x1a,0x15,0x3b,0x95,0x02,0x15,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x33,0x12,0x39,0x39,0x3f,0xed,0x30,0x31,0x25,0x06,0x23,0x20,0x11,0x11,0x21,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x21,0x35,0x37, +0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x05,0x47,0x3b,0x5e,0xfe,0xf3,0xfe,0x3b,0x2e,0x4a,0x35,0x1d,0x1d,0x38,0x50,0x33,0x44,0x6c,0x4c,0x29,0x43,0x70,0x93,0x4f,0x9f,0x73,0x85,0xa2,0xd8,0x25,0x3f,0x55,0x31,0x44,0x67,0x45,0x23,0x3d,0x63,0x7e,0x40,0x01,0xd9,0xa4,0x01,0x02,0xfe,0xfe,0x46,0x51,0x3f,0x2c,0x0a,0x20, +0x01,0x2c,0x02,0x5e,0x0d,0x1c,0x2d,0x20,0x28,0x36,0x2a,0x22,0x14,0x1a,0x37,0x45,0x5b,0x3d,0x4c,0x70,0x4a,0x24,0x3d,0xb0,0x63,0x90,0x27,0x38,0x2d,0x25,0x13,0x1b,0x37,0x45,0x58,0x3b,0x48,0x67,0x42,0x1f,0xfa,0x35,0xfe,0xd1,0x8c,0xfd,0xbf,0x67,0x58,0x22,0x00,0x01,0x00,0x50,0x00,0x00,0x04,0xad,0x04,0xda,0x00,0x0b,0x00,0x0b, +0xb3,0x05,0x06,0x00,0x18,0x00,0x3f,0x2f,0x39,0x30,0x31,0x21,0x26,0x02,0x27,0x00,0x25,0x37,0x04,0x13,0x16,0x12,0x17,0x04,0x74,0x58,0xde,0x8d,0xfe,0xeb,0xfe,0xb4,0xe6,0x01,0x1d,0xe7,0x75,0xb8,0x46,0xcd,0x01,0x5b,0x97,0x01,0x2a,0x85,0x6c,0xd4,0xfe,0xbe,0xa3,0xfe,0xa0,0xc1,0x00,0x01,0x00,0x50,0xff,0xfa,0x02,0xd5,0x04,0xdd, +0x00,0x42,0x00,0x26,0x40,0x11,0x2a,0x29,0x29,0x10,0x11,0x36,0x3e,0x11,0x3e,0x11,0x3e,0x05,0x18,0x20,0x33,0x05,0x18,0x00,0x3f,0x33,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x33,0x2f,0x33,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x23,0x35,0x21,0x36,0x36,0x35,0x34,0x26,0x23, +0x22,0x07,0x26,0x26,0x35,0x34,0x36,0x37,0x36,0x1e,0x02,0x15,0x14,0x06,0x15,0x33,0x15,0x23,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x02,0xd5,0x2d,0x51,0x70,0x43,0x17,0x4c,0x4b,0x36,0x1b,0x28,0x30,0x14,0xf7,0x01,0x0e,0x09,0x0d,0x4a,0x40,0x1d,0x27,0x08,0x11,0x0d,0x10, +0x47,0x69,0x45,0x21,0x04,0xe1,0xf3,0x2b,0x39,0x21,0x0d,0x39,0x42,0x3c,0x57,0x1d,0x27,0x20,0x11,0x1b,0x22,0x12,0x1d,0x2d,0x1f,0x10,0x01,0x02,0x2f,0x5e,0x4c,0x2f,0x26,0x46,0x62,0x3c,0x36,0x7a,0x80,0x82,0x3e,0x4e,0x11,0x39,0x28,0x4e,0x55,0x0b,0x08,0x1f,0x1a,0x11,0x26,0x17,0x02,0x3b,0x5e,0x72,0x36,0x17,0x2e,0x15,0x4e,0x7a, +0x9f,0x6a,0x44,0x1d,0x5d,0x65,0x47,0x36,0x12,0x31,0x19,0x13,0x25,0x1b,0x11,0x19,0x27,0x31,0x00,0x03,0x00,0x3c,0xfd,0xec,0x06,0xe7,0x05,0x65,0x00,0x3b,0x00,0x4f,0x00,0x63,0x00,0x43,0x40,0x0e,0x2e,0x15,0x9b,0x18,0x55,0x9b,0x4b,0x18,0x4b,0x18,0x4b,0x06,0x21,0x1f,0xb8,0x01,0x80,0x40,0x0c,0x27,0x5f,0x9b,0x41,0x41,0x06,0x39, +0x99,0x02,0x02,0x35,0x0b,0xb8,0x01,0x80,0xb2,0x09,0x06,0x18,0x00,0x3f,0x33,0xed,0x33,0x33,0x2f,0xed,0x11,0x33,0x2f,0xed,0x2f,0xed,0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x30,0x31,0x01,0x06,0x23,0x22,0x27,0x26,0x27,0x26,0x27,0x37,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x20,0x35, +0x34,0x2e,0x02,0x23,0x22,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x16,0x15,0x14,0x0e,0x02,0x07,0x16,0x17,0x16,0x33,0x32,0x37,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xcf,0x67,0x59, +0xb2,0x7f,0x56,0x2f,0xbf,0x5e,0x8c,0x50,0xa6,0x34,0x5a,0x43,0x26,0x2d,0x51,0x70,0x43,0x8b,0x8b,0x01,0x35,0x27,0x44,0x5c,0x34,0x9c,0x5d,0x89,0x18,0x4f,0x65,0x76,0x40,0x59,0x96,0x6c,0x3c,0xa6,0xa3,0x33,0x5c,0x7f,0x4b,0x0c,0x4f,0x63,0x61,0x42,0x2c,0x03,0x61,0x3f,0x6c,0x8f,0x51,0x50,0x8f,0x6c,0x3f,0x3f,0x6c,0x8f,0x50,0x50, +0x90,0x6c,0x3f,0xa1,0x25,0x40,0x55,0x30,0x30,0x55,0x40,0x25,0x25,0x40,0x55,0x30,0x30,0x55,0x40,0x25,0xfe,0x20,0x34,0xcd,0x8a,0xc5,0x1f,0xa4,0x4d,0x77,0x1e,0x38,0x4c,0x2f,0x38,0x5b,0x40,0x22,0xa0,0xdc,0x31,0x53,0x3d,0x23,0x77,0x50,0x2d,0x49,0x33,0x1c,0x38,0x66,0x8e,0x56,0xc3,0x6a,0x63,0xe1,0x4a,0x7f,0x60,0x3d,0x09,0x60, +0x81,0xa5,0x26,0x02,0xdb,0x50,0x8f,0x6c,0x3f,0x3f,0x6c,0x8f,0x50,0x51,0x90,0x6c,0x3f,0x3f,0x6c,0x90,0x51,0x30,0x55,0x41,0x25,0x25,0x41,0x55,0x30,0x30,0x55,0x40,0x25,0x25,0x40,0x55,0x00,0x02,0x00,0x54,0xfe,0x9b,0x08,0x76,0x08,0xe0,0x00,0x72,0x00,0x82,0x00,0x53,0xb9,0x00,0x39,0x01,0x81,0xb4,0x4b,0x4b,0x43,0x48,0x42,0xb8, +0x01,0x81,0x40,0x18,0x45,0x11,0x63,0x79,0x23,0x04,0x16,0x7e,0x1e,0x1e,0x01,0x76,0x16,0x16,0x69,0x71,0x01,0x01,0x45,0x45,0x43,0x0c,0x69,0x2d,0xb8,0x01,0x81,0xb4,0x55,0x55,0x40,0x43,0x18,0x00,0x3f,0x33,0x33,0x2f,0xed,0x2f,0x33,0x12,0x39,0x2f,0x33,0x2f,0x33,0x12,0x39,0x2f,0x33,0x11,0x33,0x2f,0x33,0x12,0x17,0x39,0x10,0xed, +0x32,0x12,0x39,0x2f,0xed,0x30,0x31,0x01,0x21,0x35,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x3e,0x03,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x0e,0x02,0x02,0x15,0x14,0x12,0x04,0x04,0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21, +0x15,0x23,0x11,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x02,0x06,0x04,0x23,0x22,0x24,0x24,0x26,0x26,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x21,0x25,0x34,0x26,0x23,0x22,0x06,0x07,0x1e,0x03,0x33,0x32,0x3e,0x02,0x06,0xe5,0xfe,0x0b,0x1d,0x2f,0x20,0x11,0x28,0x4b,0x6b,0x42,0x3a, +0x60,0x47,0x2a,0x04,0x08,0x1a,0x20,0x20,0x0e,0x76,0x82,0x23,0x3f,0x56,0x34,0x38,0x56,0x40,0x2a,0x0d,0x46,0x93,0x78,0x4c,0x90,0x01,0x05,0x01,0x6d,0xde,0x5f,0xaf,0x96,0x7b,0x57,0x30,0x18,0x2d,0x40,0x29,0x1d,0x36,0x29,0x19,0xd8,0xfe,0xd7,0xd8,0x03,0xcd,0xf4,0x40,0x7f,0x50,0x81,0x5a,0x31,0x66,0xd9,0xfe,0xad,0xec,0xb2,0xfe, +0xc6,0xfe,0xf8,0xd2,0x91,0x4d,0x30,0x54,0x71,0x82,0x8d,0x45,0x44,0x75,0x9d,0x58,0x60,0xa4,0x77,0x44,0x23,0x23,0x01,0x21,0xfd,0x25,0x2b,0x2e,0x26,0x3b,0x11,0x02,0x16,0x22,0x2a,0x17,0x10,0x1d,0x16,0x0d,0x05,0xa8,0x7f,0x12,0x39,0x44,0x47,0x20,0x48,0x75,0x53,0x2e,0x29,0x46,0x61,0x37,0x04,0x08,0x08,0x05,0x78,0x6e,0x32,0x52, +0x3b,0x20,0x27,0x40,0x52,0x2c,0x2d,0x8f,0xd4,0xfe,0xe1,0xbd,0xda,0xfe,0xa0,0xfa,0x87,0x08,0x1f,0x3f,0x6e,0xa6,0x77,0x47,0x78,0x57,0x31,0x21,0x36,0x42,0x21,0xfe,0x1c,0x04,0x78,0xfb,0x88,0x05,0x28,0xb0,0xfe,0x99,0x3e,0x46,0x7c,0xad,0x67,0xb3,0xfe,0xee,0xba,0x5f,0x4b,0x8d,0xca,0xfe,0x01,0x2c,0xa9,0x8e,0xf6,0xd0,0xaa,0x87, +0x64,0x21,0x17,0x58,0x9d,0x75,0x45,0x45,0x78,0xa5,0x60,0x3c,0x7a,0x3b,0x56,0x36,0x30,0x15,0x0e,0x1e,0x37,0x2a,0x1a,0x0f,0x18,0x1f,0x00,0x01,0x00,0x74,0x00,0xfd,0x03,0x47,0x05,0x5a,0x00,0x5c,0x00,0x2b,0x40,0x14,0x37,0x53,0x59,0x22,0x1c,0x12,0x2d,0x03,0x53,0x03,0x12,0x12,0x03,0x53,0x03,0x0a,0x4d,0x40,0x21,0x0a,0x00,0x2f, +0x33,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x11,0x33,0x32,0x32,0x11,0x33,0x30,0x31,0x01,0x06,0x06,0x07,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x11,0x26,0x26,0x27,0x22,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16, +0x17,0x35,0x34,0x26,0x23,0x22,0x06,0x23,0x22,0x2e,0x02,0x27,0x13,0x33,0x17,0x16,0x33,0x32,0x37,0x17,0x07,0x22,0x2e,0x02,0x23,0x22,0x06,0x07,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x15,0x36,0x36,0x37,0x03,0x47,0x2e,0x82,0x53,0x0d,0x15,0x1a,0x0c,0x42,0x24,0x50,0x43,0x2c,0x3b,0x2e,0x06,0x1b,0x1b,0x15,0x18,0x1c,0x18,0x0b,0x15, +0x20,0x15,0x2e,0x55,0x31,0x36,0x3c,0x10,0x1c,0x26,0x17,0x27,0x3b,0x07,0x0e,0x28,0x1e,0x2a,0x25,0x0f,0x17,0x09,0x0b,0x10,0x10,0x12,0x0c,0xfc,0x1c,0x9f,0x06,0x12,0x0f,0x0c,0x1d,0x75,0x08,0x1e,0x2b,0x38,0x22,0x1a,0x28,0x11,0x0e,0x19,0x0b,0x27,0x3f,0x2d,0x18,0x34,0x66,0x33,0x03,0x8b,0x54,0x4f,0x0e,0xfe,0x69,0x0f,0x1a,0x13, +0x0a,0x38,0x5b,0x75,0x3d,0x3f,0x47,0x06,0x18,0x33,0x2d,0x27,0x27,0x14,0x08,0x07,0x0c,0x25,0x23,0x19,0x01,0x69,0x04,0x0b,0x12,0x3f,0x2a,0x16,0x26,0x1d,0x10,0x2b,0x23,0x09,0x0d,0x0c,0x34,0x35,0x28,0x03,0x0e,0x1b,0x27,0x18,0x01,0x0c,0x6c,0x06,0x09,0x2a,0x78,0x1a,0x20,0x1a,0x2a,0x1b,0x02,0x03,0x17,0x25,0x31,0x1a,0x93,0x05, +0x2c,0x3b,0x00,0x01,0xff,0xf8,0xff,0xec,0x09,0x3b,0x05,0xcd,0x00,0xa4,0x00,0x00,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x37,0x3e,0x03,0x37,0x17,0x0e,0x05,0x07,0x0e,0x05,0x07,0x3e,0x05,0x37,0x3e,0x03,0x37,0x3e,0x03,0x37,0x17, +0x0e,0x05,0x07,0x0e,0x05,0x15,0x14,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x3e,0x05,0x37,0x0e,0x03,0x07,0x0e,0x03,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x36,0x12,0x37,0x3e,0x05,0x37,0x0e,0x05,0x07,0x0e,0x05,0x01,0x0a,0x3f,0x65,0x48,0x26,0x1c,0x31,0x44,0x29,0x22, +0x2c,0x1a,0x0b,0x14,0x2c,0x43,0x2f,0x1a,0x11,0x13,0x2e,0x4b,0x38,0x4b,0x87,0x7e,0x77,0x76,0x78,0x41,0x61,0xc1,0xb0,0x96,0x36,0x21,0x09,0x32,0x40,0x47,0x3f,0x2e,0x07,0x07,0x24,0x30,0x36,0x31,0x26,0x07,0x20,0x4b,0x51,0x55,0x55,0x52,0x27,0x2d,0x4a,0x43,0x40,0x23,0x39,0x70,0x64,0x55,0x1f,0x22,0x17,0x3d,0x44,0x48,0x46,0x40, +0x19,0x15,0x38,0x3c,0x3b,0x2f,0x1d,0x10,0x1b,0x51,0x5b,0x5e,0x29,0x19,0x27,0x5f,0x62,0x5f,0x28,0x23,0x38,0x27,0x15,0x24,0x3b,0x48,0x48,0x3f,0x15,0x1a,0x4d,0x55,0x58,0x4b,0x37,0x0a,0x1a,0x70,0x9d,0xc4,0x6d,0x3e,0x6b,0x5d,0x51,0x24,0x1f,0x38,0x34,0x2f,0x15,0x22,0x27,0x14,0x05,0x19,0x49,0x84,0x6c,0x18,0x3e,0x42,0x41,0x36, +0x28,0x08,0x2c,0x6c,0x74,0x79,0x71,0x67,0x28,0x37,0x6d,0x71,0x78,0x85,0x96,0x14,0x27,0x48,0x63,0x3c,0x2b,0x4c,0x38,0x20,0x14,0x21,0x28,0x14,0x18,0x2d,0x26,0x1c,0x06,0x03,0x16,0x12,0x09,0x30,0x31,0x26,0x3a,0x65,0x8b,0xa0,0xaf,0x58,0x84,0xef,0xc3,0x90,0x26,0x15,0x15,0x6e,0x91,0xa1,0x8e,0x69,0x10,0x10,0x59,0x79,0x8e,0x8f, +0x83,0x30,0x20,0x66,0x7c,0x8a,0x8a,0x82,0x35,0x3d,0x64,0x55,0x4b,0x25,0x3d,0x69,0x54,0x3e,0x12,0x21,0x21,0x65,0x78,0x85,0x85,0x7d,0x33,0x2a,0x79,0x8a,0x90,0x81,0x67,0x1c,0x1d,0x38,0x59,0x6e,0x35,0x15,0x36,0x72,0x5e,0x3d,0x1a,0x3c,0x64,0x4a,0x31,0x7c,0x86,0x87,0x78,0x60,0x1c,0x23,0x5f,0x67,0x67,0x56,0x3e,0x0b,0x12,0x56, +0x97,0xde,0x99,0x59,0xa6,0x98,0x85,0x36,0x2e,0x4f,0x3b,0x21,0x2f,0x45,0x4d,0x1e,0x21,0x7b,0xbc,0x01,0x01,0xa7,0x26,0x5c,0x5e,0x5b,0x4c,0x36,0x0b,0x21,0x6b,0x82,0x91,0x90,0x86,0x36,0x49,0xa1,0x9b,0x8d,0x6b,0x3f,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x04,0x2a,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0xc9, +0xfe,0xf4,0xff,0xff,0x00,0xab,0xfe,0xa6,0x05,0xf4,0x05,0xec,0x00,0x27,0x0f,0x50,0x02,0x59,0xfe,0xab,0x00,0x06,0x09,0x24,0x00,0x00,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x04,0x12,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0xad,0xfe,0xab,0x00,0x07,0x0a,0x19,0x02,0xc0,0xfb,0xb4,0xff,0xff,0x00,0xab,0xfd,0xc9, +0x06,0x9f,0x04,0x12,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x27,0x0f,0x54,0x02,0xad,0xfd,0xce,0x00,0x07,0x0a,0x19,0x02,0xc0,0xfb,0xb4,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x04,0x39,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x14,0x7c,0x03,0xc6,0xfb,0xaa,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0x9e,0x05,0x5f,0x02,0x26,0x09,0x17, +0x00,0x00,0x00,0x07,0x0a,0x1f,0x00,0xa5,0xfc,0xd3,0xff,0xff,0x00,0x9a,0xfd,0xfb,0x05,0x91,0x05,0xe2,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x27,0x0f,0x51,0x02,0x01,0xfe,0x00,0x00,0x07,0x0a,0x1f,0x01,0xc4,0xfd,0x56,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x4b,0x03,0x62,0x02,0x06,0x09,0xc8,0x00,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff, +0x05,0x4b,0x02,0xb7,0x02,0x06,0x09,0x7c,0x00,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x01,0xc1,0x02,0x06,0x09,0x5f,0x00,0x00,0x00,0x04,0x00,0x00,0x06,0x71,0x04,0xb4,0x09,0x9a,0x00,0x28,0x00,0x2c,0x00,0x6e,0x00,0x7c,0x00,0x00,0x01,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23, +0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x16,0x33,0x13,0x33,0x11,0x23,0x25,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26, +0x27,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x16,0x16,0x33,0x27,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x17,0x3e,0x03,0x03,0x75,0x1d,0x1d,0x5c,0x1a,0x2b,0x38,0x1d,0x19,0x0b,0x13,0x08,0x08,0x6a,0x4d,0x15,0x2b,0x17,0x17,0x2f,0x10,0x1d,0x27,0x18,0x0a,0x1f,0x11,0x61,0x0c,0x12,0x05,0x04, +0x1d,0x1d,0xee,0x5c,0x5c,0xfd,0x6b,0x1d,0x1d,0x5c,0x1a,0x2b,0x38,0x1d,0x1b,0x45,0x78,0x33,0x31,0x26,0x10,0x23,0x38,0x27,0x26,0x53,0x26,0x2b,0x4d,0x28,0x3f,0x5b,0x39,0x1b,0x0a,0x1a,0x2e,0x23,0x19,0x30,0x11,0x08,0x05,0x12,0x2d,0x32,0x35,0x1a,0x19,0x38,0x2d,0x1e,0x09,0x19,0x2c,0x24,0x25,0x50,0x2d,0x8d,0x26,0x21,0x18,0x32, +0x17,0x11,0x27,0x14,0x1c,0x24,0x15,0x07,0x07,0x95,0x16,0x23,0x01,0xcc,0xfe,0x31,0x31,0x3c,0x20,0x0a,0x07,0x03,0x66,0x67,0x08,0x0b,0x5f,0x07,0x09,0x15,0x26,0x34,0x1f,0x39,0x73,0x30,0x1d,0x42,0x20,0x14,0x15,0x02,0x05,0xfd,0x9a,0x61,0x16,0x23,0xb7,0xba,0x31,0x3c,0x20,0x0a,0x36,0x2e,0x16,0x30,0x1a,0x16,0x27,0x1e,0x11,0x0f, +0x0d,0x5a,0x14,0x09,0x1e,0x35,0x45,0x27,0x15,0x2b,0x2a,0x29,0x15,0x1c,0x45,0x1d,0x46,0x05,0x09,0x01,0x03,0x07,0x07,0x04,0x07,0x13,0x25,0x1e,0x0e,0x26,0x2a,0x2b,0x14,0x17,0x1a,0xbb,0x0b,0x08,0x04,0x03,0x1a,0x2e,0x14,0x0d,0x18,0x15,0x11,0x00,0x00,0x02,0xff,0x2b,0x06,0x1f,0x02,0xdf,0x08,0x40,0x00,0x36,0x00,0x48,0x00,0x21, +0x40,0x0e,0x00,0x37,0x37,0x23,0x31,0x05,0x0f,0x0f,0x1a,0x3f,0x05,0x05,0x29,0x1a,0x00,0x2f,0x33,0x33,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x39,0x33,0x11,0x33,0x30,0x31,0x01,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15, +0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x17,0x16,0x16,0x33,0x17,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x32,0x32,0x16,0x32,0x01,0x35,0x0d,0x2f,0x43,0x57,0x36,0x28,0x3c,0x27,0x13,0x20,0x46,0x71,0x51,0x17,0x3e,0x3b,0x30,0x0a,0x02,0x02,0x1a,0x36,0x56,0x3e,0x3f,0x54,0x32,0x15,0x06,0x07,0x56, +0x05,0x05,0x3a,0x45,0x28,0x38,0x23,0x10,0x07,0x07,0x58,0x0a,0x02,0x1b,0x13,0xd3,0x2e,0x3b,0x23,0x0e,0x34,0x25,0x1f,0x34,0x29,0x1e,0x09,0x08,0x1c,0x1d,0x1b,0x07,0x2f,0x27,0x5f,0x53,0x38,0x22,0x3a,0x50,0x2d,0x3a,0x40,0x1e,0x06,0x01,0x06,0x0c,0x0a,0x30,0x4a,0x33,0x1a,0x1b,0x32,0x48,0x2d,0x1a,0x37,0x1d,0x1b,0x29,0x16,0x42, +0x34,0x12,0x28,0x41,0x2f,0x21,0x43,0x2f,0x5d,0x14,0x1c,0x03,0x02,0x0e,0x1b,0x1a,0x39,0x33,0x1f,0x33,0x3f,0x1f,0x01,0x00,0x00,0x01,0x00,0x00,0x06,0x1e,0x01,0xba,0x08,0xdd,0x00,0x35,0x00,0x19,0x40,0x0a,0x19,0x00,0x30,0x30,0x11,0x2a,0x21,0x21,0x0a,0x11,0x00,0x2f,0x33,0x33,0x2f,0x33,0x12,0x39,0x2f,0x33,0x33,0x30,0x31,0x01, +0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x32,0x16,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x3e,0x03,0x37,0x01,0x62,0x47,0x61,0x3d,0x1b,0x12,0x26,0x3d,0x2b,0x2d,0x65,0x26,0x2f,0x5c,0x2e,0x45,0x61, +0x3e,0x1d,0x23,0x30,0x1c,0x1a,0x1c,0x35,0x4d,0x30,0x06,0x16,0x1a,0x16,0x06,0x0b,0x2b,0x11,0x34,0x43,0x11,0x0e,0x10,0x2f,0x34,0x37,0x1a,0x07,0xaa,0x10,0x28,0x2f,0x33,0x1b,0x18,0x2b,0x20,0x13,0x16,0x0e,0x63,0x10,0x12,0x21,0x38,0x4c,0x2a,0x2a,0x56,0x2a,0x1f,0x49,0x23,0x24,0x44,0x34,0x1f,0x02,0x03,0x03,0x64,0x02,0x03,0x25, +0x32,0x1a,0x2d,0x0f,0x0a,0x13,0x13,0x10,0x07,0x00,0x00,0x04,0x00,0x00,0x06,0x71,0x01,0xf5,0x09,0x3e,0x00,0x2a,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x27,0x40,0x11,0x40,0x3e,0x3e,0x3b,0x39,0x39,0x2b,0x00,0x19,0x0f,0x0f,0x22,0x33,0x19,0x19,0x08,0x22,0x00,0x2f,0x33,0x33,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x33,0x32,0x2f,0x33, +0x33,0x2f,0x33,0x30,0x31,0x13,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05,0x32,0x36,0x37,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x65, +0x03,0x05,0x0f,0x23,0x3a,0x2c,0x31,0x3c,0x23,0x0e,0x03,0x18,0x1a,0x1d,0x36,0x29,0x19,0x15,0x26,0x33,0x1e,0x21,0x33,0x19,0x16,0x17,0x7d,0x88,0x43,0x5c,0x38,0x19,0x05,0x05,0x01,0x61,0x0b,0x15,0x0b,0x02,0x0b,0x11,0x16,0x0b,0x10,0x1d,0x27,0x2f,0x73,0x73,0xc8,0x73,0x73,0x07,0xa4,0x1a,0x2c,0x13,0x21,0x2c,0x1b,0x0c,0x0f,0x1b, +0x25,0x15,0x07,0x12,0x23,0x33,0x21,0x1b,0x3d,0x33,0x21,0x25,0x25,0x21,0x65,0x33,0x7e,0x77,0x1b,0x34,0x4e,0x32,0x17,0x32,0x1c,0x10,0x01,0x05,0x0e,0x25,0x21,0x17,0x2b,0x19,0x15,0x18,0x01,0x38,0x71,0x71,0x71,0x00,0x00,0x03,0x00,0x32,0x05,0xd1,0x01,0xd4,0x08,0x8c,0x00,0x1c,0x00,0x20,0x00,0x24,0x00,0x1d,0x40,0x0c,0x23,0x22, +0x22,0x1f,0x1d,0x1d,0x11,0x08,0x1c,0x1c,0x16,0x08,0x00,0x2f,0x33,0x33,0x2f,0x12,0x39,0x33,0x2f,0x33,0x32,0x2f,0x33,0x30,0x31,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x23,0x35,0x33,0x03,0x21,0x15,0x21,0x01,0xc7,0x07,0x06, +0x16,0x35,0x56,0x40,0x37,0x4a,0x2d,0x13,0x06,0x05,0x58,0x09,0x30,0x3c,0x46,0x3c,0x07,0x06,0x31,0x73,0x73,0xdd,0x01,0x52,0xfe,0xae,0x07,0xe3,0x23,0x43,0x1f,0x37,0x58,0x3d,0x21,0x1a,0x32,0x46,0x2c,0x18,0x35,0x1e,0x3b,0x29,0x36,0x29,0x40,0x4f,0x1a,0x3d,0x26,0x38,0x71,0xfd,0x9d,0x58,0xff,0xff,0x00,0x32,0xfc,0xd5,0x01,0xd4, +0xff,0x90,0x02,0x03,0x14,0x61,0x00,0x00,0xf7,0x04,0x00,0x0b,0xfc,0xe6,0x07,0x1d,0x02,0xe0,0x0a,0x0e,0x00,0x64,0x00,0x68,0x00,0x6c,0x00,0x70,0x00,0x74,0x00,0x78,0x00,0x7c,0x00,0x80,0x00,0x84,0x00,0x88,0x00,0x8c,0x00,0x00,0x03,0x14,0x16,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x32,0x3e,0x02,0x35, +0x35,0x33,0x15,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x23,0x22,0x26,0x26,0x34,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17, +0x16,0x16,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x01,0x33,0x11,0x23,0x01,0x33,0x15,0x23,0x07,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x25,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x25,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0xf6,0x14,0x26,0x50,0x09,0x14,0x12,0x0c,0x5c,0x13,0x26,0x36,0x09,0x15, +0x11,0x0c,0x5c,0x11,0x21,0x3e,0x1d,0x1d,0x5c,0x1a,0x2b,0x38,0x1d,0x3b,0x23,0x32,0x11,0x17,0x35,0x19,0x4c,0x19,0x2c,0x0d,0x17,0x39,0x19,0x6a,0x17,0x2d,0x0d,0x17,0x35,0x1a,0x0e,0x17,0x27,0x22,0x1d,0x0e,0x16,0x2b,0x17,0x1c,0x28,0x50,0x02,0x01,0x01,0x1d,0x2d,0x39,0x1b,0x12,0x26,0x24,0x20,0x0d,0x17,0x2a,0x17,0x0e,0x09,0x15, +0x11,0x0c,0x5c,0x03,0x7a,0x5c,0x5c,0xfc,0xdd,0x3f,0x3f,0x9e,0x65,0x65,0x02,0x2e,0x65,0x65,0xfc,0x7b,0x65,0x65,0x03,0xcc,0x64,0x64,0xfc,0xc0,0x64,0x64,0x01,0x12,0x64,0x64,0x45,0x64,0x64,0x02,0x2e,0x64,0x64,0x07,0xe9,0x2c,0x28,0x06,0x0d,0x16,0x11,0x01,0xcb,0xfe,0x4f,0x2c,0x28,0x06,0x0d,0x16,0x11,0xb7,0x9d,0x2a,0x2a,0x16, +0x23,0x01,0xcc,0xfe,0x31,0x31,0x3c,0x20,0x0a,0x15,0x12,0x16,0x11,0x16,0x11,0x16,0x11,0x18,0x0f,0x16,0x11,0x0c,0x13,0x18,0x0c,0x12,0x1d,0x33,0x3d,0x19,0x0a,0x0c,0x0b,0x02,0x36,0x4b,0x30,0x15,0x0d,0x13,0x18,0x0a,0x12,0x1d,0x06,0x0d,0x16,0x11,0xb7,0x01,0x14,0xfd,0x9a,0x02,0xda,0xc4,0x8f,0x62,0x62,0x62,0xeb,0x62,0xaf,0x62, +0xfe,0x8d,0x62,0xaf,0x62,0xea,0x62,0x62,0x62,0x00,0x00,0x07,0xfb,0x6b,0x06,0xaa,0x03,0xb0,0x09,0x9a,0x00,0x84,0x00,0x94,0x00,0x98,0x00,0xa4,0x00,0xa8,0x00,0xac,0x00,0xb0,0x00,0x00,0x01,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x17,0x33,0x32,0x3e,0x02,0x37,0x27,0x26,0x26,0x23,0x22, +0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x17,0x1e,0x03,0x17,0x07,0x07,0x16,0x16,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x17,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x06,0x06, +0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x03,0x1e,0x03,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x27,0x01,0x33,0x11,0x23,0x25,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x13,0x23,0x35,0x33, +0x17,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0xfc,0xb3,0x26,0x47,0x16,0x32,0x29,0x0c,0x13,0x1a,0x0e,0x5f,0x17,0x20,0x0b,0x02,0x08,0x0e,0x15,0x0f,0x09,0x2a,0x4f,0x49,0x45,0x20,0x0b,0x1d,0x3f,0x32,0x1e,0x3d,0x13,0x17,0x3c,0x1f,0x32,0x45,0x1e,0x0d,0x1d,0x22,0x2b,0x1c,0x10,0x3d,0x02,0x22,0x2c,0x1d,0x09,0x15,0x11,0x0c,0x5c,0x03, +0x0b,0x15,0x11,0x16,0x22,0x5c,0x13,0x26,0x17,0x1d,0x5d,0x10,0x21,0x0d,0x1d,0x1d,0x5c,0x1a,0x2b,0x38,0x1d,0x19,0x1c,0x27,0x0e,0x14,0x34,0x1a,0x22,0x35,0x12,0x17,0x37,0x19,0x24,0x32,0x0f,0x16,0x38,0x18,0x38,0x2d,0x42,0x08,0x1c,0x41,0x4b,0x54,0x2f,0x0f,0x1b,0x2b,0x0c,0x1a,0x4e,0x2e,0x17,0x41,0x1d,0xe7,0x35,0x49,0x2d,0x13, +0x51,0x49,0x47,0x4b,0x35,0x21,0x1f,0x07,0xb2,0x5c,0x5c,0xf8,0x73,0x21,0x17,0x20,0x1c,0x18,0x21,0x1a,0x21,0x20,0x65,0x65,0x8c,0x64,0x64,0x02,0xe0,0x64,0x64,0x07,0x9e,0x05,0x06,0x14,0x16,0x12,0x3e,0x4b,0x52,0x24,0x45,0x79,0x31,0x0a,0x19,0x17,0x0f,0x01,0x12,0x1e,0x27,0x14,0x05,0x10,0x18,0x08,0x05,0x58,0x08,0x0b,0x19,0x10, +0x06,0x0d,0x0b,0x09,0x02,0x59,0x27,0x14,0x10,0x06,0x0d,0x16,0x11,0x71,0x58,0x15,0x20,0x14,0x0a,0x17,0x23,0x71,0x57,0x2c,0x28,0x17,0x23,0xb8,0x9b,0x2b,0x2a,0x02,0x16,0x23,0x01,0xcc,0xfe,0x31,0x31,0x3c,0x20,0x0a,0x13,0x0f,0x13,0x0f,0x10,0x17,0x16,0x11,0x14,0x12,0x14,0x12,0x30,0x2a,0x10,0x20,0x1a,0x10,0x1c,0x11,0x1b,0x15, +0x08,0x04,0x01,0x96,0x21,0x43,0x45,0x47,0x25,0x42,0x51,0x49,0x3e,0x40,0x63,0x1f,0x1a,0x01,0x0c,0xfd,0x9a,0x8a,0x1a,0x17,0x1a,0x16,0x1f,0x3c,0x23,0x16,0x42,0x01,0x2a,0x62,0x62,0x62,0xfd,0x3b,0x62,0x00,0x00,0x06,0xfb,0x9b,0x07,0x31,0x03,0x92,0x09,0x9a,0x00,0x7e,0x00,0x82,0x00,0x92,0x00,0xa1,0x00,0xa5,0x00,0xa9,0x00,0x00, +0x01,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x26,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x37, +0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x17,0x16,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x16,0x16,0x17,0x01,0x33,0x11,0x23,0x25,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23, +0x22,0x0e,0x02,0x25,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x7a,0x17,0x1d,0x5d,0x03,0x0c,0x16,0x13,0x10,0x1d,0x1d,0x5c,0x1a,0x2b,0x38,0x1d,0x19,0x20,0x2c,0x0f,0x14,0x34,0x1a,0x1b,0x24,0x2d,0x11,0x11,0x2e,0x35,0x3b,0x1e,0x48,0x66,0x45,0x2a,0x0b,0x0c,0x11, +0x07,0x17,0x37,0x19,0x19,0x11,0x1c,0x1a,0x19,0x0f,0x2a,0x67,0x36,0x48,0x68,0x89,0x27,0x1d,0x15,0x0b,0x05,0x5a,0x04,0x09,0x0a,0x0e,0x0c,0x22,0x33,0x48,0x31,0x13,0x26,0x21,0x18,0x04,0x22,0x10,0x15,0x26,0x33,0x1e,0x24,0x39,0x27,0x15,0x0c,0x39,0x17,0x21,0x09,0x05,0x5c,0x0e,0x02,0x0e,0x10,0x0f,0x37,0x4e,0x65,0x3d,0x33,0x4a, +0x30,0x17,0x01,0x0e,0x17,0x01,0xe2,0x5c,0x5c,0xfc,0x5a,0x21,0x52,0x35,0x26,0x39,0x27,0x14,0x40,0x32,0x25,0x41,0x34,0x29,0xfe,0x59,0x0a,0x12,0x17,0x0d,0x11,0x1c,0x08,0x16,0x25,0x1e,0x0c,0x11,0x64,0x64,0x04,0x24,0x64,0x64,0x07,0x95,0x17,0x23,0xb8,0x9b,0x17,0x20,0x16,0x0a,0x16,0x23,0x01,0xcc,0xfe,0x31,0x31,0x3c,0x20,0x0a, +0x01,0x11,0x10,0x13,0x0f,0x0f,0x18,0x0e,0x11,0x09,0x02,0x01,0x03,0x05,0x05,0x05,0x0f,0x08,0x16,0x11,0x03,0x06,0x08,0x06,0x13,0x07,0x0f,0x20,0x17,0x43,0x25,0x1b,0x34,0x14,0x11,0x34,0x13,0x14,0x23,0x09,0x08,0x0a,0x04,0x01,0x01,0x02,0x02,0x01,0x16,0x31,0x20,0x1b,0x3d,0x33,0x21,0x2c,0x40,0x49,0x1d,0x29,0x1c,0x19,0x0f,0x11, +0x3a,0x17,0x68,0x0b,0x11,0x04,0x28,0x5c,0x4e,0x34,0x1f,0x35,0x46,0x27,0x20,0x25,0x01,0x02,0x04,0xfd,0x9a,0x61,0x01,0x01,0x03,0x0c,0x19,0x16,0x3a,0x31,0x1d,0x2f,0x3c,0x24,0x0f,0x27,0x23,0x18,0x2b,0x19,0x09,0x14,0x15,0x19,0x0f,0x0d,0x01,0x42,0x62,0x8d,0x62,0x00,0x00,0x05,0xfc,0x00,0x07,0x1d,0x02,0x8d,0x09,0xb2,0x00,0x7e, +0x00,0x82,0x00,0x86,0x00,0x8a,0x00,0x8e,0x00,0x00,0x01,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x35,0x25,0x15,0x07,0x1e,0x03,0x17,0x1e,0x03,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22, +0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x23,0x22,0x26,0x26,0x34,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x16,0x16,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x05,0x23,0x35, +0x33,0x25,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0xfe,0x24,0x14,0x26,0xd5,0x43,0x30,0x23,0x40,0x5a,0x36,0x01,0x5e,0xea,0x42,0x50,0x2e,0x15,0x07,0x01,0x07,0x10,0x1d,0x19,0x13,0x09,0x15,0x11,0x0c,0x5c,0x03,0x0b,0x15,0x11,0x16,0x22,0x5c,0x13,0x26,0x17,0x1d,0x5d,0x0f,0x22,0x38,0x29,0x22,0x35,0x12,0x17,0x37, +0x19,0x24,0x32,0x0f,0x16,0x38,0x18,0x38,0x0a,0x16,0x16,0x12,0x05,0x17,0x50,0x42,0xdd,0x23,0x32,0x11,0x17,0x35,0x1a,0x10,0x2c,0x41,0x1c,0x16,0x2b,0x17,0x1c,0x28,0x50,0x02,0x01,0x01,0x1d,0x2d,0x39,0x1b,0x12,0x26,0x24,0x20,0x0d,0x17,0x2a,0x17,0x0e,0x09,0x15,0x11,0x0c,0x5c,0xfe,0x62,0x65,0x65,0x01,0x57,0x65,0x65,0x8c,0x64, +0x64,0xfe,0xa9,0x64,0x64,0x07,0xe9,0x2c,0x28,0x1a,0x18,0x1b,0x35,0x34,0x34,0x1b,0x3d,0xdb,0x61,0x94,0x20,0x38,0x36,0x36,0x1e,0x07,0x18,0x16,0x11,0x06,0x0d,0x16,0x11,0x71,0x58,0x15,0x20,0x14,0x0a,0x17,0x23,0x71,0x57,0x2c,0x28,0x17,0x23,0xb8,0x9b,0x33,0x46,0x2b,0x14,0x10,0x17,0x16,0x11,0x14,0x12,0x14,0x12,0x0b,0x10,0x12, +0x07,0x17,0x1d,0x15,0x12,0x16,0x11,0x2a,0x19,0x12,0x1d,0x33,0x3d,0x19,0x0a,0x0c,0x0b,0x02,0x36,0x4b,0x30,0x15,0x0d,0x13,0x18,0x0a,0x12,0x1d,0x06,0x0d,0x16,0x11,0xb7,0x54,0x62,0x27,0x62,0x62,0x62,0xeb,0x62,0x00,0x00,0x06,0xfd,0x71,0x07,0x31,0x01,0x80,0x09,0x5c,0x00,0x43,0x00,0x52,0x00,0x61,0x00,0x65,0x00,0x69,0x00,0x6d, +0x00,0x00,0x03,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x33,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x26,0x26,0x17,0x34, +0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x25,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x03,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0xfc,0x15,0x26,0x33,0x1e,0x24,0x39,0x27,0x15,0x0c,0x74,0x1f,0x16,0x15,0x26,0x32,0x1e,0x24,0x38,0x28,0x15,0x33,0x4f,0x60,0x2c,0x4b,0x1a,0x2f, +0x14,0x2a,0x67,0x36,0x48,0x68,0x89,0x27,0x1d,0x15,0x0b,0x05,0x5a,0x04,0x09,0x0a,0x0e,0x0c,0x22,0x33,0x48,0x31,0x13,0x26,0x21,0x18,0x04,0x22,0x10,0xc8,0x0a,0x12,0x17,0x0d,0x11,0x1c,0x08,0x16,0x25,0x1e,0x0c,0x01,0x58,0x0b,0x12,0x17,0x0c,0x11,0x1c,0x08,0x16,0x25,0x1e,0x0c,0x58,0x65,0x65,0x8c,0x64,0x64,0xfe,0x63,0x64,0x64, +0x08,0x00,0x1b,0x3d,0x33,0x21,0x2c,0x40,0x49,0x1d,0x29,0x1c,0x16,0x35,0x20,0x1b,0x3d,0x33,0x21,0x2c,0x40,0x49,0x1d,0x3e,0x44,0x1f,0x05,0x0f,0x08,0x13,0x07,0x0f,0x20,0x17,0x43,0x25,0x1b,0x34,0x14,0x11,0x34,0x13,0x14,0x23,0x09,0x08,0x0a,0x04,0x01,0x01,0x02,0x02,0x01,0x16,0x31,0x08,0x0f,0x27,0x23,0x18,0x2b,0x19,0x09,0x14, +0x15,0x19,0x0f,0x0d,0x20,0x0f,0x27,0x23,0x18,0x2b,0x19,0x09,0x14,0x15,0x18,0x0f,0x0f,0x01,0x3f,0x62,0x62,0x62,0x62,0x62,0x00,0x0a,0xfd,0x0e,0x06,0x71,0x02,0x8c,0x09,0x5c,0x00,0x4b,0x00,0x6d,0x00,0x7c,0x00,0x8b,0x00,0x8f,0x00,0x93,0x00,0x97,0x00,0x9b,0x00,0x9f,0x00,0xaf,0x00,0x00,0x01,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02, +0x15,0x14,0x07,0x33,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x23,0x22,0x26,0x26,0x34,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x26,0x26,0x05,0x16,0x16,0x33,0x32, +0x3e,0x02,0x37,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x25,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x03,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x25,0x23,0x35,0x33,0x05,0x23, +0x35,0x33,0x01,0x23,0x35,0x33,0x05,0x32,0x36,0x37,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0xfe,0xa0,0x15,0x26,0x33,0x1e,0x24,0x39,0x27,0x15,0x0c,0x74,0x1f,0x16,0x15,0x26,0x32,0x1e,0x24,0x38,0x28,0x15,0x33,0x4f,0x60,0x2c,0x4b,0x19,0x30,0x14,0x15,0x30,0x2f,0x2c,0x12,0x27,0x30,0x42,0x1d,0x16,0x2b,0x17,0x1c,0x28,0x50, +0x02,0x01,0x01,0x1d,0x2d,0x39,0x1b,0x12,0x26,0x24,0x20,0x0d,0x19,0x2f,0x1e,0x14,0x1e,0x05,0x22,0x10,0x02,0x89,0x2a,0x51,0x1d,0x1e,0x27,0x19,0x0c,0x02,0x16,0x1c,0x1d,0x35,0x2a,0x19,0x16,0x25,0x33,0x1e,0x2d,0x3b,0x23,0x0f,0x16,0x30,0x4e,0x37,0x26,0x4b,0x27,0xfe,0x3f,0x0a,0x12,0x17,0x0d,0x11,0x1c,0x08,0x16,0x25,0x1e,0x0c, +0x01,0x58,0x0b,0x12,0x17,0x0c,0x11,0x1c,0x08,0x16,0x25,0x1e,0x0c,0x58,0x65,0x65,0xfd,0x2c,0x65,0x65,0x01,0xc3,0x64,0x64,0x01,0x9d,0x64,0x64,0xfd,0x2c,0x64,0x64,0x03,0xe3,0x0b,0x15,0x0a,0x02,0x0b,0x11,0x14,0x0c,0x08,0x10,0x0d,0x08,0x27,0x08,0x00,0x1b,0x3d,0x33,0x21,0x2c,0x40,0x49,0x1d,0x29,0x1c,0x16,0x35,0x20,0x1b,0x3d, +0x33,0x21,0x2c,0x40,0x49,0x1d,0x3e,0x44,0x1f,0x05,0x0f,0x08,0x08,0x0a,0x04,0x01,0x2a,0x19,0x12,0x1d,0x33,0x3d,0x19,0x0a,0x0c,0x0b,0x02,0x36,0x4b,0x30,0x15,0x0d,0x13,0x18,0x0a,0x14,0x1c,0x03,0x02,0x16,0x31,0xe9,0x11,0x13,0x12,0x1d,0x25,0x14,0x07,0x12,0x23,0x33,0x21,0x1b,0x3d,0x33,0x21,0x38,0x51,0x59,0x21,0x30,0x59,0x43, +0x29,0x09,0x13,0x01,0x4b,0x0f,0x27,0x23,0x18,0x2b,0x19,0x09,0x14,0x15,0x19,0x0f,0x0d,0x20,0x0f,0x27,0x23,0x18,0x2b,0x19,0x09,0x14,0x15,0x18,0x0f,0x0f,0x01,0x3f,0x62,0xfe,0xd6,0x62,0x66,0x62,0x62,0x62,0xfe,0xd6,0x62,0xff,0x02,0x05,0x0e,0x25,0x21,0x16,0x0c,0x14,0x17,0x0c,0x16,0x18,0x00,0x02,0x00,0x00,0x06,0x71,0x02,0xf4, +0x08,0x06,0x00,0x1b,0x00,0x2e,0x00,0x14,0xb7,0x21,0x18,0x18,0x05,0x2a,0x10,0x10,0x05,0x00,0x2f,0x33,0x2f,0x33,0x11,0x33,0x11,0x33,0x30,0x31,0x01,0x0e,0x03,0x23,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x33,0x32,0x36,0x37,0x25,0x14,0x1e,0x02,0x33,0x33,0x36,0x36,0x35,0x34,0x2e,0x02,0x23, +0x22,0x0e,0x02,0x02,0xf4,0x11,0x3c,0x4e,0x5d,0x31,0xef,0x3f,0x54,0x33,0x16,0x11,0x2b,0x48,0x38,0x2b,0x43,0x2c,0x17,0x13,0x81,0x59,0x93,0x2d,0xfd,0x66,0x0f,0x21,0x34,0x24,0x15,0x0f,0x0d,0x10,0x1a,0x20,0x10,0x1d,0x25,0x15,0x08,0x06,0x98,0x08,0x0f,0x0a,0x06,0x26,0x3c,0x49,0x23,0x21,0x47,0x3a,0x25,0x1f,0x36,0x4a,0x2b,0x32, +0x33,0x13,0x10,0x41,0x13,0x24,0x1c,0x11,0x1d,0x31,0x15,0x19,0x26,0x1a,0x0d,0x12,0x1c,0x25,0x00,0x02,0xff,0xfe,0x06,0x71,0x03,0x28,0x07,0xeb,0x00,0x29,0x00,0x39,0x00,0x21,0x40,0x0e,0x0f,0x2d,0x2d,0x20,0x08,0x14,0x1c,0x1c,0x26,0x35,0x14,0x14,0x03,0x26,0x00,0x2f,0x33,0x33,0x2f,0x33,0x11,0x33,0x2f,0x12,0x39,0x39,0x33,0x11, +0x33,0x30,0x31,0x03,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x33,0x15,0x14,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x22,0x27,0x25,0x32,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x02,0x0f,0x1b,0x0d,0x37,0x4b,0x2e,0x16,0x03,0x5b,0x04,0x0c, +0x18,0x15,0x0d,0x30,0x44,0x57,0x35,0x42,0x43,0x1d,0x41,0x67,0x4a,0x5d,0x4c,0x52,0x06,0x04,0x0b,0x22,0x35,0x4c,0x35,0x0a,0x13,0x0b,0x01,0xe4,0x08,0x16,0x0c,0x16,0x3f,0x3a,0x2a,0x23,0x1d,0x1f,0x34,0x29,0x1e,0x06,0xda,0x01,0x02,0x11,0x1f,0x2e,0x1e,0x14,0x1a,0x26,0x1a,0x0d,0x01,0x29,0x61,0x53,0x37,0x4c,0x46,0x28,0x51,0x42, +0x2a,0x3e,0x34,0x19,0x2b,0x1f,0x12,0x01,0x66,0x01,0x08,0x18,0x2f,0x27,0x17,0x24,0x1f,0x33,0x3f,0x00,0x00,0x02,0x00,0xdc,0x01,0x03,0x03,0xa8,0x04,0x9a,0x00,0x1e,0x00,0x39,0x00,0x1a,0xb1,0x03,0x1b,0xb8,0x04,0xfb,0xb3,0x36,0x1f,0x22,0x2c,0xb9,0x04,0xfb,0x00,0x0f,0x00,0x2f,0xed,0x2f,0xce,0x33,0xed,0x32,0x30,0x31,0x01,0x06, +0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x37,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x02,0x3f,0x20,0x4d,0x2e,0x25,0x47,0x39,0x23,0x24,0x3b,0x4c,0x51,0x4e,0x20,0x1e,0x4d,0x4e,0x4b,0x3b, +0x23,0x26,0x3c,0x4b,0x25,0x2d,0x4a,0x1b,0x28,0x2d,0x30,0x13,0x24,0x1c,0x10,0x35,0x4b,0x52,0x1d,0x1d,0x4e,0x48,0x32,0x0f,0x1a,0x25,0x15,0x28,0x31,0x02,0x01,0x68,0x38,0x2d,0x1c,0x46,0x78,0x5c,0x5a,0xa0,0x87,0x6c,0x4c,0x28,0x27,0x4a,0x69,0x83,0x9c,0x57,0x60,0x7e,0x4b,0x1e,0x2d,0x38,0xaf,0x3a,0x49,0x0f,0x28,0x45,0x37,0x62, +0xa9,0x7b,0x46,0x47,0x7b,0xa6,0x5e,0x35,0x46,0x2c,0x12,0x44,0x3f,0x00,0xff,0xff,0xfe,0xd4,0xfe,0x53,0x00,0xdf,0x00,0x0c,0x02,0x07,0x0a,0x51,0xff,0x15,0xf7,0xe0,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad,0x03,0x95,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x47,0x0f,0x54,0x01,0x91,0xfe,0xe7,0x2d,0x51,0x2d,0x42,0xff,0xff,0xff,0xba, +0xfd,0xc9,0x04,0xad,0x03,0x5e,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x7f,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x3c,0x03,0x8a,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x31,0xfd,0xce,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0xae,0x05,0xec,0x00,0x27,0x0f,0x50,0x02,0x59,0xfe,0xab,0x00,0x06, +0x0e,0x55,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x06,0x02,0x00,0x27,0x0f,0x50,0x00,0xf6,0xfe,0xab,0x00,0x06,0x0e,0x56,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x4b,0x06,0x02,0x00,0x27,0x0f,0x50,0x00,0x98,0xfe,0xab,0x00,0x06,0x08,0xed,0x00,0x00,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x04,0x12,0x00,0x27, +0x0f,0x50,0x02,0xad,0xfe,0xab,0x00,0x27,0x0a,0x19,0x02,0xc0,0xfb,0xb4,0x00,0x06,0x0e,0x6e,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0x3e,0x00,0x27,0x0f,0x50,0x00,0xa1,0xfe,0xab,0x00,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0a,0x19,0x00,0x65,0xfc,0xe0,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x8d,0x05,0x3e,0x00,0x27, +0x0a,0x19,0x00,0x65,0xfc,0xe0,0x00,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x04,0x12,0x00,0x27,0x0a,0x19,0x02,0xc0,0xfb,0xb4,0x00,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x05,0x3e,0x02,0x26, +0x09,0x3b,0x00,0x00,0x00,0x27,0x0a,0x19,0x00,0x65,0xfc,0xe0,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x8d,0x05,0x3e,0x00,0x27,0x0a,0x19,0x00,0x65,0xfc,0xe0,0x00,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x04,0x39,0x02,0x26, +0x0e,0x6e,0x00,0x00,0x00,0x07,0x14,0x7c,0x03,0xc6,0xfb,0xaa,0x00,0x04,0xff,0xba,0xff,0xf2,0x03,0xf1,0x05,0x17,0x00,0x21,0x00,0x45,0x00,0x49,0x00,0x4d,0x00,0x25,0x40,0x0c,0x4b,0x47,0x4a,0x49,0x34,0x22,0x3a,0x2d,0x2d,0x20,0x05,0x19,0xb8,0x04,0xfb,0xb1,0x06,0x12,0x00,0x2f,0x33,0xed,0x32,0x2f,0x33,0x2f,0xcd,0xde,0x32,0xde, +0x32,0xcd,0x32,0x30,0x31,0x01,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x3e,0x02,0x35,0x11,0x33,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36, +0x37,0x37,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x03,0x48,0x07,0x20,0x44,0x3e,0x16,0x32,0x4a,0x37,0x27,0x0f,0x04,0x1a,0x41,0x46,0x47,0x21,0xfe,0x1b,0x23,0x23,0x23,0x23,0x01,0xef,0x1d,0x43,0x38,0x25,0x9c,0xfd,0x2d,0x06,0x09,0x0e,0x16,0x0c,0x1b,0x2b,0x43,0x35,0x39,0x4f,0x31,0x16,0x5e,0x2f,0x54,0x73,0x45,0x3d,0x4f,0x38,0x2a, +0x17,0x1e,0x17,0x0a,0x07,0x97,0x73,0x47,0x72,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x10,0x1f,0x2e,0x1e,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0xbc,0x01,0x5b,0x1a,0x3c,0x21,0x24,0x31,0x15,0x0d,0x11,0x09,0x03,0x06,0x19,0x31,0x2c,0xb4,0xb8,0x53,0x5a,0x2a,0x07,0x02,0x0d,0x1b,0x19,0x22,0x50,0x36,0x25, +0x42,0x1f,0x3d,0x70,0x70,0x70,0x70,0x00,0x00,0x04,0xff,0xba,0xff,0xf2,0x03,0x48,0x05,0x17,0x00,0x14,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x21,0x40,0x0b,0x3e,0x3a,0x3d,0x3c,0x27,0x15,0x2d,0x20,0x20,0x14,0x0d,0xb9,0x04,0xfb,0x00,0x06,0x00,0x2f,0xed,0x2f,0x33,0x2f,0xcd,0xde,0x32,0xde,0x32,0xcd,0x32,0x30,0x31,0x01,0x11,0x14, +0x0e,0x02,0x23,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x3e,0x02,0x35,0x11,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x03,0x48,0x3d,0x63,0x80,0x43,0xfe,0x1b,0x23, +0x23,0x23,0x23,0x01,0xef,0x2e,0x47,0x30,0x18,0xfd,0xc9,0x06,0x09,0x0e,0x16,0x0c,0x1b,0x2b,0x43,0x35,0x39,0x4f,0x31,0x16,0x5e,0x2f,0x54,0x73,0x45,0x3d,0x4f,0x38,0x2a,0x17,0x1e,0x17,0x0a,0x07,0x97,0x73,0x47,0x72,0x03,0x0f,0xfe,0x3d,0x71,0x88,0x49,0x18,0x34,0x20,0x20,0x33,0x0f,0x2a,0x48,0x39,0x01,0xbc,0x01,0x5b,0x1a,0x3c, +0x21,0x24,0x31,0x15,0x0d,0x11,0x09,0x03,0x06,0x19,0x31,0x2c,0xb4,0xb8,0x53,0x5a,0x2a,0x07,0x02,0x0d,0x1b,0x19,0x22,0x50,0x36,0x25,0x42,0x1f,0x3d,0x70,0x70,0x70,0x70,0x00,0x00,0x03,0xfe,0x84,0x06,0x71,0x01,0x76,0x08,0x8f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x1d,0x40,0x0c,0x24,0x27,0x27,0x29,0x2b,0x2b,0x00,0x18,0x11,0x11, +0x0b,0x18,0x00,0x2f,0x33,0x33,0x2f,0x12,0x39,0x33,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x25,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0xfe,0xed,0x06,0x09,0x12,0x1a,0x10,0x22, +0x37,0x56,0x44,0x49,0x66,0x3f,0x1d,0x5e,0x38,0x65,0x8a,0x52,0x49,0x60,0x43,0x32,0x1b,0x24,0x1c,0x0a,0x07,0x01,0x46,0x73,0x73,0xb9,0x72,0x72,0x07,0xe2,0x1a,0x3c,0x21,0x24,0x31,0x15,0x0d,0x11,0x09,0x03,0x06,0x19,0x32,0x2b,0xef,0xf3,0x53,0x5a,0x2a,0x07,0x02,0x0d,0x1b,0x19,0x22,0x50,0x36,0x25,0x42,0x1f,0x3d,0x70,0x70,0x70, +0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x05,0x5f,0x00,0x27,0x0a,0x1f,0x00,0xa5,0xfc,0xd3,0x00,0x06,0x0b,0x0c,0x00,0x00,0xff,0xff,0x00,0x9a,0xfd,0xd3,0x06,0xae,0x04,0x24,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x27,0x0f,0x51,0x02,0x01,0xfd,0xd8,0x00,0x07,0x0a,0x1f,0x01,0xde,0xfb,0x98,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac, +0x05,0xb4,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0a,0x1f,0x00,0xa0,0xfd,0x28,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x74,0x05,0xb4,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0a,0x1f,0x00,0xa0,0xfd,0x28,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0xab,0xff,0xea,0x08,0x04, +0x03,0x62,0x02,0x06,0x0e,0xa5,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x03,0x62,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x0e,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x49,0x03,0x62,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x0e,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x06,0x03, +0x02,0xb7,0x02,0x02,0x0e,0x70,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x05,0x24,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x05,0x24,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x58, +0x01,0xc1,0x02,0x02,0x0e,0xcf,0x00,0x00,0x00,0x01,0x00,0xab,0x01,0xe1,0x01,0xac,0x02,0xe2,0x00,0x13,0x00,0x08,0xb1,0x0a,0x00,0x00,0x2f,0xcd,0x30,0x31,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0x2d,0x17,0x2e,0x25,0x18,0x18,0x25,0x2e,0x17,0x16,0x2d,0x25,0x17,0x17,0x25,0x2d,0x01, +0xe1,0x17,0x25,0x2d,0x16,0x16,0x2f,0x25,0x18,0x18,0x25,0x2f,0x16,0x16,0x2d,0x25,0x17,0x00,0x00,0x01,0x00,0xd4,0x01,0x18,0x01,0x84,0x03,0xe5,0x00,0x0d,0x00,0x08,0xb1,0x06,0x00,0x00,0x2f,0x2f,0x30,0x31,0x01,0x1e,0x03,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0x01,0x43,0x11,0x18,0x10,0x08,0x6b,0x07,0x10,0x1b,0x13,0x03,0xe5, +0x45,0x74,0x70,0x74,0x45,0xeb,0xe7,0x3b,0x6c,0x71,0x7f,0x4f,0x00,0x01,0x00,0x66,0x01,0x18,0x02,0x01,0x03,0xe5,0x00,0x0f,0x00,0x0a,0xb2,0x01,0x0e,0x07,0x00,0x2f,0x2f,0xcd,0x30,0x31,0x01,0x21,0x1e,0x03,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0x21,0x02,0x01,0xfe,0xf2,0x08,0x0d,0x09,0x05,0x6b,0x07,0x10,0x1b,0x13,0x01,0x9b, +0x03,0x5d,0x2b,0x51,0x53,0x59,0x32,0xeb,0xe7,0x3b,0x6c,0x71,0x7f,0x4f,0x00,0x01,0x00,0x1f,0x01,0x18,0x02,0x39,0x03,0xe5,0x00,0x37,0x00,0x14,0xb7,0x30,0x2b,0x25,0x06,0x16,0x1c,0x00,0x0d,0x00,0x2f,0x33,0x33,0xdc,0x32,0xcd,0x32,0x2f,0x30,0x31,0x13,0x16,0x16,0x17,0x16,0x32,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16, +0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0x8e,0x0c,0x12,0x07,0x04,0x09,0x04,0x28,0x1f,0x12,0x0b,0x6b,0x0d,0x0d,0x04,0x02,0x08,0x0e,0x07,0x28,0x1f,0x12,0x0b,0x6b,0x0d,0x0d, +0x18,0x2b,0x3c,0x23,0x18,0x33,0x1d,0x13,0x2f,0x18,0x10,0x05,0x05,0x6b,0x07,0x10,0x1b,0x13,0x03,0xe5,0x30,0x51,0x27,0x01,0x25,0x1b,0x19,0x38,0x18,0x20,0x37,0x1b,0x0e,0x19,0x0d,0x02,0x01,0x25,0x1b,0x19,0x38,0x18,0x21,0x35,0x1d,0x29,0x3f,0x2d,0x17,0x0b,0x0f,0x0d,0x0c,0x2d,0x5e,0x39,0xeb,0xe7,0x3b,0x6c,0x71,0x7f,0x4f,0x00, +0x00,0x01,0x00,0x7f,0x01,0x0b,0x01,0xd8,0x03,0xfa,0x00,0x2e,0x00,0x0c,0xb3,0x14,0x13,0x2e,0x00,0x00,0x2f,0xcd,0x2f,0xcd,0x30,0x31,0x01,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37, +0x01,0xd8,0x23,0x3f,0x21,0x27,0x4d,0x3d,0x25,0x3b,0x46,0x43,0x38,0x1b,0x3e,0x66,0x4b,0x39,0x44,0x23,0x0b,0x21,0x35,0x44,0x24,0x3f,0x4a,0x25,0x0a,0x16,0x1f,0x25,0x0f,0x14,0x20,0x1e,0x20,0x13,0x01,0x20,0x0b,0x0a,0x10,0x23,0x37,0x28,0x2f,0x6c,0x44,0x20,0x42,0x33,0x22,0x41,0x3a,0x35,0x17,0x8d,0x11,0x1b,0x14,0x0e,0x04,0x0a, +0x1b,0x1c,0x1d,0x0d,0x1d,0x35,0x4b,0x32,0x1d,0x07,0x0e,0x0f,0x07,0x02,0x01,0x04,0x06,0x05,0x00,0x02,0x00,0x4f,0x01,0x60,0x02,0x08,0x03,0x99,0x00,0x13,0x00,0x27,0x00,0x0c,0xb3,0x14,0x0a,0x1e,0x00,0x00,0x2f,0xcd,0x2f,0xcd,0x30,0x31,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x03,0x22, +0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x01,0x26,0x30,0x4f,0x39,0x1f,0x2c,0x42,0x4b,0x20,0x22,0x4f,0x43,0x2c,0x22,0x3c,0x53,0x30,0x11,0x26,0x20,0x16,0x12,0x1e,0x28,0x16,0x23,0x2d,0x1b,0x0a,0x18,0x24,0x29,0x01,0x60,0x1b,0x36,0x4f,0x35,0x54,0x84,0x5b,0x31,0x2b,0x54,0x7e,0x54,0x39,0x56,0x3b, +0x1e,0x01,0xb3,0x1f,0x38,0x4d,0x2e,0x1b,0x22,0x14,0x07,0x0f,0x19,0x1f,0x10,0x30,0x4e,0x37,0x1e,0x00,0x00,0x01,0x00,0x35,0x01,0x18,0x02,0x22,0x03,0xe5,0x00,0x12,0x00,0x0a,0xb2,0x12,0x07,0x0a,0x00,0x2f,0xcd,0x2f,0x30,0x31,0x01,0x2e,0x05,0x27,0x21,0x35,0x21,0x17,0x1e,0x05,0x17,0x01,0xb2,0x10,0x16,0x10,0x09,0x06,0x04,0x02, +0xfe,0xce,0x01,0x99,0x03,0x02,0x04,0x07,0x0a,0x11,0x18,0x11,0x01,0x18,0x43,0x66,0x56,0x4d,0x55,0x63,0x41,0x88,0x63,0x46,0x6c,0x5b,0x53,0x5b,0x6a,0x45,0x00,0x01,0x00,0x1b,0x01,0x12,0x02,0x3c,0x03,0xe5,0x00,0x13,0x00,0x0c,0xb3,0x03,0x10,0x00,0x0a,0x00,0x2f,0x33,0x2f,0x33,0x30,0x31,0x01,0x36,0x36,0x37,0x33,0x0e,0x03,0x07, +0x23,0x2e,0x03,0x27,0x33,0x16,0x16,0x17,0x01,0x2d,0x22,0x4e,0x2d,0x72,0x23,0x3d,0x38,0x32,0x19,0x5c,0x1a,0x34,0x38,0x3b,0x21,0x72,0x2d,0x4e,0x22,0x01,0xe5,0x87,0xfc,0x7d,0x60,0xb6,0xb1,0xb1,0x5b,0x60,0xb4,0xb1,0xb1,0x5d,0x7d,0xfb,0x88,0x00,0x00,0x01,0x00,0x1b,0x01,0x18,0x02,0x3c,0x03,0xea,0x00,0x13,0x00,0x0c,0xb3,0x13, +0x09,0x10,0x03,0x00,0x2f,0x33,0x2f,0x33,0x30,0x31,0x01,0x06,0x06,0x07,0x23,0x3e,0x03,0x37,0x33,0x1e,0x03,0x17,0x23,0x26,0x26,0x27,0x01,0x2a,0x22,0x4e,0x2d,0x72,0x23,0x3d,0x37,0x33,0x19,0x5c,0x1a,0x34,0x38,0x3b,0x21,0x72,0x2d,0x4e,0x22,0x03,0x18,0x88,0xfb,0x7d,0x60,0xb5,0xb1,0xb1,0x5b,0x5f,0xb4,0xb1,0xb1,0x5d,0x7d,0xfa, +0x89,0x00,0x00,0x02,0x00,0x35,0x01,0x18,0x02,0x23,0x03,0xeb,0x00,0x1c,0x00,0x2d,0x00,0x0e,0xb4,0x1c,0x05,0x28,0x20,0x0f,0x00,0x2f,0xdd,0xde,0xcd,0x2f,0x30,0x31,0x01,0x26,0x26,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03,0x17,0x03,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14, +0x16,0x33,0x32,0x36,0x37,0x26,0x26,0x01,0xb2,0x28,0x20,0x08,0x38,0x36,0x27,0x45,0x35,0x1e,0x1c,0x33,0x47,0x2c,0x2a,0x47,0x1f,0x10,0x13,0x0c,0x07,0x04,0x03,0x0a,0x15,0x23,0x1d,0xdd,0x0e,0x2d,0x1f,0x13,0x1e,0x14,0x0b,0x38,0x29,0x14,0x2e,0x18,0x03,0x07,0x01,0x18,0x5b,0xa5,0x40,0x16,0x19,0x31,0x4a,0x32,0x2f,0x53,0x3d,0x24, +0x28,0x2e,0x1a,0x30,0x36,0x3e,0x26,0x26,0x53,0x63,0x75,0x48,0x02,0x04,0x22,0x28,0x10,0x19,0x20,0x0f,0x26,0x25,0x08,0x07,0x1a,0x1f,0x00,0x01,0x00,0x53,0x01,0x18,0x02,0x05,0x03,0xf1,0x00,0x2b,0x00,0x10,0xb5,0x24,0x1c,0x15,0x0b,0x00,0x05,0x00,0x2f,0x33,0xdd,0xde,0xcd,0x2f,0x30,0x31,0x13,0x17,0x17,0x36,0x36,0x33,0x32,0x16, +0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x26,0x27,0x07,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0xc2,0x12,0x03,0x1a,0x58,0x3f,0x0c,0x23,0x16,0x22,0x25,0x1d,0x38,0x2b,0x1b,0x14,0x1f,0x27,0x14,0x2d,0x58,0x27,0x1f,0x5b,0x30,0x18,0x2e,0x14,0x02,0x02,0x02, +0x6b,0x07,0x10,0x1b,0x13,0x03,0xe5,0x52,0x01,0x2a,0x35,0x03,0x05,0x85,0x08,0x0a,0x13,0x1c,0x12,0x11,0x17,0x0f,0x07,0x1e,0x18,0x8a,0x14,0x1d,0x09,0x0b,0x01,0x1b,0x33,0x20,0xeb,0xe7,0x3b,0x6c,0x71,0x7f,0x4f,0x00,0x00,0x02,0x00,0x32,0x01,0x07,0x02,0x25,0x03,0xed,0x00,0x1a,0x00,0x35,0x00,0x12,0xb6,0x28,0x25,0x2c,0x03,0x17, +0x1b,0x0d,0x00,0x2f,0xcd,0x2f,0x33,0xdd,0x32,0xcc,0x30,0x31,0x01,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x33,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x01,0x29,0x14,0x34,0x1e,0x1a, +0x33,0x2a,0x1a,0x32,0x4c,0x58,0x27,0x26,0x57,0x49,0x30,0x1c,0x2c,0x36,0x1a,0x1d,0x32,0x12,0x04,0x15,0x32,0x2b,0x1c,0x08,0x0d,0x13,0x0b,0x17,0x18,0x02,0x5b,0x17,0x1b,0x0a,0x12,0x0e,0x08,0x1e,0x2d,0x34,0x01,0x4e,0x28,0x1f,0x17,0x3b,0x64,0x4e,0x6c,0xb1,0x7f,0x46,0x44,0x7b,0xae,0x69,0x50,0x69,0x3e,0x19,0x1f,0x28,0x02,0x1f, +0x35,0x5d,0x7f,0x4b,0x26,0x32,0x1d,0x0c,0x31,0x39,0x34,0x35,0x09,0x1b,0x31,0x27,0x4e,0x81,0x5d,0x34,0x00,0x01,0x00,0x59,0x01,0x03,0x01,0xff,0x03,0xec,0x00,0x27,0x00,0x19,0x40,0x0a,0x20,0x19,0x00,0x23,0x1f,0x1f,0x24,0x23,0x0f,0x08,0x00,0x2f,0xcd,0x2f,0x33,0x39,0x2f,0x12,0x39,0x33,0x33,0x30,0x31,0x01,0x26,0x26,0x35,0x34, +0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x36,0x36,0x37,0x15,0x06,0x06,0x07,0x27,0x36,0x36,0x37,0x01,0x18,0x48,0x46,0x24,0x3f,0x56,0x32,0x10,0x25,0x1a,0x1b,0x2a,0x12,0x18,0x2b,0x21,0x14,0x12,0x1c,0x25,0x14,0x12,0x1f,0x0f,0x14,0x2e,0x21,0x6a,0xc3,0x5a,0x1f, +0x28,0x62,0x36,0x02,0x70,0x13,0x59,0x45,0x31,0x4c,0x33,0x1b,0x03,0x04,0x88,0x04,0x04,0x07,0x12,0x1f,0x17,0x16,0x1e,0x13,0x09,0x06,0x05,0x0b,0x1a,0x10,0x9b,0x2e,0xb4,0x86,0x9c,0x3c,0x65,0x2d,0x00,0x01,0x00,0x2b,0x01,0x18,0x02,0x2d,0x03,0xec,0x00,0x28,0x00,0x0e,0xb4,0x09,0x0f,0x04,0x23,0x19,0x00,0x2f,0x2f,0x33,0xdd,0xcc, +0x30,0x31,0x01,0x36,0x36,0x37,0x33,0x0e,0x03,0x07,0x23,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x01,0x6c,0x0e,0x1e,0x13,0x82,0x1e,0x2b,0x21,0x18,0x0a,0x5b,0x09,0x19,0x20,0x27,0x16,0x17,0x13,0x09,0x03,0x08,0x08,0x6b,0x0b,0x0d,0x0b, +0x4c,0x3e,0x22,0x38,0x2c,0x22,0x0c,0x03,0x71,0x21,0x37,0x1c,0x2a,0x48,0x45,0x45,0x26,0x22,0x3c,0x2b,0x19,0x17,0x12,0x11,0x2c,0x14,0x2d,0x7c,0x58,0xd2,0xce,0x60,0x7a,0x51,0x36,0x1b,0x45,0x45,0x15,0x23,0x2c,0x17,0x00,0x01,0x00,0x4d,0x01,0x12,0x02,0x0a,0x03,0xe5,0x00,0x0e,0x00,0x0c,0xb3,0x09,0x05,0x07,0x00,0x00,0x2f,0x2f, +0xcd,0x32,0x30,0x31,0x01,0x0e,0x03,0x07,0x21,0x15,0x21,0x35,0x3e,0x03,0x37,0x01,0x5d,0x06,0x15,0x1e,0x26,0x18,0x01,0x24,0xfe,0x43,0x25,0x39,0x29,0x19,0x06,0x03,0xe5,0x79,0xb1,0x87,0x69,0x31,0x88,0x47,0x43,0x7f,0x94,0xb9,0x7d,0x00,0x00,0x06,0x00,0xa1,0xff,0xf2,0x0b,0x4d,0x08,0x36,0x00,0x64,0x00,0x78,0x00,0x86,0x00,0xb4, +0x00,0xb8,0x00,0xbc,0x00,0x54,0x40,0x0b,0xb8,0xb6,0xa0,0x87,0x94,0x9a,0x8d,0xa6,0xad,0x4d,0x34,0xb8,0x04,0xfb,0x40,0x0f,0x3e,0x82,0x40,0x7e,0x82,0x7e,0x82,0x40,0x40,0x5a,0x4d,0x76,0x53,0x46,0x61,0xb8,0x04,0xfb,0xb5,0x2c,0x25,0x1a,0xbc,0xba,0x6c,0xb9,0x04,0xfb,0x00,0x0a,0x00,0x2f,0xed,0xde,0xcd,0x2f,0x33,0x33,0xed,0x32, +0x32,0x32,0x2f,0x33,0x33,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0xed,0x10,0xde,0x32,0xdd,0x32,0xdc,0x32,0x32,0xde,0xcd,0x30,0x31,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x07,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x27, +0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x25,0x14,0x1e,0x02,0x33, +0x32,0x36,0x37,0x11,0x0e,0x03,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x34,0x27,0x33,0x06,0x14,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x25,0x23,0x11,0x33,0x01,0x23,0x35,0x33,0x09,0xa8,0x4a,0x61,0x38, +0x16,0x31,0x55,0x75,0x44,0x48,0x79,0x36,0x14,0x26,0x1d,0x11,0x39,0x61,0x82,0x90,0x98,0x47,0x8d,0x3b,0x5c,0x46,0x34,0x13,0x04,0x19,0x40,0x49,0x4f,0x28,0x68,0x75,0x1c,0x04,0x31,0x91,0x49,0x38,0x64,0x50,0x3a,0x0e,0x2b,0x62,0x2a,0x45,0x7f,0x62,0x3a,0x58,0x92,0xbc,0x65,0x9c,0x0e,0x26,0x44,0x36,0x1c,0x41,0x36,0x24,0x9c,0x0c, +0x26,0x46,0x39,0x25,0x42,0x31,0x1c,0x9c,0x20,0x3c,0x57,0x38,0x96,0x30,0x75,0x36,0x01,0x0a,0x10,0x1b,0x27,0x2d,0x32,0x1a,0x1d,0x38,0x2c,0x1c,0x19,0x43,0x73,0x5a,0x21,0x1e,0xf6,0x87,0x23,0x3c,0x4e,0x2a,0x27,0x55,0x22,0x4d,0x87,0x66,0x3b,0x02,0xf8,0x03,0x01,0x26,0x2d,0x2d,0x22,0x01,0x5f,0x01,0x22,0x2d,0x30,0x24,0x03,0x5f, +0x01,0x01,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x03,0x01,0x6b,0x74,0x74,0x04,0xfb,0xb9,0xb9,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x53,0x57,0x21,0x4a,0x52,0x5a,0x30,0x60,0x82,0x53,0x2d,0x15,0x06,0x02,0x11,0x20,0x2e,0x1c,0x23,0x2f,0x1d,0x0c,0x40,0x3b,0x3f,0x3c,0x19,0x35,0x52,0x3a, +0x11,0x0c,0x20,0x45,0x6c,0x4d,0x5e,0x92,0x68,0x42,0x0f,0x61,0xfd,0xb5,0x3d,0x5b,0x3d,0x1e,0x13,0x2c,0x47,0x34,0x03,0x95,0xfc,0xa4,0x3b,0x5a,0x3e,0x20,0x16,0x2d,0x46,0x31,0x04,0x2b,0xfc,0x0d,0x45,0x5c,0x39,0x18,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3f,0x43,0x49,0x2a,0x18,0x4d,0xab,0x26, +0x35,0x21,0x0e,0x0a,0x0b,0x01,0x76,0x0e,0x2f,0x41,0x52,0x04,0x80,0x1c,0x18,0x09,0x33,0x3f,0x3d,0x3c,0x0d,0x1c,0x0d,0x0e,0x1c,0x0b,0x3d,0x3d,0x3e,0x37,0x1f,0x1b,0x0c,0x18,0x08,0x6d,0x76,0x1f,0x20,0x20,0x1f,0x22,0x3a,0x4e,0x2c,0x21,0x18,0x53,0x01,0x56,0xfc,0x39,0xb5,0x00,0x00,0x04,0x00,0xa1,0xff,0xf2,0x0b,0x4d,0x05,0x7e, +0x00,0x64,0x00,0x78,0x00,0x86,0x00,0x8a,0x00,0x3b,0xb9,0x00,0x34,0x04,0xfb,0x40,0x0d,0x82,0x3e,0x40,0x7e,0x7e,0x40,0x40,0x5a,0x4d,0x76,0x53,0x46,0x60,0xb8,0x04,0xfb,0xb5,0x2c,0x25,0x19,0x8a,0x88,0x6c,0xb9,0x04,0xfb,0x00,0x0a,0x00,0x2f,0xed,0xde,0xcd,0x2f,0x33,0x33,0xed,0x32,0x32,0x32,0x2f,0x33,0x33,0x2f,0x39,0x2f,0x12, +0x39,0x39,0xed,0x30,0x31,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x07,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02, +0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x25,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x11,0x0e,0x03,0x01,0x23,0x35,0x33,0x09,0xa8,0x4a,0x61,0x38,0x16,0x31,0x55,0x75,0x44,0x48, +0x79,0x36,0x14,0x26,0x1d,0x11,0x39,0x61,0x82,0x90,0x98,0x47,0x8d,0x3b,0x5c,0x46,0x34,0x13,0x04,0x19,0x40,0x49,0x4f,0x28,0x68,0x75,0x1c,0x04,0x31,0x91,0x49,0x38,0x64,0x50,0x3a,0x0e,0x2b,0x62,0x2a,0x45,0x7f,0x62,0x3a,0x58,0x92,0xbc,0x65,0x9c,0x0e,0x26,0x44,0x36,0x1c,0x41,0x36,0x24,0x9c,0x0c,0x26,0x46,0x39,0x25,0x42,0x31, +0x1c,0x9c,0x20,0x3c,0x57,0x38,0x96,0x30,0x75,0x36,0x01,0x0a,0x10,0x1b,0x27,0x2d,0x32,0x1a,0x1d,0x38,0x2c,0x1c,0x19,0x43,0x73,0x5a,0x21,0x1e,0xf6,0x87,0x23,0x3c,0x4e,0x2a,0x27,0x55,0x22,0x4d,0x87,0x66,0x3b,0x08,0xfe,0xb9,0xb9,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x53,0x57,0x21,0x4a,0x52,0x5a,0x30,0x60,0x82, +0x53,0x2d,0x15,0x06,0x02,0x11,0x20,0x2e,0x1c,0x23,0x2f,0x1d,0x0c,0x40,0x3b,0x3f,0x3c,0x19,0x35,0x52,0x3a,0x11,0x0c,0x20,0x45,0x6c,0x4d,0x5e,0x92,0x68,0x42,0x0f,0x61,0xfd,0xb5,0x3d,0x5b,0x3d,0x1e,0x13,0x2c,0x47,0x34,0x03,0x95,0xfc,0xa4,0x3b,0x5a,0x3e,0x20,0x16,0x2d,0x46,0x31,0x04,0x2b,0xfc,0x0d,0x45,0x5c,0x39,0x18,0x01, +0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3f,0x43,0x49,0x2a,0x18,0x4d,0xab,0x26,0x35,0x21,0x0e,0x0a,0x0b,0x01,0x76,0x0e,0x2f,0x41,0x52,0x02,0x62,0xb5,0x00,0x00,0x01,0x00,0x73,0xff,0xf2,0x08,0xfe,0x00,0xc1,0x00,0x0e,0x00,0x0c,0xba,0x00,0x0e,0x04,0xfb,0x00,0x01,0x00,0x2f,0xed,0x30,0x31,0x05,0x21, +0x22,0x2e,0x02,0x27,0x27,0x37,0x1e,0x03,0x33,0x21,0x08,0xfe,0xf9,0xb1,0x4b,0x99,0x8f,0x7d,0x2e,0x1e,0x05,0x36,0x8d,0x9f,0xa9,0x50,0x06,0x2b,0x0e,0x07,0x0f,0x15,0x0e,0x91,0x05,0x0a,0x0f,0x0a,0x05,0x00,0x00,0x01,0x00,0x00,0xff,0xf2,0x05,0x2f,0x00,0x99,0x00,0x07,0x00,0x0c,0xba,0x00,0x00,0x04,0xfb,0x00,0x06,0x00,0x2f,0xed, +0x30,0x31,0x35,0x21,0x17,0x07,0x06,0x06,0x23,0x21,0x05,0x2a,0x05,0x1a,0x56,0xb9,0x6e,0xfc,0x68,0x99,0x05,0x84,0x0d,0x11,0x00,0x01,0x00,0x00,0xff,0xf2,0x05,0x2f,0x00,0x99,0x00,0x07,0x00,0x0c,0xba,0x00,0x00,0x04,0xfb,0x00,0x06,0x00,0x2f,0xed,0x30,0x31,0x35,0x21,0x17,0x07,0x06,0x06,0x23,0x21,0x05,0x2a,0x05,0x1a,0x56,0xb9, +0x6e,0xfc,0x68,0x99,0x05,0x84,0x0d,0x11,0xff,0xff,0x00,0x73,0xff,0xf2,0x08,0xfe,0x00,0xc1,0x02,0x06,0x14,0x99,0x00,0x00,0xff,0xff,0x00,0x73,0xff,0xf2,0x08,0xfe,0x00,0xc1,0x02,0x06,0x14,0x99,0x00,0x00,0x00,0x01,0x00,0xf2,0x02,0x84,0x02,0x5a,0x03,0xed,0x00,0x13,0x00,0x08,0xb1,0x0a,0x00,0x00,0x2f,0xcd,0x30,0x31,0x01,0x22, +0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0xa8,0x20,0x40,0x35,0x21,0x21,0x35,0x40,0x20,0x1f,0x40,0x33,0x20,0x20,0x33,0x40,0x02,0x84,0x20,0x34,0x3f,0x20,0x1f,0x41,0x34,0x22,0x21,0x35,0x41,0x1f,0x20,0x3f,0x34,0x20,0x00,0x00,0x01,0x01,0x2f,0x01,0x4a,0x02,0x1d,0x05,0x7d,0x00,0x0d,0x00,0x08, +0xb1,0x06,0x00,0x00,0x2f,0x2f,0x30,0x31,0x01,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x01,0xb7,0x19,0x27,0x19,0x0d,0x84,0x0c,0x19,0x29,0x1c,0x05,0x7d,0x6c,0xb4,0xb1,0xbc,0x73,0xfe,0xcd,0x01,0x2d,0x67,0xb5,0xb5,0xc1,0x74,0x00,0x01,0x00,0x76,0x01,0x4a,0x02,0xd6,0x05,0x7d,0x00,0x0f,0x00,0x0a,0xb2,0x01,0x0f,0x08, +0x00,0x2f,0x2f,0xcd,0x30,0x31,0x01,0x15,0x21,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x02,0xd6,0xfe,0x4a,0x10,0x19,0x12,0x09,0x84,0x0c,0x19,0x29,0x1c,0x05,0x7d,0x97,0x4f,0x9b,0xa0,0xa9,0x5d,0xfe,0xf4,0x01,0x06,0x75,0xc5,0xbc,0xc3,0x74,0x00,0x00,0x01,0x00,0x25,0x01,0x4a,0x03,0x28,0x05,0x7d,0x00,0x3c,0x00,0x14, +0xb7,0x35,0x2c,0x26,0x06,0x15,0x1d,0x00,0x0f,0x00,0x2f,0x33,0x33,0xdc,0x32,0xcd,0x32,0x2f,0x30,0x31,0x13,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26, +0x27,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0xac,0x11,0x1b,0x0b,0x0c,0x17,0x0b,0x1f,0x2c,0x1b,0x0c,0x12,0x0f,0x84,0x1f,0x12,0x24,0x1e,0x1f,0x2c,0x1b,0x0c,0x12,0x0f,0x84,0x0e,0x10,0x1d,0x39,0x54,0x37,0x23,0x4c,0x2d,0x1b,0x42,0x25,0x0c,0x19,0x0d,0x06,0x0a,0x07,0x04,0x83,0x10,0x1c,0x27,0x17,0x05,0x7d,0x45,0x79, +0x3a,0x03,0x02,0x13,0x21,0x2b,0x19,0x21,0x44,0x20,0x4b,0x45,0x36,0x2d,0x0a,0x13,0x21,0x2b,0x19,0x21,0x44,0x20,0x21,0x52,0x27,0x2c,0x51,0x3e,0x24,0x11,0x16,0x14,0x12,0x02,0x02,0x28,0x53,0x62,0x77,0x4c,0xfe,0xe1,0x01,0x1a,0x6c,0xcb,0xc4,0xbf,0x5f,0x00,0x00,0x01,0x00,0xab,0x01,0x38,0x02,0xa1,0x05,0x97,0x00,0x2f,0x00,0x0c, +0xb3,0x25,0x24,0x0a,0x10,0x00,0x2f,0xcd,0x2f,0xcd,0x30,0x31,0x01,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x02,0x3f,0x5f,0x6c,0x36,0x0e,0x25,0x36,0x3d,0x18,0x39,0x58,0x30,0x62,0x65, +0x37,0x6d,0x56,0x35,0x15,0x30,0x50,0x3c,0x39,0x4d,0x2e,0x14,0x24,0x55,0x8e,0x6b,0x56,0x66,0x34,0x0f,0x20,0x43,0x6a,0x4b,0x03,0x91,0x55,0x7b,0x56,0x33,0x0c,0x1c,0x22,0x12,0x06,0x0c,0x0d,0x96,0x21,0x17,0x31,0x4e,0x38,0x20,0x4d,0x5b,0x68,0x3a,0x1b,0x31,0x34,0x39,0x22,0x2d,0x58,0x55,0x4f,0x23,0x9f,0x1a,0x31,0x29,0x21,0x0a, +0x11,0x22,0x28,0x33,0x22,0x00,0x00,0x02,0x00,0x62,0x01,0xbc,0x02,0xeb,0x04,0xf3,0x00,0x13,0x00,0x27,0x00,0x0c,0xb3,0x1e,0x0a,0x14,0x00,0x00,0x2f,0xcd,0x2f,0xcd,0x30,0x31,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x17,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34, +0x2e,0x02,0x01,0xa1,0x35,0x74,0x62,0x3f,0x2f,0x57,0x7c,0x4c,0x4a,0x75,0x51,0x2b,0x40,0x60,0x6f,0x2e,0x1c,0x41,0x37,0x25,0x1e,0x33,0x43,0x26,0x36,0x4c,0x30,0x15,0x29,0x3d,0x46,0x04,0xf3,0x40,0x7c,0xb8,0x78,0x4d,0x7a,0x56,0x2e,0x29,0x4e,0x70,0x47,0x78,0xc1,0x87,0x49,0x94,0x35,0x5e,0x84,0x4f,0x2e,0x3f,0x26,0x11,0x18,0x2c, +0x3c,0x23,0x54,0x85,0x5d,0x31,0x00,0x01,0x00,0x42,0x01,0x4a,0x03,0x0a,0x05,0x7d,0x00,0x13,0x00,0x0a,0xb2,0x13,0x08,0x0a,0x00,0x2f,0xcd,0x2f,0x30,0x31,0x01,0x2e,0x05,0x27,0x27,0x21,0x35,0x21,0x17,0x1e,0x05,0x17,0x02,0x80,0x17,0x21,0x17,0x0e,0x0a,0x06,0x03,0x03,0xfe,0x35,0x02,0x4a,0x05,0x03,0x07,0x0a,0x0f,0x19,0x23,0x1a, +0x01,0x4a,0x60,0x96,0x7e,0x70,0x79,0x8a,0x59,0x5c,0x97,0x94,0x68,0xa1,0x89,0x7d,0x88,0xa1,0x67,0x00,0x00,0x01,0x00,0x1c,0x01,0x47,0x03,0x30,0x05,0x7d,0x00,0x13,0x00,0x0c,0xb3,0x03,0x0e,0x07,0x00,0x00,0x2f,0x32,0x2f,0x33,0x30,0x31,0x13,0x16,0x12,0x17,0x33,0x36,0x12,0x37,0x33,0x06,0x0a,0x02,0x07,0x23,0x26,0x0a,0x02,0x27, +0xa5,0x49,0x7d,0x39,0x04,0x3a,0x7d,0x49,0x88,0x32,0x59,0x53,0x4c,0x24,0x78,0x27,0x4e,0x53,0x57,0x2f,0x05,0x7d,0xc7,0xfe,0x64,0xdf,0xdf,0x01,0x9d,0xc6,0x89,0xfe,0xf5,0xfe,0xf5,0xfe,0xf3,0x8a,0x91,0x01,0x12,0x01,0x0b,0x01,0x05,0x83,0x00,0x01,0x00,0x1d,0x01,0x4a,0x03,0x30,0x05,0x80,0x00,0x13,0x00,0x0c,0xb3,0x03,0x0d,0x00, +0x07,0x00,0x2f,0x33,0x2f,0x33,0x30,0x31,0x01,0x26,0x02,0x27,0x23,0x06,0x02,0x07,0x23,0x36,0x1a,0x02,0x37,0x33,0x16,0x1a,0x02,0x17,0x02,0xa8,0x4a,0x7d,0x38,0x05,0x39,0x7e,0x48,0x88,0x31,0x59,0x52,0x4d,0x25,0x78,0x26,0x4e,0x53,0x57,0x2f,0x01,0x4a,0xc7,0x01,0x9b,0xe0,0xe0,0xfe,0x64,0xc6,0x88,0x01,0x0b,0x01,0x0b,0x01,0x0e, +0x8a,0x90,0xfe,0xed,0xfe,0xf6,0xfe,0xfa,0x83,0x00,0x00,0x02,0x00,0x3c,0x01,0x4a,0x03,0x10,0x05,0x87,0x00,0x1e,0x00,0x33,0x00,0x10,0xb5,0x07,0x31,0x31,0x1e,0x27,0x11,0x00,0x2f,0xcd,0x2f,0x39,0x2f,0xcd,0x30,0x31,0x01,0x2e,0x03,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03, +0x17,0x01,0x2e,0x03,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x02,0x88,0x1f,0x28,0x1b,0x10,0x06,0x5d,0x55,0x3b,0x6a,0x4f,0x2e,0x27,0x4a,0x6a,0x43,0x41,0x6a,0x2d,0x18,0x1d,0x11,0x09,0x05,0x05,0x0f,0x1e,0x31,0x27,0xfe,0xf3,0x03,0x05,0x07,0x09,0x07,0x19,0x4d,0x33,0x1f,0x35,0x26,0x15,0x1c,0x30, +0x42,0x27,0x22,0x4a,0x01,0x4a,0x47,0x8a,0x81,0x77,0x34,0x29,0x26,0x4a,0x6c,0x46,0x3f,0x76,0x5b,0x37,0x3b,0x47,0x26,0x4b,0x51,0x5c,0x38,0x3b,0x85,0x97,0xab,0x63,0x02,0x86,0x1b,0x2b,0x25,0x21,0x11,0x3d,0x44,0x1b,0x2d,0x3b,0x20,0x25,0x3a,0x27,0x14,0x10,0x00,0x01,0x00,0x69,0x01,0x4a,0x02,0xe4,0x05,0x92,0x00,0x31,0x00,0x12, +0xb6,0x22,0x17,0x17,0x2a,0x0d,0x00,0x07,0x00,0x2f,0x33,0xcd,0x2f,0x39,0x2f,0xcd,0x30,0x31,0x13,0x17,0x33,0x3e,0x03,0x33,0x32,0x16,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x26,0x27,0x07,0x16,0x16,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0xf0,0x21,0x04,0x0d, +0x32,0x46,0x59,0x35,0x16,0x36,0x1d,0x33,0x36,0x30,0x58,0x42,0x28,0x1e,0x31,0x3c,0x1e,0x24,0x48,0x43,0x3d,0x19,0x12,0x37,0x45,0x4d,0x27,0x2a,0x53,0x1d,0x03,0x0a,0x07,0x83,0x0b,0x19,0x28,0x1e,0x05,0x7d,0x92,0x21,0x3d,0x2e,0x1b,0x05,0x08,0x95,0x0c,0x12,0x22,0x30,0x1d,0x1a,0x25,0x18,0x0b,0x0e,0x17,0x1e,0x10,0x9a,0x0e,0x1c, +0x16,0x0f,0x14,0x17,0x02,0x48,0xac,0x53,0xfe,0xe5,0x01,0x16,0x6a,0xba,0xba,0xc8,0x77,0x00,0x00,0x02,0x00,0x3c,0x01,0x36,0x03,0x10,0x05,0x81,0x00,0x1e,0x00,0x3c,0x00,0x12,0xb6,0x3c,0x3a,0x24,0x03,0x1b,0x30,0x0f,0x00,0x2f,0xcd,0x2f,0x33,0xdd,0x32,0xcc,0x30,0x31,0x01,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x33, +0x32,0x1e,0x04,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x01,0xa3,0x20,0x4c,0x2e,0x25,0x49,0x3b,0x24,0x22,0x38,0x4b,0x52,0x53,0x26,0x25,0x51,0x4f,0x48,0x37,0x20,0x27,0x3d,0x4d,0x26,0x2c,0x49,0x1c,0x36,0x0a, +0x15,0x21,0x16,0x23,0x25,0x10,0x02,0x16,0x25,0x30,0x35,0x35,0x18,0x23,0x50,0x44,0x2c,0x0e,0x18,0x21,0x13,0x50,0x06,0x01,0xa3,0x3c,0x31,0x22,0x55,0x91,0x70,0x6b,0xbe,0xa1,0x80,0x59,0x30,0x2e,0x57,0x7d,0x9c,0xba,0x68,0x74,0x98,0x5a,0x25,0x31,0x3c,0xcb,0x1f,0x37,0x29,0x18,0x33,0x47,0x48,0x15,0x53,0x96,0x81,0x68,0x49,0x28, +0x59,0x9a,0xd2,0x78,0x41,0x57,0x34,0x16,0x9c,0x00,0x00,0x01,0x00,0x6f,0x01,0x3a,0x02,0xdd,0x05,0x86,0x00,0x25,0x00,0x1b,0x40,0x0c,0x20,0x00,0x07,0x03,0x03,0x25,0x25,0x03,0x16,0x10,0x04,0x03,0x00,0x2f,0x33,0x2f,0xcd,0x11,0x39,0x2f,0x12,0x17,0x39,0x30,0x31,0x01,0x06,0x00,0x07,0x27,0x36,0x36,0x37,0x27,0x26,0x26,0x35,0x34, +0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x36,0x36,0x37,0x02,0xdd,0xa7,0xfe,0xde,0x83,0x22,0x43,0xa6,0x5e,0x01,0x6e,0x76,0x30,0x57,0x79,0x4a,0x2d,0x3e,0x1d,0x3b,0x1a,0x27,0x46,0x33,0x1e,0x19,0x2c,0x3b,0x21,0x34,0x35,0x1d,0x3c,0x24,0x03,0x78,0x4e,0xfe,0xe3,0xd3,0xaf, +0x6d,0xbe,0x4c,0x03,0x16,0x88,0x69,0x42,0x69,0x4a,0x27,0x09,0x99,0x05,0x05,0x0f,0x22,0x37,0x28,0x25,0x36,0x24,0x11,0x13,0x11,0x22,0x12,0x00,0x00,0x01,0x00,0x41,0x01,0x4a,0x03,0x0b,0x05,0x88,0x00,0x29,0x00,0x0e,0xb4,0x04,0x09,0x29,0x20,0x16,0x00,0x2f,0x2f,0x33,0xdd,0xce,0x30,0x31,0x01,0x06,0x06,0x07,0x23,0x2e,0x03,0x23, +0x22,0x0e,0x02,0x15,0x14,0x1e,0x04,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x03,0x0b,0x42,0x54,0x1c,0x7a,0x0d,0x29,0x35,0x40,0x25,0x15,0x1a,0x0f,0x06,0x08,0x0c,0x0d,0x0c,0x08,0x83,0x13,0x16,0x13,0x67,0x5e,0x34,0x56,0x44,0x30,0x0e,0x04,0x14,0x30,0x1d,0x05,0x7d,0x61, +0xc2,0x71,0x36,0x60,0x46,0x29,0x0b,0x13,0x19,0x0d,0x11,0x2b,0x3b,0x52,0x73,0x99,0x65,0xfe,0xda,0x01,0x10,0x93,0xd0,0x8e,0x5b,0x1e,0x5b,0x69,0x29,0x3f,0x4e,0x25,0x3c,0x65,0x2f,0x00,0x00,0x01,0x00,0x6b,0x01,0x47,0x02,0xe1,0x05,0x7d,0x00,0x12,0x00,0x0c,0xb3,0x00,0x0f,0x11,0x08,0x00,0x2f,0x2f,0xcd,0x32,0x30,0x31,0x13,0x3e, +0x05,0x37,0x33,0x0e,0x05,0x07,0x21,0x15,0x21,0x6b,0x25,0x3f,0x33,0x28,0x1e,0x13,0x05,0x83,0x06,0x12,0x19,0x21,0x27,0x2f,0x1a,0x01,0xc0,0xfd,0x8a,0x01,0x8b,0x45,0x83,0x89,0x98,0xb2,0xd5,0x82,0x82,0xd1,0xaa,0x8a,0x77,0x6b,0x36,0x97,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x05,0x5f,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07, +0x0a,0x1f,0x01,0x09,0xfc,0xd3,0xff,0xff,0x00,0x9a,0xfd,0xd3,0x05,0x74,0x04,0x24,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x27,0x0a,0x1f,0x02,0x00,0xfb,0x98,0x00,0x07,0x0f,0x51,0x02,0x01,0xfd,0xd8,0x00,0x01,0x00,0x55,0xff,0xe8,0x04,0x79,0x05,0x9a,0x00,0x2d,0x00,0x14,0x40,0x09,0x0e,0x0e,0x05,0x24,0x03,0x16,0x91,0x05,0x13,0x00, +0x3f,0xed,0x3f,0x12,0x39,0x2f,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x27,0x33,0x1e,0x03,0x17,0x1e,0x03,0x04,0x79,0x4e,0x8f,0xc7,0x78,0x78,0xc1,0x87,0x48,0x0c,0x10,0xb4,0x0e,0x12,0x2c,0x58,0x83,0x58,0xb1, +0xb4,0x1e,0x35,0x49,0x2b,0x2f,0x57,0x44,0x2c,0x04,0xa8,0x03,0x22,0x38,0x4c,0x2e,0x2b,0x57,0x45,0x2b,0x01,0xdc,0x7b,0xbb,0x7e,0x40,0x43,0x75,0x9e,0x5b,0x27,0x52,0x2a,0x21,0x50,0x33,0x3e,0x67,0x4b,0x29,0xa9,0xae,0x40,0x6f,0x62,0x56,0x28,0x2c,0x67,0x85,0xab,0x72,0x60,0x89,0x69,0x57,0x2e,0x2c,0x60,0x74,0x8e,0x00,0x00,0x02, +0x00,0x78,0xff,0xe8,0x04,0xae,0x05,0x9a,0x00,0x2f,0x00,0x41,0x00,0x1c,0x40,0x0e,0x3d,0x91,0x26,0x13,0x12,0x00,0x10,0x03,0x03,0x1c,0x35,0x91,0x00,0x10,0x00,0x3f,0xed,0x39,0x39,0x3f,0x12,0x39,0x3f,0xed,0x30,0x31,0x01,0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x2e,0x06,0x35,0x35,0x33,0x15,0x14,0x1e,0x04,0x15,0x14,0x06,0x07,0x1e, +0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x02,0x9f,0x0e,0x1b,0x0e,0x01,0x01,0x20,0x35,0x44,0x46,0x44,0x35,0x20,0xa4,0x38,0x55,0x62,0x55,0x38,0x04,0x02,0x4d,0x74,0x4d,0x26,0x4f,0x90,0xc9,0x7a,0x7a,0xc5,0x8a,0x4b,0x43,0x88, +0xcf,0x01,0xec,0x33,0x5b,0x80,0x4c,0xb8,0xc4,0x32,0x5f,0x89,0x58,0x58,0x85,0x5a,0x2d,0x04,0x17,0x01,0x01,0x05,0x0a,0x05,0x18,0x1e,0x16,0x11,0x17,0x20,0x34,0x4b,0x36,0x28,0x28,0x1f,0x23,0x1d,0x1d,0x33,0x4f,0x40,0x0b,0x27,0x0f,0x1c,0x60,0x80,0x9c,0x57,0x7e,0xc8,0x8c,0x4a,0x4b,0x8a,0xc1,0x76,0x72,0xc8,0x94,0x55,0xfd,0xe7, +0x60,0x91,0x60,0x31,0xcb,0xbb,0x59,0x8d,0x61,0x34,0x34,0x62,0x8f,0x00,0x00,0x02,0x00,0x78,0xff,0xe8,0x04,0xae,0x05,0xae,0x00,0x2f,0x00,0x41,0x00,0x21,0x40,0x11,0x3d,0x91,0x26,0x13,0x10,0x10,0x00,0x0b,0x91,0x16,0x04,0x03,0x1e,0x35,0x91,0x00,0x10,0x00,0x3f,0xed,0x39,0x39,0x3f,0xed,0x12,0x39,0x2f,0x3f,0xed,0x30,0x31,0x01, +0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x02,0x9f,0x26,0x46,0x21,0x07,0x08,0x1a,0x2f, +0x40,0x27,0x2f,0x47,0x2f,0x17,0xaf,0x35,0x60,0x86,0x50,0x51,0x82,0x5b,0x32,0x14,0x0c,0x73,0x70,0x4f,0x90,0xc9,0x7a,0x7a,0xc5,0x8a,0x4b,0x43,0x88,0xcf,0x01,0xec,0x33,0x5b,0x80,0x4c,0xb8,0xc4,0x32,0x5f,0x89,0x58,0x58,0x85,0x5a,0x2d,0x04,0x17,0x07,0x07,0x17,0x35,0x22,0x29,0x3d,0x28,0x13,0x17,0x27,0x36,0x1f,0x43,0x6e,0x4e, +0x2a,0x2a,0x50,0x71,0x46,0x39,0x58,0x1f,0x45,0xed,0x97,0x7e,0xc8,0x8c,0x4a,0x4b,0x8a,0xc1,0x76,0x72,0xc8,0x94,0x55,0xfd,0xe7,0x60,0x91,0x60,0x31,0xcb,0xbb,0x59,0x8d,0x61,0x34,0x34,0x62,0x8f,0x00,0x02,0x00,0x82,0xff,0xe0,0x06,0xac,0x05,0xaf,0x00,0x42,0x00,0x52,0x00,0x34,0x40,0x1b,0x1f,0x2e,0x2a,0x92,0x33,0x50,0x91,0x0a, +0x33,0x0a,0x33,0x0a,0x25,0x15,0x91,0x3d,0x04,0x24,0x25,0x13,0x12,0x40,0x40,0x48,0x91,0x00,0x04,0x00,0x3f,0xed,0x39,0x11,0x33,0x3f,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x39,0x30,0x31,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x26,0x26,0x23,0x22,0x0e,0x02, +0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x17,0x07,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x3e,0x03,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xdf,0x6a,0xab,0x78,0x40,0x40,0x78,0xab,0x6a,0x6a,0xb1,0x7f,0x47,0x29,0x26,0x38,0x6d,0x31, +0x4e,0x79,0x53,0x2b,0x59,0x94,0xc0,0x67,0x57,0xa4,0x9b,0x91,0x45,0x5d,0x44,0xbb,0xd2,0xda,0x63,0x78,0xc1,0x3c,0x1b,0x46,0x4d,0x50,0x25,0x52,0x89,0x62,0x36,0x48,0x85,0xbb,0x73,0x55,0x9a,0x47,0x3e,0x97,0x01,0x74,0x21,0x46,0x6c,0x4a,0x4b,0x72,0x4d,0x27,0x9b,0x96,0x95,0x88,0x05,0xaf,0x42,0x7d,0xb6,0x75,0x75,0xb6,0x7d,0x40, +0x41,0x7e,0xb6,0x75,0x56,0x90,0x39,0x22,0x11,0x38,0x67,0x93,0x5a,0x82,0xb6,0x7f,0x54,0x20,0x1b,0x35,0x3e,0x4a,0x2f,0x7b,0x33,0x5b,0x45,0x28,0x23,0x1b,0x9c,0x0a,0x11,0x0d,0x08,0x02,0x22,0x68,0x8a,0xab,0x66,0x7e,0xca,0x8c,0x4b,0x25,0x37,0x2d,0x2f,0xfe,0x16,0x52,0x7e,0x57,0x2d,0x32,0x5a,0x7c,0x4a,0xa5,0xaf,0xad,0x00,0x01, +0x00,0x64,0xff,0xe8,0x04,0x87,0x05,0xb2,0x00,0x31,0x00,0x1b,0x40,0x0d,0x26,0x0e,0x26,0x0e,0x05,0x21,0x91,0x2c,0x04,0x16,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11, +0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x04,0x87,0x4a,0x8b,0xca,0x80,0x75,0xbf,0x87,0x49,0x0f,0x10,0xb6,0x0f,0x16,0x2d,0x5a,0x86,0x59,0x57,0x85,0x5a,0x2f,0x2d,0x51,0x72,0x44,0x42,0x6c,0x4b,0x29,0xb0,0x48,0x7e,0xaa,0x62,0x62,0xae,0x81,0x4b,0x01,0xda,0x71,0xb7,0x83,0x47,0x44, +0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20,0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a,0x82,0x53,0x02,0x27,0x44,0x68,0x47,0x25,0x1b,0x34,0x50,0x34,0x58,0x88,0x5b,0x2f,0x35,0x66,0x96,0x61,0x00,0x00,0x01,0x00,0x6e,0xff,0xe8,0x04,0x93,0x05,0xb2,0x00,0x41,0x00,0x22,0x40,0x11,0x3d,0x1f,0x2d,0x22,0x91,0x0d,0x1f,0x1f,0x05,0x2a,0x91,0x33, +0x04,0x15,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xce,0xfd,0xce,0x12,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x3e,0x02, +0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x04,0x93,0x5a,0x94,0xbf,0x66,0x75,0xc3,0x8c,0x4e,0x1e,0xb7,0x12,0x13,0x34,0x5f,0x83,0x4e,0x64,0x88,0x52,0x23,0x2a,0x56,0x83,0x59,0xd4,0xce,0x52,0x6b,0x3f,0x1a,0x7f,0x82,0x79,0x8c,0xb0,0x40,0x75,0xa5,0x65,0x5c,0x9b,0x71,0x3f,0x21,0x3f,0x5d,0x3c,0x43,0x76,0x59,0x33, +0x01,0xb2,0x75,0xad,0x71,0x37,0x3f,0x72,0x9f,0x60,0x4d,0x57,0x22,0x5a,0x27,0x44,0x69,0x48,0x26,0x35,0x57,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x24,0x3f,0x53,0x2f,0x60,0x6b,0x68,0x6b,0x5c,0x88,0x5a,0x2c,0x31,0x5c,0x81,0x50,0x3b,0x66,0x4e,0x34,0x09,0x08,0x3c,0x61,0x83,0x00,0x00,0x03,0x00,0x28,0xff,0xe8,0x05,0xfe,0x05,0xb2, +0x00,0x27,0x00,0x37,0x00,0x45,0x00,0x24,0x40,0x13,0x1e,0x3b,0x91,0x23,0x10,0x0b,0x33,0x91,0x10,0x10,0x05,0x2b,0x91,0x1a,0x04,0x43,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x3f,0xed,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02, +0x33,0x32,0x16,0x15,0x15,0x3e,0x03,0x33,0x32,0x1e,0x02,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x01,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0xfe,0x45,0x84,0xc0,0x7a,0x6f,0xb7,0x82,0x47,0x0d,0x28,0x2e,0x34,0x19,0x41,0x70,0x53,0x30,0x2f,0x56,0x79,0x49,0x9e,0xa1,0x21, +0x53,0x5d,0x63,0x31,0x6e,0xb5,0x81,0x47,0xfc,0x0e,0x58,0x45,0x45,0x58,0x18,0x2a,0x39,0x21,0x21,0x3a,0x2a,0x19,0x03,0x40,0xa8,0x9d,0x4f,0x80,0x5a,0x30,0xaa,0xaf,0xa5,0xa0,0x02,0x16,0x84,0xcf,0x90,0x4b,0x4a,0x8c,0xc9,0x7f,0x01,0x70,0x0d,0x16,0x0f,0x09,0x2a,0x51,0x73,0x4a,0x4a,0x76,0x53,0x2c,0x9b,0x9c,0xf7,0x29,0x38,0x22, +0x0f,0x42,0x82,0xbf,0x01,0xe2,0x54,0x52,0x52,0x54,0x2c,0x3e,0x28,0x12,0x12,0x28,0x3e,0xfd,0xc7,0xbf,0xb1,0x2d,0x5b,0x8c,0x60,0xc4,0xca,0xcb,0x00,0x02,0x00,0x82,0xff,0xe8,0x07,0x4c,0x05,0xb2,0x00,0x28,0x00,0x36,0x00,0x20,0x40,0x11,0x10,0x23,0x23,0x0e,0x91,0x26,0x04,0x2c,0x91,0x21,0x04,0x34,0x91,0x17,0x13,0x06,0x12,0x00, +0x3f,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x39,0x11,0x33,0x30,0x31,0x01,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x10,0x02,0x23,0x22,0x07,0x16,0x11,0x14,0x02,0x06,0x06,0x23,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x00,0x01,0x10,0x02,0x23,0x22,0x02,0x11,0x14,0x1e,0x02,0x33,0x32,0x12,0x07, +0x4c,0x1e,0x31,0x3e,0x20,0xc9,0x2b,0x49,0x34,0x1e,0xae,0xb4,0x91,0x58,0x61,0x4a,0x8b,0xca,0x7f,0x73,0xc3,0x8d,0x4f,0x4c,0x8e,0xce,0x82,0xc6,0x7d,0x44,0xac,0x67,0xf9,0x01,0x0d,0xfc,0xb6,0xae,0xb4,0xb2,0xbc,0x32,0x5e,0x88,0x56,0xac,0xb6,0x02,0xc0,0x80,0xd2,0xab,0x8a,0x39,0x3a,0x9c,0xb8,0xcd,0x6b,0x01,0x2a,0x01,0x2c,0x60, +0xb7,0xfe,0xc7,0xba,0xfe,0xea,0xb8,0x5c,0x53,0xaf,0x01,0x12,0xc0,0xc0,0x01,0x1c,0xbd,0x5d,0x75,0x3c,0x39,0xfe,0x89,0xfe,0x8b,0x01,0x2a,0x01,0x2b,0xfe,0xd4,0xfe,0xd3,0x97,0xda,0x8e,0x44,0x01,0x1f,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x04,0xb2,0x05,0xb2,0x00,0x24,0x00,0x0f,0xb6,0x0b,0x1a,0x12,0x12,0x91,0x00,0x04,0x00,0x3f, +0xed,0x3f,0x33,0x30,0x31,0x01,0x32,0x16,0x16,0x12,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x10,0x21,0x22,0x02,0x11,0x14,0x1e,0x02,0x17,0x23,0x2e,0x03,0x35,0x34,0x12,0x36,0x36,0x02,0xa7,0x7c,0xc3,0x86,0x46,0x1e,0x31,0x3e,0x20,0xc9,0x2b,0x49,0x34,0x1e,0xfe,0x9c,0xb4,0xb8,0x1e,0x34,0x49,0x2b,0xc9,0x20,0x3e,0x31,0x1e, +0x4b,0x8e,0xcb,0x05,0xb2,0x5e,0xbc,0xfe,0xe5,0xbd,0x80,0xd2,0xab,0x8a,0x39,0x3a,0x9c,0xb6,0xc9,0x67,0x02,0x60,0xfe,0xd4,0xfe,0xd6,0x6b,0xcd,0xb8,0x9c,0x3a,0x39,0x8a,0xab,0xd2,0x80,0xbd,0x01,0x1b,0xbc,0x5e,0x00,0x00,0x01,0x00,0x6e,0xff,0xe8,0x04,0x93,0x05,0xb2,0x00,0x3a,0x00,0x1e,0x40,0x0f,0x36,0x23,0x91,0x0e,0x20,0x20, +0x05,0x2b,0x91,0x2c,0x04,0x16,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xce,0xed,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x35,0x32,0x1e,0x02, +0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x04,0x93,0x5a,0x94,0xbf,0x66,0x75,0xc3,0x8c,0x4e,0x0e,0x0f,0xb8,0x12,0x14,0x36,0x60,0x83,0x4c,0x64,0x88,0x52,0x23,0x2a,0x56,0x83,0x59,0xd4,0xce,0x52,0x6b,0x3f,0x1a,0x7b,0x83,0x63,0x9f,0x70,0x3c,0x21,0x40,0x5e,0x3d,0x45,0x78,0x58,0x33,0x01,0xb2,0x75,0xad,0x71,0x37,0x3f,0x72,0x9f,0x60, +0x26,0x52,0x2c,0x26,0x4f,0x2e,0x44,0x69,0x48,0x26,0x35,0x57,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x24,0x3f,0x53,0x2f,0x60,0x6b,0x97,0x31,0x5c,0x81,0x50,0x3b,0x65,0x4e,0x34,0x0a,0x09,0x3c,0x61,0x82,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x08,0x12,0x05,0xb3,0x00,0x5c,0x00,0x3d,0x40,0x21,0x48,0x3e,0x0e,0x0a,0x07,0x91,0x57,0x0b, +0x57,0x3e,0x2e,0x57,0x57,0x2e,0x3e,0x03,0x00,0x39,0x91,0x24,0x04,0x21,0x1b,0x42,0x91,0x1e,0x04,0x4d,0x91,0x18,0x04,0x00,0x12,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x32,0x32,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x39,0x11,0x33,0x30,0x31,0x21,0x2e,0x05,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x37,0x2e,0x03, +0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x16,0x04,0x04,0x16, +0x17,0x05,0xf6,0x0c,0x50,0x7a,0x9e,0xb3,0xc4,0x63,0x7e,0xf0,0x68,0x3c,0x93,0x55,0x66,0x8e,0x58,0x28,0x2b,0x59,0x88,0x5c,0x6d,0x9a,0x2f,0x27,0x9a,0x67,0x65,0x9d,0x26,0x32,0x93,0x66,0x54,0x8b,0x62,0x36,0x11,0x1b,0x20,0x10,0xc4,0x1c,0x2a,0x1c,0x0e,0x20,0x36,0x48,0x29,0x73,0x64,0xa8,0x63,0x73,0x39,0x4f,0x31,0x15,0xa8,0x64, +0x73,0x2c,0x49,0x35,0x1d,0x43,0x6f,0x8e,0x4b,0xc7,0x01,0x59,0x01,0x0b,0xb0,0x1f,0x1c,0x38,0x31,0x2a,0x1e,0x11,0x1f,0x22,0x9c,0x11,0x16,0x05,0x33,0x85,0x9c,0xb0,0x5f,0x62,0xb2,0x87,0x50,0x5b,0x65,0x65,0x5b,0x61,0x5f,0x66,0x5a,0x3e,0x7c,0xbb,0x7c,0x42,0x73,0x61,0x50,0x20,0x26,0x5b,0x64,0x6b,0x35,0x62,0x85,0x52,0x23,0xac, +0xae,0x88,0x88,0xae,0xac,0x2b,0x57,0x81,0x57,0x88,0x88,0xae,0xac,0x26,0x53,0x84,0x5f,0x77,0xb9,0x8e,0x67,0x23,0x0f,0x39,0x5c,0x80,0x55,0x00,0x00,0x02,0x00,0x82,0xff,0xe8,0x04,0x74,0x05,0xb2,0x00,0x2a,0x00,0x3a,0x00,0x1e,0x40,0x0f,0x14,0x36,0x91,0x1f,0x0f,0x0f,0x05,0x1a,0x91,0x25,0x04,0x2e,0x91,0x05,0x13,0x00,0x3f,0xed, +0x3f,0xed,0x12,0x39,0x2f,0xce,0xed,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x04,0x74,0x47,0x82,0xb7, +0x6f,0x7a,0xc0,0x84,0x45,0x47,0x81,0xb5,0x6e,0x31,0x62,0x5c,0x50,0x20,0x2e,0x52,0x72,0x44,0x42,0x6f,0x4f,0x2c,0xb0,0x4b,0x81,0xae,0x62,0x62,0xae,0x82,0x4c,0xfc,0xbe,0xa2,0xa5,0xaf,0xa4,0x2f,0x57,0x7e,0x4f,0x4e,0x7a,0x54,0x2b,0x01,0xfc,0x7f,0xc6,0x88,0x47,0x48,0x8c,0xcc,0x84,0x7d,0xbc,0x7e,0x3f,0x0f,0x23,0x38,0x29,0x92, +0x45,0x69,0x47,0x25,0x1b,0x34,0x50,0x34,0x58,0x88,0x5b,0x2f,0x32,0x63,0x92,0x61,0xfd,0xdc,0xc7,0xc1,0xc0,0xc4,0x60,0x89,0x58,0x29,0x28,0x57,0x87,0x00,0x00,0x02,0x00,0xa0,0xff,0xe8,0x04,0x92,0x05,0xb2,0x00,0x30,0x00,0x40,0x00,0x2b,0x40,0x16,0x21,0x2b,0x91,0x18,0x26,0x91,0x1d,0x1d,0x18,0x00,0x36,0x91,0x05,0x05,0x0f,0x20, +0x18,0x04,0x3e,0x91,0x0f,0x13,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x39,0x11,0x33,0x2f,0xed,0x10,0xed,0x32,0x30,0x31,0x01,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15, +0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x42,0x21,0x53,0x5d,0x63,0x31,0x6e,0xb5,0x81,0x47,0x45,0x84,0xc0,0x7a,0x6f,0xb7,0x82,0x47,0xa3,0xac,0x2b,0x63,0x5f,0x55,0x1e,0x2a,0x74,0x38,0x17,0x36,0x38,0x36,0x18,0x2e,0x62,0x5e,0x56,0x22,0x2e,0x41,0x28,0x13,0x02,0xa6,0x2d,0x56,0x7c,0x4e,0x4f, +0x80,0x5a,0x30,0xaa,0xaf,0xa5,0xa8,0x03,0x84,0x29,0x38,0x22,0x0f,0x42,0x82,0xbf,0x7d,0x84,0xcf,0x90,0x4b,0x4a,0x8c,0xc9,0x7f,0x02,0x5a,0xa9,0xa9,0x16,0x1a,0x16,0x21,0x23,0xaa,0x0c,0x12,0x0c,0x06,0x16,0x1a,0x16,0x10,0x28,0x42,0x33,0xfd,0xa1,0x60,0x8b,0x5a,0x2b,0x2d,0x5b,0x8c,0x60,0xc4,0xca,0xcb,0x00,0x00,0x01,0x00,0x82, +0x00,0x00,0x06,0xf8,0x05,0xb4,0x00,0x3e,0x00,0x20,0x40,0x10,0x2a,0x25,0x0c,0x0c,0x2f,0x1c,0x3a,0x12,0x05,0x91,0x2f,0x04,0x12,0x91,0x25,0x04,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x30,0x31,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e, +0x02,0x17,0x23,0x2e,0x03,0x35,0x10,0x12,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x16,0x16,0x12,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x06,0x48,0x21,0x46,0x6c,0x4a,0x3a,0x67,0x4e,0x2d,0xa4,0x2d,0x4e,0x67,0x3a,0x4a,0x6c,0x46,0x21,0x1e,0x34,0x49,0x2b,0xc9,0x20,0x3e,0x31,0x1e,0xee,0xe2,0x36,0x6e,0x62,0x4f,0x16,0x13, +0x4f,0x68,0x78,0x3d,0x69,0xa5,0x72,0x3c,0x1e,0x31,0x3e,0x20,0xc9,0x2b,0x49,0x34,0x1e,0x02,0xbc,0x91,0xe2,0x9c,0x52,0x46,0x86,0xc4,0x7e,0x6e,0x6e,0x7e,0xc4,0x86,0x46,0x4e,0x98,0xde,0x91,0x73,0xd0,0xb5,0x96,0x3a,0x39,0x8a,0xac,0xd2,0x80,0x01,0x77,0x01,0x7c,0x23,0x4a,0x76,0x52,0x52,0x75,0x4b,0x23,0x61,0xbf,0xfe,0xe3,0xbb, +0x81,0xd0,0xa9,0x89,0x39,0x3a,0x96,0xb2,0xcb,0x00,0x00,0x01,0x00,0x6e,0xff,0xe8,0x04,0x93,0x05,0x9a,0x00,0x43,0x00,0x1f,0x40,0x0f,0x3b,0x01,0x0f,0x36,0x91,0x21,0x33,0x33,0x01,0x29,0x91,0x19,0x13,0x01,0x03,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xce,0xed,0x39,0x11,0x39,0x30,0x31,0x01,0x33,0x1e,0x07,0x15,0x14,0x0e,0x02,0x07, +0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x06,0x01,0x12,0xbe,0x04,0x3a,0x5a,0x71,0x75,0x6f,0x57,0x35,0x24,0x41,0x5d,0x39,0x43,0x76,0x59,0x33,0x5a,0x94,0xbf,0x66,0x75,0xc3, +0x8c,0x4e,0x1e,0xb7,0x12,0x13,0x34,0x5f,0x83,0x4e,0x64,0x88,0x52,0x23,0x2a,0x56,0x83,0x59,0xd4,0xce,0x4f,0x6d,0x44,0x1e,0x36,0x58,0x71,0x78,0x74,0x5e,0x3e,0x05,0x9a,0x23,0x2a,0x1b,0x11,0x16,0x21,0x38,0x56,0x41,0x2e,0x50,0x40,0x2c,0x09,0x08,0x3c,0x61,0x83,0x4e,0x75,0xad,0x71,0x37,0x3f,0x72,0x9f,0x60,0x4d,0x57,0x22,0x5a, +0x27,0x44,0x69,0x48,0x26,0x35,0x57,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x1e,0x2e,0x38,0x1a,0x28,0x2f,0x1c,0x12,0x15,0x20,0x39,0x5a,0x00,0x01,0x00,0x64,0xff,0xe8,0x04,0xc3,0x05,0xb2,0x00,0x42,0x00,0x35,0x40,0x1e,0x3e,0x1a,0x92,0x00,0x0e,0x00,0x0e,0x00,0x20,0xb0,0x30,0xc0,0x30,0xd0,0x30,0x03,0x30,0x13,0x91,0x08,0x08,0x21, +0x38,0x91,0x27,0x13,0x21,0x04,0x20,0x03,0x00,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0xce,0x5d,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x30,0x31,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x33,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x32,0x3e,0x02,0x37,0x33,0x07,0x11,0x14,0x0e,0x02,0x23, +0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x0e,0x03,0x02,0xf1,0x14,0x13,0x2a,0x53,0x7c,0x52,0x3f,0x81,0x68,0x41,0xaa,0x20,0x33,0x3f,0x1f,0x52,0x5d,0x2a,0x31,0x37,0x5e,0x9c,0x86,0x76,0x37,0x4c,0x01,0x4a,0x8b,0xca,0x80,0x75,0xc1,0x8b,0x4c,0x0f,0x10,0xb6,0x0f,0x16, +0x30,0x5e,0x88,0x59,0x57,0x85,0x5a,0x2f,0x18,0x44,0x4e,0x55,0x04,0x7c,0x23,0x4a,0x25,0x39,0x6a,0x52,0x31,0x21,0x4b,0x78,0x58,0x2f,0x3f,0x27,0x11,0x4d,0x51,0x2b,0x43,0x1c,0x83,0x10,0x27,0x43,0x33,0x02,0xfc,0x2a,0x71,0xb7,0x83,0x47,0x44,0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20,0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a,0x82,0x53, +0x02,0xe8,0x0e,0x18,0x14,0x0c,0x00,0x01,0x00,0x82,0x00,0x00,0x05,0xd0,0x05,0x9a,0x00,0x54,0x00,0x44,0x40,0x14,0x17,0x45,0x91,0x1e,0x3e,0x1b,0x1b,0x38,0x91,0x23,0x80,0x23,0x90,0x23,0xa0,0x23,0xe0,0x23,0x04,0x23,0xb8,0xff,0xc0,0x40,0x11,0x09,0x0d,0x48,0x3e,0x23,0x3e,0x23,0x0d,0x4f,0x2d,0x12,0x12,0x91,0x07,0x07,0x0d,0x03, +0x00,0x3f,0x33,0x2f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x5d,0x10,0xed,0x33,0x2f,0x12,0x39,0xed,0x39,0x30,0x31,0x13,0x34,0x3e,0x04,0x37,0x3e,0x03,0x37,0x33,0x0e,0x03,0x07,0x0e,0x03,0x07,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x34,0x2e,0x02, +0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x23,0x2e,0x03,0x82,0x3f,0x6a,0x8d,0x9b,0xa0,0x49,0x55,0x6c,0x42,0x24,0x0d,0xb5,0x10,0x49,0x77,0xa8,0x6f,0x4d,0x8b,0x72,0x58,0x1a,0x05,0x22,0x4f,0x28,0x6a,0x88,0x1b,0x0e,0x3d,0x51,0x5f,0x2f,0x54,0x8b,0x63,0x37,0x1d,0x2f, +0x3c,0x1f,0xc2,0x23,0x45,0x36,0x21,0x22,0x39,0x4b,0x29,0x3b,0x53,0x33,0x17,0xa2,0x14,0x32,0x54,0x40,0x2f,0x4f,0x39,0x20,0x23,0x37,0x44,0x21,0xc2,0x1f,0x3c,0x2f,0x1d,0x02,0x26,0xab,0xf2,0xa4,0x62,0x38,0x18,0x09,0x0a,0x13,0x1a,0x25,0x1c,0x42,0x58,0x3c,0x27,0x10,0x0b,0x11,0x20,0x3b,0x34,0x1d,0x1a,0x7c,0x85,0x45,0x61,0x3d, +0x1d,0x3e,0x7d,0xbb,0x7c,0x66,0xa3,0x85,0x6b,0x2d,0x29,0x6b,0x88,0xa6,0x64,0x62,0x85,0x52,0x23,0x37,0x60,0x83,0x4c,0x30,0x30,0x4d,0x83,0x60,0x36,0x29,0x56,0x83,0x5a,0x64,0xa6,0x88,0x6b,0x29,0x2d,0x6d,0x87,0xa2,0x00,0x01,0x00,0xa0,0xff,0xe8,0x04,0xac,0x05,0x9a,0x00,0x27,0x00,0x18,0x40,0x0b,0x23,0x15,0x1f,0x1f,0x05,0x0c, +0x03,0x10,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x39,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x04,0xac,0x46,0x83,0xbb,0x75,0x80,0xc6,0x87,0x46,0xa2,0xb2,0xad,0x58,0x85, +0x58,0x2c,0x13,0x1e,0x21,0x1e,0x13,0x15,0x1b,0xb1,0x15,0x22,0x29,0x31,0x29,0x01,0x98,0x5a,0x9d,0x75,0x44,0x47,0x83,0xb7,0x71,0x03,0xc0,0xfc,0x42,0xa6,0xb8,0x2a,0x4b,0x68,0x3d,0x3a,0x5e,0x4e,0x43,0x40,0x40,0x24,0x22,0x4c,0x2d,0x20,0x46,0x32,0x2c,0x5a,0x6c,0x86,0x00,0x02,0x00,0x6e,0xff,0xe8,0x05,0xba,0x05,0xb2,0x00,0x5a, +0x00,0x66,0x00,0x3e,0xb6,0x3d,0x2d,0x64,0x54,0x64,0x01,0x64,0xb8,0xff,0xe0,0x40,0x1a,0x10,0x15,0x48,0x64,0x9f,0x13,0x01,0x13,0x13,0x35,0x1e,0x1b,0x92,0x23,0x23,0x49,0x55,0x0f,0x05,0x91,0x49,0x13,0x5e,0x92,0x35,0x04,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x33,0x12,0x39,0x2f,0x5d,0x33,0x2b,0x5d,0x12,0x39,0x39, +0x30,0x31,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x04,0x27,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x16,0x16,0x17,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x05,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x04,0x35,0x34,0x3e, +0x02,0x37,0x33,0x0e,0x03,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0x01,0x1d,0x57,0x8e,0xb4,0x5d,0x3a,0x78,0x70,0x62,0x49,0x2a,0x20,0x38,0x4a,0x56,0x5b,0x2d,0x19,0x2b,0x21,0x13,0x31,0x36,0x1d,0x38,0x11,0x23,0x39,0x18,0x52,0x92,0x38,0x5c,0x41,0x24,0x17,0x26,0x33,0x1c,0x3a,0x48,0x28,0x46,0x5c,0x35,0x31, +0x5a,0x46,0x2a,0x43,0x30,0x30,0x66,0x61,0x56,0x40,0x26,0x71,0xbc,0xf6,0x84,0x52,0xa4,0x97,0x81,0x60,0x37,0x21,0x3a,0x4f,0x2d,0xd7,0x35,0x5c,0x46,0x28,0x02,0xbf,0x33,0x2a,0x31,0x31,0x36,0x2d,0x27,0x35,0x02,0x1c,0x6e,0x9c,0x64,0x2f,0x11,0x25,0x3b,0x54,0x70,0x47,0x3c,0x5f,0x4c,0x3d,0x34,0x2e,0x17,0x15,0x27,0x25,0x24,0x12, +0x26,0x32,0x1a,0x16,0x11,0x2d,0x16,0x6d,0x22,0x3b,0x52,0x30,0x27,0x44,0x3b,0x34,0x17,0x2a,0x70,0x51,0x31,0x52,0x3b,0x21,0x21,0x3b,0x52,0x31,0x3c,0x67,0x2d,0x17,0x32,0x3d,0x4b,0x5f,0x77,0x4a,0x93,0xd2,0x86,0x3f,0x1c,0x39,0x59,0x7a,0x9c,0x61,0x46,0x89,0x7f,0x74,0x31,0x2f,0x6f,0x7b,0x86,0x02,0x72,0x23,0x2d,0x2f,0x21,0x2c, +0x41,0x1c,0x20,0x42,0x00,0x01,0x00,0x0a,0xff,0xe8,0x06,0x23,0x05,0xb8,0x00,0x54,0x00,0x30,0x40,0x19,0x10,0x91,0x0d,0x1e,0x07,0x07,0x19,0x4e,0x35,0x4e,0x35,0x4e,0x21,0x3d,0x91,0x2c,0x13,0x48,0x91,0x21,0x04,0x00,0x91,0x19,0x04,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x2f,0x39,0x39,0xed, +0x30,0x31,0x01,0x22,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x33,0x14,0x16,0x33,0x32,0x3e,0x06,0x33,0x32,0x1e,0x02,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x15, +0x23,0x35,0x34,0x2e,0x02,0x02,0x76,0x32,0x39,0x27,0x22,0x36,0x58,0x49,0x32,0x53,0x3b,0x21,0x97,0x30,0x1d,0x1e,0x2b,0x20,0x1c,0x20,0x29,0x3b,0x51,0x39,0x38,0x5a,0x42,0x2b,0x08,0x1d,0x9b,0x74,0x54,0x88,0x60,0x33,0x4a,0x8b,0xca,0x80,0x75,0xbf,0x87,0x49,0x0f,0x10,0xb6,0x0f,0x16,0x2d,0x5a,0x86,0x59,0x57,0x85,0x5a,0x2f,0x20, +0x36,0x48,0x29,0x3b,0x52,0x33,0x17,0xa8,0x13,0x2d,0x49,0x05,0x21,0x2f,0x45,0x51,0x45,0x2e,0x23,0x3f,0x55,0x32,0x2a,0x2a,0x1b,0x2c,0x39,0x3a,0x39,0x2c,0x1b,0x26,0x44,0x5f,0x38,0x80,0x7f,0x3e,0x7d,0xbb,0x7c,0xfe,0x16,0x71,0xb7,0x83,0x47,0x44,0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20,0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a,0x82, +0x53,0x01,0xe1,0x64,0x89,0x52,0x24,0x37,0x60,0x83,0x4c,0x30,0x30,0x49,0x82,0x63,0x39,0x00,0x00,0x02,0x00,0x55,0xff,0xe8,0x06,0xd5,0x05,0xb2,0x00,0x56,0x00,0x66,0x00,0x31,0x40,0x1a,0x64,0x91,0x04,0x2b,0x47,0x19,0x91,0x16,0x2b,0x16,0x2b,0x16,0x3d,0x0c,0x91,0x52,0x13,0x38,0x21,0x91,0x3d,0x04,0x5c,0x91,0x35,0x04,0x00,0x3f, +0xed,0x3f,0xed,0x39,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xce,0xed,0x30,0x31,0x01,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x07,0x06,0x06,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e, +0x02,0x33,0x32,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x13,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x02,0x59,0x03,0x02,0xb0,0x03,0x02,0x3f,0x6c,0x92,0x53,0x69,0x96,0x60,0x2d,0x25,0x4f,0x79,0x54,0x5e,0x58,0x51,0x6c, +0x41,0x1b,0x82,0x82,0x61,0xaf,0x53,0x1d,0x3a,0x6c,0x9b,0x62,0x61,0xa1,0x73,0x40,0x42,0x75,0xa0,0x5e,0x64,0x9d,0x36,0x37,0x6e,0x6f,0x6f,0x39,0x5d,0x9c,0x71,0x40,0x20,0x3e,0x5a,0x3a,0x3a,0x69,0x4f,0x2e,0x62,0xa2,0xce,0x6c,0x81,0xd4,0x97,0x52,0xa4,0x1c,0x3b,0x5c,0x40,0x41,0x61,0x42,0x21,0x83,0x82,0x80,0x73,0x01,0x8e,0x0f, +0x1f,0x11,0x11,0x1e,0x0f,0x44,0x66,0x44,0x22,0x35,0x56,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x24,0x3f,0x53,0x2f,0x5f,0x6d,0x01,0x02,0x30,0x3d,0x54,0x69,0x6c,0xa6,0x71,0x3b,0x3c,0x72,0xa7,0x6b,0x6a,0xa6,0x72,0x3c,0x3e,0x3c,0x26,0x31,0x1c,0x0a,0x31,0x5c,0x81,0x50,0x3b,0x65,0x4e,0x33,0x09,0x04,0x07,0x3b,0x61,0x83,0x4e,0x75, +0xad,0x71,0x37,0x3c,0x6e,0x9c,0x02,0xc1,0x47,0x6f,0x4c,0x27,0x2c,0x4e,0x6c,0x41,0x90,0x99,0x98,0x00,0x00,0x01,0x00,0x5a,0xff,0xe8,0x04,0x7d,0x05,0x9a,0x00,0x31,0x00,0x23,0x40,0x11,0x24,0x0a,0x24,0x0a,0x1b,0x13,0x05,0x91,0x10,0x10,0x15,0x2c,0x91,0x1b,0x13,0x15,0x03,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x12,0x39, +0x39,0x2f,0x2f,0x30,0x31,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x03,0xd5,0x2e,0x52,0x72,0x44,0x42,0x6f,0x4f,0x2c,0xa6,0x48,0x7e,0xaa,0x62,0x59, +0x9c,0x41,0xa8,0x4a,0x8b,0xca,0x80,0x75,0xbf,0x87,0x49,0x0f,0x10,0xb6,0x0f,0x16,0x2d,0x5a,0x86,0x59,0x57,0x85,0x5a,0x2f,0x02,0xed,0x43,0x68,0x47,0x24,0x1b,0x34,0x50,0x34,0x58,0x88,0x5b,0x2f,0x28,0x29,0x01,0x51,0xfc,0x40,0x71,0xb7,0x83,0x47,0x44,0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20,0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a, +0x82,0x53,0x00,0x01,0x00,0x82,0x00,0x00,0x05,0xb6,0x05,0xb3,0x00,0x4d,0x00,0x33,0x40,0x1b,0x08,0x05,0x92,0x4a,0x09,0x0c,0x19,0x37,0x1c,0x0c,0x26,0x37,0x37,0x26,0x0c,0x03,0x00,0x31,0x91,0x1c,0x04,0x3e,0x91,0x16,0x04,0x00,0x12,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x33,0xed, +0x32,0x30,0x31,0x21,0x2e,0x03,0x27,0x22,0x06,0x07,0x35,0x36,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x04,0x17,0x16,0x16, +0x17,0x04,0x49,0x19,0x65,0x8a,0xa7,0x6e,0x46,0xbb,0x59,0x41,0x98,0x51,0x68,0x90,0x5a,0x28,0x2b,0x59,0x88,0x5c,0x6d,0x92,0x2f,0x27,0x99,0x67,0x54,0x8b,0x62,0x36,0x11,0x1b,0x20,0x10,0xc4,0x1c,0x2a,0x1c,0x0e,0x20,0x36,0x49,0x2a,0x39,0x4f,0x30,0x15,0xa8,0x16,0x31,0x4f,0x39,0x2c,0x49,0x35,0x1d,0x2b,0x4a,0x62,0x6d,0x74,0x36, +0xb8,0xf1,0x2f,0x2e,0x4f,0x3a,0x23,0x04,0x1e,0x23,0x9c,0x15,0x19,0x02,0x2d,0x83,0x9e,0xb3,0x5e,0x62,0xb2,0x87,0x50,0x5b,0x65,0x65,0x5b,0x3e,0x7c,0xbb,0x7c,0x42,0x73,0x61,0x50,0x20,0x26,0x5b,0x64,0x6b,0x35,0x62,0x85,0x52,0x23,0x2b,0x57,0x81,0x57,0x88,0x88,0x57,0x81,0x57,0x2b,0x26,0x53,0x84,0x5f,0x5a,0x98,0x7e,0x65,0x4f, +0x39,0x13,0x2d,0xa7,0x7d,0x00,0x00,0x01,0x00,0x6e,0xff,0xe8,0x04,0x91,0x05,0x9a,0x00,0x3d,0x00,0x1d,0x40,0x0e,0x00,0x1a,0x91,0x30,0x05,0x05,0x21,0x38,0x91,0x27,0x13,0x10,0x21,0x03,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xce,0xed,0x39,0x30,0x31,0x01,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x33,0x0e,0x03, +0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x03,0xe9,0x20,0x54,0x5e,0x63,0x30,0x5a,0xa8,0x80,0x4d,0x08,0x0d,0x13,0x0b,0xb6,0x0d,0x15,0x0f,0x08,0x39,0x57,0x68,0x30,0x49,0x7f,0x5e,0x36,0xa8, +0x4a,0x8b,0xca,0x80,0x75,0xbf,0x87,0x49,0x0f,0x10,0xb6,0x0f,0x16,0x2d,0x5a,0x86,0x59,0x57,0x85,0x5a,0x2f,0x03,0x5f,0x2a,0x3a,0x26,0x11,0x34,0x6d,0xaa,0x77,0x21,0x49,0x48,0x45,0x1d,0x1a,0x45,0x4b,0x4c,0x22,0x5f,0x74,0x3f,0x15,0x33,0x57,0x75,0x42,0xfe,0xfc,0x40,0x71,0xb7,0x83,0x47,0x44,0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20, +0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a,0x82,0x53,0x00,0x02,0x00,0x32,0xff,0xe8,0x04,0xf3,0x05,0xb3,0x00,0x13,0x00,0x57,0x00,0x32,0x40,0x1c,0x38,0x33,0x2b,0x20,0x0f,0x91,0x57,0x48,0x00,0x52,0x10,0x52,0x02,0x52,0x52,0x3d,0x05,0x91,0x48,0x13,0x19,0x92,0x3d,0x04,0x26,0x92,0x33,0x04,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12, +0x39,0x2f,0x5d,0x12,0x39,0xed,0xce,0x32,0x11,0x39,0x30,0x31,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32, +0x1e,0x02,0x15,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x01,0xb1,0x39,0x5d,0x75,0x3c,0x3c,0x79,0x61,0x3d,0x39,0x5e,0x7a,0x42,0x42,0x76,0x5a,0x35,0x02,0x9a,0x18,0x2d,0x44,0x2b,0x36,0x48,0x2c,0x13,0x9e,0x1c,0x33,0x46,0x2a,0x4e,0x4f,0x15,0xb5,0x0e,0x32,0x5a,0x7b,0x49,0x2a,0x4e, +0x45,0x38,0x13,0x11,0x36,0x43,0x4d,0x29,0x5a,0x87,0x5b,0x2d,0x52,0x89,0xb3,0x61,0x69,0xbc,0x8c,0x52,0x59,0x8e,0xae,0x56,0x31,0x62,0x5b,0x51,0x20,0x01,0xde,0x56,0x83,0x59,0x2e,0x2d,0x58,0x82,0x55,0x55,0x83,0x59,0x2e,0x2b,0x56,0x83,0x01,0xc8,0x50,0x71,0x48,0x22,0x1e,0x33,0x45,0x27,0x2b,0x2b,0x2d,0x46,0x30,0x1a,0x62,0x54, +0x30,0x42,0x36,0x32,0x52,0x7b,0x53,0x2a,0x0f,0x23,0x38,0x29,0x28,0x38,0x24,0x10,0x32,0x6d,0xac,0x7a,0xfd,0xec,0x72,0xb9,0x81,0x46,0x46,0x84,0xbc,0x76,0x78,0xb8,0x7d,0x3f,0x11,0x24,0x37,0x27,0x00,0x02,0x00,0xa0,0x00,0x00,0x04,0x94,0x05,0xb1,0x00,0x0d,0x00,0x3f,0x00,0x22,0x40,0x11,0x06,0x91,0x3a,0x3a,0x3b,0x23,0x91,0x0e, +0x0e,0x2a,0x00,0x92,0x30,0x04,0x19,0x2a,0x12,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x33,0x2f,0xed,0x30,0x31,0x01,0x22,0x0e,0x02,0x15,0x15,0x3e,0x03,0x35,0x34,0x26,0x13,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32, +0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x3e,0x03,0x01,0xde,0x23,0x39,0x28,0x16,0x4e,0x6e,0x45,0x1f,0x3f,0x9a,0x63,0xab,0x7f,0x48,0x11,0x1b,0x20,0x10,0xc4,0x1c,0x2a,0x1c,0x0e,0x37,0x56,0x6b,0x33,0x48,0x87,0x69,0x3f,0xa2,0x33,0x57,0x73,0x41,0x44,0x6f,0x50,0x2b,0x2e,0x6b,0xb0,0x81,0x21,0x5b,0x66,0x6b,0x05,0x21,0x18,0x2a, +0x3c,0x24,0x83,0x0a,0x25,0x31,0x3b,0x20,0x30,0x3a,0xfe,0x36,0x35,0x71,0xb0,0x7b,0x42,0x73,0x61,0x50,0x20,0x26,0x5b,0x64,0x6b,0x35,0x5f,0x7b,0x47,0x1c,0x30,0x57,0x7d,0x4c,0xfe,0x8e,0x04,0x74,0x4c,0x77,0x50,0x2a,0x20,0x3f,0x5b,0x3b,0x34,0x66,0x5a,0x48,0x16,0xc5,0x2d,0x43,0x2c,0x16,0x00,0x01,0x00,0x82,0xff,0xe8,0x05,0x1d, +0x05,0x9a,0x00,0x42,0x00,0x20,0x40,0x10,0x14,0x3d,0x91,0x00,0x07,0x3c,0x3c,0x1e,0x28,0x03,0x31,0x91,0x1e,0x13,0x07,0x03,0x00,0x3f,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x39,0x30,0x31,0x01,0x34,0x2e,0x04,0x35,0x33,0x14,0x1e,0x04,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x26,0x02,0x35, +0x34,0x3e,0x02,0x37,0x33,0x06,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x04,0x28,0x3a,0x57,0x65,0x57,0x3a,0xb1,0x39,0x55,0x64,0x55,0x39,0x24,0x41,0x5c,0x37,0x45,0x77,0x56,0x31,0x5f,0x9f,0xd2,0x73,0x87,0xdd,0x9e,0x56,0x1f,0x34,0x42,0x23,0xc7,0x6d,0x68,0x3c,0x72, +0xa4,0x68,0x69,0x97,0x60,0x2d,0x2c,0x58,0x85,0x59,0x7f,0x79,0x46,0x6a,0x48,0x25,0x04,0x1a,0x31,0x32,0x20,0x1c,0x35,0x5c,0x50,0x2c,0x2d,0x1d,0x1c,0x36,0x5e,0x51,0x30,0x54,0x42,0x2d,0x08,0x09,0x3c,0x61,0x82,0x4e,0x75,0xad,0x71,0x37,0x5e,0xbc,0x01,0x1b,0xbd,0x7b,0xd3,0xaf,0x8d,0x36,0x94,0xfe,0xa4,0xd6,0x94,0xe0,0x96,0x4b, +0x35,0x56,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x20,0x32,0x3e,0x00,0x02,0x00,0x6e,0xff,0xe8,0x04,0x60,0x05,0x9a,0x00,0x16,0x00,0x24,0x00,0x16,0x40,0x0b,0x15,0x03,0x22,0x91,0x14,0x0f,0x10,0x1a,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0x33,0xed,0x3f,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32, +0x1e,0x02,0x17,0x11,0x33,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x04,0x60,0x47,0x82,0xb7,0x6f,0x7a,0xc0,0x84,0x45,0x47,0x81,0xb5,0x6e,0x31,0x63,0x5b,0x51,0x1f,0xa8,0xfc,0xbe,0xa2,0xa5,0xae,0xa5,0x2f,0x57,0x7e,0x4f,0x9d,0xaa,0x02,0x06,0x7f,0xc9,0x8c,0x4a,0x4b,0x90,0xcf,0x84,0x7d,0xc0,0x82,0x43, +0x10,0x24,0x39,0x28,0x02,0x17,0xfc,0x76,0xc7,0xcb,0xcb,0xc3,0x60,0x8c,0x5d,0x2d,0xb3,0x00,0x00,0x02,0x00,0x50,0x00,0x00,0x04,0xff,0x05,0xb3,0x00,0x41,0x00,0x56,0x00,0x33,0x40,0x1c,0x3f,0x53,0x91,0x17,0x12,0x30,0x00,0x00,0x00,0x10,0x00,0x02,0x23,0x00,0x23,0x00,0x09,0x29,0x92,0x1c,0x04,0x36,0x92,0x12,0x04,0x47,0x09,0x12, +0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xce,0x11,0x39,0xed,0x39,0x30,0x31,0x01,0x32,0x1e,0x02,0x15,0x14,0x07,0x01,0x23,0x01,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x23,0x36,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35, +0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x17,0x36,0x36,0x13,0x1e,0x03,0x17,0x33,0x3e,0x03,0x37,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x02,0xa4,0x58,0x8c,0x62,0x33,0x2d,0xfe,0xfe,0x8e,0xfe,0x17,0x11,0x16,0x32,0x5a,0x7e,0x4b,0x29,0x4d,0x43,0x36,0x11,0x13,0x38,0x45,0x4e,0x2a,0x49,0x7c,0x5a,0x33,0x0e, +0xb7,0x15,0x4f,0x4e,0x2a,0x46,0x33,0x1c,0x9e,0x13,0x2c,0x48,0x36,0x22,0x3b,0x2b,0x19,0x0c,0x0c,0x39,0x4e,0xa7,0x33,0x05,0x10,0x10,0x0d,0x03,0x02,0x03,0x0e,0x11,0x11,0x05,0x72,0x18,0x67,0x72,0x4b,0x7e,0x37,0x03,0xd5,0x28,0x4c,0x6d,0x45,0x59,0x5a,0xfe,0x04,0x03,0xca,0x23,0x5b,0x32,0x51,0x76,0x4d,0x25,0x10,0x24,0x38,0x28, +0x29,0x38,0x23,0x0f,0x2a,0x53,0x7b,0x52,0x32,0x36,0x42,0x30,0x54,0x62,0x1a,0x30,0x46,0x2d,0x2b,0x2b,0x27,0x45,0x33,0x1e,0x18,0x2e,0x43,0x2b,0x1d,0x36,0x17,0x72,0x1d,0x20,0xfd,0x79,0x0b,0x20,0x25,0x25,0x0f,0x0f,0x25,0x25,0x21,0x0b,0xe1,0x2e,0x3a,0x53,0x53,0x1c,0x19,0x00,0x00,0x02,0x00,0x32,0xff,0xe8,0x05,0x26,0x05,0x9a, +0x00,0x41,0x00,0x53,0x00,0x3f,0x40,0x25,0x02,0x41,0x09,0x4f,0x2d,0x10,0x06,0x05,0x0d,0x0d,0x4c,0x91,0x1f,0x32,0x05,0x05,0x42,0x91,0x3c,0x6f,0x32,0x7f,0x32,0xdf,0x32,0x03,0x32,0x3c,0x32,0x3c,0x01,0x27,0x91,0x16,0x13,0x01,0x03,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x33,0x2f,0x10,0xce,0xed,0x33,0x2f, +0x12,0x17,0x39,0x30,0x31,0x01,0x33,0x11,0x36,0x36,0x37,0x15,0x06,0x06,0x07,0x16,0x16,0x17,0x15,0x26,0x26,0x27,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x25,0x22, +0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x2e,0x03,0x03,0xad,0xa8,0x33,0x66,0x38,0x39,0x69,0x30,0x30,0x69,0x39,0x38,0x66,0x33,0x4a,0x8b,0xca,0x80,0x7e,0xc1,0x82,0x43,0x0f,0x10,0xb6,0x0f,0x16,0x2b,0x58,0x87,0x5c,0x57,0x85,0x5a,0x2f,0x2d,0x5a,0x5f,0x66,0x37,0x43,0x70,0x52,0x2e,0x2e,0x52,0x70,0x43,0x37,0x66,0x5f, +0x5a,0x2d,0xfe,0x88,0x17,0x32,0x2a,0x1b,0x1b,0x2a,0x32,0x17,0x66,0xbf,0x55,0x2a,0x5b,0x5f,0x63,0x05,0x9a,0xfe,0xac,0x2a,0x4d,0x21,0xa0,0x1d,0x46,0x26,0x26,0x45,0x1d,0xa0,0x20,0x4e,0x29,0xfe,0xb6,0x71,0xb7,0x83,0x47,0x44,0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20,0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a,0x82,0x53,0x01,0x53,0x22, +0x3b,0x2c,0x19,0x2b,0x4f,0x6d,0x42,0x42,0x6d,0x4e,0x2b,0x19,0x2c,0x3b,0x22,0x0f,0x0f,0x23,0x39,0x2a,0x2a,0x3a,0x23,0x0f,0x55,0x40,0x20,0x37,0x28,0x17,0x00,0x02,0x00,0xa0,0xff,0xe8,0x04,0x92,0x05,0x9a,0x00,0x16,0x00,0x24,0x00,0x16,0x40,0x0b,0x22,0x91,0x11,0x13,0x1a,0x91,0x02,0x07,0x10,0x01,0x03,0x00,0x3f,0x3f,0x33,0xed, +0x3f,0xed,0x30,0x31,0x13,0x33,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x25,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0xa0,0xa8,0x1f,0x51,0x5b,0x63,0x31,0x6e,0xb5,0x81,0x47,0x45,0x84,0xc0,0x7a,0x6f,0xb7,0x82,0x47,0x03,0x42,0xaa,0x9d,0x4f,0x7e,0x57,0x2f,0xa5,0xae, +0xa5,0xa2,0x05,0x9a,0xfd,0xe9,0x28,0x39,0x24,0x10,0x43,0x82,0xc0,0x7d,0x84,0xcf,0x90,0x4b,0x4a,0x8c,0xc9,0x7f,0x0a,0xbf,0xb3,0x2d,0x5d,0x8c,0x60,0xc3,0xcb,0xcb,0x00,0x01,0x00,0x50,0xff,0xe8,0x05,0xea,0x05,0xb2,0x00,0x5b,0x00,0x34,0x40,0x1d,0x14,0x4f,0x21,0x4f,0x21,0x4f,0x29,0x48,0x91,0x57,0x13,0x5b,0x44,0x15,0x2d,0x04, +0x08,0x34,0x91,0x3b,0x04,0x19,0x92,0x29,0x04,0x0e,0x92,0x08,0x13,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x30,0x31,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x01,0x01,0x26,0x26,0x27,0x22,0x06,0x06,0x15,0x14, +0x16,0x17,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x01,0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x01,0x01,0x16,0x16,0x37,0x36,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x01,0xd9,0x19,0x1d,0x24,0x49, +0x6e,0x4a,0x20,0x48,0x1f,0x3c,0x4b,0x39,0x39,0x3b,0x3d,0x01,0xc9,0xfe,0xb5,0x0f,0x21,0x12,0x09,0x1a,0x16,0x1c,0x17,0xa4,0x11,0x15,0x25,0x3d,0x4e,0x2a,0x48,0x6a,0x2a,0x01,0x32,0x01,0xc4,0x23,0x1b,0x29,0x1e,0x35,0x51,0x2c,0x2b,0x66,0x28,0x3d,0x5a,0x3b,0x1d,0x3e,0x3e,0xfe,0x21,0x01,0x40,0x0f,0x1f,0x15,0x20,0x18,0x1c,0x17, +0xae,0x11,0x15,0x26,0x3f,0x50,0x2a,0x48,0x6f,0x2a,0xfe,0xd9,0x01,0x7c,0x24,0x54,0x28,0x2f,0x58,0x44,0x29,0x0d,0x0f,0xb5,0x47,0x3f,0x2e,0x30,0x61,0x26,0x01,0x45,0x02,0x1e,0x18,0x0f,0x01,0x08,0x1f,0x1d,0x26,0x5b,0x2c,0x2b,0x50,0x2c,0x37,0x52,0x37,0x1b,0x3f,0x45,0xfe,0x10,0x01,0x42,0x19,0x34,0x14,0x1a,0x22,0x1e,0x17,0xa4, +0x11,0x15,0x22,0x3a,0x4f,0x2d,0x3c,0x6d,0x2c,0xfe,0xad,0xfd,0xfa,0x18,0x12,0x01,0x04,0x24,0x1d,0x26,0x55,0x2c,0x2b,0x50,0x2c,0x37,0x54,0x38,0x1d,0x3f,0x45,0x01,0xe3,0x00,0x00,0x01,0x00,0x50,0xff,0xe8,0x04,0x46,0x05,0x9a,0x00,0x52,0x00,0x2e,0x40,0x19,0x31,0x16,0x91,0x13,0x39,0x0d,0x91,0x0a,0x5f,0x0a,0x01,0x13,0x4b,0x0a, +0x0a,0x4b,0x13,0x03,0x22,0x00,0x91,0x43,0x13,0x22,0x03,0x00,0x3f,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x10,0xed,0x39,0x10,0xed,0x39,0x30,0x31,0x25,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x2e,0x06,0x35,0x33,0x14,0x1e,0x06,0x15,0x14, +0x0e,0x02,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x02,0x58,0x4a,0x76,0x52,0x2b,0x21,0x3b,0x51,0x2f,0x5e,0x5e,0x67,0x75,0x6b,0x71,0x5e,0x5e,0x73,0x69,0x2a,0x46,0x58,0x5d,0x58,0x46,0x2a,0xb1,0x2a,0x46,0x58,0x5d,0x58,0x46, +0x2a,0x17,0x31,0x4c,0x35,0x65,0x63,0x1a,0x32,0x4b,0x31,0x35,0x4c,0x30,0x17,0x3f,0x7c,0xbb,0x7b,0x6f,0xbd,0x8a,0x4e,0x1e,0xb7,0x12,0x13,0x33,0x5c,0x7e,0x7e,0x13,0x2a,0x41,0x2e,0x21,0x36,0x25,0x15,0x96,0x3b,0x3d,0x3f,0x31,0x96,0x3d,0x3b,0x1e,0x24,0x16,0x0e,0x13,0x1d,0x33,0x4f,0x3b,0x1b,0x22,0x18,0x11,0x14,0x1d,0x2e,0x44, +0x32,0x27,0x49,0x3c,0x29,0x07,0x14,0x5c,0x4d,0x26,0x41,0x32,0x21,0x06,0x09,0x2e,0x3f,0x4d,0x28,0x47,0x71,0x50,0x2b,0x3f,0x72,0x9f,0x60,0x4d,0x57,0x22,0x5a,0x27,0x44,0x69,0x48,0x26,0x00,0x01,0x00,0x82,0xff,0xe8,0x04,0xcc,0x05,0x9a,0x00,0x57,0x00,0x2c,0x40,0x17,0x20,0x4c,0x91,0x49,0x18,0x55,0x91,0x52,0x5f,0x49,0x01,0x49, +0x52,0x49,0x52,0x09,0x3f,0x91,0x2a,0x13,0x35,0x09,0x03,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x39,0x10,0xed,0x39,0x30,0x31,0x01,0x34,0x2e,0x06,0x35,0x33,0x14,0x1e,0x06,0x15,0x14,0x0e,0x02,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x26,0x02,0x35,0x34, +0x3e,0x02,0x37,0x33,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x04,0x1b,0x1f,0x33,0x41,0x45,0x41,0x33,0x1f,0xb1,0x1f,0x33,0x41,0x45,0x41,0x33,0x1f,0x17,0x31,0x4c,0x35,0x65,0x63,0x1a,0x32,0x4b,0x31,0x35,0x4c,0x30,0x17, +0x3f,0x7c,0xbb,0x7b,0x87,0xdd,0x9e,0x56,0x1e,0x33,0x43,0x24,0xc9,0x38,0x50,0x33,0x17,0x3b,0x70,0xa2,0x68,0x47,0x73,0x50,0x2b,0x21,0x3b,0x51,0x2f,0x5e,0x5e,0x67,0x75,0x6b,0x71,0x5e,0x5e,0x73,0x69,0x04,0x47,0x1e,0x25,0x18,0x11,0x14,0x1e,0x32,0x4b,0x38,0x1b,0x22,0x18,0x11,0x14,0x1d,0x2e,0x44,0x32,0x27,0x49,0x3c,0x29,0x07, +0x14,0x5c,0x4d,0x26,0x41,0x32,0x21,0x06,0x09,0x2e,0x3f,0x4d,0x28,0x47,0x71,0x50,0x2b,0x5e,0xbc,0x01,0x1b,0xbd,0x7c,0xd2,0xaf,0x8d,0x36,0x4a,0xa0,0xb0,0xc1,0x6b,0x94,0xe0,0x96,0x4b,0x13,0x29,0x41,0x2e,0x21,0x36,0x25,0x15,0x96,0x3b,0x3d,0x3f,0x31,0x96,0x3d,0x00,0x00,0x02,0x00,0x64,0xff,0xe8,0x05,0xe4,0x05,0xb2,0x00,0x29, +0x00,0x3b,0x00,0x26,0x40,0x14,0x2f,0x91,0x1f,0x04,0x37,0xee,0x08,0x08,0x10,0x15,0x91,0x0f,0x0a,0x13,0x00,0x27,0x91,0x01,0x06,0x13,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0xed,0x32,0x39,0x10,0xed,0x3f,0xed,0x30,0x31,0x25,0x15,0x0e,0x03,0x23,0x22,0x27,0x06,0x23,0x22,0x2e,0x02,0x27,0x35,0x1e,0x03,0x17,0x2e,0x03,0x35,0x34,0x12, +0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x02,0x07,0x36,0x36,0x03,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x12,0x17,0x3e,0x03,0x05,0xe4,0x35,0x64,0x6d,0x7c,0x4c,0x82,0x72,0x6b,0x74,0x56,0x83,0x6f,0x63,0x34,0x2f,0x5a,0x5f,0x67,0x3c,0x5c,0x83,0x56,0x28,0x5d,0xaf,0xfa,0x9e,0x92,0xec,0xa7,0x5b,0xb9,0xba,0x72,0xc9,0x78, +0x40,0x7b,0xb1,0x70,0x6e,0xb4,0x80,0x46,0xf7,0xe9,0x75,0xb4,0x7b,0x40,0xd8,0xb0,0x10,0x18,0x10,0x08,0x15,0x15,0x08,0x10,0x18,0x10,0xb5,0x12,0x1e,0x17,0x10,0x03,0x2d,0x82,0xa0,0xbc,0x68,0xa6,0x01,0x04,0xb4,0x5e,0x5d,0xae,0xf8,0x9c,0xe2,0xfe,0xab,0x5d,0x04,0x2f,0x02,0x54,0x85,0xc8,0x85,0x42,0x49,0x8b,0xc8,0x7e,0xf3,0xfe, +0xc7,0x38,0x1b,0x6c,0x9d,0xcb,0x00,0x01,0x00,0x64,0xff,0xe8,0x04,0x89,0x05,0xbb,0x00,0x34,0x00,0x26,0x40,0x13,0x0c,0x0a,0x91,0x1b,0x2d,0x1b,0x2d,0x15,0x00,0x91,0x25,0x13,0x10,0x91,0x15,0x15,0x18,0x13,0x04,0x00,0x3f,0x33,0x33,0x2f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x39,0x30,0x31,0x25,0x32,0x3e,0x02,0x35,0x34, +0x2e,0x02,0x23,0x23,0x35,0x01,0x23,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x37,0x15,0x01,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x02,0x78,0x64,0x8a,0x54,0x25,0x2c,0x58,0x85,0x59,0xc5,0x01,0x64,0x03,0x77,0x76,0xaa,0xb7,0x2b,0x8d,0xce,0x67,0xff,0x81, +0xfe,0x76,0x03,0x8b,0xb9,0x6d,0x2d,0x5a,0x94,0xbf,0x66,0x75,0xc3,0x8c,0x4e,0x1e,0xb7,0x12,0x13,0x34,0x5f,0x83,0x7f,0x35,0x56,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x4b,0x01,0xdb,0x18,0x41,0x97,0x40,0x21,0x20,0x3f,0xfd,0xf0,0x02,0x07,0x53,0x7c,0x97,0x4b,0x75,0xad,0x71,0x37,0x3f,0x72,0x9f,0x60,0x4d,0x57,0x22,0x5a,0x27,0x44,0x69, +0x48,0x25,0x00,0x01,0x00,0x64,0xff,0xe8,0x04,0x89,0x05,0x9a,0x00,0x44,0x00,0x2e,0x40,0x1a,0x3d,0x91,0x08,0x0f,0x36,0x91,0x33,0x00,0x33,0x10,0x33,0x02,0x08,0x33,0x21,0x21,0x33,0x08,0x03,0x00,0x29,0x91,0x19,0x13,0x00,0x03,0x00,0x3f,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x10,0xed,0x39,0x10,0xed,0x30,0x31,0x01,0x33, +0x06,0x15,0x14,0x1e,0x02,0x33,0x21,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x35,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x01,0x17,0xaf,0x09,0x1f,0x3d,0x5a,0x3b, +0x01,0x91,0x24,0x41,0x5d,0x39,0x43,0x76,0x59,0x33,0x5a,0x94,0xbf,0x66,0x75,0xc3,0x8c,0x4e,0x1e,0xb7,0x12,0x13,0x34,0x5f,0x83,0x4e,0x64,0x88,0x52,0x23,0x2a,0x56,0x83,0x59,0x70,0x6a,0x4f,0x6d,0x45,0x1f,0xfe,0x58,0x93,0x69,0x3b,0x06,0x05,0x9a,0x24,0x1b,0x23,0x29,0x15,0x05,0xda,0x2e,0x50,0x40,0x2c,0x09,0x08,0x3c,0x61,0x83, +0x4e,0x75,0xad,0x71,0x37,0x3f,0x72,0x9f,0x60,0x4d,0x57,0x22,0x5a,0x27,0x44,0x69,0x48,0x26,0x35,0x57,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x1e,0x2e,0x38,0x1a,0x55,0x17,0x35,0x57,0x41,0x14,0x2c,0x00,0x03,0x00,0x6e,0xff,0xe8,0x04,0x29,0x05,0xb2,0x00,0x29,0x00,0x38,0x00,0x47,0x00,0x35,0x40,0x1c,0x24,0x2a,0x91,0x13,0x27,0x13, +0x01,0x39,0x91,0x12,0x28,0x12,0x2f,0x13,0x01,0x13,0x12,0x13,0x12,0x07,0x2e,0x91,0x1e,0x04,0x44,0x91,0x07,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x30,0x31,0x01,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x23,0x22, +0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x15,0x33,0x15,0x23,0x15,0x33,0x01,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x13,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x04,0x29,0xad,0x35,0x63,0x8e,0x5a,0x54,0x91,0x6c,0x3d,0x3e,0x6f,0x9a,0x5c,0xc9,0xc9,0x5c,0x9a,0x6f,0x3e, +0x3d,0x6a,0x92,0x55,0x5a,0x8e,0x63,0x35,0xad,0xad,0xad,0xfe,0xb1,0x73,0x6b,0x2f,0x53,0x3e,0x24,0x25,0x42,0x5c,0x36,0xc9,0xc9,0x36,0x5c,0x42,0x25,0x24,0x3e,0x53,0x2f,0x68,0x76,0x01,0xe6,0x94,0x5a,0x88,0x5b,0x2d,0x29,0x52,0x7a,0x52,0x51,0x7c,0x55,0x2b,0xa2,0x2b,0x55,0x7c,0x51,0x52,0x7a,0x52,0x29,0x2e,0x5a,0x88,0x5a,0x94, +0x96,0xa2,0x01,0x38,0x94,0x69,0x6c,0x13,0x2a,0x44,0x31,0x2e,0x44,0x2e,0x17,0xfe,0x32,0x17,0x2e,0x45,0x2d,0x31,0x44,0x2a,0x13,0x6b,0x6a,0x00,0x00,0x03,0x00,0x6e,0xff,0xf1,0x05,0xd9,0x05,0xa7,0x00,0x1d,0x00,0x2a,0x00,0x37,0x00,0x2d,0x40,0x17,0x37,0x91,0x04,0x04,0x20,0x91,0x1d,0x2d,0x92,0x0e,0x0e,0x2a,0x92,0x13,0x1d,0x13, +0x1d,0x13,0x01,0x10,0x03,0x01,0x12,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x2f,0xed,0x10,0xed,0x33,0x2f,0xed,0x30,0x31,0x25,0x15,0x23,0x35,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x33,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23, +0x03,0x11,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x03,0x78,0xa8,0x2b,0x7c,0xd0,0x97,0x54,0x54,0x97,0xd1,0x7d,0x29,0xa8,0x2a,0x7d,0xd0,0x96,0x54,0x55,0x97,0xcf,0x7a,0x2c,0x2c,0x5a,0x91,0x64,0x36,0x37,0x65,0x91,0x5a,0xd2,0x29,0x59,0x91,0x67,0x38,0x35,0x64,0x92,0x5c,0xba,0xc9,0xc9,0x54,0x96,0xd1,0x7d,0x7b,0xc9,0x8f, +0x4d,0x95,0x95,0x4f,0x8f,0xc8,0x7a,0x7e,0xd1,0x96,0x53,0x03,0xca,0xfc,0xcc,0x39,0x6b,0x9a,0x62,0x5b,0x95,0x6a,0x3a,0xfc,0xcc,0x03,0x34,0x39,0x69,0x96,0x5d,0x62,0x9b,0x6a,0x38,0x00,0x00,0x01,0x00,0x76,0xff,0xe8,0x04,0xc1,0x05,0xb2,0x00,0x3a,0x00,0x1b,0x40,0x0d,0x29,0x0a,0x1a,0x31,0x2b,0x91,0x36,0x13,0x15,0x0f,0x91,0x1a, +0x04,0x00,0x3f,0xed,0xcd,0x3f,0xed,0xcd,0x12,0x39,0x39,0x30,0x31,0x13,0x34,0x3e,0x02,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15,0x10,0x21,0x32,0x3e,0x02,0x35,0x33,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x76,0x4c,0x86,0xb8,0x6c, +0x49,0x81,0x62,0x39,0x28,0x4c,0x70,0x49,0x4c,0x76,0x50,0x29,0xaa,0x54,0x88,0xae,0x59,0x71,0xb0,0x79,0x3f,0x4c,0x85,0xb6,0x6a,0x46,0x82,0x65,0x3d,0x01,0x74,0x44,0x89,0x6f,0x46,0xab,0x60,0x9d,0xc7,0x67,0x6b,0xc5,0x96,0x5a,0x01,0x85,0x6f,0x92,0x5f,0x37,0x13,0x0c,0x25,0x3c,0x5b,0x43,0x33,0x52,0x3b,0x20,0x24,0x42,0x5c,0x38, +0x6f,0x99,0x5f,0x2b,0x35,0x63,0x8b,0x55,0x66,0x8d,0x60,0x3a,0x14,0x0d,0x24,0x3e,0x5e,0x47,0xfe,0xfa,0x1d,0x41,0x6a,0x4e,0x74,0xa3,0x67,0x2f,0x2a,0x60,0x9e,0x00,0x00,0x01,0x00,0xa0,0xff,0xe8,0x04,0xc3,0x05,0x9a,0x00,0x3d,0x00,0x1d,0x40,0x0e,0x3d,0x23,0x91,0x0e,0x38,0x38,0x16,0x2d,0x1d,0x03,0x05,0x91,0x16,0x13,0x00,0x3f, +0xed,0x3f,0x33,0x12,0x39,0x2f,0xce,0xed,0x39,0x30,0x31,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x01,0x48, +0x2f,0x5a,0x85,0x57,0x58,0x86,0x5a,0x2e,0x16,0x0f,0xb6,0x10,0x0f,0x4a,0x87,0xbe,0x75,0x80,0xca,0x8b,0x4a,0xa8,0x36,0x5e,0x7f,0x49,0x30,0x68,0x57,0x39,0x08,0x0f,0x15,0x0d,0xb6,0x0b,0x13,0x0d,0x08,0x4d,0x80,0xa8,0x5a,0x30,0x63,0x5e,0x54,0x20,0x01,0xdc,0x53,0x82,0x5a,0x2f,0x2b,0x4b,0x68,0x3d,0x30,0x53,0x20,0x2a,0x53,0x27, +0x5a,0x9d,0x75,0x44,0x47,0x83,0xb7,0x71,0x03,0xc0,0xfe,0x42,0x75,0x57,0x33,0x19,0x44,0x78,0x5f,0x22,0x48,0x47,0x40,0x1a,0x1d,0x45,0x48,0x49,0x21,0x77,0xaa,0x6d,0x34,0x11,0x26,0x3a,0x2a,0x00,0x00,0x02,0x00,0x78,0xff,0xe8,0x04,0xae,0x05,0xae,0x00,0x2f,0x00,0x3f,0x00,0x26,0x40,0x15,0x1e,0x03,0x35,0x91,0x11,0x00,0x40,0x09, +0x0d,0x48,0x00,0x00,0x16,0x3d,0x91,0x26,0x04,0x0b,0x91,0x16,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x2b,0xce,0xed,0x39,0x39,0x30,0x31,0x01,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x33,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e, +0x02,0x15,0x14,0x0e,0x02,0x01,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x02,0x87,0x26,0x46,0x21,0x07,0x08,0x1a,0x2f,0x40,0x27,0x2f,0x47,0x2f,0x17,0xaf,0x35,0x60,0x86,0x50,0x51,0x82,0x5b,0x32,0x14,0x0c,0x73,0x70,0x4f,0x90,0xc9,0x7a,0x7a,0xc5,0x8a,0x4b,0x43,0x88,0xcf,0xfe,0x14,0x33,0x5b,0x7f,0x4d, +0xb8,0xc4,0x32,0x5f,0x89,0x58,0xb0,0xb4,0x01,0x7f,0x07,0x07,0x17,0x35,0x22,0x29,0x3d,0x28,0x13,0x17,0x27,0x36,0x1f,0x43,0x6e,0x4e,0x2a,0x2a,0x50,0x70,0x47,0x39,0x58,0x1f,0x45,0xed,0x97,0x7e,0xc8,0x8c,0x4a,0x4b,0x8a,0xc1,0x76,0x72,0xc8,0x94,0x55,0x02,0x19,0x60,0x91,0x60,0x31,0xcb,0xbb,0x59,0x8d,0x61,0x34,0xca,0x00,0x01, +0x00,0x82,0xff,0xd5,0x05,0x14,0x05,0xb2,0x00,0x24,0x00,0x22,0x40,0x10,0x03,0x22,0x00,0x24,0x12,0x24,0x12,0x24,0x01,0x18,0x91,0x0d,0x04,0x02,0x01,0x13,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x39,0x39,0x30,0x31,0x25,0x01,0x35,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e, +0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x33,0x25,0x04,0xd6,0xfc,0x21,0x01,0x73,0x71,0xb5,0x7e,0x44,0x59,0x9d,0xd8,0x7f,0x83,0xd6,0x99,0x53,0xaa,0x36,0x68,0x9a,0x63,0x65,0x9c,0x6b,0x37,0x4d,0x94,0xd5,0x89,0x01,0x01,0x6a,0xe5,0xfe,0xf0,0x9d,0x6b,0x20,0x75,0xa2,0xcd,0x78,0x84,0xdd,0x9f,0x59,0x50,0x96,0xd5,0x85, +0x5d,0x9d,0x70,0x3f,0x48,0x7e,0xaa,0x61,0x68,0xb8,0x92,0x65,0x15,0x65,0x00,0x01,0x00,0x62,0xff,0xe8,0x04,0xad,0x05,0xb2,0x00,0x3a,0x00,0x1b,0x40,0x0d,0x31,0x12,0x05,0x2c,0x91,0x26,0x21,0x04,0x10,0x91,0x0a,0x05,0x13,0x00,0x3f,0xcd,0xed,0x3f,0xcd,0xed,0x12,0x39,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35, +0x33,0x14,0x1e,0x02,0x33,0x20,0x11,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x04,0xad,0x5a,0x96,0xc5,0x6b,0x67,0xc7,0x9d,0x60,0xab,0x46,0x6f,0x89,0x44,0x01,0x74,0x3d,0x65,0x82,0x46,0x6a,0xb6,0x85,0x4c,0x42,0x7b, +0xaf,0x6d,0x59,0xad,0x89,0x54,0xaa,0x29,0x50,0x76,0x4c,0x49,0x70,0x4d,0x27,0x39,0x61,0x82,0x49,0x6c,0xb8,0x86,0x4c,0x01,0x85,0x75,0x9e,0x60,0x2a,0x2f,0x67,0xa3,0x74,0x4e,0x6a,0x41,0x1d,0x01,0x06,0x47,0x5e,0x3e,0x24,0x0d,0x14,0x3a,0x60,0x8d,0x66,0x53,0x8b,0x63,0x37,0x2b,0x5f,0x99,0x6f,0x38,0x5c,0x42,0x24,0x20,0x3b,0x52, +0x33,0x43,0x5b,0x3c,0x25,0x0c,0x13,0x37,0x5f,0x92,0x00,0x02,0x00,0x64,0xff,0xe8,0x05,0xe4,0x05,0xb2,0x00,0x29,0x00,0x3b,0x00,0x26,0x40,0x14,0x2f,0x91,0x1e,0x13,0x0f,0x14,0x91,0x0e,0x09,0x04,0x37,0xee,0x07,0x07,0x29,0x26,0x91,0x00,0x05,0x04,0x00,0x3f,0x33,0xed,0x32,0x39,0x10,0xed,0x3f,0x33,0xed,0x32,0x3f,0xed,0x30,0x31, +0x13,0x3e,0x03,0x33,0x32,0x17,0x36,0x33,0x32,0x1e,0x02,0x17,0x15,0x2e,0x03,0x27,0x1e,0x03,0x15,0x14,0x02,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x37,0x06,0x06,0x07,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x02,0x27,0x0e,0x03,0x64,0x34,0x65,0x6d,0x7c,0x4c,0x82,0x72,0x6a,0x75,0x55,0x84,0x6f,0x62,0x35,0x2f, +0x5a,0x5f,0x67,0x3c,0x5b,0x84,0x56,0x28,0x5d,0xaf,0xfb,0x9d,0x92,0xec,0xa7,0x5b,0xb9,0xba,0x72,0xc9,0x66,0xde,0x40,0x7b,0xb0,0x71,0x6e,0xb4,0x80,0x46,0xf7,0xe9,0x75,0xb4,0x7b,0x40,0x05,0x72,0x10,0x18,0x10,0x08,0x15,0x15,0x08,0x10,0x18,0x10,0xb5,0x12,0x1e,0x17,0x10,0x03,0x2d,0x82,0xa0,0xbc,0x68,0xa6,0xfe,0xfc,0xb4,0x5e, +0x5d,0xae,0xf8,0x9c,0xe2,0x01,0x55,0x5d,0x04,0x2f,0x26,0xfd,0xd2,0x86,0xc7,0x85,0x42,0x49,0x8b,0xc8,0x7e,0xf3,0x01,0x39,0x38,0x1b,0x6c,0x9d,0xcb,0x00,0x00,0x02,0x00,0x78,0xff,0xe8,0x05,0xbe,0x05,0xb2,0x00,0x13,0x00,0x27,0x00,0x10,0xb7,0x14,0x91,0x0a,0x04,0x1e,0x91,0x00,0x13,0x00,0x3f,0xed,0x3f,0xed,0x30,0x31,0x05,0x22, +0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x24,0x33,0x32,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x06,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x03,0x15,0x98,0xf6,0xb0,0x5f,0x60,0xb4,0x01,0x01,0xa0,0x94,0xf2,0xac,0x5f,0x61,0xb2,0xfb,0x8f,0x72,0xbc,0x87,0x4a,0x48,0x83,0xb8,0x70,0x76,0xbd,0x85, +0x47,0x44,0x81,0xb9,0x18,0x6a,0xc0,0x01,0x0a,0xa0,0xac,0x01,0x18,0xc6,0x6c,0x6a,0xbe,0xfe,0xf5,0xa0,0xaf,0xfe,0xe7,0xc5,0x6a,0x05,0x32,0x56,0x9c,0xd9,0x84,0x83,0xd9,0x9b,0x55,0x4f,0x96,0xda,0x8a,0x8d,0xdd,0x98,0x50,0x00,0x00,0x03,0x00,0xbe,0x02,0x27,0x03,0x98,0x06,0x8f,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x1a,0x40,0x09, +0x0b,0x09,0x09,0x02,0x05,0x07,0x07,0x00,0x02,0xb8,0x01,0x4a,0x00,0x3f,0xcd,0x33,0x2f,0xcd,0x11,0x33,0x2f,0xcd,0x30,0x31,0x01,0x23,0x11,0x33,0x01,0x23,0x11,0x33,0x05,0x23,0x11,0x33,0x01,0x67,0xa9,0xa9,0x02,0x31,0xa9,0xa9,0xfe,0xe8,0xa9,0xa9,0x02,0x27,0x02,0xa6,0xfd,0x5a,0x02,0xa6,0x67,0x02,0x29,0x00,0x00,0x00,0x00,0x01, +0x00,0x00,0xc2,0x66,0x00,0x01,0x20,0x64,0xc0,0x00,0x00,0x0d,0x02,0x58,0x00,0x05,0x00,0x55,0xff,0xcd,0x00,0x05,0x00,0x56,0xff,0xbe,0x00,0x05,0x00,0xe4,0xff,0xbe,0x00,0x05,0x00,0xfb,0xff,0xbe,0x00,0x05,0x01,0x1b,0xff,0xcd,0x00,0x05,0x01,0x1d,0xff,0xcd,0x00,0x05,0x01,0x1f,0xff,0xbe,0x00,0x05,0x01,0x73,0xff,0xcd,0x00,0x05, +0x01,0x75,0xff,0xbe,0x00,0x05,0x01,0xd5,0xff,0x6f,0x00,0x05,0x02,0x2b,0xff,0xbc,0x00,0x05,0x02,0x3e,0xff,0xbe,0x00,0x0a,0x00,0x55,0xff,0xcd,0x00,0x0a,0x00,0x56,0xff,0xbe,0x00,0x0a,0x00,0xe4,0xff,0xbe,0x00,0x0a,0x00,0xfb,0xff,0xbe,0x00,0x0a,0x01,0x1b,0xff,0xcd,0x00,0x0a,0x01,0x1d,0xff,0xcd,0x00,0x0a,0x01,0x1f,0xff,0xbe, +0x00,0x0a,0x01,0x73,0xff,0xcd,0x00,0x0a,0x01,0x75,0xff,0xbe,0x00,0x0a,0x01,0xd5,0xff,0x6f,0x00,0x0a,0x02,0x2b,0xff,0xbc,0x00,0x0a,0x02,0x3e,0xff,0xbe,0x00,0x0b,0x00,0x4d,0x00,0xe9,0x00,0x0b,0x01,0x64,0x00,0xe9,0x00,0x0d,0x00,0x24,0xff,0x5a,0x00,0x0d,0x00,0x2d,0xff,0x66,0x00,0x0d,0x00,0x46,0xff,0x9a,0x00,0x0d,0x00,0x47, +0xff,0x9a,0x00,0x0d,0x00,0x48,0xff,0x9a,0x00,0x0d,0x00,0x4a,0xff,0x9a,0x00,0x0d,0x00,0x52,0xff,0x9a,0x00,0x0d,0x00,0x54,0xff,0x9a,0x00,0x0d,0x00,0xa9,0xff,0x58,0x00,0x0d,0x00,0xf8,0xff,0x9a,0x00,0x0d,0x00,0xfd,0xff,0x9a,0x00,0x0d,0x00,0xff,0xff,0x9a,0x00,0x0d,0x01,0x00,0xff,0x9a,0x00,0x0d,0x01,0x03,0xff,0x5a,0x00,0x0d, +0x01,0x05,0xff,0x5a,0x00,0x0d,0x01,0x08,0xff,0x9a,0x00,0x0d,0x01,0x0b,0xff,0x9a,0x00,0x0d,0x01,0x45,0xff,0x5a,0x00,0x0d,0x01,0x48,0xff,0x9a,0x00,0x0d,0x01,0x52,0xff,0x9a,0x00,0x0d,0x01,0x54,0xff,0x9a,0x00,0x0d,0x01,0x56,0xff,0x9a,0x00,0x0d,0x01,0x63,0xff,0x66,0x00,0x0d,0x01,0x85,0xff,0x5a,0x00,0x0d,0x01,0x87,0xff,0x5a, +0x00,0x0d,0x01,0xa9,0xff,0x58,0x00,0x0d,0x01,0xb0,0xff,0x58,0x00,0x0d,0x01,0xe7,0xff,0x58,0x00,0x0d,0x02,0x0c,0xff,0x98,0x00,0x0d,0x02,0x15,0xff,0x98,0x00,0x0d,0x02,0x18,0xff,0x98,0x00,0x0d,0x02,0x1b,0xff,0x98,0x00,0x0d,0x02,0x27,0xff,0x98,0x00,0x0d,0x02,0x2a,0xff,0x98,0x00,0x0f,0x00,0xb4,0xff,0x31,0x00,0x0f,0x00,0xb5, +0xff,0x31,0x00,0x0f,0x00,0xb6,0xff,0x31,0x00,0x0f,0x00,0xb7,0xff,0x31,0x00,0x10,0x01,0x33,0xff,0xdb,0x00,0x10,0x01,0xd3,0xff,0xe7,0x00,0x10,0x02,0x37,0xff,0xdb,0x00,0x11,0x00,0xb4,0xff,0x31,0x00,0x11,0x00,0xb5,0xff,0x3d,0x00,0x11,0x00,0xb6,0xff,0x31,0x00,0x11,0x00,0xb7,0xff,0x3d,0x00,0x1e,0x02,0x37,0xff,0xdb,0x00,0x22, +0x01,0xcb,0xff,0xe7,0x00,0x22,0x02,0x37,0xff,0xdb,0x00,0x24,0x00,0x0d,0xff,0x7f,0x00,0x24,0x00,0x0f,0x00,0x44,0x00,0x24,0x00,0x1e,0x00,0x44,0x00,0x24,0x00,0x26,0xff,0xe5,0x00,0x24,0x00,0x2a,0xff,0xe5,0x00,0x24,0x00,0x2d,0x00,0x5e,0x00,0x24,0x00,0x32,0xff,0xe5,0x00,0x24,0x00,0x37,0xff,0x6d,0x00,0x24,0x00,0x38,0xff,0xe5, +0x00,0x24,0x00,0x39,0xff,0x8b,0x00,0x24,0x00,0x3a,0xff,0xb6,0x00,0x24,0x00,0x3c,0xff,0x64,0x00,0x24,0x00,0x3d,0x00,0x3b,0x00,0x24,0x00,0x57,0xff,0xe5,0x00,0x24,0x00,0x59,0xff,0xd5,0x00,0x24,0x00,0x5a,0xff,0xe5,0x00,0x24,0x00,0x5c,0xff,0xdb,0x00,0x24,0x00,0x8d,0xff,0x9a,0x00,0x24,0x00,0xb4,0xff,0x66,0x00,0x24,0x00,0xb5, +0xff,0x3f,0x00,0x24,0x00,0xb6,0xff,0x66,0x00,0x24,0x00,0xb7,0xff,0x3f,0x00,0x24,0x00,0xba,0xff,0xc1,0x00,0x24,0x00,0xbb,0xff,0x64,0x00,0x24,0x00,0xe5,0x00,0x3b,0x00,0x24,0x00,0xea,0xff,0x64,0x00,0x24,0x00,0xeb,0xff,0xdb,0x00,0x24,0x00,0xf7,0xff,0xe5,0x00,0x24,0x00,0xfc,0xff,0xe5,0x00,0x24,0x00,0xfe,0xff,0xe5,0x00,0x24, +0x01,0x18,0xff,0xe5,0x00,0x24,0x01,0x20,0xff,0x6d,0x00,0x24,0x01,0x21,0xff,0xe5,0x00,0x24,0x01,0x22,0xff,0x6d,0x00,0x24,0x01,0x23,0xff,0xe5,0x00,0x24,0x01,0x24,0xff,0xe5,0x00,0x24,0x01,0x26,0xff,0xe5,0x00,0x24,0x01,0x28,0x00,0x3b,0x00,0x24,0x01,0x2a,0x00,0x3b,0x00,0x24,0x01,0x47,0xff,0xe5,0x00,0x24,0x01,0x51,0xff,0xe5, +0x00,0x24,0x01,0x53,0xff,0xe5,0x00,0x24,0x01,0x55,0xff,0xe5,0x00,0x24,0x01,0x63,0x00,0x5e,0x00,0x24,0x01,0x6e,0xff,0xe5,0x00,0x24,0x01,0x70,0xff,0xe5,0x00,0x24,0x01,0x76,0xff,0x6d,0x00,0x24,0x01,0x77,0xff,0xe5,0x00,0x24,0x01,0x78,0xff,0xe5,0x00,0x24,0x01,0x7a,0xff,0xe5,0x00,0x24,0x01,0x7c,0xff,0xe5,0x00,0x24,0x01,0x7e, +0xff,0xe5,0x00,0x24,0x01,0x80,0xff,0xb6,0x00,0x24,0x01,0x81,0xff,0xe5,0x00,0x24,0x01,0x82,0xff,0x64,0x00,0x24,0x01,0x83,0xff,0xdb,0x00,0x24,0x01,0x89,0xff,0xe5,0x00,0x24,0x01,0x8c,0xff,0xb6,0x00,0x24,0x01,0x8d,0xff,0xe5,0x00,0x24,0x01,0x8e,0xff,0xb6,0x00,0x24,0x01,0x8f,0xff,0xe5,0x00,0x24,0x01,0x90,0xff,0xb6,0x00,0x24, +0x01,0x91,0xff,0xe5,0x00,0x24,0x01,0x92,0xff,0x64,0x00,0x24,0x01,0x93,0xff,0xdb,0x00,0x25,0x00,0x37,0xff,0xa4,0x00,0x25,0x00,0x3c,0xff,0xbe,0x00,0x25,0x00,0xbb,0xff,0xbe,0x00,0x25,0x00,0xc4,0xff,0xb2,0x00,0x25,0x00,0xc5,0xff,0xb2,0x00,0x25,0x00,0xea,0xff,0xbe,0x00,0x25,0x01,0x20,0xff,0xa4,0x00,0x25,0x01,0x22,0xff,0xa4, +0x00,0x25,0x01,0x76,0xff,0xa4,0x00,0x25,0x01,0x82,0xff,0xbe,0x00,0x25,0x01,0x92,0xff,0xbe,0x00,0x26,0x00,0x22,0x00,0x02,0x00,0x26,0x00,0x26,0xff,0xc9,0x00,0x26,0x00,0x2a,0xff,0xc9,0x00,0x26,0x00,0x32,0xff,0xe5,0x00,0x26,0x00,0x34,0xff,0xc9,0x00,0x26,0x00,0x64,0xff,0xc9,0x00,0x26,0x00,0x67,0xff,0xc9,0x00,0x26,0x00,0x77, +0x00,0x1d,0x00,0x26,0x00,0x92,0xff,0xc9,0x00,0x26,0x00,0xaa,0xff,0xcf,0x00,0x26,0x00,0xaf,0xff,0xc9,0x00,0x26,0x00,0xb0,0xff,0xc9,0x00,0x26,0x00,0xbe,0xff,0xcf,0x00,0x26,0x00,0xd0,0xff,0xc9,0x00,0x26,0x00,0xd1,0xff,0xc9,0x00,0x26,0x00,0xd2,0xff,0xc9,0x00,0x26,0x00,0xf7,0xff,0xc9,0x00,0x26,0x00,0xfc,0xff,0xc9,0x00,0x26, +0x00,0xfe,0xff,0xc9,0x00,0x26,0x01,0x18,0xff,0xe5,0x00,0x26,0x01,0x47,0xff,0xc9,0x00,0x26,0x01,0x51,0xff,0xc9,0x00,0x26,0x01,0x53,0xff,0xc9,0x00,0x26,0x01,0x55,0xff,0xc9,0x00,0x26,0x01,0x5c,0x00,0x1d,0x00,0x26,0x01,0x5e,0x00,0x1d,0x00,0x26,0x01,0x60,0x00,0x1d,0x00,0x26,0x01,0x6e,0xff,0xe5,0x00,0x26,0x01,0x70,0xff,0xe5, +0x00,0x26,0x01,0x89,0xff,0xe5,0x00,0x27,0x00,0x0f,0xff,0x7f,0x00,0x27,0x00,0x11,0xff,0x7f,0x00,0x27,0x00,0x24,0xff,0xdf,0x00,0x27,0x00,0x37,0xff,0xa4,0x00,0x27,0x00,0x3b,0xff,0xcb,0x00,0x27,0x00,0x3d,0xff,0xcf,0x00,0x27,0x00,0x62,0xff,0xdf,0x00,0x27,0x00,0x63,0xff,0xdf,0x00,0x27,0x00,0x91,0xff,0xb6,0x00,0x27,0x00,0xac, +0xff,0x7f,0x00,0x27,0x00,0xad,0xff,0xdf,0x00,0x27,0x00,0xae,0xff,0xdf,0x00,0x27,0x00,0xbb,0xff,0xf6,0x00,0x27,0x00,0xc4,0xff,0x8b,0x00,0x27,0x00,0xc5,0xff,0x8b,0x00,0x27,0x00,0xc7,0xff,0xdf,0x00,0x27,0x00,0xc9,0xff,0xdf,0x00,0x27,0x00,0xe5,0xff,0xcf,0x00,0x27,0x01,0x03,0xff,0xdf,0x00,0x27,0x01,0x05,0xff,0xdf,0x00,0x27, +0x01,0x20,0xff,0xa4,0x00,0x27,0x01,0x22,0xff,0xa4,0x00,0x27,0x01,0x28,0xff,0xcf,0x00,0x27,0x01,0x2a,0xff,0xcf,0x00,0x27,0x01,0x45,0xff,0xdf,0x00,0x27,0x01,0x76,0xff,0xa4,0x00,0x27,0x01,0x85,0xff,0xdf,0x00,0x27,0x01,0x87,0xff,0xdf,0x00,0x28,0x00,0x24,0x00,0x0a,0x00,0x28,0x00,0x2d,0x00,0x44,0x00,0x28,0x00,0x37,0x00,0x04, +0x00,0x28,0x00,0x3a,0x00,0x1d,0x00,0x28,0x00,0x3b,0x00,0x08,0x00,0x28,0x00,0x62,0x00,0x0a,0x00,0x28,0x00,0x63,0x00,0x0a,0x00,0x28,0x00,0x77,0x00,0x12,0x00,0x28,0x00,0xad,0x00,0x0a,0x00,0x28,0x00,0xae,0x00,0x0a,0x00,0x28,0x00,0xc7,0x00,0x0a,0x00,0x28,0x00,0xc9,0x00,0x0a,0x00,0x28,0x01,0x03,0x00,0x0a,0x00,0x28,0x01,0x05, +0x00,0x0a,0x00,0x28,0x01,0x20,0x00,0x04,0x00,0x28,0x01,0x22,0x00,0x04,0x00,0x28,0x01,0x45,0x00,0x0a,0x00,0x28,0x01,0x5c,0x00,0x12,0x00,0x28,0x01,0x5e,0x00,0x12,0x00,0x28,0x01,0x60,0x00,0x12,0x00,0x28,0x01,0x63,0x00,0x44,0x00,0x28,0x01,0x76,0x00,0x04,0x00,0x28,0x01,0x80,0x00,0x1d,0x00,0x28,0x01,0x85,0x00,0x0a,0x00,0x28, +0x01,0x87,0x00,0x0a,0x00,0x28,0x01,0x8c,0x00,0x1d,0x00,0x28,0x01,0x8e,0x00,0x1d,0x00,0x28,0x01,0x90,0x00,0x1d,0x00,0x29,0x00,0x0f,0xff,0x66,0x00,0x29,0x00,0x11,0xff,0x66,0x00,0x29,0x00,0x24,0xff,0x7b,0x00,0x29,0x00,0x2d,0xff,0xbe,0x00,0x29,0x00,0x36,0xff,0xe5,0x00,0x29,0x00,0x37,0x00,0x0e,0x00,0x29,0x00,0x44,0xff,0xb4, +0x00,0x29,0x00,0x49,0x00,0x0a,0x00,0x29,0x00,0x62,0xff,0x7b,0x00,0x29,0x00,0x63,0xff,0x7b,0x00,0x29,0x00,0x77,0x00,0x27,0x00,0x29,0x00,0x91,0xff,0x4c,0x00,0x29,0x00,0xac,0xff,0x66,0x00,0x29,0x00,0xad,0xff,0x7b,0x00,0x29,0x00,0xae,0xff,0x7b,0x00,0x29,0x00,0xc4,0xff,0x4a,0x00,0x29,0x00,0xc5,0xff,0x4a,0x00,0x29,0x00,0xc7, +0xff,0x7b,0x00,0x29,0x00,0xc9,0xff,0x7b,0x00,0x29,0x00,0xe3,0xff,0xe5,0x00,0x29,0x00,0xfa,0xff,0xe5,0x00,0x29,0x01,0x03,0xff,0x7b,0x00,0x29,0x01,0x05,0xff,0x7b,0x00,0x29,0x01,0x06,0xff,0xb4,0x00,0x29,0x01,0x1e,0xff,0xe5,0x00,0x29,0x01,0x20,0x00,0x0e,0x00,0x29,0x01,0x22,0x00,0x0e,0x00,0x29,0x01,0x45,0xff,0x7b,0x00,0x29, +0x01,0x5c,0x00,0x27,0x00,0x29,0x01,0x5e,0x00,0x27,0x00,0x29,0x01,0x60,0x00,0x27,0x00,0x29,0x01,0x63,0xff,0xbe,0x00,0x29,0x01,0x74,0xff,0xe5,0x00,0x29,0x01,0x76,0x00,0x0e,0x00,0x29,0x01,0x85,0xff,0x7b,0x00,0x29,0x01,0x87,0xff,0x7b,0x00,0x29,0x01,0x88,0xff,0xb4,0x00,0x29,0x02,0x3d,0xff,0xe5,0x00,0x2a,0x00,0x37,0xff,0xcf, +0x00,0x2a,0x00,0x39,0xff,0xe5,0x00,0x2a,0x00,0x5c,0xff,0xe5,0x00,0x2a,0x00,0xba,0xff,0xe5,0x00,0x2a,0x00,0xeb,0xff,0xe5,0x00,0x2a,0x01,0x20,0xff,0xcf,0x00,0x2a,0x01,0x22,0xff,0xcf,0x00,0x2a,0x01,0x76,0xff,0xcf,0x00,0x2a,0x01,0x83,0xff,0xe5,0x00,0x2a,0x01,0x93,0xff,0xe5,0x00,0x2d,0x00,0x0f,0xff,0x9a,0x00,0x2d,0x00,0x11, +0xff,0x9a,0x00,0x2d,0x00,0x24,0xff,0xdb,0x00,0x2d,0x00,0x2d,0xff,0xbe,0x00,0x2d,0x00,0x44,0xff,0xe5,0x00,0x2d,0x00,0x62,0xff,0xdb,0x00,0x2d,0x00,0x63,0xff,0xdb,0x00,0x2d,0x00,0x69,0xff,0xe5,0x00,0x2d,0x00,0x6a,0xff,0xe5,0x00,0x2d,0x00,0x6b,0xff,0xe5,0x00,0x2d,0x00,0x6c,0xff,0xe5,0x00,0x2d,0x00,0x6d,0xff,0xe5,0x00,0x2d, +0x00,0x6e,0xff,0xe5,0x00,0x2d,0x00,0x91,0xff,0x98,0x00,0x2d,0x00,0xa0,0xff,0xe5,0x00,0x2d,0x00,0xac,0xff,0x9a,0x00,0x2d,0x00,0xad,0xff,0xdb,0x00,0x2d,0x00,0xae,0xff,0xdb,0x00,0x2d,0x00,0xc4,0xff,0x66,0x00,0x2d,0x00,0xc5,0xff,0x9a,0x00,0x2d,0x00,0xc7,0xff,0xdb,0x00,0x2d,0x00,0xc9,0xff,0xdb,0x00,0x2d,0x01,0x03,0xff,0xdb, +0x00,0x2d,0x01,0x04,0xff,0xe5,0x00,0x2d,0x01,0x05,0xff,0xdb,0x00,0x2d,0x01,0x06,0xff,0xe5,0x00,0x2d,0x01,0x45,0xff,0xdb,0x00,0x2d,0x01,0x46,0xff,0xe5,0x00,0x2d,0x01,0x63,0xff,0xbe,0x00,0x2d,0x01,0x85,0xff,0xdb,0x00,0x2d,0x01,0x86,0xff,0xe5,0x00,0x2d,0x01,0x87,0xff,0xdb,0x00,0x2d,0x01,0x88,0xff,0xe5,0x00,0x2e,0x00,0x0f, +0x00,0x27,0x00,0x2e,0x00,0x1e,0x00,0x27,0x00,0x2e,0x00,0x26,0xff,0xa6,0x00,0x2e,0x00,0x2a,0xff,0xa6,0x00,0x2e,0x00,0x2d,0x00,0x5a,0x00,0x2e,0x00,0x32,0xff,0xa6,0x00,0x2e,0x00,0x34,0xff,0xa6,0x00,0x2e,0x00,0x3b,0x00,0x25,0x00,0x2e,0x00,0x3d,0x00,0x27,0x00,0x2e,0x00,0x46,0xff,0xe5,0x00,0x2e,0x00,0x47,0xff,0xe5,0x00,0x2e, +0x00,0x48,0xff,0xe5,0x00,0x2e,0x00,0x4a,0xff,0xe5,0x00,0x2e,0x00,0x52,0xff,0xe5,0x00,0x2e,0x00,0x54,0xff,0xe5,0x00,0x2e,0x00,0x57,0xff,0xd1,0x00,0x2e,0x00,0x59,0xff,0xb6,0x00,0x2e,0x00,0x5a,0xff,0xcb,0x00,0x2e,0x00,0x5c,0xff,0xa4,0x00,0x2e,0x00,0x64,0xff,0x9a,0x00,0x2e,0x00,0x67,0xff,0xa6,0x00,0x2e,0x00,0x6f,0xff,0xe5, +0x00,0x2e,0x00,0x70,0xff,0xe5,0x00,0x2e,0x00,0x71,0xff,0xe5,0x00,0x2e,0x00,0x72,0xff,0xe5,0x00,0x2e,0x00,0x73,0xff,0xe5,0x00,0x2e,0x00,0x74,0xff,0xcf,0x00,0x2e,0x00,0x77,0x00,0x27,0x00,0x2e,0x00,0x79,0xff,0xe5,0x00,0x2e,0x00,0x7a,0xff,0xe5,0x00,0x2e,0x00,0x7b,0xff,0xe5,0x00,0x2e,0x00,0x7c,0xff,0xe5,0x00,0x2e,0x00,0x7d, +0xff,0xe5,0x00,0x2e,0x00,0x92,0xff,0xa6,0x00,0x2e,0x00,0xaf,0xff,0xa6,0x00,0x2e,0x00,0xb0,0xff,0xa6,0x00,0x2e,0x00,0xb1,0xff,0xe5,0x00,0x2e,0x00,0xba,0xff,0xa4,0x00,0x2e,0x00,0xc4,0x00,0x44,0x00,0x2e,0x00,0xc5,0x00,0x44,0x00,0x2e,0x00,0xd0,0xff,0xa6,0x00,0x2e,0x00,0xd1,0xff,0xa6,0x00,0x2e,0x00,0xd2,0xff,0xa6,0x00,0x2e, +0x00,0xe5,0x00,0x27,0x00,0x2e,0x00,0xeb,0xff,0xa4,0x00,0x2e,0x00,0xf7,0xff,0xa6,0x00,0x2e,0x00,0xf8,0xff,0xe5,0x00,0x2e,0x00,0xfc,0xff,0xa6,0x00,0x2e,0x00,0xfd,0xff,0xe5,0x00,0x2e,0x00,0xfe,0xff,0xa6,0x00,0x2e,0x00,0xff,0xff,0xe5,0x00,0x2e,0x01,0x00,0xff,0xe5,0x00,0x2e,0x01,0x08,0xff,0xe5,0x00,0x2e,0x01,0x0b,0xff,0xe5, +0x00,0x2e,0x01,0x0d,0xff,0xe5,0x00,0x2e,0x01,0x18,0xff,0xa6,0x00,0x2e,0x01,0x19,0xff,0xe5,0x00,0x2e,0x01,0x21,0xff,0xd1,0x00,0x2e,0x01,0x23,0xff,0xd1,0x00,0x2e,0x01,0x28,0x00,0x27,0x00,0x2e,0x01,0x2a,0x00,0x27,0x00,0x2e,0x01,0x47,0xff,0xa6,0x00,0x2e,0x01,0x48,0xff,0xe5,0x00,0x2e,0x01,0x4c,0xff,0xe5,0x00,0x2e,0x01,0x4e, +0xff,0xe5,0x00,0x2e,0x01,0x50,0xff,0xe5,0x00,0x2e,0x01,0x51,0xff,0xa6,0x00,0x2e,0x01,0x52,0xff,0xe5,0x00,0x2e,0x01,0x53,0xff,0xa6,0x00,0x2e,0x01,0x54,0xff,0xe5,0x00,0x2e,0x01,0x55,0xff,0xa6,0x00,0x2e,0x01,0x56,0xff,0xe5,0x00,0x2e,0x01,0x5c,0x00,0x27,0x00,0x2e,0x01,0x5e,0x00,0x27,0x00,0x2e,0x01,0x60,0x00,0x27,0x00,0x2e, +0x01,0x63,0x00,0x5a,0x00,0x2e,0x01,0x6e,0xff,0xa6,0x00,0x2e,0x01,0x6f,0xff,0xe5,0x00,0x2e,0x01,0x70,0xff,0xa6,0x00,0x2e,0x01,0x71,0xff,0xe5,0x00,0x2e,0x01,0x77,0xff,0xd1,0x00,0x2e,0x01,0x81,0xff,0xcb,0x00,0x2e,0x01,0x83,0xff,0xa4,0x00,0x2e,0x01,0x89,0xff,0xa6,0x00,0x2e,0x01,0x8a,0xff,0xe5,0x00,0x2e,0x01,0x8d,0xff,0xcb, +0x00,0x2e,0x01,0x8f,0xff,0xcb,0x00,0x2e,0x01,0x91,0xff,0xcb,0x00,0x2e,0x01,0x93,0xff,0xa4,0x00,0x2f,0x00,0x0d,0xff,0x31,0x00,0x2f,0x00,0x22,0xff,0x9a,0x00,0x2f,0x00,0x24,0x00,0x3b,0x00,0x2f,0x00,0x26,0xff,0xbe,0x00,0x2f,0x00,0x2a,0xff,0xbe,0x00,0x2f,0x00,0x2d,0x00,0x64,0x00,0x2f,0x00,0x32,0xff,0xba,0x00,0x2f,0x00,0x34, +0xff,0xba,0x00,0x2f,0x00,0x37,0xff,0x8f,0x00,0x2f,0x00,0x38,0xff,0xe3,0x00,0x2f,0x00,0x39,0xff,0x8b,0x00,0x2f,0x00,0x3a,0xff,0xcf,0x00,0x2f,0x00,0x3c,0xff,0x7f,0x00,0x2f,0x00,0x3d,0x00,0x3b,0x00,0x2f,0x00,0x57,0xff,0xe5,0x00,0x2f,0x00,0x59,0xff,0x9a,0x00,0x2f,0x00,0x5a,0xff,0xbe,0x00,0x2f,0x00,0x5c,0xff,0xb4,0x00,0x2f, +0x00,0x64,0xff,0xbe,0x00,0x2f,0x00,0x67,0xff,0xba,0x00,0x2f,0x00,0x68,0xff,0xe3,0x00,0x2f,0x00,0x8d,0xff,0x9a,0x00,0x2f,0x00,0x92,0xff,0xba,0x00,0x2f,0x00,0xaf,0xff,0xba,0x00,0x2f,0x00,0xb0,0xff,0xba,0x00,0x2f,0x00,0xb4,0xff,0x73,0x00,0x2f,0x00,0xb5,0xff,0x8b,0x00,0x2f,0x00,0xb6,0xff,0x73,0x00,0x2f,0x00,0xb7,0xff,0x7f, +0x00,0x2f,0x00,0xba,0xff,0xb4,0x00,0x2f,0x00,0xbb,0xff,0x9a,0x00,0x2f,0x00,0xc4,0x00,0x44,0x00,0x2f,0x00,0xc5,0x00,0x44,0x00,0x2f,0x00,0xd0,0xff,0xba,0x00,0x2f,0x00,0xd1,0xff,0xba,0x00,0x2f,0x00,0xd2,0xff,0xba,0x00,0x2f,0x00,0xd3,0xff,0xe3,0x00,0x2f,0x00,0xd4,0xff,0xe3,0x00,0x2f,0x00,0xd5,0xff,0xe3,0x00,0x2f,0x00,0xe5, +0x00,0x3b,0x00,0x2f,0x00,0xea,0xff,0x7f,0x00,0x2f,0x00,0xeb,0xff,0xb4,0x00,0x2f,0x00,0xf7,0xff,0xbe,0x00,0x2f,0x00,0xfc,0xff,0xbe,0x00,0x2f,0x00,0xfe,0xff,0xbe,0x00,0x2f,0x01,0x03,0x00,0x3b,0x00,0x2f,0x01,0x05,0x00,0x3b,0x00,0x2f,0x01,0x18,0xff,0xba,0x00,0x2f,0x01,0x20,0xff,0x8f,0x00,0x2f,0x01,0x21,0xff,0xe5,0x00,0x2f, +0x01,0x22,0xff,0x8f,0x00,0x2f,0x01,0x23,0xff,0xe5,0x00,0x2f,0x01,0x24,0xff,0xe3,0x00,0x2f,0x01,0x26,0xff,0xe3,0x00,0x2f,0x01,0x28,0x00,0x3b,0x00,0x2f,0x01,0x2a,0x00,0x3b,0x00,0x2f,0x01,0x45,0x00,0x3b,0x00,0x2f,0x01,0x47,0xff,0xbe,0x00,0x2f,0x01,0x51,0xff,0xbe,0x00,0x2f,0x01,0x53,0xff,0xbe,0x00,0x2f,0x01,0x55,0xff,0xbe, +0x00,0x2f,0x01,0x63,0x00,0x64,0x00,0x2f,0x01,0x6e,0xff,0xba,0x00,0x2f,0x01,0x70,0xff,0xba,0x00,0x2f,0x01,0x76,0xff,0x8f,0x00,0x2f,0x01,0x77,0xff,0xe5,0x00,0x2f,0x01,0x78,0xff,0xe3,0x00,0x2f,0x01,0x7a,0xff,0xe3,0x00,0x2f,0x01,0x7c,0xff,0xe3,0x00,0x2f,0x01,0x7e,0xff,0xe3,0x00,0x2f,0x01,0x80,0xff,0xcf,0x00,0x2f,0x01,0x81, +0xff,0xbe,0x00,0x2f,0x01,0x82,0xff,0x7f,0x00,0x2f,0x01,0x83,0xff,0xb4,0x00,0x2f,0x01,0x85,0x00,0x3b,0x00,0x2f,0x01,0x87,0x00,0x3b,0x00,0x2f,0x01,0x89,0xff,0xba,0x00,0x2f,0x01,0x8c,0xff,0xcf,0x00,0x2f,0x01,0x8d,0xff,0xbe,0x00,0x2f,0x01,0x8e,0xff,0xcf,0x00,0x2f,0x01,0x8f,0xff,0xbe,0x00,0x2f,0x01,0x90,0xff,0xcf,0x00,0x2f, +0x01,0x91,0xff,0xbe,0x00,0x2f,0x01,0x92,0xff,0x7f,0x00,0x2f,0x01,0x93,0xff,0xb4,0x00,0x32,0x00,0x0f,0xff,0xa4,0x00,0x32,0x00,0x11,0xff,0xa4,0x00,0x32,0x00,0x24,0xff,0xe5,0x00,0x32,0x00,0x2d,0xff,0xf6,0x00,0x32,0x00,0x37,0xff,0xa4,0x00,0x32,0x00,0x3b,0xff,0xdb,0x00,0x32,0x00,0x3c,0xff,0xe7,0x00,0x32,0x00,0x3d,0xff,0xcf, +0x00,0x32,0x00,0x62,0xff,0xe5,0x00,0x32,0x00,0x63,0xff,0xe5,0x00,0x32,0x00,0xac,0xff,0xa4,0x00,0x32,0x00,0xad,0xff,0xe5,0x00,0x32,0x00,0xae,0xff,0xe5,0x00,0x32,0x00,0xbb,0xff,0xf6,0x00,0x32,0x00,0xc4,0xff,0x4c,0x00,0x32,0x00,0xc5,0xff,0x98,0x00,0x32,0x00,0xc7,0xff,0xe5,0x00,0x32,0x00,0xc9,0xff,0xe5,0x00,0x32,0x00,0xe5, +0xff,0xcf,0x00,0x32,0x00,0xea,0xff,0xe7,0x00,0x32,0x01,0x03,0xff,0xe5,0x00,0x32,0x01,0x05,0xff,0xe5,0x00,0x32,0x01,0x20,0xff,0xa4,0x00,0x32,0x01,0x22,0xff,0xa4,0x00,0x32,0x01,0x28,0xff,0xcf,0x00,0x32,0x01,0x2a,0xff,0xcf,0x00,0x32,0x01,0x45,0xff,0xe5,0x00,0x32,0x01,0x63,0xff,0xf6,0x00,0x32,0x01,0x76,0xff,0xa4,0x00,0x32, +0x01,0x82,0xff,0xe7,0x00,0x32,0x01,0x85,0xff,0xe5,0x00,0x32,0x01,0x87,0xff,0xe5,0x00,0x32,0x01,0x92,0xff,0xe7,0x00,0x33,0x00,0x0f,0xfe,0xba,0x00,0x33,0x00,0x11,0xfe,0xba,0x00,0x33,0x00,0x24,0xff,0x62,0x00,0x33,0x00,0x2a,0xff,0xf6,0x00,0x33,0x00,0x2d,0xff,0x7f,0x00,0x33,0x00,0x3a,0x00,0x27,0x00,0x33,0x00,0x3b,0xff,0xc3, +0x00,0x33,0x00,0x44,0xff,0xbe,0x00,0x33,0x00,0x46,0xff,0xb4,0x00,0x33,0x00,0x47,0xff,0xb4,0x00,0x33,0x00,0x48,0xff,0xb4,0x00,0x33,0x00,0x4a,0xff,0xb4,0x00,0x33,0x00,0x52,0xff,0xb4,0x00,0x33,0x00,0x54,0xff,0xb6,0x00,0x33,0x00,0x62,0xff,0x62,0x00,0x33,0x00,0x63,0xff,0x62,0x00,0x33,0x00,0x69,0xff,0xbe,0x00,0x33,0x00,0x6a, +0xff,0xbe,0x00,0x33,0x00,0x6b,0xff,0xbe,0x00,0x33,0x00,0x6c,0xff,0xbe,0x00,0x33,0x00,0x6d,0xff,0xbe,0x00,0x33,0x00,0x6e,0xff,0xbe,0x00,0x33,0x00,0x6f,0xff,0xb4,0x00,0x33,0x00,0x70,0xff,0xb4,0x00,0x33,0x00,0x71,0xff,0xb4,0x00,0x33,0x00,0x72,0xff,0xb4,0x00,0x33,0x00,0x73,0xff,0xb4,0x00,0x33,0x00,0x79,0xff,0xb4,0x00,0x33, +0x00,0x7a,0xff,0xb4,0x00,0x33,0x00,0x7b,0xff,0xb4,0x00,0x33,0x00,0x7c,0xff,0xb4,0x00,0x33,0x00,0x7d,0xff,0xb4,0x00,0x33,0x00,0x91,0xfe,0xe9,0x00,0x33,0x00,0xa0,0xff,0xbe,0x00,0x33,0x00,0xac,0xfe,0xba,0x00,0x33,0x00,0xad,0xff,0x62,0x00,0x33,0x00,0xae,0xff,0x62,0x00,0x33,0x00,0xb1,0xff,0xb4,0x00,0x33,0x00,0xc4,0xfe,0xba, +0x00,0x33,0x00,0xc5,0xfe,0xae,0x00,0x33,0x00,0xc7,0xff,0x62,0x00,0x33,0x00,0xc9,0xff,0x62,0x00,0x33,0x00,0xf7,0xff,0xf6,0x00,0x33,0x00,0xf8,0xff,0xb4,0x00,0x33,0x00,0xfd,0xff,0xb4,0x00,0x33,0x00,0xff,0xff,0xb4,0x00,0x33,0x01,0x00,0xff,0xb4,0x00,0x33,0x01,0x03,0xff,0x62,0x00,0x33,0x01,0x04,0xff,0xbe,0x00,0x33,0x01,0x05, +0xff,0x62,0x00,0x33,0x01,0x06,0xff,0xbe,0x00,0x33,0x01,0x08,0xff,0xb4,0x00,0x33,0x01,0x0b,0xff,0xb4,0x00,0x33,0x01,0x0d,0xff,0xb4,0x00,0x33,0x01,0x19,0xff,0xb4,0x00,0x33,0x01,0x45,0xff,0x62,0x00,0x33,0x01,0x46,0xff,0xbe,0x00,0x33,0x01,0x48,0xff,0xb4,0x00,0x33,0x01,0x4c,0xff,0xb4,0x00,0x33,0x01,0x4e,0xff,0xb4,0x00,0x33, +0x01,0x50,0xff,0xb4,0x00,0x33,0x01,0x51,0xff,0xf6,0x00,0x33,0x01,0x52,0xff,0xb4,0x00,0x33,0x01,0x53,0xff,0xf6,0x00,0x33,0x01,0x54,0xff,0xb4,0x00,0x33,0x01,0x55,0xff,0xf6,0x00,0x33,0x01,0x56,0xff,0xb4,0x00,0x33,0x01,0x63,0xff,0x7f,0x00,0x33,0x01,0x6f,0xff,0xb4,0x00,0x33,0x01,0x71,0xff,0xb4,0x00,0x33,0x01,0x80,0x00,0x27, +0x00,0x33,0x01,0x85,0xff,0x62,0x00,0x33,0x01,0x86,0xff,0xbe,0x00,0x33,0x01,0x87,0xff,0x62,0x00,0x33,0x01,0x88,0xff,0xbe,0x00,0x33,0x01,0x8a,0xff,0xb4,0x00,0x33,0x01,0x8c,0x00,0x27,0x00,0x33,0x01,0x8e,0x00,0x27,0x00,0x33,0x01,0x90,0x00,0x27,0x00,0x34,0x00,0x0f,0xff,0xa4,0x00,0x34,0x00,0x11,0xff,0x7f,0x00,0x34,0x00,0x24, +0xff,0xe5,0x00,0x34,0x00,0x37,0xff,0xa4,0x00,0x34,0x00,0x3b,0xff,0xdb,0x00,0x34,0x00,0x3c,0xff,0xf6,0x00,0x34,0x00,0x3d,0xff,0xcf,0x00,0x34,0x00,0x62,0xff,0xe5,0x00,0x34,0x00,0x63,0xff,0xe5,0x00,0x34,0x00,0xac,0xff,0x7f,0x00,0x34,0x00,0xad,0xff,0xe5,0x00,0x34,0x00,0xae,0xff,0xe5,0x00,0x34,0x00,0xbb,0xff,0xf6,0x00,0x34, +0x00,0xc4,0xff,0x98,0x00,0x34,0x00,0xc5,0xff,0x98,0x00,0x34,0x00,0xc7,0xff,0xe5,0x00,0x34,0x00,0xc9,0xff,0xe5,0x00,0x34,0x00,0xe5,0xff,0xcf,0x00,0x34,0x00,0xea,0xff,0xf6,0x00,0x34,0x01,0x03,0xff,0xe5,0x00,0x34,0x01,0x05,0xff,0xe5,0x00,0x34,0x01,0x20,0xff,0xa4,0x00,0x34,0x01,0x22,0xff,0xa4,0x00,0x34,0x01,0x28,0xff,0xcf, +0x00,0x34,0x01,0x2a,0xff,0xcf,0x00,0x34,0x01,0x45,0xff,0xe5,0x00,0x34,0x01,0x76,0xff,0xa4,0x00,0x34,0x01,0x82,0xff,0xf6,0x00,0x34,0x01,0x85,0xff,0xe5,0x00,0x34,0x01,0x87,0xff,0xe5,0x00,0x34,0x01,0x92,0xff,0xf6,0x00,0x35,0x00,0x1e,0x00,0x52,0x00,0x35,0x00,0x26,0xff,0xe3,0x00,0x35,0x00,0x2a,0xff,0xe3,0x00,0x35,0x00,0x2d, +0x00,0x39,0x00,0x35,0x00,0x32,0xff,0xec,0x00,0x35,0x00,0x34,0xff,0xec,0x00,0x35,0x00,0x37,0xff,0xcb,0x00,0x35,0x00,0x3c,0xff,0xd9,0x00,0x35,0x00,0x46,0xff,0xcb,0x00,0x35,0x00,0x47,0xff,0xcb,0x00,0x35,0x00,0x48,0xff,0xc7,0x00,0x35,0x00,0x4a,0xff,0xc7,0x00,0x35,0x00,0x52,0xff,0xc5,0x00,0x35,0x00,0x54,0xff,0xcb,0x00,0x35, +0x00,0x64,0xff,0xe5,0x00,0x35,0x00,0x67,0xff,0xec,0x00,0x35,0x00,0x6f,0xff,0xbe,0x00,0x35,0x00,0x70,0xff,0xbe,0x00,0x35,0x00,0x71,0xff,0xbe,0x00,0x35,0x00,0x72,0xff,0xbe,0x00,0x35,0x00,0x73,0xff,0xbe,0x00,0x35,0x00,0x79,0xff,0xc5,0x00,0x35,0x00,0x7a,0xff,0xc5,0x00,0x35,0x00,0x7b,0xff,0xc5,0x00,0x35,0x00,0x7c,0xff,0xc5, +0x00,0x35,0x00,0x7d,0xff,0xc5,0x00,0x35,0x00,0x92,0xff,0xec,0x00,0x35,0x00,0xaf,0xff,0xec,0x00,0x35,0x00,0xb0,0xff,0xec,0x00,0x35,0x00,0xb1,0xff,0xc5,0x00,0x35,0x00,0xbb,0xff,0xe5,0x00,0x35,0x00,0xd0,0xff,0xec,0x00,0x35,0x00,0xd1,0xff,0xec,0x00,0x35,0x00,0xd2,0xff,0xec,0x00,0x35,0x00,0xea,0xff,0xd9,0x00,0x35,0x00,0xf7, +0xff,0xe3,0x00,0x35,0x00,0xf8,0xff,0xc7,0x00,0x35,0x00,0xfc,0xff,0xe3,0x00,0x35,0x00,0xfd,0xff,0xcb,0x00,0x35,0x00,0xfe,0xff,0xe3,0x00,0x35,0x00,0xff,0xff,0xcb,0x00,0x35,0x01,0x00,0xff,0xcb,0x00,0x35,0x01,0x08,0xff,0xcb,0x00,0x35,0x01,0x0b,0xff,0xc7,0x00,0x35,0x01,0x0d,0xff,0xbe,0x00,0x35,0x01,0x18,0xff,0xec,0x00,0x35, +0x01,0x19,0xff,0xc5,0x00,0x35,0x01,0x20,0xff,0xcb,0x00,0x35,0x01,0x22,0xff,0xcb,0x00,0x35,0x01,0x47,0xff,0xe3,0x00,0x35,0x01,0x48,0xff,0xcb,0x00,0x35,0x01,0x4c,0xff,0xbe,0x00,0x35,0x01,0x4e,0xff,0xbe,0x00,0x35,0x01,0x50,0xff,0xbe,0x00,0x35,0x01,0x51,0xff,0xe3,0x00,0x35,0x01,0x52,0xff,0xc7,0x00,0x35,0x01,0x53,0xff,0xe3, +0x00,0x35,0x01,0x54,0xff,0xc7,0x00,0x35,0x01,0x55,0xff,0xe3,0x00,0x35,0x01,0x56,0xff,0xc7,0x00,0x35,0x01,0x63,0x00,0x39,0x00,0x35,0x01,0x6e,0xff,0xec,0x00,0x35,0x01,0x6f,0xff,0xc5,0x00,0x35,0x01,0x70,0xff,0xec,0x00,0x35,0x01,0x71,0xff,0xc5,0x00,0x35,0x01,0x76,0xff,0xcb,0x00,0x35,0x01,0x82,0xff,0xd9,0x00,0x35,0x01,0x89, +0xff,0xec,0x00,0x35,0x01,0x8a,0xff,0xc5,0x00,0x35,0x01,0x92,0xff,0xd9,0x00,0x36,0x00,0x57,0xff,0xbe,0x00,0x36,0x00,0x59,0xff,0xcf,0x00,0x36,0x00,0x5a,0xff,0xe5,0x00,0x36,0x00,0x5c,0xff,0xd1,0x00,0x36,0x00,0xba,0xff,0xbe,0x00,0x36,0x00,0xc4,0xff,0xb2,0x00,0x36,0x00,0xc5,0xff,0xb2,0x00,0x36,0x00,0xeb,0xff,0xd1,0x00,0x36, +0x01,0x21,0xff,0xbe,0x00,0x36,0x01,0x23,0xff,0xbe,0x00,0x36,0x01,0x77,0xff,0xbe,0x00,0x36,0x01,0x81,0xff,0xe5,0x00,0x36,0x01,0x83,0xff,0xd1,0x00,0x36,0x01,0x8d,0xff,0xe5,0x00,0x36,0x01,0x8f,0xff,0xe5,0x00,0x36,0x01,0x91,0xff,0xe5,0x00,0x36,0x01,0x93,0xff,0xd1,0x00,0x37,0x00,0x0f,0xff,0x7f,0x00,0x37,0x00,0x11,0xff,0x4c, +0x00,0x37,0x00,0x1d,0xff,0xe9,0x00,0x37,0x00,0x1e,0xff,0xe9,0x00,0x37,0x00,0x24,0xff,0x66,0x00,0x37,0x00,0x26,0xff,0xa4,0x00,0x37,0x00,0x2a,0xff,0xa4,0x00,0x37,0x00,0x2d,0xff,0x8f,0x00,0x37,0x00,0x32,0xff,0xa4,0x00,0x37,0x00,0x34,0xff,0xa4,0x00,0x37,0x00,0x37,0x00,0x27,0x00,0x37,0x00,0x39,0x00,0x2b,0x00,0x37,0x00,0x3a, +0x00,0x27,0x00,0x37,0x00,0x3b,0xff,0xfa,0x00,0x37,0x00,0x3c,0x00,0x1d,0x00,0x37,0x00,0x44,0xff,0x27,0x00,0x37,0x00,0x46,0xff,0x2d,0x00,0x37,0x00,0x47,0xff,0x2d,0x00,0x37,0x00,0x48,0xff,0x2d,0x00,0x37,0x00,0x49,0xff,0xa0,0x00,0x37,0x00,0x4a,0xff,0x2d,0x00,0x37,0x00,0x50,0xff,0x4e,0x00,0x37,0x00,0x51,0xff,0x4e,0x00,0x37, +0x00,0x52,0xff,0x2d,0x00,0x37,0x00,0x53,0xff,0x4e,0x00,0x37,0x00,0x54,0xff,0x2d,0x00,0x37,0x00,0x55,0xff,0x4e,0x00,0x37,0x00,0x56,0xff,0x66,0x00,0x37,0x00,0x58,0xff,0x4e,0x00,0x37,0x00,0x59,0xff,0x9a,0x00,0x37,0x00,0x5a,0xff,0x8f,0x00,0x37,0x00,0x5b,0xff,0x4c,0x00,0x37,0x00,0x5c,0xff,0x8f,0x00,0x37,0x00,0x5d,0xff,0x7f, +0x00,0x37,0x00,0x62,0xff,0x66,0x00,0x37,0x00,0x63,0xff,0x66,0x00,0x37,0x00,0x64,0xff,0xa4,0x00,0x37,0x00,0x67,0xff,0xa4,0x00,0x37,0x00,0x69,0xff,0x27,0x00,0x37,0x00,0x6a,0xff,0x27,0x00,0x37,0x00,0x6b,0xff,0x27,0x00,0x37,0x00,0x6c,0xff,0x27,0x00,0x37,0x00,0x6d,0xff,0x3f,0x00,0x37,0x00,0x6e,0xff,0x27,0x00,0x37,0x00,0x6f, +0xff,0x1b,0x00,0x37,0x00,0x70,0xff,0x2d,0x00,0x37,0x00,0x71,0xff,0x2d,0x00,0x37,0x00,0x72,0xff,0x2d,0x00,0x37,0x00,0x73,0xff,0x2d,0x00,0x37,0x00,0x74,0xff,0xe9,0x00,0x37,0x00,0x76,0x00,0x31,0x00,0x37,0x00,0x77,0x00,0x6f,0x00,0x37,0x00,0x78,0xff,0x4e,0x00,0x37,0x00,0x79,0xff,0x2d,0x00,0x37,0x00,0x7a,0xff,0x2d,0x00,0x37, +0x00,0x7b,0xff,0x2d,0x00,0x37,0x00,0x7c,0xff,0x2d,0x00,0x37,0x00,0x7d,0xff,0x2d,0x00,0x37,0x00,0x7e,0xff,0x4e,0x00,0x37,0x00,0x7f,0xff,0x4e,0x00,0x37,0x00,0x80,0xff,0x4e,0x00,0x37,0x00,0x81,0xff,0x4e,0x00,0x37,0x00,0x8d,0x00,0x52,0x00,0x37,0x00,0x91,0xff,0x0c,0x00,0x37,0x00,0x92,0xff,0xa4,0x00,0x37,0x00,0xa0,0xff,0x27, +0x00,0x37,0x00,0xaa,0xff,0x9a,0x00,0x37,0x00,0xab,0xff,0xcf,0x00,0x37,0x00,0xac,0xff,0x4c,0x00,0x37,0x00,0xad,0xff,0x66,0x00,0x37,0x00,0xae,0xff,0x66,0x00,0x37,0x00,0xaf,0xff,0xa4,0x00,0x37,0x00,0xb0,0xff,0xa4,0x00,0x37,0x00,0xb1,0xff,0x2d,0x00,0x37,0x00,0xb5,0x00,0x27,0x00,0x37,0x00,0xb7,0x00,0x27,0x00,0x37,0x00,0xba, +0xff,0x8f,0x00,0x37,0x00,0xbe,0xff,0x9a,0x00,0x37,0x00,0xbf,0xff,0xcf,0x00,0x37,0x00,0xc4,0xff,0x17,0x00,0x37,0x00,0xc5,0xff,0x17,0x00,0x37,0x00,0xc7,0xff,0x66,0x00,0x37,0x00,0xc9,0xff,0x66,0x00,0x37,0x00,0xd0,0xff,0xa4,0x00,0x37,0x00,0xd1,0xff,0xa4,0x00,0x37,0x00,0xd2,0xff,0xa4,0x00,0x37,0x00,0xe4,0xff,0x66,0x00,0x37, +0x00,0xe6,0xff,0x7f,0x00,0x37,0x00,0xea,0x00,0x1d,0x00,0x37,0x00,0xeb,0xff,0x8f,0x00,0x37,0x00,0xf7,0xff,0xa4,0x00,0x37,0x00,0xf8,0xff,0x2d,0x00,0x37,0x00,0xfb,0xff,0x66,0x00,0x37,0x00,0xfc,0xff,0xa4,0x00,0x37,0x00,0xfd,0xff,0x2d,0x00,0x37,0x00,0xfe,0xff,0xa4,0x00,0x37,0x00,0xff,0xff,0x2d,0x00,0x37,0x01,0x00,0xff,0x2d, +0x00,0x37,0x01,0x03,0xff,0x66,0x00,0x37,0x01,0x04,0xff,0x27,0x00,0x37,0x01,0x05,0xff,0x66,0x00,0x37,0x01,0x06,0xff,0x27,0x00,0x37,0x01,0x08,0xff,0x2d,0x00,0x37,0x01,0x0b,0xff,0x2d,0x00,0x37,0x01,0x0d,0xff,0x2d,0x00,0x37,0x01,0x15,0xff,0x4e,0x00,0x37,0x01,0x17,0xff,0x4e,0x00,0x37,0x01,0x18,0xff,0xa4,0x00,0x37,0x01,0x19, +0xff,0x2d,0x00,0x37,0x01,0x1b,0xff,0x4e,0x00,0x37,0x01,0x1d,0xff,0x4e,0x00,0x37,0x01,0x1f,0xff,0x66,0x00,0x37,0x01,0x20,0x00,0x27,0x00,0x37,0x01,0x22,0x00,0x27,0x00,0x37,0x01,0x25,0xff,0x4e,0x00,0x37,0x01,0x27,0xff,0x4e,0x00,0x37,0x01,0x29,0xff,0x7f,0x00,0x37,0x01,0x2b,0xff,0x7f,0x00,0x37,0x01,0x45,0xff,0x66,0x00,0x37, +0x01,0x46,0xff,0x27,0x00,0x37,0x01,0x47,0xff,0xa4,0x00,0x37,0x01,0x48,0xff,0x2d,0x00,0x37,0x01,0x4c,0xff,0x2d,0x00,0x37,0x01,0x4e,0xff,0x2d,0x00,0x37,0x01,0x50,0xff,0x2d,0x00,0x37,0x01,0x51,0xff,0xa4,0x00,0x37,0x01,0x52,0xff,0x2d,0x00,0x37,0x01,0x53,0xff,0xa4,0x00,0x37,0x01,0x54,0xff,0x2d,0x00,0x37,0x01,0x55,0xff,0xa4, +0x00,0x37,0x01,0x56,0xff,0x2d,0x00,0x37,0x01,0x5c,0x00,0x6f,0x00,0x37,0x01,0x5e,0x00,0x6f,0x00,0x37,0x01,0x60,0x00,0x6f,0x00,0x37,0x01,0x63,0xff,0x8f,0x00,0x37,0x01,0x6d,0xff,0x4e,0x00,0x37,0x01,0x6e,0xff,0xa4,0x00,0x37,0x01,0x6f,0xff,0x2d,0x00,0x37,0x01,0x70,0xff,0xa4,0x00,0x37,0x01,0x71,0xff,0x2d,0x00,0x37,0x01,0x73, +0xff,0x4e,0x00,0x37,0x01,0x75,0xff,0x66,0x00,0x37,0x01,0x76,0x00,0x27,0x00,0x37,0x01,0x79,0xff,0x4e,0x00,0x37,0x01,0x7b,0xff,0x4e,0x00,0x37,0x01,0x7d,0xff,0x4e,0x00,0x37,0x01,0x7f,0xff,0x4e,0x00,0x37,0x01,0x80,0x00,0x27,0x00,0x37,0x01,0x81,0xff,0x8f,0x00,0x37,0x01,0x82,0x00,0x1d,0x00,0x37,0x01,0x83,0xff,0x8f,0x00,0x37, +0x01,0x85,0xff,0x66,0x00,0x37,0x01,0x86,0xff,0x27,0x00,0x37,0x01,0x87,0xff,0x66,0x00,0x37,0x01,0x88,0xff,0x27,0x00,0x37,0x01,0x89,0xff,0xa4,0x00,0x37,0x01,0x8a,0xff,0x2d,0x00,0x37,0x01,0x8c,0x00,0x27,0x00,0x37,0x01,0x8d,0xff,0x8f,0x00,0x37,0x01,0x8e,0x00,0x27,0x00,0x37,0x01,0x8f,0xff,0x8f,0x00,0x37,0x01,0x90,0x00,0x27, +0x00,0x37,0x01,0x91,0xff,0x8f,0x00,0x37,0x01,0x92,0x00,0x1d,0x00,0x37,0x01,0x93,0xff,0x8f,0x00,0x37,0x02,0x3e,0xff,0x66,0x00,0x38,0x00,0x24,0xff,0xd7,0x00,0x38,0x00,0x91,0xff,0x8b,0x00,0x38,0x00,0xc4,0xff,0xa6,0x00,0x38,0x00,0xc5,0xff,0xa6,0x00,0x38,0x01,0x03,0xff,0xd7,0x00,0x38,0x01,0x05,0xff,0xd7,0x00,0x38,0x01,0x45, +0xff,0xd7,0x00,0x38,0x01,0x85,0xff,0xd7,0x00,0x38,0x01,0x87,0xff,0xd7,0x00,0x39,0x00,0x0f,0xff,0x33,0x00,0x39,0x00,0x11,0xff,0x1b,0x00,0x39,0x00,0x24,0xff,0x8b,0x00,0x39,0x00,0x26,0xff,0xd5,0x00,0x39,0x00,0x2a,0xff,0xd5,0x00,0x39,0x00,0x2d,0xff,0xba,0x00,0x39,0x00,0x32,0xff,0xf4,0x00,0x39,0x00,0x34,0xff,0xd5,0x00,0x39, +0x00,0x36,0xff,0xe5,0x00,0x39,0x00,0x37,0x00,0x27,0x00,0x39,0x00,0x44,0xff,0x6d,0x00,0x39,0x00,0x46,0xff,0x7f,0x00,0x39,0x00,0x47,0xff,0x7f,0x00,0x39,0x00,0x48,0xff,0x7f,0x00,0x39,0x00,0x4a,0xff,0x7f,0x00,0x39,0x00,0x50,0xff,0xb4,0x00,0x39,0x00,0x51,0xff,0xb4,0x00,0x39,0x00,0x52,0xff,0x7f,0x00,0x39,0x00,0x53,0xff,0xb4, +0x00,0x39,0x00,0x54,0xff,0x7f,0x00,0x39,0x00,0x55,0xff,0xb4,0x00,0x39,0x00,0x56,0xff,0xbe,0x00,0x39,0x00,0x58,0xff,0xb4,0x00,0x39,0x00,0x62,0xff,0x8b,0x00,0x39,0x00,0x63,0xff,0x8b,0x00,0x39,0x00,0x64,0xff,0xe1,0x00,0x39,0x00,0x67,0xff,0xf4,0x00,0x39,0x00,0x69,0xff,0x6d,0x00,0x39,0x00,0x6a,0xff,0x6d,0x00,0x39,0x00,0x6b, +0xff,0x6d,0x00,0x39,0x00,0x6c,0xff,0x6d,0x00,0x39,0x00,0x6d,0xff,0x6d,0x00,0x39,0x00,0x6e,0xff,0x6d,0x00,0x39,0x00,0x6f,0xff,0x7f,0x00,0x39,0x00,0x70,0xff,0x7f,0x00,0x39,0x00,0x71,0xff,0x7f,0x00,0x39,0x00,0x72,0xff,0x7f,0x00,0x39,0x00,0x73,0xff,0x7f,0x00,0x39,0x00,0x76,0x00,0x1d,0x00,0x39,0x00,0x77,0x00,0x5a,0x00,0x39, +0x00,0x78,0xff,0xb4,0x00,0x39,0x00,0x79,0xff,0x7f,0x00,0x39,0x00,0x7a,0xff,0x7f,0x00,0x39,0x00,0x7b,0xff,0x7f,0x00,0x39,0x00,0x7c,0xff,0x7f,0x00,0x39,0x00,0x7d,0xff,0x7f,0x00,0x39,0x00,0x7e,0xff,0xb4,0x00,0x39,0x00,0x7f,0xff,0xb4,0x00,0x39,0x00,0x80,0xff,0xb4,0x00,0x39,0x00,0x81,0xff,0xb4,0x00,0x39,0x00,0x8d,0x00,0x52, +0x00,0x39,0x00,0x91,0xff,0x44,0x00,0x39,0x00,0x92,0xff,0xf4,0x00,0x39,0x00,0xa0,0xff,0x6d,0x00,0x39,0x00,0xa2,0xff,0x75,0x00,0x39,0x00,0xaa,0xff,0xcf,0x00,0x39,0x00,0xac,0xff,0x1b,0x00,0x39,0x00,0xad,0xff,0x8b,0x00,0x39,0x00,0xae,0xff,0x8b,0x00,0x39,0x00,0xaf,0xff,0xf4,0x00,0x39,0x00,0xb0,0xff,0xf4,0x00,0x39,0x00,0xb1, +0xff,0x7f,0x00,0x39,0x00,0xbe,0xff,0xcf,0x00,0x39,0x00,0xc4,0xff,0x73,0x00,0x39,0x00,0xc5,0xff,0x7f,0x00,0x39,0x00,0xc7,0xff,0x8b,0x00,0x39,0x00,0xc9,0xff,0x8b,0x00,0x39,0x00,0xd0,0xff,0xf4,0x00,0x39,0x00,0xd1,0xff,0xf4,0x00,0x39,0x00,0xd2,0xff,0xf4,0x00,0x39,0x00,0xe3,0xff,0xe5,0x00,0x39,0x00,0xe4,0xff,0xbe,0x00,0x39, +0x00,0xf7,0xff,0xd5,0x00,0x39,0x00,0xf8,0xff,0x7f,0x00,0x39,0x00,0xfa,0xff,0xe5,0x00,0x39,0x00,0xfb,0xff,0xbe,0x00,0x39,0x00,0xfc,0xff,0xd5,0x00,0x39,0x00,0xfd,0xff,0x7f,0x00,0x39,0x00,0xfe,0xff,0xd5,0x00,0x39,0x00,0xff,0xff,0x7f,0x00,0x39,0x01,0x00,0xff,0x7f,0x00,0x39,0x01,0x03,0xff,0x8b,0x00,0x39,0x01,0x04,0xff,0x6d, +0x00,0x39,0x01,0x05,0xff,0x8b,0x00,0x39,0x01,0x06,0xff,0x6d,0x00,0x39,0x01,0x08,0xff,0x7f,0x00,0x39,0x01,0x0b,0xff,0x7f,0x00,0x39,0x01,0x0d,0xff,0x7f,0x00,0x39,0x01,0x15,0xff,0xb4,0x00,0x39,0x01,0x17,0xff,0xb4,0x00,0x39,0x01,0x18,0xff,0xf4,0x00,0x39,0x01,0x19,0xff,0x7f,0x00,0x39,0x01,0x1b,0xff,0xb4,0x00,0x39,0x01,0x1d, +0xff,0xb4,0x00,0x39,0x01,0x1e,0xff,0xe5,0x00,0x39,0x01,0x1f,0xff,0xbe,0x00,0x39,0x01,0x20,0x00,0x27,0x00,0x39,0x01,0x22,0x00,0x27,0x00,0x39,0x01,0x25,0xff,0xb4,0x00,0x39,0x01,0x27,0xff,0xb4,0x00,0x39,0x01,0x45,0xff,0x8b,0x00,0x39,0x01,0x46,0xff,0x6d,0x00,0x39,0x01,0x47,0xff,0xd5,0x00,0x39,0x01,0x48,0xff,0x7f,0x00,0x39, +0x01,0x4c,0xff,0x7f,0x00,0x39,0x01,0x4e,0xff,0x7f,0x00,0x39,0x01,0x50,0xff,0x7f,0x00,0x39,0x01,0x51,0xff,0xd5,0x00,0x39,0x01,0x52,0xff,0x7f,0x00,0x39,0x01,0x53,0xff,0xd5,0x00,0x39,0x01,0x54,0xff,0x7f,0x00,0x39,0x01,0x55,0xff,0xd5,0x00,0x39,0x01,0x56,0xff,0x7f,0x00,0x39,0x01,0x5c,0x00,0x5a,0x00,0x39,0x01,0x5e,0x00,0x5a, +0x00,0x39,0x01,0x60,0x00,0x5a,0x00,0x39,0x01,0x63,0xff,0xba,0x00,0x39,0x01,0x6d,0xff,0xb4,0x00,0x39,0x01,0x6e,0xff,0xf4,0x00,0x39,0x01,0x6f,0xff,0x7f,0x00,0x39,0x01,0x70,0xff,0xf4,0x00,0x39,0x01,0x71,0xff,0x7f,0x00,0x39,0x01,0x73,0xff,0xb4,0x00,0x39,0x01,0x74,0xff,0xe5,0x00,0x39,0x01,0x75,0xff,0xbe,0x00,0x39,0x01,0x76, +0x00,0x27,0x00,0x39,0x01,0x79,0xff,0xb4,0x00,0x39,0x01,0x7b,0xff,0xb4,0x00,0x39,0x01,0x7d,0xff,0xb4,0x00,0x39,0x01,0x7f,0xff,0xb4,0x00,0x39,0x01,0x85,0xff,0x8b,0x00,0x39,0x01,0x86,0xff,0x6d,0x00,0x39,0x01,0x87,0xff,0x8b,0x00,0x39,0x01,0x88,0xff,0x6d,0x00,0x39,0x01,0x89,0xff,0xf4,0x00,0x39,0x01,0x8a,0xff,0x7f,0x00,0x39, +0x02,0x3d,0xff,0xe5,0x00,0x39,0x02,0x3e,0xff,0xbe,0x00,0x3a,0x00,0x0f,0xff,0x8b,0x00,0x3a,0x00,0x11,0xff,0x7f,0x00,0x3a,0x00,0x24,0xff,0xb6,0x00,0x3a,0x00,0x37,0x00,0x27,0x00,0x3a,0x00,0x44,0xff,0xb4,0x00,0x3a,0x00,0x46,0xff,0xcf,0x00,0x3a,0x00,0x47,0xff,0xcf,0x00,0x3a,0x00,0x48,0xff,0xcf,0x00,0x3a,0x00,0x4a,0xff,0xcf, +0x00,0x3a,0x00,0x52,0xff,0xcf,0x00,0x3a,0x00,0x54,0xff,0xcf,0x00,0x3a,0x00,0x62,0xff,0xb6,0x00,0x3a,0x00,0x63,0xff,0xb6,0x00,0x3a,0x00,0x69,0xff,0xb4,0x00,0x3a,0x00,0x6a,0xff,0xb4,0x00,0x3a,0x00,0x6b,0xff,0xb4,0x00,0x3a,0x00,0x6c,0xff,0xb4,0x00,0x3a,0x00,0x6d,0xff,0xb4,0x00,0x3a,0x00,0x6e,0xff,0xb4,0x00,0x3a,0x00,0x6f, +0xff,0xcf,0x00,0x3a,0x00,0x70,0xff,0xcf,0x00,0x3a,0x00,0x71,0xff,0xcf,0x00,0x3a,0x00,0x72,0xff,0xcf,0x00,0x3a,0x00,0x73,0xff,0xcf,0x00,0x3a,0x00,0x76,0x00,0x31,0x00,0x3a,0x00,0x77,0x00,0x64,0x00,0x3a,0x00,0x79,0xff,0xcf,0x00,0x3a,0x00,0x7a,0xff,0xcf,0x00,0x3a,0x00,0x7b,0xff,0xcf,0x00,0x3a,0x00,0x7c,0xff,0xcf,0x00,0x3a, +0x00,0x7d,0xff,0xcf,0x00,0x3a,0x00,0x91,0xff,0x9a,0x00,0x3a,0x00,0xa0,0xff,0xb4,0x00,0x3a,0x00,0xa2,0xff,0xa4,0x00,0x3a,0x00,0xaa,0xff,0xcf,0x00,0x3a,0x00,0xab,0x00,0x27,0x00,0x3a,0x00,0xac,0xff,0x7f,0x00,0x3a,0x00,0xad,0xff,0xb6,0x00,0x3a,0x00,0xae,0xff,0xb6,0x00,0x3a,0x00,0xb1,0xff,0xcf,0x00,0x3a,0x00,0xbe,0xff,0xcf, +0x00,0x3a,0x00,0xbf,0x00,0x27,0x00,0x3a,0x00,0xc4,0xff,0x7f,0x00,0x3a,0x00,0xc5,0xff,0x8b,0x00,0x3a,0x00,0xc7,0xff,0xb6,0x00,0x3a,0x00,0xc9,0xff,0xb6,0x00,0x3a,0x00,0xf8,0xff,0xcf,0x00,0x3a,0x00,0xfd,0xff,0xcf,0x00,0x3a,0x00,0xff,0xff,0xcf,0x00,0x3a,0x01,0x00,0xff,0xcf,0x00,0x3a,0x01,0x03,0xff,0xb6,0x00,0x3a,0x01,0x04, +0xff,0xb4,0x00,0x3a,0x01,0x05,0xff,0xb6,0x00,0x3a,0x01,0x06,0xff,0xb4,0x00,0x3a,0x01,0x08,0xff,0xcf,0x00,0x3a,0x01,0x0b,0xff,0xcf,0x00,0x3a,0x01,0x0d,0xff,0xcf,0x00,0x3a,0x01,0x19,0xff,0xcf,0x00,0x3a,0x01,0x20,0x00,0x27,0x00,0x3a,0x01,0x22,0x00,0x27,0x00,0x3a,0x01,0x45,0xff,0xb6,0x00,0x3a,0x01,0x46,0xff,0xb4,0x00,0x3a, +0x01,0x48,0xff,0xcf,0x00,0x3a,0x01,0x4c,0xff,0xcf,0x00,0x3a,0x01,0x4e,0xff,0xcf,0x00,0x3a,0x01,0x50,0xff,0xcf,0x00,0x3a,0x01,0x52,0xff,0xcf,0x00,0x3a,0x01,0x54,0xff,0xcf,0x00,0x3a,0x01,0x56,0xff,0xcf,0x00,0x3a,0x01,0x5c,0x00,0x64,0x00,0x3a,0x01,0x5e,0x00,0x64,0x00,0x3a,0x01,0x60,0x00,0x64,0x00,0x3a,0x01,0x6f,0xff,0xcf, +0x00,0x3a,0x01,0x71,0xff,0xcf,0x00,0x3a,0x01,0x76,0x00,0x27,0x00,0x3a,0x01,0x85,0xff,0xb6,0x00,0x3a,0x01,0x86,0xff,0xb4,0x00,0x3a,0x01,0x87,0xff,0xb6,0x00,0x3a,0x01,0x88,0xff,0xb4,0x00,0x3a,0x01,0x8a,0xff,0xcf,0x00,0x3b,0x00,0x0f,0x00,0x44,0x00,0x3b,0x00,0x11,0x00,0x39,0x00,0x3b,0x00,0x1e,0x00,0x52,0x00,0x3b,0x00,0x26, +0xff,0xe9,0x00,0x3b,0x00,0x2a,0xff,0xe9,0x00,0x3b,0x00,0x2d,0x00,0x60,0x00,0x3b,0x00,0x32,0xff,0xe9,0x00,0x3b,0x00,0x34,0xff,0xe9,0x00,0x3b,0x00,0x37,0x00,0x21,0x00,0x3b,0x00,0x64,0xff,0xe9,0x00,0x3b,0x00,0x67,0xff,0xe9,0x00,0x3b,0x00,0x77,0x00,0x52,0x00,0x3b,0x00,0x92,0xff,0xe9,0x00,0x3b,0x00,0xac,0x00,0x39,0x00,0x3b, +0x00,0xaf,0xff,0xe9,0x00,0x3b,0x00,0xb0,0xff,0xe9,0x00,0x3b,0x00,0xc4,0x00,0x44,0x00,0x3b,0x00,0xc5,0x00,0x52,0x00,0x3b,0x00,0xd0,0xff,0xe9,0x00,0x3b,0x00,0xd1,0xff,0xe9,0x00,0x3b,0x00,0xd2,0xff,0xe9,0x00,0x3b,0x00,0xf7,0xff,0xe9,0x00,0x3b,0x00,0xfc,0xff,0xe9,0x00,0x3b,0x00,0xfe,0xff,0xe9,0x00,0x3b,0x01,0x18,0xff,0xe9, +0x00,0x3b,0x01,0x20,0x00,0x21,0x00,0x3b,0x01,0x22,0x00,0x21,0x00,0x3b,0x01,0x47,0xff,0xe9,0x00,0x3b,0x01,0x51,0xff,0xe9,0x00,0x3b,0x01,0x53,0xff,0xe9,0x00,0x3b,0x01,0x55,0xff,0xe9,0x00,0x3b,0x01,0x5c,0x00,0x52,0x00,0x3b,0x01,0x5e,0x00,0x52,0x00,0x3b,0x01,0x60,0x00,0x52,0x00,0x3b,0x01,0x63,0x00,0x60,0x00,0x3b,0x01,0x6e, +0xff,0xe9,0x00,0x3b,0x01,0x70,0xff,0xe9,0x00,0x3b,0x01,0x76,0x00,0x21,0x00,0x3b,0x01,0x89,0xff,0xe9,0x00,0x3c,0x00,0x0f,0xff,0x50,0x00,0x3c,0x00,0x11,0xff,0x3d,0x00,0x3c,0x00,0x24,0xff,0x62,0x00,0x3c,0x00,0x26,0xff,0xd3,0x00,0x3c,0x00,0x2a,0xff,0xd3,0x00,0x3c,0x00,0x2d,0xff,0xbe,0x00,0x3c,0x00,0x32,0xff,0xd3,0x00,0x3c, +0x00,0x34,0xff,0xd3,0x00,0x3c,0x00,0x36,0xff,0xe5,0x00,0x3c,0x00,0x37,0x00,0x27,0x00,0x3c,0x00,0x44,0xff,0x39,0x00,0x3c,0x00,0x46,0xff,0x4c,0x00,0x3c,0x00,0x47,0xff,0x4c,0x00,0x3c,0x00,0x48,0xff,0x4c,0x00,0x3c,0x00,0x49,0xff,0xe5,0x00,0x3c,0x00,0x4a,0xff,0x4c,0x00,0x3c,0x00,0x50,0xff,0x73,0x00,0x3c,0x00,0x51,0xff,0x73, +0x00,0x3c,0x00,0x52,0xff,0x4c,0x00,0x3c,0x00,0x53,0xff,0x73,0x00,0x3c,0x00,0x54,0xff,0x4c,0x00,0x3c,0x00,0x55,0xff,0x73,0x00,0x3c,0x00,0x56,0xff,0x7b,0x00,0x3c,0x00,0x58,0xff,0x73,0x00,0x3c,0x00,0x62,0xff,0x62,0x00,0x3c,0x00,0x63,0xff,0x62,0x00,0x3c,0x00,0x64,0xff,0xcd,0x00,0x3c,0x00,0x67,0xff,0xd3,0x00,0x3c,0x00,0x69, +0xff,0x39,0x00,0x3c,0x00,0x6a,0xff,0x39,0x00,0x3c,0x00,0x6b,0xff,0x39,0x00,0x3c,0x00,0x6c,0xff,0x7f,0x00,0x3c,0x00,0x6d,0xff,0x66,0x00,0x3c,0x00,0x6e,0xff,0x39,0x00,0x3c,0x00,0x6f,0xff,0x4c,0x00,0x3c,0x00,0x70,0xff,0x4c,0x00,0x3c,0x00,0x71,0xff,0x4c,0x00,0x3c,0x00,0x72,0xff,0x4c,0x00,0x3c,0x00,0x73,0xff,0x4c,0x00,0x3c, +0x00,0x77,0x00,0x5a,0x00,0x3c,0x00,0x78,0xff,0x73,0x00,0x3c,0x00,0x79,0xff,0x4c,0x00,0x3c,0x00,0x7a,0xff,0x4c,0x00,0x3c,0x00,0x7b,0xff,0x4c,0x00,0x3c,0x00,0x7c,0xff,0x4c,0x00,0x3c,0x00,0x7d,0xff,0x4c,0x00,0x3c,0x00,0x7e,0xff,0x73,0x00,0x3c,0x00,0x7f,0xff,0x73,0x00,0x3c,0x00,0x80,0xff,0x73,0x00,0x3c,0x00,0x81,0xff,0x73, +0x00,0x3c,0x00,0x91,0xff,0x3f,0x00,0x3c,0x00,0x92,0xff,0xd3,0x00,0x3c,0x00,0xa0,0xff,0x39,0x00,0x3c,0x00,0xa2,0xff,0x1b,0x00,0x3c,0x00,0xaa,0xff,0xcf,0x00,0x3c,0x00,0xac,0xff,0x3d,0x00,0x3c,0x00,0xad,0xff,0x62,0x00,0x3c,0x00,0xae,0xff,0x62,0x00,0x3c,0x00,0xaf,0xff,0xd3,0x00,0x3c,0x00,0xb0,0xff,0xd3,0x00,0x3c,0x00,0xb1, +0xff,0x4c,0x00,0x3c,0x00,0xbe,0xff,0x9a,0x00,0x3c,0x00,0xc4,0xff,0x08,0x00,0x3c,0x00,0xc5,0xff,0x08,0x00,0x3c,0x00,0xc7,0xff,0x62,0x00,0x3c,0x00,0xc9,0xff,0x62,0x00,0x3c,0x00,0xd0,0xff,0xd3,0x00,0x3c,0x00,0xd1,0xff,0xd3,0x00,0x3c,0x00,0xd2,0xff,0xd3,0x00,0x3c,0x00,0xe3,0xff,0xe5,0x00,0x3c,0x00,0xe4,0xff,0x7b,0x00,0x3c, +0x00,0xf7,0xff,0xd3,0x00,0x3c,0x00,0xf8,0xff,0x4c,0x00,0x3c,0x00,0xfa,0xff,0xe5,0x00,0x3c,0x00,0xfb,0xff,0x7b,0x00,0x3c,0x00,0xfc,0xff,0xd3,0x00,0x3c,0x00,0xfd,0xff,0x4c,0x00,0x3c,0x00,0xfe,0xff,0xd3,0x00,0x3c,0x00,0xff,0xff,0x4c,0x00,0x3c,0x01,0x00,0xff,0x4c,0x00,0x3c,0x01,0x03,0xff,0x62,0x00,0x3c,0x01,0x04,0xff,0x7f, +0x00,0x3c,0x01,0x05,0xff,0x62,0x00,0x3c,0x01,0x06,0xff,0x39,0x00,0x3c,0x01,0x08,0xff,0x4c,0x00,0x3c,0x01,0x0b,0xff,0x4c,0x00,0x3c,0x01,0x0d,0xff,0x4c,0x00,0x3c,0x01,0x15,0xff,0x73,0x00,0x3c,0x01,0x17,0xff,0x73,0x00,0x3c,0x01,0x18,0xff,0xd3,0x00,0x3c,0x01,0x19,0xff,0x4c,0x00,0x3c,0x01,0x1b,0xff,0x73,0x00,0x3c,0x01,0x1d, +0xff,0x73,0x00,0x3c,0x01,0x1e,0xff,0xe5,0x00,0x3c,0x01,0x1f,0xff,0x7b,0x00,0x3c,0x01,0x20,0x00,0x27,0x00,0x3c,0x01,0x22,0x00,0x27,0x00,0x3c,0x01,0x25,0xff,0x73,0x00,0x3c,0x01,0x27,0xff,0x73,0x00,0x3c,0x01,0x45,0xff,0x62,0x00,0x3c,0x01,0x46,0xff,0x7f,0x00,0x3c,0x01,0x47,0xff,0xd3,0x00,0x3c,0x01,0x48,0xff,0x4c,0x00,0x3c, +0x01,0x4c,0xff,0x4c,0x00,0x3c,0x01,0x4e,0xff,0x4c,0x00,0x3c,0x01,0x50,0xff,0x4c,0x00,0x3c,0x01,0x51,0xff,0xd3,0x00,0x3c,0x01,0x52,0xff,0x4c,0x00,0x3c,0x01,0x53,0xff,0xd3,0x00,0x3c,0x01,0x54,0xff,0x4c,0x00,0x3c,0x01,0x55,0xff,0xd3,0x00,0x3c,0x01,0x56,0xff,0x4c,0x00,0x3c,0x01,0x5c,0x00,0x5a,0x00,0x3c,0x01,0x5e,0x00,0x5a, +0x00,0x3c,0x01,0x60,0x00,0x5a,0x00,0x3c,0x01,0x63,0xff,0xbe,0x00,0x3c,0x01,0x6d,0xff,0x73,0x00,0x3c,0x01,0x6e,0xff,0xd3,0x00,0x3c,0x01,0x6f,0xff,0x4c,0x00,0x3c,0x01,0x70,0xff,0xd3,0x00,0x3c,0x01,0x71,0xff,0x4c,0x00,0x3c,0x01,0x73,0xff,0x73,0x00,0x3c,0x01,0x74,0xff,0xe5,0x00,0x3c,0x01,0x75,0xff,0x7b,0x00,0x3c,0x01,0x76, +0x00,0x27,0x00,0x3c,0x01,0x79,0xff,0x73,0x00,0x3c,0x01,0x7b,0xff,0x73,0x00,0x3c,0x01,0x7d,0xff,0x73,0x00,0x3c,0x01,0x7f,0xff,0x73,0x00,0x3c,0x01,0x85,0xff,0x62,0x00,0x3c,0x01,0x86,0xff,0x7f,0x00,0x3c,0x01,0x87,0xff,0x62,0x00,0x3c,0x01,0x88,0xff,0x39,0x00,0x3c,0x01,0x89,0xff,0xd3,0x00,0x3c,0x01,0x8a,0xff,0x4c,0x00,0x3c, +0x02,0x3d,0xff,0xe5,0x00,0x3c,0x02,0x3e,0xff,0x7b,0x00,0x3d,0x00,0x2d,0x00,0x52,0x00,0x3d,0x00,0x37,0x00,0x27,0x00,0x3d,0x00,0x5c,0xff,0xcb,0x00,0x3d,0x00,0x77,0x00,0x46,0x00,0x3d,0x00,0xab,0x00,0x27,0x00,0x3d,0x00,0xba,0xff,0xbe,0x00,0x3d,0x00,0xbf,0x00,0x52,0x00,0x3d,0x00,0xeb,0xff,0xcb,0x00,0x3d,0x01,0x20,0x00,0x27, +0x00,0x3d,0x01,0x22,0x00,0x27,0x00,0x3d,0x01,0x5c,0x00,0x46,0x00,0x3d,0x01,0x5e,0x00,0x46,0x00,0x3d,0x01,0x60,0x00,0x46,0x00,0x3d,0x01,0x63,0x00,0x52,0x00,0x3d,0x01,0x76,0x00,0x27,0x00,0x3d,0x01,0x83,0xff,0xcb,0x00,0x3d,0x01,0x93,0xff,0xcb,0x00,0x3e,0x00,0x4d,0x00,0xe9,0x00,0x3e,0x01,0x64,0x00,0xe9,0x00,0x45,0x00,0x44, +0xff,0xe5,0x00,0x45,0x00,0x49,0xff,0xf6,0x00,0x45,0x00,0x5b,0xff,0xe7,0x00,0x45,0x00,0x69,0xff,0xe5,0x00,0x45,0x00,0x6a,0xff,0xe5,0x00,0x45,0x00,0x6b,0xff,0xe5,0x00,0x45,0x00,0x6c,0xff,0xe5,0x00,0x45,0x00,0x6d,0xff,0xe5,0x00,0x45,0x00,0x6e,0xff,0xe5,0x00,0x45,0x00,0xa0,0xff,0xe5,0x00,0x45,0x00,0xc0,0xff,0xf6,0x00,0x45, +0x00,0xc1,0xff,0xf6,0x00,0x45,0x01,0x04,0xff,0xe5,0x00,0x45,0x01,0x06,0xff,0xe5,0x00,0x45,0x01,0x46,0xff,0xe5,0x00,0x45,0x01,0x86,0xff,0xe5,0x00,0x45,0x01,0x88,0xff,0xe5,0x00,0x46,0x00,0x2d,0x00,0x46,0x00,0x46,0x00,0x37,0xff,0x9a,0x00,0x46,0x00,0x3c,0xff,0xb4,0x00,0x46,0x00,0xea,0xff,0xb4,0x00,0x46,0x01,0x20,0xff,0x9a, +0x00,0x46,0x01,0x22,0xff,0x9a,0x00,0x46,0x01,0x63,0x00,0x46,0x00,0x46,0x01,0x76,0xff,0x9a,0x00,0x46,0x01,0x82,0xff,0xb4,0x00,0x46,0x01,0x92,0xff,0xb4,0x00,0x48,0x00,0x05,0xff,0x98,0x00,0x48,0x00,0x0a,0xff,0x98,0x00,0x49,0x00,0x0c,0x00,0x8d,0x00,0x49,0x00,0x0f,0xff,0x7f,0x00,0x49,0x00,0x10,0xff,0x9a,0x00,0x49,0x00,0x11, +0xff,0x7f,0x00,0x49,0x00,0x1d,0x00,0x52,0x00,0x49,0x00,0x1e,0x00,0x52,0x00,0x49,0x00,0x22,0x00,0x42,0x00,0x49,0x00,0x40,0x00,0x8d,0x00,0x49,0x00,0x45,0x00,0x12,0x00,0x49,0x00,0x4b,0x00,0x12,0x00,0x49,0x00,0x57,0x00,0x25,0x00,0x49,0x00,0x59,0x00,0x27,0x00,0x49,0x00,0x5a,0x00,0x27,0x00,0x49,0x00,0x5b,0x00,0x12,0x00,0x49, +0x00,0x5c,0x00,0x21,0x00,0x49,0x00,0x60,0x00,0x52,0x00,0x49,0x00,0x75,0x00,0x2d,0x00,0x49,0x00,0x76,0x00,0x12,0x00,0x49,0x00,0x77,0x00,0x79,0x00,0x49,0x00,0x8d,0x00,0x93,0x00,0x49,0x00,0xab,0x00,0x27,0x00,0x49,0x00,0xac,0xff,0x7f,0x00,0x49,0x00,0xb4,0x00,0x5e,0x00,0x49,0x00,0xb5,0x00,0x52,0x00,0x49,0x00,0xb6,0x00,0x5e, +0x00,0x49,0x00,0xb7,0x00,0x52,0x00,0x49,0x00,0xbf,0x00,0x27,0x00,0x49,0x00,0xc4,0xff,0xb0,0x00,0x49,0x00,0xc5,0xff,0xb0,0x00,0x49,0x00,0xeb,0x00,0x21,0x00,0x49,0x00,0xed,0x00,0x12,0x00,0x49,0x01,0x21,0x00,0x25,0x00,0x49,0x01,0x23,0x00,0x25,0x00,0x49,0x01,0x58,0x00,0x12,0x00,0x49,0x01,0x5a,0x00,0x12,0x00,0x49,0x01,0x5c, +0x00,0x79,0x00,0x49,0x01,0x5e,0x00,0x79,0x00,0x49,0x01,0x60,0x00,0x79,0x00,0x49,0x01,0x77,0x00,0x25,0x00,0x49,0x01,0x81,0x00,0x27,0x00,0x49,0x01,0x83,0x00,0x21,0x00,0x49,0x01,0x8d,0x00,0x27,0x00,0x49,0x01,0x8f,0x00,0x27,0x00,0x49,0x01,0x91,0x00,0x27,0x00,0x49,0x01,0x93,0x00,0x21,0x00,0x4a,0x00,0x4d,0x00,0x2f,0x00,0x4a, +0x01,0x64,0x00,0x2f,0x00,0x4d,0x00,0x4d,0x00,0x23,0x00,0x4d,0x01,0x64,0x00,0x23,0x00,0x4e,0x00,0x0f,0x00,0x52,0x00,0x4e,0x00,0x10,0xff,0x75,0x00,0x4e,0x00,0x11,0x00,0x52,0x00,0x4e,0x00,0x1d,0x00,0x52,0x00,0x4e,0x00,0x1e,0x00,0x52,0x00,0x4e,0x00,0x46,0xff,0xd7,0x00,0x4e,0x00,0x47,0xff,0xe5,0x00,0x4e,0x00,0x48,0xff,0xd7, +0x00,0x4e,0x00,0x4a,0xff,0xd7,0x00,0x4e,0x00,0x52,0xff,0xd7,0x00,0x4e,0x00,0x54,0xff,0xe5,0x00,0x4e,0x00,0x57,0xff,0xf0,0x00,0x4e,0x00,0x6f,0xff,0xe5,0x00,0x4e,0x00,0x70,0xff,0xd7,0x00,0x4e,0x00,0x71,0xff,0xd7,0x00,0x4e,0x00,0x72,0xff,0xd7,0x00,0x4e,0x00,0x73,0xff,0xd7,0x00,0x4e,0x00,0x79,0xff,0xd7,0x00,0x4e,0x00,0x7a, +0xff,0xd7,0x00,0x4e,0x00,0x7b,0xff,0xd7,0x00,0x4e,0x00,0x7c,0xff,0xd7,0x00,0x4e,0x00,0x7d,0xff,0xd7,0x00,0x4e,0x00,0xac,0x00,0x52,0x00,0x4e,0x00,0xb1,0xff,0xd7,0x00,0x4e,0x00,0xf8,0xff,0xd7,0x00,0x4e,0x00,0xfd,0xff,0xd7,0x00,0x4e,0x00,0xff,0xff,0xd7,0x00,0x4e,0x01,0x00,0xff,0xe5,0x00,0x4e,0x01,0x08,0xff,0xe5,0x00,0x4e, +0x01,0x0b,0xff,0xd7,0x00,0x4e,0x01,0x0d,0xff,0xd7,0x00,0x4e,0x01,0x19,0xff,0xd7,0x00,0x4e,0x01,0x21,0xff,0xf0,0x00,0x4e,0x01,0x23,0xff,0xf0,0x00,0x4e,0x01,0x48,0xff,0xd7,0x00,0x4e,0x01,0x4c,0xff,0xd7,0x00,0x4e,0x01,0x4e,0xff,0xd7,0x00,0x4e,0x01,0x50,0xff,0xd7,0x00,0x4e,0x01,0x52,0xff,0xd7,0x00,0x4e,0x01,0x54,0xff,0xd7, +0x00,0x4e,0x01,0x56,0xff,0xd7,0x00,0x4e,0x01,0x6f,0xff,0xd7,0x00,0x4e,0x01,0x71,0xff,0xd7,0x00,0x4e,0x01,0x77,0xff,0xf0,0x00,0x4e,0x01,0x8a,0xff,0xd7,0x00,0x51,0x00,0x05,0xff,0x98,0x00,0x51,0x00,0x0a,0xff,0x98,0x00,0x52,0x00,0x05,0xff,0x6f,0x00,0x52,0x00,0x0a,0xff,0x6f,0x00,0x52,0x00,0x44,0xff,0xe5,0x00,0x52,0x00,0x49, +0xff,0xdb,0x00,0x52,0x00,0x5b,0xff,0xe7,0x00,0x52,0x00,0x69,0xff,0xe5,0x00,0x52,0x00,0x6a,0xff,0xe5,0x00,0x52,0x00,0x6b,0xff,0xe5,0x00,0x52,0x00,0x6c,0xff,0xe5,0x00,0x52,0x00,0x6d,0xff,0xe5,0x00,0x52,0x00,0x6e,0xff,0xe5,0x00,0x52,0x00,0xa0,0xff,0xe5,0x00,0x52,0x00,0xb4,0xff,0xb2,0x00,0x52,0x00,0xb5,0xff,0x7d,0x00,0x52, +0x00,0xb6,0xff,0xbe,0x00,0x52,0x00,0xb7,0xff,0x7d,0x00,0x52,0x00,0xc0,0xff,0xe7,0x00,0x52,0x00,0xc1,0xff,0xe7,0x00,0x52,0x01,0x04,0xff,0xe5,0x00,0x52,0x01,0x06,0xff,0xe5,0x00,0x52,0x01,0x46,0xff,0xe5,0x00,0x52,0x01,0x86,0xff,0xe5,0x00,0x52,0x01,0x88,0xff,0xe5,0x00,0x53,0x00,0x44,0xff,0xe5,0x00,0x53,0x00,0x49,0xff,0xdb, +0x00,0x53,0x00,0x5b,0xff,0xe7,0x00,0x53,0x00,0x69,0xff,0xe5,0x00,0x53,0x00,0x6a,0xff,0xe5,0x00,0x53,0x00,0x6b,0xff,0xe5,0x00,0x53,0x00,0x6c,0xff,0xe5,0x00,0x53,0x00,0x6d,0xff,0xe5,0x00,0x53,0x00,0x6e,0xff,0xe5,0x00,0x53,0x00,0xa0,0xff,0xe5,0x00,0x53,0x00,0xb4,0xff,0xcb,0x00,0x53,0x00,0xb5,0xff,0x89,0x00,0x53,0x00,0xb6, +0xff,0x89,0x00,0x53,0x00,0xb7,0xff,0x89,0x00,0x53,0x00,0xc0,0xff,0xe7,0x00,0x53,0x00,0xc1,0xff,0xe7,0x00,0x53,0x01,0x04,0xff,0xe5,0x00,0x53,0x01,0x06,0xff,0xe5,0x00,0x53,0x01,0x46,0xff,0xe5,0x00,0x53,0x01,0x86,0xff,0xe5,0x00,0x53,0x01,0x88,0xff,0xe5,0x00,0x54,0x00,0x4d,0x00,0x66,0x00,0x54,0x01,0x64,0x00,0x66,0x00,0x55, +0x00,0x0f,0xff,0x62,0x00,0x55,0x00,0x10,0xff,0x7f,0x00,0x55,0x00,0x11,0xff,0x56,0x00,0x55,0x00,0x1d,0x00,0x52,0x00,0x55,0x00,0x1e,0x00,0x52,0x00,0x55,0x00,0x46,0xff,0xe5,0x00,0x55,0x00,0x47,0xff,0xe5,0x00,0x55,0x00,0x48,0xff,0xe5,0x00,0x55,0x00,0x49,0x00,0x27,0x00,0x55,0x00,0x4a,0xff,0xe5,0x00,0x55,0x00,0x50,0xff,0xfc, +0x00,0x55,0x00,0x51,0xff,0xfc,0x00,0x55,0x00,0x52,0xff,0xe5,0x00,0x55,0x00,0x54,0xff,0xe5,0x00,0x55,0x00,0x56,0x00,0x0e,0x00,0x55,0x00,0x57,0x00,0x3b,0x00,0x55,0x00,0x59,0x00,0x52,0x00,0x55,0x00,0x5a,0x00,0x52,0x00,0x55,0x00,0x5b,0x00,0x3b,0x00,0x55,0x00,0x5c,0x00,0x52,0x00,0x55,0x00,0x5d,0x00,0x27,0x00,0x55,0x00,0x6f, +0xff,0xe5,0x00,0x55,0x00,0x70,0xff,0xe5,0x00,0x55,0x00,0x71,0xff,0xe5,0x00,0x55,0x00,0x72,0xff,0xe5,0x00,0x55,0x00,0x73,0xff,0xe5,0x00,0x55,0x00,0x79,0xff,0xe5,0x00,0x55,0x00,0x7a,0xff,0xe5,0x00,0x55,0x00,0x7b,0xff,0xe5,0x00,0x55,0x00,0x7c,0xff,0xe5,0x00,0x55,0x00,0x7d,0xff,0xe5,0x00,0x55,0x00,0xac,0xff,0x56,0x00,0x55, +0x00,0xb1,0xff,0xe5,0x00,0x55,0x00,0xb4,0x00,0xa4,0x00,0x55,0x00,0xb5,0x00,0x79,0x00,0x55,0x00,0xb6,0x00,0xa4,0x00,0x55,0x00,0xb7,0x00,0x79,0x00,0x55,0x00,0xc4,0xff,0x62,0x00,0x55,0x00,0xc5,0xff,0x62,0x00,0x55,0x00,0xe4,0x00,0x0e,0x00,0x55,0x00,0xe6,0x00,0x27,0x00,0x55,0x00,0xeb,0x00,0x52,0x00,0x55,0x00,0xf8,0xff,0xe5, +0x00,0x55,0x00,0xfb,0x00,0x0e,0x00,0x55,0x00,0xfd,0xff,0xe5,0x00,0x55,0x00,0xff,0xff,0xe5,0x00,0x55,0x01,0x00,0xff,0xe5,0x00,0x55,0x01,0x08,0xff,0xe5,0x00,0x55,0x01,0x0b,0xff,0xe5,0x00,0x55,0x01,0x0d,0xff,0xe5,0x00,0x55,0x01,0x19,0xff,0xe5,0x00,0x55,0x01,0x1f,0x00,0x0e,0x00,0x55,0x01,0x21,0x00,0x3b,0x00,0x55,0x01,0x23, +0x00,0x3b,0x00,0x55,0x01,0x29,0x00,0x27,0x00,0x55,0x01,0x2b,0x00,0x27,0x00,0x55,0x01,0x48,0xff,0xe5,0x00,0x55,0x01,0x4c,0xff,0xe5,0x00,0x55,0x01,0x4e,0xff,0xe5,0x00,0x55,0x01,0x50,0xff,0xe5,0x00,0x55,0x01,0x52,0xff,0xe5,0x00,0x55,0x01,0x54,0xff,0xe5,0x00,0x55,0x01,0x56,0xff,0xe5,0x00,0x55,0x01,0x6d,0xff,0xfc,0x00,0x55, +0x01,0x6f,0xff,0xe5,0x00,0x55,0x01,0x71,0xff,0xe5,0x00,0x55,0x01,0x75,0x00,0x0e,0x00,0x55,0x01,0x77,0x00,0x3b,0x00,0x55,0x01,0x81,0x00,0x52,0x00,0x55,0x01,0x83,0x00,0x52,0x00,0x55,0x01,0x8a,0xff,0xe5,0x00,0x55,0x01,0x8d,0x00,0x52,0x00,0x55,0x01,0x8f,0x00,0x52,0x00,0x55,0x01,0x91,0x00,0x52,0x00,0x55,0x01,0x93,0x00,0x52, +0x00,0x55,0x02,0x3e,0x00,0x0e,0x00,0x57,0x00,0x10,0xff,0x8f,0x00,0x57,0x00,0x22,0xff,0xcb,0x00,0x57,0x00,0x46,0xff,0xe5,0x00,0x57,0x00,0x47,0xff,0xe5,0x00,0x57,0x00,0x48,0xff,0xf0,0x00,0x57,0x00,0x4a,0xff,0xf0,0x00,0x57,0x00,0x52,0xff,0xf0,0x00,0x57,0x00,0x54,0xff,0xf0,0x00,0x57,0x00,0x5b,0x00,0x1d,0x00,0x57,0x00,0x6f, +0xff,0xe5,0x00,0x57,0x00,0x70,0xff,0xf0,0x00,0x57,0x00,0x71,0xff,0xf0,0x00,0x57,0x00,0x72,0xff,0xf0,0x00,0x57,0x00,0x73,0xff,0xf0,0x00,0x57,0x00,0x79,0xff,0xf0,0x00,0x57,0x00,0x7a,0xff,0xf0,0x00,0x57,0x00,0x7b,0xff,0xf0,0x00,0x57,0x00,0x7c,0xff,0xf0,0x00,0x57,0x00,0x7d,0xff,0xf0,0x00,0x57,0x00,0xab,0x00,0x27,0x00,0x57, +0x00,0xb1,0xff,0xf0,0x00,0x57,0x00,0xbf,0x00,0x27,0x00,0x57,0x00,0xf8,0xff,0xf0,0x00,0x57,0x00,0xfd,0xff,0xe5,0x00,0x57,0x00,0xff,0xff,0xe5,0x00,0x57,0x01,0x00,0xff,0xe5,0x00,0x57,0x01,0x08,0xff,0xe5,0x00,0x57,0x01,0x0b,0xff,0xf0,0x00,0x57,0x01,0x0d,0xff,0xf0,0x00,0x57,0x01,0x19,0xff,0xf0,0x00,0x57,0x01,0x48,0xff,0xe5, +0x00,0x57,0x01,0x4c,0xff,0xf0,0x00,0x57,0x01,0x4e,0xff,0xf0,0x00,0x57,0x01,0x50,0xff,0xf0,0x00,0x57,0x01,0x52,0xff,0xf0,0x00,0x57,0x01,0x54,0xff,0xf0,0x00,0x57,0x01,0x56,0xff,0xf0,0x00,0x57,0x01,0x6f,0xff,0xf0,0x00,0x57,0x01,0x71,0xff,0xf0,0x00,0x57,0x01,0x8a,0xff,0xf0,0x00,0x58,0x00,0x05,0xff,0xbe,0x00,0x58,0x00,0x0a, +0xff,0xbe,0x00,0x59,0x00,0x0f,0xff,0x8b,0x00,0x59,0x00,0x11,0xff,0x7f,0x00,0x59,0x00,0x44,0xff,0xdb,0x00,0x59,0x00,0x46,0xff,0xf4,0x00,0x59,0x00,0x47,0xff,0xf0,0x00,0x59,0x00,0x48,0xff,0xf4,0x00,0x59,0x00,0x4a,0xff,0xf4,0x00,0x59,0x00,0x52,0xff,0xf4,0x00,0x59,0x00,0x54,0xff,0xf0,0x00,0x59,0x00,0x69,0xff,0xdb,0x00,0x59, +0x00,0x6a,0xff,0xdb,0x00,0x59,0x00,0x6b,0xff,0xdb,0x00,0x59,0x00,0x6c,0xff,0xdb,0x00,0x59,0x00,0x6d,0xff,0xdb,0x00,0x59,0x00,0x6e,0xff,0xdb,0x00,0x59,0x00,0x6f,0xff,0xf4,0x00,0x59,0x00,0x70,0xff,0xf4,0x00,0x59,0x00,0x71,0xff,0xf4,0x00,0x59,0x00,0x72,0xff,0xf4,0x00,0x59,0x00,0x73,0xff,0xf4,0x00,0x59,0x00,0x79,0xff,0xf4, +0x00,0x59,0x00,0x7a,0xff,0xf4,0x00,0x59,0x00,0x7b,0xff,0xf4,0x00,0x59,0x00,0x7c,0xff,0xf4,0x00,0x59,0x00,0x7d,0xff,0xf4,0x00,0x59,0x00,0xa0,0xff,0xdb,0x00,0x59,0x00,0xac,0xff,0x7f,0x00,0x59,0x00,0xb1,0xff,0xf4,0x00,0x59,0x00,0xc4,0xff,0x8b,0x00,0x59,0x00,0xc5,0xff,0x7f,0x00,0x59,0x00,0xf8,0xff,0xf4,0x00,0x59,0x00,0xfd, +0xff,0xf4,0x00,0x59,0x00,0xff,0xff,0xf4,0x00,0x59,0x01,0x00,0xff,0xf0,0x00,0x59,0x01,0x04,0xff,0xdb,0x00,0x59,0x01,0x06,0xff,0xdb,0x00,0x59,0x01,0x08,0xff,0xf0,0x00,0x59,0x01,0x0b,0xff,0xf4,0x00,0x59,0x01,0x0d,0xff,0xf4,0x00,0x59,0x01,0x19,0xff,0xf4,0x00,0x59,0x01,0x46,0xff,0xdb,0x00,0x59,0x01,0x48,0xff,0xf4,0x00,0x59, +0x01,0x4c,0xff,0xf4,0x00,0x59,0x01,0x4e,0xff,0xf4,0x00,0x59,0x01,0x50,0xff,0xf4,0x00,0x59,0x01,0x52,0xff,0xf4,0x00,0x59,0x01,0x54,0xff,0xf4,0x00,0x59,0x01,0x56,0xff,0xf4,0x00,0x59,0x01,0x6f,0xff,0xf4,0x00,0x59,0x01,0x71,0xff,0xf4,0x00,0x59,0x01,0x86,0xff,0xdb,0x00,0x59,0x01,0x88,0xff,0xdb,0x00,0x59,0x01,0x8a,0xff,0xf4, +0x00,0x5a,0x00,0x0f,0xff,0xa6,0x00,0x5a,0x00,0x11,0xff,0x9a,0x00,0x5a,0x00,0x46,0xff,0xfa,0x00,0x5a,0x00,0x47,0xff,0xf6,0x00,0x5a,0x00,0x48,0xff,0xf6,0x00,0x5a,0x00,0x4a,0xff,0xfa,0x00,0x5a,0x00,0x52,0xff,0xfa,0x00,0x5a,0x00,0x54,0xff,0xf6,0x00,0x5a,0x00,0x6f,0xff,0xfa,0x00,0x5a,0x00,0x70,0xff,0xf6,0x00,0x5a,0x00,0x71, +0xff,0xf6,0x00,0x5a,0x00,0x72,0xff,0xf6,0x00,0x5a,0x00,0x73,0xff,0xf6,0x00,0x5a,0x00,0x79,0xff,0xfa,0x00,0x5a,0x00,0x7a,0xff,0xfa,0x00,0x5a,0x00,0x7b,0xff,0xfa,0x00,0x5a,0x00,0x7c,0xff,0xfa,0x00,0x5a,0x00,0x7d,0xff,0xfa,0x00,0x5a,0x00,0xac,0xff,0x9a,0x00,0x5a,0x00,0xb1,0xff,0xfa,0x00,0x5a,0x00,0xc4,0xff,0xb4,0x00,0x5a, +0x00,0xc5,0xff,0xb4,0x00,0x5a,0x00,0xf8,0xff,0xfa,0x00,0x5a,0x00,0xfd,0xff,0xfa,0x00,0x5a,0x00,0xff,0xff,0xfa,0x00,0x5a,0x01,0x00,0xff,0xf6,0x00,0x5a,0x01,0x08,0xff,0xf6,0x00,0x5a,0x01,0x0b,0xff,0xf6,0x00,0x5a,0x01,0x0d,0xff,0xf6,0x00,0x5a,0x01,0x19,0xff,0xfa,0x00,0x5a,0x01,0x48,0xff,0xfa,0x00,0x5a,0x01,0x4c,0xff,0xf6, +0x00,0x5a,0x01,0x4e,0xff,0xf6,0x00,0x5a,0x01,0x50,0xff,0xf6,0x00,0x5a,0x01,0x52,0xff,0xfa,0x00,0x5a,0x01,0x54,0xff,0xfa,0x00,0x5a,0x01,0x56,0xff,0xfa,0x00,0x5a,0x01,0x6f,0xff,0xfa,0x00,0x5a,0x01,0x71,0xff,0xfa,0x00,0x5a,0x01,0x8a,0xff,0xfa,0x00,0x5b,0x00,0x46,0xff,0xf0,0x00,0x5b,0x00,0x47,0xff,0xf0,0x00,0x5b,0x00,0x48, +0xff,0xf0,0x00,0x5b,0x00,0x4a,0xff,0xf0,0x00,0x5b,0x00,0x52,0xff,0xf0,0x00,0x5b,0x00,0x54,0xff,0xf0,0x00,0x5b,0x00,0x6f,0xff,0xf0,0x00,0x5b,0x00,0x70,0xff,0xf0,0x00,0x5b,0x00,0x71,0xff,0xf0,0x00,0x5b,0x00,0x72,0xff,0xf0,0x00,0x5b,0x00,0x73,0xff,0xf0,0x00,0x5b,0x00,0x79,0xff,0xf0,0x00,0x5b,0x00,0x7a,0xff,0xf0,0x00,0x5b, +0x00,0x7b,0xff,0xf0,0x00,0x5b,0x00,0x7c,0xff,0xf0,0x00,0x5b,0x00,0x7d,0xff,0xf0,0x00,0x5b,0x00,0xb1,0xff,0xf0,0x00,0x5b,0x00,0xf8,0xff,0xf0,0x00,0x5b,0x00,0xfd,0xff,0xf0,0x00,0x5b,0x00,0xff,0xff,0xf0,0x00,0x5b,0x01,0x00,0xff,0xf0,0x00,0x5b,0x01,0x08,0xff,0xf0,0x00,0x5b,0x01,0x0b,0xff,0xf0,0x00,0x5b,0x01,0x0d,0xff,0xf0, +0x00,0x5b,0x01,0x19,0xff,0xf0,0x00,0x5b,0x01,0x48,0xff,0xf0,0x00,0x5b,0x01,0x4c,0xff,0xf0,0x00,0x5b,0x01,0x4e,0xff,0xf0,0x00,0x5b,0x01,0x50,0xff,0xf0,0x00,0x5b,0x01,0x52,0xff,0xf0,0x00,0x5b,0x01,0x54,0xff,0xf0,0x00,0x5b,0x01,0x56,0xff,0xf0,0x00,0x5b,0x01,0x6f,0xff,0xf0,0x00,0x5b,0x01,0x71,0xff,0xf0,0x00,0x5b,0x01,0x8a, +0xff,0xf0,0x00,0x5c,0x00,0x05,0x00,0x1d,0x00,0x5c,0x00,0x0a,0x00,0x1d,0x00,0x5c,0x00,0x0f,0xff,0x9a,0x00,0x5c,0x00,0x11,0xff,0x81,0x00,0x5c,0x00,0x22,0xff,0xb4,0x00,0x5c,0x00,0x46,0xff,0xf6,0x00,0x5c,0x00,0x47,0xff,0xf6,0x00,0x5c,0x00,0x48,0xff,0xf6,0x00,0x5c,0x00,0x49,0x00,0x04,0x00,0x5c,0x00,0x4a,0xff,0xf6,0x00,0x5c, +0x00,0x52,0xff,0xf6,0x00,0x5c,0x00,0x54,0xff,0xf6,0x00,0x5c,0x00,0x57,0x00,0x06,0x00,0x5c,0x00,0x6f,0xff,0xf6,0x00,0x5c,0x00,0x70,0xff,0xf6,0x00,0x5c,0x00,0x71,0xff,0xf6,0x00,0x5c,0x00,0x72,0xff,0xf6,0x00,0x5c,0x00,0x73,0xff,0xf6,0x00,0x5c,0x00,0x79,0xff,0xf6,0x00,0x5c,0x00,0x7a,0xff,0xf6,0x00,0x5c,0x00,0x7b,0xff,0xf6, +0x00,0x5c,0x00,0x7c,0xff,0xf6,0x00,0x5c,0x00,0x7d,0xff,0xf6,0x00,0x5c,0x00,0xac,0xff,0x81,0x00,0x5c,0x00,0xb1,0xff,0xf6,0x00,0x5c,0x00,0xbf,0x00,0x0c,0x00,0x5c,0x00,0xc4,0xff,0x8d,0x00,0x5c,0x00,0xc5,0xff,0x8d,0x00,0x5c,0x00,0xf8,0xff,0xf6,0x00,0x5c,0x00,0xfd,0xff,0xf6,0x00,0x5c,0x00,0xff,0xff,0xf6,0x00,0x5c,0x01,0x00, +0xff,0xf6,0x00,0x5c,0x01,0x08,0xff,0xf6,0x00,0x5c,0x01,0x0b,0xff,0xf6,0x00,0x5c,0x01,0x0d,0xff,0xf6,0x00,0x5c,0x01,0x19,0xff,0xf6,0x00,0x5c,0x01,0x21,0x00,0x06,0x00,0x5c,0x01,0x23,0x00,0x06,0x00,0x5c,0x01,0x48,0xff,0xf6,0x00,0x5c,0x01,0x4c,0xff,0xf6,0x00,0x5c,0x01,0x4e,0xff,0xf6,0x00,0x5c,0x01,0x50,0xff,0xf6,0x00,0x5c, +0x01,0x52,0xff,0xf6,0x00,0x5c,0x01,0x54,0xff,0xf6,0x00,0x5c,0x01,0x56,0xff,0xf6,0x00,0x5c,0x01,0x6f,0xff,0xf6,0x00,0x5c,0x01,0x71,0xff,0xf6,0x00,0x5c,0x01,0x77,0x00,0x06,0x00,0x5c,0x01,0x8a,0xff,0xf6,0x00,0x5e,0x00,0x4d,0x00,0xcb,0x00,0x5e,0x01,0x64,0x00,0xcb,0x00,0x62,0x00,0x2d,0x00,0x5e,0x00,0x62,0x00,0x37,0xff,0x6d, +0x00,0x62,0x00,0x39,0xff,0x8b,0x00,0x62,0x00,0x3a,0xff,0xb0,0x00,0x62,0x00,0x3c,0xff,0x64,0x00,0x62,0x00,0xea,0xff,0x64,0x00,0x62,0x01,0x20,0xff,0x6d,0x00,0x62,0x01,0x22,0xff,0x6d,0x00,0x62,0x01,0x63,0x00,0x5e,0x00,0x62,0x01,0x76,0xff,0x6d,0x00,0x62,0x01,0x80,0xff,0xb0,0x00,0x62,0x01,0x82,0xff,0x64,0x00,0x62,0x01,0x8c, +0xff,0xb0,0x00,0x62,0x01,0x8e,0xff,0xb0,0x00,0x62,0x01,0x90,0xff,0xb0,0x00,0x62,0x01,0x92,0xff,0x64,0x00,0x63,0x00,0x2d,0x00,0x5e,0x00,0x63,0x00,0x37,0xff,0x6d,0x00,0x63,0x00,0x39,0xff,0x8b,0x00,0x63,0x00,0x3a,0xff,0xb6,0x00,0x63,0x00,0x3c,0xff,0x64,0x00,0x63,0x00,0xea,0xff,0x64,0x00,0x63,0x01,0x20,0xff,0x6d,0x00,0x63, +0x01,0x22,0xff,0x6d,0x00,0x63,0x01,0x63,0x00,0x5e,0x00,0x63,0x01,0x76,0xff,0x6d,0x00,0x63,0x01,0x80,0xff,0xb6,0x00,0x63,0x01,0x82,0xff,0x64,0x00,0x63,0x01,0x8c,0xff,0xb6,0x00,0x63,0x01,0x8e,0xff,0xb6,0x00,0x63,0x01,0x90,0xff,0xb6,0x00,0x63,0x01,0x92,0xff,0x64,0x00,0x64,0x00,0x26,0xff,0xc9,0x00,0x64,0x00,0x2a,0xff,0xc9, +0x00,0x64,0x00,0x32,0xff,0xc9,0x00,0x64,0x00,0x34,0xff,0xc9,0x00,0x64,0x00,0xf7,0xff,0xc9,0x00,0x64,0x00,0xfc,0xff,0xc9,0x00,0x64,0x00,0xfe,0xff,0xc9,0x00,0x64,0x01,0x18,0xff,0xc9,0x00,0x64,0x01,0x47,0xff,0xc9,0x00,0x64,0x01,0x51,0xff,0xc9,0x00,0x64,0x01,0x53,0xff,0xc9,0x00,0x64,0x01,0x55,0xff,0xc9,0x00,0x64,0x01,0x6e, +0xff,0xc9,0x00,0x64,0x01,0x70,0xff,0xc9,0x00,0x64,0x01,0x89,0xff,0xc9,0x00,0x65,0x00,0x2d,0x00,0x3d,0x00,0x65,0x01,0x63,0x00,0x3d,0x00,0x67,0x00,0x24,0xff,0xe5,0x00,0x67,0x00,0x37,0xff,0xa4,0x00,0x67,0x00,0x3b,0xff,0xdb,0x00,0x67,0x00,0x3d,0xff,0xcf,0x00,0x67,0x00,0xe5,0xff,0xcf,0x00,0x67,0x01,0x03,0xff,0xe5,0x00,0x67, +0x01,0x05,0xff,0xe5,0x00,0x67,0x01,0x20,0xff,0xa4,0x00,0x67,0x01,0x22,0xff,0xa4,0x00,0x67,0x01,0x28,0xff,0xcf,0x00,0x67,0x01,0x2a,0xff,0xcf,0x00,0x67,0x01,0x45,0xff,0xe5,0x00,0x67,0x01,0x76,0xff,0xa4,0x00,0x67,0x01,0x85,0xff,0xe5,0x00,0x67,0x01,0x87,0xff,0xe5,0x00,0x79,0x00,0x44,0xff,0xe5,0x00,0x79,0x00,0x49,0xff,0xe7, +0x00,0x79,0x00,0x5b,0xff,0xe5,0x00,0x79,0x00,0xc0,0xff,0xe7,0x00,0x79,0x00,0xc1,0xff,0xe7,0x00,0x79,0x01,0x06,0xff,0xe5,0x00,0x79,0x01,0x88,0xff,0xe5,0x00,0x7a,0x00,0x44,0xff,0xe5,0x00,0x7a,0x00,0x49,0xff,0xe7,0x00,0x7a,0x00,0x5b,0xff,0xe5,0x00,0x7a,0x00,0xc0,0xff,0xe7,0x00,0x7a,0x00,0xc1,0xff,0xe7,0x00,0x7a,0x01,0x06, +0xff,0xe5,0x00,0x7a,0x01,0x88,0xff,0xe5,0x00,0x7b,0x00,0x44,0xff,0xe5,0x00,0x7b,0x00,0x49,0xff,0xe7,0x00,0x7b,0x00,0x5b,0xff,0xe5,0x00,0x7b,0x00,0xc0,0xff,0xe7,0x00,0x7b,0x00,0xc1,0xff,0xe7,0x00,0x7b,0x01,0x06,0xff,0xe5,0x00,0x7b,0x01,0x88,0xff,0xe5,0x00,0x7c,0x00,0x44,0xff,0xe5,0x00,0x7c,0x00,0x49,0xff,0xe7,0x00,0x7c, +0x00,0x5b,0xff,0xe5,0x00,0x7c,0x00,0xc0,0xff,0xe7,0x00,0x7c,0x00,0xc1,0xff,0xe7,0x00,0x7c,0x01,0x06,0xff,0xe5,0x00,0x7c,0x01,0x88,0xff,0xe5,0x00,0x7d,0x00,0x44,0xff,0xe5,0x00,0x7d,0x00,0x49,0xff,0xe7,0x00,0x7d,0x00,0x5b,0xff,0xe5,0x00,0x7d,0x00,0xc0,0xff,0xe7,0x00,0x7d,0x00,0xc1,0xff,0xe7,0x00,0x7d,0x01,0x06,0xff,0xe5, +0x00,0x7d,0x01,0x88,0xff,0xe5,0x00,0x91,0x00,0x2d,0x00,0x0e,0x00,0x91,0x01,0x63,0x00,0x0e,0x00,0x92,0x00,0x24,0xff,0xe5,0x00,0x92,0x00,0x37,0xff,0xa4,0x00,0x92,0x00,0x3b,0xff,0xdb,0x00,0x92,0x00,0x3d,0xff,0xcf,0x00,0x92,0x00,0xe5,0xff,0xcf,0x00,0x92,0x01,0x03,0xff,0xe5,0x00,0x92,0x01,0x05,0xff,0xe5,0x00,0x92,0x01,0x20, +0xff,0xa4,0x00,0x92,0x01,0x22,0xff,0xa4,0x00,0x92,0x01,0x28,0xff,0xcf,0x00,0x92,0x01,0x2a,0xff,0xcf,0x00,0x92,0x01,0x45,0xff,0xe5,0x00,0x92,0x01,0x76,0xff,0xa4,0x00,0x92,0x01,0x85,0xff,0xe5,0x00,0x92,0x01,0x87,0xff,0xe5,0x00,0xa1,0x00,0x44,0xff,0xe5,0x00,0xa1,0x00,0x49,0xff,0xe7,0x00,0xa1,0x00,0x5b,0xff,0xe5,0x00,0xa1, +0x00,0xc0,0xff,0xe7,0x00,0xa1,0x00,0xc1,0xff,0xe7,0x00,0xa1,0x01,0x06,0xff,0xe5,0x00,0xa1,0x01,0x88,0xff,0xe5,0x00,0xa2,0x00,0x3c,0xff,0x9a,0x00,0xa2,0x00,0x4d,0x00,0xbc,0x00,0xa2,0x00,0xea,0xff,0x9a,0x00,0xa2,0x01,0x64,0x00,0xbc,0x00,0xa2,0x01,0x82,0xff,0x9a,0x00,0xa2,0x01,0x92,0xff,0x9a,0x00,0xa4,0x00,0x4d,0x00,0xa0, +0x00,0xa4,0x01,0x33,0xff,0xdb,0x00,0xa4,0x01,0x64,0x00,0xa0,0x00,0xa4,0x02,0x37,0xff,0xdb,0x00,0xa9,0x00,0x0d,0xff,0x7f,0x00,0xa9,0x00,0x8d,0xff,0x98,0x00,0xa9,0x00,0xb4,0xff,0x66,0x00,0xa9,0x00,0xb5,0xff,0x3d,0x00,0xa9,0x00,0xb6,0xff,0x66,0x00,0xa9,0x00,0xb7,0xff,0x3d,0x00,0xa9,0x01,0x2d,0xff,0xd5,0x00,0xa9,0x01,0x2e, +0xff,0xd5,0x00,0xa9,0x01,0x33,0xff,0xa4,0x00,0xa9,0x01,0xb4,0xff,0xd5,0x00,0xa9,0x01,0xb7,0x00,0x3d,0x00,0xa9,0x01,0xb8,0xff,0x66,0x00,0xa9,0x01,0xb9,0xff,0x66,0x00,0xa9,0x01,0xba,0x00,0x3d,0x00,0xa9,0x01,0xbb,0xff,0x79,0x00,0xa9,0x01,0xbc,0x00,0x12,0x00,0xa9,0x01,0xbe,0xff,0x66,0x00,0xa9,0x01,0xc3,0xff,0xf6,0x00,0xa9, +0x01,0xc5,0xff,0xb6,0x00,0xa9,0x01,0xc8,0xff,0xf4,0x00,0xa9,0x01,0xcb,0x00,0x3d,0x00,0xa9,0x01,0xcd,0xff,0xdb,0x00,0xa9,0x01,0xd2,0xff,0xf6,0x00,0xa9,0x01,0xd3,0xff,0xc1,0x00,0xa9,0x01,0xd4,0xff,0xf6,0x00,0xa9,0x01,0xd7,0xff,0xf6,0x00,0xa9,0x01,0xd9,0xff,0xf6,0x00,0xaa,0x00,0x2d,0x00,0x52,0x00,0xaa,0x00,0x37,0xff,0xcf, +0x00,0xaa,0x00,0x3a,0x00,0x52,0x00,0xaa,0x00,0x3d,0x00,0x52,0x00,0xaa,0x00,0x5c,0x00,0x0c,0x00,0xaa,0x00,0xe5,0x00,0x52,0x00,0xaa,0x00,0xeb,0x00,0x0c,0x00,0xaa,0x01,0x20,0xff,0xcf,0x00,0xaa,0x01,0x22,0xff,0xcf,0x00,0xaa,0x01,0x28,0x00,0x52,0x00,0xaa,0x01,0x2a,0x00,0x52,0x00,0xaa,0x01,0x63,0x00,0x52,0x00,0xaa,0x01,0x76, +0xff,0xcf,0x00,0xaa,0x01,0x80,0x00,0x52,0x00,0xaa,0x01,0x83,0x00,0x0c,0x00,0xaa,0x01,0x8c,0x00,0x52,0x00,0xaa,0x01,0x8e,0x00,0x52,0x00,0xaa,0x01,0x90,0x00,0x52,0x00,0xaa,0x01,0x93,0x00,0x0c,0x00,0xaa,0x01,0xac,0x00,0x52,0x00,0xaa,0x01,0xb8,0xff,0xcd,0x00,0xaa,0x01,0xdc,0xff,0xcd,0x00,0xaa,0x01,0xe1,0x00,0x52,0x00,0xaa, +0x01,0xe3,0xff,0xcd,0x00,0xaa,0x01,0xeb,0x00,0x52,0x00,0xaa,0x01,0xf2,0x00,0x52,0x00,0xaa,0x01,0xf9,0xff,0xcd,0x00,0xaa,0x02,0x01,0xff,0xcd,0x00,0xaa,0x02,0x1a,0x00,0x0e,0x00,0xaa,0x02,0x31,0x00,0x0e,0x00,0xab,0x00,0x37,0xff,0xcf,0x00,0xab,0x00,0x39,0xff,0xcf,0x00,0xab,0x00,0x3a,0xff,0xcf,0x00,0xab,0x00,0x3c,0xff,0x9a, +0x00,0xab,0x00,0xea,0xff,0x9a,0x00,0xab,0x01,0x20,0xff,0xcf,0x00,0xab,0x01,0x22,0xff,0xcf,0x00,0xab,0x01,0x76,0xff,0xcf,0x00,0xab,0x01,0x80,0xff,0xcf,0x00,0xab,0x01,0x82,0xff,0x9a,0x00,0xab,0x01,0x8c,0xff,0xcf,0x00,0xab,0x01,0x8e,0xff,0xcf,0x00,0xab,0x01,0x90,0xff,0xcf,0x00,0xab,0x01,0x92,0xff,0x9a,0x00,0xab,0x01,0xb8, +0xff,0xcd,0x00,0xab,0x01,0xb9,0xff,0x98,0x00,0xab,0x01,0xdc,0xff,0xcd,0x00,0xab,0x01,0xe3,0xff,0xcd,0x00,0xab,0x01,0xf9,0xff,0xcd,0x00,0xab,0x02,0x01,0xff,0xcd,0x00,0xac,0x00,0xb4,0xff,0x31,0x00,0xac,0x00,0xb5,0xff,0x3d,0x00,0xac,0x00,0xb6,0xff,0x31,0x00,0xac,0x00,0xb7,0xff,0x3d,0x00,0xad,0x00,0x2d,0x00,0x5e,0x00,0xad, +0x00,0x37,0xff,0x6d,0x00,0xad,0x00,0x39,0xff,0x8b,0x00,0xad,0x00,0x3a,0xff,0xb6,0x00,0xad,0x00,0x3c,0xff,0x64,0x00,0xad,0x00,0xea,0xff,0x64,0x00,0xad,0x01,0x20,0xff,0x6d,0x00,0xad,0x01,0x22,0xff,0x6d,0x00,0xad,0x01,0x63,0x00,0x5e,0x00,0xad,0x01,0x76,0xff,0x6d,0x00,0xad,0x01,0x80,0xff,0xb6,0x00,0xad,0x01,0x82,0xff,0x64, +0x00,0xad,0x01,0x8c,0xff,0xb6,0x00,0xad,0x01,0x8e,0xff,0xb6,0x00,0xad,0x01,0x90,0xff,0xb6,0x00,0xad,0x01,0x92,0xff,0x64,0x00,0xae,0x00,0x2d,0x00,0x5e,0x00,0xae,0x00,0x37,0xff,0x6d,0x00,0xae,0x00,0x39,0xff,0x8b,0x00,0xae,0x00,0x3a,0xff,0xb6,0x00,0xae,0x00,0x3c,0xff,0x64,0x00,0xae,0x00,0xea,0xff,0x64,0x00,0xae,0x01,0x20, +0xff,0x6d,0x00,0xae,0x01,0x22,0xff,0x6d,0x00,0xae,0x01,0x63,0x00,0x5e,0x00,0xae,0x01,0x76,0xff,0x6d,0x00,0xae,0x01,0x80,0xff,0xb6,0x00,0xae,0x01,0x82,0xff,0x64,0x00,0xae,0x01,0x8c,0xff,0xb6,0x00,0xae,0x01,0x8e,0xff,0xb6,0x00,0xae,0x01,0x90,0xff,0xb6,0x00,0xae,0x01,0x92,0xff,0x64,0x00,0xaf,0x00,0x24,0xff,0xe5,0x00,0xaf, +0x00,0x37,0xff,0xa4,0x00,0xaf,0x00,0x3b,0xff,0xdb,0x00,0xaf,0x00,0x3d,0xff,0xcf,0x00,0xaf,0x00,0xe5,0xff,0xcf,0x00,0xaf,0x01,0x03,0xff,0xe5,0x00,0xaf,0x01,0x05,0xff,0xe5,0x00,0xaf,0x01,0x20,0xff,0xa4,0x00,0xaf,0x01,0x22,0xff,0xa4,0x00,0xaf,0x01,0x28,0xff,0xcf,0x00,0xaf,0x01,0x2a,0xff,0xcf,0x00,0xaf,0x01,0x45,0xff,0xe5, +0x00,0xaf,0x01,0x76,0xff,0xa4,0x00,0xaf,0x01,0x85,0xff,0xe5,0x00,0xaf,0x01,0x87,0xff,0xe5,0x00,0xb0,0x00,0x24,0x00,0x1d,0x00,0xb0,0x00,0x2d,0x00,0x44,0x00,0xb0,0x00,0x37,0x00,0x04,0x00,0xb0,0x00,0x3b,0x00,0x08,0x00,0xb0,0x01,0x03,0x00,0x1d,0x00,0xb0,0x01,0x05,0x00,0x1d,0x00,0xb0,0x01,0x20,0x00,0x04,0x00,0xb0,0x01,0x22, +0x00,0x04,0x00,0xb0,0x01,0x45,0x00,0x1d,0x00,0xb0,0x01,0x63,0x00,0x44,0x00,0xb0,0x01,0x76,0x00,0x04,0x00,0xb0,0x01,0x85,0x00,0x1d,0x00,0xb0,0x01,0x87,0x00,0x1d,0x00,0xb4,0x00,0x0f,0xff,0x98,0x00,0xb4,0x00,0x11,0xff,0x98,0x00,0xb4,0x00,0x24,0xff,0x25,0x00,0xb4,0x00,0x2d,0xff,0x62,0x00,0xb4,0x00,0x37,0x00,0x52,0x00,0xb4, +0x00,0x46,0xff,0x7f,0x00,0xb4,0x00,0x47,0xff,0x7f,0x00,0xb4,0x00,0x48,0xff,0x7f,0x00,0xb4,0x00,0x4a,0xff,0x73,0x00,0xb4,0x00,0x56,0xff,0xb2,0x00,0xb4,0x00,0x91,0xfe,0x87,0x00,0xb4,0x00,0xac,0xff,0x98,0x00,0xb4,0x00,0xe4,0xff,0xb2,0x00,0xb4,0x00,0xf8,0xff,0x73,0x00,0xb4,0x00,0xfb,0xff,0xb2,0x00,0xb4,0x00,0xfd,0xff,0x7f, +0x00,0xb4,0x00,0xff,0xff,0x7f,0x00,0xb4,0x01,0x00,0xff,0x7f,0x00,0xb4,0x01,0x03,0xff,0x25,0x00,0xb4,0x01,0x05,0xff,0x25,0x00,0xb4,0x01,0x08,0xff,0x7f,0x00,0xb4,0x01,0x0b,0xff,0x7f,0x00,0xb4,0x01,0x1f,0xff,0xb2,0x00,0xb4,0x01,0x20,0x00,0x52,0x00,0xb4,0x01,0x22,0x00,0x52,0x00,0xb4,0x01,0x45,0xff,0x25,0x00,0xb4,0x01,0x48, +0xff,0x7f,0x00,0xb4,0x01,0x52,0xff,0x73,0x00,0xb4,0x01,0x54,0xff,0x73,0x00,0xb4,0x01,0x56,0xff,0x73,0x00,0xb4,0x01,0x63,0xff,0x62,0x00,0xb4,0x01,0x75,0xff,0xb2,0x00,0xb4,0x01,0x76,0x00,0x52,0x00,0xb4,0x01,0x85,0xff,0x25,0x00,0xb4,0x01,0x87,0xff,0x25,0x00,0xb4,0x01,0xb8,0x00,0x52,0x00,0xb4,0x01,0xdc,0x00,0x52,0x00,0xb4, +0x01,0xe1,0xff,0x6f,0x00,0xb4,0x01,0xe3,0x00,0x52,0x00,0xb4,0x01,0xe7,0xff,0x23,0x00,0xb4,0x01,0xeb,0xff,0x6f,0x00,0xb4,0x01,0xf2,0xff,0x6f,0x00,0xb4,0x01,0xf9,0x00,0x52,0x00,0xb4,0x02,0x01,0x00,0x52,0x00,0xb4,0x02,0x0c,0xff,0x7f,0x00,0xb4,0x02,0x15,0xff,0x7f,0x00,0xb4,0x02,0x18,0xff,0x7f,0x00,0xb4,0x02,0x1b,0xff,0x7f, +0x00,0xb4,0x02,0x27,0xff,0x7f,0x00,0xb4,0x02,0x2a,0xff,0x7f,0x00,0xb4,0x02,0x2b,0xff,0xb0,0x00,0xb4,0x02,0x3e,0xff,0xb2,0x00,0xb5,0x00,0x0f,0xff,0x9a,0x00,0xb5,0x00,0x11,0xff,0x9a,0x00,0xb5,0x00,0x24,0xff,0x66,0x00,0xb5,0x00,0x37,0x00,0x52,0x00,0xb5,0x00,0x46,0xff,0xdd,0x00,0xb5,0x00,0x47,0xff,0x62,0x00,0xb5,0x00,0x48, +0xff,0x62,0x00,0xb5,0x00,0x4a,0xff,0x62,0x00,0xb5,0x00,0x52,0xff,0x62,0x00,0xb5,0x00,0x56,0xff,0x7f,0x00,0xb5,0x00,0x91,0xff,0x0a,0x00,0xb5,0x00,0xac,0xff,0x9a,0x00,0xb5,0x00,0xe4,0xff,0x7f,0x00,0xb5,0x00,0xf8,0xff,0x62,0x00,0xb5,0x00,0xfb,0xff,0x7f,0x00,0xb5,0x00,0xfd,0xff,0xdd,0x00,0xb5,0x00,0xff,0xff,0xdd,0x00,0xb5, +0x01,0x00,0xff,0x62,0x00,0xb5,0x01,0x03,0xff,0x66,0x00,0xb5,0x01,0x05,0xff,0x66,0x00,0xb5,0x01,0x08,0xff,0x62,0x00,0xb5,0x01,0x0b,0xff,0x62,0x00,0xb5,0x01,0x1f,0xff,0x7f,0x00,0xb5,0x01,0x20,0x00,0x52,0x00,0xb5,0x01,0x22,0x00,0x52,0x00,0xb5,0x01,0x45,0xff,0x66,0x00,0xb5,0x01,0x48,0xff,0xdd,0x00,0xb5,0x01,0x52,0xff,0x62, +0x00,0xb5,0x01,0x54,0xff,0x62,0x00,0xb5,0x01,0x56,0xff,0x62,0x00,0xb5,0x01,0x75,0xff,0x7f,0x00,0xb5,0x01,0x76,0x00,0x52,0x00,0xb5,0x01,0x85,0xff,0x66,0x00,0xb5,0x01,0x87,0xff,0x66,0x00,0xb5,0x01,0xdc,0x00,0x52,0x00,0xb5,0x01,0xe3,0x00,0x52,0x00,0xb5,0x01,0xe7,0xff,0x66,0x00,0xb5,0x01,0xf9,0x00,0x52,0x00,0xb5,0x02,0x01, +0x00,0x52,0x00,0xb5,0x02,0x0c,0xff,0x62,0x00,0xb5,0x02,0x15,0xff,0x62,0x00,0xb5,0x02,0x18,0xff,0x62,0x00,0xb5,0x02,0x1b,0xff,0x62,0x00,0xb5,0x02,0x27,0xff,0x62,0x00,0xb5,0x02,0x2a,0xff,0x62,0x00,0xb5,0x02,0x2b,0xff,0x7f,0x00,0xb5,0x02,0x3e,0xff,0x7f,0x00,0xb6,0x00,0x24,0xff,0x25,0x00,0xb6,0x00,0x26,0xff,0xbe,0x00,0xb6, +0x00,0x2d,0xff,0x6f,0x00,0xb6,0x00,0x37,0x00,0x52,0x00,0xb6,0x00,0x46,0xff,0x7f,0x00,0xb6,0x00,0x47,0xff,0x62,0x00,0xb6,0x00,0x48,0xff,0x7f,0x00,0xb6,0x00,0x4a,0xff,0x7f,0x00,0xb6,0x00,0x52,0xff,0x7f,0x00,0xb6,0x00,0x56,0xff,0xb2,0x00,0xb6,0x00,0x91,0xff,0x0a,0x00,0xb6,0x00,0xb6,0xff,0x54,0x00,0xb6,0x00,0xe4,0xff,0xb2, +0x00,0xb6,0x00,0xf8,0xff,0x7f,0x00,0xb6,0x00,0xfb,0xff,0xb2,0x00,0xb6,0x00,0xfc,0xff,0xbe,0x00,0xb6,0x00,0xfd,0xff,0x7f,0x00,0xb6,0x00,0xfe,0xff,0xbe,0x00,0xb6,0x00,0xff,0xff,0x7f,0x00,0xb6,0x01,0x00,0xff,0x62,0x00,0xb6,0x01,0x03,0xff,0x25,0x00,0xb6,0x01,0x05,0xff,0x25,0x00,0xb6,0x01,0x08,0xff,0x62,0x00,0xb6,0x01,0x0b, +0xff,0x7f,0x00,0xb6,0x01,0x1f,0xff,0xb2,0x00,0xb6,0x01,0x20,0x00,0x52,0x00,0xb6,0x01,0x22,0x00,0x52,0x00,0xb6,0x01,0x45,0xff,0x25,0x00,0xb6,0x01,0x47,0xff,0xbe,0x00,0xb6,0x01,0x48,0xff,0x7f,0x00,0xb6,0x01,0x52,0xff,0x7f,0x00,0xb6,0x01,0x54,0xff,0x7f,0x00,0xb6,0x01,0x56,0xff,0x7f,0x00,0xb6,0x01,0x63,0xff,0x6f,0x00,0xb6, +0x01,0x75,0xff,0xb2,0x00,0xb6,0x01,0x76,0x00,0x52,0x00,0xb6,0x01,0x85,0xff,0x25,0x00,0xb6,0x01,0x87,0xff,0x25,0x00,0xb6,0x01,0xdc,0x00,0x52,0x00,0xb6,0x01,0xde,0xff,0xbc,0x00,0xb6,0x01,0xe1,0xff,0x6f,0x00,0xb6,0x01,0xe3,0x00,0x52,0x00,0xb6,0x01,0xe7,0xff,0x23,0x00,0xb6,0x01,0xeb,0xff,0x6f,0x00,0xb6,0x01,0xf2,0xff,0x6f, +0x00,0xb6,0x01,0xf5,0xff,0xbc,0x00,0xb6,0x01,0xf8,0xff,0xbc,0x00,0xb6,0x01,0xf9,0x00,0x52,0x00,0xb6,0x01,0xfb,0xff,0xbc,0x00,0xb6,0x02,0x01,0x00,0x52,0x00,0xb6,0x02,0x0c,0xff,0x7f,0x00,0xb6,0x02,0x15,0xff,0x7f,0x00,0xb6,0x02,0x18,0xff,0x7f,0x00,0xb6,0x02,0x1b,0xff,0x7f,0x00,0xb6,0x02,0x27,0xff,0x7f,0x00,0xb6,0x02,0x2a, +0xff,0x7f,0x00,0xb6,0x02,0x2b,0xff,0xb0,0x00,0xb6,0x02,0x3e,0xff,0xb2,0x00,0xb7,0x00,0x0f,0xff,0x9a,0x00,0xb7,0x00,0x11,0xff,0x9a,0x00,0xb7,0x00,0x24,0xff,0x5a,0x00,0xb7,0x00,0x2d,0xff,0x62,0x00,0xb7,0x00,0x37,0x00,0x52,0x00,0xb7,0x00,0x44,0xff,0x98,0x00,0xb7,0x00,0x46,0xff,0x3d,0x00,0xb7,0x00,0x47,0xff,0x62,0x00,0xb7, +0x00,0x48,0xff,0x62,0x00,0xb7,0x00,0x4a,0xff,0x62,0x00,0xb7,0x00,0x52,0xff,0x62,0x00,0xb7,0x00,0x54,0xff,0x6f,0x00,0xb7,0x00,0x56,0xff,0x8b,0x00,0xb7,0x00,0x91,0xff,0x08,0x00,0xb7,0x00,0xac,0xff,0x9a,0x00,0xb7,0x00,0xb7,0xff,0x54,0x00,0xb7,0x00,0xc4,0xff,0x98,0x00,0xb7,0x00,0xe4,0xff,0x8b,0x00,0xb7,0x00,0xf8,0xff,0x62, +0x00,0xb7,0x00,0xfb,0xff,0x8b,0x00,0xb7,0x00,0xfd,0xff,0x3d,0x00,0xb7,0x00,0xff,0xff,0x3d,0x00,0xb7,0x01,0x00,0xff,0x62,0x00,0xb7,0x01,0x03,0xff,0x5a,0x00,0xb7,0x01,0x05,0xff,0x5a,0x00,0xb7,0x01,0x06,0xff,0x98,0x00,0xb7,0x01,0x08,0xff,0x62,0x00,0xb7,0x01,0x0b,0xff,0x62,0x00,0xb7,0x01,0x1f,0xff,0x8b,0x00,0xb7,0x01,0x20, +0x00,0x52,0x00,0xb7,0x01,0x22,0x00,0x52,0x00,0xb7,0x01,0x45,0xff,0x5a,0x00,0xb7,0x01,0x48,0xff,0x3d,0x00,0xb7,0x01,0x52,0xff,0x62,0x00,0xb7,0x01,0x54,0xff,0x62,0x00,0xb7,0x01,0x56,0xff,0x62,0x00,0xb7,0x01,0x63,0xff,0x62,0x00,0xb7,0x01,0x75,0xff,0x8b,0x00,0xb7,0x01,0x76,0x00,0x52,0x00,0xb7,0x01,0x85,0xff,0x5a,0x00,0xb7, +0x01,0x87,0xff,0x5a,0x00,0xb7,0x01,0x88,0xff,0x98,0x00,0xb7,0x01,0xdc,0x00,0x52,0x00,0xb7,0x01,0xe1,0xff,0x62,0x00,0xb7,0x01,0xe3,0x00,0x52,0x00,0xb7,0x01,0xe7,0xff,0x5a,0x00,0xb7,0x01,0xeb,0xff,0x62,0x00,0xb7,0x01,0xf2,0xff,0x62,0x00,0xb7,0x01,0xf9,0x00,0x52,0x00,0xb7,0x02,0x01,0x00,0x52,0x00,0xb7,0x02,0x07,0xff,0x96, +0x00,0xb7,0x02,0x0c,0xff,0x62,0x00,0xb7,0x02,0x15,0xff,0x62,0x00,0xb7,0x02,0x18,0xff,0x62,0x00,0xb7,0x02,0x1b,0xff,0x62,0x00,0xb7,0x02,0x27,0xff,0x62,0x00,0xb7,0x02,0x2a,0xff,0x62,0x00,0xb7,0x02,0x2b,0xff,0x8b,0x00,0xb7,0x02,0x3e,0xff,0x8b,0x00,0xba,0x00,0x46,0xff,0xf6,0x00,0xba,0x00,0x47,0xff,0xf6,0x00,0xba,0x00,0x48, +0xff,0xf6,0x00,0xba,0x00,0x4a,0xff,0xf6,0x00,0xba,0x00,0x52,0xff,0xf6,0x00,0xba,0x00,0x54,0xff,0xf6,0x00,0xba,0x00,0xf8,0xff,0xf6,0x00,0xba,0x00,0xfd,0xff,0xf6,0x00,0xba,0x00,0xff,0xff,0xf6,0x00,0xba,0x01,0x00,0xff,0xf6,0x00,0xba,0x01,0x08,0xff,0xf6,0x00,0xba,0x01,0x0b,0xff,0xf6,0x00,0xba,0x01,0x48,0xff,0xf6,0x00,0xba, +0x01,0x52,0xff,0xf6,0x00,0xba,0x01,0x54,0xff,0xf6,0x00,0xba,0x01,0x56,0xff,0xf6,0x00,0xbb,0x00,0x24,0xff,0x62,0x00,0xbb,0x00,0x26,0xff,0xe1,0x00,0xbb,0x00,0x2a,0xff,0xe1,0x00,0xbb,0x00,0x32,0xff,0xe1,0x00,0xbb,0x00,0x34,0xff,0xcd,0x00,0xbb,0x00,0x36,0xff,0xe5,0x00,0xbb,0x00,0xe3,0xff,0xe5,0x00,0xbb,0x00,0xf7,0xff,0xe1, +0x00,0xbb,0x00,0xfa,0xff,0xe5,0x00,0xbb,0x00,0xfc,0xff,0xe1,0x00,0xbb,0x00,0xfe,0xff,0xe1,0x00,0xbb,0x01,0x03,0xff,0x62,0x00,0xbb,0x01,0x05,0xff,0x62,0x00,0xbb,0x01,0x18,0xff,0xe1,0x00,0xbb,0x01,0x1e,0xff,0xe5,0x00,0xbb,0x01,0x45,0xff,0x62,0x00,0xbb,0x01,0x47,0xff,0xe1,0x00,0xbb,0x01,0x51,0xff,0xe1,0x00,0xbb,0x01,0x53, +0xff,0xe1,0x00,0xbb,0x01,0x55,0xff,0xe1,0x00,0xbb,0x01,0x6e,0xff,0xe1,0x00,0xbb,0x01,0x70,0xff,0xe1,0x00,0xbb,0x01,0x74,0xff,0xe5,0x00,0xbb,0x01,0x85,0xff,0x62,0x00,0xbb,0x01,0x87,0xff,0x62,0x00,0xbb,0x01,0x89,0xff,0xe1,0x00,0xbb,0x02,0x3d,0xff,0xe5,0x00,0xbe,0x00,0x2d,0x00,0x52,0x00,0xbe,0x00,0x37,0xff,0xcf,0x00,0xbe, +0x00,0x3a,0x00,0x27,0x00,0xbe,0x00,0x3d,0x00,0x52,0x00,0xbe,0x00,0x5c,0x00,0x0c,0x00,0xbe,0x00,0xe5,0x00,0x52,0x00,0xbe,0x00,0xeb,0x00,0x0c,0x00,0xbe,0x01,0x20,0xff,0xcf,0x00,0xbe,0x01,0x22,0xff,0xcf,0x00,0xbe,0x01,0x28,0x00,0x52,0x00,0xbe,0x01,0x2a,0x00,0x52,0x00,0xbe,0x01,0x63,0x00,0x52,0x00,0xbe,0x01,0x76,0xff,0xcf, +0x00,0xbe,0x01,0x80,0x00,0x27,0x00,0xbe,0x01,0x83,0x00,0x0c,0x00,0xbe,0x01,0x8c,0x00,0x27,0x00,0xbe,0x01,0x8e,0x00,0x27,0x00,0xbe,0x01,0x90,0x00,0x27,0x00,0xbe,0x01,0x93,0x00,0x0c,0x00,0xbe,0x01,0xdc,0xff,0xcd,0x00,0xbe,0x01,0xe1,0x00,0x52,0x00,0xbe,0x01,0xe3,0xff,0xcd,0x00,0xbe,0x01,0xeb,0x00,0x52,0x00,0xbe,0x01,0xf2, +0x00,0x52,0x00,0xbe,0x01,0xf9,0xff,0xcd,0x00,0xbe,0x02,0x01,0xff,0xcd,0x00,0xbe,0x02,0x1a,0x00,0x0e,0x00,0xbe,0x02,0x31,0x00,0x0e,0x00,0xbf,0x00,0x37,0xff,0x9a,0x00,0xbf,0x00,0x39,0xff,0xcf,0x00,0xbf,0x00,0x3a,0xff,0xcf,0x00,0xbf,0x00,0x3c,0xff,0x9a,0x00,0xbf,0x00,0xea,0xff,0x9a,0x00,0xbf,0x01,0x20,0xff,0x9a,0x00,0xbf, +0x01,0x22,0xff,0x9a,0x00,0xbf,0x01,0x76,0xff,0x9a,0x00,0xbf,0x01,0x80,0xff,0xcf,0x00,0xbf,0x01,0x82,0xff,0x9a,0x00,0xbf,0x01,0x8c,0xff,0xcf,0x00,0xbf,0x01,0x8e,0xff,0xcf,0x00,0xbf,0x01,0x90,0xff,0xcf,0x00,0xbf,0x01,0x92,0xff,0x9a,0x00,0xbf,0x01,0xdc,0xff,0x98,0x00,0xbf,0x01,0xe3,0xff,0x98,0x00,0xbf,0x01,0xf9,0xff,0x98, +0x00,0xbf,0x02,0x01,0xff,0x98,0x00,0xc4,0x00,0x2a,0xff,0xb2,0x00,0xc4,0x00,0x2d,0x00,0x6d,0x00,0xc4,0x00,0x32,0xff,0xa6,0x00,0xc4,0x00,0x37,0xff,0x31,0x00,0xc4,0x00,0x38,0xff,0xf6,0x00,0xc4,0x00,0x39,0xff,0x73,0x00,0xc4,0x00,0x3a,0xff,0x7f,0x00,0xc4,0x00,0x3b,0x00,0x39,0x00,0xc4,0x00,0x3c,0xff,0x08,0x00,0xc4,0x00,0x52, +0x00,0x19,0x00,0xc4,0x00,0x59,0xff,0x8b,0x00,0xc4,0x00,0x5a,0xff,0x7f,0x00,0xc4,0x00,0xea,0xff,0x08,0x00,0xc4,0x00,0xf7,0xff,0xb2,0x00,0xc4,0x01,0x18,0xff,0xa6,0x00,0xc4,0x01,0x20,0xff,0x31,0x00,0xc4,0x01,0x22,0xff,0x31,0x00,0xc4,0x01,0x24,0xff,0xf6,0x00,0xc4,0x01,0x26,0xff,0xf6,0x00,0xc4,0x01,0x51,0xff,0xb2,0x00,0xc4, +0x01,0x53,0xff,0xb2,0x00,0xc4,0x01,0x55,0xff,0xb2,0x00,0xc4,0x01,0x63,0x00,0x6d,0x00,0xc4,0x01,0x6e,0xff,0xa6,0x00,0xc4,0x01,0x70,0xff,0xa6,0x00,0xc4,0x01,0x76,0xff,0x31,0x00,0xc4,0x01,0x78,0xff,0xf6,0x00,0xc4,0x01,0x7a,0xff,0xf6,0x00,0xc4,0x01,0x7c,0xff,0xf6,0x00,0xc4,0x01,0x7e,0xff,0xf6,0x00,0xc4,0x01,0x80,0xff,0x7f, +0x00,0xc4,0x01,0x81,0xff,0x7f,0x00,0xc4,0x01,0x82,0xff,0x08,0x00,0xc4,0x01,0x89,0xff,0xa6,0x00,0xc4,0x01,0x8c,0xff,0x7f,0x00,0xc4,0x01,0x8d,0xff,0x7f,0x00,0xc4,0x01,0x8e,0xff,0x7f,0x00,0xc4,0x01,0x8f,0xff,0x7f,0x00,0xc4,0x01,0x90,0xff,0x7f,0x00,0xc4,0x01,0x91,0xff,0x7f,0x00,0xc4,0x01,0x92,0xff,0x08,0x00,0xc4,0x01,0xdc, +0xff,0x31,0x00,0xc4,0x01,0xde,0xff,0xa4,0x00,0xc4,0x01,0xe1,0x00,0x6f,0x00,0xc4,0x01,0xe3,0xff,0x31,0x00,0xc4,0x01,0xeb,0x00,0x6f,0x00,0xc4,0x01,0xf2,0x00,0x6f,0x00,0xc4,0x01,0xf5,0xff,0xa4,0x00,0xc4,0x01,0xf8,0xff,0xa4,0x00,0xc4,0x01,0xf9,0xff,0x31,0x00,0xc4,0x01,0xfb,0xff,0xa4,0x00,0xc4,0x01,0xfc,0x00,0x39,0x00,0xc4, +0x02,0x01,0xff,0x31,0x00,0xc4,0x02,0x08,0x00,0x1b,0x00,0xc4,0x02,0x0c,0x00,0x1b,0x00,0xc4,0x02,0x15,0x00,0x1b,0x00,0xc4,0x02,0x18,0x00,0x1b,0x00,0xc4,0x02,0x1b,0x00,0x1b,0x00,0xc4,0x02,0x27,0x00,0x1b,0x00,0xc4,0x02,0x2a,0x00,0x1b,0x00,0xc5,0x00,0x2a,0xff,0xa6,0x00,0xc5,0x00,0x2d,0x00,0x6d,0x00,0xc5,0x00,0x32,0xff,0xb2, +0x00,0xc5,0x00,0x37,0xff,0x31,0x00,0xc5,0x00,0x38,0xff,0xf6,0x00,0xc5,0x00,0x39,0xff,0x7f,0x00,0xc5,0x00,0x3a,0xff,0x8b,0x00,0xc5,0x00,0x3b,0x00,0x27,0x00,0xc5,0x00,0x3c,0xff,0x3d,0x00,0xc5,0x00,0x59,0xff,0x8b,0x00,0xc5,0x00,0x5a,0xff,0x7f,0x00,0xc5,0x00,0xea,0xff,0x3d,0x00,0xc5,0x00,0xf7,0xff,0xa6,0x00,0xc5,0x01,0x18, +0xff,0xb2,0x00,0xc5,0x01,0x20,0xff,0x31,0x00,0xc5,0x01,0x22,0xff,0x31,0x00,0xc5,0x01,0x24,0xff,0xf6,0x00,0xc5,0x01,0x26,0xff,0xf6,0x00,0xc5,0x01,0x51,0xff,0xa6,0x00,0xc5,0x01,0x53,0xff,0xa6,0x00,0xc5,0x01,0x55,0xff,0xa6,0x00,0xc5,0x01,0x63,0x00,0x6d,0x00,0xc5,0x01,0x6e,0xff,0xb2,0x00,0xc5,0x01,0x70,0xff,0xb2,0x00,0xc5, +0x01,0x76,0xff,0x31,0x00,0xc5,0x01,0x78,0xff,0xf6,0x00,0xc5,0x01,0x7a,0xff,0xf6,0x00,0xc5,0x01,0x7c,0xff,0xf6,0x00,0xc5,0x01,0x7e,0xff,0xf6,0x00,0xc5,0x01,0x80,0xff,0x8b,0x00,0xc5,0x01,0x81,0xff,0x7f,0x00,0xc5,0x01,0x82,0xff,0x3d,0x00,0xc5,0x01,0x89,0xff,0xb2,0x00,0xc5,0x01,0x8c,0xff,0x8b,0x00,0xc5,0x01,0x8d,0xff,0x7f, +0x00,0xc5,0x01,0x8e,0xff,0x8b,0x00,0xc5,0x01,0x8f,0xff,0x7f,0x00,0xc5,0x01,0x90,0xff,0x8b,0x00,0xc5,0x01,0x91,0xff,0x7f,0x00,0xc5,0x01,0x92,0xff,0x3d,0x00,0xc5,0x01,0xdc,0xff,0x31,0x00,0xc5,0x01,0xde,0xff,0xb0,0x00,0xc5,0x01,0xe1,0x00,0x6f,0x00,0xc5,0x01,0xe3,0xff,0x31,0x00,0xc5,0x01,0xeb,0x00,0x6f,0x00,0xc5,0x01,0xf2, +0x00,0x6f,0x00,0xc5,0x01,0xf5,0xff,0xb0,0x00,0xc5,0x01,0xf8,0xff,0xb0,0x00,0xc5,0x01,0xf9,0xff,0x31,0x00,0xc5,0x01,0xfb,0xff,0xb0,0x00,0xc5,0x01,0xfc,0x00,0x29,0x00,0xc5,0x02,0x01,0xff,0x31,0x00,0xc7,0x00,0x2d,0x00,0x5e,0x00,0xc7,0x00,0x37,0xff,0x6d,0x00,0xc7,0x00,0x39,0xff,0x8b,0x00,0xc7,0x00,0x3a,0xff,0xb6,0x00,0xc7, +0x00,0x3c,0xff,0x64,0x00,0xc7,0x00,0xea,0xff,0x64,0x00,0xc7,0x01,0x20,0xff,0x6d,0x00,0xc7,0x01,0x22,0xff,0x6d,0x00,0xc7,0x01,0x63,0x00,0x5e,0x00,0xc7,0x01,0x76,0xff,0x6d,0x00,0xc7,0x01,0x80,0xff,0xb6,0x00,0xc7,0x01,0x82,0xff,0x64,0x00,0xc7,0x01,0x8c,0xff,0xb6,0x00,0xc7,0x01,0x8e,0xff,0xb6,0x00,0xc7,0x01,0x90,0xff,0xb6, +0x00,0xc7,0x01,0x92,0xff,0x64,0x00,0xc8,0x00,0x2d,0x00,0x3d,0x00,0xc8,0x01,0x63,0x00,0x3d,0x00,0xc9,0x00,0x2d,0x00,0x5e,0x00,0xc9,0x00,0x37,0xff,0x6d,0x00,0xc9,0x00,0x39,0xff,0x8b,0x00,0xc9,0x00,0x3a,0xff,0xb6,0x00,0xc9,0x00,0x3c,0xff,0x64,0x00,0xc9,0x00,0xea,0xff,0x64,0x00,0xc9,0x01,0x20,0xff,0x6d,0x00,0xc9,0x01,0x22, +0xff,0x6d,0x00,0xc9,0x01,0x63,0x00,0x5e,0x00,0xc9,0x01,0x76,0xff,0x6d,0x00,0xc9,0x01,0x80,0xff,0xb6,0x00,0xc9,0x01,0x82,0xff,0x64,0x00,0xc9,0x01,0x8c,0xff,0xb6,0x00,0xc9,0x01,0x8e,0xff,0xb6,0x00,0xc9,0x01,0x90,0xff,0xb6,0x00,0xc9,0x01,0x92,0xff,0x64,0x00,0xca,0x00,0x2d,0x00,0x3d,0x00,0xca,0x01,0x63,0x00,0x3d,0x00,0xcb, +0x00,0x2d,0x00,0x3d,0x00,0xcb,0x01,0x63,0x00,0x3d,0x00,0xd0,0x00,0x24,0xff,0xe5,0x00,0xd0,0x00,0x37,0xff,0xa4,0x00,0xd0,0x00,0x3b,0xff,0xdb,0x00,0xd0,0x00,0x3d,0xff,0xcf,0x00,0xd0,0x00,0xe5,0xff,0xcf,0x00,0xd0,0x01,0x03,0xff,0xe5,0x00,0xd0,0x01,0x05,0xff,0xe5,0x00,0xd0,0x01,0x20,0xff,0xa4,0x00,0xd0,0x01,0x22,0xff,0xa4, +0x00,0xd0,0x01,0x28,0xff,0xcf,0x00,0xd0,0x01,0x2a,0xff,0xcf,0x00,0xd0,0x01,0x45,0xff,0xe5,0x00,0xd0,0x01,0x76,0xff,0xa4,0x00,0xd0,0x01,0x85,0xff,0xe5,0x00,0xd0,0x01,0x87,0xff,0xe5,0x00,0xd1,0x00,0x24,0xff,0xe5,0x00,0xd1,0x00,0x37,0xff,0xa4,0x00,0xd1,0x00,0x3b,0xff,0xdb,0x00,0xd1,0x00,0x3d,0xff,0xcf,0x00,0xd1,0x00,0xe5, +0xff,0xcf,0x00,0xd1,0x01,0x03,0xff,0xe5,0x00,0xd1,0x01,0x05,0xff,0xe5,0x00,0xd1,0x01,0x20,0xff,0xa4,0x00,0xd1,0x01,0x22,0xff,0xa4,0x00,0xd1,0x01,0x28,0xff,0xcf,0x00,0xd1,0x01,0x2a,0xff,0xcf,0x00,0xd1,0x01,0x45,0xff,0xe5,0x00,0xd1,0x01,0x76,0xff,0xa4,0x00,0xd1,0x01,0x85,0xff,0xe5,0x00,0xd1,0x01,0x87,0xff,0xe5,0x00,0xd2, +0x00,0x24,0xff,0xe5,0x00,0xd2,0x00,0x37,0xff,0xa4,0x00,0xd2,0x00,0x3b,0xff,0xdb,0x00,0xd2,0x00,0x3d,0xff,0xcf,0x00,0xd2,0x00,0xe5,0xff,0xcf,0x00,0xd2,0x01,0x03,0xff,0xe5,0x00,0xd2,0x01,0x05,0xff,0xe5,0x00,0xd2,0x01,0x20,0xff,0xa4,0x00,0xd2,0x01,0x22,0xff,0xa4,0x00,0xd2,0x01,0x28,0xff,0xcf,0x00,0xd2,0x01,0x2a,0xff,0xcf, +0x00,0xd2,0x01,0x45,0xff,0xe5,0x00,0xd2,0x01,0x76,0xff,0xa4,0x00,0xd2,0x01,0x85,0xff,0xe5,0x00,0xd2,0x01,0x87,0xff,0xe5,0x00,0xe1,0x00,0x0d,0xff,0x31,0x00,0xe1,0x00,0x22,0xff,0x9a,0x00,0xe1,0x00,0x24,0x00,0x3b,0x00,0xe1,0x00,0x26,0xff,0xbe,0x00,0xe1,0x00,0x2a,0xff,0xbe,0x00,0xe1,0x00,0x2d,0x00,0x64,0x00,0xe1,0x00,0x32, +0xff,0xba,0x00,0xe1,0x00,0x34,0xff,0xba,0x00,0xe1,0x00,0x37,0xff,0x8f,0x00,0xe1,0x00,0x38,0xff,0xe3,0x00,0xe1,0x00,0x39,0xff,0x8b,0x00,0xe1,0x00,0x3a,0xff,0xcf,0x00,0xe1,0x00,0x3c,0xff,0x7f,0x00,0xe1,0x00,0x3d,0x00,0x3b,0x00,0xe1,0x00,0x57,0xff,0xe5,0x00,0xe1,0x00,0x59,0xff,0x9a,0x00,0xe1,0x00,0x5a,0xff,0xbe,0x00,0xe1, +0x00,0x5c,0xff,0xb4,0x00,0xe1,0x00,0x64,0xff,0xbe,0x00,0xe1,0x00,0x67,0xff,0xba,0x00,0xe1,0x00,0x68,0xff,0xe3,0x00,0xe1,0x00,0x8d,0xff,0x9a,0x00,0xe1,0x00,0x92,0xff,0xba,0x00,0xe1,0x00,0xaf,0xff,0xba,0x00,0xe1,0x00,0xb0,0xff,0xba,0x00,0xe1,0x00,0xb4,0xff,0x73,0x00,0xe1,0x00,0xb5,0xff,0x8b,0x00,0xe1,0x00,0xb6,0xff,0x73, +0x00,0xe1,0x00,0xb7,0xff,0x7f,0x00,0xe1,0x00,0xba,0xff,0xb4,0x00,0xe1,0x00,0xbb,0xff,0x9a,0x00,0xe1,0x00,0xc4,0x00,0x44,0x00,0xe1,0x00,0xc5,0x00,0x44,0x00,0xe1,0x00,0xd0,0xff,0xba,0x00,0xe1,0x00,0xd1,0xff,0xba,0x00,0xe1,0x00,0xd2,0xff,0xba,0x00,0xe1,0x00,0xd3,0xff,0xe3,0x00,0xe1,0x00,0xd4,0xff,0xe3,0x00,0xe1,0x00,0xd5, +0xff,0xe3,0x00,0xe1,0x00,0xe5,0x00,0x3b,0x00,0xe1,0x00,0xea,0xff,0x7f,0x00,0xe1,0x00,0xeb,0xff,0xb4,0x00,0xe1,0x00,0xf7,0xff,0xbe,0x00,0xe1,0x00,0xfc,0xff,0xbe,0x00,0xe1,0x00,0xfe,0xff,0xbe,0x00,0xe1,0x01,0x03,0x00,0x3b,0x00,0xe1,0x01,0x05,0x00,0x3b,0x00,0xe1,0x01,0x18,0xff,0xba,0x00,0xe1,0x01,0x20,0xff,0x8f,0x00,0xe1, +0x01,0x21,0xff,0xe5,0x00,0xe1,0x01,0x22,0xff,0x8f,0x00,0xe1,0x01,0x23,0xff,0xe5,0x00,0xe1,0x01,0x24,0xff,0xe3,0x00,0xe1,0x01,0x26,0xff,0xe3,0x00,0xe1,0x01,0x28,0x00,0x3b,0x00,0xe1,0x01,0x2a,0x00,0x3b,0x00,0xe1,0x01,0x45,0x00,0x3b,0x00,0xe1,0x01,0x47,0xff,0xbe,0x00,0xe1,0x01,0x51,0xff,0xbe,0x00,0xe1,0x01,0x53,0xff,0xbe, +0x00,0xe1,0x01,0x55,0xff,0xbe,0x00,0xe1,0x01,0x63,0x00,0x64,0x00,0xe1,0x01,0x6e,0xff,0xba,0x00,0xe1,0x01,0x70,0xff,0xba,0x00,0xe1,0x01,0x76,0xff,0x8f,0x00,0xe1,0x01,0x77,0xff,0xe5,0x00,0xe1,0x01,0x78,0xff,0xe3,0x00,0xe1,0x01,0x7a,0xff,0xe3,0x00,0xe1,0x01,0x7c,0xff,0xe3,0x00,0xe1,0x01,0x7e,0xff,0xe3,0x00,0xe1,0x01,0x80, +0xff,0xcf,0x00,0xe1,0x01,0x81,0xff,0xbe,0x00,0xe1,0x01,0x82,0xff,0x7f,0x00,0xe1,0x01,0x83,0xff,0xb4,0x00,0xe1,0x01,0x85,0x00,0x3b,0x00,0xe1,0x01,0x87,0x00,0x3b,0x00,0xe1,0x01,0x89,0xff,0xba,0x00,0xe1,0x01,0x8c,0xff,0xcf,0x00,0xe1,0x01,0x8d,0xff,0xbe,0x00,0xe1,0x01,0x8e,0xff,0xcf,0x00,0xe1,0x01,0x8f,0xff,0xbe,0x00,0xe1, +0x01,0x90,0xff,0xcf,0x00,0xe1,0x01,0x91,0xff,0xbe,0x00,0xe1,0x01,0x92,0xff,0x7f,0x00,0xe1,0x01,0x93,0xff,0xb4,0x00,0xe3,0x00,0x57,0xff,0xbe,0x00,0xe3,0x00,0x59,0xff,0xcf,0x00,0xe3,0x00,0x5a,0xff,0xe5,0x00,0xe3,0x00,0x5c,0xff,0xd1,0x00,0xe3,0x00,0xba,0xff,0xbe,0x00,0xe3,0x00,0xc4,0xff,0xb2,0x00,0xe3,0x00,0xc5,0xff,0xb2, +0x00,0xe3,0x00,0xeb,0xff,0xd1,0x00,0xe3,0x01,0x21,0xff,0xbe,0x00,0xe3,0x01,0x23,0xff,0xbe,0x00,0xe3,0x01,0x77,0xff,0xbe,0x00,0xe3,0x01,0x81,0xff,0xe5,0x00,0xe3,0x01,0x83,0xff,0xd1,0x00,0xe3,0x01,0x8d,0xff,0xe5,0x00,0xe3,0x01,0x8f,0xff,0xe5,0x00,0xe3,0x01,0x91,0xff,0xe5,0x00,0xe3,0x01,0x93,0xff,0xd1,0x00,0xe5,0x00,0x2d, +0x00,0x52,0x00,0xe5,0x00,0x37,0x00,0x27,0x00,0xe5,0x00,0x5c,0xff,0xcb,0x00,0xe5,0x00,0x77,0x00,0x46,0x00,0xe5,0x00,0xab,0x00,0x27,0x00,0xe5,0x00,0xba,0xff,0xbe,0x00,0xe5,0x00,0xbf,0x00,0x52,0x00,0xe5,0x00,0xeb,0xff,0xcb,0x00,0xe5,0x01,0x20,0x00,0x27,0x00,0xe5,0x01,0x22,0x00,0x27,0x00,0xe5,0x01,0x5c,0x00,0x46,0x00,0xe5, +0x01,0x5e,0x00,0x46,0x00,0xe5,0x01,0x60,0x00,0x46,0x00,0xe5,0x01,0x63,0x00,0x52,0x00,0xe5,0x01,0x76,0x00,0x27,0x00,0xe5,0x01,0x83,0xff,0xcb,0x00,0xe5,0x01,0x93,0xff,0xcb,0x00,0xe8,0x00,0x0f,0xff,0x7f,0x00,0xe8,0x00,0x11,0xff,0x7f,0x00,0xe8,0x00,0x24,0xff,0xdf,0x00,0xe8,0x00,0x37,0xff,0xa4,0x00,0xe8,0x00,0x3b,0xff,0xcb, +0x00,0xe8,0x00,0x3d,0xff,0xcf,0x00,0xe8,0x00,0x62,0xff,0xdf,0x00,0xe8,0x00,0x63,0xff,0xdf,0x00,0xe8,0x00,0x91,0xff,0xb6,0x00,0xe8,0x00,0xac,0xff,0x7f,0x00,0xe8,0x00,0xad,0xff,0xdf,0x00,0xe8,0x00,0xae,0xff,0xdf,0x00,0xe8,0x00,0xbb,0xff,0xf6,0x00,0xe8,0x00,0xc4,0xff,0x8b,0x00,0xe8,0x00,0xc5,0xff,0x8b,0x00,0xe8,0x00,0xc7, +0xff,0xdf,0x00,0xe8,0x00,0xc9,0xff,0xdf,0x00,0xe8,0x00,0xe5,0xff,0xcf,0x00,0xe8,0x01,0x03,0xff,0xdf,0x00,0xe8,0x01,0x05,0xff,0xdf,0x00,0xe8,0x01,0x20,0xff,0xa4,0x00,0xe8,0x01,0x22,0xff,0xa4,0x00,0xe8,0x01,0x28,0xff,0xcf,0x00,0xe8,0x01,0x2a,0xff,0xcf,0x00,0xe8,0x01,0x45,0xff,0xdf,0x00,0xe8,0x01,0x76,0xff,0xa4,0x00,0xe8, +0x01,0x85,0xff,0xdf,0x00,0xe8,0x01,0x87,0xff,0xdf,0x00,0xea,0x00,0x0f,0xff,0x50,0x00,0xea,0x00,0x11,0xff,0x3d,0x00,0xea,0x00,0x24,0xff,0x62,0x00,0xea,0x00,0x26,0xff,0xd3,0x00,0xea,0x00,0x2a,0xff,0xd3,0x00,0xea,0x00,0x2d,0xff,0xbe,0x00,0xea,0x00,0x32,0xff,0xd3,0x00,0xea,0x00,0x34,0xff,0xd3,0x00,0xea,0x00,0x36,0xff,0xe5, +0x00,0xea,0x00,0x37,0x00,0x27,0x00,0xea,0x00,0x44,0xff,0x39,0x00,0xea,0x00,0x46,0xff,0x4c,0x00,0xea,0x00,0x47,0xff,0x4c,0x00,0xea,0x00,0x48,0xff,0x4c,0x00,0xea,0x00,0x49,0xff,0xe5,0x00,0xea,0x00,0x4a,0xff,0x4c,0x00,0xea,0x00,0x50,0xff,0x73,0x00,0xea,0x00,0x51,0xff,0x73,0x00,0xea,0x00,0x52,0xff,0x4c,0x00,0xea,0x00,0x53, +0xff,0x73,0x00,0xea,0x00,0x54,0xff,0x4c,0x00,0xea,0x00,0x55,0xff,0x73,0x00,0xea,0x00,0x56,0xff,0x7b,0x00,0xea,0x00,0x58,0xff,0x73,0x00,0xea,0x00,0x62,0xff,0x62,0x00,0xea,0x00,0x63,0xff,0x62,0x00,0xea,0x00,0x64,0xff,0xcd,0x00,0xea,0x00,0x67,0xff,0xd3,0x00,0xea,0x00,0x69,0xff,0x39,0x00,0xea,0x00,0x6a,0xff,0x39,0x00,0xea, +0x00,0x6b,0xff,0x39,0x00,0xea,0x00,0x6c,0xff,0x7f,0x00,0xea,0x00,0x6d,0xff,0x66,0x00,0xea,0x00,0x6e,0xff,0x39,0x00,0xea,0x00,0x6f,0xff,0x4c,0x00,0xea,0x00,0x70,0xff,0x4c,0x00,0xea,0x00,0x71,0xff,0x4c,0x00,0xea,0x00,0x72,0xff,0x4c,0x00,0xea,0x00,0x73,0xff,0x4c,0x00,0xea,0x00,0x77,0x00,0x5a,0x00,0xea,0x00,0x78,0xff,0x73, +0x00,0xea,0x00,0x79,0xff,0x4c,0x00,0xea,0x00,0x7a,0xff,0x4c,0x00,0xea,0x00,0x7b,0xff,0x4c,0x00,0xea,0x00,0x7c,0xff,0x4c,0x00,0xea,0x00,0x7d,0xff,0x4c,0x00,0xea,0x00,0x7e,0xff,0x73,0x00,0xea,0x00,0x7f,0xff,0x73,0x00,0xea,0x00,0x80,0xff,0x73,0x00,0xea,0x00,0x81,0xff,0x73,0x00,0xea,0x00,0x91,0xff,0x3f,0x00,0xea,0x00,0x92, +0xff,0xd3,0x00,0xea,0x00,0xa0,0xff,0x39,0x00,0xea,0x00,0xa2,0xff,0x1b,0x00,0xea,0x00,0xaa,0xff,0xcf,0x00,0xea,0x00,0xac,0xff,0x3d,0x00,0xea,0x00,0xad,0xff,0x62,0x00,0xea,0x00,0xae,0xff,0x62,0x00,0xea,0x00,0xaf,0xff,0xd3,0x00,0xea,0x00,0xb0,0xff,0xd3,0x00,0xea,0x00,0xb1,0xff,0x4c,0x00,0xea,0x00,0xbe,0xff,0x9a,0x00,0xea, +0x00,0xc4,0xff,0x08,0x00,0xea,0x00,0xc5,0xff,0x08,0x00,0xea,0x00,0xc7,0xff,0x62,0x00,0xea,0x00,0xc9,0xff,0x62,0x00,0xea,0x00,0xd0,0xff,0xd3,0x00,0xea,0x00,0xd1,0xff,0xd3,0x00,0xea,0x00,0xd2,0xff,0xd3,0x00,0xea,0x00,0xe3,0xff,0xe5,0x00,0xea,0x00,0xe4,0xff,0x7b,0x00,0xea,0x00,0xf7,0xff,0xd3,0x00,0xea,0x00,0xf8,0xff,0x4c, +0x00,0xea,0x00,0xfa,0xff,0xe5,0x00,0xea,0x00,0xfb,0xff,0x7b,0x00,0xea,0x00,0xfc,0xff,0xd3,0x00,0xea,0x00,0xfd,0xff,0x4c,0x00,0xea,0x00,0xfe,0xff,0xd3,0x00,0xea,0x00,0xff,0xff,0x4c,0x00,0xea,0x01,0x00,0xff,0x4c,0x00,0xea,0x01,0x03,0xff,0x62,0x00,0xea,0x01,0x04,0xff,0x7f,0x00,0xea,0x01,0x05,0xff,0x62,0x00,0xea,0x01,0x06, +0xff,0x39,0x00,0xea,0x01,0x08,0xff,0x4c,0x00,0xea,0x01,0x0b,0xff,0x4c,0x00,0xea,0x01,0x0d,0xff,0x4c,0x00,0xea,0x01,0x15,0xff,0x73,0x00,0xea,0x01,0x17,0xff,0x73,0x00,0xea,0x01,0x18,0xff,0xd3,0x00,0xea,0x01,0x19,0xff,0x4c,0x00,0xea,0x01,0x1b,0xff,0x73,0x00,0xea,0x01,0x1d,0xff,0x73,0x00,0xea,0x01,0x1e,0xff,0xe5,0x00,0xea, +0x01,0x1f,0xff,0x7b,0x00,0xea,0x01,0x20,0x00,0x27,0x00,0xea,0x01,0x22,0x00,0x27,0x00,0xea,0x01,0x25,0xff,0x73,0x00,0xea,0x01,0x27,0xff,0x73,0x00,0xea,0x01,0x45,0xff,0x62,0x00,0xea,0x01,0x46,0xff,0x7f,0x00,0xea,0x01,0x47,0xff,0xd3,0x00,0xea,0x01,0x48,0xff,0x4c,0x00,0xea,0x01,0x4c,0xff,0x4c,0x00,0xea,0x01,0x4e,0xff,0x4c, +0x00,0xea,0x01,0x50,0xff,0x4c,0x00,0xea,0x01,0x51,0xff,0xd3,0x00,0xea,0x01,0x52,0xff,0x4c,0x00,0xea,0x01,0x53,0xff,0xd3,0x00,0xea,0x01,0x54,0xff,0x4c,0x00,0xea,0x01,0x55,0xff,0xd3,0x00,0xea,0x01,0x56,0xff,0x4c,0x00,0xea,0x01,0x5c,0x00,0x5a,0x00,0xea,0x01,0x5e,0x00,0x5a,0x00,0xea,0x01,0x60,0x00,0x5a,0x00,0xea,0x01,0x63, +0xff,0xbe,0x00,0xea,0x01,0x6d,0xff,0x73,0x00,0xea,0x01,0x6e,0xff,0xd3,0x00,0xea,0x01,0x6f,0xff,0x4c,0x00,0xea,0x01,0x70,0xff,0xd3,0x00,0xea,0x01,0x71,0xff,0x4c,0x00,0xea,0x01,0x73,0xff,0x73,0x00,0xea,0x01,0x74,0xff,0xe5,0x00,0xea,0x01,0x75,0xff,0x7b,0x00,0xea,0x01,0x76,0x00,0x27,0x00,0xea,0x01,0x79,0xff,0x73,0x00,0xea, +0x01,0x7b,0xff,0x73,0x00,0xea,0x01,0x7d,0xff,0x73,0x00,0xea,0x01,0x7f,0xff,0x73,0x00,0xea,0x01,0x85,0xff,0x62,0x00,0xea,0x01,0x86,0xff,0x7f,0x00,0xea,0x01,0x87,0xff,0x62,0x00,0xea,0x01,0x88,0xff,0x39,0x00,0xea,0x01,0x89,0xff,0xd3,0x00,0xea,0x01,0x8a,0xff,0x4c,0x00,0xea,0x02,0x3d,0xff,0xe5,0x00,0xea,0x02,0x3e,0xff,0x7b, +0x00,0xeb,0x00,0x05,0x00,0x1d,0x00,0xeb,0x00,0x0a,0x00,0x1d,0x00,0xeb,0x00,0x0f,0xff,0x9a,0x00,0xeb,0x00,0x11,0xff,0x81,0x00,0xeb,0x00,0x22,0xff,0xb4,0x00,0xeb,0x00,0x46,0xff,0xf6,0x00,0xeb,0x00,0x47,0xff,0xf6,0x00,0xeb,0x00,0x48,0xff,0xf6,0x00,0xeb,0x00,0x49,0x00,0x04,0x00,0xeb,0x00,0x4a,0xff,0xf6,0x00,0xeb,0x00,0x52, +0xff,0xf6,0x00,0xeb,0x00,0x54,0xff,0xf6,0x00,0xeb,0x00,0x57,0x00,0x06,0x00,0xeb,0x00,0x6f,0xff,0xf6,0x00,0xeb,0x00,0x70,0xff,0xf6,0x00,0xeb,0x00,0x71,0xff,0xf6,0x00,0xeb,0x00,0x72,0xff,0xf6,0x00,0xeb,0x00,0x73,0xff,0xf6,0x00,0xeb,0x00,0x79,0xff,0xf6,0x00,0xeb,0x00,0x7a,0xff,0xf6,0x00,0xeb,0x00,0x7b,0xff,0xf6,0x00,0xeb, +0x00,0x7c,0xff,0xf6,0x00,0xeb,0x00,0x7d,0xff,0xf6,0x00,0xeb,0x00,0xac,0xff,0x81,0x00,0xeb,0x00,0xb1,0xff,0xf6,0x00,0xeb,0x00,0xbf,0x00,0x0c,0x00,0xeb,0x00,0xc4,0xff,0x8d,0x00,0xeb,0x00,0xc5,0xff,0x8d,0x00,0xeb,0x00,0xf8,0xff,0xf6,0x00,0xeb,0x00,0xfd,0xff,0xf6,0x00,0xeb,0x00,0xff,0xff,0xf6,0x00,0xeb,0x01,0x00,0xff,0xf6, +0x00,0xeb,0x01,0x08,0xff,0xf6,0x00,0xeb,0x01,0x0b,0xff,0xf6,0x00,0xeb,0x01,0x0d,0xff,0xf6,0x00,0xeb,0x01,0x19,0xff,0xf6,0x00,0xeb,0x01,0x21,0x00,0x06,0x00,0xeb,0x01,0x23,0x00,0x06,0x00,0xeb,0x01,0x48,0xff,0xf6,0x00,0xeb,0x01,0x4c,0xff,0xf6,0x00,0xeb,0x01,0x4e,0xff,0xf6,0x00,0xeb,0x01,0x50,0xff,0xf6,0x00,0xeb,0x01,0x52, +0xff,0xf6,0x00,0xeb,0x01,0x54,0xff,0xf6,0x00,0xeb,0x01,0x56,0xff,0xf6,0x00,0xeb,0x01,0x6f,0xff,0xf6,0x00,0xeb,0x01,0x71,0xff,0xf6,0x00,0xeb,0x01,0x77,0x00,0x06,0x00,0xeb,0x01,0x8a,0xff,0xf6,0x00,0xec,0x00,0x0f,0xfe,0xba,0x00,0xec,0x00,0x11,0xfe,0xba,0x00,0xec,0x00,0x24,0xff,0x62,0x00,0xec,0x00,0x2a,0xff,0xf6,0x00,0xec, +0x00,0x2d,0xff,0x7f,0x00,0xec,0x00,0x3a,0x00,0x27,0x00,0xec,0x00,0x3b,0xff,0xc3,0x00,0xec,0x00,0x44,0xff,0xbe,0x00,0xec,0x00,0x46,0xff,0xb4,0x00,0xec,0x00,0x47,0xff,0xb4,0x00,0xec,0x00,0x48,0xff,0xb4,0x00,0xec,0x00,0x4a,0xff,0xb4,0x00,0xec,0x00,0x52,0xff,0xb4,0x00,0xec,0x00,0x54,0xff,0xb6,0x00,0xec,0x00,0x62,0xff,0x62, +0x00,0xec,0x00,0x63,0xff,0x62,0x00,0xec,0x00,0x69,0xff,0xbe,0x00,0xec,0x00,0x6a,0xff,0xbe,0x00,0xec,0x00,0x6b,0xff,0xbe,0x00,0xec,0x00,0x6c,0xff,0xbe,0x00,0xec,0x00,0x6d,0xff,0xbe,0x00,0xec,0x00,0x6e,0xff,0xbe,0x00,0xec,0x00,0x6f,0xff,0xb4,0x00,0xec,0x00,0x70,0xff,0xb4,0x00,0xec,0x00,0x71,0xff,0xb4,0x00,0xec,0x00,0x72, +0xff,0xb4,0x00,0xec,0x00,0x73,0xff,0xb4,0x00,0xec,0x00,0x79,0xff,0xb4,0x00,0xec,0x00,0x7a,0xff,0xb4,0x00,0xec,0x00,0x7b,0xff,0xb4,0x00,0xec,0x00,0x7c,0xff,0xb4,0x00,0xec,0x00,0x7d,0xff,0xb4,0x00,0xec,0x00,0x91,0xfe,0xe9,0x00,0xec,0x00,0xa0,0xff,0xbe,0x00,0xec,0x00,0xac,0xfe,0xba,0x00,0xec,0x00,0xad,0xff,0x62,0x00,0xec, +0x00,0xae,0xff,0x62,0x00,0xec,0x00,0xb1,0xff,0xb4,0x00,0xec,0x00,0xc4,0xfe,0xba,0x00,0xec,0x00,0xc5,0xfe,0xae,0x00,0xec,0x00,0xc7,0xff,0x62,0x00,0xec,0x00,0xc9,0xff,0x62,0x00,0xec,0x00,0xf7,0xff,0xf6,0x00,0xec,0x00,0xf8,0xff,0xb4,0x00,0xec,0x00,0xfd,0xff,0xb4,0x00,0xec,0x00,0xff,0xff,0xb4,0x00,0xec,0x01,0x00,0xff,0xb4, +0x00,0xec,0x01,0x03,0xff,0x62,0x00,0xec,0x01,0x04,0xff,0xbe,0x00,0xec,0x01,0x05,0xff,0x62,0x00,0xec,0x01,0x06,0xff,0xbe,0x00,0xec,0x01,0x08,0xff,0xb4,0x00,0xec,0x01,0x0b,0xff,0xb4,0x00,0xec,0x01,0x0d,0xff,0xb4,0x00,0xec,0x01,0x19,0xff,0xb4,0x00,0xec,0x01,0x45,0xff,0x62,0x00,0xec,0x01,0x46,0xff,0xbe,0x00,0xec,0x01,0x48, +0xff,0xb4,0x00,0xec,0x01,0x4c,0xff,0xb4,0x00,0xec,0x01,0x4e,0xff,0xb4,0x00,0xec,0x01,0x50,0xff,0xb4,0x00,0xec,0x01,0x51,0xff,0xf6,0x00,0xec,0x01,0x52,0xff,0xb4,0x00,0xec,0x01,0x53,0xff,0xf6,0x00,0xec,0x01,0x54,0xff,0xb4,0x00,0xec,0x01,0x55,0xff,0xf6,0x00,0xec,0x01,0x56,0xff,0xb4,0x00,0xec,0x01,0x63,0xff,0x7f,0x00,0xec, +0x01,0x6f,0xff,0xb4,0x00,0xec,0x01,0x71,0xff,0xb4,0x00,0xec,0x01,0x80,0x00,0x27,0x00,0xec,0x01,0x85,0xff,0x62,0x00,0xec,0x01,0x86,0xff,0xbe,0x00,0xec,0x01,0x87,0xff,0x62,0x00,0xec,0x01,0x88,0xff,0xbe,0x00,0xec,0x01,0x8a,0xff,0xb4,0x00,0xec,0x01,0x8c,0x00,0x27,0x00,0xec,0x01,0x8e,0x00,0x27,0x00,0xec,0x01,0x90,0x00,0x27, +0x00,0xed,0x00,0x44,0xff,0xe5,0x00,0xed,0x00,0x49,0xff,0xf6,0x00,0xed,0x00,0x5b,0xff,0xe7,0x00,0xed,0x00,0x69,0xff,0xe5,0x00,0xed,0x00,0x6a,0xff,0xe5,0x00,0xed,0x00,0x6b,0xff,0xe5,0x00,0xed,0x00,0x6c,0xff,0xe5,0x00,0xed,0x00,0x6d,0xff,0xe5,0x00,0xed,0x00,0x6e,0xff,0xe5,0x00,0xed,0x00,0xa0,0xff,0xe5,0x00,0xed,0x00,0xc0, +0xff,0xf6,0x00,0xed,0x00,0xc1,0xff,0xf6,0x00,0xed,0x01,0x04,0xff,0xe5,0x00,0xed,0x01,0x06,0xff,0xe5,0x00,0xed,0x01,0x46,0xff,0xe5,0x00,0xed,0x01,0x86,0xff,0xe5,0x00,0xed,0x01,0x88,0xff,0xe5,0x00,0xf7,0x00,0x37,0xff,0xcf,0x00,0xf7,0x00,0x39,0xff,0xe5,0x00,0xf7,0x00,0x5c,0xff,0xe5,0x00,0xf7,0x00,0xba,0xff,0xe5,0x00,0xf7, +0x00,0xeb,0xff,0xe5,0x00,0xf7,0x01,0x20,0xff,0xcf,0x00,0xf7,0x01,0x22,0xff,0xcf,0x00,0xf7,0x01,0x76,0xff,0xcf,0x00,0xf7,0x01,0x83,0xff,0xe5,0x00,0xf7,0x01,0x93,0xff,0xe5,0x00,0xf8,0x00,0x4d,0x00,0x2f,0x00,0xf8,0x01,0x64,0x00,0x2f,0x00,0xfa,0x00,0x57,0xff,0xbe,0x00,0xfa,0x00,0x59,0xff,0xcf,0x00,0xfa,0x00,0x5a,0xff,0xe5, +0x00,0xfa,0x00,0x5c,0xff,0xd1,0x00,0xfa,0x00,0xba,0xff,0xbe,0x00,0xfa,0x00,0xc4,0xff,0xb2,0x00,0xfa,0x00,0xc5,0xff,0xb2,0x00,0xfa,0x00,0xeb,0xff,0xd1,0x00,0xfa,0x01,0x21,0xff,0xbe,0x00,0xfa,0x01,0x23,0xff,0xbe,0x00,0xfa,0x01,0x77,0xff,0xbe,0x00,0xfa,0x01,0x81,0xff,0xe5,0x00,0xfa,0x01,0x83,0xff,0xd1,0x00,0xfa,0x01,0x8d, +0xff,0xe5,0x00,0xfa,0x01,0x8f,0xff,0xe5,0x00,0xfa,0x01,0x91,0xff,0xe5,0x00,0xfa,0x01,0x93,0xff,0xd1,0x00,0xfc,0x00,0x26,0xff,0xc9,0x00,0xfc,0x00,0x2a,0xff,0xc9,0x00,0xfc,0x00,0x32,0xff,0xe5,0x00,0xfc,0x00,0x34,0xff,0xc9,0x00,0xfc,0x00,0x64,0xff,0xc9,0x00,0xfc,0x00,0x67,0xff,0xc9,0x00,0xfc,0x00,0x77,0x00,0x1d,0x00,0xfc, +0x00,0x92,0xff,0xc9,0x00,0xfc,0x00,0xaa,0xff,0xcf,0x00,0xfc,0x00,0xaf,0xff,0xc9,0x00,0xfc,0x00,0xb0,0xff,0xc9,0x00,0xfc,0x00,0xbe,0xff,0xcf,0x00,0xfc,0x00,0xd0,0xff,0xc9,0x00,0xfc,0x00,0xd1,0xff,0xc9,0x00,0xfc,0x00,0xd2,0xff,0xc9,0x00,0xfc,0x00,0xf7,0xff,0xc9,0x00,0xfc,0x00,0xfc,0xff,0xc9,0x00,0xfc,0x00,0xfe,0xff,0xc9, +0x00,0xfc,0x01,0x18,0xff,0xe5,0x00,0xfc,0x01,0x47,0xff,0xc9,0x00,0xfc,0x01,0x51,0xff,0xc9,0x00,0xfc,0x01,0x53,0xff,0xc9,0x00,0xfc,0x01,0x55,0xff,0xc9,0x00,0xfc,0x01,0x5c,0x00,0x1d,0x00,0xfc,0x01,0x5e,0x00,0x1d,0x00,0xfc,0x01,0x60,0x00,0x1d,0x00,0xfc,0x01,0x6e,0xff,0xe5,0x00,0xfc,0x01,0x70,0xff,0xe5,0x00,0xfc,0x01,0x89, +0xff,0xe5,0x00,0xfd,0x00,0x2d,0x00,0x46,0x00,0xfd,0x00,0x37,0xff,0x9a,0x00,0xfd,0x00,0x3c,0xff,0xb4,0x00,0xfd,0x00,0xea,0xff,0xb4,0x00,0xfd,0x01,0x20,0xff,0x9a,0x00,0xfd,0x01,0x22,0xff,0x9a,0x00,0xfd,0x01,0x63,0x00,0x46,0x00,0xfd,0x01,0x76,0xff,0x9a,0x00,0xfd,0x01,0x82,0xff,0xb4,0x00,0xfd,0x01,0x92,0xff,0xb4,0x00,0xfe, +0x00,0x26,0xff,0xc9,0x00,0xfe,0x00,0x2a,0xff,0xc9,0x00,0xfe,0x00,0x32,0xff,0xe5,0x00,0xfe,0x00,0x34,0xff,0xc9,0x00,0xfe,0x00,0x64,0xff,0xc9,0x00,0xfe,0x00,0x67,0xff,0xc9,0x00,0xfe,0x00,0x77,0x00,0x1d,0x00,0xfe,0x00,0x92,0xff,0xc9,0x00,0xfe,0x00,0xaa,0xff,0xcf,0x00,0xfe,0x00,0xaf,0xff,0xc9,0x00,0xfe,0x00,0xb0,0xff,0xc9, +0x00,0xfe,0x00,0xbe,0xff,0xcf,0x00,0xfe,0x00,0xd0,0xff,0xc9,0x00,0xfe,0x00,0xd1,0xff,0xc9,0x00,0xfe,0x00,0xd2,0xff,0xc9,0x00,0xfe,0x00,0xf7,0xff,0xc9,0x00,0xfe,0x00,0xfc,0xff,0xc9,0x00,0xfe,0x00,0xfe,0xff,0xc9,0x00,0xfe,0x01,0x18,0xff,0xe5,0x00,0xfe,0x01,0x47,0xff,0xc9,0x00,0xfe,0x01,0x51,0xff,0xc9,0x00,0xfe,0x01,0x53, +0xff,0xc9,0x00,0xfe,0x01,0x55,0xff,0xc9,0x00,0xfe,0x01,0x5c,0x00,0x1d,0x00,0xfe,0x01,0x5e,0x00,0x1d,0x00,0xfe,0x01,0x60,0x00,0x1d,0x00,0xfe,0x01,0x6e,0xff,0xe5,0x00,0xfe,0x01,0x70,0xff,0xe5,0x00,0xfe,0x01,0x89,0xff,0xe5,0x00,0xff,0x00,0x2d,0x00,0x46,0x00,0xff,0x00,0x37,0xff,0x9a,0x00,0xff,0x00,0x3c,0xff,0xb4,0x00,0xff, +0x00,0xea,0xff,0xb4,0x00,0xff,0x01,0x20,0xff,0x9a,0x00,0xff,0x01,0x22,0xff,0x9a,0x00,0xff,0x01,0x63,0x00,0x46,0x00,0xff,0x01,0x76,0xff,0x9a,0x00,0xff,0x01,0x82,0xff,0xb4,0x00,0xff,0x01,0x92,0xff,0xb4,0x01,0x03,0x00,0x0d,0xff,0x7f,0x01,0x03,0x00,0x0f,0x00,0x44,0x01,0x03,0x00,0x1e,0x00,0x44,0x01,0x03,0x00,0x26,0xff,0xe5, +0x01,0x03,0x00,0x2a,0xff,0xe5,0x01,0x03,0x00,0x2d,0x00,0x5e,0x01,0x03,0x00,0x32,0xff,0xe5,0x01,0x03,0x00,0x37,0xff,0x6d,0x01,0x03,0x00,0x38,0xff,0xe5,0x01,0x03,0x00,0x39,0xff,0x8b,0x01,0x03,0x00,0x3a,0xff,0xb6,0x01,0x03,0x00,0x3c,0xff,0x64,0x01,0x03,0x00,0x3d,0x00,0x3b,0x01,0x03,0x00,0x57,0xff,0xe5,0x01,0x03,0x00,0x59, +0xff,0xd5,0x01,0x03,0x00,0x5a,0xff,0xe5,0x01,0x03,0x00,0x5c,0xff,0xdb,0x01,0x03,0x00,0x8d,0xff,0x9a,0x01,0x03,0x00,0xb4,0xff,0x66,0x01,0x03,0x00,0xb5,0xff,0x3f,0x01,0x03,0x00,0xb6,0xff,0x66,0x01,0x03,0x00,0xb7,0xff,0x3f,0x01,0x03,0x00,0xba,0xff,0xc1,0x01,0x03,0x00,0xbb,0xff,0x64,0x01,0x03,0x00,0xe5,0x00,0x3b,0x01,0x03, +0x00,0xea,0xff,0x64,0x01,0x03,0x00,0xeb,0xff,0xdb,0x01,0x03,0x00,0xf7,0xff,0xe5,0x01,0x03,0x00,0xfc,0xff,0xe5,0x01,0x03,0x00,0xfe,0xff,0xe5,0x01,0x03,0x01,0x18,0xff,0xe5,0x01,0x03,0x01,0x20,0xff,0x6d,0x01,0x03,0x01,0x21,0xff,0xe5,0x01,0x03,0x01,0x22,0xff,0x6d,0x01,0x03,0x01,0x23,0xff,0xe5,0x01,0x03,0x01,0x24,0xff,0xe5, +0x01,0x03,0x01,0x26,0xff,0xe5,0x01,0x03,0x01,0x28,0x00,0x3b,0x01,0x03,0x01,0x2a,0x00,0x3b,0x01,0x03,0x01,0x47,0xff,0xe5,0x01,0x03,0x01,0x51,0xff,0xe5,0x01,0x03,0x01,0x53,0xff,0xe5,0x01,0x03,0x01,0x55,0xff,0xe5,0x01,0x03,0x01,0x63,0x00,0x5e,0x01,0x03,0x01,0x6e,0xff,0xe5,0x01,0x03,0x01,0x70,0xff,0xe5,0x01,0x03,0x01,0x76, +0xff,0x6d,0x01,0x03,0x01,0x77,0xff,0xe5,0x01,0x03,0x01,0x78,0xff,0xe5,0x01,0x03,0x01,0x7a,0xff,0xe5,0x01,0x03,0x01,0x7c,0xff,0xe5,0x01,0x03,0x01,0x7e,0xff,0xe5,0x01,0x03,0x01,0x80,0xff,0xb6,0x01,0x03,0x01,0x81,0xff,0xe5,0x01,0x03,0x01,0x82,0xff,0x64,0x01,0x03,0x01,0x83,0xff,0xdb,0x01,0x03,0x01,0x89,0xff,0xe5,0x01,0x03, +0x01,0x8c,0xff,0xb6,0x01,0x03,0x01,0x8d,0xff,0xe5,0x01,0x03,0x01,0x8e,0xff,0xb6,0x01,0x03,0x01,0x8f,0xff,0xe5,0x01,0x03,0x01,0x90,0xff,0xb6,0x01,0x03,0x01,0x91,0xff,0xe5,0x01,0x03,0x01,0x92,0xff,0x64,0x01,0x03,0x01,0x93,0xff,0xdb,0x01,0x05,0x00,0x0d,0xff,0x7f,0x01,0x05,0x00,0x0f,0x00,0x44,0x01,0x05,0x00,0x1e,0x00,0x44, +0x01,0x05,0x00,0x26,0xff,0xe5,0x01,0x05,0x00,0x2a,0xff,0xe5,0x01,0x05,0x00,0x2d,0x00,0x5e,0x01,0x05,0x00,0x32,0xff,0xe5,0x01,0x05,0x00,0x37,0xff,0x6d,0x01,0x05,0x00,0x38,0xff,0xe5,0x01,0x05,0x00,0x39,0xff,0x8b,0x01,0x05,0x00,0x3a,0xff,0xb6,0x01,0x05,0x00,0x3c,0xff,0x64,0x01,0x05,0x00,0x3d,0x00,0x3b,0x01,0x05,0x00,0x57, +0xff,0xe5,0x01,0x05,0x00,0x59,0xff,0xd5,0x01,0x05,0x00,0x5a,0xff,0xe5,0x01,0x05,0x00,0x5c,0xff,0xdb,0x01,0x05,0x00,0x8d,0xff,0x9a,0x01,0x05,0x00,0xb4,0xff,0x66,0x01,0x05,0x00,0xb5,0xff,0x3f,0x01,0x05,0x00,0xb6,0xff,0x66,0x01,0x05,0x00,0xb7,0xff,0x3f,0x01,0x05,0x00,0xba,0xff,0xc1,0x01,0x05,0x00,0xbb,0xff,0x64,0x01,0x05, +0x00,0xe5,0x00,0x3b,0x01,0x05,0x00,0xea,0xff,0x64,0x01,0x05,0x00,0xeb,0xff,0xdb,0x01,0x05,0x00,0xf7,0xff,0xe5,0x01,0x05,0x00,0xfc,0xff,0xe5,0x01,0x05,0x00,0xfe,0xff,0xe5,0x01,0x05,0x01,0x18,0xff,0xe5,0x01,0x05,0x01,0x20,0xff,0x6d,0x01,0x05,0x01,0x21,0xff,0xe5,0x01,0x05,0x01,0x22,0xff,0x6d,0x01,0x05,0x01,0x23,0xff,0xe5, +0x01,0x05,0x01,0x24,0xff,0xe5,0x01,0x05,0x01,0x26,0xff,0xe5,0x01,0x05,0x01,0x28,0x00,0x3b,0x01,0x05,0x01,0x2a,0x00,0x3b,0x01,0x05,0x01,0x47,0xff,0xe5,0x01,0x05,0x01,0x51,0xff,0xe5,0x01,0x05,0x01,0x53,0xff,0xe5,0x01,0x05,0x01,0x55,0xff,0xe5,0x01,0x05,0x01,0x63,0x00,0x5e,0x01,0x05,0x01,0x6e,0xff,0xe5,0x01,0x05,0x01,0x70, +0xff,0xe5,0x01,0x05,0x01,0x76,0xff,0x6d,0x01,0x05,0x01,0x77,0xff,0xe5,0x01,0x05,0x01,0x78,0xff,0xe5,0x01,0x05,0x01,0x7a,0xff,0xe5,0x01,0x05,0x01,0x7c,0xff,0xe5,0x01,0x05,0x01,0x7e,0xff,0xe5,0x01,0x05,0x01,0x80,0xff,0xb6,0x01,0x05,0x01,0x81,0xff,0xe5,0x01,0x05,0x01,0x82,0xff,0x64,0x01,0x05,0x01,0x83,0xff,0xdb,0x01,0x05, +0x01,0x89,0xff,0xe5,0x01,0x05,0x01,0x8c,0xff,0xb6,0x01,0x05,0x01,0x8d,0xff,0xe5,0x01,0x05,0x01,0x8e,0xff,0xb6,0x01,0x05,0x01,0x8f,0xff,0xe5,0x01,0x05,0x01,0x90,0xff,0xb6,0x01,0x05,0x01,0x91,0xff,0xe5,0x01,0x05,0x01,0x92,0xff,0x64,0x01,0x05,0x01,0x93,0xff,0xdb,0x01,0x07,0x00,0x0f,0xff,0x7f,0x01,0x07,0x00,0x11,0xff,0x7f, +0x01,0x07,0x00,0x24,0xff,0xdf,0x01,0x07,0x00,0x37,0xff,0xa4,0x01,0x07,0x00,0x3b,0xff,0xcb,0x01,0x07,0x00,0x3d,0xff,0xcf,0x01,0x07,0x00,0x62,0xff,0xdf,0x01,0x07,0x00,0x63,0xff,0xdf,0x01,0x07,0x00,0x91,0xff,0xb6,0x01,0x07,0x00,0xac,0xff,0x7f,0x01,0x07,0x00,0xad,0xff,0xdf,0x01,0x07,0x00,0xae,0xff,0xdf,0x01,0x07,0x00,0xbb, +0xff,0xf6,0x01,0x07,0x00,0xc4,0xff,0x8b,0x01,0x07,0x00,0xc5,0xff,0x8b,0x01,0x07,0x00,0xc7,0xff,0xdf,0x01,0x07,0x00,0xc9,0xff,0xdf,0x01,0x07,0x00,0xe5,0xff,0xcf,0x01,0x07,0x01,0x03,0xff,0xdf,0x01,0x07,0x01,0x05,0xff,0xdf,0x01,0x07,0x01,0x20,0xff,0xa4,0x01,0x07,0x01,0x22,0xff,0xa4,0x01,0x07,0x01,0x28,0xff,0xcf,0x01,0x07, +0x01,0x2a,0xff,0xcf,0x01,0x07,0x01,0x45,0xff,0xdf,0x01,0x07,0x01,0x76,0xff,0xa4,0x01,0x07,0x01,0x85,0xff,0xdf,0x01,0x07,0x01,0x87,0xff,0xdf,0x01,0x0a,0x00,0x24,0x00,0x0a,0x01,0x0a,0x00,0x2d,0x00,0x44,0x01,0x0a,0x00,0x37,0x00,0x04,0x01,0x0a,0x00,0x3a,0x00,0x1d,0x01,0x0a,0x00,0x3b,0x00,0x08,0x01,0x0a,0x00,0x62,0x00,0x0a, +0x01,0x0a,0x00,0x63,0x00,0x0a,0x01,0x0a,0x00,0x77,0x00,0x12,0x01,0x0a,0x00,0xad,0x00,0x0a,0x01,0x0a,0x00,0xae,0x00,0x0a,0x01,0x0a,0x00,0xc7,0x00,0x0a,0x01,0x0a,0x00,0xc9,0x00,0x0a,0x01,0x0a,0x01,0x03,0x00,0x0a,0x01,0x0a,0x01,0x05,0x00,0x0a,0x01,0x0a,0x01,0x20,0x00,0x04,0x01,0x0a,0x01,0x22,0x00,0x04,0x01,0x0a,0x01,0x45, +0x00,0x0a,0x01,0x0a,0x01,0x5c,0x00,0x12,0x01,0x0a,0x01,0x5e,0x00,0x12,0x01,0x0a,0x01,0x60,0x00,0x12,0x01,0x0a,0x01,0x63,0x00,0x44,0x01,0x0a,0x01,0x76,0x00,0x04,0x01,0x0a,0x01,0x80,0x00,0x1d,0x01,0x0a,0x01,0x85,0x00,0x0a,0x01,0x0a,0x01,0x87,0x00,0x0a,0x01,0x0a,0x01,0x8c,0x00,0x1d,0x01,0x0a,0x01,0x8e,0x00,0x1d,0x01,0x0a, +0x01,0x90,0x00,0x1d,0x01,0x0b,0x00,0x05,0xff,0x98,0x01,0x0b,0x00,0x0a,0xff,0x98,0x01,0x0c,0x00,0x24,0x00,0x0a,0x01,0x0c,0x00,0x2d,0x00,0x44,0x01,0x0c,0x00,0x37,0x00,0x04,0x01,0x0c,0x00,0x3a,0x00,0x1d,0x01,0x0c,0x00,0x3b,0x00,0x08,0x01,0x0c,0x00,0x62,0x00,0x0a,0x01,0x0c,0x00,0x63,0x00,0x0a,0x01,0x0c,0x00,0x77,0x00,0x12, +0x01,0x0c,0x00,0xad,0x00,0x0a,0x01,0x0c,0x00,0xae,0x00,0x0a,0x01,0x0c,0x00,0xc7,0x00,0x0a,0x01,0x0c,0x00,0xc9,0x00,0x0a,0x01,0x0c,0x01,0x03,0x00,0x0a,0x01,0x0c,0x01,0x05,0x00,0x0a,0x01,0x0c,0x01,0x20,0x00,0x04,0x01,0x0c,0x01,0x22,0x00,0x04,0x01,0x0c,0x01,0x45,0x00,0x0a,0x01,0x0c,0x01,0x5c,0x00,0x12,0x01,0x0c,0x01,0x5e, +0x00,0x12,0x01,0x0c,0x01,0x60,0x00,0x12,0x01,0x0c,0x01,0x63,0x00,0x44,0x01,0x0c,0x01,0x76,0x00,0x04,0x01,0x0c,0x01,0x80,0x00,0x1d,0x01,0x0c,0x01,0x85,0x00,0x0a,0x01,0x0c,0x01,0x87,0x00,0x0a,0x01,0x0c,0x01,0x8c,0x00,0x1d,0x01,0x0c,0x01,0x8e,0x00,0x1d,0x01,0x0c,0x01,0x90,0x00,0x1d,0x01,0x0d,0x00,0x05,0xff,0x98,0x01,0x0d, +0x00,0x0a,0xff,0x98,0x01,0x0e,0x00,0x0d,0xff,0x31,0x01,0x0e,0x00,0x22,0xff,0x9a,0x01,0x0e,0x00,0x24,0x00,0x3b,0x01,0x0e,0x00,0x26,0xff,0xbe,0x01,0x0e,0x00,0x2a,0xff,0xbe,0x01,0x0e,0x00,0x2d,0x00,0x64,0x01,0x0e,0x00,0x32,0xff,0xba,0x01,0x0e,0x00,0x34,0xff,0xba,0x01,0x0e,0x00,0x37,0xff,0x8f,0x01,0x0e,0x00,0x38,0xff,0xe3, +0x01,0x0e,0x00,0x39,0xff,0x8b,0x01,0x0e,0x00,0x3a,0xff,0xcf,0x01,0x0e,0x00,0x3c,0xff,0x7f,0x01,0x0e,0x00,0x3d,0x00,0x3b,0x01,0x0e,0x00,0x57,0xff,0xe5,0x01,0x0e,0x00,0x59,0xff,0x9a,0x01,0x0e,0x00,0x5a,0xff,0xbe,0x01,0x0e,0x00,0x5c,0xff,0xb4,0x01,0x0e,0x00,0x64,0xff,0xbe,0x01,0x0e,0x00,0x67,0xff,0xba,0x01,0x0e,0x00,0x68, +0xff,0xe3,0x01,0x0e,0x00,0x8d,0xff,0x9a,0x01,0x0e,0x00,0x92,0xff,0xba,0x01,0x0e,0x00,0xaf,0xff,0xba,0x01,0x0e,0x00,0xb0,0xff,0xba,0x01,0x0e,0x00,0xb4,0xff,0x73,0x01,0x0e,0x00,0xb5,0xff,0x8b,0x01,0x0e,0x00,0xb6,0xff,0x73,0x01,0x0e,0x00,0xb7,0xff,0x7f,0x01,0x0e,0x00,0xba,0xff,0xb4,0x01,0x0e,0x00,0xbb,0xff,0x9a,0x01,0x0e, +0x00,0xc4,0x00,0x44,0x01,0x0e,0x00,0xc5,0x00,0x44,0x01,0x0e,0x00,0xd0,0xff,0xba,0x01,0x0e,0x00,0xd1,0xff,0xba,0x01,0x0e,0x00,0xd2,0xff,0xba,0x01,0x0e,0x00,0xd3,0xff,0xe3,0x01,0x0e,0x00,0xd4,0xff,0xe3,0x01,0x0e,0x00,0xd5,0xff,0xe3,0x01,0x0e,0x00,0xe5,0x00,0x3b,0x01,0x0e,0x00,0xea,0xff,0x7f,0x01,0x0e,0x00,0xeb,0xff,0xb4, +0x01,0x0e,0x00,0xf7,0xff,0xbe,0x01,0x0e,0x00,0xfc,0xff,0xbe,0x01,0x0e,0x00,0xfe,0xff,0xbe,0x01,0x0e,0x01,0x03,0x00,0x3b,0x01,0x0e,0x01,0x05,0x00,0x3b,0x01,0x0e,0x01,0x18,0xff,0xba,0x01,0x0e,0x01,0x20,0xff,0x8f,0x01,0x0e,0x01,0x21,0xff,0xe5,0x01,0x0e,0x01,0x22,0xff,0x8f,0x01,0x0e,0x01,0x23,0xff,0xe5,0x01,0x0e,0x01,0x24, +0xff,0xe3,0x01,0x0e,0x01,0x26,0xff,0xe3,0x01,0x0e,0x01,0x28,0x00,0x3b,0x01,0x0e,0x01,0x2a,0x00,0x3b,0x01,0x0e,0x01,0x45,0x00,0x3b,0x01,0x0e,0x01,0x47,0xff,0xbe,0x01,0x0e,0x01,0x51,0xff,0xbe,0x01,0x0e,0x01,0x53,0xff,0xbe,0x01,0x0e,0x01,0x55,0xff,0xbe,0x01,0x0e,0x01,0x63,0x00,0x64,0x01,0x0e,0x01,0x6e,0xff,0xba,0x01,0x0e, +0x01,0x70,0xff,0xba,0x01,0x0e,0x01,0x76,0xff,0x8f,0x01,0x0e,0x01,0x77,0xff,0xe5,0x01,0x0e,0x01,0x78,0xff,0xe3,0x01,0x0e,0x01,0x7a,0xff,0xe3,0x01,0x0e,0x01,0x7c,0xff,0xe3,0x01,0x0e,0x01,0x7e,0xff,0xe3,0x01,0x0e,0x01,0x80,0xff,0xcf,0x01,0x0e,0x01,0x81,0xff,0xbe,0x01,0x0e,0x01,0x82,0xff,0x7f,0x01,0x0e,0x01,0x83,0xff,0xb4, +0x01,0x0e,0x01,0x85,0x00,0x3b,0x01,0x0e,0x01,0x87,0x00,0x3b,0x01,0x0e,0x01,0x89,0xff,0xba,0x01,0x0e,0x01,0x8c,0xff,0xcf,0x01,0x0e,0x01,0x8d,0xff,0xbe,0x01,0x0e,0x01,0x8e,0xff,0xcf,0x01,0x0e,0x01,0x8f,0xff,0xbe,0x01,0x0e,0x01,0x90,0xff,0xcf,0x01,0x0e,0x01,0x91,0xff,0xbe,0x01,0x0e,0x01,0x92,0xff,0x7f,0x01,0x0e,0x01,0x93, +0xff,0xb4,0x01,0x10,0x00,0x0d,0xff,0x31,0x01,0x10,0x00,0x22,0xff,0x9a,0x01,0x10,0x00,0x24,0x00,0x3b,0x01,0x10,0x00,0x26,0xff,0xbe,0x01,0x10,0x00,0x2a,0xff,0xbe,0x01,0x10,0x00,0x2d,0x00,0x64,0x01,0x10,0x00,0x32,0xff,0xba,0x01,0x10,0x00,0x34,0xff,0xba,0x01,0x10,0x00,0x37,0xff,0x8f,0x01,0x10,0x00,0x38,0xff,0xe3,0x01,0x10, +0x00,0x39,0xff,0x8b,0x01,0x10,0x00,0x3a,0xff,0xcf,0x01,0x10,0x00,0x3c,0xff,0x7f,0x01,0x10,0x00,0x3d,0x00,0x3b,0x01,0x10,0x00,0x57,0xff,0xe5,0x01,0x10,0x00,0x59,0xff,0x9a,0x01,0x10,0x00,0x5a,0xff,0xbe,0x01,0x10,0x00,0x5c,0xff,0xb4,0x01,0x10,0x00,0x64,0xff,0xbe,0x01,0x10,0x00,0x67,0xff,0xba,0x01,0x10,0x00,0x68,0xff,0xe3, +0x01,0x10,0x00,0x8d,0xff,0x9a,0x01,0x10,0x00,0x92,0xff,0xba,0x01,0x10,0x00,0xaf,0xff,0xba,0x01,0x10,0x00,0xb0,0xff,0xba,0x01,0x10,0x00,0xb4,0xff,0x73,0x01,0x10,0x00,0xb5,0xff,0x8b,0x01,0x10,0x00,0xb6,0xff,0x73,0x01,0x10,0x00,0xb7,0xff,0x7f,0x01,0x10,0x00,0xba,0xff,0xb4,0x01,0x10,0x00,0xbb,0xff,0x9a,0x01,0x10,0x00,0xc4, +0x00,0x44,0x01,0x10,0x00,0xc5,0x00,0x44,0x01,0x10,0x00,0xd0,0xff,0xba,0x01,0x10,0x00,0xd1,0xff,0xba,0x01,0x10,0x00,0xd2,0xff,0xba,0x01,0x10,0x00,0xd3,0xff,0xe3,0x01,0x10,0x00,0xd4,0xff,0xe3,0x01,0x10,0x00,0xd5,0xff,0xe3,0x01,0x10,0x00,0xe5,0x00,0x3b,0x01,0x10,0x00,0xea,0xff,0x7f,0x01,0x10,0x00,0xeb,0xff,0xb4,0x01,0x10, +0x00,0xf7,0xff,0xbe,0x01,0x10,0x00,0xfc,0xff,0xbe,0x01,0x10,0x00,0xfe,0xff,0xbe,0x01,0x10,0x01,0x03,0x00,0x3b,0x01,0x10,0x01,0x05,0x00,0x3b,0x01,0x10,0x01,0x20,0xff,0x8f,0x01,0x10,0x01,0x21,0xff,0xe5,0x01,0x10,0x01,0x22,0xff,0x8f,0x01,0x10,0x01,0x23,0xff,0xe5,0x01,0x10,0x01,0x24,0xff,0xe3,0x01,0x10,0x01,0x26,0xff,0xe3, +0x01,0x10,0x01,0x28,0x00,0x3b,0x01,0x10,0x01,0x2a,0x00,0x3b,0x01,0x10,0x01,0x45,0x00,0x3b,0x01,0x10,0x01,0x47,0xff,0xbe,0x01,0x10,0x01,0x51,0xff,0xbe,0x01,0x10,0x01,0x53,0xff,0xbe,0x01,0x10,0x01,0x55,0xff,0xbe,0x01,0x10,0x01,0x63,0x00,0x64,0x01,0x10,0x01,0x6e,0xff,0xba,0x01,0x10,0x01,0x70,0xff,0xba,0x01,0x10,0x01,0x76, +0xff,0x8f,0x01,0x10,0x01,0x77,0xff,0xe5,0x01,0x10,0x01,0x78,0xff,0xe3,0x01,0x10,0x01,0x7a,0xff,0xe3,0x01,0x10,0x01,0x7c,0xff,0xe3,0x01,0x10,0x01,0x7e,0xff,0xe3,0x01,0x10,0x01,0x80,0xff,0xcf,0x01,0x10,0x01,0x81,0xff,0xbe,0x01,0x10,0x01,0x82,0xff,0x7f,0x01,0x10,0x01,0x83,0xff,0xb4,0x01,0x10,0x01,0x85,0x00,0x3b,0x01,0x10, +0x01,0x87,0x00,0x3b,0x01,0x10,0x01,0x89,0xff,0xba,0x01,0x10,0x01,0x8c,0xff,0xcf,0x01,0x10,0x01,0x8d,0xff,0xbe,0x01,0x10,0x01,0x8e,0xff,0xcf,0x01,0x10,0x01,0x8f,0xff,0xbe,0x01,0x10,0x01,0x90,0xff,0xcf,0x01,0x10,0x01,0x91,0xff,0xbe,0x01,0x10,0x01,0x92,0xff,0x7f,0x01,0x10,0x01,0x93,0xff,0xb4,0x01,0x12,0x00,0x0d,0xff,0x31, +0x01,0x12,0x00,0x22,0xff,0x9a,0x01,0x12,0x00,0x24,0x00,0x3b,0x01,0x12,0x00,0x26,0xff,0xbe,0x01,0x12,0x00,0x2a,0xff,0xbe,0x01,0x12,0x00,0x2d,0x00,0x64,0x01,0x12,0x00,0x32,0xff,0xba,0x01,0x12,0x00,0x34,0xff,0xba,0x01,0x12,0x00,0x37,0xff,0x8f,0x01,0x12,0x00,0x38,0xff,0xe3,0x01,0x12,0x00,0x39,0xff,0x8b,0x01,0x12,0x00,0x3a, +0xff,0xcf,0x01,0x12,0x00,0x3c,0xff,0x7f,0x01,0x12,0x00,0x3d,0x00,0x3b,0x01,0x12,0x00,0x57,0xff,0xe5,0x01,0x12,0x00,0x59,0xff,0x9a,0x01,0x12,0x00,0x5a,0xff,0xbe,0x01,0x12,0x00,0x5c,0xff,0xb4,0x01,0x12,0x00,0x64,0xff,0xbe,0x01,0x12,0x00,0x67,0xff,0xba,0x01,0x12,0x00,0x68,0xff,0xe3,0x01,0x12,0x00,0x8d,0xff,0x9a,0x01,0x12, +0x00,0x92,0xff,0xba,0x01,0x12,0x00,0xaf,0xff,0xba,0x01,0x12,0x00,0xb0,0xff,0xba,0x01,0x12,0x00,0xb4,0xff,0x73,0x01,0x12,0x00,0xb5,0xff,0x8b,0x01,0x12,0x00,0xb6,0xff,0x73,0x01,0x12,0x00,0xb7,0xff,0x7f,0x01,0x12,0x00,0xba,0xff,0xb4,0x01,0x12,0x00,0xbb,0xff,0x9a,0x01,0x12,0x00,0xc4,0x00,0x44,0x01,0x12,0x00,0xc5,0x00,0x44, +0x01,0x12,0x00,0xd0,0xff,0xba,0x01,0x12,0x00,0xd1,0xff,0xba,0x01,0x12,0x00,0xd2,0xff,0xba,0x01,0x12,0x00,0xd3,0xff,0xe3,0x01,0x12,0x00,0xd4,0xff,0xe3,0x01,0x12,0x00,0xd5,0xff,0xe3,0x01,0x12,0x00,0xe5,0x00,0x3b,0x01,0x12,0x00,0xea,0xff,0x7f,0x01,0x12,0x00,0xeb,0xff,0xb4,0x01,0x12,0x00,0xf7,0xff,0xbe,0x01,0x12,0x00,0xfc, +0xff,0xbe,0x01,0x12,0x00,0xfe,0xff,0xbe,0x01,0x12,0x01,0x03,0x00,0x3b,0x01,0x12,0x01,0x05,0x00,0x3b,0x01,0x12,0x01,0x18,0xff,0xba,0x01,0x12,0x01,0x20,0xff,0x8f,0x01,0x12,0x01,0x21,0xff,0xe5,0x01,0x12,0x01,0x22,0xff,0x8f,0x01,0x12,0x01,0x23,0xff,0xe5,0x01,0x12,0x01,0x24,0xff,0xe3,0x01,0x12,0x01,0x26,0xff,0xe3,0x01,0x12, +0x01,0x28,0x00,0x3b,0x01,0x12,0x01,0x2a,0x00,0x3b,0x01,0x12,0x01,0x45,0x00,0x3b,0x01,0x12,0x01,0x47,0xff,0xbe,0x01,0x12,0x01,0x51,0xff,0xbe,0x01,0x12,0x01,0x53,0xff,0xbe,0x01,0x12,0x01,0x55,0xff,0xbe,0x01,0x12,0x01,0x63,0x00,0x64,0x01,0x12,0x01,0x6e,0xff,0xba,0x01,0x12,0x01,0x70,0xff,0xba,0x01,0x12,0x01,0x76,0xff,0x8f, +0x01,0x12,0x01,0x77,0xff,0xe5,0x01,0x12,0x01,0x78,0xff,0xe3,0x01,0x12,0x01,0x7a,0xff,0xe3,0x01,0x12,0x01,0x7c,0xff,0xe3,0x01,0x12,0x01,0x7e,0xff,0xe3,0x01,0x12,0x01,0x80,0xff,0xcf,0x01,0x12,0x01,0x81,0xff,0xbe,0x01,0x12,0x01,0x82,0xff,0x7f,0x01,0x12,0x01,0x83,0xff,0xb4,0x01,0x12,0x01,0x85,0x00,0x3b,0x01,0x12,0x01,0x87, +0x00,0x3b,0x01,0x12,0x01,0x89,0xff,0xba,0x01,0x12,0x01,0x8c,0xff,0xcf,0x01,0x12,0x01,0x8d,0xff,0xbe,0x01,0x12,0x01,0x8e,0xff,0xcf,0x01,0x12,0x01,0x8f,0xff,0xbe,0x01,0x12,0x01,0x90,0xff,0xcf,0x01,0x12,0x01,0x91,0xff,0xbe,0x01,0x12,0x01,0x92,0xff,0x7f,0x01,0x12,0x01,0x93,0xff,0xb4,0x01,0x15,0x00,0x05,0xff,0x98,0x01,0x15, +0x00,0x0a,0xff,0x98,0x01,0x17,0x00,0x05,0xff,0x98,0x01,0x17,0x00,0x0a,0xff,0x98,0x01,0x18,0x00,0x0f,0xff,0xa4,0x01,0x18,0x00,0x11,0xff,0xa4,0x01,0x18,0x00,0x24,0xff,0xe5,0x01,0x18,0x00,0x2d,0xff,0xf6,0x01,0x18,0x00,0x37,0xff,0xa4,0x01,0x18,0x00,0x3b,0xff,0xdb,0x01,0x18,0x00,0x3c,0xff,0xe7,0x01,0x18,0x00,0x3d,0xff,0xcf, +0x01,0x18,0x00,0x62,0xff,0xe5,0x01,0x18,0x00,0x63,0xff,0xe5,0x01,0x18,0x00,0xac,0xff,0xa4,0x01,0x18,0x00,0xad,0xff,0xe5,0x01,0x18,0x00,0xae,0xff,0xe5,0x01,0x18,0x00,0xbb,0xff,0xf6,0x01,0x18,0x00,0xc4,0xff,0x4c,0x01,0x18,0x00,0xc5,0xff,0x98,0x01,0x18,0x00,0xc7,0xff,0xe5,0x01,0x18,0x00,0xc9,0xff,0xe5,0x01,0x18,0x00,0xe5, +0xff,0xcf,0x01,0x18,0x00,0xea,0xff,0xe7,0x01,0x18,0x01,0x03,0xff,0xe5,0x01,0x18,0x01,0x05,0xff,0xe5,0x01,0x18,0x01,0x20,0xff,0xa4,0x01,0x18,0x01,0x22,0xff,0xa4,0x01,0x18,0x01,0x28,0xff,0xcf,0x01,0x18,0x01,0x2a,0xff,0xcf,0x01,0x18,0x01,0x45,0xff,0xe5,0x01,0x18,0x01,0x63,0xff,0xf6,0x01,0x18,0x01,0x76,0xff,0xa4,0x01,0x18, +0x01,0x82,0xff,0xe7,0x01,0x18,0x01,0x85,0xff,0xe5,0x01,0x18,0x01,0x87,0xff,0xe5,0x01,0x18,0x01,0x92,0xff,0xe7,0x01,0x19,0x00,0x05,0xff,0x6f,0x01,0x19,0x00,0x0a,0xff,0x6f,0x01,0x19,0x00,0x44,0xff,0xe5,0x01,0x19,0x00,0x49,0xff,0xdb,0x01,0x19,0x00,0x5b,0xff,0xe7,0x01,0x19,0x00,0x69,0xff,0xe5,0x01,0x19,0x00,0x6a,0xff,0xe5, +0x01,0x19,0x00,0x6b,0xff,0xe5,0x01,0x19,0x00,0x6c,0xff,0xe5,0x01,0x19,0x00,0x6d,0xff,0xe5,0x01,0x19,0x00,0x6e,0xff,0xe5,0x01,0x19,0x00,0xa0,0xff,0xe5,0x01,0x19,0x00,0xb4,0xff,0xb2,0x01,0x19,0x00,0xb5,0xff,0x7d,0x01,0x19,0x00,0xb6,0xff,0xbe,0x01,0x19,0x00,0xb7,0xff,0x7d,0x01,0x19,0x00,0xc0,0xff,0xe7,0x01,0x19,0x00,0xc1, +0xff,0xe7,0x01,0x19,0x01,0x04,0xff,0xe5,0x01,0x19,0x01,0x06,0xff,0xe5,0x01,0x19,0x01,0x46,0xff,0xe5,0x01,0x19,0x01,0x86,0xff,0xe5,0x01,0x19,0x01,0x88,0xff,0xe5,0x01,0x1a,0x00,0x1e,0x00,0x52,0x01,0x1a,0x00,0x26,0xff,0xe3,0x01,0x1a,0x00,0x2a,0xff,0xe3,0x01,0x1a,0x00,0x2d,0x00,0x39,0x01,0x1a,0x00,0x32,0xff,0xec,0x01,0x1a, +0x00,0x34,0xff,0xec,0x01,0x1a,0x00,0x37,0xff,0xcb,0x01,0x1a,0x00,0x3c,0xff,0xd9,0x01,0x1a,0x00,0x46,0xff,0xcb,0x01,0x1a,0x00,0x47,0xff,0xcb,0x01,0x1a,0x00,0x48,0xff,0xc7,0x01,0x1a,0x00,0x4a,0xff,0xc7,0x01,0x1a,0x00,0x52,0xff,0xc5,0x01,0x1a,0x00,0x54,0xff,0xcb,0x01,0x1a,0x00,0x64,0xff,0xe5,0x01,0x1a,0x00,0x67,0xff,0xec, +0x01,0x1a,0x00,0x6f,0xff,0xbe,0x01,0x1a,0x00,0x70,0xff,0xbe,0x01,0x1a,0x00,0x71,0xff,0xbe,0x01,0x1a,0x00,0x72,0xff,0xbe,0x01,0x1a,0x00,0x73,0xff,0xbe,0x01,0x1a,0x00,0x79,0xff,0xc5,0x01,0x1a,0x00,0x7a,0xff,0xc5,0x01,0x1a,0x00,0x7b,0xff,0xc5,0x01,0x1a,0x00,0x7c,0xff,0xc5,0x01,0x1a,0x00,0x7d,0xff,0xc5,0x01,0x1a,0x00,0x92, +0xff,0xec,0x01,0x1a,0x00,0xaf,0xff,0xec,0x01,0x1a,0x00,0xb0,0xff,0xec,0x01,0x1a,0x00,0xb1,0xff,0xc5,0x01,0x1a,0x00,0xbb,0xff,0xe5,0x01,0x1a,0x00,0xd0,0xff,0xec,0x01,0x1a,0x00,0xd1,0xff,0xec,0x01,0x1a,0x00,0xd2,0xff,0xec,0x01,0x1a,0x00,0xea,0xff,0xd9,0x01,0x1a,0x00,0xf7,0xff,0xe3,0x01,0x1a,0x00,0xf8,0xff,0xc7,0x01,0x1a, +0x00,0xfc,0xff,0xe3,0x01,0x1a,0x00,0xfd,0xff,0xcb,0x01,0x1a,0x00,0xfe,0xff,0xe3,0x01,0x1a,0x00,0xff,0xff,0xcb,0x01,0x1a,0x01,0x00,0xff,0xcb,0x01,0x1a,0x01,0x08,0xff,0xcb,0x01,0x1a,0x01,0x0b,0xff,0xc7,0x01,0x1a,0x01,0x0d,0xff,0xbe,0x01,0x1a,0x01,0x18,0xff,0xec,0x01,0x1a,0x01,0x19,0xff,0xc5,0x01,0x1a,0x01,0x20,0xff,0xcb, +0x01,0x1a,0x01,0x22,0xff,0xcb,0x01,0x1a,0x01,0x47,0xff,0xe3,0x01,0x1a,0x01,0x48,0xff,0xcb,0x01,0x1a,0x01,0x4c,0xff,0xbe,0x01,0x1a,0x01,0x4e,0xff,0xbe,0x01,0x1a,0x01,0x50,0xff,0xbe,0x01,0x1a,0x01,0x51,0xff,0xe3,0x01,0x1a,0x01,0x52,0xff,0xc7,0x01,0x1a,0x01,0x53,0xff,0xe3,0x01,0x1a,0x01,0x54,0xff,0xc7,0x01,0x1a,0x01,0x55, +0xff,0xe3,0x01,0x1a,0x01,0x56,0xff,0xc7,0x01,0x1a,0x01,0x63,0x00,0x39,0x01,0x1a,0x01,0x6e,0xff,0xec,0x01,0x1a,0x01,0x6f,0xff,0xc5,0x01,0x1a,0x01,0x70,0xff,0xec,0x01,0x1a,0x01,0x71,0xff,0xc5,0x01,0x1a,0x01,0x76,0xff,0xcb,0x01,0x1a,0x01,0x82,0xff,0xd9,0x01,0x1a,0x01,0x89,0xff,0xec,0x01,0x1a,0x01,0x8a,0xff,0xc5,0x01,0x1a, +0x01,0x92,0xff,0xd9,0x01,0x1b,0x00,0x0f,0xff,0x62,0x01,0x1b,0x00,0x10,0xff,0x7f,0x01,0x1b,0x00,0x11,0xff,0x56,0x01,0x1b,0x00,0x1d,0x00,0x52,0x01,0x1b,0x00,0x1e,0x00,0x52,0x01,0x1b,0x00,0x46,0xff,0xe5,0x01,0x1b,0x00,0x47,0xff,0xe5,0x01,0x1b,0x00,0x48,0xff,0xe5,0x01,0x1b,0x00,0x49,0x00,0x27,0x01,0x1b,0x00,0x4a,0xff,0xe5, +0x01,0x1b,0x00,0x50,0xff,0xfc,0x01,0x1b,0x00,0x51,0xff,0xfc,0x01,0x1b,0x00,0x52,0xff,0xe5,0x01,0x1b,0x00,0x54,0xff,0xe5,0x01,0x1b,0x00,0x56,0x00,0x0e,0x01,0x1b,0x00,0x57,0x00,0x3b,0x01,0x1b,0x00,0x59,0x00,0x52,0x01,0x1b,0x00,0x5a,0x00,0x52,0x01,0x1b,0x00,0x5b,0x00,0x3b,0x01,0x1b,0x00,0x5c,0x00,0x52,0x01,0x1b,0x00,0x5d, +0x00,0x27,0x01,0x1b,0x00,0x6f,0xff,0xe5,0x01,0x1b,0x00,0x70,0xff,0xe5,0x01,0x1b,0x00,0x71,0xff,0xe5,0x01,0x1b,0x00,0x72,0xff,0xe5,0x01,0x1b,0x00,0x73,0xff,0xe5,0x01,0x1b,0x00,0x79,0xff,0xe5,0x01,0x1b,0x00,0x7a,0xff,0xe5,0x01,0x1b,0x00,0x7b,0xff,0xe5,0x01,0x1b,0x00,0x7c,0xff,0xe5,0x01,0x1b,0x00,0x7d,0xff,0xe5,0x01,0x1b, +0x00,0xac,0xff,0x56,0x01,0x1b,0x00,0xb1,0xff,0xe5,0x01,0x1b,0x00,0xb4,0x00,0xa4,0x01,0x1b,0x00,0xb5,0x00,0x79,0x01,0x1b,0x00,0xb6,0x00,0xa4,0x01,0x1b,0x00,0xb7,0x00,0x79,0x01,0x1b,0x00,0xc4,0xff,0x62,0x01,0x1b,0x00,0xc5,0xff,0x62,0x01,0x1b,0x00,0xe4,0x00,0x0e,0x01,0x1b,0x00,0xe6,0x00,0x27,0x01,0x1b,0x00,0xeb,0x00,0x52, +0x01,0x1b,0x00,0xf8,0xff,0xe5,0x01,0x1b,0x00,0xfb,0x00,0x0e,0x01,0x1b,0x00,0xfd,0xff,0xe5,0x01,0x1b,0x00,0xff,0xff,0xe5,0x01,0x1b,0x01,0x00,0xff,0xe5,0x01,0x1b,0x01,0x08,0xff,0xe5,0x01,0x1b,0x01,0x0b,0xff,0xe5,0x01,0x1b,0x01,0x0d,0xff,0xe5,0x01,0x1b,0x01,0x19,0xff,0xe5,0x01,0x1b,0x01,0x1f,0x00,0x0e,0x01,0x1b,0x01,0x21, +0x00,0x3b,0x01,0x1b,0x01,0x23,0x00,0x3b,0x01,0x1b,0x01,0x29,0x00,0x27,0x01,0x1b,0x01,0x2b,0x00,0x27,0x01,0x1b,0x01,0x48,0xff,0xe5,0x01,0x1b,0x01,0x4c,0xff,0xe5,0x01,0x1b,0x01,0x4e,0xff,0xe5,0x01,0x1b,0x01,0x50,0xff,0xe5,0x01,0x1b,0x01,0x52,0xff,0xe5,0x01,0x1b,0x01,0x54,0xff,0xe5,0x01,0x1b,0x01,0x56,0xff,0xe5,0x01,0x1b, +0x01,0x6d,0xff,0xfc,0x01,0x1b,0x01,0x6f,0xff,0xe5,0x01,0x1b,0x01,0x71,0xff,0xe5,0x01,0x1b,0x01,0x75,0x00,0x0e,0x01,0x1b,0x01,0x77,0x00,0x3b,0x01,0x1b,0x01,0x81,0x00,0x52,0x01,0x1b,0x01,0x83,0x00,0x52,0x01,0x1b,0x01,0x8a,0xff,0xe5,0x01,0x1b,0x01,0x8d,0x00,0x52,0x01,0x1b,0x01,0x8f,0x00,0x52,0x01,0x1b,0x01,0x91,0x00,0x52, +0x01,0x1b,0x01,0x93,0x00,0x52,0x01,0x1b,0x02,0x3e,0x00,0x0e,0x01,0x1c,0x00,0x1e,0x00,0x52,0x01,0x1c,0x00,0x26,0xff,0xe3,0x01,0x1c,0x00,0x2a,0xff,0xe3,0x01,0x1c,0x00,0x2d,0x00,0x39,0x01,0x1c,0x00,0x32,0xff,0xec,0x01,0x1c,0x00,0x34,0xff,0xec,0x01,0x1c,0x00,0x37,0xff,0xcb,0x01,0x1c,0x00,0x3c,0xff,0xd9,0x01,0x1c,0x00,0x46, +0xff,0xcb,0x01,0x1c,0x00,0x47,0xff,0xcb,0x01,0x1c,0x00,0x48,0xff,0xc7,0x01,0x1c,0x00,0x4a,0xff,0xc7,0x01,0x1c,0x00,0x52,0xff,0xc5,0x01,0x1c,0x00,0x54,0xff,0xcb,0x01,0x1c,0x00,0x64,0xff,0xe5,0x01,0x1c,0x00,0x67,0xff,0xec,0x01,0x1c,0x00,0x6f,0xff,0xbe,0x01,0x1c,0x00,0x70,0xff,0xbe,0x01,0x1c,0x00,0x71,0xff,0xbe,0x01,0x1c, +0x00,0x72,0xff,0xbe,0x01,0x1c,0x00,0x73,0xff,0xbe,0x01,0x1c,0x00,0x79,0xff,0xc5,0x01,0x1c,0x00,0x7a,0xff,0xc5,0x01,0x1c,0x00,0x7b,0xff,0xc5,0x01,0x1c,0x00,0x7c,0xff,0xc5,0x01,0x1c,0x00,0x7d,0xff,0xc5,0x01,0x1c,0x00,0x92,0xff,0xec,0x01,0x1c,0x00,0xaf,0xff,0xec,0x01,0x1c,0x00,0xb0,0xff,0xec,0x01,0x1c,0x00,0xb1,0xff,0xc5, +0x01,0x1c,0x00,0xbb,0xff,0xe5,0x01,0x1c,0x00,0xd0,0xff,0xec,0x01,0x1c,0x00,0xd1,0xff,0xec,0x01,0x1c,0x00,0xd2,0xff,0xec,0x01,0x1c,0x00,0xea,0xff,0xd9,0x01,0x1c,0x00,0xf7,0xff,0xe3,0x01,0x1c,0x00,0xf8,0xff,0xc7,0x01,0x1c,0x00,0xfc,0xff,0xe3,0x01,0x1c,0x00,0xfd,0xff,0xcb,0x01,0x1c,0x00,0xfe,0xff,0xe3,0x01,0x1c,0x00,0xff, +0xff,0xcb,0x01,0x1c,0x01,0x00,0xff,0xcb,0x01,0x1c,0x01,0x08,0xff,0xcb,0x01,0x1c,0x01,0x0b,0xff,0xc7,0x01,0x1c,0x01,0x0d,0xff,0xbe,0x01,0x1c,0x01,0x18,0xff,0xec,0x01,0x1c,0x01,0x19,0xff,0xc5,0x01,0x1c,0x01,0x20,0xff,0xcb,0x01,0x1c,0x01,0x22,0xff,0xcb,0x01,0x1c,0x01,0x47,0xff,0xe3,0x01,0x1c,0x01,0x48,0xff,0xcb,0x01,0x1c, +0x01,0x4c,0xff,0xbe,0x01,0x1c,0x01,0x4e,0xff,0xbe,0x01,0x1c,0x01,0x50,0xff,0xbe,0x01,0x1c,0x01,0x51,0xff,0xe3,0x01,0x1c,0x01,0x52,0xff,0xc7,0x01,0x1c,0x01,0x53,0xff,0xe3,0x01,0x1c,0x01,0x54,0xff,0xc7,0x01,0x1c,0x01,0x55,0xff,0xe3,0x01,0x1c,0x01,0x56,0xff,0xc7,0x01,0x1c,0x01,0x63,0x00,0x39,0x01,0x1c,0x01,0x6e,0xff,0xec, +0x01,0x1c,0x01,0x6f,0xff,0xc5,0x01,0x1c,0x01,0x70,0xff,0xec,0x01,0x1c,0x01,0x71,0xff,0xc5,0x01,0x1c,0x01,0x76,0xff,0xcb,0x01,0x1c,0x01,0x82,0xff,0xd9,0x01,0x1c,0x01,0x89,0xff,0xec,0x01,0x1c,0x01,0x8a,0xff,0xc5,0x01,0x1c,0x01,0x92,0xff,0xd9,0x01,0x1d,0x00,0x0f,0xff,0x62,0x01,0x1d,0x00,0x10,0xff,0x7f,0x01,0x1d,0x00,0x11, +0xff,0x56,0x01,0x1d,0x00,0x1d,0x00,0x52,0x01,0x1d,0x00,0x1e,0x00,0x52,0x01,0x1d,0x00,0x46,0xff,0xe5,0x01,0x1d,0x00,0x47,0xff,0xe5,0x01,0x1d,0x00,0x48,0xff,0xe5,0x01,0x1d,0x00,0x49,0x00,0x27,0x01,0x1d,0x00,0x4a,0xff,0xe5,0x01,0x1d,0x00,0x50,0xff,0xfc,0x01,0x1d,0x00,0x51,0xff,0xfc,0x01,0x1d,0x00,0x52,0xff,0xe5,0x01,0x1d, +0x00,0x54,0xff,0xe5,0x01,0x1d,0x00,0x56,0x00,0x0e,0x01,0x1d,0x00,0x57,0x00,0x3b,0x01,0x1d,0x00,0x59,0x00,0x52,0x01,0x1d,0x00,0x5a,0x00,0x52,0x01,0x1d,0x00,0x5b,0x00,0x3b,0x01,0x1d,0x00,0x5c,0x00,0x52,0x01,0x1d,0x00,0x5d,0x00,0x27,0x01,0x1d,0x00,0x6f,0xff,0xe5,0x01,0x1d,0x00,0x70,0xff,0xe5,0x01,0x1d,0x00,0x71,0xff,0xe5, +0x01,0x1d,0x00,0x72,0xff,0xe5,0x01,0x1d,0x00,0x73,0xff,0xe5,0x01,0x1d,0x00,0x79,0xff,0xe5,0x01,0x1d,0x00,0x7a,0xff,0xe5,0x01,0x1d,0x00,0x7b,0xff,0xe5,0x01,0x1d,0x00,0x7c,0xff,0xe5,0x01,0x1d,0x00,0x7d,0xff,0xe5,0x01,0x1d,0x00,0xac,0xff,0x56,0x01,0x1d,0x00,0xb1,0xff,0xe5,0x01,0x1d,0x00,0xb4,0x00,0xa4,0x01,0x1d,0x00,0xb5, +0x00,0x79,0x01,0x1d,0x00,0xb6,0x00,0xa4,0x01,0x1d,0x00,0xb7,0x00,0x79,0x01,0x1d,0x00,0xc4,0xff,0x62,0x01,0x1d,0x00,0xc5,0xff,0x62,0x01,0x1d,0x00,0xe4,0x00,0x0e,0x01,0x1d,0x00,0xe6,0x00,0x27,0x01,0x1d,0x00,0xeb,0x00,0x52,0x01,0x1d,0x00,0xf8,0xff,0xe5,0x01,0x1d,0x00,0xfb,0x00,0x0e,0x01,0x1d,0x00,0xfd,0xff,0xe5,0x01,0x1d, +0x00,0xff,0xff,0xe5,0x01,0x1d,0x01,0x00,0xff,0xe5,0x01,0x1d,0x01,0x08,0xff,0xe5,0x01,0x1d,0x01,0x0b,0xff,0xe5,0x01,0x1d,0x01,0x0d,0xff,0xe5,0x01,0x1d,0x01,0x19,0xff,0xe5,0x01,0x1d,0x01,0x1f,0x00,0x0e,0x01,0x1d,0x01,0x21,0x00,0x3b,0x01,0x1d,0x01,0x23,0x00,0x3b,0x01,0x1d,0x01,0x29,0x00,0x27,0x01,0x1d,0x01,0x2b,0x00,0x27, +0x01,0x1d,0x01,0x48,0xff,0xe5,0x01,0x1d,0x01,0x4c,0xff,0xe5,0x01,0x1d,0x01,0x4e,0xff,0xe5,0x01,0x1d,0x01,0x50,0xff,0xe5,0x01,0x1d,0x01,0x52,0xff,0xe5,0x01,0x1d,0x01,0x54,0xff,0xe5,0x01,0x1d,0x01,0x56,0xff,0xe5,0x01,0x1d,0x01,0x6d,0xff,0xfc,0x01,0x1d,0x01,0x6f,0xff,0xe5,0x01,0x1d,0x01,0x71,0xff,0xe5,0x01,0x1d,0x01,0x75, +0x00,0x0e,0x01,0x1d,0x01,0x77,0x00,0x3b,0x01,0x1d,0x01,0x81,0x00,0x52,0x01,0x1d,0x01,0x83,0x00,0x52,0x01,0x1d,0x01,0x8a,0xff,0xe5,0x01,0x1d,0x01,0x8d,0x00,0x52,0x01,0x1d,0x01,0x8f,0x00,0x52,0x01,0x1d,0x01,0x91,0x00,0x52,0x01,0x1d,0x01,0x93,0x00,0x52,0x01,0x1d,0x02,0x3e,0x00,0x0e,0x01,0x1e,0x00,0x57,0xff,0xbe,0x01,0x1e, +0x00,0x59,0xff,0xcf,0x01,0x1e,0x00,0x5a,0xff,0xe5,0x01,0x1e,0x00,0x5c,0xff,0xd1,0x01,0x1e,0x00,0xba,0xff,0xbe,0x01,0x1e,0x00,0xc4,0xff,0xb2,0x01,0x1e,0x00,0xc5,0xff,0xb2,0x01,0x1e,0x00,0xeb,0xff,0xd1,0x01,0x1e,0x01,0x21,0xff,0xbe,0x01,0x1e,0x01,0x23,0xff,0xbe,0x01,0x1e,0x01,0x77,0xff,0xbe,0x01,0x1e,0x01,0x81,0xff,0xe5, +0x01,0x1e,0x01,0x83,0xff,0xd1,0x01,0x1e,0x01,0x8d,0xff,0xe5,0x01,0x1e,0x01,0x8f,0xff,0xe5,0x01,0x1e,0x01,0x91,0xff,0xe5,0x01,0x1e,0x01,0x93,0xff,0xd1,0x01,0x20,0x00,0x0f,0xff,0x7f,0x01,0x20,0x00,0x11,0xff,0x4c,0x01,0x20,0x00,0x1d,0xff,0xe9,0x01,0x20,0x00,0x1e,0xff,0xe9,0x01,0x20,0x00,0x24,0xff,0x66,0x01,0x20,0x00,0x26, +0xff,0xa4,0x01,0x20,0x00,0x2a,0xff,0xa4,0x01,0x20,0x00,0x2d,0xff,0x8f,0x01,0x20,0x00,0x32,0xff,0xa4,0x01,0x20,0x00,0x34,0xff,0xa4,0x01,0x20,0x00,0x37,0x00,0x27,0x01,0x20,0x00,0x39,0x00,0x2b,0x01,0x20,0x00,0x3a,0x00,0x27,0x01,0x20,0x00,0x3b,0xff,0xfa,0x01,0x20,0x00,0x3c,0x00,0x1d,0x01,0x20,0x00,0x44,0xff,0x27,0x01,0x20, +0x00,0x46,0xff,0x2d,0x01,0x20,0x00,0x47,0xff,0x2d,0x01,0x20,0x00,0x48,0xff,0x2d,0x01,0x20,0x00,0x49,0xff,0xa0,0x01,0x20,0x00,0x4a,0xff,0x2d,0x01,0x20,0x00,0x50,0xff,0x4e,0x01,0x20,0x00,0x51,0xff,0x4e,0x01,0x20,0x00,0x52,0xff,0x2d,0x01,0x20,0x00,0x53,0xff,0x4e,0x01,0x20,0x00,0x54,0xff,0x2d,0x01,0x20,0x00,0x55,0xff,0x4e, +0x01,0x20,0x00,0x56,0xff,0x66,0x01,0x20,0x00,0x58,0xff,0x4e,0x01,0x20,0x00,0x59,0xff,0x9a,0x01,0x20,0x00,0x5a,0xff,0x8f,0x01,0x20,0x00,0x5b,0xff,0x4c,0x01,0x20,0x00,0x5c,0xff,0x8f,0x01,0x20,0x00,0x5d,0xff,0x7f,0x01,0x20,0x00,0x62,0xff,0x66,0x01,0x20,0x00,0x63,0xff,0x66,0x01,0x20,0x00,0x64,0xff,0xa4,0x01,0x20,0x00,0x67, +0xff,0xa4,0x01,0x20,0x00,0x69,0xff,0x27,0x01,0x20,0x00,0x6a,0xff,0x27,0x01,0x20,0x00,0x6b,0xff,0x27,0x01,0x20,0x00,0x6c,0xff,0x27,0x01,0x20,0x00,0x6d,0xff,0x3f,0x01,0x20,0x00,0x6e,0xff,0x27,0x01,0x20,0x00,0x6f,0xff,0x1b,0x01,0x20,0x00,0x70,0xff,0x2d,0x01,0x20,0x00,0x71,0xff,0x2d,0x01,0x20,0x00,0x72,0xff,0x2d,0x01,0x20, +0x00,0x73,0xff,0x2d,0x01,0x20,0x00,0x74,0xff,0xe9,0x01,0x20,0x00,0x76,0x00,0x31,0x01,0x20,0x00,0x77,0x00,0x6f,0x01,0x20,0x00,0x78,0xff,0x4e,0x01,0x20,0x00,0x79,0xff,0x2d,0x01,0x20,0x00,0x7a,0xff,0x2d,0x01,0x20,0x00,0x7b,0xff,0x2d,0x01,0x20,0x00,0x7c,0xff,0x2d,0x01,0x20,0x00,0x7d,0xff,0x2d,0x01,0x20,0x00,0x7e,0xff,0x4e, +0x01,0x20,0x00,0x7f,0xff,0x4e,0x01,0x20,0x00,0x80,0xff,0x4e,0x01,0x20,0x00,0x81,0xff,0x4e,0x01,0x20,0x00,0x8d,0x00,0x52,0x01,0x20,0x00,0x91,0xff,0x0c,0x01,0x20,0x00,0x92,0xff,0xa4,0x01,0x20,0x00,0xa0,0xff,0x27,0x01,0x20,0x00,0xaa,0xff,0x9a,0x01,0x20,0x00,0xab,0xff,0xcf,0x01,0x20,0x00,0xac,0xff,0x4c,0x01,0x20,0x00,0xad, +0xff,0x66,0x01,0x20,0x00,0xae,0xff,0x66,0x01,0x20,0x00,0xaf,0xff,0xa4,0x01,0x20,0x00,0xb0,0xff,0xa4,0x01,0x20,0x00,0xb1,0xff,0x2d,0x01,0x20,0x00,0xb5,0x00,0x27,0x01,0x20,0x00,0xb7,0x00,0x27,0x01,0x20,0x00,0xba,0xff,0x8f,0x01,0x20,0x00,0xbe,0xff,0x9a,0x01,0x20,0x00,0xbf,0xff,0xcf,0x01,0x20,0x00,0xc4,0xff,0x17,0x01,0x20, +0x00,0xc5,0xff,0x17,0x01,0x20,0x00,0xc7,0xff,0x66,0x01,0x20,0x00,0xc9,0xff,0x66,0x01,0x20,0x00,0xd0,0xff,0xa4,0x01,0x20,0x00,0xd1,0xff,0xa4,0x01,0x20,0x00,0xd2,0xff,0xa4,0x01,0x20,0x00,0xe4,0xff,0x66,0x01,0x20,0x00,0xe6,0xff,0x7f,0x01,0x20,0x00,0xea,0x00,0x1d,0x01,0x20,0x00,0xeb,0xff,0x8f,0x01,0x20,0x00,0xf7,0xff,0xa4, +0x01,0x20,0x00,0xf8,0xff,0x2d,0x01,0x20,0x00,0xfb,0xff,0x66,0x01,0x20,0x00,0xfc,0xff,0xa4,0x01,0x20,0x00,0xfd,0xff,0x2d,0x01,0x20,0x00,0xfe,0xff,0xa4,0x01,0x20,0x00,0xff,0xff,0x2d,0x01,0x20,0x01,0x00,0xff,0x2d,0x01,0x20,0x01,0x03,0xff,0x66,0x01,0x20,0x01,0x04,0xff,0x27,0x01,0x20,0x01,0x05,0xff,0x66,0x01,0x20,0x01,0x06, +0xff,0x27,0x01,0x20,0x01,0x08,0xff,0x2d,0x01,0x20,0x01,0x0b,0xff,0x2d,0x01,0x20,0x01,0x0d,0xff,0x2d,0x01,0x20,0x01,0x15,0xff,0x4e,0x01,0x20,0x01,0x17,0xff,0x4e,0x01,0x20,0x01,0x18,0xff,0xa4,0x01,0x20,0x01,0x19,0xff,0x2d,0x01,0x20,0x01,0x1b,0xff,0x4e,0x01,0x20,0x01,0x1d,0xff,0x4e,0x01,0x20,0x01,0x1f,0xff,0x66,0x01,0x20, +0x01,0x20,0x00,0x27,0x01,0x20,0x01,0x22,0x00,0x27,0x01,0x20,0x01,0x25,0xff,0x4e,0x01,0x20,0x01,0x27,0xff,0x4e,0x01,0x20,0x01,0x29,0xff,0x7f,0x01,0x20,0x01,0x2b,0xff,0x7f,0x01,0x20,0x01,0x45,0xff,0x66,0x01,0x20,0x01,0x46,0xff,0x27,0x01,0x20,0x01,0x47,0xff,0xa4,0x01,0x20,0x01,0x48,0xff,0x2d,0x01,0x20,0x01,0x4c,0xff,0x2d, +0x01,0x20,0x01,0x4e,0xff,0x2d,0x01,0x20,0x01,0x50,0xff,0x2d,0x01,0x20,0x01,0x51,0xff,0xa4,0x01,0x20,0x01,0x52,0xff,0x2d,0x01,0x20,0x01,0x53,0xff,0xa4,0x01,0x20,0x01,0x54,0xff,0x2d,0x01,0x20,0x01,0x55,0xff,0xa4,0x01,0x20,0x01,0x56,0xff,0x2d,0x01,0x20,0x01,0x5c,0x00,0x6f,0x01,0x20,0x01,0x5e,0x00,0x6f,0x01,0x20,0x01,0x60, +0x00,0x6f,0x01,0x20,0x01,0x63,0xff,0x8f,0x01,0x20,0x01,0x6d,0xff,0x4e,0x01,0x20,0x01,0x6e,0xff,0xa4,0x01,0x20,0x01,0x6f,0xff,0x2d,0x01,0x20,0x01,0x70,0xff,0xa4,0x01,0x20,0x01,0x71,0xff,0x2d,0x01,0x20,0x01,0x73,0xff,0x4e,0x01,0x20,0x01,0x75,0xff,0x66,0x01,0x20,0x01,0x76,0x00,0x27,0x01,0x20,0x01,0x79,0xff,0x4e,0x01,0x20, +0x01,0x7b,0xff,0x4e,0x01,0x20,0x01,0x7d,0xff,0x4e,0x01,0x20,0x01,0x7f,0xff,0x4e,0x01,0x20,0x01,0x80,0x00,0x27,0x01,0x20,0x01,0x81,0xff,0x8f,0x01,0x20,0x01,0x82,0x00,0x1d,0x01,0x20,0x01,0x83,0xff,0x8f,0x01,0x20,0x01,0x85,0xff,0x66,0x01,0x20,0x01,0x86,0xff,0x27,0x01,0x20,0x01,0x87,0xff,0x66,0x01,0x20,0x01,0x88,0xff,0x27, +0x01,0x20,0x01,0x89,0xff,0xa4,0x01,0x20,0x01,0x8a,0xff,0x2d,0x01,0x20,0x01,0x8c,0x00,0x27,0x01,0x20,0x01,0x8d,0xff,0x8f,0x01,0x20,0x01,0x8e,0x00,0x27,0x01,0x20,0x01,0x8f,0xff,0x8f,0x01,0x20,0x01,0x90,0x00,0x27,0x01,0x20,0x01,0x91,0xff,0x8f,0x01,0x20,0x01,0x92,0x00,0x1d,0x01,0x20,0x01,0x93,0xff,0x8f,0x01,0x20,0x02,0x3e, +0xff,0x66,0x01,0x21,0x00,0x10,0xff,0x8f,0x01,0x21,0x00,0x22,0xff,0xcb,0x01,0x21,0x00,0x46,0xff,0xe5,0x01,0x21,0x00,0x47,0xff,0xe5,0x01,0x21,0x00,0x48,0xff,0xf0,0x01,0x21,0x00,0x4a,0xff,0xf0,0x01,0x21,0x00,0x52,0xff,0xf0,0x01,0x21,0x00,0x54,0xff,0xf0,0x01,0x21,0x00,0x5b,0x00,0x1d,0x01,0x21,0x00,0x6f,0xff,0xe5,0x01,0x21, +0x00,0x70,0xff,0xf0,0x01,0x21,0x00,0x71,0xff,0xf0,0x01,0x21,0x00,0x72,0xff,0xf0,0x01,0x21,0x00,0x73,0xff,0xf0,0x01,0x21,0x00,0x79,0xff,0xf0,0x01,0x21,0x00,0x7a,0xff,0xf0,0x01,0x21,0x00,0x7b,0xff,0xf0,0x01,0x21,0x00,0x7c,0xff,0xf0,0x01,0x21,0x00,0x7d,0xff,0xf0,0x01,0x21,0x00,0xab,0x00,0x27,0x01,0x21,0x00,0xb1,0xff,0xf0, +0x01,0x21,0x00,0xbf,0x00,0x27,0x01,0x21,0x00,0xf8,0xff,0xf0,0x01,0x21,0x00,0xfd,0xff,0xe5,0x01,0x21,0x00,0xff,0xff,0xe5,0x01,0x21,0x01,0x00,0xff,0xe5,0x01,0x21,0x01,0x08,0xff,0xe5,0x01,0x21,0x01,0x0b,0xff,0xf0,0x01,0x21,0x01,0x0d,0xff,0xf0,0x01,0x21,0x01,0x19,0xff,0xf0,0x01,0x21,0x01,0x48,0xff,0xe5,0x01,0x21,0x01,0x4c, +0xff,0xf0,0x01,0x21,0x01,0x4e,0xff,0xf0,0x01,0x21,0x01,0x50,0xff,0xf0,0x01,0x21,0x01,0x52,0xff,0xf0,0x01,0x21,0x01,0x54,0xff,0xf0,0x01,0x21,0x01,0x56,0xff,0xf0,0x01,0x21,0x01,0x6f,0xff,0xf0,0x01,0x21,0x01,0x71,0xff,0xf0,0x01,0x21,0x01,0x8a,0xff,0xf0,0x01,0x22,0x00,0x0f,0xff,0x7f,0x01,0x22,0x00,0x11,0xff,0x4c,0x01,0x22, +0x00,0x1d,0xff,0xe9,0x01,0x22,0x00,0x1e,0xff,0xe9,0x01,0x22,0x00,0x24,0xff,0x66,0x01,0x22,0x00,0x26,0xff,0xa4,0x01,0x22,0x00,0x2a,0xff,0xa4,0x01,0x22,0x00,0x2d,0xff,0x8f,0x01,0x22,0x00,0x32,0xff,0xa4,0x01,0x22,0x00,0x34,0xff,0xa4,0x01,0x22,0x00,0x37,0x00,0x27,0x01,0x22,0x00,0x39,0x00,0x2b,0x01,0x22,0x00,0x3a,0x00,0x27, +0x01,0x22,0x00,0x3b,0xff,0xfa,0x01,0x22,0x00,0x3c,0x00,0x1d,0x01,0x22,0x00,0x44,0xff,0x27,0x01,0x22,0x00,0x46,0xff,0x2d,0x01,0x22,0x00,0x47,0xff,0x2d,0x01,0x22,0x00,0x48,0xff,0x2d,0x01,0x22,0x00,0x49,0xff,0xa0,0x01,0x22,0x00,0x4a,0xff,0x2d,0x01,0x22,0x00,0x50,0xff,0x4e,0x01,0x22,0x00,0x51,0xff,0x4e,0x01,0x22,0x00,0x52, +0xff,0x2d,0x01,0x22,0x00,0x53,0xff,0x4e,0x01,0x22,0x00,0x54,0xff,0x2d,0x01,0x22,0x00,0x55,0xff,0x4e,0x01,0x22,0x00,0x56,0xff,0x66,0x01,0x22,0x00,0x58,0xff,0x4e,0x01,0x22,0x00,0x59,0xff,0x9a,0x01,0x22,0x00,0x5a,0xff,0x8f,0x01,0x22,0x00,0x5b,0xff,0x4c,0x01,0x22,0x00,0x5c,0xff,0x8f,0x01,0x22,0x00,0x5d,0xff,0x7f,0x01,0x22, +0x00,0x62,0xff,0x66,0x01,0x22,0x00,0x63,0xff,0x66,0x01,0x22,0x00,0x64,0xff,0xa4,0x01,0x22,0x00,0x67,0xff,0xa4,0x01,0x22,0x00,0x69,0xff,0x27,0x01,0x22,0x00,0x6a,0xff,0x27,0x01,0x22,0x00,0x6b,0xff,0x27,0x01,0x22,0x00,0x6c,0xff,0x27,0x01,0x22,0x00,0x6d,0xff,0x3f,0x01,0x22,0x00,0x6e,0xff,0x27,0x01,0x22,0x00,0x6f,0xff,0x1b, +0x01,0x22,0x00,0x70,0xff,0x2d,0x01,0x22,0x00,0x71,0xff,0x2d,0x01,0x22,0x00,0x72,0xff,0x2d,0x01,0x22,0x00,0x73,0xff,0x2d,0x01,0x22,0x00,0x74,0xff,0xe9,0x01,0x22,0x00,0x76,0x00,0x31,0x01,0x22,0x00,0x77,0x00,0x6f,0x01,0x22,0x00,0x78,0xff,0x4e,0x01,0x22,0x00,0x79,0xff,0x2d,0x01,0x22,0x00,0x7a,0xff,0x2d,0x01,0x22,0x00,0x7b, +0xff,0x2d,0x01,0x22,0x00,0x7c,0xff,0x2d,0x01,0x22,0x00,0x7d,0xff,0x2d,0x01,0x22,0x00,0x7e,0xff,0x4e,0x01,0x22,0x00,0x7f,0xff,0x4e,0x01,0x22,0x00,0x80,0xff,0x4e,0x01,0x22,0x00,0x81,0xff,0x4e,0x01,0x22,0x00,0x8d,0x00,0x52,0x01,0x22,0x00,0x91,0xff,0x0c,0x01,0x22,0x00,0x92,0xff,0xa4,0x01,0x22,0x00,0xa0,0xff,0x27,0x01,0x22, +0x00,0xaa,0xff,0x9a,0x01,0x22,0x00,0xab,0xff,0xcf,0x01,0x22,0x00,0xac,0xff,0x4c,0x01,0x22,0x00,0xad,0xff,0x66,0x01,0x22,0x00,0xae,0xff,0x66,0x01,0x22,0x00,0xaf,0xff,0xa4,0x01,0x22,0x00,0xb0,0xff,0xa4,0x01,0x22,0x00,0xb1,0xff,0x2d,0x01,0x22,0x00,0xb5,0x00,0x27,0x01,0x22,0x00,0xb7,0x00,0x27,0x01,0x22,0x00,0xba,0xff,0x8f, +0x01,0x22,0x00,0xbe,0xff,0x9a,0x01,0x22,0x00,0xbf,0xff,0xcf,0x01,0x22,0x00,0xc4,0xff,0x17,0x01,0x22,0x00,0xc5,0xff,0x17,0x01,0x22,0x00,0xc7,0xff,0x66,0x01,0x22,0x00,0xc9,0xff,0x66,0x01,0x22,0x00,0xd0,0xff,0xa4,0x01,0x22,0x00,0xd1,0xff,0xa4,0x01,0x22,0x00,0xd2,0xff,0xa4,0x01,0x22,0x00,0xe4,0xff,0x66,0x01,0x22,0x00,0xe6, +0xff,0x7f,0x01,0x22,0x00,0xea,0x00,0x1d,0x01,0x22,0x00,0xeb,0xff,0x8f,0x01,0x22,0x00,0xf7,0xff,0xa4,0x01,0x22,0x00,0xf8,0xff,0x2d,0x01,0x22,0x00,0xfb,0xff,0x66,0x01,0x22,0x00,0xfc,0xff,0xa4,0x01,0x22,0x00,0xfd,0xff,0x2d,0x01,0x22,0x00,0xfe,0xff,0xa4,0x01,0x22,0x00,0xff,0xff,0x2d,0x01,0x22,0x01,0x00,0xff,0x2d,0x01,0x22, +0x01,0x03,0xff,0x66,0x01,0x22,0x01,0x04,0xff,0x27,0x01,0x22,0x01,0x05,0xff,0x66,0x01,0x22,0x01,0x06,0xff,0x27,0x01,0x22,0x01,0x08,0xff,0x2d,0x01,0x22,0x01,0x0b,0xff,0x2d,0x01,0x22,0x01,0x0d,0xff,0x2d,0x01,0x22,0x01,0x15,0xff,0x4e,0x01,0x22,0x01,0x17,0xff,0x4e,0x01,0x22,0x01,0x18,0xff,0xa4,0x01,0x22,0x01,0x19,0xff,0x2d, +0x01,0x22,0x01,0x1b,0xff,0x4e,0x01,0x22,0x01,0x1d,0xff,0x4e,0x01,0x22,0x01,0x1f,0xff,0x66,0x01,0x22,0x01,0x20,0x00,0x27,0x01,0x22,0x01,0x22,0x00,0x27,0x01,0x22,0x01,0x25,0xff,0x4e,0x01,0x22,0x01,0x27,0xff,0x4e,0x01,0x22,0x01,0x29,0xff,0x7f,0x01,0x22,0x01,0x2b,0xff,0x7f,0x01,0x22,0x01,0x45,0xff,0x66,0x01,0x22,0x01,0x46, +0xff,0x27,0x01,0x22,0x01,0x47,0xff,0xa4,0x01,0x22,0x01,0x48,0xff,0x2d,0x01,0x22,0x01,0x4c,0xff,0x2d,0x01,0x22,0x01,0x4e,0xff,0x2d,0x01,0x22,0x01,0x50,0xff,0x2d,0x01,0x22,0x01,0x51,0xff,0xa4,0x01,0x22,0x01,0x52,0xff,0x2d,0x01,0x22,0x01,0x53,0xff,0xa4,0x01,0x22,0x01,0x54,0xff,0x2d,0x01,0x22,0x01,0x55,0xff,0xa4,0x01,0x22, +0x01,0x56,0xff,0x2d,0x01,0x22,0x01,0x5c,0x00,0x6f,0x01,0x22,0x01,0x5e,0x00,0x6f,0x01,0x22,0x01,0x60,0x00,0x6f,0x01,0x22,0x01,0x63,0xff,0x8f,0x01,0x22,0x01,0x6d,0xff,0x4e,0x01,0x22,0x01,0x6e,0xff,0xa4,0x01,0x22,0x01,0x6f,0xff,0x2d,0x01,0x22,0x01,0x70,0xff,0xa4,0x01,0x22,0x01,0x71,0xff,0x2d,0x01,0x22,0x01,0x73,0xff,0x4e, +0x01,0x22,0x01,0x75,0xff,0x66,0x01,0x22,0x01,0x76,0x00,0x27,0x01,0x22,0x01,0x79,0xff,0x4e,0x01,0x22,0x01,0x7b,0xff,0x4e,0x01,0x22,0x01,0x7d,0xff,0x4e,0x01,0x22,0x01,0x7f,0xff,0x4e,0x01,0x22,0x01,0x80,0x00,0x27,0x01,0x22,0x01,0x81,0xff,0x8f,0x01,0x22,0x01,0x82,0x00,0x1d,0x01,0x22,0x01,0x83,0xff,0x8f,0x01,0x22,0x01,0x85, +0xff,0x66,0x01,0x22,0x01,0x86,0xff,0x27,0x01,0x22,0x01,0x87,0xff,0x66,0x01,0x22,0x01,0x88,0xff,0x27,0x01,0x22,0x01,0x89,0xff,0xa4,0x01,0x22,0x01,0x8a,0xff,0x2d,0x01,0x22,0x01,0x8c,0x00,0x27,0x01,0x22,0x01,0x8d,0xff,0x8f,0x01,0x22,0x01,0x8e,0x00,0x27,0x01,0x22,0x01,0x8f,0xff,0x8f,0x01,0x22,0x01,0x90,0x00,0x27,0x01,0x22, +0x01,0x91,0xff,0x8f,0x01,0x22,0x01,0x92,0x00,0x1d,0x01,0x22,0x01,0x93,0xff,0x8f,0x01,0x22,0x02,0x3e,0xff,0x66,0x01,0x23,0x00,0x10,0xff,0x8f,0x01,0x23,0x00,0x22,0xff,0xcb,0x01,0x23,0x00,0x46,0xff,0xe5,0x01,0x23,0x00,0x47,0xff,0xe5,0x01,0x23,0x00,0x48,0xff,0xf0,0x01,0x23,0x00,0x4a,0xff,0xf0,0x01,0x23,0x00,0x52,0xff,0xf0, +0x01,0x23,0x00,0x54,0xff,0xf0,0x01,0x23,0x00,0x5b,0x00,0x1d,0x01,0x23,0x00,0x6f,0xff,0xe5,0x01,0x23,0x00,0x70,0xff,0xf0,0x01,0x23,0x00,0x71,0xff,0xf0,0x01,0x23,0x00,0x72,0xff,0xf0,0x01,0x23,0x00,0x73,0xff,0xf0,0x01,0x23,0x00,0x79,0xff,0xf0,0x01,0x23,0x00,0x7a,0xff,0xf0,0x01,0x23,0x00,0x7b,0xff,0xf0,0x01,0x23,0x00,0x7c, +0xff,0xf0,0x01,0x23,0x00,0x7d,0xff,0xf0,0x01,0x23,0x00,0xab,0x00,0x27,0x01,0x23,0x00,0xb1,0xff,0xf0,0x01,0x23,0x00,0xbf,0x00,0x27,0x01,0x23,0x00,0xf8,0xff,0xf0,0x01,0x23,0x00,0xfd,0xff,0xe5,0x01,0x23,0x00,0xff,0xff,0xe5,0x01,0x23,0x01,0x00,0xff,0xe5,0x01,0x23,0x01,0x08,0xff,0xe5,0x01,0x23,0x01,0x0b,0xff,0xf0,0x01,0x23, +0x01,0x0d,0xff,0xf0,0x01,0x23,0x01,0x19,0xff,0xf0,0x01,0x23,0x01,0x48,0xff,0xe5,0x01,0x23,0x01,0x4c,0xff,0xf0,0x01,0x23,0x01,0x4e,0xff,0xf0,0x01,0x23,0x01,0x50,0xff,0xf0,0x01,0x23,0x01,0x52,0xff,0xf0,0x01,0x23,0x01,0x54,0xff,0xf0,0x01,0x23,0x01,0x56,0xff,0xf0,0x01,0x23,0x01,0x6f,0xff,0xf0,0x01,0x23,0x01,0x71,0xff,0xf0, +0x01,0x23,0x01,0x8a,0xff,0xf0,0x01,0x24,0x00,0x24,0xff,0xd7,0x01,0x24,0x00,0x91,0xff,0x8b,0x01,0x24,0x00,0xc4,0xff,0xa6,0x01,0x24,0x00,0xc5,0xff,0xa6,0x01,0x24,0x01,0x03,0xff,0xd7,0x01,0x24,0x01,0x05,0xff,0xd7,0x01,0x24,0x01,0x45,0xff,0xd7,0x01,0x24,0x01,0x85,0xff,0xd7,0x01,0x24,0x01,0x87,0xff,0xd7,0x01,0x25,0x00,0x05, +0xff,0xbe,0x01,0x25,0x00,0x0a,0xff,0xbe,0x01,0x26,0x00,0x24,0xff,0xd7,0x01,0x26,0x00,0x91,0xff,0x8b,0x01,0x26,0x00,0xc4,0xff,0xa6,0x01,0x26,0x00,0xc5,0xff,0xa6,0x01,0x26,0x01,0x03,0xff,0xd7,0x01,0x26,0x01,0x05,0xff,0xd7,0x01,0x26,0x01,0x45,0xff,0xd7,0x01,0x26,0x01,0x85,0xff,0xd7,0x01,0x26,0x01,0x87,0xff,0xd7,0x01,0x27, +0x00,0x05,0xff,0xbe,0x01,0x27,0x00,0x0a,0xff,0xbe,0x01,0x28,0x00,0x2d,0x00,0x52,0x01,0x28,0x00,0x37,0x00,0x27,0x01,0x28,0x00,0x5c,0xff,0xcb,0x01,0x28,0x00,0x77,0x00,0x46,0x01,0x28,0x00,0xab,0x00,0x27,0x01,0x28,0x00,0xba,0xff,0xbe,0x01,0x28,0x00,0xbf,0x00,0x52,0x01,0x28,0x00,0xeb,0xff,0xcb,0x01,0x28,0x01,0x20,0x00,0x27, +0x01,0x28,0x01,0x22,0x00,0x27,0x01,0x28,0x01,0x5c,0x00,0x46,0x01,0x28,0x01,0x5e,0x00,0x46,0x01,0x28,0x01,0x60,0x00,0x46,0x01,0x28,0x01,0x63,0x00,0x52,0x01,0x28,0x01,0x76,0x00,0x27,0x01,0x28,0x01,0x83,0xff,0xcb,0x01,0x28,0x01,0x93,0xff,0xcb,0x01,0x2a,0x00,0x2d,0x00,0x52,0x01,0x2a,0x00,0x37,0x00,0x27,0x01,0x2a,0x00,0x5c, +0xff,0xcb,0x01,0x2a,0x00,0x77,0x00,0x46,0x01,0x2a,0x00,0xab,0x00,0x27,0x01,0x2a,0x00,0xba,0xff,0xbe,0x01,0x2a,0x00,0xbf,0x00,0x52,0x01,0x2a,0x00,0xeb,0xff,0xcb,0x01,0x2a,0x01,0x20,0x00,0x27,0x01,0x2a,0x01,0x22,0x00,0x27,0x01,0x2a,0x01,0x5c,0x00,0x46,0x01,0x2a,0x01,0x5e,0x00,0x46,0x01,0x2a,0x01,0x60,0x00,0x46,0x01,0x2a, +0x01,0x63,0x00,0x52,0x01,0x2a,0x01,0x76,0x00,0x27,0x01,0x2a,0x01,0x83,0xff,0xcb,0x01,0x2a,0x01,0x93,0xff,0xcb,0x01,0x2c,0x00,0x04,0x00,0x44,0x01,0x2c,0x00,0x0f,0xff,0x7d,0x01,0x2c,0x00,0x11,0xff,0x4c,0x01,0x2c,0x00,0x1d,0xff,0xe9,0x01,0x2c,0x00,0x1e,0xff,0xe9,0x01,0x2c,0x00,0x8d,0x00,0x52,0x01,0x2c,0x00,0xa9,0xff,0x6d, +0x01,0x2c,0x00,0xaa,0xff,0x98,0x01,0x2c,0x00,0xab,0xff,0xcd,0x01,0x2c,0x00,0xac,0xff,0x4c,0x01,0x2c,0x00,0xb5,0x00,0x29,0x01,0x2c,0x00,0xb7,0x00,0x29,0x01,0x2c,0x00,0xbe,0xff,0x98,0x01,0x2c,0x00,0xbf,0xff,0xcd,0x01,0x2c,0x00,0xc4,0xff,0x14,0x01,0x2c,0x00,0xc5,0xff,0x14,0x01,0x2c,0x01,0x2d,0xff,0xb6,0x01,0x2c,0x01,0x2e, +0xff,0xb6,0x01,0x2c,0x01,0x2f,0xff,0x2b,0x01,0x2c,0x01,0x30,0xff,0xb0,0x01,0x2c,0x01,0x31,0xff,0x2b,0x01,0x2c,0x01,0x32,0xff,0x2b,0x01,0x2c,0x01,0x33,0xff,0x8f,0x01,0x2c,0x01,0x34,0xff,0x2b,0x01,0x2c,0x01,0xa8,0x00,0x7b,0x01,0x2c,0x01,0xa9,0xff,0x6d,0x01,0x2c,0x01,0xac,0x00,0x0a,0x01,0x2c,0x01,0xb0,0xff,0x6d,0x01,0x2c, +0x01,0xb4,0xff,0xb6,0x01,0x2c,0x01,0xb8,0x00,0x2f,0x01,0x2c,0x01,0xb9,0x00,0x1d,0x01,0x2c,0x01,0xbc,0xff,0xcf,0x01,0x2c,0x01,0xbf,0xff,0x2b,0x01,0x2c,0x01,0xc0,0xff,0x2b,0x01,0x2c,0x01,0xc1,0xff,0x4e,0x01,0x2c,0x01,0xc2,0xff,0x8f,0x01,0x2c,0x01,0xc5,0xff,0xc1,0x01,0x2c,0x01,0xc7,0xff,0x4e,0x01,0x2c,0x01,0xc9,0xff,0x4e, +0x01,0x2c,0x01,0xca,0xff,0x4e,0x01,0x2c,0x01,0xcc,0xff,0x4e,0x01,0x2c,0x01,0xce,0xff,0xb0,0x01,0x2c,0x01,0xcf,0xff,0x2b,0x01,0x2c,0x01,0xd0,0xff,0x4e,0x01,0x2c,0x01,0xd1,0xff,0x2b,0x01,0x2c,0x01,0xd2,0xff,0x4e,0x01,0x2c,0x01,0xd3,0xff,0x7f,0x01,0x2c,0x01,0xd4,0xff,0x4e,0x01,0x2c,0x01,0xd5,0xff,0x2b,0x01,0x2c,0x01,0xd6, +0x00,0x52,0x01,0x2c,0x01,0xd7,0xff,0x4e,0x01,0x2c,0x01,0xd8,0xff,0x2b,0x01,0x2c,0x01,0xd9,0xff,0x4e,0x01,0x2c,0x01,0xda,0xff,0x2b,0x01,0x2c,0x02,0x37,0xff,0x8f,0x01,0x2d,0x00,0x0f,0xff,0xa2,0x01,0x2d,0x00,0xa9,0xff,0xcf,0x01,0x2d,0x00,0xc4,0xff,0x4a,0x01,0x2d,0x00,0xc5,0xff,0x96,0x01,0x2d,0x01,0xa9,0xff,0xe5,0x01,0x2d, +0x01,0xac,0xff,0xcd,0x01,0x2d,0x01,0xb0,0xff,0xe5,0x01,0x2d,0x01,0xb7,0xff,0xe3,0x01,0x2d,0x01,0xb8,0xff,0xa4,0x01,0x2d,0x01,0xb9,0xff,0xe7,0x01,0x2d,0x01,0xba,0xff,0xdb,0x01,0x2d,0x01,0xbe,0xff,0xe7,0x01,0x2d,0x01,0xcb,0xff,0xd7,0x01,0x2e,0x00,0x0f,0xff,0xa2,0x01,0x2e,0x00,0xa9,0xff,0xcf,0x01,0x2e,0x00,0xc4,0xff,0x4a, +0x01,0x2e,0x00,0xc5,0xff,0x96,0x01,0x2e,0x01,0xa9,0xff,0xcf,0x01,0x2e,0x01,0xac,0xff,0xcd,0x01,0x2e,0x01,0xb0,0xff,0xcf,0x01,0x2e,0x01,0xb7,0xff,0xe3,0x01,0x2e,0x01,0xb8,0xff,0xa4,0x01,0x2e,0x01,0xb9,0xff,0xe7,0x01,0x2e,0x01,0xba,0xff,0xd3,0x01,0x2e,0x01,0xbe,0xff,0xe7,0x01,0x2e,0x01,0xcb,0xff,0xc3,0x01,0x2f,0x01,0x2f, +0xff,0xee,0x01,0x2f,0x01,0x30,0xff,0xee,0x01,0x2f,0x01,0x32,0xff,0xee,0x01,0x2f,0x01,0x34,0xff,0xee,0x01,0x2f,0x01,0xbf,0xff,0xee,0x01,0x2f,0x01,0xcf,0xff,0xee,0x01,0x2f,0x01,0xd1,0xff,0xee,0x01,0x2f,0x01,0xd5,0xff,0xee,0x01,0x2f,0x01,0xd8,0xff,0xee,0x01,0x30,0x00,0x05,0xff,0x6f,0x01,0x30,0x00,0x0a,0xff,0x6f,0x01,0x30, +0x00,0xb4,0xff,0xb0,0x01,0x30,0x00,0xb5,0xff,0x7b,0x01,0x30,0x00,0xb6,0xff,0xbc,0x01,0x30,0x00,0xb7,0xff,0x7b,0x01,0x30,0x01,0x33,0xff,0xdb,0x01,0x30,0x01,0xc5,0xff,0xc1,0x01,0x30,0x01,0xd3,0xff,0xaa,0x01,0x30,0x02,0x37,0xff,0xdb,0x01,0x32,0x01,0x33,0x00,0x19,0x01,0x32,0x01,0xc5,0x00,0x31,0x01,0x32,0x01,0xcd,0x00,0x39, +0x01,0x32,0x01,0xd3,0x00,0x19,0x01,0x32,0x02,0x37,0x00,0x19,0x01,0x33,0x01,0x2f,0xff,0xdb,0x01,0x33,0x01,0x30,0xff,0xdb,0x01,0x33,0x01,0x32,0xff,0xdb,0x01,0x33,0x01,0x33,0x00,0x19,0x01,0x33,0x01,0x34,0xff,0xdb,0x01,0x33,0x01,0xbf,0xff,0xdb,0x01,0x33,0x01,0xc5,0x00,0x29,0x01,0x33,0x01,0xcd,0x00,0x25,0x01,0x33,0x01,0xcf, +0xff,0xdb,0x01,0x33,0x01,0xd0,0xff,0xcf,0x01,0x33,0x01,0xd3,0x00,0x19,0x01,0x33,0x01,0xd5,0xff,0xdb,0x01,0x33,0x01,0xd8,0xff,0xdb,0x01,0x33,0x01,0xda,0xff,0xdb,0x01,0x34,0x00,0x05,0xff,0x6f,0x01,0x34,0x00,0x0a,0xff,0x6f,0x01,0x34,0x00,0xb4,0xff,0xb0,0x01,0x34,0x00,0xb5,0xff,0x7b,0x01,0x34,0x00,0xb6,0xff,0xbc,0x01,0x34, +0x00,0xb7,0xff,0x7b,0x01,0x34,0x01,0x33,0xff,0xdb,0x01,0x34,0x01,0xc5,0xff,0xdb,0x01,0x34,0x01,0xd3,0xff,0xc3,0x01,0x34,0x02,0x37,0xff,0xdb,0x01,0x3a,0x00,0x4d,0x00,0x23,0x01,0x3a,0x01,0x64,0x00,0x23,0x01,0x3b,0x00,0x05,0xff,0x98,0x01,0x3b,0x00,0x0a,0xff,0x98,0x01,0x45,0x00,0x0d,0xff,0x7f,0x01,0x45,0x00,0x0f,0x00,0x44, +0x01,0x45,0x00,0x1e,0x00,0x44,0x01,0x45,0x00,0x26,0xff,0xe5,0x01,0x45,0x00,0x2a,0xff,0xe5,0x01,0x45,0x00,0x2d,0x00,0x5e,0x01,0x45,0x00,0x32,0xff,0xe5,0x01,0x45,0x00,0x37,0xff,0x6d,0x01,0x45,0x00,0x38,0xff,0xe5,0x01,0x45,0x00,0x39,0xff,0x8b,0x01,0x45,0x00,0x3a,0xff,0xb6,0x01,0x45,0x00,0x3c,0xff,0x64,0x01,0x45,0x00,0x3d, +0x00,0x3b,0x01,0x45,0x00,0x57,0xff,0xe5,0x01,0x45,0x00,0x59,0xff,0xd5,0x01,0x45,0x00,0x5a,0xff,0xe5,0x01,0x45,0x00,0x5c,0xff,0xdb,0x01,0x45,0x00,0x8d,0xff,0x9a,0x01,0x45,0x00,0xb4,0xff,0x66,0x01,0x45,0x00,0xb5,0xff,0x3f,0x01,0x45,0x00,0xb6,0xff,0x66,0x01,0x45,0x00,0xb7,0xff,0x3f,0x01,0x45,0x00,0xba,0xff,0xc1,0x01,0x45, +0x00,0xbb,0xff,0x64,0x01,0x45,0x00,0xe5,0x00,0x3b,0x01,0x45,0x00,0xea,0xff,0x64,0x01,0x45,0x00,0xeb,0xff,0xdb,0x01,0x45,0x00,0xf7,0xff,0xe5,0x01,0x45,0x00,0xfc,0xff,0xe5,0x01,0x45,0x00,0xfe,0xff,0xe5,0x01,0x45,0x01,0x18,0xff,0xe5,0x01,0x45,0x01,0x20,0xff,0x6d,0x01,0x45,0x01,0x21,0xff,0xe5,0x01,0x45,0x01,0x22,0xff,0x6d, +0x01,0x45,0x01,0x23,0xff,0xe5,0x01,0x45,0x01,0x24,0xff,0xe5,0x01,0x45,0x01,0x26,0xff,0xe5,0x01,0x45,0x01,0x28,0x00,0x3b,0x01,0x45,0x01,0x2a,0x00,0x3b,0x01,0x45,0x01,0x47,0xff,0xe5,0x01,0x45,0x01,0x51,0xff,0xe5,0x01,0x45,0x01,0x53,0xff,0xe5,0x01,0x45,0x01,0x55,0xff,0xe5,0x01,0x45,0x01,0x63,0x00,0x5e,0x01,0x45,0x01,0x6e, +0xff,0xe5,0x01,0x45,0x01,0x70,0xff,0xe5,0x01,0x45,0x01,0x76,0xff,0x6d,0x01,0x45,0x01,0x77,0xff,0xe5,0x01,0x45,0x01,0x78,0xff,0xe5,0x01,0x45,0x01,0x7a,0xff,0xe5,0x01,0x45,0x01,0x7c,0xff,0xe5,0x01,0x45,0x01,0x7e,0xff,0xe5,0x01,0x45,0x01,0x80,0xff,0xb6,0x01,0x45,0x01,0x81,0xff,0xe5,0x01,0x45,0x01,0x82,0xff,0x64,0x01,0x45, +0x01,0x83,0xff,0xdb,0x01,0x45,0x01,0x89,0xff,0xe5,0x01,0x45,0x01,0x8c,0xff,0xb6,0x01,0x45,0x01,0x8d,0xff,0xe5,0x01,0x45,0x01,0x8e,0xff,0xb6,0x01,0x45,0x01,0x8f,0xff,0xe5,0x01,0x45,0x01,0x90,0xff,0xb6,0x01,0x45,0x01,0x91,0xff,0xe5,0x01,0x45,0x01,0x92,0xff,0x64,0x01,0x45,0x01,0x93,0xff,0xdb,0x01,0x47,0x00,0x26,0xff,0xc9, +0x01,0x47,0x00,0x2a,0xff,0xc9,0x01,0x47,0x00,0x32,0xff,0xe5,0x01,0x47,0x00,0x34,0xff,0xc9,0x01,0x47,0x00,0x64,0xff,0xc9,0x01,0x47,0x00,0x67,0xff,0xc9,0x01,0x47,0x00,0x77,0x00,0x1d,0x01,0x47,0x00,0x92,0xff,0xc9,0x01,0x47,0x00,0xaa,0xff,0xcf,0x01,0x47,0x00,0xaf,0xff,0xc9,0x01,0x47,0x00,0xb0,0xff,0xc9,0x01,0x47,0x00,0xbe, +0xff,0xcf,0x01,0x47,0x00,0xd0,0xff,0xc9,0x01,0x47,0x00,0xd1,0xff,0xc9,0x01,0x47,0x00,0xd2,0xff,0xc9,0x01,0x47,0x00,0xf7,0xff,0xc9,0x01,0x47,0x00,0xfc,0xff,0xc9,0x01,0x47,0x00,0xfe,0xff,0xc9,0x01,0x47,0x01,0x18,0xff,0xe5,0x01,0x47,0x01,0x47,0xff,0xc9,0x01,0x47,0x01,0x51,0xff,0xc9,0x01,0x47,0x01,0x53,0xff,0xc9,0x01,0x47, +0x01,0x55,0xff,0xc9,0x01,0x47,0x01,0x5c,0x00,0x1d,0x01,0x47,0x01,0x5e,0x00,0x1d,0x01,0x47,0x01,0x60,0x00,0x1d,0x01,0x47,0x01,0x6e,0xff,0xe5,0x01,0x47,0x01,0x70,0xff,0xe5,0x01,0x47,0x01,0x89,0xff,0xe5,0x01,0x48,0x00,0x2d,0x00,0x46,0x01,0x48,0x00,0x37,0xff,0x9a,0x01,0x48,0x00,0x3c,0xff,0xb4,0x01,0x48,0x00,0xea,0xff,0xb4, +0x01,0x48,0x01,0x20,0xff,0x9a,0x01,0x48,0x01,0x22,0xff,0x9a,0x01,0x48,0x01,0x63,0x00,0x46,0x01,0x48,0x01,0x76,0xff,0x9a,0x01,0x48,0x01,0x82,0xff,0xb4,0x01,0x48,0x01,0x92,0xff,0xb4,0x01,0x4b,0x00,0x24,0x00,0x0a,0x01,0x4b,0x00,0x2d,0x00,0x44,0x01,0x4b,0x00,0x37,0x00,0x04,0x01,0x4b,0x00,0x3a,0x00,0x1d,0x01,0x4b,0x00,0x3b, +0x00,0x08,0x01,0x4b,0x00,0x62,0x00,0x0a,0x01,0x4b,0x00,0x63,0x00,0x0a,0x01,0x4b,0x00,0x77,0x00,0x12,0x01,0x4b,0x00,0xad,0x00,0x0a,0x01,0x4b,0x00,0xae,0x00,0x0a,0x01,0x4b,0x00,0xc7,0x00,0x0a,0x01,0x4b,0x00,0xc9,0x00,0x0a,0x01,0x4b,0x01,0x03,0x00,0x0a,0x01,0x4b,0x01,0x05,0x00,0x0a,0x01,0x4b,0x01,0x20,0x00,0x04,0x01,0x4b, +0x01,0x22,0x00,0x04,0x01,0x4b,0x01,0x45,0x00,0x0a,0x01,0x4b,0x01,0x5c,0x00,0x12,0x01,0x4b,0x01,0x5e,0x00,0x12,0x01,0x4b,0x01,0x60,0x00,0x12,0x01,0x4b,0x01,0x63,0x00,0x44,0x01,0x4b,0x01,0x76,0x00,0x04,0x01,0x4b,0x01,0x80,0x00,0x1d,0x01,0x4b,0x01,0x85,0x00,0x0a,0x01,0x4b,0x01,0x87,0x00,0x0a,0x01,0x4b,0x01,0x8c,0x00,0x1d, +0x01,0x4b,0x01,0x8e,0x00,0x1d,0x01,0x4b,0x01,0x90,0x00,0x1d,0x01,0x4c,0x00,0x05,0xff,0x98,0x01,0x4c,0x00,0x0a,0xff,0x98,0x01,0x4d,0x00,0x24,0x00,0x0a,0x01,0x4d,0x00,0x2d,0x00,0x44,0x01,0x4d,0x00,0x37,0x00,0x04,0x01,0x4d,0x00,0x3a,0x00,0x1d,0x01,0x4d,0x00,0x3b,0x00,0x08,0x01,0x4d,0x00,0x62,0x00,0x0a,0x01,0x4d,0x00,0x63, +0x00,0x0a,0x01,0x4d,0x00,0x77,0x00,0x12,0x01,0x4d,0x00,0xad,0x00,0x0a,0x01,0x4d,0x00,0xae,0x00,0x0a,0x01,0x4d,0x00,0xc7,0x00,0x0a,0x01,0x4d,0x00,0xc9,0x00,0x0a,0x01,0x4d,0x01,0x03,0x00,0x0a,0x01,0x4d,0x01,0x05,0x00,0x0a,0x01,0x4d,0x01,0x20,0x00,0x04,0x01,0x4d,0x01,0x22,0x00,0x04,0x01,0x4d,0x01,0x45,0x00,0x0a,0x01,0x4d, +0x01,0x5c,0x00,0x12,0x01,0x4d,0x01,0x5e,0x00,0x12,0x01,0x4d,0x01,0x60,0x00,0x12,0x01,0x4d,0x01,0x63,0x00,0x44,0x01,0x4d,0x01,0x76,0x00,0x04,0x01,0x4d,0x01,0x80,0x00,0x1d,0x01,0x4d,0x01,0x85,0x00,0x0a,0x01,0x4d,0x01,0x87,0x00,0x0a,0x01,0x4d,0x01,0x8c,0x00,0x1d,0x01,0x4d,0x01,0x8e,0x00,0x1d,0x01,0x4d,0x01,0x90,0x00,0x1d, +0x01,0x4e,0x00,0x05,0xff,0x98,0x01,0x4e,0x00,0x0a,0xff,0x98,0x01,0x4f,0x00,0x24,0x00,0x0a,0x01,0x4f,0x00,0x2d,0x00,0x44,0x01,0x4f,0x00,0x37,0x00,0x04,0x01,0x4f,0x00,0x3a,0x00,0x1d,0x01,0x4f,0x00,0x3b,0x00,0x08,0x01,0x4f,0x00,0x62,0x00,0x0a,0x01,0x4f,0x00,0x63,0x00,0x0a,0x01,0x4f,0x00,0x77,0x00,0x12,0x01,0x4f,0x00,0xad, +0x00,0x0a,0x01,0x4f,0x00,0xae,0x00,0x0a,0x01,0x4f,0x00,0xc7,0x00,0x0a,0x01,0x4f,0x00,0xc9,0x00,0x0a,0x01,0x4f,0x01,0x03,0x00,0x0a,0x01,0x4f,0x01,0x05,0x00,0x0a,0x01,0x4f,0x01,0x20,0x00,0x04,0x01,0x4f,0x01,0x22,0x00,0x04,0x01,0x4f,0x01,0x45,0x00,0x0a,0x01,0x4f,0x01,0x5c,0x00,0x12,0x01,0x4f,0x01,0x5e,0x00,0x12,0x01,0x4f, +0x01,0x60,0x00,0x12,0x01,0x4f,0x01,0x63,0x00,0x44,0x01,0x4f,0x01,0x76,0x00,0x04,0x01,0x4f,0x01,0x80,0x00,0x1d,0x01,0x4f,0x01,0x85,0x00,0x0a,0x01,0x4f,0x01,0x87,0x00,0x0a,0x01,0x4f,0x01,0x8c,0x00,0x1d,0x01,0x4f,0x01,0x8e,0x00,0x1d,0x01,0x4f,0x01,0x90,0x00,0x1d,0x01,0x50,0x00,0x05,0xff,0x98,0x01,0x50,0x00,0x0a,0xff,0x98, +0x01,0x51,0x00,0x37,0xff,0xcf,0x01,0x51,0x00,0x39,0xff,0xe5,0x01,0x51,0x00,0x5c,0xff,0xe5,0x01,0x51,0x00,0xba,0xff,0xe5,0x01,0x51,0x00,0xeb,0xff,0xe5,0x01,0x51,0x01,0x20,0xff,0xcf,0x01,0x51,0x01,0x22,0xff,0xcf,0x01,0x51,0x01,0x76,0xff,0xcf,0x01,0x51,0x01,0x83,0xff,0xe5,0x01,0x51,0x01,0x93,0xff,0xe5,0x01,0x52,0x00,0x4d, +0x00,0x2f,0x01,0x52,0x01,0x64,0x00,0x2f,0x01,0x53,0x00,0x37,0xff,0xcf,0x01,0x53,0x00,0x39,0xff,0xe5,0x01,0x53,0x00,0x5c,0xff,0xe5,0x01,0x53,0x00,0xba,0xff,0xe5,0x01,0x53,0x00,0xeb,0xff,0xe5,0x01,0x53,0x01,0x20,0xff,0xcf,0x01,0x53,0x01,0x22,0xff,0xcf,0x01,0x53,0x01,0x76,0xff,0xcf,0x01,0x53,0x01,0x83,0xff,0xe5,0x01,0x53, +0x01,0x93,0xff,0xe5,0x01,0x54,0x00,0x4d,0x00,0x2f,0x01,0x54,0x01,0x64,0x00,0x2f,0x01,0x55,0x00,0x37,0xff,0xcf,0x01,0x55,0x00,0x39,0xff,0xe5,0x01,0x55,0x00,0x5c,0xff,0xe5,0x01,0x55,0x00,0xba,0xff,0xe5,0x01,0x55,0x00,0xeb,0xff,0xe5,0x01,0x55,0x01,0x20,0xff,0xcf,0x01,0x55,0x01,0x22,0xff,0xcf,0x01,0x55,0x01,0x76,0xff,0xcf, +0x01,0x55,0x01,0x83,0xff,0xe5,0x01,0x55,0x01,0x93,0xff,0xe5,0x01,0x56,0x00,0x4d,0x00,0x2f,0x01,0x56,0x01,0x64,0x00,0x2f,0x01,0x63,0x00,0x0f,0xff,0x9a,0x01,0x63,0x00,0x11,0xff,0x9a,0x01,0x63,0x00,0x24,0xff,0xdb,0x01,0x63,0x00,0x2d,0xff,0xbe,0x01,0x63,0x00,0x44,0xff,0xe5,0x01,0x63,0x00,0x62,0xff,0xdb,0x01,0x63,0x00,0x63, +0xff,0xdb,0x01,0x63,0x00,0x69,0xff,0xe5,0x01,0x63,0x00,0x6a,0xff,0xe5,0x01,0x63,0x00,0x6b,0xff,0xe5,0x01,0x63,0x00,0x6c,0xff,0xe5,0x01,0x63,0x00,0x6d,0xff,0xe5,0x01,0x63,0x00,0x6e,0xff,0xe5,0x01,0x63,0x00,0x91,0xff,0x98,0x01,0x63,0x00,0xa0,0xff,0xe5,0x01,0x63,0x00,0xac,0xff,0x9a,0x01,0x63,0x00,0xad,0xff,0xdb,0x01,0x63, +0x00,0xae,0xff,0xdb,0x01,0x63,0x00,0xc4,0xff,0x66,0x01,0x63,0x00,0xc5,0xff,0x9a,0x01,0x63,0x00,0xc7,0xff,0xdb,0x01,0x63,0x00,0xc9,0xff,0xdb,0x01,0x63,0x01,0x03,0xff,0xdb,0x01,0x63,0x01,0x04,0xff,0xe5,0x01,0x63,0x01,0x05,0xff,0xdb,0x01,0x63,0x01,0x06,0xff,0xe5,0x01,0x63,0x01,0x45,0xff,0xdb,0x01,0x63,0x01,0x46,0xff,0xe5, +0x01,0x63,0x01,0x63,0xff,0xbe,0x01,0x63,0x01,0x85,0xff,0xdb,0x01,0x63,0x01,0x86,0xff,0xe5,0x01,0x63,0x01,0x87,0xff,0xdb,0x01,0x63,0x01,0x88,0xff,0xe5,0x01,0x64,0x00,0x4d,0x00,0x23,0x01,0x64,0x01,0x64,0x00,0x23,0x01,0x65,0x00,0x0f,0x00,0x27,0x01,0x65,0x00,0x1e,0x00,0x27,0x01,0x65,0x00,0x26,0xff,0xa6,0x01,0x65,0x00,0x2a, +0xff,0xa6,0x01,0x65,0x00,0x2d,0x00,0x5a,0x01,0x65,0x00,0x32,0xff,0xa6,0x01,0x65,0x00,0x34,0xff,0xa6,0x01,0x65,0x00,0x3b,0x00,0x25,0x01,0x65,0x00,0x3d,0x00,0x27,0x01,0x65,0x00,0x46,0xff,0xe5,0x01,0x65,0x00,0x47,0xff,0xe5,0x01,0x65,0x00,0x48,0xff,0xe5,0x01,0x65,0x00,0x4a,0xff,0xe5,0x01,0x65,0x00,0x52,0xff,0xe5,0x01,0x65, +0x00,0x54,0xff,0xe5,0x01,0x65,0x00,0x57,0xff,0xd1,0x01,0x65,0x00,0x59,0xff,0xb6,0x01,0x65,0x00,0x5a,0xff,0xcb,0x01,0x65,0x00,0x5c,0xff,0xa4,0x01,0x65,0x00,0x64,0xff,0x9a,0x01,0x65,0x00,0x67,0xff,0xa6,0x01,0x65,0x00,0x6f,0xff,0xe5,0x01,0x65,0x00,0x70,0xff,0xe5,0x01,0x65,0x00,0x71,0xff,0xe5,0x01,0x65,0x00,0x72,0xff,0xe5, +0x01,0x65,0x00,0x73,0xff,0xe5,0x01,0x65,0x00,0x74,0xff,0xcf,0x01,0x65,0x00,0x77,0x00,0x27,0x01,0x65,0x00,0x79,0xff,0xe5,0x01,0x65,0x00,0x7a,0xff,0xe5,0x01,0x65,0x00,0x7b,0xff,0xe5,0x01,0x65,0x00,0x7c,0xff,0xe5,0x01,0x65,0x00,0x7d,0xff,0xe5,0x01,0x65,0x00,0x92,0xff,0xa6,0x01,0x65,0x00,0xaf,0xff,0xa6,0x01,0x65,0x00,0xb0, +0xff,0xa6,0x01,0x65,0x00,0xb1,0xff,0xe5,0x01,0x65,0x00,0xba,0xff,0xa4,0x01,0x65,0x00,0xc4,0x00,0x44,0x01,0x65,0x00,0xc5,0x00,0x44,0x01,0x65,0x00,0xd0,0xff,0xa6,0x01,0x65,0x00,0xd1,0xff,0xa6,0x01,0x65,0x00,0xd2,0xff,0xa6,0x01,0x65,0x00,0xe5,0x00,0x27,0x01,0x65,0x00,0xeb,0xff,0xa4,0x01,0x65,0x00,0xf7,0xff,0xa6,0x01,0x65, +0x00,0xf8,0xff,0xe5,0x01,0x65,0x00,0xfc,0xff,0xa6,0x01,0x65,0x00,0xfd,0xff,0xe5,0x01,0x65,0x00,0xfe,0xff,0xa6,0x01,0x65,0x00,0xff,0xff,0xe5,0x01,0x65,0x01,0x00,0xff,0xe5,0x01,0x65,0x01,0x08,0xff,0xe5,0x01,0x65,0x01,0x0b,0xff,0xe5,0x01,0x65,0x01,0x0d,0xff,0xe5,0x01,0x65,0x01,0x18,0xff,0xa6,0x01,0x65,0x01,0x19,0xff,0xe5, +0x01,0x65,0x01,0x21,0xff,0xd1,0x01,0x65,0x01,0x23,0xff,0xd1,0x01,0x65,0x01,0x28,0x00,0x27,0x01,0x65,0x01,0x2a,0x00,0x27,0x01,0x65,0x01,0x47,0xff,0xa6,0x01,0x65,0x01,0x48,0xff,0xe5,0x01,0x65,0x01,0x4c,0xff,0xe5,0x01,0x65,0x01,0x4e,0xff,0xe5,0x01,0x65,0x01,0x50,0xff,0xe5,0x01,0x65,0x01,0x51,0xff,0xa6,0x01,0x65,0x01,0x52, +0xff,0xe5,0x01,0x65,0x01,0x53,0xff,0xa6,0x01,0x65,0x01,0x54,0xff,0xe5,0x01,0x65,0x01,0x55,0xff,0xa6,0x01,0x65,0x01,0x56,0xff,0xe5,0x01,0x65,0x01,0x5c,0x00,0x27,0x01,0x65,0x01,0x5e,0x00,0x27,0x01,0x65,0x01,0x60,0x00,0x27,0x01,0x65,0x01,0x63,0x00,0x5a,0x01,0x65,0x01,0x6e,0xff,0xa6,0x01,0x65,0x01,0x6f,0xff,0xe5,0x01,0x65, +0x01,0x70,0xff,0xa6,0x01,0x65,0x01,0x71,0xff,0xe5,0x01,0x65,0x01,0x77,0xff,0xd1,0x01,0x65,0x01,0x81,0xff,0xcb,0x01,0x65,0x01,0x83,0xff,0xa4,0x01,0x65,0x01,0x89,0xff,0xa6,0x01,0x65,0x01,0x8a,0xff,0xe5,0x01,0x65,0x01,0x8d,0xff,0xcb,0x01,0x65,0x01,0x8f,0xff,0xcb,0x01,0x65,0x01,0x91,0xff,0xcb,0x01,0x65,0x01,0x93,0xff,0xa4, +0x01,0x66,0x00,0x0f,0x00,0x52,0x01,0x66,0x00,0x10,0xff,0x75,0x01,0x66,0x00,0x11,0x00,0x52,0x01,0x66,0x00,0x1d,0x00,0x52,0x01,0x66,0x00,0x1e,0x00,0x52,0x01,0x66,0x00,0x46,0xff,0xd7,0x01,0x66,0x00,0x47,0xff,0xe5,0x01,0x66,0x00,0x48,0xff,0xd7,0x01,0x66,0x00,0x4a,0xff,0xd7,0x01,0x66,0x00,0x52,0xff,0xd7,0x01,0x66,0x00,0x54, +0xff,0xe5,0x01,0x66,0x00,0x57,0xff,0xf0,0x01,0x66,0x00,0x6f,0xff,0xe5,0x01,0x66,0x00,0x70,0xff,0xd7,0x01,0x66,0x00,0x71,0xff,0xd7,0x01,0x66,0x00,0x72,0xff,0xd7,0x01,0x66,0x00,0x73,0xff,0xd7,0x01,0x66,0x00,0x79,0xff,0xd7,0x01,0x66,0x00,0x7a,0xff,0xd7,0x01,0x66,0x00,0x7b,0xff,0xd7,0x01,0x66,0x00,0x7c,0xff,0xd7,0x01,0x66, +0x00,0x7d,0xff,0xd7,0x01,0x66,0x00,0xac,0x00,0x52,0x01,0x66,0x00,0xb1,0xff,0xd7,0x01,0x66,0x00,0xf8,0xff,0xd7,0x01,0x66,0x00,0xfd,0xff,0xd7,0x01,0x66,0x00,0xff,0xff,0xd7,0x01,0x66,0x01,0x00,0xff,0xe5,0x01,0x66,0x01,0x08,0xff,0xe5,0x01,0x66,0x01,0x0b,0xff,0xd7,0x01,0x66,0x01,0x0d,0xff,0xd7,0x01,0x66,0x01,0x19,0xff,0xd7, +0x01,0x66,0x01,0x21,0xff,0xf0,0x01,0x66,0x01,0x23,0xff,0xf0,0x01,0x66,0x01,0x48,0xff,0xd7,0x01,0x66,0x01,0x4c,0xff,0xd7,0x01,0x66,0x01,0x4e,0xff,0xd7,0x01,0x66,0x01,0x50,0xff,0xd7,0x01,0x66,0x01,0x52,0xff,0xd7,0x01,0x66,0x01,0x54,0xff,0xd7,0x01,0x66,0x01,0x56,0xff,0xd7,0x01,0x66,0x01,0x6f,0xff,0xd7,0x01,0x66,0x01,0x71, +0xff,0xd7,0x01,0x66,0x01,0x77,0xff,0xf0,0x01,0x66,0x01,0x8a,0xff,0xd7,0x01,0x67,0x00,0x0f,0x00,0x52,0x01,0x67,0x00,0x10,0xff,0x75,0x01,0x67,0x00,0x11,0x00,0x52,0x01,0x67,0x00,0x1d,0x00,0x52,0x01,0x67,0x00,0x1e,0x00,0x52,0x01,0x67,0x00,0x46,0xff,0xd7,0x01,0x67,0x00,0x47,0xff,0xe5,0x01,0x67,0x00,0x48,0xff,0xd7,0x01,0x67, +0x00,0x4a,0xff,0xd7,0x01,0x67,0x00,0x52,0xff,0xd7,0x01,0x67,0x00,0x54,0xff,0xe5,0x01,0x67,0x00,0x57,0xff,0xf0,0x01,0x67,0x00,0x6f,0xff,0xe5,0x01,0x67,0x00,0x70,0xff,0xd7,0x01,0x67,0x00,0x71,0xff,0xd7,0x01,0x67,0x00,0x72,0xff,0xd7,0x01,0x67,0x00,0x73,0xff,0xd7,0x01,0x67,0x00,0x79,0xff,0xd7,0x01,0x67,0x00,0x7a,0xff,0xd7, +0x01,0x67,0x00,0x7b,0xff,0xd7,0x01,0x67,0x00,0x7c,0xff,0xd7,0x01,0x67,0x00,0x7d,0xff,0xd7,0x01,0x67,0x00,0xac,0x00,0x52,0x01,0x67,0x00,0xb1,0xff,0xd7,0x01,0x67,0x00,0xf8,0xff,0xd7,0x01,0x67,0x00,0xfd,0xff,0xd7,0x01,0x67,0x00,0xff,0xff,0xd7,0x01,0x67,0x01,0x00,0xff,0xe5,0x01,0x67,0x01,0x08,0xff,0xe5,0x01,0x67,0x01,0x0b, +0xff,0xd7,0x01,0x67,0x01,0x0d,0xff,0xd7,0x01,0x67,0x01,0x19,0xff,0xd7,0x01,0x67,0x01,0x21,0xff,0xf0,0x01,0x67,0x01,0x23,0xff,0xf0,0x01,0x67,0x01,0x48,0xff,0xd7,0x01,0x67,0x01,0x4c,0xff,0xd7,0x01,0x67,0x01,0x4e,0xff,0xd7,0x01,0x67,0x01,0x50,0xff,0xd7,0x01,0x67,0x01,0x52,0xff,0xd7,0x01,0x67,0x01,0x54,0xff,0xd7,0x01,0x67, +0x01,0x56,0xff,0xd7,0x01,0x67,0x01,0x6f,0xff,0xd7,0x01,0x67,0x01,0x71,0xff,0xd7,0x01,0x67,0x01,0x77,0xff,0xf0,0x01,0x67,0x01,0x8a,0xff,0xd7,0x01,0x68,0x00,0x0d,0xff,0x31,0x01,0x68,0x00,0x22,0xff,0x9a,0x01,0x68,0x00,0x24,0x00,0x3b,0x01,0x68,0x00,0x26,0xff,0xbe,0x01,0x68,0x00,0x2a,0xff,0xbe,0x01,0x68,0x00,0x2d,0x00,0x64, +0x01,0x68,0x00,0x32,0xff,0xba,0x01,0x68,0x00,0x34,0xff,0xba,0x01,0x68,0x00,0x37,0xff,0x8f,0x01,0x68,0x00,0x38,0xff,0xe3,0x01,0x68,0x00,0x39,0xff,0x8b,0x01,0x68,0x00,0x3a,0xff,0xcf,0x01,0x68,0x00,0x3c,0xff,0x7f,0x01,0x68,0x00,0x3d,0x00,0x3b,0x01,0x68,0x00,0x57,0xff,0xe5,0x01,0x68,0x00,0x59,0xff,0x9a,0x01,0x68,0x00,0x5a, +0xff,0xbe,0x01,0x68,0x00,0x5c,0xff,0xb4,0x01,0x68,0x00,0x64,0xff,0xbe,0x01,0x68,0x00,0x67,0xff,0xba,0x01,0x68,0x00,0x68,0xff,0xe3,0x01,0x68,0x00,0x8d,0xff,0x9a,0x01,0x68,0x00,0x92,0xff,0xba,0x01,0x68,0x00,0xaf,0xff,0xba,0x01,0x68,0x00,0xb0,0xff,0xba,0x01,0x68,0x00,0xb4,0xff,0x73,0x01,0x68,0x00,0xb5,0xff,0x8b,0x01,0x68, +0x00,0xb6,0xff,0x73,0x01,0x68,0x00,0xb7,0xff,0x7f,0x01,0x68,0x00,0xba,0xff,0xb4,0x01,0x68,0x00,0xbb,0xff,0x9a,0x01,0x68,0x00,0xc4,0x00,0x44,0x01,0x68,0x00,0xc5,0x00,0x44,0x01,0x68,0x00,0xd0,0xff,0xba,0x01,0x68,0x00,0xd1,0xff,0xba,0x01,0x68,0x00,0xd2,0xff,0xba,0x01,0x68,0x00,0xd3,0xff,0xe3,0x01,0x68,0x00,0xd4,0xff,0xe3, +0x01,0x68,0x00,0xd5,0xff,0xe3,0x01,0x68,0x00,0xe5,0x00,0x3b,0x01,0x68,0x00,0xea,0xff,0x7f,0x01,0x68,0x00,0xeb,0xff,0xb4,0x01,0x68,0x00,0xf7,0xff,0xbe,0x01,0x68,0x00,0xfc,0xff,0xbe,0x01,0x68,0x00,0xfe,0xff,0xbe,0x01,0x68,0x01,0x03,0x00,0x3b,0x01,0x68,0x01,0x05,0x00,0x3b,0x01,0x68,0x01,0x18,0xff,0xba,0x01,0x68,0x01,0x20, +0xff,0x8f,0x01,0x68,0x01,0x21,0xff,0xe5,0x01,0x68,0x01,0x22,0xff,0x8f,0x01,0x68,0x01,0x23,0xff,0xe5,0x01,0x68,0x01,0x24,0xff,0xe3,0x01,0x68,0x01,0x26,0xff,0xe3,0x01,0x68,0x01,0x28,0x00,0x3b,0x01,0x68,0x01,0x2a,0x00,0x3b,0x01,0x68,0x01,0x45,0x00,0x3b,0x01,0x68,0x01,0x47,0xff,0xbe,0x01,0x68,0x01,0x51,0xff,0xbe,0x01,0x68, +0x01,0x53,0xff,0xbe,0x01,0x68,0x01,0x55,0xff,0xbe,0x01,0x68,0x01,0x63,0x00,0x64,0x01,0x68,0x01,0x6e,0xff,0xba,0x01,0x68,0x01,0x70,0xff,0xba,0x01,0x68,0x01,0x76,0xff,0x8f,0x01,0x68,0x01,0x77,0xff,0xe5,0x01,0x68,0x01,0x78,0xff,0xe3,0x01,0x68,0x01,0x7a,0xff,0xe3,0x01,0x68,0x01,0x7c,0xff,0xe3,0x01,0x68,0x01,0x7e,0xff,0xe3, +0x01,0x68,0x01,0x80,0xff,0xcf,0x01,0x68,0x01,0x81,0xff,0xbe,0x01,0x68,0x01,0x82,0xff,0x7f,0x01,0x68,0x01,0x83,0xff,0xb4,0x01,0x68,0x01,0x85,0x00,0x3b,0x01,0x68,0x01,0x87,0x00,0x3b,0x01,0x68,0x01,0x89,0xff,0xba,0x01,0x68,0x01,0x8c,0xff,0xcf,0x01,0x68,0x01,0x8d,0xff,0xbe,0x01,0x68,0x01,0x8e,0xff,0xcf,0x01,0x68,0x01,0x8f, +0xff,0xbe,0x01,0x68,0x01,0x90,0xff,0xcf,0x01,0x68,0x01,0x91,0xff,0xbe,0x01,0x68,0x01,0x92,0xff,0x7f,0x01,0x68,0x01,0x93,0xff,0xb4,0x01,0x6c,0x00,0x0f,0xff,0x9a,0x01,0x6c,0x00,0x11,0xff,0x9a,0x01,0x6c,0x00,0x24,0xff,0xdb,0x01,0x6c,0x00,0x2d,0xff,0xbe,0x01,0x6c,0x00,0x44,0xff,0xe5,0x01,0x6c,0x00,0x62,0xff,0xdb,0x01,0x6c, +0x00,0x63,0xff,0xdb,0x01,0x6c,0x00,0x69,0xff,0xe5,0x01,0x6c,0x00,0x6a,0xff,0xe5,0x01,0x6c,0x00,0x6b,0xff,0xe5,0x01,0x6c,0x00,0x6c,0xff,0xe5,0x01,0x6c,0x00,0x6d,0xff,0xe5,0x01,0x6c,0x00,0x6e,0xff,0xe5,0x01,0x6c,0x00,0x91,0xff,0x98,0x01,0x6c,0x00,0xa0,0xff,0xe5,0x01,0x6c,0x00,0xac,0xff,0x9a,0x01,0x6c,0x00,0xad,0xff,0xdb, +0x01,0x6c,0x00,0xae,0xff,0xdb,0x01,0x6c,0x00,0xc4,0xff,0x66,0x01,0x6c,0x00,0xc5,0xff,0x9a,0x01,0x6c,0x00,0xc7,0xff,0xdb,0x01,0x6c,0x00,0xc9,0xff,0xdb,0x01,0x6c,0x01,0x03,0xff,0xdb,0x01,0x6c,0x01,0x04,0xff,0xe5,0x01,0x6c,0x01,0x05,0xff,0xdb,0x01,0x6c,0x01,0x06,0xff,0xe5,0x01,0x6c,0x01,0x45,0xff,0xdb,0x01,0x6c,0x01,0x46, +0xff,0xe5,0x01,0x6c,0x01,0x63,0xff,0xbe,0x01,0x6c,0x01,0x85,0xff,0xdb,0x01,0x6c,0x01,0x86,0xff,0xe5,0x01,0x6c,0x01,0x87,0xff,0xdb,0x01,0x6c,0x01,0x88,0xff,0xe5,0x01,0x6d,0x00,0x4d,0x00,0x23,0x01,0x6d,0x01,0x64,0x00,0x23,0x01,0x6e,0x00,0x0f,0xff,0xa4,0x01,0x6e,0x00,0x11,0xff,0xa4,0x01,0x6e,0x00,0x24,0xff,0xe5,0x01,0x6e, +0x00,0x2d,0xff,0xf6,0x01,0x6e,0x00,0x37,0xff,0xa4,0x01,0x6e,0x00,0x3b,0xff,0xdb,0x01,0x6e,0x00,0x3c,0xff,0xe7,0x01,0x6e,0x00,0x3d,0xff,0xcf,0x01,0x6e,0x00,0x62,0xff,0xe5,0x01,0x6e,0x00,0x63,0xff,0xe5,0x01,0x6e,0x00,0xac,0xff,0xa4,0x01,0x6e,0x00,0xad,0xff,0xe5,0x01,0x6e,0x00,0xae,0xff,0xe5,0x01,0x6e,0x00,0xbb,0xff,0xf6, +0x01,0x6e,0x00,0xc4,0xff,0x4c,0x01,0x6e,0x00,0xc5,0xff,0x98,0x01,0x6e,0x00,0xc7,0xff,0xe5,0x01,0x6e,0x00,0xc9,0xff,0xe5,0x01,0x6e,0x00,0xe5,0xff,0xcf,0x01,0x6e,0x00,0xea,0xff,0xe7,0x01,0x6e,0x01,0x03,0xff,0xe5,0x01,0x6e,0x01,0x05,0xff,0xe5,0x01,0x6e,0x01,0x20,0xff,0xa4,0x01,0x6e,0x01,0x22,0xff,0xa4,0x01,0x6e,0x01,0x28, +0xff,0xcf,0x01,0x6e,0x01,0x2a,0xff,0xcf,0x01,0x6e,0x01,0x45,0xff,0xe5,0x01,0x6e,0x01,0x63,0xff,0xf6,0x01,0x6e,0x01,0x76,0xff,0xa4,0x01,0x6e,0x01,0x82,0xff,0xe7,0x01,0x6e,0x01,0x85,0xff,0xe5,0x01,0x6e,0x01,0x87,0xff,0xe5,0x01,0x6e,0x01,0x92,0xff,0xe7,0x01,0x6f,0x00,0x05,0xff,0x6f,0x01,0x6f,0x00,0x0a,0xff,0x6f,0x01,0x6f, +0x00,0x44,0xff,0xe5,0x01,0x6f,0x00,0x49,0xff,0xdb,0x01,0x6f,0x00,0x5b,0xff,0xe7,0x01,0x6f,0x00,0x69,0xff,0xe5,0x01,0x6f,0x00,0x6a,0xff,0xe5,0x01,0x6f,0x00,0x6b,0xff,0xe5,0x01,0x6f,0x00,0x6c,0xff,0xe5,0x01,0x6f,0x00,0x6d,0xff,0xe5,0x01,0x6f,0x00,0x6e,0xff,0xe5,0x01,0x6f,0x00,0xa0,0xff,0xe5,0x01,0x6f,0x00,0xb4,0xff,0xb2, +0x01,0x6f,0x00,0xb5,0xff,0x7d,0x01,0x6f,0x00,0xb6,0xff,0xbe,0x01,0x6f,0x00,0xb7,0xff,0x7d,0x01,0x6f,0x00,0xc0,0xff,0xe7,0x01,0x6f,0x00,0xc1,0xff,0xe7,0x01,0x6f,0x01,0x04,0xff,0xe5,0x01,0x6f,0x01,0x06,0xff,0xe5,0x01,0x6f,0x01,0x46,0xff,0xe5,0x01,0x6f,0x01,0x86,0xff,0xe5,0x01,0x6f,0x01,0x88,0xff,0xe5,0x01,0x70,0x00,0x0f, +0xff,0xa4,0x01,0x70,0x00,0x11,0xff,0xa4,0x01,0x70,0x00,0x24,0xff,0xe5,0x01,0x70,0x00,0x2d,0xff,0xf6,0x01,0x70,0x00,0x37,0xff,0xa4,0x01,0x70,0x00,0x3b,0xff,0xdb,0x01,0x70,0x00,0x3c,0xff,0xe7,0x01,0x70,0x00,0x3d,0xff,0xcf,0x01,0x70,0x00,0x62,0xff,0xe5,0x01,0x70,0x00,0x63,0xff,0xe5,0x01,0x70,0x00,0xac,0xff,0xa4,0x01,0x70, +0x00,0xad,0xff,0xe5,0x01,0x70,0x00,0xae,0xff,0xe5,0x01,0x70,0x00,0xbb,0xff,0xf6,0x01,0x70,0x00,0xc4,0xff,0x4c,0x01,0x70,0x00,0xc5,0xff,0x98,0x01,0x70,0x00,0xc7,0xff,0xe5,0x01,0x70,0x00,0xc9,0xff,0xe5,0x01,0x70,0x00,0xe5,0xff,0xcf,0x01,0x70,0x00,0xea,0xff,0xe7,0x01,0x70,0x01,0x03,0xff,0xe5,0x01,0x70,0x01,0x05,0xff,0xe5, +0x01,0x70,0x01,0x20,0xff,0xa4,0x01,0x70,0x01,0x22,0xff,0xa4,0x01,0x70,0x01,0x28,0xff,0xcf,0x01,0x70,0x01,0x2a,0xff,0xcf,0x01,0x70,0x01,0x45,0xff,0xe5,0x01,0x70,0x01,0x63,0xff,0xf6,0x01,0x70,0x01,0x76,0xff,0xa4,0x01,0x70,0x01,0x82,0xff,0xe7,0x01,0x70,0x01,0x85,0xff,0xe5,0x01,0x70,0x01,0x87,0xff,0xe5,0x01,0x70,0x01,0x92, +0xff,0xe7,0x01,0x71,0x00,0x05,0xff,0x6f,0x01,0x71,0x00,0x0a,0xff,0x6f,0x01,0x71,0x00,0x44,0xff,0xe5,0x01,0x71,0x00,0x49,0xff,0xdb,0x01,0x71,0x00,0x5b,0xff,0xe7,0x01,0x71,0x00,0x69,0xff,0xe5,0x01,0x71,0x00,0x6a,0xff,0xe5,0x01,0x71,0x00,0x6b,0xff,0xe5,0x01,0x71,0x00,0x6c,0xff,0xe5,0x01,0x71,0x00,0x6d,0xff,0xe5,0x01,0x71, +0x00,0x6e,0xff,0xe5,0x01,0x71,0x00,0xa0,0xff,0xe5,0x01,0x71,0x00,0xb4,0xff,0xb2,0x01,0x71,0x00,0xb5,0xff,0x7d,0x01,0x71,0x00,0xb6,0xff,0xbe,0x01,0x71,0x00,0xb7,0xff,0x7d,0x01,0x71,0x00,0xc0,0xff,0xe7,0x01,0x71,0x00,0xc1,0xff,0xe7,0x01,0x71,0x01,0x04,0xff,0xe5,0x01,0x71,0x01,0x06,0xff,0xe5,0x01,0x71,0x01,0x46,0xff,0xe5, +0x01,0x71,0x01,0x86,0xff,0xe5,0x01,0x71,0x01,0x88,0xff,0xe5,0x01,0x72,0x00,0x1e,0x00,0x52,0x01,0x72,0x00,0x26,0xff,0xe3,0x01,0x72,0x00,0x2a,0xff,0xe3,0x01,0x72,0x00,0x2d,0x00,0x39,0x01,0x72,0x00,0x32,0xff,0xec,0x01,0x72,0x00,0x34,0xff,0xec,0x01,0x72,0x00,0x37,0xff,0xcb,0x01,0x72,0x00,0x3c,0xff,0xd9,0x01,0x72,0x00,0x46, +0xff,0xcb,0x01,0x72,0x00,0x47,0xff,0xcb,0x01,0x72,0x00,0x48,0xff,0xc7,0x01,0x72,0x00,0x4a,0xff,0xc7,0x01,0x72,0x00,0x52,0xff,0xc5,0x01,0x72,0x00,0x54,0xff,0xcb,0x01,0x72,0x00,0x64,0xff,0xe5,0x01,0x72,0x00,0x67,0xff,0xec,0x01,0x72,0x00,0x6f,0xff,0xbe,0x01,0x72,0x00,0x70,0xff,0xbe,0x01,0x72,0x00,0x71,0xff,0xbe,0x01,0x72, +0x00,0x72,0xff,0xbe,0x01,0x72,0x00,0x73,0xff,0xbe,0x01,0x72,0x00,0x79,0xff,0xc5,0x01,0x72,0x00,0x7a,0xff,0xc5,0x01,0x72,0x00,0x7b,0xff,0xc5,0x01,0x72,0x00,0x7c,0xff,0xc5,0x01,0x72,0x00,0x7d,0xff,0xc5,0x01,0x72,0x00,0x92,0xff,0xec,0x01,0x72,0x00,0xaf,0xff,0xec,0x01,0x72,0x00,0xb0,0xff,0xec,0x01,0x72,0x00,0xb1,0xff,0xc5, +0x01,0x72,0x00,0xbb,0xff,0xe5,0x01,0x72,0x00,0xd0,0xff,0xec,0x01,0x72,0x00,0xd1,0xff,0xec,0x01,0x72,0x00,0xd2,0xff,0xec,0x01,0x72,0x00,0xea,0xff,0xd9,0x01,0x72,0x00,0xf7,0xff,0xe3,0x01,0x72,0x00,0xf8,0xff,0xc7,0x01,0x72,0x00,0xfc,0xff,0xe3,0x01,0x72,0x00,0xfd,0xff,0xcb,0x01,0x72,0x00,0xfe,0xff,0xe3,0x01,0x72,0x00,0xff, +0xff,0xcb,0x01,0x72,0x01,0x00,0xff,0xcb,0x01,0x72,0x01,0x08,0xff,0xcb,0x01,0x72,0x01,0x0b,0xff,0xc7,0x01,0x72,0x01,0x0d,0xff,0xbe,0x01,0x72,0x01,0x18,0xff,0xec,0x01,0x72,0x01,0x19,0xff,0xc5,0x01,0x72,0x01,0x20,0xff,0xcb,0x01,0x72,0x01,0x22,0xff,0xcb,0x01,0x72,0x01,0x47,0xff,0xe3,0x01,0x72,0x01,0x48,0xff,0xcb,0x01,0x72, +0x01,0x4c,0xff,0xbe,0x01,0x72,0x01,0x4e,0xff,0xbe,0x01,0x72,0x01,0x50,0xff,0xbe,0x01,0x72,0x01,0x51,0xff,0xe3,0x01,0x72,0x01,0x52,0xff,0xc7,0x01,0x72,0x01,0x53,0xff,0xe3,0x01,0x72,0x01,0x54,0xff,0xc7,0x01,0x72,0x01,0x55,0xff,0xe3,0x01,0x72,0x01,0x56,0xff,0xc7,0x01,0x72,0x01,0x63,0x00,0x39,0x01,0x72,0x01,0x6e,0xff,0xec, +0x01,0x72,0x01,0x6f,0xff,0xc5,0x01,0x72,0x01,0x70,0xff,0xec,0x01,0x72,0x01,0x71,0xff,0xc5,0x01,0x72,0x01,0x76,0xff,0xcb,0x01,0x72,0x01,0x82,0xff,0xd9,0x01,0x72,0x01,0x89,0xff,0xec,0x01,0x72,0x01,0x8a,0xff,0xc5,0x01,0x72,0x01,0x92,0xff,0xd9,0x01,0x73,0x00,0x0f,0xff,0x62,0x01,0x73,0x00,0x10,0xff,0x7f,0x01,0x73,0x00,0x11, +0xff,0x56,0x01,0x73,0x00,0x1d,0x00,0x52,0x01,0x73,0x00,0x1e,0x00,0x52,0x01,0x73,0x00,0x46,0xff,0xe5,0x01,0x73,0x00,0x47,0xff,0xe5,0x01,0x73,0x00,0x48,0xff,0xe5,0x01,0x73,0x00,0x49,0x00,0x27,0x01,0x73,0x00,0x4a,0xff,0xe5,0x01,0x73,0x00,0x50,0xff,0xfc,0x01,0x73,0x00,0x51,0xff,0xfc,0x01,0x73,0x00,0x52,0xff,0xe5,0x01,0x73, +0x00,0x54,0xff,0xe5,0x01,0x73,0x00,0x56,0x00,0x0e,0x01,0x73,0x00,0x57,0x00,0x3b,0x01,0x73,0x00,0x59,0x00,0x52,0x01,0x73,0x00,0x5a,0x00,0x52,0x01,0x73,0x00,0x5b,0x00,0x3b,0x01,0x73,0x00,0x5c,0x00,0x52,0x01,0x73,0x00,0x5d,0x00,0x27,0x01,0x73,0x00,0x6f,0xff,0xe5,0x01,0x73,0x00,0x70,0xff,0xe5,0x01,0x73,0x00,0x71,0xff,0xe5, +0x01,0x73,0x00,0x72,0xff,0xe5,0x01,0x73,0x00,0x73,0xff,0xe5,0x01,0x73,0x00,0x79,0xff,0xe5,0x01,0x73,0x00,0x7a,0xff,0xe5,0x01,0x73,0x00,0x7b,0xff,0xe5,0x01,0x73,0x00,0x7c,0xff,0xe5,0x01,0x73,0x00,0x7d,0xff,0xe5,0x01,0x73,0x00,0xac,0xff,0x56,0x01,0x73,0x00,0xb1,0xff,0xe5,0x01,0x73,0x00,0xb4,0x00,0xa4,0x01,0x73,0x00,0xb5, +0x00,0x79,0x01,0x73,0x00,0xb6,0x00,0xa4,0x01,0x73,0x00,0xb7,0x00,0x79,0x01,0x73,0x00,0xc4,0xff,0x62,0x01,0x73,0x00,0xc5,0xff,0x62,0x01,0x73,0x00,0xe4,0x00,0x0e,0x01,0x73,0x00,0xe6,0x00,0x27,0x01,0x73,0x00,0xeb,0x00,0x52,0x01,0x73,0x00,0xf8,0xff,0xe5,0x01,0x73,0x00,0xfb,0x00,0x0e,0x01,0x73,0x00,0xfd,0xff,0xe5,0x01,0x73, +0x00,0xff,0xff,0xe5,0x01,0x73,0x01,0x00,0xff,0xe5,0x01,0x73,0x01,0x08,0xff,0xe5,0x01,0x73,0x01,0x0b,0xff,0xe5,0x01,0x73,0x01,0x0d,0xff,0xe5,0x01,0x73,0x01,0x19,0xff,0xe5,0x01,0x73,0x01,0x1f,0x00,0x0e,0x01,0x73,0x01,0x21,0x00,0x3b,0x01,0x73,0x01,0x23,0x00,0x3b,0x01,0x73,0x01,0x29,0x00,0x27,0x01,0x73,0x01,0x2b,0x00,0x27, +0x01,0x73,0x01,0x48,0xff,0xe5,0x01,0x73,0x01,0x4c,0xff,0xe5,0x01,0x73,0x01,0x4e,0xff,0xe5,0x01,0x73,0x01,0x50,0xff,0xe5,0x01,0x73,0x01,0x52,0xff,0xe5,0x01,0x73,0x01,0x54,0xff,0xe5,0x01,0x73,0x01,0x56,0xff,0xe5,0x01,0x73,0x01,0x6d,0xff,0xfc,0x01,0x73,0x01,0x6f,0xff,0xe5,0x01,0x73,0x01,0x71,0xff,0xe5,0x01,0x73,0x01,0x75, +0x00,0x0e,0x01,0x73,0x01,0x77,0x00,0x3b,0x01,0x73,0x01,0x81,0x00,0x52,0x01,0x73,0x01,0x83,0x00,0x52,0x01,0x73,0x01,0x8a,0xff,0xe5,0x01,0x73,0x01,0x8d,0x00,0x52,0x01,0x73,0x01,0x8f,0x00,0x52,0x01,0x73,0x01,0x91,0x00,0x52,0x01,0x73,0x01,0x93,0x00,0x52,0x01,0x73,0x02,0x3e,0x00,0x0e,0x01,0x74,0x00,0x57,0xff,0xbe,0x01,0x74, +0x00,0x59,0xff,0xcf,0x01,0x74,0x00,0x5a,0xff,0xe5,0x01,0x74,0x00,0x5c,0xff,0xd1,0x01,0x74,0x00,0xba,0xff,0xbe,0x01,0x74,0x00,0xc4,0xff,0xb2,0x01,0x74,0x00,0xc5,0xff,0xb2,0x01,0x74,0x00,0xeb,0xff,0xd1,0x01,0x74,0x01,0x21,0xff,0xbe,0x01,0x74,0x01,0x23,0xff,0xbe,0x01,0x74,0x01,0x77,0xff,0xbe,0x01,0x74,0x01,0x81,0xff,0xe5, +0x01,0x74,0x01,0x83,0xff,0xd1,0x01,0x74,0x01,0x8d,0xff,0xe5,0x01,0x74,0x01,0x8f,0xff,0xe5,0x01,0x74,0x01,0x91,0xff,0xe5,0x01,0x74,0x01,0x93,0xff,0xd1,0x01,0x76,0x00,0x0f,0xff,0x7f,0x01,0x76,0x00,0x11,0xff,0x4c,0x01,0x76,0x00,0x1d,0xff,0xe9,0x01,0x76,0x00,0x1e,0xff,0xe9,0x01,0x76,0x00,0x24,0xff,0x66,0x01,0x76,0x00,0x26, +0xff,0xa4,0x01,0x76,0x00,0x2a,0xff,0xa4,0x01,0x76,0x00,0x2d,0xff,0x8f,0x01,0x76,0x00,0x32,0xff,0xa4,0x01,0x76,0x00,0x34,0xff,0xa4,0x01,0x76,0x00,0x37,0x00,0x27,0x01,0x76,0x00,0x39,0x00,0x2b,0x01,0x76,0x00,0x3a,0x00,0x27,0x01,0x76,0x00,0x3b,0xff,0xfa,0x01,0x76,0x00,0x3c,0x00,0x1d,0x01,0x76,0x00,0x44,0xff,0x27,0x01,0x76, +0x00,0x46,0xff,0x2d,0x01,0x76,0x00,0x47,0xff,0x2d,0x01,0x76,0x00,0x48,0xff,0x2d,0x01,0x76,0x00,0x49,0xff,0xa0,0x01,0x76,0x00,0x4a,0xff,0x2d,0x01,0x76,0x00,0x50,0xff,0x4e,0x01,0x76,0x00,0x51,0xff,0x4e,0x01,0x76,0x00,0x52,0xff,0x2d,0x01,0x76,0x00,0x53,0xff,0x4e,0x01,0x76,0x00,0x54,0xff,0x2d,0x01,0x76,0x00,0x55,0xff,0x4e, +0x01,0x76,0x00,0x56,0xff,0x66,0x01,0x76,0x00,0x58,0xff,0x4e,0x01,0x76,0x00,0x59,0xff,0x9a,0x01,0x76,0x00,0x5a,0xff,0x8f,0x01,0x76,0x00,0x5b,0xff,0x4c,0x01,0x76,0x00,0x5c,0xff,0x8f,0x01,0x76,0x00,0x5d,0xff,0x7f,0x01,0x76,0x00,0x62,0xff,0x66,0x01,0x76,0x00,0x63,0xff,0x66,0x01,0x76,0x00,0x64,0xff,0xa4,0x01,0x76,0x00,0x67, +0xff,0xa4,0x01,0x76,0x00,0x69,0xff,0x27,0x01,0x76,0x00,0x6a,0xff,0x27,0x01,0x76,0x00,0x6b,0xff,0x27,0x01,0x76,0x00,0x6c,0xff,0x27,0x01,0x76,0x00,0x6d,0xff,0x3f,0x01,0x76,0x00,0x6e,0xff,0x27,0x01,0x76,0x00,0x6f,0xff,0x1b,0x01,0x76,0x00,0x70,0xff,0x2d,0x01,0x76,0x00,0x71,0xff,0x2d,0x01,0x76,0x00,0x72,0xff,0x2d,0x01,0x76, +0x00,0x73,0xff,0x2d,0x01,0x76,0x00,0x74,0xff,0xe9,0x01,0x76,0x00,0x76,0x00,0x31,0x01,0x76,0x00,0x77,0x00,0x6f,0x01,0x76,0x00,0x78,0xff,0x4e,0x01,0x76,0x00,0x79,0xff,0x2d,0x01,0x76,0x00,0x7a,0xff,0x2d,0x01,0x76,0x00,0x7b,0xff,0x2d,0x01,0x76,0x00,0x7c,0xff,0x2d,0x01,0x76,0x00,0x7d,0xff,0x2d,0x01,0x76,0x00,0x7e,0xff,0x4e, +0x01,0x76,0x00,0x7f,0xff,0x4e,0x01,0x76,0x00,0x80,0xff,0x4e,0x01,0x76,0x00,0x81,0xff,0x4e,0x01,0x76,0x00,0x8d,0x00,0x52,0x01,0x76,0x00,0x91,0xff,0x0c,0x01,0x76,0x00,0x92,0xff,0xa4,0x01,0x76,0x00,0xa0,0xff,0x27,0x01,0x76,0x00,0xaa,0xff,0x9a,0x01,0x76,0x00,0xab,0xff,0xcf,0x01,0x76,0x00,0xac,0xff,0x4c,0x01,0x76,0x00,0xad, +0xff,0x66,0x01,0x76,0x00,0xae,0xff,0x66,0x01,0x76,0x00,0xaf,0xff,0xa4,0x01,0x76,0x00,0xb0,0xff,0xa4,0x01,0x76,0x00,0xb1,0xff,0x2d,0x01,0x76,0x00,0xb5,0x00,0x27,0x01,0x76,0x00,0xb7,0x00,0x27,0x01,0x76,0x00,0xba,0xff,0x8f,0x01,0x76,0x00,0xbe,0xff,0x9a,0x01,0x76,0x00,0xbf,0xff,0xcf,0x01,0x76,0x00,0xc4,0xff,0x17,0x01,0x76, +0x00,0xc5,0xff,0x17,0x01,0x76,0x00,0xc7,0xff,0x66,0x01,0x76,0x00,0xc9,0xff,0x66,0x01,0x76,0x00,0xd0,0xff,0xa4,0x01,0x76,0x00,0xd1,0xff,0xa4,0x01,0x76,0x00,0xd2,0xff,0xa4,0x01,0x76,0x00,0xe4,0xff,0x66,0x01,0x76,0x00,0xe6,0xff,0x7f,0x01,0x76,0x00,0xea,0x00,0x1d,0x01,0x76,0x00,0xeb,0xff,0x8f,0x01,0x76,0x00,0xf7,0xff,0xa4, +0x01,0x76,0x00,0xf8,0xff,0x2d,0x01,0x76,0x00,0xfb,0xff,0x66,0x01,0x76,0x00,0xfc,0xff,0xa4,0x01,0x76,0x00,0xfd,0xff,0x2d,0x01,0x76,0x00,0xfe,0xff,0xa4,0x01,0x76,0x00,0xff,0xff,0x2d,0x01,0x76,0x01,0x00,0xff,0x2d,0x01,0x76,0x01,0x03,0xff,0x66,0x01,0x76,0x01,0x04,0xff,0x27,0x01,0x76,0x01,0x05,0xff,0x66,0x01,0x76,0x01,0x06, +0xff,0x27,0x01,0x76,0x01,0x08,0xff,0x2d,0x01,0x76,0x01,0x0b,0xff,0x2d,0x01,0x76,0x01,0x0d,0xff,0x2d,0x01,0x76,0x01,0x15,0xff,0x4e,0x01,0x76,0x01,0x17,0xff,0x4e,0x01,0x76,0x01,0x18,0xff,0xa4,0x01,0x76,0x01,0x19,0xff,0x2d,0x01,0x76,0x01,0x1b,0xff,0x4e,0x01,0x76,0x01,0x1d,0xff,0x4e,0x01,0x76,0x01,0x1f,0xff,0x66,0x01,0x76, +0x01,0x20,0x00,0x27,0x01,0x76,0x01,0x22,0x00,0x27,0x01,0x76,0x01,0x25,0xff,0x4e,0x01,0x76,0x01,0x27,0xff,0x4e,0x01,0x76,0x01,0x29,0xff,0x7f,0x01,0x76,0x01,0x2b,0xff,0x7f,0x01,0x76,0x01,0x45,0xff,0x66,0x01,0x76,0x01,0x46,0xff,0x27,0x01,0x76,0x01,0x47,0xff,0xa4,0x01,0x76,0x01,0x48,0xff,0x2d,0x01,0x76,0x01,0x4c,0xff,0x2d, +0x01,0x76,0x01,0x4e,0xff,0x2d,0x01,0x76,0x01,0x50,0xff,0x2d,0x01,0x76,0x01,0x51,0xff,0xa4,0x01,0x76,0x01,0x52,0xff,0x2d,0x01,0x76,0x01,0x53,0xff,0xa4,0x01,0x76,0x01,0x54,0xff,0x2d,0x01,0x76,0x01,0x55,0xff,0xa4,0x01,0x76,0x01,0x56,0xff,0x2d,0x01,0x76,0x01,0x5c,0x00,0x6f,0x01,0x76,0x01,0x5e,0x00,0x6f,0x01,0x76,0x01,0x60, +0x00,0x6f,0x01,0x76,0x01,0x63,0xff,0x8f,0x01,0x76,0x01,0x6d,0xff,0x4e,0x01,0x76,0x01,0x6e,0xff,0xa4,0x01,0x76,0x01,0x6f,0xff,0x2d,0x01,0x76,0x01,0x70,0xff,0xa4,0x01,0x76,0x01,0x71,0xff,0x2d,0x01,0x76,0x01,0x73,0xff,0x4e,0x01,0x76,0x01,0x75,0xff,0x66,0x01,0x76,0x01,0x76,0x00,0x27,0x01,0x76,0x01,0x79,0xff,0x4e,0x01,0x76, +0x01,0x7b,0xff,0x4e,0x01,0x76,0x01,0x7d,0xff,0x4e,0x01,0x76,0x01,0x7f,0xff,0x4e,0x01,0x76,0x01,0x80,0x00,0x27,0x01,0x76,0x01,0x81,0xff,0x8f,0x01,0x76,0x01,0x82,0x00,0x1d,0x01,0x76,0x01,0x83,0xff,0x8f,0x01,0x76,0x01,0x85,0xff,0x66,0x01,0x76,0x01,0x86,0xff,0x27,0x01,0x76,0x01,0x87,0xff,0x66,0x01,0x76,0x01,0x88,0xff,0x27, +0x01,0x76,0x01,0x89,0xff,0xa4,0x01,0x76,0x01,0x8a,0xff,0x2d,0x01,0x76,0x01,0x8c,0x00,0x27,0x01,0x76,0x01,0x8d,0xff,0x8f,0x01,0x76,0x01,0x8e,0x00,0x27,0x01,0x76,0x01,0x8f,0xff,0x8f,0x01,0x76,0x01,0x90,0x00,0x27,0x01,0x76,0x01,0x91,0xff,0x8f,0x01,0x76,0x01,0x92,0x00,0x1d,0x01,0x76,0x01,0x93,0xff,0x8f,0x01,0x76,0x02,0x3e, +0xff,0x66,0x01,0x77,0x00,0x10,0xff,0x8f,0x01,0x77,0x00,0x22,0xff,0xcb,0x01,0x77,0x00,0x46,0xff,0xe5,0x01,0x77,0x00,0x47,0xff,0xe5,0x01,0x77,0x00,0x48,0xff,0xf0,0x01,0x77,0x00,0x4a,0xff,0xf0,0x01,0x77,0x00,0x52,0xff,0xf0,0x01,0x77,0x00,0x54,0xff,0xf0,0x01,0x77,0x00,0x5b,0x00,0x1d,0x01,0x77,0x00,0x6f,0xff,0xe5,0x01,0x77, +0x00,0x70,0xff,0xf0,0x01,0x77,0x00,0x71,0xff,0xf0,0x01,0x77,0x00,0x72,0xff,0xf0,0x01,0x77,0x00,0x73,0xff,0xf0,0x01,0x77,0x00,0x79,0xff,0xf0,0x01,0x77,0x00,0x7a,0xff,0xf0,0x01,0x77,0x00,0x7b,0xff,0xf0,0x01,0x77,0x00,0x7c,0xff,0xf0,0x01,0x77,0x00,0x7d,0xff,0xf0,0x01,0x77,0x00,0xab,0x00,0x27,0x01,0x77,0x00,0xb1,0xff,0xf0, +0x01,0x77,0x00,0xbf,0x00,0x27,0x01,0x77,0x00,0xf8,0xff,0xf0,0x01,0x77,0x00,0xfd,0xff,0xe5,0x01,0x77,0x00,0xff,0xff,0xe5,0x01,0x77,0x01,0x00,0xff,0xe5,0x01,0x77,0x01,0x08,0xff,0xe5,0x01,0x77,0x01,0x0b,0xff,0xf0,0x01,0x77,0x01,0x0d,0xff,0xf0,0x01,0x77,0x01,0x19,0xff,0xf0,0x01,0x77,0x01,0x48,0xff,0xe5,0x01,0x77,0x01,0x4c, +0xff,0xf0,0x01,0x77,0x01,0x4e,0xff,0xf0,0x01,0x77,0x01,0x50,0xff,0xf0,0x01,0x77,0x01,0x52,0xff,0xf0,0x01,0x77,0x01,0x54,0xff,0xf0,0x01,0x77,0x01,0x56,0xff,0xf0,0x01,0x77,0x01,0x6f,0xff,0xf0,0x01,0x77,0x01,0x71,0xff,0xf0,0x01,0x77,0x01,0x8a,0xff,0xf0,0x01,0x78,0x00,0x24,0xff,0xd7,0x01,0x78,0x00,0x91,0xff,0x8b,0x01,0x78, +0x00,0xc4,0xff,0xa6,0x01,0x78,0x00,0xc5,0xff,0xa6,0x01,0x78,0x01,0x03,0xff,0xd7,0x01,0x78,0x01,0x05,0xff,0xd7,0x01,0x78,0x01,0x45,0xff,0xd7,0x01,0x78,0x01,0x85,0xff,0xd7,0x01,0x78,0x01,0x87,0xff,0xd7,0x01,0x79,0x00,0x05,0xff,0xbe,0x01,0x79,0x00,0x0a,0xff,0xbe,0x01,0x7a,0x00,0x24,0xff,0xd7,0x01,0x7a,0x00,0x91,0xff,0x8b, +0x01,0x7a,0x00,0xc4,0xff,0xa6,0x01,0x7a,0x00,0xc5,0xff,0xa6,0x01,0x7a,0x01,0x03,0xff,0xd7,0x01,0x7a,0x01,0x05,0xff,0xd7,0x01,0x7a,0x01,0x45,0xff,0xd7,0x01,0x7a,0x01,0x85,0xff,0xd7,0x01,0x7a,0x01,0x87,0xff,0xd7,0x01,0x7b,0x00,0x05,0xff,0xbe,0x01,0x7b,0x00,0x0a,0xff,0xbe,0x01,0x7c,0x00,0x24,0xff,0xd7,0x01,0x7c,0x00,0x91, +0xff,0x8b,0x01,0x7c,0x00,0xc4,0xff,0xa6,0x01,0x7c,0x00,0xc5,0xff,0xa6,0x01,0x7c,0x01,0x03,0xff,0xd7,0x01,0x7c,0x01,0x05,0xff,0xd7,0x01,0x7c,0x01,0x45,0xff,0xd7,0x01,0x7c,0x01,0x85,0xff,0xd7,0x01,0x7c,0x01,0x87,0xff,0xd7,0x01,0x7d,0x00,0x05,0xff,0xbe,0x01,0x7d,0x00,0x0a,0xff,0xbe,0x01,0x7e,0x00,0x24,0xff,0xd7,0x01,0x7e, +0x00,0x91,0xff,0x8b,0x01,0x7e,0x00,0xc4,0xff,0xa6,0x01,0x7e,0x00,0xc5,0xff,0xa6,0x01,0x7e,0x01,0x03,0xff,0xd7,0x01,0x7e,0x01,0x05,0xff,0xd7,0x01,0x7e,0x01,0x45,0xff,0xd7,0x01,0x7e,0x01,0x85,0xff,0xd7,0x01,0x7e,0x01,0x87,0xff,0xd7,0x01,0x7f,0x00,0x05,0xff,0xbe,0x01,0x7f,0x00,0x0a,0xff,0xbe,0x01,0x80,0x00,0x0f,0xff,0x8b, +0x01,0x80,0x00,0x11,0xff,0x7f,0x01,0x80,0x00,0x24,0xff,0xb6,0x01,0x80,0x00,0x37,0x00,0x27,0x01,0x80,0x00,0x44,0xff,0xb4,0x01,0x80,0x00,0x46,0xff,0xcf,0x01,0x80,0x00,0x47,0xff,0xcf,0x01,0x80,0x00,0x48,0xff,0xcf,0x01,0x80,0x00,0x4a,0xff,0xcf,0x01,0x80,0x00,0x52,0xff,0xcf,0x01,0x80,0x00,0x54,0xff,0xcf,0x01,0x80,0x00,0x62, +0xff,0xb6,0x01,0x80,0x00,0x63,0xff,0xb6,0x01,0x80,0x00,0x69,0xff,0xb4,0x01,0x80,0x00,0x6a,0xff,0xb4,0x01,0x80,0x00,0x6b,0xff,0xb4,0x01,0x80,0x00,0x6c,0xff,0xb4,0x01,0x80,0x00,0x6d,0xff,0xb4,0x01,0x80,0x00,0x6e,0xff,0xb4,0x01,0x80,0x00,0x6f,0xff,0xcf,0x01,0x80,0x00,0x70,0xff,0xcf,0x01,0x80,0x00,0x71,0xff,0xcf,0x01,0x80, +0x00,0x72,0xff,0xcf,0x01,0x80,0x00,0x73,0xff,0xcf,0x01,0x80,0x00,0x76,0x00,0x31,0x01,0x80,0x00,0x77,0x00,0x64,0x01,0x80,0x00,0x79,0xff,0xcf,0x01,0x80,0x00,0x7a,0xff,0xcf,0x01,0x80,0x00,0x7b,0xff,0xcf,0x01,0x80,0x00,0x7c,0xff,0xcf,0x01,0x80,0x00,0x7d,0xff,0xcf,0x01,0x80,0x00,0x91,0xff,0x9a,0x01,0x80,0x00,0xa0,0xff,0xb4, +0x01,0x80,0x00,0xa2,0xff,0xa4,0x01,0x80,0x00,0xaa,0xff,0xcf,0x01,0x80,0x00,0xab,0x00,0x27,0x01,0x80,0x00,0xac,0xff,0x7f,0x01,0x80,0x00,0xad,0xff,0xb6,0x01,0x80,0x00,0xae,0xff,0xb6,0x01,0x80,0x00,0xb1,0xff,0xcf,0x01,0x80,0x00,0xbe,0xff,0xcf,0x01,0x80,0x00,0xbf,0x00,0x27,0x01,0x80,0x00,0xc4,0xff,0x7f,0x01,0x80,0x00,0xc5, +0xff,0x8b,0x01,0x80,0x00,0xc7,0xff,0xb6,0x01,0x80,0x00,0xc9,0xff,0xb6,0x01,0x80,0x00,0xf8,0xff,0xcf,0x01,0x80,0x00,0xfd,0xff,0xcf,0x01,0x80,0x00,0xff,0xff,0xcf,0x01,0x80,0x01,0x00,0xff,0xcf,0x01,0x80,0x01,0x03,0xff,0xb6,0x01,0x80,0x01,0x04,0xff,0xb4,0x01,0x80,0x01,0x05,0xff,0xb6,0x01,0x80,0x01,0x06,0xff,0xb4,0x01,0x80, +0x01,0x08,0xff,0xcf,0x01,0x80,0x01,0x0b,0xff,0xcf,0x01,0x80,0x01,0x0d,0xff,0xcf,0x01,0x80,0x01,0x19,0xff,0xcf,0x01,0x80,0x01,0x20,0x00,0x27,0x01,0x80,0x01,0x22,0x00,0x27,0x01,0x80,0x01,0x45,0xff,0xb6,0x01,0x80,0x01,0x46,0xff,0xb4,0x01,0x80,0x01,0x48,0xff,0xcf,0x01,0x80,0x01,0x4c,0xff,0xcf,0x01,0x80,0x01,0x4e,0xff,0xcf, +0x01,0x80,0x01,0x50,0xff,0xcf,0x01,0x80,0x01,0x52,0xff,0xcf,0x01,0x80,0x01,0x54,0xff,0xcf,0x01,0x80,0x01,0x56,0xff,0xcf,0x01,0x80,0x01,0x5c,0x00,0x64,0x01,0x80,0x01,0x5e,0x00,0x64,0x01,0x80,0x01,0x60,0x00,0x64,0x01,0x80,0x01,0x6f,0xff,0xcf,0x01,0x80,0x01,0x71,0xff,0xcf,0x01,0x80,0x01,0x76,0x00,0x27,0x01,0x80,0x01,0x85, +0xff,0xb6,0x01,0x80,0x01,0x86,0xff,0xb4,0x01,0x80,0x01,0x87,0xff,0xb6,0x01,0x80,0x01,0x88,0xff,0xb4,0x01,0x80,0x01,0x8a,0xff,0xcf,0x01,0x81,0x00,0x0f,0xff,0xa6,0x01,0x81,0x00,0x11,0xff,0x9a,0x01,0x81,0x00,0x46,0xff,0xfa,0x01,0x81,0x00,0x47,0xff,0xf6,0x01,0x81,0x00,0x48,0xff,0xf6,0x01,0x81,0x00,0x4a,0xff,0xfa,0x01,0x81, +0x00,0x52,0xff,0xfa,0x01,0x81,0x00,0x54,0xff,0xf6,0x01,0x81,0x00,0x6f,0xff,0xfa,0x01,0x81,0x00,0x70,0xff,0xf6,0x01,0x81,0x00,0x71,0xff,0xf6,0x01,0x81,0x00,0x72,0xff,0xf6,0x01,0x81,0x00,0x73,0xff,0xf6,0x01,0x81,0x00,0x79,0xff,0xfa,0x01,0x81,0x00,0x7a,0xff,0xfa,0x01,0x81,0x00,0x7b,0xff,0xfa,0x01,0x81,0x00,0x7c,0xff,0xfa, +0x01,0x81,0x00,0x7d,0xff,0xfa,0x01,0x81,0x00,0xac,0xff,0x9a,0x01,0x81,0x00,0xb1,0xff,0xfa,0x01,0x81,0x00,0xc4,0xff,0xb4,0x01,0x81,0x00,0xc5,0xff,0xb4,0x01,0x81,0x00,0xf8,0xff,0xfa,0x01,0x81,0x00,0xfd,0xff,0xfa,0x01,0x81,0x00,0xff,0xff,0xfa,0x01,0x81,0x01,0x00,0xff,0xf6,0x01,0x81,0x01,0x08,0xff,0xf6,0x01,0x81,0x01,0x0b, +0xff,0xf6,0x01,0x81,0x01,0x0d,0xff,0xf6,0x01,0x81,0x01,0x19,0xff,0xfa,0x01,0x81,0x01,0x48,0xff,0xfa,0x01,0x81,0x01,0x4c,0xff,0xf6,0x01,0x81,0x01,0x4e,0xff,0xf6,0x01,0x81,0x01,0x50,0xff,0xf6,0x01,0x81,0x01,0x52,0xff,0xfa,0x01,0x81,0x01,0x54,0xff,0xfa,0x01,0x81,0x01,0x56,0xff,0xfa,0x01,0x81,0x01,0x6f,0xff,0xfa,0x01,0x81, +0x01,0x71,0xff,0xfa,0x01,0x81,0x01,0x8a,0xff,0xfa,0x01,0x82,0x00,0x0f,0xff,0x50,0x01,0x82,0x00,0x11,0xff,0x3d,0x01,0x82,0x00,0x24,0xff,0x62,0x01,0x82,0x00,0x26,0xff,0xd3,0x01,0x82,0x00,0x2a,0xff,0xd3,0x01,0x82,0x00,0x2d,0xff,0xbe,0x01,0x82,0x00,0x32,0xff,0xd3,0x01,0x82,0x00,0x34,0xff,0xd3,0x01,0x82,0x00,0x36,0xff,0xe5, +0x01,0x82,0x00,0x37,0x00,0x27,0x01,0x82,0x00,0x44,0xff,0x39,0x01,0x82,0x00,0x46,0xff,0x4c,0x01,0x82,0x00,0x47,0xff,0x4c,0x01,0x82,0x00,0x48,0xff,0x4c,0x01,0x82,0x00,0x49,0xff,0xe5,0x01,0x82,0x00,0x4a,0xff,0x4c,0x01,0x82,0x00,0x50,0xff,0x73,0x01,0x82,0x00,0x51,0xff,0x73,0x01,0x82,0x00,0x52,0xff,0x4c,0x01,0x82,0x00,0x53, +0xff,0x73,0x01,0x82,0x00,0x54,0xff,0x4c,0x01,0x82,0x00,0x55,0xff,0x73,0x01,0x82,0x00,0x56,0xff,0x7b,0x01,0x82,0x00,0x58,0xff,0x73,0x01,0x82,0x00,0x62,0xff,0x62,0x01,0x82,0x00,0x63,0xff,0x62,0x01,0x82,0x00,0x64,0xff,0xcd,0x01,0x82,0x00,0x67,0xff,0xd3,0x01,0x82,0x00,0x69,0xff,0x39,0x01,0x82,0x00,0x6a,0xff,0x39,0x01,0x82, +0x00,0x6b,0xff,0x39,0x01,0x82,0x00,0x6c,0xff,0x7f,0x01,0x82,0x00,0x6d,0xff,0x66,0x01,0x82,0x00,0x6e,0xff,0x39,0x01,0x82,0x00,0x6f,0xff,0x4c,0x01,0x82,0x00,0x70,0xff,0x4c,0x01,0x82,0x00,0x71,0xff,0x4c,0x01,0x82,0x00,0x72,0xff,0x4c,0x01,0x82,0x00,0x73,0xff,0x4c,0x01,0x82,0x00,0x77,0x00,0x5a,0x01,0x82,0x00,0x78,0xff,0x73, +0x01,0x82,0x00,0x79,0xff,0x4c,0x01,0x82,0x00,0x7a,0xff,0x4c,0x01,0x82,0x00,0x7b,0xff,0x4c,0x01,0x82,0x00,0x7c,0xff,0x4c,0x01,0x82,0x00,0x7d,0xff,0x4c,0x01,0x82,0x00,0x7e,0xff,0x73,0x01,0x82,0x00,0x7f,0xff,0x73,0x01,0x82,0x00,0x80,0xff,0x73,0x01,0x82,0x00,0x81,0xff,0x73,0x01,0x82,0x00,0x91,0xff,0x3f,0x01,0x82,0x00,0x92, +0xff,0xd3,0x01,0x82,0x00,0xa0,0xff,0x39,0x01,0x82,0x00,0xa2,0xff,0x1b,0x01,0x82,0x00,0xaa,0xff,0xcf,0x01,0x82,0x00,0xac,0xff,0x3d,0x01,0x82,0x00,0xad,0xff,0x62,0x01,0x82,0x00,0xae,0xff,0x62,0x01,0x82,0x00,0xaf,0xff,0xd3,0x01,0x82,0x00,0xb0,0xff,0xd3,0x01,0x82,0x00,0xb1,0xff,0x4c,0x01,0x82,0x00,0xbe,0xff,0x9a,0x01,0x82, +0x00,0xc4,0xff,0x08,0x01,0x82,0x00,0xc5,0xff,0x08,0x01,0x82,0x00,0xc7,0xff,0x62,0x01,0x82,0x00,0xc9,0xff,0x62,0x01,0x82,0x00,0xd0,0xff,0xd3,0x01,0x82,0x00,0xd1,0xff,0xd3,0x01,0x82,0x00,0xd2,0xff,0xd3,0x01,0x82,0x00,0xe3,0xff,0xe5,0x01,0x82,0x00,0xe4,0xff,0x7b,0x01,0x82,0x00,0xf7,0xff,0xd3,0x01,0x82,0x00,0xf8,0xff,0x4c, +0x01,0x82,0x00,0xfa,0xff,0xe5,0x01,0x82,0x00,0xfb,0xff,0x7b,0x01,0x82,0x00,0xfc,0xff,0xd3,0x01,0x82,0x00,0xfd,0xff,0x4c,0x01,0x82,0x00,0xfe,0xff,0xd3,0x01,0x82,0x00,0xff,0xff,0x4c,0x01,0x82,0x01,0x00,0xff,0x4c,0x01,0x82,0x01,0x03,0xff,0x62,0x01,0x82,0x01,0x04,0xff,0x7f,0x01,0x82,0x01,0x05,0xff,0x62,0x01,0x82,0x01,0x06, +0xff,0x39,0x01,0x82,0x01,0x08,0xff,0x4c,0x01,0x82,0x01,0x0b,0xff,0x4c,0x01,0x82,0x01,0x0d,0xff,0x4c,0x01,0x82,0x01,0x15,0xff,0x73,0x01,0x82,0x01,0x17,0xff,0x73,0x01,0x82,0x01,0x18,0xff,0xd3,0x01,0x82,0x01,0x19,0xff,0x4c,0x01,0x82,0x01,0x1b,0xff,0x73,0x01,0x82,0x01,0x1d,0xff,0x73,0x01,0x82,0x01,0x1e,0xff,0xe5,0x01,0x82, +0x01,0x1f,0xff,0x7b,0x01,0x82,0x01,0x20,0x00,0x27,0x01,0x82,0x01,0x22,0x00,0x27,0x01,0x82,0x01,0x25,0xff,0x73,0x01,0x82,0x01,0x27,0xff,0x73,0x01,0x82,0x01,0x45,0xff,0x62,0x01,0x82,0x01,0x46,0xff,0x7f,0x01,0x82,0x01,0x47,0xff,0xd3,0x01,0x82,0x01,0x48,0xff,0x4c,0x01,0x82,0x01,0x4c,0xff,0x4c,0x01,0x82,0x01,0x4e,0xff,0x4c, +0x01,0x82,0x01,0x50,0xff,0x4c,0x01,0x82,0x01,0x51,0xff,0xd3,0x01,0x82,0x01,0x52,0xff,0x4c,0x01,0x82,0x01,0x53,0xff,0xd3,0x01,0x82,0x01,0x54,0xff,0x4c,0x01,0x82,0x01,0x55,0xff,0xd3,0x01,0x82,0x01,0x56,0xff,0x4c,0x01,0x82,0x01,0x5c,0x00,0x5a,0x01,0x82,0x01,0x5e,0x00,0x5a,0x01,0x82,0x01,0x60,0x00,0x5a,0x01,0x82,0x01,0x63, +0xff,0xbe,0x01,0x82,0x01,0x6d,0xff,0x73,0x01,0x82,0x01,0x6e,0xff,0xd3,0x01,0x82,0x01,0x6f,0xff,0x4c,0x01,0x82,0x01,0x70,0xff,0xd3,0x01,0x82,0x01,0x71,0xff,0x4c,0x01,0x82,0x01,0x73,0xff,0x73,0x01,0x82,0x01,0x74,0xff,0xe5,0x01,0x82,0x01,0x75,0xff,0x7b,0x01,0x82,0x01,0x76,0x00,0x27,0x01,0x82,0x01,0x79,0xff,0x73,0x01,0x82, +0x01,0x7b,0xff,0x73,0x01,0x82,0x01,0x7d,0xff,0x73,0x01,0x82,0x01,0x7f,0xff,0x73,0x01,0x82,0x01,0x85,0xff,0x62,0x01,0x82,0x01,0x86,0xff,0x7f,0x01,0x82,0x01,0x87,0xff,0x62,0x01,0x82,0x01,0x88,0xff,0x39,0x01,0x82,0x01,0x89,0xff,0xd3,0x01,0x82,0x01,0x8a,0xff,0x4c,0x01,0x82,0x02,0x3d,0xff,0xe5,0x01,0x82,0x02,0x3e,0xff,0x7b, +0x01,0x83,0x00,0x05,0x00,0x1d,0x01,0x83,0x00,0x0a,0x00,0x1d,0x01,0x83,0x00,0x0f,0xff,0x9a,0x01,0x83,0x00,0x11,0xff,0x81,0x01,0x83,0x00,0x22,0xff,0xb4,0x01,0x83,0x00,0x46,0xff,0xf6,0x01,0x83,0x00,0x47,0xff,0xf6,0x01,0x83,0x00,0x48,0xff,0xf6,0x01,0x83,0x00,0x49,0x00,0x04,0x01,0x83,0x00,0x4a,0xff,0xf6,0x01,0x83,0x00,0x52, +0xff,0xf6,0x01,0x83,0x00,0x54,0xff,0xf6,0x01,0x83,0x00,0x57,0x00,0x06,0x01,0x83,0x00,0x6f,0xff,0xf6,0x01,0x83,0x00,0x70,0xff,0xf6,0x01,0x83,0x00,0x71,0xff,0xf6,0x01,0x83,0x00,0x72,0xff,0xf6,0x01,0x83,0x00,0x73,0xff,0xf6,0x01,0x83,0x00,0x79,0xff,0xf6,0x01,0x83,0x00,0x7a,0xff,0xf6,0x01,0x83,0x00,0x7b,0xff,0xf6,0x01,0x83, +0x00,0x7c,0xff,0xf6,0x01,0x83,0x00,0x7d,0xff,0xf6,0x01,0x83,0x00,0xac,0xff,0x81,0x01,0x83,0x00,0xb1,0xff,0xf6,0x01,0x83,0x00,0xbf,0x00,0x0c,0x01,0x83,0x00,0xc4,0xff,0x8d,0x01,0x83,0x00,0xc5,0xff,0x8d,0x01,0x83,0x00,0xf8,0xff,0xf6,0x01,0x83,0x00,0xfd,0xff,0xf6,0x01,0x83,0x00,0xff,0xff,0xf6,0x01,0x83,0x01,0x00,0xff,0xf6, +0x01,0x83,0x01,0x08,0xff,0xf6,0x01,0x83,0x01,0x0b,0xff,0xf6,0x01,0x83,0x01,0x0d,0xff,0xf6,0x01,0x83,0x01,0x19,0xff,0xf6,0x01,0x83,0x01,0x21,0x00,0x06,0x01,0x83,0x01,0x23,0x00,0x06,0x01,0x83,0x01,0x48,0xff,0xf6,0x01,0x83,0x01,0x4c,0xff,0xf6,0x01,0x83,0x01,0x4e,0xff,0xf6,0x01,0x83,0x01,0x50,0xff,0xf6,0x01,0x83,0x01,0x52, +0xff,0xf6,0x01,0x83,0x01,0x54,0xff,0xf6,0x01,0x83,0x01,0x56,0xff,0xf6,0x01,0x83,0x01,0x6f,0xff,0xf6,0x01,0x83,0x01,0x71,0xff,0xf6,0x01,0x83,0x01,0x77,0x00,0x06,0x01,0x83,0x01,0x8a,0xff,0xf6,0x01,0x84,0x00,0x0c,0x00,0x8d,0x01,0x84,0x00,0x0f,0xff,0x7f,0x01,0x84,0x00,0x10,0xff,0x9a,0x01,0x84,0x00,0x11,0xff,0x7f,0x01,0x84, +0x00,0x1d,0x00,0x52,0x01,0x84,0x00,0x1e,0x00,0x52,0x01,0x84,0x00,0x22,0x00,0x42,0x01,0x84,0x00,0x40,0x00,0x8d,0x01,0x84,0x00,0x45,0x00,0x12,0x01,0x84,0x00,0x4b,0x00,0x12,0x01,0x84,0x00,0x57,0x00,0x25,0x01,0x84,0x00,0x59,0x00,0x27,0x01,0x84,0x00,0x5a,0x00,0x27,0x01,0x84,0x00,0x5b,0x00,0x12,0x01,0x84,0x00,0x5c,0x00,0x21, +0x01,0x84,0x00,0x60,0x00,0x52,0x01,0x84,0x00,0x75,0x00,0x2d,0x01,0x84,0x00,0x76,0x00,0x12,0x01,0x84,0x00,0x77,0x00,0x79,0x01,0x84,0x00,0x8d,0x00,0x93,0x01,0x84,0x00,0xab,0x00,0x27,0x01,0x84,0x00,0xac,0xff,0x7f,0x01,0x84,0x00,0xb4,0x00,0x5e,0x01,0x84,0x00,0xb5,0x00,0x52,0x01,0x84,0x00,0xb6,0x00,0x5e,0x01,0x84,0x00,0xb7, +0x00,0x52,0x01,0x84,0x00,0xbf,0x00,0x27,0x01,0x84,0x00,0xc4,0xff,0xb0,0x01,0x84,0x00,0xc5,0xff,0xb0,0x01,0x84,0x00,0xeb,0x00,0x21,0x01,0x84,0x00,0xed,0x00,0x12,0x01,0x84,0x01,0x21,0x00,0x25,0x01,0x84,0x01,0x23,0x00,0x25,0x01,0x84,0x01,0x58,0x00,0x12,0x01,0x84,0x01,0x5a,0x00,0x12,0x01,0x84,0x01,0x5c,0x00,0x79,0x01,0x84, +0x01,0x5e,0x00,0x79,0x01,0x84,0x01,0x60,0x00,0x79,0x01,0x84,0x01,0x77,0x00,0x25,0x01,0x84,0x01,0x81,0x00,0x27,0x01,0x84,0x01,0x83,0x00,0x21,0x01,0x84,0x01,0x8d,0x00,0x27,0x01,0x84,0x01,0x8f,0x00,0x27,0x01,0x84,0x01,0x91,0x00,0x27,0x01,0x84,0x01,0x93,0x00,0x21,0x01,0x85,0x00,0x0d,0xff,0x7f,0x01,0x85,0x00,0x0f,0x00,0x44, +0x01,0x85,0x00,0x1e,0x00,0x44,0x01,0x85,0x00,0x26,0xff,0xe5,0x01,0x85,0x00,0x2a,0xff,0xe5,0x01,0x85,0x00,0x2d,0x00,0x5e,0x01,0x85,0x00,0x32,0xff,0xe5,0x01,0x85,0x00,0x37,0xff,0x6d,0x01,0x85,0x00,0x38,0xff,0xe5,0x01,0x85,0x00,0x39,0xff,0x8b,0x01,0x85,0x00,0x3a,0xff,0xb6,0x01,0x85,0x00,0x3c,0xff,0x64,0x01,0x85,0x00,0x3d, +0x00,0x3b,0x01,0x85,0x00,0x57,0xff,0xe5,0x01,0x85,0x00,0x59,0xff,0xd5,0x01,0x85,0x00,0x5a,0xff,0xe5,0x01,0x85,0x00,0x5c,0xff,0xdb,0x01,0x85,0x00,0x8d,0xff,0x9a,0x01,0x85,0x00,0xb4,0xff,0x66,0x01,0x85,0x00,0xb5,0xff,0x3f,0x01,0x85,0x00,0xb6,0xff,0x66,0x01,0x85,0x00,0xb7,0xff,0x3f,0x01,0x85,0x00,0xba,0xff,0xc1,0x01,0x85, +0x00,0xbb,0xff,0x64,0x01,0x85,0x00,0xe5,0x00,0x3b,0x01,0x85,0x00,0xea,0xff,0x64,0x01,0x85,0x00,0xeb,0xff,0xdb,0x01,0x85,0x00,0xf7,0xff,0xe5,0x01,0x85,0x00,0xfc,0xff,0xe5,0x01,0x85,0x00,0xfe,0xff,0xe5,0x01,0x85,0x01,0x18,0xff,0xe5,0x01,0x85,0x01,0x20,0xff,0x6d,0x01,0x85,0x01,0x21,0xff,0xe5,0x01,0x85,0x01,0x22,0xff,0x6d, +0x01,0x85,0x01,0x23,0xff,0xe5,0x01,0x85,0x01,0x24,0xff,0xe5,0x01,0x85,0x01,0x26,0xff,0xe5,0x01,0x85,0x01,0x28,0x00,0x3b,0x01,0x85,0x01,0x2a,0x00,0x3b,0x01,0x85,0x01,0x47,0xff,0xe5,0x01,0x85,0x01,0x51,0xff,0xe5,0x01,0x85,0x01,0x53,0xff,0xe5,0x01,0x85,0x01,0x55,0xff,0xe5,0x01,0x85,0x01,0x63,0x00,0x5e,0x01,0x85,0x01,0x6e, +0xff,0xe5,0x01,0x85,0x01,0x70,0xff,0xe5,0x01,0x85,0x01,0x76,0xff,0x6d,0x01,0x85,0x01,0x77,0xff,0xe5,0x01,0x85,0x01,0x78,0xff,0xe5,0x01,0x85,0x01,0x7a,0xff,0xe5,0x01,0x85,0x01,0x7c,0xff,0xe5,0x01,0x85,0x01,0x7e,0xff,0xe5,0x01,0x85,0x01,0x80,0xff,0xb6,0x01,0x85,0x01,0x81,0xff,0xe5,0x01,0x85,0x01,0x82,0xff,0x64,0x01,0x85, +0x01,0x83,0xff,0xdb,0x01,0x85,0x01,0x89,0xff,0xe5,0x01,0x85,0x01,0x8c,0xff,0xb6,0x01,0x85,0x01,0x8d,0xff,0xe5,0x01,0x85,0x01,0x8e,0xff,0xb6,0x01,0x85,0x01,0x8f,0xff,0xe5,0x01,0x85,0x01,0x90,0xff,0xb6,0x01,0x85,0x01,0x91,0xff,0xe5,0x01,0x85,0x01,0x92,0xff,0x64,0x01,0x85,0x01,0x93,0xff,0xdb,0x01,0x87,0x00,0x24,0x00,0x0a, +0x01,0x87,0x00,0x2d,0x00,0x44,0x01,0x87,0x00,0x37,0x00,0x04,0x01,0x87,0x00,0x3a,0x00,0x1d,0x01,0x87,0x00,0x3b,0x00,0x08,0x01,0x87,0x00,0x62,0x00,0x0a,0x01,0x87,0x00,0x63,0x00,0x0a,0x01,0x87,0x00,0x77,0x00,0x12,0x01,0x87,0x00,0xad,0x00,0x0a,0x01,0x87,0x00,0xae,0x00,0x0a,0x01,0x87,0x00,0xc7,0x00,0x0a,0x01,0x87,0x00,0xc9, +0x00,0x0a,0x01,0x87,0x01,0x03,0x00,0x0a,0x01,0x87,0x01,0x05,0x00,0x0a,0x01,0x87,0x01,0x20,0x00,0x04,0x01,0x87,0x01,0x22,0x00,0x04,0x01,0x87,0x01,0x45,0x00,0x0a,0x01,0x87,0x01,0x5c,0x00,0x12,0x01,0x87,0x01,0x5e,0x00,0x12,0x01,0x87,0x01,0x60,0x00,0x12,0x01,0x87,0x01,0x63,0x00,0x44,0x01,0x87,0x01,0x76,0x00,0x04,0x01,0x87, +0x01,0x80,0x00,0x1d,0x01,0x87,0x01,0x85,0x00,0x0a,0x01,0x87,0x01,0x87,0x00,0x0a,0x01,0x87,0x01,0x8c,0x00,0x1d,0x01,0x87,0x01,0x8e,0x00,0x1d,0x01,0x87,0x01,0x90,0x00,0x1d,0x01,0x88,0x00,0x05,0xff,0x98,0x01,0x88,0x00,0x0a,0xff,0x98,0x01,0x89,0x00,0x0f,0xff,0xa4,0x01,0x89,0x00,0x11,0xff,0xa4,0x01,0x89,0x00,0x24,0xff,0xe5, +0x01,0x89,0x00,0x2d,0xff,0xf6,0x01,0x89,0x00,0x37,0xff,0xa4,0x01,0x89,0x00,0x3b,0xff,0xdb,0x01,0x89,0x00,0x3c,0xff,0xe7,0x01,0x89,0x00,0x3d,0xff,0xcf,0x01,0x89,0x00,0x62,0xff,0xe5,0x01,0x89,0x00,0x63,0xff,0xe5,0x01,0x89,0x00,0xac,0xff,0xa4,0x01,0x89,0x00,0xad,0xff,0xe5,0x01,0x89,0x00,0xae,0xff,0xe5,0x01,0x89,0x00,0xbb, +0xff,0xf6,0x01,0x89,0x00,0xc4,0xff,0x4c,0x01,0x89,0x00,0xc5,0xff,0x98,0x01,0x89,0x00,0xc7,0xff,0xe5,0x01,0x89,0x00,0xc9,0xff,0xe5,0x01,0x89,0x00,0xe5,0xff,0xcf,0x01,0x89,0x00,0xea,0xff,0xe7,0x01,0x89,0x01,0x03,0xff,0xe5,0x01,0x89,0x01,0x05,0xff,0xe5,0x01,0x89,0x01,0x20,0xff,0xa4,0x01,0x89,0x01,0x22,0xff,0xa4,0x01,0x89, +0x01,0x28,0xff,0xcf,0x01,0x89,0x01,0x2a,0xff,0xcf,0x01,0x89,0x01,0x45,0xff,0xe5,0x01,0x89,0x01,0x63,0xff,0xf6,0x01,0x89,0x01,0x76,0xff,0xa4,0x01,0x89,0x01,0x82,0xff,0xe7,0x01,0x89,0x01,0x85,0xff,0xe5,0x01,0x89,0x01,0x87,0xff,0xe5,0x01,0x89,0x01,0x92,0xff,0xe7,0x01,0x8a,0x00,0x05,0xff,0x6f,0x01,0x8a,0x00,0x0a,0xff,0x6f, +0x01,0x8a,0x00,0x44,0xff,0xe5,0x01,0x8a,0x00,0x49,0xff,0xdb,0x01,0x8a,0x00,0x5b,0xff,0xe7,0x01,0x8a,0x00,0x69,0xff,0xe5,0x01,0x8a,0x00,0x6a,0xff,0xe5,0x01,0x8a,0x00,0x6b,0xff,0xe5,0x01,0x8a,0x00,0x6c,0xff,0xe5,0x01,0x8a,0x00,0x6d,0xff,0xe5,0x01,0x8a,0x00,0x6e,0xff,0xe5,0x01,0x8a,0x00,0xa0,0xff,0xe5,0x01,0x8a,0x00,0xb4, +0xff,0xb2,0x01,0x8a,0x00,0xb5,0xff,0x7d,0x01,0x8a,0x00,0xb6,0xff,0xbe,0x01,0x8a,0x00,0xb7,0xff,0x7d,0x01,0x8a,0x00,0xc0,0xff,0xe7,0x01,0x8a,0x00,0xc1,0xff,0xe7,0x01,0x8a,0x01,0x04,0xff,0xe5,0x01,0x8a,0x01,0x06,0xff,0xe5,0x01,0x8a,0x01,0x46,0xff,0xe5,0x01,0x8a,0x01,0x86,0xff,0xe5,0x01,0x8a,0x01,0x88,0xff,0xe5,0x01,0x8c, +0x00,0x0f,0xff,0x8b,0x01,0x8c,0x00,0x11,0xff,0x7f,0x01,0x8c,0x00,0x24,0xff,0xb6,0x01,0x8c,0x00,0x37,0x00,0x27,0x01,0x8c,0x00,0x44,0xff,0xb4,0x01,0x8c,0x00,0x46,0xff,0xcf,0x01,0x8c,0x00,0x47,0xff,0xcf,0x01,0x8c,0x00,0x48,0xff,0xcf,0x01,0x8c,0x00,0x4a,0xff,0xcf,0x01,0x8c,0x00,0x52,0xff,0xcf,0x01,0x8c,0x00,0x54,0xff,0xcf, +0x01,0x8c,0x00,0x62,0xff,0xb6,0x01,0x8c,0x00,0x63,0xff,0xb6,0x01,0x8c,0x00,0x69,0xff,0xb4,0x01,0x8c,0x00,0x6a,0xff,0xb4,0x01,0x8c,0x00,0x6b,0xff,0xb4,0x01,0x8c,0x00,0x6c,0xff,0xb4,0x01,0x8c,0x00,0x6d,0xff,0xb4,0x01,0x8c,0x00,0x6e,0xff,0xb4,0x01,0x8c,0x00,0x6f,0xff,0xcf,0x01,0x8c,0x00,0x70,0xff,0xcf,0x01,0x8c,0x00,0x71, +0xff,0xcf,0x01,0x8c,0x00,0x72,0xff,0xcf,0x01,0x8c,0x00,0x73,0xff,0xcf,0x01,0x8c,0x00,0x76,0x00,0x31,0x01,0x8c,0x00,0x77,0x00,0x64,0x01,0x8c,0x00,0x79,0xff,0xcf,0x01,0x8c,0x00,0x7a,0xff,0xcf,0x01,0x8c,0x00,0x7b,0xff,0xcf,0x01,0x8c,0x00,0x7c,0xff,0xcf,0x01,0x8c,0x00,0x7d,0xff,0xcf,0x01,0x8c,0x00,0x91,0xff,0x9a,0x01,0x8c, +0x00,0xa0,0xff,0xb4,0x01,0x8c,0x00,0xa2,0xff,0xa4,0x01,0x8c,0x00,0xaa,0xff,0xcf,0x01,0x8c,0x00,0xab,0x00,0x27,0x01,0x8c,0x00,0xac,0xff,0x7f,0x01,0x8c,0x00,0xad,0xff,0xb6,0x01,0x8c,0x00,0xae,0xff,0xb6,0x01,0x8c,0x00,0xb1,0xff,0xcf,0x01,0x8c,0x00,0xbe,0xff,0xcf,0x01,0x8c,0x00,0xbf,0x00,0x27,0x01,0x8c,0x00,0xc4,0xff,0x7f, +0x01,0x8c,0x00,0xc5,0xff,0x8b,0x01,0x8c,0x00,0xc7,0xff,0xb6,0x01,0x8c,0x00,0xc9,0xff,0xb6,0x01,0x8c,0x00,0xf8,0xff,0xcf,0x01,0x8c,0x00,0xfd,0xff,0xcf,0x01,0x8c,0x00,0xff,0xff,0xcf,0x01,0x8c,0x01,0x00,0xff,0xcf,0x01,0x8c,0x01,0x03,0xff,0xb6,0x01,0x8c,0x01,0x04,0xff,0xb4,0x01,0x8c,0x01,0x05,0xff,0xb6,0x01,0x8c,0x01,0x06, +0xff,0xb4,0x01,0x8c,0x01,0x08,0xff,0xcf,0x01,0x8c,0x01,0x0b,0xff,0xcf,0x01,0x8c,0x01,0x0d,0xff,0xcf,0x01,0x8c,0x01,0x19,0xff,0xcf,0x01,0x8c,0x01,0x20,0x00,0x27,0x01,0x8c,0x01,0x22,0x00,0x27,0x01,0x8c,0x01,0x45,0xff,0xb6,0x01,0x8c,0x01,0x46,0xff,0xb4,0x01,0x8c,0x01,0x48,0xff,0xcf,0x01,0x8c,0x01,0x4c,0xff,0xcf,0x01,0x8c, +0x01,0x4e,0xff,0xcf,0x01,0x8c,0x01,0x50,0xff,0xcf,0x01,0x8c,0x01,0x52,0xff,0xcf,0x01,0x8c,0x01,0x54,0xff,0xcf,0x01,0x8c,0x01,0x56,0xff,0xcf,0x01,0x8c,0x01,0x5c,0x00,0x64,0x01,0x8c,0x01,0x5e,0x00,0x64,0x01,0x8c,0x01,0x60,0x00,0x64,0x01,0x8c,0x01,0x6f,0xff,0xcf,0x01,0x8c,0x01,0x71,0xff,0xcf,0x01,0x8c,0x01,0x76,0x00,0x27, +0x01,0x8c,0x01,0x85,0xff,0xb6,0x01,0x8c,0x01,0x86,0xff,0xb4,0x01,0x8c,0x01,0x87,0xff,0xb6,0x01,0x8c,0x01,0x88,0xff,0xb4,0x01,0x8c,0x01,0x8a,0xff,0xcf,0x01,0x8d,0x00,0x0f,0xff,0xa6,0x01,0x8d,0x00,0x11,0xff,0x9a,0x01,0x8d,0x00,0x46,0xff,0xfa,0x01,0x8d,0x00,0x47,0xff,0xf6,0x01,0x8d,0x00,0x48,0xff,0xf6,0x01,0x8d,0x00,0x4a, +0xff,0xfa,0x01,0x8d,0x00,0x52,0xff,0xfa,0x01,0x8d,0x00,0x54,0xff,0xf6,0x01,0x8d,0x00,0x6f,0xff,0xfa,0x01,0x8d,0x00,0x70,0xff,0xf6,0x01,0x8d,0x00,0x71,0xff,0xf6,0x01,0x8d,0x00,0x72,0xff,0xf6,0x01,0x8d,0x00,0x73,0xff,0xf6,0x01,0x8d,0x00,0x79,0xff,0xfa,0x01,0x8d,0x00,0x7a,0xff,0xfa,0x01,0x8d,0x00,0x7b,0xff,0xfa,0x01,0x8d, +0x00,0x7c,0xff,0xfa,0x01,0x8d,0x00,0x7d,0xff,0xfa,0x01,0x8d,0x00,0xac,0xff,0x9a,0x01,0x8d,0x00,0xb1,0xff,0xfa,0x01,0x8d,0x00,0xc4,0xff,0xb4,0x01,0x8d,0x00,0xc5,0xff,0xb4,0x01,0x8d,0x00,0xf8,0xff,0xfa,0x01,0x8d,0x00,0xfd,0xff,0xfa,0x01,0x8d,0x00,0xff,0xff,0xfa,0x01,0x8d,0x01,0x00,0xff,0xf6,0x01,0x8d,0x01,0x08,0xff,0xf6, +0x01,0x8d,0x01,0x0b,0xff,0xf6,0x01,0x8d,0x01,0x0d,0xff,0xf6,0x01,0x8d,0x01,0x19,0xff,0xfa,0x01,0x8d,0x01,0x48,0xff,0xfa,0x01,0x8d,0x01,0x4c,0xff,0xf6,0x01,0x8d,0x01,0x4e,0xff,0xf6,0x01,0x8d,0x01,0x50,0xff,0xf6,0x01,0x8d,0x01,0x52,0xff,0xfa,0x01,0x8d,0x01,0x54,0xff,0xfa,0x01,0x8d,0x01,0x56,0xff,0xfa,0x01,0x8d,0x01,0x6f, +0xff,0xfa,0x01,0x8d,0x01,0x71,0xff,0xfa,0x01,0x8d,0x01,0x8a,0xff,0xfa,0x01,0x8e,0x00,0x0f,0xff,0x8b,0x01,0x8e,0x00,0x11,0xff,0x7f,0x01,0x8e,0x00,0x24,0xff,0xb6,0x01,0x8e,0x00,0x37,0x00,0x27,0x01,0x8e,0x00,0x44,0xff,0xb4,0x01,0x8e,0x00,0x46,0xff,0xcf,0x01,0x8e,0x00,0x47,0xff,0xcf,0x01,0x8e,0x00,0x48,0xff,0xcf,0x01,0x8e, +0x00,0x4a,0xff,0xcf,0x01,0x8e,0x00,0x52,0xff,0xcf,0x01,0x8e,0x00,0x54,0xff,0xcf,0x01,0x8e,0x00,0x62,0xff,0xb6,0x01,0x8e,0x00,0x63,0xff,0xb6,0x01,0x8e,0x00,0x69,0xff,0xb4,0x01,0x8e,0x00,0x6a,0xff,0xb4,0x01,0x8e,0x00,0x6b,0xff,0xb4,0x01,0x8e,0x00,0x6c,0xff,0xb4,0x01,0x8e,0x00,0x6d,0xff,0xb4,0x01,0x8e,0x00,0x6e,0xff,0xb4, +0x01,0x8e,0x00,0x6f,0xff,0xcf,0x01,0x8e,0x00,0x70,0xff,0xcf,0x01,0x8e,0x00,0x71,0xff,0xcf,0x01,0x8e,0x00,0x72,0xff,0xcf,0x01,0x8e,0x00,0x73,0xff,0xcf,0x01,0x8e,0x00,0x76,0x00,0x31,0x01,0x8e,0x00,0x77,0x00,0x64,0x01,0x8e,0x00,0x79,0xff,0xcf,0x01,0x8e,0x00,0x7a,0xff,0xcf,0x01,0x8e,0x00,0x7b,0xff,0xcf,0x01,0x8e,0x00,0x7c, +0xff,0xcf,0x01,0x8e,0x00,0x7d,0xff,0xcf,0x01,0x8e,0x00,0x91,0xff,0x9a,0x01,0x8e,0x00,0xa0,0xff,0xb4,0x01,0x8e,0x00,0xa2,0xff,0xa4,0x01,0x8e,0x00,0xaa,0xff,0xcf,0x01,0x8e,0x00,0xab,0x00,0x27,0x01,0x8e,0x00,0xac,0xff,0x7f,0x01,0x8e,0x00,0xad,0xff,0xb6,0x01,0x8e,0x00,0xae,0xff,0xb6,0x01,0x8e,0x00,0xb1,0xff,0xcf,0x01,0x8e, +0x00,0xbe,0xff,0xcf,0x01,0x8e,0x00,0xbf,0x00,0x27,0x01,0x8e,0x00,0xc4,0xff,0x7f,0x01,0x8e,0x00,0xc5,0xff,0x8b,0x01,0x8e,0x00,0xc7,0xff,0xb6,0x01,0x8e,0x00,0xc9,0xff,0xb6,0x01,0x8e,0x00,0xf8,0xff,0xcf,0x01,0x8e,0x00,0xfd,0xff,0xcf,0x01,0x8e,0x00,0xff,0xff,0xcf,0x01,0x8e,0x01,0x00,0xff,0xcf,0x01,0x8e,0x01,0x03,0xff,0xb6, +0x01,0x8e,0x01,0x04,0xff,0xb4,0x01,0x8e,0x01,0x05,0xff,0xb6,0x01,0x8e,0x01,0x06,0xff,0xb4,0x01,0x8e,0x01,0x08,0xff,0xcf,0x01,0x8e,0x01,0x0b,0xff,0xcf,0x01,0x8e,0x01,0x0d,0xff,0xcf,0x01,0x8e,0x01,0x19,0xff,0xcf,0x01,0x8e,0x01,0x20,0x00,0x27,0x01,0x8e,0x01,0x22,0x00,0x27,0x01,0x8e,0x01,0x45,0xff,0xb6,0x01,0x8e,0x01,0x46, +0xff,0xb4,0x01,0x8e,0x01,0x48,0xff,0xcf,0x01,0x8e,0x01,0x4c,0xff,0xcf,0x01,0x8e,0x01,0x4e,0xff,0xcf,0x01,0x8e,0x01,0x50,0xff,0xcf,0x01,0x8e,0x01,0x52,0xff,0xcf,0x01,0x8e,0x01,0x54,0xff,0xcf,0x01,0x8e,0x01,0x56,0xff,0xcf,0x01,0x8e,0x01,0x5c,0x00,0x64,0x01,0x8e,0x01,0x5e,0x00,0x64,0x01,0x8e,0x01,0x60,0x00,0x64,0x01,0x8e, +0x01,0x6f,0xff,0xcf,0x01,0x8e,0x01,0x71,0xff,0xcf,0x01,0x8e,0x01,0x76,0x00,0x27,0x01,0x8e,0x01,0x85,0xff,0xb6,0x01,0x8e,0x01,0x86,0xff,0xb4,0x01,0x8e,0x01,0x87,0xff,0xb6,0x01,0x8e,0x01,0x88,0xff,0xb4,0x01,0x8e,0x01,0x8a,0xff,0xcf,0x01,0x8f,0x00,0x0f,0xff,0xa6,0x01,0x8f,0x00,0x11,0xff,0x9a,0x01,0x8f,0x00,0x46,0xff,0xfa, +0x01,0x8f,0x00,0x47,0xff,0xf6,0x01,0x8f,0x00,0x48,0xff,0xf6,0x01,0x8f,0x00,0x4a,0xff,0xfa,0x01,0x8f,0x00,0x52,0xff,0xfa,0x01,0x8f,0x00,0x54,0xff,0xf6,0x01,0x8f,0x00,0x6f,0xff,0xfa,0x01,0x8f,0x00,0x70,0xff,0xf6,0x01,0x8f,0x00,0x71,0xff,0xf6,0x01,0x8f,0x00,0x72,0xff,0xf6,0x01,0x8f,0x00,0x73,0xff,0xf6,0x01,0x8f,0x00,0x79, +0xff,0xfa,0x01,0x8f,0x00,0x7a,0xff,0xfa,0x01,0x8f,0x00,0x7b,0xff,0xfa,0x01,0x8f,0x00,0x7c,0xff,0xfa,0x01,0x8f,0x00,0x7d,0xff,0xfa,0x01,0x8f,0x00,0xac,0xff,0x9a,0x01,0x8f,0x00,0xb1,0xff,0xfa,0x01,0x8f,0x00,0xc4,0xff,0xb4,0x01,0x8f,0x00,0xc5,0xff,0xb4,0x01,0x8f,0x00,0xf8,0xff,0xfa,0x01,0x8f,0x00,0xfd,0xff,0xfa,0x01,0x8f, +0x00,0xff,0xff,0xfa,0x01,0x8f,0x01,0x00,0xff,0xf6,0x01,0x8f,0x01,0x08,0xff,0xf6,0x01,0x8f,0x01,0x0b,0xff,0xf6,0x01,0x8f,0x01,0x0d,0xff,0xf6,0x01,0x8f,0x01,0x19,0xff,0xfa,0x01,0x8f,0x01,0x48,0xff,0xfa,0x01,0x8f,0x01,0x4c,0xff,0xf6,0x01,0x8f,0x01,0x4e,0xff,0xf6,0x01,0x8f,0x01,0x50,0xff,0xf6,0x01,0x8f,0x01,0x52,0xff,0xfa, +0x01,0x8f,0x01,0x54,0xff,0xfa,0x01,0x8f,0x01,0x56,0xff,0xfa,0x01,0x8f,0x01,0x6f,0xff,0xfa,0x01,0x8f,0x01,0x71,0xff,0xfa,0x01,0x8f,0x01,0x8a,0xff,0xfa,0x01,0x90,0x00,0x0f,0xff,0x8b,0x01,0x90,0x00,0x11,0xff,0x7f,0x01,0x90,0x00,0x24,0xff,0xb6,0x01,0x90,0x00,0x37,0x00,0x27,0x01,0x90,0x00,0x44,0xff,0xb4,0x01,0x90,0x00,0x46, +0xff,0xcf,0x01,0x90,0x00,0x47,0xff,0xcf,0x01,0x90,0x00,0x48,0xff,0xcf,0x01,0x90,0x00,0x4a,0xff,0xcf,0x01,0x90,0x00,0x52,0xff,0xcf,0x01,0x90,0x00,0x54,0xff,0xcf,0x01,0x90,0x00,0x62,0xff,0xb6,0x01,0x90,0x00,0x63,0xff,0xb6,0x01,0x90,0x00,0x69,0xff,0xb4,0x01,0x90,0x00,0x6a,0xff,0xb4,0x01,0x90,0x00,0x6b,0xff,0xb4,0x01,0x90, +0x00,0x6c,0xff,0xb4,0x01,0x90,0x00,0x6d,0xff,0xb4,0x01,0x90,0x00,0x6e,0xff,0xb4,0x01,0x90,0x00,0x6f,0xff,0xcf,0x01,0x90,0x00,0x70,0xff,0xcf,0x01,0x90,0x00,0x71,0xff,0xcf,0x01,0x90,0x00,0x72,0xff,0xcf,0x01,0x90,0x00,0x73,0xff,0xcf,0x01,0x90,0x00,0x76,0x00,0x31,0x01,0x90,0x00,0x77,0x00,0x64,0x01,0x90,0x00,0x79,0xff,0xcf, +0x01,0x90,0x00,0x7a,0xff,0xcf,0x01,0x90,0x00,0x7b,0xff,0xcf,0x01,0x90,0x00,0x7c,0xff,0xcf,0x01,0x90,0x00,0x7d,0xff,0xcf,0x01,0x90,0x00,0x91,0xff,0x9a,0x01,0x90,0x00,0xa0,0xff,0xb4,0x01,0x90,0x00,0xa2,0xff,0xa4,0x01,0x90,0x00,0xaa,0xff,0xcf,0x01,0x90,0x00,0xab,0x00,0x27,0x01,0x90,0x00,0xac,0xff,0x7f,0x01,0x90,0x00,0xad, +0xff,0xb6,0x01,0x90,0x00,0xae,0xff,0xb6,0x01,0x90,0x00,0xb1,0xff,0xcf,0x01,0x90,0x00,0xbe,0xff,0xcf,0x01,0x90,0x00,0xbf,0x00,0x27,0x01,0x90,0x00,0xc4,0xff,0x7f,0x01,0x90,0x00,0xc5,0xff,0x8b,0x01,0x90,0x00,0xc7,0xff,0xb6,0x01,0x90,0x00,0xc9,0xff,0xb6,0x01,0x90,0x00,0xf8,0xff,0xcf,0x01,0x90,0x00,0xfd,0xff,0xcf,0x01,0x90, +0x00,0xff,0xff,0xcf,0x01,0x90,0x01,0x00,0xff,0xcf,0x01,0x90,0x01,0x03,0xff,0xb6,0x01,0x90,0x01,0x04,0xff,0xb4,0x01,0x90,0x01,0x05,0xff,0xb6,0x01,0x90,0x01,0x06,0xff,0xb4,0x01,0x90,0x01,0x08,0xff,0xcf,0x01,0x90,0x01,0x0b,0xff,0xcf,0x01,0x90,0x01,0x0d,0xff,0xcf,0x01,0x90,0x01,0x19,0xff,0xcf,0x01,0x90,0x01,0x20,0x00,0x27, +0x01,0x90,0x01,0x22,0x00,0x27,0x01,0x90,0x01,0x45,0xff,0xb6,0x01,0x90,0x01,0x46,0xff,0xb4,0x01,0x90,0x01,0x48,0xff,0xcf,0x01,0x90,0x01,0x4c,0xff,0xcf,0x01,0x90,0x01,0x4e,0xff,0xcf,0x01,0x90,0x01,0x50,0xff,0xcf,0x01,0x90,0x01,0x52,0xff,0xcf,0x01,0x90,0x01,0x54,0xff,0xcf,0x01,0x90,0x01,0x56,0xff,0xcf,0x01,0x90,0x01,0x5c, +0x00,0x64,0x01,0x90,0x01,0x5e,0x00,0x64,0x01,0x90,0x01,0x60,0x00,0x64,0x01,0x90,0x01,0x6f,0xff,0xcf,0x01,0x90,0x01,0x71,0xff,0xcf,0x01,0x90,0x01,0x76,0x00,0x27,0x01,0x90,0x01,0x85,0xff,0xb6,0x01,0x90,0x01,0x86,0xff,0xb4,0x01,0x90,0x01,0x87,0xff,0xb6,0x01,0x90,0x01,0x88,0xff,0xb4,0x01,0x90,0x01,0x8a,0xff,0xcf,0x01,0x91, +0x00,0x0f,0xff,0xa6,0x01,0x91,0x00,0x11,0xff,0x9a,0x01,0x91,0x00,0x46,0xff,0xfa,0x01,0x91,0x00,0x47,0xff,0xf6,0x01,0x91,0x00,0x48,0xff,0xf6,0x01,0x91,0x00,0x4a,0xff,0xfa,0x01,0x91,0x00,0x52,0xff,0xfa,0x01,0x91,0x00,0x54,0xff,0xf6,0x01,0x91,0x00,0x6f,0xff,0xfa,0x01,0x91,0x00,0x70,0xff,0xf6,0x01,0x91,0x00,0x71,0xff,0xf6, +0x01,0x91,0x00,0x72,0xff,0xf6,0x01,0x91,0x00,0x73,0xff,0xf6,0x01,0x91,0x00,0x79,0xff,0xfa,0x01,0x91,0x00,0x7a,0xff,0xfa,0x01,0x91,0x00,0x7b,0xff,0xfa,0x01,0x91,0x00,0x7c,0xff,0xfa,0x01,0x91,0x00,0x7d,0xff,0xfa,0x01,0x91,0x00,0xac,0xff,0x9a,0x01,0x91,0x00,0xb1,0xff,0xfa,0x01,0x91,0x00,0xc4,0xff,0xb4,0x01,0x91,0x00,0xc5, +0xff,0xb4,0x01,0x91,0x00,0xf8,0xff,0xfa,0x01,0x91,0x00,0xfd,0xff,0xfa,0x01,0x91,0x00,0xff,0xff,0xfa,0x01,0x91,0x01,0x00,0xff,0xf6,0x01,0x91,0x01,0x08,0xff,0xf6,0x01,0x91,0x01,0x0b,0xff,0xf6,0x01,0x91,0x01,0x0d,0xff,0xf6,0x01,0x91,0x01,0x19,0xff,0xfa,0x01,0x91,0x01,0x48,0xff,0xfa,0x01,0x91,0x01,0x4c,0xff,0xf6,0x01,0x91, +0x01,0x4e,0xff,0xf6,0x01,0x91,0x01,0x50,0xff,0xf6,0x01,0x91,0x01,0x52,0xff,0xfa,0x01,0x91,0x01,0x54,0xff,0xfa,0x01,0x91,0x01,0x56,0xff,0xfa,0x01,0x91,0x01,0x6f,0xff,0xfa,0x01,0x91,0x01,0x71,0xff,0xfa,0x01,0x91,0x01,0x8a,0xff,0xfa,0x01,0x92,0x00,0x0f,0xff,0x50,0x01,0x92,0x00,0x11,0xff,0x3d,0x01,0x92,0x00,0x24,0xff,0x62, +0x01,0x92,0x00,0x26,0xff,0xd3,0x01,0x92,0x00,0x2a,0xff,0xd3,0x01,0x92,0x00,0x2d,0xff,0xbe,0x01,0x92,0x00,0x32,0xff,0xd3,0x01,0x92,0x00,0x34,0xff,0xd3,0x01,0x92,0x00,0x36,0xff,0xe5,0x01,0x92,0x00,0x37,0x00,0x27,0x01,0x92,0x00,0x44,0xff,0x39,0x01,0x92,0x00,0x46,0xff,0x4c,0x01,0x92,0x00,0x47,0xff,0x4c,0x01,0x92,0x00,0x48, +0xff,0x4c,0x01,0x92,0x00,0x49,0xff,0xe5,0x01,0x92,0x00,0x4a,0xff,0x4c,0x01,0x92,0x00,0x50,0xff,0x73,0x01,0x92,0x00,0x51,0xff,0x73,0x01,0x92,0x00,0x52,0xff,0x4c,0x01,0x92,0x00,0x53,0xff,0x73,0x01,0x92,0x00,0x54,0xff,0x4c,0x01,0x92,0x00,0x55,0xff,0x73,0x01,0x92,0x00,0x56,0xff,0x7b,0x01,0x92,0x00,0x58,0xff,0x73,0x01,0x92, +0x00,0x62,0xff,0x62,0x01,0x92,0x00,0x63,0xff,0x62,0x01,0x92,0x00,0x64,0xff,0xcd,0x01,0x92,0x00,0x67,0xff,0xd3,0x01,0x92,0x00,0x69,0xff,0x39,0x01,0x92,0x00,0x6a,0xff,0x39,0x01,0x92,0x00,0x6b,0xff,0x39,0x01,0x92,0x00,0x6c,0xff,0x7f,0x01,0x92,0x00,0x6d,0xff,0x66,0x01,0x92,0x00,0x6e,0xff,0x39,0x01,0x92,0x00,0x6f,0xff,0x4c, +0x01,0x92,0x00,0x70,0xff,0x4c,0x01,0x92,0x00,0x71,0xff,0x4c,0x01,0x92,0x00,0x72,0xff,0x4c,0x01,0x92,0x00,0x73,0xff,0x4c,0x01,0x92,0x00,0x77,0x00,0x5a,0x01,0x92,0x00,0x78,0xff,0x73,0x01,0x92,0x00,0x79,0xff,0x4c,0x01,0x92,0x00,0x7a,0xff,0x4c,0x01,0x92,0x00,0x7b,0xff,0x4c,0x01,0x92,0x00,0x7c,0xff,0x4c,0x01,0x92,0x00,0x7d, +0xff,0x4c,0x01,0x92,0x00,0x7e,0xff,0x73,0x01,0x92,0x00,0x7f,0xff,0x73,0x01,0x92,0x00,0x80,0xff,0x73,0x01,0x92,0x00,0x81,0xff,0x73,0x01,0x92,0x00,0x91,0xff,0x3f,0x01,0x92,0x00,0x92,0xff,0xd3,0x01,0x92,0x00,0xa0,0xff,0x39,0x01,0x92,0x00,0xa2,0xff,0x1b,0x01,0x92,0x00,0xaa,0xff,0xcf,0x01,0x92,0x00,0xac,0xff,0x3d,0x01,0x92, +0x00,0xad,0xff,0x62,0x01,0x92,0x00,0xae,0xff,0x62,0x01,0x92,0x00,0xaf,0xff,0xd3,0x01,0x92,0x00,0xb0,0xff,0xd3,0x01,0x92,0x00,0xb1,0xff,0x4c,0x01,0x92,0x00,0xbe,0xff,0x9a,0x01,0x92,0x00,0xc4,0xff,0x08,0x01,0x92,0x00,0xc5,0xff,0x08,0x01,0x92,0x00,0xc7,0xff,0x62,0x01,0x92,0x00,0xc9,0xff,0x62,0x01,0x92,0x00,0xd0,0xff,0xd3, +0x01,0x92,0x00,0xd1,0xff,0xd3,0x01,0x92,0x00,0xd2,0xff,0xd3,0x01,0x92,0x00,0xe3,0xff,0xe5,0x01,0x92,0x00,0xe4,0xff,0x7b,0x01,0x92,0x00,0xf7,0xff,0xd3,0x01,0x92,0x00,0xf8,0xff,0x4c,0x01,0x92,0x00,0xfa,0xff,0xe5,0x01,0x92,0x00,0xfb,0xff,0x7b,0x01,0x92,0x00,0xfc,0xff,0xd3,0x01,0x92,0x00,0xfd,0xff,0x4c,0x01,0x92,0x00,0xfe, +0xff,0xd3,0x01,0x92,0x00,0xff,0xff,0x4c,0x01,0x92,0x01,0x00,0xff,0x4c,0x01,0x92,0x01,0x03,0xff,0x62,0x01,0x92,0x01,0x04,0xff,0x7f,0x01,0x92,0x01,0x05,0xff,0x62,0x01,0x92,0x01,0x06,0xff,0x39,0x01,0x92,0x01,0x08,0xff,0x4c,0x01,0x92,0x01,0x0b,0xff,0x4c,0x01,0x92,0x01,0x0d,0xff,0x4c,0x01,0x92,0x01,0x15,0xff,0x73,0x01,0x92, +0x01,0x17,0xff,0x73,0x01,0x92,0x01,0x18,0xff,0xd3,0x01,0x92,0x01,0x19,0xff,0x4c,0x01,0x92,0x01,0x1b,0xff,0x73,0x01,0x92,0x01,0x1d,0xff,0x73,0x01,0x92,0x01,0x1e,0xff,0xe5,0x01,0x92,0x01,0x1f,0xff,0x7b,0x01,0x92,0x01,0x20,0x00,0x27,0x01,0x92,0x01,0x22,0x00,0x27,0x01,0x92,0x01,0x25,0xff,0x73,0x01,0x92,0x01,0x27,0xff,0x73, +0x01,0x92,0x01,0x45,0xff,0x62,0x01,0x92,0x01,0x46,0xff,0x7f,0x01,0x92,0x01,0x47,0xff,0xd3,0x01,0x92,0x01,0x48,0xff,0x4c,0x01,0x92,0x01,0x4c,0xff,0x4c,0x01,0x92,0x01,0x4e,0xff,0x4c,0x01,0x92,0x01,0x50,0xff,0x4c,0x01,0x92,0x01,0x51,0xff,0xd3,0x01,0x92,0x01,0x52,0xff,0x4c,0x01,0x92,0x01,0x53,0xff,0xd3,0x01,0x92,0x01,0x54, +0xff,0x4c,0x01,0x92,0x01,0x55,0xff,0xd3,0x01,0x92,0x01,0x56,0xff,0x4c,0x01,0x92,0x01,0x5c,0x00,0x5a,0x01,0x92,0x01,0x5e,0x00,0x5a,0x01,0x92,0x01,0x60,0x00,0x5a,0x01,0x92,0x01,0x63,0xff,0xbe,0x01,0x92,0x01,0x6d,0xff,0x73,0x01,0x92,0x01,0x6e,0xff,0xd3,0x01,0x92,0x01,0x6f,0xff,0x4c,0x01,0x92,0x01,0x70,0xff,0xd3,0x01,0x92, +0x01,0x71,0xff,0x4c,0x01,0x92,0x01,0x73,0xff,0x73,0x01,0x92,0x01,0x74,0xff,0xe5,0x01,0x92,0x01,0x75,0xff,0x7b,0x01,0x92,0x01,0x76,0x00,0x27,0x01,0x92,0x01,0x79,0xff,0x73,0x01,0x92,0x01,0x7b,0xff,0x73,0x01,0x92,0x01,0x7d,0xff,0x73,0x01,0x92,0x01,0x7f,0xff,0x73,0x01,0x92,0x01,0x85,0xff,0x62,0x01,0x92,0x01,0x86,0xff,0x7f, +0x01,0x92,0x01,0x87,0xff,0x62,0x01,0x92,0x01,0x88,0xff,0x39,0x01,0x92,0x01,0x89,0xff,0xd3,0x01,0x92,0x01,0x8a,0xff,0x4c,0x01,0x92,0x02,0x3d,0xff,0xe5,0x01,0x92,0x02,0x3e,0xff,0x7b,0x01,0x93,0x00,0x05,0x00,0x1d,0x01,0x93,0x00,0x0a,0x00,0x1d,0x01,0x93,0x00,0x0f,0xff,0x9a,0x01,0x93,0x00,0x11,0xff,0x81,0x01,0x93,0x00,0x22, +0xff,0xb4,0x01,0x93,0x00,0x46,0xff,0xf6,0x01,0x93,0x00,0x47,0xff,0xf6,0x01,0x93,0x00,0x48,0xff,0xf6,0x01,0x93,0x00,0x49,0x00,0x04,0x01,0x93,0x00,0x4a,0xff,0xf6,0x01,0x93,0x00,0x52,0xff,0xf6,0x01,0x93,0x00,0x54,0xff,0xf6,0x01,0x93,0x00,0x57,0x00,0x06,0x01,0x93,0x00,0x6f,0xff,0xf6,0x01,0x93,0x00,0x70,0xff,0xf6,0x01,0x93, +0x00,0x71,0xff,0xf6,0x01,0x93,0x00,0x72,0xff,0xf6,0x01,0x93,0x00,0x73,0xff,0xf6,0x01,0x93,0x00,0x79,0xff,0xf6,0x01,0x93,0x00,0x7a,0xff,0xf6,0x01,0x93,0x00,0x7b,0xff,0xf6,0x01,0x93,0x00,0x7c,0xff,0xf6,0x01,0x93,0x00,0x7d,0xff,0xf6,0x01,0x93,0x00,0xac,0xff,0x81,0x01,0x93,0x00,0xb1,0xff,0xf6,0x01,0x93,0x00,0xbf,0x00,0x0c, +0x01,0x93,0x00,0xc4,0xff,0x8d,0x01,0x93,0x00,0xc5,0xff,0x8d,0x01,0x93,0x00,0xf8,0xff,0xf6,0x01,0x93,0x00,0xfd,0xff,0xf6,0x01,0x93,0x00,0xff,0xff,0xf6,0x01,0x93,0x01,0x00,0xff,0xf6,0x01,0x93,0x01,0x08,0xff,0xf6,0x01,0x93,0x01,0x0b,0xff,0xf6,0x01,0x93,0x01,0x0d,0xff,0xf6,0x01,0x93,0x01,0x19,0xff,0xf6,0x01,0x93,0x01,0x21, +0x00,0x06,0x01,0x93,0x01,0x23,0x00,0x06,0x01,0x93,0x01,0x48,0xff,0xf6,0x01,0x93,0x01,0x4c,0xff,0xf6,0x01,0x93,0x01,0x4e,0xff,0xf6,0x01,0x93,0x01,0x50,0xff,0xf6,0x01,0x93,0x01,0x52,0xff,0xf6,0x01,0x93,0x01,0x54,0xff,0xf6,0x01,0x93,0x01,0x56,0xff,0xf6,0x01,0x93,0x01,0x6f,0xff,0xf6,0x01,0x93,0x01,0x71,0xff,0xf6,0x01,0x93, +0x01,0x77,0x00,0x06,0x01,0x93,0x01,0x8a,0xff,0xf6,0x01,0xa1,0x00,0x0d,0xff,0x7f,0x01,0xa1,0x00,0x8d,0xff,0x98,0x01,0xa1,0x00,0xb4,0xff,0x66,0x01,0xa1,0x00,0xb5,0xff,0x3d,0x01,0xa1,0x00,0xb6,0xff,0x66,0x01,0xa1,0x00,0xb7,0xff,0x3d,0x01,0xa1,0x01,0x2d,0xff,0xe5,0x01,0xa1,0x01,0x2e,0xff,0xcf,0x01,0xa1,0x01,0x33,0xff,0x8f, +0x01,0xa1,0x01,0xb4,0xff,0xe5,0x01,0xa1,0x01,0xb7,0x00,0x3d,0x01,0xa1,0x01,0xb8,0xff,0x6d,0x01,0xa1,0x01,0xb9,0xff,0x64,0x01,0xa1,0x01,0xbb,0xff,0x79,0x01,0xa1,0x01,0xbe,0xff,0x64,0x01,0xa1,0x01,0xc5,0xff,0xaa,0x01,0xa1,0x01,0xc8,0xff,0xe7,0x01,0xa1,0x01,0xd3,0xff,0xcf,0x01,0xa2,0x00,0xa9,0x00,0x0c,0x01,0xa2,0x01,0xa8, +0x00,0x0a,0x01,0xa2,0x01,0xa9,0x00,0x0c,0x01,0xa2,0x01,0xb0,0x00,0x0c,0x01,0xa2,0x01,0xb8,0x00,0x33,0x01,0xa5,0x01,0xa9,0xff,0xe5,0x01,0xa5,0x01,0xb0,0xff,0xe5,0x01,0xa5,0x01,0xb8,0xff,0xa4,0x01,0xa5,0x01,0xb9,0xff,0xe7,0x01,0xa5,0x01,0xbe,0xff,0xe7,0x01,0xa5,0x01,0xcb,0xff,0xd7,0x01,0xa6,0x00,0x04,0xff,0xd7,0x01,0xa6, +0x00,0x11,0xff,0x71,0x01,0xa6,0x00,0x1e,0xff,0x4c,0x01,0xa6,0x00,0xa2,0xff,0xd7,0x01,0xa6,0x00,0xa9,0xff,0x71,0x01,0xa6,0x00,0xac,0xff,0x71,0x01,0xa6,0x01,0x2d,0xff,0xd3,0x01,0xa6,0x01,0x2e,0xff,0xd3,0x01,0xa6,0x01,0x2f,0xff,0x4c,0x01,0xa6,0x01,0x30,0xff,0xc3,0x01,0xa6,0x01,0x31,0xff,0x9c,0x01,0xa6,0x01,0x32,0xff,0x4c, +0x01,0xa6,0x01,0x33,0xff,0xcf,0x01,0xa6,0x01,0x34,0xff,0x4c,0x01,0xa6,0x01,0xa9,0xff,0x60,0x01,0xa6,0x01,0xb0,0xff,0x60,0x01,0xa6,0x01,0xb4,0xff,0xd3,0x01,0xa6,0x01,0xb8,0x00,0x29,0x01,0xa6,0x01,0xbf,0xff,0x4c,0x01,0xa6,0x01,0xc0,0xff,0x9c,0x01,0xa6,0x01,0xc3,0xff,0x9a,0x01,0xa6,0x01,0xc6,0xff,0xc1,0x01,0xa6,0x01,0xc7, +0xff,0x71,0x01,0xa6,0x01,0xc9,0xff,0xd7,0x01,0xa6,0x01,0xca,0xff,0x71,0x01,0xa6,0x01,0xcc,0xff,0x71,0x01,0xa6,0x01,0xce,0xff,0xb0,0x01,0xa6,0x01,0xcf,0xff,0x4c,0x01,0xa6,0x01,0xd0,0xff,0x71,0x01,0xa6,0x01,0xd1,0xff,0x4c,0x01,0xa6,0x01,0xd2,0xff,0x9a,0x01,0xa6,0x01,0xd3,0xff,0xdb,0x01,0xa6,0x01,0xd4,0xff,0x9a,0x01,0xa6, +0x01,0xd5,0xff,0x4c,0x01,0xa6,0x01,0xd7,0xff,0x9a,0x01,0xa6,0x01,0xd8,0xff,0x4c,0x01,0xa6,0x01,0xd9,0xff,0x9a,0x01,0xa6,0x01,0xda,0xff,0x4c,0x01,0xa6,0x02,0x37,0xff,0xcf,0x01,0xa8,0x01,0xcb,0x00,0x6a,0x01,0xa9,0x00,0x0d,0xff,0x7f,0x01,0xa9,0x00,0x0f,0x00,0x46,0x01,0xa9,0x00,0x1e,0x00,0x46,0x01,0xa9,0x00,0x8d,0xff,0x98, +0x01,0xa9,0x00,0xa4,0xff,0xf6,0x01,0xa9,0x00,0xb4,0xff,0x66,0x01,0xa9,0x00,0xb5,0xff,0x3d,0x01,0xa9,0x00,0xb6,0xff,0x66,0x01,0xa9,0x00,0xb7,0xff,0x3d,0x01,0xa9,0x01,0x2d,0xff,0xe5,0x01,0xa9,0x01,0x2e,0xff,0xcf,0x01,0xa9,0x01,0x33,0xff,0x8f,0x01,0xa9,0x01,0xb4,0xff,0xe5,0x01,0xa9,0x01,0xb7,0x00,0x3d,0x01,0xa9,0x01,0xb8, +0xff,0x6d,0x01,0xa9,0x01,0xb9,0xff,0x64,0x01,0xa9,0x01,0xbb,0xff,0x79,0x01,0xa9,0x01,0xbe,0xff,0x64,0x01,0xa9,0x01,0xc5,0xff,0xaa,0x01,0xa9,0x01,0xc8,0xff,0xe7,0x01,0xa9,0x01,0xcb,0x00,0x3d,0x01,0xa9,0x01,0xcd,0xff,0xcf,0x01,0xa9,0x01,0xd3,0xff,0xcf,0x01,0xa9,0x01,0xd4,0xff,0xf6,0x01,0xaa,0x00,0xc4,0xff,0xb0,0x01,0xaa, +0x00,0xc5,0xff,0xb0,0x01,0xaa,0x01,0xb8,0xff,0xa4,0x01,0xaa,0x01,0xb9,0xff,0xbe,0x01,0xaa,0x01,0xbb,0xff,0xe7,0x01,0xaa,0x01,0xbe,0xff,0xbe,0x01,0xaa,0x01,0xd3,0xff,0xe7,0x01,0xab,0x00,0xa9,0x00,0x0c,0x01,0xab,0x01,0xa8,0x00,0x0a,0x01,0xab,0x01,0xa9,0x00,0x0c,0x01,0xab,0x01,0xb0,0x00,0x0c,0x01,0xab,0x01,0xb8,0x00,0x33, +0x01,0xab,0x01,0xba,0x00,0x0a,0x01,0xac,0x00,0xab,0x00,0x29,0x01,0xac,0x00,0xbf,0x00,0x52,0x01,0xac,0x01,0xa8,0x00,0x3d,0x01,0xac,0x01,0xb8,0x00,0x29,0x01,0xac,0x01,0xcb,0x00,0x25,0x01,0xaf,0x00,0x0f,0x00,0x29,0x01,0xaf,0x00,0x1e,0x00,0x29,0x01,0xaf,0x00,0xc4,0x00,0x46,0x01,0xaf,0x00,0xc5,0x00,0x46,0x01,0xaf,0x01,0x2d, +0xff,0xa6,0x01,0xaf,0x01,0x2e,0xff,0x91,0x01,0xaf,0x01,0x2f,0xff,0xe7,0x01,0xaf,0x01,0x30,0xff,0xe7,0x01,0xaf,0x01,0x32,0xff,0xe7,0x01,0xaf,0x01,0x33,0xff,0x9a,0x01,0xaf,0x01,0x34,0xff,0xe7,0x01,0xaf,0x01,0xa8,0x00,0x4a,0x01,0xaf,0x01,0xac,0x00,0x29,0x01,0xaf,0x01,0xb4,0xff,0xa6,0x01,0xaf,0x01,0xb7,0x00,0x3f,0x01,0xaf, +0x01,0xba,0x00,0x25,0x01,0xaf,0x01,0xbb,0xff,0xdb,0x01,0xaf,0x01,0xbf,0xff,0xe7,0x01,0xaf,0x01,0xc2,0xff,0xe7,0x01,0xaf,0x01,0xc3,0xff,0xe7,0x01,0xaf,0x01,0xc5,0xff,0xd1,0x01,0xaf,0x01,0xc8,0xff,0xe7,0x01,0xaf,0x01,0xc9,0xff,0xe7,0x01,0xaf,0x01,0xca,0x00,0x29,0x01,0xaf,0x01,0xcb,0x00,0x3d,0x01,0xaf,0x01,0xcc,0x00,0x29, +0x01,0xaf,0x01,0xcf,0xff,0xe7,0x01,0xaf,0x01,0xd1,0xff,0xe7,0x01,0xaf,0x01,0xd2,0xff,0xe7,0x01,0xaf,0x01,0xd4,0xff,0xe7,0x01,0xaf,0x01,0xd5,0xff,0xe7,0x01,0xaf,0x01,0xd7,0xff,0xe7,0x01,0xaf,0x01,0xd9,0xff,0xe7,0x01,0xaf,0x01,0xda,0xff,0xe7,0x01,0xb0,0x00,0x0d,0xff,0x7f,0x01,0xb0,0x00,0x8d,0xff,0x98,0x01,0xb0,0x00,0xb4, +0xff,0x66,0x01,0xb0,0x00,0xb5,0xff,0x3d,0x01,0xb0,0x00,0xb6,0xff,0x66,0x01,0xb0,0x00,0xb7,0xff,0x3d,0x01,0xb0,0x01,0x2d,0xff,0xe5,0x01,0xb0,0x01,0x2e,0xff,0xcf,0x01,0xb0,0x01,0x33,0xff,0x8f,0x01,0xb0,0x01,0xb4,0xff,0xe5,0x01,0xb0,0x01,0xb7,0x00,0x3d,0x01,0xb0,0x01,0xb8,0xff,0x6d,0x01,0xb0,0x01,0xb9,0xff,0x64,0x01,0xb0, +0x01,0xbb,0xff,0x79,0x01,0xb0,0x01,0xbe,0xff,0x64,0x01,0xb0,0x01,0xc3,0xff,0xf6,0x01,0xb0,0x01,0xc5,0xff,0xaa,0x01,0xb0,0x01,0xc8,0xff,0xe7,0x01,0xb0,0x01,0xcb,0x00,0x3d,0x01,0xb0,0x01,0xcd,0xff,0xcf,0x01,0xb0,0x01,0xd3,0xff,0xcf,0x01,0xb0,0x01,0xd4,0xff,0xf6,0x01,0xb0,0x01,0xd9,0xff,0xf6,0x01,0xb3,0x01,0xa8,0x00,0x3d, +0x01,0xb3,0x01,0xb7,0x00,0x25,0x01,0xb3,0x01,0xcb,0x00,0x3d,0x01,0xb4,0x00,0x0f,0xff,0xa2,0x01,0xb4,0x00,0xa9,0xff,0xcf,0x01,0xb4,0x00,0xc4,0xff,0x4a,0x01,0xb4,0x00,0xc5,0xff,0x96,0x01,0xb4,0x01,0xa9,0xff,0xe5,0x01,0xb4,0x01,0xac,0xff,0xcd,0x01,0xb4,0x01,0xb0,0xff,0xe5,0x01,0xb4,0x01,0xb7,0xff,0xe3,0x01,0xb4,0x01,0xb8, +0xff,0xa4,0x01,0xb4,0x01,0xb9,0xff,0xe7,0x01,0xb4,0x01,0xba,0xff,0xdb,0x01,0xb4,0x01,0xbe,0xff,0xe7,0x01,0xb4,0x01,0xcb,0xff,0xd7,0x01,0xb6,0x00,0x0f,0xfe,0xba,0x01,0xb6,0x00,0x11,0xfe,0xba,0x01,0xb6,0x00,0xa9,0xff,0x58,0x01,0xb6,0x00,0xac,0xfe,0xba,0x01,0xb6,0x00,0xc4,0xfe,0xba,0x01,0xb6,0x00,0xc5,0xfe,0xae,0x01,0xb6, +0x01,0x2f,0xff,0xb2,0x01,0xb6,0x01,0x30,0xff,0xb2,0x01,0xb6,0x01,0x32,0xff,0xb2,0x01,0xb6,0x01,0x34,0xff,0xb2,0x01,0xb6,0x01,0xa9,0xff,0x60,0x01,0xb6,0x01,0xb0,0xff,0x60,0x01,0xb6,0x01,0xba,0xff,0xc3,0x01,0xb6,0x01,0xbf,0xff,0xb2,0x01,0xb6,0x01,0xcb,0xff,0xc3,0x01,0xb6,0x01,0xcf,0xff,0xb2,0x01,0xb6,0x01,0xd0,0xff,0xa0, +0x01,0xb6,0x01,0xd1,0xff,0xc3,0x01,0xb6,0x01,0xd5,0xff,0xc3,0x01,0xb6,0x01,0xd8,0xff,0xb2,0x01,0xb7,0x00,0xa9,0x00,0x3d,0x01,0xb7,0x01,0x2d,0xff,0xe7,0x01,0xb7,0x01,0x2e,0xff,0xe7,0x01,0xb7,0x01,0x33,0xff,0xb6,0x01,0xb7,0x01,0xa9,0x00,0x3d,0x01,0xb7,0x01,0xb0,0x00,0x3d,0x01,0xb7,0x01,0xb3,0x00,0x25,0x01,0xb7,0x01,0xb4, +0xff,0xe7,0x01,0xb7,0x01,0xba,0x00,0x12,0x01,0xb7,0x01,0xcb,0x00,0x3d,0x01,0xb7,0x01,0xd3,0xff,0xdb,0x01,0xb8,0x00,0x0f,0xff,0x7d,0x01,0xb8,0x00,0x11,0xff,0x4c,0x01,0xb8,0x00,0x1d,0xff,0x7d,0x01,0xb8,0x00,0x1e,0xff,0xe9,0x01,0xb8,0x00,0x8d,0x00,0x52,0x01,0xb8,0x00,0xa9,0xff,0x6d,0x01,0xb8,0x00,0xaa,0xff,0x98,0x01,0xb8, +0x00,0xab,0xff,0xcd,0x01,0xb8,0x00,0xac,0xff,0x4c,0x01,0xb8,0x00,0xb5,0x00,0x29,0x01,0xb8,0x00,0xb7,0x00,0x29,0x01,0xb8,0x00,0xbe,0xff,0x98,0x01,0xb8,0x00,0xbf,0xff,0xcd,0x01,0xb8,0x00,0xc4,0xff,0x14,0x01,0xb8,0x00,0xc5,0xff,0x14,0x01,0xb8,0x01,0x2d,0xff,0xa4,0x01,0xb8,0x01,0x2e,0xff,0xa4,0x01,0xb8,0x01,0x2f,0xff,0x2b, +0x01,0xb8,0x01,0x30,0xff,0xb0,0x01,0xb8,0x01,0x31,0xff,0x2b,0x01,0xb8,0x01,0x32,0xff,0x2b,0x01,0xb8,0x01,0x33,0xff,0x8f,0x01,0xb8,0x01,0x34,0xff,0x2b,0x01,0xb8,0x01,0xa8,0x00,0x7b,0x01,0xb8,0x01,0xa9,0xff,0x66,0x01,0xb8,0x01,0xb0,0xff,0x66,0x01,0xb8,0x01,0xb4,0xff,0xa4,0x01,0xb8,0x01,0xb8,0x00,0x29,0x01,0xb8,0x01,0xb9, +0x00,0x1d,0x01,0xb8,0x01,0xba,0xff,0xf8,0x01,0xb8,0x01,0xbe,0x00,0x1d,0x01,0xb8,0x01,0xbf,0xff,0x2b,0x01,0xb8,0x01,0xc0,0xff,0x2b,0x01,0xb8,0x01,0xc1,0xff,0x4e,0x01,0xb8,0x01,0xc2,0xff,0x8f,0x01,0xb8,0x01,0xc3,0xff,0x4e,0x01,0xb8,0x01,0xc5,0xff,0xc1,0x01,0xb8,0x01,0xc6,0xff,0xc1,0x01,0xb8,0x01,0xc7,0xff,0x4e,0x01,0xb8, +0x01,0xc9,0xff,0x4e,0x01,0xb8,0x01,0xca,0xff,0x4e,0x01,0xb8,0x01,0xcc,0xff,0x4e,0x01,0xb8,0x01,0xce,0xff,0xb0,0x01,0xb8,0x01,0xcf,0xff,0x2b,0x01,0xb8,0x01,0xd0,0xff,0x4e,0x01,0xb8,0x01,0xd1,0xff,0x2b,0x01,0xb8,0x01,0xd2,0xff,0x4e,0x01,0xb8,0x01,0xd3,0xff,0x7f,0x01,0xb8,0x01,0xd4,0xff,0x4e,0x01,0xb8,0x01,0xd5,0xff,0x2b, +0x01,0xb8,0x01,0xd6,0x00,0x52,0x01,0xb8,0x01,0xd7,0xff,0x4e,0x01,0xb8,0x01,0xd8,0xff,0x2b,0x01,0xb8,0x01,0xd9,0xff,0x4e,0x01,0xb8,0x01,0xda,0xff,0x2b,0x01,0xb8,0x02,0x37,0xff,0x8f,0x01,0xb9,0x00,0x0f,0xff,0x50,0x01,0xb9,0x00,0x11,0xff,0x3d,0x01,0xb9,0x00,0x1e,0xff,0x4c,0x01,0xb9,0x00,0xa2,0xff,0x19,0x01,0xb9,0x00,0xa9, +0xff,0x71,0x01,0xb9,0x00,0xaa,0xff,0xcd,0x01,0xb9,0x00,0xac,0xff,0x3d,0x01,0xb9,0x00,0xbe,0xff,0x98,0x01,0xb9,0x00,0xc4,0xff,0x06,0x01,0xb9,0x00,0xc5,0xff,0x06,0x01,0xb9,0x01,0x2d,0xff,0xd3,0x01,0xb9,0x01,0x2e,0xff,0xd3,0x01,0xb9,0x01,0x2f,0xff,0x4c,0x01,0xb9,0x01,0x30,0xff,0xc3,0x01,0xb9,0x01,0x31,0xff,0x9c,0x01,0xb9, +0x01,0x32,0xff,0x4c,0x01,0xb9,0x01,0x33,0xff,0xcf,0x01,0xb9,0x01,0x34,0xff,0x4c,0x01,0xb9,0x01,0xa8,0x00,0x5c,0x01,0xb9,0x01,0xa9,0xff,0x60,0x01,0xb9,0x01,0xb0,0xff,0x60,0x01,0xb9,0x01,0xb4,0xff,0xd3,0x01,0xb9,0x01,0xb8,0x00,0x29,0x01,0xb9,0x01,0xbf,0xff,0x4c,0x01,0xb9,0x01,0xc0,0xff,0x9c,0x01,0xb9,0x01,0xc2,0xff,0x9a, +0x01,0xb9,0x01,0xc3,0xff,0x9a,0x01,0xb9,0x01,0xc6,0xff,0xc1,0x01,0xb9,0x01,0xc7,0xff,0x71,0x01,0xb9,0x01,0xc9,0xff,0x9a,0x01,0xb9,0x01,0xca,0xff,0x71,0x01,0xb9,0x01,0xcc,0xff,0x71,0x01,0xb9,0x01,0xce,0xff,0xb0,0x01,0xb9,0x01,0xcf,0xff,0x4c,0x01,0xb9,0x01,0xd0,0xff,0x71,0x01,0xb9,0x01,0xd1,0xff,0x4c,0x01,0xb9,0x01,0xd2, +0xff,0x9a,0x01,0xb9,0x01,0xd3,0xff,0xdb,0x01,0xb9,0x01,0xd4,0xff,0x9a,0x01,0xb9,0x01,0xd5,0xff,0x4c,0x01,0xb9,0x01,0xd6,0x00,0x29,0x01,0xb9,0x01,0xd7,0xff,0x9a,0x01,0xb9,0x01,0xd8,0xff,0x4c,0x01,0xb9,0x01,0xd9,0xff,0x9a,0x01,0xb9,0x01,0xda,0xff,0x4c,0x01,0xb9,0x02,0x37,0xff,0xcf,0x01,0xba,0x00,0x0f,0x00,0x46,0x01,0xba, +0x00,0x10,0xff,0xe7,0x01,0xba,0x00,0x11,0x00,0x39,0x01,0xba,0x00,0x1e,0x00,0x52,0x01,0xba,0x00,0xa9,0x00,0x3d,0x01,0xba,0x00,0xac,0x00,0x39,0x01,0xba,0x00,0xc4,0x00,0x46,0x01,0xba,0x00,0xc5,0x00,0x52,0x01,0xba,0x01,0x2d,0xff,0xe7,0x01,0xba,0x01,0x2e,0xff,0xe7,0x01,0xba,0x01,0x33,0xff,0xc3,0x01,0xba,0x01,0xa8,0x00,0x52, +0x01,0xba,0x01,0xb4,0xff,0xe7,0x01,0xba,0x01,0xb7,0x00,0x12,0x01,0xba,0x01,0xb8,0x00,0x23,0x01,0xba,0x01,0xc2,0xff,0xe7,0x01,0xba,0x01,0xc3,0xff,0xe7,0x01,0xba,0x01,0xc9,0xff,0xe7,0x01,0xba,0x01,0xd2,0xff,0xe7,0x01,0xba,0x01,0xd4,0xff,0xe7,0x01,0xba,0x01,0xd6,0x00,0x0a,0x01,0xba,0x01,0xd7,0xff,0xe7,0x01,0xba,0x01,0xd9, +0xff,0xe7,0x01,0xbb,0x00,0xa9,0xff,0x71,0x01,0xbb,0x01,0x2f,0xff,0xe7,0x01,0xbb,0x01,0x30,0xff,0xe7,0x01,0xbb,0x01,0x32,0xff,0xe7,0x01,0xbb,0x01,0x34,0xff,0xe7,0x01,0xbb,0x01,0xa9,0xff,0x6d,0x01,0xbb,0x01,0xb0,0xff,0x6d,0x01,0xbb,0x01,0xbf,0xff,0xe7,0x01,0xbb,0x01,0xcf,0xff,0xe7,0x01,0xbb,0x01,0xd1,0xff,0xe7,0x01,0xbb, +0x01,0xd5,0xff,0xe7,0x01,0xbb,0x01,0xd8,0xff,0xe7,0x01,0xbb,0x01,0xda,0xff,0xe7,0x01,0xbc,0x00,0xa9,0x00,0x12,0x01,0xbe,0x00,0x04,0xff,0xd7,0x01,0xbe,0x00,0x11,0xff,0x71,0x01,0xbe,0x00,0x1e,0xff,0x4c,0x01,0xbe,0x00,0xa2,0xff,0xd7,0x01,0xbe,0x00,0xa9,0xff,0x71,0x01,0xbe,0x00,0xac,0xff,0x71,0x01,0xbe,0x01,0x2d,0xff,0xd3, +0x01,0xbe,0x01,0x2e,0xff,0xd3,0x01,0xbe,0x01,0x2f,0xff,0x4c,0x01,0xbe,0x01,0x30,0xff,0xc3,0x01,0xbe,0x01,0x31,0xff,0x9c,0x01,0xbe,0x01,0x32,0xff,0x4c,0x01,0xbe,0x01,0x33,0xff,0xcf,0x01,0xbe,0x01,0x34,0xff,0x4c,0x01,0xbe,0x01,0xa9,0xff,0x60,0x01,0xbe,0x01,0xb0,0xff,0x60,0x01,0xbe,0x01,0xb4,0xff,0xd3,0x01,0xbe,0x01,0xb8, +0x00,0x29,0x01,0xbe,0x01,0xbf,0xff,0x4c,0x01,0xbe,0x01,0xc0,0xff,0x9c,0x01,0xbe,0x01,0xc3,0xff,0x9a,0x01,0xbe,0x01,0xc6,0xff,0xc1,0x01,0xbe,0x01,0xc7,0xff,0x71,0x01,0xbe,0x01,0xc9,0xff,0xd7,0x01,0xbe,0x01,0xca,0xff,0x71,0x01,0xbe,0x01,0xcc,0xff,0x71,0x01,0xbe,0x01,0xce,0xff,0xb0,0x01,0xbe,0x01,0xcf,0xff,0x4c,0x01,0xbe, +0x01,0xd0,0xff,0x71,0x01,0xbe,0x01,0xd1,0xff,0x4c,0x01,0xbe,0x01,0xd2,0xff,0x9a,0x01,0xbe,0x01,0xd3,0xff,0xdb,0x01,0xbe,0x01,0xd4,0xff,0x9a,0x01,0xbe,0x01,0xd5,0xff,0x4c,0x01,0xbe,0x01,0xd7,0xff,0x9a,0x01,0xbe,0x01,0xd8,0xff,0x4c,0x01,0xbe,0x01,0xd9,0xff,0x9a,0x01,0xbe,0x01,0xda,0xff,0x4c,0x01,0xbe,0x02,0x37,0xff,0xcf, +0x01,0xbf,0x00,0x1e,0xff,0xee,0x01,0xbf,0x01,0x2f,0xff,0xee,0x01,0xbf,0x01,0x30,0xff,0xee,0x01,0xbf,0x01,0x32,0xff,0xee,0x01,0xbf,0x01,0x34,0xff,0xee,0x01,0xbf,0x01,0xcf,0xff,0xee,0x01,0xbf,0x01,0xd1,0xff,0xee,0x01,0xbf,0x01,0xd5,0xff,0xee,0x01,0xc1,0x00,0x05,0xff,0x98,0x01,0xc1,0x00,0x0a,0xff,0x98,0x01,0xc2,0x01,0xcb, +0x00,0x6a,0x01,0xc3,0x00,0x05,0xff,0x6f,0x01,0xc3,0x00,0x0a,0xff,0x6f,0x01,0xc3,0x01,0xc5,0xff,0xdb,0x01,0xc3,0x01,0xcb,0xff,0xe7,0x01,0xc3,0x01,0xd3,0xff,0xe7,0x01,0xc4,0x01,0x33,0xff,0xd1,0x01,0xc4,0x01,0xd3,0xff,0xc1,0x01,0xc5,0x01,0x30,0xff,0xe5,0x01,0xc5,0x01,0x33,0x00,0x19,0x01,0xc5,0x01,0xc8,0x00,0x19,0x01,0xc5, +0x01,0xd0,0xff,0xe7,0x01,0xc5,0x02,0x37,0x00,0x19,0x01,0xc6,0x01,0x2f,0xff,0xb6,0x01,0xc6,0x01,0x30,0xff,0xb6,0x01,0xc6,0x01,0x32,0xff,0xb6,0x01,0xc6,0x01,0x33,0xff,0x81,0x01,0xc6,0x01,0x34,0xff,0xb6,0x01,0xc6,0x01,0xa8,0x00,0x3d,0x01,0xc6,0x01,0xbf,0xff,0xb6,0x01,0xc6,0x01,0xc3,0xff,0xe7,0x01,0xc6,0x01,0xc5,0xff,0xc3, +0x01,0xc6,0x01,0xcd,0xff,0x8f,0x01,0xc6,0x01,0xcf,0xff,0xb6,0x01,0xc6,0x01,0xd1,0xff,0xb6,0x01,0xc6,0x01,0xd2,0xff,0xe7,0x01,0xc6,0x01,0xd4,0xff,0xc3,0x01,0xc6,0x01,0xd5,0xff,0xb6,0x01,0xc6,0x01,0xd7,0xff,0xe7,0x01,0xc6,0x01,0xd8,0xff,0xb6,0x01,0xc6,0x01,0xd9,0xff,0xe7,0x01,0xc7,0x00,0x05,0xff,0x98,0x01,0xc7,0x00,0x0a, +0xff,0x98,0x01,0xc9,0x01,0xcb,0x00,0x6a,0x01,0xca,0x00,0x0f,0x00,0x29,0x01,0xca,0x00,0x10,0xff,0xb8,0x01,0xca,0x00,0x11,0x00,0x29,0x01,0xca,0x00,0x1d,0x00,0x52,0x01,0xca,0x00,0x1e,0x00,0x52,0x01,0xca,0x00,0xac,0x00,0x29,0x01,0xca,0x01,0x2f,0xff,0xd7,0x01,0xca,0x01,0x30,0xff,0xd7,0x01,0xca,0x01,0x32,0xff,0xd7,0x01,0xca, +0x01,0x34,0xff,0xd7,0x01,0xca,0x01,0xbf,0xff,0xd7,0x01,0xca,0x01,0xcb,0x00,0x31,0x01,0xca,0x01,0xcf,0xff,0xd7,0x01,0xca,0x01,0xd1,0xff,0xd7,0x01,0xca,0x01,0xd5,0xff,0xd7,0x01,0xca,0x01,0xd8,0xff,0xd7,0x01,0xca,0x01,0xda,0xff,0xd7,0x01,0xcb,0x01,0x33,0xff,0xb0,0x01,0xcb,0x01,0xc3,0xff,0xdb,0x01,0xcb,0x01,0xcb,0x00,0x31, +0x01,0xcb,0x01,0xcd,0xff,0xd1,0x01,0xcb,0x01,0xd2,0xff,0xdb,0x01,0xcb,0x01,0xd3,0xff,0xcf,0x01,0xcb,0x01,0xd4,0xff,0xdb,0x01,0xcb,0x01,0xd7,0xff,0xdb,0x01,0xcb,0x01,0xd9,0xff,0xdb,0x01,0xcd,0x01,0x2f,0xff,0xd7,0x01,0xcd,0x01,0x30,0xff,0xd7,0x01,0xcd,0x01,0x32,0xff,0xd7,0x01,0xcd,0x01,0x34,0xff,0xd7,0x01,0xcd,0x01,0xbf, +0xff,0xd7,0x01,0xcd,0x01,0xcb,0xff,0xb6,0x01,0xcd,0x01,0xce,0xff,0xe7,0x01,0xcd,0x01,0xcf,0xff,0xd7,0x01,0xcd,0x01,0xd0,0xff,0xdb,0x01,0xcd,0x01,0xd1,0xff,0xec,0x01,0xcd,0x01,0xd5,0xff,0xd7,0x01,0xcd,0x01,0xd8,0xff,0xd7,0x01,0xcd,0x01,0xda,0xff,0xd7,0x01,0xce,0x01,0x2f,0xff,0xd7,0x01,0xce,0x01,0x30,0xff,0xd7,0x01,0xce, +0x01,0x32,0xff,0xd7,0x01,0xce,0x01,0x34,0xff,0xd7,0x01,0xce,0x01,0xbf,0xff,0xd7,0x01,0xce,0x01,0xcf,0xff,0xd7,0x01,0xce,0x01,0xd5,0xff,0xd7,0x01,0xce,0x01,0xda,0xff,0xd7,0x01,0xcf,0x00,0x05,0xff,0x6f,0x01,0xcf,0x00,0x0a,0xff,0x6f,0x01,0xcf,0x00,0xb4,0xff,0xb0,0x01,0xcf,0x00,0xb5,0xff,0x7b,0x01,0xcf,0x00,0xb6,0xff,0xbc, +0x01,0xcf,0x00,0xb7,0xff,0x7b,0x01,0xcf,0x01,0x33,0xff,0xdb,0x01,0xcf,0x01,0xc5,0xff,0xdb,0x01,0xcf,0x01,0xd3,0xff,0xc3,0x01,0xcf,0x02,0x37,0xff,0xdb,0x01,0xd0,0x00,0x05,0xff,0x6f,0x01,0xd0,0x00,0x0a,0xff,0x6f,0x01,0xd0,0x00,0xb4,0xff,0xb0,0x01,0xd0,0x00,0xb5,0xff,0x7b,0x01,0xd0,0x00,0xb6,0xff,0xbc,0x01,0xd0,0x00,0xb7, +0xff,0x7b,0x01,0xd0,0x01,0x33,0xff,0xdb,0x01,0xd0,0x01,0xc5,0xff,0xe7,0x01,0xd0,0x01,0xd3,0xff,0xc3,0x01,0xd0,0x02,0x37,0xff,0xdb,0x01,0xd1,0x01,0x2f,0xff,0xc3,0x01,0xd1,0x01,0x30,0xff,0xc3,0x01,0xd1,0x01,0x32,0xff,0xc3,0x01,0xd1,0x01,0x34,0xff,0xc3,0x01,0xd1,0x01,0xbf,0xff,0xc3,0x01,0xd1,0x01,0xcb,0x00,0x25,0x01,0xd1, +0x01,0xcf,0xff,0xc3,0x01,0xd1,0x01,0xd8,0xff,0xc3,0x01,0xd1,0x01,0xda,0xff,0xc3,0x01,0xd2,0x00,0x05,0xff,0x6f,0x01,0xd2,0x00,0x0a,0xff,0x6f,0x01,0xd2,0x00,0xb4,0xff,0xb0,0x01,0xd2,0x00,0xb5,0xff,0x7b,0x01,0xd2,0x00,0xb6,0xff,0xbc,0x01,0xd2,0x00,0xb7,0xff,0x7b,0x01,0xd2,0x01,0x33,0xff,0xdb,0x01,0xd2,0x01,0xc5,0xff,0xdb, +0x01,0xd2,0x01,0xcb,0xff,0xe7,0x01,0xd2,0x01,0xd3,0xff,0xe7,0x01,0xd2,0x02,0x37,0xff,0xdb,0x01,0xd3,0x00,0x10,0xff,0xe7,0x01,0xd3,0x01,0x2f,0xff,0xc3,0x01,0xd3,0x01,0x30,0xff,0x9c,0x01,0xd3,0x01,0x31,0xff,0xd7,0x01,0xd3,0x01,0x32,0xff,0xc3,0x01,0xd3,0x01,0x34,0xff,0xc3,0x01,0xd3,0x01,0xbf,0xff,0xc3,0x01,0xd3,0x01,0xc0, +0xff,0xd7,0x01,0xd3,0x01,0xc3,0xff,0xe7,0x01,0xd3,0x01,0xcb,0xff,0xe7,0x01,0xd3,0x01,0xcf,0xff,0xc3,0x01,0xd3,0x01,0xd1,0xff,0xbe,0x01,0xd3,0x01,0xd2,0xff,0xe7,0x01,0xd3,0x01,0xd3,0x00,0x19,0x01,0xd3,0x01,0xd5,0xff,0xc3,0x01,0xd3,0x01,0xd7,0xff,0xe7,0x01,0xd3,0x01,0xd8,0xff,0xc3,0x01,0xd3,0x01,0xd9,0xff,0xe7,0x01,0xd3, +0x01,0xda,0xff,0xc3,0x01,0xd4,0x01,0xcb,0xff,0xe7,0x01,0xd5,0x00,0x05,0xff,0x6f,0x01,0xd5,0x00,0x0a,0xff,0x6f,0x01,0xd5,0x00,0xb4,0xff,0xb0,0x01,0xd5,0x00,0xb5,0xff,0x7b,0x01,0xd5,0x00,0xb6,0xff,0xbc,0x01,0xd5,0x00,0xb7,0xff,0x7b,0x01,0xd5,0x01,0x33,0xff,0xdb,0x01,0xd5,0x01,0xc5,0xff,0xdb,0x01,0xd5,0x01,0xd3,0xff,0xe7, +0x01,0xd5,0x02,0x37,0xff,0xdb,0x01,0xd6,0x01,0xcb,0x00,0x6a,0x01,0xd7,0x00,0x05,0xff,0x6f,0x01,0xd7,0x00,0x0a,0xff,0x6f,0x01,0xd7,0x00,0xb4,0xff,0xb0,0x01,0xd7,0x00,0xb5,0xff,0x7b,0x01,0xd7,0x00,0xb6,0xff,0xbc,0x01,0xd7,0x00,0xb7,0xff,0x7b,0x01,0xd7,0x01,0xc5,0xff,0xdb,0x01,0xd7,0x01,0xcb,0xff,0xe7,0x01,0xd7,0x01,0xd3, +0xff,0xe7,0x01,0xd8,0x00,0x05,0xff,0x6f,0x01,0xd8,0x00,0x0a,0xff,0x6f,0x01,0xd8,0x00,0xb4,0xff,0xb0,0x01,0xd8,0x00,0xb5,0xff,0x7b,0x01,0xd8,0x00,0xb6,0xff,0xbc,0x01,0xd8,0x00,0xb7,0xff,0x7b,0x01,0xd8,0x01,0xc5,0xff,0xdb,0x01,0xd8,0x01,0xd3,0xff,0xc3,0x01,0xd9,0x00,0x05,0xff,0x6f,0x01,0xd9,0x00,0x0a,0xff,0x6f,0x01,0xd9, +0x00,0xb4,0xff,0xb0,0x01,0xd9,0x00,0xb5,0xff,0x7b,0x01,0xd9,0x00,0xb6,0xff,0xbc,0x01,0xd9,0x00,0xb7,0xff,0x7b,0x01,0xd9,0x01,0xc5,0xff,0xdb,0x01,0xd9,0x01,0xcb,0xff,0xe7,0x01,0xd9,0x01,0xd3,0xff,0xe7,0x01,0xda,0x00,0x05,0xff,0x6f,0x01,0xda,0x00,0x0a,0xff,0x6f,0x01,0xda,0x00,0xb4,0xff,0xb0,0x01,0xda,0x00,0xb5,0xff,0x7b, +0x01,0xda,0x00,0xb6,0xff,0xbc,0x01,0xda,0x00,0xb7,0xff,0x7b,0x01,0xda,0x01,0xc5,0xff,0xdb,0x01,0xda,0x01,0xd3,0xff,0xe7,0x01,0xdb,0x01,0xe1,0x00,0x46,0x01,0xdb,0x01,0xe7,0x00,0x0c,0x01,0xdb,0x01,0xeb,0x00,0x46,0x01,0xdb,0x01,0xed,0x00,0x14,0x01,0xdb,0x01,0xf2,0x00,0x46,0x01,0xdb,0x01,0xfc,0x00,0x0a,0x01,0xdc,0x01,0xdc, +0xff,0x79,0x01,0xdc,0x01,0xde,0xff,0xcf,0x01,0xdc,0x01,0xe1,0x00,0x29,0x01,0xdc,0x01,0xe3,0xff,0x79,0x01,0xdc,0x01,0xe5,0xff,0xee,0x01,0xdc,0x01,0xeb,0x00,0x29,0x01,0xdc,0x01,0xf2,0x00,0x29,0x01,0xdc,0x01,0xf5,0xff,0xcf,0x01,0xdc,0x01,0xf8,0xff,0xcf,0x01,0xdc,0x01,0xf9,0xff,0x79,0x01,0xdc,0x01,0xfa,0xff,0xee,0x01,0xdc, +0x01,0xfb,0xff,0xc3,0x01,0xdc,0x01,0xfe,0xff,0x60,0x01,0xdc,0x02,0x01,0xff,0x79,0x01,0xdc,0x02,0x19,0xff,0xcf,0x01,0xdc,0x02,0x1a,0xff,0xe7,0x01,0xdc,0x02,0x31,0xff,0xe7,0x01,0xdd,0x00,0x0f,0xff,0x83,0x01,0xdd,0x00,0x11,0xff,0x83,0x01,0xdd,0x00,0xaa,0xff,0x91,0x01,0xdd,0x00,0xab,0xff,0xd7,0x01,0xdd,0x00,0xac,0xff,0x83, +0x01,0xdd,0x01,0xdc,0x00,0x29,0x01,0xdd,0x01,0xde,0xff,0xa2,0x01,0xdd,0x01,0xe1,0xff,0xa2,0x01,0xdd,0x01,0xe3,0x00,0x29,0x01,0xdd,0x01,0xe5,0x00,0x1d,0x01,0xdd,0x01,0xe7,0xff,0x71,0x01,0xdd,0x01,0xeb,0xff,0xa2,0x01,0xdd,0x01,0xf2,0xff,0xa2,0x01,0xdd,0x01,0xf5,0xff,0xcf,0x01,0xdd,0x01,0xf8,0xff,0xcf,0x01,0xdd,0x01,0xf9, +0x00,0x29,0x01,0xdd,0x01,0xfa,0x00,0x1d,0x01,0xdd,0x01,0xfb,0xff,0xa2,0x01,0xdd,0x02,0x01,0x00,0x29,0x01,0xdd,0x02,0x06,0xff,0xe7,0x01,0xdd,0x02,0x07,0xff,0x27,0x01,0xdd,0x02,0x09,0xff,0x4e,0x01,0xdd,0x02,0x0a,0xff,0x4e,0x01,0xdd,0x02,0x0b,0xff,0x9e,0x01,0xdd,0x02,0x0c,0xff,0x2b,0x01,0xdd,0x02,0x0f,0xff,0x4e,0x01,0xdd, +0x02,0x10,0xff,0x4e,0x01,0xdd,0x02,0x11,0xff,0x4e,0x01,0xdd,0x02,0x12,0xff,0x9e,0x01,0xdd,0x02,0x13,0xff,0x4e,0x01,0xdd,0x02,0x14,0xff,0x4e,0x01,0xdd,0x02,0x15,0xff,0x2b,0x01,0xdd,0x02,0x16,0xff,0x4e,0x01,0xdd,0x02,0x17,0xff,0x4e,0x01,0xdd,0x02,0x18,0xff,0x2b,0x01,0xdd,0x02,0x19,0xff,0xc3,0x01,0xdd,0x02,0x1b,0xff,0x2b, +0x01,0xdd,0x02,0x1c,0xff,0x4c,0x01,0xdd,0x02,0x1d,0xff,0x4e,0x01,0xdd,0x02,0x1e,0xff,0x4e,0x01,0xdd,0x02,0x1f,0xff,0x4e,0x01,0xdd,0x02,0x20,0xff,0x4e,0x01,0xdd,0x02,0x21,0xff,0xc3,0x01,0xdd,0x02,0x22,0xff,0x4e,0x01,0xdd,0x02,0x23,0xff,0x4e,0x01,0xdd,0x02,0x24,0xff,0x60,0x01,0xdd,0x02,0x25,0xff,0x4e,0x01,0xdd,0x02,0x26, +0xff,0x54,0x01,0xdd,0x02,0x27,0xff,0x2b,0x01,0xdd,0x02,0x29,0xff,0x4e,0x01,0xdd,0x02,0x2a,0xff,0x2b,0x01,0xdd,0x02,0x2b,0xff,0x66,0x01,0xdd,0x02,0x2c,0x00,0x6f,0x01,0xdd,0x02,0x2d,0xff,0x9e,0x01,0xdd,0x02,0x2e,0xff,0x4e,0x01,0xdd,0x02,0x32,0xff,0x4e,0x01,0xdd,0x02,0x34,0xff,0x4e,0x01,0xde,0x00,0xaa,0xff,0xcd,0x01,0xde, +0x00,0xbe,0xff,0xcd,0x01,0xde,0x01,0xde,0xff,0xc9,0x01,0xde,0x01,0xf5,0xff,0xc9,0x01,0xde,0x01,0xf8,0xff,0xc9,0x01,0xde,0x01,0xfb,0xff,0xc9,0x01,0xde,0x02,0x19,0xff,0xdb,0x01,0xde,0x02,0x21,0xff,0xdb,0x01,0xde,0x02,0x2c,0x00,0x1f,0x01,0xdf,0x00,0xc4,0xff,0xb0,0x01,0xdf,0x00,0xc5,0xff,0xb0,0x01,0xdf,0x01,0xf5,0xff,0xe7, +0x01,0xdf,0x01,0xfb,0xff,0xdb,0x01,0xdf,0x01,0xfe,0xff,0xdb,0x01,0xdf,0x02,0x1a,0xff,0xcf,0x01,0xdf,0x02,0x31,0xff,0xcf,0x01,0xe1,0x01,0xdc,0xff,0x79,0x01,0xe1,0x01,0xde,0xff,0xe7,0x01,0xe1,0x01,0xe3,0xff,0x79,0x01,0xe1,0x01,0xf5,0xff,0xe7,0x01,0xe1,0x01,0xf8,0xff,0xe7,0x01,0xe1,0x01,0xf9,0xff,0x79,0x01,0xe1,0x01,0xfb, +0xff,0xe7,0x01,0xe1,0x01,0xfe,0xff,0x62,0x01,0xe1,0x02,0x01,0xff,0x79,0x01,0xe1,0x02,0x19,0xff,0xcf,0x01,0xe1,0x02,0x21,0xff,0xcf,0x01,0xe2,0x01,0xdc,0xff,0x79,0x01,0xe2,0x01,0xde,0xff,0xe7,0x01,0xe2,0x01,0xe3,0xff,0x79,0x01,0xe2,0x01,0xf5,0xff,0xe7,0x01,0xe2,0x01,0xf8,0xff,0xe7,0x01,0xe2,0x01,0xf9,0xff,0x79,0x01,0xe2, +0x01,0xfb,0xff,0xe7,0x01,0xe2,0x01,0xfe,0xff,0x62,0x01,0xe2,0x02,0x01,0xff,0x79,0x01,0xe2,0x02,0x19,0xff,0xcf,0x01,0xe2,0x02,0x21,0xff,0xcf,0x01,0xe3,0x01,0xdc,0xff,0x79,0x01,0xe3,0x01,0xe1,0x00,0x3d,0x01,0xe3,0x01,0xe3,0xff,0x58,0x01,0xe3,0x01,0xeb,0x00,0x3d,0x01,0xe3,0x01,0xf2,0x00,0x3d,0x01,0xe3,0x01,0xfb,0xff,0xe7, +0x01,0xe3,0x01,0xfe,0xff,0x4e,0x01,0xe3,0x02,0x01,0xff,0xae,0x01,0xe4,0x00,0x0f,0x00,0x29,0x01,0xe4,0x00,0x1e,0x00,0x29,0x01,0xe4,0x00,0xc4,0x00,0x46,0x01,0xe4,0x00,0xc5,0x00,0x46,0x01,0xe4,0x01,0xde,0xff,0xa4,0x01,0xe4,0x01,0xe1,0x00,0x5c,0x01,0xe4,0x01,0xeb,0x00,0x5c,0x01,0xe4,0x01,0xed,0x00,0x62,0x01,0xe4,0x01,0xf2, +0x00,0x5c,0x01,0xe4,0x01,0xf5,0xff,0xa4,0x01,0xe4,0x01,0xf8,0xff,0xa4,0x01,0xe4,0x01,0xfb,0xff,0xa4,0x01,0xe4,0x01,0xfc,0x00,0x25,0x01,0xe4,0x01,0xfe,0xff,0xc3,0x01,0xe4,0x02,0x08,0xff,0xe5,0x01,0xe4,0x02,0x0b,0x00,0x62,0x01,0xe4,0x02,0x0c,0xff,0xe5,0x01,0xe4,0x02,0x0d,0x00,0x3d,0x01,0xe4,0x02,0x12,0x00,0x62,0x01,0xe4, +0x02,0x15,0xff,0xe5,0x01,0xe4,0x02,0x18,0xff,0xe5,0x01,0xe4,0x02,0x1a,0xff,0xa2,0x01,0xe4,0x02,0x1b,0xff,0xe5,0x01,0xe4,0x02,0x1e,0xff,0xc3,0x01,0xe4,0x02,0x27,0xff,0xe5,0x01,0xe4,0x02,0x2a,0xff,0xe5,0x01,0xe4,0x02,0x2c,0x00,0x29,0x01,0xe4,0x02,0x2d,0x00,0x62,0x01,0xe4,0x02,0x31,0xff,0xa2,0x01,0xe5,0x00,0x0f,0xff,0x3b, +0x01,0xe5,0x00,0x11,0xff,0x2b,0x01,0xe5,0x00,0xac,0xff,0x2b,0x01,0xe5,0x01,0xdc,0x00,0x29,0x01,0xe5,0x01,0xe1,0xff,0x75,0x01,0xe5,0x01,0xe3,0x00,0x29,0x01,0xe5,0x01,0xe7,0xff,0x33,0x01,0xe5,0x01,0xeb,0xff,0x75,0x01,0xe5,0x01,0xed,0x00,0x25,0x01,0xe5,0x01,0xf2,0xff,0x75,0x01,0xe5,0x01,0xf9,0x00,0x29,0x01,0xe5,0x02,0x01, +0x00,0x29,0x01,0xe5,0x02,0x07,0xff,0x79,0x01,0xe5,0x02,0x09,0xff,0xb6,0x01,0xe5,0x02,0x0a,0xff,0xb6,0x01,0xe5,0x02,0x0b,0xfe,0xfe,0x01,0xe5,0x02,0x0c,0xff,0x91,0x01,0xe5,0x02,0x0f,0xff,0xb6,0x01,0xe5,0x02,0x10,0xff,0xb6,0x01,0xe5,0x02,0x11,0xff,0xb6,0x01,0xe5,0x02,0x12,0xfe,0xfe,0x01,0xe5,0x02,0x13,0xff,0xb6,0x01,0xe5, +0x02,0x14,0xff,0xb6,0x01,0xe5,0x02,0x15,0xff,0x91,0x01,0xe5,0x02,0x16,0xff,0xb6,0x01,0xe5,0x02,0x17,0xff,0xb6,0x01,0xe5,0x02,0x18,0xff,0x91,0x01,0xe5,0x02,0x1b,0xff,0x91,0x01,0xe5,0x02,0x1c,0xff,0xb6,0x01,0xe5,0x02,0x1d,0xff,0xb6,0x01,0xe5,0x02,0x1f,0xff,0xb6,0x01,0xe5,0x02,0x20,0xff,0xb6,0x01,0xe5,0x02,0x22,0xff,0xb6, +0x01,0xe5,0x02,0x23,0xff,0xb6,0x01,0xe5,0x02,0x25,0xff,0xb6,0x01,0xe5,0x02,0x26,0xff,0xaa,0x01,0xe5,0x02,0x27,0xff,0x91,0x01,0xe5,0x02,0x29,0xff,0xb6,0x01,0xe5,0x02,0x2a,0xff,0x91,0x01,0xe5,0x02,0x2b,0xff,0xc3,0x01,0xe5,0x02,0x2c,0x00,0x6d,0x01,0xe5,0x02,0x2d,0xfe,0xfe,0x01,0xe5,0x02,0x2e,0xff,0xb6,0x01,0xe5,0x02,0x30, +0xff,0xb6,0x01,0xe5,0x02,0x32,0xff,0xb6,0x01,0xe5,0x02,0x34,0xff,0xb6,0x01,0xe7,0x00,0x0d,0xff,0x7f,0x01,0xe7,0x00,0x0f,0x00,0x46,0x01,0xe7,0x00,0x1e,0x00,0x46,0x01,0xe7,0x00,0x8d,0xff,0x98,0x01,0xe7,0x00,0xb4,0xff,0x66,0x01,0xe7,0x00,0xb5,0xff,0x3d,0x01,0xe7,0x00,0xb6,0xff,0x66,0x01,0xe7,0x00,0xb7,0xff,0x3d,0x01,0xe7, +0x01,0xdc,0xff,0x6d,0x01,0xe7,0x01,0xde,0xff,0xe5,0x01,0xe7,0x01,0xe1,0x00,0x60,0x01,0xe7,0x01,0xe3,0xff,0x6d,0x01,0xe7,0x01,0xeb,0x00,0x60,0x01,0xe7,0x01,0xed,0x00,0x3d,0x01,0xe7,0x01,0xf2,0x00,0x60,0x01,0xe7,0x01,0xf5,0xff,0xe5,0x01,0xe7,0x01,0xf8,0xff,0xe5,0x01,0xe7,0x01,0xf9,0xff,0x6d,0x01,0xe7,0x01,0xfb,0xff,0xc3, +0x01,0xe7,0x01,0xfe,0xff,0x3d,0x01,0xe7,0x02,0x01,0xff,0x6d,0x01,0xe7,0x02,0x0b,0x00,0x56,0x01,0xe7,0x02,0x0d,0x00,0x29,0x01,0xe7,0x02,0x12,0x00,0x56,0x01,0xe7,0x02,0x1a,0xff,0xd9,0x01,0xe7,0x02,0x2d,0x00,0x56,0x01,0xe7,0x02,0x31,0xff,0xd9,0x01,0xe8,0x01,0xde,0xff,0xe7,0x01,0xe8,0x01,0xf5,0xff,0xe7,0x01,0xe8,0x01,0xf8, +0xff,0xe7,0x01,0xe8,0x01,0xfb,0xff,0xe7,0x01,0xe8,0x01,0xfe,0xff,0x62,0x01,0xe8,0x02,0x19,0xff,0xcf,0x01,0xe8,0x02,0x21,0xff,0xcf,0x01,0xe9,0x00,0xc4,0xff,0xb0,0x01,0xe9,0x00,0xc5,0xff,0xb0,0x01,0xe9,0x01,0xdc,0xff,0xa2,0x01,0xe9,0x01,0xe3,0xff,0xa2,0x01,0xe9,0x01,0xf9,0xff,0xa2,0x01,0xe9,0x01,0xfe,0xff,0xd5,0x01,0xe9, +0x02,0x01,0xff,0xa2,0x01,0xea,0x00,0x0f,0xff,0x83,0x01,0xea,0x00,0x11,0xff,0x83,0x01,0xea,0x00,0xaa,0xff,0x91,0x01,0xea,0x00,0xab,0xff,0xd7,0x01,0xea,0x00,0xac,0xff,0x83,0x01,0xea,0x01,0xdc,0x00,0x29,0x01,0xea,0x01,0xde,0xff,0xa2,0x01,0xea,0x01,0xe1,0xff,0x9e,0x01,0xea,0x01,0xe3,0x00,0x29,0x01,0xea,0x01,0xe5,0x00,0x1d, +0x01,0xea,0x01,0xe7,0xff,0x71,0x01,0xea,0x01,0xeb,0xff,0xa2,0x01,0xea,0x01,0xf2,0xff,0xa2,0x01,0xea,0x01,0xf5,0xff,0xcf,0x01,0xea,0x01,0xf8,0xff,0xcf,0x01,0xea,0x01,0xf9,0x00,0x29,0x01,0xea,0x01,0xfa,0x00,0x1d,0x01,0xea,0x01,0xfb,0xff,0xa2,0x01,0xea,0x02,0x01,0x00,0x29,0x01,0xea,0x02,0x06,0xff,0xe7,0x01,0xea,0x02,0x07, +0xff,0x27,0x01,0xea,0x02,0x09,0xff,0x4e,0x01,0xea,0x02,0x0a,0xff,0x4e,0x01,0xea,0x02,0x0b,0xff,0x9e,0x01,0xea,0x02,0x0c,0xff,0x2b,0x01,0xea,0x02,0x0f,0xff,0x4e,0x01,0xea,0x02,0x10,0xff,0x4e,0x01,0xea,0x02,0x11,0xff,0x4e,0x01,0xea,0x02,0x12,0xff,0x9e,0x01,0xea,0x02,0x13,0xff,0x4e,0x01,0xea,0x02,0x14,0xff,0x4e,0x01,0xea, +0x02,0x15,0xff,0x2b,0x01,0xea,0x02,0x16,0xff,0x4e,0x01,0xea,0x02,0x17,0xff,0x4e,0x01,0xea,0x02,0x18,0xff,0x2b,0x01,0xea,0x02,0x19,0xff,0xc3,0x01,0xea,0x02,0x1b,0xff,0x2b,0x01,0xea,0x02,0x1c,0xff,0x4c,0x01,0xea,0x02,0x1d,0xff,0x4e,0x01,0xea,0x02,0x1e,0xff,0x4e,0x01,0xea,0x02,0x1f,0xff,0x4e,0x01,0xea,0x02,0x20,0xff,0x4e, +0x01,0xea,0x02,0x21,0xff,0xc3,0x01,0xea,0x02,0x22,0xff,0x4e,0x01,0xea,0x02,0x23,0xff,0x4e,0x01,0xea,0x02,0x24,0xff,0x60,0x01,0xea,0x02,0x25,0xff,0x4e,0x01,0xea,0x02,0x26,0xff,0x54,0x01,0xea,0x02,0x27,0xff,0x2b,0x01,0xea,0x02,0x29,0xff,0x4e,0x01,0xea,0x02,0x2a,0xff,0x2b,0x01,0xea,0x02,0x2b,0xff,0x66,0x01,0xea,0x02,0x2c, +0x00,0x6f,0x01,0xea,0x02,0x2d,0xff,0x9e,0x01,0xea,0x02,0x2e,0xff,0x4e,0x01,0xea,0x02,0x32,0xff,0x4e,0x01,0xea,0x02,0x34,0xff,0x4e,0x01,0xec,0x01,0xe1,0x00,0x46,0x01,0xec,0x01,0xe7,0x00,0x0c,0x01,0xec,0x01,0xeb,0x00,0x46,0x01,0xec,0x01,0xed,0x00,0x14,0x01,0xec,0x01,0xf2,0x00,0x46,0x01,0xec,0x01,0xfc,0x00,0x0a,0x01,0xec, +0x02,0x2c,0x00,0x14,0x01,0xed,0x00,0x0f,0x00,0x52,0x01,0xed,0x00,0x1e,0x00,0x52,0x01,0xed,0x00,0xc4,0x00,0x5a,0x01,0xed,0x00,0xc5,0x00,0x5a,0x01,0xed,0x01,0xde,0xff,0xcd,0x01,0xed,0x01,0xe1,0x00,0x85,0x01,0xed,0x01,0xe7,0x00,0x3d,0x01,0xed,0x01,0xeb,0x00,0x85,0x01,0xed,0x01,0xed,0x00,0x66,0x01,0xed,0x01,0xf5,0xff,0xcd, +0x01,0xed,0x01,0xf8,0xff,0xcd,0x01,0xed,0x01,0xfb,0xff,0xcd,0x01,0xed,0x01,0xfc,0x00,0x25,0x01,0xed,0x01,0xfe,0xff,0xdb,0x01,0xed,0x02,0x06,0x00,0x3d,0x01,0xed,0x02,0x0b,0x00,0x7b,0x01,0xed,0x02,0x0d,0x00,0x3d,0x01,0xed,0x02,0x12,0x00,0x7b,0x01,0xed,0x02,0x1a,0xff,0xd1,0x01,0xed,0x02,0x1c,0x00,0x48,0x01,0xed,0x02,0x1e, +0xff,0xe7,0x01,0xed,0x02,0x2c,0x00,0x52,0x01,0xed,0x02,0x2d,0x00,0x7b,0x01,0xed,0x02,0x31,0xff,0xd1,0x01,0xee,0x01,0xdc,0xff,0xe1,0x01,0xee,0x01,0xde,0xff,0xdb,0x01,0xee,0x01,0xe3,0xff,0xe1,0x01,0xee,0x01,0xf5,0xff,0xdb,0x01,0xee,0x01,0xf8,0xff,0xdb,0x01,0xee,0x01,0xf9,0xff,0xe1,0x01,0xee,0x01,0xfb,0xff,0xdb,0x01,0xee, +0x01,0xfe,0xff,0xdd,0x01,0xee,0x02,0x01,0xff,0xe1,0x01,0xf1,0x00,0x0f,0x00,0x29,0x01,0xf1,0x00,0x1e,0x00,0x29,0x01,0xf1,0x00,0xc4,0x00,0x46,0x01,0xf1,0x00,0xc5,0x00,0x46,0x01,0xf1,0x01,0xde,0xff,0xa4,0x01,0xf1,0x01,0xe1,0x00,0x5c,0x01,0xf1,0x01,0xeb,0x00,0x5c,0x01,0xf1,0x01,0xed,0x00,0x62,0x01,0xf1,0x01,0xf2,0x00,0x5c, +0x01,0xf1,0x01,0xf5,0xff,0xa4,0x01,0xf1,0x01,0xf8,0xff,0xa4,0x01,0xf1,0x01,0xfb,0xff,0xa4,0x01,0xf1,0x01,0xfc,0x00,0x25,0x01,0xf1,0x01,0xfe,0xff,0xc3,0x01,0xf1,0x02,0x06,0x00,0x3d,0x01,0xf1,0x02,0x08,0xff,0xe5,0x01,0xf1,0x02,0x0b,0x00,0x62,0x01,0xf1,0x02,0x0c,0xff,0xe5,0x01,0xf1,0x02,0x0d,0x00,0x3d,0x01,0xf1,0x02,0x12, +0x00,0x62,0x01,0xf1,0x02,0x15,0xff,0xe5,0x01,0xf1,0x02,0x18,0xff,0xe5,0x01,0xf1,0x02,0x1a,0xff,0xa2,0x01,0xf1,0x02,0x1b,0xff,0xe5,0x01,0xf1,0x02,0x1e,0xff,0xc3,0x01,0xf1,0x02,0x27,0xff,0xe5,0x01,0xf1,0x02,0x2a,0xff,0xe5,0x01,0xf1,0x02,0x2c,0x00,0x29,0x01,0xf1,0x02,0x2d,0x00,0x62,0x01,0xf1,0x02,0x31,0xff,0xa2,0x01,0xf5, +0x00,0x0f,0xff,0xa2,0x01,0xf5,0x00,0x11,0xff,0xa2,0x01,0xf5,0x00,0xac,0xff,0xa2,0x01,0xf5,0x00,0xc4,0xff,0x4a,0x01,0xf5,0x00,0xc5,0xff,0x96,0x01,0xf5,0x01,0xdc,0xff,0xa2,0x01,0xf5,0x01,0xdf,0xff,0xdb,0x01,0xf5,0x01,0xe1,0xff,0xf6,0x01,0xf5,0x01,0xe3,0xff,0xa2,0x01,0xf5,0x01,0xe5,0xff,0xe7,0x01,0xf5,0x01,0xe7,0xff,0xe5, +0x01,0xf5,0x01,0xeb,0xff,0xf6,0x01,0xf5,0x01,0xed,0xff,0xcd,0x01,0xf5,0x01,0xf2,0xff,0xf6,0x01,0xf5,0x01,0xf9,0xff,0xa2,0x01,0xf5,0x01,0xfa,0xff,0xe7,0x01,0xf5,0x01,0xfc,0xff,0xdb,0x01,0xf5,0x02,0x01,0xff,0xa2,0x01,0xf7,0x00,0x0f,0xfe,0xba,0x01,0xf7,0x00,0x11,0xfe,0xba,0x01,0xf7,0x00,0xac,0xfe,0xba,0x01,0xf7,0x00,0xc4, +0xfe,0xba,0x01,0xf7,0x00,0xc5,0xfe,0xae,0x01,0xf7,0x01,0xde,0xff,0xf6,0x01,0xf7,0x01,0xe1,0xff,0x7f,0x01,0xf7,0x01,0xe5,0xff,0xe7,0x01,0xf7,0x01,0xe7,0xff,0x60,0x01,0xf7,0x01,0xeb,0xff,0x7f,0x01,0xf7,0x01,0xed,0xff,0xcf,0x01,0xf7,0x01,0xee,0xff,0xe7,0x01,0xf7,0x01,0xf2,0xff,0x7f,0x01,0xf7,0x01,0xf5,0xff,0xf6,0x01,0xf7, +0x01,0xf8,0xff,0xf6,0x01,0xf7,0x01,0xfa,0xff,0xe7,0x01,0xf7,0x01,0xfb,0xff,0xf6,0x01,0xf7,0x01,0xfc,0xff,0xc1,0x01,0xf7,0x02,0x07,0xff,0xbc,0x01,0xf7,0x02,0x0b,0xff,0x6d,0x01,0xf7,0x02,0x0c,0xff,0xb2,0x01,0xf7,0x02,0x12,0xff,0x6d,0x01,0xf7,0x02,0x15,0xff,0xb2,0x01,0xf7,0x02,0x18,0xff,0xb2,0x01,0xf7,0x02,0x1b,0xff,0xb2, +0x01,0xf7,0x02,0x27,0xff,0xb2,0x01,0xf7,0x02,0x2a,0xff,0xb2,0x01,0xf7,0x02,0x2d,0xff,0x6d,0x01,0xf8,0x00,0xaa,0xff,0xcd,0x01,0xf8,0x00,0xbe,0xff,0xcd,0x01,0xf8,0x01,0xde,0xff,0xc9,0x01,0xf8,0x01,0xed,0x00,0x31,0x01,0xf8,0x01,0xf5,0xff,0xc9,0x01,0xf8,0x01,0xf8,0xff,0xc9,0x01,0xf8,0x01,0xfb,0xff,0xc9,0x01,0xf8,0x02,0x19, +0xff,0xdb,0x01,0xf8,0x02,0x21,0xff,0xdb,0x01,0xf8,0x02,0x2c,0x00,0x1f,0x01,0xf9,0x00,0x0f,0xff,0x7d,0x01,0xf9,0x00,0x11,0xff,0x4c,0x01,0xf9,0x00,0x1d,0xff,0xe9,0x01,0xf9,0x00,0x1e,0xff,0xe9,0x01,0xf9,0x00,0x8d,0x00,0x52,0x01,0xf9,0x00,0xaa,0xff,0x98,0x01,0xf9,0x00,0xab,0xff,0xcd,0x01,0xf9,0x00,0xac,0xff,0x4c,0x01,0xf9, +0x00,0xb5,0x00,0x29,0x01,0xf9,0x00,0xb7,0x00,0x29,0x01,0xf9,0x00,0xbe,0xff,0x98,0x01,0xf9,0x00,0xbf,0xff,0xcd,0x01,0xf9,0x00,0xc4,0xff,0x14,0x01,0xf9,0x00,0xc5,0xff,0x14,0x01,0xf9,0x01,0xdc,0x00,0x29,0x01,0xf9,0x01,0xde,0xff,0xa2,0x01,0xf9,0x01,0xe1,0xff,0x8d,0x01,0xf9,0x01,0xe3,0x00,0x29,0x01,0xf9,0x01,0xe7,0xff,0x66, +0x01,0xf9,0x01,0xeb,0xff,0x8d,0x01,0xf9,0x01,0xf2,0xff,0x8d,0x01,0xf9,0x01,0xf5,0xff,0xa2,0x01,0xf9,0x01,0xf8,0xff,0xa2,0x01,0xf9,0x01,0xf9,0x00,0x29,0x01,0xf9,0x01,0xfb,0xff,0xa2,0x01,0xf9,0x01,0xfc,0xff,0xf8,0x01,0xf9,0x02,0x01,0x00,0x29,0x01,0xf9,0x02,0x06,0xff,0xe7,0x01,0xf9,0x02,0x07,0xff,0x27,0x01,0xf9,0x02,0x09, +0xff,0x4e,0x01,0xf9,0x02,0x0a,0xff,0x4e,0x01,0xf9,0x02,0x0b,0xff,0x9e,0x01,0xf9,0x02,0x0c,0xff,0x2b,0x01,0xf9,0x02,0x0d,0xff,0xa6,0x01,0xf9,0x02,0x0f,0xff,0x4e,0x01,0xf9,0x02,0x10,0xff,0x4e,0x01,0xf9,0x02,0x11,0xff,0x4e,0x01,0xf9,0x02,0x12,0xff,0x9e,0x01,0xf9,0x02,0x13,0xff,0x4e,0x01,0xf9,0x02,0x14,0xff,0x4e,0x01,0xf9, +0x02,0x15,0xff,0x2b,0x01,0xf9,0x02,0x16,0xff,0x4e,0x01,0xf9,0x02,0x17,0xff,0x4e,0x01,0xf9,0x02,0x18,0xff,0x2b,0x01,0xf9,0x02,0x19,0xff,0xc3,0x01,0xf9,0x02,0x1a,0xff,0x8d,0x01,0xf9,0x02,0x1b,0xff,0x2b,0x01,0xf9,0x02,0x1c,0xff,0x4c,0x01,0xf9,0x02,0x1d,0xff,0x4e,0x01,0xf9,0x02,0x1e,0xff,0x4e,0x01,0xf9,0x02,0x1f,0xff,0x4e, +0x01,0xf9,0x02,0x20,0xff,0x4e,0x01,0xf9,0x02,0x21,0xff,0xc3,0x01,0xf9,0x02,0x22,0xff,0x4e,0x01,0xf9,0x02,0x23,0xff,0x4e,0x01,0xf9,0x02,0x24,0xff,0x60,0x01,0xf9,0x02,0x25,0xff,0x4e,0x01,0xf9,0x02,0x26,0xff,0x54,0x01,0xf9,0x02,0x27,0xff,0x2b,0x01,0xf9,0x02,0x29,0xff,0x4e,0x01,0xf9,0x02,0x2a,0xff,0x2b,0x01,0xf9,0x02,0x2b, +0xff,0x66,0x01,0xf9,0x02,0x2c,0x00,0x6f,0x01,0xf9,0x02,0x2d,0xff,0x9e,0x01,0xf9,0x02,0x2e,0xff,0x4e,0x01,0xf9,0x02,0x30,0xff,0x4e,0x01,0xf9,0x02,0x31,0xff,0x8d,0x01,0xf9,0x02,0x32,0xff,0x4e,0x01,0xf9,0x02,0x34,0xff,0x4e,0x01,0xfa,0x00,0x0f,0xff,0x3b,0x01,0xfa,0x00,0x11,0xff,0x2b,0x01,0xfa,0x00,0xac,0xff,0x2b,0x01,0xfa, +0x01,0xdc,0x00,0x29,0x01,0xfa,0x01,0xe1,0xff,0x75,0x01,0xfa,0x01,0xe3,0x00,0x29,0x01,0xfa,0x01,0xe7,0xff,0x33,0x01,0xfa,0x01,0xeb,0xff,0x75,0x01,0xfa,0x01,0xed,0x00,0x25,0x01,0xfa,0x01,0xf2,0xff,0x75,0x01,0xfa,0x01,0xf8,0xff,0xdb,0x01,0xfa,0x01,0xf9,0x00,0x29,0x01,0xfa,0x02,0x01,0x00,0x29,0x01,0xfa,0x02,0x07,0xff,0x79, +0x01,0xfa,0x02,0x09,0xff,0xb6,0x01,0xfa,0x02,0x0a,0xff,0xb6,0x01,0xfa,0x02,0x0b,0xfe,0xfe,0x01,0xfa,0x02,0x0c,0xff,0x91,0x01,0xfa,0x02,0x0f,0xff,0xb6,0x01,0xfa,0x02,0x10,0xff,0xb6,0x01,0xfa,0x02,0x11,0xff,0xb6,0x01,0xfa,0x02,0x12,0xfe,0xfe,0x01,0xfa,0x02,0x13,0xff,0xb6,0x01,0xfa,0x02,0x14,0xff,0xb6,0x01,0xfa,0x02,0x15, +0xff,0x91,0x01,0xfa,0x02,0x16,0xff,0xb6,0x01,0xfa,0x02,0x17,0xff,0xb6,0x01,0xfa,0x02,0x18,0xff,0x91,0x01,0xfa,0x02,0x1b,0xff,0x91,0x01,0xfa,0x02,0x1c,0xff,0xb6,0x01,0xfa,0x02,0x1d,0xff,0xb6,0x01,0xfa,0x02,0x1f,0xff,0xb6,0x01,0xfa,0x02,0x20,0xff,0xb6,0x01,0xfa,0x02,0x22,0xff,0xb6,0x01,0xfa,0x02,0x23,0xff,0xb6,0x01,0xfa, +0x02,0x25,0xff,0xb6,0x01,0xfa,0x02,0x26,0xff,0xaa,0x01,0xfa,0x02,0x27,0xff,0x91,0x01,0xfa,0x02,0x29,0xff,0xb6,0x01,0xfa,0x02,0x2a,0xff,0x91,0x01,0xfa,0x02,0x2b,0xff,0xc3,0x01,0xfa,0x02,0x2c,0x00,0x6d,0x01,0xfa,0x02,0x2d,0xfe,0xfe,0x01,0xfa,0x02,0x2e,0xff,0xb6,0x01,0xfa,0x02,0x30,0xff,0xb6,0x01,0xfa,0x02,0x32,0xff,0xb6, +0x01,0xfa,0x02,0x34,0xff,0xb6,0x01,0xfb,0x00,0x0f,0xff,0xa2,0x01,0xfb,0x00,0x11,0xff,0xa2,0x01,0xfb,0x00,0xac,0xff,0xa2,0x01,0xfb,0x00,0xc4,0xff,0x4a,0x01,0xfb,0x00,0xc5,0xff,0x96,0x01,0xfb,0x01,0xdc,0xff,0xa2,0x01,0xfb,0x01,0xdf,0xff,0xdb,0x01,0xfb,0x01,0xe1,0xff,0xf6,0x01,0xfb,0x01,0xe3,0xff,0xa2,0x01,0xfb,0x01,0xe5, +0xff,0xe7,0x01,0xfb,0x01,0xe7,0xff,0xc3,0x01,0xfb,0x01,0xeb,0xff,0xf6,0x01,0xfb,0x01,0xed,0xff,0xcd,0x01,0xfb,0x01,0xee,0xff,0xcf,0x01,0xfb,0x01,0xf2,0xff,0xf6,0x01,0xfb,0x01,0xf9,0xff,0xa2,0x01,0xfb,0x01,0xfa,0xff,0xe7,0x01,0xfb,0x01,0xfc,0xff,0xdb,0x01,0xfb,0x02,0x01,0xff,0xa2,0x01,0xfb,0x02,0x07,0xff,0xe7,0x01,0xfb, +0x02,0x0b,0xff,0x91,0x01,0xfb,0x02,0x2d,0xff,0x91,0x01,0xfc,0x00,0x0f,0x00,0x46,0x01,0xfc,0x00,0x11,0x00,0x39,0x01,0xfc,0x00,0x1e,0x00,0x52,0x01,0xfc,0x00,0xac,0x00,0x39,0x01,0xfc,0x00,0xc4,0x00,0x46,0x01,0xfc,0x00,0xc5,0x00,0x52,0x01,0xfc,0x01,0xdc,0x00,0x23,0x01,0xfc,0x01,0xde,0xff,0xdb,0x01,0xfc,0x01,0xe1,0x00,0x62, +0x01,0xfc,0x01,0xe3,0x00,0x23,0x01,0xfc,0x01,0xeb,0x00,0x62,0x01,0xfc,0x01,0xed,0x00,0x25,0x01,0xfc,0x01,0xf2,0x00,0x62,0x01,0xfc,0x01,0xf5,0xff,0xe7,0x01,0xfc,0x01,0xf8,0xff,0xdb,0x01,0xfc,0x01,0xf9,0x00,0x23,0x01,0xfc,0x01,0xfb,0xff,0xdb,0x01,0xfc,0x02,0x01,0x00,0x23,0x01,0xfc,0x02,0x2c,0x00,0x52,0x01,0xfd,0x00,0x0f, +0x00,0x29,0x01,0xfd,0x00,0xc4,0x00,0x29,0x01,0xfd,0x00,0xc5,0x00,0x29,0x01,0xfd,0x01,0xe1,0x00,0x3d,0x01,0xfd,0x01,0xeb,0x00,0x3d,0x01,0xfd,0x01,0xf2,0x00,0x3d,0x01,0xfd,0x01,0xfe,0xff,0xdb,0x01,0xfd,0x02,0x0b,0x00,0x25,0x01,0xfd,0x02,0x12,0x00,0x25,0x01,0xfd,0x02,0x2d,0x00,0x25,0x02,0x00,0x00,0x0f,0x00,0x29,0x02,0x00, +0x00,0x1e,0x00,0x29,0x02,0x00,0x00,0xc4,0x00,0x29,0x02,0x00,0x00,0xc5,0x00,0x29,0x02,0x00,0x01,0xe1,0x00,0x3d,0x02,0x00,0x01,0xeb,0x00,0x3d,0x02,0x00,0x01,0xf2,0x00,0x3d,0x02,0x00,0x01,0xfb,0xff,0xcf,0x02,0x00,0x01,0xfe,0xff,0xdb,0x02,0x00,0x02,0x0b,0x00,0x25,0x02,0x00,0x02,0x12,0x00,0x25,0x02,0x00,0x02,0x2d,0x00,0x25, +0x02,0x01,0x01,0xdc,0xff,0x79,0x02,0x01,0x01,0xde,0xff,0xe7,0x02,0x01,0x01,0xe3,0xff,0x79,0x02,0x01,0x01,0xf5,0xff,0xe7,0x02,0x01,0x01,0xf8,0xff,0xe7,0x02,0x01,0x01,0xf9,0xff,0x79,0x02,0x01,0x01,0xfb,0xff,0xe7,0x02,0x01,0x01,0xfe,0xff,0x62,0x02,0x01,0x02,0x01,0xff,0x79,0x02,0x01,0x02,0x19,0xff,0xcf,0x02,0x01,0x02,0x21, +0xff,0xcf,0x02,0x03,0x01,0xdc,0xff,0x79,0x02,0x03,0x01,0xde,0xff,0xe7,0x02,0x03,0x01,0xe3,0xff,0x79,0x02,0x03,0x01,0xf5,0xff,0xe7,0x02,0x03,0x01,0xf8,0xff,0xe7,0x02,0x03,0x01,0xf9,0xff,0x79,0x02,0x03,0x01,0xfb,0xff,0xe7,0x02,0x03,0x01,0xfe,0xff,0x62,0x02,0x03,0x02,0x01,0xff,0x79,0x02,0x03,0x02,0x19,0xff,0xcf,0x02,0x03, +0x02,0x21,0xff,0xcf,0x02,0x04,0x00,0x0f,0xff,0xa2,0x02,0x04,0x00,0x11,0xff,0xa2,0x02,0x04,0x00,0xac,0xff,0xa2,0x02,0x04,0x00,0xc4,0xff,0x4a,0x02,0x04,0x00,0xc5,0xff,0x96,0x02,0x04,0x01,0xdc,0xff,0xa2,0x02,0x04,0x01,0xdf,0xff,0xdb,0x02,0x04,0x01,0xe1,0xff,0xf6,0x02,0x04,0x01,0xe3,0xff,0xa2,0x02,0x04,0x01,0xe5,0xff,0xe7, +0x02,0x04,0x01,0xe7,0xff,0xe5,0x02,0x04,0x01,0xeb,0xff,0xf6,0x02,0x04,0x01,0xf2,0xff,0xf6,0x02,0x04,0x01,0xf9,0xff,0xa2,0x02,0x04,0x01,0xfa,0xff,0xe7,0x02,0x04,0x01,0xfc,0xff,0xdb,0x02,0x04,0x02,0x01,0xff,0xa2,0x02,0x05,0x00,0x0f,0xff,0xa2,0x02,0x05,0x00,0x11,0xff,0xa2,0x02,0x05,0x00,0xac,0xff,0xa2,0x02,0x05,0x00,0xc4, +0xff,0x4a,0x02,0x05,0x00,0xc5,0xff,0x96,0x02,0x05,0x01,0xdc,0xff,0xa2,0x02,0x05,0x01,0xdf,0xff,0xdb,0x02,0x05,0x01,0xe1,0xff,0xf6,0x02,0x05,0x01,0xe3,0xff,0xa2,0x02,0x05,0x01,0xe5,0xff,0xe7,0x02,0x05,0x01,0xe7,0xff,0xe5,0x02,0x05,0x01,0xeb,0xff,0xf6,0x02,0x05,0x01,0xf2,0xff,0xf6,0x02,0x05,0x01,0xf9,0xff,0xa2,0x02,0x05, +0x01,0xfa,0xff,0xe7,0x02,0x05,0x01,0xfc,0xff,0xdb,0x02,0x05,0x02,0x01,0xff,0xa2,0x02,0x07,0x02,0x1e,0xff,0xe7,0x02,0x08,0x02,0x0b,0xff,0xe7,0x02,0x08,0x02,0x0d,0xff,0xe1,0x02,0x08,0x02,0x19,0xff,0xdb,0x02,0x08,0x02,0x21,0xff,0xdb,0x02,0x09,0x02,0x19,0xff,0xee,0x02,0x09,0x02,0x1e,0xff,0xe7,0x02,0x09,0x02,0x21,0xff,0xee, +0x02,0x0a,0x00,0x0f,0xff,0xc3,0x02,0x0a,0x00,0x11,0xff,0xae,0x02,0x0a,0x00,0xac,0xff,0xae,0x02,0x0a,0x02,0x07,0xff,0xc3,0x02,0x0a,0x02,0x0b,0xff,0xb6,0x02,0x0a,0x02,0x0c,0xff,0xdb,0x02,0x0a,0x02,0x12,0xff,0xb6,0x02,0x0a,0x02,0x15,0xff,0xdb,0x02,0x0a,0x02,0x18,0xff,0xdb,0x02,0x0a,0x02,0x19,0x00,0x29,0x02,0x0a,0x02,0x1b, +0xff,0xdb,0x02,0x0a,0x02,0x21,0x00,0x29,0x02,0x0a,0x02,0x26,0xff,0xe7,0x02,0x0a,0x02,0x27,0xff,0xdb,0x02,0x0a,0x02,0x2a,0xff,0xdb,0x02,0x0a,0x02,0x2d,0xff,0xb6,0x02,0x0b,0x02,0x12,0x00,0x14,0x02,0x0b,0x02,0x1e,0xff,0xdb,0x02,0x0b,0x02,0x2d,0x00,0x14,0x02,0x0c,0x00,0x05,0xff,0x98,0x02,0x0c,0x00,0x0a,0xff,0x98,0x02,0x0d, +0x00,0x0f,0x00,0x52,0x02,0x0d,0x00,0x10,0xff,0x73,0x02,0x0d,0x00,0x11,0x00,0x52,0x02,0x0d,0x00,0x1d,0x00,0x52,0x02,0x0d,0x00,0x1e,0x00,0x52,0x02,0x0d,0x00,0xac,0x00,0x52,0x02,0x0d,0x02,0x0b,0x00,0x29,0x02,0x0d,0x02,0x0c,0xff,0xd7,0x02,0x0d,0x02,0x0d,0x00,0x4a,0x02,0x0d,0x02,0x12,0x00,0x52,0x02,0x0d,0x02,0x15,0xff,0xd7, +0x02,0x0d,0x02,0x18,0xff,0xd7,0x02,0x0d,0x02,0x1b,0xff,0xd7,0x02,0x0d,0x02,0x1e,0xff,0xe7,0x02,0x0d,0x02,0x27,0xff,0xd7,0x02,0x0d,0x02,0x2a,0xff,0xd7,0x02,0x0d,0x02,0x2d,0x00,0x29,0x02,0x0e,0x02,0x1e,0xff,0xd7,0x02,0x11,0x00,0x0f,0x00,0x52,0x02,0x11,0x00,0x10,0xff,0x73,0x02,0x11,0x00,0x11,0x00,0x52,0x02,0x11,0x00,0x1d, +0x00,0x52,0x02,0x11,0x00,0x1e,0x00,0x52,0x02,0x11,0x00,0xac,0x00,0x52,0x02,0x11,0x02,0x0b,0x00,0x14,0x02,0x11,0x02,0x0c,0xff,0xd7,0x02,0x11,0x02,0x0d,0x00,0x3d,0x02,0x11,0x02,0x12,0x00,0x29,0x02,0x11,0x02,0x15,0xff,0xd7,0x02,0x11,0x02,0x18,0xff,0xd7,0x02,0x11,0x02,0x1b,0xff,0xd7,0x02,0x11,0x02,0x1e,0xff,0xe7,0x02,0x11, +0x02,0x27,0xff,0xd7,0x02,0x11,0x02,0x2a,0xff,0xd7,0x02,0x11,0x02,0x2d,0x00,0x29,0x02,0x15,0x00,0x05,0xff,0x6f,0x02,0x15,0x00,0x0a,0xff,0x6f,0x02,0x15,0x00,0xb4,0xff,0xb0,0x02,0x15,0x00,0xb5,0xff,0x7b,0x02,0x15,0x00,0xb6,0xff,0xbc,0x02,0x15,0x00,0xb7,0xff,0x7b,0x02,0x15,0x02,0x07,0xff,0xe5,0x02,0x15,0x02,0x0b,0xff,0xe7, +0x02,0x15,0x02,0x0d,0xff,0xd7,0x02,0x15,0x02,0x19,0xff,0xdb,0x02,0x15,0x02,0x1c,0xff,0xe7,0x02,0x15,0x02,0x21,0xff,0xdb,0x02,0x17,0x00,0x05,0xff,0x6f,0x02,0x17,0x00,0x0a,0xff,0x6f,0x02,0x17,0x00,0xb4,0xff,0xc9,0x02,0x17,0x00,0xb5,0xff,0x87,0x02,0x17,0x00,0xb6,0xff,0x87,0x02,0x17,0x00,0xb7,0xff,0x87,0x02,0x17,0x02,0x07, +0xff,0xe5,0x02,0x17,0x02,0x0b,0xff,0xe7,0x02,0x17,0x02,0x0d,0xff,0xd7,0x02,0x17,0x02,0x19,0xff,0xdb,0x02,0x17,0x02,0x1c,0xff,0xe7,0x02,0x17,0x02,0x21,0xff,0xdb,0x02,0x19,0x00,0x0f,0xff,0xc3,0x02,0x19,0x00,0x11,0xff,0xae,0x02,0x19,0x00,0xac,0xff,0xae,0x02,0x19,0x02,0x0b,0xff,0xdb,0x02,0x19,0x02,0x0c,0xff,0xdb,0x02,0x19, +0x02,0x12,0xff,0xdb,0x02,0x19,0x02,0x15,0xff,0xdb,0x02,0x19,0x02,0x18,0xff,0xdb,0x02,0x19,0x02,0x19,0x00,0x14,0x02,0x19,0x02,0x1a,0x00,0x29,0x02,0x19,0x02,0x1b,0xff,0xdb,0x02,0x19,0x02,0x21,0x00,0x29,0x02,0x19,0x02,0x26,0xff,0xe7,0x02,0x19,0x02,0x27,0xff,0xdb,0x02,0x19,0x02,0x2a,0xff,0xdb,0x02,0x19,0x02,0x2d,0xff,0xdb, +0x02,0x19,0x02,0x31,0x00,0x29,0x02,0x1a,0x00,0x05,0x00,0x1d,0x02,0x1a,0x00,0x0a,0x00,0x1d,0x02,0x1a,0x00,0x0f,0xff,0x98,0x02,0x1a,0x00,0x11,0xff,0x7f,0x02,0x1a,0x00,0x22,0xff,0xb2,0x02,0x1a,0x00,0xac,0xff,0x7f,0x02,0x1a,0x00,0xbf,0x00,0x0e,0x02,0x1a,0x00,0xc4,0xff,0x8b,0x02,0x1a,0x00,0xc5,0xff,0x8b,0x02,0x1a,0x02,0x0b, +0xff,0x91,0x02,0x1a,0x02,0x0c,0xff,0xf6,0x02,0x1a,0x02,0x12,0xff,0x91,0x02,0x1a,0x02,0x15,0xff,0xf6,0x02,0x1a,0x02,0x18,0xff,0xf6,0x02,0x1a,0x02,0x19,0x00,0x29,0x02,0x1a,0x02,0x1b,0xff,0xf6,0x02,0x1a,0x02,0x21,0x00,0x29,0x02,0x1a,0x02,0x27,0xff,0xf6,0x02,0x1a,0x02,0x2a,0xff,0xf6,0x02,0x1a,0x02,0x2d,0xff,0x91,0x02,0x1b, +0x00,0x05,0xff,0x6f,0x02,0x1b,0x00,0x0a,0xff,0x6f,0x02,0x1b,0x00,0xb4,0xff,0xb0,0x02,0x1b,0x00,0xb5,0xff,0x7b,0x02,0x1b,0x00,0xb6,0xff,0xbc,0x02,0x1b,0x00,0xb7,0xff,0x7b,0x02,0x1b,0x02,0x07,0xff,0xe5,0x02,0x1b,0x02,0x0b,0xff,0xe7,0x02,0x1b,0x02,0x0d,0xff,0xd7,0x02,0x1b,0x02,0x19,0xff,0xdb,0x02,0x1b,0x02,0x1c,0xff,0xe7, +0x02,0x1b,0x02,0x21,0xff,0xdb,0x02,0x1c,0x02,0x0b,0x00,0x14,0x02,0x1c,0x02,0x0c,0xff,0xee,0x02,0x1c,0x02,0x12,0x00,0x29,0x02,0x1c,0x02,0x15,0xff,0xee,0x02,0x1c,0x02,0x18,0xff,0xee,0x02,0x1c,0x02,0x1b,0xff,0xee,0x02,0x1c,0x02,0x1e,0xff,0xdb,0x02,0x1c,0x02,0x27,0xff,0xee,0x02,0x1c,0x02,0x2a,0xff,0xee,0x02,0x1c,0x02,0x2d, +0x00,0x29,0x02,0x1d,0x02,0x1e,0xff,0xdb,0x02,0x20,0x02,0x1e,0xff,0xdb,0x02,0x21,0x02,0x0c,0xff,0xf4,0x02,0x21,0x02,0x15,0xff,0xf4,0x02,0x21,0x02,0x18,0xff,0xf4,0x02,0x21,0x02,0x19,0xff,0xaa,0x02,0x21,0x02,0x1a,0xff,0xb6,0x02,0x21,0x02,0x1b,0xff,0xf4,0x02,0x21,0x02,0x1e,0xff,0x85,0x02,0x21,0x02,0x21,0xff,0xaa,0x02,0x21, +0x02,0x27,0xff,0xf4,0x02,0x21,0x02,0x2a,0xff,0xf4,0x02,0x21,0x02,0x31,0xff,0xb6,0x02,0x23,0x02,0x0c,0xff,0xf4,0x02,0x23,0x02,0x15,0xff,0xf4,0x02,0x23,0x02,0x18,0xff,0xf4,0x02,0x23,0x02,0x19,0xff,0xaa,0x02,0x23,0x02,0x1a,0xff,0xb6,0x02,0x23,0x02,0x1b,0xff,0xf4,0x02,0x23,0x02,0x1e,0xff,0x85,0x02,0x23,0x02,0x21,0xff,0xaa, +0x02,0x23,0x02,0x27,0xff,0xf4,0x02,0x23,0x02,0x2a,0xff,0xf4,0x02,0x23,0x02,0x31,0xff,0xb6,0x02,0x24,0x00,0x05,0xff,0x6f,0x02,0x24,0x00,0x0a,0xff,0x6f,0x02,0x24,0x00,0xb4,0xff,0xb0,0x02,0x24,0x00,0xb5,0xff,0x7b,0x02,0x24,0x00,0xb6,0xff,0xbc,0x02,0x24,0x00,0xb7,0xff,0x7b,0x02,0x24,0x02,0x07,0xff,0xe5,0x02,0x24,0x02,0x0b, +0xff,0xe7,0x02,0x24,0x02,0x0d,0xff,0xd7,0x02,0x24,0x02,0x19,0xff,0xdb,0x02,0x24,0x02,0x1c,0xff,0xe7,0x02,0x24,0x02,0x21,0xff,0xdb,0x02,0x25,0x00,0x05,0xff,0x6f,0x02,0x25,0x00,0x0a,0xff,0x6f,0x02,0x25,0x00,0xb4,0xff,0xb0,0x02,0x25,0x00,0xb5,0xff,0x7b,0x02,0x25,0x00,0xb6,0xff,0xbc,0x02,0x25,0x00,0xb7,0xff,0x7b,0x02,0x25, +0x02,0x07,0xff,0xe5,0x02,0x25,0x02,0x0b,0xff,0xe7,0x02,0x25,0x02,0x0d,0xff,0xd7,0x02,0x25,0x02,0x19,0xff,0xdb,0x02,0x25,0x02,0x1c,0xff,0xe7,0x02,0x25,0x02,0x21,0xff,0xdb,0x02,0x27,0x00,0x05,0xff,0x98,0x02,0x27,0x00,0x0a,0xff,0x98,0x02,0x28,0x00,0x05,0xff,0x6f,0x02,0x28,0x00,0x0a,0xff,0x6f,0x02,0x28,0x00,0xb4,0xff,0xb0, +0x02,0x28,0x00,0xb5,0xff,0x7b,0x02,0x28,0x00,0xb6,0xff,0xbc,0x02,0x28,0x00,0xb7,0xff,0x7b,0x02,0x28,0x02,0x07,0xff,0xee,0x02,0x28,0x02,0x19,0xff,0xe7,0x02,0x28,0x02,0x1c,0xff,0xee,0x02,0x28,0x02,0x1e,0xff,0xe7,0x02,0x28,0x02,0x21,0xff,0xe7,0x02,0x29,0x00,0x0f,0xff,0xc3,0x02,0x29,0x00,0x11,0xff,0xae,0x02,0x29,0x00,0xac, +0xff,0xae,0x02,0x29,0x02,0x07,0xff,0xc3,0x02,0x29,0x02,0x0b,0xff,0xb6,0x02,0x29,0x02,0x0c,0xff,0xdb,0x02,0x29,0x02,0x12,0xff,0xb6,0x02,0x29,0x02,0x15,0xff,0xdb,0x02,0x29,0x02,0x18,0xff,0xdb,0x02,0x29,0x02,0x19,0x00,0x29,0x02,0x29,0x02,0x1b,0xff,0xdb,0x02,0x29,0x02,0x21,0x00,0x29,0x02,0x29,0x02,0x26,0xff,0xe7,0x02,0x29, +0x02,0x27,0xff,0xdb,0x02,0x29,0x02,0x2a,0xff,0xdb,0x02,0x29,0x02,0x2d,0xff,0xb6,0x02,0x2a,0x01,0xe4,0xff,0xe5,0x02,0x2c,0x02,0x28,0x00,0x52,0x02,0x2c,0x02,0x2f,0x00,0x52,0x02,0x2d,0x02,0x0c,0xff,0xf4,0x02,0x2d,0x02,0x15,0xff,0xf4,0x02,0x2d,0x02,0x18,0xff,0xf4,0x02,0x2d,0x02,0x19,0xff,0xaa,0x02,0x2d,0x02,0x1a,0xff,0xb6, +0x02,0x2d,0x02,0x1b,0xff,0xf4,0x02,0x2d,0x02,0x1e,0xff,0x85,0x02,0x2d,0x02,0x21,0xff,0xaa,0x02,0x2d,0x02,0x27,0xff,0xf4,0x02,0x2d,0x02,0x2a,0xff,0xf4,0x02,0x2d,0x02,0x31,0xff,0xb6,0x02,0x2e,0x02,0x0c,0xff,0xf4,0x02,0x2e,0x02,0x15,0xff,0xf4,0x02,0x2e,0x02,0x18,0xff,0xf4,0x02,0x2e,0x02,0x19,0xff,0xaa,0x02,0x2e,0x02,0x1a, +0xff,0xb6,0x02,0x2e,0x02,0x1b,0xff,0xf4,0x02,0x2e,0x02,0x1e,0xff,0x85,0x02,0x2e,0x02,0x21,0xff,0xaa,0x02,0x2e,0x02,0x27,0xff,0xf4,0x02,0x2e,0x02,0x2a,0xff,0xf4,0x02,0x2e,0x02,0x31,0xff,0xb6,0x02,0x2f,0x00,0x05,0xff,0x98,0x02,0x2f,0x00,0x0a,0xff,0x98,0x02,0x30,0x00,0x0f,0x00,0x52,0x02,0x30,0x00,0x10,0xff,0x73,0x02,0x30, +0x00,0x11,0x00,0x52,0x02,0x30,0x00,0x1d,0x00,0x52,0x02,0x30,0x00,0x1e,0x00,0x52,0x02,0x30,0x00,0xac,0x00,0x52,0x02,0x30,0x02,0x0b,0x00,0x29,0x02,0x30,0x02,0x0c,0xff,0xd7,0x02,0x30,0x02,0x12,0x00,0x3d,0x02,0x30,0x02,0x15,0xff,0xd7,0x02,0x30,0x02,0x18,0xff,0xd7,0x02,0x30,0x02,0x1b,0xff,0xd7,0x02,0x30,0x02,0x1e,0xff,0xe7, +0x02,0x30,0x02,0x27,0xff,0xd7,0x02,0x30,0x02,0x2a,0xff,0xd7,0x02,0x30,0x02,0x2d,0x00,0x3d,0x02,0x31,0x00,0x05,0x00,0x1d,0x02,0x31,0x00,0x0a,0x00,0x1d,0x02,0x31,0x00,0x0f,0xff,0x98,0x02,0x31,0x00,0x11,0xff,0x7f,0x02,0x31,0x00,0x22,0xff,0xb2,0x02,0x31,0x00,0xac,0xff,0x7f,0x02,0x31,0x00,0xbf,0x00,0x0e,0x02,0x31,0x00,0xc4, +0xff,0x8b,0x02,0x31,0x00,0xc5,0xff,0x8b,0x02,0x31,0x02,0x0b,0xff,0x91,0x02,0x31,0x02,0x0c,0xff,0xf6,0x02,0x31,0x02,0x12,0xff,0x91,0x02,0x31,0x02,0x15,0xff,0xf6,0x02,0x31,0x02,0x18,0xff,0xf6,0x02,0x31,0x02,0x19,0x00,0x29,0x02,0x31,0x02,0x1b,0xff,0xf6,0x02,0x31,0x02,0x21,0x00,0x29,0x02,0x31,0x02,0x27,0xff,0xf6,0x02,0x31, +0x02,0x2a,0xff,0xf6,0x02,0x31,0x02,0x2d,0xff,0x91,0x02,0x33,0x01,0xdc,0x00,0x29,0x02,0x33,0x01,0xde,0xff,0xa2,0x02,0x33,0x01,0xe0,0x00,0x2d,0x02,0x33,0x01,0xe1,0xff,0xa2,0x02,0x33,0x01,0xe3,0x00,0x29,0x02,0x33,0x01,0xe5,0x00,0x1d,0x02,0x33,0x01,0xe7,0xff,0x71,0x02,0x33,0x01,0xeb,0xff,0xa2,0x02,0x33,0x01,0xf2,0xff,0xa2, +0x02,0x33,0x01,0xf5,0xff,0xcf,0x02,0x33,0x01,0xf8,0xff,0xcf,0x02,0x33,0x01,0xf9,0x00,0x29,0x02,0x33,0x01,0xfa,0x00,0x1d,0x02,0x33,0x01,0xfb,0xff,0xa2,0x02,0x33,0x02,0x01,0x00,0x29,0x02,0x33,0x02,0x06,0xff,0xe7,0x02,0x33,0x02,0x07,0xff,0x27,0x02,0x33,0x02,0x09,0xff,0x4e,0x02,0x33,0x02,0x0a,0xff,0x4e,0x02,0x33,0x02,0x0b, +0xff,0x9e,0x02,0x33,0x02,0x0c,0xff,0x2b,0x02,0x33,0x02,0x0f,0xff,0x4e,0x02,0x33,0x02,0x10,0xff,0x4e,0x02,0x33,0x02,0x11,0xff,0x4e,0x02,0x33,0x02,0x12,0xff,0x9e,0x02,0x33,0x02,0x13,0xff,0x4e,0x02,0x33,0x02,0x14,0xff,0x4e,0x02,0x33,0x02,0x15,0xff,0x2b,0x02,0x33,0x02,0x16,0xff,0x4e,0x02,0x33,0x02,0x17,0xff,0x4e,0x02,0x33, +0x02,0x18,0xff,0x2b,0x02,0x33,0x02,0x19,0xff,0xc3,0x02,0x33,0x02,0x1b,0xff,0x2b,0x02,0x33,0x02,0x1c,0xff,0x4c,0x02,0x33,0x02,0x1d,0xff,0x4e,0x02,0x33,0x02,0x1e,0xff,0x4e,0x02,0x33,0x02,0x1f,0xff,0x4e,0x02,0x33,0x02,0x20,0xff,0x4e,0x02,0x33,0x02,0x21,0xff,0xc3,0x02,0x33,0x02,0x22,0xff,0x4e,0x02,0x33,0x02,0x23,0xff,0x4e, +0x02,0x33,0x02,0x24,0xff,0x60,0x02,0x33,0x02,0x25,0xff,0x4e,0x02,0x33,0x02,0x26,0xff,0x54,0x02,0x33,0x02,0x27,0xff,0x2b,0x02,0x33,0x02,0x29,0xff,0x4e,0x02,0x33,0x02,0x2a,0xff,0x2b,0x02,0x33,0x02,0x2b,0xff,0x66,0x02,0x33,0x02,0x2c,0x00,0x6f,0x02,0x33,0x02,0x2d,0xff,0x9e,0x02,0x33,0x02,0x2e,0xff,0x4e,0x02,0x33,0x02,0x32, +0xff,0x4e,0x02,0x33,0x02,0x34,0xff,0x4e,0x02,0x34,0x00,0x0f,0xff,0xc3,0x02,0x34,0x00,0x11,0xff,0xae,0x02,0x34,0x00,0xac,0xff,0xae,0x02,0x34,0x02,0x07,0xff,0xc3,0x02,0x34,0x02,0x0b,0xff,0xb6,0x02,0x34,0x02,0x0c,0xff,0xdb,0x02,0x34,0x02,0x12,0xff,0xb6,0x02,0x34,0x02,0x15,0xff,0xdb,0x02,0x34,0x02,0x18,0xff,0xdb,0x02,0x34, +0x02,0x19,0x00,0x29,0x02,0x34,0x02,0x1b,0xff,0xdb,0x02,0x34,0x02,0x21,0x00,0x29,0x02,0x34,0x02,0x26,0xff,0xe7,0x02,0x34,0x02,0x27,0xff,0xdb,0x02,0x34,0x02,0x2a,0xff,0xdb,0x02,0x34,0x02,0x2c,0x00,0x52,0x02,0x34,0x02,0x2d,0xff,0xb6,0x02,0x37,0x01,0x33,0x00,0x19,0x02,0x37,0x01,0xc5,0x00,0x29,0x02,0x37,0x02,0x37,0x00,0x19, +0x02,0x3d,0x00,0x57,0xff,0xbe,0x02,0x3d,0x00,0x59,0xff,0xcf,0x02,0x3d,0x00,0x5a,0xff,0xe5,0x02,0x3d,0x00,0x5c,0xff,0xd1,0x02,0x3d,0x00,0xba,0xff,0xbe,0x02,0x3d,0x00,0xc4,0xff,0xb2,0x02,0x3d,0x00,0xc5,0xff,0xb2,0x02,0x3d,0x00,0xeb,0xff,0xd1,0x02,0x3d,0x01,0x21,0xff,0xbe,0x02,0x3d,0x01,0x23,0xff,0xbe,0x02,0x3d,0x01,0x77, +0xff,0xbe,0x02,0x3d,0x01,0x81,0xff,0xe5,0x02,0x3d,0x01,0x83,0xff,0xd1,0x02,0x3d,0x01,0x8d,0xff,0xe5,0x02,0x3d,0x01,0x8f,0xff,0xe5,0x02,0x3d,0x01,0x91,0xff,0xe5,0x02,0x3d,0x01,0x93,0xff,0xd1,0x00,0x00,0x00,0x00,0x00,0x30,0x02,0x46,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x14,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00, +0x00,0x01,0x00,0x10,0x02,0x14,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x0e,0x02,0x24,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x20,0x02,0x32,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x10,0x02,0x14,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x05,0x00,0x18,0x02,0x52,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x06,0x00,0x0e, +0x02,0x6a,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x07,0x00,0x72,0x02,0x78,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x08,0x00,0x2a,0x00,0x0e,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x0b,0x00,0x56,0x02,0xea,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x0d,0x0e,0x04,0x03,0x40,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x0e,0x00,0x56,0x02,0xea,0x00,0x03, +0x00,0x01,0x04,0x03,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x05,0x00,0x02,0x00,0x10,0x11,0x50,0x00,0x03,0x00,0x01,0x04,0x06,0x00,0x02,0x00,0x0c,0x11,0x60,0x00,0x03,0x00,0x01,0x04,0x07,0x00,0x02,0x00,0x10,0x11,0x6c,0x00,0x03,0x00,0x01,0x04,0x08,0x00,0x02,0x00,0x10,0x11,0x7c,0x00,0x03,0x00,0x01,0x04,0x09, +0x00,0x00,0x02,0x18,0x11,0x8c,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x01,0x00,0x10,0x02,0x14,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x02,0x00,0x0e,0x02,0x24,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x03,0x00,0x20,0x02,0x32,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x04,0x00,0x10,0x02,0x14,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x05,0x00,0x18, +0x02,0x52,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x06,0x00,0x0e,0x02,0x6a,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x07,0x00,0x72,0x02,0x78,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x08,0x00,0x2a,0x00,0x0e,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0b,0x00,0x56,0x02,0xea,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0d,0x0e,0x18,0x13,0xa4,0x00,0x03, +0x00,0x01,0x04,0x09,0x00,0x0e,0x00,0x4a,0x02,0xea,0x00,0x03,0x00,0x01,0x04,0x0a,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x0b,0x00,0x02,0x00,0x10,0x21,0xbc,0x00,0x03,0x00,0x01,0x04,0x0c,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x0e,0x00,0x02,0x00,0x0c,0x21,0xcc,0x00,0x03,0x00,0x01,0x04,0x10, +0x00,0x02,0x00,0x0e,0x21,0xd8,0x00,0x03,0x00,0x01,0x04,0x13,0x00,0x02,0x00,0x12,0x21,0xe6,0x00,0x03,0x00,0x01,0x04,0x14,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x15,0x00,0x02,0x00,0x10,0x21,0xf8,0x00,0x03,0x00,0x01,0x04,0x16,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x19,0x00,0x02,0x00,0x0e, +0x22,0x08,0x00,0x03,0x00,0x01,0x04,0x1b,0x00,0x02,0x00,0x10,0x22,0x16,0x00,0x03,0x00,0x01,0x04,0x1d,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x1f,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x24,0x00,0x02,0x00,0x0e,0x22,0x26,0x00,0x03,0x00,0x01,0x04,0x2d,0x00,0x02,0x00,0x0e,0x22,0x34,0x00,0x03, +0x00,0x01,0x08,0x0a,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x08,0x16,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x0c,0x0a,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x0c,0x0c,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0xa9,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x31,0x00,0x38,0x00,0x20,0x00,0x4d,0x00,0x69, +0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x43,0x00,0x6f,0x00,0x72,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x41,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x52,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x73,0x00,0x20, +0x00,0x52,0x00,0x65,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x76,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x20,0x00,0x0d,0x00,0x0d,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x54,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f, +0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0xa9,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x30,0x00,0x33,0x00,0x20,0x00,0x26,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x30,0x00,0x37, +0x00,0x2c,0x00,0x20,0x00,0x52,0x00,0x61,0x00,0x6c,0x00,0x70,0x00,0x68,0x00,0x20,0x00,0x48,0x00,0x61,0x00,0x6e,0x00,0x63,0x00,0x6f,0x00,0x63,0x00,0x6b,0x00,0x20,0x00,0x26,0x00,0x20,0x00,0x4a,0x00,0x6f,0x00,0x68,0x00,0x6e,0x00,0x20,0x00,0x48,0x00,0x75,0x00,0x64,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x54, +0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48,0x00,0x65, +0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x75,0x00,0x72,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x75,0x00,0x6e,0x00,0x64, +0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x20,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x3b,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x65,0x00,0x20,0x00,0x65,0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x64,0x00,0x65,0x00,0x64, +0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x73,0x00,0x63,0x00,0x72,0x00,0x69,0x00,0x70,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x74,0x00,0x61,0x00,0x69,0x00,0x6c,0x00,0x73, +0x00,0x2e,0x00,0x53,0x00,0x65,0x00,0x67,0x00,0x6f,0x00,0x65,0x00,0x20,0x00,0x55,0x00,0x49,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x53,0x00,0x65,0x00,0x67,0x00,0x6f,0x00,0x65,0x00,0x20,0x00,0x55,0x00,0x49,0x00,0x20,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72, +0x00,0x56,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x35,0x00,0x2e,0x00,0x36,0x00,0x32,0x00,0x53,0x00,0x65,0x00,0x67,0x00,0x6f,0x00,0x65,0x00,0x55,0x00,0x49,0x00,0x53,0x00,0x65,0x00,0x67,0x00,0x6f,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x74,0x00,0x72, +0x00,0x61,0x00,0x64,0x00,0x65,0x00,0x6d,0x00,0x61,0x00,0x72,0x00,0x6b,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x67,0x00,0x72,0x00,0x6f,0x00,0x75,0x00,0x70,0x00,0x20,0x00,0x6f, +0x00,0x66,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x70,0x00,0x61,0x00,0x6e,0x00,0x69,0x00,0x65,0x00,0x73,0x00,0x2e,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x64,0x00,0x6f,0x00,0x63,0x00,0x73,0x00,0x2e,0x00,0x6d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f, +0x00,0x66,0x00,0x74,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x2f,0x00,0x74,0x00,0x79,0x00,0x70,0x00,0x6f,0x00,0x67,0x00,0x72,0x00,0x61,0x00,0x70,0x00,0x68,0x00,0x79,0x00,0x2f,0x00,0x61,0x00,0x62,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74, +0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x70,0x00,0x6c,0x00,0x69,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x2e,0x00,0x20,0x00,0x59,0x00,0x6f,0x00,0x75,0x00,0x20,0x00,0x6d,0x00,0x61,0x00,0x79,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73, +0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x63,0x00,0x72,0x00,0x65,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x64,0x00,0x69,0x00,0x73,0x00,0x70,0x00,0x6c,0x00,0x61,0x00,0x79,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x70,0x00,0x72, +0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20, +0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x6f, +0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x64,0x00,0x75,0x00,0x63,0x00,0x74,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x76,0x00,0x69,0x00,0x63,0x00,0x65, +0x00,0x2c,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x77,0x00,0x68,0x00,0x69,0x00,0x63,0x00,0x68,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20, +0x00,0x77,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x20,0x00,0x59,0x00,0x6f,0x00,0x75,0x00,0x20,0x00,0x6d,0x00,0x61,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x6e,0x00,0x6c,0x00,0x79,0x00,0x20,0x00,0x28,0x00,0x69,0x00,0x29,0x00,0x20,0x00,0x65, +0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72, +0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x65,0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x64,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x72,0x00,0x65,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x63,0x00,0x74, +0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x3b,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20, +0x00,0x28,0x00,0x69,0x00,0x69,0x00,0x29,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x6d,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x72,0x00,0x69,0x00,0x6c,0x00,0x79,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x77,0x00,0x6e,0x00,0x6c,0x00,0x6f,0x00,0x61,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66, +0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x70,0x00,0x75,0x00,0x74, +0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x76,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x68,0x00,0x65,0x00,0x6c,0x00,0x70,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x2e,0x00,0x20,0x00,0x41, +0x00,0x6e,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x68,0x00,0x69,0x00,0x62,0x00,0x69,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x0d,0x00,0x0d,0x00,0x54,0x00,0x68,0x00,0x65, +0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x77,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x62,0x00,0x61,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65, +0x00,0x20,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x28,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x65,0x00,0x6e,0x00,0x2e,0x00,0x77,0x00,0x69,0x00,0x6b,0x00,0x69,0x00,0x70,0x00,0x65,0x00,0x64,0x00,0x69, +0x00,0x61,0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00,0x77,0x00,0x69,0x00,0x6b,0x00,0x69,0x00,0x2f,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x5f,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x29,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x70,0x00,0x70,0x00,0x6c,0x00,0x69,0x00,0x65,0x00,0x73, +0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x54,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f, +0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x20,0x1c,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x20,0x1d, +0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x6a,0x00,0x6f,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x6c,0x00,0x79,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x76,0x00,0x65,0x00,0x6c,0x00,0x6f,0x00,0x70,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x52,0x00,0x61,0x00,0x6c,0x00,0x70,0x00,0x68,0x00,0x20,0x00,0x48, +0x00,0x61,0x00,0x6e,0x00,0x63,0x00,0x6f,0x00,0x63,0x00,0x6b,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x4a,0x00,0x6f,0x00,0x68,0x00,0x6e,0x00,0x20,0x00,0x48,0x00,0x75,0x00,0x64,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x0d,0x00,0x0d,0x00,0x50,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x73, +0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x65,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x67,0x00,0x72,0x00,0x61,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x2c,0x00,0x20,0x00,0x66,0x00,0x72,0x00,0x65,0x00,0x65,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20, +0x00,0x63,0x00,0x68,0x00,0x61,0x00,0x72,0x00,0x67,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x79,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x6f,0x00,0x62,0x00,0x74,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20, +0x00,0x61,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x54,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f, +0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x73,0x00,0x6f, +0x00,0x63,0x00,0x69,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x63,0x00,0x75,0x00,0x6d,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x66,0x00,0x69,0x00,0x6c,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x28,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20, +0x20,0x1c,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x20,0x1d,0x00,0x29,0x00,0x2c,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x61, +0x00,0x6c,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x77, +0x00,0x69,0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x72,0x00,0x65,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x2c,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x77,0x00,0x69, +0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x73,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x75, +0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x2c,0x00,0x20,0x00,0x6d,0x00,0x6f,0x00,0x64,0x00,0x69,0x00,0x66,0x00,0x79,0x00,0x2c,0x00,0x20,0x00,0x6d,0x00,0x65,0x00,0x72,0x00,0x67,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x70,0x00,0x75,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x73,0x00,0x68, +0x00,0x2c,0x00,0x20,0x00,0x64,0x00,0x69,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x62,0x00,0x75,0x00,0x74,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x2f,0x00,0x6f,0x00,0x72, +0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x69,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63, +0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x73, +0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x77,0x00,0x68,0x00,0x6f,0x00,0x6d,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61, +0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x75,0x00,0x72,0x00,0x6e,0x00,0x69,0x00,0x73,0x00,0x68,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x6a,0x00,0x65,0x00,0x63, +0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x77,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x64,0x00,0x69,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x3a,0x00,0x0d,0x00,0x0d, +0x00,0x54,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x61,0x00,0x62,0x00,0x6f,0x00,0x76,0x00,0x65,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0x6e,0x00,0x6f,0x00,0x74,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x74, +0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x73,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x6e,0x00,0x6f,0x00,0x74,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x73,0x00,0x68,0x00,0x61,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x62,0x00,0x65,0x00,0x20,0x00,0x69, +0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x61,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x69,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x73,0x00,0x74,0x00,0x61,0x00,0x6e, +0x00,0x74,0x00,0x69,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69, +0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x2e,0x00,0x0d,0x00,0x0d,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46,0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x20,0x00,0x49,0x00,0x53,0x00,0x20,0x00,0x50,0x00,0x52,0x00,0x4f, +0x00,0x56,0x00,0x49,0x00,0x44,0x00,0x45,0x00,0x44,0x00,0x20,0x00,0x27,0x00,0x41,0x00,0x53,0x00,0x20,0x00,0x49,0x00,0x53,0x00,0x27,0x00,0x2c,0x00,0x20,0x00,0x57,0x00,0x49,0x00,0x54,0x00,0x48,0x00,0x4f,0x00,0x55,0x00,0x54,0x00,0x20,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x52,0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x59,0x00,0x20, +0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x59,0x00,0x20,0x00,0x4b,0x00,0x49,0x00,0x4e,0x00,0x44,0x00,0x2c,0x00,0x20,0x00,0x45,0x00,0x58,0x00,0x50,0x00,0x52,0x00,0x45,0x00,0x53,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x49,0x00,0x4d,0x00,0x50,0x00,0x4c,0x00,0x49,0x00,0x45,0x00,0x44,0x00,0x2c, +0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x43,0x00,0x4c,0x00,0x55,0x00,0x44,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x20,0x00,0x42,0x00,0x55,0x00,0x54,0x00,0x20,0x00,0x4e,0x00,0x4f,0x00,0x54,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x45,0x00,0x44,0x00,0x20,0x00,0x54,0x00,0x4f,0x00,0x20,0x00,0x54,0x00,0x48, +0x00,0x45,0x00,0x20,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x52,0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x49,0x00,0x45,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x4d,0x00,0x45,0x00,0x52,0x00,0x43,0x00,0x48,0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x41,0x00,0x42,0x00,0x49,0x00,0x4c,0x00,0x49,0x00,0x54,0x00,0x59,0x00,0x2c, +0x00,0x20,0x00,0x46,0x00,0x49,0x00,0x54,0x00,0x4e,0x00,0x45,0x00,0x53,0x00,0x53,0x00,0x20,0x00,0x46,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x41,0x00,0x20,0x00,0x50,0x00,0x41,0x00,0x52,0x00,0x54,0x00,0x49,0x00,0x43,0x00,0x55,0x00,0x4c,0x00,0x41,0x00,0x52,0x00,0x20,0x00,0x50,0x00,0x55,0x00,0x52,0x00,0x50,0x00,0x4f,0x00,0x53, +0x00,0x45,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x44,0x00,0x20,0x00,0x4e,0x00,0x4f,0x00,0x4e,0x00,0x49,0x00,0x4e,0x00,0x46,0x00,0x52,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x45,0x00,0x4d,0x00,0x45,0x00,0x4e,0x00,0x54,0x00,0x2e,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x4e,0x00,0x4f,0x00,0x20,0x00,0x45,0x00,0x56,0x00,0x45, +0x00,0x4e,0x00,0x54,0x00,0x20,0x00,0x53,0x00,0x48,0x00,0x41,0x00,0x4c,0x00,0x4c,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x41,0x00,0x55,0x00,0x54,0x00,0x48,0x00,0x4f,0x00,0x52,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x50,0x00,0x59,0x00,0x52,0x00,0x49,0x00,0x47,0x00,0x48, +0x00,0x54,0x00,0x20,0x00,0x48,0x00,0x4f,0x00,0x4c,0x00,0x44,0x00,0x45,0x00,0x52,0x00,0x53,0x00,0x20,0x00,0x42,0x00,0x45,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x41,0x00,0x42,0x00,0x4c,0x00,0x45,0x00,0x20,0x00,0x46,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x59,0x00,0x20,0x00,0x43,0x00,0x4c,0x00,0x41,0x00,0x49, +0x00,0x4d,0x00,0x2c,0x00,0x20,0x00,0x44,0x00,0x41,0x00,0x4d,0x00,0x41,0x00,0x47,0x00,0x45,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x41,0x00,0x42,0x00,0x49,0x00,0x4c,0x00,0x49,0x00,0x54,0x00,0x59,0x00,0x2c,0x00,0x20,0x00,0x57, +0x00,0x48,0x00,0x45,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x20,0x00,0x41,0x00,0x43,0x00,0x54,0x00,0x49,0x00,0x4f,0x00,0x4e,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x4e,0x00,0x54,0x00,0x52,0x00,0x41,0x00,0x43,0x00,0x54,0x00,0x2c, +0x00,0x20,0x00,0x54,0x00,0x4f,0x00,0x52,0x00,0x54,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x57,0x00,0x49,0x00,0x53,0x00,0x45,0x00,0x2c,0x00,0x20,0x00,0x41,0x00,0x52,0x00,0x49,0x00,0x53,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x20,0x00,0x46,0x00,0x52,0x00,0x4f,0x00,0x4d, +0x00,0x2c,0x00,0x20,0x00,0x4f,0x00,0x55,0x00,0x54,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x4e,0x00,0x4e,0x00,0x45,0x00,0x43,0x00,0x54,0x00,0x49,0x00,0x4f,0x00,0x4e,0x00,0x20,0x00,0x57,0x00,0x49,0x00,0x54,0x00,0x48,0x00,0x20,0x00,0x54, +0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46,0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x55,0x00,0x53,0x00,0x45,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x20, +0x00,0x44,0x00,0x45,0x00,0x41,0x00,0x4c,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x53,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46,0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x2e,0x00,0x4e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0x61,0x00,0x6c,0x00,0x6f, +0x00,0x62,0x00,0x79,0x01,0x0d,0x00,0x65,0x00,0x6a,0x00,0x6e,0x00,0xe9,0x00,0x6e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0x61,0x00,0x6c,0x00,0x53,0x00,0x74,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x61,0x00,0x72,0x00,0x64,0x03,0x9a,0x03,0xb1,0x03,0xbd,0x03,0xbf,0x03,0xbd,0x03,0xb9,0x03,0xba,0x03,0xac,0x00,0xa9,0x00,0x20,0x00,0x32, +0x00,0x30,0x00,0x31,0x00,0x38,0x00,0x20,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x43,0x00,0x6f,0x00,0x72,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x41,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x52, +0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x73,0x00,0x20,0x00,0x52,0x00,0x65,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x76,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x20,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x54, +0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0xa9,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x30, +0x00,0x33,0x00,0x20,0x00,0x26,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x30,0x00,0x37,0x00,0x2c,0x00,0x20,0x00,0x52,0x00,0x61,0x00,0x6c,0x00,0x70,0x00,0x68,0x00,0x20,0x00,0x48,0x00,0x61,0x00,0x6e,0x00,0x63,0x00,0x6f,0x00,0x63,0x00,0x6b,0x00,0x20,0x00,0x26,0x00,0x20,0x00,0x4a,0x00,0x6f,0x00,0x68,0x00,0x6e,0x00,0x20,0x00,0x48, +0x00,0x75,0x00,0x64,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x54,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69,0x00,0x62, +0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x75,0x00,0x72,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74, +0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x75,0x00,0x6e,0x00,0x64,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x20,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x3b,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x65,0x00,0x20, +0x00,0x65,0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x73,0x00,0x63,0x00,0x72,0x00,0x69,0x00,0x70,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72, +0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x74,0x00,0x61,0x00,0x69,0x00,0x6c,0x00,0x73,0x00,0x2e,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x70,0x00,0x6c,0x00,0x69,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74, +0x00,0x2e,0x00,0x20,0x00,0x59,0x00,0x6f,0x00,0x75,0x00,0x20,0x00,0x6d,0x00,0x61,0x00,0x79,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x63,0x00,0x72,0x00,0x65,0x00,0x61,0x00,0x74, +0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x64,0x00,0x69,0x00,0x73,0x00,0x70,0x00,0x6c,0x00,0x61,0x00,0x79,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x61,0x00,0x73, +0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x73,0x00,0x20, +0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66, +0x00,0x74,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x64,0x00,0x75,0x00,0x63,0x00,0x74,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x76,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x69, +0x00,0x6e,0x00,0x20,0x00,0x77,0x00,0x68,0x00,0x69,0x00,0x63,0x00,0x68,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x77,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x20, +0x00,0x59,0x00,0x6f,0x00,0x75,0x00,0x20,0x00,0x6d,0x00,0x61,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x6e,0x00,0x6c,0x00,0x79,0x00,0x20,0x00,0x28,0x00,0x69,0x00,0x29,0x00,0x20,0x00,0x65,0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74, +0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20, +0x00,0x65,0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x64,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x72,0x00,0x65,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x20, +0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x3b,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x28,0x00,0x69,0x00,0x69,0x00,0x29,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x6d,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x72,0x00,0x69, +0x00,0x6c,0x00,0x79,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x77,0x00,0x6e,0x00,0x6c,0x00,0x6f,0x00,0x61,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x69,0x00,0x6e,0x00,0x74, +0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x70,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x76,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x68,0x00,0x65,0x00,0x6c, +0x00,0x70,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x2e,0x00,0x20,0x00,0x41,0x00,0x6e,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x69, +0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x68,0x00,0x69,0x00,0x62,0x00,0x69,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x54,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x77,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x6c, +0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x62,0x00,0x61,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65, +0x00,0x20,0x00,0x28,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x65,0x00,0x6e,0x00,0x2e,0x00,0x77,0x00,0x69,0x00,0x6b,0x00,0x69,0x00,0x70,0x00,0x65,0x00,0x64,0x00,0x69,0x00,0x61,0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00,0x77,0x00,0x69,0x00,0x6b,0x00,0x69,0x00,0x2f,0x00,0x4d, +0x00,0x49,0x00,0x54,0x00,0x5f,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x29,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x70,0x00,0x70,0x00,0x6c,0x00,0x69,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e, +0x00,0x54,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48, +0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x20,0x1c,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x20,0x1d,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x6a,0x00,0x6f,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x6c,0x00,0x79,0x00,0x20, +0x00,0x64,0x00,0x65,0x00,0x76,0x00,0x65,0x00,0x6c,0x00,0x6f,0x00,0x70,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x52,0x00,0x61,0x00,0x6c,0x00,0x70,0x00,0x68,0x00,0x20,0x00,0x48,0x00,0x61,0x00,0x6e,0x00,0x63,0x00,0x6f,0x00,0x63,0x00,0x6b,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x4a, +0x00,0x6f,0x00,0x68,0x00,0x6e,0x00,0x20,0x00,0x48,0x00,0x75,0x00,0x64,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x50,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x73,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x68,0x00,0x65, +0x00,0x72,0x00,0x65,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x67,0x00,0x72,0x00,0x61,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x2c,0x00,0x20,0x00,0x66,0x00,0x72,0x00,0x65,0x00,0x65,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x63,0x00,0x68,0x00,0x61,0x00,0x72,0x00,0x67,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x74,0x00,0x6f, +0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x79,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x6f,0x00,0x62,0x00,0x74,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20, +0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x54,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69, +0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x73,0x00,0x6f,0x00,0x63,0x00,0x69,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x63, +0x00,0x75,0x00,0x6d,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x66,0x00,0x69,0x00,0x6c,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x28,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x20,0x1c,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f, +0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x20,0x1d,0x00,0x29,0x00,0x2c,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c, +0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x77,0x00,0x69,0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x72,0x00,0x65,0x00,0x73, +0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x2c,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x77,0x00,0x69,0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x6d,0x00,0x69, +0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x73,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x2c,0x00,0x20, +0x00,0x6d,0x00,0x6f,0x00,0x64,0x00,0x69,0x00,0x66,0x00,0x79,0x00,0x2c,0x00,0x20,0x00,0x6d,0x00,0x65,0x00,0x72,0x00,0x67,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x70,0x00,0x75,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x73,0x00,0x68,0x00,0x2c,0x00,0x20,0x00,0x64,0x00,0x69,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x62,0x00,0x75, +0x00,0x74,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x2f,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x69, +0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x2c, +0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x77,0x00,0x68,0x00,0x6f,0x00,0x6d,0x00,0x20,0x00,0x74, +0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x75,0x00,0x72,0x00,0x6e, +0x00,0x69,0x00,0x73,0x00,0x68,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x6a,0x00,0x65,0x00,0x63,0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x66, +0x00,0x6f,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x77,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x64,0x00,0x69,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x3a,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x54,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x61,0x00,0x62,0x00,0x6f,0x00,0x76, +0x00,0x65,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0x6e,0x00,0x6f,0x00,0x74,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d, +0x00,0x69,0x00,0x73,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x6e,0x00,0x6f,0x00,0x74,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x73,0x00,0x68,0x00,0x61,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x62,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x20, +0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x61,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x69,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x73,0x00,0x74,0x00,0x61,0x00,0x6e,0x00,0x74,0x00,0x69,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x70,0x00,0x6f,0x00,0x72, +0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61, +0x00,0x72,0x00,0x65,0x00,0x2e,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46,0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x20,0x00,0x49,0x00,0x53,0x00,0x20,0x00,0x50,0x00,0x52,0x00,0x4f,0x00,0x56,0x00,0x49,0x00,0x44,0x00,0x45,0x00,0x44,0x00,0x20, +0x00,0x27,0x00,0x41,0x00,0x53,0x00,0x20,0x00,0x49,0x00,0x53,0x00,0x27,0x00,0x2c,0x00,0x20,0x00,0x57,0x00,0x49,0x00,0x54,0x00,0x48,0x00,0x4f,0x00,0x55,0x00,0x54,0x00,0x20,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x52,0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x59,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x59, +0x00,0x20,0x00,0x4b,0x00,0x49,0x00,0x4e,0x00,0x44,0x00,0x2c,0x00,0x20,0x00,0x45,0x00,0x58,0x00,0x50,0x00,0x52,0x00,0x45,0x00,0x53,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x49,0x00,0x4d,0x00,0x50,0x00,0x4c,0x00,0x49,0x00,0x45,0x00,0x44,0x00,0x2c,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x43,0x00,0x4c,0x00,0x55, +0x00,0x44,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x20,0x00,0x42,0x00,0x55,0x00,0x54,0x00,0x20,0x00,0x4e,0x00,0x4f,0x00,0x54,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x45,0x00,0x44,0x00,0x20,0x00,0x54,0x00,0x4f,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x52, +0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x49,0x00,0x45,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x4d,0x00,0x45,0x00,0x52,0x00,0x43,0x00,0x48,0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x41,0x00,0x42,0x00,0x49,0x00,0x4c,0x00,0x49,0x00,0x54,0x00,0x59,0x00,0x2c,0x00,0x20,0x00,0x46,0x00,0x49,0x00,0x54,0x00,0x4e,0x00,0x45, +0x00,0x53,0x00,0x53,0x00,0x20,0x00,0x46,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x41,0x00,0x20,0x00,0x50,0x00,0x41,0x00,0x52,0x00,0x54,0x00,0x49,0x00,0x43,0x00,0x55,0x00,0x4c,0x00,0x41,0x00,0x52,0x00,0x20,0x00,0x50,0x00,0x55,0x00,0x52,0x00,0x50,0x00,0x4f,0x00,0x53,0x00,0x45,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x44,0x00,0x20, +0x00,0x4e,0x00,0x4f,0x00,0x4e,0x00,0x49,0x00,0x4e,0x00,0x46,0x00,0x52,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x45,0x00,0x4d,0x00,0x45,0x00,0x4e,0x00,0x54,0x00,0x2e,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x4e,0x00,0x4f,0x00,0x20,0x00,0x45,0x00,0x56,0x00,0x45,0x00,0x4e,0x00,0x54,0x00,0x20,0x00,0x53,0x00,0x48,0x00,0x41, +0x00,0x4c,0x00,0x4c,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x41,0x00,0x55,0x00,0x54,0x00,0x48,0x00,0x4f,0x00,0x52,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x50,0x00,0x59,0x00,0x52,0x00,0x49,0x00,0x47,0x00,0x48,0x00,0x54,0x00,0x20,0x00,0x48,0x00,0x4f,0x00,0x4c,0x00,0x44, +0x00,0x45,0x00,0x52,0x00,0x53,0x00,0x20,0x00,0x42,0x00,0x45,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x41,0x00,0x42,0x00,0x4c,0x00,0x45,0x00,0x20,0x00,0x46,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x59,0x00,0x20,0x00,0x43,0x00,0x4c,0x00,0x41,0x00,0x49,0x00,0x4d,0x00,0x2c,0x00,0x20,0x00,0x44,0x00,0x41,0x00,0x4d, +0x00,0x41,0x00,0x47,0x00,0x45,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x41,0x00,0x42,0x00,0x49,0x00,0x4c,0x00,0x49,0x00,0x54,0x00,0x59,0x00,0x2c,0x00,0x20,0x00,0x57,0x00,0x48,0x00,0x45,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52, +0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x20,0x00,0x41,0x00,0x43,0x00,0x54,0x00,0x49,0x00,0x4f,0x00,0x4e,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x4e,0x00,0x54,0x00,0x52,0x00,0x41,0x00,0x43,0x00,0x54,0x00,0x2c,0x00,0x20,0x00,0x54,0x00,0x4f,0x00,0x52,0x00,0x54,0x00,0x20, +0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x57,0x00,0x49,0x00,0x53,0x00,0x45,0x00,0x2c,0x00,0x20,0x00,0x41,0x00,0x52,0x00,0x49,0x00,0x53,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x20,0x00,0x46,0x00,0x52,0x00,0x4f,0x00,0x4d,0x00,0x2c,0x00,0x20,0x00,0x4f,0x00,0x55,0x00,0x54,0x00,0x20, +0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x4e,0x00,0x4e,0x00,0x45,0x00,0x43,0x00,0x54,0x00,0x49,0x00,0x4f,0x00,0x4e,0x00,0x20,0x00,0x57,0x00,0x49,0x00,0x54,0x00,0x48,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46, +0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x55,0x00,0x53,0x00,0x45,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x20,0x00,0x44,0x00,0x45,0x00,0x41,0x00,0x4c,0x00,0x49,0x00,0x4e, +0x00,0x47,0x00,0x53,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46,0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x2e,0x00,0x0d,0x00,0x0a,0x00,0x4e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0x61,0x00,0x61,0x00,0x6c,0x00,0x69,0x00,0x4e,0x00,0x6f,0x00,0x72, +0x00,0x6d,0x00,0xe1,0x00,0x6c,0x00,0x4e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0x61,0x00,0x6c,0x00,0x65,0x00,0x53,0x00,0x74,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x61,0x00,0x61,0x00,0x72,0x00,0x64,0x00,0x4e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0x61,0x00,0x6c,0x00,0x6e,0x00,0x79,0x04,0x1e,0x04,0x31,0x04,0x4b,0x04,0x47,0x04,0x3d, +0x04,0x4b,0x04,0x39,0x00,0x4e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0xe1,0x00,0x6c,0x00,0x6e,0x00,0x65,0x00,0x4e,0x00,0x61,0x00,0x76,0x00,0x61,0x00,0x64,0x00,0x6e,0x00,0x6f,0x00,0x41,0x00,0x72,0x00,0x72,0x00,0x75,0x00,0x6e,0x00,0x74,0x00,0x61,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x4e,0x00,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x08,0x00,0x0a,0x00,0x13,0x00,0x07,0xff,0xff,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x23,0x8a,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x82,0x30,0x82,0x23,0x7e, +0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x07,0x02,0xa0,0x82,0x23,0x6f,0x30,0x82,0x23,0x6b,0x02,0x01,0x01,0x31,0x0f,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0x30,0x71,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x02,0x01,0x04,0xa0,0x63,0x30,0x61,0x30,0x2c,0x06,0x0a,0x2b,0x06,0x01, +0x04,0x01,0x82,0x37,0x02,0x01,0x1c,0xa2,0x1e,0x80,0x1c,0x00,0x3c,0x00,0x3c,0x00,0x3c,0x00,0x4f,0x00,0x62,0x00,0x73,0x00,0x6f,0x00,0x6c,0x00,0x65,0x00,0x74,0x00,0x65,0x00,0x3e,0x00,0x3e,0x00,0x3e,0x30,0x31,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0x04,0x20,0xd1,0x66,0x06,0x5e,0x25,0x40, +0xdd,0x89,0xdd,0x33,0x17,0x38,0x13,0xf4,0x79,0x7b,0x24,0x66,0x3e,0x9d,0x0d,0xef,0x96,0x4e,0xe9,0x40,0xb6,0xb7,0x21,0xab,0x14,0x43,0xa0,0x82,0x0d,0x81,0x30,0x82,0x05,0xff,0x30,0x82,0x03,0xe7,0xa0,0x03,0x02,0x01,0x02,0x02,0x13,0x33,0x00,0x00,0x01,0x03,0x5e,0x25,0x1c,0x99,0x1f,0xa3,0x1e,0xb8,0x00,0x00,0x00,0x00,0x01,0x03, +0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,0x7e,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65, +0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x03,0x13,0x1f,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x64,0x65,0x20,0x53, +0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x31,0x30,0x1e,0x17,0x0d,0x31,0x38,0x30,0x37,0x31,0x32,0x32,0x30,0x30,0x38,0x34,0x38,0x5a,0x17,0x0d,0x31,0x39,0x30,0x37,0x32,0x36,0x32,0x30,0x30,0x38,0x34,0x38,0x5a,0x30,0x74,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13, +0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72, +0x61,0x74,0x69,0x6f,0x6e,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x03,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01, +0x0a,0x02,0x82,0x01,0x01,0x00,0xd1,0x94,0x76,0x36,0xe6,0x86,0xab,0x36,0xfe,0x69,0xf9,0x46,0x7c,0x8b,0x88,0x50,0xcb,0x90,0x70,0x7f,0xb0,0x55,0xa9,0x24,0x1d,0x7e,0x39,0xe7,0x05,0x9f,0x0f,0xac,0x7b,0x97,0xb2,0xce,0x73,0x0a,0xfb,0xd4,0x9b,0x24,0x5c,0x16,0xb5,0x39,0xdd,0x1b,0x7e,0x33,0x6c,0x11,0xfc,0x3b,0x26,0xf3,0x98,0xaa, +0x5d,0x53,0x6b,0xaa,0xc3,0xec,0x13,0xb8,0xd2,0xef,0xcf,0x57,0x7f,0xcc,0x65,0xcb,0xaf,0x4d,0x2e,0x32,0xb1,0x56,0x2b,0x4e,0x34,0x07,0x89,0xfe,0x69,0x21,0xbd,0x3e,0x44,0xfb,0xde,0x12,0x9d,0x85,0xbf,0x7c,0x76,0x86,0x7d,0x72,0xb1,0x76,0x9b,0x61,0xe6,0x8a,0x64,0x4c,0x46,0xce,0xb6,0xd5,0x3a,0x8c,0x77,0x93,0x77,0x67,0x21,0x9c, +0xb6,0x5a,0x06,0x5e,0x47,0x86,0xf5,0x3c,0xd1,0x09,0xca,0x0d,0x3d,0xcd,0xb2,0xe9,0xa1,0x50,0x78,0xd1,0x84,0x88,0xe2,0x01,0x3c,0x22,0xfc,0xaf,0x96,0x08,0xcc,0x5d,0x99,0xc0,0xed,0xeb,0xa5,0x5a,0x98,0x92,0xf5,0xc8,0x40,0x4e,0x6a,0x73,0xaf,0xde,0xe3,0x74,0x7a,0xd3,0x5f,0x46,0x97,0xbc,0xe2,0x67,0x28,0x77,0x99,0xac,0xc1,0x0e, +0x31,0x16,0x8f,0x00,0x0f,0x01,0xfe,0x4b,0x5e,0x54,0x0f,0xca,0xc4,0x65,0x3f,0x0a,0xe3,0xa3,0x46,0xdb,0xf6,0x2c,0x03,0x3a,0x19,0xbe,0x68,0x05,0x16,0x9c,0xe6,0x7f,0x34,0xbf,0xa7,0x87,0x8d,0x65,0x39,0x26,0xc9,0x63,0xd4,0xef,0xc5,0xdd,0xbd,0x25,0xfe,0xfd,0x28,0xf4,0x34,0x86,0x79,0xac,0x2a,0xd5,0x5f,0x30,0x91,0x3b,0xe4,0x14, +0x6a,0xeb,0xb1,0xca,0x04,0x23,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0x7e,0x30,0x82,0x01,0x7a,0x30,0x1f,0x06,0x03,0x55,0x1d,0x25,0x04,0x18,0x30,0x16,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x4c,0x08,0x01,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x03,0x03,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0x47, +0xbe,0xc0,0xcb,0xe1,0xa6,0x3f,0xfd,0x65,0xd6,0x38,0xf2,0x03,0x5d,0xb7,0xaf,0x77,0xf7,0x40,0xff,0x30,0x50,0x06,0x03,0x55,0x1d,0x11,0x04,0x49,0x30,0x47,0xa4,0x45,0x30,0x43,0x31,0x29,0x30,0x27,0x06,0x03,0x55,0x04,0x0b,0x13,0x20,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e, +0x73,0x20,0x50,0x75,0x65,0x72,0x74,0x6f,0x20,0x52,0x69,0x63,0x6f,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x05,0x13,0x0d,0x32,0x33,0x30,0x30,0x31,0x32,0x2b,0x34,0x33,0x37,0x39,0x36,0x35,0x30,0x1f,0x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0x48,0x6e,0x64,0xe5,0x50,0x05,0xd3,0x82,0xaa,0x17,0x37,0x37,0x22,0xb5, +0x6d,0xa8,0xca,0x75,0x02,0x95,0x30,0x54,0x06,0x03,0x55,0x1d,0x1f,0x04,0x4d,0x30,0x4b,0x30,0x49,0xa0,0x47,0xa0,0x45,0x86,0x43,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x6f,0x70,0x73,0x2f,0x63,0x72,0x6c,0x2f,0x4d,0x69,0x63, +0x43,0x6f,0x64,0x53,0x69,0x67,0x50,0x43,0x41,0x32,0x30,0x31,0x31,0x5f,0x32,0x30,0x31,0x31,0x2d,0x30,0x37,0x2d,0x30,0x38,0x2e,0x63,0x72,0x6c,0x30,0x61,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x55,0x30,0x53,0x30,0x51,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x45,0x68,0x74,0x74,0x70,0x3a,0x2f, +0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x6f,0x70,0x73,0x2f,0x63,0x65,0x72,0x74,0x73,0x2f,0x4d,0x69,0x63,0x43,0x6f,0x64,0x53,0x69,0x67,0x50,0x43,0x41,0x32,0x30,0x31,0x31,0x5f,0x32,0x30,0x31,0x31,0x2d,0x30,0x37,0x2d,0x30,0x38,0x2e,0x63,0x72,0x74,0x30, +0x0c,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x02,0x30,0x00,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,0x82,0x02,0x01,0x00,0x9f,0xf5,0xc9,0x53,0x0d,0x3f,0x0d,0x26,0xec,0xa2,0x44,0xd8,0x0d,0xd1,0x9f,0x63,0x96,0x06,0x4b,0x3f,0x1e,0x5c,0xc5,0x33,0xa3,0xa4,0xc3,0x6c,0xaf,0x1f,0xc0, +0x01,0xba,0xeb,0x65,0xec,0x9e,0x33,0x10,0x0f,0xa7,0xac,0x5b,0xd4,0xbd,0x90,0x61,0x17,0xe7,0x31,0xe7,0xc3,0x26,0xb4,0xac,0xf5,0x27,0xd3,0x48,0x93,0x86,0x88,0xfe,0x12,0x35,0x91,0x64,0x22,0xd1,0x6b,0x2d,0x3b,0xa8,0x2c,0x15,0x94,0x29,0xd2,0x37,0x96,0xe6,0x35,0xff,0x0c,0xce,0xc8,0x06,0x16,0x16,0x9e,0x24,0xb1,0xe2,0x39,0xf9, +0x6e,0x0e,0x78,0xd8,0x0c,0x1b,0xb6,0x29,0x60,0x27,0x76,0x34,0x24,0x9b,0xdd,0xb9,0x97,0x75,0xcb,0x01,0x3b,0xad,0x82,0x12,0x16,0x22,0x80,0x89,0x15,0x84,0xbb,0x98,0x50,0x20,0xb0,0x17,0x26,0x86,0x49,0xaf,0xce,0x7d,0x45,0x15,0x43,0x34,0x96,0xcf,0x81,0x5c,0x18,0x2c,0xd4,0x93,0xf2,0x67,0xab,0xe2,0x73,0xc8,0x3d,0xa3,0xcd,0xfc, +0x32,0x1e,0x60,0x1c,0xe9,0xb0,0x1b,0x30,0xfb,0x2c,0xbb,0x07,0x2e,0x96,0x84,0x93,0x45,0x28,0x54,0x5c,0xcd,0x96,0xfd,0xa0,0xdb,0x81,0xd8,0xb6,0x30,0xca,0x43,0xb1,0xf3,0x48,0xc0,0xb2,0x46,0x1c,0x5d,0x5e,0x76,0x2a,0x58,0x9f,0xd4,0xee,0xf2,0xf4,0xfa,0x48,0x4c,0xb5,0x61,0x8b,0xb0,0x8c,0x41,0xe9,0xaa,0xb8,0x9d,0x90,0xf4,0xff, +0x6a,0x42,0x0f,0xb9,0x3e,0xe9,0x0e,0xec,0x94,0xfc,0x8d,0x80,0xbb,0x78,0xe3,0x23,0xa7,0x78,0x5b,0xb2,0x6d,0x1f,0xf9,0x59,0xc1,0x7d,0xb6,0xd1,0x39,0xc9,0x79,0xe0,0x83,0x1c,0x60,0x0a,0xda,0x3d,0xb0,0xd1,0xed,0x36,0xbf,0x45,0x07,0xe9,0x1b,0x36,0x6e,0xe5,0x3d,0x3b,0x05,0x03,0xa7,0xd4,0xa7,0x25,0x12,0x8f,0xe6,0x76,0xa3,0x13, +0xb3,0x45,0x5a,0x43,0x31,0x82,0xda,0xd8,0x84,0xae,0xb9,0xb0,0x1f,0x75,0xf5,0xf6,0x1d,0x7d,0x51,0x11,0x37,0x27,0xe8,0xb5,0x35,0x84,0x71,0xf7,0x57,0xaa,0xae,0xfa,0x89,0x71,0xc9,0x98,0xd2,0x9e,0x5a,0x64,0x76,0xbe,0x8c,0xc3,0x7d,0x15,0x6a,0x91,0xf1,0x14,0xf4,0xf2,0xd9,0x35,0x31,0xb8,0xdb,0x72,0xfa,0xb4,0x75,0xc8,0x88,0x9b, +0x6a,0xbf,0x98,0x45,0xc7,0x66,0xb2,0xd7,0xff,0xce,0x92,0x90,0x75,0xe4,0xeb,0xe6,0x86,0xd2,0xc8,0x1b,0xdb,0x27,0xc0,0x5b,0x95,0x6f,0x49,0x6f,0x58,0x5d,0x69,0x2a,0xde,0x53,0x4b,0xf8,0xe8,0xca,0x7b,0xf6,0x6c,0x15,0xf9,0x03,0x19,0x0f,0x11,0x85,0xaa,0x4f,0x9a,0xbf,0xaa,0x57,0xdd,0x60,0xc6,0xf5,0x71,0x20,0xf4,0x51,0xa8,0x9a, +0xca,0xe9,0xd1,0xeb,0x34,0x47,0x3d,0x75,0xfa,0x22,0xec,0x55,0x3f,0x6a,0x19,0x39,0x6b,0x10,0xe9,0x5a,0x3f,0x8e,0xf4,0x23,0x78,0x30,0xb2,0xf2,0xa6,0x38,0xcb,0x35,0x8d,0xaa,0x98,0x59,0x24,0x40,0xb8,0x3a,0x67,0xa4,0x07,0x5f,0xa0,0xfe,0xd8,0x3b,0x49,0x13,0xfb,0x0c,0xe1,0xed,0x0b,0x6d,0x83,0x50,0xce,0xf0,0x7f,0x3e,0xe0,0xd9, +0x08,0xe8,0x8c,0x21,0x4a,0x41,0xc2,0xde,0xeb,0x8e,0x5b,0xee,0x03,0xc3,0x1d,0x6e,0x6e,0xe6,0x54,0x35,0x66,0x67,0x72,0x7c,0x1a,0xea,0x52,0xf6,0x22,0xc4,0x72,0x3f,0xae,0x30,0x82,0x07,0x7a,0x30,0x82,0x05,0x62,0xa0,0x03,0x02,0x01,0x02,0x02,0x0a,0x61,0x0e,0x90,0xd2,0x00,0x00,0x00,0x00,0x00,0x03,0x30,0x0d,0x06,0x09,0x2a,0x86, +0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,0x81,0x88,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64, +0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x32,0x30,0x30,0x06,0x03,0x55,0x04,0x03,0x13,0x29,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x52,0x6f,0x6f,0x74,0x20,0x43,0x65,0x72,0x74,0x69,0x66, +0x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x6f,0x72,0x69,0x74,0x79,0x20,0x32,0x30,0x31,0x31,0x30,0x1e,0x17,0x0d,0x31,0x31,0x30,0x37,0x30,0x38,0x32,0x30,0x35,0x39,0x30,0x39,0x5a,0x17,0x0d,0x32,0x36,0x30,0x37,0x30,0x38,0x32,0x31,0x30,0x39,0x30,0x39,0x5a,0x30,0x7e,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13, +0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43, +0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x03,0x13,0x1f,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x64,0x65,0x20,0x53,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x31,0x30,0x82,0x02,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86, +0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x02,0x0f,0x00,0x30,0x82,0x02,0x0a,0x02,0x82,0x02,0x01,0x00,0xab,0xf0,0xfa,0x72,0x10,0x1c,0x2e,0xad,0xd8,0x6e,0xaa,0x82,0x10,0x4d,0x34,0xba,0xf2,0xb6,0x58,0x21,0x9f,0x42,0x1b,0x2a,0x6b,0xe9,0x5a,0x50,0xaa,0xb8,0x06,0x38,0x1a,0x04,0x49,0xba,0x7f,0xc3,0x0c,0x1e,0xdd,0x37,0x6b, +0xc6,0x12,0xd8,0x0b,0xf0,0x38,0xc2,0x99,0x06,0xb0,0xc8,0x39,0xd5,0x01,0x14,0x31,0x42,0xd3,0x89,0x0d,0x79,0x64,0x87,0x7e,0x94,0x60,0x24,0x6c,0xaf,0x9e,0x49,0x9c,0xe9,0x68,0x5e,0xd2,0xdf,0x9b,0x53,0xb2,0x0a,0x2c,0xc3,0xaf,0xd9,0xa9,0x2b,0xae,0x7a,0x09,0xaf,0xd7,0x96,0x59,0xca,0x60,0x1a,0x05,0xe9,0x66,0x76,0xe8,0x32,0x52, +0x26,0x12,0x2f,0xe7,0xab,0x08,0x50,0xcf,0xb3,0x44,0xb7,0x5d,0xd8,0xc4,0x2e,0x03,0x75,0xab,0x68,0xf3,0xcb,0x6d,0xf3,0x3a,0x5c,0xa1,0x16,0xf4,0x46,0xba,0xe0,0x38,0x64,0xac,0x6e,0x64,0x35,0x78,0xa6,0xa0,0x63,0x0f,0x2d,0xd3,0x40,0x93,0xf8,0xe3,0xde,0x07,0x0d,0xd5,0x5c,0x79,0xa5,0x49,0x29,0xe7,0x0d,0xbe,0xa0,0x13,0x77,0xbe, +0x94,0x3d,0xef,0xfb,0xe3,0x2b,0x5a,0x10,0x1f,0x4d,0x56,0x28,0xa2,0x7a,0x72,0xe0,0x12,0x3a,0xb7,0x49,0x5e,0xd8,0xed,0xed,0x43,0x91,0x83,0xd9,0x7b,0xb2,0x7b,0x86,0x1b,0xd9,0x3e,0xb1,0x8c,0x5d,0xe8,0x89,0x4f,0x84,0x1a,0xf2,0xa1,0x2f,0x59,0xe4,0x90,0x3b,0x2d,0xae,0x33,0x58,0xc5,0xb7,0x3e,0xfe,0x32,0xd3,0xb3,0x03,0x3d,0xb1, +0xb2,0xaf,0x92,0x38,0x7e,0xd2,0x9d,0x80,0x2c,0xf5,0x4e,0x56,0x91,0x21,0x35,0x25,0xc3,0x39,0x6e,0x64,0x7f,0x53,0xba,0x9c,0x0f,0xad,0x19,0x23,0x84,0xcb,0xf4,0xba,0x03,0x86,0x8d,0xf7,0x5f,0xf0,0xd0,0x52,0xbf,0x8c,0x94,0x87,0xbc,0xc0,0x21,0x74,0x25,0x5f,0x18,0x28,0xb6,0xcc,0x27,0x28,0x38,0x25,0x98,0x39,0x4a,0x36,0xcf,0x7c, +0xb1,0x92,0xae,0x1c,0x23,0xa7,0xa9,0x66,0xec,0x61,0x1f,0x6a,0xe1,0x28,0x49,0x9d,0x5f,0x88,0xe2,0x25,0x5d,0xd3,0x21,0x4b,0x3e,0x52,0xc4,0xb5,0x57,0x3f,0x24,0x03,0xf0,0xd1,0x7a,0x5b,0x2f,0xd5,0x23,0xe3,0x70,0x5d,0x0f,0x51,0x46,0x77,0xb3,0xf8,0x00,0xe1,0xbc,0xac,0x02,0x82,0x5f,0xdb,0xc0,0x15,0xb3,0xbd,0x1b,0xd4,0x55,0x4b, +0xe7,0x39,0xa1,0x0f,0xe9,0x23,0x49,0xbc,0x18,0xb8,0x44,0x7c,0x45,0xe4,0xc1,0xc3,0x72,0x7a,0xe0,0x72,0xe7,0x24,0xdf,0xbf,0x46,0x99,0xc5,0xef,0xc2,0x1c,0x57,0xdb,0x83,0x8d,0xec,0x4d,0x49,0x30,0xa7,0xab,0x8e,0xdf,0xec,0x5b,0x9f,0xaf,0xfc,0xdd,0xb0,0x66,0xe2,0xc1,0x97,0x81,0x7b,0xed,0xd6,0xed,0x4b,0xe7,0x49,0x29,0xa7,0x13, +0x28,0xa6,0xa7,0x7d,0x67,0x80,0xe6,0x8a,0x62,0x78,0x5f,0xb2,0x2f,0x84,0xd7,0x57,0x9c,0x5c,0xbf,0x77,0x28,0x28,0xf1,0xed,0x6d,0xc3,0x28,0x8f,0x2c,0x8f,0x40,0x37,0x4f,0xc1,0xe1,0x85,0x44,0x89,0xc4,0x09,0x4c,0xc5,0xd4,0xa5,0x43,0x2f,0x74,0x95,0xf7,0x6e,0xf8,0x78,0x20,0x58,0x2c,0x13,0x5d,0x60,0x95,0x9a,0x3e,0x4f,0x33,0x84, +0xda,0xb0,0x88,0x17,0xde,0x9e,0x4e,0xf4,0x96,0xb0,0xbc,0x46,0xa0,0x6c,0x98,0xd2,0xe0,0xd6,0x88,0x8c,0x0b,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0xed,0x30,0x82,0x01,0xe9,0x30,0x10,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x15,0x01,0x04,0x03,0x02,0x01,0x00,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0x48, +0x6e,0x64,0xe5,0x50,0x05,0xd3,0x82,0xaa,0x17,0x37,0x37,0x22,0xb5,0x6d,0xa8,0xca,0x75,0x02,0x95,0x30,0x19,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x04,0x0c,0x1e,0x0a,0x00,0x53,0x00,0x75,0x00,0x62,0x00,0x43,0x00,0x41,0x30,0x0b,0x06,0x03,0x55,0x1d,0x0f,0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0f,0x06,0x03,0x55, +0x1d,0x13,0x01,0x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x1f,0x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0x72,0x2d,0x3a,0x02,0x31,0x90,0x43,0xb9,0x14,0x05,0x4e,0xe1,0xea,0xa7,0xc7,0x31,0xd1,0x23,0x89,0x34,0x30,0x5a,0x06,0x03,0x55,0x1d,0x1f,0x04,0x53,0x30,0x51,0x30,0x4f,0xa0,0x4d,0xa0,0x4b,0x86,0x49, +0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x6c,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x2f,0x63,0x72,0x6c,0x2f,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x73,0x2f,0x4d,0x69,0x63,0x52,0x6f,0x6f,0x43,0x65,0x72,0x41,0x75,0x74,0x32,0x30,0x31,0x31,0x5f,0x32,0x30,0x31,0x31,0x5f, +0x30,0x33,0x5f,0x32,0x32,0x2e,0x63,0x72,0x6c,0x30,0x5e,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x52,0x30,0x50,0x30,0x4e,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x42,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f, +0x70,0x6b,0x69,0x2f,0x63,0x65,0x72,0x74,0x73,0x2f,0x4d,0x69,0x63,0x52,0x6f,0x6f,0x43,0x65,0x72,0x41,0x75,0x74,0x32,0x30,0x31,0x31,0x5f,0x32,0x30,0x31,0x31,0x5f,0x30,0x33,0x5f,0x32,0x32,0x2e,0x63,0x72,0x74,0x30,0x81,0x9f,0x06,0x03,0x55,0x1d,0x20,0x04,0x81,0x97,0x30,0x81,0x94,0x30,0x81,0x91,0x06,0x09,0x2b,0x06,0x01,0x04, +0x01,0x82,0x37,0x2e,0x03,0x30,0x81,0x83,0x30,0x3f,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x01,0x16,0x33,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x6f,0x70,0x73,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x70,0x72,0x69,0x6d,0x61, +0x72,0x79,0x63,0x70,0x73,0x2e,0x68,0x74,0x6d,0x30,0x40,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x02,0x30,0x34,0x1e,0x32,0x20,0x1d,0x00,0x4c,0x00,0x65,0x00,0x67,0x00,0x61,0x00,0x6c,0x00,0x5f,0x00,0x70,0x00,0x6f,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x79,0x00,0x5f,0x00,0x73,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x65,0x00, +0x6d,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x2e,0x20,0x1d,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,0x82,0x02,0x01,0x00,0x67,0xf2,0x86,0xa5,0x98,0xe0,0x54,0x79,0x1a,0x2e,0xd3,0xd8,0x74,0x67,0x22,0x9b,0x0b,0x96,0x11,0xe1,0x63,0x92,0x99,0x42,0x96,0x7d,0xd2,0x79,0x0c,0x90,0xc1,0x65,0x5f, +0x2e,0x2c,0x3e,0xf8,0xc3,0x72,0xd1,0x6d,0x83,0xfe,0xbe,0x3f,0xe8,0x0a,0xca,0x3b,0xbf,0x47,0xa9,0xa3,0xf3,0x69,0xdb,0x63,0xbf,0x22,0x35,0xa5,0x97,0x5d,0x65,0x84,0x90,0x7d,0x8b,0x46,0x50,0x55,0xd8,0x0c,0x92,0x7c,0xd2,0x1a,0x4b,0x1c,0xf3,0x3c,0x42,0x8b,0x52,0xd0,0xb0,0xfd,0x6b,0xe3,0x3e,0x07,0x2e,0x29,0x9b,0xe6,0x3d,0x1b, +0xa5,0xd4,0xb5,0x1d,0x77,0x94,0x39,0xe2,0xe9,0x64,0xc9,0x44,0x3d,0x78,0x7a,0x23,0xf3,0x13,0x7d,0xa6,0x90,0x74,0x83,0x8d,0xf4,0xcb,0x26,0x02,0x46,0x2a,0xc2,0x8a,0x10,0xbb,0xa4,0xa9,0x05,0x0c,0x9b,0xed,0x68,0xfa,0x68,0x2e,0x95,0xa0,0x2a,0x3f,0x2a,0x6b,0x58,0x49,0x63,0x1f,0x09,0x69,0x6e,0x5a,0x98,0x96,0xe4,0x83,0xf4,0xc0, +0x8f,0xf3,0x46,0x2b,0xde,0xfc,0x3b,0xd0,0xbd,0x35,0xef,0x6e,0x25,0xae,0xe5,0xaf,0x27,0xed,0xd0,0xdd,0xf3,0x0e,0xaf,0x99,0x28,0x97,0x98,0x4d,0x0e,0x3d,0x0b,0xf2,0x08,0x89,0xd6,0x1f,0xc3,0x32,0x18,0xe2,0xf0,0xc5,0x2d,0xce,0x5b,0x9e,0xb4,0x49,0x39,0x0a,0xc6,0x0a,0xc2,0xc6,0xad,0xae,0xe5,0xb2,0xd9,0xdb,0x15,0x88,0x51,0x45, +0x58,0x38,0x32,0x71,0x27,0x1a,0x7f,0xb1,0xf4,0x27,0xf8,0xde,0x2c,0x3a,0x20,0x69,0x98,0xb2,0x59,0x89,0x68,0x6e,0x6f,0xa7,0xb7,0x74,0xc3,0x40,0x05,0x06,0xa6,0x01,0x2a,0x28,0x3e,0x82,0x3f,0x13,0x4d,0x66,0x0b,0xc0,0xb3,0x4d,0xf5,0xe1,0x8f,0x7f,0x1c,0x6f,0x15,0x7d,0x45,0xa7,0x76,0xe5,0x40,0x2a,0x65,0xa3,0xc3,0x5d,0x52,0x62, +0x86,0xc3,0x1d,0x63,0x36,0x97,0x86,0xdf,0xda,0xf3,0xf8,0xf2,0x16,0xa1,0x9a,0x27,0xe1,0xcd,0xa5,0x97,0xd0,0xee,0x5d,0x63,0x41,0xe3,0x5b,0x07,0x9c,0x87,0x3e,0x06,0x77,0x06,0xd1,0x06,0xb1,0x75,0x1f,0x14,0xbe,0x61,0x61,0xb5,0xf0,0xdc,0xc6,0x1b,0x04,0xbe,0xdf,0x41,0xc7,0x0e,0x28,0xee,0xde,0x65,0x2f,0xec,0x97,0xf6,0xa1,0x5c, +0x96,0xd8,0x00,0xd6,0xa1,0x46,0xbd,0x59,0xf3,0x97,0xa5,0x09,0x4b,0x48,0x10,0x99,0x80,0x1f,0xd0,0x00,0x29,0xc5,0xb1,0x9b,0xa5,0x3f,0x45,0x77,0x1e,0x35,0xc6,0xd2,0xa2,0xa2,0x9f,0x7a,0x7a,0x22,0xfa,0x48,0x95,0x1f,0xab,0xfb,0x47,0x23,0x80,0xf5,0x9e,0xf8,0xbf,0x6b,0xb7,0x4b,0x97,0xe2,0xeb,0x75,0x78,0x1a,0xec,0xea,0x37,0x99, +0x79,0x18,0x4b,0xff,0xd6,0xb3,0x23,0x68,0x75,0xe6,0xaf,0xfa,0xfc,0x8b,0xeb,0x0b,0x80,0xea,0x69,0x3b,0xaf,0xfc,0x30,0xed,0x04,0x4c,0x8e,0xdf,0xdf,0x75,0x6d,0x63,0x91,0x3d,0xd1,0x9d,0x56,0x4e,0x4f,0xbf,0x80,0x57,0x22,0xa1,0x78,0x11,0x32,0x21,0x7a,0xef,0x41,0x0a,0xb1,0x3f,0xfb,0xa8,0xcc,0xa4,0x5d,0xc1,0xa1,0x88,0x9b,0x57, +0x71,0x56,0x4e,0x48,0x45,0xc0,0x42,0xc9,0x9b,0x76,0x5b,0x0a,0x80,0x48,0x6b,0xfd,0x79,0x9f,0xc1,0xbd,0x6d,0x6d,0x6a,0xc9,0x52,0x73,0x13,0x0d,0x7a,0x50,0xcd,0x31,0x82,0x15,0x5b,0x30,0x82,0x15,0x57,0x02,0x01,0x01,0x30,0x81,0x95,0x30,0x7e,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11, +0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74, +0x69,0x6f,0x6e,0x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x03,0x13,0x1f,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x64,0x65,0x20,0x53,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x31,0x02,0x13,0x33,0x00,0x00,0x01,0x03,0x5e,0x25,0x1c,0x99,0x1f,0xa3,0x1e,0xb8,0x00,0x00,0x00,0x00, +0x01,0x03,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0xa0,0x81,0xae,0x30,0x19,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x03,0x31,0x0c,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x02,0x01,0x04,0x30,0x1c,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x02,0x01,0x0b,0x31,0x0e,0x30, +0x0c,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x02,0x01,0x15,0x30,0x2f,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x04,0x31,0x22,0x04,0x20,0xef,0x1c,0x60,0x9d,0x4d,0xa4,0xea,0x66,0x76,0x09,0x51,0xf4,0xba,0x29,0x24,0x71,0xc9,0x1d,0x9e,0x20,0xa1,0x48,0x83,0xb3,0x95,0xb6,0x32,0x21,0x3f,0xc2,0xe1,0x1b,0x30,0x42, +0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x02,0x01,0x0c,0x31,0x34,0x30,0x32,0xa0,0x14,0x80,0x12,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0xa1,0x1a,0x80,0x18,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63, +0x6f,0x6d,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x04,0x82,0x01,0x00,0x40,0xe0,0xd2,0x89,0x67,0x1e,0x8d,0xfc,0xdd,0x9c,0xd3,0x57,0x55,0xe8,0x1f,0x88,0x8d,0x5a,0xb1,0x90,0xf0,0xfa,0xb0,0x85,0xec,0xba,0xfa,0x6d,0x70,0xfa,0xab,0x25,0x02,0xe2,0x31,0xef,0xa5,0xfb,0xb2,0x85,0x7a,0xf7,0x50, +0xcf,0x79,0xff,0xf4,0x16,0x03,0x5f,0x86,0xa6,0xde,0xda,0x4a,0xfc,0x47,0xdd,0x21,0x41,0x45,0xda,0xcd,0x3b,0xe9,0xf3,0xf1,0xe6,0xd3,0xf8,0x9b,0xd8,0x83,0xcb,0x5f,0x4e,0x07,0x80,0x70,0x2a,0xc3,0x57,0x1e,0xa3,0x72,0xf3,0xe7,0xc7,0x90,0xd3,0x53,0xc7,0x44,0x76,0xd6,0xff,0xeb,0x2e,0x62,0xf4,0x1b,0xe2,0x09,0x62,0x8f,0x0a,0x08, +0x1b,0xc9,0xc5,0x1a,0xe0,0xd3,0x20,0x65,0x22,0x84,0xc1,0x58,0x73,0xa8,0x05,0x4c,0x6c,0x2a,0xee,0x5c,0x61,0x76,0x16,0x53,0x2b,0xf2,0x1a,0xb3,0xdb,0x8c,0xd7,0x39,0x03,0x3d,0x4c,0xf6,0xbd,0x67,0x20,0x8e,0x69,0xf9,0x0e,0x50,0x18,0x08,0x70,0x7d,0x33,0xfb,0xff,0x2e,0x5c,0x62,0x2d,0x6e,0xc6,0x3e,0x5e,0xf7,0x60,0x56,0x99,0xce, +0x52,0x94,0xce,0x2f,0xae,0xf8,0x50,0x19,0xe7,0x6e,0x6a,0x22,0x9b,0x27,0x70,0xfe,0xbe,0x79,0xdb,0x31,0x52,0x01,0x3f,0x4e,0xb4,0xcd,0xe8,0xf7,0x30,0xc2,0x61,0x02,0xc7,0x05,0x9b,0x0a,0x2f,0xe5,0xf5,0x0e,0x0c,0x9d,0xcb,0x2a,0xb0,0x79,0xac,0x96,0xf8,0x39,0xf0,0xb4,0xe5,0x67,0x7f,0x94,0x8a,0xac,0x77,0x9a,0xc9,0x38,0xb9,0x93, +0xed,0xf5,0x33,0xc2,0x44,0x82,0x81,0x5d,0xab,0x33,0x75,0xd2,0x6e,0x43,0xf4,0x03,0xf0,0x91,0x23,0x18,0xfb,0xa1,0x82,0x12,0xe5,0x30,0x82,0x12,0xe1,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x03,0x03,0x01,0x31,0x82,0x12,0xd1,0x30,0x82,0x12,0xcd,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x07,0x02,0xa0,0x82,0x12,0xbe, +0x30,0x82,0x12,0xba,0x02,0x01,0x03,0x31,0x0f,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0x30,0x82,0x01,0x51,0x06,0x0b,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x10,0x01,0x04,0xa0,0x82,0x01,0x40,0x04,0x82,0x01,0x3c,0x30,0x82,0x01,0x38,0x02,0x01,0x01,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x84, +0x59,0x0a,0x03,0x01,0x30,0x31,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0x04,0x20,0x4d,0xd8,0x6e,0x4d,0x11,0x8e,0x9b,0xbb,0x96,0x9d,0x1d,0x2e,0x32,0x48,0x7c,0xb0,0xde,0x56,0x6c,0xeb,0x7e,0x1c,0xe6,0x73,0xbc,0xa1,0x52,0xc7,0xa9,0xdb,0x41,0x31,0x02,0x06,0x5c,0x3d,0xd3,0x10,0xa8,0xe5,0x18, +0x13,0x32,0x30,0x31,0x39,0x30,0x31,0x32,0x34,0x31,0x38,0x34,0x30,0x33,0x36,0x2e,0x37,0x34,0x35,0x5a,0x30,0x04,0x80,0x02,0x01,0xf4,0xa0,0x81,0xd0,0xa4,0x81,0xcd,0x30,0x81,0xca,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69, +0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x0b, +0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x41,0x6d,0x65,0x72,0x69,0x63,0x61,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x0b,0x13,0x1d,0x54,0x68,0x61,0x6c,0x65,0x73,0x20,0x54,0x53,0x53,0x20,0x45,0x53,0x4e,0x3a,0x34,0x39,0x42,0x43,0x2d,0x45,0x33,0x37, +0x41,0x2d,0x32,0x33,0x33,0x43,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x03,0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x53,0x65,0x72,0x76,0x69,0x63,0x65,0xa0,0x82,0x0e,0x3c,0x30,0x82,0x04,0xf1,0x30,0x82,0x03,0xd9,0xa0,0x03,0x02,0x01,0x02,0x02,0x13, +0x33,0x00,0x00,0x00,0xee,0xf8,0xc5,0xf5,0x36,0x3b,0x81,0x1c,0x8c,0x00,0x00,0x00,0x00,0x00,0xee,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,0x7c,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68, +0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04, +0x03,0x13,0x1d,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x30,0x1e,0x17,0x0d,0x31,0x38,0x31,0x30,0x32,0x34,0x32,0x31,0x31,0x34,0x31,0x35,0x5a,0x17,0x0d,0x32,0x30,0x30,0x31,0x31,0x30,0x32,0x31,0x31,0x34,0x31,0x35,0x5a, +0x30,0x81,0xca,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a, +0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x0b,0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x41,0x6d,0x65,0x72,0x69,0x63,0x61,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x31,0x26, +0x30,0x24,0x06,0x03,0x55,0x04,0x0b,0x13,0x1d,0x54,0x68,0x61,0x6c,0x65,0x73,0x20,0x54,0x53,0x53,0x20,0x45,0x53,0x4e,0x3a,0x34,0x39,0x42,0x43,0x2d,0x45,0x33,0x37,0x41,0x2d,0x32,0x33,0x33,0x43,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x03,0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d, +0x53,0x74,0x61,0x6d,0x70,0x20,0x53,0x65,0x72,0x76,0x69,0x63,0x65,0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,0x00,0xa3,0xf7,0x56,0x35,0x84,0xf3,0xdd,0x34,0xe4,0xa3,0x93,0x48,0x65,0xb2,0x92,0x69,0xb8,0xa1, +0x51,0xc2,0xfb,0x51,0x1e,0x08,0xbe,0xa5,0x84,0xaf,0xf3,0x48,0x46,0x9b,0x6c,0x0c,0xdc,0x8f,0xc3,0x82,0x4b,0x12,0x11,0xb1,0x11,0x5c,0xff,0x22,0xb3,0x3e,0xc2,0xde,0xb7,0xda,0xac,0x93,0x45,0x91,0xf4,0x8a,0xff,0x12,0x16,0x6f,0xd2,0x2d,0x4f,0xc8,0x20,0x76,0x05,0x21,0x37,0x4b,0x9f,0xd4,0xfd,0x57,0x7e,0xa9,0xf4,0x91,0x21,0xa6, +0xb9,0x8c,0x69,0xbf,0xe9,0x21,0xb8,0x98,0x0c,0x20,0xb7,0x5b,0xb4,0xc5,0xbf,0x4f,0xc3,0x6c,0x74,0x86,0x8d,0x10,0xfc,0x68,0xfe,0x8d,0x0c,0x85,0x64,0x5b,0xf0,0x23,0x2d,0xda,0x24,0x0b,0x0c,0x50,0xb4,0x8c,0x8f,0x67,0x02,0x0d,0x97,0x37,0xb4,0x1f,0x1d,0xaf,0x8b,0xcd,0xd5,0x87,0x8c,0x1e,0x70,0xd3,0xee,0xdf,0x22,0xc9,0xfe,0x54, +0xac,0x57,0xf4,0xbe,0xcd,0x55,0x12,0xfb,0x9b,0xa0,0x29,0xe1,0xcb,0x56,0x02,0x2e,0x4d,0xcb,0x72,0x2a,0xbf,0x4c,0x8c,0x14,0x9a,0x84,0x2a,0x25,0xdf,0x11,0xce,0x80,0x81,0xea,0x15,0x60,0x62,0x57,0xa2,0x0e,0x1a,0x09,0x74,0xa5,0x18,0xad,0xe9,0x9a,0x88,0x56,0x2c,0xcd,0xaf,0xd2,0x69,0x5d,0x2f,0xf1,0x88,0x1a,0x96,0x11,0x38,0x51, +0x0e,0x97,0xbd,0xdd,0x6c,0x11,0x52,0xe8,0x32,0xa5,0x95,0x17,0xa4,0x27,0x49,0xa9,0x7e,0x38,0x1a,0x84,0x1d,0xe8,0xe5,0xe7,0xcd,0x9f,0x6c,0x9c,0x2f,0x44,0x65,0x13,0x5d,0x89,0x5a,0x80,0x3d,0x3c,0x5a,0x37,0x7e,0xfd,0x5f,0xc6,0xab,0x2d,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0x1b,0x30,0x82,0x01,0x17,0x30,0x1d,0x06,0x03,0x55, +0x1d,0x0e,0x04,0x16,0x04,0x14,0x26,0x77,0xcd,0x38,0x2b,0x45,0x7e,0xbd,0xd3,0x33,0x65,0x28,0xf7,0xcf,0xe3,0x68,0xf2,0x0e,0x65,0x4d,0x30,0x1f,0x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0xd5,0x63,0x3a,0x5c,0x8a,0x31,0x90,0xf3,0x43,0x7b,0x7c,0x46,0x1b,0xc5,0x33,0x68,0x5a,0x85,0x6d,0x55,0x30,0x56,0x06,0x03,0x55, +0x1d,0x1f,0x04,0x4f,0x30,0x4d,0x30,0x4b,0xa0,0x49,0xa0,0x47,0x86,0x45,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x6c,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x2f,0x63,0x72,0x6c,0x2f,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x73,0x2f,0x4d,0x69,0x63,0x54,0x69,0x6d,0x53,0x74, +0x61,0x50,0x43,0x41,0x5f,0x32,0x30,0x31,0x30,0x2d,0x30,0x37,0x2d,0x30,0x31,0x2e,0x63,0x72,0x6c,0x30,0x5a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x4e,0x30,0x4c,0x30,0x4a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x3e,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72, +0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x2f,0x63,0x65,0x72,0x74,0x73,0x2f,0x4d,0x69,0x63,0x54,0x69,0x6d,0x53,0x74,0x61,0x50,0x43,0x41,0x5f,0x32,0x30,0x31,0x30,0x2d,0x30,0x37,0x2d,0x30,0x31,0x2e,0x63,0x72,0x74,0x30,0x0c,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x02,0x30,0x00,0x30,0x13,0x06, +0x03,0x55,0x1d,0x25,0x04,0x0c,0x30,0x0a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x03,0x08,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x91,0x3f,0xe2,0xd1,0x15,0x1b,0x20,0x21,0x1c,0xf2,0x7b,0xbc,0xe4,0x9b,0x59,0x03,0xdf,0x8c,0x9a,0x5c,0x62,0xc4,0x1e,0xc1,0xc5,0xd3, +0x4e,0x96,0x21,0x60,0xf5,0x03,0xe5,0xcf,0x83,0x98,0x94,0x27,0x4d,0x5d,0xf8,0x1a,0x4e,0xec,0xa4,0x59,0xe3,0x23,0x87,0x2c,0x2c,0xc8,0x72,0xf8,0xc4,0x26,0xc3,0x73,0x06,0x5a,0xa7,0xff,0xed,0xfe,0xee,0xa1,0x8a,0x27,0xc5,0x65,0x68,0xc8,0xf6,0x16,0x8f,0x5a,0x4e,0x72,0xe5,0x37,0xf1,0x91,0x81,0xfc,0x18,0xe4,0x6e,0x2c,0xcd,0x94, +0x99,0xb5,0xda,0x60,0xa0,0x60,0x5f,0x76,0x3c,0x64,0x46,0x45,0xff,0x19,0x16,0x0c,0x40,0x25,0x7f,0x67,0xbb,0x2f,0x3a,0xfc,0x1f,0xbf,0x18,0x6c,0x68,0x90,0x8c,0xad,0x9a,0x23,0x6f,0xfd,0xa9,0xa6,0x3e,0x29,0xb2,0x57,0x1e,0xaa,0x83,0x8c,0xa3,0x1a,0xb5,0x95,0xe3,0xd7,0x0b,0x78,0xc9,0xa4,0xd1,0x0b,0x1c,0xbb,0xcd,0xc5,0xcf,0xe3, +0x13,0x45,0x57,0x43,0x0f,0x1f,0xc1,0x17,0x86,0x26,0x71,0x2f,0xad,0x27,0x6e,0x11,0xf3,0xa6,0xb3,0x72,0x5d,0x90,0xa3,0xdd,0xa0,0x2b,0x74,0x87,0xf7,0x77,0x26,0xd9,0x06,0x8f,0x5f,0x4d,0xfd,0x1e,0x0f,0x7b,0x0c,0x34,0xf0,0x25,0x54,0x21,0xe4,0x6e,0x4b,0x1f,0xab,0x7d,0x9d,0x9a,0x01,0x80,0x02,0xdf,0xf6,0xa9,0xa6,0x19,0xf9,0x24, +0xd2,0xa8,0x14,0x2e,0x38,0xfa,0x21,0x59,0x33,0xfe,0x9b,0x67,0xca,0x10,0x77,0x4f,0x66,0x4e,0x7c,0x97,0xb7,0x04,0x5a,0xa5,0x04,0xb3,0x56,0x39,0xb6,0x2f,0x54,0x21,0xe2,0x5c,0xc5,0x01,0xa8,0x46,0x30,0x82,0x06,0x71,0x30,0x82,0x04,0x59,0xa0,0x03,0x02,0x01,0x02,0x02,0x0a,0x61,0x09,0x81,0x2a,0x00,0x00,0x00,0x00,0x00,0x02,0x30, +0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,0x81,0x88,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65, +0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x32,0x30,0x30,0x06,0x03,0x55,0x04,0x03,0x13,0x29,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x52,0x6f,0x6f,0x74,0x20,0x43, +0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x6f,0x72,0x69,0x74,0x79,0x20,0x32,0x30,0x31,0x30,0x30,0x1e,0x17,0x0d,0x31,0x30,0x30,0x37,0x30,0x31,0x32,0x31,0x33,0x36,0x35,0x35,0x5a,0x17,0x0d,0x32,0x35,0x30,0x37,0x30,0x31,0x32,0x31,0x34,0x36,0x35,0x35,0x5a,0x30,0x7c,0x31,0x0b,0x30,0x09,0x06, +0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73, +0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x03,0x13,0x1d,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a, +0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,0x00,0xa9,0x1d,0x0d,0xbc,0x77,0x11,0x8a,0x3a,0x20,0xec,0xfc,0x13,0x97,0xf5,0xfa,0x7f,0x69,0x94,0x6b,0x74,0x54,0x10,0xd5,0xa5,0x0a,0x00,0x82,0x85,0xfb,0xed,0x7c,0x68,0x4b,0x2c,0x5f,0xc5,0xc3,0xe5,0x61,0xc2, +0x76,0xb7,0x3e,0x66,0x2b,0x5b,0xf0,0x15,0x53,0x27,0x04,0x31,0x1f,0x41,0x1b,0x1a,0x95,0x1d,0xce,0x09,0x13,0x8e,0x7c,0x61,0x30,0x59,0xb1,0x30,0x44,0x0f,0xf1,0x60,0x88,0x84,0x54,0x43,0x0c,0xd7,0x4d,0xb8,0x38,0x08,0xb3,0x42,0xdd,0x93,0xac,0xd6,0x73,0x30,0x57,0x26,0x82,0xa3,0x45,0x0d,0xd0,0xea,0xf5,0x47,0x81,0xcd,0xbf,0x24, +0x60,0x32,0x58,0x60,0x46,0xf2,0x58,0x47,0x86,0x32,0x84,0x1e,0x74,0x61,0x67,0x91,0x5f,0x81,0x54,0xb1,0xcf,0x93,0x4c,0x92,0xc1,0xc4,0xa6,0x5d,0xd1,0x61,0x13,0x6e,0x28,0xc6,0x1a,0xf9,0x86,0x80,0xbb,0xdf,0x61,0xfc,0x46,0xc1,0x27,0x1d,0x24,0x67,0x12,0x72,0x1a,0x21,0x8a,0xaf,0x4b,0x64,0x89,0x50,0x62,0xb1,0x5d,0xfd,0x77,0x1f, +0x3d,0xf0,0x57,0x75,0xac,0xbd,0x8a,0x42,0x4d,0x40,0x51,0xd1,0x0f,0x9c,0x06,0x3e,0x67,0x7f,0xf5,0x66,0xc0,0x03,0x96,0x44,0x7e,0xef,0xd0,0x4b,0xfd,0x6e,0xe5,0x9a,0xca,0xb1,0xa8,0xf2,0x7a,0x2a,0x0a,0x31,0xf0,0xda,0x4e,0x06,0x91,0xb6,0x88,0x08,0x35,0xe8,0x78,0x1c,0xb0,0xe9,0x99,0xcd,0x3c,0xe7,0x2f,0x44,0xba,0xa7,0xf4,0xdc, +0x64,0xbd,0xa4,0x01,0xc1,0x20,0x09,0x93,0x78,0xcd,0xfc,0xbc,0xc0,0xc9,0x44,0x5d,0x5e,0x16,0x9c,0x01,0x05,0x4f,0x22,0x4d,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0xe6,0x30,0x82,0x01,0xe2,0x30,0x10,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x15,0x01,0x04,0x03,0x02,0x01,0x00,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16, +0x04,0x14,0xd5,0x63,0x3a,0x5c,0x8a,0x31,0x90,0xf3,0x43,0x7b,0x7c,0x46,0x1b,0xc5,0x33,0x68,0x5a,0x85,0x6d,0x55,0x30,0x19,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x04,0x0c,0x1e,0x0a,0x00,0x53,0x00,0x75,0x00,0x62,0x00,0x43,0x00,0x41,0x30,0x0b,0x06,0x03,0x55,0x1d,0x0f,0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0f, +0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x1f,0x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0xd5,0xf6,0x56,0xcb,0x8f,0xe8,0xa2,0x5c,0x62,0x68,0xd1,0x3d,0x94,0x90,0x5b,0xd7,0xce,0x9a,0x18,0xc4,0x30,0x56,0x06,0x03,0x55,0x1d,0x1f,0x04,0x4f,0x30,0x4d,0x30,0x4b,0xa0,0x49,0xa0, +0x47,0x86,0x45,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x6c,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x2f,0x63,0x72,0x6c,0x2f,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x73,0x2f,0x4d,0x69,0x63,0x52,0x6f,0x6f,0x43,0x65,0x72,0x41,0x75,0x74,0x5f,0x32,0x30,0x31,0x30,0x2d,0x30, +0x36,0x2d,0x32,0x33,0x2e,0x63,0x72,0x6c,0x30,0x5a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x4e,0x30,0x4c,0x30,0x4a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x3e,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70, +0x6b,0x69,0x2f,0x63,0x65,0x72,0x74,0x73,0x2f,0x4d,0x69,0x63,0x52,0x6f,0x6f,0x43,0x65,0x72,0x41,0x75,0x74,0x5f,0x32,0x30,0x31,0x30,0x2d,0x30,0x36,0x2d,0x32,0x33,0x2e,0x63,0x72,0x74,0x30,0x81,0xa0,0x06,0x03,0x55,0x1d,0x20,0x01,0x01,0xff,0x04,0x81,0x95,0x30,0x81,0x92,0x30,0x81,0x8f,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82, +0x37,0x2e,0x03,0x30,0x81,0x81,0x30,0x3d,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x01,0x16,0x31,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x50,0x4b,0x49,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x43,0x50,0x53,0x2f,0x64,0x65,0x66,0x61,0x75,0x6c, +0x74,0x2e,0x68,0x74,0x6d,0x30,0x40,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x02,0x30,0x34,0x1e,0x32,0x20,0x1d,0x00,0x4c,0x00,0x65,0x00,0x67,0x00,0x61,0x00,0x6c,0x00,0x5f,0x00,0x50,0x00,0x6f,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x79,0x00,0x5f,0x00,0x53,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x6d,0x00,0x65,0x00, +0x6e,0x00,0x74,0x00,0x2e,0x20,0x1d,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,0x82,0x02,0x01,0x00,0x07,0xe6,0x88,0x51,0x0d,0xe2,0xc6,0xe0,0x98,0x3f,0x81,0x71,0x03,0x3d,0x9d,0xa3,0xa1,0x21,0x6f,0xb3,0xeb,0xa6,0xcc,0xf5,0x31,0xbe,0xcf,0x05,0xe2,0xa9,0xfe,0xfa,0x57,0x6d,0x19,0x30,0xb3, +0xc2,0xc5,0x66,0xc9,0x6a,0xdf,0xf5,0xe7,0xf0,0x78,0xbd,0xc7,0xa8,0x9e,0x25,0xe3,0xf9,0xbc,0xed,0x6b,0x54,0x57,0x08,0x2b,0x51,0x82,0x44,0x12,0xfb,0xb9,0x53,0x8c,0xcc,0xf4,0x60,0x12,0x8a,0x76,0xcc,0x40,0x40,0x41,0x9b,0xdc,0x5c,0x17,0xff,0x5c,0xf9,0x5e,0x17,0x35,0x98,0x24,0x56,0x4b,0x74,0xef,0x42,0x10,0xc8,0xaf,0xbf,0x7f, +0xc6,0x7f,0xf2,0x37,0x7d,0x5a,0x3f,0x1c,0xf2,0x99,0x79,0x4a,0x91,0x52,0x00,0xaf,0x38,0x0f,0x17,0xf5,0x2f,0x79,0x81,0x65,0xd9,0xa9,0xb5,0x6b,0xe4,0xc7,0xce,0xf6,0xca,0x7a,0x00,0x6f,0x4b,0x30,0x44,0x24,0x22,0x3c,0xcf,0xed,0x03,0xa5,0x96,0x8f,0x59,0x29,0xbc,0xb6,0xfd,0x04,0xe1,0x70,0x9f,0x32,0x4a,0x27,0xfd,0x55,0xaf,0x2f, +0xfe,0xb6,0xe5,0x8e,0x33,0xbb,0x62,0x5f,0x9a,0xdb,0x57,0x40,0xe9,0xf1,0xce,0x99,0x66,0x90,0x8c,0xff,0x6a,0x62,0x7f,0xdd,0xc5,0x4a,0x0b,0x91,0x26,0xe2,0x39,0xec,0x19,0x4a,0x71,0x63,0x9d,0x7b,0x21,0x6d,0xc3,0x9c,0xa3,0xa2,0x3c,0xfa,0x7f,0x7d,0x96,0x6a,0x90,0x78,0xa6,0x6d,0xd2,0xe1,0x9c,0xf9,0x1d,0xfc,0x38,0xd8,0x94,0xf4, +0xc6,0xa5,0x0a,0x96,0x86,0xa4,0xbd,0x9e,0x1a,0xae,0x04,0x42,0x83,0xb8,0xb5,0x80,0x9b,0x22,0x38,0x20,0xb5,0x25,0xe5,0x64,0xec,0xf7,0xf4,0xbf,0x7e,0x63,0x59,0x25,0x0f,0x7a,0x2e,0x39,0x57,0x76,0xa2,0x71,0xaa,0x06,0x8a,0x0f,0x89,0x16,0xba,0x61,0xa7,0x11,0xcb,0x9a,0xd8,0x0e,0x47,0x9a,0x80,0xc5,0xd0,0xcd,0xa7,0xd0,0xef,0x7d, +0x83,0xf0,0xe1,0x3b,0x71,0x09,0xdf,0x5d,0x74,0x98,0x22,0x08,0x61,0xda,0xb0,0x50,0x1e,0x6f,0xbd,0xf1,0xe1,0x00,0xdf,0xe7,0x31,0x07,0xa4,0x93,0x3a,0xf7,0x65,0x47,0x78,0xe8,0xf8,0xa8,0x48,0xab,0xf7,0xde,0x72,0x7e,0x61,0x6b,0x6f,0x77,0xa9,0x81,0xcb,0xa7,0x09,0xac,0x39,0xbb,0xec,0xc6,0xcb,0xd8,0x82,0xb4,0x72,0xcd,0x1d,0xf4, +0xb8,0x85,0x01,0x1e,0x80,0xfb,0x1b,0x89,0x2a,0x54,0x39,0xb2,0x5b,0xda,0xc8,0x0d,0x55,0x99,0x7a,0x87,0x73,0x3b,0x08,0xe6,0x98,0x2d,0xea,0x8d,0xe0,0x33,0x2e,0x12,0x29,0xf5,0xc0,0x2f,0x54,0x27,0x21,0xf7,0xc8,0xac,0x4e,0xda,0x28,0xb8,0xb1,0xa9,0xdb,0x96,0xb2,0xa7,0x42,0xa2,0xc9,0xcf,0x19,0x41,0x4d,0xe0,0x86,0xf9,0x2a,0x9a, +0xa3,0x11,0x66,0x30,0xd3,0xbb,0x74,0x32,0x4b,0xdf,0x63,0x7b,0xf5,0x99,0x8a,0x2f,0x1b,0xc7,0x21,0xaf,0x59,0xb5,0xae,0xdc,0x44,0x3c,0x97,0x50,0x71,0xd7,0xa1,0xd2,0xc5,0x55,0xe3,0x69,0xde,0x57,0xc1,0xd1,0xde,0x30,0xc0,0xfd,0xcc,0xe6,0x4d,0xfb,0x0d,0xbf,0x5d,0x4f,0xe9,0x9d,0x1e,0x19,0x38,0x2f,0xbc,0xcf,0x58,0x05,0x2e,0xef, +0x0d,0xa0,0x50,0x35,0xda,0xef,0x09,0x27,0x1c,0xd5,0xb3,0x7e,0x35,0x1e,0x08,0xba,0xda,0x36,0xdb,0xd3,0x5f,0x8f,0xde,0x74,0x88,0x49,0x12,0xa1,0x82,0x02,0xce,0x30,0x82,0x02,0x37,0x02,0x01,0x01,0x30,0x81,0xf8,0xa1,0x81,0xd0,0xa4,0x81,0xcd,0x30,0x81,0xca,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31, +0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f, +0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x0b,0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x41,0x6d,0x65,0x72,0x69,0x63,0x61,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x0b,0x13,0x1d,0x54,0x68,0x61,0x6c,0x65,0x73,0x20,0x54, +0x53,0x53,0x20,0x45,0x53,0x4e,0x3a,0x34,0x39,0x42,0x43,0x2d,0x45,0x33,0x37,0x41,0x2d,0x32,0x33,0x33,0x43,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x03,0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x53,0x65,0x72,0x76,0x69,0x63,0x65,0xa2,0x23,0x0a,0x01, +0x01,0x30,0x07,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1a,0x03,0x15,0x00,0x38,0x3d,0xac,0x26,0x41,0x22,0x8f,0x3c,0xc6,0xc6,0x55,0xda,0x06,0x0a,0xf9,0x32,0x6d,0x93,0x2e,0x69,0xa0,0x81,0x83,0x30,0x81,0x80,0xa4,0x7e,0x30,0x7c,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04, +0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31, +0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x03,0x13,0x1d,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x02,0x05,0x00,0xdf,0xf4,0x2e,0xe3,0x30,0x22,0x18, +0x0f,0x32,0x30,0x31,0x39,0x30,0x31,0x32,0x34,0x32,0x30,0x33,0x32,0x33,0x35,0x5a,0x18,0x0f,0x32,0x30,0x31,0x39,0x30,0x31,0x32,0x35,0x32,0x30,0x33,0x32,0x33,0x35,0x5a,0x30,0x77,0x30,0x3d,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x84,0x59,0x0a,0x04,0x01,0x31,0x2f,0x30,0x2d,0x30,0x0a,0x02,0x05,0x00,0xdf,0xf4,0x2e,0xe3,0x02,0x01, +0x00,0x30,0x0a,0x02,0x01,0x00,0x02,0x02,0x19,0xf6,0x02,0x01,0xff,0x30,0x07,0x02,0x01,0x00,0x02,0x02,0x11,0x74,0x30,0x0a,0x02,0x05,0x00,0xdf,0xf5,0x80,0x63,0x02,0x01,0x00,0x30,0x36,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x84,0x59,0x0a,0x04,0x02,0x31,0x28,0x30,0x26,0x30,0x0c,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x84,0x59,0x0a, +0x03,0x02,0xa0,0x0a,0x30,0x08,0x02,0x01,0x00,0x02,0x03,0x07,0xa1,0x20,0xa1,0x0a,0x30,0x08,0x02,0x01,0x00,0x02,0x03,0x01,0x86,0xa0,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x79,0x78,0x9e,0x72,0x3a,0x6f,0xf0,0x0e,0x50,0x48,0xa6,0x78,0x90,0xb3,0x7b,0xd8,0xf9,0xd8,0xeb, +0x34,0x2d,0x2b,0x30,0xd5,0x86,0xfa,0x8c,0xc2,0x8e,0x06,0xad,0x31,0xb1,0xf1,0xfa,0x4b,0x6b,0xce,0xd8,0x44,0x4c,0xc7,0xc5,0xb0,0xa0,0x86,0x94,0x97,0x10,0x01,0x25,0xd1,0x29,0x21,0x2b,0x6c,0x1d,0x67,0x37,0xd3,0x15,0x81,0x32,0x40,0xa9,0x7f,0x2e,0x6b,0x4d,0x0d,0xcb,0xc9,0xa0,0x05,0xed,0x54,0x89,0x0a,0x8c,0x7f,0x0d,0x52,0x1a, +0x26,0xda,0x26,0x7f,0x8e,0xa4,0xc2,0x49,0xba,0x54,0x51,0xd1,0x1e,0xfc,0xf2,0x66,0xbf,0x46,0xa5,0xde,0x59,0x55,0x9a,0xbc,0xea,0xca,0xf7,0xf7,0xf9,0x7b,0x77,0x66,0x86,0x03,0xf0,0xf2,0xb8,0x53,0x28,0xa3,0x4a,0x0e,0xbe,0xf9,0x71,0x31,0x82,0x03,0x0d,0x30,0x82,0x03,0x09,0x02,0x01,0x01,0x30,0x81,0x93,0x30,0x7c,0x31,0x0b,0x30, +0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72, +0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x03,0x13,0x1d,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x02,0x13,0x33,0x00,0x00,0x00,0xee, +0xf8,0xc5,0xf5,0x36,0x3b,0x81,0x1c,0x8c,0x00,0x00,0x00,0x00,0x00,0xee,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0xa0,0x82,0x01,0x4a,0x30,0x1a,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x03,0x31,0x0d,0x06,0x0b,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x10,0x01,0x04,0x30,0x2f,0x06, +0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x04,0x31,0x22,0x04,0x20,0xa9,0xb8,0x68,0x0f,0x5b,0x53,0xc4,0x53,0x8f,0x02,0x31,0x6a,0xa0,0x8b,0xf7,0x6b,0x41,0xea,0x53,0x11,0xcb,0xc2,0x98,0xe8,0xce,0x11,0x08,0xe6,0x0c,0xe8,0x14,0xd4,0x30,0x81,0xfa,0x06,0x0b,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x10,0x02,0x2f,0x31,0x81, +0xea,0x30,0x81,0xe7,0x30,0x81,0xe4,0x30,0x81,0xbd,0x04,0x20,0x3f,0xae,0xc6,0x22,0xb7,0x3e,0xfb,0xf8,0xb4,0xb1,0x77,0x93,0x35,0x3e,0x92,0x51,0x0a,0x9f,0x0b,0x21,0x01,0xf2,0x99,0x2b,0x12,0x0c,0xd1,0x23,0x2f,0x10,0x2e,0xc3,0x30,0x81,0x98,0x30,0x81,0x80,0xa4,0x7e,0x30,0x7c,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13, +0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43, +0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x03,0x13,0x1d,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x02,0x13,0x33,0x00,0x00,0x00,0xee,0xf8,0xc5,0xf5,0x36,0x3b,0x81,0x1c, +0x8c,0x00,0x00,0x00,0x00,0x00,0xee,0x30,0x22,0x04,0x20,0x14,0xc2,0x54,0x4f,0xba,0xe2,0x1c,0xdf,0x0c,0x3b,0x9d,0xfc,0xbc,0x5c,0xd8,0xb1,0x97,0xa6,0x39,0x9a,0x30,0x96,0xf8,0xa5,0xf4,0xb2,0x11,0xd6,0x59,0xc6,0x50,0xdd,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x04,0x82,0x01,0x00,0x4e,0x09, +0xa9,0x0d,0x51,0x40,0x35,0x45,0x38,0x88,0x5f,0x87,0xc6,0xaf,0x4a,0xd8,0x8c,0x36,0x34,0xd4,0x98,0x9b,0x5b,0xfb,0xc0,0xc0,0x85,0xd8,0x62,0x7e,0x9d,0x36,0x78,0x97,0xc6,0x77,0x76,0x2c,0xfb,0xf7,0x48,0x80,0x3e,0x93,0x18,0x95,0x1d,0xda,0xab,0x0a,0x0a,0xd1,0x9d,0xdb,0xcd,0xb7,0x67,0x8c,0x91,0xa8,0xdd,0x33,0x8d,0x55,0x9e,0xa0, +0x25,0xdb,0x26,0x6d,0x71,0xea,0xb6,0x99,0x10,0xce,0xa6,0x7a,0xfe,0x58,0x2e,0xb0,0x19,0xbd,0xc4,0x92,0xa4,0xa4,0x2b,0x56,0x85,0x54,0x02,0xdc,0x8d,0xe5,0x7b,0x23,0xcd,0xd7,0xee,0x49,0xcb,0x8d,0x7d,0x2f,0x80,0x9d,0x48,0x77,0xa2,0xe1,0xcc,0xb9,0x66,0x09,0xbd,0x3b,0x43,0x88,0x4d,0x7d,0xbc,0x83,0xff,0xfc,0xbf,0x27,0x4d,0x0c, +0xc7,0x06,0xbb,0x68,0x0d,0x37,0xcc,0xa0,0x0f,0xda,0xe0,0xf5,0xcc,0x8c,0xd2,0x24,0x97,0xe4,0x6c,0x02,0x83,0xb3,0xbd,0x0e,0x50,0xdd,0x2f,0x0c,0x05,0xee,0xe7,0xda,0x9b,0x11,0xc4,0x9d,0x6e,0x67,0x8c,0x29,0x9b,0x4e,0xef,0x33,0xe7,0x31,0x20,0x9e,0xdf,0x47,0xdd,0x6a,0xea,0x7b,0xac,0x08,0x0f,0x83,0x04,0x2c,0xee,0x13,0x35,0x69, +0x90,0xb4,0x8a,0xbe,0xc5,0x5e,0x5e,0x29,0x29,0x09,0xc0,0x1b,0xa7,0x68,0x47,0x29,0x21,0x91,0x3b,0xdf,0xa3,0x2f,0x81,0x42,0x88,0x50,0x90,0x72,0x29,0x4f,0x24,0xc5,0x03,0x45,0x2e,0xa2,0x6a,0x10,0xf4,0xd1,0x0b,0x23,0xbd,0xbf,0x92,0x8c,0xc8,0x74,0x6e,0x35,0xcd,0x74,0x9b,0x38,0xdf,0x13,0xd2,0x2a,0xc5,0xfa,0x30,0xab,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x0c,0x00,0x00,0x02,0x1a,0x02,0x22,0x00,0x02,0x00,0x57,0x00,0x00,0x02,0x43,0x00,0x01,0x02,0x44,0x02,0x56,0x00,0x03,0x02,0x57,0x04,0x61,0x00,0x01,0x04,0x62,0x04,0xaf,0x00,0x03,0x04,0xb0,0x05,0xfc,0x00,0x01,0x05,0xfd,0x06,0x02,0x00,0x03,0x06,0x03,0x06,0x65,0x00,0x01,0x06,0x66,0x06,0x72,0x00,0x03, +0x06,0x73,0x06,0x9a,0x00,0x01,0x06,0x9b,0x06,0x9b,0x00,0x03,0x06,0x9c,0x06,0xad,0x00,0x01,0x06,0xae,0x06,0xd9,0x00,0x02,0x06,0xda,0x06,0xda,0x00,0x03,0x06,0xdb,0x07,0x38,0x00,0x02,0x07,0x39,0x07,0x3d,0x00,0x03,0x07,0x3e,0x07,0x54,0x00,0x01,0x07,0x55,0x07,0x5f,0x00,0x03,0x07,0x60,0x07,0xec,0x00,0x01,0x07,0xed,0x07,0xf0, +0x00,0x03,0x07,0xf1,0x08,0x4b,0x00,0x01,0x08,0x4c,0x08,0x4f,0x00,0x03,0x08,0x50,0x09,0x2b,0x00,0x01,0x09,0x2c,0x09,0x33,0x00,0x03,0x09,0x34,0x09,0x36,0x00,0x01,0x09,0x37,0x09,0x37,0x00,0x03,0x09,0x38,0x09,0x70,0x00,0x01,0x09,0x71,0x09,0x71,0x00,0x02,0x09,0x72,0x09,0x72,0x00,0x01,0x09,0x73,0x09,0x75,0x00,0x03,0x09,0x76, +0x09,0x76,0x00,0x01,0x09,0x77,0x09,0x77,0x00,0x03,0x09,0x78,0x09,0x7d,0x00,0x01,0x09,0x7e,0x09,0x7f,0x00,0x03,0x09,0x80,0x0a,0x0e,0x00,0x01,0x0a,0x0f,0x0a,0x13,0x00,0x03,0x0a,0x14,0x0a,0x15,0x00,0x01,0x0a,0x16,0x0a,0x1f,0x00,0x03,0x0a,0x20,0x0a,0x20,0x00,0x01,0x0a,0x21,0x0a,0x23,0x00,0x03,0x0a,0x24,0x0a,0x4a,0x00,0x01, +0x0a,0x4b,0x0a,0x53,0x00,0x03,0x0a,0x54,0x0a,0x5b,0x00,0x01,0x0a,0x5c,0x0a,0x5e,0x00,0x03,0x0a,0x5f,0x0a,0x62,0x00,0x01,0x0a,0x63,0x0a,0x64,0x00,0x02,0x0a,0x65,0x0a,0x69,0x00,0x03,0x0a,0x6a,0x0a,0x6b,0x00,0x01,0x0a,0x6c,0x0a,0x71,0x00,0x03,0x0a,0x72,0x0a,0xda,0x00,0x01,0x0a,0xdb,0x0a,0xe3,0x00,0x03,0x0a,0xe4,0x0b,0x52, +0x00,0x01,0x0b,0x53,0x0b,0x5f,0x00,0x03,0x0b,0x60,0x0b,0x60,0x00,0x01,0x0b,0x61,0x0b,0x61,0x00,0x03,0x0b,0x62,0x0b,0x62,0x00,0x01,0x0b,0x63,0x0b,0x64,0x00,0x03,0x0b,0x65,0x0b,0x65,0x00,0x01,0x0b,0x66,0x0b,0x67,0x00,0x03,0x0b,0x68,0x0b,0xb8,0x00,0x01,0x0b,0xb9,0x0b,0xb9,0x00,0x03,0x0b,0xba,0x0b,0xbe,0x00,0x01,0x0b,0xbf, +0x0b,0xde,0x00,0x03,0x0b,0xdf,0x0b,0xe0,0x00,0x01,0x0b,0xe1,0x0b,0xe1,0x00,0x03,0x0b,0xe2,0x0e,0x19,0x00,0x01,0x0e,0x1a,0x0e,0x1e,0x00,0x03,0x0e,0x1f,0x0e,0x61,0x00,0x01,0x0e,0x62,0x0e,0x6c,0x00,0x03,0x0e,0x6d,0x0e,0xea,0x00,0x01,0x0e,0xeb,0x0e,0xeb,0x00,0x03,0x0e,0xec,0x12,0x58,0x00,0x01,0x12,0x59,0x12,0x5e,0x00,0x03, +0x12,0x5f,0x13,0x29,0x00,0x01,0x13,0x2a,0x13,0x44,0x00,0x03,0x13,0x45,0x13,0xd8,0x00,0x01,0x13,0xd9,0x13,0xe9,0x00,0x03,0x13,0xea,0x13,0xee,0x00,0x01,0x13,0xef,0x13,0xf2,0x00,0x02,0x13,0xf3,0x14,0x16,0x00,0x01,0x14,0x17,0x14,0x17,0x00,0x03,0x14,0x18,0x14,0x5c,0x00,0x01,0x14,0x5d,0x14,0x6a,0x00,0x03,0x14,0x6b,0x14,0x6b, +0x00,0x01,0x14,0x6c,0x14,0x6c,0x00,0x03,0x14,0x6d,0x14,0x96,0x00,0x01,0x14,0x97,0x14,0x98,0x00,0x02,0x14,0x99,0x14,0xdf,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x33,0x02,0x44,0x02,0x44,0x00,0x02,0x02,0x45,0x02,0x45,0x00,0x04,0x02,0x46,0x02,0x47,0x00,0x02,0x04,0x62,0x04,0x73,0x00,0x02,0x04,0x75, +0x04,0x78,0x00,0x04,0x04,0x79,0x04,0x79,0x00,0x02,0x04,0x7b,0x04,0x7f,0x00,0x04,0x04,0x82,0x04,0x84,0x00,0x04,0x04,0x87,0x04,0x91,0x00,0x04,0x04,0x97,0x04,0x9a,0x00,0x04,0x04,0x9b,0x04,0x9d,0x00,0x02,0x04,0xa0,0x04,0xa2,0x00,0x02,0x04,0xa3,0x04,0xa3,0x00,0x04,0x04,0xa4,0x04,0xa4,0x00,0x02,0x04,0xa5,0x04,0xa7,0x00,0x04, +0x04,0xa8,0x04,0xaa,0x00,0x02,0x04,0xab,0x04,0xac,0x00,0x04,0x05,0xfd,0x06,0x00,0x00,0x02,0x06,0x66,0x06,0x72,0x00,0x02,0x07,0x3a,0x07,0x3d,0x00,0x03,0x07,0x55,0x07,0x57,0x00,0x02,0x07,0x58,0x07,0x5b,0x00,0x04,0x07,0x5c,0x07,0x5c,0x00,0x02,0x07,0xed,0x07,0xee,0x00,0x04,0x07,0xef,0x07,0xef,0x00,0x02,0x08,0x4c,0x08,0x4d, +0x00,0x02,0x08,0x4e,0x08,0x4e,0x00,0x04,0x08,0x4f,0x08,0x4f,0x00,0x02,0x09,0x2e,0x09,0x2e,0x00,0x01,0x09,0x31,0x09,0x31,0x00,0x01,0x09,0x77,0x09,0x77,0x00,0x01,0x09,0x7f,0x09,0x7f,0x00,0x01,0x0a,0x1a,0x0a,0x1a,0x00,0x01,0x0a,0x21,0x0a,0x21,0x00,0x01,0x0a,0x23,0x0a,0x23,0x00,0x01,0x0a,0x50,0x0a,0x50,0x00,0x01,0x0a,0x6f, +0x0a,0x6f,0x00,0x01,0x0a,0xdb,0x0a,0xe0,0x00,0x02,0x0a,0xe1,0x0a,0xe1,0x00,0x04,0x0a,0xe2,0x0a,0xe2,0x00,0x02,0x0a,0xe3,0x0a,0xe3,0x00,0x04,0x0e,0x1e,0x0e,0x1e,0x00,0x01,0x0e,0x6b,0x0e,0x6c,0x00,0x01,0x13,0x2c,0x13,0x2c,0x00,0x01,0x13,0x2f,0x13,0x2f,0x00,0x01,0x13,0x33,0x13,0x35,0x00,0x01,0x13,0x38,0x13,0x38,0x00,0x01, +0x13,0x3c,0x13,0x3c,0x00,0x01,0x13,0x3f,0x13,0x40,0x00,0x01,0x14,0x62,0x14,0x62,0x00,0x01,0x14,0x6c,0x14,0x6c,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x0a,0x01,0xee,0x04,0xce,0x00,0x15,0x61,0x72,0x61,0x62,0x00,0x80,0x62,0x6e,0x67,0x32,0x00,0xea,0x63,0x79,0x72,0x6c,0x00,0xf4,0x64,0x65,0x76,0x32,0x01,0x08,0x67,0x6a,0x72,0x32, +0x01,0x22,0x67,0x72,0x65,0x6b,0x01,0x12,0x67,0x75,0x72,0x32,0x01,0x2c,0x68,0x65,0x62,0x72,0x01,0x36,0x6b,0x68,0x6d,0x72,0x01,0x4e,0x6b,0x6e,0x64,0x32,0x01,0x44,0x6c,0x61,0x6f,0x20,0x01,0x58,0x6c,0x61,0x74,0x6e,0x01,0x62,0x6d,0x6c,0x6d,0x32,0x01,0x8a,0x6d,0x6f,0x6e,0x67,0x01,0x94,0x6d,0x79,0x6d,0x72,0x01,0x9e,0x6f,0x72, +0x79,0x32,0x01,0xb2,0x74,0x61,0x6c,0x75,0x01,0xa8,0x74,0x65,0x6c,0x32,0x01,0xc6,0x74,0x68,0x61,0x69,0x01,0xd0,0x74,0x69,0x62,0x74,0x01,0xda,0x74,0x6d,0x6c,0x32,0x01,0xbc,0x00,0x2e,0x00,0x05,0x41,0x52,0x41,0x20,0x00,0x22,0x4d,0x4c,0x59,0x20,0x00,0x3a,0x4d,0x4f,0x52,0x20,0x00,0x46,0x53,0x4e,0x44,0x20,0x00,0x52,0x55,0x52, +0x44,0x20,0x00,0x5e,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x08,0x00,0x12,0x00,0x1c,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x09,0x00,0x13,0x00,0x1d,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x0a,0x00,0x14,0x00,0x1e,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x0b,0x00,0x15,0x00,0x1f,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x0c,0x00,0x16,0x00,0x20, +0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x0d,0x00,0x17,0x00,0x21,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x05,0x00,0x04,0x00,0x00,0x00,0x0e,0x00,0x18,0x00,0x22,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x05, +0x00,0x01,0x00,0x0f,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x02,0x00,0x10,0x00,0x19,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x0a,0x00,0x01,0x54,0x52,0x4b,0x20,0x00,0x1a,0x00,0x00,0xff,0xff,0x00,0x05,0x00,0x06,0x00,0x02,0x00,0x11,0x00,0x1a,0x00,0x23,0x00,0x00,0xff,0xff,0x00,0x04,0x00,0x07,0x00,0x03,0x00,0x1b,0x00,0x24,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x25,0x63,0x61,0x73,0x65,0x00,0xe0,0x63,0x61,0x73,0x65,0x00,0xe6,0x63,0x61,0x73,0x65,0x00,0xec,0x63,0x61,0x73,0x65,0x00,0xf2,0x63,0x70,0x73,0x70,0x00,0xf8,0x63,0x70,0x73,0x70,0x01,0x02,0x63,0x70,0x73,0x70,0x01,0x0c,0x63,0x70,0x73,0x70,0x01,0x16,0x6b,0x65,0x72,0x6e,0x01,0x20,0x6b,0x65, +0x72,0x6e,0x01,0x36,0x6b,0x65,0x72,0x6e,0x01,0x60,0x6b,0x65,0x72,0x6e,0x01,0x76,0x6b,0x65,0x72,0x6e,0x01,0x8c,0x6b,0x65,0x72,0x6e,0x01,0xa2,0x6b,0x65,0x72,0x6e,0x01,0xcc,0x6b,0x65,0x72,0x6e,0x01,0xd2,0x6b,0x65,0x72,0x6e,0x01,0xd8,0x6b,0x65,0x72,0x6e,0x01,0xde,0x6d,0x61,0x72,0x6b,0x01,0xe4,0x6d,0x61,0x72,0x6b,0x01,0xee, +0x6d,0x61,0x72,0x6b,0x01,0xf8,0x6d,0x61,0x72,0x6b,0x02,0x02,0x6d,0x61,0x72,0x6b,0x02,0x0c,0x6d,0x61,0x72,0x6b,0x02,0x16,0x6d,0x61,0x72,0x6b,0x02,0x20,0x6d,0x61,0x72,0x6b,0x02,0x28,0x6d,0x61,0x72,0x6b,0x02,0x6a,0x6d,0x61,0x72,0x6b,0x02,0x80,0x6d,0x6b,0x6d,0x6b,0x02,0x94,0x6d,0x6b,0x6d,0x6b,0x02,0x9c,0x6d,0x6b,0x6d,0x6b, +0x02,0xa4,0x6d,0x6b,0x6d,0x6b,0x02,0xac,0x6d,0x6b,0x6d,0x6b,0x02,0xb4,0x6d,0x6b,0x6d,0x6b,0x02,0xbc,0x6d,0x6b,0x6d,0x6b,0x02,0xc4,0x6d,0x6b,0x6d,0x6b,0x02,0xcc,0x6d,0x6b,0x6d,0x6b,0x02,0xd8,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x00, +0x00,0x03,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x00,0x00,0x03,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x00,0x00,0x03,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x00,0x00,0x03,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x00,0x00,0x13, +0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40,0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47,0x00,0x48,0x00,0x49,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x00,0x00,0x09, +0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40, +0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47,0x00,0x48,0x00,0x49,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x00,0x00,0x01,0x00,0x19,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00, +0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x02,0x00,0x03,0x00,0x13,0x00,0x00,0x00,0x1f,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x00,0x1d,0x00,0x1e,0x00,0x1f,0x00,0x20, +0x00,0x21,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x2b,0x00,0x2c,0x00,0x2d,0x00,0x2e,0x00,0x2f,0x00,0x30,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x38,0x00,0x00,0x00,0x09,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x07,0x00,0x08,0x00,0x09, +0x00,0x0a,0x00,0x0c,0x00,0x14,0x00,0x00,0x00,0x08,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0c,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x17, +0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x0d,0x00,0x0e,0x00,0x00,0x00,0x04,0x00,0x0d,0x00,0x0e,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x0d,0x00,0x0e,0x00,0x86,0x01,0x0e,0x01,0x28,0x01,0x42,0x01,0x52,0x01,0x62,0x01,0x72,0x01,0x82,0x01,0x92,0x01,0xa2,0x01,0xb2,0x01,0xc2,0x01,0xd2, +0x01,0xe2,0x01,0xf2,0x02,0x02,0x02,0x12,0x02,0x22,0x02,0x32,0x02,0x42,0x02,0x52,0x02,0x62,0x02,0x72,0x02,0x96,0x02,0xa6,0x02,0xb6,0x02,0xc6,0x02,0xd6,0x02,0xe6,0x02,0xf6,0x03,0x06,0x03,0x2a,0x03,0x3a,0x03,0x68,0x04,0x5e,0x05,0xb8,0x05,0xc8,0x05,0xd8,0x06,0x56,0x06,0x7a,0x06,0xee,0x07,0x1c,0x09,0x70,0x09,0x80,0x09,0x90, +0x09,0xa0,0x09,0xb0,0x09,0xc0,0x09,0xd0,0x09,0xe0,0x0a,0x04,0x0a,0x14,0x0a,0x38,0x0a,0x7a,0x0a,0xa8,0x0a,0xb8,0x0a,0xc8,0x0a,0xf6,0x0b,0x06,0x0b,0x16,0x0b,0x26,0x0b,0x36,0x0b,0x46,0x0b,0x56,0x0b,0x66,0x0b,0x76,0x0b,0x9a,0x0b,0xbe,0x0b,0xe2,0x0c,0x06,0x0c,0x2a,0x0c,0x4e,0x0c,0x72,0x0c,0x96,0x0c,0xba,0x0c,0xde,0x0c,0xee, +0x0c,0xfe,0x0d,0x0e,0x0d,0x1e,0x0d,0x2e,0x0d,0x3e,0x0d,0x4e,0x0d,0x5e,0x0d,0x6e,0x0d,0x7e,0x0d,0x8e,0x0d,0x9e,0x0d,0xae,0x0d,0xbe,0x0d,0xce,0x0d,0xde,0x0d,0xee,0x0d,0xfe,0x0e,0x0e,0x0e,0x1e,0x0e,0x2e,0x0e,0x3e,0x0e,0x4e,0x0e,0x5e,0x0e,0x6e,0x0e,0x7e,0x0e,0x8e,0x0e,0x9e,0x0e,0xae,0x0e,0xbe,0x0e,0xce,0x0e,0xde,0x0e,0xee, +0x0e,0xfe,0x0f,0x0e,0x0f,0x1e,0x0f,0x2e,0x0f,0x3e,0x0f,0x4e,0x0f,0x5e,0x0f,0x6e,0x0f,0x7e,0x0f,0x8e,0x0f,0x9e,0x0f,0xae,0x0f,0xbe,0x0f,0xce,0x0f,0xde,0x0f,0xee,0x0f,0xfe,0x10,0x0e,0x10,0x1e,0x10,0x2e,0x10,0x3e,0x10,0x4e,0x10,0x5e,0x10,0x6e,0x10,0x7e,0x10,0x8e,0x00,0x09,0x00,0x09,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01, +0x00,0x02,0x00,0x00,0x0f,0x86,0x00,0x01,0x00,0x02,0x00,0x00,0x2d,0x04,0x00,0x09,0x00,0x08,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01,0x00,0x02,0x00,0x00,0x35,0xd0,0x00,0x01,0x00,0x02,0x00,0x00,0x36,0x16,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x82,0xbe,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x04,0x00,0x00,0x97,0x3c,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x98,0x5c,0x00,0x09,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x36,0x96,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x99,0xa2,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x04,0x00,0x00,0x9a,0x78,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0xa8,0x76,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0xa9,0x56,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0xaa,0x32,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x04,0x00,0x00,0xb1,0x9a,0x00,0x09,0x03,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0xb2,0x1c,0x00,0x09,0x02,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0xfe,0xcc,0x00,0x09,0x04,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x01,0x20,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x01,0x00,0x00,0x48,0x22,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x49,0xe8,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x49,0xf2,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x4a,0x08,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x04,0x00,0x01,0x02,0x92,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x02,0xa8,0x00,0x09,0x00,0x01,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x4a,0x40,0x00,0x01,0x00,0x08,0x00,0x00,0x4a,0x60,0x00,0x01,0x00,0x08,0x00,0x00,0x4a,0x78,0x00,0x09,0x00,0x01, +0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x05,0x00,0x01,0x12,0xb8,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x15,0x60,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x18,0xd4,0x00,0x09,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x4a,0xcc,0x00,0x09,0x00,0x01, +0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x1a,0x3a,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x1a,0x90,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x4e,0xa2,0x00,0x09,0x00,0x01,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x4e,0xe4, +0x00,0x01,0x00,0x08,0x00,0x00,0x4e,0xf0,0x00,0x01,0x00,0x08,0x00,0x00,0x4e,0xfc,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x1d,0x58,0x00,0x09,0x00,0x01,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x2c,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x36,0x00,0x01, +0x00,0x08,0x00,0x00,0x4f,0x42,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x50,0x00,0x09,0x00,0x01,0x00,0x18,0x00,0x36,0x00,0x3e,0x00,0x46,0x00,0x4e,0x00,0x56,0x00,0x5e,0x00,0x66,0x00,0x6e,0x00,0x76,0x00,0x7e,0x00,0x86,0x00,0x8e,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6,0x00,0xbe,0x00,0xc6,0x00,0xce,0x00,0xd6,0x00,0xde, +0x00,0xe6,0x00,0xee,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x58,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x64,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x70,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x7e,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x8a,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x98,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0xa2,0x00,0x01,0x00,0x08, +0x00,0x00,0x4f,0xb0,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0xc0,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0xd2,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0xe0,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0xf0,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x12,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x24,0x00,0x01,0x00,0x08, +0x00,0x00,0x50,0x38,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x46,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x56,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x66,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x78,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x8a,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x9e,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0xaa,0x00,0x01,0x00,0x08, +0x00,0x00,0x50,0xb8,0x00,0x09,0x00,0x01,0x00,0x22,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x6a,0x00,0x72,0x00,0x7a,0x00,0x82,0x00,0x8a,0x00,0x92,0x00,0x9a,0x00,0xa2,0x00,0xaa,0x00,0xb2,0x00,0xba,0x00,0xc2,0x00,0xca,0x00,0xd2,0x00,0xda,0x00,0xe2,0x00,0xea,0x00,0xf2,0x00,0xfa,0x01,0x02,0x01,0x0a,0x01,0x12,0x01,0x1a, +0x01,0x22,0x01,0x2a,0x01,0x32,0x01,0x3a,0x01,0x42,0x01,0x4a,0x01,0x52,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0xce,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0xda,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0xe8,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0xf8,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x06,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x16,0x00,0x01, +0x00,0x08,0x00,0x00,0x51,0x28,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x34,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x42,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x52,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x60,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x70,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x82,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x90,0x00,0x01, +0x00,0x08,0x00,0x00,0x51,0xa0,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0xb2,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0xc0,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0xd0,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0xe2,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0xf2,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x04,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x18,0x00,0x01, +0x00,0x08,0x00,0x00,0x52,0x26,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x36,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x48,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x5a,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x6e,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x84,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x94,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0xa6,0x00,0x01, +0x00,0x08,0x00,0x00,0x52,0xba,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0xca,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0xdc,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0xf0,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x1b,0xac,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x53,0xbe,0x00,0x09, +0x00,0x01,0x00,0x0c,0x00,0x1e,0x00,0x26,0x00,0x2e,0x00,0x36,0x00,0x3e,0x00,0x46,0x00,0x4e,0x00,0x56,0x00,0x5e,0x00,0x66,0x00,0x6e,0x00,0x76,0x00,0x01,0x00,0x08,0x00,0x00,0x53,0xf0,0x00,0x01,0x00,0x08,0x00,0x00,0x53,0xfa,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x06,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x14,0x00,0x01,0x00,0x08, +0x00,0x00,0x54,0x1e,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x2a,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x38,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x42,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x4e,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x5c,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x66,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x72,0x00,0x09,0x00,0x01, +0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0xd8,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0xe4,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0xf2,0x00,0x09,0x00,0x01,0x00,0x0b,0x00,0x1c,0x00,0x24,0x00,0x2c,0x00,0x34,0x00,0x3c,0x00,0x44,0x00,0x4c,0x00,0x54,0x00,0x5c,0x00,0x64,0x00,0x6c,0x00,0x01,0x00,0x08, +0x00,0x00,0x55,0x42,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x4e,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x5c,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x6c,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x78,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x86,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x96,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0xa2,0x00,0x01,0x00,0x08, +0x00,0x00,0x55,0xb0,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0xc0,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0xcc,0x00,0x09,0x00,0x01,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x38,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x46,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x56,0x00,0x01,0x00,0x08,0x00,0x00, +0x56,0x68,0x00,0x09,0x00,0x01,0x00,0x3b,0x00,0x7c,0x00,0x84,0x00,0x8c,0x00,0x94,0x00,0x9c,0x00,0xa4,0x00,0xac,0x00,0xb4,0x00,0xbc,0x00,0xc4,0x00,0xcc,0x00,0xd4,0x00,0xdc,0x00,0xe4,0x00,0xec,0x00,0xf4,0x00,0xfc,0x01,0x04,0x01,0x0c,0x01,0x14,0x01,0x1c,0x01,0x24,0x01,0x2c,0x01,0x34,0x01,0x3c,0x01,0x44,0x01,0x4c,0x01,0x54, +0x01,0x5c,0x01,0x64,0x01,0x6c,0x01,0x74,0x01,0x7c,0x01,0x84,0x01,0x8c,0x01,0x94,0x01,0x9c,0x01,0xa4,0x01,0xac,0x01,0xb4,0x01,0xbc,0x01,0xc4,0x01,0xcc,0x01,0xd4,0x01,0xdc,0x01,0xe4,0x01,0xec,0x01,0xf4,0x01,0xfc,0x02,0x04,0x02,0x0c,0x02,0x14,0x02,0x1c,0x02,0x24,0x02,0x2c,0x02,0x34,0x02,0x3c,0x02,0x44,0x02,0x4c,0x00,0x01, +0x00,0x08,0x00,0x00,0x56,0x62,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x70,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x80,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x90,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0xa0,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0xb2,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0xc4,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0xd8,0x00,0x01, +0x00,0x08,0x00,0x00,0x56,0xea,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0xfc,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x10,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x24,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x3a,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x4a,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x5c,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x6e,0x00,0x01, +0x00,0x08,0x00,0x00,0x57,0x80,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x94,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0xa8,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0xbe,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0xd2,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0xe6,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0xfc,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x12,0x00,0x01, +0x00,0x08,0x00,0x00,0x58,0x2a,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x3a,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x4a,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x5c,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x6e,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x80,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x92,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0xa6,0x00,0x01, +0x00,0x08,0x00,0x00,0x58,0xba,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0xd0,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0xe2,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0xf4,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x32,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x46,0x00,0x01, +0x00,0x08,0x00,0x00,0x59,0x5a,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x6e,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x84,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x96,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0xaa,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0xbe,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0xd4,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0xea,0x00,0x01, +0x00,0x08,0x00,0x00,0x59,0xf8,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x18,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x28,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x3a,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x4c,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x60,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x72,0x00,0x01, +0x00,0x08,0x00,0x00,0x5a,0x84,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x98,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0xac,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x1d,0x36,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5b,0xa4,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01, +0x00,0x08,0x00,0x00,0x5b,0xb6,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5b,0xd0,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x1e,0xda,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x1f,0x28,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01, +0x00,0x06,0x00,0x01,0x20,0x1c,0x00,0x09,0x00,0x01,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x5b,0xb6,0x00,0x01,0x00,0x08,0x00,0x00,0x5b,0xc2,0x00,0x01,0x00,0x08,0x00,0x00,0x5b,0xce,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x20,0xb0,0x00,0x09,0x00,0x01,0x00,0x03, +0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0x2c,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0x38,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0x46,0x00,0x09,0x00,0x01,0x00,0x06,0x00,0x12,0x00,0x1a,0x00,0x22,0x00,0x2a,0x00,0x32,0x00,0x3a,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0xc6,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0xd2, +0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0xde,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0xea,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0xf6,0x00,0x01,0x00,0x08,0x00,0x00,0x5d,0x02,0x00,0x09,0x00,0x01,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26,0x00,0x01,0x00,0x08,0x00,0x00,0x5d,0x5a,0x00,0x01,0x00,0x08,0x00,0x00,0x5d,0x66,0x00,0x01, +0x00,0x08,0x00,0x00,0x5d,0x72,0x00,0x01,0x00,0x08,0x00,0x00,0x5d,0x7e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5d,0xe6,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x20,0xc8,0x00,0x09,0x00,0x01,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26,0x00,0x01,0x00,0x08, +0x00,0x00,0x5e,0x46,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0x52,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0x60,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0x70,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x21,0x7a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0xa4,0x00,0x09,0x00,0x00, +0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0xb6,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0xca,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0xde,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0xf4,0x00,0x09,0x00,0x00, +0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x0a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x20,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x2e,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x48,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x62, +0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x70,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x8c,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0xa8,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0xb8,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0xd4, +0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0xf0,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x1e,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x3c,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x4e, +0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x6c,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x8a,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x9c,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0xba,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0xd8,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c, +0x00,0x01,0x00,0x08,0x00,0x00,0x60,0xea,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x0a,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x2a,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x3e,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x5e,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x7e,0x00,0x09,0x00,0x00, +0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x92,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0xb2,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0xd2,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0xe6,0x00,0x01,0x00,0x08,0x00,0x00,0x62,0x06,0x00,0x01,0x00,0x08, +0x00,0x00,0x62,0x26,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x62,0x3e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x62,0x3e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x62,0x3e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04, +0x00,0x00,0x65,0x04,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x67,0x4e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x68,0x26,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x68,0xf8,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04, +0x00,0x00,0x69,0xca,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6a,0x26,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6b,0xb0,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6c,0x88,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04, +0x00,0x00,0x6c,0xea,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6d,0xbc,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6e,0x18,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6e,0xe6,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04, +0x00,0x00,0x6f,0xbe,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x70,0x96,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x71,0x6e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x72,0x94,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06, +0x00,0x00,0x72,0xea,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x73,0x40,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x73,0x96,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x74,0xe0,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x60,0xfc,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x00,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x02,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x06,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x08,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x0a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x0e,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x14,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x18,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x1c,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x20,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x22,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x24,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x26,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x2a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x2e,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x32,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x36,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x3a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x3e,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x42,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x46,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x4a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x4e,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x52,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x56,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x58,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x5a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x5c,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x5e,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x60,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x62,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x64,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x66,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x68,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x6c,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x70,0x00,0x01,0x1c,0xce,0x00,0x05,0x00,0x00,0x00,0x53,0x00,0xb8,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb8,0x00,0xc0,0x09,0x64,0x14,0x30,0x00,0xb8,0x10,0x92,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x08,0x3c,0x08,0x3c,0x08,0x3c,0x08,0x3c, +0x14,0x30,0x14,0x30,0x00,0xb8,0x00,0xb8,0x14,0x30,0x14,0x30,0x15,0x52,0x14,0x30,0x14,0x30,0x08,0x3c,0x08,0x3c,0x14,0x30,0x14,0x30,0x08,0x3c,0x08,0x3c,0x08,0x3c,0x08,0x3c,0x14,0x30,0x14,0x30,0x14,0x30,0x14,0x30,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x08,0x3c,0x14,0x30,0x14,0x30,0x00,0xb8,0x00,0xb8,0x00,0xb8, +0x00,0xb8,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x08,0x3c,0x08,0x3c,0x14,0x30,0x14,0x30,0x08,0x3c,0x08,0x3c,0x08,0x3c,0x08,0x3c,0x14,0x30,0x14,0x30,0x14,0x30,0x08,0x3c,0x14,0x30,0x14,0x30,0x14,0x30,0x14,0x30,0x14,0x30,0x14,0x30,0x14,0x30,0x00,0x01,0x09,0x08,0x01,0x56,0x01,0x56,0x00,0x01,0x09,0x08, +0x00,0xab,0x00,0xab,0x01,0x3f,0x08,0xcc,0xff,0x55,0xff,0x55,0x08,0xcd,0xff,0x55,0xff,0x55,0x08,0xd4,0xff,0x55,0xff,0x55,0x08,0xd5,0xff,0x55,0xff,0x55,0x08,0xd6,0xff,0x55,0xff,0x55,0x08,0xe1,0xff,0x55,0xff,0x55,0x08,0xe2,0xff,0x55,0xff,0x55,0x08,0xe5,0xff,0x55,0xff,0x55,0x08,0xe8,0xff,0x55,0xff,0x55,0x08,0xeb,0xff,0x55, +0xff,0x55,0x08,0xed,0xff,0x55,0xff,0x55,0x08,0xee,0xff,0x55,0xff,0x55,0x08,0xef,0xff,0x55,0xff,0x55,0x08,0xf0,0xff,0x55,0xff,0x55,0x08,0xf1,0xff,0x55,0xff,0x55,0x08,0xf4,0x00,0xab,0x00,0xab,0x08,0xf9,0xff,0x55,0xff,0x55,0x08,0xfa,0xff,0x55,0xff,0x55,0x08,0xff,0xff,0x55,0xff,0x55,0x09,0x01,0xff,0x55,0xff,0x55,0x09,0x06, +0xff,0x55,0xff,0x55,0x09,0x07,0xff,0x55,0xff,0x55,0x09,0x08,0xff,0x55,0xff,0x55,0x09,0x09,0xff,0x55,0xff,0x55,0x09,0x0a,0xff,0x55,0xff,0x55,0x09,0x0c,0xff,0x55,0xff,0x55,0x09,0x0d,0xff,0x55,0xff,0x55,0x09,0x0e,0xff,0x55,0xff,0x55,0x09,0x0f,0xff,0x55,0xff,0x55,0x09,0x10,0xff,0x55,0xff,0x55,0x09,0x11,0xff,0x55,0xff,0x55, +0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x15,0xff,0x55,0xff,0x55,0x09,0x16,0xff,0x55,0xff,0x55,0x09,0x17,0xff,0x55,0xff,0x55,0x09,0x18,0xff,0x55,0xff,0x55,0x09,0x19,0xff,0x55,0xff,0x55,0x09,0x1a,0xff,0x55,0xff,0x55,0x09,0x1b,0xff,0x55,0xff,0x55,0x09,0x1c,0xff,0x55, +0xff,0x55,0x09,0x1d,0xff,0x55,0xff,0x55,0x09,0x1e,0xff,0x55,0xff,0x55,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x22,0xff,0x55,0xff,0x55,0x09,0x24,0xff,0x55,0xff,0x55,0x09,0x26,0xff,0x55,0xff,0x55,0x09,0x28,0xff,0x55,0xff,0x55,0x09,0x29,0xff,0x55,0xff,0x55,0x09,0x2a,0xff,0x55,0xff,0x55,0x09,0x2b, +0xff,0x55,0xff,0x55,0x09,0x34,0xff,0x55,0xff,0x55,0x09,0x3c,0xff,0x55,0xff,0x55,0x09,0x3e,0xff,0x55,0xff,0x55,0x09,0x40,0xff,0x55,0xff,0x55,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab,0x09,0x45,0xff,0x55,0xff,0x55,0x09,0x46,0xff,0x55,0xff,0x55,0x09,0x47,0xff,0x55,0xff,0x55,0x09,0x48,0xff,0x55,0xff,0x55, +0x09,0x49,0xff,0x55,0xff,0x55,0x09,0x4a,0xff,0x55,0xff,0x55,0x09,0x4c,0x00,0xab,0x00,0xab,0x09,0x4e,0xff,0x55,0xff,0x55,0x09,0x5b,0xff,0x55,0xff,0x55,0x09,0x5c,0xff,0x55,0xff,0x55,0x09,0x5d,0xff,0x55,0xff,0x55,0x09,0x5e,0xff,0x55,0xff,0x55,0x09,0x60,0xff,0x55,0xff,0x55,0x09,0x63,0xff,0x55,0xff,0x55,0x09,0x64,0xff,0x55, +0xff,0x55,0x09,0x65,0xff,0x55,0xff,0x55,0x09,0x67,0xff,0x55,0xff,0x55,0x09,0x6c,0xff,0x55,0xff,0x55,0x09,0x6d,0xff,0x55,0xff,0x55,0x09,0x71,0xff,0x55,0xff,0x55,0x09,0x80,0xff,0x55,0xff,0x55,0x09,0x82,0xff,0x55,0xff,0x55,0x09,0x88,0xff,0x55,0xff,0x55,0x09,0x89,0xff,0x55,0xff,0x55,0x09,0x8a,0xff,0x55,0xff,0x55,0x09,0x8c, +0xff,0x55,0xff,0x55,0x09,0x8d,0xff,0x55,0xff,0x55,0x09,0x8e,0xff,0x55,0xff,0x55,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x90,0xff,0x55,0xff,0x55,0x09,0x92,0xff,0x55,0xff,0x55,0x09,0x93,0xff,0x55,0xff,0x55,0x09,0x94,0xff,0x55,0xff,0x55,0x09,0x95,0xff,0x55,0xff,0x55,0x09,0x96,0xff,0x55,0xff,0x55,0x09,0x97,0x00,0xab,0x00,0xab, +0x09,0x98,0x00,0xab,0x00,0xab,0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xaa,0xff,0x55,0xff,0x55,0x09,0xab,0xff,0x55,0xff,0x55,0x09,0xac,0xff,0x55,0xff,0x55,0x09,0xae,0xff,0x55,0xff,0x55,0x09,0xb2,0xff,0x55, +0xff,0x55,0x09,0xb7,0xff,0x55,0xff,0x55,0x09,0xb8,0xff,0x55,0xff,0x55,0x09,0xb9,0xff,0x55,0xff,0x55,0x09,0xba,0xff,0x55,0xff,0x55,0x09,0xbb,0xff,0x55,0xff,0x55,0x09,0xbc,0xff,0x55,0xff,0x55,0x09,0xbd,0xff,0x55,0xff,0x55,0x09,0xbe,0xff,0x55,0xff,0x55,0x09,0xbf,0xff,0x55,0xff,0x55,0x09,0xc0,0xff,0x55,0xff,0x55,0x09,0xc1, +0xff,0x55,0xff,0x55,0x09,0xc2,0xff,0x55,0xff,0x55,0x09,0xc3,0xff,0x55,0xff,0x55,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xc6,0xff,0x55,0xff,0x55,0x09,0xc8,0xff,0x55,0xff,0x55,0x09,0xc9,0xff,0x55,0xff,0x55,0x09,0xca,0xff,0x55,0xff,0x55,0x09,0xcc,0xff,0x55,0xff,0x55,0x09,0xcd,0xff,0x55,0xff,0x55,0x09,0xd2,0xff,0x55,0xff,0x55, +0x09,0xd3,0xff,0x55,0xff,0x55,0x09,0xd7,0xff,0x55,0xff,0x55,0x09,0xd8,0xff,0x55,0xff,0x55,0x09,0xd9,0xff,0x55,0xff,0x55,0x09,0xda,0xff,0x55,0xff,0x55,0x09,0xdb,0xff,0x55,0xff,0x55,0x09,0xdc,0xff,0x55,0xff,0x55,0x09,0xdd,0xff,0x55,0xff,0x55,0x09,0xde,0xff,0x55,0xff,0x55,0x09,0xdf,0xff,0x55,0xff,0x55,0x09,0xe1,0xff,0x55, +0xff,0x55,0x09,0xe2,0xff,0x55,0xff,0x55,0x09,0xe3,0xff,0x55,0xff,0x55,0x09,0xe4,0xff,0x55,0xff,0x55,0x09,0xe5,0xff,0x55,0xff,0x55,0x09,0xe7,0xff,0x55,0xff,0x55,0x09,0xe8,0xff,0x55,0xff,0x55,0x09,0xe9,0xff,0x55,0xff,0x55,0x09,0xea,0xff,0x55,0xff,0x55,0x09,0xec,0xff,0x55,0xff,0x55,0x09,0xee,0xff,0x55,0xff,0x55,0x09,0xf0, +0xff,0x55,0xff,0x55,0x09,0xf2,0x00,0xab,0x00,0xab,0x09,0xf9,0xff,0x55,0xff,0x55,0x09,0xfa,0x00,0xab,0x00,0xab,0x09,0xfe,0xff,0x55,0xff,0x55,0x09,0xff,0xff,0x55,0xff,0x55,0x0a,0x00,0xff,0x55,0xff,0x55,0x0a,0x01,0xff,0x55,0xff,0x55,0x0a,0x02,0xff,0x55,0xff,0x55,0x0a,0x03,0xff,0x55,0xff,0x55,0x0a,0x04,0xff,0x55,0xff,0x55, +0x0a,0x05,0xff,0x55,0xff,0x55,0x0a,0x07,0xff,0x55,0xff,0x55,0x0a,0x0a,0xff,0x55,0xff,0x55,0x0a,0x0b,0xff,0x55,0xff,0x55,0x0a,0x0d,0xff,0x55,0xff,0x55,0x0a,0x24,0xff,0x55,0xff,0x55,0x0a,0x25,0xff,0x55,0xff,0x55,0x0a,0x26,0xff,0x55,0xff,0x55,0x0a,0x27,0xff,0x55,0xff,0x55,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x2a,0xff,0x55, +0xff,0x55,0x0a,0x3e,0xff,0x55,0xff,0x55,0x0a,0x56,0xff,0x55,0xff,0x55,0x0a,0x58,0xff,0x55,0xff,0x55,0x0a,0x5a,0xff,0x55,0xff,0x55,0x0a,0x63,0xff,0x55,0xff,0x55,0x0a,0x72,0xff,0x55,0xff,0x55,0x0a,0x73,0x00,0xab,0x00,0xab,0x0a,0x74,0xff,0x55,0xff,0x55,0x0a,0x76,0xff,0x55,0xff,0x55,0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x78, +0xff,0x55,0xff,0x55,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7a,0xff,0x55,0xff,0x55,0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7c,0xff,0x55,0xff,0x55,0x0a,0x7d,0x00,0xab,0x00,0xab,0x0a,0x7e,0xff,0x55,0xff,0x55,0x0a,0x7f,0xff,0x55,0xff,0x55,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x86,0xff,0x55,0xff,0x55, +0x0a,0x87,0xff,0x55,0xff,0x55,0x0a,0x88,0xff,0x55,0xff,0x55,0x0a,0x89,0xff,0x55,0xff,0x55,0x0a,0x8a,0xff,0x55,0xff,0x55,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8d,0xff,0x55,0xff,0x55,0x0a,0x8f,0x00,0xab,0x00,0xab,0x0a,0x91,0xff,0x55,0xff,0x55,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0x95,0xff,0x55,0xff,0x55,0x0a,0x9d,0xff,0x55, +0xff,0x55,0x0a,0x9e,0xff,0x55,0xff,0x55,0x0a,0xa0,0xff,0x55,0xff,0x55,0x0a,0xa1,0xff,0x55,0xff,0x55,0x0a,0xa3,0xff,0x55,0xff,0x55,0x0a,0xa6,0xff,0x55,0xff,0x55,0x0a,0xa7,0xff,0x55,0xff,0x55,0x0a,0xa8,0xff,0x55,0xff,0x55,0x0a,0xa9,0xff,0x55,0xff,0x55,0x0a,0xab,0x00,0xab,0x00,0xab,0x0a,0xad,0xff,0x55,0xff,0x55,0x0a,0xaf, +0xff,0x55,0xff,0x55,0x0a,0xb2,0xff,0x55,0xff,0x55,0x0a,0xb4,0xff,0x55,0xff,0x55,0x0a,0xb5,0xff,0x55,0xff,0x55,0x0a,0xb6,0xff,0x55,0xff,0x55,0x0a,0xb7,0xff,0x55,0xff,0x55,0x0b,0x19,0xff,0x55,0xff,0x55,0x0e,0x20,0xff,0x55,0xff,0x55,0x0e,0x3a,0xff,0x55,0xff,0x55,0x0e,0x3d,0xff,0x55,0xff,0x55,0x0e,0x3f,0xff,0x55,0xff,0x55, +0x0e,0x41,0xff,0x55,0xff,0x55,0x0e,0x43,0xff,0x55,0xff,0x55,0x0e,0x47,0xff,0x55,0xff,0x55,0x0e,0x49,0x00,0xab,0x00,0xab,0x0e,0x4b,0xff,0x55,0xff,0x55,0x0e,0x4d,0x00,0xab,0x00,0xab,0x0e,0x4f,0xff,0x55,0xff,0x55,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0x5b,0xff,0x55,0xff,0x55,0x0e,0x5c,0xff,0x55,0xff,0x55,0x0e,0x5f,0xff,0x55, +0xff,0x55,0x0e,0x6f,0xff,0x55,0xff,0x55,0x0e,0x71,0xff,0x55,0xff,0x55,0x0e,0x76,0xff,0x55,0xff,0x55,0x0e,0xa3,0xff,0x55,0xff,0x55,0x0e,0xac,0xff,0x55,0xff,0x55,0x0e,0xaf,0xff,0x55,0xff,0x55,0x0e,0xd1,0xff,0x55,0xff,0x55,0x0e,0xd7,0xff,0x55,0xff,0x55,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16, +0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x1e,0xff,0x55,0xff,0x55,0x0f,0x20,0xff,0x55,0xff,0x55,0x0f,0x22,0xff,0x55,0xff,0x55,0x0f,0x24,0x00,0xab,0x00,0xab,0x0f,0x28,0xff,0x55,0xff,0x55,0x0f,0x2a,0xff,0x55,0xff,0x55,0x0f,0x2c,0xff,0x55,0xff,0x55,0x0f,0x2e,0x00,0xab,0x00,0xab,0x0f,0x30,0xff,0x55,0xff,0x55, +0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x34,0xff,0x55,0xff,0x55,0x0f,0x36,0x00,0xab,0x00,0xab,0x0f,0x38,0xff,0x55,0xff,0x55,0x0f,0x3a,0xff,0x55,0xff,0x55,0x0f,0x3c,0xff,0x55,0xff,0x55,0x0f,0x3e,0xff,0x55,0xff,0x55,0x0f,0x40,0x00,0xab,0x00,0xab,0x0f,0x44,0xff,0x55,0xff,0x55,0x0f,0x46,0xff,0x55,0xff,0x55,0x0f,0x48,0xff,0x55, +0xff,0x55,0x0f,0x4a,0xff,0x55,0xff,0x55,0x0f,0x4c,0xff,0x55,0xff,0x55,0x0f,0x4e,0xff,0x55,0xff,0x55,0x0f,0x6c,0xff,0x55,0xff,0x55,0x0f,0x6e,0xff,0x55,0xff,0x55,0x0f,0x70,0xff,0x55,0xff,0x55,0x0f,0x72,0xff,0x55,0xff,0x55,0x0f,0x74,0xff,0x55,0xff,0x55,0x0f,0x76,0xff,0x55,0xff,0x55,0x0f,0x78,0xff,0x55,0xff,0x55,0x0f,0x7a, +0xff,0x55,0xff,0x55,0x0f,0x7c,0xff,0x55,0xff,0x55,0x0f,0x7e,0xff,0x55,0xff,0x55,0x0f,0x80,0xff,0x55,0xff,0x55,0x0f,0x82,0xff,0x55,0xff,0x55,0x0f,0x84,0xff,0x55,0xff,0x55,0x0f,0x86,0xff,0x55,0xff,0x55,0x0f,0x88,0xff,0x55,0xff,0x55,0x0f,0x8a,0xff,0x55,0xff,0x55,0x0f,0x8c,0xff,0x55,0xff,0x55,0x0f,0x8e,0xff,0x55,0xff,0x55, +0x0f,0x90,0xff,0x55,0xff,0x55,0x0f,0x92,0xff,0x55,0xff,0x55,0x0f,0x94,0x00,0xab,0x00,0xab,0x0f,0x96,0xff,0x55,0xff,0x55,0x0f,0xc0,0xff,0x55,0xff,0x55,0x10,0xfe,0xff,0x55,0xff,0x55,0x11,0x00,0xff,0x55,0xff,0x55,0x11,0x02,0xff,0x55,0xff,0x55,0x11,0x04,0xff,0x55,0xff,0x55,0x11,0x06,0xff,0x55,0xff,0x55,0x11,0x08,0xff,0x55, +0xff,0x55,0x11,0x0a,0xff,0x55,0xff,0x55,0x11,0x0c,0xff,0x55,0xff,0x55,0x11,0x0d,0xff,0x55,0xff,0x55,0x11,0x0f,0xff,0x55,0xff,0x55,0x14,0x53,0x00,0xab,0x00,0xab,0x14,0x54,0xff,0x55,0xff,0x55,0x14,0x55,0xff,0x55,0xff,0x55,0x14,0x56,0xff,0x55,0xff,0x55,0x14,0x57,0xff,0x55,0xff,0x55,0x14,0x58,0xff,0x55,0xff,0x55,0x14,0x59, +0xff,0x55,0xff,0x55,0x14,0x5a,0xff,0x55,0xff,0x55,0x14,0x6f,0xff,0x55,0xff,0x55,0x14,0x72,0xff,0x55,0xff,0x55,0x14,0x75,0xff,0x55,0xff,0x55,0x14,0x78,0x00,0xab,0x00,0xab,0x14,0x7b,0xff,0x55,0xff,0x55,0x14,0x83,0xff,0x55,0xff,0x55,0x14,0x86,0xff,0x55,0xff,0x55,0x14,0x97,0xff,0x55,0xff,0x55,0x14,0x98,0xff,0x55,0xff,0x55, +0x00,0x31,0x08,0xf4,0x00,0xab,0x00,0xab,0x09,0x08,0xff,0x55,0xff,0x55,0x09,0x0e,0xff,0x55,0xff,0x55,0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab,0x09,0x4c, +0x00,0xab,0x00,0xab,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x97,0x00,0xab,0x00,0xab,0x09,0x98,0x00,0xab,0x00,0xab,0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xf2,0x00,0xab,0x00,0xab, +0x09,0xfa,0x00,0xab,0x00,0xab,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x73,0x00,0xab,0x00,0xab,0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7d,0x00,0xab,0x00,0xab,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8f,0x00,0xab, +0x00,0xab,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0xab,0x00,0xab,0x00,0xab,0x0e,0x49,0x00,0xab,0x00,0xab,0x0e,0x4d,0x00,0xab,0x00,0xab,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16,0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x24,0x00,0xab,0x00,0xab,0x0f,0x2e, +0x00,0xab,0x00,0xab,0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x36,0x00,0xab,0x00,0xab,0x0f,0x40,0x00,0xab,0x00,0xab,0x0f,0x94,0x00,0xab,0x00,0xab,0x14,0x53,0x00,0xab,0x00,0xab,0x14,0x78,0x00,0xab,0x00,0xab,0x01,0x32,0x08,0xd4,0xff,0x55,0xff,0x55,0x08,0xd5,0xff,0x55,0xff,0x55,0x08,0xd6,0xff,0x55,0xff,0x55,0x08,0xe1,0xff,0x55, +0xff,0x55,0x08,0xe2,0xff,0x55,0xff,0x55,0x08,0xe5,0xff,0x55,0xff,0x55,0x08,0xe8,0xff,0x55,0xff,0x55,0x08,0xeb,0xff,0x55,0xff,0x55,0x08,0xed,0xff,0x55,0xff,0x55,0x08,0xee,0xff,0x55,0xff,0x55,0x08,0xef,0xff,0x55,0xff,0x55,0x08,0xf0,0xff,0x55,0xff,0x55,0x08,0xf1,0xff,0x55,0xff,0x55,0x08,0xf4,0x00,0xab,0x00,0xab,0x08,0xf9, +0xff,0x55,0xff,0x55,0x08,0xfa,0xff,0x55,0xff,0x55,0x08,0xff,0xff,0x55,0xff,0x55,0x09,0x01,0xff,0x55,0xff,0x55,0x09,0x06,0xff,0x55,0xff,0x55,0x09,0x07,0xff,0x55,0xff,0x55,0x09,0x08,0xff,0x55,0xff,0x55,0x09,0x09,0xff,0x55,0xff,0x55,0x09,0x0a,0xff,0x55,0xff,0x55,0x09,0x0c,0xff,0x55,0xff,0x55,0x09,0x0d,0xff,0x55,0xff,0x55, +0x09,0x0e,0xff,0x55,0xff,0x55,0x09,0x0f,0xff,0x55,0xff,0x55,0x09,0x10,0xff,0x55,0xff,0x55,0x09,0x11,0xff,0x55,0xff,0x55,0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x15,0xff,0x55,0xff,0x55,0x09,0x16,0xff,0x55,0xff,0x55,0x09,0x17,0xff,0x55,0xff,0x55,0x09,0x18,0xff,0x55, +0xff,0x55,0x09,0x19,0xff,0x55,0xff,0x55,0x09,0x1a,0xff,0x55,0xff,0x55,0x09,0x1b,0xff,0x55,0xff,0x55,0x09,0x1c,0xff,0x55,0xff,0x55,0x09,0x1d,0xff,0x55,0xff,0x55,0x09,0x1e,0xff,0x55,0xff,0x55,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x22,0xff,0x55,0xff,0x55,0x09,0x24,0xff,0x55,0xff,0x55,0x09,0x26, +0xff,0x55,0xff,0x55,0x09,0x28,0xff,0x55,0xff,0x55,0x09,0x29,0xff,0x55,0xff,0x55,0x09,0x2a,0xff,0x55,0xff,0x55,0x09,0x2b,0xff,0x55,0xff,0x55,0x09,0x34,0xff,0x55,0xff,0x55,0x09,0x3c,0xff,0x55,0xff,0x55,0x09,0x3e,0xff,0x55,0xff,0x55,0x09,0x40,0xff,0x55,0xff,0x55,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab, +0x09,0x45,0xff,0x55,0xff,0x55,0x09,0x46,0xff,0x55,0xff,0x55,0x09,0x47,0xff,0x55,0xff,0x55,0x09,0x48,0xff,0x55,0xff,0x55,0x09,0x49,0xff,0x55,0xff,0x55,0x09,0x4a,0xff,0x55,0xff,0x55,0x09,0x4c,0x00,0xab,0x00,0xab,0x09,0x4e,0xff,0x55,0xff,0x55,0x09,0x5b,0xff,0x55,0xff,0x55,0x09,0x5d,0xff,0x55,0xff,0x55,0x09,0x5e,0xff,0x55, +0xff,0x55,0x09,0x60,0xff,0x55,0xff,0x55,0x09,0x63,0xff,0x55,0xff,0x55,0x09,0x64,0xff,0x55,0xff,0x55,0x09,0x6c,0xff,0x55,0xff,0x55,0x09,0x6d,0xff,0x55,0xff,0x55,0x09,0x71,0xff,0x55,0xff,0x55,0x09,0x80,0xff,0x55,0xff,0x55,0x09,0x82,0xff,0x55,0xff,0x55,0x09,0x88,0xff,0x55,0xff,0x55,0x09,0x89,0xff,0x55,0xff,0x55,0x09,0x8a, +0xff,0x55,0xff,0x55,0x09,0x8c,0xff,0x55,0xff,0x55,0x09,0x8d,0xff,0x55,0xff,0x55,0x09,0x8e,0xff,0x55,0xff,0x55,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x90,0xff,0x55,0xff,0x55,0x09,0x92,0xff,0x55,0xff,0x55,0x09,0x94,0xff,0x55,0xff,0x55,0x09,0x96,0xff,0x55,0xff,0x55,0x09,0x97,0x00,0xab,0x00,0xab,0x09,0x98,0x00,0xab,0x00,0xab, +0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xaa,0xff,0x55,0xff,0x55,0x09,0xab,0xff,0x55,0xff,0x55,0x09,0xac,0xff,0x55,0xff,0x55,0x09,0xae,0xff,0x55,0xff,0x55,0x09,0xb2,0xff,0x55,0xff,0x55,0x09,0xb7,0xff,0x55, +0xff,0x55,0x09,0xb8,0xff,0x55,0xff,0x55,0x09,0xb9,0xff,0x55,0xff,0x55,0x09,0xba,0xff,0x55,0xff,0x55,0x09,0xbb,0xff,0x55,0xff,0x55,0x09,0xbc,0xff,0x55,0xff,0x55,0x09,0xbd,0xff,0x55,0xff,0x55,0x09,0xbe,0xff,0x55,0xff,0x55,0x09,0xbf,0xff,0x55,0xff,0x55,0x09,0xc0,0xff,0x55,0xff,0x55,0x09,0xc1,0xff,0x55,0xff,0x55,0x09,0xc2, +0xff,0x55,0xff,0x55,0x09,0xc3,0xff,0x55,0xff,0x55,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xc6,0xff,0x55,0xff,0x55,0x09,0xc8,0xff,0x55,0xff,0x55,0x09,0xc9,0xff,0x55,0xff,0x55,0x09,0xca,0xff,0x55,0xff,0x55,0x09,0xcc,0xff,0x55,0xff,0x55,0x09,0xcd,0xff,0x55,0xff,0x55,0x09,0xd2,0xff,0x55,0xff,0x55,0x09,0xd3,0xff,0x55,0xff,0x55, +0x09,0xd7,0xff,0x55,0xff,0x55,0x09,0xd8,0xff,0x55,0xff,0x55,0x09,0xd9,0xff,0x55,0xff,0x55,0x09,0xda,0xff,0x55,0xff,0x55,0x09,0xdb,0xff,0x55,0xff,0x55,0x09,0xdc,0xff,0x55,0xff,0x55,0x09,0xdd,0xff,0x55,0xff,0x55,0x09,0xde,0xff,0x55,0xff,0x55,0x09,0xdf,0xff,0x55,0xff,0x55,0x09,0xe1,0xff,0x55,0xff,0x55,0x09,0xe2,0xff,0x55, +0xff,0x55,0x09,0xe3,0xff,0x55,0xff,0x55,0x09,0xe4,0xff,0x55,0xff,0x55,0x09,0xe5,0xff,0x55,0xff,0x55,0x09,0xe7,0xff,0x55,0xff,0x55,0x09,0xe8,0xff,0x55,0xff,0x55,0x09,0xe9,0xff,0x55,0xff,0x55,0x09,0xea,0xff,0x55,0xff,0x55,0x09,0xec,0xff,0x55,0xff,0x55,0x09,0xee,0xff,0x55,0xff,0x55,0x09,0xf0,0xff,0x55,0xff,0x55,0x09,0xf2, +0x00,0xab,0x00,0xab,0x09,0xfa,0x00,0xab,0x00,0xab,0x09,0xfe,0xff,0x55,0xff,0x55,0x09,0xff,0xff,0x55,0xff,0x55,0x0a,0x00,0xff,0x55,0xff,0x55,0x0a,0x01,0xff,0x55,0xff,0x55,0x0a,0x02,0xff,0x55,0xff,0x55,0x0a,0x03,0xff,0x55,0xff,0x55,0x0a,0x04,0xff,0x55,0xff,0x55,0x0a,0x05,0xff,0x55,0xff,0x55,0x0a,0x07,0xff,0x55,0xff,0x55, +0x0a,0x0a,0xff,0x55,0xff,0x55,0x0a,0x0b,0xff,0x55,0xff,0x55,0x0a,0x0d,0xff,0x55,0xff,0x55,0x0a,0x24,0xff,0x55,0xff,0x55,0x0a,0x25,0xff,0x55,0xff,0x55,0x0a,0x26,0xff,0x55,0xff,0x55,0x0a,0x27,0xff,0x55,0xff,0x55,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x2a,0xff,0x55,0xff,0x55,0x0a,0x3e,0xff,0x55,0xff,0x55,0x0a,0x56,0xff,0x55, +0xff,0x55,0x0a,0x58,0xff,0x55,0xff,0x55,0x0a,0x5a,0xff,0x55,0xff,0x55,0x0a,0x63,0xff,0x55,0xff,0x55,0x0a,0x72,0xff,0x55,0xff,0x55,0x0a,0x73,0x00,0xab,0x00,0xab,0x0a,0x74,0xff,0x55,0xff,0x55,0x0a,0x76,0xff,0x55,0xff,0x55,0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x78,0xff,0x55,0xff,0x55,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7a, +0xff,0x55,0xff,0x55,0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7c,0xff,0x55,0xff,0x55,0x0a,0x7d,0x00,0xab,0x00,0xab,0x0a,0x7e,0xff,0x55,0xff,0x55,0x0a,0x7f,0xff,0x55,0xff,0x55,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x86,0xff,0x55,0xff,0x55,0x0a,0x87,0xff,0x55,0xff,0x55,0x0a,0x88,0xff,0x55,0xff,0x55, +0x0a,0x89,0xff,0x55,0xff,0x55,0x0a,0x8a,0xff,0x55,0xff,0x55,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8d,0xff,0x55,0xff,0x55,0x0a,0x8f,0x00,0xab,0x00,0xab,0x0a,0x91,0xff,0x55,0xff,0x55,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0x95,0xff,0x55,0xff,0x55,0x0a,0x9d,0xff,0x55,0xff,0x55,0x0a,0x9e,0xff,0x55,0xff,0x55,0x0a,0xa0,0xff,0x55, +0xff,0x55,0x0a,0xa1,0xff,0x55,0xff,0x55,0x0a,0xa3,0xff,0x55,0xff,0x55,0x0a,0xa6,0xff,0x55,0xff,0x55,0x0a,0xa7,0xff,0x55,0xff,0x55,0x0a,0xa8,0xff,0x55,0xff,0x55,0x0a,0xa9,0xff,0x55,0xff,0x55,0x0a,0xab,0x00,0xab,0x00,0xab,0x0a,0xad,0xff,0x55,0xff,0x55,0x0a,0xaf,0xff,0x55,0xff,0x55,0x0a,0xb2,0xff,0x55,0xff,0x55,0x0a,0xb4, +0xff,0x55,0xff,0x55,0x0a,0xb5,0xff,0x55,0xff,0x55,0x0a,0xb6,0xff,0x55,0xff,0x55,0x0a,0xb7,0xff,0x55,0xff,0x55,0x0b,0x19,0xff,0x55,0xff,0x55,0x0e,0x20,0xff,0x55,0xff,0x55,0x0e,0x3a,0xff,0x55,0xff,0x55,0x0e,0x3d,0xff,0x55,0xff,0x55,0x0e,0x3f,0xff,0x55,0xff,0x55,0x0e,0x41,0xff,0x55,0xff,0x55,0x0e,0x43,0xff,0x55,0xff,0x55, +0x0e,0x47,0xff,0x55,0xff,0x55,0x0e,0x49,0x00,0xab,0x00,0xab,0x0e,0x4b,0xff,0x55,0xff,0x55,0x0e,0x4d,0x00,0xab,0x00,0xab,0x0e,0x4f,0xff,0x55,0xff,0x55,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0x5b,0xff,0x55,0xff,0x55,0x0e,0x5c,0xff,0x55,0xff,0x55,0x0e,0x5f,0xff,0x55,0xff,0x55,0x0e,0x6f,0xff,0x55,0xff,0x55,0x0e,0x71,0xff,0x55, +0xff,0x55,0x0e,0x76,0xff,0x55,0xff,0x55,0x0e,0xa3,0xff,0x55,0xff,0x55,0x0e,0xac,0xff,0x55,0xff,0x55,0x0e,0xaf,0xff,0x55,0xff,0x55,0x0e,0xd7,0xff,0x55,0xff,0x55,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16,0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x1e,0xff,0x55,0xff,0x55,0x0f,0x20, +0xff,0x55,0xff,0x55,0x0f,0x22,0xff,0x55,0xff,0x55,0x0f,0x24,0x00,0xab,0x00,0xab,0x0f,0x28,0xff,0x55,0xff,0x55,0x0f,0x2a,0xff,0x55,0xff,0x55,0x0f,0x2c,0xff,0x55,0xff,0x55,0x0f,0x2e,0x00,0xab,0x00,0xab,0x0f,0x30,0xff,0x55,0xff,0x55,0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x34,0xff,0x55,0xff,0x55,0x0f,0x36,0x00,0xab,0x00,0xab, +0x0f,0x38,0xff,0x55,0xff,0x55,0x0f,0x3a,0xff,0x55,0xff,0x55,0x0f,0x40,0x00,0xab,0x00,0xab,0x0f,0x44,0xff,0x55,0xff,0x55,0x0f,0x46,0xff,0x55,0xff,0x55,0x0f,0x48,0xff,0x55,0xff,0x55,0x0f,0x4a,0xff,0x55,0xff,0x55,0x0f,0x4c,0xff,0x55,0xff,0x55,0x0f,0x4e,0xff,0x55,0xff,0x55,0x0f,0x6c,0xff,0x55,0xff,0x55,0x0f,0x6e,0xff,0x55, +0xff,0x55,0x0f,0x70,0xff,0x55,0xff,0x55,0x0f,0x72,0xff,0x55,0xff,0x55,0x0f,0x74,0xff,0x55,0xff,0x55,0x0f,0x76,0xff,0x55,0xff,0x55,0x0f,0x78,0xff,0x55,0xff,0x55,0x0f,0x7a,0xff,0x55,0xff,0x55,0x0f,0x7c,0xff,0x55,0xff,0x55,0x0f,0x7e,0xff,0x55,0xff,0x55,0x0f,0x80,0xff,0x55,0xff,0x55,0x0f,0x82,0xff,0x55,0xff,0x55,0x0f,0x84, +0xff,0x55,0xff,0x55,0x0f,0x86,0xff,0x55,0xff,0x55,0x0f,0x88,0xff,0x55,0xff,0x55,0x0f,0x8a,0xff,0x55,0xff,0x55,0x0f,0x8c,0xff,0x55,0xff,0x55,0x0f,0x8e,0xff,0x55,0xff,0x55,0x0f,0x90,0xff,0x55,0xff,0x55,0x0f,0x92,0xff,0x55,0xff,0x55,0x0f,0x94,0x00,0xab,0x00,0xab,0x0f,0x96,0xff,0x55,0xff,0x55,0x0f,0xc0,0xff,0x55,0xff,0x55, +0x10,0xfe,0xff,0x55,0xff,0x55,0x11,0x00,0xff,0x55,0xff,0x55,0x11,0x02,0xff,0x55,0xff,0x55,0x11,0x04,0xff,0x55,0xff,0x55,0x11,0x06,0xff,0x55,0xff,0x55,0x11,0x08,0xff,0x55,0xff,0x55,0x11,0x0a,0xff,0x55,0xff,0x55,0x11,0x0c,0xff,0x55,0xff,0x55,0x11,0x0d,0xff,0x55,0xff,0x55,0x11,0x0f,0xff,0x55,0xff,0x55,0x14,0x53,0x00,0xab, +0x00,0xab,0x14,0x54,0xff,0x55,0xff,0x55,0x14,0x55,0xff,0x55,0xff,0x55,0x14,0x56,0xff,0x55,0xff,0x55,0x14,0x57,0xff,0x55,0xff,0x55,0x14,0x58,0xff,0x55,0xff,0x55,0x14,0x59,0xff,0x55,0xff,0x55,0x14,0x5a,0xff,0x55,0xff,0x55,0x14,0x6f,0xff,0x55,0xff,0x55,0x14,0x72,0xff,0x55,0xff,0x55,0x14,0x78,0x00,0xab,0x00,0xab,0x14,0x83, +0xff,0x55,0xff,0x55,0x14,0x86,0xff,0x55,0xff,0x55,0x14,0x97,0xff,0x55,0xff,0x55,0x14,0x98,0xff,0x55,0xff,0x55,0x00,0x9a,0x08,0xd6,0xff,0x55,0xff,0x55,0x08,0xe1,0xff,0x55,0xff,0x55,0x08,0xe2,0xff,0x55,0xff,0x55,0x08,0xe5,0xff,0x55,0xff,0x55,0x08,0xe8,0xff,0x55,0xff,0x55,0x08,0xeb,0xff,0x55,0xff,0x55,0x08,0xef,0xff,0x55, +0xff,0x55,0x08,0xf1,0xff,0x55,0xff,0x55,0x08,0xf4,0x00,0xab,0x00,0xab,0x09,0x07,0xff,0x55,0xff,0x55,0x09,0x0e,0xff,0x55,0xff,0x55,0x09,0x10,0xff,0x55,0xff,0x55,0x09,0x11,0xff,0x55,0xff,0x55,0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x15,0xff,0x55,0xff,0x55,0x09,0x16, +0xff,0x55,0xff,0x55,0x09,0x1b,0xff,0x55,0xff,0x55,0x09,0x1c,0xff,0x55,0xff,0x55,0x09,0x1d,0xff,0x55,0xff,0x55,0x09,0x1e,0xff,0x55,0xff,0x55,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x22,0xff,0x55,0xff,0x55,0x09,0x26,0xff,0x55,0xff,0x55,0x09,0x28,0xff,0x55,0xff,0x55,0x09,0x3c,0xff,0x55,0xff,0x55, +0x09,0x3e,0xff,0x55,0xff,0x55,0x09,0x40,0xff,0x55,0xff,0x55,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab,0x09,0x4c,0x00,0xab,0x00,0xab,0x09,0x4e,0xff,0x55,0xff,0x55,0x09,0x5b,0xff,0x55,0xff,0x55,0x09,0x5d,0xff,0x55,0xff,0x55,0x09,0x60,0xff,0x55,0xff,0x55,0x09,0x63,0xff,0x55,0xff,0x55,0x09,0x65,0xff,0x55, +0xff,0x55,0x09,0x67,0xff,0x55,0xff,0x55,0x09,0x6c,0xff,0x55,0xff,0x55,0x09,0x6d,0xff,0x55,0xff,0x55,0x09,0x8c,0xff,0x55,0xff,0x55,0x09,0x8e,0xff,0x55,0xff,0x55,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x90,0xff,0x55,0xff,0x55,0x09,0x92,0xff,0x55,0xff,0x55,0x09,0x94,0xff,0x55,0xff,0x55,0x09,0x96,0xff,0x55,0xff,0x55,0x09,0x97, +0x00,0xab,0x00,0xab,0x09,0x98,0x00,0xab,0x00,0xab,0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xaa,0xff,0x55,0xff,0x55,0x09,0xab,0xff,0x55,0xff,0x55,0x09,0xac,0xff,0x55,0xff,0x55,0x09,0xae,0xff,0x55,0xff,0x55, +0x09,0xbf,0xff,0x55,0xff,0x55,0x09,0xc0,0xff,0x55,0xff,0x55,0x09,0xc1,0xff,0x55,0xff,0x55,0x09,0xc2,0xff,0x55,0xff,0x55,0x09,0xc3,0xff,0x55,0xff,0x55,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xc6,0xff,0x55,0xff,0x55,0x09,0xc8,0xff,0x55,0xff,0x55,0x09,0xc9,0xff,0x55,0xff,0x55,0x09,0xca,0xff,0x55,0xff,0x55,0x09,0xcc,0xff,0x55, +0xff,0x55,0x09,0xcd,0xff,0x55,0xff,0x55,0x09,0xd2,0xff,0x55,0xff,0x55,0x09,0xd3,0xff,0x55,0xff,0x55,0x09,0xd7,0xff,0x55,0xff,0x55,0x09,0xd8,0xff,0x55,0xff,0x55,0x09,0xf2,0x00,0xab,0x00,0xab,0x09,0xfa,0x00,0xab,0x00,0xab,0x0a,0x26,0xff,0x55,0xff,0x55,0x0a,0x27,0xff,0x55,0xff,0x55,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x2a, +0xff,0x55,0xff,0x55,0x0a,0x58,0xff,0x55,0xff,0x55,0x0a,0x5a,0xff,0x55,0xff,0x55,0x0a,0x72,0xff,0x55,0xff,0x55,0x0a,0x73,0x00,0xab,0x00,0xab,0x0a,0x74,0xff,0x55,0xff,0x55,0x0a,0x76,0xff,0x55,0xff,0x55,0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x78,0xff,0x55,0xff,0x55,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7a,0xff,0x55,0xff,0x55, +0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7c,0xff,0x55,0xff,0x55,0x0a,0x7d,0x00,0xab,0x00,0xab,0x0a,0x7e,0xff,0x55,0xff,0x55,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x86,0xff,0x55,0xff,0x55,0x0a,0x87,0xff,0x55,0xff,0x55,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8d,0xff,0x55,0xff,0x55,0x0a,0x8f,0x00,0xab, +0x00,0xab,0x0a,0x91,0xff,0x55,0xff,0x55,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0x95,0xff,0x55,0xff,0x55,0x0a,0xa6,0xff,0x55,0xff,0x55,0x0a,0xa7,0xff,0x55,0xff,0x55,0x0a,0xa8,0xff,0x55,0xff,0x55,0x0a,0xa9,0xff,0x55,0xff,0x55,0x0a,0xab,0x00,0xab,0x00,0xab,0x0b,0x19,0xff,0x55,0xff,0x55,0x0e,0x3a,0xff,0x55,0xff,0x55,0x0e,0x3d, +0xff,0x55,0xff,0x55,0x0e,0x49,0x00,0xab,0x00,0xab,0x0e,0x4d,0x00,0xab,0x00,0xab,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0x5b,0xff,0x55,0xff,0x55,0x0e,0x5c,0xff,0x55,0xff,0x55,0x0e,0x5f,0xff,0x55,0xff,0x55,0x0e,0x6f,0xff,0x55,0xff,0x55,0x0e,0x71,0xff,0x55,0xff,0x55,0x0e,0xa3,0xff,0x55,0xff,0x55,0x0e,0xac,0xff,0x55,0xff,0x55, +0x0e,0xaf,0xff,0x55,0xff,0x55,0x0e,0xd7,0xff,0x55,0xff,0x55,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16,0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x24,0x00,0xab,0x00,0xab,0x0f,0x2e,0x00,0xab,0x00,0xab,0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x36,0x00,0xab,0x00,0xab,0x0f,0x3c,0xff,0x55, +0xff,0x55,0x0f,0x3e,0xff,0x55,0xff,0x55,0x0f,0x40,0x00,0xab,0x00,0xab,0x0f,0x82,0xff,0x55,0xff,0x55,0x0f,0x84,0xff,0x55,0xff,0x55,0x0f,0x86,0xff,0x55,0xff,0x55,0x0f,0x88,0xff,0x55,0xff,0x55,0x0f,0x8a,0xff,0x55,0xff,0x55,0x0f,0x94,0x00,0xab,0x00,0xab,0x14,0x53,0x00,0xab,0x00,0xab,0x14,0x55,0xff,0x55,0xff,0x55,0x14,0x56, +0xff,0x55,0xff,0x55,0x14,0x57,0xff,0x55,0xff,0x55,0x14,0x5a,0xff,0x55,0xff,0x55,0x14,0x6f,0xff,0x55,0xff,0x55,0x14,0x78,0x00,0xab,0x00,0xab,0x14,0x83,0xff,0x55,0xff,0x55,0x14,0x86,0xff,0x55,0xff,0x55,0x14,0x97,0xff,0x55,0xff,0x55,0x14,0x98,0xff,0x55,0xff,0x55,0x00,0x30,0x08,0xf4,0x00,0xab,0x00,0xab,0x09,0x0e,0xff,0x55, +0xff,0x55,0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab,0x09,0x4c,0x00,0xab,0x00,0xab,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x97,0x00,0xab,0x00,0xab,0x09,0x98, +0x00,0xab,0x00,0xab,0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xf2,0x00,0xab,0x00,0xab,0x09,0xfa,0x00,0xab,0x00,0xab,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x73,0x00,0xab,0x00,0xab, +0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7d,0x00,0xab,0x00,0xab,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8f,0x00,0xab,0x00,0xab,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0xab,0x00,0xab,0x00,0xab,0x0e,0x49,0x00,0xab, +0x00,0xab,0x0e,0x4d,0x00,0xab,0x00,0xab,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16,0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x24,0x00,0xab,0x00,0xab,0x0f,0x2e,0x00,0xab,0x00,0xab,0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x36,0x00,0xab,0x00,0xab,0x0f,0x40, +0x00,0xab,0x00,0xab,0x0f,0x94,0x00,0xab,0x00,0xab,0x14,0x53,0x00,0xab,0x00,0xab,0x14,0x78,0x00,0xab,0x00,0xab,0x01,0x3f,0x08,0xcc,0xff,0x55,0xff,0x55,0x08,0xcd,0xff,0x55,0xff,0x55,0x08,0xd4,0xff,0x55,0xff,0x55,0x08,0xd5,0xff,0x55,0xff,0x55,0x08,0xd6,0xff,0x55,0xff,0x55,0x08,0xe1,0xff,0x55,0xff,0x55,0x08,0xe2,0xff,0x55, +0xff,0x55,0x08,0xe5,0xff,0x55,0xff,0x55,0x08,0xe8,0xff,0x55,0xff,0x55,0x08,0xeb,0xff,0x55,0xff,0x55,0x08,0xed,0xff,0x55,0xff,0x55,0x08,0xee,0xff,0x55,0xff,0x55,0x08,0xef,0xff,0x55,0xff,0x55,0x08,0xf0,0xff,0x55,0xff,0x55,0x08,0xf1,0xff,0x55,0xff,0x55,0x08,0xf4,0x00,0xab,0x00,0xab,0x08,0xf9,0xff,0x55,0xff,0x55,0x08,0xfa, +0xff,0x55,0xff,0x55,0x08,0xff,0xff,0x55,0xff,0x55,0x09,0x01,0xff,0x55,0xff,0x55,0x09,0x06,0xff,0x55,0xff,0x55,0x09,0x07,0xff,0x55,0xff,0x55,0x09,0x08,0xff,0x55,0xff,0x55,0x09,0x09,0xff,0x55,0xff,0x55,0x09,0x0a,0xff,0x55,0xff,0x55,0x09,0x0c,0xff,0x55,0xff,0x55,0x09,0x0d,0xff,0x55,0xff,0x55,0x09,0x0f,0xff,0x55,0xff,0x55, +0x09,0x10,0xff,0x55,0xff,0x55,0x09,0x11,0xff,0x55,0xff,0x55,0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x15,0xff,0x55,0xff,0x55,0x09,0x16,0xff,0x55,0xff,0x55,0x09,0x17,0xff,0x55,0xff,0x55,0x09,0x18,0xff,0x55,0xff,0x55,0x09,0x19,0xff,0x55,0xff,0x55,0x09,0x1a,0xff,0x55, +0xff,0x55,0x09,0x1b,0xff,0x55,0xff,0x55,0x09,0x1c,0xff,0x55,0xff,0x55,0x09,0x1d,0xff,0x55,0xff,0x55,0x09,0x1e,0xff,0x55,0xff,0x55,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x22,0xff,0x55,0xff,0x55,0x09,0x24,0xff,0x55,0xff,0x55,0x09,0x26,0xff,0x55,0xff,0x55,0x09,0x28,0xff,0x55,0xff,0x55,0x09,0x29, +0xff,0x55,0xff,0x55,0x09,0x2a,0xff,0x55,0xff,0x55,0x09,0x2b,0xff,0x55,0xff,0x55,0x09,0x34,0xff,0x55,0xff,0x55,0x09,0x3c,0xff,0x55,0xff,0x55,0x09,0x3e,0xff,0x55,0xff,0x55,0x09,0x40,0xff,0x55,0xff,0x55,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab,0x09,0x45,0xff,0x55,0xff,0x55,0x09,0x46,0xff,0x55,0xff,0x55, +0x09,0x47,0xff,0x55,0xff,0x55,0x09,0x48,0xff,0x55,0xff,0x55,0x09,0x49,0xff,0x55,0xff,0x55,0x09,0x4a,0xff,0x55,0xff,0x55,0x09,0x4c,0x00,0xab,0x00,0xab,0x09,0x4e,0xff,0x55,0xff,0x55,0x09,0x5b,0xff,0x55,0xff,0x55,0x09,0x5c,0xff,0x55,0xff,0x55,0x09,0x5d,0xff,0x55,0xff,0x55,0x09,0x5e,0xff,0x55,0xff,0x55,0x09,0x60,0xff,0x55, +0xff,0x55,0x09,0x63,0xff,0x55,0xff,0x55,0x09,0x64,0xff,0x55,0xff,0x55,0x09,0x6c,0xff,0x55,0xff,0x55,0x09,0x6d,0xff,0x55,0xff,0x55,0x09,0x71,0xff,0x55,0xff,0x55,0x09,0x80,0xff,0x55,0xff,0x55,0x09,0x82,0xff,0x55,0xff,0x55,0x09,0x88,0xff,0x55,0xff,0x55,0x09,0x89,0xff,0x55,0xff,0x55,0x09,0x8a,0xff,0x55,0xff,0x55,0x09,0x8c, +0xff,0x55,0xff,0x55,0x09,0x8d,0xff,0x55,0xff,0x55,0x09,0x8e,0xff,0x55,0xff,0x55,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x90,0xff,0x55,0xff,0x55,0x09,0x92,0xff,0x55,0xff,0x55,0x09,0x93,0xff,0x55,0xff,0x55,0x09,0x94,0xff,0x55,0xff,0x55,0x09,0x95,0xff,0x55,0xff,0x55,0x09,0x96,0xff,0x55,0xff,0x55,0x09,0x97,0x00,0xab,0x00,0xab, +0x09,0x98,0x00,0xab,0x00,0xab,0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xaa,0xff,0x55,0xff,0x55,0x09,0xab,0xff,0x55,0xff,0x55,0x09,0xac,0xff,0x55,0xff,0x55,0x09,0xae,0xff,0x55,0xff,0x55,0x09,0xb2,0xff,0x55, +0xff,0x55,0x09,0xb3,0xff,0x55,0xff,0x55,0x09,0xb4,0xff,0x55,0xff,0x55,0x09,0xb5,0xff,0x55,0xff,0x55,0x09,0xb6,0xff,0x55,0xff,0x55,0x09,0xb7,0xff,0x55,0xff,0x55,0x09,0xb8,0xff,0x55,0xff,0x55,0x09,0xb9,0xff,0x55,0xff,0x55,0x09,0xba,0xff,0x55,0xff,0x55,0x09,0xbb,0xff,0x55,0xff,0x55,0x09,0xbc,0xff,0x55,0xff,0x55,0x09,0xbd, +0xff,0x55,0xff,0x55,0x09,0xbe,0xff,0x55,0xff,0x55,0x09,0xbf,0xff,0x55,0xff,0x55,0x09,0xc0,0xff,0x55,0xff,0x55,0x09,0xc1,0xff,0x55,0xff,0x55,0x09,0xc2,0xff,0x55,0xff,0x55,0x09,0xc3,0xff,0x55,0xff,0x55,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xc6,0xff,0x55,0xff,0x55,0x09,0xc8,0xff,0x55,0xff,0x55,0x09,0xc9,0xff,0x55,0xff,0x55, +0x09,0xca,0xff,0x55,0xff,0x55,0x09,0xcc,0xff,0x55,0xff,0x55,0x09,0xcd,0xff,0x55,0xff,0x55,0x09,0xd2,0xff,0x55,0xff,0x55,0x09,0xd3,0xff,0x55,0xff,0x55,0x09,0xd7,0xff,0x55,0xff,0x55,0x09,0xd8,0xff,0x55,0xff,0x55,0x09,0xd9,0xff,0x55,0xff,0x55,0x09,0xda,0xff,0x55,0xff,0x55,0x09,0xdb,0xff,0x55,0xff,0x55,0x09,0xdc,0xff,0x55, +0xff,0x55,0x09,0xdd,0xff,0x55,0xff,0x55,0x09,0xde,0xff,0x55,0xff,0x55,0x09,0xdf,0xff,0x55,0xff,0x55,0x09,0xe1,0xff,0x55,0xff,0x55,0x09,0xe2,0xff,0x55,0xff,0x55,0x09,0xe3,0xff,0x55,0xff,0x55,0x09,0xe4,0xff,0x55,0xff,0x55,0x09,0xe5,0xff,0x55,0xff,0x55,0x09,0xe7,0xff,0x55,0xff,0x55,0x09,0xe8,0xff,0x55,0xff,0x55,0x09,0xe9, +0xff,0x55,0xff,0x55,0x09,0xea,0xff,0x55,0xff,0x55,0x09,0xec,0xff,0x55,0xff,0x55,0x09,0xee,0xff,0x55,0xff,0x55,0x09,0xf0,0xff,0x55,0xff,0x55,0x09,0xf2,0x00,0xab,0x00,0xab,0x09,0xf9,0xff,0x55,0xff,0x55,0x09,0xfa,0x00,0xab,0x00,0xab,0x09,0xfd,0xff,0x55,0xff,0x55,0x09,0xfe,0xff,0x55,0xff,0x55,0x09,0xff,0xff,0x55,0xff,0x55, +0x0a,0x00,0xff,0x55,0xff,0x55,0x0a,0x01,0xff,0x55,0xff,0x55,0x0a,0x02,0xff,0x55,0xff,0x55,0x0a,0x03,0xff,0x55,0xff,0x55,0x0a,0x04,0xff,0x55,0xff,0x55,0x0a,0x05,0xff,0x55,0xff,0x55,0x0a,0x07,0xff,0x55,0xff,0x55,0x0a,0x0a,0xff,0x55,0xff,0x55,0x0a,0x0b,0xff,0x55,0xff,0x55,0x0a,0x0d,0xff,0x55,0xff,0x55,0x0a,0x24,0xff,0x55, +0xff,0x55,0x0a,0x25,0xff,0x55,0xff,0x55,0x0a,0x26,0xff,0x55,0xff,0x55,0x0a,0x27,0xff,0x55,0xff,0x55,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x2a,0xff,0x55,0xff,0x55,0x0a,0x3e,0xff,0x55,0xff,0x55,0x0a,0x56,0xff,0x55,0xff,0x55,0x0a,0x58,0xff,0x55,0xff,0x55,0x0a,0x5a,0xff,0x55,0xff,0x55,0x0a,0x63,0xff,0x55,0xff,0x55,0x0a,0x72, +0xff,0x55,0xff,0x55,0x0a,0x73,0x00,0xab,0x00,0xab,0x0a,0x74,0xff,0x55,0xff,0x55,0x0a,0x76,0xff,0x55,0xff,0x55,0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x78,0xff,0x55,0xff,0x55,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7a,0xff,0x55,0xff,0x55,0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7c,0xff,0x55,0xff,0x55,0x0a,0x7d,0x00,0xab,0x00,0xab, +0x0a,0x7e,0xff,0x55,0xff,0x55,0x0a,0x7f,0xff,0x55,0xff,0x55,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x86,0xff,0x55,0xff,0x55,0x0a,0x87,0xff,0x55,0xff,0x55,0x0a,0x88,0xff,0x55,0xff,0x55,0x0a,0x89,0xff,0x55,0xff,0x55,0x0a,0x8a,0xff,0x55,0xff,0x55,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8d,0xff,0x55, +0xff,0x55,0x0a,0x8f,0x00,0xab,0x00,0xab,0x0a,0x91,0xff,0x55,0xff,0x55,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0x95,0xff,0x55,0xff,0x55,0x0a,0x9d,0xff,0x55,0xff,0x55,0x0a,0x9e,0xff,0x55,0xff,0x55,0x0a,0xa0,0xff,0x55,0xff,0x55,0x0a,0xa1,0xff,0x55,0xff,0x55,0x0a,0xa3,0xff,0x55,0xff,0x55,0x0a,0xa6,0xff,0x55,0xff,0x55,0x0a,0xa7, +0xff,0x55,0xff,0x55,0x0a,0xa8,0xff,0x55,0xff,0x55,0x0a,0xa9,0xff,0x55,0xff,0x55,0x0a,0xab,0x00,0xab,0x00,0xab,0x0a,0xad,0xff,0x55,0xff,0x55,0x0a,0xaf,0xff,0x55,0xff,0x55,0x0a,0xb2,0xff,0x55,0xff,0x55,0x0a,0xb4,0xff,0x55,0xff,0x55,0x0a,0xb5,0xff,0x55,0xff,0x55,0x0a,0xb6,0xff,0x55,0xff,0x55,0x0a,0xb7,0xff,0x55,0xff,0x55, +0x0b,0x19,0xff,0x55,0xff,0x55,0x0e,0x20,0xff,0x55,0xff,0x55,0x0e,0x3a,0xff,0x55,0xff,0x55,0x0e,0x3d,0xff,0x55,0xff,0x55,0x0e,0x3f,0xff,0x55,0xff,0x55,0x0e,0x41,0xff,0x55,0xff,0x55,0x0e,0x43,0xff,0x55,0xff,0x55,0x0e,0x47,0xff,0x55,0xff,0x55,0x0e,0x49,0x00,0xab,0x00,0xab,0x0e,0x4b,0xff,0x55,0xff,0x55,0x0e,0x4d,0x00,0xab, +0x00,0xab,0x0e,0x4f,0xff,0x55,0xff,0x55,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0x5b,0xff,0x55,0xff,0x55,0x0e,0x5c,0xff,0x55,0xff,0x55,0x0e,0x5f,0xff,0x55,0xff,0x55,0x0e,0x6f,0xff,0x55,0xff,0x55,0x0e,0x71,0xff,0x55,0xff,0x55,0x0e,0x76,0xff,0x55,0xff,0x55,0x0e,0xa3,0xff,0x55,0xff,0x55,0x0e,0xac,0xff,0x55,0xff,0x55,0x0e,0xaf, +0xff,0x55,0xff,0x55,0x0e,0xd1,0xff,0x55,0xff,0x55,0x0e,0xd7,0xff,0x55,0xff,0x55,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16,0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x1e,0xff,0x55,0xff,0x55,0x0f,0x20,0xff,0x55,0xff,0x55,0x0f,0x22,0xff,0x55,0xff,0x55,0x0f,0x24,0x00,0xab,0x00,0xab, +0x0f,0x28,0xff,0x55,0xff,0x55,0x0f,0x2a,0xff,0x55,0xff,0x55,0x0f,0x2c,0xff,0x55,0xff,0x55,0x0f,0x2e,0x00,0xab,0x00,0xab,0x0f,0x30,0xff,0x55,0xff,0x55,0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x34,0xff,0x55,0xff,0x55,0x0f,0x36,0x00,0xab,0x00,0xab,0x0f,0x38,0xff,0x55,0xff,0x55,0x0f,0x3a,0xff,0x55,0xff,0x55,0x0f,0x40,0x00,0xab, +0x00,0xab,0x0f,0x44,0xff,0x55,0xff,0x55,0x0f,0x46,0xff,0x55,0xff,0x55,0x0f,0x48,0xff,0x55,0xff,0x55,0x0f,0x4a,0xff,0x55,0xff,0x55,0x0f,0x4c,0xff,0x55,0xff,0x55,0x0f,0x4e,0xff,0x55,0xff,0x55,0x0f,0x6c,0xff,0x55,0xff,0x55,0x0f,0x6e,0xff,0x55,0xff,0x55,0x0f,0x70,0xff,0x55,0xff,0x55,0x0f,0x72,0xff,0x55,0xff,0x55,0x0f,0x74, +0xff,0x55,0xff,0x55,0x0f,0x76,0xff,0x55,0xff,0x55,0x0f,0x78,0xff,0x55,0xff,0x55,0x0f,0x7a,0xff,0x55,0xff,0x55,0x0f,0x7c,0xff,0x55,0xff,0x55,0x0f,0x7e,0xff,0x55,0xff,0x55,0x0f,0x80,0xff,0x55,0xff,0x55,0x0f,0x82,0xff,0x55,0xff,0x55,0x0f,0x84,0xff,0x55,0xff,0x55,0x0f,0x86,0xff,0x55,0xff,0x55,0x0f,0x88,0xff,0x55,0xff,0x55, +0x0f,0x8a,0xff,0x55,0xff,0x55,0x0f,0x8c,0xff,0x55,0xff,0x55,0x0f,0x8e,0xff,0x55,0xff,0x55,0x0f,0x90,0xff,0x55,0xff,0x55,0x0f,0x92,0xff,0x55,0xff,0x55,0x0f,0x94,0x00,0xab,0x00,0xab,0x0f,0x96,0xff,0x55,0xff,0x55,0x0f,0xc0,0xff,0x55,0xff,0x55,0x10,0xfe,0xff,0x55,0xff,0x55,0x11,0x00,0xff,0x55,0xff,0x55,0x11,0x02,0xff,0x55, +0xff,0x55,0x11,0x04,0xff,0x55,0xff,0x55,0x11,0x06,0xff,0x55,0xff,0x55,0x11,0x08,0xff,0x55,0xff,0x55,0x11,0x0a,0xff,0x55,0xff,0x55,0x11,0x0c,0xff,0x55,0xff,0x55,0x11,0x0d,0xff,0x55,0xff,0x55,0x11,0x0f,0xff,0x55,0xff,0x55,0x14,0x53,0x00,0xab,0x00,0xab,0x14,0x54,0xff,0x55,0xff,0x55,0x14,0x55,0xff,0x55,0xff,0x55,0x14,0x56, +0xff,0x55,0xff,0x55,0x14,0x57,0xff,0x55,0xff,0x55,0x14,0x58,0xff,0x55,0xff,0x55,0x14,0x59,0xff,0x55,0xff,0x55,0x14,0x5a,0xff,0x55,0xff,0x55,0x14,0x6f,0xff,0x55,0xff,0x55,0x14,0x72,0xff,0x55,0xff,0x55,0x14,0x75,0xff,0x55,0xff,0x55,0x14,0x78,0x00,0xab,0x00,0xab,0x14,0x7b,0xff,0x55,0xff,0x55,0x14,0x83,0xff,0x55,0xff,0x55, +0x14,0x86,0xff,0x55,0xff,0x55,0x14,0x97,0xff,0x55,0xff,0x55,0x14,0x98,0xff,0x55,0xff,0x55,0x00,0x02,0x00,0x1e,0x08,0xc8,0x08,0xc9,0x00,0x00,0x08,0xff,0x09,0x01,0x00,0x02,0x09,0x04,0x09,0x04,0x00,0x05,0x09,0x08,0x09,0x09,0x00,0x06,0x09,0x17,0x09,0x18,0x00,0x08,0x09,0x45,0x09,0x45,0x00,0x0a,0x09,0x5d,0x09,0x5e,0x00,0x0b, +0x09,0x80,0x09,0x83,0x00,0x0d,0x09,0xad,0x09,0xad,0x00,0x11,0x09,0xaf,0x09,0xb1,0x00,0x12,0x09,0xb3,0x09,0xb8,0x00,0x15,0x0a,0x54,0x0a,0x57,0x00,0x1b,0x0a,0x88,0x0a,0x88,0x00,0x1f,0x0a,0xb4,0x0a,0xb5,0x00,0x20,0x0b,0x0c,0x0b,0x0f,0x00,0x22,0x0b,0x11,0x0b,0x18,0x00,0x26,0x0e,0x8f,0x0e,0x8f,0x00,0x2e,0x0e,0x93,0x0e,0x93, +0x00,0x2f,0x0e,0x95,0x0e,0x97,0x00,0x30,0x0f,0x02,0x0f,0x02,0x00,0x33,0x0f,0x22,0x0f,0x23,0x00,0x34,0x0f,0x28,0x0f,0x2b,0x00,0x36,0x0f,0x62,0x0f,0x63,0x00,0x3a,0x0f,0x66,0x0f,0x67,0x00,0x3c,0x0f,0x6a,0x0f,0x6b,0x00,0x3e,0x0f,0x98,0x0f,0xa6,0x00,0x40,0x0f,0xc3,0x0f,0xc3,0x00,0x4f,0x14,0x58,0x14,0x58,0x00,0x50,0x14,0x7d, +0x14,0x7d,0x00,0x51,0x14,0xad,0x14,0xad,0x00,0x52,0x00,0x02,0x01,0x70,0x00,0x05,0x00,0x00,0x02,0x2e,0x03,0x3a,0x00,0x08,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0xab,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x55,0xff,0x55,0xff,0x55, +0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0x00,0xab,0x00,0xab,0x00,0xab,0x00,0xab,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0x00,0x00,0x00,0x00,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0x00,0xab,0x00,0xab,0x00,0xab, +0x00,0xab,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x55,0xff,0x55,0x00,0x00,0x00,0x00,0xff,0x55,0xff,0x55,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0xab,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x55,0xff,0x55,0x00,0x02,0x00,0x1f,0x08,0xc9, +0x08,0xca,0x00,0x00,0x08,0xff,0x09,0x01,0x00,0x02,0x09,0x04,0x09,0x04,0x00,0x05,0x09,0x08,0x09,0x08,0x00,0x06,0x09,0x0a,0x09,0x0b,0x00,0x07,0x09,0x29,0x09,0x29,0x00,0x09,0x09,0x45,0x09,0x45,0x00,0x0a,0x09,0x85,0x09,0x85,0x00,0x0b,0x09,0xb3,0x09,0xb8,0x00,0x0c,0x0a,0x56,0x0a,0x57,0x00,0x12,0x0a,0xb4,0x0a,0xb5,0x00,0x14, +0x0b,0x0c,0x0b,0x0f,0x00,0x16,0x0b,0x11,0x0b,0x18,0x00,0x1a,0x0e,0x24,0x0e,0x24,0x00,0x22,0x0e,0x5e,0x0e,0x5e,0x00,0x23,0x0e,0x74,0x0e,0x75,0x00,0x24,0x0e,0xdc,0x0e,0xe3,0x00,0x26,0x0e,0xe6,0x0e,0xe6,0x00,0x2e,0x0f,0x02,0x0f,0x02,0x00,0x2f,0x0f,0x22,0x0f,0x23,0x00,0x30,0x0f,0x39,0x0f,0x39,0x00,0x32,0x0f,0x3b,0x0f,0x3b, +0x00,0x33,0x0f,0x62,0x0f,0x63,0x00,0x34,0x0f,0x66,0x0f,0x67,0x00,0x36,0x0f,0x6a,0x0f,0x6b,0x00,0x38,0x0f,0x98,0x0f,0xa6,0x00,0x3a,0x0f,0xc3,0x0f,0xc3,0x00,0x49,0x11,0x02,0x11,0x09,0x00,0x4a,0x14,0x58,0x14,0x58,0x00,0x52,0x14,0x7d,0x14,0x7d,0x00,0x53,0x14,0xad,0x14,0xad,0x00,0x54,0x00,0x02,0x00,0x2c,0x08,0xc9,0x08,0xc9, +0x00,0x01,0x08,0xca,0x08,0xca,0x00,0x03,0x08,0xff,0x09,0x01,0x00,0x04,0x09,0x04,0x09,0x04,0x00,0x04,0x09,0x08,0x09,0x08,0x00,0x01,0x09,0x0a,0x09,0x0a,0x00,0x02,0x09,0x0b,0x09,0x0b,0x00,0x03,0x09,0x29,0x09,0x29,0x00,0x02,0x09,0x45,0x09,0x45,0x00,0x07,0x09,0x85,0x09,0x85,0x00,0x03,0x09,0xb3,0x09,0xb5,0x00,0x05,0x09,0xb6, +0x09,0xb6,0x00,0x06,0x09,0xb7,0x09,0xb8,0x00,0x07,0x0a,0x56,0x0a,0x57,0x00,0x07,0x0a,0xb4,0x0a,0xb5,0x00,0x07,0x0b,0x0c,0x0b,0x0c,0x00,0x05,0x0b,0x0d,0x0b,0x0d,0x00,0x06,0x0b,0x0e,0x0b,0x0f,0x00,0x07,0x0b,0x11,0x0b,0x13,0x00,0x05,0x0b,0x14,0x0b,0x14,0x00,0x06,0x0b,0x15,0x0b,0x18,0x00,0x07,0x0e,0x24,0x0e,0x24,0x00,0x02, +0x0e,0x5e,0x0e,0x5e,0x00,0x02,0x0e,0x74,0x0e,0x75,0x00,0x02,0x0e,0xdc,0x0e,0xe3,0x00,0x02,0x0e,0xe6,0x0e,0xe6,0x00,0x02,0x0f,0x02,0x0f,0x02,0x00,0x06,0x0f,0x22,0x0f,0x23,0x00,0x07,0x0f,0x39,0x0f,0x39,0x00,0x02,0x0f,0x3b,0x0f,0x3b,0x00,0x02,0x0f,0x62,0x0f,0x63,0x00,0x04,0x0f,0x66,0x0f,0x67,0x00,0x04,0x0f,0x6a,0x0f,0x6b, +0x00,0x04,0x0f,0x98,0x0f,0x99,0x00,0x05,0x0f,0x9a,0x0f,0x9b,0x00,0x07,0x0f,0x9c,0x0f,0x9f,0x00,0x05,0x0f,0xa0,0x0f,0xa2,0x00,0x07,0x0f,0xa3,0x0f,0xa3,0x00,0x05,0x0f,0xa4,0x0f,0xa6,0x00,0x07,0x0f,0xc3,0x0f,0xc3,0x00,0x07,0x11,0x02,0x11,0x09,0x00,0x02,0x14,0x58,0x14,0x58,0x00,0x07,0x14,0x7d,0x14,0x7d,0x00,0x07,0x14,0xad, +0x14,0xad,0x00,0x07,0x00,0x02,0x00,0xf0,0x08,0xcc,0x08,0xcd,0x00,0x05,0x08,0xd4,0x08,0xd5,0x00,0x01,0x08,0xd6,0x08,0xd6,0x00,0x02,0x08,0xe1,0x08,0xe2,0x00,0x02,0x08,0xe5,0x08,0xe5,0x00,0x02,0x08,0xe8,0x08,0xe8,0x00,0x02,0x08,0xeb,0x08,0xeb,0x00,0x02,0x08,0xed,0x08,0xed,0x00,0x08,0x08,0xee,0x08,0xee,0x00,0x01,0x08,0xef, +0x08,0xef,0x00,0x02,0x08,0xf0,0x08,0xf0,0x00,0x01,0x08,0xf1,0x08,0xf1,0x00,0x02,0x08,0xf4,0x08,0xf4,0x00,0x06,0x08,0xf9,0x08,0xfa,0x00,0x01,0x08,0xff,0x08,0xff,0x00,0x01,0x09,0x01,0x09,0x01,0x00,0x01,0x09,0x06,0x09,0x06,0x00,0x01,0x09,0x07,0x09,0x07,0x00,0x02,0x09,0x09,0x09,0x09,0x00,0x03,0x09,0x0a,0x09,0x0a,0x00,0x01, +0x09,0x0c,0x09,0x0d,0x00,0x01,0x09,0x0f,0x09,0x0f,0x00,0x04,0x09,0x10,0x09,0x11,0x00,0x02,0x09,0x12,0x09,0x14,0x00,0x06,0x09,0x15,0x09,0x16,0x00,0x02,0x09,0x17,0x09,0x1a,0x00,0x01,0x09,0x1b,0x09,0x1e,0x00,0x02,0x09,0x1f,0x09,0x20,0x00,0x07,0x09,0x22,0x09,0x22,0x00,0x02,0x09,0x24,0x09,0x24,0x00,0x01,0x09,0x26,0x09,0x26, +0x00,0x02,0x09,0x28,0x09,0x28,0x00,0x02,0x09,0x29,0x09,0x2b,0x00,0x01,0x09,0x34,0x09,0x34,0x00,0x01,0x09,0x3c,0x09,0x3c,0x00,0x02,0x09,0x3e,0x09,0x3e,0x00,0x02,0x09,0x40,0x09,0x40,0x00,0x02,0x09,0x41,0x09,0x42,0x00,0x06,0x09,0x45,0x09,0x45,0x00,0x01,0x09,0x46,0x09,0x49,0x00,0x08,0x09,0x4a,0x09,0x4a,0x00,0x01,0x09,0x4c, +0x09,0x4c,0x00,0x06,0x09,0x4e,0x09,0x4e,0x00,0x02,0x09,0x5b,0x09,0x5b,0x00,0x02,0x09,0x5c,0x09,0x5c,0x00,0x05,0x09,0x5d,0x09,0x5d,0x00,0x02,0x09,0x5e,0x09,0x5e,0x00,0x01,0x09,0x60,0x09,0x60,0x00,0x02,0x09,0x63,0x09,0x63,0x00,0x02,0x09,0x64,0x09,0x64,0x00,0x04,0x09,0x65,0x09,0x65,0x00,0x0a,0x09,0x67,0x09,0x67,0x00,0x0a, +0x09,0x6c,0x09,0x6d,0x00,0x02,0x09,0x71,0x09,0x71,0x00,0x01,0x09,0x80,0x09,0x80,0x00,0x03,0x09,0x82,0x09,0x82,0x00,0x03,0x09,0x88,0x09,0x8a,0x00,0x01,0x09,0x8c,0x09,0x8c,0x00,0x02,0x09,0x8d,0x09,0x8d,0x00,0x01,0x09,0x8e,0x09,0x8e,0x00,0x02,0x09,0x8f,0x09,0x8f,0x00,0x06,0x09,0x90,0x09,0x90,0x00,0x02,0x09,0x92,0x09,0x92, +0x00,0x02,0x09,0x93,0x09,0x93,0x00,0x05,0x09,0x94,0x09,0x94,0x00,0x02,0x09,0x95,0x09,0x95,0x00,0x05,0x09,0x96,0x09,0x96,0x00,0x02,0x09,0x97,0x09,0x98,0x00,0x06,0x09,0x9b,0x09,0x9b,0x00,0x06,0x09,0x9e,0x09,0x9e,0x00,0x06,0x09,0xa1,0x09,0xa1,0x00,0x06,0x09,0xa4,0x09,0xa4,0x00,0x06,0x09,0xa7,0x09,0xa7,0x00,0x06,0x09,0xaa, +0x09,0xac,0x00,0x02,0x09,0xae,0x09,0xae,0x00,0x02,0x09,0xb2,0x09,0xb2,0x00,0x01,0x09,0xb3,0x09,0xb6,0x00,0x09,0x09,0xb7,0x09,0xbe,0x00,0x01,0x09,0xbf,0x09,0xc3,0x00,0x02,0x09,0xc4,0x09,0xc4,0x00,0x07,0x09,0xc6,0x09,0xc6,0x00,0x02,0x09,0xc8,0x09,0xca,0x00,0x02,0x09,0xcc,0x09,0xcd,0x00,0x02,0x09,0xd2,0x09,0xd3,0x00,0x02, +0x09,0xd7,0x09,0xd8,0x00,0x02,0x09,0xd9,0x09,0xda,0x00,0x08,0x09,0xdb,0x09,0xdb,0x00,0x01,0x09,0xdc,0x09,0xdc,0x00,0x08,0x09,0xdd,0x09,0xdd,0x00,0x01,0x09,0xde,0x09,0xde,0x00,0x08,0x09,0xdf,0x09,0xdf,0x00,0x01,0x09,0xe1,0x09,0xe5,0x00,0x08,0x09,0xe7,0x09,0xea,0x00,0x08,0x09,0xec,0x09,0xec,0x00,0x01,0x09,0xee,0x09,0xee, +0x00,0x01,0x09,0xf0,0x09,0xf0,0x00,0x01,0x09,0xf2,0x09,0xf2,0x00,0x06,0x09,0xf9,0x09,0xf9,0x00,0x05,0x09,0xfa,0x09,0xfa,0x00,0x06,0x09,0xfd,0x09,0xfd,0x00,0x09,0x09,0xfe,0x0a,0x05,0x00,0x01,0x0a,0x07,0x0a,0x07,0x00,0x01,0x0a,0x0a,0x0a,0x0b,0x00,0x01,0x0a,0x0d,0x0a,0x0d,0x00,0x01,0x0a,0x24,0x0a,0x25,0x00,0x01,0x0a,0x26, +0x0a,0x27,0x00,0x02,0x0a,0x28,0x0a,0x28,0x00,0x07,0x0a,0x2a,0x0a,0x2a,0x00,0x02,0x0a,0x3e,0x0a,0x3e,0x00,0x08,0x0a,0x56,0x0a,0x56,0x00,0x01,0x0a,0x58,0x0a,0x58,0x00,0x02,0x0a,0x5a,0x0a,0x5a,0x00,0x02,0x0a,0x63,0x0a,0x63,0x00,0x01,0x0a,0x72,0x0a,0x72,0x00,0x02,0x0a,0x73,0x0a,0x73,0x00,0x06,0x0a,0x74,0x0a,0x74,0x00,0x02, +0x0a,0x76,0x0a,0x76,0x00,0x02,0x0a,0x77,0x0a,0x77,0x00,0x06,0x0a,0x78,0x0a,0x78,0x00,0x02,0x0a,0x79,0x0a,0x79,0x00,0x06,0x0a,0x7a,0x0a,0x7a,0x00,0x02,0x0a,0x7b,0x0a,0x7b,0x00,0x06,0x0a,0x7c,0x0a,0x7c,0x00,0x02,0x0a,0x7d,0x0a,0x7d,0x00,0x06,0x0a,0x7e,0x0a,0x7e,0x00,0x02,0x0a,0x7f,0x0a,0x7f,0x00,0x01,0x0a,0x80,0x0a,0x80, +0x00,0x06,0x0a,0x83,0x0a,0x83,0x00,0x06,0x0a,0x86,0x0a,0x87,0x00,0x02,0x0a,0x88,0x0a,0x8a,0x00,0x01,0x0a,0x8b,0x0a,0x8b,0x00,0x07,0x0a,0x8d,0x0a,0x8d,0x00,0x02,0x0a,0x8f,0x0a,0x8f,0x00,0x07,0x0a,0x91,0x0a,0x91,0x00,0x02,0x0a,0x93,0x0a,0x93,0x00,0x07,0x0a,0x95,0x0a,0x95,0x00,0x02,0x0a,0x9d,0x0a,0x9e,0x00,0x08,0x0a,0xa0, +0x0a,0xa1,0x00,0x08,0x0a,0xa3,0x0a,0xa3,0x00,0x08,0x0a,0xa6,0x0a,0xa9,0x00,0x02,0x0a,0xab,0x0a,0xab,0x00,0x06,0x0a,0xad,0x0a,0xad,0x00,0x01,0x0a,0xaf,0x0a,0xaf,0x00,0x01,0x0a,0xb2,0x0a,0xb2,0x00,0x01,0x0a,0xb4,0x0a,0xb7,0x00,0x01,0x0b,0x19,0x0b,0x19,0x00,0x02,0x0e,0x20,0x0e,0x20,0x00,0x01,0x0e,0x3a,0x0e,0x3a,0x00,0x02, +0x0e,0x3d,0x0e,0x3d,0x00,0x02,0x0e,0x3f,0x0e,0x3f,0x00,0x08,0x0e,0x41,0x0e,0x41,0x00,0x08,0x0e,0x43,0x0e,0x43,0x00,0x08,0x0e,0x47,0x0e,0x47,0x00,0x01,0x0e,0x49,0x0e,0x49,0x00,0x06,0x0e,0x4b,0x0e,0x4b,0x00,0x01,0x0e,0x4d,0x0e,0x4d,0x00,0x06,0x0e,0x4f,0x0e,0x4f,0x00,0x01,0x0e,0x51,0x0e,0x51,0x00,0x06,0x0e,0x5b,0x0e,0x5c, +0x00,0x02,0x0e,0x5f,0x0e,0x5f,0x00,0x02,0x0e,0x6f,0x0e,0x6f,0x00,0x02,0x0e,0x71,0x0e,0x71,0x00,0x02,0x0e,0x76,0x0e,0x76,0x00,0x01,0x0e,0xa3,0x0e,0xa3,0x00,0x02,0x0e,0xac,0x0e,0xac,0x00,0x02,0x0e,0xaf,0x0e,0xaf,0x00,0x02,0x0e,0xd1,0x0e,0xd1,0x00,0x05,0x0e,0xd7,0x0e,0xd7,0x00,0x02,0x0e,0xe7,0x0e,0xe7,0x00,0x06,0x0e,0xe9, +0x0e,0xe9,0x00,0x06,0x0f,0x16,0x0f,0x16,0x00,0x06,0x0f,0x1a,0x0f,0x1a,0x00,0x06,0x0f,0x1e,0x0f,0x1e,0x00,0x01,0x0f,0x20,0x0f,0x20,0x00,0x01,0x0f,0x22,0x0f,0x22,0x00,0x01,0x0f,0x24,0x0f,0x24,0x00,0x06,0x0f,0x28,0x0f,0x28,0x00,0x01,0x0f,0x2a,0x0f,0x2a,0x00,0x01,0x0f,0x2c,0x0f,0x2c,0x00,0x01,0x0f,0x2e,0x0f,0x2e,0x00,0x06, +0x0f,0x30,0x0f,0x30,0x00,0x01,0x0f,0x32,0x0f,0x32,0x00,0x06,0x0f,0x34,0x0f,0x34,0x00,0x01,0x0f,0x36,0x0f,0x36,0x00,0x06,0x0f,0x38,0x0f,0x38,0x00,0x01,0x0f,0x3a,0x0f,0x3a,0x00,0x01,0x0f,0x3c,0x0f,0x3c,0x00,0x0a,0x0f,0x3e,0x0f,0x3e,0x00,0x0a,0x0f,0x40,0x0f,0x40,0x00,0x06,0x0f,0x44,0x0f,0x44,0x00,0x01,0x0f,0x46,0x0f,0x46, +0x00,0x01,0x0f,0x48,0x0f,0x48,0x00,0x01,0x0f,0x4a,0x0f,0x4a,0x00,0x01,0x0f,0x4c,0x0f,0x4c,0x00,0x01,0x0f,0x4e,0x0f,0x4e,0x00,0x08,0x0f,0x6c,0x0f,0x6c,0x00,0x01,0x0f,0x6e,0x0f,0x6e,0x00,0x01,0x0f,0x70,0x0f,0x70,0x00,0x01,0x0f,0x72,0x0f,0x72,0x00,0x01,0x0f,0x74,0x0f,0x74,0x00,0x01,0x0f,0x76,0x0f,0x76,0x00,0x01,0x0f,0x78, +0x0f,0x78,0x00,0x01,0x0f,0x7a,0x0f,0x7a,0x00,0x01,0x0f,0x7c,0x0f,0x7c,0x00,0x01,0x0f,0x7e,0x0f,0x7e,0x00,0x01,0x0f,0x80,0x0f,0x80,0x00,0x01,0x0f,0x82,0x0f,0x82,0x00,0x02,0x0f,0x84,0x0f,0x84,0x00,0x02,0x0f,0x86,0x0f,0x86,0x00,0x02,0x0f,0x88,0x0f,0x88,0x00,0x02,0x0f,0x8a,0x0f,0x8a,0x00,0x02,0x0f,0x8c,0x0f,0x8c,0x00,0x01, +0x0f,0x8e,0x0f,0x8e,0x00,0x01,0x0f,0x90,0x0f,0x90,0x00,0x01,0x0f,0x92,0x0f,0x92,0x00,0x01,0x0f,0x94,0x0f,0x94,0x00,0x06,0x0f,0x96,0x0f,0x96,0x00,0x01,0x0f,0xc0,0x0f,0xc0,0x00,0x01,0x10,0xfe,0x10,0xfe,0x00,0x01,0x11,0x00,0x11,0x00,0x00,0x01,0x11,0x02,0x11,0x02,0x00,0x01,0x11,0x04,0x11,0x04,0x00,0x01,0x11,0x06,0x11,0x06, +0x00,0x01,0x11,0x08,0x11,0x08,0x00,0x01,0x11,0x0a,0x11,0x0a,0x00,0x01,0x11,0x0c,0x11,0x0d,0x00,0x01,0x11,0x0f,0x11,0x0f,0x00,0x01,0x14,0x53,0x14,0x53,0x00,0x07,0x14,0x54,0x14,0x54,0x00,0x01,0x14,0x55,0x14,0x57,0x00,0x02,0x14,0x58,0x14,0x59,0x00,0x01,0x14,0x5a,0x14,0x5b,0x00,0x02,0x14,0x6f,0x14,0x6f,0x00,0x02,0x14,0x72, +0x14,0x72,0x00,0x08,0x14,0x75,0x14,0x75,0x00,0x05,0x14,0x78,0x14,0x78,0x00,0x06,0x14,0x7b,0x14,0x7b,0x00,0x05,0x14,0x80,0x14,0x80,0x00,0x06,0x14,0x83,0x14,0x83,0x00,0x02,0x14,0x97,0x14,0x98,0x00,0x02,0x00,0x01,0x00,0x26,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x1a,0x00,0x20,0x00,0x20,0x00,0x1a,0x00,0x1a,0x00,0x20,0x00,0x20, +0x00,0x1a,0x00,0x01,0x08,0xdd,0xff,0x55,0x00,0x01,0x08,0xdb,0xff,0x55,0x00,0x02,0x00,0x06,0x08,0xd7,0x08,0xd7,0x00,0x00,0x08,0xd9,0x08,0xd9,0x00,0x01,0x08,0xde,0x08,0xdf,0x00,0x02,0x09,0x4f,0x09,0x4f,0x00,0x04,0x09,0x51,0x09,0x51,0x00,0x05,0x09,0x56,0x09,0x57,0x00,0x06,0x00,0x02,0x00,0x30,0x00,0x04,0x00,0x00,0x00,0x4c, +0x00,0x80,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x55,0x00,0x00,0xfe,0xaa,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x55,0x00,0x00,0x00,0x00,0xff,0x55,0x00,0x00,0x00,0x02,0x00,0x04,0x08,0xd9,0x08,0xda,0x00,0x00,0x08,0xde,0x08,0xdf,0x00,0x02,0x09,0x51,0x09,0x53,0x00,0x04,0x09,0x55,0x09,0x57, +0x00,0x07,0x00,0x02,0x00,0x08,0x08,0xd9,0x08,0xda,0x00,0x01,0x08,0xde,0x08,0xde,0x00,0x01,0x08,0xdf,0x08,0xdf,0x00,0x03,0x09,0x51,0x09,0x52,0x00,0x01,0x09,0x53,0x09,0x53,0x00,0x02,0x09,0x55,0x09,0x55,0x00,0x02,0x09,0x56,0x09,0x56,0x00,0x01,0x09,0x57,0x09,0x57,0x00,0x03,0x00,0x02,0x00,0x0a,0x08,0xd7,0x08,0xd7,0x00,0x01, +0x08,0xdc,0x08,0xdc,0x00,0x01,0x08,0xde,0x08,0xde,0x00,0x02,0x08,0xdf,0x08,0xdf,0x00,0x03,0x08,0xe0,0x08,0xe0,0x00,0x02,0x09,0x4f,0x09,0x4f,0x00,0x01,0x09,0x54,0x09,0x55,0x00,0x01,0x09,0x56,0x09,0x56,0x00,0x02,0x09,0x57,0x09,0x57,0x00,0x03,0x09,0x58,0x09,0x58,0x00,0x02,0x00,0x01,0x10,0xc6,0x00,0x04,0x00,0x00,0x00,0x57, +0x00,0xb8,0x01,0xbe,0x01,0xe4,0x02,0x3e,0x02,0xa8,0x03,0x2a,0x03,0x70,0x03,0xa6,0x04,0xf0,0x06,0x16,0x06,0x9c,0x07,0x96,0x08,0x14,0x09,0x0a,0x09,0x50,0x0b,0x7a,0x0b,0xa8,0x0d,0x72,0x0e,0x88,0x0e,0xde,0x10,0x88,0x00,0xb8,0x00,0xb8,0x01,0xe4,0x06,0x16,0x0b,0x7a,0x06,0x16,0x00,0xb8,0x00,0xb8,0x06,0x16,0x06,0x16,0x0e,0xde, +0x00,0xb8,0x00,0xb8,0x06,0x16,0x06,0x16,0x06,0x16,0x0b,0x7a,0x0b,0x7a,0x0b,0x7a,0x09,0x0a,0x10,0x88,0x02,0x3e,0x0e,0xde,0x03,0x2a,0x09,0x0a,0x01,0xe4,0x01,0xe4,0x00,0xb8,0x00,0xb8,0x04,0xf0,0x06,0x16,0x08,0x14,0x08,0x14,0x09,0x0a,0x09,0x50,0x09,0x50,0x0b,0x7a,0x0b,0x7a,0x10,0x88,0x10,0x88,0x00,0xb8,0x01,0xe4,0x03,0x2a, +0x03,0x2a,0x03,0x2a,0x03,0x70,0x03,0xa6,0x04,0xf0,0x06,0x16,0x06,0x16,0x08,0x14,0x09,0x0a,0x09,0x50,0x0b,0x7a,0x0b,0x7a,0x0b,0x7a,0x0b,0x7a,0x0d,0x72,0x0e,0xde,0x00,0xb8,0x06,0x16,0x0d,0x72,0x0d,0x72,0x0d,0x72,0x0e,0xde,0x09,0x0a,0x00,0x41,0x00,0x26,0xff,0xd8,0x00,0x2a,0xff,0xd8,0x00,0x2d,0x00,0x5e,0x00,0x32,0xff,0xd8, +0x00,0x37,0xff,0x6d,0x00,0x38,0xff,0xd8,0x00,0x39,0xff,0x74,0x00,0x3a,0xff,0x74,0x00,0x3c,0xff,0x74,0x00,0x3d,0x00,0x3c,0x00,0x59,0xff,0xd8,0x00,0x5a,0xff,0xd8,0x00,0x5c,0xff,0xd8,0x00,0x64,0xff,0xd8,0x00,0x67,0xff,0xd8,0x00,0x68,0xff,0xd8,0x00,0x92,0xff,0xd8,0x00,0xaf,0xff,0xd8,0x00,0xb0,0xff,0xd8,0x00,0xba,0xff,0xd8, +0x00,0xbb,0xff,0x74,0x00,0xd0,0xff,0xd8,0x00,0xd1,0xff,0xd8,0x00,0xd2,0xff,0xd8,0x00,0xd3,0xff,0xd8,0x00,0xd4,0xff,0xd8,0x00,0xd5,0xff,0xd8,0x00,0xe5,0x00,0x3c,0x00,0xea,0xff,0x74,0x00,0xeb,0xff,0xd8,0x00,0xf7,0xff,0xd8,0x00,0xfc,0xff,0xd8,0x00,0xfe,0xff,0xd8,0x01,0x18,0xff,0xd8,0x01,0x20,0xff,0x6d,0x01,0x22,0xff,0x6d, +0x01,0x24,0xff,0xd8,0x01,0x26,0xff,0xd8,0x01,0x28,0x00,0x3c,0x01,0x2a,0x00,0x3c,0x01,0x47,0xff,0xd8,0x01,0x51,0xff,0xd8,0x01,0x53,0xff,0xd8,0x01,0x55,0xff,0xd8,0x01,0x63,0x00,0x5e,0x01,0x6e,0xff,0xd8,0x01,0x70,0xff,0xd8,0x01,0x76,0xff,0x6d,0x01,0x78,0xff,0xd8,0x01,0x7a,0xff,0xd8,0x01,0x7c,0xff,0xd8,0x01,0x7e,0xff,0xd8, +0x01,0x80,0xff,0x74,0x01,0x81,0xff,0xd8,0x01,0x82,0xff,0x74,0x01,0x83,0xff,0xd8,0x01,0x89,0xff,0xd8,0x01,0x8c,0xff,0x74,0x01,0x8d,0xff,0xd8,0x01,0x8e,0xff,0x74,0x01,0x8f,0xff,0xd8,0x01,0x90,0xff,0x74,0x01,0x91,0xff,0xd8,0x01,0x92,0xff,0x74,0x01,0x93,0xff,0xd8,0x00,0x09,0x00,0x37,0xff,0xa4,0x00,0x3c,0xff,0xbe,0x00,0xbb, +0xff,0xbe,0x00,0xea,0xff,0xbe,0x01,0x20,0xff,0xa4,0x01,0x22,0xff,0xa4,0x01,0x76,0xff,0xa4,0x01,0x82,0xff,0xbe,0x01,0x92,0xff,0xbe,0x00,0x16,0x00,0x26,0xff,0xc9,0x00,0x2a,0xff,0xc9,0x00,0x32,0xff,0xc9,0x00,0x64,0xff,0xc9,0x00,0x67,0xff,0xc9,0x00,0x92,0xff,0xc9,0x00,0xaf,0xff,0xc9,0x00,0xb0,0xff,0xc9,0x00,0xd0,0xff,0xc9, +0x00,0xd1,0xff,0xc9,0x00,0xd2,0xff,0xc9,0x00,0xf7,0xff,0xc9,0x00,0xfc,0xff,0xc9,0x00,0xfe,0xff,0xc9,0x01,0x18,0xff,0xc9,0x01,0x47,0xff,0xc9,0x01,0x51,0xff,0xc9,0x01,0x53,0xff,0xc9,0x01,0x55,0xff,0xc9,0x01,0x6e,0xff,0xc9,0x01,0x70,0xff,0xc9,0x01,0x89,0xff,0xc9,0x00,0x1a,0x00,0x24,0xff,0xce,0x00,0x37,0xff,0xa4,0x00,0x39, +0xff,0xce,0x00,0x3a,0xff,0xce,0x00,0x3b,0xff,0xc4,0x00,0x3d,0xff,0xce,0x00,0x62,0xff,0xce,0x00,0x63,0xff,0xce,0x00,0xad,0xff,0xce,0x00,0xae,0xff,0xce,0x00,0xc7,0xff,0xce,0x00,0xc9,0xff,0xce,0x00,0xe5,0xff,0xce,0x01,0x03,0xff,0xce,0x01,0x05,0xff,0xce,0x01,0x20,0xff,0xa4,0x01,0x22,0xff,0xa4,0x01,0x28,0xff,0xce,0x01,0x2a, +0xff,0xce,0x01,0x45,0xff,0xce,0x01,0x76,0xff,0xa4,0x01,0x80,0xff,0xce,0x01,0x85,0xff,0xce,0x01,0x8c,0xff,0xce,0x01,0x8e,0xff,0xce,0x01,0x90,0xff,0xce,0x00,0x20,0x00,0x24,0xff,0x88,0x00,0x2d,0xff,0xbe,0x00,0x44,0xff,0xba,0x00,0x62,0xff,0x88,0x00,0x63,0xff,0x88,0x00,0x69,0xff,0xba,0x00,0x6a,0xff,0xba,0x00,0x6b,0xff,0xba, +0x00,0x6c,0xff,0xba,0x00,0x6d,0xff,0xba,0x00,0x6e,0xff,0xba,0x00,0x75,0x00,0x32,0x00,0x76,0x00,0x32,0x00,0x77,0x00,0x32,0x00,0xa0,0xff,0xba,0x00,0xad,0xff,0x88,0x00,0xae,0xff,0x88,0x00,0xc7,0xff,0x88,0x00,0xc9,0xff,0x88,0x01,0x03,0xff,0x88,0x01,0x04,0xff,0xba,0x01,0x05,0xff,0x88,0x01,0x06,0xff,0xba,0x01,0x45,0xff,0x88, +0x01,0x46,0xff,0xba,0x01,0x5c,0x00,0x32,0x01,0x5e,0x00,0x32,0x01,0x60,0x00,0x32,0x01,0x63,0xff,0xbe,0x01,0x85,0xff,0x88,0x01,0x86,0xff,0xba,0x01,0x88,0xff,0xba,0x00,0x11,0x00,0x37,0xff,0xcf,0x00,0x39,0xff,0xd8,0x00,0x3a,0xff,0xd8,0x00,0x3b,0xff,0xd8,0x00,0x5c,0xff,0xd8,0x00,0x5d,0xff,0xd8,0x00,0xba,0xff,0xd8,0x00,0xeb, +0xff,0xd8,0x01,0x20,0xff,0xcf,0x01,0x22,0xff,0xcf,0x01,0x76,0xff,0xcf,0x01,0x80,0xff,0xd8,0x01,0x83,0xff,0xd8,0x01,0x8c,0xff,0xd8,0x01,0x8e,0xff,0xd8,0x01,0x90,0xff,0xd8,0x01,0x93,0xff,0xd8,0x00,0x0d,0x00,0x24,0xff,0xce,0x00,0x2d,0xff,0xb0,0x00,0x62,0xff,0xce,0x00,0x63,0xff,0xce,0x00,0xad,0xff,0xce,0x00,0xae,0xff,0xce, +0x00,0xc7,0xff,0xce,0x00,0xc9,0xff,0xce,0x01,0x03,0xff,0xce,0x01,0x05,0xff,0xce,0x01,0x45,0xff,0xce,0x01,0x63,0xff,0xb0,0x01,0x85,0xff,0xce,0x00,0x52,0x00,0x26,0xff,0xa6,0x00,0x2a,0xff,0xa6,0x00,0x2d,0x00,0x5a,0x00,0x32,0xff,0xa6,0x00,0x39,0x00,0x28,0x00,0x3a,0x00,0x28,0x00,0x3b,0x00,0x32,0x00,0x3c,0x00,0x28,0x00,0x3d, +0x00,0x28,0x00,0x46,0xff,0xe5,0x00,0x47,0xff,0xe5,0x00,0x48,0xff,0xe5,0x00,0x4a,0xff,0xe5,0x00,0x52,0xff,0xce,0x00,0x54,0xff,0xce,0x00,0x57,0xff,0xd1,0x00,0x59,0xff,0xba,0x00,0x5a,0xff,0xba,0x00,0x5b,0x00,0x1e,0x00,0x5c,0xff,0xa6,0x00,0x64,0xff,0xa6,0x00,0x67,0xff,0xa6,0x00,0x79,0xff,0xce,0x00,0x7a,0xff,0xce,0x00,0x7b, +0xff,0xce,0x00,0x7c,0xff,0xce,0x00,0x7d,0xff,0xce,0x00,0x92,0xff,0xa6,0x00,0xaf,0xff,0xa6,0x00,0xb0,0xff,0xa6,0x00,0xb1,0xff,0xce,0x00,0xba,0xff,0xa6,0x00,0xbb,0x00,0x28,0x00,0xd0,0xff,0xa6,0x00,0xd1,0xff,0xa6,0x00,0xd2,0xff,0xa6,0x00,0xe5,0x00,0x28,0x00,0xea,0x00,0x28,0x00,0xeb,0xff,0xa6,0x00,0xf7,0xff,0xa6,0x00,0xf8, +0xff,0xe5,0x00,0xfc,0xff,0xa6,0x00,0xfd,0xff,0xe5,0x00,0xfe,0xff,0xa6,0x00,0xff,0xff,0xe5,0x01,0x00,0xff,0xe5,0x01,0x08,0xff,0xe5,0x01,0x0b,0xff,0xe5,0x01,0x18,0xff,0xa6,0x01,0x19,0xff,0xce,0x01,0x21,0xff,0xd1,0x01,0x23,0xff,0xd1,0x01,0x28,0x00,0x28,0x01,0x2a,0x00,0x28,0x01,0x47,0xff,0xa6,0x01,0x48,0xff,0xe5,0x01,0x51, +0xff,0xa6,0x01,0x52,0xff,0xe5,0x01,0x53,0xff,0xa6,0x01,0x54,0xff,0xe5,0x01,0x55,0xff,0xa6,0x01,0x56,0xff,0xe5,0x01,0x63,0x00,0x5a,0x01,0x6e,0xff,0xa6,0x01,0x6f,0xff,0xce,0x01,0x70,0xff,0xa6,0x01,0x71,0xff,0xce,0x01,0x77,0xff,0xd1,0x01,0x80,0x00,0x28,0x01,0x81,0xff,0xba,0x01,0x82,0x00,0x28,0x01,0x83,0xff,0xa6,0x01,0x89, +0xff,0xa6,0x01,0x8a,0xff,0xce,0x01,0x8c,0x00,0x28,0x01,0x8d,0xff,0xba,0x01,0x8e,0x00,0x28,0x01,0x8f,0xff,0xba,0x01,0x90,0x00,0x28,0x01,0x91,0xff,0xba,0x01,0x92,0x00,0x28,0x01,0x93,0xff,0xa6,0x00,0x49,0x00,0x24,0x00,0x3c,0x00,0x26,0xff,0xba,0x00,0x2a,0xff,0xbe,0x00,0x2d,0x00,0x64,0x00,0x32,0xff,0xba,0x00,0x37,0xff,0x74, +0x00,0x38,0xff,0xd8,0x00,0x39,0xff,0x88,0x00,0x3a,0xff,0x88,0x00,0x3c,0xff,0x88,0x00,0x3d,0x00,0x3b,0x00,0x57,0xff,0xe5,0x00,0x59,0xff,0x9c,0x00,0x5a,0xff,0x9c,0x00,0x5c,0xff,0x9c,0x00,0x62,0x00,0x3c,0x00,0x63,0x00,0x3c,0x00,0x64,0xff,0xba,0x00,0x68,0xff,0xd8,0x00,0xad,0x00,0x3c,0x00,0xae,0x00,0x3c,0x00,0xba,0xff,0x9c, +0x00,0xbb,0xff,0x88,0x00,0xc7,0x00,0x3c,0x00,0xc9,0x00,0x3c,0x00,0xd3,0xff,0xd8,0x00,0xd4,0xff,0xd8,0x00,0xd5,0xff,0xd8,0x00,0xe5,0x00,0x3b,0x00,0xea,0xff,0x88,0x00,0xeb,0xff,0x9c,0x00,0xf7,0xff,0xbe,0x00,0xfc,0xff,0xba,0x00,0xfe,0xff,0xba,0x01,0x03,0x00,0x3c,0x01,0x05,0x00,0x3c,0x01,0x18,0xff,0xba,0x01,0x20,0xff,0x74, +0x01,0x21,0xff,0xe5,0x01,0x22,0xff,0x74,0x01,0x23,0xff,0xe5,0x01,0x24,0xff,0xd8,0x01,0x26,0xff,0xd8,0x01,0x28,0x00,0x3b,0x01,0x2a,0x00,0x3b,0x01,0x45,0x00,0x3c,0x01,0x47,0xff,0xba,0x01,0x51,0xff,0xbe,0x01,0x53,0xff,0xbe,0x01,0x55,0xff,0xbe,0x01,0x63,0x00,0x64,0x01,0x6e,0xff,0xba,0x01,0x70,0xff,0xba,0x01,0x76,0xff,0x74, +0x01,0x77,0xff,0xe5,0x01,0x78,0xff,0xd8,0x01,0x7a,0xff,0xd8,0x01,0x7c,0xff,0xd8,0x01,0x7e,0xff,0xd8,0x01,0x80,0xff,0x88,0x01,0x81,0xff,0x9c,0x01,0x82,0xff,0x88,0x01,0x83,0xff,0x9c,0x01,0x85,0x00,0x3c,0x01,0x89,0xff,0xba,0x01,0x8c,0xff,0x88,0x01,0x8d,0xff,0x9c,0x01,0x8e,0xff,0x88,0x01,0x8f,0xff,0x9c,0x01,0x90,0xff,0x88, +0x01,0x91,0xff,0x9c,0x01,0x92,0xff,0x88,0x01,0x93,0xff,0x9c,0x00,0x21,0x00,0x24,0xff,0xce,0x00,0x2d,0xff,0xf6,0x00,0x37,0xff,0xa4,0x00,0x39,0xff,0xce,0x00,0x3a,0xff,0xce,0x00,0x3b,0xff,0xce,0x00,0x3c,0xff,0xce,0x00,0x3d,0xff,0xce,0x00,0x62,0xff,0xce,0x00,0x63,0xff,0xce,0x00,0xad,0xff,0xce,0x00,0xae,0xff,0xce,0x00,0xbb, +0xff,0xce,0x00,0xc7,0xff,0xce,0x00,0xc9,0xff,0xce,0x00,0xe5,0xff,0xce,0x00,0xea,0xff,0xce,0x01,0x03,0xff,0xce,0x01,0x05,0xff,0xce,0x01,0x20,0xff,0xa4,0x01,0x22,0xff,0xa4,0x01,0x28,0xff,0xce,0x01,0x2a,0xff,0xce,0x01,0x45,0xff,0xce,0x01,0x63,0xff,0xf6,0x01,0x76,0xff,0xa4,0x01,0x80,0xff,0xce,0x01,0x82,0xff,0xce,0x01,0x85, +0xff,0xce,0x01,0x8c,0xff,0xce,0x01,0x8e,0xff,0xce,0x01,0x90,0xff,0xce,0x01,0x92,0xff,0xce,0x00,0x3e,0x00,0x24,0xff,0x74,0x00,0x2d,0xff,0x7f,0x00,0x3b,0xff,0xce,0x00,0x44,0xff,0xba,0x00,0x46,0xff,0xb4,0x00,0x47,0xff,0xb4,0x00,0x48,0xff,0xb4,0x00,0x4a,0xff,0xb4,0x00,0x52,0xff,0xb4,0x00,0x54,0xff,0xb4,0x00,0x62,0xff,0x74, +0x00,0x63,0xff,0x74,0x00,0x69,0xff,0xba,0x00,0x6a,0xff,0xba,0x00,0x6b,0xff,0xba,0x00,0x6c,0xff,0xba,0x00,0x6d,0xff,0xba,0x00,0x6e,0xff,0xba,0x00,0x6f,0xff,0xb4,0x00,0x70,0xff,0xb4,0x00,0x71,0xff,0xb4,0x00,0x72,0xff,0xb4,0x00,0x73,0xff,0xb4,0x00,0x79,0xff,0xb4,0x00,0x7a,0xff,0xb4,0x00,0x7b,0xff,0xb4,0x00,0x7c,0xff,0xb4, +0x00,0x7d,0xff,0xb4,0x00,0xa0,0xff,0xba,0x00,0xad,0xff,0x74,0x00,0xae,0xff,0x74,0x00,0xb1,0xff,0xb4,0x00,0xc7,0xff,0x74,0x00,0xc9,0xff,0x74,0x00,0xf8,0xff,0xb4,0x00,0xfd,0xff,0xb4,0x00,0xff,0xff,0xb4,0x01,0x00,0xff,0xb4,0x01,0x03,0xff,0x74,0x01,0x04,0xff,0xba,0x01,0x05,0xff,0x74,0x01,0x06,0xff,0xba,0x01,0x08,0xff,0xb4, +0x01,0x0b,0xff,0xb4,0x01,0x0d,0xff,0xb4,0x01,0x19,0xff,0xb4,0x01,0x45,0xff,0x74,0x01,0x46,0xff,0xba,0x01,0x48,0xff,0xb4,0x01,0x4c,0xff,0xb4,0x01,0x4e,0xff,0xb4,0x01,0x50,0xff,0xb4,0x01,0x52,0xff,0xb4,0x01,0x54,0xff,0xb4,0x01,0x56,0xff,0xb4,0x01,0x63,0xff,0x7f,0x01,0x6f,0xff,0xb4,0x01,0x71,0xff,0xb4,0x01,0x85,0xff,0x74, +0x01,0x86,0xff,0xba,0x01,0x88,0xff,0xba,0x01,0x8a,0xff,0xb4,0x00,0x1f,0x00,0x24,0xff,0xce,0x00,0x37,0xff,0xa4,0x00,0x39,0xff,0xce,0x00,0x3a,0xff,0xce,0x00,0x3b,0xff,0xce,0x00,0x3c,0xff,0xce,0x00,0x3d,0xff,0xce,0x00,0x62,0xff,0xce,0x00,0x63,0xff,0xce,0x00,0xad,0xff,0xce,0x00,0xae,0xff,0xce,0x00,0xbb,0xff,0xce,0x00,0xc7, +0xff,0xce,0x00,0xc9,0xff,0xce,0x00,0xe5,0xff,0xce,0x00,0xea,0xff,0xce,0x01,0x03,0xff,0xce,0x01,0x05,0xff,0xce,0x01,0x20,0xff,0xa4,0x01,0x22,0xff,0xa4,0x01,0x28,0xff,0xce,0x01,0x2a,0xff,0xce,0x01,0x45,0xff,0xce,0x01,0x76,0xff,0xa4,0x01,0x80,0xff,0xce,0x01,0x82,0xff,0xce,0x01,0x85,0xff,0xce,0x01,0x8c,0xff,0xce,0x01,0x8e, +0xff,0xce,0x01,0x90,0xff,0xce,0x01,0x92,0xff,0xce,0x00,0x3d,0x00,0x26,0xff,0xe3,0x00,0x2a,0xff,0xe3,0x00,0x2d,0x00,0x39,0x00,0x32,0xff,0xec,0x00,0x37,0xff,0xa4,0x00,0x3c,0xff,0xd9,0x00,0x46,0xff,0xc4,0x00,0x47,0xff,0xc4,0x00,0x48,0xff,0xc4,0x00,0x4a,0xff,0xc4,0x00,0x52,0xff,0xc4,0x00,0x54,0xff,0xcb,0x00,0x64,0xff,0xe3, +0x00,0x6f,0xff,0xc4,0x00,0x70,0xff,0xc4,0x00,0x71,0xff,0xc4,0x00,0x72,0xff,0xc4,0x00,0x73,0xff,0xc4,0x00,0x79,0xff,0xc4,0x00,0x7a,0xff,0xc4,0x00,0x7b,0xff,0xc4,0x00,0x7c,0xff,0xc4,0x00,0x7d,0xff,0xc4,0x00,0xb1,0xff,0xc4,0x00,0xbb,0xff,0xd9,0x00,0xea,0xff,0xd9,0x00,0xf7,0xff,0xe3,0x00,0xf8,0xff,0xc4,0x00,0xfc,0xff,0xe3, +0x00,0xfd,0xff,0xc4,0x00,0xfe,0xff,0xe3,0x00,0xff,0xff,0xc4,0x01,0x00,0xff,0xc4,0x01,0x08,0xff,0xc4,0x01,0x0b,0xff,0xc4,0x01,0x0d,0xff,0xc4,0x01,0x18,0xff,0xec,0x01,0x19,0xff,0xc4,0x01,0x20,0xff,0xa4,0x01,0x22,0xff,0xa4,0x01,0x47,0xff,0xe3,0x01,0x48,0xff,0xc4,0x01,0x4c,0xff,0xc4,0x01,0x4e,0xff,0xc4,0x01,0x50,0xff,0xc4, +0x01,0x51,0xff,0xe3,0x01,0x52,0xff,0xc4,0x01,0x53,0xff,0xe3,0x01,0x54,0xff,0xc4,0x01,0x55,0xff,0xe3,0x01,0x56,0xff,0xc4,0x01,0x63,0x00,0x39,0x01,0x6e,0xff,0xec,0x01,0x6f,0xff,0xc4,0x01,0x70,0xff,0xec,0x01,0x71,0xff,0xc4,0x01,0x76,0xff,0xa4,0x01,0x82,0xff,0xd9,0x01,0x89,0xff,0xec,0x01,0x8a,0xff,0xc4,0x01,0x92,0xff,0xd9, +0x00,0x11,0x00,0x57,0xff,0xbe,0x00,0x59,0xff,0xce,0x00,0x5a,0xff,0xe2,0x00,0x5b,0xff,0xe2,0x00,0x5c,0xff,0xc4,0x00,0x5d,0xff,0xc4,0x00,0xba,0xff,0xc4,0x00,0xeb,0xff,0xc4,0x01,0x21,0xff,0xbe,0x01,0x23,0xff,0xbe,0x01,0x77,0xff,0xbe,0x01,0x81,0xff,0xe2,0x01,0x83,0xff,0xc4,0x01,0x8d,0xff,0xe2,0x01,0x8f,0xff,0xe2,0x01,0x91, +0xff,0xe2,0x01,0x93,0xff,0xc4,0x00,0x8a,0x00,0x24,0xff,0x74,0x00,0x26,0xff,0xa1,0x00,0x2a,0xff,0xa1,0x00,0x2d,0xff,0x8f,0x00,0x32,0xff,0xa1,0x00,0x36,0xff,0xd8,0x00,0x37,0x00,0x28,0x00,0x39,0x00,0x2b,0x00,0x3a,0x00,0x2b,0x00,0x3c,0x00,0x28,0x00,0x44,0xff,0x1a,0x00,0x46,0xff,0x38,0x00,0x47,0xff,0x38,0x00,0x48,0xff,0x38, +0x00,0x49,0xff,0xa0,0x00,0x4a,0xff,0x38,0x00,0x50,0xff,0x4e,0x00,0x51,0xff,0x4e,0x00,0x52,0xff,0x38,0x00,0x53,0xff,0x4e,0x00,0x54,0xff,0x38,0x00,0x55,0xff,0x4e,0x00,0x56,0xff,0x66,0x00,0x59,0xff,0x9a,0x00,0x5a,0xff,0x8f,0x00,0x5b,0xff,0x4c,0x00,0x5c,0xff,0x8f,0x00,0x5d,0xff,0x8f,0x00,0x62,0xff,0x74,0x00,0x63,0xff,0x74, +0x00,0x64,0xff,0xa1,0x00,0x67,0xff,0xa1,0x00,0x69,0xff,0x1a,0x00,0x6a,0xff,0x1a,0x00,0x6b,0xff,0x1a,0x00,0x6c,0xff,0x38,0x00,0x6d,0xff,0x38,0x00,0x6e,0xff,0x1a,0x00,0x6f,0xff,0x38,0x00,0x70,0xff,0x38,0x00,0x71,0xff,0x38,0x00,0x72,0xff,0x38,0x00,0x73,0xff,0x38,0x00,0x75,0x00,0x1e,0x00,0x76,0x00,0x32,0x00,0x77,0x00,0x32, +0x00,0x79,0xff,0x38,0x00,0x7a,0xff,0x38,0x00,0x7b,0xff,0x38,0x00,0x7c,0xff,0x38,0x00,0x7d,0xff,0x38,0x00,0x92,0xff,0xa1,0x00,0xa0,0xff,0x1a,0x00,0xad,0xff,0x74,0x00,0xae,0xff,0x74,0x00,0xaf,0xff,0xa1,0x00,0xb0,0xff,0xa1,0x00,0xb1,0xff,0x38,0x00,0xba,0xff,0x8f,0x00,0xbb,0x00,0x28,0x00,0xc7,0xff,0x74,0x00,0xc9,0xff,0x74, +0x00,0xd0,0xff,0xa1,0x00,0xd1,0xff,0xa1,0x00,0xd2,0xff,0xa1,0x00,0xe3,0xff,0xd8,0x00,0xe4,0xff,0x66,0x00,0xea,0x00,0x28,0x00,0xeb,0xff,0x8f,0x00,0xf7,0xff,0xa1,0x00,0xf8,0xff,0x38,0x00,0xfa,0xff,0xd8,0x00,0xfb,0xff,0x66,0x00,0xfc,0xff,0xa1,0x00,0xfd,0xff,0x38,0x00,0xfe,0xff,0xa1,0x00,0xff,0xff,0x38,0x01,0x00,0xff,0x38, +0x01,0x03,0xff,0x74,0x01,0x04,0xff,0x38,0x01,0x05,0xff,0x74,0x01,0x06,0xff,0x1a,0x01,0x08,0xff,0x38,0x01,0x0b,0xff,0x38,0x01,0x0d,0xff,0x38,0x01,0x18,0xff,0xa1,0x01,0x19,0xff,0x38,0x01,0x1b,0xff,0x4e,0x01,0x1d,0xff,0x4e,0x01,0x1e,0xff,0xd8,0x01,0x1f,0xff,0x66,0x01,0x20,0x00,0x28,0x01,0x22,0x00,0x28,0x01,0x45,0xff,0x74, +0x01,0x46,0xff,0x38,0x01,0x47,0xff,0xa1,0x01,0x48,0xff,0x38,0x01,0x4c,0xff,0x38,0x01,0x4e,0xff,0x38,0x01,0x50,0xff,0x38,0x01,0x51,0xff,0xa1,0x01,0x52,0xff,0x38,0x01,0x53,0xff,0xa1,0x01,0x54,0xff,0x38,0x01,0x55,0xff,0xa1,0x01,0x56,0xff,0x38,0x01,0x5c,0x00,0x32,0x01,0x5e,0x00,0x32,0x01,0x60,0x00,0x32,0x01,0x63,0xff,0x8f, +0x01,0x6d,0xff,0x4e,0x01,0x6e,0xff,0xa1,0x01,0x6f,0xff,0x38,0x01,0x70,0xff,0xa1,0x01,0x71,0xff,0x38,0x01,0x73,0xff,0x4e,0x01,0x74,0xff,0xd8,0x01,0x75,0xff,0x66,0x01,0x76,0x00,0x28,0x01,0x80,0x00,0x2b,0x01,0x81,0xff,0x8f,0x01,0x82,0x00,0x28,0x01,0x83,0xff,0x8f,0x01,0x85,0xff,0x74,0x01,0x86,0xff,0x38,0x01,0x88,0xff,0x1a, +0x01,0x89,0xff,0xa1,0x01,0x8a,0xff,0x38,0x01,0x8c,0x00,0x2b,0x01,0x8d,0xff,0x8f,0x01,0x8e,0x00,0x2b,0x01,0x8f,0xff,0x8f,0x01,0x90,0x00,0x2b,0x01,0x91,0xff,0x8f,0x01,0x92,0x00,0x28,0x01,0x93,0xff,0x8f,0x02,0x3d,0xff,0xd8,0x02,0x3e,0xff,0x66,0x00,0x0b,0x00,0x24,0xff,0xce,0x00,0x62,0xff,0xce,0x00,0x63,0xff,0xce,0x00,0xad, +0xff,0xce,0x00,0xae,0xff,0xce,0x00,0xc7,0xff,0xce,0x00,0xc9,0xff,0xce,0x01,0x03,0xff,0xce,0x01,0x05,0xff,0xce,0x01,0x45,0xff,0xce,0x01,0x85,0xff,0xce,0x00,0x72,0x00,0x24,0xff,0x88,0x00,0x26,0xff,0xce,0x00,0x2a,0xff,0xce,0x00,0x2d,0xff,0xba,0x00,0x32,0xff,0xce,0x00,0x37,0x00,0x27,0x00,0x44,0xff,0x6a,0x00,0x46,0xff,0x7e, +0x00,0x47,0xff,0x7e,0x00,0x48,0xff,0x7e,0x00,0x4a,0xff,0x7e,0x00,0x50,0xff,0xb0,0x00,0x51,0xff,0xb0,0x00,0x52,0xff,0x7e,0x00,0x53,0xff,0xb4,0x00,0x54,0xff,0x7e,0x00,0x55,0xff,0xb4,0x00,0x56,0xff,0xbe,0x00,0x58,0xff,0xce,0x00,0x62,0xff,0x88,0x00,0x63,0xff,0x88,0x00,0x64,0xff,0xce,0x00,0x67,0xff,0xce,0x00,0x69,0xff,0x6a, +0x00,0x6a,0xff,0x6a,0x00,0x6b,0xff,0x6a,0x00,0x6c,0xff,0x6a,0x00,0x6d,0xff,0x6a,0x00,0x6e,0xff,0x6a,0x00,0x6f,0xff,0x7e,0x00,0x70,0xff,0x7e,0x00,0x71,0xff,0x7e,0x00,0x72,0xff,0x7e,0x00,0x73,0xff,0x7e,0x00,0x75,0x00,0x1e,0x00,0x76,0x00,0x1e,0x00,0x77,0x00,0x3c,0x00,0x79,0xff,0x7e,0x00,0x7a,0xff,0x7e,0x00,0x7b,0xff,0x7e, +0x00,0x7c,0xff,0x7e,0x00,0x7d,0xff,0x7e,0x00,0x92,0xff,0xce,0x00,0xa0,0xff,0x6a,0x00,0xad,0xff,0x88,0x00,0xae,0xff,0x88,0x00,0xaf,0xff,0xce,0x00,0xb0,0xff,0xce,0x00,0xb1,0xff,0x7e,0x00,0xc7,0xff,0x88,0x00,0xc9,0xff,0x88,0x00,0xd0,0xff,0xce,0x00,0xd1,0xff,0xce,0x00,0xd2,0xff,0xce,0x00,0xe4,0xff,0xbe,0x00,0xf7,0xff,0xce, +0x00,0xf8,0xff,0x7e,0x00,0xfb,0xff,0xbe,0x00,0xfc,0xff,0xce,0x00,0xfd,0xff,0x7e,0x00,0xfe,0xff,0xce,0x00,0xff,0xff,0x7e,0x01,0x00,0xff,0x7e,0x01,0x03,0xff,0x88,0x01,0x04,0xff,0x6a,0x01,0x05,0xff,0x88,0x01,0x06,0xff,0x6a,0x01,0x08,0xff,0x7e,0x01,0x0b,0xff,0x7e,0x01,0x0d,0xff,0x7e,0x01,0x18,0xff,0xce,0x01,0x19,0xff,0x7e, +0x01,0x1b,0xff,0xb4,0x01,0x1d,0xff,0xb4,0x01,0x1f,0xff,0xbe,0x01,0x20,0x00,0x27,0x01,0x22,0x00,0x27,0x01,0x25,0xff,0xce,0x01,0x27,0xff,0xce,0x01,0x45,0xff,0x88,0x01,0x46,0xff,0x6a,0x01,0x47,0xff,0xce,0x01,0x48,0xff,0x7e,0x01,0x4c,0xff,0x7e,0x01,0x4e,0xff,0x7e,0x01,0x50,0xff,0x7e,0x01,0x51,0xff,0xce,0x01,0x52,0xff,0x7e, +0x01,0x53,0xff,0xce,0x01,0x54,0xff,0x7e,0x01,0x55,0xff,0xce,0x01,0x56,0xff,0x7e,0x01,0x5c,0x00,0x3c,0x01,0x5e,0x00,0x3c,0x01,0x60,0x00,0x3c,0x01,0x63,0xff,0xba,0x01,0x6d,0xff,0xb0,0x01,0x6e,0xff,0xce,0x01,0x6f,0xff,0x7e,0x01,0x70,0xff,0xce,0x01,0x71,0xff,0x7e,0x01,0x73,0xff,0xb4,0x01,0x75,0xff,0xbe,0x01,0x76,0x00,0x27, +0x01,0x79,0xff,0xce,0x01,0x7b,0xff,0xce,0x01,0x7d,0xff,0xce,0x01,0x7f,0xff,0xce,0x01,0x85,0xff,0x88,0x01,0x86,0xff,0x6a,0x01,0x88,0xff,0x6a,0x01,0x89,0xff,0xce,0x01,0x8a,0xff,0x7e,0x02,0x3e,0xff,0xbe,0x00,0x45,0x00,0x24,0xff,0xb0,0x00,0x37,0x00,0x27,0x00,0x44,0xff,0xb0,0x00,0x46,0xff,0xb0,0x00,0x47,0xff,0xb0,0x00,0x48, +0xff,0xb0,0x00,0x4a,0xff,0xb0,0x00,0x52,0xff,0xb0,0x00,0x54,0xff,0xb0,0x00,0x62,0xff,0xb0,0x00,0x63,0xff,0xb0,0x00,0x69,0xff,0xb0,0x00,0x6a,0xff,0xb0,0x00,0x6b,0xff,0xb0,0x00,0x6c,0xff,0xb0,0x00,0x6d,0xff,0xb0,0x00,0x6e,0xff,0xb0,0x00,0x6f,0xff,0xb0,0x00,0x70,0xff,0xb0,0x00,0x71,0xff,0xb0,0x00,0x72,0xff,0xb0,0x00,0x73, +0xff,0xb0,0x00,0x75,0x00,0x1e,0x00,0x76,0x00,0x1e,0x00,0x77,0x00,0x3c,0x00,0x79,0xff,0xb0,0x00,0x7a,0xff,0xb0,0x00,0x7b,0xff,0xb0,0x00,0x7c,0xff,0xb0,0x00,0x7d,0xff,0xb0,0x00,0xa0,0xff,0xb0,0x00,0xad,0xff,0xb0,0x00,0xae,0xff,0xb0,0x00,0xb1,0xff,0xb0,0x00,0xc7,0xff,0xb0,0x00,0xc9,0xff,0xb0,0x00,0xf8,0xff,0xb0,0x00,0xfd, +0xff,0xb0,0x00,0xff,0xff,0xb0,0x01,0x00,0xff,0xb0,0x01,0x03,0xff,0xb0,0x01,0x04,0xff,0xb0,0x01,0x05,0xff,0xb0,0x01,0x06,0xff,0xb0,0x01,0x08,0xff,0xb0,0x01,0x0b,0xff,0xb0,0x01,0x0d,0xff,0xb0,0x01,0x19,0xff,0xb0,0x01,0x20,0x00,0x27,0x01,0x22,0x00,0x27,0x01,0x45,0xff,0xb0,0x01,0x46,0xff,0xb0,0x01,0x48,0xff,0xb0,0x01,0x4c, +0xff,0xb0,0x01,0x4e,0xff,0xb0,0x01,0x50,0xff,0xb0,0x01,0x52,0xff,0xb0,0x01,0x54,0xff,0xb0,0x01,0x56,0xff,0xb0,0x01,0x5c,0x00,0x3c,0x01,0x5e,0x00,0x3c,0x01,0x60,0x00,0x3c,0x01,0x6f,0xff,0xb0,0x01,0x71,0xff,0xb0,0x01,0x76,0x00,0x27,0x01,0x85,0xff,0xb0,0x01,0x86,0xff,0xb0,0x01,0x88,0xff,0xb0,0x01,0x8a,0xff,0xb0,0x00,0x15, +0x00,0x26,0xff,0xe9,0x00,0x2a,0xff,0xe9,0x00,0x2d,0x00,0x60,0x00,0x32,0xff,0xe9,0x00,0x37,0x00,0x21,0x00,0x64,0xff,0xe9,0x00,0xf7,0xff,0xe9,0x00,0xfc,0xff,0xe9,0x00,0xfe,0xff,0xe9,0x01,0x18,0xff,0xe9,0x01,0x20,0x00,0x21,0x01,0x22,0x00,0x21,0x01,0x47,0xff,0xe9,0x01,0x51,0xff,0xe9,0x01,0x53,0xff,0xe9,0x01,0x55,0xff,0xe9, +0x01,0x63,0x00,0x60,0x01,0x6e,0xff,0xe9,0x01,0x70,0xff,0xe9,0x01,0x76,0x00,0x21,0x01,0x89,0xff,0xe9,0x00,0x6a,0x00,0x24,0xff,0x60,0x00,0x26,0xff,0xb0,0x00,0x2a,0xff,0xb0,0x00,0x2d,0xff,0xbe,0x00,0x32,0xff,0xb0,0x00,0x37,0x00,0x27,0x00,0x44,0xff,0x4c,0x00,0x46,0xff,0x4c,0x00,0x47,0xff,0x4c,0x00,0x48,0xff,0x4c,0x00,0x49, +0xff,0xe5,0x00,0x4a,0xff,0x4c,0x00,0x50,0xff,0x73,0x00,0x51,0xff,0x73,0x00,0x52,0xff,0x4c,0x00,0x53,0xff,0x74,0x00,0x54,0xff,0x4c,0x00,0x55,0xff,0x73,0x00,0x56,0xff,0x7b,0x00,0x62,0xff,0x60,0x00,0x63,0xff,0x60,0x00,0x64,0xff,0xb0,0x00,0x67,0xff,0xb0,0x00,0x69,0xff,0x4c,0x00,0x6a,0xff,0x4c,0x00,0x6b,0xff,0x4c,0x00,0x6c, +0xff,0x4c,0x00,0x6d,0xff,0x4c,0x00,0x6e,0xff,0x4c,0x00,0x6f,0xff,0x4c,0x00,0x70,0xff,0x4c,0x00,0x71,0xff,0x4c,0x00,0x72,0xff,0x4c,0x00,0x73,0xff,0x4c,0x00,0x77,0x00,0x32,0x00,0x79,0xff,0x4c,0x00,0x7a,0xff,0x4c,0x00,0x7b,0xff,0x4c,0x00,0x7c,0xff,0x4c,0x00,0x7d,0xff,0x4c,0x00,0x92,0xff,0xb0,0x00,0xa0,0xff,0x4c,0x00,0xad, +0xff,0x60,0x00,0xae,0xff,0x60,0x00,0xaf,0xff,0xb0,0x00,0xb0,0xff,0xb0,0x00,0xb1,0xff,0x4c,0x00,0xc7,0xff,0x60,0x00,0xc9,0xff,0x60,0x00,0xd0,0xff,0xb0,0x00,0xd1,0xff,0xb0,0x00,0xd2,0xff,0xb0,0x00,0xe4,0xff,0x7b,0x00,0xf7,0xff,0xb0,0x00,0xf8,0xff,0x4c,0x00,0xfb,0xff,0x7b,0x00,0xfc,0xff,0xb0,0x00,0xfd,0xff,0x4c,0x00,0xfe, +0xff,0xb0,0x00,0xff,0xff,0x4c,0x01,0x00,0xff,0x4c,0x01,0x03,0xff,0x60,0x01,0x04,0xff,0x4c,0x01,0x05,0xff,0x60,0x01,0x06,0xff,0x4c,0x01,0x08,0xff,0x4c,0x01,0x0b,0xff,0x4c,0x01,0x0d,0xff,0x4c,0x01,0x18,0xff,0xb0,0x01,0x19,0xff,0x4c,0x01,0x1b,0xff,0x73,0x01,0x1d,0xff,0x73,0x01,0x1f,0xff,0x7b,0x01,0x20,0x00,0x27,0x01,0x22, +0x00,0x27,0x01,0x45,0xff,0x60,0x01,0x46,0xff,0x4c,0x01,0x47,0xff,0xb0,0x01,0x48,0xff,0x4c,0x01,0x4c,0xff,0x4c,0x01,0x4e,0xff,0x4c,0x01,0x50,0xff,0x4c,0x01,0x51,0xff,0xb0,0x01,0x52,0xff,0x4c,0x01,0x53,0xff,0xb0,0x01,0x54,0xff,0x4c,0x01,0x55,0xff,0xb0,0x01,0x56,0xff,0x4c,0x01,0x5c,0x00,0x32,0x01,0x5e,0x00,0x32,0x01,0x60, +0x00,0x32,0x01,0x63,0xff,0xbe,0x01,0x6d,0xff,0x73,0x01,0x6e,0xff,0xb0,0x01,0x6f,0xff,0x4c,0x01,0x70,0xff,0xb0,0x01,0x71,0xff,0x4c,0x01,0x73,0xff,0x73,0x01,0x75,0xff,0x7b,0x01,0x76,0x00,0x27,0x01,0x85,0xff,0x60,0x01,0x86,0xff,0x4c,0x01,0x88,0xff,0x4c,0x01,0x89,0xff,0xb0,0x01,0x8a,0xff,0x4c,0x02,0x3e,0xff,0x7b,0x00,0x0f, +0x00,0x2d,0x00,0x52,0x00,0x37,0x00,0x27,0x00,0x5c,0xff,0xcb,0x00,0x77,0x00,0x32,0x00,0xba,0xff,0xcb,0x00,0xeb,0xff,0xcb,0x01,0x20,0x00,0x27,0x01,0x22,0x00,0x27,0x01,0x5c,0x00,0x32,0x01,0x5e,0x00,0x32,0x01,0x60,0x00,0x32,0x01,0x63,0x00,0x52,0x01,0x76,0x00,0x27,0x01,0x83,0xff,0xcb,0x01,0x93,0xff,0xcb,0x00,0x02,0x00,0x3b, +0x00,0x24,0x00,0x27,0x00,0x00,0x00,0x29,0x00,0x2a,0x00,0x04,0x00,0x2d,0x00,0x2f,0x00,0x06,0x00,0x32,0x00,0x3d,0x00,0x09,0x00,0x62,0x00,0x64,0x00,0x15,0x00,0x67,0x00,0x68,0x00,0x18,0x00,0x92,0x00,0x92,0x00,0x1a,0x00,0xad,0x00,0xb0,0x00,0x1b,0x00,0xbb,0x00,0xbb,0x00,0x1f,0x00,0xc7,0x00,0xc7,0x00,0x20,0x00,0xc9,0x00,0xc9, +0x00,0x21,0x00,0xd0,0x00,0xd5,0x00,0x22,0x00,0xe3,0x00,0xe3,0x00,0x28,0x00,0xe5,0x00,0xe5,0x00,0x29,0x00,0xe8,0x00,0xe8,0x00,0x2a,0x00,0xea,0x00,0xea,0x00,0x2b,0x00,0xf7,0x00,0xf7,0x00,0x2c,0x00,0xfa,0x00,0xfa,0x00,0x2d,0x00,0xfc,0x00,0xfc,0x00,0x2e,0x00,0xfe,0x00,0xfe,0x00,0x2f,0x01,0x03,0x01,0x03,0x00,0x30,0x01,0x05, +0x01,0x05,0x00,0x31,0x01,0x0e,0x01,0x0e,0x00,0x32,0x01,0x18,0x01,0x18,0x00,0x33,0x01,0x1a,0x01,0x1a,0x00,0x34,0x01,0x1c,0x01,0x1c,0x00,0x35,0x01,0x1e,0x01,0x1e,0x00,0x36,0x01,0x20,0x01,0x20,0x00,0x37,0x01,0x22,0x01,0x22,0x00,0x38,0x01,0x24,0x01,0x24,0x00,0x39,0x01,0x26,0x01,0x26,0x00,0x3a,0x01,0x28,0x01,0x28,0x00,0x3b, +0x01,0x2a,0x01,0x2a,0x00,0x3c,0x01,0x45,0x01,0x45,0x00,0x3d,0x01,0x47,0x01,0x47,0x00,0x3e,0x01,0x51,0x01,0x51,0x00,0x3f,0x01,0x53,0x01,0x53,0x00,0x40,0x01,0x55,0x01,0x55,0x00,0x41,0x01,0x63,0x01,0x63,0x00,0x42,0x01,0x65,0x01,0x65,0x00,0x43,0x01,0x68,0x01,0x68,0x00,0x44,0x01,0x6e,0x01,0x6e,0x00,0x45,0x01,0x70,0x01,0x70, +0x00,0x46,0x01,0x72,0x01,0x72,0x00,0x47,0x01,0x74,0x01,0x74,0x00,0x48,0x01,0x76,0x01,0x76,0x00,0x49,0x01,0x78,0x01,0x78,0x00,0x4a,0x01,0x7a,0x01,0x7a,0x00,0x4b,0x01,0x7c,0x01,0x7c,0x00,0x4c,0x01,0x7e,0x01,0x7e,0x00,0x4d,0x01,0x80,0x01,0x80,0x00,0x4e,0x01,0x82,0x01,0x82,0x00,0x4f,0x01,0x85,0x01,0x85,0x00,0x50,0x01,0x89, +0x01,0x89,0x00,0x51,0x01,0x8c,0x01,0x8c,0x00,0x52,0x01,0x8e,0x01,0x8e,0x00,0x53,0x01,0x90,0x01,0x90,0x00,0x54,0x01,0x92,0x01,0x92,0x00,0x55,0x02,0x3d,0x02,0x3d,0x00,0x56,0x00,0x01,0x00,0x0a,0x00,0x05,0x00,0x24,0x00,0x48,0x00,0x02,0x00,0x4c,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x62,0x00,0x68,0x00,0x1a,0x00,0x91,0x00,0x92, +0x00,0x21,0x00,0xad,0x00,0xb0,0x00,0x23,0x00,0xbb,0x00,0xbb,0x00,0x27,0x00,0xc7,0x00,0xd5,0x00,0x28,0x00,0xe1,0x00,0xe1,0x00,0x37,0x00,0xe3,0x00,0xe3,0x00,0x38,0x00,0xe5,0x00,0xe5,0x00,0x39,0x00,0xe8,0x00,0xe8,0x00,0x3a,0x00,0xea,0x00,0xea,0x00,0x3b,0x00,0xec,0x00,0xec,0x00,0x3c,0x00,0xf7,0x00,0xf7,0x00,0x3d,0x00,0xf9, +0x00,0xfa,0x00,0x3e,0x00,0xfc,0x00,0xfc,0x00,0x40,0x00,0xfe,0x00,0xfe,0x00,0x41,0x01,0x03,0x01,0x03,0x00,0x42,0x01,0x05,0x01,0x05,0x00,0x43,0x01,0x07,0x01,0x07,0x00,0x44,0x01,0x09,0x01,0x0a,0x00,0x45,0x01,0x0c,0x01,0x0c,0x00,0x47,0x01,0x0e,0x01,0x0e,0x00,0x48,0x01,0x10,0x01,0x10,0x00,0x49,0x01,0x12,0x01,0x12,0x00,0x4a, +0x01,0x14,0x01,0x14,0x00,0x4b,0x01,0x16,0x01,0x16,0x00,0x4c,0x01,0x18,0x01,0x18,0x00,0x4d,0x01,0x1a,0x01,0x1a,0x00,0x4e,0x01,0x1c,0x01,0x1c,0x00,0x4f,0x01,0x1e,0x01,0x1e,0x00,0x50,0x01,0x20,0x01,0x20,0x00,0x51,0x01,0x22,0x01,0x22,0x00,0x52,0x01,0x24,0x01,0x24,0x00,0x53,0x01,0x26,0x01,0x26,0x00,0x54,0x01,0x28,0x01,0x28, +0x00,0x55,0x01,0x2a,0x01,0x2a,0x00,0x56,0x01,0x39,0x01,0x39,0x00,0x57,0x01,0x45,0x01,0x45,0x00,0x58,0x01,0x47,0x01,0x47,0x00,0x59,0x01,0x49,0x01,0x49,0x00,0x5a,0x01,0x4b,0x01,0x4b,0x00,0x5b,0x01,0x4d,0x01,0x4d,0x00,0x5c,0x01,0x4f,0x01,0x4f,0x00,0x5d,0x01,0x51,0x01,0x51,0x00,0x5e,0x01,0x53,0x01,0x53,0x00,0x5f,0x01,0x55, +0x01,0x55,0x00,0x60,0x01,0x57,0x01,0x57,0x00,0x61,0x01,0x59,0x01,0x59,0x00,0x62,0x01,0x5b,0x01,0x5b,0x00,0x63,0x01,0x5d,0x01,0x5d,0x00,0x64,0x01,0x5f,0x01,0x5f,0x00,0x65,0x01,0x61,0x01,0x61,0x00,0x66,0x01,0x63,0x01,0x63,0x00,0x67,0x01,0x65,0x01,0x65,0x00,0x68,0x01,0x68,0x01,0x68,0x00,0x69,0x01,0x6a,0x01,0x6a,0x00,0x6a, +0x01,0x6c,0x01,0x6c,0x00,0x6b,0x01,0x6e,0x01,0x6e,0x00,0x6c,0x01,0x70,0x01,0x70,0x00,0x6d,0x01,0x72,0x01,0x72,0x00,0x6e,0x01,0x74,0x01,0x74,0x00,0x6f,0x01,0x76,0x01,0x76,0x00,0x70,0x01,0x78,0x01,0x78,0x00,0x71,0x01,0x7a,0x01,0x7a,0x00,0x72,0x01,0x7c,0x01,0x7c,0x00,0x73,0x01,0x7e,0x01,0x7e,0x00,0x74,0x01,0x80,0x01,0x80, +0x00,0x75,0x01,0x82,0x01,0x82,0x00,0x76,0x01,0x85,0x01,0x85,0x00,0x77,0x01,0x87,0x01,0x87,0x00,0x78,0x01,0x89,0x01,0x89,0x00,0x79,0x01,0x8c,0x01,0x8c,0x00,0x7a,0x01,0x8e,0x01,0x8e,0x00,0x7b,0x01,0x90,0x01,0x90,0x00,0x7c,0x01,0x92,0x01,0x92,0x00,0x7d,0x0b,0x21,0x0b,0x21,0x00,0x7e,0x00,0x01,0x00,0x0a,0x00,0x05,0x00,0x24, +0x00,0x48,0x00,0x02,0x00,0x02,0x01,0xdb,0x02,0x06,0x00,0x00,0x02,0x33,0x02,0x33,0x00,0x2c,0x00,0x01,0x00,0x0a,0x00,0x05,0x00,0x24,0x00,0x48,0x00,0x02,0x00,0x04,0x00,0xa9,0x00,0xa9,0x00,0x00,0x01,0x2c,0x01,0x2e,0x00,0x01,0x01,0xa1,0x01,0xa7,0x00,0x04,0x01,0xa9,0x01,0xbe,0x00,0x0b,0x00,0x02,0x00,0x26,0x00,0x02,0x00,0x0f, +0x00,0x8c,0x00,0x8c,0x00,0x6e,0x00,0x8c,0x00,0x8c,0x00,0x8c,0x00,0x8c,0x01,0x96,0x01,0x96,0x00,0x6e,0x00,0x6e,0x00,0x6e,0x00,0x6e,0x00,0x6e,0x00,0x6e,0x00,0x02,0x00,0x0b,0x00,0x0b,0x00,0x0c,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x02,0x00,0x3e,0x00,0x3e,0x00,0x03,0x00,0x40,0x00,0x40,0x00,0x04,0x00,0x5e,0x00,0x5e,0x00,0x05, +0x00,0x60,0x00,0x60,0x00,0x06,0x00,0xa2,0x00,0xa2,0x00,0x07,0x00,0xa4,0x00,0xa4,0x00,0x08,0x00,0xaa,0x00,0xab,0x00,0x09,0x00,0xb2,0x00,0xb3,0x00,0x0b,0x00,0xbe,0x00,0xbf,0x00,0x0d,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4a,0x00,0x02,0x00,0x02,0x0f,0x2c,0x0f,0x2d,0x00,0x00, +0x0f,0x30,0x0f,0x31,0x00,0x02,0x00,0x01,0x00,0x01,0x09,0x73,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4b,0x00,0x01,0x00,0x02,0x0a,0x07,0x0a,0x08,0x00,0x01,0x00,0x01,0x09,0x73,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x8e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4c,0x00,0x02, +0x00,0x14,0x08,0xf5,0x08,0xf5,0x00,0x00,0x08,0xf7,0x08,0xf7,0x00,0x01,0x09,0x02,0x09,0x02,0x00,0x02,0x09,0x0c,0x09,0x0c,0x00,0x03,0x09,0x2a,0x09,0x2b,0x00,0x04,0x09,0x4a,0x09,0x4b,0x00,0x06,0x09,0x8a,0x09,0x8b,0x00,0x08,0x0a,0x05,0x0a,0x08,0x00,0x0a,0x0a,0x0b,0x0a,0x0e,0x00,0x0e,0x0e,0x20,0x0e,0x21,0x00,0x12,0x0e,0x4b, +0x0e,0x4c,0x00,0x14,0x0e,0x4f,0x0e,0x50,0x00,0x16,0x0f,0x2c,0x0f,0x2d,0x00,0x18,0x0f,0x30,0x0f,0x31,0x00,0x1a,0x0f,0x34,0x0f,0x35,0x00,0x1c,0x13,0x1c,0x13,0x1c,0x00,0x1e,0x13,0x1f,0x13,0x20,0x00,0x1f,0x13,0x23,0x13,0x23,0x00,0x21,0x14,0x59,0x14,0x59,0x00,0x22,0x14,0x7e,0x14,0x7e,0x00,0x23,0x00,0x01,0x00,0x01,0x09,0x73, +0x00,0x01,0x03,0x7e,0x00,0x05,0x00,0x00,0x00,0x2e,0x00,0x66,0x00,0xd4,0x01,0x48,0x02,0x04,0x02,0x84,0x02,0x84,0x02,0x84,0x01,0x48,0x02,0x84,0x02,0x92,0x02,0x92,0x02,0x9a,0x02,0x92,0x02,0xc6,0x03,0x76,0x02,0x84,0x02,0x84,0x01,0x48,0x01,0x48,0x00,0x66,0x01,0x48,0x02,0x84,0x01,0x48,0x01,0x48,0x02,0xc6,0x02,0xc6,0x02,0xc6, +0x02,0xc6,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x01,0x48,0x02,0x84,0x02,0x84,0x01,0x48,0x02,0x84,0x01,0x48,0x02,0xc6,0x02,0x84,0x01,0x48,0x00,0x66,0x01,0x48,0x01,0x48,0x01,0x48,0x01,0x48,0x00,0x12,0x0b,0x6b,0xff,0xec,0xff,0xec,0x0b,0x74,0xff,0xec,0xff,0xec,0x0b,0x7a,0xff,0xec,0xff,0xec,0x0b,0x7f,0xff,0xec,0xff,0xec, +0x0b,0x81,0xff,0xec,0xff,0xec,0x0b,0x8a,0xff,0xec,0xff,0xec,0x0b,0x8b,0xff,0xec,0xff,0xec,0x0b,0x8d,0xff,0xec,0xff,0xec,0x0b,0x8f,0xff,0xec,0xff,0xec,0x0b,0x92,0xff,0xec,0xff,0xec,0x0b,0x97,0xff,0xec,0xff,0xec,0x0b,0x98,0xff,0xec,0xff,0xec,0x0b,0x99,0xff,0xec,0xff,0xec,0x0b,0x9a,0xff,0xec,0xff,0xec,0x0b,0xa0,0xff,0xec, +0xff,0xec,0x0b,0xaf,0xff,0xec,0xff,0xec,0x0b,0xb1,0xff,0xec,0xff,0xec,0x0b,0xbb,0xff,0xec,0xff,0xec,0x00,0x13,0x0b,0x6b,0xff,0xec,0xff,0xec,0x0b,0x71,0xff,0xec,0xff,0xec,0x0b,0x74,0xff,0xec,0xff,0xec,0x0b,0x7a,0xff,0xec,0xff,0xec,0x0b,0x7f,0xff,0xec,0xff,0xec,0x0b,0x81,0xff,0xec,0xff,0xec,0x0b,0x8a,0xff,0xec,0xff,0xec, +0x0b,0x8b,0xff,0xec,0xff,0xec,0x0b,0x8d,0xff,0xec,0xff,0xec,0x0b,0x8f,0xff,0xec,0xff,0xec,0x0b,0x92,0xff,0xec,0xff,0xec,0x0b,0x97,0xff,0xec,0xff,0xec,0x0b,0x98,0xff,0xec,0xff,0xec,0x0b,0x99,0xff,0xec,0xff,0xec,0x0b,0x9a,0xff,0xec,0xff,0xec,0x0b,0xa0,0xff,0xec,0xff,0xec,0x0b,0xaf,0xff,0xec,0xff,0xec,0x0b,0xb1,0xff,0xec, +0xff,0xec,0x0b,0xbb,0xff,0xec,0xff,0xec,0x00,0x1f,0x0b,0x69,0xff,0xce,0xff,0xce,0x0b,0x6a,0xff,0xce,0xff,0xce,0x0b,0x6c,0xff,0xce,0xff,0xce,0x0b,0x6e,0x00,0x28,0x00,0x28,0x0b,0x6f,0xff,0xce,0xff,0xce,0x0b,0x70,0xff,0xd8,0xff,0xd8,0x0b,0x73,0xff,0xd8,0xff,0xd8,0x0b,0x75,0xff,0xce,0xff,0xce,0x0b,0x76,0xff,0xce,0xff,0xce, +0x0b,0x78,0xff,0xce,0xff,0xce,0x0b,0x79,0xff,0xd8,0xff,0xd8,0x0b,0x7b,0xff,0xce,0xff,0xce,0x0b,0x7c,0xff,0xd8,0xff,0xd8,0x0b,0x7d,0x00,0x14,0x00,0x14,0x0b,0x82,0xff,0xce,0xff,0xce,0x0b,0x90,0xff,0xce,0xff,0xce,0x0b,0x91,0xff,0xd8,0xff,0xd8,0x0b,0x93,0xff,0xce,0xff,0xce,0x0b,0x94,0xff,0xce,0xff,0xce,0x0b,0x95,0xff,0xce, +0xff,0xce,0x0b,0x9f,0xff,0xce,0xff,0xce,0x0b,0xa1,0xff,0xce,0xff,0xce,0x0b,0xa4,0xff,0xd8,0xff,0xd8,0x0b,0xa6,0xff,0xce,0xff,0xce,0x0b,0xa7,0xff,0xd8,0xff,0xd8,0x0b,0xa9,0xff,0xce,0xff,0xce,0x0b,0xab,0xff,0xd8,0xff,0xd8,0x0b,0xac,0xff,0xce,0xff,0xce,0x0b,0xad,0xff,0xd8,0xff,0xd8,0x0b,0xb0,0xff,0xce,0xff,0xce,0x0b,0xb2, +0xff,0xce,0xff,0xce,0x00,0x15,0x0b,0x6a,0xff,0xe2,0xff,0xe2,0x0b,0x6c,0xff,0xec,0xff,0xec,0x0b,0x6e,0x00,0x14,0x00,0x14,0x0b,0x6f,0xff,0xec,0xff,0xec,0x0b,0x75,0xff,0xec,0xff,0xec,0x0b,0x76,0xff,0xec,0xff,0xec,0x0b,0x78,0xff,0xec,0xff,0xec,0x0b,0x7b,0xff,0xec,0xff,0xec,0x0b,0x7d,0x00,0x14,0x00,0x14,0x0b,0x82,0xff,0xec, +0xff,0xec,0x0b,0x90,0xff,0xec,0xff,0xec,0x0b,0x93,0xff,0xec,0xff,0xec,0x0b,0x94,0xff,0xec,0xff,0xec,0x0b,0x95,0xff,0xec,0xff,0xec,0x0b,0x9f,0xff,0xe2,0xff,0xe2,0x0b,0xa1,0xff,0xec,0xff,0xec,0x0b,0xa6,0xff,0xec,0xff,0xec,0x0b,0xa9,0xff,0xec,0xff,0xec,0x0b,0xac,0xff,0xec,0xff,0xec,0x0b,0xb0,0xff,0xec,0xff,0xec,0x0b,0xb2, +0xff,0xec,0xff,0xec,0x00,0x02,0x0b,0x6a,0xff,0xe2,0xff,0xe2,0x0b,0x9f,0xff,0xe2,0xff,0xe2,0x00,0x01,0x0b,0x6e,0x00,0x14,0x00,0x14,0x00,0x07,0x0b,0x79,0xff,0xe2,0xff,0xe2,0x0b,0x7c,0xff,0xe2,0xff,0xe2,0x0b,0x91,0xff,0xe2,0xff,0xe2,0x0b,0xa4,0xff,0xe2,0xff,0xe2,0x0b,0xa7,0xff,0xe2,0xff,0xe2,0x0b,0xab,0xff,0xe2,0xff,0xe2, +0x0b,0xad,0xff,0xe2,0xff,0xe2,0x00,0x1d,0x0b,0x69,0xff,0xec,0xff,0xec,0x0b,0x6a,0xff,0xe2,0xff,0xe2,0x0b,0x6c,0xff,0xec,0xff,0xec,0x0b,0x6f,0xff,0xec,0xff,0xec,0x0b,0x70,0xff,0xec,0xff,0xec,0x0b,0x73,0xff,0xec,0xff,0xec,0x0b,0x75,0xff,0xec,0xff,0xec,0x0b,0x76,0xff,0xec,0xff,0xec,0x0b,0x78,0xff,0xec,0xff,0xec,0x0b,0x79, +0xff,0xec,0xff,0xec,0x0b,0x7b,0xff,0xec,0xff,0xec,0x0b,0x7c,0xff,0xec,0xff,0xec,0x0b,0x82,0xff,0xec,0xff,0xec,0x0b,0x90,0xff,0xec,0xff,0xec,0x0b,0x91,0xff,0xec,0xff,0xec,0x0b,0x93,0xff,0xec,0xff,0xec,0x0b,0x94,0xff,0xec,0xff,0xec,0x0b,0x95,0xff,0xec,0xff,0xec,0x0b,0x9f,0xff,0xe2,0xff,0xe2,0x0b,0xa1,0xff,0xec,0xff,0xec, +0x0b,0xa4,0xff,0xec,0xff,0xec,0x0b,0xa6,0xff,0xec,0xff,0xec,0x0b,0xa7,0xff,0xec,0xff,0xec,0x0b,0xa9,0xff,0xec,0xff,0xec,0x0b,0xab,0xff,0xec,0xff,0xec,0x0b,0xac,0xff,0xec,0xff,0xec,0x0b,0xad,0xff,0xec,0xff,0xec,0x0b,0xb0,0xff,0xec,0xff,0xec,0x0b,0xb2,0xff,0xec,0xff,0xec,0x00,0x01,0x0b,0x81,0xff,0xe2,0xff,0xe2,0x00,0x02, +0x00,0x16,0x0b,0x68,0x0b,0x68,0x00,0x00,0x0b,0x6a,0x0b,0x6b,0x00,0x01,0x0b,0x6e,0x0b,0x6e,0x00,0x03,0x0b,0x70,0x0b,0x71,0x00,0x04,0x0b,0x73,0x0b,0x74,0x00,0x06,0x0b,0x79,0x0b,0x7a,0x00,0x08,0x0b,0x7d,0x0b,0x7f,0x00,0x0a,0x0b,0x81,0x0b,0x82,0x00,0x0d,0x0b,0x84,0x0b,0x85,0x00,0x0f,0x0b,0x8a,0x0b,0x8b,0x00,0x11,0x0b,0x8e, +0x0b,0x8f,0x00,0x13,0x0b,0x91,0x0b,0x92,0x00,0x15,0x0b,0x94,0x0b,0x94,0x00,0x17,0x0b,0x97,0x0b,0x9d,0x00,0x18,0x0b,0x9f,0x0b,0xa0,0x00,0x1f,0x0b,0xa4,0x0b,0xa4,0x00,0x21,0x0b,0xa7,0x0b,0xa8,0x00,0x22,0x0b,0xab,0x0b,0xab,0x00,0x24,0x0b,0xb0,0x0b,0xb1,0x00,0x25,0x0b,0xb5,0x0b,0xb5,0x00,0x27,0x0b,0xb7,0x0b,0xb7,0x00,0x28, +0x0b,0xba,0x0b,0xbe,0x00,0x29,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x28,0x00,0x01,0x00,0x00,0x00,0x4d,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf, +0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x02,0x00,0x44,0x00,0x44,0x00,0x01,0x00,0x00,0x00,0x4e,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x28,0x00,0x02,0x00,0x30,0x00,0x5e,0x00,0x01, +0x00,0x00,0x00,0x4e,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x14,0x00,0x02,0x00,0x1c,0x00,0x50,0x00,0x01,0x00,0x00,0x00,0x4e,0x00,0x01,0x00,0x02,0x0b,0x53,0x0b,0x57,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9, +0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x5a,0x00,0x01,0x00,0x01,0x0b,0x58,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x54,0x00,0x01,0x00,0x5a,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x02,0x00,0x4e,0x00,0x48,0x00,0x01,0x00,0x00,0x00,0x4f, +0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x03,0x00,0x3a,0x00,0x3a,0x00,0x34,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x04,0x00,0x24,0x00,0x24,0x00,0x24,0x00,0x1e,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x02,0x00,0x05,0x0b,0x5f, +0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xdd,0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x30,0x00,0x02,0x02,0x36,0x02,0x3c,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x1c,0x00,0x02,0x02,0x22,0x02,0x38,0x00,0x01, +0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x08,0x00,0x03,0x02,0x0e,0x02,0x2a,0x02,0x24,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xf2,0x00,0x02,0x01,0xf8,0x02,0x36,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xde,0x00,0x03,0x01,0xe4,0x02,0x00,0x02,0x22,0x00,0x01, +0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xc8,0x00,0x01,0x02,0x12,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xb6,0x00,0x03,0x01,0xd8,0x01,0xbc,0x01,0xc2,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xa0,0x00,0x04,0x01,0xc2,0x01,0xc2,0x01,0xa6,0x01,0xac,0x00,0x01, +0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x88,0x00,0x05,0x01,0xaa,0x01,0xaa,0x01,0xaa,0x01,0x8e,0x01,0x94,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x6e,0x00,0x03,0x01,0x90,0x01,0x74,0x01,0x8a,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x58,0x00,0x04,0x01,0x7a, +0x01,0x5e,0x01,0x7a,0x01,0x74,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x40,0x00,0x04,0x01,0x62,0x01,0x62,0x01,0x46,0x01,0x5c,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x28,0x00,0x05,0x01,0x4a,0x01,0x4a,0x01,0x2e,0x01,0x4a,0x01,0x44,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03, +0x00,0x00,0x00,0x01,0x01,0x0e,0x00,0x05,0x01,0x30,0x01,0x30,0x01,0x30,0x01,0x14,0x01,0x2a,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xf4,0x00,0x06,0x01,0x16,0x01,0x16,0x01,0x16,0x00,0xfa,0x01,0x16,0x01,0x10,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xd8,0x00,0x03,0x00,0xfa, +0x00,0xde,0x01,0x1c,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xc2,0x00,0x04,0x00,0xe4,0x00,0xc8,0x00,0xe4,0x01,0x06,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xaa,0x00,0x04,0x00,0xcc,0x00,0xcc,0x00,0xb0,0x00,0xee,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01, +0x00,0x92,0x00,0x05,0x00,0xb4,0x00,0xb4,0x00,0x98,0x00,0xb4,0x00,0xd6,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x78,0x00,0x05,0x00,0x9a,0x00,0x9a,0x00,0x9a,0x00,0x7e,0x00,0xbc,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x5e,0x00,0x06,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x64, +0x00,0x80,0x00,0xa2,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x02,0x00,0x64,0x00,0x8c,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x03,0x00,0x50,0x00,0x50,0x00,0x78,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x04,0x00,0x3a, +0x00,0x3a,0x00,0x3a,0x00,0x62,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x02,0x00,0x02,0x0b,0x53,0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0xb3,0x00,0x02,0x00,0x05,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf, +0x0b,0xdd,0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x01,0x00,0x01,0x0b,0xa2,0x00,0x01,0x00,0x01,0x0b,0x9d,0x00,0x03,0x00,0x00,0x00,0x01,0x03,0x3c,0x00,0x02,0x03,0x42,0x03,0x82,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x03,0x28,0x00,0x03,0x03,0xa8,0x03,0x2e,0x03,0x6e, +0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x03,0x12,0x00,0x04,0x03,0x92,0x03,0x92,0x03,0x18,0x03,0x58,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0xfa,0x00,0x03,0x03,0x00,0x03,0x9c,0x03,0xa2,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0xe4,0x00,0x04,0x03,0x64, +0x02,0xea,0x03,0x86,0x03,0x8c,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0xcc,0x00,0x05,0x03,0x4c,0x03,0x4c,0x02,0xd2,0x03,0x6e,0x03,0x74,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0xb2,0x00,0x02,0x02,0xb8,0x03,0x6a,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01, +0x02,0x9e,0x00,0x03,0x03,0x1e,0x02,0xa4,0x03,0x56,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x88,0x00,0x04,0x03,0x08,0x03,0x08,0x02,0x8e,0x03,0x40,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x70,0x00,0x03,0x02,0x76,0x03,0x12,0x03,0x2e,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03, +0x00,0x00,0x00,0x01,0x02,0x5a,0x00,0x04,0x02,0xda,0x02,0x60,0x02,0xfc,0x03,0x18,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x42,0x00,0x05,0x02,0xc2,0x02,0xc2,0x02,0x48,0x02,0xe4,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x28,0x00,0x03,0x02,0x2e,0x02,0xca,0x02,0xec, +0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x12,0x00,0x04,0x02,0x92,0x02,0x18,0x02,0xb4,0x02,0xd6,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xfa,0x00,0x05,0x02,0x7a,0x02,0x7a,0x02,0x00,0x02,0x9c,0x02,0xbe,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xe0, +0x00,0x03,0x01,0xe6,0x02,0x60,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xca,0x00,0x04,0x02,0x4a,0x01,0xd0,0x02,0x4a,0x02,0x10,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xb2,0x00,0x05,0x02,0x32,0x02,0x32,0x01,0xb8,0x02,0x32,0x01,0xf8,0x00,0x01,0x00,0x00,0x00,0x51, +0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x98,0x00,0x04,0x01,0x9e,0x02,0x18,0x02,0x3a,0x02,0x40,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x80,0x00,0x05,0x02,0x00,0x01,0x86,0x02,0x00,0x02,0x22,0x02,0x28,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x66,0x00,0x06,0x01,0xe6,0x01,0xe6, +0x01,0x6c,0x01,0xe6,0x02,0x08,0x02,0x0e,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x4a,0x00,0x03,0x01,0x50,0x01,0xca,0x02,0x02,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x34,0x00,0x04,0x01,0xb4,0x01,0x3a,0x01,0xb4,0x01,0xec,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00, +0x00,0x01,0x01,0x1c,0x00,0x05,0x01,0x9c,0x01,0x9c,0x01,0x22,0x01,0x9c,0x01,0xd4,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x02,0x00,0x05,0x01,0x08,0x01,0x82,0x01,0xa4,0x01,0xcc,0x01,0xd2,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xe8,0x00,0x06,0x01,0x68,0x00,0xee,0x01,0x68, +0x01,0x8a,0x01,0xb2,0x01,0xb8,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xcc,0x00,0x07,0x01,0x4c,0x01,0x4c,0x00,0xd2,0x01,0x4c,0x01,0x6e,0x01,0x96,0x01,0x9c,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xae,0x00,0x04,0x00,0xb4,0x01,0x2e,0x01,0x50,0x01,0x6c,0x00,0x01,0x00,0x00, +0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x05,0x01,0x16,0x00,0x9c,0x01,0x16,0x01,0x38,0x01,0x54,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x7c,0x00,0x06,0x00,0xfc,0x00,0xfc,0x00,0x82,0x00,0xfc,0x01,0x1e,0x01,0x3a,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x60, +0x00,0x04,0x00,0x66,0x00,0xe0,0x01,0x02,0x01,0x24,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x48,0x00,0x05,0x00,0xc8,0x00,0x4e,0x00,0xc8,0x00,0xea,0x01,0x0c,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x06,0x00,0xae,0x00,0xae,0x00,0x34,0x00,0xae,0x00,0xd0,0x00,0xf2, +0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x01,0x00,0xe8,0x00,0x01,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x0a,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcc,0x00,0x06,0x0b,0xcf,0x0b,0xcf,0x00,0x07, +0x0b,0xd6,0x0b,0xd6,0x00,0x08,0x0b,0xd9,0x0b,0xda,0x00,0x09,0x0b,0xdd,0x0b,0xdd,0x00,0x0b,0x0b,0xe1,0x0b,0xe1,0x00,0x0c,0x12,0x5c,0x12,0x5d,0x00,0x0d,0x00,0x02,0x00,0x09,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x69,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1e,0x0b,0x97,0x0b,0x9a,0x00,0x2c,0x0b,0x9d,0x0b,0xa6,0x00,0x30, +0x0b,0xa8,0x0b,0xb2,0x00,0x3a,0x0b,0xb4,0x0b,0xb7,0x00,0x45,0x0b,0xe0,0x0b,0xe0,0x00,0x49,0x12,0x5f,0x12,0x62,0x00,0x4a,0x00,0x02,0x00,0x05,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xdd,0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x01,0x00,0x01,0x0b,0x68, +0x00,0x02,0x00,0x02,0x0b,0x53,0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x9d,0x00,0x01,0x00,0x01,0x0b,0xb3,0x00,0x01,0x00,0x01,0x0b,0xa2,0x00,0x01,0x00,0x01,0x0b,0x6d,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x01,0x00,0x01,0x0b,0x61,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x1a,0x00,0x01,0x00,0x42, +0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x52,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x02,0x00,0x03,0x0b,0xc0,0x0b,0xc0,0x00,0x00, +0x0b,0xd7,0x0b,0xd7,0x00,0x01,0x0b,0xdc,0x0b,0xdc,0x00,0x02,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xf0,0x00,0x01,0x00,0xf8,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xde,0x00,0x02,0x01,0x0e,0x00,0xe6,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xca,0x00,0x03,0x00,0xfa,0x00,0xfa, +0x00,0xd2,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xb4,0x00,0x01,0x01,0x06,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xa2,0x00,0x02,0x00,0xd2,0x00,0xf4,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x8e,0x00,0x03,0x00,0xbe,0x00,0xbe,0x00,0xe0,0x00,0x01, +0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x78,0x00,0x01,0x00,0xd0,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x66,0x00,0x02,0x00,0x96,0x00,0xbe,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x52,0x00,0x03,0x00,0x82,0x00,0x82,0x00,0xaa,0x00,0x01,0x00,0x00,0x00,0x53, +0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x01,0x00,0x9a,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2a,0x00,0x02,0x00,0x5a,0x00,0x88,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x16,0x00,0x03,0x00,0x46,0x00,0x46,0x00,0x74,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x01,0x00,0x02, +0x0b,0xc0,0x0b,0xd7,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x02,0x00,0x05,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xdd, +0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x01,0x00,0x01,0x0b,0x62,0x00,0x01,0x00,0x01,0x11,0x86,0x00,0x01,0x00,0x01,0x0b,0x07,0x00,0x03,0x00,0x01,0x00,0x40,0x00,0x01,0x00,0x46,0x00,0x01,0x00,0x4e,0x00,0x01,0x00,0x00,0x00,0x54,0x00,0x03,0x00,0x01,0x00,0x2c,0x00,0x01,0x00,0x32,0x00,0x02, +0x00,0x74,0x00,0x7a,0x00,0x01,0x00,0x00,0x00,0x54,0x00,0x03,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x1c,0x00,0x02,0x00,0x5e,0x00,0x64,0x00,0x01,0x00,0x00,0x00,0x54,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x01,0x00,0x02,0x0b,0xc0,0x0b,0xd7,0x00,0x02,0x00,0x09,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x69,0x0b,0x85,0x00,0x01,0x0b,0x88, +0x0b,0x95,0x00,0x1e,0x0b,0x97,0x0b,0x9a,0x00,0x2c,0x0b,0x9d,0x0b,0xa6,0x00,0x30,0x0b,0xa8,0x0b,0xb2,0x00,0x3a,0x0b,0xb4,0x0b,0xb7,0x00,0x45,0x0b,0xe0,0x0b,0xe0,0x00,0x49,0x12,0x5f,0x12,0x62,0x00,0x4a,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x02,0x00,0x02,0x0b,0x53,0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b,0x00,0x03, +0x00,0x02,0x00,0xee,0x00,0xee,0x00,0x01,0x01,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x03,0x01,0x08,0x00,0xda,0x00,0xda,0x00,0x01,0x01,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x04,0x00,0xf2,0x00,0xf2,0x00,0xc4,0x00,0xc4,0x00,0x01,0x00,0xec,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55, +0x00,0x03,0x00,0x02,0x00,0xac,0x00,0xda,0x00,0x01,0x00,0xd4,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x03,0x00,0xc6,0x00,0x98,0x00,0xc6,0x00,0x01,0x00,0xc0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x04,0x00,0xb0,0x00,0xb0,0x00,0x82,0x00,0xb0,0x00,0x01,0x00,0xaa,0x00,0x00,0x00,0x01,0x00,0x00, +0x00,0x55,0x00,0x03,0x00,0x02,0x00,0x6a,0x00,0xc6,0x00,0x01,0x00,0x92,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x03,0x00,0x84,0x00,0x56,0x00,0xb2,0x00,0x01,0x00,0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x04,0x00,0x6e,0x00,0x6e,0x00,0x40,0x00,0x9c,0x00,0x01,0x00,0x68,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x02,0x00,0x28,0x00,0x8a,0x00,0x01,0x00,0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x7c,0x00,0x01,0x00,0x3c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95, +0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x01,0x0b,0xce,0x00,0x02,0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61,0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd,0x00,0x11,0x0b,0xe1,0x0b,0xe1, +0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x01,0x00,0x01,0x0b,0x62,0x00,0x01,0x00,0x01,0x11,0x86,0x00,0x01,0x00,0x01,0x0b,0x07,0x00,0x03,0x00,0x03,0x00,0x64,0x00,0x6a,0x00,0x6a,0x00,0x01,0x00,0x92,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x56,0x00,0x03,0x00,0x04,0x00,0x4e,0x00,0x54,0x00,0x82,0x00,0x54,0x00,0x01,0x00,0x7c, +0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x56,0x00,0x03,0x00,0x05,0x00,0x36,0x00,0x3c,0x00,0x6a,0x00,0x6a,0x00,0x3c,0x00,0x01,0x00,0x64,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x56,0x00,0x03,0x00,0x06,0x00,0x1c,0x00,0x22,0x00,0x50,0x00,0x50,0x00,0x50,0x00,0x22,0x00,0x01,0x00,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x56,0x00,0x01, +0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x01,0x0b,0xce,0x00,0x02,0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61, +0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd,0x00,0x11,0x0b,0xe1,0x0b,0xe1,0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x03,0x00,0x02,0x06,0x38,0x06,0x3e,0x00,0x01,0x06,0x66,0x00,0x01,0x06,0xa6,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x06,0x22,0x06,0xca,0x06,0x28, +0x00,0x01,0x06,0x50,0x00,0x01,0x06,0x90,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x06,0x0a,0x06,0x10,0x00,0x01,0x06,0x38,0x00,0x02,0x06,0xba,0x06,0x78,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x06,0xa2,0x05,0xf2,0x05,0xf8,0x00,0x01,0x06,0x20,0x00,0x01,0x06,0x60,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03, +0x00,0x04,0x06,0x8a,0x06,0x8a,0x05,0xda,0x05,0xe0,0x00,0x01,0x06,0x08,0x00,0x01,0x06,0x48,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x06,0x70,0x05,0xc0,0x05,0xc6,0x00,0x01,0x05,0xee,0x00,0x02,0x06,0x70,0x06,0x2e,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x06,0x56,0x06,0x56,0x05,0xa6,0x05,0xac,0x00,0x01, +0x05,0xd4,0x00,0x02,0x06,0x56,0x06,0x14,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x05,0x8a,0x06,0x32,0x05,0x90,0x00,0x01,0x05,0xb8,0x00,0x02,0x06,0x3a,0x05,0xf8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x06,0x20,0x05,0x70,0x06,0x18,0x05,0x76,0x00,0x01,0x05,0x9e,0x00,0x01,0x05,0xde,0x00,0x01,0x00,0x00, +0x00,0x57,0x00,0x03,0x00,0x05,0x06,0x06,0x06,0x06,0x05,0x56,0x05,0xfe,0x05,0x5c,0x00,0x01,0x05,0x84,0x00,0x01,0x05,0xc4,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x05,0xea,0x05,0x3a,0x05,0xe2,0x05,0x40,0x00,0x01,0x05,0x68,0x00,0x02,0x05,0xea,0x05,0xa8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x05,0x05,0xce, +0x05,0xce,0x05,0x1e,0x05,0xc6,0x05,0x24,0x00,0x01,0x05,0x4c,0x00,0x02,0x05,0xce,0x05,0x8c,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x05,0x00,0x05,0x06,0x00,0x01,0x05,0x2e,0x00,0x02,0x05,0xd2,0x05,0xd8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x04,0xe8,0x05,0x90,0x04,0xee,0x00,0x01,0x05,0x16,0x00,0x02, +0x05,0xba,0x05,0xc0,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x04,0xce,0x04,0xd4,0x00,0x01,0x04,0xfc,0x00,0x03,0x05,0x7e,0x05,0xa0,0x05,0xa6,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x05,0x64,0x04,0xb4,0x04,0xba,0x00,0x01,0x04,0xe2,0x00,0x02,0x05,0x86,0x05,0x8c,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03, +0x00,0x04,0x05,0x4a,0x05,0x4a,0x04,0x9a,0x04,0xa0,0x00,0x01,0x04,0xc8,0x00,0x02,0x05,0x6c,0x05,0x72,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x05,0x2e,0x04,0x7e,0x04,0x84,0x00,0x01,0x04,0xac,0x00,0x03,0x05,0x2e,0x05,0x50,0x05,0x56,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x05,0x12,0x05,0x12,0x04,0x62, +0x04,0x68,0x00,0x01,0x04,0x90,0x00,0x03,0x05,0x12,0x05,0x34,0x05,0x3a,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x04,0x44,0x04,0xec,0x04,0x4a,0x00,0x01,0x04,0x72,0x00,0x03,0x04,0xf4,0x05,0x16,0x05,0x1c,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x04,0xd8,0x04,0x28,0x04,0xd0,0x04,0x2e,0x00,0x01,0x04,0x56, +0x00,0x02,0x04,0xfa,0x05,0x00,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x05,0x04,0xbc,0x04,0xbc,0x04,0x0c,0x04,0xb4,0x04,0x12,0x00,0x01,0x04,0x3a,0x00,0x02,0x04,0xde,0x04,0xe4,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x04,0x9e,0x03,0xee,0x04,0x96,0x03,0xf4,0x00,0x01,0x04,0x1c,0x00,0x03,0x04,0x9e,0x04,0xc0, +0x04,0xc6,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x05,0x04,0x80,0x04,0x80,0x03,0xd0,0x04,0x78,0x03,0xd6,0x00,0x01,0x03,0xfe,0x00,0x03,0x04,0x80,0x04,0xa2,0x04,0xa8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x03,0xb0,0x03,0xb6,0x00,0x01,0x03,0xde,0x00,0x02,0x04,0x82,0x04,0x98,0x00,0x01,0x00,0x00,0x00,0x57, +0x00,0x03,0x00,0x02,0x03,0x98,0x03,0x9e,0x00,0x01,0x03,0xc6,0x00,0x02,0x04,0x6a,0x04,0x86,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0x80,0x04,0x28,0x03,0x86,0x00,0x01,0x03,0xae,0x00,0x02,0x04,0x52,0x04,0x68,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0x66,0x04,0x0e,0x03,0x6c,0x00,0x01,0x03,0x94, +0x00,0x02,0x04,0x38,0x04,0x54,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x03,0x4c,0x03,0x52,0x00,0x01,0x03,0x7a,0x00,0x03,0x03,0xfc,0x04,0x1e,0x04,0x34,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0xe2,0x03,0x32,0x03,0x38,0x00,0x01,0x03,0x60,0x00,0x02,0x04,0x04,0x04,0x1a,0x00,0x01,0x00,0x00,0x00,0x57, +0x00,0x03,0x00,0x04,0x03,0xc8,0x03,0xc8,0x03,0x18,0x03,0x1e,0x00,0x01,0x03,0x46,0x00,0x02,0x03,0xea,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0xac,0x02,0xfc,0x03,0x02,0x00,0x01,0x03,0x2a,0x00,0x03,0x03,0xac,0x03,0xce,0x03,0xe4,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x03,0x90,0x03,0x90, +0x02,0xe0,0x02,0xe6,0x00,0x01,0x03,0x0e,0x00,0x03,0x03,0x90,0x03,0xb2,0x03,0xc8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x02,0xc2,0x02,0xc8,0x00,0x01,0x02,0xf0,0x00,0x03,0x03,0x72,0x03,0x94,0x03,0xb0,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0x58,0x02,0xa8,0x02,0xae,0x00,0x01,0x02,0xd6,0x00,0x02, +0x03,0x7a,0x03,0x96,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x03,0x3e,0x03,0x3e,0x02,0x8e,0x02,0x94,0x00,0x01,0x02,0xbc,0x00,0x02,0x03,0x60,0x03,0x7c,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0x22,0x02,0x72,0x02,0x78,0x00,0x01,0x02,0xa0,0x00,0x03,0x03,0x22,0x03,0x44,0x03,0x60,0x00,0x01,0x00,0x00, +0x00,0x57,0x00,0x03,0x00,0x04,0x03,0x06,0x03,0x06,0x02,0x56,0x02,0x5c,0x00,0x01,0x02,0x84,0x00,0x03,0x03,0x06,0x03,0x28,0x03,0x44,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x02,0x38,0x02,0xe0,0x02,0x3e,0x00,0x01,0x02,0x66,0x00,0x03,0x02,0xe8,0x03,0x0a,0x03,0x20,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04, +0x02,0xcc,0x02,0x1c,0x02,0xc4,0x02,0x22,0x00,0x01,0x02,0x4a,0x00,0x02,0x02,0xee,0x03,0x04,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x02,0xb0,0x02,0x00,0x02,0xa8,0x02,0x06,0x00,0x01,0x02,0x2e,0x00,0x02,0x02,0xd2,0x02,0xe8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x02,0x94,0x01,0xe4,0x02,0x8c,0x01,0xea, +0x00,0x01,0x02,0x12,0x00,0x03,0x02,0x94,0x02,0xb6,0x02,0xcc,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x02,0x76,0x02,0x76,0x00,0x01,0x01,0xf4,0x00,0x03,0x02,0x76,0x02,0x98,0x02,0xae,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x01,0xac,0x02,0x54,0x01,0xb2,0x00,0x01,0x01,0xda,0x00,0x03,0x02,0x5c,0x02,0x7e, +0x02,0x94,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x02,0x40,0x01,0x90,0x02,0x38,0x01,0x96,0x00,0x01,0x01,0xbe,0x00,0x02,0x02,0x62,0x02,0x78,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x05,0x02,0x24,0x02,0x24,0x01,0x74,0x02,0x1c,0x01,0x7a,0x00,0x01,0x01,0xa2,0x00,0x02,0x02,0x46,0x02,0x5c,0x00,0x01,0x00,0x00, +0x00,0x57,0x00,0x03,0x00,0x04,0x02,0x06,0x01,0x56,0x01,0xfe,0x01,0x5c,0x00,0x01,0x01,0x84,0x00,0x03,0x02,0x06,0x02,0x28,0x02,0x3e,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x01,0x38,0x01,0x3e,0x00,0x01,0x01,0x66,0x00,0x01,0x02,0x2c,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x01,0x22,0x01,0xca,0x01,0x28, +0x00,0x01,0x01,0x50,0x00,0x01,0x02,0x16,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x01,0x0a,0x01,0x10,0x00,0x01,0x01,0x38,0x00,0x02,0x01,0xba,0x01,0xfe,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x01,0xa2,0x00,0xf2,0x00,0xf8,0x00,0x01,0x01,0x20,0x00,0x01,0x01,0xe6,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03, +0x00,0x04,0x01,0x8a,0x01,0x8a,0x00,0xda,0x00,0xe0,0x00,0x01,0x01,0x08,0x00,0x01,0x01,0xce,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x01,0x70,0x00,0xc0,0x00,0xc6,0x00,0x01,0x00,0xee,0x00,0x02,0x01,0x70,0x01,0xb4,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x01,0x56,0x01,0x56,0x00,0xa6,0x00,0xac,0x00,0x01, +0x00,0xd4,0x00,0x02,0x01,0x56,0x01,0x9a,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x00,0x8a,0x01,0x32,0x00,0x90,0x00,0x01,0x00,0xb8,0x00,0x02,0x01,0x3a,0x01,0x7e,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x01,0x20,0x00,0x70,0x01,0x18,0x00,0x76,0x00,0x01,0x00,0x9e,0x00,0x01,0x01,0x64,0x00,0x01,0x00,0x00, +0x00,0x57,0x00,0x03,0x00,0x05,0x01,0x06,0x01,0x06,0x00,0x56,0x00,0xfe,0x00,0x5c,0x00,0x01,0x00,0x84,0x00,0x01,0x01,0x4a,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x00,0xea,0x00,0x3a,0x00,0xe2,0x00,0x40,0x00,0x01,0x00,0x68,0x00,0x02,0x00,0xea,0x01,0x2e,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x05,0x00,0xce, +0x00,0xce,0x00,0x1e,0x00,0xc6,0x00,0x24,0x00,0x01,0x00,0x4c,0x00,0x02,0x00,0xce,0x01,0x12,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31, +0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x02,0x00,0x0a,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcc,0x00,0x06,0x0b,0xcf,0x0b,0xcf,0x00,0x07,0x0b,0xd6,0x0b,0xd6,0x00,0x08,0x0b,0xd9,0x0b,0xda,0x00,0x09,0x0b,0xdd,0x0b,0xdd,0x00,0x0b,0x0b,0xe1,0x0b,0xe1,0x00,0x0c, +0x12,0x5c,0x12,0x5d,0x00,0x0d,0x00,0x02,0x00,0x09,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x69,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1e,0x0b,0x97,0x0b,0x9a,0x00,0x2c,0x0b,0x9d,0x0b,0xa6,0x00,0x30,0x0b,0xa8,0x0b,0xb2,0x00,0x3a,0x0b,0xb4,0x0b,0xb7,0x00,0x45,0x0b,0xe0,0x0b,0xe0,0x00,0x49,0x12,0x5f,0x12,0x62,0x00,0x4a, +0x00,0x01,0x00,0x02,0x0b,0x5e,0x0b,0x61,0x00,0x02,0x00,0x05,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xdd,0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x02,0x00,0x02,0x0b,0x53,0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b, +0x00,0x01,0x00,0x01,0x0b,0xb3,0x00,0x01,0x00,0x01,0x0b,0xa2,0x00,0x01,0x00,0x01,0x0b,0x9d,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x58,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x01,0x00,0x02,0x0b,0x53,0x0b,0x57,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1a, +0x00,0x01,0x00,0x00,0x00,0x59,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x02,0x00,0x02,0x0b,0x58,0x0b,0x5b,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x04,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x5a,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x02,0x00,0x02,0x0b,0x54,0x0b,0x56, +0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x03,0x00,0x03,0x00,0x01,0x00,0x3c,0x00,0x01,0x00,0x42,0x00,0x01,0x00,0x70,0x00,0x01,0x00,0x00,0x00,0x5b,0x00,0x03,0x00,0x01,0x00,0x8a,0x00,0x01,0x00,0x2e,0x00,0x01,0x00,0x5c,0x00,0x01,0x00,0x00,0x00,0x5b,0x00,0x03,0x00,0x01,0x00,0x7c,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x48,0x00,0x01, +0x00,0x00,0x00,0x5b,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f, +0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x88,0x00,0x01,0x00,0x01,0x0b,0x89,0x00,0x03,0x00,0x02,0x00,0x3e,0x00,0x6c,0x00,0x01,0x00,0x72,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x5c,0x00,0x03,0x00,0x03,0x00,0x66,0x00,0x7c,0x00,0x82,0x00,0x01,0x00,0x5e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5c,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x94,0x00,0x01,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5c,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01, +0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x53,0x00,0x01,0x00,0x02,0x0b,0xc8,0x0b,0xdb,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9, +0x00,0x0a,0x00,0x01,0x00,0x01,0x0b,0x5f,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x01,0x0b,0x57,0x00,0x03,0x00,0x02,0x00,0x78,0x00,0xa6,0x00,0x01, +0x00,0xac,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x03,0x00,0x02,0x00,0x64,0x00,0xa0,0x00,0x01,0x00,0x98,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x03,0x00,0x02,0x00,0x50,0x00,0x92,0x00,0x01,0x00,0x84,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x03,0x00,0x02,0x00,0x3c,0x00,0x84,0x00,0x01,0x00,0x70,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x03,0x00,0x02,0x00,0x28,0x00,0x76,0x00,0x01,0x00,0x5c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x68,0x00,0x01,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf, +0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x58,0x00,0x01,0x00,0x02,0x0b,0xc8,0x0b,0xdb,0x00,0x01,0x00,0x01,0x0b,0x59,0x00,0x01,0x00,0x01,0x0b,0x5a,0x00,0x01,0x00,0x01,0x0b,0x5b,0x00,0x01,0x00,0x01, +0x0b,0x5d,0x00,0x01,0x00,0x01,0x0b,0xb9,0x00,0x03,0x00,0x02,0x00,0x50,0x00,0x7e,0x00,0x01,0x00,0x84,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5e,0x00,0x03,0x00,0x02,0x00,0x3c,0x00,0x78,0x00,0x01,0x00,0x70,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5e,0x00,0x03,0x00,0x02,0x00,0x28,0x00,0x6a,0x00,0x01,0x00,0x5c,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0x5e,0x00,0x03,0x00,0x02,0x00,0x5c,0x00,0x72,0x00,0x01,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5e,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05, +0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x54,0x00,0x01,0x00,0x02,0x0b,0xc8,0x0b,0xdb,0x00,0x01,0x00,0x01,0x0b,0x55,0x00,0x01,0x00,0x01,0x0b,0x56,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x00,0x01,0x00,0x01,0x0b,0x5f,0x00,0x03,0x00,0x00, +0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x4c,0x00,0x01,0x00,0x00,0x00,0x5f,0x00,0x02,0x00,0x09,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcf,0x00,0x06,0x0b,0xd6,0x0b,0xd7,0x00,0x0a,0x0b,0xd9,0x0b,0xda,0x00,0x0c,0x0b,0xdd,0x0b,0xdd,0x00,0x0e,0x0b,0xe1,0x0b,0xe1, +0x00,0x0f,0x12,0x5c,0x12,0x5d,0x00,0x10,0x00,0x02,0x00,0x09,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcf,0x00,0x06,0x0b,0xd6,0x0b,0xd7,0x00,0x0a,0x0b,0xd9,0x0b,0xda,0x00,0x0c,0x0b,0xdd,0x0b,0xdd,0x00,0x0e,0x0b,0xe1,0x0b,0xe1,0x00,0x0f,0x12,0x5c,0x12,0x5d, +0x00,0x10,0x00,0x03,0x00,0x01,0x00,0x5c,0x00,0x01,0x00,0x8a,0x00,0x01,0x00,0x90,0x00,0x01,0x00,0x00,0x00,0x60,0x00,0x03,0x00,0x01,0x00,0x48,0x00,0x01,0x00,0x76,0x00,0x02,0x00,0x48,0x00,0x7c,0x00,0x01,0x00,0x00,0x00,0x60,0x00,0x03,0x00,0x01,0x00,0x32,0x00,0x01,0x00,0x60,0x00,0x03,0x00,0x32,0x00,0x32,0x00,0x66,0x00,0x01, +0x00,0x00,0x00,0x60,0x00,0x03,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x48,0x00,0x04,0x00,0x1a,0x00,0x1a,0x00,0x1a,0x00,0x4e,0x00,0x01,0x00,0x00,0x00,0x60,0x00,0x02,0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61,0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd,0x00,0x11, +0x0b,0xe1,0x0b,0xe1,0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x01,0x00,0x01,0x0b,0x57,0x00,0x01,0x00,0x01,0x0b,0x75,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x14, +0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x62,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x1e,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x63,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x01, +0x0a,0x14,0x00,0x03,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x1c,0x00,0x02,0x00,0x1c,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x64,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x02, +0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x03,0x00,0x03,0x00,0x16,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x66,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x18,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x67,0x00,0x01,0x00,0x01,0x14,0x6b,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01, +0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6a,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01, +0x00,0x14,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x6b,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x14,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x6c,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x02,0x00,0x01,0x14,0x9e, +0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x14,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x6d,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x1e,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x02,0x00,0x01, +0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x1e,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6f,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x1e,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0x70,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x03,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x1c,0x00,0x02,0x00,0x1c,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x16, +0x00,0x01,0x00,0x1c,0x00,0x02,0x00,0x1c,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x72,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x1c,0x00,0x02,0x00,0x1c,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x73,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x02,0x00,0x01, +0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x00,0x00,0x74,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x03,0x00,0x02,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x00, +0x00,0x75,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x02,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x03,0x00,0x03,0x00,0x16,0x00,0x16, +0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x77,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x03,0x00,0x03,0x00,0x16,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01, +0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x03,0x00,0x16,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x79,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x03,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x01,0x00,0x00, +0x00,0x7a,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x01,0x00,0x00,0x00,0x7b,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x18, +0x00,0x01,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x02,0x00,0x18,0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x7d,0x00,0x02,0x00,0x01,0x14,0x9e, +0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x03,0x00,0x02,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x02,0x00,0x18,0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x7e,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x02,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x02, +0x00,0x18,0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x7f,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x03,0x00,0x03,0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01, +0x0a,0x44,0x00,0x03,0x00,0x03,0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x81,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x03,0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x00, +0x00,0x82,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x03,0x00,0x04,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x83,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x03,0x00,0x04,0x00,0x18, +0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x84,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x04,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x85,0x00,0x02,0x00,0x01,0x14,0x9e, +0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x01,0x00,0x0a,0x00,0x03,0x00,0x64,0xff,0xce,0x00,0x01,0x00,0x01,0x09,0x73,0x00,0x01,0x00,0x0a,0x00,0x03,0x01,0x2c,0xff,0xce,0x00,0x01,0x00,0x01,0x09,0x73,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0xc8,0x00,0x01,0x00,0x01,0x09,0x73,0x00,0x01,0x00,0x0a,0x00,0x05,0xfa,0x5d, +0xfd,0xa8,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0xd4,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfb,0x89,0xfd,0xa8,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0xd4,0x00,0x02,0x00,0x01,0x14,0x88, +0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0xd4,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfc,0xb5,0xfd,0xa8,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x0c,0x00,0x07,0xfc,0xc8,0xfc,0xc7,0xfd,0xa8,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00, +0x00,0x01,0x00,0x0a,0x00,0x05,0xf8,0xe6,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf6,0xcd,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf6,0x8e,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08, +0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfa,0x8d,0xfc,0xb2,0x00,0x02,0x00,0x01, +0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf8,0x74,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf8,0x35,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfb,0x0b,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac, +0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfb,0x0b,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfb,0x0b,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfe,0x59,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01, +0x00,0x0a,0x00,0x05,0xfe,0x59,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfe,0x59,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xff,0x82,0x03,0x4e,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05, +0xfd,0x69,0x03,0x4e,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfd,0x2a,0x03,0x4e,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01, +0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08, +0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e, +0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfa,0x8d,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf8,0x74,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf8,0x35,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00, +0x00,0x01,0x02,0x1c,0x02,0x32,0x00,0x03,0x00,0x0c,0x00,0x3a,0x00,0x0b,0x00,0x00,0x4f,0xd6,0x00,0x02,0x4f,0xd6,0x00,0x02,0x4f,0xd6,0x00,0x02,0x4f,0xd6,0x00,0x00,0x4f,0xd6,0x00,0x01,0x4f,0xd6,0x00,0x01,0x4f,0xd6,0x00,0x01,0x4f,0xd6,0x00,0x01,0x4f,0xd6,0x00,0x02,0x4f,0xd6,0x00,0x01,0x4f,0xd6,0x00,0x50,0x4f,0xae,0x4f,0xb4, +0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x4f,0xcc,0x4f,0xd2,0x4f,0xd8,0x4f,0xde,0x4f,0xe4,0x4f,0xea,0x4f,0xf0,0x4f,0xf6,0x4f,0xfc,0x50,0x02,0x50,0x08,0x50,0x0e,0x50,0x14,0x4f,0xde,0x50,0x1a,0x50,0x20,0x50,0x14,0x50,0x26,0x50,0x2c,0x50,0x32,0x50,0x38,0x50,0x3e,0x50,0x44,0x50,0x4a,0x50,0x50,0x4f,0xde,0x50,0x1a,0x50,0x20,0x50,0x56, +0x50,0x5c,0x50,0x62,0x50,0x68,0x50,0x6e,0x50,0x74,0x50,0x7a,0x50,0x80,0x50,0x86,0x50,0x8c,0x50,0x92,0x50,0x98,0x50,0x8c,0x50,0x92,0x50,0x98,0x50,0x9e,0x50,0xa4,0x50,0xaa,0x50,0xb0,0x50,0xb6,0x50,0xbc,0x50,0xc2,0x50,0xc8,0x50,0xce,0x50,0xd4,0x50,0xda,0x50,0xe0,0x50,0xe6,0x50,0xec,0x50,0xf2,0x50,0xf8,0x50,0xfe,0x51,0x04, +0x51,0x0a,0x51,0x10,0x51,0x16,0x51,0x1c,0x51,0x22,0x51,0x28,0x51,0x2e,0x51,0x34,0x51,0x3a,0x51,0x40,0x51,0x46,0x51,0x4c,0x51,0x52,0x51,0x58,0x51,0x5e,0x51,0x64,0x51,0x6a,0x51,0x70,0x51,0x76,0x51,0x7c,0x51,0x82,0x51,0x76,0x51,0x7c,0x51,0x82,0x51,0x76,0x51,0x7c,0x51,0x82,0x50,0x56,0x50,0x5c,0x50,0x62,0x50,0x56,0x50,0x5c, +0x50,0x62,0x50,0x7a,0x50,0x80,0x50,0x86,0x50,0x7a,0x50,0x80,0x50,0x86,0x51,0x88,0x51,0x8e,0x51,0x94,0x51,0x9a,0x51,0xa0,0x51,0xa6,0x4f,0xc0,0x4f,0xc6,0x4f,0xcc,0x4f,0xf6,0x4f,0xfc,0x50,0x02,0x50,0x08,0x50,0x0e,0x50,0x14,0x51,0xac,0x51,0xb2,0x51,0xb8,0x50,0x7a,0x50,0x80,0x50,0x86,0x50,0x8c,0x50,0x92,0x50,0x98,0x51,0x40, +0x51,0x46,0x51,0x4c,0x51,0x64,0x51,0x6a,0x51,0x70,0x51,0x52,0x51,0x58,0x51,0x5e,0x51,0x52,0x51,0x58,0x51,0x5e,0x51,0x52,0x51,0x58,0x51,0x5e,0x51,0x52,0x51,0x58,0x51,0x5e,0x4f,0xc0,0x4f,0xc6,0x4f,0xcc,0x4f,0xd2,0x4f,0xd8,0x4f,0xde,0x4f,0xe4,0x4f,0xea,0x4f,0xf0,0x4f,0xf6,0x4f,0xfc,0x50,0x02,0x50,0x08,0x50,0x0e,0x50,0x14, +0x51,0xbe,0x51,0xc4,0x51,0xca,0x51,0xd0,0x51,0xd6,0x51,0xdc,0x50,0x44,0x50,0x4a,0x50,0x50,0x51,0xbe,0x51,0xc4,0x51,0xca,0x50,0x56,0x50,0x5c,0x50,0x62,0x50,0x68,0x50,0x6e,0x50,0x74,0x50,0x7a,0x50,0x80,0x50,0x86,0x50,0x8c,0x50,0x92,0x50,0x98,0x50,0xb0,0x50,0xb6,0x50,0xbc,0x50,0xc2,0x50,0xc8,0x50,0xce,0x50,0xe6,0x50,0xec, +0x50,0xf2,0x50,0xf8,0x50,0xfe,0x51,0x04,0x51,0x1c,0x51,0x22,0x51,0x28,0x51,0x2e,0x51,0x34,0x51,0x3a,0x51,0x40,0x51,0x46,0x51,0x4c,0x51,0x52,0x51,0x58,0x51,0x5e,0x51,0x64,0x51,0x6a,0x51,0x70,0x4f,0xde,0x50,0x1a,0x50,0x20,0x4f,0xd2,0x4f,0xd8,0x4f,0xde,0x50,0x68,0x50,0x6e,0x50,0x74,0x50,0xf8,0x50,0xfe,0x51,0x04,0x51,0x9a, +0x51,0xa0,0x51,0xa6,0x4f,0xe4,0x4f,0xea,0x4f,0xf0,0x4f,0xf6,0x4f,0xfc,0x50,0x02,0x50,0x08,0x50,0x0e,0x50,0x14,0x51,0x64,0x51,0x6a,0x51,0x70,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85, +0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb8,0x00,0xc0,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x4d,0x7c,0x00,0x00,0x4d,0x7c,0x00,0x50,0x4f,0xac,0x4f,0xb2,0x4f,0xb8,0x4f,0xbe,0x4f,0xc4,0x4f,0xca,0x4f,0xd0, +0x4e,0xc2,0x4f,0xd6,0x4f,0xdc,0x4f,0xd0,0x4e,0x20,0x4f,0xe2,0x4f,0xe8,0x4f,0xee,0x4f,0xee,0x4e,0x68,0x4f,0xf4,0x4f,0xfa,0x50,0x00,0x4e,0xb0,0x50,0x06,0x4e,0xd4,0x50,0x0c,0x50,0x12,0x50,0x18,0x50,0x1e,0x50,0x24,0x50,0x2a,0x50,0x2a,0x50,0x2a,0x4e,0x20,0x4e,0x20,0x4f,0xe8,0x4f,0xe8,0x50,0x30,0x50,0x36,0x4f,0xb2,0x4f,0xc4, +0x4f,0xca,0x4f,0xe2,0x4f,0xe8,0x4f,0xee,0x50,0x18,0x50,0x24,0x50,0x1e,0x50,0x1e,0x50,0x1e,0x50,0x1e,0x4f,0xb2,0x4f,0xb8,0x4f,0xbe,0x4f,0xc4,0x4f,0xca,0x50,0x3c,0x50,0x42,0x4f,0xdc,0x50,0x3c,0x4e,0x20,0x4f,0xe2,0x4f,0xe8,0x4f,0xee,0x4f,0xf4,0x50,0x48,0x4e,0xb0,0x50,0x06,0x50,0x0c,0x50,0x12,0x50,0x18,0x50,0x1e,0x50,0x24, +0x4f,0xd0,0x4f,0xb8,0x4f,0xe2,0x50,0x06,0x50,0x36,0x4f,0xbe,0x4f,0xc4,0x4f,0xca,0x50,0x24,0x00,0x01,0x00,0x02,0x0b,0x53,0x0b,0x57,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62, +0x00,0x4c,0x00,0x01,0x00,0xb4,0x00,0xba,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4c,0x94,0x00,0x50,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a, +0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a, +0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06, +0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb4,0x00,0xba,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4b,0xb2,0x00,0x50,0x4e,0x8e,0x4e,0x94,0x4e,0x9a,0x4e,0xa0, +0x4e,0xa6,0x4e,0xac,0x4e,0xb2,0x4e,0xb8,0x4e,0xbe,0x4e,0xc4,0x4e,0xb2,0x4e,0xca,0x4e,0xd0,0x4e,0xd6,0x4e,0xbe,0x4e,0xdc,0x4e,0xb2,0x4e,0xe2,0x4e,0xe8,0x4e,0xee,0x4e,0xf4,0x4e,0xe8,0x4e,0xfa,0x4f,0x00,0x4e,0xdc,0x4e,0xca,0x4f,0x06,0x4f,0x0c,0x4e,0xb2,0x4e,0xb2,0x4e,0xb2,0x4e,0xca,0x4e,0xca,0x4e,0xd6,0x4e,0xd6,0x4e,0xb2, +0x4e,0xee,0x4e,0x94,0x4e,0xa6,0x4e,0xac,0x4e,0xd0,0x4e,0xd6,0x4e,0xbe,0x4e,0xca,0x4f,0x0c,0x4f,0x06,0x4f,0x12,0x4f,0x06,0x4f,0x12,0x4e,0x94,0x4e,0x9a,0x4e,0xa0,0x4e,0xa6,0x4e,0xac,0x4f,0x18,0x4e,0xf4,0x4e,0xc4,0x4f,0x18,0x4e,0xca,0x4e,0xd0,0x4e,0xd6,0x4e,0xdc,0x4e,0xe2,0x4e,0xe8,0x4e,0xf4,0x4e,0xe8,0x4f,0x00,0x4e,0xdc, +0x4e,0xca,0x4f,0x06,0x4f,0x0c,0x4f,0x1e,0x4f,0x24,0x4f,0x2a,0x4f,0x30,0x4e,0xd6,0x4f,0x36,0x4f,0x24,0x4f,0x3c,0x4f,0x42,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31, +0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x2c,0x00,0x32,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4a,0xd0,0x00,0x0c,0x4e,0x66,0x4e,0x6c,0x4e,0x72,0x4e,0x6c,0x4e,0x6c,0x4e,0x78,0x4e,0x66,0x4e,0x7e,0x4e,0x78,0x4e,0x84,0x4e,0x78,0x4e,0x54,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x09,0x0b,0x6a,0x0b,0x6a, +0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x01,0x0b,0x71,0x0b,0x71,0x00,0x03,0x0b,0x77,0x0b,0x78,0x00,0x04,0x0b,0x9f,0x0b,0x9f,0x00,0x06,0x0b,0xa2,0x0b,0xa3,0x00,0x07,0x0b,0xa5,0x0b,0xa5,0x00,0x09,0x0b,0xaa,0x0b,0xaa,0x00,0x0a,0x12,0x5f,0x12,0x5f,0x00,0x0b,0x00,0x01,0x01,0x5c,0x01,0x72,0x00,0x02,0x00,0x0c,0x00,0x1a,0x00,0x03, +0x00,0x00,0x4a,0x64,0x00,0x00,0x4a,0x64,0x00,0x01,0x4a,0x64,0x00,0x50,0x4e,0x16,0x4e,0x1c,0x4e,0x22,0x4e,0x28,0x4e,0x2e,0x4e,0x34,0x4e,0x3a,0x4e,0x40,0x4e,0x46,0x4e,0x4c,0x4e,0x52,0x4e,0x58,0x4e,0x5e,0x4e,0x64,0x4e,0x6a,0x4e,0x70,0x4e,0x76,0x4e,0x7c,0x4e,0x82,0x4e,0x88,0x4e,0x5e,0x4e,0x64,0x4e,0x8e,0x4e,0x94,0x4e,0x9a, +0x4e,0xa0,0x4e,0xa6,0x4e,0xac,0x4e,0xb2,0x4e,0x7c,0x4e,0x16,0x4e,0x58,0x4e,0x5e,0x4e,0x64,0x4e,0xb8,0x4e,0xbe,0x4e,0xc4,0x4e,0xca,0x4e,0xd0,0x4e,0xd6,0x4e,0xdc,0x4e,0xe2,0x4e,0xc4,0x4e,0xca,0x4e,0xe8,0x4e,0xee,0x4e,0xf4,0x4e,0xfa,0x4f,0x00,0x4e,0x58,0x4e,0x8e,0x4e,0x94,0x4f,0x06,0x4f,0x0c,0x4f,0x12,0x4f,0x18,0x4e,0x5e, +0x4e,0x7c,0x4e,0x5e,0x4e,0x7c,0x4e,0x5e,0x4e,0x7c,0x4e,0x8e,0x4e,0x94,0x4e,0x8e,0x4e,0x94,0x4e,0xa6,0x4e,0xac,0x4e,0xa6,0x4e,0xac,0x4e,0x5e,0x4e,0x7c,0x4e,0xd0,0x4e,0xd6,0x4e,0x22,0x4e,0x28,0x4e,0x46,0x4e,0x4c,0x4e,0x52,0x4e,0x58,0x4e,0x9a,0x4e,0xa0,0x4e,0xa6,0x4e,0xac,0x4e,0xb2,0x4e,0x7c,0x4e,0x8e,0x4e,0x94,0x4f,0x12, +0x4f,0x18,0x4f,0x06,0x4f,0x0c,0x4f,0x06,0x4f,0x0c,0x4f,0x06,0x4f,0x0c,0x4f,0x06,0x4f,0x0c,0x4f,0x1e,0x4f,0x24,0x4e,0x2e,0x4f,0x2a,0x4e,0x3a,0x4e,0x40,0x4e,0x46,0x4e,0x4c,0x4e,0x52,0x4e,0x58,0x4f,0x30,0x4f,0x36,0x4f,0x3c,0x4f,0x42,0x4e,0x82,0x4e,0x88,0x4f,0x30,0x4f,0x36,0x4e,0x8e,0x4e,0x94,0x4e,0x9a,0x4e,0xa0,0x4e,0xa6, +0x4e,0xac,0x4e,0x16,0x4e,0x58,0x4e,0xb8,0x4e,0xbe,0x4e,0xc4,0x4e,0xca,0x4e,0xdc,0x4e,0xe2,0x4e,0xc4,0x4e,0xca,0x4e,0xf4,0x4e,0xfa,0x4f,0x00,0x4e,0x58,0x4e,0x8e,0x4e,0x94,0x4f,0x06,0x4f,0x0c,0x4f,0x12,0x4f,0x18,0x4e,0x5e,0x4e,0x64,0x4e,0x2e,0x4e,0x34,0x4f,0x48,0x4e,0xa0,0x4e,0xc4,0x4e,0xca,0x4e,0xa6,0x4e,0xac,0x4e,0x3a, +0x4e,0x40,0x4e,0x46,0x4e,0x4c,0x4e,0x52,0x4e,0x58,0x4f,0x12,0x4f,0x18,0x00,0x02,0x00,0x03,0x0b,0xc0,0x0b,0xc0,0x00,0x00,0x0b,0xd7,0x0b,0xd7,0x00,0x01,0x0b,0xdc,0x0b,0xdc,0x00,0x02,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d, +0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb8,0x00,0xc0,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x48,0xca,0x00,0x00,0x48,0xca,0x00,0x50,0x4a,0x76,0x4d,0xb8,0x4d,0xbe,0x4d,0xc4,0x4d,0xbe,0x4d,0xca,0x4b,0xc6,0x4d,0xd0,0x4b,0x8a,0x4d,0xd6,0x4b,0xc6,0x4d,0xdc,0x4d,0xe2,0x4d,0xe8, +0x4d,0xee,0x4d,0xf4,0x4b,0xc6,0x4d,0xfa,0x4e,0x00,0x4b,0x1e,0x4e,0x06,0x4e,0x0c,0x4e,0x12,0x4e,0x18,0x4e,0x1e,0x4d,0xdc,0x4e,0x24,0x4e,0x2a,0x49,0x68,0x49,0x68,0x49,0x68,0x4d,0xdc,0x4d,0xdc,0x4d,0xe8,0x4d,0xe8,0x4e,0x30,0x4b,0x1e,0x4d,0xb8,0x4d,0xbe,0x4d,0xca,0x4d,0xe2,0x4d,0xe8,0x4d,0xee,0x4d,0xdc,0x4e,0x2a,0x4e,0x24, +0x4e,0x24,0x4e,0x24,0x4e,0x24,0x4d,0xb8,0x4d,0xbe,0x4d,0xc4,0x4d,0xbe,0x4d,0xca,0x4c,0x2c,0x4e,0x36,0x4d,0xd6,0x4c,0x2c,0x4d,0xdc,0x4d,0xe2,0x4d,0xe8,0x4d,0xf4,0x4d,0xfa,0x4e,0x00,0x4e,0x06,0x4e,0x0c,0x4e,0x18,0x4e,0x1e,0x4d,0xdc,0x4e,0x24,0x4e,0x2a,0x4e,0x3c,0x4e,0x42,0x4e,0x48,0x4e,0x4e,0x4e,0x54,0x4e,0x5a,0x4e,0x42, +0x4e,0x60,0x4e,0x66,0x00,0x01,0x00,0x02,0x0b,0xc0,0x0b,0xd7,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x30,0x00,0x38,0x00,0x01,0x00,0x0c,0x00,0x16, +0x00,0x02,0x00,0x00,0x47,0xe2,0x00,0x00,0x47,0xe2,0x00,0x0c,0x4d,0x84,0x4d,0x8a,0x49,0xbe,0x4d,0x8a,0x4d,0x8a,0x4d,0x90,0x4d,0x84,0x48,0xfe,0x4d,0x90,0x4d,0x96,0x4d,0x90,0x4d,0x72,0x00,0x01,0x00,0x02,0x0b,0xc0,0x0b,0xd7,0x00,0x02,0x00,0x09,0x0b,0x6a,0x0b,0x6a,0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x01,0x0b,0x71,0x0b,0x71, +0x00,0x03,0x0b,0x77,0x0b,0x78,0x00,0x04,0x0b,0x9f,0x0b,0x9f,0x00,0x06,0x0b,0xa2,0x0b,0xa3,0x00,0x07,0x0b,0xa5,0x0b,0xa5,0x00,0x09,0x0b,0xaa,0x0b,0xaa,0x00,0x0a,0x12,0x5f,0x12,0x5f,0x00,0x0b,0x00,0x01,0x00,0xb4,0x00,0xba,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x47,0x70,0x00,0x50,0x49,0x20,0x4c,0x62,0x4c,0x68, +0x4c,0x6e,0x4c,0x68,0x4c,0x74,0x4a,0x70,0x4c,0x7a,0x4a,0x34,0x4c,0x80,0x4a,0x70,0x4c,0x86,0x4c,0x8c,0x4d,0x2e,0x4c,0x98,0x4c,0x9e,0x4a,0x70,0x4c,0xa4,0x4c,0xaa,0x49,0xc8,0x4c,0xb0,0x4c,0xb6,0x4c,0xbc,0x4c,0xc2,0x4c,0xc8,0x4c,0x86,0x4c,0xce,0x4c,0xd4,0x48,0x12,0x48,0x12,0x48,0x12,0x4c,0x86,0x4c,0x86,0x4d,0x2e,0x4d,0x2e, +0x4c,0xda,0x49,0xc8,0x4c,0x62,0x4c,0x68,0x4c,0x74,0x4c,0x8c,0x4d,0x2e,0x4c,0x98,0x4c,0x86,0x4c,0xd4,0x4c,0xce,0x4c,0xce,0x4c,0xce,0x4c,0xce,0x4c,0x62,0x4c,0x68,0x4c,0x6e,0x4c,0x68,0x4c,0x74,0x4a,0xd6,0x4c,0xe0,0x4c,0x80,0x4a,0xd6,0x4c,0x86,0x4c,0x8c,0x4d,0x2e,0x4c,0x9e,0x4c,0xa4,0x4c,0xaa,0x4c,0xb0,0x4c,0xb6,0x4c,0xc2, +0x4c,0xc8,0x4c,0x86,0x4c,0xce,0x4c,0xd4,0x4d,0x34,0x4c,0xec,0x4c,0xf2,0x4c,0xf8,0x4c,0xfe,0x4d,0x04,0x4c,0xec,0x4d,0x0a,0x4d,0x10,0x00,0x01,0x00,0x01,0x0b,0xce,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7, +0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x2c,0x00,0x32,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x46,0x8e,0x00,0x0c,0x4c,0x58,0x4c,0x5e,0x4c,0x64,0x4c,0x5e,0x4c,0x5e,0x4c,0x6a,0x4c,0x58,0x4c,0x70,0x4c,0x6a,0x4c,0x76,0x4c,0x6a,0x4c,0x22,0x00,0x01,0x00,0x01,0x0b,0xce,0x00,0x02,0x00,0x09,0x0b,0x6a, +0x0b,0x6a,0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x01,0x0b,0x71,0x0b,0x71,0x00,0x03,0x0b,0x77,0x0b,0x78,0x00,0x04,0x0b,0x9f,0x0b,0x9f,0x00,0x06,0x0b,0xa2,0x0b,0xa3,0x00,0x07,0x0b,0xa5,0x0b,0xa5,0x00,0x09,0x0b,0xaa,0x0b,0xaa,0x00,0x0a,0x12,0x5f,0x12,0x5f,0x00,0x0b,0x00,0x01,0x00,0x64,0x00,0xa4,0x00,0x01,0x00,0x0c,0x00,0x4a, +0x00,0x0f,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x0c, +0x46,0x50,0x4b,0xd8,0x47,0xfa,0x4b,0xd8,0x4b,0xd8,0x4b,0xde,0x46,0x50,0x4b,0xe4,0x4b,0xde,0x4b,0xea,0x4b,0xde,0x4b,0x7e,0x00,0x02,0x00,0x0a,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcc,0x00,0x06,0x0b,0xcf,0x0b,0xcf,0x00,0x07,0x0b,0xd6,0x0b,0xd6,0x00,0x08, +0x0b,0xd9,0x0b,0xda,0x00,0x09,0x0b,0xdd,0x0b,0xdd,0x00,0x0b,0x0b,0xe1,0x0b,0xe1,0x00,0x0c,0x12,0x5c,0x12,0x5d,0x00,0x0d,0x00,0x02,0x00,0x09,0x0b,0x6a,0x0b,0x6a,0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x01,0x0b,0x71,0x0b,0x71,0x00,0x03,0x0b,0x77,0x0b,0x78,0x00,0x04,0x0b,0x9f,0x0b,0x9f,0x00,0x06,0x0b,0xa2,0x0b,0xa3,0x00,0x07, +0x0b,0xa5,0x0b,0xa5,0x00,0x09,0x0b,0xaa,0x0b,0xaa,0x00,0x0a,0x12,0x5f,0x12,0x5f,0x00,0x0b,0x00,0x01,0x00,0xb8,0x00,0xc0,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x45,0x44,0x00,0x00,0x45,0x44,0x00,0x50,0x4b,0x46,0x4b,0x4c,0x4b,0x52,0x4b,0x58,0x4b,0x5e,0x4b,0x64,0x4a,0x3e,0x4b,0x6a,0x4b,0x70,0x4b,0x76,0x4a,0x3e, +0x4a,0x8c,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x88,0x4b,0x8e,0x4b,0x94,0x47,0xaa,0x45,0x88,0x4b,0x9a,0x4b,0xa0,0x4b,0xa6,0x4b,0xac,0x45,0x9a,0x4b,0xb2,0x4b,0xb8,0x47,0xf8,0x46,0x24,0x46,0x24,0x46,0x24,0x4a,0x8c,0x4a,0x8c,0x4b,0x82,0x4b,0x82,0x48,0x04,0x46,0x8a,0x4b,0x4c,0x4b,0x5e,0x4b,0x64,0x4b,0xbe,0x4b,0x82,0x4b,0x88, +0x4b,0xb2,0x47,0xf8,0x4b,0xb8,0x4b,0xb8,0x4b,0xb8,0x4b,0xb8,0x4b,0x4c,0x4b,0x52,0x4b,0x58,0x4b,0x5e,0x4b,0x64,0x4b,0xc4,0x4b,0x0a,0x4b,0x76,0x4b,0xc4,0x4a,0x8c,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x94,0x47,0xaa,0x4b,0x9a,0x4b,0xa0,0x4b,0xac,0x45,0x9a,0x4b,0xb2,0x4b,0xb8,0x47,0xf8,0x4a,0x3e,0x4b,0x52,0x4b,0x7c,0x4b,0xa0, +0x46,0x8a,0x4b,0x58,0x4b,0x5e,0x4b,0x64,0x47,0xf8,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb8,0x00,0xc0, +0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x44,0x5c,0x00,0x00,0x44,0x5c,0x00,0x50,0x4a,0xe2,0x4a,0xe8,0x4a,0xee,0x46,0xd4,0x44,0xdc,0x4a,0xf4,0x4a,0xfa,0x49,0x92,0x4b,0x00,0x4b,0x06,0x4a,0xfa,0x4b,0x0c,0x46,0x14,0x46,0x02,0x4b,0x12,0x4b,0x12,0x4a,0xa6,0x4b,0x18,0x4b,0x1e,0x4b,0x24,0x47,0x22,0x4b,0x2a,0x4a,0xbe, +0x4b,0x30,0x4b,0x36,0x4b,0x3c,0x4b,0x42,0x4b,0x48,0x4b,0x4e,0x4b,0x4e,0x4b,0x4e,0x4b,0x0c,0x4b,0x0c,0x46,0x02,0x46,0x02,0x4b,0x54,0x4b,0x5a,0x4a,0xe8,0x44,0xdc,0x4a,0xf4,0x4b,0x60,0x46,0x02,0x4b,0x12,0x4b,0x3c,0x4b,0x48,0x4b,0x42,0x4b,0x42,0x4b,0x42,0x4b,0x42,0x4a,0xe8,0x4a,0xee,0x46,0xd4,0x44,0xdc,0x4a,0xf4,0x4b,0x66, +0x4b,0x6c,0x4b,0x06,0x4b,0x66,0x4b,0x0c,0x46,0x14,0x46,0x02,0x4b,0x12,0x4b,0x18,0x4b,0x1e,0x47,0x22,0x4b,0x2a,0x4b,0x30,0x4b,0x36,0x4b,0x3c,0x4b,0x42,0x4b,0x48,0x4a,0xfa,0x4a,0xee,0x46,0x14,0x4b,0x2a,0x4b,0x5a,0x46,0xd4,0x44,0xdc,0x4a,0xf4,0x4b,0x48,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x02,0x00,0x06,0x0a,0x43, +0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb8,0x00,0xc0,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x43,0x74,0x00,0x00,0x43,0x74,0x00,0x50,0x4a,0x8a,0x4a,0x90,0x4a,0x96, +0x49,0xb8,0x4a,0x9c,0x46,0x1c,0x4a,0xa2,0x4a,0xa8,0x4a,0xae,0x4a,0xb4,0x4a,0xa2,0x4a,0xba,0x4a,0xc0,0x46,0x04,0x46,0x16,0x46,0x16,0x4a,0xc6,0x43,0x82,0x4a,0xcc,0x4a,0xd2,0x45,0xb6,0x4a,0xd8,0x4a,0xde,0x45,0xfe,0x4a,0xe4,0x4a,0xea,0x4a,0xf0,0x4a,0xf6,0x4a,0xfc,0x4a,0xfc,0x4a,0xfc,0x4a,0xba,0x4a,0xba,0x46,0x04,0x46,0x04, +0x4b,0x02,0x4b,0x08,0x4a,0x90,0x4a,0x9c,0x46,0x1c,0x4b,0x0e,0x46,0x04,0x46,0x16,0x4a,0xea,0x4a,0xf6,0x4a,0xf0,0x4a,0xf0,0x4a,0xf0,0x4a,0xf0,0x4a,0x90,0x4a,0x96,0x49,0xb8,0x4a,0x9c,0x46,0x1c,0x4b,0x14,0x4a,0x72,0x4a,0xb4,0x4b,0x14,0x4a,0xba,0x4a,0xc0,0x46,0x04,0x46,0x16,0x43,0x82,0x4a,0xcc,0x45,0xb6,0x4a,0xd8,0x45,0xfe, +0x4a,0xe4,0x4a,0xea,0x4a,0xf0,0x4a,0xf6,0x4a,0xa2,0x4a,0x96,0x4a,0xc0,0x4a,0xd8,0x4b,0x08,0x49,0xb8,0x4a,0x9c,0x46,0x1c,0x4a,0xf6,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d, +0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xe0,0x01,0x0e,0x00,0x01,0x00,0x0c,0x00,0x3e,0x00,0x0c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c, +0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x50,0x48,0x90,0x43,0xe6,0x4a,0x0a,0x47,0xee,0x4a,0x10,0x4a,0x16,0x4a,0x1c,0x4a,0x22,0x4a,0x28,0x4a,0x2e,0x4a,0x1c,0x43,0x80,0x4a,0x34,0x47,0x64,0x48,0xf0,0x48,0xf0,0x4a,0x3a,0x4a,0x40,0x4a,0x46,0x4a,0x4c,0x4a,0x52,0x4a,0x58,0x4a,0x5e,0x4a,0x64,0x4a,0x6a,0x4a,0x70,0x4a,0x76, +0x4a,0x7c,0x4a,0x82,0x4a,0x82,0x4a,0x82,0x43,0x80,0x43,0x80,0x47,0x64,0x47,0x64,0x4a,0x88,0x4a,0x8e,0x43,0xe6,0x4a,0x10,0x4a,0x16,0x4a,0x94,0x47,0x64,0x48,0xf0,0x4a,0x70,0x4a,0x7c,0x4a,0x76,0x4a,0x76,0x4a,0x76,0x4a,0x76,0x43,0xe6,0x4a,0x0a,0x47,0xee,0x4a,0x10,0x4a,0x16,0x47,0x82,0x4a,0x9a,0x4a,0x2e,0x47,0x82,0x43,0x80, +0x4a,0x34,0x47,0x64,0x48,0xf0,0x4a,0x40,0x4a,0x46,0x4a,0x52,0x4a,0x58,0x4a,0x64,0x4a,0x6a,0x4a,0x70,0x4a,0x76,0x4a,0x7c,0x4a,0x1c,0x4a,0x0a,0x4a,0x34,0x4a,0x58,0x4a,0x8e,0x47,0xee,0x4a,0x10,0x4a,0x16,0x4a,0x7c,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02, +0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c, +0x00,0x01,0x00,0x30,0x00,0x38,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x41,0x56,0x00,0x00,0x41,0x56,0x00,0x0c,0x49,0x92,0x49,0x98,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x00,0x01,0x00,0x02,0x0b,0xc8,0x0b,0xdb,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f, +0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x30,0x00,0x38,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x40,0xf0,0x00,0x00,0x40,0xf0,0x00,0x0c,0x46,0x2c, +0x46,0x2c,0x49,0x3e,0x49,0x3e,0x49,0x3e,0x49,0x3e,0x49,0x3e,0x49,0x3e,0x49,0x3e,0x46,0xf2,0x49,0x3e,0x49,0x3e,0x00,0x01,0x00,0x02,0x0b,0xc8,0x0b,0xdb,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04, +0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x30,0x00,0x38,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x40,0x8a,0x00,0x00,0x40,0x8a,0x00,0x0c,0x46,0x8c,0x46,0x8c,0x47,0x1c,0x47,0x1c,0x47,0x1c,0x47,0x1c,0x47,0x1c,0x47,0x1c,0x47,0x1c,0x48,0xde,0x47,0x1c,0x47,0x1c,0x00,0x01,0x00,0x02, +0x0b,0xc8,0x0b,0xdb,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0xf8,0x01,0x32,0x00,0x01,0x00,0x0c,0x00,0x56,0x00,0x12, +0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24, +0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x50,0x48,0x3e,0x48,0x44,0x40,0x28,0x48,0x4a,0x40,0x28,0x48,0x50,0x40,0x88,0x48,0x56,0x48,0x5c,0x48,0x62,0x40,0x88,0x45,0x08,0x41,0x2a,0x42,0x32,0x48,0x68,0x48,0x6e,0x40,0x88,0x42,0x38,0x48,0x74,0x48,0x7a,0x48,0x80,0x46,0x28,0x40,0x76,0x48,0x86,0x48,0x8c,0x45,0x08,0x47,0x00, +0x48,0x92,0x48,0x98,0x48,0x98,0x48,0x98,0x45,0x08,0x45,0x08,0x42,0x32,0x42,0x32,0x47,0xd8,0x48,0x7a,0x48,0x44,0x40,0x28,0x48,0x50,0x41,0x2a,0x42,0x32,0x48,0x68,0x45,0x08,0x48,0x92,0x42,0x56,0x46,0xc4,0x42,0x56,0x46,0xc4,0x48,0x44,0x40,0x28,0x48,0x4a,0x40,0x28,0x48,0x50,0x48,0x9e,0x48,0xa4,0x48,0x62,0x48,0x9e,0x45,0x08, +0x41,0x2a,0x42,0x32,0x48,0x6e,0x42,0x38,0x48,0x74,0x48,0x80,0x46,0x28,0x48,0x86,0x48,0x8c,0x45,0x08,0x47,0x00,0x48,0x92,0x48,0xaa,0x48,0xb0,0x48,0xb6,0x48,0xbc,0x46,0x52,0x48,0xc2,0x48,0xc8,0x48,0xce,0x48,0xd4,0x00,0x02,0x00,0x09,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05, +0x0b,0xcc,0x0b,0xcf,0x00,0x06,0x0b,0xd6,0x0b,0xd7,0x00,0x0a,0x0b,0xd9,0x0b,0xda,0x00,0x0c,0x0b,0xdd,0x0b,0xdd,0x00,0x0e,0x0b,0xe1,0x0b,0xe1,0x00,0x0f,0x12,0x5c,0x12,0x5d,0x00,0x10,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d, +0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb4,0x00,0xba,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x3e,0xca,0x00,0x50,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0, +0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0, +0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0, +0x00,0x01,0x00,0x01,0x0b,0x57,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x12,0xf4,0x13,0x46,0x00,0x03,0x00,0x0c,0x01,0xbe,0x00,0x6c,0x00,0x00,0x46,0xe8, +0x00,0x02,0x46,0xee,0x00,0x00,0x46,0xf4,0x00,0x00,0x46,0xf4,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x00,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x06,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x0c,0x00,0x00,0x47,0x0c,0x00,0x00,0x47,0x12, +0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x18,0x00,0x00,0x47,0x1e,0x00,0x00,0x47,0x24,0x00,0x01,0x47,0x2a,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x47,0x30,0x00,0x02,0x47,0x36,0x00,0x00,0x47,0x3c,0x00,0x02,0x47,0x42,0x00,0x02,0x47,0x48,0x00,0x02,0x47,0x48,0x00,0x02,0x47,0x48,0x00,0x02,0x47,0x4e, +0x00,0x02,0x3d,0xe8,0x00,0x02,0x47,0x54,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x47,0x54,0x00,0x02,0x3d,0xe8,0x00,0x02,0x47,0x5a,0x00,0x02,0x47,0x60,0x00,0x02,0x47,0x66,0x00,0x02,0x47,0x6c,0x00,0x02,0x3d,0xe8, +0x00,0x02,0x47,0x72,0x00,0x02,0x3d,0xe8,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x78,0x00,0x00,0x47,0x00,0x00,0x00,0x47,0x7e,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x3c,0x00,0x02,0x43,0xb2,0x00,0x00,0x46,0xfa,0x00,0x02,0x47,0x84,0x00,0x02,0x3d,0xe8,0x00,0x02,0x47,0x8a,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x90, +0x00,0x02,0x47,0x96,0x00,0x02,0x47,0x9c,0x00,0x00,0x47,0xa2,0x00,0x00,0x47,0xa8,0x00,0x00,0x47,0xae,0x00,0x00,0x47,0xae,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0x3c,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0x3c,0x00,0x00,0x47,0x3c,0x00,0x00,0x47,0x3c, +0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0x3c,0x00,0x00,0x47,0x3c,0x00,0x00,0x47,0xba,0x00,0x00,0x47,0xc0,0x00,0x00,0x46,0xfa,0x00,0x02,0x47,0xc6,0x00,0x02,0x47,0xcc,0x00,0x02,0x47,0xcc,0x00,0x02,0x47,0xcc,0x00,0x00,0x47,0xd2,0x00,0x02,0x47,0xd8,0x00,0x02,0x47,0x5a,0x00,0x00,0x47,0xba,0x00,0x00,0x47,0xba,0x00,0x00,0x47,0xba, +0x00,0x02,0x47,0xde,0x00,0x00,0x47,0xe4,0x00,0x00,0x47,0xea,0x00,0x00,0x47,0xea,0x00,0x00,0x47,0xf0,0x00,0x00,0x47,0xf0,0x00,0x00,0x47,0xf6,0x00,0x00,0x47,0xf6,0x00,0x02,0x47,0xfc,0x00,0x00,0x48,0x02,0x00,0x02,0x48,0x08,0x02,0xde,0x46,0x5c,0x46,0x62,0x46,0x68,0x46,0x6e,0x46,0x74,0x46,0x7a,0x46,0x80,0x46,0x86,0x46,0x8c, +0x46,0x92,0x46,0x98,0x46,0x9e,0x46,0xa4,0x46,0xaa,0x46,0xb0,0x46,0xa4,0x46,0xaa,0x46,0xb0,0x46,0xb6,0x46,0xbc,0x46,0xc2,0x46,0xc8,0x46,0xce,0x46,0xd4,0x46,0xda,0x46,0xe0,0x46,0xe6,0x46,0xec,0x46,0xf2,0x46,0xf8,0x46,0xfe,0x47,0x04,0x47,0x0a,0x47,0x10,0x47,0x16,0x47,0x1c,0x47,0x22,0x47,0x28,0x47,0x2e,0x46,0xb6,0x47,0x34, +0x47,0x3a,0x47,0x40,0x47,0x46,0x47,0x4c,0x47,0x52,0x46,0x74,0x47,0x58,0x47,0x40,0x47,0x46,0x47,0x5e,0x47,0x52,0x47,0x64,0x46,0x68,0x47,0x6a,0x46,0xaa,0x47,0x70,0x47,0x76,0x47,0x7c,0x47,0x82,0x46,0x92,0x47,0x46,0x47,0x88,0x47,0x8e,0x47,0x46,0x47,0x94,0x47,0x9a,0x47,0xa0,0x47,0xa6,0x47,0xac,0x46,0x98,0x47,0xb2,0x47,0xb8, +0x47,0x04,0x47,0xbe,0x46,0xfe,0x47,0x04,0x47,0xbe,0x47,0xc4,0x47,0xca,0x47,0xd0,0x47,0xd6,0x47,0xdc,0x47,0xe2,0x47,0xe8,0x47,0xee,0x47,0xf4,0x47,0xfa,0x48,0x00,0x48,0x06,0x48,0x0c,0x47,0xca,0x47,0xf4,0x48,0x12,0x46,0x80,0x48,0x18,0x48,0x0c,0x48,0x1e,0x48,0x24,0x47,0xd6,0x47,0xdc,0x47,0x1c,0x48,0x2a,0x48,0x30,0x48,0x36, +0x48,0x3c,0x48,0x30,0x48,0x42,0x47,0xd6,0x48,0x48,0x47,0x1c,0x48,0x2a,0x48,0x4e,0x48,0x36,0x48,0x54,0x48,0x5a,0x48,0x60,0x48,0x66,0x48,0x6c,0x47,0x1c,0x48,0x72,0x48,0x6c,0x48,0x78,0x48,0x66,0x48,0x7e,0x48,0x84,0x48,0x66,0x48,0x8a,0x48,0x84,0x48,0x90,0x48,0x96,0x48,0x36,0x48,0x9c,0x48,0xa2,0x48,0xa8,0x48,0xae,0x48,0xb4, +0x48,0xba,0x47,0xe8,0x48,0xc0,0x47,0x70,0x48,0xc6,0x48,0xcc,0x48,0xd2,0x48,0xd8,0x48,0xde,0x48,0xe4,0x48,0xea,0x48,0xf0,0x48,0xf6,0x48,0xfc,0x48,0x7e,0x49,0x02,0x49,0x08,0x47,0xee,0x49,0x0e,0x49,0x14,0x49,0x1a,0x46,0x68,0x49,0x14,0x49,0x1a,0x46,0x68,0x46,0x80,0x46,0x86,0x49,0x20,0x49,0x26,0x49,0x2c,0x46,0xb0,0x49,0x32, +0x49,0x38,0x47,0x3a,0x49,0x3e,0x49,0x44,0x47,0x4c,0x49,0x4a,0x49,0x50,0x47,0x88,0x49,0x56,0x49,0x5c,0x47,0xd0,0x49,0x56,0x49,0x5c,0x47,0xd0,0x49,0x56,0x49,0x5c,0x47,0xd0,0x49,0x62,0x49,0x5c,0x49,0x68,0x49,0x6e,0x49,0x5c,0x47,0xd0,0x49,0x56,0x49,0x74,0x47,0xd0,0x47,0xe8,0x47,0xee,0x49,0x7a,0x49,0x80,0x49,0x5c,0x47,0xf4, +0x49,0x80,0x49,0x5c,0x47,0xf4,0x49,0x86,0x49,0x5c,0x49,0x8c,0x49,0x92,0x49,0x5c,0x47,0x70,0x48,0x2a,0x49,0x98,0x48,0x36,0x48,0x2a,0x49,0x9e,0x48,0x36,0x49,0xa4,0x49,0xaa,0x48,0x36,0x49,0xb0,0x49,0xaa,0x48,0x36,0x49,0xb6,0x49,0xbc,0x47,0x1c,0x49,0xc2,0x49,0xbc,0x48,0x78,0x49,0xc2,0x49,0xbc,0x48,0x78,0x49,0xc8,0x49,0xbc, +0x49,0xce,0x49,0xd4,0x49,0xbc,0x48,0x78,0x49,0xd4,0x49,0xbc,0x48,0x78,0x49,0xda,0x49,0xe0,0x47,0x70,0x49,0xda,0x49,0xe0,0x47,0x70,0x49,0x80,0x49,0xe0,0x47,0xf4,0x49,0xe6,0x49,0xe0,0x47,0xf4,0x49,0xec,0x49,0xf2,0x49,0xf8,0x49,0xfe,0x4a,0x04,0x4a,0x0a,0x47,0x40,0x49,0x44,0x47,0x4c,0x4a,0x10,0x4a,0x16,0x4a,0x1c,0x48,0x72, +0x49,0xbc,0x48,0x78,0x4a,0x22,0x4a,0x28,0x4a,0x2e,0x4a,0x34,0x49,0x1a,0x46,0x68,0x49,0x14,0x4a,0x3a,0x46,0x68,0x49,0x3e,0x49,0x44,0x47,0x4c,0x4a,0x40,0x4a,0x46,0x4a,0x4c,0x4a,0x52,0x4a,0x58,0x4a,0x5e,0x4a,0x64,0x4a,0x6a,0x49,0x02,0x4a,0x70,0x4a,0x76,0x47,0xbe,0x4a,0x34,0x49,0x1a,0x46,0x68,0x4a,0x7c,0x4a,0x82,0x4a,0x88, +0x4a,0x34,0x4a,0x8e,0x46,0x68,0x4a,0x94,0x4a,0x9a,0x4a,0x88,0x49,0x26,0x4a,0x82,0x46,0xb0,0x4a,0xa0,0x4a,0xa6,0x46,0xe6,0x4a,0xac,0x4a,0xa6,0x4a,0xb2,0x4a,0xb8,0x4a,0xbe,0x46,0xe6,0x4a,0xa0,0x4a,0xc4,0x46,0xe6,0x4a,0xca,0x49,0x50,0x47,0x4c,0x4a,0xca,0x49,0x50,0x47,0x4c,0x4a,0xca,0x49,0x50,0x47,0x4c,0x4a,0xd0,0x49,0x50, +0x47,0x88,0x4a,0xd0,0x49,0x50,0x47,0x88,0x4a,0xd0,0x49,0x50,0x47,0x88,0x4a,0xd6,0x4a,0xdc,0x48,0x36,0x47,0x10,0x47,0x16,0x47,0x1c,0x4a,0xe2,0x4a,0xe8,0x4a,0xee,0x4a,0xf4,0x4a,0xfa,0x47,0x70,0x4b,0x00,0x4b,0x06,0x48,0xa8,0x4b,0x0c,0x4b,0x12,0x47,0xbe,0x4b,0x18,0x4b,0x1e,0x49,0x0e,0x46,0x92,0x46,0x98,0x46,0x9e,0x4b,0x24, +0x4b,0x2a,0x4b,0x30,0x4b,0x36,0x4a,0x76,0x47,0xbe,0x4b,0x3c,0x4a,0x6a,0x49,0x02,0x4b,0x42,0x4b,0x48,0x4b,0x4e,0x4b,0x54,0x4b,0x5a,0x4b,0x60,0x4b,0x66,0x4b,0x6c,0x46,0xc2,0x49,0x80,0x4b,0x72,0x48,0x24,0x4b,0x78,0x4b,0x7e,0x4a,0xb2,0x47,0x6a,0x46,0xaa,0x4b,0x84,0x48,0x9c,0x48,0xa2,0x4b,0x8a,0x4b,0x90,0x4b,0x96,0x46,0x8c, +0x49,0xda,0x4b,0x1e,0x47,0xf4,0x4b,0x9c,0x4b,0x96,0x4b,0xa2,0x4b,0xa8,0x4b,0x1e,0x4b,0xae,0x47,0xfa,0x48,0x00,0x48,0x06,0x4a,0x34,0x4a,0x3a,0x46,0x68,0x49,0x56,0x49,0x5c,0x47,0xd0,0x4b,0xb4,0x46,0x62,0x4b,0xba,0x47,0xc4,0x47,0xca,0x4b,0xc0,0x4b,0xc6,0x4b,0xcc,0x4b,0xd2,0x47,0xfa,0x48,0x00,0x48,0x06,0x46,0x92,0x46,0x98, +0x46,0x9e,0x46,0xa4,0x46,0xaa,0x4b,0xd8,0x48,0x0c,0x47,0xca,0x4b,0xde,0x4a,0x7c,0x4a,0xfa,0x46,0xb0,0x49,0x80,0x49,0x5c,0x47,0xf4,0x4b,0xe4,0x4b,0xea,0x47,0x1c,0x4b,0xf0,0x4b,0xf6,0x48,0x36,0x47,0x10,0x4b,0xfc,0x47,0x1c,0x48,0x2a,0x4c,0x02,0x48,0x36,0x47,0x10,0x47,0x16,0x47,0x1c,0x48,0x2a,0x48,0x4e,0x48,0x36,0x4b,0x66, +0x4c,0x08,0x47,0x3a,0x4c,0x0e,0x49,0xbc,0x47,0x1c,0x4a,0xca,0x4c,0x08,0x4c,0x14,0x49,0xc2,0x49,0xbc,0x46,0xb0,0x4a,0xca,0x4c,0x1a,0x47,0x4c,0x49,0xc2,0x49,0xbc,0x48,0x78,0x4c,0x20,0x4c,0x26,0x46,0x68,0x4c,0x2c,0x4c,0x32,0x48,0x36,0x4c,0x20,0x4c,0x26,0x46,0x68,0x4c,0x38,0x4c,0x32,0x48,0x36,0x4c,0x3e,0x4a,0xfa,0x47,0x70, +0x4c,0x38,0x4b,0x06,0x48,0xa8,0x47,0x76,0x47,0x7c,0x4b,0x84,0x48,0xae,0x48,0xb4,0x4c,0x44,0x4a,0xf4,0x4c,0x4a,0x47,0x82,0x4c,0x50,0x4c,0x56,0x48,0xba,0x4b,0xc6,0x4c,0x5c,0x47,0x88,0x49,0xda,0x49,0xe0,0x47,0x70,0x4a,0xd0,0x4c,0x5c,0x47,0x88,0x49,0xda,0x49,0xe0,0x47,0x70,0x4c,0x62,0x4c,0x68,0x47,0xbe,0x4c,0x6e,0x4b,0x1e, +0x49,0x0e,0x4c,0x74,0x4c,0x7a,0x47,0x1c,0x4c,0x80,0x4b,0x1e,0x49,0x0e,0x4c,0x86,0x4c,0x8c,0x4c,0x92,0x4c,0x98,0x4c,0x9e,0x4c,0xa4,0x4c,0xaa,0x4c,0xb0,0x4c,0xb6,0x4c,0xbc,0x4a,0x3a,0x46,0x68,0x49,0x6e,0x49,0x5c,0x47,0xd0,0x4c,0xc2,0x4b,0x96,0x4c,0xc8,0x49,0xda,0x4b,0x1e,0x47,0xf4,0x49,0x3e,0x4c,0xce,0x47,0x4c,0x49,0xd4, +0x4b,0x1e,0x48,0x78,0x4c,0xd4,0x4a,0x9a,0x47,0xbe,0x49,0xe6,0x4c,0xda,0x47,0xf4,0x4c,0xe0,0x4a,0x9a,0x46,0xb0,0x49,0xda,0x49,0x5c,0x47,0x70,0x4c,0xe6,0x4c,0xec,0x47,0x82,0x49,0xe6,0x49,0x5c,0x47,0xf4,0x4b,0x9c,0x4c,0xf2,0x4b,0xa2,0x4b,0xa8,0x4b,0x72,0x4c,0xf8,0x49,0x32,0x4b,0x6c,0x46,0xc2,0x49,0xe6,0x4b,0x72,0x48,0x24, +0x46,0xb6,0x46,0xbc,0x4c,0xfe,0x4d,0x04,0x4d,0x0a,0x48,0x24,0x4d,0x10,0x4c,0x08,0x46,0xd4,0x4d,0x16,0x4d,0x1c,0x47,0xb2,0x4d,0x22,0x4d,0x28,0x4d,0x2e,0x4d,0x34,0x4d,0x3a,0x4d,0x40,0x4d,0x46,0x4a,0xbe,0x4a,0xee,0x4d,0x4c,0x49,0xaa,0x48,0x36,0x4d,0x52,0x4a,0xbe,0x46,0xe6,0x4d,0x58,0x49,0xaa,0x48,0x36,0x4d,0x5e,0x4a,0xc4, +0x4a,0xee,0x4d,0x64,0x49,0x9e,0x48,0x36,0x4d,0x6a,0x46,0xe0,0x4d,0x70,0x48,0x2a,0x48,0x30,0x4d,0x76,0x4d,0x7c,0x4d,0x82,0x46,0xf8,0x48,0x3c,0x4d,0x88,0x48,0x42,0x46,0xfe,0x47,0x04,0x4d,0x8e,0x47,0xd6,0x48,0x48,0x4d,0x94,0x4d,0x9a,0x4d,0xa0,0x4d,0xa6,0x47,0x10,0x47,0x16,0x4d,0xac,0x48,0x2a,0x48,0x4e,0x4d,0xb2,0x46,0xb6, +0x47,0x34,0x4c,0xfe,0x48,0x66,0x48,0x6c,0x4d,0x94,0x46,0xb6,0x47,0x34,0x4d,0xb8,0x48,0x66,0x48,0x6c,0x48,0x84,0x4d,0xbe,0x49,0x44,0x47,0x4c,0x49,0xd4,0x49,0xbc,0x48,0x78,0x4a,0xca,0x49,0x44,0x47,0x4c,0x49,0xc2,0x49,0xbc,0x48,0x78,0x47,0x52,0x47,0x64,0x4d,0xc4,0x48,0x90,0x48,0x96,0x4d,0xca,0x4a,0xf4,0x4a,0xfa,0x47,0x70, +0x4c,0x38,0x4b,0x06,0x48,0xa8,0x4d,0xd0,0x4d,0xd6,0x4d,0xdc,0x4d,0xe2,0x4d,0xe8,0x48,0xba,0x49,0x4a,0x49,0x50,0x47,0x88,0x49,0x92,0x49,0xe0,0x47,0x70,0x4d,0xee,0x49,0x50,0x47,0x88,0x49,0x92,0x49,0xe0,0x47,0x70,0x4a,0xd0,0x49,0x50,0x47,0x88,0x49,0xda,0x49,0xe0,0x47,0x70,0x46,0x92,0x47,0x46,0x4d,0xf4,0x47,0xe8,0x48,0xc0, +0x4d,0xfa,0x4e,0x00,0x4e,0x06,0x47,0xa6,0x4e,0x0c,0x4e,0x12,0x48,0xe4,0x4b,0x36,0x4a,0x76,0x47,0xbe,0x49,0x56,0x4a,0x6a,0x4e,0x18,0x4e,0x1e,0x4e,0x24,0x48,0x36,0x4e,0x2a,0x4e,0x06,0x47,0xa6,0x4e,0x30,0x4e,0x12,0x48,0xe4,0x4e,0x2a,0x4e,0x06,0x47,0xa6,0x4e,0x30,0x4e,0x12,0x48,0xe4,0x4e,0x36,0x4e,0x06,0x47,0xa6,0x4e,0x3c, +0x4e,0x12,0x48,0xe4,0x4b,0x36,0x4a,0x76,0x47,0xbe,0x4b,0x3c,0x4e,0x42,0x49,0x02,0x47,0x40,0x4e,0x48,0x47,0x4c,0x48,0x72,0x4e,0x4e,0x48,0x78,0x4e,0x54,0x4e,0x5a,0x47,0x88,0x4e,0x60,0x4e,0x66,0x47,0x70,0x4b,0xb4,0x46,0x62,0x4e,0x6c,0x4e,0x72,0x47,0xca,0x4e,0x78,0x4a,0x34,0x4a,0x8e,0x46,0x68,0x49,0x56,0x49,0x5c,0x47,0xd0, +0x47,0xb8,0x46,0xaa,0x4e,0x7e,0x48,0x66,0x47,0xca,0x4e,0x84,0x4a,0xf4,0x4a,0xfa,0x47,0x82,0x49,0x80,0x49,0x5c,0x47,0xf4,0x4c,0xe6,0x4a,0x9a,0x47,0x82,0x49,0xe6,0x4c,0xda,0x47,0xf4,0x4a,0xa0,0x4e,0x8a,0x46,0xe6,0x48,0x2a,0x4e,0x90,0x48,0x36,0x46,0xda,0x46,0xe0,0x4e,0x96,0x48,0x2a,0x48,0x30,0x4e,0x9c,0x47,0x40,0x47,0x46, +0x4e,0xa2,0x48,0x72,0x48,0x6c,0x4e,0xa8,0x4a,0xca,0x4c,0x5c,0x47,0x4c,0x49,0xc2,0x49,0xbc,0x48,0x78,0x46,0x92,0x47,0x46,0x4e,0xae,0x47,0xe8,0x48,0xc0,0x4e,0xb4,0x4a,0xd0,0x4c,0x5c,0x47,0x88,0x49,0xda,0x49,0xe0,0x47,0x70,0x47,0xb8,0x47,0x04,0x4e,0x7e,0x48,0xfc,0x48,0x7e,0x49,0x02,0x4b,0x36,0x4b,0x12,0x47,0xbe,0x4b,0x3c, +0x4e,0x42,0x49,0x02,0x4a,0x70,0x4a,0x76,0x47,0xbe,0x4a,0x64,0x4a,0x6a,0x49,0x02,0x47,0x76,0x47,0x7c,0x4e,0xba,0x48,0xae,0x48,0xb4,0x4e,0xc0,0x4e,0xc6,0x4e,0xcc,0x4e,0xd2,0x4e,0xd8,0x4e,0xde,0x4e,0xe4,0x46,0xa4,0x46,0xaa,0x4e,0xea,0x48,0x0c,0x47,0xca,0x49,0x7a,0x4b,0xb4,0x46,0x62,0x4e,0xf0,0x47,0xc4,0x47,0xca,0x4e,0xf6, +0x4e,0xfc,0x4f,0x02,0x46,0x7a,0x47,0xd6,0x47,0xdc,0x47,0xe2,0x4f,0x08,0x46,0x74,0x4f,0x0e,0x47,0xd6,0x47,0xdc,0x4f,0x14,0x47,0xb8,0x46,0x74,0x4f,0x1a,0x47,0xd6,0x47,0xdc,0x4f,0x20,0x49,0x14,0x4f,0x26,0x46,0x68,0x47,0xfa,0x48,0x00,0x48,0x06,0x4f,0x2c,0x46,0x98,0x4f,0x32,0x4f,0x38,0x48,0x00,0x4e,0xa8,0x46,0xfe,0x46,0x98, +0x4f,0x3e,0x47,0xd6,0x48,0x00,0x4f,0x44,0x46,0x92,0x46,0x98,0x4f,0x4a,0x47,0xfa,0x48,0x00,0x4f,0x50,0x4f,0x56,0x46,0x98,0x4f,0x5c,0x47,0xd6,0x48,0x00,0x48,0x84,0x47,0x10,0x46,0xaa,0x48,0x84,0x4f,0x62,0x47,0xca,0x4c,0xf8,0x4f,0x08,0x46,0xaa,0x4f,0x68,0x48,0x0c,0x47,0xca,0x4b,0xde,0x4f,0x6e,0x4a,0x82,0x4f,0x74,0x4f,0x7a, +0x4f,0x80,0x48,0x18,0x4f,0x86,0x49,0x38,0x46,0xc2,0x49,0xe6,0x4b,0x72,0x48,0x24,0x4f,0x8c,0x4f,0x92,0x46,0xd4,0x4f,0x98,0x4f,0x9e,0x47,0x1c,0x46,0xc8,0x46,0xce,0x4f,0xa4,0x4f,0xaa,0x47,0xdc,0x4f,0xb0,0x4f,0x8c,0x49,0x38,0x46,0xd4,0x4f,0xb6,0x4f,0xbc,0x47,0x94,0x46,0xc8,0x46,0xce,0x4f,0xc2,0x47,0xd6,0x47,0xdc,0x48,0x84, +0x46,0xc8,0x46,0xce,0x4f,0xc8,0x47,0xd6,0x47,0xdc,0x4f,0xce,0x46,0xda,0x46,0xe0,0x4f,0xd4,0x48,0x2a,0x48,0x30,0x4d,0x76,0x4f,0xda,0x4c,0x68,0x47,0x0a,0x4f,0xe0,0x49,0x2c,0x47,0x1c,0x47,0x8e,0x47,0x04,0x4f,0xe6,0x4f,0xec,0x48,0x48,0x4e,0xb4,0x46,0xfe,0x47,0x04,0x4f,0x3e,0x4f,0xf2,0x48,0x48,0x4f,0xf8,0x47,0x76,0x47,0x16, +0x4e,0xb4,0x48,0x2a,0x48,0x4e,0x4e,0x9c,0x4f,0xfe,0x50,0x04,0x4e,0xb4,0x50,0x0a,0x4b,0xf6,0x4e,0x9c,0x4f,0x08,0x47,0x16,0x4f,0xf8,0x48,0x2a,0x48,0x4e,0x50,0x10,0x50,0x16,0x47,0x16,0x50,0x1c,0x48,0x2a,0x48,0x4e,0x50,0x22,0x50,0x28,0x50,0x2e,0x47,0x2e,0x50,0x34,0x50,0x3a,0x48,0x60,0x50,0x40,0x50,0x46,0x47,0x2e,0x50,0x34, +0x50,0x3a,0x48,0x60,0x47,0x22,0x47,0x28,0x50,0x4c,0x48,0x54,0x48,0x5a,0x50,0x52,0x50,0x58,0x49,0x38,0x50,0x5e,0x49,0xd4,0x49,0xbc,0x46,0xb0,0x50,0x64,0x47,0x34,0x50,0x6a,0x48,0x72,0x48,0x6c,0x4e,0xa8,0x50,0x64,0x47,0x34,0x50,0x70,0x48,0x72,0x48,0x6c,0x50,0x76,0x47,0x40,0x47,0x34,0x50,0x7c,0x48,0x66,0x48,0x6c,0x48,0x84, +0x4c,0x20,0x50,0x82,0x47,0x58,0x4c,0x0e,0x4a,0x6a,0x48,0x84,0x4a,0x94,0x50,0x88,0x4a,0x88,0x50,0x8e,0x4a,0x6a,0x50,0x94,0x50,0x9a,0x50,0xa0,0x46,0xb0,0x50,0xa6,0x4c,0x32,0x48,0x36,0x47,0x52,0x47,0x64,0x50,0xac,0x48,0x90,0x48,0x96,0x4e,0x9c,0x47,0x52,0x47,0x64,0x50,0xb2,0x48,0x90,0x48,0x96,0x50,0x10,0x4c,0x74,0x4a,0x82, +0x50,0xb8,0x4c,0x2c,0x4b,0x06,0x50,0xbe,0x47,0x6a,0x46,0xaa,0x4e,0xb4,0x50,0xc4,0x48,0xa2,0x50,0xca,0x4c,0x3e,0x50,0xd0,0x47,0x70,0x4c,0x38,0x50,0xd6,0x48,0xa8,0x50,0xdc,0x50,0xd0,0x4b,0xae,0x50,0xe2,0x50,0xd6,0x48,0xa8,0x50,0xe8,0x4a,0x82,0x50,0xee,0x4c,0x2c,0x4b,0x06,0x50,0xf4,0x4c,0xe6,0x4a,0x9a,0x47,0x82,0x50,0xfa, +0x4c,0x56,0x48,0xba,0x47,0x76,0x47,0x7c,0x4e,0xb4,0x48,0xae,0x48,0xb4,0x51,0x00,0x47,0x76,0x47,0x7c,0x51,0x06,0x48,0xae,0x48,0xb4,0x51,0x0c,0x47,0x76,0x47,0x7c,0x51,0x12,0x48,0xae,0x48,0xb4,0x51,0x18,0x46,0x92,0x47,0x46,0x4e,0xae,0x51,0x1e,0x48,0xc0,0x51,0x24,0x46,0x92,0x47,0x46,0x4e,0xae,0x47,0xe8,0x48,0xc0,0x4e,0xb4, +0x4f,0x56,0x47,0x46,0x4f,0x5c,0x51,0x2a,0x48,0xc0,0x50,0x1c,0x51,0x30,0x51,0x36,0x47,0x94,0x49,0x62,0x51,0x3c,0x48,0xd2,0x47,0x8e,0x47,0x46,0x4f,0xe6,0x48,0xc6,0x48,0xcc,0x51,0x42,0x51,0x48,0x51,0x4e,0x47,0xa6,0x51,0x54,0x4e,0x12,0x48,0xe4,0x47,0x9a,0x47,0xa0,0x51,0x5a,0x48,0xd8,0x48,0xde,0x51,0x60,0x51,0x66,0x51,0x6c, +0x47,0xb2,0x51,0x72,0x51,0x78,0x48,0xf6,0x51,0x66,0x4f,0x26,0x47,0xb2,0x51,0x72,0x4e,0x42,0x48,0xf6,0x4a,0x70,0x4c,0x7a,0x47,0xbe,0x4a,0x64,0x4e,0x42,0x49,0x02,0x49,0x26,0x4b,0x12,0x46,0xb0,0x4c,0x6e,0x4b,0x1e,0x51,0x7e,0x46,0xfe,0x47,0x04,0x4e,0xa8,0x49,0x08,0x47,0xee,0x51,0x84,0x46,0xfe,0x47,0x04,0x4f,0x1a,0x48,0x90, +0x47,0xee,0x51,0x8a,0x47,0xd6,0x47,0xdc,0x4f,0x44,0x51,0x90,0x51,0x96,0x48,0xba,0x4e,0x30,0x4e,0x12,0x48,0xe4,0x4b,0x3c,0x4a,0x6a,0x49,0x02,0x49,0x56,0x51,0x9c,0x47,0xd0,0x51,0xa2,0x51,0xa8,0x51,0xae,0x4b,0x54,0x51,0xb4,0x51,0xba,0x51,0xc0,0x51,0xc6,0x51,0xcc,0x51,0xd2,0x51,0xd8,0x51,0xde,0x4b,0x54,0x51,0xe4,0x51,0xba, +0x51,0xea,0x51,0xf0,0x51,0xf6,0x4b,0x54,0x51,0xb4,0x51,0xba,0x51,0xfc,0x52,0x02,0x52,0x08,0x52,0x0e,0x52,0x14,0x52,0x1a,0x52,0x20,0x52,0x26,0x4b,0x30,0x52,0x2c,0x52,0x32,0x46,0x9e,0x52,0x38,0x52,0x3e,0x52,0x44,0x52,0x4a,0x52,0x50,0x52,0x56,0x4b,0x54,0x52,0x5c,0x51,0xba,0x52,0x62,0x52,0x68,0x52,0x6e,0x52,0x74,0x52,0x7a, +0x51,0x7e,0x52,0x80,0x52,0x86,0x48,0x78,0x52,0x8c,0x52,0x92,0x52,0x98,0x52,0x9e,0x52,0xa4,0x46,0xc2,0x52,0xaa,0x52,0xb0,0x52,0xb6,0x52,0xbc,0x52,0xc2,0x52,0xc8,0x52,0xce,0x52,0xd4,0x48,0x18,0x52,0xda,0x52,0xe0,0x4a,0xb2,0x52,0xe6,0x52,0xec,0x52,0xf2,0x52,0xf8,0x52,0xfe,0x53,0x04,0x53,0x0a,0x53,0x10,0x53,0x16,0x53,0x1c, +0x53,0x22,0x53,0x04,0x53,0x28,0x53,0x2e,0x53,0x34,0x53,0x3a,0x53,0x40,0x53,0x46,0x53,0x4c,0x53,0x52,0x53,0x58,0x53,0x5e,0x53,0x64,0x53,0x6a,0x53,0x70,0x53,0x76,0x53,0x7c,0x53,0x82,0x53,0x88,0x53,0x8e,0x53,0x94,0x53,0x9a,0x53,0xa0,0x53,0xa6,0x53,0xac,0x4b,0x60,0x53,0xb2,0x53,0xb8,0x53,0xbe,0x47,0x6a,0x46,0xaa,0x47,0x70, +0x48,0x9c,0x48,0xa2,0x48,0xa8,0x53,0xc4,0x53,0xca,0x53,0xd0,0x53,0xd6,0x53,0xdc,0x53,0xe2,0x53,0xe8,0x53,0xee,0x53,0xf4,0x53,0xfa,0x54,0x00,0x54,0x06,0x54,0x0c,0x54,0x12,0x54,0x18,0x53,0xfa,0x54,0x00,0x54,0x1e,0x54,0x24,0x54,0x2a,0x54,0x30,0x54,0x36,0x54,0x3c,0x54,0x42,0x54,0x48,0x54,0x4e,0x54,0x54,0x54,0x5a,0x54,0x60, +0x54,0x66,0x46,0xfe,0x47,0x04,0x47,0xbe,0x49,0x08,0x47,0xee,0x49,0x0e,0x47,0x76,0x47,0x04,0x51,0x12,0x46,0x80,0x46,0xce,0x54,0x6c,0x54,0x72,0x54,0x78,0x54,0x7e,0x54,0x84,0x54,0x8a,0x54,0x90,0x54,0x96,0x54,0x9c,0x54,0xa2,0x54,0xa8,0x54,0xae,0x54,0xb4,0x54,0xba,0x54,0xc0,0x54,0xc6,0x54,0xcc,0x54,0xd2,0x54,0xd8,0x54,0xde, +0x54,0xe4,0x54,0xea,0x54,0xf0,0x54,0xf6,0x54,0xfc,0x55,0x02,0x55,0x08,0x55,0x0e,0x55,0x14,0x55,0x1a,0x55,0x20,0x55,0x26,0x55,0x2c,0x55,0x32,0x55,0x38,0x55,0x3e,0x55,0x44,0x4a,0x34,0x4a,0x8e,0x46,0x68,0x55,0x4a,0x49,0x5c,0x55,0x50,0x4a,0xa0,0x4a,0xa6,0x46,0xe6,0x48,0x2a,0x55,0x56,0x48,0x36,0x4a,0xca,0x4c,0x5c,0x47,0x4c, +0x49,0xc2,0x49,0xbc,0x48,0x78,0x55,0x5c,0x4c,0x5c,0x55,0x62,0x4b,0xa8,0x49,0xe0,0x4b,0xae,0x4e,0x72,0x47,0xca,0x52,0x08,0x55,0x68,0x55,0x6e,0x55,0x74,0x55,0x7a,0x55,0x80,0x55,0x86,0x46,0xb6,0x46,0xbc,0x46,0xc2,0x48,0x0c,0x48,0x1e,0x48,0x24,0x55,0x8c,0x4c,0xf2,0x55,0x92,0x4b,0xa8,0x4b,0x72,0x4c,0xf8,0x49,0x26,0x4c,0x68, +0x46,0xb0,0x55,0x98,0x49,0x2c,0x53,0x04,0x47,0x40,0x47,0x46,0x55,0x9e,0x48,0x72,0x48,0x6c,0x55,0xa4,0x4d,0xbe,0x49,0x44,0x55,0x9e,0x49,0xd4,0x49,0xbc,0x55,0xa4,0x55,0xaa,0x4c,0x68,0x4e,0x18,0x55,0xb0,0x4b,0x1e,0x55,0xb6,0x48,0x3c,0x55,0xbc,0x48,0x42,0x55,0xc2,0x55,0xc8,0x55,0xce,0x55,0xd4,0x55,0xda,0x54,0xc6,0x55,0xe0, +0x55,0xe6,0x54,0xd8,0x4b,0x66,0x4c,0xf2,0x46,0xc2,0x49,0x80,0x4b,0x72,0x48,0x24,0x46,0x92,0x55,0xec,0x46,0x9e,0x55,0xf2,0x55,0xf8,0x55,0xfe,0x4b,0x66,0x49,0x38,0x47,0x3a,0x4c,0x0e,0x49,0xbc,0x47,0x1c,0x4a,0x34,0x56,0x04,0x46,0x68,0x49,0x56,0x49,0x5c,0x47,0xd0,0x4a,0x34,0x4a,0x3a,0x46,0x68,0x49,0x56,0x49,0x5c,0x47,0xd0, +0x4c,0xe0,0x56,0x0a,0x46,0xb0,0x49,0xda,0x49,0x5c,0x47,0xf4,0x4a,0x7c,0x4a,0x9a,0x4a,0x88,0x49,0xda,0x49,0x5c,0x47,0x70,0x4a,0xa0,0x56,0x10,0x46,0xe6,0x48,0x2a,0x56,0x16,0x48,0x36,0x4a,0xa0,0x4a,0xbe,0x46,0xe6,0x48,0x2a,0x49,0xaa,0x48,0x36,0x4b,0x90,0x49,0x44,0x47,0x4c,0x49,0x80,0x49,0xbc,0x48,0x78,0x4a,0xca,0x49,0x44, +0x47,0x4c,0x49,0xc2,0x49,0xbc,0x48,0x78,0x4a,0xf4,0x4c,0x26,0x46,0xb0,0x4b,0x00,0x4c,0x32,0x48,0x36,0x4c,0x20,0x50,0xa0,0x46,0x68,0x56,0x1c,0x4c,0x32,0x48,0x36,0x4a,0xd0,0x4c,0x5c,0x47,0x88,0x49,0xda,0x49,0xe0,0x47,0x70,0x4a,0xd0,0x49,0x50,0x47,0x88,0x4b,0xa8,0x49,0xe0,0x4b,0xae,0x56,0x22,0x56,0x28,0x56,0x2e,0x56,0x34, +0x56,0x3a,0x56,0x40,0x4d,0x10,0x4c,0x08,0x46,0xd4,0x55,0x98,0x56,0x46,0x47,0x1c,0x56,0x4c,0x56,0x52,0x56,0x58,0x56,0x5e,0x56,0x64,0x56,0x6a,0x56,0x70,0x56,0x76,0x4b,0xae,0x46,0xfe,0x47,0x04,0x56,0x7c,0x49,0x08,0x47,0xee,0x56,0x82,0x49,0x14,0x49,0x1a,0x46,0x68,0x49,0x6e,0x49,0x5c,0x47,0xd0,0x49,0x3e,0x49,0x50,0x47,0x4c, +0x49,0xd4,0x49,0xbc,0x48,0x78,0x4a,0x70,0x4f,0x92,0x47,0xbe,0x4a,0x64,0x4a,0x6a,0x49,0x02,0x56,0x88,0x56,0x8e,0x56,0x94,0x56,0x9a,0x56,0xa0,0x56,0xa6,0x56,0x9a,0x56,0xac,0x56,0xa6,0x56,0xb2,0x56,0xb8,0x56,0xbe,0x56,0xc4,0x56,0xca,0x56,0xd0,0x56,0xd6,0x56,0xca,0x56,0xdc,0x56,0xe2,0x56,0xe8,0x56,0xee,0x56,0xe2,0x56,0xf4, +0x56,0xbe,0x56,0xfa,0x4e,0xde,0x57,0x00,0x57,0x06,0x57,0x0c,0x57,0x12,0x57,0x18,0x57,0x1e,0x57,0x24,0x57,0x2a,0x57,0x1e,0x57,0x30,0x57,0x2a,0x57,0x36,0x57,0x30,0x57,0x3c,0x57,0x42,0x57,0x48,0x57,0x4e,0x57,0x54,0x57,0x5a,0x57,0x60,0x56,0xf4,0x48,0x24,0x48,0x0c,0x48,0x1e,0x48,0x24,0x57,0x66,0x57,0x6c,0x57,0x72,0x57,0x78, +0x57,0x7e,0x57,0x84,0x57,0x8a,0x57,0x90,0x57,0x96,0x57,0x9c,0x57,0xa2,0x57,0xa8,0x57,0xae,0x57,0xb4,0x47,0x1c,0x57,0xae,0x57,0xb4,0x57,0xa8,0x57,0xba,0x57,0xc0,0x57,0xc6,0x57,0xcc,0x57,0xd2,0x48,0x18,0x57,0xd8,0x57,0xde,0x57,0xe4,0x57,0xea,0x57,0xf0,0x57,0xf6,0x57,0xfc,0x58,0x02,0x58,0x08,0x58,0x0e,0x58,0x14,0x58,0x1a, +0x58,0x20,0x58,0x26,0x58,0x2c,0x58,0x32,0x58,0x38,0x4c,0x92,0x58,0x32,0x58,0x38,0x58,0x3e,0x48,0x54,0x48,0x5a,0x58,0x44,0x48,0x66,0x48,0x6c,0x48,0x84,0x48,0x66,0x48,0x6c,0x48,0x84,0x58,0x4a,0x58,0x50,0x46,0xb0,0x58,0x56,0x58,0x5c,0x48,0x78,0x58,0x62,0x58,0x68,0x58,0x6e,0x58,0x74,0x58,0x7a,0x58,0x80,0x58,0x86,0x58,0x8c, +0x58,0x92,0x58,0x98,0x58,0x9e,0x58,0xa4,0x58,0xaa,0x58,0xb0,0x58,0xa4,0x58,0x98,0x58,0x9e,0x58,0xb6,0x58,0xbc,0x48,0x96,0x50,0x22,0x58,0xbc,0x48,0x96,0x57,0x5a,0x58,0xc2,0x58,0xc8,0x58,0xce,0x58,0xd4,0x58,0xda,0x58,0xe0,0x58,0xe6,0x58,0xec,0x58,0xf2,0x58,0xe6,0x58,0xf8,0x58,0xf2,0x48,0x9c,0x48,0xa2,0x58,0xfe,0x59,0x04, +0x59,0x0a,0x59,0x10,0x59,0x16,0x59,0x1c,0x59,0x22,0x59,0x28,0x59,0x2e,0x59,0x34,0x59,0x3a,0x59,0x40,0x59,0x46,0x59,0x4c,0x59,0x52,0x59,0x58,0x48,0xae,0x48,0xb4,0x59,0x5e,0x59,0x64,0x59,0x6a,0x59,0x70,0x59,0x76,0x59,0x7c,0x59,0x82,0x59,0x88,0x59,0x8e,0x59,0x94,0x59,0x9a,0x59,0xa0,0x48,0xd2,0x59,0xa6,0x59,0xac,0x59,0xb2, +0x59,0xb8,0x59,0xbe,0x58,0xf2,0x59,0xc4,0x59,0xca,0x59,0xd0,0x49,0x08,0x47,0xee,0x59,0xd6,0x49,0x08,0x47,0xee,0x59,0xdc,0x59,0xe2,0x47,0xee,0x56,0x40,0x59,0xe2,0x47,0xee,0x56,0x40,0x59,0xe8,0x59,0xee,0x59,0xf4,0x59,0xe8,0x59,0xfa,0x5a,0x00,0x57,0xea,0x5a,0x06,0x5a,0x0c,0x5a,0x12,0x5a,0x18,0x48,0x24,0x5a,0x1e,0x5a,0x24, +0x5a,0x2a,0x58,0xe6,0x5a,0x30,0x58,0xf2,0x5a,0x36,0x5a,0x3c,0x5a,0x42,0x5a,0x48,0x5a,0x4e,0x5a,0x54,0x5a,0x5a,0x57,0xa2,0x4d,0x40,0x5a,0x60,0x5a,0x66,0x5a,0x6c,0x5a,0x72,0x5a,0x78,0x5a,0x7e,0x5a,0x84,0x5a,0x8a,0x51,0x7e,0x47,0xd6,0x5a,0x90,0x48,0x84,0x59,0xe8,0x59,0xee,0x59,0xf4,0x59,0xe8,0x59,0xfa,0x5a,0x00,0x5a,0x96, +0x5a,0x9c,0x5a,0xa2,0x5a,0x96,0x5a,0xa8,0x5a,0xae,0x5a,0x96,0x5a,0xb4,0x5a,0xba,0x5a,0xc0,0x5a,0xc6,0x5a,0xcc,0x5a,0xd2,0x5a,0xd8,0x5a,0xde,0x5a,0xe4,0x5a,0xea,0x5a,0xf0,0x5a,0xf6,0x53,0x64,0x5a,0xfc,0x5b,0x02,0x5b,0x08,0x5b,0x0e,0x5b,0x14,0x5b,0x1a,0x5b,0x20,0x5b,0x26,0x5b,0x2c,0x5b,0x32,0x5b,0x38,0x5b,0x2c,0x5b,0x32, +0x5b,0x3e,0x5b,0x44,0x48,0x42,0x5b,0x4a,0x5b,0x44,0x46,0xe6,0x5b,0x50,0x5b,0x56,0x5b,0x5c,0x5b,0x62,0x5b,0x68,0x50,0x22,0x5b,0x6e,0x5b,0x74,0x48,0x84,0x5b,0x7a,0x5b,0x80,0x5b,0x86,0x52,0x62,0x5b,0x8c,0x52,0x6e,0x52,0x62,0x5b,0x8c,0x52,0x6e,0x5b,0x92,0x5b,0x98,0x5b,0x9e,0x5b,0xa4,0x5b,0xaa,0x5b,0xb0,0x5b,0xb6,0x5b,0xbc, +0x5b,0xc2,0x5b,0xc8,0x5b,0xce,0x5b,0xd4,0x5b,0xda,0x5b,0xe0,0x5b,0xe6,0x47,0x10,0x47,0x16,0x47,0x1c,0x5b,0xec,0x5b,0xf2,0x5b,0xf8,0x48,0x9c,0x48,0xa2,0x5b,0xfe,0x49,0x08,0x47,0xee,0x5c,0x04,0x5c,0x0a,0x5c,0x10,0x48,0xd2,0x47,0xd6,0x47,0xdc,0x47,0xe2,0x47,0xfa,0x48,0x00,0x48,0x06,0x48,0x12,0x46,0x80,0x48,0x18,0x48,0x54, +0x48,0x5a,0x48,0x60,0x48,0x66,0x48,0x6c,0x47,0x1c,0x48,0x66,0x48,0x7e,0x48,0x84,0x48,0x90,0x48,0x96,0x48,0x36,0x5c,0x16,0x5c,0x1c,0x5c,0x22,0x48,0x9c,0x48,0xa2,0x48,0xa8,0x48,0xae,0x48,0xb4,0x48,0xba,0x49,0x08,0x47,0xee,0x49,0x0e,0x5c,0x28,0x5c,0x2e,0x56,0xee,0x5c,0x34,0x5c,0x3a,0x5c,0x40,0x5c,0x46,0x5c,0x4c,0x5c,0x52, +0x5c,0x58,0x5c,0x5e,0x5c,0x64,0x5c,0x6a,0x57,0xde,0x5c,0x70,0x4a,0xd6,0x5c,0x76,0x48,0x36,0x48,0x66,0x48,0x7e,0x48,0x84,0x5c,0x7c,0x5c,0x82,0x5c,0x88,0x59,0x76,0x59,0x7c,0x59,0x82,0x47,0xd6,0x47,0xdc,0x5c,0x8e,0x47,0xfa,0x48,0x00,0x5c,0x94,0x48,0x12,0x46,0x80,0x5c,0x9a,0x48,0x0c,0x48,0x1e,0x48,0x24,0x47,0xd6,0x48,0x48, +0x5c,0xa0,0x48,0x2a,0x48,0x4e,0x4d,0x76,0x48,0x54,0x48,0x5a,0x5c,0xa6,0x48,0x66,0x48,0x6c,0x5c,0xa0,0x48,0x66,0x48,0x7e,0x48,0x84,0x48,0x90,0x48,0x96,0x4d,0x76,0x48,0x9c,0x48,0xa2,0x58,0xfe,0x59,0x04,0x59,0x0a,0x59,0x10,0x48,0xc6,0x48,0xcc,0x5c,0xac,0x48,0xea,0x48,0xf0,0x5c,0xb2,0x49,0x08,0x47,0xee,0x5c,0xb8,0x47,0xc4, +0x47,0xca,0x4b,0xc0,0x48,0x66,0x48,0x8a,0x5c,0xa0,0x47,0xd6,0x5a,0x90,0x5c,0xa0,0x48,0x0c,0x47,0xca,0x4b,0xde,0x57,0x18,0x57,0x1e,0x5c,0xbe,0x57,0x2a,0x57,0x1e,0x5c,0xc4,0x48,0x0c,0x47,0xca,0x47,0xf4,0x48,0x2a,0x48,0x30,0x4d,0x76,0x5c,0xca,0x47,0xee,0x5c,0xd0,0x59,0x04,0x59,0x0a,0x59,0x10,0x47,0xe8,0x48,0xc0,0x4d,0xfa, +0x5c,0xd6,0x5c,0xdc,0x5c,0xe2,0x5c,0xe8,0x5c,0xee,0x5c,0xf4,0x5c,0xfa,0x5d,0x00,0x57,0xe4,0x46,0x6e,0x46,0x74,0x46,0x7a,0x46,0x92,0x47,0x46,0x47,0x88,0x46,0xfe,0x46,0x62,0x47,0x0a,0x46,0xa4,0x46,0xaa,0x5d,0x06,0x5d,0x0c,0x5d,0x12,0x4b,0xde,0x46,0xec,0x46,0xf2,0x46,0xf8,0x48,0x3c,0x48,0x30,0x48,0x42,0x5d,0x18,0x5d,0x1e, +0x5d,0x24,0x5d,0x2a,0x5d,0x30,0x5d,0x36,0x47,0x52,0x47,0x64,0x46,0x68,0x48,0x90,0x48,0x96,0x48,0x36,0x47,0xb8,0x47,0x04,0x47,0xbe,0x48,0xfc,0x48,0x7e,0x49,0x02,0x5d,0x3c,0x5d,0x42,0x5d,0x48,0x47,0x10,0x47,0x16,0x47,0x1c,0x5d,0x4e,0x48,0x4e,0x5d,0x54,0x47,0x10,0x47,0x16,0x47,0x1c,0x47,0x52,0x46,0x74,0x47,0x58,0x47,0x52, +0x47,0x64,0x5d,0x5a,0x5d,0x60,0x5d,0x66,0x4b,0xc0,0x5d,0x6c,0x5d,0x72,0x5d,0x78,0x48,0x66,0x5d,0x7e,0x47,0x1c,0x5d,0x84,0x5d,0x8a,0x5d,0x90,0x4a,0xd6,0x4a,0xdc,0x4d,0x76,0x00,0x02,0x00,0x0d,0x02,0x44,0x02,0x47,0x00,0x00,0x04,0x62,0x04,0x79,0x00,0x04,0x04,0x7b,0x04,0x7f,0x00,0x1c,0x04,0x82,0x04,0x84,0x00,0x21,0x04,0x87, +0x04,0x91,0x00,0x24,0x04,0x97,0x04,0x9d,0x00,0x2f,0x04,0xa0,0x04,0xac,0x00,0x36,0x05,0xfd,0x06,0x00,0x00,0x43,0x06,0x66,0x06,0x72,0x00,0x47,0x07,0x55,0x07,0x5c,0x00,0x54,0x07,0xed,0x07,0xef,0x00,0x5c,0x08,0x4c,0x08,0x4f,0x00,0x5f,0x0a,0xdb,0x0a,0xe3,0x00,0x63,0x00,0x02,0x00,0x36,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44, +0x00,0x5d,0x00,0x1a,0x00,0x62,0x00,0x81,0x00,0x34,0x00,0x89,0x00,0x89,0x00,0x54,0x00,0x91,0x00,0x92,0x00,0x55,0x00,0xa0,0x00,0xa1,0x00,0x57,0x00,0xa7,0x00,0xa7,0x00,0x59,0x00,0xad,0x00,0xb1,0x00,0x5a,0x00,0xba,0x00,0xbb,0x00,0x5f,0x00,0xc7,0x00,0xd6,0x00,0x61,0x00,0xe1,0x00,0xe6,0x00,0x71,0x00,0xe8,0x00,0xed,0x00,0x77, +0x00,0xf7,0x01,0x00,0x00,0x7d,0x01,0x03,0x01,0x2b,0x00,0x87,0x01,0x39,0x01,0x3b,0x00,0xb0,0x01,0x45,0x01,0x84,0x00,0xb3,0x01,0x8c,0x01,0x93,0x00,0xf3,0x02,0x40,0x02,0x43,0x00,0xfb,0x02,0x57,0x02,0x5a,0x00,0xff,0x02,0x6f,0x02,0x74,0x01,0x03,0x02,0x7f,0x02,0x86,0x01,0x09,0x02,0x9b,0x02,0x9e,0x01,0x11,0x02,0xa9,0x02,0xb0, +0x01,0x15,0x02,0xcd,0x02,0xce,0x01,0x1d,0x02,0xe1,0x02,0xea,0x01,0x1f,0x02,0xed,0x02,0xf6,0x01,0x29,0x02,0xfb,0x02,0xfe,0x01,0x33,0x03,0x01,0x03,0x10,0x01,0x37,0x03,0x13,0x03,0x2e,0x01,0x47,0x03,0x37,0x03,0x3e,0x01,0x63,0x03,0x41,0x03,0x5a,0x01,0x6b,0x03,0x5f,0x03,0x78,0x01,0x85,0x04,0xb0,0x04,0xe2,0x01,0x9f,0x04,0xe6, +0x04,0xe7,0x01,0xd2,0x04,0xe9,0x04,0xe9,0x01,0xd4,0x04,0xee,0x04,0xfe,0x01,0xd5,0x05,0x07,0x05,0x07,0x01,0xe6,0x05,0x0c,0x05,0x46,0x01,0xe7,0x05,0x4b,0x05,0x4c,0x02,0x22,0x05,0x4f,0x05,0x50,0x02,0x24,0x05,0x56,0x05,0xb2,0x02,0x26,0x06,0xac,0x06,0xad,0x02,0x83,0x07,0x3e,0x07,0x43,0x02,0x85,0x07,0xe1,0x07,0xe2,0x02,0x8b, +0x07,0xe4,0x07,0xeb,0x02,0x8d,0x07,0xf7,0x08,0x05,0x02,0x95,0x08,0x07,0x08,0x26,0x02,0xa4,0x0a,0x43,0x0a,0x43,0x02,0xc4,0x0a,0xbf,0x0a,0xcc,0x02,0xc5,0x0a,0xe5,0x0a,0xe5,0x02,0xd3,0x0a,0xe7,0x0a,0xed,0x02,0xd4,0x0a,0xf4,0x0a,0xf4,0x02,0xdb,0x0a,0xf7,0x0a,0xf7,0x02,0xdc,0x11,0x8c,0x11,0x8c,0x02,0xdd,0x00,0x01,0x00,0x98, +0x00,0xc0,0x00,0x02,0x00,0x0c,0x00,0x2e,0x00,0x08,0x00,0x00,0x4a,0xba,0x00,0x00,0x4a,0xc0,0x00,0x01,0x4a,0xc6,0x00,0x00,0x4a,0xcc,0x00,0x01,0x4a,0xc6,0x00,0x00,0x4a,0xc6,0x00,0x01,0x4a,0xc6,0x00,0x01,0x4a,0xc6,0x00,0x1a,0x4a,0xb0,0x4a,0xb0,0x4a,0xb6,0x4a,0xbc,0x4a,0xc2,0x4a,0xc2,0x4a,0xc8,0x4a,0xc8,0x4a,0xce,0x4a,0xce, +0x4a,0xd4,0x4a,0xda,0x4a,0xe0,0x4a,0xe6,0x4a,0xec,0x4a,0xf2,0x4a,0xf8,0x4a,0xf8,0x4a,0xfe,0x4b,0x04,0x4b,0x0a,0x4b,0x10,0x40,0xb4,0x40,0xb4,0x4b,0x16,0x4b,0x1c,0x4b,0x22,0x4b,0x22,0x4b,0x28,0x4b,0x2e,0x4b,0x34,0x4b,0x3a,0x4b,0x40,0x4b,0x40,0x4b,0x46,0x4b,0x4c,0x4b,0x52,0x4b,0x58,0x4b,0x5e,0x4b,0x5e,0x4b,0x64,0x4b,0x6a, +0x4b,0x70,0x4b,0x76,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x8e,0x4b,0x94,0x4b,0x9a,0x4b,0x22,0x4b,0x22,0x00,0x02,0x00,0x06,0x02,0x46,0x02,0x47,0x00,0x00,0x04,0x63,0x04,0x64,0x00,0x02,0x04,0x66,0x04,0x66,0x00,0x04,0x04,0x6b,0x04,0x6b,0x00,0x05,0x04,0x6e,0x04,0x6e,0x00,0x06,0x04,0x70,0x04,0x70,0x00,0x07,0x00,0x02,0x00,0x12, +0x01,0xdb,0x01,0xdb,0x00,0x00,0x01,0xe5,0x01,0xe5,0x00,0x01,0x01,0xe7,0x01,0xe7,0x00,0x02,0x01,0xec,0x01,0xec,0x00,0x03,0x01,0xef,0x01,0xf0,0x00,0x04,0x01,0xf5,0x01,0xf5,0x00,0x06,0x01,0xfa,0x01,0xfa,0x00,0x07,0x02,0x02,0x02,0x02,0x00,0x08,0x02,0x04,0x02,0x07,0x00,0x09,0x02,0x0c,0x02,0x0c,0x00,0x0d,0x02,0x0f,0x02,0x10, +0x00,0x0e,0x02,0x15,0x02,0x15,0x00,0x10,0x02,0x1a,0x02,0x1a,0x00,0x11,0x02,0x22,0x02,0x22,0x00,0x12,0x02,0x24,0x02,0x27,0x00,0x13,0x02,0x31,0x02,0x31,0x00,0x17,0x02,0xcd,0x02,0xcd,0x00,0x18,0x05,0x07,0x05,0x07,0x00,0x19,0x00,0x01,0x00,0xd8,0x00,0xde,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4a,0x92,0x00,0x62, +0x4a,0x92,0x4a,0x98,0x4a,0x9e,0x4a,0xa4,0x4a,0xaa,0x4a,0xb0,0x4a,0xb6,0x4a,0xbc,0x4a,0xc2,0x4a,0xc8,0x4a,0xce,0x4a,0xd4,0x4a,0xda,0x4a,0xe0,0x4a,0xe6,0x4a,0xec,0x4a,0xe6,0x4a,0xf2,0x4a,0xf8,0x4a,0xfe,0x4b,0x04,0x4b,0x0a,0x4b,0x10,0x42,0x52,0x4b,0x16,0x4b,0x1c,0x4b,0x22,0x4b,0x28,0x4b,0x2e,0x4b,0x34,0x4b,0x3a,0x4b,0x40, +0x4b,0x46,0x4b,0x4c,0x4b,0x52,0x4b,0x58,0x4b,0x5e,0x4b,0x64,0x4b,0x6a,0x4b,0x70,0x4b,0x76,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x8e,0x4b,0x94,0x4b,0x9a,0x4b,0xa0,0x4b,0xa6,0x4b,0xac,0x4b,0xb2,0x4b,0xb8,0x4b,0x22,0x4b,0x22,0x4b,0x22,0x4b,0x22,0x4b,0x22,0x4b,0x22,0x4b,0x3a,0x4b,0x3a,0x4b,0x3a,0x4b,0x3a,0x4b,0x52,0x4b,0x52, +0x4b,0x52,0x4b,0x52,0x4b,0x76,0x4b,0x76,0x4b,0x76,0x4b,0x76,0x4b,0x76,0x4b,0x9a,0x4b,0x9a,0x4b,0x9a,0x4b,0x9a,0x4b,0xbe,0x4b,0xc4,0x4b,0xca,0x4b,0xb2,0x4b,0xd0,0x4b,0xb2,0x4b,0xd6,0x4b,0xdc,0x4b,0xe2,0x4b,0xe8,0x4b,0xee,0x4b,0xf4,0x4b,0xfa,0x4c,0x00,0x4c,0x06,0x4c,0x0c,0x4c,0x12,0x4c,0x18,0x4b,0x76,0x4c,0x1e,0x4c,0x24, +0x4c,0x2a,0x4c,0x30,0x00,0x01,0x00,0x01,0x06,0x9b,0x00,0x02,0x00,0x16,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x69,0x00,0x6e,0x00,0x34,0x00,0x70,0x00,0x77,0x00,0x3a,0x00,0x79,0x00,0x81,0x00,0x42,0x00,0xa0,0x00,0xa1,0x00,0x4b,0x00,0xb1,0x00,0xb1,0x00,0x4d,0x00,0xba,0x00,0xba,0x00,0x4e,0x00,0xd6, +0x00,0xd6,0x00,0x4f,0x00,0xeb,0x00,0xeb,0x00,0x50,0x05,0x07,0x05,0x07,0x00,0x51,0x05,0x56,0x05,0x58,0x00,0x52,0x05,0x5a,0x05,0x5a,0x00,0x55,0x05,0x5e,0x05,0x5e,0x00,0x56,0x05,0x60,0x05,0x61,0x00,0x57,0x05,0x63,0x05,0x63,0x00,0x59,0x05,0x69,0x05,0x69,0x00,0x5a,0x05,0x6d,0x05,0x6d,0x00,0x5b,0x05,0x6f,0x05,0x6f,0x00,0x5c, +0x05,0x7a,0x05,0x7b,0x00,0x5d,0x05,0x8e,0x05,0x8f,0x00,0x5f,0x05,0x91,0x05,0x91,0x00,0x61,0x00,0x01,0x00,0x9c,0x00,0xa6,0x00,0x01,0x00,0x0c,0x00,0x22,0x00,0x05,0x00,0x00,0x4a,0xd6,0x00,0x00,0x4a,0xd6,0x00,0x00,0x26,0xc4,0x00,0x00,0x4a,0xdc,0x00,0x00,0x4a,0xe2,0x00,0x3c,0x4a,0xd2,0x4a,0xd8,0x4a,0xde,0x4a,0xe4,0x4a,0xea, +0x4a,0xf0,0x4a,0xf6,0x4a,0xfc,0x4b,0x02,0x4b,0x08,0x4b,0x0e,0x4b,0x14,0x4b,0x1a,0x4b,0x20,0x4b,0x26,0x4b,0x2c,0x4b,0x32,0x4b,0x2c,0x4b,0x38,0x4b,0x3e,0x4b,0x44,0x4b,0x4a,0x4b,0x50,0x4b,0x56,0x4b,0x5c,0x4b,0x62,0x4b,0x68,0x4b,0x6e,0x4b,0x74,0x4b,0x7a,0x4b,0x80,0x4b,0x86,0x4b,0x8c,0x4b,0x92,0x4b,0x98,0x4b,0x9e,0x4b,0xa4, +0x4b,0xaa,0x4b,0xb0,0x4b,0xb6,0x4b,0xbc,0x4b,0xc2,0x4b,0xc8,0x4b,0xce,0x4b,0xd4,0x4b,0xda,0x4b,0xe0,0x4b,0xe6,0x4b,0xec,0x4b,0xf2,0x4b,0xf8,0x4b,0xfe,0x4c,0x04,0x4c,0x0a,0x4c,0x10,0x4c,0x16,0x4c,0x1c,0x4c,0x22,0x4c,0x28,0x4c,0x2e,0x00,0x02,0x00,0x01,0x04,0x92,0x04,0x96,0x00,0x00,0x00,0x02,0x00,0x0a,0x00,0x24,0x00,0x3d, +0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x79,0x00,0x79,0x00,0x34,0x00,0xd0,0x00,0xd0,0x00,0x35,0x00,0xe4,0x00,0xe4,0x00,0x36,0x00,0xe6,0x00,0xe6,0x00,0x37,0x00,0xe9,0x00,0xe9,0x00,0x38,0x05,0x83,0x05,0x83,0x00,0x39,0x05,0x88,0x05,0x88,0x00,0x3a,0x05,0x97,0x05,0x97,0x00,0x3b,0x00,0x01,0x0c,0xf8,0x0d,0x0e,0x00,0x02, +0x00,0x0c,0x00,0x2a,0x00,0x07,0x00,0x00,0x4b,0x64,0x00,0x00,0x4b,0x6a,0x00,0x01,0x2f,0x68,0x00,0x00,0x4b,0x6a,0x00,0x00,0x4b,0x6a,0x00,0x01,0x4b,0x70,0x00,0x01,0x2f,0x8c,0x03,0x33,0x4b,0x58,0x4b,0x5e,0x4b,0x64,0x4b,0x6a,0x4b,0x70,0x4b,0x76,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x8e,0x4b,0x94,0x4b,0x9a,0x4b,0xa0,0x4b,0xa6, +0x4b,0xac,0x4b,0xb2,0x4b,0xb8,0x4b,0xbe,0x4b,0xc4,0x4b,0xca,0x4b,0xd0,0x4b,0xd6,0x4b,0xdc,0x4b,0xe2,0x4b,0xe8,0x4b,0xee,0x4b,0xf4,0x4b,0xfa,0x4c,0x00,0x4c,0x06,0x4c,0x0c,0x4c,0x12,0x4c,0x18,0x4c,0x1e,0x4c,0x24,0x4c,0x2a,0x4c,0x30,0x4c,0x36,0x4c,0x3c,0x4c,0x42,0x4c,0x48,0x4c,0x4e,0x4c,0x54,0x4c,0x5a,0x4c,0x60,0x4c,0x66, +0x4c,0x6c,0x4c,0x72,0x4c,0x78,0x4c,0x7e,0x4c,0x84,0x4c,0x8a,0x4c,0x90,0x4c,0x96,0x4c,0x9c,0x4c,0xa2,0x4c,0xa8,0x4c,0xae,0x4c,0xb4,0x4c,0xba,0x4c,0xc0,0x4c,0xc6,0x4c,0xcc,0x4c,0xd2,0x4c,0xb4,0x4c,0xba,0x4c,0xd8,0x4c,0xde,0x4c,0xe4,0x4c,0xea,0x4c,0xe4,0x4c,0xea,0x4c,0xd8,0x4c,0xde,0x4c,0xf0,0x4c,0xf6,0x4c,0xfc,0x4d,0x02, +0x4c,0xd8,0x4c,0xde,0x4d,0x08,0x4d,0x0e,0x4c,0x9c,0x4c,0xa2,0x4c,0xb4,0x4c,0xba,0x4d,0x14,0x4d,0x1a,0x4d,0x20,0x4d,0x26,0x4d,0x2c,0x4d,0x32,0x4d,0x38,0x4d,0x3e,0x4d,0x44,0x4d,0x4a,0x4d,0x50,0x4d,0x56,0x4d,0x5c,0x4d,0x62,0x4d,0x68,0x4d,0x6e,0x4d,0x74,0x4d,0x7a,0x4d,0x80,0x4b,0x5e,0x4d,0x80,0x4b,0x5e,0x4b,0x70,0x4b,0x76, +0x4b,0x88,0x4b,0x8e,0x4d,0x86,0x4b,0xfa,0x4d,0x8c,0x4c,0x06,0x4d,0x92,0x4c,0x4e,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x4c,0xa8,0x4c,0xae,0x4c,0xc0,0x4c,0xc6,0x4c,0xc0,0x4c,0xc6,0x4c,0xc0,0x4c,0xc6,0x4c,0xc0,0x4c,0xc6,0x4d,0x98,0x4d,0x9e, +0x4d,0xa4,0x4d,0xaa,0x4d,0xb0,0x4d,0xb6,0x4d,0xbc,0x4d,0xc2,0x4c,0xd8,0x4c,0xde,0x4d,0x08,0x4d,0x0e,0x4d,0x08,0x4d,0x0e,0x4d,0x08,0x4d,0x0e,0x4d,0x08,0x4d,0x0e,0x4d,0x08,0x4d,0x0e,0x4d,0x38,0x4d,0x3e,0x4d,0x38,0x4d,0x3e,0x4d,0x38,0x4d,0x3e,0x4d,0x38,0x4d,0x3e,0x4d,0xc8,0x4d,0xce,0x4d,0xd4,0x4d,0xda,0x4c,0x00,0x4c,0x06, +0x4d,0xe0,0x4d,0xe6,0x4d,0xec,0x4d,0xf2,0x4d,0xf8,0x4d,0xfe,0x4d,0x80,0x4b,0x5e,0x4d,0x80,0x4b,0x5e,0x4d,0x8c,0x4c,0x06,0x4e,0x04,0x4e,0x0a,0x4e,0x10,0x4e,0x16,0x4d,0x68,0x4d,0x6e,0x4c,0x78,0x4c,0x7e,0x4d,0x80,0x4b,0x5e,0x4e,0x1c,0x4b,0x8e,0x4d,0x80,0x4b,0x5e,0x4e,0x1c,0x4b,0x8e,0x4e,0x1c,0x4b,0x8e,0x4e,0x22,0x4e,0x28, +0x4e,0x2e,0x4e,0x34,0x4e,0x3a,0x4e,0x40,0x4e,0x46,0x4b,0xbe,0x4d,0x8c,0x4c,0x06,0x4d,0x8c,0x4c,0x06,0x4d,0x8c,0x4c,0x06,0x4d,0x92,0x4c,0x4e,0x4d,0x92,0x4c,0x4e,0x4d,0x92,0x4c,0x4e,0x4c,0xf0,0x4c,0xf6,0x4b,0xdc,0x4b,0xe2,0x4e,0x4c,0x4e,0x52,0x4e,0x58,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4e,0x5e,0x4c,0x8a,0x4d,0x74,0x4d,0x7a, +0x4b,0x7c,0x4b,0x82,0x4e,0x64,0x4e,0x6a,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4c,0x0c,0x4c,0x12,0x4c,0x9c,0x4c,0xa2,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x4b,0xb8,0x4b,0xbe,0x4c,0x30,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4b,0x70,0x4b,0x76,0x4c,0xa8,0x4c,0xae,0x4e,0x7c,0x4b,0x76,0x4c,0xa8,0x4c,0xae,0x4e,0x82,0x4e,0x88, +0x4b,0x58,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4b,0x58,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4e,0x8e,0x4b,0x82,0x4e,0x94,0x4e,0x9a,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0xa0,0x4b,0xe2,0x4e,0xa6,0x4e,0xac,0x4b,0xdc,0x4b,0xe2,0x4e,0xb2,0x4e,0xb8,0x4b,0xdc,0x4b,0xe2, +0x4e,0xbe,0x4e,0xc4,0x4d,0x86,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4d,0x86,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4e,0xca,0x4c,0x2a,0x4d,0x14,0x4d,0x1a,0x4e,0xca,0x4c,0x2a,0x4e,0xd0,0x4e,0xd6,0x4e,0x58,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4c,0x3c,0x4c,0x42,0x4e,0xdc,0x4e,0xe2,0x4e,0xe8,0x4c,0x42, +0x4e,0xee,0x4e,0xf4,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4e,0x5e,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x4e,0x5e,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x4e,0xfa,0x4f,0x00,0x4f,0x06,0x4f,0x0c,0x4f,0x12,0x4f,0x18,0x4b,0x58,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4e,0x7c,0x4b,0x76,0x4c,0xa8,0x4c,0xae, +0x4e,0x7c,0x4b,0x76,0x4c,0xa8,0x4c,0xae,0x4b,0x88,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x4b,0xa0,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x4f,0x1e,0x4b,0xb2,0x4f,0x24,0x4c,0xde, +0x4f,0x2a,0x4f,0x30,0x4c,0xd8,0x4c,0xde,0x4f,0x36,0x4f,0x3c,0x4f,0x42,0x4f,0x48,0x4f,0x4e,0x4f,0x54,0x4f,0x5a,0x4f,0x60,0x4f,0x66,0x4f,0x6c,0x4f,0x72,0x4f,0x78,0x4b,0xb8,0x4b,0xbe,0x4c,0xe4,0x4c,0xea,0x4f,0x7e,0x4f,0x84,0x4f,0x4e,0x4f,0x54,0x4b,0xd0,0x4b,0xd6,0x4c,0xd8,0x4c,0xde,0x4c,0xd8,0x4c,0xde,0x4b,0xdc,0x4b,0xe2, +0x4d,0x98,0x4d,0x9e,0x4b,0xf4,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4b,0xf4,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4c,0x00,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4c,0x00,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4c,0x24,0x4c,0x2a,0x4d,0x14,0x4d,0x1a,0x4e,0x58,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4c,0x3c,0x4c,0x42,0x4d,0x2c,0x4d,0x32,0x4d,0x92,0x4c,0x4e, +0x4d,0x38,0x4d,0x3e,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4c,0x60,0x4c,0x66,0x4d,0x50,0x4d,0x56,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4f,0x8a,0x4f,0x90,0x4f,0x96,0x4c,0x66,0x4d,0x50,0x4d,0x56,0x4f,0x96,0x4c,0x66,0x4d,0x50,0x4d,0x56, +0x4f,0x96,0x4c,0x66,0x4d,0x50,0x4d,0x56,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4f,0x9c,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x4f,0xb4,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x4b,0x58,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4f,0xcc,0x4f,0xd2,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96, +0x4d,0x80,0x4b,0x5e,0x4f,0xd8,0x4f,0xde,0x4d,0x80,0x4b,0x5e,0x4f,0xe4,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4f,0xe4,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4f,0xe4,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96, +0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4f,0xea,0x4f,0xf0,0x4f,0xf6,0x4f,0xfc,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x50,0x02,0x50,0x08,0x50,0x0e,0x50,0x14,0x4e,0x1c,0x4b,0x8e,0x50,0x1a,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6, +0x4e,0x46,0x4b,0xbe,0x50,0x20,0x50,0x26,0x4b,0xb8,0x4b,0xbe,0x4c,0xe4,0x4c,0xea,0x4c,0x00,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4e,0x82,0x4e,0x88,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x50,0x2c,0x4d,0x0e, +0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x50,0x32,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x50,0x32,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x50,0x32,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x50,0x32,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x4f,0x9c,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e, +0x50,0x38,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x50,0x38,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x50,0x38,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x50,0x38,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x50,0x38,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x4c,0x78,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e, +0x4c,0x3c,0x4c,0x42,0x4d,0x2c,0x4d,0x32,0x50,0x3e,0x50,0x44,0x50,0x4a,0x50,0x50,0x4b,0x88,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4b,0x58,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x50,0x56,0x4b,0x6a,0x4c,0x9c,0x4c,0xa2,0x4b,0x64,0x4b,0x6a,0x4c,0x9c,0x4c,0xa2,0x4b,0x64,0x4b,0x6a,0x4c,0x9c,0x4c,0xa2,0x4e,0x7c,0x4b,0x76,0x4c,0xa8,0x4c,0xae, +0x4e,0x8e,0x4b,0x82,0x4c,0xb4,0x4c,0xba,0x4b,0x7c,0x4b,0x82,0x4c,0xb4,0x4c,0xba,0x4b,0x7c,0x4b,0x82,0x4c,0xb4,0x4c,0xba,0x4b,0x7c,0x4b,0x82,0x4c,0xb4,0x4c,0xba,0x4b,0x7c,0x4b,0x82,0x4c,0xb4,0x4c,0xba,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4b,0x88,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6, +0x4b,0x88,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x50,0x5c,0x4b,0x9a,0x50,0x62,0x4c,0xd2,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x4f,0x1e,0x4b,0xb2,0x4c,0xd8,0x4c,0xde,0x4b,0xac,0x4b,0xb2,0x4c,0xd8,0x4c,0xde,0x4f,0x1e,0x4b,0xb2,0x4f,0x24,0x4c,0xde,0x4b,0xac,0x4b,0xb2,0x4c,0xd8,0x4c,0xde, +0x4b,0xac,0x4b,0xb2,0x4c,0xd8,0x4c,0xde,0x50,0x68,0x50,0x6e,0x50,0x74,0x50,0x7a,0x50,0x80,0x50,0x86,0x50,0x8c,0x50,0x92,0x50,0x98,0x4b,0xd6,0x4f,0x24,0x4c,0xde,0x4b,0xd0,0x4b,0xd6,0x4c,0xd8,0x4c,0xde,0x4b,0xd0,0x4b,0xd6,0x4c,0xd8,0x4c,0xde,0x4b,0xdc,0x4b,0xe2,0x50,0x9e,0x50,0xa4,0x4e,0xa0,0x4b,0xe2,0x50,0xaa,0x50,0xb0, +0x4b,0xdc,0x4b,0xe2,0x50,0xb6,0x50,0xbc,0x4b,0xdc,0x4b,0xe2,0x4e,0xa6,0x4e,0xac,0x50,0xc2,0x4b,0xee,0x4c,0xfc,0x4d,0x02,0x50,0xc2,0x4b,0xee,0x4c,0xfc,0x4d,0x02,0x4b,0xe8,0x4b,0xee,0x4c,0xfc,0x4d,0x02,0x4d,0x86,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4b,0xf4,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4b,0xf4,0x4b,0xfa,0x4c,0xd8,0x4c,0xde, +0x4b,0xf4,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x50,0x2c,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x50,0xc8,0x4c,0x12,0x4c,0x9c,0x4c,0xa2,0x50,0xc8,0x4c,0x12,0x4c,0x9c,0x4c,0xa2,0x4e,0xca,0x4c,0x2a,0x4d,0x14,0x4d,0x1a, +0x4c,0x24,0x4c,0x2a,0x4d,0x14,0x4d,0x1a,0x4e,0xca,0x4c,0x2a,0x4d,0x14,0x4d,0x1a,0x4c,0x24,0x4c,0x2a,0x50,0xce,0x50,0xd4,0x4e,0x58,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4c,0x30,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4e,0x58,0x4c,0x36,0x50,0xda,0x4d,0x26,0x4e,0x58,0x4c,0x36,0x50,0xda,0x4d,0x26,0x4e,0x58,0x4c,0x36,0x4d,0x20,0x4d,0x26, +0x4e,0xe8,0x4c,0x42,0x4d,0x2c,0x4d,0x32,0x4c,0x3c,0x4c,0x42,0x4d,0x2c,0x4d,0x32,0x4c,0x3c,0x4c,0x42,0x50,0xe0,0x50,0xe6,0x4c,0x3c,0x4c,0x42,0x50,0xec,0x50,0xf2,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e, +0x4d,0x92,0x4c,0x4e,0x50,0xf8,0x4d,0x3e,0x50,0xfe,0x4c,0x5a,0x4d,0x44,0x4d,0x4a,0x4c,0x54,0x4c,0x5a,0x4d,0x44,0x4d,0x4a,0x4f,0x96,0x4c,0x66,0x4d,0x50,0x4d,0x56,0x4c,0x60,0x4c,0x66,0x4d,0x50,0x4d,0x56,0x51,0x04,0x4c,0x72,0x4d,0x5c,0x4d,0x62,0x51,0x04,0x4c,0x72,0x4d,0x5c,0x4d,0x62,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e, +0x4e,0x5e,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x4c,0x84,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x4c,0x84,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x4c,0xd8,0x4c,0xde,0x4d,0x2c,0x4d,0x32,0x4d,0x50,0x4d,0x56,0x4d,0x68,0x4d,0x6e,0x4c,0x90,0x4c,0x96,0x51,0x0a,0x4f,0x90,0x4c,0x9c,0x4c,0xa2,0x51,0x10,0x51,0x16,0x51,0x1c,0x51,0x22,0x4c,0x9c,0x4c,0xa2, +0x51,0x1c,0x51,0x22,0x4c,0x9c,0x4c,0xa2,0x4e,0x82,0x4e,0x88,0x51,0x28,0x51,0x2e,0x51,0x34,0x51,0x3a,0x4b,0x7c,0x4b,0x82,0x51,0x40,0x51,0x46,0x51,0x4c,0x51,0x52,0x51,0x34,0x51,0x3a,0x51,0x58,0x51,0x5e,0x51,0x64,0x51,0x6a,0x51,0x70,0x51,0x76,0x4b,0x94,0x4b,0x9a,0x51,0x7c,0x51,0x82,0x4c,0x54,0x4c,0x5a,0x51,0x88,0x51,0x8e, +0x51,0x94,0x51,0x9a,0x4d,0xbc,0x4d,0xc2,0x4b,0xd0,0x4b,0xd6,0x4c,0xd8,0x4c,0xde,0x51,0xa0,0x51,0xa6,0x51,0xac,0x51,0xb2,0x51,0xb8,0x51,0xbe,0x51,0x28,0x51,0x2e,0x4c,0xd8,0x4c,0xde,0x4c,0x00,0x4c,0x06,0x51,0xc4,0x51,0xca,0x51,0xd0,0x51,0xd6,0x51,0xdc,0x51,0xe2,0x4c,0x9c,0x4c,0xa2,0x51,0xe8,0x51,0xee,0x51,0xf4,0x51,0xfa, +0x52,0x00,0x52,0x06,0x52,0x0c,0x52,0x12,0x4e,0xbe,0x4e,0xc4,0x4d,0x2c,0x4d,0x32,0x4c,0x3c,0x4c,0x42,0x4d,0x2c,0x4d,0x32,0x4c,0x3c,0x4c,0x42,0x52,0x18,0x52,0x1e,0x52,0x24,0x52,0x2a,0x52,0x30,0x52,0x36,0x4c,0x78,0x4c,0x7e,0x4c,0x84,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x52,0x3c,0x52,0x42,0x52,0x48,0x52,0x4e,0x52,0x54,0x52,0x5a, +0x52,0x60,0x52,0x66,0x52,0x6c,0x52,0x72,0x52,0x78,0x52,0x7e,0x52,0x84,0x52,0x8a,0x52,0x90,0x52,0x96,0x52,0x9c,0x52,0xa2,0x52,0xa8,0x52,0xae,0x52,0xb4,0x52,0xba,0x52,0xc0,0x52,0xc6,0x52,0xcc,0x52,0xd2,0x52,0xd8,0x52,0xde,0x52,0xe4,0x52,0xea,0x4d,0x80,0x4b,0x5e,0x52,0xf0,0x52,0xf6,0x52,0xfc,0x53,0x02,0x53,0x08,0x53,0x0e, +0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x50,0x4a,0x50,0x50,0x53,0x14,0x4d,0xda,0x53,0x1a,0x53,0x20,0x53,0x26,0x53,0x2c,0x53,0x32,0x53,0x38,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x50,0x98,0x4b,0xd6,0x4f,0x24,0x4c,0xde,0x4c,0x00,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06, +0x4d,0x08,0x4d,0x0e,0x53,0x3e,0x52,0x42,0x53,0x44,0x53,0x4a,0x4d,0xbc,0x4d,0xc2,0x53,0x50,0x52,0x8a,0x53,0x56,0x53,0x5c,0x53,0x62,0x53,0x68,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x53,0x6e,0x53,0x74,0x53,0x7a,0x53,0x80,0x4d,0x86,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4d,0x80,0x4b,0x5e,0x52,0xf0,0x52,0xf6,0x4d,0x80,0x4b,0x5e, +0x52,0xf0,0x52,0xf6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x46,0x4b,0xbe,0x53,0x86,0x53,0x8c,0x53,0x92,0x53,0x98,0x53,0x9e,0x53,0xa4,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4e,0xca,0x4c,0x2a,0x4d,0x14,0x4d,0x1a,0x4e,0xca,0x4c,0x2a, +0x53,0xaa,0x53,0xb0,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x44,0x4d,0x4a,0x53,0xb6,0x53,0xbc,0x4f,0x1e,0x4b,0xb2,0x4f,0x24,0x4c,0xde,0x53,0x7a,0x53,0x80,0x51,0x10,0x51,0x16,0x53,0xc2,0x53,0xc8,0x51,0xdc,0x51,0xe2,0x53,0xce,0x53,0xd4,0x4d,0x80,0x4b,0x5e,0x52,0xf0,0x52,0xf6, +0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4d,0xf8,0x4d,0xfe,0x4c,0xb4,0x4c,0xba,0x4c,0x9c,0x4c,0xa2,0x53,0xda,0x53,0xe0,0x53,0xe6,0x53,0xec,0x53,0xf2,0x53,0xf8,0x53,0xfe,0x54,0x04,0x53,0xfe,0x54,0x04,0x50,0x4a,0x50,0x50,0x54,0x0a,0x54,0x10,0x54,0x16,0x54,0x1c,0x54,0x22,0x54,0x28, +0x54,0x2e,0x54,0x34,0x4c,0x3c,0x4c,0x42,0x54,0x3a,0x54,0x40,0x53,0xfe,0x54,0x04,0x4c,0xb4,0x4c,0xba,0x54,0x46,0x54,0x4c,0x54,0x52,0x54,0x58,0x53,0xce,0x53,0xd4,0x4d,0x38,0x4d,0x3e,0x4c,0xd8,0x4c,0xde,0x4c,0xd8,0x4c,0xde,0x54,0x5e,0x54,0x64,0x54,0x6a,0x54,0x70,0x54,0x76,0x54,0x7c,0x54,0x82,0x54,0x88,0x54,0x22,0x54,0x28, +0x54,0x8e,0x54,0x94,0x54,0x9a,0x54,0xa0,0x4c,0xfc,0x4d,0x02,0x4c,0xfc,0x4d,0x02,0x4c,0xfc,0x4d,0x02,0x4c,0xd8,0x4c,0xde,0x54,0xa6,0x54,0xac,0x54,0xb2,0x54,0xb8,0x4d,0x08,0x4d,0x0e,0x54,0xbe,0x54,0xc4,0x54,0xca,0x54,0xd0,0x54,0xd6,0x54,0xdc,0x54,0xe2,0x4f,0x6c,0x54,0xe2,0x4f,0x6c,0x54,0xe8,0x54,0xee,0x4d,0x14,0x4d,0x1a, +0x4d,0x14,0x4d,0x1a,0x54,0xf4,0x54,0xfa,0x55,0x00,0x55,0x06,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x55,0x0c,0x55,0x12,0x55,0x18,0x55,0x1e,0x55,0x24,0x55,0x2a,0x55,0x30,0x55,0x36,0x55,0x3c,0x55,0x42,0x55,0x3c,0x55,0x42,0x4d,0x2c,0x4d,0x32,0x55,0x48,0x55,0x4e,0x51,0xe8,0x51,0xee,0x52,0x78,0x52,0x7e,0x52,0x54,0x52,0x5a, +0x4d,0x50,0x4d,0x56,0x55,0x54,0x55,0x5a,0x55,0x60,0x55,0x66,0x55,0x6c,0x55,0x72,0x55,0x78,0x55,0x7e,0x53,0x44,0x53,0x4a,0x55,0x84,0x55,0x8a,0x55,0x90,0x55,0x96,0x55,0x9c,0x55,0xa2,0x55,0xa8,0x55,0xae,0x55,0xb4,0x55,0xba,0x55,0xc0,0x55,0xc6,0x55,0xcc,0x55,0xd2,0x55,0xd8,0x55,0xde,0x4c,0x9c,0x4c,0xa2,0x4d,0x38,0x4d,0x3e, +0x55,0xe4,0x4e,0x40,0x55,0xea,0x55,0xf0,0x55,0xf6,0x55,0xfc,0x53,0xfe,0x54,0x04,0x55,0x90,0x55,0x96,0x55,0x9c,0x55,0xa2,0x56,0x02,0x56,0x08,0x56,0x0e,0x56,0x14,0x56,0x1a,0x56,0x20,0x56,0x26,0x56,0x2c,0x56,0x32,0x56,0x38,0x4c,0x00,0x4c,0x06,0x56,0x3e,0x56,0x44,0x4d,0x08,0x4d,0x0e,0x4c,0x78,0x4c,0x7e,0x56,0x4a,0x56,0x50, +0x55,0xcc,0x55,0xd2,0x4c,0xf0,0x4c,0xf6,0x54,0x5e,0x54,0x64,0x56,0x56,0x56,0x5c,0x55,0xea,0x55,0xf0,0x56,0x62,0x56,0x68,0x55,0x84,0x55,0x8a,0x52,0x78,0x52,0x7e,0x53,0x7a,0x53,0x80,0x56,0x6e,0x56,0x74,0x56,0x6e,0x56,0x74,0x4b,0x58,0x4b,0x5e,0x56,0x7a,0x56,0x80,0x56,0x86,0x56,0x8c,0x4b,0xdc,0x4b,0xe2,0x56,0x92,0x56,0x98, +0x4d,0x20,0x4d,0x26,0x4d,0x74,0x4d,0x7a,0x56,0x9e,0x56,0xa4,0x4c,0x9c,0x4c,0xa2,0x56,0xaa,0x56,0xb0,0x4c,0xcc,0x4c,0xd2,0x52,0xd8,0x52,0xde,0x56,0xb6,0x56,0xbc,0x4c,0x9c,0x4c,0xa2,0x4d,0x14,0x4d,0x1a,0x54,0xf4,0x54,0xfa,0x56,0xc2,0x56,0xc8,0x4d,0x2c,0x4d,0x32,0x4d,0x74,0x4d,0x7a,0x53,0xda,0x53,0xe0,0x56,0xce,0x56,0xd4, +0x56,0xda,0x56,0xe0,0x56,0xe6,0x56,0xec,0x56,0xf2,0x56,0xf8,0x56,0xfe,0x57,0x04,0x4c,0x48,0x4c,0x4e,0x57,0x0a,0x57,0x10,0x57,0x16,0x57,0x1c,0x4c,0x9c,0x4c,0xa2,0x4f,0xa8,0x4f,0xae,0x4c,0xcc,0x4c,0xd2,0x57,0x22,0x57,0x28,0x57,0x2e,0x57,0x34,0x57,0x3a,0x57,0x40,0x57,0x46,0x57,0x4c,0x57,0x52,0x57,0x58,0x4c,0x9c,0x4c,0xa2, +0x4d,0x14,0x4d,0x1a,0x57,0x5e,0x57,0x64,0x57,0x6a,0x57,0x70,0x57,0x76,0x57,0x7c,0x4d,0x5c,0x4d,0x62,0x4d,0x74,0x4d,0x7a,0x57,0x82,0x57,0x88,0x57,0x8e,0x57,0x94,0x53,0xfe,0x54,0x04,0x57,0x9a,0x57,0xa0,0x4c,0x0c,0x4c,0x12,0x57,0xa6,0x57,0xac,0x57,0xb2,0x57,0xb8,0x57,0xbe,0x57,0xc4,0x53,0xe6,0x53,0xec,0x55,0x18,0x55,0x1e, +0x57,0xca,0x57,0xd0,0x53,0x44,0x53,0x4a,0x57,0xd6,0x57,0xdc,0x54,0x16,0x54,0x1c,0x4d,0xec,0x4d,0xf2,0x57,0xe2,0x57,0xe8,0x57,0xee,0x57,0xf4,0x4c,0x3c,0x4c,0x42,0x4b,0x64,0x4b,0x6a,0x55,0x0c,0x55,0x12,0x4b,0xb8,0x4b,0xbe,0x57,0xfa,0x58,0x00,0x53,0x32,0x53,0x38,0x56,0x92,0x56,0x98,0x58,0x06,0x58,0x0c,0x58,0x12,0x58,0x18, +0x51,0xac,0x51,0xb2,0x58,0x1e,0x58,0x24,0x58,0x2a,0x58,0x30,0x58,0x36,0x58,0x3c,0x58,0x42,0x58,0x48,0x51,0xdc,0x51,0xe2,0x56,0x92,0x56,0x98,0x58,0x4e,0x58,0x54,0x58,0x5a,0x58,0x60,0x58,0x66,0x58,0x6c,0x58,0x72,0x58,0x78,0x4c,0xf0,0x4c,0xea,0x00,0x02,0x00,0x03,0x04,0xad,0x04,0xaf,0x00,0x00,0x07,0x5d,0x07,0x5f,0x00,0x03, +0x07,0xf0,0x07,0xf0,0x00,0x06,0x00,0x02,0x00,0x2a,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x62,0x00,0x81,0x00,0x34,0x00,0x89,0x00,0x89,0x00,0x54,0x00,0x91,0x00,0x92,0x00,0x55,0x00,0xa0,0x00,0xa1,0x00,0x57,0x00,0xa7,0x00,0xa7,0x00,0x59,0x00,0xad,0x00,0xb1,0x00,0x5a,0x00,0xba,0x00,0xbb,0x00,0x5f, +0x00,0xc7,0x00,0xd6,0x00,0x61,0x00,0xe1,0x00,0xe6,0x00,0x71,0x00,0xe8,0x00,0xed,0x00,0x77,0x00,0xf7,0x01,0x00,0x00,0x7d,0x01,0x03,0x01,0x2b,0x00,0x87,0x01,0x39,0x01,0x3b,0x00,0xb0,0x01,0x45,0x01,0x84,0x00,0xb3,0x01,0x8c,0x01,0x93,0x00,0xf3,0x02,0x40,0x02,0x43,0x00,0xfb,0x02,0x57,0x02,0xb0,0x00,0xff,0x02,0xcd,0x02,0xce, +0x01,0x59,0x02,0xe1,0x03,0x78,0x01,0x5b,0x04,0xb0,0x04,0xe2,0x01,0xf3,0x04,0xe6,0x04,0xe9,0x02,0x26,0x04,0xee,0x04,0xfe,0x02,0x2a,0x05,0x07,0x05,0x07,0x02,0x3b,0x05,0x0c,0x05,0x46,0x02,0x3c,0x05,0x4b,0x05,0x4c,0x02,0x77,0x05,0x4f,0x05,0x50,0x02,0x79,0x05,0x56,0x05,0xb2,0x02,0x7b,0x06,0xac,0x06,0xad,0x02,0xd8,0x07,0x3e, +0x07,0x43,0x02,0xda,0x07,0xe1,0x07,0xe2,0x02,0xe0,0x07,0xe4,0x07,0xeb,0x02,0xe2,0x07,0xf7,0x08,0x05,0x02,0xea,0x08,0x07,0x08,0x26,0x02,0xf9,0x0a,0x43,0x0a,0x43,0x03,0x19,0x0a,0xbf,0x0a,0xcc,0x03,0x1a,0x0a,0xe5,0x0a,0xe5,0x03,0x28,0x0a,0xe7,0x0a,0xed,0x03,0x29,0x0a,0xf4,0x0a,0xf4,0x03,0x30,0x0a,0xf7,0x0a,0xf7,0x03,0x31, +0x11,0x8c,0x11,0x8c,0x03,0x32,0x00,0x01,0x00,0xa4,0x00,0xaa,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4a,0x8e,0x00,0x48,0x4a,0x8e,0x4a,0x94,0x4a,0x9a,0x4a,0xa0,0x4a,0xa6,0x4a,0xa6,0x4a,0xac,0x4a,0xb2,0x4a,0xb8,0x4a,0xbe,0x4a,0xc4,0x4a,0xca,0x4a,0xd0,0x4a,0xd6,0x4a,0xdc,0x4a,0xe2,0x4a,0xdc,0x4a,0xe8,0x4a,0xee, +0x4a,0xf4,0x4a,0xfa,0x4b,0x00,0x4b,0x06,0x3a,0xbc,0x3a,0xbc,0x3a,0xbc,0x4b,0x0c,0x4b,0x12,0x4b,0x18,0x4b,0x1e,0x4b,0x24,0x4b,0x2a,0x4b,0x30,0x4b,0x36,0x4b,0x3c,0x4b,0x42,0x4b,0x48,0x4b,0x4e,0x4b,0x54,0x4b,0x5a,0x4b,0x60,0x4b,0x66,0x4b,0x6c,0x4b,0x72,0x4b,0x78,0x4b,0x7e,0x4b,0x84,0x4b,0x8a,0x4b,0x90,0x4b,0x96,0x4b,0x9c, +0x4b,0xa2,0x4b,0x60,0x4b,0x60,0x4b,0x60,0x4b,0x84,0x4b,0x84,0x4a,0xdc,0x4a,0xdc,0x4a,0xdc,0x4a,0xfa,0x4a,0xfa,0x4a,0xfa,0x4b,0x84,0x4a,0xdc,0x4b,0x60,0x4a,0xdc,0x4b,0x60,0x4a,0xfa,0x4b,0x84,0x4a,0xfa,0x4b,0x84,0x00,0x01,0x00,0x01,0x04,0x7a,0x00,0x02,0x00,0x0b,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a, +0x00,0x79,0x00,0x7a,0x00,0x34,0x00,0x7d,0x00,0x7f,0x00,0x36,0x00,0xaf,0x00,0xaf,0x00,0x39,0x00,0xd0,0x00,0xd0,0x00,0x3a,0x00,0xd2,0x00,0xd3,0x00,0x3b,0x00,0xd5,0x00,0xd5,0x00,0x3d,0x01,0x78,0x01,0x79,0x00,0x3e,0x02,0x83,0x02,0x86,0x00,0x40,0x02,0x9b,0x02,0x9e,0x00,0x44,0x00,0x01,0x00,0x58,0x00,0x5e,0x00,0x01,0x00,0x0c, +0x00,0x12,0x00,0x01,0x00,0x00,0x1e,0xc0,0x00,0x22,0x4a,0xb8,0x4a,0xbe,0x17,0x16,0x2b,0x02,0x19,0xec,0x4a,0xc4,0x18,0x30,0x4a,0xca,0x4a,0xd0,0x4a,0xd6,0x4a,0xdc,0x17,0x70,0x4a,0xe2,0x23,0xb2,0x4a,0xe8,0x4a,0xee,0x4a,0xf4,0x4a,0xfa,0x4b,0x00,0x4b,0x06,0x4b,0x0c,0x21,0x54,0x4b,0x12,0x4b,0x18,0x4b,0x1e,0x32,0xe8,0x4b,0x06, +0x4b,0x06,0x32,0xe8,0x32,0xe8,0x19,0xec,0x4a,0xe2,0x4a,0xe2,0x4b,0x06,0x00,0x01,0x00,0x01,0x04,0x85,0x00,0x02,0x00,0x17,0x00,0x24,0x00,0x24,0x00,0x00,0x00,0x26,0x00,0x26,0x00,0x01,0x00,0x28,0x00,0x28,0x00,0x02,0x00,0x2a,0x00,0x2a,0x00,0x03,0x00,0x2c,0x00,0x2c,0x00,0x04,0x00,0x2e,0x00,0x2f,0x00,0x05,0x00,0x31,0x00,0x32, +0x00,0x07,0x00,0x35,0x00,0x38,0x00,0x09,0x00,0x44,0x00,0x44,0x00,0x0d,0x00,0x46,0x00,0x46,0x00,0x0e,0x00,0x48,0x00,0x48,0x00,0x0f,0x00,0x4a,0x00,0x4a,0x00,0x10,0x00,0x4c,0x00,0x4c,0x00,0x11,0x00,0x4e,0x00,0x4f,0x00,0x12,0x00,0x51,0x00,0x52,0x00,0x14,0x00,0x55,0x00,0x58,0x00,0x16,0x00,0x74,0x00,0x74,0x00,0x1a,0x00,0x76, +0x00,0x76,0x00,0x1b,0x00,0x7e,0x00,0x7e,0x00,0x1c,0x00,0x80,0x00,0x80,0x00,0x1d,0x00,0xcd,0x00,0xcd,0x00,0x1e,0x00,0xd3,0x00,0xd4,0x00,0x1f,0x01,0x0f,0x01,0x0f,0x00,0x21,0x00,0x01,0x06,0x78,0x06,0x7e,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4a,0x3e,0x03,0x32,0x4a,0x3e,0x4a,0x44,0x4a,0x4a,0x4a,0x44,0x1d,0x98, +0x4a,0x50,0x4a,0x56,0x4a,0x5c,0x4a,0x50,0x4a,0x62,0x4a,0x68,0x4a,0x6e,0x4a,0x74,0x4a,0x7a,0x4a,0x80,0x4a,0x50,0x4a,0x86,0x4a,0x8c,0x4a,0x92,0x4a,0x98,0x1d,0x98,0x16,0x2a,0x4a,0x9e,0x4a,0x68,0x4a,0xa4,0x4a,0xaa,0x1b,0xfa,0x4a,0xb0,0x4a,0xb6,0x4a,0xbc,0x16,0x7e,0x19,0x24,0x4a,0xc2,0x4a,0xc8,0x4a,0x50,0x4a,0xce,0x4a,0xd4, +0x19,0x12,0x4a,0xda,0x4a,0xc8,0x16,0x7e,0x4a,0xe0,0x4a,0xe6,0x19,0x12,0x4a,0x98,0x4a,0xec,0x4a,0xf2,0x4a,0xf8,0x4a,0xfe,0x4b,0x04,0x4b,0x0a,0x16,0x7e,0x4a,0x3e,0x4a,0x3e,0x4b,0x10,0x1d,0x98,0x4b,0x16,0x4a,0x80,0x1d,0x98,0x1b,0xfa,0x1b,0xfa,0x1b,0xfa,0x1b,0xfa,0x1b,0xfa,0x1b,0xfa,0x4b,0x1c,0x16,0x7e,0x16,0x7e,0x16,0x7e, +0x16,0x7e,0x19,0x12,0x19,0x12,0x19,0x12,0x19,0x12,0x4a,0xc8,0x16,0x7e,0x16,0x7e,0x16,0x7e,0x16,0x7e,0x16,0x7e,0x4a,0xf2,0x4a,0xf2,0x4a,0xf2,0x4a,0xf2,0x17,0xe0,0x4a,0xda,0x4a,0x80,0x4b,0x22,0x16,0x7e,0x4b,0x28,0x4a,0x3e,0x4a,0x3e,0x4a,0x80,0x4b,0x2e,0x4b,0x34,0x4b,0x0a,0x4a,0xa4,0x4a,0x3e,0x1d,0x98,0x4a,0x3e,0x1d,0x98, +0x1d,0x98,0x4a,0x50,0x19,0x24,0x4a,0x50,0x4b,0x3a,0x4a,0x80,0x4a,0x80,0x4a,0x80,0x1d,0x98,0x1d,0x98,0x1d,0x98,0x19,0x12,0x4a,0x6e,0x4a,0x62,0x4a,0x92,0x4a,0x98,0x4a,0xaa,0x16,0x7e,0x4b,0x40,0x4b,0x46,0x4a,0xa4,0x4b,0x0a,0x19,0x36,0x4b,0x4c,0x4a,0x56,0x4a,0xc2,0x4a,0x50,0x4b,0x52,0x4b,0x58,0x4a,0x4a,0x4a,0xb6,0x4a,0x4a, +0x4a,0xb6,0x4a,0xbc,0x4a,0x3e,0x1b,0xfa,0x4b,0x5e,0x29,0x80,0x4a,0x44,0x4a,0xbc,0x4a,0x44,0x4b,0x64,0x4b,0x6a,0x1d,0x98,0x16,0x7e,0x4a,0x6e,0x19,0x12,0x4a,0x6e,0x19,0x12,0x4a,0x6e,0x19,0x12,0x4a,0x7a,0x4a,0xc8,0x4a,0x7a,0x4a,0xc8,0x4a,0x80,0x16,0x7e,0x4a,0x8c,0x19,0x12,0x4a,0x8c,0x19,0x12,0x4a,0x92,0x4a,0x98,0x47,0x32, +0x4b,0x70,0x4a,0x98,0x4a,0xec,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x4a,0xaa,0x16,0x7e,0x4a,0xaa,0x16,0x7e,0x4b,0x76,0x4b,0x7c,0x4b,0x82,0x4a,0x3e,0x1b,0xfa,0x4a,0x4a,0x4a,0xb6,0x4a,0x4a,0x4a,0xb6,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x4a,0x56,0x4a,0xc2,0x4a,0x56,0x4a,0xc2,0x4b,0x88,0x4a,0xc2, +0x4a,0x5c,0x4a,0xc8,0x4a,0x5c,0x4a,0xc8,0x4a,0x50,0x19,0x12,0x4a,0x50,0x19,0x12,0x4a,0x50,0x4b,0x8e,0x2c,0x50,0x4b,0x94,0x4a,0x62,0x4a,0xce,0x4a,0x68,0x1d,0xda,0x16,0x4e,0x4b,0x1c,0x4b,0x9a,0x4a,0x7a,0x4a,0xaa,0x4b,0xa0,0x4b,0xa6,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x8c,0x4b,0x8e,0x4a,0x92,0x4a,0x98,0x4a,0x98, +0x4a,0xec,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x4b,0x64,0x4b,0xac,0x4a,0x9e,0x4a,0xfe,0x4a,0xa4,0x4b,0x0a,0x19,0x12,0x4a,0x9e,0x4a,0xfe,0x4a,0x9e,0x4a,0xfe,0x4a,0x9e,0x4a,0xfe,0x4a,0xa4,0x4b,0x0a,0x4a,0x80,0x16,0x7e,0x1d,0x98,0x4a,0xf2,0x4a,0x3e,0x4b,0xb2,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa, +0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x4b,0xb2,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x4b,0xb2,0x1c,0x8a,0x4b,0xb8,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e, +0x1c,0x8a,0x4b,0xb8,0x19,0x36,0x19,0x12,0x4b,0xbe,0x4b,0xc4,0x4b,0xca,0x4b,0xd0,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4b,0xd6,0x4b,0xdc,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4b,0xe2,0x4b,0xe8,0x4b,0xee,0x4a,0xbc, +0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x4b,0xf4,0x4a,0xbc,0x4b,0xfa,0x4c,0x00,0x4a,0xa4,0x4b,0x0a,0x4a,0xa4,0x4b,0x0a,0x4c,0x06,0x4c,0x0c,0x4a,0xf2,0x16,0x2a,0x3e,0x62,0x4c,0x12,0x4a,0x3e,0x4a,0xd4,0x4a,0x44,0x4a,0xb0,0x4c,0x18,0x4c,0x1e,0x4c,0x24,0x4c,0x2a, +0x42,0xa0,0x4c,0x30,0x4a,0x44,0x4a,0xbc,0x4c,0x36,0x4a,0xaa,0x4c,0x3c,0x4c,0x42,0x4c,0x48,0x4a,0xaa,0x4c,0x4e,0x23,0x32,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x4c,0x54,0x4c,0x54,0x4c,0x5a,0x4c,0x60,0x4c,0x66,0x4c,0x12,0x19,0x36,0x19,0x24,0x4a,0x56,0x4a,0xc2,0x4a,0x5c,0x4a,0xc8,0x4a,0x5c,0x1e,0x4c,0x4a,0x5c,0x4a,0xc8, +0x4a,0x5c,0x4a,0xc8,0x4c,0x6c,0x4c,0x72,0x4c,0x78,0x4c,0x7e,0x4a,0x50,0x19,0x12,0x4a,0x68,0x4a,0xd4,0x4a,0x68,0x4c,0x84,0x4c,0x8a,0x4c,0x90,0x4a,0xf2,0x4c,0x96,0x4a,0xf2,0x4c,0x9c,0x4c,0xa2,0x29,0xc8,0x4c,0xa8,0x4c,0xae,0x4a,0x74,0x4a,0xda,0x4a,0x74,0x4a,0xda,0x4a,0x74,0x4c,0xb4,0x4a,0x7a,0x4a,0xc8,0x4a,0x7a,0x4a,0xaa, +0x4c,0xba,0x28,0xfc,0x22,0xd8,0x4c,0xc0,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x19,0x36,0x4c,0xc6,0x19,0x36,0x4c,0xc6,0x4a,0x8c,0x19,0x12,0x4a,0x8c,0x4b,0x8e,0x4a,0x8c,0x4b,0x8e,0x4c,0xcc,0x4c,0xd2,0x4a,0x92,0x4a,0x98,0x4c,0xd8,0x4c,0xde,0x4a,0x92,0x4a,0x98,0x4a,0x92,0x4a,0x98, +0x4c,0xe4,0x4c,0xea,0x4a,0x98,0x4a,0xec,0x4c,0xf0,0x4c,0xf6,0x4c,0xfc,0x4d,0x02,0x4d,0x08,0x4d,0x0e,0x4d,0x14,0x4d,0x1a,0x4d,0x20,0x4d,0x26,0x4c,0x4e,0x4c,0xa8,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x16,0x2a,0x4a,0xf8,0x4c,0x60,0x33,0x8e,0x4a,0x9e,0x4a,0xfe,0x4a,0x9e,0x4d,0x2c,0x4a,0x68,0x4b,0x04,0x4a,0x68,0x4b,0x04, +0x4a,0xa4,0x4b,0x0a,0x4a,0xaa,0x16,0x7e,0x4d,0x32,0x4d,0x38,0x4d,0x3e,0x4d,0x44,0x28,0xfc,0x4a,0xec,0x4a,0xfe,0x4b,0x0a,0x1b,0xfa,0x19,0x12,0x4a,0xb0,0x4d,0x4a,0x4d,0x50,0x4a,0xb0,0x1b,0xdc,0x4a,0xb0,0x4d,0x56,0x4a,0x4a,0x4d,0x5c,0x4a,0x44,0x1c,0x4e,0x4d,0x62,0x4d,0x68,0x4d,0x6e,0x4d,0x74,0x4d,0x7a,0x4d,0x80,0x4a,0x56, +0x29,0x02,0x4d,0x86,0x4d,0x8c,0x19,0x36,0x4a,0x68,0x4a,0xd4,0x19,0x12,0x4a,0xf2,0x4a,0x74,0x4a,0x7a,0x4d,0x92,0x4a,0x80,0x4d,0x98,0x4d,0x9e,0x4d,0xa4,0x4d,0xaa,0x4d,0xb0,0x1d,0x26,0x4d,0xb6,0x4b,0xb2,0x4d,0xbc,0x4d,0xc2,0x4a,0x98,0x4a,0xec,0x4d,0xc8,0x4d,0xce,0x4d,0xd4,0x17,0xc2,0x4b,0x0a,0x4a,0xaa,0x16,0x7e,0x4d,0xda, +0x4d,0xe0,0x17,0xe6,0x4d,0xe6,0x4d,0xec,0x4b,0x4c,0x4d,0xf2,0x4d,0xf8,0x4d,0xfe,0x4e,0x04,0x47,0xaa,0x4b,0x7c,0x4e,0x0a,0x4e,0x10,0x4e,0x16,0x4a,0x3e,0x1b,0xfa,0x4a,0x50,0x19,0x12,0x4a,0x80,0x16,0x7e,0x1d,0x98,0x4a,0xf2,0x1c,0x0c,0x4e,0x1c,0x4e,0x22,0x4a,0x56,0x4a,0xc2,0x4a,0x56,0x4a,0xc2,0x4a,0x68,0x4a,0xd4,0x4e,0x28, +0x4e,0x2e,0x4e,0x28,0x4e,0x2e,0x4d,0x6e,0x4e,0x34,0x4a,0xce,0x4d,0xf2,0x4d,0xf8,0x4d,0xfe,0x4a,0x56,0x4a,0xc2,0x4e,0x3a,0x4e,0x40,0x4b,0x16,0x4a,0xc8,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x4a,0x50,0x19,0x12,0x4a,0x50,0x19,0x12,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x8c, +0x19,0x12,0x4a,0x8c,0x19,0x12,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x29,0x20,0x36,0x4c,0x4a,0x5c,0x4a,0xc8,0x4e,0x46,0x4a,0xb0,0x16,0x7e,0x1a,0xe6,0x4a,0xa4,0x4a,0x3e,0x1b,0xfa,0x4a,0x80,0x16,0x7e,0x4a,0xa4,0x4b,0x0a,0x4e,0x4c,0x4e,0x52,0x1e,0x46,0x4b,0x04,0x4e,0x58,0x1b,0x82,0x4e,0x5e,0x4a,0xbc,0x16,0x2a,0x4e,0x64, +0x15,0xfa,0x4d,0xec,0x4e,0x6a,0x4e,0x70,0x4e,0x76,0x4a,0xc2,0x4a,0xc2,0x1b,0x22,0x4e,0x7c,0x4e,0x82,0x4e,0x88,0x4a,0xc8,0x44,0x56,0x18,0xe2,0x4d,0x8c,0x4e,0x8e,0x4b,0x3a,0x4e,0x94,0x2f,0xf8,0x4e,0x9a,0x4e,0xa0,0x4e,0xa6,0x4e,0xac,0x4a,0xc8,0x4e,0xb2,0x1e,0x9a,0x16,0x7e,0x4e,0xb8,0x4d,0x2c,0x26,0xb0,0x4e,0xbe,0x4e,0xc4, +0x2a,0x4c,0x32,0xc8,0x2f,0xf8,0x19,0x9c,0x4e,0xca,0x4e,0xd0,0x1b,0xee,0x4e,0xd6,0x4e,0xdc,0x4e,0xe2,0x20,0xb0,0x4e,0xe8,0x4e,0xee,0x2f,0xe6,0x4d,0x68,0x1e,0x46,0x4e,0xf4,0x4b,0xb2,0x4e,0x22,0x4b,0xb2,0x4e,0xfa,0x4f,0x00,0x4b,0x04,0x4f,0x06,0x4f,0x0c,0x18,0xd6,0x4f,0x12,0x4f,0x18,0x4f,0x1e,0x4f,0x24,0x17,0xc2,0x1b,0x9a, +0x1a,0xe6,0x1c,0x18,0x4f,0x2a,0x4f,0x30,0x1c,0x0c,0x4f,0x36,0x18,0xd6,0x4f,0x3c,0x4f,0x42,0x4f,0x48,0x4d,0x98,0x4a,0xf2,0x4f,0x4e,0x4f,0x54,0x4f,0x5a,0x4f,0x60,0x4a,0xaa,0x1d,0xe6,0x4f,0x60,0x4a,0xce,0x19,0x12,0x4e,0x16,0x4f,0x66,0x4f,0x6c,0x44,0x6e,0x4f,0x72,0x4e,0x5e,0x4f,0x78,0x4f,0x7e,0x4a,0x3e,0x4a,0x4a,0x4a,0xb6, +0x4a,0x6e,0x4a,0x98,0x4c,0xde,0x4f,0x84,0x4d,0xec,0x4a,0xb0,0x4a,0xbc,0x19,0x24,0x4a,0xda,0x4a,0xc8,0x4a,0xe0,0x19,0x12,0x4b,0x8e,0x4a,0xa4,0x4a,0xec,0x16,0x7e,0x4f,0x8a,0x4f,0x90,0x2f,0x56,0x4f,0x96,0x4f,0x9c,0x1e,0x34,0x4a,0xe0,0x4f,0xa2,0x1e,0x46,0x4f,0xa8,0x4f,0xae,0x27,0x28,0x4a,0xc2,0x4f,0xb4,0x4f,0xba,0x4f,0xc0, +0x4f,0xc6,0x4a,0xe0,0x4f,0xba,0x25,0x72,0x4e,0xdc,0x4f,0xb4,0x4f,0xcc,0x25,0x90,0x4f,0xd2,0x4f,0xd8,0x4f,0xde,0x4f,0xe4,0x4f,0xea,0x4f,0xf0,0x1c,0x0c,0x25,0x78,0x27,0x28,0x21,0xfa,0x4f,0xf6,0x1a,0xe6,0x4f,0xfc,0x50,0x02,0x4a,0x44,0x1d,0x98,0x50,0x08,0x1d,0x98,0x16,0x7e,0x4a,0x62,0x4a,0xce,0x50,0x0e,0x50,0x14,0x4a,0x8c, +0x19,0x12,0x4a,0xa4,0x50,0x1a,0x4a,0xb6,0x4a,0x6e,0x4b,0x3a,0x4a,0x6e,0x4a,0x62,0x4a,0x8c,0x1b,0xfa,0x4a,0xec,0x4d,0xb6,0x50,0x20,0x00,0x01,0x00,0x01,0x04,0x86,0x00,0x02,0x00,0x29,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x62,0x00,0x81,0x00,0x34,0x00,0x89,0x00,0x89,0x00,0x54,0x00,0x91,0x00,0x92, +0x00,0x55,0x00,0xa0,0x00,0xa1,0x00,0x57,0x00,0xa7,0x00,0xa7,0x00,0x59,0x00,0xad,0x00,0xb1,0x00,0x5a,0x00,0xba,0x00,0xbb,0x00,0x5f,0x00,0xc7,0x00,0xd6,0x00,0x61,0x00,0xe1,0x00,0xe6,0x00,0x71,0x00,0xe8,0x00,0xed,0x00,0x77,0x00,0xf7,0x01,0x00,0x00,0x7d,0x01,0x03,0x01,0x2b,0x00,0x87,0x01,0x39,0x01,0x3b,0x00,0xb0,0x01,0x45, +0x01,0x84,0x00,0xb3,0x01,0x8c,0x01,0x93,0x00,0xf3,0x02,0x40,0x02,0x43,0x00,0xfb,0x02,0x57,0x02,0xb0,0x00,0xff,0x02,0xcd,0x02,0xce,0x01,0x59,0x02,0xe1,0x03,0x78,0x01,0x5b,0x04,0xb0,0x04,0xe2,0x01,0xf3,0x04,0xe6,0x04,0xe9,0x02,0x26,0x04,0xee,0x04,0xfe,0x02,0x2a,0x05,0x07,0x05,0x07,0x02,0x3b,0x05,0x0c,0x05,0x46,0x02,0x3c, +0x05,0x4b,0x05,0x4c,0x02,0x77,0x05,0x4f,0x05,0x50,0x02,0x79,0x05,0x56,0x05,0xb2,0x02,0x7b,0x06,0xac,0x06,0xad,0x02,0xd8,0x07,0x3e,0x07,0x43,0x02,0xda,0x07,0xe1,0x07,0xe2,0x02,0xe0,0x07,0xe4,0x07,0xeb,0x02,0xe2,0x07,0xf7,0x08,0x05,0x02,0xea,0x08,0x07,0x08,0x26,0x02,0xf9,0x0a,0x43,0x0a,0x43,0x03,0x19,0x0a,0xbf,0x0a,0xcc, +0x03,0x1a,0x0a,0xe5,0x0a,0xe5,0x03,0x28,0x0a,0xe7,0x0a,0xed,0x03,0x29,0x0a,0xf4,0x0a,0xf4,0x03,0x30,0x0a,0xf7,0x0a,0xf7,0x03,0x31,0x00,0x01,0x00,0x68,0x00,0x70,0x00,0x02,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x48,0xb4,0x00,0x01,0x48,0xba,0x00,0x14,0x48,0xb6,0x48,0xb6,0x48,0xbc,0x48,0xbc,0x48,0xc2,0x48,0xc8,0x48,0xce, +0x48,0xce,0x48,0xd4,0x48,0xda,0x48,0xe0,0x48,0xe0,0x48,0xe6,0x48,0xe6,0x48,0xec,0x48,0xec,0x42,0x9e,0x42,0x9e,0x48,0xf2,0x48,0xf2,0x48,0xf8,0x48,0xe0,0x48,0xfe,0x48,0xfe,0x49,0x04,0x49,0x04,0x49,0x0a,0x49,0x0a,0x49,0x10,0x49,0x10,0x0f,0x62,0x0f,0x62,0x14,0xf0,0x14,0xf0,0x49,0x16,0x49,0x16,0x49,0x1c,0x49,0x22,0x49,0x28, +0x49,0x2e,0x00,0x01,0x00,0x02,0x04,0x80,0x04,0x81,0x00,0x02,0x00,0x05,0x00,0x45,0x00,0x47,0x00,0x00,0x00,0x49,0x00,0x4b,0x00,0x03,0x00,0x4d,0x00,0x51,0x00,0x06,0x00,0x53,0x00,0x5a,0x00,0x0b,0x00,0x5d,0x00,0x5d,0x00,0x13,0x00,0x01,0x0c,0xec,0x0c,0xf6,0x00,0x02,0x00,0x0c,0x00,0x1e,0x00,0x04,0x00,0x00,0x48,0xac,0x00,0x01, +0x48,0xb2,0x00,0x00,0x48,0xb8,0x00,0x01,0x48,0xbe,0x03,0x33,0x48,0xb2,0x48,0xb8,0x48,0xbe,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x48,0xca,0x48,0xb8,0x37,0x00,0x48,0xb8,0x48,0xd0,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x48,0xe8,0x48,0xb8,0x48,0xee,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x48,0xfa,0x48,0xb8, +0x49,0x00,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x0c,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x2a,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x36,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x54,0x48,0xb8, +0x49,0x5a,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x49,0x60,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x66,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x72,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x84,0x48,0xb8, +0x49,0x8a,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x90,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x9c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x37,0x00,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x48,0x48,0xb8, +0x49,0x48,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x54,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x78,0x48,0xb8, +0x49,0x78,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0xae,0x48,0xb8,0x49,0xb4,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0xba,0x48,0xb8,0x49,0x78,0x48,0xb8,0x38,0x44,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x06,0x48,0xb8, +0x49,0xc0,0x48,0xb8,0x49,0xc6,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x37,0x00,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x37,0x00,0x48,0xb8,0x37,0x00,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x06,0x48,0xb8, +0x49,0x24,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x24,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x49,0xcc,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0xd2,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x0c,0x48,0xb8,0x49,0x4e,0x48,0xb8, +0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0xd8,0x48,0xb8, +0x48,0xca,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x49,0xde,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x49,0xe4,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x06,0x48,0xb8, +0x49,0x78,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0xea,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x42,0x48,0xb8, +0x49,0xa8,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x49,0xf0,0x48,0xb8,0x49,0xf6,0x48,0xb8,0x49,0xfc,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8, +0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8, +0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xe8,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xee,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x06,0x48,0xb8, +0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8, +0x49,0x66,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4a,0x02,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8, +0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8, +0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8, +0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8, +0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8,0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8, +0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8,0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8,0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8, +0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x4a,0x14,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8, +0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xbe,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x48,0xbe,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x48,0xbe,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0x5a,0x48,0xb8, +0x48,0xca,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xd0,0x48,0xb8,0x49,0x60,0x48,0xb8, +0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8, +0x48,0xee,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x48,0xee,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x48,0xee,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4a,0x1a,0x48,0xb8,0x49,0x72,0x48,0xb8, +0x4a,0x1a,0x48,0xb8,0x49,0x72,0x48,0xb8,0x4a,0x1a,0x48,0xb8,0x49,0x72,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8, +0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x0c,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x0c,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8, +0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8, +0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x2a,0x48,0xb8,0x49,0x90,0x48,0xb8,0x49,0x2a,0x48,0xb8,0x49,0x90,0x48,0xb8, +0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x36,0x48,0xb8,0x49,0x9c,0x48,0xb8,0x49,0x36,0x48,0xb8,0x49,0x9c,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8, +0x49,0x66,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x4a,0x02,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4a,0x20,0x48,0xb8,0x4a,0x26,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4a,0x2c,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4a,0x32,0x48,0xb8,0x4a,0x32,0x48,0xb8,0x4a,0x38,0x48,0xb8,0x48,0xca,0x48,0xb8, +0x4a,0x3e,0x48,0xb8,0x4a,0x44,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4a,0x4a,0x48,0xb8,0x4a,0x50,0x48,0xb8,0x4a,0x56,0x48,0xb8,0x48,0xd0,0x48,0xb8,0x4a,0x5c,0x48,0xb8,0x49,0x2a,0x48,0xb8,0x4a,0x62,0x48,0xb8,0x4a,0x68,0x48,0xb8,0x4a,0x6e,0x48,0xb8,0x48,0xee,0x48,0xb8,0x4a,0x74,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4a,0x74,0x48,0xb8, +0x4a,0x7a,0x48,0xb8,0x49,0x00,0x48,0xb8,0x39,0x1c,0x48,0xb8,0x49,0x06,0x48,0xb8,0x4a,0x80,0x48,0xb8,0x4a,0x86,0x48,0xb8,0x4a,0x8c,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4a,0x92,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x4a,0x98,0x48,0xb8,0x4a,0x9e,0x48,0xb8,0x4a,0xa4,0x48,0xb8,0x4a,0xaa,0x48,0xb8,0x4a,0xa4,0x48,0xb8, +0x4a,0xaa,0x48,0xb8,0x4a,0xb0,0x48,0xb8,0x4a,0xb6,0x48,0xb8,0x4a,0xbc,0x48,0xb8,0x4a,0xc2,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x4a,0xc8,0x48,0xb8,0x4a,0xc8,0x48,0xb8,0x38,0x44,0x48,0xb8,0x4a,0xce,0x48,0xb8,0x4a,0xd4,0x48,0xb8,0x4a,0xda,0x48,0xb8,0x4a,0xe0,0x48,0xb8,0x4a,0xe6,0x48,0xb8,0x4a,0xec,0x48,0xb8, +0x4a,0xf2,0x48,0xb8,0x4a,0xf8,0x48,0xb8,0x4a,0xfe,0x48,0xb8,0x4b,0x04,0x48,0xb8,0x4b,0x0a,0x48,0xb8,0x4b,0x10,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x4b,0x16,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x49,0xb4,0x48,0xb8, +0x4b,0x1c,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xee,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x4a,0xc8,0x48,0xb8,0x4b,0x22,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4a,0xe0,0x48,0xb8,0x4a,0xe6,0x48,0xb8, +0x4a,0xec,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x4b,0x28,0x48,0xb8,0x4b,0x2e,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x4b,0x16,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x4b,0x16,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xe2,0x48,0xb8, +0x36,0x5e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x39,0x1c,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x4b,0x34,0x48,0xb8, +0x4b,0x3a,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x4b,0x40,0x48,0xb8,0x49,0x36,0x48,0xb8,0x4b,0x46,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x4b,0x16,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4b,0x16,0x48,0xb8,0x37,0x36,0x48,0xb8, +0x37,0x36,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x4a,0x38,0x48,0xb8,0x4a,0x38,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x39,0x16,0x48,0xb8,0x4b,0x4c,0x48,0xb8,0x4b,0x4c,0x48,0xb8,0x4a,0x50,0x48,0xb8,0x4b,0x52,0x48,0xb8,0x36,0x52,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x4b,0x58,0x48,0xb8, +0x49,0x90,0x48,0xb8,0x4b,0x5e,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x66,0x48,0xb8,0x4b,0x64,0x48,0xb8,0x4a,0x6e,0x48,0xb8,0x4b,0x6a,0x48,0xb8,0x4b,0x70,0x48,0xb8,0x4b,0x76,0x48,0xb8,0x4a,0x02,0x48,0xb8,0x4b,0x7c,0x48,0xb8,0x49,0x72,0x48,0xb8,0x49,0x72,0x48,0xb8,0x49,0x72,0x48,0xb8,0x4b,0x82,0x48,0xb8, +0x4b,0x82,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x78,0x48,0xb8,0x4b,0x88,0x48,0xb8,0x4a,0x14,0x48,0xb8,0x4b,0x8e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x4b,0x94,0x48,0xb8,0x4b,0x94,0x48,0xb8,0x4b,0x9a,0x48,0xb8,0x4b,0x9a,0x48,0xb8,0x4b,0xa0,0x48,0xb8, +0x4b,0xa6,0x48,0xb8,0x4b,0xac,0x48,0xb8,0x4a,0x68,0x48,0xb8,0x4b,0xb2,0x48,0xb8,0x4a,0xa4,0x48,0xb8,0x4a,0xa4,0x48,0xb8,0x4b,0xb8,0x48,0xb8,0x4b,0xbe,0x48,0xb8,0x4b,0xc4,0x48,0xb8,0x49,0x90,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4b,0xca,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x4b,0xd0,0x48,0xb8,0x4b,0x22,0x48,0xb8, +0x4b,0x22,0x48,0xb8,0x4b,0xd6,0x48,0xb8,0x4b,0xd6,0x48,0xb8,0x4b,0xd6,0x48,0xb8,0x4a,0x38,0x48,0xb8,0x37,0x36,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4b,0xdc,0x48,0xb8,0x4b,0x58,0x48,0xb8,0x49,0x66,0x48,0xb8,0x4a,0x02,0x48,0xb8,0x4a,0x74,0x48,0xb8,0x4b,0xe2,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x4b,0xd6,0x48,0xb8,0x4b,0xd6,0x48,0xb8, +0x4b,0xe8,0x48,0xb8,0x4b,0xee,0x48,0xb8,0x4b,0xf4,0x48,0xb8,0x4a,0x20,0x48,0xb8,0x4b,0xfa,0x48,0xb8,0x4c,0x00,0x48,0xb8,0x4c,0x06,0x48,0xb8,0x48,0xee,0x48,0xb8,0x4a,0xbc,0x48,0xb8,0x4c,0x0c,0x48,0xb8,0x4c,0x0c,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4b,0x64,0x48,0xb8,0x4c,0x12,0x48,0xb8,0x4c,0x18,0x48,0xb8,0x4c,0x1e,0x48,0xb8, +0x49,0x8a,0x48,0xb8,0x4a,0x4a,0x48,0xb8,0x4a,0x4a,0x48,0xb8,0x4c,0x24,0x48,0xb8,0x4c,0x24,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x4c,0x2a,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x60,0x48,0xb8, +0x49,0x72,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x4b,0x94,0x48,0xb8,0x4c,0x30,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x4c,0x36,0x48,0xb8,0x4c,0x3c,0x48,0xb8,0x4c,0x42,0x48,0xb8,0x4b,0x6a,0x48,0xb8,0x4c,0x48,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4c,0x4e,0x48,0xb8, +0x4b,0xbe,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x60,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x72,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x84,0x48,0xb8,0x4c,0x54,0x48,0xb8,0x49,0x90,0x48,0xb8,0x49,0x9c,0x48,0xb8,0x49,0xa8,0x48,0xb8, +0x49,0x48,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x4c,0x5a,0x48,0xb8,0x4c,0x60,0x48,0xb8,0x4c,0x66,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4a,0x38,0x48,0xb8,0x4b,0xa6,0x48,0xb8,0x49,0x66,0x48,0xb8,0x4b,0x22,0x48,0xb8,0x4c,0x6c,0x48,0xb8,0x4c,0x72,0x48,0xb8,0x48,0xbe,0x48,0xb8,0x49,0x24,0x48,0xb8, +0x4c,0x78,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xe8,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4c,0x7e,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4c,0x84,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x4c,0x8a,0x48,0xb8,0x4c,0x90,0x48,0xb8,0x49,0x0c,0x48,0xb8, +0x49,0x12,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x4c,0x96,0x48,0xb8,0x4c,0x9c,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x00,0x02,0x00,0x01,0x07,0x3a,0x07,0x3d,0x00,0x00,0x00,0x02,0x00,0x2a,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x62,0x00,0x81,0x00,0x34,0x00,0x89,0x00,0x89,0x00,0x54,0x00,0x91, +0x00,0x92,0x00,0x55,0x00,0xa0,0x00,0xa1,0x00,0x57,0x00,0xa7,0x00,0xa7,0x00,0x59,0x00,0xad,0x00,0xb1,0x00,0x5a,0x00,0xba,0x00,0xbb,0x00,0x5f,0x00,0xc7,0x00,0xd6,0x00,0x61,0x00,0xe1,0x00,0xe6,0x00,0x71,0x00,0xe8,0x00,0xed,0x00,0x77,0x00,0xf7,0x01,0x00,0x00,0x7d,0x01,0x03,0x01,0x2b,0x00,0x87,0x01,0x39,0x01,0x3b,0x00,0xb0, +0x01,0x45,0x01,0x84,0x00,0xb3,0x01,0x8c,0x01,0x93,0x00,0xf3,0x02,0x40,0x02,0x43,0x00,0xfb,0x02,0x57,0x02,0xb0,0x00,0xff,0x02,0xcd,0x02,0xce,0x01,0x59,0x02,0xe1,0x03,0x78,0x01,0x5b,0x04,0xb0,0x04,0xe2,0x01,0xf3,0x04,0xe6,0x04,0xe9,0x02,0x26,0x04,0xee,0x04,0xfe,0x02,0x2a,0x05,0x07,0x05,0x07,0x02,0x3b,0x05,0x0c,0x05,0x46, +0x02,0x3c,0x05,0x4b,0x05,0x4c,0x02,0x77,0x05,0x4f,0x05,0x50,0x02,0x79,0x05,0x56,0x05,0xb2,0x02,0x7b,0x06,0xac,0x06,0xad,0x02,0xd8,0x07,0x3e,0x07,0x43,0x02,0xda,0x07,0xe1,0x07,0xe2,0x02,0xe0,0x07,0xe4,0x07,0xeb,0x02,0xe2,0x07,0xf7,0x08,0x05,0x02,0xea,0x08,0x07,0x08,0x26,0x02,0xf9,0x0a,0x43,0x0a,0x43,0x03,0x19,0x0a,0xbf, +0x0a,0xcc,0x03,0x1a,0x0a,0xe5,0x0a,0xe5,0x03,0x28,0x0a,0xe7,0x0a,0xed,0x03,0x29,0x0a,0xf4,0x0a,0xf4,0x03,0x30,0x0a,0xf7,0x0a,0xf7,0x03,0x31,0x11,0x8c,0x11,0x8c,0x03,0x32,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0xe4,0x00,0x00,0x00,0x01,0x02,0x47,0x00,0x00,0x00,0x01,0x01,0xc1,0x00,0x00,0x00,0x01,0x03,0x0a,0x00,0x00, +0x00,0x01,0x02,0x6d,0x00,0x00,0x00,0x01,0x01,0xe7,0x00,0x00,0x00,0x01,0x02,0xb9,0x00,0x00,0x00,0x01,0x02,0x1c,0x00,0x00,0x00,0x01,0x01,0x96,0x00,0x00,0x00,0x01,0x02,0x30,0x00,0x00,0x00,0x01,0x01,0x93,0x00,0x00,0x00,0x01,0x01,0x0d,0x00,0x00,0x00,0x01,0x02,0xf2,0x00,0x00,0x00,0x01,0x02,0x23,0x00,0x00,0x00,0x01,0x01,0x61, +0x00,0x00,0x00,0x01,0x03,0x3d,0x00,0x00,0x00,0x01,0x02,0xa0,0x00,0x00,0x00,0x01,0x02,0x1a,0x00,0x00,0x00,0x01,0x00,0xf9,0x00,0x00,0x00,0x01,0x00,0x73,0x00,0x00,0x00,0x01,0x01,0x4b,0x00,0x00,0x00,0x01,0x00,0xcf,0x00,0x00,0x00,0x01,0x03,0x3b,0x00,0x00,0x00,0x01,0x02,0x9e,0x00,0x00,0x00,0x01,0x02,0x18,0x00,0x00,0x00,0x01, +0x03,0x3a,0x00,0x00,0x00,0x01,0x02,0x9d,0x00,0x00,0x00,0x01,0x02,0x17,0x00,0x00,0x00,0x01,0x02,0x19,0x00,0x00,0x00,0x01,0x00,0xfc,0x00,0x00,0x00,0x01,0xff,0xf5,0x00,0x00,0x00,0x01,0x02,0x48,0x00,0x00,0x00,0x01,0x01,0xab,0x00,0x00,0x00,0x01,0x01,0x39,0x00,0x00,0x00,0x01,0x02,0x4d,0x00,0x00,0x00,0x01,0x01,0xb0,0x00,0x00, +0x00,0x01,0x01,0x2a,0x00,0x00,0x00,0x01,0x03,0x42,0x00,0x00,0x00,0x01,0x02,0xa5,0x00,0x00,0x00,0x01,0x02,0x1f,0x00,0x00,0x00,0x01,0xff,0xb5,0x00,0x00,0x00,0x01,0xfe,0x98,0x00,0x00,0x00,0x01,0xfd,0x91,0x00,0x00,0x00,0x01,0x01,0xee,0x00,0x00,0x00,0x01,0x01,0x51,0x00,0x00,0x00,0x01,0x00,0xcb,0x00,0x00,0x00,0x01,0x03,0x37, +0x00,0x00,0x00,0x01,0x02,0x9a,0x00,0x00,0x00,0x01,0x02,0x14,0x00,0x00,0x00,0x01,0x02,0xe8,0x00,0x00,0x00,0x01,0x02,0x4b,0x00,0x00,0x00,0x01,0x01,0xc5,0x00,0x00,0x00,0x01,0x02,0x85,0x00,0x00,0x00,0x01,0x01,0x68,0x00,0x00,0x00,0x01,0x00,0x61,0x00,0x00,0x00,0x01,0x02,0xcf,0x00,0x00,0x00,0x01,0x02,0x32,0x00,0x00,0x00,0x01, +0x01,0xac,0x00,0x00,0x00,0x01,0x00,0xd3,0x00,0x00,0x00,0x01,0xff,0xb6,0x00,0x00,0x00,0x01,0xfe,0xaf,0x00,0x00,0x00,0x01,0x02,0x8e,0x00,0x00,0x00,0x01,0x01,0xf1,0x00,0x00,0x00,0x01,0x01,0x6b,0x00,0x00,0x00,0x01,0x03,0x89,0x00,0x00,0x00,0x01,0x03,0x6b,0x00,0x00,0x00,0x01,0x03,0x61,0x00,0x00,0x00,0x01,0x03,0xe7,0x00,0x00, +0x00,0x01,0x03,0x18,0x00,0x00,0x00,0x01,0x02,0x06,0x00,0x00,0x00,0x01,0x03,0x83,0x00,0x00,0x00,0x01,0x02,0xe6,0x00,0x00,0x00,0x01,0x02,0x60,0x00,0x00,0x00,0x01,0x03,0x7e,0x00,0x00,0x00,0x01,0x02,0xe1,0x00,0x00,0x00,0x01,0x02,0x5b,0x00,0x00,0x00,0x01,0x02,0x9b,0x00,0x00,0x00,0x01,0x01,0xfe,0x00,0x00,0x00,0x01,0x01,0x78, +0x00,0x00,0x00,0x01,0x02,0xad,0x00,0x00,0x00,0x01,0x02,0x10,0x00,0x00,0x00,0x01,0x01,0x8a,0x00,0x00,0x00,0x01,0x02,0xc5,0x00,0x00,0x00,0x01,0x02,0x28,0x00,0x00,0x00,0x01,0x01,0xa2,0x00,0x00,0x00,0x01,0x02,0x34,0x00,0x00,0x00,0x01,0x01,0x97,0x00,0x00,0x00,0x01,0x01,0x11,0x00,0x00,0x00,0x01,0x01,0xdc,0x00,0x00,0x00,0x01, +0x01,0x3f,0x00,0x00,0x00,0x01,0x00,0xb9,0x00,0x00,0x00,0x01,0x02,0x42,0x00,0x00,0x00,0x01,0x01,0x73,0x00,0x00,0x00,0x01,0x00,0xf7,0x00,0x00,0x00,0x01,0x03,0xbf,0x00,0x00,0x00,0x01,0x03,0xe5,0x00,0x00,0x00,0x01,0x03,0x9a,0x00,0x00,0x00,0x01,0x03,0x0b,0x00,0x00,0x00,0x01,0x03,0x5b,0x00,0x00,0x00,0x01,0x04,0x18,0x00,0x00, +0x00,0x01,0x02,0x71,0x00,0x00,0x00,0x01,0x04,0x16,0x00,0x00,0x00,0x01,0x04,0x15,0x00,0x00,0x00,0x01,0x03,0x41,0x00,0x00,0x00,0x01,0x03,0x28,0x00,0x00,0x00,0x01,0x04,0x1d,0x00,0x00,0x00,0x01,0x02,0xc9,0x00,0x00,0x00,0x01,0x04,0x12,0x00,0x00,0x00,0x01,0x03,0xa1,0x00,0x00,0x00,0x01,0x03,0xaa,0x00,0x00,0x00,0x01,0x03,0x69, +0x00,0x00,0x00,0x01,0x05,0x40,0x00,0x00,0x00,0x01,0x03,0xab,0x00,0x00,0x00,0x01,0x04,0x5e,0x00,0x00,0x00,0x01,0x04,0x59,0x00,0x00,0x00,0x01,0x03,0x76,0x00,0x00,0x00,0x01,0x03,0x88,0x00,0x00,0x00,0x01,0x03,0xa0,0x00,0x00,0x00,0x01,0x02,0xb7,0x00,0x00,0x00,0x01,0x02,0xf7,0x00,0x00,0x00,0x01,0x04,0x11,0x00,0x00,0x00,0x01, +0xfe,0xfd,0x00,0x00,0x00,0x01,0x00,0xe6,0xff,0x9c,0x00,0x01,0x00,0xef,0x00,0x00,0x00,0x01,0x00,0xb8,0x00,0x00,0x00,0x01,0x00,0xca,0x00,0x00,0x00,0x01,0x00,0x8a,0x00,0x00,0x00,0x01,0x01,0x1d,0x00,0x00,0x00,0x01,0x01,0x12,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x00,0x01,0x01,0x10,0x00,0x00,0x00,0x01,0x00,0xf2,0x00,0x00, +0x00,0x01,0x00,0x97,0x00,0x00,0x00,0x01,0x00,0xb4,0x00,0x00,0x00,0x01,0xff,0xac,0x00,0x00,0x00,0x01,0x01,0x17,0x00,0x00,0x00,0x01,0x00,0xf0,0x00,0x00,0x00,0x01,0x00,0xe8,0x00,0x00,0x00,0x01,0x00,0xb5,0x00,0x00,0x00,0x01,0x00,0xbe,0x00,0x00,0x00,0x01,0x00,0x66,0x00,0x00,0x00,0x01,0x00,0x98,0x00,0x00,0x00,0x01,0x00,0xc0, +0x00,0x00,0x00,0x01,0x01,0x80,0x00,0x00,0x00,0x01,0xff,0xb4,0x00,0x00,0x00,0x01,0x01,0x58,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01,0xff,0xec,0x00,0x00,0x00,0x01,0x00,0x69,0x00,0x00,0x00,0x01,0xff,0xc4,0x00,0x00,0x00,0x01,0x00,0xd2,0x00,0x00,0x00,0x01,0x01,0x18,0x00,0x00,0x00,0x01, +0x00,0xb6,0x00,0x00,0x00,0x01,0x00,0x37,0x00,0x00,0x00,0x01,0x00,0x78,0x00,0x00,0x00,0x01,0x00,0xa0,0x00,0x00,0x00,0x01,0x00,0x7c,0x00,0x00,0x00,0x01,0x00,0x7d,0x00,0x00,0x00,0x01,0x00,0xed,0x00,0xf0,0x00,0x01,0x01,0xa6,0x00,0xf0,0x00,0x01,0x00,0xe4,0x00,0xf0,0x00,0x01,0x01,0x9d,0x00,0xf0,0x00,0x01,0x00,0x8e,0x00,0xf0, +0x00,0x01,0x01,0x47,0x00,0xf0,0x00,0x01,0x00,0x3c,0x00,0xf0,0x00,0x01,0x00,0xf5,0x00,0xf0,0x00,0x01,0x00,0x60,0x00,0xf0,0x00,0x01,0x01,0x19,0x00,0xf0,0x00,0x01,0x01,0x11,0x00,0xf0,0x00,0x01,0x01,0x97,0x00,0xf0,0x00,0x01,0x00,0x84,0x00,0xf0,0x00,0x01,0x01,0x3d,0x00,0xf0,0x00,0x01,0x00,0x6c,0x00,0xf0,0x00,0x01,0x01,0x25, +0x00,0xf0,0x00,0x01,0x01,0x0e,0x00,0xf0,0x00,0x01,0x01,0x90,0x00,0xf0,0x00,0x01,0x00,0xf0,0x00,0xf0,0x00,0x01,0x01,0x72,0x00,0xf0,0x00,0x01,0x00,0x6d,0x00,0xf0,0x00,0x01,0x01,0x26,0x00,0xf0,0x00,0x01,0x00,0x8a,0x00,0xf0,0x00,0x01,0x01,0x43,0x00,0xf0,0x00,0x01,0xff,0x1e,0x00,0xf0,0x00,0x01,0xff,0xd7,0x00,0xf0,0x00,0x01, +0x01,0x04,0x00,0xf0,0x00,0x01,0x00,0x62,0x00,0xf0,0x00,0x01,0x01,0x1b,0x00,0xf0,0x00,0x01,0x00,0xdc,0x00,0xf0,0x00,0x01,0x01,0x68,0x00,0xf0,0x00,0x01,0x00,0xb3,0x00,0xf0,0x00,0x01,0x01,0x6c,0x00,0xf0,0x00,0x01,0x00,0xb2,0x00,0xf0,0x00,0x01,0x01,0x3e,0x00,0xf0,0x00,0x01,0x00,0x64,0x00,0xf0,0x00,0x01,0x01,0x1d,0x00,0xf0, +0x00,0x01,0x00,0xaa,0x00,0xf0,0x00,0x01,0x01,0x63,0x00,0xf0,0x00,0x01,0x01,0x0b,0x00,0xf0,0x00,0x01,0x00,0xbe,0x00,0xf0,0x00,0x01,0x01,0x77,0x00,0xf0,0x00,0x01,0x00,0xf2,0x00,0xf0,0x00,0x01,0x01,0xab,0x00,0xf0,0x00,0x01,0x00,0xe3,0x00,0xf0,0x00,0x01,0x01,0x9c,0x00,0xf0,0x00,0x01,0x01,0x01,0x00,0xf0,0x00,0x01,0x00,0xca, +0x00,0xf0,0x00,0x01,0x01,0x83,0x00,0xf0,0x00,0x01,0x00,0x94,0x00,0xf0,0x00,0x01,0x01,0x4d,0x00,0xf0,0x00,0x01,0xff,0x5e,0x00,0xf0,0x00,0x01,0x02,0xa8,0x00,0x00,0x00,0x01,0x01,0xeb,0x00,0x00,0x00,0x01,0x01,0xa0,0x00,0x00,0x00,0x01,0x02,0xae,0x00,0x00,0x00,0x01,0x01,0x56,0x00,0x00,0x00,0x01,0x02,0xc1,0x00,0x00,0x00,0x01, +0x01,0xb8,0x00,0x00,0x00,0x01,0x01,0xc8,0x00,0x00,0x00,0x01,0x02,0x3d,0x00,0x00,0x00,0x01,0x02,0xbf,0x00,0x00,0x00,0x01,0x02,0xbe,0x00,0x00,0x00,0x01,0x01,0x6a,0x00,0x00,0x00,0x01,0x02,0xb3,0x00,0x00,0x00,0x01,0x02,0x26,0x00,0x00,0x00,0x01,0x02,0x45,0x00,0x00,0x00,0x01,0x02,0x33,0x00,0x00,0x00,0x01,0x02,0x5e,0x00,0x00, +0x00,0x01,0x02,0xaf,0x00,0x00,0x00,0x01,0x03,0x1f,0x00,0x00,0x00,0x01,0x02,0xf4,0x00,0x00,0x00,0x01,0x02,0x29,0x00,0x00,0x00,0x01,0x01,0x7f,0x00,0x00,0x00,0x01,0x01,0x12,0x00,0xf0,0x00,0x01,0x01,0xeb,0x00,0xdc,0x00,0x01,0x01,0xc8,0x00,0xdc,0x00,0x01,0x02,0x45,0x00,0xdc,0x00,0x01,0x02,0x91,0x00,0x00,0x00,0x01,0x01,0xa0, +0x00,0xdc,0x00,0x01,0x02,0xae,0x00,0xdc,0x00,0x01,0x02,0xf4,0x00,0xdc,0x00,0x01,0x02,0x4e,0x00,0x00,0x00,0x01,0x01,0xcf,0x00,0x00,0x00,0x01,0x02,0x38,0x00,0x00,0x00,0x01,0x02,0x15,0x00,0x00,0x00,0x01,0x02,0x3b,0x00,0x00,0x00,0x01,0xff,0xa6,0x00,0x00,0x00,0x01,0x02,0x4c,0x00,0x00,0x00,0x01,0x01,0xcd,0x00,0x00,0x00,0x01, +0x02,0x0e,0x00,0x00,0x00,0x01,0x02,0x36,0x00,0x00,0x00,0x01,0x02,0x12,0x00,0x00,0x00,0x01,0x02,0x13,0x00,0x00,0x00,0x01,0x01,0x9b,0x00,0x00,0x00,0x01,0x02,0x04,0x00,0x00,0x00,0x01,0x01,0xe0,0x00,0x00,0x00,0x01,0x01,0xe1,0x00,0x00,0x00,0x01,0x02,0xee,0x00,0x00,0x00,0x01,0x03,0x14,0x00,0x00,0x00,0x01,0x02,0xc3,0x00,0x00, +0x00,0x01,0x02,0x3a,0x00,0x00,0x00,0x01,0x03,0x10,0x00,0x00,0x00,0x01,0x03,0x47,0x00,0x00,0x00,0x01,0x02,0x24,0x00,0x00,0x00,0x01,0x03,0x45,0x00,0x00,0x00,0x01,0x03,0x44,0x00,0x00,0x00,0x01,0x02,0x52,0x00,0x00,0x00,0x01,0x02,0x57,0x00,0x00,0x00,0x01,0x03,0x4c,0x00,0x00,0x00,0x01,0x00,0x27,0x00,0x00,0x00,0x01,0x01,0xf8, +0x00,0x00,0x00,0x01,0x02,0xbb,0x00,0x00,0x00,0x01,0x02,0xd9,0x00,0x00,0x00,0x01,0x01,0x45,0x00,0x00,0x00,0x01,0x02,0x98,0x00,0x00,0x00,0x01,0x04,0x05,0x00,0x00,0x00,0x01,0x03,0x8d,0x00,0x00,0x00,0x01,0x02,0x3e,0x00,0x00,0x00,0x01,0x01,0xe6,0x00,0x00,0x00,0x01,0x03,0x7d,0x00,0x00,0x00,0x01,0x03,0xa3,0x00,0x00,0x00,0x01, +0x03,0x52,0x00,0x00,0x00,0x01,0x03,0xd6,0x00,0x00,0x00,0x01,0x02,0x2f,0x00,0x00,0x00,0x01,0x03,0xd4,0x00,0x00,0x00,0x01,0x03,0xd3,0x00,0x00,0x00,0x01,0x02,0x8b,0x00,0x00,0x00,0x01,0x03,0xdb,0x00,0x00,0x00,0x01,0x02,0x87,0x00,0x00,0x00,0x01,0x03,0xd0,0x00,0x00,0x00,0x01,0x03,0x81,0x00,0x00,0x00,0x01,0x03,0x68,0x00,0x00, +0x00,0x01,0x03,0x27,0x00,0x00,0x00,0x01,0x04,0x2b,0x00,0x00,0x00,0x01,0x04,0x30,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x17,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x00,0x00,0x01,0x03,0x46,0x00,0x00,0x00,0x01,0x03,0x5e,0x00,0x00,0x00,0x01,0x02,0xcd,0x00,0x00,0x00,0x01,0x02,0x75,0x00,0x00,0x00,0x01,0x02,0xdb, +0x00,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x00,0x01,0x04,0x26,0x00,0x00,0x00,0x01,0x03,0xd5,0x00,0x00,0x00,0x01,0x03,0x8c,0x00,0x00,0x00,0x01,0x02,0xb2,0x00,0x00,0x00,0x01,0x03,0x36,0x00,0x00,0x00,0x01,0x04,0x57,0x00,0x00,0x00,0x01,0x04,0x56,0x00,0x00,0x00,0x01,0x02,0x9f,0x00,0x00,0x00,0x01,0x03,0x64,0x00,0x00,0x00,0x01, +0x00,0x3b,0x00,0x00,0x00,0x01,0x04,0x53,0x00,0x00,0x00,0x01,0x04,0x04,0x00,0x00,0x00,0x01,0x03,0xeb,0x00,0x00,0x00,0x01,0x01,0x59,0x00,0x00,0x00,0x01,0x05,0x1e,0x00,0x00,0x00,0x01,0x04,0x4f,0x00,0x00,0x00,0x01,0x04,0x9f,0x00,0x00,0x00,0x01,0x04,0x9a,0x00,0x00,0x00,0x01,0x03,0xb7,0x00,0x00,0x00,0x01,0x03,0xc9,0x00,0x00, +0x00,0x01,0x03,0xe1,0x00,0x00,0x00,0x01,0x03,0x50,0x00,0x00,0x00,0x01,0x02,0xf8,0x00,0x00,0x00,0x01,0x03,0x1a,0x00,0x00,0x00,0x01,0x03,0x03,0x00,0x00,0x00,0x01,0x03,0x9e,0x00,0x00,0x00,0x01,0x01,0xf7,0x00,0x00,0x00,0x01,0x02,0x7b,0x00,0x00,0x00,0x01,0x03,0x9c,0x00,0x00,0x00,0x01,0x03,0x9b,0x00,0x00,0x00,0x01,0x02,0xa9, +0x00,0x00,0x00,0x01,0xff,0xb0,0x00,0x00,0x00,0x01,0x02,0x4f,0x00,0x00,0x00,0x01,0x03,0x98,0x00,0x00,0x00,0x01,0x03,0x49,0x00,0x00,0x00,0x01,0x02,0x80,0x00,0x00,0x00,0x01,0x03,0x30,0x00,0x00,0x00,0x01,0x00,0xce,0x00,0x00,0x00,0x01,0x02,0xef,0x00,0x00,0x00,0x01,0x04,0x46,0x00,0x00,0x00,0x01,0x03,0xf8,0x00,0x00,0x00,0x01, +0x03,0xe4,0x00,0x00,0x00,0x01,0x03,0xdf,0x00,0x00,0x00,0x01,0x02,0xfc,0x00,0x00,0x00,0x01,0x03,0x0e,0x00,0x00,0x00,0x01,0x03,0x26,0x00,0x00,0x00,0x01,0x02,0x95,0x00,0x00,0x00,0x01,0x02,0xa3,0x00,0x00,0x00,0x01,0x01,0x2c,0x00,0x00,0x00,0x01,0x01,0x5e,0x00,0x00,0x00,0x01,0x01,0xc2,0x00,0x00,0x00,0x01,0x02,0xbc,0x00,0x00, +0x00,0x01,0x03,0x84,0x00,0x00,0x00,0x01,0x03,0x67,0x00,0x00,0x00,0x01,0x03,0xaf,0x00,0x00,0x00,0x01,0x02,0xa7,0x00,0x00,0x00,0x01,0x03,0xb5,0x00,0x00,0x00,0x01,0x02,0x5d,0x00,0x00,0x00,0x01,0x03,0xbe,0x00,0x00,0x00,0x01,0x03,0xc8,0x00,0x00,0x00,0x01,0x03,0xc6,0x00,0x00,0x00,0x01,0x03,0xc5,0x00,0x00,0x00,0x01,0x03,0xba, +0x00,0x00,0x00,0x01,0x03,0x78,0x00,0x00,0x00,0x01,0x03,0x2d,0x00,0x00,0x00,0x01,0x03,0x65,0x00,0x00,0x00,0x01,0x03,0xb6,0x00,0x00,0x00,0x01,0x03,0xfb,0x00,0x00,0x00,0x01,0x03,0x1e,0x00,0x00,0x00,0x01,0x02,0x5f,0x00,0x00,0x00,0x01,0x02,0x86,0x00,0x00,0x00,0x01,0x02,0x5f,0x00,0xf0,0x00,0x01,0x02,0xf2,0x00,0xd0,0x00,0x01, +0x02,0xcf,0x00,0xd0,0x00,0x01,0x03,0x4c,0x00,0xd0,0x00,0x01,0x02,0xa7,0x00,0xd0,0x00,0x01,0x02,0xf2,0x00,0xdc,0x00,0x01,0x03,0xb5,0x00,0xd0,0x00,0x01,0x03,0xfb,0x00,0xd0,0x00,0x01,0x01,0x04,0x04,0xb0,0x00,0x01,0x01,0x54,0x00,0x00,0x00,0x01,0x01,0x13,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0xb0,0x00,0x01,0x00,0x00,0x05,0x64, +0x00,0x01,0xff,0xce,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x88,0x00,0x01,0x00,0x46,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x60,0x00,0x01,0x00,0x00,0x03,0xde,0x00,0x01,0x00,0x00,0x03,0xe8,0x00,0x01,0xff,0xc4,0x03,0xe8,0x00,0x01,0xff,0xf6,0x00,0x41,0x00,0x01,0x00,0x0a,0x00,0x41,0x00,0x01,0x00,0x00,0x04,0x7e,0x00,0x01,0x00,0x0f, +0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x41,0x00,0x01,0xff,0xfb,0x00,0x32,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x01,0x00,0x00,0x00,0x3c,0x00,0x01,0x00,0x00,0xff,0xc9,0x00,0x01,0x00,0x00,0xff,0xe2,0x00,0x01,0xff,0xf1,0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x14,0x00,0x01,0x00,0x00,0x04,0xec,0x00,0x01,0x00,0x00,0xff,0xec,0x00,0x01, +0x01,0xae,0x00,0x82,0x00,0x01,0x00,0x00,0x00,0x46,0x00,0x01,0x00,0x1e,0x04,0xb0,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x01,0x01,0x93,0x04,0xb0,0x00,0x01,0x01,0xa6,0x04,0xb0,0x00,0x01,0x01,0xb2,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x6f,0x00,0x01,0x00,0x00,0x04,0xa6,0x00,0x01,0x00,0x0f,0x04,0x7e, +0x00,0x01,0x00,0x00,0x00,0x1e,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x01,0xff,0xf1,0x04,0x7e,0x00,0x01,0x00,0x00,0x00,0x64,0x00,0x01,0x00,0x00,0x00,0x28,0x00,0x01,0x00,0x00,0x04,0xc4,0x00,0x01,0x01,0xd9,0x04,0xba,0x00,0x01,0x01,0xd9,0x03,0xca,0x00,0x01,0x02,0x07,0x04,0x74,0x00,0x01,0x00,0xd9,0x00,0x82,0x00,0x01,0x01,0x53, +0x04,0x06,0x00,0x01,0x02,0x80,0x00,0x82,0x00,0x01,0x02,0x8c,0x06,0x40,0x00,0x01,0x03,0x93,0x05,0xdc,0x00,0x01,0x02,0x9e,0xff,0xf1,0x00,0x01,0x02,0x1c,0x06,0x40,0x00,0x01,0x03,0xe8,0x05,0xdc,0x00,0x01,0x02,0x1c,0xff,0xf1,0x00,0x01,0x02,0xee,0x06,0x40,0x00,0x01,0x04,0xc4,0x05,0xdc,0x00,0x01,0x02,0xee,0xff,0xe7,0x00,0x01, +0x02,0xbc,0x06,0x40,0x00,0x01,0x04,0xce,0x05,0xdc,0x00,0x01,0x02,0xbc,0xff,0xf1,0x00,0x01,0x02,0x58,0x06,0x40,0x00,0x01,0x03,0xd4,0x05,0xdc,0x00,0x01,0x02,0x58,0xff,0xf1,0x00,0x01,0x03,0x20,0x06,0x40,0x00,0x01,0x05,0x00,0x05,0xdc,0x00,0x01,0x03,0x20,0xff,0xe7,0x00,0x01,0x02,0xd0,0x06,0x40,0x00,0x01,0x05,0x28,0x05,0xdc, +0x00,0x01,0x02,0xd0,0xff,0xf1,0x00,0x01,0x01,0x09,0x06,0x40,0x00,0x01,0x02,0x08,0x05,0xdc,0x00,0x01,0x01,0x09,0xff,0xf1,0x00,0x01,0x01,0xd6,0x06,0x40,0x00,0x01,0x02,0x58,0x05,0xdc,0x00,0x01,0x01,0x7c,0xff,0xf1,0x00,0x01,0x02,0x8a,0x06,0x40,0x00,0x01,0x04,0xb0,0x05,0xdc,0x00,0x01,0x02,0x8a,0xff,0xf1,0x00,0x01,0x02,0x4e, +0x06,0x40,0x00,0x01,0x03,0x84,0x05,0xdc,0x00,0x01,0x02,0x4e,0xff,0xf1,0x00,0x01,0x03,0x93,0x06,0x40,0x00,0x01,0x06,0xa4,0x05,0xdc,0x00,0x01,0x03,0x93,0xff,0xf1,0x00,0x01,0x05,0x78,0x05,0xdc,0x00,0x01,0x03,0x20,0xff,0xf1,0x00,0x01,0x03,0x02,0x06,0x40,0x00,0x01,0x05,0x14,0x05,0xdc,0x00,0x01,0x03,0x02,0xff,0xe7,0x00,0x01, +0x02,0x62,0x06,0x40,0x00,0x01,0x02,0x62,0xff,0xf1,0x00,0x01,0x03,0x02,0xfe,0xf2,0x00,0x01,0x04,0x10,0x05,0xdc,0x00,0x01,0x02,0x3a,0x06,0x40,0x00,0x01,0x02,0x26,0xff,0xe7,0x00,0x01,0x02,0x26,0x06,0x40,0x00,0x01,0x04,0x4c,0x05,0xdc,0x00,0x01,0x02,0x26,0xff,0xf1,0x00,0x01,0x02,0xbc,0xff,0xe7,0x00,0x01,0x02,0x80,0x06,0x40, +0x00,0x01,0x02,0x80,0xff,0xf1,0x00,0x01,0x03,0xca,0x06,0x40,0x00,0x01,0x07,0x9e,0x05,0xdc,0x00,0x01,0x03,0xca,0xff,0xf1,0x00,0x01,0x02,0x6c,0x06,0x40,0x00,0x01,0x02,0x6c,0xff,0xf1,0x00,0x01,0x02,0x44,0x06,0x40,0x00,0x01,0x02,0x44,0xff,0xf1,0x00,0x01,0x02,0x08,0x05,0x14,0x00,0x01,0x03,0x84,0x04,0xb0,0x00,0x01,0x02,0x08, +0xff,0xe7,0x00,0x01,0x02,0x4e,0x06,0x72,0x00,0x01,0x03,0xca,0x05,0x78,0x00,0x01,0x02,0x6c,0xff,0xe7,0x00,0x01,0x02,0x26,0x05,0x14,0x00,0x01,0x03,0x98,0x04,0xb0,0x00,0x01,0x02,0x3a,0xff,0xe7,0x00,0x01,0x02,0x1c,0x06,0x72,0x00,0x01,0x04,0x4c,0x06,0x40,0x00,0x01,0x02,0x1c,0xff,0xe7,0x00,0x01,0x02,0x3a,0x05,0x14,0x00,0x01, +0x01,0xe0,0x06,0x72,0x00,0x01,0x01,0x36,0xff,0xf1,0x00,0x01,0x04,0x38,0x04,0xb0,0x00,0x01,0x02,0x3a,0xfe,0x2a,0x00,0x01,0x00,0xfa,0x06,0x72,0x00,0x01,0x01,0xa4,0x06,0x0e,0x00,0x01,0x00,0xfa,0xff,0xf1,0x00,0x01,0x00,0xf0,0x06,0x72,0x00,0x01,0x00,0x50,0xfe,0x2a,0x00,0x01,0x03,0x84,0x05,0x78,0x00,0x01,0x01,0x7c,0x06,0x40, +0x00,0x01,0x03,0x7a,0x05,0x14,0x00,0x01,0x06,0x40,0x04,0xb0,0x00,0x01,0x03,0x7a,0xff,0xf1,0x00,0x01,0x02,0x4e,0x05,0x14,0x00,0x01,0x03,0xe8,0x04,0xb0,0x00,0x01,0x02,0x58,0x05,0x14,0x00,0x01,0x02,0x58,0xff,0xe7,0x00,0x01,0x04,0x1a,0x04,0xb0,0x00,0x01,0x02,0x4e,0xfe,0x2a,0x00,0x01,0x04,0x42,0x04,0xb0,0x00,0x01,0x01,0xcc, +0x05,0x14,0x00,0x01,0x02,0xe4,0x04,0xb0,0x00,0x01,0x01,0xae,0x05,0x14,0x00,0x01,0x03,0x02,0x04,0xb0,0x00,0x01,0x01,0xae,0xff,0xe7,0x00,0x01,0x01,0x2c,0x05,0xdc,0x00,0x01,0x01,0xe0,0x05,0x78,0x00,0x01,0x01,0x80,0xff,0xe7,0x00,0x01,0x04,0x06,0x04,0xb0,0x00,0x01,0x01,0xf4,0x05,0x14,0x00,0x01,0x04,0x10,0x04,0xb0,0x00,0x01, +0x01,0xf4,0xff,0xf1,0x00,0x01,0x02,0xf3,0x05,0x14,0x00,0x01,0x05,0xf0,0x04,0xb0,0x00,0x01,0x02,0xf3,0xff,0xf1,0x00,0x01,0x01,0xd6,0x05,0x14,0x00,0x01,0x03,0xca,0x04,0xb0,0x00,0x01,0x01,0xd6,0xff,0xf1,0x00,0x01,0x01,0xf9,0x05,0x14,0x00,0x01,0x01,0xf9,0xfe,0x2a,0x00,0x01,0x01,0xe0,0x05,0x14,0x00,0x01,0x01,0xc2,0xff,0xf1, +0x00,0x01,0x02,0x9e,0x07,0x80,0x00,0x01,0x04,0x33,0x06,0x7c,0x00,0x01,0x02,0xee,0xfe,0x48,0x00,0x01,0x02,0x58,0x07,0xb0,0x00,0x01,0x03,0xd4,0x06,0xa4,0x00,0x01,0x03,0x20,0x07,0x80,0x00,0x01,0x05,0x78,0x06,0x7c,0x00,0x01,0x03,0x02,0x07,0x80,0x00,0x01,0x05,0x8c,0x06,0x7c,0x00,0x01,0x02,0xbc,0x07,0x80,0x00,0x01,0x05,0x64, +0x06,0x7c,0x00,0x01,0x02,0x08,0x06,0x54,0x00,0x01,0x03,0xd4,0x05,0x50,0x00,0x01,0x01,0xf4,0x06,0x04,0x00,0x01,0x01,0xf4,0xff,0xe7,0x00,0x01,0x02,0x08,0x06,0x04,0x00,0x01,0x03,0x84,0x05,0x50,0x00,0x01,0x02,0x3a,0xfe,0x48,0x00,0x01,0x02,0x3a,0x06,0x54,0x00,0x01,0x02,0x2b,0x06,0x54,0x00,0x01,0x02,0x2b,0xff,0xe7,0x00,0x01, +0x02,0x26,0x06,0x04,0x00,0x01,0x02,0x44,0x05,0x46,0x00,0x01,0x01,0xf4,0x05,0x1e,0x00,0x01,0x00,0xe6,0x06,0x72,0x00,0x01,0x02,0x44,0x05,0x1e,0x00,0x01,0x00,0xe6,0x06,0x0e,0x00,0x01,0x02,0x4e,0x06,0x04,0x00,0x01,0x04,0x38,0x05,0x50,0x00,0x01,0x02,0x58,0x06,0x54,0x00,0x01,0x02,0x53,0x06,0x54,0x00,0x01,0x02,0x53,0xff,0xe7, +0x00,0x01,0x02,0x58,0x06,0x04,0x00,0x01,0x02,0x26,0x06,0x54,0x00,0x01,0x04,0x56,0x05,0x50,0x00,0x01,0x02,0x3a,0x06,0x04,0x00,0x01,0x02,0x2d,0x06,0xa2,0x00,0x01,0x04,0x5a,0x06,0x02,0x00,0x01,0x02,0x2d,0xff,0xe7,0x00,0x01,0x03,0xe8,0x06,0x40,0x00,0x01,0x06,0xe2,0x05,0xdc,0x00,0x01,0x03,0xe8,0xff,0xf1,0x00,0x01,0x03,0x48, +0x05,0x14,0x00,0x01,0x06,0xa8,0x04,0xb0,0x00,0x01,0x03,0x48,0xff,0xe7,0x00,0x01,0x03,0x02,0x06,0x72,0x00,0x01,0x04,0x00,0x05,0x9a,0x00,0x01,0x01,0x4b,0xfe,0xd4,0x00,0x01,0x02,0x9e,0x07,0xb0,0x00,0x01,0x04,0x83,0x06,0x7c,0x00,0x01,0x04,0x74,0x06,0x40,0x00,0x01,0x07,0x72,0x05,0xdc,0x00,0x01,0x04,0x74,0xff,0xe7,0x00,0x01, +0x03,0xfc,0x05,0x14,0x00,0x01,0x07,0x6c,0x04,0xb0,0x00,0x01,0x03,0xfc,0xff,0xe7,0x00,0x01,0x01,0xf9,0x06,0x04,0x00,0x01,0x04,0x6a,0x05,0x50,0x00,0x01,0x02,0x44,0x07,0x80,0x00,0x01,0x05,0x00,0x06,0x7c,0x00,0x01,0x02,0x30,0x07,0xb0,0x00,0x01,0x04,0x24,0x06,0x7c,0x00,0x01,0x02,0x30,0xff,0xf1,0x00,0x01,0x04,0x33,0x06,0xa4, +0x00,0x01,0x02,0x30,0x07,0x80,0x00,0x01,0x04,0x4c,0x06,0x7c,0x00,0x01,0x01,0x09,0x07,0xb0,0x00,0x01,0x02,0x80,0x06,0xa4,0x00,0x01,0x01,0x1d,0x07,0xb0,0x00,0x01,0x01,0x1d,0xff,0xf1,0x00,0x01,0x01,0x09,0x07,0x80,0x00,0x01,0x02,0x80,0x06,0x7c,0x00,0x01,0x02,0x30,0x06,0x7c,0x00,0x01,0x03,0x02,0x07,0xb0,0x00,0x01,0x02,0xbc, +0x07,0xb0,0x00,0x01,0x00,0xfa,0x04,0xa0,0x00,0x01,0x01,0x7c,0x04,0x50,0x00,0x01,0x01,0x0e,0x06,0x72,0x00,0x01,0x01,0xa4,0x06,0x40,0x00,0x01,0x01,0x0e,0xff,0xf1,0x00,0x01,0x02,0x26,0x07,0xb0,0x00,0x01,0x04,0x24,0x06,0xa4,0x00,0x01,0x01,0x90,0x06,0x54,0x00,0x01,0x03,0x52,0x05,0x50,0x00,0x01,0x02,0x6c,0x07,0xb0,0x00,0x01, +0x05,0x00,0x06,0xa4,0x00,0x01,0x01,0xf4,0x06,0x54,0x00,0x01,0x03,0xe8,0x05,0x50,0x00,0x01,0x02,0x3c,0x06,0x94,0x00,0x01,0x04,0x79,0x05,0xf4,0x00,0x01,0x02,0x3c,0xff,0xe7,0x00,0x01,0x02,0x44,0x07,0xb0,0x00,0x01,0x01,0xf9,0x06,0x54,0x00,0x01,0x02,0x3d,0x06,0x3a,0x00,0x01,0x04,0x7b,0x04,0xfa,0x00,0x01,0x02,0x3d,0xff,0xf1, +0x00,0x01,0x02,0x5a,0x06,0x8c,0x00,0x01,0x04,0xb4,0x05,0x4c,0x00,0x01,0x02,0x5a,0xfe,0x2a,0x00,0x01,0x03,0x20,0x07,0xb0,0x00,0x01,0x05,0x50,0x06,0x7c,0x00,0x01,0x04,0x88,0x05,0x50,0x00,0x01,0x01,0x1d,0x07,0x08,0x00,0x01,0x02,0x21,0x06,0x42,0x00,0x01,0x02,0x26,0xfe,0x48,0x00,0x01,0x01,0xae,0xfe,0x48,0x00,0x01,0x02,0xee, +0x07,0xb0,0x00,0x01,0x05,0x14,0x06,0xa4,0x00,0x01,0x03,0x0c,0x07,0xb0,0x00,0x01,0x03,0x0c,0xff,0xe7,0x00,0x01,0x02,0x44,0x06,0x54,0x00,0x01,0x02,0x44,0xff,0xe7,0x00,0x01,0x02,0x9e,0x06,0x40,0x00,0x01,0x02,0x9e,0xfe,0xa2,0x00,0x01,0x02,0x08,0xfe,0xa2,0x00,0x01,0x02,0xa8,0x07,0xb0,0x00,0x01,0x05,0x1e,0x06,0xa4,0x00,0x01, +0x02,0xa8,0xff,0xf1,0x00,0x01,0x02,0x58,0xfe,0xa2,0x00,0x01,0x02,0x3a,0xfe,0xa2,0x00,0x01,0x02,0x4e,0x07,0xb0,0x00,0x01,0x03,0x84,0x06,0xa4,0x00,0x01,0x00,0xfa,0x08,0x02,0x00,0x01,0x01,0xf4,0x06,0xe0,0x00,0x01,0x03,0xc4,0x05,0xdc,0x00,0x01,0x02,0x75,0x06,0x40,0x00,0x01,0x05,0x78,0x06,0xa4,0x00,0x01,0x02,0x4e,0x06,0x54, +0x00,0x01,0x03,0x02,0xff,0xf1,0x00,0x01,0x05,0x8c,0x06,0xa4,0x00,0x01,0x02,0x62,0x07,0xb0,0x00,0x01,0x04,0x60,0x06,0xa4,0x00,0x01,0x01,0xcc,0x06,0x54,0x00,0x01,0x03,0x34,0x05,0x50,0x00,0x01,0x01,0xae,0x06,0x54,0x00,0x01,0x02,0x3a,0x07,0xb0,0x00,0x01,0x01,0x80,0xfe,0x48,0x00,0x01,0x04,0x9c,0x06,0xa4,0x00,0x01,0x01,0x2c, +0x06,0x0e,0x00,0x01,0x02,0x30,0x06,0x18,0x00,0x01,0x05,0x64,0x06,0xa4,0x00,0x01,0x02,0x8a,0x07,0x80,0x00,0x01,0x04,0xb0,0x06,0xa4,0x00,0x01,0x01,0xe0,0x06,0x54,0x00,0x01,0x02,0x4e,0x07,0x80,0x00,0x01,0x04,0xb0,0x06,0x7c,0x00,0x01,0x01,0xe0,0x06,0x04,0x00,0x01,0x03,0xf8,0x06,0x3a,0x00,0x01,0x04,0xac,0x06,0x3a,0x00,0x01, +0x03,0x7a,0xff,0xe7,0x00,0x01,0x03,0x0c,0x06,0x79,0x00,0x01,0x03,0xf6,0x06,0x29,0x00,0x01,0x02,0x8a,0xfe,0x2a,0x00,0x01,0x02,0xe8,0x05,0xb2,0x00,0x01,0x04,0x39,0x04,0xb0,0x00,0x01,0x02,0xe8,0xff,0xf1,0x00,0x01,0x02,0x9e,0x07,0x30,0x00,0x01,0x02,0xf8,0x07,0xb0,0x00,0x01,0x02,0xf8,0xff,0xe7,0x00,0x01,0x04,0xc4,0x06,0x7c, +0x00,0x01,0x02,0x44,0x07,0x30,0x00,0x01,0x03,0xfc,0x05,0x50,0x00,0x01,0x02,0x1c,0x07,0xb0,0x00,0x01,0x02,0x26,0x07,0x80,0x00,0x01,0x03,0xd4,0x06,0x40,0x00,0x01,0x05,0x50,0x06,0xa4,0x00,0x01,0x02,0x44,0xfe,0x2a,0x00,0x01,0x03,0x20,0xfe,0x70,0x00,0x01,0x02,0x3a,0x06,0x16,0x00,0x01,0x04,0x66,0x05,0xa0,0x00,0x01,0x02,0xd0, +0x07,0xb0,0x00,0x01,0x02,0x6c,0x07,0xb2,0x00,0x01,0x04,0x1a,0x06,0x18,0x00,0x01,0x02,0xd7,0x06,0x3a,0x00,0x01,0x05,0x5e,0x05,0xea,0x00,0x01,0x02,0xd7,0xff,0xf1,0x00,0x01,0x02,0x43,0x06,0x3c,0x00,0x01,0x04,0x37,0x05,0x4c,0x00,0x01,0x02,0x43,0xff,0xf1,0x00,0x01,0x01,0x0e,0x07,0x80,0x00,0x01,0x00,0xfa,0x06,0x0e,0x00,0x01, +0x01,0x09,0x07,0x30,0x00,0x01,0x00,0xfa,0x05,0xd2,0x00,0x01,0x01,0x0e,0x07,0xb0,0x00,0x01,0x00,0xe1,0x06,0x72,0x00,0x01,0x01,0x0e,0x06,0x40,0x00,0x01,0x01,0x0e,0xfe,0xa2,0x00,0x01,0x00,0xfa,0xfe,0xa2,0x00,0x01,0x01,0xd6,0x07,0xb0,0x00,0x01,0x02,0xd0,0x06,0xa4,0x00,0x01,0x01,0xf4,0x05,0x6e,0x00,0x01,0x02,0x8a,0xfe,0x70, +0x00,0x01,0x02,0x4e,0xfe,0x70,0x00,0x01,0x01,0xfd,0x04,0xa0,0x00,0x01,0x03,0xfa,0x04,0xa0,0x00,0x01,0x01,0xfd,0xff,0xf1,0x00,0x01,0x02,0x4e,0xfe,0x48,0x00,0x01,0x00,0xfa,0xfe,0x48,0x00,0x01,0x03,0x20,0xfe,0x2a,0x00,0x01,0x03,0x02,0x07,0x30,0x00,0x01,0x02,0x9e,0xfe,0x70,0x00,0x01,0x00,0xfa,0xfe,0x70,0x00,0x01,0x02,0x18, +0x05,0xea,0x00,0x01,0x04,0x81,0x05,0xea,0x00,0x01,0x02,0x18,0xff,0xf1,0x00,0x01,0x01,0x2c,0x05,0x7f,0x00,0x01,0x02,0xb6,0x05,0x2f,0x00,0x01,0x02,0xbc,0x07,0x30,0x00,0x01,0x02,0xbc,0xfe,0xa2,0x00,0x01,0x02,0x26,0xfe,0xa2,0x00,0x01,0x03,0xd4,0x07,0xb0,0x00,0x01,0x07,0x9e,0x06,0x7c,0x00,0x01,0x02,0xf8,0x06,0x54,0x00,0x01, +0x05,0xf0,0x05,0x50,0x00,0x01,0x02,0x08,0xfe,0x2a,0x00,0x01,0x01,0x7c,0x06,0x72,0x00,0x01,0x02,0x8e,0x06,0x52,0x00,0x01,0x03,0xca,0x07,0xb0,0x00,0x01,0x02,0xf3,0x06,0x54,0x00,0x01,0x03,0xca,0x07,0x80,0x00,0x01,0x02,0xf3,0x06,0x04,0x00,0x01,0x04,0x1a,0x05,0x50,0x00,0x01,0x06,0x1a,0x06,0x7c,0x00,0x01,0x04,0xc7,0x04,0xb0, +0x00,0x01,0x02,0xbc,0x06,0xd6,0x00,0x01,0x05,0xfa,0x06,0x7c,0x00,0x01,0x02,0x26,0x05,0x46,0x00,0x01,0x05,0x04,0x05,0x00,0x00,0x01,0x02,0xb2,0xfe,0xc0,0x00,0x01,0x02,0x12,0x05,0x14,0x00,0x01,0x02,0x12,0xfe,0xc0,0x00,0x01,0x02,0x44,0xfe,0xc0,0x00,0x01,0x02,0x4e,0xfe,0xc0,0x00,0x01,0x02,0x30,0x06,0xc2,0x00,0x01,0x01,0xf4, +0x05,0x82,0x00,0x01,0x01,0x09,0xfe,0xc0,0x00,0x01,0x00,0xfa,0xfe,0xc0,0x00,0x01,0x03,0x02,0xfe,0xc0,0x00,0x01,0x02,0x58,0xfe,0xc0,0x00,0x01,0x02,0xbc,0xfe,0xc0,0x00,0x01,0x02,0x26,0xfe,0xc0,0x00,0x01,0x02,0x26,0xfe,0x84,0x00,0x01,0x01,0x80,0xfe,0x84,0x00,0x01,0x02,0xe2,0x06,0x52,0x00,0x01,0x05,0x74,0x05,0x62,0x00,0x01, +0x02,0xe2,0xff,0xe7,0x00,0x01,0x02,0x03,0x04,0xb8,0x00,0x01,0x03,0xdf,0x03,0xc8,0x00,0x01,0x02,0x03,0xff,0xe7,0x00,0x01,0x02,0x58,0xfe,0x48,0x00,0x01,0x02,0x9e,0xfe,0x02,0x00,0x01,0x02,0x08,0xfe,0x02,0x00,0x01,0x02,0x1c,0x07,0x80,0x00,0x01,0x03,0xe8,0x06,0x7c,0x00,0x01,0x02,0x30,0x06,0x40,0x00,0x01,0x02,0x30,0xfe,0xc0, +0x00,0x01,0x02,0x6c,0xfe,0xc0,0x00,0x01,0x02,0x44,0xff,0x24,0x00,0x01,0x02,0x6c,0xff,0x24,0x00,0x01,0x05,0x1e,0x06,0x7c,0x00,0x01,0x02,0xa8,0x06,0x40,0x00,0x01,0x02,0xa8,0xfe,0xc0,0x00,0x01,0x02,0x58,0x06,0x72,0x00,0x01,0x02,0x8a,0xff,0x24,0x00,0x01,0x02,0x4e,0xff,0x24,0x00,0x01,0x02,0xbc,0xfe,0x70,0x00,0x01,0x02,0x1c, +0xfe,0x70,0x00,0x01,0x02,0xb2,0x06,0x40,0x00,0x01,0x02,0xb2,0xfe,0x2a,0x00,0x01,0x02,0x44,0x05,0x14,0x00,0x01,0x02,0x30,0xfe,0xa2,0x00,0x01,0x02,0x12,0x07,0x80,0x00,0x01,0x02,0x12,0xff,0xf1,0x00,0x01,0x01,0xe0,0x07,0x62,0x00,0x01,0x02,0xee,0x06,0xe0,0x00,0x01,0x03,0x20,0x07,0x30,0x00,0x01,0x02,0xd0,0x07,0x80,0x00,0x01, +0x05,0x28,0x06,0x7c,0x00,0x01,0x02,0x4e,0x06,0xd6,0x00,0x01,0x03,0xca,0x06,0x18,0x00,0x01,0x02,0xee,0xfe,0xc0,0x00,0x01,0x02,0x3a,0x06,0x72,0x00,0x01,0x02,0x3a,0xfe,0xc0,0x00,0x01,0x02,0x80,0x07,0xb2,0x00,0x01,0x04,0x1a,0x06,0x54,0x00,0x01,0x02,0xd0,0xfe,0x2a,0x00,0x01,0x02,0xd0,0xfe,0x84,0x00,0x01,0x02,0x4e,0xfe,0x84, +0x00,0x01,0x01,0x09,0xfe,0xa2,0x00,0x01,0x02,0x8a,0x07,0xb0,0x00,0x01,0x02,0x4e,0x07,0xb2,0x00,0x01,0x02,0x80,0xfe,0xc0,0x00,0x01,0x02,0x26,0x06,0x72,0x00,0x01,0x02,0x30,0x06,0x72,0x00,0x01,0x02,0x30,0xff,0x24,0x00,0x01,0x02,0x26,0x07,0x30,0x00,0x01,0x03,0xd4,0x06,0x7c,0x00,0x01,0x00,0xfa,0x07,0x12,0x00,0x01,0x00,0xfa, +0xff,0x24,0x00,0x01,0x02,0x2b,0x06,0x40,0x00,0x01,0x02,0x2b,0xfe,0x2a,0x00,0x01,0x00,0xfa,0xfe,0x2a,0x00,0x01,0x03,0x93,0x07,0xb0,0x00,0x01,0x06,0xa4,0x06,0xa4,0x00,0x01,0x03,0x7a,0x06,0x54,0x00,0x01,0x06,0x40,0x05,0x50,0x00,0x01,0x03,0x5c,0x07,0x80,0x00,0x01,0x06,0xa4,0x06,0x7c,0x00,0x01,0x03,0x5c,0xfe,0xc0,0x00,0x01, +0x03,0x7a,0xfe,0xc0,0x00,0x01,0x02,0xf8,0x07,0x80,0x00,0x01,0x02,0xf8,0xff,0xf1,0x00,0x01,0x02,0xf8,0x06,0x40,0x00,0x01,0x02,0xf8,0xfe,0xc0,0x00,0x01,0x02,0xf8,0xff,0x24,0x00,0x01,0x02,0x58,0xff,0x24,0x00,0x01,0x03,0x02,0xfe,0x2a,0x00,0x01,0x04,0x38,0x06,0xa4,0x00,0x01,0x04,0x38,0x06,0x7c,0x00,0x01,0x02,0x6c,0x06,0x04, +0x00,0x01,0x02,0x6c,0xfe,0x2a,0x00,0x01,0x02,0x58,0x07,0x80,0x00,0x01,0x04,0x60,0x06,0x7c,0x00,0x01,0x01,0x90,0x06,0x04,0x00,0x01,0x02,0x8a,0xfe,0xc0,0x00,0x01,0x02,0x9e,0xff,0x24,0x00,0x01,0x02,0x4e,0xff,0xe7,0x00,0x01,0x01,0xcc,0xff,0xe7,0x00,0x01,0x01,0xc2,0x05,0x14,0x00,0x01,0x01,0xc2,0xfe,0xc0,0x00,0x01,0x04,0x24, +0x07,0x1c,0x00,0x01,0x03,0x52,0x05,0xf0,0x00,0x01,0x02,0x44,0x07,0xd0,0x00,0x01,0x01,0xae,0x06,0xa4,0x00,0x01,0x02,0x62,0x07,0x80,0x00,0x01,0x02,0x62,0xfe,0xc0,0x00,0x01,0x01,0xd6,0xfe,0xc0,0x00,0x01,0x01,0x2c,0x07,0x1c,0x00,0x01,0x01,0x68,0xfe,0xc0,0x00,0x01,0x02,0x26,0xff,0x24,0x00,0x01,0x01,0x80,0xff,0x24,0x00,0x01, +0x02,0x26,0xfe,0x2a,0x00,0x01,0x01,0x68,0xfe,0x2a,0x00,0x01,0x02,0x1c,0x05,0x14,0x00,0x01,0x02,0x1c,0xfe,0xc0,0x00,0x01,0x02,0x2b,0x05,0x14,0x00,0x01,0x02,0x80,0x07,0x80,0x00,0x01,0x05,0x14,0x06,0x7c,0x00,0x01,0x04,0x60,0x05,0x50,0x00,0x01,0x01,0xf4,0xfe,0xc0,0x00,0x01,0x03,0xde,0x07,0x80,0x00,0x01,0x07,0xee,0x06,0x7c, +0x00,0x01,0x02,0xf8,0x06,0x04,0x00,0x01,0x03,0xca,0xfe,0xc0,0x00,0x01,0x02,0xf3,0xfe,0xc0,0x00,0x01,0x02,0x6c,0x07,0x80,0x00,0x01,0x04,0xce,0x06,0x7c,0x00,0x01,0x01,0xd6,0x06,0x24,0x00,0x01,0x03,0xca,0x05,0x50,0x00,0x01,0x01,0xe0,0xff,0xf1,0x00,0x01,0x01,0xe0,0xfe,0xc0,0x00,0x01,0x01,0xcc,0xff,0x24,0x00,0x01,0x01,0x54, +0x07,0x1c,0x00,0x01,0x02,0xd0,0x06,0x18,0x00,0x01,0x03,0xd4,0x05,0x82,0x00,0x01,0x01,0x8b,0x07,0xb2,0x00,0x01,0x02,0x8e,0x06,0x92,0x00,0x01,0x00,0xf7,0xff,0xf1,0x00,0x01,0x04,0x64,0x05,0x4c,0x00,0x01,0x02,0x5a,0xff,0xe7,0x00,0x01,0x02,0x74,0x06,0x3a,0x00,0x01,0x04,0x98,0x05,0x4a,0x00,0x01,0x02,0x74,0xff,0xf1,0x00,0x01, +0x02,0x49,0x06,0x3a,0x00,0x01,0x04,0x93,0x05,0x9a,0x00,0x01,0x02,0x49,0xff,0xe7,0x00,0x01,0x04,0xb4,0x05,0xec,0x00,0x01,0x02,0x4f,0x06,0x52,0x00,0x01,0x04,0x4e,0x05,0x12,0x00,0x01,0x02,0x4f,0xff,0xe7,0x00,0x01,0x02,0x12,0x06,0x52,0x00,0x01,0x04,0xa6,0x05,0x62,0x00,0x01,0x02,0x12,0xff,0xe7,0x00,0x01,0x02,0xfa,0x06,0xd6, +0x00,0x01,0x05,0x96,0x06,0x83,0x00,0x01,0x02,0xfa,0xff,0xe7,0x00,0x01,0x02,0x3c,0x05,0x46,0x00,0x01,0x04,0x5a,0x05,0x25,0x00,0x01,0x02,0xce,0x06,0x3a,0x00,0x01,0x05,0x4c,0x05,0x4a,0x00,0x01,0x03,0x2a,0x06,0x3a,0x00,0x01,0x05,0x9e,0x05,0x4a,0x00,0x01,0x03,0x2a,0xff,0xf1,0x00,0x01,0x02,0x4a,0x06,0x3a,0x00,0x01,0x04,0x44, +0x05,0xea,0x00,0x01,0x02,0x4a,0xff,0xe7,0x00,0x01,0x04,0xb4,0x06,0x3c,0x00,0x01,0x02,0x5e,0x04,0xb8,0x00,0x01,0x04,0x6c,0x03,0xc8,0x00,0x01,0x02,0x5e,0xfe,0x2a,0x00,0x01,0x01,0xe0,0x06,0x3a,0x00,0x01,0x03,0xbe,0x05,0xea,0x00,0x01,0x02,0x58,0x06,0x52,0x00,0x01,0x04,0x04,0x05,0xb2,0x00,0x01,0x02,0x44,0x06,0x3a,0x00,0x01, +0x03,0xe8,0x05,0xea,0x00,0x01,0x01,0x2c,0xfe,0x84,0x00,0x01,0x03,0x20,0x06,0xd6,0x00,0x01,0x05,0xd9,0x06,0x83,0x00,0x01,0x02,0x7c,0x06,0x3a,0x00,0x01,0x05,0x48,0x05,0xea,0x00,0x01,0x02,0x7c,0xfe,0x2a,0x00,0x01,0x03,0x7f,0x06,0x8c,0x00,0x01,0x06,0xae,0x05,0x4c,0x00,0x01,0x03,0x7f,0xff,0xe7,0x00,0x01,0x01,0x36,0x06,0x72, +0x00,0x01,0x01,0xfe,0x05,0xea,0x00,0x01,0x01,0x1d,0x06,0x3a,0x00,0x01,0x02,0x3a,0x05,0xea,0x00,0x01,0x02,0x52,0x06,0x52,0x00,0x01,0x04,0xf4,0x06,0x02,0x00,0x01,0x02,0x52,0xff,0xf1,0x00,0x01,0x01,0xfe,0x06,0xa2,0x00,0x01,0x03,0xfc,0x06,0xa2,0x00,0x01,0x01,0xfe,0xff,0xf1,0x00,0x01,0x00,0xf8,0x06,0x8c,0x00,0x01,0x01,0xa0, +0x06,0x3c,0x00,0x01,0x00,0xf8,0xff,0xf1,0x00,0x01,0x01,0xfe,0x06,0x8e,0x00,0x01,0x03,0xac,0x05,0x4e,0x00,0x01,0x03,0x91,0x06,0x3a,0x00,0x01,0x06,0xd3,0x05,0xea,0x00,0x01,0x03,0x91,0xff,0xe7,0x00,0x01,0x02,0xfe,0x06,0x3a,0x00,0x01,0x05,0xac,0x05,0xea,0x00,0x01,0x03,0x97,0xff,0xf1,0x00,0x01,0x02,0x4d,0x04,0xb8,0x00,0x01, +0x04,0x4a,0x04,0x18,0x00,0x01,0x02,0x4d,0xfe,0x70,0x00,0x01,0x03,0x04,0x06,0x52,0x00,0x01,0x05,0xb8,0x05,0x62,0x00,0x01,0x03,0x04,0xff,0xe7,0x00,0x01,0x03,0xe0,0x06,0x52,0x00,0x01,0x07,0x48,0x06,0x02,0x00,0x01,0x03,0xe0,0xff,0xe7,0x00,0x01,0x03,0x29,0x04,0xb8,0x00,0x01,0x06,0x02,0x04,0x68,0x00,0x01,0x03,0x29,0xff,0xe7, +0x00,0x01,0x02,0x67,0x06,0x3a,0x00,0x01,0x04,0x7f,0x05,0x9a,0x00,0x01,0x02,0x67,0xff,0xf1,0x00,0x01,0x02,0x5a,0x06,0xa2,0x00,0x01,0x04,0x64,0x05,0x62,0x00,0x01,0x02,0x4e,0x06,0x3a,0x00,0x01,0x04,0x4c,0x04,0xfa,0x00,0x01,0x02,0x4e,0xff,0x51,0x00,0x01,0x02,0x10,0x06,0x3a,0x00,0x01,0x03,0xd1,0x05,0xea,0x00,0x01,0x02,0x10, +0xff,0xf1,0x00,0x01,0x00,0xaa,0x06,0xa2,0x00,0x01,0x02,0x0e,0x05,0xb2,0x00,0x01,0x01,0x6b,0xfe,0x2a,0x00,0x01,0x01,0x5c,0x05,0xcf,0x00,0x01,0x02,0xb8,0x05,0x2f,0x00,0x01,0x01,0x5c,0xfe,0x84,0x00,0x01,0x02,0x19,0x06,0x3a,0x00,0x01,0x04,0x33,0x05,0xea,0x00,0x01,0x02,0x19,0xff,0xf1,0x00,0x01,0x01,0x5c,0x06,0xa2,0x00,0x01, +0x03,0x08,0x06,0x52,0x00,0x01,0x01,0x5c,0xff,0xe7,0x00,0x01,0x02,0x19,0xfe,0x84,0x00,0x01,0x03,0x05,0x06,0x3a,0x00,0x01,0x06,0x0a,0x05,0xea,0x00,0x01,0x03,0x05,0xff,0xe7,0x00,0x01,0x02,0xd9,0x06,0x52,0x00,0x01,0x05,0x12,0x06,0x02,0x00,0x01,0x02,0xd9,0xff,0xe7,0x00,0x01,0x02,0x81,0x06,0x52,0x00,0x01,0x04,0xde,0x06,0x02, +0x00,0x01,0x02,0x81,0xff,0xf1,0x00,0x01,0x02,0x7b,0x05,0x14,0x00,0x01,0x04,0xc3,0x04,0x18,0x00,0x01,0x02,0x7b,0xfe,0x2a,0x00,0x01,0x02,0xee,0xfe,0x2a,0x00,0x01,0x02,0x28,0x06,0x3a,0x00,0x01,0x03,0xb0,0x06,0x3a,0x00,0x01,0x02,0x28,0xff,0xe7,0x00,0x01,0x01,0x85,0x04,0xa0,0x00,0x01,0x02,0xba,0x04,0xa0,0x00,0x01,0x01,0x85, +0xff,0xe7,0x00,0x01,0x02,0x2f,0x04,0xb8,0x00,0x01,0x04,0x5e,0x04,0x18,0x00,0x01,0x01,0x4b,0xfe,0x2a,0x00,0x01,0x07,0xbc,0x07,0xb0,0x00,0x01,0x09,0xe8,0x06,0xa4,0x00,0x01,0x07,0xbc,0xff,0xf1,0x00,0x01,0x07,0x6c,0x06,0x54,0x00,0x01,0x09,0x1c,0x05,0x50,0x00,0x01,0x07,0x6c,0xff,0xf1,0x00,0x01,0x06,0x86,0x06,0x54,0x00,0x01, +0x08,0x33,0x05,0x50,0x00,0x01,0x06,0x86,0xff,0xf1,0x00,0x01,0x05,0xd2,0x06,0x3a,0x00,0x01,0x06,0x89,0x05,0xdc,0x00,0x01,0x05,0x7b,0xff,0xe7,0x00,0x01,0x04,0xc4,0x06,0x79,0x00,0x01,0x05,0x72,0x06,0x0e,0x00,0x01,0x04,0x6e,0xfe,0x2a,0x00,0x01,0x03,0x0c,0x06,0x8c,0x00,0x01,0x03,0xb1,0x06,0x0e,0x00,0x01,0x02,0xa8,0xfe,0x2a, +0x00,0x01,0x07,0x8f,0x06,0x3a,0x00,0x01,0x08,0x44,0x05,0xdc,0x00,0x01,0x07,0x40,0xff,0xe7,0x00,0x01,0x06,0xc2,0x06,0x79,0x00,0x01,0x07,0x6e,0x06,0x0e,0x00,0x01,0x06,0x72,0xfe,0x2a,0x00,0x01,0x05,0x78,0x06,0x79,0x00,0x01,0x06,0x27,0x06,0x0e,0x00,0x01,0x05,0x23,0xfe,0x2a,0x00,0x01,0x01,0xfe,0x06,0x54,0x00,0x01,0x01,0xfe, +0xff,0xe7,0x00,0x01,0x02,0x44,0x05,0x82,0x00,0x01,0x02,0xc6,0x07,0xb0,0x00,0x01,0x02,0xc6,0xff,0xe7,0x00,0x01,0x04,0x92,0x07,0x30,0x00,0x01,0x06,0x92,0x06,0x7c,0x00,0x01,0x04,0x92,0xff,0xf1,0x00,0x01,0x03,0x50,0x06,0x04,0x00,0x01,0x06,0x50,0x05,0x50,0x00,0x01,0x03,0x50,0xff,0xe7,0x00,0x01,0x02,0xda,0x07,0xb0,0x00,0x01, +0x02,0xda,0xff,0xe7,0x00,0x01,0x01,0xfe,0x07,0xb2,0x00,0x01,0x03,0x02,0xfe,0x70,0x00,0x01,0x02,0x58,0xfe,0x70,0x00,0x01,0x02,0x08,0x07,0xb0,0x00,0x01,0x01,0x7c,0x06,0x54,0x00,0x01,0x01,0x7c,0xfe,0x2a,0x00,0x01,0x02,0x94,0x06,0x0e,0x00,0x01,0x07,0xda,0x06,0xe0,0x00,0x01,0x09,0xe8,0x05,0xdc,0x00,0x01,0x07,0xda,0xff,0xf1, +0x00,0x01,0x07,0x6c,0x05,0xb4,0x00,0x01,0x09,0x1c,0x04,0xb0,0x00,0x01,0x06,0x86,0x05,0xb4,0x00,0x01,0x08,0x33,0x04,0xb0,0x00,0x01,0x07,0xae,0x05,0xdc,0x00,0x01,0x02,0xc1,0x06,0x52,0x00,0x01,0x05,0x83,0x05,0xb2,0x00,0x01,0x01,0x62,0xfe,0x2a,0x00,0x01,0x04,0x83,0x06,0xa4,0x00,0x01,0x04,0x4c,0x06,0xa4,0x00,0x01,0x02,0x30, +0x06,0xa4,0x00,0x01,0x01,0xf4,0x05,0x50,0x00,0x01,0x01,0xb8,0x06,0x54,0x00,0x01,0x01,0xb8,0x06,0x52,0x00,0x01,0x03,0xb8,0x05,0x62,0x00,0x01,0x01,0xb8,0xfe,0x2a,0x00,0x01,0x01,0x90,0x04,0xb8,0x00,0x01,0x03,0x20,0x03,0xc8,0x00,0x01,0x01,0x90,0xfe,0x2a,0x00,0x01,0x04,0x1a,0x06,0xa4,0x00,0x01,0x02,0xef,0x06,0x52,0x00,0x01, +0x05,0x3f,0x05,0xb2,0x00,0x01,0x02,0xef,0xfe,0x2a,0x00,0x01,0x02,0x5c,0x06,0x3a,0x00,0x01,0x04,0x68,0x05,0x9a,0x00,0x01,0x02,0x5c,0xff,0xe7,0x00,0x01,0x02,0x44,0x06,0x8c,0x00,0x01,0x04,0x39,0x05,0xec,0x00,0x01,0x02,0x48,0xff,0x24,0x00,0x01,0x01,0xcf,0xff,0x24,0x00,0x01,0x02,0x05,0x04,0xb8,0x00,0x01,0x03,0xba,0x03,0xc8, +0x00,0x01,0x02,0x05,0xff,0xe7,0x00,0x01,0x02,0x79,0x04,0xb8,0x00,0x01,0x04,0xa2,0x04,0x68,0x00,0x01,0x02,0x79,0xff,0xe7,0x00,0x01,0x04,0xa2,0x04,0x18,0x00,0x01,0x02,0x5b,0x06,0xa2,0x00,0x01,0x04,0x66,0x05,0xaa,0x00,0x01,0x02,0x5b,0xff,0xe7,0x00,0x01,0x01,0xab,0x04,0xb8,0x00,0x01,0x03,0x6a,0x03,0xc8,0x00,0x01,0x01,0xab, +0xff,0xe7,0x00,0x01,0x02,0x08,0x04,0xb8,0x00,0x01,0x02,0x08,0xff,0x51,0x00,0x01,0x02,0x5b,0x06,0x8c,0x00,0x01,0x04,0x66,0x05,0xec,0x00,0x01,0x02,0x5b,0xfe,0x2a,0x00,0x01,0x05,0x56,0x06,0x52,0x00,0x01,0x02,0x17,0x04,0xb8,0x00,0x01,0x02,0x17,0xff,0xe7,0x00,0x01,0x01,0xf5,0x04,0xb8,0x00,0x01,0x04,0x96,0x03,0xc8,0x00,0x01, +0x01,0xf5,0xff,0xe7,0x00,0x01,0x01,0xbb,0x04,0xb8,0x00,0x01,0x02,0xfe,0x03,0xc8,0x00,0x01,0x01,0xbb,0xff,0xe7,0x00,0x01,0x01,0x93,0x04,0xb8,0x00,0x01,0x01,0x93,0xff,0xe7,0x00,0x01,0x03,0xa0,0x03,0xc8,0x00,0x01,0x02,0x34,0x04,0xb8,0x00,0x01,0x04,0x18,0x03,0xc8,0x00,0x01,0x02,0x34,0xff,0xe7,0x00,0x01,0x01,0x1c,0x04,0xa0, +0x00,0x01,0x02,0x38,0x04,0x50,0x00,0x01,0x01,0x1c,0xfe,0x2a,0x00,0x01,0x02,0x5b,0x06,0x72,0x00,0x01,0x02,0x1e,0x04,0xb8,0x00,0x01,0x03,0xec,0x04,0x18,0x00,0x01,0x02,0x1e,0xff,0xe7,0x00,0x01,0x01,0xea,0x04,0xa0,0x00,0x01,0x03,0xd5,0x04,0x50,0x00,0x01,0x01,0xea,0xfe,0x2a,0x00,0x01,0x01,0xd4,0x04,0xb8,0x00,0x01,0x03,0xa8, +0x04,0x68,0x00,0x01,0x01,0xd4,0xff,0xe7,0x00,0x01,0x02,0x43,0x04,0xe2,0x00,0x01,0x04,0x37,0x04,0x50,0x00,0x01,0x02,0x43,0xfe,0x2a,0x00,0x01,0x02,0x43,0x06,0xa2,0x00,0x01,0x04,0x1a,0x05,0x78,0x00,0x01,0x01,0x0c,0x06,0x29,0x00,0x01,0x01,0xc8,0x05,0x89,0x00,0x01,0x01,0x0c,0xff,0xf1,0x00,0x01,0x00,0xe1,0x04,0xa0,0x00,0x01, +0x01,0xea,0x04,0x50,0x00,0x01,0x01,0x40,0x04,0xa0,0x00,0x01,0x02,0x90,0x04,0x50,0x00,0x01,0x01,0x40,0xff,0xf1,0x00,0x01,0x01,0x18,0x06,0x8c,0x00,0x01,0x02,0x3e,0x05,0x9c,0x00,0x01,0x01,0x18,0xff,0xf1,0x00,0x01,0x01,0x9a,0x06,0x8c,0x00,0x01,0x03,0x02,0x05,0x9c,0x00,0x01,0x01,0x9a,0xff,0xf1,0x00,0x01,0x00,0xf7,0x06,0x8c, +0x00,0x01,0x01,0xee,0x05,0x9c,0x00,0x01,0x01,0x3f,0xfe,0x2a,0x00,0x01,0x02,0xf8,0x06,0x72,0x00,0x01,0x04,0xd3,0x04,0xb0,0x00,0x01,0x02,0xf8,0xfe,0x2a,0x00,0x01,0x03,0x7a,0x04,0xa0,0x00,0x01,0x06,0x94,0x04,0x50,0x00,0x01,0x03,0x7a,0xfe,0x2a,0x00,0x01,0x02,0x11,0xff,0xf1,0x00,0x01,0x02,0x58,0x04,0xa0,0x00,0x01,0x04,0x60, +0x04,0x50,0x00,0x01,0x02,0x58,0x04,0xb8,0x00,0x01,0x04,0x60,0x03,0xc8,0x00,0x01,0x03,0x6b,0x04,0xb6,0x00,0x01,0x05,0x96,0x04,0x66,0x00,0x01,0x03,0x6b,0xff,0xe7,0x00,0x01,0x02,0xdf,0x04,0xb8,0x00,0x01,0x05,0x74,0x03,0xc8,0x00,0x01,0x02,0xdf,0xff,0xe7,0x00,0x01,0x02,0x8d,0x06,0x8c,0x00,0x01,0x04,0xca,0x05,0x4c,0x00,0x01, +0x02,0x8d,0xfe,0x2a,0x00,0x01,0x01,0xd1,0x04,0xa0,0x00,0x01,0x02,0x78,0x04,0x50,0x00,0x01,0x01,0x64,0xff,0xe7,0x00,0x01,0x01,0xd1,0x06,0x8c,0x00,0x01,0x02,0x78,0x06,0x3c,0x00,0x01,0x01,0x64,0xfe,0x2a,0x00,0x01,0x01,0xcc,0x04,0xb2,0x00,0x01,0x01,0x86,0x04,0xb8,0x00,0x01,0x02,0xfe,0x04,0x68,0x00,0x01,0x00,0xe1,0xff,0xf1, +0x00,0x01,0x01,0x18,0x04,0xb8,0x00,0x01,0x02,0x5e,0x04,0x18,0x00,0x01,0x01,0xcc,0xff,0xf1,0x00,0x01,0x01,0xef,0x04,0xa0,0x00,0x01,0x03,0xa2,0x04,0x00,0x00,0x01,0x01,0xef,0xff,0xf1,0x00,0x01,0x03,0xa2,0x04,0x50,0x00,0x01,0x01,0xae,0xfe,0xa2,0x00,0x01,0x01,0x4a,0x06,0xa2,0x00,0x01,0x02,0x9a,0x06,0x52,0x00,0x01,0x00,0xb4, +0xfe,0x2a,0x00,0x01,0x01,0x5e,0x06,0xa2,0x00,0x01,0x02,0xb0,0x06,0x52,0x00,0x01,0x00,0xc8,0xfe,0x2a,0x00,0x01,0x00,0xb4,0x06,0xa2,0x00,0x01,0x01,0xfe,0x05,0xb2,0x00,0x01,0x01,0x4a,0xff,0xe7,0x00,0x01,0x01,0x68,0x06,0xa2,0x00,0x01,0x02,0xe4,0x06,0x52,0x00,0x01,0x00,0xdc,0xfe,0x2a,0x00,0x01,0x01,0x2c,0x04,0xb6,0x00,0x01, +0x02,0x68,0x03,0xc6,0x00,0x01,0x01,0x90,0xfe,0xd4,0x00,0x01,0x01,0x80,0xfe,0x2a,0x00,0x01,0x02,0x65,0x04,0xa0,0x00,0x01,0x04,0x7b,0x04,0x50,0x00,0x01,0x02,0x65,0xff,0xe7,0x00,0x01,0x02,0x61,0x04,0xa0,0x00,0x01,0x04,0xc2,0x04,0x50,0x00,0x01,0x02,0x61,0xff,0xe7,0x00,0x01,0x02,0x3b,0x04,0xb8,0x00,0x01,0x04,0x27,0x04,0x68, +0x00,0x01,0x02,0x3b,0xff,0xe7,0x00,0x01,0x01,0xf4,0x04,0xa0,0x00,0x01,0x03,0x35,0x04,0x50,0x00,0x01,0x02,0xe4,0x04,0xa0,0x00,0x01,0x05,0x28,0x04,0x50,0x00,0x01,0x02,0xe4,0xff,0xf1,0x00,0x01,0x01,0xef,0x06,0x8c,0x00,0x01,0x03,0xdf,0x05,0x9c,0x00,0x01,0x01,0xab,0x04,0xa0,0x00,0x01,0x03,0x56,0x04,0x50,0x00,0x01,0x01,0xab, +0xff,0xf1,0x00,0x01,0x01,0xc2,0xfe,0xd4,0x00,0x01,0x02,0x0c,0xff,0x51,0x00,0x01,0x01,0x90,0x05,0x14,0x00,0x01,0x01,0x76,0x06,0xa2,0x00,0x01,0x03,0x3c,0x05,0xb2,0x00,0x01,0x01,0x2c,0xff,0xf1,0x00,0x01,0x02,0xec,0x05,0xb2,0x00,0x01,0x01,0xa4,0xff,0xf1,0x00,0x01,0x02,0x9c,0x05,0x4c,0x00,0x01,0x01,0x58,0xff,0xe7,0x00,0x01, +0x02,0x3a,0x04,0xb8,0x00,0x01,0x03,0xba,0x04,0x68,0x00,0x01,0x02,0x71,0x06,0xa4,0x00,0x01,0x04,0x74,0x05,0xdc,0x00,0x01,0x02,0x71,0xff,0xe7,0x00,0x01,0x03,0x8f,0x04,0x00,0x00,0x01,0x02,0x31,0x04,0xb8,0x00,0x01,0x04,0x12,0x03,0xc8,0x00,0x01,0x02,0x31,0xff,0xe7,0x00,0x01,0x02,0x8a,0x05,0x46,0x00,0x01,0x04,0xdc,0x04,0xe2, +0x00,0x01,0x02,0x8a,0xff,0xe7,0x00,0x01,0x02,0x43,0x04,0xa0,0x00,0x01,0x01,0x04,0x06,0x79,0x00,0x01,0x01,0x9e,0x05,0x89,0x00,0x01,0x00,0x62,0xfe,0x2a,0x00,0x01,0x01,0xfe,0x04,0xa0,0x00,0x01,0x03,0xac,0x04,0x50,0x00,0x01,0x01,0xfe,0xfe,0x2a,0x00,0x01,0x01,0xe0,0x04,0xa0,0x00,0x01,0x03,0x14,0x03,0xb0,0x00,0x01,0x05,0x56, +0x06,0x02,0x00,0x01,0x05,0xaa,0x06,0x72,0x00,0x01,0x07,0x54,0x04,0xb0,0x00,0x01,0x05,0xaa,0xff,0xf1,0x00,0x01,0x07,0x98,0x04,0xb0,0x00,0x01,0x05,0xaa,0xfe,0x2a,0x00,0x01,0x07,0x7f,0x04,0xb0,0x00,0x01,0x05,0xaa,0xff,0x51,0x00,0x01,0x03,0x6f,0x05,0x78,0x00,0x01,0x04,0x98,0x04,0xb0,0x00,0x01,0x03,0x6f,0xff,0xf1,0x00,0x01, +0x02,0xaa,0x06,0x52,0x00,0x01,0x04,0x6f,0x06,0x52,0x00,0x01,0x02,0xaa,0xfe,0x2a,0x00,0x01,0x04,0x05,0x05,0x78,0x00,0x01,0x05,0x6e,0x04,0x8f,0x00,0x01,0x04,0x05,0xff,0xe7,0x00,0x01,0x04,0x70,0x06,0x72,0x00,0x01,0x04,0x70,0xfe,0x2a,0x00,0x01,0x03,0x3f,0x06,0x72,0x00,0x01,0x04,0x54,0x04,0xb0,0x00,0x01,0x03,0x3f,0xff,0xe7, +0x00,0x01,0x02,0xee,0x06,0x72,0x00,0x01,0x04,0x8e,0x04,0xb0,0x00,0x01,0x02,0xee,0xff,0xf1,0x00,0x01,0x02,0x08,0x06,0x3a,0x00,0x01,0x04,0x44,0x05,0x9a,0x00,0x01,0x01,0xfa,0xff,0xf1,0x00,0x01,0x01,0xfa,0x06,0x3a,0x00,0x01,0x00,0xf0,0x05,0x14,0x00,0x01,0x01,0xa4,0x04,0xb0,0x00,0x01,0x01,0x09,0x05,0x14,0x00,0x01,0x02,0x1c, +0x06,0x8c,0x00,0x01,0x04,0x87,0x06,0x8c,0x00,0x01,0x02,0x1c,0xfe,0x2a,0x00,0x01,0x00,0xfa,0x06,0x8c,0x00,0x01,0x01,0x96,0x06,0x8c,0x00,0x01,0x02,0x4e,0x04,0xb8,0x00,0x01,0x03,0xec,0x04,0xb8,0x00,0x01,0x01,0x2c,0x05,0xcf,0x00,0x01,0x01,0xe5,0x05,0x7f,0x00,0x01,0x01,0x2c,0xfe,0x2a,0x00,0x01,0x04,0x6c,0x04,0x68,0x00,0x01, +0x03,0xbd,0x06,0x72,0x00,0x01,0x06,0xba,0x05,0x78,0x00,0x01,0x03,0xbd,0xff,0xe7,0x00,0x01,0x03,0xbd,0x05,0x14,0x00,0x01,0x06,0xba,0x04,0xb0,0x00,0x01,0x03,0xbd,0xfe,0x2a,0x00,0x01,0x02,0x8c,0x06,0x90,0x00,0x01,0x03,0x93,0x06,0x7c,0x00,0x01,0x02,0x9e,0xff,0xa1,0x00,0x01,0x02,0xee,0x06,0x90,0x00,0x01,0x04,0x7c,0x06,0x2c, +0x00,0x01,0x02,0xee,0xff,0x97,0x00,0x01,0x02,0x26,0x05,0xb4,0x00,0x01,0x04,0x52,0x04,0xd1,0x00,0x01,0x02,0x3a,0xff,0x97,0x00,0x01,0x02,0x26,0x06,0x90,0x00,0x01,0x04,0x9c,0x06,0x2c,0x00,0x01,0x02,0x26,0xff,0xa1,0x00,0x01,0x01,0xae,0xfe,0x8e,0x00,0x01,0x01,0xc2,0xfe,0x8e,0x00,0x01,0x02,0x0b,0x06,0x7a,0x00,0x01,0x03,0xc6, +0x06,0x02,0x00,0x01,0x01,0x9b,0x05,0x14,0x00,0x01,0x02,0xd6,0x04,0xb0,0x00,0x01,0x00,0xe6,0xff,0xf1,0x00,0x01,0x02,0x5b,0x04,0xb8,0x00,0x01,0x04,0xb6,0x04,0x18,0x00,0x01,0x01,0xd8,0x06,0x3a,0x00,0x01,0x03,0xb1,0x05,0x9a,0x00,0x01,0x01,0xd8,0xff,0xf1,0x00,0x01,0x02,0x4f,0x04,0xa0,0x00,0x01,0x04,0x9f,0x04,0x50,0x00,0x01, +0x02,0x4f,0xfe,0x2a,0x00,0x01,0x05,0x11,0x06,0xc2,0x00,0x01,0x06,0x83,0x05,0x78,0x00,0x01,0x05,0x11,0xff,0xf1,0x00,0x01,0x01,0x48,0x04,0xa0,0x00,0x01,0x01,0x48,0xff,0xf1,0x00,0x01,0x01,0xa4,0x04,0xa0,0x00,0x01,0x02,0x23,0x04,0xa0,0x00,0x01,0x03,0xf6,0x04,0x50,0x00,0x01,0x02,0x23,0xff,0xe7,0x00,0x01,0x02,0x6c,0xfe,0xa2, +0x00,0x01,0x02,0x1c,0xfe,0xa2,0x00,0x01,0x01,0x36,0xfe,0xa2,0x00,0x01,0x02,0x4e,0xfe,0xa2,0x00,0x01,0x03,0x7a,0xfe,0xa2,0x00,0x01,0x01,0xf4,0xfe,0xa2,0x00,0x01,0x01,0xd6,0xfe,0xa2,0x00,0x01,0x01,0xc2,0xfe,0xa2,0x00,0x01,0x01,0xbb,0xfe,0xa2,0x00,0x01,0x01,0x93,0xfe,0xa2,0x00,0x01,0x01,0xdd,0x05,0x14,0x00,0x01,0x01,0xdd, +0xfe,0xa2,0x00,0x01,0x01,0xc4,0x04,0xa0,0x00,0x01,0x03,0x89,0x04,0x50,0x00,0x01,0x01,0xc4,0xfe,0x2a,0x00,0x01,0x02,0x60,0x04,0xee,0x00,0x01,0x04,0x71,0x04,0x4e,0x00,0x01,0x02,0x60,0xff,0xe7,0x00,0x01,0x01,0x7a,0x05,0xd0,0x00,0x01,0x02,0xa4,0x05,0x30,0x00,0x01,0x02,0x58,0xff,0x6a,0x00,0x01,0x02,0x3a,0x05,0x8d,0x00,0x01, +0x04,0x2f,0x05,0x00,0x00,0x01,0x03,0x00,0x06,0x52,0x00,0x01,0x05,0x4d,0x06,0x02,0x00,0x01,0x03,0x00,0xff,0x06,0x00,0x01,0x02,0x5b,0x05,0x14,0x00,0x01,0x04,0x34,0x04,0x68,0x00,0x01,0x02,0x5b,0xff,0x06,0x00,0x01,0x01,0xce,0x04,0xa1,0x00,0x01,0x03,0x20,0x04,0xa1,0x00,0x01,0x01,0xce,0xff,0xf1,0x00,0x01,0x01,0x22,0x06,0x72, +0x00,0x01,0x01,0x22,0xff,0xf1,0x00,0x01,0x02,0x9e,0xfe,0x8e,0x00,0x01,0x02,0x08,0x05,0x8d,0x00,0x01,0x03,0x9a,0x05,0x00,0x00,0x01,0x01,0x2c,0x05,0xea,0x00,0x01,0x02,0x66,0x05,0xc8,0x00,0x01,0x01,0x80,0xff,0x06,0x00,0x01,0x04,0x4c,0x04,0xb0,0x00,0x01,0x02,0xcc,0x04,0xb8,0x00,0x01,0x04,0xb0,0x04,0xb0,0x00,0x01,0x02,0xcc, +0xff,0xe7,0x00,0x01,0x01,0x18,0x04,0xba,0x00,0x01,0x01,0x04,0x04,0xba,0x00,0x01,0x00,0x00,0x04,0xba,0x00,0x01,0xff,0xf6,0x04,0xb0,0x00,0x01,0x02,0x26,0x07,0x33,0x00,0x01,0x02,0x58,0x07,0x62,0x00,0x01,0x02,0x76,0x07,0xa8,0x00,0x01,0x02,0x94,0x06,0x3a,0x00,0x01,0x02,0x06,0x06,0x3a,0x00,0x01,0x02,0xff,0x06,0x3a,0x00,0x01, +0x02,0xee,0x07,0x4a,0x00,0x01,0x03,0x0c,0x07,0xa8,0x00,0x01,0x03,0x04,0x06,0x6a,0x00,0x01,0x03,0x04,0x06,0x3a,0x00,0x01,0x02,0x40,0x06,0x52,0x00,0x01,0x02,0x40,0x06,0x3a,0x00,0x01,0x03,0x22,0x06,0x3a,0x00,0x01,0x02,0x77,0x06,0x6a,0x00,0x01,0x02,0x58,0x06,0x3a,0x00,0x01,0x04,0x13,0x06,0x6a,0x00,0x01,0x03,0xd4,0x06,0x3a, +0x00,0x01,0x02,0x09,0x04,0xd0,0x00,0x01,0x02,0x08,0x04,0xd0,0x00,0x01,0x02,0x17,0x04,0xd0,0x00,0x01,0x02,0x53,0x04,0xa0,0x00,0x01,0x02,0x53,0x04,0xd0,0x00,0x01,0x02,0x3f,0x05,0xee,0x00,0x01,0x02,0x58,0x06,0x5e,0x00,0x01,0x02,0x58,0x04,0xd0,0x00,0x01,0x01,0xef,0x05,0x4a,0x00,0x01,0x01,0xef,0x04,0xd0,0x00,0x01,0x02,0xd6, +0x04,0xa0,0x00,0x01,0x02,0xd0,0x04,0xd0,0x00,0x01,0x01,0xd9,0x04,0xd0,0x00,0x01,0x03,0x40,0x04,0xd0,0x00,0x01,0x03,0x20,0x04,0xd0,0x00,0x01,0x02,0x03,0x04,0xa0,0x00,0x01,0x02,0x03,0x04,0xd0,0x00,0x01,0x02,0x17,0x05,0x9f,0x00,0x01,0x02,0x17,0x06,0x2c,0x00,0x01,0x01,0xdc,0x06,0x19,0x00,0x01,0x01,0xf4,0x06,0x5e,0x00,0x01, +0x02,0xe2,0x06,0x6a,0x00,0x01,0x02,0xe2,0x06,0x3a,0x00,0x01,0x00,0xc8,0x02,0xf8,0x00,0x01,0x03,0x0c,0x05,0x9a,0x00,0x01,0x03,0xc0,0x05,0x22,0x00,0x01,0x04,0x8e,0x05,0x82,0x00,0x01,0x04,0xaf,0x05,0x07,0x00,0x01,0x03,0x94,0x05,0x9a,0x00,0x01,0x03,0x9d,0x05,0x9a,0x00,0x01,0x04,0xcf,0x05,0x40,0x00,0x01,0x04,0xf7,0x05,0x9a, +0x00,0x01,0x01,0xe0,0x05,0x9a,0x00,0x01,0x02,0x2d,0x05,0xa0,0x00,0x01,0x04,0x2c,0x05,0x9a,0x00,0x01,0x01,0x6a,0x05,0x9a,0x00,0x01,0x06,0x6d,0x05,0x9a,0x00,0x01,0x05,0x45,0x05,0x9a,0x00,0x01,0x05,0x51,0x04,0x94,0x00,0x01,0x04,0x03,0x05,0x22,0x00,0x01,0x03,0xf7,0x05,0x22,0x00,0x01,0x03,0xad,0x05,0x82,0x00,0x01,0x04,0x01, +0x05,0x9a,0x00,0x01,0x04,0xd1,0x05,0xa0,0x00,0x01,0x04,0xd1,0x05,0x9a,0x00,0x01,0x07,0x47,0x05,0x9a,0x00,0x01,0x04,0x38,0x05,0x9a,0x00,0x01,0x04,0x4c,0x05,0x9a,0x00,0x01,0x03,0x70,0x03,0x8e,0x00,0x01,0x04,0x0f,0x03,0x92,0x00,0x01,0x03,0x5d,0x03,0xdf,0x00,0x01,0x04,0x08,0x05,0xe9,0x00,0x01,0x03,0x98,0x03,0x8e,0x00,0x01, +0x02,0xa2,0x05,0xf0,0x00,0x01,0x04,0x08,0x03,0xff,0x00,0x01,0x03,0xe2,0x03,0x35,0x00,0x01,0x01,0x4a,0x03,0xfc,0x00,0x01,0x01,0x4b,0x03,0xf8,0x00,0x01,0x03,0x82,0x04,0x02,0x00,0x01,0x01,0x40,0x05,0xe9,0x00,0x01,0x06,0x40,0x03,0xa0,0x00,0x01,0x03,0xd4,0x03,0xa0,0x00,0x01,0x03,0xfc,0x03,0x8e,0x00,0x01,0x03,0xfc,0x03,0xaf, +0x00,0x01,0x04,0x08,0x04,0x03,0x00,0x01,0x02,0xb3,0x04,0x06,0x00,0x01,0x02,0xe4,0x03,0xfc,0x00,0x01,0x02,0x74,0x03,0xfe,0x00,0x01,0x03,0xde,0x03,0xfc,0x00,0x01,0x03,0xc1,0x04,0x00,0x00,0x01,0x05,0xa0,0x04,0x00,0x00,0x01,0x03,0x66,0x04,0x00,0x00,0x01,0x03,0xc0,0x03,0xfc,0x00,0x01,0x03,0x52,0x04,0x00,0x00,0x01,0x06,0x30, +0x03,0x8e,0x00,0x01,0x04,0x3e,0x03,0x07,0x00,0x01,0x06,0xf4,0x03,0x8e,0x00,0x01,0x01,0x40,0x04,0x06,0x00,0x01,0x03,0x84,0x03,0xb8,0x00,0x01,0x03,0x6e,0x04,0x0c,0x00,0x01,0x04,0x9e,0x04,0x0c,0x00,0x01,0x03,0xd8,0x03,0xf1,0x00,0x01,0x02,0xf1,0x03,0xb8,0x00,0x01,0x03,0x42,0x03,0xe8,0x00,0x01,0x02,0xd6,0x03,0xfc,0x00,0x01, +0x02,0x80,0x03,0xfc,0x00,0x01,0x03,0xde,0x03,0xb8,0x00,0x01,0x03,0x9c,0x04,0x1a,0x00,0x01,0x01,0x61,0x03,0xfc,0x00,0x01,0x02,0x33,0x04,0x00,0x00,0x01,0x05,0x39,0x04,0x08,0x00,0x01,0x04,0x02,0x03,0xfc,0x00,0x01,0x04,0x5c,0x04,0x0f,0x00,0x01,0x02,0x56,0x03,0xfd,0x00,0x01,0x00,0x00,0x02,0x21,0x00,0x01,0x00,0x00,0x02,0x12, +0x00,0x01,0x00,0x00,0x02,0x58,0x00,0x01,0x02,0x94,0x02,0xcd,0x00,0x01,0x02,0x4b,0x02,0xcd,0x00,0x01,0x02,0xde,0x02,0xe5,0x00,0x01,0x02,0xee,0x02,0xcd,0x00,0x01,0x02,0x06,0x02,0xcd,0x00,0x01,0x01,0xf4,0x02,0xcd,0x00,0x01,0x02,0xbe,0x02,0xe5,0x00,0x01,0x02,0xd7,0x02,0xcd,0x00,0x01,0x01,0x10,0x02,0xcd,0x00,0x01,0x01,0xd1, +0x02,0xd9,0x00,0x01,0x00,0xed,0x03,0xeb,0x00,0x01,0x01,0x0e,0x02,0xcd,0x00,0x01,0x03,0xa2,0x03,0x42,0x00,0x01,0x02,0xfe,0x02,0xcd,0x00,0x01,0x03,0x04,0x02,0xe5,0x00,0x01,0x02,0x64,0x03,0xeb,0x00,0x01,0x03,0x04,0x02,0xe2,0x00,0x01,0x02,0x20,0x02,0xe5,0x00,0x01,0x02,0x18,0x02,0xcd,0x00,0x01,0x02,0xbf,0x02,0xd9,0x00,0x01, +0x02,0x7c,0x02,0xcd,0x00,0x01,0x03,0xbc,0x02,0xcd,0x00,0x01,0x02,0x5c,0x02,0xcd,0x00,0x01,0x02,0x36,0x01,0xae,0x00,0x01,0x02,0x48,0x02,0xcd,0x00,0x01,0x02,0x09,0x01,0x41,0x00,0x01,0x02,0x80,0x01,0xce,0x00,0x01,0x02,0x3d,0x02,0x18,0x00,0x01,0x02,0x44,0x02,0x1b,0x00,0x01,0x02,0x35,0x02,0x58,0x00,0x01,0x01,0x40,0x02,0x67, +0x00,0x01,0x02,0x37,0x01,0xfc,0x00,0x01,0x01,0x01,0x04,0x71,0x00,0x01,0x01,0x03,0x02,0x26,0x00,0x01,0x00,0xf8,0x01,0xef,0x00,0x01,0x00,0xfa,0x04,0x25,0x00,0x01,0x00,0xfa,0x02,0xf9,0x00,0x01,0x03,0x72,0x02,0x0c,0x00,0x01,0x02,0x4c,0x02,0x0c,0x00,0x01,0x02,0x53,0x02,0x18,0x00,0x01,0x02,0x7c,0x01,0xef,0x00,0x01,0x02,0x3d, +0x02,0x13,0x00,0x01,0x01,0x01,0x01,0xe5,0x00,0x01,0x01,0xb2,0x02,0x18,0x00,0x01,0x01,0x2c,0x02,0x1b,0x00,0x01,0x02,0x39,0x02,0x0c,0x00,0x01,0x02,0x17,0x02,0x6c,0x00,0x01,0x02,0xe4,0x02,0x00,0x00,0x01,0x01,0xd6,0x02,0x00,0x00,0x01,0x01,0xef,0x02,0x5a,0x00,0x01,0x01,0xcf,0x02,0x00,0x00,0x01,0x02,0x58,0x01,0xd7,0x00,0x01, +0x03,0x04,0x02,0xff,0x00,0x01,0x01,0xb2,0x01,0xd7,0x00,0x01,0x01,0x9d,0x01,0xd0,0x00,0x01,0x02,0x3c,0x01,0xcf,0x00,0x01,0x00,0xe5,0x02,0x0c,0x00,0x01,0x00,0xfd,0x03,0x28,0x00,0x01,0x02,0xf6,0x00,0x6f,0x00,0x01,0x00,0x00,0x05,0xc8,0x00,0x01,0x00,0x00,0x05,0xbe,0x00,0x01,0x00,0x00,0xff,0x6a,0x00,0x01,0x05,0x12,0x07,0x6c, +0x00,0x01,0x05,0x12,0xfe,0x5c,0x00,0x01,0x04,0x2f,0x07,0x6c,0x00,0x01,0x04,0x2f,0xfe,0x5c,0x00,0x01,0x04,0x8c,0x07,0x6c,0x00,0x01,0x04,0x8c,0xfe,0x5c,0x00,0x01,0x05,0x3e,0x07,0x6c,0x00,0x01,0x05,0x3e,0xfe,0x5c,0x00,0x01,0x03,0xb4,0x07,0x6c,0x00,0x01,0x03,0xb4,0xfe,0x5c,0x00,0x01,0x03,0x94,0x07,0x6c,0x00,0x01,0x03,0x94, +0xfe,0x5c,0x00,0x01,0x04,0xec,0x07,0x6c,0x00,0x01,0x04,0xec,0xfe,0x5c,0x00,0x01,0x04,0xf2,0x07,0x6c,0x00,0x01,0x04,0xf2,0xfe,0x5c,0x00,0x01,0x01,0xf0,0x07,0x6c,0x00,0x01,0x01,0xf0,0xfe,0x5c,0x00,0x01,0x02,0x2b,0x07,0x6c,0x00,0x01,0x02,0x2b,0xfe,0x5c,0x00,0x01,0x04,0xa2,0x07,0x6c,0x00,0x01,0x04,0xa2,0xfe,0x5c,0x00,0x01, +0x03,0xa4,0x07,0x6c,0x00,0x01,0x03,0xa4,0xfe,0x5c,0x00,0x01,0x06,0x72,0x07,0x6c,0x00,0x01,0x06,0x72,0xfe,0x5c,0x00,0x01,0x05,0x40,0x07,0x6c,0x00,0x01,0x05,0x40,0xfe,0x5c,0x00,0x01,0x05,0xaa,0x07,0x6c,0x00,0x01,0x05,0xaa,0xfe,0x5c,0x00,0x01,0x04,0x29,0x07,0x6c,0x00,0x01,0x04,0x29,0xfe,0x5c,0x00,0x01,0x05,0xcc,0x07,0x6c, +0x00,0x01,0x05,0xcc,0xfe,0x5c,0x00,0x01,0x04,0xc0,0x07,0x6c,0x00,0x01,0x04,0xc0,0xfe,0x5c,0x00,0x01,0x03,0xde,0x07,0x6c,0x00,0x01,0x03,0xde,0xfe,0x5c,0x00,0x01,0x04,0x0c,0x07,0x6c,0x00,0x01,0x04,0x0c,0xfe,0x5c,0x00,0x01,0x04,0xd5,0x07,0x6c,0x00,0x01,0x04,0xd5,0xfe,0x5c,0x00,0x01,0x04,0xe6,0x07,0x6c,0x00,0x01,0x04,0xe6, +0xfe,0x5c,0x00,0x01,0x07,0x60,0x07,0x6c,0x00,0x01,0x07,0x60,0xfe,0x5c,0x00,0x01,0x04,0x9a,0x07,0x6c,0x00,0x01,0x04,0x9a,0xfe,0x5c,0x00,0x01,0x04,0x60,0x07,0x6c,0x00,0x01,0x04,0x60,0xfe,0x5c,0x00,0x01,0x04,0x64,0x07,0x6c,0x00,0x01,0x04,0x64,0xfe,0x5c,0x00,0x01,0x03,0x83,0x07,0x6c,0x00,0x01,0x03,0x83,0xfe,0x5c,0x00,0x01, +0x04,0x54,0x07,0x6c,0x00,0x01,0x04,0x54,0xfe,0x5c,0x00,0x01,0x03,0x62,0x07,0x6c,0x00,0x01,0x03,0x62,0xfe,0x5c,0x00,0x01,0x04,0x10,0x07,0x6c,0x00,0x01,0x04,0x10,0xfe,0x5c,0x00,0x01,0x03,0xdd,0x07,0x6c,0x00,0x01,0x03,0xdd,0xfe,0x5c,0x00,0x01,0x02,0xa0,0x07,0x6c,0x00,0x01,0x02,0xa0,0xfe,0x5c,0x00,0x01,0x03,0xf8,0x07,0x6c, +0x00,0x01,0x03,0xf8,0xfe,0x5c,0x00,0x01,0x01,0x66,0x07,0x6c,0x00,0x01,0x01,0x66,0xfe,0x5c,0x00,0x01,0x01,0x4a,0x07,0x6c,0x00,0x01,0x01,0x4a,0xfe,0x5c,0x00,0x01,0x06,0x54,0x07,0x6c,0x00,0x01,0x06,0x54,0xfe,0x5c,0x00,0x01,0x04,0x50,0x07,0x6c,0x00,0x01,0x04,0x50,0xfe,0x5c,0x00,0x01,0x02,0xbc,0x07,0x6c,0x00,0x01,0x02,0xbc, +0xfe,0x5c,0x00,0x01,0x03,0x0f,0x07,0x6c,0x00,0x01,0x03,0x0f,0xfe,0x5c,0x00,0x01,0x02,0x81,0x07,0x6c,0x00,0x01,0x02,0x81,0xfe,0x5c,0x00,0x01,0x03,0xe2,0x07,0x6c,0x00,0x01,0x03,0xe2,0xfe,0x5c,0x00,0x01,0x03,0xcb,0x07,0x6c,0x00,0x01,0x03,0xcb,0xfe,0x5c,0x00,0x01,0x05,0xb0,0x07,0x6c,0x00,0x01,0x05,0xb0,0xfe,0x5c,0x00,0x01, +0x03,0x92,0x07,0x6c,0x00,0x01,0x03,0x92,0xfe,0x5c,0x00,0x01,0x03,0xd5,0x07,0x6c,0x00,0x01,0x03,0xd5,0xfe,0x5c,0x00,0x01,0x03,0x70,0x07,0x6c,0x00,0x01,0x03,0x70,0xfe,0x5c,0x00,0x01,0x05,0x12,0x08,0x34,0x00,0x01,0x05,0x40,0x08,0x34,0x00,0x01,0x05,0xaa,0x08,0x34,0x00,0x01,0x04,0xd5,0x08,0x34,0x00,0x01,0x01,0xdd,0x07,0x6c, +0x00,0x01,0x01,0xdd,0xfe,0x5c,0x00,0x01,0x01,0x71,0x07,0x6c,0x00,0x01,0x01,0x71,0xfe,0x5c,0x00,0x01,0x02,0x07,0x07,0x6c,0x00,0x01,0x02,0x07,0xfe,0x5c,0x00,0x01,0x02,0x10,0x07,0x6c,0x00,0x01,0x02,0x10,0xfe,0x5c,0x00,0x01,0x04,0x14,0x07,0x6c,0x00,0x01,0x04,0x14,0xfe,0x5c,0x00,0x01,0x06,0x83,0x07,0x6c,0x00,0x01,0x06,0x83, +0xfe,0x5c,0x00,0x01,0x06,0x56,0x07,0x6c,0x00,0x01,0x06,0x56,0xfe,0x5c,0x00,0x01,0x04,0x96,0x07,0x6c,0x00,0x01,0x04,0x96,0xfe,0x5c,0x00,0x01,0x03,0xb8,0x07,0x6c,0x00,0x01,0x03,0xb8,0xfe,0x5c,0x00,0x01,0x07,0x12,0x07,0x6c,0x00,0x01,0x07,0x12,0xfe,0x5c,0x00,0x01,0x07,0x21,0x07,0x6c,0x00,0x01,0x07,0x21,0xfe,0x5c,0x00,0x01, +0x03,0xb4,0x08,0x34,0x00,0x01,0x01,0xfd,0x08,0x34,0x00,0x01,0x01,0xfd,0xfe,0x5c,0x00,0x01,0x02,0x30,0x08,0x34,0x00,0x01,0x02,0x30,0xfe,0x5c,0x00,0x01,0x02,0x38,0x08,0x34,0x00,0x01,0x02,0x38,0xfe,0x5c,0x00,0x01,0x01,0xf0,0x08,0x34,0x00,0x01,0x02,0x12,0x07,0x6c,0x00,0x01,0x02,0x12,0xfe,0x5c,0x00,0x01,0x03,0xde,0x08,0x34, +0x00,0x01,0x04,0x64,0x08,0x34,0x00,0x01,0x04,0x18,0x07,0x6c,0x00,0x01,0x04,0x18,0xfe,0x5c,0x00,0x01,0x04,0x60,0x08,0x34,0x00,0x01,0x04,0xec,0x08,0x34,0x00,0x01,0x04,0x8c,0x08,0x34,0x00,0x01,0x04,0x98,0x07,0x6c,0x00,0x01,0x04,0x98,0xfe,0x5c,0x00,0x01,0x05,0x3e,0x08,0x34,0x00,0x01,0x05,0xb3,0x07,0x6c,0x00,0x01,0x05,0xb3, +0xfe,0x5c,0x00,0x01,0x03,0xa4,0x08,0x34,0x00,0x01,0x02,0x13,0x07,0x6c,0x00,0x01,0x02,0x13,0xfe,0x5c,0x00,0x01,0x02,0xc3,0x07,0x6c,0x00,0x01,0x02,0xc3,0xfe,0x5c,0x00,0x01,0x02,0x87,0x07,0x6c,0x00,0x01,0x02,0x87,0xfe,0x5c,0x00,0x01,0x04,0xc0,0x08,0x34,0x00,0x01,0x02,0xc9,0x07,0x6c,0x00,0x01,0x02,0xc9,0xfe,0x5c,0x00,0x01, +0x02,0x9a,0x07,0x6c,0x00,0x01,0x02,0x9a,0xfe,0x5c,0x00,0x01,0x04,0x0c,0x08,0x34,0x00,0x01,0x03,0xd3,0x07,0x6c,0x00,0x01,0x03,0xd3,0xfe,0x5c,0x00,0x01,0x04,0x4e,0x07,0x6c,0x00,0x01,0x04,0x4e,0xfe,0x5c,0x00,0x01,0x03,0x6c,0x07,0x6c,0x00,0x01,0x03,0x6c,0xfe,0x5c,0x00,0x01,0x04,0x4a,0x07,0x6c,0x00,0x01,0x04,0x4a,0xfe,0x5c, +0x00,0x01,0x04,0xf2,0x08,0x34,0x00,0x01,0x03,0xf8,0x08,0x34,0x00,0x01,0x05,0x92,0x07,0x6c,0x00,0x01,0x05,0x92,0xfe,0x5c,0x00,0x01,0x02,0x51,0x07,0x6c,0x00,0x01,0x02,0x51,0xfe,0x5c,0x00,0x01,0x02,0x2e,0x07,0x6c,0x00,0x01,0x02,0x2e,0xfe,0x5c,0x00,0x01,0x02,0x0f,0x07,0x6c,0x00,0x01,0x02,0x0f,0xfe,0x5c,0x00,0x01,0x01,0xeb, +0x07,0x6c,0x00,0x01,0x01,0xeb,0xfe,0x5c,0x00,0x01,0x02,0x23,0x08,0x34,0x00,0x01,0x02,0x23,0xfe,0x5c,0x00,0x01,0x02,0x00,0x07,0x6c,0x00,0x01,0x02,0x00,0xfe,0x5c,0x00,0x01,0x02,0xf2,0x07,0x6c,0x00,0x01,0x02,0xf2,0xfe,0x5c,0x00,0x01,0x02,0x62,0x07,0x6c,0x00,0x01,0x02,0x62,0xfe,0x5c,0x00,0x01,0x07,0x60,0x08,0x34,0x00,0x01, +0x06,0x3a,0x07,0x6c,0x00,0x01,0x06,0x3a,0xfe,0x5c,0x00,0x01,0x04,0xa9,0x07,0x6c,0x00,0x01,0x04,0xa9,0xfe,0x5c,0x00,0x01,0x05,0xd0,0x07,0x6c,0x00,0x01,0x05,0xd0,0xfe,0x5c,0x00,0x01,0x04,0xc7,0x07,0x6c,0x00,0x01,0x04,0xc7,0xfe,0x5c,0x00,0x01,0x04,0x52,0x07,0x6c,0x00,0x01,0x04,0x52,0xfe,0x5c,0x00,0x01,0x03,0xe9,0x07,0x6c, +0x00,0x01,0x03,0xe9,0xfe,0x5c,0x00,0x01,0x03,0x83,0x08,0x34,0x00,0x01,0x04,0x6f,0x08,0x34,0x00,0x01,0x04,0x6f,0xfe,0x5c,0x00,0x01,0x04,0x5a,0x07,0x6c,0x00,0x01,0x04,0x5a,0xfe,0x5c,0x00,0x01,0x04,0x20,0x08,0x34,0x00,0x01,0x04,0x20,0xfe,0x5c,0x00,0x01,0x04,0x32,0x07,0x6c,0x00,0x01,0x04,0x32,0xfe,0x5c,0x00,0x01,0x03,0xdd, +0x08,0x34,0x00,0x01,0x01,0xa1,0x07,0x6c,0x00,0x01,0x01,0xa1,0xfe,0x5c,0x00,0x01,0x04,0x50,0x08,0x34,0x00,0x01,0x06,0x3a,0x08,0x34,0x00,0x01,0x05,0xd0,0x08,0x34,0x00,0x01,0x05,0x66,0x07,0x6c,0x00,0x01,0x05,0x66,0xfe,0x5c,0x00,0x01,0x03,0xcf,0x07,0x6c,0x00,0x01,0x03,0xcf,0xfe,0x5c,0x00,0x01,0x04,0x2f,0x08,0x34,0x00,0x01, +0x03,0x94,0x08,0x34,0x00,0x01,0x02,0xa0,0x08,0x34,0x00,0x01,0x02,0x50,0x07,0x6c,0x00,0x01,0x02,0x50,0xfe,0x5c,0x00,0x01,0x02,0x3a,0x07,0x6c,0x00,0x01,0x02,0x3a,0xfe,0x5c,0x00,0x01,0x02,0x39,0x08,0x34,0x00,0x01,0x02,0x39,0xfe,0x5c,0x00,0x01,0x02,0x1b,0x08,0x34,0x00,0x01,0x02,0x1b,0xfe,0x5c,0x00,0x01,0x04,0xa2,0x08,0x34, +0x00,0x01,0x01,0x5b,0x07,0x6c,0x00,0x01,0x01,0x5b,0xfe,0x5c,0x00,0x01,0x01,0xf6,0x08,0x34,0x00,0x01,0x01,0xf6,0xfe,0x5c,0x00,0x01,0x01,0xf8,0x07,0x6c,0x00,0x01,0x01,0xf8,0xfe,0x5c,0x00,0x01,0x06,0x72,0x08,0x34,0x00,0x01,0x04,0x29,0x08,0x34,0x00,0x01,0x02,0xc7,0x07,0x6c,0x00,0x01,0x02,0xc7,0xfe,0x5c,0x00,0x01,0x03,0x0f, +0x08,0x34,0x00,0x01,0x02,0x95,0x07,0x6c,0x00,0x01,0x02,0x95,0xfe,0x5c,0x00,0x01,0x02,0x86,0x07,0x6c,0x00,0x01,0x02,0x86,0xfe,0x5c,0x00,0x01,0x03,0xe2,0x08,0x34,0x00,0x01,0x04,0xe6,0x08,0x34,0x00,0x01,0x04,0x9a,0x08,0x34,0x00,0x01,0x02,0x62,0x08,0x34,0x00,0x01,0x04,0x81,0x07,0x6c,0x00,0x01,0x04,0x81,0xfe,0x5c,0x00,0x01, +0x04,0x38,0x07,0x6c,0x00,0x01,0x04,0x38,0xfe,0x5c,0x00,0x01,0x05,0x42,0x07,0x6c,0x00,0x01,0x05,0x42,0xfe,0x5c,0x00,0x01,0x04,0x0e,0x07,0x6c,0x00,0x01,0x04,0x0e,0xfe,0x5c,0x00,0x01,0x05,0x90,0x07,0x6c,0x00,0x01,0x05,0x90,0xfe,0x5c,0x00,0x01,0x03,0xd7,0x07,0x6c,0x00,0x01,0x03,0xd7,0xfe,0x5c,0x00,0x01,0x04,0x5c,0x07,0x6c, +0x00,0x01,0x04,0x5c,0xfe,0x5c,0x00,0x01,0x03,0x52,0x07,0x6c,0x00,0x01,0x03,0x52,0xfe,0x5c,0x00,0x01,0x03,0xf4,0x07,0x6c,0x00,0x01,0x03,0xf4,0xfe,0x5c,0x00,0x01,0x05,0x85,0x07,0x6c,0x00,0x01,0x05,0x85,0xfe,0x5c,0x00,0x01,0x06,0x87,0x07,0x6c,0x00,0x01,0x06,0x87,0xfe,0x5c,0x00,0x01,0x02,0x25,0x07,0x6c,0x00,0x01,0x02,0x25, +0xfe,0x5c,0x00,0x01,0x01,0xdb,0x07,0x6c,0x00,0x01,0x01,0xdb,0xfe,0x5c,0x00,0x01,0x03,0xdf,0x07,0x6c,0x00,0x01,0x03,0xdf,0xfe,0x5c,0x00,0x01,0x06,0x66,0x07,0x6c,0x00,0x01,0x06,0x66,0xfe,0x5c,0x00,0x01,0x07,0x04,0x07,0x6c,0x00,0x01,0x07,0x04,0xfe,0x5c,0x00,0x01,0x05,0xac,0x07,0x6c,0x00,0x01,0x05,0xac,0xfe,0x5c,0x00,0x01, +0x04,0x7b,0x07,0x6c,0x00,0x01,0x04,0x7b,0xfe,0x5c,0x00,0x01,0x04,0x62,0x07,0x6c,0x00,0x01,0x04,0x62,0xfe,0x5c,0x00,0x01,0x03,0xc7,0x07,0x6c,0x00,0x01,0x03,0xc7,0xfe,0x5c,0x00,0x01,0x02,0xfd,0x07,0x6c,0x00,0x01,0x02,0xfd,0xfe,0x5c,0x00,0x01,0x03,0xf0,0x07,0x6c,0x00,0x01,0x03,0xf0,0xfe,0x5c,0x00,0x01,0x05,0xa8,0x07,0x6c, +0x00,0x01,0x05,0xa8,0xfe,0x5c,0x00,0x01,0x05,0x54,0x07,0x6c,0x00,0x01,0x05,0x54,0xfe,0x5c,0x00,0x01,0x04,0x7f,0x07,0x6c,0x00,0x01,0x04,0x7f,0xfe,0x5c,0x00,0x01,0x04,0x83,0x07,0x6c,0x00,0x01,0x04,0x83,0xfe,0x5c,0x00,0x01,0x04,0xd7,0x07,0x6c,0x00,0x01,0x04,0xd7,0xfe,0x5c,0x00,0x01,0x03,0xc8,0x07,0x6c,0x00,0x01,0x03,0xc8, +0xfe,0x5c,0x00,0x01,0x02,0xcd,0x07,0x6c,0x00,0x01,0x02,0xcd,0xfe,0x5c,0x00,0x01,0x02,0xe4,0x07,0x6c,0x00,0x01,0x02,0xe4,0xfe,0x5c,0x00,0x01,0x04,0x16,0x07,0x6c,0x00,0x01,0x04,0x16,0xfe,0x5c,0x00,0x01,0x09,0xbc,0x08,0x34,0x00,0x01,0x09,0xbc,0xfe,0x5c,0x00,0x01,0x08,0xef,0x07,0x6c,0x00,0x01,0x08,0xef,0xfe,0x5c,0x00,0x01, +0x08,0x05,0x07,0x6c,0x00,0x01,0x08,0x05,0xfe,0x5c,0x00,0x01,0x06,0x29,0x07,0x6c,0x00,0x01,0x06,0x29,0xfe,0x5c,0x00,0x01,0x05,0x39,0x07,0x6c,0x00,0x01,0x05,0x39,0xfe,0x5c,0x00,0x01,0x03,0x77,0x07,0x6c,0x00,0x01,0x03,0x77,0xfe,0x5c,0x00,0x01,0x07,0xe4,0x07,0x6c,0x00,0x01,0x07,0xe4,0xfe,0x5c,0x00,0x01,0x07,0x34,0x07,0x6c, +0x00,0x01,0x07,0x34,0xfe,0x5c,0x00,0x01,0x05,0xed,0x07,0x6c,0x00,0x01,0x05,0xed,0xfe,0x5c,0x00,0x01,0x03,0x7b,0x07,0x6c,0x00,0x01,0x03,0x7b,0xfe,0x5c,0x00,0x01,0x02,0x29,0x08,0x34,0x00,0x01,0x02,0x29,0xfe,0x5c,0x00,0x01,0x02,0x11,0x07,0x6c,0x00,0x01,0x02,0x11,0xfe,0x5c,0x00,0x01,0x06,0x83,0x08,0x34,0x00,0x01,0x06,0x4e, +0x07,0x6c,0x00,0x01,0x06,0x4e,0xfe,0x5c,0x00,0x01,0x05,0x7d,0x07,0x6c,0x00,0x01,0x05,0x7d,0xfe,0x5c,0x00,0x01,0x04,0xb6,0x07,0x6c,0x00,0x01,0x04,0xb6,0xfe,0x5c,0x00,0x01,0x04,0x83,0x08,0x34,0x00,0x01,0x03,0x68,0x07,0x6c,0x00,0x01,0x03,0x68,0xfe,0x5c,0x00,0x01,0x09,0xbc,0x07,0x6c,0x00,0x01,0x08,0xf0,0x07,0x6c,0x00,0x01, +0x08,0xf0,0xfe,0x5c,0x00,0x01,0x08,0x06,0x07,0x6c,0x00,0x01,0x08,0x06,0xfe,0x5c,0x00,0x01,0x07,0x79,0x07,0x6c,0x00,0x01,0x07,0x79,0xfe,0x5c,0x00,0x01,0x05,0x27,0x07,0x6c,0x00,0x01,0x05,0x27,0xfe,0x5c,0x00,0x01,0x01,0xb6,0x07,0x6c,0x00,0x01,0x01,0xb6,0xfe,0x5c,0x00,0x01,0x02,0x28,0x08,0x34,0x00,0x01,0x02,0x28,0xfe,0x5c, +0x00,0x01,0x02,0x0a,0x07,0x6c,0x00,0x01,0x02,0x0a,0xfe,0x5c,0x00,0x01,0x02,0xca,0x07,0x6c,0x00,0x01,0x02,0xca,0xfe,0x5c,0x00,0x01,0x03,0x3e,0x07,0x6c,0x00,0x01,0x03,0x3e,0xfe,0x5c,0x00,0x01,0x04,0x42,0x07,0x6c,0x00,0x01,0x04,0x42,0xfe,0x5c,0x00,0x01,0x03,0x9e,0x07,0x6c,0x00,0x01,0x03,0x9e,0xfe,0x5c,0x00,0x01,0x04,0x56, +0x07,0x6c,0x00,0x01,0x04,0x56,0xfe,0x5c,0x00,0x01,0x03,0x5a,0x07,0x6c,0x00,0x01,0x03,0x5a,0xfe,0x5c,0x00,0x01,0x03,0xa0,0x07,0x6c,0x00,0x01,0x03,0xa0,0xfe,0x5c,0x00,0x01,0x05,0x21,0x07,0x6c,0x00,0x01,0x05,0x21,0xfe,0x5c,0x00,0x01,0x05,0x16,0x07,0x6c,0x00,0x01,0x05,0x16,0xfe,0x5c,0x00,0x01,0x02,0xf4,0x07,0x6c,0x00,0x01, +0x02,0xf4,0xfe,0x5c,0x00,0x01,0x02,0xee,0x07,0x6c,0x00,0x01,0x02,0xee,0xfe,0x5c,0x00,0x01,0x04,0x35,0x07,0x6c,0x00,0x01,0x04,0x35,0xfe,0x5c,0x00,0x01,0x02,0x1c,0x07,0x6c,0x00,0x01,0x02,0x1c,0xfe,0x5c,0x00,0x01,0x03,0xcd,0x07,0x6c,0x00,0x01,0x03,0xcd,0xfe,0x5c,0x00,0x01,0x03,0xc6,0x07,0x6c,0x00,0x01,0x03,0xc6,0xfe,0x5c, +0x00,0x01,0x02,0x0e,0x07,0x6c,0x00,0x01,0x02,0x0e,0xfe,0x5c,0x00,0x01,0x02,0x2f,0x07,0x6c,0x00,0x01,0x02,0x2f,0xfe,0x5c,0x00,0x01,0x02,0x44,0x07,0x6c,0x00,0x01,0x02,0x44,0xfe,0x5c,0x00,0x01,0x02,0x52,0x07,0x6c,0x00,0x01,0x02,0x52,0xfe,0x5c,0x00,0x01,0x02,0x5a,0x07,0x6c,0x00,0x01,0x02,0x5a,0xfe,0x5c,0x00,0x01,0x04,0xb2, +0x07,0x6c,0x00,0x01,0x04,0xb2,0xfe,0x5c,0x00,0x01,0x05,0x08,0x07,0x6c,0x00,0x01,0x05,0x08,0xfe,0x5c,0x00,0x01,0x04,0x0a,0x07,0x6c,0x00,0x01,0x04,0x0a,0xfe,0x5c,0x00,0x01,0x05,0x60,0x07,0x6c,0x00,0x01,0x05,0x60,0xfe,0x5c,0x00,0x01,0x05,0x64,0x07,0x6c,0x00,0x01,0x05,0x64,0xfe,0x5c,0x00,0x01,0x04,0xba,0x07,0x6c,0x00,0x01, +0x04,0xba,0xfe,0x5c,0x00,0x01,0x02,0x23,0x07,0x6c,0x00,0x01,0x03,0x33,0x07,0x6c,0x00,0x01,0x03,0x33,0xfe,0x5c,0x00,0x01,0x02,0xa2,0x07,0x6c,0x00,0x01,0x02,0xa2,0xfe,0x5c,0x00,0x01,0x02,0x1e,0x07,0x6c,0x00,0x01,0x02,0x1e,0xfe,0x5c,0x00,0x01,0x02,0xdb,0x07,0x6c,0x00,0x01,0x02,0xdb,0xfe,0x5c,0x00,0x01,0x02,0x68,0x07,0x6c, +0x00,0x01,0x02,0x68,0xfe,0x5c,0x00,0x01,0x02,0x72,0x07,0x6c,0x00,0x01,0x02,0x72,0xfe,0x5c,0x00,0x01,0x02,0x48,0x07,0x6c,0x00,0x01,0x02,0x48,0xfe,0x5c,0x00,0x01,0x02,0x8e,0x07,0x6c,0x00,0x01,0x02,0x8e,0xfe,0x5c,0x00,0x01,0x04,0xa4,0x07,0x6c,0x00,0x01,0x04,0xa4,0xfe,0x5c,0x00,0x01,0x03,0xd1,0x07,0x6c,0x00,0x01,0x03,0xd1, +0xfe,0x5c,0x00,0x01,0x03,0x4c,0x07,0x6c,0x00,0x01,0x03,0x4c,0xfe,0x5c,0x00,0x01,0x03,0xfe,0x07,0x6c,0x00,0x01,0x03,0xfe,0xfe,0x5c,0x00,0x01,0x04,0x25,0x07,0x6c,0x00,0x01,0x04,0x25,0xfe,0x5c,0x00,0x01,0x03,0x8c,0x07,0x6c,0x00,0x01,0x03,0x8c,0xfe,0x5c,0x00,0x01,0x02,0xe8,0x07,0x6c,0x00,0x01,0x02,0xe8,0xfe,0x5c,0x00,0x01, +0x02,0xcf,0x07,0x6c,0x00,0x01,0x02,0xcf,0xfe,0x5c,0x00,0x01,0x02,0xcb,0x07,0x6c,0x00,0x01,0x02,0xcb,0xfe,0x5c,0x00,0x01,0x03,0x60,0x07,0x6c,0x00,0x01,0x03,0x60,0xfe,0x5c,0x00,0x01,0x04,0x92,0x07,0x6c,0x00,0x01,0x04,0x92,0xfe,0x5c,0x00,0x01,0x03,0x7f,0x07,0x6c,0x00,0x01,0x03,0x7f,0xfe,0x5c,0x00,0x01,0x04,0x02,0x07,0x6c, +0x00,0x01,0x04,0x02,0xfe,0x5c,0x00,0x01,0x02,0x38,0x07,0x6c,0x00,0x01,0x03,0x56,0x07,0x6c,0x00,0x01,0x03,0x56,0xfe,0x5c,0x00,0x01,0x02,0xf8,0x07,0x6c,0x00,0x01,0x02,0xf8,0xfe,0x5c,0x00,0x01,0x07,0x27,0x07,0x6c,0x00,0x01,0x07,0x27,0xfe,0x5c,0x00,0x01,0x07,0x77,0x07,0x6c,0x00,0x01,0x07,0x77,0xfe,0x5c,0x00,0x01,0x07,0xdb, +0x07,0x6c,0x00,0x01,0x07,0xdb,0xfe,0x5c,0x00,0x01,0x04,0x94,0x07,0x6c,0x00,0x01,0x04,0x94,0xfe,0x5c,0x00,0x01,0x04,0x3e,0x07,0x6c,0x00,0x01,0x04,0x3e,0xfe,0x5c,0x00,0x01,0x05,0xc8,0x07,0x6c,0x00,0x01,0x05,0xc8,0xfe,0x5c,0x00,0x01,0x03,0xc2,0x07,0x6c,0x00,0x01,0x03,0xc2,0xfe,0x5c,0x00,0x01,0x06,0x1c,0x07,0x6c,0x00,0x01, +0x06,0x1c,0xfe,0x5c,0x00,0x01,0x06,0x04,0x07,0x6c,0x00,0x01,0x06,0x04,0xfe,0x5c,0x00,0x01,0x07,0x1a,0x07,0x6c,0x00,0x01,0x07,0x1a,0xfe,0x5c,0x00,0x01,0x04,0xf0,0x07,0x6c,0x00,0x01,0x04,0xf0,0xfe,0x5c,0x00,0x01,0x04,0x0b,0x07,0x6c,0x00,0x01,0x04,0x0b,0xfe,0x5c,0x00,0x01,0x04,0xc9,0x07,0x6c,0x00,0x01,0x04,0xc9,0xfe,0x5c, +0x00,0x01,0x03,0xf6,0x07,0x6c,0x00,0x01,0x03,0xf6,0xfe,0x5c,0x00,0x01,0x04,0xff,0x07,0x6c,0x00,0x01,0x04,0xff,0xfe,0x5c,0x00,0x01,0x04,0xdc,0x07,0x6c,0x00,0x01,0x04,0xdc,0xfe,0x5c,0x00,0x01,0x03,0xac,0x07,0x6c,0x00,0x01,0x03,0xac,0xfe,0x5c,0x00,0x01,0x03,0x37,0x07,0x6c,0x00,0x01,0x03,0x37,0xfe,0x5c,0x00,0x01,0x04,0x3f, +0x07,0x6c,0x00,0x01,0x04,0x3f,0xfe,0x5c,0x00,0x01,0x06,0xae,0x07,0x6c,0x00,0x01,0x06,0xae,0xfe,0x5c,0x00,0x01,0x02,0x46,0x07,0x6c,0x00,0x01,0x02,0x46,0xfe,0x5c,0x00,0x01,0x02,0x08,0x07,0x6c,0x00,0x01,0x02,0x08,0xfe,0x5c,0x00,0x01,0x04,0x24,0x07,0x6c,0x00,0x01,0x04,0x24,0xfe,0x5c,0x00,0x01,0x04,0xae,0x07,0x6c,0x00,0x01, +0x04,0xae,0xfe,0x5c,0x00,0x01,0x05,0xfc,0x07,0x6c,0x00,0x01,0x05,0xfc,0xfe,0x5c,0x00,0x01,0x03,0xf9,0x07,0x6c,0x00,0x01,0x03,0xf9,0xfe,0x5c,0x00,0x01,0x01,0xe3,0x07,0x6c,0x00,0x01,0x01,0xe3,0xfe,0x5c,0x00,0x01,0x06,0xed,0x07,0x6c,0x00,0x01,0x06,0xed,0xfe,0x5c,0x00,0x01,0x04,0x91,0x07,0x6c,0x00,0x01,0x04,0x91,0xfe,0x5c, +0x00,0x01,0x03,0xad,0x07,0x6c,0x00,0x01,0x03,0xad,0xfe,0x5c,0x00,0x01,0x03,0x4b,0x07,0x6c,0x00,0x01,0x03,0x4b,0xfe,0x5c,0x00,0x01,0x04,0x06,0x07,0x6c,0x00,0x01,0x04,0x06,0xfe,0x5c,0x00,0x01,0x04,0x71,0x07,0x6c,0x00,0x01,0x04,0x71,0xfe,0x5c,0x00,0x01,0x04,0xfe,0x07,0x6c,0x00,0x01,0x04,0xfe,0xfe,0x5c,0x00,0x01,0x04,0x84, +0x07,0x6c,0x00,0x01,0x04,0x84,0xfe,0x5c,0x00,0x01,0x03,0x3b,0x07,0x6c,0x00,0x01,0x03,0x3b,0xfe,0x5c,0x00,0x01,0x05,0xe0,0x07,0x6c,0x00,0x01,0x05,0xe0,0xfe,0x5c,0x00,0x01,0x02,0xd1,0x07,0x6c,0x00,0x01,0x02,0xd1,0xfe,0x5c,0x00,0x01,0x04,0xd0,0x07,0x6c,0x00,0x01,0x04,0xd0,0xfe,0x5c,0x00,0x01,0x04,0xc1,0x07,0x6c,0x00,0x01, +0x04,0xc1,0xfe,0x5c,0x00,0x01,0x05,0x7f,0x07,0x6c,0x00,0x01,0x05,0x7f,0xfe,0x5c,0x00,0x01,0x05,0x07,0x07,0x6c,0x00,0x01,0x05,0x07,0xfe,0x5c,0x00,0x01,0x06,0x01,0x07,0x6c,0x00,0x01,0x06,0x01,0xfe,0x5c,0x00,0x01,0x02,0xc8,0x07,0x6c,0x00,0x01,0x02,0xc8,0xfe,0x5c,0x00,0x01,0x04,0x6c,0x07,0x6c,0x00,0x01,0x04,0x6c,0xfe,0x5c, +0x00,0x01,0x03,0x9c,0x07,0x6c,0x00,0x01,0x03,0x9c,0xfe,0x5c,0x00,0x01,0x03,0xc4,0x07,0x6c,0x00,0x01,0x03,0xc4,0xfe,0x5c,0x00,0x01,0x02,0x4a,0x07,0x6c,0x00,0x01,0x02,0x4a,0xfe,0x5c,0x00,0x01,0x04,0x19,0x07,0x6c,0x00,0x01,0x04,0x19,0xfe,0x5c,0x00,0x01,0x04,0x12,0x07,0x6c,0x00,0x01,0x04,0x12,0xfe,0x5c,0x00,0x01,0x02,0xb6, +0x07,0x6c,0x00,0x01,0x02,0xb6,0xfe,0x5c,0x00,0x01,0x04,0x8d,0x07,0x6c,0x00,0x01,0x04,0x8d,0xfe,0x5c,0x00,0x01,0x05,0x98,0x07,0x6c,0x00,0x01,0x05,0x98,0xfe,0x5c,0x00,0x01,0xff,0x9c,0x05,0x14,0x00,0x01,0x03,0x34,0x05,0x9a,0x00,0x01,0x03,0xf6,0x04,0xfa,0x00,0x01,0x04,0x81,0x05,0x79,0x00,0x01,0x04,0xb0,0x04,0xfa,0x00,0x01, +0x03,0x70,0x05,0x9a,0x00,0x01,0x04,0xd4,0x05,0x69,0x00,0x01,0x05,0x0e,0x05,0x9a,0x00,0x01,0x01,0xfe,0x05,0x9a,0x00,0x01,0x02,0x3b,0x05,0x9a,0x00,0x01,0x04,0x04,0x05,0x9a,0x00,0x01,0x01,0x42,0x05,0x9a,0x00,0x01,0x06,0xae,0x05,0x9a,0x00,0x01,0x05,0x5c,0x05,0x9a,0x00,0x01,0x04,0xd8,0x05,0x28,0x00,0x01,0x03,0xdb,0x04,0xfa, +0x00,0x01,0x04,0x29,0x04,0xfa,0x00,0x01,0x03,0xa0,0x05,0x94,0x00,0x01,0x04,0x06,0x05,0xa3,0x00,0x01,0x04,0xda,0x05,0x9f,0x00,0x01,0x04,0xa9,0x05,0x9a,0x00,0x01,0x07,0x58,0x05,0x9a,0x00,0x01,0x03,0x20,0x03,0xf1,0x00,0x01,0x04,0x14,0x03,0xb6,0x00,0x01,0x03,0x59,0x03,0xf1,0x00,0x01,0x04,0x04,0x05,0xf2,0x00,0x01,0x03,0x71, +0x03,0xcd,0x00,0x01,0x02,0x9e,0x06,0x02,0x00,0x01,0x04,0x0d,0x04,0x04,0x00,0x01,0x03,0xd5,0x03,0xaa,0x00,0x01,0x01,0x59,0x04,0x01,0x00,0x01,0x01,0x50,0x04,0x01,0x00,0x01,0x03,0xb4,0x04,0x0b,0x00,0x01,0x01,0x67,0x05,0xf2,0x00,0x01,0x06,0x44,0x03,0x78,0x00,0x01,0x03,0xe7,0x03,0x78,0x00,0x01,0x03,0xde,0x03,0x84,0x00,0x01, +0x04,0x14,0x03,0x87,0x00,0x01,0x04,0x04,0x04,0x03,0x00,0x01,0x02,0xc1,0x04,0x02,0x00,0x01,0x02,0xe0,0x03,0xf3,0x00,0x01,0x02,0x70,0x04,0x03,0x00,0x01,0x03,0xd4,0x03,0xfc,0x00,0x01,0x03,0xb3,0x04,0x00,0x00,0x01,0x05,0xa6,0x04,0x00,0x00,0x01,0x03,0x6f,0x04,0x00,0x00,0x01,0x03,0xb4,0x04,0x0c,0x00,0x01,0x03,0x34,0x04,0x00, +0x00,0x01,0x02,0x94,0xff,0xce,0x00,0x01,0x02,0xde,0xff,0xf1,0x00,0x01,0x02,0x52,0xff,0xce,0x00,0x01,0x02,0xfe,0xff,0xce,0x00,0x01,0x03,0x04,0xff,0xf1,0x00,0x01,0x02,0x64,0xff,0xce,0x00,0x01,0x02,0x20,0xff,0xf1,0x00,0x01,0x02,0xbf,0xff,0xf1,0x00,0x01,0x02,0x3a,0xff,0xf1,0x00,0x01,0x02,0x2b,0xff,0xf1,0x00,0x01,0x02,0x44, +0xfe,0x3e,0x00,0x01,0x00,0xfa,0x00,0x14,0x00,0x01,0x01,0xfd,0xff,0xce,0x00,0x01,0x00,0xfa,0x00,0x00,0x00,0x01,0x02,0x43,0xff,0xce,0x00,0x01,0x00,0xf6,0x00,0x00,0x00,0x01,0x01,0xa8,0xff,0xf1,0x00,0x01,0x01,0xbf,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0xf6,0x00,0x01,0x04,0x65,0x00,0x00,0x00,0x01,0x02,0x58,0x00,0x00,0x00,0x01, +0x03,0x5c,0xff,0xf1,0x00,0x01,0x00,0xe6,0x00,0x00,0x00,0x01,0x03,0xa7,0x00,0x00,0x00,0x01,0x04,0x4c,0x00,0x00,0x00,0x01,0x00,0xc8,0x00,0x00,0x00,0x01,0x03,0xca,0x00,0x00,0x00,0x01,0x02,0xda,0x00,0x00,0x00,0x01,0x05,0xd2,0x00,0x00,0x00,0x01,0x04,0x88,0x00,0x00,0x00,0x01,0x03,0x3e,0xff,0xf1,0x00,0x01,0x03,0x70,0xff,0x4c, +0x00,0x01,0x04,0x10,0x00,0x00,0x00,0x01,0x02,0x62,0x00,0x00,0x00,0x01,0x01,0xcc,0x00,0x00,0x00,0x01,0x05,0x19,0x00,0x00,0x00,0x01,0x01,0xf4,0x00,0x00,0x00,0x01,0x03,0x8e,0x00,0x00,0x00,0x01,0x02,0xc6,0x00,0x00,0x00,0x01,0x02,0x94,0x00,0x00,0x00,0x01,0x03,0x66,0x00,0x00,0x00,0x01,0x02,0xd2,0xfe,0x70,0x00,0x01,0x03,0x5c, +0x00,0x00,0x00,0x01,0x00,0x32,0xfe,0x5c,0x00,0x01,0x03,0x16,0x00,0x00,0x00,0x01,0x05,0xaa,0x00,0x00,0x00,0x01,0x00,0xaa,0xfe,0x20,0x00,0x01,0x03,0x70,0xfe,0x20,0x00,0x01,0x01,0xb8,0xff,0xf1,0x00,0x01,0x03,0x3e,0x00,0x00,0x00,0x01,0x01,0xa4,0x00,0x00,0x00,0x01,0x03,0xde,0x00,0x00,0x00,0x01,0x02,0xd0,0x00,0x00,0x00,0x01, +0x00,0xdc,0xfe,0x48,0x00,0x01,0x02,0xf8,0xfe,0x70,0x00,0x01,0x04,0x6a,0x00,0x00,0x00,0x01,0x02,0x44,0xfe,0x70,0x00,0x01,0x05,0x80,0x00,0x27,0x00,0x01,0x00,0xf1,0xff,0x0e,0x00,0x01,0x06,0x4a,0x00,0x00,0x00,0x01,0x05,0xf0,0x00,0x00,0x00,0x01,0x00,0xdc,0x00,0x00,0x00,0x01,0x02,0xf0,0x00,0x1b,0x00,0x01,0x02,0x9a,0x00,0x09, +0x00,0x01,0x00,0xaa,0xfe,0x2a,0x00,0x01,0x02,0x3a,0xfe,0x70,0x00,0x01,0x01,0xcc,0xfe,0x70,0x00,0x01,0x04,0x4c,0xfe,0x84,0x00,0x01,0x02,0xe4,0xfe,0x84,0x00,0x01,0x02,0x76,0xfe,0x84,0x00,0x01,0x01,0xb8,0xfe,0x5c,0x00,0x01,0x02,0xeb,0x00,0x03,0x00,0x01,0x02,0x4e,0xfe,0x5c,0x00,0x01,0x03,0xb2,0x00,0x00,0x00,0x01,0x02,0x76, +0xfe,0x99,0x00,0x01,0x00,0xaa,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x84,0x00,0x01,0x01,0x18,0xfe,0x70,0x00,0x01,0x03,0xd6,0xfe,0x5c,0x00,0x01,0x02,0xa3,0xfe,0x5c,0x00,0x01,0x03,0x66,0xfe,0x84,0x00,0x01,0x03,0x20,0x00,0x00,0x00,0x01,0x03,0x2e,0x00,0x3f,0x00,0x01,0x00,0xfd,0xfe,0xee,0x00,0x01,0x00,0xdc,0xfe,0xdc,0x00,0x01, +0x02,0xed,0xfe,0xec,0x00,0x01,0x02,0x4d,0xfe,0xfb,0x00,0x01,0x02,0xdb,0xfe,0xec,0x00,0x01,0x02,0x44,0xfe,0xf2,0x00,0x01,0x02,0xf6,0xfe,0xf5,0x00,0x01,0x02,0x3b,0xfe,0xf2,0x00,0x01,0x02,0xab,0xfe,0xfb,0x00,0x01,0x02,0x99,0xfe,0xf2,0x00,0x01,0x02,0x0f,0xfe,0xe5,0x00,0x01,0x01,0x00,0xfe,0x67,0x00,0x01,0x01,0x86,0xfe,0x98, +0x00,0x01,0x01,0x18,0xfe,0x98,0x00,0x01,0x02,0x17,0xfe,0x5c,0x00,0x01,0x02,0x08,0xfe,0xd4,0x00,0x01,0x02,0x48,0xfe,0xd4,0x00,0x01,0x02,0x2a,0xff,0x24,0x00,0x01,0x02,0x63,0xff,0x24,0x00,0x01,0x02,0x26,0xfe,0x5c,0x00,0x01,0x02,0x72,0xfe,0xd4,0x00,0x01,0x02,0x60,0xff,0x24,0x00,0x01,0x02,0x3d,0xff,0x24,0x00,0x01,0x02,0x3e, +0xfe,0x92,0x00,0x01,0x02,0x9e,0xfe,0x48,0x00,0x01,0x02,0x35,0xfe,0x48,0x00,0x01,0x02,0x2a,0xfe,0xd4,0x00,0x01,0x02,0x4e,0xfe,0xd4,0x00,0x01,0x02,0x2a,0xfe,0x5c,0x00,0x01,0x02,0xe4,0xfe,0xa2,0x00,0x01,0x02,0x76,0xfe,0xa2,0x00,0x01,0x01,0x22,0xfe,0xd4,0x00,0x01,0x00,0xf0,0xfe,0xd4,0x00,0x01,0x03,0x7a,0x00,0x00,0x00,0x01, +0x04,0x3f,0x00,0x00,0x00,0x01,0x02,0x23,0xff,0x24,0x00,0x01,0x00,0xd2,0xfe,0xd4,0x00,0x01,0x00,0xc8,0xfe,0xd4,0x00,0x01,0x02,0x1c,0xff,0x24,0x00,0x01,0x02,0x17,0xfe,0x48,0x00,0x01,0x00,0xe6,0xfe,0x48,0x00,0x01,0x05,0xbe,0x00,0x00,0x00,0x01,0x02,0xf3,0xff,0x24,0x00,0x01,0x02,0x44,0xfe,0x48,0x00,0x01,0x00,0xb4,0xfe,0x20, +0x00,0x01,0x02,0x84,0xff,0x24,0x00,0x01,0x01,0x9e,0xff,0x24,0x00,0x01,0x01,0xf9,0xfe,0xd4,0x00,0x01,0x01,0x9a,0xfe,0xd4,0x00,0x01,0x02,0x2b,0xfe,0xd4,0x00,0x01,0x01,0xa9,0xfe,0xd4,0x00,0x01,0x01,0xf4,0xfe,0xd4,0x00,0x01,0x01,0x3b,0xfe,0xd4,0x00,0x01,0x01,0xf0,0xff,0x24,0x00,0x01,0x01,0x82,0xff,0x24,0x00,0x01,0x02,0x12, +0xfe,0x48,0x00,0x01,0x01,0x54,0xfe,0x48,0x00,0x01,0x02,0xb2,0xfe,0xac,0x00,0x01,0x02,0x1c,0xfe,0xac,0x00,0x01,0x02,0xb4,0xfe,0xd4,0x00,0x01,0x02,0x4b,0xfe,0xd4,0x00,0x01,0x04,0x1a,0x00,0x00,0x00,0x01,0x02,0x26,0xfe,0xd4,0x00,0x01,0x01,0xae,0xfe,0xd4,0x00,0x01,0x02,0x3a,0xff,0x24,0x00,0x01,0x01,0xc2,0xff,0x24,0x00,0x01, +0x02,0x9c,0x00,0x00,0x00,0x01,0x02,0x0d,0x00,0x00,0x00,0x01,0x01,0xd7,0xff,0xf1,0x00,0x01,0x02,0x7d,0xff,0xf1,0x00,0x01,0x03,0x54,0x00,0x00,0x00,0x01,0x03,0x74,0x00,0x00,0x00,0x01,0x02,0xe4,0xfe,0x70,0x00,0x01,0x01,0x4a,0x00,0x00,0x00,0x01,0x02,0xca,0x00,0x00,0x00,0x01,0x00,0x5c,0xfe,0xb6,0x00,0x01,0x05,0x00,0x00,0x00, +0x00,0x01,0x01,0x54,0xff,0xf1,0x00,0x01,0x03,0x52,0xfe,0x70,0x00,0x01,0x06,0x72,0x00,0x00,0x00,0x01,0x05,0x0a,0x00,0x00,0x00,0x01,0x01,0x25,0x00,0x00,0x00,0x01,0x00,0xb9,0xfe,0x2a,0x00,0x01,0x03,0x98,0xff,0x74,0x00,0x01,0x02,0x08,0x00,0x00,0x00,0x01,0x01,0xe4,0xfe,0x2a,0x00,0x01,0x01,0x78,0xfe,0xab,0x00,0x01,0x02,0xe8, +0xfe,0x9b,0x00,0x01,0x03,0x39,0xff,0xf1,0x00,0x01,0x02,0xe9,0xff,0xfa,0x00,0x01,0x02,0x58,0xfe,0x3a,0x00,0x01,0x03,0x66,0xfe,0x2f,0x00,0x01,0x01,0x90,0x00,0x00,0x00,0x01,0x01,0xae,0x00,0x00,0x00,0x01,0x08,0xde,0x00,0x00,0x00,0x01,0x08,0x20,0x00,0x00,0x00,0x01,0x07,0x30,0x00,0x00,0x00,0x01,0x04,0xce,0x00,0x00,0x00,0x01, +0x06,0x86,0x00,0x00,0x00,0x01,0x05,0xfa,0xfe,0x5c,0x00,0x01,0x04,0xb0,0xfe,0x5c,0x00,0x01,0x05,0xa2,0x00,0x00,0x00,0x01,0x05,0x14,0x00,0x00,0x00,0x01,0x02,0xda,0xfe,0x84,0x00,0x01,0x02,0x3a,0xfe,0x84,0x00,0x01,0x01,0xcc,0xfe,0x48,0x00,0x01,0x06,0x18,0x00,0x00,0x00,0x01,0x00,0xbe,0xfe,0x2a,0x00,0x01,0x04,0x88,0xfe,0x2a, +0x00,0x01,0x02,0x66,0x00,0x00,0x00,0x01,0x03,0x70,0x00,0x00,0x00,0x01,0x01,0xa5,0xff,0xf7,0x00,0x01,0x04,0x4c,0xfe,0x2a,0x00,0x01,0x02,0x22,0x00,0x00,0x00,0x01,0x01,0xb6,0x00,0x00,0x00,0x01,0x02,0xc2,0x00,0x00,0x00,0x01,0x00,0x8c,0xfe,0x75,0x00,0x01,0x01,0xd8,0xfe,0x5c,0x00,0x01,0x01,0xd4,0x00,0x00,0x00,0x01,0x03,0x47, +0xfe,0x2a,0x00,0x01,0x01,0x36,0x00,0x00,0x00,0x01,0x01,0x48,0x00,0x00,0x00,0x01,0x03,0x0c,0xfe,0x48,0x00,0x01,0x05,0xa4,0x00,0x00,0x00,0x01,0x05,0xa4,0xfe,0x2a,0x00,0x01,0x04,0xff,0xfe,0x35,0x00,0x01,0x04,0x3d,0xfe,0x2a,0x00,0x01,0x04,0x9c,0x00,0x00,0x00,0x01,0x01,0x91,0x00,0x00,0x00,0x01,0x01,0x88,0x00,0x00,0x00,0x01, +0x01,0x84,0x00,0x09,0x00,0x01,0x02,0xde,0x00,0x09,0x00,0x01,0x01,0x8d,0xfe,0xe0,0x00,0x01,0x00,0x91,0xfe,0x7e,0x00,0x01,0x00,0x8a,0xfe,0x63,0x00,0x01,0x00,0xa4,0xfe,0x5c,0x00,0x01,0x01,0x5c,0xfe,0xfb,0x00,0x01,0x02,0x76,0x00,0x00,0x00,0x01,0x01,0x6c,0x00,0x09,0x00,0x01,0x03,0x52,0xff,0x06,0x00,0x01,0x01,0xc2,0xfe,0x41, +0x00,0x01,0x01,0xc2,0xfe,0x4a,0x00,0x01,0x01,0x5b,0x00,0x00,0x00,0x01,0x01,0x47,0x00,0x00,0x00,0x01,0x02,0x7d,0xfe,0x48,0x00,0x01,0x02,0xa5,0xff,0xfa,0x00,0x01,0x00,0x43,0xfe,0x41,0x00,0x01,0x02,0xbc,0xfe,0x16,0x00,0x01,0x03,0x76,0xfe,0x2a,0x00,0x01,0x01,0x64,0x00,0x00,0x00,0x01,0x06,0x5e,0x00,0x00,0x00,0x01,0x05,0xb4, +0xfe,0x36,0x00,0x01,0x02,0x14,0xfe,0x4a,0x00,0x01,0x04,0xb0,0x00,0x00,0x00,0x01,0x04,0xb0,0xfe,0x48,0x00,0x01,0x03,0x02,0x00,0x00,0x00,0x01,0x01,0xf4,0xfe,0x5c,0x00,0x01,0x04,0x9c,0xfe,0x5c,0x00,0x01,0x03,0x84,0xfe,0x2a,0x00,0x01,0x05,0x82,0x00,0x00,0x00,0x01,0x03,0x7a,0xfe,0x20,0x00,0x01,0x02,0x1f,0xfe,0xd4,0x00,0x01, +0x02,0x9e,0xfe,0x2a,0x00,0x01,0x02,0xd0,0x01,0xf6,0x00,0x01,0x06,0x1a,0x00,0x00,0x00,0x01,0x01,0x22,0x00,0x00,0x00,0x01,0x02,0x6c,0x00,0x00,0x00,0x01,0x02,0xd0,0xfe,0xa2,0x00,0x01,0x03,0x98,0xfe,0xa2,0x00,0x01,0x02,0xee,0xfe,0xa2,0x00,0x01,0x00,0xd2,0xfe,0xa2,0x00,0x01,0x05,0xdc,0xfe,0xa2,0x00,0x01,0x03,0x84,0xfe,0xa2, +0x00,0x01,0x02,0x80,0xfe,0xa2,0x00,0x01,0x03,0xa2,0xfe,0xa2,0x00,0x01,0x04,0x2e,0xfe,0xa2,0x00,0x01,0x04,0x38,0xfe,0xa2,0x00,0x01,0x03,0xb6,0xfe,0xc0,0x00,0x01,0x03,0x52,0xfe,0xa2,0x00,0x01,0x02,0x7f,0x00,0x46,0x00,0x01,0x03,0xfc,0xfe,0xa2,0x00,0x01,0x04,0x21,0x00,0x00,0x00,0x01,0x00,0xe6,0x00,0x8c,0x00,0x01,0x04,0x42, +0x00,0x00,0x00,0x01,0x05,0xbe,0xfe,0xa2,0x00,0x01,0x04,0xba,0xfe,0xa2,0x00,0x01,0x00,0xc8,0xfe,0x48,0x00,0x01,0x03,0xa2,0x00,0x0f,0x00,0x01,0x00,0x8c,0x00,0x1e,0x00,0x01,0xff,0x6a,0x00,0x1e,0x00,0x01,0x03,0x4a,0x00,0x50,0x00,0x01,0x02,0xd5,0x00,0x1a,0x00,0x01,0x03,0xbc,0x00,0x09,0x00,0x01,0x03,0xbc,0x00,0x00,0x00,0x01, +0x01,0x40,0x00,0x00,0x00,0x01,0x03,0x3a,0xfe,0x93,0x00,0x01,0x03,0x48,0xfe,0xc0,0x00,0x01,0x03,0xa8,0x00,0x00,0x00,0x01,0x00,0x83,0xfe,0x89,0x00,0x01,0x03,0x5a,0x00,0x00,0x00,0x01,0x05,0xfc,0x00,0x00,0x00,0x01,0x03,0xa2,0x00,0x09,0x00,0x01,0x03,0x5c,0x00,0x3f,0x00,0x01,0x03,0xb3,0xfe,0x42,0x00,0x01,0x00,0xf8,0x00,0x00, +0x00,0x01,0x02,0x60,0x00,0x50,0x00,0x01,0x01,0xea,0x00,0x00,0x00,0x01,0x04,0x27,0x00,0x09,0x00,0x01,0x04,0x27,0x00,0x00,0x00,0x01,0x03,0x07,0xff,0xf7,0x00,0x01,0x03,0x07,0x00,0x00,0x00,0x01,0x02,0x58,0x06,0xea,0x00,0x01,0xff,0x6f,0x06,0xea,0x00,0x01,0x00,0xaa,0x06,0x40,0x00,0x01,0xff,0x7e,0x06,0x40,0x00,0x01,0x05,0x29, +0x08,0x34,0x00,0x01,0x00,0x00,0x08,0x34,0x00,0x01,0x04,0x96,0x08,0x34,0x00,0x01,0x04,0xf4,0x08,0x34,0x00,0x01,0x05,0x9c,0x08,0x34,0x00,0x01,0x03,0xe8,0x08,0x34,0x00,0x01,0x05,0x7d,0x08,0x34,0x00,0x01,0x05,0xae,0x08,0x34,0x00,0x01,0x02,0x21,0x08,0x34,0x00,0x01,0x02,0xdb,0x08,0x34,0x00,0x01,0x04,0xa4,0x08,0x34,0x00,0x01, +0x03,0xc4,0x08,0x34,0x00,0x01,0x07,0x2f,0x08,0x34,0x00,0x01,0x05,0xfc,0x08,0x34,0x00,0x01,0x06,0x08,0x08,0x34,0x00,0x01,0x04,0x7b,0x08,0x34,0x00,0x01,0x04,0xc9,0x08,0x34,0x00,0x01,0x04,0x40,0x08,0x34,0x00,0x01,0x04,0x31,0x08,0x34,0x00,0x01,0x05,0x7f,0x08,0x34,0x00,0x01,0x04,0xf8,0x08,0x34,0x00,0x01,0x07,0x79,0x08,0x34, +0x00,0x01,0x04,0xb8,0x08,0x34,0x00,0x01,0x04,0x6c,0x08,0x34,0x00,0x01,0x04,0x90,0x08,0x34,0x00,0x01,0x04,0x12,0x08,0x34,0x00,0x01,0x04,0xb4,0x08,0x34,0x00,0x01,0x03,0xb2,0x08,0x34,0x00,0x01,0x04,0xb6,0x08,0x34,0x00,0x01,0x02,0x81,0x08,0x34,0x00,0x01,0x04,0x87,0x08,0x34,0x00,0x01,0x03,0xfa,0x08,0x34,0x00,0x01,0x06,0xe4, +0x08,0x34,0x00,0x01,0x04,0xb0,0x08,0x34,0x00,0x01,0x02,0xc8,0x08,0x34,0x00,0x01,0x03,0x65,0x08,0x34,0x00,0x01,0x02,0xb6,0x08,0x34,0x00,0x01,0x03,0xd5,0x08,0x34,0x00,0x01,0x05,0xc8,0x08,0x34,0x00,0x01,0x03,0xac,0x08,0x34,0x00,0x01,0x03,0xdf,0x08,0x34,0x00,0x01,0x03,0x9e,0x08,0x34,0x00,0x01,0x04,0x5a,0x08,0x34,0x00,0x01, +0x06,0xe2,0x08,0x34,0x00,0x01,0x06,0xa8,0x08,0x34,0x00,0x01,0x07,0x72,0x08,0x34,0x00,0x01,0x07,0x6c,0x08,0x34,0x00,0x01,0x02,0x31,0x08,0x34,0x00,0x01,0x04,0x79,0x08,0x34,0x00,0x01,0x05,0x65,0x08,0x34,0x00,0x01,0x02,0x75,0x08,0x34,0x00,0x01,0x02,0x85,0x08,0x34,0x00,0x01,0x03,0x85,0x08,0x34,0x00,0x01,0x04,0xfc,0x08,0x34, +0x00,0x01,0x03,0xf6,0x08,0x34,0x00,0x01,0x04,0xd9,0x08,0x34,0x00,0x01,0x01,0xee,0x08,0x34,0x00,0x01,0x06,0x1a,0x08,0x34,0x00,0x01,0x04,0xc7,0x08,0x34,0x00,0x01,0x05,0xc4,0x08,0x34,0x00,0x01,0x06,0x8e,0x08,0x34,0x00,0x01,0x04,0xe8,0x08,0x34,0x00,0x01,0x04,0x93,0x08,0x34,0x00,0x01,0x04,0x9e,0x08,0x34,0x00,0x01,0x04,0xf6, +0x08,0x34,0x00,0x01,0x03,0xba,0x08,0x34,0x00,0x01,0x05,0xee,0x08,0x34,0x00,0x01,0x04,0x94,0x08,0x34,0x00,0x01,0x04,0xbc,0x08,0x34,0x00,0x01,0x04,0x0e,0x08,0x34,0x00,0x01,0x04,0x54,0x08,0x34,0x00,0x01,0x05,0x89,0x08,0x34,0x00,0x01,0x06,0xfe,0x08,0x34,0x00,0x01,0x02,0x4e,0x08,0x34,0x00,0x01,0x02,0x3a,0x08,0x34,0x00,0x01, +0x03,0xfc,0x08,0x34,0x00,0x01,0x07,0x23,0x08,0x34,0x00,0x01,0x07,0xc0,0x08,0x34,0x00,0x01,0x06,0x52,0x08,0x34,0x00,0x01,0x04,0xcf,0x08,0x34,0x00,0x01,0x04,0x9c,0x08,0x34,0x00,0x01,0x04,0x21,0x08,0x34,0x00,0x01,0x02,0x5e,0x08,0x34,0x00,0x01,0x02,0xb8,0x08,0x34,0x00,0x01,0x04,0x33,0x08,0x34,0x00,0x01,0x06,0x0a,0x08,0x34, +0x00,0x01,0x05,0xb2,0x08,0x34,0x00,0x01,0x04,0x8e,0x08,0x34,0x00,0x01,0x04,0x23,0x08,0x34,0x00,0x01,0x04,0xe2,0x08,0x34,0x00,0x01,0x03,0x0a,0x08,0x34,0x00,0x01,0x03,0x27,0x08,0x34,0x00,0x01,0x04,0x5e,0x08,0x34,0x00,0x01,0x09,0xe8,0x08,0x34,0x00,0x01,0x09,0x1c,0x08,0x34,0x00,0x01,0x08,0x33,0x08,0x34,0x00,0x01,0x06,0xd9, +0x08,0x34,0x00,0x01,0x05,0xc2,0x08,0x34,0x00,0x01,0x04,0x01,0x08,0x34,0x00,0x01,0x08,0x94,0x08,0x34,0x00,0x01,0x07,0xbe,0x08,0x34,0x00,0x01,0x06,0x77,0x08,0x34,0x00,0x01,0x04,0x0a,0x08,0x34,0x00,0x01,0x06,0xa0,0x08,0x34,0x00,0x01,0x03,0x89,0x08,0x34,0x00,0x01,0x07,0xfe,0x08,0x34,0x00,0x01,0x05,0x83,0x08,0x34,0x00,0x01, +0x04,0x08,0x08,0x34,0x00,0x01,0x03,0x70,0x08,0x34,0x00,0x01,0x05,0xdf,0x08,0x34,0x00,0x01,0x04,0x89,0x08,0x34,0x00,0x01,0x03,0x4e,0x08,0x34,0x00,0x01,0x04,0x68,0x08,0x34,0x00,0x01,0x04,0x3c,0x08,0x34,0x00,0x01,0x03,0xa8,0x08,0x34,0x00,0x01,0x02,0x18,0x08,0x34,0x00,0x01,0x02,0x90,0x08,0x34,0x00,0x01,0x02,0x3e,0x08,0x34, +0x00,0x01,0x03,0x02,0x08,0x34,0x00,0x01,0x04,0xd3,0x08,0x34,0x00,0x01,0x04,0x72,0x08,0x34,0x00,0x01,0x05,0x96,0x08,0x34,0x00,0x01,0x05,0x1a,0x08,0x34,0x00,0x01,0x02,0xae,0x08,0x34,0x00,0x01,0x03,0xa2,0x08,0x34,0x00,0x01,0x03,0x2f,0x08,0x34,0x00,0x01,0x01,0xfa,0x08,0x34,0x00,0x01,0x02,0x10,0x08,0x34,0x00,0x01,0x02,0x44, +0x08,0x34,0x00,0x01,0x04,0xcb,0x08,0x34,0x00,0x01,0x04,0xc2,0x08,0x34,0x00,0x01,0x04,0x77,0x08,0x34,0x00,0x01,0x03,0x56,0x08,0x34,0x00,0x01,0x04,0x18,0x08,0x34,0x00,0x01,0x02,0xec,0x08,0x34,0x00,0x01,0x04,0x62,0x08,0x34,0x00,0x01,0x03,0x14,0x08,0x34,0x00,0x01,0x07,0x54,0x08,0x34,0x00,0x01,0x07,0x98,0x08,0x34,0x00,0x01, +0x07,0xcf,0x08,0x34,0x00,0x01,0x03,0xcf,0x08,0x34,0x00,0x01,0x05,0xbe,0x08,0x34,0x00,0x01,0x06,0x58,0x08,0x34,0x00,0x01,0x03,0xf4,0x08,0x34,0x00,0x01,0x05,0x27,0x08,0x34,0x00,0x01,0x02,0x60,0x08,0x34,0x00,0x01,0x05,0x0e,0x08,0x34,0x00,0x01,0x07,0x7a,0x08,0x34,0x00,0x01,0x04,0x16,0x08,0x34,0x00,0x01,0x03,0xb5,0x08,0x34, +0x00,0x01,0x03,0xb1,0x08,0x34,0x00,0x01,0x04,0x9f,0x08,0x34,0x00,0x01,0x07,0x3d,0x08,0x34,0x00,0x01,0x02,0x22,0x08,0x34,0x00,0x01,0x04,0x46,0x08,0x34,0x00,0x01,0x03,0x76,0x08,0x34,0x00,0x01,0x03,0x81,0x08,0x34,0x00,0x01,0x03,0x91,0x08,0x34,0x00,0x01,0x05,0xe0,0x08,0x34,0x00,0x01,0x04,0xc1,0x08,0x34,0x00,0x01,0x02,0xf4, +0x08,0x34,0x00,0x01,0x05,0x07,0x08,0x34,0x00,0x01,0x06,0x01,0x08,0x34,0x00,0x01,0x03,0x9c,0x08,0x34,0x00,0x01,0x02,0x4a,0x08,0x34,0x00,0x01,0x04,0x19,0x08,0x34,0x00,0x01,0x04,0x8d,0x08,0x34,0x00,0x01,0x05,0x98,0x08,0x34,0x00,0x01,0x01,0x90,0x01,0xfa,0x00,0x01,0x00,0x0c,0x01,0x0e,0x00,0x40,0x00,0x00,0x2b,0xce,0x00,0x00, +0x2b,0xd4,0x00,0x00,0x2b,0xd4,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xe0,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xe6,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xec,0x00,0x00,0x2b,0xec,0x00,0x00,0x2b,0xf2,0x00,0x00,0x2b,0xda,0x00,0x00, +0x2b,0xda,0x00,0x00,0x2b,0xf8,0x00,0x00,0x2b,0xfe,0x00,0x00,0x2c,0x04,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2b,0xda,0x00,0x00,0x2c,0x10,0x00,0x00,0x2b,0xe0,0x00,0x00,0x2c,0x16,0x00,0x00,0x2b,0xda,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2c,0x1c,0x00,0x00,0x2c,0x22,0x00,0x00, +0x2c,0x28,0x00,0x00,0x2c,0x2e,0x00,0x00,0x2c,0x2e,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2c,0x0a,0x00,0x00, +0x2c,0x3a,0x00,0x00,0x2c,0x40,0x00,0x00,0x2b,0xda,0x00,0x00,0x2c,0x46,0x00,0x00,0x2c,0x3a,0x00,0x00,0x2c,0x3a,0x00,0x00,0x2c,0x3a,0x00,0x00,0x2c,0x4c,0x00,0x00,0x2c,0x52,0x00,0x00,0x2c,0x52,0x00,0x00,0x2c,0x58,0x00,0x00,0x2c,0x58,0x00,0x00,0x2c,0x5e,0x00,0x00,0x2c,0x5e,0x00,0x00,0x2c,0x64,0x00,0x40,0x2b,0x68,0x2b,0x6e, +0x2b,0x74,0x2b,0x7a,0x2b,0x80,0x2b,0x86,0x2b,0x8c,0x2b,0x92,0x2b,0x98,0x2b,0x9e,0x2b,0xa4,0x2b,0xaa,0x2b,0xb0,0x2b,0xaa,0x2b,0xaa,0x2b,0xaa,0x2b,0xb6,0x2b,0x92,0x2b,0xbc,0x2b,0xc2,0x2b,0xc2,0x2b,0xb6,0x2b,0xc8,0x2b,0xce,0x2b,0xd4,0x2b,0xda,0x2b,0xe0,0x2b,0xaa,0x2b,0xe6,0x2b,0xec,0x2b,0xf2,0x2b,0xf8,0x2b,0xfe,0x2c,0x04, +0x2c,0x0a,0x2c,0x0a,0x2c,0x10,0x2c,0x10,0x2c,0x16,0x2c,0x10,0x2c,0x10,0x2c,0x10,0x2c,0x1c,0x2c,0x1c,0x2c,0x10,0x2c,0x10,0x2c,0x22,0x2c,0x10,0x2c,0x10,0x2c,0x28,0x2c,0x2e,0x2b,0xb6,0x2c,0x2e,0x2c,0x34,0x2c,0x3a,0x2c,0x3a,0x2b,0x92,0x2c,0x40,0x2c,0x40,0x2c,0x46,0x2c,0x46,0x2c,0x4c,0x2c,0x4c,0x2c,0x52,0x00,0x02,0x00,0x11, +0x02,0x44,0x02,0x44,0x00,0x00,0x02,0x46,0x02,0x47,0x00,0x01,0x04,0x62,0x04,0x73,0x00,0x03,0x04,0x79,0x04,0x79,0x00,0x15,0x04,0x9b,0x04,0x9d,0x00,0x16,0x04,0xa0,0x04,0xa2,0x00,0x19,0x04,0xa4,0x04,0xa4,0x00,0x1c,0x04,0xa8,0x04,0xaa,0x00,0x1d,0x05,0xfd,0x06,0x00,0x00,0x20,0x06,0x66,0x06,0x72,0x00,0x24,0x07,0x55,0x07,0x57, +0x00,0x31,0x07,0x5c,0x07,0x5c,0x00,0x34,0x07,0xef,0x07,0xef,0x00,0x35,0x08,0x4c,0x08,0x4d,0x00,0x36,0x08,0x4f,0x08,0x4f,0x00,0x38,0x0a,0xdb,0x0a,0xe0,0x00,0x39,0x0a,0xe2,0x0a,0xe2,0x00,0x3f,0x00,0x02,0x00,0x11,0x02,0x44,0x02,0x44,0x00,0x00,0x02,0x46,0x02,0x47,0x00,0x01,0x04,0x62,0x04,0x73,0x00,0x03,0x04,0x79,0x04,0x79, +0x00,0x15,0x04,0x9b,0x04,0x9d,0x00,0x16,0x04,0xa0,0x04,0xa2,0x00,0x19,0x04,0xa4,0x04,0xa4,0x00,0x1c,0x04,0xa8,0x04,0xaa,0x00,0x1d,0x05,0xfd,0x06,0x00,0x00,0x20,0x06,0x66,0x06,0x72,0x00,0x24,0x07,0x55,0x07,0x57,0x00,0x31,0x07,0x5c,0x07,0x5c,0x00,0x34,0x07,0xef,0x07,0xef,0x00,0x35,0x08,0x4c,0x08,0x4d,0x00,0x36,0x08,0x4f, +0x08,0x4f,0x00,0x38,0x0a,0xdb,0x0a,0xe0,0x00,0x39,0x0a,0xe2,0x0a,0xe2,0x00,0x3f,0x00,0x01,0x01,0x12,0x01,0x6a,0x00,0x01,0x00,0x0c,0x00,0xba,0x00,0x2b,0x00,0x00,0x2a,0xf6,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x02,0x00,0x00,0x2b,0x08,0x00,0x00,0x2b,0x0e,0x00,0x00,0x2b,0x14,0x00,0x00,0x2b,0x14,0x00,0x00, +0x2b,0x14,0x00,0x00,0x2b,0x1a,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x20,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x20,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x26,0x00,0x00,0x2b,0x2c,0x00,0x00,0x2b,0x32,0x00,0x00, +0x2b,0x38,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x3e,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x44,0x00,0x00,0x2b,0x4a,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x50,0x00,0x00,0x2b,0x56,0x00,0x00,0x2b,0x5c,0x00,0x00,0x2b,0x62,0x00,0x00,0x2b,0x68,0x00,0x00,0x2b,0x68,0x00,0x00,0x2b,0x68,0x00,0x00,0x2b,0x6e,0x00,0x00,0x2b,0x26,0x00,0x00, +0x2b,0x74,0x00,0x00,0x2b,0x7a,0x00,0x00,0x2b,0x80,0x00,0x2b,0x2a,0xd8,0x2a,0xde,0x2a,0xde,0x2a,0xde,0x2a,0xde,0x2a,0xe4,0x2a,0xde,0x2a,0xde,0x2a,0xe4,0x2a,0xea,0x2a,0xf0,0x2a,0xf6,0x2a,0xe4,0x2a,0xfc,0x2a,0xe4,0x2b,0x02,0x2a,0xde,0x2a,0xde,0x2b,0x08,0x2b,0x0e,0x2b,0x14,0x2b,0x1a,0x2b,0x20,0x2b,0x26,0x2a,0xe4,0x2a,0xe4, +0x2b,0x2c,0x2b,0x14,0x2b,0x32,0x2b,0x38,0x2a,0xfc,0x2a,0xde,0x2a,0xe4,0x2a,0xe4,0x2b,0x3e,0x2a,0xe4,0x2a,0xe4,0x2a,0xe4,0x2a,0xe4,0x2a,0xe4,0x2a,0xde,0x2b,0x44,0x2b,0x4a,0x00,0x02,0x00,0x0e,0x02,0x45,0x02,0x45,0x00,0x00,0x04,0x75,0x04,0x78,0x00,0x01,0x04,0x7b,0x04,0x7f,0x00,0x05,0x04,0x82,0x04,0x84,0x00,0x0a,0x04,0x87, +0x04,0x91,0x00,0x0d,0x04,0x97,0x04,0x9a,0x00,0x18,0x04,0xa3,0x04,0xa3,0x00,0x1c,0x04,0xa5,0x04,0xa7,0x00,0x1d,0x04,0xab,0x04,0xac,0x00,0x20,0x07,0x58,0x07,0x5b,0x00,0x22,0x07,0xed,0x07,0xee,0x00,0x26,0x08,0x4e,0x08,0x4e,0x00,0x28,0x0a,0xe1,0x0a,0xe1,0x00,0x29,0x0a,0xe3,0x0a,0xe3,0x00,0x2a,0x00,0x02,0x00,0x0e,0x02,0x45, +0x02,0x45,0x00,0x00,0x04,0x75,0x04,0x78,0x00,0x01,0x04,0x7b,0x04,0x7f,0x00,0x05,0x04,0x82,0x04,0x84,0x00,0x0a,0x04,0x87,0x04,0x91,0x00,0x0d,0x04,0x97,0x04,0x9a,0x00,0x18,0x04,0xa3,0x04,0xa3,0x00,0x1c,0x04,0xa5,0x04,0xa7,0x00,0x1d,0x04,0xab,0x04,0xac,0x00,0x20,0x07,0x58,0x07,0x5b,0x00,0x22,0x07,0xed,0x07,0xee,0x00,0x26, +0x08,0x4e,0x08,0x4e,0x00,0x28,0x0a,0xe1,0x0a,0xe1,0x00,0x29,0x0a,0xe3,0x0a,0xe3,0x00,0x2a,0x00,0x01,0x00,0x18,0x00,0x1e,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x27,0xb4,0x00,0x02,0x2a,0x36,0x2a,0x3c,0x00,0x01,0x00,0x01,0x04,0x64,0x00,0x01,0x00,0x02,0x02,0xcf,0x02,0xd0,0x00,0x01,0x0e,0xec,0x0f,0x62,0x00,0x02, +0x00,0x0c,0x01,0xca,0x00,0x6f,0x00,0x00,0x2a,0x22,0x00,0x00,0x2a,0x28,0x00,0x01,0x2a,0x2e,0x00,0x00,0x2a,0x34,0x00,0x00,0x2a,0x3a,0x00,0x01,0x2a,0x2e,0x00,0x00,0x2a,0x40,0x00,0x00,0x2a,0x40,0x00,0x00,0x2a,0x46,0x00,0x00,0x2a,0x22,0x00,0x00,0x2a,0x4c,0x00,0x00,0x2a,0x52,0x00,0x01,0x2a,0x58,0x00,0x00,0x2a,0x5e,0x00,0x01, +0x2a,0x64,0x00,0x00,0x2a,0x4c,0x00,0x00,0x2a,0x52,0x00,0x00,0x2a,0x6a,0x00,0x00,0x2a,0x70,0x00,0x00,0x2a,0x76,0x00,0x00,0x2a,0x7c,0x00,0x00,0x2a,0x82,0x00,0x00,0x2a,0x88,0x00,0x00,0x2a,0x8e,0x00,0x01,0x2a,0x94,0x00,0x00,0x2a,0x88,0x00,0x00,0x2a,0x9a,0x00,0x00,0x2a,0x88,0x00,0x01,0x2a,0xa0,0x00,0x00,0x2a,0xa6,0x00,0x01, +0x2a,0xac,0x00,0x00,0x2a,0xb2,0x00,0x00,0x2a,0xb8,0x00,0x00,0x2a,0xbe,0x00,0x00,0x2a,0xc4,0x00,0x00,0x2a,0xca,0x00,0x01,0x2a,0xd0,0x00,0x00,0x2a,0x3a,0x00,0x00,0x2a,0x88,0x00,0x00,0x2a,0xd6,0x00,0x00,0x2a,0xdc,0x00,0x00,0x2a,0xe2,0x00,0x00,0x2a,0xe8,0x00,0x00,0x2a,0xdc,0x00,0x00,0x2a,0xe8,0x00,0x00,0x2a,0x22,0x00,0x00, +0x2a,0x22,0x00,0x00,0x2a,0x22,0x00,0x01,0x2a,0xee,0x00,0x00,0x2a,0xf4,0x00,0x00,0x2a,0xfa,0x00,0x00,0x2b,0x00,0x00,0x00,0x2b,0x06,0x00,0x00,0x2a,0x22,0x00,0x00,0x2b,0x0c,0x00,0x01,0x2a,0x2e,0x00,0x00,0x2a,0xdc,0x00,0x00,0x2b,0x12,0x00,0x00,0x2a,0xdc,0x00,0x00,0x2a,0xdc,0x00,0x00,0x2b,0x18,0x00,0x00,0x2b,0x1e,0x00,0x00, +0x2b,0x18,0x00,0x00,0x2b,0x1e,0x00,0x00,0x2b,0x1e,0x00,0x01,0x2b,0x24,0x00,0x01,0x2b,0x24,0x00,0x00,0x2b,0x2a,0x00,0x00,0x2b,0x2a,0x00,0x01,0x2b,0x30,0x00,0x00,0x2b,0x36,0x00,0x00,0x2b,0x3c,0x00,0x01,0x2b,0x42,0x00,0x00,0x2b,0x48,0x00,0x00,0x2b,0x4e,0x00,0x00,0x2b,0x54,0x00,0x01,0x2b,0x5a,0x00,0x01,0x2b,0x60,0x00,0x01, +0x2b,0x66,0x00,0x00,0x2b,0x6c,0x00,0x00,0x2b,0x72,0x00,0x01,0x2b,0x78,0x00,0x00,0x2b,0x7e,0x00,0x00,0x2b,0x54,0x00,0x00,0x2b,0x54,0x00,0x01,0x2b,0x84,0x00,0x00,0x2b,0x48,0x00,0x00,0x2b,0x8a,0x00,0x01,0x2b,0x90,0x00,0x01,0x2b,0x90,0x00,0x00,0x2b,0x36,0x00,0x00,0x2b,0x96,0x00,0x00,0x2b,0x9c,0x00,0x00,0x2b,0x6c,0x00,0x00, +0x2b,0xa2,0x00,0x00,0x2b,0xa8,0x00,0x00,0x2b,0xae,0x00,0x00,0x2b,0xb4,0x00,0x00,0x2b,0xba,0x00,0x00,0x2b,0xc0,0x00,0x00,0x2b,0xc6,0x00,0x01,0x2b,0xcc,0x00,0x00,0x2b,0xd2,0x00,0x00,0x2b,0xd8,0x00,0x00,0x2b,0xde,0x00,0x00,0x2b,0xe4,0x00,0x00,0x2b,0xea,0x00,0x00,0x2b,0xf0,0x00,0x00,0x2b,0xf6,0x00,0x00,0x2b,0xfc,0x00,0x01, +0x2c,0x02,0x03,0x48,0x2a,0x4a,0x2a,0x50,0x2a,0x56,0x2a,0x50,0x2a,0x5c,0x2a,0x50,0x2a,0x4a,0x2a,0x62,0x2a,0x68,0x2a,0x6e,0x2a,0x74,0x2a,0x7a,0x2a,0x80,0x2a,0x7a,0x2a,0x86,0x2a,0x8c,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2a,0x9e,0x2a,0x92,0x2a,0x98,0x2a,0xa4,0x2a,0x9e,0x2a,0xaa,0x2a,0x98,0x2a,0xb0,0x2a,0xb6,0x2a,0xbc,0x2a,0xb6, +0x2a,0xc2,0x2a,0xc8,0x2a,0xc2,0x2a,0xc8,0x2a,0xce,0x2a,0xd4,0x2a,0xda,0x2a,0xd4,0x2a,0xe0,0x2a,0xe6,0x2a,0xec,0x2a,0xd4,0x2a,0xf2,0x2a,0xd4,0x2a,0xf8,0x2a,0xe6,0x2a,0xfe,0x2b,0x04,0x2a,0xfe,0x2b,0x04,0x2b,0x0a,0x2b,0x04,0x2b,0x0a,0x2b,0x04,0x2b,0x10,0x2b,0x16,0x2b,0x1c,0x2b,0x22,0x2b,0x28,0x2b,0x2e,0x2b,0x34,0x2a,0x7a, +0x2b,0x3a,0x2b,0x40,0x2b,0x46,0x2b,0x4c,0x2b,0x52,0x2b,0x58,0x2a,0x68,0x2b,0x5e,0x2b,0x64,0x2b,0x6a,0x2b,0x70,0x2b,0x58,0x2b,0x64,0x2b,0x76,0x2b,0x7c,0x2a,0x7a,0x2b,0x82,0x2b,0x88,0x2b,0x8e,0x2b,0x94,0x2a,0x5c,0x2b,0x9a,0x2a,0x56,0x2b,0x9a,0x2b,0xa0,0x2b,0xa6,0x2a,0x4a,0x2a,0x62,0x2b,0xac,0x2b,0xb2,0x2a,0x4a,0x2b,0x9a, +0x2b,0xb8,0x2b,0xbe,0x2b,0xc4,0x2b,0xca,0x2b,0xd0,0x2b,0xd6,0x2b,0xdc,0x2b,0xd6,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0xaa,0x2a,0x98,0x2b,0xe2,0x2b,0xe8,0x2b,0xee,0x2b,0xe8,0x2b,0xf4,0x2b,0xfa,0x2c,0x00,0x2b,0xfa,0x2c,0x06,0x2c,0x0c,0x2c,0x06,0x2c,0x0c,0x2c,0x12,0x2c,0x18,0x2c,0x12,0x2c,0x18,0x2c,0x1e,0x2c,0x24, +0x2c,0x1e,0x2c,0x24,0x2c,0x2a,0x2a,0xe6,0x2c,0x30,0x2a,0xe6,0x2c,0x36,0x2c,0x3c,0x2c,0x42,0x2c,0x48,0x2c,0x4e,0x2c,0x54,0x2c,0x5a,0x2c,0x60,0x2c,0x66,0x2c,0x6c,0x2c,0x72,0x2c,0x78,0x2c,0x7e,0x2c,0x84,0x2c,0x8a,0x2b,0xca,0x2c,0x90,0x2b,0xa6,0x2c,0x96,0x2c,0x9c,0x2c,0x96,0x2c,0xa2,0x2a,0x68,0x2a,0x7a,0x2c,0xa8,0x2b,0x04, +0x2c,0xa8,0x2b,0x04,0x2b,0xb8,0x2b,0xd6,0x2b,0x1c,0x2b,0x16,0x2b,0xb8,0x2c,0xae,0x2a,0x68,0x2c,0xb4,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2c,0xba,0x2c,0xc0,0x2b,0xfa,0x2c,0xc6,0x2c,0xcc,0x2b,0x10,0x2b,0x16,0x2c,0xd2,0x2c,0xcc,0x2c,0xd8,0x2b,0x16,0x2c,0x96,0x2c,0x9c,0x2b,0x64,0x2b,0x76,0x2a,0x68,0x2b,0x5e, +0x2c,0xde,0x2b,0x58,0x2c,0xe4,0x2b,0xca,0x2c,0x66,0x2c,0x6c,0x2c,0xea,0x2b,0xd6,0x2c,0xf0,0x2a,0x7a,0x2c,0xf6,0x2b,0xe8,0x2c,0xfc,0x2b,0xfa,0x2d,0x02,0x2c,0x84,0x2d,0x08,0x2b,0xca,0x2a,0x68,0x2d,0x0e,0x2d,0x14,0x2d,0x1a,0x2c,0xe4,0x2b,0xca,0x2b,0xc4,0x2b,0xca,0x2d,0x20,0x2d,0x26,0x2d,0x2c,0x2d,0x32,0x2d,0x38,0x2d,0x26, +0x2d,0x3e,0x2d,0x32,0x2d,0x44,0x2c,0x48,0x2d,0x4a,0x2b,0x04,0x2d,0x4a,0x2b,0x04,0x2d,0x50,0x2d,0x56,0x2d,0x5c,0x2c,0x54,0x2d,0x62,0x2b,0x9a,0x2d,0x62,0x2a,0x50,0x2a,0x56,0x2b,0x9a,0x2a,0x56,0x2a,0x50,0x2a,0x4a,0x2d,0x68,0x2a,0x4a,0x2d,0x68,0x2a,0x4a,0x2b,0x9a,0x2a,0x4a,0x2a,0x50,0x2d,0x6e,0x2b,0xa6,0x2d,0x74,0x2d,0x7a, +0x2d,0x80,0x2c,0x9c,0x2d,0x86,0x2b,0x76,0x2d,0x8c,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2b,0xb8,0x2d,0x92,0x2a,0x68,0x2d,0x98,0x2b,0xd0,0x2d,0x9e,0x2a,0x74,0x2d,0xa4,0x2d,0xaa,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2d,0xaa,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2b,0xb8,0x2c,0xae,0x2a,0x68,0x2d,0x98,0x2d,0xb0,0x2a,0x98,0x2d,0xb0,0x2a,0x98, +0x2d,0xb6,0x2a,0x9e,0x2d,0xbc,0x2a,0x98,0x2d,0xbc,0x2a,0x98,0x2d,0xc2,0x2a,0x9e,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2a,0x8c,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2c,0xba,0x2d,0xc8,0x2a,0x98,0x2d,0xc8,0x2a,0x98,0x2d,0xc2,0x2a,0x9e,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2c,0xba, +0x2b,0xe2,0x2d,0xce,0x2b,0xe2,0x2d,0xd4,0x2b,0xee,0x2d,0xd4,0x2b,0xee,0x2b,0xe8,0x2b,0xe2,0x2d,0xd4,0x2d,0xda,0x2b,0xe8,0x2d,0xda,0x2b,0xe8,0x2d,0xda,0x2b,0xe8,0x2d,0xe0,0x2b,0xfa,0x2b,0xf4,0x2b,0xfa,0x2b,0xf4,0x2d,0xe6,0x2b,0xf4,0x2d,0xec,0x2c,0x00,0x2d,0xe6,0x2c,0x00,0x2b,0xfa,0x2c,0xc0,0x2b,0xfa,0x2c,0x06,0x2d,0xf2, +0x2d,0xf8,0x2d,0xfe,0x2c,0x06,0x2e,0x04,0x2a,0xb0,0x2e,0x0a,0x2c,0x06,0x2e,0x04,0x2a,0xbc,0x2e,0x0a,0x2c,0x12,0x2e,0x10,0x2a,0xc2,0x2e,0x16,0x2e,0x1c,0x2c,0x18,0x2e,0x22,0x2a,0xc8,0x2e,0x28,0x2c,0x24,0x2e,0x2e,0x2a,0xe6,0x2e,0x34,0x2a,0xe6,0x2e,0x3a,0x2a,0xd4,0x2e,0x40,0x2a,0xd4,0x2c,0x42,0x2c,0x48,0x2c,0x42,0x2c,0x48, +0x2c,0xa8,0x2e,0x46,0x2c,0xa8,0x2e,0x46,0x2c,0x42,0x2c,0x48,0x2a,0xfe,0x2e,0x46,0x2a,0xfe,0x2e,0x46,0x2c,0x42,0x2c,0x48,0x2c,0xa8,0x2e,0x4c,0x2c,0xa8,0x2e,0x4c,0x2d,0x44,0x2c,0x48,0x2d,0x4a,0x2b,0x04,0x2d,0x4a,0x2b,0x04,0x2e,0x52,0x2c,0x54,0x2e,0x58,0x2c,0x54,0x2e,0x5e,0x2e,0x64,0x2e,0x6a,0x2e,0x70,0x2c,0xc6,0x2c,0xcc, +0x2b,0x10,0x2b,0x16,0x2e,0x76,0x2c,0x60,0x2e,0x7c,0x2b,0x16,0x2e,0x82,0x2c,0x60,0x2e,0x88,0x2b,0x16,0x2c,0x5a,0x2c,0xae,0x2b,0x10,0x2d,0x98,0x2c,0xd2,0x2c,0xcc,0x2c,0xd8,0x2b,0x16,0x2e,0x8e,0x2c,0xcc,0x2e,0x94,0x2b,0x16,0x2c,0xd2,0x2e,0x9a,0x2c,0xd8,0x2e,0xa0,0x2c,0xd2,0x2e,0xa6,0x2c,0xd8,0x2d,0x98,0x2e,0xac,0x2c,0xcc, +0x2e,0xb2,0x2b,0x16,0x2c,0x66,0x2c,0x6c,0x2e,0xb8,0x2b,0x22,0x2c,0x66,0x2c,0x6c,0x2e,0xbe,0x2b,0x22,0x2c,0x66,0x2c,0x6c,0x2e,0xc4,0x2b,0x22,0x2c,0x66,0x2e,0xca,0x2b,0x1c,0x2e,0xd0,0x2e,0xd6,0x2e,0xdc,0x2b,0x34,0x2a,0x6e,0x2e,0xe2,0x2c,0x84,0x2e,0xd6,0x2e,0xe8,0x2b,0x34,0x2d,0xa4,0x2e,0xee,0x2c,0x84,0x2a,0xaa,0x2a,0x98, +0x2a,0xaa,0x2a,0x98,0x2a,0xa4,0x2c,0xba,0x2c,0x90,0x2b,0xa6,0x2e,0xf4,0x2e,0xfa,0x2f,0x00,0x2b,0xa6,0x2f,0x06,0x2b,0xa6,0x2f,0x0c,0x2b,0xa6,0x2f,0x00,0x2b,0xa6,0x2f,0x12,0x2b,0xa6,0x2f,0x18,0x2b,0xa6,0x2f,0x1e,0x2f,0x24,0x2f,0x2a,0x2b,0x88,0x2f,0x30,0x2c,0x9c,0x2f,0x36,0x2b,0x76,0x2f,0x3c,0x2b,0x5e,0x2f,0x12,0x2b,0xa6, +0x2f,0x42,0x2f,0x48,0x2f,0x4e,0x2f,0x54,0x2f,0x42,0x2f,0x5a,0x2f,0x4e,0x2f,0x60,0x2c,0x06,0x2d,0xf2,0x2a,0xbc,0x2d,0xfe,0x2c,0x12,0x2e,0x10,0x2a,0xc2,0x2f,0x66,0x2c,0x30,0x2a,0xe6,0x2f,0x6c,0x2a,0xe6,0x2a,0xec,0x2f,0x72,0x2a,0xf2,0x2f,0x72,0x2c,0x72,0x2f,0x78,0x2f,0x7e,0x2c,0xcc,0x2f,0x7e,0x2c,0xcc,0x2f,0x84,0x2f,0x8a, +0x2f,0x90,0x2b,0xe8,0x2f,0x96,0x2b,0xe8,0x2d,0xe0,0x2b,0xfa,0x2d,0xe0,0x2b,0xfa,0x2f,0x9c,0x2b,0x40,0x2f,0xa2,0x2b,0x4c,0x2f,0xa8,0x2f,0xae,0x2f,0xb4,0x2f,0xba,0x2e,0xb8,0x2b,0x16,0x2e,0xbe,0x2b,0x16,0x2e,0xc4,0x2b,0x16,0x2b,0x1c,0x2e,0xd0,0x2b,0xb8,0x2f,0xc0,0x2a,0x68,0x2f,0xc6,0x2b,0xdc,0x2b,0xbe,0x2a,0x80,0x2a,0x6e, +0x2b,0xb8,0x2d,0x92,0x2a,0x68,0x2c,0xb4,0x2b,0xd0,0x2d,0x92,0x2a,0x74,0x2c,0xb4,0x2b,0xd0,0x2e,0x9a,0x2b,0x34,0x2f,0xcc,0x2b,0xb8,0x2f,0xd2,0x2a,0x68,0x2f,0xd8,0x2f,0xde,0x2b,0xd6,0x2f,0x3c,0x2a,0x7a,0x2a,0xaa,0x2a,0x98,0x2a,0xaa,0x2a,0x98,0x2a,0xa4,0x2a,0x9e,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2c,0xba, +0x2b,0xe2,0x2f,0xe4,0x2b,0xe2,0x2f,0xea,0x2b,0xf4,0x2b,0xfa,0x2c,0x06,0x2c,0x0c,0x2f,0xf0,0x2a,0xb6,0x2f,0xf6,0x2a,0xe6,0x2f,0xfc,0x2a,0xe6,0x2a,0xec,0x2a,0xd4,0x2a,0xf2,0x2a,0xd4,0x30,0x02,0x2a,0xe6,0x30,0x08,0x2a,0xe6,0x2e,0x3a,0x2a,0xd4,0x2e,0x40,0x2a,0xd4,0x30,0x02,0x2a,0xe6,0x30,0x08,0x2a,0xe6,0x2e,0x3a,0x2a,0xd4, +0x2e,0x40,0x2a,0xd4,0x2c,0x42,0x2c,0x48,0x2c,0xa8,0x30,0x0e,0x2c,0xa8,0x30,0x0e,0x2c,0x42,0x2c,0x48,0x2c,0xa8,0x2e,0x4c,0x2c,0xa8,0x30,0x14,0x30,0x1a,0x2c,0xcc,0x2e,0x7c,0x2b,0x16,0x2e,0x7c,0x2b,0x16,0x30,0x20,0x2c,0xcc,0x2e,0x88,0x2b,0x16,0x2e,0x88,0x2b,0x16,0x2c,0xc6,0x2c,0xae,0x2b,0x10,0x30,0x26,0x2b,0x10,0x30,0x26, +0x30,0x2c,0x2c,0x78,0x30,0x32,0x2b,0x2e,0x2c,0x72,0x30,0x38,0x2b,0x28,0x30,0x3e,0x2e,0xd6,0x30,0x44,0x2b,0x34,0x2b,0x5e,0x30,0x4a,0x2c,0x84,0x30,0x50,0x2a,0x7a,0x30,0x56,0x2c,0x84,0x30,0x5c,0x2a,0x7a,0x2c,0x66,0x2c,0x6c,0x2c,0x66,0x2c,0x6c,0x2b,0x1c,0x2b,0x22,0x2b,0x1c,0x2b,0x16,0x2c,0xc0,0x2b,0xfa,0x30,0x62,0x2b,0xfa, +0x2c,0x06,0x2c,0x0c,0x2a,0xbc,0x2a,0xb6,0x2b,0xf4,0x2b,0xfa,0x2c,0x00,0x2b,0xfa,0x2c,0xc0,0x2b,0xfa,0x2c,0xfc,0x2b,0xfa,0x2d,0xe0,0x2b,0xfa,0x2b,0xf4,0x2b,0xfa,0x2b,0xf4,0x2d,0xe6,0x2b,0xf4,0x2d,0xec,0x2c,0x00,0x2d,0xe6,0x2c,0x00,0x2b,0xfa,0x2c,0xc0,0x2b,0xfa,0x2c,0xc0,0x2b,0xfa,0x30,0x62,0x2b,0xfa,0x30,0x68,0x30,0x6e, +0x2b,0x64,0x30,0x74,0x2a,0x68,0x2d,0xa4,0x2a,0x68,0x2d,0xa4,0x2b,0xa0,0x2b,0xa6,0x2b,0x7c,0x2a,0x7a,0x2b,0xb8,0x2b,0xbe,0x2a,0x68,0x2a,0x6e,0x2b,0xd0,0x2b,0xd6,0x2a,0x74,0x2a,0x7a,0x2b,0xdc,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2a,0x86,0x2a,0x8c,0x2a,0x86,0x2a,0x9e,0x2a,0xa4,0x2a,0x9e,0x30,0x7a,0x2b,0xe8,0x30,0x80,0x2b,0xe8, +0x2c,0x06,0x2c,0x0c,0x2a,0xb0,0x2a,0xb6,0x2c,0x06,0x2c,0x0c,0x2a,0xbc,0x2a,0xb6,0x2c,0x12,0x2c,0x18,0x2a,0xc2,0x2a,0xc8,0x2c,0x12,0x2c,0x18,0x2a,0xc2,0x2a,0xc8,0x2c,0x1e,0x2c,0x24,0x2c,0x1e,0x30,0x86,0x2c,0x1e,0x30,0x86,0x2c,0x1e,0x2c,0x24,0x2c,0x1e,0x30,0x86,0x2c,0x1e,0x30,0x86,0x30,0x8c,0x2c,0x9c,0x30,0x92,0x2b,0x76, +0x2a,0x74,0x2b,0x5e,0x2a,0x74,0x2b,0x5e,0x30,0x98,0x2c,0x9c,0x30,0x9e,0x2b,0x76,0x2a,0x80,0x2b,0x5e,0x2a,0x80,0x2b,0x5e,0x2c,0x42,0x2c,0x48,0x2c,0x4e,0x2c,0x54,0x2c,0x5a,0x2c,0x60,0x2b,0x10,0x2b,0x16,0x2c,0x72,0x2c,0x78,0x2b,0x28,0x2b,0x2e,0x2c,0x7e,0x2c,0x84,0x2b,0x34,0x2a,0x7a,0x30,0xa4,0x2a,0x9e,0x30,0xaa,0x2b,0x40, +0x30,0xb0,0x30,0xb6,0x2c,0x90,0x2b,0xa6,0x2a,0x68,0x2a,0x7a,0x2a,0x68,0x2a,0x7a,0x2a,0x68,0x2b,0x5e,0x2b,0xb8,0x2b,0xd6,0x2a,0x68,0x2a,0x7a,0x2d,0x5c,0x2c,0x54,0x2c,0xa8,0x2b,0x04,0x2c,0xa8,0x2b,0x04,0x2d,0x6e,0x2b,0xa6,0x2d,0x74,0x2d,0x7a,0x30,0xbc,0x2a,0x7a,0x30,0xbc,0x2a,0x7a,0x2c,0xea,0x2b,0xd6,0x2c,0xf0,0x2a,0x7a, +0x2d,0x8c,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2b,0xb8,0x2d,0x92,0x2a,0x68,0x2d,0x98,0x2b,0xd0,0x2d,0x9e,0x2a,0x74,0x2d,0xa4,0x2d,0xaa,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2b,0xb8,0x2c,0xae,0x2a,0x68,0x2c,0xb4,0x2d,0xaa,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2b,0xb8,0x2c,0xae,0x2a,0x68,0x2d,0x98,0x2d,0xb6,0x2a,0x9e,0x2d,0xc2,0x2a,0x9e, +0x2a,0x86,0x2a,0x8c,0x2a,0x86,0x2c,0xba,0x2d,0xc2,0x2a,0x9e,0x2a,0x86,0x2c,0xba,0x2a,0x86,0x2c,0xba,0x30,0xc2,0x2b,0xe8,0x30,0x7a,0x2d,0xce,0x30,0x7a,0x2d,0xd4,0x30,0x80,0x2d,0xd4,0x30,0x80,0x2b,0xe8,0x30,0x7a,0x2d,0xd4,0x30,0xc8,0x2b,0xe8,0x30,0xc8,0x2b,0xe8,0x30,0xc8,0x2b,0xe8,0x2c,0x06,0x2d,0xf2,0x2d,0xf8,0x2d,0xfe, +0x2c,0x06,0x2e,0x04,0x2a,0xb0,0x2e,0x0a,0x2c,0x06,0x2e,0x04,0x2a,0xbc,0x2e,0x0a,0x2c,0x12,0x2e,0x10,0x2a,0xc2,0x2e,0x16,0x2e,0x1c,0x2c,0x18,0x2e,0x22,0x2a,0xc8,0x2e,0x28,0x2c,0x24,0x2e,0x28,0x30,0x86,0x2e,0x28,0x30,0x86,0x2c,0x42,0x2c,0x48,0x2c,0x42,0x2c,0x48,0x2c,0x42,0x2c,0x48,0x2d,0x44,0x2c,0x48,0x2c,0x42,0x2c,0x48, +0x2d,0x44,0x2c,0x48,0x2e,0x52,0x2c,0x54,0x2a,0xfe,0x2b,0x04,0x2a,0xfe,0x2b,0x04,0x2e,0x58,0x2c,0x54,0x2d,0x4a,0x2b,0x04,0x2d,0x4a,0x2b,0x04,0x30,0xce,0x2c,0xcc,0x2b,0x10,0x2b,0x16,0x2e,0x5e,0x2e,0x64,0x2e,0x6a,0x2e,0x70,0x30,0xce,0x2c,0xcc,0x2b,0x10,0x2b,0x16,0x2e,0x76,0x2c,0x60,0x2e,0x7c,0x2b,0x16,0x2e,0x82,0x2c,0x60, +0x2e,0x88,0x2b,0x16,0x2c,0x5a,0x2c,0xae,0x2b,0x10,0x2d,0x98,0x2c,0xd2,0x2c,0xcc,0x2c,0xd8,0x2b,0x16,0x30,0xd4,0x2c,0xcc,0x2c,0xd8,0x2b,0x16,0x30,0xda,0x2c,0xcc,0x2e,0x94,0x2b,0x16,0x30,0xd4,0x2e,0x9a,0x2c,0xd8,0x2e,0xa0,0x30,0xd4,0x2e,0xa6,0x2c,0xd8,0x2d,0x98,0x30,0xe0,0x2c,0xcc,0x2e,0xb2,0x2b,0x16,0x2c,0x66,0x2c,0x6c, +0x2c,0x66,0x2c,0x6c,0x2c,0x66,0x2c,0x6c,0x2c,0x66,0x2e,0xca,0x30,0xe6,0x30,0xec,0x2b,0x34,0x2a,0x6e,0x2d,0x02,0x2c,0x84,0x2e,0xe2,0x2c,0x84,0x2c,0xf0,0x2a,0x7a,0x2c,0xf0,0x2a,0x7a,0x30,0xe6,0x2e,0xe8,0x2b,0x34,0x2d,0xa4,0x2e,0xee,0x2c,0x84,0x30,0xa4,0x2a,0x9e,0x30,0xb0,0x30,0xb6,0x2a,0xa4,0x2c,0xba,0x30,0xf2,0x2d,0x56, +0x30,0xf8,0x2d,0x56,0x2c,0x90,0x2b,0xa6,0x2e,0xf4,0x2e,0xfa,0x2f,0x00,0x2b,0xa6,0x2f,0x06,0x2b,0xa6,0x2f,0x0c,0x2b,0xa6,0x2f,0x00,0x2b,0xa6,0x2f,0x12,0x2b,0xa6,0x2f,0x18,0x2b,0xa6,0x2a,0x68,0x2b,0x5e,0x2f,0x3c,0x2b,0x5e,0x2f,0x12,0x2b,0xa6,0x2a,0x68,0x2d,0x98,0x2a,0x68,0x2d,0x98,0x2a,0x68,0x2c,0xb4,0x2a,0x68,0x2c,0xb4, +0x2c,0x06,0x2d,0xf2,0x2a,0xbc,0x2d,0xfe,0x2c,0x12,0x2e,0x10,0x2a,0xc2,0x2f,0x66,0x2b,0xb8,0x2f,0xc0,0x2a,0x68,0x2a,0x6e,0x2b,0xdc,0x2b,0xbe,0x2a,0x80,0x2a,0x6e,0x2b,0xb8,0x2d,0x92,0x2a,0x68,0x2c,0xb4,0x2b,0xd0,0x2d,0x92,0x2a,0x74,0x2c,0xb4,0x2b,0xd0,0x2e,0x9a,0x2b,0x34,0x2f,0xcc,0x2b,0xb8,0x2f,0xd2,0x2a,0x68,0x2f,0xd8, +0x2f,0xde,0x2b,0xd6,0x2f,0x3c,0x2a,0x7a,0x2a,0xa4,0x2a,0x9e,0x2a,0x86,0x2c,0xba,0x30,0xfe,0x2f,0xe4,0x30,0x7a,0x2f,0xea,0x2b,0xf4,0x2b,0xfa,0x2c,0x06,0x2c,0x0c,0x2f,0xf0,0x2a,0xb6,0x2c,0x42,0x2c,0x48,0x2c,0x42,0x2c,0x48,0x31,0x04,0x2c,0xcc,0x31,0x0a,0x2c,0xcc,0x30,0xce,0x2c,0xae,0x30,0x2c,0x2c,0x78,0x30,0x32,0x2b,0x2e, +0x2c,0x72,0x30,0x38,0x2b,0x28,0x30,0x3e,0x30,0xe6,0x31,0x10,0x2b,0x34,0x2b,0x5e,0x30,0x4a,0x2c,0x84,0x30,0x50,0x2a,0x7a,0x30,0x56,0x2c,0x84,0x30,0x5c,0x2a,0x7a,0x2c,0x06,0x2c,0x0c,0x2a,0xbc,0x2a,0xb6,0x2a,0x92,0x31,0x16,0x2a,0x92,0x31,0x16,0x2a,0x86,0x31,0x1c,0x2a,0x86,0x31,0x1c,0x2a,0x92,0x31,0x22,0x2a,0x92,0x31,0x22, +0x31,0x28,0x31,0x2e,0x31,0x28,0x31,0x2e,0x2c,0x06,0x2c,0x0c,0x2c,0x06,0x2c,0x0c,0x31,0x34,0x2a,0xb6,0x31,0x34,0x2a,0xb6,0x31,0x3a,0x2b,0xfa,0x31,0x3a,0x2b,0xfa,0x31,0x40,0x2a,0x98,0x31,0x40,0x2a,0x98,0x31,0x46,0x2a,0x9e,0x31,0x46,0x2a,0x9e,0x31,0x4c,0x31,0x52,0x31,0x4c,0x31,0x58,0x31,0x4c,0x31,0x52,0x31,0x4c,0x31,0x58, +0x31,0x5e,0x2c,0x9c,0x31,0x64,0x2b,0x76,0x31,0x6a,0x2b,0x5e,0x31,0x6a,0x2b,0x5e,0x31,0x5e,0x2c,0x9c,0x31,0x64,0x2b,0x76,0x31,0x6a,0x2b,0x5e,0x31,0x6a,0x2b,0x5e,0x2f,0x42,0x31,0x70,0x31,0x76,0x31,0x70,0x2a,0x68,0x31,0x7c,0x2a,0x68,0x31,0x7c,0x31,0x82,0x31,0x88,0x31,0x82,0x31,0x88,0x31,0x8e,0x31,0x94,0x31,0x8e,0x31,0x94, +0x31,0x9a,0x2d,0x26,0x31,0xa0,0x2d,0x32,0x31,0x9a,0x2d,0x26,0x31,0xa0,0x2d,0x32,0x2a,0x92,0x31,0x16,0x2a,0x92,0x31,0x16,0x2a,0x86,0x31,0xa6,0x2a,0x86,0x31,0xa6,0x2c,0x06,0x2c,0x0c,0x2c,0x06,0x2c,0x0c,0x31,0xac,0x2a,0xb6,0x31,0xac,0x2a,0xb6,0x2c,0x06,0x2c,0x0c,0x2c,0x06,0x2c,0x0c,0x31,0xb2,0x2a,0xb6,0x31,0xb2,0x2a,0xb6, +0x2e,0x76,0x2c,0x60,0x2e,0x76,0x2c,0x60,0x2e,0x7c,0x2b,0x16,0x2e,0x7c,0x2b,0x16,0x31,0xb8,0x31,0xbe,0x31,0xc4,0x31,0xbe,0x31,0xca,0x31,0xd0,0x31,0xca,0x31,0xbe,0x31,0xd6,0x31,0xbe,0x31,0xd6,0x31,0xbe,0x31,0xca,0x31,0xd0,0x31,0xdc,0x31,0xbe,0x31,0xe2,0x31,0xbe,0x31,0xe2,0x31,0xbe,0x31,0xe8,0x2a,0xd4,0x31,0xe8,0x2a,0xd4, +0x31,0xee,0x2a,0xd4,0x31,0xee,0x2a,0xd4,0x31,0xf4,0x31,0xfa,0x31,0xf4,0x31,0xfa,0x31,0xe8,0x32,0x00,0x31,0xe8,0x32,0x00,0x31,0xee,0x32,0x00,0x31,0xee,0x32,0x00,0x31,0xee,0x31,0xfa,0x31,0xee,0x31,0xfa,0x32,0x06,0x2a,0xd4,0x32,0x06,0x2a,0xd4,0x31,0xee,0x2a,0xd4,0x31,0xee,0x2a,0xd4,0x32,0x0c,0x2a,0xd4,0x32,0x0c,0x2a,0xd4, +0x32,0x12,0x2a,0xd4,0x32,0x12,0x2a,0xd4,0x32,0x18,0x2a,0xd4,0x32,0x18,0x2a,0xd4,0x32,0x1e,0x2a,0xc8,0x32,0x1e,0x2a,0xc8,0x32,0x1e,0x2a,0xc8,0x32,0x1e,0x2a,0xc8,0x32,0x1e,0x32,0x24,0x32,0x1e,0x32,0x24,0x32,0x2a,0x2a,0xc8,0x32,0x2a,0x2a,0xc8,0x32,0x1e,0x2e,0x16,0x32,0x1e,0x2e,0x16,0x32,0x30,0x32,0x36,0x32,0x30,0x32,0x3c, +0x32,0x42,0x32,0x36,0x32,0x42,0x32,0x3c,0x32,0x48,0x32,0x36,0x32,0x48,0x32,0x3c,0x32,0x4e,0x32,0x36,0x32,0x4e,0x32,0x3c,0x32,0x30,0x32,0x54,0x32,0x30,0x32,0x5a,0x32,0x30,0x32,0x36,0x32,0x30,0x32,0x3c,0x32,0x60,0x32,0x66,0x32,0x6c,0x32,0x66,0x32,0x72,0x32,0x66,0x32,0x78,0x32,0x66,0x32,0x60,0x32,0x66,0x32,0x60,0x32,0x7e, +0x32,0x60,0x32,0x84,0x32,0x6c,0x32,0x7e,0x32,0x6c,0x32,0x66,0x32,0x8a,0x32,0x66,0x32,0x78,0x32,0x66,0x32,0x60,0x32,0x66,0x32,0x8a,0x32,0x66,0x32,0x90,0x32,0x66,0x32,0x96,0x32,0x66,0x2b,0x82,0x2b,0x88,0x32,0x9c,0x2b,0x76,0x32,0xa2,0x2b,0x76,0x32,0xa8,0x2b,0x76,0x32,0xae,0x2b,0x76,0x32,0xae,0x32,0xb4,0x2d,0x86,0x2b,0x76, +0x32,0xba,0x2b,0x88,0x2f,0x36,0x2b,0x76,0x31,0x76,0x32,0xc0,0x31,0x64,0x2b,0x76,0x31,0x64,0x2b,0x76,0x31,0x76,0x32,0xc6,0x31,0x76,0x32,0xcc,0x32,0xd2,0x2d,0x32,0x32,0xd2,0x2d,0x32,0x2d,0x3e,0x2d,0x32,0x2d,0x3e,0x2d,0x32,0x31,0xa0,0x2d,0x32,0x31,0xa0,0x2d,0x32,0x31,0xa0,0x2d,0x32,0x31,0xa0,0x2d,0x32,0x32,0xae,0x2b,0x76, +0x31,0x76,0x32,0xd8,0x32,0xae,0x32,0xde,0x32,0xe4,0x32,0xea,0x32,0xf0,0x32,0xf6,0x2b,0x52,0x2b,0x58,0x32,0x8a,0x32,0x66,0x32,0xfc,0x33,0x02,0x2a,0x68,0x33,0x08,0x32,0xfc,0x33,0x02,0x2a,0x68,0x33,0x08,0x33,0x0e,0x33,0x14,0x33,0x0e,0x33,0x14,0x33,0x1a,0x2a,0x8c,0x33,0x1a,0x2a,0x8c,0x33,0x20,0x2c,0x24,0x33,0x20,0x2c,0x24, +0x33,0x20,0x2c,0x24,0x33,0x20,0x2c,0x24,0x2c,0x42,0x33,0x26,0x33,0x2c,0x33,0x32,0x33,0x2c,0x33,0x32,0x33,0x38,0x33,0x26,0x33,0x3e,0x33,0x44,0x33,0x4a,0x33,0x32,0x33,0x4a,0x33,0x32,0x33,0x3e,0x33,0x44,0x33,0x50,0x33,0x56,0x33,0x5c,0x32,0xea,0x33,0x5c,0x2b,0x16,0x33,0x50,0x33,0x56,0x33,0x62,0x33,0x68,0x33,0x6e,0x2b,0x2e, +0x33,0x6e,0x2b,0x2e,0x33,0x62,0x33,0x68,0x33,0x74,0x33,0x7a,0x33,0x80,0x33,0x86,0x33,0x80,0x33,0x8c,0x33,0x92,0x33,0x98,0x33,0x9e,0x33,0x7a,0x33,0xa4,0x33,0x8c,0x33,0xa4,0x33,0x8c,0x33,0xaa,0x33,0x98,0x33,0xb0,0x33,0xb6,0x33,0xb0,0x33,0xb6,0x2c,0x90,0x33,0xbc,0x2c,0x90,0x33,0xbc,0x33,0xc2,0x33,0xc8,0x33,0xc2,0x33,0xc8, +0x2b,0xd0,0x33,0x02,0x33,0x80,0x33,0x8c,0x33,0x80,0x33,0x8c,0x2b,0xd0,0x33,0x02,0x30,0x7a,0x33,0xce,0x30,0x7a,0x33,0xce,0x2c,0x12,0x33,0xd4,0x2a,0xc2,0x33,0xda,0x2a,0xc2,0x33,0xda,0x2c,0x12,0x33,0xd4,0x2c,0xd2,0x2c,0xcc,0x33,0xe0,0x2b,0x16,0x33,0xe0,0x2b,0x16,0x2c,0xd2,0x2c,0xcc,0x2c,0x90,0x33,0xe6,0x2c,0x90,0x33,0xe6, +0x33,0xec,0x2b,0xfa,0x33,0xec,0x2b,0xfa,0x2c,0x2a,0x2a,0xe6,0x2c,0x5a,0x2c,0xae,0x33,0xf2,0x2b,0xbe,0x33,0xf2,0x2c,0xae,0x33,0xf2,0x2b,0xd6,0x33,0xf8,0x2b,0xfa,0x33,0xfe,0x2c,0xa2,0x2c,0x42,0x2c,0x48,0x2d,0x5c,0x2c,0x54,0x2d,0x02,0x2c,0x84,0x34,0x04,0x27,0x56,0x2a,0xe0,0x2a,0xe6,0x2a,0xda,0x34,0x0a,0x2a,0xce,0x34,0x10, +0x2c,0x5a,0x2c,0xae,0x2b,0x10,0x2e,0xa0,0x2b,0x10,0x2e,0xa0,0x33,0xf2,0x2b,0xbe,0x34,0x16,0x2a,0x6e,0x34,0x16,0x2a,0x6e,0x33,0xf2,0x2c,0xae,0x34,0x16,0x2c,0xb4,0x34,0x16,0x2c,0xb4,0x33,0xf2,0x2b,0xd6,0x34,0x1c,0x2b,0x16,0x34,0x1c,0x2b,0x16,0x33,0xf8,0x2b,0xfa,0x34,0x22,0x2b,0x6a,0x2a,0x80,0x2b,0x5e,0x2a,0x80,0x2b,0x5e, +0x2c,0x42,0x2c,0x48,0x2c,0xa8,0x2e,0x46,0x2c,0xa8,0x2e,0x46,0x2d,0x5c,0x2c,0x54,0x2a,0xfe,0x2b,0x04,0x2a,0xfe,0x2b,0x04,0x2d,0x02,0x2c,0x84,0x27,0x56,0x27,0x56,0x27,0x56,0x27,0x56,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c, +0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44, +0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x02,0x00,0x25,0x08,0xc7,0x08,0xd6,0x00,0x00,0x08,0xe1,0x08,0xe9,0x00,0x10,0x08,0xeb,0x08,0xf7,0x00,0x19,0x08,0xf9,0x08,0xf9,0x00,0x26,0x09,0x02,0x09,0x02,0x00,0x27,0x09,0x07,0x09,0x2b, +0x00,0x28,0x09,0x3b,0x09,0x4e,0x00,0x4d,0x09,0x59,0x09,0x59,0x00,0x61,0x09,0x5b,0x09,0x68,0x00,0x62,0x09,0x6c,0x09,0x6e,0x00,0x70,0x09,0x72,0x09,0x72,0x00,0x73,0x09,0x7c,0x09,0x7c,0x00,0x74,0x09,0x80,0x09,0xf8,0x00,0x75,0x09,0xfa,0x0a,0x0e,0x00,0xee,0x0a,0x24,0x0a,0x2b,0x01,0x03,0x0a,0x2d,0x0a,0x2d,0x01,0x0b,0x0a,0x3e, +0x0a,0x3f,0x01,0x0c,0x0a,0x43,0x0a,0x43,0x01,0x0e,0x0a,0x54,0x0a,0x5b,0x01,0x0f,0x0a,0x5f,0x0a,0x62,0x01,0x17,0x0a,0x72,0x0a,0xb7,0x01,0x1b,0x0b,0x0c,0x0b,0x18,0x01,0x61,0x0e,0x20,0x0e,0x3e,0x01,0x6e,0x0e,0x4b,0x0e,0x61,0x01,0x8d,0x0e,0x6e,0x0e,0x72,0x01,0xa4,0x0e,0x74,0x0e,0xd5,0x01,0xa9,0x0e,0xd7,0x0e,0xea,0x02,0x0b, +0x0e,0xec,0x0f,0x4f,0x02,0x1f,0x0f,0x62,0x0f,0xc3,0x02,0x83,0x13,0x00,0x13,0x29,0x02,0xe5,0x14,0x04,0x14,0x07,0x03,0x0f,0x14,0x09,0x14,0x16,0x03,0x13,0x14,0x53,0x14,0x5c,0x03,0x21,0x14,0x6b,0x14,0x6b,0x03,0x2b,0x14,0x6d,0x14,0x7b,0x03,0x2c,0x14,0x7d,0x14,0x87,0x03,0x3b,0x14,0xad,0x14,0xae,0x03,0x46,0x00,0x01,0x02,0x2c, +0x02,0xa2,0x00,0x02,0x00,0x0c,0x01,0xca,0x00,0x6f,0x00,0x00,0x19,0xde,0x00,0x00,0x19,0xe4,0x00,0x01,0x19,0xea,0x00,0x00,0x19,0xf0,0x00,0x00,0x19,0xf6,0x00,0x01,0x19,0xea,0x00,0x00,0x19,0xfc,0x00,0x00,0x19,0xfc,0x00,0x00,0x1a,0x02,0x00,0x00,0x19,0xde,0x00,0x00,0x1a,0x08,0x00,0x00,0x1a,0x0e,0x00,0x01,0x1a,0x14,0x00,0x00, +0x1a,0x1a,0x00,0x01,0x1a,0x20,0x00,0x00,0x1a,0x08,0x00,0x00,0x1a,0x0e,0x00,0x00,0x1a,0x26,0x00,0x00,0x1a,0x2c,0x00,0x00,0x1a,0x32,0x00,0x00,0x1a,0x38,0x00,0x00,0x1a,0x3e,0x00,0x00,0x1a,0x44,0x00,0x00,0x1a,0x4a,0x00,0x01,0x1a,0x50,0x00,0x00,0x1a,0x44,0x00,0x00,0x1a,0x56,0x00,0x00,0x1a,0x44,0x00,0x01,0x1a,0x5c,0x00,0x00, +0x1a,0x62,0x00,0x01,0x1a,0x68,0x00,0x00,0x1a,0x6e,0x00,0x00,0x1a,0x74,0x00,0x00,0x1a,0x7a,0x00,0x00,0x1a,0x80,0x00,0x00,0x1a,0x86,0x00,0x01,0x1a,0x8c,0x00,0x00,0x19,0xf6,0x00,0x00,0x1a,0x44,0x00,0x00,0x1a,0x92,0x00,0x00,0x1a,0x98,0x00,0x00,0x1a,0x9e,0x00,0x00,0x1a,0xa4,0x00,0x00,0x1a,0x98,0x00,0x00,0x1a,0xa4,0x00,0x00, +0x19,0xde,0x00,0x00,0x19,0xde,0x00,0x00,0x19,0xde,0x00,0x01,0x1a,0xaa,0x00,0x00,0x1a,0xb0,0x00,0x00,0x1a,0xb6,0x00,0x00,0x1a,0xbc,0x00,0x00,0x1a,0xc2,0x00,0x00,0x19,0xde,0x00,0x00,0x1a,0xc8,0x00,0x01,0x19,0xea,0x00,0x00,0x1a,0x98,0x00,0x00,0x1a,0xce,0x00,0x00,0x1a,0x98,0x00,0x00,0x1a,0x98,0x00,0x00,0x1a,0xd4,0x00,0x00, +0x1a,0xda,0x00,0x00,0x1a,0xd4,0x00,0x00,0x1a,0xda,0x00,0x00,0x1a,0xda,0x00,0x01,0x1a,0xe0,0x00,0x01,0x1a,0xe0,0x00,0x00,0x1a,0xe6,0x00,0x00,0x1a,0xe6,0x00,0x01,0x1a,0xec,0x00,0x00,0x1a,0xf2,0x00,0x00,0x1a,0xf8,0x00,0x01,0x1a,0xfe,0x00,0x00,0x1b,0x04,0x00,0x00,0x1b,0x0a,0x00,0x00,0x1b,0x10,0x00,0x01,0x1b,0x16,0x00,0x01, +0x1b,0x1c,0x00,0x01,0x1b,0x22,0x00,0x00,0x1b,0x28,0x00,0x00,0x1b,0x2e,0x00,0x01,0x1b,0x34,0x00,0x00,0x1b,0x3a,0x00,0x00,0x1b,0x10,0x00,0x00,0x1b,0x10,0x00,0x01,0x1b,0x40,0x00,0x00,0x1b,0x04,0x00,0x00,0x1b,0x46,0x00,0x01,0x1b,0x4c,0x00,0x01,0x1b,0x4c,0x00,0x00,0x1a,0xf2,0x00,0x00,0x1b,0x52,0x00,0x00,0x1b,0x58,0x00,0x00, +0x1b,0x28,0x00,0x00,0x1b,0x5e,0x00,0x00,0x1b,0x64,0x00,0x00,0x1b,0x6a,0x00,0x00,0x1b,0x70,0x00,0x00,0x1b,0x76,0x00,0x00,0x1b,0x7c,0x00,0x00,0x1b,0x82,0x00,0x01,0x1b,0x88,0x00,0x00,0x1b,0x8e,0x00,0x00,0x1b,0x94,0x00,0x00,0x1b,0x9a,0x00,0x00,0x1b,0xa0,0x00,0x00,0x1b,0xa6,0x00,0x00,0x1b,0xac,0x00,0x00,0x1b,0xb2,0x00,0x00, +0x1b,0xb8,0x00,0x01,0x1b,0xbe,0x00,0x05,0x00,0x0c,0x00,0x1a,0x00,0x2c,0x00,0x3e,0x00,0x50,0x00,0x03,0x23,0xd8,0x23,0xde,0x23,0xe4,0x23,0xea,0x1b,0x02,0x1b,0x08,0x00,0x04,0x23,0xe2,0x23,0xe8,0x23,0xca,0x23,0xd0,0x23,0xd6,0x23,0xdc,0x1a,0xf4,0x1a,0xfa,0x00,0x04,0x23,0xdc,0x23,0xe2,0x23,0xe8,0x23,0xee,0x23,0xf4,0x23,0xfa, +0x1b,0xf6,0x1b,0xfc,0x00,0x04,0x23,0xee,0x23,0xf4,0x23,0xa6,0x23,0xac,0x23,0xb2,0x23,0xb8,0x1a,0xd0,0x1a,0xd6,0x00,0x04,0x23,0xdc,0x23,0xe2,0x23,0xe8,0x23,0x9a,0x23,0xee,0x23,0xa6,0x1a,0xbe,0x1a,0xc4,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77, +0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38, +0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x02,0x00,0x03,0x09,0x71,0x09,0x71,0x00,0x00,0x0a,0x63,0x0a,0x64,0x00,0x01,0x14,0x97,0x14,0x98,0x00,0x03,0x00,0x01,0x02,0x20,0x02,0xd2,0x00,0x01,0x00,0x0c,0x01,0x6e, +0x00,0x58,0x00,0x00,0x17,0x26,0x00,0x00,0x17,0x2c,0x00,0x00,0x17,0x38,0x00,0x00,0x17,0x3e,0x00,0x00,0x17,0x44,0x00,0x00,0x17,0x44,0x00,0x00,0x17,0x4a,0x00,0x00,0x17,0x26,0x00,0x00,0x17,0x50,0x00,0x00,0x17,0x56,0x00,0x00,0x17,0x62,0x00,0x00,0x17,0x50,0x00,0x00,0x17,0x56,0x00,0x00,0x17,0x6e,0x00,0x00,0x17,0x74,0x00,0x00, +0x17,0x7a,0x00,0x00,0x17,0x80,0x00,0x00,0x17,0x86,0x00,0x00,0x17,0x8c,0x00,0x00,0x17,0x92,0x00,0x00,0x17,0x8c,0x00,0x00,0x17,0x9e,0x00,0x00,0x17,0x8c,0x00,0x00,0x17,0xaa,0x00,0x00,0x17,0xb6,0x00,0x00,0x17,0xbc,0x00,0x00,0x17,0xc2,0x00,0x00,0x17,0xc8,0x00,0x00,0x17,0xce,0x00,0x00,0x17,0x3e,0x00,0x00,0x17,0x8c,0x00,0x00, +0x17,0xda,0x00,0x00,0x17,0xe0,0x00,0x00,0x17,0xe6,0x00,0x00,0x17,0xec,0x00,0x00,0x17,0xe0,0x00,0x00,0x17,0xec,0x00,0x00,0x17,0x26,0x00,0x00,0x17,0x26,0x00,0x00,0x17,0x26,0x00,0x00,0x17,0xf8,0x00,0x00,0x17,0xfe,0x00,0x00,0x18,0x04,0x00,0x00,0x18,0x0a,0x00,0x00,0x17,0x26,0x00,0x00,0x18,0x10,0x00,0x00,0x17,0xe0,0x00,0x00, +0x18,0x16,0x00,0x00,0x17,0xe0,0x00,0x00,0x17,0xe0,0x00,0x00,0x18,0x1c,0x00,0x00,0x18,0x22,0x00,0x00,0x18,0x1c,0x00,0x00,0x18,0x22,0x00,0x00,0x18,0x22,0x00,0x00,0x18,0x2e,0x00,0x00,0x18,0x2e,0x00,0x00,0x18,0x3a,0x00,0x00,0x18,0x40,0x00,0x00,0x18,0x4c,0x00,0x00,0x18,0x52,0x00,0x00,0x18,0x58,0x00,0x00,0x18,0x70,0x00,0x00, +0x18,0x76,0x00,0x00,0x18,0x82,0x00,0x00,0x18,0x58,0x00,0x00,0x18,0x58,0x00,0x00,0x18,0x4c,0x00,0x00,0x18,0x8e,0x00,0x00,0x18,0x3a,0x00,0x00,0x18,0x9a,0x00,0x00,0x18,0xa0,0x00,0x00,0x18,0x70,0x00,0x00,0x18,0xa6,0x00,0x00,0x18,0xac,0x00,0x00,0x18,0xb2,0x00,0x00,0x18,0xb8,0x00,0x00,0x18,0xbe,0x00,0x00,0x18,0xc4,0x00,0x00, +0x18,0xca,0x00,0x00,0x18,0xd6,0x00,0x00,0x18,0xdc,0x00,0x00,0x18,0xe2,0x00,0x00,0x18,0xe8,0x00,0x00,0x18,0xee,0x00,0x00,0x18,0xf4,0x00,0x00,0x18,0xfa,0x00,0x00,0x19,0x00,0x00,0x58,0x21,0xe8,0x21,0xee,0x21,0xf4,0x21,0xfa,0x21,0xe8,0x22,0x00,0x22,0x06,0x22,0x0c,0x22,0x12,0x22,0x18,0x22,0x1e,0x22,0x24,0x22,0x2a,0x22,0x30, +0x22,0x36,0x22,0x3c,0x22,0x42,0x22,0x36,0x22,0x48,0x22,0x4e,0x22,0x06,0x22,0x54,0x22,0x5a,0x22,0x0c,0x22,0x60,0x22,0x66,0x22,0x6c,0x22,0x72,0x22,0x78,0x22,0x7e,0x22,0x84,0x22,0x8a,0x22,0x90,0x22,0x96,0x22,0x90,0x22,0x84,0x22,0x9c,0x22,0xa2,0x22,0x42,0x22,0x42,0x22,0xa8,0x22,0xae,0x22,0xb4,0x22,0xba,0x22,0xc0,0x22,0xc6, +0x22,0x9c,0x22,0xcc,0x22,0xcc,0x22,0x84,0x22,0xd2,0x22,0xd8,0x22,0xde,0x22,0xe4,0x22,0xea,0x22,0xf0,0x22,0xf6,0x22,0xfc,0x23,0x02,0x23,0x08,0x23,0x0e,0x23,0x14,0x23,0x1a,0x23,0x20,0x23,0x26,0x23,0x2c,0x23,0x32,0x23,0x38,0x23,0x3e,0x23,0x44,0x23,0x4a,0x23,0x50,0x23,0x56,0x23,0x5c,0x22,0xe4,0x23,0x62,0x23,0x68,0x23,0x6e, +0x23,0x74,0x23,0x7a,0x23,0x80,0x23,0x86,0x23,0x8c,0x23,0x92,0x23,0x98,0x23,0x9e,0x23,0xa4,0x23,0xaa,0x00,0x02,0x00,0x1d,0x09,0x2c,0x09,0x2d,0x00,0x00,0x09,0x2f,0x09,0x30,0x00,0x02,0x09,0x32,0x09,0x33,0x00,0x04,0x09,0x37,0x09,0x37,0x00,0x06,0x09,0x73,0x09,0x75,0x00,0x07,0x09,0x7e,0x09,0x7e,0x00,0x0a,0x0a,0x0f,0x0a,0x13, +0x00,0x0b,0x0a,0x16,0x0a,0x19,0x00,0x10,0x0a,0x1b,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x15,0x0a,0x22,0x0a,0x22,0x00,0x17,0x0a,0x4b,0x0a,0x4f,0x00,0x18,0x0a,0x51,0x0a,0x53,0x00,0x1d,0x0a,0x65,0x0a,0x69,0x00,0x20,0x0a,0x6c,0x0a,0x6e,0x00,0x25,0x0a,0x70,0x0a,0x71,0x00,0x28,0x0e,0x1a,0x0e,0x1d,0x00,0x2a,0x0e,0x62, +0x0e,0x6a,0x00,0x2e,0x13,0x2a,0x13,0x2b,0x00,0x37,0x13,0x2d,0x13,0x2e,0x00,0x39,0x13,0x30,0x13,0x32,0x00,0x3b,0x13,0x36,0x13,0x37,0x00,0x3e,0x13,0x39,0x13,0x3b,0x00,0x40,0x13,0x3d,0x13,0x3e,0x00,0x43,0x13,0x41,0x13,0x44,0x00,0x45,0x13,0xe9,0x13,0xe9,0x00,0x49,0x14,0x17,0x14,0x17,0x00,0x4a,0x14,0x5d,0x14,0x61,0x00,0x4b, +0x14,0x63,0x14,0x6a,0x00,0x50,0x00,0x02,0x00,0x1d,0x09,0x2c,0x09,0x2d,0x00,0x00,0x09,0x2f,0x09,0x30,0x00,0x02,0x09,0x32,0x09,0x33,0x00,0x04,0x09,0x37,0x09,0x37,0x00,0x06,0x09,0x73,0x09,0x75,0x00,0x07,0x09,0x7e,0x09,0x7e,0x00,0x0a,0x0a,0x0f,0x0a,0x13,0x00,0x0b,0x0a,0x16,0x0a,0x19,0x00,0x10,0x0a,0x1b,0x0a,0x1b,0x00,0x14, +0x0a,0x1e,0x0a,0x1f,0x00,0x15,0x0a,0x22,0x0a,0x22,0x00,0x17,0x0a,0x4b,0x0a,0x4f,0x00,0x18,0x0a,0x51,0x0a,0x53,0x00,0x1d,0x0a,0x65,0x0a,0x69,0x00,0x20,0x0a,0x6c,0x0a,0x6e,0x00,0x25,0x0a,0x70,0x0a,0x71,0x00,0x28,0x0e,0x1a,0x0e,0x1d,0x00,0x2a,0x0e,0x62,0x0e,0x6a,0x00,0x2e,0x13,0x2a,0x13,0x2b,0x00,0x37,0x13,0x2d,0x13,0x2e, +0x00,0x39,0x13,0x30,0x13,0x32,0x00,0x3b,0x13,0x36,0x13,0x37,0x00,0x3e,0x13,0x39,0x13,0x3b,0x00,0x40,0x13,0x3d,0x13,0x3e,0x00,0x43,0x13,0x41,0x13,0x44,0x00,0x45,0x13,0xe9,0x13,0xe9,0x00,0x49,0x14,0x17,0x14,0x17,0x00,0x4a,0x14,0x5d,0x14,0x61,0x00,0x4b,0x14,0x63,0x14,0x6a,0x00,0x50,0x00,0x01,0x00,0x9a,0x01,0x10,0x00,0x01, +0x00,0x0c,0x00,0x6a,0x00,0x17,0x00,0x00,0x13,0xae,0x00,0x00,0x13,0xae,0x00,0x00,0x13,0xd8,0x00,0x00,0x13,0xe4,0x00,0x00,0x14,0x14,0x00,0x00,0x14,0x20,0x00,0x00,0x14,0x2c,0x00,0x00,0x14,0x50,0x00,0x00,0x14,0x6e,0x00,0x00,0x13,0xae,0x00,0x00,0x14,0xa4,0x00,0x00,0x14,0xa4,0x00,0x00,0x14,0xb0,0x00,0x00,0x14,0xc2,0x00,0x00, +0x14,0xda,0x00,0x00,0x14,0xe0,0x00,0x00,0x14,0xe6,0x00,0x00,0x14,0xf8,0x00,0x00,0x15,0x04,0x00,0x00,0x15,0x10,0x00,0x00,0x15,0x10,0x00,0x00,0x15,0x4c,0x00,0x00,0x15,0x82,0x00,0x17,0x21,0x30,0x21,0x36,0x21,0x3c,0x21,0x42,0x21,0x48,0x21,0x42,0x21,0x4e,0x21,0x42,0x21,0x54,0x21,0x36,0x21,0x42,0x21,0x5a,0x21,0x60,0x21,0x66, +0x21,0x6c,0x21,0x72,0x21,0x78,0x21,0x7e,0x21,0x84,0x21,0x8a,0x21,0x8a,0x21,0x90,0x21,0x96,0x00,0x02,0x00,0x13,0x09,0x2e,0x09,0x2e,0x00,0x00,0x09,0x31,0x09,0x31,0x00,0x01,0x09,0x77,0x09,0x77,0x00,0x02,0x09,0x7f,0x09,0x7f,0x00,0x03,0x0a,0x1a,0x0a,0x1a,0x00,0x04,0x0a,0x21,0x0a,0x21,0x00,0x05,0x0a,0x23,0x0a,0x23,0x00,0x06, +0x0a,0x50,0x0a,0x50,0x00,0x07,0x0a,0x6f,0x0a,0x6f,0x00,0x08,0x0e,0x1e,0x0e,0x1e,0x00,0x09,0x0e,0x6b,0x0e,0x6c,0x00,0x0a,0x13,0x2c,0x13,0x2c,0x00,0x0c,0x13,0x2f,0x13,0x2f,0x00,0x0d,0x13,0x33,0x13,0x35,0x00,0x0e,0x13,0x38,0x13,0x38,0x00,0x11,0x13,0x3c,0x13,0x3c,0x00,0x12,0x13,0x3f,0x13,0x40,0x00,0x13,0x14,0x62,0x14,0x62, +0x00,0x15,0x14,0x6c,0x14,0x6c,0x00,0x16,0x00,0x02,0x00,0x13,0x09,0x2e,0x09,0x2e,0x00,0x00,0x09,0x31,0x09,0x31,0x00,0x01,0x09,0x77,0x09,0x77,0x00,0x02,0x09,0x7f,0x09,0x7f,0x00,0x03,0x0a,0x1a,0x0a,0x1a,0x00,0x04,0x0a,0x21,0x0a,0x21,0x00,0x05,0x0a,0x23,0x0a,0x23,0x00,0x06,0x0a,0x50,0x0a,0x50,0x00,0x07,0x0a,0x6f,0x0a,0x6f, +0x00,0x08,0x0e,0x1e,0x0e,0x1e,0x00,0x09,0x0e,0x6b,0x0e,0x6c,0x00,0x0a,0x13,0x2c,0x13,0x2c,0x00,0x0c,0x13,0x2f,0x13,0x2f,0x00,0x0d,0x13,0x33,0x13,0x35,0x00,0x0e,0x13,0x38,0x13,0x38,0x00,0x11,0x13,0x3c,0x13,0x3c,0x00,0x12,0x13,0x3f,0x13,0x40,0x00,0x13,0x14,0x62,0x14,0x62,0x00,0x15,0x14,0x6c,0x14,0x6c,0x00,0x16,0x00,0x01, +0x00,0x32,0x00,0x38,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x11,0x0e,0x00,0x0f,0x20,0x6e,0x20,0x74,0x20,0x7a,0x20,0x80,0x20,0x86,0x20,0x8c,0x20,0x92,0x20,0x98,0x20,0x9e,0x20,0xa4,0x20,0xaa,0x20,0xb0,0x20,0x7a,0x20,0xb6,0x20,0xbc,0x00,0x01,0x00,0x01,0x0b,0x5e,0x00,0x02,0x00,0x07,0x0a,0x43,0x0a,0x43,0x00,0x00, +0x0b,0x6f,0x0b,0x6f,0x00,0x01,0x0b,0x75,0x0b,0x75,0x00,0x02,0x0b,0x77,0x0b,0x77,0x00,0x03,0x0b,0x7a,0x0b,0x7a,0x00,0x04,0x0b,0x7d,0x0b,0x7d,0x00,0x05,0x0b,0x8d,0x0b,0x95,0x00,0x06,0x00,0x01,0x02,0xc8,0x02,0xe4,0x00,0x04,0x00,0x0c,0x00,0x46,0x00,0x0e,0x00,0x00,0x10,0xa8,0x00,0x02,0x10,0xa8,0x00,0x02,0x10,0xa8,0x00,0x02, +0x10,0xa8,0x00,0x00,0x10,0xa8,0x00,0x01,0x10,0xa8,0x00,0x01,0x10,0xa8,0x00,0x01,0x10,0xa8,0x00,0x01,0x10,0xa8,0x00,0x02,0x10,0xa8,0x00,0x01,0x10,0xa8,0x00,0x03,0x10,0xa8,0x00,0x03,0x10,0xa8,0x00,0x03,0x10,0xa8,0x00,0x50,0x20,0x28,0x20,0x2e,0x20,0x34,0x20,0x3a,0x20,0x40,0x20,0x46,0x20,0x4c,0x20,0x52,0x20,0x58,0x20,0x5e, +0x20,0x64,0x20,0x6a,0x20,0x70,0x20,0x76,0x20,0x7c,0x20,0x82,0x20,0x88,0x20,0x8e,0x20,0x94,0x20,0x9a,0x20,0xa0,0x20,0xa6,0x20,0xac,0x20,0xb2,0x20,0xb8,0x20,0xbe,0x20,0xc4,0x20,0xca,0x20,0xd0,0x20,0xd6,0x20,0xdc,0x20,0xe2,0x20,0xe8,0x20,0xee,0x20,0xf4,0x20,0xfa,0x21,0x00,0x21,0x06,0x21,0x0c,0x21,0x12,0x20,0xb8,0x20,0xbe, +0x20,0xc4,0x20,0xca,0x21,0x18,0x21,0x1e,0x21,0x24,0x21,0x2a,0x21,0x30,0x21,0x36,0x21,0x3c,0x21,0x42,0x21,0x48,0x21,0x4e,0x21,0x54,0x21,0x5a,0x21,0x60,0x21,0x66,0x21,0x6c,0x21,0x72,0x21,0x60,0x21,0x66,0x21,0x6c,0x21,0x72,0x20,0xc4,0x21,0x78,0x21,0x7e,0x21,0x84,0x21,0x8a,0x21,0x90,0x21,0x42,0x21,0x96,0x21,0x9c,0x21,0xa2, +0x21,0xa8,0x21,0xae,0x21,0xb4,0x21,0xba,0x21,0x72,0x21,0xc0,0x21,0xc6,0x21,0xa8,0x21,0xcc,0x21,0xd2,0x21,0xd8,0x21,0xde,0x21,0xe4,0x21,0xea,0x21,0xf0,0x21,0xf6,0x21,0xfc,0x22,0x02,0x22,0x08,0x22,0x0e,0x21,0xc0,0x20,0x9a,0x22,0x14,0x22,0x1a,0x22,0x20,0x22,0x26,0x22,0x2c,0x22,0x32,0x22,0x38,0x22,0x3e,0x22,0x44,0x22,0x4a, +0x22,0x50,0x22,0x3e,0x22,0x56,0x22,0x5c,0x22,0x62,0x22,0x68,0x22,0x6e,0x22,0x74,0x22,0x7a,0x22,0x80,0x22,0x6e,0x22,0x74,0x22,0x7a,0x22,0x80,0x22,0x6e,0x22,0x74,0x22,0x7a,0x22,0x80,0x21,0x18,0x21,0x1e,0x21,0x24,0x21,0x2a,0x21,0x18,0x21,0x1e,0x21,0x24,0x21,0x2a,0x21,0x48,0x21,0x4e,0x21,0x54,0x21,0x5a,0x21,0x48,0x21,0x4e, +0x21,0x54,0x21,0x5a,0x22,0x86,0x22,0x8c,0x22,0x92,0x22,0x98,0x22,0x9e,0x22,0xa4,0x22,0xaa,0x22,0xb0,0x20,0x40,0x20,0x46,0x20,0x4c,0x20,0x52,0x20,0x88,0x20,0x8e,0x20,0x94,0x20,0x9a,0x20,0xa0,0x20,0xa6,0x20,0xac,0x20,0xb2,0x10,0x68,0x22,0xb6,0x20,0x9a,0x22,0xbc,0x21,0x48,0x21,0x4e,0x21,0x54,0x21,0x5a,0x21,0x60,0x21,0x66, +0x21,0x6c,0x21,0x72,0x22,0x2c,0x22,0x32,0x22,0xc2,0x22,0x3e,0x22,0x56,0x22,0x5c,0x22,0x62,0x22,0x68,0x22,0x44,0x22,0x4a,0x22,0x50,0x22,0x3e,0x22,0x44,0x22,0x4a,0x22,0x50,0x22,0x3e,0x22,0x44,0x22,0x4a,0x22,0x50,0x22,0x3e,0x22,0x44,0x22,0x4a,0x22,0x50,0x22,0x3e,0x20,0x40,0x20,0x46,0x20,0x4c,0x20,0x52,0x20,0x58,0x20,0x5e, +0x20,0x64,0x20,0x6a,0x20,0x70,0x20,0x76,0x20,0x7c,0x20,0x82,0x20,0x88,0x20,0x8e,0x20,0x94,0x20,0x9a,0x20,0xa0,0x20,0xa6,0x20,0xac,0x20,0xb2,0x22,0xc8,0x22,0xce,0x22,0xd4,0x22,0xda,0x22,0xe0,0x22,0xe6,0x22,0xec,0x20,0xdc,0x21,0x00,0x21,0x06,0x21,0x0c,0x21,0x12,0x22,0xc8,0x22,0xce,0x22,0xd4,0x22,0xda,0x21,0x18,0x21,0x1e, +0x21,0x24,0x21,0x2a,0x21,0x30,0x21,0x36,0x21,0x3c,0x21,0x42,0x21,0x48,0x21,0x4e,0x21,0x54,0x21,0x5a,0x21,0x60,0x21,0x66,0x21,0x6c,0x21,0x72,0x21,0x8a,0x21,0x90,0x21,0x42,0x21,0x96,0x21,0x9c,0x21,0xa2,0x21,0xa8,0x21,0xae,0x21,0xc6,0x21,0xa8,0x21,0xcc,0x21,0xd2,0x21,0xd8,0x21,0xde,0x21,0xe4,0x21,0xea,0x22,0x08,0x22,0x0e, +0x21,0xc0,0x20,0x9a,0x22,0x14,0x22,0x1a,0x22,0x20,0x22,0x26,0x22,0x2c,0x22,0x32,0x22,0x38,0x22,0x3e,0x22,0x44,0x22,0x4a,0x22,0x50,0x22,0x3e,0x22,0x56,0x22,0x5c,0x22,0x62,0x22,0x68,0x20,0xb8,0x20,0xbe,0x20,0xc4,0x20,0xca,0x20,0x58,0x20,0x5e,0x20,0x64,0x20,0x6a,0x21,0x30,0x21,0x36,0x21,0x3c,0x21,0x42,0x21,0xd8,0x21,0xde, +0x21,0xe4,0x21,0xea,0x22,0x9e,0x22,0xa4,0x22,0xaa,0x22,0xb0,0x20,0x70,0x20,0x76,0x20,0x7c,0x20,0x82,0x20,0x88,0x20,0x8e,0x20,0x94,0x20,0x9a,0x20,0xa0,0x20,0xa6,0x20,0xac,0x20,0xb2,0x22,0x56,0x22,0x5c,0x22,0x62,0x22,0x68,0x00,0x02,0x00,0x04,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9, +0x00,0x0a,0x12,0x59,0x12,0x5b,0x00,0x0b,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb4,0x00,0xba,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00, +0x0d,0x9c,0x00,0x50,0x20,0x1a,0x1d,0x5c,0x1f,0xba,0x20,0x20,0x20,0x26,0x20,0x2c,0x20,0x32,0x20,0x38,0x20,0x3e,0x20,0x44,0x20,0x32,0x20,0x4a,0x20,0x50,0x20,0x56,0x20,0x3e,0x20,0x5c,0x20,0x32,0x20,0x62,0x1e,0xd6,0x20,0x68,0x20,0x6e,0x1e,0xd6,0x20,0x74,0x20,0x7a,0x20,0x5c,0x20,0x4a,0x20,0x80,0x20,0x86,0x20,0x32,0x20,0x32, +0x20,0x32,0x20,0x4a,0x20,0x4a,0x20,0x56,0x20,0x56,0x20,0x32,0x20,0x68,0x1d,0x5c,0x20,0x26,0x20,0x2c,0x20,0x50,0x20,0x56,0x20,0x3e,0x20,0x4a,0x20,0x86,0x20,0x80,0x20,0x8c,0x20,0x80,0x20,0x8c,0x1d,0x5c,0x1f,0xba,0x20,0x20,0x20,0x26,0x20,0x2c,0x20,0x92,0x20,0x6e,0x20,0x44,0x20,0x92,0x20,0x4a,0x20,0x50,0x20,0x56,0x20,0x5c, +0x20,0x62,0x1e,0xd6,0x20,0x6e,0x1e,0xd6,0x20,0x7a,0x20,0x5c,0x20,0x4a,0x20,0x80,0x20,0x86,0x20,0x98,0x20,0x9e,0x20,0xa4,0x20,0xaa,0x20,0x56,0x20,0xb0,0x20,0x9e,0x20,0xb6,0x20,0xbc,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f, +0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x04,0xda,0x05,0x14,0x00,0x07,0x00,0x0c,0x00,0x6a,0x00,0x17,0x00,0x01,0x0c,0xba,0x00,0x00,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x06,0x0c,0xba, +0x00,0x01,0x0c,0xba,0x00,0x04,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x03,0x0c,0xba,0x00,0x02,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x00,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x05,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x51,0x1f,0x88, +0x1f,0x8e,0x1f,0x94,0x1f,0x8e,0x1f,0x9a,0x1f,0xa0,0x1f,0xa6,0x1f,0xac,0x1f,0xb2,0x1f,0xb8,0x1f,0xb2,0x1f,0xbe,0x1f,0xc4,0x1f,0xc4,0x1f,0xca,0x1f,0xd0,0x1f,0xd6,0x1f,0xd0,0x1f,0xdc,0x1f,0xe2,0x1f,0xe2,0x1f,0xe8,0x1f,0xee,0x1f,0xf4,0x1f,0xee,0x1f,0xfa,0x20,0x00,0x20,0x06,0x20,0x0c,0x1f,0xd0,0x20,0x12,0x1f,0xd0,0x20,0x18, +0x20,0x1e,0x20,0x1e,0x20,0x24,0x20,0x2a,0x20,0x30,0x20,0x2a,0x20,0x36,0x1c,0x7c,0x20,0x3c,0x20,0x42,0x1e,0xf8,0x20,0x48,0x1e,0xf8,0x20,0x4e,0x20,0x54,0x1f,0xe2,0x20,0x5a,0x1e,0x92,0x20,0x60,0x1e,0x92,0x20,0x66,0x20,0x6c,0x20,0x24,0x1d,0x78,0x1b,0xc8,0x20,0x72,0x1b,0xc8,0x20,0x78,0x20,0x7e,0x1d,0xf6,0x1f,0x28,0x20,0x84, +0x20,0x8a,0x20,0x84,0x20,0x90,0x20,0x96,0x20,0x7e,0x20,0x42,0x1e,0xf8,0x20,0x9c,0x1e,0xf8,0x20,0x4e,0x20,0x54,0x1f,0xe2,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x1e,0xec,0x1d,0x90,0x20,0xba,0x1d,0x90,0x20,0xc0,0x20,0xc6,0x20,0xc6,0x20,0xcc,0x20,0xd2,0x20,0xd8,0x20,0xde,0x20,0xe4,0x20,0xea, +0x20,0xf0,0x20,0xf6,0x20,0xfc,0x21,0x02,0x20,0xfc,0x21,0x08,0x20,0x7e,0x1d,0xf6,0x1f,0x88,0x21,0x0e,0x21,0x14,0x21,0x0e,0x21,0x1a,0x1c,0x7c,0x21,0x20,0x20,0x42,0x1e,0xf8,0x20,0x9c,0x1e,0xf8,0x20,0x4e,0x20,0x54,0x1f,0xe2,0x21,0x26,0x21,0x2c,0x21,0x32,0x21,0x2c,0x21,0x38,0x21,0x3e,0x21,0x44,0x21,0x4a,0x21,0x50,0x21,0x56, +0x21,0x50,0x21,0x5c,0x1d,0x1e,0x21,0x62,0x21,0x68,0x21,0x6e,0x21,0x74,0x21,0x6e,0x21,0x7a,0x21,0x80,0x21,0x86,0x21,0x8c,0x1c,0x76,0x21,0x92,0x1c,0x76,0x21,0x98,0x1e,0x7a,0x21,0x9e,0x21,0x4a,0x21,0xa4,0x21,0xaa,0x21,0xa4,0x21,0xb0,0x1d,0x1e,0x21,0x62,0x21,0xb6,0x21,0xbc,0x21,0xc2,0x21,0xbc,0x21,0xc8,0x1e,0xf2,0x20,0x06, +0x21,0xce,0x21,0xd4,0x21,0xda,0x21,0xd4,0x21,0xe0,0x21,0xe6,0x21,0xec,0x21,0xf2,0x21,0xf8,0x21,0xfe,0x21,0xf8,0x22,0x04,0x1c,0x7c,0x20,0x3c,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x1f,0x34,0x22,0x0a,0x22,0x10,0x22,0x0a,0x22,0x16,0x22,0x1c,0x21,0xe6,0x1f,0x0a,0x22,0x22,0x22,0x28,0x22,0x22, +0x22,0x2e,0x21,0x20,0x1c,0x7c,0x20,0x42,0x22,0x34,0x22,0x3a,0x22,0x34,0x22,0x40,0x20,0x7e,0x1d,0xf6,0x20,0x42,0x22,0x34,0x22,0x3a,0x22,0x34,0x22,0x40,0x20,0x7e,0x1d,0xf6,0x20,0x42,0x22,0x34,0x22,0x3a,0x22,0x34,0x22,0x40,0x20,0x7e,0x1d,0xf6,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x1e,0xbc, +0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x22,0x46,0x20,0xd2,0x20,0xd8,0x20,0xde,0x20,0xe4,0x22,0x4c,0x22,0x52,0x22,0x46,0x20,0xd2,0x20,0xd8,0x20,0xde,0x20,0xe4,0x22,0x4c,0x22,0x52,0x20,0x42,0x22,0x58,0x22,0x5e,0x22,0x58,0x22,0x64,0x20,0x7e,0x1d,0xf6,0x21,0x68,0x21,0x6e,0x21,0x74,0x21,0x6e,0x21,0x7a, +0x21,0x80,0x21,0x86,0x1f,0xac,0x1f,0xb2,0x1f,0xb8,0x1f,0xb2,0x1f,0xbe,0x1f,0xc4,0x1f,0xc4,0x20,0x0c,0x1f,0xd0,0x20,0x12,0x1f,0xd0,0x20,0x18,0x20,0x1e,0x20,0x1e,0x20,0x24,0x20,0x2a,0x20,0x30,0x20,0x2a,0x20,0x36,0x1c,0x7c,0x20,0x3c,0x1e,0xec,0x1d,0x90,0x20,0xba,0x1d,0x90,0x20,0xc0,0x20,0xc6,0x20,0xc6,0x20,0xcc,0x20,0xd2, +0x20,0xd8,0x20,0xde,0x20,0xe4,0x20,0xea,0x20,0xf0,0x20,0xf6,0x20,0xfc,0x21,0x02,0x20,0xfc,0x21,0x08,0x20,0x7e,0x1d,0xf6,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x1f,0x0a,0x22,0x22,0x22,0x28,0x22,0x22,0x22,0x2e,0x21,0x20,0x1c,0x7c,0x1f,0x34,0x22,0x0a,0x22,0x6a,0x22,0x70,0x22,0x76,0x22,0x1c, +0x21,0xe6,0x22,0x7c,0x22,0x0a,0x22,0x10,0x22,0x82,0x22,0x16,0x22,0x88,0x22,0x8e,0x1f,0x34,0x22,0x0a,0x22,0x6a,0x22,0x70,0x22,0x76,0x22,0x1c,0x21,0xe6,0x22,0x7c,0x22,0x0a,0x22,0x10,0x22,0x82,0x22,0x16,0x22,0x88,0x22,0x8e,0x22,0x94,0x1f,0xb2,0x1f,0xb8,0x1f,0xb2,0x1f,0xbe,0x22,0x9a,0x22,0x9a,0x1f,0xca,0x1f,0xd0,0x1f,0xd6, +0x1f,0xd0,0x1f,0xdc,0x22,0xa0,0x1f,0xe2,0x1f,0xe8,0x1f,0xee,0x1f,0xf4,0x1f,0xee,0x1f,0xfa,0x20,0x00,0x20,0x06,0x20,0x0c,0x1f,0xd0,0x20,0x12,0x1f,0xd0,0x20,0x18,0x20,0x1e,0x20,0x1e,0x20,0x24,0x20,0x2a,0x20,0x30,0x20,0x2a,0x20,0x36,0x1c,0x7c,0x20,0x3c,0x1e,0xe6,0x1f,0x58,0x22,0xa6,0x1f,0x58,0x22,0xac,0x22,0xb2,0x22,0xb8, +0x22,0xbe,0x22,0xc4,0x21,0x32,0x22,0xc4,0x1c,0x16,0x1d,0x5a,0x21,0x44,0x1f,0x28,0x20,0x84,0x20,0x8a,0x20,0x84,0x20,0x90,0x20,0x96,0x20,0x7e,0x1e,0xe6,0x1f,0x58,0x22,0xa6,0x1f,0x58,0x22,0xac,0x22,0xb2,0x22,0xb8,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x1e,0xec,0x1d,0x90,0x20,0xba,0x1d,0x90, +0x20,0xc0,0x20,0xc6,0x20,0xc6,0x20,0xcc,0x20,0xd2,0x20,0xd8,0x20,0xde,0x20,0xe4,0x20,0xea,0x20,0xf0,0x1f,0x88,0x21,0x0e,0x21,0x14,0x21,0x0e,0x21,0x1a,0x1c,0x7c,0x21,0x20,0x21,0x26,0x21,0x2c,0x21,0x32,0x21,0x2c,0x21,0x38,0x21,0x3e,0x21,0x44,0x21,0x4a,0x21,0x50,0x21,0x56,0x21,0x50,0x21,0x5c,0x1d,0x1e,0x21,0x62,0x21,0x8c, +0x1c,0x76,0x21,0x92,0x1c,0x76,0x21,0x98,0x1e,0x7a,0x21,0x9e,0x21,0x4a,0x21,0xa4,0x21,0xaa,0x21,0xa4,0x21,0xb0,0x1d,0x1e,0x21,0x62,0x21,0xce,0x21,0xd4,0x21,0xda,0x21,0xd4,0x21,0xe0,0x21,0xe6,0x21,0xec,0x21,0xf2,0x21,0xf8,0x21,0xfe,0x21,0xf8,0x22,0x04,0x1c,0x7c,0x20,0x3c,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae, +0x20,0xb4,0x20,0xb4,0x1f,0x34,0x22,0x0a,0x22,0x10,0x22,0x0a,0x22,0x16,0x22,0x1c,0x21,0xe6,0x1f,0x0a,0x22,0x22,0x22,0x28,0x22,0x22,0x22,0x2e,0x21,0x20,0x1c,0x7c,0x22,0xca,0x20,0xea,0x22,0xd0,0x22,0xd6,0x22,0xdc,0x22,0xe2,0x22,0xe8,0x22,0xee,0x22,0xf4,0x22,0xfa,0x22,0xf4,0x23,0x00,0x23,0x06,0x1e,0x98,0x23,0x0c,0x23,0x12, +0x23,0x18,0x23,0x12,0x23,0x1e,0x23,0x24,0x23,0x2a,0x23,0x30,0x23,0x36,0x23,0x3c,0x23,0x36,0x21,0xb0,0x22,0xbe,0x23,0x42,0x20,0xcc,0x23,0x48,0x23,0x4e,0x23,0x54,0x23,0x5a,0x20,0xea,0x20,0xf0,0x23,0x60,0x23,0x66,0x1b,0xc8,0x23,0x66,0x23,0x6c,0x23,0x72,0x1c,0x34,0x23,0x78,0x23,0x7e,0x23,0x84,0x23,0x7e,0x23,0x8a,0x23,0x90, +0x23,0x96,0x22,0xee,0x22,0xf4,0x22,0xfa,0x22,0xf4,0x23,0x00,0x23,0x06,0x1e,0x98,0x23,0x9c,0x23,0xa2,0x23,0xa8,0x23,0xa2,0x20,0x36,0x23,0xae,0x23,0xb4,0x1e,0xec,0x23,0xba,0x23,0xc0,0x23,0xba,0x22,0x2e,0x20,0xc6,0x1c,0x7c,0x00,0x02,0x00,0x09,0x0b,0x61,0x0b,0x61,0x00,0x00,0x0b,0xc0,0x0b,0xc3,0x00,0x01,0x0b,0xc5,0x0b,0xc7, +0x00,0x05,0x0b,0xca,0x0b,0xcf,0x00,0x08,0x0b,0xd6,0x0b,0xd7,0x00,0x0e,0x0b,0xd9,0x0b,0xda,0x00,0x10,0x0b,0xdc,0x0b,0xdd,0x00,0x12,0x0b,0xe1,0x0b,0xe1,0x00,0x14,0x12,0x5c,0x12,0x5d,0x00,0x15,0x00,0x02,0x00,0x07,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a, +0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x0b,0xdf,0x0b,0xdf,0x00,0x4c,0x12,0x5f,0x12,0x62,0x00,0x4d,0x00,0x01,0x01,0x88,0x01,0xbc,0x00,0x02,0x00,0x0c,0x00,0x46,0x00,0x0e,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00, +0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x50,0x1a,0x70,0x1a,0x7c,0x1e,0xa8,0x1e,0xae,0x1e,0xb4,0x1e,0xba,0x1e,0xc0,0x1e,0xc6,0x1d,0x88,0x1e,0xcc,0x1e,0xd2,0x1b,0x8a,0x19,0xda,0x1b,0x30,0x1c,0x1a,0x1e,0xd8,0x16,0xaa,0x1e,0xde, +0x1e,0xe4,0x1e,0xea,0x19,0xda,0x1b,0x30,0x1e,0xf0,0x1e,0xf6,0x18,0xea,0x1c,0xaa,0x1e,0xfc,0x1f,0x02,0x1b,0xf0,0x1f,0x08,0x1b,0xf0,0x1f,0x0e,0x1f,0x14,0x1f,0x1a,0x1c,0x0e,0x17,0x5e,0x1c,0x32,0x1f,0x20,0x1f,0x26,0x1f,0x2c,0x1f,0x32,0x1f,0x38,0x1f,0x3e,0x1f,0x44,0x1f,0x4a,0x1c,0x50,0x1f,0x50,0x1f,0x56,0x1c,0xda,0x1f,0x5c, +0x1f,0x62,0x1f,0x02,0x1f,0x68,0x1f,0x6e,0x1f,0x74,0x1f,0x7a,0x1d,0x16,0x1f,0x80,0x1d,0x16,0x1f,0x80,0x1d,0x16,0x1f,0x80,0x1e,0xf0,0x1e,0xf6,0x1e,0xf0,0x1e,0xf6,0x1e,0xfc,0x1f,0x02,0x1e,0xfc,0x1f,0x02,0x1d,0x3a,0x1f,0x86,0x1f,0x8c,0x1f,0x2c,0x1e,0xa8,0x1e,0xae,0x1d,0x88,0x1e,0xcc,0x1e,0xd2,0x1f,0x92,0x1f,0x98,0x1c,0xaa, +0x1e,0xfc,0x1f,0x02,0x1b,0xf0,0x1f,0x9e,0x1f,0x62,0x1f,0x02,0x1f,0x74,0x1f,0x7a,0x1f,0x68,0x1f,0x6e,0x1f,0x68,0x1f,0x6e,0x1f,0x68,0x1f,0x6e,0x1f,0x68,0x1f,0x6e,0x1e,0xa8,0x1e,0xae,0x1e,0xb4,0x1e,0xba,0x1e,0xc0,0x1e,0xc6,0x1d,0x88,0x1e,0xcc,0x1e,0xd2,0x1b,0x8a,0x1a,0x3a,0x1d,0x8e,0x18,0xf0,0x17,0x5e,0x1e,0xe4,0x1e,0xea, +0x1a,0x3a,0x1d,0x8e,0x1e,0xf0,0x1e,0xf6,0x18,0xea,0x1c,0xaa,0x1e,0xfc,0x1f,0x02,0x1b,0xf0,0x1f,0x0e,0x1c,0x0e,0x17,0x5e,0x1c,0x32,0x1f,0x20,0x1f,0x32,0x1f,0x38,0x1f,0x3e,0x1f,0x44,0x1f,0x50,0x1f,0x56,0x1c,0xda,0x1f,0x5c,0x1f,0x62,0x1f,0x02,0x1f,0x68,0x1f,0x6e,0x1f,0x74,0x1f,0x7a,0x19,0xda,0x1b,0x30,0x1e,0xb4,0x1e,0xba, +0x18,0xea,0x1c,0xaa,0x1f,0x3e,0x1f,0x44,0x1f,0x8c,0x1f,0xa4,0x1e,0xc0,0x1e,0xc6,0x1d,0x88,0x1e,0xcc,0x1e,0xd2,0x1b,0x8a,0x1f,0x74,0x1f,0x7a,0x00,0x02,0x00,0x08,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc8,0x0b,0xc9,0x00,0x04,0x0b,0xd0, +0x0b,0xd5,0x00,0x06,0x0b,0xd8,0x0b,0xd8,0x00,0x0c,0x0b,0xdb,0x0b,0xdb,0x00,0x0d,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x40,0x00,0x56,0x00,0x01, +0x00,0x0c,0x00,0x3a,0x00,0x0b,0x00,0x00,0x05,0x94,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x05,0x94,0x00,0x00,0x18,0x2a,0x00,0x00,0x18,0x2a,0x00,0x00,0x1e,0x06,0x00,0x00,0x1e,0x06,0x00,0x00,0x17,0x46,0x00,0x00,0x1e,0x06,0x00,0x02,0x1d,0xde,0x16,0x70,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b, +0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x01,0x00,0xb4,0x00,0xe8,0x00,0x04,0x00,0x0c,0x00,0x42,0x00,0x0d,0x00,0x00,0x05,0x36,0x00,0x00,0x05,0x36,0x00,0x01,0x05,0x36,0x00,0x01,0x05,0x36,0x00,0x03,0x05,0x36,0x00,0x01,0x05,0x36,0x00,0x01,0x05,0x36, +0x00,0x01,0x1d,0xb4,0x00,0x01,0x05,0x36,0x00,0x02,0x05,0x36,0x00,0x01,0x1d,0xba,0x00,0x01,0x05,0x36,0x00,0x03,0x1d,0xc0,0x00,0x0e,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x17,0xa2,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x15,0xf2,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x1d,0xa2,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x1d,0xa8,0x1d,0x90,0x1d,0x96,0x1d,0x9c, +0x17,0xa2,0x1d,0x90,0x1d,0xae,0x1d,0x9c,0x1d,0xb4,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x1d,0xb4,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x19,0x22,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x19,0x22,0x1d,0x90,0x1d,0xae,0x1d,0x9c,0x1d,0xba,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x19,0x22,0x1d,0xc0,0x1d,0xae,0x1d,0xc6,0x1d,0x06,0x1d,0xc0,0x1d,0xcc,0x1d,0xc6, +0x1a,0x84,0x1d,0xc0,0x1d,0xcc,0x1d,0xc6,0x1a,0x84,0x00,0x02,0x00,0x08,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc8,0x0b,0xc9,0x00,0x04,0x0b,0xd1,0x0b,0xd5,0x00,0x06,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x0b,0xdb,0x0b,0xdb,0x00,0x0c,0x00,0x02, +0x00,0x04,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x12,0x59,0x12,0x5b,0x00,0x0b,0x00,0x01,0x00,0x78,0x00,0x8e,0x00,0x02,0x00,0x0c,0x00,0x1e,0x00,0x04,0x00,0x00,0x04,0x32,0x00,0x00,0x04,0x32,0x00,0x01,0x04,0x32,0x00,0x01,0x04,0x32,0x00,0x16,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2, +0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0x98,0x1c,0xfe,0x1c,0xf2,0x1c,0xf8,0x1d,0x04,0x1d,0x0a,0x1d,0x04,0x1d,0x10,0x1d,0x16,0x1d,0x10,0x1d,0x1c,0x1d,0x22,0x1d,0x28,0x1d,0x2e,0x1d,0x28, +0x1d,0x34,0x1d,0x3a,0x1c,0xfe,0x1d,0x40,0x1d,0x46,0x1d,0x4c,0x1d,0x52,0x1d,0x04,0x1d,0x22,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x53,0x00,0x00,0x0b,0x57,0x0b,0x58,0x00,0x01,0x0b,0x5a,0x0b,0x5a,0x00,0x03,0x00,0x02,0x00,0x09,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0x67,0x0b,0x67,0x00,0x0a,0x0b,0xb9, +0x0b,0xb9,0x00,0x0b,0x0b,0xbf,0x0b,0xbf,0x00,0x0c,0x0b,0xc4,0x0b,0xc4,0x00,0x0d,0x0b,0xc9,0x0b,0xc9,0x00,0x0e,0x0b,0xd0,0x0b,0xd5,0x00,0x0f,0x0b,0xd8,0x0b,0xd8,0x00,0x15,0x00,0x01,0x00,0x70,0x00,0x9e,0x00,0x02,0x00,0x0c,0x00,0x3e,0x00,0x0c,0x00,0x00,0x1b,0xe8,0x00,0x00,0x03,0x6a,0x00,0x00,0x16,0xf6,0x00,0x00,0x1c,0xa2, +0x00,0x00,0x1c,0xa2,0x00,0x00,0x1c,0xa2,0x00,0x00,0x1c,0xa8,0x00,0x00,0x1c,0xa8,0x00,0x00,0x1c,0xa2,0x00,0x01,0x03,0x6a,0x00,0x00,0x1c,0xae,0x00,0x00,0x1c,0xa2,0x00,0x0c,0x1c,0x82,0x1c,0x52,0x1c,0x88,0x1c,0x2e,0x1c,0x8e,0x1c,0x94,0x1c,0x8e,0x1c,0x10,0x1c,0x8e,0x1c,0x10,0x1c,0x8e,0x1c,0x9a,0x14,0x42,0x1c,0xa0,0x1c,0xa6, +0x1c,0xac,0x1c,0x8e,0x1c,0xa0,0x1c,0xb2,0x1c,0xb8,0x14,0x42,0x1c,0xbe,0x1c,0x8e,0x1c,0x9a,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b, +0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x7c,0x00,0xb6,0x00,0x01,0x00,0x0c,0x00,0x56,0x00,0x12,0x00,0x00,0x1b,0x1c, +0x00,0x00,0x1a,0x74,0x00,0x00,0x02,0x9e,0x00,0x00,0x1c,0x2a,0x00,0x00,0x17,0xf8,0x00,0x00,0x1c,0x2a,0x00,0x00,0x16,0x2a,0x00,0x00,0x1c,0x30,0x00,0x00,0x1b,0xe2,0x00,0x00,0x15,0xac,0x00,0x00,0x02,0x9e,0x00,0x00,0x02,0x9e,0x00,0x00,0x1c,0x2a,0x00,0x00,0x02,0x9e,0x00,0x00,0x1b,0xe2,0x00,0x00,0x1c,0x36,0x00,0x00,0x1b,0x1c, +0x00,0x00,0x1c,0x36,0x00,0x12,0x1b,0x6e,0x1b,0x80,0x1b,0xf2,0x1b,0x38,0x1b,0xf8,0x1b,0xc8,0x1b,0xfe,0x1c,0x04,0x1c,0x0a,0x1c,0x0a,0x1c,0x0a,0x1c,0x10,0x1b,0x6e,0x1b,0x4a,0x1b,0xc8,0x1b,0xfe,0x1b,0x80,0x1b,0xd4,0x00,0x02,0x00,0x09,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05, +0x0b,0xcc,0x0b,0xcf,0x00,0x06,0x0b,0xd6,0x0b,0xd7,0x00,0x0a,0x0b,0xd9,0x0b,0xda,0x00,0x0c,0x0b,0xdd,0x0b,0xdd,0x00,0x0e,0x0b,0xe1,0x0b,0xe1,0x00,0x0f,0x12,0x5c,0x12,0x5d,0x00,0x10,0x00,0x02,0x00,0x09,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcf,0x00,0x06, +0x0b,0xd6,0x0b,0xd7,0x00,0x0a,0x0b,0xd9,0x0b,0xda,0x00,0x0c,0x0b,0xdd,0x0b,0xdd,0x00,0x0e,0x0b,0xe1,0x0b,0xe1,0x00,0x0f,0x12,0x5c,0x12,0x5d,0x00,0x10,0x00,0x01,0x00,0x1a,0x00,0x22,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x01,0xae,0x00,0x00,0x01,0xae,0x00,0x01,0x1b,0x66,0x00,0x01,0x00,0x02,0x0b,0x63,0x0b,0x64, +0x00,0x01,0x00,0x01,0x0a,0x43,0x00,0x01,0x01,0x04,0x04,0xb0,0x00,0x01,0x01,0x13,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0xb0,0x00,0x01,0x00,0x00,0x05,0x64,0x00,0x01,0xff,0xce,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x88,0x00,0x01,0x00,0x46,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x60,0x00,0x01,0x00,0x00,0x03,0xde,0x00,0x01,0x00,0x00, +0x03,0xe8,0x00,0x01,0x00,0x00,0x04,0x7e,0x00,0x01,0x00,0x00,0x04,0xec,0x00,0x01,0x00,0x00,0xff,0xec,0x00,0x01,0x00,0x1e,0x04,0xb0,0x00,0x01,0x01,0x93,0x04,0xb0,0x00,0x01,0x01,0xa6,0x04,0xb0,0x00,0x01,0x01,0xa8,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x6f,0x00,0x01,0x00,0x00,0x04,0xa6,0x00,0x01,0x00,0x0f,0x04,0x7e,0x00,0x01, +0xff,0xf1,0x04,0x7e,0x00,0x01,0x00,0x00,0x04,0xc4,0x00,0x01,0x01,0xd9,0x04,0xba,0x00,0x01,0x01,0xd9,0x03,0xca,0x00,0x01,0x02,0x07,0x04,0x74,0x00,0x01,0x01,0x53,0x04,0x06,0x00,0x01,0x01,0x18,0x06,0x77,0x00,0x01,0x00,0xe1,0x06,0x08,0x00,0x01,0x01,0x0e,0x06,0x08,0x00,0x01,0x00,0x00,0x06,0x5e,0x00,0x01,0x00,0x00,0x05,0xdc, +0x00,0x01,0x00,0x00,0x05,0x7f,0x00,0x01,0x00,0x00,0x06,0x3c,0x00,0x01,0x00,0x00,0x06,0x0e,0x00,0x01,0x00,0x00,0x05,0xd5,0x00,0x01,0x00,0x00,0x05,0xd7,0x00,0x01,0x00,0x00,0x06,0x6c,0x00,0x01,0x00,0x00,0x06,0x50,0x00,0x01,0x00,0x00,0x06,0x5c,0x00,0x01,0x00,0x00,0x06,0xb8,0x00,0x01,0x00,0x00,0x06,0x73,0x00,0x01,0x00,0x00, +0x05,0xf0,0x00,0x01,0x00,0x00,0x06,0xb5,0x00,0x01,0x00,0x00,0x07,0x6c,0x00,0x01,0x00,0x00,0x07,0x54,0x00,0x01,0x00,0x00,0x01,0x4d,0x00,0x01,0x00,0x00,0x06,0x3a,0x00,0x01,0x00,0x00,0x06,0x40,0x00,0x01,0x00,0x00,0x06,0xc4,0x00,0x01,0x00,0x00,0x07,0xb2,0x00,0x01,0x00,0x00,0x06,0xf0,0x00,0x01,0x01,0x93,0x06,0x22,0x00,0x01, +0x01,0xa6,0x06,0x18,0x00,0x01,0x01,0xa8,0x06,0x4a,0x00,0x01,0x00,0x00,0x06,0xfe,0x00,0x01,0x00,0x00,0x07,0xda,0x00,0x01,0x00,0x00,0x07,0xe4,0x00,0x01,0x00,0x00,0x07,0x80,0x00,0x01,0x00,0x00,0x06,0xa8,0x00,0x01,0x00,0x00,0x06,0x54,0x00,0x01,0x00,0x00,0x06,0xc2,0x00,0x01,0x00,0x00,0x06,0x27,0x00,0x01,0x01,0xd9,0x06,0x5a, +0x00,0x01,0x01,0xd9,0x05,0x80,0x00,0x01,0x02,0x07,0x06,0x22,0x00,0x01,0x01,0x53,0x06,0xc9,0x00,0x01,0x01,0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0x00,0x41,0x00,0x01,0x00,0x0a,0x00,0x41,0x00,0x01,0x00,0x0f,0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x41,0x00,0x01,0xff,0xfb,0x00,0x32,0x00,0x01,0x00,0x00, +0x00,0x78,0x00,0x01,0x00,0x00,0x00,0x3c,0x00,0x01,0x00,0x00,0xff,0xc9,0x00,0x01,0x00,0x00,0xff,0xe2,0x00,0x01,0xff,0xf1,0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x14,0x00,0x01,0xff,0xa6,0x00,0x00,0x00,0x01,0x01,0xae,0x00,0x82,0x00,0x01,0x00,0x00,0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x01, +0x00,0x00,0x00,0x1e,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x01,0x00,0x00,0x00,0x64,0x00,0x01,0x00,0x00,0x00,0x28,0x00,0x01,0x00,0xd9,0x00,0x82,0x00,0x01,0x02,0x80,0x00,0x82,0x00,0x01,0x01,0x54,0xfe,0xc0,0x00,0x01,0x00,0x00,0xfe,0x48,0x00,0x01,0x00,0x00,0xfe,0x5c,0x00,0x01,0xff,0xfb,0xff,0x4c,0x00,0x01,0x00,0x00,0xfe,0xc0, +0x00,0x01,0x00,0x00,0xfe,0x7a,0x00,0x01,0x00,0x00,0xfe,0x20,0x00,0x01,0x00,0x00,0xfe,0xb6,0x00,0x01,0x00,0x00,0xfe,0x84,0x00,0x01,0x00,0x00,0xff,0x10,0x00,0x01,0x00,0x00,0xfe,0xa2,0x00,0x01,0x00,0x00,0xff,0x56,0x00,0x01,0x00,0x00,0xfe,0xd4,0x00,0x01,0x00,0x00,0xfd,0xf8,0x00,0x01,0x00,0x00,0xfe,0x16,0x00,0x01,0x00,0x00, +0xfe,0x3e,0x00,0x01,0x01,0xa9,0xfe,0xa2,0x00,0x01,0x00,0x00,0xfe,0x0c,0x00,0x01,0x00,0xd9,0xfe,0x02,0x00,0x01,0x02,0x80,0xfe,0x02,0x00,0x01,0x03,0x16,0x06,0x0e,0x00,0x01,0x02,0x67,0x04,0xb0,0x00,0x01,0x01,0x03,0x06,0x7c,0x00,0x01,0x00,0x7e,0x06,0x73,0x00,0x01,0x01,0x03,0xff,0x71,0x00,0x01,0x01,0x03,0x06,0x5e,0x00,0x01, +0x00,0xc4,0x06,0x73,0x00,0x01,0x01,0x03,0x06,0x76,0x00,0x01,0x01,0x03,0x06,0x62,0x00,0x01,0x01,0x03,0x06,0x1d,0x00,0x01,0x00,0xef,0x06,0x71,0x00,0x01,0x00,0xb2,0xff,0x6b,0x00,0x01,0x00,0xf5,0x06,0x7c,0x00,0x01,0x01,0x03,0xff,0x6b,0x00,0x01,0x00,0xe9,0x06,0x1e,0x00,0x01,0x01,0x03,0x06,0x70,0x00,0x01,0x00,0xec,0x06,0x1f, +0x00,0x01,0x01,0x03,0x06,0x8f,0x00,0x01,0x01,0x03,0x06,0x7b,0x00,0x01,0x01,0x03,0x06,0x71,0x00,0x01,0x01,0x1f,0x06,0x65,0x00,0x01,0x00,0xec,0x00,0x05,0x00,0x01,0x01,0x0c,0x06,0x70,0x00,0x01,0x01,0x03,0xff,0xc1,0x00,0x01,0x01,0x03,0x06,0x35,0x00,0x01,0x01,0x1f,0x00,0x34,0x00,0x01,0x00,0xf9,0x06,0x55,0x00,0x01,0x00,0xeb, +0x06,0x55,0x00,0x01,0x01,0x11,0x06,0x1f,0x00,0x01,0x01,0x1c,0x06,0x1f,0x00,0x01,0x00,0xf3,0x06,0x71,0x00,0x01,0x01,0x03,0xff,0x7e,0x00,0x01,0x00,0xf9,0x06,0x7c,0x00,0x01,0x01,0x03,0x05,0x16,0x00,0x01,0x01,0x03,0x05,0x20,0x00,0x01,0x01,0x03,0x05,0x28,0x00,0x01,0x01,0x03,0xff,0x69,0x00,0x01,0x01,0x42,0x06,0x73,0x00,0x01, +0x01,0x03,0x06,0x67,0x00,0x01,0x00,0xf8,0x06,0x1d,0x00,0x01,0x00,0xd7,0x06,0x1f,0x00,0x01,0x00,0xe1,0x06,0x7a,0x00,0x01,0x01,0x03,0x06,0x60,0x00,0x01,0x01,0x03,0x05,0x26,0x00,0x01,0x00,0xfa,0x05,0x26,0x00,0x01,0x01,0x03,0x00,0xc1,0x00,0x01,0x01,0x18,0x06,0x72,0x00,0x01,0x00,0xfa,0xff,0xce,0x00,0x01,0x01,0x40,0x06,0x72, +0x00,0x01,0x01,0x7c,0x06,0x72,0x00,0x01,0x01,0x2c,0xff,0xce,0x00,0x01,0x00,0xc8,0x06,0x72,0x00,0x01,0x01,0x68,0x06,0x72,0x00,0x01,0x00,0xfa,0x06,0x72,0x00,0x01,0x00,0xbe,0xff,0x74,0x00,0x01,0x01,0x5e,0xff,0x74,0x00,0x01,0x00,0xc8,0xff,0x74,0x00,0x01,0x01,0x2c,0x06,0x72,0x00,0x01,0x01,0xe0,0x06,0x72,0x00,0x01,0x01,0x7c, +0xff,0x74,0x00,0x01,0x00,0xdc,0x06,0x72,0x00,0x01,0x01,0x04,0xff,0x74,0x00,0x01,0x00,0xa0,0x06,0x72,0x00,0x01,0x00,0x8c,0xff,0x4c,0x00,0x01,0x02,0x80,0x06,0x72,0x00,0x01,0x01,0x4a,0x06,0x72,0x00,0x01,0x01,0x03,0x03,0xb8,0x00,0x01,0x00,0xfa,0x06,0x5e,0x00,0x01,0x02,0x5a,0x06,0x71,0x00,0x01,0x01,0x05,0x06,0x1f,0x00,0x01, +0x00,0xdd,0x06,0x1e,0x00,0x01,0x00,0xfa,0x06,0x71,0x00,0x01,0x01,0x03,0x05,0xd1,0x00,0x01,0x01,0x03,0xff,0x90,0x00,0x01,0x00,0x1d,0x07,0x1d,0x00,0x01,0xff,0x8e,0x07,0x1d,0x00,0x01,0xff,0x97,0x07,0x1d,0x00,0x01,0xff,0x47,0x07,0x1d,0x00,0x01,0xff,0x79,0x07,0x1d,0x00,0x01,0xff,0xcd,0x07,0x1d,0x00,0x01,0x01,0x7a,0x06,0x71, +0x00,0x01,0x01,0x93,0x06,0x71,0x00,0x01,0xff,0xda,0x00,0x0c,0x00,0x01,0x00,0xfa,0x06,0x1e,0x00,0x01,0x00,0xfa,0xff,0x5c,0x00,0x01,0x00,0xfa,0x08,0x1b,0x00,0x01,0x00,0xfa,0x07,0x62,0x00,0x01,0x00,0xfa,0xfd,0xcc,0x00,0x01,0x00,0xfa,0x04,0x09,0x00,0x01,0x01,0x2c,0xfe,0x42,0x00,0x01,0x01,0x90,0x05,0x48,0x00,0x01,0x00,0xfa, +0xff,0x2a,0x00,0x01,0x01,0x90,0x06,0x2e,0x00,0x01,0x01,0xf4,0x04,0x09,0x00,0x01,0x02,0x26,0xfe,0x42,0x00,0x01,0x02,0x0e,0x04,0x4e,0x00,0x01,0x02,0xa4,0xfd,0xcd,0x00,0x01,0x02,0x26,0xff,0x2a,0x00,0x01,0x01,0xf4,0x04,0xf7,0x00,0x01,0x02,0x0e,0x05,0x3e,0x00,0x01,0x01,0xc2,0x04,0x3b,0x00,0x01,0x02,0x58,0xff,0x2a,0x00,0x01, +0x01,0x5e,0x04,0x89,0x00,0x01,0x01,0x2c,0x03,0xd2,0x00,0x01,0x02,0xbc,0xff,0x22,0x00,0x01,0x01,0xc2,0x04,0xb6,0x00,0x01,0x01,0xf4,0xff,0x2a,0x00,0x01,0x01,0xf4,0x04,0x8a,0x00,0x01,0x01,0xf5,0x04,0x5d,0x00,0x01,0x02,0x8b,0xfd,0xcd,0x00,0x01,0x01,0xc2,0x05,0x48,0x00,0x01,0x01,0xf4,0x05,0x16,0x00,0x01,0x01,0xf5,0x05,0x65, +0x00,0x01,0x01,0x90,0x05,0x88,0x00,0x01,0x01,0x90,0xff,0x2a,0x00,0x01,0x01,0xc2,0x05,0x88,0x00,0x01,0x00,0xfa,0x05,0x9e,0x00,0x01,0x01,0x5e,0xff,0x2a,0x00,0x01,0x01,0x5e,0x06,0x1e,0x00,0x01,0x01,0x2c,0xff,0x2a,0x00,0x01,0x01,0x4a,0x03,0xdb,0x00,0x01,0x02,0x44,0xfe,0xf8,0x00,0x01,0x01,0x5e,0x05,0x48,0x00,0x01,0x01,0x7f, +0x04,0xe9,0x00,0x01,0x02,0x79,0xff,0x2a,0x00,0x01,0x01,0xc5,0x04,0x50,0x00,0x01,0x03,0x55,0xfd,0xcd,0x00,0x01,0x01,0xff,0x04,0x9f,0x00,0x01,0x02,0x31,0xff,0x2a,0x00,0x01,0x01,0x40,0xfe,0x42,0x00,0x01,0x01,0xc6,0x03,0x3f,0x00,0x01,0x00,0x64,0xfe,0xff,0x00,0x01,0x01,0xff,0x05,0xc8,0x00,0x01,0x01,0xf8,0xfe,0x9e,0x00,0x01, +0x01,0x5e,0x05,0xd4,0x00,0x01,0x01,0xae,0x04,0xb7,0x00,0x01,0x01,0xe0,0xfe,0x9e,0x00,0x01,0x01,0x22,0x03,0x7c,0x00,0x01,0x01,0x81,0xff,0x38,0x00,0x01,0x00,0xfa,0xff,0x9c,0x00,0x01,0x01,0x90,0x05,0xa2,0x00,0x01,0x01,0x90,0xfd,0xcd,0x00,0x01,0x01,0xae,0x05,0x62,0x00,0x01,0x01,0xe0,0xfe,0xf1,0x00,0x01,0x02,0x3b,0x03,0xd7, +0x00,0x01,0x01,0x73,0xff,0x0a,0x00,0x01,0x01,0xa5,0x05,0xc1,0x00,0x01,0x02,0x09,0xff,0x22,0x00,0x01,0x02,0x3b,0x05,0x48,0x00,0x01,0x01,0xd7,0xff,0x22,0x00,0x01,0x01,0x73,0x05,0x02,0x00,0x01,0x01,0x1a,0x04,0x82,0x00,0x01,0x01,0xb0,0xff,0x22,0x00,0x01,0x01,0x1a,0x05,0xc1,0x00,0x01,0x01,0x90,0x03,0x26,0x00,0x01,0x01,0x2c, +0xfd,0xcd,0x00,0x01,0x01,0x90,0x04,0x6b,0x00,0x01,0x02,0x8f,0x03,0xd7,0x00,0x01,0x06,0x13,0xff,0x2b,0x00,0x01,0x02,0x8f,0x03,0xd2,0x00,0x01,0x06,0xdb,0xff,0x2b,0x00,0x01,0x03,0xe8,0x05,0x24,0x00,0x01,0x02,0xee,0xff,0x22,0x00,0x01,0x01,0x91,0x04,0xf2,0x00,0x01,0x01,0x91,0x05,0xf3,0x00,0x01,0x00,0x96,0x02,0x29,0x00,0x01, +0x00,0x96,0xfe,0x62,0x00,0x01,0x02,0x9f,0x04,0x2a,0x00,0x01,0x02,0x3b,0xff,0x22,0x00,0x01,0x01,0x31,0x04,0x79,0x00,0x01,0x02,0xc1,0xfd,0xcd,0x00,0x01,0x02,0x3b,0x05,0x24,0x00,0x01,0x03,0x03,0xff,0x22,0x00,0x01,0x01,0xc7,0x05,0x24,0x00,0x01,0x02,0x8f,0xfe,0x48,0x00,0x01,0x01,0x33,0x03,0x81,0x00,0x01,0x02,0x5f,0xff,0x2b, +0x00,0x01,0x02,0x5d,0x04,0x24,0x00,0x01,0x02,0x8f,0xfd,0xcd,0x00,0x01,0x01,0xa5,0x04,0x96,0x00,0x01,0x01,0xc2,0x03,0xe3,0x00,0x01,0x01,0xc6,0x04,0x15,0x00,0x01,0x01,0xf8,0xfe,0xf1,0x00,0x01,0x00,0x64,0xff,0x27,0x00,0x01,0x01,0x90,0x04,0x5c,0x00,0x01,0x01,0x41,0xff,0x27,0x00,0x01,0x01,0x72,0xfd,0x97,0x00,0x01,0x02,0x26, +0xfd,0x97,0x00,0x01,0x01,0x90,0x05,0x83,0x00,0x01,0x01,0xd7,0x04,0xa4,0x00,0x01,0x03,0x67,0xff,0x22,0x00,0x01,0x01,0xd7,0x05,0x76,0x00,0x01,0x00,0xfa,0x06,0xa2,0x00,0x01,0x01,0xff,0x06,0x7d,0x00,0x01,0x01,0xa5,0x06,0x76,0x00,0x01,0x01,0x73,0x04,0x8d,0x00,0x01,0x01,0x5e,0x06,0x96,0x00,0x01,0x00,0xe8,0x07,0x41,0x00,0x01, +0x01,0x5e,0x06,0x1d,0x00,0x01,0x02,0x5d,0x02,0xed,0x00,0x01,0x01,0xa5,0x04,0xc8,0x00,0x01,0x00,0xfa,0xfd,0xd8,0x00,0x01,0x01,0x5e,0x03,0x2d,0x00,0x01,0x01,0x90,0xfd,0xc8,0x00,0x01,0x01,0x6c,0x03,0xf1,0x00,0x01,0x02,0x66,0xff,0x22,0x00,0x01,0x01,0x6c,0x01,0x2f,0x00,0x01,0x02,0x66,0xfd,0xf6,0x00,0x01,0x01,0x6c,0x05,0xa2, +0x00,0x01,0x01,0x6c,0x03,0xa1,0x00,0x01,0x02,0x9f,0x04,0xf2,0x00,0x01,0x01,0xc2,0x06,0xa0,0x00,0x01,0x01,0x83,0x02,0xe7,0x00,0x01,0x02,0x19,0xff,0x19,0x00,0x01,0x01,0xf9,0x03,0x7f,0x00,0x01,0x00,0xfa,0x08,0x1a,0x00,0x01,0x00,0x96,0xfd,0xcc,0x00,0x01,0x01,0xc2,0x05,0xa2,0x00,0x01,0x01,0xa9,0x05,0xc7,0x00,0x01,0x01,0x77, +0xfd,0xcd,0x00,0x01,0x01,0xc6,0x04,0x8b,0x00,0x01,0x01,0xc6,0x03,0x4a,0x00,0x01,0x01,0x73,0x04,0x9e,0x00,0x01,0x01,0x73,0xff,0x27,0x00,0x01,0x01,0x5e,0xfd,0x97,0x00,0x01,0x01,0xd7,0xff,0x20,0x00,0x01,0x00,0xfa,0xfe,0xa1,0x00,0x01,0x01,0x41,0x04,0x9e,0x00,0x01,0x02,0x0e,0x05,0xf3,0x00,0x01,0x01,0xf4,0x05,0x7a,0x00,0x01, +0x02,0x0e,0x06,0x56,0x00,0x01,0x01,0xf4,0x05,0xdd,0x00,0x01,0x01,0xdc,0x06,0x56,0x00,0x01,0x01,0xb0,0xfe,0x90,0x00,0x01,0x01,0xb0,0xfe,0x42,0x00,0x01,0x01,0x1a,0x06,0xd9,0x00,0x01,0x01,0x90,0x05,0x13,0x00,0x01,0x01,0x2c,0xfd,0xc9,0x00,0x01,0x01,0x2c,0xfd,0xaf,0x00,0x01,0x06,0x13,0xfe,0x63,0x00,0x01,0x01,0xc2,0x04,0x39, +0x00,0x01,0x01,0xc2,0xff,0x3c,0x00,0x01,0x06,0x13,0xfd,0x97,0x00,0x01,0x01,0x5e,0xff,0x27,0x00,0x01,0x07,0x3f,0xfe,0x63,0x00,0x01,0x02,0x26,0xff,0x0a,0x00,0x01,0x02,0x8f,0x04,0x68,0x00,0x01,0x01,0x2c,0x04,0x68,0x00,0x01,0x03,0xe8,0x06,0x1e,0x00,0x01,0x01,0x91,0x06,0xd9,0x00,0x01,0x01,0xf5,0x06,0x74,0x00,0x01,0x01,0xc2, +0x06,0x60,0x00,0x01,0x01,0xf4,0x06,0x2e,0x00,0x01,0x01,0x90,0xfe,0x42,0x00,0x01,0x01,0xc2,0xfd,0x97,0x00,0x01,0x01,0x95,0x04,0x47,0x00,0x01,0x01,0x63,0x04,0xc9,0x00,0x01,0x01,0xdb,0x04,0x4b,0x00,0x01,0x03,0x6b,0xfe,0xf0,0x00,0x01,0x01,0x5e,0x04,0x7d,0x00,0x01,0x02,0x8a,0xfe,0xf0,0x00,0x01,0x02,0x3b,0x06,0xe5,0x00,0x01, +0x01,0x2c,0x06,0xe5,0x00,0x01,0x01,0xa5,0x07,0x35,0x00,0x01,0x01,0x2c,0x07,0xfd,0x00,0x01,0x01,0xd7,0x05,0x9d,0x00,0x01,0x01,0x2c,0x07,0xf5,0x00,0x01,0x01,0x41,0xff,0x0a,0x00,0x01,0x01,0x5e,0xfe,0x42,0x00,0x01,0x01,0xa5,0xff,0x27,0x00,0x01,0x01,0xd7,0x05,0x6b,0x00,0x01,0x00,0xfa,0x08,0xef,0x00,0x01,0x01,0x90,0x08,0x40, +0x00,0x01,0x01,0x5e,0x07,0x99,0x00,0x01,0x01,0x90,0x08,0xb1,0x00,0x01,0x02,0x8f,0xfd,0x92,0x00,0x01,0x01,0x2c,0xfd,0x97,0x00,0x01,0x02,0x5d,0x05,0x7a,0x00,0x01,0x00,0xcd,0xfe,0xf5,0x00,0x01,0x02,0x5d,0x05,0x72,0x00,0x01,0x00,0xcd,0xfe,0xb9,0x00,0x01,0x02,0x5d,0x05,0x0a,0x00,0x01,0x01,0xc2,0x04,0x48,0x00,0x01,0x01,0x90, +0xfd,0xcc,0x00,0x01,0x01,0xc2,0x05,0x95,0x00,0x01,0x01,0xc2,0x05,0xc7,0x00,0x01,0x01,0xc2,0x05,0xbd,0x00,0x01,0x01,0xc2,0x04,0xdd,0x00,0x01,0x01,0x90,0x05,0xf5,0x00,0x01,0x01,0xc2,0x04,0x15,0x00,0x01,0x01,0xf4,0xfe,0xf1,0x00,0x01,0x01,0xae,0x03,0x3f,0x00,0x01,0x01,0xc6,0x06,0x40,0x00,0x01,0x01,0xc6,0x04,0x90,0x00,0x01, +0x01,0x90,0x05,0xbe,0x00,0x01,0x01,0xc6,0x04,0xdc,0x00,0x01,0x01,0x2c,0xff,0x27,0x00,0x01,0x01,0xc6,0x03,0xe9,0x00,0x01,0x00,0xfa,0xff,0x22,0x00,0x01,0x00,0xc8,0xff,0x27,0x00,0x01,0x00,0xc8,0xff,0x22,0x00,0x01,0x02,0x8a,0xff,0x0a,0x00,0x01,0x01,0xf5,0x05,0x8e,0x00,0x01,0x01,0xf4,0xfe,0x42,0x00,0x01,0x02,0x5f,0xfd,0xcd, +0x00,0x01,0x01,0xd7,0x05,0x41,0x00,0x01,0x02,0x62,0x05,0x16,0x00,0x01,0x02,0x62,0xff,0x92,0x00,0x01,0x01,0x1a,0x06,0x69,0x00,0x01,0x01,0x7e,0x06,0x69,0x00,0x01,0x01,0x7f,0x06,0x40,0x00,0x01,0x01,0xc5,0x05,0xaa,0x00,0x01,0x00,0xe6,0x06,0x40,0x00,0x01,0x01,0xe0,0xff,0x2a,0x00,0x01,0x01,0x18,0x06,0x0e,0x00,0x01,0x02,0x12, +0xfd,0xcd,0x00,0x01,0x01,0x0f,0xff,0x3c,0x00,0x01,0x00,0xfa,0xfe,0x42,0x00,0x01,0x01,0x72,0xfe,0x42,0x00,0x01,0x01,0x41,0xff,0x0d,0x00,0x01,0x01,0x5e,0xfd,0xe1,0x00,0x01,0x02,0x3b,0x05,0xbe,0x00,0x01,0x01,0xb0,0xfd,0x97,0x00,0x01,0x01,0xb0,0xfd,0xe1,0x00,0x01,0x01,0x2c,0x04,0x89,0x00,0x01,0x01,0x91,0x06,0x07,0x00,0x01, +0x01,0xf5,0x05,0x84,0x00,0x01,0x01,0x91,0x06,0xed,0x00,0x01,0x01,0xf5,0x06,0x6a,0x00,0x01,0x01,0xc2,0xfe,0x42,0x00,0x01,0x01,0xf4,0xfd,0x83,0x00,0x01,0x01,0xd7,0x05,0x55,0x00,0x01,0x01,0xd7,0x04,0xdd,0x00,0x01,0x01,0x90,0xfd,0x97,0x00,0x01,0x01,0x01,0x04,0xdd,0x00,0x01,0x01,0x4a,0x04,0xdd,0x00,0x01,0x02,0x5f,0xfe,0x63, +0x00,0x01,0x02,0x44,0xfe,0x42,0x00,0x01,0x00,0x9b,0xfe,0x91,0x00,0x01,0x02,0x5d,0x06,0xc8,0x00,0x01,0x01,0x5e,0x08,0x1e,0x00,0x01,0x02,0x5d,0x05,0xc7,0x00,0x01,0x01,0x90,0x07,0x1d,0x00,0x01,0x01,0x90,0x05,0x20,0x00,0x01,0x01,0xc6,0x04,0x47,0x00,0x01,0x00,0xfa,0xff,0x2b,0x00,0x01,0x00,0xfa,0xfe,0xd6,0x00,0x01,0x01,0x7e, +0x04,0x82,0x00,0x01,0x01,0x7e,0x05,0xc1,0x00,0x01,0x02,0xee,0xff,0x25,0x00,0x01,0x02,0x2a,0x05,0x78,0x00,0x01,0x02,0x2a,0x04,0x2c,0x00,0x01,0x02,0x2a,0x06,0x84,0x00,0x01,0x02,0x2a,0x05,0x58,0x00,0x01,0x01,0x5e,0x04,0xe9,0x00,0x01,0x01,0x7f,0x05,0x1b,0x00,0x01,0x01,0x5e,0x04,0x50,0x00,0x01,0x02,0x26,0xfd,0xcd,0x00,0x01, +0x00,0xfa,0x05,0x70,0x00,0x01,0x01,0x7e,0x07,0x41,0x00,0x01,0x01,0x7e,0x06,0xd9,0x00,0x01,0x02,0x09,0x04,0xa4,0x00,0x01,0x02,0x09,0x05,0x76,0x00,0x01,0x02,0x09,0x05,0x9d,0x00,0x01,0x02,0x09,0x05,0x6b,0x00,0x01,0x02,0x5d,0x05,0x7e,0x00,0x01,0x00,0xcd,0xfe,0xf0,0x00,0x01,0x01,0x83,0x04,0x75,0x00,0x01,0x01,0x83,0x03,0xc0, +0x00,0x01,0x01,0x7e,0x06,0x40,0x00,0x01,0x02,0x09,0x05,0x55,0x00,0x01,0x02,0x09,0x04,0xdd,0x00,0x01,0x00,0x9b,0xfe,0x8c,0x00,0x01,0x02,0xa4,0xfd,0xcc,0x00,0x01,0x02,0x26,0xfd,0xd1,0x00,0x01,0x02,0xa4,0xfd,0xc8,0x00,0x01,0x01,0xf4,0x03,0xd5,0x00,0x01,0x02,0x26,0xfd,0xc8,0x00,0x01,0x01,0x2c,0x05,0xaf,0x00,0x01,0x01,0x90, +0x07,0x3f,0x00,0x01,0x01,0xaa,0x06,0xbe,0x00,0x01,0x01,0xf4,0x06,0x77,0x00,0x01,0x00,0xfa,0x07,0xa0,0x00,0x01,0x01,0x90,0xff,0x9c,0x00,0x01,0x01,0x90,0xff,0x5c,0x00,0x01,0x01,0xc6,0x05,0xee,0x00,0x01,0x01,0xc6,0x05,0x43,0x00,0x01,0x01,0x90,0x06,0x5a,0x00,0x01,0x00,0xc8,0xff,0x08,0x00,0x01,0x01,0xc6,0x03,0xb7,0x00,0x01, +0x00,0xfa,0xfd,0x46,0x00,0x01,0x01,0xd9,0x05,0x27,0x00,0x01,0x02,0x3d,0xfd,0xcd,0x00,0x01,0x01,0xd8,0x05,0x27,0x00,0x01,0x02,0x3c,0xfd,0xcd,0x00,0x01,0x01,0x6c,0x05,0xd2,0x00,0x01,0x01,0x6c,0x03,0xd1,0x00,0x01,0x02,0x26,0xfd,0x46,0x00,0x01,0x01,0x2c,0x04,0xba,0x00,0x01,0x01,0x5e,0x04,0x54,0x00,0x01,0x00,0xc8,0x06,0xf1, +0x00,0x01,0x01,0x2c,0xff,0x2c,0x00,0x01,0x00,0xc8,0x07,0xaa,0x00,0x01,0x00,0xc8,0x05,0x8a,0x00,0x01,0x01,0x2c,0xfd,0xcc,0x00,0x01,0x00,0xc8,0x07,0xa9,0x00,0x01,0x00,0xc8,0x06,0x1b,0x00,0x01,0x00,0xc8,0x07,0x28,0x00,0x01,0x01,0x5e,0x04,0x3b,0x00,0x01,0x00,0xfa,0x04,0x89,0x00,0x01,0x01,0x5e,0x04,0x39,0x00,0x01,0x01,0x5e, +0xff,0x0a,0x00,0x01,0x00,0xfa,0xff,0x27,0x00,0x01,0x01,0x5e,0x05,0x83,0x00,0x01,0x00,0xfa,0x05,0xaf,0x00,0x01,0x00,0xfa,0x04,0xec,0x00,0x01,0x00,0xfa,0x04,0x54,0x00,0x01,0x01,0x2c,0x04,0x36,0x00,0x01,0x01,0x90,0xff,0x0a,0x00,0x01,0x01,0x2c,0x04,0xfe,0x00,0x01,0x00,0xf8,0x06,0x1e,0x00,0x01,0x00,0x94,0xff,0x86,0x00,0x01, +0x00,0xc6,0xff,0x86,0x00,0x01,0x00,0xf8,0x08,0x40,0x00,0x01,0x00,0xf8,0x07,0x99,0x00,0x01,0x00,0xf8,0x08,0xb1,0x00,0x01,0x00,0x94,0xfd,0x97,0x00,0x01,0x00,0xc6,0xfd,0x97,0x00,0x01,0x01,0xc9,0x02,0xd2,0x00,0x01,0x01,0x65,0xfd,0xcd,0x00,0x01,0x01,0xc9,0x04,0x6b,0x00,0x01,0x01,0x97,0x06,0x1d,0x00,0x01,0x01,0xc9,0x05,0x13, +0x00,0x01,0x01,0x65,0xfd,0xc9,0x00,0x01,0x01,0x65,0xfd,0xaf,0x00,0x01,0x01,0xc9,0x05,0x83,0x00,0x01,0x01,0xc9,0x05,0x20,0x00,0x01,0x01,0xc9,0x07,0x3f,0x00,0x01,0x01,0xc6,0x04,0xc2,0x00,0x01,0x01,0xc6,0x04,0x4f,0x00,0x01,0x01,0xc6,0x05,0x67,0x00,0x01,0x01,0xc6,0x03,0x04,0x00,0x01,0x00,0xcc,0xfe,0xcd,0x00,0x01,0x01,0xae, +0x03,0x04,0x00,0x01,0x00,0x9a,0xfe,0xf0,0x00,0x01,0x00,0x9a,0xff,0x08,0x00,0x01,0x01,0xf8,0xff,0x6e,0x00,0x01,0x01,0x6c,0x01,0xc5,0x00,0x01,0x00,0xcc,0xff,0x22,0x00,0x01,0x01,0x30,0xfe,0xa4,0x00,0x01,0x00,0xc8,0x05,0xe2,0x00,0x01,0x00,0xc8,0xff,0x2a,0x00,0x01,0x00,0x64,0x05,0x4c,0x00,0x01,0x00,0xb4,0xff,0x2a,0x00,0x01, +0x02,0x3a,0x03,0xd7,0x00,0x01,0x01,0x40,0xff,0x24,0x00,0x01,0x01,0x86,0xfd,0x8a,0x00,0x01,0x02,0x58,0x05,0x32,0x00,0x01,0x02,0xbc,0xfd,0xcd,0x00,0x01,0x02,0x26,0x05,0x32,0x00,0x01,0x03,0xde,0x05,0x50,0x00,0x01,0x02,0x3a,0xff,0x22,0x00,0x01,0x01,0xe0,0x06,0xc2,0x00,0x01,0x01,0xe0,0xfe,0x52,0x00,0x01,0x02,0x9e,0x04,0x2a, +0x00,0x01,0x01,0x68,0x04,0x47,0x00,0x01,0x02,0xe4,0xfc,0x7c,0x00,0x01,0x01,0xd6,0x05,0xaa,0x00,0x01,0x01,0x68,0x05,0x24,0x00,0x01,0x02,0x8a,0xfe,0x48,0x00,0x01,0x01,0x7c,0x06,0x54,0x00,0x01,0x02,0x9e,0x05,0xfa,0x00,0x01,0x02,0x6c,0xff,0x2b,0x00,0x01,0x02,0x94,0x06,0x0e,0x00,0x01,0x01,0x36,0x05,0x1e,0x00,0x01,0x00,0x6e, +0xff,0x10,0x00,0x01,0x01,0x72,0x05,0x96,0x00,0x01,0x01,0x40,0xfe,0x52,0x00,0x01,0x01,0x4a,0xfe,0x52,0x00,0x01,0x01,0x40,0x04,0xf6,0x00,0x01,0x00,0x64,0xfe,0xd4,0x00,0x01,0x02,0x08,0x05,0x0a,0x00,0x01,0x01,0x72,0x05,0x64,0x00,0x01,0x01,0xf4,0x04,0x38,0x00,0x01,0x01,0x90,0x03,0x20,0x00,0x01,0x00,0xdc,0xfd,0xcd,0x00,0x01, +0x01,0x72,0xfd,0xcd,0x00,0x01,0x01,0xea,0x04,0x10,0x00,0x01,0x02,0x58,0xfe,0x52,0x00,0x01,0x01,0xce,0xfd,0x94,0x00,0x01,0x07,0x43,0xfd,0x6c,0x00,0x01,0x04,0xa4,0xfd,0x6c,0x00,0x01,0x01,0x6b,0x05,0xd8,0x00,0x01,0x01,0xc3,0xfe,0xe2,0x00,0x01,0x01,0x90,0x06,0x40,0x00,0x01,0x02,0x3b,0x04,0xb0,0x00,0x01,0x01,0x90,0x05,0xc3, +0x00,0x01,0x02,0x2a,0x06,0x40,0x00,0x01,0x02,0x32,0x05,0x46,0x00,0x01,0x02,0x8a,0xfd,0x7a,0x00,0x01,0x02,0x26,0xfd,0x7a,0x00,0x01,0x01,0x90,0x05,0xaa,0x00,0x01,0x01,0x5e,0x05,0x91,0x00,0x01,0x02,0x2a,0x04,0x90,0x00,0x01,0x06,0xf4,0x06,0xc2,0x00,0x01,0x06,0xf4,0xff,0x2a,0x00,0x01,0x05,0x0a,0x08,0x7a,0x00,0x01,0x04,0xb0, +0xff,0x2a,0x00,0x01,0x08,0xfc,0x06,0x32,0x00,0x01,0x08,0xfc,0xff,0x9c,0x00,0x01,0x0a,0x0a,0x03,0x26,0x00,0x01,0x09,0xa6,0xfd,0xcd,0x00,0x01,0x07,0xd0,0x03,0xe8,0x00,0x01,0x07,0x62,0xfe,0x3e,0x00,0x01,0x06,0x5e,0x06,0x54,0x00,0x01,0x05,0x46,0xfe,0x70,0x00,0x01,0x09,0x92,0x05,0x88,0x00,0x01,0x09,0x92,0xff,0x2a,0x00,0x01, +0x07,0x08,0x06,0x5e,0x00,0x01,0x04,0xe2,0x05,0xbe,0x00,0x01,0x01,0x03,0x07,0xda,0x00,0x01,0x00,0x7e,0x08,0x52,0x00,0x01,0x01,0x03,0x07,0x26,0x00,0x01,0x00,0xc4,0x08,0x52,0x00,0x01,0x01,0x03,0x08,0x2a,0x00,0x01,0x01,0x03,0x07,0x6c,0x00,0x01,0x01,0x03,0x08,0x3e,0x00,0x01,0x01,0x03,0x08,0x98,0x00,0x01,0x00,0xef,0x09,0x24, +0x00,0x01,0x00,0xf5,0x08,0x3e,0x00,0x01,0x01,0x03,0x09,0x38,0x00,0x01,0x00,0xef,0x08,0x5c,0x00,0x01,0x00,0xe9,0x08,0x98,0x00,0x01,0x01,0x03,0x08,0x66,0x00,0x01,0x00,0xec,0x08,0x2a,0x00,0x01,0x01,0x03,0x08,0x16,0x00,0x01,0x01,0x03,0x07,0xf8,0x00,0x01,0x01,0x1f,0x08,0x8e,0x00,0x01,0x01,0x0c,0x08,0x66,0x00,0x01,0x01,0x03, +0x08,0xde,0x00,0x01,0x00,0xf9,0x08,0x34,0x00,0x01,0x00,0xeb,0x08,0x34,0x00,0x01,0x01,0x11,0x08,0x3e,0x00,0x01,0x01,0x1c,0x08,0xd4,0x00,0x01,0x00,0xf3,0x07,0xf8,0x00,0x01,0x00,0xc4,0x08,0x70,0x00,0x01,0x01,0x03,0x08,0x34,0x00,0x01,0x00,0xf9,0x09,0x1a,0x00,0x01,0x01,0x03,0x07,0x30,0x00,0x01,0x01,0x03,0x08,0x48,0x00,0x01, +0x01,0x03,0x07,0xe4,0x00,0x01,0x01,0x03,0x07,0x3a,0x00,0x01,0x01,0x42,0x08,0x52,0x00,0x01,0x01,0x03,0x08,0x7a,0x00,0x01,0x00,0xf8,0x09,0x1a,0x00,0x01,0x00,0xd7,0x08,0xfc,0x00,0x01,0x01,0x03,0x07,0x12,0x00,0x01,0x00,0xe1,0x08,0x34,0x00,0x01,0x01,0x03,0x08,0x52,0x00,0x01,0x01,0x03,0x08,0xb6,0x00,0x01,0x00,0xfa,0x07,0x9e, +0x00,0x01,0x01,0x03,0x08,0xca,0x00,0x01,0x00,0xfa,0x08,0x52,0x00,0x01,0x00,0xfa,0x08,0x98,0x00,0x01,0x01,0x18,0x07,0xd0,0x00,0x01,0x01,0x18,0x08,0x61,0x00,0x01,0x01,0x40,0x08,0x98,0x00,0x01,0x01,0x7c,0x09,0x47,0x00,0x01,0x00,0xc8,0x07,0x78,0x00,0x01,0x01,0x68,0x07,0x78,0x00,0x01,0x00,0xfa,0x08,0x27,0x00,0x01,0x01,0x2c, +0x08,0x98,0x00,0x01,0x01,0xe0,0x08,0x5b,0x00,0x01,0x00,0xdc,0x09,0x2a,0x00,0x01,0x00,0xfa,0x08,0x69,0x00,0x01,0x00,0xfa,0x08,0x2c,0x00,0x01,0x00,0xc8,0x08,0x95,0x00,0x01,0x00,0xa0,0x08,0x95,0x00,0x01,0x01,0x40,0x08,0x95,0x00,0x01,0x02,0x80,0x08,0x95,0x00,0x01,0x01,0x4a,0x08,0x95,0x00,0x01,0x01,0x2c,0x08,0x5b,0x00,0x01, +0x01,0x03,0x06,0xf4,0x00,0x01,0x02,0x5a,0x09,0xc4,0x00,0x01,0x01,0x05,0x08,0x65,0x00,0x01,0x00,0xc9,0x09,0x2a,0x00,0x01,0x00,0xfa,0x09,0x8b,0x00,0x01,0x01,0x03,0x08,0xd9,0x00,0x01,0x00,0x1d,0x0a,0x5b,0x00,0x01,0xff,0x8e,0x09,0xe7,0x00,0x01,0xff,0x97,0x09,0xe7,0x00,0x01,0xff,0x47,0x09,0xff,0x00,0x01,0xff,0x79,0x09,0xa9, +0x00,0x01,0xff,0xcd,0x09,0xa9,0x00,0x01,0x01,0x7a,0x08,0x53,0x00,0x01,0x01,0x93,0x08,0x38,0x00,0x01,0x01,0x03,0xfe,0x0c,0x00,0x01,0x01,0x03,0xfe,0xd4,0x00,0x01,0x00,0xb2,0xfd,0xbc,0x00,0x01,0x01,0x03,0xfd,0xbc,0x00,0x01,0x00,0xec,0xfd,0xc6,0x00,0x01,0x01,0x1f,0xfd,0xc6,0x00,0x01,0x01,0x03,0xfe,0x48,0x00,0x01,0x01,0x03, +0xfe,0x70,0x00,0x01,0x00,0xfa,0xfe,0x53,0x00,0x01,0x01,0x2c,0xfd,0x8b,0x00,0x01,0x00,0xbe,0xfe,0x5c,0x00,0x01,0x01,0x5e,0xfe,0x5c,0x00,0x01,0x00,0xc8,0xfd,0xa5,0x00,0x01,0x01,0x7c,0xfd,0x5e,0x00,0x01,0x01,0x04,0xfd,0xbd,0x00,0x01,0x00,0x8c,0xfd,0x3a,0x00,0x01,0x01,0x03,0xfc,0x8b,0x00,0x01,0x00,0x00,0xfe,0x09,0x00,0x01, +0x02,0x62,0xff,0xe2,0x00,0x01,0x02,0xb7,0x00,0x00,0x00,0x01,0x02,0xc9,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x02,0xad,0x00,0x50,0x00,0x01,0x00,0xdf,0xff,0x44,0x00,0x01,0x02,0xb2,0x00,0x50,0x00,0x01,0x02,0x3a,0xfe,0x42,0x00,0x01,0x01,0x36,0x00,0x00,0x00,0x01,0x02,0xb8,0x00,0x00,0x00,0x01,0x01,0xa4,0x00,0x00, +0x00,0x01,0x01,0xc6,0x00,0x00,0x00,0x01,0x01,0xb3,0x00,0x00,0x00,0x01,0x03,0x20,0x00,0x00,0x00,0x01,0x02,0x04,0x00,0x00,0x00,0x01,0x01,0x75,0x00,0x00,0x00,0x01,0x00,0xef,0x00,0x00,0x00,0x01,0x00,0x95,0x00,0x00,0x00,0x01,0x02,0x2a,0x00,0x00,0x00,0x01,0x01,0x9b,0x00,0x00,0x00,0x01,0x01,0x15,0x00,0x00,0x00,0x01,0x00,0xbb, +0x00,0x00,0x00,0x01,0x01,0xd9,0x00,0x00,0x00,0x01,0x01,0x4a,0x00,0x00,0x00,0x01,0x00,0xc4,0x00,0x00,0x00,0x01,0x00,0x6a,0x00,0x00,0x00,0x01,0x01,0x50,0x00,0x00,0x00,0x01,0x00,0xc1,0x00,0x00,0x00,0x01,0x00,0x3b,0x00,0x00,0x00,0x01,0xff,0xe1,0x00,0x00,0x00,0x01,0x02,0x26,0x00,0x00,0x00,0x01,0x01,0x97,0x00,0x00,0x00,0x01, +0x00,0xdf,0x00,0x00,0x00,0x01,0x00,0x3f,0x00,0x00,0x00,0x01,0x02,0x5d,0x00,0x00,0x00,0x01,0x01,0xce,0x00,0x00,0x00,0x01,0x01,0x48,0x00,0x00,0x00,0x01,0x00,0xee,0x00,0x00,0x00,0x01,0x00,0xb6,0x00,0x00,0x00,0x01,0x00,0x27,0x00,0x00,0x00,0x01,0xff,0xa1,0x00,0x00,0x00,0x01,0xff,0x47,0x00,0x00,0x00,0x01,0x01,0x3a,0x00,0x00, +0x00,0x01,0x00,0xab,0x00,0x00,0x00,0x01,0xff,0xf3,0x00,0x00,0x00,0x01,0xff,0xcb,0x00,0x00,0x00,0x01,0x02,0x5b,0x00,0x00,0x00,0x01,0x01,0xcc,0x00,0x00,0x00,0x01,0x01,0x46,0x00,0x00,0x00,0x01,0x00,0xec,0x00,0x00,0x00,0x01,0x02,0x5a,0x00,0x00,0x00,0x01,0x01,0xcb,0x00,0x00,0x00,0x01,0x01,0x45,0x00,0x00,0x00,0x01,0x00,0xeb, +0x00,0x00,0x00,0x01,0x01,0x49,0x00,0x00,0x00,0x01,0x00,0xba,0x00,0x00,0x00,0x01,0xff,0xf5,0x00,0x00,0x00,0x01,0xff,0x3b,0x00,0x00,0x00,0x01,0x01,0x68,0x00,0x00,0x00,0x01,0x00,0xd9,0x00,0x00,0x00,0x01,0x00,0x53,0x00,0x00,0x00,0x01,0xff,0xf9,0x00,0x00,0x00,0x01,0x01,0x6d,0x00,0x00,0x00,0x01,0x00,0xde,0x00,0x00,0x00,0x01, +0x00,0x58,0x00,0x00,0x00,0x01,0xff,0xfe,0x00,0x00,0x00,0x01,0x02,0x62,0x00,0x00,0x00,0x01,0x01,0xd3,0x00,0x00,0x00,0x01,0x01,0x4d,0x00,0x00,0x00,0x01,0x00,0xf3,0x00,0x00,0x00,0x01,0xfe,0x98,0x00,0x00,0x00,0x01,0xfd,0x91,0x00,0x00,0x00,0x01,0xfc,0xd7,0x00,0x00,0x00,0x01,0x01,0x0e,0x00,0x00,0x00,0x01,0x00,0x7f,0x00,0x00, +0x00,0x01,0xff,0x9f,0x00,0x00,0x00,0x01,0x02,0x57,0x00,0x00,0x00,0x01,0x01,0xc8,0x00,0x00,0x00,0x01,0x01,0x42,0x00,0x00,0x00,0x01,0x00,0xe8,0x00,0x00,0x00,0x01,0x02,0x08,0x00,0x00,0x00,0x01,0x01,0x79,0x00,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x00,0x01,0x01,0xd1,0x00,0x00,0x00,0x01,0x00,0x61,0x00,0x00,0x00,0x01,0xff,0xa7, +0x00,0x00,0x00,0x01,0x01,0xef,0x00,0x00,0x00,0x01,0x01,0x60,0x00,0x00,0x00,0x01,0x00,0xda,0x00,0x00,0x00,0x01,0x00,0x80,0x00,0x00,0x00,0x01,0x00,0xbf,0x00,0x00,0x00,0x01,0xff,0xb6,0x00,0x00,0x00,0x01,0xfe,0xaf,0x00,0x00,0x00,0x01,0xfd,0xf5,0x00,0x00,0x00,0x01,0x01,0xae,0x00,0x00,0x00,0x01,0x01,0x1f,0x00,0x00,0x00,0x01, +0x02,0x53,0x00,0x00,0x00,0x01,0x01,0xc4,0x00,0x00,0x00,0x01,0x01,0xbe,0x00,0x00,0x00,0x01,0x01,0xaa,0x00,0x00,0x00,0x01,0x03,0x1b,0x00,0x00,0x00,0x01,0x02,0x8c,0x00,0x00,0x00,0x01,0x01,0xc0,0x00,0x00,0x00,0x01,0x01,0x34,0x00,0x00,0x00,0x01,0x02,0xa3,0x00,0x00,0x00,0x01,0x02,0x14,0x00,0x00,0x00,0x01,0x01,0x8e,0x00,0x00, +0x00,0x01,0x02,0x9e,0x00,0x00,0x00,0x01,0x02,0x0f,0x00,0x00,0x00,0x01,0x01,0x89,0x00,0x00,0x00,0x01,0x01,0x2f,0x00,0x00,0x00,0x01,0x01,0xbb,0x00,0x00,0x00,0x01,0x01,0x2c,0x00,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x00,0x01,0x00,0x4c,0x00,0x00,0x00,0x01,0x01,0xcd,0x00,0x00,0x00,0x01,0x01,0x3e,0x00,0x00,0x00,0x01,0x00,0xb8, +0x00,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x00,0x01,0x01,0xe5,0x00,0x00,0x00,0x01,0x01,0x56,0x00,0x00,0x00,0x01,0x00,0xd0,0x00,0x00,0x00,0x01,0x00,0x76,0x00,0x00,0x00,0x01,0x00,0xc5,0x00,0x00,0x00,0x01,0xff,0xe5,0x00,0x00,0x00,0x01,0x01,0xd4,0x00,0x00,0x00,0x01,0x00,0xfc,0x00,0x00,0x00,0x01,0x00,0x6d,0x00,0x00,0x00,0x01, +0xff,0xe7,0x00,0x00,0x00,0x01,0xff,0x8d,0x00,0x00,0x00,0x01,0x01,0x62,0x00,0x00,0x00,0x01,0x00,0xd3,0x00,0x00,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0xe6,0xff,0x9c,0x00,0x01,0x00,0xca,0x00,0x00,0x00,0x01,0x00,0x8a,0x00,0x00,0x00,0x01,0x01,0x1d,0x00,0x00,0x00,0x01,0x01,0x12,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x00, +0x00,0x01,0x01,0x10,0x00,0x00,0x00,0x01,0x00,0xf2,0x00,0x00,0x00,0x01,0x00,0x97,0x00,0x00,0x00,0x01,0x00,0xb4,0x00,0x00,0x00,0x01,0xff,0xac,0x00,0x00,0x00,0x01,0x01,0x17,0x00,0x00,0x00,0x01,0x00,0xf0,0x00,0x00,0x00,0x01,0x00,0xb5,0x00,0x00,0x00,0x01,0x00,0xbe,0x00,0x00,0x00,0x01,0x00,0x66,0x00,0x00,0x00,0x01,0x00,0x98, +0x00,0x00,0x00,0x01,0x00,0xc0,0x00,0x00,0x00,0x01,0x01,0x80,0x00,0x00,0x00,0x01,0xff,0xb4,0x00,0x00,0x00,0x01,0x01,0x58,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01,0xff,0xec,0x00,0x00,0x00,0x01,0x00,0x69,0x00,0x00,0x00,0x01,0xff,0xc4,0x00,0x00,0x00,0x01,0x00,0xd2,0x00,0x00,0x00,0x01, +0x01,0x18,0x00,0x00,0x00,0x01,0x00,0xed,0x00,0x00,0x00,0x01,0x02,0x60,0x00,0x00,0x00,0x01,0x03,0xd5,0x00,0x00,0x00,0x01,0x03,0x29,0x00,0x00,0x00,0x01,0x01,0xa6,0x00,0x00,0x00,0x01,0x01,0x98,0x00,0x00,0x00,0x01,0x00,0xe4,0x00,0x00,0x00,0x01,0x02,0xa8,0x00,0x00,0x00,0x01,0x04,0x6c,0x00,0x00,0x00,0x01,0x03,0x7a,0x00,0x00, +0x00,0x01,0x01,0x9d,0x00,0x00,0x00,0x01,0x00,0x8e,0x00,0x00,0x00,0x01,0x01,0xeb,0x00,0x00,0x00,0x01,0x03,0xee,0x00,0x00,0x00,0x01,0x02,0xfc,0x00,0x00,0x00,0x01,0x01,0x47,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x00,0x01,0x01,0xa0,0x00,0x00,0x00,0x01,0x02,0xf8,0x00,0x00,0x00,0x01,0x02,0x0d,0x00,0x00,0x00,0x01,0x00,0xf5, +0x00,0x00,0x00,0x01,0x01,0x13,0x00,0x00,0x00,0x01,0x00,0x60,0x00,0x00,0x00,0x01,0x03,0xa2,0x00,0x00,0x00,0x01,0x02,0xba,0x00,0x00,0x00,0x01,0x01,0x19,0x00,0x00,0x00,0x01,0x01,0x11,0x00,0x00,0x00,0x01,0x02,0xae,0x00,0x00,0x00,0x01,0x04,0xc1,0x00,0x00,0x00,0x01,0x03,0xcf,0x00,0x00,0x00,0x01,0x01,0xb5,0x00,0x00,0x00,0x01, +0x00,0x84,0x00,0x00,0x00,0x01,0x02,0x3b,0x00,0x00,0x00,0x01,0x01,0x0c,0x00,0x00,0x00,0x01,0x01,0x3d,0x00,0x00,0x00,0x01,0x00,0x6c,0x00,0x00,0x00,0x01,0x02,0xc4,0x00,0x00,0x00,0x01,0x01,0xdc,0x00,0x00,0x00,0x01,0x01,0x25,0x00,0x00,0x00,0x01,0x04,0xbb,0x00,0x00,0x00,0x01,0x03,0xc9,0x00,0x00,0x00,0x01,0x01,0x90,0x00,0x00, +0x00,0x01,0x02,0xc1,0x00,0x00,0x00,0x01,0x05,0x02,0x00,0x00,0x00,0x01,0x04,0x10,0x00,0x00,0x00,0x01,0x01,0x72,0x00,0x00,0x00,0x01,0x02,0x3c,0x00,0x00,0x00,0x01,0x01,0xb8,0x00,0x00,0x00,0x01,0x03,0xce,0x00,0x00,0x00,0x01,0x02,0xdc,0x00,0x00,0x00,0x01,0x01,0x26,0x00,0x00,0x00,0x01,0x03,0xc4,0x00,0x00,0x00,0x01,0x02,0xd2, +0x00,0x00,0x00,0x01,0x01,0x43,0x00,0x00,0x00,0x01,0xff,0x1e,0x00,0x00,0x00,0x01,0x02,0x2b,0x00,0x00,0x00,0x01,0x03,0xec,0x00,0x00,0x00,0x01,0x03,0x38,0x00,0x00,0x00,0x01,0x02,0xe6,0x00,0x00,0x00,0x01,0xff,0xd7,0x00,0x00,0x00,0x01,0x00,0x59,0x00,0x00,0x00,0x01,0x01,0x04,0x00,0x00,0x00,0x01,0x02,0xbf,0x00,0x00,0x00,0x01, +0x04,0xe3,0x00,0x00,0x00,0x01,0x03,0xf1,0x00,0x00,0x00,0x01,0x02,0xbe,0x00,0x00,0x00,0x01,0x04,0xe9,0x00,0x00,0x00,0x01,0x03,0xf7,0x00,0x00,0x00,0x01,0x01,0xab,0x00,0x00,0x00,0x01,0x00,0x62,0x00,0x00,0x00,0x01,0x01,0x6a,0x00,0x00,0x00,0x01,0x02,0xec,0x00,0x00,0x00,0x01,0x01,0x96,0x00,0x00,0x00,0x01,0x01,0x1b,0x00,0x00, +0x00,0x01,0x01,0x39,0x00,0x00,0x00,0x01,0x00,0xdc,0x00,0x00,0x00,0x01,0x02,0xb3,0x00,0x00,0x00,0x01,0x04,0xd0,0x00,0x00,0x00,0x01,0x03,0xde,0x00,0x00,0x00,0x01,0x01,0x86,0x00,0x00,0x00,0x01,0x00,0xb3,0x00,0x00,0x00,0x01,0x02,0x71,0x00,0x00,0x00,0x01,0x04,0x2c,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x00,0x00,0x01,0x01,0x6c, +0x00,0x00,0x00,0x01,0x01,0x4e,0x00,0x00,0x00,0x01,0x00,0xb2,0x00,0x00,0x00,0x01,0x04,0x3a,0x00,0x00,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x01,0x5c,0x00,0x00,0x00,0x01,0x02,0x45,0x00,0x00,0x00,0x01,0x04,0x75,0x00,0x00,0x00,0x01,0x03,0x83,0x00,0x00,0x00,0x01,0x00,0x64,0x00,0x00,0x00,0x01,0x02,0x33,0x00,0x00,0x00,0x01, +0x04,0x04,0x00,0x00,0x00,0x01,0x02,0xd3,0x00,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x00,0x01,0x02,0x5e,0x00,0x00,0x00,0x01,0x04,0x26,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x00,0x00,0x01,0x01,0x63,0x00,0x00,0x00,0x01,0x01,0x4f,0x00,0x00,0x00,0x01,0x01,0x0b,0x00,0x00,0x00,0x01,0x02,0xaf,0x00,0x00,0x00,0x01,0x04,0xd3,0x00,0x00, +0x00,0x01,0x03,0xcd,0x00,0x00,0x00,0x01,0x03,0x1f,0x00,0x00,0x00,0x01,0x05,0xd9,0x00,0x00,0x00,0x01,0x04,0xe5,0x00,0x00,0x00,0x01,0x01,0x77,0x00,0x00,0x00,0x01,0x02,0xf4,0x00,0x00,0x00,0x01,0x05,0x24,0x00,0x00,0x00,0x01,0x04,0x32,0x00,0x00,0x00,0x01,0x02,0x17,0x00,0x00,0x00,0x01,0x03,0x71,0x00,0x00,0x00,0x01,0x02,0x7f, +0x00,0x00,0x00,0x01,0xff,0x1e,0x01,0x04,0x00,0x01,0xff,0xd7,0x00,0xdc,0x00,0x01,0x00,0x59,0x00,0xf0,0x00,0x01,0x02,0x29,0x00,0x00,0x00,0x01,0x03,0x96,0x00,0x00,0x00,0x01,0x02,0xa4,0x00,0x00,0x00,0x01,0x07,0x17,0x00,0x00,0x00,0x01,0x02,0xf1,0x00,0x00,0x00,0x01,0x05,0xca,0x00,0x00,0x00,0x01,0xff,0x26,0x00,0x00,0x00,0x01, +0x03,0x4e,0x00,0x00,0x00,0x01,0x01,0x77,0x00,0xdc,0x00,0x01,0x00,0x75,0x00,0x00,0x00,0x01,0x00,0xe3,0x00,0x00,0x00,0x01,0x01,0x9c,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x02,0x82,0x00,0x00,0x00,0x01,0x01,0x52,0x00,0x00,0x00,0x01,0x01,0x83,0x00,0x00,0x00,0x01,0x01,0x8d,0x00,0x00,0x00,0x01,0x00,0x94,0x00,0x00, +0x00,0x01,0x01,0x7f,0x00,0x00,0x00,0x01,0xff,0x7a,0x00,0x00,0x00,0x01,0x02,0xa7,0x00,0x00,0x00,0x01,0x01,0x12,0x00,0xf0,0x00,0x01,0x01,0x5a,0x00,0x00,0x00,0x01,0x01,0x3d,0x00,0xdc,0x00,0x01,0x00,0xc9,0x00,0x00,0x00,0x01,0xff,0x81,0x00,0x00,0x00,0x01,0x01,0xeb,0x00,0xdc,0x00,0x01,0x04,0x54,0x00,0x00,0x00,0x01,0x03,0x07, +0x00,0x00,0x00,0x01,0x00,0x3a,0x00,0x00,0x00,0x01,0xff,0x5e,0x00,0x00,0x00,0x01,0x01,0xc8,0x00,0xdc,0x00,0x01,0x04,0x31,0x00,0x00,0x00,0x01,0x02,0xe4,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0xad,0x00,0x00,0x00,0x01,0xff,0xdb,0x00,0x00,0x00,0x01,0x02,0x45,0x00,0xdc,0x00,0x01,0x04,0xae,0x00,0x00,0x00,0x01, +0x01,0x2a,0x00,0x00,0x00,0x01,0x02,0x91,0x00,0x00,0x00,0x01,0x04,0x8a,0x00,0x00,0x00,0x01,0x03,0x39,0x00,0x00,0x00,0x01,0x03,0x98,0x00,0x00,0x00,0x01,0x00,0xd6,0x00,0x00,0x00,0x01,0x01,0xe0,0x00,0x00,0x00,0x01,0x02,0x0b,0x00,0x00,0x00,0x01,0x01,0x7d,0x00,0x00,0x00,0x01,0xff,0x36,0x00,0x00,0x00,0x01,0x01,0xa0,0x00,0xdc, +0x00,0x01,0x04,0x09,0x00,0x00,0x00,0x01,0x02,0xbc,0x00,0x00,0x00,0x01,0xff,0xef,0x00,0x00,0x00,0x01,0x00,0x85,0x00,0x00,0x00,0x01,0x00,0x44,0x00,0x00,0x00,0x01,0x02,0xae,0x00,0xdc,0x00,0x01,0x05,0x17,0x00,0x00,0x00,0x01,0x00,0xfd,0x00,0x00,0x00,0x01,0x01,0x93,0x00,0x00,0x00,0x01,0x02,0xf4,0x00,0xdc,0x00,0x01,0x05,0x5d, +0x00,0x00,0x00,0x01,0x02,0x86,0x00,0x00,0x00,0x01,0x03,0x99,0x00,0x00,0x00,0x01,0x02,0x35,0x00,0x00,0x00,0x01,0x03,0x36,0x00,0x00,0x00,0x01,0x01,0xac,0x00,0x00,0x00,0x01,0x02,0x2c,0x00,0x00,0x00,0x01,0x02,0x02,0x00,0x00,0x00,0x01,0x02,0xb9,0x00,0x00,0x00,0x01,0x01,0x6f,0x00,0x00,0x00,0x01,0x03,0xca,0x00,0x00,0x00,0x01, +0x02,0xb6,0x00,0x00,0x00,0x01,0x04,0x11,0x00,0x00,0x00,0x01,0x01,0xa5,0x00,0x00,0x00,0x01,0x03,0xb9,0x00,0x00,0x00,0x01,0x01,0xc9,0x00,0x00,0x00,0x01,0x02,0xdd,0x00,0x00,0x00,0x01,0x03,0xf0,0x00,0x00,0x00,0x01,0x03,0xf8,0x00,0x00,0x00,0x01,0xff,0xb0,0x00,0x00,0x00,0x01,0x01,0x53,0x00,0x00,0x00,0x01,0x03,0xdf,0x00,0x00, +0x00,0x01,0x02,0x64,0x00,0x00,0x00,0x01,0x03,0x3b,0x00,0x00,0x00,0x01,0x02,0x2d,0x00,0x00,0x00,0x01,0x04,0x25,0x00,0x00,0x00,0x01,0x02,0x4b,0x00,0x00,0x00,0x01,0x03,0x84,0x00,0x00,0x00,0x01,0x00,0xce,0x00,0x00,0x00,0x01,0x02,0x0a,0x00,0x00,0x00,0x01,0x02,0xed,0x00,0x00,0x00,0x01,0x03,0xba,0x00,0x00,0x00,0x01,0x03,0x77, +0x00,0x00,0x00,0x01,0x02,0xff,0x00,0x00,0x00,0x01,0x04,0x51,0x00,0x00,0x00,0x01,0x02,0xfa,0x00,0x00,0x00,0x01,0x04,0x33,0x00,0x00,0x00,0x01,0x02,0x80,0x00,0x00,0x00,0x01,0x02,0xa5,0x00,0x00,0x00,0x01,0x02,0x41,0x00,0x00,0x00,0x01,0x03,0xd0,0x00,0x00,0x00,0x01,0x01,0xb0,0x00,0x00,0x00,0x01,0x03,0xf2,0x00,0x00,0x00,0x01, +0x03,0xb2,0x00,0x00,0x00,0x01,0x02,0x24,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x01,0xfe,0xac,0x00,0x00,0x00,0x01,0xff,0xce,0x00,0x00,0x00,0x01,0xff,0xd8,0x00,0x00,0x00,0x01,0xff,0xf6,0x00,0x00,0x00,0x01,0xff,0x74,0x00,0x00,0x00,0x01,0xfe,0xf2,0x00,0x00,0x00,0x01,0xfe,0xca,0x00,0x00,0x00,0x01,0x02,0x3a,0x00,0x00, +0x00,0x01,0x02,0x44,0x00,0x00,0x00,0x01,0xff,0x06,0x00,0x00,0x00,0x01,0x01,0x9a,0x00,0x00,0x00,0x01,0x02,0x4e,0x00,0x00,0x00,0x01,0xff,0x6a,0x00,0x00,0x00,0x01,0xfe,0xa2,0x00,0x00,0x00,0x01,0xff,0x1a,0x00,0x00,0x00,0x01,0xfe,0xe8,0x00,0x00,0x00,0x01,0xfd,0xd0,0x00,0x00,0x00,0x01,0xfd,0x76,0x00,0x00,0x00,0x01,0xfe,0x34, +0x00,0x00,0x00,0x01,0xfd,0x44,0x00,0x00,0x00,0x01,0xfd,0x1c,0x00,0x00,0x00,0x01,0xfe,0x2a,0x00,0x00,0x00,0x01,0xfe,0x52,0x00,0x00,0x00,0x01,0xfd,0x12,0x00,0x00,0x00,0x01,0xfe,0x66,0x00,0x00,0x00,0x01,0xfd,0x80,0x00,0x00,0x00,0x01,0xfd,0x62,0x00,0x00,0x00,0x01,0xfe,0x3e,0x00,0x00,0x00,0x01,0xfd,0xe4,0x00,0x00,0x00,0x01, +0xfd,0x3a,0x00,0x00,0x00,0x01,0xfe,0x5c,0x00,0x00,0x00,0x01,0xfd,0x4e,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x00,0x01,0x00,0x28,0x00,0x00,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x01,0xfe,0xd4,0x00,0x00,0x00,0x01,0xfe,0xc0,0x00,0x00,0x00,0x01,0xfe,0x70,0x00,0x00,0x00,0x01,0xfd,0xda,0x00,0x00,0x00,0x01,0xfd,0xc6,0x00,0x00, +0x00,0x01,0xfe,0x20,0x00,0x00,0x00,0x01,0xfe,0x8e,0x00,0x00,0x00,0x01,0xfd,0xf8,0x00,0x00,0x00,0x01,0xfe,0x16,0x00,0x00,0x00,0x01,0xfd,0xbc,0x00,0x00,0x00,0x01,0xfe,0x02,0x00,0x00,0x00,0x01,0xff,0xe2,0x00,0x00,0x00,0x01,0x00,0xfa,0x00,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x00,0x01,0xfd,0xf1,0x00,0x00,0x00,0x01,0xfd,0x8a, +0x00,0x00,0x00,0x01,0xfd,0xa8,0x00,0x00,0x00,0x01,0xfc,0xe0,0x00,0x00,0x00,0x01,0xfe,0x0c,0x00,0x00,0x00,0x01,0xfd,0xee,0x00,0x00,0x00,0x01,0x02,0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0a,0x02,0xbc,0x0a,0x6a,0x00,0x15,0x61,0x72,0x61,0x62,0x00,0x80,0x62,0x6e,0x67,0x32,0x01,0x3c,0x63,0x79,0x72,0x6c,0x01,0x48,0x64,0x65, +0x76,0x32,0x01,0x70,0x67,0x6a,0x72,0x32,0x01,0xa4,0x67,0x72,0x65,0x6b,0x01,0x7c,0x67,0x75,0x72,0x32,0x01,0xb0,0x68,0x65,0x62,0x72,0x01,0xbc,0x6b,0x68,0x6d,0x72,0x01,0xd8,0x6b,0x6e,0x64,0x32,0x01,0xcc,0x6c,0x61,0x6f,0x20,0x01,0xe4,0x6c,0x61,0x74,0x6e,0x01,0xf0,0x6d,0x6c,0x6d,0x32,0x02,0x46,0x6d,0x6f,0x6e,0x67,0x02,0x52, +0x6d,0x79,0x6d,0x72,0x02,0x5e,0x6f,0x72,0x79,0x32,0x02,0x76,0x74,0x61,0x6c,0x75,0x02,0x6a,0x74,0x65,0x6c,0x32,0x02,0x8e,0x74,0x68,0x61,0x69,0x02,0x9a,0x74,0x69,0x62,0x74,0x02,0xa6,0x74,0x6d,0x6c,0x32,0x02,0x82,0x00,0x3c,0x00,0x05,0x41,0x52,0x41,0x20,0x00,0x22,0x4d,0x4c,0x59,0x20,0x00,0x54,0x4d,0x4f,0x52,0x20,0x00,0x6e, +0x53,0x4e,0x44,0x20,0x00,0x88,0x55,0x52,0x44,0x20,0x00,0xa2,0x00,0x00,0xff,0xff,0x00,0x0a,0x00,0x04,0x00,0x13,0x00,0x0a,0x00,0x28,0x00,0x2e,0x00,0x3d,0x00,0x4b,0x00,0x51,0x00,0x2f,0x00,0x1e,0x00,0x00,0xff,0xff,0x00,0x09,0x00,0x05,0x00,0x14,0x00,0x0b,0x00,0x29,0x00,0x3e,0x00,0x4c,0x00,0x52,0x00,0x30,0x00,0x1f,0x00,0x00, +0xff,0xff,0x00,0x0a,0x00,0x06,0x00,0x15,0x00,0x0c,0x00,0x2a,0x00,0x39,0x00,0x3f,0x00,0x4d,0x00,0x53,0x00,0x31,0x00,0x20,0x00,0x00,0xff,0xff,0x00,0x0a,0x00,0x07,0x00,0x16,0x00,0x0d,0x00,0x2b,0x00,0x3a,0x00,0x40,0x00,0x4e,0x00,0x54,0x00,0x32,0x00,0x21,0x00,0x00,0xff,0xff,0x00,0x0a,0x00,0x08,0x00,0x17,0x00,0x0e,0x00,0x2c, +0x00,0x3b,0x00,0x41,0x00,0x4f,0x00,0x55,0x00,0x33,0x00,0x22,0x00,0x00,0xff,0xff,0x00,0x0a,0x00,0x09,0x00,0x18,0x00,0x0f,0x00,0x2d,0x00,0x3c,0x00,0x42,0x00,0x50,0x00,0x56,0x00,0x34,0x00,0x23,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x78,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x0f,0x00,0x19,0x00,0x24, +0x00,0x35,0x00,0x43,0x00,0x47,0x00,0x5c,0x00,0x00,0x00,0x58,0x00,0x60,0x00,0x64,0x00,0x68,0x00,0x6c,0x00,0x70,0x00,0x74,0x00,0x79,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x7a,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x0f,0x00,0x1a,0x00,0x25,0x00,0x36,0x00,0x44,0x00,0x48,0x00,0x5d,0x00,0x01,0x00,0x59, +0x00,0x61,0x00,0x65,0x00,0x69,0x00,0x6d,0x00,0x71,0x00,0x75,0x00,0x7b,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x7c,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x7d,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x1b,0x00,0x10,0x00,0x57,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01, +0x00,0x7e,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x7f,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x80,0x00,0x0a,0x00,0x01,0x54,0x52,0x4b,0x20,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0x10,0x00,0x1c,0x00,0x26,0x00,0x11,0x00,0x37,0x00,0x45,0x00,0x49,0x00,0x5e,0x00,0x02,0x00,0x5a,0x00,0x62,0x00,0x66, +0x00,0x6a,0x00,0x6e,0x00,0x72,0x00,0x76,0x00,0x81,0x00,0x00,0xff,0xff,0x00,0x10,0x00,0x1d,0x00,0x27,0x00,0x12,0x00,0x38,0x00,0x46,0x00,0x4a,0x00,0x5f,0x00,0x03,0x00,0x5b,0x00,0x63,0x00,0x67,0x00,0x6b,0x00,0x6f,0x00,0x73,0x00,0x77,0x00,0x82,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x83,0x00,0x04,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x84,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x85,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x86,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x87,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x88,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff, +0x00,0x01,0x00,0x89,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x8a,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x8b,0x00,0x8c,0x63,0x32,0x73,0x63,0x03,0x4a,0x63,0x32,0x73,0x63,0x03,0x50,0x63,0x32,0x73,0x63,0x03,0x56,0x63,0x32,0x73,0x63,0x03,0x60,0x63,0x61,0x6c,0x74,0x03,0x6a,0x63,0x61,0x6c,0x74, +0x03,0x70,0x63,0x61,0x6c,0x74,0x03,0x76,0x63,0x61,0x6c,0x74,0x03,0x7c,0x63,0x61,0x6c,0x74,0x03,0x82,0x63,0x61,0x6c,0x74,0x03,0x88,0x63,0x63,0x6d,0x70,0x03,0x8e,0x63,0x63,0x6d,0x70,0x03,0x98,0x63,0x63,0x6d,0x70,0x03,0xaa,0x63,0x63,0x6d,0x70,0x03,0xb4,0x63,0x63,0x6d,0x70,0x03,0xbe,0x63,0x63,0x6d,0x70,0x03,0xc8,0x63,0x63, +0x6d,0x70,0x03,0xda,0x63,0x63,0x6d,0x70,0x04,0x0c,0x63,0x63,0x6d,0x70,0x04,0x1a,0x64,0x6c,0x69,0x67,0x04,0x24,0x64,0x6c,0x69,0x67,0x04,0x2a,0x64,0x6c,0x69,0x67,0x04,0x30,0x64,0x6c,0x69,0x67,0x04,0x36,0x64,0x6c,0x69,0x67,0x04,0x3c,0x64,0x6c,0x69,0x67,0x04,0x42,0x64,0x6c,0x69,0x67,0x04,0x48,0x64,0x6c,0x69,0x67,0x04,0x4e, +0x64,0x6c,0x69,0x67,0x04,0x54,0x64,0x6c,0x69,0x67,0x04,0x5a,0x64,0x6c,0x69,0x67,0x04,0x62,0x66,0x69,0x6e,0x61,0x04,0x68,0x66,0x69,0x6e,0x61,0x04,0x6e,0x66,0x69,0x6e,0x61,0x04,0x74,0x66,0x69,0x6e,0x61,0x04,0x7a,0x66,0x69,0x6e,0x61,0x04,0x80,0x66,0x69,0x6e,0x61,0x04,0x86,0x66,0x72,0x61,0x63,0x04,0x8c,0x66,0x72,0x61,0x63, +0x04,0x96,0x66,0x72,0x61,0x63,0x04,0xa0,0x66,0x72,0x61,0x63,0x04,0xaa,0x69,0x6e,0x69,0x74,0x04,0xb4,0x69,0x6e,0x69,0x74,0x04,0xba,0x69,0x6e,0x69,0x74,0x04,0xc0,0x69,0x6e,0x69,0x74,0x04,0xc6,0x69,0x6e,0x69,0x74,0x04,0xcc,0x69,0x6e,0x69,0x74,0x04,0xd2,0x69,0x73,0x6f,0x6c,0x04,0xd8,0x6c,0x69,0x67,0x61,0x04,0xde,0x6c,0x69, +0x67,0x61,0x04,0xe8,0x6c,0x69,0x67,0x61,0x04,0xf2,0x6c,0x69,0x67,0x61,0x04,0xfa,0x6c,0x69,0x67,0x61,0x05,0x04,0x6c,0x69,0x67,0x61,0x05,0x0c,0x6c,0x6e,0x75,0x6d,0x05,0x16,0x6c,0x6e,0x75,0x6d,0x05,0x1e,0x6c,0x6e,0x75,0x6d,0x05,0x26,0x6c,0x6e,0x75,0x6d,0x05,0x2e,0x6c,0x6f,0x63,0x6c,0x05,0x36,0x6c,0x6f,0x63,0x6c,0x05,0x3c, +0x6c,0x6f,0x63,0x6c,0x05,0x42,0x6c,0x6f,0x63,0x6c,0x05,0x48,0x6d,0x65,0x64,0x69,0x05,0x4e,0x6d,0x65,0x64,0x69,0x05,0x54,0x6d,0x65,0x64,0x69,0x05,0x5a,0x6d,0x65,0x64,0x69,0x05,0x60,0x6d,0x65,0x64,0x69,0x05,0x66,0x6d,0x65,0x64,0x69,0x05,0x6c,0x6f,0x6e,0x75,0x6d,0x05,0x72,0x6f,0x6e,0x75,0x6d,0x05,0x7a,0x6f,0x6e,0x75,0x6d, +0x05,0x82,0x6f,0x6e,0x75,0x6d,0x05,0x8a,0x70,0x6e,0x75,0x6d,0x05,0x92,0x70,0x6e,0x75,0x6d,0x05,0x9a,0x70,0x6e,0x75,0x6d,0x05,0xa2,0x70,0x6e,0x75,0x6d,0x05,0xaa,0x72,0x63,0x6c,0x74,0x05,0xb2,0x72,0x63,0x6c,0x74,0x05,0xb8,0x72,0x63,0x6c,0x74,0x05,0xbe,0x72,0x63,0x6c,0x74,0x05,0xc4,0x72,0x63,0x6c,0x74,0x05,0xca,0x72,0x63, +0x6c,0x74,0x05,0xd0,0x72,0x6c,0x69,0x67,0x05,0xd6,0x72,0x6c,0x69,0x67,0x05,0xde,0x72,0x6c,0x69,0x67,0x05,0xe6,0x72,0x6c,0x69,0x67,0x05,0xee,0x72,0x6c,0x69,0x67,0x05,0xf6,0x72,0x6c,0x69,0x67,0x05,0xfe,0x72,0x6c,0x69,0x67,0x06,0x06,0x73,0x61,0x6c,0x74,0x06,0x0c,0x73,0x61,0x6c,0x74,0x06,0x18,0x73,0x61,0x6c,0x74,0x06,0x24, +0x73,0x61,0x6c,0x74,0x06,0x30,0x73,0x6d,0x63,0x70,0x06,0x3c,0x73,0x6d,0x63,0x70,0x06,0x42,0x73,0x6d,0x63,0x70,0x06,0x48,0x73,0x6d,0x63,0x70,0x06,0x54,0x73,0x73,0x30,0x31,0x06,0x60,0x73,0x73,0x30,0x31,0x06,0x66,0x73,0x73,0x30,0x31,0x06,0x6c,0x73,0x73,0x30,0x31,0x06,0x72,0x73,0x73,0x31,0x38,0x06,0x78,0x73,0x73,0x31,0x38, +0x06,0x80,0x73,0x73,0x31,0x38,0x06,0x88,0x73,0x73,0x31,0x38,0x06,0x90,0x73,0x73,0x31,0x39,0x06,0x98,0x73,0x73,0x31,0x39,0x06,0x9e,0x73,0x73,0x31,0x39,0x06,0xa4,0x73,0x73,0x31,0x39,0x06,0xaa,0x73,0x73,0x32,0x30,0x06,0xb0,0x73,0x73,0x32,0x30,0x06,0xba,0x73,0x73,0x32,0x30,0x06,0xc4,0x73,0x73,0x32,0x30,0x06,0xce,0x73,0x75, +0x62,0x73,0x06,0xd8,0x73,0x75,0x62,0x73,0x06,0xde,0x73,0x75,0x62,0x73,0x06,0xe4,0x73,0x75,0x62,0x73,0x06,0xea,0x73,0x75,0x70,0x73,0x06,0xf0,0x73,0x75,0x70,0x73,0x06,0xf6,0x73,0x75,0x70,0x73,0x06,0xfc,0x73,0x75,0x70,0x73,0x07,0x02,0x74,0x6e,0x75,0x6d,0x07,0x08,0x74,0x6e,0x75,0x6d,0x07,0x0e,0x74,0x6e,0x75,0x6d,0x07,0x16, +0x74,0x6e,0x75,0x6d,0x07,0x1c,0x74,0x6e,0x75,0x6d,0x07,0x24,0x74,0x6e,0x75,0x6d,0x07,0x2a,0x74,0x6e,0x75,0x6d,0x07,0x30,0x74,0x6e,0x75,0x6d,0x07,0x36,0x74,0x6e,0x75,0x6d,0x07,0x3c,0x74,0x6e,0x75,0x6d,0x07,0x42,0x74,0x6e,0x75,0x6d,0x07,0x6e,0x74,0x6e,0x75,0x6d,0x07,0x76,0x74,0x6e,0x75,0x6d,0x07,0x7c,0x74,0x6e,0x75,0x6d, +0x07,0x82,0x74,0x6e,0x75,0x6d,0x07,0x8a,0x74,0x6e,0x75,0x6d,0x07,0x90,0x74,0x6e,0x75,0x6d,0x07,0x96,0x74,0x6e,0x75,0x6d,0x07,0x9c,0x74,0x6e,0x75,0x6d,0x07,0xa2,0x74,0x6e,0x75,0x6d,0x07,0xa8,0x00,0x00,0x00,0x01,0x00,0x1d,0x00,0x00,0x00,0x01,0x00,0x1f,0x00,0x00,0x00,0x03,0x00,0x1d,0x00,0x1f,0x00,0x21,0x00,0x00,0x00,0x03, +0x00,0x1d,0x00,0x1f,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x03,0x00,0x05,0x00,0x08,0x00,0x0c,0x00,0x00,0x00,0x07,0x00,0x05,0x00,0x08,0x00,0x09,0x00,0x0a, +0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x00,0x00,0x03,0x00,0x05,0x00,0x08,0x00,0x0c,0x00,0x00,0x00,0x03,0x00,0x05,0x00,0x08,0x00,0x0c,0x00,0x00,0x00,0x03,0x00,0x05,0x00,0x08,0x00,0x0c,0x00,0x00,0x00,0x07,0x00,0x05,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x00,0x00,0x17,0x00,0x4e,0x00,0x4f,0x00,0x50, +0x00,0x51,0x00,0x52,0x00,0x53,0x00,0x54,0x00,0x55,0x00,0x56,0x00,0x57,0x00,0x58,0x00,0x59,0x00,0x5a,0x00,0x5b,0x00,0x5c,0x00,0x5d,0x00,0x5e,0x00,0x5f,0x00,0x60,0x00,0x61,0x00,0x62,0x00,0x63,0x00,0x64,0x00,0x00,0x00,0x05,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x39,0x00,0x3a,0x00,0x00,0x00,0x03,0x00,0x18,0x00,0x19,0x00,0x1a, +0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x4d,0x00,0x00,0x00,0x02,0x00,0x25,0x00,0x26,0x00,0x00, +0x00,0x01,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x03,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x00,0x00,0x03,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x00,0x00,0x03, +0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x00,0x00,0x03,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x03,0x00,0x13, +0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x13,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x02,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x13,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x02,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x02,0x00,0x2f,0x00,0x31,0x00,0x00,0x00,0x02,0x00,0x2f, +0x00,0x31,0x00,0x00,0x00,0x02,0x00,0x2f,0x00,0x31,0x00,0x00,0x00,0x02,0x00,0x2f,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01, +0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x02,0x00,0x2a,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x2a,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x2a,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x2a,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x2c,0x00,0x2e,0x00,0x00,0x00,0x02,0x00,0x2c,0x00,0x2e,0x00,0x00, +0x00,0x02,0x00,0x2c,0x00,0x2e,0x00,0x00,0x00,0x02,0x00,0x2c,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x11, +0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x00,0x04,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x00,0x00,0x04,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37, +0x00,0x00,0x00,0x04,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x00,0x00,0x04,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x1e,0x00,0x20,0x00,0x22,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x1e,0x00,0x20,0x00,0x22,0x00,0x24,0x00,0x00,0x00,0x01, +0x00,0x35,0x00,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x33,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x33,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x33,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x33,0x00,0x00,0x00,0x01,0x00,0x36,0x00,0x00,0x00,0x01,0x00,0x36, +0x00,0x00,0x00,0x01,0x00,0x36,0x00,0x00,0x00,0x01,0x00,0x36,0x00,0x00,0x00,0x03,0x00,0x34,0x00,0x37,0x00,0x38,0x00,0x00,0x00,0x03,0x00,0x34,0x00,0x37,0x00,0x38,0x00,0x00,0x00,0x03,0x00,0x34,0x00,0x37,0x00,0x38,0x00,0x00,0x00,0x03,0x00,0x34,0x00,0x37,0x00,0x38,0x00,0x00,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x1b, +0x00,0x00,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x3d,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x3b,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x30, +0x00,0x00,0x00,0x01,0x00,0x3e,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x00,0x01,0x00,0x49,0x00,0x00,0x00,0x01,0x00,0x45,0x00,0x00,0x00,0x14,0x00,0x2d,0x00,0x30,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40,0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47, +0x00,0x48,0x00,0x49,0x00,0x4a,0x00,0x4b,0x00,0x4c,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x43,0x00,0x00,0x00,0x01,0x00,0x4a,0x00,0x00,0x00,0x02,0x00,0x47,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x00,0x01,0x00,0x3f,0x00,0x00,0x00,0x01,0x00,0x40,0x00,0x00,0x00,0x01,0x00,0x41,0x00,0x00, +0x00,0x01,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x46,0x00,0x84,0x01,0x0a,0x01,0x1a,0x01,0x2a,0x01,0x3a,0x01,0x4a,0x01,0x64,0x01,0x74,0x01,0x84,0x01,0x94,0x01,0xb8,0x01,0xe6,0x02,0x00,0x02,0x1a,0x02,0x2a,0x02,0x44,0x02,0x54,0x02,0x64,0x02,0x74,0x02,0x84,0x02,0x94,0x02,0xa4,0x02,0xb4,0x02,0xc4,0x02,0xd4,0x02,0xf8,0x03,0x08, +0x03,0x18,0x03,0x28,0x03,0x38,0x03,0x48,0x03,0x58,0x03,0x68,0x03,0x78,0x03,0x88,0x03,0x98,0x03,0xa8,0x03,0xb8,0x03,0xc8,0x03,0xd8,0x03,0xe8,0x03,0xf8,0x04,0x08,0x04,0x18,0x04,0x28,0x04,0x38,0x04,0x48,0x04,0x58,0x04,0x68,0x04,0x78,0x04,0x88,0x04,0x98,0x04,0xa8,0x04,0xb8,0x04,0xc8,0x04,0xd8,0x04,0xe8,0x04,0xf8,0x05,0x08, +0x05,0x18,0x05,0x28,0x05,0x38,0x05,0x48,0x05,0x58,0x05,0x68,0x05,0x78,0x05,0x88,0x05,0x98,0x05,0xa8,0x05,0xb8,0x05,0xc8,0x05,0xd8,0x05,0xe8,0x05,0xf8,0x06,0x08,0x06,0x18,0x06,0x28,0x06,0x38,0x06,0x48,0x06,0x58,0x06,0x68,0x06,0x96,0x07,0xbe,0x07,0xce,0x07,0xde,0x07,0xee,0x07,0xfe,0x08,0x0e,0x08,0x1e,0x08,0x2e,0x08,0x3e, +0x08,0x4e,0x08,0x5e,0x08,0x6e,0x08,0x7e,0x08,0x8e,0x09,0x84,0x09,0x94,0x09,0xa4,0x0a,0x72,0x0a,0x82,0x0a,0x92,0x0b,0x06,0x0b,0x98,0x0b,0xa8,0x0b,0xb8,0x0b,0xc8,0x0b,0xd8,0x0b,0xe8,0x0b,0xf8,0x0c,0x08,0x0c,0x18,0x0c,0x28,0x0c,0x38,0x0c,0x48,0x0c,0x58,0x0c,0x68,0x0c,0x78,0x0c,0x88,0x0c,0x98,0x0c,0xa8,0x0c,0xb8,0x0c,0xc8, +0x0c,0xd8,0x0c,0xe8,0x0c,0xf8,0x0d,0x08,0x0d,0x18,0x0d,0x28,0x0d,0x38,0x0d,0x48,0x0d,0x58,0x0d,0x68,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x0c,0x66,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x0c,0x80,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x0c,0x7e,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x0c,0x80,0x00,0x07,0x00,0x09,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01,0x00,0x06,0x00,0x00,0x0c,0x92,0x00,0x01,0x00,0x06,0x00,0x00,0x0c,0x98,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x11,0x58,0x00,0x07, +0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x12,0x72,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x12,0x82,0x00,0x07,0x00,0x09,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x06,0x00,0x00,0x12,0xc6,0x00,0x01,0x00,0x06,0x00,0x00,0x12,0xd0,0x00,0x01,0x00,0x06,0x00,0x00, +0x12,0xdc,0x00,0x07,0x00,0x09,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0x0a,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0x14,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0x20,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0x2e,0x00,0x07,0x00,0x01,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01,0x00,0x06,0x00,0x00, +0x13,0x6a,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0x74,0x00,0x07,0x00,0x01,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0xa2,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0xac,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0xde,0x00,0x07,0x00,0x09,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01, +0x00,0x06,0x00,0x00,0x14,0x0e,0x00,0x01,0x00,0x06,0x00,0x00,0x14,0x1c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x44,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x19,0x4e,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x1d,0x54,0x00,0x07, +0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x21,0x62,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x21,0xc6,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x22,0x00,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x22,0x68,0x00,0x07, +0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x22,0xa2,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x23,0xcc,0x00,0x07,0x01,0x01,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x06,0x00,0x00,0x24,0x5c,0x00,0x01,0x00,0x06,0x00,0x00,0x27,0x74,0x00,0x01,0x00,0x06,0x00,0x00, +0x27,0x80,0x00,0x07,0x02,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x2f,0x74,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x2f,0xf6,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x35,0x5a,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x36,0xf2,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x37,0x06,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x37,0x2a,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x37,0x94,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x37,0xfe,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x38,0x52,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x38,0xa8,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3b,0x78,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x3e,0x4c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3e,0x4a,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x3e,0x48,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x3e,0x62,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x3e,0x82,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x3e,0x80,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3e,0x9c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3e,0xb0,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x3e,0xc4,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3e,0xd8,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3e,0xec,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3f,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x3f,0x14,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3f,0x28,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3f,0x3c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x3f,0x50,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x3f,0xf6,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x41,0x0c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x41,0x62,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x42,0x9a,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x43,0x42,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x43,0x40,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x43,0x48,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x43,0xd2,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x44,0x5c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0x70,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0x84,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0x98,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x44,0xac,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0xc0,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0xd4,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0xe8,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x44,0xfc,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x10,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x24,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x38,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x45,0x4c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x60,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x74,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x88,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x45,0x9c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0xb0,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x45,0xc4,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x45,0xcc,0x00,0x07,0x00,0x01,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26, +0x00,0x01,0x00,0x06,0x00,0x00,0x45,0xd0,0x00,0x01,0x00,0x06,0x00,0x00,0x45,0xda,0x00,0x01,0x00,0x06,0x00,0x00,0x45,0xe6,0x00,0x01,0x00,0x06,0x00,0x00,0x45,0xf2,0x00,0x07,0x00,0x01,0x00,0x1d,0x00,0x40,0x00,0x48,0x00,0x50,0x00,0x58,0x00,0x60,0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88,0x00,0x90,0x00,0x98,0x00,0xa0, +0x00,0xa8,0x00,0xb0,0x00,0xb8,0x00,0xc0,0x00,0xc8,0x00,0xd0,0x00,0xd8,0x00,0xe0,0x00,0xe8,0x00,0xf0,0x00,0xf8,0x01,0x00,0x01,0x08,0x01,0x10,0x01,0x18,0x01,0x20,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x44,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x52,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x62,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x72, +0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x84,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x90,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x9e,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0xac,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0xbc,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0xcc,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0xde,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0xee, +0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x00,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x0c,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x1a,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x2a,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x3a,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x48,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x58,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x6a, +0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x7c,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x8a,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x9a,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0xaa,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0xba,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0xcc,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0xde,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0xf2, +0x00,0x01,0x00,0x06,0x00,0x00,0x48,0x04,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x48,0xde,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x48,0xdc,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x48,0xe8,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x04,0x00,0x00,0x49,0x0c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x49,0x36,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x4a,0xd6,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x4b,0x0c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x04,0x00,0x00,0x4b,0x1c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x59,0xc8,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x5a,0x70,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x5b,0xe2,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x04,0x00,0x00,0x5c,0x08,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x5c,0x10,0x00,0x07,0x00,0x01,0x00,0x18,0x00,0x36,0x00,0x3e,0x00,0x46,0x00,0x4e,0x00,0x56,0x00,0x5e,0x00,0x66,0x00,0x6e,0x00,0x76,0x00,0x7e,0x00,0x86,0x00,0x8e,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6, +0x00,0xbe,0x00,0xc6,0x00,0xce,0x00,0xd6,0x00,0xde,0x00,0xe6,0x00,0xee,0x00,0x01,0x00,0x06,0x00,0x00,0x5b,0xe0,0x00,0x01,0x00,0x06,0x00,0x00,0x5b,0xec,0x00,0x01,0x00,0x06,0x00,0x00,0x5b,0xfa,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x0a,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x1c,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x2a,0x00,0x01, +0x00,0x06,0x00,0x00,0x5c,0x3a,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x4c,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x60,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x6c,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x7a,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x8a,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x9c,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0xaa,0x00,0x01, +0x00,0x06,0x00,0x00,0x5c,0xb8,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0xc8,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0xd8,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0xea,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0xfc,0x00,0x01,0x00,0x06,0x00,0x00,0x5d,0x10,0x00,0x01,0x00,0x06,0x00,0x00,0x5d,0x24,0x00,0x01,0x00,0x06,0x00,0x00,0x5d,0x30,0x00,0x01, +0x00,0x06,0x00,0x00,0x5d,0x3e,0x00,0x01,0x00,0x06,0x00,0x00,0x5d,0x4a,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x1c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x5e,0x3a,0x00,0x07,0x00,0x01,0x00,0x14,0x00,0x2e,0x00,0x36,0x00,0x3e,0x00,0x46,0x00,0x4e,0x00,0x56, +0x00,0x5e,0x00,0x66,0x00,0x6e,0x00,0x76,0x00,0x7e,0x00,0x86,0x00,0x8e,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6,0x00,0xbe,0x00,0xc6,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x24,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x34,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x42,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x52,0x00,0x01,0x00,0x06, +0x00,0x00,0x5e,0x60,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x70,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x7e,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x8e,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x9c,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0xac,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0xba,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0xca,0x00,0x01,0x00,0x06, +0x00,0x00,0x5e,0xd8,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0xe8,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0xf6,0x00,0x01,0x00,0x06,0x00,0x00,0x5f,0x06,0x00,0x01,0x00,0x06,0x00,0x00,0x5f,0x14,0x00,0x01,0x00,0x06,0x00,0x00,0x5f,0x24,0x00,0x01,0x00,0x06,0x00,0x00,0x5f,0x32,0x00,0x01,0x00,0x06,0x00,0x00,0x5f,0x42,0x00,0x07,0x00,0x01, +0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x60,0x46,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x60,0xc4,0x00,0x07,0x00,0x01,0x00,0x0b,0x00,0x1c,0x00,0x24,0x00,0x2c,0x00,0x34,0x00,0x3c,0x00,0x44,0x00,0x4c,0x00,0x54,0x00,0x5c,0x00,0x64,0x00,0x6c,0x00,0x01,0x00,0x06,0x00,0x00,0x60,0xec, +0x00,0x01,0x00,0x06,0x00,0x00,0x60,0xfc,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x0c,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x1a,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x28,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x36,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x44,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x52,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x60, +0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x6e,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x7c,0x00,0x07,0x00,0x01,0x00,0x0e,0x00,0x22,0x00,0x2a,0x00,0x32,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x6a,0x00,0x72,0x00,0x7a,0x00,0x82,0x00,0x8a,0x00,0x01,0x00,0x06,0x00,0x00,0x62,0x5e,0x00,0x01,0x00,0x06,0x00,0x00, +0x62,0x6a,0x00,0x01,0x00,0x06,0x00,0x00,0x63,0x06,0x00,0x01,0x00,0x06,0x00,0x00,0x63,0x2e,0x00,0x01,0x00,0x06,0x00,0x00,0x64,0x20,0x00,0x01,0x00,0x06,0x00,0x00,0x64,0x42,0x00,0x01,0x00,0x06,0x00,0x00,0x65,0x22,0x00,0x01,0x00,0x06,0x00,0x00,0x65,0x36,0x00,0x01,0x00,0x06,0x00,0x00,0x65,0xee,0x00,0x01,0x00,0x06,0x00,0x00, +0x66,0x00,0x00,0x01,0x00,0x06,0x00,0x00,0x66,0xb0,0x00,0x01,0x00,0x06,0x00,0x00,0x66,0xe0,0x00,0x01,0x00,0x06,0x00,0x00,0x67,0xd6,0x00,0x01,0x00,0x06,0x00,0x00,0x68,0x00,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x68,0xe2,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x68,0xe0,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x69,0x18,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x69,0x50,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x6a,0x0c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00, +0x6a,0xc8,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x6b,0x84,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6b,0xa8,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6b,0xea,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x6c,0x22,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6c,0xfe,0x00,0x07,0x01,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6d,0xc0,0x00,0x07,0x01,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6d,0xda,0x00,0x07,0x02,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x6d,0xf4,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6e,0x08,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6e,0x1c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6e,0x1a,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x6e,0x18,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6e,0x16,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6e,0x2c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x6e,0x34,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00, +0x6e,0xb8,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x6f,0x58,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x73,0xb4,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x73,0xc0,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00, +0x74,0x38,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x74,0x9e,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x74,0xc6,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x74,0xea,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00, +0x75,0x1a,0x00,0x02,0x00,0x0e,0x00,0x04,0x0e,0x19,0x0e,0x1f,0x0e,0x63,0x0e,0x64,0x00,0x02,0x00,0x04,0x08,0xf8,0x08,0xf8,0x00,0x00,0x09,0x05,0x09,0x05,0x00,0x01,0x09,0x2d,0x09,0x2d,0x00,0x02,0x0a,0x68,0x0a,0x68,0x00,0x03,0x00,0x02,0x00,0x08,0x00,0x01,0x0a,0x3e,0x00,0x01,0x00,0x01,0x09,0xdd,0x00,0x02,0x00,0x0a,0x00,0x02, +0x0e,0x19,0x0e,0x1f,0x00,0x01,0x00,0x02,0x08,0xf8,0x09,0x05,0x00,0x02,0x00,0x0e,0x00,0x04,0x0a,0x3c,0x08,0xdd,0x0a,0x3d,0x0e,0x15,0x00,0x02,0x00,0x03,0x09,0x53,0x09,0x53,0x00,0x00,0x09,0x55,0x09,0x56,0x00,0x01,0x0e,0x14,0x0e,0x14,0x00,0x03,0x00,0x03,0x00,0x01,0x00,0x1e,0x00,0x01,0x04,0xd8,0x00,0x00,0x00,0x00,0x00,0x03, +0x00,0x00,0x00,0x01,0x04,0xca,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x66,0x00,0x02,0x00,0xc9,0x08,0xc7,0x08,0xca,0x00,0x00,0x08,0xcf,0x08,0xcf,0x00,0x04,0x08,0xd1,0x08,0xd1,0x00,0x05,0x08,0xd3,0x08,0xd3,0x00,0x06,0x08,0xe4,0x08,0xe4,0x00,0x07,0x08,0xe7,0x08,0xe7,0x00,0x08,0x08,0xf1,0x08,0xf3,0x00,0x09,0x08,0xf5,0x08,0xf7, +0x00,0x0c,0x08,0xfa,0x08,0xfb,0x00,0x0f,0x08,0xff,0x09,0x00,0x00,0x11,0x09,0x02,0x09,0x02,0x00,0x13,0x09,0x08,0x09,0x20,0x00,0x14,0x09,0x22,0x09,0x2b,0x00,0x2d,0x09,0x34,0x09,0x35,0x00,0x37,0x09,0x3e,0x09,0x3e,0x00,0x39,0x09,0x40,0x09,0x40,0x00,0x3a,0x09,0x42,0x09,0x43,0x00,0x3b,0x09,0x45,0x09,0x46,0x00,0x3d,0x09,0x48, +0x09,0x48,0x00,0x3f,0x09,0x4a,0x09,0x4b,0x00,0x40,0x09,0x4d,0x09,0x4e,0x00,0x42,0x09,0x59,0x09,0x59,0x00,0x44,0x09,0x5b,0x09,0x5b,0x00,0x45,0x09,0x5d,0x09,0x60,0x00,0x46,0x09,0x63,0x09,0x68,0x00,0x4a,0x09,0x6c,0x09,0x6c,0x00,0x50,0x09,0x72,0x09,0x72,0x00,0x51,0x09,0x7c,0x09,0x7c,0x00,0x52,0x09,0x80,0x09,0x8c,0x00,0x53, +0x09,0x8e,0x09,0x8e,0x00,0x60,0x09,0x90,0x09,0x90,0x00,0x61,0x09,0x92,0x09,0x92,0x00,0x62,0x09,0x94,0x09,0x94,0x00,0x63,0x09,0x96,0x09,0x96,0x00,0x64,0x09,0x98,0x09,0x99,0x00,0x65,0x09,0x9b,0x09,0x9c,0x00,0x67,0x09,0x9e,0x09,0x9f,0x00,0x69,0x09,0xa1,0x09,0xa2,0x00,0x6b,0x09,0xa4,0x09,0xa5,0x00,0x6d,0x09,0xa7,0x09,0xa8, +0x00,0x6f,0x09,0xaa,0x09,0xb9,0x00,0x71,0x09,0xbb,0x09,0xbb,0x00,0x81,0x09,0xbd,0x09,0xbd,0x00,0x82,0x09,0xbf,0x09,0xbf,0x00,0x83,0x09,0xc1,0x09,0xc1,0x00,0x84,0x09,0xc3,0x09,0xc5,0x00,0x85,0x09,0xc8,0x09,0xc9,0x00,0x88,0x09,0xcc,0x09,0xcc,0x00,0x8a,0x09,0xcf,0x09,0xcf,0x00,0x8b,0x09,0xd2,0x09,0xd2,0x00,0x8c,0x09,0xd5, +0x09,0xd7,0x00,0x8d,0x09,0xd9,0x09,0xd9,0x00,0x90,0x09,0xdb,0x09,0xdb,0x00,0x91,0x09,0xdd,0x09,0xdd,0x00,0x92,0x09,0xdf,0x09,0xdf,0x00,0x93,0x09,0xe1,0x09,0xe1,0x00,0x94,0x09,0xe3,0x09,0xe3,0x00,0x95,0x09,0xe5,0x09,0xe5,0x00,0x96,0x09,0xe7,0x09,0xe7,0x00,0x97,0x09,0xe9,0x09,0xe9,0x00,0x98,0x09,0xeb,0x09,0xeb,0x00,0x99, +0x09,0xed,0x09,0xed,0x00,0x9a,0x09,0xef,0x09,0xef,0x00,0x9b,0x09,0xf1,0x09,0xf1,0x00,0x9c,0x09,0xf3,0x09,0xf3,0x00,0x9d,0x09,0xf5,0x09,0xf6,0x00,0x9e,0x09,0xf8,0x09,0xf8,0x00,0xa0,0x09,0xfa,0x09,0xfb,0x00,0xa1,0x09,0xfd,0x0a,0x08,0x00,0xa3,0x0a,0x0a,0x0a,0x0e,0x00,0xaf,0x0a,0x24,0x0a,0x24,0x00,0xb4,0x0a,0x26,0x0a,0x26, +0x00,0xb5,0x0a,0x28,0x0a,0x29,0x00,0xb6,0x0a,0x32,0x0a,0x3b,0x00,0xb8,0x0a,0x3e,0x0a,0x3f,0x00,0xc2,0x0a,0x41,0x0a,0x42,0x00,0xc4,0x0a,0x54,0x0a,0x59,0x00,0xc6,0x0a,0x72,0x0a,0x72,0x00,0xcc,0x0a,0x74,0x0a,0x74,0x00,0xcd,0x0a,0x76,0x0a,0x76,0x00,0xce,0x0a,0x78,0x0a,0x78,0x00,0xcf,0x0a,0x7a,0x0a,0x7a,0x00,0xd0,0x0a,0x7c, +0x0a,0x7c,0x00,0xd1,0x0a,0x7e,0x0a,0x7e,0x00,0xd2,0x0a,0x80,0x0a,0x81,0x00,0xd3,0x0a,0x83,0x0a,0x84,0x00,0xd5,0x0a,0x86,0x0a,0x89,0x00,0xd7,0x0a,0x8b,0x0a,0x8c,0x00,0xdb,0x0a,0x8f,0x0a,0x90,0x00,0xdd,0x0a,0x93,0x0a,0x94,0x00,0xdf,0x0a,0x97,0x0a,0x97,0x00,0xe1,0x0a,0x9a,0x0a,0x9a,0x00,0xe2,0x0a,0x9d,0x0a,0x9d,0x00,0xe3, +0x0a,0xa0,0x0a,0xa0,0x00,0xe4,0x0a,0xa3,0x0a,0xa3,0x00,0xe5,0x0a,0xa6,0x0a,0xa6,0x00,0xe6,0x0a,0xa8,0x0a,0xa8,0x00,0xe7,0x0a,0xaa,0x0a,0xaa,0x00,0xe8,0x0a,0xac,0x0a,0xac,0x00,0xe9,0x0a,0xae,0x0a,0xae,0x00,0xea,0x0a,0xb0,0x0a,0xb1,0x00,0xeb,0x0a,0xb4,0x0a,0xb6,0x00,0xed,0x0a,0xb9,0x0a,0xba,0x00,0xf0,0x0b,0x0c,0x0b,0x1a, +0x00,0xf2,0x0e,0x20,0x0e,0x21,0x01,0x01,0x0e,0x24,0x0e,0x24,0x01,0x03,0x0e,0x26,0x0e,0x26,0x01,0x04,0x0e,0x28,0x0e,0x28,0x01,0x05,0x0e,0x2a,0x0e,0x2a,0x01,0x06,0x0e,0x2f,0x0e,0x31,0x01,0x07,0x0e,0x33,0x0e,0x33,0x01,0x0a,0x0e,0x35,0x0e,0x35,0x01,0x0b,0x0e,0x37,0x0e,0x37,0x01,0x0c,0x0e,0x39,0x0e,0x39,0x01,0x0d,0x0e,0x3c, +0x0e,0x3c,0x01,0x0e,0x0e,0x3f,0x0e,0x40,0x01,0x0f,0x0e,0x43,0x0e,0x44,0x01,0x11,0x0e,0x47,0x0e,0x48,0x01,0x13,0x0e,0x4b,0x0e,0x4c,0x01,0x15,0x0e,0x4f,0x0e,0x50,0x01,0x17,0x0e,0x53,0x0e,0x55,0x01,0x19,0x0e,0x57,0x0e,0x57,0x01,0x1c,0x0e,0x59,0x0e,0x59,0x01,0x1d,0x0e,0x5e,0x0e,0x5e,0x01,0x1e,0x0e,0x6e,0x0e,0x6e,0x01,0x1f, +0x0e,0x70,0x0e,0x70,0x01,0x20,0x0e,0x74,0x0e,0x75,0x01,0x21,0x0e,0x78,0x0e,0x78,0x01,0x23,0x0e,0x7a,0x0e,0x7a,0x01,0x24,0x0e,0x7c,0x0e,0x7c,0x01,0x25,0x0e,0x7e,0x0e,0x7e,0x01,0x26,0x0e,0x80,0x0e,0x80,0x01,0x27,0x0e,0x82,0x0e,0x82,0x01,0x28,0x0e,0x84,0x0e,0x84,0x01,0x29,0x0e,0x86,0x0e,0x86,0x01,0x2a,0x0e,0x8f,0x0e,0x98, +0x01,0x2b,0x0e,0x9a,0x0e,0x9a,0x01,0x35,0x0e,0x9c,0x0e,0x9c,0x01,0x36,0x0e,0x9e,0x0e,0x9e,0x01,0x37,0x0e,0xa0,0x0e,0xa0,0x01,0x38,0x0e,0xa2,0x0e,0xa2,0x01,0x39,0x0e,0xa5,0x0e,0xab,0x01,0x3a,0x0e,0xae,0x0e,0xae,0x01,0x41,0x0e,0xb1,0x0e,0xb1,0x01,0x42,0x0e,0xb3,0x0e,0xb3,0x01,0x43,0x0e,0xb5,0x0e,0xb5,0x01,0x44,0x0e,0xb7, +0x0e,0xb7,0x01,0x45,0x0e,0xb9,0x0e,0xb9,0x01,0x46,0x0e,0xbb,0x0e,0xbb,0x01,0x47,0x0e,0xbd,0x0e,0xbd,0x01,0x48,0x0e,0xbf,0x0e,0xbf,0x01,0x49,0x0e,0xc1,0x0e,0xc1,0x01,0x4a,0x0e,0xc3,0x0e,0xc3,0x01,0x4b,0x0e,0xc5,0x0e,0xc5,0x01,0x4c,0x0e,0xc7,0x0e,0xc7,0x01,0x4d,0x0e,0xc9,0x0e,0xcd,0x01,0x4e,0x0e,0xcf,0x0e,0xd0,0x01,0x53, +0x0e,0xd3,0x0e,0xd3,0x01,0x55,0x0e,0xd5,0x0e,0xd5,0x01,0x56,0x0e,0xda,0x0e,0xe3,0x01,0x57,0x0e,0xe6,0x0e,0xe6,0x01,0x61,0x0e,0xec,0x0e,0xec,0x01,0x62,0x0e,0xee,0x0e,0xee,0x01,0x63,0x0e,0xf0,0x0e,0xf0,0x01,0x64,0x0e,0xf2,0x0e,0xf2,0x01,0x65,0x0e,0xf4,0x0e,0xf4,0x01,0x66,0x0e,0xf6,0x0e,0xf6,0x01,0x67,0x0e,0xf8,0x0e,0xf8, +0x01,0x68,0x0e,0xfa,0x0e,0xfa,0x01,0x69,0x0e,0xfc,0x0e,0xfc,0x01,0x6a,0x0f,0x00,0x0f,0x03,0x01,0x6b,0x0f,0x05,0x0f,0x0a,0x01,0x6f,0x0f,0x0c,0x0f,0x0c,0x01,0x75,0x0f,0x0e,0x0f,0x0e,0x01,0x76,0x0f,0x10,0x0f,0x10,0x01,0x77,0x0f,0x12,0x0f,0x12,0x01,0x78,0x0f,0x14,0x0f,0x14,0x01,0x79,0x0f,0x16,0x0f,0x17,0x01,0x7a,0x0f,0x1a, +0x0f,0x1b,0x01,0x7c,0x0f,0x1e,0x0f,0x1f,0x01,0x7e,0x0f,0x22,0x0f,0x25,0x01,0x80,0x0f,0x28,0x0f,0x2d,0x01,0x84,0x0f,0x30,0x0f,0x31,0x01,0x8a,0x0f,0x34,0x0f,0x35,0x01,0x8c,0x0f,0x38,0x0f,0x41,0x01,0x8e,0x0f,0x44,0x0f,0x45,0x01,0x98,0x0f,0x48,0x0f,0x49,0x01,0x9a,0x0f,0x4c,0x0f,0x4d,0x01,0x9c,0x0f,0x62,0x0f,0x6b,0x01,0x9e, +0x0f,0x98,0x0f,0xa4,0x01,0xa8,0x0f,0xa6,0x0f,0xb3,0x01,0xb5,0x0f,0xb5,0x0f,0xbc,0x01,0xc3,0x14,0x55,0x14,0x5c,0x01,0xcb,0x14,0x73,0x14,0x73,0x01,0xd3,0x14,0x76,0x14,0x76,0x01,0xd4,0x14,0x79,0x14,0x79,0x01,0xd5,0x14,0x7d,0x14,0x7e,0x01,0xd6,0x14,0x81,0x14,0x81,0x01,0xd8,0x14,0x84,0x14,0x84,0x01,0xd9,0x14,0x87,0x14,0x87, +0x01,0xda,0x14,0xad,0x14,0xae,0x01,0xdb,0x00,0x01,0x00,0x01,0x09,0x28,0x00,0x01,0x01,0x0e,0x00,0x0c,0x00,0x1e,0x00,0x30,0x00,0x42,0x00,0x4c,0x00,0x5e,0x00,0x70,0x00,0x7a,0x00,0xb4,0x00,0xbe,0x00,0xd0,0x00,0xf2,0x01,0x04,0x00,0x02,0x00,0x06,0x00,0x0c,0x0e,0x62,0x00,0x02,0x09,0x32,0x0e,0x69,0x00,0x02,0x09,0x7e,0x00,0x02, +0x00,0x06,0x00,0x0c,0x0a,0x68,0x00,0x02,0x09,0x32,0x0e,0x66,0x00,0x02,0x09,0x7e,0x00,0x01,0x00,0x04,0x0e,0x6b,0x00,0x02,0x09,0x7f,0x00,0x02,0x00,0x06,0x00,0x0c,0x0a,0x65,0x00,0x02,0x09,0x32,0x0e,0x67,0x00,0x02,0x09,0x7e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0a,0x66,0x00,0x02,0x09,0x32,0x0e,0x68,0x00,0x02,0x09,0x7e,0x00,0x01, +0x00,0x04,0x0e,0x6c,0x00,0x02,0x09,0x7f,0x00,0x07,0x00,0x10,0x00,0x16,0x00,0x1c,0x00,0x22,0x00,0x28,0x00,0x2e,0x00,0x34,0x0a,0x65,0x00,0x02,0x09,0x2f,0x0a,0x66,0x00,0x02,0x09,0x30,0x0a,0x68,0x00,0x02,0x09,0x2d,0x0e,0x62,0x00,0x02,0x09,0x2c,0x0e,0x64,0x00,0x02,0x0e,0x63,0x0e,0x65,0x00,0x02,0x09,0x73,0x13,0xe9,0x00,0x02, +0x09,0x73,0x00,0x01,0x00,0x04,0x0e,0x6a,0x00,0x02,0x09,0x7e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0e,0x65,0x00,0x02,0x09,0x32,0x13,0xe9,0x00,0x02,0x09,0x32,0x00,0x04,0x00,0x0a,0x00,0x10,0x00,0x16,0x00,0x1c,0x0e,0x66,0x00,0x02,0x09,0x2d,0x0e,0x67,0x00,0x02,0x09,0x2f,0x0e,0x68,0x00,0x02,0x09,0x30,0x0e,0x6a,0x00,0x02,0x09,0x33, +0x00,0x02,0x00,0x06,0x00,0x0c,0x0e,0x6b,0x00,0x02,0x09,0x2e,0x0e,0x6c,0x00,0x02,0x09,0x31,0x00,0x01,0x00,0x04,0x0e,0x64,0x00,0x02,0x09,0x32,0x00,0x02,0x00,0x04,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x73,0x09,0x73,0x00,0x08,0x09,0x7e,0x09,0x7f,0x00,0x09,0x0e,0x63,0x0e,0x63,0x00,0x0b,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x08, +0x00,0x02,0x00,0x06,0x00,0x0c,0x0a,0x67,0x00,0x02,0x09,0x31,0x0a,0x69,0x00,0x02,0x09,0x2e,0x00,0x01,0x00,0x01,0x09,0x32,0x00,0x01,0x00,0x52,0x00,0x01,0x00,0x08,0x00,0x09,0x00,0x14,0x00,0x1a,0x00,0x20,0x00,0x26,0x00,0x2c,0x00,0x32,0x00,0x38,0x00,0x3e,0x00,0x44,0x11,0x9a,0x00,0x02,0x08,0xd8,0x11,0x9b,0x00,0x02,0x08,0xd9, +0x11,0x9c,0x00,0x02,0x08,0xda,0x11,0x9d,0x00,0x02,0x08,0xdb,0x11,0x9e,0x00,0x02,0x08,0xdc,0x11,0x9f,0x00,0x02,0x08,0xdd,0x11,0xa0,0x00,0x02,0x08,0xde,0x11,0xa1,0x00,0x02,0x08,0xdf,0x11,0xa2,0x00,0x02,0x08,0xe0,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x03,0x00,0x01,0x00,0x3c,0x00,0x01,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x00, +0x00,0x67,0x00,0x03,0x00,0x02,0x00,0x48,0x00,0x52,0x00,0x01,0x00,0x32,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x67,0x00,0x03,0x00,0x03,0x00,0x34,0x00,0x34,0x00,0x3e,0x00,0x01,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x67,0x00,0x01,0x00,0x02,0x0a,0x14,0x14,0x6b,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f, +0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x03,0x00,0x01,0x00,0x54,0x00,0x01,0x00,0x6a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x03,0x00,0x02,0x00,0x6e,0x00,0x42,0x00,0x01,0x00,0x58,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68, +0x00,0x03,0x00,0x03,0x00,0x5a,0x00,0x5a,0x00,0x2e,0x00,0x01,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x03,0x00,0x04,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x18,0x00,0x01,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x02,0x00,0x03,0x0a,0x44,0x0a,0x44,0x00,0x00,0x0a,0x47,0x0a,0x47,0x00,0x01,0x13,0x45, +0x13,0x45,0x00,0x02,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x26,0x00,0x01,0x00,0x2c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x03,0x00,0x02,0x00,0x30,0x00,0x3a,0x00,0x01, +0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x01,0x00,0x01,0x0a,0x45,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x14,0x9a,0x00,0x03,0x00,0x01,0x00,0x26,0x00,0x01,0x00,0x2e, +0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6a,0x00,0x03,0x00,0x02,0x00,0x32,0x00,0x3c,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6a,0x00,0x01,0x00,0x02,0x0a,0x45,0x0a,0x46,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x02,0x00,0x01,0x14,0x9e, +0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x14,0x9a,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x24,0x00,0x01,0x00,0x2c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6b,0x00,0x02,0x00,0x02,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x53,0x09,0x55,0x00,0x0a,0x00,0x01,0x00,0x02,0x14,0x03,0x14,0x2b,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00, +0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x03,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x01,0x00,0x00,0x00,0x6c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x04,0x00,0x2e,0x00,0x2e,0x00,0x2e,0x00,0x2e,0x00,0x01,0x00,0x00,0x00,0x6c,0x00,0x02,0x00,0x03,0x0a,0x44, +0x0a,0x44,0x00,0x00,0x0a,0x47,0x0a,0x47,0x00,0x01,0x13,0x45,0x13,0x45,0x00,0x02,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x02,0x01,0xc8,0x00,0xe1,0x08,0xf2,0x08,0xc9,0x08,0xc8,0x0e,0x24,0x08,0xca,0x09,0x02,0x08,0xc7,0x0e,0x26,0x08,0xf6,0x0e,0x28,0x0e,0x2a,0x08,0xcf,0x08,0xd1,0x08,0xd3,0x0e,0x2f,0x0e,0x30, +0x0b,0x0c,0x0b,0x0d,0x0e,0x31,0x0e,0x33,0x0e,0x35,0x0e,0x37,0x0e,0x39,0x0e,0x3c,0x08,0xe4,0x08,0xe7,0x0e,0x53,0x0e,0x54,0x0e,0x55,0x09,0x59,0x0e,0x57,0x0e,0x59,0x08,0xf3,0x0e,0x5e,0x08,0xf7,0x08,0xf5,0x0e,0x6e,0x0e,0x82,0x09,0x43,0x0b,0x0e,0x0e,0xb1,0x0e,0xbd,0x09,0x4b,0x09,0x4d,0x0e,0x78,0x0e,0x8f,0x0b,0x0f,0x0e,0xcf, +0x09,0x72,0x0e,0xda,0x0e,0xdb,0x09,0x66,0x09,0x68,0x0e,0xa8,0x0e,0x70,0x09,0x81,0x09,0x83,0x09,0x85,0x09,0x87,0x0e,0x74,0x0e,0x75,0x09,0x8b,0x0e,0x7a,0x0e,0x7c,0x0e,0x7e,0x0e,0x80,0x0e,0x84,0x0e,0x86,0x09,0x99,0x09,0x9c,0x09,0x9f,0x09,0xa2,0x09,0xa5,0x09,0xa8,0x0e,0x90,0x0e,0x91,0x0e,0x92,0x0e,0x93,0x0e,0x94,0x0e,0x95, +0x0e,0x96,0x0e,0x97,0x0b,0x10,0x0b,0x11,0x0b,0x12,0x0b,0x13,0x0b,0x14,0x0b,0x15,0x0b,0x16,0x0e,0x98,0x0e,0x9a,0x0e,0x9c,0x0e,0x9e,0x0e,0xa0,0x0e,0xa2,0x09,0xc5,0x0e,0xa5,0x0e,0xa6,0x0e,0xa7,0x0e,0xa9,0x0e,0xaa,0x0e,0xab,0x0e,0xae,0x0e,0xb3,0x0e,0xb5,0x0e,0xb7,0x0e,0xb9,0x0e,0xbb,0x0e,0xbf,0x0e,0xc1,0x0e,0xc3,0x0e,0xc5, +0x0e,0xc7,0x0e,0xc9,0x0e,0xca,0x0e,0xcb,0x0e,0xcc,0x0e,0xcd,0x0e,0xd0,0x0e,0xd3,0x0e,0xd5,0x09,0xfb,0x0e,0xdc,0x0e,0xdd,0x0e,0xde,0x0e,0xdf,0x0e,0xe0,0x0e,0xe1,0x0e,0xe2,0x0e,0xe3,0x0a,0x06,0x0a,0x08,0x0e,0xe6,0x0a,0x0c,0x0a,0x0e,0x0e,0xec,0x0e,0xee,0x0a,0x29,0x0a,0x3f,0x0a,0x55,0x0a,0x57,0x0a,0x59,0x0e,0xf0,0x0e,0xf2, +0x0e,0xf4,0x0e,0xf6,0x0e,0xf8,0x0e,0xfa,0x0e,0xfc,0x0a,0x81,0x0a,0x84,0x0f,0x00,0x0f,0x01,0x0f,0x02,0x0f,0x03,0x0a,0x8c,0x0a,0x90,0x0a,0x94,0x0f,0x05,0x0f,0x06,0x0f,0x07,0x0f,0x08,0x0f,0x09,0x0f,0x0a,0x0f,0x0c,0x0f,0x0e,0x0f,0x10,0x0f,0x12,0x0a,0xb1,0x0b,0x17,0x0b,0x18,0x0f,0x14,0x0b,0x1a,0x0e,0x21,0x0e,0x40,0x0e,0x44, +0x0e,0x48,0x0e,0x4c,0x0e,0x50,0x0f,0x17,0x0f,0x1b,0x0f,0x1f,0x0f,0x23,0x0f,0x25,0x0f,0x29,0x0f,0x2b,0x0f,0x2d,0x0f,0x31,0x0f,0x35,0x0f,0x39,0x0f,0x3b,0x0f,0x3d,0x0f,0x3f,0x0f,0x41,0x0f,0x45,0x0f,0x49,0x0f,0x4d,0x13,0x00,0x13,0x05,0x13,0x0b,0x13,0x0f,0x13,0x13,0x13,0x17,0x13,0x1b,0x13,0x1f,0x13,0x23,0x13,0x25,0x13,0x27, +0x13,0x29,0x14,0x07,0x14,0x0a,0x14,0x0e,0x14,0x12,0x14,0x14,0x14,0x16,0x14,0x6d,0x14,0x70,0x14,0x73,0x14,0x76,0x14,0x79,0x14,0x7d,0x14,0x7e,0x14,0x81,0x14,0x84,0x14,0x87,0x00,0x02,0x00,0x8d,0x08,0xf1,0x08,0xf1,0x00,0x00,0x09,0x08,0x09,0x20,0x00,0x01,0x09,0x22,0x09,0x2b,0x00,0x1a,0x09,0x3e,0x09,0x3e,0x00,0x24,0x09,0x40, +0x09,0x40,0x00,0x25,0x09,0x42,0x09,0x42,0x00,0x26,0x09,0x45,0x09,0x46,0x00,0x27,0x09,0x48,0x09,0x48,0x00,0x29,0x09,0x4a,0x09,0x4a,0x00,0x2a,0x09,0x4e,0x09,0x4e,0x00,0x2b,0x09,0x5b,0x09,0x5b,0x00,0x2c,0x09,0x5d,0x09,0x60,0x00,0x2d,0x09,0x63,0x09,0x65,0x00,0x31,0x09,0x67,0x09,0x67,0x00,0x34,0x09,0x6c,0x09,0x6c,0x00,0x35, +0x09,0x7c,0x09,0x7c,0x00,0x36,0x09,0x80,0x09,0x80,0x00,0x37,0x09,0x82,0x09,0x82,0x00,0x38,0x09,0x84,0x09,0x84,0x00,0x39,0x09,0x86,0x09,0x86,0x00,0x3a,0x09,0x88,0x09,0x8a,0x00,0x3b,0x09,0x8c,0x09,0x8c,0x00,0x3e,0x09,0x8e,0x09,0x8e,0x00,0x3f,0x09,0x90,0x09,0x90,0x00,0x40,0x09,0x92,0x09,0x92,0x00,0x41,0x09,0x94,0x09,0x94, +0x00,0x42,0x09,0x96,0x09,0x96,0x00,0x43,0x09,0x98,0x09,0x98,0x00,0x44,0x09,0x9b,0x09,0x9b,0x00,0x45,0x09,0x9e,0x09,0x9e,0x00,0x46,0x09,0xa1,0x09,0xa1,0x00,0x47,0x09,0xa4,0x09,0xa4,0x00,0x48,0x09,0xa7,0x09,0xa7,0x00,0x49,0x09,0xaa,0x09,0xb9,0x00,0x4a,0x09,0xbb,0x09,0xbb,0x00,0x5a,0x09,0xbd,0x09,0xbd,0x00,0x5b,0x09,0xbf, +0x09,0xbf,0x00,0x5c,0x09,0xc1,0x09,0xc1,0x00,0x5d,0x09,0xc3,0x09,0xc4,0x00,0x5e,0x09,0xc8,0x09,0xc9,0x00,0x60,0x09,0xcc,0x09,0xcc,0x00,0x62,0x09,0xcf,0x09,0xcf,0x00,0x63,0x09,0xd2,0x09,0xd2,0x00,0x64,0x09,0xd5,0x09,0xd7,0x00,0x65,0x09,0xd9,0x09,0xd9,0x00,0x68,0x09,0xdb,0x09,0xdb,0x00,0x69,0x09,0xdd,0x09,0xdd,0x00,0x6a, +0x09,0xdf,0x09,0xdf,0x00,0x6b,0x09,0xe1,0x09,0xe1,0x00,0x6c,0x09,0xe3,0x09,0xe3,0x00,0x6d,0x09,0xe5,0x09,0xe5,0x00,0x6e,0x09,0xe7,0x09,0xe7,0x00,0x6f,0x09,0xe9,0x09,0xe9,0x00,0x70,0x09,0xeb,0x09,0xeb,0x00,0x71,0x09,0xed,0x09,0xed,0x00,0x72,0x09,0xef,0x09,0xef,0x00,0x73,0x09,0xf1,0x09,0xf1,0x00,0x74,0x09,0xf3,0x09,0xf3, +0x00,0x75,0x09,0xf5,0x09,0xf6,0x00,0x76,0x09,0xf8,0x09,0xf8,0x00,0x78,0x09,0xfa,0x09,0xfa,0x00,0x79,0x09,0xfd,0x0a,0x05,0x00,0x7a,0x0a,0x07,0x0a,0x07,0x00,0x83,0x0a,0x0a,0x0a,0x0b,0x00,0x84,0x0a,0x0d,0x0a,0x0d,0x00,0x86,0x0a,0x24,0x0a,0x24,0x00,0x87,0x0a,0x26,0x0a,0x26,0x00,0x88,0x0a,0x28,0x0a,0x28,0x00,0x89,0x0a,0x3e, +0x0a,0x3e,0x00,0x8a,0x0a,0x54,0x0a,0x54,0x00,0x8b,0x0a,0x56,0x0a,0x56,0x00,0x8c,0x0a,0x58,0x0a,0x58,0x00,0x8d,0x0a,0x72,0x0a,0x72,0x00,0x8e,0x0a,0x74,0x0a,0x74,0x00,0x8f,0x0a,0x76,0x0a,0x76,0x00,0x90,0x0a,0x78,0x0a,0x78,0x00,0x91,0x0a,0x7a,0x0a,0x7a,0x00,0x92,0x0a,0x7c,0x0a,0x7c,0x00,0x93,0x0a,0x7e,0x0a,0x7e,0x00,0x94, +0x0a,0x80,0x0a,0x80,0x00,0x95,0x0a,0x83,0x0a,0x83,0x00,0x96,0x0a,0x86,0x0a,0x89,0x00,0x97,0x0a,0x8b,0x0a,0x8b,0x00,0x9b,0x0a,0x8f,0x0a,0x8f,0x00,0x9c,0x0a,0x93,0x0a,0x93,0x00,0x9d,0x0a,0x97,0x0a,0x97,0x00,0x9e,0x0a,0x9a,0x0a,0x9a,0x00,0x9f,0x0a,0x9d,0x0a,0x9d,0x00,0xa0,0x0a,0xa0,0x0a,0xa0,0x00,0xa1,0x0a,0xa3,0x0a,0xa3, +0x00,0xa2,0x0a,0xa6,0x0a,0xa6,0x00,0xa3,0x0a,0xa8,0x0a,0xa8,0x00,0xa4,0x0a,0xaa,0x0a,0xaa,0x00,0xa5,0x0a,0xac,0x0a,0xac,0x00,0xa6,0x0a,0xae,0x0a,0xae,0x00,0xa7,0x0a,0xb0,0x0a,0xb0,0x00,0xa8,0x0a,0xb4,0x0a,0xb6,0x00,0xa9,0x0b,0x19,0x0b,0x19,0x00,0xac,0x0e,0x20,0x0e,0x20,0x00,0xad,0x0e,0x3f,0x0e,0x3f,0x00,0xae,0x0e,0x43, +0x0e,0x43,0x00,0xaf,0x0e,0x47,0x0e,0x47,0x00,0xb0,0x0e,0x4b,0x0e,0x4b,0x00,0xb1,0x0e,0x4f,0x0e,0x4f,0x00,0xb2,0x0f,0x16,0x0f,0x16,0x00,0xb3,0x0f,0x1a,0x0f,0x1a,0x00,0xb4,0x0f,0x1e,0x0f,0x1e,0x00,0xb5,0x0f,0x22,0x0f,0x22,0x00,0xb6,0x0f,0x24,0x0f,0x24,0x00,0xb7,0x0f,0x28,0x0f,0x28,0x00,0xb8,0x0f,0x2a,0x0f,0x2a,0x00,0xb9, +0x0f,0x2c,0x0f,0x2c,0x00,0xba,0x0f,0x30,0x0f,0x30,0x00,0xbb,0x0f,0x34,0x0f,0x34,0x00,0xbc,0x0f,0x38,0x0f,0x38,0x00,0xbd,0x0f,0x3a,0x0f,0x3a,0x00,0xbe,0x0f,0x3c,0x0f,0x3c,0x00,0xbf,0x0f,0x3e,0x0f,0x3e,0x00,0xc0,0x0f,0x40,0x0f,0x40,0x00,0xc1,0x0f,0x44,0x0f,0x44,0x00,0xc2,0x0f,0x48,0x0f,0x48,0x00,0xc3,0x0f,0x4c,0x0f,0x4c, +0x00,0xc4,0x13,0x02,0x13,0x02,0x00,0xc5,0x13,0x04,0x13,0x04,0x00,0xc6,0x13,0x08,0x13,0x08,0x00,0xc7,0x13,0x0c,0x13,0x0c,0x00,0xc8,0x13,0x10,0x13,0x10,0x00,0xc9,0x13,0x14,0x13,0x14,0x00,0xca,0x13,0x18,0x13,0x18,0x00,0xcb,0x13,0x1c,0x13,0x1c,0x00,0xcc,0x13,0x20,0x13,0x20,0x00,0xcd,0x13,0x24,0x13,0x24,0x00,0xce,0x13,0x26, +0x13,0x26,0x00,0xcf,0x13,0x28,0x13,0x28,0x00,0xd0,0x14,0x04,0x14,0x04,0x00,0xd1,0x14,0x09,0x14,0x09,0x00,0xd2,0x14,0x0b,0x14,0x0b,0x00,0xd3,0x14,0x0f,0x14,0x0f,0x00,0xd4,0x14,0x13,0x14,0x13,0x00,0xd5,0x14,0x15,0x14,0x15,0x00,0xd6,0x14,0x53,0x14,0x5c,0x00,0xd7,0x00,0x02,0x01,0x36,0x00,0x98,0x0e,0xd8,0x0e,0x25,0x0e,0x27, +0x0e,0x29,0x0e,0x2b,0x0e,0x2c,0x0e,0x2d,0x0e,0x2e,0x0e,0x32,0x0e,0x34,0x0e,0x36,0x0e,0x38,0x0e,0x3b,0x0e,0x3e,0x08,0xe3,0x08,0xe6,0x08,0xe9,0x08,0xec,0x0e,0x56,0x09,0x3f,0x0e,0x58,0x0e,0x5a,0x0e,0x5d,0x0e,0x60,0x0e,0x61,0x09,0x3b,0x0e,0x83,0x0e,0x8d,0x0e,0xb2,0x0e,0xbe,0x0e,0xe4,0x0e,0x79,0x09,0x62,0x09,0x6e,0x0e,0x72, +0x0e,0x77,0x0e,0x7b,0x0e,0x7d,0x0e,0x7f,0x0e,0x81,0x0e,0x85,0x0e,0x87,0x0e,0x88,0x0e,0x89,0x0e,0x8a,0x0e,0x8b,0x0e,0x8c,0x0e,0x8e,0x0e,0x99,0x0e,0x9b,0x0e,0x9d,0x0e,0x9f,0x0e,0xa1,0x0e,0xa4,0x09,0xc7,0x09,0x3d,0x09,0xcb,0x09,0xce,0x09,0xd1,0x09,0xd4,0x0e,0xad,0x0e,0xb0,0x0e,0xb4,0x0e,0xb6,0x0e,0xb8,0x0e,0xba,0x0e,0xbc, +0x0e,0xc0,0x0e,0xc2,0x0e,0xc4,0x0e,0xc6,0x0e,0xc8,0x0a,0x5f,0x0a,0x60,0x0a,0x61,0x0a,0x62,0x0e,0xce,0x0e,0xd2,0x0e,0xd4,0x0e,0xd6,0x0e,0xd9,0x0e,0xe5,0x0e,0xe8,0x0e,0xea,0x0e,0xed,0x0e,0xef,0x0a,0x2b,0x0e,0xba,0x0a,0x5b,0x0e,0xf1,0x0e,0xf3,0x0e,0xf5,0x0e,0xf7,0x0e,0xf9,0x0e,0xfb,0x0e,0xfd,0x0e,0xfe,0x0e,0xff,0x0f,0x04, +0x0a,0x8e,0x0a,0x92,0x0a,0x96,0x0a,0x99,0x0a,0x9c,0x0a,0x9f,0x0a,0xa2,0x0a,0xa5,0x0f,0x0b,0x0f,0x0d,0x0f,0x0f,0x0f,0x11,0x0f,0x13,0x0a,0xb3,0x0f,0x15,0x0e,0x23,0x0e,0x42,0x0e,0x46,0x0e,0x4a,0x0e,0x4e,0x0e,0x52,0x0f,0x19,0x0f,0x1d,0x0f,0x21,0x0f,0x27,0x0f,0x2f,0x0f,0x33,0x0f,0x37,0x0f,0x43,0x0f,0x47,0x0f,0x4b,0x0f,0x4f, +0x13,0x01,0x13,0x07,0x13,0x0a,0x13,0x0e,0x13,0x12,0x13,0x16,0x13,0x1a,0x13,0x1e,0x13,0x22,0x14,0x06,0x14,0x0d,0x14,0x11,0x14,0x6e,0x14,0x71,0x14,0x74,0x14,0x77,0x14,0x7a,0x14,0x7f,0x14,0x82,0x14,0x85,0x0e,0x5a,0x00,0x02,0x00,0x7a,0x08,0xf1,0x08,0xf1,0x00,0x00,0x09,0x0c,0x09,0x0c,0x00,0x01,0x09,0x0e,0x09,0x0e,0x00,0x02, +0x09,0x10,0x09,0x14,0x00,0x03,0x09,0x19,0x09,0x20,0x00,0x08,0x09,0x22,0x09,0x28,0x00,0x10,0x09,0x2a,0x09,0x2b,0x00,0x17,0x09,0x3e,0x09,0x3e,0x00,0x19,0x09,0x40,0x09,0x40,0x00,0x1a,0x09,0x42,0x09,0x42,0x00,0x1b,0x09,0x46,0x09,0x46,0x00,0x1c,0x09,0x48,0x09,0x48,0x00,0x1d,0x09,0x4a,0x09,0x4a,0x00,0x1e,0x09,0x5b,0x09,0x5b, +0x00,0x1f,0x09,0x60,0x09,0x60,0x00,0x20,0x09,0x6c,0x09,0x6c,0x00,0x21,0x09,0x7c,0x09,0x7c,0x00,0x22,0x09,0x8a,0x09,0x8a,0x00,0x23,0x09,0x8c,0x09,0x8c,0x00,0x24,0x09,0x8e,0x09,0x8e,0x00,0x25,0x09,0x90,0x09,0x90,0x00,0x26,0x09,0x92,0x09,0x92,0x00,0x27,0x09,0x94,0x09,0x94,0x00,0x28,0x09,0x96,0x09,0x96,0x00,0x29,0x09,0x98, +0x09,0x98,0x00,0x2a,0x09,0x9b,0x09,0x9b,0x00,0x2b,0x09,0x9e,0x09,0x9e,0x00,0x2c,0x09,0xa1,0x09,0xa1,0x00,0x2d,0x09,0xa4,0x09,0xa4,0x00,0x2e,0x09,0xa7,0x09,0xa7,0x00,0x2f,0x09,0xb9,0x09,0xb9,0x00,0x30,0x09,0xbb,0x09,0xbb,0x00,0x31,0x09,0xbd,0x09,0xbd,0x00,0x32,0x09,0xbf,0x09,0xbf,0x00,0x33,0x09,0xc1,0x09,0xc1,0x00,0x34, +0x09,0xc3,0x09,0xc4,0x00,0x35,0x09,0xc8,0x09,0xc9,0x00,0x37,0x09,0xcc,0x09,0xcc,0x00,0x39,0x09,0xcf,0x09,0xcf,0x00,0x3a,0x09,0xd2,0x09,0xd2,0x00,0x3b,0x09,0xd5,0x09,0xd7,0x00,0x3c,0x09,0xd9,0x09,0xd9,0x00,0x3f,0x09,0xdb,0x09,0xdb,0x00,0x40,0x09,0xdd,0x09,0xdd,0x00,0x41,0x09,0xdf,0x09,0xdf,0x00,0x42,0x09,0xe1,0x09,0xe1, +0x00,0x43,0x09,0xe3,0x09,0xe3,0x00,0x44,0x09,0xe5,0x09,0xe5,0x00,0x45,0x09,0xe7,0x09,0xe7,0x00,0x46,0x09,0xe9,0x09,0xe9,0x00,0x47,0x09,0xeb,0x09,0xeb,0x00,0x48,0x09,0xed,0x09,0xed,0x00,0x49,0x09,0xef,0x09,0xef,0x00,0x4a,0x09,0xf1,0x09,0xf1,0x00,0x4b,0x09,0xf3,0x09,0xf3,0x00,0x4c,0x09,0xf5,0x09,0xf6,0x00,0x4d,0x09,0xf8, +0x09,0xf8,0x00,0x4f,0x09,0xfa,0x09,0xfa,0x00,0x50,0x0a,0x07,0x0a,0x07,0x00,0x51,0x0a,0x0b,0x0a,0x0b,0x00,0x52,0x0a,0x0d,0x0a,0x0d,0x00,0x53,0x0a,0x24,0x0a,0x24,0x00,0x54,0x0a,0x26,0x0a,0x26,0x00,0x55,0x0a,0x28,0x0a,0x28,0x00,0x56,0x0a,0x3e,0x0a,0x3e,0x00,0x57,0x0a,0x58,0x0a,0x58,0x00,0x58,0x0a,0x72,0x0a,0x72,0x00,0x59, +0x0a,0x74,0x0a,0x74,0x00,0x5a,0x0a,0x76,0x0a,0x76,0x00,0x5b,0x0a,0x78,0x0a,0x78,0x00,0x5c,0x0a,0x7a,0x0a,0x7a,0x00,0x5d,0x0a,0x7c,0x0a,0x7c,0x00,0x5e,0x0a,0x7e,0x0a,0x7e,0x00,0x5f,0x0a,0x80,0x0a,0x80,0x00,0x60,0x0a,0x83,0x0a,0x83,0x00,0x61,0x0a,0x89,0x0a,0x89,0x00,0x62,0x0a,0x8b,0x0a,0x8b,0x00,0x63,0x0a,0x8f,0x0a,0x8f, +0x00,0x64,0x0a,0x93,0x0a,0x93,0x00,0x65,0x0a,0x97,0x0a,0x97,0x00,0x66,0x0a,0x9a,0x0a,0x9a,0x00,0x67,0x0a,0x9d,0x0a,0x9d,0x00,0x68,0x0a,0xa0,0x0a,0xa0,0x00,0x69,0x0a,0xa3,0x0a,0xa3,0x00,0x6a,0x0a,0xa6,0x0a,0xa6,0x00,0x6b,0x0a,0xa8,0x0a,0xa8,0x00,0x6c,0x0a,0xaa,0x0a,0xaa,0x00,0x6d,0x0a,0xac,0x0a,0xac,0x00,0x6e,0x0a,0xae, +0x0a,0xae,0x00,0x6f,0x0a,0xb0,0x0a,0xb0,0x00,0x70,0x0a,0xb6,0x0a,0xb6,0x00,0x71,0x0e,0x20,0x0e,0x20,0x00,0x72,0x0e,0x3f,0x0e,0x3f,0x00,0x73,0x0e,0x43,0x0e,0x43,0x00,0x74,0x0e,0x47,0x0e,0x47,0x00,0x75,0x0e,0x4b,0x0e,0x4b,0x00,0x76,0x0e,0x4f,0x0e,0x4f,0x00,0x77,0x0f,0x16,0x0f,0x16,0x00,0x78,0x0f,0x1a,0x0f,0x1a,0x00,0x79, +0x0f,0x1e,0x0f,0x1e,0x00,0x7a,0x0f,0x24,0x0f,0x24,0x00,0x7b,0x0f,0x2c,0x0f,0x2c,0x00,0x7c,0x0f,0x30,0x0f,0x30,0x00,0x7d,0x0f,0x34,0x0f,0x34,0x00,0x7e,0x0f,0x40,0x0f,0x40,0x00,0x7f,0x0f,0x44,0x0f,0x44,0x00,0x80,0x0f,0x48,0x0f,0x48,0x00,0x81,0x0f,0x4c,0x0f,0x4c,0x00,0x82,0x13,0x02,0x13,0x02,0x00,0x83,0x13,0x04,0x13,0x04, +0x00,0x84,0x13,0x08,0x13,0x08,0x00,0x85,0x13,0x0c,0x13,0x0c,0x00,0x86,0x13,0x10,0x13,0x10,0x00,0x87,0x13,0x14,0x13,0x14,0x00,0x88,0x13,0x18,0x13,0x18,0x00,0x89,0x13,0x1c,0x13,0x1c,0x00,0x8a,0x13,0x20,0x13,0x20,0x00,0x8b,0x14,0x04,0x14,0x04,0x00,0x8c,0x14,0x0b,0x14,0x0b,0x00,0x8d,0x14,0x0f,0x14,0x0f,0x00,0x8e,0x14,0x53, +0x14,0x57,0x00,0x8f,0x14,0x59,0x14,0x5c,0x00,0x94,0x00,0x02,0x01,0x38,0x00,0x99,0x0e,0xd7,0x08,0xf9,0x08,0xcb,0x08,0xcc,0x08,0xcd,0x08,0xce,0x08,0xd0,0x08,0xd2,0x08,0xd4,0x08,0xd5,0x08,0xd6,0x08,0xe1,0x0e,0x3a,0x0e,0x3d,0x08,0xe2,0x08,0xe5,0x08,0xe8,0x08,0xeb,0x08,0xed,0x08,0xee,0x08,0xef,0x08,0xf0,0x0e,0x5b,0x0e,0x5f, +0x08,0xf4,0x0e,0x6f,0x09,0x41,0x09,0x44,0x09,0x47,0x09,0x49,0x09,0x4c,0x09,0x5c,0x09,0x61,0x09,0x6d,0x0e,0x71,0x0e,0x76,0x09,0x8d,0x09,0x8f,0x09,0x91,0x09,0x93,0x09,0x95,0x09,0x97,0x09,0x9a,0x09,0x9d,0x09,0xa0,0x09,0xa3,0x09,0xa6,0x09,0xa9,0x09,0xba,0x09,0xbc,0x09,0xbe,0x09,0xc0,0x09,0xc2,0x0e,0xa3,0x09,0xc6,0x09,0x3c, +0x09,0xca,0x09,0xcd,0x09,0xd0,0x09,0xd3,0x0e,0xac,0x0e,0xaf,0x09,0xd8,0x09,0xda,0x09,0xdc,0x09,0xde,0x09,0xe0,0x09,0xe2,0x09,0xe4,0x09,0xe6,0x09,0xe8,0x09,0xea,0x09,0xec,0x09,0xee,0x09,0xf0,0x09,0xf2,0x09,0xf4,0x0e,0xd1,0x09,0xf7,0x09,0xf9,0x09,0xfc,0x0a,0x09,0x0e,0xe7,0x0e,0xe9,0x0a,0x10,0x0a,0x25,0x0a,0x27,0x0a,0x2a, +0x09,0xde,0x0a,0x5a,0x0a,0x73,0x0a,0x75,0x0a,0x77,0x0a,0x79,0x0a,0x7b,0x0a,0x7d,0x0a,0x7f,0x0a,0x82,0x0a,0x85,0x0a,0x8a,0x0a,0x8d,0x0a,0x91,0x0a,0x95,0x0a,0x98,0x0a,0x9b,0x0a,0x9e,0x0a,0xa1,0x0a,0xa4,0x0a,0xa7,0x0a,0xa9,0x0a,0xab,0x0a,0xad,0x0a,0xaf,0x0a,0xb2,0x0a,0xb7,0x0e,0x22,0x0e,0x41,0x0e,0x45,0x0e,0x49,0x0e,0x4d, +0x0e,0x51,0x0f,0x18,0x0f,0x1c,0x0f,0x20,0x0f,0x26,0x0f,0x2e,0x0f,0x32,0x0f,0x36,0x0f,0x42,0x0f,0x46,0x0f,0x4a,0x0f,0x4e,0x13,0x03,0x13,0x06,0x13,0x09,0x13,0x0d,0x13,0x11,0x13,0x15,0x13,0x19,0x13,0x1d,0x13,0x21,0x14,0x05,0x14,0x0c,0x14,0x10,0x14,0x6f,0x14,0x72,0x14,0x75,0x14,0x78,0x14,0x7b,0x14,0x80,0x14,0x83,0x14,0x86, +0x08,0xf0,0x00,0x02,0x00,0x7b,0x08,0xf1,0x08,0xf1,0x00,0x00,0x09,0x0c,0x09,0x0c,0x00,0x01,0x09,0x0e,0x09,0x0e,0x00,0x02,0x09,0x10,0x09,0x14,0x00,0x03,0x09,0x19,0x09,0x20,0x00,0x08,0x09,0x22,0x09,0x28,0x00,0x10,0x09,0x2a,0x09,0x2b,0x00,0x17,0x09,0x3e,0x09,0x3e,0x00,0x19,0x09,0x40,0x09,0x40,0x00,0x1a,0x09,0x42,0x09,0x42, +0x00,0x1b,0x09,0x46,0x09,0x46,0x00,0x1c,0x09,0x48,0x09,0x48,0x00,0x1d,0x09,0x4a,0x09,0x4a,0x00,0x1e,0x09,0x5b,0x09,0x5b,0x00,0x1f,0x09,0x60,0x09,0x60,0x00,0x20,0x09,0x6c,0x09,0x6c,0x00,0x21,0x09,0x7c,0x09,0x7c,0x00,0x22,0x09,0x8a,0x09,0x8a,0x00,0x23,0x09,0x8c,0x09,0x8c,0x00,0x24,0x09,0x8e,0x09,0x8e,0x00,0x25,0x09,0x90, +0x09,0x90,0x00,0x26,0x09,0x92,0x09,0x92,0x00,0x27,0x09,0x94,0x09,0x94,0x00,0x28,0x09,0x96,0x09,0x96,0x00,0x29,0x09,0x98,0x09,0x98,0x00,0x2a,0x09,0x9b,0x09,0x9b,0x00,0x2b,0x09,0x9e,0x09,0x9e,0x00,0x2c,0x09,0xa1,0x09,0xa1,0x00,0x2d,0x09,0xa4,0x09,0xa4,0x00,0x2e,0x09,0xa7,0x09,0xa7,0x00,0x2f,0x09,0xb9,0x09,0xb9,0x00,0x30, +0x09,0xbb,0x09,0xbb,0x00,0x31,0x09,0xbd,0x09,0xbd,0x00,0x32,0x09,0xbf,0x09,0xbf,0x00,0x33,0x09,0xc1,0x09,0xc1,0x00,0x34,0x09,0xc3,0x09,0xc4,0x00,0x35,0x09,0xc8,0x09,0xc9,0x00,0x37,0x09,0xcc,0x09,0xcc,0x00,0x39,0x09,0xcf,0x09,0xcf,0x00,0x3a,0x09,0xd2,0x09,0xd2,0x00,0x3b,0x09,0xd5,0x09,0xd7,0x00,0x3c,0x09,0xd9,0x09,0xd9, +0x00,0x3f,0x09,0xdb,0x09,0xdb,0x00,0x40,0x09,0xdd,0x09,0xdd,0x00,0x41,0x09,0xdf,0x09,0xdf,0x00,0x42,0x09,0xe1,0x09,0xe1,0x00,0x43,0x09,0xe3,0x09,0xe3,0x00,0x44,0x09,0xe5,0x09,0xe5,0x00,0x45,0x09,0xe7,0x09,0xe7,0x00,0x46,0x09,0xe9,0x09,0xe9,0x00,0x47,0x09,0xeb,0x09,0xeb,0x00,0x48,0x09,0xed,0x09,0xed,0x00,0x49,0x09,0xef, +0x09,0xef,0x00,0x4a,0x09,0xf1,0x09,0xf1,0x00,0x4b,0x09,0xf3,0x09,0xf3,0x00,0x4c,0x09,0xf5,0x09,0xf6,0x00,0x4d,0x09,0xf8,0x09,0xf8,0x00,0x4f,0x09,0xfa,0x09,0xfa,0x00,0x50,0x0a,0x07,0x0a,0x07,0x00,0x51,0x0a,0x0b,0x0a,0x0b,0x00,0x52,0x0a,0x0d,0x0a,0x0d,0x00,0x53,0x0a,0x10,0x0a,0x10,0x00,0x54,0x0a,0x24,0x0a,0x24,0x00,0x55, +0x0a,0x26,0x0a,0x26,0x00,0x56,0x0a,0x28,0x0a,0x28,0x00,0x57,0x0a,0x3e,0x0a,0x3e,0x00,0x58,0x0a,0x58,0x0a,0x58,0x00,0x59,0x0a,0x72,0x0a,0x72,0x00,0x5a,0x0a,0x74,0x0a,0x74,0x00,0x5b,0x0a,0x76,0x0a,0x76,0x00,0x5c,0x0a,0x78,0x0a,0x78,0x00,0x5d,0x0a,0x7a,0x0a,0x7a,0x00,0x5e,0x0a,0x7c,0x0a,0x7c,0x00,0x5f,0x0a,0x7e,0x0a,0x7e, +0x00,0x60,0x0a,0x80,0x0a,0x80,0x00,0x61,0x0a,0x83,0x0a,0x83,0x00,0x62,0x0a,0x89,0x0a,0x89,0x00,0x63,0x0a,0x8b,0x0a,0x8b,0x00,0x64,0x0a,0x8f,0x0a,0x8f,0x00,0x65,0x0a,0x93,0x0a,0x93,0x00,0x66,0x0a,0x97,0x0a,0x97,0x00,0x67,0x0a,0x9a,0x0a,0x9a,0x00,0x68,0x0a,0x9d,0x0a,0x9d,0x00,0x69,0x0a,0xa0,0x0a,0xa0,0x00,0x6a,0x0a,0xa3, +0x0a,0xa3,0x00,0x6b,0x0a,0xa6,0x0a,0xa6,0x00,0x6c,0x0a,0xa8,0x0a,0xa8,0x00,0x6d,0x0a,0xaa,0x0a,0xaa,0x00,0x6e,0x0a,0xac,0x0a,0xac,0x00,0x6f,0x0a,0xae,0x0a,0xae,0x00,0x70,0x0a,0xb0,0x0a,0xb0,0x00,0x71,0x0a,0xb6,0x0a,0xb6,0x00,0x72,0x0e,0x20,0x0e,0x20,0x00,0x73,0x0e,0x3f,0x0e,0x3f,0x00,0x74,0x0e,0x43,0x0e,0x43,0x00,0x75, +0x0e,0x47,0x0e,0x47,0x00,0x76,0x0e,0x4b,0x0e,0x4b,0x00,0x77,0x0e,0x4f,0x0e,0x4f,0x00,0x78,0x0f,0x16,0x0f,0x16,0x00,0x79,0x0f,0x1a,0x0f,0x1a,0x00,0x7a,0x0f,0x1e,0x0f,0x1e,0x00,0x7b,0x0f,0x24,0x0f,0x24,0x00,0x7c,0x0f,0x2c,0x0f,0x2c,0x00,0x7d,0x0f,0x30,0x0f,0x30,0x00,0x7e,0x0f,0x34,0x0f,0x34,0x00,0x7f,0x0f,0x40,0x0f,0x40, +0x00,0x80,0x0f,0x44,0x0f,0x44,0x00,0x81,0x0f,0x48,0x0f,0x48,0x00,0x82,0x0f,0x4c,0x0f,0x4c,0x00,0x83,0x13,0x02,0x13,0x02,0x00,0x84,0x13,0x04,0x13,0x04,0x00,0x85,0x13,0x08,0x13,0x08,0x00,0x86,0x13,0x0c,0x13,0x0c,0x00,0x87,0x13,0x10,0x13,0x10,0x00,0x88,0x13,0x14,0x13,0x14,0x00,0x89,0x13,0x18,0x13,0x18,0x00,0x8a,0x13,0x1c, +0x13,0x1c,0x00,0x8b,0x13,0x20,0x13,0x20,0x00,0x8c,0x14,0x04,0x14,0x04,0x00,0x8d,0x14,0x0b,0x14,0x0b,0x00,0x8e,0x14,0x0f,0x14,0x0f,0x00,0x8f,0x14,0x53,0x14,0x57,0x00,0x90,0x14,0x59,0x14,0x5c,0x00,0x95,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x6d,0x00,0x02,0x00,0x08,0x08,0xee, +0x08,0xee,0x00,0x00,0x09,0x3f,0x09,0x3f,0x00,0x01,0x09,0xec,0x09,0xec,0x00,0x02,0x09,0xee,0x09,0xee,0x00,0x03,0x09,0xf0,0x09,0xf0,0x00,0x04,0x09,0xf2,0x09,0xf2,0x00,0x05,0x0a,0x5f,0x0a,0x62,0x00,0x06,0x0a,0xb2,0x0a,0xb3,0x00,0x0a,0x00,0x02,0x00,0x07,0x08,0xc7,0x08,0xca,0x00,0x00,0x09,0x81,0x09,0x81,0x00,0x04,0x09,0x83, +0x09,0x83,0x00,0x05,0x09,0x85,0x09,0x85,0x00,0x06,0x09,0x87,0x09,0x87,0x00,0x07,0x0f,0x29,0x0f,0x29,0x00,0x08,0x0f,0x2b,0x0f,0x2b,0x00,0x09,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x02,0x00,0x01,0x0f,0x8c,0x0f,0x97,0x00,0x00,0x00,0x02,0x00,0x07,0x08,0xc7,0x08,0xca, +0x00,0x00,0x09,0x81,0x09,0x81,0x00,0x04,0x09,0x83,0x09,0x83,0x00,0x05,0x09,0x85,0x09,0x85,0x00,0x06,0x09,0x87,0x09,0x87,0x00,0x07,0x0f,0x29,0x0f,0x29,0x00,0x08,0x0f,0x2b,0x0f,0x2b,0x00,0x09,0x00,0x01,0x00,0x62,0x00,0x03,0x00,0x0c,0x00,0x2a,0x00,0x44,0x00,0x02,0x00,0x06,0x00,0x14,0x14,0x97,0x00,0x06,0x09,0x3f,0x09,0x3f, +0x09,0x32,0x09,0x73,0x08,0xf3,0x14,0x97,0x00,0x04,0x09,0x3f,0x09,0x3f,0x08,0xf3,0x00,0x02,0x00,0x06,0x00,0x12,0x09,0x71,0x00,0x05,0x09,0x3f,0x09,0x32,0x09,0x73,0x08,0xf3,0x09,0x71,0x00,0x03,0x09,0x3f,0x08,0xf3,0x00,0x02,0x00,0x06,0x00,0x14,0x0a,0x63,0x00,0x06,0x08,0xee,0x09,0x3f,0x09,0x32,0x09,0x73,0x08,0xf3,0x0a,0x63, +0x00,0x04,0x08,0xee,0x09,0x3f,0x08,0xf3,0x00,0x02,0x00,0x03,0x08,0xe8,0x08,0xe8,0x00,0x00,0x08,0xee,0x08,0xee,0x00,0x01,0x09,0x0d,0x09,0x0d,0x00,0x02,0x00,0x01,0x00,0x34,0x00,0x03,0x00,0x0c,0x00,0x1a,0x00,0x26,0x00,0x01,0x00,0x04,0x14,0x97,0x00,0x04,0x09,0x3f,0x09,0x3f,0x09,0x72,0x00,0x01,0x00,0x04,0x09,0x71,0x00,0x03, +0x09,0x3f,0x09,0x72,0x00,0x01,0x00,0x04,0x0a,0x63,0x00,0x04,0x08,0xee,0x09,0x3f,0x09,0x72,0x00,0x02,0x00,0x03,0x08,0xe8,0x08,0xe8,0x00,0x00,0x08,0xee,0x08,0xee,0x00,0x01,0x09,0x0d,0x09,0x0d,0x00,0x02,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0xb8,0x00,0x01,0x00,0x00,0x00,0x6f,0x00,0x02,0x00,0x1b,0x08,0xd4, +0x08,0xd6,0x00,0x00,0x08,0xe1,0x08,0xe1,0x00,0x03,0x09,0xba,0x09,0xba,0x00,0x04,0x09,0xbc,0x09,0xbc,0x00,0x05,0x09,0xbe,0x09,0xbe,0x00,0x06,0x09,0xc0,0x09,0xc0,0x00,0x07,0x09,0xc2,0x09,0xc2,0x00,0x08,0x0a,0x25,0x0a,0x25,0x00,0x09,0x0a,0x27,0x0a,0x27,0x00,0x0a,0x0a,0x8a,0x0a,0x8a,0x00,0x0b,0x0a,0xb7,0x0a,0xb7,0x00,0x0c, +0x0e,0x32,0x0e,0x32,0x00,0x0d,0x0e,0x34,0x0e,0x34,0x00,0x0e,0x0e,0x36,0x0e,0x36,0x00,0x0f,0x0e,0x38,0x0e,0x38,0x00,0x10,0x0e,0x99,0x0e,0x99,0x00,0x11,0x0e,0x9b,0x0e,0x9b,0x00,0x12,0x0e,0x9d,0x0e,0x9d,0x00,0x13,0x0e,0x9f,0x0e,0x9f,0x00,0x14,0x0e,0xa1,0x0e,0xa1,0x00,0x15,0x0e,0xed,0x0e,0xed,0x00,0x16,0x0e,0xef,0x0e,0xef, +0x00,0x17,0x0f,0x04,0x0f,0x04,0x00,0x18,0x0f,0x15,0x0f,0x15,0x00,0x19,0x0f,0x20,0x0f,0x21,0x00,0x1a,0x0f,0x46,0x0f,0x47,0x00,0x1c,0x0f,0x4a,0x0f,0x4b,0x00,0x1e,0x00,0x02,0x00,0x15,0x08,0xf5,0x08,0xf5,0x00,0x00,0x08,0xf7,0x08,0xf7,0x00,0x01,0x09,0x02,0x09,0x02,0x00,0x02,0x09,0x4b,0x09,0x4b,0x00,0x03,0x09,0x8b,0x09,0x8b, +0x00,0x04,0x0a,0x06,0x0a,0x06,0x00,0x05,0x0a,0x08,0x0a,0x08,0x00,0x06,0x0a,0x0e,0x0a,0x0e,0x00,0x07,0x0a,0x57,0x0a,0x57,0x00,0x08,0x0a,0xb5,0x0a,0xb5,0x00,0x09,0x0b,0x0c,0x0b,0x0d,0x00,0x0a,0x0b,0x0f,0x0b,0x17,0x00,0x0c,0x0e,0x48,0x0e,0x48,0x00,0x15,0x0e,0x4c,0x0e,0x4c,0x00,0x16,0x0e,0x50,0x0e,0x50,0x00,0x17,0x0f,0x02, +0x0f,0x02,0x00,0x18,0x0f,0x23,0x0f,0x23,0x00,0x19,0x0f,0x2d,0x0f,0x2d,0x00,0x1a,0x0f,0x31,0x0f,0x31,0x00,0x1b,0x0f,0x35,0x0f,0x35,0x00,0x1c,0x14,0x7d,0x14,0x7e,0x00,0x1d,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x02,0x00,0x01,0x0f,0x6c,0x0f,0x8b,0x00,0x00,0x00,0x02, +0x00,0x16,0x08,0xf5,0x08,0xf5,0x00,0x00,0x08,0xf7,0x08,0xf7,0x00,0x01,0x09,0x02,0x09,0x02,0x00,0x02,0x09,0x4b,0x09,0x4b,0x00,0x03,0x09,0x8b,0x09,0x8b,0x00,0x04,0x0a,0x06,0x0a,0x06,0x00,0x05,0x0a,0x08,0x0a,0x08,0x00,0x06,0x0a,0x0c,0x0a,0x0c,0x00,0x07,0x0a,0x0e,0x0a,0x0e,0x00,0x08,0x0a,0x57,0x0a,0x57,0x00,0x09,0x0a,0xb5, +0x0a,0xb5,0x00,0x0a,0x0b,0x0c,0x0b,0x17,0x00,0x0b,0x0e,0x21,0x0e,0x21,0x00,0x17,0x0e,0x48,0x0e,0x48,0x00,0x18,0x0e,0x4c,0x0e,0x4c,0x00,0x19,0x0e,0x50,0x0e,0x50,0x00,0x1a,0x0f,0x02,0x0f,0x02,0x00,0x1b,0x0f,0x23,0x0f,0x23,0x00,0x1c,0x0f,0x2d,0x0f,0x2d,0x00,0x1d,0x0f,0x31,0x0f,0x31,0x00,0x1e,0x0f,0x35,0x0f,0x35,0x00,0x1f, +0x14,0x7d,0x14,0x7e,0x00,0x20,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x03,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x02,0x00,0x7d,0x08,0xca,0x08,0xcb,0x00,0x00,0x08,0xce,0x08,0xce,0x00,0x02,0x08,0xf4,0x08,0xf4,0x00,0x03,0x09,0x0a,0x09,0x0b,0x00,0x04,0x09,0x17,0x09,0x18,0x00,0x06,0x09,0x29,0x09,0x29,0x00,0x08, +0x09,0x2e,0x09,0x2e,0x00,0x09,0x09,0x31,0x09,0x31,0x00,0x0a,0x09,0x41,0x09,0x41,0x00,0x0b,0x09,0x44,0x09,0x45,0x00,0x0c,0x09,0x4c,0x09,0x4c,0x00,0x0e,0x09,0x5e,0x09,0x5e,0x00,0x0f,0x09,0x61,0x09,0x62,0x00,0x10,0x09,0x77,0x09,0x77,0x00,0x12,0x09,0x7f,0x09,0x7f,0x00,0x13,0x09,0x84,0x09,0x85,0x00,0x14,0x09,0x88,0x09,0x89, +0x00,0x16,0x09,0x8f,0x09,0x8f,0x00,0x18,0x09,0x91,0x09,0x91,0x00,0x19,0x09,0x97,0x09,0x97,0x00,0x1a,0x09,0xa0,0x09,0xa0,0x00,0x1b,0x09,0xa3,0x09,0xa3,0x00,0x1c,0x09,0xa9,0x09,0xac,0x00,0x1d,0x09,0xae,0x09,0xae,0x00,0x21,0x09,0xb2,0x09,0xb8,0x00,0x22,0x09,0xba,0x09,0xba,0x00,0x29,0x09,0xbc,0x09,0xbc,0x00,0x2a,0x09,0xbe, +0x09,0xbe,0x00,0x2b,0x09,0xc0,0x09,0xc0,0x00,0x2c,0x09,0xca,0x09,0xcb,0x00,0x2d,0x09,0xcd,0x09,0xce,0x00,0x2f,0x09,0xd0,0x09,0xd1,0x00,0x31,0x09,0xe0,0x09,0xe0,0x00,0x33,0x09,0xe6,0x09,0xe6,0x00,0x34,0x09,0xe8,0x09,0xe8,0x00,0x35,0x09,0xf2,0x09,0xf2,0x00,0x36,0x09,0xf4,0x09,0xf4,0x00,0x37,0x09,0xf7,0x09,0xf7,0x00,0x38, +0x09,0xfc,0x0a,0x04,0x00,0x39,0x0a,0x0a,0x0a,0x0a,0x00,0x42,0x0a,0x1a,0x0a,0x1a,0x00,0x43,0x0a,0x21,0x0a,0x21,0x00,0x44,0x0a,0x23,0x0a,0x23,0x00,0x45,0x0a,0x25,0x0a,0x25,0x00,0x46,0x0a,0x27,0x0a,0x27,0x00,0x47,0x0a,0x2a,0x0a,0x2b,0x00,0x48,0x0a,0x50,0x0a,0x50,0x00,0x4a,0x0a,0x56,0x0a,0x57,0x00,0x4b,0x0a,0x5b,0x0a,0x5b, +0x00,0x4d,0x0a,0x62,0x0a,0x62,0x00,0x4e,0x0a,0x6f,0x0a,0x6f,0x00,0x4f,0x0a,0x73,0x0a,0x73,0x00,0x50,0x0a,0x75,0x0a,0x75,0x00,0x51,0x0a,0x77,0x0a,0x77,0x00,0x52,0x0a,0x79,0x0a,0x79,0x00,0x53,0x0a,0x7b,0x0a,0x7b,0x00,0x54,0x0a,0x7d,0x0a,0x7d,0x00,0x55,0x0a,0x85,0x0a,0x88,0x00,0x56,0x0a,0x98,0x0a,0x99,0x00,0x5a,0x0a,0x9b, +0x0a,0x9c,0x00,0x5c,0x0a,0xa4,0x0a,0xa5,0x00,0x5e,0x0a,0xa9,0x0a,0xa9,0x00,0x60,0x0a,0xab,0x0a,0xab,0x00,0x61,0x0a,0xb4,0x0a,0xb5,0x00,0x62,0x0b,0x0c,0x0b,0x18,0x00,0x64,0x0e,0x1e,0x0e,0x1e,0x00,0x71,0x0e,0x22,0x0e,0x23,0x00,0x72,0x0e,0x27,0x0e,0x27,0x00,0x74,0x0e,0x2c,0x0e,0x2c,0x00,0x75,0x0e,0x45,0x0e,0x46,0x00,0x76, +0x0e,0x49,0x0e,0x4a,0x00,0x78,0x0e,0x4d,0x0e,0x4e,0x00,0x7a,0x0e,0x51,0x0e,0x52,0x00,0x7c,0x0e,0x61,0x0e,0x61,0x00,0x7e,0x0e,0x6b,0x0e,0x6c,0x00,0x7f,0x0e,0x74,0x0e,0x75,0x00,0x81,0x0e,0x7d,0x0e,0x7d,0x00,0x83,0x0e,0x7f,0x0e,0x7f,0x00,0x84,0x0e,0x83,0x0e,0x83,0x00,0x85,0x0e,0x87,0x0e,0x87,0x00,0x86,0x0e,0x8a,0x0e,0x8b, +0x00,0x87,0x0e,0x8d,0x0e,0x8e,0x00,0x89,0x0e,0x90,0x0e,0x92,0x00,0x8b,0x0e,0x94,0x0e,0x94,0x00,0x8e,0x0e,0x99,0x0e,0x99,0x00,0x8f,0x0e,0x9b,0x0e,0x9b,0x00,0x90,0x0e,0x9d,0x0e,0x9d,0x00,0x91,0x0e,0x9f,0x0e,0x9f,0x00,0x92,0x0e,0xbc,0x0e,0xbc,0x00,0x93,0x0e,0xc4,0x0e,0xc4,0x00,0x94,0x0e,0xc6,0x0e,0xc6,0x00,0x95,0x0e,0xce, +0x0e,0xce,0x00,0x96,0x0e,0xd4,0x0e,0xd4,0x00,0x97,0x0e,0xd8,0x0e,0xd9,0x00,0x98,0x0e,0xdc,0x0e,0xe4,0x00,0x9a,0x0e,0xe6,0x0e,0xea,0x00,0xa3,0x0e,0xed,0x0e,0xed,0x00,0xa8,0x0e,0xef,0x0e,0xef,0x00,0xa9,0x0e,0xf1,0x0e,0xf1,0x00,0xaa,0x0e,0xf3,0x0e,0xf3,0x00,0xab,0x0e,0xf5,0x0e,0xf5,0x00,0xac,0x0e,0xf7,0x0e,0xf7,0x00,0xad, +0x0e,0xf9,0x0e,0xf9,0x00,0xae,0x0e,0xfb,0x0e,0xfb,0x00,0xaf,0x0e,0xff,0x0f,0x02,0x00,0xb0,0x0f,0x0d,0x0f,0x0d,0x00,0xb4,0x0f,0x0f,0x0f,0x0f,0x00,0xb5,0x0f,0x18,0x0f,0x19,0x00,0xb6,0x0f,0x1c,0x0f,0x1d,0x00,0xb8,0x0f,0x22,0x0f,0x23,0x00,0xba,0x0f,0x2e,0x0f,0x2f,0x00,0xbc,0x0f,0x32,0x0f,0x33,0x00,0xbe,0x0f,0x36,0x0f,0x3b, +0x00,0xc0,0x0f,0x42,0x0f,0x43,0x00,0xc6,0x0f,0x64,0x0f,0x64,0x00,0xc8,0x0f,0x68,0x0f,0x68,0x00,0xc9,0x0f,0x98,0x0f,0xa6,0x00,0xca,0x13,0x2c,0x13,0x2c,0x00,0xd9,0x13,0x2f,0x13,0x2f,0x00,0xda,0x13,0x33,0x13,0x35,0x00,0xdb,0x13,0x38,0x13,0x38,0x00,0xde,0x13,0x3c,0x13,0x3c,0x00,0xdf,0x13,0x3f,0x13,0x40,0x00,0xe0,0x14,0x62, +0x14,0x62,0x00,0xe2,0x14,0x6c,0x14,0x6c,0x00,0xe3,0x00,0x02,0x00,0x04,0x09,0x66,0x09,0x66,0x00,0x00,0x09,0x68,0x09,0x68,0x00,0x01,0x0f,0x3d,0x0f,0x3d,0x00,0x02,0x0f,0x3f,0x0f,0x3f,0x00,0x03,0x00,0x03,0x00,0x02,0x00,0x28,0x04,0xfa,0x00,0x01,0x07,0x86,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x72,0x00,0x03,0x00,0x02,0x00,0x14, +0x07,0x8e,0x00,0x01,0x07,0x72,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x72,0x00,0x02,0x00,0xcd,0x08,0xcb,0x08,0xce,0x00,0x00,0x08,0xd0,0x08,0xd0,0x00,0x04,0x08,0xd2,0x08,0xd2,0x00,0x05,0x08,0xd4,0x08,0xd6,0x00,0x06,0x08,0xe1,0x08,0xe3,0x00,0x09,0x08,0xe5,0x08,0xe6,0x00,0x0c,0x08,0xe8,0x08,0xe9,0x00,0x0e,0x08,0xeb,0x08,0xf0, +0x00,0x10,0x08,0xf4,0x08,0xf4,0x00,0x16,0x08,0xf9,0x08,0xfb,0x00,0x17,0x08,0xff,0x09,0x00,0x00,0x1a,0x09,0x21,0x09,0x21,0x00,0x1c,0x09,0x34,0x09,0x35,0x00,0x1d,0x09,0x3b,0x09,0x3d,0x00,0x1f,0x09,0x3f,0x09,0x3f,0x00,0x22,0x09,0x41,0x09,0x41,0x00,0x23,0x09,0x44,0x09,0x44,0x00,0x24,0x09,0x47,0x09,0x47,0x00,0x25,0x09,0x49, +0x09,0x49,0x00,0x26,0x09,0x4c,0x09,0x4c,0x00,0x27,0x09,0x5c,0x09,0x5c,0x00,0x28,0x09,0x61,0x09,0x62,0x00,0x29,0x09,0x6d,0x09,0x6e,0x00,0x2b,0x09,0x8d,0x09,0x8d,0x00,0x2d,0x09,0x8f,0x09,0x8f,0x00,0x2e,0x09,0x91,0x09,0x91,0x00,0x2f,0x09,0x93,0x09,0x93,0x00,0x30,0x09,0x95,0x09,0x95,0x00,0x31,0x09,0x97,0x09,0x97,0x00,0x32, +0x09,0x9a,0x09,0x9a,0x00,0x33,0x09,0x9d,0x09,0x9d,0x00,0x34,0x09,0xa0,0x09,0xa0,0x00,0x35,0x09,0xa3,0x09,0xa3,0x00,0x36,0x09,0xa6,0x09,0xa6,0x00,0x37,0x09,0xa9,0x09,0xa9,0x00,0x38,0x09,0xba,0x09,0xba,0x00,0x39,0x09,0xbc,0x09,0xbc,0x00,0x3a,0x09,0xbe,0x09,0xbe,0x00,0x3b,0x09,0xc0,0x09,0xc0,0x00,0x3c,0x09,0xc2,0x09,0xc2, +0x00,0x3d,0x09,0xc6,0x09,0xc7,0x00,0x3e,0x09,0xca,0x09,0xcb,0x00,0x40,0x09,0xcd,0x09,0xce,0x00,0x42,0x09,0xd0,0x09,0xd1,0x00,0x44,0x09,0xd3,0x09,0xd4,0x00,0x46,0x09,0xd8,0x09,0xd8,0x00,0x48,0x09,0xda,0x09,0xda,0x00,0x49,0x09,0xdc,0x09,0xdc,0x00,0x4a,0x09,0xde,0x09,0xde,0x00,0x4b,0x09,0xe0,0x09,0xe0,0x00,0x4c,0x09,0xe2, +0x09,0xe2,0x00,0x4d,0x09,0xe4,0x09,0xe4,0x00,0x4e,0x09,0xe6,0x09,0xe6,0x00,0x4f,0x09,0xe8,0x09,0xe8,0x00,0x50,0x09,0xea,0x09,0xea,0x00,0x51,0x09,0xec,0x09,0xec,0x00,0x52,0x09,0xee,0x09,0xee,0x00,0x53,0x09,0xf0,0x09,0xf0,0x00,0x54,0x09,0xf2,0x09,0xf2,0x00,0x55,0x09,0xf4,0x09,0xf4,0x00,0x56,0x09,0xf7,0x09,0xf7,0x00,0x57, +0x09,0xf9,0x09,0xf9,0x00,0x58,0x09,0xfc,0x09,0xfc,0x00,0x59,0x0a,0x09,0x0a,0x09,0x00,0x5a,0x0a,0x10,0x0a,0x10,0x00,0x5b,0x0a,0x25,0x0a,0x25,0x00,0x5c,0x0a,0x27,0x0a,0x27,0x00,0x5d,0x0a,0x2a,0x0a,0x2b,0x00,0x5e,0x0a,0x32,0x0a,0x3b,0x00,0x60,0x0a,0x41,0x0a,0x42,0x00,0x6a,0x0a,0x5a,0x0a,0x5b,0x00,0x6c,0x0a,0x5f,0x0a,0x62, +0x00,0x6e,0x0a,0x73,0x0a,0x73,0x00,0x72,0x0a,0x75,0x0a,0x75,0x00,0x73,0x0a,0x77,0x0a,0x77,0x00,0x74,0x0a,0x79,0x0a,0x79,0x00,0x75,0x0a,0x7b,0x0a,0x7b,0x00,0x76,0x0a,0x7d,0x0a,0x7d,0x00,0x77,0x0a,0x7f,0x0a,0x7f,0x00,0x78,0x0a,0x82,0x0a,0x82,0x00,0x79,0x0a,0x85,0x0a,0x85,0x00,0x7a,0x0a,0x8a,0x0a,0x8a,0x00,0x7b,0x0a,0x8d, +0x0a,0x8e,0x00,0x7c,0x0a,0x91,0x0a,0x92,0x00,0x7e,0x0a,0x95,0x0a,0x96,0x00,0x80,0x0a,0x98,0x0a,0x99,0x00,0x82,0x0a,0x9b,0x0a,0x9c,0x00,0x84,0x0a,0x9e,0x0a,0x9f,0x00,0x86,0x0a,0xa1,0x0a,0xa2,0x00,0x88,0x0a,0xa4,0x0a,0xa5,0x00,0x8a,0x0a,0xa7,0x0a,0xa7,0x00,0x8c,0x0a,0xa9,0x0a,0xa9,0x00,0x8d,0x0a,0xab,0x0a,0xab,0x00,0x8e, +0x0a,0xad,0x0a,0xad,0x00,0x8f,0x0a,0xaf,0x0a,0xaf,0x00,0x90,0x0a,0xb2,0x0a,0xb3,0x00,0x91,0x0a,0xb7,0x0a,0xb7,0x00,0x93,0x0a,0xb9,0x0a,0xba,0x00,0x94,0x0e,0x22,0x0e,0x23,0x00,0x96,0x0e,0x25,0x0e,0x25,0x00,0x98,0x0e,0x27,0x0e,0x27,0x00,0x99,0x0e,0x29,0x0e,0x29,0x00,0x9a,0x0e,0x2b,0x0e,0x2e,0x00,0x9b,0x0e,0x32,0x0e,0x32, +0x00,0x9f,0x0e,0x34,0x0e,0x34,0x00,0xa0,0x0e,0x36,0x0e,0x36,0x00,0xa1,0x0e,0x38,0x0e,0x38,0x00,0xa2,0x0e,0x3a,0x0e,0x3b,0x00,0xa3,0x0e,0x3d,0x0e,0x3e,0x00,0xa5,0x0e,0x41,0x0e,0x42,0x00,0xa7,0x0e,0x45,0x0e,0x46,0x00,0xa9,0x0e,0x49,0x0e,0x4a,0x00,0xab,0x0e,0x4d,0x0e,0x4e,0x00,0xad,0x0e,0x51,0x0e,0x52,0x00,0xaf,0x0e,0x56, +0x0e,0x56,0x00,0xb1,0x0e,0x58,0x0e,0x58,0x00,0xb2,0x0e,0x5a,0x0e,0x5b,0x00,0xb3,0x0e,0x5d,0x0e,0x5d,0x00,0xb5,0x0e,0x5f,0x0e,0x61,0x00,0xb6,0x0e,0x6f,0x0e,0x6f,0x00,0xb9,0x0e,0x71,0x0e,0x72,0x00,0xba,0x0e,0x76,0x0e,0x77,0x00,0xbc,0x0e,0x79,0x0e,0x79,0x00,0xbe,0x0e,0x7b,0x0e,0x7b,0x00,0xbf,0x0e,0x7d,0x0e,0x7d,0x00,0xc0, +0x0e,0x7f,0x0e,0x7f,0x00,0xc1,0x0e,0x81,0x0e,0x81,0x00,0xc2,0x0e,0x83,0x0e,0x83,0x00,0xc3,0x0e,0x85,0x0e,0x85,0x00,0xc4,0x0e,0x87,0x0e,0x8e,0x00,0xc5,0x0e,0x99,0x0e,0x99,0x00,0xcd,0x0e,0x9b,0x0e,0x9b,0x00,0xce,0x0e,0x9d,0x0e,0x9d,0x00,0xcf,0x0e,0x9f,0x0e,0x9f,0x00,0xd0,0x0e,0xa1,0x0e,0xa1,0x00,0xd1,0x0e,0xa3,0x0e,0xa4, +0x00,0xd2,0x0e,0xac,0x0e,0xad,0x00,0xd4,0x0e,0xaf,0x0e,0xb0,0x00,0xd6,0x0e,0xb2,0x0e,0xb2,0x00,0xd8,0x0e,0xb4,0x0e,0xb4,0x00,0xd9,0x0e,0xb6,0x0e,0xb6,0x00,0xda,0x0e,0xb8,0x0e,0xb8,0x00,0xdb,0x0e,0xba,0x0e,0xba,0x00,0xdc,0x0e,0xbc,0x0e,0xbc,0x00,0xdd,0x0e,0xbe,0x0e,0xbe,0x00,0xde,0x0e,0xc0,0x0e,0xc0,0x00,0xdf,0x0e,0xc2, +0x0e,0xc2,0x00,0xe0,0x0e,0xc4,0x0e,0xc4,0x00,0xe1,0x0e,0xc6,0x0e,0xc6,0x00,0xe2,0x0e,0xc8,0x0e,0xc8,0x00,0xe3,0x0e,0xce,0x0e,0xce,0x00,0xe4,0x0e,0xd1,0x0e,0xd2,0x00,0xe5,0x0e,0xd4,0x0e,0xd4,0x00,0xe7,0x0e,0xd6,0x0e,0xd9,0x00,0xe8,0x0e,0xe4,0x0e,0xe5,0x00,0xec,0x0e,0xe7,0x0e,0xea,0x00,0xee,0x0e,0xed,0x0e,0xed,0x00,0xf2, +0x0e,0xef,0x0e,0xef,0x00,0xf3,0x0e,0xf1,0x0e,0xf1,0x00,0xf4,0x0e,0xf3,0x0e,0xf3,0x00,0xf5,0x0e,0xf5,0x0e,0xf5,0x00,0xf6,0x0e,0xf7,0x0e,0xf7,0x00,0xf7,0x0e,0xf9,0x0e,0xf9,0x00,0xf8,0x0e,0xfb,0x0e,0xfb,0x00,0xf9,0x0e,0xfd,0x0e,0xff,0x00,0xfa,0x0f,0x04,0x0f,0x04,0x00,0xfd,0x0f,0x0b,0x0f,0x0b,0x00,0xfe,0x0f,0x0d,0x0f,0x0d, +0x00,0xff,0x0f,0x0f,0x0f,0x0f,0x01,0x00,0x0f,0x11,0x0f,0x11,0x01,0x01,0x0f,0x13,0x0f,0x13,0x01,0x02,0x0f,0x15,0x0f,0x15,0x01,0x03,0x0f,0x18,0x0f,0x19,0x01,0x04,0x0f,0x1c,0x0f,0x1d,0x01,0x06,0x0f,0x20,0x0f,0x21,0x01,0x08,0x0f,0x26,0x0f,0x27,0x01,0x0a,0x0f,0x2e,0x0f,0x2f,0x01,0x0c,0x0f,0x32,0x0f,0x33,0x01,0x0e,0x0f,0x36, +0x0f,0x37,0x01,0x10,0x0f,0x42,0x0f,0x43,0x01,0x12,0x0f,0x46,0x0f,0x47,0x01,0x14,0x0f,0x4a,0x0f,0x4b,0x01,0x16,0x0f,0x4e,0x0f,0x4f,0x01,0x18,0x0f,0x6c,0x0f,0x6c,0x01,0x1a,0x0f,0x6e,0x0f,0x6e,0x01,0x1b,0x0f,0x70,0x0f,0x70,0x01,0x1c,0x0f,0x72,0x0f,0x72,0x01,0x1d,0x0f,0x74,0x0f,0x74,0x01,0x1e,0x0f,0x76,0x0f,0x76,0x01,0x1f, +0x0f,0x78,0x0f,0x78,0x01,0x20,0x0f,0x7a,0x0f,0x7a,0x01,0x21,0x0f,0x7c,0x0f,0x7c,0x01,0x22,0x0f,0x7e,0x0f,0x7e,0x01,0x23,0x0f,0x80,0x0f,0x80,0x01,0x24,0x0f,0x82,0x0f,0x82,0x01,0x25,0x0f,0x84,0x0f,0x84,0x01,0x26,0x0f,0x86,0x0f,0x86,0x01,0x27,0x0f,0x88,0x0f,0x88,0x01,0x28,0x0f,0x8a,0x0f,0x8a,0x01,0x29,0x0f,0x8c,0x0f,0x8c, +0x01,0x2a,0x0f,0x8e,0x0f,0x8e,0x01,0x2b,0x0f,0x90,0x0f,0x90,0x01,0x2c,0x0f,0x92,0x0f,0x92,0x01,0x2d,0x0f,0x94,0x0f,0x94,0x01,0x2e,0x0f,0x96,0x0f,0x96,0x01,0x2f,0x00,0x02,0x00,0x6c,0x08,0xca,0x08,0xcb,0x00,0x00,0x08,0xce,0x08,0xce,0x00,0x02,0x08,0xf4,0x08,0xf4,0x00,0x03,0x09,0x0a,0x09,0x0b,0x00,0x04,0x09,0x17,0x09,0x18, +0x00,0x06,0x09,0x29,0x09,0x29,0x00,0x08,0x09,0x41,0x09,0x41,0x00,0x09,0x09,0x44,0x09,0x45,0x00,0x0a,0x09,0x4c,0x09,0x4c,0x00,0x0c,0x09,0x5e,0x09,0x5e,0x00,0x0d,0x09,0x61,0x09,0x62,0x00,0x0e,0x09,0x77,0x09,0x77,0x00,0x10,0x09,0x7f,0x09,0x7f,0x00,0x11,0x09,0x84,0x09,0x85,0x00,0x12,0x09,0x88,0x09,0x89,0x00,0x14,0x09,0x8f, +0x09,0x8f,0x00,0x16,0x09,0x91,0x09,0x91,0x00,0x17,0x09,0x97,0x09,0x97,0x00,0x18,0x09,0xa0,0x09,0xa0,0x00,0x19,0x09,0xa3,0x09,0xa3,0x00,0x1a,0x09,0xa9,0x09,0xac,0x00,0x1b,0x09,0xae,0x09,0xae,0x00,0x1f,0x09,0xb2,0x09,0xb8,0x00,0x20,0x09,0xba,0x09,0xba,0x00,0x27,0x09,0xbc,0x09,0xbc,0x00,0x28,0x09,0xbe,0x09,0xbe,0x00,0x29, +0x09,0xc0,0x09,0xc0,0x00,0x2a,0x09,0xca,0x09,0xcb,0x00,0x2b,0x09,0xcd,0x09,0xce,0x00,0x2d,0x09,0xd0,0x09,0xd1,0x00,0x2f,0x09,0xe0,0x09,0xe0,0x00,0x31,0x09,0xe6,0x09,0xe6,0x00,0x32,0x09,0xe8,0x09,0xe8,0x00,0x33,0x09,0xf2,0x09,0xf2,0x00,0x34,0x09,0xf4,0x09,0xf4,0x00,0x35,0x09,0xf7,0x09,0xf7,0x00,0x36,0x09,0xfc,0x0a,0x04, +0x00,0x37,0x0a,0x0a,0x0a,0x0a,0x00,0x40,0x0a,0x25,0x0a,0x25,0x00,0x41,0x0a,0x27,0x0a,0x27,0x00,0x42,0x0a,0x2a,0x0a,0x2b,0x00,0x43,0x0a,0x56,0x0a,0x57,0x00,0x45,0x0a,0x5b,0x0a,0x5b,0x00,0x47,0x0a,0x62,0x0a,0x62,0x00,0x48,0x0a,0x73,0x0a,0x73,0x00,0x49,0x0a,0x75,0x0a,0x75,0x00,0x4a,0x0a,0x77,0x0a,0x77,0x00,0x4b,0x0a,0x79, +0x0a,0x79,0x00,0x4c,0x0a,0x7b,0x0a,0x7b,0x00,0x4d,0x0a,0x7d,0x0a,0x7d,0x00,0x4e,0x0a,0x85,0x0a,0x88,0x00,0x4f,0x0a,0x98,0x0a,0x99,0x00,0x53,0x0a,0x9b,0x0a,0x9c,0x00,0x55,0x0a,0xa4,0x0a,0xa5,0x00,0x57,0x0a,0xa9,0x0a,0xa9,0x00,0x59,0x0a,0xab,0x0a,0xab,0x00,0x5a,0x0a,0xb4,0x0a,0xb5,0x00,0x5b,0x0b,0x0c,0x0b,0x18,0x00,0x5d, +0x0e,0x22,0x0e,0x23,0x00,0x6a,0x0e,0x27,0x0e,0x27,0x00,0x6c,0x0e,0x2c,0x0e,0x2c,0x00,0x6d,0x0e,0x45,0x0e,0x46,0x00,0x6e,0x0e,0x49,0x0e,0x4a,0x00,0x70,0x0e,0x4d,0x0e,0x4e,0x00,0x72,0x0e,0x51,0x0e,0x52,0x00,0x74,0x0e,0x61,0x0e,0x61,0x00,0x76,0x0e,0x74,0x0e,0x75,0x00,0x77,0x0e,0x7d,0x0e,0x7d,0x00,0x79,0x0e,0x7f,0x0e,0x7f, +0x00,0x7a,0x0e,0x83,0x0e,0x83,0x00,0x7b,0x0e,0x87,0x0e,0x87,0x00,0x7c,0x0e,0x8a,0x0e,0x8b,0x00,0x7d,0x0e,0x8d,0x0e,0x8e,0x00,0x7f,0x0e,0x90,0x0e,0x92,0x00,0x81,0x0e,0x94,0x0e,0x94,0x00,0x84,0x0e,0x99,0x0e,0x99,0x00,0x85,0x0e,0x9b,0x0e,0x9b,0x00,0x86,0x0e,0x9d,0x0e,0x9d,0x00,0x87,0x0e,0x9f,0x0e,0x9f,0x00,0x88,0x0e,0xbc, +0x0e,0xbc,0x00,0x89,0x0e,0xc4,0x0e,0xc4,0x00,0x8a,0x0e,0xc6,0x0e,0xc6,0x00,0x8b,0x0e,0xce,0x0e,0xce,0x00,0x8c,0x0e,0xd4,0x0e,0xd4,0x00,0x8d,0x0e,0xd8,0x0e,0xd9,0x00,0x8e,0x0e,0xdc,0x0e,0xe4,0x00,0x90,0x0e,0xe6,0x0e,0xea,0x00,0x99,0x0e,0xed,0x0e,0xed,0x00,0x9e,0x0e,0xef,0x0e,0xef,0x00,0x9f,0x0e,0xf1,0x0e,0xf1,0x00,0xa0, +0x0e,0xf3,0x0e,0xf3,0x00,0xa1,0x0e,0xf5,0x0e,0xf5,0x00,0xa2,0x0e,0xf7,0x0e,0xf7,0x00,0xa3,0x0e,0xf9,0x0e,0xf9,0x00,0xa4,0x0e,0xfb,0x0e,0xfb,0x00,0xa5,0x0e,0xff,0x0f,0x02,0x00,0xa6,0x0f,0x0d,0x0f,0x0d,0x00,0xaa,0x0f,0x0f,0x0f,0x0f,0x00,0xab,0x0f,0x18,0x0f,0x19,0x00,0xac,0x0f,0x1c,0x0f,0x1d,0x00,0xae,0x0f,0x22,0x0f,0x23, +0x00,0xb0,0x0f,0x2e,0x0f,0x2f,0x00,0xb2,0x0f,0x32,0x0f,0x33,0x00,0xb4,0x0f,0x36,0x0f,0x3b,0x00,0xb6,0x0f,0x42,0x0f,0x43,0x00,0xbc,0x0f,0x64,0x0f,0x64,0x00,0xbe,0x0f,0x68,0x0f,0x68,0x00,0xbf,0x0f,0x98,0x0f,0xa6,0x00,0xc0,0x00,0x02,0x00,0x04,0x09,0x66,0x09,0x66,0x00,0x00,0x09,0x68,0x09,0x68,0x00,0x01,0x0f,0x3d,0x0f,0x3d, +0x00,0x02,0x0f,0x3f,0x0f,0x3f,0x00,0x03,0x00,0x02,0x00,0x13,0x09,0x2e,0x09,0x2e,0x00,0x00,0x09,0x31,0x09,0x31,0x00,0x01,0x09,0x77,0x09,0x77,0x00,0x02,0x09,0x7f,0x09,0x7f,0x00,0x03,0x0a,0x1a,0x0a,0x1a,0x00,0x04,0x0a,0x21,0x0a,0x21,0x00,0x05,0x0a,0x23,0x0a,0x23,0x00,0x06,0x0a,0x50,0x0a,0x50,0x00,0x07,0x0a,0x6f,0x0a,0x6f, +0x00,0x08,0x0e,0x1e,0x0e,0x1e,0x00,0x09,0x0e,0x6b,0x0e,0x6c,0x00,0x0a,0x13,0x2c,0x13,0x2c,0x00,0x0c,0x13,0x2f,0x13,0x2f,0x00,0x0d,0x13,0x33,0x13,0x35,0x00,0x0e,0x13,0x38,0x13,0x38,0x00,0x11,0x13,0x3c,0x13,0x3c,0x00,0x12,0x13,0x3f,0x13,0x40,0x00,0x13,0x14,0x62,0x14,0x62,0x00,0x15,0x14,0x6c,0x14,0x6c,0x00,0x16,0x00,0x03, +0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x28,0x00,0x01,0x00,0x00,0x00,0x73,0x00,0x02,0x00,0x03,0x00,0x4c,0x00,0x4d,0x00,0x00,0x01,0x62,0x01,0x62,0x00,0x02,0x05,0x6d,0x05,0x6d,0x00,0x03,0x00,0x02,0x00,0x11,0x02,0x44,0x02,0x44,0x00,0x00,0x02,0x46,0x02,0x47,0x00,0x01,0x04,0x62,0x04,0x73,0x00,0x03,0x04,0x79,0x04,0x79, +0x00,0x15,0x04,0x9b,0x04,0x9d,0x00,0x16,0x04,0xa0,0x04,0xa2,0x00,0x19,0x04,0xa4,0x04,0xa4,0x00,0x1c,0x04,0xa8,0x04,0xaa,0x00,0x1d,0x05,0xfd,0x06,0x00,0x00,0x20,0x06,0x66,0x06,0x72,0x00,0x24,0x07,0x55,0x07,0x57,0x00,0x31,0x07,0x5c,0x07,0x5c,0x00,0x34,0x07,0xef,0x07,0xef,0x00,0x35,0x08,0x4c,0x08,0x4d,0x00,0x36,0x08,0x4f, +0x08,0x4f,0x00,0x38,0x0a,0xdb,0x0a,0xe0,0x00,0x39,0x0a,0xe2,0x0a,0xe2,0x00,0x3f,0x00,0x01,0x05,0x6a,0x00,0x05,0x00,0x10,0x01,0x22,0x02,0x34,0x03,0x46,0x04,0x58,0x00,0x1c,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x6a,0x00,0x72,0x00,0x7a,0x00,0x82,0x00,0x88,0x00,0x90,0x00,0x98,0x00,0xa0,0x00,0xa8, +0x00,0xb0,0x00,0xb6,0x00,0xbe,0x00,0xc6,0x00,0xce,0x00,0xd6,0x00,0xde,0x00,0xe4,0x00,0xec,0x00,0xf4,0x00,0xfc,0x01,0x04,0x01,0x0c,0x06,0xae,0x00,0x03,0x06,0xa2,0x06,0xa3,0x06,0xaf,0x00,0x03,0x06,0xa2,0x06,0xa4,0x06,0xb0,0x00,0x03,0x06,0xa2,0x06,0xa5,0x06,0xb1,0x00,0x03,0x06,0xa2,0x06,0xa6,0x06,0xb2,0x00,0x03,0x06,0xa3, +0x06,0xa2,0x06,0xb3,0x00,0x03,0x06,0xa3,0x06,0xa3,0x06,0xb4,0x00,0x03,0x06,0xa3,0x06,0xa4,0x06,0xb5,0x00,0x03,0x06,0xa3,0x06,0xa5,0x06,0xb6,0x00,0x03,0x06,0xa3,0x06,0xa6,0x06,0xb7,0x00,0x02,0x06,0xa3,0x06,0xb8,0x00,0x03,0x06,0xa4,0x06,0xa2,0x06,0xb9,0x00,0x03,0x06,0xa4,0x06,0xa3,0x06,0xba,0x00,0x03,0x06,0xa4,0x06,0xa4, +0x06,0xbb,0x00,0x03,0x06,0xa4,0x06,0xa5,0x06,0xbc,0x00,0x03,0x06,0xa4,0x06,0xa6,0x06,0xbd,0x00,0x02,0x06,0xa4,0x06,0xbe,0x00,0x03,0x06,0xa5,0x06,0xa2,0x06,0xbf,0x00,0x03,0x06,0xa5,0x06,0xa3,0x06,0xc0,0x00,0x03,0x06,0xa5,0x06,0xa4,0x06,0xc1,0x00,0x03,0x06,0xa5,0x06,0xa5,0x06,0xc2,0x00,0x03,0x06,0xa5,0x06,0xa6,0x06,0xc3, +0x00,0x02,0x06,0xa5,0x06,0xc4,0x00,0x03,0x06,0xa6,0x06,0xa2,0x06,0xc5,0x00,0x03,0x06,0xa6,0x06,0xa3,0x06,0xc6,0x00,0x03,0x06,0xa6,0x06,0xa4,0x06,0xc7,0x00,0x03,0x06,0xa6,0x06,0xa5,0x06,0xc8,0x00,0x03,0x06,0xa6,0x06,0xa6,0x06,0xc9,0x00,0x02,0x06,0xa6,0x00,0x1c,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62, +0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88,0x00,0x90,0x00,0x98,0x00,0xa0,0x00,0xa8,0x00,0xb0,0x00,0xb6,0x00,0xbe,0x00,0xc6,0x00,0xce,0x00,0xd6,0x00,0xde,0x00,0xe4,0x00,0xec,0x00,0xf4,0x00,0xfc,0x01,0x04,0x01,0x0c,0x06,0xca,0x00,0x03,0x06,0xa2,0x06,0xa2,0x06,0xcb,0x00,0x03,0x06,0xa2,0x06,0xa3,0x06,0xcc,0x00,0x03, +0x06,0xa2,0x06,0xa4,0x06,0xcd,0x00,0x03,0x06,0xa2,0x06,0xa5,0x06,0xce,0x00,0x03,0x06,0xa2,0x06,0xa6,0x06,0xcf,0x00,0x02,0x06,0xa2,0x06,0xd0,0x00,0x03,0x06,0xa3,0x06,0xa2,0x06,0xd1,0x00,0x03,0x06,0xa3,0x06,0xa4,0x06,0xd2,0x00,0x03,0x06,0xa3,0x06,0xa5,0x06,0xd3,0x00,0x03,0x06,0xa3,0x06,0xa6,0x06,0xd4,0x00,0x03,0x06,0xa4, +0x06,0xa2,0x06,0xd5,0x00,0x03,0x06,0xa4,0x06,0xa3,0x06,0xd6,0x00,0x03,0x06,0xa4,0x06,0xa4,0x06,0xd7,0x00,0x03,0x06,0xa4,0x06,0xa5,0x06,0xd8,0x00,0x03,0x06,0xa4,0x06,0xa6,0x06,0xd9,0x00,0x02,0x06,0xa4,0x06,0xda,0x00,0x03,0x06,0xa5,0x06,0xa2,0x06,0xdb,0x00,0x03,0x06,0xa5,0x06,0xa3,0x06,0xdc,0x00,0x03,0x06,0xa5,0x06,0xa4, +0x06,0xdd,0x00,0x03,0x06,0xa5,0x06,0xa5,0x06,0xde,0x00,0x03,0x06,0xa5,0x06,0xa6,0x06,0xdf,0x00,0x02,0x06,0xa5,0x06,0xe0,0x00,0x03,0x06,0xa6,0x06,0xa2,0x06,0xe1,0x00,0x03,0x06,0xa6,0x06,0xa3,0x06,0xe2,0x00,0x03,0x06,0xa6,0x06,0xa4,0x06,0xe3,0x00,0x03,0x06,0xa6,0x06,0xa5,0x06,0xe4,0x00,0x03,0x06,0xa6,0x06,0xa6,0x06,0xe5, +0x00,0x02,0x06,0xa6,0x00,0x1c,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88,0x00,0x90,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6,0x00,0xbe,0x00,0xc6,0x00,0xce,0x00,0xd6,0x00,0xde,0x00,0xe4,0x00,0xec,0x00,0xf4,0x00,0xfc,0x01,0x04,0x01,0x0c,0x06,0xe6, +0x00,0x03,0x06,0xa2,0x06,0xa2,0x06,0xe7,0x00,0x03,0x06,0xa2,0x06,0xa3,0x06,0xe8,0x00,0x03,0x06,0xa2,0x06,0xa4,0x06,0xe9,0x00,0x03,0x06,0xa2,0x06,0xa5,0x06,0xea,0x00,0x03,0x06,0xa2,0x06,0xa6,0x06,0xeb,0x00,0x02,0x06,0xa2,0x06,0xeb,0x00,0x03,0x06,0xa3,0x06,0xa2,0x06,0xec,0x00,0x03,0x06,0xa3,0x06,0xa3,0x06,0xed,0x00,0x03, +0x06,0xa3,0x06,0xa4,0x06,0xee,0x00,0x03,0x06,0xa3,0x06,0xa5,0x06,0xef,0x00,0x03,0x06,0xa3,0x06,0xa6,0x06,0xf0,0x00,0x02,0x06,0xa3,0x06,0xf1,0x00,0x03,0x06,0xa4,0x06,0xa2,0x06,0xf2,0x00,0x03,0x06,0xa4,0x06,0xa3,0x06,0xf3,0x00,0x03,0x06,0xa4,0x06,0xa5,0x06,0xf4,0x00,0x03,0x06,0xa4,0x06,0xa6,0x06,0xf5,0x00,0x03,0x06,0xa5, +0x06,0xa2,0x06,0xf6,0x00,0x03,0x06,0xa5,0x06,0xa3,0x06,0xf7,0x00,0x03,0x06,0xa5,0x06,0xa4,0x06,0xf8,0x00,0x03,0x06,0xa5,0x06,0xa5,0x06,0xf9,0x00,0x03,0x06,0xa5,0x06,0xa6,0x06,0xfa,0x00,0x02,0x06,0xa5,0x06,0xfb,0x00,0x03,0x06,0xa6,0x06,0xa2,0x06,0xfc,0x00,0x03,0x06,0xa6,0x06,0xa3,0x06,0xfd,0x00,0x03,0x06,0xa6,0x06,0xa4, +0x06,0xfe,0x00,0x03,0x06,0xa6,0x06,0xa5,0x06,0xff,0x00,0x03,0x06,0xa6,0x06,0xa6,0x07,0x00,0x00,0x02,0x06,0xa6,0x00,0x1c,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88,0x00,0x90,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6,0x00,0xbe,0x00,0xc4,0x00,0xcc, +0x00,0xd4,0x00,0xdc,0x00,0xe4,0x00,0xea,0x00,0xf2,0x00,0xfa,0x01,0x02,0x01,0x0a,0x07,0x01,0x00,0x03,0x06,0xa2,0x06,0xa2,0x07,0x02,0x00,0x03,0x06,0xa2,0x06,0xa3,0x07,0x03,0x00,0x03,0x06,0xa2,0x06,0xa4,0x07,0x04,0x00,0x03,0x06,0xa2,0x06,0xa5,0x07,0x05,0x00,0x03,0x06,0xa2,0x06,0xa6,0x07,0x06,0x00,0x02,0x06,0xa2,0x07,0x07, +0x00,0x03,0x06,0xa3,0x06,0xa2,0x07,0x08,0x00,0x03,0x06,0xa3,0x06,0xa3,0x07,0x09,0x00,0x03,0x06,0xa3,0x06,0xa4,0x07,0x0a,0x00,0x03,0x06,0xa3,0x06,0xa5,0x07,0x0b,0x00,0x03,0x06,0xa3,0x06,0xa6,0x07,0x0c,0x00,0x02,0x06,0xa3,0x07,0x0d,0x00,0x03,0x06,0xa4,0x06,0xa2,0x07,0x0e,0x00,0x03,0x06,0xa4,0x06,0xa3,0x07,0x0f,0x00,0x03, +0x06,0xa4,0x06,0xa4,0x07,0x10,0x00,0x03,0x06,0xa4,0x06,0xa5,0x07,0x11,0x00,0x03,0x06,0xa4,0x06,0xa6,0x07,0x12,0x00,0x02,0x06,0xa4,0x07,0x13,0x00,0x03,0x06,0xa5,0x06,0xa2,0x07,0x14,0x00,0x03,0x06,0xa5,0x06,0xa3,0x07,0x15,0x00,0x03,0x06,0xa5,0x06,0xa4,0x07,0x16,0x00,0x03,0x06,0xa5,0x06,0xa6,0x07,0x1c,0x00,0x02,0x06,0xa6, +0x07,0x17,0x00,0x03,0x06,0xa6,0x06,0xa2,0x07,0x18,0x00,0x03,0x06,0xa6,0x06,0xa3,0x07,0x19,0x00,0x03,0x06,0xa6,0x06,0xa4,0x07,0x1a,0x00,0x03,0x06,0xa6,0x06,0xa5,0x07,0x1b,0x00,0x03,0x06,0xa6,0x06,0xa6,0x00,0x1c,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88, +0x00,0x90,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6,0x00,0xbe,0x00,0xc4,0x00,0xcc,0x00,0xd4,0x00,0xdc,0x00,0xe4,0x00,0xec,0x00,0xf2,0x00,0xfa,0x01,0x02,0x01,0x0a,0x07,0x1d,0x00,0x03,0x06,0xa2,0x06,0xa2,0x07,0x1e,0x00,0x03,0x06,0xa2,0x06,0xa3,0x07,0x1f,0x00,0x03,0x06,0xa2,0x06,0xa4,0x07,0x20,0x00,0x03,0x06,0xa2, +0x06,0xa5,0x07,0x21,0x00,0x03,0x06,0xa2,0x06,0xa6,0x07,0x22,0x00,0x02,0x06,0xa2,0x07,0x23,0x00,0x03,0x06,0xa3,0x06,0xa2,0x07,0x24,0x00,0x03,0x06,0xa3,0x06,0xa3,0x07,0x25,0x00,0x03,0x06,0xa3,0x06,0xa4,0x07,0x26,0x00,0x03,0x06,0xa3,0x06,0xa5,0x07,0x27,0x00,0x03,0x06,0xa3,0x06,0xa6,0x07,0x28,0x00,0x02,0x06,0xa3,0x07,0x29, +0x00,0x03,0x06,0xa4,0x06,0xa2,0x07,0x2a,0x00,0x03,0x06,0xa4,0x06,0xa3,0x07,0x2b,0x00,0x03,0x06,0xa4,0x06,0xa4,0x07,0x2c,0x00,0x03,0x06,0xa4,0x06,0xa5,0x07,0x2d,0x00,0x03,0x06,0xa4,0x06,0xa6,0x07,0x2e,0x00,0x02,0x06,0xa4,0x07,0x2f,0x00,0x03,0x06,0xa5,0x06,0xa2,0x07,0x30,0x00,0x03,0x06,0xa5,0x06,0xa3,0x07,0x31,0x00,0x03, +0x06,0xa5,0x06,0xa4,0x07,0x32,0x00,0x03,0x06,0xa5,0x06,0xa5,0x07,0x33,0x00,0x03,0x06,0xa5,0x06,0xa6,0x07,0x34,0x00,0x02,0x06,0xa5,0x07,0x35,0x00,0x03,0x06,0xa6,0x06,0xa2,0x07,0x36,0x00,0x03,0x06,0xa6,0x06,0xa3,0x07,0x37,0x00,0x03,0x06,0xa6,0x06,0xa4,0x07,0x38,0x00,0x03,0x06,0xa6,0x06,0xa5,0x00,0x02,0x00,0x01,0x06,0xa2, +0x06,0xa6,0x00,0x00,0x00,0x01,0x01,0x92,0x00,0x03,0x00,0x0c,0x00,0x6e,0x01,0x00,0x00,0x08,0x00,0x12,0x00,0x1c,0x00,0x26,0x00,0x30,0x00,0x3a,0x00,0x44,0x00,0x4e,0x00,0x58,0x08,0x62,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x46,0x08,0x63,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x47,0x08,0x64,0x00,0x04,0x04,0x64,0x04,0x73,0x02,0x46, +0x08,0x65,0x00,0x04,0x04,0x64,0x04,0x73,0x02,0x47,0x08,0x66,0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x46,0x08,0x67,0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x47,0x08,0x68,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x46,0x08,0x69,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x47,0x00,0x0c,0x00,0x1a,0x00,0x24,0x00,0x2e,0x00,0x38,0x00,0x42,0x00,0x4c, +0x00,0x56,0x00,0x60,0x00,0x6a,0x00,0x74,0x00,0x7e,0x00,0x88,0x08,0x6a,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x46,0x08,0x6b,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x47,0x08,0x6c,0x00,0x04,0x04,0x64,0x04,0x73,0x02,0x46,0x08,0x6d,0x00,0x04,0x04,0x64,0x04,0x73,0x02,0x47,0x08,0x6e,0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x46,0x08,0x6f, +0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x47,0x08,0x70,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x46,0x08,0x71,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x47,0x08,0x7a,0x00,0x04,0x04,0x68,0x04,0x64,0x02,0x46,0x08,0x7b,0x00,0x04,0x04,0x68,0x04,0x64,0x02,0x47,0x08,0x7c,0x00,0x04,0x04,0x68,0x04,0x66,0x02,0x46,0x08,0x7d,0x00,0x04,0x04,0x68, +0x04,0x66,0x02,0x47,0x00,0x0c,0x00,0x1a,0x00,0x24,0x00,0x2e,0x00,0x38,0x00,0x42,0x00,0x4c,0x00,0x56,0x00,0x60,0x00,0x6a,0x00,0x74,0x00,0x7e,0x00,0x88,0x08,0x72,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x46,0x08,0x73,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x47,0x08,0x74,0x00,0x04,0x04,0x64,0x04,0x73,0x02,0x46,0x08,0x75,0x00,0x04, +0x04,0x64,0x04,0x73,0x02,0x47,0x08,0x76,0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x46,0x08,0x77,0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x47,0x08,0x78,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x46,0x08,0x79,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x47,0x08,0x7e,0x00,0x04,0x04,0x68,0x04,0x64,0x02,0x46,0x08,0x7f,0x00,0x04,0x04,0x68,0x04,0x64, +0x02,0x47,0x08,0x80,0x00,0x04,0x04,0x68,0x04,0x66,0x02,0x46,0x08,0x81,0x00,0x04,0x04,0x68,0x04,0x66,0x02,0x47,0x00,0x02,0x00,0x03,0x01,0x2f,0x01,0x2f,0x00,0x00,0x01,0xc9,0x01,0xc9,0x00,0x01,0x01,0xd2,0x01,0xd2,0x00,0x02,0x00,0x02,0x00,0x1a,0x00,0x0a,0x08,0xa5,0x08,0xa6,0x08,0xa7,0x08,0xa8,0x08,0xa9,0x08,0xaa,0x08,0xab, +0x08,0xac,0x08,0xad,0x08,0xae,0x00,0x02,0x00,0x01,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x0c,0x08,0x99,0x08,0x98,0x08,0x96,0x08,0x97,0x08,0x9a,0x08,0x9b,0x08,0x9c,0x08,0x9d,0x08,0x9e,0x08,0x9f,0x08,0x95,0x01,0x37,0x00,0x02,0x00,0x03,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x4c,0x00,0x4c,0x00,0x0a,0x00,0x51, +0x00,0x51,0x00,0x0b,0x00,0x02,0x00,0x64,0x00,0x2f,0x0d,0x8a,0x0d,0x8b,0x0d,0x8c,0x0d,0x8d,0x0d,0x8e,0x0d,0x90,0x0d,0x92,0x0d,0x93,0x0d,0x94,0x0d,0x95,0x0d,0x96,0x0d,0x97,0x0d,0x98,0x0d,0x99,0x0d,0x9a,0x0d,0x9b,0x0d,0x9c,0x0d,0x9d,0x0d,0x9e,0x0d,0x9f,0x0d,0xa0,0x0d,0xa1,0x0d,0xa2,0x0d,0xa3,0x0d,0xa4,0x0d,0xa5,0x0d,0xa6, +0x0d,0xa7,0x0d,0xa8,0x0d,0xa9,0x0d,0xaa,0x0d,0xab,0x0d,0xac,0x0d,0xad,0x0d,0xae,0x0d,0xaf,0x0d,0xb0,0x0d,0xb1,0x0d,0xb2,0x0d,0xb3,0x0d,0xb4,0x0d,0xb5,0x0d,0xb6,0x0d,0xb7,0x0d,0xb8,0x0d,0x8f,0x0d,0x91,0x00,0x02,0x00,0x03,0x01,0xdb,0x02,0x06,0x00,0x00,0x02,0x33,0x02,0x33,0x00,0x2c,0x02,0xb5,0x02,0xb6,0x00,0x2d,0x00,0x02, +0x00,0x64,0x00,0x2f,0x0d,0x98,0x0d,0x99,0x0d,0x9a,0x0d,0x9b,0x0d,0x9c,0x0d,0x9d,0x0d,0x9e,0x0d,0x9f,0x0d,0xa0,0x0d,0xa1,0x0d,0xa2,0x0d,0xa3,0x0d,0xa4,0x0d,0xa5,0x0d,0xa6,0x0d,0xa7,0x0d,0xa8,0x0d,0xa9,0x0d,0xaa,0x0d,0xab,0x0d,0xac,0x0d,0xad,0x0d,0xae,0x0d,0xaf,0x0d,0xb0,0x0d,0xb1,0x0d,0xb2,0x0d,0xb3,0x0d,0xb4,0x0d,0xb5, +0x0d,0xb6,0x0d,0xb7,0x0d,0x8a,0x0d,0x8b,0x0d,0x8c,0x0d,0x8d,0x0d,0x8e,0x0d,0x90,0x0d,0x92,0x0d,0x93,0x0d,0x94,0x0d,0x95,0x0d,0x96,0x0d,0x97,0x0d,0xb8,0x0d,0x8f,0x0d,0x91,0x00,0x02,0x00,0x03,0x02,0x07,0x02,0x32,0x00,0x00,0x02,0x34,0x02,0x34,0x00,0x2c,0x02,0xb7,0x02,0xb8,0x00,0x2d,0x00,0x02,0x00,0x48,0x00,0x21,0x0d,0x6c, +0x0d,0x6b,0x0d,0x70,0x0d,0x7d,0x0d,0x81,0x0d,0x82,0x0d,0x83,0x0d,0x84,0x0d,0x85,0x0d,0x86,0x0d,0x87,0x0d,0x69,0x0d,0x6a,0x0d,0x6d,0x0d,0x6e,0x0d,0x6f,0x0d,0x71,0x0d,0x72,0x0d,0x73,0x0d,0x74,0x0d,0x75,0x0d,0x76,0x0d,0x77,0x0d,0x78,0x0d,0x79,0x0d,0x7a,0x0d,0x7b,0x0d,0x7c,0x0d,0x7e,0x0d,0x7f,0x0d,0x80,0x0d,0x88,0x0d,0x89, +0x00,0x02,0x00,0x04,0x00,0xa9,0x00,0xa9,0x00,0x00,0x01,0x2c,0x01,0x2e,0x00,0x01,0x01,0xa1,0x01,0xa7,0x00,0x04,0x01,0xa9,0x01,0xbe,0x00,0x0b,0x00,0x02,0x00,0x4a,0x00,0x22,0x0d,0x69,0x0d,0x6c,0x0d,0x6d,0x0d,0x7a,0x0d,0x7b,0x0d,0x7d,0x0d,0x81,0x0d,0x82,0x0d,0x83,0x0d,0x84,0x0d,0x6a,0x0d,0x6b,0x0d,0x6e,0x0d,0x6f,0x0d,0x70, +0x0d,0x71,0x0d,0x72,0x0d,0x73,0x0d,0x74,0x0d,0x75,0x0d,0x76,0x0d,0x77,0x0d,0x79,0x0d,0x7a,0x0d,0x7c,0x0d,0x7e,0x0d,0x7f,0x0d,0x80,0x0d,0x88,0x0d,0x89,0x0d,0x85,0x0d,0x86,0x0d,0x87,0x0d,0x78,0x00,0x02,0x00,0x04,0x01,0x2f,0x01,0x34,0x00,0x00,0x01,0xbf,0x01,0xc2,0x00,0x06,0x01,0xc4,0x01,0xda,0x00,0x0a,0x02,0x37,0x02,0x37, +0x00,0x21,0x00,0x02,0x01,0x08,0x00,0x81,0x0d,0xbe,0x0c,0xeb,0x0c,0xec,0x0c,0xed,0x0c,0xee,0x0c,0xef,0x0c,0xf0,0x0c,0xf1,0x0c,0xf2,0x0c,0xf3,0x0c,0xf4,0x0c,0xf5,0x0c,0xf6,0x0c,0xf7,0x0c,0xf8,0x0c,0xf9,0x0c,0xfa,0x0c,0xfb,0x0c,0xfc,0x0c,0xfd,0x0c,0xfe,0x0c,0xff,0x0d,0x00,0x0d,0x01,0x0d,0x02,0x0d,0x03,0x0d,0x04,0x0d,0x10, +0x0d,0x11,0x0d,0x12,0x0d,0x14,0x0d,0x1b,0x0d,0x20,0x0d,0x24,0x0d,0x05,0x0d,0x08,0x0d,0x0c,0x0d,0x0f,0x0d,0x1f,0x0d,0x06,0x0d,0x61,0x0d,0x0e,0x0d,0x15,0x0d,0x0d,0x0d,0x16,0x0d,0x13,0x0d,0x18,0x0d,0x19,0x0d,0x1a,0x0d,0x17,0x0d,0x1d,0x0d,0x1e,0x0d,0x1c,0x0d,0x22,0x0d,0x23,0x0d,0x21,0x0d,0x07,0x0d,0x51,0x0d,0x65,0x0d,0x0a, +0x0d,0x25,0x0d,0x09,0x0d,0x33,0x0d,0x3c,0x0d,0x50,0x0d,0x29,0x0d,0x2a,0x0d,0x27,0x0d,0x28,0x0d,0x2c,0x0d,0x2d,0x0d,0x31,0x0d,0x32,0x0d,0x40,0x0d,0x42,0x0d,0x43,0x0d,0x44,0x0d,0x46,0x0d,0x4a,0x0d,0x4b,0x0d,0x4d,0x0d,0x4e,0x0d,0x52,0x0d,0x54,0x0d,0x59,0x0d,0x5a,0x0d,0x63,0x0d,0x64,0x0d,0x3d,0x0d,0x26,0x0d,0xbf,0x0d,0x35, +0x0d,0x2e,0x0d,0x2f,0x0d,0x30,0x0d,0xc0,0x0d,0x2b,0x0d,0x34,0x0d,0x36,0x0d,0x37,0x0d,0x38,0x0d,0x39,0x0d,0x3a,0x0d,0x3b,0x0d,0x3e,0x0d,0x3f,0x0d,0x41,0x0d,0x45,0x0d,0x47,0x0d,0x48,0x0d,0x49,0x0d,0x4c,0x0d,0x4f,0x0d,0x55,0x0d,0x56,0x0d,0x57,0x0d,0x58,0x0d,0x5b,0x0d,0x5c,0x0d,0x60,0x0d,0x66,0x0d,0x67,0x0d,0x68,0x0d,0x5d, +0x0d,0x5e,0x0d,0x5f,0x0d,0x62,0x0d,0xc1,0x0d,0x0b,0x00,0x02,0x00,0x4e,0x00,0x09,0x00,0x09,0x00,0x00,0x00,0x24,0x00,0x3d,0x00,0x01,0x00,0x62,0x00,0x68,0x00,0x1b,0x00,0x91,0x00,0x92,0x00,0x22,0x00,0xad,0x00,0xb0,0x00,0x24,0x00,0xbb,0x00,0xbb,0x00,0x28,0x00,0xc7,0x00,0xd5,0x00,0x29,0x00,0xe1,0x00,0xe1,0x00,0x38,0x00,0xe3, +0x00,0xe3,0x00,0x39,0x00,0xe5,0x00,0xe5,0x00,0x3a,0x00,0xe8,0x00,0xe8,0x00,0x3b,0x00,0xea,0x00,0xea,0x00,0x3c,0x00,0xec,0x00,0xec,0x00,0x3d,0x00,0xf7,0x00,0xf7,0x00,0x3e,0x00,0xf9,0x00,0xfa,0x00,0x3f,0x00,0xfc,0x00,0xfc,0x00,0x41,0x00,0xfe,0x00,0xfe,0x00,0x42,0x01,0x03,0x01,0x03,0x00,0x43,0x01,0x05,0x01,0x05,0x00,0x44, +0x01,0x07,0x01,0x07,0x00,0x45,0x01,0x09,0x01,0x0a,0x00,0x46,0x01,0x0c,0x01,0x0c,0x00,0x48,0x01,0x0e,0x01,0x0e,0x00,0x49,0x01,0x10,0x01,0x10,0x00,0x4a,0x01,0x12,0x01,0x12,0x00,0x4b,0x01,0x14,0x01,0x14,0x00,0x4c,0x01,0x16,0x01,0x16,0x00,0x4d,0x01,0x18,0x01,0x18,0x00,0x4e,0x01,0x1a,0x01,0x1a,0x00,0x4f,0x01,0x1c,0x01,0x1c, +0x00,0x50,0x01,0x1e,0x01,0x1e,0x00,0x51,0x01,0x20,0x01,0x20,0x00,0x52,0x01,0x22,0x01,0x22,0x00,0x53,0x01,0x24,0x01,0x24,0x00,0x54,0x01,0x26,0x01,0x26,0x00,0x55,0x01,0x28,0x01,0x28,0x00,0x56,0x01,0x2a,0x01,0x2a,0x00,0x57,0x01,0x39,0x01,0x39,0x00,0x58,0x01,0x45,0x01,0x45,0x00,0x59,0x01,0x47,0x01,0x47,0x00,0x5a,0x01,0x49, +0x01,0x49,0x00,0x5b,0x01,0x4b,0x01,0x4b,0x00,0x5c,0x01,0x4d,0x01,0x4d,0x00,0x5d,0x01,0x4f,0x01,0x4f,0x00,0x5e,0x01,0x51,0x01,0x51,0x00,0x5f,0x01,0x53,0x01,0x53,0x00,0x60,0x01,0x55,0x01,0x55,0x00,0x61,0x01,0x57,0x01,0x57,0x00,0x62,0x01,0x59,0x01,0x59,0x00,0x63,0x01,0x5b,0x01,0x5b,0x00,0x64,0x01,0x5d,0x01,0x5d,0x00,0x65, +0x01,0x5f,0x01,0x5f,0x00,0x66,0x01,0x61,0x01,0x61,0x00,0x67,0x01,0x63,0x01,0x63,0x00,0x68,0x01,0x65,0x01,0x65,0x00,0x69,0x01,0x68,0x01,0x68,0x00,0x6a,0x01,0x6a,0x01,0x6a,0x00,0x6b,0x01,0x6c,0x01,0x6c,0x00,0x6c,0x01,0x6e,0x01,0x6e,0x00,0x6d,0x01,0x70,0x01,0x70,0x00,0x6e,0x01,0x72,0x01,0x72,0x00,0x6f,0x01,0x74,0x01,0x74, +0x00,0x70,0x01,0x76,0x01,0x76,0x00,0x71,0x01,0x78,0x01,0x78,0x00,0x72,0x01,0x7a,0x01,0x7a,0x00,0x73,0x01,0x7c,0x01,0x7c,0x00,0x74,0x01,0x7e,0x01,0x7e,0x00,0x75,0x01,0x80,0x01,0x80,0x00,0x76,0x01,0x82,0x01,0x82,0x00,0x77,0x01,0x85,0x01,0x85,0x00,0x78,0x01,0x87,0x01,0x87,0x00,0x79,0x01,0x89,0x01,0x89,0x00,0x7a,0x01,0x8c, +0x01,0x8c,0x00,0x7b,0x01,0x8e,0x01,0x8e,0x00,0x7c,0x01,0x90,0x01,0x90,0x00,0x7d,0x01,0x92,0x01,0x92,0x00,0x7e,0x02,0x3d,0x02,0x3d,0x00,0x7f,0x0b,0x21,0x0b,0x21,0x00,0x80,0x00,0x02,0x01,0x06,0x00,0x80,0x0d,0xbe,0x0c,0xeb,0x0c,0xec,0x0c,0xed,0x0c,0xee,0x0c,0xef,0x0c,0xf0,0x0c,0xf1,0x0c,0xf2,0x0c,0xf4,0x0c,0xf5,0x0c,0xf6, +0x0c,0xf7,0x0c,0xf8,0x0c,0xf9,0x0c,0xfa,0x0c,0xfb,0x0c,0xfc,0x0c,0xfd,0x0c,0xfe,0x0c,0xff,0x0d,0x00,0x0d,0x01,0x0d,0x02,0x0d,0x03,0x0d,0x04,0x0d,0x0d,0x0d,0x0c,0x0d,0x0e,0x0d,0x10,0x0d,0x0f,0x0d,0x11,0x0d,0x12,0x0d,0x14,0x0d,0x13,0x0d,0x15,0x0d,0x16,0x0d,0x18,0x0d,0x17,0x0d,0x19,0x0d,0x1a,0x0d,0x1b,0x0d,0x1d,0x0d,0x1c, +0x0d,0x1e,0x0d,0x20,0x0d,0x1f,0x0d,0x22,0x0d,0x21,0x0d,0x23,0x0d,0x24,0x0d,0x0b,0x0d,0x05,0x0d,0x08,0x0d,0x06,0x0d,0x61,0x0c,0xf3,0x0d,0x07,0x0d,0x51,0x0d,0x65,0x0d,0x0a,0x0d,0x25,0x0d,0x09,0x0d,0x33,0x0d,0x50,0x0d,0x29,0x0d,0x2a,0x0d,0x2d,0x0d,0x27,0x0d,0x28,0x0d,0x2c,0x0d,0x31,0x0d,0x32,0x0d,0x40,0x0d,0x42,0x0d,0x43, +0x0d,0x44,0x0d,0x46,0x0d,0x4a,0x0d,0x4b,0x0d,0x4d,0x0d,0x4e,0x0d,0x52,0x0d,0x54,0x0d,0x59,0x0d,0x5a,0x0d,0x63,0x0d,0x64,0x0d,0x3d,0x0d,0x26,0x0d,0xbf,0x0d,0x35,0x0d,0x2e,0x0d,0x2f,0x0d,0x30,0x0d,0xc0,0x0d,0x2b,0x0d,0x34,0x0d,0x36,0x0d,0x37,0x0d,0x38,0x0d,0x39,0x0d,0x3a,0x0d,0x3b,0x0d,0x3e,0x0d,0x3f,0x0d,0x41,0x0d,0x45, +0x0d,0x47,0x0d,0x48,0x0d,0x49,0x0d,0x4c,0x0d,0x4f,0x0d,0x55,0x0d,0x56,0x0d,0x57,0x0d,0x58,0x0d,0x5b,0x0d,0x5c,0x0d,0x60,0x0d,0x66,0x0d,0x67,0x0d,0x68,0x0d,0x5d,0x0d,0x5e,0x0d,0x5f,0x0d,0x62,0x0d,0xc1,0x00,0x02,0x00,0x4f,0x00,0x09,0x00,0x09,0x00,0x00,0x00,0x44,0x00,0x4b,0x00,0x01,0x00,0x4d,0x00,0x5d,0x00,0x09,0x00,0x69, +0x00,0x81,0x00,0x1a,0x00,0x89,0x00,0x89,0x00,0x33,0x00,0xa0,0x00,0xa1,0x00,0x34,0x00,0xb1,0x00,0xb1,0x00,0x36,0x00,0xba,0x00,0xba,0x00,0x37,0x00,0xd6,0x00,0xd6,0x00,0x38,0x00,0xe2,0x00,0xe2,0x00,0x39,0x00,0xe4,0x00,0xe4,0x00,0x3a,0x00,0xe6,0x00,0xe6,0x00,0x3b,0x00,0xe9,0x00,0xe9,0x00,0x3c,0x00,0xeb,0x00,0xeb,0x00,0x3d, +0x00,0xed,0x00,0xed,0x00,0x3e,0x00,0xf8,0x00,0xf8,0x00,0x3f,0x00,0xfb,0x00,0xfb,0x00,0x40,0x00,0xfd,0x00,0xfd,0x00,0x41,0x00,0xff,0x01,0x00,0x00,0x42,0x01,0x04,0x01,0x04,0x00,0x44,0x01,0x06,0x01,0x06,0x00,0x45,0x01,0x08,0x01,0x08,0x00,0x46,0x01,0x0b,0x01,0x0b,0x00,0x47,0x01,0x0d,0x01,0x0d,0x00,0x48,0x01,0x0f,0x01,0x0f, +0x00,0x49,0x01,0x11,0x01,0x11,0x00,0x4a,0x01,0x13,0x01,0x13,0x00,0x4b,0x01,0x15,0x01,0x15,0x00,0x4c,0x01,0x17,0x01,0x17,0x00,0x4d,0x01,0x19,0x01,0x19,0x00,0x4e,0x01,0x1b,0x01,0x1b,0x00,0x4f,0x01,0x1d,0x01,0x1d,0x00,0x50,0x01,0x1f,0x01,0x1f,0x00,0x51,0x01,0x21,0x01,0x21,0x00,0x52,0x01,0x23,0x01,0x23,0x00,0x53,0x01,0x25, +0x01,0x25,0x00,0x54,0x01,0x27,0x01,0x27,0x00,0x55,0x01,0x29,0x01,0x29,0x00,0x56,0x01,0x2b,0x01,0x2b,0x00,0x57,0x01,0x3a,0x01,0x3a,0x00,0x58,0x01,0x46,0x01,0x46,0x00,0x59,0x01,0x48,0x01,0x48,0x00,0x5a,0x01,0x4a,0x01,0x4a,0x00,0x5b,0x01,0x4c,0x01,0x4c,0x00,0x5c,0x01,0x4e,0x01,0x4e,0x00,0x5d,0x01,0x50,0x01,0x50,0x00,0x5e, +0x01,0x52,0x01,0x52,0x00,0x5f,0x01,0x54,0x01,0x54,0x00,0x60,0x01,0x56,0x01,0x56,0x00,0x61,0x01,0x58,0x01,0x58,0x00,0x62,0x01,0x5a,0x01,0x5a,0x00,0x63,0x01,0x5c,0x01,0x5c,0x00,0x64,0x01,0x5e,0x01,0x5e,0x00,0x65,0x01,0x60,0x01,0x60,0x00,0x66,0x01,0x62,0x01,0x62,0x00,0x67,0x01,0x64,0x01,0x64,0x00,0x68,0x01,0x66,0x01,0x66, +0x00,0x69,0x01,0x69,0x01,0x69,0x00,0x6a,0x01,0x6b,0x01,0x6b,0x00,0x6b,0x01,0x6d,0x01,0x6d,0x00,0x6c,0x01,0x6f,0x01,0x6f,0x00,0x6d,0x01,0x71,0x01,0x71,0x00,0x6e,0x01,0x73,0x01,0x73,0x00,0x6f,0x01,0x75,0x01,0x75,0x00,0x70,0x01,0x77,0x01,0x77,0x00,0x71,0x01,0x79,0x01,0x79,0x00,0x72,0x01,0x7b,0x01,0x7b,0x00,0x73,0x01,0x7d, +0x01,0x7d,0x00,0x74,0x01,0x7f,0x01,0x7f,0x00,0x75,0x01,0x81,0x01,0x81,0x00,0x76,0x01,0x83,0x01,0x83,0x00,0x77,0x01,0x86,0x01,0x86,0x00,0x78,0x01,0x88,0x01,0x88,0x00,0x79,0x01,0x8a,0x01,0x8a,0x00,0x7a,0x01,0x8d,0x01,0x8d,0x00,0x7b,0x01,0x8f,0x01,0x8f,0x00,0x7c,0x01,0x91,0x01,0x91,0x00,0x7d,0x01,0x93,0x01,0x93,0x00,0x7e, +0x02,0x3e,0x02,0x3e,0x00,0x7f,0x00,0x02,0x00,0x08,0x00,0x01,0x0c,0xf3,0x00,0x01,0x00,0x01,0x00,0x4c,0x00,0x02,0x00,0x08,0x00,0x01,0x0d,0x3c,0x00,0x01,0x00,0x01,0x00,0x4c,0x00,0x01,0x00,0x24,0x00,0x01,0x00,0x08,0x00,0x03,0x00,0x08,0x00,0x10,0x00,0x16,0x0d,0xbd,0x00,0x03,0x00,0x49,0x00,0x4f,0x0d,0xbb,0x00,0x02,0x00,0x49, +0x0d,0xba,0x00,0x02,0x00,0x4f,0x00,0x01,0x00,0x01,0x00,0x49,0x00,0x01,0x00,0x28,0x00,0x02,0x00,0x0a,0x00,0x1e,0x00,0x02,0x00,0x06,0x00,0x0e,0x0d,0xbc,0x00,0x03,0x00,0x49,0x00,0x4c,0x0d,0xb9,0x00,0x02,0x00,0x4c,0x00,0x01,0x00,0x04,0x0d,0xbc,0x00,0x02,0x00,0x4c,0x00,0x01,0x00,0x02,0x00,0x49,0x0d,0xbb,0x00,0x02,0x00,0x08, +0x00,0x01,0x00,0xbc,0x00,0x01,0x00,0x01,0x00,0x12,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x74,0x00,0x02,0x00,0x02,0x00,0xbc,0x00,0xbc,0x00,0x00,0x0c,0xe1,0x0c,0xea,0x00,0x01,0x00,0x02,0x00,0x01,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x08,0x8d,0x00,0xf0, +0x00,0xf1,0x00,0xf2,0x02,0x38,0x02,0x39,0x08,0x8e,0x02,0x3a,0x02,0x3b,0x08,0x8f,0x00,0x02,0x00,0x01,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xc3,0x0c,0xc4,0x0c,0xc5,0x0c,0xc6,0x0c,0xc7,0x0c,0xc8,0x0c,0xc9,0x0c,0xca,0x0c,0xcb,0x0c,0xcc,0x00,0x02,0x00,0x01,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02, +0x00,0x1a,0x00,0x0a,0x0c,0xb9,0x0c,0xba,0x0c,0xbb,0x0c,0xbc,0x0c,0xbd,0x0c,0xbe,0x0c,0xbf,0x0c,0xc0,0x0c,0xc1,0x0c,0xc2,0x00,0x02,0x00,0x01,0x0c,0xcd,0x0c,0xd6,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4,0x0c,0xd5,0x0c,0xd6,0x00,0x02,0x00,0x01, +0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x00,0x02,0x00,0x01,0x0c,0xcd,0x0c,0xd6,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xb9,0x0c,0xba,0x0c,0xbb,0x0c,0xbc,0x0c,0xbd,0x0c,0xbe,0x0c,0xbf,0x0c,0xc0, +0x0c,0xc1,0x0c,0xc2,0x00,0x02,0x00,0x01,0x0c,0xc3,0x0c,0xcc,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x00,0x02,0x00,0x01,0x0c,0xc3,0x0c,0xcc,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xc3,0x0c,0xc4,0x0c,0xc5,0x0c,0xc6, +0x0c,0xc7,0x0c,0xc8,0x0c,0xc9,0x0c,0xca,0x0c,0xcb,0x0c,0xcc,0x00,0x02,0x00,0x01,0x0c,0xb9,0x0c,0xc2,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4,0x0c,0xd5,0x0c,0xd6,0x00,0x02,0x00,0x01,0x0c,0xb9,0x0c,0xc2,0x00,0x00,0x00,0x01,0x00,0x9a,0x00,0x06, +0x00,0x12,0x00,0x38,0x00,0x44,0x00,0x50,0x00,0x6a,0x00,0x76,0x00,0x03,0x00,0x08,0x00,0x12,0x00,0x1c,0x10,0xb9,0x00,0x04,0x00,0x39,0x00,0x36,0x00,0x14,0x10,0xba,0x00,0x04,0x00,0x39,0x00,0x36,0x00,0x15,0x10,0xbb,0x00,0x04,0x00,0x39,0x00,0x36,0x00,0x16,0x00,0x01,0x00,0x04,0x08,0xc5,0x00,0x03,0x00,0x35,0x00,0x30,0x00,0x01, +0x00,0x04,0x10,0xbc,0x00,0x03,0x00,0x39,0x00,0x36,0x00,0x02,0x00,0x06,0x00,0x10,0x10,0xfb,0x00,0x04,0x00,0x25,0x00,0x36,0x00,0x33,0x10,0xfd,0x00,0x04,0x00,0x31,0x00,0x25,0x00,0x36,0x00,0x01,0x00,0x04,0x08,0xc6,0x00,0x03,0x00,0x2f,0x00,0x30,0x00,0x03,0x00,0x08,0x00,0x12,0x00,0x1a,0x10,0xfc,0x00,0x04,0x00,0x3a,0x00,0x36, +0x00,0x33,0x08,0xc4,0x00,0x03,0x00,0x3a,0x00,0x2d,0x08,0xc3,0x00,0x04,0x00,0x3a,0x00,0x31,0x00,0x2d,0x00,0x02,0x00,0x04,0x00,0x29,0x00,0x29,0x00,0x00,0x00,0x2f,0x00,0x31,0x00,0x01,0x00,0x35,0x00,0x35,0x00,0x04,0x00,0x3d,0x00,0x3d,0x00,0x05,0x00,0x02,0x00,0x80,0x00,0x3d,0x10,0xe5,0x10,0xbd,0x10,0xbe,0x10,0xbf,0x10,0xe6, +0x10,0xe7,0x10,0xe8,0x10,0xe9,0x10,0xea,0x10,0xeb,0x10,0xec,0x10,0xed,0x10,0xc0,0x10,0xc1,0x10,0xf9,0x10,0xc2,0x10,0xc3,0x10,0xc4,0x10,0xee,0x10,0xef,0x10,0xf0,0x10,0xf1,0x10,0xf2,0x10,0xf3,0x10,0xf4,0x10,0xc5,0x10,0xf5,0x10,0xf6,0x10,0xc6,0x10,0xc7,0x10,0xc8,0x10,0xc9,0x10,0xca,0x10,0xf7,0x10,0xcb,0x10,0xcc,0x10,0xcd, +0x10,0xce,0x10,0xcf,0x10,0xd0,0x10,0xd1,0x10,0xd2,0x10,0xd3,0x10,0xd4,0x10,0xd5,0x10,0xd6,0x10,0xd7,0x10,0xd8,0x10,0xd9,0x10,0xda,0x10,0xdb,0x10,0xdc,0x10,0xdd,0x10,0xde,0x10,0xdf,0x10,0xe0,0x10,0xe1,0x10,0xf8,0x10,0xe2,0x10,0xe3,0x10,0xe4,0x00,0x02,0x00,0x1b,0x00,0x05,0x00,0x05,0x00,0x00,0x00,0x07,0x00,0x0a,0x00,0x01, +0x00,0x0d,0x00,0x0d,0x00,0x05,0x00,0x0f,0x00,0x11,0x00,0x06,0x00,0x1d,0x00,0x1e,0x00,0x09,0x00,0x42,0x00,0x42,0x00,0x0b,0x00,0x85,0x00,0x86,0x00,0x0c,0x00,0x8c,0x00,0x8c,0x00,0x0e,0x00,0x97,0x00,0x98,0x00,0x0f,0x00,0x9a,0x00,0x9a,0x00,0x11,0x00,0xaa,0x00,0xab,0x00,0x12,0x00,0xb2,0x00,0xb2,0x00,0x14,0x00,0xb4,0x00,0xb7, +0x00,0x15,0x00,0xbd,0x00,0xbd,0x00,0x19,0x00,0xc4,0x00,0xc5,0x00,0x1a,0x00,0xf3,0x00,0xf6,0x00,0x1c,0x01,0x38,0x01,0x38,0x00,0x20,0x01,0x94,0x01,0x94,0x00,0x21,0x01,0x96,0x01,0x96,0x00,0x22,0x01,0x98,0x01,0x9b,0x00,0x23,0x07,0xd2,0x07,0xd8,0x00,0x27,0x07,0xda,0x07,0xdf,0x00,0x2e,0x08,0x56,0x08,0x59,0x00,0x34,0x08,0x8c, +0x08,0x8c,0x00,0x38,0x08,0xbd,0x08,0xbd,0x00,0x39,0x0a,0x64,0x0a,0x64,0x00,0x3a,0x0b,0x2a,0x0b,0x2b,0x00,0x3b,0x00,0x02,0x00,0x56,0x00,0x28,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4,0x0c,0xd5,0x0c,0xd6,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4, +0x0c,0xd5,0x0c,0xd6,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4,0x0c,0xd5,0x0c,0xd6,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4,0x0c,0xd5,0x0c,0xd6,0x00,0x02,0x00,0x02,0x00,0x13,0x00,0x1c,0x00,0x00,0x0c,0xb9,0x0c,0xd6,0x00,0x0a,0x00,0x02,0x00,0xa2, +0x00,0x4e,0x0c,0xd7,0x0c,0xd8,0x0c,0xd9,0x0c,0xda,0x0c,0xdb,0x0c,0xdc,0x0c,0xdd,0x0c,0xde,0x0c,0xdf,0x0c,0xe0,0x0d,0xf2,0x0d,0xf3,0x10,0x9a,0x10,0x9b,0x10,0xa5,0x10,0xaf,0x10,0xb6,0x10,0xac,0x10,0xad,0x10,0xb7,0x10,0xb8,0x10,0xa9,0x10,0xb1,0x10,0x99,0x10,0xa6,0x10,0xa7,0x10,0xab,0x10,0xae,0x10,0xa8,0x10,0x96,0x10,0xb2, +0x10,0xa3,0x10,0xa2,0x10,0x9c,0x10,0x9e,0x10,0x9d,0x10,0xa0,0x10,0x9f,0x10,0xa1,0x10,0xa4,0x10,0xb4,0x10,0xb5,0x10,0xb0,0x10,0xb3,0x10,0x98,0x10,0x97,0x10,0xaa,0x0c,0xd7,0x0c,0xd8,0x0c,0xd9,0x0c,0xda,0x0c,0xdb,0x0c,0xdc,0x0c,0xdd,0x0c,0xde,0x0c,0xdf,0x0c,0xe0,0x0c,0xd7,0x0c,0xd8,0x0c,0xd9,0x0c,0xda,0x0c,0xdb,0x0c,0xdc, +0x0c,0xdd,0x0c,0xde,0x0c,0xdf,0x0c,0xe0,0x0c,0xd7,0x0c,0xd8,0x0c,0xd9,0x0c,0xda,0x0c,0xdb,0x0c,0xdc,0x0c,0xdd,0x0c,0xde,0x0c,0xdf,0x0c,0xe0,0x10,0x95,0x00,0x02,0x00,0x1b,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x2c,0x00,0x2c,0x00,0x0a,0x00,0x34,0x00,0x34,0x00,0x0b,0x00,0xcc,0x00,0xcf,0x00,0x0c,0x00,0xf9,0x00,0xf9,0x00,0x10, +0x01,0x39,0x01,0x39,0x00,0x11,0x01,0x5b,0x01,0x5b,0x00,0x12,0x01,0x5d,0x01,0x5d,0x00,0x13,0x01,0x5f,0x01,0x5f,0x00,0x14,0x01,0x61,0x01,0x61,0x00,0x15,0x01,0xa4,0x01,0xa4,0x00,0x16,0x01,0xae,0x01,0xae,0x00,0x17,0x01,0xbd,0x01,0xbd,0x00,0x18,0x01,0xe0,0x01,0xe0,0x00,0x19,0x02,0x7f,0x02,0x7f,0x00,0x1a,0x02,0x81,0x02,0x81, +0x00,0x1b,0x02,0xb5,0x02,0xb5,0x00,0x1c,0x03,0x0f,0x03,0x0f,0x00,0x1d,0x03,0x11,0x03,0x11,0x00,0x1e,0x03,0xad,0x03,0xb4,0x00,0x1f,0x04,0x3f,0x04,0x42,0x00,0x27,0x04,0xf9,0x04,0xf9,0x00,0x2b,0x05,0x2c,0x05,0x2c,0x00,0x2c,0x05,0x2e,0x05,0x2e,0x00,0x2d,0x06,0x21,0x06,0x21,0x00,0x2e,0x0c,0xb9,0x0c,0xd6,0x00,0x2f,0x0d,0xe4, +0x0d,0xe4,0x00,0x4d,0x00,0x02,0x00,0x42,0x00,0x1e,0x0d,0xf5,0x0d,0xf6,0x0d,0xf7,0x0d,0xf8,0x0d,0xf9,0x0d,0xfa,0x0d,0xfb,0x0d,0xfc,0x0d,0xfd,0x0d,0xfe,0x0d,0xff,0x0e,0x00,0x0e,0x01,0x0e,0x0b,0x0e,0x02,0x0e,0x03,0x0e,0x04,0x0e,0x05,0x0e,0x06,0x0e,0x07,0x0e,0x08,0x0e,0x09,0x0e,0x0a,0x0e,0x0f,0x0e,0x10,0x0e,0x0e,0x0e,0x0c, +0x0e,0x0d,0x0e,0x11,0x0e,0x12,0x00,0x02,0x00,0x13,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00,0x01,0x00,0x1e,0x00,0x1e,0x00,0x02,0x00,0x22,0x00,0x22,0x00,0x03,0x00,0xb4,0x00,0xb7,0x00,0x04,0x00,0xc4,0x00,0xc5,0x00,0x08,0x01,0x08,0x01,0x08,0x00,0x0a,0x01,0x10,0x01,0x11,0x00,0x0b,0x01,0x23,0x01,0x23,0x00,0x0d, +0x01,0x3b,0x01,0x3b,0x00,0x0e,0x01,0x55,0x01,0x56,0x00,0x0f,0x01,0x65,0x01,0x66,0x00,0x11,0x01,0x6a,0x01,0x6b,0x00,0x13,0x01,0x72,0x01,0x73,0x00,0x15,0x01,0x94,0x01,0x94,0x00,0x17,0x01,0x9c,0x01,0x9c,0x00,0x18,0x01,0x9e,0x01,0x9e,0x00,0x19,0x02,0x3d,0x02,0x3e,0x00,0x1a,0x02,0xaf,0x02,0xb0,0x00,0x1c,0x00,0x02,0x00,0x08, +0x00,0x01,0x0d,0xf4,0x00,0x01,0x00,0x01,0x00,0x09,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x11,0x84,0x00,0x02,0x11,0x83,0x00,0x01,0x00,0x01,0x11,0x82,0x00,0x01,0x00,0x8a,0x00,0x0b,0x00,0x1c,0x00,0x26,0x00,0x30,0x00,0x3a,0x00,0x44,0x00,0x4e,0x00,0x58,0x00,0x62,0x00,0x6c,0x00,0x76,0x00,0x80,0x00,0x01, +0x00,0x04,0x11,0x8e,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x98,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x8f,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x90,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x91,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x92,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x93, +0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x94,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x95,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x96,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x97,0x00,0x02,0x11,0x8d,0x00,0x02,0x00,0x02,0x00,0x06,0x00,0x06,0x00,0x00,0x0c,0xcd,0x0c,0xd6,0x00,0x01,0x00,0x01,0x00,0x8a, +0x00,0x0b,0x00,0x1c,0x00,0x26,0x00,0x30,0x00,0x3a,0x00,0x44,0x00,0x4e,0x00,0x58,0x00,0x62,0x00,0x6c,0x00,0x76,0x00,0x80,0x00,0x01,0x00,0x04,0x11,0x8e,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x98,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x8f,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x90,0x00,0x02,0x11,0x8d, +0x00,0x01,0x00,0x04,0x11,0x91,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x92,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x93,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x94,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x95,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x96,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04, +0x11,0x97,0x00,0x02,0x11,0x8d,0x00,0x02,0x00,0x02,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x13,0x00,0x1c,0x00,0x01,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xa4,0x11,0xa5,0x11,0xa6,0x11,0xa7,0x11,0xa8,0x11,0xa9,0x11,0xaa,0x11,0xab,0x11,0xac,0x11,0xad,0x00,0x02,0x00,0x01,0x0f,0xd6,0x0f,0xdf,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a, +0x11,0xb8,0x11,0xb9,0x11,0xba,0x11,0xbb,0x11,0xbc,0x11,0xbd,0x11,0xbe,0x11,0xbf,0x11,0xc0,0x11,0xc1,0x00,0x02,0x00,0x01,0x0f,0xea,0x0f,0xf3,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xae,0x11,0xaf,0x11,0xb0,0x11,0xb1,0x11,0xb2,0x11,0xb3,0x11,0xb4,0x11,0xb5,0x11,0xb6,0x11,0xb7,0x00,0x02,0x00,0x01,0x0f,0xe0,0x0f,0xe9, +0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xc2,0x11,0xc3,0x11,0xc4,0x11,0xc5,0x11,0xc6,0x11,0xc7,0x11,0xc8,0x11,0xc9,0x11,0xca,0x11,0xcb,0x00,0x02,0x00,0x01,0x0f,0xf4,0x0f,0xfd,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xcc,0x11,0xcd,0x11,0xce,0x11,0xcf,0x11,0xd0,0x11,0xd1,0x11,0xd2,0x11,0xd3,0x11,0xd4,0x11,0xd5, +0x00,0x02,0x00,0x01,0x0f,0xfe,0x10,0x07,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xd6,0x11,0xd7,0x11,0xd8,0x11,0xd9,0x11,0xda,0x11,0xdb,0x11,0xdc,0x11,0xdd,0x11,0xde,0x11,0xdf,0x00,0x02,0x00,0x01,0x10,0x08,0x10,0x11,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xe0,0x11,0xe1,0x11,0xe2,0x11,0xe3,0x11,0xe4,0x11,0xe5, +0x11,0xe6,0x11,0xe7,0x11,0xe8,0x11,0xe9,0x00,0x02,0x00,0x01,0x10,0x12,0x10,0x1b,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xea,0x11,0xeb,0x11,0xec,0x11,0xed,0x11,0xee,0x11,0xef,0x11,0xf0,0x11,0xf1,0x11,0xf2,0x11,0xf3,0x00,0x02,0x00,0x01,0x10,0x1c,0x10,0x25,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xf4,0x11,0xf5, +0x11,0xf6,0x11,0xf7,0x11,0xf8,0x11,0xf9,0x11,0xfa,0x11,0xfb,0x11,0xfc,0x11,0xfd,0x00,0x02,0x00,0x01,0x10,0x26,0x10,0x2f,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xfe,0x11,0xff,0x12,0x00,0x12,0x01,0x12,0x02,0x12,0x03,0x12,0x04,0x12,0x05,0x12,0x06,0x12,0x07,0x00,0x02,0x00,0x01,0x10,0x30,0x10,0x39,0x00,0x00,0x00,0x02, +0x00,0x1a,0x00,0x0a,0x12,0x08,0x12,0x09,0x12,0x0a,0x12,0x0b,0x12,0x0c,0x12,0x0d,0x12,0x0e,0x12,0x0f,0x12,0x10,0x12,0x11,0x00,0x02,0x00,0x01,0x10,0x3a,0x10,0x43,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x12,0x12,0x13,0x12,0x14,0x12,0x15,0x12,0x16,0x12,0x17,0x12,0x18,0x12,0x19,0x12,0x1a,0x12,0x1b,0x00,0x02,0x00,0x01, +0x10,0x44,0x10,0x4d,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x1c,0x12,0x1d,0x12,0x1e,0x12,0x1f,0x12,0x20,0x12,0x21,0x12,0x22,0x12,0x23,0x12,0x24,0x12,0x25,0x00,0x02,0x00,0x01,0x10,0x4e,0x10,0x57,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x26,0x12,0x27,0x12,0x28,0x12,0x29,0x12,0x2a,0x12,0x2b,0x12,0x2c,0x12,0x2d, +0x12,0x2e,0x12,0x2f,0x00,0x02,0x00,0x01,0x10,0x58,0x10,0x61,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x30,0x12,0x31,0x12,0x32,0x12,0x33,0x12,0x34,0x12,0x35,0x12,0x36,0x12,0x37,0x12,0x38,0x12,0x39,0x00,0x02,0x00,0x01,0x10,0x62,0x10,0x6b,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x3a,0x12,0x3b,0x12,0x3c,0x12,0x3d, +0x12,0x3e,0x12,0x3f,0x12,0x40,0x12,0x41,0x12,0x42,0x12,0x43,0x00,0x02,0x00,0x01,0x10,0x6c,0x10,0x75,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x44,0x12,0x45,0x12,0x46,0x12,0x47,0x12,0x48,0x12,0x49,0x12,0x4a,0x12,0x4b,0x12,0x4c,0x12,0x4d,0x00,0x02,0x00,0x01,0x10,0x76,0x10,0x7f,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a, +0x12,0x4f,0x12,0x50,0x12,0x51,0x12,0x52,0x12,0x53,0x12,0x54,0x12,0x55,0x12,0x56,0x12,0x57,0x12,0x58,0x00,0x02,0x00,0x01,0x10,0x81,0x10,0x8a,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x0b,0xb7,0x00,0x02,0x0b,0x74,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x01,0x00,0x14,0x00,0x01,0x00,0x08,0x00,0x01, +0x00,0x04,0x0b,0xb7,0x00,0x03,0x08,0xc4,0x0b,0x74,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x4e,0x00,0x01,0x00,0x54,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x02,0x00,0x82,0x00,0x88,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x28,0x00,0x02, +0x00,0x6e,0x00,0xa2,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x14,0x00,0x02,0x00,0x5a,0x00,0x94,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x01,0x00,0x01,0x0b,0x7a,0x00,0x02,0x00,0x0a,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0x5f,0x0b,0x5f,0x00,0x0a,0x0b,0x67,0x0b,0x67,0x00,0x0b, +0x0b,0xb9,0x0b,0xb9,0x00,0x0c,0x0b,0xbf,0x0b,0xbf,0x00,0x0d,0x0b,0xc4,0x0b,0xc4,0x00,0x0e,0x0b,0xc9,0x0b,0xc9,0x00,0x0f,0x0b,0xd0,0x0b,0xd5,0x00,0x10,0x0b,0xd8,0x0b,0xd8,0x00,0x16,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02, +0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0xdb,0x00,0x01,0x00,0x01,0x0b,0xc8,0x00,0x03,0x00,0x02,0x02,0xbc,0x02,0xea,0x00,0x01,0x02,0xf0,0x00,0x01,0x02,0xf6,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x03,0x02,0xa6, +0x02,0xa6,0x02,0xd4,0x00,0x01,0x02,0xda,0x00,0x01,0x02,0xe0,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x03,0x02,0x8e,0x02,0xf0,0x02,0xbc,0x00,0x01,0x02,0xc2,0x00,0x01,0x02,0xc8,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x04,0x02,0x76,0x02,0x76,0x02,0xd8,0x02,0xa4,0x00,0x01,0x02,0xaa,0x00,0x01,0x02,0xb0,0x00,0x01, +0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0xc6,0x00,0x01,0x02,0x90,0x00,0x01,0x02,0xcc,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x02,0x48,0x02,0xb2,0x00,0x01,0x02,0x7c,0x00,0x01,0x02,0xb8,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x9c,0x00,0x01,0x02,0x66,0x00,0x02,0x02,0xdc,0x02,0x32,0x00,0x01, +0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x02,0x1c,0x02,0x86,0x00,0x01,0x02,0x50,0x00,0x02,0x02,0xc6,0x02,0x1c,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x6e,0x00,0x01,0x02,0x38,0x00,0x03,0x02,0xae,0x02,0xb4,0x02,0xba,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x01,0xec,0x02,0x56,0x00,0x01,0x02,0x20, +0x00,0x03,0x02,0x96,0x02,0x9c,0x02,0xa2,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x3c,0x00,0x01,0x02,0x06,0x00,0x03,0x02,0x7c,0x02,0x82,0x02,0x3c,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x01,0xba,0x02,0x24,0x00,0x01,0x01,0xee,0x00,0x03,0x02,0x64,0x02,0x6a,0x02,0x24,0x00,0x01,0x00,0x00,0x00,0x76, +0x00,0x03,0x00,0x01,0x02,0x5c,0x00,0x01,0x01,0xd4,0x00,0x01,0x02,0x10,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x48,0x00,0x01,0x01,0xc0,0x00,0x02,0x02,0x36,0x01,0x8c,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x32,0x00,0x01,0x01,0xaa,0x00,0x03,0x02,0x20,0x02,0x26,0x01,0xe0,0x00,0x01,0x00,0x00, +0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x1a,0x00,0x01,0x01,0x92,0x00,0x03,0x02,0x08,0x02,0x0e,0x02,0x14,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x01,0x46,0x02,0x02,0x00,0x01,0x01,0x7a,0x00,0x01,0x01,0xb6,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x01,0x30,0x01,0xec,0x00,0x01,0x01,0x64,0x00,0x02,0x01,0xda, +0x01,0x30,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x01,0x18,0x01,0xd4,0x00,0x01,0x01,0x4c,0x00,0x03,0x01,0xc2,0x01,0xc8,0x01,0x82,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x00,0xfe,0x01,0xba,0x00,0x01,0x01,0x32,0x00,0x03,0x01,0xa8,0x01,0xae,0x01,0xb4,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02, +0x01,0xa6,0x01,0xac,0x00,0x01,0x01,0x18,0x00,0x01,0x01,0x1e,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x03,0x01,0x90,0x01,0x84,0x01,0x96,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x08,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x03,0x01,0x6c,0x01,0x78,0x01,0x7e,0x00,0x01,0x00,0xea,0x00,0x01,0x00,0xf0,0x00,0x01,0x00,0x00, +0x00,0x76,0x00,0x03,0x00,0x03,0x00,0x9e,0x01,0x60,0x01,0x66,0x00,0x01,0x00,0xd2,0x00,0x01,0x00,0xd8,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x04,0x00,0x86,0x00,0x86,0x01,0x48,0x01,0x4e,0x00,0x01,0x00,0xba,0x00,0x01,0x00,0xc0,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x04,0x00,0x6c,0x01,0x2e,0x01,0x22,0x01,0x34, +0x00,0x01,0x00,0xa0,0x00,0x01,0x00,0xa6,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x05,0x00,0x52,0x00,0x52,0x01,0x14,0x01,0x08,0x01,0x1a,0x00,0x01,0x00,0x86,0x00,0x01,0x00,0x8c,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x04,0x00,0x36,0x00,0xec,0x00,0xf8,0x00,0xfe,0x00,0x01,0x00,0x6a,0x00,0x01,0x00,0x70,0x00,0x01, +0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x05,0x00,0x1c,0x00,0x1c,0x00,0xd2,0x00,0xde,0x00,0xe4,0x00,0x01,0x00,0x50,0x00,0x01,0x00,0x56,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x02,0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61,0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd, +0x00,0x11,0x0b,0xe1,0x0b,0xe1,0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x01,0x00,0x01,0x0b,0x74,0x00,0x01,0x00,0x01,0x0b,0xc7,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62, +0x00,0x4c,0x00,0x01,0x00,0x02,0x0b,0x5e,0x0b,0x61,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x09,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x69,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1e,0x0b,0x97,0x0b,0x9a,0x00,0x2c,0x0b,0x9d,0x0b,0xa6,0x00,0x30,0x0b,0xa8,0x0b,0xb2,0x00,0x3a,0x0b,0xb4,0x0b,0xb7,0x00,0x45,0x0b,0xe0, +0x0b,0xe0,0x00,0x49,0x12,0x5f,0x12,0x62,0x00,0x4a,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x01,0x00,0x01,0x0b,0x6d,0x00,0x01,0x00,0x01,0x0b,0x5e,0x00,0x01,0x00,0x01,0x0b,0xde,0x00,0x01,0x00,0x01,0x0b,0x64,0x00,0x01,0x00,0x01,0x0b,0x81,0x00,0x02,0x00,0x08,0x00,0x01,0x0b,0xd8,0x00,0x01,0x00,0x01,0x0b,0xd0,0x00,0x01,0x00,0x16, +0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x0b,0x8c,0x00,0x04,0x08,0xc4,0x0b,0x71,0x0b,0x5a,0x00,0x01,0x00,0x01,0x0b,0x71,0x00,0x01,0x00,0x2a,0x00,0x03,0x00,0x0c,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x04,0x12,0x59,0x00,0x02,0x0b,0x5f,0x00,0x01,0x00,0x04,0x12,0x5a,0x00,0x02,0x0b,0x5f,0x00,0x01,0x00,0x04,0x12,0x5b,0x00,0x02, +0x0b,0x5f,0x00,0x02,0x00,0x01,0x0b,0x54,0x0b,0x56,0x00,0x00,0x00,0x01,0x00,0x30,0x00,0x03,0x00,0x0c,0x00,0x18,0x00,0x24,0x00,0x01,0x00,0x04,0x12,0x59,0x00,0x03,0x08,0xc4,0x0b,0x5f,0x00,0x01,0x00,0x04,0x12,0x5a,0x00,0x03,0x08,0xc4,0x0b,0x5f,0x00,0x01,0x00,0x04,0x12,0x5b,0x00,0x03,0x08,0xc4,0x0b,0x5f,0x00,0x02,0x00,0x01, +0x0b,0x54,0x0b,0x56,0x00,0x00,0x00,0x01,0x01,0xaa,0x00,0x01,0x00,0x08,0x00,0x34,0x00,0x6a,0x00,0x70,0x00,0x76,0x00,0x7c,0x00,0x82,0x00,0x88,0x00,0x8e,0x00,0x94,0x00,0x9a,0x00,0xa0,0x00,0xa6,0x00,0xac,0x00,0xb2,0x00,0xb8,0x00,0xbe,0x00,0xc4,0x00,0xca,0x00,0xd0,0x00,0xd6,0x00,0xdc,0x00,0xe2,0x00,0xe8,0x00,0xee,0x00,0xf4, +0x00,0xfa,0x01,0x00,0x01,0x06,0x01,0x0c,0x01,0x12,0x01,0x18,0x01,0x1e,0x01,0x24,0x01,0x2a,0x01,0x30,0x01,0x36,0x01,0x3c,0x01,0x42,0x01,0x48,0x01,0x4e,0x01,0x54,0x01,0x5a,0x01,0x60,0x01,0x66,0x01,0x6c,0x01,0x72,0x01,0x78,0x01,0x7e,0x01,0x84,0x01,0x8a,0x01,0x90,0x01,0x96,0x01,0x9c,0x0b,0x53,0x00,0x02,0x0b,0x53,0x0b,0x54, +0x00,0x02,0x0b,0x54,0x0b,0x55,0x00,0x02,0x0b,0x55,0x0b,0x56,0x00,0x02,0x0b,0x56,0x0b,0x57,0x00,0x02,0x0b,0x57,0x0b,0x58,0x00,0x02,0x0b,0x58,0x0b,0x59,0x00,0x02,0x0b,0x59,0x0b,0x5a,0x00,0x02,0x0b,0x5a,0x0b,0x5b,0x00,0x02,0x0b,0x5b,0x0b,0x5c,0x00,0x02,0x0b,0x5c,0x0b,0x5d,0x00,0x02,0x0b,0x5d,0x0b,0x5e,0x00,0x02,0x0b,0x5e, +0x0b,0x5f,0x00,0x02,0x0b,0x5f,0x0b,0x61,0x00,0x02,0x0b,0x61,0x0b,0x66,0x00,0x02,0x0b,0x66,0x0b,0x67,0x00,0x02,0x0b,0x67,0x0b,0xb9,0x00,0x02,0x0b,0xb9,0x0b,0xbf,0x00,0x02,0x0b,0xbf,0x0b,0xc0,0x00,0x02,0x0b,0xc0,0x0b,0xc1,0x00,0x02,0x0b,0xc1,0x0b,0xc2,0x00,0x02,0x0b,0xc2,0x0b,0xc3,0x00,0x02,0x0b,0xc3,0x0b,0xc4,0x00,0x02, +0x0b,0xc4,0x0b,0xc5,0x00,0x02,0x0b,0xc5,0x0b,0xc6,0x00,0x02,0x0b,0xc6,0x0b,0xc7,0x00,0x02,0x0b,0xc7,0x0b,0xc8,0x00,0x02,0x0b,0xc8,0x0b,0xc9,0x00,0x02,0x0b,0xc9,0x0b,0xca,0x00,0x02,0x0b,0xca,0x0b,0xcb,0x00,0x02,0x0b,0xcb,0x0b,0xcc,0x00,0x02,0x0b,0xcc,0x0b,0xcd,0x00,0x02,0x0b,0xcd,0x0b,0xce,0x00,0x02,0x0b,0xce,0x0b,0xcf, +0x00,0x02,0x0b,0xcf,0x0b,0xd0,0x00,0x02,0x0b,0xd0,0x0b,0xd1,0x00,0x02,0x0b,0xd1,0x0b,0xd2,0x00,0x02,0x0b,0xd2,0x0b,0xd3,0x00,0x02,0x0b,0xd3,0x0b,0xd4,0x00,0x02,0x0b,0xd4,0x0b,0xd5,0x00,0x02,0x0b,0xd5,0x0b,0xd6,0x00,0x02,0x0b,0xd6,0x0b,0xd7,0x00,0x02,0x0b,0xd7,0x0b,0xd8,0x00,0x02,0x0b,0xd8,0x0b,0xd9,0x00,0x02,0x0b,0xd9, +0x0b,0xda,0x00,0x02,0x0b,0xda,0x0b,0xdb,0x00,0x02,0x0b,0xdb,0x0b,0xdc,0x00,0x02,0x0b,0xdc,0x0b,0xdd,0x00,0x02,0x0b,0xdd,0x0b,0xe1,0x00,0x02,0x0b,0xe1,0x12,0x5c,0x00,0x02,0x12,0x5c,0x12,0x5d,0x00,0x02,0x12,0x5d,0x12,0x5e,0x00,0x02,0x12,0x5e,0x00,0x01,0x00,0x01,0x0a,0x43,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01, +0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x77,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x02,0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61,0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd,0x00,0x11,0x0b,0xe1,0x0b,0xe1,0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x01,0x00,0x1a, +0x00,0x01,0x00,0x08,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xdf,0x00,0x02,0x07,0x39,0x0b,0xdf,0x00,0x02,0x08,0xc4,0x00,0x01,0x00,0x01,0x0b,0x78,0x00,0x01,0x0e,0x76,0x00,0x84,0x01,0x0e,0x01,0x28,0x01,0x42,0x01,0x5c,0x01,0x76,0x01,0x90,0x01,0xaa,0x01,0xc4,0x01,0xde,0x01,0xf8,0x02,0x12,0x02,0x2c,0x02,0x46,0x02,0x60,0x02,0x7a, +0x02,0x94,0x02,0xae,0x02,0xc8,0x02,0xe2,0x02,0xfc,0x03,0x16,0x03,0x30,0x03,0x4a,0x03,0x64,0x03,0x7e,0x03,0x98,0x03,0xb2,0x03,0xcc,0x03,0xe6,0x04,0x00,0x04,0x1a,0x04,0x34,0x04,0x4e,0x04,0x68,0x04,0x82,0x04,0x9c,0x04,0xb6,0x04,0xd0,0x04,0xea,0x05,0x04,0x05,0x1e,0x05,0x38,0x05,0x52,0x05,0x6c,0x05,0x86,0x05,0xa0,0x05,0xba, +0x05,0xd4,0x05,0xee,0x06,0x08,0x06,0x22,0x06,0x3c,0x06,0x56,0x06,0x70,0x06,0x8a,0x06,0xa4,0x06,0xbe,0x06,0xd8,0x06,0xf2,0x07,0x0c,0x07,0x26,0x07,0x40,0x07,0x5a,0x07,0x74,0x07,0x8e,0x07,0xa8,0x07,0xc2,0x07,0xdc,0x07,0xf6,0x08,0x10,0x08,0x2a,0x08,0x44,0x08,0x5e,0x08,0x78,0x08,0x92,0x08,0xac,0x08,0xc6,0x08,0xe0,0x08,0xfa, +0x09,0x14,0x09,0x2e,0x09,0x48,0x09,0x62,0x09,0x7c,0x09,0x96,0x09,0xb0,0x09,0xca,0x09,0xe4,0x09,0xfe,0x0a,0x18,0x0a,0x32,0x0a,0x4c,0x0a,0x66,0x0a,0x80,0x0a,0x9a,0x0a,0xb4,0x0a,0xce,0x0a,0xe8,0x0b,0x02,0x0b,0x1c,0x0b,0x36,0x0b,0x50,0x0b,0x6a,0x0b,0x84,0x0b,0x9e,0x0b,0xb8,0x0b,0xd2,0x0b,0xec,0x0c,0x06,0x0c,0x20,0x0c,0x3a, +0x0c,0x54,0x0c,0x6e,0x0c,0x88,0x0c,0xa2,0x0c,0xbc,0x0c,0xd6,0x0c,0xf0,0x0d,0x0a,0x0d,0x24,0x0d,0x3e,0x0d,0x58,0x0d,0x72,0x0d,0x8c,0x0d,0xa6,0x0d,0xc0,0x0d,0xda,0x0d,0xf4,0x0e,0x0e,0x0e,0x28,0x0e,0x42,0x0e,0x5c,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0a,0x43,0x00,0x02,0x07,0x39,0x0a,0x43,0x00,0x02,0x08,0xc4,0x0a,0x43, +0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x53,0x00,0x02,0x07,0x39,0x0b,0x53,0x00,0x02,0x08,0xc4,0x0b,0x53,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x54,0x00,0x02,0x07,0x39,0x0b,0x54,0x00,0x02,0x08,0xc4,0x0b,0x54,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14, +0x0b,0x55,0x00,0x02,0x07,0x39,0x0b,0x55,0x00,0x02,0x08,0xc4,0x0b,0x55,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x56,0x00,0x02,0x07,0x39,0x0b,0x56,0x00,0x02,0x08,0xc4,0x0b,0x56,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x57,0x00,0x02,0x07,0x39,0x0b,0x57,0x00,0x02,0x08,0xc4, +0x0b,0x57,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x58,0x00,0x02,0x07,0x39,0x0b,0x58,0x00,0x02,0x08,0xc4,0x0b,0x58,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x59,0x00,0x02,0x07,0x39,0x0b,0x59,0x00,0x02,0x08,0xc4,0x0b,0x59,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e, +0x00,0x14,0x0b,0x5a,0x00,0x02,0x07,0x39,0x0b,0x5a,0x00,0x02,0x08,0xc4,0x0b,0x5a,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x5b,0x00,0x02,0x07,0x39,0x0b,0x5b,0x00,0x02,0x08,0xc4,0x0b,0x5b,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x5c,0x00,0x02,0x07,0x39,0x0b,0x5c,0x00,0x02, +0x08,0xc4,0x0b,0x5c,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x5d,0x00,0x02,0x07,0x39,0x0b,0x5d,0x00,0x02,0x08,0xc4,0x0b,0x5d,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x5e,0x00,0x02,0x07,0x39,0x0b,0x5e,0x00,0x02,0x08,0xc4,0x0b,0x5e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08, +0x00,0x0e,0x00,0x14,0x0b,0x5f,0x00,0x02,0x07,0x39,0x0b,0x5f,0x00,0x02,0x08,0xc4,0x0b,0x5f,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x61,0x00,0x02,0x07,0x39,0x0b,0x61,0x00,0x02,0x08,0xc4,0x0b,0x61,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x66,0x00,0x02,0x07,0x39,0x0b,0x66, +0x00,0x02,0x08,0xc4,0x0b,0x66,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x67,0x00,0x02,0x07,0x39,0x0b,0x67,0x00,0x02,0x08,0xc4,0x0b,0x67,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x68,0x00,0x02,0x07,0x39,0x0b,0x68,0x00,0x02,0x08,0xc4,0x0b,0x68,0x00,0x02,0x08,0xc3,0x00,0x03, +0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x69,0x00,0x02,0x07,0x39,0x0b,0x69,0x00,0x02,0x08,0xc4,0x0b,0x69,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6a,0x00,0x02,0x07,0x39,0x0b,0x6a,0x00,0x02,0x08,0xc4,0x0b,0x6a,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6b,0x00,0x02,0x07,0x39, +0x0b,0x6b,0x00,0x02,0x08,0xc4,0x0b,0x6b,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6c,0x00,0x02,0x07,0x39,0x0b,0x6c,0x00,0x02,0x08,0xc4,0x0b,0x6c,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6d,0x00,0x02,0x07,0x39,0x0b,0x6d,0x00,0x02,0x08,0xc4,0x0b,0x6d,0x00,0x02,0x08,0xc3, +0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6e,0x00,0x02,0x07,0x39,0x0b,0x6e,0x00,0x02,0x08,0xc4,0x0b,0x6e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6f,0x00,0x02,0x07,0x39,0x0b,0x6f,0x00,0x02,0x08,0xc4,0x0b,0x6f,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x70,0x00,0x02, +0x07,0x39,0x0b,0x70,0x00,0x02,0x08,0xc4,0x0b,0x70,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x71,0x00,0x02,0x07,0x39,0x0b,0x71,0x00,0x02,0x08,0xc4,0x0b,0x71,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x72,0x00,0x02,0x07,0x39,0x0b,0x72,0x00,0x02,0x08,0xc4,0x0b,0x72,0x00,0x02, +0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x73,0x00,0x02,0x07,0x39,0x0b,0x73,0x00,0x02,0x08,0xc4,0x0b,0x73,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x74,0x00,0x02,0x07,0x39,0x0b,0x74,0x00,0x02,0x08,0xc4,0x0b,0x74,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x75, +0x00,0x02,0x07,0x39,0x0b,0x75,0x00,0x02,0x08,0xc4,0x0b,0x75,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x76,0x00,0x02,0x07,0x39,0x0b,0x76,0x00,0x02,0x08,0xc4,0x0b,0x76,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x77,0x00,0x02,0x07,0x39,0x0b,0x77,0x00,0x02,0x08,0xc4,0x0b,0x77, +0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x78,0x00,0x02,0x07,0x39,0x0b,0x78,0x00,0x02,0x08,0xc4,0x0b,0x78,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x79,0x00,0x02,0x07,0x39,0x0b,0x79,0x00,0x02,0x08,0xc4,0x0b,0x79,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14, +0x0b,0x7a,0x00,0x02,0x07,0x39,0x0b,0x7a,0x00,0x02,0x08,0xc4,0x0b,0x7a,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x7b,0x00,0x02,0x07,0x39,0x0b,0x7b,0x00,0x02,0x08,0xc4,0x0b,0x7b,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x7c,0x00,0x02,0x07,0x39,0x0b,0x7c,0x00,0x02,0x08,0xc4, +0x0b,0x7c,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x7d,0x00,0x02,0x07,0x39,0x0b,0x7d,0x00,0x02,0x08,0xc4,0x0b,0x7d,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x7e,0x00,0x02,0x07,0x39,0x0b,0x7e,0x00,0x02,0x08,0xc4,0x0b,0x7e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e, +0x00,0x14,0x0b,0x7f,0x00,0x02,0x07,0x39,0x0b,0x7f,0x00,0x02,0x08,0xc4,0x0b,0x7f,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x80,0x00,0x02,0x07,0x39,0x0b,0x80,0x00,0x02,0x08,0xc4,0x0b,0x80,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x81,0x00,0x02,0x07,0x39,0x0b,0x81,0x00,0x02, +0x08,0xc4,0x0b,0x81,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x82,0x00,0x02,0x07,0x39,0x0b,0x82,0x00,0x02,0x08,0xc4,0x0b,0x82,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x83,0x00,0x02,0x07,0x39,0x0b,0x83,0x00,0x02,0x08,0xc4,0x0b,0x83,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08, +0x00,0x0e,0x00,0x14,0x0b,0x84,0x00,0x02,0x07,0x39,0x0b,0x84,0x00,0x02,0x08,0xc4,0x0b,0x84,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x85,0x00,0x02,0x07,0x39,0x0b,0x85,0x00,0x02,0x08,0xc4,0x0b,0x85,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x88,0x00,0x02,0x07,0x39,0x0b,0x88, +0x00,0x02,0x08,0xc4,0x0b,0x88,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x89,0x00,0x02,0x07,0x39,0x0b,0x89,0x00,0x02,0x08,0xc4,0x0b,0x89,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8a,0x00,0x02,0x07,0x39,0x0b,0x8a,0x00,0x02,0x08,0xc4,0x0b,0x8a,0x00,0x02,0x08,0xc3,0x00,0x03, +0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8b,0x00,0x02,0x07,0x39,0x0b,0x8b,0x00,0x02,0x08,0xc4,0x0b,0x8b,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8c,0x00,0x02,0x07,0x39,0x0b,0x8c,0x00,0x02,0x08,0xc4,0x0b,0x8c,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8d,0x00,0x02,0x07,0x39, +0x0b,0x8d,0x00,0x02,0x08,0xc4,0x0b,0x8d,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8e,0x00,0x02,0x07,0x39,0x0b,0x8e,0x00,0x02,0x08,0xc4,0x0b,0x8e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8f,0x00,0x02,0x07,0x39,0x0b,0x8f,0x00,0x02,0x08,0xc4,0x0b,0x8f,0x00,0x02,0x08,0xc3, +0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x90,0x00,0x02,0x07,0x39,0x0b,0x90,0x00,0x02,0x08,0xc4,0x0b,0x90,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x91,0x00,0x02,0x07,0x39,0x0b,0x91,0x00,0x02,0x08,0xc4,0x0b,0x91,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x92,0x00,0x02, +0x07,0x39,0x0b,0x92,0x00,0x02,0x08,0xc4,0x0b,0x92,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x93,0x00,0x02,0x07,0x39,0x0b,0x93,0x00,0x02,0x08,0xc4,0x0b,0x93,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x94,0x00,0x02,0x07,0x39,0x0b,0x94,0x00,0x02,0x08,0xc4,0x0b,0x94,0x00,0x02, +0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x95,0x00,0x02,0x07,0x39,0x0b,0x95,0x00,0x02,0x08,0xc4,0x0b,0x95,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x97,0x00,0x02,0x07,0x39,0x0b,0x97,0x00,0x02,0x08,0xc4,0x0b,0x97,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x98, +0x00,0x02,0x07,0x39,0x0b,0x98,0x00,0x02,0x08,0xc4,0x0b,0x98,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x99,0x00,0x02,0x07,0x39,0x0b,0x99,0x00,0x02,0x08,0xc4,0x0b,0x99,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x9a,0x00,0x02,0x07,0x39,0x0b,0x9a,0x00,0x02,0x08,0xc4,0x0b,0x9a, +0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x9d,0x00,0x02,0x07,0x39,0x0b,0x9d,0x00,0x02,0x08,0xc4,0x0b,0x9d,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x9e,0x00,0x02,0x07,0x39,0x0b,0x9e,0x00,0x02,0x08,0xc4,0x0b,0x9e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14, +0x0b,0x9f,0x00,0x02,0x07,0x39,0x0b,0x9f,0x00,0x02,0x08,0xc4,0x0b,0x9f,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa0,0x00,0x02,0x07,0x39,0x0b,0xa0,0x00,0x02,0x08,0xc4,0x0b,0xa0,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa1,0x00,0x02,0x07,0x39,0x0b,0xa1,0x00,0x02,0x08,0xc4, +0x0b,0xa1,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa2,0x00,0x02,0x07,0x39,0x0b,0xa2,0x00,0x02,0x08,0xc4,0x0b,0xa2,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa3,0x00,0x02,0x07,0x39,0x0b,0xa3,0x00,0x02,0x08,0xc4,0x0b,0xa3,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e, +0x00,0x14,0x0b,0xa4,0x00,0x02,0x07,0x39,0x0b,0xa4,0x00,0x02,0x08,0xc4,0x0b,0xa4,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa5,0x00,0x02,0x07,0x39,0x0b,0xa5,0x00,0x02,0x08,0xc4,0x0b,0xa5,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa6,0x00,0x02,0x07,0x39,0x0b,0xa6,0x00,0x02, +0x08,0xc4,0x0b,0xa6,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa7,0x00,0x02,0x07,0x39,0x0b,0xa7,0x00,0x02,0x08,0xc4,0x0b,0xa7,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa8,0x00,0x02,0x07,0x39,0x0b,0xa8,0x00,0x02,0x08,0xc4,0x0b,0xa8,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08, +0x00,0x0e,0x00,0x14,0x0b,0xa9,0x00,0x02,0x07,0x39,0x0b,0xa9,0x00,0x02,0x08,0xc4,0x0b,0xa9,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xaa,0x00,0x02,0x07,0x39,0x0b,0xaa,0x00,0x02,0x08,0xc4,0x0b,0xaa,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xab,0x00,0x02,0x07,0x39,0x0b,0xab, +0x00,0x02,0x08,0xc4,0x0b,0xab,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xac,0x00,0x02,0x07,0x39,0x0b,0xac,0x00,0x02,0x08,0xc4,0x0b,0xac,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xad,0x00,0x02,0x07,0x39,0x0b,0xad,0x00,0x02,0x08,0xc4,0x0b,0xad,0x00,0x02,0x08,0xc3,0x00,0x03, +0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xae,0x00,0x02,0x07,0x39,0x0b,0xae,0x00,0x02,0x08,0xc4,0x0b,0xae,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xaf,0x00,0x02,0x07,0x39,0x0b,0xaf,0x00,0x02,0x08,0xc4,0x0b,0xaf,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb0,0x00,0x02,0x07,0x39, +0x0b,0xb0,0x00,0x02,0x08,0xc4,0x0b,0xb0,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb1,0x00,0x02,0x07,0x39,0x0b,0xb1,0x00,0x02,0x08,0xc4,0x0b,0xb1,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb2,0x00,0x02,0x07,0x39,0x0b,0xb2,0x00,0x02,0x08,0xc4,0x0b,0xb2,0x00,0x02,0x08,0xc3, +0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb3,0x00,0x02,0x07,0x39,0x0b,0xb3,0x00,0x02,0x08,0xc4,0x0b,0xb3,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb4,0x00,0x02,0x07,0x39,0x0b,0xb4,0x00,0x02,0x08,0xc4,0x0b,0xb4,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb5,0x00,0x02, +0x07,0x39,0x0b,0xb5,0x00,0x02,0x08,0xc4,0x0b,0xb5,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb6,0x00,0x02,0x07,0x39,0x0b,0xb6,0x00,0x02,0x08,0xc4,0x0b,0xb6,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb7,0x00,0x02,0x07,0x39,0x0b,0xb7,0x00,0x02,0x08,0xc4,0x0b,0xb7,0x00,0x02, +0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb9,0x00,0x02,0x07,0x39,0x0b,0xb9,0x00,0x02,0x08,0xc4,0x0b,0xb9,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xbf,0x00,0x02,0x07,0x39,0x0b,0xbf,0x00,0x02,0x08,0xc4,0x0b,0xbf,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc0, +0x00,0x02,0x07,0x39,0x0b,0xc0,0x00,0x02,0x08,0xc4,0x0b,0xc0,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc1,0x00,0x02,0x07,0x39,0x0b,0xc1,0x00,0x02,0x08,0xc4,0x0b,0xc1,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc2,0x00,0x02,0x07,0x39,0x0b,0xc2,0x00,0x02,0x08,0xc4,0x0b,0xc2, +0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc3,0x00,0x02,0x07,0x39,0x0b,0xc3,0x00,0x02,0x08,0xc4,0x0b,0xc3,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc4,0x00,0x02,0x07,0x39,0x0b,0xc4,0x00,0x02,0x08,0xc4,0x0b,0xc4,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14, +0x0b,0xc5,0x00,0x02,0x07,0x39,0x0b,0xc5,0x00,0x02,0x08,0xc4,0x0b,0xc5,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc6,0x00,0x02,0x07,0x39,0x0b,0xc6,0x00,0x02,0x08,0xc4,0x0b,0xc6,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc7,0x00,0x02,0x07,0x39,0x0b,0xc7,0x00,0x02,0x08,0xc4, +0x0b,0xc7,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc8,0x00,0x02,0x07,0x39,0x0b,0xc8,0x00,0x02,0x08,0xc4,0x0b,0xc8,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc9,0x00,0x02,0x07,0x39,0x0b,0xc9,0x00,0x02,0x08,0xc4,0x0b,0xc9,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e, +0x00,0x14,0x0b,0xca,0x00,0x02,0x07,0x39,0x0b,0xca,0x00,0x02,0x08,0xc4,0x0b,0xca,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xcb,0x00,0x02,0x07,0x39,0x0b,0xcb,0x00,0x02,0x08,0xc4,0x0b,0xcb,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xcc,0x00,0x02,0x07,0x39,0x0b,0xcc,0x00,0x02, +0x08,0xc4,0x0b,0xcc,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xcd,0x00,0x02,0x07,0x39,0x0b,0xcd,0x00,0x02,0x08,0xc4,0x0b,0xcd,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xce,0x00,0x02,0x07,0x39,0x0b,0xce,0x00,0x02,0x08,0xc4,0x0b,0xce,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08, +0x00,0x0e,0x00,0x14,0x0b,0xcf,0x00,0x02,0x07,0x39,0x0b,0xcf,0x00,0x02,0x08,0xc4,0x0b,0xcf,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd0,0x00,0x02,0x07,0x39,0x0b,0xd0,0x00,0x02,0x08,0xc4,0x0b,0xd0,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd1,0x00,0x02,0x07,0x39,0x0b,0xd1, +0x00,0x02,0x08,0xc4,0x0b,0xd1,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd2,0x00,0x02,0x07,0x39,0x0b,0xd2,0x00,0x02,0x08,0xc4,0x0b,0xd2,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd3,0x00,0x02,0x07,0x39,0x0b,0xd3,0x00,0x02,0x08,0xc4,0x0b,0xd3,0x00,0x02,0x08,0xc3,0x00,0x03, +0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd4,0x00,0x02,0x07,0x39,0x0b,0xd4,0x00,0x02,0x08,0xc4,0x0b,0xd4,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd5,0x00,0x02,0x07,0x39,0x0b,0xd5,0x00,0x02,0x08,0xc4,0x0b,0xd5,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd6,0x00,0x02,0x07,0x39, +0x0b,0xd6,0x00,0x02,0x08,0xc4,0x0b,0xd6,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd7,0x00,0x02,0x07,0x39,0x0b,0xd7,0x00,0x02,0x08,0xc4,0x0b,0xd7,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd8,0x00,0x02,0x07,0x39,0x0b,0xd8,0x00,0x02,0x08,0xc4,0x0b,0xd8,0x00,0x02,0x08,0xc3, +0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd9,0x00,0x02,0x07,0x39,0x0b,0xd9,0x00,0x02,0x08,0xc4,0x0b,0xd9,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xda,0x00,0x02,0x07,0x39,0x0b,0xda,0x00,0x02,0x08,0xc4,0x0b,0xda,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xdb,0x00,0x02, +0x07,0x39,0x0b,0xdb,0x00,0x02,0x08,0xc4,0x0b,0xdb,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xdc,0x00,0x02,0x07,0x39,0x0b,0xdc,0x00,0x02,0x08,0xc4,0x0b,0xdc,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xdd,0x00,0x02,0x07,0x39,0x0b,0xdd,0x00,0x02,0x08,0xc4,0x0b,0xdd,0x00,0x02, +0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xe1,0x00,0x02,0x07,0x39,0x0b,0xe1,0x00,0x02,0x08,0xc4,0x0b,0xe1,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x5c,0x00,0x02,0x07,0x39,0x12,0x5c,0x00,0x02,0x08,0xc4,0x12,0x5c,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x5d, +0x00,0x02,0x07,0x39,0x12,0x5d,0x00,0x02,0x08,0xc4,0x12,0x5d,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x5e,0x00,0x02,0x07,0x39,0x12,0x5e,0x00,0x02,0x08,0xc4,0x12,0x5e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x5f,0x00,0x02,0x07,0x39,0x12,0x5f,0x00,0x02,0x08,0xc4,0x12,0x5f, +0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x60,0x00,0x02,0x07,0x39,0x12,0x60,0x00,0x02,0x08,0xc4,0x12,0x60,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x61,0x00,0x02,0x07,0x39,0x12,0x61,0x00,0x02,0x08,0xc4,0x12,0x61,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14, +0x12,0x62,0x00,0x02,0x07,0x39,0x12,0x62,0x00,0x02,0x08,0xc4,0x12,0x62,0x00,0x02,0x08,0xc3,0x00,0x02,0x00,0x0b,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x53,0x0b,0x5f,0x00,0x01,0x0b,0x61,0x0b,0x61,0x00,0x0e,0x0b,0x66,0x0b,0x85,0x00,0x0f,0x0b,0x88,0x0b,0x95,0x00,0x2f,0x0b,0x97,0x0b,0x9a,0x00,0x3d,0x0b,0x9d,0x0b,0xb7,0x00,0x41, +0x0b,0xb9,0x0b,0xb9,0x00,0x5c,0x0b,0xbf,0x0b,0xdd,0x00,0x5d,0x0b,0xe1,0x0b,0xe1,0x00,0x7c,0x12,0x5c,0x12,0x62,0x00,0x7d,0x00,0x01,0x00,0xa2,0x00,0x0d,0x00,0x20,0x00,0x2a,0x00,0x34,0x00,0x3e,0x00,0x48,0x00,0x52,0x00,0x5c,0x00,0x66,0x00,0x70,0x00,0x7a,0x00,0x84,0x00,0x8e,0x00,0x98,0x00,0x01,0x00,0x04,0x0b,0x53,0x00,0x02, +0x0b,0x53,0x00,0x01,0x00,0x04,0x0b,0x54,0x00,0x02,0x0b,0x54,0x00,0x01,0x00,0x04,0x0b,0x55,0x00,0x02,0x0b,0x55,0x00,0x01,0x00,0x04,0x0b,0x56,0x00,0x02,0x0b,0x56,0x00,0x01,0x00,0x04,0x0b,0x57,0x00,0x02,0x0b,0x57,0x00,0x01,0x00,0x04,0x0b,0x58,0x00,0x02,0x0b,0x58,0x00,0x01,0x00,0x04,0x0b,0x59,0x00,0x02,0x0b,0x59,0x00,0x01, +0x00,0x04,0x0b,0x5a,0x00,0x02,0x0b,0x5a,0x00,0x01,0x00,0x04,0x0b,0x5b,0x00,0x02,0x0b,0x5b,0x00,0x01,0x00,0x04,0x0b,0x5c,0x00,0x02,0x0b,0x5c,0x00,0x01,0x00,0x04,0x0b,0x5d,0x00,0x02,0x0b,0x5d,0x00,0x01,0x00,0x04,0x0b,0xb9,0x00,0x02,0x0b,0xb9,0x00,0x01,0x00,0x04,0x0b,0xde,0x00,0x02,0x0b,0xde,0x00,0x02,0x00,0x03,0x0b,0x53, +0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b,0x0b,0xde,0x0b,0xde,0x00,0x0c,0x00,0x01,0x01,0x5a,0x00,0x16,0x00,0x32,0x00,0x3c,0x00,0x4e,0x00,0x60,0x00,0x72,0x00,0x84,0x00,0x8e,0x00,0x98,0x00,0xa2,0x00,0xac,0x00,0xb6,0x00,0xc8,0x00,0xd2,0x00,0xdc,0x00,0xe6,0x00,0xf0,0x00,0xfa,0x01,0x0c,0x01,0x16,0x01,0x20,0x01,0x2a, +0x01,0x48,0x00,0x01,0x00,0x04,0x0b,0x9d,0x00,0x02,0x0b,0x5e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0x9e,0x00,0x02,0x0b,0x5e,0x0b,0xb4,0x00,0x02,0x0b,0x61,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0x9f,0x00,0x02,0x0b,0x5e,0x12,0x5f,0x00,0x02,0x0b,0x61,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xa0,0x00,0x02,0x0b,0x5e,0x12,0x60,0x00,0x02, +0x0b,0x61,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xa1,0x00,0x02,0x0b,0x5e,0x12,0x61,0x00,0x02,0x0b,0x61,0x00,0x01,0x00,0x04,0x0b,0xa2,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xa3,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xa4,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xa5,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04, +0x0b,0xa6,0x00,0x02,0x0b,0x5e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xa7,0x00,0x02,0x0b,0x5e,0x0b,0xb5,0x00,0x02,0x0b,0x61,0x00,0x01,0x00,0x04,0x0b,0xa8,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xa9,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xaa,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xab,0x00,0x02,0x0b,0x5e, +0x00,0x01,0x00,0x04,0x0b,0xac,0x00,0x02,0x0b,0x5e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xad,0x00,0x02,0x0b,0x5e,0x0b,0xb6,0x00,0x02,0x0b,0x61,0x00,0x01,0x00,0x04,0x0b,0xae,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xaf,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xb0,0x00,0x02,0x0b,0x5e,0x00,0x03,0x00,0x08,0x00,0x0e, +0x00,0x16,0x0b,0xb1,0x00,0x02,0x0b,0x5e,0x0b,0x99,0x00,0x03,0x0b,0x63,0x0b,0x5e,0x0b,0x9a,0x00,0x03,0x0b,0x64,0x0b,0x5e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xb2,0x00,0x02,0x0b,0x5e,0x12,0x62,0x00,0x02,0x0b,0x61,0x00,0x02,0x00,0x06,0x0b,0x68,0x0b,0x6e,0x00,0x00,0x0b,0x70,0x0b,0x74,0x00,0x07,0x0b,0x76,0x0b,0x76,0x00,0x0c, +0x0b,0x78,0x0b,0x79,0x00,0x0d,0x0b,0x7b,0x0b,0x7c,0x00,0x0f,0x0b,0x7e,0x0b,0x82,0x00,0x11,0x00,0x01,0x00,0x2e,0x00,0x02,0x00,0x0a,0x00,0x1c,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0x97,0x00,0x02,0x0b,0x63,0x0b,0x98,0x00,0x02,0x0b,0x64,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0x99,0x00,0x02,0x0b,0x63,0x0b,0x9a,0x00,0x02,0x0b,0x64, +0x00,0x01,0x00,0x02,0x0b,0x81,0x0b,0xb1,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x0b,0xb3,0x00,0x02,0x0b,0x5c,0x00,0x01,0x00,0x01,0x0b,0x6d,0x00,0x02,0x00,0x08,0x00,0x01,0x0b,0x5c,0x00,0x01,0x00,0x01,0x0b,0xde,0x00,0x03,0x00,0x00,0x00,0x02,0x02,0x38,0x02,0x40,0x00,0x01,0x02,0x46,0x00,0x01,0x00,0x00, +0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x02,0x24,0x02,0x2c,0x00,0x02,0x02,0x6c,0x02,0x32,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x02,0x0e,0x02,0x16,0x00,0x03,0x02,0x56,0x02,0x56,0x02,0x1c,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0xf6,0x01,0xfe,0x00,0x04,0x02,0x3e,0x02,0x3e, +0x02,0x3e,0x02,0x04,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0xdc,0x01,0xe4,0x00,0x02,0x02,0x46,0x02,0x4c,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0xc6,0x01,0xce,0x00,0x03,0x02,0x0e,0x02,0x30,0x02,0x36,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0xae, +0x01,0xb6,0x00,0x04,0x01,0xf6,0x01,0xf6,0x02,0x18,0x02,0x1e,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x94,0x01,0x9c,0x00,0x05,0x01,0xdc,0x01,0xdc,0x01,0xdc,0x01,0xfe,0x02,0x04,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x78,0x01,0x80,0x00,0x01,0x01,0xf8,0x00,0x01,0x00,0x00, +0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x64,0x01,0x6c,0x00,0x02,0x01,0xac,0x01,0xe4,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x4e,0x01,0x56,0x00,0x03,0x01,0x96,0x01,0x96,0x01,0xce,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x36,0x01,0x3e,0x00,0x04,0x01,0x7e,0x01,0x7e, +0x01,0x7e,0x01,0xb6,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x1c,0x01,0x24,0x00,0x02,0x01,0x86,0x01,0xa2,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x06,0x01,0x0e,0x00,0x02,0x01,0x70,0x01,0x92,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0xf0,0x00,0xf8, +0x00,0x03,0x01,0x38,0x01,0x5a,0x01,0x76,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0xd8,0x00,0xe0,0x00,0x03,0x01,0x20,0x01,0x42,0x01,0x64,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0xc0,0x00,0xc8,0x00,0x04,0x01,0x08,0x01,0x08,0x01,0x2a,0x01,0x46,0x00,0x01,0x00,0x00,0x00,0x78, +0x00,0x03,0x00,0x00,0x00,0x02,0x00,0xa6,0x00,0xae,0x00,0x04,0x00,0xee,0x00,0xee,0x01,0x10,0x01,0x32,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x8c,0x00,0x94,0x00,0x05,0x00,0xd4,0x00,0xd4,0x00,0xd4,0x00,0xf6,0x01,0x12,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x70,0x00,0x78, +0x00,0x05,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xda,0x00,0xfc,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x54,0x00,0x5c,0x00,0x01,0x00,0xe6,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x40,0x00,0x48,0x00,0x02,0x00,0xd8,0x00,0xd2,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00, +0x00,0x02,0x00,0x2a,0x00,0x32,0x00,0x01,0x00,0xf0,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x16,0x00,0x1e,0x00,0x02,0x00,0xae,0x00,0xdc,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x01,0x00,0x02,0x0b,0x74,0x0b,0xa8,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x09,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x69, +0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1e,0x0b,0x97,0x0b,0x9a,0x00,0x2c,0x0b,0x9d,0x0b,0xa6,0x00,0x30,0x0b,0xa8,0x0b,0xb2,0x00,0x3a,0x0b,0xb4,0x0b,0xb7,0x00,0x45,0x0b,0xe0,0x0b,0xe0,0x00,0x49,0x12,0x5f,0x12,0x62,0x00,0x4a,0x00,0x02,0x00,0x05,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf, +0x0b,0xdd,0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x02,0x00,0x02,0x0b,0x53,0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x9d,0x00,0x01,0x00,0x01,0x0b,0xb3,0x00,0x01,0x00,0x01,0x0b,0xa2,0x00,0x01,0x00,0x01,0x0b,0xc7,0x00,0x02, +0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61,0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd,0x00,0x11,0x0b,0xe1,0x0b,0xe1,0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x01,0x00,0x01,0x0b,0xdc,0x00,0x03,0x00,0x02,0x00,0x16,0x00,0x1c,0x00,0x02,0x00,0x22,0x00,0x28, +0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x79,0x00,0x01,0x00,0x01,0x0b,0x53,0x00,0x01,0x00,0x01,0x0b,0x7e,0x00,0x01,0x00,0x01,0x0a,0x43,0x00,0x01,0x00,0x01,0x0b,0x57,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x08,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0x88,0x00,0x02,0x0b,0x53,0x0b,0x89,0x00,0x02,0x0b,0x5b,0x00,0x01,0x00,0x01,0x0b,0x72, +0x00,0x03,0x00,0x02,0x01,0xcc,0x01,0xe8,0x00,0x01,0x01,0xee,0x00,0x02,0x02,0x1c,0x02,0x56,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0xb4,0x01,0xd0,0x00,0x01,0x01,0xd6,0x00,0x01,0x02,0x54,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x9e,0x02,0x66,0x00,0x01,0x01,0xc0,0x00,0x02,0x01,0xee,0x02,0x28, +0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x86,0x02,0x4e,0x00,0x01,0x01,0xa8,0x00,0x01,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x70,0x02,0x3e,0x00,0x01,0x01,0x92,0x00,0x02,0x01,0xc0,0x01,0xfa,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x58,0x02,0x26,0x00,0x01,0x01,0x7a, +0x00,0x01,0x01,0xf8,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x42,0x02,0x16,0x00,0x01,0x01,0x64,0x00,0x02,0x01,0x92,0x01,0xcc,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x2a,0x01,0xfe,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0xca,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x14,0x01,0xee, +0x00,0x01,0x01,0x36,0x00,0x02,0x01,0x64,0x01,0x9e,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0xfc,0x01,0xd6,0x00,0x01,0x01,0x1e,0x00,0x01,0x01,0x9c,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0xe6,0x01,0xc6,0x00,0x01,0x01,0x08,0x00,0x02,0x01,0x36,0x01,0x70,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03, +0x00,0x02,0x00,0xce,0x01,0xae,0x00,0x01,0x00,0xf0,0x00,0x01,0x01,0x6e,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0xb8,0x01,0x9e,0x00,0x01,0x00,0xda,0x00,0x02,0x01,0x08,0x01,0x42,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0xa0,0x01,0x86,0x00,0x01,0x00,0xc2,0x00,0x01,0x01,0x40,0x00,0x01,0x00,0x00, +0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x8a,0x01,0x76,0x00,0x01,0x00,0xac,0x00,0x02,0x00,0xda,0x01,0x14,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x72,0x01,0x5e,0x00,0x01,0x00,0x94,0x00,0x01,0x01,0x12,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x5c,0x01,0x4e,0x00,0x01,0x00,0x7e,0x00,0x02,0x00,0xac, +0x00,0xe6,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x44,0x01,0x36,0x00,0x01,0x00,0x66,0x00,0x01,0x00,0xe4,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x2e,0x01,0x26,0x00,0x01,0x00,0x50,0x00,0x02,0x00,0x7e,0x00,0xb8,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x16,0x01,0x0e,0x00,0x01, +0x00,0x38,0x00,0x01,0x00,0xb6,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x02,0x00,0x04,0x0b,0x54,0x0b,0x56,0x00,0x00,0x0b,0x58,0x0b,0x5b,0x00,0x03,0x0b,0x5d,0x0b,0x5d,0x00,0x07,0x0b,0xb9,0x0b,0xb9,0x00,0x08,0x00,0x01,0x00,0x01,0x0b,0x6a,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf, +0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x02,0x00,0x09,0x0b,0x6a,0x0b,0x6b,0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x02,0x0b,0x71,0x0b,0x71,0x00,0x04,0x0b,0x7d,0x0b,0x7d,0x00,0x05,0x0b,0x7f,0x0b,0x80,0x00,0x06,0x0b,0x9f, +0x0b,0xa0,0x00,0x08,0x0b,0xa2,0x0b,0xa3,0x00,0x0a,0x0b,0xa5,0x0b,0xa5,0x00,0x0c,0x0b,0xaf,0x0b,0xb0,0x00,0x0d,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x00,0x02,0x00,0x06,0x0b,0x72,0x0b,0x72,0x00,0x00,0x0b,0x77,0x0b,0x77,0x00,0x01,0x0b,0x7b,0x0b,0x7b, +0x00,0x02,0x0b,0x88,0x0b,0x89,0x00,0x03,0x0b,0xa6,0x0b,0xa6,0x00,0x05,0x0b,0xac,0x0b,0xac,0x00,0x06,0x00,0x01,0x00,0x01,0x0b,0x9f,0x00,0x01,0x00,0x01,0x0b,0x6d,0x00,0x01,0x00,0x01,0x0b,0xa2,0x00,0x01,0x00,0x01,0x0b,0x71,0x00,0x01,0x00,0x01,0x0b,0xa5,0x00,0x01,0x00,0x01,0x0b,0x78,0x00,0x01,0x00,0x01,0x0b,0xaa,0x00,0x01, +0x00,0x01,0x0b,0x6e,0x00,0x01,0x00,0x01,0x0b,0xa3,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x14,0x00,0x01,0x00,0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7b,0x00,0x02,0x00,0x0a,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0x5f,0x0b,0x5f,0x00,0x0a,0x0b,0x67,0x0b,0x67,0x00,0x0b,0x0b,0xb9,0x0b,0xb9,0x00,0x0c, +0x0b,0xbf,0x0b,0xbf,0x00,0x0d,0x0b,0xc4,0x0b,0xc4,0x00,0x0e,0x0b,0xc9,0x0b,0xc9,0x00,0x0f,0x0b,0xd0,0x0b,0xd5,0x00,0x10,0x0b,0xd8,0x0b,0xd8,0x00,0x16,0x00,0x02,0x00,0x09,0x0b,0x53,0x0b,0x53,0x00,0x00,0x0b,0x5a,0x0b,0x5a,0x00,0x01,0x0b,0x5f,0x0b,0x5f,0x00,0x02,0x0b,0x67,0x0b,0x67,0x00,0x03,0x0b,0xbf,0x0b,0xbf,0x00,0x04, +0x0b,0xc4,0x0b,0xc4,0x00,0x05,0x0b,0xc9,0x0b,0xc9,0x00,0x06,0x0b,0xd0,0x0b,0xd5,0x00,0x07,0x0b,0xd8,0x0b,0xd8,0x00,0x0d,0x00,0x01,0x00,0x36,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x26,0x00,0x2e,0x00,0x01,0x00,0x04,0x0b,0x67,0x00,0x01,0x00,0x02,0x00,0x06,0x00,0x0c,0x12,0x5d,0x00,0x02,0x04,0x67,0x12,0x5c,0x00,0x01,0x00,0x01, +0x00,0x04,0x12,0x5d,0x00,0x01,0x00,0x01,0x00,0x04,0x12,0x5c,0x00,0x01,0x00,0x02,0x00,0x03,0x02,0x45,0x02,0x45,0x00,0x00,0x04,0x67,0x04,0x68,0x00,0x01,0x0b,0x66,0x0b,0x66,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xf6,0x00,0x04,0x01,0x3c,0x01,0x76,0x01,0x76,0x01,0xb6,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00, +0x00,0x01,0x00,0xde,0x00,0x04,0x01,0x24,0x01,0x5e,0x01,0x5e,0x01,0xa4,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xc6,0x00,0x03,0x01,0x0c,0x01,0x92,0x01,0x86,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xb0,0x00,0x03,0x00,0xf6,0x01,0x7c,0x01,0x76,0x00,0x01,0x00,0x00,0x00,0x7c, +0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x9a,0x00,0x03,0x00,0xe0,0x01,0x6c,0x01,0x5a,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x84,0x00,0x03,0x00,0xca,0x01,0x56,0x01,0x4a,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x6e,0x00,0x03,0x00,0xb4,0x01,0x46,0x01,0x2e,0x00,0x01,0x00,0x00, +0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x58,0x00,0x03,0x00,0x9e,0x01,0x30,0x01,0x1e,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x03,0x00,0x88,0x01,0x20,0x01,0x26,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2c,0x00,0x03,0x00,0x72,0x01,0x0a,0x01,0x16,0x00,0x01, +0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x16,0x00,0x03,0x00,0x5c,0x00,0xf4,0x01,0x06,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x02,0x00,0x0b,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x53,0x0b,0x5f,0x00,0x01,0x0b,0x61,0x0b,0x61,0x00,0x0e,0x0b,0x66,0x0b,0x85,0x00,0x0f,0x0b,0x88,0x0b,0x95,0x00,0x2f,0x0b,0x97,0x0b,0x9a, +0x00,0x3d,0x0b,0x9d,0x0b,0xb7,0x00,0x41,0x0b,0xb9,0x0b,0xb9,0x00,0x5c,0x0b,0xbf,0x0b,0xdd,0x00,0x5d,0x0b,0xe1,0x0b,0xe1,0x00,0x7c,0x12,0x5c,0x12,0x62,0x00,0x7d,0x00,0x02,0x00,0x09,0x0b,0x6a,0x0b,0x6a,0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x01,0x0b,0x71,0x0b,0x71,0x00,0x03,0x0b,0x77,0x0b,0x78,0x00,0x04,0x0b,0x9f,0x0b,0x9f, +0x00,0x06,0x0b,0xa2,0x0b,0xa3,0x00,0x07,0x0b,0xa5,0x0b,0xa5,0x00,0x09,0x0b,0xaa,0x0b,0xaa,0x00,0x0a,0x12,0x5f,0x12,0x5f,0x00,0x0b,0x00,0x02,0x00,0x0a,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0x5f,0x0b,0x5f,0x00,0x0a,0x0b,0x67,0x0b,0x67,0x00,0x0b,0x0b,0xb9,0x0b,0xb9,0x00,0x0c,0x0b,0xbf,0x0b,0xbf, +0x00,0x0d,0x0b,0xc4,0x0b,0xc4,0x00,0x0e,0x0b,0xc9,0x0b,0xc9,0x00,0x0f,0x0b,0xd0,0x0b,0xd5,0x00,0x10,0x0b,0xd8,0x0b,0xd8,0x00,0x16,0x00,0x01,0x00,0x01,0x0b,0xdb,0x00,0x01,0x00,0x01,0x0b,0xc8,0x00,0x01,0x00,0x01,0x12,0x5b,0x00,0x01,0x00,0x01,0x12,0x59,0x00,0x01,0x00,0x01,0x12,0x5a,0x00,0x01,0x00,0x01,0x0b,0x5f,0x00,0x01, +0x00,0x01,0x0b,0x55,0x00,0x01,0x00,0x01,0x0b,0x54,0x00,0x01,0x00,0x01,0x0b,0x56,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x2a,0x00,0x30,0x00,0x36,0x00,0x3c,0x00,0x01,0x00,0x42,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x16,0x00,0x1c,0x00,0x22,0x00,0x28,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7d,0x00,0x01,0x00,0x01,0x08,0xef, +0x00,0x01,0x00,0x01,0x0e,0x2d,0x00,0x01,0x00,0x01,0x0e,0x58,0x00,0x01,0x00,0x01,0x0e,0x2f,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14, +0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a, +0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x12,0x00,0x62,0x00,0x68,0x00,0x6e,0x00,0x76,0x00,0x7c,0x00,0x82,0x00,0x68,0x00,0x88,0x00,0x76,0x00,0x90,0x00,0x68,0x00,0x96,0x00,0x9c,0x00,0x76,0x00,0xa2,0x00,0xa8,0x00,0x68,0x00,0xae,0x00,0x01,0x00,0xb4,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x12,0x00,0x32, +0x00,0x38,0x00,0x3e,0x00,0x46,0x00,0x4c,0x00,0x52,0x00,0x38,0x00,0x58,0x00,0x46,0x00,0x60,0x00,0x38,0x00,0x66,0x00,0x6c,0x00,0x46,0x00,0x72,0x00,0x78,0x00,0x38,0x00,0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7e,0x00,0x01,0x00,0x01,0x08,0xd6,0x00,0x01,0x00,0x01,0x09,0x3f,0x00,0x01,0x00,0x02,0x08,0xf7,0x09,0x4b,0x00,0x01, +0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x09,0x0d,0x00,0x01,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x02,0x08,0xf3,0x09,0x60,0x00,0x01,0x00,0x01,0x08,0xe2,0x00,0x01,0x00,0x01,0x0e,0x61,0x00,0x01,0x00,0x01,0x08,0xf3,0x00,0x01,0x00,0x01,0x09,0x29,0x00,0x01,0x00,0x01,0x08,0xd4,0x00,0x01,0x00,0x01,0x0e,0x57,0x00,0x02,0x00,0x13, +0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69, +0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x0f,0x00,0x56,0x00,0x5c,0x00,0x62,0x00,0x6a, +0x00,0x70,0x00,0x6a,0x00,0x76,0x00,0x5c,0x00,0x7c,0x00,0x82,0x00,0x6a,0x00,0x8a,0x00,0x90,0x00,0x5c,0x00,0x96,0x00,0x01,0x00,0x9c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x0f,0x00,0x2c,0x00,0x32,0x00,0x38,0x00,0x40,0x00,0x46,0x00,0x40,0x00,0x4c,0x00,0x32,0x00,0x52,0x00,0x58,0x00,0x40,0x00,0x60,0x00,0x66,0x00,0x32,0x00,0x6c, +0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7f,0x00,0x01,0x00,0x01,0x08,0xd6,0x00,0x01,0x00,0x01,0x09,0x3f,0x00,0x01,0x00,0x02,0x08,0xf7,0x09,0x4b,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x0a,0x63,0x00,0x01,0x00,0x01,0x08,0xe2,0x00,0x01,0x00,0x01,0x0e,0x61,0x00,0x01,0x00,0x02,0x08,0xf3,0x09,0x60,0x00,0x01,0x00,0x01, +0x09,0x29,0x00,0x01,0x00,0x01,0x08,0xd4,0x00,0x01,0x00,0x01,0x0e,0x57,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f, +0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c, +0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x08,0x00,0x3a,0x00,0x40,0x00,0x46,0x00,0x3a,0x00,0x4c,0x00,0x52,0x00,0x58,0x00,0x5e,0x00,0x01,0x00,0x66,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x08,0x00,0x1e,0x00,0x24,0x00,0x2a,0x00,0x1e,0x00,0x30,0x00,0x36,0x00,0x3c,0x00,0x42,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x01, +0x00,0x01,0x08,0xce,0x00,0x01,0x00,0x01,0x09,0x59,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x09,0x3f,0x00,0x01,0x00,0x01,0x08,0xc7,0x00,0x01,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x02,0x08,0xf3,0x09,0x60,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09, +0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c, +0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x07,0x00,0x36,0x00,0x3c,0x00,0x42,0x00,0x36,0x00,0x48,0x00,0x4e,0x00,0x54,0x00,0x01,0x00,0x5c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x07, +0x00,0x1c,0x00,0x22,0x00,0x28,0x00,0x1c,0x00,0x2e,0x00,0x34,0x00,0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x81,0x00,0x01,0x00,0x01,0x08,0xce,0x00,0x01,0x00,0x01,0x09,0x59,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x08,0xfb,0x00,0x01,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x02,0x08,0xf3,0x09,0x60,0x00,0x02,0x00,0x13, +0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69, +0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x16,0x00,0x72,0x00,0x78,0x00,0x7e,0x00,0x84, +0x00,0x8a,0x00,0x90,0x00,0x96,0x00,0x9c,0x00,0x84,0x00,0x8a,0x00,0x90,0x00,0xa2,0x00,0xa8,0x00,0xae,0x00,0xb4,0x00,0x84,0x00,0x8a,0x00,0x90,0x00,0xa2,0x00,0xa8,0x00,0xba,0x00,0x7e,0x00,0x01,0x00,0xc0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x16,0x00,0x3a,0x00,0x40,0x00,0x46,0x00,0x4c,0x00,0x52,0x00,0x58,0x00,0x5e,0x00,0x64, +0x00,0x4c,0x00,0x52,0x00,0x58,0x00,0x6a,0x00,0x70,0x00,0x76,0x00,0x7c,0x00,0x4c,0x00,0x52,0x00,0x58,0x00,0x6a,0x00,0x70,0x00,0x82,0x00,0x46,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x82,0x00,0x01,0x00,0x01,0x08,0xcb,0x00,0x01,0x00,0x01,0x0e,0x32,0x00,0x01,0x00,0x01,0x0e,0x57,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01, +0x09,0x0d,0x00,0x01,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x01,0x09,0x3f,0x00,0x01,0x00,0x01,0x08,0xf3,0x00,0x01,0x00,0x01,0x0b,0x0c,0x00,0x01,0x00,0x01,0x08,0xd0,0x00,0x01,0x00,0x01,0x0e,0x58,0x00,0x01,0x00,0x01,0x0e,0x59,0x00,0x01,0x00,0x01,0x0e,0x61,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37, +0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a, +0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x13,0x00,0x66,0x00,0x6c,0x00,0x72,0x00,0x78,0x00,0x7e,0x00,0x78,0x00,0x84,0x00,0x8a,0x00,0x90, +0x00,0x96,0x00,0x9c,0x00,0xa2,0x00,0x78,0x00,0x84,0x00,0x8a,0x00,0x90,0x00,0x96,0x00,0xa8,0x00,0x72,0x00,0x01,0x00,0xae,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x13,0x00,0x34,0x00,0x3a,0x00,0x40,0x00,0x46,0x00,0x4c,0x00,0x46,0x00,0x52,0x00,0x58,0x00,0x5e,0x00,0x64,0x00,0x6a,0x00,0x70,0x00,0x46,0x00,0x52,0x00,0x58,0x00,0x5e, +0x00,0x64,0x00,0x76,0x00,0x40,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x83,0x00,0x01,0x00,0x01,0x08,0xcb,0x00,0x01,0x00,0x01,0x0e,0x32,0x00,0x01,0x00,0x01,0x0e,0x57,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x0a,0x63,0x00,0x01,0x00,0x01,0x09,0x0d,0x00,0x01,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x01,0x0b,0x0c,0x00,0x01, +0x00,0x01,0x08,0xd0,0x00,0x01,0x00,0x01,0x0e,0x58,0x00,0x01,0x00,0x01,0x0e,0x59,0x00,0x01,0x00,0x01,0x0e,0x61,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16, +0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f, +0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x02,0x00,0x08,0x00,0x01,0x0e,0x5c,0x00,0x01,0x00,0x01,0x09,0x28,0x00,0x02,0x00,0x32,0x00,0x16,0x14,0x88,0x14,0x89,0x14,0x8a,0x14,0x8b,0x14,0x8c,0x14,0x8d,0x14,0x8e,0x14,0x8f,0x14,0x90,0x14,0x91,0x14,0x88,0x14,0x89,0x14,0x8a,0x14,0x8b,0x14,0x92,0x14,0x93, +0x14,0x94,0x14,0x8f,0x14,0x90,0x14,0x91,0x14,0x95,0x14,0x96,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x02,0x00,0x32,0x00,0x16,0x14,0x9e,0x14,0x9f,0x14,0xa0,0x14,0xa1,0x14,0xa2,0x14,0xa3,0x14,0xa4,0x14,0xa5,0x14,0xa6,0x14,0xa7,0x14,0x9e,0x14,0x9f, +0x14,0xa0,0x14,0xa1,0x14,0xa8,0x14,0xa9,0x14,0xaa,0x14,0xa5,0x14,0xa6,0x14,0xa7,0x14,0xab,0x14,0xac,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x01,0x00,0xb6,0x00,0x16,0x00,0x32,0x00,0x38,0x00,0x3e,0x00,0x44,0x00,0x4a,0x00,0x50,0x00,0x56,0x00,0x5c, +0x00,0x62,0x00,0x68,0x00,0x6e,0x00,0x74,0x00,0x7a,0x00,0x80,0x00,0x86,0x00,0x8c,0x00,0x92,0x00,0x98,0x00,0x9e,0x00,0xa4,0x00,0xaa,0x00,0xb0,0x00,0x02,0x14,0x9a,0x14,0x9e,0x00,0x02,0x14,0x9a,0x14,0x9f,0x00,0x02,0x14,0x9a,0x14,0xa0,0x00,0x02,0x14,0x9a,0x14,0xa1,0x00,0x02,0x14,0x9a,0x14,0xa2,0x00,0x02,0x14,0x9a,0x14,0xa3, +0x00,0x02,0x14,0x9a,0x14,0xa4,0x00,0x02,0x14,0x9a,0x14,0xa5,0x00,0x02,0x14,0x9a,0x14,0xa6,0x00,0x02,0x14,0x9a,0x14,0xa7,0x00,0x02,0x14,0x9a,0x14,0x9e,0x00,0x02,0x14,0x9a,0x14,0x9f,0x00,0x02,0x14,0x9a,0x14,0xa0,0x00,0x02,0x14,0x9a,0x14,0xa1,0x00,0x02,0x14,0x9a,0x14,0xa8,0x00,0x02,0x14,0x9a,0x14,0xa9,0x00,0x02,0x14,0x9a, +0x14,0xaa,0x00,0x02,0x14,0x9a,0x14,0xa5,0x00,0x02,0x14,0x9a,0x14,0xa6,0x00,0x02,0x14,0x9a,0x14,0xa7,0x00,0x02,0x14,0x9a,0x14,0xab,0x00,0x02,0x14,0x9a,0x14,0xac,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x01,0x00,0xb6,0x00,0x16,0x00,0x32,0x00,0x38, +0x00,0x3e,0x00,0x44,0x00,0x4a,0x00,0x50,0x00,0x56,0x00,0x5c,0x00,0x62,0x00,0x68,0x00,0x6e,0x00,0x74,0x00,0x7a,0x00,0x80,0x00,0x86,0x00,0x8c,0x00,0x92,0x00,0x98,0x00,0x9e,0x00,0xa4,0x00,0xaa,0x00,0xb0,0x00,0x02,0x14,0x9a,0x14,0x9e,0x00,0x02,0x14,0x9a,0x14,0x9f,0x00,0x02,0x14,0x9a,0x14,0xa0,0x00,0x02,0x14,0x9a,0x14,0xa1, +0x00,0x02,0x14,0x9a,0x14,0xa2,0x00,0x02,0x14,0x9a,0x14,0xa3,0x00,0x02,0x14,0x9a,0x14,0xa4,0x00,0x02,0x14,0x9a,0x14,0xa5,0x00,0x02,0x14,0x9a,0x14,0xa6,0x00,0x02,0x14,0x9a,0x14,0xa7,0x00,0x02,0x14,0x9a,0x14,0x9e,0x00,0x02,0x14,0x9a,0x14,0x9f,0x00,0x02,0x14,0x9a,0x14,0xa0,0x00,0x02,0x14,0x9a,0x14,0xa1,0x00,0x02,0x14,0x9a, +0x14,0xa8,0x00,0x02,0x14,0x9a,0x14,0xa9,0x00,0x02,0x14,0x9a,0x14,0xaa,0x00,0x02,0x14,0x9a,0x14,0xa5,0x00,0x02,0x14,0x9a,0x14,0xa6,0x00,0x02,0x14,0x9a,0x14,0xa7,0x00,0x02,0x14,0x9a,0x14,0xab,0x00,0x02,0x14,0x9a,0x14,0xac,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d, +0x00,0x14,0x00,0x01,0x00,0xb6,0x00,0x16,0x00,0x32,0x00,0x38,0x00,0x3e,0x00,0x44,0x00,0x4a,0x00,0x50,0x00,0x56,0x00,0x5c,0x00,0x62,0x00,0x68,0x00,0x6e,0x00,0x74,0x00,0x7a,0x00,0x80,0x00,0x86,0x00,0x8c,0x00,0x92,0x00,0x98,0x00,0x9e,0x00,0xa4,0x00,0xaa,0x00,0xb0,0x00,0x02,0x14,0x2b,0x08,0xd7,0x00,0x02,0x14,0x2b,0x08,0xd8, +0x00,0x02,0x14,0x2b,0x08,0xd9,0x00,0x02,0x14,0x2b,0x08,0xda,0x00,0x02,0x14,0x2b,0x08,0xdb,0x00,0x02,0x14,0x2b,0x08,0xdc,0x00,0x02,0x14,0x2b,0x08,0xdd,0x00,0x02,0x14,0x2b,0x08,0xde,0x00,0x02,0x14,0x2b,0x08,0xdf,0x00,0x02,0x14,0x2b,0x08,0xe0,0x00,0x02,0x14,0x2b,0x08,0xd7,0x00,0x02,0x14,0x2b,0x08,0xd8,0x00,0x02,0x14,0x2b, +0x08,0xd9,0x00,0x02,0x14,0x2b,0x08,0xda,0x00,0x02,0x14,0x2b,0x09,0x53,0x00,0x02,0x14,0x2b,0x09,0x54,0x00,0x02,0x14,0x2b,0x09,0x55,0x00,0x02,0x14,0x2b,0x08,0xde,0x00,0x02,0x14,0x2b,0x08,0xdf,0x00,0x02,0x14,0x2b,0x08,0xe0,0x00,0x02,0x14,0x2b,0x0a,0x3c,0x00,0x02,0x14,0x2b,0x0a,0x3d,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0, +0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x01,0x00,0x1e,0x00,0x03,0x00,0x0c,0x00,0x12,0x00,0x18,0x00,0x02,0x14,0x99,0x0a,0x44,0x00,0x02,0x14,0x9c,0x0a,0x47,0x00,0x02,0x14,0x9d,0x13,0x45,0x00,0x02,0x00,0x03,0x0a,0x44,0x0a,0x44,0x00,0x00,0x0a,0x47,0x0a,0x47,0x00,0x01,0x13,0x45,0x13,0x45, +0x00,0x02,0x00,0x02,0x00,0x1e,0x00,0x0c,0x0f,0x8c,0x0f,0x8d,0x0f,0x8e,0x0f,0x90,0x0f,0x92,0x0f,0x94,0x0f,0x8f,0x0f,0x91,0x0f,0x93,0x0f,0x95,0x0f,0x96,0x0f,0x97,0x00,0x02,0x00,0x08,0x08,0xee,0x08,0xee,0x00,0x00,0x09,0x3f,0x09,0x3f,0x00,0x01,0x09,0xec,0x09,0xec,0x00,0x02,0x09,0xee,0x09,0xee,0x00,0x03,0x09,0xf0,0x09,0xf0, +0x00,0x04,0x09,0xf2,0x09,0xf2,0x00,0x05,0x0a,0x5f,0x0a,0x62,0x00,0x06,0x0a,0xb2,0x0a,0xb3,0x00,0x0a,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0f,0x65,0x0f,0x63,0x0f,0x62,0x0f,0x64,0x0f,0x66,0x0f,0x67,0x0f,0x68,0x0f,0x69,0x0f,0x6a,0x0f,0x6b,0x00,0x02,0x00,0x07,0x08,0xc7,0x08,0xca,0x00,0x00,0x09,0x81,0x09,0x81,0x00,0x04,0x09,0x83, +0x09,0x83,0x00,0x05,0x09,0x85,0x09,0x85,0x00,0x06,0x09,0x87,0x09,0x87,0x00,0x07,0x0f,0x29,0x0f,0x29,0x00,0x08,0x0f,0x2b,0x0f,0x2b,0x00,0x09,0x00,0x02,0x00,0x46,0x00,0x20,0x0f,0x6c,0x0f,0x6e,0x0f,0x82,0x0f,0x84,0x0f,0x70,0x0f,0x72,0x0f,0x74,0x0f,0x86,0x0f,0x88,0x0f,0x76,0x0f,0x8a,0x0f,0x78,0x0f,0x7a,0x0f,0x6d,0x0f,0x6f, +0x0f,0x83,0x0f,0x85,0x0f,0x71,0x0f,0x73,0x0f,0x75,0x0f,0x87,0x0f,0x89,0x0f,0x77,0x0f,0x8b,0x0f,0x79,0x0f,0x7b,0x0f,0x7c,0x0f,0x7d,0x0f,0x7e,0x0f,0x7f,0x0f,0x80,0x0f,0x81,0x00,0x02,0x00,0x1b,0x08,0xd4,0x08,0xd6,0x00,0x00,0x08,0xe1,0x08,0xe1,0x00,0x03,0x09,0xba,0x09,0xba,0x00,0x04,0x09,0xbc,0x09,0xbc,0x00,0x05,0x09,0xbe, +0x09,0xbe,0x00,0x06,0x09,0xc0,0x09,0xc0,0x00,0x07,0x09,0xc2,0x09,0xc2,0x00,0x08,0x0a,0x25,0x0a,0x25,0x00,0x09,0x0a,0x27,0x0a,0x27,0x00,0x0a,0x0a,0x8a,0x0a,0x8a,0x00,0x0b,0x0a,0xb7,0x0a,0xb7,0x00,0x0c,0x0e,0x32,0x0e,0x32,0x00,0x0d,0x0e,0x34,0x0e,0x34,0x00,0x0e,0x0e,0x36,0x0e,0x36,0x00,0x0f,0x0e,0x38,0x0e,0x38,0x00,0x10, +0x0e,0x99,0x0e,0x99,0x00,0x11,0x0e,0x9b,0x0e,0x9b,0x00,0x12,0x0e,0x9d,0x0e,0x9d,0x00,0x13,0x0e,0x9f,0x0e,0x9f,0x00,0x14,0x0e,0xa1,0x0e,0xa1,0x00,0x15,0x0e,0xed,0x0e,0xed,0x00,0x16,0x0e,0xef,0x0e,0xef,0x00,0x17,0x0f,0x04,0x0f,0x04,0x00,0x18,0x0f,0x15,0x0f,0x15,0x00,0x19,0x0f,0x20,0x0f,0x21,0x00,0x1a,0x0f,0x46,0x0f,0x47, +0x00,0x1c,0x0f,0x4a,0x0f,0x4b,0x00,0x1e,0x00,0x02,0x00,0x4a,0x00,0x22,0x0f,0xac,0x0f,0xab,0x0f,0xa7,0x0f,0xbd,0x0f,0xad,0x0f,0xae,0x0f,0xaf,0x0f,0xbe,0x0f,0xb0,0x0f,0xa2,0x0f,0xa5,0x0f,0x98,0x0f,0x99,0x0f,0xc3,0x0f,0x9a,0x0f,0x9b,0x0f,0x9c,0x0f,0x9d,0x0f,0x9e,0x0f,0x9f,0x0f,0xa0,0x0f,0xa1,0x0f,0xa4,0x0f,0xbf,0x0f,0xa8, +0x0f,0xa9,0x0f,0xaa,0x0f,0xa3,0x0f,0xa6,0x0f,0xb1,0x0f,0xb2,0x0f,0xb3,0x14,0xad,0x14,0xae,0x00,0x02,0x00,0x16,0x08,0xf5,0x08,0xf5,0x00,0x00,0x08,0xf7,0x08,0xf7,0x00,0x01,0x09,0x02,0x09,0x02,0x00,0x02,0x09,0x4b,0x09,0x4b,0x00,0x03,0x09,0x8b,0x09,0x8b,0x00,0x04,0x0a,0x06,0x0a,0x06,0x00,0x05,0x0a,0x08,0x0a,0x08,0x00,0x06, +0x0a,0x0c,0x0a,0x0c,0x00,0x07,0x0a,0x0e,0x0a,0x0e,0x00,0x08,0x0a,0x57,0x0a,0x57,0x00,0x09,0x0a,0xb5,0x0a,0xb5,0x00,0x0a,0x0b,0x0c,0x0b,0x17,0x00,0x0b,0x0e,0x21,0x0e,0x21,0x00,0x17,0x0e,0x48,0x0e,0x48,0x00,0x18,0x0e,0x4c,0x0e,0x4c,0x00,0x19,0x0e,0x50,0x0e,0x50,0x00,0x1a,0x0f,0x02,0x0f,0x02,0x00,0x1b,0x0f,0x23,0x0f,0x23, +0x00,0x1c,0x0f,0x2d,0x0f,0x2d,0x00,0x1d,0x0f,0x31,0x0f,0x31,0x00,0x1e,0x0f,0x35,0x0f,0x35,0x00,0x1f,0x14,0x7d,0x14,0x7e,0x00,0x20,0x00,0x02,0x00,0x0e,0x00,0x04,0x0f,0xb6,0x0f,0xb8,0x0f,0xba,0x0f,0xbc,0x00,0x02,0x00,0x04,0x09,0x66,0x09,0x66,0x00,0x00,0x09,0x68,0x09,0x68,0x00,0x01,0x0f,0x3d,0x0f,0x3d,0x00,0x02,0x0f,0x3f, +0x0f,0x3f,0x00,0x03,0x00,0x02,0x00,0x0e,0x00,0x04,0x0f,0xb5,0x0f,0xb7,0x0f,0xb9,0x0f,0xbb,0x00,0x02,0x00,0x04,0x09,0x66,0x09,0x66,0x00,0x00,0x09,0x68,0x09,0x68,0x00,0x01,0x0f,0x3d,0x0f,0x3d,0x00,0x02,0x0f,0x3f,0x0f,0x3f,0x00,0x03,0x00,0x02,0x00,0x0e,0x00,0x04,0x00,0xd6,0x06,0xac,0x11,0x8c,0x06,0xad,0x00,0x02,0x00,0x03, +0x00,0x4c,0x00,0x4d,0x00,0x00,0x01,0x62,0x01,0x62,0x00,0x02,0x05,0x6d,0x05,0x6d,0x00,0x03,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xe1,0x0c,0xe2,0x0c,0xe3,0x0c,0xe4,0x0c,0xe5,0x0c,0xe6,0x0c,0xe7,0x0c,0xe8,0x0c,0xe9,0x0c,0xea,0x00,0x02,0x00,0x01,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x08,0x00,0x01,0x0b,0x8d,0x00,0x01, +0x00,0x01,0x0b,0x7a,0x00,0x02,0x00,0x08,0x00,0x01,0x0b,0xd6,0x00,0x01,0x00,0x01,0x0b,0xc7,0x00,0x02,0x00,0x08,0x00,0x01,0x0a,0x43,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x1e,0x00,0x02,0x00,0x0a,0x00,0x14,0x00,0x01,0x00,0x04,0x0b,0x8a,0x00,0x02,0x0b,0x5c,0x00,0x01,0x00,0x04,0x0b,0x8b,0x00,0x02,0x0b,0x5c,0x00,0x01, +0x00,0x02,0x0b,0x74,0x0b,0xa8,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x0b,0x57,0x00,0x02,0x0b,0x57,0x00,0x01,0x00,0x01,0x0a,0x43,0x00,0x01,0x00,0x66,0x00,0x0c,0x00,0x1e,0x00,0x24,0x00,0x2a,0x00,0x30,0x00,0x36,0x00,0x3c,0x00,0x42,0x00,0x48,0x00,0x4e,0x00,0x54,0x00,0x5a,0x00,0x60,0x00,0x02,0x0b,0x5f, +0x0b,0x07,0x00,0x02,0x0b,0x67,0x0b,0x07,0x00,0x02,0x0b,0xbf,0x0b,0x07,0x00,0x02,0x0b,0xc4,0x0b,0x07,0x00,0x02,0x0b,0xc9,0x0b,0x07,0x00,0x02,0x0b,0xd0,0x0b,0x07,0x00,0x02,0x0b,0xd1,0x0b,0x07,0x00,0x02,0x0b,0xd2,0x0b,0x07,0x00,0x02,0x0b,0xd3,0x0b,0x07,0x00,0x02,0x0b,0xd4,0x0b,0x07,0x00,0x02,0x0b,0xd5,0x0b,0x07,0x00,0x02, +0x0b,0xd8,0x0b,0x07,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x76,0x00,0x0e,0x00,0x22,0x00,0x28,0x00,0x2e,0x00,0x34, +0x00,0x3a,0x00,0x40,0x00,0x46,0x00,0x4c,0x00,0x52,0x00,0x58,0x00,0x5e,0x00,0x64,0x00,0x6a,0x00,0x70,0x00,0x02,0x0b,0x53,0x11,0x86,0x00,0x02,0x0b,0x5a,0x11,0x86,0x00,0x02,0x0b,0x5f,0x11,0x86,0x00,0x02,0x0b,0x67,0x11,0x86,0x00,0x02,0x0b,0xbf,0x11,0x86,0x00,0x02,0x0b,0xc4,0x11,0x86,0x00,0x02,0x0b,0xc9,0x11,0x86,0x00,0x02, +0x0b,0xd0,0x11,0x86,0x00,0x02,0x0b,0xd1,0x11,0x86,0x00,0x02,0x0b,0xd2,0x11,0x86,0x00,0x02,0x0b,0xd3,0x11,0x86,0x00,0x02,0x0b,0xd4,0x11,0x86,0x00,0x02,0x0b,0xd5,0x11,0x86,0x00,0x02,0x0b,0xd8,0x11,0x86,0x00,0x02,0x00,0x09,0x0b,0x53,0x0b,0x53,0x00,0x00,0x0b,0x5a,0x0b,0x5a,0x00,0x01,0x0b,0x5f,0x0b,0x5f,0x00,0x02,0x0b,0x67, +0x0b,0x67,0x00,0x03,0x0b,0xbf,0x0b,0xbf,0x00,0x04,0x0b,0xc4,0x0b,0xc4,0x00,0x05,0x0b,0xc9,0x0b,0xc9,0x00,0x06,0x0b,0xd0,0x0b,0xd5,0x00,0x07,0x0b,0xd8,0x0b,0xd8,0x00,0x0d,0x00,0x01,0x04,0x26,0x00,0x84,0x01,0x0e,0x01,0x14,0x01,0x1a,0x01,0x20,0x01,0x26,0x01,0x2c,0x01,0x32,0x01,0x38,0x01,0x3e,0x01,0x44,0x01,0x4a,0x01,0x50, +0x01,0x56,0x01,0x5c,0x01,0x62,0x01,0x68,0x01,0x6e,0x01,0x74,0x01,0x7a,0x01,0x80,0x01,0x86,0x01,0x8c,0x01,0x92,0x01,0x98,0x01,0x9e,0x01,0xa4,0x01,0xaa,0x01,0xb0,0x01,0xb6,0x01,0xbc,0x01,0xc2,0x01,0xc8,0x01,0xce,0x01,0xd4,0x01,0xda,0x01,0xe0,0x01,0xe6,0x01,0xec,0x01,0xf2,0x01,0xf8,0x01,0xfe,0x02,0x04,0x02,0x0a,0x02,0x10, +0x02,0x16,0x02,0x1c,0x02,0x22,0x02,0x28,0x02,0x2e,0x02,0x34,0x02,0x3a,0x02,0x40,0x02,0x46,0x02,0x4c,0x02,0x52,0x02,0x58,0x02,0x5e,0x02,0x64,0x02,0x6a,0x02,0x70,0x02,0x76,0x02,0x7c,0x02,0x82,0x02,0x88,0x02,0x8e,0x02,0x94,0x02,0x9a,0x02,0xa0,0x02,0xa6,0x02,0xac,0x02,0xb2,0x02,0xb8,0x02,0xbe,0x02,0xc4,0x02,0xca,0x02,0xd0, +0x02,0xd6,0x02,0xdc,0x02,0xe2,0x02,0xe8,0x02,0xee,0x02,0xf4,0x02,0xfa,0x03,0x00,0x03,0x06,0x03,0x0c,0x03,0x12,0x03,0x18,0x03,0x1e,0x03,0x24,0x03,0x2a,0x03,0x30,0x03,0x36,0x03,0x3c,0x03,0x42,0x03,0x48,0x03,0x4e,0x03,0x54,0x03,0x5a,0x03,0x60,0x03,0x66,0x03,0x6c,0x03,0x72,0x03,0x78,0x03,0x7e,0x03,0x84,0x03,0x8a,0x03,0x90, +0x03,0x96,0x03,0x9c,0x03,0xa2,0x03,0xa8,0x03,0xae,0x03,0xb4,0x03,0xba,0x03,0xc0,0x03,0xc6,0x03,0xcc,0x03,0xd2,0x03,0xd8,0x03,0xde,0x03,0xe4,0x03,0xea,0x03,0xf0,0x03,0xf6,0x03,0xfc,0x04,0x02,0x04,0x08,0x04,0x0e,0x04,0x14,0x04,0x1a,0x04,0x20,0x00,0x02,0x0a,0x43,0x11,0x86,0x00,0x02,0x0b,0x53,0x11,0x86,0x00,0x02,0x0b,0x54, +0x11,0x86,0x00,0x02,0x0b,0x55,0x11,0x86,0x00,0x02,0x0b,0x56,0x11,0x86,0x00,0x02,0x0b,0x57,0x11,0x86,0x00,0x02,0x0b,0x58,0x11,0x86,0x00,0x02,0x0b,0x59,0x11,0x86,0x00,0x02,0x0b,0x5a,0x11,0x86,0x00,0x02,0x0b,0x5b,0x11,0x86,0x00,0x02,0x0b,0x5c,0x11,0x86,0x00,0x02,0x0b,0x5d,0x11,0x86,0x00,0x02,0x0b,0x5e,0x11,0x86,0x00,0x02, +0x0b,0x5f,0x11,0x86,0x00,0x02,0x0b,0x61,0x11,0x86,0x00,0x02,0x0b,0x66,0x11,0x86,0x00,0x02,0x0b,0x67,0x11,0x86,0x00,0x02,0x0b,0x68,0x11,0x86,0x00,0x02,0x0b,0x69,0x11,0x86,0x00,0x02,0x0b,0x6a,0x11,0x86,0x00,0x02,0x0b,0x6b,0x11,0x86,0x00,0x02,0x0b,0x6c,0x11,0x86,0x00,0x02,0x0b,0x6d,0x11,0x86,0x00,0x02,0x0b,0x6e,0x11,0x86, +0x00,0x02,0x0b,0x6f,0x11,0x86,0x00,0x02,0x0b,0x70,0x11,0x86,0x00,0x02,0x0b,0x71,0x11,0x86,0x00,0x02,0x0b,0x72,0x11,0x86,0x00,0x02,0x0b,0x73,0x11,0x86,0x00,0x02,0x0b,0x74,0x11,0x86,0x00,0x02,0x0b,0x75,0x11,0x86,0x00,0x02,0x0b,0x76,0x11,0x86,0x00,0x02,0x0b,0x77,0x11,0x86,0x00,0x02,0x0b,0x78,0x11,0x86,0x00,0x02,0x0b,0x79, +0x11,0x86,0x00,0x02,0x0b,0x7a,0x11,0x86,0x00,0x02,0x0b,0x7b,0x11,0x86,0x00,0x02,0x0b,0x7c,0x11,0x86,0x00,0x02,0x0b,0x7d,0x11,0x86,0x00,0x02,0x0b,0x7e,0x11,0x86,0x00,0x02,0x0b,0x7f,0x11,0x86,0x00,0x02,0x0b,0x80,0x11,0x86,0x00,0x02,0x0b,0x81,0x11,0x86,0x00,0x02,0x0b,0x82,0x11,0x86,0x00,0x02,0x0b,0x83,0x11,0x86,0x00,0x02, +0x0b,0x84,0x11,0x86,0x00,0x02,0x0b,0x85,0x11,0x86,0x00,0x02,0x0b,0x88,0x11,0x86,0x00,0x02,0x0b,0x89,0x11,0x86,0x00,0x02,0x0b,0x8a,0x11,0x86,0x00,0x02,0x0b,0x8b,0x11,0x86,0x00,0x02,0x0b,0x8c,0x11,0x86,0x00,0x02,0x0b,0x8d,0x11,0x86,0x00,0x02,0x0b,0x8e,0x11,0x86,0x00,0x02,0x0b,0x8f,0x11,0x86,0x00,0x02,0x0b,0x90,0x11,0x86, +0x00,0x02,0x0b,0x91,0x11,0x86,0x00,0x02,0x0b,0x92,0x11,0x86,0x00,0x02,0x0b,0x93,0x11,0x86,0x00,0x02,0x0b,0x94,0x11,0x86,0x00,0x02,0x0b,0x95,0x11,0x86,0x00,0x02,0x0b,0x97,0x11,0x86,0x00,0x02,0x0b,0x98,0x11,0x86,0x00,0x02,0x0b,0x99,0x11,0x86,0x00,0x02,0x0b,0x9a,0x11,0x86,0x00,0x02,0x0b,0x9d,0x11,0x86,0x00,0x02,0x0b,0x9e, +0x11,0x86,0x00,0x02,0x0b,0x9f,0x11,0x86,0x00,0x02,0x0b,0xa0,0x11,0x86,0x00,0x02,0x0b,0xa1,0x11,0x86,0x00,0x02,0x0b,0xa2,0x11,0x86,0x00,0x02,0x0b,0xa3,0x11,0x86,0x00,0x02,0x0b,0xa4,0x11,0x86,0x00,0x02,0x0b,0xa5,0x11,0x86,0x00,0x02,0x0b,0xa6,0x11,0x86,0x00,0x02,0x0b,0xa7,0x11,0x86,0x00,0x02,0x0b,0xa8,0x11,0x86,0x00,0x02, +0x0b,0xa9,0x11,0x86,0x00,0x02,0x0b,0xaa,0x11,0x86,0x00,0x02,0x0b,0xab,0x11,0x86,0x00,0x02,0x0b,0xac,0x11,0x86,0x00,0x02,0x0b,0xad,0x11,0x86,0x00,0x02,0x0b,0xae,0x11,0x86,0x00,0x02,0x0b,0xaf,0x11,0x86,0x00,0x02,0x0b,0xb0,0x11,0x86,0x00,0x02,0x0b,0xb1,0x11,0x86,0x00,0x02,0x0b,0xb2,0x11,0x86,0x00,0x02,0x0b,0xb3,0x11,0x86, +0x00,0x02,0x0b,0xb4,0x11,0x86,0x00,0x02,0x0b,0xb5,0x11,0x86,0x00,0x02,0x0b,0xb6,0x11,0x86,0x00,0x02,0x0b,0xb7,0x11,0x86,0x00,0x02,0x0b,0xb9,0x11,0x86,0x00,0x02,0x0b,0xbf,0x11,0x86,0x00,0x02,0x0b,0xc0,0x11,0x86,0x00,0x02,0x0b,0xc1,0x11,0x86,0x00,0x02,0x0b,0xc2,0x11,0x86,0x00,0x02,0x0b,0xc3,0x11,0x86,0x00,0x02,0x0b,0xc4, +0x11,0x86,0x00,0x02,0x0b,0xc5,0x11,0x86,0x00,0x02,0x0b,0xc6,0x11,0x86,0x00,0x02,0x0b,0xc7,0x11,0x86,0x00,0x02,0x0b,0xc8,0x11,0x86,0x00,0x02,0x0b,0xc9,0x11,0x86,0x00,0x02,0x0b,0xca,0x11,0x86,0x00,0x02,0x0b,0xcb,0x11,0x86,0x00,0x02,0x0b,0xcc,0x11,0x86,0x00,0x02,0x0b,0xcd,0x11,0x86,0x00,0x02,0x0b,0xce,0x11,0x86,0x00,0x02, +0x0b,0xcf,0x11,0x86,0x00,0x02,0x0b,0xd0,0x11,0x86,0x00,0x02,0x0b,0xd1,0x11,0x86,0x00,0x02,0x0b,0xd2,0x11,0x86,0x00,0x02,0x0b,0xd3,0x11,0x86,0x00,0x02,0x0b,0xd4,0x11,0x86,0x00,0x02,0x0b,0xd5,0x11,0x86,0x00,0x02,0x0b,0xd6,0x11,0x86,0x00,0x02,0x0b,0xd7,0x11,0x86,0x00,0x02,0x0b,0xd8,0x11,0x86,0x00,0x02,0x0b,0xd9,0x11,0x86, +0x00,0x02,0x0b,0xda,0x11,0x86,0x00,0x02,0x0b,0xdb,0x11,0x86,0x00,0x02,0x0b,0xdc,0x11,0x86,0x00,0x02,0x0b,0xdd,0x11,0x86,0x00,0x02,0x0b,0xe1,0x11,0x86,0x00,0x02,0x12,0x5c,0x11,0x86,0x00,0x02,0x12,0x5d,0x11,0x86,0x00,0x02,0x12,0x5e,0x11,0x86,0x00,0x02,0x12,0x5f,0x11,0x86,0x00,0x02,0x12,0x60,0x11,0x86,0x00,0x02,0x12,0x61, +0x11,0x86,0x00,0x02,0x12,0x62,0x11,0x86,0x00,0x02,0x00,0x0b,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x53,0x0b,0x5f,0x00,0x01,0x0b,0x61,0x0b,0x61,0x00,0x0e,0x0b,0x66,0x0b,0x85,0x00,0x0f,0x0b,0x88,0x0b,0x95,0x00,0x2f,0x0b,0x97,0x0b,0x9a,0x00,0x3d,0x0b,0x9d,0x0b,0xb7,0x00,0x41,0x0b,0xb9,0x0b,0xb9,0x00,0x5c,0x0b,0xbf,0x0b,0xdd, +0x00,0x5d,0x0b,0xe1,0x0b,0xe1,0x00,0x7c,0x12,0x5c,0x12,0x62,0x00,0x7d,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x13,0xef,0x00,0x04,0x0e,0x2d,0x0e,0x58,0x0e,0x2f,0x00,0x01,0x00,0x01,0x08,0xef,0x00,0x01,0x00,0x82,0x00,0x01,0x00,0x08,0x00,0x03,0x00,0x08,0x00,0x2e,0x00,0x54,0x13,0xf0,0x00,0x12,0x09,0x3f, +0x08,0xf7,0x00,0x03,0x09,0x0d,0x08,0xee,0x09,0x3f,0x08,0xf3,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x08,0xf3,0x00,0x03,0x09,0x29,0x08,0xd4,0x09,0x3f,0x0e,0x57,0x13,0xf0,0x00,0x12,0x09,0x3f,0x09,0x4b,0x00,0x03,0x09,0x0d,0x08,0xee,0x09,0x3f,0x08,0xf3,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x08,0xf3,0x00,0x03,0x09,0x29, +0x08,0xd4,0x09,0x3f,0x0e,0x57,0x13,0xf0,0x00,0x12,0x09,0x3f,0x09,0x4b,0x00,0x03,0x09,0x0d,0x08,0xee,0x09,0x3f,0x09,0x60,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x08,0xf3,0x00,0x03,0x09,0x29,0x08,0xd4,0x09,0x3f,0x0e,0x57,0x00,0x01,0x00,0x01,0x08,0xd6,0x00,0x01,0x00,0x70,0x00,0x01,0x00,0x08,0x00,0x03,0x00,0x08,0x00,0x28, +0x00,0x48,0x13,0xf0,0x00,0x0f,0x09,0x3f,0x08,0xf7,0x00,0x03,0x0a,0x63,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x08,0xf3,0x00,0x03,0x09,0x29,0x08,0xd4,0x09,0x3f,0x0e,0x57,0x13,0xf0,0x00,0x0f,0x09,0x3f,0x09,0x4b,0x00,0x03,0x0a,0x63,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x08,0xf3,0x00,0x03,0x09,0x29,0x08,0xd4,0x09,0x3f, +0x0e,0x57,0x13,0xf0,0x00,0x0f,0x09,0x3f,0x09,0x4b,0x00,0x03,0x0a,0x63,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x09,0x60,0x00,0x03,0x09,0x29,0x08,0xd4,0x09,0x3f,0x0e,0x57,0x00,0x01,0x00,0x01,0x08,0xd6,0x00,0x01,0x00,0x32,0x00,0x01,0x00,0x08,0x00,0x02,0x00,0x06,0x00,0x18,0x13,0xf1,0x00,0x08,0x09,0x59,0x00,0x03,0x08,0xce, +0x09,0x3f,0x08,0xc7,0x08,0xee,0x08,0xf3,0x13,0xf1,0x00,0x08,0x09,0x59,0x00,0x03,0x08,0xce,0x09,0x3f,0x08,0xc7,0x08,0xee,0x09,0x60,0x00,0x01,0x00,0x01,0x08,0xce,0x00,0x01,0x00,0x2e,0x00,0x01,0x00,0x08,0x00,0x02,0x00,0x06,0x00,0x16,0x13,0xf1,0x00,0x07,0x09,0x59,0x00,0x03,0x08,0xce,0x08,0xfb,0x08,0xee,0x08,0xf3,0x13,0xf1, +0x00,0x07,0x09,0x59,0x00,0x03,0x08,0xce,0x08,0xfb,0x08,0xee,0x09,0x60,0x00,0x01,0x00,0x01,0x08,0xce,0x00,0x01,0x00,0x3a,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x13,0xf2,0x00,0x16,0x0e,0x32,0x0e,0x57,0x00,0x03,0x09,0x0d,0x08,0xee,0x09,0x3f,0x08,0xf3,0x00,0x03,0x09,0x0d,0x08,0xee,0x0b,0x0c,0x08,0xd0,0x0e,0x58,0x0e,0x59, +0x00,0x03,0x09,0x0d,0x08,0xee,0x0b,0x0c,0x08,0xd0,0x0e,0x61,0x0e,0x57,0x00,0x01,0x00,0x01,0x08,0xcb,0x00,0x01,0x00,0x34,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x13,0xf2,0x00,0x13,0x0e,0x32,0x0e,0x57,0x00,0x03,0x0a,0x63,0x00,0x03,0x09,0x0d,0x08,0xee,0x0b,0x0c,0x08,0xd0,0x0e,0x58,0x0e,0x59,0x00,0x03,0x09,0x0d,0x08,0xee, +0x0b,0x0c,0x08,0xd0,0x0e,0x61,0x0e,0x57,0x00,0x01,0x00,0x01,0x08,0xcb,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x02,0x64,0x6c,0x6e,0x67,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x2c,0x73,0x6c,0x6e,0x67,0x00,0x00,0x00,0x54, +0x00,0x00,0x00,0x2c,0x4c,0x61,0x74,0x6e,0x2c,0x47,0x72,0x65,0x6b,0x2c,0x43,0x79,0x72,0x6c,0x2c,0x41,0x72,0x6d,0x6e,0x2c,0x47,0x65,0x6f,0x72,0x2c,0x47,0x65,0x6f,0x6b,0x2c,0x41,0x72,0x61,0x62,0x2c,0x48,0x65,0x62,0x72,0x2c,0x4c,0x69,0x73,0x75,0x4c,0x61,0x74,0x6e,0x2c,0x47,0x72,0x65,0x6b,0x2c,0x43,0x79,0x72,0x6c,0x2c,0x41, +0x72,0x6d,0x6e,0x2c,0x47,0x65,0x6f,0x72,0x2c,0x47,0x65,0x6f,0x6b,0x2c,0x41,0x72,0x61,0x62,0x2c,0x48,0x65,0x62,0x72,0x2c,0x4c,0x69,0x73,0x75, }; read_only global String8 rd_default_main_font_bytes = {rd_default_main_font_bytes__data, sizeof(rd_default_main_font_bytes__data)}; read_only global U8 rd_default_code_font_bytes__data[] = { -0x00,0x01,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x04,0x00,0x00,0x46,0x46,0x54,0x4d,0x51,0x9f,0x15,0xb9,0x00,0x01,0xa6,0x6c,0x00,0x00,0x00,0x1c,0x47,0x44,0x45,0x46,0x02,0xd0,0x00,0x24,0x00,0x01,0xa6,0x44,0x00,0x00,0x00,0x28,0x4f,0x53,0x2f,0x32,0xf9,0x20,0x77,0x38,0x00,0x00,0x01,0x88,0x00,0x00,0x00,0x60,0x63,0x6d,0x61,0x70, -0x56,0x8d,0x3a,0x45,0x00,0x00,0x07,0x34,0x00,0x00,0x06,0xd6,0x63,0x76,0x74,0x20,0x4d,0x16,0x5e,0xb5,0x00,0x00,0x19,0x80,0x00,0x00,0x02,0x3c,0x66,0x70,0x67,0x6d,0x73,0xd3,0x23,0xb0,0x00,0x00,0x0e,0x0c,0x00,0x00,0x07,0x05,0x67,0x61,0x73,0x70,0x00,0x18,0x00,0x09,0x00,0x01,0xa6,0x34,0x00,0x00,0x00,0x10,0x67,0x6c,0x79,0x66, -0x6e,0xf8,0x35,0xc7,0x00,0x00,0x21,0x00,0x00,0x01,0x68,0x3c,0x68,0x65,0x61,0x64,0xf9,0x1e,0x9e,0x36,0x00,0x00,0x01,0x0c,0x00,0x00,0x00,0x36,0x68,0x68,0x65,0x61,0x0b,0x59,0x02,0x59,0x00,0x00,0x01,0x44,0x00,0x00,0x00,0x24,0x68,0x6d,0x74,0x78,0xb9,0x9c,0xc8,0xcc,0x00,0x00,0x01,0xe8,0x00,0x00,0x05,0x4a,0x6c,0x6f,0x63,0x61, -0x98,0x1a,0xf7,0xee,0x00,0x00,0x1b,0xbc,0x00,0x00,0x05,0x44,0x6d,0x61,0x78,0x70,0x06,0x89,0x04,0xec,0x00,0x00,0x01,0x68,0x00,0x00,0x00,0x20,0x6e,0x61,0x6d,0x65,0x1c,0x78,0x1c,0xda,0x00,0x01,0x89,0x3c,0x00,0x00,0x08,0x6a,0x70,0x6f,0x73,0x74,0x8d,0x83,0x67,0x12,0x00,0x01,0x91,0xa8,0x00,0x00,0x14,0x8a,0x70,0x72,0x65,0x70, -0xd9,0x98,0xf7,0x94,0x00,0x00,0x15,0x14,0x00,0x00,0x04,0x6a,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xeb,0x0d,0x7b,0x61,0x56,0x5f,0x0f,0x3c,0xf5,0x00,0x1f,0x08,0x00,0x00,0x00,0x00,0x00,0xca,0x9f,0x21,0x86,0x00,0x00,0x00,0x00,0xca,0x9f,0x21,0x86,0xff,0xce,0xfd,0x99,0x04,0xdf,0x06,0xa9,0x00,0x00,0x00,0x08,0x00,0x02,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x06,0xa9,0xfd,0x99,0x00,0x00,0x04,0xcd,0xff,0xce,0xff,0xee,0x04,0xdf,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x01,0x00,0x00,0x02,0xa1,0x01,0x22,0x00,0x48,0x00,0x80,0x00,0x05,0x00,0x02,0x00,0x10,0x00,0x2f,0x00,0x5a,0x00,0x00, -0x03,0x2d,0x03,0x17,0x00,0x03,0x00,0x02,0x00,0x03,0x04,0xcd,0x01,0x90,0x00,0x05,0x00,0x00,0x05,0x9a,0x05,0x33,0x00,0x00,0x01,0x1d,0x05,0x9a,0x05,0x33,0x00,0x00,0x03,0x61,0x00,0x66,0x02,0x12,0x08,0x05,0x02,0x07,0x04,0x09,0x02,0x02,0x05,0x02,0x04,0x04,0xa0,0x00,0x02,0xaf,0x40,0x00,0x78,0xfb,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x31,0x41,0x53,0x43,0x00,0x40,0x00,0x21,0xfb,0x02,0x04,0xe7,0xfe,0x7e,0x02,0x26,0x06,0xa9,0x02,0x67,0x60,0x00,0x00,0x9f,0xdf,0xd7,0x00,0x00,0x04,0x3a,0x05,0x45,0x00,0x00,0x00,0x20,0x00,0x01,0x04,0xcd,0x00,0x44,0x00,0x00,0x00,0x00,0x02,0xaa,0x00,0x00,0x04,0xcd,0x00,0x00,0x02,0x03,0x01,0x15,0x00,0x36,0x00,0x42, -0x00,0x00,0x00,0x2b,0x01,0xf6,0x01,0x56,0x01,0x50,0x00,0xf8,0x00,0x74,0x01,0x03,0x01,0x4e,0x01,0xf0,0x00,0x72,0x00,0x7c,0x00,0x94,0x00,0x90,0x00,0x80,0x00,0x67,0x00,0x80,0x00,0x97,0x00,0x9e,0x00,0x85,0x00,0x8d,0x01,0xf0,0x01,0x60,0x00,0x74,0x00,0x74,0x00,0x74,0x00,0x5e,0x00,0x2c,0x00,0x00,0x00,0xa2,0x00,0x71,0x00,0xa2, -0x00,0xa2,0x00,0xc2,0x00,0x71,0x00,0xa2,0x00,0xca,0x00,0xb0,0x00,0xa2,0x00,0xed,0x00,0x81,0x00,0xa2,0x00,0x66,0x00,0xa2,0x00,0x66,0x00,0xa2,0x00,0x4f,0x00,0x4c,0x00,0x8e,0x00,0x0a,0x00,0x00,0x00,0x24,0x00,0x24,0x00,0x49,0x01,0x9a,0x00,0x73,0x01,0x0e,0x00,0x85,0xff,0xfb,0x01,0x92,0x00,0x80,0x00,0xb3,0x00,0x82,0x00,0x8a, -0x00,0x85,0x00,0x8a,0x00,0x8f,0x00,0xb9,0x00,0x8f,0x00,0x75,0x00,0xec,0x00,0x86,0x00,0x63,0x00,0xb3,0x00,0x82,0x00,0xb3,0x00,0x8a,0x00,0xf2,0x00,0xa7,0x00,0xbe,0x00,0xb9,0x00,0x45,0x00,0x15,0x00,0x5e,0x00,0x42,0x00,0x93,0x00,0xe3,0x02,0x13,0x00,0xa7,0x00,0x6c,0x02,0x03,0x00,0x85,0x00,0x38,0x00,0x9e,0x00,0x34,0x02,0x13, -0x00,0x9f,0x01,0x4f,0x00,0x1f,0x00,0xce,0x00,0x7f,0x00,0x74,0x00,0x1f,0xff,0xfb,0x01,0x47,0x00,0x74,0x01,0x38,0x01,0x32,0x01,0x92,0x00,0x90,0x00,0x7f,0x01,0xf0,0x00,0x77,0x01,0x1d,0x00,0xe2,0x00,0x6b,0x00,0x1b,0x00,0x11,0x00,0x0b,0x00,0x99,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x71, -0x00,0xa2,0x00,0xa2,0x00,0xa2,0x00,0xa2,0x00,0xca,0x00,0xca,0x00,0xca,0x00,0xca,0x00,0x1b,0x00,0xa2,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x9d,0x00,0x38,0x00,0x8e,0x00,0x8e,0x00,0x8e,0x00,0x8e,0x00,0x24,0x00,0xa2,0x00,0x8e,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x14,0x00,0x82, -0x00,0x85,0x00,0x85,0x00,0x85,0x00,0x85,0x00,0x8f,0x00,0x8f,0x00,0x8f,0x00,0x8f,0x00,0x7d,0x00,0xb3,0x00,0x82,0x00,0x82,0x00,0x82,0x00,0x82,0x00,0x82,0x00,0x74,0x00,0x6e,0x00,0xb9,0x00,0xb9,0x00,0xb9,0x00,0xb9,0x00,0x42,0x00,0xb9,0x00,0x42,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x71,0x00,0x82, -0x00,0x71,0x00,0x82,0x00,0x71,0x00,0x82,0x00,0x71,0x00,0x82,0x00,0xa2,0x00,0x1f,0x00,0x1b,0x00,0x8a,0x00,0xa2,0x00,0x85,0x00,0xa2,0x00,0x85,0x00,0xa2,0x00,0x85,0x00,0xa2,0x00,0x85,0x00,0xa2,0x00,0x85,0x00,0x71,0x00,0x8f,0x00,0x71,0x00,0x8f,0x00,0x71,0x00,0x8f,0x00,0x71,0x00,0x8f,0x00,0xa2,0x00,0xb9,0x00,0x02,0x00,0x35, -0x00,0xca,0x00,0x8f,0x00,0xca,0x00,0x8f,0x00,0xca,0x00,0x8f,0x00,0xca,0x00,0x8f,0x00,0xca,0x00,0x8f,0x00,0x62,0x00,0xd8,0x00,0xb0,0x00,0xd5,0x00,0xa2,0x00,0xec,0x00,0xec,0x00,0xed,0x00,0x86,0x00,0xed,0x00,0x86,0x00,0xed,0x00,0x55,0x00,0xed,0x00,0x86,0x00,0x36,0x00,0x86,0x00,0xa2,0x00,0xb3,0x00,0xa2,0x00,0xb3,0x00,0xa2, -0x00,0xb3,0x00,0x05,0x00,0xb3,0x00,0xb3,0x00,0x66,0x00,0x82,0x00,0x66,0x00,0x82,0x00,0x66,0x00,0x82,0x00,0x14,0x00,0x1c,0x00,0xa2,0x00,0xf2,0x00,0xa2,0x00,0xcb,0x00,0xa2,0x00,0xf2,0x00,0x4f,0x00,0xa7,0x00,0x4f,0x00,0xa7,0x00,0x4f,0x00,0xa7,0x00,0x4f,0x00,0xa7,0x00,0x4c,0x00,0xbe,0x00,0x4c,0x00,0x65,0x00,0x4c,0x00,0xc8, -0x00,0x8e,0x00,0xb9,0x00,0x8e,0x00,0xb9,0x00,0x8e,0x00,0xb9,0x00,0x8e,0x00,0xb9,0x00,0x8e,0x00,0xb9,0x00,0x8e,0x00,0xb9,0x00,0x00,0x00,0x15,0x00,0x24,0x00,0x42,0x00,0x24,0x00,0x49,0x00,0x93,0x00,0x49,0x00,0x93,0x00,0x49,0x00,0x93,0x01,0x90,0x00,0xea,0x00,0x00,0x00,0x80,0x00,0x01,0x00,0x14,0x00,0x38,0x00,0x6e,0x00,0x4f, -0x00,0xa7,0x00,0x4c,0x00,0xbe,0x01,0x1b,0x01,0x1b,0x01,0x51,0x01,0x2d,0x02,0x03,0x01,0x74,0x01,0xb9,0x00,0xff,0x00,0x1d,0x01,0xdb,0x01,0x37,0x00,0x00,0x01,0xf0,0xff,0xcf,0x00,0x00,0x00,0x01,0xff,0xcf,0x00,0x00,0xff,0xce,0x00,0x95,0x00,0x00,0x00,0xa2,0x00,0xe0,0x00,0x0c,0x00,0xa2,0x00,0x49,0x00,0xa2,0x00,0x66,0x00,0xca, -0x00,0xa2,0x00,0x0a,0x00,0x81,0x00,0xa2,0x00,0x87,0x00,0x66,0x00,0xa3,0x00,0xa2,0x00,0x6c,0x00,0x4c,0x00,0x24,0x00,0x08,0x00,0x24,0x00,0x31,0x00,0x3b,0x00,0xca,0x00,0x24,0x00,0x81,0x00,0xaf,0x00,0xb3,0x00,0x95,0x00,0xa3,0x00,0x81,0x00,0xac,0x00,0x35,0x00,0x70,0x00,0xaf,0x00,0xb8,0x00,0xb3,0x00,0x97,0x00,0x95,0x00,0xec, -0x00,0x72,0x00,0x9c,0x00,0x5c,0x00,0xbf,0x00,0x82,0x00,0x16,0x00,0x9d,0x00,0xb0,0x00,0x5c,0x00,0x95,0x00,0xa3,0x00,0x32,0x00,0x3a,0x00,0x58,0x00,0x35,0x00,0x95,0x00,0xa3,0x00,0x82,0x00,0xa3,0x00,0x35,0x00,0xa2,0x00,0xa2,0x00,0x00,0x00,0xe0,0x00,0x71,0x00,0x4f,0x00,0xca,0x00,0xca,0x00,0xb0,0x00,0x00,0x00,0x47,0x00,0x00, -0x00,0xa8,0x00,0xa2,0x00,0x14,0x00,0x9c,0x00,0x00,0x00,0xa2,0x00,0xa2,0x00,0xe0,0x00,0x05,0x00,0xa2,0x00,0x00,0x00,0x43,0x00,0xa2,0x00,0xa2,0x00,0xa8,0xff,0xfe,0x00,0x81,0x00,0xa2,0x00,0x66,0x00,0xa2,0x00,0xa2,0x00,0x71,0x00,0x4c,0x00,0x14,0x00,0x08,0x00,0x24,0x00,0x80,0x00,0x5f,0x00,0x59,0x00,0x56,0x00,0x00,0x00,0x69, -0x00,0xa2,0x00,0x57,0x00,0x56,0x00,0x34,0x00,0x80,0x00,0x8c,0x00,0xb9,0x01,0x09,0x00,0x16,0x00,0x85,0x00,0x01,0x00,0x8a,0x00,0xb9,0x00,0xb9,0x00,0xda,0x00,0x06,0x00,0x66,0x00,0xb5,0x00,0x82,0x00,0xb5,0x00,0xb3,0x00,0x82,0x00,0x82,0x00,0x42,0x00,0x46,0x00,0x5e,0x00,0xb0,0x00,0x9a,0x00,0x66,0x00,0x5c,0xff,0xff,0x00,0x6a, -0x00,0xcc,0x00,0x7c,0x00,0x46,0x00,0x45,0x00,0x85,0x00,0x85,0x00,0x35,0x01,0x09,0x00,0x91,0x00,0xa7,0x00,0x8f,0x00,0x8f,0x00,0x75,0x00,0x19,0x00,0x5c,0x00,0x35,0x00,0xda,0x00,0xb9,0x00,0x42,0x00,0xb5,0x00,0xe2,0x00,0xf4,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x24,0x00,0x42,0x01,0x4e,0x01,0x4e, -0x00,0xaa,0xff,0xf6,0xff,0xf6,0xff,0xfb,0x01,0x8d,0x01,0x8f,0x01,0x5d,0x01,0x8e,0x00,0xb1,0x00,0xb2,0x00,0xb2,0x00,0xb6,0x00,0xb6,0x01,0x50,0x00,0x75,0x00,0x00,0x01,0xf6,0x01,0x15,0x01,0x5a,0x01,0x6e,0x00,0xed,0xff,0xfb,0x00,0xcc,0x01,0x65,0x00,0x22,0x00,0x50,0x00,0x2d,0x00,0x5b,0x00,0x00,0x01,0x1e,0x00,0x16,0x00,0x04, -0x00,0x3b,0x00,0x5f,0x00,0x01,0x00,0x09,0x00,0x25,0x00,0x39,0x00,0x08,0x01,0x76,0x00,0x08,0x01,0x76,0x00,0x08,0x01,0x76,0x01,0x76,0x00,0x69,0x00,0x0c,0x00,0x69,0x00,0x1b,0x00,0x75,0x01,0xf0,0x00,0x4e,0x00,0x1d,0x00,0x34,0x00,0x9c,0x00,0xeb,0x00,0x6c,0x00,0x74,0x00,0x74,0x00,0x73,0x00,0x74,0x00,0x8a,0x00,0x73,0x02,0x1e, -0x00,0xcb,0xff,0xf6,0x02,0x1e,0x02,0x1e,0xff,0xf6,0x02,0x1e,0xff,0xf6,0x02,0x1e,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0x01,0x6a,0x02,0x1e,0x01,0x6a,0x01,0x6a,0xff,0xf6,0xff,0xf6,0xff,0xf6,0x02,0x1e,0x01,0x6a,0x01,0x6a,0xff,0xf6,0xff,0xf6,0xff,0xf6,0x02,0x1e,0x01,0x6a,0x01,0x6a,0xff,0xf6,0xff,0xf6,0xff,0xf6, -0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0xff,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x00,0x02,0x01,0x68,0x01,0x68,0x00,0x08,0x00,0x0f,0x00,0x34,0x00,0x0f,0x00,0x02,0x00,0x73,0x00,0xa3,0x00,0xae,0x00,0x25,0x00,0x25,0x01,0x6e, -0x00,0x1b,0x00,0x1b,0x00,0x1a,0x01,0x3c,0x00,0xa4,0x00,0x66,0x00,0x61,0x00,0x66,0x00,0x84,0x01,0x1a,0x00,0x70,0x00,0x54,0x00,0x54,0x01,0xdb,0x01,0x05,0x01,0xdb,0x01,0xdb,0x00,0xd5,0x01,0x25,0x00,0xfa,0x00,0xea,0x00,0xc5,0x01,0x04,0x00,0xfc,0x01,0x11,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x1c, -0x00,0x01,0x00,0x00,0x00,0x00,0x04,0xcc,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x1c,0x00,0x04,0x04,0xb0,0x00,0x00,0x00,0xb8,0x00,0x80,0x00,0x06,0x00,0x38,0x00,0x7e,0x01,0x7f,0x01,0x92,0x01,0xff,0x02,0x1b,0x02,0xc7,0x02,0xc9,0x02,0xdd,0x03,0x7e,0x03,0x8a,0x03,0x8c,0x03,0xa1,0x03,0xce,0x04,0x5f,0x04,0x91,0x1e,0x85,0x1e,0xf3, -0x20,0x11,0x20,0x15,0x20,0x1e,0x20,0x22,0x20,0x26,0x20,0x30,0x20,0x33,0x20,0x3a,0x20,0x3c,0x20,0x3e,0x20,0x44,0x20,0x7f,0x20,0xa4,0x20,0xa7,0x20,0xac,0x21,0x05,0x21,0x13,0x21,0x16,0x21,0x22,0x21,0x26,0x21,0x2e,0x21,0x5e,0x21,0x95,0x21,0xa8,0x22,0x02,0x22,0x06,0x22,0x0f,0x22,0x12,0x22,0x15,0x22,0x1a,0x22,0x1f,0x22,0x29, -0x22,0x2b,0x22,0x48,0x22,0x61,0x22,0x65,0x23,0x02,0x23,0x10,0x23,0x21,0x25,0x00,0x25,0x02,0x25,0x0c,0x25,0x10,0x25,0x14,0x25,0x18,0x25,0x1c,0x25,0x24,0x25,0x2c,0x25,0x34,0x25,0x3c,0x25,0x6c,0x25,0x80,0x25,0x84,0x25,0x88,0x25,0x8c,0x25,0x93,0x25,0xa1,0x25,0xac,0x25,0xb2,0x25,0xba,0x25,0xbc,0x25,0xc4,0x25,0xcb,0x25,0xcf, -0x25,0xd9,0x25,0xe6,0x26,0x3c,0x26,0x40,0x26,0x42,0x26,0x60,0x26,0x63,0x26,0x66,0x26,0x6b,0xfb,0x02,0xff,0xff,0x00,0x00,0x00,0x20,0x00,0xa0,0x01,0x92,0x01,0xfa,0x02,0x18,0x02,0xc6,0x02,0xc9,0x02,0xd8,0x03,0x7e,0x03,0x84,0x03,0x8c,0x03,0x8e,0x03,0xa3,0x04,0x00,0x04,0x90,0x1e,0x80,0x1e,0xf2,0x20,0x10,0x20,0x13,0x20,0x17, -0x20,0x20,0x20,0x26,0x20,0x30,0x20,0x32,0x20,0x39,0x20,0x3c,0x20,0x3e,0x20,0x44,0x20,0x7f,0x20,0xa3,0x20,0xa7,0x20,0xac,0x21,0x05,0x21,0x13,0x21,0x16,0x21,0x22,0x21,0x26,0x21,0x2e,0x21,0x5b,0x21,0x90,0x21,0xa8,0x22,0x02,0x22,0x06,0x22,0x0f,0x22,0x11,0x22,0x15,0x22,0x19,0x22,0x1e,0x22,0x29,0x22,0x2b,0x22,0x48,0x22,0x60, -0x22,0x64,0x23,0x02,0x23,0x10,0x23,0x20,0x25,0x00,0x25,0x02,0x25,0x0c,0x25,0x10,0x25,0x14,0x25,0x18,0x25,0x1c,0x25,0x24,0x25,0x2c,0x25,0x34,0x25,0x3c,0x25,0x50,0x25,0x80,0x25,0x84,0x25,0x88,0x25,0x8c,0x25,0x90,0x25,0xa0,0x25,0xaa,0x25,0xb2,0x25,0xba,0x25,0xbc,0x25,0xc4,0x25,0xca,0x25,0xcf,0x25,0xd8,0x25,0xe6,0x26,0x3a, -0x26,0x40,0x26,0x42,0x26,0x60,0x26,0x63,0x26,0x65,0x26,0x6a,0xfb,0x01,0xff,0xff,0xff,0xe3,0x00,0x00,0xff,0xae,0xff,0x47,0xff,0x2f,0xfe,0x85,0xfe,0x84,0xfe,0x76,0xfc,0xa0,0xfd,0xd0,0xfd,0xcf,0xfd,0xce,0xfd,0xcd,0xfd,0x9c,0xfd,0x6c,0xe3,0x7e,0xe3,0x12,0xe1,0xf6,0xe1,0xf5,0xe1,0xf4,0xe1,0xf3,0xe1,0xf0,0xe1,0xe7,0xe1,0xe6, -0xe1,0xe1,0xe1,0xe0,0xe1,0xdf,0xe1,0xda,0xe1,0xa0,0xe1,0x7d,0xe1,0x7b,0xe1,0x77,0xe1,0x1f,0xe1,0x12,0xe1,0x10,0xe1,0x05,0xe1,0x02,0xe0,0xfb,0xe0,0xcf,0xe0,0x9e,0xe0,0x8c,0xe0,0x33,0xe0,0x30,0xe0,0x28,0xe0,0x27,0xe0,0x09,0xe0,0x21,0xe0,0x1e,0xe0,0x15,0xe0,0x14,0xdf,0xf8,0xdf,0xe1,0xdf,0xdf,0xdf,0x43,0xdf,0x36,0xdf,0x27, -0xdd,0x49,0xdd,0x48,0xdd,0x3f,0xdd,0x3c,0xdd,0x39,0xdd,0x36,0xdd,0x33,0xdd,0x2c,0xdd,0x25,0xdd,0x1e,0xdd,0x17,0xdd,0x04,0xdc,0xf1,0xdc,0xee,0xdc,0xeb,0xdc,0xe8,0xdc,0xe5,0xdc,0xd9,0xdc,0xd1,0xdc,0xcc,0xdc,0xc5,0xdc,0xc4,0xdc,0xbd,0xdc,0xb8,0xdc,0xb5,0xdc,0xad,0xdc,0xa1,0xdc,0x4e,0xdc,0x4b,0xdc,0x4a,0xdc,0x2d,0xdc,0x2b, -0xdc,0x2a,0xdc,0x27,0x07,0x92,0x00,0x01,0x00,0x00,0x00,0xb6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x03,0x00,0x62,0x00,0x63,0x00,0x64,0x00,0x65,0x00,0x66,0x00,0x67,0x00,0x68,0x00,0x69,0x00,0x6a,0x00,0x6b,0x00,0x6c,0x00,0x6d,0x00,0x10,0x00,0x6e,0x00,0x6f,0x00,0x70,0x00,0x71,0x00,0x72,0x00,0x73,0x00,0x74,0x00,0x75,0x00,0x76,0x00,0x77,0x00,0x78,0x00,0x79,0x00,0x7a,0x00,0x7b,0x00,0x7c,0x00,0x7d,0x00,0x7e,0x00,0x7f, -0x00,0x80,0x00,0x81,0x00,0x82,0x00,0x83,0x00,0x84,0x00,0x85,0x00,0x86,0x00,0x87,0x00,0x88,0x00,0x89,0x00,0x8a,0x00,0x8b,0x00,0x8c,0x00,0x8d,0x00,0x8e,0x00,0x8f,0x00,0x90,0x00,0x91,0x00,0x92,0x00,0x93,0x00,0x94,0x00,0x95,0x00,0x96,0x00,0x97,0x00,0x98,0x00,0x99,0x00,0x9a,0x00,0x9b,0x00,0x9c,0x00,0x9d,0x00,0x9e,0x00,0x9f, -0x00,0xa0,0x00,0xa1,0x00,0xa2,0x00,0xa3,0x00,0xa4,0x00,0xa5,0x00,0xa6,0x00,0xa7,0x00,0xa8,0x00,0xa9,0x00,0xaa,0x00,0xab,0x00,0xac,0x00,0xad,0x00,0xae,0x00,0xaf,0x00,0xb0,0x00,0xb1,0x00,0xb2,0x00,0xb3,0x00,0xb4,0x00,0xb5,0x00,0xb6,0x00,0xb7,0x00,0xb8,0x00,0xb9,0x00,0xba,0x00,0xbb,0x00,0xbc,0x00,0xbd,0x00,0xbe,0x00,0xbf, -0x00,0xc0,0x00,0xc1,0x00,0xc2,0x00,0xc3,0x00,0xc4,0x00,0xc5,0x00,0xc6,0x00,0xc7,0x00,0xc8,0x00,0xc9,0x00,0xca,0x00,0xcb,0x00,0xcc,0x00,0xcd,0x00,0xce,0x00,0xcf,0x00,0xd0,0x00,0xd1,0x00,0xd2,0x00,0xd3,0x00,0xd4,0x00,0xd5,0x00,0xd6,0x00,0xd7,0x00,0xd8,0x00,0xd9,0x00,0xda,0x00,0xdb,0x00,0xdc,0x00,0xdd,0x00,0xde,0x00,0xdf, -0x00,0xe0,0x00,0xe1,0x00,0xe2,0x00,0xe3,0x00,0xe4,0x00,0xe5,0x00,0xe6,0x00,0xe7,0x00,0xe8,0x00,0xe9,0x00,0xea,0x00,0xeb,0x00,0xec,0x00,0xed,0x00,0xee,0x00,0xef,0x00,0xf0,0x00,0xf1,0x00,0xf2,0x00,0xf3,0x00,0xf4,0x00,0xf5,0x00,0xf6,0x00,0xf7,0x00,0xf8,0x00,0xf9,0x00,0xfa,0x00,0xfb,0x00,0xfc,0x00,0xfd,0x00,0xfe,0x00,0xff, -0x01,0x00,0x01,0x01,0x01,0x02,0x01,0x03,0x01,0x04,0x01,0x05,0x01,0x06,0x01,0x07,0x01,0x08,0x01,0x09,0x01,0x0a,0x01,0x0b,0x01,0x0c,0x01,0x0d,0x01,0x0e,0x01,0x0f,0x01,0x10,0x01,0x11,0x01,0x12,0x01,0x13,0x01,0x14,0x01,0x15,0x01,0x16,0x01,0x17,0x01,0x18,0x01,0x19,0x01,0x1a,0x01,0x1b,0x01,0x1c,0x01,0x1d,0x01,0x1e,0x01,0x1f, -0x01,0x20,0x01,0x21,0x01,0x22,0x01,0x23,0x01,0x24,0x01,0x25,0x01,0x26,0x01,0x27,0x01,0x28,0x01,0x29,0x01,0x2a,0x01,0x2b,0x01,0x2c,0x01,0x2d,0x01,0x2e,0x01,0x2f,0x01,0x30,0x01,0x31,0x01,0x32,0x01,0x33,0x01,0x34,0x01,0x35,0x01,0x36,0x01,0x37,0x01,0x38,0x01,0x39,0x01,0x3a,0x01,0x3b,0x01,0x3c,0x01,0x3d,0x01,0x3e,0x01,0x3f, -0x00,0x06,0x02,0x0a,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x04,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x00,0x1d, -0x00,0x1e,0x00,0x1f,0x00,0x20,0x00,0x21,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x2b,0x00,0x2c,0x00,0x2d,0x00,0x2e,0x00,0x2f,0x00,0x30,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x38,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d, -0x00,0x3e,0x00,0x3f,0x00,0x40,0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47,0x00,0x48,0x00,0x49,0x00,0x4a,0x00,0x4b,0x00,0x4c,0x00,0x4d,0x00,0x4e,0x00,0x4f,0x00,0x50,0x00,0x51,0x00,0x52,0x00,0x53,0x00,0x54,0x00,0x55,0x00,0x56,0x00,0x57,0x00,0x58,0x00,0x59,0x00,0x5a,0x00,0x5b,0x00,0x5c,0x00,0x5d, -0x00,0x5e,0x00,0x5f,0x00,0x60,0x00,0x61,0x00,0x00,0x00,0x84,0x00,0x85,0x00,0x87,0x00,0x89,0x00,0x91,0x00,0x96,0x00,0x9c,0x00,0xa1,0x00,0xa0,0x00,0xa2,0x00,0xa4,0x00,0xa3,0x00,0xa5,0x00,0xa7,0x00,0xa9,0x00,0xa8,0x00,0xaa,0x00,0xab,0x00,0xad,0x00,0xac,0x00,0xae,0x00,0xaf,0x00,0xb1,0x00,0xb3,0x00,0xb2,0x00,0xb4,0x00,0xb6, -0x00,0xb5,0x00,0xba,0x00,0xb9,0x00,0xbb,0x00,0xbc,0x02,0x13,0x00,0x70,0x00,0x63,0x00,0x64,0x00,0x68,0x02,0x15,0x00,0x76,0x00,0x9f,0x00,0x6e,0x00,0x6a,0x02,0x27,0x00,0x74,0x00,0x69,0x02,0x41,0x00,0x86,0x00,0x98,0x02,0x3c,0x00,0x71,0x02,0x43,0x02,0x44,0x00,0x66,0x00,0x75,0x02,0x35,0x02,0x38,0x02,0x37,0x01,0x8d,0x02,0x3f, -0x00,0x6b,0x00,0x7a,0x01,0x76,0x00,0xa6,0x00,0xb8,0x00,0x7f,0x00,0x62,0x00,0x6d,0x02,0x3b,0x01,0x40,0x02,0x40,0x02,0x36,0x00,0x6c,0x00,0x7b,0x02,0x16,0x00,0x03,0x00,0x80,0x00,0x83,0x00,0x95,0x01,0x12,0x01,0x13,0x02,0x08,0x02,0x09,0x02,0x10,0x02,0x11,0x02,0x0c,0x02,0x0d,0x00,0xb7,0x02,0x82,0x00,0xbf,0x01,0x38,0x02,0x1e, -0x02,0x23,0x02,0x1a,0x02,0x1b,0x02,0x93,0x02,0x94,0x02,0x14,0x00,0x77,0x02,0x0e,0x02,0x12,0x02,0x17,0x00,0x82,0x00,0x8a,0x00,0x81,0x00,0x8b,0x00,0x88,0x00,0x8d,0x00,0x8e,0x00,0x8f,0x00,0x8c,0x00,0x93,0x00,0x94,0x00,0x00,0x00,0x92,0x00,0x9a,0x00,0x9b,0x00,0x99,0x00,0xf1,0x01,0x4b,0x01,0x52,0x00,0x6f,0x01,0x4e,0x01,0x4f, -0x01,0x50,0x00,0x78,0x01,0x53,0x01,0x51,0x01,0x4c,0x00,0x00,0x40,0x45,0x59,0x58,0x55,0x54,0x53,0x52,0x51,0x50,0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x46,0x45,0x44,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x1f, -0x18,0x14,0x11,0x10,0x0f,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x2c,0x45,0x23,0x46,0x60,0x20,0xb0,0x26,0x60,0xb0,0x04,0x26,0x23,0x48,0x48,0x2d,0x2c,0x45,0x23,0x46,0x23,0x61,0x20,0xb0,0x26,0x61,0xb0,0x04,0x26,0x23,0x48,0x48,0x2d,0x2c,0x45,0x23,0x46,0x60,0xb0,0x20,0x61,0x20,0xb0,0x46,0x60, -0xb0,0x04,0x26,0x23,0x48,0x48,0x2d,0x2c,0x45,0x23,0x46,0x23,0x61,0xb0,0x20,0x60,0x20,0xb0,0x26,0x61,0xb0,0x20,0x61,0xb0,0x04,0x26,0x23,0x48,0x48,0x2d,0x2c,0x45,0x23,0x46,0x60,0xb0,0x40,0x61,0x20,0xb0,0x66,0x60,0xb0,0x04,0x26,0x23,0x48,0x48,0x2d,0x2c,0x45,0x23,0x46,0x23,0x61,0xb0,0x40,0x60,0x20,0xb0,0x26,0x61,0xb0,0x40, -0x61,0xb0,0x04,0x26,0x23,0x48,0x48,0x2d,0x2c,0x01,0x10,0x20,0x3c,0x00,0x3c,0x2d,0x2c,0x20,0x45,0x23,0x20,0xb0,0xcd,0x44,0x23,0x20,0xb8,0x01,0x5a,0x51,0x58,0x23,0x20,0xb0,0x8d,0x44,0x23,0x59,0x20,0xb0,0xed,0x51,0x58,0x23,0x20,0xb0,0x4d,0x44,0x23,0x59,0x20,0xb0,0x04,0x26,0x51,0x58,0x23,0x20,0xb0,0x0d,0x44,0x23,0x59,0x21, -0x21,0x2d,0x2c,0x20,0x20,0x45,0x18,0x68,0x44,0x20,0xb0,0x01,0x60,0x20,0x45,0xb0,0x46,0x76,0x68,0x8a,0x45,0x60,0x44,0x2d,0x2c,0x01,0xb1,0x0b,0x0a,0x43,0x23,0x43,0x65,0x0a,0x2d,0x2c,0x00,0xb1,0x0a,0x0b,0x43,0x23,0x43,0x0b,0x2d,0x2c,0x00,0xb0,0x28,0x23,0x70,0xb1,0x01,0x28,0x3e,0x01,0xb0,0x28,0x23,0x70,0xb1,0x02,0x28,0x45, -0x3a,0xb1,0x02,0x00,0x08,0x0d,0x2d,0x2c,0x20,0x45,0xb0,0x03,0x25,0x45,0x61,0x64,0xb0,0x50,0x51,0x58,0x45,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x49,0xb0,0x0e,0x23,0x44,0x2d,0x2c,0x20,0x45,0xb0,0x00,0x43,0x60,0x44,0x2d,0x2c,0x01,0xb0,0x06,0x43,0xb0,0x07,0x43,0x65,0x0a,0x2d,0x2c,0x20,0x69,0xb0,0x40,0x61,0xb0,0x00,0x8b,0x20, -0xb1,0x2c,0xc0,0x8a,0x8c,0xb8,0x10,0x00,0x62,0x60,0x2b,0x0c,0x64,0x23,0x64,0x61,0x5c,0x58,0xb0,0x03,0x61,0x59,0x2d,0x2c,0x8a,0x03,0x45,0x8a,0x8a,0x87,0xb0,0x11,0x2b,0xb0,0x29,0x23,0x44,0xb0,0x29,0x7a,0xe4,0x18,0x2d,0x2c,0x45,0x65,0xb0,0x2c,0x23,0x44,0x45,0xb0,0x2b,0x23,0x44,0x2d,0x2c,0x4b,0x52,0x58,0x45,0x44,0x1b,0x21, -0x21,0x59,0x2d,0x2c,0x4b,0x51,0x58,0x45,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x01,0xb0,0x05,0x25,0x10,0x23,0x20,0x8a,0xf5,0x00,0xb0,0x01,0x60,0x23,0xed,0xec,0x2d,0x2c,0x01,0xb0,0x05,0x25,0x10,0x23,0x20,0x8a,0xf5,0x00,0xb0,0x01,0x61,0x23,0xed,0xec,0x2d,0x2c,0x01,0xb0,0x06,0x25,0x10,0xf5,0x00,0xed,0xec,0x2d,0x2c,0x46,0x23, -0x46,0x60,0x8a,0x8a,0x46,0x23,0x20,0x46,0x8a,0x60,0x8a,0x61,0xb8,0xff,0x80,0x62,0x23,0x20,0x10,0x23,0x8a,0xb1,0x0c,0x0c,0x8a,0x70,0x45,0x60,0x20,0xb0,0x00,0x50,0x58,0xb0,0x01,0x61,0xb8,0xff,0xba,0x8b,0x1b,0xb0,0x46,0x8c,0x59,0xb0,0x10,0x60,0x68,0x01,0x3a,0x2d,0x2c,0x20,0x45,0xb0,0x03,0x25,0x46,0x52,0x4b,0xb0,0x13,0x51, -0x5b,0x58,0xb0,0x02,0x25,0x46,0x20,0x68,0x61,0xb0,0x03,0x25,0xb0,0x03,0x25,0x3f,0x23,0x21,0x38,0x1b,0x21,0x11,0x59,0x2d,0x2c,0x20,0x45,0xb0,0x03,0x25,0x46,0x50,0x58,0xb0,0x02,0x25,0x46,0x20,0x68,0x61,0xb0,0x03,0x25,0xb0,0x03,0x25,0x3f,0x23,0x21,0x38,0x1b,0x21,0x11,0x59,0x2d,0x2c,0x00,0xb0,0x07,0x43,0xb0,0x06,0x43,0x0b, -0x2d,0x2c,0x21,0x21,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x40,0x00,0x62,0x2d,0x2c,0x21,0xb0,0x80,0x51,0x58,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x20,0x00,0x62,0x1b,0xb2,0x00,0x40,0x2f,0x2b,0x59,0xb0,0x02,0x60,0x2d,0x2c,0x21,0xb0,0xc0,0x51,0x58,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x15,0x55,0x62,0x1b,0xb2,0x00,0x80,0x2f,0x2b,0x59,0xb0,0x02, -0x60,0x2d,0x2c,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x40,0x00,0x62,0x60,0x23,0x21,0x2d,0x2c,0x4b,0x53,0x58,0x8a,0xb0,0x04,0x25,0x49,0x64,0x23,0x45,0x69,0xb0,0x40,0x8b,0x61,0xb0,0x80,0x62,0xb0,0x20,0x61,0x6a,0xb0,0x0e,0x23,0x44,0x23,0x10,0xb0,0x0e,0xf6,0x1b,0x21,0x23,0x8a,0x12,0x11,0x20,0x39,0x2f,0x59,0x2d,0x2c,0x4b,0x53,0x58, -0x20,0xb0,0x03,0x25,0x49,0x64,0x69,0x20,0xb0,0x05,0x26,0xb0,0x06,0x25,0x49,0x64,0x23,0x61,0xb0,0x80,0x62,0xb0,0x20,0x61,0x6a,0xb0,0x0e,0x23,0x44,0xb0,0x04,0x26,0x10,0xb0,0x0e,0xf6,0x8a,0x10,0xb0,0x0e,0x23,0x44,0xb0,0x0e,0xf6,0xb0,0x0e,0x23,0x44,0xb0,0x0e,0xed,0x1b,0x8a,0xb0,0x04,0x26,0x11,0x12,0x20,0x39,0x23,0x20,0x39, -0x2f,0x2f,0x59,0x2d,0x2c,0x45,0x23,0x45,0x60,0x23,0x45,0x60,0x23,0x45,0x60,0x23,0x76,0x68,0x18,0xb0,0x80,0x62,0x20,0x2d,0x2c,0xb0,0x48,0x2b,0x2d,0x2c,0x20,0x45,0xb0,0x00,0x54,0x58,0xb0,0x40,0x44,0x20,0x45,0xb0,0x40,0x61,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x45,0xb1,0x30,0x2f,0x45,0x23,0x45,0x61,0x60,0xb0,0x01,0x60,0x69, -0x44,0x2d,0x2c,0x4b,0x51,0x58,0xb0,0x2f,0x23,0x70,0xb0,0x14,0x23,0x42,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x4b,0x51,0x58,0x20,0xb0,0x03,0x25,0x45,0x69,0x53,0x58,0x44,0x1b,0x21,0x21,0x59,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x45,0xb0,0x14,0x43,0xb0,0x00,0x60,0x63,0xb0,0x01,0x60,0x69,0x44,0x2d,0x2c,0xb0,0x2f,0x45,0x44,0x2d,0x2c,0x45, -0x23,0x20,0x45,0x8a,0x60,0x44,0x2d,0x2c,0x45,0x23,0x45,0x60,0x44,0x2d,0x2c,0x4b,0x23,0x51,0x58,0xb9,0x00,0x33,0xff,0xe0,0xb1,0x34,0x20,0x1b,0xb3,0x33,0x00,0x34,0x00,0x59,0x44,0x44,0x2d,0x2c,0xb0,0x16,0x43,0x58,0xb0,0x03,0x26,0x45,0x8a,0x58,0x64,0x66,0xb0,0x1f,0x60,0x1b,0x64,0xb0,0x20,0x60,0x66,0x20,0x58,0x1b,0x21,0xb0, -0x40,0x59,0xb0,0x01,0x61,0x59,0x23,0x58,0x65,0x59,0xb0,0x29,0x23,0x44,0x23,0x10,0xb0,0x29,0xe0,0x1b,0x21,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0x38,0x1b,0x21,0x21,0x59,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x16,0x43,0x58,0xb0,0x04,0x25,0x45,0x64,0xb0,0x20, -0x60,0x66,0x20,0x58,0x1b,0x21,0xb0,0x40,0x59,0xb0,0x01,0x61,0x23,0x58,0x1b,0x65,0x59,0xb0,0x29,0x23,0x44,0xb0,0x05,0x25,0xb0,0x08,0x25,0x08,0x20,0x58,0x02,0x1b,0x03,0x59,0xb0,0x04,0x25,0x10,0xb0,0x05,0x25,0x20,0x46,0xb0,0x04,0x25,0x23,0x42,0x3c,0xb0,0x04,0x25,0xb0,0x07,0x25,0x08,0xb0,0x07,0x25,0x10,0xb0,0x06,0x25,0x20, -0x46,0xb0,0x04,0x25,0xb0,0x01,0x60,0x23,0x42,0x3c,0x20,0x58,0x01,0x1b,0x00,0x59,0xb0,0x04,0x25,0x10,0xb0,0x05,0x25,0xb0,0x29,0xe0,0xb0,0x29,0x20,0x45,0x65,0x44,0xb0,0x07,0x25,0x10,0xb0,0x06,0x25,0xb0,0x29,0xe0,0xb0,0x05,0x25,0xb0,0x08,0x25,0x08,0x20,0x58,0x02,0x1b,0x03,0x59,0xb0,0x05,0x25,0xb0,0x03,0x25,0x43,0x48,0xb0, -0x04,0x25,0xb0,0x07,0x25,0x08,0xb0,0x06,0x25,0xb0,0x03,0x25,0xb0,0x01,0x60,0x43,0x48,0x1b,0x21,0x59,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x2d,0x2c,0x02,0xb0,0x04,0x25,0x20,0x20,0x46,0xb0,0x04,0x25,0x23,0x42,0xb0,0x05,0x25,0x08,0xb0,0x03,0x25,0x45,0x48,0x21,0x21,0x21,0x21,0x2d,0x2c,0x02,0xb0,0x03,0x25,0x20,0xb0,0x04,0x25, -0x08,0xb0,0x02,0x25,0x43,0x48,0x21,0x21,0x21,0x2d,0x2c,0x45,0x23,0x20,0x45,0x18,0x20,0xb0,0x00,0x50,0x20,0x58,0x23,0x65,0x23,0x59,0x23,0x68,0x20,0xb0,0x40,0x50,0x58,0x21,0xb0,0x40,0x59,0x23,0x58,0x65,0x59,0x8a,0x60,0x44,0x2d,0x2c,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0x20,0x45,0x8a,0x60,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c, -0x4b,0x54,0x58,0x20,0x45,0x8a,0x60,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0x38,0x1b,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x00,0x21,0x4b,0x54,0x58,0x38,0x1b,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0xb0,0x46,0x2b,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0xb0,0x47, -0x2b,0x1b,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0xb0,0x48,0x2b,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0xb0,0x49,0x2b,0x1b,0x21,0x21,0x21,0x59,0x2d,0x2c,0x20,0x8a,0x08,0x23,0x4b,0x53,0x8a,0x4b,0x51,0x5a,0x58,0x23,0x38,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x00,0xb0,0x02,0x25,0x49,0xb0, -0x00,0x53,0x58,0x20,0xb0,0x40,0x38,0x11,0x1b,0x21,0x59,0x2d,0x2c,0x01,0x46,0x23,0x46,0x60,0x23,0x46,0x61,0x23,0x20,0x10,0x20,0x46,0x8a,0x61,0xb8,0xff,0x80,0x62,0x8a,0xb1,0x40,0x40,0x8a,0x70,0x45,0x60,0x68,0x3a,0x2d,0x2c,0x20,0x8a,0x23,0x49,0x64,0x8a,0x23,0x53,0x58,0x3c,0x1b,0x21,0x59,0x2d,0x2c,0x4b,0x52,0x58,0x7d,0x1b, -0x7a,0x59,0x2d,0x2c,0xb0,0x12,0x00,0x4b,0x01,0x4b,0x54,0x42,0x2d,0x2c,0xb1,0x02,0x00,0x42,0xb1,0x23,0x01,0x88,0x51,0xb1,0x40,0x01,0x88,0x53,0x5a,0x58,0xb9,0x10,0x00,0x00,0x20,0x88,0x54,0x58,0xb2,0x02,0x01,0x02,0x43,0x60,0x42,0x59,0xb1,0x24,0x01,0x88,0x51,0x58,0xb9,0x20,0x00,0x00,0x40,0x88,0x54,0x58,0xb2,0x02,0x02,0x02, -0x43,0x60,0x42,0xb1,0x24,0x01,0x88,0x54,0x58,0xb2,0x02,0x20,0x02,0x43,0x60,0x42,0x00,0x4b,0x01,0x4b,0x52,0x58,0xb2,0x02,0x08,0x02,0x43,0x60,0x42,0x59,0x1b,0xb9,0x40,0x00,0x00,0x80,0x88,0x54,0x58,0xb2,0x02,0x04,0x02,0x43,0x60,0x42,0x59,0xb9,0x40,0x00,0x00,0x80,0x63,0xb8,0x01,0x00,0x88,0x54,0x58,0xb2,0x02,0x08,0x02,0x43, -0x60,0x42,0x59,0xb9,0x40,0x00,0x01,0x00,0x63,0xb8,0x02,0x00,0x88,0x54,0x58,0xb2,0x02,0x10,0x02,0x43,0x60,0x42,0x59,0xb9,0x40,0x00,0x02,0x00,0x63,0xb8,0x04,0x00,0x88,0x54,0x58,0xb2,0x02,0x40,0x02,0x43,0x60,0x42,0x59,0x59,0x59,0x59,0x59,0x2d,0x2c,0x45,0x18,0x68,0x23,0x4b,0x51,0x58,0x23,0x20,0x45,0x20,0x64,0xb0,0x40,0x50, -0x58,0x7c,0x59,0x68,0x8a,0x60,0x59,0x44,0x2d,0x2c,0xb0,0x00,0x16,0xb0,0x02,0x25,0xb0,0x02,0x25,0x01,0xb0,0x01,0x23,0x3e,0x00,0xb0,0x02,0x23,0x3e,0xb1,0x01,0x02,0x06,0x0c,0xb0,0x0a,0x23,0x65,0x42,0xb0,0x0b,0x23,0x42,0x01,0xb0,0x01,0x23,0x3f,0x00,0xb0,0x02,0x23,0x3f,0xb1,0x01,0x02,0x06,0x0c,0xb0,0x06,0x23,0x65,0x42,0xb0, -0x07,0x23,0x42,0xb0,0x01,0x16,0x01,0x2d,0x2c,0x7a,0x8a,0x10,0x45,0x23,0xf5,0x18,0x2d,0x00,0x00,0x00,0x40,0x64,0x09,0x03,0x04,0xfd,0x01,0xf5,0x50,0x28,0x1f,0xf2,0x46,0x28,0x1f,0xf1,0x46,0x2a,0x1f,0xf0,0x46,0x35,0x1f,0x8b,0xee,0x9b,0xee,0xab,0xee,0x03,0x6b,0xef,0x8b,0xef,0x02,0xbb,0xef,0x01,0xa4,0xef,0x01,0x1b,0xef,0x5b, -0xef,0x6b,0xef,0x03,0x04,0xec,0x44,0xec,0x02,0x0a,0xeb,0x46,0xff,0x1f,0xe7,0xe4,0x26,0x1f,0xe6,0xe4,0x3d,0x1f,0xe5,0xe4,0x1e,0x1f,0xe3,0xe2,0x46,0x1f,0x0b,0xe2,0x01,0x40,0xe2,0x46,0x16,0x1f,0xe1,0xe0,0x46,0x1f,0xbb,0xe0,0xcb,0xe0,0xdb,0xe0,0x03,0x40,0xe0,0x33,0x36,0x46,0xe0,0x46,0x18,0x1f,0xbc,0x01,0x14,0x00,0x3e,0x01, -0x12,0x00,0x55,0x01,0x13,0x40,0x0c,0x3d,0x03,0x55,0xdf,0x3d,0xdd,0x55,0xde,0x3d,0xdc,0x55,0xbb,0x41,0x09,0x01,0x16,0x00,0x01,0x00,0x54,0x01,0x16,0x00,0x64,0x01,0x16,0x00,0x02,0xff,0xc0,0x01,0x16,0xb3,0x0c,0x16,0x46,0x20,0xb8,0x01,0x16,0xb2,0x01,0x02,0x00,0xbc,0x01,0x16,0x00,0x10,0x01,0x16,0x00,0x02,0x01,0x15,0xb2,0xdc, -0x3d,0x1f,0xb8,0x01,0x11,0x40,0x63,0x03,0xff,0x1f,0x10,0xdd,0x20,0xdd,0x40,0xdd,0x50,0xdd,0x80,0xdd,0xb0,0xdd,0x06,0x20,0xdc,0x50,0xdc,0x80,0xdc,0xb0,0xdc,0x04,0x0f,0xdc,0x01,0xd0,0x15,0x33,0x1f,0x5f,0xc8,0x6f,0xc8,0x7f,0xc8,0x03,0x5f,0xc3,0x6f,0xc3,0x7f,0xc3,0x03,0xbf,0xc2,0x01,0xc1,0x50,0x26,0x1f,0x70,0xbe,0x01,0x20, -0xbe,0x30,0xbe,0xc0,0xbe,0x03,0x70,0xbe,0x80,0xbe,0x02,0x0f,0xbc,0x1f,0xbc,0x02,0x2f,0xbc,0x3f,0xbc,0x6f,0xbc,0xaf,0xbc,0xdf,0xbc,0x05,0xb9,0xad,0x26,0x1f,0x20,0xb8,0x30,0xb8,0x50,0xb8,0x70,0xb8,0x80,0xb8,0x05,0xb8,0xff,0xc0,0x40,0x1c,0xb8,0x13,0x29,0x46,0x10,0xb7,0x01,0x20,0xb7,0x50,0xb7,0x80,0xb7,0xb0,0xb7,0x04,0x80, -0xb5,0xb0,0xb5,0x02,0x0f,0xb3,0x3f,0xb3,0xef,0xb3,0x03,0xb8,0x01,0x0d,0x40,0x2b,0xaa,0x48,0x1f,0x80,0xb0,0x90,0xb0,0x02,0xb0,0xb0,0xc0,0xb0,0xd0,0xb0,0x03,0x2f,0xaf,0x3f,0xaf,0x02,0xa0,0xad,0xb0,0xad,0x02,0xc0,0xad,0xd0,0xad,0x02,0x2f,0xac,0x3f,0xac,0x02,0x9f,0xab,0x01,0xc0,0xaa,0xd0,0xaa,0x02,0x41,0x0f,0x01,0x0f,0x00, -0x32,0x01,0x0e,0x00,0x55,0x00,0x00,0x01,0x0e,0x00,0x10,0x01,0x0e,0x00,0x20,0x01,0x0e,0x00,0x70,0x01,0x0e,0x00,0x04,0x00,0x0f,0x01,0x10,0x40,0x15,0x01,0x50,0x9c,0x60,0x9c,0x70,0x9c,0x03,0x99,0x96,0x26,0x1f,0x98,0x46,0x26,0x1f,0x30,0x97,0x40,0x97,0x02,0xb8,0xff,0xc0,0xb3,0x96,0x16,0x1c,0x46,0xb8,0xff,0xc0,0x40,0x2a,0x96, -0x0e,0x11,0x46,0x95,0x1b,0xff,0x1f,0x0f,0x94,0xaf,0x94,0xbf,0x94,0x03,0x40,0x94,0x1d,0x31,0x46,0x40,0x94,0x16,0x1b,0x46,0x40,0x94,0x0c,0x0f,0x46,0x0f,0x93,0x2f,0x93,0x3f,0x93,0x7f,0x93,0xef,0x93,0x05,0x0f,0xba,0x01,0x0c,0x00,0x6f,0x01,0x0c,0x40,0x20,0x02,0x92,0x8d,0x26,0x1f,0x91,0x53,0xff,0x1f,0xdf,0x90,0x01,0x30,0x90, -0x01,0x1f,0x90,0x2f,0x90,0x02,0x6f,0x90,0x7f,0x90,0x02,0x00,0x8f,0x10,0x8f,0x20,0x8f,0x03,0xb8,0xff,0xc0,0x40,0x20,0x8f,0x18,0x1c,0x46,0x20,0x8e,0x30,0x8e,0x02,0x4f,0x8d,0x5f,0x8d,0x6f,0x8d,0x03,0x30,0x8c,0x01,0x0f,0x8c,0x1f,0x8c,0x2f,0x8c,0x03,0x40,0x8c,0x10,0x13,0x46,0x10,0xbf,0x01,0x0b,0x00,0x20,0x01,0x0b,0x00,0x30, -0x01,0x0b,0x00,0x03,0xff,0xc0,0x01,0x0b,0xb2,0x17,0x20,0x46,0xb9,0xff,0xc0,0x01,0x0b,0x40,0x50,0x10,0x14,0x46,0x8b,0x82,0x26,0x1f,0x89,0x4a,0x3c,0x1f,0x88,0x87,0x3d,0x1f,0x87,0x84,0x3c,0x1f,0x86,0x4a,0xff,0x1f,0x9f,0x85,0x01,0x10,0x84,0x20,0x84,0x30,0x84,0x03,0x30,0x83,0x01,0x7f,0x82,0x01,0x40,0x82,0x09,0x0c,0x46,0x73, -0x50,0x26,0x1f,0x6f,0x46,0x35,0x1f,0x6e,0x46,0x35,0x1f,0x1a,0x01,0x18,0x55,0x19,0x33,0x18,0x55,0x07,0x33,0x03,0x55,0x06,0x03,0xff,0x1f,0x60,0x50,0x26,0x1f,0x5f,0x50,0x26,0x1f,0xb9,0xff,0xe0,0x01,0x07,0xb2,0x1f,0x26,0x46,0xb9,0xff,0xe0,0x01,0x07,0x40,0x1f,0x13,0x1c,0x46,0x5e,0x5a,0x48,0x1f,0x5c,0x46,0x31,0x1f,0x5b,0x5a, -0x48,0x1f,0x5a,0x46,0x31,0x1f,0x13,0x32,0x12,0x55,0x05,0x01,0x03,0x55,0x04,0x32,0x03,0x55,0xb8,0x01,0x08,0xb5,0x1b,0x3c,0x1f,0x0f,0x03,0x01,0xb9,0x01,0x19,0x01,0x18,0xb2,0x35,0x1f,0x40,0xb8,0x01,0x18,0xb2,0x17,0x28,0x46,0xb8,0x01,0x0a,0x40,0x25,0x50,0x26,0x1f,0x52,0x50,0x1b,0x1f,0xef,0x51,0xff,0x51,0x02,0x40,0x51,0x35, -0x38,0x46,0x40,0x51,0x25,0x28,0x46,0xcf,0x50,0x01,0xdf,0x4c,0x01,0x4c,0x46,0x1d,0x1f,0x4b,0x46,0x48,0x1f,0x50,0xb8,0x01,0x1b,0x40,0x5a,0x01,0x4a,0x46,0x26,0x1f,0x49,0x46,0x35,0x1f,0x48,0x46,0x35,0x1f,0x47,0x46,0x35,0x1f,0xaf,0x46,0x01,0xdf,0x46,0xef,0x46,0x02,0x80,0x46,0x01,0x16,0x32,0x15,0x55,0x11,0x01,0x0f,0x55,0x10, -0x32,0x0f,0x55,0x02,0x01,0x00,0x55,0x01,0x00,0x01,0x1f,0x1f,0x0f,0x3f,0x0f,0x5f,0x0f,0x7f,0x0f,0x04,0x0f,0x0f,0x2f,0x0f,0x4f,0x0f,0x6f,0x0f,0x8f,0x0f,0xdf,0x0f,0xff,0x0f,0x07,0x3f,0x0f,0x7f,0x0f,0xef,0x0f,0x03,0x6f,0x00,0x01,0x4f,0x00,0x01,0xa0,0x16,0x01,0x05,0x01,0xb8,0x01,0x90,0xb1,0x54,0x53,0x2b,0x2b,0x4b,0xb8,0x07, -0xff,0x52,0x4b,0xb0,0x09,0x50,0x5b,0xb0,0x01,0x88,0xb0,0x25,0x53,0xb0,0x01,0x88,0xb0,0x40,0x51,0x5a,0xb0,0x06,0x88,0xb0,0x00,0x55,0x5a,0x5b,0x58,0xb1,0x01,0x01,0x8e,0x59,0x85,0x8d,0x8d,0x00,0x42,0x1d,0x4b,0xb0,0x32,0x53,0x58,0xb0,0x60,0x1d,0x59,0x4b,0xb0,0x64,0x53,0x58,0xb0,0x40,0x1d,0x59,0x4b,0xb0,0x80,0x53,0x58,0xb0, -0x10,0x1d,0xb1,0x16,0x00,0x42,0x59,0x73,0x74,0x73,0x74,0x75,0x2b,0x2b,0x2b,0x2b,0x2b,0x01,0x73,0x74,0x75,0x2b,0x2b,0x2b,0x2b,0x73,0x00,0x2b,0x2b,0x74,0x74,0x2b,0x2b,0x73,0x2b,0x2b,0x2b,0x2b,0x73,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x2b,0x00,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x00,0x2b,0x01,0x2b, -0x73,0x74,0x74,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x73,0x00,0x2b,0x73,0x74,0x74,0x74,0x2b,0x75,0x73,0x74,0x74,0x74,0x2b,0x2b,0x73,0x73,0x2b,0x2b,0x2b,0x73,0x2b,0x01,0x2b,0x2b,0x73,0x2b,0x2b,0x00,0x73,0x74,0x73,0x2b,0x01,0x73,0x73,0x74,0x00,0x73,0x74,0x74,0x73,0x74,0x2b,0x73,0x01,0x73,0x00,0x73,0x74,0x2b,0x73,0x2b, -0x73,0x74,0x01,0x73,0x74,0x75,0x00,0x2b,0x73,0x01,0x74,0x00,0x74,0x2b,0x73,0x73,0x73,0x2b,0x2b,0x73,0x5f,0x73,0x2b,0x74,0x74,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x74,0x2b,0x2b,0x5e,0x73,0x2b,0x00,0x2b,0x2b,0x2b,0x01,0x2b,0x5e,0x73,0x00,0x73,0x73,0x73,0x74,0x73,0x01,0x2b,0x2b,0x2b,0x00,0x2b,0x73,0x18,0x5f,0x5e,0x00,0x00, -0x05,0xcc,0x05,0xcc,0x00,0x7d,0x05,0x45,0x00,0x15,0x00,0x60,0x05,0x45,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x3a,0x00,0x14,0x00,0x77,0x00,0x00,0xff,0xec,0x00,0x00,0x00,0x00,0xff,0xec,0x00,0x00,0x00,0x00,0xff,0xec,0x00,0x00,0xfe,0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xb4,0x00,0xbd,0x00,0xaa,0x00,0xa0,0x00,0xc8,0x00,0xb4,0x00,0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x7e,0x00,0xa5,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xbf,0x00,0xc9,0x00,0xab,0x00,0x8c,0x00,0xbc,0x00,0x9b, -0x00,0x8d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb9,0x00,0xb4,0x00,0x7c,0x00,0x00,0x00,0x00,0x00,0x94,0x00,0x5f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x01,0xa8,0x00,0x6f,0x00,0x78,0x00,0xa4,0x00,0xc8,0x00,0x83,0x00,0x8d,0x00,0xbb,0x00,0x5e,0x01,0x8a,0x01,0x03,0x00,0x60,0x00,0x74,0x00,0x81,0x00,0xb8,0x00,0xc0,0x00,0x50,0x04,0xb1,0x04,0xc3,0xfe,0x4c,0x00,0xeb,0x01,0xb2,0x00,0xc3,0x01,0x09,0x00,0x7b,0x01,0x2b,0x02,0x96,0x00,0xc9,0x00,0x96,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x92,0x00,0xa8,0x00,0x6b,0x00,0x92,0x00,0xb7,0x00,0x6b,0x00,0x9b,0x00,0x00,0x00,0x00,0x02,0xf2,0x00,0x92,0x02,0x3e,0x00,0x6e,0x02,0xa5,0x03,0x45,0x00,0x89,0x00,0xa0,0x00,0x60,0x02,0x4c,0x00,0x00,0x00,0xc3,0x00,0x00, -0x01,0x4e,0x00,0xa4,0x01,0x5b,0x00,0x5e,0x00,0x80,0x00,0x69,0x00,0x6f,0x00,0x00,0x00,0x5e,0x00,0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x26,0x03,0x4a,0x00,0x87,0x00,0x7b,0x00,0x00,0x00,0x75,0x00,0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x82,0x02,0x33,0x00,0x0b,0xff,0xf4, -0x00,0x83,0x00,0x89,0x00,0x8f,0x00,0x96,0x00,0x69,0x00,0x71,0x00,0x5b,0x00,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb2,0x02,0x03,0x00,0x00,0x00,0x8d,0x03,0x1f,0x00,0xbb,0x00,0xae,0x00,0xb5,0x00,0x00,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xa9,0x03,0x70,0x02,0xbc,0x02,0x08,0xfd,0x99,0x00,0x91, -0x00,0x91,0x00,0x4d,0x00,0x4d,0x00,0x64,0x00,0x64,0x01,0x81,0x00,0x9f,0x00,0xa8,0xfe,0x68,0xfe,0x9c,0x00,0x9b,0x01,0x45,0x01,0x45,0x00,0x90,0xfe,0xf6,0x00,0x17,0x00,0x7a,0x05,0x45,0x02,0x4d,0x00,0x0c,0xff,0xee,0x05,0x98,0x02,0x8b,0x00,0x6e,0x00,0x4c,0x00,0x62,0x00,0x46,0x00,0xe8,0x00,0x44,0x05,0x11,0x00,0x00,0x00,0x2c, -0x00,0x2c,0x00,0x2c,0x00,0x2c,0x00,0x54,0x00,0x7e,0x01,0x30,0x02,0x30,0x03,0x06,0x04,0x08,0x04,0x24,0x04,0x5c,0x04,0x92,0x05,0x0c,0x05,0x4a,0x05,0x76,0x05,0x92,0x05,0xac,0x05,0xda,0x06,0x5c,0x06,0xa8,0x07,0x22,0x07,0xe8,0x08,0x32,0x08,0xbc,0x09,0x64,0x09,0x9e,0x0a,0x6a,0x0b,0x0e,0x0b,0x34,0x0b,0x78,0x0b,0xc8,0x0c,0x02, -0x0c,0x52,0x0c,0xc8,0x0e,0x08,0x0e,0x6a,0x0e,0xee,0x0f,0x80,0x0f,0xda,0x10,0x1e,0x10,0x58,0x10,0xdc,0x11,0x20,0x11,0x66,0x11,0xb0,0x12,0x18,0x12,0x3a,0x12,0xd0,0x13,0x32,0x13,0xa4,0x13,0xfc,0x14,0x8a,0x15,0x06,0x15,0xb6,0x15,0xee,0x16,0x46,0x16,0xaa,0x17,0xa0,0x18,0x24,0x18,0x86,0x18,0xd8,0x19,0x04,0x19,0x34,0x19,0x5c, -0x19,0xa4,0x19,0xb8,0x19,0xd6,0x1a,0x84,0x1b,0x02,0x1b,0x88,0x1c,0x0a,0x1c,0x94,0x1c,0xf4,0x1d,0xa2,0x1d,0xf2,0x1e,0x2e,0x1e,0x7e,0x1e,0xf2,0x1f,0x22,0x1f,0xb8,0x20,0x0e,0x20,0x72,0x20,0xfa,0x21,0x80,0x21,0xd4,0x22,0x66,0x22,0xbe,0x23,0x18,0x23,0x82,0x24,0x72,0x24,0xee,0x25,0x7a,0x25,0xbc,0x26,0x3c,0x26,0x56,0x26,0xd6, -0x27,0x38,0x27,0x62,0x27,0xdc,0x28,0x76,0x29,0x40,0x29,0xc4,0x29,0xec,0x2a,0xf4,0x2b,0x20,0x2c,0x22,0x2c,0xb4,0x2d,0x04,0x2d,0x26,0x2d,0xfc,0x2e,0x06,0x2e,0x66,0x2e,0xba,0x2f,0x16,0x2f,0x9e,0x2f,0xbc,0x30,0x2a,0x30,0x6c,0x30,0x74,0x30,0xc8,0x31,0x08,0x31,0x64,0x31,0xb2,0x31,0xd8,0x31,0xf6,0x32,0x18,0x32,0x92,0x32,0xaa, -0x32,0xc2,0x32,0xda,0x32,0xf2,0x33,0x0c,0x33,0x24,0x33,0x94,0x33,0xa8,0x33,0xc0,0x33,0xd8,0x33,0xf0,0x34,0x0a,0x34,0x22,0x34,0x3a,0x34,0x52,0x34,0x6c,0x34,0xe8,0x35,0x00,0x35,0x18,0x35,0x30,0x35,0x48,0x35,0x60,0x35,0x7a,0x35,0xe4,0x36,0x92,0x36,0xaa,0x36,0xc2,0x36,0xda,0x36,0xf4,0x37,0x0c,0x37,0x6a,0x38,0x22,0x38,0x3a, -0x38,0x50,0x38,0x6a,0x38,0x88,0x38,0xa4,0x38,0xbc,0x39,0x9c,0x39,0xb0,0x39,0xc8,0x39,0xde,0x39,0xf4,0x3a,0x0c,0x3a,0x28,0x3a,0x3e,0x3a,0x5c,0x3a,0x80,0x3b,0x32,0x3b,0x48,0x3b,0x60,0x3b,0x76,0x3b,0x8c,0x3b,0xa2,0x3b,0xba,0x3c,0x06,0x3c,0xc4,0x3c,0xdc,0x3c,0xf2,0x3d,0x0a,0x3d,0x24,0x3d,0x3a,0x3d,0xbe,0x3d,0xd6,0x3d,0xee, -0x3e,0x06,0x3e,0x1e,0x3e,0x34,0x3e,0x48,0x3e,0x5c,0x3e,0x74,0x3e,0x8a,0x3e,0xa2,0x3e,0xb8,0x3e,0xd0,0x3e,0xe2,0x3e,0xfa,0x3f,0x10,0x3f,0x28,0x3f,0xc0,0x3f,0xc8,0x40,0x68,0x40,0x80,0x40,0x96,0x40,0xae,0x40,0xc4,0x40,0xdc,0x40,0xee,0x41,0x02,0x41,0x16,0x41,0x2e,0x41,0x46,0x41,0x5e,0x41,0x74,0x41,0x8c,0x41,0xa2,0x41,0xba, -0x41,0xcc,0x41,0xde,0x41,0xf4,0x42,0x0c,0x42,0x90,0x42,0xf6,0x43,0x68,0x43,0x80,0x43,0x98,0x43,0xb0,0x43,0xc8,0x43,0xe0,0x43,0xf6,0x44,0x0a,0x44,0x1e,0x44,0x36,0x44,0x66,0x44,0xca,0x45,0x38,0x45,0x50,0x45,0x66,0x45,0x7a,0x45,0x8e,0x46,0x02,0x46,0x1a,0x46,0x6a,0x46,0x7e,0x46,0x92,0x46,0xa8,0x46,0xc0,0x46,0xd4,0x46,0xe0, -0x47,0x2e,0x47,0x90,0x47,0xa8,0x47,0xc0,0x47,0xd4,0x47,0xe8,0x48,0x00,0x48,0x16,0x48,0x30,0x48,0xcc,0x49,0x40,0x49,0x58,0x49,0x6e,0x49,0x86,0x49,0x9c,0x49,0xb6,0x49,0xd0,0x4a,0x4a,0x4b,0x02,0x4b,0x1a,0x4b,0x30,0x4b,0x44,0x4b,0x58,0x4b,0x70,0x4b,0x88,0x4b,0xa0,0x4b,0xb6,0x4b,0xce,0x4b,0xe4,0x4b,0xf8,0x4c,0x0c,0x4c,0x24, -0x4c,0x3a,0x4c,0x46,0x4c,0x52,0x4c,0x6a,0x4c,0x80,0x4c,0xd4,0x4d,0x46,0x4d,0x5e,0x4d,0x76,0x4d,0x8e,0x4d,0xa6,0x4d,0xbe,0x4d,0xd6,0x4d,0xfa,0x4e,0x14,0x4e,0x2e,0x4e,0x48,0x4e,0x5a,0x4e,0x6e,0x4e,0x86,0x4e,0x9e,0x4e,0xb6,0x4e,0xce,0x4e,0xe8,0x4f,0x00,0x4f,0x16,0x4f,0x2e,0x4f,0x40,0x4f,0x58,0x4f,0x6e,0x4f,0xb2,0x50,0x10, -0x51,0x02,0x52,0x32,0x52,0x4a,0x52,0x60,0x52,0x78,0x52,0x8e,0x52,0x9a,0x52,0xa6,0x52,0xb2,0x52,0xbe,0x52,0xe6,0x53,0x10,0x53,0x28,0x53,0x60,0x53,0x78,0x53,0xf8,0x54,0x36,0x54,0x8e,0x54,0xd4,0x54,0xfc,0x55,0x52,0x55,0x6a,0x55,0x8c,0x55,0xac,0x56,0x02,0x56,0x22,0x56,0x3a,0x56,0xa6,0x57,0x62,0x57,0x7c,0x57,0x84,0x57,0x8c, -0x57,0xac,0x58,0x0e,0x58,0x16,0x58,0x1e,0x58,0x26,0x58,0xc8,0x58,0xd0,0x58,0xd8,0x59,0x2a,0x59,0x32,0x59,0x3a,0x59,0x98,0x59,0xa0,0x59,0xd4,0x59,0xdc,0x5a,0x2c,0x5a,0x34,0x5a,0x3c,0x5a,0xd4,0x5a,0xdc,0x5b,0x44,0x5c,0x02,0x5c,0x1c,0x5c,0x36,0x5c,0x4c,0x5c,0x62,0x5c,0x78,0x5c,0x8e,0x5c,0xa8,0x5d,0x4a,0x5d,0xec,0x5e,0x76, -0x5f,0x14,0x5f,0xa8,0x60,0x36,0x60,0x8e,0x61,0x2a,0x61,0x78,0x61,0x80,0x62,0x24,0x62,0x94,0x62,0xf8,0x63,0xb8,0x63,0xc0,0x64,0x38,0x64,0xbc,0x65,0x4c,0x65,0xd2,0x66,0x30,0x66,0x82,0x67,0x14,0x67,0xb4,0x68,0x2a,0x68,0xd4,0x68,0xee,0x69,0x08,0x69,0x1e,0x69,0x34,0x69,0x4a,0x69,0x52,0x69,0x6c,0x69,0xe0,0x69,0xf8,0x6a,0x96, -0x6a,0x9e,0x6a,0xa6,0x6a,0xc0,0x6a,0xc8,0x6b,0x42,0x6b,0xa4,0x6b,0xfa,0x6c,0x12,0x6c,0x1e,0x6c,0x36,0x6c,0x7c,0x6c,0x84,0x6c,0xec,0x6c,0xf4,0x6c,0xfc,0x6d,0x60,0x6d,0x68,0x6e,0x1e,0x6e,0xea,0x6f,0x58,0x6f,0x70,0x6f,0xdc,0x70,0x3e,0x70,0x46,0x70,0x4e,0x70,0x56,0x70,0x8a,0x70,0x92,0x70,0x9a,0x70,0xa2,0x71,0x0c,0x71,0x14, -0x71,0x1c,0x71,0x5c,0x71,0xaa,0x71,0xf8,0x72,0x5e,0x72,0xba,0x73,0x2a,0x73,0x86,0x74,0x1e,0x74,0x9e,0x75,0x1c,0x75,0x24,0x75,0xbe,0x76,0x30,0x76,0x56,0x76,0xc4,0x76,0xcc,0x77,0x88,0x78,0x2c,0x78,0x7e,0x78,0x94,0x79,0x12,0x79,0x6a,0x79,0xea,0x7a,0x22,0x7a,0x2a,0x7a,0x56,0x7a,0x5e,0x7a,0x66,0x7a,0x96,0x7a,0x9e,0x7b,0x2c, -0x7b,0x34,0x7b,0x80,0x7b,0xd4,0x7c,0x1c,0x7c,0x86,0x7c,0xd6,0x7d,0x46,0x7d,0x90,0x7e,0x22,0x7e,0xae,0x7f,0x14,0x7f,0x20,0x7f,0x38,0x7f,0xc6,0x7f,0xde,0x80,0x64,0x80,0x6c,0x80,0x7e,0x80,0x96,0x80,0x9e,0x81,0x1a,0x81,0x7c,0x81,0xee,0x82,0x04,0x82,0x10,0x82,0x26,0x82,0x5c,0x82,0x96,0x82,0xd0,0x82,0xe8,0x83,0x00,0x83,0x18, -0x83,0x2e,0x83,0x48,0x83,0x60,0x83,0x78,0x83,0x90,0x83,0xac,0x83,0xc8,0x83,0xdc,0x83,0xf0,0x84,0x04,0x84,0x2a,0x84,0x50,0x84,0x7a,0x84,0xa8,0x84,0xd4,0x85,0x18,0x85,0x64,0x85,0xb2,0x85,0xe4,0x86,0x34,0x86,0x70,0x86,0xa6,0x87,0xc8,0x87,0xe4,0x88,0x0e,0x88,0x3c,0x88,0x6a,0x88,0xaa,0x88,0xb4,0x88,0xd6,0x89,0x28,0x89,0x70, -0x8a,0x26,0x8b,0x20,0x8b,0xc2,0x8c,0x96,0x8d,0x38,0x8d,0xe4,0x8e,0x72,0x8f,0x30,0x8f,0xa4,0x8f,0xc8,0x8f,0xec,0x90,0x12,0x90,0x3c,0x90,0x6a,0x90,0x9c,0x90,0xcc,0x90,0xfc,0x91,0x40,0x91,0x8e,0x91,0xea,0x92,0x80,0x92,0xe2,0x93,0x18,0x93,0x70,0x93,0x8a,0x93,0xac,0x93,0xec,0x94,0x98,0x94,0xb2,0x94,0xf6,0x95,0x4a,0x96,0x08, -0x96,0x70,0x96,0xac,0x97,0x0c,0x97,0x6c,0x97,0x9e,0x97,0xc4,0x98,0x02,0x98,0x40,0x98,0x58,0x98,0x6e,0x98,0x8e,0x98,0xaa,0x98,0xc8,0x98,0xe4,0x99,0x08,0x99,0x2a,0x99,0x4e,0x99,0x72,0x99,0xa0,0x99,0xc6,0x99,0xea,0x9a,0x14,0x9a,0x3e,0x9a,0x72,0x9a,0x9a,0x9a,0xc2,0x9a,0xf4,0x9b,0x1e,0x9b,0x48,0x9b,0x7c,0x9b,0xa4,0x9b,0xcc, -0x9b,0xfe,0x9c,0x2e,0x9c,0x60,0x9c,0x9e,0x9c,0xcc,0x9c,0xfc,0x9d,0x3a,0x9d,0x6a,0x9d,0x98,0x9d,0xd6,0x9e,0x06,0x9e,0x34,0x9e,0x74,0x9e,0xb6,0x9e,0xf8,0x9f,0x4c,0x9f,0x62,0x9f,0x78,0x9f,0x8e,0x9f,0xa4,0x9f,0xba,0xa1,0x6e,0xa4,0x90,0xa7,0x9c,0xa7,0xb0,0xa7,0xd8,0xa7,0xf0,0xa8,0x1c,0xa8,0x30,0xa8,0x44,0xa8,0x5a,0xa8,0x70, -0xa8,0x84,0xa8,0xca,0xa9,0x28,0xa9,0x5e,0xa9,0x94,0xa9,0xee,0xaa,0x3e,0xab,0x1c,0xab,0xb8,0xac,0x64,0xac,0xd6,0xad,0x56,0xad,0xc4,0xae,0x44,0xae,0x96,0xae,0xd2,0xaf,0x28,0xaf,0xb2,0xb0,0x28,0xb0,0x8c,0xb0,0xae,0xb0,0xe4,0xb1,0x0a,0xb1,0x2a,0xb1,0x6a,0xb1,0xac,0xb2,0x04,0xb2,0x92,0xb2,0xea,0xb3,0x50,0xb3,0x84,0xb4,0x1e, -0x00,0x02,0x00,0x44,0x00,0x00,0x02,0x64,0x05,0x55,0x00,0x03,0x00,0x07,0x00,0x2e,0xb1,0x01,0x00,0x2f,0x3c,0xb2,0x07,0x04,0x1c,0xed,0x32,0xb1,0x06,0x05,0xdc,0x3c,0xb2,0x03,0x02,0x1c,0xed,0x32,0x00,0xb1,0x03,0x00,0x2f,0x3c,0xb2,0x05,0x04,0x1c,0xed,0x32,0xb2,0x07,0x06,0x1d,0xfc,0x3c,0xb2,0x01,0x02,0x1c,0xed,0x32,0x33,0x11, -0x21,0x11,0x25,0x21,0x11,0x21,0x44,0x02,0x20,0xfe,0x24,0x01,0x98,0xfe,0x68,0x05,0x55,0xfa,0xab,0x44,0x04,0xcd,0x00,0x00,0x00,0x02,0x02,0x03,0x00,0x00,0x02,0xc9,0x05,0x44,0x00,0x03,0x00,0x07,0x00,0x29,0x40,0x15,0x03,0x07,0x98,0x02,0x00,0x04,0x10,0x04,0x02,0x04,0x04,0x08,0x09,0x01,0x01,0x02,0x05,0x9d,0x04,0x02,0x03,0x00, -0x3f,0x2f,0xed,0x11,0x39,0x2f,0x11,0x12,0x01,0x39,0x2f,0x5d,0x33,0xed,0x32,0x31,0x30,0x01,0x23,0x03,0x33,0x03,0x35,0x33,0x15,0x02,0xb1,0x94,0x18,0xc4,0xc6,0xc2,0x01,0x8d,0x03,0xb7,0xfa,0xbc,0xc9,0xc9,0x00,0x02,0x01,0x15,0x03,0x4d,0x03,0xb6,0x05,0xcc,0x00,0x03,0x00,0x07,0x00,0x27,0x40,0x14,0x03,0x96,0x02,0x02,0x09,0x07, -0x96,0x2f,0x06,0x01,0x00,0x06,0x01,0x06,0x05,0x00,0x00,0x06,0x02,0x00,0x00,0x3f,0x33,0x33,0x2f,0x32,0x01,0x2f,0x5d,0x5d,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x23,0x03,0x33,0x01,0x23,0x03,0x33,0x03,0x8c,0x8e,0x28,0xe0,0xfe,0x15,0x8d,0x29,0xe0,0x03,0x4d,0x02,0x7f,0xfd,0x81,0x02,0x7f,0x00,0x00,0x00,0x00,0x02,0x00,0x36, -0x00,0x00,0x04,0x8b,0x05,0x45,0x00,0x1b,0x00,0x1f,0x00,0xf0,0xb9,0x00,0x04,0xff,0xf0,0x40,0x99,0x0d,0x11,0x48,0x06,0x1d,0x16,0x1d,0x26,0x1d,0x03,0x06,0x01,0x16,0x01,0x26,0x01,0x03,0x12,0x0f,0x0e,0x0b,0x04,0x0a,0x13,0x08,0x1d,0x1c,0x15,0x04,0x14,0x09,0x04,0x01,0x00,0x19,0x04,0x18,0x05,0x16,0x1f,0x1e,0x07,0x04,0x06,0x17, -0x13,0xac,0x14,0x05,0xac,0x06,0x17,0xac,0x18,0x1a,0x2f,0x03,0x3f,0x03,0x02,0x03,0x1a,0x03,0x18,0x30,0x06,0x40,0x06,0x50,0x06,0x03,0x10,0x18,0x20,0x18,0x02,0xe0,0x18,0xf0,0x18,0x02,0x14,0x06,0x18,0x18,0x06,0x14,0x03,0x0a,0x21,0x11,0x11,0x0c,0x0c,0x09,0xac,0x00,0x0a,0x01,0x0a,0x08,0x04,0x0c,0xaf,0x0d,0x1d,0x01,0x0d,0x1c, -0x00,0x10,0xaf,0x11,0x19,0x15,0x11,0x4f,0x11,0x01,0x4f,0x11,0x5f,0x11,0xef,0x11,0x03,0x11,0x40,0x1f,0x22,0x48,0x7f,0x0d,0x8f,0x0d,0x9f,0x0d,0x03,0x4f,0x0d,0x5f,0x0d,0x02,0x0d,0x11,0x0d,0x11,0x05,0x17,0x13,0x03,0x0a,0x05,0x00,0x2f,0x33,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x71,0x2b,0x5d,0x71,0x11,0x33,0x33,0x10,0xed, -0x32,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x33,0x2f,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x71,0x71,0x11,0x33,0x33,0x2f,0x5d,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x31,0x30,0x5d,0x5d,0x2b,0x01,0x03,0x21,0x15, -0x21,0x03,0x23,0x13,0x21,0x03,0x23,0x13,0x23,0x35,0x33,0x13,0x23,0x35,0x21,0x13,0x33,0x03,0x21,0x13,0x33,0x03,0x33,0x15,0x21,0x03,0x21,0x13,0x03,0xa2,0x43,0x01,0x04,0xfe,0xe5,0x58,0x6e,0x56,0xfe,0x95,0x54,0x6e,0x54,0xc9,0xe1,0x43,0xf1,0x01,0x07,0x59,0x6e,0x58,0x01,0x6b,0x58,0x6e,0x58,0xd3,0xfd,0x40,0x45,0x01,0x6a,0x43, -0x03,0x41,0xfe,0xc3,0x6c,0xfe,0x68,0x01,0x98,0xfe,0x68,0x01,0x98,0x6c,0x01,0x3d,0x6c,0x01,0x98,0xfe,0x68,0x01,0x98,0xfe,0x68,0x6c,0xfe,0xc3,0x01,0x3d,0x00,0x00,0x00,0x03,0x00,0x42,0xff,0x73,0x04,0x7e,0x05,0xc4,0x00,0x39,0x00,0x44,0x00,0x4f,0x01,0x19,0x40,0xc7,0x44,0x3d,0x54,0x3d,0x02,0x65,0x4e,0x01,0x6e,0x47,0x01,0x65, -0x3c,0x01,0x6a,0x2f,0x01,0x75,0x2a,0x85,0x2a,0x02,0x76,0x29,0x86,0x29,0x02,0x76,0x22,0x86,0x22,0x02,0x65,0x0e,0x01,0x79,0x0a,0x89,0x0a,0x02,0x79,0x09,0x89,0x09,0x02,0x79,0x03,0x89,0x03,0x02,0x7a,0x1f,0x8a,0x1f,0x02,0x2c,0x6f,0x2d,0x2d,0x45,0x4b,0x33,0x27,0x06,0x3f,0x24,0x11,0x07,0x07,0x1f,0x75,0x00,0x85,0x00,0x02,0x00, -0x6f,0x00,0x45,0x10,0x45,0x20,0x45,0x60,0x45,0x70,0x45,0x05,0x10,0x45,0x20,0x45,0x30,0x45,0x70,0x45,0x90,0x45,0xa0,0x45,0xb0,0x45,0x07,0x45,0x45,0x51,0x0c,0x6f,0x0b,0x40,0x12,0x20,0x48,0x8e,0x0b,0x01,0x0b,0x0b,0x3a,0x6f,0x00,0x1f,0x40,0x1f,0x02,0x00,0x1f,0x10,0x1f,0xf0,0x1f,0x03,0x1f,0x32,0x40,0x73,0x24,0x4a,0x12,0x73, -0x33,0x3f,0x3f,0x24,0x2d,0x2d,0x27,0x24,0x25,0x40,0x20,0x27,0x48,0x25,0x40,0x12,0x17,0x48,0x25,0x25,0x24,0x06,0x4b,0x11,0x73,0x08,0x00,0x0c,0x10,0x0c,0x40,0x0c,0x50,0x0c,0x60,0x0c,0x05,0x40,0x0c,0x50,0x0c,0xa0,0x0c,0xb0,0x0c,0xf0,0x0c,0x05,0x0c,0x0c,0x08,0x90,0x07,0x01,0x07,0x07,0x05,0x08,0x18,0x00,0x3f,0x33,0x33,0x2f, -0x5d,0x11,0x33,0x2f,0x5d,0x71,0x10,0xed,0x32,0x3f,0x33,0x2f,0x2b,0x2b,0x11,0x33,0x33,0x2f,0x11,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0x5d,0x71,0xed,0x33,0x2f,0x5d,0x2b,0xed,0x11,0x33,0x2f,0x5d,0x71,0xed,0x5d,0x12,0x39,0x2f,0x33,0x33,0x33,0xcd,0x32,0x32,0x32,0x11,0x33,0x2f,0xed,0x5d,0x31,0x30,0x00,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x01,0x14,0x0e,0x02,0x07,0x15,0x23,0x35,0x2e,0x01,0x27,0x37,0x1e,0x03,0x17,0x11,0x26,0x27,0x26,0x27,0x26,0x23,0x2e,0x05,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x1e,0x03,0x17,0x07,0x2e,0x03,0x27,0x11,0x1e,0x05,0x01,0x14,0x1e,0x02,0x17,0x11,0x0e,0x03,0x01,0x34,0x2e, -0x02,0x27,0x11,0x3e,0x03,0x04,0x7e,0x38,0x72,0xaf,0x77,0x80,0xd7,0xf3,0x22,0xaa,0x0b,0x2d,0x4d,0x70,0x4d,0x08,0x07,0x04,0x06,0x03,0x02,0x31,0x62,0x58,0x4c,0x38,0x1f,0x40,0x72,0x9d,0x5d,0x80,0x66,0x91,0x66,0x40,0x14,0xae,0x0a,0x27,0x3f,0x58,0x3b,0x3a,0x72,0x67,0x58,0x41,0x24,0xfc,0xb0,0x28,0x45,0x5d,0x36,0x47,0x62,0x3c, -0x1b,0x02,0xa4,0x30,0x50,0x6a,0x3a,0x41,0x6b,0x4d,0x2b,0x01,0x7c,0x4b,0x80,0x5f,0x39,0x05,0xa1,0xa1,0x07,0xb9,0xa7,0x25,0x36,0x5b,0x44,0x29,0x04,0x01,0xe9,0x02,0x02,0x01,0x02,0x01,0x0c,0x1d,0x27,0x37,0x49,0x61,0x3f,0x52,0x77,0x4f,0x28,0x03,0x82,0x82,0x04,0x2c,0x50,0x75,0x4c,0x21,0x30,0x4f,0x39,0x21,0x04,0xfe,0x56,0x0e, -0x1f,0x2b,0x3a,0x51,0x6c,0x02,0x36,0x36,0x47,0x2f,0x1e,0x0e,0x01,0x9d,0x03,0x21,0x35,0x45,0xfd,0x5e,0x3f,0x51,0x34,0x21,0x0f,0xfe,0x29,0x04,0x1e,0x38,0x52,0x00,0x00,0x05,0x00,0x00,0xff,0xf4,0x04,0xce,0x05,0x51,0x00,0x03,0x00,0x17,0x00,0x2b,0x00,0x3f,0x00,0x53,0x00,0xc1,0xb9,0x00,0x3e,0xff,0xd8,0x40,0x0e,0x09,0x0e,0x48, -0x38,0x28,0x09,0x0c,0x48,0x34,0x28,0x09,0x0c,0x48,0x2e,0xb8,0xff,0xd8,0xb3,0x09,0x0e,0x48,0x16,0xb8,0xff,0xd8,0x40,0x0e,0x09,0x0e,0x48,0x10,0x28,0x09,0x0c,0x48,0x0c,0x28,0x09,0x0c,0x48,0x06,0xb8,0xff,0xd8,0x40,0x16,0x09,0x0e,0x48,0x79,0x02,0x89,0x02,0x02,0x02,0x03,0x56,0x00,0x76,0x00,0x86,0x00,0x03,0x00,0x01,0x03,0x10, -0x01,0xba,0xff,0xf0,0x00,0x03,0xff,0xc0,0x40,0x3a,0x0a,0x0e,0x48,0x1f,0x01,0x2f,0x01,0x3f,0x01,0x03,0x03,0x01,0x03,0x01,0x13,0x31,0x4a,0xb4,0x3b,0xb5,0x31,0xb4,0x70,0x40,0x80,0x40,0x02,0x40,0x40,0x13,0x55,0x18,0xb4,0x09,0xb5,0x22,0xb4,0x13,0x45,0xb6,0x2c,0xb7,0x4f,0xb6,0x36,0x19,0x27,0xb6,0x0e,0xb7,0x1d,0xb6,0x04,0x07, -0x02,0x06,0x00,0x18,0x00,0x3f,0x3f,0x3f,0xed,0xf4,0xed,0x3f,0xed,0xf4,0xed,0x01,0x2f,0xed,0xf4,0xed,0x11,0x12,0x39,0x2f,0x5d,0xfd,0xf4,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x38,0x38,0x11,0x33,0x5d,0x11,0x33,0x5d,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x33,0x23,0x01,0x33,0x25,0x32,0x1e,0x02,0x15, -0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x13,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x13,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0xdd,0x91,0x03,0xa4,0x93, -0xfc,0xa0,0x3a,0x67,0x4d,0x2d,0x2d,0x4e,0x68,0x3c,0x3c,0x69,0x4e,0x2c,0x2d,0x4e,0x6a,0xc6,0x12,0x23,0x33,0x21,0x23,0x36,0x24,0x12,0x13,0x24,0x35,0x22,0x20,0x33,0x24,0x13,0x02,0x08,0x3a,0x67,0x4d,0x2d,0x2d,0x4e,0x68,0x3c,0x3c,0x69,0x4e,0x2c,0x2d,0x4e,0x6a,0xc6,0x12,0x23,0x33,0x21,0x23,0x36,0x24,0x12,0x13,0x24,0x35,0x22, -0x20,0x33,0x24,0x13,0x05,0x49,0x08,0x1f,0x4d,0x81,0x63,0x60,0x82,0x50,0x23,0x23,0x4f,0x83,0x60,0x63,0x81,0x4d,0x1f,0xfe,0xb0,0x42,0x58,0x35,0x15,0x16,0x35,0x57,0x42,0x40,0x57,0x36,0x17,0x17,0x36,0x57,0xfe,0xd8,0x1f,0x4d,0x81,0x63,0x60,0x82,0x50,0x23,0x23,0x4f,0x83,0x60,0x63,0x81,0x4d,0x1f,0xfe,0xb0,0x42,0x58,0x35,0x15, -0x16,0x35,0x57,0x42,0x40,0x57,0x36,0x17,0x17,0x36,0x57,0x00,0x00,0x03,0x00,0x2b,0xff,0xec,0x04,0xa1,0x05,0x4d,0x00,0x3d,0x00,0x4f,0x00,0x5f,0x00,0xf4,0x40,0x18,0x73,0x4e,0x83,0x4e,0x02,0x79,0x51,0x89,0x51,0x02,0x65,0x58,0x75,0x58,0x85,0x58,0x03,0x69,0x53,0x01,0x39,0x25,0x01,0x20,0xb8,0xff,0xe8,0xb3,0x09,0x0e,0x48,0x1c, -0xb8,0xff,0xe8,0xb3,0x09,0x0c,0x48,0x2e,0xb8,0xff,0xf0,0x40,0x3d,0x09,0x0c,0x48,0x25,0x12,0x01,0x06,0x12,0x16,0x12,0x02,0x48,0x49,0x19,0x23,0x49,0x3e,0x30,0x3e,0x01,0x30,0x3b,0x01,0x3b,0x3b,0x31,0x49,0x30,0x6b,0x50,0x01,0x0c,0x14,0x1c,0x14,0x6c,0x14,0x03,0x28,0x4b,0x53,0x14,0x04,0x3e,0x2d,0x50,0x34,0x05,0x04,0x19,0x70, -0x3e,0x80,0x3e,0x90,0x3e,0x03,0x3e,0x3e,0x30,0x19,0xb8,0xff,0xc0,0x40,0x3f,0x10,0x13,0x48,0x3f,0x30,0x01,0x19,0x30,0x19,0x30,0x61,0x56,0x48,0x0f,0x40,0x0b,0x17,0x48,0x0f,0x60,0x2d,0x70,0x2d,0x80,0x2d,0x03,0x65,0x50,0x01,0x29,0x50,0x01,0x05,0x50,0x34,0x2d,0x04,0x0a,0x30,0x45,0x4b,0x55,0x4b,0x65,0x4b,0x03,0x4b,0x14,0x30, -0x28,0x53,0x05,0x5b,0x43,0x51,0x1e,0x03,0x37,0x5b,0x51,0x00,0x0a,0x16,0x00,0x3f,0x33,0xed,0x32,0x3f,0xed,0x12,0x17,0x39,0x5d,0x2f,0x12,0x17,0x39,0x5d,0x5d,0x5d,0x01,0x2f,0x2b,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x12,0x39,0x2f,0x5d,0x11,0x17,0x39,0x12,0x17,0x39,0x5d,0x5d,0x10,0xed,0x32,0x2f,0x5d,0x5d,0x10,0xed,0x10, -0xed,0x31,0x30,0x00,0x5d,0x5d,0x2b,0x2b,0x2b,0x5d,0x01,0x5d,0x00,0x5d,0x01,0x5d,0x00,0x5d,0x05,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x17,0x3e,0x01,0x37,0x17,0x0e,0x01,0x07,0x1e,0x01,0x33,0x32,0x36, -0x37,0x15,0x0e,0x01,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x3e,0x03,0x03,0x2e,0x01,0x27,0x0e,0x01,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x04,0x30,0x29,0x4c,0x43,0x3a,0x16,0x1c,0x47,0x56,0x67,0x3b,0x6d,0x9e,0x66,0x31,0x2d,0x4e,0x6b,0x3e,0x0f,0x1b,0x15,0x0c,0x2b,0x57,0x84,0x59,0x45,0x76,0x56,0x30, -0x44,0x72,0x93,0x4e,0x1f,0x3e,0x44,0x4a,0x2a,0x2a,0x3f,0x14,0x91,0x1a,0x57,0x31,0x2b,0x61,0x28,0x1a,0x30,0x15,0x18,0x38,0xfe,0xbb,0x18,0x2d,0x40,0x27,0x2c,0x49,0x35,0x1e,0x26,0x17,0x40,0x71,0x55,0x31,0x4a,0x59,0xa1,0x42,0x55,0x5e,0x20,0x40,0x61,0x41,0x27,0x47,0x3c,0x31,0x0c,0x15,0x23,0x2f,0x1a,0x19,0x32,0x26,0x18,0x3a, -0x66,0x8a,0x50,0x4d,0x7e,0x67,0x51,0x20,0x1c,0x44,0x49,0x4c,0x25,0x3e,0x6d,0x51,0x2e,0x23,0x44,0x64,0x40,0x47,0x6c,0x56,0x46,0x21,0x36,0x64,0x60,0x5d,0x2e,0x57,0xc6,0x79,0x2b,0x8b,0xe5,0x5e,0x36,0x33,0x07,0x09,0x87,0x0b,0x0b,0x04,0x49,0x22,0x38,0x27,0x16,0x19,0x2e,0x43,0x2a,0x41,0x74,0x2b,0x1b,0x32,0x3a,0x47,0xfc,0xcb, -0x64,0xe1,0x74,0x2e,0x95,0x65,0x34,0x5c,0x44,0x27,0x13,0x1e,0x26,0x00,0x00,0x00,0x00,0x01,0x01,0xf6,0x03,0x4d,0x02,0xd6,0x05,0xcc,0x00,0x03,0x00,0x1c,0x40,0x0d,0x03,0x96,0x00,0x02,0x01,0x02,0x02,0x04,0x05,0x00,0x00,0x02,0x00,0x00,0x3f,0x33,0x2f,0x11,0x12,0x01,0x39,0x2f,0x5d,0xed,0x31,0x30,0x01,0x23,0x03,0x33,0x02,0xac, -0x8d,0x29,0xe0,0x03,0x4d,0x02,0x7f,0x00,0x00,0x01,0x01,0x56,0xfe,0x57,0x03,0x7b,0x05,0xcc,0x00,0x15,0x00,0x28,0x40,0x16,0x10,0x06,0xf0,0x11,0x0f,0x05,0x1f,0x05,0x02,0x05,0x05,0x17,0x00,0xf0,0x00,0x0b,0x01,0x0b,0x10,0x00,0x06,0x1b,0x00,0x3f,0x3f,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x33,0xed,0x32,0x31,0x30,0x01,0x14, -0x1e,0x02,0x17,0x23,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x33,0x0e,0x03,0x02,0x11,0x29,0x58,0x89,0x60,0xbe,0x5c,0x87,0x59,0x2b,0x2b,0x59,0x87,0x5c,0xbe,0x60,0x89,0x58,0x29,0x02,0x12,0x8a,0xf4,0xe6,0xe1,0x76,0x71,0xdb,0xe6,0xfb,0x90,0x90,0xf9,0xe5,0xd9,0x71,0x76,0xe1,0xe6,0xf4,0x00,0x00,0x01,0x01,0x50,0xfe,0x57,0x03,0x75, -0x05,0xcc,0x00,0x15,0x00,0x24,0x40,0x13,0x00,0xf0,0x0b,0x0b,0x17,0x11,0x05,0xf0,0x10,0x00,0x06,0x10,0x06,0x02,0x06,0x10,0x00,0x05,0x1b,0x00,0x3f,0x3f,0x01,0x2f,0x5d,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x03,0x75,0x2a,0x58,0x87,0x5c, -0xc0,0x60,0x8a,0x58,0x2a,0x2a,0x58,0x8a,0x60,0xc0,0x5c,0x87,0x58,0x2a,0x02,0x14,0x90,0xfb,0xe6,0xdb,0x71,0x76,0xe1,0xe6,0xf4,0x8a,0x89,0xf4,0xe6,0xe1,0x76,0x71,0xd9,0xe5,0xf9,0x00,0x00,0x01,0x00,0xf8,0x02,0xfc,0x03,0xd4,0x05,0xcb,0x00,0x0e,0x00,0xaf,0x40,0x17,0x5b,0x06,0x6b,0x06,0x02,0x00,0x03,0x50,0x03,0x60,0x03,0x03, -0x0f,0x09,0x5f,0x09,0x6f,0x09,0x03,0x0b,0x03,0x07,0x08,0xb8,0xff,0xc0,0x40,0x4c,0x0b,0x11,0x48,0x08,0x08,0x0a,0x0d,0x05,0x04,0x40,0x0b,0x11,0x48,0x04,0x04,0x02,0x0e,0x0e,0x0a,0x0d,0x0e,0x70,0x0a,0x80,0x0a,0x02,0x0a,0x06,0x0e,0x00,0x0d,0x10,0x0d,0x02,0x0d,0x0d,0x0f,0x10,0x02,0x0a,0x0a,0x01,0x0b,0x00,0x0c,0x75,0x0c,0x85, -0x0c,0x02,0x03,0x09,0x04,0x08,0x7f,0x0b,0x8f,0x0b,0x02,0x0b,0x08,0x06,0x09,0x0c,0x0b,0x05,0x0d,0x05,0x70,0x07,0x80,0x07,0x90,0x07,0x03,0x07,0xb8,0xff,0xc0,0xb6,0x09,0x0c,0x48,0x07,0x07,0x0d,0x00,0x00,0x3f,0x33,0x2f,0x2b,0x5d,0x33,0x12,0x17,0x39,0x2f,0x5d,0x11,0x33,0x11,0x33,0x5d,0x11,0x33,0x11,0x33,0x33,0x11,0x33,0x11, -0x12,0x01,0x39,0x2f,0x5d,0xcd,0x39,0xc4,0x5d,0x2b,0x01,0x18,0x10,0x4d,0xe4,0x39,0x2f,0x2b,0x33,0x11,0x12,0x39,0x2f,0x2b,0x33,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x00,0x5d,0x01,0x25,0x17,0x05,0x17,0x07,0x0b,0x01,0x27,0x37,0x25,0x37,0x05,0x03,0x33,0x02,0x9f,0x01,0x08,0x2d,0xfe,0xe6,0xb9,0x77,0x96,0x9c,0x77,0xbd,0xfe,0xe8,0x2d, -0x01,0x0b,0x0c,0x88,0x04,0xa4,0x67,0x84,0x49,0xfa,0x48,0x01,0x02,0xff,0x00,0x48,0xf8,0x49,0x86,0x6b,0x01,0x29,0x00,0x00,0x00,0x01,0x00,0x74,0x00,0xb4,0x04,0x57,0x04,0x9e,0x00,0x0b,0x00,0x49,0x40,0x25,0x0b,0x0e,0x01,0x04,0x02,0x0e,0x04,0x09,0x01,0xaa,0x40,0x06,0x00,0x02,0x01,0x0a,0x03,0x02,0x02,0x0c,0x0d,0x02,0x0e,0x04, -0x07,0x05,0x0e,0x30,0x07,0x01,0x07,0x00,0x04,0xad,0x09,0x05,0xb3,0x00,0x3f,0x33,0xed,0x32,0xc6,0x5d,0x2b,0x00,0x18,0x10,0x4d,0xe6,0x11,0x12,0x01,0x39,0x2f,0x5f,0x5e,0x5d,0x33,0x1a,0xed,0x32,0xc6,0x2b,0x01,0x18,0x10,0x4d,0xe6,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x02,0xaf,0x93,0xfe,0x58, -0x01,0xa8,0x93,0x01,0xa8,0x02,0x60,0xfe,0x54,0x01,0xac,0x92,0x01,0xac,0xfe,0x54,0x92,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0xfe,0x95,0x02,0xb5,0x01,0x2b,0x00,0x03,0x00,0x39,0x40,0x27,0x09,0x00,0x19,0x00,0x02,0x00,0x10,0x0e,0x11,0x48,0x09,0x02,0x19,0x02,0x02,0x02,0x10,0x0e,0x11,0x48,0x01,0x99,0x02,0x97,0x03,0x9a,0x2f,0x00, -0x6f,0x00,0x7f,0x00,0x03,0x00,0x00,0x9c,0x01,0x9b,0x04,0x00,0x10,0xf6,0xed,0x01,0x2f,0x5d,0xed,0xfd,0xed,0x31,0x30,0x2b,0x5d,0x2b,0x5d,0x01,0x13,0x21,0x01,0x01,0x03,0xa9,0x01,0x09,0xfe,0xc9,0xfe,0x95,0x02,0x96,0xfd,0x6a,0x00,0x01,0x01,0x4e,0x01,0xd0,0x03,0x7e,0x02,0x70,0x00,0x03,0x00,0x1d,0x40,0x0f,0x03,0x03,0x05,0x00, -0x00,0x10,0x00,0x02,0x00,0x00,0xba,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0xed,0x01,0x2f,0x5d,0x12,0x39,0x2f,0x31,0x30,0x01,0x35,0x21,0x15,0x01,0x4e,0x02,0x30,0x01,0xd0,0xa0,0xa0,0x00,0x00,0x01,0x01,0xf0,0x00,0x00,0x02,0xdb,0x01,0x2b,0x00,0x03,0x00,0x1a,0x40,0x0c,0x03,0x96,0x00,0x00,0x01,0x00,0x00,0x04,0x05,0x01,0x9b,0x00, -0x00,0x2f,0xed,0x11,0x12,0x01,0x39,0x2f,0x5d,0xed,0x31,0x30,0x21,0x11,0x33,0x11,0x01,0xf0,0xeb,0x01,0x2b,0xfe,0xd5,0x00,0x00,0x01,0x00,0x72,0xff,0xec,0x04,0x59,0x05,0xcc,0x00,0x03,0x00,0x3d,0x40,0x1c,0x8a,0x01,0x01,0x39,0x01,0x69,0x01,0x79,0x01,0x03,0x01,0x02,0x10,0x02,0x02,0x05,0x85,0x03,0x01,0x36,0x03,0x66,0x03,0x76, -0x03,0x03,0x03,0x00,0xb8,0xff,0xf0,0xb7,0x00,0x00,0x01,0x00,0x03,0x19,0x01,0x00,0x00,0x3f,0x3f,0x01,0x2f,0x5d,0x38,0x32,0x5d,0x5d,0x12,0x39,0x2f,0x38,0x33,0x5d,0x5d,0x31,0x30,0x17,0x01,0x33,0x01,0x72,0x03,0x35,0xb2,0xfc,0xcf,0x14,0x05,0xe0,0xfa,0x20,0x00,0x00,0x00,0x03,0x00,0x7c,0xff,0xec,0x04,0x4f,0x05,0x5a,0x00,0x13, -0x00,0x27,0x00,0x2b,0x00,0x79,0x40,0x52,0x36,0x20,0x01,0x46,0x11,0x56,0x11,0x02,0x46,0x0d,0x56,0x0d,0x02,0x49,0x07,0x59,0x07,0x02,0x49,0x03,0x59,0x03,0x02,0x10,0x2a,0x20,0x2a,0x02,0x40,0x2a,0x50,0x2a,0x02,0x00,0x29,0x01,0x2a,0x29,0x2a,0x29,0x1e,0x00,0x6e,0x40,0x14,0x50,0x14,0x02,0x00,0x14,0x01,0x14,0x14,0x2d,0x1e,0x6f, -0x00,0x0a,0x10,0x0a,0x02,0x0a,0x4f,0x28,0x01,0x4f,0x28,0x5f,0x28,0x02,0x28,0x29,0x29,0x23,0x19,0x73,0x0f,0x07,0x23,0x73,0x05,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xcd,0x5d,0x71,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x71,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x71,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01, -0x14,0x02,0x0e,0x01,0x23,0x22,0x2e,0x01,0x02,0x35,0x34,0x12,0x3e,0x01,0x33,0x32,0x1e,0x01,0x12,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x25,0x35,0x33,0x15,0x04,0x4f,0x4d,0x85,0xb4,0x66,0x67,0xb2,0x83,0x4b,0x4b,0x84,0xb4,0x6a,0x65,0xb1,0x84,0x4c,0xb7,0x28,0x4e,0x71,0x48,0x4c,0x74, -0x4f,0x28,0x29,0x4f,0x72,0x49,0x47,0x72,0x4f,0x2b,0xfe,0x58,0xeb,0x02,0xa3,0xc3,0xfe,0xf7,0xa4,0x47,0x47,0xa3,0x01,0x0a,0xc3,0xcc,0x01,0x0c,0x9f,0x40,0x40,0x9f,0xfe,0xf4,0xcc,0x9f,0xd4,0x7e,0x34,0x35,0x7e,0xd3,0x9f,0x9a,0xd2,0x80,0x38,0x38,0x80,0xd2,0x22,0xf9,0xf9,0x00,0x00,0x00,0x00,0x01,0x00,0x94,0x00,0x00,0x04,0x6a, -0x05,0x45,0x00,0x12,0x00,0x59,0x40,0x39,0x00,0x11,0x01,0x11,0x11,0x10,0x6f,0x02,0x08,0x08,0x1f,0x01,0x01,0x0f,0x01,0x3f,0x01,0x4f,0x01,0x5f,0x01,0x8f,0x01,0x9f,0x01,0xaf,0x01,0x07,0x01,0x01,0x0e,0x10,0x02,0x01,0x10,0x02,0x70,0x02,0x80,0x02,0x03,0x02,0x02,0x13,0x14,0x08,0x73,0x09,0x09,0x03,0x0e,0x06,0x10,0x01,0x73,0x00, -0x18,0x00,0x3f,0xed,0x32,0x3f,0x33,0x33,0x2f,0xed,0x11,0x12,0x01,0x39,0x2f,0x5d,0x71,0x33,0x33,0x2f,0x5d,0x71,0x33,0x2f,0x10,0xed,0x32,0x2f,0x5d,0x31,0x30,0x33,0x35,0x21,0x11,0x0e,0x03,0x23,0x35,0x32,0x3e,0x02,0x37,0x33,0x11,0x21,0x15,0x9d,0x01,0xb7,0x13,0x60,0x7d,0x8e,0x42,0x4a,0x8f,0x7c,0x60,0x1a,0xa6,0x01,0x61,0x91, -0x03,0xfd,0x28,0x47,0x34,0x1f,0x94,0x22,0x3d,0x54,0x32,0xfb,0x4c,0x91,0x00,0x00,0x00,0x01,0x00,0x90,0x00,0x00,0x04,0x3c,0x05,0x5a,0x00,0x26,0x00,0x87,0x40,0x5c,0x75,0x06,0x85,0x06,0x02,0x39,0x20,0x01,0x74,0x1b,0x84,0x1b,0x02,0x76,0x1a,0x86,0x1a,0x02,0x77,0x15,0x87,0x15,0x02,0x77,0x16,0x87,0x16,0x02,0x69,0x0a,0x01,0x6b, -0x10,0x01,0x59,0x10,0x01,0x05,0x1a,0x01,0x26,0x26,0x1d,0x6e,0x1f,0x08,0x3f,0x08,0x02,0x6f,0x08,0xbf,0x08,0x02,0x08,0x08,0x00,0x28,0x12,0x6e,0x13,0x13,0x00,0x60,0x24,0x70,0x24,0x80,0x24,0x03,0x24,0x24,0xcf,0x00,0x01,0x00,0x00,0x10,0x00,0x02,0x00,0x12,0x12,0x0d,0x73,0x18,0x07,0x01,0x24,0x73,0x00,0x18,0x00,0x3f,0xed,0x32, -0x3f,0xed,0x33,0x2f,0x01,0x2f,0x5d,0x5d,0x33,0x2f,0x5d,0x11,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0x71,0xed,0x32,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x33,0x35,0x3e,0x05,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x07,0x21,0x15, -0x90,0x2c,0x90,0xa3,0xa5,0x85,0x54,0x27,0x47,0x61,0x3b,0x36,0x5d,0x46,0x2c,0x07,0xb8,0x09,0x40,0x6f,0xa2,0x6a,0x69,0xa7,0x75,0x3e,0x56,0x87,0xa4,0x9c,0x80,0x20,0x02,0xd3,0x75,0x61,0xa4,0x91,0x84,0x81,0x85,0x4a,0x3c,0x57,0x39,0x1b,0x1e,0x3c,0x59,0x3b,0x11,0x4c,0x86,0x65,0x3a,0x30,0x5d,0x8a,0x59,0x5e,0xa1,0x90,0x82,0x80, -0x81,0x46,0x92,0x00,0x00,0x01,0x00,0x80,0xff,0xec,0x04,0x4b,0x05,0x5a,0x00,0x3b,0x00,0xe6,0x40,0x63,0x75,0x39,0x85,0x39,0x02,0x63,0x39,0x01,0x40,0x39,0x50,0x39,0x02,0x78,0x34,0x88,0x34,0x02,0x6c,0x34,0x01,0x4b,0x34,0x5b,0x34,0x02,0x74,0x2f,0x84,0x2f,0x02,0x06,0x2e,0x76,0x2e,0x86,0x2e,0x03,0x77,0x29,0x87,0x29,0x02,0x6c, -0x25,0x01,0x5a,0x25,0x01,0x63,0x12,0x01,0x64,0x0d,0x01,0x55,0x0d,0x01,0x79,0x08,0x89,0x08,0x02,0x79,0x07,0x89,0x07,0x02,0x79,0x03,0x89,0x03,0x02,0x7b,0x02,0x8b,0x02,0x02,0x36,0x1a,0x31,0x6e,0x3f,0x20,0x5f,0x20,0x02,0x20,0x20,0x00,0x6e,0x13,0x40,0x13,0x01,0x00,0x13,0x01,0x13,0xb8,0xff,0xc0,0x40,0x3c,0x15,0x18,0x48,0x1a, -0x13,0x1a,0x13,0x0a,0x3d,0x26,0x6e,0x27,0x27,0x0b,0x6e,0xcf,0x0a,0xdf,0x0a,0xef,0x0a,0x03,0x00,0x0a,0x10,0x0a,0x02,0x0a,0x36,0x19,0x73,0x1a,0x1a,0x10,0x2c,0x26,0x26,0x23,0x73,0x2c,0x07,0x10,0x73,0x05,0x40,0x0b,0x90,0x0b,0x02,0x40,0x0b,0x90,0x0b,0xf0,0x0b,0x03,0x0b,0x0b,0x05,0x19,0x00,0x3f,0x33,0x2f,0x5d,0x71,0x10,0xed, -0x3f,0xed,0x33,0x2f,0x11,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0x5d,0x5d,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x5d,0x71,0x10,0xed,0x33,0x2f,0x71,0xed,0x11,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02, -0x27,0x37,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x2b,0x01,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x04,0x4b,0x3f,0x79,0xb2,0x74,0x82,0xb4,0x74,0x3a,0x09,0xba,0x08,0x2b,0x4a,0x6d,0x49,0x88,0x9b,0x45,0x67,0x79,0x33,0x66, -0x62,0x33,0x6e,0x5b,0x3b,0x85,0x83,0x77,0x93,0x0c,0xb5,0x0b,0x50,0x7b,0x9e,0x59,0x77,0xa9,0x6c,0x33,0x25,0x49,0x6f,0x4a,0x52,0x7d,0x54,0x2b,0x01,0x72,0x5b,0x91,0x64,0x36,0x41,0x6b,0x89,0x49,0x11,0x38,0x5c,0x42,0x24,0x7e,0x79,0x44,0x5a,0x35,0x16,0x9c,0x19,0x37,0x59,0x3f,0x6a,0x77,0x7a,0x6f,0x0e,0x5d,0x8a,0x5b,0x2d,0x38, -0x60,0x81,0x49,0x37,0x67,0x56,0x40,0x0f,0x04,0x09,0x3c,0x57,0x6a,0x00,0x00,0x00,0x00,0x02,0x00,0x67,0x00,0x00,0x04,0x65,0x05,0x45,0x00,0x0a,0x00,0x0d,0x00,0x55,0x40,0x35,0x69,0x06,0x79,0x06,0x89,0x06,0x03,0x7f,0x09,0x01,0x09,0x09,0x08,0x01,0x6f,0x0d,0x06,0x90,0x02,0xa0,0x02,0x02,0x02,0x02,0x0f,0x0c,0x6f,0x10,0x04,0x01, -0x04,0x00,0x04,0x73,0x08,0x05,0x0f,0x0c,0x1f,0x0c,0x2f,0x0c,0x6f,0x0c,0x04,0x0c,0x0c,0x01,0x0b,0x06,0x06,0x01,0x18,0x00,0x3f,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x2f,0x5d,0x31,0x30,0x5d,0x01,0x11,0x23,0x11,0x21,0x35,0x01,0x33,0x11,0x33,0x15, -0x09,0x01,0x21,0x03,0xa9,0xb4,0xfd,0x72,0x02,0x7b,0xc7,0xbc,0xfe,0x90,0xfe,0x0c,0x01,0xf4,0x01,0x3f,0xfe,0xc1,0x01,0x3f,0x8c,0x03,0x7a,0xfc,0x88,0x8e,0x03,0x43,0xfd,0x4b,0x00,0x00,0x00,0x01,0x00,0x80,0xff,0xec,0x04,0x4b,0x05,0x45,0x00,0x2c,0x00,0x8e,0x40,0x5e,0x69,0x08,0x79,0x08,0x89,0x08,0x03,0x69,0x07,0x79,0x07,0x89, -0x07,0x03,0x4a,0x17,0x5a,0x17,0x02,0x45,0x13,0x55,0x13,0x02,0x22,0x40,0x0d,0x11,0x48,0x22,0x22,0x00,0x6e,0x15,0x25,0x24,0x21,0x1f,0x6f,0x20,0x20,0x0a,0x40,0x15,0x01,0x00,0x15,0xc0,0x15,0xd0,0x15,0x03,0x15,0x15,0x2e,0x0b,0x6e,0xf0,0x0a,0x01,0xcf,0x0a,0xdf,0x0a,0x02,0x00,0x0a,0x10,0x0a,0x02,0x0a,0x25,0x73,0x20,0x20,0x1a, -0x73,0x6f,0x28,0x01,0x28,0x28,0x10,0x24,0x73,0x21,0x06,0x10,0x73,0x05,0x0b,0x0b,0x05,0x19,0x00,0x3f,0x33,0x2f,0x10,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x01,0x2f,0x5d,0x5d,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x71,0x12,0x39,0x2f,0xed,0x33,0x32,0x32,0x10,0xed,0x32,0x2f,0x2b,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d, -0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x23,0x13,0x21,0x15,0x21,0x03,0x3e,0x01,0x33,0x32,0x1e,0x02,0x04,0x4b,0x40,0x7e,0xbb,0x7b,0x6f,0xa5,0x72,0x43,0x0e,0xb6,0x0b,0x28,0x45,0x65,0x48,0x46,0x72,0x51,0x2c,0x2a,0x4e,0x71,0x48,0x2d,0x4c, -0x41,0x35,0x17,0xb0,0x2f,0x03,0x21,0xfd,0x85,0x1d,0x30,0x90,0x63,0x69,0xa8,0x76,0x40,0x01,0xbc,0x64,0xab,0x7b,0x46,0x34,0x5b,0x7a,0x46,0x15,0x28,0x4b,0x3b,0x23,0x2b,0x50,0x75,0x49,0x3c,0x67,0x4c,0x2b,0x10,0x1c,0x25,0x14,0x02,0xd8,0x91,0xfe,0x57,0x25,0x35,0x40,0x71,0x9c,0x00,0x00,0x00,0x02,0x00,0x97,0xff,0xec,0x04,0x48, -0x05,0x5a,0x00,0x24,0x00,0x38,0x00,0xab,0x40,0x7d,0x7a,0x03,0x8a,0x03,0x02,0x7a,0x02,0x8a,0x02,0x02,0x68,0x03,0x78,0x03,0x88,0x03,0x03,0x67,0x23,0x77,0x23,0x87,0x23,0x03,0x67,0x22,0x77,0x22,0x87,0x22,0x03,0x45,0x37,0x55,0x37,0x02,0x43,0x31,0x53,0x31,0x02,0x4a,0x2d,0x5a,0x2d,0x02,0x4b,0x27,0x5b,0x27,0x02,0x1c,0x1b,0x2c, -0x1b,0x3c,0x1b,0x03,0x15,0x6e,0x14,0x14,0x00,0x6e,0xaf,0x25,0x01,0x40,0x25,0x01,0x00,0x25,0xc0,0x25,0xd0,0x25,0x03,0x25,0x25,0x3a,0x1d,0x2f,0x6e,0x90,0x0a,0xa0,0x0a,0x02,0x00,0x0a,0x10,0x0a,0xe0,0x0a,0xf0,0x0a,0x04,0x0a,0x2a,0x73,0x6f,0x20,0x01,0x10,0x20,0x20,0x20,0x02,0x20,0x20,0x34,0x18,0x73,0x0f,0x8f,0x15,0x01,0x15, -0x15,0x0f,0x07,0x34,0x73,0x05,0x19,0x00,0x3f,0xed,0x3f,0x33,0x2f,0x5d,0x10,0xed,0x12,0x39,0x2f,0x5d,0x5d,0xed,0x01,0x2f,0x5d,0x71,0xed,0x32,0x12,0x39,0x2f,0x5d,0x71,0x71,0xed,0x32,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x3e,0x01, -0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x01,0x23,0x22,0x0e,0x02,0x15,0x3e,0x01,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x04,0x48,0x3b,0x73,0xaa,0x6f,0x7b,0xb8,0x7a,0x3d,0x45,0x82,0xbb,0x76,0x48,0x7e,0x67,0x4e,0x17,0xac,0x1c,0x7b,0x51,0x4a,0x78,0x54,0x2d,0x31,0xb2, -0x73,0x60,0x9d,0x6f,0x3c,0xb7,0x24,0x48,0x6a,0x46,0x31,0x64,0x51,0x33,0x28,0x4b,0x6a,0x42,0x41,0x67,0x48,0x26,0x01,0xbe,0x64,0xab,0x7d,0x46,0x5d,0xac,0xf5,0x98,0xb1,0x01,0x10,0xb8,0x5f,0x1e,0x43,0x6e,0x50,0x1f,0x5b,0x51,0x45,0x86,0xc5,0x81,0x5b,0x5f,0x3e,0x72,0xa0,0x6b,0x43,0x70,0x50,0x2d,0x21,0x41,0x62,0x41,0x48,0x81, -0x62,0x39,0x2d,0x52,0x74,0x00,0x00,0x00,0x00,0x01,0x00,0x9e,0x00,0x00,0x04,0x2d,0x05,0x45,0x00,0x0e,0x00,0x35,0x40,0x10,0x05,0x6e,0x06,0x06,0x0c,0x00,0x6f,0x0b,0x0b,0x10,0x00,0x0c,0x10,0x0c,0x02,0x0c,0xb8,0xff,0xc0,0x40,0x0b,0x14,0x18,0x48,0x0c,0x00,0x0c,0x73,0x0d,0x06,0x05,0x18,0x00,0x3f,0x3f,0xed,0x32,0x01,0x2f,0x2b, -0x5d,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x06,0x0a,0x02,0x15,0x23,0x34,0x1a,0x02,0x37,0x21,0x35,0x21,0x04,0x2d,0x60,0xab,0x82,0x4c,0xbc,0x50,0x86,0xb0,0x61,0xfd,0x1f,0x03,0x8f,0x04,0xba,0x8a,0xfe,0xda,0xfe,0xcf,0xfe,0xc6,0x9f,0x9e,0x01,0x3b,0x01,0x32,0x01,0x24,0x85,0x91,0x00,0x00,0x00,0x03,0x00,0x85, -0xff,0xec,0x04,0x46,0x05,0x5a,0x00,0x29,0x00,0x3d,0x00,0x51,0x00,0xb6,0x40,0x7e,0x75,0x28,0x85,0x28,0x02,0x76,0x0c,0x86,0x0c,0x02,0x78,0x02,0x88,0x02,0x02,0x78,0x08,0x88,0x08,0x02,0x77,0x1d,0x87,0x1d,0x02,0x79,0x22,0x89,0x22,0x02,0x78,0x12,0x88,0x12,0x02,0x6a,0x46,0x01,0x6a,0x40,0x01,0x65,0x50,0x01,0x65,0x4a,0x01,0x65, -0x3c,0x01,0x65,0x36,0x01,0x24,0x10,0x1f,0x34,0x6e,0x15,0x1f,0x6e,0x2a,0x15,0x2a,0x15,0x2a,0x0a,0x00,0x6e,0x40,0x3e,0x01,0x00,0x3e,0xc0,0x3e,0xd0,0x3e,0x03,0x3e,0x3e,0x53,0x48,0x6e,0xe0,0x0a,0xf0,0x0a,0x02,0xcf,0x0a,0xdf,0x0a,0x02,0x00,0x0a,0x10,0x0a,0x02,0x0a,0x24,0x10,0x10,0x43,0x73,0x39,0x39,0x4d,0x76,0x1a,0x86,0x1a, -0x02,0x2f,0x73,0x1a,0x07,0x79,0x05,0x89,0x05,0x02,0x4d,0x73,0x05,0x19,0x00,0x3f,0xed,0x5d,0x3f,0xed,0x5d,0x12,0x39,0x2f,0xed,0x39,0x11,0x33,0x01,0x2f,0x5d,0x5d,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x71,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x03,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x13,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02, -0x33,0x32,0x3e,0x02,0x04,0x46,0x39,0x75,0xb5,0x7d,0x7c,0xb5,0x77,0x39,0x2f,0x4f,0x65,0x36,0x3b,0x5d,0x3f,0x21,0x39,0x70,0xa6,0x6d,0x73,0xa9,0x6f,0x36,0x21,0x3f,0x5d,0x3d,0x3d,0x68,0x4d,0x2b,0xde,0x1b,0x3e,0x64,0x49,0x46,0x63,0x3f,0x1c,0x16,0x3a,0x66,0x50,0x56,0x66,0x37,0x11,0x23,0x1c,0x44,0x73,0x56,0x4f,0x6f,0x45,0x20, -0x20,0x46,0x72,0x51,0x53,0x6f,0x44,0x1d,0x01,0x7a,0x54,0x91,0x6c,0x3d,0x3d,0x6b,0x91,0x53,0x47,0x73,0x54,0x34,0x09,0x04,0x0e,0x3e,0x54,0x64,0x35,0x44,0x7d,0x60,0x39,0x3a,0x60,0x7e,0x44,0x34,0x64,0x54,0x3d,0x0c,0x04,0x0a,0x35,0x54,0x71,0x02,0x33,0x2f,0x52,0x3c,0x23,0x23,0x3c,0x52,0x2f,0x25,0x52,0x45,0x2d,0x2e,0x45,0x52, -0xfd,0xbb,0x2d,0x59,0x47,0x2c,0x2c,0x48,0x5a,0x2f,0x3b,0x65,0x4a,0x2a,0x29,0x4b,0x67,0x00,0x00,0x00,0x00,0x02,0x00,0x8d,0xff,0xec,0x04,0x3f,0x05,0x5a,0x00,0x24,0x00,0x38,0x00,0xa5,0x40,0x77,0x7a,0x08,0x8a,0x08,0x02,0x7a,0x07,0x8a,0x07,0x02,0x67,0x20,0x77,0x20,0x87,0x20,0x03,0x68,0x1a,0x78,0x1a,0x88,0x1a,0x03,0x45,0x37, -0x55,0x37,0x02,0x45,0x31,0x55,0x31,0x02,0x4a,0x2d,0x5a,0x2d,0x02,0x4b,0x27,0x5b,0x27,0x02,0x13,0x11,0x23,0x11,0x33,0x11,0x03,0x13,0x00,0x6e,0x3f,0x25,0x8f,0x25,0x9f,0x25,0xaf,0x25,0x04,0xc0,0x25,0xd0,0x25,0x02,0x25,0x25,0x1d,0x3a,0x0b,0x6e,0x0a,0x0a,0x2f,0x6e,0xe0,0x1d,0xf0,0x1d,0x02,0xcf,0x1d,0x01,0x00,0x1d,0x10,0x1d, -0x02,0x1d,0x34,0x73,0x13,0x18,0x40,0x13,0x16,0x48,0x18,0x18,0x0e,0x2a,0x73,0x22,0x07,0x0e,0x73,0x05,0x70,0x0b,0x80,0x0b,0x02,0x0b,0x0b,0x05,0x19,0x00,0x3f,0x33,0x2f,0x5d,0x10,0xed,0x3f,0xed,0x12,0x39,0x2f,0x2b,0x33,0xed,0x01,0x2f,0x5d,0x5d,0x5d,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0x71,0xed,0x33,0x31,0x30,0x00, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x02,0x0e,0x01,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x01,0x33,0x32,0x3e,0x02,0x37,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x12,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x04,0x3f,0x46,0x84,0xbd,0x77,0x51,0x82, -0x66,0x48,0x16,0xac,0x1c,0x77,0x5b,0x4a,0x78,0x55,0x31,0x01,0x15,0x49,0x5d,0x6b,0x38,0x60,0x9b,0x6c,0x3b,0x3f,0x78,0xaf,0x6f,0xec,0xf1,0xc4,0x25,0x49,0x6b,0x46,0x41,0x68,0x48,0x27,0x23,0x46,0x68,0x45,0x32,0x67,0x53,0x35,0x02,0xbf,0xb1,0xfe,0xf2,0xb7,0x5d,0x21,0x46,0x70,0x4f,0x1b,0x5b,0x55,0x44,0x84,0xc4,0x81,0x2f,0x4a, -0x33,0x1b,0x44,0x7a,0xa9,0x65,0x68,0xa9,0x78,0x42,0xfe,0xb4,0xb0,0x49,0x83,0x63,0x3b,0x2d,0x53,0x73,0x46,0x42,0x73,0x57,0x32,0x22,0x43,0x65,0x00,0x02,0x01,0xf0,0x00,0x00,0x02,0xdb,0x04,0x3a,0x00,0x03,0x00,0x07,0x00,0x24,0x40,0x12,0x06,0x05,0x03,0x96,0x00,0x00,0x01,0x00,0x00,0x09,0x08,0x04,0x9b,0x05,0x0f,0x01,0x9b,0x00, -0x00,0x2f,0xed,0x3f,0xed,0x11,0x12,0x01,0x39,0x2f,0x5d,0xed,0x33,0x32,0x31,0x30,0x21,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0x01,0xf0,0xeb,0xeb,0xeb,0x01,0x2b,0xfe,0xd5,0x03,0x0f,0x01,0x2b,0xfe,0xd5,0x00,0x00,0x02,0x01,0x60,0xfe,0x95,0x03,0x12,0x04,0x3a,0x00,0x03,0x00,0x07,0x00,0x58,0x40,0x3e,0x09,0x04,0x19,0x04,0x02,0x04, -0x10,0x0e,0x11,0x48,0x09,0x06,0x19,0x06,0x02,0x06,0x10,0x0e,0x11,0x48,0x02,0x96,0x01,0x40,0x1a,0x1e,0x48,0x01,0x40,0x11,0x15,0x48,0x01,0x01,0x04,0x05,0x99,0x06,0x97,0x07,0x9a,0x00,0x04,0x10,0x04,0x80,0x04,0x90,0x04,0xa0,0x04,0x05,0x04,0x04,0x9c,0x05,0x9b,0x08,0x00,0x9b,0x01,0x0f,0x00,0x3f,0xed,0x10,0xf6,0xed,0x01,0x2f, -0x5d,0xed,0xfd,0xed,0x12,0x39,0x2f,0x2b,0x2b,0xed,0x31,0x30,0x2b,0x5d,0x2b,0x5d,0x01,0x11,0x33,0x11,0x01,0x13,0x21,0x01,0x01,0xf0,0xeb,0xfe,0x85,0xa9,0x01,0x09,0xfe,0xc9,0x03,0x0f,0x01,0x2b,0xfe,0xd5,0xfb,0x86,0x02,0x96,0xfd,0x6a,0x00,0x00,0x00,0x01,0x00,0x74,0x00,0x9a,0x04,0x57,0x04,0xaa,0x00,0x06,0x00,0x77,0xb5,0x00, -0x01,0x52,0x05,0x04,0x05,0xb8,0x01,0x0d,0x40,0x10,0x06,0x00,0x14,0x06,0x00,0x05,0x06,0x01,0x02,0x01,0x52,0x03,0x04,0x01,0x04,0x03,0xb8,0x01,0x0d,0x40,0x28,0x02,0x01,0x14,0x02,0x01,0x03,0x02,0x06,0x08,0x04,0x00,0x00,0x10,0x00,0x02,0x00,0x01,0x00,0x04,0x04,0x02,0x05,0x3f,0x06,0x6f,0x06,0x7f,0x06,0x03,0x06,0x40,0x12,0x15, -0x48,0x06,0x03,0x0f,0x02,0x01,0x02,0x00,0x2f,0x5d,0x33,0x2f,0x2b,0x5d,0x33,0x12,0x39,0x3d,0x2f,0x33,0x33,0x01,0x18,0x2f,0x5d,0x33,0x10,0xde,0xd4,0xc1,0x87,0x04,0x2b,0x10,0x01,0xc1,0x87,0x04,0x2b,0x10,0xc4,0x10,0x01,0xc1,0x87,0x04,0x18,0x2b,0x87,0x2b,0xc4,0x31,0x30,0x13,0x35,0x01,0x15,0x09,0x01,0x15,0x74,0x03,0xe3,0xfc, -0xa6,0x03,0x5a,0x02,0x3b,0xcd,0x01,0xa2,0x9a,0xfe,0x92,0xfe,0x91,0x99,0x00,0x00,0x00,0x02,0x00,0x74,0x01,0x58,0x04,0x57,0x03,0xec,0x00,0x03,0x00,0x07,0x00,0x4c,0x40,0x37,0x07,0x02,0x09,0x04,0x00,0x01,0x10,0x01,0x02,0x01,0x05,0xad,0x1f,0x04,0x7f,0x04,0x9f,0x04,0xaf,0x04,0xbf,0x04,0x05,0x04,0x40,0x12,0x16,0x48,0x04,0x00, -0xad,0x30,0x01,0x50,0x01,0x60,0x01,0x70,0x01,0x04,0x50,0x01,0x70,0x01,0x80,0x01,0xb0,0x01,0xd0,0x01,0x05,0x0f,0x01,0x01,0x01,0x00,0x2f,0x5d,0x5d,0x71,0xed,0x2f,0x2b,0x71,0xed,0x01,0x2f,0x5d,0x33,0x10,0xce,0x32,0x31,0x30,0x13,0x35,0x21,0x15,0x01,0x35,0x21,0x15,0x74,0x03,0xe3,0xfc,0x1d,0x03,0xe3,0x03,0x58,0x94,0x94,0xfe, -0x00,0x94,0x94,0x00,0x00,0x01,0x00,0x74,0x00,0x9a,0x04,0x57,0x04,0xaa,0x00,0x06,0x00,0x77,0xb5,0x06,0x01,0x52,0x01,0x02,0x01,0xb8,0x01,0x0d,0x40,0x10,0x00,0x06,0x14,0x00,0x06,0x01,0x00,0x05,0x04,0x01,0x52,0x03,0x02,0x05,0x02,0x03,0xb8,0x01,0x0d,0x40,0x28,0x04,0x05,0x14,0x04,0x05,0x03,0x04,0x02,0x06,0x08,0x04,0x00,0x00, -0x10,0x00,0x02,0x00,0x06,0x05,0x02,0x02,0x03,0x0f,0x04,0x01,0x04,0x01,0x3f,0x00,0x6f,0x00,0x7f,0x00,0x03,0x00,0x40,0x12,0x15,0x48,0x00,0x00,0x2f,0x2b,0x5d,0x32,0x2f,0x5d,0x33,0x39,0x3d,0x2f,0x33,0x33,0x01,0x18,0x2f,0x5d,0xc4,0x10,0xce,0x32,0x10,0xc1,0x87,0x04,0x2b,0x10,0x01,0xc1,0x87,0x04,0x2b,0x10,0xc4,0x10,0x01,0xc1, -0x87,0x04,0x18,0x2b,0x87,0x2b,0xc4,0x31,0x30,0x37,0x35,0x09,0x01,0x35,0x01,0x15,0x74,0x03,0x5a,0xfc,0xa6,0x03,0xe3,0x9a,0x99,0x01,0x6f,0x01,0x6e,0x9a,0xfe,0x5e,0xcd,0x00,0x00,0x00,0x00,0x02,0x00,0x5e,0x00,0x00,0x04,0x31,0x05,0x5a,0x00,0x27,0x00,0x2b,0x00,0x6d,0x40,0x49,0x69,0x06,0x79,0x06,0x89,0x06,0x03,0x69,0x04,0x79, -0x04,0x89,0x04,0x03,0x4a,0x1b,0x5a,0x1b,0x02,0x07,0x25,0x17,0x25,0x02,0x66,0x00,0x76,0x00,0x86,0x00,0x03,0x09,0x2b,0x98,0x0a,0x28,0x28,0x1e,0x00,0x98,0x00,0x13,0x01,0x13,0x13,0x2d,0x1d,0x98,0x1e,0x0a,0x40,0x0f,0x14,0x48,0x0a,0x0a,0x23,0x29,0x9d,0x28,0x66,0x23,0x76,0x23,0x86,0x23,0x03,0x1d,0x1d,0x18,0x9e,0x23,0x04,0x00, -0x3f,0xed,0x33,0x2f,0x5d,0x2f,0xed,0x11,0x39,0x2f,0x2b,0x01,0x2f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x06,0x07,0x23,0x3e,0x07,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x01,0x35,0x33,0x15,0x04,0x31,0x25, -0x3e,0x4f,0x52,0x4f,0x3f,0x27,0x01,0xaf,0x02,0x27,0x3e,0x4e,0x50,0x4d,0x3c,0x25,0x29,0x4d,0x6d,0x44,0x44,0x6f,0x52,0x32,0x07,0xb8,0x0c,0x4a,0x7e,0xb0,0x70,0x6c,0xb1,0x7e,0x44,0xfd,0x8f,0xc3,0x03,0xea,0x45,0x68,0x52,0x42,0x3b,0x3b,0x44,0x53,0x37,0x43,0x66,0x51,0x41,0x3b,0x3b,0x44,0x53,0x35,0x37,0x54,0x39,0x1e,0x26,0x47, -0x65,0x3e,0x0c,0x5a,0x97,0x6c,0x3d,0x30,0x5d,0x89,0xfb,0xbc,0xc9,0xc9,0x00,0x00,0x00,0x02,0x00,0x2c,0xfe,0xe5,0x04,0xa5,0x05,0xcc,0x00,0x5f,0x00,0x78,0x01,0x3b,0x40,0x91,0x01,0x44,0x11,0x44,0x02,0x35,0x3f,0x55,0x3f,0x75,0x3f,0x03,0x01,0x3e,0x11,0x3e,0x02,0x6c,0x34,0x7c,0x34,0x8c,0x34,0x03,0x17,0x18,0x0b,0x0e,0x48,0x6c, -0x08,0x7c,0x08,0x8c,0x08,0x03,0x6c,0x66,0x7c,0x66,0x02,0x4a,0x66,0x5a,0x66,0x02,0x26,0x5d,0x01,0x6a,0x53,0x01,0x65,0x49,0x75,0x49,0x85,0x49,0x03,0x7f,0x3f,0x8f,0x3f,0x02,0x3f,0x40,0x0b,0x0e,0x48,0x7e,0x39,0x01,0x03,0x6f,0x2a,0x7f,0x2a,0x8f,0x2a,0x03,0x02,0x4f,0x2a,0x5f,0x2a,0x02,0x17,0x18,0x0b,0x0e,0x48,0x6a,0x37,0x7a, -0x37,0x8a,0x37,0x03,0x69,0x51,0x01,0x4b,0x0f,0x4c,0x1f,0x4c,0x02,0x4c,0x4c,0x56,0x00,0xd3,0x37,0x29,0x2f,0xd3,0x0a,0x60,0x28,0x0a,0x6a,0xd2,0x1a,0x37,0x40,0x14,0x18,0x48,0x10,0x37,0x01,0x2f,0x1a,0x3f,0x1a,0x02,0x37,0x0a,0x1a,0x1a,0x0a,0x37,0x03,0x7a,0x41,0xb8,0xff,0xe8,0xb5,0x0d,0x11,0x48,0x41,0xd3,0x56,0xb8,0xff,0xc0, -0x40,0x26,0x17,0x20,0x48,0x56,0x32,0x6f,0xd6,0x15,0x0f,0x05,0x15,0x63,0xd6,0x21,0x28,0x28,0x19,0x26,0x01,0x26,0x21,0x0f,0x15,0x1f,0x15,0x2f,0x15,0x9f,0x15,0xaf,0x15,0x05,0x90,0x21,0xa0,0x21,0x02,0x21,0xb8,0xff,0xc0,0x40,0x17,0x09,0x0c,0x48,0x4b,0x15,0x21,0x21,0x15,0x4b,0x03,0x46,0x3c,0x10,0x0d,0x11,0x48,0x3c,0xd5,0x5b, -0x00,0x46,0xd5,0x51,0xb8,0x01,0x0f,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2b,0x5d,0x5d,0x11,0x33,0x5d,0x33,0x2f,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x32,0x01,0x2f,0x2b,0xed,0x2b,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x5d,0x2b,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x32,0x10,0xed,0x11,0x39,0x2f,0x5d,0x33, -0x00,0x5d,0x01,0x5d,0x31,0x30,0x00,0x2b,0x5d,0x5f,0x5d,0x5f,0x5d,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x2b,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x3c,0x01,0x3e,0x01,0x35,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x33,0x32,0x1e,0x02,0x17,0x33,0x37,0x33,0x03,0x0e,0x03,0x15, -0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x01,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x23,0x22,0x2e,0x01,0x02,0x35,0x34,0x1a,0x01,0x36,0x33,0x32,0x1e,0x01,0x12,0x05,0x34,0x26,0x23,0x22,0x0e,0x04,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x04,0xa5,0x29,0x4e, -0x72,0x48,0x1e,0x34,0x27,0x16,0x01,0x01,0x06,0x0f,0x2e,0x3b,0x49,0x2a,0x3f,0x56,0x35,0x17,0x17,0x2c,0x41,0x51,0x62,0x38,0x2a,0x3e,0x2b,0x1c,0x09,0x05,0x20,0x74,0x63,0x08,0x0f,0x0b,0x06,0x1d,0x14,0x28,0x41,0x2f,0x19,0x35,0x65,0x94,0x60,0x78,0xbb,0x7f,0x42,0x3b,0x6f,0xa2,0x66,0x3b,0x66,0x59,0x51,0x26,0x47,0x2b,0x61,0x6f, -0x7e,0x49,0x7f,0xcc,0x8e,0x4d,0x54,0xa1,0xe9,0x96,0x83,0xc3,0x80,0x3f,0xfe,0x62,0x46,0x3b,0x25,0x40,0x34,0x28,0x1b,0x0e,0x0b,0x1b,0x2c,0x20,0x27,0x47,0x3a,0x2e,0x0d,0x03,0x08,0x07,0x04,0x02,0xf3,0x90,0xef,0xac,0x60,0x10,0x25,0x3c,0x2c,0x02,0x0b,0x0c,0x0a,0x03,0x27,0x47,0x36,0x1f,0x41,0x6b,0x8b,0x4a,0x4c,0x96,0x88,0x75, -0x55,0x30,0x1b,0x2f,0x3f,0x24,0x97,0xfe,0x05,0x2a,0x51,0x49,0x3d,0x15,0x34,0x24,0x50,0x91,0xc9,0x79,0x81,0xe0,0xa6,0x60,0x86,0xe7,0xfe,0xc8,0xb1,0x98,0xfa,0xb3,0x62,0x19,0x2a,0x3a,0x21,0x57,0x25,0x44,0x35,0x1f,0x71,0xd0,0x01,0x26,0xb6,0xd1,0x01,0x63,0x01,0x04,0x92,0x76,0xc8,0xfe,0xf8,0x76,0x6a,0x6d,0x2c,0x4b,0x64,0x71, -0x77,0x39,0x3c,0x67,0x4b,0x2b,0x37,0x64,0x8f,0x57,0x13,0x34,0x36,0x31,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x04,0xcc,0x05,0x45,0x00,0x07,0x00,0x14,0x00,0x72,0x40,0x42,0x13,0x02,0x03,0x05,0x01,0x52,0x03,0x0d,0x03,0x5e,0x04,0x05,0x14,0x04,0x05,0x03,0x04,0x14,0x01,0x00,0x06,0x01,0x52,0x00,0x0d,0x00,0x5e,0x07,0x06,0x14, -0x07,0x06,0x0d,0x04,0x10,0x07,0x01,0x07,0x07,0x16,0x7f,0x04,0x8f,0x04,0x02,0x04,0x07,0x01,0x02,0x5f,0x14,0x13,0x13,0x5a,0x0d,0x01,0x4b,0x0d,0x01,0x0d,0x06,0x05,0x03,0x04,0x00,0x12,0x00,0x3f,0x32,0x3f,0x33,0x33,0x5d,0x5d,0x39,0x2f,0x33,0xed,0x32,0x2f,0x01,0x2f,0x5d,0x11,0x33,0x2f,0x5d,0x12,0x39,0x87,0x2b,0x87,0x2b,0xc4, -0x10,0xc0,0xc0,0x10,0x00,0xc1,0x87,0x05,0x18,0x2b,0x87,0x2b,0xc4,0x10,0xc0,0xc0,0x31,0x30,0x21,0x03,0x21,0x03,0x23,0x01,0x33,0x09,0x01,0x2e,0x03,0x27,0x0e,0x03,0x07,0x03,0x21,0x04,0x0a,0x8a,0xfd,0xcd,0x89,0xc4,0x01,0xfe,0xd9,0x01,0xf5,0xfd,0xf1,0x0d,0x1c,0x17,0x11,0x04,0x04,0x10,0x17,0x19,0x0d,0x97,0x01,0xcf,0x01,0x7e, -0xfe,0x82,0x05,0x45,0xfa,0xbb,0x03,0xba,0x26,0x4e,0x46,0x35,0x0c,0x0c,0x36,0x46,0x4e,0x25,0xfe,0x59,0x00,0x03,0x00,0xa2,0x00,0x00,0x04,0x80,0x05,0x45,0x00,0x16,0x00,0x21,0x00,0x2e,0x00,0x77,0x40,0x4f,0x65,0x2d,0x01,0x6a,0x24,0x01,0x66,0x20,0x01,0x7b,0x02,0x8b,0x02,0x02,0x74,0x0b,0x84,0x0b,0x94,0x0b,0x03,0x07,0x0b,0x01, -0x6f,0x12,0x01,0x4b,0x12,0x5b,0x12,0x02,0x12,0x29,0x0d,0x5a,0x17,0x40,0x0d,0x14,0x48,0x17,0x17,0x06,0x00,0x5a,0x00,0x22,0x01,0x22,0x22,0x30,0x1c,0x29,0x5a,0x00,0x06,0x10,0x06,0xa0,0x06,0xb0,0x06,0x04,0x06,0x12,0x28,0x5f,0x1c,0x1c,0x29,0x1b,0x5f,0x07,0x03,0x29,0x5f,0x06,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed, -0x39,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x2b,0xed,0x11,0x39,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x21,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x01,0x34,0x26,0x2b,0x01,0x11,0x33,0x32,0x3e,0x02,0x13,0x34,0x2e,0x02,0x2b,0x01,0x11, -0x21,0x32,0x3e,0x02,0x04,0x80,0x54,0x8e,0xbc,0x68,0xfe,0x28,0x01,0x9c,0x75,0xb8,0x80,0x43,0x21,0x43,0x64,0x44,0x55,0x83,0x58,0x2e,0xfe,0xee,0x97,0x97,0xdf,0xe1,0x51,0x72,0x48,0x21,0x51,0x33,0x5d,0x82,0x50,0xfc,0x01,0x0a,0x49,0x7d,0x5b,0x33,0x01,0x7c,0x67,0x90,0x5b,0x2a,0x05,0x45,0x26,0x4f,0x7c,0x56,0x38,0x65,0x51,0x3b, -0x0e,0x09,0x38,0x57,0x71,0x02,0x28,0x6b,0x5b,0xfe,0x60,0x1f,0x39,0x50,0xfd,0xd9,0x3f,0x58,0x39,0x1a,0xfe,0x22,0x17,0x38,0x5e,0x00,0x00,0x00,0x00,0x01,0x00,0x71,0xff,0xec,0x04,0x76,0x05,0x5a,0x00,0x29,0x00,0xa4,0x40,0x2d,0x39,0x27,0x01,0x46,0x1d,0x56,0x1d,0x66,0x1d,0x03,0x66,0x1c,0x01,0x36,0x03,0x01,0x20,0x1f,0x30,0x1f, -0x02,0x60,0x1f,0x70,0x1f,0x02,0xa0,0x1f,0x01,0x1f,0x1f,0x20,0x40,0x1d,0x24,0x48,0x20,0x20,0x0a,0x0b,0x0b,0xb0,0x0a,0x01,0x0a,0xb8,0xff,0xc0,0x40,0x45,0x09,0x0c,0x48,0x0a,0x0a,0x2b,0x76,0x00,0x86,0x00,0x02,0x00,0x5b,0x30,0x15,0x40,0x15,0x50,0x15,0x03,0x00,0x15,0x10,0x15,0x02,0x15,0x46,0x1a,0x56,0x1a,0x02,0x25,0x5f,0x1a, -0x20,0x20,0x1a,0x04,0x10,0x0a,0x20,0x0a,0x30,0x0a,0x60,0x0a,0x70,0x0a,0x05,0x30,0x0a,0x80,0x0a,0xd0,0x0a,0xe0,0x0a,0x04,0x0a,0x0a,0x49,0x10,0x59,0x10,0x02,0x05,0x5f,0x10,0x13,0x00,0x3f,0xed,0x5d,0x33,0x2f,0x5d,0x71,0x3f,0x33,0x2f,0x10,0xed,0x5d,0x01,0x2f,0x5d,0x71,0xed,0x5d,0x12,0x39,0x2f,0x2b,0x5d,0x33,0x2f,0x11,0x33, -0x2f,0x2b,0x33,0x2f,0x5d,0x71,0x72,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x23,0x22,0x2e,0x01,0x02,0x35,0x34,0x12,0x3e,0x01,0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x03,0x23,0x22,0x0e,0x02,0x01,0x3a,0x28,0x54,0x83,0x5c,0x3f,0x65,0x4f,0x3a,0x15,0x9f,0x1c,0x52,0x74,0x9b, -0x66,0x8d,0xcd,0x87,0x41,0x40,0x84,0xca,0x8a,0x65,0x98,0x6f,0x4d,0x19,0xa8,0x0f,0x34,0x49,0x61,0x3c,0x59,0x7f,0x52,0x26,0x02,0xa9,0x83,0xcb,0x8c,0x48,0x30,0x4e,0x66,0x36,0x41,0x46,0x85,0x69,0x40,0x65,0xb8,0x01,0x02,0x9e,0xa6,0x01,0x01,0xaf,0x5b,0x37,0x5d,0x79,0x42,0x41,0x2e,0x58,0x44,0x2a,0x44,0x87,0xc7,0x00,0x00,0x00, -0x00,0x02,0x00,0xa2,0x00,0x00,0x04,0x65,0x05,0x45,0x00,0x0c,0x00,0x17,0x00,0x61,0x40,0x45,0x75,0x02,0x85,0x02,0x02,0x7a,0x10,0x8a,0x10,0x02,0x70,0x17,0x80,0x17,0x02,0x14,0x17,0x24,0x17,0x64,0x17,0x03,0x7f,0x0f,0x8f,0x0f,0x02,0x1b,0x0f,0x2b,0x0f,0x6b,0x0f,0x03,0x34,0x0b,0x01,0x34,0x0a,0x01,0x3b,0x03,0x01,0x00,0x5a,0x00, -0x0d,0xa0,0x0d,0x02,0x0d,0x0d,0x19,0x14,0x5a,0x00,0x06,0x10,0x06,0x02,0x06,0x13,0x5f,0x07,0x03,0x14,0x5f,0x06,0x12,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x02,0x0e,0x01,0x23,0x21,0x11,0x21,0x32,0x1e,0x02,0x07,0x34,0x2e, -0x02,0x2b,0x01,0x11,0x33,0x32,0x12,0x04,0x65,0x50,0x98,0xdd,0x8c,0xfe,0x8e,0x01,0x37,0x9e,0xf3,0xa6,0x55,0xc0,0x38,0x72,0xac,0x75,0x79,0xa2,0xd4,0xce,0x02,0xb0,0xa8,0xfe,0xff,0xae,0x59,0x05,0x45,0x4d,0xa2,0xfa,0xac,0x87,0xc0,0x79,0x39,0xfb,0xf3,0x01,0x0a,0x00,0x00,0x01,0x00,0xa2,0x00,0x00,0x04,0x62,0x05,0x45,0x00,0x0b, -0x00,0x5a,0x40,0x3b,0x07,0x40,0x0a,0x14,0x48,0x07,0x07,0x00,0x0a,0x03,0x03,0x00,0x0a,0x01,0x0a,0x0a,0x0d,0x05,0x09,0x5a,0x00,0x00,0x10,0x00,0x02,0x00,0x08,0x5f,0x0f,0x05,0x3f,0x05,0x7f,0x05,0x8f,0x05,0x04,0x6f,0x05,0x8f,0x05,0x9f,0x05,0xbf,0x05,0xdf,0x05,0x05,0x05,0x05,0x09,0x04,0x5f,0x01,0x03,0x09,0x5f,0x00,0x12,0x00, -0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x71,0x72,0xed,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0x33,0x2f,0x11,0x12,0x39,0x2f,0x2b,0x31,0x30,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0xa2,0x03,0x97,0xfd,0x28,0x02,0x9c,0xfd,0x64,0x03,0x01,0x05,0x45,0x9c,0xfe,0x5a,0x9a,0xfe,0x33,0x9c,0x00,0x01,0x00,0xc2, -0x00,0x00,0x04,0x3d,0x05,0x45,0x00,0x09,0x00,0x47,0x40,0x2d,0x02,0x02,0x06,0x08,0x08,0x0b,0x01,0x05,0x5a,0x00,0x06,0x10,0x06,0x02,0x06,0x04,0x5f,0x3f,0x01,0x7f,0x01,0x8f,0x01,0x03,0x3f,0x01,0x6f,0x01,0x9f,0x01,0x03,0x01,0x40,0x15,0x29,0x48,0x01,0x01,0x05,0x00,0x5f,0x07,0x03,0x05,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f, -0x2b,0x5d,0x72,0xed,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x12,0x39,0x2f,0x31,0x30,0x01,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x15,0x01,0x81,0x02,0xa4,0xfd,0x5c,0xbf,0x03,0x7b,0x04,0xa9,0xfe,0x12,0x9e,0xfd,0xe3,0x05,0x45,0x9c,0x00,0x00,0x00,0x01,0x00,0x71,0xff,0xec,0x04,0x4f,0x05,0x5a,0x00,0x29,0x00,0x88,0x40,0x4a, -0x08,0x02,0x01,0x15,0x1e,0x25,0x1e,0x75,0x1e,0x85,0x1e,0x04,0x55,0x12,0x01,0x27,0x27,0x0a,0x25,0xaf,0x15,0x01,0x15,0x15,0x14,0x14,0x00,0x5a,0xc0,0x25,0xd0,0x25,0x02,0x7f,0x25,0x8f,0x25,0x02,0x00,0x25,0x01,0x25,0x25,0x2b,0x36,0x1d,0x76,0x1d,0x86,0x1d,0xb6,0x1d,0x04,0x1d,0x5b,0x30,0x0a,0x40,0x0a,0x50,0x0a,0x03,0x00,0x0a, -0x10,0x0a,0x02,0x0a,0x27,0x5f,0x28,0x28,0x20,0x0f,0xb8,0xff,0xf0,0x40,0x0e,0x0d,0x11,0x48,0x18,0x5f,0x0f,0x15,0x15,0x0f,0x04,0x20,0x5f,0x05,0x13,0x00,0x3f,0xed,0x3f,0x33,0x2f,0x10,0xed,0x2b,0x12,0x39,0x2f,0xed,0x01,0x2f,0x5d,0x71,0xed,0x5d,0x12,0x39,0x2f,0x5d,0x5d,0x5d,0xed,0x32,0x2f,0x33,0x2f,0x5d,0x11,0x12,0x39,0x2f, -0x31,0x30,0x00,0x5d,0x5d,0x5d,0x25,0x0e,0x03,0x23,0x22,0x2e,0x01,0x02,0x35,0x34,0x12,0x3e,0x01,0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x01,0x23,0x22,0x0e,0x02,0x15,0x10,0x12,0x33,0x32,0x3e,0x02,0x37,0x11,0x21,0x35,0x21,0x04,0x4d,0x24,0x5f,0x74,0x89,0x4e,0x86,0xc6,0x82,0x40,0x3e,0x82,0xc8,0x89,0x64,0x97,0x6f,0x4b,0x18,0xab, -0x26,0x8b,0x6f,0x5a,0x7e,0x4f,0x23,0xa9,0xac,0x30,0x53,0x43,0x31,0x0d,0xfe,0xdb,0x01,0xdf,0x85,0x18,0x36,0x2d,0x1e,0x69,0xba,0x01,0x01,0x99,0xa7,0x01,0x01,0xaf,0x5a,0x34,0x59,0x79,0x45,0x38,0x6e,0x79,0x45,0x87,0xc7,0x82,0xfe,0xf4,0xfe,0xea,0x11,0x17,0x19,0x09,0x01,0x50,0xa0,0x00,0x00,0x01,0x00,0xa2,0x00,0x00,0x04,0x2a, -0x05,0x45,0x00,0x0b,0x00,0x57,0x40,0x3c,0x0b,0x5a,0x08,0x1f,0x00,0x2f,0x00,0x3f,0x00,0x6f,0x00,0x7f,0x00,0x05,0x6f,0x00,0x7f,0x00,0x8f,0x00,0xbf,0x00,0x04,0x00,0x00,0x0d,0x07,0x03,0x5a,0x70,0x04,0x01,0x00,0x04,0x10,0x04,0xa0,0x04,0xb0,0x04,0x04,0x04,0x02,0x5f,0x50,0x07,0x01,0xa0,0x07,0xb0,0x07,0x02,0x07,0x07,0x09,0x05, -0x03,0x04,0x00,0x12,0x00,0x3f,0x32,0x3f,0x33,0x39,0x2f,0x5d,0x71,0xed,0x01,0x2f,0x5d,0x71,0xed,0x32,0x12,0x39,0x2f,0x5d,0x71,0x33,0xed,0x31,0x30,0x21,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x03,0x6b,0xfd,0xf6,0xbf,0xbf,0x02,0x0a,0xbf,0x02,0x6f,0xfd,0x91,0x05,0x45,0xfd,0xca,0x02,0x36,0xfa,0xbb,0x00,0x00, -0x00,0x01,0x00,0xca,0x00,0x00,0x04,0x01,0x05,0x45,0x00,0x0b,0x00,0x59,0x40,0x38,0x06,0x06,0x01,0x0e,0x04,0x07,0x07,0x00,0x00,0x09,0x0e,0x70,0x00,0x01,0x00,0x04,0x5a,0x0f,0x09,0x3f,0x09,0x8f,0x09,0x9f,0x09,0x04,0x4f,0x09,0x5f,0x09,0x7f,0x09,0x8f,0x09,0xcf,0x09,0xdf,0x09,0x06,0x10,0x09,0x01,0x09,0x09,0x0c,0x0d,0x04,0x08, -0x5f,0x07,0x12,0x03,0x0b,0x5f,0x00,0x03,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x5d,0x5d,0x71,0xed,0xc4,0x5d,0x2b,0x11,0x01,0x33,0x18,0x2f,0x10,0x4d,0xe4,0x32,0x2f,0x31,0x30,0x13,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x35,0x21,0x11,0x21,0xca,0x03,0x37,0xfe,0xc4,0x01,0x3c,0xfc,0xc9,0x01,0x3c,0xfe,0xc4, -0x05,0x45,0x9c,0xfb,0xf3,0x9c,0x9c,0x04,0x0d,0x00,0x00,0x00,0x00,0x01,0x00,0xb0,0xff,0xec,0x03,0xda,0x05,0x45,0x00,0x15,0x00,0x4b,0xb7,0x65,0x10,0x75,0x10,0x85,0x10,0x03,0x0b,0xb8,0xff,0xe8,0x40,0x22,0x0d,0x11,0x48,0x13,0x13,0x08,0x00,0x5a,0x11,0x11,0x08,0x17,0x80,0x09,0x01,0x09,0x09,0x00,0x08,0x10,0x08,0x02,0x08,0x13, -0x5f,0x14,0x03,0x0e,0x5f,0x05,0x09,0x09,0x05,0x13,0x00,0x3f,0x33,0x2f,0x10,0xed,0x3f,0xed,0x01,0x2f,0x5d,0x33,0x2f,0x5d,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x31,0x30,0x00,0x2b,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x37,0x1e,0x03,0x33,0x32,0x36,0x35,0x11,0x21,0x35,0x21,0x03,0xda,0x33,0x65,0x96,0x62,0xab,0xcc, -0x23,0xbb,0x0a,0x2a,0x3a,0x49,0x29,0x68,0x69,0xfe,0xc9,0x01,0xf5,0x01,0xa4,0x64,0xa3,0x73,0x3e,0xb2,0xc0,0x1f,0x40,0x5d,0x3c,0x1d,0x8f,0x8a,0x03,0x09,0x9c,0x00,0x00,0x01,0x00,0xa2,0x00,0x00,0x04,0xcb,0x05,0x45,0x00,0x0b,0x00,0x97,0x40,0x34,0x74,0x0a,0x84,0x0a,0x02,0x46,0x0a,0x56,0x0a,0x66,0x0a,0x03,0x64,0x07,0x74,0x07, -0x84,0x07,0x03,0x8d,0x00,0x01,0x6b,0x00,0x7b,0x00,0x02,0x49,0x00,0x59,0x00,0x02,0x39,0x0a,0x01,0x14,0x0a,0x01,0x01,0x20,0x0b,0x11,0x48,0x0a,0x01,0x0b,0x72,0x09,0x82,0x09,0x02,0x09,0xb8,0xff,0xe0,0x40,0x2d,0x0b,0x0f,0x48,0x08,0x09,0x10,0x09,0x09,0x00,0x0b,0x10,0x00,0x0b,0x10,0x0b,0x02,0x0b,0x0b,0x0d,0x07,0x03,0x5a,0x00, -0x04,0x10,0x04,0x02,0x04,0x02,0x07,0x0a,0x01,0x76,0x07,0x86,0x07,0x02,0x07,0x01,0x08,0x05,0x03,0x04,0x00,0x12,0x00,0x3f,0x32,0x3f,0x33,0x39,0x39,0x5d,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0xed,0x32,0x11,0x33,0x2f,0x5d,0x38,0x33,0x33,0x2f,0x38,0x33,0x2b,0x5d,0x11,0x39,0x39,0x00,0x2b,0x31,0x30,0x5d,0x5d,0x01,0x5d,0x5d,0x5d, -0x00,0x5d,0x01,0x5d,0x5d,0x21,0x01,0x07,0x11,0x23,0x11,0x33,0x11,0x01,0x33,0x09,0x01,0x03,0xeb,0xfe,0x19,0xa3,0xbf,0xbf,0x02,0x3c,0xe1,0xfe,0x08,0x02,0x45,0x02,0x7e,0xa9,0xfe,0x2b,0x05,0x45,0xfd,0x5f,0x02,0xa1,0xfd,0xc4,0xfc,0xf7,0x00,0x00,0x00,0x01,0x00,0xed,0x00,0x00,0x04,0x4c,0x05,0x45,0x00,0x05,0x00,0x26,0x40,0x16, -0x04,0x04,0x07,0x03,0x5a,0x2f,0x00,0x3f,0x00,0x02,0x00,0x00,0x10,0x00,0x02,0x00,0x01,0x03,0x03,0x5f,0x00,0x12,0x00,0x3f,0xed,0x3f,0x01,0x2f,0x5d,0x5d,0xed,0x12,0x39,0x2f,0x31,0x30,0x33,0x11,0x33,0x11,0x21,0x15,0xed,0xbf,0x02,0xa0,0x05,0x45,0xfb,0x57,0x9c,0x00,0x00,0x01,0x00,0x81,0x00,0x00,0x04,0x4b,0x05,0x45,0x00,0x2c, -0x00,0x99,0xb9,0x00,0x1e,0xff,0xe8,0x40,0x13,0x0d,0x11,0x48,0x26,0x1e,0x36,0x1e,0x02,0x2a,0x18,0x0d,0x11,0x48,0x29,0x2a,0x39,0x2a,0x02,0x0c,0xb8,0xff,0xf0,0x40,0x19,0x0b,0x11,0x48,0x0d,0x10,0x0b,0x11,0x48,0x0d,0x0c,0x24,0x24,0x1c,0x2c,0x5c,0x2a,0x00,0x40,0x19,0x1c,0x48,0x00,0x00,0x2e,0x1e,0xb8,0xff,0xf0,0x40,0x0d,0x0a, -0x11,0x00,0x4c,0x1e,0x1b,0x5c,0x00,0x1c,0x10,0x1c,0x02,0x1c,0xb8,0xff,0xc0,0xb3,0x28,0x2d,0x48,0x1c,0xb8,0xff,0xc0,0x40,0x09,0x18,0x1e,0x48,0x1c,0x06,0x15,0x15,0x1d,0x24,0xb8,0xff,0xc0,0x40,0x0c,0x0e,0x11,0x48,0x24,0x0d,0x0d,0x2a,0x1d,0x03,0x1c,0x00,0x12,0x00,0x3f,0x32,0x3f,0x33,0x39,0x2f,0x33,0x2b,0x11,0x33,0x11,0x33, -0x01,0x2f,0x2b,0x2b,0x5d,0xed,0x32,0x2b,0x12,0x39,0x2f,0x2b,0x33,0xed,0x11,0x39,0x11,0x33,0x33,0x2b,0x2b,0x31,0x30,0x5d,0x2b,0x5d,0x2b,0x21,0x11,0x34,0x36,0x37,0x36,0x37,0x06,0x07,0x0e,0x01,0x07,0x03,0x23,0x03,0x2e,0x03,0x27,0x26,0x27,0x16,0x17,0x1e,0x01,0x15,0x11,0x23,0x11,0x33,0x13,0x1e,0x01,0x17,0x16,0x17,0x36,0x37, -0x3e,0x01,0x37,0x13,0x33,0x11,0x03,0xa9,0x01,0x02,0x02,0x01,0x11,0x11,0x0e,0x21,0x0e,0xa4,0x89,0xa6,0x06,0x0e,0x0f,0x10,0x08,0x12,0x13,0x01,0x01,0x01,0x01,0xa0,0xed,0xb9,0x09,0x17,0x0b,0x0c,0x0d,0x0e,0x0c,0x0b,0x18,0x09,0xb9,0xe1,0x03,0x64,0x33,0x6a,0x2c,0x33,0x31,0x37,0x35,0x2d,0x64,0x26,0xfe,0x4a,0x01,0xb6,0x0f,0x29, -0x2f,0x31,0x18,0x37,0x3c,0x30,0x34,0x2d,0x69,0x33,0xfc,0x9c,0x05,0x45,0xfe,0x17,0x17,0x4d,0x26,0x2c,0x31,0x2f,0x2b,0x25,0x4e,0x19,0x01,0xea,0xfa,0xbb,0x00,0x00,0x00,0x01,0x00,0xa2,0x00,0x00,0x04,0x2a,0x05,0x45,0x00,0x13,0x00,0x78,0x40,0x24,0x12,0x5c,0x00,0x18,0x09,0x11,0x48,0x00,0x80,0x11,0x90,0x11,0xd0,0x11,0xe0,0x11, -0x04,0x3f,0x11,0x01,0xc0,0x11,0xd0,0x11,0x02,0x6f,0x11,0x7f,0x11,0x8f,0x11,0x03,0x11,0x11,0x15,0x0a,0xb8,0xff,0xe8,0x40,0x2d,0x0b,0x11,0x48,0x0a,0x07,0x5c,0x70,0x08,0x01,0x00,0x08,0x10,0x08,0xa0,0x08,0xb0,0x08,0x04,0x08,0x8c,0x01,0x01,0x7a,0x01,0x01,0x69,0x01,0x01,0x11,0x01,0x09,0x03,0x83,0x0b,0x01,0x75,0x0b,0x01,0x66, -0x0b,0x01,0x0b,0x00,0x08,0x12,0x00,0x3f,0x33,0x33,0x5d,0x5d,0x5d,0x3f,0x33,0x33,0x5d,0x5d,0x5d,0x01,0x2f,0x5d,0x71,0xed,0x32,0x2b,0x12,0x39,0x2f,0x5d,0x5d,0x71,0x71,0x33,0x2b,0xed,0x31,0x30,0x21,0x01,0x16,0x17,0x1e,0x01,0x15,0x11,0x23,0x11,0x33,0x01,0x26,0x27,0x2e,0x01,0x35,0x11,0x33,0x11,0x03,0x44,0xfd,0xf8,0x04,0x04, -0x03,0x05,0xaa,0xde,0x02,0x10,0x05,0x04,0x04,0x05,0xac,0x04,0x6a,0x2b,0x2d,0x26,0x59,0x27,0xfc,0x94,0x05,0x45,0xfb,0x8e,0x28,0x2e,0x27,0x62,0x33,0x03,0x60,0xfa,0xbb,0x00,0x00,0x00,0x00,0x02,0x00,0x66,0xff,0xec,0x04,0x66,0x05,0x5a,0x00,0x11,0x00,0x1d,0x00,0x79,0x40,0x56,0x76,0x1d,0x86,0x1d,0x02,0x34,0x1d,0x01,0x76,0x19, -0x86,0x19,0x02,0x34,0x19,0x01,0x79,0x17,0x89,0x17,0x02,0x3b,0x17,0x01,0x79,0x13,0x89,0x13,0x02,0x3b,0x13,0x01,0x56,0x10,0x01,0x45,0x10,0x01,0x46,0x0d,0x56,0x0d,0x02,0x49,0x07,0x59,0x07,0x02,0x49,0x03,0x59,0x03,0x02,0x00,0x5b,0x5f,0x12,0x01,0x12,0x40,0x19,0x1c,0x48,0x00,0x12,0x01,0x12,0x12,0x1f,0x18,0x5b,0x50,0x0a,0x01, -0x10,0x0a,0x01,0x0a,0x15,0x5f,0x0f,0x04,0x1b,0x5f,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x5d,0x71,0xed,0x12,0x39,0x2f,0x5d,0x2b,0x71,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x02,0x0e,0x01,0x23,0x22,0x2e,0x01,0x02,0x35,0x34,0x12,0x3e,0x01,0x33,0x32,0x00,0x03, -0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x04,0x66,0x46,0x84,0xbf,0x78,0x7f,0xc0,0x80,0x40,0x44,0x82,0xbf,0x7c,0xf7,0x01,0x08,0xc9,0x9e,0x98,0x9c,0x9c,0x9e,0x99,0xa3,0x94,0x02,0xa9,0xad,0xfe,0xfa,0xb1,0x59,0x5e,0xb3,0x01,0x05,0xa7,0xad,0x01,0x02,0xac,0x56,0xfe,0xa5,0xfe,0xaa,0x01,0x0e,0x01,0x07,0xfe,0xf9, -0xfe,0xf2,0xfe,0xf2,0xfe,0xec,0x01,0x18,0x00,0x02,0x00,0xa2,0x00,0x00,0x04,0x5f,0x05,0x45,0x00,0x0e,0x00,0x19,0x00,0x5b,0x40,0x3e,0x66,0x17,0x01,0x76,0x00,0x86,0x00,0x02,0x49,0x0f,0x59,0x0f,0x69,0x0f,0x03,0x00,0x5a,0x7f,0x0f,0x8f,0x0f,0x02,0x0f,0x40,0x19,0x1c,0x48,0x00,0x0f,0x01,0x0f,0x0f,0x1b,0x14,0x07,0x5a,0x00,0x08, -0x10,0x08,0xa0,0x08,0xb0,0x08,0x04,0x08,0x06,0x5f,0x14,0x40,0x09,0x11,0x48,0x14,0x14,0x07,0x13,0x5f,0x09,0x03,0x07,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x2b,0xed,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0x2b,0x5d,0xed,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x01,0x14,0x0e,0x02,0x23,0x21,0x11,0x23,0x11,0x21,0x32,0x1e,0x02, -0x07,0x34,0x26,0x2b,0x01,0x11,0x33,0x32,0x3e,0x02,0x04,0x5f,0x3b,0x79,0xb6,0x7b,0xfe,0xe7,0xbf,0x01,0xcc,0x7d,0xba,0x7c,0x3e,0xc0,0xa4,0xa4,0xf6,0xfe,0x52,0x79,0x4f,0x26,0x03,0xb1,0x54,0x9b,0x78,0x48,0xfd,0xfe,0x05,0x45,0x3a,0x6a,0x95,0x5e,0x7d,0x81,0xfd,0xed,0x2b,0x4a,0x66,0x00,0x00,0x02,0x00,0x66,0xfe,0x7d,0x04,0x71, -0x05,0x5a,0x00,0x20,0x00,0x2c,0x00,0x8b,0x40,0x62,0x35,0x2c,0x75,0x2c,0x85,0x2c,0x03,0x35,0x28,0x75,0x28,0x85,0x28,0x03,0x3a,0x26,0x7a,0x26,0x8a,0x26,0x03,0x3a,0x22,0x7a,0x22,0x8a,0x22,0x03,0x69,0x11,0x79,0x11,0x89,0x11,0x03,0x4a,0x04,0x5a,0x04,0x02,0x46,0x1f,0x56,0x1f,0x02,0x46,0x1c,0x56,0x1c,0x02,0x05,0x5a,0x14,0x0b, -0x0b,0x00,0x5b,0x21,0x5f,0x21,0x01,0x21,0x40,0x19,0x1c,0x48,0x00,0x21,0x01,0x14,0x21,0x14,0x21,0x2e,0x27,0x5b,0x50,0x19,0x01,0x10,0x19,0x01,0x19,0x24,0x5f,0x1e,0x04,0x05,0x2a,0x5f,0x14,0x13,0x08,0x60,0x5f,0x0f,0x01,0x0f,0x00,0x2f,0x5d,0xed,0x3f,0xed,0x33,0x3f,0xed,0x01,0x2f,0x5d,0x71,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d, -0x2b,0x71,0x10,0xed,0x32,0x2f,0x10,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x07,0x1e,0x01,0x33,0x32,0x36,0x37,0x15,0x0e,0x01,0x23,0x22,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x12,0x3e,0x01,0x33,0x32,0x00,0x03,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x04,0x66,0x33,0x62, -0x8d,0x5a,0x29,0x86,0x65,0x1c,0x40,0x17,0x26,0x5b,0x31,0x55,0x81,0x61,0x46,0x1b,0x70,0xa8,0x71,0x38,0x44,0x82,0xbf,0x7c,0xf7,0x01,0x08,0xc9,0x9e,0x98,0x9c,0x9c,0x9e,0x99,0xa3,0x94,0x02,0xa9,0x93,0xeb,0xac,0x6d,0x16,0x7e,0x72,0x08,0x05,0x86,0x09,0x0d,0x33,0x5f,0x8a,0x57,0x0b,0x67,0xb2,0xf9,0x9c,0xad,0x01,0x02,0xac,0x56, -0xfe,0xa5,0xfe,0xaa,0x01,0x0e,0x01,0x07,0xfe,0xf9,0xfe,0xf2,0xfe,0xf2,0xfe,0xec,0x01,0x18,0x00,0x00,0x00,0x02,0x00,0xa2,0x00,0x00,0x04,0x99,0x05,0x45,0x00,0x11,0x00,0x1b,0x00,0x97,0xb9,0x00,0x1a,0xff,0xf0,0xb3,0x0f,0x00,0x4d,0x10,0xb8,0xff,0xe0,0x40,0x23,0x0f,0x11,0x00,0x4c,0x89,0x01,0x01,0x0b,0x00,0x01,0x00,0x20,0x0e, -0x11,0x48,0x00,0x11,0x10,0x11,0x11,0x01,0x04,0x10,0x01,0x10,0x10,0x03,0x76,0x0b,0x86,0x0b,0x02,0x0b,0x5a,0x12,0xb8,0xff,0xc0,0x40,0x36,0x15,0x18,0x48,0x7f,0x12,0x8f,0x12,0x02,0x00,0x12,0x01,0x12,0x12,0x1d,0x16,0x03,0x5a,0x00,0x04,0x10,0x04,0xa0,0x04,0xb0,0x04,0x04,0x04,0x10,0x02,0x5f,0x1f,0x16,0x7f,0x16,0x02,0x3f,0x16, -0x6f,0x16,0x9f,0x16,0xef,0x16,0x04,0x16,0x16,0x00,0x15,0x5f,0x05,0x03,0x04,0x00,0x12,0x00,0x3f,0x32,0x3f,0xed,0x12,0x39,0x2f,0x5d,0x71,0xed,0x32,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0x5d,0x2b,0xed,0x5d,0x11,0x39,0x2f,0x5d,0x33,0x32,0x2f,0x38,0x33,0x2b,0x5d,0x5d,0x31,0x30,0x2b,0x00,0x2b,0x21,0x01,0x23,0x11,0x23, -0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x01,0x03,0x34,0x29,0x01,0x11,0x21,0x32,0x3e,0x02,0x03,0xbd,0xfe,0x92,0xee,0xbf,0x01,0xe2,0x78,0xb3,0x77,0x3b,0x27,0x54,0x82,0x5b,0x01,0x90,0xf8,0xfe,0xd0,0xfe,0xf0,0x01,0x18,0x53,0x71,0x45,0x1f,0x02,0x3f,0xfd,0xc1,0x05,0x45,0x33,0x61,0x8a,0x57,0x3e,0x7b,0x67,0x4c,0x0f, -0xfd,0xab,0x03,0xcd,0xdf,0xfe,0x2a,0x28,0x43,0x5a,0x00,0x00,0x00,0x01,0x00,0x4f,0xff,0xec,0x04,0x68,0x05,0x5a,0x00,0x3f,0x00,0xb0,0x40,0x79,0x34,0x3d,0x01,0x6d,0x2d,0x01,0x4b,0x1d,0x5b,0x1d,0x02,0x6b,0x10,0x01,0x60,0x0c,0x01,0x74,0x3e,0x84,0x3e,0x02,0x74,0x3d,0x01,0x40,0x3d,0x50,0x3d,0x02,0x86,0x3c,0x01,0x44,0x3c,0x54, -0x3c,0x02,0x76,0x37,0x86,0x37,0x02,0x74,0x27,0x84,0x27,0x02,0x04,0x21,0x74,0x21,0x84,0x21,0x03,0x54,0x0b,0x01,0x89,0x07,0x01,0x7a,0x07,0x01,0x8b,0x02,0x01,0x79,0x02,0x01,0x2a,0x5a,0x29,0x29,0x00,0x5a,0x00,0x13,0x01,0x13,0x13,0x1f,0x41,0x09,0x5a,0x7f,0x08,0x8f,0x08,0x02,0x08,0x34,0x5a,0x00,0x1f,0x10,0x1f,0x02,0x1f,0x34, -0x13,0x05,0x2f,0x60,0x24,0x2a,0x2a,0x24,0x04,0x0e,0x5f,0x05,0x40,0x09,0x50,0x09,0x02,0x09,0x09,0x05,0x13,0x00,0x3f,0x33,0x2f,0x5d,0x10,0xed,0x3f,0x33,0x2f,0x10,0xed,0x12,0x39,0x39,0x01,0x2f,0x5d,0xed,0xd6,0x5d,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x24,0x27,0x37,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x2e,0x05,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x05,0x04,0x68,0x3e,0x7f,0xc3,0x86,0xea,0xfe,0xfb, -0x24,0xb9,0x0c,0x30,0x54,0x7a,0x55,0x48,0x77,0x55,0x30,0x41,0x6a,0x85,0x44,0x32,0x66,0x5e,0x51,0x3d,0x22,0x48,0x7e,0xac,0x64,0x74,0xa3,0x71,0x44,0x14,0xbc,0x0b,0x2b,0x47,0x64,0x44,0x50,0x6c,0x42,0x1d,0x35,0x5b,0x79,0x45,0x37,0x70,0x67,0x59,0x42,0x26,0x01,0x72,0x55,0x8f,0x68,0x3a,0xb8,0xae,0x25,0x37,0x5a,0x41,0x24,0x1b, -0x3a,0x5a,0x3f,0x46,0x58,0x38,0x23,0x11,0x0d,0x1d,0x27,0x35,0x4b,0x65,0x43,0x60,0x89,0x57,0x28,0x29,0x52,0x79,0x50,0x21,0x33,0x50,0x36,0x1c,0x21,0x39,0x4e,0x2d,0x3c,0x4b,0x31,0x20,0x12,0x0e,0x1f,0x2a,0x39,0x52,0x6e,0x00,0x00,0x01,0x00,0x4c,0x00,0x00,0x04,0x80,0x05,0x45,0x00,0x07,0x00,0x4a,0x40,0x31,0x07,0x0e,0x01,0x04, -0x02,0x0e,0x04,0x01,0x5a,0x0f,0x02,0x3f,0x02,0x8f,0x02,0x9f,0x02,0xbf,0x02,0xcf,0x02,0x06,0x4f,0x02,0x5f,0x02,0x7f,0x02,0x8f,0x02,0xcf,0x02,0xdf,0x02,0x06,0x10,0x02,0x01,0x02,0x02,0x08,0x09,0x00,0x04,0x5f,0x05,0x03,0x01,0x12,0x00,0x3f,0x3f,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x5d,0x5d,0x71,0xed,0xc6,0x2b,0x01,0x18,0x10, -0x4d,0xe6,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x02,0xc5,0xbe,0xfe,0x45,0x04,0x34,0x04,0xa9,0xfb,0x57,0x04,0xa9,0x9c,0x9c,0x00,0x00,0x01,0x00,0x8e,0xff,0xec,0x04,0x3d,0x05,0x45,0x00,0x19,0x00,0x5e,0x40,0x44,0x65,0x15,0x75,0x15,0x85,0x15,0x03,0x65,0x0f,0x75,0x0f,0x85,0x0f,0x03,0x00,0x5a,0x80,0x17,0x90,0x17, -0xd0,0x17,0xe0,0x17,0xf0,0x17,0x05,0x3f,0x17,0x01,0xc0,0x17,0xd0,0x17,0x02,0x7f,0x17,0x8f,0x17,0x02,0x17,0x17,0x1b,0x0d,0x5a,0x8f,0x0a,0x9f,0x0a,0xaf,0x0a,0x03,0xcf,0x0a,0x01,0x00,0x0a,0x10,0x0a,0x02,0x0a,0x18,0x0b,0x03,0x12,0x5f,0x05,0x13,0x00,0x3f,0xed,0x3f,0x33,0x01,0x2f,0x5d,0x5d,0x71,0xed,0x12,0x39,0x2f,0x5d,0x5d, -0x71,0x71,0xed,0x31,0x30,0x00,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x04,0x3d,0x3a,0x77,0xb5,0x7a,0x74,0xae,0x73,0x3a,0xbf,0x19,0x3d,0x69,0x50,0x53,0x6f,0x44,0x1d,0xbe,0x01,0xea,0x89,0xc2,0x7b,0x38,0x35,0x75,0xbb,0x87,0x03,0x6d,0xfc,0xad, -0x61,0x8a,0x58,0x28,0x28,0x59,0x90,0x67,0x03,0x46,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x00,0x04,0xc2,0x05,0x45,0x00,0x10,0x00,0x82,0x40,0x55,0x0f,0x20,0x0e,0x11,0x48,0x29,0x0f,0x39,0x0f,0x02,0x2b,0x0f,0x01,0x76,0x03,0x86,0x03,0x02,0x54,0x03,0x64,0x03,0x02,0x36,0x03,0x46,0x03,0x02,0x24,0x03,0x01,0x00,0x01,0x52,0x0f,0x09, -0x0f,0x5e,0x10,0x00,0x14,0x10,0x10,0x00,0x01,0x01,0x52,0x03,0x09,0x03,0x5e,0x02,0x01,0x14,0x02,0x01,0x03,0x02,0x09,0x02,0x10,0x10,0x01,0x10,0x10,0x12,0x7f,0x02,0x8f,0x02,0x02,0x02,0x0f,0x02,0x03,0x55,0x09,0x01,0x44,0x09,0x01,0x09,0x00,0x01,0x12,0x00,0x3f,0x33,0x33,0x5d,0x5d,0x3f,0x33,0x01,0x2f,0x5d,0x11,0x33,0x2f,0x5d, -0x12,0x39,0x10,0x00,0xc1,0x87,0x05,0x2b,0x87,0x2b,0xc4,0x87,0x18,0x10,0x2b,0x87,0x2b,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x2b,0x21,0x23,0x01,0x33,0x01,0x1e,0x01,0x17,0x16,0x17,0x36,0x37,0x3e,0x01,0x37,0x01,0x33,0x02,0xc9,0xc6,0xfe,0x07,0xc9,0x01,0x40,0x10,0x1d,0x0c,0x0e,0x0d,0x0c,0x0e,0x0c,0x1e,0x10,0x01, -0x3e,0xc9,0x05,0x45,0xfc,0x7a,0x2d,0x61,0x2a,0x30,0x2f,0x2d,0x30,0x29,0x62,0x2f,0x03,0x86,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x04,0xcc,0x05,0x45,0x00,0x32,0x01,0x4c,0x40,0x11,0x21,0x08,0x0c,0x00,0x4d,0x02,0x18,0x10,0x00,0x4d,0x02,0x18,0x0b,0x0c,0x00,0x4c,0x10,0xb8,0xff,0xe8,0xb4,0x0b,0x0c,0x00,0x4c,0x1a,0xb8,0xff, -0xf0,0x40,0x10,0x10,0x11,0x00,0x4c,0x31,0x18,0x11,0x00,0x4d,0x31,0x18,0x0b,0x0c,0x00,0x4c,0x14,0xb8,0xff,0xf0,0xb4,0x0b,0x0c,0x00,0x4c,0x23,0xb8,0xff,0xe0,0x40,0x1c,0x0b,0x0f,0x00,0x4c,0x22,0x18,0x0b,0x0f,0x00,0x4c,0x22,0x10,0x0a,0x00,0x4d,0x01,0x20,0x0b,0x11,0x00,0x4c,0x00,0x20,0x10,0x11,0x00,0x4c,0x00,0xb8,0xff,0xe0, -0xb4,0x0d,0x0e,0x00,0x4c,0x00,0xb8,0xff,0xe0,0xb4,0x09,0x0a,0x00,0x4c,0x12,0xb8,0xff,0xf0,0x40,0x11,0x10,0x11,0x00,0x4c,0x12,0x28,0x0d,0x0e,0x00,0x4c,0x12,0x28,0x09,0x0a,0x00,0x4c,0x11,0xb8,0xff,0xe0,0x40,0x13,0x0b,0x11,0x00,0x4c,0x22,0x09,0x32,0x09,0x02,0x02,0x04,0x09,0x01,0x01,0x01,0x52,0x23,0x2b,0x23,0xb8,0x01,0x07, -0x40,0x0c,0x09,0x01,0x14,0x09,0x01,0x23,0x11,0x01,0x52,0x22,0x1a,0x22,0xb8,0x01,0x07,0x40,0x48,0x09,0x11,0x14,0x09,0x09,0x11,0x00,0x01,0x52,0x31,0x2b,0x31,0x5e,0x32,0x00,0x14,0x32,0x32,0x00,0x12,0x01,0x52,0x14,0x1a,0x14,0x5e,0x13,0x12,0x14,0x13,0x12,0x14,0x13,0x2b,0x09,0x1a,0x03,0x13,0x10,0x32,0x01,0x32,0x32,0x34,0x13, -0x09,0x2f,0x22,0x4f,0x22,0x5f,0x22,0x03,0x22,0x22,0x1a,0x31,0x13,0x03,0x2b,0x1a,0x00,0x01,0x24,0x1a,0x01,0x1a,0x11,0x01,0x03,0x12,0x12,0x00,0x3f,0x17,0x33,0x5d,0x11,0x33,0x11,0x33,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x33,0x01,0x2f,0x11,0x33,0x2f,0x5d,0x12,0x17,0x39,0x10,0x00,0xc1,0x87,0x05,0x2b,0x87,0x2b,0xc4,0x87,0x18,0x10, -0x2b,0x87,0x2b,0xc4,0x87,0x18,0x10,0x2b,0x87,0x2b,0xc4,0x00,0xc1,0x87,0x05,0x18,0x2b,0x87,0x2b,0xc4,0x00,0x5d,0x5f,0x5d,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x21,0x23,0x03,0x2e,0x03,0x27,0x26,0x27,0x06,0x07,0x0e,0x03,0x07,0x03,0x23,0x03,0x33,0x13, -0x1e,0x01,0x17,0x16,0x17,0x36,0x37,0x3e,0x03,0x37,0x13,0x33,0x13,0x1e,0x03,0x17,0x16,0x17,0x32,0x3e,0x02,0x37,0x13,0x33,0x03,0xfa,0xd0,0x68,0x05,0x0e,0x0f,0x0f,0x07,0x11,0x11,0x12,0x11,0x07,0x0f,0x0f,0x0e,0x05,0x6a,0xd0,0xd3,0xbd,0x6d,0x08,0x0b,0x05,0x05,0x04,0x10,0x10,0x07,0x0e,0x0f,0x0e,0x06,0x6d,0xaf,0x6d,0x06,0x0e, -0x0f,0x0e,0x07,0x10,0x10,0x01,0x06,0x0a,0x0c,0x06,0x68,0xbd,0x01,0x83,0x13,0x34,0x3b,0x3f,0x1e,0x46,0x4c,0x4d,0x46,0x1e,0x3f,0x3b,0x33,0x13,0xfe,0x7d,0x05,0x45,0xfc,0xbd,0x41,0x7c,0x31,0x39,0x33,0x45,0x43,0x1d,0x3d,0x3c,0x37,0x17,0x01,0x8f,0xfe,0x71,0x16,0x38,0x3b,0x3d,0x1d,0x43,0x46,0x44,0x66,0x7a,0x36,0x03,0x43,0x00, -0x00,0x01,0x00,0x24,0x00,0x00,0x04,0xa9,0x05,0x45,0x00,0x0b,0x00,0xc8,0x40,0x5c,0x09,0x09,0x01,0x0b,0x06,0x01,0x09,0x03,0x59,0x03,0x02,0x29,0x01,0x01,0x04,0x01,0x01,0x03,0x02,0x07,0x00,0x01,0x08,0x0b,0x04,0x0b,0x06,0x02,0x07,0x09,0x01,0x08,0x0a,0x05,0x0a,0x06,0x03,0x02,0x07,0x02,0x09,0x00,0x01,0x07,0x02,0x01,0x52,0x01, -0x08,0x07,0x08,0x01,0x5e,0x02,0x07,0x14,0x02,0x02,0x07,0x05,0x0a,0x01,0x52,0x0b,0x04,0x05,0x04,0x0b,0x5e,0x0a,0x05,0x14,0x0a,0x05,0x0b,0x0a,0x10,0x0a,0x20,0x0a,0x02,0x02,0x0a,0x02,0x0a,0x03,0x06,0x00,0x09,0x04,0x08,0x04,0xb8,0xff,0xc0,0x40,0x18,0x0a,0x1c,0x48,0x04,0x04,0x0d,0x08,0x40,0x0b,0x1b,0x48,0x08,0x00,0x09,0x03, -0x06,0x04,0x01,0x08,0x04,0x12,0x0a,0x01,0x03,0x00,0x3f,0x33,0x3f,0x33,0x12,0x17,0x39,0x01,0x2f,0x2b,0x11,0x33,0x2f,0x2b,0x12,0x17,0x39,0x39,0x39,0x2f,0x2f,0x71,0x10,0x00,0xc1,0x87,0x05,0x2b,0x10,0x00,0xc1,0x87,0x05,0x2b,0x10,0xc4,0x87,0x18,0x10,0x2b,0x10,0x00,0xc1,0x87,0x05,0x2b,0x10,0xc4,0x10,0xc0,0xc0,0x10,0x87,0xc0, -0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x09,0x01,0x33,0x09,0x01,0x23,0x09,0x01,0x23,0x09,0x01,0x33,0x02,0x66,0x01,0x4d,0xcd,0xfe,0x4d,0x01,0xdc,0xcd,0xfe,0x8a,0xfe,0x8b,0xcd,0x01,0xdc,0xfe,0x4d,0xcd,0x03,0x44,0x02,0x01,0xfd,0x7c,0xfd,0x3f,0x02,0x3d, -0xfd,0xc3,0x02,0xc1,0x02,0x84,0x00,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x04,0xa8,0x05,0x45,0x00,0x08,0x00,0x96,0x40,0x68,0x34,0x06,0x44,0x06,0x54,0x06,0x03,0x5c,0x07,0x01,0x3b,0x07,0x4b,0x07,0x02,0x09,0x07,0x19,0x07,0x29,0x07,0x03,0x53,0x05,0x01,0x34,0x05,0x44,0x05,0x02,0x03,0x00,0x05,0x10,0x05,0x20,0x05,0x03,0x0c,0x05, -0x07,0x08,0x0e,0x01,0x04,0x02,0x0e,0x05,0x2f,0x04,0x01,0x04,0x06,0x01,0x5a,0x0f,0x02,0x3f,0x02,0x8f,0x02,0x9f,0x02,0xbf,0x02,0xcf,0x02,0x06,0x4f,0x02,0x5f,0x02,0x7f,0x02,0x8f,0x02,0x04,0x10,0x02,0x01,0x02,0x02,0x0a,0x09,0x06,0x03,0x40,0x00,0x50,0x00,0x60,0x00,0x03,0x3f,0x00,0x01,0x00,0x00,0x01,0x07,0x04,0x03,0x01,0x12, -0x00,0x3f,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x5d,0x33,0x33,0x11,0x12,0x01,0x39,0x2f,0x5d,0x5d,0x71,0xed,0x39,0xc6,0x5d,0x32,0x2b,0x01,0x18,0x10,0x4d,0xe6,0x32,0x31,0x30,0x5f,0x5e,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x01,0x11,0x23,0x11,0x01,0x33,0x09,0x01,0x33,0x02,0xc4,0xbc,0xfe,0x1c,0xcd,0x01,0x76,0x01,0x74,0xcd, -0x02,0x48,0xfd,0xb8,0x02,0x48,0x02,0xfd,0xfd,0x9d,0x02,0x63,0x00,0x01,0x00,0x49,0x00,0x00,0x04,0x83,0x05,0x45,0x00,0x09,0x00,0x75,0x40,0x26,0x89,0x08,0x01,0x69,0x08,0x01,0x57,0x08,0x77,0x08,0x02,0x29,0x08,0x39,0x08,0x49,0x08,0x03,0x04,0x08,0x14,0x08,0x02,0x08,0x01,0x52,0x03,0x02,0x03,0x5e,0x07,0x08,0x14,0x07,0x08,0x03, -0x07,0x04,0xb8,0xff,0xc0,0xb3,0x0f,0x14,0x48,0x00,0xb8,0xff,0xc0,0x40,0x1d,0x09,0x0e,0x48,0x04,0x07,0x00,0x00,0x07,0x04,0x03,0x0b,0x2f,0x01,0x3f,0x01,0x4f,0x01,0x03,0x01,0x07,0x04,0x5f,0x05,0x03,0x02,0x08,0x5f,0x01,0x12,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x01,0x2f,0x5d,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2b,0x2b,0x10,0x00, -0xc1,0x87,0x05,0x2b,0x87,0x2b,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x29,0x01,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x04,0x83,0xfb,0xc6,0x03,0x32,0xfd,0x17,0x03,0xc2,0xfc,0xce,0x03,0x61,0x8f,0x04,0x1a,0x9c,0x8b,0xfb,0xe2,0x00,0x00,0x00,0x01,0x01,0x9a,0xfe,0x57,0x03,0xbd,0x05,0xcc,0x00,0x07,0x00,0x2f,0x40,0x1c, -0x02,0x07,0x07,0x09,0x05,0xf2,0x7f,0x00,0x8f,0x00,0x02,0x3f,0x00,0x6f,0x00,0x02,0x00,0x00,0x01,0x00,0x04,0xf5,0x01,0x00,0x05,0xf5,0x00,0x1b,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x5d,0x5d,0x5d,0xed,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x01,0x9a,0x02,0x23,0xfe,0x91,0x01,0x6f,0xfe,0x57,0x07, -0x75,0x8b,0xf9,0xa1,0x8b,0x00,0x00,0x00,0x00,0x01,0x00,0x73,0xff,0xec,0x04,0x5a,0x05,0xcc,0x00,0x03,0x00,0x3f,0x40,0x1d,0x8b,0x00,0x01,0x7a,0x00,0x01,0x39,0x00,0x69,0x00,0x02,0x00,0x03,0x10,0x03,0x03,0x05,0x85,0x02,0x01,0x36,0x02,0x66,0x02,0x76,0x02,0x03,0x02,0x01,0xb8,0xff,0xf0,0xb7,0x00,0x01,0x01,0x01,0x02,0x00,0x00, -0x19,0x00,0x3f,0x3f,0x01,0x2f,0x5d,0x38,0x33,0x5d,0x5d,0x12,0x39,0x2f,0x38,0x33,0x5d,0x5d,0x5d,0x31,0x30,0x05,0x01,0x33,0x01,0x03,0xa4,0xfc,0xcf,0xb2,0x03,0x35,0x14,0x05,0xe0,0xfa,0x20,0x00,0x00,0x00,0x00,0x01,0x01,0x0e,0xfe,0x57,0x03,0x31,0x05,0xcc,0x00,0x07,0x00,0x29,0x40,0x17,0x07,0xf2,0x60,0x02,0x01,0x02,0x02,0x09, -0x04,0x00,0x00,0x30,0x00,0x02,0x00,0x04,0xf5,0x05,0x00,0x01,0xf5,0x00,0x1b,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x5d,0x33,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x01,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x01,0x0e,0x01,0x6f,0xfe,0x91,0x02,0x23,0xfe,0x57,0x8b,0x06,0x5f,0x8b,0xf8,0x8b,0x00,0x00,0x01,0x00,0x85,0x01,0xba,0x04,0x46, -0x05,0x45,0x00,0x06,0x00,0x63,0x40,0x2f,0x85,0x05,0x01,0x79,0x04,0x89,0x04,0x02,0x05,0x04,0x01,0x8c,0x00,0x01,0x29,0x00,0x69,0x00,0x79,0x00,0x03,0x00,0x01,0x03,0x06,0x10,0x00,0x06,0x10,0x06,0x70,0x06,0x80,0x06,0x04,0x06,0x06,0x08,0x66,0x02,0x76,0x02,0x86,0x02,0x03,0x02,0x03,0xb8,0xff,0xf0,0x40,0x0f,0x00,0x03,0x01,0x03, -0x00,0x01,0x10,0x01,0x02,0x02,0x00,0x00,0x01,0x04,0x03,0x00,0x3f,0x33,0x33,0x2f,0x32,0x5d,0x01,0x2f,0x5d,0x38,0x33,0x5d,0x12,0x39,0x2f,0x5d,0x38,0x12,0x39,0x33,0x5d,0x5d,0x11,0x33,0x33,0x5d,0x5d,0x31,0x30,0x09,0x02,0x23,0x01,0x33,0x01,0x03,0xac,0xfe,0xb7,0xfe,0xba,0x98,0x01,0x7a,0xcb,0x01,0x7c,0x01,0xba,0x03,0x23,0xfc, -0xdd,0x03,0x8b,0xfc,0x75,0x00,0x00,0x00,0x00,0x01,0xff,0xfb,0xff,0x24,0x04,0xd1,0xff,0x84,0x00,0x03,0x00,0x0e,0xb4,0x03,0x00,0x00,0xbb,0x01,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x07,0x35,0x21,0x15,0x05,0x04,0xd6,0xdc,0x60,0x60,0x00,0x00,0x00,0x01,0x01,0x92,0x04,0xb1,0x03,0x3a,0x05,0xb4,0x00,0x05,0x00,0x1a,0x40,0x0e, -0x74,0x03,0x84,0x03,0x02,0x80,0x04,0x01,0x04,0x01,0x03,0x8c,0x00,0x93,0x00,0x3f,0xed,0x01,0x2f,0xcd,0x5d,0x31,0x30,0x5d,0x01,0x25,0x35,0x33,0x17,0x15,0x02,0xbe,0xfe,0xd4,0xc5,0xe3,0x04,0xb1,0xe6,0x1d,0xef,0x14,0x00,0x00,0x00,0x02,0x00,0x80,0xff,0xec,0x04,0x88,0x04,0x4e,0x00,0x32,0x00,0x41,0x00,0xa5,0x40,0x3f,0x8a,0x24, -0x01,0x7a,0x1e,0x8a,0x1e,0x02,0x69,0x3d,0x79,0x3d,0x89,0x3d,0x03,0x25,0x36,0x35,0x36,0x02,0x13,0x20,0x09,0x0c,0x48,0x06,0x17,0x16,0x17,0x02,0x1d,0x09,0x2d,0x09,0x3d,0x09,0x03,0x05,0x2d,0x15,0x2d,0x02,0x00,0x03,0x01,0x03,0x03,0x30,0x46,0x1b,0x0c,0x4f,0x38,0x5f,0x38,0x02,0x38,0x38,0x15,0x43,0x26,0x47,0x27,0xb8,0xff,0xf8, -0x40,0x2d,0xc0,0x27,0x01,0x27,0x27,0x3f,0x47,0x00,0x15,0x01,0x15,0x39,0x51,0x1b,0x1b,0x33,0x2c,0x0f,0x26,0x1f,0x26,0x02,0x2f,0x26,0x8f,0x26,0xff,0x26,0x03,0x26,0x26,0x21,0x50,0x2c,0x10,0x33,0x50,0x12,0x00,0x51,0x07,0x07,0x0c,0x12,0x16,0x00,0x3f,0x33,0x33,0x2f,0xed,0x10,0xed,0x3f,0xed,0x33,0x2f,0x5d,0x71,0x11,0x12,0x39, -0x2f,0xed,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x5d,0x38,0xed,0x11,0x12,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x2f,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x2b,0x5d,0x5d,0x5d,0x5d,0x25,0x32,0x36,0x37,0x15,0x0e,0x01,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x3f,0x01,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e, -0x02,0x07,0x27,0x3e,0x03,0x33,0x32,0x16,0x15,0x11,0x14,0x16,0x25,0x32,0x3e,0x02,0x3d,0x01,0x07,0x0e,0x03,0x15,0x14,0x16,0x04,0x4d,0x0f,0x1e,0x0e,0x22,0x43,0x26,0x33,0x49,0x2e,0x18,0x03,0x06,0x1c,0x44,0x58,0x72,0x4a,0x9e,0xa0,0x4f,0x80,0xa3,0x54,0xec,0x1b,0x37,0x54,0x38,0x32,0x51,0x3a,0x25,0x06,0xbc,0x0a,0x37,0x64,0x97, -0x6b,0xc8,0xc9,0x2a,0xfd,0xda,0x53,0x7a,0x51,0x28,0xbe,0x37,0x6f,0x59,0x38,0x59,0x6f,0x04,0x03,0x70,0x08,0x08,0x1b,0x37,0x51,0x36,0x34,0x54,0x3b,0x20,0xac,0x96,0x6b,0x89,0x4e,0x1f,0x01,0x04,0x3b,0x43,0x5e,0x3a,0x1b,0x0f,0x27,0x43,0x33,0x11,0x40,0x6b,0x4e,0x2b,0xbb,0xb1,0xfe,0x2e,0x50,0x51,0x06,0x3f,0x60,0x74,0x35,0x59, -0x04,0x01,0x0f,0x30,0x5b,0x4c,0x52,0x64,0x00,0x02,0x00,0xb3,0xff,0xec,0x04,0x42,0x05,0xcc,0x00,0x20,0x00,0x34,0x00,0x61,0x40,0x42,0x7a,0x02,0x8a,0x02,0x02,0x44,0x33,0x54,0x33,0x64,0x33,0x03,0x4b,0x23,0x5b,0x23,0x6b,0x23,0x03,0x3a,0x05,0x01,0x35,0x1c,0x01,0x05,0x1f,0x15,0x1f,0x75,0x1f,0x85,0x1f,0x04,0x00,0x47,0x60,0x21, -0x01,0x21,0x21,0x36,0x2b,0x06,0x14,0x46,0x00,0x13,0x80,0x13,0x02,0x13,0x26,0x50,0x1a,0x1e,0x10,0x13,0x00,0x0d,0x15,0x30,0x50,0x06,0x03,0x16,0x00,0x3f,0x33,0xed,0x3f,0x3f,0x3f,0x33,0xed,0x01,0x2f,0x5d,0xed,0x32,0x32,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x02,0x23,0x22,0x26,0x27, -0x23,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x11,0x33,0x11,0x14,0x06,0x07,0x06,0x07,0x33,0x3e,0x01,0x33,0x32,0x12,0x03,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x04,0x42,0xcb,0xbd,0x74,0xaa,0x30,0x02,0x02,0x03,0x03,0x01,0xae,0x01,0x02,0x02,0x01,0xb4,0x01,0x01,0x01,0x01,0x04,0x30,0xa9, -0x75,0xc3,0xc4,0xba,0x1e,0x3f,0x5f,0x42,0x42,0x6a,0x49,0x28,0x28,0x49,0x69,0x41,0x3f,0x60,0x40,0x21,0x02,0x22,0xfe,0xe4,0xfe,0xe6,0x56,0x62,0x1a,0x37,0x2e,0x21,0x04,0x09,0x2b,0x3c,0x48,0x27,0x04,0xed,0xfe,0x59,0x1d,0x39,0x16,0x1a,0x17,0x69,0x5f,0xfe,0xeb,0xfe,0xe1,0x70,0xa1,0x67,0x31,0x2d,0x67,0xa9,0x7c,0x77,0x9e,0x5f, -0x27,0x2e,0x66,0xa3,0x00,0x01,0x00,0x82,0xff,0xec,0x04,0x38,0x04,0x4e,0x00,0x25,0x00,0x9d,0x40,0x52,0x64,0x16,0x01,0x64,0x10,0x01,0x79,0x1e,0x89,0x1e,0x02,0x64,0x1a,0x01,0x44,0x15,0x54,0x15,0x02,0x4b,0x11,0x5b,0x11,0x02,0x75,0x08,0x85,0x08,0x02,0x0b,0x47,0x0a,0x0a,0x1c,0x47,0x3f,0x1b,0x4f,0x1b,0x8f,0x1b,0x9f,0x1b,0xaf, -0x1b,0x05,0xcf,0x1b,0xdf,0x1b,0xff,0x1b,0x03,0x60,0x1b,0x01,0x1b,0x1b,0x27,0x13,0x47,0x00,0x00,0x01,0x00,0x70,0x1b,0x01,0x00,0x1b,0x10,0x1b,0x60,0x1b,0x70,0x1b,0x80,0x1b,0xc0,0x1b,0x06,0x1b,0xb8,0xff,0xc0,0x40,0x1c,0x1b,0x1e,0x48,0x1b,0x1b,0x18,0x50,0x21,0x16,0x0e,0x50,0x05,0x1f,0x0b,0x7f,0x0b,0x8f,0x0b,0x03,0x0b,0x40, -0x1b,0x1e,0x48,0x0b,0x0b,0x05,0x10,0x00,0x3f,0x33,0x2f,0x2b,0x5d,0x10,0xed,0x3f,0xed,0x33,0x2f,0x2b,0x5d,0x71,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x5d,0x71,0xed,0x32,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x13,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x01,0x23,0x22,0x0e,0x02,0x15, -0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x17,0x0e,0x03,0x23,0x22,0x2e,0x02,0x82,0x56,0x8d,0xb4,0x5f,0x62,0x9a,0x6f,0x46,0x0d,0xc0,0x10,0x80,0x76,0x56,0x75,0x47,0x1f,0x1f,0x47,0x75,0x55,0x6c,0x8e,0x11,0xbe,0x09,0x44,0x72,0x9e,0x64,0x89,0xbf,0x77,0x36,0x02,0x1e,0xa3,0xd8,0x80,0x35,0x32,0x57,0x76,0x44,0x0e,0x5b,0x69,0x37,0x69, -0x9b,0x64,0x64,0x9f,0x6e,0x3a,0x6a,0x6d,0x0c,0x43,0x7c,0x5e,0x39,0x56,0x97,0xcd,0x00,0x02,0x00,0x8a,0xff,0xe6,0x04,0x19,0x05,0xcc,0x00,0x1f,0x00,0x33,0x00,0x6b,0x40,0x4b,0x44,0x22,0x54,0x22,0x64,0x22,0x03,0x4b,0x32,0x5b,0x32,0x6b,0x32,0x03,0x3a,0x01,0x6a,0x01,0x02,0x35,0x0a,0x01,0x05,0x07,0x15,0x07,0x75,0x07,0x85,0x07, -0x04,0x0a,0x04,0x1a,0x04,0x7a,0x04,0x8a,0x04,0x04,0x13,0x46,0x2a,0x00,0x50,0x12,0x01,0x90,0x12,0xa0,0x12,0x02,0x12,0x12,0x35,0x20,0x47,0x00,0x06,0x01,0x06,0x1a,0x15,0x12,0x00,0x2f,0x50,0x0b,0x08,0x10,0x25,0x50,0x00,0x03,0x16,0x00,0x3f,0x33,0xed,0x3f,0x33,0xed,0x3f,0x3f,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x71,0x33, -0x33,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x0e,0x01,0x23,0x22,0x02,0x11,0x10,0x21,0x32,0x16,0x17,0x33,0x34,0x26,0x34,0x26,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x17,0x23,0x2e,0x03,0x35,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x03,0x5e,0x31,0xa2,0x79,0xca,0xbe,0x01, -0x88,0x79,0xa3,0x31,0x02,0x01,0x01,0xb4,0x01,0x02,0x02,0x01,0xac,0x01,0x04,0x03,0x02,0xfd,0xe1,0x1d,0x3d,0x60,0x43,0x45,0x6b,0x49,0x25,0x25,0x48,0x6a,0x45,0x40,0x60,0x3f,0x20,0xae,0x69,0x5f,0x01,0x16,0x01,0x18,0x02,0x36,0x56,0x62,0x05,0x2a,0x32,0x2d,0x09,0x01,0xa3,0xfb,0x13,0x27,0x48,0x3c,0x2b,0x09,0x04,0x24,0x32,0x3a, -0x1a,0x01,0x6c,0x70,0xa0,0x68,0x31,0x30,0x69,0xa8,0x78,0x74,0x9d,0x60,0x2a,0x2e,0x66,0xa3,0x00,0x00,0x00,0x02,0x00,0x85,0xff,0xec,0x04,0x46,0x04,0x4e,0x00,0x20,0x00,0x2b,0x00,0x90,0x40,0x65,0x64,0x24,0x01,0x64,0x03,0x01,0x49,0x29,0x59,0x29,0x69,0x29,0x03,0x49,0x24,0x59,0x24,0x02,0x75,0x1d,0x85,0x1d,0x02,0x77,0x1c,0x87, -0x1c,0x02,0x78,0x0e,0x88,0x0e,0x02,0x7a,0x0d,0x8a,0x0d,0x02,0x44,0x02,0x54,0x02,0x64,0x02,0x03,0x27,0x47,0x1f,0x1f,0x0b,0x49,0xcf,0x0a,0xdf,0x0a,0xff,0x0a,0x03,0x00,0x0a,0x10,0x0a,0x60,0x0a,0x03,0x0a,0x0a,0x2d,0x26,0x00,0x47,0x00,0x15,0xe0,0x15,0x02,0x15,0x00,0x50,0x26,0x26,0x05,0x21,0x50,0x1a,0x10,0x05,0x50,0x10,0xdf, -0x0a,0xef,0x0a,0x02,0x80,0x0a,0x01,0x0a,0x0a,0x10,0x16,0x00,0x3f,0x33,0x2f,0x5d,0x5d,0x10,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0x5d,0xed,0x32,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03, -0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x1d,0x01,0x01,0x22,0x0e,0x02,0x07,0x21,0x2e,0x03,0x01,0x42,0x26,0x4c,0x71,0x4a,0x37,0x5d,0x4a,0x32,0x0c,0x9e,0x10,0x40,0x6a,0x98,0x68,0x73,0xb6,0x7e,0x43,0x4f,0x86,0xaf,0x60,0x83,0xb5,0x72,0x33,0xfe,0x25,0x2e,0x65,0x56,0x3b,0x03,0x02,0x48,0x08,0x34,0x4d,0x62, -0x01,0xf7,0x55,0x8f,0x67,0x39,0x19,0x2c,0x3d,0x24,0x2d,0x2d,0x5b,0x49,0x2f,0x48,0x8e,0xd5,0x8d,0x9c,0xd4,0x82,0x38,0x54,0x97,0xd4,0x80,0x18,0x01,0xd2,0x1d,0x4a,0x7f,0x62,0x5e,0x7e,0x4c,0x20,0x00,0x00,0x00,0x01,0x00,0x8a,0x00,0x00,0x04,0x4b,0x05,0xcc,0x00,0x1f,0x00,0x5e,0xb9,0x00,0x0a,0xff,0xf0,0x40,0x36,0x09,0x0c,0x48, -0x1d,0x01,0x46,0x02,0x3f,0x05,0x01,0x05,0x05,0x06,0x02,0x1e,0x1e,0x11,0x2f,0x02,0x3f,0x02,0x6f,0x02,0x7f,0x02,0x8f,0x02,0x05,0x02,0x40,0x14,0x25,0x48,0x00,0x02,0x01,0x02,0x11,0x02,0x11,0x20,0x21,0x17,0x50,0x0c,0x00,0x00,0x04,0x50,0x1d,0x05,0x0f,0x01,0x15,0x00,0x3f,0x3f,0x33,0xed,0x32,0x3f,0xed,0x11,0x12,0x01,0x39,0x39, -0x2f,0x2f,0x5d,0x2b,0x5d,0x11,0x33,0x2f,0x11,0x33,0x33,0x2f,0x5d,0x10,0xed,0x32,0x31,0x30,0x00,0x2b,0x01,0x11,0x23,0x11,0x21,0x35,0x21,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x1d,0x01,0x21,0x15,0x02,0x44,0xb4,0xfe,0xfa,0x01,0x06,0x2d,0x64,0x9f,0x72,0x1d,0x50,0x50,0x47,0x15,0x12, -0x48,0x4f,0x48,0x13,0x42,0x62,0x40,0x1f,0x01,0xeb,0x03,0xac,0xfc,0x54,0x03,0xac,0x8e,0x19,0x65,0x8f,0x5b,0x2a,0x03,0x06,0x08,0x04,0x91,0x03,0x06,0x05,0x03,0x14,0x36,0x5e,0x4b,0x0a,0x8e,0x00,0x00,0x00,0x00,0x02,0x00,0x8f,0xfe,0x58,0x04,0x1e,0x04,0x4b,0x00,0x31,0x00,0x45,0x00,0x9c,0x40,0x3e,0x7a,0x30,0x8a,0x30,0x02,0x66, -0x3f,0x01,0x45,0x0c,0x55,0x0c,0x65,0x0c,0x03,0x4b,0x3a,0x5b,0x3a,0x6b,0x3a,0x03,0x35,0x21,0x01,0x05,0x1d,0x15,0x1d,0x75,0x1d,0x85,0x1d,0x04,0x0a,0x17,0x1a,0x17,0x7a,0x17,0x8a,0x17,0x04,0x2f,0x46,0x32,0x22,0x50,0x0e,0x01,0x90,0x0e,0xa0,0x0e,0x02,0x0e,0x0e,0x1a,0x47,0x06,0x46,0x05,0xba,0xff,0xf0,0x00,0x05,0xff,0xc0,0x40, -0x28,0x0f,0x15,0x48,0x05,0x05,0x3c,0x47,0xb0,0x1a,0x01,0x00,0x1a,0xd0,0x1a,0x02,0x1a,0x28,0x0f,0x37,0x50,0x22,0x1f,0x10,0x41,0x50,0x0f,0x15,0x15,0x09,0x50,0x00,0x20,0x06,0x30,0x06,0x02,0x06,0x06,0x00,0x1b,0x00,0x3f,0x32,0x2f,0x5d,0x10,0xed,0x3f,0x33,0xed,0x3f,0x33,0xed,0x3f,0x01,0x2f,0x5d,0x71,0xed,0x33,0x2f,0x2b,0x38, -0xed,0x11,0x12,0x39,0x2f,0x5d,0x71,0x33,0x33,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x22,0x2e,0x02,0x27,0x37,0x1e,0x01,0x33,0x32,0x3e,0x02,0x3d,0x01,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x33,0x34,0x3e,0x02,0x37,0x33,0x0e,0x03,0x15,0x11,0x14,0x06,0x13,0x34,0x2e, -0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x02,0x67,0x5a,0x89,0x63,0x3d,0x0d,0xb8,0x11,0x71,0x5c,0x39,0x5b,0x41,0x23,0x02,0x13,0x3b,0x53,0x6e,0x48,0x66,0x90,0x5c,0x2b,0x2b,0x5f,0x98,0x6e,0x71,0xa7,0x2d,0x03,0x03,0x03,0x05,0x01,0xab,0x01,0x02,0x02,0x01,0xd4,0x21,0x30,0x4f,0x65,0x35,0x43,0x62,0x40, -0x1e,0x1e,0x3f,0x61,0x42,0x35,0x66,0x50,0x31,0xfe,0x58,0x26,0x47,0x62,0x3c,0x19,0x4b,0x51,0x22,0x4b,0x78,0x56,0xc2,0x28,0x4c,0x3a,0x23,0x42,0x86,0xca,0x87,0x83,0xcc,0x8d,0x4a,0x69,0x61,0x19,0x3e,0x37,0x28,0x03,0x09,0x2b,0x3c,0x49,0x27,0xfc,0xc6,0xe3,0xe5,0x03,0xcf,0x71,0x9e,0x63,0x2c,0x2d,0x63,0x9d,0x71,0x75,0x9c,0x5e, -0x27,0x2b,0x60,0x9b,0x00,0x01,0x00,0xb9,0x00,0x00,0x04,0x19,0x05,0xcc,0x00,0x1f,0x00,0x3f,0x40,0x27,0x70,0x0e,0x80,0x0e,0x02,0x04,0x0d,0x14,0x0d,0x74,0x0d,0x84,0x0d,0x04,0x11,0x46,0x12,0x12,0x21,0x05,0x02,0x1e,0x46,0x00,0x1f,0x80,0x1f,0x02,0x1f,0x1f,0x11,0x15,0x18,0x50,0x05,0x0b,0x10,0x00,0x00,0x00,0x3f,0x3f,0x33,0xed, -0x3f,0x33,0x01,0x2f,0x5d,0xed,0x32,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x13,0x33,0x11,0x14,0x06,0x07,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0xb9,0xb5,0x06,0x03,0x03,0x18,0x40,0x52,0x69,0x40,0x53,0x82,0x5a,0x2f,0xb5,0x21,0x3b,0x50,0x30,0x3b, -0x67,0x4d,0x2c,0xb4,0x05,0xcc,0xfe,0x7a,0x32,0x65,0x2e,0x2f,0x4c,0x35,0x1d,0x2c,0x5c,0x90,0x65,0xfd,0x2f,0x02,0xb7,0x50,0x67,0x3d,0x18,0x2d,0x55,0x7d,0x51,0xfd,0x8d,0x00,0x00,0x00,0x00,0x02,0x00,0x8f,0x00,0x00,0x04,0x65,0x05,0xcc,0x00,0x09,0x00,0x0d,0x00,0x40,0x40,0x22,0x07,0x07,0x05,0x04,0x04,0x05,0x0b,0x4a,0x0c,0x0c, -0x01,0x01,0x00,0x46,0xa0,0x05,0x01,0x05,0x05,0x0e,0x0f,0x0a,0x53,0x0b,0x00,0x07,0x50,0x08,0x0f,0x00,0x04,0x50,0x03,0x15,0x00,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x11,0x12,0x01,0x39,0x2f,0x71,0xed,0x32,0x2f,0x32,0x2f,0xed,0x11,0x33,0x2f,0x12,0x39,0x2f,0x31,0x30,0x25,0x21,0x15,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x27,0x35, -0x33,0x15,0x02,0xe9,0x01,0x7c,0xfc,0x2a,0x01,0xa6,0xfe,0xc1,0x01,0xf3,0xc8,0xc8,0x8e,0x8e,0x8e,0x03,0x1e,0x8e,0xd2,0xc0,0xc0,0x00,0x00,0x00,0x00,0x02,0x00,0x75,0xfe,0x57,0x03,0x44,0x05,0xcc,0x00,0x19,0x00,0x1d,0x00,0x45,0x40,0x28,0x75,0x13,0x85,0x13,0x02,0x0a,0x03,0x1a,0x03,0x02,0x18,0x18,0x0a,0x15,0x1a,0x4a,0x1d,0x1d, -0x00,0x46,0x00,0x15,0x01,0x15,0x15,0x1e,0x1f,0x0a,0x1a,0x53,0x1b,0x00,0x17,0x50,0x18,0x0f,0x10,0x50,0x05,0x1b,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0xed,0x11,0x12,0x39,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x35,0x1e,0x03,0x33,0x32,0x3e, -0x02,0x35,0x11,0x21,0x35,0x21,0x27,0x35,0x33,0x15,0x03,0x44,0x47,0x76,0x9c,0x56,0x29,0x52,0x4c,0x41,0x18,0x16,0x3c,0x48,0x4f,0x28,0x38,0x61,0x48,0x29,0xfe,0x69,0x02,0x4b,0xc8,0xc8,0x1c,0x6d,0x97,0x5f,0x2a,0x07,0x0c,0x0f,0x09,0x8c,0x05,0x0c,0x0a,0x07,0x1c,0x3d,0x5f,0x43,0x03,0xc5,0x8e,0xd2,0xc0,0xc0,0x00,0x01,0x00,0xec, -0x00,0x00,0x04,0x65,0x05,0xcc,0x00,0x0b,0x00,0xaf,0x40,0x2c,0x66,0x07,0x76,0x07,0x86,0x07,0x03,0x64,0x09,0x74,0x09,0x84,0x09,0x03,0x7b,0x01,0x8b,0x01,0x02,0x49,0x01,0x59,0x01,0x69,0x01,0x03,0x49,0x08,0x59,0x08,0x02,0x6b,0x00,0x7b,0x00,0x8b,0x00,0x03,0x49,0x00,0x59,0x00,0x02,0x0a,0xb8,0xff,0xe8,0x40,0x28,0x0b,0x11,0x48, -0x01,0x0a,0x08,0x09,0x10,0x44,0x09,0x54,0x09,0x02,0x09,0x09,0x00,0x9f,0x0b,0xaf,0x0b,0xbf,0x0b,0x03,0x00,0x0b,0x10,0x0b,0x02,0x0b,0x10,0x0b,0x0b,0x0d,0x07,0x03,0x46,0x00,0x04,0x01,0x04,0xb8,0xff,0xc0,0xb3,0x1f,0x25,0x48,0x04,0xb8,0xff,0xc0,0xb3,0x16,0x1b,0x48,0x04,0xb8,0xff,0xc0,0x40,0x11,0x0d,0x11,0x48,0x04,0x02,0x07, -0x0a,0x01,0x07,0x01,0x08,0x0f,0x05,0x00,0x04,0x00,0x15,0x00,0x3f,0x32,0x3f,0x3f,0x39,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0x2b,0x2b,0x2b,0x5d,0xed,0x32,0x11,0x33,0x2f,0x38,0x5d,0x5d,0x33,0x33,0x2f,0x5d,0x38,0x33,0x39,0x39,0x31,0x30,0x2b,0x5d,0x5d,0x5d,0x00,0x5d,0x5d,0x01,0x5d,0x00,0x5d,0x21,0x01,0x07,0x11,0x23,0x11,0x33, -0x11,0x01,0x33,0x09,0x01,0x03,0x92,0xfe,0x92,0x84,0xb4,0xb4,0x01,0xdb,0xd3,0xfe,0x49,0x01,0xce,0x01,0xf3,0x62,0xfe,0x6f,0x05,0xcc,0xfc,0x61,0x02,0x0d,0xfe,0x2f,0xfd,0x97,0x00,0x00,0x00,0x01,0x00,0x86,0x00,0x00,0x04,0x5c,0x05,0xcc,0x00,0x09,0x00,0x33,0x40,0x1a,0x08,0x08,0x05,0x04,0x04,0x05,0x01,0x01,0x00,0x46,0xa0,0x05, -0x01,0x05,0x05,0x0a,0x0b,0x07,0x50,0x08,0x00,0x00,0x04,0x50,0x03,0x15,0x00,0x3f,0xed,0x32,0x3f,0xed,0x11,0x12,0x01,0x39,0x2f,0x71,0xed,0x32,0x2f,0x11,0x33,0x2f,0x12,0x39,0x2f,0x31,0x30,0x25,0x21,0x15,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x02,0xe0,0x01,0x7c,0xfc,0x2a,0x01,0xa6,0xfe,0xdf,0x01,0xd5,0x8e,0x8e,0x8e,0x04,0xb0, -0x8e,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x00,0x00,0x04,0x64,0x04,0x4e,0x00,0x39,0x00,0x8e,0xb9,0x00,0x2a,0xff,0xd0,0xb3,0x09,0x0f,0x48,0x20,0xb8,0xff,0xd0,0x40,0x59,0x09,0x0d,0x48,0x22,0x39,0x48,0x00,0x00,0x0d,0x2e,0x48,0xbf,0x2f,0xcf,0x2f,0xff,0x2f,0x03,0x60,0x2f,0x70,0x2f,0x02,0x1f,0x2f,0x2f,0x2f,0x3f,0x2f,0x03,0x4f, -0x2f,0x5f,0x2f,0x7f,0x2f,0x8f,0x2f,0x04,0x10,0x2f,0x20,0x2f,0x30,0x2f,0x03,0x2f,0x2f,0x3b,0x19,0x0c,0x48,0x00,0x0d,0x10,0x0d,0x02,0xf0,0x0d,0x01,0x0f,0x0d,0x3f,0x0d,0x02,0xcf,0x0d,0xdf,0x0d,0x02,0x10,0x0d,0x01,0x0d,0x35,0x06,0x50,0x19,0x22,0x28,0x03,0x1f,0x10,0x13,0x0f,0x2f,0x0d,0x00,0x15,0x00,0x3f,0x32,0x32,0x3f,0x3f, -0x17,0x33,0xed,0x32,0x01,0x2f,0x5d,0x5d,0x71,0x71,0x72,0xed,0x32,0x12,0x39,0x2f,0x5d,0x5d,0x71,0x71,0x71,0xed,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x00,0x2b,0x2b,0x21,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x15,0x33,0x3e,0x03,0x33,0x32,0x16,0x17,0x33,0x3e,0x03,0x33, -0x32,0x1e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x11,0x02,0x13,0x0c,0x1b,0x2b,0x20,0x21,0x34,0x26,0x14,0xa9,0x01,0x02,0x02,0x01,0x95,0x01,0x02,0x02,0x01,0x02,0x0d,0x24,0x33,0x46,0x2e,0x58,0x57,0x13,0x02,0x12,0x2b,0x38,0x48,0x2f,0x3d,0x54,0x34,0x17,0xa8,0x0c,0x1b,0x2b,0x20,0x42,0x4d,0x02,0xae,0x4f, -0x6a,0x41,0x1b,0x33,0x5d,0x83,0x51,0xfd,0xa1,0x03,0x53,0x22,0x4b,0x43,0x30,0x07,0x05,0x29,0x35,0x38,0x14,0x27,0x47,0x36,0x1f,0x60,0x64,0x2f,0x49,0x32,0x1a,0x2c,0x5c,0x90,0x65,0xfd,0x2f,0x02,0xae,0x4f,0x6a,0x41,0x1b,0xa8,0xa8,0xfd,0x8d,0x00,0x00,0x01,0x00,0xb3,0x00,0x00,0x04,0x19,0x04,0x4e,0x00,0x25,0x00,0x3d,0x40,0x26, -0x70,0x22,0x80,0x22,0x02,0x04,0x21,0x14,0x21,0x74,0x21,0x84,0x21,0x04,0x25,0x46,0x00,0x00,0x27,0x19,0x0c,0x46,0x00,0x0d,0x80,0x0d,0x02,0x0d,0x19,0x06,0x50,0x1f,0x10,0x13,0x0f,0x0d,0x00,0x15,0x00,0x3f,0x32,0x3f,0x3f,0xed,0x33,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x21,0x11,0x34,0x2e,0x02, -0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x15,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x11,0x03,0x64,0x21,0x3b,0x50,0x30,0x3b,0x67,0x4d,0x2c,0xb4,0x01,0x02,0x02,0x01,0xaa,0x01,0x02,0x03,0x02,0x03,0x18,0x41,0x55,0x6a,0x42,0x53,0x80,0x57,0x2d,0x02,0xb7,0x50,0x67,0x3d,0x18,0x2d,0x55,0x7d, -0x51,0xfd,0x8d,0x03,0x53,0x22,0x4b,0x43,0x30,0x07,0x05,0x2c,0x39,0x3b,0x14,0x2f,0x4c,0x35,0x1d,0x2c,0x5c,0x90,0x65,0xfd,0x2f,0x00,0x00,0x00,0x00,0x02,0x00,0x82,0xff,0xec,0x04,0x49,0x04,0x4e,0x00,0x0f,0x00,0x23,0x00,0x59,0x40,0x3d,0x64,0x22,0x01,0x46,0x22,0x56,0x22,0x02,0x64,0x1c,0x01,0x46,0x1c,0x56,0x1c,0x02,0x6b,0x18, -0x01,0x49,0x18,0x59,0x18,0x02,0x6b,0x12,0x01,0x49,0x12,0x59,0x12,0x02,0x00,0x47,0xaf,0x10,0x01,0x00,0x10,0x10,0x10,0x60,0x10,0x03,0x10,0x10,0x25,0x1a,0x47,0x00,0x0a,0x01,0x0a,0x15,0x50,0x0d,0x10,0x1f,0x50,0x05,0x16,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x71,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x10,0x12,0x33,0x32,0x12,0x03,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x04,0x49,0x43,0x7e,0xb5,0x72,0x6d,0xb1,0x7d,0x44,0xfd,0xe8,0xf4,0xee,0xbd,0x2b,0x4d,0x6a,0x40,0x41,0x6e,0x4f,0x2d,0x2f,0x4f,0x69,0x39,0x41,0x6f, -0x50,0x2d,0x02,0x1e,0x8e,0xd3,0x8c,0x45,0x44,0x8c,0xd3,0x8f,0x01,0x17,0x01,0x19,0xfe,0xea,0xfe,0xe6,0x7e,0xa4,0x62,0x27,0x29,0x63,0xa4,0x7b,0x7e,0xa5,0x62,0x28,0x27,0x62,0xa6,0x00,0x00,0x02,0x00,0xb3,0xfe,0x57,0x04,0x42,0x04,0x50,0x00,0x28,0x00,0x3c,0x00,0x65,0x40,0x44,0x64,0x3b,0x01,0x46,0x3b,0x56,0x3b,0x02,0x6b,0x2b, -0x01,0x49,0x2b,0x59,0x2b,0x02,0x06,0x26,0x16,0x26,0x76,0x26,0x86,0x26,0x04,0x34,0x21,0x01,0x3b,0x08,0x01,0x79,0x03,0x89,0x03,0x02,0x00,0x47,0x60,0x29,0x01,0x29,0x29,0x3e,0x33,0x1e,0x11,0x46,0x00,0x12,0x80,0x12,0x02,0x12,0x2e,0x50,0x1e,0x24,0x10,0x18,0x0f,0x11,0x1b,0x38,0x50,0x0a,0x05,0x16,0x00,0x3f,0x33,0xed,0x3f,0x3f, -0x3f,0x33,0xed,0x01,0x2f,0x5d,0xed,0x32,0x32,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x15,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02, -0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x04,0x42,0x28,0x5c,0x96,0x6e,0x37,0x64,0x56,0x43,0x17,0x05,0x01,0x01,0x01,0x01,0xb5,0x01,0x02,0x02,0x01,0xaf,0x01,0x03,0x03,0x03,0x04,0x19,0x3f,0x50,0x64,0x3e,0x6e,0x96,0x5c,0x28,0xba,0x18,0x3b,0x61,0x49,0x3b,0x68,0x4d,0x2d,0x25,0x48,0x6a,0x44,0x49,0x62,0x3b,0x19,0x02,0x22,0x7b, -0xd0,0x96,0x55,0x14,0x2c,0x46,0x32,0x02,0x1f,0x2e,0x3a,0x1d,0xfe,0x59,0x05,0x03,0x28,0x4a,0x3b,0x2a,0x09,0x03,0x25,0x34,0x3c,0x1a,0x34,0x4c,0x31,0x17,0x50,0x93,0xce,0x7d,0x64,0x9c,0x6b,0x38,0x25,0x61,0xac,0x87,0x73,0x9d,0x61,0x2a,0x39,0x6e,0xa2,0x00,0x00,0x00,0x00,0x02,0x00,0x8a,0xfe,0x57,0x04,0x1a,0x04,0x4a,0x00,0x24, -0x00,0x38,0x00,0x66,0x40,0x47,0x4b,0x2d,0x5b,0x2d,0x6b,0x2d,0x03,0x44,0x31,0x54,0x31,0x64,0x31,0x03,0x3a,0x1c,0x01,0x35,0x03,0x01,0x05,0x24,0x15,0x24,0x75,0x24,0x85,0x24,0x04,0x0a,0x20,0x1a,0x20,0x7a,0x20,0x8a,0x20,0x04,0x12,0x46,0x25,0x05,0x50,0x13,0x01,0x90,0x13,0xa0,0x13,0x02,0x13,0x13,0x3a,0x2f,0x47,0x00,0x22,0x01, -0x22,0x34,0x50,0x19,0x1f,0x16,0x12,0x1b,0x2a,0x50,0x05,0x00,0x10,0x00,0x3f,0x32,0xed,0x3f,0x3f,0x33,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x71,0x33,0x33,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x32,0x1e,0x02,0x17,0x33,0x34,0x3e,0x02,0x37,0x33,0x0e,0x03,0x15,0x11,0x23,0x11,0x34,0x36,0x37,0x36,0x37, -0x23,0x0e,0x03,0x23,0x22,0x02,0x11,0x10,0x12,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x02,0x11,0x42,0x66,0x4f,0x3d,0x18,0x02,0x03,0x03,0x05,0x01,0xaf,0x01,0x02,0x02,0x01,0xb5,0x01,0x01,0x01,0x01,0x02,0x19,0x3f,0x51,0x65,0x41,0xca,0xbe,0xc3,0x02,0x12,0x28,0x4a,0x69,0x41,0x44,0x61, -0x3d,0x1d,0x1c,0x3c,0x60,0x45,0x3b,0x68,0x4e,0x2d,0x04,0x4a,0x16,0x2e,0x45,0x2f,0x19,0x39,0x31,0x23,0x03,0x09,0x28,0x44,0x62,0x43,0xfb,0x36,0x01,0xb7,0x1a,0x3a,0x1a,0x1e,0x1c,0x33,0x4e,0x35,0x1a,0x01,0x19,0x01,0x15,0x01,0x19,0x01,0x1d,0xfd,0xe0,0x77,0x9e,0x5e,0x28,0x33,0x69,0xa1,0x6e,0x6a,0x9f,0x6a,0x36,0x27,0x63,0xab, -0x00,0x01,0x00,0xf2,0x00,0x00,0x04,0x15,0x04,0x4e,0x00,0x1f,0x00,0x46,0x40,0x2b,0x78,0x06,0x88,0x06,0x02,0x04,0x1a,0x14,0x1a,0x02,0x04,0x19,0x14,0x19,0x02,0x1f,0x1f,0x21,0x16,0x09,0x46,0x0a,0x10,0x10,0x1f,0x0a,0x6f,0x0a,0x7f,0x0a,0x8f,0x0a,0x04,0x0a,0x16,0x03,0x52,0x1c,0x10,0x10,0x0f,0x09,0x15,0x00,0x3f,0x3f,0x3f,0xed, -0x33,0x01,0x2f,0x5d,0x33,0x7c,0x2f,0x18,0x10,0xed,0x32,0x12,0x39,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x2e,0x01,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x17,0x33,0x3e,0x03,0x33,0x32,0x16,0x17,0x04,0x15,0x2f,0x67,0x3e,0x54,0x86,0x5c,0x31,0xb4,0x0c,0x10,0x12,0x06,0xab,0x07,0x0f,0x0e, -0x0a,0x02,0x05,0x1c,0x3e,0x55,0x74,0x52,0x38,0x6c,0x2a,0x03,0x96,0x08,0x0b,0x44,0x75,0x9c,0x58,0xfe,0x04,0x02,0xbd,0x38,0x74,0x67,0x52,0x18,0x18,0x3e,0x43,0x44,0x1d,0x3e,0x64,0x46,0x26,0x0a,0x07,0x00,0x00,0x01,0x00,0xa7,0xff,0xec,0x04,0x24,0x04,0x4b,0x00,0x38,0x00,0x85,0x40,0x58,0x6c,0x18,0x01,0x79,0x17,0x89,0x17,0x02, -0x6c,0x17,0x01,0x6a,0x36,0x01,0x73,0x31,0x83,0x31,0x02,0x47,0x31,0x57,0x31,0x02,0x24,0x37,0x01,0x2a,0x1d,0x01,0x0a,0x03,0x1a,0x03,0x02,0x05,0x20,0x15,0x20,0x02,0x28,0x49,0x27,0x27,0x00,0x48,0x15,0x15,0x1f,0x3a,0x0b,0x49,0x0a,0x0a,0x2f,0x48,0x00,0x1f,0x60,0x1f,0x70,0x1f,0x80,0x1f,0x04,0x1f,0x2f,0x15,0x05,0x2d,0x50,0x22, -0x20,0x28,0x90,0x28,0x02,0x28,0x28,0x22,0x10,0x10,0x50,0x05,0x0b,0x0b,0x05,0x16,0x00,0x3f,0x33,0x2f,0x10,0xed,0x3f,0x33,0x2f,0x5d,0x10,0xed,0x12,0x39,0x39,0x01,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23, -0x22,0x2e,0x02,0x27,0x37,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x03,0x23,0x22,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x04,0x24,0x3b,0x70,0xa3,0x69,0x5e,0x97,0x72,0x4d,0x12,0x9f,0x0c,0x35,0x4b,0x62,0x39,0x3a,0x63,0x48,0x29,0x33,0x58,0x79,0x47,0x40, -0x7e,0x63,0x3d,0xd4,0xc9,0x4f,0x8a,0x6c,0x49,0x0e,0xa2,0x07,0x2e,0x43,0x54,0x2e,0xf5,0x2b,0x4e,0x6c,0x41,0x41,0x89,0x71,0x49,0x01,0x35,0x4c,0x7a,0x55,0x2e,0x1b,0x3e,0x67,0x4c,0x1f,0x37,0x41,0x22,0x0b,0x11,0x29,0x41,0x30,0x32,0x3d,0x2a,0x1e,0x13,0x11,0x28,0x41,0x64,0x4d,0x93,0xa6,0x1d,0x3f,0x63,0x45,0x14,0x2d,0x38,0x21, -0x0c,0x97,0x2e,0x39,0x26,0x1b,0x11,0x10,0x2a,0x46,0x6d,0x00,0x00,0x01,0x00,0xbe,0xff,0xf0,0x03,0xf9,0x05,0x54,0x00,0x1b,0x00,0x58,0x40,0x36,0x6a,0x18,0x7a,0x18,0x8a,0x18,0x03,0x18,0x28,0x09,0x0e,0x48,0x06,0x06,0x12,0x12,0x1d,0x05,0x09,0x46,0x1a,0x90,0x01,0x01,0x01,0x01,0x02,0x1a,0x40,0x12,0x25,0x48,0x1a,0x40,0x0b,0x0e, -0x48,0x00,0x1a,0x01,0x1a,0x0c,0x50,0x17,0x16,0x08,0x00,0x50,0x01,0x03,0x03,0x05,0x01,0x0f,0x00,0x3f,0x33,0x33,0x2f,0x10,0xed,0x32,0x3f,0xed,0x01,0x2f,0x5d,0x2b,0x2b,0x33,0x33,0x2f,0x5d,0x10,0xed,0x32,0x12,0x39,0x2f,0x33,0x2f,0x31,0x30,0x00,0x2b,0x5d,0x13,0x35,0x33,0x13,0x33,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32, -0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x26,0x35,0x11,0xbe,0xaa,0x3a,0x78,0x01,0xb0,0xfe,0x50,0x55,0x61,0x28,0x55,0x4f,0x45,0x18,0x16,0x46,0x57,0x66,0x36,0xa2,0xa2,0x03,0xac,0x8e,0x01,0x1a,0xfe,0xe6,0x8e,0xfd,0x74,0x4f,0x4c,0x07,0x0a,0x0c,0x05,0x89,0x06,0x10,0x0e,0x0a,0x89,0x94,0x02,0x9f,0x00,0x00,0x00,0x01,0x00,0xb9, -0xff,0xec,0x04,0x1f,0x04,0x3a,0x00,0x25,0x00,0x45,0x40,0x2c,0x7f,0x22,0x8f,0x22,0x02,0x7b,0x21,0x8b,0x21,0x02,0x0a,0x21,0x1a,0x21,0x2a,0x21,0x03,0x39,0x1c,0x01,0x19,0x0e,0x46,0x0b,0x0b,0x27,0x01,0x46,0x00,0x24,0x80,0x24,0x02,0x24,0x19,0x06,0x50,0x1f,0x16,0x14,0x15,0x0c,0x00,0x0f,0x00,0x3f,0x32,0x3f,0x3f,0xed,0x33,0x01, -0x2f,0x5d,0xed,0x12,0x39,0x2f,0xed,0x33,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x17,0x23,0x2e,0x03,0x35,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x11,0x01,0x6d,0x17,0x35,0x55,0x3f,0x40,0x67,0x49,0x27,0xb5,0x01,0x02,0x02,0x01,0xaa,0x01,0x02,0x03, -0x02,0x03,0x1a,0x3e,0x52,0x6a,0x46,0x5a,0x82,0x54,0x27,0x04,0x3a,0xfd,0x52,0x4f,0x6a,0x41,0x1b,0x2d,0x55,0x7d,0x51,0x02,0x73,0xfc,0xad,0x22,0x4b,0x43,0x30,0x07,0x05,0x2c,0x39,0x3b,0x14,0x2f,0x4c,0x35,0x1d,0x2c,0x5c,0x91,0x64,0x02,0xd1,0x00,0x00,0x01,0x00,0x45,0x00,0x00,0x04,0x87,0x04,0x3a,0x00,0x10,0x00,0x94,0x40,0x42, -0x56,0x04,0x01,0x49,0x0e,0x59,0x0e,0x02,0x1b,0x0f,0x5b,0x0f,0x02,0x09,0x0f,0x01,0x25,0x03,0x55,0x03,0x02,0x06,0x03,0x16,0x03,0x02,0x28,0x01,0x68,0x01,0x02,0x00,0x01,0x52,0x0f,0x09,0x0f,0x4b,0x10,0x00,0x14,0x10,0x10,0x00,0x01,0x01,0x52,0x03,0x09,0x03,0x4b,0x02,0x01,0x14,0x02,0x01,0x03,0x02,0x09,0x02,0x70,0x10,0x80,0x10, -0x02,0x10,0xb8,0xff,0xc0,0x40,0x1e,0x0a,0x0e,0x48,0x10,0x10,0x12,0x02,0x40,0x0b,0x0e,0x48,0x02,0x0f,0x02,0x0f,0x55,0x09,0x01,0x44,0x09,0x01,0x2a,0x09,0x3a,0x09,0x02,0x09,0x00,0x01,0x15,0x00,0x3f,0x33,0x33,0x5d,0x5d,0x5d,0x3f,0x33,0x01,0x2f,0x2b,0x11,0x33,0x2f,0x2b,0x5d,0x12,0x39,0x10,0x00,0xc1,0x87,0x05,0x2b,0x87,0x2b, -0xc4,0x87,0x18,0x10,0x2b,0x87,0x2b,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x33,0x01,0x1e,0x03,0x17,0x3e,0x03,0x37,0x01,0x33,0x02,0xcb,0xd5,0xfe,0x4f,0xca,0x01,0x0c,0x08,0x12,0x14,0x11,0x06,0x06,0x13,0x14,0x15,0x08,0x01,0x14,0xc9,0x04,0x3a,0xfd,0x40,0x16,0x3f,0x44,0x3f,0x15,0x15,0x3f,0x42, -0x3f,0x16,0x02,0xc2,0x00,0x01,0x00,0x15,0x00,0x00,0x04,0xb8,0x04,0x3a,0x00,0x2a,0x01,0x52,0x40,0x10,0x74,0x1e,0x84,0x1e,0x02,0x46,0x1e,0x56,0x1e,0x02,0x24,0x1e,0x34,0x1e,0x02,0x1d,0xb8,0xff,0xe0,0x40,0x4a,0x13,0x18,0x48,0x90,0x1d,0x01,0x65,0x1d,0x75,0x1d,0x85,0x1d,0x03,0x24,0x1d,0x34,0x1d,0x02,0x06,0x1d,0x16,0x1d,0x02, -0x1c,0x20,0x13,0x18,0x48,0x9f,0x1c,0x01,0x6b,0x1c,0x7b,0x1c,0x8b,0x1c,0x03,0x1d,0x1c,0x2d,0x1c,0x3d,0x1c,0x03,0x0b,0x1c,0x01,0x7b,0x1b,0x8b,0x1b,0x02,0x1b,0x20,0x0b,0x0e,0x48,0x0e,0x20,0x0d,0x11,0x48,0x1a,0x0e,0x2a,0x0e,0x3a,0x0e,0x03,0x0b,0x0e,0x01,0x0d,0xb8,0xff,0xe0,0x40,0x1f,0x13,0x18,0x48,0x90,0x0d,0x01,0x25,0x0d, -0x35,0x0d,0x75,0x0d,0x85,0x0d,0x04,0x01,0x20,0x13,0x18,0x48,0x9f,0x01,0x01,0x2a,0x01,0x3a,0x01,0x7a,0x01,0x03,0x00,0xb8,0xff,0xe0,0x40,0x70,0x0d,0x11,0x48,0x15,0x00,0x25,0x00,0x35,0x00,0x03,0x03,0x06,0x00,0x01,0x0e,0x01,0x52,0x10,0x16,0x10,0x4b,0x0f,0x0e,0x14,0x0f,0x0f,0x0e,0x0d,0x01,0x52,0x1c,0x16,0x1c,0x4c,0x07,0x0d, -0x14,0x07,0x0d,0x01,0x01,0x52,0x1d,0x23,0x1d,0x4c,0x07,0x01,0x14,0x07,0x01,0x1d,0x07,0x00,0x01,0x52,0x29,0x23,0x29,0x4b,0x2a,0x00,0x14,0x2a,0x00,0x23,0x07,0x16,0x03,0x0f,0x14,0x2a,0x74,0x2a,0x84,0x2a,0x03,0x2a,0x2a,0x2c,0x0f,0x2a,0x66,0x07,0x01,0x32,0x07,0x01,0x02,0x07,0x1c,0x1c,0x16,0x29,0x2a,0x10,0x03,0x0f,0x0f,0x23, -0x16,0x75,0x16,0x85,0x16,0x02,0x16,0x0d,0x01,0x00,0x0e,0x15,0x00,0x3f,0x33,0x33,0x33,0x33,0x5d,0x11,0x33,0x3f,0x17,0x33,0x12,0x39,0x2f,0x33,0x5f,0x5d,0x5d,0x2f,0x01,0x2f,0x11,0x33,0x2f,0x5d,0x12,0x17,0x39,0x87,0x2b,0x87,0x2b,0xc4,0x10,0x00,0xc1,0x87,0x05,0x18,0x2b,0x87,0x2b,0xc4,0x87,0x18,0x2b,0x87,0x2b,0xc4,0x87,0x18, -0x10,0x2b,0x87,0x2b,0xc4,0x31,0x30,0x01,0x5d,0x5f,0x5d,0x2b,0x5d,0x5d,0x2b,0x5d,0x5d,0x2b,0x5d,0x5d,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x2b,0x5d,0x5d,0x5d,0x5d,0x2b,0x5d,0x5d,0x5d,0x21,0x23,0x03,0x2e,0x01,0x27,0x26,0x27,0x06,0x07,0x0e,0x01,0x07,0x03,0x23,0x03,0x33,0x13,0x1e,0x03,0x15,0x36,0x37,0x3e,0x01,0x37,0x13,0x33, -0x13,0x1e,0x01,0x17,0x16,0x17,0x34,0x3e,0x02,0x37,0x13,0x33,0x03,0xfa,0xcc,0x8f,0x08,0x14,0x09,0x0b,0x09,0x09,0x0b,0x09,0x14,0x0a,0x94,0xcb,0xb7,0xb2,0x5d,0x03,0x0b,0x0b,0x08,0x0b,0x0b,0x09,0x14,0x07,0x87,0xc1,0x82,0x06,0x13,0x09,0x0b,0x0a,0x08,0x0c,0x0c,0x03,0x65,0xb0,0x01,0xd7,0x1b,0x45,0x20,0x25,0x25,0x25,0x24,0x1f, -0x47,0x1f,0xfe,0x2d,0x04,0x3a,0xfd,0xa1,0x18,0x55,0x60,0x5c,0x1d,0x2d,0x29,0x23,0x49,0x14,0x01,0xa8,0xfe,0x57,0x14,0x47,0x23,0x29,0x2e,0x1e,0x5a,0x5f,0x56,0x19,0x02,0x5f,0x00,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x04,0x6d,0x04,0x3a,0x00,0x0b,0x00,0xb9,0x40,0x70,0x47,0x04,0x01,0x76,0x07,0x86,0x07,0x02,0x39,0x01,0x79,0x01, -0x89,0x01,0x03,0x76,0x08,0x01,0x19,0x08,0x59,0x08,0x02,0x0a,0x02,0x09,0x07,0x03,0x08,0x06,0x0b,0x06,0x01,0x02,0x09,0x04,0x03,0x08,0x05,0x00,0x05,0x0a,0x01,0x02,0x09,0x02,0x07,0x04,0x03,0x02,0x09,0x01,0x52,0x08,0x03,0x02,0x03,0x08,0x4b,0x09,0x02,0x14,0x09,0x09,0x02,0x00,0x01,0x52,0x06,0x0b,0x06,0x4b,0x05,0x00,0x14,0x05, -0x00,0x06,0x05,0x0a,0x01,0x07,0x04,0x04,0x03,0x0b,0x09,0x09,0x10,0x0b,0x70,0x0b,0x80,0x0b,0x03,0x0b,0x0b,0x0d,0x05,0x05,0x03,0x07,0x0a,0x04,0x01,0x04,0x08,0x05,0x0f,0x03,0x00,0x15,0x00,0x3f,0x32,0x3f,0x33,0x17,0x39,0x01,0x2f,0x33,0x2f,0x11,0x33,0x2f,0x5d,0x33,0x2f,0x11,0x12,0x17,0x39,0x10,0x00,0xc1,0x87,0x05,0x2b,0x87, -0x2b,0xc4,0x87,0x18,0x10,0x2b,0x10,0x00,0xc1,0x87,0x05,0x2b,0x10,0xc4,0x10,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x5d,0x5d,0x00,0x5d,0x5d,0x01,0x5d,0x21,0x09,0x01,0x23,0x09,0x01,0x33,0x09,0x01,0x33,0x09,0x01,0x03,0xa4,0xfe,0xbf,0xfe,0xbd,0xc2,0x01,0x9f, -0xfe,0x73,0xc7,0x01,0x2c,0x01,0x2a,0xc9,0xfe,0x73,0x01,0xa4,0x01,0xbc,0xfe,0x44,0x02,0x2c,0x02,0x0e,0xfe,0x5b,0x01,0xa5,0xfd,0xf4,0xfd,0xd2,0x00,0x01,0x00,0x42,0xfe,0x57,0x04,0x89,0x04,0x3a,0x00,0x1f,0x00,0xaf,0x40,0x52,0x1e,0x18,0x0f,0x12,0x48,0x65,0x12,0x75,0x12,0x85,0x12,0x03,0x49,0x1d,0x59,0x1d,0x02,0x03,0x20,0x0d, -0x11,0x48,0x2d,0x03,0x3d,0x03,0x02,0x2b,0x02,0x3b,0x02,0x02,0x00,0x48,0x0c,0x49,0x75,0x00,0x85,0x00,0x02,0x26,0x00,0x66,0x00,0x02,0x6a,0x10,0x7a,0x10,0x8a,0x10,0x03,0x49,0x10,0x59,0x10,0x02,0x00,0x10,0x18,0x69,0x18,0x79,0x18,0x89,0x18,0x03,0x18,0x10,0x09,0x0c,0x48,0x18,0x1f,0x08,0x08,0x11,0x1e,0x1f,0x10,0x1f,0xb8,0xff, -0xc0,0xb7,0x0a,0x11,0x48,0x1f,0x1f,0x21,0x12,0x11,0xb8,0xff,0xf0,0x40,0x0a,0x11,0x40,0x0b,0x0f,0x48,0x11,0x82,0x18,0x01,0x18,0xb8,0xff,0xe0,0x40,0x0d,0x0d,0x10,0x48,0x18,0x10,0x10,0x1e,0x11,0x0f,0x0c,0x50,0x05,0x1b,0x00,0x3f,0xed,0x3f,0x33,0x39,0x2f,0x33,0x2b,0x5d,0x01,0x2f,0x2b,0x38,0x33,0x11,0x33,0x2f,0x2b,0x38,0x33, -0x12,0x39,0x2f,0x12,0x39,0x2b,0x5d,0x11,0x33,0x33,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x00,0x2b,0x5d,0x5d,0x2b,0x01,0x5d,0x5d,0x2b,0x21,0x0e,0x03,0x23,0x22,0x26,0x27,0x35,0x1e,0x01,0x33,0x32,0x36,0x3f,0x01,0x01,0x33,0x01,0x1e,0x03,0x17,0x3e,0x03,0x37,0x13,0x33,0x02,0xc1,0x25,0x50,0x62,0x78,0x4e,0x22,0x3a,0x20,0x13,0x30,0x11, -0x4f,0x8b,0x30,0x12,0xfe,0x2a,0xc0,0x01,0x08,0x0b,0x20,0x1e,0x17,0x02,0x03,0x17,0x1e,0x1f,0x0c,0xfc,0xbe,0x62,0x9d,0x6f,0x3b,0x04,0x07,0x87,0x03,0x03,0x76,0x81,0x31,0x04,0x2f,0xfd,0x7e,0x1b,0x4f,0x4d,0x3e,0x09,0x0b,0x3d,0x4b,0x4f,0x1d,0x02,0x81,0x00,0x00,0x00,0x00,0x01,0x00,0x93,0x00,0x00,0x04,0x2c,0x04,0x3a,0x00,0x09, -0x00,0x58,0x40,0x37,0x06,0x07,0x16,0x07,0x26,0x07,0x56,0x07,0x04,0x07,0x01,0x52,0x02,0x01,0x02,0x4b,0x06,0x07,0x14,0x06,0x07,0x02,0x06,0x60,0x06,0x01,0x03,0x06,0x08,0x08,0x06,0x03,0x03,0x0b,0x9f,0x01,0xaf,0x01,0xbf,0x01,0x03,0x00,0x01,0x01,0x01,0x06,0x03,0x50,0x04,0x0f,0x01,0x07,0x50,0x00,0x15,0x00,0x3f,0xed,0x32,0x3f, -0xed,0x32,0x01,0x2f,0x5d,0x5d,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x10,0x00,0xc1,0x87,0x05,0x2b,0x87,0x2b,0xc4,0x31,0x30,0x01,0x5d,0x33,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x93,0x02,0xa9,0xfd,0x7f,0x03,0x4c,0xfd,0x56,0x02,0xcf,0x89,0x03,0x26,0x8b,0x89,0xfc,0xda,0x8b,0x00,0x00,0x01,0x00,0xe3,0xfe,0x57,0x04,0x25, -0x05,0xcc,0x00,0x31,0x00,0x75,0x40,0x12,0x76,0x0f,0x86,0x0f,0x02,0x69,0x08,0x79,0x08,0x89,0x08,0x03,0x02,0x18,0x09,0x0c,0x48,0x14,0xb8,0xff,0xe0,0x40,0x37,0x09,0x0c,0x48,0x18,0x80,0x31,0x01,0x31,0x31,0x33,0x20,0x2c,0xf1,0x05,0x25,0x05,0x3f,0x0c,0x01,0x0c,0x0c,0x11,0x7f,0x05,0x01,0x00,0x05,0x01,0x05,0x25,0x0b,0xf5,0x0f, -0x0c,0x4f,0x0c,0x6f,0x0c,0x03,0x8f,0x0c,0xaf,0x0c,0x02,0x0c,0x0c,0x30,0x19,0xf5,0x18,0x00,0x30,0xf5,0x00,0x1b,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0x71,0xed,0x39,0x01,0x2f,0x5d,0x5d,0x33,0x33,0x2f,0x5d,0x12,0x39,0x10,0xed,0x32,0x12,0x39,0x2f,0x5d,0x33,0x31,0x30,0x00,0x2b,0x2b,0x5d,0x5d,0x01,0x22,0x2e,0x02,0x35, -0x11,0x34,0x2e,0x02,0x27,0x35,0x3e,0x03,0x35,0x11,0x34,0x3e,0x02,0x33,0x21,0x15,0x23,0x22,0x0e,0x02,0x15,0x11,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x11,0x14,0x16,0x3b,0x01,0x15,0x03,0x1c,0x41,0x6c,0x4e,0x2b,0x2f,0x4e,0x63,0x33,0x33,0x63,0x4e,0x2f,0x2b,0x4e,0x6c,0x41,0x01,0x09,0xd5,0x2d,0x41,0x2a,0x13,0x29,0x42,0x53, -0x29,0x2b,0x53,0x41,0x28,0x50,0x5b,0xd5,0xfe,0x57,0x2c,0x50,0x6f,0x44,0x01,0x5f,0x3f,0x57,0x36,0x1a,0x02,0x89,0x02,0x1a,0x37,0x56,0x3e,0x01,0x60,0x46,0x70,0x4f,0x2a,0x8b,0x15,0x2e,0x4a,0x36,0xfe,0xa6,0x39,0x5c,0x45,0x2c,0x0a,0x02,0x0a,0x2d,0x44,0x5d,0x3a,0xfe,0xa5,0x6a,0x59,0x8b,0x00,0x01,0x02,0x13,0xfe,0x57,0x02,0xb9, -0x05,0xcc,0x00,0x03,0x00,0x17,0x40,0x0a,0x03,0xab,0x00,0x00,0x04,0x05,0x01,0x00,0x00,0x1b,0x00,0x3f,0x3f,0x11,0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x33,0x11,0x02,0x13,0xa6,0xfe,0x57,0x07,0x75,0xf8,0x8b,0x00,0x00,0x00,0x01,0x00,0xa7,0xfe,0x57,0x03,0xe9,0x05,0xcc,0x00,0x31,0x00,0x73,0x40,0x0d,0x76,0x22,0x86,0x22, -0x02,0x69,0x29,0x79,0x29,0x89,0x29,0x03,0x1c,0xb8,0xff,0xe0,0x40,0x3d,0x09,0x0d,0x48,0x2f,0x18,0x09,0x0d,0x48,0x0b,0x30,0x25,0x01,0x25,0x25,0x20,0x2c,0xf1,0x11,0x05,0x05,0x33,0x19,0x4f,0x00,0x7f,0x00,0x8f,0x00,0x03,0x00,0x00,0x01,0x00,0x0b,0x26,0xf5,0x0f,0x25,0x2f,0x25,0x4f,0x25,0x6f,0x25,0x04,0x8f,0x25,0xaf,0x25,0x02, -0x25,0x25,0x01,0x18,0xf5,0x19,0x00,0x01,0xf5,0x00,0x1b,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0x71,0xed,0x39,0x01,0x2f,0x5d,0x5d,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x32,0x2f,0x5d,0x39,0x31,0x30,0x00,0x2b,0x2b,0x5d,0x5d,0x13,0x35,0x33,0x32,0x36,0x35,0x11,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x35,0x11,0x34,0x2e,0x02, -0x2b,0x01,0x35,0x21,0x32,0x1e,0x02,0x15,0x11,0x14,0x1e,0x02,0x17,0x15,0x0e,0x03,0x15,0x11,0x14,0x0e,0x02,0x23,0xa7,0xd5,0x5b,0x51,0x28,0x41,0x52,0x2b,0x29,0x52,0x42,0x29,0x14,0x2a,0x41,0x2d,0xd5,0x01,0x09,0x41,0x6c,0x4e,0x2b,0x2f,0x4e,0x63,0x33,0x33,0x63,0x4e,0x2f,0x2b,0x4e,0x6c,0x41,0xfe,0x57,0x8b,0x59,0x6a,0x01,0x5b, -0x3a,0x5d,0x44,0x2d,0x0a,0x02,0x0a,0x2c,0x45,0x5c,0x39,0x01,0x5a,0x36,0x4a,0x2e,0x15,0x8b,0x2a,0x4f,0x70,0x46,0xfe,0xa0,0x3e,0x56,0x37,0x1a,0x02,0x89,0x02,0x1a,0x36,0x57,0x3f,0xfe,0xa1,0x44,0x6f,0x50,0x2c,0x00,0x00,0x00,0x00,0x01,0x00,0x6c,0x02,0x29,0x04,0x60,0x03,0x27,0x00,0x20,0x00,0x5d,0x40,0x1a,0x16,0x04,0x26,0x04, -0x36,0x04,0x66,0x04,0x96,0x04,0xa6,0x04,0x06,0x10,0x30,0x09,0x14,0x00,0x4c,0x11,0x30,0x09,0x14,0x00,0x4c,0x1e,0xb8,0xff,0xc0,0x40,0x25,0x09,0x14,0x00,0x4c,0x1f,0x30,0x09,0x14,0x00,0x4c,0x0d,0x22,0x10,0x1d,0x01,0x1d,0x18,0xad,0x0d,0x00,0x40,0x17,0x1c,0x48,0x00,0x40,0x09,0x0c,0x48,0x00,0x1d,0x0a,0xad,0x0f,0x13,0x01,0x13, -0x00,0x2f,0x5d,0xed,0x33,0xdd,0x2b,0x2b,0x32,0xed,0x01,0x2f,0x5d,0x10,0xce,0x31,0x30,0x2b,0x00,0x2b,0x2b,0x2b,0x5d,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x32,0x36,0x37,0x15,0x0e,0x03,0x23,0x22,0x26,0x27,0x26,0x23,0x22,0x0e,0x02,0x07,0x35,0x3e,0x01,0x01,0x73,0x29,0x4f,0x4d,0x4b,0x25,0x15,0x32,0x33,0x33,0x17,0x45,0x7b, -0x34,0x1f,0x3c,0x3d,0x44,0x28,0x45,0x91,0x49,0x81,0x58,0x26,0x41,0x3c,0x38,0x1d,0x32,0x84,0x03,0x27,0x0d,0x14,0x1a,0x0d,0x07,0x10,0x0e,0x08,0x32,0x2a,0x95,0x16,0x1f,0x13,0x08,0x2c,0x1a,0x2d,0x0c,0x17,0x20,0x15,0x8f,0x26,0x2e,0x00,0x00,0x00,0x00,0x02,0x02,0x03,0xfe,0xf6,0x02,0xc9,0x04,0x3a,0x00,0x03,0x00,0x07,0x00,0x2c, -0x40,0x15,0x02,0x04,0x98,0x03,0x00,0x07,0x10,0x07,0x02,0x07,0x07,0x08,0x09,0x00,0x00,0x03,0x06,0x9d,0x07,0x0f,0x03,0xb8,0x01,0x0e,0x00,0x3f,0x3f,0xed,0x11,0x39,0x2f,0x11,0x12,0x01,0x39,0x2f,0x5d,0x33,0xed,0x32,0x31,0x30,0x01,0x33,0x13,0x23,0x13,0x15,0x23,0x35,0x02,0x1b,0x94,0x18,0xc4,0xc6,0xc2,0x02,0xad,0xfc,0x49,0x05, -0x44,0xc9,0xc9,0x00,0x00,0x02,0x00,0x85,0xff,0xc3,0x04,0x46,0x05,0x63,0x00,0x06,0x00,0x25,0x00,0x76,0x00,0xb0,0x11,0x2f,0xb0,0x08,0xcd,0xb0,0x00,0x32,0x7d,0xb0,0x13,0xcd,0x18,0xb0,0x01,0x2f,0xb0,0x07,0x33,0xb0,0x1c,0xcd,0xb0,0x1f,0x32,0xb0,0x1c,0x10,0x7d,0xb0,0x1d,0xcd,0x18,0x01,0xb0,0x26,0x2f,0xb0,0x18,0xd6,0xb0,0x04, -0xcd,0xb0,0x04,0x10,0xb0,0x13,0xdc,0xb1,0x00,0x1c,0x32,0x32,0xb0,0x12,0xcd,0xb1,0x07,0x1e,0x32,0x32,0xb0,0x12,0x10,0xb0,0x0c,0xdc,0xb0,0x24,0x32,0xb0,0x0d,0xcd,0xb0,0x23,0x32,0xb0,0x0d,0x10,0xb0,0x27,0xd6,0x00,0xb1,0x08,0x11,0x11,0x12,0xb1,0x14,0x15,0x39,0x39,0xb0,0x01,0x11,0xb4,0x0c,0x0d,0x18,0x23,0x24,0x24,0x17,0x39, -0xb0,0x1c,0x12,0xb1,0x1b,0x20,0x39,0x39,0x30,0x31,0x01,0x11,0x0e,0x01,0x10,0x17,0x16,0x13,0x11,0x36,0x37,0x36,0x37,0x17,0x06,0x07,0x06,0x07,0x15,0x23,0x35,0x26,0x27,0x26,0x35,0x10,0x37,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x16,0x17,0x07,0x26,0x02,0x3a,0x6e,0x90,0x54,0x41,0xe9,0x7d,0x39,0x17,0x09,0xb6,0x1e,0xce,0x46,0x5a, -0x80,0xd6,0x72,0x6d,0xfb,0x52,0x68,0x80,0xf6,0x64,0x1f,0x0d,0xb9,0x20,0x01,0x12,0x03,0x0b,0x10,0xb4,0xfe,0x7d,0x64,0x4e,0x02,0xfa,0xfc,0xf4,0x15,0x61,0x28,0x36,0x0c,0xd2,0x5b,0x1f,0x08,0xc3,0xc3,0x10,0x90,0x88,0xe2,0x01,0x68,0x80,0x2a,0x09,0xb8,0xb8,0x14,0xb7,0x38,0x3f,0x0e,0xa9,0x00,0x01,0x00,0x38,0x00,0x00,0x04,0x93, -0x05,0x5a,0x00,0x36,0x00,0x9c,0x40,0x62,0x03,0x18,0x0c,0x0f,0x48,0x06,0x14,0x01,0x1b,0x6f,0x22,0x29,0x2d,0x6f,0x10,0x4f,0x22,0x5f,0x22,0x02,0x7f,0x0c,0x8f,0x0c,0x02,0x0f,0x2a,0x01,0x0c,0x2a,0x22,0x22,0x2a,0x0c,0x03,0x06,0x00,0x6f,0x00,0x36,0x01,0x36,0x36,0x38,0x32,0x6e,0x06,0x0f,0x0f,0x06,0x40,0x17,0x24,0x48,0x00,0x06, -0x10,0x06,0x02,0x06,0x2c,0x0e,0x73,0x29,0x1f,0x0f,0x01,0x3f,0x0f,0x6f,0x0f,0x9f,0x0f,0xcf,0x0f,0xdf,0x0f,0xef,0x0f,0x06,0x0f,0x0f,0x32,0x25,0x73,0x16,0x22,0x22,0x16,0x07,0x07,0x32,0x73,0x06,0x36,0x36,0x06,0x18,0x00,0x3f,0x33,0x2f,0x10,0xed,0x32,0x3f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x5d,0x71,0x33,0xed,0x32,0x01,0x7c, -0x2f,0x5d,0x2b,0x33,0x18,0x2f,0x10,0xed,0x12,0x39,0x7d,0x2f,0x5d,0x18,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x5d,0x5d,0x33,0xed,0x32,0x10,0xed,0x31,0x30,0x00,0x5d,0x2b,0x25,0x0e,0x03,0x23,0x21,0x35,0x3e,0x03,0x3d,0x01,0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x32,0x0e,0x02,0x07,0x06,0x07,0x2e,0x01, -0x23,0x22,0x06,0x1d,0x01,0x21,0x15,0x21,0x15,0x14,0x0e,0x02,0x07,0x21,0x32,0x36,0x37,0x04,0x93,0x09,0x20,0x36,0x51,0x3a,0xfc,0x8f,0x2b,0x48,0x33,0x1d,0xba,0xba,0x33,0x68,0x9f,0x6c,0x4a,0x7e,0x65,0x48,0x12,0x01,0x0e,0x18,0x1f,0x11,0x27,0x32,0x16,0x75,0x4e,0x7a,0x78,0x01,0x98,0xfe,0x68,0x0f,0x24,0x3c,0x2c,0x02,0x58,0x3b, -0x39,0x0b,0xf0,0x2b,0x56,0x44,0x2b,0x9a,0x16,0x30,0x46,0x66,0x4b,0x8d,0x8e,0xdc,0x5c,0x93,0x66,0x37,0x1d,0x3a,0x56,0x39,0x06,0x08,0x0a,0x05,0x0c,0x10,0x3f,0x40,0x73,0x7d,0xd8,0x8e,0x8b,0x3b,0x60,0x4d,0x3c,0x17,0x35,0x35,0x00,0x02,0x00,0x9e,0x00,0xe1,0x04,0x2f,0x04,0x73,0x00,0x23,0x00,0x37,0x00,0xea,0x40,0x9d,0x49,0x22, -0x59,0x22,0x02,0x2d,0x22,0x3d,0x22,0x02,0x49,0x1d,0x59,0x1d,0x02,0x2d,0x1d,0x3d,0x1d,0x02,0x49,0x19,0x59,0x19,0x02,0x2d,0x19,0x3d,0x19,0x02,0x46,0x14,0x56,0x14,0x02,0x22,0x14,0x32,0x14,0x02,0x46,0x10,0x56,0x10,0x02,0x22,0x10,0x32,0x10,0x02,0x46,0x0b,0x56,0x0b,0x02,0x22,0x0b,0x32,0x0b,0x02,0x46,0x07,0x56,0x07,0x02,0x22, -0x07,0x32,0x07,0x02,0x49,0x02,0x59,0x02,0x02,0x2d,0x02,0x3d,0x02,0x02,0x03,0x21,0x06,0x1e,0x0c,0x18,0x0f,0x15,0x15,0x18,0x1e,0x21,0x04,0x00,0x0e,0x16,0x16,0x12,0xaa,0x6f,0x2e,0x01,0x10,0x2e,0x01,0x2e,0x2e,0x00,0x39,0x04,0x20,0x20,0x24,0xaa,0x00,0x00,0x10,0x00,0x80,0x00,0x03,0x00,0x0c,0x06,0x0f,0x03,0x15,0x21,0x18,0x1e, -0x1e,0x21,0x03,0x06,0x04,0x09,0x1b,0x17,0x1f,0x1f,0x29,0xb0,0x40,0x1b,0x60,0x1b,0x02,0x3f,0x1b,0x01,0x1b,0x0d,0x05,0x05,0x33,0xb0,0x09,0x00,0x2f,0xed,0x33,0x2f,0x33,0x2f,0x5d,0x5d,0xed,0x33,0x2f,0x33,0x11,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x5d, -0x5d,0xed,0x32,0x2f,0x33,0x11,0x17,0x39,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x13,0x34,0x36,0x37,0x27,0x37,0x17,0x3e,0x01,0x33,0x32,0x16,0x17,0x37,0x17,0x07,0x1e,0x01,0x15,0x14,0x06,0x07,0x17,0x07,0x27,0x0e, -0x01,0x23,0x22,0x26,0x27,0x07,0x27,0x37,0x2e,0x01,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0xb6,0x29,0x25,0x64,0x68,0x63,0x36,0x7f,0x49,0x47,0x7e,0x36,0x61,0x68,0x60,0x25,0x2b,0x2c,0x26,0x64,0x66,0x65,0x36,0x7e,0x47,0x48,0x80,0x34,0x69,0x66,0x66,0x25,0x29,0x9a,0x2d,0x4c,0x66,0x3a, -0x39,0x66,0x4d,0x2c,0x2c,0x4d,0x66,0x39,0x3a,0x66,0x4c,0x2d,0x02,0xac,0x47,0x7f,0x36,0x64,0x67,0x65,0x27,0x2b,0x2a,0x26,0x61,0x69,0x60,0x36,0x7f,0x47,0x47,0x80,0x35,0x64,0x69,0x65,0x25,0x29,0x2a,0x26,0x69,0x69,0x66,0x36,0x7f,0x49,0x3a,0x66,0x4c,0x2c,0x2c,0x4c,0x66,0x3a,0x3a,0x66,0x4d,0x2c,0x2c,0x4d,0x66,0x00,0x00,0x00, -0x00,0x01,0x00,0x34,0x00,0x00,0x04,0x98,0x05,0x45,0x00,0x16,0x00,0xb3,0x40,0x6f,0x5d,0x15,0x01,0x4b,0x15,0x01,0x19,0x15,0x29,0x15,0x39,0x15,0x03,0x52,0x13,0x01,0x03,0x40,0x13,0x01,0x14,0x13,0x24,0x13,0x34,0x13,0x03,0x00,0x00,0x40,0x00,0x50,0x00,0x03,0x0f,0x11,0x4f,0x11,0x5f,0x11,0x03,0x0c,0x04,0x01,0x06,0x06,0x16,0x08, -0x10,0x0b,0x0b,0x12,0x09,0x15,0x16,0x0e,0x08,0x12,0x09,0x0e,0x13,0x2f,0x12,0x01,0x12,0x14,0x04,0x00,0x08,0x5c,0x11,0x0d,0x4f,0x09,0x5f,0x09,0x7f,0x09,0x8f,0x09,0x04,0x10,0x09,0x01,0x09,0x09,0x17,0x18,0x07,0x0b,0x60,0x0c,0x04,0x0c,0x03,0x0f,0x60,0x10,0x14,0x00,0x10,0x0c,0x10,0x0c,0x10,0x08,0x15,0x12,0x03,0x08,0x12,0x00, -0x3f,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x5d,0x5d,0x33,0x33,0xed,0x32,0x32,0x39,0xc4,0x5d,0x32,0x2b,0x01,0x18,0x10,0x4d,0xe4,0x32,0x11,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d, -0x5d,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x37,0x21,0x35,0x21,0x01,0x33,0x09,0x01,0x33,0x02,0xfc,0x01,0x41,0xfe,0x81,0x01,0x7f,0xfe,0x81,0xb2,0xfe,0x83,0x01,0x7d,0x02,0xfe,0x81,0x01,0x40,0xfe,0x65,0xc7,0x01,0x69,0x01,0x6d,0xc7,0x02,0xa7,0x8e,0x89,0x90,0xff,0x00,0x01,0x00,0x90,0x89,0x8e, -0x02,0x9e,0xfd,0x97,0x02,0x69,0x00,0x00,0x00,0x02,0x02,0x13,0xfe,0x39,0x02,0xb9,0x05,0xae,0x00,0x03,0x00,0x07,0x00,0x25,0x40,0x11,0x03,0x07,0xab,0x00,0x04,0x04,0x08,0x09,0x05,0x00,0x05,0x00,0x01,0x04,0x1b,0x01,0x00,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x01,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x11,0x33, -0x11,0x03,0x11,0x33,0x11,0x02,0x13,0xa6,0xa6,0xa6,0x02,0xa4,0x03,0x0a,0xfc,0xf6,0xfb,0x95,0x03,0x0b,0xfc,0xf5,0x00,0x00,0x00,0x02,0x00,0x9f,0xff,0x54,0x04,0x2c,0x05,0xcc,0x00,0x4d,0x00,0x61,0x01,0x05,0x40,0x73,0x73,0x10,0x83,0x10,0x02,0x69,0x56,0x01,0x75,0x60,0x85,0x60,0x02,0x43,0x5f,0x53,0x5f,0x02,0x43,0x5b,0x53,0x5b, -0x02,0x43,0x5a,0x53,0x5a,0x73,0x5a,0x83,0x5a,0x04,0x43,0x3e,0x53,0x3e,0x02,0x6a,0x15,0x7a,0x15,0x8a,0x15,0x03,0x2a,0x14,0x4a,0x14,0x5a,0x14,0x03,0x2a,0x51,0x4a,0x51,0x5a,0x51,0x6a,0x51,0x04,0x2a,0x50,0x01,0x50,0x18,0x0d,0x11,0x48,0x2a,0x48,0x01,0x6c,0x39,0x7c,0x39,0x8c,0x39,0x03,0x2a,0x39,0x01,0x05,0x1f,0x15,0x1f,0x02, -0x0a,0x24,0x1a,0x24,0x02,0x05,0x4d,0x15,0x4d,0x02,0x5d,0x1d,0x22,0x58,0x49,0x41,0x46,0x53,0x4e,0x0e,0x49,0x4b,0x06,0x49,0x05,0x37,0x49,0x22,0x4b,0xb8,0xff,0xc0,0x40,0x40,0x12,0x19,0x48,0x41,0x4b,0x05,0x22,0x22,0x05,0x4b,0x41,0x04,0x2c,0x18,0x49,0x00,0x4e,0x10,0x4e,0x02,0x4e,0x4e,0x63,0x2d,0x49,0x00,0x2c,0x01,0x2c,0x53, -0x13,0x46,0x5d,0x3c,0x1d,0x76,0x46,0x86,0x46,0x02,0x6a,0x46,0x01,0x46,0x1d,0x00,0x32,0x51,0x27,0x20,0x2d,0x80,0x2d,0x02,0x2d,0x2d,0x27,0x0b,0x51,0x00,0x06,0x06,0x00,0x00,0x00,0x3f,0x32,0x2f,0x10,0xed,0x2f,0x33,0x2f,0x5d,0x10,0xed,0x12,0x39,0x39,0x5d,0x5d,0x11,0x33,0x33,0x11,0x33,0x33,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f, -0x5d,0xed,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2b,0x10,0xed,0x10,0xed,0x10,0xed,0x12,0x39,0x39,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x32,0x1e,0x02,0x17,0x07,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15, -0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x36,0x01,0x34,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x3e,0x03,0x02,0x78,0x4f,0x8a,0x6c,0x49,0x0f,0xa1,0x08,0x2e,0x43, -0x55,0x2e,0x7d,0x81,0x32,0x53,0x6d,0x3b,0x44,0x8b,0x70,0x46,0x1c,0x37,0x52,0x36,0x31,0x4f,0x37,0x1e,0x3a,0x70,0xa4,0x6b,0x5d,0x9a,0x75,0x4f,0x13,0xa1,0x0c,0x37,0x4e,0x63,0x39,0x3a,0x66,0x4d,0x2c,0x39,0x5f,0x7b,0x41,0x41,0x83,0x68,0x41,0x20,0x3b,0x54,0x35,0x2a,0x4b,0x39,0x21,0xd3,0x01,0xe1,0x35,0x58,0x71,0x3d,0x3a,0x59, -0x3c,0x1f,0x31,0x52,0x6c,0x3c,0x36,0x5d,0x44,0x27,0x05,0xcc,0x1e,0x3f,0x62,0x45,0x14,0x2d,0x3d,0x25,0x11,0x59,0x47,0x2d,0x40,0x2e,0x20,0x0e,0x10,0x2e,0x49,0x6a,0x4c,0x2d,0x57,0x49,0x37,0x0d,0x15,0x33,0x40,0x51,0x33,0x49,0x75,0x53,0x2c,0x1b,0x40,0x68,0x4d,0x1f,0x37,0x47,0x29,0x10,0x15,0x2d,0x44,0x2f,0x36,0x49,0x33,0x23, -0x10,0x0f,0x2e,0x49,0x6a,0x49,0x2d,0x53,0x47,0x35,0x0f,0x0e,0x2e,0x40,0x50,0x30,0x8b,0x9b,0xfc,0xcb,0x30,0x45,0x33,0x23,0x0e,0x03,0x21,0x34,0x45,0x27,0x2e,0x42,0x30,0x22,0x0f,0x01,0x18,0x2f,0x46,0x00,0x00,0x02,0x01,0x4f,0x04,0xc3,0x03,0x7c,0x05,0x7b,0x00,0x03,0x00,0x07,0x00,0x31,0x40,0x1f,0x03,0x85,0x00,0x00,0x07,0x85, -0x10,0x04,0x01,0x04,0x05,0x01,0x90,0x04,0x0f,0x00,0x3f,0x00,0x5f,0x00,0xaf,0x00,0xbf,0x00,0x05,0x00,0x40,0x16,0x1e,0x48,0x00,0x00,0x2f,0x2b,0x5d,0x32,0xed,0x32,0x01,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x31,0x30,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x02,0xd9,0xa3,0xfd,0xd3,0xa5,0x04,0xc3,0xb8,0xb8,0xb8,0xb8,0x00,0x00,0x00, -0x00,0x03,0x00,0x1f,0x00,0x26,0x04,0xad,0x05,0xcc,0x00,0x29,0x00,0x3d,0x00,0x51,0x01,0x1c,0x40,0x77,0x7b,0x50,0x8b,0x50,0x02,0x74,0x4a,0x84,0x4a,0x02,0x76,0x4f,0x86,0x4f,0x02,0x76,0x4b,0x86,0x4b,0x02,0x74,0x46,0x84,0x46,0x02,0x7b,0x40,0x8b,0x40,0x02,0x79,0x45,0x89,0x45,0x02,0x79,0x41,0x89,0x41,0x02,0x03,0x50,0x13,0x50, -0x02,0x03,0x4a,0x13,0x4a,0x02,0x0c,0x12,0x1c,0x12,0x2c,0x12,0x03,0x03,0x18,0x13,0x18,0x23,0x18,0x03,0x66,0x00,0x76,0x00,0x86,0x00,0x03,0x00,0xc4,0x15,0x0a,0x20,0xc6,0x1f,0x0b,0x1f,0x70,0x1f,0x80,0x1f,0x02,0x0f,0x1f,0x1f,0x1f,0x02,0x2f,0x15,0x3f,0x15,0x02,0x15,0x40,0x10,0x14,0x48,0x15,0x1f,0x15,0x1f,0x34,0x3e,0x10,0x0d, -0x11,0x48,0x3e,0xc3,0x10,0x2a,0x01,0x2a,0x2a,0x53,0x48,0xb8,0xff,0xf0,0x40,0x57,0x0d,0x11,0x48,0x48,0xc3,0x34,0x30,0x0a,0x40,0x0a,0xb0,0x0a,0xc0,0x0a,0xd0,0x0a,0x05,0x30,0x0a,0xb0,0x0a,0xc0,0x0a,0x03,0x0a,0x0a,0x05,0xc9,0x10,0x25,0xc9,0x1a,0x20,0x20,0x1a,0x7f,0x10,0x8f,0x10,0xef,0x10,0xff,0x10,0x04,0x50,0x1a,0xb0,0x1a, -0xc0,0x1a,0x03,0x00,0x1a,0x10,0x1a,0x70,0x1a,0x80,0x1a,0x04,0x10,0x1a,0x10,0x1a,0x4d,0x69,0x43,0x79,0x43,0x89,0x43,0x03,0x43,0xc8,0x39,0x00,0x66,0x4d,0x76,0x4d,0x86,0x4d,0x03,0x4d,0xc8,0x2f,0xd0,0x00,0x3f,0xed,0x5d,0x3f,0xed,0x5d,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x71,0x5d,0x11,0x33,0x2f,0x10,0xed,0x10,0xed,0x33,0x2f,0x5d, -0x71,0x01,0x2f,0xed,0x2b,0x11,0x33,0x2f,0x5d,0xed,0x2b,0x11,0x39,0x39,0x2f,0x2f,0x2b,0x5d,0x5d,0x5d,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34, -0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x03,0x23,0x22,0x0e,0x02,0x05,0x14,0x02,0x0e,0x01,0x23,0x22,0x2e,0x01,0x02,0x35,0x34,0x12,0x3e,0x01,0x33,0x32,0x1e,0x01,0x12,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x01,0x8e,0x1c,0x38,0x54,0x38,0x29,0x3f,0x2f,0x21,0x0c,0x73,0x13,0x34, -0x4a,0x63,0x43,0x5a,0x85,0x57,0x2b,0x2b,0x56,0x82,0x57,0x43,0x63,0x48,0x31,0x10,0x72,0x0a,0x20,0x2e,0x3c,0x27,0x3a,0x53,0x35,0x19,0x03,0x1f,0x5b,0x9e,0xd5,0x79,0x78,0xd4,0x9f,0x5c,0x5c,0x9e,0xd4,0x79,0x79,0xd5,0x9e,0x5b,0x5c,0x4d,0x86,0xb2,0x66,0x65,0xb2,0x84,0x4d,0x4d,0x84,0xb2,0x65,0x66,0xb2,0x86,0x4d,0x02,0xfb,0x48, -0x78,0x56,0x30,0x1b,0x2d,0x38,0x1c,0x23,0x2b,0x51,0x3f,0x26,0x40,0x72,0x9e,0x5e,0x62,0x9c,0x6f,0x3b,0x24,0x3b,0x4b,0x27,0x21,0x1a,0x32,0x26,0x17,0x2e,0x53,0x76,0x4a,0xbb,0xfe,0xef,0xb2,0x55,0x55,0xb2,0x01,0x11,0xbb,0xbb,0x01,0x11,0xb1,0x56,0x56,0xb1,0xfe,0xef,0xbb,0xa7,0xee,0x98,0x47,0x47,0x98,0xee,0xa7,0xa8,0xef,0x98, -0x46,0x46,0x98,0xef,0x00,0x02,0x00,0xce,0x02,0x8b,0x03,0xfd,0x05,0x98,0x00,0x2a,0x00,0x3b,0x00,0x7a,0xb9,0x00,0x03,0xff,0xe8,0xb3,0x09,0x0c,0x48,0x14,0xb8,0xff,0xd8,0x40,0x37,0x09,0x0d,0x48,0x22,0x28,0x09,0x11,0x48,0x29,0x18,0x0d,0x11,0x48,0x29,0x28,0x09,0x0c,0x48,0x1e,0x1e,0x17,0xe2,0x24,0x06,0x00,0x35,0x01,0x35,0x35, -0x00,0x3d,0x0d,0xe3,0x0e,0x0e,0x2b,0xe3,0x00,0x00,0x10,0x00,0x02,0x00,0x1a,0x30,0xe4,0x28,0x36,0xe4,0x05,0x05,0x13,0x24,0x21,0x28,0xb8,0x01,0x16,0xb4,0x0d,0x0d,0x0a,0xe4,0x13,0xb8,0x01,0x15,0x00,0x3f,0xed,0x33,0x2f,0x3f,0x33,0x33,0x12,0x39,0x2f,0xed,0x10,0xed,0x32,0x01,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f, -0x5d,0x33,0x33,0xed,0x32,0x2f,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x2b,0x2b,0x13,0x34,0x3e,0x02,0x3f,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x3e,0x03,0x33,0x32,0x16,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x0e,0x01,0x23,0x22,0x26,0x27,0x23,0x0e,0x01,0x23,0x22,0x26,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x3d,0x01, -0x07,0x0e,0x03,0xce,0x3a,0x63,0x82,0x47,0xbf,0x5e,0x56,0x54,0x5c,0x0b,0x95,0x08,0x30,0x54,0x79,0x4f,0x99,0xa6,0x1f,0x2b,0x0c,0x1c,0x09,0x17,0x38,0x17,0x52,0x4b,0x03,0x04,0x2b,0x92,0x66,0x79,0x89,0x93,0x12,0x26,0x39,0x27,0x3b,0x5c,0x41,0x22,0x9a,0x32,0x5a,0x44,0x28,0x03,0x66,0x45,0x5c,0x38,0x18,0x01,0x04,0x2b,0x5d,0x59, -0x44,0x4d,0x0a,0x2f,0x52,0x3e,0x23,0x86,0x85,0xfe,0xdd,0x3a,0x3c,0x05,0x03,0x5e,0x06,0x07,0x55,0x4b,0x4d,0x59,0x72,0x7d,0x1c,0x32,0x26,0x16,0x2d,0x44,0x51,0x25,0x33,0x04,0x01,0x0d,0x1e,0x35,0x00,0x00,0x00,0x02,0x00,0x7f,0x00,0x8d,0x04,0x60,0x03,0xac,0x00,0x08,0x00,0x11,0x00,0x50,0x40,0x2b,0x00,0xeb,0x08,0x03,0xeb,0x04, -0xec,0x06,0xeb,0x01,0x01,0x13,0x0a,0x09,0xeb,0x11,0x0c,0xeb,0x0d,0xec,0x0f,0xeb,0x00,0x0a,0x01,0x0a,0x0b,0x02,0x0a,0x01,0x0c,0x09,0x00,0x01,0x02,0x0f,0x03,0x06,0x06,0x03,0xef,0x00,0xee,0x00,0x3f,0xe4,0x39,0x3d,0x2f,0x17,0x33,0x11,0x33,0x32,0x11,0x33,0x11,0x33,0x01,0x18,0x2f,0x5d,0xed,0xfd,0xed,0xd4,0xed,0x11,0x12,0x39, -0x2f,0xed,0xfd,0xed,0xd4,0xed,0x31,0x30,0x25,0x01,0x35,0x01,0x33,0x15,0x09,0x01,0x15,0x21,0x01,0x35,0x01,0x33,0x15,0x09,0x01,0x15,0x03,0xac,0xfe,0xae,0x01,0x52,0xb2,0xfe,0xae,0x01,0x54,0xfd,0x6f,0xfe,0xb0,0x01,0x50,0xb1,0xfe,0xb1,0x01,0x51,0x8d,0x01,0x6d,0x3f,0x01,0x73,0x1f,0xfe,0x8c,0xfe,0x91,0x1d,0x01,0x6d,0x3f,0x01, -0x73,0x1f,0xfe,0x8c,0xfe,0x91,0x1d,0x00,0x00,0x01,0x00,0x74,0x00,0xb4,0x04,0x57,0x02,0xf2,0x00,0x05,0x00,0x21,0x40,0x12,0x00,0xaa,0x05,0x07,0x00,0x02,0x10,0x02,0x02,0x02,0x3f,0x00,0x01,0x00,0x02,0xad,0x03,0xb3,0x00,0x3f,0xfd,0xc6,0x5d,0x01,0x2f,0x5d,0x10,0xde,0xed,0x31,0x30,0x25,0x11,0x21,0x35,0x21,0x11,0x03,0xc6,0xfc, -0xae,0x03,0xe3,0xb4,0x01,0xac,0x92,0xfd,0xc2,0x00,0x00,0x00,0x00,0x04,0x00,0x1f,0x00,0x26,0x04,0xad,0x05,0xcc,0x00,0x13,0x00,0x27,0x00,0x35,0x00,0x3e,0x00,0xec,0x40,0x29,0x7b,0x26,0x8b,0x26,0x02,0x74,0x20,0x84,0x20,0x02,0x76,0x25,0x86,0x25,0x02,0x76,0x21,0x86,0x21,0x02,0x74,0x1c,0x84,0x1c,0x02,0x7b,0x16,0x8b,0x16,0x02, -0x79,0x1b,0x89,0x1b,0x02,0x79,0x17,0x89,0x17,0x02,0x2f,0xb8,0xff,0xd8,0x40,0x15,0x0b,0x11,0x48,0x33,0x28,0x09,0x0c,0x48,0x03,0x26,0x13,0x26,0x02,0x03,0x20,0x13,0x20,0x02,0x34,0x29,0x29,0xb8,0xff,0xf0,0x40,0x26,0x29,0x31,0x3b,0x2b,0xc4,0x2c,0x28,0x35,0x10,0x35,0x35,0x31,0xc4,0x36,0x70,0x36,0x80,0x36,0x02,0x2c,0x36,0x2c, -0x36,0x0a,0x14,0x10,0x0d,0x11,0x48,0x14,0xc3,0x10,0x00,0x01,0x00,0x00,0x40,0x1e,0xb8,0xff,0xf0,0x40,0x32,0x0d,0x11,0x48,0x1e,0xc3,0x0a,0x28,0x2c,0x34,0x2a,0xc8,0x3b,0x3a,0xc8,0x2d,0x00,0x2d,0x10,0x2d,0x02,0x2c,0x3b,0x2d,0x2d,0x3b,0x2c,0x03,0x23,0x69,0x19,0x79,0x19,0x89,0x19,0x03,0x19,0xc8,0x0f,0x00,0x66,0x23,0x76,0x23, -0x86,0x23,0x03,0x23,0xc8,0x05,0xd0,0x00,0x3f,0xed,0x5d,0x3f,0xed,0x5d,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xed,0x32,0x11,0x33,0x01,0x2f,0xed,0x2b,0x11,0x33,0x2f,0x5d,0xed,0x2b,0x11,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x32,0x2f,0x38,0x33,0x10,0xed,0x32,0x11,0x39,0x38,0x11,0x33,0x31,0x30,0x00,0x5d,0x5d,0x2b, -0x2b,0x5d,0x5d,0x01,0x5d,0x5d,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x01,0x14,0x02,0x0e,0x01,0x23,0x22,0x2e,0x01,0x02,0x35,0x34,0x12,0x3e,0x01,0x33,0x32,0x1e,0x01,0x12,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x05,0x03,0x23,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x13,0x03,0x34, -0x26,0x2b,0x01,0x11,0x33,0x32,0x36,0x04,0xad,0x5b,0x9e,0xd5,0x79,0x78,0xd4,0x9f,0x5c,0x5c,0x9e,0xd4,0x79,0x79,0xd5,0x9e,0x5b,0x5c,0x4d,0x86,0xb2,0x66,0x65,0xb2,0x84,0x4d,0x4d,0x84,0xb2,0x65,0x66,0xb2,0x86,0x4d,0xfe,0xde,0xc7,0xa1,0x7f,0x01,0x33,0x8e,0x97,0x68,0x55,0xdd,0x9f,0x5f,0x51,0xaa,0xb6,0x50,0x54,0x02,0xf9,0xbb, -0xfe,0xef,0xb2,0x55,0x55,0xb2,0x01,0x11,0xbb,0xbb,0x01,0x11,0xb1,0x56,0x56,0xb1,0xfe,0xef,0xbb,0xa7,0xee,0x98,0x47,0x47,0x98,0xee,0xa7,0xa8,0xef,0x98,0x46,0x46,0x98,0xef,0xfa,0x01,0x50,0xfe,0xb0,0x03,0x3f,0x7e,0x6f,0x66,0x7b,0x13,0xfe,0xa2,0x02,0x50,0x45,0x48,0xfe,0xd3,0x55,0x00,0xff,0xff,0xff,0xfb,0x05,0xf2,0x04,0xd1, -0x06,0x52,0x12,0x07,0x00,0x42,0x00,0x00,0x06,0xce,0x00,0x00,0x00,0x02,0x01,0x47,0x03,0x20,0x03,0x85,0x05,0x5a,0x00,0x13,0x00,0x27,0x00,0x4a,0xb9,0x00,0x11,0xff,0xe8,0xb3,0x09,0x0c,0x48,0x0d,0xb8,0xff,0xe8,0x40,0x26,0x09,0x0c,0x48,0x07,0x18,0x09,0x0c,0x48,0x03,0x18,0x09,0x0c,0x48,0x14,0xac,0x00,0x00,0x1e,0xac,0x00,0x0a, -0x10,0x0a,0x80,0x0a,0x03,0x0a,0x23,0xaf,0x00,0x05,0x01,0x05,0x05,0x19,0xaf,0x0f,0x04,0x00,0x3f,0xed,0x33,0x2f,0x5d,0xed,0x01,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x2b,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14, -0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0x85,0x2d,0x4e,0x69,0x3b,0x3b,0x68,0x4e,0x2e,0x2e,0x4e,0x68,0x3b,0x3b,0x69,0x4e,0x2d,0x6d,0x1b,0x30,0x41,0x26,0x25,0x41,0x30,0x1c,0x1c,0x30,0x41,0x25,0x26,0x41,0x30,0x1b,0x04,0x3d,0x3b,0x68,0x4d,0x2d,0x2d,0x4d,0x68,0x3b,0x3c,0x68,0x4d,0x2c,0x2c,0x4d,0x68,0x3c,0x26,0x41,0x31,0x1c,0x1c, -0x31,0x41,0x26,0x25,0x41,0x31,0x1d,0x1d,0x31,0x41,0x00,0x00,0x00,0x02,0x00,0x74,0x00,0x00,0x04,0x57,0x04,0xc3,0x00,0x0b,0x00,0x0f,0x00,0x6a,0x40,0x37,0x0f,0x0c,0x04,0x0b,0x0e,0x01,0x04,0x02,0x0e,0x04,0x09,0x01,0xaa,0x06,0x00,0x02,0x01,0x0a,0x03,0x02,0x02,0x10,0x11,0x0d,0xad,0x40,0x0c,0x02,0x0e,0x04,0x07,0x05,0x0e,0x2f, -0x07,0x3f,0x07,0x8f,0x07,0x03,0x8f,0x07,0x9f,0x07,0xdf,0x07,0xef,0x07,0x04,0x07,0x00,0x04,0xad,0x09,0x05,0xb8,0xff,0xc0,0xb3,0x13,0x16,0x48,0x05,0x00,0x2f,0x2b,0x33,0xed,0x32,0xc6,0x5d,0x71,0x2b,0x00,0x18,0x10,0x4d,0xe6,0x2f,0x1a,0xed,0x11,0x12,0x01,0x39,0x2f,0x5f,0x5e,0x5d,0x33,0xed,0x32,0xc6,0x2b,0x01,0x18,0x10,0x4d, -0xe6,0x11,0x33,0x32,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x01,0x35,0x21,0x15,0x02,0xaf,0x93,0xfe,0x58,0x01,0xa8,0x93,0x01,0xa8,0xfc,0x1d,0x03,0xe3,0x02,0xa8,0xfe,0x75,0x01,0x8b,0x91,0x01,0x8a,0xfe,0x76,0x91,0xfd,0x58,0x91,0x91,0x00,0x01,0x01,0x38,0x02,0x33,0x03,0x94,0x05,0x8d,0x00,0x20, -0x00,0x53,0xb5,0x5a,0x02,0x6a,0x02,0x02,0x15,0xb8,0xff,0xd8,0x40,0x28,0x09,0x0e,0x48,0x1f,0x1f,0x17,0xe1,0x6f,0x08,0x8f,0x08,0x02,0x08,0x08,0x00,0x22,0x0e,0xe0,0x0f,0x0f,0x00,0x1e,0x1e,0x00,0x00,0x10,0x00,0x02,0x00,0x0e,0x0e,0x0b,0xe4,0x14,0xde,0x01,0x1e,0xe4,0x00,0xdd,0x00,0x3f,0xed,0x32,0x3f,0xed,0x33,0x2f,0x01,0x2f, -0x5d,0x33,0x2f,0x11,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x31,0x30,0x00,0x2b,0x01,0x5d,0x01,0x27,0x3e,0x05,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x3e,0x03,0x33,0x32,0x16,0x15,0x14,0x0e,0x04,0x07,0x21,0x17,0x01,0x3a,0x02,0x1b,0x58,0x64,0x67,0x52,0x34,0x47,0x4a,0x44,0x58,0x08,0x85,0x06,0x2e,0x4c,0x6c, -0x43,0x83,0x91,0x36,0x55,0x67,0x63,0x53,0x16,0x01,0xcb,0x02,0x02,0x33,0x67,0x3d,0x5f,0x50,0x47,0x49,0x52,0x32,0x3e,0x4b,0x49,0x44,0x08,0x33,0x57,0x40,0x25,0x7f,0x70,0x3d,0x62,0x52,0x49,0x49,0x4e,0x2f,0x6b,0x00,0x00,0x00,0x00,0x01,0x01,0x32,0x02,0x27,0x03,0x99,0x05,0x8d,0x00,0x35,0x00,0x7b,0xb9,0x00,0x2a,0xff,0xe8,0x40, -0x20,0x09,0x0f,0x48,0x02,0x28,0x09,0x0c,0x48,0x30,0x2d,0x16,0x22,0xe1,0x23,0x23,0x08,0x2d,0xe1,0x1c,0x4f,0x16,0x5f,0x16,0x02,0x16,0x1c,0x16,0x1c,0x08,0x00,0xe1,0x0f,0xb8,0xff,0xc0,0x40,0x22,0x09,0x0c,0x48,0x0f,0x0f,0x37,0x09,0xe1,0x00,0x08,0x10,0x08,0x02,0x08,0x30,0x15,0xe4,0x16,0x16,0x0c,0x28,0x22,0x22,0x1f,0xe4,0x28, -0xde,0x0c,0xe4,0x03,0x09,0x09,0x03,0xdf,0x00,0x3f,0x33,0x2f,0x10,0xed,0x3f,0xed,0x33,0x2f,0x11,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x2b,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x11,0x33,0x2f,0xed,0x11,0x12,0x39,0x31,0x30,0x00,0x2b,0x2b,0x01,0x14,0x06,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x01, -0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x2b,0x01,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x03,0x99,0x9b,0x8e,0x57,0x74,0x49,0x24,0x06,0x88,0x09,0x58,0x55,0x4d,0x53,0x25,0x38,0x43,0x1d,0x3d,0x39,0x1d,0x3d,0x32,0x20,0x4a,0x47,0x44,0x54, -0x06,0x87,0x07,0x32,0x4f,0x67,0x3a,0x45,0x68,0x46,0x23,0x56,0x5a,0x34,0x4b,0x30,0x16,0x03,0x1b,0x74,0x80,0x27,0x40,0x51,0x2b,0x0d,0x43,0x45,0x48,0x4c,0x2d,0x36,0x1d,0x09,0x6d,0x0d,0x1f,0x35,0x28,0x3c,0x45,0x46,0x41,0x0c,0x3a,0x56,0x39,0x1c,0x21,0x3b,0x4f,0x2e,0x4b,0x6e,0x14,0x02,0x05,0x25,0x36,0x44,0x00,0x01,0x01,0x92, -0x04,0xb1,0x03,0x3a,0x05,0xb4,0x00,0x05,0x00,0x1a,0x40,0x0e,0x7b,0x02,0x8b,0x02,0x02,0x80,0x03,0x01,0x03,0x00,0x02,0x8c,0x05,0x93,0x00,0x3f,0xed,0x01,0x2f,0xcd,0x5d,0x31,0x30,0x5d,0x01,0x35,0x37,0x33,0x15,0x05,0x01,0x92,0xe3,0xc5,0xfe,0xd4,0x04,0xb1,0x14,0xef,0x1d,0xe6,0x00,0x00,0x00,0x01,0x00,0x90,0xfe,0x77,0x04,0x3c, -0x04,0x3a,0x00,0x27,0x00,0x68,0x40,0x18,0x0b,0x10,0x0f,0x12,0x48,0x39,0x07,0x01,0x22,0x46,0x05,0x10,0x1f,0x20,0x1f,0x02,0x60,0x1f,0xc0,0x1f,0xd0,0x1f,0x03,0x1f,0xb8,0xff,0xc0,0x40,0x2a,0x24,0x53,0x48,0x1f,0x1f,0x29,0x15,0x0d,0x11,0x46,0x12,0x40,0x27,0x53,0x48,0x12,0x40,0x1c,0x23,0x48,0x12,0x40,0x12,0x15,0x48,0x00,0x12, -0x01,0x12,0x20,0x13,0x0f,0x12,0x1b,0x1a,0x50,0x0c,0x05,0x09,0x16,0x00,0x15,0x00,0x3f,0x3f,0x33,0x33,0xed,0x3f,0x3f,0x33,0x01,0x2f,0x5d,0x2b,0x2b,0x2b,0xed,0x32,0x32,0x12,0x39,0x2f,0x2b,0x5d,0x71,0x33,0xed,0x31,0x30,0x00,0x5d,0x2b,0x21,0x2e,0x03,0x35,0x23,0x0e,0x01,0x23,0x22,0x26,0x27,0x23,0x1e,0x01,0x15,0x11,0x23,0x11, -0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x17,0x03,0x94,0x01,0x03,0x03,0x03,0x04,0x35,0xa7,0x72,0x52,0x80,0x20,0x04,0x03,0x01,0xb6,0xb6,0x1b,0x3f,0x65,0x49,0x43,0x70,0x52,0x2e,0xb5,0x01,0x02,0x02,0x01,0x06,0x31,0x3e,0x3f,0x13,0x6d,0x6e,0x40,0x3a,0x20,0x3f,0x1b,0xfe,0x8b,0x05,0xc3, -0xfd,0x7c,0x45,0x74,0x55,0x2f,0x34,0x5b,0x7e,0x4b,0x02,0x69,0xfc,0xaf,0x22,0x4c,0x43,0x31,0x07,0x00,0x00,0x01,0x00,0x7f,0xfe,0xbc,0x04,0x38,0x05,0x45,0x00,0x13,0x00,0x41,0x40,0x18,0x05,0x9a,0x00,0x06,0x01,0x06,0x06,0x0c,0x02,0x13,0x13,0x01,0x9a,0x02,0x02,0x15,0x00,0x0c,0x10,0x0c,0x02,0x0c,0x04,0x13,0xb8,0x01,0x10,0xb7, -0x12,0x07,0x07,0x01,0x12,0x03,0x06,0x01,0x00,0x2f,0x33,0x3f,0x12,0x39,0x2f,0x10,0xed,0x32,0x01,0x2f,0x5d,0x12,0x39,0x2f,0xed,0x32,0x2f,0x11,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x21,0x15,0x03,0xb7,0x84,0xc5,0x85,0x50,0x85,0x60,0x35,0x32,0x5f, -0x8a,0x57,0x02,0x47,0x04,0xcb,0xf9,0xf1,0x06,0x0f,0xf9,0xf1,0x03,0xbe,0x2d,0x58,0x86,0x58,0x54,0x85,0x5d,0x32,0x7a,0x00,0xff,0xff,0x01,0xf0,0x01,0xa4,0x02,0xdb,0x02,0xcf,0x12,0x06,0x02,0x3a,0x00,0x00,0x00,0x01,0x00,0x77,0xfe,0x44,0x01,0xe3,0x00,0x00,0x00,0x1b,0x00,0x52,0xb9,0x00,0x1a,0xff,0xe8,0x40,0x2f,0x0f,0x13,0x48, -0x44,0x1a,0x54,0x1a,0x02,0x03,0x18,0x0d,0x13,0x48,0x18,0x19,0x19,0x17,0x16,0x40,0x09,0x0c,0x48,0x16,0x16,0x08,0x10,0x87,0x00,0x00,0x00,0x08,0x01,0x08,0x13,0x92,0x19,0x40,0x0d,0x10,0x48,0x19,0x19,0x17,0x0b,0x8d,0x05,0x95,0x00,0x3f,0xed,0x2f,0x39,0x2f,0x2b,0xed,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x11,0x39,0x2f,0x2b,0x33,0x33, -0x11,0x33,0x31,0x30,0x00,0x2b,0x5d,0x2b,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x2a,0x01,0x07,0x37,0x33,0x07,0x1e,0x01,0x01,0xe3,0x1e,0x41,0x68,0x4b,0x14,0x2d,0x19,0x32,0x24,0x29,0x39,0x22,0x0f,0x3d,0x48,0x0e,0x1d,0x0e,0x41,0x6b,0x27,0x5e,0x5e,0xfe,0xfe,0x2a,0x45,0x31, -0x1a,0x01,0x03,0x62,0x06,0x0d,0x16,0x20,0x13,0x28,0x2a,0x02,0xb6,0x64,0x03,0x53,0x00,0x01,0x01,0x1d,0x02,0x33,0x03,0x9b,0x05,0x82,0x00,0x12,0x00,0x3f,0x40,0x22,0x3f,0x11,0x01,0x11,0x11,0x10,0xe0,0x02,0x08,0x08,0x01,0x01,0x0e,0x00,0x02,0x10,0x02,0x02,0x02,0x02,0x13,0x14,0x08,0xe4,0x09,0x09,0x03,0x0e,0xdc,0x10,0x01,0xe4, -0x00,0xdd,0x00,0x3f,0xed,0x32,0x3f,0x33,0x33,0x2f,0xed,0x11,0x12,0x01,0x39,0x2f,0x5d,0x33,0x33,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x5d,0x31,0x30,0x01,0x35,0x21,0x11,0x0e,0x03,0x23,0x35,0x32,0x3e,0x02,0x37,0x33,0x11,0x33,0x15,0x01,0x23,0x01,0x09,0x0d,0x37,0x4a,0x56,0x2b,0x30,0x57,0x49,0x38,0x11,0x79,0xec,0x02,0x33,0x6b, -0x02,0x62,0x1a,0x2a,0x1e,0x11,0x6d,0x12,0x23,0x32,0x21,0xfd,0x1c,0x6b,0x00,0x00,0x00,0x02,0x00,0xe2,0x02,0x8b,0x03,0xea,0x05,0x98,0x00,0x13,0x00,0x21,0x00,0x52,0x40,0x30,0x7a,0x19,0x8a,0x19,0x02,0x7a,0x15,0x8a,0x15,0x02,0x75,0x21,0x85,0x21,0x02,0x75,0x1c,0x85,0x1c,0x02,0x00,0xe3,0x90,0x14,0xa0,0x14,0xc0,0x14,0x03,0x14, -0x14,0x23,0x1a,0xe3,0x6f,0x0a,0x01,0x00,0x0a,0x10,0x0a,0x50,0x0a,0x03,0x0a,0x17,0xe4,0x0f,0xb8,0x01,0x15,0xb2,0x1f,0xe4,0x05,0xb8,0x01,0x16,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x5d,0x71,0xed,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32, -0x1e,0x02,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x03,0xea,0x31,0x62,0x92,0x62,0x5d,0x90,0x61,0x33,0x30,0x61,0x92,0x62,0x67,0x93,0x5d,0x2c,0x95,0x78,0x72,0x74,0x7d,0x22,0x3d,0x55,0x33,0x75,0x7f,0x04,0x12,0x57,0x8f,0x68,0x39,0x39,0x68,0x8f,0x57,0x54,0x8f,0x68,0x3b,0x3a,0x68,0x8f,0x55,0x97,0x86, -0x88,0x95,0x4c,0x6d,0x45,0x20,0x85,0x00,0x00,0x02,0x00,0x6b,0x00,0x8d,0x04,0x4c,0x03,0xac,0x00,0x08,0x00,0x11,0x00,0x50,0x40,0x2a,0x03,0xeb,0x08,0xec,0x01,0x06,0xeb,0x05,0x00,0xeb,0x01,0x01,0x13,0x0a,0x0c,0xeb,0x10,0xec,0x0a,0x0f,0xeb,0x0e,0x09,0xeb,0x0a,0x11,0x08,0x10,0x07,0x0f,0x09,0x00,0x07,0x08,0x0c,0x03,0x03,0x03, -0x06,0xef,0x00,0xee,0x00,0x3f,0xe4,0x39,0x3d,0x2f,0x17,0x33,0x11,0x33,0x32,0x11,0x33,0x11,0x33,0x01,0x18,0x2f,0xed,0xd4,0xed,0x10,0xfd,0xed,0x11,0x12,0x39,0x2f,0xed,0xd4,0xed,0x10,0xfd,0xed,0x31,0x30,0x25,0x23,0x35,0x09,0x01,0x35,0x33,0x01,0x15,0x01,0x23,0x35,0x09,0x01,0x35,0x33,0x01,0x15,0x02,0xfa,0xb2,0x01,0x52,0xfe, -0xb0,0xb0,0x01,0x52,0xfc,0xd3,0xb4,0x01,0x52,0xfe,0xb0,0xb2,0x01,0x4f,0x8d,0x1d,0x01,0x6f,0x01,0x74,0x1f,0xfe,0x8d,0x3f,0xfe,0x93,0x1d,0x01,0x6f,0x01,0x74,0x1f,0xfe,0x8d,0x3f,0x00,0xff,0xff,0x00,0x1b,0x00,0x00,0x04,0xcd,0x05,0x45,0x10,0x27,0x02,0x9a,0xfe,0xf6,0x00,0x00,0x10,0x26,0x02,0x1e,0x00,0x00,0x11,0x07,0x02,0x9d, -0x01,0x98,0xfd,0xb6,0x00,0x28,0x40,0x17,0x03,0x02,0x18,0x18,0x03,0x02,0x50,0x19,0x01,0x40,0x19,0x01,0x19,0x01,0x60,0x14,0x01,0x14,0x00,0x20,0x00,0x01,0x00,0x11,0x5d,0x35,0x11,0x5d,0x35,0x11,0x5d,0x5d,0x35,0x35,0x00,0x3f,0x35,0x35,0x00,0x00,0xff,0xff,0x00,0x11,0x00,0x00,0x04,0xb0,0x05,0x45,0x10,0x27,0x02,0x9a,0xfe,0xec, -0x00,0x00,0x10,0x26,0x02,0x1e,0xf0,0x00,0x11,0x07,0x02,0x9b,0x01,0xac,0xfd,0xb4,0x00,0x18,0x40,0x0d,0x02,0x17,0x18,0x01,0x60,0x14,0x01,0x14,0x00,0x20,0x00,0x01,0x00,0x11,0x5d,0x35,0x11,0x5d,0x35,0x00,0x3f,0x35,0x00,0x00,0xff,0xff,0x00,0x0b,0x00,0x00,0x04,0xcd,0x05,0x51,0x10,0x27,0x02,0x9c,0xff,0x21,0x00,0x00,0x10,0x26, -0x02,0x1e,0x19,0x00,0x11,0x07,0x02,0x9d,0x01,0x98,0xfd,0xb6,0x00,0x20,0x40,0x12,0x03,0x02,0x35,0x18,0x03,0x02,0x50,0x3a,0x01,0x40,0x3a,0x01,0x3a,0x00,0x40,0x00,0x01,0x00,0x11,0x5d,0x35,0x11,0x5d,0x5d,0x35,0x35,0x00,0x3f,0x35,0x35,0x00,0x00,0x00,0x02,0x00,0x99,0xfe,0xdf,0x04,0x6c,0x04,0x39,0x00,0x27,0x00,0x2b,0x00,0x77, -0x40,0x36,0x66,0x06,0x76,0x06,0x86,0x06,0x03,0x66,0x04,0x76,0x04,0x86,0x04,0x03,0x45,0x1b,0x55,0x1b,0x02,0x69,0x00,0x79,0x00,0x89,0x00,0x03,0x0a,0x09,0x28,0x98,0x2b,0x2b,0x00,0x1e,0x98,0x00,0x1d,0x70,0x1d,0x80,0x1d,0x03,0x1d,0x1d,0x2d,0x13,0x98,0x00,0x00,0x10,0x00,0x02,0x00,0x09,0xb8,0xff,0xc0,0x40,0x15,0x0f,0x13,0x48, -0x09,0x09,0x23,0x2a,0x9d,0x2b,0x69,0x23,0x79,0x23,0x89,0x23,0x03,0x1d,0x1d,0x18,0x9e,0x23,0xb8,0x01,0x0e,0x00,0x3f,0xed,0x33,0x2f,0x5d,0x2f,0xed,0x11,0x39,0x2f,0x2b,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0xed,0x33,0x32,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x37,0x34,0x3e,0x06,0x37,0x33,0x0e,0x07,0x15, -0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x23,0x22,0x2e,0x02,0x01,0x15,0x23,0x35,0x99,0x25,0x3e,0x4f,0x52,0x4f,0x3f,0x27,0x01,0xaf,0x02,0x27,0x3e,0x4e,0x50,0x4d,0x3c,0x25,0x29,0x4d,0x6d,0x44,0x44,0x6f,0x52,0x32,0x07,0xb8,0x0c,0x4a,0x7e,0xaf,0x71,0x6c,0xb1,0x7e,0x44,0x02,0x71,0xc3,0x4f,0x45,0x68,0x52,0x42, -0x3b,0x3b,0x44,0x53,0x37,0x43,0x66,0x51,0x41,0x3b,0x3b,0x44,0x53,0x35,0x37,0x54,0x39,0x1e,0x26,0x47,0x65,0x3e,0x0c,0x5a,0x97,0x6c,0x3d,0x30,0x5d,0x89,0x04,0x44,0xc9,0xc9,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xcc,0x06,0xa7,0x12,0x26,0x00,0x24,0x00,0x00,0x11,0x07,0x00,0x43,0xff,0xa3,0x00,0xf3,0x00,0x15,0xb4,0x02, -0x15,0x05,0x26,0x02,0xb8,0xff,0xa3,0xb4,0x16,0x19,0x04,0x07,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xcc,0x06,0xa8,0x12,0x26,0x00,0x24,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x5d,0x00,0xf4,0x00,0x13,0x40,0x0b,0x02,0x15,0x05,0x26,0x02,0x5d,0x15,0x18,0x04,0x07,0x25,0x01,0x2b,0x35,0x00,0x2b, -0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xcc,0x06,0xa8,0x12,0x26,0x00,0x24,0x00,0x00,0x11,0x07,0x01,0x4b,0x00,0x00,0x00,0xf4,0x00,0x13,0x40,0x0b,0x02,0x16,0x05,0x26,0x02,0x00,0x1b,0x15,0x04,0x07,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xcc,0x06,0x9d,0x12,0x26, -0x00,0x24,0x00,0x00,0x11,0x07,0x01,0x52,0x00,0x00,0x00,0xf4,0x00,0x13,0x40,0x0b,0x02,0x15,0x05,0x26,0x02,0x00,0x20,0x30,0x04,0x07,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xcc,0x06,0x5d,0x12,0x26,0x00,0x24,0x00,0x00,0x11,0x07,0x00,0x69,0x00,0x00,0x00,0xe2,0x00,0x17,0x40,0x0d, -0x03,0x02,0x15,0x05,0x26,0x03,0x02,0x00,0x19,0x17,0x04,0x07,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xcc,0x06,0x60,0x12,0x26,0x00,0x24,0x00,0x00,0x11,0x06,0x01,0x50,0x03,0x55,0x00,0x16,0x40,0x0c,0x03,0x02,0x38,0x03,0x03,0x02,0x03,0x1f,0x15,0x04,0x07,0x25,0x01,0x2b, -0x35,0x35,0x00,0x3f,0x35,0x35,0x00,0x00,0x00,0x02,0x00,0x01,0x00,0x00,0x04,0xab,0x05,0x45,0x00,0x0f,0x00,0x18,0x00,0x85,0x40,0x51,0x0b,0x04,0x2b,0x04,0x9b,0x04,0x03,0x17,0x01,0x02,0x04,0x01,0x52,0x02,0x11,0x02,0x5e,0x03,0x04,0x14,0x03,0x04,0x02,0x03,0x09,0x05,0x09,0x05,0x0d,0x08,0x0c,0x5c,0x18,0x0f,0x0f,0x03,0x0d,0x0d, -0x1a,0x03,0x01,0x5f,0x17,0x0b,0x5f,0x08,0x0f,0x08,0x3f,0x08,0x7f,0x08,0x8f,0x08,0x04,0x6f,0x08,0x8f,0x08,0x9f,0x08,0xbf,0x08,0xdf,0x08,0x05,0x17,0x08,0x17,0x08,0x0c,0x11,0x07,0x5f,0x04,0x03,0x0c,0x5f,0x03,0x0f,0x12,0x00,0x3f,0x33,0xed,0x3f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x71,0x72,0x10,0xed,0x10,0xed,0x01,0x2f,0x12, -0x39,0x2f,0x12,0x39,0x2f,0x33,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0x00,0xc1,0x87,0x05,0x2b,0x87,0x2b,0xc4,0x10,0xc0,0xc0,0x31,0x30,0x01,0x5d,0x01,0x21,0x03,0x23,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x0e,0x03,0x07,0x03,0x21,0x02,0x86,0xfe,0xb1,0x8e,0xa8,0x01,0xe6,0x02,0x9b,0xfe,0xaf, -0x01,0x47,0xfe,0xb9,0x01,0x7a,0xfd,0xdb,0x49,0x04,0x14,0x15,0x15,0x06,0x8b,0x01,0x1c,0x01,0x9c,0xfe,0x64,0x05,0x45,0x98,0xfe,0x52,0x96,0xfe,0x2f,0x98,0x04,0xb2,0x10,0x42,0x48,0x44,0x12,0xfe,0x6f,0x00,0xff,0xff,0x00,0x71,0xfe,0x44,0x04,0x76,0x05,0x5a,0x12,0x26,0x00,0x26,0x00,0x00,0x11,0x07,0x00,0x78,0x01,0x62,0x00,0x00, -0x00,0x0b,0xb6,0x01,0x1b,0x32,0x2a,0x15,0x0b,0x25,0x01,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x62,0x06,0xa8,0x12,0x26,0x00,0x28,0x00,0x00,0x11,0x07,0x00,0x43,0xff,0xb9,0x00,0xf4,0x00,0x15,0xb4,0x01,0x0c,0x05,0x26,0x01,0xb8,0xff,0x9d,0xb4,0x0d,0x10,0x00,0x0a,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00, -0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x62,0x06,0xa8,0x12,0x26,0x00,0x28,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x5b,0x00,0xf4,0x00,0x13,0x40,0x0b,0x01,0x0c,0x05,0x26,0x01,0x3f,0x0c,0x0f,0x00,0x0a,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x62,0x06,0xa8,0x12,0x26,0x00,0x28,0x00,0x00, -0x11,0x07,0x01,0x4b,0x00,0x00,0x00,0xf4,0x00,0x15,0xb4,0x01,0x0d,0x05,0x26,0x01,0xb8,0xff,0xe4,0xb4,0x12,0x0c,0x00,0x0a,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x62,0x06,0x5d,0x12,0x26,0x00,0x28,0x00,0x00,0x11,0x07,0x00,0x69,0x00,0x14,0x00,0xe2,0x00,0x19,0xb6,0x02,0x01,0x0c,0x05,0x26, -0x02,0x01,0xb8,0xff,0xf8,0xb4,0x10,0x0e,0x00,0x0a,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xca,0x00,0x00,0x04,0x01,0x06,0xa8,0x12,0x26,0x00,0x2c,0x00,0x00,0x11,0x07,0x00,0x43,0xff,0xaf,0x00,0xf4,0x00,0x15,0xb4,0x01,0x0c,0x05,0x26,0x01,0xb8,0xff,0xb0,0xb4,0x0d,0x10,0x00,0x01,0x25,0x01,0x2b,0x35, -0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xca,0x00,0x00,0x04,0x01,0x06,0xa8,0x12,0x26,0x00,0x2c,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x67,0x00,0xf4,0x00,0x13,0x40,0x0b,0x01,0x0c,0x05,0x26,0x01,0x67,0x0c,0x0f,0x00,0x01,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xca,0x00,0x00,0x04,0x01,0x06,0xa8,0x12,0x26, -0x00,0x2c,0x00,0x00,0x11,0x07,0x01,0x4b,0x00,0x00,0x00,0xf4,0x00,0x13,0x40,0x0b,0x01,0x0d,0x05,0x26,0x01,0x00,0x12,0x0c,0x00,0x01,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xca,0x00,0x00,0x04,0x01,0x06,0x5d,0x12,0x26,0x00,0x2c,0x00,0x00,0x11,0x07,0x00,0x69,0x00,0x00,0x00,0xe2,0x00,0x17,0x40,0x0d, -0x02,0x01,0x0c,0x05,0x26,0x02,0x01,0x00,0x10,0x0e,0x00,0x01,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0x00,0x02,0x00,0x1b,0x00,0x00,0x04,0x65,0x05,0x45,0x00,0x10,0x00,0x1f,0x00,0x8e,0x40,0x62,0x72,0x16,0x82,0x16,0x02,0x02,0x30,0x16,0x60,0x16,0x02,0x14,0x16,0x24,0x16,0x02,0x79,0x1a,0x89,0x1a,0x02,0x7f, -0x19,0x8f,0x19,0x02,0x1b,0x19,0x2b,0x19,0x3b,0x19,0x6b,0x19,0x04,0x11,0x11,0x06,0x00,0x5a,0x00,0x17,0x01,0x17,0x17,0x21,0x1e,0x13,0x5a,0x06,0x0a,0x06,0x08,0x08,0x00,0x06,0x10,0x06,0x02,0x06,0x12,0x08,0x5f,0x1e,0x1f,0x09,0x4f,0x09,0x02,0x3f,0x09,0x6f,0x09,0x9f,0x09,0xcf,0x09,0xdf,0x09,0xef,0x09,0x06,0x09,0x40,0x1f,0x28, -0x48,0x09,0x09,0x13,0x1d,0x5f,0x0b,0x03,0x13,0x5f,0x06,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x2b,0x5d,0x71,0x33,0xed,0x32,0x01,0x2f,0x5d,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x01,0x14,0x02,0x0e,0x01,0x23,0x21,0x11,0x23,0x35, -0x33,0x11,0x21,0x32,0x1e,0x02,0x01,0x21,0x11,0x33,0x32,0x12,0x11,0x34,0x2e,0x02,0x2b,0x01,0x11,0x21,0x04,0x65,0x50,0x98,0xdd,0x8c,0xfe,0x8e,0x87,0x87,0x01,0x37,0x9e,0xf3,0xa6,0x55,0xfe,0x1d,0xfe,0xdf,0xa2,0xd4,0xce,0x38,0x72,0xac,0x75,0x79,0x01,0x21,0x02,0xb0,0xa8,0xfe,0xff,0xae,0x59,0x02,0x55,0x95,0x02,0x5b,0x4d,0xa2, -0xfa,0xfe,0xf9,0xfe,0x47,0x01,0x0a,0x01,0x0a,0x87,0xc0,0x79,0x39,0xfe,0x41,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x2a,0x06,0x9e,0x12,0x26,0x00,0x31,0x00,0x00,0x11,0x07,0x01,0x52,0x00,0x00,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x14,0x05,0x26,0x01,0x00,0x1f,0x2f,0x08,0x12,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00, -0xff,0xff,0x00,0x66,0xff,0xec,0x04,0x66,0x06,0xa8,0x12,0x26,0x00,0x32,0x00,0x00,0x11,0x07,0x00,0x43,0xff,0xaa,0x00,0xf4,0x00,0x15,0xb4,0x02,0x1e,0x05,0x26,0x02,0xb8,0xff,0xaa,0xb4,0x1f,0x22,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x66,0xff,0xec,0x04,0x66,0x06,0xa8,0x12,0x26,0x00,0x32,0x00,0x00, -0x11,0x07,0x00,0x74,0x00,0x62,0x00,0xf4,0x00,0x13,0x40,0x0b,0x02,0x1e,0x05,0x26,0x02,0x62,0x1e,0x21,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x66,0xff,0xec,0x04,0x66,0x06,0xa8,0x12,0x26,0x00,0x32,0x00,0x00,0x11,0x07,0x01,0x4b,0x00,0x00,0x00,0xf4,0x00,0x13,0x40,0x0b,0x02,0x1f,0x05,0x26, -0x02,0x00,0x24,0x1e,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x66,0xff,0xec,0x04,0x66,0x06,0x9d,0x12,0x26,0x00,0x32,0x00,0x00,0x11,0x07,0x01,0x52,0x00,0x00,0x00,0xf4,0x00,0x13,0x40,0x0b,0x02,0x1e,0x05,0x26,0x02,0x00,0x29,0x39,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00, -0xff,0xff,0x00,0x66,0xff,0xec,0x04,0x66,0x06,0x5d,0x12,0x26,0x00,0x32,0x00,0x00,0x11,0x07,0x00,0x69,0x00,0x03,0x00,0xe2,0x00,0x17,0x40,0x0d,0x03,0x02,0x1e,0x05,0x26,0x03,0x02,0x02,0x22,0x20,0x0a,0x00,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0x00,0x01,0x00,0x9d,0x00,0xe1,0x04,0x2e,0x04,0x73,0x00,0x0b, -0x00,0x8e,0x40,0x1d,0xb9,0x02,0xc9,0x02,0xd9,0x02,0x03,0xb9,0x00,0xc9,0x00,0xd9,0x00,0x03,0xb6,0x08,0xc6,0x08,0xd6,0x08,0x03,0xb6,0x06,0xc6,0x06,0xd6,0x06,0x03,0x07,0xb8,0xff,0xf0,0x40,0x0e,0x12,0x16,0x48,0x01,0x10,0x12,0x16,0x48,0x0a,0x10,0x12,0x16,0x48,0x04,0xb8,0xff,0xf0,0xb3,0x12,0x16,0x48,0x05,0xb8,0xff,0xf0,0xb6, -0x12,0x16,0x48,0x19,0x05,0x01,0x03,0xb8,0xff,0xf0,0x40,0x26,0x12,0x16,0x48,0x19,0x03,0x01,0x09,0x10,0x12,0x16,0x48,0x16,0x09,0x01,0x0b,0x10,0x12,0x16,0x48,0x16,0x0b,0x01,0x04,0x80,0x0a,0x01,0x4f,0x0a,0x01,0x00,0x0a,0x10,0x0a,0x02,0x0a,0x07,0x01,0xb2,0x00,0x19,0x3f,0x33,0x01,0x2f,0x5d,0x5d,0x5d,0x33,0x31,0x30,0x00,0x5d, -0x2b,0x5d,0x2b,0x5d,0x2b,0x5d,0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x13,0x09,0x01,0x37,0x09,0x01,0x17,0x09,0x01,0x07,0x09,0x01,0x9d,0x01,0x62,0xfe,0xa0,0x68,0x01,0x5e,0x01,0x5e,0x69,0xfe,0xa2,0x01,0x60,0x66,0xfe,0x9f,0xfe,0x9c,0x01,0x4a,0x01,0x62,0x01,0x60,0x67,0xfe,0x9f,0x01,0x5f,0x69,0xfe,0xa4,0xfe,0xa0, -0x69,0x01,0x61,0xfe,0x9d,0x00,0x00,0x00,0x00,0x03,0x00,0x38,0xff,0xda,0x04,0x92,0x05,0x70,0x00,0x1a,0x00,0x22,0x00,0x2b,0x00,0xc5,0x40,0x8c,0x8b,0x1d,0x01,0x65,0x19,0x75,0x19,0x85,0x19,0x03,0x6a,0x0c,0x7a,0x0c,0x8a,0x0c,0x03,0x77,0x0b,0x01,0x67,0x25,0x87,0x25,0x02,0x46,0x14,0x56,0x14,0x02,0x46,0x11,0x56,0x11,0x02,0x49, -0x07,0x59,0x07,0x02,0x49,0x03,0x59,0x03,0x02,0x34,0x22,0x74,0x22,0x84,0x22,0x03,0x76,0x1f,0x86,0x1f,0x02,0x7b,0x1e,0x8b,0x1e,0x02,0x36,0x1e,0x01,0x74,0x26,0x01,0x39,0x26,0x01,0x3b,0x2b,0x7b,0x2b,0x8b,0x2b,0x03,0x1d,0x26,0x1e,0x25,0x04,0x23,0x1b,0x18,0x15,0x08,0x0b,0x04,0x0e,0x17,0x00,0x5b,0x5f,0x1b,0x01,0x1b,0x40,0x19, -0x1c,0x48,0x00,0x1b,0x01,0x1b,0x1b,0x2d,0x23,0x5b,0x0a,0x50,0x0e,0x01,0x10,0x0e,0x01,0x0e,0x1e,0x25,0x1d,0x26,0x04,0x20,0x29,0x5f,0x08,0x0b,0x18,0x15,0x04,0x05,0x16,0x13,0x04,0x20,0x5f,0x09,0x05,0x13,0x00,0x3f,0x33,0xed,0x3f,0x33,0x12,0x17,0x39,0xed,0x11,0x17,0x39,0x01,0x2f,0x5d,0x71,0x33,0xed,0x12,0x39,0x2f,0x5d,0x2b, -0x71,0xed,0x32,0x11,0x17,0x39,0x11,0x12,0x17,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x00,0x5d,0x01,0x14,0x02,0x0e,0x01,0x23,0x22,0x26,0x27,0x07,0x27,0x37,0x2e,0x01,0x35,0x34,0x12,0x3e,0x01,0x33,0x32,0x17,0x37,0x17,0x07,0x1e,0x01,0x07,0x34,0x27,0x01,0x16,0x33, -0x32,0x12,0x01,0x14,0x17,0x01,0x2e,0x01,0x23,0x22,0x02,0x04,0x66,0x46,0x84,0xbf,0x78,0x6f,0xac,0x3f,0x75,0x5e,0x8d,0x30,0x2f,0x44,0x82,0xbf,0x7c,0xd9,0x80,0x74,0x5e,0x8c,0x30,0x30,0xc9,0x1e,0xfe,0x00,0x4f,0x98,0xa3,0x94,0xfd,0x92,0x1e,0x02,0x00,0x27,0x74,0x4b,0x9c,0x9c,0x02,0xa9,0xad,0xfe,0xfa,0xb1,0x59,0x46,0x44,0x9c, -0x41,0xbd,0x58,0xe8,0x91,0xad,0x01,0x02,0xac,0x56,0x86,0x9c,0x41,0xbb,0x55,0xe4,0x92,0xa4,0x72,0xfd,0x52,0x8a,0x01,0x18,0x01,0x0a,0xa6,0x74,0x02,0xac,0x42,0x41,0xfe,0xf9,0x00,0x00,0xff,0xff,0x00,0x8e,0xff,0xec,0x04,0x3d,0x06,0xa8,0x12,0x26,0x00,0x38,0x00,0x00,0x11,0x07,0x00,0x43,0xff,0x9f,0x00,0xf4,0x00,0x15,0xb4,0x01, -0x1a,0x05,0x26,0x01,0xb8,0xff,0xa0,0xb4,0x1b,0x1e,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x8e,0xff,0xec,0x04,0x3d,0x06,0xa8,0x12,0x26,0x00,0x38,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x56,0x00,0xf4,0x00,0x13,0x40,0x0b,0x01,0x1a,0x05,0x26,0x01,0x56,0x1a,0x1d,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b, -0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x8e,0xff,0xec,0x04,0x3d,0x06,0xa8,0x12,0x26,0x00,0x38,0x00,0x00,0x11,0x07,0x01,0x4b,0x00,0x00,0x00,0xf4,0x00,0x13,0x40,0x0b,0x01,0x1b,0x05,0x26,0x01,0x00,0x20,0x1a,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x8e,0xff,0xec,0x04,0x3d,0x06,0x5d,0x12,0x26, -0x00,0x38,0x00,0x00,0x11,0x07,0x00,0x69,0x00,0x00,0x00,0xe2,0x00,0x17,0x40,0x0d,0x02,0x01,0x1a,0x05,0x26,0x02,0x01,0x00,0x1e,0x1c,0x0a,0x00,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x24,0x00,0x00,0x04,0xa8,0x06,0xa8,0x12,0x26,0x00,0x3c,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x65,0x00,0xf4, -0x00,0x13,0x40,0x0b,0x01,0x09,0x05,0x26,0x01,0x65,0x09,0x0c,0x04,0x08,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0x00,0x02,0x00,0xa2,0x00,0x00,0x04,0x5f,0x05,0x45,0x00,0x10,0x00,0x1b,0x00,0x63,0x40,0x42,0x76,0x0f,0x86,0x0f,0x02,0x65,0x1a,0x75,0x1a,0x85,0x1a,0x03,0x6a,0x12,0x7a,0x12,0x8a,0x12,0x03,0x00,0x5a,0x7f, -0x11,0x8f,0x11,0x02,0x11,0x40,0x19,0x1c,0x48,0x00,0x11,0x01,0x11,0x11,0x1d,0x16,0x0b,0x07,0x5a,0x00,0x08,0x10,0x08,0xa0,0x08,0xb0,0x08,0x04,0x08,0x16,0x60,0x06,0x15,0x60,0x0b,0x06,0x0b,0x06,0x0b,0x07,0x09,0x03,0x07,0x12,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0x5d,0xed,0x32,0x32,0x12,0x39, -0x2f,0x5d,0x2b,0x5d,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x21,0x15,0x23,0x11,0x33,0x15,0x21,0x32,0x1e,0x02,0x07,0x34,0x26,0x2b,0x01,0x11,0x33,0x32,0x3e,0x02,0x04,0x5f,0x3b,0x79,0xb6,0x7b,0xfe,0xe7,0xbf,0xbf,0x01,0x0d,0x7d,0xba,0x7c,0x3e,0xc0,0xa4,0xa4,0xf6,0xfe,0x52,0x79,0x4f,0x26,0x02,0xb4,0x58, -0x9f,0x78,0x47,0xfe,0x05,0x45,0xeb,0x3c,0x6f,0x9c,0x63,0x86,0x95,0xfd,0xc0,0x2c,0x4f,0x6b,0x00,0x00,0x00,0x01,0x00,0x8e,0xff,0xe3,0x04,0x8f,0x05,0xcc,0x00,0x43,0x00,0xbd,0x40,0x29,0x7c,0x3a,0x8c,0x3a,0x02,0x75,0x38,0x85,0x38,0x02,0x65,0x42,0x01,0x66,0x41,0x01,0x44,0x3f,0x54,0x3f,0x74,0x3f,0x84,0x3f,0x04,0x65,0x2f,0x01, -0x65,0x2e,0x75,0x2e,0x85,0x2e,0x03,0x03,0x28,0x09,0x0c,0x48,0x33,0xb8,0xff,0xe8,0x40,0x25,0x09,0x0c,0x48,0x39,0x1f,0x01,0x36,0x48,0x1f,0x26,0x3d,0x36,0x3d,0x02,0x3d,0x48,0x18,0x40,0x18,0x50,0x18,0x90,0x18,0xa0,0x18,0x04,0x1f,0x09,0x18,0x18,0x09,0x1f,0x03,0x2a,0x00,0x48,0x11,0xb8,0xff,0xc0,0xb3,0x12,0x17,0x48,0x11,0xb8, -0xff,0xc0,0x40,0x29,0x09,0x0e,0x48,0x11,0x11,0x45,0x2a,0x46,0x2b,0x40,0x12,0x15,0x48,0x00,0x2b,0x01,0x2b,0x11,0x3d,0x1f,0x03,0x05,0x24,0x50,0x31,0x00,0x2b,0x15,0x60,0x09,0x70,0x09,0x80,0x09,0x03,0x09,0x09,0x0e,0x50,0x05,0x16,0x00,0x3f,0xed,0x33,0x2f,0x5d,0x3f,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0x5d,0x2b,0xed,0x12,0x39, -0x2f,0x2b,0x2b,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x10,0xed,0x5d,0x10,0xed,0x5d,0x31,0x30,0x00,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x00,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x2f,0x01,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x04,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23, -0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x15,0x14,0x1e,0x04,0x04,0x8f,0x29,0x57,0x87,0x5f,0x50,0x94,0x37,0x02,0x1a,0x42,0x4a,0x4e,0x25,0x5c,0x62,0x36,0x51,0x5f,0x51,0x36,0x21,0x31,0x3a,0x31,0x21,0x21,0x3f,0x5a,0x39,0x44,0x6b,0x49,0x27,0xb4,0x3f,0x78,0xae,0x6e,0x66,0x9b,0x69,0x35,0x21,0x33,0x3a,0x33, -0x21,0x37,0x52,0x5f,0x52,0x37,0x01,0x27,0x42,0x76,0x58,0x34,0x19,0x18,0xa4,0x0f,0x1a,0x12,0x0a,0x5f,0x4f,0x3b,0x52,0x3f,0x39,0x47,0x5e,0x46,0x33,0x49,0x3a,0x30,0x34,0x3f,0x2b,0x25,0x3e,0x2d,0x1a,0x23,0x4d,0x7a,0x58,0xfc,0x03,0x04,0x03,0x77,0xac,0x70,0x36,0x2e,0x50,0x6d,0x3e,0x3b,0x57,0x43,0x34,0x31,0x32,0x20,0x28,0x3d, -0x3a,0x40,0x54,0x6f,0xff,0xff,0x00,0x80,0xff,0xec,0x04,0x88,0x05,0xb4,0x12,0x26,0x00,0x44,0x00,0x00,0x11,0x06,0x00,0x43,0x8e,0x00,0x00,0x15,0xb4,0x02,0x42,0x11,0x26,0x02,0xb8,0xff,0x70,0xb4,0x43,0x46,0x15,0x03,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x80,0xff,0xec,0x04,0x88,0x05,0xb4,0x12,0x26, -0x00,0x44,0x00,0x00,0x11,0x06,0x00,0x74,0x4d,0x00,0x00,0x13,0x40,0x0b,0x02,0x42,0x11,0x26,0x02,0x2f,0x42,0x45,0x15,0x03,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x80,0xff,0xec,0x04,0x88,0x05,0xb4,0x12,0x26,0x00,0x44,0x00,0x00,0x11,0x06,0x01,0x4b,0xee,0x00,0x00,0x19,0xb7,0x02,0x43,0x11,0x26,0x02,0x20,0x48, -0x01,0xb8,0xff,0xd0,0xb4,0x48,0x42,0x15,0x03,0x25,0x01,0x2b,0x5d,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x80,0xff,0xec,0x04,0x88,0x05,0xa9,0x12,0x26,0x00,0x44,0x00,0x00,0x11,0x06,0x01,0x52,0xf8,0x00,0x00,0x22,0x40,0x0e,0x02,0x42,0x11,0x26,0x02,0x30,0x4d,0x01,0x20,0x4d,0x01,0x10,0x4d,0x01,0xb8,0xff,0xda,0xb4, -0x4d,0x5d,0x15,0x03,0x25,0x01,0x2b,0x5d,0x5d,0x5d,0x35,0x00,0x2b,0x35,0x00,0x00,0xff,0xff,0x00,0x80,0xff,0xec,0x04,0x88,0x05,0x7b,0x12,0x26,0x00,0x44,0x00,0x00,0x11,0x06,0x00,0x69,0xf0,0x00,0x00,0x1e,0x40,0x0a,0x03,0x02,0x42,0x11,0x26,0x03,0x02,0x20,0x46,0x01,0xb8,0xff,0xd2,0xb4,0x46,0x44,0x15,0x03,0x25,0x01,0x2b,0x5d, -0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0xff,0xff,0x00,0x80,0xff,0xec,0x04,0x88,0x06,0x0b,0x12,0x26,0x00,0x44,0x00,0x00,0x11,0x06,0x01,0x50,0xf8,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x47,0x11,0x26,0x03,0x02,0x12,0x4c,0x42,0x27,0x2f,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x03,0x00,0x14,0xff,0xec,0x04,0xb8, -0x04,0x4e,0x00,0x41,0x00,0x50,0x00,0x59,0x00,0xc6,0x40,0x81,0x7c,0x58,0x8c,0x58,0x02,0x7c,0x54,0x8c,0x54,0x02,0x6a,0x13,0x7a,0x13,0x8a,0x13,0x03,0x6c,0x11,0x7c,0x11,0x8c,0x11,0x03,0x05,0x3d,0x15,0x3d,0x02,0x05,0x37,0x15,0x37,0x02,0x03,0x21,0x13,0x21,0x02,0x1b,0x28,0x09,0x0e,0x48,0x14,0x38,0x56,0x00,0x49,0x4b,0x24,0x4b, -0x09,0x49,0x0a,0x0a,0x40,0x48,0x57,0xcf,0x4b,0xdf,0x4b,0x02,0x10,0x57,0x01,0x4b,0x57,0x4b,0x57,0x1e,0x5b,0x2f,0x48,0x30,0x30,0x42,0x48,0x4f,0x1e,0x5f,0x1e,0x9f,0x1e,0xaf,0x1e,0x04,0x1e,0x51,0x2a,0x50,0x35,0x00,0x50,0x56,0x4b,0x51,0x24,0x56,0x24,0x56,0x24,0x3b,0x38,0x35,0x2f,0x2f,0x8f,0x2f,0x02,0x2f,0x2f,0x35,0x10,0x06, -0x45,0x50,0x19,0x14,0x0f,0x19,0x80,0x09,0x01,0x09,0x09,0x19,0x16,0x00,0x3f,0x33,0x2f,0x5d,0x11,0x33,0x33,0x10,0xed,0x32,0x3f,0x33,0x2f,0x5d,0x11,0x33,0x33,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x01,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0x32,0x2f,0xed,0x11,0x33, -0x10,0xed,0x32,0x39,0x39,0x31,0x30,0x00,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x15,0x1e,0x03,0x33,0x32,0x36,0x37,0x17,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x3f,0x01,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x27,0x3e,0x03,0x33,0x32,0x16,0x17,0x3e,0x01,0x33,0x32, -0x1e,0x02,0x1d,0x01,0x05,0x14,0x16,0x33,0x32,0x3e,0x02,0x3d,0x01,0x07,0x0e,0x03,0x01,0x22,0x0e,0x02,0x07,0x21,0x2e,0x01,0x02,0xa7,0x01,0x15,0x2c,0x46,0x31,0x4b,0x59,0x10,0x8a,0x0c,0x2b,0x49,0x6d,0x4d,0x39,0x5c,0x48,0x35,0x12,0x15,0x36,0x49,0x5c,0x3a,0x44,0x61,0x3f,0x1e,0x39,0x5d,0x76,0x3e,0xa7,0x0f,0x21,0x34,0x24,0x20, -0x33,0x26,0x17,0x04,0xa8,0x08,0x28,0x4a,0x71,0x50,0x5b,0x79,0x23,0x2d,0x7d,0x4c,0x60,0x81,0x4e,0x20,0xfc,0x05,0x39,0x39,0x38,0x51,0x34,0x19,0x7a,0x25,0x4a,0x3a,0x25,0x02,0x9e,0x1c,0x3e,0x33,0x23,0x02,0x01,0x69,0x09,0x58,0x01,0xf7,0x11,0x52,0x88,0x62,0x37,0x5e,0x48,0x2d,0x2d,0x5b,0x49,0x2f,0x18,0x37,0x59,0x40,0x31,0x55, -0x3e,0x24,0x2c,0x54,0x77,0x4b,0x6b,0x89,0x4e,0x1f,0x01,0x04,0x3b,0x43,0x5e,0x3a,0x1b,0x0f,0x27,0x43,0x33,0x11,0x40,0x6b,0x4e,0x2b,0x46,0x45,0x4a,0x41,0x58,0x9b,0xd2,0x7a,0x18,0xcc,0x52,0x64,0x3f,0x60,0x74,0x35,0x59,0x04,0x01,0x0f,0x30,0x5b,0x02,0x52,0x1d,0x4a,0x7f,0x62,0xab,0x9d,0xff,0xff,0x00,0x82,0xfe,0x44,0x04,0x38, -0x04,0x4e,0x12,0x26,0x00,0x46,0x00,0x00,0x11,0x07,0x00,0x78,0x01,0x51,0x00,0x00,0x00,0x0b,0xb6,0x01,0x21,0x2e,0x26,0x00,0x1c,0x25,0x01,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x85,0xff,0xec,0x04,0x46,0x05,0xb4,0x12,0x26,0x00,0x48,0x00,0x00,0x11,0x06,0x00,0x43,0xb1,0x00,0x00,0x15,0xb4,0x02,0x2c,0x11,0x26,0x02,0xb8,0xff, -0xb2,0xb4,0x2d,0x30,0x15,0x1f,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x85,0xff,0xec,0x04,0x46,0x05,0xb4,0x12,0x26,0x00,0x48,0x00,0x00,0x11,0x06,0x00,0x74,0x6f,0x00,0x00,0x13,0x40,0x0b,0x02,0x2c,0x11,0x26,0x02,0x6f,0x2c,0x2f,0x15,0x1f,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x85, -0xff,0xec,0x04,0x46,0x05,0xb4,0x12,0x26,0x00,0x48,0x00,0x00,0x11,0x06,0x01,0x4b,0x07,0x00,0x00,0x13,0x40,0x0b,0x02,0x2d,0x11,0x26,0x02,0x07,0x32,0x2c,0x15,0x1f,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x85,0xff,0xec,0x04,0x46,0x05,0x7b,0x12,0x26,0x00,0x48,0x00,0x00,0x11,0x06,0x00,0x69,0x08,0x00,0x00,0x17, -0x40,0x0d,0x03,0x02,0x2c,0x11,0x26,0x03,0x02,0x08,0x30,0x2e,0x15,0x1f,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x04,0x65,0x05,0xb4,0x12,0x26,0x00,0xf1,0x00,0x00,0x11,0x06,0x00,0x43,0xbd,0x00,0x00,0x1e,0x40,0x0b,0x01,0x0a,0x11,0x26,0x01,0x60,0x0b,0x01,0x50,0x0b,0x01,0xb8,0xff,0xa9, -0xb4,0x0b,0x0e,0x03,0x01,0x25,0x01,0x2b,0x5d,0x5d,0x35,0x00,0x2b,0x35,0x00,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x04,0x65,0x05,0xb4,0x12,0x26,0x00,0xf1,0x00,0x00,0x11,0x06,0x00,0x74,0x68,0x00,0x00,0x13,0x40,0x0b,0x01,0x0a,0x11,0x26,0x01,0x54,0x0a,0x0d,0x03,0x01,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x8f, -0x00,0x00,0x04,0x65,0x05,0xb4,0x12,0x26,0x00,0xf1,0x00,0x00,0x11,0x06,0x01,0x4b,0x0a,0x00,0x00,0x22,0x40,0x0e,0x01,0x0b,0x11,0x26,0x01,0x60,0x10,0x01,0x50,0x10,0x01,0x30,0x10,0x01,0xb8,0xff,0xf6,0xb4,0x10,0x0a,0x03,0x01,0x25,0x01,0x2b,0x5d,0x5d,0x5d,0x35,0x00,0x2b,0x35,0x00,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x04,0x65, -0x05,0x7b,0x12,0x26,0x00,0xf1,0x00,0x00,0x11,0x06,0x00,0x69,0x29,0x00,0x00,0x2f,0x40,0x1f,0x02,0x01,0x0a,0x11,0x26,0x02,0x01,0x90,0x0e,0x01,0x80,0x0e,0x01,0x70,0x0e,0x01,0x60,0x0e,0x01,0x50,0x0e,0x01,0x40,0x0e,0x01,0x00,0x0e,0x0c,0x06,0x09,0x25,0x01,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x35,0x35,0x00,0x2b,0x35,0x35,0x00, -0x00,0x02,0x00,0x7d,0xff,0xec,0x04,0x4e,0x05,0xd8,0x00,0x25,0x00,0x37,0x00,0xbb,0x40,0x81,0x45,0x36,0x55,0x36,0x65,0x36,0x03,0x45,0x31,0x55,0x31,0x65,0x31,0x03,0x4a,0x2e,0x5a,0x2e,0x6a,0x2e,0x03,0x4a,0x28,0x5a,0x28,0x6a,0x28,0x03,0x2b,0x04,0x3b,0x04,0x6b,0x04,0x03,0x05,0x24,0x15,0x24,0x02,0x13,0x10,0x06,0x09,0x04,0x12, -0x08,0x08,0x0c,0x12,0x0c,0x12,0x21,0x17,0x47,0x03,0x70,0x26,0x01,0xa0,0x26,0x01,0x00,0x26,0x10,0x26,0x60,0x26,0x03,0x26,0x26,0x39,0x30,0x47,0xff,0x21,0x01,0xff,0x21,0x01,0x00,0x21,0x01,0x21,0x65,0x10,0x75,0x10,0x85,0x10,0x03,0x6a,0x06,0x7a,0x06,0x8a,0x06,0x03,0x10,0x09,0x13,0x06,0x04,0x07,0x11,0x2b,0x50,0x00,0x03,0x00, -0x00,0x00,0x10,0x00,0x02,0x07,0x00,0x07,0x00,0x0c,0x33,0x50,0x1c,0x16,0x12,0x11,0x11,0x0c,0x00,0x00,0x3f,0x33,0x2f,0x33,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x11,0x12,0x17,0x39,0x5d,0x5d,0x01,0x2f,0x5d,0x5d,0x71,0xed,0x12,0x39,0x2f,0x5d,0x71,0x72,0x33,0xed,0x11,0x39,0x39,0x2f,0x2f,0x33,0x2f,0x12, -0x17,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x32,0x16,0x17,0x2e,0x01,0x27,0x05,0x27,0x37,0x2e,0x01,0x27,0x33,0x1e,0x01,0x17,0x25,0x17,0x07,0x16,0x12,0x1d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x02,0x64,0x47, -0x75,0x2b,0x27,0x69,0x4c,0xfe,0xfc,0x37,0xda,0x38,0x78,0x42,0xd1,0x2d,0x53,0x2a,0x01,0x08,0x37,0xd3,0xa4,0xa7,0x39,0x78,0xbc,0x84,0x7d,0xb5,0x76,0x38,0x34,0x74,0xba,0x01,0xb2,0x21,0x47,0x71,0x50,0x51,0x73,0x49,0x21,0x90,0x91,0x51,0x76,0x4b,0x24,0x03,0xd3,0x20,0x1b,0x59,0x9f,0x45,0x73,0x6e,0x5e,0x2d,0x4e,0x23,0x14,0x33, -0x1f,0x72,0x6c,0x5c,0x95,0xfe,0x7d,0xf4,0x06,0x79,0xc4,0x8a,0x4b,0x49,0x84,0xb9,0x6f,0x6b,0xb6,0x86,0x4b,0xfe,0x0e,0x5e,0x89,0x5a,0x2c,0x2d,0x5c,0x88,0x5c,0xbe,0xb2,0x2c,0x5a,0x8b,0xff,0xff,0x00,0xb3,0x00,0x00,0x04,0x19,0x05,0xa9,0x12,0x26,0x00,0x51,0x00,0x00,0x11,0x06,0x01,0x52,0x0a,0x00,0x00,0x13,0x40,0x0b,0x01,0x26, -0x11,0x26,0x01,0x09,0x31,0x41,0x13,0x24,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x82,0xff,0xec,0x04,0x49,0x05,0xb4,0x12,0x26,0x00,0x52,0x00,0x00,0x11,0x06,0x00,0x43,0xba,0x00,0x00,0x15,0xb4,0x02,0x24,0x11,0x26,0x02,0xb8,0xff,0xbb,0xb4,0x25,0x28,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00, -0xff,0xff,0x00,0x82,0xff,0xec,0x04,0x49,0x05,0xb4,0x12,0x26,0x00,0x52,0x00,0x00,0x11,0x06,0x00,0x74,0x65,0x00,0x00,0x13,0x40,0x0b,0x02,0x24,0x11,0x26,0x02,0x65,0x24,0x27,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x82,0xff,0xec,0x04,0x49,0x05,0xb4,0x12,0x26,0x00,0x52,0x00,0x00,0x11,0x06,0x01,0x4b, -0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x25,0x11,0x26,0x02,0x00,0x2a,0x24,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x82,0xff,0xec,0x04,0x49,0x05,0xa9,0x12,0x26,0x00,0x52,0x00,0x00,0x11,0x06,0x01,0x52,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x24,0x11,0x26,0x02,0x00,0x2f,0x3f,0x0a,0x00,0x25,0x01,0x2b,0x35, -0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x82,0xff,0xec,0x04,0x49,0x05,0x7b,0x12,0x26,0x00,0x52,0x00,0x00,0x11,0x06,0x00,0x69,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x24,0x11,0x26,0x03,0x02,0x00,0x28,0x26,0x0a,0x00,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x03,0x00,0x74,0x00,0xdf,0x04,0x57,0x04,0x75,0x00,0x03, -0x00,0x07,0x00,0x0b,0x00,0x63,0x40,0x3c,0x06,0x0e,0x0b,0x05,0x08,0x0e,0x70,0x05,0x01,0x05,0x03,0x0b,0xab,0x00,0x3f,0x08,0x4f,0x08,0x02,0x00,0x08,0x01,0x0a,0x03,0x08,0x08,0x0d,0x0c,0x09,0xae,0x40,0x08,0x0e,0x04,0x01,0x05,0x0e,0x00,0xae,0x2f,0x01,0x3f,0x01,0x4f,0x01,0x03,0x4f,0x01,0x8f,0x01,0x9f,0x01,0xef,0x01,0x04,0x01, -0x04,0xad,0x05,0xb3,0x00,0x3f,0xed,0xd6,0x5d,0x71,0xed,0x2b,0x00,0x18,0x10,0x4d,0xf6,0x1a,0xed,0x11,0x12,0x01,0x39,0x2f,0x5f,0x5e,0x5d,0x5d,0x33,0xed,0x32,0xc4,0x5d,0x2b,0x01,0x18,0x10,0x4d,0xe4,0x31,0x30,0x01,0x35,0x33,0x15,0x01,0x35,0x21,0x15,0x01,0x35,0x33,0x15,0x02,0x11,0xa8,0xfd,0xbb,0x03,0xe3,0xfd,0xba,0xa8,0x03, -0xbe,0xb7,0xb7,0xfe,0xa2,0x92,0x92,0xfe,0x7f,0xb7,0xb7,0x00,0x00,0x03,0x00,0x6e,0xff,0xec,0x04,0x5d,0x04,0x4e,0x00,0x19,0x00,0x25,0x00,0x31,0x00,0xdb,0x40,0x24,0x45,0x24,0x55,0x24,0x65,0x24,0x03,0x6b,0x30,0x01,0x4a,0x30,0x5a,0x30,0x02,0x0c,0x20,0x0b,0x11,0x48,0x79,0x07,0x89,0x07,0x02,0x07,0x40,0x0b,0x0f,0x48,0x74,0x19, -0x84,0x19,0x02,0x19,0xb8,0xff,0xc0,0x40,0x09,0x0b,0x0f,0x48,0x74,0x14,0x84,0x14,0x02,0x14,0xb8,0xff,0xc0,0x40,0x67,0x0b,0x0f,0x48,0x1d,0x2a,0x1e,0x29,0x04,0x26,0x1a,0x18,0x15,0x08,0x0b,0x04,0x0e,0x17,0x17,0x00,0x47,0x20,0x1a,0x30,0x1a,0x40,0x1a,0x70,0x1a,0x80,0x1a,0x90,0x1a,0x06,0x00,0x1a,0x50,0x1a,0xa0,0x1a,0xb0,0x1a, -0xc0,0x1a,0x05,0x00,0x1a,0x10,0x1a,0x60,0x1a,0x70,0x1a,0x80,0x1a,0xe0,0x1a,0x06,0x1a,0x1a,0x33,0x26,0x47,0x0e,0x0a,0x0a,0x0e,0x40,0x28,0x2e,0x48,0x0e,0x40,0x18,0x1b,0x48,0x0e,0x2a,0x1d,0x29,0x1e,0x04,0x21,0x2d,0x08,0x0b,0x18,0x15,0x04,0x13,0x05,0x16,0x16,0x2d,0x50,0x13,0x10,0x21,0x50,0x05,0x09,0x09,0x05,0x16,0x00,0x3f, -0x33,0x2f,0x10,0xed,0x3f,0xed,0x33,0x2f,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x01,0x2f,0x2b,0x2b,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x5d,0x71,0x72,0xed,0x32,0x2f,0x11,0x17,0x39,0x11,0x12,0x17,0x39,0x31,0x30,0x00,0x2b,0x5d,0x01,0x2b,0x5d,0x00,0x2b,0x5d,0x01,0x2b,0x00,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x26, -0x27,0x07,0x27,0x37,0x2e,0x01,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x37,0x17,0x07,0x16,0x07,0x34,0x26,0x27,0x01,0x1e,0x01,0x33,0x32,0x3e,0x02,0x25,0x14,0x16,0x17,0x01,0x2e,0x01,0x23,0x22,0x0e,0x02,0x04,0x5d,0x46,0x83,0xbc,0x77,0x65,0xa6,0x40,0x4d,0x4c,0x54,0x30,0x33,0x43,0x81,0xbc,0x79,0xd5,0x7a,0x48,0x4e,0x50,0x61,0xbd, -0x11,0x10,0xfe,0x03,0x2b,0x72,0x40,0x45,0x76,0x56,0x30,0xfd,0x8b,0x11,0x11,0x01,0xfd,0x2a,0x71,0x45,0x45,0x75,0x55,0x30,0x02,0x1e,0x8e,0xd3,0x8c,0x45,0x35,0x36,0x57,0x44,0x5f,0x45,0xbc,0x7a,0x8c,0xd1,0x8d,0x46,0x64,0x52,0x44,0x5a,0x89,0xf7,0x4c,0x78,0x2e,0xfd,0xc0,0x35,0x2a,0x27,0x62,0xa6,0x7e,0x4b,0x75,0x2e,0x02,0x40, -0x32,0x27,0x29,0x63,0xa4,0x00,0x00,0x00,0xff,0xff,0x00,0xb9,0xff,0xec,0x04,0x1f,0x05,0xb4,0x12,0x26,0x00,0x58,0x00,0x00,0x11,0x06,0x00,0x43,0xa2,0x00,0x00,0x15,0xb4,0x01,0x26,0x11,0x26,0x01,0xb8,0xff,0x9c,0xb4,0x27,0x2a,0x24,0x13,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xb9,0xff,0xec,0x04,0x1f, -0x05,0xb4,0x12,0x26,0x00,0x58,0x00,0x00,0x11,0x06,0x00,0x74,0x5a,0x00,0x00,0x13,0x40,0x0b,0x01,0x26,0x11,0x26,0x01,0x54,0x26,0x29,0x24,0x13,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xb9,0xff,0xec,0x04,0x1f,0x05,0xb4,0x12,0x26,0x00,0x58,0x00,0x00,0x11,0x06,0x01,0x4b,0x00,0x00,0x00,0x15,0xb4,0x01,0x27,0x11, -0x26,0x01,0xb8,0xff,0xfa,0xb4,0x2c,0x26,0x24,0x13,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xb9,0xff,0xec,0x04,0x1f,0x05,0x7b,0x12,0x26,0x00,0x58,0x00,0x00,0x11,0x06,0x00,0x69,0x00,0x00,0x00,0x19,0xb6,0x02,0x01,0x26,0x11,0x26,0x02,0x01,0xb8,0xff,0xfa,0xb4,0x2a,0x28,0x24,0x13,0x25,0x01,0x2b,0x35, -0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x42,0xfe,0x57,0x04,0x89,0x05,0xb4,0x12,0x26,0x00,0x5c,0x00,0x00,0x11,0x06,0x00,0x74,0x6b,0x00,0x00,0x13,0x40,0x0b,0x01,0x20,0x11,0x26,0x01,0x6b,0x20,0x23,0x11,0x1f,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x02,0x00,0xb9,0xfe,0x57,0x04,0x42,0x05,0xcc,0x00,0x13, -0x00,0x38,0x00,0x65,0x40,0x44,0x79,0x21,0x89,0x21,0x02,0x64,0x12,0x01,0x46,0x12,0x56,0x12,0x02,0x6b,0x02,0x01,0x49,0x02,0x59,0x02,0x02,0x35,0x16,0x01,0x3a,0x26,0x01,0x06,0x1b,0x16,0x1b,0x76,0x1b,0x86,0x1b,0x04,0x1e,0x47,0x60,0x00,0x01,0x00,0x00,0x3a,0x32,0x0a,0x2f,0x46,0x00,0x30,0x80,0x30,0x02,0x30,0x31,0x00,0x2f,0x1b, -0x28,0x0f,0x50,0x23,0x16,0x14,0x05,0x50,0x19,0x10,0x00,0x3f,0xed,0x33,0x3f,0xed,0x33,0x3f,0x3f,0x01,0x2f,0x5d,0xed,0x32,0x32,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x01,0x3e,0x03,0x33,0x32,0x1e,0x02, -0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x1e,0x03,0x15,0x11,0x23,0x11,0x33,0x11,0x14,0x06,0x07,0x06,0x07,0x03,0x88,0x18,0x3b,0x61,0x49,0x3b,0x68,0x4d,0x2d,0x25,0x48,0x6a,0x44,0x49,0x62,0x3b,0x19,0xfd,0xe8,0x19,0x3f,0x50,0x64,0x3e,0x6e,0x96,0x5c,0x28,0x28,0x5c,0x96,0x6e,0x37,0x64,0x56,0x43,0x17,0x05,0x01,0x01, -0x01,0x01,0xb5,0xb4,0x01,0x01,0x01,0x01,0x02,0x22,0x64,0x9c,0x6b,0x38,0x25,0x61,0xac,0x87,0x73,0x9d,0x61,0x2a,0x39,0x6e,0xa2,0x01,0xce,0x34,0x4c,0x31,0x17,0x50,0x93,0xce,0x7d,0x7b,0xd0,0x96,0x55,0x14,0x2c,0x46,0x32,0x02,0x1f,0x2e,0x3a,0x1d,0xfe,0x59,0x07,0x75,0xfe,0x59,0x1d,0x39,0x16,0x1a,0x17,0x00,0xff,0xff,0x00,0x42, -0xfe,0x57,0x04,0x89,0x05,0x7b,0x12,0x26,0x00,0x5c,0x00,0x00,0x11,0x06,0x00,0x69,0x05,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x20,0x11,0x26,0x02,0x01,0x05,0x24,0x22,0x11,0x1f,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xcc,0x06,0x5e,0x12,0x26,0x00,0x24,0x00,0x00,0x11,0x07,0x01,0x4d, -0x00,0x02,0x01,0x0b,0x00,0x13,0x40,0x0b,0x02,0x15,0x05,0x26,0x02,0x00,0x16,0x15,0x04,0x07,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x80,0xff,0xec,0x04,0x88,0x05,0x53,0x12,0x26,0x00,0x44,0x00,0x00,0x11,0x06,0x01,0x4d,0xdb,0x00,0x00,0x15,0xb4,0x02,0x42,0x11,0x26,0x02,0xb8,0xff,0xf4,0xb4,0x43,0x42, -0x27,0x2f,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xcc,0x06,0xa9,0x12,0x26,0x00,0x24,0x00,0x00,0x11,0x07,0x01,0x4e,0x00,0x00,0x00,0xf5,0x00,0x13,0x40,0x0b,0x02,0x15,0x05,0x26,0x02,0x00,0x1a,0x22,0x04,0x07,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x80, -0xff,0xec,0x04,0x88,0x05,0xb4,0x12,0x26,0x00,0x44,0x00,0x00,0x11,0x06,0x01,0x4e,0xed,0x00,0x00,0x13,0x40,0x0b,0x02,0x42,0x11,0x26,0x02,0x07,0x47,0x4f,0x27,0x2f,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x00,0xfe,0x60,0x04,0xdf,0x05,0x45,0x12,0x26,0x00,0x24,0x00,0x00,0x11,0x07,0x01,0x51,0x01,0xc8,0x00,0x0b, -0x00,0x0b,0xb6,0x02,0x12,0x20,0x20,0x00,0x00,0x25,0x01,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x80,0xfe,0x55,0x04,0x88,0x04,0x4e,0x12,0x26,0x00,0x44,0x00,0x00,0x11,0x07,0x01,0x51,0x01,0x71,0x00,0x00,0x00,0x0e,0xb9,0x00,0x02,0xff,0xc2,0xb4,0x4e,0x4e,0x03,0x03,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x71,0xff,0xec,0x04,0x76, -0x06,0xa8,0x12,0x26,0x00,0x26,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x84,0x00,0xf4,0x00,0x13,0x40,0x0b,0x01,0x2a,0x05,0x26,0x01,0x76,0x2a,0x2d,0x15,0x0b,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0xec,0x04,0x38,0x05,0xb4,0x12,0x26,0x00,0x46,0x00,0x00,0x11,0x06,0x00,0x74,0x66,0x00,0x00,0x13, -0x40,0x0b,0x01,0x26,0x11,0x26,0x01,0x6f,0x26,0x29,0x00,0x1c,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x71,0xff,0xec,0x04,0x76,0x06,0xa9,0x12,0x26,0x00,0x26,0x00,0x00,0x11,0x07,0x01,0x4b,0x00,0x14,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x2b,0x05,0x26,0x01,0x06,0x30,0x2a,0x15,0x0b,0x25,0x01,0x2b,0x35,0x00,0x2b, -0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0xec,0x04,0x38,0x05,0xb4,0x12,0x26,0x00,0x46,0x00,0x00,0x11,0x06,0x01,0x4b,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x27,0x11,0x26,0x01,0x09,0x2c,0x26,0x00,0x1c,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x71,0xff,0xec,0x04,0x76,0x06,0x66,0x12,0x26,0x00,0x26,0x00,0x00, -0x11,0x07,0x01,0x4f,0x00,0x1e,0x00,0x9a,0x00,0x13,0x40,0x0b,0x01,0x2a,0x05,0x26,0x01,0x11,0x2a,0x2c,0x15,0x0b,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0xec,0x04,0x38,0x05,0xcc,0x12,0x26,0x00,0x46,0x00,0x00,0x11,0x06,0x01,0x4f,0x14,0x00,0x00,0x0b,0xb6,0x01,0x1e,0x26,0x28,0x00,0x1c,0x25, -0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x71,0xff,0xec,0x04,0x76,0x06,0xa9,0x12,0x26,0x00,0x26,0x00,0x00,0x11,0x07,0x01,0x4c,0x00,0x11,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x2a,0x05,0x26,0x01,0x03,0x2c,0x32,0x15,0x0b,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0xec,0x04,0x38,0x05,0xb4,0x12,0x26, -0x00,0x46,0x00,0x00,0x11,0x06,0x01,0x4c,0xfc,0x00,0x00,0x13,0x40,0x0b,0x01,0x26,0x11,0x26,0x01,0x05,0x28,0x2e,0x00,0x1c,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x65,0x06,0xa9,0x12,0x26,0x00,0x27,0x00,0x00,0x11,0x07,0x01,0x4c,0xff,0xe3,0x00,0xf5,0x00,0x15,0xb4,0x02,0x18,0x05,0x26,0x02, -0xb8,0xff,0xc6,0xb4,0x1a,0x20,0x06,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x03,0x00,0x1f,0xff,0xe6,0x04,0xcf,0x05,0xcc,0x00,0x24,0x00,0x38,0x00,0x3e,0x00,0x78,0x40,0x18,0x66,0x3e,0x76,0x3e,0x86,0x3e,0x03,0x05,0x0b,0x75,0x0b,0x85,0x0b,0x03,0x0a,0x05,0x7a,0x05,0x8a,0x05,0x03,0x3e,0x83,0x39,0xb8,0x01,0x0b,0x40, -0x21,0x3b,0x86,0x3c,0x3c,0x40,0x18,0x46,0x2f,0x00,0x3f,0x17,0x01,0x00,0x17,0x40,0x17,0x50,0x17,0x03,0x17,0x17,0x40,0x25,0x47,0x08,0x40,0x0b,0x20,0x48,0x08,0x1f,0x15,0x3e,0xb8,0x01,0x0c,0x40,0x0e,0x3b,0x3b,0x17,0x00,0x34,0x50,0x11,0x0d,0x10,0x2a,0x50,0x00,0x03,0x16,0x00,0x3f,0x33,0xed,0x3f,0x33,0xed,0x3f,0x33,0x2f,0xed, -0x3f,0x01,0x2f,0x2b,0xed,0x12,0x39,0x2f,0x5d,0x71,0x33,0x33,0xed,0x11,0x33,0x2f,0xed,0xfd,0xed,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x25,0x0e,0x01,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x33,0x34,0x26,0x34,0x26,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x17,0x23,0x2e,0x03,0x35,0x01,0x14,0x1e,0x02,0x33,0x32, -0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x01,0x35,0x13,0x33,0x15,0x03,0x02,0x97,0x31,0x85,0x61,0x50,0x83,0x5c,0x32,0x34,0x5e,0x81,0x4e,0x62,0x84,0x31,0x02,0x01,0x01,0xb4,0x01,0x02,0x02,0x01,0xac,0x01,0x04,0x03,0x02,0xfe,0x3e,0x18,0x30,0x4b,0x33,0x31,0x59,0x45,0x29,0x29,0x44,0x5a,0x30,0x30,0x4a,0x33,0x1a,0x02, -0xe2,0x4f,0xc5,0xab,0xae,0x69,0x5f,0x45,0x8c,0xd1,0x8c,0x8e,0xd5,0x8d,0x46,0x56,0x62,0x05,0x2a,0x32,0x2d,0x09,0x01,0xa3,0xfb,0x13,0x27,0x48,0x3c,0x2b,0x09,0x04,0x24,0x32,0x3a,0x1a,0x01,0x6c,0x70,0xa0,0x68,0x31,0x35,0x6e,0xa6,0x70,0x6c,0x9b,0x65,0x2f,0x2e,0x66,0xa3,0x01,0xf9,0x21,0x01,0x24,0x25,0xfe,0xe0,0x00,0x00,0x00, -0xff,0xff,0x00,0x1b,0x00,0x00,0x04,0x65,0x05,0x45,0x12,0x06,0x00,0x90,0x00,0x00,0x00,0x02,0x00,0x8a,0xff,0xe6,0x04,0x96,0x05,0xcc,0x00,0x27,0x00,0x3b,0x00,0x96,0x40,0x56,0x4a,0x3a,0x5a,0x3a,0x6a,0x3a,0x03,0x45,0x2a,0x55,0x2a,0x65,0x2a,0x03,0x3a,0x0e,0x01,0x35,0x17,0x01,0x05,0x14,0x15,0x14,0x75,0x14,0x85,0x14,0x04,0x0a, -0x11,0x1a,0x11,0x7a,0x11,0x8a,0x11,0x04,0x21,0x21,0x23,0x13,0x26,0x26,0x00,0x24,0x46,0x0c,0x1f,0x32,0x03,0x50,0x23,0x01,0x90,0x23,0xa0,0x23,0x02,0x23,0x23,0x3d,0x28,0x47,0x00,0x13,0x01,0x13,0x23,0x00,0x00,0x20,0x51,0x25,0xaf,0x21,0xbf,0x21,0x02,0x21,0x21,0x23,0x37,0x50,0x18,0x15,0xb8,0xff,0xc0,0x40,0x0c,0x09,0x0c,0x48, -0x15,0x0f,0x2d,0x50,0x0c,0x10,0x16,0x07,0x15,0x00,0x3f,0x3f,0x33,0xed,0x3f,0x2b,0x33,0xed,0x12,0x39,0x2f,0x5d,0x33,0xed,0x32,0x3f,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x71,0x17,0x33,0xed,0x32,0x32,0x2f,0x11,0x12,0x39,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x11,0x14,0x1e,0x02,0x17,0x23,0x2e,0x03,0x35, -0x23,0x0e,0x01,0x23,0x22,0x02,0x11,0x10,0x21,0x32,0x16,0x17,0x33,0x34,0x26,0x34,0x26,0x3d,0x01,0x21,0x35,0x21,0x35,0x33,0x15,0x33,0x15,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x04,0x13,0x01,0x02,0x02,0x01,0xac,0x01,0x04,0x03,0x02,0x05,0x31,0xa2,0x79,0xca,0xbe,0x01,0x88,0x79,0xa3, -0x31,0x02,0x01,0x01,0xfe,0xd4,0x01,0x2c,0xb4,0x83,0xfc,0xae,0x1d,0x3d,0x60,0x43,0x45,0x6b,0x49,0x25,0x25,0x48,0x6a,0x45,0x40,0x60,0x3f,0x20,0x04,0xac,0xfc,0x33,0x27,0x48,0x3c,0x2b,0x09,0x04,0x24,0x32,0x3a,0x1a,0x69,0x5f,0x01,0x0f,0x01,0x10,0x02,0x2b,0x56,0x62,0x05,0x2a,0x32,0x2d,0x09,0x9d,0x83,0x9d,0x9d,0x83,0xfd,0x5f, -0x6c,0x9b,0x64,0x2f,0x2e,0x66,0xa2,0x73,0x70,0x99,0x5f,0x29,0x2e,0x64,0x9e,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x62,0x06,0x5e,0x12,0x26,0x00,0x28,0x00,0x00,0x11,0x07,0x01,0x4d,0x00,0x12,0x01,0x0b,0x00,0x15,0xb4,0x01,0x0c,0x05,0x26,0x01,0xb8,0xff,0xf5,0xb4,0x0d,0x0c,0x00,0x0a,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00, -0xff,0xff,0x00,0x85,0xff,0xec,0x04,0x46,0x05,0x53,0x12,0x26,0x00,0x48,0x00,0x00,0x11,0x06,0x01,0x4d,0x02,0x00,0x00,0x13,0x40,0x0b,0x02,0x2c,0x11,0x26,0x02,0x01,0x2d,0x2c,0x15,0x1f,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x62,0x06,0xa9,0x12,0x26,0x00,0x28,0x00,0x00,0x11,0x07,0x01,0x4e, -0x00,0x00,0x00,0xf5,0x00,0x15,0xb4,0x01,0x0c,0x05,0x26,0x01,0xb8,0xff,0xe4,0xb4,0x11,0x19,0x00,0x0a,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x85,0xff,0xec,0x04,0x46,0x05,0xb4,0x12,0x26,0x00,0x48,0x00,0x00,0x11,0x06,0x01,0x4e,0x04,0x00,0x00,0x13,0x40,0x0b,0x02,0x2c,0x11,0x26,0x02,0x04,0x31,0x39,0x15,0x1f, -0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x62,0x06,0x66,0x12,0x26,0x00,0x28,0x00,0x00,0x11,0x07,0x01,0x4f,0x00,0x00,0x00,0x9a,0x00,0x15,0xb4,0x01,0x0c,0x05,0x26,0x01,0xb8,0xff,0xe5,0xb4,0x0c,0x0e,0x00,0x0a,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x85,0xff,0xec,0x04,0x46, -0x05,0xcc,0x12,0x26,0x00,0x48,0x00,0x00,0x11,0x06,0x01,0x4f,0x02,0x00,0x00,0x0b,0xb6,0x02,0x03,0x2c,0x2e,0x15,0x1f,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa2,0xfe,0x55,0x04,0x62,0x05,0x45,0x12,0x26,0x00,0x28,0x00,0x00,0x11,0x07,0x01,0x51,0x01,0x4b,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xc2,0xb4,0x18,0x18,0x0a,0x0a, -0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x85,0xfe,0x55,0x04,0x46,0x04,0x4e,0x12,0x26,0x00,0x48,0x00,0x00,0x11,0x06,0x01,0x51,0x3e,0x00,0x00,0x0e,0xb9,0x00,0x02,0xfe,0xee,0xb4,0x38,0x38,0x0b,0x0b,0x25,0x01,0x2b,0x35,0x00,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x62,0x06,0xa9,0x12,0x26,0x00,0x28,0x00,0x00,0x11,0x07,0x01,0x4c, -0x00,0x00,0x00,0xf5,0x00,0x15,0xb4,0x01,0x0c,0x05,0x26,0x01,0xb8,0xff,0xe4,0xb4,0x0e,0x14,0x00,0x0a,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x85,0xff,0xec,0x04,0x46,0x05,0xb4,0x12,0x26,0x00,0x48,0x00,0x00,0x11,0x06,0x01,0x4c,0xf9,0x00,0x00,0x15,0xb4,0x02,0x2c,0x11,0x26,0x02,0xb8,0xff,0xfa,0xb4,0x2e,0x34, -0x15,0x1f,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x71,0xff,0xec,0x04,0x4f,0x06,0xa9,0x12,0x26,0x00,0x2a,0x00,0x00,0x11,0x07,0x01,0x4b,0x00,0x00,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x2b,0x05,0x26,0x01,0x06,0x30,0x2a,0x0a,0x14,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x8f, -0xfe,0x58,0x04,0x1e,0x05,0xb4,0x12,0x26,0x00,0x4a,0x00,0x00,0x11,0x06,0x01,0x4b,0xf7,0x00,0x00,0x13,0x40,0x0b,0x02,0x47,0x11,0x26,0x02,0x06,0x4c,0x46,0x1a,0x29,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x71,0xff,0xec,0x04,0x4f,0x06,0xa9,0x12,0x26,0x00,0x2a,0x00,0x00,0x11,0x07,0x01,0x4e,0x00,0x03,0x00,0xf5, -0x00,0x13,0x40,0x0b,0x01,0x2a,0x05,0x26,0x01,0x09,0x2f,0x37,0x0a,0x14,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x8f,0xfe,0x58,0x04,0x1e,0x05,0xb4,0x12,0x26,0x00,0x4a,0x00,0x00,0x11,0x06,0x01,0x4e,0xf7,0x00,0x00,0x13,0x40,0x0b,0x02,0x46,0x11,0x26,0x02,0x06,0x4b,0x53,0x1a,0x29,0x25,0x01,0x2b,0x35, -0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x71,0xff,0xec,0x04,0x4f,0x06,0x66,0x12,0x26,0x00,0x2a,0x00,0x00,0x11,0x07,0x01,0x4f,0x00,0x0a,0x00,0x9a,0x00,0x13,0x40,0x0b,0x01,0x2a,0x05,0x26,0x01,0x11,0x2a,0x2c,0x0a,0x14,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x8f,0xfe,0x58,0x04,0x1e,0x05,0xcc,0x12,0x26, -0x00,0x4a,0x00,0x00,0x11,0x06,0x01,0x4f,0xf7,0x00,0x00,0x0b,0xb6,0x02,0x07,0x46,0x48,0x1a,0x29,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x71,0xfe,0x59,0x04,0x4f,0x05,0x5a,0x12,0x26,0x00,0x2a,0x00,0x00,0x11,0x06,0x02,0x95,0x00,0x00,0x00,0x0b,0xb6,0x01,0x05,0x2a,0x2d,0x0a,0x14,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x8f, -0xfe,0x58,0x04,0x1e,0x06,0x00,0x12,0x26,0x00,0x4a,0x00,0x00,0x11,0x06,0x02,0x98,0xff,0x00,0x00,0x13,0x40,0x0b,0x02,0x48,0x11,0x26,0x02,0x0d,0x49,0x46,0x1a,0x29,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x2a,0x06,0xa9,0x12,0x26,0x00,0x2b,0x00,0x00,0x11,0x07,0x01,0x4b,0x00,0x00,0x00,0xf5, -0x00,0x13,0x40,0x0b,0x01,0x0d,0x05,0x26,0x01,0x00,0x12,0x0c,0x04,0x0a,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0x00,0x02,0x00,0xb9,0x00,0x00,0x04,0x19,0x06,0xa9,0x00,0x1f,0x00,0x29,0x00,0x8c,0xb9,0x00,0x29,0xff,0xf0,0x40,0x58,0x0e,0x11,0x48,0x28,0x10,0x0e,0x11,0x48,0x27,0x24,0x37,0x24,0x47,0x24,0x03,0x20,0x0e, -0x70,0x0e,0x80,0x0e,0x03,0x04,0x0d,0x14,0x0d,0x74,0x0d,0x84,0x0d,0x04,0x29,0x28,0x23,0x23,0x26,0x22,0x83,0x50,0x21,0x60,0x21,0x80,0x21,0x03,0x21,0x21,0x25,0x83,0x26,0x26,0x1f,0x11,0x46,0x12,0x12,0x2b,0x05,0x02,0x1e,0x46,0x00,0x1f,0x80,0x1f,0x02,0x1f,0x23,0x20,0x0b,0x0f,0x48,0x23,0x8e,0x29,0x8c,0x25,0x22,0x18,0x50,0x05, -0x0b,0x0b,0x1f,0x11,0x15,0x00,0x03,0x00,0x3f,0x3f,0x33,0x39,0x2f,0x33,0xed,0x2f,0x33,0xfd,0xed,0x2b,0x01,0x2f,0x5d,0xed,0x32,0x32,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0x33,0x2f,0x5d,0xed,0x12,0x39,0x11,0x33,0x33,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x2b,0x2b,0x13,0x33,0x11,0x14,0x06,0x07,0x33,0x3e,0x03,0x33,0x32,0x1e, -0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x01,0x15,0x23,0x27,0x23,0x07,0x23,0x35,0x37,0x33,0xb9,0xb5,0x06,0x03,0x03,0x18,0x40,0x52,0x69,0x40,0x53,0x82,0x5a,0x2f,0xb5,0x21,0x3b,0x50,0x30,0x3b,0x67,0x4d,0x2c,0xb4,0x02,0xf8,0x69,0xdb,0x02,0xe8,0x68,0xfe,0xa4,0x05,0x45,0xfe,0xc5,0x32,0x65, -0x2e,0x2f,0x4c,0x35,0x1d,0x2c,0x5c,0x90,0x65,0xfd,0x6b,0x02,0x7b,0x50,0x67,0x3d,0x18,0x2d,0x55,0x7d,0x51,0xfd,0xc9,0x05,0xb9,0x14,0x8b,0x8b,0x14,0xf0,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x00,0x04,0xca,0x05,0x45,0x00,0x13,0x00,0x17,0x00,0x80,0x40,0x51,0x70,0x09,0x01,0x09,0x09,0x07,0x0b,0x5a,0x14,0x04,0x1f,0x0c,0x2f,0x0c, -0x3f,0x0c,0x6f,0x0c,0x7f,0x0c,0x05,0x6f,0x0c,0x7f,0x0c,0x8f,0x0c,0x03,0x0c,0x0c,0x19,0x17,0x03,0x0f,0x5a,0x10,0x7f,0x12,0x01,0x12,0x12,0x00,0x70,0x10,0x01,0x00,0x10,0xa0,0x10,0xb0,0x10,0x03,0x10,0x16,0x0a,0x12,0x60,0x07,0x03,0x13,0x13,0x01,0x0e,0x5f,0x50,0x17,0x01,0xa0,0x17,0xb0,0x17,0x02,0x17,0x17,0x01,0x10,0x0b,0x12, -0x05,0x01,0x03,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x71,0xed,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x5d,0x71,0x33,0x33,0x2f,0x71,0x10,0xed,0x32,0x32,0x12,0x39,0x2f,0x5d,0x71,0x33,0x33,0xed,0x32,0x32,0x2f,0x71,0x31,0x30,0x13,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x11, -0x23,0x11,0x23,0x35,0x01,0x35,0x21,0x15,0xa2,0xbf,0x02,0x0a,0xbf,0xa0,0xa0,0xbf,0xfd,0xf6,0xbf,0xa0,0x03,0x69,0xfd,0xf6,0x04,0x81,0xc4,0xc4,0xc4,0xc4,0x94,0xfc,0x13,0x02,0x6f,0xfd,0x91,0x03,0xed,0x94,0xfe,0x8e,0xde,0xde,0x00,0x01,0x00,0x35,0x00,0x00,0x04,0x19,0x05,0xcc,0x00,0x27,0x00,0x71,0x40,0x3e,0x74,0x12,0x84,0x12, -0x02,0x05,0x11,0x15,0x11,0x25,0x11,0x75,0x11,0x85,0x11,0x05,0x36,0x0c,0x01,0x03,0x03,0x22,0x15,0x46,0x16,0x16,0x29,0x09,0x02,0x22,0x46,0x23,0x26,0x26,0x27,0x00,0x23,0x80,0x23,0x02,0x23,0x23,0x15,0x15,0x05,0x25,0x51,0x02,0x26,0x26,0x00,0x1c,0x50,0x00,0x0f,0x01,0xe0,0x0f,0xf0,0x0f,0x02,0x0f,0xb8,0xff,0xc0,0xb6,0x09,0x0c, -0x48,0x0f,0x0f,0x00,0x00,0x00,0x3f,0x3f,0x2b,0x5d,0x71,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x3f,0x33,0x01,0x2f,0x5d,0x33,0x33,0x2f,0x10,0xed,0x32,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x13,0x33,0x15,0x21,0x15,0x21,0x15,0x14,0x06,0x07,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x11,0x23,0x11, -0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x23,0x35,0x33,0xb9,0xb5,0x01,0x2b,0xfe,0xd5,0x06,0x03,0x03,0x18,0x40,0x52,0x69,0x40,0x53,0x82,0x5a,0x2f,0xb5,0x21,0x3b,0x50,0x30,0x3b,0x67,0x4d,0x2c,0xb4,0x84,0x84,0x05,0xcc,0x9d,0x83,0x84,0x32,0x65,0x2e,0x2f,0x4c,0x35,0x1d,0x2c,0x5c,0x90,0x65,0xfd,0x4d,0x02,0x99, -0x50,0x67,0x3d,0x18,0x2d,0x55,0x7d,0x51,0xfd,0xab,0x04,0xac,0x83,0x00,0x00,0x00,0xff,0xff,0x00,0xca,0x00,0x00,0x04,0x01,0x06,0x9e,0x12,0x26,0x00,0x2c,0x00,0x00,0x11,0x07,0x01,0x52,0x00,0x01,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x0c,0x05,0x26,0x01,0x01,0x17,0x27,0x00,0x01,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00, -0xff,0xff,0x00,0x8f,0x00,0x00,0x04,0x65,0x05,0xa9,0x12,0x26,0x00,0xf1,0x00,0x00,0x11,0x06,0x01,0x52,0x00,0x00,0x00,0x15,0xb4,0x01,0x0a,0x11,0x26,0x01,0xb8,0xff,0xec,0xb4,0x15,0x25,0x03,0x01,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xca,0x00,0x00,0x04,0x01,0x06,0x5e,0x12,0x26,0x00,0x2c,0x00,0x00, -0x11,0x07,0x01,0x4d,0x00,0x02,0x01,0x0b,0x00,0x13,0x40,0x0b,0x01,0x0c,0x05,0x26,0x01,0x01,0x0d,0x0c,0x00,0x01,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x04,0x65,0x05,0x53,0x12,0x26,0x00,0xf1,0x00,0x00,0x11,0x06,0x01,0x4d,0x08,0x00,0x00,0x15,0xb4,0x01,0x0a,0x11,0x26,0x01,0xb8,0xff, -0xf3,0xb4,0x0b,0x0a,0x03,0x01,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xca,0x00,0x00,0x04,0x01,0x06,0xa8,0x12,0x26,0x00,0x2c,0x00,0x00,0x11,0x07,0x01,0x4e,0x00,0x00,0x00,0xf4,0x00,0x13,0x40,0x0b,0x01,0x0c,0x05,0x26,0x01,0x00,0x11,0x19,0x00,0x01,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00, -0xff,0xff,0x00,0x8f,0x00,0x00,0x04,0x65,0x05,0xb4,0x12,0x26,0x00,0xf1,0x00,0x00,0x11,0x06,0x01,0x4e,0x14,0x00,0x00,0x13,0x40,0x0b,0x01,0x0a,0x11,0x26,0x01,0x00,0x0f,0x17,0x03,0x01,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xca,0xfe,0x55,0x04,0x01,0x05,0x45,0x12,0x26,0x00,0x2c,0x00,0x00,0x11,0x06,0x01,0x51, -0x0d,0x00,0x00,0x0e,0xb7,0x01,0x01,0x0f,0x12,0x0c,0x00,0x01,0x25,0x01,0x2b,0x35,0x00,0x35,0x00,0x00,0xff,0xff,0x00,0x8f,0xfe,0x55,0x04,0x65,0x05,0xcc,0x12,0x26,0x00,0x4c,0x00,0x00,0x11,0x06,0x01,0x51,0x38,0x00,0x00,0x0e,0xb7,0x02,0x02,0x26,0x14,0x0e,0x03,0x01,0x25,0x01,0x2b,0x35,0x00,0x35,0x00,0x00,0xff,0xff,0x00,0xca, -0x00,0x00,0x04,0x01,0x06,0x66,0x12,0x26,0x00,0x2c,0x00,0x00,0x11,0x07,0x01,0x4f,0x00,0x00,0x00,0x9a,0x00,0x13,0x40,0x0b,0x01,0x0c,0x05,0x26,0x01,0x01,0x0c,0x0e,0x00,0x01,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0x00,0x01,0x00,0x8f,0x00,0x00,0x04,0x65,0x04,0x3a,0x00,0x09,0x00,0x33,0x40,0x1a,0x07,0x07,0x05,0x04, -0x04,0x05,0x01,0x01,0x00,0x46,0xa0,0x05,0x01,0x05,0x05,0x0b,0x0a,0x07,0x50,0x08,0x0f,0x00,0x04,0x50,0x03,0x15,0x00,0x3f,0xed,0x32,0x3f,0xed,0x11,0x12,0x01,0x39,0x2f,0x71,0xed,0x32,0x2f,0x11,0x33,0x2f,0x12,0x39,0x2f,0x31,0x30,0x25,0x21,0x15,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x02,0xe9,0x01,0x7c,0xfc,0x2a,0x01,0xa6,0xfe, -0xc1,0x01,0xf3,0x8e,0x8e,0x8e,0x03,0x1e,0x8e,0x00,0x00,0x00,0x00,0x02,0x00,0x62,0xff,0xec,0x04,0x85,0x05,0x45,0x00,0x03,0x00,0x19,0x00,0x71,0x40,0x2e,0x75,0x06,0x85,0x06,0x02,0x61,0x18,0x71,0x18,0x81,0x18,0x03,0x0a,0x13,0x01,0x0a,0x0f,0x01,0x10,0x09,0x20,0x09,0x30,0x09,0x03,0x09,0x09,0x03,0x07,0x17,0x5a,0x16,0x0c,0x5a, -0x07,0x9f,0x16,0xaf,0x16,0x02,0x90,0x07,0xa0,0x07,0x02,0x07,0xb8,0xff,0xc0,0x40,0x18,0x09,0x0c,0x48,0x16,0x07,0x16,0x07,0x1b,0x02,0x5a,0x03,0x17,0x17,0x04,0x5f,0x11,0x13,0x09,0x5f,0x00,0x0a,0x03,0x03,0x12,0x00,0x3f,0x3f,0x33,0xed,0x3f,0xed,0x33,0x2f,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x5d,0x5d,0x10,0xed,0x10, -0xed,0x11,0x12,0x39,0x2f,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x11,0x23,0x25,0x32,0x36,0x35,0x11,0x21,0x35,0x21,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x01,0x62,0xbf,0xbf,0x02,0x9e,0x68,0x5f,0xfe,0xf1,0x01,0xcd,0x30,0x61,0x93,0x62,0x55,0x83,0x5e,0x3e,0x12,0xba,0x14,0x67,0x05,0x45,0xfa,0xbb, -0x87,0x8f,0x8a,0x03,0x09,0x9c,0xfc,0x5f,0x64,0xa3,0x73,0x3e,0x2c,0x5a,0x8c,0x60,0x1f,0x81,0x75,0x00,0x00,0x04,0x00,0xd8,0xfe,0x57,0x04,0x25,0x05,0xcc,0x00,0x03,0x00,0x07,0x00,0x1f,0x00,0x23,0x00,0x6d,0x40,0x27,0x75,0x1d,0x85,0x1d,0x02,0x0a,0x0d,0x1a,0x0d,0x02,0x14,0x14,0x03,0x1f,0x20,0x4a,0x23,0x23,0x0a,0x46,0x60,0x1f, -0x01,0x1f,0x1f,0x25,0x03,0x04,0x4a,0x07,0x07,0x02,0x46,0x00,0x03,0xd0,0x03,0x02,0x03,0xb8,0xff,0xc0,0x40,0x19,0x1f,0x25,0x48,0x03,0x1a,0x50,0x0f,0x1b,0x03,0x15,0x08,0x00,0x0f,0x20,0x30,0x04,0x60,0x04,0x02,0x80,0x04,0x01,0x04,0x21,0x05,0x00,0x2f,0x33,0x2f,0x5d,0x71,0x33,0x3f,0x32,0x3f,0x3f,0xed,0x01,0x2f,0x2b,0x5d,0xed, -0x32,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0xed,0x11,0x12,0x39,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x13,0x33,0x11,0x23,0x03,0x35,0x33,0x15,0x05,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x35,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x03,0x35,0x33,0x15,0xed,0xb3,0xb4,0x14,0xc8,0x01,0xd1,0xb4,0x47,0x76,0x9c,0x56, -0x29,0x52,0x4c,0x41,0x18,0x16,0x3c,0x48,0x4f,0x28,0x38,0x61,0x48,0x29,0x14,0xc8,0x04,0x3a,0xfb,0xc6,0x05,0x0c,0xc0,0xc0,0xd2,0xfb,0xaa,0x6d,0x97,0x5f,0x2a,0x07,0x0c,0x0f,0x09,0x8c,0x05,0x0c,0x0a,0x07,0x1c,0x3d,0x5f,0x43,0x05,0x25,0xc0,0xc0,0xff,0xff,0x00,0xb0,0xff,0xec,0x04,0x29,0x06,0xa9,0x12,0x26,0x00,0x2d,0x00,0x00, -0x11,0x07,0x01,0x4b,0x00,0x78,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x17,0x05,0x26,0x01,0x99,0x1c,0x16,0x08,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xd5,0xfe,0x57,0x04,0x18,0x05,0xb4,0x12,0x26,0x02,0x99,0x00,0x00,0x11,0x06,0x01,0x4b,0x67,0x00,0x00,0x13,0x40,0x0b,0x01,0x1b,0x11,0x26,0x01,0x90, -0x20,0x1a,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xa2,0xfe,0x59,0x04,0xcb,0x05,0x45,0x12,0x26,0x00,0x2e,0x00,0x00,0x11,0x06,0x02,0x95,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xaf,0xb4,0x0c,0x0f,0x04,0x0b,0x25,0x01,0x2b,0x35,0x00,0x00,0xff,0xff,0x00,0xec,0xfe,0x59,0x04,0x65,0x05,0xcc,0x12,0x26, -0x00,0x4e,0x00,0x00,0x11,0x06,0x02,0x95,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xbd,0xb4,0x0c,0x0f,0x04,0x0b,0x25,0x01,0x2b,0x35,0x00,0x00,0x00,0x01,0x00,0xec,0x00,0x00,0x04,0x65,0x04,0x3a,0x00,0x0b,0x00,0xb0,0x40,0x2d,0x66,0x07,0x76,0x07,0x86,0x07,0x03,0x64,0x09,0x74,0x09,0x84,0x09,0x03,0x8d,0x01,0x01,0x7b,0x01,0x01, -0x49,0x01,0x59,0x01,0x69,0x01,0x03,0x49,0x08,0x59,0x08,0x02,0x6b,0x00,0x7b,0x00,0x8b,0x00,0x03,0x49,0x00,0x59,0x00,0x02,0x0a,0xb8,0xff,0xe8,0x40,0x28,0x0b,0x11,0x48,0x44,0x09,0x54,0x09,0x02,0x01,0x0a,0x08,0x09,0x10,0x09,0x09,0x00,0x9f,0x0b,0xaf,0x0b,0xbf,0x0b,0x03,0x00,0x0b,0x10,0x0b,0x02,0x0b,0x10,0x0b,0x0b,0x0d,0x07, -0x03,0x46,0x00,0x04,0x01,0x04,0xb8,0xff,0xc0,0xb3,0x1f,0x25,0x48,0x04,0xb8,0xff,0xc0,0xb3,0x16,0x1b,0x48,0x04,0xb8,0xff,0xc0,0x40,0x10,0x0d,0x11,0x48,0x04,0x02,0x07,0x0a,0x01,0x07,0x01,0x08,0x05,0x0f,0x04,0x00,0x15,0x00,0x3f,0x32,0x3f,0x33,0x39,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0x2b,0x2b,0x2b,0x5d,0xed,0x32,0x11,0x33, -0x2f,0x38,0x5d,0x5d,0x33,0x33,0x2f,0x38,0x33,0x39,0x39,0x5d,0x31,0x30,0x2b,0x5d,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x00,0x5d,0x21,0x01,0x07,0x11,0x23,0x11,0x33,0x11,0x01,0x33,0x09,0x01,0x03,0x92,0xfe,0x92,0x84,0xb4,0xb4,0x01,0xdb,0xd3,0xfe,0x49,0x01,0xce,0x01,0xee,0x62,0xfe,0x74,0x04,0x3a,0xfd,0xe6,0x02,0x1a,0xfe, -0x2f,0xfd,0x97,0x00,0xff,0xff,0x00,0xed,0x00,0x00,0x04,0x4c,0x06,0xa9,0x12,0x26,0x00,0x2f,0x00,0x00,0x11,0x07,0x00,0x74,0xff,0x9e,0x00,0xf5,0x00,0x15,0xb4,0x01,0x06,0x05,0x26,0x01,0xb8,0xff,0x68,0xb4,0x06,0x09,0x00,0x04,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x02,0x00,0x86,0x00,0x00,0x04,0x5c,0x06,0xa9,0x00,0x09, -0x00,0x0f,0x00,0x61,0x40,0x0a,0x0c,0x86,0x76,0x0d,0x86,0x0d,0x02,0x0d,0x82,0x0f,0xb8,0xff,0xf0,0x40,0x2c,0x0b,0x0f,0x48,0x0f,0x84,0x15,0x0a,0x01,0x03,0x0a,0x01,0x02,0x0a,0x0a,0x08,0x08,0x05,0x04,0x04,0x05,0x01,0x01,0x00,0x46,0xa0,0x05,0x01,0x05,0x05,0x11,0x10,0x0c,0x8c,0x0f,0x0f,0x07,0x50,0x08,0x03,0x00,0x04,0x50,0x03, -0x15,0x00,0x3f,0xed,0x32,0x3f,0xed,0x33,0x2f,0xed,0x11,0x12,0x01,0x39,0x2f,0x71,0xed,0x32,0x2f,0x11,0x33,0x2f,0x12,0x39,0x2f,0x32,0x2f,0x5f,0x5d,0x5d,0xed,0x2b,0xfd,0x5d,0xed,0x31,0x30,0x25,0x21,0x15,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x27,0x35,0x37,0x33,0x15,0x05,0x02,0xe0,0x01,0x7c,0xfc,0x2a,0x01,0xa6,0xfe,0xdf,0x01, -0xd5,0xcd,0xe3,0xc5,0xfe,0xd4,0x8e,0x8e,0x8e,0x04,0x29,0x8e,0x60,0x14,0xf0,0x1d,0xe7,0x00,0x00,0x00,0xff,0xff,0x00,0xed,0xfe,0x59,0x04,0x4c,0x05,0x45,0x12,0x26,0x00,0x2f,0x00,0x00,0x11,0x06,0x02,0x95,0x0a,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xd3,0xb4,0x06,0x09,0x00,0x04,0x25,0x01,0x2b,0x35,0x00,0x00,0xff,0xff,0x00,0x86, -0xfe,0x59,0x04,0x5c,0x05,0xcc,0x12,0x26,0x00,0x4f,0x00,0x00,0x11,0x06,0x02,0x95,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xf4,0xb4,0x0a,0x0d,0x03,0x01,0x25,0x01,0x2b,0x35,0x00,0x00,0xff,0xff,0x00,0xed,0x00,0x00,0x04,0x4c,0x05,0x45,0x12,0x26,0x00,0x2f,0x00,0x00,0x11,0x07,0x02,0x95,0x01,0x2c,0x05,0xa7,0x00,0x12,0x40,0x0a, -0x01,0x08,0x03,0x01,0xf4,0x06,0x09,0x00,0x04,0x25,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0x00,0x55,0x00,0x00,0x04,0x93,0x05,0xcc,0x10,0x26,0x00,0x4f,0xcf,0x00,0x11,0x07,0x02,0x97,0x01,0xa4,0x00,0x00,0x00,0x14,0xb3,0x01,0x0c,0x00,0x01,0xb8,0x01,0xc9,0xb4,0x0a,0x0d,0x03,0x01,0x25,0x01,0x2b,0x35,0x00,0x3f,0x35,0x00,0x00, -0xff,0xff,0x00,0xed,0x00,0x00,0x04,0x4c,0x05,0x45,0x12,0x26,0x00,0x2f,0x00,0x00,0x11,0x07,0x01,0x4f,0x00,0x9c,0xfd,0x54,0x00,0x0b,0xb6,0x01,0x66,0x06,0x08,0x00,0x04,0x25,0x01,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x86,0x00,0x00,0x04,0x6b,0x05,0xcc,0x12,0x26,0x00,0x4f,0x00,0x00,0x10,0x07,0x01,0x4f,0x01,0xa0,0xfd,0x54, -0x00,0x01,0x00,0x36,0x00,0x00,0x04,0x4c,0x05,0x45,0x00,0x0d,0x00,0x64,0x40,0x3d,0x8b,0x01,0x01,0x84,0x07,0x01,0x60,0x07,0x70,0x07,0x02,0x09,0x09,0x0b,0x0d,0x0d,0x0f,0x07,0x0b,0x5a,0x00,0x04,0x00,0x03,0x03,0x2f,0x00,0x3f,0x00,0x02,0x00,0x00,0x10,0x00,0x02,0x00,0x09,0x03,0x01,0x0a,0x04,0x07,0x04,0x02,0x6f,0x08,0x7f,0x08, -0x8f,0x08,0x03,0x08,0x02,0x08,0x02,0x05,0x03,0x0b,0x5f,0x00,0x12,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x5d,0x12,0x17,0x39,0x32,0x33,0x01,0x2f,0x5d,0x5d,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0x12,0x39,0x2f,0x12,0x39,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x33,0x11,0x07,0x27,0x37,0x11,0x33,0x11,0x25,0x17,0x05,0x11,0x21,0x15, -0xed,0x75,0x42,0xb7,0xbf,0x01,0x24,0x3d,0xfe,0x9f,0x02,0xa0,0x01,0xca,0x3d,0x79,0x60,0x02,0xdf,0xfd,0x84,0x97,0x79,0xb9,0xfe,0x6e,0x9c,0x00,0x00,0x01,0x00,0x86,0x00,0x00,0x04,0x5c,0x05,0xcc,0x00,0x11,0x00,0x7c,0x40,0x15,0x10,0x10,0x08,0x09,0x60,0x0c,0x01,0x9f,0x0c,0x01,0x7f,0x02,0x8f,0x02,0x9f,0x02,0x03,0x4f,0x02,0x01, -0x02,0xb8,0xff,0xc0,0x40,0x32,0x09,0x0c,0x48,0x0c,0x02,0x0c,0x02,0x05,0x08,0x08,0x09,0x05,0x05,0x00,0x04,0x46,0x0d,0xa0,0x09,0x01,0x09,0x09,0x12,0x13,0x00,0x0d,0x03,0x0a,0x04,0x0b,0x3f,0x0b,0x01,0x20,0x01,0x01,0x01,0x0b,0x01,0x0b,0x08,0x0f,0x50,0x10,0x00,0x04,0x08,0x50,0x07,0x15,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39, -0x39,0x2f,0x2f,0x5d,0x5d,0x12,0x17,0x39,0x11,0x12,0x01,0x39,0x2f,0x71,0x33,0xed,0x32,0x32,0x2f,0x11,0x33,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x5d,0x71,0x5d,0x71,0x11,0x12,0x39,0x2f,0x31,0x30,0x01,0x37,0x17,0x05,0x11,0x21,0x15,0x21,0x35,0x21,0x11,0x07,0x27,0x25,0x11,0x21,0x35,0x21,0x02,0xe0,0xe1,0x3e,0xfe,0xe1,0x01,0x7c, -0xfc,0x2a,0x01,0xa6,0xda,0x40,0x01,0x1a,0xfe,0xad,0x02,0x07,0x03,0x74,0x81,0x71,0xa4,0xfd,0xae,0x8e,0x8e,0x01,0xed,0x7b,0x70,0x9f,0x02,0x2f,0x8e,0x00,0x00,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x2a,0x06,0xa9,0x12,0x26,0x00,0x31,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x7a,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x14,0x05,0x26, -0x01,0x7a,0x14,0x17,0x08,0x12,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xb3,0x00,0x00,0x04,0x19,0x05,0xb4,0x12,0x26,0x00,0x51,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x89,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x26,0x11,0x26,0x01,0x89,0x26,0x29,0x13,0x24,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00, -0xff,0xff,0x00,0xa2,0xfe,0x59,0x04,0x2a,0x05,0x45,0x12,0x26,0x00,0x31,0x00,0x00,0x11,0x06,0x02,0x95,0xe1,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xe0,0xb4,0x14,0x17,0x08,0x12,0x25,0x01,0x2b,0x35,0x00,0x00,0xff,0xff,0x00,0xb3,0xfe,0x59,0x04,0x19,0x04,0x4e,0x12,0x26,0x00,0x51,0x00,0x00,0x11,0x06,0x02,0x95,0xe5,0x00,0x00,0x0e, -0xb9,0x00,0x01,0xff,0xe4,0xb4,0x26,0x29,0x13,0x24,0x25,0x01,0x2b,0x35,0x00,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x2a,0x06,0xa9,0x12,0x26,0x00,0x31,0x00,0x00,0x11,0x07,0x01,0x4c,0x00,0x06,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x14,0x05,0x26,0x01,0x06,0x16,0x1c,0x08,0x12,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00, -0xff,0xff,0x00,0xb3,0x00,0x00,0x04,0x19,0x05,0xb4,0x12,0x26,0x00,0x51,0x00,0x00,0x11,0x06,0x01,0x4c,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x26,0x11,0x26,0x01,0x00,0x28,0x2e,0x13,0x24,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x05,0x00,0x00,0x04,0x82,0x05,0x46,0x10,0x26,0x00,0x51,0x69,0x00,0x11,0x07,0x02,0x95, -0xfe,0x2a,0x05,0xa8,0x00,0x18,0xb6,0x01,0x28,0x03,0x01,0x20,0x26,0x01,0xb8,0xfd,0xc0,0xb4,0x26,0x29,0x13,0x24,0x25,0x01,0x2b,0x5d,0x35,0x00,0x3f,0x35,0x00,0x00,0x00,0x01,0x00,0xb3,0xff,0xec,0x04,0x55,0x05,0x5a,0x00,0x37,0x00,0x9c,0x40,0x36,0x14,0x30,0x24,0x30,0x34,0x30,0x03,0x0c,0x03,0x1c,0x03,0x2c,0x03,0x7c,0x03,0x8c, -0x03,0x05,0x73,0x35,0x83,0x35,0x02,0x05,0x34,0x15,0x34,0x25,0x34,0x75,0x34,0x85,0x34,0x05,0x74,0x0b,0x84,0x0b,0x02,0x0b,0x0f,0x0a,0x01,0x0a,0x0a,0x21,0x00,0x5c,0x40,0x15,0xe0,0x15,0x02,0x15,0xb8,0xff,0xc0,0x40,0x17,0x15,0x18,0x48,0x7f,0x15,0x8f,0x15,0x02,0x00,0x15,0x01,0x15,0x15,0x39,0x2e,0x21,0x5c,0x00,0x22,0x10,0x22, -0x02,0x22,0xb8,0xff,0xc0,0xb3,0x1c,0x20,0x48,0x22,0xb8,0xff,0xc0,0x40,0x14,0x11,0x14,0x48,0x22,0x2e,0x1b,0x60,0x32,0x04,0x28,0x03,0x22,0x12,0x10,0x5f,0x05,0x0b,0x0b,0x05,0x13,0x00,0x3f,0x33,0x2f,0x10,0xed,0x3f,0x3f,0x3f,0xed,0x33,0x01,0x2f,0x2b,0x2b,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0x5d,0x2b,0x71,0xed,0x12,0x39,0x2f, -0x5d,0x33,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x15,0x33,0x3e,0x01,0x33,0x32,0x1e,0x02,0x15,0x04,0x55,0x1f,0x4d,0x83,0x64,0x3e,0x59,0x41, -0x30,0x15,0x83,0x0f,0x1e,0x25,0x2e,0x1f,0x2e,0x3b,0x23,0x0d,0x24,0x41,0x58,0x33,0x42,0x76,0x58,0x33,0xb4,0x01,0x02,0x02,0x01,0xaa,0x01,0x02,0x03,0x02,0x03,0x31,0xbe,0x93,0x57,0x87,0x5d,0x30,0x02,0x1e,0x82,0xd0,0x92,0x4e,0x19,0x2a,0x37,0x1e,0x64,0x15,0x24,0x1b,0x0f,0x3a,0x6b,0x99,0x5f,0x01,0xa1,0x50,0x67,0x3d,0x18,0x2d, -0x55,0x7d,0x51,0xfc,0x81,0x04,0x5f,0x22,0x4b,0x43,0x30,0x07,0x05,0x2c,0x39,0x3b,0x14,0x5f,0x6e,0x2c,0x5c,0x90,0x65,0x00,0x00,0x01,0x00,0xb3,0xfe,0x57,0x04,0x19,0x04,0x4e,0x00,0x35,0x00,0x4f,0x40,0x33,0x22,0x20,0x09,0x0f,0x48,0x73,0x1c,0x83,0x1c,0x02,0x05,0x1b,0x15,0x1b,0x25,0x1b,0x75,0x1b,0x85,0x1b,0x05,0x27,0x27,0x07, -0x1f,0x46,0x30,0x30,0x37,0x13,0x06,0x46,0x00,0x07,0x80,0x07,0x02,0x07,0x2b,0x50,0x24,0x1b,0x13,0x00,0x50,0x19,0x10,0x0d,0x0f,0x07,0x15,0x00,0x3f,0x3f,0x3f,0xed,0x33,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x2b,0x01,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02, -0x27,0x33,0x1e,0x03,0x15,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x1e,0x01,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x2e,0x02,0x02,0x88,0x3b,0x67,0x4d,0x2c,0xb4,0x01,0x02,0x02,0x01,0xaa,0x01,0x02,0x03,0x02,0x03,0x18,0x41,0x55,0x6a,0x42,0x53,0x80,0x57,0x2d,0x16,0x36,0x5d,0x48,0x22, -0x41,0x1c,0x0d,0x24,0x0d,0x26,0x31,0x1c,0x0a,0x21,0x3b,0x50,0x03,0xc3,0x2d,0x55,0x7d,0x51,0xfd,0x8d,0x03,0x53,0x22,0x4b,0x43,0x30,0x07,0x05,0x2c,0x39,0x3b,0x14,0x2f,0x4c,0x35,0x1d,0x2c,0x5c,0x90,0x65,0xfc,0xa9,0x3e,0x6a,0x4e,0x2d,0x04,0x05,0x8b,0x02,0x04,0x14,0x2b,0x43,0x2e,0x03,0x22,0x50,0x67,0x3d,0x18,0x00,0x00,0x00, -0xff,0xff,0x00,0x66,0xff,0xec,0x04,0x66,0x06,0x5e,0x12,0x26,0x00,0x32,0x00,0x00,0x11,0x07,0x01,0x4d,0x00,0x02,0x01,0x0b,0x00,0x13,0x40,0x0b,0x02,0x1e,0x05,0x26,0x02,0x00,0x1f,0x1e,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0xec,0x04,0x49,0x05,0x53,0x12,0x26,0x00,0x52,0x00,0x00, -0x11,0x06,0x01,0x4d,0x02,0x00,0x00,0x13,0x40,0x0b,0x02,0x24,0x11,0x26,0x02,0x01,0x25,0x24,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x66,0xff,0xec,0x04,0x66,0x06,0xa9,0x12,0x26,0x00,0x32,0x00,0x00,0x11,0x07,0x01,0x4e,0x00,0x00,0x00,0xf5,0x00,0x13,0x40,0x0b,0x02,0x1e,0x05,0x26,0x02,0x00,0x23,0x2b, -0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0xec,0x04,0x49,0x05,0xb4,0x12,0x26,0x00,0x52,0x00,0x00,0x11,0x06,0x01,0x4e,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x24,0x11,0x26,0x02,0x00,0x29,0x31,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x66,0xff,0xec,0x04,0x66, -0x06,0xa8,0x12,0x26,0x00,0x32,0x00,0x00,0x11,0x07,0x01,0x53,0x01,0x2d,0x00,0xf4,0x00,0x17,0x40,0x0d,0x03,0x02,0x1e,0x05,0x26,0x03,0x02,0x5f,0x24,0x21,0x0a,0x00,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0xec,0x04,0x53,0x05,0xb4,0x12,0x26,0x00,0x52,0x00,0x00,0x11,0x07,0x01,0x53, -0x01,0x40,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x24,0x11,0x26,0x03,0x02,0x72,0x2a,0x27,0x0a,0x00,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0x00,0x02,0x00,0x14,0xff,0xfb,0x04,0xc5,0x05,0x4b,0x00,0x17,0x00,0x28,0x00,0x74,0x40,0x49,0x76,0x26,0x86,0x26,0x02,0x46,0x09,0x56,0x09,0x02,0x49,0x04,0x59,0x04, -0x02,0x12,0x0e,0x12,0x0e,0x16,0x11,0x15,0x5c,0x1b,0x1b,0x06,0x16,0x16,0x2a,0x24,0x5c,0x06,0x14,0x5f,0x0f,0x11,0x3f,0x11,0x7f,0x11,0x8f,0x11,0x04,0x6f,0x11,0x8f,0x11,0x9f,0x11,0xbf,0x11,0xdf,0x11,0x05,0x11,0x11,0x0e,0x18,0x16,0x5f,0x17,0x03,0x03,0x17,0x12,0x1f,0x0f,0x5f,0x0e,0x0b,0x0b,0x0e,0x03,0x00,0x3f,0x33,0x2f,0x10, -0xed,0x32,0x3f,0x33,0x2f,0x10,0xed,0x32,0x11,0x39,0x2f,0x71,0x72,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x21,0x0e,0x01,0x23,0x22,0x02,0x11,0x34,0x12,0x3e,0x01,0x33,0x32,0x17,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x25,0x32,0x36,0x37, -0x11,0x2e,0x01,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x02,0x61,0x17,0x31,0x1a,0xff,0xec,0x3d,0x7b,0xb9,0x7c,0x3a,0x33,0x02,0x2e,0xfe,0x72,0x01,0x6f,0xfe,0x91,0x01,0xb7,0xfd,0x3b,0x16,0x3b,0x13,0x13,0x3b,0x15,0x4e,0x75,0x4e,0x27,0x28,0x4f,0x74,0x02,0x03,0x01,0x52,0x01,0x5c,0xb4,0x01,0x00,0xa2,0x4c,0x06,0x98,0xfe,0x48, -0x96,0xfe,0x39,0x98,0x8c,0x02,0x04,0x04,0x21,0x03,0x03,0x3a,0x7f,0xc8,0x8f,0x8e,0xcc,0x84,0x3f,0x00,0x00,0x03,0x00,0x1c,0xff,0xec,0x04,0xb4,0x04,0x4e,0x00,0x26,0x00,0x3a,0x00,0x43,0x00,0xaa,0x40,0x73,0x7b,0x42,0x8b,0x42,0x02,0x7a,0x3e,0x8a,0x3e,0x02,0x76,0x38,0x86,0x38,0x02,0x79,0x2a,0x89,0x2a,0x02,0x66,0x03,0x76,0x03, -0x86,0x03,0x03,0x64,0x33,0x74,0x33,0x84,0x33,0x03,0x6b,0x2f,0x7b,0x2f,0x8b,0x2f,0x03,0x05,0x22,0x15,0x22,0x02,0x05,0x1a,0x15,0x1a,0x02,0x0a,0x15,0x1a,0x15,0x02,0x10,0x1d,0x40,0x00,0x48,0x27,0x27,0x18,0x25,0x08,0x49,0x09,0x09,0x25,0x48,0x10,0x41,0x01,0x41,0x41,0x45,0x31,0x48,0x4f,0x18,0x5f,0x18,0x9f,0x18,0xaf,0x18,0x04, -0x18,0x00,0x50,0x40,0x40,0x36,0x3b,0x2c,0x50,0x20,0x1d,0x1b,0x10,0x05,0x36,0x50,0x13,0x10,0x0e,0x13,0x80,0x08,0x01,0x08,0x08,0x13,0x16,0x00,0x3f,0x33,0x2f,0x5d,0x11,0x33,0x33,0x10,0xed,0x32,0x3f,0x33,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed, -0x32,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x17,0x0e,0x03,0x23,0x22,0x27,0x0e,0x01,0x23,0x22,0x2e,0x02,0x35,0x10,0x12,0x33,0x32,0x17,0x3e,0x01,0x33,0x32,0x1e,0x02,0x1d,0x01,0x25,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32, -0x3e,0x02,0x01,0x22,0x0e,0x02,0x07,0x21,0x2e,0x01,0x02,0xc8,0x13,0x29,0x40,0x2c,0x41,0x4e,0x0e,0x8a,0x0b,0x28,0x44,0x66,0x48,0xb6,0x51,0x2a,0x85,0x5b,0x4b,0x78,0x55,0x2d,0xaa,0xa2,0xbb,0x4f,0x2d,0x85,0x51,0x5b,0x7b,0x4a,0x1f,0xfd,0x6b,0x18,0x2c,0x3f,0x27,0x27,0x41,0x2f,0x19,0x1b,0x2e,0x3e,0x23,0x28,0x41,0x2e,0x19,0x01, -0x4c,0x19,0x37,0x2f,0x20,0x02,0x01,0x44,0x08,0x50,0x01,0xf7,0x55,0x8f,0x67,0x39,0x5e,0x48,0x2d,0x2d,0x5b,0x49,0x2f,0xb7,0x5d,0x5a,0x44,0x8c,0xd3,0x8f,0x01,0x17,0x01,0x19,0xb1,0x5e,0x53,0x58,0x9b,0xd2,0x7a,0x18,0x27,0x7e,0xa4,0x62,0x27,0x29,0x63,0xa4,0x7b,0x7e,0xa5,0x62,0x28,0x27,0x62,0xa6,0x02,0x29,0x1d,0x4a,0x7f,0x62, -0xab,0x9d,0x00,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x99,0x06,0xa9,0x12,0x26,0x00,0x35,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x48,0x00,0xf5,0x00,0x13,0x40,0x0b,0x02,0x1c,0x05,0x26,0x02,0x10,0x1c,0x1f,0x04,0x11,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xf2,0x00,0x00,0x04,0x15,0x05,0xb4,0x12,0x26, -0x00,0x55,0x00,0x00,0x11,0x06,0x00,0x74,0x59,0x00,0x00,0x13,0x40,0x0b,0x01,0x20,0x11,0x26,0x01,0x3b,0x20,0x23,0x10,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xa2,0xfe,0x59,0x04,0x99,0x05,0x45,0x12,0x26,0x00,0x35,0x00,0x00,0x11,0x06,0x02,0x95,0xfd,0x00,0x00,0x0e,0xb9,0x00,0x02,0xff,0xc5,0xb4,0x1c,0x1f, -0x04,0x11,0x25,0x01,0x2b,0x35,0x00,0x00,0xff,0xff,0x00,0xcb,0xfe,0x59,0x04,0x15,0x04,0x4e,0x12,0x26,0x00,0x55,0x00,0x00,0x11,0x07,0x02,0x95,0xfe,0xf0,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xfe,0xd2,0xb4,0x20,0x23,0x10,0x00,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x99,0x06,0xa9,0x12,0x26,0x00,0x35,0x00,0x00, -0x11,0x07,0x01,0x4c,0xff,0xed,0x00,0xf5,0x00,0x15,0xb4,0x02,0x1c,0x05,0x26,0x02,0xb8,0xff,0xb6,0xb4,0x1e,0x24,0x04,0x11,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xf2,0x00,0x00,0x04,0x15,0x05,0xb4,0x12,0x26,0x00,0x55,0x00,0x00,0x11,0x06,0x01,0x4c,0x14,0x00,0x00,0x15,0xb4,0x01,0x20,0x11,0x26,0x01,0xb8,0xff, -0xf7,0xb4,0x22,0x28,0x10,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x4f,0xff,0xec,0x04,0x68,0x06,0xa9,0x12,0x26,0x00,0x36,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x78,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x40,0x05,0x26,0x01,0x82,0x40,0x43,0x08,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00, -0xff,0xff,0x00,0xa7,0xff,0xec,0x04,0x24,0x05,0xb4,0x12,0x26,0x00,0x56,0x00,0x00,0x11,0x06,0x00,0x74,0x56,0x00,0x00,0x13,0x40,0x0b,0x01,0x39,0x11,0x26,0x01,0x56,0x39,0x3c,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x4f,0xff,0xec,0x04,0x68,0x06,0xa9,0x12,0x26,0x00,0x36,0x00,0x00,0x11,0x07,0x01,0x4b, -0x00,0x04,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x41,0x05,0x26,0x01,0x0e,0x46,0x40,0x08,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xa7,0xff,0xec,0x04,0x24,0x05,0xb4,0x12,0x26,0x00,0x56,0x00,0x00,0x11,0x06,0x01,0x4b,0x0f,0x00,0x00,0x13,0x40,0x0b,0x01,0x3a,0x11,0x26,0x01,0x0f,0x3f,0x39,0x0a,0x00, -0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x4f,0xfe,0x44,0x04,0x68,0x05,0x5a,0x12,0x26,0x00,0x36,0x00,0x00,0x11,0x07,0x00,0x78,0x01,0x4c,0x00,0x00,0x00,0x0b,0xb6,0x01,0x1d,0x48,0x40,0x08,0x00,0x25,0x01,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xa7,0xfe,0x44,0x04,0x24,0x04,0x4b,0x12,0x26,0x00,0x56,0x00,0x00, -0x11,0x07,0x00,0x78,0x01,0x56,0x00,0x00,0x00,0x0b,0xb6,0x01,0x1d,0x41,0x39,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x4f,0xff,0xec,0x04,0x68,0x06,0xa8,0x12,0x26,0x00,0x36,0x00,0x00,0x11,0x07,0x01,0x4c,0x00,0x00,0x00,0xf4,0x00,0x13,0x40,0x0b,0x01,0x40,0x05,0x26,0x01,0x0a,0x42,0x48,0x08,0x00,0x25,0x01, -0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xa7,0xff,0xec,0x04,0x24,0x05,0xb4,0x12,0x26,0x00,0x56,0x00,0x00,0x11,0x06,0x01,0x4c,0x05,0x00,0x00,0x13,0x40,0x0b,0x01,0x39,0x11,0x26,0x01,0x05,0x3b,0x41,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x4c,0xfe,0x44,0x04,0x80,0x05,0x45,0x10,0x27, -0x00,0x78,0x01,0x4c,0x00,0x00,0x12,0x06,0x00,0x37,0x00,0x00,0xff,0xff,0x00,0xbe,0xfe,0x44,0x03,0xf9,0x05,0x54,0x10,0x27,0x00,0x78,0x01,0x56,0x00,0x00,0x12,0x06,0x00,0x57,0x00,0x00,0xff,0xff,0x00,0x4c,0x00,0x00,0x04,0x80,0x06,0xa9,0x12,0x26,0x00,0x37,0x00,0x00,0x11,0x07,0x01,0x4c,0x00,0x00,0x00,0xf5,0x00,0x13,0x40,0x0b, -0x01,0x08,0x05,0x26,0x01,0x00,0x0a,0x10,0x04,0x06,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x65,0xff,0xf0,0x04,0xc5,0x05,0xcc,0x10,0x26,0x00,0x57,0xa7,0x00,0x11,0x07,0x02,0x97,0x01,0xd6,0x00,0x00,0x00,0x11,0xb1,0x01,0x01,0xb8,0x02,0x38,0xb4,0x1c,0x1f,0x00,0x11,0x25,0x01,0x2b,0x35,0x00,0x35,0x00, -0x00,0x01,0x00,0x4c,0x00,0x00,0x04,0x80,0x05,0x45,0x00,0x0f,0x00,0x6f,0x40,0x44,0x02,0x02,0x0e,0x05,0x09,0x09,0x06,0x0d,0x0e,0x0e,0x01,0x05,0x5a,0x06,0x40,0x0d,0x06,0x0e,0x0d,0x0a,0x0f,0x06,0x3f,0x06,0x8f,0x06,0x9f,0x06,0xbf,0x06,0xcf,0x06,0x06,0x4f,0x06,0x5f,0x06,0x7f,0x06,0x8f,0x06,0xcf,0x06,0xdf,0x06,0x06,0x10,0x06, -0x01,0x06,0x06,0x10,0x11,0x00,0x0c,0x5f,0x0d,0x04,0x08,0x5f,0x01,0x09,0x09,0x05,0x0d,0x03,0x05,0x12,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x5d,0x5d,0x71,0x33,0xc4,0x2b,0x01,0x1a,0x18,0x10,0x4d,0xfd,0x32,0xe4,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x31,0x30,0x01,0x11,0x33, -0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x35,0x21,0x15,0x02,0xc5,0xf0,0xf0,0xbe,0xf0,0xf0,0xfe,0x45,0x04,0x34,0x04,0xa9,0xfe,0x58,0x95,0xfd,0x94,0x02,0x6c,0x95,0x01,0xa8,0x9c,0x9c,0x00,0x00,0x00,0x01,0x00,0xc8,0xff,0xf0,0x04,0x03,0x05,0x54,0x00,0x23,0x00,0x7b,0x40,0x4e,0x6a,0x12,0x7a,0x12,0x8a,0x12,0x03,0x12, -0x28,0x09,0x0e,0x48,0x01,0x21,0x21,0x0b,0x0b,0x25,0x23,0x1f,0x03,0x46,0x14,0x1a,0x90,0x16,0x01,0x16,0x16,0x18,0x1c,0x03,0x2f,0x14,0x3f,0x14,0x4f,0x14,0x03,0x14,0x40,0x20,0x24,0x48,0x14,0x40,0x1a,0x1e,0x48,0x14,0x40,0x12,0x18,0x48,0x00,0x14,0x01,0x14,0x22,0x1a,0x50,0x1b,0x02,0x16,0x50,0x23,0x17,0x17,0x1f,0x1b,0x1d,0x1d, -0x1b,0x0f,0x06,0x50,0x11,0x16,0x00,0x3f,0xed,0x3f,0x33,0x2f,0x11,0x33,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0x5d,0x2b,0x2b,0x2b,0x5d,0x17,0x33,0x2f,0x5d,0x33,0x10,0xed,0x32,0x32,0x12,0x39,0x2f,0x33,0x2f,0x33,0x31,0x30,0x00,0x2b,0x5d,0x01,0x15,0x21,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23, -0x22,0x26,0x3d,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x13,0x33,0x11,0x21,0x15,0x21,0x11,0x03,0xd4,0xfe,0x50,0x55,0x61,0x28,0x55,0x4f,0x45,0x18,0x16,0x46,0x57,0x66,0x36,0xa2,0xa2,0xa8,0xa8,0xa8,0xaa,0x3a,0x78,0x01,0xb0,0xfe,0x50,0x02,0x87,0x84,0xe3,0x4f,0x4c,0x07,0x0a,0x0c,0x05,0x89,0x06,0x10,0x0e,0x0a,0x89,0x94,0xf6, -0x84,0x01,0x25,0x8e,0x01,0x1a,0xfe,0xe6,0x8e,0xfe,0xdb,0x00,0xff,0xff,0x00,0x8e,0xff,0xec,0x04,0x3d,0x06,0x9e,0x12,0x26,0x00,0x38,0x00,0x00,0x11,0x07,0x01,0x52,0x00,0x01,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x1a,0x05,0x26,0x01,0x01,0x25,0x35,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xb9, -0xff,0xec,0x04,0x1f,0x05,0xa9,0x12,0x26,0x00,0x58,0x00,0x00,0x11,0x06,0x01,0x52,0x01,0x00,0x00,0x15,0xb4,0x01,0x26,0x11,0x26,0x01,0xb8,0xff,0xfb,0xb4,0x31,0x41,0x24,0x13,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x8e,0xff,0xec,0x04,0x3d,0x06,0x5e,0x12,0x26,0x00,0x38,0x00,0x00,0x11,0x07,0x01,0x4d, -0x00,0x02,0x01,0x0b,0x00,0x13,0x40,0x0b,0x01,0x1a,0x05,0x26,0x01,0x01,0x1b,0x1a,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xb9,0xff,0xec,0x04,0x1f,0x05,0x53,0x12,0x26,0x00,0x58,0x00,0x00,0x11,0x06,0x01,0x4d,0x02,0x00,0x00,0x15,0xb4,0x01,0x26,0x11,0x26,0x01,0xb8,0xff,0xfb,0xb4,0x27,0x26, -0x24,0x13,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x8e,0xff,0xec,0x04,0x3d,0x06,0xa9,0x12,0x26,0x00,0x38,0x00,0x00,0x11,0x07,0x01,0x4e,0x00,0x00,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x1a,0x05,0x26,0x01,0x00,0x1f,0x27,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xb9, -0xff,0xec,0x04,0x1f,0x05,0xb4,0x12,0x26,0x00,0x58,0x00,0x00,0x11,0x06,0x01,0x4e,0x00,0x00,0x00,0x15,0xb4,0x01,0x26,0x11,0x26,0x01,0xb8,0xff,0xfa,0xb4,0x2b,0x33,0x24,0x13,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x8e,0xff,0xec,0x04,0x3d,0x06,0xa9,0x12,0x26,0x00,0x38,0x00,0x00,0x11,0x07,0x01,0x50, -0x00,0x00,0x00,0x9e,0x00,0x2e,0xb2,0x02,0x01,0x1f,0xb8,0xff,0xc0,0x40,0x18,0x14,0x18,0x48,0x90,0x1f,0x01,0x70,0x1f,0x01,0x10,0x1f,0x01,0x00,0x1f,0x01,0x1f,0x02,0x01,0x00,0x24,0x1a,0x0a,0x00,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x5d,0x5d,0x5d,0x5d,0x2b,0x35,0x35,0xff,0xff,0x00,0xb9,0xff,0xec,0x04,0x1f,0x06,0x0b,0x12,0x26, -0x00,0x58,0x00,0x00,0x11,0x06,0x01,0x50,0x00,0x00,0x00,0x19,0xb6,0x02,0x01,0x2b,0x11,0x26,0x02,0x01,0xb8,0xff,0xfa,0xb4,0x30,0x26,0x24,0x13,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x8e,0xff,0xec,0x04,0x4b,0x06,0xa9,0x12,0x26,0x00,0x38,0x00,0x00,0x11,0x07,0x01,0x53,0x01,0x38,0x00,0xf5, -0x00,0x17,0x40,0x0d,0x02,0x01,0x1a,0x05,0x26,0x02,0x01,0x6a,0x20,0x1d,0x0a,0x00,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xb9,0xff,0xec,0x04,0x51,0x05,0xb4,0x12,0x26,0x00,0x58,0x00,0x00,0x11,0x07,0x01,0x53,0x01,0x3e,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x26,0x11,0x26,0x02,0x01,0x6a, -0x2c,0x29,0x24,0x13,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x8e,0xfe,0x55,0x04,0x3d,0x05,0x45,0x12,0x26,0x00,0x38,0x00,0x00,0x11,0x06,0x01,0x51,0x3b,0x00,0x00,0x0b,0xb6,0x01,0x3d,0x20,0x1a,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xb9,0xfe,0x55,0x04,0x38,0x04,0x3a,0x12,0x26, -0x00,0x58,0x00,0x00,0x11,0x07,0x01,0x51,0x01,0x21,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x31,0x31,0x14,0x14,0x25,0x01,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xcc,0x06,0xa9,0x12,0x26,0x00,0x3a,0x00,0x00,0x11,0x07,0x01,0x4b,0xff,0xfc,0x00,0xf5,0x00,0x15,0xb4,0x01,0x34,0x05,0x26,0x01,0xb8,0xff,0xfc,0xb4, -0x39,0x33,0x13,0x32,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x15,0x00,0x00,0x04,0xb8,0x05,0xb4,0x12,0x26,0x00,0x5a,0x00,0x00,0x11,0x06,0x01,0x4b,0xfc,0x00,0x00,0x15,0xb4,0x01,0x2c,0x11,0x26,0x01,0xb8,0xff,0xfc,0xb4,0x31,0x2b,0x0f,0x2a,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x24, -0x00,0x00,0x04,0xa8,0x06,0xa9,0x12,0x26,0x00,0x3c,0x00,0x00,0x11,0x07,0x01,0x4b,0xff,0xfc,0x00,0xf5,0x00,0x15,0xb4,0x01,0x0a,0x05,0x26,0x01,0xb8,0xff,0xfc,0xb4,0x0f,0x09,0x04,0x08,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x42,0xfe,0x57,0x04,0x89,0x05,0xb4,0x12,0x26,0x00,0x5c,0x00,0x00,0x11,0x06,0x01,0x4b, -0xfc,0x00,0x00,0x15,0xb4,0x01,0x21,0x11,0x26,0x01,0xb8,0xff,0xfd,0xb4,0x26,0x20,0x11,0x1f,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x24,0x00,0x00,0x04,0xa8,0x06,0x5d,0x12,0x26,0x00,0x3c,0x00,0x00,0x11,0x07,0x00,0x69,0x00,0x01,0x00,0xe2,0x00,0x17,0x40,0x0d,0x02,0x01,0x09,0x05,0x26,0x02,0x01,0x00, -0x0d,0x0b,0x04,0x08,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x49,0x00,0x00,0x04,0x83,0x06,0xa9,0x12,0x26,0x00,0x3d,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x66,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x0a,0x05,0x26,0x01,0x66,0x0a,0x0d,0x01,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00, -0xff,0xff,0x00,0x93,0x00,0x00,0x04,0x2c,0x05,0xb4,0x12,0x26,0x00,0x5d,0x00,0x00,0x11,0x06,0x00,0x74,0x55,0x00,0x00,0x13,0x40,0x0b,0x01,0x0a,0x11,0x26,0x01,0x5b,0x0a,0x0d,0x00,0x08,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x49,0x00,0x00,0x04,0x83,0x06,0x66,0x12,0x26,0x00,0x3d,0x00,0x00,0x11,0x07,0x01,0x4f, -0x00,0x0d,0x00,0x9a,0x00,0x13,0x40,0x0b,0x01,0x0a,0x05,0x26,0x01,0x0e,0x0a,0x0c,0x01,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0x00,0x00,0x04,0x2c,0x05,0xcc,0x12,0x26,0x00,0x5d,0x00,0x00,0x11,0x06,0x01,0x4f,0xfd,0x00,0x00,0x0b,0xb6,0x01,0x04,0x0a,0x0c,0x00,0x08,0x25,0x01,0x2b,0x35,0x00, -0xff,0xff,0x00,0x49,0x00,0x00,0x04,0x83,0x06,0xa8,0x12,0x26,0x00,0x3d,0x00,0x00,0x11,0x07,0x01,0x4c,0x00,0x0a,0x00,0xf4,0x00,0x13,0x40,0x0b,0x01,0x0a,0x05,0x26,0x01,0x0a,0x0c,0x12,0x01,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0x00,0x00,0x04,0x2c,0x05,0xb4,0x12,0x26,0x00,0x5d,0x00,0x00, -0x11,0x06,0x01,0x4c,0x01,0x00,0x00,0x13,0x40,0x0b,0x01,0x0a,0x11,0x26,0x01,0x07,0x0c,0x12,0x00,0x08,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x01,0x01,0x90,0x00,0x00,0x04,0x4b,0x05,0xcc,0x00,0x17,0x00,0x3e,0xb9,0x00,0x05,0xff,0xe8,0x40,0x24,0x09,0x0c,0x48,0x00,0x46,0x2f,0x01,0x3f,0x01,0x6f,0x01,0x7f,0x01,0x8f,0x01, -0x05,0x01,0x40,0x14,0x25,0x48,0x00,0x01,0x01,0x01,0x0c,0x01,0x0c,0x18,0x19,0x12,0x50,0x07,0x00,0x00,0x15,0x00,0x3f,0x3f,0xed,0x11,0x12,0x01,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x5d,0xed,0x31,0x30,0x00,0x2b,0x21,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x02,0x44,0xb4,0x2d,0x64, -0x9f,0x72,0x1d,0x50,0x50,0x47,0x15,0x12,0x48,0x4f,0x48,0x13,0x42,0x62,0x40,0x1f,0x04,0x53,0x65,0x8f,0x5b,0x2a,0x03,0x06,0x08,0x04,0x91,0x03,0x06,0x05,0x03,0x14,0x36,0x5e,0x4b,0x00,0x00,0x01,0x00,0xea,0xfe,0x57,0x04,0x2d,0x05,0x59,0x00,0x1b,0x00,0x5c,0x40,0x33,0x10,0x0d,0x11,0x6f,0x12,0x14,0x14,0x12,0x0e,0x0e,0x03,0x0d, -0x6f,0x16,0x13,0x16,0x00,0x16,0x10,0x16,0x02,0x00,0x12,0x10,0x12,0x02,0x12,0x16,0x12,0x16,0x1c,0x1d,0x03,0x03,0x1d,0x10,0x14,0x51,0x0d,0x70,0x15,0x01,0x15,0x15,0x00,0x11,0x1b,0x07,0x73,0x00,0x07,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x5d,0x33,0xed,0x32,0x11,0x01,0x33,0x2f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x12,0x39, -0x10,0xed,0x11,0x39,0x2f,0x11,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x0e,0x02,0x0f,0x01,0x21,0x07,0x21,0x03,0x23,0x13,0x23,0x37,0x33,0x37,0x3e,0x03,0x03,0x8d,0x2e,0x56,0x1c,0x28,0x14,0x4b,0x23,0x2d,0x3d,0x29,0x18,0x09,0x1b,0x01,0x2e,0x19,0xfe,0xd1,0xf3,0xb4,0xf3,0xfc,0x1b, -0xfb,0x1d,0x0e,0x2f,0x54,0x80,0x05,0x59,0x0f,0x08,0x88,0x07,0x0c,0x10,0x25,0x3c,0x2b,0x89,0x83,0xfb,0x32,0x04,0xce,0x83,0x98,0x3b,0x66,0x4c,0x2c,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x04,0xcc,0x06,0xa9,0x00,0x16,0x00,0x24,0x00,0x2a,0x00,0x3e,0x01,0x21,0x40,0x0b,0x0b,0x28,0x09,0x0c,0x48,0x02,0x28,0x09,0x0c,0x48, -0x14,0xb8,0xff,0xe8,0xb3,0x09,0x11,0x48,0x10,0xb8,0xff,0xe8,0x40,0x09,0x09,0x11,0x48,0x74,0x28,0x84,0x28,0x02,0x28,0xb8,0xff,0xf0,0x40,0x7f,0x09,0x0c,0x48,0x17,0x24,0x06,0x05,0x1c,0x05,0x17,0x1c,0x05,0x22,0x23,0x07,0x08,0x1d,0x08,0x22,0x1d,0x08,0x03,0x01,0x52,0x05,0x1c,0x05,0x5e,0x04,0x03,0x14,0x04,0x04,0x03,0x0a,0x01, -0x52,0x08,0x1d,0x08,0x5e,0x09,0x0a,0x14,0x09,0x09,0x0a,0x27,0x86,0x44,0x28,0x54,0x28,0x64,0x28,0x03,0x28,0x82,0x2a,0x84,0x70,0x25,0x80,0x25,0x02,0x25,0x0d,0x2b,0x84,0x80,0x00,0x01,0x00,0x35,0x84,0x0d,0x0d,0x0a,0x1d,0x00,0x03,0x1c,0x1c,0x1d,0x09,0x05,0x10,0x04,0x01,0x04,0x04,0x40,0x08,0x7f,0x09,0x8f,0x09,0x02,0x09,0x70, -0x27,0x80,0x27,0x02,0x27,0x8c,0x7f,0x2a,0x8f,0x2a,0x02,0x2a,0x12,0x06,0x24,0x07,0x5f,0x23,0x3a,0x8e,0x1d,0x1c,0x0a,0x03,0x03,0x1d,0x1d,0xb8,0xff,0xc0,0x40,0x12,0x09,0x0c,0x48,0x23,0x1d,0x23,0x1d,0x05,0x30,0x8e,0x12,0xdc,0x09,0x08,0x04,0x03,0x05,0x12,0x00,0x3f,0x17,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x11,0x17, -0x33,0x10,0xed,0x10,0xed,0x33,0x32,0x10,0xd6,0x5d,0xed,0x5d,0x01,0x2f,0x5d,0x33,0x11,0x33,0x2f,0x5d,0x33,0x12,0x39,0x39,0x11,0x33,0x33,0x11,0x33,0x33,0x2f,0xed,0x2f,0x5d,0xed,0x10,0xd4,0x5d,0xed,0xfd,0x5d,0xed,0x87,0x10,0x2b,0x87,0x2b,0xc4,0x87,0x18,0x10,0x2b,0x87,0x2b,0xc4,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0, -0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x01,0x2b,0x5d,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x2b,0x01,0x14,0x06,0x07,0x01,0x23,0x03,0x21,0x03,0x23,0x01,0x2e,0x01,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x03,0x2e,0x03,0x27,0x23,0x0e,0x03,0x07,0x03,0x21,0x01,0x35,0x37,0x33,0x15,0x05,0x17,0x34,0x2e,0x02,0x23,0x22, -0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0x58,0x2b,0x2c,0x01,0xcb,0xc2,0x8a,0xfd,0xcd,0x89,0xc4,0x01,0xd1,0x2f,0x2e,0x1e,0x3c,0x5b,0x3d,0x3d,0x5b,0x3c,0x1e,0x9b,0x0a,0x16,0x15,0x11,0x06,0x12,0x06,0x10,0x13,0x14,0x0b,0x8c,0x01,0xb9,0xfe,0xc9,0xe3,0xc5,0xfe,0xd4,0x56,0x0d,0x1d,0x2e,0x21,0x21,0x2e,0x1e,0x0d, -0x0d,0x1e,0x2e,0x21,0x21,0x2e,0x1d,0x0d,0x04,0xbb,0x30,0x53,0x1d,0xfb,0xe5,0x01,0x43,0xfe,0xbd,0x04,0x17,0x1d,0x56,0x31,0x27,0x48,0x37,0x21,0x21,0x37,0x48,0xfe,0x49,0x1a,0x38,0x36,0x2f,0x11,0x11,0x30,0x36,0x38,0x19,0xfe,0xb1,0x03,0xc9,0x14,0xf0,0x1d,0xe7,0xea,0x0f,0x1d,0x18,0x0f,0x0f,0x18,0x1d,0x0f,0x0f,0x1e,0x18,0x0f, -0x0f,0x18,0x1e,0x00,0x00,0x04,0x00,0x80,0xff,0xec,0x04,0x88,0x06,0xa9,0x00,0x42,0x00,0x51,0x00,0x57,0x00,0x6b,0x01,0x36,0x40,0x1d,0x8a,0x28,0x01,0x7a,0x4d,0x8a,0x4d,0x02,0x65,0x04,0x01,0x6a,0x36,0x7a,0x36,0x8a,0x36,0x03,0x37,0x28,0x09,0x11,0x48,0x02,0x28,0x09,0x11,0x48,0x40,0xb8,0xff,0xe8,0xb3,0x09,0x11,0x48,0x3c,0xb8, -0xff,0xe8,0x40,0x1a,0x09,0x11,0x48,0x1d,0x13,0x2d,0x13,0x3d,0x13,0x03,0x1d,0x20,0x09,0x0c,0x48,0x06,0x21,0x16,0x21,0x02,0x34,0x18,0x09,0x0c,0x48,0x55,0xb8,0xff,0xe0,0x40,0x61,0x09,0x11,0x48,0x54,0x86,0x55,0x82,0x57,0x84,0x52,0x52,0x62,0x84,0x39,0x36,0x03,0x39,0x00,0x84,0x58,0x70,0x58,0x80,0x58,0x02,0x39,0x58,0x39,0x58, -0x1f,0x48,0x0e,0x0e,0x07,0x46,0x25,0x16,0x4f,0x48,0x5f,0x48,0x02,0x48,0x48,0x1f,0x6d,0x30,0x47,0xc0,0x31,0x01,0x31,0x31,0x4f,0x47,0x00,0x1f,0x01,0x1f,0x49,0x51,0x25,0xdf,0x30,0xef,0x30,0xff,0x30,0x03,0x30,0x40,0x09,0x0c,0x48,0x30,0x30,0x36,0x36,0x03,0x03,0x2b,0x67,0x5d,0x8e,0x3e,0x40,0x19,0x21,0x48,0x3e,0x52,0x80,0x67, -0xf0,0x67,0x02,0x67,0xb8,0xff,0xc0,0xb3,0x09,0x0d,0x48,0x52,0xb8,0xff,0xc0,0xb3,0x11,0x19,0x48,0x52,0xb8,0xff,0xc0,0x40,0x1c,0x0b,0x0f,0x48,0xbf,0x25,0xcf,0x25,0x02,0x20,0x25,0x60,0x25,0x02,0x25,0x67,0x52,0x52,0x67,0x25,0x03,0x54,0x0a,0x43,0x50,0x16,0x11,0x1c,0x16,0x00,0x3f,0x33,0x33,0xed,0x32,0x2f,0x17,0x39,0x2f,0x2f, -0x2f,0x5d,0x5d,0x2b,0x2b,0x2b,0x5d,0x10,0xd6,0x2b,0xed,0x10,0xcd,0x39,0x11,0x33,0x11,0x33,0x2f,0x2b,0x5d,0x10,0xed,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x5d,0xed,0x11,0x12,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x2f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x11,0x39,0x39,0x10,0xed,0x33,0x2f,0xed,0xfd,0xed,0x2b,0x31,0x30,0x00, -0x2b,0x5d,0x2b,0x5d,0x2b,0x2b,0x2b,0x2b,0x01,0x5d,0x00,0x5d,0x5d,0x5d,0x01,0x14,0x06,0x07,0x1e,0x01,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x0e,0x01,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x3f,0x01,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x27,0x3e,0x03,0x37,0x2e,0x01,0x35, -0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x01,0x32,0x3e,0x02,0x3d,0x01,0x07,0x0e,0x03,0x15,0x14,0x16,0x13,0x35,0x37,0x33,0x15,0x05,0x17,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0x4e,0x33,0x35,0x81,0x81,0x2a,0x3b,0x0f,0x1e,0x0e,0x22,0x43,0x26,0x33,0x49,0x2e,0x18,0x03,0x06,0x1c,0x44,0x58, -0x72,0x4a,0x9e,0xa0,0x4f,0x80,0xa3,0x54,0xec,0x1b,0x37,0x54,0x38,0x32,0x51,0x3a,0x25,0x06,0xbc,0x08,0x27,0x44,0x63,0x45,0x31,0x30,0x1e,0x3c,0x5b,0x3d,0x3d,0x5b,0x3c,0x1e,0xfe,0x9e,0x53,0x7a,0x51,0x28,0xbe,0x37,0x6f,0x59,0x38,0x59,0x66,0xe3,0xc5,0xfe,0xd4,0x5d,0x0d,0x1d,0x2e,0x21,0x21,0x2e,0x1e,0x0d,0x0d,0x1e,0x2e,0x21, -0x21,0x2e,0x1d,0x0d,0x04,0xe8,0x34,0x5a,0x1c,0x1e,0xb0,0x8e,0xfe,0x2e,0x50,0x51,0x04,0x03,0x70,0x08,0x08,0x1b,0x37,0x51,0x36,0x34,0x54,0x3b,0x20,0xac,0x96,0x6b,0x89,0x4e,0x1f,0x01,0x04,0x3b,0x43,0x5e,0x3a,0x1b,0x0f,0x27,0x43,0x33,0x11,0x34,0x5b,0x48,0x34,0x0d,0x1c,0x58,0x32,0x27,0x48,0x37,0x21,0x21,0x37,0x48,0xfb,0x66, -0x3f,0x60,0x74,0x35,0x59,0x04,0x01,0x0f,0x30,0x5b,0x4c,0x52,0x64,0x05,0x63,0x14,0xbd,0x1d,0xb4,0xf0,0x0f,0x1d,0x18,0x0f,0x0f,0x18,0x1d,0x0f,0x0f,0x1e,0x18,0x0f,0x0f,0x18,0x1e,0x00,0xff,0xff,0x00,0x01,0x00,0x00,0x04,0xab,0x06,0xa9,0x12,0x26,0x00,0x86,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0xf5,0x00,0xf5,0x00,0x15,0xb4,0x02, -0x19,0x05,0x26,0x02,0xb8,0x01,0x05,0xb4,0x19,0x1c,0x03,0x0d,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xec,0x04,0xb8,0x05,0xb4,0x12,0x26,0x00,0xa6,0x00,0x00,0x11,0x06,0x00,0x74,0x5a,0x00,0x00,0x13,0x40,0x0b,0x03,0x5a,0x11,0x26,0x03,0x5a,0x5a,0x5d,0x1e,0x40,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00, -0xff,0xff,0x00,0x38,0xff,0xda,0x04,0x92,0x06,0xa9,0x12,0x26,0x00,0x98,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x64,0x00,0xf5,0x00,0x13,0x40,0x0b,0x03,0x2c,0x05,0x26,0x03,0x65,0x2c,0x2f,0x0a,0x17,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x6e,0xff,0xec,0x04,0x5d,0x05,0xb4,0x12,0x26,0x00,0xb8,0x00,0x00, -0x11,0x06,0x00,0x74,0x64,0x00,0x00,0x13,0x40,0x0b,0x03,0x32,0x11,0x26,0x03,0x64,0x32,0x35,0x0e,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x4f,0xfe,0x59,0x04,0x68,0x05,0x5a,0x10,0x26,0x02,0x95,0xe3,0x00,0x12,0x06,0x00,0x36,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa7,0xfe,0x59,0x04,0x24,0x04,0x4b,0x10,0x26, -0x02,0x95,0x05,0x00,0x12,0x06,0x00,0x56,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x4c,0xfe,0x59,0x04,0x80,0x05,0x45,0x10,0x26,0x02,0x95,0xe3,0x00,0x12,0x06,0x00,0x37,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xbe,0xfe,0x59,0x03,0xf9,0x05,0x54,0x10,0x26,0x02,0x95,0x05,0x00,0x12,0x06,0x00,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x1b, -0x04,0xb1,0x03,0xb1,0x05,0xb4,0x00,0x09,0x00,0x25,0x40,0x17,0x20,0x01,0x50,0x01,0x60,0x01,0x80,0x01,0x04,0x01,0x06,0x03,0x20,0x0b,0x0f,0x48,0x03,0x8e,0x09,0x8c,0x05,0x02,0x93,0x00,0x3f,0x33,0xfd,0xed,0x2b,0x01,0x2f,0xc4,0x5d,0x31,0x30,0x01,0x15,0x23,0x27,0x23,0x07,0x23,0x35,0x37,0x33,0x03,0xb1,0x69,0xdb,0x02,0xe8,0x68, -0xfe,0xa4,0x04,0xc5,0x14,0x8a,0x8a,0x14,0xef,0x00,0x00,0x00,0x00,0x01,0x01,0x1b,0x04,0xb1,0x03,0xb1,0x05,0xb4,0x00,0x09,0x00,0x2b,0x40,0x0e,0x20,0x08,0x50,0x08,0x60,0x08,0x80,0x08,0x04,0x08,0x03,0x07,0x04,0x06,0xb8,0xff,0xe0,0x40,0x09,0x0b,0x0f,0x48,0x06,0x8e,0x04,0x8c,0x01,0x93,0x00,0x3f,0xed,0xed,0x2b,0x11,0x33,0x01, -0x2f,0xc4,0x5d,0x31,0x30,0x01,0x23,0x27,0x35,0x33,0x17,0x33,0x37,0x33,0x15,0x02,0xbd,0xa4,0xfe,0x68,0xe8,0x02,0xdb,0x69,0x04,0xb1,0xef,0x14,0x8a,0x8a,0x14,0x00,0x00,0x01,0x01,0x51,0x04,0xd4,0x03,0x78,0x05,0x53,0x00,0x03,0x00,0x14,0x40,0x09,0x0f,0x00,0x01,0x00,0x01,0x03,0x8f,0x00,0x94,0x00,0x3f,0xed,0x01,0x2f,0xcd,0x5d, -0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x78,0xfd,0xd9,0x02,0x27,0x04,0xd4,0x7f,0x00,0x00,0x01,0x01,0x2d,0x04,0xb1,0x03,0x9f,0x05,0xb4,0x00,0x11,0x00,0x31,0x40,0x1f,0x0c,0x84,0x0f,0x0d,0x1f,0x0d,0x2f,0x0d,0x03,0x0d,0x0d,0x06,0x84,0x00,0x05,0x20,0x05,0x02,0x05,0x0c,0x06,0x8c,0x75,0x09,0x85,0x09,0x02,0x09,0x8f,0x00,0x93,0x00, -0x3f,0xed,0x5d,0xe4,0x32,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x5d,0xed,0x31,0x30,0x01,0x22,0x2e,0x02,0x27,0x33,0x1e,0x01,0x33,0x32,0x36,0x37,0x33,0x0e,0x03,0x02,0x65,0x4a,0x6e,0x4c,0x2c,0x08,0x7f,0x11,0x56,0x52,0x55,0x55,0x11,0x7f,0x09,0x2c,0x4b,0x6e,0x04,0xb1,0x2f,0x4b,0x5c,0x2d,0x3f,0x46,0x46,0x3f,0x2d,0x5c,0x4b,0x2f,0x00, -0x00,0x01,0x02,0x03,0x05,0x0c,0x02,0xcb,0x05,0xcc,0x00,0x03,0x00,0x15,0x40,0x0a,0x03,0x4a,0x10,0x00,0x01,0x00,0x00,0x53,0x01,0x00,0x00,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x31,0x30,0x01,0x35,0x33,0x15,0x02,0x03,0xc8,0x05,0x0c,0xc0,0xc0,0x00,0x00,0x00,0x02,0x01,0x74,0x04,0x7c,0x03,0x58,0x06,0x0b,0x00,0x13,0x00,0x27,0x00,0x8b, -0xb9,0x00,0x11,0xff,0xe8,0xb3,0x09,0x0f,0x48,0x0d,0xb8,0xff,0xe8,0x40,0x61,0x09,0x0f,0x48,0x07,0x18,0x09,0x0f,0x48,0x03,0x18,0x09,0x0f,0x48,0x14,0x84,0x00,0x00,0x10,0x00,0x20,0x00,0x03,0x30,0x00,0x70,0x00,0x80,0x00,0xb0,0x00,0xc0,0x00,0xd0,0x00,0x06,0x60,0x00,0x01,0x0f,0x00,0x1f,0x00,0x02,0x00,0x1e,0x84,0x00,0x0a,0x01, -0x0a,0x19,0x8e,0x7f,0x0f,0x8f,0x0f,0x02,0x0f,0x40,0x09,0x0c,0x48,0x0f,0x23,0x8e,0x2f,0x05,0x4f,0x05,0x6f,0x05,0xdf,0x05,0x04,0x0f,0x05,0x2f,0x05,0x3f,0x05,0x4f,0x05,0x6f,0x05,0x7f,0x05,0x9f,0x05,0xbf,0x05,0x08,0x05,0x40,0x16,0x19,0x48,0x05,0x00,0x2f,0x2b,0x5d,0x71,0xed,0xd4,0x2b,0x5d,0xed,0x01,0x2f,0x5d,0xed,0xd4,0x5d, -0x5d,0x71,0x72,0xed,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x2b,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0x58,0x1e,0x3c,0x5b,0x3d,0x3d,0x5b,0x3c,0x1e,0x1e,0x3c,0x5b,0x3d,0x3d,0x5b,0x3c,0x1e,0x79,0x0d,0x1d, -0x2e,0x21,0x21,0x2e,0x1e,0x0d,0x0d,0x1e,0x2e,0x21,0x21,0x2e,0x1d,0x0d,0x05,0x44,0x27,0x48,0x38,0x21,0x21,0x38,0x48,0x27,0x27,0x48,0x37,0x21,0x21,0x37,0x48,0x27,0x0f,0x1d,0x18,0x0f,0x0f,0x18,0x1d,0x0f,0x0f,0x1e,0x18,0x0f,0x0f,0x18,0x1e,0x00,0x00,0x01,0x01,0xb9,0xfe,0x55,0x03,0x17,0x00,0x00,0x00,0x17,0x00,0x30,0x40,0x1c, -0x08,0x40,0x0d,0x10,0x48,0x05,0x40,0x0d,0x14,0x48,0x0c,0x87,0x0b,0x0b,0x06,0x00,0x00,0x11,0x84,0x00,0x06,0x01,0x06,0x0b,0x14,0x8e,0x03,0x95,0x00,0x3f,0xed,0x2f,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x2b,0x2b,0x01,0x0e,0x01,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x33,0x0e,0x03,0x15,0x14,0x16,0x33, -0x32,0x36,0x37,0x03,0x17,0x1c,0x47,0x28,0x69,0x6a,0x22,0x30,0x36,0x13,0x85,0x19,0x34,0x2b,0x1b,0x31,0x2d,0x1d,0x3a,0x1c,0xfe,0x70,0x0c,0x0f,0x66,0x55,0x2f,0x4f,0x3d,0x2a,0x0b,0x0e,0x2d,0x3b,0x46,0x27,0x2a,0x30,0x0d,0x0b,0x00,0x01,0x00,0xff,0x04,0xb1,0x03,0xcc,0x05,0xa9,0x00,0x1f,0x00,0x51,0x40,0x10,0x0a,0x1f,0x1a,0x1f, -0x02,0x1e,0x18,0x09,0x0f,0x48,0x05,0x0f,0x15,0x0f,0x02,0x0e,0xb8,0xff,0xe8,0x40,0x24,0x09,0x0f,0x48,0x1a,0x83,0x0f,0x1b,0x2f,0x1b,0x3f,0x1b,0x7f,0x1b,0x8f,0x1b,0x05,0x1b,0x1b,0x0a,0x83,0x00,0x0b,0x30,0x0b,0x02,0x0b,0x1a,0x05,0x8f,0x10,0x8c,0x15,0x8f,0x0a,0x00,0x93,0x00,0x3f,0x32,0xed,0xfd,0xed,0x33,0x01,0x2f,0x5d,0xed, -0x33,0x2f,0x5d,0xed,0x31,0x30,0x00,0x2b,0x5d,0x2b,0x5d,0x01,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x23,0x3e,0x03,0x33,0x32,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x33,0x0e,0x03,0x03,0x02,0x2a,0x54,0x50,0x4d,0x23,0x17,0x1d,0x13,0x0a,0x05,0x6f,0x05,0x14,0x2d,0x4a,0x3b,0x2c,0x54,0x50,0x4a,0x21,0x17,0x1e,0x14,0x0a,0x04,0x70, -0x05,0x14,0x2b,0x4a,0x04,0xb1,0x25,0x2d,0x25,0x10,0x1e,0x2c,0x1d,0x2d,0x58,0x47,0x2c,0x25,0x2d,0x25,0x10,0x1f,0x2c,0x1c,0x2c,0x58,0x47,0x2d,0x00,0x02,0x00,0x1d,0x04,0xb1,0x03,0x13,0x05,0xb4,0x00,0x05,0x00,0x0b,0x00,0x5a,0x40,0x0f,0x02,0x89,0x74,0x03,0x84,0x03,0x02,0x06,0x03,0x16,0x03,0x02,0x03,0x8b,0x05,0xb8,0xff,0xe8, -0x40,0x16,0x0b,0x0f,0x48,0x05,0x8a,0x00,0x00,0x08,0x89,0x74,0x09,0x84,0x09,0x02,0x06,0x09,0x16,0x09,0x02,0x09,0x8b,0x0b,0xb8,0xff,0xe8,0x40,0x0f,0x0b,0x0f,0x48,0x0b,0x8a,0x00,0x06,0x01,0x06,0x08,0x02,0x8c,0x0b,0x05,0x93,0x00,0x3f,0x33,0xed,0x32,0x01,0x7c,0x2f,0x5d,0x18,0xed,0x2b,0xfd,0x5d,0x5d,0xed,0x33,0x2f,0xed,0x2b, -0xfd,0x5d,0x5d,0xed,0x31,0x30,0x01,0x35,0x37,0x33,0x15,0x05,0x21,0x35,0x37,0x33,0x15,0x05,0x01,0x89,0xcf,0xbb,0xfe,0xd4,0xfe,0x36,0xcf,0xbb,0xfe,0xd4,0x04,0xb1,0x14,0xef,0x1d,0xe6,0x14,0xef,0x1d,0xe6,0x00,0x01,0x01,0xdb,0x04,0xb1,0x02,0xef,0x05,0xf6,0x00,0x05,0x00,0x2e,0x40,0x0a,0x66,0x05,0x76,0x05,0x86,0x05,0x03,0x02, -0x86,0x03,0xb8,0x01,0x0b,0x40,0x09,0x05,0x83,0x2f,0x00,0x3f,0x00,0x02,0x00,0x02,0xb8,0x01,0x0c,0xb1,0x05,0x93,0x00,0x3f,0xed,0x01,0x7d,0x2f,0x5d,0x18,0xed,0xfd,0xed,0x31,0x30,0x5d,0x01,0x35,0x13,0x33,0x15,0x03,0x01,0xdb,0x4f,0xc5,0xab,0x04,0xb1,0x21,0x01,0x24,0x25,0xfe,0xe0,0x00,0x00,0x03,0x01,0x37,0x04,0xb1,0x03,0x96, -0x06,0x41,0x00,0x05,0x00,0x09,0x00,0x0d,0x00,0x75,0xb2,0x02,0x86,0x03,0xb8,0x01,0x0b,0x40,0x0a,0x67,0x05,0x77,0x05,0x87,0x05,0x03,0x05,0x83,0x00,0xb8,0xff,0xc0,0xb3,0x22,0x26,0x48,0x00,0xb8,0xff,0xc0,0x40,0x32,0x17,0x1b,0x48,0x00,0x00,0x06,0x0d,0x88,0x54,0x0a,0x01,0x34,0x0a,0x44,0x0a,0x54,0x0a,0x84,0x0a,0x94,0x0a,0xa4, -0x0a,0xe4,0x0a,0xf4,0x0a,0x08,0x10,0x0a,0x20,0x0a,0x02,0x02,0x00,0x0a,0x01,0x0a,0x09,0x88,0x0f,0x06,0x01,0x06,0x08,0x0b,0x90,0x09,0x0a,0x02,0xb8,0x01,0x0c,0xb1,0x05,0x93,0x00,0x3f,0xed,0xd4,0x32,0xed,0x32,0x01,0x2f,0x71,0xed,0x2f,0x5d,0x5f,0x5d,0x5d,0x71,0xed,0x12,0x39,0x2f,0x2b,0x2b,0xed,0x5d,0xfd,0xed,0x31,0x30,0x01, -0x35,0x13,0x33,0x15,0x03,0x37,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x02,0x09,0x36,0xc5,0x92,0x95,0x8f,0xfd,0xa1,0x91,0x04,0xb1,0x21,0x01,0x6f,0x25,0xfe,0x95,0x12,0xb8,0xb8,0xb8,0xb8,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xcc,0x05,0x46,0x12,0x26,0x00,0x24,0x00,0x00,0x11,0x07,0x01,0x54,0xfe,0x26,0xff,0x50,0x00,0x14,0xb3,0x02, -0x17,0x03,0x02,0xb8,0xfe,0x25,0xb4,0x15,0x18,0x04,0x07,0x25,0x01,0x2b,0x35,0x00,0x3f,0x35,0x00,0x00,0x00,0x01,0x01,0xf0,0x01,0xa4,0x02,0xdb,0x02,0xcf,0x00,0x03,0x00,0x28,0x40,0x1b,0x03,0x96,0x20,0x00,0x01,0x00,0x00,0xa0,0x00,0x02,0x00,0x00,0x9b,0x0f,0x01,0x3f,0x01,0x6f,0x01,0x9f,0x01,0xcf,0x01,0xef,0x01,0x06,0x01,0x00, -0x2f,0x5d,0xed,0x01,0x2f,0x5d,0x71,0xed,0x31,0x30,0x01,0x11,0x33,0x11,0x01,0xf0,0xeb,0x01,0xa4,0x01,0x2b,0xfe,0xd5,0x00,0xff,0xff,0xff,0xcf,0x00,0x00,0x04,0xc3,0x05,0x46,0x10,0x26,0x00,0x28,0x61,0x00,0x11,0x07,0x01,0x54,0xfd,0xf4,0xff,0x50,0x00,0x26,0xb4,0x01,0x0e,0x03,0x01,0x0f,0xb8,0xff,0xc0,0xb3,0x15,0x1c,0x48,0x0f, -0xb8,0xff,0xc0,0xb2,0x09,0x12,0x48,0xb8,0xff,0xe0,0xb4,0x0f,0x0f,0x00,0x00,0x25,0x01,0x2b,0x2b,0x2b,0x35,0x00,0x3f,0x35,0x00,0x02,0x00,0x00,0x00,0x00,0x04,0x69,0x05,0x45,0x00,0x0b,0x00,0x11,0x00,0x68,0x40,0x1e,0x66,0x11,0x76,0x11,0x86,0x11,0x03,0x0b,0x5a,0x00,0x08,0x00,0x07,0x03,0x5a,0x10,0x00,0x01,0x0f,0x04,0x01,0x04, -0x00,0x04,0x00,0x0c,0x13,0x0e,0x86,0x0f,0xb8,0x01,0x0b,0x40,0x12,0x11,0x83,0x0c,0x02,0x5f,0x50,0x07,0x01,0xa0,0x07,0xb0,0x07,0x02,0x07,0x07,0x00,0x05,0x11,0xb8,0x01,0x0c,0xb7,0x0e,0x0e,0x09,0x05,0x03,0x04,0x00,0x12,0x00,0x3f,0x32,0x3f,0x33,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0x71,0xed,0x01,0x2f,0xed,0xfd,0xed,0x11, -0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0xed,0x32,0x11,0x33,0x10,0xed,0x31,0x30,0x5d,0x21,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x01,0x35,0x13,0x33,0x15,0x03,0x03,0xaf,0xfe,0x58,0xbf,0xbf,0x01,0xa8,0xba,0xfb,0x97,0x4f,0xc5,0xab,0x02,0x6f,0xfd,0x91,0x05,0x45,0xfd,0xca,0x02,0x36,0xfa,0xbb,0x04,0x00,0x21,0x01, -0x24,0x25,0xfe,0xe0,0xff,0xff,0x00,0x01,0x00,0x00,0x04,0x80,0x05,0x46,0x10,0x26,0x00,0x2c,0x7f,0x00,0x11,0x07,0x01,0x54,0xfe,0x26,0xff,0x50,0x00,0x26,0xb4,0x01,0x0e,0x03,0x01,0x0f,0xb8,0xff,0xc0,0xb3,0x12,0x13,0x48,0x0f,0xb8,0xff,0xc0,0xb2,0x09,0x0f,0x48,0xb8,0xff,0xcc,0xb4,0x0f,0x0f,0x00,0x00,0x25,0x01,0x2b,0x2b,0x2b, -0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xcf,0xff,0xec,0x04,0xac,0x05,0x5a,0x10,0x26,0x00,0x32,0x46,0x00,0x11,0x07,0x01,0x54,0xfd,0xf4,0xff,0x50,0x00,0x14,0xb3,0x02,0x20,0x03,0x02,0xb8,0xfd,0xad,0xb4,0x1e,0x21,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x3f,0x35,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x04,0xaf,0x05,0x45,0x00,0x08, -0x00,0x0e,0x00,0x96,0x40,0x14,0x06,0x0e,0x16,0x0e,0x26,0x0e,0x03,0x2c,0x07,0x01,0x07,0x18,0x0d,0x10,0x48,0x23,0x05,0x01,0x03,0x05,0xb8,0xff,0xe8,0x40,0x26,0x0d,0x10,0x48,0x00,0x06,0x10,0x06,0x20,0x06,0x03,0x0f,0x04,0x07,0x08,0x0e,0x01,0x04,0x02,0x0e,0x05,0x0f,0x04,0x01,0x04,0x06,0x01,0x5a,0x02,0x40,0x0b,0x0e,0x48,0x02, -0x02,0x10,0x0b,0x86,0x0c,0xb8,0x01,0x0b,0x40,0x14,0x0e,0x83,0x09,0x06,0x03,0x40,0x00,0x50,0x00,0x60,0x00,0x03,0x3f,0x00,0x01,0x00,0x00,0x04,0x01,0x0e,0xb8,0x01,0x0c,0xb6,0x0b,0x0b,0x07,0x04,0x03,0x01,0x12,0x00,0x3f,0x3f,0x33,0x33,0x10,0xed,0x11,0x12,0x39,0x2f,0x5d,0x5d,0x33,0x33,0x01,0x2f,0xed,0xfd,0xed,0x12,0x39,0x2f, -0x2b,0xed,0x39,0xc6,0x5d,0x32,0x2b,0x01,0x18,0x10,0x4d,0xe6,0x32,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x01,0x2b,0x5f,0x5d,0x2b,0x5d,0x5d,0x01,0x11,0x23,0x11,0x01,0x33,0x1b,0x01,0x33,0x01,0x35,0x13,0x33,0x15,0x03,0x03,0x4d,0xbc,0xfe,0x9e,0xc9,0xf8,0xf6,0xc9,0xfb,0x51,0x4f,0xc5,0xab,0x02,0x48,0xfd,0xb8,0x02,0x48,0x02,0xfd,0xfd, -0xa7,0x02,0x59,0xfe,0xbb,0x21,0x01,0x24,0x25,0xfe,0xe0,0x00,0x00,0x02,0xff,0xce,0x00,0x00,0x04,0x9b,0x05,0x5a,0x00,0x39,0x00,0x3f,0x00,0xbf,0x40,0x36,0x66,0x3f,0x76,0x3f,0x86,0x3f,0x03,0x6b,0x09,0x7b,0x09,0x8b,0x09,0x03,0x6b,0x31,0x7b,0x31,0x8b,0x31,0x03,0x62,0x25,0x72,0x25,0x82,0x25,0x03,0x62,0x15,0x72,0x15,0x82,0x15, -0x03,0x45,0x38,0x55,0x38,0x02,0x45,0x02,0x55,0x02,0x02,0x3a,0x1f,0x01,0x3a,0x1b,0x01,0x3c,0x86,0x3d,0xb8,0x01,0x0b,0x40,0x35,0x3f,0x83,0x3a,0x40,0x1a,0x21,0x48,0x3a,0x3a,0x35,0x30,0x5c,0x28,0x0a,0x5c,0x12,0x28,0x12,0x28,0x12,0x35,0x18,0x10,0x10,0x05,0x5a,0x10,0x18,0x20,0x18,0x30,0x18,0x80,0x18,0x04,0x10,0x18,0x01,0x18, -0x18,0x41,0x40,0x2a,0x2a,0x22,0x5a,0x35,0x40,0x10,0x14,0x48,0x35,0x3f,0xb8,0x01,0x0c,0x40,0x0f,0x3c,0x03,0x13,0x27,0x27,0x10,0x2a,0x5f,0x12,0x29,0x12,0x1d,0x5f,0x00,0x04,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x32,0x2f,0x33,0x3f,0xed,0x01,0x2f,0x2b,0xed,0x33,0x2f,0x11,0x12,0x39,0x2f,0x5d,0x71,0xed,0x32,0x2f,0x11,0x12,0x39, -0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x33,0x2f,0x2b,0xed,0xfd,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x36,0x37,0x3e,0x01,0x3b,0x01,0x15,0x21,0x35,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x15,0x21,0x35,0x33, -0x32,0x16,0x17,0x16,0x17,0x2e,0x03,0x35,0x34,0x3e,0x02,0x01,0x35,0x13,0x33,0x15,0x03,0x02,0x8d,0x71,0xb9,0x84,0x48,0x26,0x4f,0x77,0x51,0x1a,0x1a,0x16,0x30,0x13,0xc8,0xfe,0x31,0x4b,0x5f,0x36,0x14,0x27,0x4c,0x73,0x4c,0x4d,0x73,0x4d,0x27,0x14,0x36,0x5f,0x4b,0xfe,0x31,0xc8,0x13,0x30,0x16,0x1a,0x1a,0x51,0x77,0x4f,0x26,0x49, -0x84,0xb9,0xfd,0xb1,0x4f,0xc5,0xab,0x05,0x5a,0x55,0x9d,0xdd,0x88,0x5f,0xb3,0xa0,0x8a,0x36,0x03,0x03,0x02,0x03,0x9c,0xe0,0x37,0x7d,0x88,0x90,0x4a,0x69,0xa8,0x77,0x40,0x40,0x77,0xa8,0x69,0x4a,0x90,0x88,0x7d,0x37,0xe0,0x9c,0x03,0x02,0x03,0x03,0x36,0x8a,0xa0,0xb3,0x5f,0x88,0xdd,0x9d,0x55,0xfe,0xa6,0x21,0x01,0x24,0x25,0xfe, -0xe0,0x00,0x00,0x00,0xff,0xff,0x00,0x95,0xff,0xec,0x04,0x5d,0x06,0x41,0x12,0x26,0x01,0x86,0x00,0x00,0x11,0x06,0x01,0x55,0xf3,0x00,0x00,0x19,0xb5,0x03,0x02,0x01,0x03,0x02,0x01,0xb8,0xff,0xe1,0xb4,0x1e,0x1c,0x11,0x07,0x25,0x01,0x2b,0x35,0x35,0x35,0x00,0x35,0x35,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xcc, -0x05,0x45,0x12,0x06,0x00,0x24,0x00,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x80,0x05,0x45,0x12,0x06,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0xe0,0x00,0x00,0x04,0x5b,0x05,0x45,0x00,0x05,0x00,0x20,0x40,0x11,0x03,0x03,0x07,0x00,0x5a,0x00,0x01,0x10,0x01,0x02,0x01,0x05,0x5f,0x02,0x03,0x00,0x12,0x00,0x3f,0x3f,0xed,0x01,0x2f,0x5d, -0xed,0x12,0x39,0x2f,0x31,0x30,0x21,0x23,0x11,0x21,0x15,0x21,0x01,0x9f,0xbf,0x03,0x7b,0xfd,0x44,0x05,0x45,0x9c,0x00,0x00,0x00,0x02,0x00,0x0c,0x00,0x00,0x04,0xc0,0x05,0x45,0x00,0x05,0x00,0x12,0x00,0x79,0x40,0x4c,0x29,0x02,0x01,0x06,0x03,0x01,0x03,0x01,0x52,0x12,0x0b,0x12,0x5e,0x04,0x03,0x14,0x04,0x04,0x03,0x02,0x01,0x52, -0x11,0x0b,0x11,0x5e,0x01,0x02,0x14,0x01,0x01,0x02,0x02,0x03,0x0b,0x03,0x01,0x04,0x5a,0x6f,0x12,0x7f,0x12,0x8f,0x12,0x03,0x10,0x12,0x01,0x12,0x12,0x14,0x11,0x5a,0x01,0x5a,0x0b,0x01,0x4b,0x0b,0x01,0x0b,0x03,0x02,0x03,0x12,0x04,0x01,0x01,0x04,0x12,0x03,0x11,0x5f,0x00,0x12,0x00,0x3f,0xed,0x17,0x32,0x2f,0x2f,0x2f,0x3f,0x33, -0x33,0x5d,0x5d,0x01,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x5d,0xed,0x11,0x17,0x39,0x87,0x10,0x2b,0x87,0x2b,0xc4,0x87,0x18,0x10,0x2b,0x87,0x2b,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x33,0x35,0x01,0x33,0x01,0x15,0x01,0x2e,0x03,0x27,0x0e,0x03,0x07,0x01,0x21,0x0c,0x01,0xdd,0xf4,0x01,0xe3,0xfe,0x06,0x12,0x22,0x1b,0x11,0x02,0x01,0x12,0x1b, -0x22,0x12,0xfe,0xca,0x03,0x34,0x91,0x04,0xb4,0xfb,0x4e,0x93,0x03,0xa9,0x2e,0x5e,0x4f,0x36,0x04,0x04,0x36,0x4f,0x5f,0x2d,0xfc,0xf3,0x00,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x62,0x05,0x45,0x12,0x06,0x00,0x28,0x00,0x00,0xff,0xff,0x00,0x49,0x00,0x00,0x04,0x83,0x05,0x45,0x12,0x06,0x00,0x3d,0x00,0x00,0xff,0xff,0x00,0xa2, -0x00,0x00,0x04,0x2a,0x05,0x45,0x12,0x06,0x00,0x2b,0x00,0x00,0x00,0x03,0x00,0x66,0xff,0xec,0x04,0x66,0x05,0x5a,0x00,0x11,0x00,0x1d,0x00,0x21,0x00,0xca,0x40,0x51,0x56,0x10,0x01,0x45,0x10,0x01,0x46,0x0d,0x56,0x0d,0x02,0x49,0x07,0x59,0x07,0x02,0x49,0x03,0x59,0x03,0x02,0x76,0x1d,0x86,0x1d,0x02,0x34,0x1d,0x01,0x76,0x19,0x86, -0x19,0x02,0x34,0x19,0x01,0x79,0x17,0x89,0x17,0x02,0x3b,0x17,0x01,0x79,0x13,0x89,0x13,0x02,0x3b,0x13,0x01,0x1f,0x1e,0x2f,0x1e,0x3f,0x1e,0x7f,0x1e,0x8f,0x1e,0x05,0x1e,0x40,0x15,0x1c,0x48,0x10,0x21,0x20,0x21,0x30,0x21,0x70,0x21,0x80,0x21,0x05,0x21,0xb8,0xff,0xc0,0x40,0x42,0x15,0x1c,0x48,0x21,0x1e,0x21,0x1e,0x0a,0x00,0x5b, -0x5f,0x12,0x01,0x12,0x40,0x19,0x1c,0x48,0x00,0x12,0x01,0x12,0x12,0x23,0x18,0x5b,0x50,0x0a,0x01,0x10,0x0a,0x01,0x0a,0x20,0x5f,0x0f,0x21,0x3f,0x21,0x7f,0x21,0x8f,0x21,0x04,0x6f,0x21,0x8f,0x21,0x9f,0x21,0xbf,0x21,0xdf,0x21,0x05,0x21,0x21,0x1b,0x15,0x5f,0x0f,0x04,0x1b,0x5f,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f, -0x71,0x72,0xed,0x01,0x2f,0x5d,0x71,0xed,0x12,0x39,0x2f,0x5d,0x2b,0x71,0xed,0x11,0x39,0x39,0x2f,0x2f,0x2b,0x5d,0x2b,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x02,0x0e,0x01,0x23,0x22,0x2e,0x01,0x02,0x35,0x34,0x12,0x3e,0x01,0x33,0x32,0x00,0x03,0x10,0x02,0x23,0x22,0x02, -0x11,0x10,0x12,0x33,0x32,0x12,0x03,0x15,0x21,0x35,0x04,0x66,0x46,0x84,0xbf,0x78,0x7f,0xc0,0x80,0x40,0x44,0x82,0xbf,0x7c,0xf7,0x01,0x08,0xc9,0x9e,0x98,0x9c,0x9c,0x9e,0x99,0xa3,0x94,0x8f,0xfe,0xb1,0x02,0xa9,0xad,0xfe,0xfa,0xb1,0x59,0x5e,0xb3,0x01,0x05,0xa7,0xad,0x01,0x02,0xac,0x56,0xfe,0xa5,0xfe,0xaa,0x01,0x0e,0x01,0x07, -0xfe,0xf9,0xfe,0xf2,0xfe,0xf2,0xfe,0xec,0x01,0x18,0x01,0x56,0x9a,0x9a,0x00,0x00,0xff,0xff,0x00,0xca,0x00,0x00,0x04,0x01,0x05,0x45,0x12,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0xcb,0x05,0x45,0x12,0x06,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x00,0x04,0xc2,0x05,0x45,0x00,0x10,0x00,0x5f,0x40,0x37, -0x10,0x01,0x52,0x01,0x07,0x01,0x5e,0x00,0x10,0x14,0x00,0x10,0x01,0x00,0x0f,0x01,0x52,0x0d,0x07,0x0d,0x5e,0x0e,0x0f,0x14,0x0e,0x0f,0x0d,0x0e,0x07,0x0e,0x10,0x00,0x01,0x00,0x00,0x12,0x7f,0x0e,0x8f,0x0e,0x02,0x0e,0x5a,0x07,0x01,0x4b,0x07,0x01,0x07,0x10,0x0f,0x03,0x0e,0x00,0x12,0x00,0x3f,0x32,0x3f,0x33,0x33,0x5d,0x5d,0x01, -0x2f,0x5d,0x11,0x33,0x2f,0x5d,0x12,0x39,0x10,0x00,0xc1,0x87,0x05,0x2b,0x87,0x2b,0xc4,0x10,0x00,0xc1,0x87,0x05,0x18,0x2b,0x87,0x2b,0xc4,0x31,0x30,0x21,0x23,0x01,0x2e,0x01,0x27,0x26,0x27,0x06,0x07,0x0e,0x01,0x07,0x01,0x23,0x01,0x33,0x04,0xc2,0xc9,0xfe,0xc2,0x10,0x1e,0x0c,0x0e,0x0c,0x0d,0x0e,0x0c,0x1d,0x10,0xfe,0xc0,0xc9, -0x01,0xf9,0xc6,0x03,0x86,0x30,0x61,0x29,0x30,0x2d,0x2f,0x30,0x2a,0x61,0x2d,0xfc,0x7a,0x05,0x45,0x00,0xff,0xff,0x00,0x81,0x00,0x00,0x04,0x4b,0x05,0x45,0x12,0x06,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x2a,0x05,0x45,0x12,0x06,0x00,0x31,0x00,0x00,0x00,0x03,0x00,0x87,0x00,0x00,0x04,0x46,0x05,0x45,0x00,0x03, -0x00,0x07,0x00,0x0b,0x00,0x87,0x40,0x65,0xc0,0x07,0xd0,0x07,0xe0,0x07,0x03,0xe0,0x07,0xf0,0x07,0x02,0xbf,0x02,0xcf,0x02,0xdf,0x02,0x03,0x02,0x40,0x21,0x24,0x48,0x9f,0x08,0xaf,0x08,0xbf,0x08,0x03,0x00,0x0b,0xc0,0x0b,0xd0,0x0b,0xe0,0x0b,0x04,0x00,0x0b,0xe0,0x0b,0xf0,0x0b,0x03,0x00,0x0b,0x08,0x02,0x07,0x07,0x02,0x08,0x0b, -0x00,0x05,0x0d,0xcf,0x04,0x01,0x00,0x04,0x10,0x04,0x02,0x04,0x0a,0x5f,0x0f,0x0b,0x3f,0x0b,0x7f,0x0b,0x8f,0x0b,0x04,0x6f,0x0b,0x8f,0x0b,0x9f,0x0b,0xbf,0x0b,0xdf,0x0b,0x05,0x0b,0x0b,0x01,0x05,0x5f,0x04,0x12,0x00,0x5f,0x01,0x03,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x71,0x72,0xed,0x01,0x2f,0x5d,0x71,0x12,0x17,0x39,0x2f, -0x2f,0x2f,0x2f,0x2f,0x5d,0x71,0x5d,0x2b,0x5d,0x5d,0x71,0x31,0x30,0x13,0x35,0x21,0x15,0x01,0x35,0x21,0x15,0x03,0x15,0x21,0x35,0x9b,0x03,0x97,0xfc,0x55,0x03,0xbf,0x91,0xfd,0x63,0x04,0xa9,0x9c,0x9c,0xfb,0x57,0x9c,0x9c,0x03,0x03,0x9a,0x9a,0x00,0xff,0xff,0x00,0x66,0xff,0xec,0x04,0x66,0x05,0x5a,0x12,0x06,0x00,0x32,0x00,0x00, -0x00,0x01,0x00,0xa3,0x00,0x00,0x04,0x2a,0x05,0x45,0x00,0x07,0x00,0x43,0x40,0x2f,0x03,0x5a,0x1f,0x04,0x2f,0x04,0x3f,0x04,0x6f,0x04,0x7f,0x04,0x05,0x6f,0x04,0x7f,0x04,0x8f,0x04,0xbf,0x04,0x04,0x04,0x04,0x09,0x07,0x5a,0x70,0x00,0x01,0x00,0x00,0x10,0x00,0xa0,0x00,0xb0,0x00,0x04,0x00,0x06,0x5f,0x01,0x03,0x04,0x00,0x12,0x00, -0x3f,0x32,0x3f,0xed,0x01,0x2f,0x5d,0x71,0xed,0x12,0x39,0x2f,0x5d,0x71,0xed,0x31,0x30,0x33,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0xa3,0x03,0x87,0xbf,0xfd,0xf7,0x05,0x45,0xfa,0xbb,0x04,0xa9,0xfb,0x57,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x5f,0x05,0x45,0x12,0x06,0x00,0x33,0x00,0x00,0x00,0x01,0x00,0x6c,0x00,0x00,0x04,0xa1, -0x05,0x45,0x00,0x0c,0x00,0x67,0x40,0x19,0x76,0x08,0x86,0x08,0x02,0x08,0x02,0x02,0x05,0x01,0x07,0x5b,0x9f,0x05,0xaf,0x05,0xbf,0x05,0x03,0x03,0x05,0x03,0x05,0x01,0x0b,0xb8,0xff,0xc0,0x40,0x1f,0x09,0x16,0x48,0x0b,0x0b,0x0e,0x0a,0x5b,0x10,0x01,0x01,0x01,0x03,0x07,0x5f,0x04,0x09,0x08,0x40,0x02,0x01,0x02,0x02,0x09,0x04,0x03, -0x01,0x0a,0x5f,0x00,0x12,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x19,0x2f,0x71,0x33,0x33,0x18,0x10,0xed,0x32,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x2b,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xed,0x11,0x12,0x39,0x2f,0xcd,0x31,0x30,0x00,0x5d,0x33,0x35,0x09,0x01,0x35,0x21,0x15,0x21,0x01,0x15,0x01,0x21,0x15,0x6c,0x02,0x1a,0xfd,0xf7,0x03, -0xe7,0xfc,0xf0,0x01,0xca,0xfe,0x16,0x03,0x6d,0xa2,0x02,0x25,0x01,0xdd,0xa1,0x9c,0xfe,0x61,0x7c,0xfe,0x0e,0x9c,0x00,0x00,0xff,0xff,0x00,0x4c,0x00,0x00,0x04,0x80,0x05,0x45,0x12,0x06,0x00,0x37,0x00,0x00,0xff,0xff,0x00,0x24,0x00,0x00,0x04,0xa8,0x05,0x45,0x12,0x06,0x00,0x3c,0x00,0x00,0x00,0x03,0x00,0x08,0xff,0xf5,0x04,0xc5, -0x05,0x4f,0x00,0x1d,0x00,0x2a,0x00,0x37,0x00,0x94,0xb9,0x00,0x2d,0xff,0xe0,0xb3,0x0c,0x0f,0x48,0x29,0xb8,0xff,0xe0,0x40,0x52,0x0c,0x0f,0x48,0x36,0x18,0x0c,0x0f,0x48,0x20,0x18,0x0c,0x0f,0x48,0x1e,0x5a,0x40,0x00,0x0e,0x07,0x0f,0x08,0x0e,0x2b,0x5a,0x0f,0x25,0x18,0x07,0x5c,0x31,0x15,0x7f,0x08,0x8f,0x08,0x02,0x0f,0x08,0x3f, -0x08,0xbf,0x08,0xcf,0x08,0x04,0x4f,0x08,0x5f,0x08,0x7f,0x08,0x8f,0x08,0x04,0x08,0x08,0x39,0x38,0x23,0x32,0x60,0x15,0x18,0x15,0x26,0x31,0x60,0x09,0x06,0x09,0x90,0x15,0x01,0x15,0x09,0x15,0x09,0x07,0x16,0x03,0x07,0x13,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x12, -0x01,0x39,0x2f,0x5d,0x71,0x72,0x33,0x33,0xed,0x32,0x32,0x7d,0xd4,0x18,0xed,0x2b,0x01,0x18,0x10,0x4d,0xf4,0x1a,0xed,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x2b,0x01,0x14,0x0e,0x02,0x2b,0x01,0x15,0x23,0x35,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x3b,0x01,0x35,0x33,0x15,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x2b,0x01,0x11,0x33, -0x32,0x3e,0x02,0x25,0x14,0x1e,0x02,0x3b,0x01,0x11,0x23,0x22,0x0e,0x02,0x04,0xc5,0x3f,0x79,0xb1,0x72,0x29,0xb5,0x29,0x72,0xb1,0x79,0x3f,0x41,0x7c,0xb5,0x74,0x1e,0xb5,0x1d,0x74,0xb6,0x7c,0x41,0xc2,0x2d,0x52,0x76,0x48,0x05,0x0c,0x4a,0x73,0x4f,0x2a,0xfc,0xc7,0x2a,0x4f,0x74,0x49,0x0c,0x08,0x48,0x74,0x52,0x2c,0x02,0xc2,0x61, -0xb5,0x8b,0x53,0xd9,0xd9,0x53,0x8b,0xb5,0x61,0x6a,0xb1,0x7f,0x47,0xac,0xac,0x47,0x7f,0xb1,0x6e,0x56,0x80,0x55,0x2b,0xfd,0x48,0x32,0x5d,0x83,0x50,0x50,0x83,0x5d,0x32,0x02,0xb8,0x2b,0x55,0x80,0x00,0x00,0xff,0xff,0x00,0x24,0x00,0x00,0x04,0xa9,0x05,0x45,0x12,0x06,0x00,0x3b,0x00,0x00,0x00,0x01,0x00,0x31,0x00,0x00,0x04,0x9c, -0x05,0x45,0x00,0x23,0x00,0x69,0x40,0x3f,0x02,0x16,0x12,0x16,0x22,0x16,0x03,0x02,0x0d,0x12,0x0d,0x22,0x0d,0x03,0x0c,0x04,0x19,0x5c,0x40,0x1c,0x0e,0x23,0x07,0x00,0x0e,0x13,0x23,0x5c,0x00,0x0a,0x5c,0xaf,0x07,0x01,0x07,0x10,0x3f,0x00,0x01,0x7f,0x00,0x8f,0x00,0x02,0x10,0x00,0x01,0x00,0x00,0x24,0x25,0x13,0x10,0x60,0x22,0x01, -0x01,0x1a,0x11,0x08,0x03,0x00,0x12,0x00,0x3f,0x3f,0x33,0x33,0x39,0x2f,0x33,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x5d,0x5d,0x71,0x33,0xd4,0x5d,0xed,0x10,0xed,0x32,0x2b,0x01,0x18,0x10,0x4d,0xf4,0x1a,0xed,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x21,0x11,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x3b,0x01,0x11,0x33, -0x11,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x2b,0x01,0x11,0x02,0x19,0x3a,0x72,0xa3,0x68,0x31,0xa1,0x1f,0x43,0x69,0x49,0x33,0x9b,0x33,0x49,0x68,0x43,0x20,0xa1,0x31,0x69,0xa2,0x72,0x3a,0x01,0x8d,0x54,0x8f,0xbc,0x68,0x01,0xb1,0xfe,0x4b,0x50,0x8b,0x66,0x3a,0x03,0x30,0xfc,0xd0,0x3a,0x66,0x8b,0x50,0x01,0xb5, -0xfe,0x4f,0x68,0xbc,0x8f,0x54,0xfe,0x73,0x00,0x01,0x00,0x3b,0x00,0x00,0x04,0x93,0x05,0x5a,0x00,0x39,0x00,0xda,0x40,0x78,0x79,0x15,0x89,0x15,0x02,0x76,0x25,0x86,0x25,0x02,0x6b,0x09,0x7b,0x09,0x8b,0x09,0x03,0x6b,0x31,0x7b,0x31,0x8b,0x31,0x03,0x66,0x25,0x76,0x25,0x86,0x25,0x03,0x66,0x15,0x76,0x15,0x86,0x15,0x03,0x46,0x38, -0x56,0x38,0x02,0x46,0x02,0x56,0x02,0x02,0x39,0x1b,0x01,0x39,0x1f,0x01,0x30,0x5c,0x28,0x0a,0x5c,0x12,0x20,0x12,0x30,0x12,0x50,0x12,0x60,0x12,0x70,0x12,0x05,0x4f,0x12,0x01,0xdf,0x28,0xef,0x28,0xff,0x28,0x03,0x00,0x28,0x10,0x28,0x20,0x28,0x03,0x70,0x28,0x80,0x28,0x02,0x28,0x12,0x28,0x12,0x35,0x18,0x10,0x10,0x05,0x5a,0x80, -0x18,0x90,0x18,0xd0,0x18,0xe0,0x18,0xf0,0x18,0x05,0x90,0x18,0xa0,0x18,0x02,0x18,0xb8,0xff,0xc0,0x40,0x23,0x09,0x0c,0x48,0x18,0x18,0x35,0x3b,0x2a,0x2a,0x22,0x5a,0x2f,0x35,0x3f,0x35,0x02,0x35,0x40,0x21,0x24,0x48,0x35,0x13,0x27,0x27,0x10,0x2a,0x5f,0x12,0x29,0x12,0x1d,0x5f,0x00,0x04,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x32, -0x2f,0x33,0x01,0x2f,0x2b,0x5d,0xed,0x33,0x2f,0x11,0x12,0x39,0x2f,0x2b,0x5d,0x71,0xed,0x32,0x2f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x71,0x71,0x71,0x72,0x10,0xed,0x10,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x36,0x37,0x3e,0x01,0x3b,0x01,0x15, -0x21,0x35,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x15,0x21,0x35,0x33,0x32,0x16,0x17,0x16,0x17,0x2e,0x03,0x35,0x34,0x3e,0x02,0x02,0x67,0x7c,0xc5,0x8a,0x49,0x2d,0x55,0x7e,0x51,0x20,0x1e,0x1a,0x36,0x13,0xc8,0xfe,0x1d,0x4b,0x66,0x3d,0x1a,0x27,0x53,0x7f,0x57,0x58,0x80,0x52,0x28,0x1a,0x3d, -0x66,0x4b,0xfe,0x1d,0xc8,0x13,0x36,0x1a,0x1e,0x20,0x51,0x7e,0x55,0x2d,0x49,0x8a,0xc5,0x05,0x5a,0x55,0x9d,0xdd,0x88,0x5f,0xb3,0xa0,0x8a,0x36,0x03,0x03,0x02,0x03,0x9c,0xe0,0x37,0x7d,0x88,0x90,0x4a,0x69,0xa8,0x77,0x40,0x40,0x77,0xa8,0x69,0x4a,0x90,0x88,0x7d,0x37,0xe0,0x9c,0x03,0x02,0x03,0x03,0x36,0x8a,0xa0,0xb3,0x5f,0x88, -0xdd,0x9d,0x55,0x00,0xff,0xff,0x00,0xca,0x00,0x00,0x04,0x01,0x06,0x86,0x12,0x26,0x00,0x2c,0x00,0x00,0x11,0x07,0x00,0x69,0x00,0x02,0x01,0x0b,0x00,0x17,0x40,0x0d,0x02,0x01,0x0c,0x05,0x26,0x02,0x01,0x02,0x10,0x0e,0x00,0x01,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x24,0x00,0x00,0x04,0xa8, -0x06,0x86,0x12,0x26,0x00,0x3c,0x00,0x00,0x11,0x07,0x00,0x69,0x00,0x12,0x01,0x0b,0x00,0x17,0x40,0x0d,0x02,0x01,0x09,0x05,0x26,0x02,0x01,0x11,0x0d,0x0b,0x04,0x08,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x81,0xff,0xec,0x04,0x90,0x05,0xf6,0x12,0x26,0x01,0x7e,0x00,0x00,0x11,0x06,0x01,0x54, -0x3c,0x00,0x00,0x13,0x40,0x0b,0x02,0x3c,0x11,0x26,0x02,0x18,0x3c,0x3f,0x08,0x17,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xaf,0xff,0xec,0x04,0x41,0x05,0xf6,0x12,0x26,0x01,0x82,0x00,0x00,0x11,0x06,0x01,0x54,0x50,0x00,0x00,0x13,0x40,0x0b,0x01,0x3a,0x11,0x26,0x01,0x3d,0x3a,0x3d,0x10,0x06,0x25,0x01,0x2b,0x35, -0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xb3,0xfe,0x57,0x04,0x19,0x05,0xf6,0x12,0x26,0x01,0x84,0x00,0x00,0x11,0x06,0x01,0x54,0x50,0x00,0x00,0x13,0x40,0x0b,0x01,0x26,0x11,0x26,0x01,0x4f,0x26,0x29,0x13,0x24,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x95,0xff,0xec,0x04,0x5d,0x05,0xf6,0x12,0x26,0x01,0x86,0x00,0x00, -0x11,0x06,0x01,0x54,0x1e,0x00,0x00,0x13,0x40,0x0b,0x01,0x14,0x11,0x26,0x01,0x0a,0x14,0x17,0x11,0x07,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xa3,0xff,0xec,0x04,0x44,0x06,0x41,0x12,0x26,0x01,0x92,0x00,0x00,0x11,0x06,0x01,0x55,0xf1,0x00,0x00,0x19,0xb5,0x03,0x02,0x01,0x03,0x02,0x01,0xb8,0xff,0xe4,0xb4,0x2a, -0x28,0x0a,0x00,0x25,0x01,0x2b,0x35,0x35,0x35,0x00,0x35,0x35,0x35,0x00,0x00,0x00,0x00,0x02,0x00,0x81,0xff,0xec,0x04,0x90,0x04,0x4e,0x00,0x27,0x00,0x3b,0x00,0x96,0x40,0x6a,0x7a,0x25,0x8a,0x25,0x02,0x7a,0x34,0x8a,0x34,0x02,0x7a,0x30,0x8a,0x30,0x02,0x65,0x2a,0x01,0x4a,0x3a,0x5a,0x3a,0x6a,0x3a,0x03,0x25,0x0d,0x35,0x0d,0x02, -0x0b,0x06,0x1b,0x06,0x7b,0x06,0x8b,0x06,0x04,0x7b,0x22,0x8b,0x22,0x02,0x22,0x21,0x7b,0x16,0x8b,0x16,0x02,0x21,0x16,0x17,0x17,0x1c,0x49,0x10,0x00,0x60,0x32,0x70,0x32,0x02,0x90,0x32,0xa0,0x32,0xd0,0x32,0xe0,0x32,0x04,0x32,0x32,0x3d,0x28,0x47,0x00,0x08,0x01,0x08,0x22,0x15,0x16,0x0f,0x37,0x50,0x74,0x10,0x84,0x10,0x02,0x10, -0x0b,0x10,0x2d,0x50,0x7b,0x27,0x8b,0x27,0x02,0x27,0x05,0x16,0x00,0x3f,0x33,0x5d,0xed,0x3f,0x33,0x5d,0xed,0x3f,0x3f,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x71,0x33,0x33,0xed,0x32,0x2f,0x33,0x33,0x5d,0x2f,0x33,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x25,0x0e,0x03,0x23,0x22,0x02,0x11,0x10,0x12,0x33, -0x32,0x1e,0x02,0x17,0x33,0x3e,0x03,0x37,0x33,0x0e,0x03,0x07,0x1e,0x03,0x17,0x23,0x2e,0x03,0x27,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x2e,0x03,0x23,0x22,0x0e,0x02,0x03,0x76,0x19,0x42,0x57,0x6f,0x46,0xcd,0xc1,0xd9,0xd1,0x45,0x70,0x56,0x3f,0x14,0x02,0x04,0x0e,0x13,0x17,0x0d,0xbc,0x16,0x2e,0x27,0x1e,0x05,0x03,0x17, -0x1f,0x24,0x12,0xb7,0x0b,0x15,0x10,0x0d,0x03,0xfd,0xc4,0x1c,0x3b,0x5d,0x42,0x36,0x64,0x52,0x3d,0x0e,0x0c,0x2d,0x47,0x66,0x46,0x42,0x60,0x40,0x1f,0xed,0x38,0x5e,0x45,0x26,0x01,0x14,0x01,0x18,0x01,0x1c,0x01,0x1a,0x27,0x45,0x5d,0x36,0x15,0x38,0x3f,0x41,0x1e,0x2f,0x80,0x8b,0x8b,0x3a,0x67,0xaf,0x90,0x6e,0x27,0x1c,0x42,0x41, -0x3a,0x14,0x01,0x31,0x70,0xa0,0x67,0x30,0x34,0x6b,0xa0,0x6c,0x56,0x9a,0x73,0x44,0x2e,0x66,0xa3,0x00,0x00,0x02,0x00,0xac,0xfe,0x57,0x04,0x67,0x05,0xcc,0x00,0x20,0x00,0x40,0x00,0x8d,0xb7,0x6a,0x29,0x7a,0x29,0x8a,0x29,0x03,0x34,0xb8,0xff,0xe0,0x40,0x34,0x0d,0x11,0x48,0x45,0x1f,0x55,0x1f,0x65,0x1f,0x03,0x64,0x3f,0x74,0x3f, -0x84,0x3f,0x03,0x35,0x3f,0x45,0x3f,0x55,0x3f,0x03,0x0a,0x03,0x1a,0x03,0x02,0x05,0x14,0x15,0x14,0x02,0x1c,0x17,0x3c,0x3c,0x0d,0x17,0x48,0x21,0x21,0x0e,0x00,0x48,0x00,0x36,0x10,0x36,0x02,0x36,0xb8,0xff,0xc0,0x40,0x1d,0x10,0x13,0x48,0x36,0x36,0x42,0x2c,0x0d,0x46,0x00,0x0e,0x01,0x0e,0x1c,0x3b,0x50,0x3c,0x3c,0x12,0x31,0x50, -0x05,0x16,0x26,0x50,0x12,0x00,0x0d,0x1b,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x2b,0x5d,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x2b,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x1e,0x01,0x15,0x11,0x23,0x11, -0x34,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x35,0x3e,0x03,0x04,0x67,0x35,0x6f,0xad,0x78,0x66,0xa0,0x38,0x06,0x03,0x03,0xb4,0xe4,0xe2,0x63,0x98,0x66,0x35,0x23,0x3d,0x51,0x2e,0x39,0x72,0x5b,0x38, -0xfe,0xf4,0x1b,0x39,0x57,0x3c,0x46,0x68,0x44,0x22,0x1c,0x47,0x51,0x57,0x2b,0x48,0x6e,0x49,0x26,0x2e,0x61,0x99,0x6b,0x51,0x74,0x4b,0x23,0x01,0x95,0x58,0x9b,0x74,0x42,0x37,0x27,0x39,0x5c,0x35,0xfe,0xd7,0x05,0xac,0xed,0xdc,0x2f,0x5a,0x82,0x52,0x49,0x6f,0x52,0x38,0x12,0x0b,0x37,0x5d,0x89,0x02,0x7a,0x2c,0x4d,0x39,0x20,0x23, -0x4d,0x7a,0x58,0xfc,0xd0,0x13,0x22,0x19,0x0e,0x29,0x4c,0x6a,0x42,0x41,0x6e,0x51,0x2d,0x8e,0x06,0x2e,0x4b,0x64,0x00,0x00,0x00,0x01,0x00,0x35,0xfe,0x58,0x04,0x90,0x04,0x3a,0x00,0x18,0x00,0xb8,0x40,0x19,0x54,0x0b,0x01,0x45,0x0b,0x01,0x40,0x0e,0x50,0x0e,0x02,0x2f,0x0e,0x01,0x13,0x47,0x8a,0x17,0x01,0x17,0x18,0x0d,0x10,0x48, -0x0e,0xb8,0xff,0xf0,0x40,0x21,0x0c,0x11,0x48,0x17,0x0e,0x06,0x69,0x06,0x01,0x06,0x0d,0x14,0x14,0x18,0x0c,0x20,0x0d,0x11,0x48,0x28,0x0c,0x38,0x0c,0x02,0x03,0x0c,0x70,0x0d,0x80,0x0d,0x02,0x02,0x0d,0xb8,0xff,0xc0,0x40,0x3d,0x0a,0x0f,0x48,0x0d,0x0d,0x1a,0x82,0x00,0x01,0x73,0x00,0x01,0x64,0x00,0x01,0x53,0x00,0x01,0x44,0x00, -0x01,0x35,0x00,0x01,0x26,0x00,0x01,0x12,0x00,0x01,0x04,0x00,0x01,0x00,0x18,0x40,0x0b,0x13,0x48,0x18,0x76,0x06,0x86,0x06,0x02,0x3b,0x0e,0x4b,0x0e,0x5b,0x0e,0x03,0x0e,0x06,0x17,0x17,0x13,0x1b,0x0c,0x00,0x0f,0x00,0x3f,0x32,0x3f,0x39,0x2f,0x33,0x33,0x5d,0x5d,0x01,0x2f,0x2b,0x33,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x11,0x33,0x2f,0x2b,0x5f,0x5d,0x33,0x5f,0x5d,0x2b,0x12,0x39,0x2f,0x12,0x39,0x5d,0x11,0x33,0x33,0x2b,0x2b,0x5d,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x09,0x01,0x1e,0x03,0x17,0x3e,0x03,0x37,0x01,0x33,0x01,0x0e,0x03,0x07,0x23,0x3e,0x01,0x37,0x01,0x00,0xff,0x01,0x0f,0x0b,0x1d,0x1c,0x15,0x02,0x03,0x17,0x1e,0x1f,0x0c,0x00, -0xff,0xc5,0xfe,0x4b,0x11,0x1f,0x1b,0x16,0x08,0xbf,0x11,0x30,0x18,0xfe,0x29,0x04,0x3a,0xfd,0x6f,0x1b,0x4f,0x4d,0x3e,0x09,0x0b,0x40,0x4e,0x52,0x1d,0x02,0x87,0xfb,0xfb,0x2d,0x6f,0x7c,0x84,0x41,0x83,0xd5,0x5b,0x04,0x2f,0x00,0x00,0x02,0x00,0x70,0xff,0xec,0x04,0x55,0x05,0xcc,0x00,0x13,0x00,0x32,0x00,0xa3,0x40,0x1b,0x75,0x1b, -0x85,0x1b,0x02,0x69,0x08,0x01,0x6a,0x07,0x01,0x44,0x12,0x54,0x12,0x64,0x12,0x03,0x63,0x0c,0x01,0x44,0x0c,0x54,0x0c,0x02,0x1a,0xb8,0xff,0xe8,0x40,0x55,0x0b,0x11,0x48,0x32,0x32,0x1f,0x47,0x00,0x70,0x19,0x80,0x19,0x02,0x53,0x19,0x63,0x19,0x02,0x24,0x19,0x34,0x19,0x44,0x19,0x03,0x19,0x2e,0x05,0x00,0x2f,0x2f,0x29,0x70,0x00, -0x80,0x00,0x90,0x00,0x03,0x50,0x00,0xa0,0x00,0x02,0x00,0x00,0x10,0x00,0x60,0x00,0x70,0x00,0x80,0x00,0x05,0x00,0x00,0x34,0x0a,0x47,0x29,0x40,0x28,0x2d,0x48,0x29,0x40,0x18,0x1b,0x48,0x00,0x29,0x01,0x29,0x2f,0x32,0x50,0x2e,0x05,0x31,0x00,0x0f,0x50,0x24,0x16,0x00,0x3f,0xed,0x3f,0x39,0x39,0xed,0x32,0x01,0x2f,0x5d,0x2b,0x2b, -0xed,0x12,0x39,0x2f,0x5d,0x71,0x72,0x12,0x39,0x2f,0x12,0x39,0x39,0x33,0x5d,0x5d,0x5d,0x10,0xed,0x32,0x2f,0x31,0x30,0x00,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x34,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x01,0x22,0x2e,0x02,0x27,0x01,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34, -0x3e,0x02,0x37,0x01,0x35,0x21,0x15,0x03,0x98,0x36,0x4b,0x50,0x1a,0x49,0x8a,0x6c,0x41,0x28,0x4e,0x75,0x4c,0x51,0x75,0x4b,0x23,0xfe,0xf0,0x0d,0x29,0x2d,0x2a,0x0d,0x01,0x3c,0x37,0x6b,0x55,0x34,0x45,0x80,0xb8,0x74,0x72,0xb9,0x82,0x47,0x4e,0x84,0xae,0x60,0xfe,0xc1,0x02,0xec,0x01,0xd7,0x55,0x91,0x73,0x56,0x1b,0x1a,0x51,0x72, -0x92,0x5b,0x4c,0x83,0x60,0x37,0x36,0x5f,0x83,0x03,0xb4,0x02,0x03,0x02,0x01,0xfe,0xc7,0x36,0x74,0x86,0x9f,0x62,0x6e,0xb6,0x83,0x48,0x44,0x7f,0xb7,0x73,0x70,0xb0,0x87,0x61,0x21,0x01,0x48,0x82,0x8f,0x00,0x00,0x01,0x00,0xaf,0xff,0xec,0x04,0x41,0x04,0x4e,0x00,0x39,0x00,0x8a,0x40,0x58,0x73,0x12,0x83,0x12,0x02,0x7c,0x19,0x8c, -0x19,0x02,0x79,0x25,0x89,0x25,0x02,0x76,0x03,0x86,0x03,0x02,0x0a,0x0d,0x1a,0x0d,0x02,0x05,0x1e,0x15,0x1e,0x25,0x1e,0x03,0x2a,0x46,0x15,0x2f,0x20,0x2f,0x01,0x1b,0x2f,0x1b,0x2f,0x10,0x06,0x24,0x23,0x23,0x05,0x60,0x06,0x70,0x06,0x80,0x06,0x03,0x06,0x06,0x3b,0x37,0x47,0x00,0x10,0x01,0x10,0x15,0x30,0x50,0x2f,0x2f,0x00,0x27, -0x50,0x20,0x20,0x24,0x01,0x24,0x24,0x20,0x10,0x00,0x50,0x0b,0x05,0x05,0x0b,0x16,0x00,0x3f,0x33,0x2f,0x10,0xed,0x3f,0x33,0x2f,0x5d,0x10,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x33,0x33,0x2f,0x33,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x12,0x39,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x25,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x15,0x22,0x0e,0x04,0x15,0x14,0x16,0x02,0x6d,0x45,0x73,0x5b,0x43,0x15,0x69,0x20,0x59,0x75,0x95,0x5d,0x73,0xa4,0x69,0x32,0x2d, -0x4b,0x64,0x36,0x33,0x58,0x41,0x25,0x37,0x6c,0xa0,0x69,0x94,0xd3,0x43,0x80,0x2f,0x91,0x69,0x80,0x77,0x48,0x77,0x9a,0x53,0x35,0x6d,0x66,0x58,0x42,0x26,0x84,0x72,0x1f,0x30,0x39,0x19,0x64,0x27,0x47,0x35,0x20,0x2e,0x54,0x74,0x45,0x3a,0x5f,0x45,0x2a,0x05,0x02,0x06,0x28,0x40,0x56,0x33,0x3e,0x6a,0x4d,0x2c,0x56,0x63,0x58,0x47, -0x44,0x55,0x4a,0x39,0x46,0x25,0x0c,0x87,0x04,0x0e,0x1a,0x2d,0x41,0x2e,0x5b,0x5d,0x00,0x01,0x00,0xb8,0xfe,0x95,0x04,0x4e,0x05,0xcc,0x00,0x3a,0x00,0x7a,0x40,0x2a,0x79,0x38,0x01,0x69,0x37,0x01,0x6a,0x19,0x7a,0x19,0x8a,0x19,0x03,0x73,0x02,0x83,0x02,0x02,0x45,0x02,0x55,0x02,0x65,0x02,0x03,0x8c,0x2a,0x01,0x19,0x2a,0x01,0x2a, -0x34,0x34,0x0c,0x49,0x00,0x17,0x10,0x17,0x02,0x17,0xb8,0xff,0xc0,0x40,0x21,0x0f,0x13,0x48,0x17,0x17,0x23,0x3c,0x32,0x32,0x00,0x47,0x00,0x23,0x01,0x23,0x34,0x31,0x50,0x32,0x66,0x05,0x76,0x05,0x86,0x05,0x03,0x05,0x1c,0x1c,0x11,0x32,0x00,0x11,0xb8,0x01,0x09,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x33,0x5d,0x10,0xfd,0xc4,0x01,0x2f, -0x5d,0xed,0x33,0x2f,0x11,0x12,0x39,0x2f,0x2b,0x5d,0xed,0x32,0x2f,0x33,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x1e,0x02,0x17,0x1e,0x05,0x15,0x14,0x0e,0x02,0x07,0x27,0x3e,0x03,0x35,0x34,0x2e,0x02,0x27,0x2e,0x05,0x35,0x34,0x3e,0x04,0x37,0x35,0x0e,0x03,0x23,0x21,0x35,0x21,0x15,0x0e,0x05,0x01,0x77,0x41, -0x66,0x7e,0x3d,0x27,0x55,0x53,0x4b,0x39,0x22,0x12,0x1a,0x1d,0x0a,0x7e,0x09,0x13,0x10,0x0b,0x34,0x57,0x71,0x3d,0x2d,0x66,0x64,0x5c,0x46,0x2a,0x3c,0x67,0x89,0x9c,0xa5,0x4f,0x0c,0x23,0x2a,0x2d,0x17,0xfe,0x32,0x03,0x22,0x4d,0xa3,0x9a,0x88,0x67,0x3b,0x01,0x7b,0x40,0x4d,0x2f,0x1b,0x0f,0x09,0x16,0x1d,0x27,0x35,0x48,0x2e,0x22, -0x47,0x42,0x36,0x11,0x38,0x0c,0x21,0x26,0x27,0x13,0x22,0x31,0x25,0x1c,0x0c,0x09,0x19,0x24,0x35,0x4c,0x65,0x43,0x54,0xac,0xac,0xaa,0xa3,0x98,0x44,0x06,0x01,0x02,0x02,0x01,0x8e,0x8a,0x46,0x9b,0xa4,0xaa,0xa8,0xa4,0x00,0x00,0x00,0x01,0x00,0xb3,0xfe,0x57,0x04,0x19,0x04,0x4e,0x00,0x25,0x00,0x40,0x40,0x29,0x70,0x22,0x80,0x22, -0x02,0x04,0x21,0x14,0x21,0x24,0x21,0x74,0x21,0x84,0x21,0x05,0x25,0x46,0x00,0x00,0x27,0x19,0x0c,0x46,0x00,0x0d,0x80,0x0d,0x02,0x0d,0x19,0x06,0x50,0x1f,0x10,0x13,0x0f,0x0d,0x15,0x00,0x1b,0x00,0x3f,0x3f,0x3f,0x3f,0xed,0x33,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x01,0x11,0x34,0x2e,0x02,0x23, -0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x15,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x11,0x03,0x64,0x21,0x3b,0x50,0x30,0x3b,0x67,0x4d,0x2c,0xb4,0x01,0x02,0x02,0x01,0xaa,0x01,0x02,0x03,0x02,0x03,0x18,0x41,0x55,0x6a,0x42,0x53,0x80,0x57,0x2d,0xfe,0x57,0x04,0x60,0x50,0x67,0x3d,0x18,0x2d,0x55, -0x7d,0x51,0xfd,0x8d,0x03,0x53,0x22,0x4b,0x43,0x30,0x07,0x05,0x2c,0x39,0x3b,0x14,0x2f,0x4c,0x35,0x1d,0x2c,0x5c,0x90,0x65,0xfb,0x86,0x00,0x00,0x00,0x03,0x00,0x97,0xff,0xec,0x04,0x36,0x05,0xcb,0x00,0x0f,0x00,0x1a,0x00,0x25,0x00,0xb7,0xb6,0x6b,0x24,0x01,0x63,0x1d,0x01,0x18,0xb8,0xff,0xe8,0x40,0x6a,0x0e,0x11,0x48,0x13,0x18, -0x0e,0x11,0x48,0x5f,0x23,0x6f,0x23,0x02,0x4b,0x23,0x01,0x5f,0x1e,0x6f,0x1e,0x02,0x3b,0x1e,0x4b,0x1e,0x02,0x50,0x18,0x60,0x18,0x02,0x44,0x18,0x01,0x26,0x18,0x36,0x18,0x02,0x50,0x13,0x60,0x13,0x02,0x42,0x13,0x01,0x26,0x13,0x36,0x13,0x02,0x21,0x00,0x47,0x4f,0x15,0x5f,0x15,0x6f,0x15,0x9f,0x15,0xaf,0x15,0x05,0x3f,0x15,0x4f, -0x15,0x8f,0x15,0x9f,0x15,0x04,0xcf,0x15,0xdf,0x15,0xff,0x15,0x03,0x15,0x40,0x26,0x2a,0x48,0x15,0x15,0x27,0x20,0x16,0x47,0x90,0x08,0x01,0x00,0x08,0xc0,0x08,0xd0,0x08,0xe0,0x08,0x04,0x08,0xb8,0xff,0xc0,0x40,0x10,0x22,0x27,0x48,0x08,0x16,0x51,0x20,0x20,0x10,0x1b,0x51,0x0b,0x10,0x50,0x03,0x16,0x00,0x3f,0xed,0x2f,0xed,0x12, -0x39,0x2f,0xed,0x01,0x2f,0x2b,0x5d,0x72,0xed,0x32,0x12,0x39,0x2f,0x2b,0x5d,0x71,0x72,0xed,0x33,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x2b,0x2b,0x5d,0x5d,0x01,0x10,0x02,0x23,0x22,0x2e,0x01,0x02,0x35,0x10,0x12,0x33,0x32,0x1e,0x01,0x12,0x01,0x32,0x3e,0x02,0x37,0x21,0x1e,0x03,0x13,0x22,0x0e, -0x02,0x07,0x21,0x2e,0x03,0x04,0x36,0xf0,0xe4,0x6c,0xab,0x76,0x3e,0xe9,0xe8,0x79,0xaf,0x70,0x36,0xfe,0x2a,0x3e,0x64,0x49,0x2a,0x03,0xfd,0xdd,0x03,0x2c,0x47,0x5e,0x42,0x3d,0x64,0x48,0x2a,0x03,0x02,0x23,0x03,0x28,0x45,0x61,0x02,0xdd,0xfe,0x83,0xfe,0x8c,0x5c,0xba,0x01,0x1b,0xc0,0x01,0x76,0x01,0x78,0x5d,0xbc,0xfe,0xe7,0xfc, -0xd8,0x34,0x80,0xd8,0xa4,0xa3,0xd8,0x81,0x34,0x04,0xd9,0x33,0x7e,0xd4,0xa1,0xa1,0xd4,0x7e,0x33,0x00,0x00,0x01,0x00,0x95,0xff,0xec,0x04,0x5d,0x04,0x3a,0x00,0x13,0x00,0x58,0x40,0x3b,0x0c,0x18,0x09,0x0d,0x48,0x20,0x07,0x30,0x07,0x40,0x07,0xb0,0x07,0x04,0x07,0x07,0x00,0x46,0x0f,0x00,0x12,0x01,0x12,0x12,0x1f,0x0f,0x4f,0x0f, -0x5f,0x0f,0x6f,0x0f,0x04,0x0f,0x40,0x12,0x3c,0x48,0x0f,0x0f,0x14,0x15,0x11,0x50,0x12,0x0f,0x30,0x06,0x40,0x06,0x50,0x06,0x03,0x06,0x06,0x03,0x50,0x0a,0x16,0x00,0x3f,0xed,0x33,0x2f,0x5d,0x3f,0xed,0x11,0x12,0x01,0x39,0x2f,0x2b,0x5d,0x33,0x2f,0x5d,0x10,0xed,0x32,0x2f,0x5d,0x31,0x30,0x00,0x2b,0x01,0x14,0x16,0x33,0x32,0x36, -0x37,0x17,0x0e,0x01,0x23,0x22,0x2e,0x02,0x35,0x11,0x21,0x35,0x21,0x02,0x88,0x50,0x54,0x42,0x67,0x2a,0x5e,0x3a,0x95,0x63,0x5c,0x82,0x53,0x26,0xfe,0xc1,0x01,0xf3,0x01,0x5a,0x6f,0x65,0x3e,0x2c,0x78,0x40,0x4c,0x2e,0x5c,0x8a,0x5d,0x02,0x4f,0x8e,0xff,0xff,0x00,0xec,0x00,0x00,0x04,0x65,0x04,0x3a,0x12,0x06,0x00,0xf8,0x00,0x00, -0x00,0x01,0x00,0x72,0x00,0x00,0x04,0x52,0x05,0xcc,0x00,0x23,0x00,0xd4,0x40,0x7c,0x74,0x00,0x84,0x00,0x02,0x78,0x17,0x88,0x17,0x02,0x73,0x14,0x83,0x14,0x02,0x02,0x40,0x14,0x50,0x14,0x60,0x14,0x03,0x71,0x13,0x81,0x13,0x02,0x25,0x13,0x35,0x13,0x45,0x13,0x65,0x13,0x04,0x64,0x11,0x74,0x11,0x84,0x11,0x03,0x22,0x10,0x32,0x10, -0x42,0x10,0x03,0x6c,0x16,0x7c,0x16,0x8c,0x16,0x03,0x16,0x10,0x0b,0x0e,0x48,0x63,0x22,0x73,0x22,0x83,0x22,0x03,0x36,0x22,0x46,0x22,0x56,0x22,0x03,0x25,0x22,0x01,0x06,0x22,0x16,0x22,0x02,0x48,0x00,0x58,0x00,0x88,0x00,0x03,0x14,0x00,0x1c,0x46,0x1c,0x56,0x1c,0x02,0x1c,0x15,0x0a,0x0a,0x23,0x89,0x16,0x01,0x16,0x15,0x10,0x70, -0x15,0x80,0x15,0x02,0x0f,0x15,0x01,0x15,0x15,0x25,0x22,0x23,0xb8,0xff,0xf0,0x40,0x1a,0x00,0x23,0x10,0x23,0x02,0x23,0x5b,0x1c,0x01,0x1c,0x14,0x00,0x40,0x0f,0x12,0x48,0x00,0x00,0x0f,0x23,0x15,0x15,0x06,0x50,0x0f,0x00,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x2b,0x33,0x33,0x5d,0x01,0x2f,0x5d,0x38,0x33,0x11,0x33,0x2f,0x5d, -0x5d,0x38,0x33,0x5d,0x12,0x39,0x2f,0x12,0x39,0x5d,0x11,0x33,0x33,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x2b,0x5d,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x01,0x5d,0x00,0x5d,0x01,0x27,0x2e,0x03,0x23,0x22,0x06,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x01,0x23,0x03,0x2e,0x03,0x27,0x0e,0x03,0x07,0x01,0x23,0x02,0x33,0x24, -0x1f,0x2d,0x2c,0x35,0x26,0x0f,0x31,0x11,0x23,0x11,0x29,0x2c,0x2a,0x11,0x3c,0x58,0x47,0x3f,0x24,0x01,0xab,0xbe,0xcf,0x08,0x12,0x12,0x10,0x05,0x07,0x16,0x19,0x18,0x08,0xfe,0xff,0xbb,0x03,0xc5,0x63,0x54,0x6c,0x3d,0x17,0x08,0x04,0x84,0x05,0x08,0x07,0x04,0x24,0x51,0x83,0x5f,0xfb,0x8b,0x02,0x41,0x16,0x39,0x3a,0x38,0x15,0x15, -0x3c,0x3d,0x38,0x12,0xfd,0xc1,0x00,0x00,0x00,0x01,0x00,0x9c,0xfe,0x57,0x04,0x7d,0x04,0x3a,0x00,0x27,0x00,0x6b,0x40,0x48,0x7a,0x25,0x8a,0x25,0x02,0x1b,0x1f,0x2b,0x1f,0x3b,0x1f,0x03,0x1f,0x0b,0x16,0x16,0x0e,0x46,0x0f,0x0b,0x1f,0x0b,0x02,0x0f,0x0b,0xaf,0x0b,0x02,0x4f,0x0b,0x5f,0x0b,0xbf,0x0b,0x03,0x0b,0x0b,0x29,0x03,0x27, -0x46,0x9f,0x00,0xaf,0x00,0x02,0x00,0x40,0x27,0x2d,0x48,0x00,0x40,0x1c,0x20,0x48,0x00,0x00,0x01,0x00,0x13,0x08,0x50,0x1f,0x1a,0x23,0x16,0x0c,0x01,0x0f,0x00,0x1b,0x00,0x3f,0x3f,0x33,0x3f,0x33,0x33,0xed,0x32,0x01,0x2f,0x5d,0x2b,0x2b,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0x71,0x72,0xed,0x32,0x2f,0x11,0x39,0x5d,0x31,0x30,0x00, -0x5d,0x13,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x0e,0x01,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x01,0x23,0x22,0x26,0x27,0x11,0x9c,0xb5,0x20,0x3a,0x54,0x34,0x80,0x92,0xb4,0x0b,0x14,0x1d,0x12,0x0b,0x20,0x0b,0x1a,0x33,0x24,0x36,0x47,0x2c,0x14,0x02,0x03,0x34, -0x93,0x64,0x43,0x6d,0x1f,0xfe,0x57,0x05,0xe3,0xfd,0x52,0x4e,0x6a,0x41,0x1c,0xae,0xa2,0x02,0x73,0xfc,0xd0,0x2b,0x39,0x20,0x0d,0x05,0x03,0x81,0x08,0x0c,0x1e,0x34,0x47,0x29,0x5f,0x63,0x29,0x26,0xfe,0x1c,0x00,0x01,0x00,0x5c,0x00,0x00,0x04,0x36,0x04,0x3a,0x00,0x12,0x00,0x7e,0xb5,0x06,0x08,0x16,0x08,0x02,0x08,0xb8,0xff,0xf0, -0x40,0x47,0x0d,0x11,0x48,0x49,0x06,0x01,0x7a,0x02,0x01,0x37,0x09,0x01,0x10,0x46,0x0f,0x0f,0x0c,0x70,0x05,0x80,0x05,0x02,0x65,0x05,0x01,0x05,0x06,0x01,0x52,0x08,0x09,0x08,0x4b,0x07,0x06,0x14,0x07,0x06,0x08,0x07,0x0a,0x09,0x1a,0x09,0x6a,0x09,0x03,0x09,0x07,0x00,0x46,0x00,0x0c,0x10,0x0c,0x60,0x0c,0x03,0x0c,0x0c,0x14,0x1f, -0x07,0x01,0x07,0x0f,0x07,0x0f,0x09,0x06,0x15,0x00,0x3f,0x33,0x3f,0x33,0x01,0x2f,0x5d,0x12,0x39,0x2f,0x5d,0xed,0x11,0x39,0x5d,0x10,0x00,0xc1,0x87,0x05,0x2b,0x87,0x2b,0xc4,0x01,0x32,0x5d,0x5d,0x11,0x33,0x18,0x2f,0xed,0x5d,0x31,0x30,0x00,0x5d,0x01,0x5d,0x2b,0x5d,0x01,0x14,0x0e,0x02,0x07,0x23,0x01,0x33,0x01,0x36,0x12,0x35, -0x34,0x26,0x27,0x33,0x1e,0x01,0x04,0x36,0x42,0x70,0x93,0x51,0xaa,0xfe,0x66,0xbd,0x01,0x4b,0x95,0x89,0x1d,0x14,0xb1,0x18,0x1c,0x03,0x4e,0x66,0xdc,0xdb,0xd3,0x5e,0x04,0x3a,0xfc,0x60,0xb9,0x01,0x4f,0xa3,0x51,0x77,0x2d,0x2d,0x71,0x00,0x00,0x00,0x00,0x01,0x00,0xbf,0xfe,0x9a,0x04,0x23,0x05,0xcc,0x00,0x50,0x00,0xaa,0x40,0x60, -0x7a,0x2e,0x8a,0x2e,0x02,0x6a,0x09,0x7a,0x09,0x8a,0x09,0x03,0x4a,0x2c,0x5a,0x2c,0x02,0x45,0x25,0x55,0x25,0x02,0x74,0x32,0x84,0x32,0x02,0x46,0x32,0x56,0x32,0x66,0x32,0x03,0x05,0x37,0x15,0x37,0x02,0x0b,0x02,0x1b,0x02,0x02,0x0d,0x0d,0x1d,0x0d,0x2d,0x0d,0x03,0x05,0x28,0x23,0x46,0x0b,0x10,0x1c,0x1c,0x40,0x09,0x0c,0x48,0x28, -0x1c,0x1a,0x0b,0x0b,0x1a,0x1c,0x28,0x04,0x00,0x3a,0x49,0x60,0x45,0x70,0x45,0x80,0x45,0x03,0x45,0x45,0x52,0x30,0x47,0x00,0x00,0x01,0x00,0x05,0x29,0x51,0x28,0x35,0xb8,0x01,0x0a,0xb6,0x4a,0x28,0x4a,0x28,0x4a,0x1a,0x3f,0xb8,0x01,0x09,0xb4,0x1c,0x19,0x50,0x1a,0x00,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed, -0x10,0xed,0x39,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2b,0x11,0x33,0x10,0xed,0x11,0x33,0x31,0x30,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x00,0x5d,0x13,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x35,0x0e,0x05,0x2b,0x01,0x35,0x21,0x15,0x0e,0x05,0x15, -0x14,0x1e,0x02,0x17,0x15,0x0e,0x05,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x27,0x3e,0x03,0x35,0x34,0x2e,0x02,0x27,0x2e,0x05,0xbf,0x3a,0x7c,0xc1,0x88,0x52,0x8a,0x63,0x37,0x30,0x53,0x6e,0x3e,0x08,0x29,0x37,0x3f,0x39,0x30,0x0c,0x5e,0x02,0xde,0x33,0x6f,0x6b,0x60,0x49,0x2b,0x4a,0x7a,0x9e,0x54,0x42,0x87, -0x7d,0x6d,0x51,0x2e,0x3e,0x62,0x7b,0x3d,0x3a,0x76,0x60,0x3d,0x12,0x1a,0x1d,0x0a,0x7e,0x09,0x13,0x10,0x0b,0x27,0x48,0x65,0x3d,0x2d,0x65,0x62,0x59,0x44,0x28,0x01,0x62,0x4c,0x93,0x7c,0x5a,0x13,0x02,0x05,0x27,0x44,0x60,0x3e,0x40,0x59,0x3d,0x24,0x0a,0x08,0x01,0x01,0x02,0x02,0x01,0x01,0x8e,0x88,0x06,0x11,0x1a,0x24,0x33,0x43, -0x2d,0x3f,0x51,0x31,0x18,0x06,0x83,0x08,0x1e,0x2c,0x3b,0x4c,0x5e,0x38,0x40,0x4f,0x32,0x1e,0x0f,0x0e,0x22,0x39,0x59,0x44,0x22,0x46,0x3f,0x35,0x11,0x38,0x0c,0x21,0x26,0x27,0x13,0x22,0x2f,0x23,0x1b,0x0c,0x09,0x19,0x24,0x34,0x4a,0x63,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0xec,0x04,0x49,0x04,0x4e,0x12,0x06,0x00,0x52,0x00,0x00, -0x00,0x01,0x00,0x16,0xff,0xec,0x04,0xa2,0x04,0x3a,0x00,0x2e,0x00,0x67,0x40,0x41,0x6f,0x19,0x01,0x10,0x10,0x09,0x11,0x48,0x10,0x20,0x09,0x11,0x48,0x0a,0x0a,0x2d,0x2d,0x00,0x1a,0x47,0x1b,0x5f,0x26,0x01,0x26,0x1b,0x26,0x21,0x00,0x46,0x70,0x13,0x80,0x13,0x02,0x13,0x40,0x0b,0x0e,0x48,0x13,0x13,0x30,0x14,0x46,0x00,0x21,0x40, -0x21,0x50,0x21,0x03,0x21,0x14,0x00,0x21,0x50,0x2c,0x0f,0x1b,0x15,0x06,0x50,0x0d,0x16,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x32,0x32,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x2b,0x5d,0xed,0x11,0x33,0x33,0x2f,0x5d,0x2f,0xed,0x11,0x33,0x2f,0x33,0x2f,0x31,0x30,0x2b,0x00,0x2b,0x5d,0x01,0x11,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x17,0x0e, -0x01,0x23,0x22,0x2e,0x02,0x35,0x11,0x21,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x3d,0x01,0x22,0x0e,0x02,0x07,0x35,0x3e,0x03,0x33,0x21,0x15,0x03,0xd6,0x0d,0x18,0x23,0x16,0x0e,0x27,0x0d,0x14,0x1f,0x45,0x2b,0x3a,0x53,0x34,0x18,0xfe,0x8c,0x07,0x10,0x1a,0x13,0xbc,0x13,0x1e,0x14,0x0b,0x27,0x49,0x3d,0x2f,0x0c,0x0c,0x2b,0x33, -0x36,0x17,0x03,0xd5,0x03,0xac,0xfd,0x5e,0x2b,0x39,0x20,0x0d,0x05,0x03,0x81,0x08,0x0c,0x1c,0x3b,0x5e,0x42,0x02,0xc9,0x48,0x82,0xf9,0xdf,0xc0,0x4a,0x4c,0xc2,0xde,0xf3,0x7d,0x50,0x06,0x0b,0x0d,0x07,0x96,0x06,0x0b,0x08,0x04,0x8e,0x00,0x00,0x00,0x00,0x02,0x00,0x9d,0xfe,0x57,0x04,0x54,0x04,0x4f,0x00,0x1a,0x00,0x2f,0x00,0x7b, -0x40,0x2f,0x43,0x2e,0x53,0x2e,0x63,0x2e,0x03,0x4c,0x23,0x5c,0x23,0x6c,0x23,0x03,0x3c,0x08,0x4c,0x08,0x5c,0x08,0x03,0x1d,0x48,0x0f,0x49,0x3c,0x1d,0x4c,0x1d,0x5c,0x1d,0x03,0x00,0x47,0x50,0x1b,0xa0,0x1b,0x02,0x00,0x1b,0x10,0x1b,0x60,0x1b,0x03,0x1b,0xb8,0xff,0xc0,0x40,0x27,0x29,0x2c,0x48,0x1b,0x1b,0x31,0x26,0x0f,0x46,0x9f, -0x10,0xaf,0x10,0x02,0x10,0x40,0x27,0x2d,0x48,0x10,0x40,0x1c,0x20,0x48,0x00,0x10,0x01,0x10,0x20,0x50,0x16,0x10,0x0f,0x1b,0x2b,0x50,0x0a,0x05,0x16,0x00,0x3f,0x33,0xed,0x3f,0x3f,0xed,0x01,0x2f,0x5d,0x2b,0x2b,0x5d,0xed,0x32,0x12,0x39,0x2f,0x2b,0x5d,0x71,0xed,0x31,0x30,0x00,0x5d,0x2b,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23, -0x22,0x2e,0x02,0x27,0x23,0x1e,0x01,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x1e,0x03,0x33,0x32,0x3e,0x02,0x04,0x54,0x3f,0x73,0xa1,0x62,0x3d,0x63,0x50,0x41,0x1d,0x04,0x02,0x02,0xb4,0x3c,0x74,0xaa,0x6d,0x67,0xb5,0x86,0x4e,0xc1,0x2c,0x53,0x74,0x48,0x45,0x64, -0x40,0x1e,0x1d,0x47,0x50,0x57,0x2c,0x43,0x64,0x43,0x21,0x02,0x04,0x76,0xc5,0x8e,0x4f,0x14,0x25,0x35,0x21,0x1e,0x3d,0x20,0xfe,0x57,0x03,0xee,0x77,0xc1,0x88,0x4a,0x4f,0x96,0xda,0x84,0x68,0xa6,0x73,0x3d,0x35,0x65,0x92,0x5d,0xfe,0xc3,0x23,0x37,0x25,0x14,0x3a,0x6b,0x98,0x00,0x00,0x00,0x00,0x01,0x00,0xb0,0xfe,0x9c,0x04,0x28, -0x04,0x4e,0x00,0x37,0x00,0x82,0x40,0x57,0x83,0x0f,0x01,0x6c,0x1e,0x7c,0x1e,0x8c,0x1e,0x03,0x6a,0x24,0x01,0x6a,0x35,0x7a,0x35,0x8a,0x35,0x03,0x6a,0x35,0x7a,0x35,0x8a,0x35,0x03,0x43,0x09,0x53,0x09,0x02,0x2a,0x03,0x3a,0x03,0x6a,0x03,0x03,0x33,0x32,0x32,0x11,0x49,0x1c,0x40,0x15,0x18,0x48,0x60,0x1c,0x01,0x1c,0x1c,0x39,0x36, -0x07,0x76,0x07,0x86,0x07,0x03,0x07,0x47,0x00,0x26,0x01,0x26,0x65,0x0c,0x75,0x0c,0x85,0x0c,0x03,0x0c,0x21,0x21,0x2d,0x16,0x33,0x33,0x00,0x50,0x2d,0x10,0x16,0xb8,0x01,0x09,0x00,0x3f,0x3f,0xed,0x33,0x2f,0x11,0x12,0x39,0x2f,0x33,0x5d,0x01,0x2f,0x5d,0xed,0x5d,0x12,0x39,0x2f,0x5d,0x2b,0xed,0x32,0x2f,0x33,0x31,0x30,0x00,0x5d, -0x5d,0x5d,0x01,0x5d,0x00,0x5d,0x5d,0x5d,0x01,0x22,0x0e,0x04,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x27,0x3e,0x03,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x04,0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x03,0x02,0xb0,0x3d,0x60,0x47,0x31,0x1f,0x0d,0x29,0x57,0x85,0x5d,0x39,0x79,0x64,0x41,0x12,0x1a, -0x1d,0x0a,0x7e,0x09,0x13,0x10,0x0b,0x27,0x49,0x69,0x42,0x67,0xa6,0x76,0x40,0x15,0x31,0x4e,0x72,0x98,0x62,0x45,0x6f,0x59,0x43,0x18,0x71,0x16,0x34,0x3d,0x47,0x03,0xc1,0x2d,0x4c,0x64,0x6e,0x71,0x34,0x44,0x5f,0x46,0x37,0x1c,0x11,0x26,0x3c,0x5a,0x44,0x22,0x44,0x3e,0x33,0x11,0x38,0x0c,0x21,0x26,0x27,0x13,0x1e,0x2d,0x25,0x20, -0x11,0x1a,0x40,0x64,0x98,0x72,0x3b,0x8e,0x8f,0x86,0x68,0x3e,0x1a,0x2b,0x36,0x1d,0x72,0x18,0x2d,0x23,0x15,0x00,0x00,0x00,0x00,0x02,0x00,0x5c,0xff,0xec,0x04,0xcd,0x04,0x3a,0x00,0x1c,0x00,0x2f,0x00,0x81,0x40,0x5c,0x44,0x2e,0x54,0x2e,0x64,0x2e,0x03,0x63,0x29,0x01,0x44,0x29,0x54,0x29,0x02,0x6d,0x26,0x01,0x4b,0x26,0x5b,0x26, -0x02,0x2a,0x26,0x3a,0x26,0x02,0x22,0x17,0x0a,0xc0,0x10,0xd0,0x10,0xf0,0x10,0x03,0x10,0x10,0x00,0x47,0xcf,0x1d,0xdf,0x1d,0xff,0x1d,0x03,0x1d,0x40,0x28,0x35,0x48,0x00,0x1d,0x10,0x1d,0x60,0x1d,0x03,0x1d,0x1d,0x31,0x67,0x0a,0x01,0x28,0x47,0x1f,0x0a,0x01,0x0a,0x40,0x28,0x35,0x48,0x0a,0x40,0x18,0x21,0x48,0x0a,0x11,0x23,0x50, -0x0f,0x0f,0x2b,0x50,0x05,0x16,0x00,0x3f,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2b,0x2b,0x5d,0xed,0x5d,0x12,0x39,0x2f,0x5d,0x2b,0x5d,0xed,0x32,0x2f,0x5d,0x11,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x21,0x15,0x23,0x22,0x2e,0x02,0x27,0x15,0x1e,0x03, -0x07,0x34,0x2e,0x02,0x27,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x04,0x36,0x3d,0x7b,0xb7,0x7b,0x7b,0xba,0x7c,0x3f,0x56,0x99,0xd5,0x7e,0x02,0x2f,0x9b,0x09,0x23,0x2b,0x2c,0x11,0x1c,0x37,0x2b,0x1a,0xbd,0x14,0x22,0x2d,0x19,0x59,0x52,0x90,0x6b,0x3d,0x97,0x93,0x4e,0x75,0x4c,0x26,0x01,0xeb,0x70,0xbc,0x87,0x4c, -0x4a,0x8b,0xca,0x81,0x90,0xd2,0x8a,0x42,0x8e,0x01,0x02,0x02,0x01,0x04,0x2a,0x60,0x6f,0x7f,0x4e,0x4a,0x81,0x6f,0x60,0x2a,0x2f,0x64,0x9d,0x6e,0xcf,0xce,0x34,0x61,0x8b,0x00,0x00,0x00,0x00,0x01,0x00,0x95,0xff,0xec,0x04,0x1c,0x04,0x3a,0x00,0x25,0x00,0x4d,0x40,0x2f,0x0a,0x22,0x1a,0x22,0x2a,0x22,0x03,0x21,0x18,0x09,0x0f,0x48, -0x19,0x19,0x9f,0x0c,0xaf,0x0c,0x02,0x0c,0x0c,0x0f,0x46,0x24,0x0f,0x05,0x1f,0x05,0x02,0x05,0x05,0x00,0x24,0x01,0x24,0x24,0x26,0x27,0x14,0x50,0x1f,0x16,0x0e,0x00,0x50,0x0b,0x0f,0x00,0x3f,0xed,0x32,0x3f,0xed,0x11,0x12,0x01,0x39,0x2f,0x5d,0x33,0x2f,0x5d,0x10,0xed,0x32,0x2f,0x5d,0x39,0x7c,0x2f,0x31,0x30,0x00,0x2b,0x5d,0x01, -0x22,0x0e,0x02,0x07,0x35,0x3e,0x03,0x33,0x21,0x15,0x21,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x11,0x01,0x91,0x27,0x4f,0x45,0x35,0x0c,0x0c,0x2b,0x33,0x36,0x17,0x02,0xd0,0xfe,0x8a,0x16,0x24,0x2c,0x16,0x07,0x27,0x2b,0x27,0x08,0x0f,0x30,0x36,0x37,0x15,0x3a,0x5c,0x40,0x21,0x03, -0xac,0x06,0x0b,0x0d,0x07,0x96,0x06,0x0b,0x08,0x04,0x8e,0xfd,0x54,0x2b,0x36,0x1c,0x0a,0x02,0x03,0x04,0x01,0x83,0x04,0x07,0x06,0x03,0x19,0x3a,0x5e,0x46,0x02,0xc9,0x00,0x01,0x00,0xa3,0xff,0xec,0x04,0x44,0x04,0x3a,0x00,0x1f,0x00,0x45,0x40,0x2b,0x64,0x0e,0x01,0x44,0x13,0x54,0x13,0x02,0x0a,0x07,0x1a,0x07,0x02,0x1b,0x47,0x00, -0x1a,0x01,0x1a,0x1a,0x00,0x47,0x15,0x15,0x21,0x0d,0x46,0x00,0x0a,0x01,0x0a,0x1a,0x0b,0x0f,0x79,0x05,0x89,0x05,0x02,0x10,0x50,0x05,0x16,0x00,0x3f,0xed,0x5d,0x3f,0x33,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0xed,0x33,0x2f,0x5d,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14, -0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x04,0x44,0x3b,0x79,0xb6,0x7b,0x6d,0xa6,0x70,0x39,0xb5,0x89,0x86,0x4a,0x6d,0x49,0x24,0x14,0x21,0x28,0x15,0xbc,0x12,0x28,0x20,0x15,0x02,0x3b,0x88,0xdb,0x9a,0x52,0x32,0x6b,0xa6,0x74,0x02,0x97,0xfd,0x63,0x92,0x94,0x32,0x6c,0xaa,0x78,0x44,0x93,0x8b,0x79,0x28, -0x28,0x71,0x86,0x95,0x00,0x02,0x00,0x32,0xfe,0x57,0x04,0x99,0x04,0x52,0x00,0x25,0x00,0x30,0x00,0x93,0xb5,0x75,0x23,0x85,0x23,0x02,0x26,0xb8,0xff,0x98,0xb2,0x0f,0x49,0x26,0xb8,0xff,0xc8,0xb3,0x0b,0x0e,0x48,0x19,0xb8,0xff,0xd8,0x40,0x15,0x0b,0x0f,0x48,0x16,0x38,0x0b,0x11,0x48,0x6a,0x15,0x7a,0x15,0x8a,0x15,0x03,0x05,0x1f, -0x15,0x1f,0x02,0x13,0xb8,0xff,0xc0,0x40,0x36,0x09,0x11,0x48,0x13,0x13,0x0d,0x2f,0x06,0x49,0x1b,0x07,0x07,0x0d,0x00,0x48,0x10,0x26,0xe0,0x26,0x02,0x26,0x26,0x32,0x66,0x0d,0x01,0x18,0x48,0x4f,0x0d,0x5f,0x0d,0x6f,0x0d,0x9f,0x0d,0xaf,0x0d,0x05,0x0d,0x2f,0x1b,0x51,0x05,0x08,0x15,0x13,0x2b,0x51,0x12,0x21,0x10,0x06,0x1b,0x00, -0x3f,0x3f,0x33,0xed,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f,0x5d,0xed,0x5d,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x5d,0x5d,0x2b,0x2b,0x2b,0x2b,0x5d,0x01,0x14,0x0e,0x02,0x07,0x11,0x23,0x11,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x17,0x0e,0x03,0x15,0x14,0x16,0x17,0x11,0x34,0x3e, -0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x11,0x24,0x04,0x99,0x49,0x83,0xb3,0x6b,0xa0,0x6e,0xb1,0x7c,0x42,0x30,0x63,0x99,0x69,0x15,0x42,0x60,0x40,0x1f,0x9d,0x97,0x28,0x4d,0x73,0x4b,0x51,0x7f,0x58,0x2f,0xa9,0x18,0x2c,0x40,0x28,0x4b,0x4a,0x01,0x41,0x02,0x35,0x97,0xd7,0x8c,0x47,0x06,0xfe,0x69,0x01, -0x97,0x05,0x48,0x8a,0xcf,0x8d,0x66,0xbc,0x96,0x67,0x12,0x88,0x0f,0x4d,0x72,0x8f,0x50,0xd5,0xd3,0x08,0x02,0x44,0x60,0x9a,0x6c,0x39,0x4c,0x8d,0xc7,0x79,0x60,0x9a,0x6b,0x39,0x94,0x8d,0xfd,0xb9,0x0d,0x00,0x00,0x01,0x00,0x3a,0xfe,0x58,0x04,0x8e,0x04,0x50,0x00,0x18,0x00,0xe2,0x40,0x37,0x36,0x18,0x01,0x06,0x10,0x16,0x10,0x02, -0x64,0x0f,0x74,0x0f,0x84,0x0f,0x03,0x05,0x0f,0x15,0x0f,0x45,0x0f,0x55,0x0f,0x04,0x45,0x16,0x65,0x16,0x75,0x16,0x85,0x16,0x04,0x06,0x16,0x16,0x16,0x36,0x16,0x03,0x36,0x16,0x01,0x09,0x16,0x19,0x16,0x02,0x14,0x47,0x15,0x10,0x15,0x15,0x03,0xb8,0xff,0xe0,0x40,0x2a,0x12,0x16,0x48,0x26,0x03,0x76,0x03,0x86,0x03,0x03,0x66,0x00, -0x01,0x65,0x13,0x75,0x13,0x85,0x13,0x03,0x27,0x13,0x01,0x03,0x16,0x13,0x00,0x03,0x04,0x0a,0x18,0x47,0x17,0x10,0x84,0x17,0x01,0x70,0x17,0x01,0x02,0x17,0xb8,0xff,0xc0,0x40,0x09,0x0a,0x0f,0x48,0x17,0x17,0x1a,0x01,0x47,0x02,0xb8,0xff,0xf0,0x40,0x2e,0x02,0x02,0x0a,0x40,0x0b,0x11,0x48,0x0a,0x14,0x0f,0x24,0x13,0x74,0x13,0x84, -0x13,0x03,0x7f,0x00,0x8f,0x00,0x02,0x4b,0x00,0x5b,0x00,0x02,0x39,0x00,0x01,0x2d,0x00,0x01,0x00,0x16,0x03,0x13,0x04,0x01,0x07,0x50,0x0d,0x10,0x18,0x01,0x1b,0x00,0x3f,0x33,0x3f,0xed,0x12,0x17,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x3f,0x01,0x2f,0x2b,0x33,0x2f,0x38,0xed,0x11,0x33,0x2f,0x2b,0x5f,0x5d,0x5d,0x38,0xed,0x12,0x17,0x39, -0x5f,0x5d,0x5d,0x5d,0x5d,0x2b,0x33,0x2f,0x38,0xed,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x25,0x01,0x23,0x01,0x03,0x2e,0x01,0x23,0x22,0x07,0x27,0x3e,0x01,0x33,0x32,0x1e,0x02,0x17,0x13,0x01,0x33,0x09,0x01,0x23,0x02,0x73,0xfe,0x95,0xbc,0x01,0xd6,0xbe,0x3b,0x5e,0x33,0x1f,0x1d,0x22,0x18,0x48, -0x20,0x30,0x4b,0x44,0x44,0x28,0xa2,0x01,0x26,0xbb,0xfe,0x72,0x01,0xb4,0xbe,0xef,0xfd,0x69,0x03,0x39,0x01,0x57,0x6b,0x70,0x0f,0x83,0x0b,0x0e,0x1c,0x3f,0x65,0x4a,0xfe,0xd9,0x02,0x1b,0xfd,0x47,0xfc,0xd7,0x00,0x01,0x00,0x58,0xfe,0x57,0x04,0x71,0x05,0x3c,0x00,0x1f,0x00,0x88,0x40,0x5f,0x7d,0x12,0x8d,0x12,0x02,0x7d,0x0b,0x8d, -0x0b,0x02,0x0a,0x12,0x1a,0x12,0x02,0x0a,0x0b,0x1a,0x0b,0x02,0x00,0x0e,0x49,0x1d,0x0f,0x0f,0x15,0x08,0x49,0x7f,0x05,0x8f,0x05,0x02,0x20,0x05,0x30,0x05,0x02,0xf0,0x05,0x01,0xcf,0x05,0xdf,0x05,0x02,0xb0,0x05,0x01,0x05,0x40,0x0b,0x0e,0x48,0x10,0x05,0x01,0x05,0x05,0x21,0x18,0x49,0x0f,0x15,0x5f,0x15,0x8f,0x15,0x9f,0x15,0xaf, -0x15,0x05,0x30,0x15,0x70,0x15,0x80,0x15,0x03,0x15,0x1e,0x1e,0x06,0x16,0x0f,0x0d,0x00,0x1d,0x50,0x10,0x16,0x0e,0x1b,0x00,0x3f,0x3f,0xed,0x32,0x33,0x3f,0x33,0x33,0x2f,0x01,0x2f,0x5d,0x71,0xed,0x12,0x39,0x2f,0x5d,0x2b,0x5d,0x5d,0x71,0x72,0x72,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x25,0x3e, -0x03,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x07,0x11,0x23,0x11,0x2e,0x03,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x17,0x11,0x33,0x02,0xb4,0x4c,0x6c,0x45,0x21,0x9f,0x32,0x6b,0xa9,0x77,0xa0,0x76,0xa9,0x6b,0x32,0xa1,0x20,0x44,0x6c,0x4b,0xa0,0x72,0x01,0x20,0x4b,0x7b,0x5b,0x02,0x86,0xfd,0x7c,0x7a,0xac,0x6e,0x35,0x01,0xfe,0x6b,0x01, -0x95,0x01,0x35,0x6e,0xac,0x7a,0x02,0x84,0xfd,0x7a,0x5a,0x7a,0x4b,0x21,0x02,0x04,0xca,0x00,0x00,0x00,0x00,0x01,0x00,0x35,0xff,0xec,0x04,0x99,0x04,0x4f,0x00,0x41,0x00,0x9f,0x40,0x71,0x0a,0x18,0x1a,0x18,0x02,0x0a,0x27,0x1a,0x27,0x02,0x0f,0x0f,0x0a,0x00,0x30,0x30,0x2a,0x1f,0x00,0x49,0x3f,0x3f,0x2a,0x15,0x48,0x2f,0x0a,0x3f, -0x0a,0x4f,0x0a,0x6f,0x0a,0x7f,0x0a,0x8f,0x0a,0x06,0x0f,0x0a,0xbf,0x0a,0xcf,0x0a,0x03,0x0a,0x40,0x1f,0x22,0x48,0x10,0x0a,0xb0,0x0a,0xe0,0x0a,0xf0,0x0a,0x04,0x0a,0x0a,0x43,0x35,0x48,0x40,0x2a,0x60,0x2a,0x70,0x2a,0xd0,0x2a,0xe0,0x2a,0x05,0x3f,0x2a,0x01,0x4f,0x2a,0x5f,0x2a,0x6f,0x2a,0x9f,0x2a,0xaf,0x2a,0x05,0x2a,0x40,0x40, -0x10,0x70,0x1f,0x80,0x1f,0x02,0x1f,0x1a,0x05,0x76,0x3a,0x86,0x3a,0x02,0x3a,0x50,0x25,0x16,0x2f,0x10,0x10,0x00,0x3f,0x33,0x3f,0xed,0x5d,0x32,0x33,0x33,0x5d,0x11,0x39,0x2f,0x01,0x2f,0x5d,0x71,0x71,0xed,0x12,0x39,0x2f,0x5d,0x2b,0x71,0x72,0xed,0x12,0x39,0x2f,0xed,0x39,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x31,0x30,0x00,0x5d, -0x5d,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x37,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x17,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x3d,0x01,0x33,0x02,0xb7,0x18,0x2c,0x3c,0x25,0x25,0x37,0x24,0x12,0x15,0x2f, -0x4c,0x38,0x1f,0x57,0x80,0x54,0x29,0x2c,0x4f,0x70,0x45,0x32,0x54,0x40,0x2e,0x0c,0x04,0x0c,0x2e,0x40,0x54,0x32,0x45,0x70,0x4f,0x2c,0x29,0x54,0x80,0x57,0x1f,0x38,0x4d,0x2f,0x14,0x12,0x24,0x37,0x25,0x29,0x3e,0x2a,0x15,0x9f,0x01,0xc1,0x4d,0x7d,0x57,0x2f,0x39,0x69,0x93,0x5a,0x52,0x98,0x7b,0x55,0x0f,0x86,0x12,0x70,0xa1,0xc2, -0x65,0x80,0xc8,0x89,0x48,0x26,0x47,0x62,0x3c,0x3c,0x62,0x47,0x26,0x48,0x89,0xc8,0x80,0x65,0xc2,0xa1,0x70,0x12,0x86,0x0f,0x55,0x7b,0x98,0x52,0x5a,0x93,0x69,0x39,0x36,0x5b,0x7a,0x45,0xfc,0x00,0x00,0x00,0xff,0xff,0x00,0x95,0xff,0xec,0x04,0x5d,0x05,0x7b,0x12,0x26,0x01,0x86,0x00,0x00,0x11,0x06,0x00,0x69,0xe4,0x00,0x00,0x19, -0xb6,0x02,0x01,0x14,0x11,0x26,0x02,0x01,0xb8,0xff,0xd1,0xb4,0x18,0x16,0x11,0x07,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xa3,0xff,0xec,0x04,0x44,0x05,0x7b,0x12,0x26,0x01,0x92,0x00,0x00,0x11,0x06,0x00,0x69,0xe4,0x00,0x00,0x19,0xb6,0x02,0x01,0x20,0x11,0x26,0x02,0x01,0xb8,0xff,0xd6,0xb4, -0x24,0x22,0x0a,0x00,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0xec,0x04,0x49,0x05,0xf6,0x12,0x26,0x00,0x52,0x00,0x00,0x11,0x06,0x01,0x54,0x3c,0x00,0x00,0x13,0x40,0x0b,0x02,0x24,0x11,0x26,0x02,0x3b,0x24,0x27,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xa3, -0xff,0xec,0x04,0x44,0x05,0xf6,0x12,0x26,0x01,0x92,0x00,0x00,0x11,0x06,0x01,0x54,0x14,0x00,0x00,0x13,0x40,0x0b,0x01,0x20,0x11,0x26,0x01,0x05,0x20,0x23,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x35,0xff,0xec,0x04,0x99,0x05,0xf6,0x12,0x26,0x01,0x96,0x00,0x00,0x11,0x06,0x01,0x54,0x2d,0x00,0x00,0x13, -0x40,0x0b,0x01,0x42,0x11,0x26,0x01,0x2b,0x42,0x45,0x2a,0x15,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x62,0x06,0xa8,0x10,0x06,0x00,0x88,0x00,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x62,0x06,0x5d,0x12,0x26,0x00,0x28,0x00,0x00,0x11,0x07,0x00,0x69,0x00,0x14,0x00,0xe2,0x00,0x19,0xb6,0x02, -0x01,0x0c,0x05,0x26,0x02,0x01,0xb8,0xff,0xf8,0xb4,0x10,0x0e,0x00,0x0a,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x01,0x00,0x00,0xff,0xec,0x04,0x8a,0x05,0x45,0x00,0x2b,0x00,0x68,0xb5,0x2a,0x28,0x09,0x0c,0x48,0x23,0xb8,0xff,0xe8,0x40,0x36,0x09,0x0c,0x48,0x06,0x05,0x1a,0x05,0x1a,0x0c,0x1c,0x14,0x5a,0x15,0x15, -0x17,0x27,0x5a,0x10,0x0c,0x20,0x0c,0x90,0x0c,0xa0,0x0c,0x04,0x0c,0x0c,0x2d,0x17,0x10,0x5f,0x30,0x21,0xe0,0x21,0x02,0x21,0x21,0x09,0x1b,0x17,0x5f,0x18,0x03,0x15,0x12,0x09,0x5f,0x00,0x06,0x06,0x00,0x13,0x00,0x3f,0x32,0x2f,0x10,0xed,0x3f,0x3f,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x01,0x2f,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39, -0x2f,0xed,0x32,0x11,0x39,0x39,0x2f,0x2f,0x33,0x31,0x30,0x00,0x2b,0x2b,0x05,0x22,0x2e,0x02,0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x3d,0x01,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x1d,0x01,0x14,0x0e,0x02,0x03,0x65,0x26,0x48,0x3f,0x33,0x11,0x65,0x1d,0x41,0x2d, -0x2c,0x3c,0x50,0x60,0x4d,0xa4,0x47,0xbe,0xfe,0xda,0x03,0x37,0xfe,0xad,0x24,0x4e,0x52,0x53,0x29,0x60,0x87,0x57,0x28,0x25,0x49,0x6e,0x14,0x14,0x26,0x34,0x20,0x72,0x33,0x33,0x66,0x6e,0xc7,0x7a,0x6d,0x20,0x12,0xfd,0x2a,0x04,0xa9,0x9c,0x9c,0xfe,0xbe,0x0a,0x15,0x11,0x0b,0x2f,0x5c,0x89,0x59,0xe0,0x51,0x86,0x5e,0x34,0x00,0x00, -0xff,0xff,0x00,0xe0,0x00,0x00,0x04,0x5b,0x06,0xa9,0x12,0x26,0x01,0x61,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x78,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x06,0x05,0x26,0x01,0x40,0x06,0x09,0x01,0x03,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0x00,0x01,0x00,0x71,0xff,0xec,0x04,0x76,0x05,0x5a,0x00,0x2c,0x00,0xb5,0x40,0x23, -0x46,0x1d,0x56,0x1d,0x66,0x1d,0x03,0x84,0x08,0x01,0x35,0x03,0x01,0x7b,0x20,0x8b,0x20,0x02,0x20,0x1f,0x0f,0x2b,0x01,0x2b,0x1f,0x2b,0x1f,0x15,0x7b,0x0a,0x8b,0x0a,0x02,0x0a,0x0b,0xb8,0xff,0xc0,0x40,0x5a,0x09,0x0c,0x48,0x0b,0x0b,0x2e,0x2a,0x77,0x00,0x87,0x00,0x02,0x00,0x5b,0x00,0x15,0x10,0x15,0x02,0x15,0x00,0x60,0x0f,0x2a, -0x3f,0x2a,0x02,0x6f,0x2a,0x8f,0x2a,0x9f,0x2a,0xbf,0x2a,0xdf,0x2a,0x05,0x6f,0x2a,0x01,0x2a,0x2a,0x05,0x46,0x1a,0x56,0x1a,0x66,0x1a,0x03,0x25,0x5f,0x1a,0x20,0x20,0x1a,0x04,0x49,0x10,0x59,0x10,0x02,0x05,0x5f,0x10,0x10,0x0a,0x20,0x0a,0x30,0x0a,0x60,0x0a,0x70,0x0a,0x05,0x30,0x0a,0x80,0x0a,0xd0,0x0a,0xe0,0x0a,0x04,0x0a,0x0a, -0x10,0x13,0x00,0x3f,0x33,0x2f,0x5d,0x71,0x10,0xed,0x5d,0x3f,0x33,0x2f,0x10,0xed,0x5d,0x12,0x39,0x2f,0x5d,0x71,0x72,0xed,0x01,0x2f,0x5d,0xed,0x5d,0x32,0x12,0x39,0x2f,0x2b,0x33,0x5d,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x23,0x22, -0x2e,0x01,0x02,0x35,0x34,0x12,0x3e,0x01,0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x03,0x23,0x22,0x0e,0x02,0x07,0x21,0x15,0x01,0x3b,0x05,0x2e,0x54,0x7e,0x55,0x3f,0x65,0x4f,0x3a,0x15,0x9f,0x1c,0x52,0x74,0x9b,0x66,0x8d,0xcd,0x87,0x41,0x40,0x84,0xca,0x8a,0x65,0x98,0x6f,0x4d,0x19,0xa8,0x0f,0x34,0x49,0x61,0x3c,0x52,0x7a,0x52,0x2c, -0x05,0x01,0xab,0x02,0x61,0x72,0xb1,0x78,0x3f,0x30,0x4e,0x66,0x36,0x41,0x46,0x85,0x69,0x40,0x65,0xb8,0x01,0x02,0x9e,0xa6,0x01,0x01,0xaf,0x5b,0x37,0x5d,0x79,0x42,0x41,0x2e,0x58,0x44,0x2a,0x3b,0x74,0xac,0x71,0x91,0x00,0x00,0xff,0xff,0x00,0x4f,0xff,0xec,0x04,0x68,0x05,0x5a,0x12,0x06,0x00,0x36,0x00,0x00,0xff,0xff,0x00,0xca, -0x00,0x00,0x04,0x01,0x05,0x45,0x12,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0x00,0xca,0x00,0x00,0x04,0x01,0x06,0x5d,0x12,0x26,0x00,0x2c,0x00,0x00,0x11,0x07,0x00,0x69,0x00,0x01,0x00,0xe2,0x00,0x17,0x40,0x0d,0x02,0x01,0x0c,0x05,0x26,0x02,0x01,0x01,0x10,0x0e,0x00,0x01,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00, -0xff,0xff,0x00,0xb0,0xff,0xec,0x03,0xda,0x05,0x45,0x12,0x06,0x00,0x2d,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0xf0,0x04,0xb1,0x05,0x45,0x00,0x26,0x00,0x33,0x00,0x5d,0x40,0x1d,0x08,0x1f,0x21,0x2e,0x5c,0x06,0x00,0x06,0x01,0x00,0x1f,0x01,0x00,0x1f,0x40,0x1f,0x50,0x1f,0x60,0x1f,0x04,0x1f,0x06,0x1f,0x06,0x13,0x00,0x5c,0x27,0xb8, -0xff,0xc0,0x40,0x18,0x0b,0x0f,0x48,0x27,0x27,0x35,0x13,0x2d,0x60,0x21,0x21,0x2e,0x08,0x60,0x1f,0x03,0x17,0x60,0x10,0x13,0x2e,0x60,0x06,0x12,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x2f,0x2b,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x71,0x71,0x10,0xed,0x32,0x10,0xcd,0x31,0x30,0x01,0x14,0x0e, -0x02,0x2b,0x01,0x11,0x23,0x03,0x0e,0x05,0x23,0x22,0x26,0x27,0x35,0x1e,0x01,0x33,0x32,0x3e,0x04,0x37,0x13,0x21,0x11,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x2b,0x01,0x11,0x33,0x32,0x3e,0x02,0x04,0xb1,0x33,0x5f,0x87,0x54,0xe1,0xb5,0x1d,0x0b,0x1a,0x22,0x2e,0x40,0x54,0x37,0x19,0x2a,0x0e,0x0b,0x1e,0x0a,0x1c,0x2c,0x25,0x1d, -0x1a,0x17,0x0c,0x29,0x01,0xeb,0x2a,0x57,0x8c,0x62,0x34,0xa2,0x20,0x38,0x4c,0x2c,0x31,0x39,0x2d,0x49,0x35,0x1d,0x01,0x89,0x52,0x90,0x6a,0x3d,0x04,0xb9,0xfe,0x54,0xa8,0xf9,0xb1,0x71,0x41,0x19,0x05,0x05,0x84,0x04,0x03,0x0e,0x2e,0x59,0x98,0xde,0x9d,0x02,0x26,0xfd,0xc0,0x37,0x63,0x8c,0x58,0x38,0x59,0x3f,0x22,0xfe,0x14,0x23, -0x41,0x5d,0x00,0x00,0x00,0x02,0x00,0x47,0x00,0x00,0x04,0xb1,0x05,0x45,0x00,0x16,0x00,0x23,0x00,0x52,0x40,0x30,0x06,0x04,0x16,0x04,0x02,0x01,0x1e,0x5c,0x15,0x0d,0x0d,0x11,0x07,0x5c,0x10,0x17,0x70,0x17,0x80,0x17,0x03,0x17,0x17,0x25,0x14,0x10,0x5c,0x4f,0x11,0x5f,0x11,0x02,0x11,0x1d,0x0f,0x60,0x01,0x14,0x14,0x00,0x1e,0x60, -0x11,0x0d,0x12,0x12,0x00,0x03,0x00,0x3f,0x32,0x3f,0x33,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x00,0x5d,0x01,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x01,0x34,0x2e,0x02,0x2b, -0x01,0x11,0x33,0x32,0x3e,0x02,0x02,0xdc,0x5c,0x57,0x8c,0x62,0x34,0x33,0x5f,0x87,0x54,0xfe,0xed,0xfe,0xb7,0xa1,0xa1,0x01,0x49,0x01,0xde,0x20,0x38,0x4c,0x2c,0x63,0x6b,0x2d,0x49,0x35,0x1d,0x05,0x45,0xfd,0xc0,0x37,0x63,0x8c,0x56,0x52,0x90,0x6a,0x3d,0x02,0x79,0xfd,0x87,0x05,0x45,0xfd,0xc0,0x02,0x40,0xfc,0x42,0x38,0x59,0x3f, -0x22,0xfe,0x14,0x23,0x41,0x5d,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x04,0x8a,0x05,0x45,0x00,0x1b,0x00,0x54,0xb9,0x00,0x17,0xff,0xe8,0x40,0x2e,0x09,0x0c,0x48,0x0e,0x0e,0x00,0x10,0x08,0x5a,0x09,0x09,0x0b,0x1b,0x5a,0x10,0x00,0x20,0x00,0x90,0x00,0xa0,0x00,0x04,0x00,0x00,0x1d,0x0b,0x04,0x5f,0xb0,0x15,0x01,0x30,0x15,0x01, -0x15,0x15,0x00,0x0f,0x0b,0x5f,0x0c,0x03,0x09,0x00,0x12,0x00,0x3f,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x5d,0x71,0xed,0x01,0x2f,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0xed,0x32,0x11,0x39,0x2f,0x31,0x30,0x00,0x2b,0x21,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x3e,0x03,0x33,0x32,0x1e, -0x02,0x15,0x11,0x03,0xcc,0x50,0x60,0x4d,0xa4,0x47,0xbe,0xfe,0xda,0x03,0x37,0xfe,0xad,0x24,0x4e,0x52,0x53,0x29,0x60,0x87,0x57,0x28,0x02,0x21,0x7a,0x6d,0x20,0x12,0xfd,0x2a,0x04,0xa9,0x9c,0x9c,0xfe,0xbe,0x0a,0x15,0x11,0x0b,0x2f,0x5c,0x89,0x59,0xfd,0xcb,0x00,0x00,0xff,0xff,0x00,0xa8,0x00,0x00,0x04,0x9d,0x06,0xa9,0x12,0x26, -0x01,0xb6,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x57,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x1a,0x05,0x26,0x01,0x1a,0x1a,0x1d,0x00,0x10,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x2a,0x06,0xa9,0x10,0x27,0x00,0x43,0xff,0xc0,0x00,0xf5,0x10,0x06,0x01,0xb4,0x00,0x00,0xff,0xff,0x00,0x14, -0xff,0xec,0x04,0xb6,0x06,0xa9,0x12,0x26,0x01,0xbf,0x00,0x00,0x11,0x07,0x02,0x96,0x00,0x00,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x1a,0x05,0x26,0x01,0x0f,0x1f,0x2b,0x15,0x19,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0x00,0x01,0x00,0x9c,0xfe,0x57,0x04,0x30,0x05,0x45,0x00,0x0b,0x00,0x59,0x40,0x3d,0x0b,0x5c,0x00,0x00, -0x02,0x09,0x5a,0x40,0x06,0x01,0xd0,0x06,0xe0,0x06,0x02,0x1f,0x06,0x2f,0x06,0x3f,0x06,0x6f,0x06,0x7f,0x06,0x05,0x6f,0x06,0x7f,0x06,0x8f,0x06,0xbf,0x06,0x04,0x06,0x06,0x0d,0x05,0x5a,0x4f,0x02,0x01,0x00,0x02,0x10,0x02,0xb0,0x02,0x03,0x02,0x07,0x03,0x03,0x0a,0x05,0x5f,0x02,0x12,0x00,0x1b,0x00,0x3f,0x3f,0xed,0x33,0x3f,0x33, -0x01,0x2f,0x5d,0x72,0xed,0x12,0x39,0x2f,0x5d,0x71,0x71,0x72,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x02,0x0c,0xfe,0x90,0xbf,0x02,0x16,0xbf,0xfe,0x90,0xfe,0x57,0x01,0xa9,0x05,0x45,0xfb,0x5b,0x04,0xa5,0xfa,0xbb,0xfe,0x57,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xcc, -0x05,0x45,0x12,0x06,0x00,0x24,0x00,0x00,0x00,0x02,0x00,0xa2,0x00,0x00,0x04,0x94,0x05,0x45,0x00,0x10,0x00,0x19,0x00,0x79,0x40,0x21,0x65,0x19,0x01,0x6a,0x12,0x01,0x06,0x0e,0x01,0x08,0x40,0x0d,0x14,0x48,0x08,0x08,0x16,0x77,0x00,0x87,0x00,0x02,0x00,0x5a,0x40,0x11,0x01,0x90,0x11,0xa0,0x11,0x02,0x11,0xb8,0xff,0xc0,0xb3,0x29, -0x2d,0x48,0x11,0xb8,0xff,0xc0,0x40,0x26,0x09,0x0c,0x48,0x11,0x11,0x1b,0x0b,0x16,0x5a,0x70,0x06,0x01,0x00,0x06,0x10,0x06,0xa0,0x06,0xb0,0x06,0x04,0x06,0x15,0x5f,0x50,0x0b,0x01,0x0b,0x0b,0x16,0x0a,0x5f,0x07,0x03,0x16,0x5f,0x06,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x71,0xed,0x01,0x2f,0x5d,0x71,0xed,0x32,0x12,0x39, -0x2f,0x2b,0x2b,0x5d,0x71,0xed,0x5d,0x11,0x39,0x2f,0x2b,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x21,0x11,0x21,0x32,0x36,0x04,0x94,0x3d,0x79,0xb6,0x79,0xfd,0xf3,0x03,0x96,0xfd,0x29,0x01,0x42,0x7d,0xba,0x7c,0x3e,0xc0,0xa4,0xa4,0xfe,0xd5, -0x01,0x33,0xa4,0x9c,0x01,0x89,0x57,0x90,0x68,0x3a,0x05,0x45,0x9c,0xfe,0x66,0x36,0x66,0x90,0x60,0x79,0x73,0xfe,0x28,0x70,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x80,0x05,0x45,0x12,0x06,0x00,0x25,0x00,0x00,0xff,0xff,0x00,0xe0,0x00,0x00,0x04,0x5b,0x05,0x45,0x12,0x06,0x01,0x61,0x00,0x00,0x00,0x02,0x00,0x05,0xfe,0x68,0x04,0xaf, -0x05,0x45,0x00,0x10,0x00,0x19,0x00,0x6f,0x40,0x45,0x6b,0x0e,0x7b,0x0e,0x8b,0x0e,0x03,0xb0,0x12,0xc0,0x12,0x02,0x12,0x0f,0x18,0x5a,0x09,0x40,0x0f,0x50,0x0f,0x02,0x0f,0x09,0x0f,0x09,0x19,0x07,0x02,0x5c,0x03,0x03,0x00,0x5c,0x40,0x19,0x50,0x19,0x02,0x19,0x40,0x19,0x1c,0x48,0x10,0x19,0x90,0x19,0xa0,0x19,0x03,0x19,0x19,0x1b, -0x06,0x5c,0x07,0x12,0x5f,0x0f,0x03,0x18,0x00,0x08,0x5f,0x05,0x12,0x07,0x02,0xb8,0x01,0x08,0x00,0x3f,0x33,0x3f,0xed,0x32,0x32,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x2b,0x71,0xed,0x32,0x2f,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x71,0x10,0xed,0x10,0xcd,0x71,0x31,0x30,0x5d,0x25,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11, -0x33,0x3e,0x03,0x37,0x13,0x21,0x07,0x21,0x03,0x0e,0x03,0x07,0x21,0x04,0x00,0xaf,0xa0,0xfc,0x96,0xa0,0x77,0x29,0x44,0x38,0x2e,0x12,0x43,0x02,0x5c,0xa6,0xfe,0xd9,0x31,0x12,0x29,0x30,0x38,0x20,0x02,0x1b,0x96,0xfd,0xd2,0x01,0x98,0xfe,0x68,0x02,0x2e,0x33,0x7a,0xa3,0xd4,0x8d,0x01,0xfe,0x96,0xfe,0x86,0x86,0xcd,0x9f,0x7a,0x33, -0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x62,0x05,0x45,0x12,0x06,0x00,0x28,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x04,0xcc,0x05,0x45,0x00,0x2b,0x00,0xdc,0x40,0x98,0x6b,0x1d,0x7b,0x1d,0x8b,0x1d,0x03,0x64,0x0e,0x74,0x0e,0x84,0x0e,0x03,0x6b,0x24,0x7b,0x24,0x8b,0x24,0x03,0x64,0x07,0x74,0x07,0x84,0x07,0x03,0x16,0x10,0x01,0x19, -0x1b,0x01,0x0b,0x25,0x1b,0x25,0x02,0x0d,0x1f,0x1d,0x1f,0x02,0x04,0x06,0x14,0x06,0x02,0x02,0x0c,0x12,0x0c,0x02,0x22,0x25,0x23,0x2b,0x06,0x09,0x08,0x17,0x2b,0x5c,0x14,0xe0,0x00,0x01,0x00,0x00,0x08,0x23,0x1d,0x1e,0x1e,0x24,0x10,0x23,0x01,0x23,0x23,0x2d,0x0e,0x0d,0x0d,0x07,0x0f,0x08,0x1f,0x08,0x02,0x0f,0x08,0x3f,0x08,0x5f, -0x08,0x8f,0x08,0x9f,0x08,0x05,0x4f,0x08,0x5f,0x08,0xcf,0x08,0xdf,0x08,0x04,0x08,0x40,0x24,0x27,0x48,0x08,0x40,0x10,0x13,0x48,0x08,0x22,0x09,0x25,0x06,0x09,0x06,0x17,0x66,0x14,0x76,0x14,0x86,0x14,0x03,0x2a,0x01,0x60,0x3f,0x14,0x01,0x14,0x14,0x1d,0x15,0x0d,0x03,0x24,0x08,0x00,0x12,0x00,0x3f,0x32,0x32,0x3f,0x33,0x33,0x39, -0x2f,0x5d,0xed,0x32,0x5d,0x33,0x39,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0x2b,0x2b,0x5d,0x71,0x72,0x33,0x33,0x2f,0x33,0x11,0x33,0x2f,0x5d,0x33,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x71,0x33,0xed,0x32,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x11,0x2e,0x03,0x27,0x03, -0x23,0x01,0x2e,0x01,0x27,0x03,0x33,0x13,0x1e,0x03,0x17,0x11,0x33,0x11,0x3e,0x03,0x37,0x13,0x33,0x03,0x0e,0x01,0x07,0x01,0x23,0x03,0x0e,0x03,0x07,0x11,0x02,0x16,0x0a,0x1f,0x20,0x19,0x04,0xf7,0xb9,0x01,0x3a,0x1d,0x34,0x17,0xc9,0xad,0x94,0x16,0x2e,0x33,0x37,0x1e,0xa0,0x1e,0x37,0x33,0x2e,0x16,0x94,0xad,0xc9,0x17,0x35,0x1d, -0x01,0x3b,0xb9,0xf7,0x04,0x19,0x20,0x1f,0x0a,0x02,0x5f,0x02,0x07,0x08,0x08,0x01,0xfd,0x87,0x02,0xcf,0x1d,0x4d,0x34,0x01,0xd8,0xfe,0x7e,0x38,0x4d,0x31,0x1c,0x07,0x02,0x5b,0xfd,0xa5,0x07,0x1c,0x31,0x4d,0x38,0x01,0x82,0xfe,0x28,0x35,0x4b,0x1d,0xfd,0x30,0x02,0x79,0x01,0x08,0x08,0x07,0x02,0xfd,0xa1,0x00,0x00,0x01,0x00,0x43, -0xff,0xec,0x04,0x70,0x05,0x59,0x00,0x3c,0x00,0xf3,0xb5,0x45,0x1c,0x55,0x1c,0x02,0x36,0xb8,0xff,0xe8,0x40,0x44,0x0d,0x11,0x48,0x43,0x26,0x53,0x26,0x02,0x4a,0x03,0x5a,0x03,0x02,0x33,0x14,0x45,0x2e,0x55,0x2e,0x65,0x2e,0x03,0x2e,0x5a,0x19,0x64,0x23,0x74,0x23,0x84,0x23,0x03,0x46,0x23,0x56,0x23,0x02,0x23,0x24,0x19,0x14,0x14, -0x19,0x24,0x03,0x05,0x45,0x38,0x55,0x38,0x65,0x38,0x03,0x38,0x5a,0x1f,0x10,0x2f,0x10,0x3f,0x10,0x03,0x90,0x10,0xa0,0x10,0x02,0x10,0xb8,0xff,0xc0,0x40,0x1a,0x09,0x0c,0x48,0x10,0x10,0x3e,0x64,0x06,0x74,0x06,0x84,0x06,0x03,0x46,0x06,0x56,0x06,0x02,0x06,0x05,0x40,0x0b,0x0f,0x48,0x05,0x33,0xb8,0xff,0xf0,0x40,0x20,0x0d,0x11, -0x48,0x33,0x14,0x10,0x0d,0x11,0x48,0x14,0x60,0x0f,0x15,0x3f,0x15,0x02,0x6f,0x15,0x8f,0x15,0x9f,0x15,0xbf,0x15,0xdf,0x15,0x05,0x15,0x15,0x0b,0x29,0x29,0xb8,0xff,0xf0,0x40,0x1f,0x0d,0x11,0x48,0xef,0x23,0x01,0x23,0x23,0x1e,0x5f,0x29,0x04,0x00,0x10,0x0d,0x11,0x48,0x0b,0x5f,0x00,0x80,0x06,0xd0,0x06,0xe0,0x06,0x03,0x06,0x06, -0x00,0x13,0x00,0x3f,0x32,0x2f,0x5d,0x10,0xed,0x2b,0x3f,0xed,0x33,0x2f,0x5d,0x2b,0x11,0x12,0x39,0x2f,0x71,0x72,0xed,0x2b,0x39,0x2b,0x01,0x2f,0x2b,0x33,0x5d,0x5d,0x12,0x39,0x2f,0x2b,0x5d,0x71,0xed,0x5d,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x33,0x5d,0x5d,0x10,0xed,0x5d,0x11,0x39,0x31,0x30,0x00,0x5d,0x5d,0x2b,0x5d,0x05,0x22,0x2e, -0x02,0x27,0x37,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x2b,0x01,0x35,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x02,0x6d,0x76,0xaf,0x83,0x5e,0x24,0xa5,0x18,0x42,0x5b,0x79,0x50,0x4d,0x7a,0x55,0x2d,0xc0,0xca, -0x47,0x47,0xb4,0xae,0x27,0x48,0x68,0x41,0x4c,0x74,0x54,0x39,0x13,0xaf,0x21,0x60,0x84,0xa8,0x69,0x6c,0xac,0x78,0x40,0x28,0x49,0x68,0x3f,0x43,0x75,0x57,0x33,0x45,0x84,0xc0,0x14,0x32,0x5b,0x80,0x4f,0x4d,0x37,0x62,0x4b,0x2c,0x24,0x43,0x5e,0x3a,0x7a,0x72,0x94,0x7a,0x69,0x32,0x50,0x37,0x1e,0x28,0x44,0x5a,0x31,0x3d,0x52,0x7f, -0x57,0x2d,0x34,0x5e,0x82,0x4d,0x3f,0x65,0x4d,0x36,0x0f,0x0a,0x32,0x4f,0x6c,0x44,0x59,0x97,0x6d,0x3e,0x00,0x01,0x00,0xa2,0x00,0x00,0x04,0x2a,0x05,0x45,0x00,0x13,0x00,0x94,0x40,0x6d,0x0b,0x5c,0x7b,0x09,0x8b,0x09,0x02,0x4a,0x09,0x5a,0x09,0x6a,0x09,0x03,0x29,0x09,0x39,0x09,0x02,0x09,0x80,0x0c,0x90,0x0c,0xd0,0x0c,0xe0,0x0c, -0x04,0x3f,0x0c,0x01,0xc0,0x0c,0xd0,0x0c,0x02,0x7f,0x0c,0x8f,0x0c,0x02,0x0c,0x0c,0x15,0x74,0x13,0x84,0x13,0x02,0x45,0x13,0x55,0x13,0x65,0x13,0x03,0x16,0x13,0x26,0x13,0x36,0x13,0x03,0x05,0x13,0x01,0x13,0x02,0x5c,0x70,0x01,0x01,0x00,0x01,0x10,0x01,0xa0,0x01,0xb0,0x01,0x04,0x01,0x8c,0x12,0x01,0x7a,0x12,0x01,0x69,0x12,0x01, -0x12,0x09,0x01,0x03,0x83,0x08,0x01,0x75,0x08,0x01,0x66,0x08,0x01,0x0c,0x08,0x00,0x12,0x00,0x3f,0x32,0x32,0x5d,0x5d,0x5d,0x3f,0x33,0x33,0x5d,0x5d,0x5d,0x01,0x2f,0x5d,0x71,0xed,0x32,0x5d,0x5d,0x5d,0x5d,0x12,0x39,0x2f,0x5d,0x5d,0x71,0x71,0x33,0x5d,0x5d,0x5d,0xed,0x31,0x30,0x33,0x11,0x33,0x11,0x14,0x06,0x07,0x06,0x07,0x01, -0x33,0x11,0x23,0x11,0x34,0x36,0x37,0x36,0x37,0x01,0xa2,0xac,0x05,0x04,0x04,0x05,0x02,0x10,0xde,0xaa,0x05,0x03,0x04,0x04,0xfd,0xf8,0x05,0x45,0xfc,0xa0,0x33,0x62,0x27,0x2e,0x28,0x04,0x72,0xfa,0xbb,0x03,0x6c,0x27,0x59,0x26,0x2d,0x2b,0xfb,0x96,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x2a,0x06,0xa9,0x12,0x26,0x01,0xb4,0x00,0x00, -0x11,0x07,0x02,0x96,0xff,0xee,0x00,0xf5,0x00,0x15,0xb4,0x01,0x14,0x05,0x26,0x01,0xb8,0xff,0xfc,0xb4,0x19,0x25,0x00,0x0a,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x01,0x00,0xa8,0x00,0x00,0x04,0x9d,0x05,0x45,0x00,0x19,0x00,0x7f,0x40,0x55,0x79,0x12,0x89,0x12,0x02,0x7f,0x11,0x8f,0x11,0x02,0x6c,0x11,0x01,0x11,0x20,0x0b, -0x0e,0x48,0x08,0x20,0x0b,0x11,0x48,0x16,0x0f,0x26,0x0f,0x36,0x0f,0x03,0x72,0x0f,0x82,0x0f,0x02,0x44,0x0f,0x54,0x0f,0x64,0x0f,0x03,0x16,0x0f,0x26,0x0f,0x36,0x0f,0x03,0x0f,0x12,0x10,0x08,0x09,0x09,0x11,0x00,0x10,0x10,0x10,0x02,0x10,0x10,0x1b,0x02,0x18,0x5a,0x00,0x19,0x10,0x19,0x02,0x19,0x0f,0x12,0x17,0x5f,0x02,0x02,0x19, -0x10,0x12,0x08,0x00,0x03,0x00,0x3f,0x32,0x3f,0x33,0x39,0x2f,0xed,0x39,0x39,0x01,0x2f,0x5d,0xed,0x32,0x11,0x33,0x2f,0x5d,0x33,0x33,0x2f,0x33,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x00,0x5d,0x31,0x30,0x01,0x2b,0x2b,0x5d,0x5d,0x00,0x5d,0x13,0x33,0x11,0x32,0x3e,0x02,0x37,0x13,0x33,0x01,0x0e,0x03,0x07,0x01,0x23,0x01,0x0e,0x03,0x23, -0x11,0x23,0xa8,0xbf,0x2a,0x53,0x51,0x4f,0x27,0xfb,0xca,0xfe,0xd8,0x21,0x33,0x29,0x1f,0x0c,0x01,0xfd,0xde,0xfe,0x55,0x11,0x2e,0x30,0x2d,0x11,0xbf,0x05,0x45,0xfd,0xb3,0x16,0x31,0x51,0x3a,0x01,0x7b,0xfe,0x52,0x30,0x3e,0x29,0x18,0x09,0xfd,0x21,0x02,0x87,0x07,0x0e,0x0b,0x06,0xfd,0x9f,0x00,0x01,0xff,0xfe,0xff,0xf0,0x04,0x5d, -0x05,0x45,0x00,0x1b,0x00,0x66,0x40,0x0c,0x9d,0x01,0x01,0x01,0x69,0x18,0x79,0x18,0x89,0x18,0x03,0x18,0xb8,0xff,0xc8,0x40,0x0e,0x0a,0x0e,0x48,0x18,0x18,0x0c,0x1a,0x5a,0x40,0x1b,0x50,0x1b,0x02,0x1b,0xb8,0xff,0xc0,0xb3,0x21,0x28,0x48,0x1b,0xb8,0xff,0xc0,0xb3,0x15,0x18,0x48,0x1b,0xb8,0xff,0xc0,0x40,0x16,0x09,0x0c,0x48,0x1b, -0x1b,0x1d,0x2f,0x0c,0x3f,0x0c,0x02,0x0c,0x1a,0x12,0x01,0x5f,0x18,0x03,0x10,0x5f,0x09,0x13,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x01,0x2f,0x5d,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x71,0xed,0x12,0x39,0x2f,0x2b,0x5d,0xcd,0x5d,0x31,0x30,0x01,0x21,0x03,0x06,0x02,0x0e,0x03,0x23,0x22,0x26,0x27,0x35,0x1e,0x01,0x33,0x32,0x3e,0x04,0x37,0x13, -0x21,0x11,0x23,0x03,0xa3,0xfe,0x86,0x2b,0x16,0x2b,0x33,0x3d,0x50,0x66,0x43,0x19,0x2f,0x0e,0x0b,0x23,0x0a,0x1e,0x35,0x30,0x2b,0x29,0x28,0x14,0x3d,0x02,0xd7,0xba,0x04,0xa5,0xfe,0xae,0xac,0xfe,0xf9,0xc1,0x81,0x4d,0x21,0x05,0x05,0x98,0x04,0x03,0x13,0x37,0x63,0xa3,0xe9,0xa1,0x01,0xe0,0xfa,0xbb,0x00,0x00,0xff,0xff,0x00,0x81, -0x00,0x00,0x04,0x4b,0x05,0x45,0x12,0x06,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x2a,0x05,0x45,0x12,0x06,0x00,0x2b,0x00,0x00,0xff,0xff,0x00,0x66,0xff,0xec,0x04,0x66,0x05,0x5a,0x12,0x06,0x00,0x32,0x00,0x00,0x00,0x01,0x00,0xa2,0x00,0x00,0x04,0x2a,0x05,0x45,0x00,0x07,0x00,0x43,0x40,0x2f,0x07,0x5a,0x1f,0x00, -0x2f,0x00,0x3f,0x00,0x6f,0x00,0x7f,0x00,0x05,0x6f,0x00,0x7f,0x00,0x8f,0x00,0xbf,0x00,0x04,0x00,0x00,0x09,0x03,0x5a,0x70,0x04,0x01,0x00,0x04,0x10,0x04,0xa0,0x04,0xb0,0x04,0x04,0x04,0x02,0x5f,0x05,0x03,0x04,0x00,0x12,0x00,0x3f,0x32,0x3f,0xed,0x01,0x2f,0x5d,0x71,0xed,0x12,0x39,0x2f,0x5d,0x71,0xed,0x31,0x30,0x21,0x11,0x21, -0x11,0x23,0x11,0x21,0x11,0x03,0x6b,0xfd,0xf6,0xbf,0x03,0x88,0x04,0xa5,0xfb,0x5b,0x05,0x45,0xfa,0xbb,0xff,0xff,0x00,0xa2,0x00,0x00,0x04,0x5f,0x05,0x45,0x12,0x06,0x00,0x33,0x00,0x00,0xff,0xff,0x00,0x71,0xff,0xec,0x04,0x76,0x05,0x5a,0x12,0x06,0x00,0x26,0x00,0x00,0xff,0xff,0x00,0x4c,0x00,0x00,0x04,0x80,0x05,0x45,0x12,0x06, -0x00,0x37,0x00,0x00,0x00,0x01,0x00,0x14,0xff,0xec,0x04,0xb6,0x05,0x45,0x00,0x19,0x00,0x79,0x40,0x54,0x7b,0x12,0x8b,0x12,0x02,0x7b,0x13,0x8b,0x13,0x02,0x69,0x14,0x01,0x8c,0x18,0x01,0x18,0x20,0x0d,0x10,0x48,0x82,0x16,0x01,0x63,0x16,0x73,0x16,0x02,0x44,0x16,0x54,0x16,0x02,0x14,0x17,0x17,0x15,0x18,0x10,0x19,0x20,0x19,0x30, -0x19,0x90,0x19,0xa0,0x19,0xb0,0x19,0x06,0x19,0x19,0x1b,0x0a,0x0a,0x16,0x15,0x40,0x0b,0x14,0x48,0x15,0x70,0x17,0x80,0x17,0x02,0x54,0x17,0x64,0x17,0x02,0x17,0x14,0x14,0x18,0x15,0x03,0x0e,0x5f,0x05,0x13,0x00,0x3f,0xed,0x3f,0x33,0x39,0x2f,0x33,0x5d,0x5d,0x01,0x2f,0x2b,0x33,0x33,0x2f,0x11,0x33,0x2f,0x5d,0x33,0x12,0x39,0x11, -0x33,0x31,0x30,0x5d,0x5d,0x5d,0x2b,0x5d,0x5d,0x5d,0x5d,0x01,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x01,0x33,0x32,0x3e,0x02,0x3f,0x01,0x01,0x33,0x09,0x01,0x33,0x02,0xa2,0x2e,0x51,0x5a,0x6e,0x4b,0x1f,0x43,0x40,0x3a,0x17,0x51,0x23,0x53,0x30,0x26,0x3a,0x36,0x39,0x24,0x27,0xfd,0xe6,0xd7,0x01,0xa1,0x01,0x5d,0xcd,0x01, -0x3e,0x59,0x80,0x52,0x27,0x0a,0x12,0x1a,0x10,0x90,0x16,0x25,0x14,0x35,0x59,0x45,0x4a,0x03,0x8d,0xfd,0x1d,0x02,0xe3,0x00,0xff,0xff,0x00,0x08,0xff,0xf5,0x04,0xc5,0x05,0x4f,0x12,0x06,0x01,0x73,0x00,0x00,0xff,0xff,0x00,0x24,0x00,0x00,0x04,0xa9,0x05,0x45,0x12,0x06,0x00,0x3b,0x00,0x00,0x00,0x01,0x00,0x80,0xfe,0x57,0x04,0xb7, -0x05,0x45,0x00,0x0b,0x00,0x4d,0x40,0x33,0x01,0x5a,0x02,0x02,0x0b,0x5a,0x6f,0x08,0x7f,0x08,0x8f,0x08,0x03,0x08,0x40,0x1e,0x25,0x48,0x08,0x40,0x19,0x1c,0x48,0x08,0x08,0x0d,0x07,0x5a,0xcf,0x04,0xdf,0x04,0xef,0x04,0x03,0x00,0x04,0x10,0x04,0x02,0x04,0x09,0x05,0x03,0x0b,0x07,0x5f,0x04,0x12,0x01,0x1b,0x00,0x3f,0x3f,0xed,0x32, -0x3f,0x33,0x01,0x2f,0x5d,0x5d,0xed,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xed,0x32,0x2f,0xed,0x31,0x30,0x25,0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x04,0xb7,0xb4,0xfc,0x7d,0xbf,0x02,0x0a,0xbf,0xa0,0xfd,0xb7,0x01,0xa9,0x05,0x45,0xfb,0x5b,0x04,0xa5,0xfb,0x5b,0x00,0x00,0x00,0x00,0x01,0x00,0x5f,0x00,0x00,0x04,0x31, -0x05,0x45,0x00,0x17,0x00,0x4e,0x40,0x33,0x7a,0x07,0x8a,0x07,0x02,0x0a,0x06,0x01,0x16,0x5a,0x13,0x80,0x17,0x90,0x17,0xd0,0x17,0x03,0x1f,0x17,0x2f,0x17,0x3f,0x17,0x03,0x7f,0x17,0x8f,0x17,0x02,0x17,0x17,0x19,0x0b,0x5a,0x08,0x79,0x05,0x89,0x05,0x02,0x05,0x5f,0x0e,0x0e,0x09,0x16,0x12,0x14,0x09,0x03,0x00,0x3f,0x33,0x3f,0x12, -0x39,0x2f,0xed,0x5d,0x01,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x71,0x71,0x33,0xed,0x31,0x30,0x00,0x5d,0x5d,0x01,0x0e,0x03,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x11,0x33,0x11,0x23,0x03,0x73,0x24,0x5a,0x64,0x68,0x30,0xce,0xcc,0xbe,0x7b,0x6f,0x2e,0x63,0x60,0x58,0x23,0xbe,0xbe,0x01,0xde,0x08,0x14, -0x12,0x0c,0xbb,0xb2,0x02,0x34,0xfd,0xe0,0x7a,0x6d,0x0a,0x0f,0x11,0x07,0x02,0xd6,0xfa,0xbb,0x00,0x00,0x00,0x01,0x00,0x59,0x00,0x00,0x04,0x73,0x05,0x45,0x00,0x0b,0x00,0x6c,0x40,0x14,0x07,0x5c,0x04,0x04,0x00,0x0b,0x5c,0x20,0x08,0x30,0x08,0x40,0x08,0x03,0xa0,0x08,0xf0,0x08,0x02,0x08,0xb8,0xff,0xc0,0x40,0x35,0x12,0x16,0x48, -0x4f,0x08,0x5f,0x08,0x02,0x10,0x08,0x20,0x08,0x30,0x08,0x03,0x08,0x08,0x0d,0x03,0x5c,0x0f,0x00,0x3f,0x00,0x5f,0x00,0x8f,0x00,0x9f,0x00,0x05,0x2f,0x00,0xcf,0x00,0xdf,0x00,0x03,0x00,0x40,0x10,0x13,0x48,0x00,0x09,0x05,0x01,0x03,0x07,0x03,0x60,0x00,0x12,0x00,0x3f,0xed,0x32,0x3f,0x33,0x33,0x01,0x2f,0x2b,0x5d,0x71,0xed,0x12, -0x39,0x2f,0x5d,0x5d,0x2b,0x71,0x72,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x59,0xa2,0x01,0x1a,0xa2,0x01,0x1a,0xa2,0x05,0x45,0xfb,0x47,0x04,0xb9,0xfb,0x47,0x04,0xb9,0xfa,0xbb,0x00,0x00,0x00,0x01,0x00,0x56,0xfe,0x57,0x04,0xcc,0x05,0x45,0x00,0x0f,0x00,0x8e,0x40,0x20, -0x09,0x5c,0x06,0x06,0x0a,0x02,0x0f,0x5c,0x40,0x00,0x50,0x00,0x02,0x00,0x00,0x0d,0x5c,0x20,0x0a,0x30,0x0a,0x50,0x0a,0x60,0x0a,0x04,0x80,0x0a,0x90,0x0a,0x02,0x0a,0xb8,0xff,0xc0,0x40,0x41,0x24,0x28,0x48,0x1f,0x0a,0x2f,0x0a,0x3f,0x0a,0x03,0x90,0x0a,0xa0,0x0a,0x02,0x4f,0x0a,0x5f,0x0a,0x02,0x0a,0x0a,0x11,0x05,0x5c,0x0f,0x02, -0x3f,0x02,0x02,0x2f,0x02,0xcf,0x02,0xdf,0x02,0x03,0x02,0x40,0x28,0x2d,0x48,0x02,0x40,0x1e,0x23,0x48,0x02,0x40,0x10,0x13,0x48,0x02,0x0b,0x07,0x03,0x03,0x0d,0x09,0x05,0x60,0x02,0x12,0x00,0x1b,0x00,0x3f,0x3f,0xed,0x32,0x32,0x3f,0x33,0x33,0x01,0x2f,0x2b,0x2b,0x2b,0x5d,0x71,0xed,0x12,0x39,0x2f,0x5d,0x5d,0x71,0x2b,0x71,0x72, -0xed,0x32,0x2f,0x71,0xed,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x11,0x04,0x3e,0xfc,0x18,0xa2,0x01,0x01,0xa2,0x01,0x01,0xa2,0x8e,0xfe,0x57,0x01,0xa9,0x05,0x45,0xfb,0x47,0x04,0xb9,0xfb,0x47,0x04,0xb9,0xfb,0x47,0xfd,0xcb,0x00,0x00,0x00,0x02,0x00,0x00, -0x00,0x00,0x04,0x83,0x05,0x45,0x00,0x10,0x00,0x19,0x00,0x62,0x40,0x41,0x65,0x19,0x01,0x6a,0x12,0x01,0x08,0x09,0x01,0x06,0x03,0x01,0x00,0x16,0x5a,0x0c,0x0c,0x0e,0x75,0x06,0x85,0x06,0x02,0x06,0x5a,0x00,0x11,0x10,0x11,0x02,0x3f,0x11,0xaf,0x11,0xbf,0x11,0xcf,0x11,0x04,0x00,0x11,0x10,0x11,0x90,0x11,0xa0,0x11,0x04,0x11,0x11, -0x1b,0x0e,0x15,0x5f,0x00,0x00,0x16,0x0e,0x5f,0x0f,0x03,0x16,0x5f,0x0c,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x2f,0x5d,0x71,0x72,0xed,0x5d,0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x11,0x21,0x35,0x21,0x01,0x34,0x26, -0x2b,0x01,0x11,0x33,0x32,0x36,0x02,0x0e,0x84,0x7d,0xba,0x7c,0x3e,0x3d,0x79,0xb6,0x79,0xfe,0xb1,0xfe,0xb1,0x02,0x0e,0x01,0xb5,0xa4,0xa4,0x6d,0x75,0xa4,0x9c,0x03,0x0f,0x36,0x66,0x90,0x5a,0x57,0x90,0x68,0x3a,0x04,0xa9,0x9c,0xfc,0x42,0x79,0x6f,0xfe,0x28,0x74,0x00,0x00,0x03,0x00,0x69,0x00,0x00,0x04,0x63,0x05,0x45,0x00,0x0c, -0x00,0x14,0x00,0x18,0x00,0x88,0x40,0x2e,0x65,0x14,0x01,0x6a,0x0e,0x01,0x07,0x0b,0x17,0x0b,0x27,0x0b,0x03,0x77,0x00,0x87,0x00,0x02,0x00,0x5c,0x40,0x0d,0x01,0x10,0x0d,0x20,0x0d,0x30,0x0d,0x03,0x0d,0x0d,0x06,0x18,0x5c,0x10,0x15,0x20,0x15,0x02,0x90,0x15,0xa0,0x15,0x02,0x15,0xb8,0xff,0xc0,0xb3,0x26,0x29,0x48,0x15,0xb8,0xff, -0xc0,0xb3,0x1d,0x22,0x48,0x15,0xb8,0xff,0xc0,0x40,0x1e,0x09,0x0c,0x48,0x15,0x15,0x1a,0x09,0x11,0x5c,0x06,0x40,0x1a,0x1d,0x48,0x10,0x06,0x01,0x06,0x10,0x60,0x09,0x09,0x16,0x07,0x03,0x11,0x60,0x15,0x06,0x12,0x00,0x3f,0x33,0xed,0x3f,0x33,0x39,0x2f,0xed,0x01,0x2f,0x5d,0x2b,0xed,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0x71, -0xed,0x12,0x39,0x2f,0x5d,0x71,0xed,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x2b,0x01,0x11,0x33,0x11,0x33,0x32,0x16,0x07,0x34,0x21,0x23,0x11,0x33,0x32,0x36,0x01,0x11,0x33,0x11,0x03,0x43,0x3e,0x7a,0xb6,0x77,0xf5,0xab,0x3e,0xf6,0xfb,0xa2,0xfe,0xb8,0x45,0x4d,0xa5,0x9b,0x01,0x17,0xab,0x01,0x89,0x57,0x90,0x68, -0x3a,0x05,0x45,0xfd,0xc0,0xc8,0xb6,0xf2,0xfe,0x14,0x7d,0xfe,0xf6,0x05,0x45,0xfa,0xbb,0x00,0x00,0x00,0x00,0x02,0x00,0xa2,0x00,0x00,0x04,0x94,0x05,0x45,0x00,0x0e,0x00,0x17,0x00,0x64,0x40,0x19,0x65,0x17,0x01,0x6a,0x10,0x01,0x06,0x0c,0x01,0x77,0x00,0x87,0x00,0x02,0x00,0x5a,0x40,0x0f,0x01,0x90,0x0f,0xa0,0x0f,0x02,0x0f,0xb8, -0xff,0xc0,0xb3,0x29,0x2d,0x48,0x0f,0xb8,0xff,0xc0,0x40,0x20,0x09,0x0c,0x48,0x0f,0x0f,0x19,0x09,0x14,0x5a,0x70,0x06,0x01,0x00,0x06,0x10,0x06,0xa0,0x06,0xb0,0x06,0x04,0x06,0x13,0x5f,0x09,0x09,0x07,0x03,0x14,0x5f,0x06,0x12,0x00,0x3f,0xed,0x3f,0x39,0x2f,0xed,0x01,0x2f,0x5d,0x71,0xed,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0x71, -0xed,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x21,0x11,0x33,0x11,0x21,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x21,0x11,0x21,0x32,0x36,0x04,0x94,0x3d,0x79,0xb6,0x79,0xfd,0xf3,0xbf,0x01,0x42,0x7d,0xba,0x7c,0x3e,0xc0,0xa4,0xa4,0xfe,0xd5,0x01,0x33,0xa4,0x9c,0x01,0x89,0x57,0x90,0x68,0x3a,0x05,0x45,0xfd,0xca, -0x36,0x66,0x90,0x60,0x79,0x73,0xfe,0x28,0x70,0x00,0x00,0x00,0x00,0x01,0x00,0x57,0xff,0xec,0x04,0x5c,0x05,0x5a,0x00,0x2a,0x00,0xaf,0x40,0x7d,0x45,0x0d,0x55,0x0d,0x02,0x33,0x28,0x01,0x74,0x0a,0x84,0x0a,0x02,0x0a,0x0b,0x00,0x0b,0x00,0x1f,0x15,0x5b,0x02,0xaf,0x2a,0x01,0x40,0x2a,0x01,0x2a,0x40,0x17,0x1b,0x48,0x79,0x2a,0x89, -0x2a,0x02,0x00,0x2a,0x01,0x2a,0x2a,0x2c,0x74,0x20,0x84,0x20,0x02,0x20,0x2f,0x1f,0x01,0x1f,0x00,0x60,0x0f,0x01,0x3f,0x01,0x02,0x6f,0x01,0x8f,0x01,0x9f,0x01,0xbf,0x01,0xdf,0x01,0x05,0x6f,0x01,0x01,0x01,0x01,0x10,0x49,0x1a,0x59,0x1a,0x69,0x1a,0x03,0x25,0x5f,0x1a,0x10,0x20,0x20,0x20,0x30,0x20,0x60,0x20,0x70,0x20,0x05,0x30, -0x20,0x80,0x20,0xd0,0x20,0xe0,0x20,0x04,0x20,0x20,0x1a,0x13,0x46,0x10,0x56,0x10,0x66,0x10,0x03,0x0a,0x0a,0x05,0x5f,0x10,0x04,0x00,0x3f,0xed,0x33,0x2f,0x5d,0x3f,0x33,0x2f,0x5d,0x71,0x10,0xed,0x5d,0x11,0x39,0x2f,0x5d,0x71,0x72,0xed,0x01,0x2f,0x5d,0x33,0x5d,0x12,0x39,0x2f,0x5d,0x5d,0x2b,0x71,0x71,0x33,0xed,0x12,0x39,0x39, -0x2f,0x2f,0x33,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x01,0x35,0x21,0x2e,0x01,0x23,0x22,0x0e,0x02,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x01,0x12,0x15,0x14,0x02,0x0e,0x01,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x01,0xe7,0x01,0xaa,0x0a,0x9f,0xa5,0x3c,0x61,0x49,0x34,0x0f,0xa8,0x1a,0x4c,0x6f,0x98,0x65,0x8a, -0xca,0x84,0x40,0x41,0x87,0xcd,0x8d,0x66,0x9b,0x74,0x51,0x1d,0x9f,0x15,0x3a,0x4f,0x65,0x3f,0x55,0x7e,0x54,0x2d,0x05,0x02,0x61,0x91,0xe2,0xea,0x2a,0x44,0x58,0x2e,0x41,0x42,0x79,0x5d,0x37,0x5b,0xaf,0xfe,0xff,0xa6,0x9e,0xfe,0xfe,0xb8,0x65,0x40,0x69,0x85,0x46,0x41,0x36,0x66,0x4e,0x30,0x3f,0x78,0xb1,0x72,0x00,0x02,0x00,0x56, -0xff,0xec,0x04,0x97,0x05,0x5a,0x00,0x16,0x00,0x22,0x00,0x8a,0x40,0x2d,0x76,0x15,0x86,0x15,0x02,0x60,0x1e,0x01,0x60,0x22,0x01,0x6f,0x1c,0x01,0x6f,0x18,0x01,0x1d,0x5c,0x11,0x9f,0x0a,0xaf,0x0a,0x02,0x0a,0x40,0x09,0x0c,0x48,0x0a,0x0a,0x0d,0x00,0x5c,0x40,0x17,0x50,0x17,0xd0,0x17,0xe0,0x17,0x04,0x17,0xb8,0xff,0xc0,0xb3,0x12, -0x16,0x48,0x17,0xb8,0xff,0xc0,0x40,0x0a,0x0a,0x0e,0x48,0x17,0x17,0x24,0x10,0x0c,0x5c,0x0d,0xb8,0xff,0xc0,0x40,0x18,0x24,0x2b,0x48,0x2f,0x0d,0x01,0x0d,0x0b,0x60,0x10,0x10,0x20,0x1a,0x60,0x14,0x04,0x0e,0x03,0x0d,0x12,0x20,0x60,0x05,0x13,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x5d,0x2b,0xed,0x32, -0x12,0x39,0x2f,0x2b,0x2b,0x71,0xed,0x12,0x39,0x2f,0x2b,0x5d,0x33,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x02,0x0e,0x01,0x23,0x22,0x2e,0x02,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x1a,0x01,0x33,0x32,0x12,0x03,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x04,0x97,0x31,0x62,0x92,0x61,0x5a,0x8c, -0x60,0x36,0x05,0x99,0xa1,0xa1,0x99,0x0b,0xc6,0xb2,0xbc,0xc8,0xac,0x6a,0x6f,0x6d,0x6a,0x6b,0x6c,0x6d,0x6c,0x02,0xa9,0xa7,0xfe,0xfb,0xb3,0x5e,0x54,0xa0,0xeb,0x96,0xfd,0x9f,0x05,0x45,0xfd,0xad,0x01,0x34,0x01,0x34,0xfe,0xa8,0xfe,0xa7,0x01,0x16,0x01,0x09,0xfe,0xf7,0xfe,0xea,0xfe,0xea,0xfe,0xea,0x01,0x16,0x00,0x02,0x00,0x34, -0x00,0x00,0x04,0x2b,0x05,0x45,0x00,0x11,0x00,0x1b,0x00,0x9c,0x40,0x41,0x77,0x09,0x87,0x09,0x02,0x74,0x08,0x84,0x08,0x02,0x6a,0x04,0x01,0x0a,0x03,0x01,0x82,0x10,0x01,0x74,0x10,0x01,0x66,0x10,0x01,0x10,0x01,0x01,0x00,0x18,0x0d,0x5a,0x3f,0x0e,0x01,0xc0,0x0e,0xd0,0x0e,0x02,0x6f,0x0e,0x7f,0x0e,0x8f,0x0e,0x03,0x0e,0x0e,0x1d, -0x12,0x5a,0x06,0x82,0x11,0x01,0x54,0x11,0x64,0x11,0x74,0x11,0x03,0x11,0x00,0xb8,0xff,0xf0,0x40,0x26,0x00,0x00,0x06,0x40,0x15,0x1c,0x48,0x10,0x06,0x01,0x06,0x01,0x10,0x5f,0x1f,0x17,0x7f,0x17,0x02,0x3f,0x17,0x6f,0x17,0x9f,0x17,0xef,0x17,0x04,0x17,0x17,0x00,0x1a,0x5f,0x0b,0x03,0x0e,0x00,0x12,0x00,0x3f,0x32,0x3f,0xed,0x12, -0x39,0x2f,0x5d,0x71,0xed,0x32,0x01,0x2f,0x5d,0x2b,0x33,0x2f,0x38,0x33,0x5d,0x5d,0x10,0xed,0x12,0x39,0x2f,0x5d,0x5d,0x71,0xed,0x33,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x33,0x01,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x21,0x11,0x23,0x11,0x23,0x01,0x13,0x14,0x1e,0x02,0x33,0x21,0x11,0x21,0x20, -0x34,0x01,0x90,0x5b,0x82,0x54,0x27,0x3b,0x77,0xb3,0x78,0x01,0xe2,0xbf,0xee,0xfe,0x92,0x1c,0x1f,0x45,0x72,0x52,0x01,0x18,0xfe,0xf0,0xfe,0xd0,0x02,0x55,0x0f,0x4c,0x67,0x7b,0x3e,0x57,0x8a,0x61,0x33,0xfa,0xbb,0x02,0x3f,0xfd,0xc1,0x03,0xcd,0x32,0x5a,0x43,0x28,0x01,0xd6,0x00,0x00,0x00,0xff,0xff,0x00,0x80,0xff,0xec,0x04,0x88, -0x04,0x4e,0x12,0x06,0x00,0x44,0x00,0x00,0x00,0x02,0x00,0x8c,0xff,0xec,0x04,0x53,0x05,0xde,0x00,0x13,0x00,0x38,0x00,0x8c,0x40,0x4e,0x79,0x2f,0x89,0x2f,0x02,0x4a,0x08,0x5a,0x08,0x02,0x6d,0x02,0x01,0x4a,0x02,0x5a,0x02,0x02,0x62,0x12,0x01,0x45,0x12,0x55,0x12,0x02,0x62,0x0c,0x01,0x45,0x0c,0x55,0x0c,0x02,0x06,0x15,0x76,0x15, -0x86,0x15,0x03,0x2a,0x2a,0x0a,0x17,0x47,0xa0,0x00,0x01,0x00,0x00,0x10,0x00,0x60,0x00,0xe0,0x00,0x04,0x00,0x00,0x3a,0x34,0x0a,0x47,0xc0,0x1f,0xe0,0x1f,0x02,0x00,0x1f,0x01,0x1f,0x34,0x05,0x50,0x14,0x2d,0xb8,0x01,0x0a,0x40,0x0d,0x24,0x14,0x24,0x14,0x24,0x0f,0x2a,0x52,0x29,0x0f,0x50,0x1a,0x16,0x00,0x3f,0xed,0x2f,0xed,0x12, -0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x33,0x01,0x2f,0x5d,0x71,0xed,0x32,0x12,0x39,0x2f,0x5d,0x71,0xed,0x11,0x39,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0x32,0x12,0x11,0x10,0x02,0x23,0x22,0x2e,0x02,0x35,0x34, -0x12,0x3e,0x01,0x37,0x3e,0x03,0x37,0x15,0x0e,0x01,0x07,0x0e,0x05,0x07,0x3e,0x03,0x03,0x96,0x27,0x49,0x68,0x41,0x45,0x72,0x51,0x2c,0x2c,0x4d,0x6a,0x3d,0x45,0x70,0x4e,0x2a,0xf3,0xde,0xd2,0xfa,0xee,0x71,0xb2,0x7b,0x41,0x3a,0x80,0xce,0x93,0x39,0x64,0x5b,0x56,0x2b,0x56,0xa1,0x5b,0x4e,0x7c,0x5e,0x43,0x2c,0x16,0x03,0x14,0x42, -0x61,0x7f,0x01,0xf6,0x72,0x97,0x5b,0x25,0x27,0x5b,0x97,0x70,0x72,0x96,0x59,0x24,0x24,0x58,0x97,0x02,0x7f,0xfe,0xfb,0xfe,0xfa,0xfe,0xf7,0xfe,0xfd,0x46,0x9c,0xfa,0xb4,0xc0,0x01,0x16,0xc1,0x73,0x1c,0x0b,0x11,0x0e,0x0c,0x06,0xa1,0x0b,0x17,0x11,0x0e,0x21,0x32,0x49,0x6c,0x95,0x65,0x38,0x60,0x48,0x29,0x00,0x00,0x03,0x00,0xb9, -0x00,0x00,0x04,0x3a,0x04,0x3a,0x00,0x17,0x00,0x24,0x00,0x2f,0x00,0x55,0x40,0x34,0x76,0x2a,0x86,0x2a,0x02,0x0a,0x13,0x1a,0x13,0x02,0x05,0x03,0x15,0x03,0x25,0x03,0x03,0x0a,0x18,0x05,0x47,0x2c,0x2c,0x16,0x10,0x47,0x1e,0x1e,0x31,0x26,0x18,0x46,0x00,0x16,0x80,0x16,0x02,0x16,0x0a,0x24,0x51,0x26,0x26,0x18,0x25,0x50,0x17,0x0f, -0x18,0x50,0x16,0x15,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x21,0x11,0x13,0x21,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23, -0x21,0x19,0x01,0x21,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x02,0x87,0x4c,0x90,0x70,0x44,0x23,0x3c,0x51,0x2f,0x36,0x5f,0x45,0x28,0x3d,0x6d,0x97,0x5b,0xfe,0x1b,0xb4,0x01,0x14,0x45,0x5f,0x3b,0x1b,0x1c,0x3f,0x64,0x47,0xfe,0xf8,0x01,0x00,0x44,0x5b,0x37,0x17,0x66,0x79,0x04,0x3a,0x18,0x3e,0x68,0x51,0x34,0x52,0x3a,0x25,0x09,0x07, -0x07,0x23,0x3d,0x59,0x3e,0x4e,0x75,0x4e,0x27,0x04,0x3a,0xfc,0x4b,0x14,0x2c,0x43,0x2f,0x32,0x46,0x2c,0x14,0x01,0xc2,0xfe,0xc0,0x13,0x27,0x3d,0x2b,0x52,0x4c,0x00,0x00,0x01,0x01,0x09,0x00,0x00,0x04,0x1a,0x04,0x3a,0x00,0x05,0x00,0x2c,0x40,0x1b,0x0f,0x00,0x1f,0x00,0x02,0x5f,0x00,0xff,0x00,0x02,0x9f,0x00,0xaf,0x00,0x02,0x00, -0x00,0x07,0x03,0x46,0x04,0x02,0x50,0x05,0x0f,0x03,0x15,0x00,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x71,0x72,0x31,0x30,0x01,0x15,0x21,0x11,0x23,0x11,0x04,0x1a,0xfd,0xa3,0xb4,0x04,0x3a,0x8e,0xfc,0x54,0x04,0x3a,0x00,0x02,0x00,0x16,0xfe,0x68,0x04,0x76,0x04,0x3a,0x00,0x07,0x00,0x19,0x00,0x81,0x40,0x1d,0x74,0x14, -0x84,0x14,0x02,0x24,0x13,0x01,0x06,0x46,0x0f,0x01,0x16,0x60,0x16,0x70,0x16,0x80,0x16,0x03,0x0f,0x16,0x0f,0x16,0x0d,0x07,0x08,0x49,0x09,0xb8,0xff,0xc0,0xb3,0x26,0x2a,0x48,0x09,0xb8,0xff,0xc0,0x40,0x2b,0x1d,0x20,0x48,0x09,0x09,0x18,0x49,0x90,0x07,0xa0,0x07,0xc0,0x07,0xd0,0x07,0x04,0x07,0x07,0x1b,0x0c,0x49,0x9f,0x0d,0xaf, -0x0d,0xbf,0x0d,0xff,0x0d,0x04,0x0d,0x01,0x50,0x16,0x0f,0x18,0x06,0x0e,0x50,0x0b,0x15,0x0d,0x08,0xb8,0x01,0x08,0x00,0x3f,0x33,0x3f,0xed,0x32,0x32,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x2b,0x2b,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xcd,0x10,0xed,0x31,0x30,0x00,0x5d,0x5d,0x01,0x21,0x06, -0x02,0x0e,0x01,0x07,0x21,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x3e,0x05,0x37,0x21,0x11,0x33,0x03,0x3f,0xfe,0xc4,0x18,0x31,0x30,0x2f,0x17,0x01,0xfb,0x01,0x37,0xa3,0xfc,0xe6,0xa3,0x77,0x14,0x27,0x27,0x27,0x26,0x26,0x12,0x02,0x70,0x92,0x03,0xac,0xb1,0xff,0x00,0xba,0x81,0x32,0xfd,0xda,0x01,0x98,0xfe,0x68,0x02,0x26,0x21, -0x53,0x6e,0x8f,0xba,0xed,0x94,0xfc,0x54,0xff,0xff,0x00,0x85,0xff,0xec,0x04,0x46,0x04,0x4e,0x12,0x06,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x04,0xcb,0x04,0x3a,0x00,0x2a,0x00,0xee,0x40,0x38,0x0b,0x24,0x1b,0x24,0x02,0x04,0x06,0x14,0x06,0x02,0x0b,0x1b,0x1b,0x1b,0x02,0x0b,0x1a,0x1b,0x1a,0x02,0x04,0x11,0x14,0x11, -0x02,0x04,0x10,0x14,0x10,0x02,0x66,0x21,0x76,0x21,0x86,0x21,0x03,0x21,0x24,0x22,0x2a,0x69,0x09,0x79,0x09,0x89,0x09,0x03,0x06,0x09,0x08,0x17,0x2a,0x49,0x14,0x00,0xb8,0xff,0xc0,0x40,0x5b,0x26,0x2a,0x48,0x00,0x00,0x08,0x22,0x6b,0x1d,0x7b,0x1d,0x8b,0x1d,0x03,0x1d,0x1e,0x6b,0x23,0x7b,0x23,0x8b,0x23,0x03,0x1e,0x23,0x10,0x22, -0x70,0x22,0x80,0x22,0x03,0x22,0x22,0x2c,0x64,0x0e,0x74,0x0e,0x84,0x0e,0x03,0x0e,0x0d,0x64,0x07,0x74,0x07,0x84,0x07,0x03,0x0d,0x07,0x0f,0x08,0x3f,0x08,0x5f,0x08,0x8f,0x08,0x9f,0x08,0x05,0x4f,0x08,0x5f,0x08,0x9f,0x08,0xaf,0x08,0xcf,0x08,0xdf,0x08,0x06,0x08,0x40,0x24,0x2a,0x48,0x08,0x21,0x09,0x24,0x06,0x09,0x06,0x29,0x01, -0xb8,0x01,0x0a,0x40,0x0e,0x17,0x2f,0x14,0x01,0x14,0x14,0x1e,0x0d,0x15,0x0f,0x22,0x08,0x00,0x15,0x00,0x3f,0x32,0x32,0x3f,0x33,0x33,0x39,0x2f,0x5d,0x33,0xed,0x32,0x39,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0x2b,0x5d,0x71,0x33,0x33,0x5d,0x2f,0x33,0x5d,0x11,0x33,0x2f,0x5d,0x33,0x33,0x5d,0x2f,0x33,0x5d,0x11,0x12,0x39,0x2f,0x2b, -0x33,0xed,0x32,0x12,0x39,0x39,0x5d,0x11,0x12,0x39,0x39,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x11,0x2e,0x03,0x27,0x03,0x23,0x01,0x2e,0x01,0x27,0x03,0x33,0x17,0x1e,0x03,0x17,0x11,0x33,0x11,0x3e,0x03,0x3f,0x01,0x33,0x03,0x06,0x07,0x01,0x23,0x03,0x0e,0x03,0x07,0x11,0x02,0x19,0x0f,0x20,0x1b,0x14,0x04,0xfd,0xb9, -0x01,0x4f,0x13,0x38,0x23,0xd8,0xb2,0x94,0x20,0x35,0x2f,0x2d,0x18,0x9a,0x18,0x2d,0x2f,0x35,0x20,0x94,0xb2,0xd8,0x47,0x28,0x01,0x50,0xb9,0xfd,0x04,0x14,0x1b,0x20,0x0f,0x01,0xe0,0x02,0x09,0x0c,0x0b,0x03,0xfd,0xfb,0x02,0x60,0x15,0x4b,0x35,0x01,0x45,0xef,0x33,0x4a,0x33,0x20,0x09,0x01,0xc8,0xfe,0x38,0x09,0x20,0x33,0x4a,0x33, -0xef,0xfe,0xbb,0x6a,0x2b,0xfd,0xa0,0x02,0x05,0x03,0x0b,0x0c,0x09,0x02,0xfe,0x20,0x00,0x01,0x00,0x8a,0xff,0xec,0x04,0x25,0x04,0x4e,0x00,0x39,0x00,0xa6,0x40,0x70,0x73,0x33,0x83,0x33,0x02,0x7a,0x2c,0x8a,0x2c,0x02,0x6a,0x10,0x01,0x0a,0x38,0x1a,0x38,0x02,0x05,0x27,0x15,0x27,0x25,0x27,0x03,0x2f,0x13,0x2a,0x46,0x19,0x13,0x19, -0x13,0x19,0x05,0x35,0x47,0x2f,0x0e,0x3f,0x0e,0x02,0x0e,0x0e,0x05,0x3b,0x74,0x21,0x84,0x21,0x02,0x21,0x49,0x40,0x22,0x50,0x22,0x02,0x22,0x74,0x06,0x84,0x06,0x02,0x06,0x49,0x22,0x05,0x40,0x12,0x16,0x48,0x00,0x05,0x01,0x05,0x2f,0x13,0x50,0x14,0x14,0x25,0x0b,0x00,0x21,0x60,0x21,0x70,0x21,0x80,0x21,0x04,0x20,0x21,0x90,0x21, -0xf0,0x21,0x03,0x21,0x21,0x1c,0x50,0x25,0x10,0x0b,0x50,0x00,0x06,0x06,0x00,0x16,0x00,0x3f,0x32,0x2f,0x10,0xed,0x3f,0xed,0x33,0x2f,0x5d,0x71,0x11,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0x5d,0x2b,0x33,0xed,0x5d,0x2f,0x71,0xed,0x5d,0x11,0x12,0x39,0x2f,0x71,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x00,0x5d, -0x5d,0x5d,0x5d,0x5d,0x05,0x22,0x2e,0x02,0x27,0x37,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x35,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x27,0x3e,0x01,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x02,0x5a,0x66,0x9a,0x6f,0x4a,0x17,0x9f,0x0c,0x2f,0x4b,0x69,0x46, -0x86,0x82,0x4b,0x75,0x8b,0x41,0x41,0x86,0x6d,0x46,0x75,0x82,0x36,0x5c,0x47,0x2d,0x07,0xa2,0x18,0xd7,0xc1,0x68,0x9f,0x6e,0x38,0x34,0x50,0x60,0x2d,0x38,0x6c,0x54,0x33,0x35,0x6f,0xae,0x14,0x1f,0x3f,0x60,0x40,0x2c,0x27,0x3d,0x2a,0x16,0x5e,0x5b,0x3b,0x4e,0x2d,0x12,0x89,0x0f,0x26,0x43,0x34,0x4a,0x56,0x0d,0x21,0x38,0x2a,0x14, -0x89,0x79,0x2a,0x4c,0x68,0x3f,0x39,0x58,0x3d,0x23,0x05,0x02,0x06,0x29,0x43,0x5d,0x3a,0x45,0x77,0x57,0x31,0x00,0x00,0x00,0x00,0x01,0x00,0xb9,0x00,0x00,0x04,0x15,0x04,0x3a,0x00,0x13,0x00,0x58,0x40,0x3c,0x09,0x48,0x07,0x18,0x0e,0x11,0x48,0x49,0x07,0x01,0x07,0x20,0x0a,0x30,0x0a,0x02,0x60,0x0a,0x70,0x0a,0xb0,0x0a,0xc0,0x0a, -0xe0,0x0a,0x05,0x0a,0x0a,0x15,0x65,0x11,0x75,0x11,0x85,0x11,0x03,0x11,0x00,0x48,0x00,0x13,0x80,0x13,0x02,0x13,0x8a,0x10,0x01,0x10,0x07,0x13,0x0f,0x85,0x06,0x01,0x0a,0x06,0x12,0x15,0x00,0x3f,0x33,0x33,0x5d,0x3f,0x33,0x33,0x5d,0x01,0x2f,0x5d,0xed,0x32,0x5d,0x12,0x39,0x2f,0x71,0x72,0x33,0x5d,0x2b,0xed,0x31,0x30,0x01,0x11, -0x14,0x0e,0x02,0x07,0x01,0x33,0x11,0x23,0x11,0x34,0x3e,0x02,0x37,0x01,0x23,0x11,0x01,0x67,0x03,0x03,0x03,0x01,0x01,0xf3,0xc5,0xac,0x02,0x03,0x04,0x01,0xfe,0x06,0xc0,0x04,0x3a,0xfd,0xb0,0x17,0x4d,0x52,0x4a,0x15,0x03,0x65,0xfb,0xc6,0x02,0x94,0x13,0x39,0x3c,0x39,0x14,0xfc,0x97,0x04,0x3a,0x00,0x00,0x00,0xff,0xff,0x00,0xb9, -0x00,0x00,0x04,0x15,0x05,0xb4,0x12,0x26,0x01,0xd4,0x00,0x00,0x11,0x06,0x02,0x96,0xf3,0x00,0x00,0x13,0x40,0x0b,0x01,0x14,0x11,0x26,0x01,0x00,0x19,0x25,0x12,0x08,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x01,0x00,0xda,0x00,0x00,0x04,0x5c,0x04,0x3a,0x00,0x17,0x00,0xa6,0x40,0x35,0x72,0x0b,0x82,0x0b,0x02,0x74,0x0a,0x84, -0x0a,0x02,0x66,0x0a,0x01,0x7d,0x0f,0x8d,0x0f,0x02,0x4a,0x0f,0x5a,0x0f,0x6a,0x0f,0x03,0x8d,0x08,0x01,0x6b,0x08,0x7b,0x08,0x02,0x4a,0x08,0x5a,0x08,0x02,0x35,0x0d,0x65,0x0d,0x75,0x0d,0x85,0x0d,0x04,0x05,0x0d,0x15,0x0d,0x02,0x0d,0xb8,0xff,0xe8,0x40,0x3c,0x0c,0x11,0x48,0x29,0x07,0x79,0x07,0x89,0x07,0x03,0x0a,0x07,0x0d,0x10, -0x07,0x03,0x0e,0x08,0x72,0x09,0x82,0x09,0x02,0x09,0x09,0x0f,0x00,0x0e,0x01,0x0e,0x0e,0x19,0x02,0x16,0x46,0x00,0x17,0x60,0x17,0x70,0x17,0x80,0x17,0x04,0x17,0x0d,0x10,0x15,0x50,0x2f,0x02,0x01,0x02,0x02,0x17,0x0e,0x15,0x09,0x00,0x0f,0x00,0x3f,0x32,0x3f,0x33,0x39,0x2f,0x5d,0xed,0x39,0x39,0x01,0x2f,0x5d,0xed,0x32,0x11,0x33, -0x2f,0x5d,0x33,0x33,0x2f,0x5d,0x33,0x11,0x17,0x39,0x11,0x33,0x5d,0x31,0x30,0x00,0x2b,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x11,0x32,0x3e,0x02,0x37,0x13,0x33,0x03,0x0e,0x01,0x07,0x01,0x23,0x01,0x0e,0x03,0x23,0x11,0x23,0xda,0xb4,0x32,0x55,0x50,0x4e,0x2a,0xb4,0xc2,0xe2,0x35,0x4c,0x15,0x01,0x81, -0xcc,0xfe,0xc3,0x12,0x30,0x35,0x36,0x18,0xb4,0x04,0x3a,0xfe,0x26,0x11,0x2d,0x50,0x3f,0x01,0x0d,0xfe,0xbb,0x4c,0x48,0x0f,0xfd,0xae,0x01,0xfd,0x08,0x0d,0x09,0x05,0xfe,0x26,0x00,0x00,0x00,0x01,0x00,0x06,0xff,0xec,0x04,0x18,0x04,0x3a,0x00,0x19,0x00,0x59,0x40,0x3a,0x07,0x20,0x0b,0x11,0x48,0x14,0x18,0x0b,0x0f,0x48,0x14,0x15, -0x01,0x17,0x10,0x0b,0x11,0x48,0x9f,0x02,0xaf,0x02,0xbf,0x02,0x03,0x02,0x10,0x17,0x70,0x17,0x80,0x17,0x03,0x17,0x17,0x0c,0x19,0x46,0xbf,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x1b,0x0c,0x02,0x50,0x17,0x0f,0x10,0x50,0x09,0x16,0x00,0x15,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x12,0x39,0x2f,0x5d,0x5d,0xed,0x12,0x39,0x2f,0x5d, -0xcd,0x5d,0x2b,0x31,0x30,0x00,0x5d,0x01,0x2b,0x00,0x2b,0x21,0x11,0x21,0x06,0x02,0x0e,0x03,0x23,0x22,0x26,0x27,0x35,0x1e,0x01,0x33,0x32,0x3e,0x03,0x12,0x37,0x21,0x11,0x03,0x63,0xfe,0x83,0x1a,0x28,0x2b,0x32,0x44,0x5e,0x41,0x1d,0x30,0x11,0x0b,0x26,0x13,0x1f,0x32,0x29,0x26,0x25,0x2a,0x19,0x02,0xc6,0x03,0xac,0xb8,0xfe,0xe3, -0xd6,0x92,0x5b,0x28,0x08,0x05,0x81,0x04,0x05,0x2a,0x5e,0x95,0xd8,0x01,0x1d,0xb7,0xfb,0xc6,0x00,0x00,0x00,0x01,0x00,0x66,0x00,0x00,0x04,0x67,0x04,0x3a,0x00,0x20,0x00,0x96,0x40,0x1a,0x76,0x07,0x86,0x07,0x02,0x7b,0x08,0x8b,0x08,0x02,0x1e,0x20,0x0d,0x11,0x48,0x29,0x1e,0x39,0x1e,0x02,0x0b,0x1e,0x1b,0x1e,0x02,0x12,0xb8,0xff, -0xe0,0x40,0x4d,0x0d,0x11,0x48,0x36,0x12,0x01,0x04,0x12,0x14,0x12,0x24,0x12,0x03,0x08,0x07,0x18,0x77,0x18,0x87,0x18,0x02,0x18,0x10,0x1e,0x20,0x49,0xaf,0x00,0x01,0x10,0x00,0x20,0x00,0x02,0x20,0x00,0x30,0x00,0x70,0x00,0x80,0x00,0x04,0x00,0x00,0x22,0x12,0x0f,0x49,0x60,0x10,0x70,0x10,0xa0,0x10,0x03,0x10,0x06,0x09,0x09,0x1e, -0x11,0x0f,0x40,0x18,0x50,0x18,0x02,0x3f,0x18,0x01,0x00,0x08,0x18,0x03,0x10,0x15,0x00,0x3f,0x17,0x33,0x5d,0x5d,0x3f,0x33,0x33,0x11,0x33,0x01,0x2f,0x71,0xed,0x32,0x12,0x39,0x2f,0x5d,0x71,0x71,0xed,0x33,0x11,0x39,0x5d,0x11,0x33,0x33,0x31,0x30,0x5d,0x5d,0x2b,0x5d,0x5d,0x2b,0x5d,0x5d,0x21,0x11,0x34,0x3e,0x02,0x37,0x01,0x23, -0x01,0x1e,0x03,0x15,0x11,0x23,0x11,0x33,0x13,0x1e,0x03,0x17,0x3e,0x03,0x37,0x13,0x33,0x11,0x03,0xce,0x01,0x03,0x03,0x01,0xfe,0xe3,0x99,0xfe,0xda,0x02,0x02,0x01,0x01,0x9a,0xfa,0xc8,0x0a,0x15,0x12,0x0f,0x04,0x05,0x0f,0x12,0x14,0x0a,0xc8,0xef,0x02,0xd4,0x16,0x3c,0x40,0x3d,0x16,0xfc,0x47,0x03,0xb7,0x19,0x3d,0x3d,0x39,0x17, -0xfd,0x2c,0x04,0x3a,0xfd,0x7f,0x20,0x4d,0x51,0x50,0x24,0x24,0x51,0x51,0x4c,0x20,0x02,0x81,0xfb,0xc6,0x00,0x01,0x00,0xb5,0x00,0x00,0x04,0x18,0x04,0x3a,0x00,0x0b,0x00,0x3d,0x40,0x24,0x05,0x46,0x02,0x06,0x06,0x0d,0x01,0x09,0x46,0x9f,0x0a,0x01,0x3f,0x0a,0xef,0x0a,0x02,0x00,0x0a,0x80,0x0a,0x02,0x0a,0x08,0x51,0x2f,0x01,0x01, -0x01,0x01,0x0a,0x05,0x15,0x03,0x00,0x0f,0x00,0x3f,0x32,0x3f,0x33,0x39,0x2f,0x5d,0xed,0x01,0x2f,0x5d,0x71,0x72,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x01,0x11,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x01,0x69,0x01,0xfb,0xb4,0xb4,0xfe,0x05,0xb4,0x04,0x3a,0xfe,0x36,0x01,0xca,0xfb,0xc6,0x01,0xed,0xfe,0x13, -0x04,0x3a,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0xec,0x04,0x49,0x04,0x4e,0x12,0x06,0x00,0x52,0x00,0x00,0x00,0x01,0x00,0xb5,0x00,0x00,0x04,0x18,0x04,0x3a,0x00,0x07,0x00,0x2f,0x40,0x1c,0x01,0x46,0x02,0x02,0x09,0x05,0x46,0x9f,0x06,0x01,0x3f,0x06,0xef,0x06,0x02,0x00,0x06,0x80,0x06,0x02,0x06,0x04,0x50,0x07,0x0f,0x06,0x01,0x15, -0x00,0x3f,0x33,0x3f,0xed,0x01,0x2f,0x5d,0x71,0x72,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x04,0x18,0xb4,0xfe,0x05,0xb4,0x04,0x3a,0xfb,0xc6,0x03,0xac,0xfc,0x54,0x04,0x3a,0x00,0x00,0x00,0xff,0xff,0x00,0xb3,0xfe,0x57,0x04,0x42,0x04,0x50,0x12,0x06,0x00,0x53,0x00,0x00,0xff,0xff,0x00,0x82, -0xff,0xec,0x04,0x38,0x04,0x4e,0x12,0x06,0x00,0x46,0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x04,0x4a,0x04,0x3a,0x00,0x07,0x00,0x38,0x40,0x1f,0x02,0x0e,0x04,0x07,0x05,0x0e,0x0f,0x07,0x01,0x07,0x04,0x46,0x4f,0x05,0x5f,0x05,0x02,0x00,0x05,0x01,0x05,0x05,0x08,0x09,0x04,0x15,0x03,0x07,0x50,0x00,0x0f,0x00,0x3f,0xed,0x32,0x3f, -0x11,0x12,0x01,0x39,0x2f,0x5d,0x5d,0xed,0xc6,0x5d,0x2b,0x01,0x18,0x10,0x4d,0xe6,0x31,0x30,0x13,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x82,0x03,0xc8,0xfe,0x76,0xb4,0xfe,0x76,0x04,0x3a,0x8e,0xfc,0x54,0x03,0xac,0x00,0x00,0x00,0xff,0xff,0x00,0x42,0xfe,0x57,0x04,0x89,0x04,0x3a,0x12,0x06,0x00,0x5c,0x00,0x00,0x00,0x03,0x00,0x46, -0xfe,0x57,0x04,0x85,0x05,0xcc,0x00,0x17,0x00,0x22,0x00,0x2d,0x00,0x8b,0xb3,0x44,0x2b,0x01,0x2c,0xb8,0xff,0xe0,0x40,0x17,0x0c,0x0f,0x48,0x02,0x2c,0x01,0x25,0x20,0x0c,0x0f,0x48,0x0d,0x25,0x01,0x21,0x20,0x0c,0x0f,0x48,0x0d,0x21,0x01,0x1a,0xb8,0xff,0xe0,0x40,0x35,0x0c,0x0f,0x48,0x02,0x1a,0x01,0x0b,0x0d,0x23,0x01,0x02,0x18, -0x01,0x0f,0x04,0x23,0x47,0x40,0x00,0x0e,0x06,0x0d,0x07,0x0e,0x18,0x47,0x0d,0x29,0x15,0x06,0x49,0x1d,0x12,0x07,0x07,0x2e,0x2f,0x13,0x00,0x28,0x1e,0x50,0x15,0x12,0x10,0x29,0x1d,0x50,0x05,0x08,0x16,0x06,0x1b,0x00,0x3f,0x3f,0x33,0xed,0x32,0x3f,0x33,0xed,0x32,0x3f,0x11,0x12,0x01,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0xd4,0xed, -0x2b,0x01,0x18,0x10,0x4d,0xf4,0x1a,0xed,0x5f,0x5e,0x5d,0x5d,0x31,0x30,0x00,0x5e,0x5d,0x2b,0x5d,0x2b,0x5d,0x2b,0x5d,0x2b,0x5d,0x01,0x14,0x0e,0x02,0x07,0x11,0x23,0x11,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x11,0x33,0x11,0x16,0x12,0x01,0x14,0x1e,0x02,0x17,0x11,0x0e,0x03,0x05,0x34,0x2e,0x02,0x27,0x11,0x3e,0x03,0x04,0x85,0x3f, -0x77,0xac,0x6e,0x9b,0x6b,0xad,0x7a,0x42,0x3e,0x78,0xae,0x70,0x9b,0xeb,0xe5,0xfc,0x7e,0x2c,0x4c,0x65,0x3a,0x3f,0x66,0x4a,0x28,0x02,0xc5,0x28,0x48,0x65,0x3e,0x3d,0x65,0x49,0x28,0x02,0x1e,0x82,0xc7,0x8b,0x50,0x0a,0xfe,0x67,0x01,0x98,0x09,0x4e,0x8b,0xc9,0x84,0x81,0xc6,0x8c,0x50,0x0a,0x01,0x81,0xfe,0x7f,0x13,0xfe,0xeb,0xfe, -0xfb,0x6e,0x9a,0x64,0x34,0x09,0x03,0x4e,0x09,0x36,0x64,0x97,0x6b,0x6e,0x99,0x63,0x34,0x08,0xfc,0xb3,0x09,0x36,0x64,0x98,0xff,0xff,0x00,0x5e,0x00,0x00,0x04,0x6d,0x04,0x3a,0x12,0x06,0x00,0x5b,0x00,0x00,0x00,0x01,0x00,0xb0,0xfe,0x68,0x04,0xa6,0x04,0x3a,0x00,0x0b,0x00,0x64,0x40,0x14,0x07,0x49,0xa0,0x08,0xb0,0x08,0x02,0x40, -0x08,0x50,0x08,0x02,0x90,0x08,0xa0,0x08,0xb0,0x08,0x03,0x08,0xb8,0xff,0xc0,0x40,0x27,0x26,0x2a,0x48,0x08,0x08,0x05,0x46,0x0f,0x02,0x01,0x02,0x02,0x0d,0x01,0x46,0x9f,0x0a,0xaf,0x0a,0xbf,0x0a,0x03,0x3f,0x0a,0xef,0x0a,0xff,0x0a,0x03,0x00,0x0a,0x01,0x0a,0x05,0x01,0x51,0x0a,0x15,0x08,0xb8,0x01,0x08,0xb2,0x03,0x00,0x0f,0x00, -0x3f,0x32,0x3f,0x3f,0xed,0x32,0x01,0x2f,0x5d,0x71,0x72,0xed,0x12,0x39,0x2f,0x71,0xed,0x32,0x2f,0x2b,0x5d,0x71,0x72,0xed,0x31,0x30,0x01,0x11,0x21,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x01,0x64,0x01,0xfb,0xb4,0x93,0xa3,0xfc,0xad,0x04,0x3a,0xfc,0x49,0x03,0xb7,0xfc,0x49,0xfd,0xe5,0x01,0x98,0x04,0x3a,0x00,0x00,0x00, -0x00,0x01,0x00,0x9a,0x00,0x00,0x03,0xfd,0x04,0x3a,0x00,0x19,0x00,0x54,0x40,0x38,0x0a,0x20,0x0d,0x11,0x48,0x11,0x20,0x0d,0x11,0x48,0x16,0x28,0x09,0x0e,0x48,0x0e,0x46,0x0b,0x0f,0x0f,0x01,0x4f,0x0f,0x5f,0x0f,0xbf,0x0f,0x03,0x0f,0x0f,0x1b,0x01,0x46,0x9f,0x18,0xaf,0x18,0x02,0x18,0x40,0x1c,0x21,0x48,0x00,0x18,0x01,0x18,0x06, -0x50,0x15,0x15,0x0e,0x15,0x0c,0x00,0x0f,0x00,0x3f,0x32,0x3f,0x39,0x2f,0xed,0x01,0x2f,0x5d,0x2b,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x71,0x33,0xed,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x01,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x11,0x33,0x11,0x23,0x11,0x0e,0x03,0x23,0x22,0x26,0x35,0x11,0x01,0x4e,0x15,0x2f,0x4b,0x37,0x23,0x4e, -0x50,0x4f,0x25,0xb4,0xb4,0x26,0x5b,0x66,0x6c,0x36,0x92,0x94,0x04,0x3a,0xfe,0x6e,0x22,0x3b,0x2c,0x19,0x08,0x0f,0x13,0x0a,0x02,0x00,0xfb,0xc6,0x01,0xd2,0x0f,0x20,0x1b,0x11,0x9e,0x8a,0x01,0x9b,0x00,0x00,0x00,0x01,0x00,0x66,0x00,0x00,0x04,0x67,0x04,0x3a,0x00,0x0b,0x00,0x60,0x40,0x1a,0x07,0x49,0x04,0x04,0x00,0x0b,0x49,0x60, -0x08,0x70,0x08,0xa0,0x08,0xb0,0x08,0xc0,0x08,0xf0,0x08,0x06,0x70,0x08,0x80,0x08,0x02,0x08,0xb8,0xff,0xc0,0x40,0x24,0x30,0x34,0x48,0x4f,0x08,0x5f,0x08,0x02,0x20,0x08,0x30,0x08,0x02,0x08,0x08,0x0d,0x03,0x49,0x0f,0x00,0x01,0xcf,0x00,0xdf,0x00,0x02,0x00,0x09,0x05,0x01,0x0f,0x07,0x03,0x51,0x00,0x15,0x00,0x3f,0xed,0x32,0x3f, -0x33,0x33,0x01,0x2f,0x5d,0x71,0xed,0x12,0x39,0x2f,0x5d,0x5d,0x2b,0x5d,0x71,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x66,0xa0,0x01,0x10,0xa0,0x01,0x11,0xa0,0x04,0x3a,0xfc,0x49,0x03,0xb7,0xfc,0x49,0x03,0xb7,0xfb,0xc6,0x00,0x00,0x00,0x01,0x00,0x5c,0xfe,0x68,0x04,0xbd, -0x04,0x3a,0x00,0x0f,0x00,0x9c,0x40,0x22,0x07,0x49,0x04,0x04,0x00,0x08,0x0d,0x49,0x50,0x0e,0x60,0x0e,0x02,0x40,0x0e,0x50,0x0e,0x80,0x0e,0x90,0x0e,0x04,0x90,0x0e,0xa0,0x0e,0xb0,0x0e,0xe0,0x0e,0xf0,0x0e,0x05,0x0e,0xb8,0xff,0xc0,0x40,0x3e,0x26,0x2c,0x48,0x0e,0x0e,0x0b,0x49,0x8f,0x08,0x9f,0x08,0xdf,0x08,0xef,0x08,0x04,0x4f, -0x08,0x5f,0x08,0x9f,0x08,0xaf,0x08,0x04,0x08,0x40,0x2e,0x31,0x48,0x08,0x40,0x29,0x2c,0x48,0x08,0x40,0x17,0x1b,0x48,0x08,0x08,0x11,0x03,0x49,0x0f,0x00,0x01,0x1f,0x00,0xcf,0x00,0xdf,0x00,0x03,0x00,0x40,0x1e,0x21,0x48,0x00,0x0e,0xb8,0x01,0x08,0x40,0x0a,0x09,0x05,0x01,0x0f,0x0b,0x07,0x03,0x51,0x00,0x15,0x00,0x3f,0xed,0x32, -0x32,0x3f,0x33,0x33,0x3f,0x01,0x2f,0x2b,0x5d,0x71,0xed,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0x71,0xed,0x32,0x2f,0x2b,0x5d,0x71,0x72,0xed,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x5c,0xa0,0xf9,0xa0,0xf9,0xa0,0x8f,0x8f,0x04,0x3a,0xfc,0x49,0x03,0xb7, -0xfc,0x49,0x03,0xb7,0xfc,0x49,0xfd,0xe5,0x01,0x98,0x00,0x00,0x00,0x02,0xff,0xff,0x00,0x00,0x04,0x7e,0x04,0x3a,0x00,0x0e,0x00,0x19,0x00,0x4b,0xb5,0x0b,0x06,0x1b,0x06,0x02,0x01,0xb8,0xff,0xe0,0x40,0x25,0x09,0x0c,0x48,0x0e,0x0f,0x46,0x09,0x09,0x0b,0x03,0x47,0x00,0x15,0x10,0x15,0x90,0x15,0xa0,0x15,0x04,0x15,0x15,0x1b,0x0b, -0x19,0x51,0x0e,0x0e,0x0f,0x0b,0x50,0x0c,0x0f,0x0f,0x51,0x09,0x15,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x00,0x2b,0x5d,0x01,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x21,0x11,0x21,0x35,0x21,0x19,0x01,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x2b,0x01,0x02, -0xdf,0xcd,0xd2,0x34,0x68,0x9b,0x67,0xfe,0x67,0xfe,0xb8,0x01,0xfc,0xca,0x45,0x60,0x3b,0x1a,0x74,0x85,0xcb,0x02,0x70,0x93,0x9f,0x4a,0x76,0x52,0x2c,0x03,0xac,0x8e,0xfe,0x36,0xfe,0x0f,0x19,0x31,0x47,0x2e,0x5e,0x57,0x00,0x00,0x00,0x03,0x00,0x6a,0x00,0x00,0x04,0x62,0x04,0x3a,0x00,0x0c,0x00,0x17,0x00,0x1b,0x00,0x83,0xb7,0x0b, -0x06,0x1b,0x06,0x2b,0x06,0x03,0x01,0xb8,0xff,0xe0,0x40,0x16,0x09,0x0c,0x48,0x03,0x48,0xd0,0x13,0xe0,0x13,0x02,0x00,0x13,0x10,0x13,0x20,0x13,0x90,0x13,0xa0,0x13,0x05,0x13,0xb8,0xff,0xc0,0x40,0x17,0x1e,0x22,0x48,0x13,0x13,0x09,0x1b,0x49,0xb0,0x18,0xd0,0x18,0x02,0x10,0x18,0x20,0x18,0x90,0x18,0xa0,0x18,0x04,0x18,0xb8,0xff, -0xc0,0x40,0x1c,0x1f,0x22,0x48,0x18,0x18,0x1d,0x0c,0x0d,0x49,0x3f,0x09,0x01,0x10,0x09,0x01,0x09,0x17,0x51,0x0c,0x0c,0x19,0x0a,0x0f,0x0d,0x51,0x18,0x09,0x15,0x00,0x3f,0x33,0xed,0x3f,0x33,0x39,0x2f,0xed,0x01,0x2f,0x5d,0x71,0xed,0x32,0x12,0x39,0x2f,0x2b,0x5d,0x71,0xed,0x12,0x39,0x2f,0x2b,0x5d,0x71,0xed,0x31,0x30,0x00,0x2b, -0x5d,0x01,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x21,0x11,0x33,0x19,0x01,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x2b,0x01,0x01,0x11,0x33,0x11,0x01,0xa9,0xcd,0xd2,0x34,0x68,0x9b,0x67,0xfe,0xc0,0xa4,0x9b,0x42,0x5b,0x39,0x1a,0x71,0x7e,0x9c,0x02,0xb0,0xa4,0x02,0x70,0x93,0x9f,0x4a,0x76,0x52,0x2c,0x04,0x3a,0xfe,0x36,0xfe,0x0f,0x19, -0x31,0x47,0x2e,0x5e,0x57,0xfe,0x0d,0x04,0x3a,0xfb,0xc6,0x00,0x00,0x02,0x00,0xcc,0x00,0x00,0x04,0x29,0x04,0x3a,0x00,0x0c,0x00,0x17,0x00,0x45,0x40,0x2c,0x0b,0x06,0x1b,0x06,0x02,0x04,0x01,0x14,0x01,0x02,0x03,0x47,0x00,0x13,0x01,0x13,0x13,0x19,0x0c,0x0d,0x46,0x10,0x09,0x20,0x09,0x02,0x60,0x09,0x70,0x09,0x80,0x09,0x03,0x09, -0x17,0x51,0x0c,0x0c,0x0a,0x0f,0x0d,0x51,0x09,0x15,0x00,0x3f,0xed,0x3f,0x39,0x2f,0xed,0x01,0x2f,0x5d,0x71,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x00,0x5d,0x5d,0x01,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x21,0x11,0x33,0x19,0x01,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x2b,0x01,0x02,0x8a,0xcd,0xd2,0x34,0x68,0x9b,0x67,0xfe, -0x41,0xb4,0xf0,0x45,0x60,0x3b,0x1a,0x74,0x85,0xf1,0x02,0x70,0x93,0x9f,0x4a,0x76,0x52,0x2c,0x04,0x3a,0xfe,0x36,0xfe,0x0f,0x19,0x31,0x47,0x2e,0x5e,0x57,0x00,0x00,0x00,0x01,0x00,0x7c,0xff,0xec,0x04,0x3c,0x04,0x4e,0x00,0x2a,0x00,0xa5,0x40,0x73,0x78,0x08,0x88,0x08,0x02,0x77,0x24,0x87,0x24,0x02,0x65,0x0d,0x01,0x62,0x13,0x01, -0x45,0x13,0x55,0x13,0x02,0x4a,0x1a,0x5a,0x1a,0x6a,0x1a,0x03,0x00,0x17,0x10,0x17,0x40,0x17,0x50,0x17,0x04,0x17,0x17,0x0a,0x18,0x00,0x47,0x3f,0x15,0x4f,0x15,0xaf,0x15,0x03,0xcf,0x15,0xdf,0x15,0xff,0x15,0x03,0x60,0x15,0x01,0x15,0x15,0x0a,0x2c,0x20,0x47,0x21,0x21,0x0b,0x47,0xff,0x0a,0x01,0x00,0x0a,0x01,0x0a,0x16,0x51,0x17, -0x17,0x10,0x26,0x1f,0x20,0x01,0x20,0x20,0x1d,0x50,0x26,0x10,0x10,0x50,0x05,0x20,0x0b,0x70,0x0b,0x80,0x0b,0x03,0x00,0x0b,0x10,0x0b,0x60,0x0b,0xc0,0x0b,0x04,0x0b,0x0b,0x05,0x16,0x00,0x3f,0x33,0x2f,0x5d,0x71,0x10,0xed,0x3f,0xed,0x33,0x2f,0x5d,0x11,0x12,0x39,0x2f,0xed,0x01,0x2f,0x5d,0x5d,0xed,0x33,0x2f,0xed,0x11,0x12,0x39, -0x2f,0x5d,0x5d,0x71,0xed,0x33,0x12,0x39,0x2f,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x21,0x35,0x21,0x2e,0x03,0x23,0x22,0x06,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x04,0x3c,0x36,0x77,0xbf,0x89,0x64,0xa2,0x75,0x47,0x09,0xbe, -0x08,0x31,0x49,0x5d,0x36,0x4e,0x6f,0x48,0x25,0x04,0xfe,0x82,0x01,0x7e,0x04,0x26,0x48,0x6f,0x4e,0x76,0x8a,0x10,0xc0,0x0e,0x48,0x73,0x9d,0x62,0x5f,0xb4,0x8d,0x56,0x02,0x1e,0x78,0xcd,0x97,0x56,0x39,0x5e,0x7c,0x43,0x0c,0x36,0x51,0x35,0x1b,0x31,0x5d,0x87,0x56,0x83,0x54,0x82,0x58,0x2e,0x69,0x5b,0x0e,0x44,0x76,0x57,0x32,0x35, -0x80,0xd8,0x00,0x00,0x00,0x02,0x00,0x46,0xff,0xec,0x04,0x98,0x04,0x4e,0x00,0x1a,0x00,0x2e,0x00,0x8f,0x40,0x63,0x63,0x23,0x01,0x45,0x23,0x55,0x23,0x02,0x63,0x1d,0x01,0x45,0x1d,0x55,0x1d,0x02,0x6c,0x2d,0x01,0x4a,0x2d,0x5a,0x2d,0x02,0x6d,0x27,0x01,0x3a,0x27,0x4a,0x27,0x5a,0x27,0x03,0x09,0x13,0x01,0x08,0x0e,0x01,0x07,0x04, -0x01,0x1b,0x48,0x15,0x15,0x70,0x01,0x80,0x01,0xb0,0x01,0xc0,0x01,0xd0,0x01,0x05,0x01,0x01,0x17,0x0b,0x48,0x4f,0x25,0x5f,0x25,0x02,0x25,0x25,0x30,0x00,0x17,0x49,0x60,0x18,0x70,0x18,0x80,0x18,0x03,0x18,0x19,0x0f,0x18,0x15,0x16,0x51,0x00,0x00,0x06,0x20,0x50,0x10,0x16,0x2a,0x50,0x06,0x10,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39, -0x2f,0xed,0x3f,0x3f,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x33,0x10,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x11,0x23,0x11,0x33,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e, -0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0xea,0xa9,0x09,0x42,0x67,0x87,0x4d,0x4f,0x8b,0x68,0x3d,0x38,0x65,0x8d,0x56,0x55,0x8e,0x66,0x3b,0x03,0xa7,0xa4,0xa4,0x01,0x54,0x26,0x3d,0x4d,0x27,0x29,0x4d,0x3c,0x24,0x28,0x3e,0x49,0x21,0x29,0x4f,0x3f,0x26,0x02,0x70,0x79,0xb3,0x77,0x3b,0x44,0x8c,0xd3,0x8f,0x8b,0xd2,0x8d,0x46, -0x43,0x83,0xbf,0x7c,0xfe,0x13,0x04,0x3a,0xfd,0xe2,0x7e,0xa4,0x62,0x27,0x29,0x63,0xa4,0x7b,0x7e,0xa5,0x62,0x28,0x27,0x62,0xa6,0x00,0x00,0x00,0x00,0x02,0x00,0x45,0x00,0x00,0x03,0xfb,0x04,0x3a,0x00,0x0d,0x00,0x16,0x00,0x7a,0x40,0x2f,0x04,0x18,0x09,0x0c,0x48,0x05,0x08,0x15,0x08,0x02,0x00,0x3f,0x03,0x01,0x03,0x03,0x06,0x16, -0x0b,0x46,0x0f,0x0c,0x5f,0x0c,0xaf,0x0c,0xff,0x0c,0x04,0x4f,0x0c,0x5f,0x0c,0x02,0x0c,0x0c,0x06,0x18,0x65,0x01,0x75,0x01,0x85,0x01,0x03,0x01,0x02,0xb8,0xff,0xf0,0x40,0x1d,0x02,0x40,0x0c,0x0f,0x48,0x02,0x02,0x12,0x47,0x9f,0x06,0x01,0x00,0x06,0x01,0x06,0x03,0x00,0x51,0x15,0x15,0x01,0x0f,0x51,0x09,0x0f,0x0c,0x01,0x15,0x00, -0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x32,0x01,0x2f,0x5d,0x5d,0xed,0x33,0x2f,0x2b,0x38,0x33,0x5d,0x11,0x12,0x39,0x2f,0x5d,0x71,0xed,0x33,0x12,0x39,0x2f,0x5d,0x33,0x31,0x30,0x00,0x5d,0x2b,0x09,0x01,0x23,0x01,0x2e,0x01,0x35,0x34,0x36,0x33,0x21,0x11,0x23,0x19,0x01,0x23,0x22,0x06,0x15,0x14,0x16,0x3b,0x01,0x02,0x4b,0xfe, -0xc5,0xcb,0x01,0x58,0x82,0x77,0xd8,0xcf,0x01,0xb0,0xb4,0xea,0x82,0x78,0x6b,0x7c,0xfd,0x01,0xca,0xfe,0x36,0x01,0xd7,0x1b,0xa3,0x7a,0x95,0x96,0xfb,0xc6,0x01,0xca,0x01,0xf1,0x5c,0x5d,0x5e,0x5d,0x00,0x00,0xff,0xff,0x00,0x85,0xff,0xec,0x04,0x46,0x05,0xc1,0x10,0x26,0x00,0x43,0x9e,0x0d,0x12,0x06,0x00,0x48,0x00,0x00,0x00,0x00, -0xff,0xff,0x00,0x85,0xff,0xec,0x04,0x46,0x05,0x7b,0x12,0x26,0x00,0x48,0x00,0x00,0x11,0x06,0x00,0x69,0x08,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x2c,0x11,0x26,0x03,0x02,0x08,0x30,0x2e,0x15,0x1f,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x01,0x00,0x35,0xfe,0x57,0x04,0x19,0x05,0xcc,0x00,0x37,0x00,0x81,0x40,0x40, -0x74,0x12,0x84,0x12,0x02,0x35,0x0c,0x01,0x18,0x28,0x09,0x0f,0x48,0x05,0x11,0x15,0x11,0x25,0x11,0x75,0x11,0x85,0x11,0x05,0x9f,0x03,0xaf,0x03,0x02,0x1d,0x03,0x1d,0x03,0x32,0x15,0x46,0x26,0x26,0x39,0x05,0x02,0x32,0x46,0x33,0x36,0x36,0x37,0x00,0x33,0x80,0x33,0x02,0x33,0x05,0x35,0x51,0x02,0x36,0x36,0x00,0x2c,0x50,0x09,0x0f, -0xb8,0xff,0xc0,0x40,0x0e,0x09,0x0c,0x48,0x0f,0x0f,0x00,0x33,0x15,0x21,0x50,0x1a,0x1b,0x00,0x00,0x00,0x3f,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x2b,0x33,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x5d,0x33,0x33,0x2f,0x10,0xed,0x32,0x32,0x12,0x39,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x31,0x30,0x00,0x5d,0x2b,0x5d,0x5d,0x13, -0x33,0x15,0x21,0x15,0x21,0x15,0x14,0x06,0x07,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x1e,0x01,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x23,0x35,0x33,0xb9,0xb5,0x01,0x2b,0xfe,0xd5,0x06,0x03,0x03,0x18,0x40,0x52,0x69,0x40,0x53,0x82, -0x5a,0x2f,0x15,0x36,0x5d,0x48,0x22,0x41,0x1c,0x0d,0x24,0x0d,0x26,0x31,0x1b,0x0a,0x21,0x3b,0x50,0x30,0x3b,0x67,0x4d,0x2c,0xb4,0x84,0x84,0x05,0xcc,0x9d,0x83,0x84,0x32,0x65,0x2e,0x2f,0x4c,0x35,0x1d,0x2c,0x5c,0x90,0x65,0xfc,0xc7,0x3e,0x6a,0x4e,0x2d,0x04,0x05,0x8b,0x02,0x04,0x14,0x2b,0x43,0x2e,0x03,0x04,0x50,0x67,0x3d,0x18, -0x2d,0x55,0x7d,0x51,0xfd,0xab,0x04,0xac,0x83,0x00,0x00,0x00,0xff,0xff,0x01,0x09,0x00,0x00,0x04,0x1a,0x05,0xb4,0x12,0x26,0x01,0xcf,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x93,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x06,0x11,0x26,0x01,0x67,0x06,0x09,0x04,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0x00,0x01,0x00,0x91, -0xff,0xec,0x04,0x51,0x04,0x4e,0x00,0x2a,0x00,0x8f,0x40,0x62,0x79,0x23,0x89,0x23,0x02,0x76,0x08,0x86,0x08,0x02,0x65,0x1e,0x01,0x63,0x18,0x01,0x45,0x18,0x55,0x18,0x02,0x4a,0x11,0x5a,0x11,0x6a,0x11,0x03,0x0f,0x14,0x1f,0x14,0x02,0x14,0x14,0x20,0x00,0x0a,0x47,0x0b,0x0b,0x21,0x47,0x00,0x20,0x10,0x20,0x60,0x20,0x03,0x20,0x20, -0x2c,0x13,0x16,0x47,0x00,0x00,0xd0,0x00,0x02,0x00,0x16,0x51,0x13,0x13,0x05,0x20,0x20,0x70,0x20,0x80,0x20,0x03,0x00,0x20,0x10,0x20,0x60,0x20,0xc0,0x20,0x04,0x20,0x20,0x1b,0x50,0x26,0x16,0x1f,0x0b,0x01,0x0b,0x0b,0x0e,0x50,0x05,0x10,0x00,0x3f,0xed,0x33,0x2f,0x5d,0x3f,0xed,0x33,0x2f,0x5d,0x71,0x11,0x39,0x2f,0xed,0x01,0x2f, -0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x01,0x23,0x22,0x0e,0x02,0x07,0x21,0x15,0x21,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x23,0x22,0x2e,0x02,0x91,0x56,0x8d,0xb4,0x5f, -0x62,0x9d,0x73,0x49,0x0d,0xc0,0x10,0x8a,0x76,0x4e,0x6f,0x48,0x25,0x05,0x01,0x7e,0xfe,0x82,0x05,0x24,0x48,0x6f,0x4e,0x36,0x5d,0x49,0x31,0x08,0xbe,0x09,0x47,0x75,0xa2,0x64,0x89,0xbf,0x77,0x36,0x02,0x1e,0xa3,0xd8,0x80,0x35,0x32,0x57,0x76,0x44,0x0e,0x5b,0x69,0x2e,0x58,0x82,0x54,0x83,0x56,0x87,0x5d,0x31,0x1b,0x35,0x51,0x36, -0x0c,0x43,0x7c,0x5e,0x39,0x56,0x97,0xcd,0xff,0xff,0x00,0xa7,0xff,0xec,0x04,0x24,0x04,0x4b,0x12,0x06,0x00,0x56,0x00,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x04,0x65,0x05,0xcc,0x12,0x26,0x00,0xf1,0x00,0x00,0x11,0x06,0x01,0x4f,0x29,0x00,0x00,0x0b,0xb6,0x01,0x00,0x0a,0x0d,0x06,0x09,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x8f, -0x00,0x00,0x04,0x65,0x05,0x7b,0x12,0x26,0x00,0xf1,0x00,0x00,0x11,0x06,0x00,0x69,0x29,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x0a,0x11,0x26,0x02,0x01,0x14,0x0e,0x0c,0x03,0x01,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x75,0xfe,0x57,0x03,0x44,0x05,0xcc,0x12,0x06,0x00,0x4d,0x00,0x00,0x00,0x02,0x00,0x19, -0xff,0xec,0x04,0xa7,0x04,0x3a,0x00,0x1f,0x00,0x2a,0x00,0x78,0x40,0x0b,0x0a,0x06,0x1a,0x06,0x02,0x04,0x01,0x14,0x01,0x02,0x0b,0xb8,0xff,0xe8,0x40,0x0d,0x17,0x1c,0x48,0x0b,0x28,0x12,0x16,0x48,0x0b,0xe0,0x1d,0x01,0x1d,0xb8,0xff,0xc0,0x40,0x2e,0x0d,0x11,0x48,0x1d,0x1d,0x14,0x1f,0x20,0x49,0x70,0x09,0x80,0x09,0x02,0x09,0x09, -0x14,0x03,0x49,0xe0,0x26,0x01,0x26,0x26,0x2c,0x00,0x14,0x01,0x14,0x2a,0x51,0x1f,0x1f,0x20,0x0b,0x51,0x1d,0x0f,0x17,0x50,0x11,0x16,0x20,0x51,0x09,0x15,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x5d,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x2b,0x5d,0xcd,0x2b,0x2b,0x31, -0x30,0x00,0x5d,0x5d,0x01,0x32,0x16,0x15,0x14,0x0e,0x02,0x2b,0x01,0x11,0x23,0x03,0x0e,0x03,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x37,0x13,0x21,0x19,0x01,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x2b,0x01,0x03,0x1c,0xbd,0xce,0x34,0x64,0x93,0x5f,0xcf,0xa5,0x28,0x0f,0x2a,0x3f,0x5b,0x41,0x1d,0x26,0x11,0x15,0x25,0x23, -0x30,0x21,0x19,0x0c,0x35,0x01,0xc8,0x33,0x3e,0x57,0x38,0x19,0x6f,0x76,0x34,0x02,0x70,0x94,0x9e,0x4a,0x76,0x52,0x2c,0x03,0xc1,0xfe,0x45,0xa1,0xd0,0x7a,0x2f,0x06,0x05,0x81,0x07,0x26,0x60,0xa6,0x80,0x02,0x1d,0xfe,0x36,0xfe,0x05,0x1c,0x35,0x4a,0x2e,0x5e,0x61,0x00,0x00,0x02,0x00,0x5c,0x00,0x00,0x04,0xb0,0x04,0x3a,0x00,0x14, -0x00,0x1f,0x00,0x5e,0x40,0x3a,0x0a,0x0c,0x1a,0x0c,0x02,0x04,0x07,0x14,0x07,0x02,0x05,0x15,0x49,0x02,0x20,0x0f,0x30,0x0f,0x70,0x0f,0x80,0x0f,0x04,0x0f,0x0f,0x13,0x09,0x49,0x60,0x1b,0xe0,0x1b,0x02,0x1b,0x1b,0x21,0x01,0x12,0x49,0x1f,0x13,0x01,0x13,0x1f,0x11,0x51,0x05,0x01,0x01,0x00,0x15,0x51,0x13,0x0f,0x15,0x03,0x00,0x0f, -0x00,0x3f,0x32,0x3f,0x33,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x33,0xed,0x32,0x31,0x30,0x00,0x5d,0x5d,0x13,0x11,0x21,0x11,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x2b,0x01,0x11,0x21,0x11,0x23,0x11,0x01,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x2b,0x01, -0xf6,0x01,0x4b,0x9a,0x36,0xcd,0xd2,0x34,0x68,0x9b,0x67,0xd1,0xfe,0xb5,0x9a,0x02,0x7f,0x36,0x45,0x60,0x3b,0x1a,0x74,0x85,0x37,0x04,0x3a,0xfe,0x36,0x01,0xca,0xfe,0x36,0x93,0x9f,0x4a,0x76,0x52,0x2c,0x01,0xf7,0xfe,0x09,0x04,0x3a,0xfc,0x3b,0x1c,0x35,0x4a,0x2e,0x5e,0x61,0x00,0x00,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x04,0x19, -0x05,0xcc,0x00,0x27,0x00,0x73,0x40,0x3a,0x74,0x12,0x84,0x12,0x02,0x35,0x0c,0x01,0x05,0x11,0x15,0x11,0x25,0x11,0x75,0x11,0x85,0x11,0x05,0x9f,0x03,0xaf,0x03,0x02,0x03,0x03,0x22,0x15,0x46,0x16,0x16,0x29,0x05,0x02,0x22,0x46,0x23,0x27,0x23,0x26,0x26,0x00,0x23,0x80,0x23,0x02,0x23,0x05,0x25,0x51,0x02,0x26,0x26,0x00,0x1c,0x50, -0x09,0x0f,0xb8,0xff,0xc0,0x40,0x0a,0x09,0x0c,0x48,0x0f,0x0f,0x15,0x23,0x15,0x00,0x00,0x00,0x3f,0x3f,0x33,0x39,0x2f,0x2b,0x33,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x5d,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0x32,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x13,0x33,0x15,0x21,0x15,0x21,0x15, -0x14,0x06,0x07,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x23,0x35,0x33,0xb9,0xb5,0x01,0x2b,0xfe,0xd5,0x06,0x03,0x03,0x18,0x40,0x52,0x69,0x40,0x53,0x82,0x5a,0x2f,0xb5,0x21,0x3b,0x50,0x30,0x3b,0x67,0x4d,0x2c,0xb4,0x84,0x84,0x05,0xcc,0x9d,0x83,0x84,0x32, -0x65,0x2e,0x2f,0x4c,0x35,0x1d,0x2c,0x5c,0x90,0x65,0xfd,0x4d,0x02,0x99,0x50,0x67,0x3d,0x18,0x2d,0x55,0x7d,0x51,0xfd,0xab,0x04,0xac,0x83,0x00,0xff,0xff,0x00,0xda,0x00,0x00,0x04,0x5c,0x05,0xb4,0x12,0x26,0x01,0xd6,0x00,0x00,0x11,0x06,0x00,0x74,0x6a,0x00,0x00,0x13,0x40,0x0b,0x01,0x18,0x11,0x26,0x01,0x35,0x18,0x1b,0x00,0x0e, -0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xb9,0x00,0x00,0x04,0x15,0x05,0xc1,0x10,0x26,0x00,0x43,0x9e,0x0d,0x10,0x06,0x01,0xd4,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x42,0xfe,0x57,0x04,0x89,0x05,0xb4,0x12,0x26,0x00,0x5c,0x00,0x00,0x11,0x06,0x02,0x96,0xf1,0x00,0x00,0x13,0x40,0x0b,0x01,0x20,0x11,0x26,0x01,0x00, -0x25,0x31,0x11,0x1f,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x01,0x00,0xb5,0xfe,0x57,0x04,0x18,0x04,0x3a,0x00,0x0b,0x00,0x3d,0x40,0x24,0x09,0x49,0x0a,0x0a,0x00,0x07,0x46,0x04,0x04,0x0d,0x03,0x46,0x9f,0x00,0x01,0x3f,0x00,0xef,0x00,0x02,0x00,0x00,0x80,0x00,0x02,0x00,0x09,0x1b,0x05,0x01,0x0f,0x08,0x03,0x51,0x00,0x15, -0x00,0x3f,0xed,0x33,0x3f,0x33,0x3f,0x01,0x2f,0x5d,0x71,0x72,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x23,0x11,0xb5,0xb4,0x01,0xfb,0xb4,0xfe,0xa0,0xa3,0x04,0x3a,0xfc,0x49,0x03,0xb7,0xfb,0xc6,0xfe,0x57,0x01,0xa9,0x00,0x00,0x01,0x00,0xe2,0x00,0x01,0x04,0x76, -0x06,0xa9,0x00,0x07,0x00,0x4b,0x40,0x14,0x03,0x5c,0x10,0x00,0x01,0xd0,0x00,0xe0,0x00,0xf0,0x00,0x03,0x00,0x00,0x90,0x00,0xa0,0x00,0x03,0x00,0xb8,0xff,0xc0,0x40,0x1a,0x1d,0x22,0x48,0x00,0x00,0x09,0x05,0x5a,0x00,0x06,0x01,0x00,0x06,0x10,0x06,0x02,0x06,0x04,0x5f,0x07,0x01,0x01,0x07,0x03,0x05,0x12,0x00,0x3f,0x3f,0x33,0x2f, -0x10,0xed,0x01,0x2f,0x5d,0x72,0xed,0x12,0x39,0x2f,0x2b,0x5d,0x71,0x72,0xed,0x31,0x30,0x01,0x11,0x33,0x11,0x21,0x11,0x23,0x11,0x03,0xc2,0xb4,0xfd,0x2b,0xbf,0x05,0x45,0x01,0x64,0xfe,0x00,0xfb,0x58,0x05,0x44,0x00,0x00,0x00,0x00,0x01,0x00,0xf4,0x00,0x00,0x04,0x06,0x05,0xcc,0x00,0x07,0x00,0x50,0x40,0x39,0x06,0x49,0x1f,0x03, -0x3f,0x03,0x02,0xb0,0x03,0x01,0x6f,0x03,0x7f,0x03,0x8f,0x03,0x03,0x00,0x03,0x01,0x03,0x03,0x09,0x00,0x46,0x2f,0x01,0x3f,0x01,0x4f,0x01,0xaf,0x01,0xbf,0x01,0xcf,0x01,0x06,0x3f,0x01,0xbf,0x01,0x02,0x01,0x40,0x2b,0x2e,0x48,0x01,0x04,0x00,0x07,0x50,0x02,0x0f,0x00,0x15,0x00,0x3f,0x3f,0xed,0x3f,0x01,0x2f,0x2b,0x5d,0x71,0xed, -0x12,0x39,0x2f,0x5d,0x5d,0x5d,0x71,0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x01,0xa8,0xb4,0x02,0x6f,0xa3,0xfd,0xa2,0x04,0x3a,0x01,0x92,0xfd,0xe0,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xcc,0x06,0xa9,0x12,0x26,0x00,0x3a,0x00,0x00,0x11,0x07,0x00,0x43,0xff,0xc5,0x00,0xf5,0x00,0x15,0xb4,0x01,0x33,0x05,0x26,0x01, -0xb8,0xff,0xc5,0xb4,0x34,0x37,0x13,0x32,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x15,0x00,0x00,0x04,0xb8,0x05,0xb4,0x12,0x26,0x00,0x5a,0x00,0x00,0x11,0x06,0x00,0x43,0x88,0x00,0x00,0x15,0xb4,0x01,0x2b,0x11,0x26,0x01,0xb8,0xff,0x88,0xb4,0x2c,0x2f,0x0f,0x2a,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00, -0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xcc,0x06,0xa9,0x12,0x26,0x00,0x3a,0x00,0x00,0x11,0x07,0x00,0x74,0x00,0x67,0x00,0xf5,0x00,0x13,0x40,0x0b,0x01,0x33,0x05,0x26,0x01,0x67,0x33,0x36,0x13,0x32,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x15,0x00,0x00,0x04,0xb8,0x05,0xb4,0x12,0x26,0x00,0x5a,0x00,0x00, -0x11,0x06,0x00,0x74,0x5e,0x00,0x00,0x13,0x40,0x0b,0x01,0x2b,0x11,0x26,0x01,0x5d,0x2b,0x2e,0x0f,0x2a,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0xcc,0x06,0x5e,0x12,0x26,0x00,0x3a,0x00,0x00,0x11,0x07,0x00,0x69,0x00,0x01,0x00,0xe3,0x00,0x17,0x40,0x0d,0x02,0x01,0x33,0x05,0x26,0x02,0x01,0x00, -0x37,0x35,0x13,0x32,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x15,0x00,0x00,0x04,0xb8,0x05,0x7b,0x12,0x26,0x00,0x5a,0x00,0x00,0x11,0x06,0x00,0x69,0x01,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x2b,0x11,0x26,0x02,0x01,0x00,0x2f,0x2d,0x0f,0x2a,0x25,0x01,0x2b,0x35,0x35,0x00,0x2b,0x35,0x35,0x00, -0xff,0xff,0x00,0x24,0x00,0x00,0x04,0xa8,0x06,0xa9,0x12,0x26,0x00,0x3c,0x00,0x00,0x11,0x07,0x00,0x43,0xff,0xba,0x00,0xf5,0x00,0x15,0xb4,0x01,0x09,0x05,0x26,0x01,0xb8,0xff,0xba,0xb4,0x0a,0x0d,0x04,0x08,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x42,0xfe,0x57,0x04,0x89,0x05,0xb4,0x12,0x26,0x00,0x5c,0x00,0x00, -0x11,0x06,0x00,0x43,0xc5,0x00,0x00,0x15,0xb4,0x01,0x20,0x11,0x26,0x01,0xb8,0xff,0xc6,0xb4,0x21,0x24,0x11,0x1f,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0x00,0x00,0x00,0x01,0x01,0x4e,0x01,0xd0,0x03,0x7e,0x02,0x70,0x00,0x03,0x00,0x1d,0x00,0xb0,0x00,0x2f,0xb0,0x01,0xcd,0xb0,0x01,0xcd,0x01,0xb0,0x04,0x2f,0xb0,0x00,0xdc,0xb0, -0x03,0xcd,0xb0,0x03,0x10,0xb0,0x05,0xd6,0x00,0x30,0x31,0x01,0x35,0x21,0x15,0x01,0x4e,0x02,0x30,0x01,0xd0,0xa0,0xa0,0x00,0x00,0x01,0x01,0x4e,0x01,0xd0,0x03,0x7e,0x02,0x70,0x00,0x03,0x00,0x1d,0x00,0xb0,0x00,0x2f,0xb0,0x01,0xcd,0xb0,0x01,0xcd,0x01,0xb0,0x04,0x2f,0xb0,0x00,0xdc,0xb0,0x03,0xcd,0xb0,0x03,0x10,0xb0,0x05,0xd6, -0x00,0x30,0x31,0x01,0x35,0x21,0x15,0x01,0x4e,0x02,0x30,0x01,0xd0,0xa0,0xa0,0x00,0x00,0x01,0x00,0xaa,0x01,0xc3,0x04,0x22,0x02,0x4c,0x00,0x03,0x00,0x0f,0xb5,0x02,0x00,0x00,0xb9,0x01,0xbc,0x00,0x3f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x13,0x35,0x21,0x15,0xaa,0x03,0x78,0x01,0xc3,0x89,0x89,0x00,0x01,0xff,0xf6,0x01,0xc3,0x04,0xd6, -0x02,0x4c,0x00,0x03,0x00,0x0f,0xb5,0x02,0x00,0x00,0xb9,0x01,0xbc,0x00,0x3f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x03,0x35,0x21,0x15,0x0a,0x04,0xe0,0x01,0xc3,0x89,0x89,0x00,0x01,0xff,0xf6,0x01,0xc3,0x04,0xd6,0x02,0x4c,0x00,0x03,0x00,0x0e,0xb4,0x00,0x02,0x00,0xb9,0x01,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x03,0x35,0x21,0x15, -0x0a,0x04,0xe0,0x01,0xc3,0x89,0x89,0x00,0x00,0x02,0xff,0xfb,0xfe,0x57,0x04,0xd1,0xff,0x84,0x00,0x03,0x00,0x07,0x00,0x27,0xb6,0x07,0x02,0x04,0x01,0x05,0xbb,0x04,0xb8,0xff,0xc0,0x40,0x0c,0x09,0x10,0x48,0x04,0x00,0xbb,0x01,0x40,0x09,0x0c,0x48,0x01,0x00,0x2f,0x2b,0xed,0x2f,0x2b,0xed,0x01,0x2f,0x33,0x2f,0x33,0x31,0x30,0x07, -0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x04,0xd6,0xfb,0x2a,0x04,0xd6,0xdc,0x60,0x60,0xcd,0x60,0x60,0x00,0x01,0x01,0x8d,0x03,0x5e,0x03,0x3f,0x05,0xcc,0x00,0x03,0x00,0x2a,0xb5,0x06,0x01,0x16,0x01,0x02,0x01,0xb8,0xff,0xf0,0x40,0x11,0x0e,0x11,0x48,0x03,0x9a,0x00,0x97,0x01,0x99,0x00,0x02,0x01,0x02,0x01,0x9c,0x00,0x00,0x00, -0x3f,0xed,0x01,0x2f,0x5d,0xed,0xfd,0xed,0x31,0x30,0x2b,0x5d,0x01,0x03,0x21,0x01,0x03,0x3f,0xa9,0xfe,0xf7,0x01,0x37,0x05,0xcc,0xfd,0x92,0x02,0x6e,0x00,0x00,0x00,0x00,0x01,0x01,0x8f,0x03,0x5e,0x03,0x41,0x05,0xcc,0x00,0x03,0x00,0x33,0x40,0x22,0x00,0x18,0x0e,0x11,0x48,0x09,0x00,0x19,0x00,0x02,0x09,0x02,0x19,0x02,0x02,0x02, -0x10,0x0e,0x11,0x48,0x01,0x99,0x02,0x97,0x03,0x9a,0x00,0x00,0x01,0x00,0x03,0x9c,0x01,0x00,0x00,0x3f,0xed,0x01,0x2f,0x5d,0xed,0xfd,0xed,0x31,0x30,0x2b,0x5d,0x5d,0x2b,0x01,0x13,0x21,0x01,0x01,0x8f,0xa9,0x01,0x09,0xfe,0xc9,0x03,0x5e,0x02,0x6e,0xfd,0x92,0x00,0x00,0x00,0x01,0x01,0x5d,0xfe,0x95,0x03,0x0f,0x01,0x03,0x00,0x03, -0x00,0x3b,0x40,0x28,0x00,0x18,0x0e,0x11,0x48,0x09,0x00,0x19,0x00,0x02,0x09,0x02,0x19,0x02,0x02,0x02,0x10,0x0e,0x11,0x48,0x01,0x99,0x02,0x97,0x03,0x9a,0x2f,0x00,0x01,0x00,0x00,0x10,0x00,0x02,0x00,0x00,0x9c,0x01,0x9b,0x04,0x00,0x10,0xf6,0xed,0x01,0x2f,0x5d,0x5d,0xed,0xfd,0xed,0x31,0x30,0x2b,0x5d,0x5d,0x2b,0x01,0x13,0x21, -0x01,0x01,0x5d,0xa9,0x01,0x09,0xfe,0xc9,0xfe,0x95,0x02,0x6e,0xfd,0x92,0x00,0x00,0x00,0x01,0x01,0x8e,0x03,0x5e,0x03,0x40,0x05,0xcc,0x00,0x03,0x00,0x37,0x40,0x10,0x00,0x18,0x0e,0x11,0x48,0x09,0x00,0x19,0x00,0x02,0x06,0x02,0x16,0x02,0x02,0x02,0xb8,0xff,0xf0,0x40,0x11,0x0e,0x11,0x48,0x00,0x9a,0x03,0x97,0x02,0x99,0x00,0x01, -0x01,0x01,0x00,0x9c,0x02,0x00,0x00,0x3f,0xed,0x01,0x2f,0x5d,0xed,0xfd,0xed,0x31,0x30,0x2b,0x5d,0x5d,0x2b,0x09,0x01,0x21,0x13,0x02,0xc5,0xfe,0xc9,0x01,0x09,0xa9,0x03,0x5e,0x02,0x6e,0xfd,0x92,0x00,0x00,0x00,0x02,0x00,0xb1,0x03,0x5e,0x04,0x1a,0x05,0xcc,0x00,0x03,0x00,0x07,0x00,0x57,0xb5,0x06,0x05,0x16,0x05,0x02,0x05,0xb8, -0xff,0xf0,0x40,0x09,0x0e,0x11,0x48,0x06,0x01,0x16,0x01,0x02,0x01,0xb8,0xff,0xf0,0x40,0x26,0x0e,0x11,0x48,0x07,0x9a,0x04,0x97,0x05,0x99,0x2f,0x06,0x9f,0x06,0x02,0x00,0x06,0x10,0x06,0x02,0x06,0x03,0x9a,0x00,0x97,0x01,0x99,0x00,0x02,0x10,0x02,0x02,0x02,0x05,0x07,0x01,0x9c,0x03,0x00,0x00,0x3f,0xed,0x33,0x32,0x01,0x2f,0x5d, -0xed,0xfd,0xed,0x2f,0x5d,0x5d,0xed,0xfd,0xed,0x31,0x30,0x2b,0x5d,0x2b,0x5d,0x01,0x03,0x21,0x01,0x21,0x03,0x21,0x01,0x02,0x63,0xa9,0xfe,0xf7,0x01,0x37,0x02,0x32,0xa9,0xfe,0xf7,0x01,0x37,0x05,0xcc,0xfd,0x92,0x02,0x6e,0xfd,0x92,0x02,0x6e,0x00,0x00,0x02,0x00,0xb2,0x03,0x5e,0x04,0x1b,0x05,0xcc,0x00,0x03,0x00,0x07,0x00,0x68, -0x40,0x4b,0x04,0x18,0x0e,0x11,0x48,0x09,0x04,0x19,0x04,0x02,0x09,0x06,0x19,0x06,0x02,0x06,0x10,0x0e,0x11,0x48,0x00,0x18,0x0e,0x11,0x48,0x09,0x00,0x19,0x00,0x02,0x09,0x02,0x19,0x02,0x02,0x02,0x10,0x0e,0x11,0x48,0x05,0x99,0x06,0x97,0x07,0x9a,0x00,0x04,0x10,0x04,0x90,0x04,0x03,0x04,0x01,0x99,0x02,0x97,0x03,0x9a,0x2f,0x00, -0x01,0x00,0x00,0x10,0x00,0x02,0x00,0x07,0x05,0x03,0x9c,0x01,0x00,0x00,0x3f,0xed,0x33,0x32,0x01,0x2f,0x5d,0x5d,0xed,0xfd,0xed,0x2f,0x5d,0xed,0xfd,0xed,0x31,0x30,0x2b,0x5d,0x5d,0x2b,0x2b,0x5d,0x5d,0x2b,0x01,0x13,0x21,0x01,0x21,0x13,0x21,0x01,0x02,0x69,0xa9,0x01,0x09,0xfe,0xc9,0xfd,0xce,0xa9,0x01,0x09,0xfe,0xc9,0x03,0x5e, -0x02,0x6e,0xfd,0x92,0x02,0x6e,0xfd,0x92,0x00,0x02,0x00,0xb2,0xfe,0x94,0x04,0x1b,0x01,0x02,0x00,0x03,0x00,0x07,0x00,0x6a,0x40,0x4c,0x04,0x18,0x0e,0x11,0x48,0x09,0x04,0x19,0x04,0x02,0x09,0x06,0x19,0x06,0x02,0x06,0x10,0x0e,0x11,0x48,0x00,0x18,0x0e,0x11,0x48,0x09,0x00,0x19,0x00,0x02,0x09,0x02,0x19,0x02,0x02,0x02,0x10,0x0e, -0x11,0x48,0x05,0x99,0x06,0x97,0x07,0x9a,0x00,0x04,0x10,0x04,0x90,0x04,0x03,0x04,0x01,0x99,0x02,0x97,0x03,0x9a,0x2f,0x00,0x01,0x00,0x00,0x10,0x00,0x02,0x00,0x04,0x00,0x9c,0x05,0x01,0x9b,0x08,0x00,0x10,0xf4,0x32,0xed,0x32,0x01,0x2f,0x5d,0x5d,0xed,0xfd,0xed,0x2f,0x5d,0xed,0xfd,0xed,0x31,0x30,0x2b,0x5d,0x5d,0x2b,0x2b,0x5d, -0x5d,0x2b,0x01,0x13,0x21,0x01,0x21,0x13,0x21,0x01,0x02,0x69,0xa9,0x01,0x09,0xfe,0xc9,0xfd,0xce,0xa9,0x01,0x09,0xfe,0xc9,0xfe,0x94,0x02,0x6e,0xfd,0x92,0x02,0x6e,0xfd,0x92,0x00,0x00,0x00,0x01,0x00,0xb6,0xff,0x2b,0x04,0x16,0x05,0xcb,0x00,0x0b,0x00,0x2c,0x40,0x18,0x0a,0xc0,0x08,0xbe,0x05,0xc0,0x00,0x07,0x10,0x07,0x02,0x07, -0x07,0x0c,0x0d,0x0b,0x04,0xc1,0x0a,0x05,0xc2,0x07,0x00,0x02,0x00,0x2f,0x3f,0xf6,0x32,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x5d,0xe6,0xfd,0xe6,0x31,0x30,0x01,0x03,0x23,0x03,0x05,0x35,0x05,0x03,0x33,0x03,0x25,0x15,0x02,0xad,0x0e,0x73,0x0e,0xfe,0x98,0x01,0x68,0x1a,0xc3,0x1a,0x01,0x69,0x03,0xdd,0xfb,0x4e,0x04,0xb2,0x11,0xa4, -0x13,0x01,0x6e,0xfe,0x92,0x13,0xa4,0x00,0x00,0x01,0x00,0xb6,0xff,0x2b,0x04,0x16,0x05,0xcb,0x00,0x15,0x00,0x42,0x40,0x24,0x00,0x11,0xc0,0x14,0x03,0x0f,0xbe,0x07,0x0c,0xc0,0x09,0x04,0x00,0x0e,0x10,0x0e,0x02,0x0e,0x0e,0x16,0x17,0x12,0x0b,0xc1,0x11,0x0c,0xc2,0x0e,0x00,0x00,0x07,0xc1,0x01,0x06,0xc2,0x04,0x00,0x2f,0xf6,0x32, -0xed,0x32,0x3f,0xf6,0x32,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x5d,0x33,0x33,0xe6,0x32,0xfd,0x32,0x32,0xe6,0x32,0x31,0x30,0x01,0x15,0x25,0x13,0x23,0x13,0x05,0x35,0x05,0x13,0x03,0x05,0x35,0x05,0x03,0x33,0x03,0x25,0x15,0x25,0x03,0x13,0x04,0x16,0xfe,0x97,0x1a,0xc3,0x1a,0xfe,0x98,0x01,0x68,0x22,0x22,0xfe,0x98,0x01,0x68,0x1a, -0xc3,0x1a,0x01,0x69,0xfe,0x97,0x22,0x22,0x01,0x2a,0xa4,0x13,0xfe,0x92,0x01,0x6e,0x13,0xa4,0x11,0x01,0x62,0x01,0x62,0x11,0xa4,0x13,0x01,0x6e,0xfe,0x92,0x13,0xa4,0x11,0xfe,0x9e,0xfe,0x9e,0x00,0x00,0x00,0x00,0x01,0x01,0x50,0x01,0x91,0x03,0x7b,0x03,0xbc,0x00,0x13,0x00,0x37,0x40,0x25,0x15,0x11,0x25,0x11,0x35,0x11,0x03,0x15, -0x0d,0x25,0x0d,0x35,0x0d,0x03,0x1a,0x07,0x2a,0x07,0x3a,0x07,0x03,0x1a,0x03,0x2a,0x03,0x3a,0x03,0x03,0x00,0x00,0x10,0x0a,0x01,0x0a,0x05,0x05,0x0f,0x00,0x2f,0x33,0x2f,0x01,0x2f,0x5d,0x33,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x03,0x7b,0x2c, -0x4d,0x66,0x3a,0x39,0x63,0x4b,0x2b,0x2b,0x4b,0x63,0x39,0x3a,0x66,0x4d,0x2c,0x02,0xaa,0x3a,0x66,0x4c,0x2d,0x2d,0x4c,0x66,0x3a,0x39,0x64,0x4a,0x2b,0x2b,0x4a,0x64,0x00,0x03,0x00,0x75,0x00,0x00,0x04,0x58,0x00,0xdb,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x3c,0x40,0x24,0x0b,0x98,0x08,0x04,0x03,0x98,0x00,0x07,0x98,0x10,0x04,0x50, -0x04,0x02,0x10,0x04,0x90,0x04,0xa0,0x04,0xc0,0x04,0xd0,0x04,0x05,0x04,0x04,0x0c,0x0d,0x09,0x05,0x01,0x9b,0x08,0x04,0x00,0x00,0x2f,0x32,0x32,0xed,0x32,0x32,0x11,0x12,0x01,0x39,0x2f,0x5d,0x71,0xed,0xd4,0xed,0x10,0xd4,0xed,0x31,0x30,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0xaa,0xae,0xfd,0xb9,0xac, -0xfd,0xb8,0xaf,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x04,0xcc,0x05,0x83,0x00,0x03,0x00,0x17,0x00,0x2b,0x00,0x3f,0x00,0x53,0x00,0x67,0x00,0x7b,0x00,0xed,0xb9,0x00,0x66,0xff,0xd8,0x40,0x0e,0x09,0x0e,0x48,0x60,0x28,0x09,0x0c,0x48,0x5c,0x28,0x09,0x0c,0x48,0x56,0xb8,0xff,0xd8,0xb3,0x09, -0x0e,0x48,0x3e,0xb8,0xff,0xd8,0x40,0x0e,0x09,0x0e,0x48,0x38,0x28,0x09,0x0c,0x48,0x34,0x28,0x09,0x0c,0x48,0x2e,0xb8,0xff,0xd8,0xb3,0x09,0x0e,0x48,0x16,0xb8,0xff,0xd8,0x40,0x0e,0x09,0x0e,0x48,0x10,0x28,0x09,0x0c,0x48,0x0c,0x28,0x09,0x0c,0x48,0x06,0xb8,0xff,0xd8,0x40,0x11,0x09,0x0e,0x48,0x4b,0x02,0x5b,0x02,0x6b,0x02,0x03, -0x02,0x03,0x00,0x01,0x03,0x10,0x01,0xb8,0xff,0xf0,0x40,0x44,0x03,0x40,0x09,0x0f,0x48,0x03,0x01,0x03,0x01,0x31,0x13,0x4a,0xb4,0x3b,0xb5,0x40,0xb4,0x31,0x31,0x68,0x13,0x72,0xb4,0x63,0xb5,0x59,0xb4,0x68,0x68,0x13,0x7d,0x18,0xb4,0x09,0xb5,0x22,0xb4,0x13,0x02,0x00,0x02,0x00,0x04,0x36,0x6d,0xb6,0x54,0xb7,0x77,0xb6,0x5e,0x19, -0x45,0xb6,0x2c,0xb7,0x4f,0xb6,0x36,0x19,0x27,0xb6,0x0e,0xb7,0x1d,0xb6,0x04,0x07,0x00,0x3f,0xed,0xf4,0xed,0x3f,0xed,0xf4,0xed,0x3f,0xed,0xf4,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x01,0x2f,0xed,0xf4,0xed,0x11,0x12,0x39,0x2f,0xfd,0xf4,0xed,0x11,0x12,0x39,0x2f,0xed,0xf4,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x38,0x38,0x11, -0x33,0x11,0x33,0x5d,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x13,0x23,0x01,0x33,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x13,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x13,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23, -0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x13,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x13,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x93,0x91,0x02,0x47,0x93,0xfe,0x10,0x2f,0x53, -0x3e,0x24,0x24,0x3f,0x55,0x30,0x31,0x55,0x3e,0x24,0x24,0x3f,0x56,0x95,0x0d,0x19,0x25,0x18,0x1a,0x28,0x1a,0x0d,0x0d,0x1b,0x27,0x19,0x17,0x24,0x1b,0x0e,0xa1,0x2f,0x53,0x3f,0x24,0x24,0x3f,0x55,0x30,0x31,0x55,0x3f,0x24,0x24,0x3f,0x57,0x95,0x0d,0x1a,0x25,0x18,0x1a,0x27,0x1b,0x0d,0x0e,0x1a,0x27,0x19,0x17,0x25,0x1b,0x0e,0x01, -0x96,0x2f,0x53,0x3e,0x24,0x24,0x3f,0x55,0x30,0x31,0x54,0x3f,0x24,0x24,0x3f,0x57,0x95,0x0d,0x1a,0x25,0x18,0x1a,0x28,0x1a,0x0d,0x0d,0x1b,0x27,0x19,0x17,0x25,0x1a,0x0f,0x01,0x8b,0x02,0x7f,0x01,0x79,0x1b,0x44,0x72,0x57,0x54,0x74,0x46,0x1f,0x1f,0x46,0x74,0x54,0x57,0x72,0x44,0x1b,0xfe,0xd8,0x37,0x48,0x2b,0x12,0x12,0x2c,0x48, -0x36,0x35,0x48,0x2c,0x13,0x13,0x2c,0x48,0xfe,0x2f,0x1b,0x44,0x72,0x57,0x54,0x74,0x46,0x1f,0x1f,0x46,0x74,0x54,0x57,0x72,0x44,0x1b,0xfe,0xd8,0x37,0x48,0x2b,0x12,0x12,0x2c,0x48,0x36,0x35,0x48,0x2c,0x13,0x13,0x2c,0x48,0x01,0x5d,0x1b,0x44,0x72,0x57,0x54,0x74,0x46,0x1f,0x1f,0x46,0x74,0x54,0x57,0x72,0x44,0x1b,0xfe,0xd8,0x37, -0x48,0x2b,0x12,0x12,0x2c,0x48,0x36,0x35,0x48,0x2c,0x13,0x13,0x2c,0x48,0x00,0x00,0x00,0x01,0x01,0xf6,0x03,0x4d,0x02,0xd6,0x05,0xcc,0x00,0x03,0x00,0x1c,0x40,0x0d,0x03,0x96,0x00,0x02,0x01,0x02,0x02,0x04,0x05,0x00,0x00,0x02,0x00,0x00,0x3f,0x33,0x2f,0x11,0x12,0x01,0x39,0x2f,0x5d,0xed,0x31,0x30,0x01,0x23,0x03,0x33,0x02,0xac, -0x8d,0x29,0xe0,0x03,0x4d,0x02,0x7f,0x00,0x00,0x02,0x01,0x15,0x03,0x4d,0x03,0xb6,0x05,0xcc,0x00,0x03,0x00,0x07,0x00,0x27,0x40,0x14,0x03,0x96,0x02,0x02,0x09,0x07,0x96,0x2f,0x06,0x01,0x00,0x06,0x01,0x06,0x05,0x00,0x00,0x06,0x02,0x00,0x00,0x3f,0x33,0x33,0x2f,0x32,0x01,0x2f,0x5d,0x5d,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01, -0x23,0x03,0x33,0x01,0x23,0x03,0x33,0x03,0x8c,0x8e,0x28,0xe0,0xfe,0x15,0x8d,0x29,0xe0,0x03,0x4d,0x02,0x7f,0xfd,0x81,0x02,0x7f,0x00,0x00,0x00,0x00,0x01,0x01,0x5a,0x00,0x8d,0x03,0x5d,0x03,0xac,0x00,0x08,0x00,0x2e,0x40,0x18,0x00,0xeb,0x08,0x03,0xeb,0x04,0xec,0x06,0xeb,0x4f,0x01,0x01,0x00,0x01,0x01,0x01,0x02,0x01,0x06,0x06, -0x03,0xef,0x00,0xee,0x00,0x3f,0xe4,0x39,0x3d,0x2f,0x33,0x33,0x01,0x18,0x2f,0x5d,0x5d,0xed,0xfd,0xed,0xd4,0xed,0x31,0x30,0x25,0x01,0x35,0x01,0x33,0x15,0x09,0x01,0x15,0x02,0xaa,0xfe,0xb0,0x01,0x50,0xb1,0xfe,0xb1,0x01,0x51,0x8d,0x01,0x6d,0x3f,0x01,0x73,0x1f,0xfe,0x8c,0xfe,0x91,0x1d,0x00,0x01,0x01,0x6e,0x00,0x8d,0x03,0x71, -0x03,0xac,0x00,0x08,0x00,0x30,0x40,0x1a,0x03,0xeb,0x08,0xec,0x01,0x06,0xeb,0x05,0x00,0xeb,0x00,0x01,0x60,0x01,0xd0,0x01,0x03,0x01,0x08,0x07,0x03,0x03,0x06,0xef,0x00,0xee,0x00,0x3f,0xe4,0x39,0x3d,0x2f,0x33,0x33,0x01,0x18,0x2f,0x5d,0xed,0xd4,0xed,0x10,0xfd,0xed,0x31,0x30,0x25,0x23,0x35,0x09,0x01,0x35,0x33,0x01,0x15,0x02, -0x20,0xb2,0x01,0x52,0xfe,0xb0,0xb0,0x01,0x51,0x8d,0x1d,0x01,0x6f,0x01,0x74,0x1f,0xfe,0x8d,0x3f,0x00,0x00,0x04,0x00,0xed,0x00,0x00,0x03,0xe0,0x05,0x44,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x3c,0x40,0x20,0x0b,0x0a,0x0f,0x98,0x00,0x0c,0x01,0x0c,0x0c,0x11,0x03,0x07,0x98,0x02,0x00,0x04,0x10,0x04,0x02,0x04,0x09,0x01, -0x01,0x02,0x0d,0x05,0x9d,0x0c,0x04,0x0a,0x02,0x03,0x00,0x3f,0x33,0x2f,0x33,0xed,0x32,0x11,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x33,0x32,0x31,0x30,0x01,0x23,0x03,0x33,0x03,0x35,0x33,0x15,0x01,0x23,0x03,0x33,0x03,0x35,0x33,0x15,0x01,0x9b,0x94,0x18,0xc4,0xc6,0xc2,0x02,0x19,0x94,0x18,0xc4, -0xc6,0xc2,0x01,0x8d,0x03,0xb7,0xfa,0xbc,0xc9,0xc9,0x01,0x8d,0x03,0xb7,0xfa,0xbc,0xc9,0xc9,0x00,0x00,0xff,0xff,0xff,0xfb,0x05,0xac,0x04,0xd1,0x06,0x0c,0x12,0x07,0x00,0x42,0x00,0x00,0x06,0x88,0x00,0x00,0x00,0x01,0x00,0xcc,0x00,0x00,0x03,0xfe,0x05,0x45,0x00,0x03,0x00,0x27,0xb7,0x02,0x03,0x10,0x03,0x03,0x05,0x00,0x01,0xb8, -0xff,0xf0,0x40,0x0a,0x00,0x01,0x10,0x01,0x02,0x01,0x02,0x06,0x00,0x18,0x00,0x3f,0x3f,0x01,0x2f,0x5d,0x38,0x33,0x12,0x39,0x2f,0x38,0x33,0x31,0x30,0x21,0x23,0x01,0x33,0x01,0x42,0x76,0x02,0xbf,0x73,0x05,0x45,0x00,0x00,0x00,0x00,0x01,0x01,0x65,0x02,0x07,0x03,0x83,0x04,0x9d,0x00,0x21,0x00,0x41,0xb9,0x00,0x1e,0xff,0xd8,0x40, -0x22,0x09,0x11,0x48,0x21,0xe0,0x00,0x00,0x23,0x17,0x0a,0xe0,0x00,0x0b,0x01,0x0b,0x17,0x06,0xe4,0x1d,0x1d,0x0f,0x11,0x01,0x11,0x40,0x0b,0x12,0x48,0x11,0x0b,0x10,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0x2f,0x2b,0x5d,0x33,0x2f,0xed,0x33,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x2b,0x01,0x11,0x34,0x2e,0x02, -0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x35,0x33,0x14,0x1e,0x02,0x15,0x33,0x3e,0x03,0x33,0x32,0x16,0x15,0x11,0x03,0x02,0x0d,0x1d,0x2f,0x23,0x48,0x55,0x80,0x01,0x01,0x02,0x77,0x02,0x02,0x02,0x02,0x0f,0x26,0x31,0x40,0x2a,0x6e,0x61,0x02,0x07,0x01,0x8e,0x2e,0x3d,0x25,0x10,0x64,0x5e,0xfe,0x94,0x01,0xff,0x14,0x2e, -0x28,0x1d,0x04,0x03,0x1b,0x22,0x23,0x0c,0x1c,0x2e,0x20,0x11,0x6c,0x79,0xfe,0x4f,0x00,0x01,0x00,0x22,0x00,0x00,0x04,0x4c,0x05,0x45,0x00,0x11,0x00,0x50,0x40,0x2b,0x06,0x02,0x06,0x02,0x0a,0x00,0x10,0x01,0x10,0x10,0x13,0x05,0x01,0x09,0x5a,0x0a,0x0c,0x0e,0x0c,0x0a,0x08,0x0c,0x60,0x05,0x0d,0x0d,0x09,0x04,0x5f,0x3f,0x01,0xef, -0x01,0x02,0x01,0x01,0x09,0x00,0x5f,0x0f,0x03,0x09,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x33,0x33,0x2f,0x10,0xed,0x32,0x32,0x12,0x39,0x2f,0x5d,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x01,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x15, -0x01,0x90,0x02,0xa4,0xfd,0x5c,0x01,0x87,0xfe,0x79,0xbf,0xaf,0xaf,0x03,0x7b,0x04,0xa9,0xfe,0x44,0x9e,0xcb,0x81,0xfe,0xfd,0x01,0x03,0x81,0x03,0xc1,0x9c,0x00,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x04,0x66,0x05,0x5a,0x00,0x3a,0x00,0xcc,0xb3,0x3a,0x03,0x01,0x18,0xb8,0xff,0xf0,0x40,0x67,0x09,0x0c,0x48,0x1f,0x6f,0x2f,0x2a,0x4f, -0x20,0x5f,0x20,0x02,0x20,0x2a,0x20,0x2a,0x3a,0x29,0x30,0x2d,0x6f,0x10,0x0e,0x70,0x13,0x01,0x13,0x0d,0x14,0x13,0x03,0x7f,0x10,0x8f,0x10,0x02,0x10,0x10,0x06,0x00,0x6f,0x3a,0x40,0x10,0x13,0x48,0x3a,0x3a,0x3c,0x34,0x6e,0x00,0x06,0x10,0x06,0x02,0x06,0x30,0x0e,0x73,0x0f,0x2d,0x0f,0x2c,0x12,0x73,0x13,0x29,0x13,0x6f,0x0f,0x9f, -0x0f,0xaf,0x0f,0xbf,0x0f,0x04,0x3f,0x13,0x01,0x0f,0x13,0x0f,0x13,0x34,0x25,0x73,0x1a,0x20,0x20,0x1a,0x07,0x07,0x34,0x73,0x06,0x10,0x3a,0x20,0x3a,0x02,0x3a,0xb8,0xff,0xc0,0xb3,0x16,0x26,0x48,0x3a,0xb8,0xff,0xc0,0xb6,0x10,0x13,0x48,0x3a,0x3a,0x06,0x18,0x00,0x3f,0x33,0x2f,0x2b,0x2b,0x5d,0x10,0xed,0x32,0x3f,0x33,0x2f,0x10, -0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x7c,0x2f,0x5d,0x18,0xed,0x12,0x39,0x7d,0x2f,0x2b,0x18,0xed,0x12,0x39,0x2f,0x5d,0x17,0x33,0x2f,0x5d,0x33,0x10,0xed,0x32,0x32,0x11,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0xed,0x31,0x30,0x00,0x2b,0x5d,0x01,0x0e,0x03,0x23,0x21,0x35, -0x3e,0x03,0x3d,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x03,0x23,0x22,0x06,0x1d,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x15,0x14,0x06,0x07,0x21,0x32,0x3e,0x02,0x37,0x04,0x66,0x09,0x39,0x59,0x73,0x43,0xfd,0x46,0x2c,0x42,0x2c,0x15,0xba,0xba,0xba,0xba,0x30,0x63,0x98, -0x67,0x46,0x7b,0x63,0x47,0x12,0xae,0x0a,0x27,0x35,0x41,0x24,0x72,0x70,0x01,0x98,0xfe,0x68,0x01,0x98,0xfe,0x68,0x58,0x51,0x01,0xe3,0x26,0x43,0x35,0x25,0x08,0x01,0x37,0x50,0x75,0x4d,0x25,0x9a,0x17,0x31,0x41,0x57,0x3c,0x19,0x8e,0x98,0x8d,0x4c,0x5c,0x93,0x66,0x37,0x1d,0x3a,0x56,0x39,0x39,0x20,0x33,0x24,0x14,0x73,0x7d,0x54, -0x8d,0x98,0x8e,0x07,0x70,0x95,0x2a,0x13,0x2a,0x43,0x30,0x00,0x00,0x04,0x00,0x2d,0xff,0xf6,0x04,0xb4,0x05,0x45,0x00,0x0c,0x00,0x3a,0x00,0x45,0x00,0x5b,0x00,0xf3,0xb5,0x0f,0x18,0x0d,0x11,0x48,0x27,0xb8,0xff,0xe8,0xb3,0x0d,0x11,0x48,0x26,0xb8,0xff,0xe8,0x40,0x09,0x0d,0x11,0x48,0x58,0x28,0x0a,0x19,0x48,0x0b,0xb8,0xff,0xe8, -0x40,0x7c,0x09,0x0e,0x48,0x2c,0x70,0x2d,0x2d,0x1c,0x00,0x6f,0x3b,0x4b,0x4f,0x70,0x5a,0x30,0x46,0x40,0x46,0x50,0x46,0x80,0x46,0x04,0x46,0x48,0x5a,0x4d,0x4d,0x54,0x14,0x70,0x13,0x13,0x33,0x70,0x24,0x70,0x54,0x80,0x54,0x02,0x2f,0x54,0x3f,0x54,0x02,0x40,0x3b,0x50,0x3b,0x90,0x3b,0x03,0x0f,0x3b,0x01,0x3b,0x5a,0x54,0x24,0x24, -0x54,0x5a,0x3b,0x04,0x08,0x0d,0x70,0x1c,0x40,0x14,0x18,0x48,0x1c,0x1c,0x5d,0x42,0x07,0x6f,0x08,0x4e,0x46,0x74,0x47,0x33,0x1c,0x10,0x30,0x74,0x29,0x2d,0x2d,0x29,0x29,0x4b,0x47,0x49,0x49,0x47,0x06,0x73,0x42,0x47,0x42,0x47,0x42,0x09,0x51,0x19,0x74,0x10,0x57,0x10,0x14,0x14,0x10,0x19,0x41,0x73,0x09,0x06,0x08,0x15,0x00,0x3f, -0x3f,0xed,0x3f,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x2f,0x11,0x33,0x33,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x39,0x10,0xed,0x32,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x2b,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x5d,0x5d,0x5d,0x5d,0x10,0xed,0x33,0x2f,0xed,0x11,0x33,0x2f,0x11,0x33, -0x2f,0x5d,0x10,0xed,0x32,0x10,0xed,0x11,0x33,0x2f,0xed,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x2b,0x2b,0x01,0x14,0x0e,0x02,0x2b,0x01,0x11,0x23,0x11,0x33,0x32,0x16,0x01,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x07,0x2e,0x01,0x23,0x22,0x06, -0x15,0x14,0x16,0x17,0x1e,0x03,0x01,0x34,0x2e,0x02,0x2b,0x01,0x11,0x33,0x32,0x36,0x13,0x35,0x33,0x37,0x33,0x15,0x33,0x15,0x23,0x11,0x14,0x33,0x32,0x37,0x15,0x0e,0x01,0x23,0x22,0x26,0x35,0x11,0x02,0x46,0x28,0x4f,0x76,0x4e,0x3d,0xa1,0xd2,0xa1,0xa6,0x02,0x6e,0x60,0x5a,0x4a,0x62,0x0b,0x6c,0x05,0x10,0x14,0x18,0x0c,0x1a,0x22, -0x2d,0x30,0x19,0x32,0x29,0x1a,0x1b,0x31,0x42,0x27,0x46,0x58,0x08,0x6d,0x05,0x23,0x13,0x1d,0x1a,0x35,0x33,0x16,0x2e,0x26,0x19,0xfc,0xf0,0x16,0x29,0x3b,0x24,0x38,0x40,0x4b,0x4b,0x19,0x5a,0x3b,0x47,0x95,0x95,0x44,0x2d,0x1b,0x17,0x32,0x1e,0x54,0x54,0x03,0xf7,0x4c,0x84,0x61,0x38,0xfd,0x72,0x05,0x45,0xa6,0xfc,0x0e,0x53,0x64, -0x53,0x50,0x11,0x1b,0x22,0x14,0x07,0x25,0x28,0x24,0x3e,0x21,0x11,0x29,0x33,0x3e,0x26,0x2b,0x3e,0x29,0x13,0x56,0x48,0x0c,0x2c,0x23,0x26,0x23,0x25,0x39,0x23,0x0f,0x26,0x31,0x3c,0x03,0x23,0x37,0x4a,0x2d,0x14,0xfe,0x65,0x72,0xfe,0x9c,0x61,0x8e,0x8e,0x61,0xfe,0x80,0x4e,0x07,0x61,0x05,0x06,0x52,0x4f,0x01,0x92,0x00,0x00,0x00, -0x00,0x01,0x00,0x5b,0xff,0xec,0x04,0x63,0x05,0x5a,0x00,0x3c,0x00,0x96,0x40,0x55,0x69,0x31,0x01,0x37,0x03,0x47,0x03,0x57,0x03,0x03,0x2b,0x2a,0x2a,0x0c,0x35,0x00,0x00,0x39,0x0b,0x0c,0x0c,0x1c,0x3e,0x33,0x01,0x01,0x39,0x6e,0x1c,0x20,0x00,0x17,0x01,0x17,0x17,0x1c,0x22,0x16,0x16,0x1c,0x40,0x0b,0x0e,0x48,0x1c,0x01,0x17,0x73, -0x18,0x3b,0x18,0x36,0x20,0x73,0x21,0x33,0x21,0x6f,0x18,0x01,0x3f,0x21,0x01,0x18,0x21,0x18,0x21,0x06,0x2e,0x73,0x25,0x2b,0x2b,0x25,0x07,0x06,0x73,0x11,0x30,0x0b,0x01,0x0b,0x0b,0x11,0x19,0x00,0x3f,0x33,0x2f,0x5d,0x10,0xed,0x3f,0x33,0x2f,0x10,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10, -0xed,0x32,0x01,0x2f,0x2b,0x33,0x2f,0x33,0x11,0x33,0x2f,0x5d,0x32,0x10,0xed,0x32,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x00,0x5d,0x5d,0x01,0x21,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x23,0x35,0x33,0x2e,0x01,0x35,0x34,0x36,0x37,0x23,0x35, -0x33,0x3e,0x01,0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x01,0x23,0x22,0x0e,0x02,0x07,0x21,0x15,0x21,0x0e,0x01,0x15,0x14,0x17,0x21,0x03,0x69,0xfe,0x35,0x08,0x2a,0x4d,0x74,0x50,0x34,0x57,0x4b,0x42,0x1e,0x4c,0x2a,0x58,0x60,0x6c,0x3e,0x78,0xb2,0x7b,0x47,0x0d,0x83,0x77,0x02,0x02,0x02,0x02,0x77,0x81,0x1d,0xfb,0xe5,0x38,0x64,0x5d, -0x57,0x2b,0x52,0x3a,0x8a,0x56,0x49,0x72,0x53,0x33,0x0b,0x01,0xcd,0xfe,0x25,0x01,0x01,0x03,0x01,0xda,0x01,0xcf,0x4f,0x7a,0x54,0x2b,0x12,0x1e,0x25,0x13,0x87,0x1c,0x2e,0x20,0x12,0x44,0x7d,0xb2,0x6d,0x90,0x17,0x22,0x12,0x1a,0x23,0x12,0x8e,0xea,0xec,0x0e,0x1c,0x2c,0x1e,0x8c,0x2a,0x3a,0x1c,0x47,0x7a,0x5f,0x8d,0x0e,0x2b,0x15, -0x2a,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0xf4,0x04,0xcd,0x05,0x50,0x00,0x13,0x00,0x27,0x00,0x4b,0x00,0x4f,0x00,0xc3,0x40,0x09,0x4a,0x34,0x01,0x38,0x28,0x09,0x0e,0x48,0x3e,0xb8,0xff,0xd8,0xb3,0x09,0x0e,0x48,0x11,0xb8,0xff,0xd8,0xb3,0x09,0x0e,0x48,0x0d,0xb8,0xff,0xd8,0x40,0x14,0x09,0x0e,0x48,0x07,0x28,0x09,0x0d,0x48, -0x03,0x28,0x09,0x0d,0x48,0x4e,0x4f,0x4c,0x4d,0x4f,0x10,0x4d,0xb8,0xff,0xf0,0x40,0x0f,0x0f,0x4f,0x01,0x00,0x4d,0x01,0x4f,0x4d,0x4f,0x4d,0x00,0x3b,0x1e,0xb4,0x0a,0xb8,0x01,0x05,0x40,0x10,0x00,0xb4,0x14,0x14,0x3b,0x51,0x45,0x31,0xb4,0x46,0x00,0x30,0x10,0x30,0x02,0x30,0xb8,0x01,0x05,0x40,0x27,0x28,0xb4,0x3b,0x4e,0x06,0x4c, -0x18,0x10,0x30,0x01,0x20,0x30,0x30,0x30,0x02,0x30,0x30,0x2d,0xb6,0x36,0xb8,0x49,0xb6,0x40,0x3f,0x46,0x01,0x46,0x46,0x40,0x07,0x19,0xb6,0x0f,0xb8,0x23,0xb6,0x05,0x19,0x00,0x3f,0xed,0xf4,0xed,0x3f,0x33,0x2f,0x5d,0x10,0xed,0xf4,0xed,0x33,0x2f,0x5d,0x71,0x3f,0x3f,0x01,0x2f,0xed,0xf4,0x5d,0x32,0xed,0x32,0x11,0x12,0x39,0x2f, -0xed,0xf4,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x38,0x38,0x11,0x33,0x11,0x33,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x01,0x14,0x1e,0x02,0x33, -0x32,0x36,0x37,0x17,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x01,0x23,0x22,0x06,0x13,0x23,0x01,0x33,0x04,0xcd,0x2b,0x4a,0x62,0x37,0x37,0x60,0x48,0x2a,0x29,0x49,0x62,0x39,0x36,0x61,0x49,0x2a,0x94,0x0f,0x1e,0x2c,0x1d,0x1f,0x2e,0x1e,0x0f,0x10,0x1e,0x2d,0x1d,0x1c,0x2d,0x1f,0x10, -0xfc,0x59,0x0f,0x20,0x2f,0x20,0x26,0x37,0x0b,0x8d,0x06,0x25,0x3c,0x54,0x36,0x48,0x68,0x43,0x21,0x2b,0x4a,0x65,0x39,0x35,0x50,0x3a,0x25,0x09,0x8f,0x0a,0x2b,0x2d,0x3f,0x3e,0xb0,0x76,0x02,0xbf,0x73,0x01,0x94,0x72,0x9e,0x63,0x2d,0x2c,0x63,0x9e,0x73,0x7a,0xa1,0x62,0x28,0x28,0x62,0xa1,0x7a,0x58,0x77,0x48,0x1f,0x20,0x48,0x77, -0x57,0x53,0x75,0x49,0x21,0x21,0x49,0x75,0x02,0x70,0x3f,0x71,0x54,0x31,0x52,0x57,0x09,0x36,0x63,0x4c,0x2d,0x3e,0x70,0x9a,0x5c,0x74,0x9f,0x63,0x2c,0x28,0x46,0x5e,0x37,0x0b,0x48,0x55,0x9c,0xfb,0xbd,0x05,0x45,0x00,0x00,0x00,0x00,0x02,0x01,0x1e,0xff,0xec,0x03,0x9d,0x05,0x95,0x00,0x29,0x00,0x39,0x00,0x9e,0xb9,0x00,0x1c,0xff, -0xd8,0xb3,0x09,0x0e,0x48,0x18,0xb8,0xff,0xd8,0x40,0x0c,0x09,0x0f,0x48,0x09,0x18,0x09,0x0d,0x48,0x1f,0x49,0x2a,0x04,0xb8,0x01,0x1a,0x40,0x1b,0x03,0x2a,0x03,0x2a,0x03,0x3b,0x35,0x25,0x48,0x0c,0x14,0x0c,0x10,0x10,0x00,0x0c,0x40,0x0c,0x50,0x0c,0x90,0x0c,0xa0,0x0c,0x05,0x0c,0x11,0xb8,0x01,0x18,0xb2,0x10,0x10,0x0d,0xb8,0x01, -0x18,0xb7,0x0f,0x14,0x1f,0x14,0x02,0x14,0x14,0x24,0xb8,0x01,0x18,0xb3,0x35,0x35,0x00,0x2f,0xb8,0x01,0x18,0x40,0x0d,0x0f,0x1a,0x3f,0x1a,0x4f,0x1a,0x6f,0x1a,0x7f,0x1a,0x05,0x1a,0x00,0xb8,0x01,0x19,0xb4,0x07,0x04,0x04,0x07,0x16,0x00,0x3f,0x33,0x2f,0x10,0xed,0x2f,0x5d,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0x5d,0xed,0x32,0x2f, -0xed,0x01,0x2f,0x5d,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x25,0x32,0x36,0x37,0x33,0x0e,0x01,0x23,0x22,0x2e,0x02,0x3d,0x01,0x0e,0x01,0x07,0x35,0x3e,0x01,0x37,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x14,0x1e,0x02,0x13, -0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x3e,0x03,0x02,0xc6,0x33,0x4e,0x11,0x45,0x14,0x82,0x6d,0x37,0x5b,0x42,0x24,0x20,0x42,0x22,0x23,0x42,0x1f,0x19,0x3b,0x62,0x48,0x34,0x55,0x3d,0x21,0x32,0x57,0x74,0x42,0x16,0x24,0x2d,0x7d,0x14,0x22,0x2f,0x1a,0x1f,0x28,0x16,0x08,0x31,0x54,0x3d,0x22,0x4e,0x68,0x6d,0x9a,0x9d,0x28, -0x4f,0x76,0x4d,0xaf,0x11,0x1c,0x0d,0x49,0x0e,0x1d,0x10,0x02,0x4b,0x3b,0x6d,0x52,0x31,0x2a,0x4e,0x6f,0x45,0x63,0xb4,0x98,0x76,0x26,0xf4,0x39,0x53,0x36,0x1a,0x04,0x14,0x34,0x55,0x3d,0x21,0x24,0x3d,0x51,0x2e,0xfe,0x05,0x21,0x68,0x83,0x97,0x00,0x00,0x04,0x00,0x16,0x00,0x00,0x04,0xb9,0x05,0x45,0x00,0x13,0x00,0x25,0x00,0x39, -0x00,0x3d,0x00,0x9d,0xb9,0x00,0x0a,0xff,0xe8,0x40,0x09,0x0d,0x11,0x48,0x00,0x18,0x0d,0x11,0x48,0x23,0xb8,0xff,0xe8,0xb3,0x09,0x0e,0x48,0x1f,0xb8,0xff,0xe8,0x40,0x4b,0x09,0x0e,0x48,0x1a,0x28,0x09,0x0e,0x48,0x17,0x18,0x09,0x0e,0x48,0x3d,0x3d,0x14,0x3a,0x3a,0x1c,0x00,0x11,0x5d,0x12,0x30,0xb4,0x1c,0x0f,0x12,0x01,0x12,0x40, -0x0b,0x0e,0x48,0x00,0x1c,0x01,0x12,0x1c,0x12,0x1c,0x08,0x14,0xb4,0x26,0x26,0x3f,0x0a,0x07,0x5d,0x08,0x35,0xb6,0x19,0x19,0x21,0x3b,0x60,0x3a,0x12,0x2b,0xb6,0x0f,0x21,0x01,0x21,0x0f,0x11,0x01,0x09,0x03,0x0b,0x00,0x08,0x12,0x00,0x3f,0x33,0x33,0x3f,0x33,0x33,0x3f,0x5d,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32, -0x12,0x39,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x5d,0x10,0xed,0x10,0xed,0x32,0x11,0x33,0x2f,0x11,0x33,0x2f,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x21,0x01,0x16,0x17,0x1e,0x01,0x15,0x11,0x23,0x11,0x33,0x01,0x26,0x27,0x2e,0x01,0x35,0x11,0x33,0x11,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x35,0x34,0x3e,0x02, -0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x01,0x35,0x21,0x15,0x01,0xaa,0xfe,0xf2,0x01,0x02,0x02,0x01,0x8c,0xc0,0x01,0x16,0x02,0x02,0x02,0x02,0x8d,0x02,0x48,0x19,0x3a,0x60,0x48,0x80,0x75,0x1d,0x3c,0x5e,0x42,0x46,0x5f,0x39,0x19,0x95,0x0b,0x17,0x24,0x19,0x1b,0x26, -0x18,0x0b,0x0b,0x16,0x23,0x18,0x1c,0x27,0x19,0x0b,0xfe,0xc4,0x01,0xb3,0x04,0x1a,0x2b,0x2d,0x26,0x59,0x27,0xfc,0xe4,0x05,0x45,0xfb,0xde,0x28,0x2e,0x27,0x62,0x33,0x03,0x10,0xfa,0xbb,0x02,0xb2,0x5e,0x92,0x63,0x34,0xca,0xbd,0x5c,0x90,0x65,0x35,0x35,0x64,0x91,0x5c,0x51,0x6b,0x40,0x1a,0x1b,0x40,0x6b,0x50,0x52,0x6c,0x3f,0x1a, -0x1a,0x3f,0x6c,0xfd,0xa0,0x88,0x88,0x00,0x00,0x02,0x00,0x04,0x03,0x4a,0x04,0xc8,0x05,0xcb,0x00,0x24,0x00,0x2c,0x00,0x88,0xb5,0x22,0x18,0x0e,0x11,0x48,0x14,0xb8,0xff,0xe8,0x40,0x4c,0x0e,0x11,0x48,0x09,0x08,0x1a,0x1a,0x24,0x14,0x11,0xc5,0x40,0x0f,0x12,0x1f,0x12,0x2f,0x12,0x03,0x0f,0x03,0x12,0x12,0x00,0x2c,0x0e,0x26,0x29, -0x27,0x0e,0x29,0x26,0xc4,0x00,0x27,0x01,0x27,0x22,0x00,0xc5,0x70,0x24,0x80,0x24,0x02,0x24,0x24,0x2e,0x25,0x29,0xc8,0x02,0x0f,0x13,0x22,0x0f,0x03,0x2a,0x00,0x0f,0x1a,0x1f,0x1a,0x02,0x0f,0x09,0x1f,0x09,0x02,0x00,0x09,0x12,0x1a,0x04,0x27,0xd1,0x00,0x3f,0x17,0x33,0x5d,0x5d,0x3f,0x17,0x33,0x11,0x33,0xed,0x32,0x11,0x01,0x33, -0x2f,0x5d,0xed,0x32,0x2f,0x5d,0xed,0xc6,0x2b,0x01,0x18,0x10,0x4d,0xe6,0x11,0x39,0x2f,0x5f,0x5e,0x5d,0x1a,0xed,0x32,0x12,0x39,0x11,0x33,0x33,0x31,0x30,0x2b,0x2b,0x01,0x11,0x35,0x06,0x07,0x0e,0x01,0x07,0x03,0x23,0x03,0x2e,0x01,0x27,0x26,0x27,0x15,0x11,0x23,0x11,0x33,0x13,0x1e,0x01,0x17,0x16,0x17,0x36,0x37,0x3e,0x03,0x35, -0x13,0x33,0x11,0x01,0x11,0x23,0x11,0x23,0x35,0x21,0x15,0x04,0x5f,0x02,0x04,0x03,0x05,0x02,0xbe,0x59,0x87,0x02,0x14,0x0c,0x0e,0x11,0x69,0x9c,0xb8,0x02,0x04,0x02,0x03,0x02,0x11,0x0d,0x06,0x0a,0x09,0x06,0x8b,0x98,0xfc,0x56,0x6f,0xab,0x01,0xc9,0x03,0x4a,0x01,0x60,0xa0,0x09,0x09,0x08,0x0e,0x05,0xfe,0x2d,0x01,0x56,0x04,0x36, -0x1f,0x24,0x2d,0x2b,0xfe,0x2b,0x02,0x81,0xfe,0x2f,0x03,0x0b,0x06,0x07,0x08,0x2a,0x22,0x0f,0x1c,0x16,0x10,0x01,0x01,0x56,0xfd,0x7f,0x02,0x25,0xfd,0xdb,0x02,0x25,0x5c,0x5c,0x00,0x00,0x00,0x01,0x00,0x3b,0x00,0x00,0x04,0x93,0x05,0x5a,0x00,0x39,0x00,0xda,0x40,0x78,0x79,0x15,0x89,0x15,0x02,0x76,0x25,0x86,0x25,0x02,0x6b,0x09, -0x7b,0x09,0x8b,0x09,0x03,0x6b,0x31,0x7b,0x31,0x8b,0x31,0x03,0x66,0x25,0x76,0x25,0x86,0x25,0x03,0x66,0x15,0x76,0x15,0x86,0x15,0x03,0x46,0x38,0x56,0x38,0x02,0x46,0x02,0x56,0x02,0x02,0x39,0x1b,0x01,0x39,0x1f,0x01,0x30,0x5c,0x28,0x0a,0x5c,0x12,0x20,0x12,0x30,0x12,0x50,0x12,0x60,0x12,0x70,0x12,0x05,0x4f,0x12,0x01,0xdf,0x28, -0xef,0x28,0xff,0x28,0x03,0x00,0x28,0x10,0x28,0x20,0x28,0x03,0x70,0x28,0x80,0x28,0x02,0x28,0x12,0x28,0x12,0x35,0x18,0x10,0x10,0x05,0x5a,0x80,0x18,0x90,0x18,0xd0,0x18,0xe0,0x18,0xf0,0x18,0x05,0x90,0x18,0xa0,0x18,0x02,0x18,0xb8,0xff,0xc0,0x40,0x23,0x09,0x0c,0x48,0x18,0x18,0x35,0x3b,0x2a,0x2a,0x22,0x5a,0x2f,0x35,0x3f,0x35, -0x02,0x35,0x40,0x21,0x24,0x48,0x35,0x13,0x27,0x27,0x10,0x2a,0x5f,0x12,0x29,0x12,0x1d,0x5f,0x00,0x04,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x32,0x2f,0x33,0x01,0x2f,0x2b,0x5d,0xed,0x33,0x2f,0x11,0x12,0x39,0x2f,0x2b,0x5d,0x71,0xed,0x32,0x2f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x71,0x71,0x71,0x72,0x10,0xed,0x10,0xed,0x31,0x30, -0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x36,0x37,0x3e,0x01,0x3b,0x01,0x15,0x21,0x35,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x15,0x21,0x35,0x33,0x32,0x16,0x17,0x16,0x17,0x2e,0x03,0x35,0x34,0x3e,0x02,0x02,0x67,0x7c,0xc5, -0x8a,0x49,0x2d,0x55,0x7e,0x51,0x20,0x1e,0x1a,0x36,0x13,0xc8,0xfe,0x1d,0x4b,0x66,0x3d,0x1a,0x27,0x53,0x7f,0x57,0x58,0x80,0x52,0x28,0x1a,0x3d,0x66,0x4b,0xfe,0x1d,0xc8,0x13,0x36,0x1a,0x1e,0x20,0x51,0x7e,0x55,0x2d,0x49,0x8a,0xc5,0x05,0x5a,0x55,0x9d,0xdd,0x88,0x5f,0xb3,0xa0,0x8a,0x36,0x03,0x03,0x02,0x03,0x9c,0xe0,0x37,0x7d, -0x88,0x90,0x4a,0x69,0xa8,0x77,0x40,0x40,0x77,0xa8,0x69,0x4a,0x90,0x88,0x7d,0x37,0xe0,0x9c,0x03,0x02,0x03,0x03,0x36,0x8a,0xa0,0xb3,0x5f,0x88,0xdd,0x9d,0x55,0x00,0x00,0x02,0x00,0x5f,0xff,0xde,0x04,0x83,0x04,0x48,0x00,0x22,0x00,0x2f,0x00,0x5a,0xb6,0x1d,0x8f,0x1e,0x01,0x1e,0x1e,0x11,0xb8,0x01,0x1b,0x40,0x10,0x00,0x23,0x10, -0x23,0x60,0x23,0x70,0x23,0x80,0x23,0x05,0x23,0x23,0x31,0x12,0x2f,0xb8,0x01,0x1b,0xb7,0x1f,0x05,0x01,0x05,0x1d,0x1d,0x18,0x12,0xb8,0x01,0x18,0xb3,0x2f,0x2f,0x18,0x29,0xb8,0x01,0x18,0xb2,0x0c,0x10,0x18,0xb8,0x01,0x18,0xb1,0x00,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xed,0x32,0x12, -0x39,0x2f,0x5d,0xed,0x32,0x2f,0x5d,0x33,0x31,0x30,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x33,0x32,0x1e,0x02,0x15,0x21,0x11,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x13,0x11,0x2e,0x03,0x23,0x22,0x0e,0x02,0x07,0x11,0x02,0x72,0x82,0xc6,0x86,0x45,0x2c,0x4c,0x66,0x76,0x80,0x3f,0x71,0xc1,0x8e,0x51,0xfc,0xc5,0x16, -0x40,0x4e,0x58,0x2e,0x4b,0x74,0x5d,0x4d,0x22,0x48,0x24,0x53,0x6e,0x8f,0xcb,0x13,0x3b,0x4c,0x5d,0x35,0x33,0x57,0x4a,0x3c,0x18,0x22,0x5d,0x9d,0xcc,0x6f,0x62,0xa0,0x7d,0x5d,0x3c,0x1d,0x4f,0x92,0xd1,0x83,0xfe,0x9c,0x18,0x2d,0x23,0x14,0x20,0x3c,0x57,0x37,0x2a,0x39,0x64,0x4c,0x2c,0x02,0x8a,0x01,0x15,0x14,0x2a,0x22,0x16,0x13, -0x20,0x2a,0x18,0xfe,0xea,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0xff,0xf4,0x04,0xc3,0x05,0x45,0x10,0x27,0x02,0x9a,0xfe,0xdc,0x00,0x00,0x10,0x26,0x02,0x1e,0xeb,0x00,0x11,0x07,0x02,0xa0,0x01,0xbd,0xfd,0xb4,0x00,0x24,0x40,0x14,0x04,0x03,0x02,0x42,0x18,0x04,0x03,0x02,0x30,0x42,0x01,0x2f,0x42,0x01,0x42,0x01,0x60,0x14,0x01,0x14, -0x11,0x5d,0x35,0x11,0x5d,0x5d,0x35,0x35,0x35,0x00,0x3f,0x35,0x35,0x35,0x00,0x00,0xff,0xff,0x00,0x09,0xff,0xf4,0x04,0xc3,0x05,0x51,0x10,0x27,0x02,0x9c,0xff,0x1f,0x00,0x00,0x10,0x26,0x02,0x1e,0xfc,0x00,0x11,0x07,0x02,0xa0,0x01,0xbd,0xfd,0xb4,0x00,0x24,0x40,0x14,0x04,0x03,0x02,0x63,0x18,0x04,0x03,0x02,0x30,0x42,0x01,0x2f, -0x42,0x01,0x42,0x00,0x40,0x00,0x01,0x00,0x11,0x5d,0x35,0x11,0x5d,0x5d,0x35,0x35,0x35,0x00,0x3f,0x35,0x35,0x35,0x00,0x00,0xff,0xff,0x00,0x25,0xff,0xf4,0x04,0xc3,0x05,0x45,0x10,0x27,0x02,0x9e,0xff,0x21,0x00,0x00,0x10,0x26,0x02,0x1e,0x08,0x00,0x11,0x07,0x02,0xa0,0x01,0xbd,0xfd,0xb4,0x00,0x28,0x40,0x17,0x04,0x03,0x02,0x4f, -0x18,0x04,0x03,0x02,0x30,0x42,0x01,0x2f,0x42,0x01,0x42,0x00,0x40,0x00,0x01,0x30,0x00,0x01,0x00,0x11,0x5d,0x5d,0x35,0x11,0x5d,0x5d,0x35,0x35,0x35,0x00,0x3f,0x35,0x35,0x35,0x00,0x00,0xff,0xff,0x00,0x39,0xff,0xf4,0x04,0xa3,0x05,0x45,0x10,0x27,0x02,0x9f,0xff,0x3d,0x00,0x00,0x10,0x26,0x02,0x1e,0xb5,0x00,0x11,0x07,0x02,0xa0, -0x01,0x9d,0xfd,0xb4,0x00,0x30,0x40,0x1c,0x04,0x03,0x02,0x3e,0x18,0x04,0x03,0x02,0x2f,0x42,0x01,0x42,0x01,0x5f,0x0f,0x01,0x0f,0x00,0x60,0x00,0x01,0x50,0x00,0x01,0x40,0x00,0x01,0x00,0x11,0x5d,0x5d,0x5d,0x35,0x11,0x5d,0x35,0x11,0x5d,0x35,0x35,0x35,0x00,0x3f,0x35,0x35,0x35,0x00,0x00,0x00,0x01,0x00,0x08,0x01,0x37,0x04,0xc4, -0x03,0x17,0x00,0x11,0x00,0x1b,0x00,0xb0,0x00,0x2f,0xb0,0x0f,0xcd,0x01,0xb0,0x12,0x2f,0xb0,0x13,0xd6,0x00,0xb1,0x0f,0x00,0x11,0x12,0xb1,0x07,0x08,0x39,0x39,0x30,0x31,0x13,0x1e,0x01,0x17,0x23,0x2e,0x01,0x27,0x35,0x3e,0x01,0x37,0x33,0x0e,0x01,0x07,0x21,0x15,0xe7,0x1d,0x3b,0x1f,0x48,0x3a,0x82,0x52,0x52,0x82,0x3a,0x48,0x1f, -0x3b,0x1d,0x03,0xdd,0x01,0xfc,0x22,0x62,0x41,0x44,0x70,0x2a,0x24,0x2a,0x70,0x44,0x41,0x62,0x22,0x56,0x00,0x01,0x01,0x76,0xff,0xc3,0x03,0x56,0x04,0x7f,0x00,0x11,0x00,0x1f,0x40,0x0e,0x0c,0x10,0xac,0x03,0x11,0x10,0x0f,0x00,0x0c,0x6f,0x03,0x01,0x03,0x07,0x00,0x2f,0xc4,0x5d,0x32,0x39,0x39,0x2f,0x01,0x2f,0xce,0xfd,0xce,0x31, -0x30,0x01,0x0e,0x01,0x07,0x35,0x3e,0x01,0x37,0x33,0x1e,0x01,0x17,0x15,0x2e,0x01,0x27,0x11,0x23,0x02,0x3b,0x22,0x62,0x41,0x44,0x70,0x2a,0x24,0x2a,0x70,0x44,0x41,0x62,0x22,0x56,0x03,0xa0,0x1d,0x3b,0x1f,0x48,0x3a,0x82,0x52,0x52,0x82,0x3a,0x48,0x1f,0x3b,0x1d,0xfc,0x23,0x00,0x00,0x00,0x00,0x01,0x00,0x08,0x01,0x35,0x04,0xc4, -0x03,0x15,0x00,0x11,0x00,0x1b,0x00,0xb0,0x10,0x2f,0xb0,0x11,0xcd,0x01,0xb0,0x12,0x2f,0xb0,0x13,0xd6,0x00,0xb1,0x11,0x10,0x11,0x12,0xb1,0x07,0x08,0x39,0x39,0x30,0x31,0x01,0x2e,0x01,0x27,0x33,0x1e,0x01,0x17,0x15,0x0e,0x01,0x07,0x23,0x3e,0x01,0x37,0x21,0x35,0x03,0xe5,0x1d,0x3b,0x1f,0x48,0x3a,0x82,0x52,0x52,0x82,0x3a,0x48, -0x1f,0x3b,0x1d,0xfc,0x23,0x02,0x50,0x22,0x62,0x41,0x44,0x70,0x2a,0x24,0x2a,0x70,0x44,0x41,0x62,0x22,0x56,0x00,0x00,0x00,0x00,0x01,0x01,0x76,0xff,0xc3,0x03,0x56,0x04,0x7f,0x00,0x11,0x00,0x1f,0x40,0x0e,0x03,0x00,0xac,0x0c,0x0f,0x10,0x0f,0x00,0x03,0x60,0x0c,0x01,0x0c,0x08,0x00,0x2f,0xc4,0x5d,0x32,0x39,0x39,0x2f,0x01,0x2f, -0xcd,0xfd,0xcd,0x31,0x30,0x25,0x3e,0x01,0x37,0x15,0x0e,0x01,0x07,0x23,0x2e,0x01,0x27,0x35,0x1e,0x01,0x17,0x11,0x33,0x02,0x91,0x22,0x62,0x41,0x44,0x70,0x2a,0x24,0x2a,0x70,0x44,0x41,0x62,0x22,0x56,0xa2,0x1d,0x3b,0x1f,0x48,0x3a,0x82,0x52,0x52,0x82,0x3a,0x48,0x1f,0x3b,0x1d,0x03,0xdd,0x00,0x01,0x00,0x08,0x01,0x35,0x04,0xc4, -0x03,0x15,0x00,0x1f,0x00,0x1e,0x00,0xb0,0x00,0x2f,0xb0,0x0f,0xcd,0x01,0xb0,0x20,0x2f,0xb0,0x21,0xd6,0x00,0xb1,0x0f,0x00,0x11,0x12,0xb3,0x07,0x08,0x17,0x18,0x24,0x17,0x39,0x30,0x31,0x13,0x1e,0x01,0x17,0x23,0x2e,0x01,0x27,0x35,0x3e,0x01,0x37,0x33,0x0e,0x01,0x07,0x21,0x2e,0x01,0x27,0x33,0x1e,0x01,0x17,0x15,0x0e,0x01,0x07, -0x23,0x3e,0x01,0x37,0xe7,0x1d,0x3b,0x1f,0x48,0x3a,0x82,0x52,0x52,0x82,0x3a,0x48,0x1f,0x3b,0x1d,0x02,0xfe,0x1d,0x3b,0x1f,0x48,0x3a,0x82,0x52,0x52,0x82,0x3a,0x48,0x1f,0x3b,0x1d,0x01,0xfa,0x22,0x62,0x41,0x44,0x70,0x2a,0x24,0x2a,0x70,0x44,0x41,0x62,0x22,0x22,0x62,0x41,0x44,0x70,0x2a,0x24,0x2a,0x70,0x44,0x41,0x62,0x22,0x00, -0x00,0x01,0x01,0x76,0xff,0xc3,0x03,0x56,0x04,0x7f,0x00,0x1f,0x00,0x2f,0x40,0x17,0x14,0x0b,0x10,0xac,0x1b,0x03,0x1f,0x1f,0x10,0x13,0x60,0x1c,0x01,0x1c,0x18,0x00,0x0f,0x0c,0x6f,0x03,0x01,0x03,0x07,0x00,0x2f,0xcc,0x5d,0x32,0x39,0x39,0x2f,0xcc,0x5d,0x32,0x39,0x39,0x01,0x2f,0xce,0x32,0xfd,0xcc,0x32,0x31,0x30,0x01,0x0e,0x01, -0x07,0x35,0x3e,0x01,0x37,0x33,0x1e,0x01,0x17,0x15,0x2e,0x01,0x27,0x11,0x3e,0x01,0x37,0x15,0x0e,0x01,0x07,0x23,0x2e,0x01,0x27,0x35,0x1e,0x01,0x17,0x02,0x3b,0x22,0x62,0x41,0x44,0x70,0x2a,0x24,0x2a,0x70,0x44,0x41,0x62,0x22,0x22,0x62,0x41,0x44,0x70,0x2a,0x24,0x2a,0x70,0x44,0x41,0x62,0x22,0x03,0xa0,0x1d,0x3b,0x1f,0x48,0x3a, -0x82,0x52,0x52,0x82,0x3a,0x48,0x1f,0x3b,0x1d,0xfd,0x02,0x1d,0x3b,0x1f,0x48,0x3a,0x82,0x52,0x52,0x82,0x3a,0x48,0x1f,0x3b,0x1d,0x00,0x00,0x00,0x00,0x02,0x01,0x76,0xff,0x48,0x03,0x56,0x04,0x7f,0x00,0x03,0x00,0x23,0x00,0x3e,0x40,0x1f,0x07,0x00,0x20,0x23,0x10,0x01,0x17,0x14,0xac,0x23,0x23,0x14,0x17,0x60,0x20,0x01,0x20,0x1c, -0x03,0xaf,0x00,0x00,0x1c,0x04,0x13,0x10,0x6f,0x07,0x01,0x07,0x0b,0x00,0x2f,0xcc,0x5d,0x32,0x39,0x39,0x2f,0x33,0x2f,0xed,0x10,0xcc,0x5d,0x32,0x39,0x39,0x01,0x2f,0xfd,0xcd,0x32,0x32,0x10,0xcd,0x32,0x32,0x31,0x30,0x05,0x21,0x15,0x21,0x13,0x0e,0x01,0x07,0x35,0x3e,0x01,0x37,0x33,0x1e,0x01,0x17,0x15,0x2e,0x01,0x27,0x11,0x3e, -0x01,0x37,0x15,0x0e,0x01,0x07,0x23,0x2e,0x01,0x27,0x35,0x1e,0x01,0x17,0x01,0x76,0x01,0xe0,0xfe,0x20,0xc5,0x22,0x62,0x41,0x44,0x70,0x2a,0x24,0x2a,0x70,0x44,0x41,0x62,0x22,0x22,0x62,0x41,0x44,0x70,0x2a,0x24,0x2a,0x70,0x44,0x41,0x62,0x22,0x68,0x50,0x04,0x58,0x1d,0x3b,0x1f,0x48,0x3a,0x82,0x52,0x52,0x82,0x3a,0x48,0x1f,0x3b, -0x1d,0xfd,0x02,0x1d,0x3b,0x1f,0x48,0x3a,0x82,0x52,0x52,0x82,0x3a,0x48,0x1f,0x3b,0x1d,0x00,0x00,0x00,0x00,0x02,0x00,0x69,0xff,0xe5,0x04,0x63,0x05,0xc5,0x00,0x2d,0x00,0x43,0x00,0x70,0x40,0x48,0x25,0x14,0x35,0x14,0x02,0x0b,0x41,0x1b,0x41,0x02,0x09,0x0c,0x19,0x0c,0x02,0x25,0x25,0x0f,0x29,0x2e,0x01,0x2e,0x10,0x0d,0x16,0x48, -0x2e,0x19,0x00,0x46,0x00,0x1d,0x10,0x1d,0x02,0x1d,0x1d,0x45,0x3a,0x47,0x0f,0x33,0x51,0x2e,0x19,0x19,0x7f,0x16,0x8f,0x16,0x9f,0x16,0xbf,0x16,0xcf,0x16,0xdf,0x16,0x06,0x16,0x16,0x29,0x3f,0x50,0x0a,0x16,0x25,0x25,0x20,0x50,0x29,0x00,0x00,0x3f,0xed,0x33,0x2f,0x3f,0xed,0x11,0x39,0x2f,0x5d,0x33,0x11,0x33,0xed,0x01,0x2f,0xed, -0x12,0x39,0x2f,0x5d,0xed,0x33,0x33,0x2b,0x5d,0x12,0x39,0x2f,0x31,0x30,0x00,0x5d,0x01,0x5d,0x00,0x5d,0x01,0x14,0x0e,0x02,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x33,0x32,0x16,0x17,0x33,0x3e,0x01,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x37,0x3e,0x01,0x33,0x32,0x1e,0x02,0x03,0x2e,0x03,0x23,0x22,0x0e,0x04, -0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x04,0x63,0x08,0x0e,0x15,0x0d,0x22,0x6e,0x93,0xb8,0x6e,0x69,0x90,0x59,0x27,0x1a,0x36,0x55,0x78,0x9a,0x61,0x64,0x9a,0x25,0x04,0x02,0x03,0x92,0x91,0x1f,0x44,0x41,0x3d,0x19,0x27,0x2e,0x7f,0x49,0x7b,0xa8,0x67,0x2c,0xd9,0x0a,0x2c,0x3f,0x4e,0x2d,0x41,0x6a,0x52,0x3c,0x27,0x13,0x1a,0x34, -0x4f,0x36,0x51,0x85,0x66,0x45,0x03,0xaa,0x2e,0x67,0x6b,0x6a,0x30,0x80,0xce,0x90,0x4d,0x3f,0x6b,0x8a,0x4b,0x3c,0x8f,0x90,0x86,0x68,0x3f,0x63,0x54,0x19,0x3a,0x22,0xc4,0xd1,0x0b,0x13,0x1c,0x11,0x93,0x17,0x27,0x58,0x95,0xc3,0xfe,0x93,0x2a,0x4a,0x37,0x20,0x33,0x54,0x6e,0x74,0x74,0x30,0x35,0x5b,0x43,0x26,0x63,0xa1,0xcd,0x00, -0x00,0x02,0x00,0x0c,0x00,0x00,0x04,0xc0,0x05,0x81,0x00,0x05,0x00,0x12,0x00,0x7b,0x40,0x4e,0x29,0x02,0x01,0x06,0x03,0x01,0x03,0x01,0x52,0x12,0x0b,0x12,0x5e,0x04,0x03,0x14,0x04,0x04,0x03,0x02,0x01,0x52,0x11,0x0b,0x11,0x5e,0x01,0x02,0x14,0x01,0x01,0x02,0x0b,0x01,0x04,0x5a,0x6f,0x12,0x7f,0x12,0x8f,0x12,0x03,0x10,0x12,0x01, -0x12,0x12,0x14,0x11,0x5a,0x7f,0x01,0x8f,0x01,0x02,0x01,0x5a,0x0b,0x01,0x4b,0x0b,0x01,0x0b,0x03,0x02,0x04,0x12,0x04,0x01,0x01,0x04,0x12,0x03,0x11,0x5f,0x00,0x12,0x00,0x3f,0xed,0x17,0x32,0x2f,0x2f,0x2f,0x3f,0x33,0x33,0x5d,0x5d,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x5d,0xed,0x11,0x39,0x87,0x10,0x2b,0x87,0x2b,0xc4,0x87, -0x18,0x10,0x2b,0x87,0x2b,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x33,0x35,0x01,0x33,0x01,0x15,0x01,0x2e,0x03,0x27,0x0e,0x03,0x07,0x01,0x21,0x0c,0x01,0xdd,0xf4,0x01,0xe3,0xfe,0x06,0x11,0x22,0x1b,0x12,0x02,0x01,0x13,0x1c,0x22,0x10,0xfe,0xca,0x03,0x34,0x91,0x04,0xf0,0xfb,0x12,0x93,0x03,0xe5,0x2e,0x5f,0x4e,0x36,0x04,0x04,0x36,0x4e, -0x5f,0x2e,0xfc,0xb7,0x00,0x01,0x00,0x69,0xfe,0x39,0x04,0x62,0x05,0x45,0x00,0x07,0x00,0x45,0x40,0x0b,0x07,0x5a,0xd0,0x00,0xe0,0x00,0x02,0x00,0x00,0x01,0x00,0xb8,0xff,0xc0,0xb3,0x1d,0x20,0x48,0x00,0xb8,0xff,0xc0,0x40,0x17,0x15,0x19,0x48,0x00,0x00,0x09,0x03,0x5a,0x04,0x40,0x15,0x1d,0x48,0x10,0x04,0x01,0x04,0x02,0x5f,0x05, -0x03,0x04,0x00,0x00,0x2f,0x32,0x3f,0xed,0x01,0x2f,0x5d,0x2b,0xed,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0x71,0xed,0x31,0x30,0x01,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x03,0xaa,0xfd,0x7e,0xbf,0x03,0xf9,0xfe,0x39,0x06,0x6a,0xf9,0x96,0x07,0x0c,0xf8,0xf4,0x00,0x01,0x00,0x1b,0xfe,0x39,0x04,0xb1,0x05,0x45,0x00,0x0b,0x00,0x79,0x40,0x0d, -0x29,0x01,0x69,0x01,0x79,0x01,0x89,0x01,0x04,0x24,0x03,0x01,0x03,0xb8,0xff,0xe0,0x40,0x1d,0x0e,0x11,0x48,0x08,0x5b,0x02,0x40,0x0e,0x11,0x48,0x02,0x02,0x05,0x01,0x07,0x5b,0x9f,0x05,0xaf,0x05,0xbf,0x05,0x03,0x03,0x05,0x03,0x05,0x01,0x0a,0xb8,0xff,0xc0,0x40,0x1b,0x09,0x25,0x48,0x0a,0x0a,0x0d,0x09,0x5b,0x01,0x40,0x0b,0x25, -0x48,0x01,0x03,0x07,0x5f,0x04,0x08,0x02,0x02,0x04,0x03,0x01,0x09,0x5f,0x00,0x00,0x2f,0xed,0x32,0x3f,0x39,0x19,0x2f,0x33,0x18,0x10,0xed,0x32,0x01,0x2f,0x2b,0xed,0x12,0x39,0x2f,0x2b,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xed,0x11,0x12,0x39,0x2f,0x2b,0xed,0x31,0x30,0x00,0x2b,0x5d,0x5d,0x13,0x35,0x09,0x01,0x35,0x21,0x15,0x21,0x09, -0x01,0x21,0x15,0x1b,0x02,0x7b,0xfd,0x95,0x04,0x42,0xfc,0xb2,0x02,0x48,0xfd,0xa8,0x03,0xa2,0xfe,0x39,0x6d,0x03,0x22,0x03,0x13,0x6a,0x98,0xfd,0x1d,0xfd,0x07,0x98,0x00,0x01,0x00,0x75,0x02,0x60,0x04,0x58,0x02,0xf2,0x00,0x03,0x00,0x18,0x40,0x0c,0x03,0x05,0x00,0x00,0x10,0x00,0x02,0x00,0x00,0xad,0x01,0xb3,0x00,0x3f,0xed,0x01, -0x2f,0x5d,0x10,0xce,0x31,0x30,0x13,0x35,0x21,0x15,0x75,0x03,0xe3,0x02,0x60,0x92,0x92,0x00,0x00,0x00,0x00,0x01,0x01,0xf0,0x01,0xa4,0x02,0xdb,0x02,0xcf,0x00,0x03,0x00,0x28,0x40,0x18,0x03,0x96,0x00,0x00,0x01,0x00,0x00,0x04,0x05,0x01,0x9b,0x0f,0x00,0x1f,0x00,0x3f,0x00,0x03,0x00,0x40,0x0e,0x11,0x48,0x00,0x00,0x2f,0x2b,0x5d, -0xed,0x11,0x12,0x01,0x39,0x2f,0x5d,0xed,0x31,0x30,0x01,0x11,0x33,0x11,0x01,0xf0,0xeb,0x01,0xa4,0x01,0x2b,0xfe,0xd5,0x00,0x00,0x01,0x00,0x4e,0xff,0xf2,0x04,0x7d,0x06,0x54,0x00,0x08,0x00,0x54,0x40,0x34,0x76,0x00,0x01,0x06,0x05,0x16,0x05,0x02,0x2b,0x01,0x3b,0x01,0x4b,0x01,0x03,0x09,0x01,0x01,0x01,0x00,0x06,0x29,0x06,0x59, -0x06,0x69,0x06,0x89,0x06,0x04,0x15,0x06,0x01,0x06,0x02,0x07,0x08,0x08,0x03,0x0a,0x05,0x02,0x02,0x03,0x02,0xaf,0x05,0x05,0x07,0x19,0x06,0x00,0x00,0x2f,0x32,0x3f,0x39,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x12,0x39,0x5d,0x5d,0x11,0x33,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x05,0x23,0x01,0x23,0x35,0x21, -0x13,0x01,0x33,0x02,0x89,0x6a,0xfe,0xe5,0xb6,0x01,0x0e,0xf2,0x01,0xae,0x81,0x0e,0x03,0x18,0x75,0xfd,0x4e,0x05,0x87,0x00,0x00,0x03,0x00,0x1d,0x00,0xcb,0x04,0xab,0x03,0xd7,0x00,0x23,0x00,0x33,0x00,0x43,0x00,0x95,0x40,0x0f,0x45,0x43,0x55,0x43,0x65,0x43,0x03,0x4a,0x35,0x5a,0x35,0x6a,0x35,0x03,0x21,0xb8,0xff,0xe8,0x40,0x09, -0x09,0x0c,0x48,0x03,0x18,0x09,0x0c,0x48,0x15,0xb8,0xff,0xe8,0x40,0x49,0x09,0x0c,0x48,0x0f,0x18,0x09,0x0c,0x48,0x08,0x1a,0x27,0x1a,0x34,0x03,0x12,0x2f,0xaa,0x0f,0x00,0x4f,0x00,0x5f,0x00,0x03,0x00,0x45,0x3c,0xaa,0x12,0x40,0x12,0x22,0x48,0x12,0x40,0x0b,0x0f,0x48,0x12,0x24,0x37,0xad,0x27,0x34,0x08,0x34,0x1a,0x03,0x0d,0x1f, -0x17,0x2a,0x41,0xad,0x05,0x3f,0x0d,0x5f,0x0d,0xff,0x0d,0x03,0x0d,0x40,0x1b,0x2c,0x48,0x0d,0x40,0x12,0x16,0x48,0x0d,0x00,0x2f,0x2b,0x2b,0x5d,0x33,0xed,0x32,0x2f,0x33,0x12,0x17,0x39,0x11,0x33,0xed,0x32,0x01,0x2f,0x2b,0x2b,0xed,0x10,0xde,0x5d,0xed,0x12,0x17,0x39,0x11,0x33,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x01, -0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x25,0x22,0x06,0x07,0x1e,0x01,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x05,0x2e,0x01,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x04,0xab,0x28,0x4a,0x68,0x40,0x58,0x99,0x3f, -0x1c,0x45,0x4c,0x51,0x2a,0x3e,0x69,0x4b,0x2a,0x28,0x4b,0x69,0x40,0x55,0x99,0x3c,0x1d,0x42,0x4d,0x55,0x2f,0x3f,0x67,0x49,0x29,0xfe,0xce,0x3d,0x67,0x30,0x2d,0x66,0x42,0x26,0x3d,0x2c,0x17,0x19,0x2c,0x3d,0xfe,0x84,0x2c,0x67,0x43,0x25,0x3c,0x2b,0x17,0x15,0x2a,0x3e,0x28,0x3c,0x68,0x02,0x4e,0x4e,0x8d,0x6a,0x3e,0x85,0x95,0x3f, -0x66,0x48,0x27,0x37,0x64,0x90,0x58,0x51,0x8e,0x68,0x3c,0x87,0x94,0x3e,0x66,0x49,0x28,0x37,0x65,0x8f,0xa8,0x7e,0x82,0x80,0x80,0x28,0x46,0x5e,0x36,0x36,0x5c,0x45,0x27,0xfa,0x80,0x80,0x28,0x46,0x5e,0x36,0x33,0x5d,0x45,0x29,0x7e,0x00,0x00,0x00,0x00,0x01,0x00,0x34,0x00,0x00,0x04,0x98,0x04,0xc7,0x00,0x05,0x00,0x13,0xb7,0x02, -0xac,0x05,0x03,0x02,0xaf,0x05,0x00,0x00,0x2f,0x2f,0xed,0x01,0x2f,0x2f,0xed,0x31,0x30,0x13,0x33,0x11,0x21,0x15,0x21,0x34,0x5e,0x04,0x06,0xfb,0x9c,0x04,0xc7,0xfb,0x97,0x5e,0x00,0x00,0x00,0x01,0x00,0x9c,0xff,0xfe,0x04,0x30,0x04,0x08,0x00,0x19,0x00,0x37,0x40,0x23,0x40,0x08,0x50,0x08,0x02,0x4f,0x04,0x5f,0x04,0x02,0x0c,0xac, -0x00,0x0d,0x10,0x0d,0x20,0x0d,0x03,0x0d,0x0d,0x1b,0x19,0xac,0x00,0x00,0x10,0x00,0x02,0x00,0x13,0xaf,0x06,0x0d,0x00,0x00,0x2f,0x32,0x2f,0xed,0x01,0x2f,0x5d,0xed,0x11,0x33,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x17,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x9c, -0x44,0x7a,0xa7,0x62,0x63,0xa9,0x7b,0x46,0x67,0x35,0x5f,0x82,0x4e,0x4e,0x82,0x5e,0x34,0x02,0x02,0x00,0x74,0xc0,0x8a,0x4c,0x4c,0x8a,0xc0,0x74,0xfe,0x00,0x02,0x02,0x62,0x9b,0x6c,0x39,0x38,0x6c,0x9c,0x64,0xfe,0x00,0x00,0x00,0x00,0x01,0x00,0xeb,0xfe,0x39,0x03,0xe1,0x05,0xe3,0x00,0x23,0x00,0x3c,0x40,0x24,0x0a,0x09,0x1a,0x09, -0x2a,0x09,0x03,0x05,0x1b,0x15,0x1b,0x25,0x1b,0x03,0x20,0x20,0x06,0xab,0x17,0x0e,0x0e,0x00,0x17,0x10,0x17,0x02,0x17,0x17,0x24,0x25,0x00,0xad,0x1d,0x12,0xad,0x0b,0x00,0x2f,0xed,0x2f,0xed,0x11,0x12,0x01,0x39,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x01,0x22,0x0e,0x02,0x15,0x11,0x14,0x0e,0x02,0x23, -0x22,0x26,0x27,0x35,0x1e,0x01,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x01,0x03,0x6e,0x33,0x42,0x27,0x10,0x32,0x59,0x7c,0x4a,0x24,0x4b,0x17,0x14,0x3e,0x23,0x33,0x41,0x27,0x0f,0x32,0x5a,0x7d,0x4b,0x22,0x4b,0x16,0x12,0x3d,0x05,0x58,0x28,0x41,0x54,0x2c,0xfb,0x2d,0x5e,0x86,0x56,0x29,0x0b, -0x08,0x93,0x08,0x10,0x25,0x40,0x54,0x30,0x04,0xd1,0x5e,0x86,0x56,0x28,0x09,0x09,0x94,0x0a,0x11,0x00,0x00,0x02,0x00,0x6c,0x01,0x50,0x04,0x60,0x03,0xf4,0x00,0x22,0x00,0x44,0x00,0xb4,0x40,0x13,0x25,0x30,0x09,0x14,0x00,0x4c,0x2a,0x30,0x09,0x14,0x00,0x4c,0x29,0x30,0x09,0x14,0x00,0x4c,0x38,0xb8,0xff,0xc0,0x40,0x24,0x09,0x14, -0x00,0x4c,0x39,0x30,0x09,0x14,0x00,0x4c,0x16,0x11,0x26,0x11,0x36,0x11,0x66,0x11,0x96,0x11,0xa6,0x11,0x06,0x20,0x30,0x09,0x14,0x00,0x4c,0x21,0x30,0x09,0x14,0x00,0x4c,0x0c,0xb8,0xff,0xc0,0x40,0x46,0x09,0x14,0x00,0x4c,0x0d,0x30,0x09,0x14,0x00,0x4c,0x27,0x1e,0x46,0x37,0x10,0x0b,0x01,0x0b,0x32,0xad,0x26,0x3b,0x40,0x17,0x1c, -0x48,0x3b,0x40,0x09,0x0c,0x48,0x3b,0x37,0x23,0xad,0x6f,0x2c,0x01,0x2c,0x40,0x12,0x15,0x48,0x10,0x2c,0x20,0x2c,0x02,0x2c,0x06,0xad,0x1d,0x0f,0x40,0x17,0x1c,0x48,0x0f,0x40,0x09,0x0c,0x48,0x0f,0x0b,0x1a,0xad,0x3f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xed,0x33,0xdd,0x2b,0x2b,0x32,0xed,0x2f,0x5d,0x2b,0x5d,0xed,0x33,0xdd,0x2b,0x2b, -0x32,0xed,0x01,0x2f,0x5d,0x33,0x10,0xce,0x32,0x31,0x30,0x2b,0x00,0x2b,0x2b,0x2b,0x5d,0x01,0x2b,0x00,0x2b,0x2b,0x2b,0x2b,0x01,0x22,0x26,0x27,0x2e,0x01,0x23,0x22,0x0e,0x02,0x07,0x35,0x3e,0x01,0x33,0x32,0x16,0x17,0x1e,0x01,0x17,0x1e,0x03,0x33,0x32,0x36,0x37,0x15,0x0e,0x03,0x03,0x32,0x36,0x37,0x15,0x0e,0x03,0x23,0x22,0x26, -0x27,0x2e,0x01,0x23,0x22,0x0e,0x02,0x07,0x35,0x3e,0x01,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x03,0x5c,0x45,0x91,0x49,0x41,0x6b,0x2d,0x26,0x41,0x3c,0x38,0x1d,0x32,0x84,0x51,0x4d,0x93,0x46,0x04,0x07,0x04,0x15,0x32,0x33,0x33,0x17,0x45,0x7b,0x34,0x1f,0x3c,0x3d,0x44,0x18,0x45,0x7b,0x34,0x1f,0x3c,0x3d,0x44,0x28,0x45,0x91,0x49, -0x41,0x6b,0x2d,0x26,0x41,0x3c,0x38,0x1d,0x32,0x84,0x51,0x29,0x4f,0x4d,0x4b,0x25,0x15,0x32,0x33,0x33,0x02,0xf6,0x2b,0x1a,0x16,0x17,0x0c,0x16,0x21,0x15,0x90,0x25,0x2f,0x2c,0x19,0x02,0x01,0x02,0x07,0x10,0x0e,0x08,0x33,0x2b,0x95,0x16,0x1f,0x13,0x08,0xfe,0xe3,0x32,0x2a,0x93,0x17,0x20,0x13,0x08,0x2c,0x1a,0x17,0x18,0x0c,0x17, -0x20,0x15,0x8d,0x26,0x2e,0x0d,0x14,0x1a,0x0d,0x07,0x10,0x0e,0x08,0x00,0x00,0x00,0x00,0x01,0x00,0x74,0x00,0x37,0x04,0x57,0x05,0x10,0x00,0x13,0x00,0x84,0x40,0x58,0x0d,0x10,0x11,0x00,0x04,0x01,0x0c,0x01,0x0a,0x07,0x06,0x03,0x04,0x02,0x0b,0x0b,0x0c,0x02,0x40,0x09,0x0c,0x48,0x02,0x0c,0x02,0x0c,0x04,0x13,0x0e,0x15,0x08,0x00, -0x04,0x10,0x04,0x02,0x04,0x10,0x08,0xad,0x0d,0x0b,0x30,0x09,0x50,0x09,0x60,0x09,0x70,0x09,0x04,0x50,0x09,0x70,0x09,0x80,0x09,0xb0,0x09,0xd0,0x09,0x05,0x0f,0x09,0x01,0x09,0x11,0x05,0xad,0x02,0x00,0x1f,0x04,0x7f,0x04,0x9f,0x04,0xaf,0x04,0xbf,0x04,0x05,0x04,0x40,0x12,0x16,0x48,0x04,0x00,0x2f,0x2b,0x71,0x33,0xc6,0xed,0x32, -0x2f,0x5d,0x5d,0x71,0xc6,0x33,0xed,0x32,0x01,0x2f,0x5d,0x33,0x10,0xce,0x32,0x11,0x39,0x39,0x2f,0x2f,0x2b,0x11,0x33,0x11,0x12,0x17,0x39,0x32,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x35,0x21,0x13,0x21,0x35,0x21,0x13,0x33,0x03,0x21,0x15,0x21,0x03,0x21,0x15,0x01,0xf3,0x98,0x91,0x97,0xed,0x01,0x37,0xbe,0xfe, -0x0b,0x02,0x3d,0x9a,0x8f,0x98,0x01,0x15,0xfe,0xa2,0xbf,0x02,0x1d,0x01,0x58,0xfe,0xdf,0x01,0x21,0x94,0x01,0x6c,0x94,0x01,0x24,0xfe,0xdc,0x94,0xfe,0x94,0x94,0x00,0x00,0x03,0x00,0x74,0x00,0xf4,0x04,0x57,0x04,0x50,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x43,0x40,0x2a,0x0b,0x07,0x02,0x0d,0x08,0x04,0x00,0x00,0x10,0x00,0x02,0x00, -0x08,0xad,0x09,0x09,0x01,0x05,0xad,0x04,0x00,0xad,0x6f,0x01,0x9f,0x01,0xaf,0x01,0xcf,0x01,0xef,0x01,0x05,0x50,0x01,0x01,0x0f,0x01,0x1f,0x01,0x02,0x01,0x00,0x2f,0x5d,0x5d,0x5d,0xed,0x2f,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x5d,0x33,0x33,0x10,0xce,0x32,0x32,0x31,0x30,0x13,0x35,0x21,0x15,0x01,0x35,0x21,0x15,0x01,0x35,0x21, -0x15,0x74,0x03,0xe3,0xfc,0x1d,0x03,0xe3,0xfc,0x1d,0x03,0xe3,0x03,0xbc,0x94,0x94,0xfd,0x38,0x94,0x94,0x01,0x64,0x94,0x94,0x00,0x02,0x00,0x73,0x00,0x00,0x04,0x58,0x04,0xcf,0x00,0x06,0x00,0x0a,0x00,0x89,0xb7,0x0a,0x07,0x00,0x01,0x52,0x05,0x04,0x05,0xb8,0x01,0x0d,0x40,0x10,0x06,0x00,0x14,0x06,0x00,0x05,0x06,0x01,0x02,0x01, -0x52,0x03,0x04,0x01,0x04,0x03,0xb8,0x01,0x0d,0x40,0x32,0x02,0x01,0x14,0x02,0x01,0x03,0x02,0x06,0x0c,0x04,0x00,0x00,0x10,0x00,0x02,0x00,0x08,0xad,0x07,0x01,0x00,0x04,0x04,0x02,0x05,0xd0,0x06,0x01,0x2f,0x06,0x3f,0x06,0x02,0x06,0x03,0x70,0x02,0x80,0x02,0xb0,0x02,0x03,0x0f,0x02,0x4f,0x02,0x5f,0x02,0x03,0x02,0x00,0x2f,0x5d, -0x5d,0x33,0x2f,0x5d,0x5d,0x33,0x12,0x39,0x3d,0x2f,0x33,0x33,0x18,0x2f,0xed,0x01,0x2f,0x5d,0x33,0x10,0xde,0xd4,0xc1,0x87,0x04,0x2b,0x10,0x01,0xc1,0x87,0x04,0x2b,0x10,0xc4,0x10,0x01,0xc1,0x87,0x04,0x18,0x2b,0x87,0x2b,0xc4,0x01,0x32,0x33,0x31,0x30,0x13,0x35,0x01,0x15,0x09,0x01,0x15,0x05,0x35,0x21,0x15,0x75,0x03,0xe3,0xfc, -0xa6,0x03,0x5a,0xfc,0x1b,0x03,0xe3,0x02,0x77,0xcd,0x01,0x8b,0x9a,0xfe,0xa8,0xfe,0xa8,0x99,0xec,0x91,0x91,0x00,0x00,0x00,0x00,0x02,0x00,0x74,0x00,0x00,0x04,0x57,0x04,0xcf,0x00,0x06,0x00,0x0a,0x00,0x89,0xb7,0x0a,0x07,0x06,0x01,0x52,0x01,0x02,0x01,0xb8,0x01,0x0d,0x40,0x10,0x00,0x06,0x14,0x00,0x06,0x01,0x00,0x05,0x04,0x01, -0x52,0x03,0x02,0x05,0x02,0x03,0xb8,0x01,0x0d,0x40,0x32,0x04,0x05,0x14,0x04,0x05,0x03,0x04,0x02,0x06,0x0c,0x04,0x00,0x00,0x10,0x00,0x02,0x00,0x08,0xad,0x07,0x06,0x05,0x02,0x02,0x03,0x70,0x04,0x80,0x04,0xb0,0x04,0x03,0x0f,0x04,0x4f,0x04,0x5f,0x04,0x03,0x04,0x01,0xd0,0x00,0x01,0x2f,0x00,0x3f,0x00,0x02,0x00,0x00,0x2f,0x5d, -0x5d,0x32,0x2f,0x5d,0x5d,0x33,0x39,0x3d,0x2f,0x33,0x33,0x18,0x2f,0xed,0x01,0x2f,0x5d,0xc4,0x10,0xce,0x32,0x10,0xc1,0x87,0x04,0x2b,0x10,0x01,0xc1,0x87,0x04,0x2b,0x10,0xc4,0x10,0x01,0xc1,0x87,0x04,0x18,0x2b,0x87,0x2b,0xc4,0x01,0x33,0x32,0x31,0x30,0x37,0x35,0x09,0x01,0x35,0x01,0x15,0x01,0x35,0x21,0x15,0x74,0x03,0x5a,0xfc, -0xa6,0x03,0xe3,0xfc,0x1d,0x03,0xe3,0xec,0x99,0x01,0x58,0x01,0x58,0x9a,0xfe,0x75,0xcd,0xfd,0x89,0x91,0x91,0x00,0x00,0x00,0x00,0x02,0x00,0x8a,0x00,0x00,0x04,0x42,0x04,0x3b,0x00,0x04,0x00,0x09,0x00,0x2c,0x40,0x19,0x04,0xac,0x40,0x06,0x0b,0x80,0x05,0xac,0x00,0x00,0x10,0x00,0x02,0x00,0x49,0x08,0x59,0x08,0x02,0x08,0xaf,0x02, -0x05,0xaf,0x00,0x00,0x2f,0xed,0x2f,0xed,0x5d,0x01,0x2f,0x5d,0xed,0x1a,0x10,0xdc,0x1a,0xed,0x31,0x30,0x33,0x11,0x09,0x01,0x11,0x25,0x21,0x11,0x09,0x01,0x8a,0x01,0xdc,0x01,0xdc,0xfc,0x9b,0x03,0x12,0xfe,0x77,0xfe,0x77,0x02,0x7b,0x01,0xc0,0xfe,0x40,0xfd,0x85,0x55,0x02,0x00,0x01,0x72,0xfe,0x8e,0x00,0x00,0x00,0x01,0x00,0x73, -0x00,0xb4,0x04,0x57,0x02,0xf2,0x00,0x05,0x00,0x28,0x40,0x18,0x04,0x07,0x01,0xaa,0x00,0x02,0x10,0x02,0x02,0x02,0x00,0xad,0x0f,0x03,0x3f,0x03,0xef,0x03,0x03,0x03,0x3f,0x01,0x01,0x01,0x00,0x2f,0x5d,0x2f,0x5d,0xed,0x01,0x2f,0x5d,0xed,0x10,0xce,0x31,0x30,0x01,0x11,0x23,0x13,0x21,0x15,0x01,0x06,0x93,0x01,0x03,0xe3,0x02,0x60, -0xfe,0x54,0x02,0x3e,0x92,0x00,0x00,0x00,0x00,0x01,0x02,0x1e,0xfd,0x99,0x04,0x02,0x06,0xa9,0x00,0x19,0x00,0x2b,0x40,0x1a,0x6b,0x12,0x7b,0x12,0x8b,0x12,0x03,0x64,0x0a,0x74,0x0a,0x84,0x0a,0x03,0x6f,0x0c,0x01,0x0c,0x80,0x00,0x49,0x01,0x14,0x0f,0x07,0x00,0x00,0x2f,0x2f,0xcd,0xcd,0x01,0x2f,0xfd,0x1a,0xcc,0x5d,0x31,0x30,0x5d, -0x5d,0x01,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x02,0xaf,0x91,0x25,0x4c,0x76,0x52,0x20,0x3e,0x30,0x1d,0x32,0x23,0x27,0x2b,0x1d,0x1b,0x16,0x19,0x23,0x17,0x0b,0xfd,0x99,0x07,0x1e,0x69,0xb6,0x86,0x4d,0x12,0x21,0x30,0x1e,0x27,0x31,0x24,0x2b,0x24,0x21,0x4b, -0x79,0x59,0x00,0x00,0x00,0x01,0x00,0xcb,0xfd,0x99,0x02,0xaf,0x06,0xa9,0x00,0x19,0x00,0x2b,0x40,0x1a,0x64,0x12,0x74,0x12,0x84,0x12,0x03,0x6b,0x0a,0x7b,0x0a,0x8b,0x0a,0x03,0x60,0x0c,0x01,0x0c,0x80,0x02,0x49,0x19,0x14,0x0f,0x07,0x00,0x00,0x2f,0x2f,0xcd,0xcd,0x01,0x2f,0xed,0x1a,0xcc,0x5d,0x31,0x30,0x5d,0x5d,0x01,0x33,0x11, -0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x02,0x1e,0x91,0x24,0x4d,0x76,0x52,0x20,0x3e,0x30,0x1d,0x32,0x23,0x27,0x2b,0x1d,0x1b,0x16,0x19,0x23,0x17,0x0b,0x06,0xa9,0xf8,0xe2,0x69,0xb6,0x86,0x4d,0x12,0x21,0x30,0x1e,0x27,0x31,0x24,0x2b,0x24,0x21,0x4b,0x79,0x59,0x00,0x00, -0x00,0x01,0xff,0xf6,0x02,0x2b,0x04,0xd7,0x02,0xbc,0x00,0x03,0x00,0x16,0xb4,0x02,0x02,0x05,0x00,0x00,0xb8,0x01,0x00,0xb1,0x01,0xfc,0x00,0x3f,0xed,0x01,0x2f,0x11,0x33,0x2f,0x31,0x30,0x03,0x35,0x21,0x15,0x0a,0x04,0xe1,0x02,0x2b,0x91,0x91,0x00,0x00,0x01,0x02,0x1e,0xfd,0x99,0x02,0xaf,0x06,0xa9,0x00,0x03,0x00,0x10,0xb6,0x02, -0xff,0x03,0x02,0xfe,0x00,0xfa,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x31,0x30,0x01,0x33,0x11,0x23,0x02,0x1e,0x91,0x91,0x06,0xa9,0xf6,0xf0,0x00,0x00,0x00,0x01,0x02,0x1e,0xfd,0x99,0x04,0xd7,0x02,0xbc,0x00,0x05,0x00,0x1d,0x40,0x09,0x01,0x01,0x07,0x04,0xff,0x05,0x04,0xfe,0x03,0xb8,0x01,0x00,0xb1,0x00,0xfc,0x00,0x3f,0xed,0x3f,0x01, -0x2f,0xed,0x11,0x33,0x2f,0x31,0x30,0x01,0x21,0x15,0x21,0x11,0x23,0x02,0x1e,0x02,0xb9,0xfd,0xd8,0x91,0x02,0xbc,0x91,0xfb,0x6e,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0xfd,0x99,0x02,0xaf,0x02,0xbc,0x00,0x05,0x00,0x18,0xb6,0x00,0x03,0xff,0x04,0x03,0xfe,0x00,0xb8,0x01,0x00,0xb1,0x01,0xfc,0x00,0x3f,0xed,0x3f,0x01,0x2f,0xed,0x2f, -0x31,0x30,0x03,0x35,0x21,0x11,0x23,0x11,0x0a,0x02,0xb9,0x91,0x02,0x2b,0x91,0xfa,0xdd,0x04,0x92,0x00,0x00,0x01,0x02,0x1e,0x02,0x2b,0x04,0xd7,0x06,0xa9,0x00,0x05,0x00,0x1c,0xb6,0x03,0x03,0x07,0x02,0xff,0x05,0x05,0xb8,0x01,0x00,0xb3,0x02,0xfc,0x00,0xfa,0x00,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x11,0x33,0x2f,0x31,0x30,0x01,0x33, -0x11,0x21,0x15,0x21,0x02,0x1e,0x91,0x02,0x28,0xfd,0x47,0x06,0xa9,0xfc,0x13,0x91,0x00,0x01,0xff,0xf6,0x02,0x2b,0x02,0xaf,0x06,0xa9,0x00,0x05,0x00,0x18,0xb6,0x05,0xff,0x02,0x00,0x03,0xfa,0x05,0xb8,0x01,0x00,0xb1,0x02,0xfc,0x00,0x3f,0xed,0x3f,0x01,0x2f,0x2f,0xed,0x31,0x30,0x03,0x35,0x21,0x11,0x33,0x11,0x0a,0x02,0x28,0x91, -0x02,0x2b,0x91,0x03,0xed,0xfb,0x82,0x00,0x00,0x01,0x02,0x1e,0xfd,0x99,0x04,0xd7,0x06,0xa9,0x00,0x07,0x00,0x22,0x40,0x0a,0x03,0x03,0x09,0x02,0x06,0xff,0x07,0x06,0xfe,0x05,0xb8,0x01,0x00,0xb3,0x02,0xfc,0x00,0xfa,0x00,0x3f,0x3f,0xed,0x3f,0x01,0x2f,0xed,0x32,0x11,0x33,0x2f,0x31,0x30,0x01,0x33,0x11,0x21,0x15,0x21,0x11,0x23, -0x02,0x1e,0x91,0x02,0x28,0xfd,0xd8,0x91,0x06,0xa9,0xfc,0x13,0x91,0xfb,0x6e,0x00,0x00,0x01,0xff,0xf6,0xfd,0x99,0x02,0xaf,0x06,0xa9,0x00,0x07,0x00,0x1e,0x40,0x0a,0x05,0xff,0x02,0x06,0x00,0x05,0xfe,0x03,0xfa,0x00,0xb8,0x01,0x00,0xb1,0x01,0xfc,0x00,0x3f,0xed,0x3f,0x3f,0x01,0x2f,0x2f,0x33,0xed,0x31,0x30,0x03,0x35,0x21,0x11, -0x33,0x11,0x23,0x11,0x0a,0x02,0x28,0x91,0x91,0x02,0x2b,0x91,0x03,0xed,0xf6,0xf0,0x04,0x92,0x00,0x00,0x00,0x01,0xff,0xf6,0xfd,0x99,0x04,0xd7,0x02,0xbc,0x00,0x07,0x00,0x21,0x40,0x0b,0x02,0x02,0x09,0x05,0xff,0x06,0x01,0x05,0xfe,0x04,0x00,0xb8,0x01,0x00,0xb1,0x01,0xfc,0x00,0x3f,0xed,0x32,0x3f,0x01,0x2f,0x2f,0xed,0x11,0x33, -0x2f,0x31,0x30,0x03,0x35,0x21,0x15,0x21,0x11,0x23,0x11,0x0a,0x04,0xe1,0xfd,0xd8,0x91,0x02,0x2b,0x91,0x91,0xfb,0x6e,0x04,0x92,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0x02,0x2b,0x04,0xd7,0x06,0xa9,0x00,0x07,0x00,0x21,0x40,0x0b,0x06,0x06,0x09,0x05,0xff,0x02,0x01,0x03,0xfa,0x05,0x00,0xb8,0x01,0x00,0xb1,0x01,0xfc,0x00,0x3f,0xed, -0x33,0x3f,0x01,0x2f,0x2f,0xed,0x11,0x33,0x2f,0x31,0x30,0x03,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x0a,0x02,0x28,0x91,0x02,0x28,0x02,0x2b,0x91,0x03,0xed,0xfc,0x13,0x91,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0xfd,0x99,0x04,0xd7,0x06,0xa9,0x00,0x0b,0x00,0x2a,0x40,0x0f,0x06,0x06,0x0d,0x05,0x09,0xff,0x02,0x0a,0x01,0x09,0xfe,0x03, -0xfa,0x08,0x00,0xb8,0x01,0x00,0xb2,0x05,0x01,0xfc,0x00,0x3f,0x33,0xed,0x32,0x3f,0x3f,0x01,0x2f,0x2f,0x33,0xed,0x32,0x11,0x33,0x2f,0x31,0x30,0x03,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x0a,0x02,0x28,0x91,0x02,0x28,0xfd,0xd8,0x91,0x02,0x2b,0x91,0x03,0xed,0xfc,0x13,0x91,0xfb,0x6e,0x04,0x92,0x00,0x00,0x00, -0x00,0x02,0xff,0xf6,0x01,0x77,0x04,0xd7,0x03,0x70,0x00,0x03,0x00,0x07,0x00,0x23,0xb6,0x07,0x02,0x02,0x09,0x04,0x00,0x04,0xb8,0x01,0x00,0xb2,0x05,0xfd,0x00,0xb8,0x01,0x00,0xb1,0x01,0xfb,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x33,0x11,0x33,0x2f,0x33,0x31,0x30,0x03,0x35,0x21,0x15,0x01,0x35,0x21,0x15,0x0a,0x04,0xe1,0xfb,0x1f, -0x04,0xe1,0x02,0xdf,0x91,0x91,0xfe,0x98,0x91,0x91,0x00,0x00,0x00,0x02,0x01,0x6a,0xfd,0x99,0x03,0x63,0x06,0xa9,0x00,0x03,0x00,0x07,0x00,0x1e,0x40,0x0f,0x06,0xff,0x07,0x02,0xff,0x00,0x03,0x01,0x03,0x07,0x02,0xfe,0x04,0x00,0xfa,0x00,0x3f,0x32,0x3f,0x33,0x01,0x2f,0x5d,0xed,0x2f,0xed,0x31,0x30,0x01,0x33,0x11,0x23,0x01,0x33, -0x11,0x23,0x01,0x6a,0x91,0x91,0x01,0x68,0x91,0x91,0x06,0xa9,0xf6,0xf0,0x09,0x10,0xf6,0xf0,0x00,0x00,0x00,0x01,0x02,0x1e,0xfd,0x99,0x04,0xd7,0x03,0x70,0x00,0x09,0x00,0x2a,0x40,0x0b,0x06,0x01,0x01,0x0b,0x04,0x08,0xff,0x09,0x08,0xfe,0x07,0xb8,0x01,0x00,0xb2,0x04,0xfd,0x03,0xb8,0x01,0x00,0xb1,0x00,0xfb,0x00,0x3f,0xed,0x3f, -0xed,0x3f,0x01,0x2f,0xed,0x32,0x11,0x33,0x2f,0x33,0x31,0x30,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x23,0x02,0x1e,0x02,0xb9,0xfd,0xd8,0x02,0x28,0xfd,0xd8,0x91,0x03,0x70,0x91,0xd7,0x91,0xfc,0x22,0x00,0x01,0x01,0x6a,0xfd,0x99,0x04,0xd7,0x02,0xbc,0x00,0x09,0x00,0x2a,0x40,0x0e,0x00,0x00,0x0b,0x07,0xff,0x00,0x08,0x01, -0x08,0x03,0xff,0x04,0x02,0x06,0xb8,0x01,0x00,0xb4,0x09,0xfc,0x08,0x03,0xfe,0x00,0x3f,0x33,0x3f,0xed,0x32,0x01,0x2f,0xed,0x2f,0x5d,0xed,0x11,0x33,0x2f,0x31,0x30,0x01,0x15,0x21,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x04,0xd7,0xfe,0x8c,0x91,0xd7,0x91,0x02,0xbc,0x91,0xfb,0x6e,0x04,0x92,0xfb,0x6e,0x05,0x23,0x00,0x02,0x01,0x6a, -0xfd,0x99,0x04,0xd7,0x03,0x70,0x00,0x05,0x00,0x0b,0x00,0x33,0x40,0x0e,0x08,0x01,0x01,0x0d,0x0a,0xff,0x0b,0x04,0xff,0x00,0x05,0x01,0x05,0x09,0xb8,0x01,0x00,0xb5,0x06,0xfd,0x0b,0x04,0xfe,0x03,0xb8,0x01,0x00,0xb1,0x00,0xfb,0x00,0x3f,0xed,0x3f,0x33,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x2f,0xed,0x11,0x33,0x2f,0x33,0x31,0x30,0x01, -0x21,0x15,0x21,0x11,0x23,0x01,0x21,0x15,0x21,0x11,0x23,0x01,0x6a,0x03,0x6d,0xfd,0x24,0x91,0x01,0x68,0x02,0x05,0xfe,0x8c,0x91,0x03,0x70,0x91,0xfa,0xba,0x04,0x6f,0x91,0xfc,0x22,0x00,0x00,0x01,0xff,0xf6,0xfd,0x99,0x02,0xaf,0x03,0x70,0x00,0x09,0x00,0x26,0x40,0x09,0x07,0xff,0x02,0x08,0x04,0x00,0x07,0xfe,0x04,0xb8,0x01,0x00, -0xb2,0x05,0xfb,0x00,0xb8,0x01,0x00,0xb1,0x01,0xfd,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x01,0x2f,0x33,0x2f,0x33,0xed,0x31,0x30,0x03,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x23,0x11,0x0a,0x02,0x28,0xfd,0xd8,0x02,0xb9,0x91,0x01,0x77,0x91,0xd7,0x91,0xfa,0x29,0x03,0xde,0x00,0x00,0x01,0xff,0xf6,0xfd,0x99,0x03,0x63,0x02,0xbc,0x00,0x09, -0x00,0x26,0x40,0x0f,0x07,0xff,0x00,0x08,0x01,0x08,0x03,0xff,0x04,0x00,0x08,0x03,0xfe,0x06,0x00,0xb8,0x01,0x00,0xb1,0x01,0xfc,0x00,0x3f,0xed,0x32,0x3f,0x33,0x01,0x2f,0x2f,0xed,0x2f,0x5d,0xed,0x31,0x30,0x03,0x35,0x21,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x0a,0x03,0x6d,0x91,0xd7,0x91,0x02,0x2b,0x91,0xfa,0xdd,0x04,0x92,0xfb, -0x6e,0x04,0x92,0x00,0x00,0x02,0xff,0xf6,0xfd,0x99,0x03,0x63,0x03,0x70,0x00,0x05,0x00,0x0b,0x00,0x2f,0x40,0x0c,0x06,0xff,0x00,0x07,0x01,0x07,0x09,0x04,0x01,0xff,0x02,0x09,0xb8,0x01,0x00,0xb2,0x0a,0xfd,0x04,0xb8,0x01,0x00,0xb4,0x05,0xfb,0x07,0x01,0xfe,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x2f,0x33,0x2f,0x5d, -0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x35,0x01,0x23,0x11,0x21,0x35,0x21,0x03,0x63,0x91,0xfd,0x24,0x02,0x05,0x91,0xfe,0x8c,0x02,0x05,0x03,0x70,0xfa,0x29,0x05,0x46,0x91,0xfa,0x29,0x03,0xde,0x91,0x00,0x00,0x01,0x02,0x1e,0x01,0x77,0x04,0xd7,0x06,0xa9,0x00,0x09,0x00,0x2a,0x40,0x09,0x08,0x03,0x03,0x0b,0x02,0x06,0xff,0x09, -0x09,0xb8,0x01,0x00,0xb2,0x06,0xfd,0x05,0xb8,0x01,0x00,0xb3,0x02,0xfb,0x00,0xfa,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x32,0x11,0x33,0x2f,0x33,0x31,0x30,0x01,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x02,0x1e,0x91,0x02,0x28,0xfd,0xd8,0x02,0x28,0xfd,0x47,0x06,0xa9,0xfc,0xc7,0x91,0xd7,0x91,0x00,0x01,0x01,0x6a, -0x02,0x2b,0x04,0xd7,0x06,0xa9,0x00,0x09,0x00,0x2a,0x40,0x0d,0x03,0x03,0x0b,0x02,0xff,0x09,0x08,0xff,0x00,0x05,0x01,0x05,0x05,0xb8,0x01,0x00,0xb5,0x02,0x08,0xfc,0x06,0x00,0xfa,0x00,0x3f,0x32,0x3f,0x33,0xed,0x01,0x2f,0x5d,0xed,0x2f,0xed,0x11,0x33,0x2f,0x31,0x30,0x01,0x33,0x11,0x21,0x15,0x21,0x11,0x33,0x11,0x33,0x02,0xd2, -0x91,0x01,0x74,0xfc,0x93,0x91,0xd7,0x06,0xa9,0xfc,0x13,0x91,0x04,0x7e,0xfc,0x13,0x00,0x02,0x01,0x6a,0x01,0x77,0x04,0xd7,0x06,0xa9,0x00,0x05,0x00,0x0b,0x00,0x33,0x40,0x0e,0x0a,0x03,0x03,0x0d,0x08,0xff,0x0b,0x02,0xff,0x00,0x05,0x01,0x05,0x0b,0xb8,0x01,0x00,0xb2,0x08,0xfb,0x05,0xb8,0x01,0x00,0xb4,0x02,0xfd,0x06,0x00,0xfa, -0x00,0x3f,0x32,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x2f,0xed,0x11,0x33,0x2f,0x33,0x31,0x30,0x01,0x33,0x11,0x21,0x15,0x21,0x01,0x33,0x11,0x21,0x15,0x21,0x01,0x6a,0x91,0x02,0xdc,0xfc,0x93,0x01,0x68,0x91,0x01,0x74,0xfd,0xfb,0x06,0xa9,0xfb,0x5f,0x91,0x05,0x32,0xfc,0xc7,0x91,0x00,0x00,0x01,0xff,0xf6,0x01,0x77,0x02,0xaf, -0x06,0xa9,0x00,0x09,0x00,0x26,0x40,0x09,0x09,0xff,0x06,0x02,0x04,0x00,0x07,0xfa,0x04,0xb8,0x01,0x00,0xb2,0x05,0xfb,0x00,0xb8,0x01,0x00,0xb1,0x01,0xfd,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x01,0x2f,0x33,0x2f,0x33,0xed,0x31,0x30,0x03,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x0a,0x02,0x28,0xfd,0xd8,0x02,0x28,0x91,0x01,0x77, -0x91,0xd7,0x91,0x03,0x39,0xfa,0xce,0x00,0x00,0x01,0xff,0xf6,0x02,0x2b,0x03,0x63,0x06,0xa9,0x00,0x09,0x00,0x26,0x40,0x0f,0x00,0xff,0x07,0x06,0xff,0x00,0x03,0x01,0x03,0x01,0x08,0x04,0xfa,0x06,0x01,0xb8,0x01,0x00,0xb1,0x02,0xfc,0x00,0x3f,0xed,0x33,0x3f,0x33,0x01,0x2f,0x2f,0x5d,0xed,0x2f,0xed,0x31,0x30,0x01,0x21,0x35,0x21, -0x11,0x33,0x11,0x33,0x11,0x33,0x03,0x63,0xfc,0x93,0x01,0x74,0x91,0xd7,0x91,0x02,0x2b,0x91,0x03,0xed,0xfc,0x13,0x03,0xed,0x00,0x02,0xff,0xf6,0x01,0x77,0x03,0x63,0x06,0xa9,0x00,0x05,0x00,0x0b,0x00,0x2f,0x40,0x0c,0x08,0xff,0x00,0x0b,0x01,0x0b,0x00,0xff,0x03,0x09,0x01,0x09,0xb8,0x01,0x00,0xb5,0x0a,0xfb,0x06,0x04,0xfa,0x01, -0xb8,0x01,0x00,0xb1,0x02,0xfd,0x00,0x3f,0xed,0x3f,0x33,0x3f,0xed,0x01,0x2f,0x33,0x2f,0xed,0x2f,0x5d,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x11,0x33,0x21,0x33,0x11,0x21,0x35,0x21,0x03,0x63,0xfc,0x93,0x02,0xdc,0x91,0xfe,0x07,0x91,0xfd,0xfb,0x01,0x74,0x01,0x77,0x91,0x04,0xa1,0xfc,0x36,0x91,0x00,0x00,0x00,0x00,0x01,0x02,0x1e, -0xfd,0x99,0x04,0xd7,0x06,0xa9,0x00,0x0b,0x00,0x2f,0x40,0x0c,0x08,0x03,0x03,0x0d,0x06,0x02,0x0a,0xff,0x0b,0x0a,0xfe,0x09,0xb8,0x01,0x00,0xb2,0x06,0xfd,0x05,0xb8,0x01,0x00,0xb3,0x02,0xfb,0x00,0xfa,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x3f,0x01,0x2f,0xed,0x32,0x32,0x11,0x33,0x2f,0x33,0x31,0x30,0x01,0x33,0x11,0x21,0x15,0x21,0x15, -0x21,0x15,0x21,0x11,0x23,0x02,0x1e,0x91,0x02,0x28,0xfd,0xd8,0x02,0x28,0xfd,0xd8,0x91,0x06,0xa9,0xfc,0xc7,0x91,0xd7,0x91,0xfc,0x22,0x00,0x00,0x00,0x02,0x01,0x6a,0xfd,0x99,0x04,0xd7,0x06,0xa9,0x00,0x07,0x00,0x0b,0x00,0x2f,0x40,0x11,0x03,0x03,0x0d,0x0a,0xff,0x00,0x0b,0x01,0x0b,0x02,0x06,0xff,0x07,0x0b,0x06,0xfe,0x05,0xb8, -0x01,0x00,0xb4,0x02,0xfc,0x08,0x00,0xfa,0x00,0x3f,0x32,0x3f,0xed,0x3f,0x33,0x01,0x2f,0xed,0x32,0x2f,0x5d,0xed,0x11,0x33,0x2f,0x31,0x30,0x01,0x33,0x11,0x21,0x15,0x21,0x11,0x23,0x01,0x33,0x11,0x23,0x02,0xd2,0x91,0x01,0x74,0xfe,0x8c,0x91,0xfe,0x98,0x91,0x91,0x06,0xa9,0xfc,0x13,0x91,0xfb,0x6e,0x09,0x10,0xf6,0xf0,0x00,0x00, -0x00,0x03,0x01,0x6a,0xfd,0x99,0x04,0xd7,0x06,0xa9,0x00,0x03,0x00,0x09,0x00,0x0f,0x00,0x3c,0x40,0x10,0x0e,0x05,0x05,0x11,0x0c,0x08,0xff,0x0f,0x09,0x00,0xff,0x00,0x01,0x01,0x01,0x0f,0xb8,0x01,0x00,0xb2,0x0c,0xfb,0x07,0xb8,0x01,0x00,0xb7,0x04,0xfd,0x0a,0x02,0xfa,0x09,0x00,0xfe,0x00,0x3f,0x32,0x3f,0x33,0x3f,0xed,0x3f,0xed, -0x01,0x2f,0x5d,0xed,0x2f,0x33,0xed,0x32,0x11,0x33,0x2f,0x33,0x31,0x30,0x01,0x23,0x11,0x33,0x13,0x21,0x15,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x15,0x21,0x01,0xfb,0x91,0x91,0xd7,0x02,0x05,0xfe,0x8c,0x91,0x91,0x01,0x74,0xfd,0xfb,0xfd,0x99,0x09,0x10,0xfb,0x5f,0x91,0xfc,0x22,0x09,0x10,0xfc,0xc7,0x91,0x00,0x00,0x01,0xff,0xf6, -0xfd,0x99,0x02,0xaf,0x06,0xa9,0x00,0x0b,0x00,0x2b,0x40,0x0c,0x09,0xff,0x06,0x02,0x0a,0x04,0x00,0x09,0xfe,0x07,0xfa,0x04,0xb8,0x01,0x00,0xb2,0x05,0xfb,0x00,0xb8,0x01,0x00,0xb1,0x01,0xfd,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0x01,0x2f,0x33,0x2f,0x33,0x33,0xed,0x31,0x30,0x03,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x23, -0x11,0x0a,0x02,0x28,0xfd,0xd8,0x02,0x28,0x91,0x91,0x01,0x77,0x91,0xd7,0x91,0x03,0x39,0xf6,0xf0,0x03,0xde,0x00,0x00,0x00,0x00,0x02,0xff,0xf6,0xfd,0x99,0x03,0x63,0x06,0xa9,0x00,0x07,0x00,0x0b,0x00,0x2b,0x40,0x12,0x0a,0xff,0x0b,0x05,0xff,0x02,0x00,0x06,0x01,0x06,0x00,0x0b,0x05,0xfe,0x08,0x03,0xfa,0x00,0xb8,0x01,0x00,0xb1, -0x01,0xfc,0x00,0x3f,0xed,0x3f,0x33,0x3f,0x33,0x01,0x2f,0x2f,0x5d,0x33,0xed,0x2f,0xed,0x31,0x30,0x03,0x35,0x21,0x11,0x33,0x11,0x23,0x11,0x01,0x33,0x11,0x23,0x0a,0x01,0x74,0x91,0x91,0x01,0x68,0x91,0x91,0x02,0x2b,0x91,0x03,0xed,0xf6,0xf0,0x04,0x92,0x04,0x7e,0xf6,0xf0,0x00,0x00,0x00,0x00,0x03,0xff,0xf6,0xfd,0x99,0x03,0x63, -0x06,0xa9,0x00,0x03,0x00,0x09,0x00,0x0f,0x00,0x38,0x40,0x0e,0x06,0x0a,0xff,0x09,0x00,0x0b,0x01,0x0b,0x0d,0x07,0x02,0xff,0x03,0x0d,0xb8,0x01,0x00,0xb2,0x0e,0xfd,0x07,0xb8,0x01,0x00,0xb7,0x08,0xfb,0x0b,0x02,0xfe,0x04,0x00,0xfa,0x00,0x3f,0x32,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x2f,0x33,0x2f,0x5d,0x33,0xed,0x32, -0x31,0x30,0x01,0x33,0x11,0x23,0x01,0x33,0x11,0x21,0x35,0x21,0x13,0x23,0x11,0x21,0x35,0x21,0x02,0xd2,0x91,0x91,0xfe,0x98,0x91,0xfd,0xfb,0x01,0x74,0x91,0x91,0xfe,0x8c,0x02,0x05,0x06,0xa9,0xf6,0xf0,0x09,0x10,0xfc,0x36,0x91,0xfa,0x29,0x03,0xde,0x91,0x00,0x00,0x00,0x00,0x02,0xff,0xf6,0xfd,0x99,0x04,0xd7,0x03,0x70,0x00,0x07, -0x00,0x0b,0x00,0x2e,0x40,0x0a,0x0b,0x02,0x02,0x0d,0x05,0xff,0x06,0x08,0x00,0x08,0xb8,0x01,0x00,0xb5,0x09,0xfb,0x05,0xfe,0x04,0x00,0xb8,0x01,0x00,0xb1,0x01,0xfd,0x00,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x01,0x2f,0x33,0x2f,0xed,0x11,0x33,0x2f,0x33,0x31,0x30,0x03,0x35,0x21,0x15,0x21,0x11,0x23,0x11,0x01,0x35,0x21,0x15,0x0a,0x04, -0xe1,0xfd,0xd8,0x91,0xfd,0xd8,0x04,0xe1,0x01,0x77,0x91,0x91,0xfc,0x22,0x03,0xde,0x01,0x68,0x91,0x91,0x00,0x01,0xff,0xf6,0xfd,0x99,0x04,0xd7,0x02,0xbc,0x00,0x0b,0x00,0x2e,0x40,0x13,0x02,0x02,0x0d,0x09,0xff,0x00,0x0a,0x01,0x0a,0x05,0xff,0x06,0x00,0x0a,0x05,0xfe,0x08,0x04,0x00,0xb8,0x01,0x00,0xb1,0x01,0xfc,0x00,0x3f,0xed, -0x32,0x32,0x3f,0x33,0x01,0x2f,0x2f,0xed,0x2f,0x5d,0xed,0x11,0x33,0x2f,0x31,0x30,0x03,0x35,0x21,0x15,0x21,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x0a,0x04,0xe1,0xfe,0x8c,0x91,0xd7,0x91,0x02,0x2b,0x91,0x91,0xfb,0x6e,0x04,0x92,0xfb,0x6e,0x04,0x92,0x00,0x03,0xff,0xf6,0xfd,0x99,0x04,0xd7,0x03,0x70,0x00,0x05,0x00,0x0b,0x00,0x0f, -0x00,0x3b,0x40,0x10,0x0d,0x07,0x07,0x11,0x0a,0xff,0x0b,0x0e,0x03,0x00,0xff,0x00,0x01,0x01,0x01,0x0e,0xb8,0x01,0x00,0xb3,0x0f,0xfb,0x09,0x03,0xb8,0x01,0x00,0xb5,0x06,0x04,0xfd,0x0b,0x00,0xfe,0x00,0x3f,0x32,0x3f,0x33,0xed,0x32,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x2f,0x33,0x2f,0xed,0x11,0x33,0x2f,0x33,0x31,0x30,0x01,0x23,0x11, -0x21,0x35,0x21,0x33,0x21,0x15,0x21,0x11,0x23,0x01,0x15,0x21,0x35,0x01,0xfb,0x91,0xfe,0x8c,0x02,0x05,0xd7,0x02,0x05,0xfe,0x8c,0x91,0x02,0x05,0xfb,0x1f,0xfd,0x99,0x03,0xde,0x91,0x91,0xfc,0x22,0x05,0xd7,0x91,0x91,0x00,0x00,0x00,0x02,0xff,0xf6,0x01,0x77,0x04,0xd7,0x06,0xa9,0x00,0x07,0x00,0x0b,0x00,0x2e,0x40,0x0a,0x0b,0x06, -0x06,0x0d,0x05,0xff,0x02,0x08,0x00,0x08,0xb8,0x01,0x00,0xb5,0x09,0xfd,0x03,0xfa,0x05,0x00,0xb8,0x01,0x00,0xb1,0x01,0xfb,0x00,0x3f,0xed,0x33,0x3f,0x3f,0xed,0x01,0x2f,0x33,0x2f,0xed,0x11,0x33,0x2f,0x33,0x31,0x30,0x03,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x01,0x35,0x21,0x15,0x0a,0x02,0x28,0x91,0x02,0x28,0xfb,0x1f,0x04,0xe1, -0x02,0xdf,0x91,0x03,0x39,0xfc,0xc7,0x91,0xfe,0x98,0x91,0x91,0x00,0x01,0xff,0xf6,0x02,0x2b,0x04,0xd7,0x06,0xa9,0x00,0x0b,0x00,0x2e,0x40,0x13,0x0a,0x0a,0x0d,0x09,0xff,0x06,0x05,0xff,0x00,0x02,0x01,0x02,0x00,0x07,0x03,0xfa,0x09,0x05,0x00,0xb8,0x01,0x00,0xb1,0x01,0xfc,0x00,0x3f,0xed,0x33,0x33,0x3f,0x33,0x01,0x2f,0x2f,0x5d, -0xed,0x2f,0xed,0x11,0x33,0x2f,0x31,0x30,0x03,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x21,0x15,0x0a,0x01,0x74,0x91,0xd7,0x91,0x01,0x74,0x02,0x2b,0x91,0x03,0xed,0xfc,0x13,0x03,0xed,0xfc,0x13,0x91,0x00,0x03,0xff,0xf6,0x01,0x77,0x04,0xd7,0x06,0xa9,0x00,0x05,0x00,0x0b,0x00,0x0f,0x00,0x3b,0x40,0x10,0x0f,0x03,0x03,0x11, -0x08,0xff,0x00,0x0b,0x01,0x0b,0x0c,0x09,0x02,0xff,0x05,0x0c,0xb8,0x01,0x00,0xb3,0x0d,0xfd,0x05,0x09,0xb8,0x01,0x00,0xb5,0x02,0x0a,0xfb,0x06,0x00,0xfa,0x00,0x3f,0x32,0x3f,0x33,0xed,0x32,0x3f,0xed,0x01,0x2f,0xed,0x2f,0x33,0x2f,0x5d,0xed,0x11,0x33,0x2f,0x33,0x31,0x30,0x01,0x33,0x11,0x21,0x15,0x21,0x01,0x33,0x11,0x21,0x35, -0x21,0x01,0x35,0x21,0x15,0x02,0xd2,0x91,0x01,0x74,0xfd,0xfb,0xfe,0x98,0x91,0xfd,0xfb,0x01,0x74,0xfe,0x8c,0x04,0xe1,0x06,0xa9,0xfc,0xc7,0x91,0x03,0xca,0xfc,0x36,0x91,0xfe,0x07,0x91,0x91,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0xfd,0x99,0x04,0xd7,0x06,0xa9,0x00,0x13,0x00,0x3f,0x40,0x13,0x0f,0x0a,0x0a,0x15,0x0d,0x09,0x11,0xff, -0x06,0x02,0x12,0x04,0x00,0x11,0xfe,0x07,0xfa,0x0c,0x04,0xb8,0x01,0x00,0xb4,0x09,0x05,0xfb,0x10,0x00,0xb8,0x01,0x00,0xb2,0x0d,0x01,0xfd,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0xed,0x32,0x3f,0x3f,0x01,0x2f,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x11,0x33,0x2f,0x33,0x31,0x30,0x03,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x21, -0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x23,0x11,0x0a,0x02,0x28,0xfd,0xd8,0x02,0x28,0x91,0x02,0x28,0xfd,0xd8,0x02,0x28,0xfd,0xd8,0x91,0x01,0x77,0x91,0xd7,0x91,0x03,0x39,0xfc,0xc7,0x91,0xd7,0x91,0xfc,0x22,0x03,0xde,0x00,0x00,0x00,0x01,0xff,0xf6,0xfd,0x99,0x04,0xd7,0x06,0xa9,0x00,0x13,0x00,0x40,0x40,0x14,0x03,0x03,0x15,0x0d, -0x12,0x0a,0xff,0x0f,0x00,0x0b,0x01,0x0b,0x02,0x06,0xff,0x13,0x07,0x09,0x05,0x0d,0xb8,0x01,0x00,0x40,0x0a,0x12,0x02,0x0e,0xfc,0x0b,0x06,0xfe,0x10,0x00,0xfa,0x00,0x3f,0x32,0x3f,0x33,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x33,0xed,0x32,0x2f,0x5d,0x33,0xed,0x32,0x2f,0x11,0x33,0x2f,0x31,0x30,0x01,0x33,0x11,0x21,0x15,0x21, -0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x33,0x02,0xd2,0x91,0x01,0x74,0xfe,0x8c,0x91,0xd7,0x91,0xfe,0x8c,0x01,0x74,0x91,0xd7,0x06,0xa9,0xfc,0x13,0x91,0xfb,0x6e,0x04,0x92,0xfb,0x6e,0x04,0x92,0x91,0x03,0xed,0xfc,0x13,0x00,0x04,0xff,0xf6,0xfd,0x99,0x04,0xd7,0x06,0xa9,0x00,0x05,0x00,0x0b,0x00,0x11, -0x00,0x17,0x00,0x4d,0x40,0x15,0x0e,0x03,0x03,0x19,0x02,0x10,0xff,0x05,0x11,0x15,0x09,0x14,0x06,0xff,0x17,0x00,0x07,0x01,0x07,0x05,0x15,0xb8,0x01,0x00,0xb4,0x02,0x16,0xfb,0x0f,0x09,0xb8,0x01,0x00,0x40,0x09,0x0c,0x0a,0xfd,0x11,0x06,0xfe,0x12,0x00,0xfa,0x00,0x3f,0x32,0x3f,0x33,0x3f,0x33,0xed,0x32,0x3f,0x33,0xed,0x32,0x01, -0x2f,0x5d,0x33,0xed,0x32,0x2f,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x2f,0x33,0x31,0x30,0x01,0x33,0x11,0x21,0x15,0x21,0x03,0x23,0x11,0x21,0x35,0x21,0x33,0x21,0x15,0x21,0x11,0x23,0x01,0x33,0x11,0x21,0x35,0x21,0x02,0xd2,0x91,0x01,0x74,0xfd,0xfb,0xd7,0x91,0xfe,0x8c,0x02,0x05,0xd7,0x02,0x05,0xfe,0x8c,0x91,0xfe,0x98,0x91,0xfd, -0xfb,0x01,0x74,0x06,0xa9,0xfc,0xc7,0x91,0xfa,0xba,0x03,0xde,0x91,0x91,0xfc,0x22,0x09,0x10,0xfc,0x36,0x91,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x73,0x04,0xcd,0x06,0xa9,0x00,0x03,0x00,0x0e,0xb4,0x01,0x00,0x00,0x02,0xfa,0x00,0x3f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x11,0x21,0x04,0xcd,0xfb,0x33,0x04,0xcd,0x02,0x73, -0x04,0x36,0x00,0x00,0x00,0x01,0x00,0x00,0xfd,0x99,0x04,0xcd,0x02,0x73,0x00,0x03,0x00,0x0e,0xb4,0x01,0x00,0x00,0xfe,0x02,0x00,0x2f,0x3f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x11,0x21,0x04,0xcd,0xfb,0x33,0x04,0xcd,0xfd,0x99,0x04,0xda,0x00,0x00,0x00,0x01,0x00,0x00,0xfd,0x99,0x04,0xcd,0x06,0xa9,0x00,0x03,0x00,0x0f,0xb5,0x01, -0x00,0x00,0xfe,0x02,0xfa,0x00,0x3f,0x3f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x11,0x21,0x04,0xcd,0xfb,0x33,0x04,0xcd,0xfd,0x99,0x09,0x10,0x00,0x00,0x01,0x00,0x00,0xfd,0x99,0x02,0x67,0x06,0xa9,0x00,0x03,0x00,0x0f,0xb5,0x01,0x00,0x00,0xfe,0x02,0xfa,0x00,0x3f,0x3f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x11,0x21,0x02,0x67,0xfd, -0x99,0x02,0x67,0xfd,0x99,0x09,0x10,0x00,0x00,0x01,0x02,0x66,0xfd,0x99,0x04,0xcd,0x06,0xa9,0x00,0x03,0x00,0x0f,0xb5,0x01,0x00,0x00,0xfe,0x02,0xfa,0x00,0x3f,0x3f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x11,0x21,0x04,0xcd,0xfd,0x99,0x02,0x67,0xfd,0x99,0x09,0x10,0x00,0x00,0x24,0x00,0x00,0xfd,0xfb,0x04,0x67,0x06,0xa9,0x00,0x03, -0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x57,0x00,0x5b,0x00,0x5f,0x00,0x63,0x00,0x67,0x00,0x6b,0x00,0x6f,0x00,0x73,0x00,0x77,0x00,0x7b,0x00,0x7f,0x00,0x83, -0x00,0x87,0x00,0x8b,0x00,0x8f,0x01,0xad,0xb6,0x0e,0x26,0x46,0x56,0x7a,0x05,0x6e,0xb8,0x01,0x03,0x40,0x0f,0x6f,0x0f,0x27,0x47,0x57,0x7b,0x05,0x6f,0x06,0x1e,0x36,0x4e,0x8a,0x05,0x66,0xb8,0x01,0x03,0x40,0x0f,0x67,0x07,0x1f,0x37,0x4f,0x8b,0x05,0x67,0x12,0x2a,0x3e,0x5a,0x7e,0x05,0x72,0xb8,0x01,0x03,0x40,0x0f,0x73,0x13,0x2b, -0x3f,0x5b,0x7f,0x05,0x73,0x0a,0x22,0x3a,0x4a,0x8e,0x05,0x62,0xb8,0x01,0x03,0x40,0x19,0x63,0x0b,0x23,0x3b,0x4b,0x8f,0x05,0x63,0x6f,0x67,0x73,0x63,0x63,0x73,0x67,0x6f,0x04,0x77,0x02,0x1a,0x32,0x52,0x86,0x05,0x6a,0xb8,0x01,0x03,0x40,0x0e,0x03,0x1b,0x33,0x53,0x87,0x05,0x6b,0x16,0x2e,0x42,0x5e,0x82,0x05,0x76,0xb8,0x01,0x03, -0x40,0x0a,0x17,0x2f,0x43,0x5f,0x83,0x05,0x77,0x67,0x63,0x6b,0xb8,0x01,0x04,0xb6,0x68,0x64,0x60,0x68,0x5f,0x5b,0x57,0xb8,0x01,0x04,0xb6,0x54,0x5c,0x58,0x54,0x4f,0x4b,0x53,0xb8,0x01,0x04,0xb6,0x50,0x4c,0x48,0x50,0x43,0x3f,0x47,0xb8,0x01,0x04,0xb6,0x44,0x40,0x3c,0x44,0x3b,0x37,0x33,0xb8,0x01,0x04,0xb6,0x30,0x38,0x34,0x30, -0x2f,0x2b,0x27,0xb8,0x01,0x04,0xb6,0x24,0x2c,0x28,0x24,0x23,0x1f,0x1b,0xb8,0x01,0x04,0xb6,0x18,0x20,0x1c,0x18,0x17,0x13,0x0f,0xb8,0x01,0x04,0xb6,0x0c,0x14,0x10,0x0c,0x0b,0x07,0x03,0xb8,0x01,0x04,0xb6,0x00,0x08,0x04,0x00,0x83,0x7f,0x7b,0xb8,0x01,0x04,0x40,0x1d,0x78,0x80,0x7c,0x78,0x68,0x54,0x50,0x44,0x30,0x24,0x18,0x0c, -0x00,0x78,0x78,0x00,0x0c,0x18,0x24,0x30,0x44,0x50,0x54,0x68,0x0a,0x84,0x74,0x70,0x6c,0xb8,0x01,0x04,0xb5,0x77,0x73,0x6f,0x8f,0x8b,0x87,0xb8,0x01,0x04,0xb3,0x8c,0x88,0x84,0xfa,0x00,0x3f,0x33,0x33,0xed,0x32,0x32,0x2f,0x33,0x33,0xed,0x32,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x33, -0x10,0xed,0x32,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x33,0x10, -0xed,0x32,0x32,0x01,0x2f,0x17,0x33,0xed,0x17,0x32,0x2f,0x17,0x33,0xed,0x17,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x31,0x30,0x11,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x25,0x33,0x15, -0x23,0x05,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x05,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x05,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x05,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x05,0x33,0x15, -0x23,0x25,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x17,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x17,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x25,0x33,0x15, -0x23,0x25,0x33,0x15,0x23,0x67,0x67,0x01,0x9a,0x67,0x67,0x01,0x9a,0x67,0x67,0xfd,0x99,0x66,0x66,0x01,0x9a,0x66,0x66,0x01,0x9a,0x66,0x66,0xfb,0xff,0x67,0x67,0x01,0x9a,0x67,0x67,0x01,0x9a,0x67,0x67,0xfd,0x99,0x66,0x66,0x01,0x9a,0x66,0x66,0x01,0x9a,0x66,0x66,0xfb,0xff,0x67,0x67,0x01,0x9a,0x67,0x67,0x01,0x9a,0x67,0x67,0xcd, -0x66,0x66,0x01,0x9a,0x66,0x66,0xfc,0xcc,0x66,0x66,0x02,0x67,0x67,0x67,0xfe,0x66,0x67,0x67,0xfe,0x66,0x67,0x67,0xcd,0x66,0x66,0x01,0x9a,0x66,0x66,0x01,0x9a,0x66,0x66,0xcd,0x67,0x67,0xfe,0x66,0x67,0x67,0xfe,0x66,0x67,0x67,0xcd,0x66,0x66,0x01,0x9a,0x66,0x66,0x01,0x9a,0x66,0x66,0xfc,0xcc,0x66,0x66,0x01,0x9a,0x66,0x66,0x01, -0x9a,0x66,0x66,0xfb,0xff,0x67,0x67,0x01,0x9a,0x67,0x67,0x01,0x9a,0x67,0x67,0x05,0x28,0x62,0x62,0x62,0x62,0x62,0x61,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x63,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x63,0x60,0x60,0x60,0x60,0x60,0x60,0x61,0x61,0x61,0x61,0x61,0x62,0x5e,0x5e,0x5e,0x5e,0x5e, -0x62,0x61,0x61,0x61,0x61,0x61,0x60,0x60,0x60,0x60,0x60,0x60,0x07,0xed,0x62,0x62,0x62,0x62,0x62,0x01,0x23,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,0x48,0x00,0x00,0xfd,0xfb,0x04,0xce,0x06,0xa9,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0x33, -0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x57,0x00,0x5b,0x00,0x5f,0x00,0x63,0x00,0x67,0x00,0x6b,0x00,0x6f,0x00,0x73,0x00,0x77,0x00,0x7b,0x00,0x7f,0x00,0x83,0x00,0x87,0x00,0x8b,0x00,0x8f,0x00,0x93,0x00,0x97,0x00,0x9b,0x00,0x9f,0x00,0xa3,0x00,0xa7,0x00,0xab,0x00,0xaf,0x00,0xb3, -0x00,0xb7,0x00,0xbb,0x00,0xbf,0x00,0xc3,0x00,0xc7,0x00,0xcb,0x00,0xcf,0x00,0xd3,0x00,0xd7,0x00,0xdb,0x00,0xdf,0x00,0xe3,0x00,0xe7,0x00,0xeb,0x00,0xef,0x00,0xf3,0x00,0xf7,0x00,0xfb,0x00,0xff,0x01,0x03,0x01,0x07,0x01,0x0b,0x01,0x0f,0x01,0x13,0x01,0x17,0x01,0x1b,0x01,0x1f,0x03,0x11,0xb3,0x02,0x32,0x62,0xa6,0xbb,0x01,0x0a, -0x00,0x05,0x00,0xd6,0x01,0x03,0xb4,0xd7,0x03,0x33,0x63,0xa7,0xb8,0x01,0x0b,0x40,0x09,0x05,0xd7,0x1e,0x4e,0x8e,0xae,0xf6,0x05,0xde,0xb8,0x01,0x03,0x40,0x0c,0xdf,0x1f,0x4f,0x8f,0xaf,0xf7,0x05,0xdf,0x06,0x36,0x66,0xa2,0xbb,0x01,0x0e,0x00,0x05,0x00,0xd2,0x01,0x03,0xb4,0xd3,0x07,0x37,0x67,0xa3,0xb8,0x01,0x0f,0x40,0x09,0x05, -0xd3,0x22,0x52,0x7e,0xb2,0xfa,0x05,0xe2,0xb8,0x01,0x03,0x40,0x0c,0xe3,0x23,0x53,0x7f,0xb3,0xfb,0x05,0xe3,0x0a,0x3a,0x6a,0x9e,0xbb,0x01,0x12,0x00,0x05,0x00,0xce,0x01,0x03,0xb4,0xcf,0x0b,0x3b,0x6b,0x9f,0xb8,0x01,0x13,0x40,0x09,0x05,0xcf,0x26,0x56,0x82,0xb6,0xfe,0x05,0xe6,0xb8,0x01,0x03,0x40,0x0c,0xe7,0x27,0x57,0x83,0xb7, -0xff,0x05,0xe7,0x0e,0x3e,0x6e,0x9a,0xbb,0x01,0x16,0x00,0x05,0x00,0xca,0x01,0x03,0xb4,0xcb,0x0f,0x3f,0x6f,0x9b,0xb8,0x01,0x17,0xb5,0x05,0xcb,0x2a,0x5a,0x86,0xba,0xbb,0x01,0x02,0x00,0x05,0x00,0xea,0x01,0x03,0xb4,0xeb,0x2b,0x5b,0x87,0xbb,0xb8,0x01,0x03,0xb5,0x05,0xeb,0x12,0x42,0x72,0x96,0xbb,0x01,0x1a,0x00,0x05,0x00,0xc6, -0x01,0x03,0xb4,0xc7,0x13,0x43,0x73,0x97,0xb8,0x01,0x1b,0xb5,0x05,0xc7,0x2e,0x5e,0x8a,0xbe,0xbb,0x01,0x06,0x00,0x05,0x00,0xee,0x01,0x03,0xb4,0xef,0x2f,0x5f,0x8b,0xbf,0xb8,0x01,0x07,0x40,0x1f,0x05,0xef,0xd7,0xdf,0xd3,0xe3,0xcf,0xe7,0xcb,0xeb,0xc7,0xef,0xef,0xc7,0xeb,0xcb,0xe7,0xcf,0xe3,0xd3,0xdf,0xd7,0x0a,0xc3,0x1a,0x4a, -0x7a,0xaa,0xf2,0x05,0xda,0xb8,0x01,0x03,0x40,0x0b,0x1b,0x4b,0x7b,0xab,0xf3,0x05,0xdb,0x16,0x46,0x76,0x92,0xbb,0x01,0x1e,0x00,0x05,0x00,0xc2,0x01,0x03,0xb3,0x17,0x47,0x77,0x93,0xb8,0x01,0x1f,0x40,0x09,0x05,0xc3,0xc3,0xc7,0xcb,0xcf,0xd3,0x05,0xd7,0xb8,0x01,0x04,0x40,0x0f,0xd4,0xc0,0xc4,0xc8,0xcc,0xd0,0x05,0xd4,0xaf,0xb3, -0xb7,0xbb,0xbf,0x05,0xab,0xb8,0x01,0x04,0x40,0x0f,0xa8,0xac,0xb0,0xb4,0xb8,0xbc,0x05,0xa8,0x93,0x97,0x9b,0x9f,0xa3,0x05,0xa7,0xb8,0x01,0x04,0x40,0x0f,0xa4,0x90,0x94,0x98,0x9c,0xa0,0x05,0xa4,0x7f,0x83,0x87,0x8b,0x8f,0x05,0x7b,0xb8,0x01,0x04,0x40,0x0f,0x78,0x7c,0x80,0x84,0x88,0x8c,0x05,0x78,0x67,0x6b,0x6f,0x73,0x77,0x05, -0x63,0xb8,0x01,0x04,0x40,0x0f,0x60,0x64,0x68,0x6c,0x70,0x74,0x05,0x60,0x4f,0x53,0x57,0x5b,0x5f,0x05,0x4b,0xb8,0x01,0x04,0x40,0x0f,0x48,0x4c,0x50,0x54,0x58,0x5c,0x05,0x48,0x37,0x3b,0x3f,0x43,0x47,0x05,0x33,0xb8,0x01,0x04,0x40,0x0f,0x30,0x34,0x38,0x3c,0x40,0x44,0x05,0x30,0x1f,0x23,0x27,0x2b,0x2f,0x05,0x1b,0xb8,0x01,0x04, -0x40,0x0f,0x18,0x1c,0x20,0x24,0x28,0x2c,0x05,0x18,0x07,0x0b,0x0f,0x13,0x17,0x05,0x03,0xb8,0x01,0x04,0x40,0x0b,0x00,0x04,0x08,0x0c,0x10,0x14,0x05,0x00,0xf7,0xfb,0xff,0xbc,0x01,0x03,0x01,0x07,0x00,0x05,0x00,0xf3,0x01,0x04,0xb3,0xf0,0xf4,0xf8,0xfc,0xb9,0x01,0x00,0x01,0x04,0x40,0x17,0x05,0xf0,0xd4,0xa8,0xa4,0x78,0x60,0x48, -0x30,0x18,0x00,0xf0,0xf0,0x00,0x18,0x30,0x48,0x60,0x78,0xa4,0xa8,0xd4,0x0a,0xb8,0x01,0x08,0xb6,0xdc,0xe0,0xe4,0xe8,0xec,0x05,0xd8,0xb8,0x01,0x04,0xb6,0xdf,0xe3,0xe7,0xeb,0xef,0x05,0xdb,0x41,0x10,0x01,0x0f,0x01,0x13,0x01,0x17,0x01,0x1b,0x01,0x1f,0x00,0x05,0x01,0x0b,0x01,0x04,0x01,0x0c,0x01,0x10,0x01,0x14,0x01,0x18,0x01, -0x1c,0x00,0x05,0x01,0x08,0x00,0xfa,0x00,0x3f,0x17,0x33,0xed,0x17,0x32,0x2f,0x17,0x33,0xed,0x17,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33, -0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x01,0x2f,0x17,0x33,0xed,0x17,0x32,0x2f,0x17,0x33,0xed,0x17,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f, -0x2f,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32, -0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x31,0x30,0x13,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x05,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x05,0x33,0x15,0x23,0x37,0x33,0x15, -0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x05,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x05,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15, -0x23,0x05,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x05,0x33,0x15,0x23,0x27,0x33,0x15,0x23,0x27,0x33,0x15,0x23,0x27,0x33,0x15,0x23,0x27,0x33,0x15,0x23,0x27,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15, -0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x17,0x33,0x15,0x23,0x27,0x33,0x15,0x23,0x27,0x33,0x15,0x23,0x27,0x33,0x15,0x23,0x27,0x33,0x15,0x23,0x27,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x37,0x33,0x15, -0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x37,0x33,0x15,0x23,0x66,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xfb,0x99,0x66,0x66,0xcd, -0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xfc,0x65,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xfb,0x99,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xfc,0x65,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67, -0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xfb,0x99,0x66,0x66,0x01,0x9a,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xfc,0xcc,0x66,0x66,0x03,0x9a,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0x66,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66, -0x66,0x66,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0x66,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xfb,0xff,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xfc,0x65,0x67,0x67,0xcd,0x67,0x67,0xcd, -0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0x05,0x28,0x62,0x62,0x62,0x62,0x62,0x62,0x62,0x62,0x62,0x62,0x62,0x61,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x63,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60, -0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x63,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x62,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x62,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60, -0x60,0x60,0x60,0x60,0x07,0xed,0x62,0x62,0x62,0x62,0x62,0x62,0x62,0x62,0x62,0x62,0x62,0x01,0x23,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,0x38,0x00,0x00,0xfd,0x99,0x04,0xce,0x06,0xa9,0x00,0x45,0x00,0x49,0x00,0x4d,0x00,0x51,0x00,0x55,0x00,0x59,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0x69,0x00,0x6d, -0x00,0x71,0x00,0x75,0x00,0x79,0x00,0x7d,0x00,0x81,0x00,0x85,0x00,0x89,0x00,0x8d,0x00,0x91,0x00,0x95,0x00,0x99,0x00,0x9d,0x00,0xa1,0x00,0xa5,0x00,0xa9,0x00,0xad,0x00,0xb1,0x00,0xb5,0x00,0xb9,0x00,0xbd,0x00,0xc1,0x00,0xc5,0x00,0xc9,0x00,0xcd,0x00,0xd1,0x00,0xd5,0x00,0xd9,0x00,0xdd,0x00,0xe1,0x00,0xe5,0x00,0xe9,0x00,0xed, -0x00,0xf1,0x00,0xf5,0x00,0xf9,0x00,0xfd,0x01,0x01,0x01,0x05,0x01,0x09,0x01,0x0d,0x01,0x11,0x01,0x15,0x01,0x19,0x01,0x1d,0x01,0x21,0x03,0x17,0xb6,0x1a,0x64,0x78,0xa5,0xe4,0x05,0xc5,0xb8,0x01,0x03,0x40,0x0f,0x03,0x07,0x0b,0x0f,0x13,0x17,0x05,0x03,0x4b,0x6b,0x91,0xab,0xf0,0x05,0xcb,0xb8,0x01,0x03,0x40,0x0f,0xc8,0x48,0x68, -0x88,0xa8,0xf5,0x05,0xc8,0x1e,0x60,0x7b,0xa1,0xe0,0x05,0xc1,0xb8,0x01,0x03,0x40,0x0f,0xc2,0x1b,0x65,0x79,0xa2,0xe5,0x05,0xc2,0x4f,0x6f,0x8b,0xaf,0xec,0x05,0xcf,0xb8,0x01,0x03,0x40,0x0f,0xcc,0x4c,0x6c,0x8e,0xac,0xf1,0x05,0xcc,0x22,0x5c,0x7f,0x9d,0xdc,0x05,0xbd,0xb8,0x01,0x03,0x40,0x0f,0xbe,0x1f,0x61,0x7c,0x9e,0xe1,0x05, -0xbe,0x53,0x73,0x93,0xb3,0xe8,0x05,0xd3,0xb8,0x01,0x03,0x40,0x0f,0xd0,0x50,0x70,0x8c,0xb0,0xed,0x05,0xd0,0x26,0x58,0x83,0x99,0xd8,0x05,0xb9,0xb8,0x01,0x03,0x40,0x0a,0xba,0x23,0x5d,0x80,0x9a,0xdd,0x05,0xba,0xf7,0xff,0xbd,0x01,0x07,0x01,0x0f,0x01,0x20,0x00,0x05,0x01,0x17,0x01,0x03,0x40,0x0a,0xd4,0x54,0x74,0x94,0xb4,0xe9, -0x05,0xd4,0x2a,0xfc,0xbd,0x01,0x03,0x01,0x0d,0x01,0x1c,0x00,0x05,0x01,0x15,0x01,0x03,0x40,0x0f,0xb6,0x27,0x59,0x84,0x96,0xd9,0x05,0xb6,0x30,0x34,0x38,0x3c,0x40,0x05,0x44,0x41,0x09,0x01,0x03,0x01,0x18,0x00,0xf8,0x01,0x00,0x01,0x08,0x01,0x10,0x01,0x21,0x00,0x05,0x01,0x18,0x40,0x09,0x03,0xc8,0xc2,0xcc,0xbe,0xd0,0xba,0xd4, -0xb6,0xb9,0x01,0x18,0x01,0x18,0x40,0x0a,0xb6,0xd4,0xba,0xd0,0xbe,0xcc,0xc2,0xc8,0x03,0x0a,0xb8,0x01,0x12,0xb6,0x47,0x67,0x87,0xa7,0xf4,0x05,0xc7,0xb8,0x01,0x03,0x40,0x11,0x05,0x09,0x0d,0x11,0x15,0x05,0x01,0x2e,0x32,0x36,0x3a,0x3e,0x42,0x06,0x00,0x2b,0xfd,0xbc,0x01,0x04,0x01,0x0a,0x01,0x1d,0x00,0x05,0x01,0x12,0x40,0x0c, -0x1c,0x20,0x24,0x28,0x2c,0x05,0x18,0x16,0x43,0xca,0xce,0xd2,0xbb,0x01,0x16,0x00,0x05,0x00,0xc6,0x01,0x04,0xb4,0x02,0xb9,0xbd,0xc1,0xc5,0xb8,0x01,0x15,0xb5,0x05,0x02,0xb8,0xbc,0xc0,0xc4,0xbb,0x01,0x14,0x00,0x05,0x00,0x05,0x01,0x04,0xb4,0xa7,0x40,0xab,0xaf,0xb3,0xb8,0x01,0x0f,0xb5,0x05,0xa7,0x3f,0xaa,0xae,0xb2,0xbb,0x01, -0x0e,0x00,0x05,0x00,0xa6,0x01,0x04,0xb4,0x06,0x99,0x9d,0xa1,0xa5,0xb8,0x01,0x0d,0xb5,0x05,0x06,0x98,0x9c,0xa0,0xa4,0xbb,0x01,0x0c,0x00,0x05,0x00,0x09,0x01,0x04,0xb4,0x87,0x3c,0x8b,0x91,0x93,0xb8,0x01,0x07,0xb5,0x05,0x87,0x3b,0x8a,0x90,0x92,0xbb,0x01,0x06,0x00,0x05,0x00,0x86,0x01,0x04,0xb4,0x0a,0x78,0x7b,0x7f,0x83,0xb8, -0x01,0x03,0xb5,0x05,0x0a,0x77,0x7a,0x7e,0x82,0xbb,0x01,0x02,0x00,0x05,0x00,0x0d,0x01,0x04,0x40,0x0f,0x67,0x38,0x6b,0x6f,0x73,0xff,0x05,0x67,0x37,0x6a,0x6e,0x72,0xfe,0x05,0x66,0xb8,0x01,0x04,0x40,0x0f,0x0e,0x58,0x5c,0x60,0x64,0xfc,0x05,0x0e,0x57,0x5b,0x5f,0x63,0xfb,0x05,0x11,0xb8,0x01,0x04,0x40,0x0f,0x47,0x34,0x4b,0x4f, -0x53,0xf7,0x05,0x47,0x33,0x4a,0x4e,0x52,0xf6,0x05,0x46,0xb8,0x01,0x04,0xb4,0x12,0xd8,0xdc,0xe0,0xe4,0xb8,0x01,0x1c,0xb5,0x05,0x12,0xd7,0xdb,0xdf,0xe3,0xbb,0x01,0x1b,0x00,0x05,0x00,0x15,0x01,0x04,0xb4,0xf4,0x30,0xe8,0xec,0xf0,0xb8,0x01,0x20,0x40,0x1c,0x05,0xf4,0x02,0xa7,0x06,0x87,0x0a,0x67,0x0e,0x47,0x12,0xf4,0xf4,0x12, -0x47,0x0e,0x67,0x0a,0x87,0x06,0xa7,0x02,0x0a,0x16,0x44,0xcb,0xcf,0xd3,0xbb,0x01,0x17,0x00,0x05,0x00,0xc7,0x01,0x04,0xb5,0x01,0xfe,0x2f,0xe7,0xeb,0xef,0xbb,0x01,0x1f,0x00,0x05,0x00,0xf3,0x01,0x04,0xb6,0x1a,0x1e,0x22,0x26,0x2a,0x05,0x16,0x00,0x2f,0x17,0x33,0xed,0x17,0x32,0x3f,0xed,0x17,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f, -0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11, -0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x10,0xc6,0x17,0x32,0x01,0x2f,0x17,0x33,0xc4,0x17,0x32,0x2f,0x17,0x33,0xed,0x17,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32, -0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x11,0x17,0x33,0x10,0xed,0x17,0x32,0x31,0x30,0x01,0x21,0x11,0x33,0x35,0x23,0x11,0x33,0x35,0x23,0x11,0x33,0x35, -0x23,0x11,0x33,0x35,0x23,0x11,0x33,0x35,0x23,0x11,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x15,0x33,0x11,0x23,0x15,0x33,0x11,0x23,0x15,0x33,0x11,0x23,0x15,0x33,0x11,0x23,0x15,0x33,0x11,0x23,0x15,0x33,0x01,0x15,0x33,0x35,0x33,0x15,0x33, -0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x17,0x23,0x15,0x33,0x27,0x23,0x15,0x33,0x27,0x23,0x15,0x33,0x27,0x23,0x15,0x33,0x07,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x05,0x23,0x15,0x33,0x37,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x05,0x15,0x33,0x35,0x21,0x15,0x33, -0x35,0x07,0x35,0x23,0x15,0x25,0x15,0x33,0x35,0x13,0x35,0x23,0x15,0x23,0x35,0x23,0x15,0x23,0x35,0x23,0x15,0x23,0x35,0x23,0x15,0x07,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x13,0x35,0x23,0x15,0x23,0x35,0x23,0x15,0x23,0x35,0x23,0x15,0x23,0x35,0x23,0x15,0x07,0x15,0x33,0x35,0x33,0x15,0x33, -0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x13,0x23,0x15,0x33,0x27,0x23,0x15,0x33,0x27,0x23,0x15,0x33,0x27,0x23,0x15,0x33,0x01,0x23,0x15,0x33,0x27,0x23,0x15,0x33,0x27,0x23,0x15,0x33,0x27,0x23,0x15,0x33,0x01,0x15,0x33,0x35,0x17,0x23,0x15,0x33,0x07,0x15,0x33,0x35,0x1d,0x01,0x33,0x35,0x07,0x15,0x33,0x35,0x13,0x35,0x23, -0x15,0x07,0x15,0x33,0x35,0x13,0x35,0x23,0x15,0x07,0x15,0x33,0x35,0x13,0x23,0x15,0x33,0x03,0x23,0x15,0x33,0x04,0xce,0xfb,0x32,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x67,0x66,0x67,0x66,0x67,0x66,0x67,0x66,0x67,0x66,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0xfb,0x98,0x67,0x66,0x67, -0x66,0x67,0x66,0x67,0x66,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x67,0x66,0x67,0x66,0x67,0x66,0x67,0xfd,0xff,0x66,0x66,0x67,0x66,0x67,0x66,0x67,0x66,0xfc,0xcc,0x67,0x01,0x33,0x67,0xcd,0x67,0x01,0x9a,0x67,0x66,0x66,0x67,0x66,0x67,0x66,0x67,0x66,0x67,0x67,0x66,0x67,0x66,0x67,0x66,0x67,0x66,0x66,0x67, -0x66,0x67,0x66,0x67,0x66,0x67,0x67,0x66,0x67,0x66,0x67,0x66,0x67,0x66,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0xcd,0x66,0x66,0x02,0x01,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0xcd,0x67,0x67,0x02,0xcd,0x67,0x66,0x66,0x66,0xcd,0x67,0x66,0xcd,0x67,0x66,0x66,0x67,0x67,0x66,0x66,0x67,0x67,0x66,0x66,0x66,0x66,0x67,0x67,0xfd, -0x99,0x01,0x22,0x61,0x01,0x22,0x61,0x01,0x23,0x60,0x01,0x21,0x62,0x01,0x21,0x62,0x01,0x21,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xc1,0x62,0xfe,0xdf,0x60,0xfe,0xdd,0x60,0xfe,0xdd,0x60,0xfe,0xdd,0x5e,0xfe,0xdd,0x60,0x06,0x6a,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xc0,0x62,0x62,0x62,0x62,0x62,0x62,0x62, -0x61,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xc0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xc3,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xfe,0xdf,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x62,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0xfe,0xdf,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x61,0x60,0x60,0x60,0x60,0x60,0x60, -0x60,0x60,0x60,0x06,0xcd,0x62,0x62,0x62,0x62,0x62,0x62,0x62,0x01,0x22,0x62,0x62,0x62,0x62,0x62,0x62,0x62,0xfe,0xdf,0x60,0x60,0xc0,0x62,0x61,0x60,0x60,0xc0,0x60,0x60,0xc3,0x60,0x60,0xfe,0xdf,0x61,0x61,0x62,0x5e,0x5e,0xfe,0xdf,0x61,0x61,0x60,0x60,0x60,0x06,0xcd,0x62,0x01,0x22,0x62,0x00,0x01,0x00,0x77,0x00,0x75,0x04,0x56, -0x04,0x54,0x00,0x03,0x00,0x0d,0xb3,0x00,0x01,0x02,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x11,0x21,0x77,0x03,0xdf,0xfc,0x21,0x04,0x54,0xfc,0x21,0x00,0x02,0x00,0x02,0x00,0x00,0x04,0xcb,0x04,0xc9,0x00,0x03,0x00,0x07,0x00,0x26,0x41,0x0c,0x00,0x05,0x01,0x01,0x00,0x03,0x00,0x06,0x01,0x01,0x00,0x02,0x00,0x05, -0x01,0x02,0x00,0x03,0x00,0x04,0x01,0x02,0x00,0x00,0x00,0x2f,0xed,0x2f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x13,0x21,0x11,0x21,0x13,0x11,0x21,0x11,0x02,0x04,0xc9,0xfb,0x37,0x4c,0x04,0x31,0x04,0xc9,0xfb,0x37,0x04,0x7d,0xfb,0xcf,0x04,0x31,0x00,0x01,0x01,0x68,0x01,0x7f,0x03,0x64,0x03,0x7b,0x00,0x03,0x00,0x14,0x40,0x09, -0x00,0x00,0x01,0x60,0x01,0x02,0x01,0x00,0x02,0x00,0x2f,0xcd,0x01,0x2f,0x5d,0xcd,0x31,0x30,0x01,0x21,0x11,0x21,0x03,0x64,0xfe,0x04,0x01,0xfc,0x01,0x7f,0x01,0xfc,0x00,0x02,0x01,0x68,0x01,0x7f,0x03,0x64,0x03,0x7b,0x00,0x03,0x00,0x07,0x00,0x2b,0xbc,0x00,0x04,0x01,0x01,0x00,0x00,0x00,0x07,0x01,0x01,0xb6,0x00,0x01,0x60,0x01, -0x02,0x01,0x07,0xbc,0x01,0x02,0x00,0x00,0x00,0x06,0x01,0x02,0x00,0x02,0x00,0x2f,0xed,0xdc,0xed,0x01,0x2f,0x5d,0xed,0xdd,0xed,0x31,0x30,0x01,0x21,0x11,0x21,0x03,0x11,0x21,0x11,0x03,0x64,0xfe,0x04,0x01,0xfc,0x4c,0xfe,0x9c,0x01,0x7f,0x01,0xfc,0xfe,0x50,0x01,0x62,0xfe,0x9e,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x46,0x04,0xc5, -0x02,0x22,0x00,0x03,0x00,0x0d,0xb3,0x00,0x01,0x02,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x11,0x21,0x08,0x04,0xbd,0xfb,0x43,0x02,0x22,0xfe,0x24,0x00,0x01,0x00,0x0f,0x00,0x32,0x04,0xbd,0x04,0xae,0x00,0x02,0x00,0x0d,0xb3,0x00,0x02,0x00,0x01,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x37,0x09,0x01,0x0f,0x02, -0x58,0x02,0x56,0x32,0x04,0x7c,0xfb,0x84,0x00,0x01,0x00,0x34,0xff,0xe5,0x04,0xcb,0x04,0xac,0x00,0x02,0x00,0x0d,0xb3,0x00,0x01,0x02,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x13,0x09,0x01,0x34,0x04,0x97,0xfb,0x69,0x04,0xac,0xfd,0x9e,0xfd,0x9b,0x00,0x00,0x00,0x00,0x01,0x00,0x0f,0xff,0xe5,0x04,0xbd,0x04,0x61,0x00,0x02, -0x00,0x0d,0xb3,0x02,0x00,0x01,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x09,0x02,0x04,0xbd,0xfd,0xaa,0xfd,0xa8,0x04,0x61,0xfb,0x84,0x04,0x7c,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0xff,0xe5,0x04,0x99,0x04,0xac,0x00,0x02,0x00,0x0d,0xb3,0x02,0x00,0x01,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x11,0x01,0x04,0x99, -0xfb,0x69,0x04,0xac,0xfb,0x39,0x02,0x65,0x00,0x02,0x00,0x73,0x00,0x00,0x04,0x59,0x05,0xa0,0x00,0x05,0x00,0x09,0x00,0x55,0x40,0x32,0x04,0x03,0x06,0x00,0x01,0x06,0x03,0x08,0x08,0x02,0x05,0xaa,0x10,0x09,0x20,0x09,0x30,0x09,0x70,0x09,0x80,0x09,0x05,0x09,0x09,0x0b,0x07,0xaa,0x00,0x02,0x10,0x02,0x02,0x02,0x02,0x05,0x09,0x03, -0x07,0x07,0x08,0x06,0xb0,0x0f,0x03,0x01,0x03,0x08,0xb0,0x01,0x00,0x2f,0xed,0x2f,0x5d,0xed,0x12,0x39,0x3d,0x2f,0x17,0x33,0x01,0x18,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x11,0x39,0x3d,0x2f,0x17,0x33,0x11,0x33,0x33,0x31,0x30,0x21,0x23,0x09,0x01,0x33,0x09,0x04,0x02,0x8e,0x52,0xfe,0x37,0x01,0xc9,0x52,0x01,0xcb,0xfe,0x0e, -0xfe,0x9e,0x01,0x62,0x01,0x60,0x02,0xcf,0x02,0xd1,0xfd,0x31,0x02,0x35,0xfd,0xcb,0xfd,0xc2,0x02,0x3e,0x00,0x02,0x00,0xa3,0x00,0xa2,0x04,0x2a,0x04,0x29,0x00,0x13,0x00,0x27,0x00,0x47,0x40,0x15,0x4b,0x26,0x5b,0x26,0x02,0x4b,0x20,0x5b,0x20,0x02,0x44,0x1c,0x54,0x1c,0x02,0x44,0x16,0x54,0x16,0x02,0x1e,0xb8,0x01,0x01,0xb2,0x0a, -0x0a,0x14,0xb8,0x01,0x01,0xb4,0x00,0x00,0x01,0x00,0x19,0xb8,0x01,0x02,0xb2,0x0f,0x0f,0x23,0xb9,0x01,0x02,0x00,0x05,0x00,0x2f,0xed,0x33,0x2f,0xed,0x01,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x13,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x37,0x14,0x1e,0x02,0x33, -0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0xa3,0x46,0x7a,0xa4,0x5e,0x5e,0xa5,0x7b,0x47,0x47,0x7b,0xa5,0x5e,0x5e,0xa4,0x7a,0x46,0x56,0x39,0x62,0x85,0x4c,0x4c,0x86,0x63,0x3a,0x3a,0x63,0x86,0x4c,0x4c,0x85,0x62,0x39,0x02,0x64,0x5e,0xa5,0x7b,0x47,0x47,0x7b,0xa5,0x5e,0x5e,0xa4,0x7a,0x46,0x46,0x7a,0xa4,0x5e,0x4c, -0x84,0x63,0x39,0x39,0x63,0x84,0x4c,0x4c,0x86,0x63,0x3a,0x3a,0x63,0x86,0x00,0x00,0x00,0x01,0x00,0xae,0x00,0x89,0x04,0x1f,0x03,0xfa,0x00,0x17,0x00,0x18,0x40,0x0d,0x08,0x00,0x10,0x90,0x10,0xa0,0x10,0xb0,0x10,0x04,0x10,0x0c,0x00,0x00,0x2f,0xcd,0x01,0x2f,0x5d,0xcd,0x31,0x30,0x01,0x32,0x17,0x1e,0x01,0x17,0x1e,0x01,0x15,0x14, -0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x36,0x37,0x3e,0x01,0x37,0x36,0x02,0x66,0x6e,0x6b,0x35,0x52,0x1d,0x1d,0x1f,0x81,0x81,0xb7,0xb6,0x81,0x81,0x1e,0x1d,0x1d,0x53,0x34,0x6c,0x03,0xfa,0x39,0x1c,0x52,0x34,0x36,0x6e,0x39,0xb7,0x81,0x81,0x81,0x81,0xb7,0x3a,0x6d,0x36,0x34,0x52,0x1c,0x39,0x00,0x00,0x00,0x00,0x02,0x00,0x25, -0x00,0x00,0x04,0xa8,0x04,0x83,0x00,0x03,0x00,0x17,0x00,0x1e,0x40,0x0e,0xcf,0x0e,0x01,0xdf,0x0e,0x01,0x0e,0x03,0x04,0x00,0x13,0x01,0x09,0x00,0x00,0x2f,0xcd,0x2f,0xcd,0x01,0x2f,0xcd,0xdd,0xcd,0x5d,0x71,0x31,0x30,0x33,0x11,0x21,0x11,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x25,0x04, -0x83,0xfc,0x04,0x45,0x78,0xa0,0x5b,0x5b,0xa1,0x78,0x45,0x45,0x78,0xa1,0x5b,0x5b,0xa0,0x78,0x45,0x04,0x83,0xfb,0x7d,0x02,0x41,0x5b,0xa0,0x78,0x45,0x45,0x78,0xa0,0x5b,0x5b,0xa1,0x78,0x45,0x45,0x78,0xa1,0x00,0x03,0x00,0x25,0x00,0x00,0x04,0xa8,0x04,0x83,0x00,0x03,0x00,0x17,0x00,0x2b,0x00,0x30,0x40,0x19,0xf0,0x04,0x01,0x04, -0x18,0x00,0x00,0x0e,0x01,0x0e,0xcf,0x22,0x01,0xdf,0x22,0x01,0x22,0x03,0x00,0x09,0x27,0x01,0x13,0x1d,0x00,0x00,0x2f,0xdd,0xce,0x2f,0xdd,0xce,0x01,0x2f,0xdd,0xdd,0x5d,0x71,0xce,0x72,0x10,0xdd,0xce,0x71,0x31,0x30,0x33,0x11,0x21,0x11,0x01,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x14, -0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x25,0x04,0x83,0xfc,0x51,0x3a,0x63,0x85,0x4b,0x4b,0x85,0x63,0x3a,0x3a,0x63,0x85,0x4b,0x4b,0x85,0x63,0x3a,0x4d,0x45,0x78,0xa0,0x5b,0x5b,0xa1,0x78,0x45,0x45,0x78,0xa1,0x5b,0x5b,0xa0,0x78,0x45,0x04,0x83,0xfb,0x7d,0x02,0x41,0x4b,0x85,0x63,0x3a,0x3a,0x63, -0x85,0x4b,0x4b,0x85,0x63,0x3a,0x3a,0x63,0x85,0x4b,0x5b,0xa0,0x78,0x45,0x45,0x78,0xa0,0x5b,0x5b,0xa1,0x78,0x45,0x45,0x78,0xa1,0x00,0x00,0x00,0x00,0x02,0x01,0x6e,0x01,0x85,0x03,0x5e,0x03,0x75,0x00,0x12,0x00,0x22,0x00,0x30,0xbc,0x00,0x13,0x01,0x01,0x00,0x00,0x00,0x1b,0x01,0x01,0x40,0x0b,0x00,0x0b,0x50,0x0b,0x60,0x0b,0xb0, -0x0b,0x04,0x0b,0x1f,0xbc,0x01,0x02,0x00,0x06,0x00,0x17,0x01,0x02,0x00,0x0f,0x00,0x2f,0xed,0xdc,0xed,0x01,0x2f,0x5d,0xed,0xd4,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x0e,0x01,0x23,0x22,0x27,0x2e,0x01,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x03, -0x5e,0x25,0x25,0x25,0x56,0x33,0x65,0x4b,0x23,0x25,0x48,0x4a,0x66,0x67,0x47,0x4a,0x4c,0x33,0x33,0x46,0x46,0x33,0x33,0x33,0x31,0x48,0x48,0x31,0x33,0x02,0x7d,0x35,0x56,0x25,0x23,0x25,0x48,0x25,0x56,0x35,0x66,0x48,0x4a,0x4a,0x47,0x67,0x46,0x33,0x33,0x33,0x33,0x46,0x45,0x36,0x31,0x31,0x36,0x00,0x00,0x00,0x00,0x05,0x00,0x1b, -0x00,0x02,0x04,0xb1,0x04,0x98,0x00,0x19,0x00,0x2d,0x00,0x39,0x00,0x45,0x00,0x5b,0x00,0xbf,0x40,0x4a,0x1b,0x2c,0x2b,0x2c,0x6b,0x2c,0x7b,0x2c,0x04,0x69,0x2b,0x79,0x2b,0x02,0x69,0x27,0x79,0x27,0x02,0x1b,0x26,0x2b,0x26,0x6b,0x26,0x7b,0x26,0x04,0x14,0x22,0x24,0x22,0x64,0x22,0x74,0x22,0x04,0x66,0x21,0x76,0x21,0x02,0x66,0x1d, -0x76,0x1d,0x02,0x14,0x1c,0x24,0x1c,0x64,0x1c,0x74,0x1c,0x04,0x34,0xff,0x2e,0x3a,0xff,0x40,0x5b,0x00,0x2e,0x51,0x40,0x0c,0x2e,0x40,0x2e,0x40,0x00,0x24,0xbb,0x01,0x01,0x00,0x0c,0x00,0x1a,0x01,0x01,0xb2,0x00,0x50,0x46,0xb8,0xff,0xc0,0xb5,0x09,0x0d,0x48,0x46,0x46,0x56,0xb8,0x01,0x04,0xb2,0x4b,0x43,0x37,0xb8,0x01,0x00,0x40, -0x0e,0x31,0x3d,0x31,0x3f,0x4b,0x4f,0x4b,0x02,0x4b,0x31,0x4b,0x31,0x07,0x1f,0xbb,0x01,0x02,0x00,0x13,0x00,0x29,0x01,0x02,0xb1,0x07,0x13,0x00,0x2f,0xdc,0xed,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x33,0x2f,0x2b,0x33,0x01,0x2f,0xed,0xd4,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11, -0x12,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x34,0x3e,0x04,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x04,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x37,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x25,0x34,0x36, -0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x01,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x1b,0x2a,0x4c,0x6c,0x82,0x96,0x51,0x7a,0xd5,0xa0,0x5c,0x2a,0x4c,0x6c,0x82,0x96,0x51,0x51,0x96,0x82,0x6c,0x4c,0x2a,0x3f,0x52,0x8f,0xbf,0x6c,0x6c,0xbe,0x8f,0x52,0x52,0x8f,0xbe,0x6c,0x6c,0xbf,0x8f, -0x52,0xec,0x29,0x1d,0x1d,0x2a,0x2a,0x1d,0x1d,0x29,0x01,0xb3,0x29,0x1d,0x1d,0x2a,0x2a,0x1d,0x1d,0x29,0xfe,0x68,0x12,0x2c,0x3d,0x52,0x38,0x38,0x52,0x3d,0x2c,0x12,0x3a,0x13,0x36,0x4d,0x65,0x44,0x43,0x66,0x4d,0x35,0x14,0x02,0x4d,0x51,0x96,0x82,0x6c,0x4c,0x2a,0x5c,0xa0,0xd5,0x7a,0x51,0x96,0x82,0x6c,0x4c,0x2a,0x2a,0x4c,0x6c, -0x82,0x96,0x51,0x6c,0xbf,0x8f,0x52,0x52,0x8f,0xbf,0x6c,0x6c,0xbe,0x8f,0x52,0x52,0x8f,0xbe,0x2c,0x1d,0x2a,0x2a,0x1d,0x1d,0x29,0x29,0x1d,0x1d,0x2a,0x2a,0x1d,0x1d,0x29,0x29,0xfe,0xf2,0x18,0x30,0x27,0x19,0x19,0x27,0x30,0x18,0x31,0x1e,0x3f,0x33,0x21,0x21,0x33,0x3f,0x1e,0x00,0x00,0x00,0x00,0x04,0x00,0x1b,0x00,0x02,0x04,0xb1, -0x04,0x98,0x00,0x19,0x00,0x25,0x00,0x31,0x00,0x47,0x00,0x6d,0x40,0x1e,0x26,0xff,0x2c,0x20,0xff,0x1a,0x3c,0x0c,0x2c,0x32,0x1a,0x00,0x1f,0x2c,0x2f,0x2c,0x02,0x10,0x1a,0x20,0x1a,0x02,0x2c,0x1a,0x2c,0x1a,0x0c,0x00,0x29,0x1d,0xb8,0x01,0x00,0xb6,0x23,0x2f,0x23,0x3d,0x47,0x47,0x37,0xb8,0x01,0x04,0x40,0x15,0x42,0x0f,0x23,0x01, -0x0f,0x42,0x3f,0x42,0x4f,0x42,0x6f,0x42,0x7f,0x42,0x05,0x23,0x42,0x23,0x42,0x07,0x13,0x00,0x2f,0xc4,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x10,0xee,0x33,0x2f,0x33,0x11,0x33,0x10,0xe6,0x32,0x01,0x2f,0xcd,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xe6,0x10,0xe6,0x31,0x30,0x13,0x34,0x3e,0x04,0x33,0x32,0x1e, -0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x04,0x25,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x05,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x1b,0x2a,0x4c,0x6c,0x82,0x96,0x51,0x7a,0xd5,0xa0,0x5c,0x2a,0x4c,0x6c,0x82, -0x96,0x51,0x51,0x96,0x82,0x6c,0x4c,0x2a,0x01,0x2b,0x29,0x1d,0x1d,0x2a,0x2a,0x1d,0x1d,0x29,0x01,0xb3,0x29,0x1d,0x1d,0x2a,0x2a,0x1d,0x1d,0x29,0xfe,0x2e,0x14,0x35,0x4d,0x66,0x43,0x44,0x65,0x4d,0x36,0x13,0x3a,0x12,0x2c,0x3d,0x52,0x38,0x38,0x52,0x3d,0x2c,0x12,0x02,0x4d,0x51,0x96,0x82,0x6c,0x4c,0x2a,0x5c,0xa0,0xd5,0x7a,0x51, -0x96,0x82,0x6c,0x4c,0x2a,0x2a,0x4c,0x6c,0x82,0x96,0xe9,0x1d,0x29,0x29,0x1d,0x1d,0x2a,0x2a,0x1d,0x1d,0x29,0x29,0x1d,0x1d,0x2a,0x2a,0xfe,0x87,0x1e,0x3f,0x33,0x21,0x21,0x33,0x3f,0x1e,0x31,0x18,0x30,0x27,0x19,0x19,0x27,0x30,0x18,0x00,0x00,0x00,0x00,0x02,0x00,0x1a,0xff,0x86,0x04,0xb2,0x04,0x1e,0x00,0x2f,0x00,0x43,0x00,0x8f, -0xb7,0x59,0x2f,0x69,0x2f,0x79,0x2f,0x03,0x24,0xb8,0xff,0xf0,0xb3,0x0e,0x11,0x48,0x17,0xb8,0xff,0xf0,0x40,0x0b,0x0e,0x11,0x48,0x59,0x0c,0x69,0x0c,0x79,0x0c,0x03,0x30,0xb8,0x01,0x01,0xb4,0x2b,0x28,0x28,0x04,0x3a,0xb8,0x01,0x01,0xb7,0x10,0x70,0x13,0x01,0x13,0x13,0x1c,0x07,0xb8,0x01,0x01,0x40,0x0e,0x1f,0x00,0x04,0x10,0x04, -0x40,0x04,0x50,0x04,0x70,0x04,0x05,0x04,0x35,0xb8,0x01,0x02,0xb4,0x1f,0x1c,0x1c,0x13,0x28,0xbb,0x01,0x02,0x00,0x2b,0x00,0x3f,0x01,0x02,0x40,0x0b,0x04,0x70,0x07,0x01,0x07,0x07,0x10,0x1f,0x2b,0x01,0x2b,0x00,0x2f,0x5d,0x33,0x33,0x2f,0x5d,0x33,0xed,0x10,0xed,0x32,0x32,0x2f,0x33,0xed,0x01,0x2f,0x5d,0x33,0xed,0x32,0x32,0x2f, -0x5d,0x33,0xed,0x11,0x33,0x2f,0x33,0xed,0x31,0x30,0x00,0x5d,0x2b,0x2b,0x5d,0x13,0x17,0x3e,0x01,0x37,0x35,0x33,0x15,0x1e,0x01,0x17,0x37,0x17,0x07,0x1e,0x01,0x17,0x33,0x15,0x23,0x0e,0x01,0x07,0x17,0x07,0x27,0x0e,0x01,0x07,0x15,0x23,0x35,0x2e,0x01,0x27,0x07,0x27,0x37,0x2e,0x01,0x27,0x23,0x35,0x33,0x3e,0x01,0x37,0x27,0x13, -0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0xe0,0xa4,0x28,0x60,0x36,0x48,0x36,0x5f,0x28,0xa5,0x33,0xa5,0x20,0x2a,0x05,0xe9,0xe9,0x05,0x2a,0x20,0xa5,0x33,0xa5,0x28,0x5f,0x36,0x48,0x36,0x60,0x28,0xa4,0x33,0xa4,0x20,0x2a,0x05,0xe8,0xe8,0x05,0x2a,0x20,0xa4,0x9c,0x2d,0x4d,0x68,0x3b,0x3b,0x68, -0x4d,0x2d,0x2d,0x4d,0x68,0x3b,0x3b,0x68,0x4d,0x2d,0x03,0x8b,0xa5,0x20,0x2a,0x05,0xe9,0xe9,0x05,0x2a,0x20,0xa5,0x33,0xa5,0x28,0x5f,0x36,0x48,0x36,0x60,0x28,0xa4,0x33,0xa4,0x20,0x2a,0x05,0xe8,0xe8,0x05,0x2a,0x20,0xa4,0x33,0xa4,0x28,0x60,0x36,0x48,0x36,0x5f,0x28,0xa5,0xfe,0x7a,0x3c,0x68,0x4d,0x2c,0x2c,0x4d,0x68,0x3c,0x3b, -0x68,0x4d,0x2d,0x2d,0x4d,0x68,0x00,0x00,0x00,0x02,0x01,0x3c,0x00,0x46,0x03,0x90,0x04,0x94,0x00,0x1e,0x00,0x32,0x00,0x56,0xb6,0x14,0x20,0x0c,0x0f,0x48,0x17,0x1b,0xb8,0x01,0x01,0xb4,0x01,0x1c,0x1c,0x07,0x29,0xb8,0x01,0x01,0xb2,0x19,0x11,0x1f,0xb8,0x01,0x01,0xb4,0x1e,0x07,0x1c,0x1a,0x1e,0xb8,0x01,0x02,0xb3,0x17,0x00,0x00, -0x24,0xb8,0x01,0x02,0xb5,0x16,0x30,0x02,0x01,0x02,0x2e,0xb9,0x01,0x02,0x00,0x0c,0x00,0x2f,0xed,0xd4,0x5d,0x32,0xed,0x33,0x2f,0x33,0xed,0x32,0x32,0x01,0x2f,0x33,0xed,0xd4,0x32,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x00,0x2b,0x01,0x33,0x35,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07, -0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x23,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x01,0x58,0xea,0x37,0x60,0x46,0x29,0x2f,0x51,0x6d,0x3d,0x3e,0x6c,0x51,0x2f,0x29,0x46,0x60,0x37,0xea,0xea,0x48,0xea,0x2c,0x23,0x3e,0x52,0x2f,0x2f,0x52,0x3d,0x24,0x24,0x3d,0x52,0x2f,0x2f,0x52,0x3e,0x23, -0x01,0x78,0xca,0x07,0x33,0x4f,0x66,0x39,0x3e,0x6c,0x51,0x2f,0x2f,0x51,0x6c,0x3e,0x39,0x66,0x4f,0x33,0x07,0xca,0x48,0xea,0xea,0x02,0x3a,0x2f,0x52,0x3e,0x23,0x23,0x3e,0x52,0x2f,0x2f,0x52,0x3d,0x24,0x24,0x3d,0x52,0x00,0x00,0x00,0x02,0x00,0xa4,0x00,0x72,0x04,0x04,0x03,0xd2,0x00,0x1d,0x00,0x31,0x00,0x67,0xb3,0x10,0x09,0x0b, -0x0f,0xb8,0x01,0x01,0x40,0x0c,0x0f,0x0e,0x1f,0x0e,0x2f,0x0e,0x03,0x0e,0x11,0x08,0x00,0x28,0xbb,0x01,0x01,0x00,0x14,0x00,0x1e,0x01,0x01,0xb7,0x00,0x00,0x01,0x00,0x08,0x11,0x05,0x23,0xb8,0x01,0x02,0x40,0x13,0x30,0x19,0x01,0x19,0x05,0x09,0x10,0x0e,0x0a,0x0f,0x0b,0x1f,0x0b,0x2f,0x0b,0x03,0x0b,0x0b,0x2d,0xb9,0x01,0x02,0x00, -0x05,0x00,0x2f,0xed,0x33,0x2f,0x5d,0xcd,0xcc,0x39,0x39,0x10,0xd4,0x5d,0xed,0x12,0x39,0x39,0x01,0x2f,0x5d,0xed,0xd4,0xed,0x12,0x39,0x39,0xd6,0x5d,0xed,0xc4,0x39,0x39,0x31,0x30,0x13,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x01,0x2f,0x01,0x21,0x17,0x11,0x2f,0x01,0x01,0x1e,0x01,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x37,0x14, -0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0xa4,0x2f,0x51,0x6d,0x3d,0x34,0x5d,0x26,0x01,0x01,0xe2,0x02,0x01,0x4b,0x17,0x37,0x14,0xfe,0xff,0x1e,0x22,0x2f,0x51,0x6c,0x3e,0x3d,0x6d,0x51,0x2f,0x48,0x23,0x3e,0x52,0x2f,0x2f,0x52,0x3d,0x24,0x24,0x3d,0x52,0x2f,0x2f,0x52,0x3e,0x23,0x01,0x9c,0x3e,0x6c, -0x51,0x2f,0x22,0x1e,0x01,0x01,0x14,0x37,0x17,0xfe,0xb5,0x02,0xe2,0xfe,0xff,0x26,0x5d,0x34,0x3d,0x6d,0x51,0x2f,0x2f,0x51,0x6d,0x3d,0x2f,0x52,0x3e,0x23,0x23,0x3e,0x52,0x2f,0x2f,0x52,0x3d,0x24,0x24,0x3d,0x52,0x00,0x00,0x00,0x00,0x01,0x00,0x66,0x00,0x00,0x04,0x66,0x04,0xab,0x00,0x35,0x00,0x46,0x40,0x2e,0x47,0x30,0x57,0x30, -0x02,0x20,0x0a,0x30,0x0a,0x70,0x0a,0x03,0x0a,0x14,0x3f,0x2b,0x7f,0x2b,0x02,0x2b,0x10,0x21,0x40,0x21,0x50,0x21,0x80,0x21,0x04,0x21,0x0f,0x26,0x14,0x21,0x21,0x1f,0x26,0x2f,0x26,0x3f,0x26,0x03,0x26,0x26,0x1a,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x5d,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0xcd,0x5d,0xdd,0xcd,0x5d,0x31,0x30,0x5d, -0x01,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x14,0x1e,0x02,0x33,0x15,0x21,0x35,0x32,0x3e,0x02,0x35,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x35,0x02,0x80,0x29,0x45,0x5b,0x32,0x38,0x57,0x3c,0x20,0x27,0x42,0x55,0x2d,0x24,0x46,0x3d,0x30,0x0e,0x2f,0x55,0x76,0x46, -0xfd,0x20,0x47,0x75,0x55,0x2f,0x0e,0x30,0x3d,0x46,0x24,0x2d,0x55,0x42,0x27,0x20,0x3c,0x58,0x37,0x32,0x5b,0x45,0x29,0x04,0xab,0x2e,0x67,0x65,0x60,0x27,0x2c,0x51,0x4f,0x53,0x2d,0x3a,0x59,0x3c,0x1f,0x13,0x1d,0x24,0x10,0x44,0x6a,0x48,0x26,0x38,0x38,0x26,0x48,0x6a,0x44,0x10,0x24,0x1d,0x13,0x1f,0x3c,0x59,0x3a,0x2d,0x53,0x4f, -0x51,0x2c,0x27,0x60,0x65,0x67,0x2e,0x00,0x00,0x01,0x00,0x61,0x00,0x00,0x04,0x6b,0x04,0xab,0x00,0x3e,0x00,0x54,0x40,0x34,0x35,0x26,0x3a,0x3a,0x2f,0x30,0x3f,0x30,0x7f,0x30,0x03,0x30,0x26,0x0a,0x19,0x05,0x05,0x20,0x0f,0x30,0x0f,0x70,0x0f,0x03,0x0f,0x19,0x10,0x26,0x40,0x26,0x50,0x26,0x80,0x26,0x04,0x26,0x14,0x2b,0x19,0x26, -0x26,0x1f,0x2b,0x2f,0x2b,0x3f,0x2b,0x03,0x2b,0x2b,0x1f,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x5d,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0xdd,0xcd,0x5d,0x39,0x2f,0x12,0x39,0x10,0xcd,0x5d,0x39,0x2f,0x12,0x39,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x36,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x14, -0x1e,0x02,0x33,0x15,0x21,0x35,0x32,0x3e,0x02,0x35,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x17,0x2e,0x03,0x35,0x34,0x3e,0x02,0x02,0x66,0x4b,0x6a,0x42,0x1e,0x13,0x20,0x2b,0x18,0x53,0x85,0x5d,0x31,0x27,0x42,0x55,0x2d,0x24,0x47,0x3f,0x32,0x0e,0x2f,0x55,0x76,0x46,0xfd,0x20,0x47,0x75,0x55,0x2f,0x0e,0x32,0x3f,0x47, -0x24,0x2d,0x55,0x42,0x27,0x31,0x5d,0x85,0x53,0x18,0x2b,0x20,0x13,0x1e,0x42,0x6a,0x04,0xab,0x2c,0x45,0x53,0x26,0x23,0x46,0x3e,0x34,0x11,0x08,0x1f,0x43,0x61,0x3c,0x3a,0x59,0x3c,0x1f,0x13,0x1d,0x24,0x10,0x44,0x6a,0x48,0x26,0x38,0x38,0x26,0x48,0x6a,0x44,0x10,0x24,0x1d,0x13,0x1f,0x3c,0x59,0x3a,0x3c,0x61,0x43,0x1f,0x08,0x11, -0x34,0x3e,0x46,0x23,0x26,0x53,0x45,0x2c,0x00,0x01,0x00,0x66,0xff,0xff,0x04,0x66,0x04,0x68,0x00,0x29,0x00,0x2a,0x40,0x1a,0x09,0x26,0x01,0x06,0x03,0x01,0x10,0x1f,0x01,0x1f,0x1f,0x2b,0x10,0x0a,0x40,0x0a,0x50,0x0a,0x70,0x0a,0x80,0x0a,0x05,0x0a,0x0f,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x5d,0x11,0x33,0x2f,0x5d,0x31,0x30,0x5d,0x5d, -0x05,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15,0x02,0x4c,0x30,0x4a,0x58,0x29,0x34,0x56,0x3e,0x23,0x2b,0x45,0x58,0x2d,0x2f,0x54,0x44,0x33,0x0e,0x06,0x0e,0x33,0x44,0x54,0x2f,0x2d,0x58,0x45,0x2b,0x23,0x3e,0x56,0x34, -0x28,0x59,0x4a,0x30,0x01,0x2f,0x6e,0x74,0x71,0x31,0x3f,0x79,0x71,0x68,0x2d,0x3a,0x5c,0x40,0x22,0x25,0x3f,0x53,0x2f,0x2f,0x53,0x3f,0x25,0x22,0x40,0x5c,0x3a,0x2d,0x68,0x71,0x79,0x3f,0x31,0x71,0x74,0x6e,0x2f,0x00,0x00,0x00,0x00,0x01,0x00,0x84,0xff,0xff,0x04,0x48,0x04,0xae,0x00,0x17,0x00,0x2c,0x40,0x1c,0x70,0x10,0x80,0x10, -0x02,0x4f,0x10,0x01,0x30,0x10,0x01,0x0f,0x10,0x01,0x10,0x10,0x00,0x04,0x10,0x04,0x40,0x04,0x50,0x04,0x04,0x04,0x16,0x0a,0x00,0x2f,0x2f,0x01,0x2f,0x5d,0x33,0x2f,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x24,0x2e,0x02,0x27,0x35,0x3e,0x03,0x37,0x33,0x1e,0x03,0x17,0x15,0x0e,0x03,0x07,0x23,0x02,0x31,0x70,0x7b,0x82,0x40,0x40,0x82,0x7b, -0x70,0x2f,0x0c,0x2f,0x70,0x7b,0x82,0x40,0x40,0x82,0x7b,0x70,0x2f,0x0c,0x40,0x95,0x9b,0x9c,0x49,0x03,0x49,0x9c,0x9b,0x95,0x41,0x41,0x95,0x9b,0x9c,0x49,0x03,0x49,0x9c,0x9b,0x95,0x41,0x00,0x01,0x01,0x1a,0x00,0x18,0x03,0xa9,0x04,0x66,0x00,0x2a,0x00,0x2c,0x40,0x17,0x03,0x40,0x25,0x80,0x1d,0x09,0x1f,0x13,0x01,0x13,0x00,0x1b, -0x10,0x1b,0x30,0x1b,0x03,0x1b,0x08,0x1c,0x0d,0x00,0x18,0x00,0x2f,0x33,0xcd,0x2f,0x33,0x01,0x2f,0x5d,0xcd,0x5d,0xcd,0x32,0x1a,0xdc,0x1a,0xcd,0x31,0x30,0x01,0x3e,0x01,0x35,0x34,0x2e,0x02,0x27,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x11,0x33,0x1e,0x01,0x17,0x1e,0x03,0x15,0x14,0x0e, -0x02,0x07,0x03,0x14,0x23,0x29,0x21,0x37,0x48,0x28,0x29,0x40,0x4f,0x26,0x21,0x3a,0x2c,0x19,0x27,0x3f,0x4e,0x28,0x1a,0x34,0x16,0x26,0x05,0x3b,0x45,0x2b,0x3e,0x28,0x13,0x14,0x1f,0x24,0x10,0x01,0x10,0x26,0x73,0x41,0x3a,0x62,0x4d,0x35,0x0d,0xfd,0xaa,0x25,0x3e,0x2c,0x18,0x11,0x20,0x2e,0x1d,0x22,0x3c,0x2d,0x1a,0x0b,0x0c,0x03, -0x44,0x31,0x78,0x46,0x2c,0x54,0x56,0x5b,0x33,0x2e,0x50,0x41,0x33,0x11,0x00,0x00,0x00,0x02,0x00,0x70,0xff,0xd2,0x04,0x3c,0x04,0x83,0x00,0x29,0x00,0x2d,0x00,0x86,0x40,0x53,0x2a,0x10,0x22,0x2b,0x25,0x1f,0x05,0x01,0x05,0x0d,0x0d,0x1f,0x1a,0x01,0x1a,0x00,0x22,0x10,0x22,0x02,0x22,0x89,0x0f,0x01,0x0f,0x2a,0x88,0x2a,0x01,0x67, -0x2a,0x01,0x54,0x2a,0x01,0x2a,0x89,0x0e,0x01,0x0e,0x2b,0x27,0x2b,0x01,0x15,0x2b,0x01,0x04,0x2b,0x01,0x2b,0x24,0x79,0x2d,0x89,0x2d,0x02,0x2d,0x23,0x77,0x23,0x87,0x23,0x02,0x56,0x23,0x01,0x23,0x24,0x00,0x0a,0x0a,0x1f,0x89,0x2c,0x01,0x2c,0x24,0x15,0x3f,0x1f,0x01,0x1f,0x00,0x2f,0x5d,0xcd,0x2f,0x33,0x5d,0x12,0x39,0x2f,0xcd, -0x11,0x33,0x5d,0x5d,0x11,0x33,0x5d,0x11,0x33,0x5d,0x5d,0x5d,0x11,0x33,0x5d,0x33,0x5d,0x5d,0x5d,0x11,0x33,0x5d,0x01,0x2f,0x5d,0xcd,0x5d,0x33,0x2f,0xcd,0x5d,0xcd,0x33,0x10,0xcd,0x32,0x31,0x30,0x25,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x11,0x05,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02, -0x33,0x32,0x16,0x17,0x11,0x25,0x11,0x14,0x0e,0x02,0x01,0x25,0x35,0x05,0x03,0x5e,0x21,0x3a,0x2c,0x19,0x27,0x3f,0x4e,0x28,0x1a,0x34,0x16,0xfd,0xf0,0x29,0x40,0x4f,0x26,0x21,0x3a,0x2c,0x19,0x27,0x3f,0x4e,0x28,0x1a,0x34,0x16,0x02,0x8c,0x29,0x40,0x4f,0xfe,0x6a,0x02,0x10,0xfd,0xf0,0x2c,0x11,0x20,0x2e,0x1d,0x22,0x3c,0x2d,0x1a, -0x0b,0x0c,0x01,0xb3,0x51,0xfd,0xe1,0x25,0x3e,0x2c,0x18,0x11,0x20,0x2e,0x1d,0x22,0x3c,0x2d,0x1a,0x0b,0x0c,0x03,0x43,0x64,0xfc,0x50,0x25,0x3e,0x2c,0x18,0x02,0xf8,0x51,0x78,0x51,0x00,0x00,0x03,0x00,0x54,0x00,0x00,0x04,0x25,0x05,0xcc,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x7e,0xb5,0x45,0x0a,0x55,0x0a,0x02,0x0a,0xb8,0xff,0xe0, -0x40,0x46,0x09,0x0c,0x48,0x1a,0x1a,0x0f,0x40,0x1d,0x22,0x48,0x0f,0x40,0x0b,0x18,0x48,0x0f,0x0f,0x20,0x02,0x1c,0x46,0x1f,0x1f,0x23,0x46,0x60,0x20,0xd0,0x20,0x02,0x20,0x20,0x25,0x19,0x01,0x46,0x02,0x05,0x05,0x06,0x00,0x02,0x01,0x02,0x30,0x1c,0x60,0x1c,0x02,0x80,0x1c,0x90,0x1c,0x02,0x1c,0x1d,0x13,0x50,0x0c,0x00,0x00,0x04, -0x51,0x21,0x19,0x05,0x0f,0x20,0x01,0x15,0x00,0x3f,0x33,0x3f,0x33,0x33,0xed,0x32,0x3f,0xed,0x2f,0x2f,0x5d,0x71,0x01,0x2f,0x5d,0x33,0x33,0x2f,0x10,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0xed,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x33,0x2f,0x31,0x30,0x00,0x2b,0x5d,0x01,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33, -0x32,0x16,0x17,0x15,0x2e,0x01,0x23,0x22,0x0e,0x02,0x1d,0x01,0x33,0x15,0x13,0x35,0x33,0x15,0x03,0x11,0x33,0x11,0x01,0xa0,0xb4,0x98,0x98,0x16,0x3b,0x66,0x51,0x20,0x45,0x1a,0x11,0x2d,0x12,0x28,0x33,0x1d,0x0b,0xd3,0xfe,0xb4,0xb4,0xb4,0x03,0xb7,0xfc,0x49,0x03,0xb7,0x83,0x7a,0x3b,0x65,0x4b,0x2b,0x06,0x06,0x89,0x03,0x05,0x16, -0x29,0x3c,0x27,0x61,0x83,0x01,0x69,0xac,0xac,0xfa,0xe0,0x04,0x3a,0xfb,0xc6,0x00,0x00,0x02,0x00,0x54,0x00,0x00,0x04,0x25,0x05,0xcc,0x00,0x1b,0x00,0x1f,0x00,0x66,0xb5,0x45,0x0a,0x55,0x0a,0x02,0x0a,0xb8,0xff,0xe0,0x40,0x36,0x09,0x0c,0x48,0x1a,0x1a,0x0f,0x40,0x1d,0x22,0x48,0x0f,0x40,0x0b,0x18,0x48,0x0f,0x0f,0x02,0x1f,0x46, -0x60,0x1c,0xd0,0x1c,0x02,0x1c,0x1c,0x21,0x19,0x01,0x46,0x02,0x05,0x05,0x06,0x00,0x02,0x01,0x02,0x1d,0x00,0x13,0x50,0x0c,0x00,0x00,0x04,0x51,0x19,0x05,0x0f,0x1c,0x01,0x15,0x00,0x3f,0x33,0x3f,0x33,0xed,0x32,0x3f,0xed,0x3f,0x01,0x2f,0x5d,0x33,0x33,0x2f,0x10,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x2b,0x2b,0x33, -0x2f,0x31,0x30,0x00,0x2b,0x5d,0x01,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x01,0x23,0x22,0x0e,0x02,0x1d,0x01,0x33,0x15,0x13,0x11,0x33,0x11,0x01,0xa0,0xb4,0x98,0x98,0x16,0x3b,0x66,0x51,0x20,0x45,0x1a,0x11,0x2d,0x12,0x28,0x33,0x1d,0x0b,0xd3,0xfe,0xb4,0x03,0xb7,0xfc,0x49,0x03,0xb7, -0x83,0x7a,0x3b,0x65,0x4b,0x2b,0x06,0x06,0x89,0x03,0x05,0x16,0x29,0x3c,0x27,0x61,0x83,0xfc,0x49,0x05,0xcc,0xfa,0x34,0x00,0x00,0x01,0x01,0xdb,0xfe,0x59,0x02,0xef,0xff,0x9e,0x00,0x05,0x00,0x20,0x40,0x09,0x02,0x18,0x09,0x11,0x48,0x03,0x80,0x00,0x05,0xb8,0x01,0x0c,0xb5,0x00,0x02,0x10,0x02,0x02,0x02,0x00,0x2f,0x5d,0xed,0x01, -0x2f,0x1a,0xcd,0x31,0x30,0x2b,0x01,0x35,0x13,0x33,0x15,0x03,0x01,0xdb,0x4f,0xc5,0xab,0xfe,0x59,0x21,0x01,0x24,0x25,0xfe,0xe0,0x00,0x00,0x00,0x00,0x01,0x01,0x05,0x04,0xb0,0x03,0xe3,0x05,0xb4,0x00,0x15,0x00,0x25,0x40,0x14,0x10,0x85,0x0f,0x11,0x01,0x11,0x11,0x06,0x85,0x00,0x05,0x01,0x05,0x10,0x06,0x8c,0x0b,0x8e,0x00,0x93, -0x00,0x3f,0xed,0xe4,0x32,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x5d,0xed,0x31,0x30,0x01,0x22,0x2e,0x02,0x27,0x33,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x33,0x0e,0x03,0x02,0x74,0x64,0x8a,0x57,0x28,0x02,0xa4,0x03,0x1e,0x33,0x49,0x2e,0x2e,0x49,0x33,0x1e,0x03,0xa4,0x02,0x28,0x57,0x8a,0x04,0xb0,0x26,0x45,0x60,0x39,0x2b,0x3a,0x22,0x0e, -0x0e,0x22,0x3a,0x2b,0x39,0x60,0x45,0x26,0x00,0x01,0x01,0xdb,0x04,0x87,0x02,0xef,0x05,0xcc,0x00,0x05,0x00,0x29,0xb2,0x02,0x86,0x03,0xb8,0x01,0x0b,0x40,0x0e,0x66,0x05,0x76,0x05,0x86,0x05,0x03,0x05,0x83,0x00,0x00,0x01,0x00,0x02,0xb8,0x01,0x0c,0xb1,0x05,0x93,0x00,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x5d,0xfd,0xed,0x31,0x30,0x01, -0x35,0x13,0x33,0x15,0x03,0x01,0xdb,0x4f,0xc5,0xab,0x04,0x87,0x21,0x01,0x24,0x25,0xfe,0xe0,0x00,0x00,0x00,0x01,0x01,0xdb,0x04,0xbb,0x02,0xef,0x06,0x00,0x00,0x05,0x00,0x1d,0xb9,0x00,0x02,0xff,0xe8,0xb6,0x09,0x11,0x48,0x00,0x80,0x03,0x05,0xb8,0x01,0x0c,0xb1,0x02,0x94,0x00,0x3f,0xed,0x01,0x2f,0x1a,0xcd,0x31,0x30,0x2b,0x01, -0x15,0x03,0x23,0x35,0x13,0x02,0xef,0x4f,0xc5,0xab,0x06,0x00,0x21,0xfe,0xdc,0x25,0x01,0x20,0x00,0x00,0x00,0x01,0x00,0xd5,0xfe,0x57,0x03,0xa4,0x04,0x3a,0x00,0x19,0x00,0x30,0x40,0x1a,0x0a,0x03,0x1a,0x03,0x02,0x18,0x18,0x0a,0x00,0x46,0x00,0x15,0x01,0x15,0x15,0x1b,0x1a,0x0a,0x17,0x50,0x18,0x0f,0x10,0x50,0x05,0x1b,0x00,0x3f, -0xed,0x3f,0xed,0x01,0x2f,0x11,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x31,0x30,0x00,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x35,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x11,0x21,0x35,0x21,0x03,0xa4,0x47,0x76,0x9c,0x56,0x29,0x52,0x4c,0x41,0x18,0x16,0x3c,0x48,0x4f,0x28,0x38,0x61,0x48,0x29,0xfe,0x69,0x02,0x4b,0x1c, -0x6d,0x97,0x5f,0x2a,0x07,0x0c,0x0f,0x09,0x8c,0x05,0x0c,0x0a,0x07,0x1c,0x3d,0x5f,0x43,0x03,0xc5,0x8e,0x00,0x01,0x01,0x25,0x02,0x4d,0x02,0xc7,0x05,0x45,0x00,0x12,0x00,0x44,0x40,0x1c,0x11,0x11,0x10,0xe0,0x02,0x08,0x08,0x01,0x01,0x0e,0x00,0x02,0x10,0x02,0x02,0x02,0x02,0x13,0x14,0x08,0xe4,0x00,0x09,0x01,0x09,0x09,0x03,0x0e, -0xb8,0x01,0x11,0xb3,0x10,0x01,0xe4,0x00,0xb8,0x01,0x12,0x00,0x3f,0xed,0x32,0x3f,0x33,0x33,0x2f,0x5d,0xed,0x11,0x12,0x01,0x39,0x2f,0x5d,0x33,0x33,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x35,0x33,0x11,0x0e,0x03,0x23,0x35,0x32,0x3e,0x02,0x37,0x33,0x11,0x33,0x15,0x01,0x49,0x87,0x0d,0x2f,0x33,0x2f,0x0d,0x12,0x30, -0x33,0x2f,0x11,0x79,0x74,0x02,0x4d,0x6b,0x02,0x01,0x1a,0x24,0x17,0x0a,0x77,0x0c,0x1b,0x2c,0x21,0xfd,0x73,0x6b,0x00,0x00,0x00,0x01,0x00,0xfa,0x02,0x4d,0x03,0x04,0x05,0x51,0x00,0x20,0x00,0x4f,0xb9,0x00,0x15,0xff,0xd8,0x40,0x20,0x09,0x11,0x48,0x1f,0x1f,0x17,0xe1,0x08,0x08,0x00,0x22,0x0e,0xe0,0x0f,0x0f,0x00,0x1e,0x1e,0x00, -0x00,0x10,0x00,0x02,0x00,0x5f,0x0e,0x01,0x0e,0x0e,0x0b,0xe4,0x14,0xb8,0x01,0x13,0xb3,0x01,0x1e,0xe4,0x00,0xb8,0x01,0x12,0x00,0x3f,0xed,0x32,0x3f,0xed,0x33,0x2f,0x5d,0x01,0x2f,0x5d,0x33,0x2f,0x11,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x31,0x30,0x00,0x2b,0x13,0x35,0x3e,0x05,0x35,0x34,0x26,0x23,0x22,0x06,0x07, -0x27,0x3e,0x03,0x33,0x32,0x16,0x15,0x14,0x0e,0x04,0x07,0x21,0x15,0xfa,0x18,0x4a,0x54,0x54,0x44,0x2a,0x33,0x3c,0x3d,0x3b,0x08,0x82,0x06,0x27,0x41,0x5c,0x3d,0x78,0x79,0x2e,0x47,0x56,0x52,0x44,0x10,0x01,0x7c,0x02,0x4d,0x61,0x37,0x55,0x48,0x3f,0x40,0x47,0x2c,0x39,0x40,0x3e,0x3d,0x05,0x2f,0x50,0x3a,0x21,0x70,0x67,0x37,0x59, -0x4b,0x41,0x3f,0x41,0x26,0x6b,0x00,0x00,0x00,0x01,0x00,0xea,0x02,0x3b,0x02,0xed,0x05,0x51,0x00,0x33,0x00,0x8a,0xb9,0x00,0x2a,0xff,0xd8,0x40,0x40,0x09,0x11,0x48,0x03,0x28,0x09,0x11,0x48,0x00,0x1c,0x10,0x1c,0x20,0x1c,0x03,0x7b,0x30,0x01,0x22,0xe1,0x23,0x23,0x0a,0x2d,0xe1,0x1c,0x18,0x1c,0x18,0x1c,0x0a,0x00,0xe1,0x11,0x0b, -0xe1,0x0a,0x11,0x11,0x35,0x4f,0x0a,0x01,0x00,0x0a,0x10,0x0a,0x02,0x0a,0x30,0x18,0x17,0x16,0x16,0x0e,0x28,0x5f,0x22,0x01,0x22,0x22,0x1f,0xe4,0x28,0xb8,0x01,0x13,0x40,0x09,0x0e,0xe4,0x05,0x50,0x0b,0x01,0x0b,0x0b,0x05,0xb8,0x01,0x14,0x00,0x3f,0x33,0x2f,0x5d,0x10,0xed,0x3f,0xed,0x33,0x2f,0x5d,0x11,0x12,0x39,0x2f,0xc4,0x11, -0x39,0x01,0x2f,0x5d,0x5d,0x12,0x39,0x2f,0x10,0xed,0x10,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x2f,0xed,0x00,0x5d,0x01,0x5d,0x31,0x30,0x00,0x2b,0x2b,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x01,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x2b,0x01,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07, -0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x01,0x02,0xed,0x27,0x44,0x5e,0x38,0x40,0x5c,0x3e,0x22,0x06,0x88,0x09,0x41,0x30,0x36,0x42,0x19,0x29,0x36,0x1d,0x29,0x25,0x44,0x40,0x36,0x29,0x2d,0x42,0x06,0x87,0x07,0x2c,0x44,0x55,0x30,0x3a,0x57,0x3a,0x1d,0x43,0x45,0x52,0x4b,0x03,0x1a,0x36,0x53,0x39,0x1d, -0x25,0x3c,0x4c,0x27,0x0d,0x3c,0x3d,0x3c,0x41,0x25,0x2f,0x1a,0x0a,0x6d,0x39,0x42,0x35,0x32,0x3f,0x39,0x0c,0x36,0x50,0x36,0x1a,0x1f,0x37,0x4a,0x2a,0x42,0x55,0x1a,0x02,0x12,0x64,0x00,0x00,0x02,0x00,0xc5,0x02,0x4b,0x03,0x35,0x05,0x45,0x00,0x0a,0x00,0x17,0x00,0x5d,0x40,0x12,0x09,0x09,0x08,0x01,0xe0,0x12,0x06,0x60,0x02,0x70, -0x02,0x80,0x02,0x03,0x02,0x02,0x19,0x11,0xb8,0x01,0x17,0x40,0x20,0x04,0x40,0x0d,0x11,0x48,0x00,0x04,0x10,0x04,0x02,0x04,0x00,0x04,0xe4,0x08,0x05,0x0f,0x11,0x1f,0x11,0x2f,0x11,0x9f,0x11,0xbf,0x11,0x05,0x11,0x11,0x01,0x0b,0x06,0xba,0x01,0x11,0x00,0x01,0x01,0x12,0x00,0x3f,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32, -0x01,0x2f,0x5d,0x2b,0xed,0x12,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x2f,0x31,0x30,0x01,0x15,0x23,0x35,0x21,0x35,0x01,0x33,0x11,0x33,0x15,0x03,0x0e,0x03,0x07,0x03,0x21,0x11,0x3c,0x02,0x36,0x02,0xbb,0x7f,0xfe,0x89,0x01,0x69,0x8d,0x7a,0xf8,0x06,0x15,0x18,0x17,0x07,0xb9,0x01,0x09,0x01,0x02,0xec,0xa1,0xa1,0x63,0x01,0xf6, -0xfe,0x0c,0x65,0x01,0xd9,0x09,0x1f,0x22,0x20,0x0a,0xff,0x00,0x01,0x04,0x0d,0x20,0x1f,0x1b,0x00,0x00,0x00,0x01,0x01,0x04,0x02,0x46,0x02,0xfb,0x05,0x45,0x00,0x1f,0x00,0x66,0xb9,0x00,0x1e,0xff,0xd8,0x40,0x2c,0x09,0x11,0x48,0x02,0x28,0x09,0x0e,0x48,0x19,0x1a,0x16,0x14,0xe0,0x15,0x15,0x05,0x0e,0x17,0x17,0x00,0xe1,0x0e,0x0e, -0x21,0x06,0xe0,0x00,0x05,0x10,0x05,0x02,0x05,0x1a,0xe5,0x15,0x15,0x11,0xe4,0x1d,0x1d,0x09,0x19,0xe5,0x16,0xb8,0x01,0x11,0xb5,0x09,0xe4,0x03,0x06,0x06,0x03,0xb8,0x01,0x14,0x00,0x3f,0x33,0x2f,0x10,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x33,0x2f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0x11,0x12,0x39,0x2f,0xed, -0x33,0x32,0x32,0x31,0x30,0x00,0x2b,0x2b,0x01,0x14,0x06,0x23,0x22,0x27,0x37,0x1e,0x01,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x13,0x21,0x15,0x21,0x07,0x3e,0x01,0x33,0x32,0x16,0x02,0xfb,0x83,0x76,0xdb,0x23,0x85,0x0b,0x39,0x32,0x18,0x2b,0x20,0x12,0x3f,0x35,0x28,0x32,0x15,0x81,0x21,0x01,0xaa,0xfe,0xc2, -0x13,0x1c,0x43,0x27,0x70,0x7b,0x03,0x43,0x7a,0x83,0xbf,0x0f,0x36,0x2f,0x0e,0x22,0x39,0x2b,0x49,0x3f,0x1e,0x1e,0x01,0xb6,0x71,0xd7,0x20,0x1b,0x7e,0x00,0x00,0x00,0x00,0x01,0x00,0xfc,0x02,0x4d,0x03,0x03,0x05,0x45,0x00,0x0e,0x00,0x2f,0x40,0x14,0x05,0xe0,0x06,0x06,0x0c,0x00,0xe0,0x0b,0x0b,0x10,0x00,0x0c,0x10,0x0c,0x02,0x0c, -0x00,0x0c,0xe5,0x0d,0xba,0x01,0x11,0x00,0x05,0x01,0x12,0x00,0x3f,0x3f,0xed,0x32,0x01,0x2f,0x5d,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x0e,0x03,0x15,0x23,0x34,0x3e,0x02,0x37,0x21,0x35,0x21,0x03,0x03,0x43,0x63,0x3f,0x1f,0x85,0x22,0x43,0x63,0x40,0xfe,0x7a,0x02,0x07,0x04,0xe0,0x5d,0x9a,0x96,0xa1,0x65,0x5e, -0xa3,0x99,0x99,0x54,0x71,0x00,0x00,0x00,0x00,0x03,0x01,0x11,0x02,0x40,0x03,0x06,0x05,0x51,0x00,0x11,0x00,0x25,0x00,0x47,0x00,0x6d,0xb9,0x00,0x3e,0xff,0xe8,0xb3,0x0c,0x11,0x48,0x3a,0xb8,0xff,0xe8,0x40,0x2e,0x0c,0x11,0x48,0x2d,0x18,0x09,0x0f,0x48,0x29,0x18,0x09,0x11,0x48,0x45,0x33,0x37,0x41,0xe0,0x00,0x08,0xe0,0x37,0x00, -0x37,0x00,0x37,0x30,0x26,0xe0,0x12,0x12,0x49,0x1c,0xe0,0x30,0x45,0x33,0x33,0x17,0xe4,0x0d,0x0d,0x21,0x05,0xe4,0x3c,0xb8,0x01,0x13,0xb2,0x21,0xe4,0x2b,0xb8,0x01,0x14,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x39, -0x31,0x30,0x00,0x2b,0x2b,0x2b,0x2b,0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x13,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x35,0x2e,0x01,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06, -0x07,0x15,0x1e,0x01,0x02,0x6b,0x08,0x16,0x25,0x1e,0x38,0x28,0x08,0x16,0x25,0x1e,0x21,0x26,0x14,0x05,0x15,0x0c,0x1b,0x2d,0x22,0x21,0x2d,0x1a,0x0b,0x0b,0x1b,0x2e,0x22,0x23,0x2d,0x1a,0x09,0x86,0x1d,0x3c,0x5f,0x42,0x42,0x5f,0x3d,0x1d,0x40,0x39,0x36,0x2f,0x1d,0x39,0x56,0x39,0x3c,0x58,0x38,0x1b,0x31,0x35,0x42,0x39,0x04,0x80, -0x19,0x28,0x1d,0x0f,0x3b,0x32,0x13,0x29,0x21,0x15,0x16,0x21,0x29,0xfe,0xbb,0x1c,0x2f,0x22,0x13,0x13,0x22,0x2f,0x1c,0x1c,0x30,0x24,0x14,0x14,0x23,0x31,0x13,0x32,0x53,0x3b,0x20,0x21,0x3b,0x52,0x32,0x4e,0x59,0x12,0x03,0x1a,0x57,0x3f,0x29,0x48,0x35,0x1f,0x1f,0x36,0x48,0x29,0x3e,0x58,0x18,0x03,0x13,0x5a,0x00,0x00,0x00,0x1c, -0x01,0x56,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xc2,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x0f,0x01,0x43,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x07,0x01,0x63,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x1a,0x01,0xa1,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x0f,0x01,0xdc,0x00,0x01, -0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x0e,0x02,0x0a,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0e,0x02,0x37,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x7a,0x03,0x3c,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x14,0x03,0xe1,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x0e,0x04,0x14,0x00,0x01,0x00,0x00,0x00,0x00, -0x00,0x0b,0x00,0x1c,0x04,0x5d,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x2e,0x04,0xd8,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,0x6f,0x05,0xe7,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x3e,0x06,0xd5,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x01,0x00,0x1e, -0x01,0x23,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x02,0x00,0x0e,0x01,0x53,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x03,0x00,0x34,0x01,0x6b,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x04,0x00,0x1e,0x01,0xbc,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x05,0x00,0x1c,0x01,0xec,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x06,0x00,0x1c,0x02,0x19,0x00,0x03, -0x00,0x01,0x04,0x09,0x00,0x07,0x00,0xf4,0x02,0x46,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x08,0x00,0x28,0x03,0xb7,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x09,0x00,0x1c,0x03,0xf6,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0b,0x00,0x38,0x04,0x23,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0c,0x00,0x5c,0x04,0x7a,0x00,0x03,0x00,0x01,0x04,0x09, -0x00,0x0d,0x00,0xde,0x05,0x07,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0e,0x00,0x7c,0x06,0x57,0x00,0x43,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0x28,0x00,0x63,0x00,0x29,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x30,0x00,0x37,0x00,0x20,0x00,0x52,0x00,0x65,0x00,0x64,0x00,0x20, -0x00,0x48,0x00,0x61,0x00,0x74,0x00,0x2c,0x00,0x20,0x00,0x49,0x00,0x6e,0x00,0x63,0x00,0x2e,0x00,0x20,0x00,0x41,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x73,0x00,0x20,0x00,0x72,0x00,0x65,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x76,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x20,0x00,0x4c, -0x00,0x49,0x00,0x42,0x00,0x45,0x00,0x52,0x00,0x41,0x00,0x54,0x00,0x49,0x00,0x4f,0x00,0x4e,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x74,0x00,0x72,0x00,0x61,0x00,0x64,0x00,0x65,0x00,0x6d,0x00,0x61,0x00,0x72,0x00,0x6b,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x52,0x00,0x65,0x00,0x64,0x00,0x20, -0x00,0x48,0x00,0x61,0x00,0x74,0x00,0x2c,0x00,0x20,0x00,0x49,0x00,0x6e,0x00,0x63,0x00,0x2e,0x00,0x00,0x43,0x6f,0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x28,0x63,0x29,0x20,0x32,0x30,0x30,0x37,0x20,0x52,0x65,0x64,0x20,0x48,0x61,0x74,0x2c,0x20,0x49,0x6e,0x63,0x2e,0x20,0x41,0x6c,0x6c,0x20,0x72,0x69,0x67,0x68,0x74,0x73,0x20, -0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x2e,0x20,0x4c,0x49,0x42,0x45,0x52,0x41,0x54,0x49,0x4f,0x4e,0x20,0x69,0x73,0x20,0x61,0x20,0x74,0x72,0x61,0x64,0x65,0x6d,0x61,0x72,0x6b,0x20,0x6f,0x66,0x20,0x52,0x65,0x64,0x20,0x48,0x61,0x74,0x2c,0x20,0x49,0x6e,0x63,0x2e,0x00,0x00,0x4c,0x00,0x69,0x00,0x62,0x00,0x65,0x00,0x72,0x00, -0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x00,0x4c,0x69,0x62,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x6f,0x6e,0x6f,0x00,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x00,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x00,0x00,0x41,0x00, -0x73,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x64,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x2d,0x00,0x20,0x00,0x4c,0x00,0x69,0x00,0x62,0x00,0x65,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x00,0x41,0x73,0x63,0x65,0x6e,0x64,0x65,0x72,0x20,0x2d,0x20,0x4c,0x69, -0x62,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x6f,0x6e,0x6f,0x00,0x00,0x4c,0x00,0x69,0x00,0x62,0x00,0x65,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x00,0x4c,0x69,0x62,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x6f,0x6e,0x6f,0x00,0x00,0x56, -0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x31,0x00,0x2e,0x00,0x30,0x00,0x37,0x00,0x2e,0x00,0x31,0x00,0x00,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x31,0x2e,0x30,0x37,0x2e,0x31,0x00,0x00,0x4c,0x00,0x69,0x00,0x62,0x00,0x65,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00, -0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x00,0x4c,0x69,0x62,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x4d,0x6f,0x6e,0x6f,0x00,0x00,0x4c,0x00,0x69,0x00,0x62,0x00,0x65,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x74,0x00,0x72,0x00,0x61,0x00,0x64, -0x00,0x65,0x00,0x6d,0x00,0x61,0x00,0x72,0x00,0x6b,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x52,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x48,0x00,0x61,0x00,0x74,0x00,0x2c,0x00,0x20,0x00,0x49,0x00,0x6e,0x00,0x63,0x00,0x2e,0x00,0x20,0x00,0x72,0x00,0x65,0x00,0x67,0x00,0x69,0x00,0x73,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x65, -0x00,0x64,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x55,0x00,0x2e,0x00,0x53,0x00,0x2e,0x00,0x20,0x00,0x50,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x54,0x00,0x72,0x00,0x61,0x00,0x64,0x00,0x65,0x00,0x6d,0x00,0x61,0x00,0x72,0x00,0x6b,0x00,0x20,0x00,0x4f, -0x00,0x66,0x00,0x66,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x63,0x00,0x65,0x00,0x72,0x00,0x74,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x6f,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x6a,0x00,0x75,0x00,0x72,0x00,0x69,0x00,0x73,0x00,0x64,0x00,0x69,0x00,0x63, -0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x2e,0x00,0x00,0x4c,0x69,0x62,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x61,0x20,0x74,0x72,0x61,0x64,0x65,0x6d,0x61,0x72,0x6b,0x20,0x6f,0x66,0x20,0x52,0x65,0x64,0x20,0x48,0x61,0x74,0x2c,0x20,0x49,0x6e,0x63,0x2e,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65, -0x72,0x65,0x64,0x20,0x69,0x6e,0x20,0x55,0x2e,0x53,0x2e,0x20,0x50,0x61,0x74,0x65,0x6e,0x74,0x20,0x61,0x6e,0x64,0x20,0x54,0x72,0x61,0x64,0x65,0x6d,0x61,0x72,0x6b,0x20,0x4f,0x66,0x66,0x69,0x63,0x65,0x20,0x61,0x6e,0x64,0x20,0x63,0x65,0x72,0x74,0x61,0x69,0x6e,0x20,0x6f,0x74,0x68,0x65,0x72,0x20,0x6a,0x75,0x72,0x69,0x73,0x64, -0x69,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x00,0x00,0x41,0x00,0x73,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x64,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x43,0x00,0x6f,0x00,0x72,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x00,0x41,0x73,0x63,0x65,0x6e,0x64,0x65,0x72,0x20,0x43,0x6f,0x72,0x70, -0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x00,0x00,0x53,0x00,0x74,0x00,0x65,0x00,0x76,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x61,0x00,0x74,0x00,0x74,0x00,0x65,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x00,0x53,0x74,0x65,0x76,0x65,0x20,0x4d,0x61,0x74,0x74,0x65,0x73,0x6f,0x6e,0x00,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x3a,0x00, -0x2f,0x00,0x2f,0x00,0x77,0x00,0x77,0x00,0x77,0x00,0x2e,0x00,0x61,0x00,0x73,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x64,0x00,0x65,0x00,0x72,0x00,0x63,0x00,0x6f,0x00,0x72,0x00,0x70,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x2f,0x00,0x00,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x61,0x73,0x63,0x65,0x6e,0x64, -0x65,0x72,0x63,0x6f,0x72,0x70,0x2e,0x63,0x6f,0x6d,0x2f,0x00,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x77,0x00,0x77,0x00,0x77,0x00,0x2e,0x00,0x61,0x00,0x73,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x64,0x00,0x65,0x00,0x72,0x00,0x63,0x00,0x6f,0x00,0x72,0x00,0x70,0x00,0x2e,0x00,0x63,0x00,0x6f, -0x00,0x6d,0x00,0x2f,0x00,0x74,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x64,0x00,0x65,0x00,0x73,0x00,0x69,0x00,0x67,0x00,0x6e,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x2e,0x00,0x68,0x00,0x74,0x00,0x6d,0x00,0x6c,0x00,0x00,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x61,0x73,0x63,0x65,0x6e,0x64,0x65,0x72,0x63,0x6f,0x72, -0x70,0x2e,0x63,0x6f,0x6d,0x2f,0x74,0x79,0x70,0x65,0x64,0x65,0x73,0x69,0x67,0x6e,0x65,0x72,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x00,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x75,0x00,0x6e,0x00,0x64,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00, -0x4c,0x00,0x69,0x00,0x62,0x00,0x65,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x46,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x65,0x00,0x20,0x00,0x68,0x00,0x74,0x00, -0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x66,0x00,0x65,0x00,0x64,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x6a,0x00,0x65,0x00,0x63,0x00,0x74,0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00,0x77,0x00,0x69,0x00,0x6b,0x00,0x69,0x00,0x2f,0x00,0x4c,0x00,0x69,0x00,0x63,0x00, -0x65,0x00,0x6e,0x00,0x73,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x2f,0x00,0x4c,0x00,0x69,0x00,0x62,0x00,0x65,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x46,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x00,0x4c,0x69,0x63,0x65,0x6e,0x73,0x65, -0x64,0x20,0x75,0x6e,0x64,0x65,0x72,0x20,0x74,0x68,0x65,0x20,0x4c,0x69,0x62,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x46,0x6f,0x6e,0x74,0x73,0x20,0x6c,0x69,0x63,0x65,0x6e,0x73,0x65,0x2c,0x20,0x73,0x65,0x65,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x66,0x65,0x64,0x6f,0x72,0x61,0x70,0x72,0x6f,0x6a,0x65,0x63,0x74,0x2e, -0x6f,0x72,0x67,0x2f,0x77,0x69,0x6b,0x69,0x2f,0x4c,0x69,0x63,0x65,0x6e,0x73,0x69,0x6e,0x67,0x2f,0x4c,0x69,0x62,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x46,0x6f,0x6e,0x74,0x4c,0x69,0x63,0x65,0x6e,0x73,0x65,0x00,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x66,0x00,0x65,0x00,0x64,0x00, -0x6f,0x00,0x72,0x00,0x61,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x6a,0x00,0x65,0x00,0x63,0x00,0x74,0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00,0x77,0x00,0x69,0x00,0x6b,0x00,0x69,0x00,0x2f,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x2f,0x00,0x4c,0x00,0x69,0x00, -0x62,0x00,0x65,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x46,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x00,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x66,0x65,0x64,0x6f,0x72,0x61,0x70,0x72,0x6f,0x6a,0x65,0x63,0x74,0x2e,0x6f,0x72,0x67, -0x2f,0x77,0x69,0x6b,0x69,0x2f,0x4c,0x69,0x63,0x65,0x6e,0x73,0x69,0x6e,0x67,0x2f,0x4c,0x69,0x62,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x46,0x6f,0x6e,0x74,0x4c,0x69,0x63,0x65,0x6e,0x73,0x65,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x23,0x00,0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xa1,0x00,0x00,0x00,0x01,0x00,0x02,0x01,0x02,0x00,0x04,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x01,0x03,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a, -0x00,0x1b,0x00,0x1c,0x00,0x1d,0x01,0x04,0x00,0x1f,0x00,0x20,0x00,0x21,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x2b,0x00,0x2c,0x00,0x2d,0x00,0x2e,0x00,0x2f,0x00,0x30,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x38,0x00,0x39,0x00,0x3a, -0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40,0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47,0x00,0x48,0x00,0x49,0x00,0x4a,0x00,0x4b,0x00,0x4c,0x00,0x4d,0x00,0x4e,0x00,0x4f,0x00,0x50,0x00,0x51,0x00,0x52,0x00,0x53,0x00,0x54,0x00,0x55,0x00,0x56,0x00,0x57,0x00,0x58,0x00,0x59,0x00,0x5a, -0x00,0x5b,0x00,0x5c,0x00,0x5d,0x00,0x5e,0x00,0x5f,0x00,0x60,0x00,0x61,0x00,0xa3,0x00,0x84,0x00,0x85,0x00,0xbd,0x00,0x96,0x00,0xe8,0x00,0x86,0x00,0x8e,0x00,0x8b,0x00,0x9d,0x00,0xa9,0x00,0xa4,0x00,0x8a,0x00,0xda,0x00,0x83,0x00,0x93,0x01,0x05,0x01,0x06,0x00,0x8d,0x01,0x07,0x00,0x88,0x00,0xc3,0x00,0xde,0x01,0x08,0x00,0x9e, -0x00,0xaa,0x00,0xf5,0x00,0xf4,0x00,0xf6,0x00,0xa2,0x00,0xad,0x00,0xc9,0x00,0xc7,0x00,0xae,0x00,0x62,0x00,0x63,0x00,0x90,0x00,0x64,0x00,0xcb,0x00,0x65,0x00,0xc8,0x00,0xca,0x00,0xcf,0x00,0xcc,0x00,0xcd,0x00,0xce,0x00,0xe9,0x00,0x66,0x00,0xd3,0x00,0xd0,0x00,0xd1,0x00,0xaf,0x00,0x67,0x00,0xf0,0x00,0x91,0x00,0xd6,0x00,0xd4, -0x00,0xd5,0x00,0x68,0x00,0xeb,0x00,0xed,0x00,0x89,0x00,0x6a,0x00,0x69,0x00,0x6b,0x00,0x6d,0x00,0x6c,0x00,0x6e,0x00,0xa0,0x00,0x6f,0x00,0x71,0x00,0x70,0x00,0x72,0x00,0x73,0x00,0x75,0x00,0x74,0x00,0x76,0x00,0x77,0x00,0xea,0x00,0x78,0x00,0x7a,0x00,0x79,0x00,0x7b,0x00,0x7d,0x00,0x7c,0x00,0xb8,0x00,0xa1,0x00,0x7f,0x00,0x7e, -0x00,0x80,0x00,0x81,0x00,0xec,0x00,0xee,0x00,0xba,0x01,0x09,0x01,0x0a,0x01,0x0b,0x01,0x0c,0x01,0x0d,0x01,0x0e,0x00,0xfd,0x00,0xfe,0x01,0x0f,0x01,0x10,0x01,0x11,0x01,0x12,0x00,0xff,0x01,0x00,0x01,0x13,0x01,0x14,0x01,0x15,0x01,0x01,0x01,0x16,0x01,0x17,0x01,0x18,0x01,0x19,0x01,0x1a,0x01,0x1b,0x01,0x1c,0x01,0x1d,0x01,0x1e, -0x01,0x1f,0x01,0x20,0x01,0x21,0x00,0xf8,0x00,0xf9,0x01,0x22,0x01,0x23,0x01,0x24,0x01,0x25,0x01,0x26,0x01,0x27,0x01,0x28,0x01,0x29,0x01,0x2a,0x01,0x2b,0x01,0x2c,0x01,0x2d,0x01,0x2e,0x01,0x2f,0x01,0x30,0x01,0x31,0x00,0xfa,0x00,0xd7,0x01,0x32,0x01,0x33,0x01,0x34,0x01,0x35,0x01,0x36,0x01,0x37,0x01,0x38,0x01,0x39,0x01,0x3a, -0x01,0x3b,0x01,0x3c,0x01,0x3d,0x01,0x3e,0x01,0x3f,0x01,0x40,0x00,0xe2,0x00,0xe3,0x01,0x41,0x01,0x42,0x01,0x43,0x01,0x44,0x01,0x45,0x01,0x46,0x01,0x47,0x01,0x48,0x01,0x49,0x01,0x4a,0x01,0x4b,0x01,0x4c,0x01,0x4d,0x01,0x4e,0x01,0x4f,0x00,0xb0,0x00,0xb1,0x01,0x50,0x01,0x51,0x01,0x52,0x01,0x53,0x01,0x54,0x01,0x55,0x01,0x56, -0x01,0x57,0x01,0x58,0x01,0x59,0x00,0xfb,0x00,0xfc,0x00,0xe4,0x00,0xe5,0x01,0x5a,0x01,0x5b,0x01,0x5c,0x01,0x5d,0x01,0x5e,0x01,0x5f,0x01,0x60,0x01,0x61,0x01,0x62,0x01,0x63,0x01,0x64,0x01,0x65,0x01,0x66,0x01,0x67,0x01,0x68,0x01,0x69,0x01,0x6a,0x01,0x6b,0x01,0x6c,0x01,0x6d,0x01,0x6e,0x01,0x6f,0x00,0xbb,0x01,0x70,0x01,0x71, -0x01,0x72,0x01,0x73,0x00,0xe6,0x00,0xe7,0x01,0x74,0x00,0xa6,0x01,0x75,0x01,0x76,0x01,0x77,0x01,0x78,0x01,0x79,0x01,0x7a,0x01,0x7b,0x01,0x7c,0x01,0x7d,0x01,0x7e,0x00,0xd8,0x00,0xe1,0x01,0x7f,0x00,0xdb,0x00,0xdc,0x00,0xdd,0x00,0xe0,0x00,0xd9,0x00,0xdf,0x01,0x80,0x01,0x81,0x01,0x82,0x01,0x83,0x01,0x84,0x01,0x85,0x01,0x86, -0x01,0x87,0x01,0x88,0x01,0x89,0x01,0x8a,0x01,0x8b,0x01,0x8c,0x01,0x8d,0x00,0xa8,0x01,0x8e,0x01,0x8f,0x01,0x90,0x01,0x91,0x01,0x92,0x01,0x93,0x01,0x94,0x01,0x95,0x01,0x96,0x01,0x97,0x01,0x98,0x01,0x99,0x01,0x9a,0x01,0x9b,0x01,0x9c,0x01,0x9d,0x01,0x9e,0x01,0x9f,0x01,0xa0,0x00,0x9f,0x01,0xa1,0x01,0xa2,0x01,0xa3,0x01,0xa4, -0x01,0xa5,0x01,0xa6,0x01,0xa7,0x01,0xa8,0x01,0xa9,0x01,0xaa,0x01,0xab,0x01,0xac,0x01,0xad,0x01,0xae,0x01,0xaf,0x01,0xb0,0x01,0xb1,0x01,0xb2,0x00,0x97,0x01,0xb3,0x01,0xb4,0x01,0xb5,0x00,0x9b,0x01,0xb6,0x01,0xb7,0x01,0xb8,0x01,0xb9,0x01,0xba,0x01,0xbb,0x01,0xbc,0x01,0xbd,0x01,0xbe,0x01,0xbf,0x01,0xc0,0x01,0xc1,0x01,0xc2, -0x01,0xc3,0x01,0xc4,0x01,0xc5,0x01,0xc6,0x01,0xc7,0x01,0xc8,0x01,0xc9,0x01,0xca,0x01,0xcb,0x01,0xcc,0x01,0xcd,0x01,0xce,0x01,0xcf,0x01,0xd0,0x01,0xd1,0x01,0xd2,0x01,0xd3,0x01,0xd4,0x01,0xd5,0x01,0xd6,0x01,0xd7,0x01,0xd8,0x01,0xd9,0x01,0xda,0x01,0xdb,0x01,0xdc,0x01,0xdd,0x01,0xde,0x01,0xdf,0x01,0xe0,0x01,0xe1,0x01,0xe2, -0x01,0xe3,0x01,0xe4,0x01,0xe5,0x01,0xe6,0x01,0xe7,0x01,0xe8,0x01,0xe9,0x01,0xea,0x01,0xeb,0x01,0xec,0x01,0xed,0x01,0xee,0x01,0xef,0x01,0xf0,0x01,0xf1,0x01,0xf2,0x01,0xf3,0x01,0xf4,0x01,0xf5,0x01,0xf6,0x01,0xf7,0x01,0xf8,0x01,0xf9,0x01,0xfa,0x01,0xfb,0x01,0xfc,0x01,0xfd,0x01,0xfe,0x01,0xff,0x02,0x00,0x02,0x01,0x02,0x02, -0x02,0x03,0x02,0x04,0x02,0x05,0x02,0x06,0x02,0x07,0x02,0x08,0x02,0x09,0x02,0x0a,0x02,0x0b,0x02,0x0c,0x02,0x0d,0x02,0x0e,0x02,0x0f,0x02,0x10,0x02,0x11,0x02,0x12,0x02,0x13,0x02,0x14,0x02,0x15,0x02,0x16,0x02,0x17,0x02,0x18,0x02,0x19,0x02,0x1a,0x02,0x1b,0x02,0x1c,0x02,0x1d,0x02,0x1e,0x02,0x1f,0x02,0x20,0x02,0x21,0x02,0x22, -0x02,0x23,0x02,0x24,0x02,0x25,0x02,0x26,0x02,0x27,0x02,0x28,0x02,0x29,0x02,0x2a,0x02,0x2b,0x02,0x2c,0x02,0x2d,0x02,0x2e,0x02,0x2f,0x00,0xb2,0x00,0xb3,0x02,0x30,0x02,0x31,0x00,0xb6,0x00,0xb7,0x00,0xc4,0x02,0x32,0x00,0xb4,0x00,0xb5,0x00,0xc5,0x00,0x82,0x00,0xc2,0x00,0x87,0x00,0xab,0x00,0xc6,0x02,0x33,0x02,0x34,0x00,0xbe, -0x00,0xbf,0x02,0x35,0x02,0x36,0x02,0x37,0x02,0x38,0x00,0xf7,0x02,0x39,0x02,0x3a,0x02,0x3b,0x02,0x3c,0x02,0x3d,0x02,0x3e,0x00,0x8c,0x02,0x3f,0x02,0x40,0x02,0x41,0x02,0x42,0x02,0x43,0x02,0x44,0x02,0x45,0x02,0x46,0x02,0x47,0x02,0x48,0x02,0x49,0x02,0x4a,0x02,0x4b,0x00,0x98,0x02,0x4c,0x00,0x9a,0x00,0x99,0x00,0xef,0x02,0x4d, -0x00,0xa5,0x00,0x92,0x02,0x4e,0x02,0x4f,0x00,0x9c,0x00,0xa7,0x00,0x8f,0x02,0x50,0x00,0x94,0x00,0x95,0x02,0x51,0x02,0x52,0x02,0x53,0x02,0x54,0x02,0x55,0x02,0x56,0x02,0x57,0x02,0x58,0x02,0x59,0x02,0x5a,0x02,0x5b,0x02,0x5c,0x02,0x5d,0x02,0x5e,0x02,0x5f,0x02,0x60,0x02,0x61,0x02,0x62,0x02,0x63,0x02,0x64,0x02,0x65,0x02,0x66, -0x02,0x67,0x02,0x68,0x02,0x69,0x02,0x6a,0x02,0x6b,0x02,0x6c,0x02,0x6d,0x02,0x6e,0x02,0x6f,0x02,0x70,0x02,0x71,0x02,0x72,0x02,0x73,0x02,0x74,0x02,0x75,0x02,0x76,0x02,0x77,0x02,0x78,0x02,0x79,0x02,0x7a,0x02,0x7b,0x02,0x7c,0x02,0x7d,0x02,0x7e,0x02,0x7f,0x02,0x80,0x02,0x81,0x02,0x82,0x02,0x83,0x02,0x84,0x02,0x85,0x02,0x86, -0x02,0x87,0x02,0x88,0x02,0x89,0x02,0x8a,0x02,0x8b,0x02,0x8c,0x02,0x8d,0x00,0xb9,0x02,0x8e,0x02,0x8f,0x02,0x90,0x02,0x91,0x02,0x92,0x02,0x93,0x02,0x94,0x02,0x95,0x02,0x96,0x02,0x97,0x02,0x98,0x02,0x99,0x02,0x9a,0x02,0x9b,0x02,0x9c,0x02,0x9d,0x02,0x9e,0x02,0x9f,0x02,0xa0,0x02,0xa1,0x02,0xa2,0x02,0xa3,0x02,0xa4,0x02,0xa5, -0x02,0xa6,0x02,0xa7,0x02,0xa8,0x02,0xa9,0x02,0xaa,0x02,0xab,0x07,0x75,0x6e,0x69,0x30,0x30,0x41,0x30,0x07,0x75,0x6e,0x69,0x30,0x30,0x41,0x44,0x07,0x75,0x6e,0x69,0x30,0x33,0x37,0x45,0x07,0x75,0x6e,0x69,0x30,0x30,0x42,0x32,0x07,0x75,0x6e,0x69,0x30,0x30,0x42,0x33,0x07,0x75,0x6e,0x69,0x30,0x30,0x42,0x35,0x07,0x75,0x6e,0x69, -0x30,0x30,0x42,0x39,0x07,0x41,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x61,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x06,0x41,0x62,0x72,0x65,0x76,0x65,0x06,0x61,0x62,0x72,0x65,0x76,0x65,0x07,0x41,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x61,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x0b,0x43,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0b,0x63, -0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0a,0x43,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x0a,0x63,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x44,0x63,0x61,0x72,0x6f,0x6e,0x06,0x64,0x63,0x61,0x72,0x6f,0x6e,0x06,0x44,0x63,0x72,0x6f,0x61,0x74,0x07,0x45,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x65,0x6d, -0x61,0x63,0x72,0x6f,0x6e,0x06,0x45,0x62,0x72,0x65,0x76,0x65,0x06,0x65,0x62,0x72,0x65,0x76,0x65,0x0a,0x45,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x0a,0x65,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x07,0x45,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x65,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x06,0x45,0x63,0x61,0x72,0x6f,0x6e, -0x06,0x65,0x63,0x61,0x72,0x6f,0x6e,0x0b,0x47,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0b,0x67,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0a,0x47,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x0a,0x67,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x0c,0x47,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65, -0x6e,0x74,0x0c,0x67,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0b,0x48,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0b,0x68,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x04,0x48,0x62,0x61,0x72,0x04,0x68,0x62,0x61,0x72,0x06,0x49,0x74,0x69,0x6c,0x64,0x65,0x06,0x69,0x74,0x69,0x6c,0x64,0x65,0x07, -0x49,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x69,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x06,0x49,0x62,0x72,0x65,0x76,0x65,0x06,0x69,0x62,0x72,0x65,0x76,0x65,0x07,0x49,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x69,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x02,0x49,0x4a,0x02,0x69,0x6a,0x0b,0x4a,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0b, -0x6a,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0c,0x4b,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0c,0x6b,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0c,0x6b,0x67,0x72,0x65,0x65,0x6e,0x6c,0x61,0x6e,0x64,0x69,0x63,0x06,0x4c,0x61,0x63,0x75,0x74,0x65,0x06,0x6c,0x61,0x63,0x75,0x74,0x65, -0x0c,0x4c,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0c,0x6c,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x4c,0x63,0x61,0x72,0x6f,0x6e,0x06,0x6c,0x63,0x61,0x72,0x6f,0x6e,0x04,0x4c,0x64,0x6f,0x74,0x04,0x6c,0x64,0x6f,0x74,0x06,0x4e,0x61,0x63,0x75,0x74,0x65,0x06,0x6e,0x61,0x63,0x75,0x74,0x65, -0x0c,0x4e,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0c,0x6e,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x4e,0x63,0x61,0x72,0x6f,0x6e,0x06,0x6e,0x63,0x61,0x72,0x6f,0x6e,0x0b,0x6e,0x61,0x70,0x6f,0x73,0x74,0x72,0x6f,0x70,0x68,0x65,0x03,0x45,0x6e,0x67,0x03,0x65,0x6e,0x67,0x07,0x4f,0x6d,0x61, -0x63,0x72,0x6f,0x6e,0x07,0x6f,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x06,0x4f,0x62,0x72,0x65,0x76,0x65,0x06,0x6f,0x62,0x72,0x65,0x76,0x65,0x0d,0x4f,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x0d,0x6f,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x06,0x52,0x61,0x63,0x75,0x74,0x65,0x06,0x72,0x61, -0x63,0x75,0x74,0x65,0x0c,0x52,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0c,0x72,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x52,0x63,0x61,0x72,0x6f,0x6e,0x06,0x72,0x63,0x61,0x72,0x6f,0x6e,0x06,0x53,0x61,0x63,0x75,0x74,0x65,0x06,0x73,0x61,0x63,0x75,0x74,0x65,0x0b,0x53,0x63,0x69,0x72,0x63, -0x75,0x6d,0x66,0x6c,0x65,0x78,0x0b,0x73,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0c,0x54,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0c,0x74,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x54,0x63,0x61,0x72,0x6f,0x6e,0x06,0x74,0x63,0x61,0x72,0x6f,0x6e,0x04,0x54,0x62,0x61,0x72,0x04, -0x74,0x62,0x61,0x72,0x06,0x55,0x74,0x69,0x6c,0x64,0x65,0x06,0x75,0x74,0x69,0x6c,0x64,0x65,0x07,0x55,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x75,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x06,0x55,0x62,0x72,0x65,0x76,0x65,0x06,0x75,0x62,0x72,0x65,0x76,0x65,0x05,0x55,0x72,0x69,0x6e,0x67,0x05,0x75,0x72,0x69,0x6e,0x67,0x0d,0x55,0x68,0x75, -0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x0d,0x75,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x07,0x55,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x75,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x0b,0x57,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0b,0x77,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78, -0x0b,0x59,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0b,0x79,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x06,0x5a,0x61,0x63,0x75,0x74,0x65,0x06,0x7a,0x61,0x63,0x75,0x74,0x65,0x0a,0x5a,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x0a,0x7a,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x05,0x6c,0x6f,0x6e, -0x67,0x73,0x0a,0x41,0x72,0x69,0x6e,0x67,0x61,0x63,0x75,0x74,0x65,0x0a,0x61,0x72,0x69,0x6e,0x67,0x61,0x63,0x75,0x74,0x65,0x07,0x41,0x45,0x61,0x63,0x75,0x74,0x65,0x07,0x61,0x65,0x61,0x63,0x75,0x74,0x65,0x0b,0x4f,0x73,0x6c,0x61,0x73,0x68,0x61,0x63,0x75,0x74,0x65,0x0b,0x6f,0x73,0x6c,0x61,0x73,0x68,0x61,0x63,0x75,0x74,0x65, -0x0c,0x53,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0c,0x73,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x30,0x32,0x31,0x41,0x07,0x75,0x6e,0x69,0x30,0x32,0x31,0x42,0x07,0x75,0x6e,0x69,0x30,0x32,0x43,0x39,0x05,0x74,0x6f,0x6e,0x6f,0x73,0x0d,0x64,0x69,0x65,0x72,0x65,0x73,0x69, -0x73,0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x41,0x6c,0x70,0x68,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x09,0x61,0x6e,0x6f,0x74,0x65,0x6c,0x65,0x69,0x61,0x0c,0x45,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x08,0x45,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x09,0x49,0x6f,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x4f,0x6d,0x69,0x63, -0x72,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x55,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x4f,0x6d,0x65,0x67,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x11,0x69,0x6f,0x74,0x61,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x74,0x6f,0x6e,0x6f,0x73,0x05,0x41,0x6c,0x70,0x68,0x61,0x04,0x42,0x65,0x74,0x61,0x05,0x47,0x61, -0x6d,0x6d,0x61,0x07,0x45,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x04,0x5a,0x65,0x74,0x61,0x03,0x45,0x74,0x61,0x05,0x54,0x68,0x65,0x74,0x61,0x04,0x49,0x6f,0x74,0x61,0x05,0x4b,0x61,0x70,0x70,0x61,0x06,0x4c,0x61,0x6d,0x62,0x64,0x61,0x02,0x4d,0x75,0x02,0x4e,0x75,0x02,0x58,0x69,0x07,0x4f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x02,0x50,0x69, -0x03,0x52,0x68,0x6f,0x05,0x53,0x69,0x67,0x6d,0x61,0x03,0x54,0x61,0x75,0x07,0x55,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x03,0x50,0x68,0x69,0x03,0x43,0x68,0x69,0x03,0x50,0x73,0x69,0x0c,0x49,0x6f,0x74,0x61,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x0f,0x55,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x0a, -0x61,0x6c,0x70,0x68,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x65,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x08,0x65,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x09,0x69,0x6f,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x14,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x74,0x6f,0x6e,0x6f,0x73,0x05, -0x61,0x6c,0x70,0x68,0x61,0x04,0x62,0x65,0x74,0x61,0x05,0x67,0x61,0x6d,0x6d,0x61,0x05,0x64,0x65,0x6c,0x74,0x61,0x07,0x65,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x04,0x7a,0x65,0x74,0x61,0x03,0x65,0x74,0x61,0x05,0x74,0x68,0x65,0x74,0x61,0x04,0x69,0x6f,0x74,0x61,0x05,0x6b,0x61,0x70,0x70,0x61,0x06,0x6c,0x61,0x6d,0x62,0x64,0x61,0x02, -0x6e,0x75,0x02,0x78,0x69,0x07,0x6f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x03,0x72,0x68,0x6f,0x06,0x73,0x69,0x67,0x6d,0x61,0x31,0x05,0x73,0x69,0x67,0x6d,0x61,0x03,0x74,0x61,0x75,0x07,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x03,0x70,0x68,0x69,0x03,0x63,0x68,0x69,0x03,0x70,0x73,0x69,0x05,0x6f,0x6d,0x65,0x67,0x61,0x0c,0x69,0x6f,0x74, -0x61,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x0f,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x0c,0x6f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x6f,0x6d,0x65,0x67,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x07,0x75, -0x6e,0x69,0x30,0x34,0x30,0x30,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x32,0x33,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x35,0x31,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x35,0x32,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x35,0x33,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x35,0x34,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30, -0x35,0x35,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x35,0x36,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x35,0x37,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x35,0x38,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x35,0x39,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x36,0x30,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x36,0x31,0x07,0x75, -0x6e,0x69,0x30,0x34,0x30,0x44,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x36,0x32,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x31,0x34,0x35,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x31,0x37,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x31,0x38,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x31,0x39,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30, -0x32,0x30,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x32,0x31,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x32,0x32,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x32,0x34,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x32,0x35,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x32,0x36,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x32,0x37,0x09,0x61, -0x66,0x69,0x69,0x31,0x30,0x30,0x32,0x38,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x32,0x39,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x33,0x30,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x33,0x31,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x33,0x32,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x33,0x33,0x09,0x61,0x66,0x69,0x69,0x31, -0x30,0x30,0x33,0x34,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x33,0x35,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x33,0x36,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x33,0x37,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x33,0x38,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x33,0x39,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x34,0x30, -0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x34,0x31,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x34,0x32,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x34,0x33,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x34,0x34,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x34,0x35,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x34,0x36,0x09,0x61,0x66,0x69, -0x69,0x31,0x30,0x30,0x34,0x37,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x34,0x38,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x34,0x39,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x36,0x35,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x36,0x36,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x36,0x37,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30, -0x36,0x38,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x36,0x39,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x37,0x30,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x37,0x32,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x37,0x33,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x37,0x34,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x37,0x35,0x09,0x61, -0x66,0x69,0x69,0x31,0x30,0x30,0x37,0x36,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x37,0x37,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x37,0x38,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x37,0x39,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x38,0x30,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x38,0x31,0x09,0x61,0x66,0x69,0x69,0x31, -0x30,0x30,0x38,0x32,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x38,0x33,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x38,0x34,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x38,0x35,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x38,0x36,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x38,0x37,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x38,0x38, -0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x38,0x39,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x39,0x30,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x39,0x31,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x39,0x32,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x39,0x33,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x39,0x34,0x09,0x61,0x66,0x69, -0x69,0x31,0x30,0x30,0x39,0x35,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x39,0x36,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x39,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x30,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x37,0x31,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x39,0x39,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x31,0x30,0x30, -0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x31,0x30,0x31,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x31,0x30,0x32,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x31,0x30,0x33,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x31,0x30,0x34,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x31,0x30,0x35,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x31,0x30,0x36,0x09,0x61,0x66,0x69, -0x69,0x31,0x30,0x31,0x30,0x37,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x31,0x30,0x38,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x31,0x30,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x44,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x31,0x31,0x30,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x31,0x39,0x33,0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x35,0x30, -0x09,0x61,0x66,0x69,0x69,0x31,0x30,0x30,0x39,0x38,0x06,0x57,0x67,0x72,0x61,0x76,0x65,0x06,0x77,0x67,0x72,0x61,0x76,0x65,0x06,0x57,0x61,0x63,0x75,0x74,0x65,0x06,0x77,0x61,0x63,0x75,0x74,0x65,0x09,0x57,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x09,0x77,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x06,0x59,0x67,0x72,0x61,0x76, -0x65,0x06,0x79,0x67,0x72,0x61,0x76,0x65,0x07,0x75,0x6e,0x69,0x32,0x30,0x31,0x30,0x07,0x75,0x6e,0x69,0x32,0x30,0x31,0x31,0x09,0x61,0x66,0x69,0x69,0x30,0x30,0x32,0x30,0x38,0x0d,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x64,0x62,0x6c,0x0d,0x71,0x75,0x6f,0x74,0x65,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x64,0x06,0x6d, -0x69,0x6e,0x75,0x74,0x65,0x06,0x73,0x65,0x63,0x6f,0x6e,0x64,0x09,0x65,0x78,0x63,0x6c,0x61,0x6d,0x64,0x62,0x6c,0x07,0x75,0x6e,0x69,0x32,0x30,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x32,0x31,0x35,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x46,0x04,0x6c,0x69,0x72,0x61,0x06,0x70,0x65,0x73,0x65,0x74,0x61,0x04,0x45,0x75,0x72,0x6f,0x09, -0x61,0x66,0x69,0x69,0x36,0x31,0x32,0x34,0x38,0x09,0x61,0x66,0x69,0x69,0x36,0x31,0x32,0x38,0x39,0x09,0x61,0x66,0x69,0x69,0x36,0x31,0x33,0x35,0x32,0x07,0x75,0x6e,0x69,0x32,0x31,0x32,0x36,0x09,0x65,0x73,0x74,0x69,0x6d,0x61,0x74,0x65,0x64,0x09,0x6f,0x6e,0x65,0x65,0x69,0x67,0x68,0x74,0x68,0x0c,0x74,0x68,0x72,0x65,0x65,0x65, -0x69,0x67,0x68,0x74,0x68,0x73,0x0b,0x66,0x69,0x76,0x65,0x65,0x69,0x67,0x68,0x74,0x68,0x73,0x0c,0x73,0x65,0x76,0x65,0x6e,0x65,0x69,0x67,0x68,0x74,0x68,0x73,0x09,0x61,0x72,0x72,0x6f,0x77,0x6c,0x65,0x66,0x74,0x07,0x61,0x72,0x72,0x6f,0x77,0x75,0x70,0x0a,0x61,0x72,0x72,0x6f,0x77,0x72,0x69,0x67,0x68,0x74,0x09,0x61,0x72,0x72, -0x6f,0x77,0x64,0x6f,0x77,0x6e,0x09,0x61,0x72,0x72,0x6f,0x77,0x62,0x6f,0x74,0x68,0x09,0x61,0x72,0x72,0x6f,0x77,0x75,0x70,0x64,0x6e,0x0c,0x61,0x72,0x72,0x6f,0x77,0x75,0x70,0x64,0x6e,0x62,0x73,0x65,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x36,0x07,0x75,0x6e,0x69,0x32,0x32,0x31,0x39,0x0a,0x6f,0x72,0x74,0x68,0x6f,0x67,0x6f,0x6e, -0x61,0x6c,0x0c,0x69,0x6e,0x74,0x65,0x72,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0b,0x65,0x71,0x75,0x69,0x76,0x61,0x6c,0x65,0x6e,0x63,0x65,0x05,0x68,0x6f,0x75,0x73,0x65,0x0d,0x72,0x65,0x76,0x6c,0x6f,0x67,0x69,0x63,0x61,0x6c,0x6e,0x6f,0x74,0x0a,0x69,0x6e,0x74,0x65,0x67,0x72,0x61,0x6c,0x74,0x70,0x0a,0x69,0x6e,0x74,0x65,0x67, -0x72,0x61,0x6c,0x62,0x74,0x08,0x53,0x46,0x31,0x30,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x31,0x31,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x30,0x31,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x30,0x33,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x30,0x32,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x30,0x34,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x30,0x38, -0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x30,0x39,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x30,0x36,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x30,0x37,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x30,0x35,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x34,0x33,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x32,0x34,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x35,0x31,0x30, -0x30,0x30,0x30,0x08,0x53,0x46,0x35,0x32,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x33,0x39,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x32,0x32,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x32,0x31,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x32,0x35,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x35,0x30,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x34,0x39,0x30,0x30, -0x30,0x30,0x08,0x53,0x46,0x33,0x38,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x32,0x38,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x32,0x37,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x32,0x36,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x33,0x36,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x33,0x37,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x34,0x32,0x30,0x30,0x30, -0x30,0x08,0x53,0x46,0x31,0x39,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x32,0x30,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x32,0x33,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x34,0x37,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x34,0x38,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x34,0x31,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x34,0x35,0x30,0x30,0x30,0x30, -0x08,0x53,0x46,0x34,0x36,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x34,0x30,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x35,0x34,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x35,0x33,0x30,0x30,0x30,0x30,0x08,0x53,0x46,0x34,0x34,0x30,0x30,0x30,0x30,0x07,0x75,0x70,0x62,0x6c,0x6f,0x63,0x6b,0x07,0x64,0x6e,0x62,0x6c,0x6f,0x63,0x6b,0x05,0x62,0x6c, -0x6f,0x63,0x6b,0x07,0x6c,0x66,0x62,0x6c,0x6f,0x63,0x6b,0x07,0x72,0x74,0x62,0x6c,0x6f,0x63,0x6b,0x07,0x6c,0x74,0x73,0x68,0x61,0x64,0x65,0x05,0x73,0x68,0x61,0x64,0x65,0x07,0x64,0x6b,0x73,0x68,0x61,0x64,0x65,0x09,0x66,0x69,0x6c,0x6c,0x65,0x64,0x62,0x6f,0x78,0x06,0x48,0x32,0x32,0x30,0x37,0x33,0x06,0x48,0x31,0x38,0x35,0x34, -0x33,0x06,0x48,0x31,0x38,0x35,0x35,0x31,0x0a,0x66,0x69,0x6c,0x6c,0x65,0x64,0x72,0x65,0x63,0x74,0x07,0x74,0x72,0x69,0x61,0x67,0x75,0x70,0x07,0x74,0x72,0x69,0x61,0x67,0x72,0x74,0x07,0x74,0x72,0x69,0x61,0x67,0x64,0x6e,0x07,0x74,0x72,0x69,0x61,0x67,0x6c,0x66,0x06,0x63,0x69,0x72,0x63,0x6c,0x65,0x06,0x48,0x31,0x38,0x35,0x33, -0x33,0x09,0x69,0x6e,0x76,0x62,0x75,0x6c,0x6c,0x65,0x74,0x09,0x69,0x6e,0x76,0x63,0x69,0x72,0x63,0x6c,0x65,0x0a,0x6f,0x70,0x65,0x6e,0x62,0x75,0x6c,0x6c,0x65,0x74,0x09,0x73,0x6d,0x69,0x6c,0x65,0x66,0x61,0x63,0x65,0x0c,0x69,0x6e,0x76,0x73,0x6d,0x69,0x6c,0x65,0x66,0x61,0x63,0x65,0x03,0x73,0x75,0x6e,0x06,0x66,0x65,0x6d,0x61, -0x6c,0x65,0x04,0x6d,0x61,0x6c,0x65,0x05,0x73,0x70,0x61,0x64,0x65,0x04,0x63,0x6c,0x75,0x62,0x05,0x68,0x65,0x61,0x72,0x74,0x07,0x64,0x69,0x61,0x6d,0x6f,0x6e,0x64,0x0b,0x6d,0x75,0x73,0x69,0x63,0x61,0x6c,0x6e,0x6f,0x74,0x65,0x0e,0x6d,0x75,0x73,0x69,0x63,0x61,0x6c,0x6e,0x6f,0x74,0x65,0x64,0x62,0x6c,0x07,0x75,0x6e,0x69,0x46, -0x42,0x30,0x31,0x07,0x75,0x6e,0x69,0x46,0x42,0x30,0x32,0x10,0x75,0x6e,0x64,0x65,0x72,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x0d,0x63,0x79,0x72,0x69,0x6c,0x6c,0x69,0x63,0x62,0x72,0x65,0x76,0x65,0x10,0x63,0x61,0x72,0x6f,0x6e,0x63,0x6f,0x6d,0x6d,0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x11,0x63,0x6f,0x6d,0x6d, -0x61,0x61,0x63,0x63,0x65,0x6e,0x74,0x72,0x6f,0x74,0x61,0x74,0x65,0x08,0x64,0x6f,0x74,0x6c,0x65,0x73,0x73,0x6a,0x0b,0x6f,0x6e,0x65,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x0b,0x74,0x77,0x6f,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x0d,0x74,0x68,0x72,0x65,0x65,0x66,0x72,0x61,0x63,0x69,0x74,0x6f,0x6e,0x0c,0x66,0x6f,0x75, -0x72,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x0c,0x66,0x69,0x76,0x65,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x0d,0x73,0x65,0x76,0x65,0x6e,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x0d,0x65,0x69,0x67,0x68,0x74,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x08,0x00,0x02,0x00,0x11,0x00,0x01, -0xff,0xff,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x18,0x00,0x20,0x00,0x00,0x00,0x02,0x00,0x01,0x00,0x01,0x02,0xa0,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0xc9,0x89,0x6f,0x31,0x00,0x00,0x00,0x00,0xbd,0x76,0x89,0x24, -0x00,0x00,0x00,0x00,0xca,0x9f,0x1d,0x63, +0x00,0x01,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x04,0x00,0x10,0x47,0x44,0x45,0x46,0x14,0xdc,0x05,0x92,0x00,0x03,0xa6,0x14,0x00,0x00,0x02,0x2a,0x47,0x50,0x4f,0x53,0x68,0xe9,0x9a,0x47,0x00,0x03,0xa8,0x40,0x00,0x00,0x23,0x96,0x47,0x53,0x55,0x42,0x28,0xdb,0xc9,0x88,0x00,0x03,0xcb,0xd8,0x00,0x00,0x62,0x14,0x4f,0x53,0x2f,0x32, +0x12,0x35,0x0b,0x84,0x00,0x00,0x01,0x98,0x00,0x00,0x00,0x60,0x63,0x6d,0x61,0x70,0x5a,0x24,0x58,0xda,0x00,0x00,0x1d,0x34,0x00,0x00,0x42,0x6a,0x63,0x76,0x74,0x20,0x27,0x58,0x0f,0x1a,0x00,0x00,0x6e,0x84,0x00,0x00,0x00,0xa8,0x66,0x70,0x67,0x6d,0x62,0x2f,0x03,0x7f,0x00,0x00,0x5f,0xa0,0x00,0x00,0x0e,0x0c,0x67,0x61,0x73,0x70, +0x00,0x00,0x00,0x10,0x00,0x03,0xa6,0x0c,0x00,0x00,0x00,0x08,0x67,0x6c,0x79,0x66,0x6c,0x17,0x21,0x7d,0x00,0x00,0x8a,0x6c,0x00,0x02,0xc9,0x3c,0x68,0x65,0x61,0x64,0x1b,0x2b,0x60,0x84,0x00,0x00,0x01,0x1c,0x00,0x00,0x00,0x36,0x68,0x68,0x65,0x61,0x00,0x35,0x07,0x57,0x00,0x00,0x01,0x54,0x00,0x00,0x00,0x24,0x68,0x6d,0x74,0x78, +0x54,0xf6,0x4a,0x0f,0x00,0x00,0x01,0xf8,0x00,0x00,0x1b,0x3c,0x6c,0x6f,0x63,0x61,0x08,0x34,0x21,0x64,0x00,0x00,0x6f,0x2c,0x00,0x00,0x1b,0x40,0x6d,0x61,0x78,0x70,0x0f,0xc8,0x14,0x44,0x00,0x00,0x01,0x78,0x00,0x00,0x00,0x20,0x6e,0x61,0x6d,0x65,0x94,0x4b,0x4e,0x5d,0x00,0x03,0x53,0xa8,0x00,0x00,0x06,0x2f,0x70,0x6f,0x73,0x74, +0x5d,0x5a,0x9a,0x04,0x00,0x03,0x59,0xd8,0x00,0x00,0x4c,0x33,0x70,0x72,0x65,0x70,0x8a,0xcd,0x9c,0x1e,0x00,0x00,0x6d,0xac,0x00,0x00,0x00,0xd6,0x00,0x01,0x00,0x00,0x00,0x02,0x4d,0xd3,0x13,0x13,0x3d,0xf7,0x5f,0x0f,0x3c,0xf5,0x00,0x0f,0x03,0xe8,0x00,0x00,0x00,0x00,0xdf,0xe8,0x66,0x79,0x00,0x00,0x00,0x00,0xdf,0xe8,0x68,0x84, +0xf9,0x39,0xfe,0x70,0x02,0xfd,0x04,0x60,0x00,0x00,0x00,0x06,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x03,0xfc,0xfe,0xd4,0x00,0x00,0x02,0x58,0xf9,0x39,0xff,0x5b,0x02,0xfd,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xcf,0x00,0x01,0x00,0x00,0x06,0xcf,0x01,0xb8, +0x00,0x6e,0x00,0x87,0x00,0x06,0x00,0x02,0x02,0x94,0x03,0xf6,0x00,0x8d,0x00,0x00,0x05,0x60,0x0e,0x0c,0x00,0x03,0x00,0x01,0x00,0x04,0x02,0x58,0x01,0x90,0x00,0x05,0x00,0x00,0x02,0x8a,0x02,0x58,0x00,0x00,0x00,0x4b,0x02,0x8a,0x02,0x58,0x00,0x00,0x01,0x5e,0x00,0x32,0x01,0x40,0x00,0x00,0x02,0x00,0x00,0x09,0x00,0x00,0x00,0x00, +0x00,0x00,0xa0,0x04,0x02,0xff,0x12,0x00,0xf9,0xfb,0x02,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,0x4a,0x42,0x00,0x00,0x00,0xc0,0x00,0x0d,0xff,0xff,0x03,0xfc,0xfe,0xd4,0x00,0x00,0x03,0xfc,0x01,0x2c,0x20,0x00,0x01,0x9f,0xdf,0xd7,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x00,0x00,0x20,0x00,0x06,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x32, +0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32, +0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c, +0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64, +0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x42,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x5f,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x0a, +0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x5c, +0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x75,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58, +0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58, +0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x48, +0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x32, +0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x55, +0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43, +0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43, +0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x57,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x3f,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x54, +0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x58, +0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xd4,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55, +0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x61,0x02,0x58,0x00,0x61, +0x02,0x58,0x00,0x67,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5c, +0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54, +0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x57,0x02,0x58,0x00,0x57,0x02,0x58,0x00,0x70,0x02,0x58,0x00,0x70, +0x02,0x58,0x00,0x70,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0xa5,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36, +0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x41, +0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x5a,0x02,0x58,0xff,0xfb,0x02,0x58,0xff,0xfb,0x02,0x58,0xff,0xfb,0x02,0x58,0xff,0xfb,0x02,0x58,0xff,0xfb,0x02,0x58,0xff,0xfb,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x22,0x02,0x58,0x00,0x22,0x02,0x58,0x00,0x22,0x02,0x58,0x00,0x22,0x02,0x58,0x00,0x22,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64, +0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0xaf,0x02,0x58,0x00,0xb9,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x06, +0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x2e, +0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5e,0x02,0x58,0xff,0xfb,0x02,0x58,0x00,0x3c,0x02,0x58,0xff,0xfb,0x02,0x58,0x00,0x35,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x4e,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69, +0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x38,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x51,0x02,0x58,0x00,0x59,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x5f,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x06,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x56,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x82, +0x02,0x58,0x00,0x1b,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x67,0x02,0x58,0x00,0x67,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x58, +0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x30,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x4e,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x3e,0x02,0x58,0x00,0x55, +0x02,0x58,0x00,0x57,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3f,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5b,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x49,0x02,0x58,0x00,0x64, +0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x4e,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x32, +0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5c, +0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x0a,0x02,0x58,0xff,0x8d,0x02,0x58,0xff,0x8d,0x02,0x58,0xff,0x8d,0x02,0x58,0xff,0xb0,0x02,0x58,0xff,0x83,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x23, +0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x67,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x36, +0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x30,0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x1a,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x4b, +0x02,0x58,0x00,0x4a,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x4a,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x1b,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x5f,0x02,0x58,0x00,0x4a,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x4a,0x02,0x58,0x00,0x4b, +0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x4a,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x4b, +0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x1e, +0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x4c,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x40,0x02,0x58,0x00,0x52,0x02,0x58,0x00,0x42,0x02,0x58,0x00,0x40,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x49, +0x02,0x58,0x00,0x42,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x8f,0x02,0x58,0x00,0x8d,0x02,0x58,0x00,0x86,0x02,0x58,0x00,0x94,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x8b, +0x02,0x58,0x00,0x8f,0x02,0x58,0x00,0x8d,0x02,0x58,0x00,0x86,0x02,0x58,0x00,0x94,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x8f,0x02,0x58,0x00,0x8d,0x02,0x58,0x00,0x86,0x02,0x58,0x00,0x94,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x8b, +0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x8f,0x02,0x58,0x00,0x8d,0x02,0x58,0x00,0x86,0x02,0x58,0x00,0x94,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x9a,0x02,0x58,0x00,0x90,0x02,0x58,0x00,0x84,0x02,0x58,0x00,0x9a,0x02,0x58,0x00,0x90,0x02,0x58,0x00,0x84, +0x02,0x58,0x00,0x9a,0x02,0x58,0x00,0x90,0x02,0x58,0x00,0x84,0x02,0x58,0x00,0x9a,0x02,0x58,0x00,0x90,0x02,0x58,0x00,0x84,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x8a,0x02,0x58,0x00,0x8a,0x02,0x58,0x00,0x8a,0x02,0x58,0x00,0x8a,0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x05, +0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x91,0x02,0x58,0x00,0x4c,0x02,0x58,0x00,0xda,0x02,0x58,0x00,0xd2,0x02,0x58,0x00,0xd9,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0xe1,0x02,0x58,0x00,0xe1,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x73, +0x02,0x58,0x00,0xda,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x24,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0xda,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0xd9,0x00,0x00,0xff,0x1a, +0x00,0x00,0xff,0x79,0x02,0x58,0x00,0xb9,0x02,0x58,0x00,0x73,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x5f,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x5f,0x02,0x58,0x00,0x6e,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0x87, +0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x78,0x02,0x58,0x00,0xa0,0x02,0x58,0x00,0x73,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0xdc,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0xd2, +0x02,0x58,0x00,0xdc,0x02,0x58,0x00,0xd2,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x8f,0x02,0x58,0x00,0xf9,0x02,0x58,0xfe,0x34,0x02,0x58,0xfb,0xdc,0x02,0x58,0xf9,0x4d,0x02,0x58,0xfb,0xa6,0x02,0x58,0xfe,0x5c,0x02,0x58,0xfd,0xfd, +0x02,0x58,0xfb,0xa5,0x02,0x58,0xfd,0xfd,0x02,0x58,0xfb,0xa5,0x02,0x58,0xfe,0x11,0x02,0x58,0xfe,0x0c,0x02,0x58,0xf9,0x7f,0x02,0x58,0xf9,0x7f,0x02,0x58,0xfc,0x09,0x02,0x58,0xfe,0x43,0x02,0x58,0xfe,0x34,0x02,0x58,0xfe,0xbb,0x02,0x58,0xfe,0x8e,0x02,0x58,0xfe,0x3e,0x02,0x58,0xfe,0xd4,0x02,0x58,0xfc,0x90,0x02,0x58,0xfc,0x71, +0x02,0x58,0xfe,0x82,0x02,0x58,0xfe,0x5c,0x02,0x58,0xfe,0xd1,0x02,0x58,0xfc,0xc9,0x02,0x58,0xfc,0x44,0x02,0x58,0xfe,0xb3,0x02,0x58,0xfc,0x2c,0x02,0x58,0xfe,0x52,0x02,0x58,0xfe,0x81,0x02,0x58,0xfe,0x81,0x02,0x58,0xfe,0xc5,0x02,0x58,0xfc,0xbd,0x02,0x58,0xfe,0xc5,0x02,0x58,0xfc,0x68,0x02,0x58,0xfd,0xf8,0x02,0x58,0xfb,0xa5, +0x02,0x58,0xfe,0x90,0x02,0x58,0xfe,0x90,0x02,0x58,0xfe,0x5c,0x02,0x58,0xfb,0xfa,0x02,0x58,0xfe,0x52,0x02,0x58,0xfb,0x9c,0x02,0x58,0xfd,0xe5,0x02,0x58,0xfd,0xcc,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xe9,0x02,0x58,0xfb,0x91, +0x02,0x58,0xf9,0x39,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfb,0x73,0x02,0x58,0xfd,0xf3,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfe,0x11,0x02,0x58,0xfb,0xa0,0x02,0x58,0xfe,0x16,0x02,0x58,0xfe,0x3e,0x02,0x58,0xfb,0xfa,0x02,0x58,0xfc,0x13,0x02,0x58,0xfe,0x66,0x02,0x58,0xfe,0x66,0x02,0x58,0xfc,0x22,0x02,0x58,0xfd,0xe4, +0x02,0x58,0xfe,0x5c,0x02,0x58,0xfc,0x0e,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0xa0,0x02,0x58,0x00,0x73,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0xda,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x13,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x1d, +0x02,0x58,0x00,0x9e,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0xda,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x9b,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x1b,0x02,0x58,0x00,0x9f,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x23,0x02,0x58,0xff,0xf6, +0x02,0x58,0x00,0x23,0x02,0x58,0x00,0xa5,0x02,0x58,0x00,0xe6,0x02,0x58,0x00,0x78,0x02,0x58,0x00,0x97,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x23,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x2d, +0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x41,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x46,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x2d, +0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55, +0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x64, +0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x23,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x9b, +0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x0e,0x02,0x58,0xff,0xfb,0x02,0x58,0x00,0x78,0x02,0x58,0x00,0xa0,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0xd9,0x02,0x58,0x00,0x23, +0x02,0x58,0x00,0x1e,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x73,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x73,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x00, +0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00, +0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x1d,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x32,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x3c,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x28, +0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x3c,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x6e, +0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x6e,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x0a,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x0a, +0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0xff,0xd8,0x02,0x58,0xff,0xd8,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00, +0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x01,0x2c,0x02,0x58,0x02,0x0d,0x02,0x58,0x00,0x00,0x02,0x58,0x01,0x2c,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00, +0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0x01,0x2c,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6, +0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0xb4,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6, +0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x96, +0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x8c,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec, +0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa, +0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec, +0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec, +0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x19, +0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec, +0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec, +0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa, +0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x44,0x02,0x58,0x00,0x44,0x02,0x58,0x00,0x3c,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32, +0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x32,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x1e, +0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00, +0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0xaa,0x02,0x58,0x00,0x7d, +0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x58,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x42,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x27, +0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x4d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0xd2,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x46, +0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x20,0x02,0x58,0x00,0x20,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0xc3,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0xc3,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d, +0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x3e,0x02,0x58,0x00,0x3e,0x02,0x58,0x00,0x20,0x02,0x58,0x00,0x2d,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x51, +0x02,0x58,0x00,0x14,0x02,0x58,0xff,0x5b,0x02,0x58,0xff,0xc9,0x02,0x58,0xff,0xa9,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x52,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec, +0x02,0x58,0x00,0xf5,0x02,0x58,0x00,0x06,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x2d,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x49,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x0f, +0x02,0x58,0x00,0x37,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x8c,0x02,0x58,0xfe,0x13,0x02,0x58,0xfe,0x07,0x02,0x58,0xfb,0xc8,0x02,0x58,0xfd,0xda,0x02,0x58,0xfb,0x82,0x02,0x58,0xfd,0xdf,0x02,0x58,0xfd,0xd5,0x02,0x58,0xfd,0xc6,0x02,0x58,0xfb,0x73,0x02,0x58,0xfd,0xd5,0x02,0x58,0xfe,0xa7,0x02,0x58,0xfb,0xd2,0x02,0x58,0xfe,0xbb, +0x02,0x58,0xfe,0xbb,0x02,0x58,0xfe,0xe3,0x02,0x58,0xfc,0xa4,0x02,0x58,0xfc,0xc7,0x02,0x58,0xfa,0xc9,0x02,0x58,0xfc,0xa4,0x02,0x58,0xfc,0xd6,0x02,0x58,0xfe,0xa7,0x02,0x58,0xfb,0xd2,0x02,0x58,0xfe,0xbb,0x02,0x58,0xfe,0x13,0x02,0x58,0xfe,0x20,0x02,0x58,0xfb,0xff,0x02,0x58,0xfd,0xda,0x02,0x58,0xfe,0x2a,0x02,0x58,0xfb,0xa0, +0x02,0x58,0xfb,0xa0,0x02,0x58,0xfd,0xf8,0x02,0x58,0xfb,0xa5,0x02,0x58,0xfb,0xa5,0x02,0x58,0xfd,0xfd,0x02,0x58,0xfb,0xa5,0x02,0x58,0xfb,0xa5,0x02,0x58,0xfb,0xa1,0x02,0x58,0xfe,0x0c,0x02,0x58,0xfb,0xb3,0x02,0x58,0xfe,0x61,0x02,0x58,0xfe,0x89,0x02,0x58,0xfe,0xcf,0x02,0x58,0xfb,0xb3,0x02,0x58,0xfe,0x2a,0x02,0x58,0xfb,0xb3, +0x02,0x58,0xfb,0xb3,0x02,0x58,0xfc,0x6d,0x02,0x58,0xfd,0xf3,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfe,0x89,0x02,0x58,0xfb,0xcd,0x02,0x58,0xf9,0x43,0x02,0x58,0xfd,0xee,0x02,0x58,0xfb,0xb4,0x02,0x58,0xfe,0x98,0x02,0x58,0xfc,0x77,0x02,0x58,0xfa,0x7e,0x02,0x58,0xfb,0xe6, +0x02,0x58,0xfe,0x07,0x02,0x58,0xfb,0xbe,0x02,0x58,0xf9,0x43,0x02,0x58,0xfd,0xee,0x02,0x58,0xfb,0xb4,0x02,0x58,0xfe,0xcf,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xf9,0x43,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfe,0x34,0x02,0x58,0xfe,0x47,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0xf5, +0x02,0x58,0xfb,0x9b,0x02,0x58,0xfd,0xf3,0x02,0x58,0xfb,0xb4,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfe,0x2a,0x02,0x58,0xfb,0xf5,0x02,0x58,0xfe,0x11,0x02,0x58,0xfd,0xee,0x02,0x58,0xfd,0xee,0x02,0x58,0xfe,0x57,0x02,0x58,0xfb,0x96,0x02,0x58,0xfe,0x39,0x02,0x58,0xfd,0xf8,0x02,0x58,0xfb,0xa0,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x41, +0x02,0x58,0x00,0xa5,0x02,0x58,0x00,0xd2,0x02,0x58,0x00,0xa5,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0xa5,0x00,0x00,0xfe,0x25,0x00,0x00,0xfe,0x8d,0x00,0x00,0xfe,0x4a,0x00,0x00,0xfe,0x90,0x00,0x00,0xfe,0x3b,0x00,0x00,0xff,0x60,0x00,0x00,0xfe,0x1f,0x00,0x00,0xfe,0x1f,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x5c, +0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x7a,0x00,0x00,0xfd,0xf0,0x00,0x00,0xfe,0x7a,0x00,0x00,0xff,0x18,0x00,0x00,0xfe,0x8d,0x00,0x00,0xfe,0x5c,0x00,0x00,0xfe,0x66,0x00,0x00,0xfe,0x75,0x00,0x00,0xfe,0x61,0x00,0x00,0xfd,0x8a,0x00,0x00,0xfd,0xcb,0x00,0x00,0xfe,0x16,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0xe5, +0x02,0x58,0x00,0xa2,0x02,0x58,0x00,0xe8,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x77,0x02,0x58,0x00,0x77,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0xb9,0x00,0x00,0xfe,0x66,0x00,0x00,0xfe,0x25,0x00,0x00,0xfe,0x8d,0x00,0x00,0xfe,0x4a,0x00,0x00,0xfe,0x90, +0x00,0x00,0xfe,0x3b,0x00,0x00,0xfe,0x1f,0x00,0x00,0xfe,0x1f,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x5c,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x7a,0x00,0x00,0xfd,0xf0,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x7a,0x00,0x00,0xff,0x1b,0x00,0x00,0xfe,0x8d,0x00,0x00,0xfe,0x25,0x00,0x00,0xfe,0x66,0x00,0x00,0xfe,0x75, +0x00,0x00,0xfe,0x61,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x34,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0xe5,0x02,0x58,0x00,0xa2,0x02,0x58,0x00,0xe8,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x77,0x02,0x58,0x00,0x77,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0xd2,0x02,0x58,0x00,0xe1, +0x02,0x58,0x00,0x7d,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x2a,0x00,0x00,0xfe,0x2a,0x00,0x00,0xfe,0x2a,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x2f,0x00,0x00,0xfe,0x2f,0x00,0x00,0xfe,0x2f,0x00,0x00,0xfe,0x2f,0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x20, +0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x20,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x32,0x02,0x58,0xff,0xd8,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x00,0x00,0x00,0x00,0x02,0x58,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x24, +0x00,0x00,0x00,0x04,0x00,0x00,0x0f,0x12,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x24,0x00,0x03,0x00,0x0a,0x00,0x00,0x0f,0x12,0x00,0x04,0x0e,0xee,0x00,0x00,0x01,0xa8,0x01,0x00,0x00,0x07,0x00,0xa8,0x00,0x0d,0x00,0x2f,0x00,0x39,0x00,0x7e,0x01,0x31,0x01,0x7f,0x01,0x90,0x01,0x92,0x01,0x9b,0x01,0xa1,0x01,0xb0,0x01,0xce,0x01,0xd0, +0x01,0xd2,0x01,0xd4,0x01,0xd6,0x01,0xd8,0x01,0xda,0x01,0xdc,0x01,0xe7,0x01,0xeb,0x01,0xf5,0x01,0xff,0x02,0x1b,0x02,0x33,0x02,0x37,0x02,0x59,0x02,0xba,0x02,0xbc,0x02,0xc7,0x02,0xc9,0x02,0xdd,0x02,0xf3,0x02,0xf7,0x03,0x04,0x03,0x0c,0x03,0x0f,0x03,0x12,0x03,0x1b,0x03,0x23,0x03,0x28,0x03,0x38,0x03,0x75,0x03,0x7e,0x03,0x8a, +0x03,0x8c,0x03,0x90,0x03,0xa1,0x03,0xa9,0x03,0xb0,0x03,0xc9,0x03,0xcf,0x03,0xd7,0x04,0x0c,0x04,0x1a,0x04,0x23,0x04,0x3a,0x04,0x43,0x04,0x4f,0x04,0x5c,0x04,0x5f,0x04,0x93,0x04,0x9b,0x04,0xa3,0x04,0xb1,0x04,0xb7,0x04,0xbb,0x04,0xd9,0x04,0xdf,0x04,0xe9,0x04,0xf5,0x0a,0xea,0x1e,0x85,0x1e,0x9e,0x1e,0xf9,0x20,0x01,0x20,0x0b, +0x20,0x10,0x20,0x14,0x20,0x16,0x20,0x22,0x20,0x24,0x20,0x26,0x20,0x30,0x20,0x34,0x20,0x3a,0x20,0x3f,0x20,0x46,0x20,0x70,0x20,0x79,0x20,0x7a,0x20,0x7c,0x20,0x89,0x20,0xac,0x20,0xae,0x20,0xb4,0x20,0xbd,0x20,0xbf,0x21,0x02,0x21,0x0d,0x21,0x13,0x21,0x16,0x21,0x1a,0x21,0x1d,0x21,0x22,0x21,0x24,0x21,0x2e,0x21,0x40,0x21,0x8b, +0x21,0x99,0x21,0x9e,0x21,0xa0,0x21,0xa3,0x21,0xa7,0x21,0xaa,0x21,0xad,0x21,0xbe,0x21,0xc9,0x21,0xd4,0x21,0xdb,0x21,0xdf,0x21,0xe5,0x21,0xe8,0x21,0xea,0x22,0x0c,0x22,0x13,0x22,0x15,0x22,0x1a,0x22,0x1e,0x22,0x25,0x22,0x2b,0x22,0x39,0x22,0x3c,0x22,0x3e,0x22,0x43,0x22,0x45,0x22,0x49,0x22,0x4b,0x22,0x4d,0x22,0x54,0x22,0x57, +0x22,0x65,0x22,0x73,0x22,0x7c,0x22,0x89,0x22,0x99,0x22,0xa5,0x22,0xb4,0x22,0xb8,0x22,0xbd,0x22,0xc4,0x22,0xc6,0x22,0xca,0x22,0xce,0x22,0xd0,0x22,0xe2,0x22,0xf1,0x23,0x05,0x23,0x0b,0x23,0x18,0x23,0x1f,0x23,0x26,0x23,0x28,0x23,0x2b,0x23,0x7a,0x23,0x8b,0x23,0x95,0x23,0xad,0x23,0xce,0x23,0xfe,0x24,0x21,0x24,0x24,0x25,0x94, +0x25,0x9f,0x25,0xa1,0x25,0xab,0x25,0xcc,0x25,0xcf,0x25,0xd5,0x25,0xe6,0x25,0xeb,0x25,0xef,0x25,0xf6,0x26,0x6d,0x26,0x6f,0x26,0x87,0x26,0xa1,0x27,0x13,0x27,0x15,0x27,0x17,0x27,0x36,0x27,0x71,0x27,0x94,0x27,0x9e,0x27,0xc6,0x27,0xdc,0x27,0xeb,0x27,0xf7,0x29,0x16,0x29,0x4a,0x29,0x88,0x2a,0x00,0x2a,0x06,0x2b,0x58,0xe0,0xa2, +0xe0,0xb3,0xfe,0x62,0xfe,0xff,0xff,0x5b,0xff,0x5d,0xff,0xfd,0xff,0xff,0x00,0x00,0x00,0x0d,0x00,0x20,0x00,0x30,0x00,0x3a,0x00,0xa0,0x01,0x34,0x01,0x8f,0x01,0x92,0x01,0x9b,0x01,0xa0,0x01,0xaf,0x01,0xcd,0x01,0xd0,0x01,0xd2,0x01,0xd4,0x01,0xd6,0x01,0xd8,0x01,0xda,0x01,0xdc,0x01,0xe6,0x01,0xea,0x01,0xf4,0x01,0xfc,0x02,0x18, +0x02,0x32,0x02,0x37,0x02,0x59,0x02,0xb9,0x02,0xbc,0x02,0xc6,0x02,0xc9,0x02,0xd8,0x02,0xf3,0x02,0xf7,0x03,0x00,0x03,0x06,0x03,0x0f,0x03,0x12,0x03,0x1b,0x03,0x23,0x03,0x25,0x03,0x36,0x03,0x74,0x03,0x7e,0x03,0x84,0x03,0x8c,0x03,0x8e,0x03,0x91,0x03,0xa3,0x03,0xaa,0x03,0xb1,0x03,0xca,0x03,0xd5,0x04,0x01,0x04,0x0e,0x04,0x1b, +0x04,0x24,0x04,0x3b,0x04,0x44,0x04,0x51,0x04,0x5e,0x04,0x90,0x04,0x9a,0x04,0xa2,0x04,0xae,0x04,0xb6,0x04,0xba,0x04,0xd8,0x04,0xdc,0x04,0xe4,0x04,0xf4,0x0a,0xea,0x1e,0x80,0x1e,0x9e,0x1e,0xa0,0x20,0x01,0x20,0x0b,0x20,0x10,0x20,0x13,0x20,0x16,0x20,0x18,0x20,0x24,0x20,0x26,0x20,0x30,0x20,0x32,0x20,0x39,0x20,0x3c,0x20,0x44, +0x20,0x70,0x20,0x74,0x20,0x7a,0x20,0x7c,0x20,0x80,0x20,0xab,0x20,0xae,0x20,0xb4,0x20,0xbd,0x20,0xbf,0x21,0x02,0x21,0x0d,0x21,0x13,0x21,0x15,0x21,0x19,0x21,0x1d,0x21,0x22,0x21,0x24,0x21,0x2e,0x21,0x40,0x21,0x8a,0x21,0x90,0x21,0x9d,0x21,0xa0,0x21,0xa2,0x21,0xa5,0x21,0xa9,0x21,0xad,0x21,0xbe,0x21,0xc9,0x21,0xd0,0x21,0xdb, +0x21,0xde,0x21,0xe5,0x21,0xe7,0x21,0xea,0x22,0x00,0x22,0x0e,0x22,0x15,0x22,0x18,0x22,0x1e,0x22,0x23,0x22,0x27,0x22,0x34,0x22,0x3c,0x22,0x3e,0x22,0x43,0x22,0x45,0x22,0x47,0x22,0x4b,0x22,0x4d,0x22,0x54,0x22,0x57,0x22,0x5f,0x22,0x6a,0x22,0x7a,0x22,0x82,0x22,0x8e,0x22,0x9b,0x22,0xb4,0x22,0xb8,0x22,0xbb,0x22,0xc2,0x22,0xc6, +0x22,0xc8,0x22,0xce,0x22,0xd0,0x22,0xe2,0x22,0xee,0x23,0x02,0x23,0x08,0x23,0x18,0x23,0x1c,0x23,0x24,0x23,0x28,0x23,0x2b,0x23,0x36,0x23,0x89,0x23,0x95,0x23,0x9b,0x23,0xce,0x23,0xfb,0x24,0x00,0x24,0x23,0x25,0x00,0x25,0x95,0x25,0xa0,0x25,0xaa,0x25,0xb2,0x25,0xce,0x25,0xd4,0x25,0xe6,0x25,0xe7,0x25,0xef,0x25,0xf6,0x26,0x6d, +0x26,0x6f,0x26,0x87,0x26,0xa0,0x27,0x13,0x27,0x15,0x27,0x17,0x27,0x36,0x27,0x6e,0x27,0x94,0x27,0x9c,0x27,0xc5,0x27,0xdc,0x27,0xe6,0x27,0xf5,0x29,0x16,0x29,0x4a,0x29,0x87,0x2a,0x00,0x2a,0x05,0x2b,0x58,0xe0,0xa0,0xe0,0xb0,0xfe,0x62,0xfe,0xff,0xff,0x5b,0xff,0x5d,0xff,0xfd,0xff,0xff,0x03,0xb3,0x00,0x00,0x02,0xa4,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x36,0xff,0x7a,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x33,0xff,0x53,0xff,0x80,0xff,0x84,0xff,0x7f,0xff,0x7e,0xff,0x7d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xd7,0xfe,0x9a,0x00,0x00,0x03,0xa8,0x03,0xbf,0x03,0x9d,0x00,0x00,0x03,0x10,0x03,0x0d,0x00,0x00,0x00,0x00, +0x03,0x66,0x03,0x64,0x03,0x5c,0x03,0x55,0x03,0x54,0x03,0x47,0x02,0xee,0x00,0x3d,0x00,0x00,0xfe,0xe1,0x00,0x00,0xfe,0xc0,0xfe,0xbf,0x00,0x00,0xfe,0xc4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfd,0xbc,0x00,0x00,0xfd,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x3e,0x00,0x00,0xe1,0xe9,0x00,0x00,0xe3,0xbb,0xe3,0xb2,0xe3,0x4b,0xe3,0x46,0xe3,0x21,0x00,0x00,0xe3,0x17,0xe3,0x07,0xe4,0x09,0x00,0x00,0xe3,0x2e,0x00,0x00,0x00,0x00,0xe2,0x92,0xe2,0x92,0xe3,0xc1,0xe3,0x6a,0xe2,0x64,0xe3,0x1b,0xe3,0x1e,0xe3,0x15,0xe3,0x0d,0xe3,0x03,0xe1,0xa0,0xe1,0x9a, +0xe4,0xae,0x00,0x00,0xe1,0x96,0xe1,0x94,0xe4,0x98,0xe1,0x95,0xe4,0x96,0xe3,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0xe2,0xde,0xe2,0xdd,0xe2,0xdc,0xe2,0xdc,0xe2,0xcf,0xe2,0xc9,0xe2,0xbf,0x00,0x00,0xe2,0xb3,0x00,0x00,0xe2,0x9f,0xe2,0xa8,0xe3,0xf8,0x00,0x00,0x00,0x00,0xe1,0xc8,0x00,0x00,0xe2,0x06,0x00,0x00,0xe1,0xff,0x00,0x00, +0xe2,0x12,0xe1,0xaf,0xe1,0x8d,0xe1,0x92,0x00,0x00,0xe2,0x19,0xe1,0x9b,0xe1,0x81,0xe1,0xf5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe1,0x54,0xe1,0x44,0x00,0x00,0x00,0x00,0xe1,0x93,0x00,0x00,0xe1,0x0c,0xe1,0x10,0xe1,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0xe2,0xd1,0x00,0x00,0x00,0x00,0xe2,0xbd,0xe2,0xb8, +0x00,0x00,0x00,0x00,0xe1,0xf0,0x00,0x00,0xe2,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdf,0x17,0xdf,0x28,0xdf,0x20,0x00,0x00,0x00,0x00,0xde,0xe9,0xde,0xdd,0xde,0xe5,0xde,0xcd,0xde,0xc9,0xdf,0xf3,0xdf,0xf2,0xdf,0x24,0xdf,0x0c,0xde,0x9b,0xde,0x9a,0xde,0x99,0xde,0x7b,0x00,0x00,0xdc,0xff,0xdc,0xf8,0x00,0x00,0xdc,0x13, +0x00,0x00,0xdc,0xa2,0xdb,0x2d,0xda,0xa4,0xd9,0xce,0xd9,0xfe,0xd9,0xfa,0xda,0x99,0x26,0x24,0x26,0x17,0x05,0xd8,0x04,0xc2,0x03,0xee,0x03,0xed,0x05,0xf9,0x00,0x01,0x00,0x00,0x01,0xa6,0x00,0x00,0x01,0xc2,0x02,0x4a,0x03,0x6c,0x04,0x02,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xf8,0x03,0xfa,0x03,0xfc,0x03,0xfe,0x04,0x04,0x04,0x0a,0x00,0x00,0x00,0x00,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x04,0x0a,0x04,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0e,0x00,0x00,0x04,0x18,0x00,0x00, +0x00,0x00,0x04,0x18,0x00,0x00,0x04,0x22,0x04,0x2c,0x04,0x30,0x04,0x46,0x00,0x00,0x04,0x5c,0x00,0x00,0x04,0x86,0x04,0x9c,0x04,0xb2,0x04,0xb4,0x04,0xba,0x04,0xbc,0x04,0xbe,0x04,0xc4,0x04,0xc6,0x04,0xc8,0x04,0xca,0x04,0xd0,0x04,0xda,0x00,0x00,0x04,0xda,0x00,0x00,0x04,0xe2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x05,0x8a,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x98,0x00,0x00,0x05,0x9a,0x05,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x8a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x80,0x05,0x82,0x05,0x94,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x88,0x00,0x00,0x05,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x8a,0x05,0xa2,0x00,0x00,0x05,0xaa,0x00,0x00,0x05,0xac,0x00,0x00,0x05,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0xac,0x05,0xb8,0x05,0xca, +0x05,0xce,0x05,0xdc,0x05,0xf2,0x00,0x00,0x00,0x00,0x06,0x02,0x06,0x06,0x00,0x00,0x06,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x06,0x0c,0x06,0x12,0x00,0x00,0x06,0x16,0x06,0x1c,0x00,0x00,0x00,0x00,0x06,0x1c,0x06,0xa4,0x00,0x00,0x06,0xa6,0x00,0x00,0x06,0xc8,0x06,0xce,0x07,0x10,0x07,0x12,0x00,0x00,0x00,0x00,0x00,0x00, +0x08,0x34,0x08,0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x50,0x00,0x00,0x00,0x00,0x08,0x52,0x00,0x00,0x08,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xbe,0x03,0x2e,0x03,0x6a,0x03,0x3a,0x03,0xc5,0x04,0x38,0x05,0xb5,0x03,0x6b,0x03,0x43,0x03,0x44,0x03,0x34,0x04,0x15,0x03,0x2a,0x03,0x57,0x03,0x29,0x03,0x3d,0x03,0x2b,0x03,0x2c,0x04,0x1c,0x04,0x19,0x04,0x1b,0x03,0x30,0x05,0xb4,0x00,0x01,0x00,0x1a,0x00,0x1b,0x00,0x21,0x00,0x25, +0x00,0x38,0x00,0x39,0x00,0x40,0x00,0x43,0x00,0x4f,0x00,0x51,0x00,0x53,0x00,0x59,0x00,0x5a,0x00,0x60,0x00,0x7a,0x00,0x7c,0x00,0x7d,0x00,0x81,0x00,0x89,0x00,0x8e,0x00,0xa1,0x00,0xa2,0x00,0xa7,0x00,0xa8,0x00,0xb1,0x03,0x47,0x03,0x3e,0x03,0x48,0x04,0x23,0x03,0x5c,0x06,0x82,0x00,0xbd,0x00,0xd6,0x00,0xd7,0x00,0xdd,0x00,0xe1, +0x00,0xf4,0x00,0xf5,0x00,0xfc,0x00,0xff,0x01,0x0d,0x01,0x10,0x01,0x13,0x01,0x1a,0x01,0x1b,0x01,0x22,0x01,0x3d,0x01,0x3f,0x01,0x40,0x01,0x44,0x01,0x4c,0x01,0x51,0x01,0x69,0x01,0x6a,0x01,0x6f,0x01,0x70,0x01,0x79,0x03,0x45,0x05,0xbe,0x03,0x46,0x04,0x22,0x03,0xbf,0x03,0x2f,0x03,0xc3,0x03,0xcb,0x03,0xc4,0x03,0xcd,0x05,0xbf, +0x05,0xb7,0x06,0x80,0x05,0xb8,0x01,0xc6,0x03,0x65,0x04,0x21,0x03,0x58,0x05,0xb9,0x06,0x8a,0x05,0xbb,0x04,0x1f,0x03,0x04,0x03,0x05,0x06,0x83,0x04,0x30,0x05,0xb6,0x03,0x32,0x06,0x8b,0x03,0x03,0x01,0xc7,0x03,0x66,0x03,0x22,0x03,0x21,0x03,0x23,0x03,0x31,0x00,0x12,0x00,0x02,0x00,0x0a,0x00,0x17,0x00,0x10,0x00,0x16,0x00,0x18, +0x00,0x1e,0x00,0x32,0x00,0x26,0x00,0x29,0x00,0x2f,0x00,0x4a,0x00,0x44,0x00,0x46,0x00,0x47,0x00,0x22,0x00,0x5f,0x00,0x6b,0x00,0x61,0x00,0x63,0x00,0x78,0x00,0x69,0x04,0x17,0x00,0x76,0x00,0x94,0x00,0x8f,0x00,0x91,0x00,0x92,0x00,0xa9,0x00,0x7b,0x01,0x4a,0x00,0xce,0x00,0xbe,0x00,0xc6,0x00,0xd3,0x00,0xcc,0x00,0xd2,0x00,0xd4, +0x00,0xda,0x00,0xee,0x00,0xe2,0x00,0xe5,0x00,0xeb,0x01,0x08,0x01,0x01,0x01,0x04,0x01,0x05,0x00,0xde,0x01,0x21,0x01,0x2e,0x01,0x23,0x01,0x26,0x01,0x3b,0x01,0x2c,0x04,0x18,0x01,0x39,0x01,0x5c,0x01,0x52,0x01,0x55,0x01,0x56,0x01,0x71,0x01,0x3e,0x01,0x73,0x00,0x14,0x00,0xd0,0x00,0x03,0x00,0xbf,0x00,0x15,0x00,0xd1,0x00,0x1c, +0x00,0xd8,0x00,0x1f,0x00,0xdb,0x00,0x20,0x00,0xdc,0x00,0x1d,0x00,0xd9,0x00,0x23,0x00,0xdf,0x00,0x24,0x00,0xe0,0x00,0x34,0x00,0xf0,0x00,0x27,0x00,0xe3,0x00,0x30,0x00,0xec,0x00,0x35,0x00,0xf1,0x00,0x28,0x00,0xe4,0x00,0x3d,0x00,0xf9,0x00,0x3b,0x00,0xf7,0x00,0x3f,0x00,0xfb,0x00,0x3e,0x00,0xfa,0x00,0x42,0x00,0xfe,0x00,0x41, +0x00,0xfd,0x00,0x4e,0x01,0x0c,0x00,0x4c,0x01,0x0a,0x00,0x45,0x01,0x02,0x00,0x4d,0x01,0x0b,0x00,0x48,0x01,0x00,0x00,0x50,0x01,0x0f,0x00,0x52,0x01,0x11,0x01,0x12,0x00,0x54,0x01,0x14,0x00,0x56,0x01,0x17,0x00,0x55,0x01,0x16,0x00,0x57,0x01,0x18,0x00,0x58,0x01,0x19,0x00,0x5b,0x01,0x1c,0x00,0x5d,0x01,0x1f,0x00,0x5c,0x01,0x1e, +0x01,0x1d,0x00,0x5e,0x01,0x20,0x00,0x74,0x01,0x37,0x00,0x62,0x01,0x24,0x00,0x73,0x01,0x36,0x00,0x79,0x01,0x3c,0x00,0x7e,0x01,0x41,0x00,0x80,0x01,0x43,0x00,0x7f,0x01,0x42,0x00,0x82,0x01,0x45,0x00,0x85,0x01,0x48,0x00,0x84,0x01,0x47,0x00,0x83,0x01,0x46,0x00,0x8c,0x01,0x4f,0x00,0x8b,0x01,0x4e,0x00,0x8a,0x01,0x4d,0x00,0xa0, +0x01,0x68,0x00,0x9d,0x01,0x65,0x00,0x90,0x01,0x53,0x00,0x9f,0x01,0x67,0x00,0x9c,0x01,0x64,0x00,0x9e,0x01,0x66,0x00,0xa4,0x01,0x6c,0x00,0xaa,0x01,0x72,0x00,0xab,0x00,0xb2,0x01,0x7a,0x00,0xb4,0x01,0x7c,0x00,0xb3,0x01,0x7b,0x01,0x4b,0x00,0x88,0x00,0x36,0x00,0x6d,0x01,0x30,0x00,0x96,0x01,0x5e,0x00,0x09,0x00,0xc5,0x00,0x3c, +0x00,0xf8,0x00,0x75,0x01,0x38,0x00,0x3a,0x00,0xf6,0x00,0x19,0x00,0xd5,0x00,0x77,0x01,0x3a,0x00,0x86,0x01,0x49,0x00,0x8d,0x01,0x50,0x00,0xaf,0x01,0x77,0x06,0x67,0x06,0x65,0x06,0x87,0x06,0x81,0x06,0x88,0x06,0x8c,0x06,0x89,0x06,0x84,0x06,0x6a,0x06,0x6b,0x06,0x6e,0x06,0x72,0x06,0x73,0x06,0x70,0x06,0x69,0x06,0x68,0x06,0x74, +0x06,0x71,0x06,0x6c,0x06,0x6f,0x06,0xb0,0x06,0xb2,0x02,0x69,0x03,0xba,0x02,0x6a,0x02,0x6b,0x02,0x6c,0x02,0x6e,0x02,0x6f,0x02,0x90,0x02,0x70,0x02,0x71,0x02,0x96,0x02,0x97,0x02,0x98,0x02,0x8e,0x02,0x93,0x02,0x8f,0x02,0x92,0x02,0x94,0x02,0x91,0x02,0x95,0x02,0x72,0x02,0x9a,0x02,0x9b,0x02,0x99,0x01,0xd0,0x01,0xf6,0x01,0xcc, +0x01,0xee,0x01,0xed,0x01,0xf0,0x01,0xf1,0x01,0xf2,0x01,0xeb,0x01,0xec,0x01,0xf3,0x01,0xd6,0x01,0xe0,0x01,0xe7,0x01,0xc8,0x01,0xc9,0x01,0xca,0x01,0xcb,0x01,0xce,0x01,0xcf,0x01,0xd1,0x01,0xd2,0x01,0xd3,0x01,0xd4,0x01,0xd5,0x01,0xe1,0x01,0xe2,0x01,0xe4,0x01,0xe3,0x01,0xe5,0x01,0xe6,0x01,0xe9,0x01,0xea,0x01,0xe8,0x01,0xef, +0x01,0xf4,0x01,0xf5,0x02,0x0c,0x02,0x0d,0x02,0x0e,0x02,0x0f,0x02,0x12,0x02,0x13,0x02,0x15,0x02,0x16,0x02,0x17,0x02,0x18,0x02,0x19,0x02,0x25,0x02,0x26,0x02,0x28,0x02,0x27,0x02,0x29,0x02,0x2a,0x02,0x2d,0x02,0x2e,0x02,0x2c,0x02,0x33,0x02,0x38,0x02,0x39,0x02,0x14,0x02,0x3a,0x02,0x10,0x02,0x32,0x02,0x31,0x02,0x34,0x02,0x35, +0x02,0x36,0x02,0x2f,0x02,0x30,0x02,0x37,0x02,0x1a,0x02,0x24,0x02,0x2b,0x01,0xcd,0x02,0x11,0x01,0xf7,0x02,0x3b,0x01,0xf8,0x02,0x3c,0x01,0xf9,0x02,0x3d,0x01,0xfa,0x02,0x3e,0x01,0xfb,0x02,0x3f,0x01,0xfc,0x02,0x40,0x01,0xfd,0x02,0x41,0x01,0xfe,0x02,0x42,0x01,0xff,0x02,0x43,0x02,0x00,0x02,0x44,0x02,0x01,0x02,0x45,0x02,0x02, +0x02,0x46,0x02,0x03,0x02,0x47,0x02,0x04,0x02,0x48,0x00,0xa6,0x01,0x6e,0x00,0xa3,0x01,0x6b,0x00,0xa5,0x01,0x6d,0x00,0x11,0x00,0xcd,0x00,0x13,0x00,0xcf,0x00,0x0b,0x00,0xc7,0x00,0x0d,0x00,0xc9,0x00,0x0e,0x00,0xca,0x00,0x0f,0x00,0xcb,0x00,0x0c,0x00,0xc8,0x00,0x04,0x00,0xc0,0x00,0x06,0x00,0xc2,0x00,0x07,0x00,0xc3,0x00,0x08, +0x00,0xc4,0x00,0x05,0x00,0xc1,0x00,0x31,0x00,0xed,0x00,0x33,0x00,0xef,0x00,0x37,0x00,0xf2,0x00,0x2a,0x00,0xe6,0x00,0x2c,0x00,0xe8,0x00,0x2d,0x00,0xe9,0x00,0x2e,0x00,0xea,0x00,0x2b,0x00,0xe7,0x00,0x4b,0x01,0x09,0x00,0x49,0x01,0x07,0x00,0x6a,0x01,0x2d,0x00,0x6c,0x01,0x2f,0x00,0x64,0x01,0x27,0x00,0x66,0x01,0x29,0x00,0x67, +0x01,0x2a,0x00,0x68,0x01,0x2b,0x00,0x65,0x01,0x28,0x00,0x6e,0x01,0x31,0x00,0x70,0x01,0x33,0x00,0x71,0x01,0x34,0x00,0x72,0x01,0x35,0x00,0x6f,0x01,0x32,0x00,0x93,0x01,0x5b,0x00,0x95,0x01,0x5d,0x00,0x97,0x01,0x5f,0x00,0x99,0x01,0x61,0x00,0x9a,0x01,0x62,0x00,0x9b,0x01,0x63,0x00,0x98,0x01,0x60,0x00,0xad,0x01,0x75,0x00,0xac, +0x01,0x74,0x00,0xae,0x01,0x76,0x00,0xb0,0x01,0x78,0x03,0x61,0x03,0x62,0x03,0x5d,0x03,0x63,0x03,0x5f,0x03,0x60,0x03,0x5e,0x03,0x64,0x05,0xc0,0x05,0xc2,0x03,0x33,0x05,0xbc,0x05,0xbd,0x03,0x69,0x03,0x38,0x03,0x39,0x03,0x3c,0x03,0x3f,0x03,0x20,0x03,0x35,0x03,0x36,0x02,0xad,0x05,0xc3,0x05,0xff,0x05,0xfe,0x04,0x77,0x04,0x71, +0x04,0x73,0x04,0x75,0x04,0x79,0x04,0x7a,0x04,0x78,0x04,0x72,0x04,0x74,0x04,0x76,0x04,0x7b,0x04,0x7d,0x04,0x8c,0x04,0x89,0x04,0x8a,0x04,0x8b,0x04,0x8d,0x05,0xe8,0x05,0xe7,0x04,0x65,0x03,0xd6,0x04,0x2f,0x03,0xea,0x04,0x62,0x04,0x25,0x04,0x2b,0x03,0xeb,0x03,0xe2,0x04,0x0b,0x03,0xe3,0x04,0x5d,0x04,0x0a,0x03,0xe5,0x04,0x2c, +0x03,0xd8,0x04,0x2d,0x04,0x16,0x03,0xf9,0x04,0x4d,0x03,0xd4,0x04,0x2e,0x03,0xdc,0x03,0xde,0x04,0x31,0x04,0x63,0x03,0xd1,0x04,0x40,0x04,0x3e,0x03,0xdf,0x03,0xe9,0x04,0x04,0x04,0x20,0x04,0x09,0x04,0x3f,0x04,0x1a,0x03,0xe7,0x04,0x0f,0x04,0x5a,0x04,0x1e,0x04,0x1d,0x03,0xfb,0x03,0xfa,0x03,0xd2,0x04,0x0c,0x04,0x10,0x04,0x0d, +0x04,0x11,0x04,0x0e,0x03,0xf7,0x03,0xec,0x04,0x3c,0x04,0x5c,0x04,0x3d,0x04,0x5b,0x04,0x5f,0x04,0x13,0x04,0x14,0x04,0x41,0x04,0x42,0x04,0x05,0x04,0x06,0x03,0xfd,0x04,0x55,0x04,0x57,0x04,0x56,0x04,0x58,0x04,0x4f,0x04,0x50,0x04,0x70,0x04,0x6d,0x04,0x6e,0x04,0x6c,0x04,0x6f,0x04,0x69,0x04,0x6b,0x04,0x6a,0x04,0x53,0x04,0x52, +0x04,0x54,0x04,0x51,0x04,0x4b,0x04,0x61,0x04,0x60,0x04,0x67,0x04,0x68,0x04,0x01,0x04,0x07,0x04,0x02,0x04,0x03,0x03,0xdb,0x03,0xd3,0x03,0xf3,0x04,0x47,0x03,0xe4,0x03,0xf8,0x04,0x66,0x03,0xe1,0x05,0xe1,0x05,0xca,0x04,0x91,0x05,0xf4,0x03,0x4f,0x03,0x52,0x03,0x50,0x03,0x53,0x05,0xce,0x05,0xcd,0x05,0xcb,0x05,0xcc,0x04,0x92, +0x05,0xe6,0x05,0xe4,0x05,0x65,0x05,0xa0,0x05,0x8f,0x05,0x8c,0x05,0x8b,0x05,0x91,0x05,0x87,0x05,0x6d,0x05,0x6b,0x05,0x9f,0x05,0x68,0x05,0x97,0x05,0x86,0x05,0x93,0x05,0x90,0x05,0x82,0x05,0x9d,0x05,0x92,0x05,0x96,0x05,0x69,0x05,0x79,0x05,0x72,0x05,0x8e,0x05,0x8a,0x05,0x78,0x05,0xa9,0x05,0x98,0x05,0xa8,0x05,0x71,0x05,0x99, +0x05,0x89,0x05,0xa7,0x05,0x7a,0x05,0x8d,0x05,0x9b,0x05,0x73,0x05,0x75,0x05,0x80,0x05,0x6e,0x05,0xa5,0x05,0x9a,0x05,0x6c,0x05,0x88,0x05,0xa6,0x05,0x70,0x05,0xa1,0x05,0x7f,0x05,0x6a,0x05,0x77,0x05,0x81,0x05,0xa3,0x05,0x7c,0x05,0x6f,0x05,0x74,0x05,0xaa,0x05,0xa2,0x05,0x9e,0x05,0x94,0x05,0x95,0x05,0x76,0x05,0xa4,0x05,0x7d, +0x05,0x9c,0x05,0x83,0x05,0x67,0x05,0x7b,0x05,0x7e,0x05,0x84,0x05,0x66,0x05,0xe0,0x05,0xd5,0x05,0xc7,0x04,0x34,0x04,0x32,0x04,0x33,0x04,0x37,0x04,0x35,0x04,0x36,0x03,0xf6,0x03,0xf4,0x03,0xf5,0x04,0x4a,0x04,0x48,0x04,0x49,0x03,0xf2,0x03,0xf1,0x03,0xf0,0x03,0xd9,0x04,0x46,0x04,0x45,0x04,0x44,0x05,0xef,0x05,0xf0,0x05,0xf2, +0x05,0xf3,0x05,0xee,0x05,0xfa,0x05,0xfb,0x05,0xd7,0x05,0xd8,0x05,0xda,0x05,0xb2,0x05,0xc5,0x05,0xb3,0x05,0xdf,0x05,0xeb,0x06,0x01,0x05,0xdd,0x05,0xc9,0x05,0xf8,0x05,0xf7,0x05,0xcf,0x05,0xd2,0x05,0xd4,0x05,0xd3,0x05,0xd1,0x05,0xec,0x05,0xfd,0x05,0xd9,0x05,0xc8,0x05,0xd6,0x05,0xfc,0x05,0xdb,0x05,0xdc,0x05,0xde,0x05,0xf5, +0x06,0x00,0x05,0xf9,0x05,0xd0,0x05,0xc6,0x05,0xed,0x05,0x2e,0x05,0x08,0x05,0x3b,0x05,0x15,0x05,0x34,0x05,0x0e,0x05,0x35,0x05,0x0f,0x05,0x31,0x05,0x0b,0x05,0x32,0x05,0x0c,0x05,0x2d,0x04,0xfc,0x04,0xf6,0x05,0x07,0x05,0x2c,0x04,0xfa,0x04,0xf4,0x05,0x06,0x05,0x3a,0x05,0x55,0x05,0x4f,0x05,0x14,0x05,0x39,0x05,0x53,0x05,0x4d, +0x05,0x12,0x05,0x3e,0x05,0x61,0x05,0x4e,0x04,0xf7,0x05,0x5e,0x04,0xfd,0x05,0x54,0x05,0x18,0x05,0x3d,0x05,0x60,0x05,0x4c,0x04,0xf5,0x05,0x5d,0x04,0xfb,0x05,0x52,0x05,0x17,0x05,0x2b,0x05,0x1a,0x05,0x40,0x04,0xf9,0x04,0xf3,0x05,0x43,0x05,0x1d,0x05,0x05,0x05,0x38,0x05,0x1b,0x05,0x41,0x05,0x51,0x05,0x4b,0x05,0x44,0x05,0x1e, +0x05,0x11,0x05,0x3c,0x05,0x1c,0x05,0x42,0x05,0x5f,0x05,0x4a,0x04,0xf8,0x05,0x5c,0x05,0x20,0x05,0x46,0x05,0x19,0x05,0x3f,0x04,0xfe,0x05,0x50,0x05,0x45,0x05,0x1f,0x05,0x16,0x05,0x28,0x05,0x02,0x05,0x29,0x05,0x03,0x04,0xe8,0x04,0xec,0x05,0x01,0x04,0xf2,0x04,0xe7,0x05,0x00,0x04,0xf1,0x04,0xe6,0x05,0x58,0x05,0x49,0x04,0xeb, +0x05,0x57,0x05,0x48,0x04,0xea,0x05,0x64,0x05,0x5b,0x04,0xef,0x05,0x63,0x05,0x5a,0x04,0xee,0x04,0xff,0x04,0xf0,0x04,0xe5,0x05,0x56,0x05,0x47,0x04,0xe9,0x05,0x62,0x05,0x59,0x04,0xed,0x05,0x22,0x05,0x21,0x05,0x23,0x05,0x24,0x05,0x27,0x05,0x26,0x05,0x25,0x05,0x2f,0x05,0x36,0x05,0x33,0x05,0x2a,0x05,0x09,0x05,0x10,0x05,0x0d, +0x05,0x04,0x05,0x30,0x05,0x37,0x05,0x0a,0x05,0x13,0x04,0xa2,0x04,0x9a,0x04,0x9b,0x04,0x9c,0x04,0x9d,0x04,0x9e,0x04,0x9f,0x04,0xa0,0x04,0xa1,0x04,0xaa,0x04,0xa9,0x04,0xa8,0x04,0xa7,0x04,0xa6,0x04,0xa5,0x04,0xa4,0x04,0xab,0x04,0xb7,0x04,0xb8,0x04,0xb9,0x04,0xa3,0x04,0xd1,0x04,0xd5,0x04,0xdd,0x04,0xe1,0x04,0xd2,0x04,0xd6, +0x04,0xde,0x04,0xe2,0x04,0xd9,0x04,0xdb,0x04,0xd3,0x04,0xd7,0x04,0xdf,0x04,0xe3,0x04,0xd4,0x04,0xd8,0x04,0xe0,0x04,0xe4,0x04,0xda,0x04,0xdc,0x04,0xc4,0x04,0xc5,0x04,0xc6,0x04,0xc1,0x04,0xc7,0x04,0xbb,0x04,0xc0,0x04,0xc2,0x04,0xba,0x03,0x4c,0x03,0x4e,0x03,0x4b,0x03,0x4d,0x03,0x51,0x03,0x54,0x03,0xb6,0x03,0xb9,0x03,0xb4, +0x03,0xb7,0x03,0xb5,0x03,0xb8,0x00,0x0c,0x00,0x00,0x00,0x00,0x33,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x46,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x0d,0x00,0x00,0x03,0xc0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x03,0xbe,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x21,0x00,0x00,0x03,0x2e,0x00,0x00,0x00,0x22,0x00,0x00, +0x00,0x22,0x00,0x00,0x03,0x6a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x03,0x3a,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x24,0x00,0x00,0x03,0xc5,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x04,0x38,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x26,0x00,0x00,0x05,0xb5,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x27,0x00,0x00, +0x03,0x6b,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x29,0x00,0x00,0x03,0x43,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x2a,0x00,0x00,0x03,0x34,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x2b,0x00,0x00,0x04,0x15,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x2c,0x00,0x00,0x03,0x2a,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x2d,0x00,0x00,0x03,0x57,0x00,0x00, +0x00,0x2e,0x00,0x00,0x00,0x2e,0x00,0x00,0x03,0x29,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x2f,0x00,0x00,0x03,0x3d,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x39,0x00,0x00,0x02,0xd4,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3b,0x00,0x00,0x03,0x2b,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x3c,0x00,0x00,0x04,0x1c,0x00,0x00,0x00,0x3d,0x00,0x00, +0x00,0x3d,0x00,0x00,0x04,0x19,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3e,0x00,0x00,0x04,0x1b,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3f,0x00,0x00,0x03,0x30,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x05,0xb4,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x43,0x00,0x00, +0x00,0x1a,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x43,0x00,0x00, +0x00,0x4a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x50,0x00,0x00, +0x00,0x50,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x57,0x00,0x00, +0x00,0xa1,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5b,0x00,0x00,0x03,0x47,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x5c,0x00,0x00,0x03,0x3e,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x5d,0x00,0x00,0x03,0x48,0x00,0x00, +0x00,0x5e,0x00,0x00,0x00,0x5e,0x00,0x00,0x04,0x23,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x5f,0x00,0x00,0x03,0x5c,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x06,0x82,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x64,0x00,0x00, +0x00,0x64,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x6a,0x00,0x00, +0x01,0x0d,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6b,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x6c,0x00,0x00,0x01,0x13,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x01,0x1a,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x6f,0x00,0x00,0x01,0x22,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x01,0x3d,0x00,0x00, +0x00,0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x01,0x3f,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x73,0x00,0x00,0x01,0x44,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x74,0x00,0x00,0x01,0x4c,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x75,0x00,0x00,0x01,0x51,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x77,0x00,0x00,0x01,0x69,0x00,0x00,0x00,0x78,0x00,0x00, +0x00,0x79,0x00,0x00,0x01,0x6f,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x7a,0x00,0x00,0x01,0x79,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x7b,0x00,0x00,0x03,0x45,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x7c,0x00,0x00,0x05,0xbe,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x7d,0x00,0x00,0x03,0x46,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x7e,0x00,0x00, +0x04,0x22,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xa0,0x00,0x00,0x03,0xbf,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0xa1,0x00,0x00,0x03,0x2f,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xa2,0x00,0x00,0x03,0xc3,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa3,0x00,0x00,0x03,0xcb,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0xa4,0x00,0x00,0x03,0xc4,0x00,0x00, +0x00,0xa5,0x00,0x00,0x00,0xa5,0x00,0x00,0x03,0xcd,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xa6,0x00,0x00,0x05,0xbf,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xa7,0x00,0x00,0x05,0xb7,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xa8,0x00,0x00,0x06,0x80,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xa9,0x00,0x00,0x05,0xb8,0x00,0x00,0x00,0xaa,0x00,0x00, +0x00,0xaa,0x00,0x00,0x01,0xc6,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xab,0x00,0x00,0x03,0x65,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xac,0x00,0x00,0x04,0x21,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0xad,0x00,0x00,0x03,0x58,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xae,0x00,0x00,0x05,0xb9,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xaf,0x00,0x00, +0x06,0x8a,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xb0,0x00,0x00,0x05,0xbb,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xb1,0x00,0x00,0x04,0x1f,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb3,0x00,0x00,0x03,0x04,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xb4,0x00,0x00,0x06,0x83,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb5,0x00,0x00,0x04,0x30,0x00,0x00, +0x00,0xb6,0x00,0x00,0x00,0xb6,0x00,0x00,0x05,0xb6,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0xb7,0x00,0x00,0x03,0x32,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb8,0x00,0x00,0x06,0x8b,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb9,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xba,0x00,0x00,0x01,0xc7,0x00,0x00,0x00,0xbb,0x00,0x00, +0x00,0xbb,0x00,0x00,0x03,0x66,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0xbc,0x00,0x00,0x03,0x22,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0xbd,0x00,0x00,0x03,0x21,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xbe,0x00,0x00,0x03,0x23,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xbf,0x00,0x00,0x03,0x31,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xc0,0x00,0x00, +0x00,0x12,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x16,0x00,0x00, +0x00,0xc6,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0xcb,0x00,0x00, +0x00,0xcb,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xd1,0x00,0x00, +0x00,0x5f,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x69,0x00,0x00, +0x00,0xd7,0x00,0x00,0x00,0xd7,0x00,0x00,0x04,0x17,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0xdd,0x00,0x00, +0x00,0xdd,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xdf,0x00,0x00,0x01,0x4a,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xe2,0x00,0x00, +0x00,0xc6,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xda,0x00,0x00, +0x00,0xe8,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xec,0x00,0x00,0x01,0x08,0x00,0x00,0x00,0xed,0x00,0x00, +0x00,0xed,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xef,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xf1,0x00,0x00,0x01,0x21,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xf2,0x00,0x00,0x01,0x2e,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf3,0x00,0x00, +0x01,0x23,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xf4,0x00,0x00,0x01,0x26,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf5,0x00,0x00,0x01,0x3b,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf6,0x00,0x00,0x01,0x2c,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf7,0x00,0x00,0x04,0x18,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf8,0x00,0x00,0x01,0x39,0x00,0x00, +0x00,0xf9,0x00,0x00,0x00,0xf9,0x00,0x00,0x01,0x5c,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0xfa,0x00,0x00,0x01,0x52,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xfc,0x00,0x00,0x01,0x55,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfd,0x00,0x00,0x01,0x71,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x01,0x3e,0x00,0x00,0x00,0xff,0x00,0x00, +0x00,0xff,0x00,0x00,0x01,0x73,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0xd0,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x00,0xbf,0x00,0x00,0x01,0x04,0x00,0x00,0x01,0x04,0x00,0x00, +0x00,0x15,0x00,0x00,0x01,0x05,0x00,0x00,0x01,0x05,0x00,0x00,0x00,0xd1,0x00,0x00,0x01,0x06,0x00,0x00,0x01,0x06,0x00,0x00,0x00,0x1c,0x00,0x00,0x01,0x07,0x00,0x00,0x01,0x07,0x00,0x00,0x00,0xd8,0x00,0x00,0x01,0x08,0x00,0x00,0x01,0x08,0x00,0x00,0x00,0x1f,0x00,0x00,0x01,0x09,0x00,0x00,0x01,0x09,0x00,0x00,0x00,0xdb,0x00,0x00, +0x01,0x0a,0x00,0x00,0x01,0x0a,0x00,0x00,0x00,0x20,0x00,0x00,0x01,0x0b,0x00,0x00,0x01,0x0b,0x00,0x00,0x00,0xdc,0x00,0x00,0x01,0x0c,0x00,0x00,0x01,0x0c,0x00,0x00,0x00,0x1d,0x00,0x00,0x01,0x0d,0x00,0x00,0x01,0x0d,0x00,0x00,0x00,0xd9,0x00,0x00,0x01,0x0e,0x00,0x00,0x01,0x0e,0x00,0x00,0x00,0x23,0x00,0x00,0x01,0x0f,0x00,0x00, +0x01,0x0f,0x00,0x00,0x00,0xdf,0x00,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x24,0x00,0x00,0x01,0x11,0x00,0x00,0x01,0x11,0x00,0x00,0x00,0xe0,0x00,0x00,0x01,0x12,0x00,0x00,0x01,0x12,0x00,0x00,0x00,0x34,0x00,0x00,0x01,0x13,0x00,0x00,0x01,0x13,0x00,0x00,0x00,0xf0,0x00,0x00,0x01,0x14,0x00,0x00,0x01,0x14,0x00,0x00, +0x00,0x27,0x00,0x00,0x01,0x15,0x00,0x00,0x01,0x15,0x00,0x00,0x00,0xe3,0x00,0x00,0x01,0x16,0x00,0x00,0x01,0x16,0x00,0x00,0x00,0x30,0x00,0x00,0x01,0x17,0x00,0x00,0x01,0x17,0x00,0x00,0x00,0xec,0x00,0x00,0x01,0x18,0x00,0x00,0x01,0x18,0x00,0x00,0x00,0x35,0x00,0x00,0x01,0x19,0x00,0x00,0x01,0x19,0x00,0x00,0x00,0xf1,0x00,0x00, +0x01,0x1a,0x00,0x00,0x01,0x1a,0x00,0x00,0x00,0x28,0x00,0x00,0x01,0x1b,0x00,0x00,0x01,0x1b,0x00,0x00,0x00,0xe4,0x00,0x00,0x01,0x1c,0x00,0x00,0x01,0x1c,0x00,0x00,0x00,0x3d,0x00,0x00,0x01,0x1d,0x00,0x00,0x01,0x1d,0x00,0x00,0x00,0xf9,0x00,0x00,0x01,0x1e,0x00,0x00,0x01,0x1e,0x00,0x00,0x00,0x3b,0x00,0x00,0x01,0x1f,0x00,0x00, +0x01,0x1f,0x00,0x00,0x00,0xf7,0x00,0x00,0x01,0x20,0x00,0x00,0x01,0x20,0x00,0x00,0x00,0x3f,0x00,0x00,0x01,0x21,0x00,0x00,0x01,0x21,0x00,0x00,0x00,0xfb,0x00,0x00,0x01,0x22,0x00,0x00,0x01,0x22,0x00,0x00,0x00,0x3e,0x00,0x00,0x01,0x23,0x00,0x00,0x01,0x23,0x00,0x00,0x00,0xfa,0x00,0x00,0x01,0x24,0x00,0x00,0x01,0x24,0x00,0x00, +0x00,0x42,0x00,0x00,0x01,0x25,0x00,0x00,0x01,0x25,0x00,0x00,0x00,0xfe,0x00,0x00,0x01,0x26,0x00,0x00,0x01,0x26,0x00,0x00,0x00,0x41,0x00,0x00,0x01,0x27,0x00,0x00,0x01,0x27,0x00,0x00,0x00,0xfd,0x00,0x00,0x01,0x28,0x00,0x00,0x01,0x28,0x00,0x00,0x00,0x4e,0x00,0x00,0x01,0x29,0x00,0x00,0x01,0x29,0x00,0x00,0x01,0x0c,0x00,0x00, +0x01,0x2a,0x00,0x00,0x01,0x2a,0x00,0x00,0x00,0x4c,0x00,0x00,0x01,0x2b,0x00,0x00,0x01,0x2b,0x00,0x00,0x01,0x0a,0x00,0x00,0x01,0x2c,0x00,0x00,0x01,0x2c,0x00,0x00,0x00,0x45,0x00,0x00,0x01,0x2d,0x00,0x00,0x01,0x2d,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x2e,0x00,0x00,0x01,0x2e,0x00,0x00,0x00,0x4d,0x00,0x00,0x01,0x2f,0x00,0x00, +0x01,0x2f,0x00,0x00,0x01,0x0b,0x00,0x00,0x01,0x30,0x00,0x00,0x01,0x30,0x00,0x00,0x00,0x48,0x00,0x00,0x01,0x31,0x00,0x00,0x01,0x31,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x34,0x00,0x00,0x01,0x34,0x00,0x00,0x00,0x50,0x00,0x00,0x01,0x35,0x00,0x00,0x01,0x35,0x00,0x00,0x01,0x0f,0x00,0x00,0x01,0x36,0x00,0x00,0x01,0x36,0x00,0x00, +0x00,0x52,0x00,0x00,0x01,0x37,0x00,0x00,0x01,0x38,0x00,0x00,0x01,0x11,0x00,0x00,0x01,0x39,0x00,0x00,0x01,0x39,0x00,0x00,0x00,0x54,0x00,0x00,0x01,0x3a,0x00,0x00,0x01,0x3a,0x00,0x00,0x01,0x14,0x00,0x00,0x01,0x3b,0x00,0x00,0x01,0x3b,0x00,0x00,0x00,0x56,0x00,0x00,0x01,0x3c,0x00,0x00,0x01,0x3c,0x00,0x00,0x01,0x17,0x00,0x00, +0x01,0x3d,0x00,0x00,0x01,0x3d,0x00,0x00,0x00,0x55,0x00,0x00,0x01,0x3e,0x00,0x00,0x01,0x3e,0x00,0x00,0x01,0x16,0x00,0x00,0x01,0x3f,0x00,0x00,0x01,0x3f,0x00,0x00,0x00,0x57,0x00,0x00,0x01,0x40,0x00,0x00,0x01,0x40,0x00,0x00,0x01,0x18,0x00,0x00,0x01,0x41,0x00,0x00,0x01,0x41,0x00,0x00,0x00,0x58,0x00,0x00,0x01,0x42,0x00,0x00, +0x01,0x42,0x00,0x00,0x01,0x19,0x00,0x00,0x01,0x43,0x00,0x00,0x01,0x43,0x00,0x00,0x00,0x5b,0x00,0x00,0x01,0x44,0x00,0x00,0x01,0x44,0x00,0x00,0x01,0x1c,0x00,0x00,0x01,0x45,0x00,0x00,0x01,0x45,0x00,0x00,0x00,0x5d,0x00,0x00,0x01,0x46,0x00,0x00,0x01,0x46,0x00,0x00,0x01,0x1f,0x00,0x00,0x01,0x47,0x00,0x00,0x01,0x47,0x00,0x00, +0x00,0x5c,0x00,0x00,0x01,0x48,0x00,0x00,0x01,0x48,0x00,0x00,0x01,0x1e,0x00,0x00,0x01,0x49,0x00,0x00,0x01,0x49,0x00,0x00,0x01,0x1d,0x00,0x00,0x01,0x4a,0x00,0x00,0x01,0x4a,0x00,0x00,0x00,0x5e,0x00,0x00,0x01,0x4b,0x00,0x00,0x01,0x4b,0x00,0x00,0x01,0x20,0x00,0x00,0x01,0x4c,0x00,0x00,0x01,0x4c,0x00,0x00,0x00,0x74,0x00,0x00, +0x01,0x4d,0x00,0x00,0x01,0x4d,0x00,0x00,0x01,0x37,0x00,0x00,0x01,0x4e,0x00,0x00,0x01,0x4e,0x00,0x00,0x00,0x62,0x00,0x00,0x01,0x4f,0x00,0x00,0x01,0x4f,0x00,0x00,0x01,0x24,0x00,0x00,0x01,0x50,0x00,0x00,0x01,0x50,0x00,0x00,0x00,0x73,0x00,0x00,0x01,0x51,0x00,0x00,0x01,0x51,0x00,0x00,0x01,0x36,0x00,0x00,0x01,0x52,0x00,0x00, +0x01,0x52,0x00,0x00,0x00,0x79,0x00,0x00,0x01,0x53,0x00,0x00,0x01,0x53,0x00,0x00,0x01,0x3c,0x00,0x00,0x01,0x54,0x00,0x00,0x01,0x54,0x00,0x00,0x00,0x7e,0x00,0x00,0x01,0x55,0x00,0x00,0x01,0x55,0x00,0x00,0x01,0x41,0x00,0x00,0x01,0x56,0x00,0x00,0x01,0x56,0x00,0x00,0x00,0x80,0x00,0x00,0x01,0x57,0x00,0x00,0x01,0x57,0x00,0x00, +0x01,0x43,0x00,0x00,0x01,0x58,0x00,0x00,0x01,0x58,0x00,0x00,0x00,0x7f,0x00,0x00,0x01,0x59,0x00,0x00,0x01,0x59,0x00,0x00,0x01,0x42,0x00,0x00,0x01,0x5a,0x00,0x00,0x01,0x5a,0x00,0x00,0x00,0x82,0x00,0x00,0x01,0x5b,0x00,0x00,0x01,0x5b,0x00,0x00,0x01,0x45,0x00,0x00,0x01,0x5c,0x00,0x00,0x01,0x5c,0x00,0x00,0x00,0x85,0x00,0x00, +0x01,0x5d,0x00,0x00,0x01,0x5d,0x00,0x00,0x01,0x48,0x00,0x00,0x01,0x5e,0x00,0x00,0x01,0x5e,0x00,0x00,0x00,0x84,0x00,0x00,0x01,0x5f,0x00,0x00,0x01,0x5f,0x00,0x00,0x01,0x47,0x00,0x00,0x01,0x60,0x00,0x00,0x01,0x60,0x00,0x00,0x00,0x83,0x00,0x00,0x01,0x61,0x00,0x00,0x01,0x61,0x00,0x00,0x01,0x46,0x00,0x00,0x01,0x62,0x00,0x00, +0x01,0x62,0x00,0x00,0x00,0x8c,0x00,0x00,0x01,0x63,0x00,0x00,0x01,0x63,0x00,0x00,0x01,0x4f,0x00,0x00,0x01,0x64,0x00,0x00,0x01,0x64,0x00,0x00,0x00,0x8b,0x00,0x00,0x01,0x65,0x00,0x00,0x01,0x65,0x00,0x00,0x01,0x4e,0x00,0x00,0x01,0x66,0x00,0x00,0x01,0x66,0x00,0x00,0x00,0x8a,0x00,0x00,0x01,0x67,0x00,0x00,0x01,0x67,0x00,0x00, +0x01,0x4d,0x00,0x00,0x01,0x68,0x00,0x00,0x01,0x68,0x00,0x00,0x00,0xa0,0x00,0x00,0x01,0x69,0x00,0x00,0x01,0x69,0x00,0x00,0x01,0x68,0x00,0x00,0x01,0x6a,0x00,0x00,0x01,0x6a,0x00,0x00,0x00,0x9d,0x00,0x00,0x01,0x6b,0x00,0x00,0x01,0x6b,0x00,0x00,0x01,0x65,0x00,0x00,0x01,0x6c,0x00,0x00,0x01,0x6c,0x00,0x00,0x00,0x90,0x00,0x00, +0x01,0x6d,0x00,0x00,0x01,0x6d,0x00,0x00,0x01,0x53,0x00,0x00,0x01,0x6e,0x00,0x00,0x01,0x6e,0x00,0x00,0x00,0x9f,0x00,0x00,0x01,0x6f,0x00,0x00,0x01,0x6f,0x00,0x00,0x01,0x67,0x00,0x00,0x01,0x70,0x00,0x00,0x01,0x70,0x00,0x00,0x00,0x9c,0x00,0x00,0x01,0x71,0x00,0x00,0x01,0x71,0x00,0x00,0x01,0x64,0x00,0x00,0x01,0x72,0x00,0x00, +0x01,0x72,0x00,0x00,0x00,0x9e,0x00,0x00,0x01,0x73,0x00,0x00,0x01,0x73,0x00,0x00,0x01,0x66,0x00,0x00,0x01,0x74,0x00,0x00,0x01,0x74,0x00,0x00,0x00,0xa4,0x00,0x00,0x01,0x75,0x00,0x00,0x01,0x75,0x00,0x00,0x01,0x6c,0x00,0x00,0x01,0x76,0x00,0x00,0x01,0x76,0x00,0x00,0x00,0xaa,0x00,0x00,0x01,0x77,0x00,0x00,0x01,0x77,0x00,0x00, +0x01,0x72,0x00,0x00,0x01,0x78,0x00,0x00,0x01,0x78,0x00,0x00,0x00,0xab,0x00,0x00,0x01,0x79,0x00,0x00,0x01,0x79,0x00,0x00,0x00,0xb2,0x00,0x00,0x01,0x7a,0x00,0x00,0x01,0x7a,0x00,0x00,0x01,0x7a,0x00,0x00,0x01,0x7b,0x00,0x00,0x01,0x7b,0x00,0x00,0x00,0xb4,0x00,0x00,0x01,0x7c,0x00,0x00,0x01,0x7c,0x00,0x00,0x01,0x7c,0x00,0x00, +0x01,0x7d,0x00,0x00,0x01,0x7d,0x00,0x00,0x00,0xb3,0x00,0x00,0x01,0x7e,0x00,0x00,0x01,0x7e,0x00,0x00,0x01,0x7b,0x00,0x00,0x01,0x7f,0x00,0x00,0x01,0x7f,0x00,0x00,0x01,0x4b,0x00,0x00,0x01,0x8f,0x00,0x00,0x01,0x8f,0x00,0x00,0x00,0x88,0x00,0x00,0x01,0x90,0x00,0x00,0x01,0x90,0x00,0x00,0x00,0x36,0x00,0x00,0x01,0x92,0x00,0x00, +0x01,0x92,0x00,0x00,0x03,0xc8,0x00,0x00,0x01,0x9b,0x00,0x00,0x01,0x9b,0x00,0x00,0x01,0x15,0x00,0x00,0x01,0xa0,0x00,0x00,0x01,0xa0,0x00,0x00,0x00,0x6d,0x00,0x00,0x01,0xa1,0x00,0x00,0x01,0xa1,0x00,0x00,0x01,0x30,0x00,0x00,0x01,0xaf,0x00,0x00,0x01,0xaf,0x00,0x00,0x00,0x96,0x00,0x00,0x01,0xb0,0x00,0x00,0x01,0xb0,0x00,0x00, +0x01,0x5e,0x00,0x00,0x01,0xcd,0x00,0x00,0x01,0xcd,0x00,0x00,0x00,0x09,0x00,0x00,0x01,0xce,0x00,0x00,0x01,0xce,0x00,0x00,0x00,0xc5,0x00,0x00,0x01,0xd0,0x00,0x00,0x01,0xd0,0x00,0x00,0x01,0x03,0x00,0x00,0x01,0xd2,0x00,0x00,0x01,0xd2,0x00,0x00,0x01,0x25,0x00,0x00,0x01,0xd4,0x00,0x00,0x01,0xd4,0x00,0x00,0x01,0x54,0x00,0x00, +0x01,0xd6,0x00,0x00,0x01,0xd6,0x00,0x00,0x01,0x5a,0x00,0x00,0x01,0xd8,0x00,0x00,0x01,0xd8,0x00,0x00,0x01,0x57,0x00,0x00,0x01,0xda,0x00,0x00,0x01,0xda,0x00,0x00,0x01,0x58,0x00,0x00,0x01,0xdc,0x00,0x00,0x01,0xdc,0x00,0x00,0x01,0x59,0x00,0x00,0x01,0xe6,0x00,0x00,0x01,0xe6,0x00,0x00,0x00,0x3c,0x00,0x00,0x01,0xe7,0x00,0x00, +0x01,0xe7,0x00,0x00,0x00,0xf8,0x00,0x00,0x01,0xea,0x00,0x00,0x01,0xea,0x00,0x00,0x00,0x75,0x00,0x00,0x01,0xeb,0x00,0x00,0x01,0xeb,0x00,0x00,0x01,0x38,0x00,0x00,0x01,0xf4,0x00,0x00,0x01,0xf4,0x00,0x00,0x00,0x3a,0x00,0x00,0x01,0xf5,0x00,0x00,0x01,0xf5,0x00,0x00,0x00,0xf6,0x00,0x00,0x01,0xfc,0x00,0x00,0x01,0xfc,0x00,0x00, +0x00,0x19,0x00,0x00,0x01,0xfd,0x00,0x00,0x01,0xfd,0x00,0x00,0x00,0xd5,0x00,0x00,0x01,0xfe,0x00,0x00,0x01,0xfe,0x00,0x00,0x00,0x77,0x00,0x00,0x01,0xff,0x00,0x00,0x01,0xff,0x00,0x00,0x01,0x3a,0x00,0x00,0x02,0x18,0x00,0x00,0x02,0x18,0x00,0x00,0x00,0x86,0x00,0x00,0x02,0x19,0x00,0x00,0x02,0x19,0x00,0x00,0x01,0x49,0x00,0x00, +0x02,0x1a,0x00,0x00,0x02,0x1a,0x00,0x00,0x00,0x8d,0x00,0x00,0x02,0x1b,0x00,0x00,0x02,0x1b,0x00,0x00,0x01,0x50,0x00,0x00,0x02,0x32,0x00,0x00,0x02,0x32,0x00,0x00,0x00,0xaf,0x00,0x00,0x02,0x33,0x00,0x00,0x02,0x33,0x00,0x00,0x01,0x77,0x00,0x00,0x02,0x37,0x00,0x00,0x02,0x37,0x00,0x00,0x01,0x0e,0x00,0x00,0x02,0x59,0x00,0x00, +0x02,0x59,0x00,0x00,0x00,0xf3,0x00,0x00,0x02,0xb9,0x00,0x00,0x02,0xb9,0x00,0x00,0x06,0x67,0x00,0x00,0x02,0xba,0x00,0x00,0x02,0xba,0x00,0x00,0x06,0x65,0x00,0x00,0x02,0xbc,0x00,0x00,0x02,0xbc,0x00,0x00,0x06,0x64,0x00,0x00,0x02,0xc6,0x00,0x00,0x02,0xc7,0x00,0x00,0x06,0x85,0x00,0x00,0x02,0xc9,0x00,0x00,0x02,0xc9,0x00,0x00, +0x06,0x66,0x00,0x00,0x02,0xd8,0x00,0x00,0x02,0xd8,0x00,0x00,0x06,0x87,0x00,0x00,0x02,0xd9,0x00,0x00,0x02,0xd9,0x00,0x00,0x06,0x81,0x00,0x00,0x02,0xda,0x00,0x00,0x02,0xda,0x00,0x00,0x06,0x88,0x00,0x00,0x02,0xdb,0x00,0x00,0x02,0xdb,0x00,0x00,0x06,0x8c,0x00,0x00,0x02,0xdc,0x00,0x00,0x02,0xdc,0x00,0x00,0x06,0x89,0x00,0x00, +0x02,0xdd,0x00,0x00,0x02,0xdd,0x00,0x00,0x06,0x84,0x00,0x00,0x02,0xf3,0x00,0x00,0x02,0xf3,0x00,0x00,0x06,0x03,0x00,0x00,0x02,0xf7,0x00,0x00,0x02,0xf7,0x00,0x00,0x06,0x04,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x06,0x6a,0x00,0x00,0x03,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0x06,0x6e,0x00,0x00,0x03,0x03,0x00,0x00, +0x03,0x04,0x00,0x00,0x06,0x72,0x00,0x00,0x03,0x06,0x00,0x00,0x03,0x06,0x00,0x00,0x06,0x70,0x00,0x00,0x03,0x07,0x00,0x00,0x03,0x07,0x00,0x00,0x06,0x69,0x00,0x00,0x03,0x08,0x00,0x00,0x03,0x08,0x00,0x00,0x06,0x68,0x00,0x00,0x03,0x09,0x00,0x00,0x03,0x09,0x00,0x00,0x06,0x74,0x00,0x00,0x03,0x0a,0x00,0x00,0x03,0x0a,0x00,0x00, +0x06,0x71,0x00,0x00,0x03,0x0b,0x00,0x00,0x03,0x0b,0x00,0x00,0x06,0x6c,0x00,0x00,0x03,0x0c,0x00,0x00,0x03,0x0c,0x00,0x00,0x06,0x6f,0x00,0x00,0x03,0x0f,0x00,0x00,0x03,0x0f,0x00,0x00,0x06,0x75,0x00,0x00,0x03,0x12,0x00,0x00,0x03,0x12,0x00,0x00,0x06,0x76,0x00,0x00,0x03,0x1b,0x00,0x00,0x03,0x1b,0x00,0x00,0x06,0x77,0x00,0x00, +0x03,0x23,0x00,0x00,0x03,0x23,0x00,0x00,0x06,0x78,0x00,0x00,0x03,0x25,0x00,0x00,0x03,0x28,0x00,0x00,0x06,0x79,0x00,0x00,0x03,0x36,0x00,0x00,0x03,0x38,0x00,0x00,0x06,0x7d,0x00,0x00,0x03,0x74,0x00,0x00,0x03,0x75,0x00,0x00,0x06,0x62,0x00,0x00,0x03,0x7e,0x00,0x00,0x03,0x7e,0x00,0x00,0x03,0xbb,0x00,0x00,0x03,0x84,0x00,0x00, +0x03,0x84,0x00,0x00,0x06,0xb0,0x00,0x00,0x03,0x85,0x00,0x00,0x03,0x85,0x00,0x00,0x06,0xb2,0x00,0x00,0x03,0x86,0x00,0x00,0x03,0x86,0x00,0x00,0x02,0x69,0x00,0x00,0x03,0x87,0x00,0x00,0x03,0x87,0x00,0x00,0x03,0xba,0x00,0x00,0x03,0x88,0x00,0x00,0x03,0x8a,0x00,0x00,0x02,0x6a,0x00,0x00,0x03,0x8c,0x00,0x00,0x03,0x8c,0x00,0x00, +0x02,0x6d,0x00,0x00,0x03,0x8e,0x00,0x00,0x03,0x8f,0x00,0x00,0x02,0x6e,0x00,0x00,0x03,0x90,0x00,0x00,0x03,0x90,0x00,0x00,0x02,0x90,0x00,0x00,0x03,0x91,0x00,0x00,0x03,0xa1,0x00,0x00,0x02,0x51,0x00,0x00,0x03,0xa3,0x00,0x00,0x03,0xa9,0x00,0x00,0x02,0x62,0x00,0x00,0x03,0xaa,0x00,0x00,0x03,0xab,0x00,0x00,0x02,0x70,0x00,0x00, +0x03,0xac,0x00,0x00,0x03,0xae,0x00,0x00,0x02,0x96,0x00,0x00,0x03,0xaf,0x00,0x00,0x03,0xaf,0x00,0x00,0x02,0x8e,0x00,0x00,0x03,0xb0,0x00,0x00,0x03,0xb0,0x00,0x00,0x02,0x93,0x00,0x00,0x03,0xb1,0x00,0x00,0x03,0xc9,0x00,0x00,0x02,0x75,0x00,0x00,0x03,0xca,0x00,0x00,0x03,0xca,0x00,0x00,0x02,0x8f,0x00,0x00,0x03,0xcb,0x00,0x00, +0x03,0xcb,0x00,0x00,0x02,0x92,0x00,0x00,0x03,0xcc,0x00,0x00,0x03,0xcc,0x00,0x00,0x02,0x94,0x00,0x00,0x03,0xcd,0x00,0x00,0x03,0xcd,0x00,0x00,0x02,0x91,0x00,0x00,0x03,0xce,0x00,0x00,0x03,0xce,0x00,0x00,0x02,0x95,0x00,0x00,0x03,0xcf,0x00,0x00,0x03,0xcf,0x00,0x00,0x02,0x72,0x00,0x00,0x03,0xd5,0x00,0x00,0x03,0xd6,0x00,0x00, +0x02,0x9a,0x00,0x00,0x03,0xd7,0x00,0x00,0x03,0xd7,0x00,0x00,0x02,0x99,0x00,0x00,0x04,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x01,0xd0,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x01,0xf6,0x00,0x00,0x04,0x03,0x00,0x00,0x04,0x03,0x00,0x00,0x01,0xcc,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x01,0xee,0x00,0x00, +0x04,0x05,0x00,0x00,0x04,0x05,0x00,0x00,0x01,0xed,0x00,0x00,0x04,0x06,0x00,0x00,0x04,0x08,0x00,0x00,0x01,0xf0,0x00,0x00,0x04,0x09,0x00,0x00,0x04,0x0a,0x00,0x00,0x01,0xeb,0x00,0x00,0x04,0x0b,0x00,0x00,0x04,0x0b,0x00,0x00,0x01,0xf3,0x00,0x00,0x04,0x0c,0x00,0x00,0x04,0x0c,0x00,0x00,0x01,0xd6,0x00,0x00,0x04,0x0e,0x00,0x00, +0x04,0x0e,0x00,0x00,0x01,0xe0,0x00,0x00,0x04,0x0f,0x00,0x00,0x04,0x0f,0x00,0x00,0x01,0xe7,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x13,0x00,0x00,0x01,0xc8,0x00,0x00,0x04,0x14,0x00,0x00,0x04,0x15,0x00,0x00,0x01,0xce,0x00,0x00,0x04,0x16,0x00,0x00,0x04,0x1a,0x00,0x00,0x01,0xd1,0x00,0x00,0x04,0x1b,0x00,0x00,0x04,0x23,0x00,0x00, +0x01,0xd7,0x00,0x00,0x04,0x24,0x00,0x00,0x04,0x25,0x00,0x00,0x01,0xe1,0x00,0x00,0x04,0x26,0x00,0x00,0x04,0x26,0x00,0x00,0x01,0xe4,0x00,0x00,0x04,0x27,0x00,0x00,0x04,0x27,0x00,0x00,0x01,0xe3,0x00,0x00,0x04,0x28,0x00,0x00,0x04,0x29,0x00,0x00,0x01,0xe5,0x00,0x00,0x04,0x2a,0x00,0x00,0x04,0x2b,0x00,0x00,0x01,0xe9,0x00,0x00, +0x04,0x2c,0x00,0x00,0x04,0x2c,0x00,0x00,0x01,0xe8,0x00,0x00,0x04,0x2d,0x00,0x00,0x04,0x2d,0x00,0x00,0x01,0xef,0x00,0x00,0x04,0x2e,0x00,0x00,0x04,0x2f,0x00,0x00,0x01,0xf4,0x00,0x00,0x04,0x30,0x00,0x00,0x04,0x33,0x00,0x00,0x02,0x0c,0x00,0x00,0x04,0x34,0x00,0x00,0x04,0x35,0x00,0x00,0x02,0x12,0x00,0x00,0x04,0x36,0x00,0x00, +0x04,0x3a,0x00,0x00,0x02,0x15,0x00,0x00,0x04,0x3b,0x00,0x00,0x04,0x43,0x00,0x00,0x02,0x1b,0x00,0x00,0x04,0x44,0x00,0x00,0x04,0x45,0x00,0x00,0x02,0x25,0x00,0x00,0x04,0x46,0x00,0x00,0x04,0x46,0x00,0x00,0x02,0x28,0x00,0x00,0x04,0x47,0x00,0x00,0x04,0x47,0x00,0x00,0x02,0x27,0x00,0x00,0x04,0x48,0x00,0x00,0x04,0x49,0x00,0x00, +0x02,0x29,0x00,0x00,0x04,0x4a,0x00,0x00,0x04,0x4b,0x00,0x00,0x02,0x2d,0x00,0x00,0x04,0x4c,0x00,0x00,0x04,0x4c,0x00,0x00,0x02,0x2c,0x00,0x00,0x04,0x4d,0x00,0x00,0x04,0x4d,0x00,0x00,0x02,0x33,0x00,0x00,0x04,0x4e,0x00,0x00,0x04,0x4f,0x00,0x00,0x02,0x38,0x00,0x00,0x04,0x51,0x00,0x00,0x04,0x51,0x00,0x00,0x02,0x14,0x00,0x00, +0x04,0x52,0x00,0x00,0x04,0x52,0x00,0x00,0x02,0x3a,0x00,0x00,0x04,0x53,0x00,0x00,0x04,0x53,0x00,0x00,0x02,0x10,0x00,0x00,0x04,0x54,0x00,0x00,0x04,0x54,0x00,0x00,0x02,0x32,0x00,0x00,0x04,0x55,0x00,0x00,0x04,0x55,0x00,0x00,0x02,0x31,0x00,0x00,0x04,0x56,0x00,0x00,0x04,0x58,0x00,0x00,0x02,0x34,0x00,0x00,0x04,0x59,0x00,0x00, +0x04,0x5a,0x00,0x00,0x02,0x2f,0x00,0x00,0x04,0x5b,0x00,0x00,0x04,0x5b,0x00,0x00,0x02,0x37,0x00,0x00,0x04,0x5c,0x00,0x00,0x04,0x5c,0x00,0x00,0x02,0x1a,0x00,0x00,0x04,0x5e,0x00,0x00,0x04,0x5e,0x00,0x00,0x02,0x24,0x00,0x00,0x04,0x5f,0x00,0x00,0x04,0x5f,0x00,0x00,0x02,0x2b,0x00,0x00,0x04,0x90,0x00,0x00,0x04,0x90,0x00,0x00, +0x01,0xcd,0x00,0x00,0x04,0x91,0x00,0x00,0x04,0x91,0x00,0x00,0x02,0x11,0x00,0x00,0x04,0x92,0x00,0x00,0x04,0x92,0x00,0x00,0x01,0xf7,0x00,0x00,0x04,0x93,0x00,0x00,0x04,0x93,0x00,0x00,0x02,0x3b,0x00,0x00,0x04,0x9a,0x00,0x00,0x04,0x9a,0x00,0x00,0x01,0xf8,0x00,0x00,0x04,0x9b,0x00,0x00,0x04,0x9b,0x00,0x00,0x02,0x3c,0x00,0x00, +0x04,0xa2,0x00,0x00,0x04,0xa2,0x00,0x00,0x01,0xf9,0x00,0x00,0x04,0xa3,0x00,0x00,0x04,0xa3,0x00,0x00,0x02,0x3d,0x00,0x00,0x04,0xae,0x00,0x00,0x04,0xae,0x00,0x00,0x01,0xfa,0x00,0x00,0x04,0xaf,0x00,0x00,0x04,0xaf,0x00,0x00,0x02,0x3e,0x00,0x00,0x04,0xb0,0x00,0x00,0x04,0xb0,0x00,0x00,0x01,0xfb,0x00,0x00,0x04,0xb1,0x00,0x00, +0x04,0xb1,0x00,0x00,0x02,0x3f,0x00,0x00,0x04,0xb6,0x00,0x00,0x04,0xb6,0x00,0x00,0x01,0xfc,0x00,0x00,0x04,0xb7,0x00,0x00,0x04,0xb7,0x00,0x00,0x02,0x40,0x00,0x00,0x04,0xba,0x00,0x00,0x04,0xba,0x00,0x00,0x01,0xfd,0x00,0x00,0x04,0xbb,0x00,0x00,0x04,0xbb,0x00,0x00,0x02,0x41,0x00,0x00,0x04,0xd8,0x00,0x00,0x04,0xd8,0x00,0x00, +0x01,0xfe,0x00,0x00,0x04,0xd9,0x00,0x00,0x04,0xd9,0x00,0x00,0x02,0x42,0x00,0x00,0x04,0xdc,0x00,0x00,0x04,0xdc,0x00,0x00,0x01,0xff,0x00,0x00,0x04,0xdd,0x00,0x00,0x04,0xdd,0x00,0x00,0x02,0x43,0x00,0x00,0x04,0xde,0x00,0x00,0x04,0xde,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0xdf,0x00,0x00,0x04,0xdf,0x00,0x00,0x02,0x44,0x00,0x00, +0x04,0xe4,0x00,0x00,0x04,0xe4,0x00,0x00,0x02,0x01,0x00,0x00,0x04,0xe5,0x00,0x00,0x04,0xe5,0x00,0x00,0x02,0x45,0x00,0x00,0x04,0xe6,0x00,0x00,0x04,0xe6,0x00,0x00,0x02,0x02,0x00,0x00,0x04,0xe7,0x00,0x00,0x04,0xe7,0x00,0x00,0x02,0x46,0x00,0x00,0x04,0xe8,0x00,0x00,0x04,0xe8,0x00,0x00,0x02,0x03,0x00,0x00,0x04,0xe9,0x00,0x00, +0x04,0xe9,0x00,0x00,0x02,0x47,0x00,0x00,0x04,0xf4,0x00,0x00,0x04,0xf4,0x00,0x00,0x02,0x04,0x00,0x00,0x04,0xf5,0x00,0x00,0x04,0xf5,0x00,0x00,0x02,0x48,0x00,0x00,0x0a,0xea,0x00,0x00,0x0a,0xea,0x00,0x00,0x03,0x28,0x00,0x00,0x1e,0x80,0x00,0x00,0x1e,0x80,0x00,0x00,0x00,0xa6,0x00,0x00,0x1e,0x81,0x00,0x00,0x1e,0x81,0x00,0x00, +0x01,0x6e,0x00,0x00,0x1e,0x82,0x00,0x00,0x1e,0x82,0x00,0x00,0x00,0xa3,0x00,0x00,0x1e,0x83,0x00,0x00,0x1e,0x83,0x00,0x00,0x01,0x6b,0x00,0x00,0x1e,0x84,0x00,0x00,0x1e,0x84,0x00,0x00,0x00,0xa5,0x00,0x00,0x1e,0x85,0x00,0x00,0x1e,0x85,0x00,0x00,0x01,0x6d,0x00,0x00,0x1e,0x9e,0x00,0x00,0x1e,0x9e,0x00,0x00,0x00,0x87,0x00,0x00, +0x1e,0xa0,0x00,0x00,0x1e,0xa0,0x00,0x00,0x00,0x11,0x00,0x00,0x1e,0xa1,0x00,0x00,0x1e,0xa1,0x00,0x00,0x00,0xcd,0x00,0x00,0x1e,0xa2,0x00,0x00,0x1e,0xa2,0x00,0x00,0x00,0x13,0x00,0x00,0x1e,0xa3,0x00,0x00,0x1e,0xa3,0x00,0x00,0x00,0xcf,0x00,0x00,0x1e,0xa4,0x00,0x00,0x1e,0xa4,0x00,0x00,0x00,0x0b,0x00,0x00,0x1e,0xa5,0x00,0x00, +0x1e,0xa5,0x00,0x00,0x00,0xc7,0x00,0x00,0x1e,0xa6,0x00,0x00,0x1e,0xa6,0x00,0x00,0x00,0x0d,0x00,0x00,0x1e,0xa7,0x00,0x00,0x1e,0xa7,0x00,0x00,0x00,0xc9,0x00,0x00,0x1e,0xa8,0x00,0x00,0x1e,0xa8,0x00,0x00,0x00,0x0e,0x00,0x00,0x1e,0xa9,0x00,0x00,0x1e,0xa9,0x00,0x00,0x00,0xca,0x00,0x00,0x1e,0xaa,0x00,0x00,0x1e,0xaa,0x00,0x00, +0x00,0x0f,0x00,0x00,0x1e,0xab,0x00,0x00,0x1e,0xab,0x00,0x00,0x00,0xcb,0x00,0x00,0x1e,0xac,0x00,0x00,0x1e,0xac,0x00,0x00,0x00,0x0c,0x00,0x00,0x1e,0xad,0x00,0x00,0x1e,0xad,0x00,0x00,0x00,0xc8,0x00,0x00,0x1e,0xae,0x00,0x00,0x1e,0xae,0x00,0x00,0x00,0x04,0x00,0x00,0x1e,0xaf,0x00,0x00,0x1e,0xaf,0x00,0x00,0x00,0xc0,0x00,0x00, +0x1e,0xb0,0x00,0x00,0x1e,0xb0,0x00,0x00,0x00,0x06,0x00,0x00,0x1e,0xb1,0x00,0x00,0x1e,0xb1,0x00,0x00,0x00,0xc2,0x00,0x00,0x1e,0xb2,0x00,0x00,0x1e,0xb2,0x00,0x00,0x00,0x07,0x00,0x00,0x1e,0xb3,0x00,0x00,0x1e,0xb3,0x00,0x00,0x00,0xc3,0x00,0x00,0x1e,0xb4,0x00,0x00,0x1e,0xb4,0x00,0x00,0x00,0x08,0x00,0x00,0x1e,0xb5,0x00,0x00, +0x1e,0xb5,0x00,0x00,0x00,0xc4,0x00,0x00,0x1e,0xb6,0x00,0x00,0x1e,0xb6,0x00,0x00,0x00,0x05,0x00,0x00,0x1e,0xb7,0x00,0x00,0x1e,0xb7,0x00,0x00,0x00,0xc1,0x00,0x00,0x1e,0xb8,0x00,0x00,0x1e,0xb8,0x00,0x00,0x00,0x31,0x00,0x00,0x1e,0xb9,0x00,0x00,0x1e,0xb9,0x00,0x00,0x00,0xed,0x00,0x00,0x1e,0xba,0x00,0x00,0x1e,0xba,0x00,0x00, +0x00,0x33,0x00,0x00,0x1e,0xbb,0x00,0x00,0x1e,0xbb,0x00,0x00,0x00,0xef,0x00,0x00,0x1e,0xbc,0x00,0x00,0x1e,0xbc,0x00,0x00,0x00,0x37,0x00,0x00,0x1e,0xbd,0x00,0x00,0x1e,0xbd,0x00,0x00,0x00,0xf2,0x00,0x00,0x1e,0xbe,0x00,0x00,0x1e,0xbe,0x00,0x00,0x00,0x2a,0x00,0x00,0x1e,0xbf,0x00,0x00,0x1e,0xbf,0x00,0x00,0x00,0xe6,0x00,0x00, +0x1e,0xc0,0x00,0x00,0x1e,0xc0,0x00,0x00,0x00,0x2c,0x00,0x00,0x1e,0xc1,0x00,0x00,0x1e,0xc1,0x00,0x00,0x00,0xe8,0x00,0x00,0x1e,0xc2,0x00,0x00,0x1e,0xc2,0x00,0x00,0x00,0x2d,0x00,0x00,0x1e,0xc3,0x00,0x00,0x1e,0xc3,0x00,0x00,0x00,0xe9,0x00,0x00,0x1e,0xc4,0x00,0x00,0x1e,0xc4,0x00,0x00,0x00,0x2e,0x00,0x00,0x1e,0xc5,0x00,0x00, +0x1e,0xc5,0x00,0x00,0x00,0xea,0x00,0x00,0x1e,0xc6,0x00,0x00,0x1e,0xc6,0x00,0x00,0x00,0x2b,0x00,0x00,0x1e,0xc7,0x00,0x00,0x1e,0xc7,0x00,0x00,0x00,0xe7,0x00,0x00,0x1e,0xc8,0x00,0x00,0x1e,0xc8,0x00,0x00,0x00,0x4b,0x00,0x00,0x1e,0xc9,0x00,0x00,0x1e,0xc9,0x00,0x00,0x01,0x09,0x00,0x00,0x1e,0xca,0x00,0x00,0x1e,0xca,0x00,0x00, +0x00,0x49,0x00,0x00,0x1e,0xcb,0x00,0x00,0x1e,0xcb,0x00,0x00,0x01,0x07,0x00,0x00,0x1e,0xcc,0x00,0x00,0x1e,0xcc,0x00,0x00,0x00,0x6a,0x00,0x00,0x1e,0xcd,0x00,0x00,0x1e,0xcd,0x00,0x00,0x01,0x2d,0x00,0x00,0x1e,0xce,0x00,0x00,0x1e,0xce,0x00,0x00,0x00,0x6c,0x00,0x00,0x1e,0xcf,0x00,0x00,0x1e,0xcf,0x00,0x00,0x01,0x2f,0x00,0x00, +0x1e,0xd0,0x00,0x00,0x1e,0xd0,0x00,0x00,0x00,0x64,0x00,0x00,0x1e,0xd1,0x00,0x00,0x1e,0xd1,0x00,0x00,0x01,0x27,0x00,0x00,0x1e,0xd2,0x00,0x00,0x1e,0xd2,0x00,0x00,0x00,0x66,0x00,0x00,0x1e,0xd3,0x00,0x00,0x1e,0xd3,0x00,0x00,0x01,0x29,0x00,0x00,0x1e,0xd4,0x00,0x00,0x1e,0xd4,0x00,0x00,0x00,0x67,0x00,0x00,0x1e,0xd5,0x00,0x00, +0x1e,0xd5,0x00,0x00,0x01,0x2a,0x00,0x00,0x1e,0xd6,0x00,0x00,0x1e,0xd6,0x00,0x00,0x00,0x68,0x00,0x00,0x1e,0xd7,0x00,0x00,0x1e,0xd7,0x00,0x00,0x01,0x2b,0x00,0x00,0x1e,0xd8,0x00,0x00,0x1e,0xd8,0x00,0x00,0x00,0x65,0x00,0x00,0x1e,0xd9,0x00,0x00,0x1e,0xd9,0x00,0x00,0x01,0x28,0x00,0x00,0x1e,0xda,0x00,0x00,0x1e,0xda,0x00,0x00, +0x00,0x6e,0x00,0x00,0x1e,0xdb,0x00,0x00,0x1e,0xdb,0x00,0x00,0x01,0x31,0x00,0x00,0x1e,0xdc,0x00,0x00,0x1e,0xdc,0x00,0x00,0x00,0x70,0x00,0x00,0x1e,0xdd,0x00,0x00,0x1e,0xdd,0x00,0x00,0x01,0x33,0x00,0x00,0x1e,0xde,0x00,0x00,0x1e,0xde,0x00,0x00,0x00,0x71,0x00,0x00,0x1e,0xdf,0x00,0x00,0x1e,0xdf,0x00,0x00,0x01,0x34,0x00,0x00, +0x1e,0xe0,0x00,0x00,0x1e,0xe0,0x00,0x00,0x00,0x72,0x00,0x00,0x1e,0xe1,0x00,0x00,0x1e,0xe1,0x00,0x00,0x01,0x35,0x00,0x00,0x1e,0xe2,0x00,0x00,0x1e,0xe2,0x00,0x00,0x00,0x6f,0x00,0x00,0x1e,0xe3,0x00,0x00,0x1e,0xe3,0x00,0x00,0x01,0x32,0x00,0x00,0x1e,0xe4,0x00,0x00,0x1e,0xe4,0x00,0x00,0x00,0x93,0x00,0x00,0x1e,0xe5,0x00,0x00, +0x1e,0xe5,0x00,0x00,0x01,0x5b,0x00,0x00,0x1e,0xe6,0x00,0x00,0x1e,0xe6,0x00,0x00,0x00,0x95,0x00,0x00,0x1e,0xe7,0x00,0x00,0x1e,0xe7,0x00,0x00,0x01,0x5d,0x00,0x00,0x1e,0xe8,0x00,0x00,0x1e,0xe8,0x00,0x00,0x00,0x97,0x00,0x00,0x1e,0xe9,0x00,0x00,0x1e,0xe9,0x00,0x00,0x01,0x5f,0x00,0x00,0x1e,0xea,0x00,0x00,0x1e,0xea,0x00,0x00, +0x00,0x99,0x00,0x00,0x1e,0xeb,0x00,0x00,0x1e,0xeb,0x00,0x00,0x01,0x61,0x00,0x00,0x1e,0xec,0x00,0x00,0x1e,0xec,0x00,0x00,0x00,0x9a,0x00,0x00,0x1e,0xed,0x00,0x00,0x1e,0xed,0x00,0x00,0x01,0x62,0x00,0x00,0x1e,0xee,0x00,0x00,0x1e,0xee,0x00,0x00,0x00,0x9b,0x00,0x00,0x1e,0xef,0x00,0x00,0x1e,0xef,0x00,0x00,0x01,0x63,0x00,0x00, +0x1e,0xf0,0x00,0x00,0x1e,0xf0,0x00,0x00,0x00,0x98,0x00,0x00,0x1e,0xf1,0x00,0x00,0x1e,0xf1,0x00,0x00,0x01,0x60,0x00,0x00,0x1e,0xf2,0x00,0x00,0x1e,0xf2,0x00,0x00,0x00,0xad,0x00,0x00,0x1e,0xf3,0x00,0x00,0x1e,0xf3,0x00,0x00,0x01,0x75,0x00,0x00,0x1e,0xf4,0x00,0x00,0x1e,0xf4,0x00,0x00,0x00,0xac,0x00,0x00,0x1e,0xf5,0x00,0x00, +0x1e,0xf5,0x00,0x00,0x01,0x74,0x00,0x00,0x1e,0xf6,0x00,0x00,0x1e,0xf6,0x00,0x00,0x00,0xae,0x00,0x00,0x1e,0xf7,0x00,0x00,0x1e,0xf7,0x00,0x00,0x01,0x76,0x00,0x00,0x1e,0xf8,0x00,0x00,0x1e,0xf8,0x00,0x00,0x00,0xb0,0x00,0x00,0x1e,0xf9,0x00,0x00,0x1e,0xf9,0x00,0x00,0x01,0x78,0x00,0x00,0x20,0x01,0x00,0x00,0x20,0x01,0x00,0x00, +0x03,0xbc,0x00,0x00,0x20,0x0b,0x00,0x00,0x20,0x0b,0x00,0x00,0x03,0xbd,0x00,0x00,0x20,0x10,0x00,0x00,0x20,0x10,0x00,0x00,0x03,0x5b,0x00,0x00,0x20,0x13,0x00,0x00,0x20,0x14,0x00,0x00,0x03,0x59,0x00,0x00,0x20,0x16,0x00,0x00,0x20,0x16,0x00,0x00,0x03,0x37,0x00,0x00,0x20,0x18,0x00,0x00,0x20,0x19,0x00,0x00,0x03,0x61,0x00,0x00, +0x20,0x1a,0x00,0x00,0x20,0x1a,0x00,0x00,0x03,0x5d,0x00,0x00,0x20,0x1b,0x00,0x00,0x20,0x1b,0x00,0x00,0x03,0x63,0x00,0x00,0x20,0x1c,0x00,0x00,0x20,0x1d,0x00,0x00,0x03,0x5f,0x00,0x00,0x20,0x1e,0x00,0x00,0x20,0x1e,0x00,0x00,0x03,0x5e,0x00,0x00,0x20,0x1f,0x00,0x00,0x20,0x1f,0x00,0x00,0x03,0x64,0x00,0x00,0x20,0x20,0x00,0x00, +0x20,0x20,0x00,0x00,0x05,0xc0,0x00,0x00,0x20,0x21,0x00,0x00,0x20,0x21,0x00,0x00,0x05,0xc2,0x00,0x00,0x20,0x22,0x00,0x00,0x20,0x22,0x00,0x00,0x03,0x33,0x00,0x00,0x20,0x24,0x00,0x00,0x20,0x24,0x00,0x00,0x03,0x3b,0x00,0x00,0x20,0x26,0x00,0x00,0x20,0x26,0x00,0x00,0x03,0x2d,0x00,0x00,0x20,0x30,0x00,0x00,0x20,0x30,0x00,0x00, +0x04,0x39,0x00,0x00,0x20,0x32,0x00,0x00,0x20,0x33,0x00,0x00,0x05,0xbc,0x00,0x00,0x20,0x34,0x00,0x00,0x20,0x34,0x00,0x00,0x03,0x69,0x00,0x00,0x20,0x39,0x00,0x00,0x20,0x3a,0x00,0x00,0x03,0x67,0x00,0x00,0x20,0x3c,0x00,0x00,0x20,0x3d,0x00,0x00,0x03,0x38,0x00,0x00,0x20,0x3e,0x00,0x00,0x20,0x3e,0x00,0x00,0x03,0x3c,0x00,0x00, +0x20,0x3f,0x00,0x00,0x20,0x3f,0x00,0x00,0x03,0x3f,0x00,0x00,0x20,0x44,0x00,0x00,0x20,0x44,0x00,0x00,0x03,0x20,0x00,0x00,0x20,0x45,0x00,0x00,0x20,0x46,0x00,0x00,0x03,0x35,0x00,0x00,0x20,0x70,0x00,0x00,0x20,0x70,0x00,0x00,0x03,0x02,0x00,0x00,0x20,0x74,0x00,0x00,0x20,0x79,0x00,0x00,0x03,0x06,0x00,0x00,0x20,0x7a,0x00,0x00, +0x20,0x7a,0x00,0x00,0x04,0x3b,0x00,0x00,0x20,0x7c,0x00,0x00,0x20,0x7c,0x00,0x00,0x03,0xe6,0x00,0x00,0x20,0x80,0x00,0x00,0x20,0x89,0x00,0x00,0x02,0xe4,0x00,0x00,0x20,0xab,0x00,0x00,0x20,0xac,0x00,0x00,0x03,0xc6,0x00,0x00,0x20,0xae,0x00,0x00,0x20,0xae,0x00,0x00,0x03,0xcc,0x00,0x00,0x20,0xb4,0x00,0x00,0x20,0xb4,0x00,0x00, +0x03,0xc9,0x00,0x00,0x20,0xbd,0x00,0x00,0x20,0xbd,0x00,0x00,0x03,0xca,0x00,0x00,0x20,0xbf,0x00,0x00,0x20,0xbf,0x00,0x00,0x03,0xc2,0x00,0x00,0x21,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0x02,0xa2,0x00,0x00,0x21,0x0d,0x00,0x00,0x21,0x0d,0x00,0x00,0x02,0xa7,0x00,0x00,0x21,0x13,0x00,0x00,0x21,0x13,0x00,0x00,0x05,0xc1,0x00,0x00, +0x21,0x15,0x00,0x00,0x21,0x15,0x00,0x00,0x02,0xad,0x00,0x00,0x21,0x16,0x00,0x00,0x21,0x16,0x00,0x00,0x05,0xc3,0x00,0x00,0x21,0x19,0x00,0x00,0x21,0x1a,0x00,0x00,0x02,0xaf,0x00,0x00,0x21,0x1d,0x00,0x00,0x21,0x1d,0x00,0x00,0x02,0xb1,0x00,0x00,0x21,0x22,0x00,0x00,0x21,0x22,0x00,0x00,0x05,0xba,0x00,0x00,0x21,0x24,0x00,0x00, +0x21,0x24,0x00,0x00,0x02,0xb9,0x00,0x00,0x21,0x2e,0x00,0x00,0x21,0x2e,0x00,0x00,0x05,0xc4,0x00,0x00,0x21,0x40,0x00,0x00,0x21,0x40,0x00,0x00,0x04,0x5e,0x00,0x00,0x21,0x8a,0x00,0x00,0x21,0x8a,0x00,0x00,0x05,0xff,0x00,0x00,0x21,0x8b,0x00,0x00,0x21,0x8b,0x00,0x00,0x05,0xfe,0x00,0x00,0x21,0x90,0x00,0x00,0x21,0x90,0x00,0x00, +0x04,0x77,0x00,0x00,0x21,0x91,0x00,0x00,0x21,0x91,0x00,0x00,0x04,0x71,0x00,0x00,0x21,0x92,0x00,0x00,0x21,0x92,0x00,0x00,0x04,0x73,0x00,0x00,0x21,0x93,0x00,0x00,0x21,0x93,0x00,0x00,0x04,0x75,0x00,0x00,0x21,0x94,0x00,0x00,0x21,0x95,0x00,0x00,0x04,0x79,0x00,0x00,0x21,0x96,0x00,0x00,0x21,0x96,0x00,0x00,0x04,0x78,0x00,0x00, +0x21,0x97,0x00,0x00,0x21,0x97,0x00,0x00,0x04,0x72,0x00,0x00,0x21,0x98,0x00,0x00,0x21,0x98,0x00,0x00,0x04,0x74,0x00,0x00,0x21,0x99,0x00,0x00,0x21,0x99,0x00,0x00,0x04,0x76,0x00,0x00,0x21,0x9d,0x00,0x00,0x21,0x9d,0x00,0x00,0x04,0x7b,0x00,0x00,0x21,0x9e,0x00,0x00,0x21,0x9e,0x00,0x00,0x04,0x7d,0x00,0x00,0x21,0xa0,0x00,0x00, +0x21,0xa0,0x00,0x00,0x04,0x7e,0x00,0x00,0x21,0xa2,0x00,0x00,0x21,0xa3,0x00,0x00,0x04,0x7f,0x00,0x00,0x21,0xa5,0x00,0x00,0x21,0xa7,0x00,0x00,0x04,0x81,0x00,0x00,0x21,0xa9,0x00,0x00,0x21,0xaa,0x00,0x00,0x04,0x85,0x00,0x00,0x21,0xad,0x00,0x00,0x21,0xad,0x00,0x00,0x04,0x7c,0x00,0x00,0x21,0xbe,0x00,0x00,0x21,0xbe,0x00,0x00, +0x04,0x87,0x00,0x00,0x21,0xc9,0x00,0x00,0x21,0xc9,0x00,0x00,0x04,0x88,0x00,0x00,0x21,0xd0,0x00,0x00,0x21,0xd0,0x00,0x00,0x04,0x8c,0x00,0x00,0x21,0xd1,0x00,0x00,0x21,0xd3,0x00,0x00,0x04,0x89,0x00,0x00,0x21,0xd4,0x00,0x00,0x21,0xd4,0x00,0x00,0x04,0x8d,0x00,0x00,0x21,0xdb,0x00,0x00,0x21,0xdb,0x00,0x00,0x04,0x8e,0x00,0x00, +0x21,0xde,0x00,0x00,0x21,0xde,0x00,0x00,0x05,0xe8,0x00,0x00,0x21,0xdf,0x00,0x00,0x21,0xdf,0x00,0x00,0x05,0xe7,0x00,0x00,0x21,0xe5,0x00,0x00,0x21,0xe5,0x00,0x00,0x04,0x84,0x00,0x00,0x21,0xe7,0x00,0x00,0x21,0xe8,0x00,0x00,0x04,0x8f,0x00,0x00,0x21,0xea,0x00,0x00,0x21,0xea,0x00,0x00,0x05,0xe2,0x00,0x00,0x22,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x04,0x65,0x00,0x00,0x22,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x03,0xd6,0x00,0x00,0x22,0x02,0x00,0x00,0x22,0x02,0x00,0x00,0x04,0x2f,0x00,0x00,0x22,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0x03,0xea,0x00,0x00,0x22,0x04,0x00,0x00,0x22,0x04,0x00,0x00,0x04,0x62,0x00,0x00,0x22,0x05,0x00,0x00,0x22,0x05,0x00,0x00, +0x04,0x25,0x00,0x00,0x22,0x06,0x00,0x00,0x22,0x06,0x00,0x00,0x04,0x2b,0x00,0x00,0x22,0x07,0x00,0x00,0x22,0x07,0x00,0x00,0x03,0xeb,0x00,0x00,0x22,0x08,0x00,0x00,0x22,0x08,0x00,0x00,0x03,0xe2,0x00,0x00,0x22,0x09,0x00,0x00,0x22,0x09,0x00,0x00,0x04,0x0b,0x00,0x00,0x22,0x0a,0x00,0x00,0x22,0x0a,0x00,0x00,0x03,0xe3,0x00,0x00, +0x22,0x0b,0x00,0x00,0x22,0x0b,0x00,0x00,0x04,0x5d,0x00,0x00,0x22,0x0c,0x00,0x00,0x22,0x0c,0x00,0x00,0x04,0x0a,0x00,0x00,0x22,0x0e,0x00,0x00,0x22,0x0e,0x00,0x00,0x03,0xe5,0x00,0x00,0x22,0x0f,0x00,0x00,0x22,0x0f,0x00,0x00,0x04,0x2c,0x00,0x00,0x22,0x10,0x00,0x00,0x22,0x10,0x00,0x00,0x03,0xd8,0x00,0x00,0x22,0x11,0x00,0x00, +0x22,0x11,0x00,0x00,0x04,0x2d,0x00,0x00,0x22,0x12,0x00,0x00,0x22,0x12,0x00,0x00,0x04,0x16,0x00,0x00,0x22,0x13,0x00,0x00,0x22,0x13,0x00,0x00,0x03,0xf9,0x00,0x00,0x22,0x15,0x00,0x00,0x22,0x15,0x00,0x00,0x03,0xdd,0x00,0x00,0x22,0x18,0x00,0x00,0x22,0x18,0x00,0x00,0x04,0x4d,0x00,0x00,0x22,0x19,0x00,0x00,0x22,0x19,0x00,0x00, +0x03,0xd4,0x00,0x00,0x22,0x1a,0x00,0x00,0x22,0x1a,0x00,0x00,0x04,0x2e,0x00,0x00,0x22,0x1e,0x00,0x00,0x22,0x1e,0x00,0x00,0x04,0x24,0x00,0x00,0x22,0x23,0x00,0x00,0x22,0x23,0x00,0x00,0x03,0xdc,0x00,0x00,0x22,0x24,0x00,0x00,0x22,0x24,0x00,0x00,0x03,0xde,0x00,0x00,0x22,0x25,0x00,0x00,0x22,0x25,0x00,0x00,0x04,0x31,0x00,0x00, +0x22,0x27,0x00,0x00,0x22,0x2b,0x00,0x00,0x04,0x26,0x00,0x00,0x22,0x34,0x00,0x00,0x22,0x34,0x00,0x00,0x04,0x63,0x00,0x00,0x22,0x35,0x00,0x00,0x22,0x35,0x00,0x00,0x03,0xd1,0x00,0x00,0x22,0x36,0x00,0x00,0x22,0x36,0x00,0x00,0x04,0x40,0x00,0x00,0x22,0x37,0x00,0x00,0x22,0x37,0x00,0x00,0x04,0x3e,0x00,0x00,0x22,0x38,0x00,0x00, +0x22,0x38,0x00,0x00,0x03,0xdf,0x00,0x00,0x22,0x39,0x00,0x00,0x22,0x39,0x00,0x00,0x03,0xe9,0x00,0x00,0x22,0x3c,0x00,0x00,0x22,0x3c,0x00,0x00,0x04,0x4e,0x00,0x00,0x22,0x3e,0x00,0x00,0x22,0x3e,0x00,0x00,0x03,0xed,0x00,0x00,0x22,0x43,0x00,0x00,0x22,0x43,0x00,0x00,0x03,0xd0,0x00,0x00,0x22,0x45,0x00,0x00,0x22,0x45,0x00,0x00, +0x03,0xd7,0x00,0x00,0x22,0x47,0x00,0x00,0x22,0x47,0x00,0x00,0x04,0x04,0x00,0x00,0x22,0x48,0x00,0x00,0x22,0x48,0x00,0x00,0x04,0x20,0x00,0x00,0x22,0x49,0x00,0x00,0x22,0x49,0x00,0x00,0x04,0x09,0x00,0x00,0x22,0x4b,0x00,0x00,0x22,0x4b,0x00,0x00,0x04,0x64,0x00,0x00,0x22,0x4d,0x00,0x00,0x22,0x4d,0x00,0x00,0x03,0xe8,0x00,0x00, +0x22,0x54,0x00,0x00,0x22,0x54,0x00,0x00,0x03,0xd5,0x00,0x00,0x22,0x57,0x00,0x00,0x22,0x57,0x00,0x00,0x04,0x4c,0x00,0x00,0x22,0x5f,0x00,0x00,0x22,0x5f,0x00,0x00,0x04,0x3f,0x00,0x00,0x22,0x60,0x00,0x00,0x22,0x60,0x00,0x00,0x04,0x1a,0x00,0x00,0x22,0x61,0x00,0x00,0x22,0x61,0x00,0x00,0x03,0xe7,0x00,0x00,0x22,0x62,0x00,0x00, +0x22,0x62,0x00,0x00,0x04,0x0f,0x00,0x00,0x22,0x63,0x00,0x00,0x22,0x63,0x00,0x00,0x04,0x5a,0x00,0x00,0x22,0x64,0x00,0x00,0x22,0x64,0x00,0x00,0x04,0x1e,0x00,0x00,0x22,0x65,0x00,0x00,0x22,0x65,0x00,0x00,0x04,0x1d,0x00,0x00,0x22,0x6a,0x00,0x00,0x22,0x6a,0x00,0x00,0x03,0xfb,0x00,0x00,0x22,0x6b,0x00,0x00,0x22,0x6b,0x00,0x00, +0x03,0xfa,0x00,0x00,0x22,0x6c,0x00,0x00,0x22,0x6c,0x00,0x00,0x03,0xd2,0x00,0x00,0x22,0x6d,0x00,0x00,0x22,0x6d,0x00,0x00,0x04,0x0c,0x00,0x00,0x22,0x6e,0x00,0x00,0x22,0x6e,0x00,0x00,0x04,0x10,0x00,0x00,0x22,0x6f,0x00,0x00,0x22,0x6f,0x00,0x00,0x04,0x0d,0x00,0x00,0x22,0x70,0x00,0x00,0x22,0x70,0x00,0x00,0x04,0x11,0x00,0x00, +0x22,0x71,0x00,0x00,0x22,0x71,0x00,0x00,0x04,0x0e,0x00,0x00,0x22,0x72,0x00,0x00,0x22,0x72,0x00,0x00,0x03,0xf7,0x00,0x00,0x22,0x73,0x00,0x00,0x22,0x73,0x00,0x00,0x03,0xec,0x00,0x00,0x22,0x7a,0x00,0x00,0x22,0x7a,0x00,0x00,0x04,0x3c,0x00,0x00,0x22,0x7b,0x00,0x00,0x22,0x7b,0x00,0x00,0x04,0x5c,0x00,0x00,0x22,0x7c,0x00,0x00, +0x22,0x7c,0x00,0x00,0x04,0x3d,0x00,0x00,0x22,0x82,0x00,0x00,0x22,0x82,0x00,0x00,0x04,0x5b,0x00,0x00,0x22,0x83,0x00,0x00,0x22,0x83,0x00,0x00,0x04,0x5f,0x00,0x00,0x22,0x84,0x00,0x00,0x22,0x85,0x00,0x00,0x04,0x13,0x00,0x00,0x22,0x86,0x00,0x00,0x22,0x87,0x00,0x00,0x04,0x41,0x00,0x00,0x22,0x88,0x00,0x00,0x22,0x89,0x00,0x00, +0x04,0x05,0x00,0x00,0x22,0x8e,0x00,0x00,0x22,0x8e,0x00,0x00,0x03,0xfd,0x00,0x00,0x22,0x8f,0x00,0x00,0x22,0x8f,0x00,0x00,0x04,0x55,0x00,0x00,0x22,0x90,0x00,0x00,0x22,0x90,0x00,0x00,0x04,0x57,0x00,0x00,0x22,0x91,0x00,0x00,0x22,0x91,0x00,0x00,0x04,0x56,0x00,0x00,0x22,0x92,0x00,0x00,0x22,0x92,0x00,0x00,0x04,0x58,0x00,0x00, +0x22,0x93,0x00,0x00,0x22,0x94,0x00,0x00,0x04,0x4f,0x00,0x00,0x22,0x95,0x00,0x00,0x22,0x95,0x00,0x00,0x04,0x70,0x00,0x00,0x22,0x96,0x00,0x00,0x22,0x97,0x00,0x00,0x04,0x6d,0x00,0x00,0x22,0x98,0x00,0x00,0x22,0x98,0x00,0x00,0x04,0x6c,0x00,0x00,0x22,0x99,0x00,0x00,0x22,0x99,0x00,0x00,0x04,0x6f,0x00,0x00,0x22,0x9b,0x00,0x00, +0x22,0x9b,0x00,0x00,0x04,0x69,0x00,0x00,0x22,0x9c,0x00,0x00,0x22,0x9c,0x00,0x00,0x04,0x6b,0x00,0x00,0x22,0x9d,0x00,0x00,0x22,0x9d,0x00,0x00,0x04,0x6a,0x00,0x00,0x22,0x9e,0x00,0x00,0x22,0x9e,0x00,0x00,0x04,0x53,0x00,0x00,0x22,0x9f,0x00,0x00,0x22,0x9f,0x00,0x00,0x04,0x52,0x00,0x00,0x22,0xa0,0x00,0x00,0x22,0xa0,0x00,0x00, +0x04,0x54,0x00,0x00,0x22,0xa1,0x00,0x00,0x22,0xa1,0x00,0x00,0x04,0x51,0x00,0x00,0x22,0xa2,0x00,0x00,0x22,0xa2,0x00,0x00,0x04,0x4b,0x00,0x00,0x22,0xa3,0x00,0x00,0x22,0xa3,0x00,0x00,0x04,0x61,0x00,0x00,0x22,0xa4,0x00,0x00,0x22,0xa4,0x00,0x00,0x04,0x60,0x00,0x00,0x22,0xa5,0x00,0x00,0x22,0xa5,0x00,0x00,0x04,0x67,0x00,0x00, +0x22,0xb4,0x00,0x00,0x22,0xb4,0x00,0x00,0x04,0x08,0x00,0x00,0x22,0xb8,0x00,0x00,0x22,0xb8,0x00,0x00,0x03,0xfc,0x00,0x00,0x22,0xbb,0x00,0x00,0x22,0xbb,0x00,0x00,0x04,0x68,0x00,0x00,0x22,0xbc,0x00,0x00,0x22,0xbc,0x00,0x00,0x04,0x01,0x00,0x00,0x22,0xbd,0x00,0x00,0x22,0xbd,0x00,0x00,0x04,0x07,0x00,0x00,0x22,0xc2,0x00,0x00, +0x22,0xc3,0x00,0x00,0x04,0x02,0x00,0x00,0x22,0xc4,0x00,0x00,0x22,0xc4,0x00,0x00,0x03,0xdb,0x00,0x00,0x22,0xc6,0x00,0x00,0x22,0xc6,0x00,0x00,0x04,0x59,0x00,0x00,0x22,0xc8,0x00,0x00,0x22,0xc8,0x00,0x00,0x03,0xd3,0x00,0x00,0x22,0xc9,0x00,0x00,0x22,0xc9,0x00,0x00,0x03,0xf3,0x00,0x00,0x22,0xca,0x00,0x00,0x22,0xca,0x00,0x00, +0x04,0x47,0x00,0x00,0x22,0xce,0x00,0x00,0x22,0xce,0x00,0x00,0x03,0xda,0x00,0x00,0x22,0xd0,0x00,0x00,0x22,0xd0,0x00,0x00,0x03,0xe0,0x00,0x00,0x22,0xe2,0x00,0x00,0x22,0xe2,0x00,0x00,0x04,0x12,0x00,0x00,0x22,0xee,0x00,0x00,0x22,0xee,0x00,0x00,0x03,0xe4,0x00,0x00,0x22,0xef,0x00,0x00,0x22,0xef,0x00,0x00,0x03,0xf8,0x00,0x00, +0x22,0xf0,0x00,0x00,0x22,0xf0,0x00,0x00,0x04,0x66,0x00,0x00,0x22,0xf1,0x00,0x00,0x22,0xf1,0x00,0x00,0x03,0xe1,0x00,0x00,0x23,0x02,0x00,0x00,0x23,0x02,0x00,0x00,0x05,0xe1,0x00,0x00,0x23,0x03,0x00,0x00,0x23,0x03,0x00,0x00,0x05,0xca,0x00,0x00,0x23,0x04,0x00,0x00,0x23,0x04,0x00,0x00,0x04,0x91,0x00,0x00,0x23,0x05,0x00,0x00, +0x23,0x05,0x00,0x00,0x05,0xf4,0x00,0x00,0x23,0x08,0x00,0x00,0x23,0x08,0x00,0x00,0x03,0x4f,0x00,0x00,0x23,0x09,0x00,0x00,0x23,0x09,0x00,0x00,0x03,0x52,0x00,0x00,0x23,0x0a,0x00,0x00,0x23,0x0a,0x00,0x00,0x03,0x50,0x00,0x00,0x23,0x0b,0x00,0x00,0x23,0x0b,0x00,0x00,0x03,0x53,0x00,0x00,0x23,0x18,0x00,0x00,0x23,0x18,0x00,0x00, +0x05,0xe9,0x00,0x00,0x23,0x1c,0x00,0x00,0x23,0x1c,0x00,0x00,0x05,0xce,0x00,0x00,0x23,0x1d,0x00,0x00,0x23,0x1d,0x00,0x00,0x05,0xcd,0x00,0x00,0x23,0x1e,0x00,0x00,0x23,0x1f,0x00,0x00,0x05,0xcb,0x00,0x00,0x23,0x24,0x00,0x00,0x23,0x24,0x00,0x00,0x04,0x92,0x00,0x00,0x23,0x25,0x00,0x00,0x23,0x25,0x00,0x00,0x05,0xe6,0x00,0x00, +0x23,0x26,0x00,0x00,0x23,0x26,0x00,0x00,0x05,0xe4,0x00,0x00,0x23,0x28,0x00,0x00,0x23,0x28,0x00,0x00,0x05,0xe5,0x00,0x00,0x23,0x2b,0x00,0x00,0x23,0x2b,0x00,0x00,0x05,0xe3,0x00,0x00,0x23,0x36,0x00,0x00,0x23,0x36,0x00,0x00,0x05,0x65,0x00,0x00,0x23,0x37,0x00,0x00,0x23,0x37,0x00,0x00,0x05,0xa0,0x00,0x00,0x23,0x38,0x00,0x00, +0x23,0x38,0x00,0x00,0x05,0x8f,0x00,0x00,0x23,0x39,0x00,0x00,0x23,0x39,0x00,0x00,0x05,0x8c,0x00,0x00,0x23,0x3a,0x00,0x00,0x23,0x3a,0x00,0x00,0x05,0x8b,0x00,0x00,0x23,0x3b,0x00,0x00,0x23,0x3b,0x00,0x00,0x05,0x91,0x00,0x00,0x23,0x3c,0x00,0x00,0x23,0x3c,0x00,0x00,0x05,0x87,0x00,0x00,0x23,0x3d,0x00,0x00,0x23,0x3d,0x00,0x00, +0x05,0x6d,0x00,0x00,0x23,0x3e,0x00,0x00,0x23,0x3e,0x00,0x00,0x05,0x6b,0x00,0x00,0x23,0x3f,0x00,0x00,0x23,0x3f,0x00,0x00,0x05,0x9f,0x00,0x00,0x23,0x40,0x00,0x00,0x23,0x40,0x00,0x00,0x05,0x68,0x00,0x00,0x23,0x41,0x00,0x00,0x23,0x41,0x00,0x00,0x05,0x97,0x00,0x00,0x23,0x42,0x00,0x00,0x23,0x42,0x00,0x00,0x05,0x86,0x00,0x00, +0x23,0x43,0x00,0x00,0x23,0x43,0x00,0x00,0x05,0x93,0x00,0x00,0x23,0x44,0x00,0x00,0x23,0x44,0x00,0x00,0x05,0x90,0x00,0x00,0x23,0x45,0x00,0x00,0x23,0x45,0x00,0x00,0x05,0x82,0x00,0x00,0x23,0x46,0x00,0x00,0x23,0x46,0x00,0x00,0x05,0x9d,0x00,0x00,0x23,0x47,0x00,0x00,0x23,0x47,0x00,0x00,0x05,0x92,0x00,0x00,0x23,0x48,0x00,0x00, +0x23,0x48,0x00,0x00,0x05,0x96,0x00,0x00,0x23,0x49,0x00,0x00,0x23,0x49,0x00,0x00,0x05,0x69,0x00,0x00,0x23,0x4a,0x00,0x00,0x23,0x4a,0x00,0x00,0x05,0x79,0x00,0x00,0x23,0x4b,0x00,0x00,0x23,0x4b,0x00,0x00,0x05,0x72,0x00,0x00,0x23,0x4c,0x00,0x00,0x23,0x4c,0x00,0x00,0x05,0x8e,0x00,0x00,0x23,0x4d,0x00,0x00,0x23,0x4d,0x00,0x00, +0x05,0x8a,0x00,0x00,0x23,0x4e,0x00,0x00,0x23,0x4e,0x00,0x00,0x05,0x78,0x00,0x00,0x23,0x4f,0x00,0x00,0x23,0x4f,0x00,0x00,0x05,0xa9,0x00,0x00,0x23,0x50,0x00,0x00,0x23,0x50,0x00,0x00,0x05,0x98,0x00,0x00,0x23,0x51,0x00,0x00,0x23,0x51,0x00,0x00,0x05,0xa8,0x00,0x00,0x23,0x52,0x00,0x00,0x23,0x52,0x00,0x00,0x05,0x71,0x00,0x00, +0x23,0x53,0x00,0x00,0x23,0x53,0x00,0x00,0x05,0x99,0x00,0x00,0x23,0x54,0x00,0x00,0x23,0x54,0x00,0x00,0x05,0x89,0x00,0x00,0x23,0x55,0x00,0x00,0x23,0x55,0x00,0x00,0x05,0xa7,0x00,0x00,0x23,0x56,0x00,0x00,0x23,0x56,0x00,0x00,0x05,0x7a,0x00,0x00,0x23,0x57,0x00,0x00,0x23,0x57,0x00,0x00,0x05,0x8d,0x00,0x00,0x23,0x58,0x00,0x00, +0x23,0x58,0x00,0x00,0x05,0x9b,0x00,0x00,0x23,0x59,0x00,0x00,0x23,0x59,0x00,0x00,0x05,0x73,0x00,0x00,0x23,0x5a,0x00,0x00,0x23,0x5a,0x00,0x00,0x05,0x75,0x00,0x00,0x23,0x5b,0x00,0x00,0x23,0x5b,0x00,0x00,0x05,0x80,0x00,0x00,0x23,0x5c,0x00,0x00,0x23,0x5c,0x00,0x00,0x05,0x6e,0x00,0x00,0x23,0x5d,0x00,0x00,0x23,0x5d,0x00,0x00, +0x05,0xa5,0x00,0x00,0x23,0x5e,0x00,0x00,0x23,0x5e,0x00,0x00,0x05,0x9a,0x00,0x00,0x23,0x5f,0x00,0x00,0x23,0x5f,0x00,0x00,0x05,0x6c,0x00,0x00,0x23,0x60,0x00,0x00,0x23,0x60,0x00,0x00,0x05,0x88,0x00,0x00,0x23,0x61,0x00,0x00,0x23,0x61,0x00,0x00,0x05,0xa6,0x00,0x00,0x23,0x62,0x00,0x00,0x23,0x62,0x00,0x00,0x05,0x70,0x00,0x00, +0x23,0x63,0x00,0x00,0x23,0x63,0x00,0x00,0x05,0xa1,0x00,0x00,0x23,0x64,0x00,0x00,0x23,0x64,0x00,0x00,0x05,0x7f,0x00,0x00,0x23,0x65,0x00,0x00,0x23,0x65,0x00,0x00,0x05,0x6a,0x00,0x00,0x23,0x66,0x00,0x00,0x23,0x66,0x00,0x00,0x05,0x77,0x00,0x00,0x23,0x67,0x00,0x00,0x23,0x67,0x00,0x00,0x05,0x81,0x00,0x00,0x23,0x68,0x00,0x00, +0x23,0x68,0x00,0x00,0x05,0xa3,0x00,0x00,0x23,0x69,0x00,0x00,0x23,0x69,0x00,0x00,0x05,0x7c,0x00,0x00,0x23,0x6a,0x00,0x00,0x23,0x6a,0x00,0x00,0x05,0x6f,0x00,0x00,0x23,0x6b,0x00,0x00,0x23,0x6b,0x00,0x00,0x05,0x74,0x00,0x00,0x23,0x6c,0x00,0x00,0x23,0x6c,0x00,0x00,0x05,0xaa,0x00,0x00,0x23,0x6d,0x00,0x00,0x23,0x6d,0x00,0x00, +0x05,0xa2,0x00,0x00,0x23,0x6e,0x00,0x00,0x23,0x6e,0x00,0x00,0x05,0x9e,0x00,0x00,0x23,0x6f,0x00,0x00,0x23,0x70,0x00,0x00,0x05,0x94,0x00,0x00,0x23,0x71,0x00,0x00,0x23,0x71,0x00,0x00,0x05,0x76,0x00,0x00,0x23,0x72,0x00,0x00,0x23,0x72,0x00,0x00,0x05,0xa4,0x00,0x00,0x23,0x73,0x00,0x00,0x23,0x73,0x00,0x00,0x05,0x7d,0x00,0x00, +0x23,0x74,0x00,0x00,0x23,0x74,0x00,0x00,0x05,0x9c,0x00,0x00,0x23,0x75,0x00,0x00,0x23,0x75,0x00,0x00,0x05,0x83,0x00,0x00,0x23,0x76,0x00,0x00,0x23,0x76,0x00,0x00,0x05,0x67,0x00,0x00,0x23,0x77,0x00,0x00,0x23,0x77,0x00,0x00,0x05,0x7b,0x00,0x00,0x23,0x78,0x00,0x00,0x23,0x78,0x00,0x00,0x05,0x7e,0x00,0x00,0x23,0x79,0x00,0x00, +0x23,0x79,0x00,0x00,0x05,0x84,0x00,0x00,0x23,0x7a,0x00,0x00,0x23,0x7a,0x00,0x00,0x05,0x66,0x00,0x00,0x23,0x89,0x00,0x00,0x23,0x89,0x00,0x00,0x05,0xe0,0x00,0x00,0x23,0x8a,0x00,0x00,0x23,0x8a,0x00,0x00,0x05,0xd5,0x00,0x00,0x23,0x8b,0x00,0x00,0x23,0x8b,0x00,0x00,0x05,0xc7,0x00,0x00,0x23,0x95,0x00,0x00,0x23,0x95,0x00,0x00, +0x05,0x85,0x00,0x00,0x23,0x9b,0x00,0x00,0x23,0x9b,0x00,0x00,0x04,0x34,0x00,0x00,0x23,0x9c,0x00,0x00,0x23,0x9d,0x00,0x00,0x04,0x32,0x00,0x00,0x23,0x9e,0x00,0x00,0x23,0x9e,0x00,0x00,0x04,0x37,0x00,0x00,0x23,0x9f,0x00,0x00,0x23,0xa0,0x00,0x00,0x04,0x35,0x00,0x00,0x23,0xa1,0x00,0x00,0x23,0xa1,0x00,0x00,0x03,0xf6,0x00,0x00, +0x23,0xa2,0x00,0x00,0x23,0xa3,0x00,0x00,0x03,0xf4,0x00,0x00,0x23,0xa4,0x00,0x00,0x23,0xa4,0x00,0x00,0x04,0x4a,0x00,0x00,0x23,0xa5,0x00,0x00,0x23,0xa6,0x00,0x00,0x04,0x48,0x00,0x00,0x23,0xa7,0x00,0x00,0x23,0xa7,0x00,0x00,0x03,0xf2,0x00,0x00,0x23,0xa8,0x00,0x00,0x23,0xa8,0x00,0x00,0x03,0xf1,0x00,0x00,0x23,0xa9,0x00,0x00, +0x23,0xa9,0x00,0x00,0x03,0xf0,0x00,0x00,0x23,0xaa,0x00,0x00,0x23,0xaa,0x00,0x00,0x03,0xd9,0x00,0x00,0x23,0xab,0x00,0x00,0x23,0xab,0x00,0x00,0x04,0x46,0x00,0x00,0x23,0xac,0x00,0x00,0x23,0xac,0x00,0x00,0x04,0x45,0x00,0x00,0x23,0xad,0x00,0x00,0x23,0xad,0x00,0x00,0x04,0x44,0x00,0x00,0x23,0xce,0x00,0x00,0x23,0xce,0x00,0x00, +0x05,0xea,0x00,0x00,0x23,0xfb,0x00,0x00,0x23,0xfc,0x00,0x00,0x05,0xef,0x00,0x00,0x23,0xfd,0x00,0x00,0x23,0xfe,0x00,0x00,0x05,0xf2,0x00,0x00,0x24,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x05,0xee,0x00,0x00,0x24,0x01,0x00,0x00,0x24,0x02,0x00,0x00,0x05,0xfa,0x00,0x00,0x24,0x03,0x00,0x00,0x24,0x04,0x00,0x00,0x05,0xd7,0x00,0x00, +0x24,0x05,0x00,0x00,0x24,0x05,0x00,0x00,0x05,0xda,0x00,0x00,0x24,0x06,0x00,0x00,0x24,0x06,0x00,0x00,0x05,0xb2,0x00,0x00,0x24,0x07,0x00,0x00,0x24,0x07,0x00,0x00,0x05,0xc5,0x00,0x00,0x24,0x08,0x00,0x00,0x24,0x08,0x00,0x00,0x05,0xb3,0x00,0x00,0x24,0x09,0x00,0x00,0x24,0x09,0x00,0x00,0x05,0xdf,0x00,0x00,0x24,0x0a,0x00,0x00, +0x24,0x0a,0x00,0x00,0x05,0xeb,0x00,0x00,0x24,0x0b,0x00,0x00,0x24,0x0b,0x00,0x00,0x06,0x01,0x00,0x00,0x24,0x0c,0x00,0x00,0x24,0x0c,0x00,0x00,0x05,0xdd,0x00,0x00,0x24,0x0d,0x00,0x00,0x24,0x0d,0x00,0x00,0x05,0xc9,0x00,0x00,0x24,0x0e,0x00,0x00,0x24,0x0e,0x00,0x00,0x05,0xf8,0x00,0x00,0x24,0x0f,0x00,0x00,0x24,0x0f,0x00,0x00, +0x05,0xf7,0x00,0x00,0x24,0x10,0x00,0x00,0x24,0x10,0x00,0x00,0x05,0xcf,0x00,0x00,0x24,0x11,0x00,0x00,0x24,0x11,0x00,0x00,0x05,0xd2,0x00,0x00,0x24,0x12,0x00,0x00,0x24,0x12,0x00,0x00,0x05,0xd4,0x00,0x00,0x24,0x13,0x00,0x00,0x24,0x13,0x00,0x00,0x05,0xd3,0x00,0x00,0x24,0x14,0x00,0x00,0x24,0x14,0x00,0x00,0x05,0xd1,0x00,0x00, +0x24,0x15,0x00,0x00,0x24,0x15,0x00,0x00,0x05,0xec,0x00,0x00,0x24,0x16,0x00,0x00,0x24,0x16,0x00,0x00,0x05,0xfd,0x00,0x00,0x24,0x17,0x00,0x00,0x24,0x17,0x00,0x00,0x05,0xd9,0x00,0x00,0x24,0x18,0x00,0x00,0x24,0x18,0x00,0x00,0x05,0xc8,0x00,0x00,0x24,0x19,0x00,0x00,0x24,0x19,0x00,0x00,0x05,0xd6,0x00,0x00,0x24,0x1a,0x00,0x00, +0x24,0x1a,0x00,0x00,0x05,0xfc,0x00,0x00,0x24,0x1b,0x00,0x00,0x24,0x1c,0x00,0x00,0x05,0xdb,0x00,0x00,0x24,0x1d,0x00,0x00,0x24,0x1d,0x00,0x00,0x05,0xde,0x00,0x00,0x24,0x1e,0x00,0x00,0x24,0x1e,0x00,0x00,0x05,0xf5,0x00,0x00,0x24,0x1f,0x00,0x00,0x24,0x1f,0x00,0x00,0x06,0x00,0x00,0x00,0x24,0x20,0x00,0x00,0x24,0x20,0x00,0x00, +0x05,0xf9,0x00,0x00,0x24,0x21,0x00,0x00,0x24,0x21,0x00,0x00,0x05,0xd0,0x00,0x00,0x24,0x23,0x00,0x00,0x24,0x23,0x00,0x00,0x05,0xc6,0x00,0x00,0x24,0x24,0x00,0x00,0x24,0x24,0x00,0x00,0x05,0xed,0x00,0x00,0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x05,0x2e,0x00,0x00,0x25,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x05,0x08,0x00,0x00, +0x25,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x05,0x3b,0x00,0x00,0x25,0x03,0x00,0x00,0x25,0x03,0x00,0x00,0x05,0x15,0x00,0x00,0x25,0x04,0x00,0x00,0x25,0x04,0x00,0x00,0x05,0x34,0x00,0x00,0x25,0x05,0x00,0x00,0x25,0x05,0x00,0x00,0x05,0x0e,0x00,0x00,0x25,0x06,0x00,0x00,0x25,0x06,0x00,0x00,0x05,0x35,0x00,0x00,0x25,0x07,0x00,0x00, +0x25,0x07,0x00,0x00,0x05,0x0f,0x00,0x00,0x25,0x08,0x00,0x00,0x25,0x08,0x00,0x00,0x05,0x31,0x00,0x00,0x25,0x09,0x00,0x00,0x25,0x09,0x00,0x00,0x05,0x0b,0x00,0x00,0x25,0x0a,0x00,0x00,0x25,0x0a,0x00,0x00,0x05,0x32,0x00,0x00,0x25,0x0b,0x00,0x00,0x25,0x0b,0x00,0x00,0x05,0x0c,0x00,0x00,0x25,0x0c,0x00,0x00,0x25,0x0c,0x00,0x00, +0x05,0x2d,0x00,0x00,0x25,0x0d,0x00,0x00,0x25,0x0d,0x00,0x00,0x04,0xfc,0x00,0x00,0x25,0x0e,0x00,0x00,0x25,0x0e,0x00,0x00,0x04,0xf6,0x00,0x00,0x25,0x0f,0x00,0x00,0x25,0x0f,0x00,0x00,0x05,0x07,0x00,0x00,0x25,0x10,0x00,0x00,0x25,0x10,0x00,0x00,0x05,0x2c,0x00,0x00,0x25,0x11,0x00,0x00,0x25,0x11,0x00,0x00,0x04,0xfa,0x00,0x00, +0x25,0x12,0x00,0x00,0x25,0x12,0x00,0x00,0x04,0xf4,0x00,0x00,0x25,0x13,0x00,0x00,0x25,0x13,0x00,0x00,0x05,0x06,0x00,0x00,0x25,0x14,0x00,0x00,0x25,0x14,0x00,0x00,0x05,0x3a,0x00,0x00,0x25,0x15,0x00,0x00,0x25,0x15,0x00,0x00,0x05,0x55,0x00,0x00,0x25,0x16,0x00,0x00,0x25,0x16,0x00,0x00,0x05,0x4f,0x00,0x00,0x25,0x17,0x00,0x00, +0x25,0x17,0x00,0x00,0x05,0x14,0x00,0x00,0x25,0x18,0x00,0x00,0x25,0x18,0x00,0x00,0x05,0x39,0x00,0x00,0x25,0x19,0x00,0x00,0x25,0x19,0x00,0x00,0x05,0x53,0x00,0x00,0x25,0x1a,0x00,0x00,0x25,0x1a,0x00,0x00,0x05,0x4d,0x00,0x00,0x25,0x1b,0x00,0x00,0x25,0x1b,0x00,0x00,0x05,0x12,0x00,0x00,0x25,0x1c,0x00,0x00,0x25,0x1c,0x00,0x00, +0x05,0x3e,0x00,0x00,0x25,0x1d,0x00,0x00,0x25,0x1d,0x00,0x00,0x05,0x61,0x00,0x00,0x25,0x1e,0x00,0x00,0x25,0x1e,0x00,0x00,0x05,0x4e,0x00,0x00,0x25,0x1f,0x00,0x00,0x25,0x1f,0x00,0x00,0x04,0xf7,0x00,0x00,0x25,0x20,0x00,0x00,0x25,0x20,0x00,0x00,0x05,0x5e,0x00,0x00,0x25,0x21,0x00,0x00,0x25,0x21,0x00,0x00,0x04,0xfd,0x00,0x00, +0x25,0x22,0x00,0x00,0x25,0x22,0x00,0x00,0x05,0x54,0x00,0x00,0x25,0x23,0x00,0x00,0x25,0x23,0x00,0x00,0x05,0x18,0x00,0x00,0x25,0x24,0x00,0x00,0x25,0x24,0x00,0x00,0x05,0x3d,0x00,0x00,0x25,0x25,0x00,0x00,0x25,0x25,0x00,0x00,0x05,0x60,0x00,0x00,0x25,0x26,0x00,0x00,0x25,0x26,0x00,0x00,0x05,0x4c,0x00,0x00,0x25,0x27,0x00,0x00, +0x25,0x27,0x00,0x00,0x04,0xf5,0x00,0x00,0x25,0x28,0x00,0x00,0x25,0x28,0x00,0x00,0x05,0x5d,0x00,0x00,0x25,0x29,0x00,0x00,0x25,0x29,0x00,0x00,0x04,0xfb,0x00,0x00,0x25,0x2a,0x00,0x00,0x25,0x2a,0x00,0x00,0x05,0x52,0x00,0x00,0x25,0x2b,0x00,0x00,0x25,0x2b,0x00,0x00,0x05,0x17,0x00,0x00,0x25,0x2c,0x00,0x00,0x25,0x2c,0x00,0x00, +0x05,0x2b,0x00,0x00,0x25,0x2d,0x00,0x00,0x25,0x2d,0x00,0x00,0x05,0x1a,0x00,0x00,0x25,0x2e,0x00,0x00,0x25,0x2e,0x00,0x00,0x05,0x40,0x00,0x00,0x25,0x2f,0x00,0x00,0x25,0x2f,0x00,0x00,0x04,0xf9,0x00,0x00,0x25,0x30,0x00,0x00,0x25,0x30,0x00,0x00,0x04,0xf3,0x00,0x00,0x25,0x31,0x00,0x00,0x25,0x31,0x00,0x00,0x05,0x43,0x00,0x00, +0x25,0x32,0x00,0x00,0x25,0x32,0x00,0x00,0x05,0x1d,0x00,0x00,0x25,0x33,0x00,0x00,0x25,0x33,0x00,0x00,0x05,0x05,0x00,0x00,0x25,0x34,0x00,0x00,0x25,0x34,0x00,0x00,0x05,0x38,0x00,0x00,0x25,0x35,0x00,0x00,0x25,0x35,0x00,0x00,0x05,0x1b,0x00,0x00,0x25,0x36,0x00,0x00,0x25,0x36,0x00,0x00,0x05,0x41,0x00,0x00,0x25,0x37,0x00,0x00, +0x25,0x37,0x00,0x00,0x05,0x51,0x00,0x00,0x25,0x38,0x00,0x00,0x25,0x38,0x00,0x00,0x05,0x4b,0x00,0x00,0x25,0x39,0x00,0x00,0x25,0x39,0x00,0x00,0x05,0x44,0x00,0x00,0x25,0x3a,0x00,0x00,0x25,0x3a,0x00,0x00,0x05,0x1e,0x00,0x00,0x25,0x3b,0x00,0x00,0x25,0x3b,0x00,0x00,0x05,0x11,0x00,0x00,0x25,0x3c,0x00,0x00,0x25,0x3c,0x00,0x00, +0x05,0x3c,0x00,0x00,0x25,0x3d,0x00,0x00,0x25,0x3d,0x00,0x00,0x05,0x1c,0x00,0x00,0x25,0x3e,0x00,0x00,0x25,0x3e,0x00,0x00,0x05,0x42,0x00,0x00,0x25,0x3f,0x00,0x00,0x25,0x3f,0x00,0x00,0x05,0x5f,0x00,0x00,0x25,0x40,0x00,0x00,0x25,0x40,0x00,0x00,0x05,0x4a,0x00,0x00,0x25,0x41,0x00,0x00,0x25,0x41,0x00,0x00,0x04,0xf8,0x00,0x00, +0x25,0x42,0x00,0x00,0x25,0x42,0x00,0x00,0x05,0x5c,0x00,0x00,0x25,0x43,0x00,0x00,0x25,0x43,0x00,0x00,0x05,0x20,0x00,0x00,0x25,0x44,0x00,0x00,0x25,0x44,0x00,0x00,0x05,0x46,0x00,0x00,0x25,0x45,0x00,0x00,0x25,0x45,0x00,0x00,0x05,0x19,0x00,0x00,0x25,0x46,0x00,0x00,0x25,0x46,0x00,0x00,0x05,0x3f,0x00,0x00,0x25,0x47,0x00,0x00, +0x25,0x47,0x00,0x00,0x04,0xfe,0x00,0x00,0x25,0x48,0x00,0x00,0x25,0x48,0x00,0x00,0x05,0x50,0x00,0x00,0x25,0x49,0x00,0x00,0x25,0x49,0x00,0x00,0x05,0x45,0x00,0x00,0x25,0x4a,0x00,0x00,0x25,0x4a,0x00,0x00,0x05,0x1f,0x00,0x00,0x25,0x4b,0x00,0x00,0x25,0x4b,0x00,0x00,0x05,0x16,0x00,0x00,0x25,0x4c,0x00,0x00,0x25,0x4c,0x00,0x00, +0x05,0x28,0x00,0x00,0x25,0x4d,0x00,0x00,0x25,0x4d,0x00,0x00,0x05,0x02,0x00,0x00,0x25,0x4e,0x00,0x00,0x25,0x4e,0x00,0x00,0x05,0x29,0x00,0x00,0x25,0x4f,0x00,0x00,0x25,0x4f,0x00,0x00,0x05,0x03,0x00,0x00,0x25,0x50,0x00,0x00,0x25,0x50,0x00,0x00,0x04,0xe8,0x00,0x00,0x25,0x51,0x00,0x00,0x25,0x51,0x00,0x00,0x04,0xec,0x00,0x00, +0x25,0x52,0x00,0x00,0x25,0x52,0x00,0x00,0x05,0x01,0x00,0x00,0x25,0x53,0x00,0x00,0x25,0x53,0x00,0x00,0x04,0xf2,0x00,0x00,0x25,0x54,0x00,0x00,0x25,0x54,0x00,0x00,0x04,0xe7,0x00,0x00,0x25,0x55,0x00,0x00,0x25,0x55,0x00,0x00,0x05,0x00,0x00,0x00,0x25,0x56,0x00,0x00,0x25,0x56,0x00,0x00,0x04,0xf1,0x00,0x00,0x25,0x57,0x00,0x00, +0x25,0x57,0x00,0x00,0x04,0xe6,0x00,0x00,0x25,0x58,0x00,0x00,0x25,0x58,0x00,0x00,0x05,0x58,0x00,0x00,0x25,0x59,0x00,0x00,0x25,0x59,0x00,0x00,0x05,0x49,0x00,0x00,0x25,0x5a,0x00,0x00,0x25,0x5a,0x00,0x00,0x04,0xeb,0x00,0x00,0x25,0x5b,0x00,0x00,0x25,0x5b,0x00,0x00,0x05,0x57,0x00,0x00,0x25,0x5c,0x00,0x00,0x25,0x5c,0x00,0x00, +0x05,0x48,0x00,0x00,0x25,0x5d,0x00,0x00,0x25,0x5d,0x00,0x00,0x04,0xea,0x00,0x00,0x25,0x5e,0x00,0x00,0x25,0x5e,0x00,0x00,0x05,0x64,0x00,0x00,0x25,0x5f,0x00,0x00,0x25,0x5f,0x00,0x00,0x05,0x5b,0x00,0x00,0x25,0x60,0x00,0x00,0x25,0x60,0x00,0x00,0x04,0xef,0x00,0x00,0x25,0x61,0x00,0x00,0x25,0x61,0x00,0x00,0x05,0x63,0x00,0x00, +0x25,0x62,0x00,0x00,0x25,0x62,0x00,0x00,0x05,0x5a,0x00,0x00,0x25,0x63,0x00,0x00,0x25,0x63,0x00,0x00,0x04,0xee,0x00,0x00,0x25,0x64,0x00,0x00,0x25,0x64,0x00,0x00,0x04,0xff,0x00,0x00,0x25,0x65,0x00,0x00,0x25,0x65,0x00,0x00,0x04,0xf0,0x00,0x00,0x25,0x66,0x00,0x00,0x25,0x66,0x00,0x00,0x04,0xe5,0x00,0x00,0x25,0x67,0x00,0x00, +0x25,0x67,0x00,0x00,0x05,0x56,0x00,0x00,0x25,0x68,0x00,0x00,0x25,0x68,0x00,0x00,0x05,0x47,0x00,0x00,0x25,0x69,0x00,0x00,0x25,0x69,0x00,0x00,0x04,0xe9,0x00,0x00,0x25,0x6a,0x00,0x00,0x25,0x6a,0x00,0x00,0x05,0x62,0x00,0x00,0x25,0x6b,0x00,0x00,0x25,0x6b,0x00,0x00,0x05,0x59,0x00,0x00,0x25,0x6c,0x00,0x00,0x25,0x6c,0x00,0x00, +0x04,0xed,0x00,0x00,0x25,0x6d,0x00,0x00,0x25,0x6d,0x00,0x00,0x05,0x22,0x00,0x00,0x25,0x6e,0x00,0x00,0x25,0x6e,0x00,0x00,0x05,0x21,0x00,0x00,0x25,0x6f,0x00,0x00,0x25,0x70,0x00,0x00,0x05,0x23,0x00,0x00,0x25,0x71,0x00,0x00,0x25,0x71,0x00,0x00,0x05,0x27,0x00,0x00,0x25,0x72,0x00,0x00,0x25,0x72,0x00,0x00,0x05,0x26,0x00,0x00, +0x25,0x73,0x00,0x00,0x25,0x73,0x00,0x00,0x05,0x25,0x00,0x00,0x25,0x74,0x00,0x00,0x25,0x74,0x00,0x00,0x05,0x2f,0x00,0x00,0x25,0x75,0x00,0x00,0x25,0x75,0x00,0x00,0x05,0x36,0x00,0x00,0x25,0x76,0x00,0x00,0x25,0x76,0x00,0x00,0x05,0x33,0x00,0x00,0x25,0x77,0x00,0x00,0x25,0x77,0x00,0x00,0x05,0x2a,0x00,0x00,0x25,0x78,0x00,0x00, +0x25,0x78,0x00,0x00,0x05,0x09,0x00,0x00,0x25,0x79,0x00,0x00,0x25,0x79,0x00,0x00,0x05,0x10,0x00,0x00,0x25,0x7a,0x00,0x00,0x25,0x7a,0x00,0x00,0x05,0x0d,0x00,0x00,0x25,0x7b,0x00,0x00,0x25,0x7b,0x00,0x00,0x05,0x04,0x00,0x00,0x25,0x7c,0x00,0x00,0x25,0x7c,0x00,0x00,0x05,0x30,0x00,0x00,0x25,0x7d,0x00,0x00,0x25,0x7d,0x00,0x00, +0x05,0x37,0x00,0x00,0x25,0x7e,0x00,0x00,0x25,0x7e,0x00,0x00,0x05,0x0a,0x00,0x00,0x25,0x7f,0x00,0x00,0x25,0x7f,0x00,0x00,0x05,0x13,0x00,0x00,0x25,0x80,0x00,0x00,0x25,0x80,0x00,0x00,0x04,0xa2,0x00,0x00,0x25,0x81,0x00,0x00,0x25,0x88,0x00,0x00,0x04,0x9a,0x00,0x00,0x25,0x89,0x00,0x00,0x25,0x89,0x00,0x00,0x04,0xaa,0x00,0x00, +0x25,0x8a,0x00,0x00,0x25,0x8a,0x00,0x00,0x04,0xa9,0x00,0x00,0x25,0x8b,0x00,0x00,0x25,0x8b,0x00,0x00,0x04,0xa8,0x00,0x00,0x25,0x8c,0x00,0x00,0x25,0x8c,0x00,0x00,0x04,0xa7,0x00,0x00,0x25,0x8d,0x00,0x00,0x25,0x8d,0x00,0x00,0x04,0xa6,0x00,0x00,0x25,0x8e,0x00,0x00,0x25,0x8e,0x00,0x00,0x04,0xa5,0x00,0x00,0x25,0x8f,0x00,0x00, +0x25,0x8f,0x00,0x00,0x04,0xa4,0x00,0x00,0x25,0x90,0x00,0x00,0x25,0x90,0x00,0x00,0x04,0xab,0x00,0x00,0x25,0x91,0x00,0x00,0x25,0x93,0x00,0x00,0x04,0xb7,0x00,0x00,0x25,0x94,0x00,0x00,0x25,0x94,0x00,0x00,0x04,0xa3,0x00,0x00,0x25,0x95,0x00,0x00,0x25,0x9f,0x00,0x00,0x04,0xac,0x00,0x00,0x25,0xa0,0x00,0x00,0x25,0xa1,0x00,0x00, +0x04,0xc8,0x00,0x00,0x25,0xaa,0x00,0x00,0x25,0xab,0x00,0x00,0x04,0xca,0x00,0x00,0x25,0xb2,0x00,0x00,0x25,0xb2,0x00,0x00,0x04,0xd1,0x00,0x00,0x25,0xb3,0x00,0x00,0x25,0xb3,0x00,0x00,0x04,0xd5,0x00,0x00,0x25,0xb4,0x00,0x00,0x25,0xb4,0x00,0x00,0x04,0xdd,0x00,0x00,0x25,0xb5,0x00,0x00,0x25,0xb5,0x00,0x00,0x04,0xe1,0x00,0x00, +0x25,0xb6,0x00,0x00,0x25,0xb6,0x00,0x00,0x04,0xd2,0x00,0x00,0x25,0xb7,0x00,0x00,0x25,0xb7,0x00,0x00,0x04,0xd6,0x00,0x00,0x25,0xb8,0x00,0x00,0x25,0xb8,0x00,0x00,0x04,0xde,0x00,0x00,0x25,0xb9,0x00,0x00,0x25,0xb9,0x00,0x00,0x04,0xe2,0x00,0x00,0x25,0xba,0x00,0x00,0x25,0xba,0x00,0x00,0x04,0xd9,0x00,0x00,0x25,0xbb,0x00,0x00, +0x25,0xbb,0x00,0x00,0x04,0xdb,0x00,0x00,0x25,0xbc,0x00,0x00,0x25,0xbc,0x00,0x00,0x04,0xd3,0x00,0x00,0x25,0xbd,0x00,0x00,0x25,0xbd,0x00,0x00,0x04,0xd7,0x00,0x00,0x25,0xbe,0x00,0x00,0x25,0xbe,0x00,0x00,0x04,0xdf,0x00,0x00,0x25,0xbf,0x00,0x00,0x25,0xbf,0x00,0x00,0x04,0xe3,0x00,0x00,0x25,0xc0,0x00,0x00,0x25,0xc0,0x00,0x00, +0x04,0xd4,0x00,0x00,0x25,0xc1,0x00,0x00,0x25,0xc1,0x00,0x00,0x04,0xd8,0x00,0x00,0x25,0xc2,0x00,0x00,0x25,0xc2,0x00,0x00,0x04,0xe0,0x00,0x00,0x25,0xc3,0x00,0x00,0x25,0xc3,0x00,0x00,0x04,0xe4,0x00,0x00,0x25,0xc4,0x00,0x00,0x25,0xc4,0x00,0x00,0x04,0xda,0x00,0x00,0x25,0xc5,0x00,0x00,0x25,0xc5,0x00,0x00,0x04,0xdc,0x00,0x00, +0x25,0xc6,0x00,0x00,0x25,0xc8,0x00,0x00,0x04,0xc4,0x00,0x00,0x25,0xc9,0x00,0x00,0x25,0xc9,0x00,0x00,0x04,0xc1,0x00,0x00,0x25,0xca,0x00,0x00,0x25,0xca,0x00,0x00,0x04,0xc7,0x00,0x00,0x25,0xcb,0x00,0x00,0x25,0xcb,0x00,0x00,0x04,0xbb,0x00,0x00,0x25,0xcc,0x00,0x00,0x25,0xcc,0x00,0x00,0x04,0xc0,0x00,0x00,0x25,0xce,0x00,0x00, +0x25,0xce,0x00,0x00,0x04,0xc2,0x00,0x00,0x25,0xcf,0x00,0x00,0x25,0xcf,0x00,0x00,0x04,0xba,0x00,0x00,0x25,0xd4,0x00,0x00,0x25,0xd5,0x00,0x00,0x04,0xbd,0x00,0x00,0x25,0xe6,0x00,0x00,0x25,0xe6,0x00,0x00,0x04,0xc3,0x00,0x00,0x25,0xe7,0x00,0x00,0x25,0xeb,0x00,0x00,0x04,0xcc,0x00,0x00,0x25,0xef,0x00,0x00,0x25,0xef,0x00,0x00, +0x04,0xbc,0x00,0x00,0x25,0xf6,0x00,0x00,0x25,0xf6,0x00,0x00,0x04,0xbf,0x00,0x00,0x26,0x6d,0x00,0x00,0x26,0x6d,0x00,0x00,0x06,0x60,0x00,0x00,0x26,0x6f,0x00,0x00,0x26,0x6f,0x00,0x00,0x06,0x61,0x00,0x00,0x26,0x87,0x00,0x00,0x26,0x87,0x00,0x00,0x05,0xab,0x00,0x00,0x26,0xa0,0x00,0x00,0x26,0xa1,0x00,0x00,0x05,0xac,0x00,0x00, +0x27,0x13,0x00,0x00,0x27,0x13,0x00,0x00,0x05,0xae,0x00,0x00,0x27,0x15,0x00,0x00,0x27,0x15,0x00,0x00,0x05,0xaf,0x00,0x00,0x27,0x17,0x00,0x00,0x27,0x17,0x00,0x00,0x05,0xb0,0x00,0x00,0x27,0x36,0x00,0x00,0x27,0x36,0x00,0x00,0x05,0xb1,0x00,0x00,0x27,0x6e,0x00,0x00,0x27,0x6e,0x00,0x00,0x03,0x4c,0x00,0x00,0x27,0x6f,0x00,0x00, +0x27,0x6f,0x00,0x00,0x03,0x4e,0x00,0x00,0x27,0x70,0x00,0x00,0x27,0x70,0x00,0x00,0x03,0x4b,0x00,0x00,0x27,0x71,0x00,0x00,0x27,0x71,0x00,0x00,0x03,0x4d,0x00,0x00,0x27,0x94,0x00,0x00,0x27,0x94,0x00,0x00,0x04,0x93,0x00,0x00,0x27,0x9c,0x00,0x00,0x27,0x9e,0x00,0x00,0x04,0x94,0x00,0x00,0x27,0xc5,0x00,0x00,0x27,0xc5,0x00,0x00, +0x03,0x51,0x00,0x00,0x27,0xc6,0x00,0x00,0x27,0xc6,0x00,0x00,0x03,0x54,0x00,0x00,0x27,0xdc,0x00,0x00,0x27,0xdc,0x00,0x00,0x03,0xef,0x00,0x00,0x27,0xe6,0x00,0x00,0x27,0xe6,0x00,0x00,0x03,0xb6,0x00,0x00,0x27,0xe7,0x00,0x00,0x27,0xe7,0x00,0x00,0x03,0xb9,0x00,0x00,0x27,0xe8,0x00,0x00,0x27,0xe8,0x00,0x00,0x03,0xb4,0x00,0x00, +0x27,0xe9,0x00,0x00,0x27,0xe9,0x00,0x00,0x03,0xb7,0x00,0x00,0x27,0xea,0x00,0x00,0x27,0xea,0x00,0x00,0x03,0xb5,0x00,0x00,0x27,0xeb,0x00,0x00,0x27,0xeb,0x00,0x00,0x03,0xb8,0x00,0x00,0x27,0xf5,0x00,0x00,0x27,0xf7,0x00,0x00,0x04,0x97,0x00,0x00,0x29,0x16,0x00,0x00,0x29,0x16,0x00,0x00,0x04,0x43,0x00,0x00,0x29,0x4a,0x00,0x00, +0x29,0x4a,0x00,0x00,0x03,0xee,0x00,0x00,0x29,0x87,0x00,0x00,0x29,0x88,0x00,0x00,0x03,0x55,0x00,0x00,0x2a,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x03,0xfe,0x00,0x00,0x2a,0x05,0x00,0x00,0x2a,0x06,0x00,0x00,0x03,0xff,0x00,0x00,0x2b,0x58,0x00,0x00,0x2b,0x58,0x00,0x00,0x05,0xf1,0x00,0x00,0xe0,0xa0,0x00,0x00,0xe0,0xa2,0x00,0x00, +0x06,0xc4,0x00,0x00,0xe0,0xb0,0x00,0x00,0xe0,0xb3,0x00,0x00,0x06,0xc7,0x00,0x00,0xfe,0x62,0x00,0x00,0xfe,0x62,0x00,0x00,0x04,0x3a,0x00,0x00,0xfe,0xff,0x00,0x00,0xfe,0xff,0x00,0x00,0x03,0xc1,0x00,0x00,0xff,0x5b,0x00,0x00,0xff,0x5b,0x00,0x00,0x03,0x49,0x00,0x00,0xff,0x5d,0x00,0x00,0xff,0x5d,0x00,0x00,0x03,0x4a,0x00,0x00, +0xff,0xfd,0x00,0x00,0xff,0xfd,0x00,0x00,0x05,0xf6,0x00,0x01,0x69,0x10,0x00,0x01,0x69,0x10,0x00,0x00,0x02,0x9f,0x00,0x01,0xd5,0x38,0x00,0x01,0xd5,0x39,0x00,0x00,0x02,0xa0,0x00,0x01,0xd5,0x3b,0x00,0x01,0xd5,0x3e,0x00,0x00,0x02,0xa3,0x00,0x01,0xd5,0x40,0x00,0x01,0xd5,0x44,0x00,0x00,0x02,0xa8,0x00,0x01,0xd5,0x46,0x00,0x01, +0xd5,0x46,0x00,0x00,0x02,0xae,0x00,0x01,0xd5,0x4a,0x00,0x01,0xd5,0x50,0x00,0x00,0x02,0xb2,0x00,0x01,0xd5,0x52,0x00,0x01,0xd5,0x6b,0x00,0x00,0x02,0xba,0x00,0x00,0xb0,0x00,0x2c,0x20,0xb0,0x00,0x55,0x58,0x45,0x59,0x20,0x20,0x4b,0xb8,0x00,0x0e,0x51,0x4b,0xb0,0x06,0x53,0x5a,0x58,0xb0,0x34,0x1b,0xb0,0x28,0x59,0x60,0x66,0x20, +0x8a,0x55,0x58,0xb0,0x02,0x25,0x61,0xb9,0x08,0x00,0x08,0x00,0x63,0x63,0x23,0x62,0x1b,0x21,0x21,0xb0,0x00,0x59,0xb0,0x00,0x43,0x23,0x44,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0x2d,0xb0,0x01,0x2c,0xb0,0x20,0x60,0x66,0x2d,0xb0,0x02,0x2c,0x23,0x21,0x23,0x21,0x2d,0xb0,0x03,0x2c,0x20,0x64,0xb3,0x03,0x14,0x15,0x00,0x42,0x43,0xb0, +0x13,0x43,0x20,0x60,0x60,0x42,0xb1,0x02,0x14,0x43,0x42,0xb1,0x25,0x03,0x43,0xb0,0x02,0x43,0x54,0x78,0x20,0xb0,0x0c,0x23,0xb0,0x02,0x43,0x43,0x61,0x64,0xb0,0x04,0x50,0x78,0xb2,0x02,0x02,0x02,0x43,0x60,0x42,0xb0,0x21,0x65,0x1c,0x21,0xb0,0x02,0x43,0x43,0xb2,0x0e,0x15,0x01,0x42,0x1c,0x20,0xb0,0x02,0x43,0x23,0x42,0xb2,0x13, +0x01,0x13,0x43,0x60,0x42,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb2,0x16,0x01,0x02,0x43,0x60,0x42,0x2d,0xb0,0x04,0x2c,0xb0,0x03,0x2b,0xb0,0x15,0x43,0x58,0x23,0x21,0x23,0x21,0xb0,0x16,0x43,0x43,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0x1b,0x20,0x64,0x20,0xb0,0xc0,0x50,0xb0,0x04,0x26,0x5a,0xb2,0x28,0x01,0x0d,0x43,0x45,0x63,0x45, +0xb0,0x06,0x45,0x58,0x21,0xb0,0x03,0x25,0x59,0x52,0x5b,0x58,0x21,0x23,0x21,0x1b,0x8a,0x58,0x20,0xb0,0x50,0x50,0x58,0x21,0xb0,0x40,0x59,0x1b,0x20,0xb0,0x38,0x50,0x58,0x21,0xb0,0x38,0x59,0x59,0x20,0xb1,0x01,0x0d,0x43,0x45,0x63,0x45,0x61,0x64,0xb0,0x28,0x50,0x58,0x21,0xb1,0x01,0x0d,0x43,0x45,0x63,0x45,0x20,0xb0,0x30,0x50, +0x58,0x21,0xb0,0x30,0x59,0x1b,0x20,0xb0,0xc0,0x50,0x58,0x20,0x66,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x0a,0x50,0x58,0x60,0x1b,0x20,0xb0,0x20,0x50,0x58,0x21,0xb0,0x0a,0x60,0x1b,0x20,0xb0,0x36,0x50,0x58,0x21,0xb0,0x36,0x60,0x1b,0x60,0x59,0x59,0x59,0x1b,0xb0,0x02,0x25,0xb0,0x0c,0x43,0x63,0xb0,0x00,0x52,0x58,0xb0,0x00,0x4b,0xb0, +0x0a,0x50,0x58,0x21,0xb0,0x0c,0x43,0x1b,0x4b,0xb0,0x1e,0x50,0x58,0x21,0xb0,0x1e,0x4b,0x61,0xb8,0x10,0x00,0x63,0xb0,0x0c,0x43,0x63,0xb8,0x05,0x00,0x62,0x59,0x59,0x64,0x61,0x59,0xb0,0x01,0x2b,0x59,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0x59,0x20,0x64,0xb0,0x16,0x43,0x23,0x42,0x59,0x2d,0xb0,0x05,0x2c,0x20,0x45,0x20,0xb0, +0x04,0x25,0x61,0x64,0x20,0xb0,0x07,0x43,0x50,0x58,0xb0,0x07,0x23,0x42,0xb0,0x08,0x23,0x42,0x1b,0x21,0x21,0x59,0xb0,0x01,0x60,0x2d,0xb0,0x06,0x2c,0x23,0x21,0x23,0x21,0xb0,0x03,0x2b,0x20,0x64,0xb1,0x07,0x62,0x42,0x20,0xb0,0x08,0x23,0x42,0xb0,0x06,0x45,0x58,0x1b,0xb1,0x01,0x0d,0x43,0x45,0x63,0xb1,0x01,0x0d,0x43,0xb0,0x05, +0x60,0x45,0x63,0xb0,0x05,0x2a,0x21,0x20,0xb0,0x08,0x43,0x20,0x8a,0x20,0x8a,0xb0,0x01,0x2b,0xb1,0x30,0x05,0x25,0xb0,0x04,0x26,0x51,0x58,0x60,0x50,0x1b,0x61,0x52,0x59,0x58,0x23,0x59,0x21,0x59,0x20,0xb0,0x40,0x53,0x58,0xb0,0x01,0x2b,0x1b,0x21,0xb0,0x40,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0x2d,0xb0,0x07,0x2c,0xb0,0x09, +0x43,0x2b,0xb2,0x00,0x02,0x00,0x43,0x60,0x42,0x2d,0xb0,0x08,0x2c,0xb0,0x09,0x23,0x42,0x23,0x20,0xb0,0x00,0x23,0x42,0x61,0xb0,0x02,0x62,0x66,0xb0,0x01,0x63,0xb0,0x01,0x60,0xb0,0x07,0x2a,0x2d,0xb0,0x09,0x2c,0x20,0x20,0x45,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0, +0x01,0x63,0x60,0x44,0xb0,0x01,0x60,0x2d,0xb0,0x0a,0x2c,0xb2,0x09,0x0e,0x00,0x43,0x45,0x42,0x2a,0x21,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0x2d,0xb0,0x0b,0x2c,0xb0,0x00,0x43,0x23,0x44,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0x2d,0xb0,0x0c,0x2c,0x20,0x20,0x45,0x20,0xb0,0x01,0x2b,0x23,0xb0,0x00,0x43,0xb0,0x04,0x25,0x60,0x20,0x45, +0x8a,0x23,0x61,0x20,0x64,0x20,0xb0,0x20,0x50,0x58,0x21,0xb0,0x00,0x1b,0xb0,0x30,0x50,0x58,0xb0,0x20,0x1b,0xb0,0x40,0x59,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb0,0x03,0x25,0x23,0x61,0x44,0x44,0xb0,0x01,0x60,0x2d,0xb0,0x0d,0x2c,0x20,0x20,0x45,0x20,0xb0,0x01,0x2b,0x23,0xb0,0x00,0x43,0xb0,0x04,0x25,0x60,0x20,0x45,0x8a, +0x23,0x61,0x20,0x64,0xb0,0x24,0x50,0x58,0xb0,0x00,0x1b,0xb0,0x40,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb0,0x03,0x25,0x23,0x61,0x44,0x44,0xb0,0x01,0x60,0x2d,0xb0,0x0e,0x2c,0x20,0xb0,0x00,0x23,0x42,0xb3,0x0d,0x0c,0x00,0x03,0x45,0x50,0x58,0x21,0x1b,0x23,0x21,0x59,0x2a,0x21,0x2d,0xb0,0x0f,0x2c,0xb1,0x02,0x02,0x45,0xb0, +0x64,0x61,0x44,0x2d,0xb0,0x10,0x2c,0xb0,0x01,0x60,0x20,0x20,0xb0,0x0f,0x43,0x4a,0xb0,0x00,0x50,0x58,0x20,0xb0,0x0f,0x23,0x42,0x59,0xb0,0x10,0x43,0x4a,0xb0,0x00,0x52,0x58,0x20,0xb0,0x10,0x23,0x42,0x59,0x2d,0xb0,0x11,0x2c,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0x20,0xb8,0x04,0x00,0x63,0x8a,0x23,0x61,0xb0,0x11,0x43,0x60, +0x20,0x8a,0x60,0x20,0xb0,0x11,0x23,0x42,0x23,0x2d,0xb0,0x12,0x2c,0x4b,0x54,0x58,0xb1,0x04,0x64,0x44,0x59,0x24,0xb0,0x0d,0x65,0x23,0x78,0x2d,0xb0,0x13,0x2c,0x4b,0x51,0x58,0x4b,0x53,0x58,0xb1,0x04,0x64,0x44,0x59,0x1b,0x21,0x59,0x24,0xb0,0x13,0x65,0x23,0x78,0x2d,0xb0,0x14,0x2c,0xb1,0x00,0x12,0x43,0x55,0x58,0xb1,0x12,0x12, +0x43,0xb0,0x01,0x61,0x42,0xb0,0x11,0x2b,0x59,0xb0,0x00,0x43,0xb0,0x02,0x25,0x42,0xb1,0x0f,0x02,0x25,0x42,0xb1,0x10,0x02,0x25,0x42,0xb0,0x01,0x16,0x23,0x20,0xb0,0x03,0x25,0x50,0x58,0xb1,0x01,0x00,0x43,0x60,0xb0,0x04,0x25,0x42,0x8a,0x8a,0x20,0x8a,0x23,0x61,0xb0,0x10,0x2a,0x21,0x23,0xb0,0x01,0x61,0x20,0x8a,0x23,0x61,0xb0, +0x10,0x2a,0x21,0x1b,0xb1,0x01,0x00,0x43,0x60,0xb0,0x02,0x25,0x42,0xb0,0x02,0x25,0x61,0xb0,0x10,0x2a,0x21,0x59,0xb0,0x0f,0x43,0x47,0xb0,0x10,0x43,0x47,0x60,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60, +0x59,0x66,0xb0,0x01,0x63,0x60,0xb1,0x00,0x00,0x13,0x23,0x44,0xb0,0x01,0x43,0xb0,0x00,0x3e,0xb2,0x01,0x01,0x01,0x43,0x60,0x42,0x2d,0xb0,0x15,0x2c,0x00,0xb1,0x00,0x02,0x45,0x54,0x58,0xb0,0x12,0x23,0x42,0x20,0x45,0xb0,0x0e,0x23,0x42,0xb0,0x0d,0x23,0xb0,0x05,0x60,0x42,0x20,0x60,0xb7,0x18,0x18,0x01,0x00,0x11,0x00,0x13,0x00, +0x42,0x42,0x42,0x8a,0x60,0x20,0xb0,0x14,0x23,0x42,0xb0,0x01,0x61,0xb1,0x14,0x08,0x2b,0xb0,0x8b,0x2b,0x1b,0x22,0x59,0x2d,0xb0,0x16,0x2c,0xb1,0x00,0x15,0x2b,0x2d,0xb0,0x17,0x2c,0xb1,0x01,0x15,0x2b,0x2d,0xb0,0x18,0x2c,0xb1,0x02,0x15,0x2b,0x2d,0xb0,0x19,0x2c,0xb1,0x03,0x15,0x2b,0x2d,0xb0,0x1a,0x2c,0xb1,0x04,0x15,0x2b,0x2d, +0xb0,0x1b,0x2c,0xb1,0x05,0x15,0x2b,0x2d,0xb0,0x1c,0x2c,0xb1,0x06,0x15,0x2b,0x2d,0xb0,0x1d,0x2c,0xb1,0x07,0x15,0x2b,0x2d,0xb0,0x1e,0x2c,0xb1,0x08,0x15,0x2b,0x2d,0xb0,0x1f,0x2c,0xb1,0x09,0x15,0x2b,0x2d,0xb0,0x2b,0x2c,0x23,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0xb0,0x06,0x60,0x4b,0x54,0x58,0x23,0x20,0x2e,0xb0,0x01,0x5d, +0x1b,0x21,0x21,0x59,0x2d,0xb0,0x2c,0x2c,0x23,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0xb0,0x16,0x60,0x4b,0x54,0x58,0x23,0x20,0x2e,0xb0,0x01,0x71,0x1b,0x21,0x21,0x59,0x2d,0xb0,0x2d,0x2c,0x23,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0xb0,0x26,0x60,0x4b,0x54,0x58,0x23,0x20,0x2e,0xb0,0x01,0x72,0x1b,0x21,0x21,0x59,0x2d,0xb0, +0x20,0x2c,0x00,0xb0,0x0f,0x2b,0xb1,0x00,0x02,0x45,0x54,0x58,0xb0,0x12,0x23,0x42,0x20,0x45,0xb0,0x0e,0x23,0x42,0xb0,0x0d,0x23,0xb0,0x05,0x60,0x42,0x20,0x60,0xb0,0x01,0x61,0xb5,0x18,0x18,0x01,0x00,0x11,0x00,0x42,0x42,0x8a,0x60,0xb1,0x14,0x08,0x2b,0xb0,0x8b,0x2b,0x1b,0x22,0x59,0x2d,0xb0,0x21,0x2c,0xb1,0x00,0x20,0x2b,0x2d, +0xb0,0x22,0x2c,0xb1,0x01,0x20,0x2b,0x2d,0xb0,0x23,0x2c,0xb1,0x02,0x20,0x2b,0x2d,0xb0,0x24,0x2c,0xb1,0x03,0x20,0x2b,0x2d,0xb0,0x25,0x2c,0xb1,0x04,0x20,0x2b,0x2d,0xb0,0x26,0x2c,0xb1,0x05,0x20,0x2b,0x2d,0xb0,0x27,0x2c,0xb1,0x06,0x20,0x2b,0x2d,0xb0,0x28,0x2c,0xb1,0x07,0x20,0x2b,0x2d,0xb0,0x29,0x2c,0xb1,0x08,0x20,0x2b,0x2d, +0xb0,0x2a,0x2c,0xb1,0x09,0x20,0x2b,0x2d,0xb0,0x2e,0x2c,0x20,0x3c,0xb0,0x01,0x60,0x2d,0xb0,0x2f,0x2c,0x20,0x60,0xb0,0x18,0x60,0x20,0x43,0x23,0xb0,0x01,0x60,0x43,0xb0,0x02,0x25,0x61,0xb0,0x01,0x60,0xb0,0x2e,0x2a,0x21,0x2d,0xb0,0x30,0x2c,0xb0,0x2f,0x2b,0xb0,0x2f,0x2a,0x2d,0xb0,0x31,0x2c,0x20,0x20,0x47,0x20,0x20,0xb0,0x0e, +0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x23,0x61,0x38,0x23,0x20,0x8a,0x55,0x58,0x20,0x47,0x20,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x23,0x61,0x38,0x1b,0x21,0x59,0x2d,0xb0,0x32,0x2c, +0x00,0xb1,0x00,0x02,0x45,0x54,0x58,0xb1,0x0e,0x06,0x45,0x42,0xb0,0x01,0x16,0xb0,0x31,0x2a,0xb1,0x05,0x01,0x15,0x45,0x58,0x30,0x59,0x1b,0x22,0x59,0x2d,0xb0,0x33,0x2c,0x00,0xb0,0x0f,0x2b,0xb1,0x00,0x02,0x45,0x54,0x58,0xb1,0x0e,0x06,0x45,0x42,0xb0,0x01,0x16,0xb0,0x31,0x2a,0xb1,0x05,0x01,0x15,0x45,0x58,0x30,0x59,0x1b,0x22, +0x59,0x2d,0xb0,0x34,0x2c,0x20,0x35,0xb0,0x01,0x60,0x2d,0xb0,0x35,0x2c,0x00,0xb1,0x0e,0x06,0x45,0x42,0xb0,0x01,0x45,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0xb0,0x01,0x2b,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01, +0x63,0xb0,0x01,0x2b,0xb0,0x00,0x16,0xb4,0x00,0x00,0x00,0x00,0x00,0x44,0x3e,0x23,0x38,0xb1,0x34,0x01,0x15,0x2a,0x21,0x2d,0xb0,0x36,0x2c,0x20,0x3c,0x20,0x47,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0xb0,0x00,0x43,0x61,0x38,0x2d,0xb0,0x37,0x2c,0x2e, +0x17,0x3c,0x2d,0xb0,0x38,0x2c,0x20,0x3c,0x20,0x47,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0xb0,0x00,0x43,0x61,0xb0,0x01,0x43,0x63,0x38,0x2d,0xb0,0x39,0x2c,0xb1,0x02,0x00,0x16,0x25,0x20,0x2e,0x20,0x47,0xb0,0x00,0x23,0x42,0xb0,0x02,0x25,0x49,0x8a, +0x8a,0x47,0x23,0x47,0x23,0x61,0x20,0x58,0x62,0x1b,0x21,0x59,0xb0,0x01,0x23,0x42,0xb2,0x38,0x01,0x01,0x15,0x14,0x2a,0x2d,0xb0,0x3a,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0xb0,0x04,0x25,0xb0,0x04,0x25,0x47,0x23,0x47,0x23,0x61,0xb1,0x0c,0x00,0x42,0xb0,0x0b,0x43,0x2b,0x65,0x8a,0x2e,0x23,0x20,0x20,0x3c,0x8a,0x38,0x2d,0xb0, +0x3b,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0xb0,0x04,0x25,0xb0,0x04,0x25,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x20,0xb0,0x06,0x23,0x42,0xb1,0x0c,0x00,0x42,0xb0,0x0b,0x43,0x2b,0x20,0xb0,0x60,0x50,0x58,0x20,0xb0,0x40,0x51,0x58,0xb3,0x04,0x20,0x05,0x20,0x1b,0xb3,0x04,0x26,0x05,0x1a,0x59,0x42,0x42,0x23,0x20,0xb0,0x0a,0x43, +0x20,0x8a,0x23,0x47,0x23,0x47,0x23,0x61,0x23,0x46,0x60,0xb0,0x06,0x43,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x20,0xb0,0x01,0x2b,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x04,0x43,0x60,0x64,0x23,0xb0,0x05,0x43,0x61,0x64,0x50,0x58,0xb0,0x04,0x43,0x61,0x1b,0xb0,0x05,0x43,0x60,0x59,0xb0, +0x03,0x25,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x61,0x23,0x20,0x20,0xb0,0x04,0x26,0x23,0x46,0x61,0x38,0x1b,0x23,0xb0,0x0a,0x43,0x46,0xb0,0x02,0x25,0xb0,0x0a,0x43,0x47,0x23,0x47,0x23,0x61,0x60,0x20,0xb0,0x06,0x43,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66, +0xb0,0x01,0x63,0x60,0x23,0x20,0xb0,0x01,0x2b,0x23,0xb0,0x06,0x43,0x60,0xb0,0x01,0x2b,0xb0,0x05,0x25,0x61,0xb0,0x05,0x25,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0xb0,0x04,0x26,0x61,0x20,0xb0,0x04,0x25,0x60,0x64,0x23,0xb0,0x03,0x25,0x60,0x64,0x50,0x58,0x21,0x1b,0x23,0x21,0x59,0x23, +0x20,0x20,0xb0,0x04,0x26,0x23,0x46,0x61,0x38,0x59,0x2d,0xb0,0x3c,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0x20,0x20,0x20,0xb0,0x05,0x26,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x23,0x3c,0x38,0x2d,0xb0,0x3d,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0x20,0xb0,0x0a,0x23,0x42,0x20,0x20,0x20,0x46,0x23,0x47,0xb0,0x01,0x2b,0x23,0x61, +0x38,0x2d,0xb0,0x3e,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0xb0,0x03,0x25,0xb0,0x02,0x25,0x47,0x23,0x47,0x23,0x61,0xb0,0x00,0x54,0x58,0x2e,0x20,0x3c,0x23,0x21,0x1b,0xb0,0x02,0x25,0xb0,0x02,0x25,0x47,0x23,0x47,0x23,0x61,0x20,0xb0,0x05,0x25,0xb0,0x04,0x25,0x47,0x23,0x47,0x23,0x61,0xb0,0x06,0x25,0xb0,0x05,0x25,0x49,0xb0, +0x02,0x25,0x61,0xb9,0x08,0x00,0x08,0x00,0x63,0x63,0x23,0x20,0x58,0x62,0x1b,0x21,0x59,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x23,0x2e,0x23,0x20,0x20,0x3c,0x8a,0x38,0x23,0x21,0x59,0x2d,0xb0,0x3f,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0x20,0xb0,0x0a,0x43,0x20,0x2e, +0x47,0x23,0x47,0x23,0x61,0x20,0x60,0xb0,0x20,0x60,0x66,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x23,0x20,0x20,0x3c,0x8a,0x38,0x2d,0xb0,0x40,0x2c,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d, +0xb0,0x41,0x2c,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x52,0x1b,0x50,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x42,0x2c,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43, +0x58,0x52,0x1b,0x50,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x43,0x2c,0xb0,0x3a,0x2b,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x44,0x2c,0xb0,0x3b,0x2b,0x8a,0x20,0x20,0x3c,0xb0,0x06,0x23,0x42,0x8a, +0x38,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0xb0,0x06,0x43,0x2e,0xb0,0x30,0x2b,0x2d,0xb0,0x45,0x2c,0xb0,0x00,0x16,0xb0,0x04,0x25,0xb0,0x04,0x26,0x20,0x20,0x20,0x46,0x23,0x47,0x61,0xb0,0x0c,0x23,0x42,0x2e,0x47,0x23,0x47,0x23,0x61, +0xb0,0x0b,0x43,0x2b,0x23,0x20,0x3c,0x20,0x2e,0x23,0x38,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x46,0x2c,0xb1,0x0a,0x04,0x25,0x42,0xb0,0x00,0x16,0xb0,0x04,0x25,0xb0,0x04,0x25,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x20,0xb0,0x06,0x23,0x42,0xb1,0x0c,0x00,0x42,0xb0,0x0b,0x43,0x2b,0x20,0xb0,0x60,0x50,0x58,0x20,0xb0,0x40,0x51,0x58, +0xb3,0x04,0x20,0x05,0x20,0x1b,0xb3,0x04,0x26,0x05,0x1a,0x59,0x42,0x42,0x23,0x20,0x47,0xb0,0x06,0x43,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x20,0xb0,0x01,0x2b,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x04,0x43,0x60,0x64,0x23,0xb0,0x05,0x43,0x61,0x64,0x50,0x58,0xb0,0x04,0x43,0x61,0x1b, +0xb0,0x05,0x43,0x60,0x59,0xb0,0x03,0x25,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x61,0xb0,0x02,0x25,0x46,0x61,0x38,0x23,0x20,0x3c,0x23,0x38,0x1b,0x21,0x20,0x20,0x46,0x23,0x47,0xb0,0x01,0x2b,0x23,0x61,0x38,0x21,0x59,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x47,0x2c,0xb1,0x00,0x3a,0x2b, +0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x48,0x2c,0xb1,0x00,0x3b,0x2b,0x21,0x23,0x20,0x20,0x3c,0xb0,0x06,0x23,0x42,0x23,0x38,0xb1,0x30,0x01,0x14,0x2b,0xb0,0x06,0x43,0x2e,0xb0,0x30,0x2b,0x2d,0xb0,0x49,0x2c,0xb0,0x00,0x15,0x20,0x47,0xb0,0x00,0x23,0x42,0xb2,0x00,0x01,0x01,0x15,0x14,0x13,0x2e,0xb0,0x36,0x2a,0x2d,0xb0,0x4a, +0x2c,0xb0,0x00,0x15,0x20,0x47,0xb0,0x00,0x23,0x42,0xb2,0x00,0x01,0x01,0x15,0x14,0x13,0x2e,0xb0,0x36,0x2a,0x2d,0xb0,0x4b,0x2c,0xb1,0x00,0x01,0x14,0x13,0xb0,0x37,0x2a,0x2d,0xb0,0x4c,0x2c,0xb0,0x39,0x2a,0x2d,0xb0,0x4d,0x2c,0xb0,0x00,0x16,0x45,0x23,0x20,0x2e,0x20,0x46,0x8a,0x23,0x61,0x38,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0, +0x4e,0x2c,0xb0,0x0a,0x23,0x42,0xb0,0x4d,0x2b,0x2d,0xb0,0x4f,0x2c,0xb2,0x00,0x00,0x46,0x2b,0x2d,0xb0,0x50,0x2c,0xb2,0x00,0x01,0x46,0x2b,0x2d,0xb0,0x51,0x2c,0xb2,0x01,0x00,0x46,0x2b,0x2d,0xb0,0x52,0x2c,0xb2,0x01,0x01,0x46,0x2b,0x2d,0xb0,0x53,0x2c,0xb2,0x00,0x00,0x47,0x2b,0x2d,0xb0,0x54,0x2c,0xb2,0x00,0x01,0x47,0x2b,0x2d, +0xb0,0x55,0x2c,0xb2,0x01,0x00,0x47,0x2b,0x2d,0xb0,0x56,0x2c,0xb2,0x01,0x01,0x47,0x2b,0x2d,0xb0,0x57,0x2c,0xb3,0x00,0x00,0x00,0x43,0x2b,0x2d,0xb0,0x58,0x2c,0xb3,0x00,0x01,0x00,0x43,0x2b,0x2d,0xb0,0x59,0x2c,0xb3,0x01,0x00,0x00,0x43,0x2b,0x2d,0xb0,0x5a,0x2c,0xb3,0x01,0x01,0x00,0x43,0x2b,0x2d,0xb0,0x5b,0x2c,0xb3,0x00,0x00, +0x01,0x43,0x2b,0x2d,0xb0,0x5c,0x2c,0xb3,0x00,0x01,0x01,0x43,0x2b,0x2d,0xb0,0x5d,0x2c,0xb3,0x01,0x00,0x01,0x43,0x2b,0x2d,0xb0,0x5e,0x2c,0xb3,0x01,0x01,0x01,0x43,0x2b,0x2d,0xb0,0x5f,0x2c,0xb2,0x00,0x00,0x45,0x2b,0x2d,0xb0,0x60,0x2c,0xb2,0x00,0x01,0x45,0x2b,0x2d,0xb0,0x61,0x2c,0xb2,0x01,0x00,0x45,0x2b,0x2d,0xb0,0x62,0x2c, +0xb2,0x01,0x01,0x45,0x2b,0x2d,0xb0,0x63,0x2c,0xb2,0x00,0x00,0x48,0x2b,0x2d,0xb0,0x64,0x2c,0xb2,0x00,0x01,0x48,0x2b,0x2d,0xb0,0x65,0x2c,0xb2,0x01,0x00,0x48,0x2b,0x2d,0xb0,0x66,0x2c,0xb2,0x01,0x01,0x48,0x2b,0x2d,0xb0,0x67,0x2c,0xb3,0x00,0x00,0x00,0x44,0x2b,0x2d,0xb0,0x68,0x2c,0xb3,0x00,0x01,0x00,0x44,0x2b,0x2d,0xb0,0x69, +0x2c,0xb3,0x01,0x00,0x00,0x44,0x2b,0x2d,0xb0,0x6a,0x2c,0xb3,0x01,0x01,0x00,0x44,0x2b,0x2d,0xb0,0x6b,0x2c,0xb3,0x00,0x00,0x01,0x44,0x2b,0x2d,0xb0,0x6c,0x2c,0xb3,0x00,0x01,0x01,0x44,0x2b,0x2d,0xb0,0x6d,0x2c,0xb3,0x01,0x00,0x01,0x44,0x2b,0x2d,0xb0,0x6e,0x2c,0xb3,0x01,0x01,0x01,0x44,0x2b,0x2d,0xb0,0x6f,0x2c,0xb1,0x00,0x3c, +0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x70,0x2c,0xb1,0x00,0x3c,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x71,0x2c,0xb1,0x00,0x3c,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x72,0x2c,0xb0,0x00,0x16,0xb1,0x00,0x3c,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x73,0x2c,0xb1,0x01,0x3c,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x74,0x2c,0xb1,0x01,0x3c,0x2b,0xb0,0x41, +0x2b,0x2d,0xb0,0x75,0x2c,0xb0,0x00,0x16,0xb1,0x01,0x3c,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x76,0x2c,0xb1,0x00,0x3d,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x77,0x2c,0xb1,0x00,0x3d,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x78,0x2c,0xb1,0x00,0x3d,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x79,0x2c,0xb1,0x00,0x3d,0x2b,0xb0,0x42,0x2b,0x2d,0xb0, +0x7a,0x2c,0xb1,0x01,0x3d,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x7b,0x2c,0xb1,0x01,0x3d,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x7c,0x2c,0xb1,0x01,0x3d,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x7d,0x2c,0xb1,0x00,0x3e,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x7e,0x2c,0xb1,0x00,0x3e,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x7f,0x2c,0xb1,0x00,0x3e,0x2b, +0xb0,0x41,0x2b,0x2d,0xb0,0x80,0x2c,0xb1,0x00,0x3e,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x81,0x2c,0xb1,0x01,0x3e,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x82,0x2c,0xb1,0x01,0x3e,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x83,0x2c,0xb1,0x01,0x3e,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x84,0x2c,0xb1,0x00,0x3f,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x85, +0x2c,0xb1,0x00,0x3f,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x86,0x2c,0xb1,0x00,0x3f,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x87,0x2c,0xb1,0x00,0x3f,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x88,0x2c,0xb1,0x01,0x3f,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x89,0x2c,0xb1,0x01,0x3f,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x8a,0x2c,0xb1,0x01,0x3f,0x2b,0xb0,0x42,0x2b,0x2d, +0xb0,0x8b,0x2c,0xb2,0x0b,0x00,0x03,0x45,0x50,0x58,0xb0,0x06,0x1b,0xb2,0x04,0x02,0x03,0x45,0x58,0x23,0x21,0x1b,0x21,0x59,0x59,0x42,0x2b,0xb0,0x08,0x65,0xb0,0x03,0x24,0x50,0x78,0xb1,0x05,0x01,0x15,0x45,0x58,0x30,0x59,0x2d,0x00,0x4b,0xb8,0x00,0xc8,0x52,0x58,0xb1,0x01,0x01,0x8e,0x59,0xb0,0x01,0xb9,0x08,0x00,0x08,0x00,0x63, +0x70,0xb1,0x00,0x07,0x42,0xb6,0x00,0x00,0x41,0x31,0x21,0x05,0x00,0x2a,0xb1,0x00,0x07,0x42,0x40,0x0c,0x4e,0x04,0x46,0x04,0x36,0x08,0x26,0x08,0x18,0x07,0x05,0x0a,0x2a,0xb1,0x00,0x07,0x42,0x40,0x0c,0x52,0x02,0x4a,0x02,0x3e,0x06,0x2e,0x06,0x1f,0x05,0x05,0x0a,0x2a,0xb1,0x00,0x0c,0x42,0xbe,0x13,0xc0,0x11,0xc0,0x0d,0xc0,0x09, +0xc0,0x06,0x40,0x00,0x05,0x00,0x0b,0x2a,0xb1,0x00,0x11,0x42,0xbe,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x05,0x00,0x0b,0x2a,0xb9,0x00,0x03,0x00,0x00,0x44,0xb1,0x24,0x01,0x88,0x51,0x58,0xb0,0x40,0x88,0x58,0xb9,0x00,0x03,0x00,0x64,0x44,0xb1,0x28,0x01,0x88,0x51,0x58,0xb8,0x08,0x00,0x88,0x58,0xb9,0x00,0x03, +0x00,0x00,0x44,0x59,0x1b,0xb1,0x27,0x01,0x88,0x51,0x58,0xba,0x08,0x80,0x00,0x01,0x04,0x40,0x88,0x63,0x54,0x58,0xb9,0x00,0x03,0x00,0x00,0x44,0x59,0x59,0x59,0x59,0x59,0x40,0x0c,0x50,0x02,0x48,0x02,0x38,0x06,0x28,0x06,0x1a,0x05,0x05,0x0e,0x2a,0xb8,0x01,0xff,0x85,0xb0,0x04,0x8d,0xb1,0x02,0x00,0x44,0xb3,0x05,0x64,0x06,0x00, +0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5a,0x00,0x5a,0x00,0x50,0x00,0x50,0x02,0xda,0x00,0x00,0x02,0x26,0x00,0x00, +0xff,0x4c,0x02,0xe4,0xff,0xf6,0x02,0x30,0xff,0xf8,0xff,0x4c,0x00,0x5a,0x00,0x5a,0x00,0x50,0x00,0x50,0x02,0xda,0x00,0x00,0x02,0xda,0x02,0x26,0x00,0x00,0xff,0x4c,0x02,0xe4,0xff,0xf6,0x02,0xe4,0x02,0x2e,0xff,0xf8,0xff,0x4c,0x00,0x5a,0x00,0x5a,0x00,0x50,0x00,0x50,0x02,0xda,0x00,0x00,0x02,0xda,0x02,0x26,0x00,0x00,0xff,0x4c, +0x02,0xe4,0xff,0xf6,0x03,0x09,0x02,0x30,0xff,0xf8,0xff,0x4c,0x00,0x47,0x00,0x47,0x00,0x40,0x00,0x40,0x01,0x3b,0xff,0x7b,0x01,0x40,0xff,0x76,0x00,0x47,0x00,0x47,0x00,0x40,0x00,0x40,0x03,0x3e,0x01,0x7e,0x03,0x43,0x01,0x79,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xec,0x00,0x00,0x01,0x04, +0x00,0x00,0x01,0x1c,0x00,0x00,0x01,0x3c,0x00,0x00,0x01,0x54,0x00,0x00,0x01,0x6c,0x00,0x00,0x01,0x84,0x00,0x00,0x01,0x9c,0x00,0x00,0x01,0xb4,0x00,0x00,0x01,0xcc,0x00,0x00,0x01,0xec,0x00,0x00,0x02,0x04,0x00,0x00,0x02,0x1c,0x00,0x00,0x02,0x34,0x00,0x00,0x02,0x4c,0x00,0x00,0x02,0x64,0x00,0x00,0x02,0x7c,0x00,0x00,0x02,0x94, +0x00,0x00,0x02,0xac,0x00,0x00,0x03,0x78,0x00,0x00,0x03,0x90,0x00,0x00,0x03,0xa8,0x00,0x00,0x04,0x28,0x00,0x00,0x04,0x40,0x00,0x00,0x04,0xe0,0x00,0x00,0x05,0x70,0x00,0x00,0x05,0x88,0x00,0x00,0x05,0xa0,0x00,0x00,0x06,0xb8,0x00,0x00,0x06,0xd0,0x00,0x00,0x06,0xe8,0x00,0x00,0x07,0x58,0x00,0x00,0x07,0xe8,0x00,0x00,0x08,0x00, +0x00,0x00,0x08,0x90,0x00,0x00,0x08,0xec,0x00,0x00,0x09,0x04,0x00,0x00,0x09,0x1c,0x00,0x00,0x09,0x34,0x00,0x00,0x09,0x4c,0x00,0x00,0x09,0x64,0x00,0x00,0x09,0x84,0x00,0x00,0x09,0x9c,0x00,0x00,0x09,0xb4,0x00,0x00,0x09,0xcc,0x00,0x00,0x09,0xe4,0x00,0x00,0x09,0xfc,0x00,0x00,0x0a,0x14,0x00,0x00,0x0a,0x2c,0x00,0x00,0x0a,0x44, +0x00,0x00,0x0a,0x5c,0x00,0x00,0x0b,0x20,0x00,0x00,0x0b,0xf0,0x00,0x00,0x0c,0x08,0x00,0x00,0x0c,0x5c,0x00,0x00,0x0c,0xf4,0x00,0x00,0x0d,0x0c,0x00,0x00,0x0d,0x24,0x00,0x00,0x0d,0x3c,0x00,0x00,0x0d,0x54,0x00,0x00,0x0d,0x6c,0x00,0x00,0x0d,0x84,0x00,0x00,0x0d,0xd8,0x00,0x00,0x0e,0x58,0x00,0x00,0x0e,0x70,0x00,0x00,0x0e,0xc4, +0x00,0x00,0x0e,0xdc,0x00,0x00,0x0e,0xf4,0x00,0x00,0x0f,0x0c,0x00,0x00,0x0f,0x24,0x00,0x00,0x0f,0x3c,0x00,0x00,0x0f,0x54,0x00,0x00,0x0f,0x6c,0x00,0x00,0x0f,0x84,0x00,0x00,0x0f,0x9c,0x00,0x00,0x10,0x50,0x00,0x00,0x10,0x68,0x00,0x00,0x10,0xcc,0x00,0x00,0x10,0xe4,0x00,0x00,0x11,0x44,0x00,0x00,0x11,0x5c,0x00,0x00,0x11,0x98, +0x00,0x00,0x11,0xb0,0x00,0x00,0x11,0xc8,0x00,0x00,0x11,0xe0,0x00,0x00,0x12,0x04,0x00,0x00,0x12,0x64,0x00,0x00,0x12,0xdc,0x00,0x00,0x13,0x40,0x00,0x00,0x13,0x58,0x00,0x00,0x13,0x70,0x00,0x00,0x13,0x88,0x00,0x00,0x14,0x08,0x00,0x00,0x14,0x20,0x00,0x00,0x14,0xa4,0x00,0x00,0x14,0xbc,0x00,0x00,0x14,0xd4,0x00,0x00,0x14,0xec, +0x00,0x00,0x15,0x04,0x00,0x00,0x15,0x24,0x00,0x00,0x15,0x3c,0x00,0x00,0x15,0x54,0x00,0x00,0x15,0x6c,0x00,0x00,0x15,0x84,0x00,0x00,0x15,0x9c,0x00,0x00,0x15,0xb4,0x00,0x00,0x15,0xcc,0x00,0x00,0x16,0x74,0x00,0x00,0x16,0x8c,0x00,0x00,0x16,0xa4,0x00,0x00,0x16,0xbc,0x00,0x00,0x16,0xd4,0x00,0x00,0x16,0xec,0x00,0x00,0x17,0x04, +0x00,0x00,0x17,0x1c,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0xec,0x00,0x00,0x19,0x04,0x00,0x00,0x19,0x1c,0x00,0x00,0x1a,0x7c,0x00,0x00,0x1a,0xe8,0x00,0x00,0x1b,0x5c,0x00,0x00,0x1b,0xfc,0x00,0x00,0x1c,0x7c,0x00,0x00,0x1c,0x94,0x00,0x00,0x1c,0xac,0x00,0x00,0x1c,0xc4,0x00,0x00,0x1d,0x78,0x00,0x00,0x1d,0x90,0x00,0x00,0x1d,0xa8, +0x00,0x00,0x1e,0xe4,0x00,0x00,0x1e,0xfc,0x00,0x00,0x1f,0x14,0x00,0x00,0x1f,0xac,0x00,0x00,0x20,0x4c,0x00,0x00,0x20,0x90,0x00,0x00,0x20,0xf4,0x00,0x00,0x21,0x0c,0x00,0x00,0x21,0xc8,0x00,0x00,0x21,0xe0,0x00,0x00,0x22,0x40,0x00,0x00,0x22,0x58,0x00,0x00,0x22,0x70,0x00,0x00,0x22,0x88,0x00,0x00,0x22,0xa0,0x00,0x00,0x22,0xb8, +0x00,0x00,0x22,0xd0,0x00,0x00,0x22,0xe8,0x00,0x00,0x23,0x6c,0x00,0x00,0x23,0x84,0x00,0x00,0x23,0x9c,0x00,0x00,0x23,0xb4,0x00,0x00,0x23,0xcc,0x00,0x00,0x23,0xe4,0x00,0x00,0x23,0xfc,0x00,0x00,0x24,0x14,0x00,0x00,0x24,0xcc,0x00,0x00,0x24,0xe4,0x00,0x00,0x24,0xfc,0x00,0x00,0x25,0x54,0x00,0x00,0x25,0xe8,0x00,0x00,0x26,0x00, +0x00,0x00,0x26,0x18,0x00,0x00,0x26,0x30,0x00,0x00,0x26,0x48,0x00,0x00,0x26,0xc4,0x00,0x00,0x27,0x24,0x00,0x00,0x27,0x3c,0x00,0x00,0x27,0x54,0x00,0x00,0x27,0x6c,0x00,0x00,0x27,0x84,0x00,0x00,0x27,0x9c,0x00,0x00,0x27,0xb4,0x00,0x00,0x27,0xcc,0x00,0x00,0x27,0xe4,0x00,0x00,0x28,0x3c,0x00,0x00,0x28,0x54,0x00,0x00,0x28,0x6c, +0x00,0x00,0x28,0x84,0x00,0x00,0x29,0x10,0x00,0x00,0x29,0x28,0x00,0x00,0x29,0x40,0x00,0x00,0x29,0x58,0x00,0x00,0x29,0x70,0x00,0x00,0x29,0xcc,0x00,0x00,0x29,0xe4,0x00,0x00,0x2a,0x94,0x00,0x00,0x2b,0x88,0x00,0x00,0x2b,0xa0,0x00,0x00,0x2b,0xb8,0x00,0x00,0x2b,0xd0,0x00,0x00,0x2b,0xf0,0x00,0x00,0x2c,0x08,0x00,0x00,0x2c,0x20, +0x00,0x00,0x2c,0x38,0x00,0x00,0x2c,0x50,0x00,0x00,0x2c,0x68,0x00,0x00,0x2c,0x80,0x00,0x00,0x2c,0xa0,0x00,0x00,0x2c,0xb8,0x00,0x00,0x2c,0xd0,0x00,0x00,0x2c,0xe8,0x00,0x00,0x2d,0x00,0x00,0x00,0x2d,0x18,0x00,0x00,0x2d,0x30,0x00,0x00,0x2d,0x48,0x00,0x00,0x2d,0x60,0x00,0x00,0x2e,0xe0,0x00,0x00,0x2e,0xf8,0x00,0x00,0x2f,0x10, +0x00,0x00,0x30,0x6c,0x00,0x00,0x30,0x84,0x00,0x00,0x31,0x54,0x00,0x00,0x31,0xe4,0x00,0x00,0x31,0xfc,0x00,0x00,0x32,0x14,0x00,0x00,0x33,0x2c,0x00,0x00,0x33,0x44,0x00,0x00,0x33,0x5c,0x00,0x00,0x34,0x2c,0x00,0x00,0x35,0x00,0x00,0x00,0x35,0xf8,0x00,0x00,0x36,0xf0,0x00,0x00,0x37,0x94,0x00,0x00,0x37,0xac,0x00,0x00,0x37,0xc4, +0x00,0x00,0x37,0xdc,0x00,0x00,0x37,0xf4,0x00,0x00,0x38,0x0c,0x00,0x00,0x38,0x2c,0x00,0x00,0x38,0x44,0x00,0x00,0x38,0x5c,0x00,0x00,0x38,0x74,0x00,0x00,0x38,0x8c,0x00,0x00,0x38,0xa4,0x00,0x00,0x38,0xbc,0x00,0x00,0x38,0xd4,0x00,0x00,0x38,0xec,0x00,0x00,0x39,0x04,0x00,0x00,0x3a,0x0c,0x00,0x00,0x3a,0x24,0x00,0x00,0x3a,0xc4, +0x00,0x00,0x3b,0x28,0x00,0x00,0x3c,0x10,0x00,0x00,0x3c,0x28,0x00,0x00,0x3c,0x40,0x00,0x00,0x3c,0x58,0x00,0x00,0x3c,0x70,0x00,0x00,0x3c,0x88,0x00,0x00,0x3c,0xa0,0x00,0x00,0x3d,0x10,0x00,0x00,0x3d,0x20,0x00,0x00,0x3d,0x44,0x00,0x00,0x3d,0x5c,0x00,0x00,0x3d,0xa8,0x00,0x00,0x3d,0xc0,0x00,0x00,0x3d,0xd8,0x00,0x00,0x3d,0xf0, +0x00,0x00,0x3e,0x08,0x00,0x00,0x3e,0x20,0x00,0x00,0x3e,0x38,0x00,0x00,0x3e,0x58,0x00,0x00,0x3e,0x70,0x00,0x00,0x3e,0x88,0x00,0x00,0x3e,0xa0,0x00,0x00,0x3f,0xc8,0x00,0x00,0x3f,0xe0,0x00,0x00,0x3f,0xf8,0x00,0x00,0x40,0x50,0x00,0x00,0x40,0x68,0x00,0x00,0x40,0xcc,0x00,0x00,0x40,0xe4,0x00,0x00,0x40,0xf4,0x00,0x00,0x41,0x4c, +0x00,0x00,0x41,0x64,0x00,0x00,0x41,0xe0,0x00,0x00,0x41,0xf8,0x00,0x00,0x42,0x10,0x00,0x00,0x42,0x34,0x00,0x00,0x42,0xa4,0x00,0x00,0x43,0x64,0x00,0x00,0x43,0xf4,0x00,0x00,0x44,0x0c,0x00,0x00,0x44,0x30,0x00,0x00,0x44,0x48,0x00,0x00,0x44,0x60,0x00,0x00,0x45,0x14,0x00,0x00,0x45,0x2c,0x00,0x00,0x45,0xac,0x00,0x00,0x45,0xc4, +0x00,0x00,0x45,0xdc,0x00,0x00,0x45,0xf4,0x00,0x00,0x46,0x0c,0x00,0x00,0x46,0x24,0x00,0x00,0x46,0x44,0x00,0x00,0x46,0x5c,0x00,0x00,0x46,0x74,0x00,0x00,0x46,0x8c,0x00,0x00,0x46,0xa4,0x00,0x00,0x46,0xbc,0x00,0x00,0x46,0xd4,0x00,0x00,0x46,0xec,0x00,0x00,0x47,0xc8,0x00,0x00,0x47,0xe0,0x00,0x00,0x47,0xf8,0x00,0x00,0x48,0x10, +0x00,0x00,0x48,0x28,0x00,0x00,0x48,0x40,0x00,0x00,0x48,0x58,0x00,0x00,0x48,0x70,0x00,0x00,0x49,0x54,0x00,0x00,0x4a,0x18,0x00,0x00,0x4a,0x30,0x00,0x00,0x4a,0x48,0x00,0x00,0x4b,0x50,0x00,0x00,0x4c,0x1c,0x00,0x00,0x4c,0xf0,0x00,0x00,0x4d,0xc0,0x00,0x00,0x4e,0x58,0x00,0x00,0x4e,0x70,0x00,0x00,0x4e,0x88,0x00,0x00,0x4e,0xa0, +0x00,0x00,0x4f,0x50,0x00,0x00,0x4f,0x68,0x00,0x00,0x4f,0x80,0x00,0x00,0x50,0xb4,0x00,0x00,0x50,0xcc,0x00,0x00,0x50,0xe4,0x00,0x00,0x51,0x90,0x00,0x00,0x51,0xdc,0x00,0x00,0x52,0x4c,0x00,0x00,0x52,0xd4,0x00,0x00,0x52,0xf8,0x00,0x00,0x53,0xe8,0x00,0x00,0x54,0x00,0x00,0x00,0x54,0x60,0x00,0x00,0x54,0x78,0x00,0x00,0x54,0x90, +0x00,0x00,0x54,0xa8,0x00,0x00,0x54,0xc0,0x00,0x00,0x54,0xd8,0x00,0x00,0x55,0x04,0x00,0x00,0x55,0x30,0x00,0x00,0x55,0x5c,0x00,0x00,0x55,0x88,0x00,0x00,0x55,0xa0,0x00,0x00,0x55,0xb8,0x00,0x00,0x55,0xd0,0x00,0x00,0x56,0x6c,0x00,0x00,0x56,0x84,0x00,0x00,0x56,0x9c,0x00,0x00,0x56,0xb4,0x00,0x00,0x56,0xcc,0x00,0x00,0x56,0xe4, +0x00,0x00,0x56,0xfc,0x00,0x00,0x57,0x14,0x00,0x00,0x57,0xc8,0x00,0x00,0x57,0xe0,0x00,0x00,0x57,0xf8,0x00,0x00,0x58,0x50,0x00,0x00,0x58,0xe8,0x00,0x00,0x59,0x00,0x00,0x00,0x59,0x18,0x00,0x00,0x59,0x30,0x00,0x00,0x59,0x48,0x00,0x00,0x59,0xc4,0x00,0x00,0x5a,0x24,0x00,0x00,0x5a,0x3c,0x00,0x00,0x5a,0x54,0x00,0x00,0x5a,0x6c, +0x00,0x00,0x5a,0x84,0x00,0x00,0x5a,0x9c,0x00,0x00,0x5a,0xb4,0x00,0x00,0x5a,0xcc,0x00,0x00,0x5a,0xe4,0x00,0x00,0x5b,0x3c,0x00,0x00,0x5b,0x54,0x00,0x00,0x5b,0x6c,0x00,0x00,0x5b,0x84,0x00,0x00,0x5b,0x94,0x00,0x00,0x5b,0xe0,0x00,0x00,0x5b,0xf8,0x00,0x00,0x5c,0x10,0x00,0x00,0x5c,0x28,0x00,0x00,0x5c,0x4c,0x00,0x00,0x5c,0xbc, +0x00,0x00,0x5d,0x48,0x00,0x00,0x5d,0xe8,0x00,0x00,0x5e,0x0c,0x00,0x00,0x5f,0x20,0x00,0x00,0x5f,0x38,0x00,0x00,0x60,0xbc,0x00,0x00,0x60,0xd4,0x00,0x00,0x60,0xec,0x00,0x00,0x61,0x04,0x00,0x00,0x61,0x1c,0x00,0x00,0x61,0x34,0x00,0x00,0x61,0x4c,0x00,0x00,0x61,0x64,0x00,0x00,0x62,0x04,0x00,0x00,0x62,0x1c,0x00,0x00,0x62,0x90, +0x00,0x00,0x62,0xa8,0x00,0x00,0x62,0xc0,0x00,0x00,0x62,0xd8,0x00,0x00,0x63,0x7c,0x00,0x00,0x64,0x04,0x00,0x00,0x64,0xd0,0x00,0x00,0x65,0x5c,0x00,0x00,0x65,0x74,0x00,0x00,0x65,0x8c,0x00,0x00,0x65,0xa4,0x00,0x00,0x65,0xbc,0x00,0x00,0x66,0x1c,0x00,0x00,0x66,0x34,0x00,0x00,0x66,0x44,0x00,0x00,0x66,0xb8,0x00,0x00,0x67,0x64, +0x00,0x00,0x67,0x7c,0x00,0x00,0x67,0x94,0x00,0x00,0x67,0xac,0x00,0x00,0x68,0x1c,0x00,0x00,0x68,0x34,0x00,0x00,0x68,0x4c,0x00,0x00,0x68,0x64,0x00,0x00,0x68,0x7c,0x00,0x00,0x68,0x94,0x00,0x00,0x68,0xac,0x00,0x00,0x68,0xc4,0x00,0x00,0x68,0xdc,0x00,0x00,0x69,0x6c,0x00,0x00,0x6a,0x28,0x00,0x00,0x6b,0x0c,0x00,0x00,0x6b,0xdc, +0x00,0x00,0x6d,0x00,0x00,0x00,0x6d,0xcc,0x00,0x00,0x6e,0x8c,0x00,0x00,0x6f,0x9c,0x00,0x00,0x70,0x80,0x00,0x00,0x70,0x98,0x00,0x00,0x70,0xb0,0x00,0x00,0x70,0xc8,0x00,0x00,0x70,0xe0,0x00,0x00,0x70,0xf8,0x00,0x00,0x71,0xd0,0x00,0x00,0x72,0xb8,0x00,0x00,0x73,0xc0,0x00,0x00,0x74,0xc8,0x00,0x00,0x76,0x48,0x00,0x00,0x76,0xcc, +0x00,0x00,0x77,0x44,0x00,0x00,0x77,0xac,0x00,0x00,0x78,0xa8,0x00,0x00,0x79,0x30,0x00,0x00,0x79,0x40,0x00,0x00,0x79,0xb8,0x00,0x00,0x79,0xc8,0x00,0x00,0x7a,0x08,0x00,0x00,0x7a,0x20,0x00,0x00,0x7a,0x8c,0x00,0x00,0x7b,0x0c,0x00,0x00,0x7b,0x1c,0x00,0x00,0x7b,0x34,0x00,0x00,0x7b,0xb8,0x00,0x00,0x7c,0x88,0x00,0x00,0x7c,0xec, +0x00,0x00,0x7d,0x04,0x00,0x00,0x7d,0x14,0x00,0x00,0x7d,0x2c,0x00,0x00,0x7d,0xb4,0x00,0x00,0x7d,0xc4,0x00,0x00,0x7d,0xd4,0x00,0x00,0x7d,0xe4,0x00,0x00,0x7e,0x28,0x00,0x00,0x7e,0x38,0x00,0x00,0x7e,0x48,0x00,0x00,0x7e,0x58,0x00,0x00,0x7e,0xb4,0x00,0x00,0x7e,0xcc,0x00,0x00,0x7f,0xf0,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x5c, +0x00,0x00,0x80,0xb4,0x00,0x00,0x81,0x08,0x00,0x00,0x81,0x6c,0x00,0x00,0x81,0xe4,0x00,0x00,0x82,0x54,0x00,0x00,0x82,0xd0,0x00,0x00,0x83,0x58,0x00,0x00,0x84,0x28,0x00,0x00,0x84,0xb4,0x00,0x00,0x84,0xc4,0x00,0x00,0x85,0x68,0x00,0x00,0x85,0xfc,0x00,0x00,0x86,0x0c,0x00,0x00,0x86,0x24,0x00,0x00,0x86,0x34,0x00,0x00,0x86,0xb0, +0x00,0x00,0x87,0x8c,0x00,0x00,0x88,0x14,0x00,0x00,0x88,0xac,0x00,0x00,0x89,0x08,0x00,0x00,0x89,0x7c,0x00,0x00,0x89,0xe0,0x00,0x00,0x89,0xf0,0x00,0x00,0x8a,0x68,0x00,0x00,0x8a,0xd4,0x00,0x00,0x8b,0x30,0x00,0x00,0x8b,0xd0,0x00,0x00,0x8b,0xe8,0x00,0x00,0x8c,0x00,0x00,0x00,0x8c,0x18,0x00,0x00,0x8c,0x30,0x00,0x00,0x8c,0xcc, +0x00,0x00,0x8c,0xe4,0x00,0x00,0x8d,0x64,0x00,0x00,0x8d,0x74,0x00,0x00,0x8d,0x8c,0x00,0x00,0x8d,0xfc,0x00,0x00,0x8e,0x70,0x00,0x00,0x8e,0x88,0x00,0x00,0x8f,0x60,0x00,0x00,0x8f,0x70,0x00,0x00,0x90,0x14,0x00,0x00,0x90,0xb4,0x00,0x00,0x90,0xf4,0x00,0x00,0x91,0x0c,0x00,0x00,0x91,0x78,0x00,0x00,0x91,0xf8,0x00,0x00,0x92,0x08, +0x00,0x00,0x92,0x20,0x00,0x00,0x92,0x9c,0x00,0x00,0x93,0x68,0x00,0x00,0x93,0xc8,0x00,0x00,0x93,0xe0,0x00,0x00,0x94,0x3c,0x00,0x00,0x94,0x54,0x00,0x00,0x94,0xdc,0x00,0x00,0x95,0x4c,0x00,0x00,0x95,0x9c,0x00,0x00,0x95,0xac,0x00,0x00,0x95,0xf0,0x00,0x00,0x96,0x00,0x00,0x00,0x96,0x10,0x00,0x00,0x96,0x54,0x00,0x00,0x96,0x64, +0x00,0x00,0x96,0x7c,0x00,0x00,0x97,0x34,0x00,0x00,0x97,0x44,0x00,0x00,0x97,0x9c,0x00,0x00,0x97,0xf4,0x00,0x00,0x98,0x48,0x00,0x00,0x98,0xac,0x00,0x00,0x99,0x24,0x00,0x00,0x99,0x90,0x00,0x00,0x9a,0x04,0x00,0x00,0x9a,0x88,0x00,0x00,0x9b,0x8c,0x00,0x00,0x9c,0x14,0x00,0x00,0x9c,0x24,0x00,0x00,0x9c,0xc8,0x00,0x00,0x9d,0x6c, +0x00,0x00,0x9d,0x84,0x00,0x00,0x9d,0x9c,0x00,0x00,0x9d,0xb4,0x00,0x00,0x9e,0x40,0x00,0x00,0x9f,0x18,0x00,0x00,0x9f,0x98,0x00,0x00,0xa0,0x40,0x00,0x00,0xa0,0x9c,0x00,0x00,0xa1,0x08,0x00,0x00,0xa1,0x68,0x00,0x00,0xa1,0x78,0x00,0x00,0xa1,0xf0,0x00,0x00,0xa2,0x5c,0x00,0x00,0xa2,0xb8,0x00,0x00,0xa3,0x5c,0x00,0x00,0xa3,0x74, +0x00,0x00,0xa3,0x8c,0x00,0x00,0xa3,0xa4,0x00,0x00,0xa3,0xbc,0x00,0x00,0xa4,0x58,0x00,0x00,0xa4,0x70,0x00,0x00,0xa4,0x88,0x00,0x00,0xa5,0x08,0x00,0x00,0xa5,0x64,0x00,0x00,0xa5,0x7c,0x00,0x00,0xa5,0xe8,0x00,0x00,0xa5,0xf8,0x00,0x00,0xa6,0x10,0x00,0x00,0xa6,0xbc,0x00,0x00,0xa6,0xcc,0x00,0x00,0xa6,0xdc,0x00,0x00,0xa6,0xec, +0x00,0x00,0xa7,0x50,0x00,0x00,0xa7,0x60,0x00,0x00,0xa7,0x70,0x00,0x00,0xa7,0x80,0x00,0x00,0xa8,0x20,0x00,0x00,0xa8,0x30,0x00,0x00,0xa8,0x40,0x00,0x00,0xa8,0x90,0x00,0x00,0xa8,0xa0,0x00,0x00,0xa8,0xb0,0x00,0x00,0xa9,0x24,0x00,0x00,0xa9,0x34,0x00,0x00,0xa9,0x44,0x00,0x00,0xa9,0x54,0x00,0x00,0xa9,0xbc,0x00,0x00,0xa9,0xcc, +0x00,0x00,0xa9,0xdc,0x00,0x00,0xa9,0xec,0x00,0x00,0xa9,0xfc,0x00,0x00,0xaa,0x78,0x00,0x00,0xab,0x44,0x00,0x00,0xab,0x5c,0x00,0x00,0xab,0x74,0x00,0x00,0xab,0x8c,0x00,0x00,0xab,0xa4,0x00,0x00,0xab,0xbc,0x00,0x00,0xab,0xd4,0x00,0x00,0xab,0xec,0x00,0x00,0xac,0x04,0x00,0x00,0xac,0x1c,0x00,0x00,0xac,0xac,0x00,0x00,0xac,0xbc, +0x00,0x00,0xad,0x48,0x00,0x00,0xae,0x14,0x00,0x00,0xae,0xe8,0x00,0x00,0xaf,0x48,0x00,0x00,0xaf,0xf4,0x00,0x00,0xb0,0xc4,0x00,0x00,0xb1,0x40,0x00,0x00,0xb1,0x50,0x00,0x00,0xb1,0xec,0x00,0x00,0xb2,0x44,0x00,0x00,0xb2,0x54,0x00,0x00,0xb2,0xb0,0x00,0x00,0xb3,0x54,0x00,0x00,0xb3,0x64,0x00,0x00,0xb4,0x2c,0x00,0x00,0xb4,0x3c, +0x00,0x00,0xb4,0xd4,0x00,0x00,0xb5,0x6c,0x00,0x00,0xb5,0xf0,0x00,0x00,0xb6,0x88,0x00,0x00,0xb6,0xe8,0x00,0x00,0xb6,0xf8,0x00,0x00,0xb7,0xa8,0x00,0x00,0xb7,0xb8,0x00,0x00,0xb8,0x30,0x00,0x00,0xb8,0xe4,0x00,0x00,0xb8,0xfc,0x00,0x00,0xb9,0x14,0x00,0x00,0xb9,0x2c,0x00,0x00,0xb9,0x44,0x00,0x00,0xb9,0x5c,0x00,0x00,0xb9,0x74, +0x00,0x00,0xb9,0x8c,0x00,0x00,0xb9,0xa4,0x00,0x00,0xba,0x9c,0x00,0x00,0xbc,0x6c,0x00,0x00,0xbc,0x84,0x00,0x00,0xbd,0x10,0x00,0x00,0xbd,0x20,0x00,0x00,0xbd,0xe4,0x00,0x00,0xbd,0xf4,0x00,0x00,0xbe,0x6c,0x00,0x00,0xbf,0x20,0x00,0x00,0xbf,0x20,0x00,0x00,0xbf,0xac,0x00,0x00,0xc0,0x98,0x00,0x00,0xc1,0x48,0x00,0x00,0xc1,0xe8, +0x00,0x00,0xc2,0x58,0x00,0x00,0xc2,0xc0,0x00,0x00,0xc3,0x90,0x00,0x00,0xc4,0x18,0x00,0x00,0xc4,0x7c,0x00,0x00,0xc5,0x0c,0x00,0x00,0xc5,0xa0,0x00,0x00,0xc5,0xf4,0x00,0x00,0xc6,0x9c,0x00,0x00,0xc7,0x1c,0x00,0x00,0xc7,0xd8,0x00,0x00,0xc8,0x78,0x00,0x00,0xc9,0x50,0x00,0x00,0xca,0x20,0x00,0x00,0xcb,0x18,0x00,0x00,0xcb,0x70, +0x00,0x00,0xcb,0xf0,0x00,0x00,0xcc,0x64,0x00,0x00,0xcd,0x3c,0x00,0x00,0xcd,0xb8,0x00,0x00,0xce,0x3c,0x00,0x00,0xce,0xb8,0x00,0x00,0xd0,0x00,0x00,0x00,0xd1,0x24,0x00,0x00,0xd1,0xd0,0x00,0x00,0xd2,0xf0,0x00,0x00,0xd3,0xc4,0x00,0x00,0xd4,0x54,0x00,0x00,0xd5,0x88,0x00,0x00,0xd6,0x24,0x00,0x00,0xd7,0x24,0x00,0x00,0xd8,0x30, +0x00,0x00,0xd8,0xc4,0x00,0x00,0xd9,0x30,0x00,0x00,0xda,0x80,0x00,0x00,0xdb,0x54,0x00,0x00,0xdc,0x0c,0x00,0x00,0xdd,0x28,0x00,0x00,0xde,0x48,0x00,0x00,0xdf,0x14,0x00,0x00,0xe0,0x10,0x00,0x00,0xe0,0xac,0x00,0x00,0xe1,0x2c,0x00,0x00,0xe1,0xa0,0x00,0x00,0xe2,0x80,0x00,0x00,0xe2,0xf4,0x00,0x00,0xe3,0x84,0x00,0x00,0xe3,0xf0, +0x00,0x00,0xe4,0xa8,0x00,0x00,0xe4,0xfc,0x00,0x00,0xe5,0x80,0x00,0x00,0xe6,0x18,0x00,0x00,0xe6,0x78,0x00,0x00,0xe7,0x08,0x00,0x00,0xe7,0xac,0x00,0x00,0xe8,0x28,0x00,0x00,0xe9,0x0c,0x00,0x00,0xe9,0xac,0x00,0x00,0xea,0x50,0x00,0x00,0xea,0xe4,0x00,0x00,0xeb,0xa4,0x00,0x00,0xec,0x68,0x00,0x00,0xed,0x48,0x00,0x00,0xed,0xf8, +0x00,0x00,0xee,0x18,0x00,0x00,0xee,0x38,0x00,0x00,0xee,0x58,0x00,0x00,0xee,0x78,0x00,0x00,0xee,0x98,0x00,0x00,0xee,0xb8,0x00,0x00,0xee,0xd8,0x00,0x00,0xee,0xf8,0x00,0x00,0xef,0x18,0x00,0x00,0xef,0x38,0x00,0x00,0xef,0x58,0x00,0x00,0xef,0x78,0x00,0x00,0xef,0x98,0x00,0x00,0xef,0xb8,0x00,0x00,0xef,0xd8,0x00,0x00,0xef,0xf8, +0x00,0x00,0xf0,0x18,0x00,0x00,0xf0,0x38,0x00,0x00,0xf0,0x58,0x00,0x00,0xf0,0x78,0x00,0x00,0xf0,0x94,0x00,0x00,0xf0,0xb0,0x00,0x00,0xf0,0xcc,0x00,0x00,0xf0,0xe8,0x00,0x00,0xf1,0x04,0x00,0x00,0xf1,0x20,0x00,0x00,0xf1,0x3c,0x00,0x00,0xf1,0x58,0x00,0x00,0xf1,0x74,0x00,0x00,0xf1,0x90,0x00,0x00,0xf2,0x14,0x00,0x00,0xf2,0x68, +0x00,0x00,0xf2,0xf0,0x00,0x00,0xf3,0x84,0x00,0x00,0xf3,0xe4,0x00,0x00,0xf4,0x70,0x00,0x00,0xf5,0x04,0x00,0x00,0xf5,0x80,0x00,0x00,0xf6,0x58,0x00,0x00,0xf6,0xec,0x00,0x00,0xf7,0x0c,0x00,0x00,0xf7,0x2c,0x00,0x00,0xf7,0x4c,0x00,0x00,0xf7,0x6c,0x00,0x00,0xf7,0x8c,0x00,0x00,0xf7,0xac,0x00,0x00,0xf7,0xc8,0x00,0x00,0xf7,0xe4, +0x00,0x00,0xf8,0x00,0x00,0x00,0xf8,0x88,0x00,0x00,0xf9,0x48,0x00,0x00,0xfa,0x04,0x00,0x00,0xfa,0x24,0x00,0x00,0xfa,0x44,0x00,0x00,0xfa,0x60,0x00,0x00,0xfb,0x44,0x00,0x00,0xfb,0x64,0x00,0x00,0xfb,0x80,0x00,0x00,0xfb,0x9c,0x00,0x00,0xfc,0x4c,0x00,0x00,0xfc,0x84,0x00,0x00,0xfd,0x78,0x00,0x00,0xfe,0x44,0x00,0x00,0xff,0x98, +0x00,0x00,0xff,0xb8,0x00,0x00,0xff,0xc8,0x00,0x00,0xff,0xe8,0x00,0x01,0x00,0x70,0x00,0x01,0x01,0x10,0x00,0x01,0x01,0x58,0x00,0x01,0x01,0xa8,0x00,0x01,0x02,0x24,0x00,0x01,0x02,0xb4,0x00,0x01,0x03,0x5c,0x00,0x01,0x03,0xc8,0x00,0x01,0x04,0x38,0x00,0x01,0x05,0x0c,0x00,0x01,0x05,0xe8,0x00,0x01,0x06,0x08,0x00,0x01,0x06,0x54, +0x00,0x01,0x07,0x00,0x00,0x01,0x07,0x5c,0x00,0x01,0x07,0xb4,0x00,0x01,0x07,0xfc,0x00,0x01,0x08,0x14,0x00,0x01,0x08,0xbc,0x00,0x01,0x09,0x60,0x00,0x01,0x09,0x70,0x00,0x01,0x09,0xb0,0x00,0x01,0x09,0xe4,0x00,0x01,0x0a,0x1c,0x00,0x01,0x0a,0x74,0x00,0x01,0x0a,0xf4,0x00,0x01,0x0b,0x14,0x00,0x01,0x0b,0x34,0x00,0x01,0x0b,0x78, +0x00,0x01,0x0b,0xbc,0x00,0x01,0x0c,0x6c,0x00,0x01,0x0d,0x1c,0x00,0x01,0x0d,0x68,0x00,0x01,0x0d,0xb4,0x00,0x01,0x0d,0xc4,0x00,0x01,0x0d,0xd4,0x00,0x01,0x0e,0x14,0x00,0x01,0x0e,0x58,0x00,0x01,0x0e,0x94,0x00,0x01,0x0e,0xd0,0x00,0x01,0x0f,0x14,0x00,0x01,0x0f,0x58,0x00,0x01,0x10,0x24,0x00,0x01,0x10,0x68,0x00,0x01,0x10,0xac, +0x00,0x01,0x11,0x70,0x00,0x01,0x11,0xbc,0x00,0x01,0x12,0x04,0x00,0x01,0x12,0x3c,0x00,0x01,0x12,0x4c,0x00,0x01,0x12,0x84,0x00,0x01,0x12,0xbc,0x00,0x01,0x12,0xcc,0x00,0x01,0x13,0x0c,0x00,0x01,0x13,0x7c,0x00,0x01,0x13,0x94,0x00,0x01,0x14,0x20,0x00,0x01,0x14,0x50,0x00,0x01,0x14,0xa4,0x00,0x01,0x14,0xc4,0x00,0x01,0x15,0x14, +0x00,0x01,0x15,0x94,0x00,0x01,0x15,0xfc,0x00,0x01,0x16,0x64,0x00,0x01,0x16,0xac,0x00,0x01,0x16,0xf0,0x00,0x01,0x17,0x30,0x00,0x01,0x17,0x48,0x00,0x01,0x17,0x80,0x00,0x01,0x17,0xd0,0x00,0x01,0x18,0x38,0x00,0x01,0x19,0xa4,0x00,0x01,0x1a,0x04,0x00,0x01,0x1a,0x70,0x00,0x01,0x1a,0xd8,0x00,0x01,0x1b,0x78,0x00,0x01,0x1b,0xd4, +0x00,0x01,0x1c,0x58,0x00,0x01,0x1d,0x1c,0x00,0x01,0x1d,0x34,0x00,0x01,0x1e,0xa8,0x00,0x01,0x20,0x1c,0x00,0x01,0x20,0x3c,0x00,0x01,0x21,0x00,0x00,0x01,0x21,0x18,0x00,0x01,0x21,0x7c,0x00,0x01,0x21,0xa0,0x00,0x01,0x22,0x74,0x00,0x01,0x22,0x8c,0x00,0x01,0x22,0xac,0x00,0x01,0x22,0xd0,0x00,0x01,0x22,0xe8,0x00,0x01,0x23,0x0c, +0x00,0x01,0x23,0x24,0x00,0x01,0x23,0x48,0x00,0x01,0x23,0x7c,0x00,0x01,0x23,0x94,0x00,0x01,0x25,0xa8,0x00,0x01,0x26,0x8c,0x00,0x01,0x26,0xb0,0x00,0x01,0x26,0xd4,0x00,0x01,0x26,0xec,0x00,0x01,0x27,0x10,0x00,0x01,0x27,0x28,0x00,0x01,0x27,0x48,0x00,0x01,0x27,0xc4,0x00,0x01,0x28,0x70,0x00,0x01,0x28,0x88,0x00,0x01,0x28,0xa0, +0x00,0x01,0x28,0xb8,0x00,0x01,0x28,0xd8,0x00,0x01,0x2a,0x04,0x00,0x01,0x2a,0x30,0x00,0x01,0x2a,0x48,0x00,0x01,0x2a,0x6c,0x00,0x01,0x2b,0x50,0x00,0x01,0x2c,0xe8,0x00,0x01,0x2d,0xc0,0x00,0x01,0x2f,0x0c,0x00,0x01,0x30,0x54,0x00,0x01,0x32,0x24,0x00,0x01,0x33,0x30,0x00,0x01,0x34,0xa8,0x00,0x01,0x36,0x88,0x00,0x01,0x37,0xe0, +0x00,0x01,0x38,0x98,0x00,0x01,0x39,0x88,0x00,0x01,0x39,0xac,0x00,0x01,0x39,0xe0,0x00,0x01,0x3a,0x48,0x00,0x01,0x3a,0xb0,0x00,0x01,0x3b,0x1c,0x00,0x01,0x3b,0x34,0x00,0x01,0x3b,0xb8,0x00,0x01,0x3b,0xd8,0x00,0x01,0x3c,0x28,0x00,0x01,0x3c,0x78,0x00,0x01,0x3c,0xe0,0x00,0x01,0x3d,0x18,0x00,0x01,0x3d,0xc0,0x00,0x01,0x3e,0x94, +0x00,0x01,0x3e,0xdc,0x00,0x01,0x3f,0x50,0x00,0x01,0x3f,0xb0,0x00,0x01,0x3f,0xf8,0x00,0x01,0x40,0x5c,0x00,0x01,0x40,0xbc,0x00,0x01,0x40,0xdc,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x41,0xc4,0x00,0x01,0x42,0x78, +0x00,0x01,0x43,0x68,0x00,0x01,0x44,0x40,0x00,0x01,0x45,0x5c,0x00,0x01,0x46,0x2c,0x00,0x01,0x46,0xa8,0x00,0x01,0x47,0x94,0x00,0x01,0x48,0x30,0x00,0x01,0x48,0xe8,0x00,0x01,0x49,0x68,0x00,0x01,0x4a,0x00,0x00,0x01,0x4a,0xa8,0x00,0x01,0x4b,0x68,0x00,0x01,0x4c,0x48,0x00,0x01,0x4c,0xf0,0x00,0x01,0x4d,0x8c,0x00,0x01,0x4d,0xd4, +0x00,0x01,0x4d,0xf0,0x00,0x01,0x4e,0xa8,0x00,0x01,0x4f,0x74,0x00,0x01,0x50,0x7c,0x00,0x01,0x50,0xd4,0x00,0x01,0x51,0x08,0x00,0x01,0x51,0x64,0x00,0x01,0x51,0x98,0x00,0x01,0x51,0xc8,0x00,0x01,0x51,0xd8,0x00,0x01,0x52,0x34,0x00,0x01,0x52,0xa0,0x00,0x01,0x53,0x5c,0x00,0x01,0x54,0x08,0x00,0x01,0x54,0x94,0x00,0x01,0x55,0x10, +0x00,0x01,0x55,0xbc,0x00,0x01,0x55,0xec,0x00,0x01,0x56,0x44,0x00,0x01,0x56,0xb8,0x00,0x01,0x57,0x5c,0x00,0x01,0x57,0xf8,0x00,0x01,0x58,0x58,0x00,0x01,0x58,0xc0,0x00,0x01,0x59,0xb8,0x00,0x01,0x5a,0x50,0x00,0x01,0x5a,0xa0,0x00,0x01,0x5b,0x2c,0x00,0x01,0x5b,0x7c,0x00,0x01,0x5b,0xf8,0x00,0x01,0x5c,0x48,0x00,0x01,0x5c,0x90, +0x00,0x01,0x5c,0xc4,0x00,0x01,0x5d,0x08,0x00,0x01,0x5d,0x4c,0x00,0x01,0x5e,0x04,0x00,0x01,0x5e,0xa4,0x00,0x01,0x5f,0x04,0x00,0x01,0x5f,0x68,0x00,0x01,0x5f,0xd0,0x00,0x01,0x60,0x60,0x00,0x01,0x61,0x00,0x00,0x01,0x61,0xc4,0x00,0x01,0x62,0x0c,0x00,0x01,0x62,0x58,0x00,0x01,0x62,0xdc,0x00,0x01,0x63,0x40,0x00,0x01,0x63,0xa0, +0x00,0x01,0x64,0xe8,0x00,0x01,0x66,0x2c,0x00,0x01,0x67,0x3c,0x00,0x01,0x67,0xc0,0x00,0x01,0x68,0x30,0x00,0x01,0x69,0xc0,0x00,0x01,0x6a,0xd4,0x00,0x01,0x6b,0xe4,0x00,0x01,0x6c,0xb0,0x00,0x01,0x6d,0x2c,0x00,0x01,0x6e,0x08,0x00,0x01,0x6f,0x24,0x00,0x01,0x6f,0xa8,0x00,0x01,0x70,0x84,0x00,0x01,0x71,0xa8,0x00,0x01,0x72,0x50, +0x00,0x01,0x72,0xfc,0x00,0x01,0x73,0x74,0x00,0x01,0x73,0x84,0x00,0x01,0x73,0xbc,0x00,0x01,0x74,0x58,0x00,0x01,0x74,0xb0,0x00,0x01,0x75,0x2c,0x00,0x01,0x75,0x68,0x00,0x01,0x75,0xa8,0x00,0x01,0x76,0x14,0x00,0x01,0x76,0x84,0x00,0x01,0x77,0x08,0x00,0x01,0x77,0x34,0x00,0x01,0x77,0x98,0x00,0x01,0x78,0x50,0x00,0x01,0x78,0xb0, +0x00,0x01,0x79,0x9c,0x00,0x01,0x7a,0x78,0x00,0x01,0x7a,0xd0,0x00,0x01,0x7b,0x28,0x00,0x01,0x7b,0x8c,0x00,0x01,0x7b,0xec,0x00,0x01,0x7c,0x50,0x00,0x01,0x7c,0x60,0x00,0x01,0x7c,0xb8,0x00,0x01,0x7d,0x28,0x00,0x01,0x7d,0x94,0x00,0x01,0x7e,0x48,0x00,0x01,0x7e,0x58,0x00,0x01,0x7e,0xa0,0x00,0x01,0x7e,0xd4,0x00,0x01,0x7f,0x10, +0x00,0x01,0x7f,0x54,0x00,0x01,0x7f,0x64,0x00,0x01,0x7f,0xa0,0x00,0x01,0x7f,0xdc,0x00,0x01,0x81,0x28,0x00,0x01,0x82,0xd8,0x00,0x01,0x83,0x30,0x00,0x01,0x83,0x88,0x00,0x01,0x83,0xfc,0x00,0x01,0x84,0x94,0x00,0x01,0x85,0x68,0x00,0x01,0x86,0x88,0x00,0x01,0x86,0x98,0x00,0x01,0x87,0x28,0x00,0x01,0x87,0xb4,0x00,0x01,0x88,0x94, +0x00,0x01,0x88,0xe4,0x00,0x01,0x89,0x58,0x00,0x01,0x89,0xa0,0x00,0x01,0x89,0xe4,0x00,0x01,0x89,0xf4,0x00,0x01,0x8a,0x30,0x00,0x01,0x8a,0x6c,0x00,0x01,0x8a,0xb8,0x00,0x01,0x8b,0x70,0x00,0x01,0x8b,0xec,0x00,0x01,0x8b,0xfc,0x00,0x01,0x8c,0x48,0x00,0x01,0x8c,0x90,0x00,0x01,0x8d,0x14,0x00,0x01,0x8d,0x84,0x00,0x01,0x8e,0x00, +0x00,0x01,0x8e,0x98,0x00,0x01,0x8e,0xe4,0x00,0x01,0x8f,0x50,0x00,0x01,0x8f,0x98,0x00,0x01,0x90,0x04,0x00,0x01,0x90,0x48,0x00,0x01,0x90,0xdc,0x00,0x01,0x91,0x4c,0x00,0x01,0x91,0xc0,0x00,0x01,0x92,0x48,0x00,0x01,0x92,0xcc,0x00,0x01,0x93,0x38,0x00,0x01,0x93,0x80,0x00,0x01,0x93,0xc8,0x00,0x01,0x94,0xb8,0x00,0x01,0x95,0x60, +0x00,0x01,0x97,0x44,0x00,0x01,0x97,0xb8,0x00,0x01,0x98,0x68,0x00,0x01,0x98,0xac,0x00,0x01,0x99,0x2c,0x00,0x01,0x9a,0x64,0x00,0x01,0x9b,0x18,0x00,0x01,0x9b,0xec,0x00,0x01,0x9c,0xa0,0x00,0x01,0x9d,0x54,0x00,0x01,0x9e,0x3c,0x00,0x01,0x9f,0x00,0x00,0x01,0x9f,0xd0,0x00,0x01,0xa0,0x24,0x00,0x01,0xa0,0x88,0x00,0x01,0xa0,0xf4, +0x00,0x01,0xa1,0x54,0x00,0x01,0xa1,0xa8,0x00,0x01,0xa2,0x10,0x00,0x01,0xa2,0x74,0x00,0x01,0xa2,0xd4,0x00,0x01,0xa3,0x60,0x00,0x01,0xa3,0xc4,0x00,0x01,0xa4,0xa0,0x00,0x01,0xa5,0x8c,0x00,0x01,0xa6,0x34,0x00,0x01,0xa6,0xd4,0x00,0x01,0xa7,0x6c,0x00,0x01,0xa8,0x00,0x00,0x01,0xa8,0x64,0x00,0x01,0xa8,0xf8,0x00,0x01,0xa9,0x58, +0x00,0x01,0xa9,0xd0,0x00,0x01,0xaa,0x6c,0x00,0x01,0xab,0x00,0x00,0x01,0xab,0x38,0x00,0x01,0xab,0xf0,0x00,0x01,0xac,0x48,0x00,0x01,0xac,0xec,0x00,0x01,0xad,0x38,0x00,0x01,0xad,0xd4,0x00,0x01,0xae,0x98,0x00,0x01,0xaf,0x54,0x00,0x01,0xaf,0xd0,0x00,0x01,0xb0,0x48,0x00,0x01,0xb0,0x70,0x00,0x01,0xb0,0xe8,0x00,0x01,0xb1,0x64, +0x00,0x01,0xb2,0x18,0x00,0x01,0xb2,0x60,0x00,0x01,0xb2,0xa8,0x00,0x01,0xb3,0x30,0x00,0x01,0xb3,0xb8,0x00,0x01,0xb4,0x7c,0x00,0x01,0xb4,0xb4,0x00,0x01,0xb4,0xe8,0x00,0x01,0xb5,0x1c,0x00,0x01,0xb5,0x50,0x00,0x01,0xb5,0x84,0x00,0x01,0xb5,0xb8,0x00,0x01,0xb5,0xec,0x00,0x01,0xb6,0x20,0x00,0x01,0xb6,0x54,0x00,0x01,0xb6,0x8c, +0x00,0x01,0xb6,0xbc,0x00,0x01,0xb6,0xec,0x00,0x01,0xb7,0x1c,0x00,0x01,0xb7,0x50,0x00,0x01,0xb7,0x84,0x00,0x01,0xb7,0xb8,0x00,0x01,0xb7,0xec,0x00,0x01,0xb8,0x20,0x00,0x01,0xb8,0x54,0x00,0x01,0xb8,0x88,0x00,0x01,0xb8,0xbc,0x00,0x01,0xb8,0xf0,0x00,0x01,0xb9,0x30,0x00,0x01,0xb9,0x84,0x00,0x01,0xb9,0xc4,0x00,0x01,0xba,0x04, +0x00,0x01,0xba,0x38,0x00,0x01,0xba,0x90,0x00,0x01,0xba,0xd0,0x00,0x01,0xbd,0x1c,0x00,0x01,0xc1,0xbc,0x00,0x01,0xc4,0x08,0x00,0x01,0xc4,0x58,0x00,0x01,0xc4,0xec,0x00,0x01,0xc5,0x80,0x00,0x01,0xc6,0x1c,0x00,0x01,0xc6,0x98,0x00,0x01,0xc7,0x4c,0x00,0x01,0xc8,0x80,0x00,0x01,0xc9,0x58,0x00,0x01,0xca,0x64,0x00,0x01,0xca,0xe0, +0x00,0x01,0xcb,0x08,0x00,0x01,0xcb,0x40,0x00,0x01,0xcb,0x88,0x00,0x01,0xcc,0x10,0x00,0x01,0xcc,0x40,0x00,0x01,0xcc,0x94,0x00,0x01,0xcc,0xc8,0x00,0x01,0xcd,0x18,0x00,0x01,0xcd,0x6c,0x00,0x01,0xcd,0xc0,0x00,0x01,0xce,0x10,0x00,0x01,0xce,0x64,0x00,0x01,0xce,0xc8,0x00,0x01,0xce,0xf8,0x00,0x01,0xcf,0x18,0x00,0x01,0xcf,0x3c, +0x00,0x01,0xcf,0x60,0x00,0x01,0xcf,0xac,0x00,0x01,0xcf,0xdc,0x00,0x01,0xd0,0x1c,0x00,0x01,0xd0,0x50,0x00,0x01,0xd0,0x70,0x00,0x01,0xd0,0x90,0x00,0x01,0xd0,0xc0,0x00,0x01,0xd0,0xec,0x00,0x01,0xd1,0x1c,0x00,0x01,0xd1,0x3c,0x00,0x01,0xd1,0x64,0x00,0x01,0xd1,0x84,0x00,0x01,0xd1,0xcc,0x00,0x01,0xd1,0xf8,0x00,0x01,0xd2,0x34, +0x00,0x01,0xd2,0x60,0x00,0x01,0xd2,0xe4,0x00,0x01,0xd3,0x50,0x00,0x01,0xd3,0xbc,0x00,0x01,0xd4,0x14,0x00,0x01,0xd4,0x94,0x00,0x01,0xd4,0xfc,0x00,0x01,0xd5,0x64,0x00,0x01,0xd5,0xb0,0x00,0x01,0xd6,0x60,0x00,0x01,0xd6,0xec,0x00,0x01,0xd7,0x74,0x00,0x01,0xd7,0xcc,0x00,0x01,0xd8,0x20,0x00,0x01,0xd8,0x74,0x00,0x01,0xd8,0xc0, +0x00,0x01,0xd9,0x04,0x00,0x01,0xd9,0x5c,0x00,0x01,0xd9,0xa0,0x00,0x01,0xd9,0xf8,0x00,0x01,0xda,0x58,0x00,0x01,0xda,0xa4,0x00,0x01,0xda,0xe8,0x00,0x01,0xdb,0x40,0x00,0x01,0xdb,0x84,0x00,0x01,0xdb,0xdc,0x00,0x01,0xdc,0x3c,0x00,0x01,0xdc,0xa8,0x00,0x01,0xdd,0x00,0x00,0x01,0xdd,0x58,0x00,0x01,0xdd,0xa8,0x00,0x01,0xdd,0xfc, +0x00,0x01,0xde,0x30,0x00,0x01,0xde,0x7c,0x00,0x01,0xde,0xc0,0x00,0x01,0xdf,0x04,0x00,0x01,0xdf,0x3c,0x00,0x01,0xdf,0x74,0x00,0x01,0xdf,0xc0,0x00,0x01,0xe0,0x3c,0x00,0x01,0xe0,0xcc,0x00,0x01,0xe1,0x04,0x00,0x01,0xe1,0x68,0x00,0x01,0xe1,0xdc,0x00,0x01,0xe2,0x10,0x00,0x01,0xe2,0x5c,0x00,0x01,0xe2,0xa0,0x00,0x01,0xe2,0xe4, +0x00,0x01,0xe3,0x28,0x00,0x01,0xe3,0x5c,0x00,0x01,0xe3,0xb8,0x00,0x01,0xe4,0x08,0x00,0x01,0xe4,0x58,0x00,0x01,0xe4,0xc0,0x00,0x01,0xe5,0x18,0x00,0x01,0xe5,0x70,0x00,0x01,0xe5,0xd4,0x00,0x01,0xe6,0x2c,0x00,0x01,0xe6,0x80,0x00,0x01,0xe6,0xe0,0x00,0x01,0xe7,0x48,0x00,0x01,0xe7,0xa0,0x00,0x01,0xe7,0xf8,0x00,0x01,0xe8,0x50, +0x00,0x01,0xe8,0xac,0x00,0x01,0xe9,0x18,0x00,0x01,0xe9,0x58,0x00,0x01,0xe9,0x98,0x00,0x01,0xe9,0xe8,0x00,0x01,0xea,0x3c,0x00,0x01,0xea,0x70,0x00,0x01,0xea,0xbc,0x00,0x01,0xeb,0x00,0x00,0x01,0xeb,0x44,0x00,0x01,0xeb,0x7c,0x00,0x01,0xeb,0xb4,0x00,0x01,0xec,0x00,0x00,0x01,0xec,0x7c,0x00,0x01,0xed,0x0c,0x00,0x01,0xed,0x44, +0x00,0x01,0xed,0xa8,0x00,0x01,0xee,0x1c,0x00,0x01,0xee,0x50,0x00,0x01,0xee,0x94,0x00,0x01,0xee,0xe0,0x00,0x01,0xef,0x24,0x00,0x01,0xef,0x68,0x00,0x01,0xef,0x9c,0x00,0x01,0xef,0xfc,0x00,0x01,0xf0,0x4c,0x00,0x01,0xf0,0x9c,0x00,0x01,0xf1,0x04,0x00,0x01,0xf1,0x5c,0x00,0x01,0xf1,0xb4,0x00,0x01,0xf2,0x18,0x00,0x01,0xf2,0x70, +0x00,0x01,0xf2,0xc4,0x00,0x01,0xf3,0x24,0x00,0x01,0xf3,0x8c,0x00,0x01,0xf3,0xe4,0x00,0x01,0xf4,0x38,0x00,0x01,0xf4,0x8c,0x00,0x01,0xf4,0xec,0x00,0x01,0xf5,0x38,0x00,0x01,0xf5,0x90,0x00,0x01,0xf5,0xd4,0x00,0x01,0xf6,0x2c,0x00,0x01,0xf6,0x70,0x00,0x01,0xf6,0xd0,0x00,0x01,0xf7,0x1c,0x00,0x01,0xf7,0x74,0x00,0x01,0xf7,0xb8, +0x00,0x01,0xf8,0x10,0x00,0x01,0xf8,0x54,0x00,0x01,0xf8,0xbc,0x00,0x01,0xf9,0x14,0x00,0x01,0xf9,0x6c,0x00,0x01,0xf9,0xe4,0x00,0x01,0xfa,0x48,0x00,0x01,0xfa,0xb0,0x00,0x01,0xfb,0x0c,0x00,0x01,0xfb,0x5c,0x00,0x01,0xfb,0xac,0x00,0x01,0xfc,0x0c,0x00,0x01,0xfc,0x5c,0x00,0x01,0xfc,0xac,0x00,0x01,0xfd,0x30,0x00,0x01,0xfd,0x94, +0x00,0x01,0xfd,0xf8,0x00,0x01,0xfe,0x54,0x00,0x01,0xff,0x0c,0x00,0x01,0xff,0xe0,0x00,0x02,0x00,0x40,0x00,0x02,0x00,0x58,0x00,0x02,0x01,0x48,0x00,0x02,0x02,0x3c,0x00,0x02,0x03,0x08,0x00,0x02,0x03,0xac,0x00,0x02,0x04,0x60,0x00,0x02,0x04,0xc0,0x00,0x02,0x05,0x7c,0x00,0x02,0x06,0x04,0x00,0x02,0x06,0x88,0x00,0x02,0x07,0x0c, +0x00,0x02,0x08,0x20,0x00,0x02,0x08,0x84,0x00,0x02,0x08,0x9c,0x00,0x02,0x09,0x14,0x00,0x02,0x09,0xd8,0x00,0x02,0x0a,0x3c,0x00,0x02,0x0a,0x98,0x00,0x02,0x0b,0x84,0x00,0x02,0x0b,0x9c,0x00,0x02,0x0b,0xac,0x00,0x02,0x0c,0x28,0x00,0x02,0x0d,0x00,0x00,0x02,0x0d,0x9c,0x00,0x02,0x0e,0x3c,0x00,0x02,0x0e,0xa8,0x00,0x02,0x0f,0x58, +0x00,0x02,0x10,0x24,0x00,0x02,0x10,0x78,0x00,0x02,0x10,0xe0,0x00,0x02,0x11,0xb0,0x00,0x02,0x12,0x64,0x00,0x02,0x13,0x10,0x00,0x02,0x13,0xc0,0x00,0x02,0x14,0x44,0x00,0x02,0x15,0x1c,0x00,0x02,0x15,0xc8,0x00,0x02,0x16,0x58,0x00,0x02,0x16,0xe8,0x00,0x02,0x17,0x80,0x00,0x02,0x17,0xa0,0x00,0x02,0x18,0x60,0x00,0x02,0x18,0xf4, +0x00,0x02,0x19,0xc4,0x00,0x02,0x1a,0xec,0x00,0x02,0x1b,0xac,0x00,0x02,0x1c,0x20,0x00,0x02,0x1c,0xd0,0x00,0x02,0x1d,0x6c,0x00,0x02,0x1d,0xf0,0x00,0x02,0x1e,0x54,0x00,0x02,0x1e,0xf0,0x00,0x02,0x1f,0x60,0x00,0x02,0x1f,0xf8,0x00,0x02,0x20,0x58,0x00,0x02,0x20,0xa8,0x00,0x02,0x21,0x54,0x00,0x02,0x22,0x4c,0x00,0x02,0x22,0x70, +0x00,0x02,0x22,0x88,0x00,0x02,0x23,0x4c,0x00,0x02,0x23,0xf4,0x00,0x02,0x24,0xbc,0x00,0x02,0x25,0x14,0x00,0x02,0x25,0x74,0x00,0x02,0x26,0x54,0x00,0x02,0x27,0x44,0x00,0x02,0x27,0xdc,0x00,0x02,0x28,0x20,0x00,0x02,0x28,0x4c,0x00,0x02,0x28,0x84,0x00,0x02,0x28,0xbc,0x00,0x02,0x28,0xf4,0x00,0x02,0x29,0xbc,0x00,0x02,0x2a,0xfc, +0x00,0x02,0x2b,0xdc,0x00,0x02,0x2d,0x04,0x00,0x02,0x2d,0x64,0x00,0x02,0x2e,0x78,0x00,0x02,0x2f,0x90,0x00,0x02,0x30,0x98,0x00,0x02,0x31,0x60,0x00,0x02,0x31,0xe8,0x00,0x02,0x32,0x08,0x00,0x02,0x32,0x38,0x00,0x02,0x32,0x68,0x00,0x02,0x32,0xc0,0x00,0x02,0x33,0x18,0x00,0x02,0x33,0xc8,0x00,0x02,0x34,0x40,0x00,0x02,0x35,0x5c, +0x00,0x02,0x36,0x18,0x00,0x02,0x36,0xe0,0x00,0x02,0x37,0x4c,0x00,0x02,0x37,0xfc,0x00,0x02,0x38,0xe4,0x00,0x02,0x39,0xe4,0x00,0x02,0x3a,0x20,0x00,0x02,0x3a,0x5c,0x00,0x02,0x3a,0xa0,0x00,0x02,0x3a,0xdc,0x00,0x02,0x3b,0x20,0x00,0x02,0x3b,0xd8,0x00,0x02,0x3c,0x74,0x00,0x02,0x3d,0x30,0x00,0x02,0x3d,0xe0,0x00,0x02,0x3f,0x0c, +0x00,0x02,0x3f,0xe8,0x00,0x02,0x40,0xc4,0x00,0x02,0x41,0x98,0x00,0x02,0x42,0x64,0x00,0x02,0x42,0xf4,0x00,0x02,0x43,0xd4,0x00,0x02,0x45,0x18,0x00,0x02,0x45,0xf4,0x00,0x02,0x46,0xf0,0x00,0x02,0x47,0x88,0x00,0x02,0x48,0xc0,0x00,0x02,0x49,0x50,0x00,0x02,0x4a,0x34,0x00,0x02,0x4a,0x8c,0x00,0x02,0x4b,0x3c,0x00,0x02,0x4b,0xbc, +0x00,0x02,0x4c,0x3c,0x00,0x02,0x4d,0x3c,0x00,0x02,0x4d,0xa0,0x00,0x02,0x4e,0x20,0x00,0x02,0x4e,0xa4,0x00,0x02,0x50,0x10,0x00,0x02,0x50,0xa8,0x00,0x02,0x51,0x28,0x00,0x02,0x51,0xe0,0x00,0x02,0x52,0x74,0x00,0x02,0x53,0x28,0x00,0x02,0x54,0x00,0x00,0x02,0x54,0xd8,0x00,0x02,0x55,0x74,0x00,0x02,0x55,0xc0,0x00,0x02,0x56,0x28, +0x00,0x02,0x56,0x90,0x00,0x02,0x57,0xb8,0x00,0x02,0x58,0xa8,0x00,0x02,0x59,0xa8,0x00,0x02,0x5a,0xd4,0x00,0x02,0x5b,0xe8,0x00,0x02,0x5c,0xec,0x00,0x02,0x5e,0x14,0x00,0x02,0x5f,0x54,0x00,0x02,0x60,0x64,0x00,0x02,0x61,0x00,0x00,0x02,0x61,0x84,0x00,0x02,0x62,0x88,0x00,0x02,0x63,0x10,0x00,0x02,0x63,0xbc,0x00,0x02,0x63,0xd0, +0x00,0x02,0x64,0x88,0x00,0x02,0x65,0x70,0x00,0x02,0x66,0x5c,0x00,0x02,0x67,0x68,0x00,0x02,0x68,0x80,0x00,0x02,0x6a,0x00,0x00,0x02,0x6a,0xc8,0x00,0x02,0x6b,0xcc,0x00,0x02,0x6d,0x9c,0x00,0x02,0x70,0x14,0x00,0x02,0x71,0x70,0x00,0x02,0x71,0xdc,0x00,0x02,0x72,0x54,0x00,0x02,0x73,0x14,0x00,0x02,0x73,0x78,0x00,0x02,0x73,0x90, +0x00,0x02,0x74,0x18,0x00,0x02,0x74,0x78,0x00,0x02,0x75,0x34,0x00,0x02,0x75,0xd8,0x00,0x02,0x76,0x78,0x00,0x02,0x77,0x00,0x00,0x02,0x77,0x98,0x00,0x02,0x78,0x1c,0x00,0x02,0x79,0x14,0x00,0x02,0x79,0xa8,0x00,0x02,0x7a,0x60,0x00,0x02,0x7a,0xf0,0x00,0x02,0x7b,0xcc,0x00,0x02,0x7c,0xe4,0x00,0x02,0x7d,0xbc,0x00,0x02,0x7e,0x14, +0x00,0x02,0x7e,0x88,0x00,0x02,0x7f,0x40,0x00,0x02,0x7f,0xf8,0x00,0x02,0x80,0xb0,0x00,0x02,0x81,0x4c,0x00,0x02,0x81,0xc8,0x00,0x02,0x82,0x30,0x00,0x02,0x82,0xc0,0x00,0x02,0x82,0xe4,0x00,0x02,0x83,0x08,0x00,0x02,0x83,0x58,0x00,0x02,0x83,0xfc,0x00,0x02,0x84,0x20,0x00,0x02,0x84,0xa0,0x00,0x02,0x85,0x38,0x00,0x02,0x85,0x58, +0x00,0x02,0x85,0xc4,0x00,0x02,0x86,0x30,0x00,0x02,0x86,0x98,0x00,0x02,0x87,0x08,0x00,0x02,0x87,0x78,0x00,0x02,0x87,0x9c,0x00,0x02,0x87,0xc8,0x00,0x02,0x88,0xa4,0x00,0x02,0x88,0xbc,0x00,0x02,0x88,0xdc,0x00,0x02,0x89,0x60,0x00,0x02,0x8a,0x00,0x00,0x02,0x8a,0xbc,0x00,0x02,0x8b,0x60,0x00,0x02,0x8c,0x68,0x00,0x02,0x8d,0x94, +0x00,0x02,0x8e,0x9c,0x00,0x02,0x8f,0x30,0x00,0x02,0x8f,0xf4,0x00,0x02,0x90,0x44,0x00,0x02,0x90,0xc8,0x00,0x02,0x91,0x6c,0x00,0x02,0x92,0x34,0x00,0x02,0x92,0xfc,0x00,0x02,0x93,0x8c,0x00,0x02,0x93,0xe4,0x00,0x02,0x93,0xfc,0x00,0x02,0x94,0x7c,0x00,0x02,0x95,0x14,0x00,0x02,0x95,0x34,0x00,0x02,0x96,0xb8,0x00,0x02,0x98,0x00, +0x00,0x02,0x99,0x80,0x00,0x02,0x9b,0x3c,0x00,0x02,0x9b,0xa8,0x00,0x02,0x9c,0x44,0x00,0x02,0x9d,0x0c,0x00,0x02,0x9e,0xb0,0x00,0x02,0x9f,0xf4,0x00,0x02,0xa0,0xfc,0x00,0x02,0xa2,0xec,0x00,0x02,0xa3,0x74,0x00,0x02,0xa3,0xf8,0x00,0x02,0xa4,0xa8,0x00,0x02,0xa5,0x20,0x00,0x02,0xa5,0xc0,0x00,0x02,0xa5,0xf8,0x00,0x02,0xa6,0x08, +0x00,0x02,0xa6,0x44,0x00,0x02,0xa6,0x9c,0x00,0x02,0xa6,0xb0,0x00,0x02,0xa6,0xec,0x00,0x02,0xa7,0x6c,0x00,0x02,0xa7,0xc0,0x00,0x02,0xa7,0xfc,0x00,0x02,0xa8,0x38,0x00,0x02,0xa8,0x94,0x00,0x02,0xa8,0xc8,0x00,0x02,0xa9,0x14,0x00,0x02,0xa9,0x60,0x00,0x02,0xa9,0xc4,0x00,0x02,0xaa,0x4c,0x00,0x02,0xab,0x04,0x00,0x02,0xab,0x44, +0x00,0x02,0xab,0xc8,0x00,0x02,0xac,0x14,0x00,0x02,0xac,0x50,0x00,0x02,0xac,0xc8,0x00,0x02,0xad,0x1c,0x00,0x02,0xad,0xa0,0x00,0x02,0xad,0xdc,0x00,0x02,0xae,0x50,0x00,0x02,0xae,0xb8,0x00,0x02,0xae,0xf8,0x00,0x02,0xaf,0x38,0x00,0x02,0xaf,0x78,0x00,0x02,0xaf,0x8c,0x00,0x02,0xaf,0xa0,0x00,0x02,0xaf,0xb4,0x00,0x02,0xaf,0xc8, +0x00,0x02,0xaf,0xdc,0x00,0x02,0xaf,0xf0,0x00,0x02,0xb0,0x04,0x00,0x02,0xb0,0x18,0x00,0x02,0xb0,0x2c,0x00,0x02,0xb0,0x40,0x00,0x02,0xb0,0x54,0x00,0x02,0xb0,0x68,0x00,0x02,0xb0,0x7c,0x00,0x02,0xb0,0x8c,0x00,0x02,0xb1,0x04,0x00,0x02,0xb1,0x50,0x00,0x02,0xb1,0x84,0x00,0x02,0xb1,0xb8,0x00,0x02,0xb2,0x0c,0x00,0x02,0xb2,0x50, +0x00,0x02,0xb2,0x94,0x00,0x02,0xb2,0xf0,0x00,0x02,0xb3,0x70,0x00,0x02,0xb4,0x20,0x00,0x02,0xb4,0x58,0x00,0x02,0xb4,0xd4,0x00,0x02,0xb5,0x18,0x00,0x02,0xb5,0x70,0x00,0x02,0xb5,0xac,0x00,0x02,0xb6,0x14,0x00,0x02,0xb6,0x60,0x00,0x02,0xb6,0xd4,0x00,0x02,0xb7,0x08,0x00,0x02,0xb7,0x94,0x00,0x02,0xb8,0x10,0x00,0x02,0xb8,0x6c, +0x00,0x02,0xb8,0xa4,0x00,0x02,0xb8,0xb8,0x00,0x02,0xb8,0xcc,0x00,0x02,0xb8,0xe0,0x00,0x02,0xb8,0xf4,0x00,0x02,0xb9,0x08,0x00,0x02,0xb9,0x1c,0x00,0x02,0xb9,0x30,0x00,0x02,0xb9,0x44,0x00,0x02,0xb9,0x58,0x00,0x02,0xb9,0x6c,0x00,0x02,0xb9,0x80,0x00,0x02,0xb9,0xbc,0x00,0x02,0xb9,0xf0,0x00,0x02,0xba,0xc0,0x00,0x02,0xbb,0x1c, +0x00,0x02,0xbb,0x98,0x00,0x02,0xbc,0x14,0x00,0x02,0xbc,0xe8,0x00,0x02,0xbd,0xec,0x00,0x02,0xbe,0x50,0x00,0x02,0xbe,0xc0,0x00,0x02,0xbf,0x80,0x00,0x02,0xc0,0x74,0x00,0x02,0xc0,0xf4,0x00,0x02,0xc1,0x74,0x00,0x02,0xc2,0x4c,0x00,0x02,0xc3,0x18,0x00,0x02,0xc3,0x7c,0x00,0x02,0xc3,0xec,0x00,0x02,0xc4,0xac,0x00,0x02,0xc5,0x68, +0x00,0x02,0xc5,0xec,0x00,0x02,0xc6,0x9c,0x00,0x02,0xc7,0x70,0x00,0x02,0xc7,0xa8,0x00,0x02,0xc7,0xf0,0x00,0x02,0xc8,0x30,0x00,0x02,0xc8,0x78,0x00,0x02,0xc9,0x24,0x00,0x02,0xc9,0x3c,0x00,0x02,0xc9,0x3c,0x00,0x02,0xc9,0x3c,0x00,0x03,0x00,0x5a,0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x03,0x00,0x06,0x00,0x09,0x00,0x31,0x40,0x2e, +0x09,0x04,0x02,0x03,0x02,0x01,0x4c,0x00,0x00,0x00,0x02,0x03,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x00,0x00,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x33,0x11,0x21,0x11,0x25,0x01,0x21,0x13,0x21,0x11,0x5a,0x01,0xa4,0xfe,0x8e,0x01,0x2c, +0xfe,0xd4,0x14,0x01,0x2c,0x02,0xda,0xfd,0x26,0x6d,0x02,0x3b,0xfd,0x8a,0x02,0x3b,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x07,0x00,0x10,0x00,0x2c,0x40,0x29,0x0d,0x01,0x04,0x00,0x01,0x4c,0x00,0x04,0x00,0x02,0x01,0x04,0x02,0x68,0x00,0x00,0x00,0x38,0x4d,0x05,0x03,0x02,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x09, +0x08,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x06,0x09,0x19,0x2b,0x33,0x13,0x33,0x13,0x23,0x27,0x23,0x07,0x13,0x33,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x32,0xbe,0x79,0xbd,0x5b,0x30,0xdd,0x30,0x42,0xb8,0x38,0x10,0x12,0x02,0x02,0x12,0x10,0x02,0xda,0xfd,0x26,0xc2,0xc2,0x01,0x0e,0xe1,0x40,0x56,0x0d,0x0d,0x56,0x3f,0x00,0x00,0x00, +0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x00,0x27,0x06,0xbc,0x02,0x58, +0x00,0x00,0x02,0x06,0x00,0x01,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x2b,0x02,0x26,0x03,0xb6,0x00,0x27,0x06,0x95,0x02,0x58,0x00,0x00,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xbd,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xbe,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xbf,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x01,0x00,0x00, +0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x67,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xc0,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x2b,0x02,0x26, +0x03,0xb6,0x00,0x27,0x06,0x93,0x02,0x58,0x00,0x00,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xc1,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00, +0x00,0x07,0x06,0xc2,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xc3,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb1,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x2b,0x02,0x26, +0x02,0xda,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x9e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xd4,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0x93,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x32,0xff,0x35,0x02,0x49,0x02,0xda,0x00,0x16,0x00,0x1f,0x00,0x65,0x40,0x0a,0x1c,0x01,0x06,0x00,0x13,0x01,0x01,0x04,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x1f,0x00,0x06,0x00,0x04,0x01, +0x06,0x04,0x68,0x00,0x00,0x00,0x38,0x4d,0x07,0x05,0x02,0x01,0x01,0x39,0x4d,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x1c,0x00,0x06,0x00,0x04,0x01,0x06,0x04,0x68,0x00,0x02,0x00,0x03,0x02,0x03,0x63,0x00,0x00,0x00,0x38,0x4d,0x07,0x05,0x02,0x01,0x01,0x39,0x01,0x4e,0x59,0x40,0x10,0x00,0x00,0x18,0x17, +0x00,0x16,0x00,0x16,0x16,0x21,0x25,0x11,0x11,0x08,0x09,0x1b,0x2b,0x33,0x13,0x33,0x13,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x27,0x23,0x07,0x13,0x33,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x32,0xbe,0x79,0xbd,0x11,0x21,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x21,0x29,0x30,0xdd,0x30,0x42, +0xb8,0x38,0x10,0x12,0x02,0x02,0x12,0x10,0x02,0xda,0xfd,0x26,0x1b,0x2d,0x15,0x16,0x1c,0x3c,0x35,0x28,0x1b,0x36,0x1f,0xc0,0xc2,0x01,0x0e,0xe1,0x40,0x56,0x0d,0x0d,0x56,0x3f,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xe2,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x96,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32, +0x00,0x00,0x02,0x26,0x03,0xb1,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0f,0x00,0x13,0x00,0x3f,0x40,0x3c,0x00,0x02,0x00,0x03,0x08,0x02,0x03,0x67,0x00,0x08,0x00,0x06,0x04,0x08,0x06,0x67,0x09,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38, +0x4d,0x00,0x04,0x04,0x05,0x5f,0x0a,0x07,0x02,0x05,0x05,0x39,0x05,0x4e,0x00,0x00,0x13,0x12,0x11,0x10,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x09,0x1d,0x2b,0x33,0x13,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x21,0x35,0x23,0x07,0x13,0x33,0x11,0x23,0x1e,0x91,0x01,0x8b,0xb6,0x9d,0x9d,0xb6,0xfe, +0xf4,0x8d,0x28,0x36,0x7f,0x38,0x02,0xda,0x52,0xe4,0x52,0xff,0x00,0x52,0xcb,0xcb,0x01,0x16,0x01,0x72,0xff,0xff,0x00,0x1e,0x00,0x00,0x02,0x3a,0x03,0xb6,0x02,0x26,0x00,0x18,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0x00,0x03,0x00,0x5d,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x10,0x00,0x19,0x00,0x22,0x00,0x39,0x40,0x36, +0x08,0x01,0x05,0x02,0x01,0x4c,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x01,0x5f,0x06,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x22,0x20,0x1c,0x1a,0x19,0x17,0x13,0x11,0x00,0x10,0x00,0x0f,0x21,0x07,0x09,0x17,0x2b,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x07, +0x15,0x1e,0x02,0x15,0x14,0x06,0x23,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x5d,0xcf,0x64,0x71,0x47,0x39,0x2b,0x41,0x25,0x73,0x64,0x86,0x76,0x3a,0x43,0x42,0x3a,0x77,0x7c,0x3f,0x49,0x49,0x3f,0x7c,0x02,0xda,0x64,0x59,0x38,0x5a,0x0b,0x03,0x05,0x32,0x4d,0x2e,0x5e,0x6d,0x01, +0xa3,0x3e,0x35,0x35,0x3e,0xfd,0xc8,0x43,0x3a,0x3c,0x4b,0x00,0x00,0x01,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x02,0xe4,0x00,0x1b,0x00,0x3b,0x40,0x38,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00, +0x4e,0x01,0x00,0x19,0x18,0x16,0x14,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1b,0x01,0x1b,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x01,0x34,0x64,0x74,0x74,0x64,0x62,0x74,0x5a,0x41,0x3b,0x3b,0x43,0x43,0x3b, +0x3b,0x41,0x5a,0x74,0x0a,0x70,0x62,0x01,0x4a,0x62,0x70,0x71,0x61,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0x43,0x3e,0x61,0x71,0x00,0x00,0x00,0xff,0xff,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x03,0xb6,0x02,0x26,0x00,0x1b,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x03,0xb6,0x02,0x26, +0x00,0x1b,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x5d,0x00,0x00,0x00,0x01,0x00,0x5c,0xff,0x35,0x02,0x0a,0x02,0xe4,0x00,0x2f,0x00,0x95,0x40,0x0a,0x09,0x01,0x07,0x05,0x28,0x01,0x01,0x07,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x36,0x00,0x03,0x04,0x06,0x04,0x03,0x06,0x80,0x00,0x06,0x05,0x04,0x06,0x05,0x7e,0x00,0x01,0x07,0x00, +0x07,0x01,0x72,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x3f,0x4d,0x00,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08,0x3d,0x08,0x4e,0x1b,0x40,0x34,0x00,0x03,0x04,0x06,0x04,0x03,0x06,0x80,0x00,0x06,0x05,0x04,0x06,0x05,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x00,0x80,0x00,0x00,0x09, +0x01,0x08,0x00,0x08,0x63,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x3f,0x07,0x4e,0x59,0x40,0x11,0x00,0x00,0x00,0x2f,0x00,0x2e,0x12,0x12,0x25,0x22,0x12,0x27,0x14,0x21,0x0a,0x09,0x1e,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x26,0x26,0x35,0x11,0x34,0x36,0x33, +0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0x22,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xd2,0x46,0x16,0x1b,0x37,0x32,0x18,0x49,0x53,0x74,0x64,0x62,0x74,0x5a,0x41,0x3b,0x3b,0x43,0x43,0x3b,0x3b,0x41,0x5a,0x74,0x62,0x03,0x01,0x09,0x1a,0x38,0x26,0x42,0x36,0xcb, +0x37,0x17,0x0d,0x11,0x1a,0x41,0x10,0x6a,0x52,0x01,0x4a,0x62,0x70,0x71,0x61,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0x43,0x3e,0x61,0x71,0x19,0x03,0x14,0x24,0x1a,0x22,0x31,0x00,0x00,0xff,0xff,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x03,0xb6,0x02,0x26,0x00,0x1b,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x5c, +0xff,0xf6,0x02,0x0a,0x03,0xb0,0x02,0x26,0x00,0x1b,0x00,0x00,0x00,0x07,0x06,0x8f,0x02,0x5d,0x00,0x00,0x00,0x02,0x00,0x5c,0x00,0x00,0x02,0x00,0x02,0xda,0x00,0x0b,0x00,0x15,0x00,0x27,0x40,0x24,0x00,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x15,0x13, +0x0e,0x0c,0x00,0x0b,0x00,0x0a,0x21,0x05,0x09,0x17,0x2b,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x11,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x23,0x5c,0xbd,0x47,0x67,0x39,0x39,0x67,0x47,0x63,0x63,0x42,0x4b,0x4b,0x42,0x63,0x02,0xda,0x36,0x62,0x43,0xfe,0xdd,0x43,0x63,0x36,0x50,0x4a,0x42,0x01,0x23,0x41, +0x4a,0x00,0x00,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x02,0x00,0x02,0xda,0x00,0x0f,0x00,0x1d,0x00,0x37,0x40,0x34,0x06,0x01,0x01,0x07,0x01,0x00,0x04,0x01,0x00,0x67,0x00,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x04,0x04,0x03,0x5f,0x08,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x1d,0x1c,0x1b,0x1a,0x19,0x17,0x12,0x10, +0x00,0x0f,0x00,0x0e,0x21,0x11,0x11,0x09,0x09,0x19,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x11,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x23,0x15,0x33,0x15,0x23,0x5c,0x52,0x52,0xbd,0x47,0x67,0x39,0x39,0x67,0x47,0x63,0x63,0x42,0x4b,0x4b,0x42,0x63,0x6c,0x6c,0x01,0x4f,0x4b,0x01, +0x40,0x36,0x62,0x43,0xfe,0xdd,0x43,0x63,0x36,0x50,0x4a,0x42,0x01,0x23,0x41,0x4a,0xf0,0x4b,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x21,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x02,0x00,0x02,0xda,0x00,0x0f,0x00,0x1d,0x00,0x37,0x40,0x34,0x06,0x01, +0x01,0x07,0x01,0x00,0x04,0x01,0x00,0x67,0x00,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x04,0x04,0x03,0x5f,0x08,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x1d,0x1c,0x1b,0x1a,0x19,0x17,0x12,0x10,0x00,0x0f,0x00,0x0e,0x21,0x11,0x11,0x09,0x09,0x19,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x11,0x14, +0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x23,0x15,0x33,0x15,0x23,0x5c,0x52,0x52,0xbd,0x47,0x67,0x39,0x39,0x67,0x47,0x63,0x63,0x42,0x4b,0x4b,0x42,0x63,0x6c,0x6c,0x01,0x4f,0x4b,0x01,0x40,0x36,0x62,0x43,0xfe,0xdd,0x43,0x63,0x36,0x50,0x4a,0x42,0x01,0x23,0x41,0x4a,0xf0,0x4b,0x00,0x00,0x00,0x01,0x00,0x64, +0x00,0x00,0x02,0x08,0x02,0xda,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x05,0x5f,0x06,0x01,0x05,0x05,0x39,0x05,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x33,0x11,0x21,0x15,0x21,0x15,0x21, +0x15,0x21,0x11,0x21,0x15,0x64,0x01,0xa4,0xfe,0xb5,0x01,0x28,0xfe,0xd8,0x01,0x4b,0x02,0xda,0x52,0xe2,0x50,0xfe,0xfc,0x52,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x6c,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00, +0x00,0x07,0x06,0x95,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x71, +0x03,0xfc,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0xc0,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0xff,0x2b,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x27,0x06,0x9e,0x02,0x62,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x25,0x00,0x00, +0x00,0x07,0x06,0xc1,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x30,0x03,0xfc,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0xc2,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xfc,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0xc3,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08, +0x03,0xb1,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb0,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x8f,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0xff,0x2b,0x02,0x08,0x02,0xda,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x9e,0x02,0x62,0x00,0x00, +0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xd4,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0x93,0x02,0x26,0x00,0x25,0x00,0x00, +0x00,0x07,0x06,0x98,0x02,0x62,0x00,0x00,0x00,0x01,0x00,0x64,0xff,0x35,0x02,0x0d,0x02,0xda,0x00,0x1b,0x00,0x6e,0x4b,0xb0,0x15,0x50,0x58,0x40,0x29,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x05,0x5f,0x09,0x08,0x02,0x05,0x05,0x39,0x4d,0x00,0x06,0x06,0x07,0x5f, +0x00,0x07,0x07,0x3d,0x07,0x4e,0x1b,0x40,0x26,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x06,0x00,0x07,0x06,0x07,0x63,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x05,0x5f,0x09,0x08,0x02,0x05,0x05,0x39,0x05,0x4e,0x59,0x40,0x11,0x00,0x00,0x00,0x1b,0x00,0x1b,0x21,0x25,0x11,0x11,0x11,0x11,0x11,0x11, +0x0a,0x09,0x1e,0x2b,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x21,0x15,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x64,0x01,0xa4,0xfe,0xb5,0x01,0x28,0xfe,0xd8,0x01,0x4b,0x2f,0x21,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x20,0x27,0x02,0xda,0x52,0xe2,0x50,0xfe,0xfc,0x52,0x1b,0x2d, +0x15,0x16,0x1c,0x3c,0x35,0x28,0x1a,0x36,0x1e,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0xff,0xf6,0x02,0x24,0x02,0xe4,0x00,0x2d,0x00,0x4e,0x40,0x4b,0x07,0x01,0x05,0x04,0x01,0x4c,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x07,0x05,0x06,0x05,0x07,0x06,0x80,0x00,0x04,0x00,0x05,0x07,0x04,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00, +0x01,0x01,0x3e,0x4d,0x00,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x2a,0x29,0x27,0x25,0x21,0x1f,0x1e,0x1c,0x18,0x16,0x14,0x13,0x10,0x0e,0x00,0x2d,0x01,0x2d,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23, +0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x0e,0x02,0x01,0x35,0x48,0x6d,0x3e,0x4e,0x3e,0x34,0x41,0x37,0x61,0x40,0x42,0x65,0x38,0x5a,0x4a,0x3b,0x38,0x46,0x47,0x39,0x57,0x56,0x43,0x53,0x53,0x43,0x41,0x54,0x01,0x5a,0x01,0x3d,0x6b,0x0a,0x35,0x5e,0x3e,0x47,0x67,0x0b,0x03, +0x0d,0x5b,0x3c,0x38,0x55,0x30,0x35,0x5e,0x3f,0x3a,0x48,0x41,0x35,0x36,0x44,0x50,0x4b,0x3c,0x3c,0x4b,0x48,0x3a,0x3e,0x5f,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb1,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x62,0x00,0x00,0x00,0x01,0x00,0x5f,0x00,0x00,0x02,0x0d,0x02,0xda,0x00,0x09, +0x00,0x29,0x40,0x26,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x09,0x1a,0x2b,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x5f,0x01,0xae,0xfe,0xaa,0x01,0x3c,0xfe,0xc6,0x02,0xda, +0x52,0xf2,0x52,0xfe,0xbc,0x00,0x00,0x00,0x00,0x01,0x00,0x58,0xff,0xf6,0x02,0x06,0x02,0xe4,0x00,0x1f,0x00,0x3e,0x40,0x3b,0x00,0x02,0x03,0x06,0x03,0x02,0x06,0x80,0x00,0x06,0x00,0x05,0x04,0x06,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x04,0x04,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00, +0x1c,0x1b,0x1a,0x19,0x16,0x14,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1f,0x01,0x1f,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x23,0x35,0x33,0x15,0x14,0x06,0x01,0x30,0x64,0x74,0x74,0x64,0x62,0x74,0x5a,0x41,0x3b,0x3b, +0x43,0x43,0x3b,0x3b,0x41,0x94,0xee,0x74,0x0a,0x70,0x62,0x01,0x4a,0x62,0x70,0x71,0x61,0x3e,0x43,0x42,0x3e,0xfe,0xb5,0x3e,0x44,0x44,0x3e,0x64,0x52,0xb6,0x61,0x71,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x06,0x03,0xb6,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x06, +0x03,0xb6,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x06,0x03,0xb6,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x06,0x03,0xb6,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x58,0xff,0x10,0x02,0x06,0x02,0xe4,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0xa0,0x02,0x5c,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x06,0x03,0xb0,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0x8f,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5d,0x00,0x00,0x01,0xfb,0x02,0xda,0x00,0x0b,0x00,0x27,0x40,0x24, +0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x02,0x01,0x00,0x00,0x38,0x4d,0x06,0x05,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x5d,0x5a,0xea,0x5a,0x5a,0xea,0x02,0xda,0xfe,0xc8,0x01,0x38,0xfd,0x26,0x01, +0x50,0xfe,0xb0,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x02,0x4e,0x02,0xda,0x00,0x13,0x00,0x17,0x00,0x3b,0x40,0x38,0x05,0x03,0x02,0x01,0x0b,0x06,0x02,0x00,0x0a,0x01,0x00,0x67,0x00,0x0a,0x00,0x08,0x07,0x0a,0x08,0x67,0x04,0x01,0x02,0x02,0x38,0x4d,0x0c,0x09,0x02,0x07,0x07,0x39,0x07,0x4e,0x00,0x00,0x17,0x16,0x15,0x14,0x00,0x13, +0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0d,0x09,0x1f,0x2b,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x11,0x11,0x33,0x35,0x23,0x5d,0x53,0x53,0x5a,0xea,0x5a,0x53,0x53,0x5a,0xea,0xea,0xea,0x02,0x0d,0x4b,0x82,0x82,0x82,0x82,0x4b,0xfd,0xf3,0x01,0x50,0xfe, +0xb0,0x01,0xa2,0x6b,0xff,0xff,0x00,0x5d,0x00,0x00,0x01,0xfb,0x03,0xb6,0x02,0x26,0x00,0x40,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x69,0x00,0x00,0x01,0xef,0x02,0xda,0x00,0x0b,0x00,0x29,0x40,0x26,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x04,0x01,0x00,0x00,0x05,0x5f,0x06,0x01,0x05, +0x05,0x39,0x05,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x33,0x15,0x69,0x95,0x95,0x01,0x86,0x95,0x95,0x52,0x02,0x36,0x52,0x52,0xfd,0xca,0x52,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb6,0x02,0x26,0x00,0x43,0x00,0x00, +0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb6,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb6,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef, +0x03,0xb1,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb0,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x8f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x69,0xff,0x2b,0x01,0xef,0x02,0xda,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x9e,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb6,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xd4,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0x93,0x02,0x26,0x00,0x43,0x00,0x00, +0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x69,0xff,0x35,0x01,0xef,0x02,0xda,0x00,0x1b,0x00,0x62,0x4b,0xb0,0x15,0x50,0x58,0x40,0x23,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x04,0x01,0x00,0x00,0x05,0x5f,0x09,0x08,0x02,0x05,0x05,0x39,0x4d,0x00,0x06,0x06,0x07,0x5f,0x00,0x07,0x07,0x3d,0x07,0x4e, +0x1b,0x40,0x20,0x00,0x06,0x00,0x07,0x06,0x07,0x63,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x04,0x01,0x00,0x00,0x05,0x5f,0x09,0x08,0x02,0x05,0x05,0x39,0x05,0x4e,0x59,0x40,0x11,0x00,0x00,0x00,0x1b,0x00,0x1b,0x21,0x25,0x11,0x11,0x11,0x11,0x11,0x11,0x0a,0x09,0x1e,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x21,0x15, +0x23,0x11,0x33,0x15,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x69,0x95,0x95,0x01,0x86,0x95,0x95,0xa2,0x21,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x20,0x27,0x52,0x02,0x36,0x52,0x52,0xfd,0xca,0x52,0x1b,0x2d,0x15,0x16,0x1c,0x3c,0x35,0x28,0x1a,0x36,0x1e,0x00,0x00,0x00,0xff,0xff,0x00,0x69, +0x00,0x00,0x01,0xef,0x03,0xb1,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x2d,0xff,0xf6,0x01,0xef,0x02,0xda,0x00,0x0f,0x00,0x2b,0x40,0x28,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x03,0x03,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x0c, +0x0b,0x08,0x06,0x04,0x03,0x00,0x0f,0x01,0x0f,0x05,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x01,0x0e,0x69,0x78,0x5a,0x47,0x40,0x40,0x47,0x5a,0x79,0x0a,0x76,0x66,0x43,0x49,0x49,0x43,0x02,0x08,0xfd,0xf8,0x66,0x76,0x00,0x00,0x00,0xff,0xff,0x00,0x2d,0xff,0xf6,0x02,0x77, +0x03,0xb6,0x02,0x26,0x00,0x4f,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0xee,0x00,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x0c,0x00,0x2d,0x40,0x2a,0x07,0x01,0x04,0x01,0x01,0x4c,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x02,0x01,0x00,0x00,0x38,0x4d,0x06,0x05,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x0c, +0x00,0x0c,0x11,0x12,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x13,0x33,0x03,0x13,0x23,0x03,0x23,0x11,0x5c,0x5a,0x6c,0xa2,0x62,0xb5,0xbf,0x67,0xaa,0x69,0x02,0xda,0xfe,0xc6,0x01,0x3a,0xfe,0xa0,0xfe,0x86,0x01,0x51,0xfe,0xaf,0xff,0xff,0x00,0x5c,0xff,0x10,0x02,0x30,0x02,0xda,0x02,0x26,0x00,0x51,0x00,0x00, +0x00,0x07,0x06,0xa0,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x05,0x00,0x1f,0x40,0x1c,0x00,0x00,0x00,0x38,0x4d,0x00,0x01,0x01,0x02,0x60,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x09,0x18,0x2b,0x33,0x11,0x33,0x11,0x21,0x15,0x82,0x5a,0x01,0x4a,0x02, +0xda,0xfd,0x78,0x52,0xff,0xff,0x00,0x75,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x53,0x00,0x00,0x00,0x07,0x06,0x91,0x01,0xe5,0x00,0x00,0xff,0xff,0x00,0x82,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x26,0x00,0x53,0x00,0x00,0x00,0x07,0x06,0x6d,0x01,0xf9,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0x10,0x02,0x26,0x02,0xda,0x02,0x26, +0x00,0x53,0x00,0x00,0x00,0x07,0x06,0xa0,0x02,0x80,0x00,0x00,0xff,0xff,0x00,0x82,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x26,0x00,0x53,0x00,0x00,0x01,0x07,0x03,0x29,0x00,0xa5,0x01,0x13,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x14,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0d,0x00,0x2c,0x40,0x29, +0x0a,0x09,0x08,0x07,0x04,0x03,0x02,0x01,0x08,0x01,0x00,0x01,0x4c,0x00,0x00,0x00,0x38,0x4d,0x00,0x01,0x01,0x02,0x60,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x15,0x15,0x04,0x09,0x18,0x2b,0x33,0x11,0x07,0x35,0x37,0x11,0x33,0x11,0x37,0x15,0x07,0x11,0x21,0x15,0x82,0x6e,0x6e,0x5a,0xaa,0xaa,0x01,0x4a, +0x01,0x30,0x4a,0x50,0x4a,0x01,0x5a,0xfe,0xe3,0x73,0x50,0x73,0xfe,0xe5,0x52,0x00,0x00,0x01,0x00,0x48,0x00,0x00,0x02,0x10,0x02,0xda,0x00,0x13,0x00,0x2e,0x40,0x2b,0x0f,0x0c,0x03,0x03,0x03,0x00,0x01,0x4c,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x01,0x01,0x00,0x00,0x38,0x4d,0x05,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00, +0x00,0x13,0x00,0x13,0x16,0x11,0x12,0x11,0x06,0x09,0x1a,0x2b,0x33,0x11,0x33,0x13,0x13,0x33,0x11,0x23,0x11,0x34,0x36,0x36,0x37,0x03,0x23,0x03,0x16,0x16,0x15,0x11,0x48,0x85,0x5d,0x61,0x85,0x57,0x03,0x06,0x04,0x76,0x4e,0x71,0x08,0x06,0x02,0xda,0xfe,0xc4,0x01,0x3c,0xfd,0x26,0x01,0x59,0x31,0x7f,0x82,0x34,0xfe,0x87,0x01,0x70, +0x4a,0xb0,0x63,0xfe,0xa7,0x00,0x00,0x00,0x00,0x01,0x00,0x5a,0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x11,0x00,0x24,0x40,0x21,0x0c,0x03,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x38,0x4d,0x04,0x03,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x16,0x11,0x05,0x09,0x19,0x2b,0x33,0x11,0x33,0x13,0x2e,0x02, +0x35,0x11,0x33,0x11,0x23,0x03,0x1e,0x02,0x15,0x11,0x5a,0x78,0xdf,0x02,0x05,0x03,0x57,0x78,0xde,0x02,0x04,0x03,0x02,0xda,0xfd,0x8f,0x19,0x49,0x51,0x24,0x01,0x9a,0xfd,0x26,0x02,0x71,0x18,0x49,0x51,0x25,0xfe,0x66,0x00,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x5a,0x00,0x00,0x00,0x07,0x06,0x91, +0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x5a,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x10,0x01,0xfe,0x02,0xda,0x02,0x26,0x00,0x5a,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0x4c,0x01,0xfe,0x02,0xda,0x00,0x19, +0x00,0x2f,0x40,0x2c,0x0f,0x06,0x05,0x03,0x01,0x02,0x01,0x4c,0x03,0x01,0x02,0x02,0x38,0x4d,0x00,0x01,0x01,0x39,0x4d,0x00,0x00,0x00,0x04,0x61,0x05,0x01,0x04,0x04,0x3d,0x04,0x4e,0x00,0x00,0x00,0x19,0x00,0x18,0x16,0x11,0x18,0x21,0x06,0x09,0x1a,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x03,0x1e,0x02,0x15,0x11,0x23,0x11,0x33,0x13, +0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0xf0,0x41,0x35,0x3e,0xfc,0x02,0x04,0x03,0x57,0x78,0xdf,0x02,0x05,0x03,0x57,0x70,0x5d,0xb4,0x52,0x3d,0x34,0x02,0x62,0x18,0x49,0x51,0x25,0xfe,0x66,0x02,0xda,0xfd,0xdb,0x19,0x49,0x52,0x24,0x01,0x4d,0xfd,0x35,0x58,0x6b,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0xb1,0x02,0x26, +0x00,0x5a,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0xf6,0x02,0x00,0x02,0xe4,0x00,0x0d,0x00,0x1b,0x00,0x2d,0x40,0x2a,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x0f,0x0e,0x01,0x00,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08, +0x06,0x00,0x0d,0x01,0x0d,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x01,0x2c,0x62,0x72,0x72,0x62,0x62,0x72,0x72,0x62,0x3b,0x3f,0x3f,0x3b,0x3a,0x40,0x40,0x0a,0x72,0x6a,0x01,0x36,0x6a,0x72,0x72,0x69,0xfe, +0xc9,0x6a,0x72,0x51,0x43,0x3e,0x01,0x4a,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x67,0x03,0xfc,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0xc0,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x2b,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00, +0x00,0x27,0x06,0x9e,0x02,0x58,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x1c,0x03,0xfc,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0xc1,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0xc2,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xfc,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0xc3,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb1,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x2b,0x02,0x00,0x02,0xe4,0x02,0x26,0x00,0x60,0x00,0x00, +0x00,0x07,0x06,0x9e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xd4,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0xf6,0x02,0x12, +0x03,0x2a,0x00,0x15,0x00,0x23,0x00,0x3e,0x40,0x3b,0x09,0x01,0x04,0x01,0x10,0x01,0x03,0x04,0x02,0x4c,0x00,0x02,0x01,0x02,0x85,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x06,0x01,0x03,0x03,0x00,0x61,0x05,0x01,0x00,0x00,0x3f,0x00,0x4e,0x17,0x16,0x01,0x00,0x1e,0x1c,0x16,0x23,0x17,0x23,0x0d,0x0c,0x08,0x06,0x00,0x15, +0x01,0x15,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x36,0x35,0x35,0x33,0x15,0x14,0x07,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x01,0x2c,0x62,0x72,0x72,0x62,0x50,0x35,0x16,0x4b,0x30,0x1e,0x72,0x62,0x3b,0x3f,0x3f,0x3b,0x3a,0x40,0x40,0x0a, +0x72,0x6a,0x01,0x36,0x6a,0x72,0x26,0x07,0x1a,0x4b,0x50,0x3a,0x19,0x33,0x4b,0xfe,0xc9,0x6a,0x72,0x51,0x43,0x3e,0x01,0x4a,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x12,0x03,0xb6,0x02,0x26,0x00,0x6d,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x2b,0x02,0x12, +0x03,0x2a,0x02,0x26,0x00,0x6d,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x12,0x03,0xb6,0x02,0x26,0x00,0x6d,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x44,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x12,0x03,0xd4,0x02,0x26,0x00,0x6d,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x4e,0x00,0x00, +0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x12,0x03,0xb1,0x02,0x26,0x00,0x6d,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x10,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x92,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0x93,0x02,0x26,0x00,0x60,0x00,0x00, +0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x35,0x02,0x00,0x02,0xe4,0x00,0x1d,0x00,0x2b,0x00,0x64,0x4b,0xb0,0x15,0x50,0x58,0x40,0x21,0x00,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x07,0x01,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x03,0x03,0x00,0x5f,0x06,0x01,0x00,0x00,0x3d,0x00,0x4e, +0x1b,0x40,0x1e,0x00,0x03,0x06,0x01,0x00,0x03,0x00,0x63,0x00,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x07,0x01,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x17,0x1f,0x1e,0x01,0x00,0x26,0x24,0x1e,0x2b,0x1f,0x2b,0x1c,0x1a,0x0e,0x0c,0x07,0x05,0x00,0x1d,0x01,0x1d,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35, +0x34,0x37,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x03,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x01,0x7b,0x37,0x43,0x38,0x0d,0x62,0x72,0x72,0x62,0x62,0x72,0x2b,0x27,0x1d,0x21,0x1a,0x1e,0x19,0x3c,0x9d,0x3b,0x3f,0x3f, +0x3b,0x3a,0x40,0x40,0xcb,0x35,0x28,0x2e,0x36,0x70,0x62,0x01,0x4a,0x62,0x70,0x6f,0x62,0xfe,0xb5,0x3b,0x5a,0x1a,0x18,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x01,0x12,0x43,0x3e,0x01,0x4a,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0x00,0x00,0x03,0x00,0x23,0xff,0xd8,0x02,0x35,0x02,0xee,0x00,0x15,0x00,0x1c,0x00,0x23,0x00,0x75,0x40,0x13, +0x09,0x01,0x04,0x00,0x22,0x21,0x18,0x17,0x0c,0x01,0x06,0x05,0x04,0x14,0x01,0x02,0x05,0x03,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x06,0x01,0x03,0x02,0x03,0x86,0x00,0x04,0x04,0x00,0x61,0x01,0x01,0x00,0x00,0x3e,0x4d,0x07,0x01,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x3f,0x02,0x4e,0x1b,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x06, +0x01,0x03,0x02,0x03,0x86,0x00,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x3e,0x4d,0x07,0x01,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x3f,0x02,0x4e,0x59,0x40,0x14,0x1e,0x1d,0x00,0x00,0x1d,0x23,0x1e,0x23,0x1b,0x19,0x00,0x15,0x00,0x15,0x26,0x12,0x26,0x08,0x09,0x19,0x2b,0x17,0x37,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x37,0x33,0x07, +0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x27,0x07,0x13,0x11,0x13,0x26,0x23,0x22,0x06,0x13,0x32,0x36,0x35,0x11,0x03,0x16,0x23,0x4c,0x17,0x72,0x62,0x5c,0x38,0x21,0x54,0x46,0x11,0x72,0x62,0x55,0x37,0x29,0x3b,0xe0,0x1f,0x47,0x3a,0x40,0x7a,0x3b,0x3f,0xda,0x20,0x28,0x86,0x2d,0x3d,0x01,0x4a,0x62,0x70,0x31,0x3b,0x7d,0x29,0x35,0xfe, +0xb5,0x62,0x70,0x2b,0x49,0x02,0x3a,0xfe,0xc3,0x01,0x8d,0x31,0x43,0xfd,0xf7,0x43,0x3e,0x01,0x29,0xfe,0x7e,0x28,0x00,0x00,0xff,0xff,0x00,0x23,0xff,0xd8,0x02,0x35,0x03,0xb6,0x02,0x26,0x00,0x76,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb1,0x02,0x26,0x00,0x60,0x00,0x00, +0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x28,0xff,0xf6,0x02,0x3f,0x02,0xe4,0x00,0x1d,0x00,0x2b,0x00,0xe3,0x4b,0xb0,0x15,0x50,0x58,0x40,0x0a,0x0b,0x01,0x03,0x01,0x19,0x01,0x00,0x06,0x02,0x4c,0x1b,0x40,0x0a,0x0b,0x01,0x03,0x09,0x19,0x01,0x08,0x06,0x02,0x4c,0x59,0x4b,0xb0,0x15,0x50,0x58,0x40,0x23,0x00,0x04, +0x00,0x05,0x06,0x04,0x05,0x67,0x09,0x01,0x03,0x03,0x01,0x61,0x02,0x01,0x01,0x01,0x3e,0x4d,0x0b,0x08,0x02,0x06,0x06,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x38,0x00,0x04,0x00,0x05,0x06,0x04,0x05,0x67,0x00,0x09,0x09,0x01,0x61,0x02,0x01,0x01,0x01,0x3e,0x4d,0x00,0x03,0x03,0x01, +0x61,0x02,0x01,0x01,0x01,0x3e,0x4d,0x00,0x06,0x06,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x33,0x00,0x04,0x00,0x05,0x06,0x04,0x05,0x67,0x00,0x09,0x09,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d, +0x00,0x06,0x06,0x07,0x5f,0x00,0x07,0x07,0x39,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x0a,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x59,0x40,0x1f,0x1f,0x1e,0x01,0x00,0x26,0x24,0x1e,0x2b,0x1f,0x2b,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x08,0x06,0x00,0x1d,0x01,0x1d,0x0c,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x11, +0x34,0x36,0x33,0x32,0x16,0x16,0x17,0x33,0x35,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x21,0x35,0x23,0x0e,0x02,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0xc3,0x48,0x53,0x53,0x48,0x23,0x2e,0x1a,0x03,0x05,0x01,0x09,0xb1,0x98,0x98,0xb1,0xfe,0xf7,0x05,0x03,0x1a,0x2e,0x0a,0x2a,0x30,0x30, +0x2a,0x2a,0x30,0x30,0x0a,0x66,0x58,0x01,0x72,0x58,0x66,0x1d,0x29,0x14,0x50,0x52,0xe6,0x52,0xfe,0x52,0x50,0x13,0x2a,0x1d,0x50,0x3b,0x33,0x01,0x72,0x33,0x3b,0x3b,0x33,0xfe,0x8e,0x33,0x3b,0x00,0x00,0x00,0x00,0x02,0x00,0x5c,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x2b,0x40,0x28,0x00,0x03,0x00,0x01,0x02,0x03, +0x01,0x67,0x00,0x04,0x04,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x0a,0x24,0x21,0x06,0x09,0x18,0x2b,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x5c,0xeb,0x66,0x79,0x79,0x66,0x91,0x91,0x3b, +0x47,0x47,0x3b,0x91,0x02,0xda,0x75,0x62,0x62,0x75,0xfe,0xd4,0x01,0x7d,0x49,0x3d,0x3e,0x48,0x00,0x00,0x00,0x02,0x00,0x5a,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0d,0x00,0x16,0x00,0x2f,0x40,0x2c,0x00,0x01,0x00,0x05,0x04,0x01,0x05,0x67,0x00,0x04,0x00,0x02,0x03,0x04,0x02,0x67,0x00,0x00,0x00,0x38,0x4d,0x06,0x01,0x03,0x03,0x39, +0x03,0x4e,0x00,0x00,0x16,0x14,0x10,0x0e,0x00,0x0d,0x00,0x0d,0x25,0x21,0x11,0x07,0x09,0x19,0x2b,0x33,0x11,0x33,0x15,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x5a,0x5a,0x99,0x42,0x61,0x36,0x76,0x63,0x99,0x99,0x3a,0x42,0x43,0x39,0x99,0x02,0xda,0x96,0x32,0x5a,0x3c,0x5b, +0x6d,0xb4,0x01,0x04,0x41,0x37,0x38,0x40,0x00,0x02,0x00,0x50,0xff,0x4c,0x02,0x0e,0x02,0xe4,0x00,0x13,0x00,0x21,0x00,0x38,0x40,0x35,0x12,0x01,0x00,0x03,0x01,0x4c,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x06,0x01,0x03,0x03,0x00,0x61,0x00,0x00,0x00,0x3f,0x4d,0x05,0x01,0x02,0x02,0x3d,0x02,0x4e,0x15,0x14,0x00,0x00, +0x1c,0x1a,0x14,0x21,0x15,0x21,0x00,0x13,0x00,0x13,0x25,0x23,0x07,0x09,0x18,0x2b,0x05,0x27,0x22,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x17,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x01,0xa6,0x67,0x04,0x0a,0x05,0x65,0x77,0x77,0x65,0x65,0x77,0x3a,0x35, +0x75,0xe2,0x3b,0x47,0x47,0x3b,0x3b,0x47,0x47,0xb4,0xab,0x01,0x75,0x62,0x01,0x40,0x62,0x75,0x75,0x62,0xfe,0xc0,0x43,0x64,0x19,0xc1,0xfa,0x4a,0x3d,0x01,0x40,0x3e,0x49,0x49,0x3e,0xfe,0xc0,0x3d,0x4a,0x00,0x00,0x02,0x00,0x5d,0x00,0x00,0x02,0x21,0x02,0xda,0x00,0x0e,0x00,0x17,0x00,0x33,0x40,0x30,0x09,0x01,0x02,0x04,0x01,0x4c, +0x00,0x04,0x00,0x02,0x01,0x04,0x02,0x67,0x00,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x06,0x03,0x02,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x17,0x15,0x11,0x0f,0x00,0x0e,0x00,0x0e,0x11,0x17,0x21,0x07,0x09,0x19,0x2b,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x13,0x23,0x03,0x23,0x11,0x11,0x33,0x32,0x36,0x35,0x34, +0x26,0x23,0x23,0x5d,0xe1,0x41,0x62,0x36,0x4c,0x3f,0x95,0x63,0x8f,0x79,0x88,0x38,0x44,0x44,0x38,0x88,0x02,0xda,0x35,0x5e,0x3f,0x4a,0x6a,0x15,0xfe,0xc1,0x01,0x36,0xfe,0xca,0x01,0x87,0x47,0x3a,0x3b,0x46,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x21,0x03,0xb6,0x02,0x26,0x00,0x7d,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00, +0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x21,0x03,0xb6,0x02,0x26,0x00,0x7d,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5d,0xff,0x10,0x02,0x21,0x02,0xda,0x02,0x26,0x00,0x7d,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x48,0xff,0xf6,0x02,0x10,0x02,0xe4,0x00,0x29,0x00,0x3b,0x40,0x38, +0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x3e,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x1e,0x1c,0x1a,0x19,0x16,0x14,0x08,0x06,0x04,0x03,0x00,0x29,0x01,0x29,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16, +0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x01,0x30,0x6a,0x7e,0x5a,0x4e,0x40,0x3e,0x4a,0x2f,0x2c,0x6f,0x45,0x4f,0x34,0x5e,0x3d,0x3e,0x5f,0x36,0x5a,0x44,0x35,0x35,0x42,0x2b,0x27,0x72,0x49, +0x51,0x7a,0x0a,0x70,0x62,0x3d,0x45,0x48,0x3a,0x2c,0x41,0x0c,0x1f,0x14,0x67,0x46,0x3a,0x58,0x31,0x31,0x57,0x39,0x32,0x3f,0x3f,0x32,0x28,0x39,0x0b,0x20,0x14,0x6f,0x4c,0x60,0x72,0x00,0xff,0xff,0x00,0x48,0xff,0xf6,0x02,0x10,0x03,0xb6,0x02,0x26,0x00,0x81,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x48, +0xff,0xf6,0x02,0x10,0x03,0xb6,0x02,0x26,0x00,0x81,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x48,0xff,0x35,0x02,0x10,0x02,0xe4,0x00,0x3d,0x00,0x95,0x40,0x0a,0x09,0x01,0x07,0x03,0x36,0x01,0x01,0x07,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x36,0x00,0x05,0x06,0x02,0x06,0x05,0x02,0x80,0x00,0x02,0x03, +0x06,0x02,0x03,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x72,0x00,0x06,0x06,0x04,0x61,0x00,0x04,0x04,0x3e,0x4d,0x00,0x03,0x03,0x07,0x61,0x00,0x07,0x07,0x3f,0x4d,0x00,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08,0x3d,0x08,0x4e,0x1b,0x40,0x34,0x00,0x05,0x06,0x02,0x06,0x05,0x02,0x80,0x00,0x02,0x03,0x06,0x02,0x03,0x7e,0x00,0x01,0x07, +0x00,0x07,0x01,0x00,0x80,0x00,0x00,0x09,0x01,0x08,0x00,0x08,0x63,0x00,0x06,0x06,0x04,0x61,0x00,0x04,0x04,0x3e,0x4d,0x00,0x03,0x03,0x07,0x61,0x00,0x07,0x07,0x3f,0x07,0x4e,0x59,0x40,0x11,0x00,0x00,0x00,0x3d,0x00,0x3c,0x1b,0x22,0x13,0x2c,0x22,0x14,0x14,0x21,0x0a,0x09,0x1e,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23, +0x37,0x26,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xcd,0x46,0x16,0x1b,0x37,0x32,0x18,0x4f,0x5c,0x5a,0x4e,0x40, +0x3e,0x4a,0x2f,0x2c,0x6f,0x45,0x4f,0x34,0x5e,0x3d,0x3e,0x5f,0x36,0x5a,0x44,0x35,0x35,0x42,0x2b,0x27,0x72,0x49,0x51,0x7a,0x66,0x03,0x02,0x09,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x40,0x0f,0x6b,0x53,0x3d,0x45,0x48,0x3a,0x2c,0x41,0x0c,0x1f,0x14,0x67,0x46,0x3a,0x58,0x31,0x31,0x57,0x39,0x32,0x3f,0x3f,0x32, +0x28,0x39,0x0b,0x20,0x14,0x6f,0x4c,0x60,0x72,0x19,0x03,0x14,0x24,0x1a,0x22,0x31,0xff,0xff,0x00,0x48,0xff,0xf6,0x02,0x10,0x03,0xb6,0x02,0x26,0x00,0x81,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x48,0xff,0x10,0x02,0x10,0x02,0xe4,0x02,0x26,0x00,0x81,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00, +0x00,0x01,0x00,0x5c,0x00,0x00,0x02,0x1c,0x02,0xda,0x00,0x20,0x00,0x38,0x40,0x35,0x1a,0x07,0x02,0x01,0x05,0x01,0x4c,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x69,0x00,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x02,0x61,0x07,0x06,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x20,0x00,0x20,0x22,0x24,0x21,0x25, +0x12,0x24,0x08,0x09,0x1c,0x2b,0x33,0x11,0x34,0x36,0x36,0x33,0x33,0x15,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x37,0x23,0x22,0x06,0x15,0x11,0x5c,0x34,0x5f,0x3f,0xe3,0xa2,0x4e,0x5f,0x36,0x60,0x41,0x43,0x39,0x3c,0x46,0x46,0x3c,0x2d,0xa4,0x84,0x37,0x41,0x02,0x0c,0x3e, +0x5d,0x33,0x58,0xdb,0x05,0x70,0x5b,0x40,0x61,0x36,0x52,0x48,0x3d,0x3c,0x46,0x4e,0xe1,0x42,0x3a,0xfd,0xf4,0x00,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0xe4,0x00,0x16,0x00,0x1f,0x00,0x43,0x40,0x40,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x67,0x00,0x02,0x02,0x04,0x61,0x00, +0x04,0x04,0x3e,0x4d,0x08,0x01,0x05,0x05,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x11,0x0f,0x0d,0x0c,0x0a,0x08,0x05,0x04,0x00,0x16,0x01,0x16,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x21,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x15,0x11, +0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x15,0x14,0x16,0x01,0x2c,0x61,0x71,0x01,0x4a,0x3d,0x3b,0x3a,0x3e,0x5a,0x70,0x62,0x64,0x6e,0x70,0x62,0x3e,0x3a,0xf0,0x3b,0x0a,0x73,0x5f,0xc8,0x83,0x3e,0x43,0x44,0x3e,0x61,0x71,0x70,0x62,0xfe,0xb6,0x5f,0x73,0x4b,0x46,0x41,0x82,0x82,0x41,0x46,0x00,0x01,0x00,0x37,0x00,0x00,0x02,0x21, +0x02,0xda,0x00,0x07,0x00,0x21,0x40,0x1e,0x02,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xff,0xc8,0x01,0xea,0xc8,0x02,0x88,0x52,0x52,0xfd,0x78,0x00,0x00,0x00,0x01,0x00,0x37, +0x00,0x00,0x02,0x21,0x02,0xda,0x00,0x0f,0x00,0x2f,0x40,0x2c,0x05,0x01,0x01,0x06,0x01,0x00,0x07,0x01,0x00,0x67,0x04,0x01,0x02,0x02,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x08,0x01,0x07,0x07,0x39,0x07,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x09,0x1d,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x23, +0x35,0x21,0x15,0x23,0x11,0x33,0x15,0x23,0x11,0xff,0x91,0x91,0xc8,0x01,0xea,0xc8,0x91,0x91,0x01,0x27,0x4b,0x01,0x16,0x52,0x52,0xfe,0xea,0x4b,0xfe,0xd9,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x21,0x03,0xb6,0x02,0x26,0x00,0x89,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x37,0xff,0x35,0x02,0x21, +0x02,0xda,0x00,0x19,0x00,0x6f,0x40,0x0b,0x08,0x01,0x05,0x06,0x01,0x4c,0x07,0x01,0x06,0x01,0x4b,0x4b,0xb0,0x15,0x50,0x58,0x40,0x24,0x00,0x05,0x06,0x04,0x06,0x05,0x04,0x80,0x02,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x07,0x01,0x06,0x06,0x39,0x4d,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40, +0x21,0x00,0x05,0x06,0x04,0x06,0x05,0x04,0x80,0x00,0x04,0x00,0x03,0x04,0x03,0x63,0x02,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x59,0x40,0x0f,0x00,0x00,0x00,0x19,0x00,0x19,0x14,0x21,0x28,0x11,0x11,0x11,0x08,0x09,0x1c,0x2b,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x07,0x1e,0x02, +0x15,0x14,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0xff,0xc8,0x01,0xea,0xc8,0x0c,0x1a,0x38,0x26,0x42,0x36,0x55,0x46,0x16,0x1b,0x37,0x32,0x19,0x02,0x88,0x52,0x52,0xfd,0x78,0x23,0x03,0x14,0x24,0x1a,0x22,0x31,0x37,0x17,0x0d,0x11,0x1a,0x45,0x00,0xff,0xff,0x00,0x37,0xff,0x10,0x02,0x21,0x02,0xda,0x02,0x26, +0x00,0x89,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0xda,0x00,0x11,0x00,0x24,0x40,0x21,0x03,0x01,0x01,0x01,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x0e,0x0d,0x0a,0x08,0x05,0x04,0x00,0x11,0x01,0x11,0x05,0x09,0x16,0x2b,0x05,0x22, +0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x01,0x2c,0x66,0x6c,0x5a,0x3b,0x3d,0x3c,0x3c,0x5a,0x6b,0x0a,0x71,0x61,0x02,0x12,0xfd,0xee,0x3c,0x46,0x46,0x3c,0x02,0x12,0xfd,0xee,0x62,0x70,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x91, +0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb1,0x02,0x26, +0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x2b,0x01,0xfe,0x02,0xda,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x5a, +0xff,0xf6,0x01,0xfe,0x03,0xd4,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0xf6,0x02,0x53,0x03,0x48,0x00,0x1a,0x00,0x31,0x40,0x2e,0x17,0x01,0x02,0x01,0x01,0x4c,0x00,0x04,0x01,0x04,0x85,0x03,0x01,0x01,0x01,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x05,0x01,0x00,0x00,0x3f,0x00, +0x4e,0x01,0x00,0x13,0x12,0x0f,0x0d,0x0a,0x08,0x05,0x04,0x00,0x1a,0x01,0x1a,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x11,0x14,0x06,0x01,0x2c,0x66,0x6c,0x5a,0x3b,0x3d,0x3c,0x3c,0x41,0x10,0x13,0x4b,0x2e,0x27,0x6b,0x0a,0x71, +0x61,0x02,0x12,0xfd,0xee,0x3c,0x46,0x46,0x3c,0x02,0x12,0x13,0x10,0x4b,0x50,0x27,0x31,0x06,0xfe,0x2e,0x62,0x70,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x53,0x03,0xb6,0x02,0x26,0x00,0x96,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x2b,0x02,0x53,0x03,0x48,0x02,0x26,0x00,0x96,0x00,0x00, +0x00,0x07,0x06,0x9e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x53,0x03,0xb6,0x02,0x26,0x00,0x96,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x53,0x03,0xd4,0x02,0x26,0x00,0x96,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x53, +0x03,0xb1,0x02,0x26,0x00,0x96,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x10,0x03,0xb6,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x92,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x93,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00, +0x00,0x01,0x00,0x5a,0xff,0x35,0x01,0xfe,0x02,0xda,0x00,0x20,0x00,0x56,0x4b,0xb0,0x15,0x50,0x58,0x40,0x1c,0x04,0x01,0x02,0x02,0x38,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x05,0x05,0x00,0x5f,0x06,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x19,0x00,0x05,0x06,0x01,0x00,0x05,0x00,0x63,0x04,0x01,0x02,0x02, +0x38,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x13,0x01,0x00,0x1f,0x1d,0x14,0x13,0x10,0x0e,0x0b,0x0a,0x07,0x05,0x00,0x20,0x01,0x20,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x37,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x07,0x07,0x06,0x06,0x15, +0x14,0x16,0x33,0x33,0x15,0x01,0x7b,0x37,0x43,0x38,0x0d,0x62,0x70,0x5a,0x3e,0x3a,0x3b,0x3d,0x5a,0x50,0x1d,0x21,0x1a,0x1e,0x19,0x3c,0xcb,0x35,0x28,0x2e,0x36,0x70,0x62,0x02,0x12,0xfd,0xee,0x3e,0x43,0x43,0x3e,0x02,0x12,0xfd,0xee,0x79,0x36,0x18,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe, +0x03,0xe2,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x96,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb1,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0c,0x00,0x21,0x40,0x1e,0x06,0x01,0x02,0x00,0x01,0x4c,0x01,0x01, +0x00,0x00,0x38,0x4d,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x18,0x11,0x04,0x09,0x18,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0xee,0xbc,0x5c,0x7d,0x0d,0x11,0x04,0x04,0x13,0x0d,0x78,0x5d,0xbd,0x02,0xda,0xfe,0x0f,0x34,0x58,0x17,0x17,0x59,0x34,0x01,0xf0,0xfd,0x26,0x00, +0x00,0x01,0x00,0x14,0x00,0x00,0x02,0x44,0x02,0xda,0x00,0x1e,0x00,0x26,0x40,0x23,0x1a,0x06,0x02,0x03,0x00,0x01,0x4c,0x02,0x01,0x02,0x00,0x00,0x38,0x4d,0x05,0x04,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x1e,0x00,0x1e,0x11,0x18,0x18,0x11,0x06,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33, +0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x23,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x6b,0x57,0x53,0x39,0x04,0x04,0x01,0x02,0x07,0x04,0x48,0x61,0x42,0x04,0x08,0x02,0x02,0x05,0x04,0x3b,0x4f,0x59,0x71,0x42,0x04,0x04,0x02,0x02,0x04,0x05,0x47,0x02,0xda,0xfd,0xe4,0x21,0x47,0x15,0x15,0x47,0x21,0x02,0x1c,0xfd,0xe4, +0x21,0x47,0x15,0x15,0x47,0x21,0x02,0x1c,0xfd,0x26,0x02,0x26,0x22,0x41,0x12,0x12,0x41,0x22,0xfd,0xda,0xff,0xff,0x00,0x14,0x00,0x00,0x02,0x44,0x03,0xb6,0x02,0x26,0x00,0xa2,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x14,0x00,0x00,0x02,0x44,0x03,0xb6,0x02,0x26,0x00,0xa2,0x00,0x00,0x00,0x07,0x06,0x93, +0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x14,0x00,0x00,0x02,0x44,0x03,0xb1,0x02,0x26,0x00,0xa2,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x14,0x00,0x00,0x02,0x44,0x03,0xb6,0x02,0x26,0x00,0xa2,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0x00,0x01,0x00,0x28,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x17, +0x00,0x26,0x40,0x23,0x13,0x0d,0x07,0x01,0x04,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x38,0x4d,0x04,0x03,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x17,0x00,0x17,0x12,0x18,0x12,0x05,0x09,0x19,0x2b,0x33,0x13,0x03,0x33,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x03,0x13,0x23,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07, +0x28,0xd2,0xc7,0x68,0x71,0x09,0x13,0x06,0x05,0x13,0x09,0x73,0x63,0xc7,0xd2,0x67,0x7d,0x09,0x13,0x05,0x05,0x13,0x09,0x7e,0x01,0x72,0x01,0x68,0xd8,0x11,0x27,0x0b,0x0b,0x27,0x11,0xd8,0xfe,0x9e,0xfe,0x88,0xe8,0x11,0x27,0x0c,0x0c,0x26,0x11,0xe9,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x35,0x02,0xda,0x00,0x0e,0x00,0x23,0x40,0x20, +0x0d,0x07,0x01,0x03,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x38,0x4d,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x0e,0x00,0x0e,0x18,0x12,0x04,0x09,0x18,0x2b,0x33,0x11,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x11,0xff,0xdc,0x60,0x8e,0x0c,0x0e,0x02,0x02,0x0f,0x0c,0x8e,0x5d,0xdc,0x01,0x11,0x01, +0xc9,0xfe,0xd4,0x19,0x23,0x08,0x08,0x23,0x19,0x01,0x2c,0xfe,0x37,0xfe,0xef,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xb6,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xb6,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xb1,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x23,0xff,0x2b,0x02,0x35,0x02,0xda,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x9e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xb6,0x02,0x26,0x00,0xa8,0x00,0x00, +0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xd4,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0x93,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35, +0x03,0xb1,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x55,0x00,0x00,0x02,0x03,0x02,0xda,0x00,0x09,0x00,0x2c,0x40,0x29,0x06,0x01,0x02,0x02,0x00,0x01,0x4c,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00, +0x09,0x00,0x09,0x12,0x11,0x12,0x05,0x09,0x19,0x2b,0x33,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x55,0x01,0x49,0xfe,0xbc,0x01,0x9f,0xfe,0xb7,0x01,0x53,0x5a,0x02,0x2e,0x52,0x5a,0xfd,0xd2,0x52,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x03,0x03,0xb6,0x02,0x26,0x00,0xb1,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00, +0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x03,0x03,0xb6,0x02,0x26,0x00,0xb1,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x03,0x03,0xb0,0x02,0x26,0x00,0xb1,0x00,0x00,0x00,0x07,0x06,0x8f,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x19,0x00,0x00,0x02,0x3f,0x02,0xda,0x00,0x18,0x00,0x2d,0x40,0x2a, +0x17,0x06,0x02,0x03,0x01,0x01,0x4c,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x02,0x01,0x00,0x00,0x38,0x4d,0x05,0x04,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x18,0x00,0x18,0x11,0x18,0x18,0x11,0x06,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33, +0x03,0x23,0x03,0x03,0x62,0x49,0x53,0x30,0x03,0x03,0x01,0x02,0x04,0x07,0x4c,0x66,0x45,0x06,0x07,0x01,0x01,0x05,0x03,0x32,0x4f,0x4b,0x73,0x53,0x59,0x02,0xda,0xfd,0xe4,0x21,0x3d,0x15,0x15,0x3c,0x22,0x01,0x90,0xfe,0x70,0x22,0x3c,0x15,0x15,0x3d,0x21,0x02,0x1c,0xfd,0x26,0x01,0xf4,0xfe,0x0c,0x00,0x00,0x00,0xff,0xff,0x00,0x19, +0x00,0x00,0x02,0x3f,0x03,0xb6,0x02,0x26,0x00,0xb5,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x19,0x00,0x00,0x02,0x3f,0x03,0xb6,0x02,0x26,0x00,0xb5,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x19,0x00,0x00,0x02,0x3f,0x03,0xb1,0x02,0x26,0x00,0xb5,0x00,0x00,0x00,0x07,0x06,0x8e, +0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x19,0x00,0x00,0x02,0x3f,0x03,0xb6,0x02,0x26,0x00,0xb5,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0x00,0x02,0x00,0x5d,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x05,0x00,0x09,0x00,0x2b,0x40,0x28,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x02,0x01,0x00,0x00,0x38,0x4d,0x05,0x03,0x04,0x03,0x01, +0x01,0x39,0x01,0x4e,0x06,0x06,0x00,0x00,0x06,0x09,0x06,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x12,0x06,0x09,0x17,0x2b,0x21,0x03,0x13,0x33,0x03,0x13,0x21,0x11,0x33,0x11,0x01,0xbf,0xf9,0xf9,0x67,0xf0,0xfa,0xfe,0x2d,0x5a,0x01,0x7c,0x01,0x5e,0xfe,0xa2,0xfe,0x84,0x02,0xda,0xfd,0x26,0x00,0xff,0xff,0x00,0x5d,0xff,0x10,0x02,0x30, +0x02,0xda,0x02,0x26,0x00,0xba,0x00,0x00,0x00,0x07,0x06,0xa0,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x4c,0x02,0x00,0x02,0xe4,0x00,0x18,0x00,0x26,0x00,0x3e,0x40,0x3b,0x12,0x04,0x02,0x02,0x03,0x01,0x4c,0x06,0x01,0x03,0x04,0x02,0x04,0x03,0x02,0x80,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x02,0x02,0x00, +0x60,0x05,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1a,0x19,0x01,0x00,0x21,0x1f,0x19,0x26,0x1a,0x26,0x17,0x15,0x0c,0x0a,0x00,0x18,0x01,0x18,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x26,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x15,0x14,0x16,0x33,0x33,0x15,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22, +0x06,0x15,0x11,0x14,0x16,0x01,0x8b,0x44,0x52,0x4a,0x53,0x72,0x62,0x62,0x72,0x5e,0x53,0x21,0x1b,0x6e,0xcd,0x3b,0x3f,0x3f,0x3b,0x3a,0x40,0x40,0xb4,0x4f,0x42,0x1e,0x0f,0x6e,0x5a,0x01,0x36,0x6a,0x72,0x72,0x69,0xfe,0xc9,0x60,0x70,0x0a,0x1b,0x1c,0x23,0x52,0xfb,0x43,0x3e,0x01,0x4a,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0x00, +0x00,0x02,0x00,0x43,0xff,0xf6,0x01,0xfc,0x02,0x30,0x00,0x1b,0x00,0x26,0x00,0x84,0xb5,0x18,0x01,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x28,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x67,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x05,0x08, +0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x2c,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x67,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x05,0x05,0x39,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1b,0x1d,0x1c,0x01,0x00,0x22,0x20,0x1c,0x26, +0x1d,0x26,0x17,0x16,0x13,0x11,0x0f,0x0e,0x0c,0x0a,0x08,0x06,0x00,0x1b,0x01,0x1b,0x0a,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x35,0x34,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0xfc,0x55,0x64,0x2e,0x52, +0x35,0xaa,0x75,0x34,0x40,0x02,0x5a,0x05,0x6f,0x5c,0x64,0x6b,0x59,0x02,0x08,0x56,0x31,0x42,0x4e,0xa0,0x2c,0x37,0x3d,0x0a,0x5f,0x4d,0x33,0x4c,0x2b,0x2b,0x6b,0x26,0x22,0x41,0x55,0x60,0x56,0xfe,0x86,0x64,0x33,0x3b,0x4c,0x40,0x37,0x4d,0x35,0x2c,0x2e,0x35,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x11,0x02,0x26, +0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x7a,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb4,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43, +0xff,0x2b,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x27,0x06,0x78,0x02,0x5d,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x7a,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb5,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0xa2,0x02,0x26, +0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb6,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0xa0,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb7,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43, +0xff,0xf6,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x02,0x76,0x03,0x84,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb8,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0x2b,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x27,0x06,0x78, +0x02,0x5d,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x02,0x26,0x03,0x84,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb9,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x02,0x2b,0x03,0xa2,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xba,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43, +0xff,0xf6,0x01,0xfc,0x03,0xa0,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xbb,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x09,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0x2b,0x01,0xfc,0x02,0x30,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x78, +0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x53,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x39,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x02,0xe9,0x02,0x26, +0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x5d,0x00,0x00,0x00,0x02,0x00,0x43,0xff,0x35,0x02,0x31,0x02,0x30,0x00,0x2b,0x00,0x36,0x00,0xea,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0a,0x28,0x01,0x08,0x09,0x16,0x01,0x00,0x08,0x02,0x4c,0x1b,0x40,0x0b,0x28,0x01,0x08,0x09,0x01,0x4c,0x16,0x01,0x07,0x01,0x4b,0x59,0x4b,0xb0,0x15,0x50, +0x58,0x40,0x32,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x67,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x4d,0x00,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3d,0x06,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x2f,0x00,0x03,0x02, +0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x67,0x00,0x05,0x00,0x06,0x05,0x06,0x63,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x33,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x67,0x00, +0x05,0x00,0x06,0x05,0x06,0x63,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x07,0x07,0x39,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x0a,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x59,0x40,0x1f,0x2d,0x2c,0x01,0x00,0x32,0x30,0x2c,0x36,0x2d,0x36,0x27,0x26,0x21,0x1f,0x1e,0x1c,0x13,0x11,0x0f,0x0e,0x0c,0x0a,0x08,0x06,0x00,0x2b, +0x01,0x2b,0x0c,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x35,0x34,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0xfc,0x55,0x64, +0x2e,0x52,0x35,0xaa,0x75,0x34,0x40,0x02,0x5a,0x05,0x6f,0x5c,0x64,0x6b,0x02,0x22,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x20,0x27,0x0d,0x02,0x08,0x56,0x31,0x42,0x4e,0xa0,0x2c,0x37,0x3d,0x0a,0x5f,0x4d,0x33,0x4c,0x2b,0x2b,0x6b,0x26,0x22,0x41,0x55,0x60,0x56,0xfe,0x86,0x1c,0x2c,0x15,0x16,0x1c,0x3c,0x35,0x28,0x1a,0x36,0x1e,0x64, +0x33,0x3b,0x4c,0x40,0x37,0x4d,0x35,0x2c,0x2e,0x35,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x44,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x71,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x0c,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x5d,0x00,0x00,0x00,0x03,0x00,0x1f, +0xff,0xf6,0x02,0x35,0x02,0x30,0x00,0x2d,0x00,0x36,0x00,0x41,0x00,0xa9,0x40,0x0a,0x15,0x01,0x03,0x02,0x2b,0x01,0x07,0x08,0x02,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x33,0x00,0x03,0x02,0x01,0x02,0x03,0x72,0x00,0x08,0x06,0x07,0x07,0x08,0x72,0x0a,0x01,0x01,0x0d,0x01,0x06,0x08,0x01,0x06,0x67,0x0b,0x01,0x02,0x02,0x04,0x61,0x05, +0x01,0x04,0x04,0x41,0x4d,0x0f,0x0c,0x02,0x07,0x07,0x00,0x62,0x09,0x0e,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x35,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x08,0x06,0x07,0x06,0x08,0x07,0x80,0x0a,0x01,0x01,0x0d,0x01,0x06,0x08,0x01,0x06,0x67,0x0b,0x01,0x02,0x02,0x04,0x61,0x05,0x01,0x04,0x04,0x41,0x4d,0x0f,0x0c,0x02, +0x07,0x07,0x00,0x62,0x09,0x0e,0x02,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x27,0x38,0x37,0x01,0x00,0x3d,0x3b,0x37,0x41,0x38,0x41,0x34,0x32,0x2f,0x2e,0x29,0x27,0x25,0x24,0x22,0x20,0x1d,0x1c,0x19,0x17,0x13,0x11,0x0f,0x0e,0x0c,0x0a,0x07,0x05,0x00,0x2d,0x01,0x2d,0x10,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35, +0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x13,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x03,0x32,0x36,0x35,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0xb2,0x41,0x52,0x54,0x43,0x51,0x24, +0x20,0x1f,0x26,0x4f,0x4b,0x3c,0x31,0x44,0x05,0x05,0x41,0x2e,0x41,0x50,0xde,0x25,0x20,0x20,0x25,0x54,0x50,0x41,0x2b,0x41,0x08,0x08,0x46,0x75,0x8a,0x25,0x20,0x1f,0x26,0x98,0x21,0x27,0x4f,0x1f,0x26,0x29,0x0a,0x5e,0x4b,0x4a,0x5b,0x4b,0x29,0x2d,0x27,0x20,0x41,0x51,0x31,0x28,0x28,0x31,0x59,0x47,0x90,0x6a,0x28,0x2d,0x28,0x20, +0x41,0x52,0x32,0x28,0x28,0x32,0x01,0x4e,0x4c,0x27,0x2e,0x2e,0x27,0xfe,0xb1,0x2e,0x27,0x6a,0x34,0x2c,0x2b,0x34,0x00,0x00,0xff,0xff,0x00,0x1f,0xff,0xf6,0x02,0x35,0x03,0x11,0x02,0x26,0x00,0xd4,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0x00,0x02,0x00,0x5c,0xff,0xf6,0x02,0x01,0x02,0xda,0x00,0x14,0x00,0x22,0x00,0x6b, +0xb6,0x0a,0x03,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x01,0x06,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x21,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x41,0x4d,0x00,0x01, +0x01,0x39,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x17,0x16,0x15,0x01,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x0f,0x0d,0x08,0x07,0x06,0x05,0x00,0x14,0x01,0x14,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x27,0x23,0x15,0x23,0x11,0x33,0x15,0x07,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06, +0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x4c,0x3e,0x50,0x07,0x01,0x5a,0x5a,0x02,0x01,0x08,0x51,0x3e,0x53,0x62,0x62,0x71,0x39,0x40,0x40,0x39,0x37,0x41,0x41,0x0a,0x3d,0x36,0x69,0x02,0xda,0xa0,0x7d,0x35,0x3e,0x6e,0x5f,0xa1,0x5e,0x6e,0x4e,0x3c,0x43,0xa0,0x44,0x3b,0x46,0x3e,0x96,0x3e,0x46, +0x00,0x01,0x00,0x58,0xff,0xf6,0x02,0x0b,0x02,0x30,0x00,0x1b,0x00,0x3b,0x40,0x38,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x19,0x18,0x16,0x14,0x0f,0x0d,0x0b,0x0a,0x08, +0x06,0x00,0x1b,0x01,0x1b,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x01,0x34,0x64,0x78,0x78,0x64,0x5f,0x75,0x03,0x5a,0x03,0x42,0x38,0x3b,0x47,0x47,0x3b,0x38,0x42,0x03,0x5a,0x03,0x75,0x0a,0x70,0x62,0x96, +0x62,0x70,0x66,0x58,0x35,0x39,0x43,0x3e,0x97,0x3e,0x44,0x3a,0x34,0x58,0x66,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x0b,0x03,0x11,0x02,0x26,0x00,0xd7,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x6a,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x0b,0x03,0x11,0x02,0x26,0x00,0xd7,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x60,0x00,0x00, +0x00,0x01,0x00,0x58,0xff,0x35,0x02,0x0b,0x02,0x30,0x00,0x2f,0x00,0x95,0x40,0x0a,0x09,0x01,0x07,0x05,0x28,0x01,0x01,0x07,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x36,0x00,0x03,0x04,0x06,0x04,0x03,0x06,0x80,0x00,0x06,0x05,0x04,0x06,0x05,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x72,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x41, +0x4d,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x3f,0x4d,0x00,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08,0x3d,0x08,0x4e,0x1b,0x40,0x34,0x00,0x03,0x04,0x06,0x04,0x03,0x06,0x80,0x00,0x06,0x05,0x04,0x06,0x05,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x00,0x80,0x00,0x00,0x09,0x01,0x08,0x00,0x08,0x63,0x00,0x04,0x04,0x02,0x61,0x00,0x02, +0x02,0x41,0x4d,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x3f,0x07,0x4e,0x59,0x40,0x11,0x00,0x00,0x00,0x2f,0x00,0x2e,0x12,0x12,0x25,0x22,0x12,0x27,0x14,0x21,0x0a,0x09,0x1e,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x14, +0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x23,0x22,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xd1,0x46,0x16,0x1b,0x37,0x32,0x18,0x49,0x56,0x78,0x64,0x5f,0x75,0x03,0x5a,0x03,0x42,0x38,0x3b,0x47,0x47,0x3b,0x38,0x42,0x03,0x5a,0x03,0x75,0x5f,0x03,0x02,0x09,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x41,0x10,0x6a, +0x52,0x96,0x62,0x70,0x66,0x58,0x35,0x39,0x43,0x3e,0x97,0x3e,0x44,0x3a,0x34,0x58,0x66,0x19,0x03,0x14,0x24,0x1a,0x22,0x31,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x0b,0x03,0x11,0x02,0x26,0x00,0xd7,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x60,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x0b,0x03,0x09,0x02,0x26,0x00,0xd7,0x00,0x00, +0x00,0x07,0x06,0x69,0x02,0x60,0x00,0x00,0x00,0x02,0x00,0x57,0xff,0xf6,0x01,0xfc,0x02,0xda,0x00,0x14,0x00,0x22,0x00,0x6b,0xb6,0x11,0x0a,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x03,0x06,0x02,0x00, +0x00,0x3f,0x00,0x4e,0x1b,0x40,0x21,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x39,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x17,0x16,0x15,0x01,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x10,0x0f,0x0e,0x0d,0x08,0x06,0x00,0x14,0x01,0x14,0x08, +0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x27,0x35,0x33,0x11,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x0c,0x52,0x63,0x62,0x53,0x3e,0x51,0x08,0x01,0x02,0x5a,0x5a,0x01,0x07,0x50,0x20,0x38,0x40,0x40,0x38,0x39,0x40,0x40,0x0a,0x6e, +0x5e,0xa1,0x5f,0x6e,0x3e,0x35,0x7d,0xa0,0xfd,0x26,0x69,0x36,0x3d,0x4e,0x46,0x3e,0x96,0x3e,0x46,0x3b,0x44,0xa0,0x43,0x3c,0x00,0x02,0x00,0x46,0xff,0xf6,0x02,0x12,0x02,0xdf,0x00,0x20,0x00,0x2c,0x00,0x4c,0x40,0x49,0x19,0x18,0x16,0x13,0x12,0x11,0x10,0x07,0x01,0x03,0x01,0x4c,0x17,0x01,0x03,0x4a,0x00,0x02,0x01,0x05,0x01,0x02, +0x05,0x80,0x00,0x01,0x00,0x05,0x04,0x01,0x05,0x6a,0x00,0x03,0x03,0x38,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x22,0x21,0x01,0x00,0x28,0x26,0x21,0x2c,0x22,0x2c,0x15,0x14,0x0c,0x0b,0x09,0x07,0x00,0x20,0x01,0x20,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17, +0x33,0x26,0x26,0x27,0x27,0x07,0x35,0x37,0x27,0x33,0x17,0x37,0x15,0x07,0x17,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2b,0x44,0x68,0x39,0x35,0x5f,0x3f,0x2c,0x3b,0x0b,0x0e,0x04,0x20,0x1c,0x41,0xa3,0x78,0x48,0x68,0x2c,0x94,0x6a,0x4e,0x2c,0x35,0x3a,0x67,0x46,0x40,0x4d, +0x4d,0x40,0x3e,0x4d,0x4d,0x0a,0x38,0x66,0x43,0x43,0x63,0x37,0x26,0x12,0x0a,0x35,0x25,0x5b,0x4c,0x50,0x38,0x63,0x40,0x45,0x50,0x31,0x71,0x40,0x8e,0x40,0x46,0x69,0x3a,0x50,0x50,0x41,0x41,0x50,0x50,0x41,0x41,0x50,0x00,0x00,0x00,0x03,0x00,0x3f,0xff,0xf6,0x02,0x5c,0x02,0xda,0x00,0x14,0x00,0x18,0x00,0x26,0x00,0x81,0xb6,0x11, +0x0a,0x02,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x24,0x09,0x01,0x05,0x05,0x02,0x5f,0x04,0x01,0x02,0x02,0x38,0x4d,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x0a,0x01,0x06,0x06,0x00,0x61,0x03,0x08,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x28,0x09,0x01,0x05,0x05,0x02,0x5f,0x04,0x01,0x02,0x02,0x38,0x4d, +0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x39,0x4d,0x0a,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1f,0x1a,0x19,0x15,0x15,0x01,0x00,0x21,0x1f,0x19,0x26,0x1a,0x26,0x15,0x18,0x15,0x18,0x17,0x16,0x10,0x0f,0x0e,0x0d,0x08,0x06,0x00,0x14,0x01,0x14,0x0b,0x09,0x16,0x2b,0x17, +0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x27,0x35,0x33,0x11,0x23,0x35,0x23,0x06,0x06,0x13,0x37,0x33,0x07,0x01,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xe4,0x4c,0x59,0x59,0x4c,0x39,0x47,0x06,0x03,0x02,0x5a,0x5a,0x01,0x06,0x47,0xdc,0x0f,0x54,0x18,0xfe,0xbe,0x32,0x37,0x37,0x32,0x31, +0x38,0x38,0x0a,0x6c,0x5b,0xab,0x5c,0x6c,0x3e,0x35,0x7d,0xa0,0xfd,0x26,0x69,0x35,0x3e,0x02,0x30,0xb4,0xb4,0xfe,0x1e,0x43,0x3c,0xa0,0x3c,0x43,0x43,0x3c,0xa0,0x3c,0x43,0x00,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x02,0x58,0x02,0xda,0x00,0x1c,0x00,0x2a,0x00,0x83,0xb6,0x19,0x0a,0x02,0x08,0x09,0x01,0x4c,0x4b,0xb0,0x18,0x50, +0x58,0x40,0x25,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x69,0x00,0x04,0x04,0x38,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x29,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x69,0x00,0x04,0x04, +0x38,0x4d,0x00,0x07,0x07,0x39,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x0a,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1f,0x1e,0x1d,0x01,0x00,0x25,0x23,0x1d,0x2a,0x1e,0x2a,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x08,0x06,0x00,0x1c,0x01,0x1c,0x0c,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32, +0x16,0x17,0x33,0x27,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x0c,0x52,0x60,0x5f,0x53,0x3e,0x4e,0x07,0x03,0x02,0xa6,0xa6,0x5a,0x5e,0x5e,0x5a,0x01,0x07,0x4e,0x20,0x38,0x3e,0x3e,0x38,0x39,0x3d,0x3d,0x0a,0x6e, +0x5e,0x65,0x5f,0x6e,0x3e,0x35,0x7d,0x3c,0x4b,0x55,0x55,0x4b,0xfd,0xc6,0x69,0x36,0x3d,0x4e,0x46,0x3e,0x5a,0x3e,0x46,0x44,0x40,0x5a,0x40,0x44,0x00,0x02,0x00,0x54,0xff,0xf6,0x02,0x04,0x02,0x30,0x00,0x17,0x00,0x20,0x00,0x3e,0x40,0x3b,0x00,0x04,0x02,0x03,0x02,0x04,0x03,0x80,0x00,0x05,0x00,0x02,0x04,0x05,0x02,0x67,0x00,0x06, +0x06,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x1e,0x1c,0x19,0x18,0x15,0x14,0x12,0x10,0x0d,0x0c,0x08,0x06,0x00,0x17,0x01,0x17,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x15,0x21,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33, +0x06,0x06,0x03,0x21,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x2c,0x61,0x77,0x77,0x61,0x41,0x61,0x36,0xfe,0xa8,0x46,0x3a,0x32,0x41,0x07,0x5a,0x09,0x74,0xd7,0x01,0x00,0x43,0x3d,0x3d,0x43,0x0a,0x75,0x67,0x82,0x67,0x75,0x34,0x5e,0x40,0x62,0x34,0x3d,0x47,0x27,0x21,0x45,0x51,0x01,0x4c,0x1c,0x41,0x47,0x47,0x41,0x00,0x00,0x00, +0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00, +0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x71,0x03,0x84,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0xb8,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0x2b,0x02,0x04, +0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x27,0x06,0x78,0x02,0x58,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x21,0x03,0x84,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0xb9,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x26,0x03,0xa2,0x02,0x26,0x00,0xe1,0x00,0x00, +0x00,0x07,0x06,0xba,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0xa0,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0xbb,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x09,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04, +0x03,0x09,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0x2b,0x02,0x04,0x02,0x30,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00, +0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x39,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x02,0xe9,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x35,0x02,0x00,0x02,0x30,0x00,0x25,0x00,0x2e,0x00,0x84, +0x4b,0xb0,0x15,0x50,0x58,0x40,0x30,0x00,0x05,0x03,0x04,0x03,0x05,0x04,0x80,0x00,0x07,0x00,0x03,0x05,0x07,0x03,0x67,0x00,0x08,0x08,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x06,0x06,0x00,0x60,0x09,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x2d,0x00,0x05,0x03,0x04,0x03,0x05, +0x04,0x80,0x00,0x07,0x00,0x03,0x05,0x07,0x03,0x67,0x00,0x06,0x09,0x01,0x00,0x06,0x00,0x64,0x00,0x08,0x08,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x19,0x01,0x00,0x2c,0x2a,0x27,0x26,0x24,0x22,0x19,0x18,0x17,0x15,0x12,0x11,0x0e,0x0c,0x07,0x05,0x00,0x25,0x01,0x25, +0x0a,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x37,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x21,0x15,0x14,0x16,0x33,0x32,0x37,0x33,0x06,0x06,0x07,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x01,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x75,0x37,0x43,0x3b,0x0a,0x61,0x73,0x73,0x61,0x62,0x72,0xfe, +0xb0,0x3f,0x3d,0x69,0x0f,0x5a,0x05,0x32,0x27,0x10,0x22,0x1e,0x1e,0x19,0x3c,0xfe,0xed,0xf8,0x3e,0x3e,0x3d,0x3f,0xcb,0x35,0x28,0x2f,0x35,0x73,0x5f,0x96,0x5f,0x73,0x73,0x5f,0x61,0x35,0x41,0x45,0x4a,0x2b,0x40,0x13,0x0d,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x02,0x0c,0x1d,0x41,0x46,0x46,0x41,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04, +0x03,0x0c,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0x30,0x00,0x15,0x00,0x1e,0x00,0x43,0x40,0x40,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x67,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x08,0x01,0x05,0x05, +0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x17,0x16,0x01,0x00,0x1b,0x1a,0x16,0x1e,0x17,0x1e,0x10,0x0e,0x0c,0x0b,0x0a,0x08,0x05,0x04,0x00,0x15,0x01,0x15,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x21,0x35,0x34,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x15, +0x14,0x16,0x01,0x2c,0x61,0x71,0x01,0x4c,0x3c,0x3e,0x67,0x0f,0x5a,0x09,0x70,0x57,0x62,0x70,0x70,0x62,0x3e,0x3c,0xf4,0x3d,0x0a,0x73,0x5f,0x61,0x35,0x41,0x45,0x4a,0x45,0x51,0x73,0x5f,0x96,0x5f,0x73,0x4b,0x46,0x41,0x1d,0x1d,0x41,0x46,0x00,0x00,0x00,0x01,0x00,0x37,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x12,0x00,0x2d,0x40,0x2a, +0x04,0x01,0x01,0x05,0x01,0x00,0x06,0x01,0x00,0x67,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x00,0x00,0x00,0x12,0x00,0x12,0x11,0x12,0x21,0x23,0x11,0x11,0x08,0x09,0x1c,0x2b,0x33,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0xd7,0xa0, +0xa0,0x52,0x48,0xa1,0xa1,0x40,0xe1,0xe1,0x01,0x89,0x52,0x73,0x41,0x4b,0x52,0x3a,0x73,0x52,0xfe,0x77,0x00,0x02,0x00,0x58,0xff,0x4c,0x01,0xfb,0x02,0x30,0x00,0x1c,0x00,0x2a,0x00,0x6f,0xb6,0x15,0x07,0x02,0x05,0x06,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x20,0x08,0x01,0x05,0x00,0x01,0x00,0x05,0x01,0x69,0x00,0x06,0x06,0x02, +0x61,0x03,0x01,0x02,0x02,0x41,0x4d,0x00,0x00,0x00,0x04,0x5f,0x07,0x01,0x04,0x04,0x3d,0x04,0x4e,0x1b,0x40,0x24,0x08,0x01,0x05,0x00,0x01,0x00,0x05,0x01,0x69,0x00,0x03,0x03,0x3b,0x4d,0x00,0x06,0x06,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x00,0x00,0x00,0x04,0x5f,0x07,0x01,0x04,0x04,0x3d,0x04,0x4e,0x59,0x40,0x15,0x1e,0x1d,0x00, +0x00,0x25,0x23,0x1d,0x2a,0x1e,0x2a,0x00,0x1c,0x00,0x1b,0x14,0x25,0x27,0x21,0x09,0x09,0x1a,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x35,0x37,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35,0x33,0x11,0x14,0x06,0x23,0x03,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xa1,0x9b, +0x2f,0x36,0x02,0x03,0x08,0x4e,0x3b,0x55,0x62,0x62,0x55,0x3b,0x4e,0x08,0x02,0x59,0x67,0x59,0x11,0x38,0x40,0x40,0x38,0x39,0x3f,0x3f,0xb4,0x52,0x35,0x2d,0x32,0x5a,0x31,0x35,0x6c,0x5e,0x74,0x5e,0x6e,0x38,0x31,0x5f,0xfd,0xda,0x53,0x61,0x01,0x25,0x46,0x3e,0x69,0x3e,0x46,0x42,0x38,0x7d,0x38,0x42,0x00,0x00,0xff,0xff,0x00,0x58, +0xff,0x4c,0x01,0xfb,0x03,0x11,0x02,0x26,0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x5f,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x4c,0x01,0xfb,0x03,0x11,0x02,0x26,0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x55,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x4c,0x01,0xfb,0x03,0x11,0x02,0x26,0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x6f, +0x02,0x55,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x4c,0x01,0xfb,0x03,0x11,0x02,0x26,0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x55,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x4c,0x01,0xfb,0x03,0x70,0x02,0x26,0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x76,0x02,0x55,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x4c,0x01,0xfb,0x03,0x09,0x02,0x26, +0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x55,0x00,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x14,0x00,0x2d,0x40,0x2a,0x03,0x01,0x02,0x03,0x01,0x4c,0x00,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x05,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x14,0x00,0x14,0x23, +0x13,0x24,0x11,0x06,0x09,0x1a,0x2b,0x33,0x11,0x33,0x11,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x5c,0x5a,0x01,0x07,0x4c,0x3f,0x53,0x62,0x5a,0x3f,0x36,0x38,0x41,0x02,0xda,0xfe,0xe3,0x37,0x3c,0x66,0x58,0xfe,0x8e,0x01,0x63,0x3e,0x43,0x46,0x40,0xfe,0xa2,0x00,0xff,0xff,0x00,0x00, +0x00,0x00,0x01,0xfe,0x02,0xda,0x02,0x06,0x02,0x37,0x00,0x00,0xff,0xff,0xff,0xd4,0x00,0x00,0x01,0xfe,0x03,0xc5,0x02,0x26,0x00,0xfc,0x00,0x00,0x01,0x07,0x06,0x6e,0x01,0xb5,0x00,0xb4,0x00,0x08,0xb1,0x01,0x01,0xb0,0xb4,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x09,0x02,0x26,0x01,0x00,0x00,0x00, +0x00,0x07,0x06,0x69,0x02,0x67,0x00,0x00,0x00,0x01,0x00,0x55,0x00,0x00,0x02,0x2b,0x02,0x26,0x00,0x09,0x00,0x27,0x40,0x24,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x03,0x01,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x09,0x1a,0x2b,0x33,0x35,0x33, +0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x55,0xc3,0xaf,0x01,0x09,0xb9,0x52,0x01,0x82,0x52,0xfe,0x2c,0x52,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x11,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x71,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x11,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x70, +0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x11,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x11,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x09,0x02,0x26, +0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x09,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0x2b,0x02,0x2b,0x03,0x09,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x27,0x06,0x69,0x02,0x67,0x00,0x00,0x00,0x07,0x06,0x78, +0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x11,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x39,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x02,0xe9,0x02,0x26, +0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x67,0x00,0x00,0x00,0x02,0x00,0x55,0xff,0x35,0x02,0x2b,0x03,0x09,0x00,0x0b,0x00,0x25,0x00,0xb6,0x4b,0xb0,0x11,0x50,0x58,0x40,0x2d,0x0a,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x40,0x4d,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x3b,0x4d,0x05,0x01,0x02,0x02,0x06,0x5f,0x0b,0x09, +0x02,0x06,0x06,0x39,0x4d,0x00,0x07,0x07,0x08,0x5f,0x00,0x08,0x08,0x3d,0x08,0x4e,0x1b,0x4b,0xb0,0x15,0x50,0x58,0x40,0x2b,0x00,0x01,0x0a,0x01,0x00,0x04,0x01,0x00,0x69,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x3b,0x4d,0x05,0x01,0x02,0x02,0x06,0x5f,0x0b,0x09,0x02,0x06,0x06,0x39,0x4d,0x00,0x07,0x07,0x08,0x5f,0x00,0x08,0x08, +0x3d,0x08,0x4e,0x1b,0x40,0x28,0x00,0x01,0x0a,0x01,0x00,0x04,0x01,0x00,0x69,0x00,0x07,0x00,0x08,0x07,0x08,0x63,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x3b,0x4d,0x05,0x01,0x02,0x02,0x06,0x5f,0x0b,0x09,0x02,0x06,0x06,0x39,0x06,0x4e,0x59,0x59,0x40,0x1f,0x0c,0x0c,0x01,0x00,0x0c,0x25,0x0c,0x25,0x20,0x1e,0x1d,0x1b,0x16,0x15, +0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x35,0x33,0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x01,0x3b,0x21,0x26,0x26,0x21,0x21,0x26, +0x26,0xfe,0xf9,0xc3,0xaf,0x01,0x09,0xb9,0xcf,0x21,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x20,0x27,0x02,0x89,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfd,0x77,0x52,0x01,0x82,0x52,0xfe,0x2c,0x52,0x1b,0x2d,0x15,0x16,0x1c,0x3c,0x35,0x28,0x1a,0x36,0x1e,0x00,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x0c,0x02,0x26, +0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0x4c,0x01,0xc3,0x03,0x09,0x02,0x26,0x01,0x0e,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0xa8,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0x4c,0x01,0xb3,0x02,0x26,0x00,0x0d,0x00,0x25,0x40,0x22,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x00,0x00, +0x00,0x03,0x5f,0x04,0x01,0x03,0x03,0x3d,0x03,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0c,0x11,0x13,0x21,0x05,0x09,0x19,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x11,0x21,0x35,0x21,0x11,0x14,0x06,0x23,0x5a,0x7c,0x3e,0x45,0xfe,0xfc,0x01,0x5e,0x78,0x65,0xb4,0x52,0x44,0x3d,0x01,0xb5,0x52,0xfd,0xf9,0x61,0x72,0x00,0x00,0xff,0xff,0x00,0x55, +0xff,0x4c,0x02,0x31,0x03,0x11,0x02,0x26,0x01,0x0e,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0xa8,0x00,0x00,0x00,0x01,0x00,0x61,0x00,0x00,0x02,0x2f,0x02,0xda,0x00,0x0c,0x00,0x31,0x40,0x2e,0x07,0x01,0x04,0x01,0x01,0x4c,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x00,0x00,0x00,0x38,0x4d,0x00,0x02,0x02,0x3b,0x4d,0x06,0x05,0x02,0x03, +0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x11,0x12,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x37,0x33,0x03,0x13,0x23,0x27,0x23,0x15,0x61,0x5a,0x69,0x9a,0x67,0xb1,0xbb,0x69,0xa0,0x6b,0x02,0xda,0xfe,0x69,0xe3,0xfe,0xfa,0xfe,0xe0,0xf5,0xf5,0x00,0x00,0x00,0xff,0xff,0x00,0x61,0xff,0x10,0x02,0x2f, +0x02,0xda,0x02,0x26,0x01,0x10,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x67,0x00,0x00,0x02,0x35,0x02,0x26,0x02,0x06,0x02,0x19,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0d,0x00,0x28,0x40,0x25,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x03,0x03,0x00,0x5f,0x04, +0x01,0x00,0x00,0x39,0x00,0x4e,0x01,0x00,0x0c,0x0a,0x07,0x06,0x05,0x04,0x00,0x0d,0x01,0x0d,0x05,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x14,0x16,0x33,0x33,0x15,0x01,0x7c,0x49,0x57,0xbe,0x01,0x18,0x26,0x20,0xaa,0x55,0x46,0x01,0xed,0x52,0xfd,0xc1,0x22,0x27,0x52,0xff,0xff,0x00,0x1e,0x00,0x00,0x02,0x26, +0x03,0xb6,0x02,0x26,0x01,0x13,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x26,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xe4,0x00,0x15,0x00,0x2c,0x40,0x29,0x11,0x0b,0x0a,0x08,0x05,0x04,0x03,0x02,0x08,0x01,0x00,0x01,0x4c,0x09,0x01,0x00,0x4a,0x00,0x00,0x00,0x38,0x4d,0x03,0x02,0x02,0x01,0x01,0x39,0x01,0x4e,0x00,0x00, +0x00,0x15,0x00,0x15,0x15,0x16,0x04,0x09,0x18,0x2b,0x33,0x13,0x27,0x07,0x35,0x37,0x27,0x33,0x17,0x37,0x15,0x07,0x13,0x23,0x03,0x26,0x26,0x27,0x14,0x06,0x07,0x03,0x32,0xcc,0x04,0xa0,0x86,0x2c,0x60,0x1b,0xa7,0x8d,0xdd,0x60,0x83,0x0d,0x0c,0x05,0x08,0x0c,0x7e,0x02,0x1d,0x09,0x50,0x50,0x43,0x71,0x49,0x53,0x50,0x47,0xfd,0xb3, +0x01,0x65,0x23,0x36,0x0f,0x0f,0x36,0x23,0xfe,0x9b,0x00,0x00,0xff,0xff,0x00,0x1e,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x26,0x01,0x13,0x00,0x00,0x00,0x07,0x06,0x6d,0x02,0x3a,0x00,0x00,0xff,0xff,0x00,0x1e,0xff,0x10,0x02,0x26,0x02,0xda,0x02,0x26,0x01,0x13,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x6c,0x00,0x00,0xff,0xff,0x00,0x0a, +0x00,0x00,0x02,0x75,0x02,0xda,0x00,0x26,0x01,0x13,0xec,0x00,0x01,0x07,0x03,0x29,0x00,0xf7,0x01,0x13,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x15,0x00,0x2c,0x40,0x29,0x15,0x0a,0x09,0x08,0x07,0x02,0x01,0x00,0x08,0x02,0x00,0x01,0x4c,0x00,0x00,0x00, +0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x03,0x39,0x03,0x4e,0x21,0x27,0x11,0x13,0x04,0x09,0x1a,0x2b,0x37,0x35,0x37,0x11,0x23,0x35,0x21,0x11,0x37,0x15,0x07,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x35,0x64,0x78,0xbe,0x01,0x18,0xa0,0xa0,0x26,0x20,0xaa,0xaa,0x49,0x57,0xe6,0x50,0x51, +0x01,0x01,0x52,0xfe,0xea,0x6c,0x50,0x6c,0xd9,0x22,0x27,0x52,0x55,0x46,0x9c,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x30,0x00,0x24,0x00,0x56,0xb6,0x0a,0x03,0x02,0x03,0x04,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x16,0x06,0x01,0x04,0x04,0x00,0x61,0x02,0x01,0x02,0x00,0x00,0x3b,0x4d,0x08,0x07,0x05,0x03,0x03,0x03, +0x39,0x03,0x4e,0x1b,0x40,0x1a,0x00,0x00,0x00,0x3b,0x4d,0x06,0x01,0x04,0x04,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x08,0x07,0x05,0x03,0x03,0x03,0x39,0x03,0x4e,0x59,0x40,0x10,0x00,0x00,0x00,0x24,0x00,0x24,0x23,0x13,0x23,0x13,0x25,0x24,0x11,0x09,0x09,0x1d,0x2b,0x33,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x33, +0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x3c,0x4e,0x02,0x05,0x31,0x26,0x24,0x32,0x0b,0x01,0x07,0x31,0x26,0x35,0x3f,0x54,0x20,0x1c,0x1b,0x20,0x4a,0x20,0x1b,0x1c,0x20,0x02,0x26,0x49,0x25,0x2e,0x2a,0x24,0x24,0x2a,0x4f,0x3f,0xfe,0x5e,0x01, +0xa3,0x21,0x27,0x26,0x21,0xfe,0x5c,0x01,0xa3,0x21,0x27,0x26,0x21,0xfe,0x5c,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x01,0xfe,0x02,0x30,0x00,0x14,0x00,0x4c,0xb5,0x03,0x01,0x02,0x03,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x13,0x00,0x03,0x03,0x00,0x61,0x01,0x01,0x00,0x00,0x3b,0x4d,0x05,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x1b, +0x40,0x17,0x00,0x00,0x00,0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x05,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x59,0x40,0x0d,0x00,0x00,0x00,0x14,0x00,0x14,0x23,0x13,0x24,0x11,0x06,0x09,0x1a,0x2b,0x33,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x5c, +0x5a,0x01,0x07,0x4c,0x3f,0x53,0x62,0x5a,0x3f,0x36,0x38,0x41,0x02,0x26,0x69,0x37,0x3c,0x66,0x58,0xfe,0x8e,0x01,0x62,0x3f,0x43,0x46,0x40,0xfe,0xa2,0x00,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x1b,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x67,0x00,0x00,0xff,0xff,0xff,0xf6,0x00,0x00,0x01,0xfe, +0x03,0x16,0x02,0x26,0x01,0x1b,0x00,0x00,0x01,0x07,0x06,0x7a,0x01,0x90,0x03,0x75,0x00,0x09,0xb1,0x01,0x01,0xb8,0x03,0x75,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x1b,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x5c,0xff,0x10,0x01,0xfe,0x02,0x30,0x02,0x26, +0x01,0x1b,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5e,0xff,0x4c,0x01,0xfc,0x02,0x30,0x00,0x1c,0x00,0x5f,0xb5,0x11,0x01,0x02,0x01,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1c,0x00,0x01,0x01,0x03,0x61,0x04,0x01,0x03,0x03,0x3b,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x00,0x00,0x05,0x61,0x06,0x01,0x05, +0x05,0x3d,0x05,0x4e,0x1b,0x40,0x20,0x00,0x03,0x03,0x3b,0x4d,0x00,0x01,0x01,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x00,0x00,0x05,0x61,0x06,0x01,0x05,0x05,0x3d,0x05,0x4e,0x59,0x40,0x0e,0x00,0x00,0x00,0x1c,0x00,0x1b,0x24,0x11,0x13,0x25,0x21,0x07,0x09,0x1b,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x11, +0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0xf0,0x3f,0x35,0x3e,0x3d,0x36,0x38,0x3f,0x5a,0x5a,0x01,0x06,0x4b,0x3f,0x53,0x60,0x70,0x5d,0xb4,0x52,0x3d,0x34,0x01,0x59,0x3b,0x41,0x46,0x40,0xfe,0xa2,0x02,0x26,0x69,0x37,0x3c,0x66,0x58,0xfe,0x9d,0x58,0x6b,0x00, +0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfe,0x03,0x0c,0x02,0x26,0x01,0x1b,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x5d,0x00,0x00,0x00,0x02,0x00,0x54,0xff,0xf8,0x02,0x04,0x02,0x2e,0x00,0x0d,0x00,0x1b,0x00,0x2d,0x40,0x2a,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x42,0x00, +0x4e,0x0f,0x0e,0x01,0x00,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x63,0x75,0x74,0x64,0x64,0x74,0x75,0x63,0x3b,0x43,0x43,0x3b,0x3a, +0x44,0x44,0x08,0x74,0x68,0x7e,0x69,0x73,0x73,0x69,0x7e,0x68,0x74,0x50,0x42,0x40,0x92,0x40,0x42,0x42,0x40,0x92,0x40,0x42,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00, +0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x71, +0x03,0x84,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0xb8,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0x2b,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x27,0x06,0x78,0x02,0x58,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x21,0x03,0x84,0x02,0x26,0x01,0x22,0x00,0x00, +0x00,0x07,0x06,0xb9,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x26,0x03,0xa2,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0xba,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0xa0,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0xbb,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04, +0x03,0x09,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0x2b,0x02,0x04,0x02,0x2e,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00, +0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x39,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x54,0xff,0xf8,0x02,0x1c,0x02,0x80,0x00,0x17,0x00,0x25,0x00,0x71,0xb5,0x12,0x01,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x21,0x00,0x03,0x01,0x03,0x85,0x00,0x02,0x02,0x3b,0x4d, +0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x42,0x00,0x4e,0x1b,0x40,0x24,0x00,0x03,0x01,0x03,0x85,0x00,0x02,0x01,0x05,0x01,0x02,0x05,0x80,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x42,0x00,0x4e,0x59,0x40, +0x17,0x19,0x18,0x01,0x00,0x20,0x1e,0x18,0x25,0x19,0x25,0x0e,0x0d,0x0b,0x09,0x08,0x06,0x00,0x17,0x01,0x17,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01, +0x2c,0x63,0x75,0x74,0x64,0x45,0x32,0x0b,0x23,0x4b,0x20,0x1c,0x24,0x75,0x63,0x3b,0x43,0x43,0x3b,0x3a,0x44,0x44,0x08,0x74,0x68,0x7e,0x69,0x73,0x1c,0x23,0x4b,0x50,0x1f,0x2e,0x0a,0x36,0x51,0x7e,0x68,0x74,0x50,0x42,0x40,0x92,0x40,0x42,0x42,0x40,0x92,0x40,0x42,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x1c,0x03,0x11,0x02,0x26, +0x01,0x30,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0x2b,0x02,0x1c,0x02,0x80,0x02,0x26,0x01,0x30,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x1c,0x03,0x11,0x02,0x26,0x01,0x30,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x44,0x00,0x00,0xff,0xff,0x00,0x54, +0xff,0xf8,0x02,0x1c,0x03,0x39,0x02,0x26,0x01,0x30,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x1c,0x03,0x0c,0x02,0x26,0x01,0x30,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x10,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x6c, +0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x02,0xe9,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x35,0x02,0x00,0x02,0x30,0x00,0x1e,0x00,0x2c,0x00,0x64,0x4b,0xb0,0x15,0x50,0x58,0x40,0x21,0x00,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x07,0x01,0x04, +0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x03,0x03,0x00,0x5f,0x06,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x1e,0x00,0x03,0x06,0x01,0x00,0x03,0x00,0x63,0x00,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x07,0x01,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x17,0x20,0x1f,0x01,0x00,0x27,0x25,0x1f,0x2c, +0x20,0x2c,0x1d,0x1b,0x0f,0x0d,0x08,0x06,0x00,0x1e,0x01,0x1e,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x37,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x07,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x03,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x74,0x37, +0x43,0x19,0x22,0x09,0x62,0x72,0x72,0x62,0x62,0x72,0x2e,0x2b,0x18,0x22,0x1e,0x1e,0x19,0x3c,0x96,0x3b,0x3f,0x3f,0x3b,0x3a,0x40,0x40,0xcb,0x35,0x28,0x16,0x2f,0x1f,0x70,0x62,0x96,0x62,0x70,0x6f,0x62,0x97,0x3e,0x5b,0x1a,0x14,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x01,0x11,0x42,0x40,0x96,0x40,0x42,0x42,0x40,0x96,0x40,0x42,0x00,0x00, +0x00,0x03,0x00,0x23,0xff,0xe2,0x02,0x35,0x02,0x4e,0x00,0x15,0x00,0x1e,0x00,0x27,0x00,0x4a,0x40,0x47,0x09,0x01,0x04,0x00,0x26,0x25,0x19,0x0c,0x01,0x05,0x05,0x04,0x14,0x01,0x02,0x05,0x03,0x4c,0x00,0x01,0x00,0x01,0x85,0x06,0x01,0x03,0x02,0x03,0x86,0x00,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x41,0x4d,0x07,0x01,0x05,0x05,0x02, +0x61,0x00,0x02,0x02,0x3f,0x02,0x4e,0x20,0x1f,0x00,0x00,0x1f,0x27,0x20,0x27,0x1c,0x1a,0x00,0x15,0x00,0x15,0x26,0x12,0x26,0x08,0x09,0x19,0x2b,0x17,0x37,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x17,0x37,0x33,0x07,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x27,0x07,0x37,0x14,0x17,0x13,0x26,0x23,0x22,0x06,0x15,0x13,0x32,0x36,0x35,0x35, +0x34,0x27,0x03,0x16,0x23,0x51,0x1c,0x72,0x62,0x4c,0x34,0x2e,0x5b,0x54,0x1f,0x72,0x62,0x50,0x36,0x29,0x30,0x03,0xcc,0x20,0x30,0x3c,0x43,0x7f,0x3c,0x43,0x04,0xd0,0x20,0x1e,0x72,0x31,0x43,0x96,0x62,0x70,0x22,0x40,0x76,0x32,0x47,0x97,0x62,0x70,0x26,0x3a,0xe6,0x11,0x0e,0x01,0x20,0x17,0x44,0x3e,0xfe,0xe8,0x45,0x3d,0x96,0x15, +0x13,0xfe,0xdb,0x1b,0xff,0xff,0x00,0x23,0xff,0xe2,0x02,0x35,0x03,0x11,0x02,0x26,0x01,0x39,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x0c,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x23,0xff,0xf6,0x02,0x35,0x02,0x30,0x00,0x28, +0x00,0x36,0x00,0x3f,0x00,0x59,0x40,0x56,0x0b,0x01,0x09,0x08,0x24,0x01,0x04,0x05,0x02,0x4c,0x00,0x05,0x03,0x04,0x03,0x05,0x04,0x80,0x00,0x09,0x00,0x03,0x05,0x09,0x03,0x67,0x0a,0x01,0x08,0x08,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x0c,0x07,0x02,0x04,0x04,0x00,0x61,0x06,0x0b,0x02,0x00,0x00,0x3f,0x00,0x4e,0x2a,0x29,0x01, +0x00,0x3d,0x3b,0x38,0x37,0x31,0x2f,0x29,0x36,0x2a,0x36,0x21,0x1f,0x1d,0x1c,0x1a,0x18,0x15,0x14,0x11,0x0f,0x08,0x06,0x00,0x28,0x01,0x28,0x0d,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x17,0x33,0x3e,0x02,0x33,0x32,0x16,0x15,0x15,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x23,0x22, +0x26,0x26,0x27,0x23,0x0e,0x02,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x13,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0xb4,0x43,0x4e,0x4e,0x43,0x28,0x33,0x1a,0x01,0x04,0x02,0x19,0x33,0x28,0x43,0x4e,0xde,0x24,0x1f,0x1a,0x25,0x04,0x55,0x0a,0x4c,0x38,0x28,0x33,0x19,0x02,0x04,0x01,0x1a,0x33,0x1e, +0x1f,0x24,0x24,0x1f,0x20,0x26,0x26,0xb9,0x89,0x26,0x20,0x1f,0x24,0x0a,0x57,0x49,0xfa,0x4a,0x56,0x1a,0x25,0x11,0x11,0x25,0x1a,0x56,0x4a,0x96,0x64,0x26,0x2d,0x20,0x1a,0x3e,0x49,0x1a,0x25,0x11,0x11,0x25,0x1a,0x4d,0x2d,0x26,0xfa,0x26,0x2d,0x2d,0x26,0xfa,0x26,0x2d,0x01,0x00,0x4d,0x26,0x2d,0x2d,0x26,0x00,0x00,0x02,0x00,0x5c, +0xff,0x4c,0x02,0x01,0x02,0x30,0x00,0x14,0x00,0x22,0x00,0x68,0xb6,0x11,0x03,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x05,0x05,0x00,0x61,0x01,0x01,0x00,0x00,0x3b,0x4d,0x07,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f,0x4d,0x06,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x21,0x00,0x00,0x00,0x3b,0x4d, +0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f,0x4d,0x06,0x01,0x03,0x03,0x3d,0x03,0x4e,0x59,0x40,0x14,0x16,0x15,0x00,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x00,0x14,0x00,0x14,0x25,0x24,0x11,0x08,0x09,0x19,0x2b,0x17,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15, +0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x15,0x37,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x5c,0x5a,0x01,0x07,0x50,0x3e,0x53,0x62,0x62,0x53,0x3e,0x50,0x07,0x03,0x02,0x78,0x39,0x40,0x40,0x39,0x37,0x41,0x41,0xb4,0x02,0xda,0x69,0x36,0x3d,0x6d,0x5f,0xa1,0x5f,0x6e,0x3e,0x35,0x7d,0xa0,0xf8,0x3c,0x43, +0xa0,0x44,0x3b,0x46,0x3e,0x96,0x3e,0x46,0x00,0x02,0x00,0x57,0xff,0x56,0x01,0xfc,0x02,0xda,0x00,0x14,0x00,0x22,0x00,0x6c,0xb6,0x12,0x04,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x31,0x50,0x58,0x40,0x21,0x00,0x00,0x00,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f, +0x4d,0x06,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x21,0x06,0x01,0x03,0x02,0x03,0x86,0x00,0x00,0x00,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f,0x02,0x4e,0x59,0x40,0x14,0x16,0x15,0x00,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x00,0x14,0x00,0x14,0x25,0x25,0x11, +0x08,0x09,0x19,0x2b,0x17,0x11,0x33,0x15,0x07,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x11,0x37,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x57,0x5a,0x02,0x01,0x08,0x51,0x3e,0x53,0x62,0x62,0x53,0x3e,0x50,0x07,0x01,0x78,0x39,0x40,0x40,0x39,0x37,0x41,0x41,0xaa,0x03, +0x84,0xa0,0x7d,0x35,0x3e,0x6e,0x5f,0xa1,0x5e,0x6e,0x3d,0x36,0xfe,0xed,0xee,0x3c,0x43,0xa0,0x44,0x3b,0x46,0x3e,0x96,0x3e,0x46,0x00,0x00,0x00,0x00,0x02,0x00,0x57,0xff,0x4c,0x01,0xfc,0x02,0x30,0x00,0x14,0x00,0x22,0x00,0x68,0xb6,0x10,0x02,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x05,0x05,0x01,0x61, +0x02,0x01,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x3f,0x4d,0x06,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x21,0x00,0x02,0x02,0x3b,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x3f,0x4d,0x06,0x01,0x03,0x03,0x3d,0x03,0x4e,0x59,0x40,0x14,0x16, +0x15,0x00,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x00,0x14,0x00,0x14,0x14,0x25,0x25,0x08,0x09,0x19,0x2b,0x05,0x35,0x37,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35,0x33,0x11,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0xa2,0x02,0x03,0x07,0x50,0x3e,0x53,0x62, +0x63,0x52,0x3e,0x50,0x07,0x01,0x5a,0xd2,0x38,0x40,0x40,0x38,0x39,0x40,0x40,0xb4,0xa0,0x7d,0x35,0x3e,0x6e,0x5f,0xa1,0x5f,0x6d,0x3d,0x36,0x69,0xfd,0x26,0xf8,0x46,0x3e,0x96,0x3e,0x46,0x3a,0x40,0xaa,0x40,0x3a,0x00,0x00,0x00,0x00,0x01,0x00,0x70,0x00,0x00,0x02,0x12,0x02,0x30,0x00,0x13,0x00,0x5a,0xb5,0x03,0x01,0x02,0x03,0x01, +0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1a,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x03,0x03,0x00,0x61,0x01,0x01,0x00,0x00,0x3b,0x4d,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x1e,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x00,0x00,0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x05,0x01,0x04,0x04, +0x39,0x04,0x4e,0x59,0x40,0x0d,0x00,0x00,0x00,0x13,0x00,0x13,0x22,0x13,0x24,0x11,0x06,0x09,0x1a,0x2b,0x33,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x23,0x35,0x34,0x23,0x22,0x06,0x15,0x11,0x70,0x5a,0x02,0x07,0x4c,0x40,0x56,0x5d,0x5a,0x75,0x3b,0x3e,0x02,0x26,0x69,0x35,0x3e,0x67,0x5f,0x2f,0x2f,0x78,0x44,0x40, +0xfe,0xa2,0x00,0x00,0xff,0xff,0x00,0x70,0x00,0x00,0x02,0x12,0x03,0x11,0x02,0x26,0x01,0x40,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x76,0x00,0x00,0xff,0xff,0x00,0x70,0x00,0x00,0x02,0x12,0x03,0x11,0x02,0x26,0x01,0x40,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x6c,0x00,0x00,0xff,0xff,0x00,0x23,0xff,0x10,0x02,0x12,0x02,0x30,0x02,0x26, +0x01,0x40,0x00,0x00,0x00,0x07,0x06,0x7a,0x01,0xbd,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0xf8,0x02,0x03,0x02,0x2e,0x00,0x28,0x00,0x3b,0x40,0x38,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x41,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x42,0x00, +0x4e,0x01,0x00,0x1e,0x1b,0x19,0x18,0x16,0x13,0x09,0x06,0x04,0x03,0x00,0x28,0x01,0x27,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x16,0x15,0x14,0x06,0x23,0x01,0x16, +0x5c,0x65,0x5a,0x36,0x31,0x2c,0x32,0x37,0x41,0x98,0x38,0x3e,0x63,0x57,0x2c,0x50,0x65,0x04,0x5b,0x02,0x33,0x29,0x2c,0x2e,0x34,0x35,0x8e,0x8c,0x65,0x5c,0x08,0x53,0x4c,0x26,0x2b,0x2c,0x28,0x47,0x09,0x16,0x08,0x4d,0x3f,0x48,0x52,0x4f,0x40,0x1d,0x26,0x2a,0x24,0x3a,0x08,0x14,0x14,0x90,0x4d,0x55,0x00,0x00,0xff,0xff,0x00,0x55, +0xff,0xf8,0x02,0x03,0x03,0x11,0x02,0x26,0x01,0x44,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0xf8,0x02,0x03,0x03,0x11,0x02,0x26,0x01,0x44,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0x35,0x02,0x03,0x02,0x2e,0x00,0x3a,0x00,0x95,0x40,0x0a,0x09,0x01,0x07,0x03, +0x33,0x01,0x01,0x07,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x36,0x00,0x05,0x06,0x02,0x06,0x05,0x02,0x80,0x00,0x02,0x03,0x06,0x02,0x03,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x72,0x00,0x06,0x06,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x03,0x03,0x07,0x61,0x00,0x07,0x07,0x42,0x4d,0x00,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08, +0x3d,0x08,0x4e,0x1b,0x40,0x34,0x00,0x05,0x06,0x02,0x06,0x05,0x02,0x80,0x00,0x02,0x03,0x06,0x02,0x03,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x00,0x80,0x00,0x00,0x09,0x01,0x08,0x00,0x08,0x63,0x00,0x06,0x06,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x03,0x03,0x07,0x61,0x00,0x07,0x07,0x42,0x07,0x4e,0x59,0x40,0x11,0x00,0x00,0x00, +0x3a,0x00,0x39,0x29,0x32,0x12,0x3a,0x32,0x14,0x14,0x21,0x0a,0x09,0x1e,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x26,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x16,0x15,0x14,0x06, +0x23,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xd7,0x46,0x16,0x1b,0x37,0x32,0x17,0x50,0x57,0x5a,0x36,0x31,0x2c,0x32,0x37,0x41,0x98,0x38,0x3e,0x63,0x57,0x2c,0x50,0x65,0x04,0x5b,0x02,0x33,0x29,0x2c,0x2e,0x34,0x35,0x8e,0x8c,0x65,0x5c,0x0d,0x09,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x3e,0x06,0x51,0x47,0x26, +0x2b,0x2c,0x28,0x47,0x09,0x16,0x08,0x4d,0x3f,0x48,0x52,0x4f,0x40,0x1d,0x26,0x2a,0x24,0x3a,0x08,0x14,0x14,0x90,0x4d,0x55,0x1b,0x03,0x14,0x24,0x1a,0x22,0x31,0x00,0xff,0xff,0x00,0x55,0xff,0xf8,0x02,0x03,0x03,0x11,0x02,0x26,0x01,0x44,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0x10,0x02,0x03, +0x02,0x2e,0x02,0x26,0x01,0x44,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x02,0x18,0x02,0xe4,0x00,0x2a,0x00,0x37,0x40,0x34,0x0c,0x01,0x03,0x04,0x01,0x4c,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x69,0x00,0x05,0x05,0x00,0x61,0x00,0x00,0x00,0x3e,0x4d,0x00,0x02,0x02,0x01,0x61,0x07,0x06,0x02, +0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x00,0x2a,0x00,0x2a,0x24,0x21,0x24,0x21,0x2d,0x24,0x08,0x09,0x1c,0x2b,0x33,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11, +0x5c,0x35,0x5f,0x3f,0x3f,0x5e,0x35,0x41,0x34,0x3e,0x4e,0x38,0x63,0x42,0x3a,0x30,0x3e,0x4d,0x48,0x3a,0x39,0x2e,0x35,0x43,0x43,0x35,0x36,0x43,0x02,0x16,0x3d,0x5d,0x34,0x2f,0x52,0x37,0x3b,0x5a,0x0d,0x03,0x0b,0x68,0x48,0x3c,0x5c,0x34,0x52,0x48,0x3a,0x3a,0x48,0x50,0x42,0x35,0x35,0x42,0x46,0x38,0xfd,0xea,0x00,0x01,0x00,0xa5, +0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x0b,0x00,0x1f,0x40,0x1c,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x21,0x23,0x04,0x09,0x18,0x2b,0x33,0x11,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x11,0xa5,0x5d,0x4c,0xb0,0xb0,0x23,0x2c,0x02,0x3b,0x47,0x58, +0x50,0x2c,0x24,0xfd,0xc6,0x00,0x00,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x08,0x02,0xc1,0x00,0x13,0x00,0x35,0x40,0x32,0x00,0x03,0x02,0x03,0x85,0x05,0x01,0x01,0x01,0x02,0x5f,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x06,0x06,0x00,0x60,0x07,0x01,0x00,0x00,0x39,0x00,0x4e,0x01,0x00,0x12,0x10,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07, +0x06,0x05,0x04,0x00,0x13,0x01,0x13,0x08,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x33,0x15,0x01,0x63,0x44,0x52,0x9e,0x9e,0x5a,0xe1,0xe1,0x21,0x1b,0xa0,0x4f,0x42,0x01,0x43,0x52,0x9b,0x9b,0x52,0xfe,0xbd,0x1c,0x23,0x52,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x08, +0x02,0xc1,0x00,0x1b,0x00,0x3e,0x40,0x3b,0x00,0x03,0x02,0x03,0x85,0x06,0x01,0x00,0x0b,0x0a,0x02,0x07,0x08,0x00,0x07,0x67,0x05,0x01,0x01,0x01,0x02,0x5f,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x08,0x08,0x09,0x60,0x00,0x09,0x09,0x39,0x09,0x4e,0x00,0x00,0x00,0x1b,0x00,0x1b,0x18,0x16,0x23,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, +0x0c,0x09,0x1f,0x2b,0x37,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x35,0x55,0x78,0x9e,0x9e,0x5a,0xe1,0xe1,0xb4,0xb4,0x21,0x1b,0xa0,0xa0,0x44,0x52,0xef,0x4b,0x9a,0x52,0x9b,0x9b,0x52,0x9a,0x4b,0x5e,0x1c,0x23,0x52,0x4f,0x42,0x5e,0x00, +0xff,0xff,0x00,0x2f,0x00,0x00,0x02,0x08,0x03,0x21,0x02,0x26,0x01,0x4c,0x00,0x00,0x01,0x07,0x06,0x6d,0x02,0x12,0x00,0x47,0x00,0x08,0xb1,0x01,0x01,0xb0,0x47,0xb0,0x35,0x2b,0x00,0x00,0x00,0x01,0x00,0x2f,0xff,0x35,0x02,0x08,0x02,0xc1,0x00,0x25,0x00,0x87,0x40,0x0a,0x09,0x01,0x08,0x07,0x1e,0x01,0x01,0x08,0x02,0x4c,0x4b,0xb0, +0x15,0x50,0x58,0x40,0x2f,0x00,0x04,0x03,0x04,0x85,0x00,0x01,0x08,0x00,0x08,0x01,0x00,0x80,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3b,0x4d,0x00,0x07,0x07,0x08,0x5f,0x00,0x08,0x08,0x39,0x4d,0x00,0x00,0x00,0x09,0x5f,0x0a,0x01,0x09,0x09,0x3d,0x09,0x4e,0x1b,0x40,0x2c,0x00,0x04,0x03,0x04,0x85,0x00,0x01,0x08,0x00, +0x08,0x01,0x00,0x80,0x00,0x00,0x0a,0x01,0x09,0x00,0x09,0x63,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3b,0x4d,0x00,0x07,0x07,0x08,0x5f,0x00,0x08,0x08,0x39,0x08,0x4e,0x59,0x40,0x12,0x00,0x00,0x00,0x25,0x00,0x24,0x11,0x23,0x11,0x11,0x11,0x11,0x15,0x14,0x21,0x0b,0x09,0x1f,0x2b,0x05,0x35,0x33,0x32,0x36,0x35,0x34, +0x26,0x23,0x37,0x26,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x33,0x15,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0x01,0x09,0x46,0x16,0x1b,0x37,0x32,0x1c,0x30,0x36,0x9e,0x9e,0x5a,0xe1,0xe1,0x21,0x1b,0xa0,0x99,0x0c,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x4b,0x0d,0x49, +0x35,0x01,0x43,0x52,0x9b,0x9b,0x52,0xfe,0xbd,0x1c,0x23,0x52,0x23,0x03,0x14,0x24,0x1a,0x22,0x31,0x00,0xff,0xff,0x00,0x2f,0xff,0x10,0x02,0x08,0x02,0xc1,0x02,0x26,0x01,0x4c,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x94,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0x26,0x00,0x11,0x00,0x24,0x40,0x21,0x03,0x01,0x01,0x01, +0x3b,0x4d,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x0e,0x0d,0x0a,0x08,0x05,0x04,0x00,0x11,0x01,0x11,0x05,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x01,0x2b,0x5f,0x72,0x5a,0x40,0x37,0x38,0x41,0x5a,0x74,0x0a,0x71,0x61,0x01,0x5e, +0xfe,0xa2,0x3c,0x47,0x47,0x3c,0x01,0x5e,0xfe,0xa2,0x61,0x71,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a, +0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x09,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x68, +0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xf4,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x27,0x06,0x68,0x02,0x58,0x00,0x00,0x01,0x07,0x06,0x6b,0x02,0x62,0x00,0xe3,0x00,0x08,0xb1,0x03,0x01,0xb0,0xe3,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xf4,0x02,0x26,0x01,0x51,0x00,0x00, +0x00,0x27,0x06,0x68,0x02,0x58,0x00,0x00,0x01,0x07,0x06,0x6f,0x02,0x58,0x00,0xe3,0x00,0x08,0xb1,0x03,0x01,0xb0,0xe3,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xf4,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x27,0x06,0x68,0x02,0x58,0x00,0x00,0x01,0x07,0x06,0x6a,0x02,0x4e,0x00,0xe3,0x00,0x08,0xb1,0x03, +0x01,0xb0,0xe3,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xcc,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x27,0x06,0x68,0x02,0x58,0x00,0x00,0x01,0x07,0x06,0x73,0x02,0x58,0x00,0xe3,0x00,0x08,0xb1,0x03,0x01,0xb0,0xe3,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x2b,0x01,0xfe,0x02,0x26,0x02,0x26, +0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x39,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a, +0xff,0xf6,0x02,0x58,0x02,0x94,0x00,0x19,0x00,0x4e,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x1c,0x00,0x03,0x00,0x00,0x03,0x70,0x00,0x04,0x04,0x00,0x61,0x02,0x01,0x00,0x00,0x3b,0x4d,0x00,0x01,0x01,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x1b,0x40,0x1b,0x00,0x03,0x00,0x03,0x85,0x00,0x04,0x04,0x00,0x61,0x02,0x01,0x00,0x00,0x3b,0x4d, +0x00,0x01,0x01,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x59,0x40,0x09,0x23,0x13,0x12,0x23,0x23,0x11,0x06,0x09,0x1c,0x2b,0x37,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x11,0x14,0x06,0x23,0x22,0x26,0x5a,0x5a,0x40,0x37,0x38,0x41,0x46,0x23,0x4b,0x2b,0x2f,0x74,0x5f,0x5f, +0x72,0xc8,0x01,0x5e,0xfe,0xa2,0x3e,0x45,0x45,0x3e,0x01,0x5e,0x23,0x4b,0x50,0x2b,0x34,0xfe,0xe3,0x61,0x71,0x71,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x11,0x02,0x26,0x01,0x5e,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x2b,0x02,0x58,0x02,0x94,0x02,0x26,0x01,0x5e,0x00,0x00, +0x00,0x07,0x06,0x78,0x02,0x57,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x11,0x02,0x26,0x01,0x5e,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x39,0x02,0x26,0x01,0x5e,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58, +0x03,0x0c,0x02,0x26,0x01,0x5e,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x10,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x6c,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0xe9,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00, +0x00,0x01,0x00,0x5a,0xff,0x35,0x01,0xfe,0x02,0x26,0x00,0x1f,0x00,0x56,0x4b,0xb0,0x15,0x50,0x58,0x40,0x1c,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x05,0x05,0x00,0x60,0x06,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x19,0x00,0x05,0x06,0x01,0x00,0x05,0x00,0x64,0x04,0x01,0x02,0x02, +0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x13,0x01,0x00,0x1e,0x1c,0x13,0x12,0x10,0x0e,0x0c,0x0b,0x08,0x06,0x00,0x1f,0x01,0x1f,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x37,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x35,0x11,0x33,0x11,0x14,0x07,0x07,0x06,0x06,0x15,0x14, +0x16,0x33,0x33,0x15,0x01,0x74,0x37,0x43,0x19,0x22,0x09,0x62,0x70,0x5a,0x78,0x78,0x5a,0x57,0x18,0x22,0x1e,0x1e,0x19,0x3c,0xcb,0x35,0x28,0x16,0x2f,0x1f,0x70,0x62,0x01,0x5e,0xfe,0xa2,0x82,0x82,0x01,0x5e,0xfe,0xa2,0x7f,0x34,0x14,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x44,0x02,0x26, +0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x71,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x0c,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x36,0x00,0x00,0x02,0x22,0x02,0x26,0x00,0x0c,0x00,0x21,0x40,0x1e,0x06,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x3b,0x4d, +0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x18,0x11,0x04,0x09,0x18,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0xf1,0xbb,0x61,0x78,0x0b,0x10,0x04,0x05,0x0e,0x0a,0x78,0x5f,0xbb,0x02,0x26,0xfe,0x8e,0x21,0x3d,0x11,0x11,0x3d,0x21,0x01,0x72,0xfd,0xda,0x00,0x00,0x01,0x00,0x1f, +0x00,0x00,0x02,0x39,0x02,0x26,0x00,0x1e,0x00,0x27,0x40,0x24,0x1a,0x0f,0x06,0x03,0x03,0x00,0x01,0x4c,0x02,0x01,0x02,0x00,0x00,0x3b,0x4d,0x05,0x04,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x1e,0x00,0x1e,0x11,0x18,0x18,0x11,0x06,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x13,0x16,0x16, +0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x23,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x79,0x5a,0x4e,0x38,0x03,0x06,0x01,0x02,0x05,0x04,0x45,0x5a,0x45,0x04,0x07,0x01,0x02,0x06,0x03,0x3a,0x4a,0x5e,0x63,0x3f,0x04,0x07,0x02,0x01,0x08,0x05,0x42,0x02,0x26,0xfe,0x7c,0x16,0x35,0x11,0x11,0x35,0x16,0x01,0x84,0xfe,0x7c,0x16,0x35,0x11, +0x11,0x35,0x16,0x01,0x84,0xfd,0xda,0x01,0x7c,0x1c,0x3f,0x11,0x11,0x3f,0x1c,0xfe,0x84,0x00,0x00,0x00,0xff,0xff,0x00,0x1f,0x00,0x00,0x02,0x39,0x03,0x11,0x02,0x26,0x01,0x6a,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x1f,0x00,0x00,0x02,0x39,0x03,0x11,0x02,0x26,0x01,0x6a,0x00,0x00,0x00,0x07,0x06,0x6e, +0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x1f,0x00,0x00,0x02,0x39,0x03,0x09,0x02,0x26,0x01,0x6a,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x1f,0x00,0x00,0x02,0x39,0x03,0x11,0x02,0x26,0x01,0x6a,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0x26,0x00,0x17, +0x00,0x26,0x40,0x23,0x13,0x0d,0x07,0x01,0x04,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x3b,0x4d,0x04,0x03,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x17,0x00,0x17,0x12,0x18,0x12,0x05,0x09,0x19,0x2b,0x33,0x13,0x03,0x33,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x03,0x13,0x23,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07, +0x32,0xc3,0xb7,0x6a,0x6d,0x07,0x0d,0x04,0x03,0x0d,0x07,0x6d,0x6a,0xb7,0xc2,0x6a,0x76,0x07,0x0d,0x05,0x04,0x0f,0x08,0x76,0x01,0x1b,0x01,0x0b,0xaa,0x0b,0x1a,0x08,0x08,0x1a,0x0b,0xaa,0xfe,0xf4,0xfe,0xe6,0xb4,0x0b,0x1d,0x09,0x09,0x1d,0x0b,0xb4,0x00,0x01,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x26,0x00,0x0d,0x00,0x22,0x40,0x1f, +0x07,0x01,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x3b,0x4d,0x03,0x01,0x02,0x02,0x3d,0x02,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x18,0x12,0x04,0x09,0x18,0x2b,0x17,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x01,0xb2,0x51,0xcd,0x61,0x82,0x08,0x0e,0x03,0x03,0x0e,0x07,0x79,0x5f,0xfe,0xee,0xb4,0xd6,0x02, +0x04,0xfe,0xac,0x14,0x2c,0x10,0x10,0x2c,0x14,0x01,0x54,0xfd,0x26,0x00,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x09,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x2b,0x02,0x22,0x02,0x26,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0xf8,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0x70,0x00,0x00, +0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x39,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0xe9,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22, +0x03,0x0c,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a,0x00,0x00,0x01,0xfe,0x02,0x26,0x00,0x09,0x00,0x2c,0x40,0x29,0x06,0x01,0x02,0x02,0x00,0x01,0x4c,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x3b,0x4d,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00, +0x09,0x00,0x09,0x12,0x11,0x12,0x05,0x09,0x19,0x2b,0x33,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x5a,0x01,0x34,0xfe,0xd4,0x01,0x91,0xfe,0xc6,0x01,0x45,0x5a,0x01,0x7a,0x52,0x5a,0xfe,0x86,0x52,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x79,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00, +0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x79,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0x09,0x02,0x26,0x01,0x79,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x1c,0x02,0xda,0x02,0x06,0x00,0x87,0x00,0x00, +0x00,0x01,0x00,0x41,0x00,0x00,0x02,0x2b,0x02,0xda,0x00,0x09,0x00,0x27,0x40,0x24,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x03,0x01,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x09,0x1a,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x41, +0xc8,0xb4,0x01,0x0e,0xc8,0x52,0x02,0x36,0x52,0xfd,0x78,0x52,0xff,0xff,0x00,0x41,0x00,0x00,0x02,0x2b,0x03,0xb6,0x02,0x26,0x01,0x7e,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x53,0x00,0x00,0xff,0xff,0x00,0x41,0x00,0x00,0x02,0x2b,0x02,0xda,0x02,0x26,0x01,0x7e,0x00,0x00,0x00,0x07,0x06,0x6d,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x41, +0xff,0x10,0x02,0x2b,0x02,0xda,0x00,0x27,0x06,0x7a,0x02,0x5d,0x00,0x00,0x02,0x06,0x01,0x7e,0x00,0x00,0xff,0xff,0x00,0x41,0x00,0x00,0x02,0xa7,0x02,0xda,0x00,0x27,0x03,0x29,0x01,0x29,0x01,0x13,0x03,0x06,0x01,0x7e,0x00,0x00,0x00,0x09,0xb1,0x00,0x01,0xb8,0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x41,0x00,0x00,0x02,0x2b, +0x02,0xda,0x00,0x11,0x00,0x34,0x40,0x31,0x0e,0x0d,0x0c,0x0b,0x06,0x05,0x04,0x03,0x08,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x03,0x01,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x11,0x00,0x11,0x15,0x11,0x15,0x11,0x06,0x09,0x1a,0x2b,0x33,0x35,0x33,0x35,0x07,0x35, +0x37,0x35,0x23,0x35,0x21,0x11,0x37,0x15,0x07,0x11,0x33,0x15,0x41,0xc8,0x8c,0x8c,0xb4,0x01,0x0e,0x8c,0x8c,0xc8,0x52,0xf3,0x5f,0x50,0x5f,0xf3,0x52,0xfe,0xf7,0x5f,0x50,0x5f,0xfe,0xd1,0x52,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0xff,0xf6,0x02,0x24,0x02,0xc1,0x00,0x19,0x00,0x3f,0x40,0x3c,0x00,0x03,0x02,0x03,0x85,0x00,0x07,0x01, +0x06,0x01,0x07,0x06,0x80,0x05,0x01,0x01,0x01,0x02,0x5f,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x16,0x14,0x12,0x10,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x19,0x01,0x19,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x33,0x15, +0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x01,0x70,0x54,0x63,0x96,0x96,0x5a,0xe1,0xe1,0x32,0x2b,0x2b,0x31,0x58,0x61,0x0a,0x62,0x54,0x01,0x28,0x52,0x9b,0x9b,0x52,0xfe,0xd8,0x2f,0x37,0x37,0x2f,0x03,0x03,0x54,0x62,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0xff,0xf6,0x02,0x24,0x02,0xc1,0x00,0x21, +0x00,0x48,0x40,0x45,0x00,0x03,0x02,0x03,0x85,0x00,0x09,0x07,0x08,0x07,0x09,0x08,0x80,0x06,0x01,0x00,0x0c,0x0b,0x02,0x07,0x09,0x00,0x07,0x67,0x05,0x01,0x01,0x01,0x02,0x5f,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x08,0x08,0x0a,0x61,0x00,0x0a,0x0a,0x3f,0x0a,0x4e,0x00,0x00,0x00,0x21,0x00,0x21,0x1e,0x1c,0x19,0x17,0x23,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x0d,0x09,0x1f,0x2b,0x37,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x55,0x64,0x96,0x96,0x5a,0xe1,0xe1,0xc8,0xc8,0x32,0x2b,0x2b,0x31,0x58,0x61,0x53,0x54,0x63,0xef,0x4b, +0x9a,0x52,0x9b,0x9b,0x52,0x9a,0x4b,0x43,0x2f,0x37,0x37,0x2f,0x03,0x03,0x54,0x62,0x62,0x54,0x43,0x00,0xff,0xff,0x00,0x23,0xff,0xf6,0x02,0x24,0x03,0x21,0x02,0x26,0x01,0x84,0x00,0x00,0x01,0x07,0x06,0x6d,0x02,0x12,0x00,0x47,0x00,0x08,0xb1,0x01,0x01,0xb0,0x47,0xb0,0x35,0x2b,0x00,0x00,0x00,0x01,0x00,0x23,0xff,0x35,0x02,0x24, +0x02,0xc1,0x00,0x2d,0x00,0x98,0x40,0x0a,0x09,0x01,0x09,0x07,0x26,0x01,0x01,0x09,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x36,0x00,0x04,0x03,0x04,0x85,0x00,0x08,0x02,0x07,0x02,0x08,0x07,0x80,0x00,0x01,0x09,0x00,0x09,0x01,0x72,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3b,0x4d,0x00,0x07,0x07,0x09,0x61,0x00,0x09, +0x09,0x3f,0x4d,0x00,0x00,0x00,0x0a,0x5f,0x0b,0x01,0x0a,0x0a,0x3d,0x0a,0x4e,0x1b,0x40,0x34,0x00,0x04,0x03,0x04,0x85,0x00,0x08,0x02,0x07,0x02,0x08,0x07,0x80,0x00,0x01,0x09,0x00,0x09,0x01,0x00,0x80,0x00,0x00,0x0b,0x01,0x0a,0x00,0x0a,0x63,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3b,0x4d,0x00,0x07,0x07,0x09,0x61, +0x00,0x09,0x09,0x3f,0x09,0x4e,0x59,0x40,0x14,0x00,0x00,0x00,0x2d,0x00,0x2c,0x25,0x22,0x22,0x23,0x11,0x11,0x11,0x11,0x15,0x14,0x21,0x0c,0x09,0x1f,0x2b,0x05,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x26,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14, +0x06,0x23,0x22,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0x01,0x09,0x46,0x16,0x1b,0x37,0x32,0x19,0x38,0x3f,0x96,0x96,0x5a,0xe1,0xe1,0x32,0x2b,0x2b,0x31,0x58,0x61,0x53,0x05,0x04,0x09,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x44,0x10,0x5a,0x43,0x01,0x28,0x52,0x9b,0x9b,0x52,0xfe,0xd8,0x2f,0x37,0x37,0x2f,0x03, +0x03,0x54,0x62,0x19,0x03,0x14,0x24,0x1a,0x22,0x31,0x00,0x00,0xff,0xff,0x00,0x23,0xff,0x10,0x02,0x24,0x02,0xc1,0x02,0x26,0x01,0x84,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x94,0x00,0x00,0x00,0x03,0x00,0x32,0xff,0x42,0x02,0x46,0x02,0x30,0x00,0x26,0x00,0x32,0x00,0x40,0x00,0xd1,0x40,0x0a,0x08,0x01,0x04,0x06,0x07,0x01,0x09,0x05, +0x02,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x2a,0x0b,0x01,0x06,0x00,0x04,0x05,0x06,0x04,0x69,0x00,0x05,0x00,0x09,0x08,0x05,0x09,0x67,0x07,0x01,0x03,0x03,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x0c,0x01,0x08,0x08,0x00,0x5f,0x0a,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x4b,0xb0,0x31,0x50,0x58,0x40,0x32,0x0b,0x01,0x06,0x00,0x04, +0x05,0x06,0x04,0x69,0x00,0x05,0x00,0x09,0x08,0x05,0x09,0x67,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x0c,0x01,0x08,0x08,0x00,0x5f,0x0a,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x2f,0x0b,0x01,0x06,0x00,0x04,0x05,0x06,0x04,0x69,0x00,0x05,0x00,0x09,0x08,0x05,0x09, +0x67,0x0c,0x01,0x08,0x0a,0x01,0x00,0x08,0x00,0x63,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x3b,0x03,0x4e,0x59,0x59,0x40,0x23,0x35,0x33,0x28,0x27,0x01,0x00,0x3c,0x39,0x33,0x40,0x35,0x40,0x2e,0x2c,0x27,0x32,0x28,0x32,0x1f,0x1d,0x1b,0x19,0x13,0x12,0x11,0x10,0x0f,0x0d,0x00, +0x26,0x01,0x25,0x0d,0x09,0x16,0x2b,0x17,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x15,0x23,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x23,0x15,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x33,0x32,0x36,0x35,0x34, +0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0xe2,0x33,0x50,0x2d,0x51,0x40,0x34,0x3a,0x6e,0x5e,0x2e,0x19,0xde,0xb9,0x29,0x33,0x6c,0x5c,0x09,0x08,0x77,0x34,0x4f,0x2e,0x2e,0x4f,0x34,0x66,0x38,0x40,0x40,0x38,0x38,0x42,0x42,0x07,0xa6,0x26,0x31,0x31,0x26,0xa6,0x25,0x32,0x32,0xbe,0x29,0x49,0x30,0x42,0x57,0x0a,0x5f,0x13,0x50,0x39, +0x50,0x5e,0x0a,0x4a,0x01,0x05,0x2d,0x30,0x4b,0x57,0x4e,0x2a,0x4a,0x31,0x30,0x49,0x29,0x01,0xdc,0x36,0x2e,0x2e,0x36,0x36,0x2e,0x2e,0x36,0xfe,0x72,0x30,0x27,0x27,0x30,0x30,0x27,0x27,0x30,0x00,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x11,0x02,0x26,0x01,0x89,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00, +0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x11,0x02,0x26,0x01,0x89,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x11,0x02,0x26,0x01,0x89,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x11,0x02,0x26,0x01,0x89,0x00,0x00, +0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x70,0x02,0x26,0x01,0x89,0x00,0x00,0x00,0x07,0x06,0x76,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x09,0x02,0x26,0x01,0x89,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x42,0x01,0xfe, +0x03,0x09,0x02,0x26,0x01,0x91,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0xe3,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0x42,0x01,0xee,0x02,0x26,0x00,0x15,0x00,0x58,0x4b,0xb0,0x31,0x50,0x58,0x40,0x1e,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x3b,0x4d,0x00,0x02,0x02,0x00,0x61,0x05,0x01,0x00,0x00, +0x3d,0x00,0x4e,0x1b,0x40,0x1b,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x02,0x05,0x01,0x00,0x02,0x00,0x65,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x3b,0x03,0x4e,0x59,0x40,0x11,0x01,0x00,0x11,0x10,0x0f,0x0e,0x0b,0x09,0x06,0x05,0x00,0x15,0x01,0x15,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x35,0x33,0x15,0x14,0x16, +0x33,0x32,0x36,0x35,0x11,0x21,0x35,0x21,0x11,0x14,0x06,0x06,0x01,0x24,0x3c,0x5b,0x33,0x5a,0x3f,0x31,0x32,0x3e,0xfe,0xf3,0x01,0x67,0x33,0x5b,0xbe,0x32,0x58,0x3a,0x4a,0x4a,0x34,0x40,0x40,0x34,0x01,0xce,0x52,0xfd,0xe0,0x3a,0x58,0x32,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x42,0x02,0x6c,0x03,0x11,0x02,0x26,0x01,0x91,0x00,0x00, +0x00,0x07,0x06,0x6e,0x02,0xe3,0x00,0x00,0x00,0x01,0xff,0xfb,0xff,0xf6,0x02,0x1f,0x02,0xda,0x00,0x13,0x00,0x32,0x40,0x2f,0x00,0x04,0x01,0x03,0x01,0x04,0x03,0x80,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x03,0x03,0x00,0x61,0x05,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x10,0x0f,0x0c,0x0a,0x07,0x06,0x05,0x04, +0x00,0x13,0x01,0x13,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x01,0x60,0x58,0x67,0xa6,0x01,0x00,0x36,0x2f,0x2f,0x36,0x5a,0x66,0x0a,0x66,0x57,0x01,0xd5,0x52,0xfd,0xd9,0x31,0x3c,0x3c,0x31,0x4b,0x4b,0x57,0x66,0x00,0x00,0x00,0xff,0xff,0xff,0xfb, +0xff,0xf6,0x02,0x1f,0x03,0xb6,0x02,0x26,0x01,0x93,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x30,0x00,0x00,0xff,0xff,0xff,0xfb,0xff,0xf6,0x02,0x1f,0x02,0xda,0x00,0x27,0x06,0x6d,0x02,0x58,0x00,0x00,0x02,0x06,0x01,0x93,0x00,0x00,0xff,0xff,0xff,0xfb,0xff,0x10,0x02,0x1f,0x02,0xda,0x00,0x27,0x06,0x7a,0x02,0x5d,0x00,0x00,0x02,0x06, +0x01,0x93,0x00,0x00,0x00,0x02,0xff,0xfb,0xff,0xf6,0x02,0x4d,0x02,0xda,0x00,0x13,0x00,0x1f,0x00,0x43,0x40,0x40,0x00,0x04,0x05,0x03,0x05,0x04,0x03,0x80,0x00,0x06,0x08,0x01,0x05,0x04,0x06,0x05,0x69,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x15,0x14,0x01, +0x00,0x1b,0x19,0x14,0x1f,0x15,0x1f,0x10,0x0f,0x0c,0x0a,0x07,0x06,0x05,0x04,0x00,0x13,0x01,0x13,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x61,0x58,0x68,0xa6,0x01,0x00,0x37,0x2f, +0x2f,0x37,0x5a,0x67,0x41,0x25,0x2d,0x2d,0x25,0x25,0x2d,0x2d,0x0a,0x66,0x57,0x01,0xd5,0x52,0xfd,0xd9,0x31,0x3a,0x3a,0x31,0x29,0x29,0x57,0x66,0x01,0x23,0x2c,0x23,0x25,0x2e,0x2e,0x25,0x23,0x2c,0x00,0x00,0x00,0x01,0xff,0xfb,0xff,0xf6,0x02,0x1f,0x02,0xda,0x00,0x1b,0x00,0x38,0x40,0x35,0x1b,0x0a,0x09,0x08,0x07,0x02,0x01,0x07, +0x03,0x00,0x00,0x01,0x02,0x03,0x02,0x4c,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x3f,0x04,0x4e,0x23,0x13,0x27,0x11,0x13,0x05,0x09,0x1b,0x2b,0x37,0x35,0x37,0x35,0x23,0x35,0x21,0x11,0x37,0x15,0x07,0x15,0x14,0x16,0x33,0x32,0x36,0x35, +0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x23,0x7e,0xa6,0x01,0x00,0x9a,0x9a,0x36,0x2f,0x2f,0x36,0x5a,0x66,0x59,0x58,0x67,0xe6,0x50,0x55,0xfd,0x52,0xfe,0xee,0x68,0x50,0x68,0xc5,0x31,0x3c,0x3c,0x31,0x4b,0x4b,0x57,0x66,0x66,0x57,0x88,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x30,0x00,0x23,0x00,0x64,0xb6,0x0a, +0x03,0x02,0x05,0x04,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x05,0x04,0x03,0x04,0x05,0x03,0x80,0x06,0x01,0x04,0x04,0x00,0x61,0x02,0x01,0x02,0x00,0x00,0x3b,0x4d,0x08,0x07,0x02,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x21,0x00,0x05,0x04,0x03,0x04,0x05,0x03,0x80,0x00,0x00,0x00,0x3b,0x4d,0x06,0x01,0x04,0x04,0x01,0x61, +0x02,0x01,0x01,0x01,0x41,0x4d,0x08,0x07,0x02,0x03,0x03,0x39,0x03,0x4e,0x59,0x40,0x10,0x00,0x00,0x00,0x23,0x00,0x23,0x23,0x13,0x23,0x13,0x24,0x24,0x11,0x09,0x09,0x1d,0x2b,0x33,0x11,0x33,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34, +0x26,0x23,0x22,0x06,0x15,0x11,0x3c,0x51,0x02,0x01,0x05,0x2e,0x25,0x24,0x32,0x0b,0x07,0x31,0x26,0x35,0x40,0x56,0x1d,0x1a,0x1b,0x20,0x50,0x1f,0x1a,0x1a,0x1f,0x02,0x26,0x49,0x26,0x2d,0x29,0x23,0x23,0x29,0x4f,0x3f,0xfe,0x5e,0x01,0xa3,0x21,0x27,0x26,0x21,0xcd,0xcc,0x21,0x27,0x26,0x21,0xfe,0x5c,0x00,0x00,0x00,0x01,0x00,0x22, +0x00,0x00,0x02,0x36,0x02,0x26,0x00,0x18,0x00,0x2e,0x40,0x2b,0x17,0x0f,0x06,0x03,0x03,0x01,0x01,0x4c,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x02,0x01,0x00,0x00,0x3b,0x4d,0x05,0x04,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x18,0x00,0x18,0x11,0x18,0x18,0x11,0x06,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36, +0x36,0x37,0x13,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x23,0x03,0x03,0x6c,0x4a,0x52,0x2f,0x03,0x06,0x01,0x02,0x08,0x06,0x45,0x58,0x43,0x05,0x0c,0x01,0x02,0x06,0x03,0x2e,0x4e,0x4b,0x67,0x57,0x5a,0x02,0x26,0xfe,0x84,0x16,0x39,0x0b,0x0b,0x39,0x16,0x01,0x0f,0xfe,0xf1,0x16,0x37,0x0c,0x0c,0x37,0x16,0x01,0x7c, +0xfd,0xda,0x01,0x5f,0xfe,0xa1,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x02,0x36,0x03,0x11,0x02,0x26,0x01,0x9a,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x02,0x36,0x03,0x11,0x02,0x26,0x01,0x9a,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x02,0x36, +0x03,0x09,0x02,0x26,0x01,0x9a,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x02,0x36,0x03,0x11,0x02,0x26,0x01,0x9a,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x37,0x02,0xda,0x00,0x03,0x00,0x09,0x00,0x2f,0x40,0x2c,0x08,0x05,0x02,0x01,0x02,0x01, +0x4c,0x00,0x00,0x00,0x38,0x4d,0x00,0x02,0x02,0x3b,0x4d,0x05,0x03,0x04,0x03,0x01,0x01,0x39,0x01,0x4e,0x04,0x04,0x00,0x00,0x04,0x09,0x04,0x09,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x33,0x11,0x33,0x11,0x21,0x03,0x13,0x33,0x03,0x13,0x64,0x5a,0x01,0x04,0xf6,0xe6,0x71,0xe5,0xf9,0x02,0xda,0xfd,0x26,0x01,0x22, +0x01,0x04,0xfe,0xfd,0xfe,0xdd,0x00,0x00,0xff,0xff,0x00,0x64,0xff,0x10,0x02,0x37,0x02,0xda,0x00,0x27,0x06,0x7a,0x02,0x58,0x00,0x00,0x02,0x06,0x01,0x9f,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x37,0x02,0x26,0x02,0x06,0x02,0x4b,0x00,0x00,0x00,0x01,0x00,0x41,0x00,0x00,0x02,0x09,0x02,0xda,0x00,0x16,0x00,0x35,0x40,0x32, +0x05,0x01,0x02,0x06,0x01,0x01,0x00,0x02,0x01,0x67,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x07,0x01,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08,0x39,0x08,0x4e,0x00,0x00,0x00,0x16,0x00,0x16,0x11,0x11,0x12,0x21,0x23,0x11,0x11,0x11,0x0a,0x09,0x1e,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15, +0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x41,0x9b,0x9b,0x9b,0x52,0x48,0x93,0x93,0x40,0xd3,0xd3,0xd3,0x52,0x01,0x39,0x50,0x75,0x41,0x49,0x50,0x3a,0x75,0x50,0xfe,0xc7,0x52,0x00,0x01,0x00,0x46,0x00,0x00,0x02,0x23,0x02,0x27,0x00,0x14,0x00,0x6e,0x4b,0xb0,0x1e,0x50,0x58,0xb5,0x07,0x01,0x00,0x01,0x01,0x4c,0x1b,0xb5, +0x07,0x01,0x00,0x04,0x01,0x4c,0x59,0x4b,0xb0,0x1e,0x50,0x58,0x40,0x19,0x04,0x01,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x02,0x3b,0x4d,0x05,0x01,0x00,0x00,0x06,0x5f,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x1b,0x40,0x23,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x02,0x3b,0x4d,0x00,0x04,0x04,0x02,0x5f,0x03,0x01,0x02,0x02,0x3b,0x4d, +0x05,0x01,0x00,0x00,0x06,0x5f,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x59,0x40,0x0f,0x00,0x00,0x00,0x14,0x00,0x14,0x13,0x21,0x24,0x11,0x11,0x11,0x08,0x09,0x1c,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x33,0x15,0x33,0x36,0x36,0x37,0x37,0x15,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x46,0x91,0x87,0xda,0x01,0x0d,0x4e,0x39,0x64,0x63,0x42, +0x4d,0xd3,0x52,0x01,0x82,0x52,0x88,0x3e,0x49,0x01,0x01,0x5b,0x43,0x3a,0xfd,0x52,0xff,0xff,0x00,0x46,0x00,0x00,0x02,0x23,0x03,0x11,0x00,0x27,0x06,0x6b,0x02,0x76,0x00,0x00,0x02,0x06,0x01,0xa3,0x00,0x00,0xff,0xff,0x00,0x46,0x00,0x00,0x02,0x23,0x03,0x11,0x00,0x27,0x06,0x6f,0x02,0x6c,0x00,0x00,0x02,0x06,0x01,0xa3,0x00,0x00, +0xff,0xff,0x00,0x46,0xff,0x10,0x02,0x23,0x02,0x27,0x00,0x27,0x06,0x7a,0x02,0x1c,0x00,0x00,0x02,0x06,0x01,0xa3,0x00,0x00,0x00,0x01,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x26,0x00,0x15,0x00,0x22,0x40,0x1f,0x0b,0x05,0x02,0x00,0x01,0x01,0x4c,0x02,0x01,0x01,0x01,0x3b,0x4d,0x00,0x00,0x00,0x03,0x60,0x00,0x03,0x03,0x3d,0x03,0x4e, +0x23,0x18,0x14,0x20,0x04,0x09,0x1a,0x2b,0x17,0x33,0x32,0x36,0x37,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x06,0x06,0x23,0x23,0x42,0x66,0x19,0x25,0x0b,0x12,0xcd,0x61,0x82,0x07,0x0f,0x03,0x03,0x0e,0x07,0x79,0x5f,0xdb,0x13,0x4c,0x31,0x75,0x61,0x1e,0x19,0x2a,0x02,0x26,0xfe,0x8a,0x14,0x2c,0x10,0x10, +0x2c,0x14,0x01,0x76,0xfd,0x9a,0x37,0x3d,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22, +0x03,0x09,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x2b,0x02,0x22,0x02,0x26,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0xf8,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00, +0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x39,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0xe9,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x0c,0x02,0x26,0x01,0xa7,0x00,0x00, +0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x02,0x26,0x00,0x14,0x00,0x4c,0xb5,0x03,0x01,0x03,0x02,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x13,0x05,0x04,0x02,0x02,0x02,0x3b,0x4d,0x00,0x03,0x03,0x00,0x61,0x01,0x01,0x00,0x00,0x39,0x00,0x4e,0x1b,0x40,0x17,0x05,0x04,0x02,0x02,0x02,0x3b, +0x4d,0x00,0x00,0x00,0x39,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x0d,0x00,0x00,0x00,0x14,0x00,0x14,0x23,0x13,0x24,0x11,0x06,0x09,0x1a,0x2b,0x01,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0xfc,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63, +0x5a,0x3f,0x36,0x38,0x41,0x02,0x26,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x03,0x11,0x00,0x14,0x00,0x18,0x00,0x6a,0xb5,0x03,0x01,0x03,0x02,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1e,0x00,0x05,0x06,0x05,0x85,0x08,0x01,0x06,0x02,0x06, +0x85,0x07,0x04,0x02,0x02,0x02,0x3b,0x4d,0x00,0x03,0x03,0x00,0x61,0x01,0x01,0x00,0x00,0x39,0x00,0x4e,0x1b,0x40,0x22,0x00,0x05,0x06,0x05,0x85,0x08,0x01,0x06,0x02,0x06,0x85,0x07,0x04,0x02,0x02,0x02,0x3b,0x4d,0x00,0x00,0x00,0x39,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x15,0x15,0x15,0x00,0x00, +0x15,0x18,0x15,0x18,0x17,0x16,0x00,0x14,0x00,0x14,0x23,0x13,0x24,0x11,0x09,0x09,0x1a,0x2b,0x01,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x27,0x37,0x33,0x07,0x01,0xfc,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0xb0,0x6a,0x61,0x6f,0x02,0x26,0xfd, +0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x5f,0x8c,0x8c,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x03,0x11,0x00,0x0d,0x00,0x22,0x00,0x7a,0xb5,0x11,0x01,0x07,0x06,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x22,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x09,0x01,0x00,0x06,0x02,0x00, +0x69,0x0a,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x07,0x07,0x04,0x62,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x26,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x09,0x01,0x00,0x06,0x02,0x00,0x69,0x0a,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x04,0x04,0x39,0x4d,0x00,0x07,0x07,0x05,0x62,0x00,0x05,0x05,0x3f,0x05,0x4e,0x59,0x40,0x1d, +0x0e,0x0e,0x01,0x00,0x0e,0x22,0x0e,0x22,0x1f,0x1d,0x1a,0x19,0x16,0x14,0x10,0x0f,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00,0x0d,0x01,0x0d,0x0b,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x17,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35, +0x11,0x01,0x2c,0x48,0x58,0x47,0x30,0x28,0x29,0x31,0x47,0x58,0x88,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x80,0x50,0x41,0x27,0x30,0x30,0x27,0x41,0x50,0x5a,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc, +0x03,0x11,0x00,0x06,0x00,0x1b,0x00,0x75,0x40,0x0a,0x05,0x01,0x01,0x00,0x0a,0x01,0x06,0x05,0x02,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1f,0x00,0x00,0x01,0x00,0x85,0x08,0x02,0x02,0x01,0x05,0x01,0x85,0x09,0x07,0x02,0x05,0x05,0x3b,0x4d,0x00,0x06,0x06,0x03,0x62,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x23,0x00,0x00,0x01, +0x00,0x85,0x08,0x02,0x02,0x01,0x05,0x01,0x85,0x09,0x07,0x02,0x05,0x05,0x3b,0x4d,0x00,0x03,0x03,0x39,0x4d,0x00,0x06,0x06,0x04,0x62,0x00,0x04,0x04,0x3f,0x04,0x4e,0x59,0x40,0x19,0x07,0x07,0x00,0x00,0x07,0x1b,0x07,0x1b,0x18,0x16,0x13,0x12,0x0f,0x0d,0x09,0x08,0x00,0x06,0x00,0x06,0x11,0x11,0x0a,0x09,0x18,0x2b,0x13,0x37,0x33, +0x17,0x23,0x27,0x07,0x05,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x77,0x8b,0x53,0x8c,0x63,0x52,0x50,0x01,0x20,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x85,0x8c,0x8c,0x4e,0x4e,0x5f,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e, +0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x03,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x03,0x09,0x00,0x0b,0x00,0x17,0x00,0x2c,0x00,0xa2,0xb5,0x1b,0x01,0x07,0x06,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x21,0x0a,0x02,0x09,0x03,0x00,0x00,0x01,0x61,0x03,0x01,0x01,0x01,0x40,0x4d,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x07,0x07, +0x04,0x61,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1f,0x03,0x01,0x01,0x0a,0x02,0x09,0x03,0x00,0x06,0x01,0x00,0x69,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x07,0x07,0x04,0x61,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x23,0x03,0x01,0x01,0x0a,0x02,0x09,0x03,0x00,0x06,0x01,0x00,0x69,0x0b, +0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x04,0x04,0x39,0x4d,0x00,0x07,0x07,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x59,0x59,0x40,0x21,0x18,0x18,0x0d,0x0c,0x01,0x00,0x18,0x2c,0x18,0x2c,0x29,0x27,0x24,0x23,0x20,0x1e,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x09,0x16,0x2b,0x01,0x22,0x26,0x35, +0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x9b,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x01,0x22,0x5a,0x01,0x07,0x4c, +0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x89,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x63,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x02,0x00,0x5a,0xff,0x2b,0x01,0xfc,0x02,0x26,0x00,0x0b,0x00,0x20,0x00,0x68,0xb5,0x0f,0x01,0x05, +0x04,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1b,0x00,0x01,0x07,0x01,0x00,0x01,0x00,0x65,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x05,0x05,0x02,0x61,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x1b,0x40,0x1f,0x00,0x01,0x07,0x01,0x00,0x01,0x00,0x65,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x05,0x05,0x03, +0x61,0x00,0x03,0x03,0x3f,0x03,0x4e,0x59,0x40,0x19,0x0c,0x0c,0x01,0x00,0x0c,0x20,0x0c,0x20,0x1d,0x1b,0x18,0x17,0x14,0x12,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16, +0x33,0x32,0x36,0x35,0x11,0x01,0x2c,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0xaf,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0xd5,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x02,0xfb,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc, +0x03,0x11,0x00,0x03,0x00,0x18,0x00,0x6d,0xb5,0x07,0x01,0x05,0x04,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1e,0x00,0x00,0x01,0x00,0x85,0x07,0x01,0x01,0x04,0x01,0x85,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x05,0x05,0x02,0x62,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x1b,0x40,0x22,0x00,0x00,0x01,0x00,0x85,0x07,0x01,0x01,0x04, +0x01,0x85,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x05,0x05,0x03,0x62,0x00,0x03,0x03,0x3f,0x03,0x4e,0x59,0x40,0x18,0x04,0x04,0x00,0x00,0x04,0x18,0x04,0x18,0x15,0x13,0x10,0x0f,0x0c,0x0a,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x09,0x17,0x2b,0x01,0x27,0x33,0x17,0x17,0x11,0x23,0x35,0x23,0x06,0x06, +0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x0b,0x73,0x64,0x6e,0x92,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x85,0x8c,0x8c,0x5f,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc, +0x03,0x39,0x00,0x0e,0x00,0x23,0x00,0xa6,0xb5,0x12,0x01,0x06,0x05,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x23,0x08,0x01,0x02,0x00,0x05,0x00,0x02,0x72,0x00,0x01,0x00,0x00,0x02,0x01,0x00,0x67,0x09,0x07,0x02,0x05,0x05,0x3b,0x4d,0x00,0x06,0x06,0x03,0x61,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40, +0x24,0x08,0x01,0x02,0x00,0x05,0x00,0x02,0x05,0x80,0x00,0x01,0x00,0x00,0x02,0x01,0x00,0x67,0x09,0x07,0x02,0x05,0x05,0x3b,0x4d,0x00,0x06,0x06,0x03,0x61,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x28,0x08,0x01,0x02,0x00,0x05,0x00,0x02,0x05,0x80,0x00,0x01,0x00,0x00,0x02,0x01,0x00,0x67,0x09,0x07,0x02,0x05,0x05,0x3b,0x4d, +0x00,0x03,0x03,0x39,0x4d,0x00,0x06,0x06,0x04,0x61,0x00,0x04,0x04,0x3f,0x04,0x4e,0x59,0x59,0x40,0x19,0x0f,0x0f,0x00,0x00,0x0f,0x23,0x0f,0x23,0x20,0x1e,0x1b,0x1a,0x17,0x15,0x11,0x10,0x00,0x0e,0x00,0x0e,0x21,0x24,0x0a,0x09,0x18,0x2b,0x01,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x07,0x07,0x17,0x11,0x23, +0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x02,0x32,0x0e,0x20,0x50,0x69,0x26,0x2f,0x11,0x28,0xa5,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x85,0x3f,0x13,0x0d,0x14,0x41,0x27,0x23,0x20,0x16,0x34,0x5f,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72, +0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x01,0x00,0x5a,0xff,0xf6,0x02,0x58,0x02,0x94,0x00,0x1c,0x00,0x8f,0xb5,0x19,0x01,0x02,0x05,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x1e,0x00,0x04,0x01,0x01,0x04,0x70,0x00,0x05,0x05,0x01,0x5f,0x03,0x01,0x01,0x01,0x3b,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x07,0x02,0x00,0x00,0x3f, +0x00,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x04,0x01,0x04,0x85,0x00,0x05,0x05,0x01,0x5f,0x03,0x01,0x01,0x01,0x3b,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x07,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x21,0x00,0x04,0x01,0x04,0x85,0x00,0x05,0x05,0x01,0x5f,0x03,0x01,0x01,0x01,0x3b,0x4d,0x00,0x06,0x06,0x39,0x4d,0x00, +0x02,0x02,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x59,0x40,0x15,0x01,0x00,0x18,0x17,0x16,0x15,0x12,0x11,0x0f,0x0d,0x0a,0x08,0x05,0x04,0x00,0x1c,0x01,0x1c,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x11,0x23,0x35,0x23, +0x06,0x06,0x01,0x0f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x48,0x23,0x4b,0x2d,0x2f,0x5a,0x01,0x07,0x4c,0x0a,0x66,0x58,0x01,0x72,0xfe,0x98,0x3a,0x40,0x44,0x40,0x01,0x5e,0x23,0x4b,0x50,0x2b,0x34,0xfe,0x1b,0x69,0x37,0x3c,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x11,0x02,0x26,0x01,0xb8,0x00,0x00,0x00,0x07,0x06,0x6b, +0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x2b,0x02,0x58,0x02,0x94,0x02,0x26,0x01,0xb8,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x57,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x11,0x02,0x26,0x01,0xb8,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x39,0x02,0x26, +0x01,0xb8,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x0c,0x02,0x26,0x01,0xb8,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x5a,0xff,0xf6,0x02,0x10,0x03,0x11,0x00,0x03,0x00,0x07,0x00,0x1c,0x00,0x77,0xb5,0x0b,0x01,0x07,0x06,0x01,0x4c,0x4b,0xb0,0x18, +0x50,0x58,0x40,0x1f,0x02,0x01,0x00,0x0a,0x03,0x09,0x03,0x01,0x06,0x00,0x01,0x67,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x07,0x07,0x04,0x61,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x23,0x02,0x01,0x00,0x0a,0x03,0x09,0x03,0x01,0x06,0x00,0x01,0x67,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x04,0x04,0x39,0x4d,0x00,0x07, +0x07,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x59,0x40,0x20,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x1c,0x08,0x1c,0x19,0x17,0x14,0x13,0x10,0x0e,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x09,0x17,0x2b,0x01,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x05,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35, +0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x46,0x6e,0x5c,0x73,0xfe,0xf6,0x6e,0x5c,0x73,0x01,0x12,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x85,0x8c,0x8c,0x8c,0x8c,0x5f,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x02,0x00,0x5a, +0xff,0xf6,0x01,0xfc,0x02,0xe9,0x00,0x03,0x00,0x18,0x00,0x96,0xb5,0x07,0x01,0x05,0x04,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1e,0x07,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x05,0x05,0x02,0x61,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x1b,0x4b,0xb0,0x21,0x50,0x58,0x40,0x22, +0x07,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x3f,0x03,0x4e,0x1b,0x40,0x20,0x00,0x00,0x07,0x01,0x01,0x04,0x00,0x01,0x67,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x05,0x05,0x03,0x61,0x00, +0x03,0x03,0x3f,0x03,0x4e,0x59,0x59,0x40,0x18,0x04,0x04,0x00,0x00,0x04,0x18,0x04,0x18,0x15,0x13,0x10,0x0f,0x0c,0x0a,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x17,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x8c,0x01,0x40,0x30,0x5a, +0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x9e,0x4b,0x4b,0x78,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0x35,0x02,0x20,0x02,0x26,0x00,0x23,0x00,0xa0,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0a,0x07,0x01,0x03,0x02,0x06,0x01,0x01, +0x03,0x02,0x4c,0x1b,0x40,0x0a,0x07,0x01,0x03,0x02,0x06,0x01,0x05,0x03,0x02,0x4c,0x59,0x4b,0xb0,0x15,0x50,0x58,0x40,0x1d,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x05,0x01,0x01,0x01,0x3f,0x4d,0x00,0x06,0x06,0x00,0x5f,0x07,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1a,0x00,0x06,0x07, +0x01,0x00,0x06,0x00,0x63,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x05,0x01,0x01,0x01,0x3f,0x01,0x4e,0x1b,0x40,0x1e,0x00,0x06,0x07,0x01,0x00,0x06,0x00,0x63,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x05,0x05,0x39,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x59,0x40,0x15,0x01,0x00,0x22,0x20, +0x1b,0x1a,0x19,0x18,0x15,0x13,0x10,0x0f,0x0c,0x0a,0x00,0x23,0x01,0x23,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x01,0xd2,0x37,0x43,0x21,0x29,0x01,0x07,0x4c,0x3f, +0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x5a,0x10,0x21,0x1e,0x1e,0x19,0x3c,0xcb,0x35,0x28,0x1b,0x37,0x1e,0x67,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0xfd,0xda,0x1b,0x2d,0x15,0x16,0x1c,0x3c,0x00,0x00,0x03,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x03,0x44,0x00,0x0b,0x00,0x17,0x00,0x2c,0x00,0x84,0xb5,0x1b, +0x01,0x07,0x06,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x25,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x0a,0x01,0x02,0x09,0x01,0x00,0x06,0x02,0x00,0x69,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x07,0x07,0x04,0x61,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x29,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x0a,0x01,0x02,0x09, +0x01,0x00,0x06,0x02,0x00,0x69,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x04,0x04,0x39,0x4d,0x00,0x07,0x07,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x59,0x40,0x21,0x18,0x18,0x0d,0x0c,0x01,0x00,0x18,0x2c,0x18,0x2c,0x29,0x27,0x24,0x23,0x20,0x1e,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x09, +0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x2c,0x36,0x42,0x42,0x36,0x36,0x42,0x42,0x36,0x1b,0x21,0x21,0x1b,0x1b,0x21,0x21, +0xeb,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x60,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x33,0x3f,0x35,0x21,0x1c,0x1c,0x22,0x22,0x1c,0x1c,0x21,0x6f,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x03,0x0c,0x00,0x19, +0x00,0x2e,0x00,0xfc,0xb5,0x1d,0x01,0x09,0x08,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x2a,0x00,0x01,0x01,0x03,0x61,0x05,0x01,0x03,0x03,0x40,0x4d,0x02,0x0b,0x02,0x00,0x00,0x04,0x61,0x00,0x04,0x04,0x38,0x4d,0x0c,0x0a,0x02,0x08,0x08,0x3b,0x4d,0x00,0x09,0x09,0x06,0x61,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x1b,0x4b,0xb0,0x18, +0x50,0x58,0x40,0x28,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x02,0x0b,0x02,0x00,0x00,0x04,0x61,0x00,0x04,0x04,0x38,0x4d,0x0c,0x0a,0x02,0x08,0x08,0x3b,0x4d,0x00,0x09,0x09,0x06,0x61,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x1b,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x2a,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02, +0x0b,0x02,0x00,0x08,0x04,0x00,0x6a,0x0c,0x0a,0x02,0x08,0x08,0x3b,0x4d,0x00,0x06,0x06,0x39,0x4d,0x00,0x09,0x09,0x07,0x61,0x00,0x07,0x07,0x3f,0x07,0x4e,0x1b,0x40,0x38,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x0b,0x01,0x00,0x08,0x04, +0x00,0x6a,0x0c,0x0a,0x02,0x08,0x08,0x3b,0x4d,0x00,0x06,0x06,0x39,0x4d,0x00,0x09,0x09,0x07,0x61,0x00,0x07,0x07,0x3f,0x07,0x4e,0x59,0x59,0x59,0x40,0x21,0x1a,0x1a,0x01,0x00,0x1a,0x2e,0x1a,0x2e,0x2b,0x29,0x26,0x25,0x22,0x20,0x1c,0x1b,0x16,0x15,0x13,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x0d,0x09,0x16,0x2b, +0x01,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x17,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x72,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x32,0x28,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x31, +0x61,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x8a,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x64,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x2e,0x02,0xe4,0x00,0x17, +0x00,0x3d,0x40,0x3a,0x00,0x01,0x02,0x03,0x02,0x01,0x03,0x80,0x07,0x01,0x03,0x06,0x01,0x04,0x05,0x03,0x04,0x67,0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x3e,0x4d,0x00,0x05,0x05,0x39,0x05,0x4e,0x01,0x00,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x08,0x06,0x04,0x03,0x00,0x17,0x01,0x17,0x09,0x09,0x16,0x2b,0x01, +0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x01,0x75,0x53,0x66,0x58,0x36,0x2b,0x2b,0x37,0xe1,0xe1,0x5a,0x96,0x96,0x68,0x02,0xe4,0x62,0x54,0x2f,0x37,0x37,0x2f,0x8f,0x52,0xfe,0xb3,0x01,0x4d,0x52,0x8f,0x54,0x62,0x00,0x01,0x00,0x41,0x00,0x00,0x02,0x09, +0x02,0xda,0x00,0x16,0x00,0x37,0x40,0x34,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x06,0x01,0x01,0x01,0x02,0x5f,0x05,0x01,0x02,0x02,0x3b,0x4d,0x07,0x01,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08,0x39,0x08,0x4e,0x00,0x00,0x00,0x16,0x00,0x16,0x11,0x11,0x12,0x21,0x23,0x11,0x11,0x11,0x0a,0x09,0x1e,0x2b,0x33,0x35,0x33, +0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x41,0x9b,0x9b,0x9b,0x52,0x48,0x93,0x93,0x40,0xd3,0xd3,0xd3,0x52,0x01,0x84,0x50,0x2a,0x41,0x49,0x50,0x3a,0x2a,0x50,0xfe,0x7c,0x52,0x00,0x00,0x00,0x01,0x00,0x37,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x12,0x00,0x2f,0x40,0x2c, +0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x05,0x01,0x00,0x00,0x01,0x5f,0x04,0x01,0x01,0x01,0x3b,0x4d,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x00,0x00,0x00,0x12,0x00,0x12,0x11,0x12,0x21,0x23,0x11,0x11,0x08,0x09,0x1c,0x2b,0x33,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11, +0xd7,0xa0,0xa0,0x52,0x48,0xa1,0xa1,0x40,0xe1,0xe1,0x01,0xd4,0x52,0x28,0x41,0x4b,0x52,0x3a,0x28,0x52,0xfe,0x2c,0x00,0x00,0x00,0x02,0x00,0xaf,0x01,0xc2,0x01,0xa4,0x02,0xe4,0x00,0x1b,0x00,0x25,0x00,0x8f,0xb5,0x18,0x01,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x2c,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x04, +0x00,0x02,0x03,0x04,0x02,0x69,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x67,0x09,0x01,0x06,0x00,0x00,0x06,0x59,0x09,0x01,0x06,0x06,0x00,0x61,0x05,0x08,0x02,0x00,0x06,0x00,0x51,0x1b,0x40,0x33,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x05,0x06,0x00,0x06,0x05,0x00,0x80,0x00,0x04,0x00,0x02,0x03,0x04,0x02,0x69,0x00,0x01,0x00, +0x07,0x06,0x01,0x07,0x67,0x09,0x01,0x06,0x05,0x00,0x06,0x59,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x06,0x00,0x51,0x59,0x40,0x1b,0x1d,0x1c,0x01,0x00,0x22,0x20,0x1c,0x25,0x1d,0x25,0x17,0x16,0x13,0x11,0x0f,0x0e,0x0c,0x0a,0x07,0x05,0x00,0x1b,0x01,0x1b,0x0a,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35, +0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x22,0x15,0x14,0x16,0x01,0x12,0x2d,0x36,0x38,0x31,0x5a,0x23,0x1e,0x1a,0x24,0x03,0x32,0x05,0x3d,0x31,0x35,0x3e,0x2f,0x03,0x0a,0x33,0x16,0x27,0x2c,0x5a,0x37,0x22,0x01,0xc2,0x2f,0x27,0x27,0x2e,0x1d, +0x17,0x1b,0x16,0x12,0x26,0x2a,0x30,0x2a,0xc3,0x37,0x1c,0x20,0x26,0x24,0x1f,0x1a,0x2d,0x16,0x1a,0x00,0x00,0x02,0x00,0xb9,0x01,0xbd,0x01,0x9f,0x02,0xdf,0x00,0x0d,0x00,0x1b,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00, +0x51,0x0f,0x0e,0x01,0x00,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x34,0x3f,0x3f,0x34,0x34,0x3f,0x3f,0x34,0x1d,0x24,0x24,0x1d,0x1d, +0x24,0x24,0x01,0xbd,0x3a,0x2f,0x50,0x2f,0x3a,0x3a,0x2f,0x50,0x2f,0x3a,0x28,0x24,0x1d,0x50,0x1d,0x24,0x24,0x1d,0x50,0x1d,0x24,0x00,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x06,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x5e,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x0c,0x00,0x15,0x00,0x31,0x40,0x2e,0x00,0x02, +0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x00,0x04,0x04,0x03,0x5f,0x06,0x01,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x15,0x13,0x0f,0x0d,0x00,0x0c,0x00,0x0b,0x21,0x11,0x11,0x07,0x07,0x19,0x2b,0x33,0x11,0x21,0x15,0x21,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34, +0x26,0x23,0x23,0x5e,0x01,0x96,0xfe,0xc4,0x79,0x68,0x79,0x79,0x68,0x79,0x79,0x3e,0x46,0x46,0x3e,0x79,0x02,0xda,0x52,0xd8,0x76,0x62,0x61,0x77,0x52,0x49,0x3d,0x3e,0x48,0x00,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x12,0x02,0xda,0x02,0x06,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x02,0x2b,0x02,0xda,0x00,0x05, +0x00,0x1f,0x40,0x1c,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x03,0x01,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x07,0x18,0x2b,0x33,0x11,0x21,0x15,0x21,0x11,0x82,0x01,0xa9,0xfe,0xb1,0x02,0xda,0x52,0xfd,0x78,0x00,0x00,0x00,0xff,0xff,0x00,0x82,0x00,0x00,0x02,0x2b,0x03,0xb6,0x02,0x26, +0x01,0xcb,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x76,0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x02,0x2b,0x03,0x39,0x00,0x07,0x00,0x47,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x00,0x01,0x70,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x04,0x01,0x03,0x03,0x1b,0x03,0x4e,0x1b,0x40,0x16,0x00,0x01,0x00,0x01,0x85, +0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x04,0x01,0x03,0x03,0x1b,0x03,0x4e,0x59,0x40,0x0c,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x21,0x35,0x33,0x15,0x21,0x11,0x82,0x01,0x54,0x55,0xfe,0xb1,0x02,0xda,0x5f,0xb1,0xfd,0x78,0x00,0x00,0x00,0x00,0x02,0x00,0x19,0xff,0x74,0x02,0x3f, +0x02,0xda,0x00,0x0e,0x00,0x15,0x00,0x33,0x40,0x30,0x08,0x05,0x02,0x03,0x00,0x03,0x53,0x00,0x07,0x07,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x06,0x02,0x02,0x00,0x00,0x04,0x5f,0x00,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x12,0x11,0x10,0x0f,0x00,0x0e,0x00,0x0e,0x11,0x11,0x11,0x14,0x11,0x09,0x07,0x1b,0x2b,0x17,0x35,0x33,0x36,0x36, +0x37,0x13,0x21,0x11,0x33,0x15,0x23,0x35,0x21,0x15,0x37,0x33,0x11,0x23,0x03,0x06,0x06,0x19,0x2d,0x11,0x24,0x01,0x07,0x01,0x76,0x46,0x50,0xfe,0x7a,0x3b,0xfb,0xc6,0x05,0x01,0x20,0x8c,0xd9,0x1e,0x79,0x46,0x01,0xb0,0xfd,0x73,0xd9,0x8c,0x8c,0xd9,0x02,0x3d,0xfe,0xa0,0x4d,0x76,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08, +0x02,0xda,0x02,0x06,0x00,0x25,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb1,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x62,0x00,0x00,0x00,0x01,0x00,0x06,0x00,0x00,0x02,0x52,0x02,0xda,0x00,0x15,0x00,0x36,0x40,0x33,0x0c,0x01,0x02,0x06,0x01,0x01,0x4c,0x03,0x01,0x01,0x08,0x01,0x06,0x05,0x01,0x06, +0x67,0x04,0x02,0x02,0x00,0x00,0x1a,0x4d,0x0a,0x09,0x07,0x03,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x15,0x00,0x15,0x11,0x11,0x11,0x12,0x11,0x11,0x11,0x11,0x12,0x0b,0x07,0x1f,0x2b,0x33,0x13,0x03,0x33,0x13,0x33,0x11,0x33,0x11,0x33,0x13,0x33,0x03,0x13,0x23,0x03,0x23,0x11,0x23,0x11,0x23,0x03,0x06,0x86,0x7c,0x5e,0x6a,0x2e, +0x4c,0x30,0x68,0x5e,0x7d,0x87,0x5d,0x75,0x2e,0x4c,0x30,0x74,0x01,0x7b,0x01,0x5f,0xfe,0xc1,0x01,0x3f,0xfe,0xc1,0x01,0x3f,0xfe,0xa0,0xfe,0x86,0x01,0x57,0xfe,0xa9,0x01,0x57,0xfe,0xa9,0x00,0x01,0x00,0x34,0xff,0xf6,0x02,0x16,0x02,0xe4,0x00,0x2d,0x00,0x4e,0x40,0x4b,0x26,0x01,0x03,0x04,0x01,0x4c,0x00,0x06,0x05,0x04,0x05,0x06, +0x04,0x80,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x04,0x00,0x03,0x01,0x04,0x03,0x67,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x1f,0x4d,0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e,0x01,0x00,0x20,0x1e,0x1b,0x1a,0x18,0x16,0x12,0x10,0x0f,0x0d,0x09,0x07,0x05,0x04,0x00,0x2d,0x01,0x2d,0x09,0x07,0x16,0x2b, +0x05,0x22,0x26,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x23,0x46,0x6b,0x3d,0x01,0x5a,0x02,0x53,0x41,0x43,0x53,0x53,0x43,0x56,0x57,0x39,0x47, +0x46,0x38,0x3b,0x4a,0x5a,0x39,0x64,0x42,0x40,0x61,0x37,0x41,0x34,0x3e,0x4e,0x3d,0x6e,0x0a,0x35,0x5f,0x3e,0x3a,0x48,0x4b,0x3c,0x3c,0x4b,0x50,0x44,0x36,0x35,0x41,0x48,0x3a,0x3f,0x5e,0x35,0x30,0x55,0x38,0x3c,0x5b,0x0d,0x03,0x0b,0x67,0x47,0x3e,0x5e,0x35,0x00,0x00,0x00,0x01,0x00,0x5a,0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x11, +0x00,0x24,0x40,0x21,0x10,0x07,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x1a,0x4d,0x04,0x03,0x02,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x16,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x33,0x11,0x14,0x06,0x06,0x07,0x13,0x33,0x11,0x23,0x11,0x34,0x36,0x36,0x37,0x03,0x5a,0x57,0x03,0x04,0x02,0xde,0x78,0x57, +0x03,0x05,0x02,0xdf,0x02,0xda,0xfe,0x66,0x24,0x51,0x49,0x19,0x02,0x71,0xfd,0x26,0x01,0x9a,0x25,0x51,0x49,0x18,0xfd,0x8f,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0xb6,0x02,0x26,0x01,0xd3,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0x51,0x00,0x00, +0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x30,0x03,0xb6,0x02,0x26,0x00,0x51,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0x00,0x01,0x00,0x14,0xff,0xfb,0x01,0xfa,0x02,0xda,0x00,0x0f,0x00,0x4d,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x17,0x00,0x03,0x03,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x00,0x00,0x00,0x02,0x61,0x05,0x04,0x02,0x02, +0x02,0x1b,0x02,0x4e,0x1b,0x40,0x1b,0x00,0x03,0x03,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x00,0x02,0x02,0x1b,0x4d,0x00,0x00,0x00,0x04,0x61,0x05,0x01,0x04,0x04,0x22,0x04,0x4e,0x59,0x40,0x0d,0x00,0x00,0x00,0x0f,0x00,0x0e,0x11,0x11,0x13,0x21,0x06,0x07,0x1a,0x2b,0x17,0x35,0x33,0x32,0x36,0x37,0x13,0x21,0x11,0x23,0x11,0x23,0x03, +0x06,0x06,0x23,0x14,0x12,0x2c,0x27,0x01,0x08,0x01,0x78,0x5a,0xc5,0x07,0x02,0x51,0x56,0x05,0x54,0x4f,0x60,0x01,0xdc,0xfd,0x26,0x02,0x88,0xfe,0x76,0x86,0x7d,0x00,0xff,0xff,0x00,0x48,0x00,0x00,0x02,0x10,0x02,0xda,0x02,0x06,0x00,0x59,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x01,0xfb,0x02,0xda,0x02,0x06,0x00,0x40,0x00,0x00, +0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x02,0xe4,0x02,0x06,0x00,0x60,0x00,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x01,0xfa,0x02,0xda,0x00,0x07,0x00,0x21,0x40,0x1e,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x04,0x03,0x02,0x01,0x01,0x1b,0x01,0x4e,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x07,0x19,0x2b,0x33, +0x11,0x21,0x11,0x23,0x11,0x23,0x11,0x5e,0x01,0x9c,0x5a,0xe8,0x02,0xda,0xfd,0x26,0x02,0x88,0xfd,0x78,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x06,0x00,0x7a,0x00,0x00,0xff,0xff,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x02,0xe4,0x02,0x06,0x00,0x1b,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x21,0x02,0xda,0x02,0x06, +0x00,0x89,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0d,0x00,0x22,0x40,0x1f,0x07,0x01,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x1a,0x4d,0x03,0x01,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x18,0x12,0x04,0x07,0x18,0x2b,0x33,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13, +0x33,0x01,0xbf,0x4a,0xd7,0x62,0x83,0x0d,0x10,0x02,0x02,0x0e,0x0b,0x73,0x62,0xfe,0xf9,0xbd,0x02,0x1d,0xfe,0x9b,0x22,0x3d,0x0f,0x0f,0x3d,0x22,0x01,0x65,0xfd,0x26,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x01,0xdf,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x2e,0xff,0xe7,0x02,0x2a, +0x03,0x02,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0xb2,0x4b,0xb0,0x0f,0x50,0x58,0x40,0x2c,0x00,0x02,0x01,0x01,0x02,0x70,0x0a,0x01,0x05,0x00,0x00,0x05,0x71,0x03,0x01,0x01,0x09,0x01,0x06,0x07,0x01,0x06,0x6a,0x08,0x0b,0x02,0x07,0x00,0x00,0x07,0x59,0x08,0x0b,0x02,0x07,0x07,0x00,0x61,0x04,0x01,0x00,0x07,0x00,0x51,0x1b,0x4b,0xb0, +0x11,0x50,0x58,0x40,0x2b,0x00,0x02,0x01,0x01,0x02,0x70,0x0a,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x09,0x01,0x06,0x07,0x01,0x06,0x6a,0x08,0x0b,0x02,0x07,0x00,0x00,0x07,0x59,0x08,0x0b,0x02,0x07,0x07,0x00,0x61,0x04,0x01,0x00,0x07,0x00,0x51,0x1b,0x40,0x2a,0x00,0x02,0x01,0x02,0x85,0x0a,0x01,0x05,0x00,0x05,0x86,0x03,0x01, +0x01,0x09,0x01,0x06,0x07,0x01,0x06,0x6a,0x08,0x0b,0x02,0x07,0x00,0x00,0x07,0x59,0x08,0x0b,0x02,0x07,0x07,0x00,0x61,0x04,0x01,0x00,0x07,0x00,0x51,0x59,0x59,0x40,0x1a,0x18,0x18,0x00,0x00,0x27,0x26,0x21,0x20,0x18,0x1f,0x18,0x1f,0x1a,0x19,0x00,0x17,0x00,0x17,0x17,0x11,0x11,0x17,0x11,0x0c,0x07,0x1b,0x2b,0x17,0x35,0x22,0x26, +0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x35,0x33,0x15,0x32,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x15,0x27,0x11,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0xff,0x3c,0x5e,0x37,0x36,0x5f,0x3c,0x5a,0x3d,0x5e,0x36,0x37,0x5e,0x3c,0x56,0x38,0x49,0x49,0x8a,0x38,0x49,0x49,0x38,0x19,0x50,0x34,0x5d,0x3f, +0xdb,0x41,0x5f,0x35,0x4b,0x4b,0x35,0x5f,0x41,0xdb,0x3f,0x5d,0x34,0x50,0x9c,0x01,0xe8,0x49,0x40,0xdb,0x3d,0x47,0x47,0x3d,0xdb,0x40,0x49,0x00,0xff,0xff,0x00,0x28,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0xa7,0x00,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x01,0xf9,0x02,0xda,0x00,0x0f,0x00,0x25,0x40,0x22,0x00,0x02,0x00,0x00, +0x04,0x02,0x00,0x67,0x03,0x01,0x01,0x01,0x1a,0x4d,0x05,0x01,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x23,0x13,0x21,0x06,0x07,0x1a,0x2b,0x21,0x11,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x11,0x33,0x11,0x01,0x9f,0x8c,0x5e,0x6a,0x5a,0x3f,0x39,0x82,0x5a,0x01,0x0f,0x60,0x54,0x01,0x17,0xfe, +0xe9,0x30,0x34,0x01,0x7b,0xfd,0x26,0x00,0x00,0x01,0x00,0x5e,0xff,0x74,0x02,0x35,0x02,0xda,0x00,0x0b,0x00,0x29,0x40,0x26,0x06,0x01,0x05,0x02,0x05,0x54,0x03,0x01,0x01,0x01,0x1a,0x4d,0x04,0x01,0x02,0x02,0x00,0x60,0x00,0x00,0x00,0x1b,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x05, +0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x01,0xe5,0xfe,0x79,0x5a,0xd8,0x5a,0x4b,0x8c,0x8c,0x02,0xda,0xfd,0x76,0x02,0x8a,0xfd,0x76,0xdc,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0xda,0x00,0x0b,0x00,0x25,0x40,0x22,0x04,0x02,0x02,0x00,0x00,0x1a,0x4d,0x03,0x01,0x01,0x01,0x05,0x60,0x06,0x01,0x05, +0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x33,0x03,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x3e,0x02,0x55,0x77,0x4a,0x76,0x54,0x02,0xda,0xfd,0x74,0x02,0x8c,0xfd,0x74,0x02,0x8c,0xfd,0x26,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x74,0x02,0x53,0x02,0xda,0x00,0x0f, +0x00,0x2d,0x40,0x2a,0x08,0x01,0x07,0x02,0x07,0x54,0x05,0x03,0x02,0x01,0x01,0x1a,0x4d,0x06,0x04,0x02,0x02,0x02,0x00,0x60,0x00,0x00,0x00,0x1b,0x00,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x05,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x02, +0x03,0xfe,0x39,0x51,0x78,0x46,0x78,0x51,0x3f,0x8c,0x8c,0x02,0xda,0xfd,0x74,0x02,0x8c,0xfd,0x74,0x02,0x8c,0xfd,0x74,0xda,0x00,0x01,0x00,0x5e,0xff,0x83,0x01,0xfa,0x02,0xda,0x00,0x0b,0x00,0x4d,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x19,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x03,0x01,0x01,0x01,0x1a,0x4d,0x00,0x02,0x02,0x00,0x60,0x04, +0x01,0x00,0x00,0x1b,0x00,0x4e,0x1b,0x40,0x18,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x01,0x1a,0x4d,0x00,0x02,0x02,0x00,0x60,0x04,0x01,0x00,0x00,0x1b,0x00,0x4e,0x59,0x40,0x0e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x17,0x35,0x23,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x23,0x15,0xff, +0xa1,0x5a,0xe8,0x5a,0xa1,0x7d,0x7d,0x02,0xda,0xfd,0x78,0x02,0x88,0xfd,0x26,0x7d,0x00,0x02,0x00,0x5e,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0c,0x00,0x15,0x00,0x2b,0x40,0x28,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x00,0x00,0x00,0x1a,0x4d,0x00,0x03,0x03,0x02,0x60,0x05,0x01,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x15,0x13,0x0f, +0x0d,0x00,0x0c,0x00,0x0b,0x21,0x11,0x06,0x07,0x18,0x2b,0x33,0x11,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x5e,0x5a,0x92,0x42,0x63,0x37,0x37,0x63,0x42,0x92,0x8d,0x3b,0x49,0x49,0x3b,0x8d,0x02,0xda,0xfe,0xd4,0x36,0x60,0x41,0x40,0x61,0x36,0x52,0x49,0x3c,0x3c,0x49, +0x00,0x02,0xff,0xfb,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0e,0x00,0x17,0x00,0x31,0x40,0x2e,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x00,0x04,0x04,0x03,0x5f,0x06,0x01,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x17,0x15,0x11,0x0f,0x00,0x0e,0x00,0x0d,0x21,0x11,0x11,0x07,0x07,0x19, +0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x87,0x8c,0xe6,0x69,0x42,0x63,0x37,0x37,0x63,0x42,0x69,0x64,0x3b,0x49,0x49,0x3b,0x64,0x02,0x88,0x52,0xfe,0xd4,0x36,0x60,0x41,0x40,0x61,0x36,0x52,0x49,0x3c,0x3c,0x49,0x00,0x00,0x00,0x03,0x00,0x3c, +0x00,0x00,0x02,0x1c,0x02,0xda,0x00,0x0b,0x00,0x0f,0x00,0x19,0x00,0x36,0x40,0x33,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x69,0x03,0x01,0x00,0x00,0x1a,0x4d,0x00,0x05,0x05,0x02,0x60,0x08,0x04,0x07,0x03,0x02,0x02,0x1b,0x02,0x4e,0x0c,0x0c,0x00,0x00,0x19,0x17,0x12,0x10,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x00,0x0b,0x00,0x0a,0x21,0x11, +0x09,0x07,0x18,0x2b,0x33,0x11,0x33,0x11,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x21,0x11,0x33,0x11,0x25,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0x3c,0x54,0x2e,0x5a,0x6a,0x6a,0x5a,0x01,0x0a,0x54,0xfe,0x74,0x2e,0x33,0x3d,0x3d,0x33,0x2e,0x02,0xda,0xfe,0xd4,0x66,0x58,0x33,0x57,0x66,0x02,0xda,0xfd,0x26,0x4f,0x3c,0x33, +0x32,0x33,0x3c,0x00,0x00,0x02,0xff,0xfb,0xff,0xfb,0x02,0x44,0x02,0xda,0x00,0x17,0x00,0x21,0x00,0x6a,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x20,0x00,0x02,0x00,0x07,0x00,0x02,0x07,0x69,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x06,0x01,0x00,0x00,0x03,0x61,0x08,0x05,0x02,0x03,0x03,0x1b,0x03,0x4e,0x1b,0x40,0x2a,0x00,0x02, +0x00,0x07,0x00,0x02,0x07,0x69,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x06,0x01,0x00,0x00,0x03,0x5f,0x00,0x03,0x03,0x1b,0x4d,0x06,0x01,0x00,0x00,0x05,0x61,0x08,0x01,0x05,0x05,0x22,0x05,0x4e,0x59,0x40,0x12,0x00,0x00,0x21,0x1f,0x1a,0x18,0x00,0x17,0x00,0x16,0x11,0x25,0x21,0x13,0x21,0x09,0x07,0x1b,0x2b,0x07,0x35, +0x33,0x32,0x36,0x37,0x13,0x21,0x11,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x23,0x11,0x23,0x03,0x06,0x06,0x23,0x25,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0x05,0x12,0x1d,0x1a,0x01,0x05,0x01,0x1e,0x3c,0x48,0x58,0x58,0x48,0x8c,0x7b,0x04,0x01,0x46,0x48,0x01,0x5e,0x3c,0x24,0x28,0x28,0x24,0x3c,0x05,0x50,0x39,0x3e,0x02, +0x18,0xfe,0xd4,0x55,0x46,0x78,0x46,0x55,0x02,0x8f,0xfe,0x33,0x68,0x5f,0x50,0x2c,0x24,0x78,0x24,0x2c,0x00,0x02,0x00,0x35,0x00,0x00,0x02,0x44,0x02,0xda,0x00,0x13,0x00,0x1d,0x00,0x33,0x40,0x30,0x03,0x01,0x01,0x08,0x01,0x05,0x07,0x01,0x05,0x69,0x02,0x01,0x00,0x00,0x1a,0x4d,0x00,0x07,0x07,0x04,0x60,0x09,0x06,0x02,0x04,0x04, +0x1b,0x04,0x4e,0x00,0x00,0x1d,0x1b,0x16,0x14,0x00,0x13,0x00,0x13,0x11,0x25,0x21,0x11,0x11,0x11,0x0a,0x07,0x1c,0x2b,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x23,0x11,0x23,0x11,0x37,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0x35,0x50,0x93,0x50,0x3c,0x4a,0x56,0x56,0x4a,0x8c,0x93, +0xe3,0x3c,0x26,0x2a,0x2a,0x26,0x3c,0x02,0xda,0xfe,0xd4,0x01,0x2c,0xfe,0xd4,0x54,0x47,0x78,0x47,0x54,0x01,0x63,0xfe,0x9d,0x4b,0x2b,0x25,0x78,0x26,0x2a,0x00,0x00,0xff,0xff,0x00,0x48,0xff,0xf6,0x02,0x10,0x02,0xe4,0x02,0x06,0x00,0x81,0x00,0x00,0x00,0x01,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x02,0xe4,0x00,0x1f,0x00,0x48,0x40,0x45, +0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x07,0x05,0x06,0x05,0x07,0x06,0x80,0x00,0x04,0x00,0x05,0x07,0x04,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x1f,0x4d,0x00,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e,0x01,0x00,0x1d,0x1c,0x1a,0x18,0x15,0x14,0x13,0x12,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1f, +0x01,0x1f,0x09,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x01,0x34,0x64,0x74,0x74,0x64,0x62,0x74,0x5a,0x41,0x3b,0x3b,0x43,0xdf,0xdf,0x43,0x3b,0x3b,0x41,0x5a,0x74,0x0a,0x70,0x62,0x01,0x4a, +0x62,0x70,0x71,0x61,0x3e,0x43,0x43,0x3e,0x6f,0x52,0x89,0x3e,0x43,0x43,0x3e,0x61,0x71,0x00,0x00,0x00,0x00,0x01,0x00,0x4e,0xff,0xf6,0x01,0xfc,0x02,0xe4,0x00,0x1f,0x00,0x3b,0x40,0x38,0x00,0x05,0x04,0x03,0x04,0x05,0x03,0x80,0x00,0x00,0x02,0x01,0x02,0x00,0x01,0x80,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x67,0x00,0x04,0x04,0x06, +0x61,0x00,0x06,0x06,0x1f,0x4d,0x00,0x01,0x01,0x07,0x61,0x00,0x07,0x07,0x20,0x07,0x4e,0x25,0x22,0x12,0x23,0x11,0x13,0x22,0x10,0x08,0x07,0x1e,0x2b,0x37,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x4e,0x5a,0x42, +0x3a,0x3b,0x43,0xdf,0xdf,0x43,0x3b,0x3a,0x42,0x5a,0x74,0x62,0x64,0x74,0x74,0x64,0x62,0x74,0xc8,0x3e,0x43,0x43,0x3e,0x89,0x52,0x6f,0x3e,0x43,0x43,0x3e,0x61,0x71,0x70,0x62,0xfe,0xb6,0x62,0x70,0x71,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x02,0xda,0x02,0x06,0x00,0x43,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef, +0x03,0xb1,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x2d,0xff,0xf6,0x01,0xef,0x02,0xda,0x02,0x06,0x00,0x4f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x16,0x00,0x34,0x40,0x31,0x15,0x07,0x02,0x04,0x05,0x01,0x4c,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x02, +0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x07,0x06,0x02,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x00,0x16,0x00,0x16,0x22,0x13,0x23,0x11,0x11,0x11,0x08,0x07,0x1c,0x2b,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x15,0x37,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x07,0x07,0x11,0x6e,0x6e,0x01,0x40,0x78,0x10,0x4c, +0x57,0x47,0x55,0x5a,0x57,0x31,0x3a,0x33,0x02,0x8b,0x4f,0x4f,0xfa,0x11,0x52,0x61,0x52,0xfe,0xbf,0x01,0x2d,0x77,0x3d,0x36,0xfe,0xcf,0x00,0x00,0x00,0x02,0x00,0x3c,0xff,0xf6,0x02,0x3a,0x02,0xe4,0x00,0x15,0x00,0x23,0x00,0x73,0x4b,0xb0,0x18,0x50,0x58,0x40,0x21,0x00,0x04,0x00,0x01,0x06,0x04,0x01,0x67,0x00,0x07,0x07,0x03,0x61, +0x05,0x01,0x03,0x03,0x1a,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x02,0x08,0x02,0x00,0x00,0x20,0x00,0x4e,0x1b,0x40,0x29,0x00,0x04,0x00,0x01,0x06,0x04,0x01,0x67,0x00,0x03,0x03,0x1a,0x4d,0x00,0x07,0x07,0x05,0x61,0x00,0x05,0x05,0x1f,0x4d,0x00,0x02,0x02,0x1b,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e, +0x59,0x40,0x1b,0x17,0x16,0x01,0x00,0x1e,0x1c,0x16,0x23,0x17,0x23,0x10,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x15,0x01,0x15,0x0a,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15, +0x11,0x14,0x16,0x01,0x90,0x4b,0x58,0x5e,0x53,0x53,0x5e,0x58,0x4b,0x4e,0x5c,0x5c,0x4e,0x29,0x2e,0x2e,0x29,0x29,0x2e,0x2e,0x0a,0x64,0x55,0xa2,0xfe,0xaf,0x02,0xda,0xfe,0xc7,0x8a,0x56,0x63,0x63,0x56,0xfe,0x84,0x55,0x64,0x4a,0x3a,0x35,0x01,0x7c,0x35,0x3a,0x3a,0x35,0xfe,0x84,0x35,0x3a,0x00,0x02,0x00,0x38,0x00,0x00,0x01,0xf9, +0x02,0xda,0x00,0x0e,0x00,0x17,0x00,0x38,0x40,0x35,0x01,0x01,0x02,0x04,0x01,0x4c,0x07,0x01,0x04,0x00,0x02,0x01,0x04,0x02,0x67,0x00,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x06,0x03,0x02,0x01,0x01,0x1b,0x01,0x4e,0x10,0x0f,0x00,0x00,0x13,0x11,0x0f,0x17,0x10,0x17,0x00,0x0e,0x00,0x0e,0x11,0x11,0x27,0x08,0x07,0x19,0x2b, +0x33,0x13,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x11,0x23,0x11,0x23,0x03,0x13,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x38,0x96,0x42,0x4c,0x36,0x62,0x41,0xe0,0x5a,0x74,0x8b,0x79,0x86,0x86,0x37,0x45,0x44,0x01,0x40,0x14,0x6a,0x4a,0x3f,0x5e,0x35,0xfd,0x26,0x01,0x36,0xfe,0xca,0x01,0x86,0x01,0x04,0x47,0x3b,0x3a,0x48,0x00, +0x00,0x01,0x00,0x00,0xff,0x4c,0x02,0x17,0x02,0xda,0x00,0x1e,0x00,0x3e,0x40,0x3b,0x14,0x0b,0x02,0x02,0x01,0x01,0x4c,0x00,0x06,0x00,0x01,0x02,0x06,0x01,0x69,0x05,0x01,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x1a,0x4d,0x00,0x02,0x02,0x1b,0x4d,0x00,0x00,0x00,0x07,0x61,0x08,0x01,0x07,0x07,0x1e,0x07,0x4e,0x00,0x00,0x00,0x1e,0x00, +0x1d,0x23,0x11,0x11,0x11,0x13,0x24,0x21,0x09,0x07,0x1d,0x2b,0x05,0x35,0x33,0x32,0x36,0x35,0x11,0x34,0x23,0x22,0x07,0x07,0x11,0x23,0x11,0x23,0x35,0x21,0x15,0x23,0x15,0x37,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x01,0x04,0x46,0x35,0x3e,0x57,0x31,0x3a,0x33,0x5a,0x6e,0x01,0x40,0x78,0x10,0x4c,0x57,0x47,0x55,0x70,0x5d, +0xb4,0x52,0x3d,0x34,0x01,0x1e,0x77,0x3d,0x36,0xfe,0xcf,0x02,0x8b,0x4f,0x4f,0xfa,0x11,0x52,0x61,0x52,0xfe,0xce,0x58,0x6b,0x00,0x01,0x00,0x1e,0x00,0x00,0x02,0x2b,0x02,0xda,0x00,0x0d,0x00,0x2d,0x40,0x2a,0x04,0x01,0x01,0x05,0x01,0x00,0x06,0x01,0x00,0x67,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x1a,0x4d,0x07,0x01,0x06,0x06, +0x1b,0x06,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x08,0x07,0x1c,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x15,0x21,0x15,0x33,0x15,0x23,0x11,0x82,0x64,0x64,0x01,0xa9,0xfe,0xb1,0xa0,0xa0,0x01,0x46,0x50,0x01,0x44,0x52,0xf2,0x50,0xfe,0xba,0x00,0x01,0x00,0x51,0xff,0x74,0x02,0x49,0x02,0xda,0x00,0x10, +0x00,0x36,0x40,0x33,0x07,0x01,0x06,0x01,0x01,0x4c,0x00,0x01,0x00,0x06,0x03,0x01,0x06,0x67,0x00,0x03,0x00,0x04,0x03,0x04,0x63,0x02,0x01,0x00,0x00,0x1a,0x4d,0x08,0x07,0x02,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x10,0x00,0x10,0x11,0x11,0x11,0x12,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x33,0x11,0x33,0x11,0x33,0x13,0x33,0x03, +0x13,0x33,0x15,0x23,0x35,0x23,0x03,0x23,0x11,0x51,0x5a,0x6c,0xa2,0x62,0xb5,0x97,0x4c,0x50,0x3b,0xaa,0x69,0x02,0xda,0xfe,0xc6,0x01,0x3a,0xfe,0xa0,0xfe,0xd6,0xdc,0x8c,0x01,0x51,0xfe,0xaf,0x00,0x00,0x00,0x00,0x01,0x00,0x59,0xff,0x74,0x02,0x26,0x02,0xda,0x00,0x0f,0x00,0x30,0x40,0x2d,0x00,0x01,0x00,0x06,0x03,0x01,0x06,0x67, +0x00,0x03,0x00,0x04,0x03,0x04,0x63,0x02,0x01,0x00,0x00,0x1a,0x4d,0x08,0x07,0x02,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x35,0x23,0x11,0x23,0x11,0x59,0x5a,0xea,0x5a,0x2f,0x50,0x39,0xea,0x02,0xda, +0xfe,0xc8,0x01,0x38,0xfd,0x76,0xdc,0x8c,0x01,0x50,0xfe,0xb0,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x02,0xda,0x02,0x06,0x00,0xa8,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x35,0x02,0xda,0x00,0x14,0x00,0x2f,0x40,0x2c,0x08,0x01,0x00,0x01,0x01,0x4c,0x03,0x01,0x00,0x07,0x06,0x02,0x04,0x05,0x00,0x04,0x68,0x02,0x01,0x01, +0x01,0x1a,0x4d,0x00,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x14,0x00,0x14,0x11,0x11,0x11,0x18,0x11,0x11,0x08,0x07,0x1c,0x2b,0x37,0x35,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x33,0x15,0x23,0x15,0x23,0x35,0x7d,0x82,0xdc,0x60,0x8e,0x0c,0x0e,0x02,0x02,0x0f,0x0c,0x8e,0x5d,0xdc,0x82,0x82,0x5a,0xc6, +0x4b,0x01,0xc9,0xfe,0xd4,0x19,0x23,0x08,0x08,0x23,0x19,0x01,0x2c,0xfe,0x37,0x4b,0xc6,0xc6,0x00,0x00,0x00,0x01,0x00,0x41,0xff,0x74,0x02,0x1e,0x02,0xda,0x00,0x13,0x00,0x2e,0x40,0x2b,0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x67,0x00,0x04,0x00,0x05,0x04,0x05,0x63,0x03,0x01,0x01,0x01,0x1a,0x4d,0x07,0x01,0x06,0x06,0x1b,0x06,0x4e, +0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x23,0x13,0x21,0x08,0x07,0x1c,0x2b,0x21,0x11,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x35,0x01,0x95,0x8c,0x5e,0x6a,0x5a,0x3f,0x39,0x82,0x5a,0x2f,0x50,0x01,0x0f,0x60,0x54,0x01,0x17,0xfe,0xe9,0x30,0x34,0x01,0x7b,0xfd,0x76,0xdc,0x8c, +0x00,0x01,0x00,0x5f,0x00,0x00,0x02,0x0d,0x02,0xda,0x00,0x0f,0x00,0x25,0x40,0x22,0x00,0x00,0x00,0x02,0x01,0x00,0x02,0x67,0x05,0x01,0x04,0x04,0x1a,0x4d,0x03,0x01,0x01,0x01,0x1b,0x01,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x23,0x13,0x21,0x06,0x07,0x1a,0x2b,0x13,0x11,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x23, +0x11,0x23,0x11,0xb9,0x8c,0x5e,0x6a,0x5a,0x3f,0x39,0x82,0x5a,0x02,0xda,0xfe,0xf1,0x60,0x54,0xfe,0xe9,0x01,0x17,0x30,0x34,0xfe,0x85,0x02,0xda,0x00,0x02,0x00,0x54,0xff,0xf6,0x01,0xfe,0x02,0xe4,0x00,0x16,0x00,0x1f,0x00,0x43,0x40,0x40,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x67,0x00,0x02, +0x02,0x04,0x61,0x00,0x04,0x04,0x1f,0x4d,0x08,0x01,0x05,0x05,0x00,0x61,0x07,0x01,0x00,0x00,0x20,0x00,0x4e,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x11,0x0f,0x0d,0x0c,0x0a,0x08,0x05,0x04,0x00,0x16,0x01,0x16,0x09,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x21,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33, +0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x15,0x14,0x16,0x01,0x29,0x62,0x73,0x01,0x50,0x42,0x39,0x39,0x42,0x5a,0x73,0x62,0x62,0x73,0x73,0x62,0x39,0x42,0xf6,0x42,0x0a,0x71,0x61,0xd1,0x7a,0x3b,0x46,0x46,0x3c,0x61,0x71,0x71,0x61,0xfe,0xb6,0x61,0x71,0x50,0x46,0x3c,0x7f,0x7f,0x3c,0x46,0xff,0xff,0x00,0x06, +0x00,0x00,0x02,0x52,0x03,0xb1,0x02,0x26,0x01,0xd1,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x34,0xff,0xf6,0x02,0x16,0x03,0xb1,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0xb1,0x02,0x26,0x01,0xd3,0x00,0x00,0x00,0x07,0x06,0x8e, +0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb1,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0xe4,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x39,0x40,0x36,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01, +0x1f,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x20,0x00,0x4e,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x14,0x12,0x0f,0x0e,0x08,0x06,0x00,0x0d,0x01,0x0d,0x08,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x03,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x13,0x32, +0x36,0x35,0x35,0x23,0x15,0x14,0x16,0x01,0x2c,0x62,0x70,0x70,0x62,0x62,0x70,0x70,0xdb,0xf2,0x3e,0x3b,0x3b,0x3e,0x79,0x3b,0x3e,0xf2,0x3f,0x0a,0x71,0x62,0x01,0x49,0x62,0x70,0x70,0x62,0xfe,0xb7,0x61,0x72,0x01,0xa8,0x74,0x40,0x43,0x43,0x40,0xfe,0x33,0x44,0x40,0x85,0x85,0x40,0x44,0x00,0xff,0xff,0x00,0x4b,0x00,0x00,0x01,0xf9, +0x03,0xb1,0x02,0x26,0x01,0xe3,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x0a,0x00,0x00,0x02,0x4e,0x02,0xda,0x00,0x05,0x00,0x0b,0x00,0x0f,0x00,0x38,0x40,0x35,0x0a,0x07,0x04,0x01,0x04,0x01,0x00,0x01,0x4c,0x04,0x02,0x02,0x00,0x00,0x38,0x4d,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x01,0x39,0x01,0x4e,0x0c, +0x0c,0x06,0x06,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x06,0x0b,0x06,0x0b,0x09,0x08,0x00,0x05,0x00,0x05,0x12,0x09,0x09,0x17,0x2b,0x21,0x03,0x13,0x33,0x03,0x13,0x21,0x13,0x03,0x33,0x13,0x03,0x33,0x11,0x33,0x11,0x01,0xf1,0x8b,0x8b,0x53,0x88,0x92,0xfd,0xbc,0x92,0x88,0x54,0x8a,0x8b,0x9f,0x4c,0x01,0x7c,0x01,0x5e,0xfe,0xa2, +0xfe,0x84,0x01,0x7e,0x01,0x5c,0xfe,0xa2,0xfe,0x84,0x02,0xda,0xfd,0x26,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0xba,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x30,0x03,0xb6,0x00,0x27,0x06,0x91,0x02,0x62,0x00,0x00,0x02,0x06,0x00,0xba,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x74,0x02,0x47, +0x02,0xda,0x00,0x0a,0x00,0x0e,0x00,0x34,0x40,0x31,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x01,0x00,0x02,0x01,0x02,0x63,0x04,0x01,0x00,0x00,0x38,0x4d,0x07,0x05,0x06,0x03,0x03,0x03,0x39,0x03,0x4e,0x0b,0x0b,0x00,0x00,0x0b,0x0e,0x0b,0x0e,0x0d,0x0c,0x00,0x0a,0x00,0x0a,0x11,0x22,0x12,0x08,0x09,0x19,0x2b,0x21,0x03,0x13,0x33, +0x03,0x13,0x35,0x33,0x15,0x23,0x35,0x21,0x11,0x33,0x11,0x01,0xba,0xf9,0xf9,0x67,0xf0,0xc6,0x50,0x50,0xfe,0x61,0x5a,0x01,0x7c,0x01,0x5e,0xfe,0xa2,0xfe,0xd3,0x01,0xdc,0x8c,0x02,0xda,0xfd,0x26,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x14,0x00,0x28,0x40,0x25,0x0b,0x05,0x02,0x00,0x01,0x01,0x4c,0x02, +0x01,0x01,0x01,0x38,0x4d,0x00,0x00,0x00,0x03,0x60,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x14,0x00,0x13,0x18,0x13,0x21,0x05,0x09,0x19,0x2b,0x33,0x35,0x33,0x32,0x37,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x06,0x06,0x23,0x42,0x6a,0x33,0x16,0x14,0xd7,0x62,0x83,0x0d,0x10,0x02,0x02,0x0e, +0x0b,0x73,0x62,0xda,0x13,0x4d,0x31,0x53,0x37,0x33,0x02,0x1d,0xfe,0x9b,0x22,0x3d,0x0f,0x0f,0x3d,0x22,0x01,0x65,0xfd,0x9a,0x37,0x3d,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x02,0x09,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03, +0x00,0x1f,0x00,0x77,0x4b,0xb0,0x18,0x50,0x58,0x40,0x24,0x00,0x00,0x00,0x07,0x05,0x00,0x07,0x69,0x00,0x05,0x00,0x04,0x02,0x05,0x04,0x69,0x09,0x01,0x02,0x08,0x01,0x01,0x02,0x01,0x63,0x00,0x03,0x03,0x06,0x5f,0x00,0x06,0x06,0x3b,0x03,0x4e,0x1b,0x40,0x2b,0x00,0x00,0x00,0x07,0x05,0x00,0x07,0x69,0x00,0x06,0x00,0x03,0x04,0x06, +0x03,0x67,0x00,0x05,0x00,0x04,0x02,0x05,0x04,0x69,0x09,0x01,0x02,0x01,0x01,0x02,0x59,0x09,0x01,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x02,0x01,0x4f,0x59,0x40,0x1a,0x05,0x04,0x00,0x00,0x1a,0x18,0x16,0x15,0x13,0x11,0x0c,0x0a,0x08,0x07,0x04,0x1f,0x05,0x1f,0x00,0x03,0x00,0x03,0x11,0x0a,0x09,0x17,0x2b,0x11,0x11,0x21,0x11,0x01, +0x32,0x36,0x35,0x23,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x33,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x02,0x58,0xfe,0xdc,0x62,0x74,0x5a,0x41,0x3b,0x3b,0x43,0x43,0x3b,0x3b,0x41,0x5a,0x74,0x62,0x64,0x74,0x74,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x01,0x22,0x71,0x61,0x3e,0x43,0x43,0x3e,0x01,0x4a, +0x3e,0x43,0x43,0x3e,0x61,0x71,0x70,0x62,0xfe,0xb6,0x62,0x70,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x02,0x30,0x02,0x06,0x00,0xbd,0x00,0x00,0x00,0x02,0x00,0x56,0xff,0xf6,0x02,0x02,0x02,0xe4,0x00,0x16,0x00,0x24,0x00,0x36,0x40,0x33,0x0d,0x01,0x02,0x03,0x01,0x4c,0x09,0x08,0x02,0x01,0x4a,0x00,0x01,0x00,0x03,0x02,0x01,0x03, +0x69,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x20,0x00,0x4e,0x18,0x17,0x01,0x00,0x1f,0x1d,0x17,0x24,0x18,0x24,0x11,0x0f,0x00,0x16,0x01,0x16,0x06,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x37,0x15,0x07,0x06,0x15,0x15,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26, +0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x63,0x73,0x6d,0x6a,0xb6,0xa8,0x9a,0x0c,0x51,0x3e,0x5f,0x67,0x73,0x63,0x3a,0x42,0x42,0x3a,0x3a,0x42,0x42,0x0a,0x74,0x63,0xfd,0x79,0x86,0x0a,0x11,0x59,0x0f,0x0e,0xa4,0x2d,0x30,0x37,0x74,0x61,0x62,0x63,0x74,0x50,0x49,0x3e,0x62,0x3e,0x49,0x49,0x3e,0x62,0x3e,0x49,0x00,0x00,0x00, +0x00,0x03,0x00,0x5c,0x00,0x00,0x02,0x0d,0x02,0x26,0x00,0x0f,0x00,0x18,0x00,0x21,0x00,0x39,0x40,0x36,0x08,0x01,0x05,0x02,0x01,0x4c,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x00,0x04,0x04,0x01,0x5f,0x06,0x01,0x01,0x01,0x1b,0x01,0x4e,0x00,0x00,0x21,0x1f,0x1b,0x19,0x18,0x16, +0x12,0x10,0x00,0x0f,0x00,0x0e,0x21,0x07,0x07,0x17,0x2b,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x5c,0xf1,0x53,0x60,0x3f,0x32,0x3c,0x42,0x66,0x57,0x9c,0x99,0x2a,0x30,0x30,0x2a,0x99,0x9c,0x2f, +0x35,0x35,0x2f,0x9c,0x02,0x26,0x4a,0x40,0x2e,0x3f,0x04,0x04,0x04,0x4c,0x3c,0x47,0x54,0x01,0x40,0x28,0x24,0x23,0x28,0xfe,0x78,0x2c,0x28,0x27,0x2c,0x00,0x00,0x00,0x00,0x01,0x00,0x87,0x00,0x00,0x02,0x12,0x02,0x26,0x00,0x05,0x00,0x1f,0x40,0x1c,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x03,0x01,0x02,0x02,0x1b,0x02, +0x4e,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x07,0x18,0x2b,0x33,0x11,0x21,0x15,0x21,0x11,0x87,0x01,0x8b,0xfe,0xcf,0x02,0x26,0x52,0xfe,0x2c,0x00,0x00,0x00,0xff,0xff,0x00,0x87,0x00,0x00,0x02,0x12,0x03,0x11,0x02,0x26,0x02,0x0f,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x80,0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x02,0x0d, +0x02,0x8f,0x00,0x07,0x00,0x47,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x00,0x01,0x70,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x04,0x01,0x03,0x03,0x1b,0x03,0x4e,0x1b,0x40,0x16,0x00,0x01,0x00,0x01,0x85,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x04,0x01,0x03,0x03,0x1b,0x03,0x4e,0x59,0x40,0x0c, +0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x21,0x35,0x33,0x15,0x21,0x11,0x82,0x01,0x36,0x55,0xfe,0xcf,0x02,0x26,0x69,0xbb,0xfe,0x2c,0x00,0x00,0x00,0x00,0x02,0x00,0x1b,0xff,0x74,0x02,0x3a,0x02,0x26,0x00,0x0f,0x00,0x17,0x00,0x33,0x40,0x30,0x08,0x05,0x02,0x03,0x00,0x03,0x53,0x00,0x07,0x07, +0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x06,0x02,0x02,0x00,0x00,0x04,0x5f,0x00,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x13,0x12,0x11,0x10,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x15,0x11,0x09,0x07,0x1b,0x2b,0x17,0x35,0x33,0x3e,0x02,0x37,0x37,0x21,0x11,0x33,0x15,0x23,0x35,0x21,0x15,0x37,0x33,0x11,0x23,0x07,0x0e,0x02,0x1b,0x2a,0x0d, +0x19,0x12,0x01,0x04,0x01,0x6d,0x4b,0x50,0xfe,0x81,0x34,0xf6,0xbe,0x02,0x01,0x10,0x17,0x8c,0xdc,0x0c,0x31,0x58,0x48,0xf9,0xfe,0x2a,0xdc,0x8c,0x8c,0xdc,0x01,0x88,0xad,0x47,0x58,0x31,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x02,0x30,0x02,0x06,0x00,0xe1,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x09,0x02,0x26, +0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x02,0x49,0x02,0x26,0x00,0x15,0x00,0x36,0x40,0x33,0x0c,0x01,0x02,0x06,0x01,0x01,0x4c,0x03,0x01,0x01,0x08,0x01,0x06,0x05,0x01,0x06,0x67,0x04,0x02,0x02,0x00,0x00,0x1c,0x4d,0x0a,0x09,0x07,0x03,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00, +0x15,0x00,0x15,0x11,0x11,0x11,0x12,0x11,0x11,0x11,0x11,0x12,0x0b,0x07,0x1f,0x2b,0x33,0x13,0x03,0x33,0x17,0x33,0x35,0x33,0x15,0x33,0x37,0x33,0x03,0x13,0x23,0x27,0x23,0x15,0x23,0x35,0x23,0x07,0x0f,0x7b,0x73,0x56,0x65,0x35,0x4a,0x33,0x68,0x55,0x73,0x7b,0x59,0x69,0x36,0x4a,0x36,0x6a,0x01,0x1c,0x01,0x0a,0xed,0xed,0xed,0xed, +0xfe,0xf9,0xfe,0xe1,0xfb,0xfb,0xfb,0xfb,0x00,0x01,0x00,0x46,0xff,0xf9,0x02,0x0d,0x02,0x2d,0x00,0x2d,0x00,0x4e,0x40,0x4b,0x26,0x01,0x03,0x04,0x01,0x4c,0x00,0x06,0x05,0x04,0x05,0x06,0x04,0x80,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x04,0x00,0x03,0x01,0x04,0x03,0x67,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x21,0x4d, +0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x22,0x00,0x4e,0x01,0x00,0x21,0x1e,0x1c,0x1b,0x19,0x16,0x12,0x10,0x0f,0x0d,0x09,0x06,0x04,0x03,0x00,0x2d,0x01,0x2c,0x09,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x22,0x06,0x07, +0x23,0x36,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x01,0x0a,0x5a,0x6a,0x5a,0x39,0x31,0x35,0x34,0x3c,0x3c,0x34,0x78,0x75,0x2f,0x37,0x36,0x2f,0x2f,0x2c,0x35,0x02,0x5a,0x02,0x66,0x55,0x2f,0x5a,0x69,0x3f,0x32,0x3c,0x42,0x6f,0x5f,0x07,0x55,0x49,0x23,0x2a,0x2d,0x27,0x29,0x2f,0x4e,0x2a, +0x24,0x23,0x29,0x22,0x1d,0x41,0x4d,0x4a,0x45,0x2e,0x3f,0x04,0x04,0x04,0x4c,0x3c,0x4b,0x59,0x00,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x01,0xfc,0x02,0x26,0x00,0x0f,0x00,0x24,0x40,0x21,0x0e,0x06,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x1c,0x4d,0x04,0x03,0x02,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11, +0x15,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x33,0x11,0x14,0x06,0x07,0x13,0x33,0x11,0x23,0x11,0x34,0x36,0x37,0x03,0x5c,0x56,0x03,0x08,0xe5,0x70,0x56,0x03,0x08,0xe5,0x02,0x26,0xfe,0xd8,0x2b,0x5c,0x1d,0x01,0xcc,0xfd,0xda,0x01,0x29,0x2c,0x5c,0x1d,0xfe,0x32,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfc,0x03,0x11,0x02,0x26, +0x02,0x17,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x67,0x00,0x00,0x02,0x35,0x02,0x26,0x00,0x0c,0x00,0x2d,0x40,0x2a,0x07,0x01,0x04,0x01,0x01,0x4c,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x02,0x01,0x00,0x00,0x1c,0x4d,0x06,0x05,0x02,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x11,0x12, +0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x33,0x11,0x33,0x15,0x33,0x37,0x33,0x03,0x13,0x23,0x27,0x23,0x15,0x67,0x5a,0x6b,0x98,0x67,0xb2,0xbc,0x69,0x9f,0x6c,0x02,0x26,0xe3,0xe3,0xfe,0xf8,0xfe,0xe2,0xf1,0xf1,0xff,0xff,0x00,0x67,0x00,0x00,0x02,0x35,0x03,0x11,0x02,0x26,0x02,0x19,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x65,0x00,0x00, +0x00,0x01,0x00,0x19,0xff,0xf9,0x01,0xfc,0x02,0x26,0x00,0x0f,0x00,0x4d,0x4b,0xb0,0x21,0x50,0x58,0x40,0x17,0x00,0x03,0x03,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x00,0x00,0x00,0x02,0x61,0x05,0x04,0x02,0x02,0x02,0x1b,0x02,0x4e,0x1b,0x40,0x1b,0x00,0x03,0x03,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x00,0x02,0x02,0x1b,0x4d,0x00,0x00, +0x00,0x04,0x61,0x05,0x01,0x04,0x04,0x22,0x04,0x4e,0x59,0x40,0x0d,0x00,0x00,0x00,0x0f,0x00,0x0e,0x11,0x11,0x13,0x21,0x06,0x07,0x1a,0x2b,0x17,0x35,0x33,0x32,0x36,0x37,0x13,0x21,0x11,0x23,0x11,0x23,0x07,0x06,0x06,0x23,0x19,0x0f,0x2e,0x25,0x01,0x06,0x01,0x7a,0x5a,0xc7,0x05,0x03,0x4e,0x58,0x07,0x54,0x48,0x5d,0x01,0x34,0xfd, +0xda,0x01,0xd4,0xe6,0x83,0x72,0x00,0x00,0x00,0x01,0x00,0x48,0x00,0x00,0x02,0x10,0x02,0x26,0x00,0x12,0x00,0x2e,0x40,0x2b,0x0e,0x0b,0x03,0x03,0x03,0x00,0x01,0x4c,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x01,0x01,0x00,0x00,0x1c,0x4d,0x05,0x04,0x02,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x00,0x12,0x00,0x12,0x15,0x11,0x12,0x11, +0x06,0x07,0x1a,0x2b,0x33,0x11,0x33,0x13,0x13,0x33,0x11,0x23,0x35,0x34,0x36,0x37,0x03,0x23,0x03,0x16,0x16,0x15,0x15,0x48,0x76,0x6c,0x6d,0x79,0x56,0x03,0x0a,0x75,0x52,0x6e,0x09,0x03,0x02,0x26,0xfe,0xf3,0x01,0x0d,0xfd,0xda,0x55,0x8f,0xd0,0x46,0xfe,0xdd,0x01,0x13,0x3e,0xc0,0x97,0x55,0x00,0x01,0x00,0x5c,0x00,0x00,0x01,0xfc, +0x02,0x26,0x00,0x0b,0x00,0x27,0x40,0x24,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x02,0x01,0x00,0x00,0x1c,0x4d,0x06,0x05,0x02,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x33,0x11,0x33,0x15,0x33,0x35,0x33,0x11,0x23,0x35,0x23,0x15,0x5c,0x5a,0xec,0x5a,0x5a,0xec,0x02, +0x26,0xe3,0xe3,0xfd,0xda,0xf1,0xf1,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x02,0x2e,0x02,0x06,0x01,0x22,0x00,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x01,0xfc,0x02,0x26,0x00,0x07,0x00,0x21,0x40,0x1e,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x04,0x03,0x02,0x01,0x01,0x1b,0x01,0x4e,0x00,0x00,0x00,0x07,0x00,0x07, +0x11,0x11,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x21,0x11,0x23,0x11,0x23,0x11,0x5c,0x01,0xa0,0x5a,0xec,0x02,0x26,0xfd,0xda,0x01,0xd4,0xfe,0x2c,0xff,0xff,0x00,0x5c,0xff,0x4c,0x02,0x01,0x02,0x30,0x02,0x06,0x01,0x3d,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x0b,0x02,0x30,0x02,0x06,0x00,0xd7,0x00,0x00,0x00,0x01,0x00,0x37, +0x00,0x00,0x02,0x21,0x02,0x26,0x00,0x07,0x00,0x21,0x40,0x1e,0x02,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x04,0x01,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xff,0xc8,0x01,0xea,0xc8,0x01,0xd4,0x52,0x52,0xfe,0x2c,0x00,0x00, +0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x26,0x02,0x06,0x01,0x70,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x30,0xff,0x4c,0x02,0x28,0x02,0xda,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0x42,0x40,0x3f,0x00,0x02,0x02,0x1a, +0x4d,0x09,0x01,0x06,0x06,0x01,0x61,0x03,0x01,0x01,0x01,0x1c,0x4d,0x08,0x0b,0x02,0x07,0x07,0x00,0x61,0x04,0x01,0x00,0x00,0x1b,0x4d,0x0a,0x01,0x05,0x05,0x1e,0x05,0x4e,0x18,0x18,0x00,0x00,0x27,0x26,0x21,0x20,0x18,0x1f,0x18,0x1f,0x1a,0x19,0x00,0x17,0x00,0x17,0x17,0x11,0x11,0x17,0x11,0x0c,0x07,0x1b,0x2b,0x17,0x35,0x2e,0x02, +0x35,0x35,0x34,0x36,0x36,0x37,0x35,0x33,0x15,0x1e,0x02,0x15,0x15,0x14,0x06,0x06,0x07,0x15,0x27,0x11,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0xff,0x3d,0x5e,0x34,0x34,0x5e,0x3d,0x5a,0x3e,0x5d,0x34,0x34,0x5d,0x3e,0x53,0x3c,0x45,0x45,0x88,0x3c,0x45,0x45,0x3c,0xb4,0xb4,0x02,0x36,0x5f,0x3d,0x80, +0x3d,0x5e,0x36,0x01,0xb4,0xb4,0x01,0x36,0x5e,0x3d,0x80,0x3d,0x5f,0x36,0x02,0xb4,0xfb,0x01,0x98,0x46,0x3b,0x94,0x3c,0x47,0x47,0x3c,0x94,0x3b,0x46,0x00,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0x26,0x02,0x06,0x01,0x6f,0x00,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x01,0xf4,0x02,0x26,0x00,0x0f,0x00,0x25,0x40,0x22, +0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x67,0x03,0x01,0x01,0x01,0x1c,0x4d,0x05,0x01,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x23,0x13,0x21,0x06,0x07,0x1a,0x2b,0x21,0x35,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x33,0x11,0x33,0x11,0x01,0x9a,0x93,0x55,0x64,0x5a,0x35,0x2d,0x90,0x5a,0xbf,0x5a,0x4c, +0xc1,0xc1,0x27,0x2e,0x01,0x16,0xfd,0xda,0x00,0x01,0x00,0x5c,0xff,0x74,0x02,0x3a,0x02,0x26,0x00,0x0b,0x00,0x29,0x40,0x26,0x06,0x01,0x05,0x02,0x05,0x54,0x03,0x01,0x01,0x01,0x1c,0x4d,0x04,0x01,0x02,0x02,0x00,0x60,0x00,0x00,0x00,0x1b,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x05, +0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x01,0xea,0xfe,0x72,0x5a,0xdf,0x5a,0x4b,0x8c,0x8c,0x02,0x26,0xfe,0x2a,0x01,0xd6,0xfe,0x2a,0xdc,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x26,0x00,0x0b,0x00,0x25,0x40,0x22,0x04,0x02,0x02,0x00,0x00,0x1c,0x4d,0x03,0x01,0x01,0x01,0x05,0x60,0x06,0x01,0x05, +0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x33,0x03,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x3e,0x02,0x55,0x77,0x4a,0x76,0x54,0x02,0x26,0xfe,0x26,0x01,0xda,0xfe,0x26,0x01,0xda,0xfd,0xda,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x74,0x02,0x53,0x02,0x26,0x00,0x0f, +0x00,0x2d,0x40,0x2a,0x08,0x01,0x07,0x02,0x07,0x54,0x05,0x03,0x02,0x01,0x01,0x1c,0x4d,0x06,0x04,0x02,0x02,0x02,0x00,0x60,0x00,0x00,0x00,0x1b,0x00,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x05,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x02, +0x03,0xfe,0x39,0x51,0x76,0x46,0x76,0x51,0x43,0x8c,0x8c,0x02,0x26,0xfe,0x26,0x01,0xda,0xfe,0x26,0x01,0xda,0xfe,0x26,0xd8,0x00,0x01,0x00,0x5c,0xff,0x83,0x01,0xfc,0x02,0x26,0x00,0x0b,0x00,0x4d,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x19,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x03,0x01,0x01,0x01,0x1c,0x4d,0x00,0x02,0x02,0x00,0x60,0x04, +0x01,0x00,0x00,0x1b,0x00,0x4e,0x1b,0x40,0x18,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x01,0x1c,0x4d,0x00,0x02,0x02,0x00,0x60,0x04,0x01,0x00,0x00,0x1b,0x00,0x4e,0x59,0x40,0x0e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x17,0x35,0x23,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x23,0x15,0xff, +0xa3,0x5a,0xec,0x5a,0xa3,0x7d,0x7d,0x02,0x26,0xfe,0x2c,0x01,0xd4,0xfd,0xda,0x7d,0x00,0x02,0x00,0x69,0x00,0x00,0x02,0x28,0x02,0x26,0x00,0x0a,0x00,0x13,0x00,0x2b,0x40,0x28,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x00,0x00,0x00,0x1c,0x4d,0x00,0x03,0x03,0x02,0x60,0x05,0x01,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x13,0x11,0x0d, +0x0b,0x00,0x0a,0x00,0x09,0x21,0x11,0x06,0x07,0x18,0x2b,0x33,0x11,0x33,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x69,0x5a,0x9d,0x5d,0x6b,0x6c,0x5c,0x9d,0x9d,0x34,0x37,0x37,0x34,0x9d,0x02,0x26,0xca,0x5d,0x51,0x50,0x5e,0x52,0x2f,0x2d,0x2d,0x2f,0x00,0x00,0x00,0x00,0x02,0x00,0x19, +0x00,0x00,0x02,0x3a,0x02,0x26,0x00,0x0c,0x00,0x15,0x00,0x31,0x40,0x2e,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x00,0x04,0x04,0x03,0x5f,0x06,0x01,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x15,0x13,0x0f,0x0d,0x00,0x0c,0x00,0x0b,0x21,0x11,0x11,0x07,0x07,0x19,0x2b,0x33,0x11,0x23, +0x35,0x33,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0xa5,0x8c,0xe6,0x73,0x5d,0x6b,0x6c,0x5c,0x73,0x73,0x34,0x37,0x37,0x34,0x73,0x01,0xd6,0x50,0xca,0x5d,0x51,0x50,0x5e,0x52,0x2f,0x2d,0x2d,0x2f,0x00,0x00,0x03,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x26,0x00,0x0a,0x00,0x0e,0x00,0x17, +0x00,0x36,0x40,0x33,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x69,0x03,0x01,0x00,0x00,0x1c,0x4d,0x00,0x05,0x05,0x02,0x60,0x08,0x04,0x07,0x03,0x02,0x02,0x1b,0x02,0x4e,0x0b,0x0b,0x00,0x00,0x17,0x15,0x11,0x0f,0x0b,0x0e,0x0b,0x0e,0x0d,0x0c,0x00,0x0a,0x00,0x09,0x21,0x11,0x09,0x07,0x18,0x2b,0x33,0x11,0x33,0x15,0x33,0x32,0x16,0x15, +0x14,0x06,0x23,0x21,0x11,0x33,0x11,0x25,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x3c,0x54,0x37,0x59,0x67,0x67,0x59,0x01,0x01,0x54,0xfe,0x74,0x37,0x34,0x3c,0x3c,0x34,0x37,0x02,0x26,0xca,0x5e,0x50,0x50,0x5e,0x02,0x26,0xfd,0xda,0x48,0x37,0x2f,0x2f,0x37,0x00,0x00,0x00,0x02,0x00,0x05,0xff,0xfb,0x02,0x42,0x02,0x26,0x00,0x17, +0x00,0x21,0x00,0x9c,0x4b,0xb0,0x27,0x50,0x58,0x40,0x20,0x00,0x02,0x00,0x07,0x00,0x02,0x07,0x69,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x06,0x01,0x00,0x00,0x03,0x61,0x08,0x05,0x02,0x03,0x03,0x1b,0x03,0x4e,0x1b,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x2b,0x00,0x02,0x00,0x07,0x00,0x02,0x07,0x69,0x00,0x04,0x04,0x01,0x5f, +0x00,0x01,0x01,0x1c,0x4d,0x00,0x00,0x00,0x03,0x61,0x08,0x05,0x02,0x03,0x03,0x1b,0x4d,0x00,0x06,0x06,0x03,0x61,0x08,0x05,0x02,0x03,0x03,0x1b,0x03,0x4e,0x1b,0x40,0x28,0x00,0x02,0x00,0x07,0x00,0x02,0x07,0x69,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x00,0x06,0x06,0x03,0x5f,0x00,0x03,0x03,0x1b,0x4d,0x00,0x00,0x00, +0x05,0x61,0x08,0x01,0x05,0x05,0x22,0x05,0x4e,0x59,0x59,0x40,0x12,0x00,0x00,0x21,0x1f,0x1a,0x18,0x00,0x17,0x00,0x16,0x11,0x25,0x21,0x13,0x21,0x09,0x07,0x1b,0x2b,0x17,0x35,0x33,0x32,0x36,0x37,0x13,0x21,0x15,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x23,0x11,0x23,0x03,0x06,0x06,0x23,0x25,0x33,0x32,0x36,0x35,0x35,0x34,0x26, +0x23,0x23,0x05,0x12,0x19,0x1e,0x01,0x04,0x01,0x11,0x3e,0x48,0x58,0x58,0x48,0x8b,0x71,0x03,0x01,0x4d,0x41,0x01,0x50,0x3e,0x24,0x27,0x27,0x24,0x3e,0x05,0x55,0x3e,0x34,0x01,0x64,0xc8,0x55,0x45,0x2a,0x45,0x55,0x01,0xd9,0xfe,0xe9,0x5b,0x6c,0x4f,0x2c,0x24,0x2a,0x24,0x2c,0x00,0x00,0x00,0x00,0x02,0x00,0x3e,0x00,0x00,0x02,0x42, +0x02,0x26,0x00,0x13,0x00,0x1d,0x00,0x33,0x40,0x30,0x03,0x01,0x01,0x08,0x01,0x05,0x07,0x01,0x05,0x69,0x02,0x01,0x00,0x00,0x1c,0x4d,0x00,0x07,0x07,0x04,0x60,0x09,0x06,0x02,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x1d,0x1b,0x16,0x14,0x00,0x13,0x00,0x13,0x11,0x25,0x21,0x11,0x11,0x11,0x0a,0x07,0x1c,0x2b,0x33,0x11,0x33,0x15,0x33, +0x35,0x33,0x15,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x23,0x11,0x23,0x11,0x37,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0x3e,0x53,0x8b,0x49,0x3d,0x48,0x58,0x58,0x48,0x86,0x8b,0xd4,0x3d,0x24,0x29,0x29,0x24,0x3d,0x02,0x26,0xc8,0xc8,0xc8,0x55,0x46,0x28,0x46,0x55,0x01,0x13,0xfe,0xed,0x4b,0x2c,0x24,0x28,0x24,0x2c,0x00, +0xff,0xff,0x00,0x55,0xff,0xf8,0x02,0x03,0x02,0x2e,0x02,0x06,0x01,0x44,0x00,0x00,0x00,0x01,0x00,0x57,0xff,0xf6,0x02,0x08,0x02,0x30,0x00,0x1f,0x00,0x48,0x40,0x45,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x07,0x05,0x06,0x05,0x07,0x06,0x80,0x00,0x04,0x00,0x05,0x07,0x04,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01, +0x21,0x4d,0x00,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e,0x01,0x00,0x1d,0x1c,0x1a,0x18,0x15,0x14,0x13,0x12,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1f,0x01,0x1f,0x09,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33, +0x32,0x36,0x37,0x33,0x06,0x06,0x01,0x32,0x64,0x77,0x77,0x64,0x5f,0x74,0x03,0x5a,0x03,0x41,0x38,0x3b,0x46,0xb7,0xb7,0x46,0x3b,0x38,0x41,0x03,0x5a,0x03,0x74,0x0a,0x70,0x62,0x96,0x62,0x70,0x65,0x54,0x31,0x38,0x44,0x3e,0x1e,0x50,0x29,0x3d,0x44,0x39,0x31,0x55,0x65,0x00,0x01,0x00,0x50,0xff,0xf6,0x02,0x01,0x02,0x30,0x00,0x1f, +0x00,0x48,0x40,0x45,0x00,0x06,0x05,0x04,0x05,0x06,0x04,0x80,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x04,0x00,0x03,0x01,0x04,0x03,0x67,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x21,0x4d,0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e,0x01,0x00,0x1a,0x18,0x16,0x15,0x13,0x11,0x0e,0x0d,0x0c,0x0b,0x08,0x06, +0x04,0x03,0x00,0x1f,0x01,0x1f,0x09,0x07,0x16,0x2b,0x05,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x01,0x26,0x5f,0x74,0x03,0x5a,0x03,0x42,0x37,0x3b,0x46,0xb7,0xb7,0x46,0x3b,0x37,0x42,0x03,0x5a,0x03,0x74,0x5f, +0x64,0x77,0x77,0x0a,0x65,0x55,0x31,0x39,0x44,0x3d,0x29,0x50,0x1e,0x3e,0x44,0x38,0x31,0x54,0x65,0x70,0x62,0x96,0x62,0x70,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x09,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x09,0x02,0x26,0x01,0x00,0x00,0x00, +0x00,0x07,0x06,0x68,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0x4c,0x01,0xc3,0x03,0x09,0x02,0x26,0x01,0x0e,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0xa8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x1c,0x00,0x39,0x40,0x36,0x09,0x01,0x05,0x06,0x01,0x4c,0x02,0x01,0x00,0x09,0x08,0x02,0x03,0x04,0x00,0x03, +0x67,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x69,0x00,0x01,0x01,0x1a,0x4d,0x07,0x01,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x1c,0x00,0x1c,0x13,0x23,0x13,0x24,0x11,0x11,0x11,0x11,0x0a,0x07,0x1e,0x2b,0x11,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06, +0x15,0x11,0x23,0x11,0x5c,0x5a,0xa8,0xa8,0x01,0x07,0x4c,0x3f,0x53,0x62,0x5a,0x3f,0x36,0x38,0x41,0x5a,0x02,0x3a,0x4b,0x55,0x55,0x4b,0xb9,0x37,0x3c,0x66,0x58,0xfe,0xca,0x01,0x2c,0x3b,0x41,0x46,0x40,0xfe,0xde,0x02,0x3a,0x00,0x00,0x02,0x00,0x3c,0xff,0xf6,0x02,0x30,0x02,0x30,0x00,0x15,0x00,0x23,0x00,0x73,0x4b,0xb0,0x18,0x50, +0x58,0x40,0x21,0x00,0x04,0x00,0x01,0x06,0x04,0x01,0x67,0x00,0x07,0x07,0x03,0x61,0x05,0x01,0x03,0x03,0x1c,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x02,0x08,0x02,0x00,0x00,0x20,0x00,0x4e,0x1b,0x40,0x29,0x00,0x04,0x00,0x01,0x06,0x04,0x01,0x67,0x00,0x03,0x03,0x1c,0x4d,0x00,0x07,0x07,0x05,0x61,0x00,0x05,0x05,0x21,0x4d,0x00,0x02, +0x02,0x1b,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e,0x59,0x40,0x1b,0x17,0x16,0x01,0x00,0x1e,0x1c,0x16,0x23,0x17,0x23,0x10,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x15,0x01,0x15,0x0a,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x23,0x15,0x23,0x11,0x33,0x15,0x33,0x35,0x34,0x36,0x33,0x32, +0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x8b,0x47,0x53,0x62,0x53,0x53,0x62,0x53,0x47,0x4c,0x59,0x59,0x4b,0x26,0x2b,0x2b,0x26,0x25,0x2a,0x2a,0x0a,0x5c,0x4e,0x53,0xf3,0x02,0x26,0xeb,0x4b,0x4e,0x5c,0x5c,0x4e,0xe6,0x4e,0x5c,0x46,0x36,0x2e,0xe6,0x2e,0x36,0x36,0x2e, +0xe6,0x2e,0x36,0x00,0x00,0x02,0x00,0x3f,0x00,0x00,0x01,0xfc,0x02,0x26,0x00,0x0d,0x00,0x16,0x00,0x38,0x40,0x35,0x01,0x01,0x02,0x04,0x01,0x4c,0x07,0x01,0x04,0x00,0x02,0x01,0x04,0x02,0x67,0x00,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x06,0x03,0x02,0x01,0x01,0x1b,0x01,0x4e,0x0f,0x0e,0x00,0x00,0x12,0x10,0x0e,0x16,0x0f, +0x16,0x00,0x0d,0x00,0x0d,0x11,0x11,0x26,0x08,0x07,0x19,0x2b,0x33,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x11,0x23,0x35,0x23,0x07,0x13,0x33,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0x3f,0x8d,0x3a,0x46,0x6c,0x5c,0xe8,0x5a,0x74,0x82,0x68,0x8e,0x8e,0x31,0x3b,0x3b,0xd6,0x0e,0x59,0x3d,0x50,0x5c,0xfd,0xda,0xd0,0xd0,0x01,0x1e,0xb9, +0x31,0x2c,0x2b,0x31,0x00,0x01,0x00,0x00,0xff,0x4c,0x01,0xfc,0x02,0xda,0x00,0x24,0x00,0x43,0x40,0x40,0x19,0x01,0x02,0x01,0x01,0x4c,0x06,0x01,0x04,0x07,0x01,0x03,0x08,0x04,0x03,0x67,0x00,0x08,0x00,0x01,0x02,0x08,0x01,0x69,0x00,0x05,0x05,0x1a,0x4d,0x00,0x02,0x02,0x1b,0x4d,0x00,0x00,0x00,0x09,0x61,0x0a,0x01,0x09,0x09,0x1e, +0x09,0x4e,0x00,0x00,0x00,0x24,0x00,0x23,0x24,0x11,0x11,0x11,0x11,0x11,0x13,0x25,0x21,0x0b,0x07,0x1f,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0xfa,0x25,0x3e,0x45,0x3d,0x36, +0x38,0x3f,0x5a,0x5e,0x5e,0x5a,0xa6,0xa6,0x01,0x06,0x4b,0x3f,0x53,0x60,0x78,0x65,0xb4,0x53,0x43,0x3d,0x01,0x0d,0x3b,0x41,0x46,0x40,0xfe,0xde,0x02,0x3a,0x4b,0x55,0x55,0x4b,0xb9,0x37,0x3c,0x66,0x58,0xfe,0xe9,0x61,0x72,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x21,0x02,0x26,0x00,0x0d,0x00,0x2d,0x40,0x2a,0x04,0x01,0x01,0x05, +0x01,0x00,0x06,0x01,0x00,0x67,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x1c,0x4d,0x07,0x01,0x06,0x06,0x1b,0x06,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x08,0x07,0x1c,0x2b,0x33,0x35,0x23,0x35,0x33,0x35,0x21,0x15,0x21,0x15,0x33,0x15,0x23,0x15,0x96,0x64,0x64,0x01,0x8b,0xfe,0xcf,0xaf,0xaf,0xeb,0x52, +0xe9,0x52,0x97,0x52,0xeb,0x00,0x00,0x00,0x00,0x01,0x00,0x5c,0xff,0x74,0x02,0x3a,0x02,0x26,0x00,0x10,0x00,0x36,0x40,0x33,0x07,0x01,0x06,0x01,0x01,0x4c,0x00,0x01,0x00,0x06,0x03,0x01,0x06,0x67,0x00,0x03,0x00,0x04,0x03,0x04,0x63,0x02,0x01,0x00,0x00,0x1c,0x4d,0x08,0x07,0x02,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x10,0x00, +0x10,0x11,0x11,0x11,0x12,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x33,0x11,0x33,0x15,0x33,0x37,0x33,0x03,0x17,0x33,0x15,0x23,0x35,0x23,0x27,0x23,0x15,0x5c,0x5a,0x62,0xa0,0x67,0xb9,0x88,0x4c,0x50,0x31,0xa0,0x63,0x02,0x26,0xe3,0xe3,0xfe,0xfa,0xd0,0xdc,0x8c,0xf5,0xf5,0x00,0x01,0x00,0x5b,0xff,0x74,0x02,0x26,0x02,0x26,0x00,0x0f, +0x00,0x30,0x40,0x2d,0x00,0x01,0x00,0x06,0x03,0x01,0x06,0x67,0x00,0x03,0x00,0x04,0x03,0x04,0x63,0x02,0x01,0x00,0x00,0x1c,0x4d,0x08,0x07,0x02,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x33,0x11,0x33,0x15,0x33,0x35,0x33,0x11,0x33,0x15,0x23,0x35,0x23,0x35, +0x23,0x15,0x5b,0x5a,0xe8,0x5a,0x2f,0x50,0x39,0xe8,0x02,0x26,0xe5,0xe5,0xfe,0x2a,0xdc,0x8c,0xef,0xef,0xff,0xff,0x00,0x3c,0xff,0x4c,0x02,0x1c,0x02,0x26,0x02,0x06,0x02,0x77,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x4c,0x02,0x1c,0x02,0x26,0x00,0x14,0x00,0x2f,0x40,0x2c,0x08,0x01,0x00,0x01,0x01,0x4c,0x03,0x01,0x00,0x07,0x06,0x02, +0x04,0x05,0x00,0x04,0x68,0x02,0x01,0x01,0x01,0x1c,0x4d,0x00,0x05,0x05,0x1e,0x05,0x4e,0x00,0x00,0x00,0x14,0x00,0x14,0x11,0x11,0x11,0x18,0x11,0x11,0x08,0x07,0x1c,0x2b,0x17,0x35,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x33,0x15,0x23,0x15,0x23,0x35,0x7d,0x82,0xc3,0x5f,0x7c,0x0c,0x0a,0x03,0x03,0x09, +0x0b,0x79,0x5c,0xc3,0x82,0x82,0x5a,0x4b,0x4b,0x02,0x26,0xfe,0x93,0x22,0x35,0x11,0x11,0x35,0x22,0x01,0x6d,0xfd,0xda,0x4b,0x69,0x69,0x00,0x00,0x00,0x01,0x00,0x49,0xff,0x74,0x02,0x1c,0x02,0x26,0x00,0x13,0x00,0x2e,0x40,0x2b,0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x67,0x00,0x04,0x00,0x05,0x04,0x05,0x63,0x03,0x01,0x01,0x01,0x1c, +0x4d,0x07,0x01,0x06,0x06,0x1b,0x06,0x4e,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x23,0x13,0x21,0x08,0x07,0x1c,0x2b,0x21,0x35,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x35,0x01,0x95,0x93,0x55,0x64,0x5a,0x35,0x2d,0x90,0x5a,0x2d,0x50,0xbf,0x5a,0x4c,0xc1,0xc1,0x27,0x2e,0x01, +0x16,0xfe,0x2a,0xdc,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x64,0x00,0x00,0x02,0x0a,0x02,0x26,0x00,0x0f,0x00,0x25,0x40,0x22,0x00,0x00,0x00,0x02,0x01,0x00,0x02,0x67,0x05,0x01,0x04,0x04,0x1c,0x4d,0x03,0x01,0x01,0x01,0x1b,0x01,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x23,0x13,0x21,0x06,0x07,0x1a,0x2b,0x13,0x15,0x33,0x32,0x16, +0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0xbe,0x93,0x56,0x63,0x5a,0x35,0x2d,0x90,0x5a,0x02,0x26,0xbf,0x59,0x4d,0xc1,0xc1,0x27,0x2e,0xfe,0xea,0x02,0x26,0x00,0x00,0x00,0x00,0x02,0x00,0x54,0xff,0xf6,0x02,0x04,0x02,0x30,0x00,0x17,0x00,0x20,0x00,0x3e,0x40,0x3b,0x00,0x04,0x03,0x02,0x03,0x04,0x02,0x80,0x00,0x02, +0x00,0x05,0x06,0x02,0x05,0x67,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x00,0x21,0x4d,0x00,0x06,0x06,0x01,0x61,0x00,0x01,0x01,0x20,0x01,0x4e,0x01,0x00,0x1e,0x1c,0x19,0x18,0x15,0x14,0x12,0x10,0x0d,0x0c,0x08,0x06,0x00,0x17,0x01,0x17,0x08,0x07,0x16,0x2b,0x01,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x35,0x21, +0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x13,0x21,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x01,0x2c,0x62,0x76,0x76,0x62,0x41,0x61,0x36,0x01,0x58,0x45,0x3b,0x32,0x41,0x07,0x5a,0x09,0x74,0xd7,0xff,0x00,0x43,0x3d,0x3d,0x43,0x02,0x30,0x75,0x67,0x82,0x67,0x75,0x34,0x5f,0x3f,0x62,0x34,0x3d,0x47,0x27,0x21,0x45,0x51,0xfe, +0xb4,0x1c,0x41,0x47,0x47,0x41,0x00,0x00,0xff,0xff,0x00,0x0f,0x00,0x00,0x02,0x49,0x03,0x09,0x02,0x26,0x02,0x15,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x46,0xff,0xf9,0x02,0x0d,0x03,0x09,0x02,0x26,0x02,0x16,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfc, +0x03,0x09,0x02,0x26,0x02,0x17,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x09,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0x30,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x39,0x40,0x36,0x00,0x02,0x00,0x05, +0x04,0x02,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x21,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x20,0x00,0x4e,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x14,0x12,0x0f,0x0e,0x08,0x06,0x00,0x0d,0x01,0x0d,0x08,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14, +0x06,0x03,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x13,0x32,0x36,0x35,0x35,0x23,0x15,0x14,0x16,0x01,0x2c,0x61,0x71,0x71,0x61,0x60,0x72,0x72,0xda,0xf4,0x3f,0x3b,0x3a,0x40,0x7a,0x3b,0x3f,0xf4,0x40,0x0a,0x72,0x61,0x95,0x62,0x70,0x72,0x5f,0x96,0x61,0x72,0x01,0x45,0x23,0x3f,0x44,0x44,0x3f,0xfe,0xe7,0x44,0x40,0x27,0x27,0x40, +0x44,0x00,0x00,0x00,0xff,0xff,0x00,0x4e,0x00,0x00,0x01,0xf4,0x03,0x09,0x02,0x26,0x02,0x27,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x42,0x01,0xfe,0x03,0x09,0x02,0x26,0x01,0x91,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0xe3,0x00,0x00,0x00,0x03,0x00,0x0a,0x00,0x00,0x02,0x4e,0x02,0x26,0x00,0x05, +0x00,0x0b,0x00,0x0f,0x00,0x38,0x40,0x35,0x0a,0x07,0x04,0x01,0x04,0x01,0x00,0x01,0x4c,0x04,0x02,0x02,0x00,0x00,0x3b,0x4d,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x01,0x39,0x01,0x4e,0x0c,0x0c,0x06,0x06,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x06,0x0b,0x06,0x0b,0x09,0x08,0x00,0x05,0x00,0x05,0x12,0x09,0x09,0x17,0x2b,0x21,0x03, +0x13,0x33,0x03,0x13,0x21,0x13,0x03,0x33,0x13,0x03,0x33,0x11,0x33,0x11,0x01,0xf7,0x97,0x87,0x53,0x86,0x9a,0xfd,0xbc,0x9a,0x86,0x53,0x87,0x97,0xa5,0x4c,0x01,0x1a,0x01,0x0c,0xfe,0xf5,0xfe,0xe5,0x01,0x1b,0x01,0x0b,0xfe,0xf4,0xfe,0xe6,0x02,0x26,0xfd,0xda,0x00,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x37,0x02,0x26,0x00,0x05, +0x00,0x09,0x00,0x2b,0x40,0x28,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x02,0x01,0x00,0x00,0x3b,0x4d,0x05,0x03,0x04,0x03,0x01,0x01,0x39,0x01,0x4e,0x06,0x06,0x00,0x00,0x06,0x09,0x06,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x12,0x06,0x09,0x17,0x2b,0x21,0x03,0x13,0x33,0x03,0x13,0x21,0x11,0x33,0x11,0x01,0xc2,0xf6,0xe6,0x71,0xe5,0xf9, +0xfe,0x2d,0x5a,0x01,0x1a,0x01,0x0c,0xfe,0xf5,0xfe,0xe5,0x02,0x26,0xfd,0xda,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x37,0x03,0x11,0x02,0x26,0x02,0x4b,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0x00,0x02,0x00,0x64,0xff,0x74,0x02,0x3a,0x02,0x26,0x00,0x09,0x00,0x0d,0x00,0x34,0x40,0x31,0x04,0x01,0x02,0x01,0x00,0x01, +0x4c,0x00,0x01,0x00,0x02,0x01,0x02,0x63,0x04,0x01,0x00,0x00,0x3b,0x4d,0x07,0x05,0x06,0x03,0x03,0x03,0x39,0x03,0x4e,0x0a,0x0a,0x00,0x00,0x0a,0x0d,0x0a,0x0d,0x0c,0x0b,0x00,0x09,0x00,0x09,0x11,0x12,0x12,0x08,0x09,0x19,0x2b,0x21,0x03,0x13,0x33,0x03,0x17,0x33,0x15,0x23,0x35,0x21,0x11,0x33,0x11,0x01,0xc2,0xf6,0xe6,0x71,0xe5, +0xb3,0x49,0x50,0xfe,0x7a,0x5a,0x01,0x1a,0x01,0x0c,0xfe,0xf5,0xcb,0xdc,0x8c,0x02,0x26,0xfd,0xda,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x26,0x02,0x06,0x01,0xa7,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x00, +0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x1f,0x00,0x48,0x40,0x45,0x00,0x00,0x00,0x07,0x05,0x00,0x07,0x69,0x00,0x06,0x00,0x03,0x04,0x06,0x03,0x67,0x00,0x05,0x00,0x04,0x02,0x05,0x04,0x69,0x09,0x01,0x02,0x01,0x01,0x02,0x59,0x09,0x01,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x02,0x01,0x4f,0x05,0x04,0x00,0x00,0x1a,0x18,0x16, +0x15,0x13,0x11,0x0c,0x0a,0x08,0x07,0x04,0x1f,0x05,0x1f,0x00,0x03,0x00,0x03,0x11,0x0a,0x09,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0x32,0x36,0x37,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x02,0x58,0xfe,0xdc,0x5f,0x75,0x03,0x5a,0x03,0x42,0x38,0x3b, +0x47,0x47,0x3b,0x38,0x42,0x03,0x5a,0x03,0x75,0x5f,0x64,0x78,0x78,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x01,0x22,0x66,0x58,0x34,0x3a,0x44,0x3e,0x97,0x3e,0x43,0x39,0x35,0x58,0x66,0x70,0x62,0x96,0x62,0x70,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x06,0x00,0x01,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x12, +0x02,0xda,0x02,0x06,0x00,0x1a,0x00,0x00,0xff,0xff,0x00,0x82,0x00,0x00,0x02,0x2b,0x02,0xda,0x02,0x06,0x01,0xcb,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x03,0x00,0x0c,0x00,0x26,0x40,0x23,0x0a,0x01,0x02,0x00,0x01,0x4c,0x00,0x00,0x00,0x28,0x4d,0x00,0x02,0x02,0x01,0x60,0x03,0x01,0x01,0x01,0x29,0x01, +0x4e,0x00,0x00,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x04,0x08,0x17,0x2b,0x33,0x13,0x33,0x13,0x01,0x03,0x21,0x03,0x26,0x26,0x27,0x06,0x06,0x32,0xbe,0x79,0xbd,0xfe,0xe2,0x66,0x01,0x15,0x67,0x0d,0x12,0x05,0x04,0x13,0x02,0xda,0xfd,0x26,0x01,0xf0,0xfe,0x60,0x01,0x9f,0x34,0x5b,0x16,0x16,0x5a,0x00,0x00,0x00,0xff,0xff,0x00,0x64, +0x00,0x00,0x02,0x08,0x02,0xda,0x02,0x06,0x00,0x25,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x03,0x02,0xda,0x02,0x06,0x00,0xb1,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x01,0xfb,0x02,0xda,0x02,0x06,0x00,0x40,0x00,0x00,0x00,0x03,0x00,0x58,0xff,0xf6,0x02,0x00,0x02,0xe4,0x00,0x0d,0x00,0x1b,0x00,0x1f,0x00,0x3e,0x40,0x3b, +0x00,0x04,0x08,0x01,0x05,0x02,0x04,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x2e,0x4d,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x2f,0x00,0x4e,0x1c,0x1c,0x0f,0x0e,0x01,0x00,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x09,0x08,0x16,0x2b,0x05,0x22,0x26,0x35, +0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x27,0x35,0x33,0x15,0x01,0x2c,0x62,0x72,0x72,0x62,0x62,0x72,0x72,0x62,0x3b,0x3f,0x3f,0x3b,0x3a,0x40,0x40,0x20,0xb4,0x0a,0x70,0x62,0x01,0x4a,0x62,0x70,0x6f,0x62,0xfe,0xb5,0x62,0x70,0x51,0x43,0x3e,0x01, +0x4a,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0xfe,0x52,0x52,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x02,0xda,0x02,0x06,0x00,0x43,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0x51,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0c,0x00,0x1b,0x40,0x18,0x00,0x00,0x00,0x28, +0x4d,0x03,0x02,0x02,0x01,0x01,0x29,0x01,0x4e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x11,0x11,0x04,0x08,0x18,0x2b,0x33,0x13,0x33,0x13,0x23,0x03,0x26,0x26,0x31,0x30,0x06,0x07,0x03,0x32,0xbe,0x79,0xbd,0x5b,0x7b,0x11,0x13,0x13,0x11,0x7a,0x02,0xda,0xfd,0x26,0x01,0xef,0x47,0x5e,0x5d,0x47,0xfe,0x10,0x00,0x00,0x00,0xff,0xff,0x00,0x48, +0x00,0x00,0x02,0x10,0x02,0xda,0x02,0x06,0x00,0x59,0x00,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x02,0xda,0x02,0x06,0x00,0x5a,0x00,0x00,0x00,0x03,0x00,0x50,0x00,0x00,0x02,0x08,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x3d,0x40,0x3a,0x00,0x02,0x07,0x01,0x03,0x04,0x02,0x03,0x67,0x06,0x01,0x01,0x01,0x00,0x5f,0x00, +0x00,0x00,0x28,0x4d,0x00,0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x05,0x29,0x05,0x4e,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x08,0x17,0x2b,0x13,0x35,0x21,0x15,0x01,0x35,0x21,0x15,0x01,0x35,0x21,0x15,0x50,0x01,0xb8,0xfe,0x66,0x01,0x7c,0xfe,0x66, +0x01,0xb8,0x02,0x88,0x52,0x52,0xfe,0xc1,0x52,0x52,0xfe,0xb7,0x52,0x52,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x02,0xe4,0x02,0x06,0x00,0x60,0x00,0x00,0xff,0xff,0x00,0x5e,0x00,0x00,0x01,0xfa,0x02,0xda,0x02,0x06,0x01,0xdb,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x06,0x00,0x7a,0x00,0x00, +0x00,0x01,0x00,0x4b,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0b,0x00,0x34,0x40,0x31,0x08,0x02,0x02,0x02,0x01,0x01,0x4c,0x03,0x01,0x01,0x01,0x01,0x02,0x02,0x4b,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x28,0x4d,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x03,0x29,0x03,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x12,0x11,0x14,0x05,0x08, +0x19,0x2b,0x33,0x35,0x13,0x03,0x35,0x21,0x15,0x21,0x13,0x03,0x21,0x15,0x4b,0xe8,0xe8,0x01,0xdb,0xfe,0x8f,0xeb,0xec,0x01,0x72,0x50,0x01,0x23,0x01,0x17,0x50,0x50,0xfe,0xed,0xfe,0xd9,0x50,0x00,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x21,0x02,0xda,0x02,0x06,0x00,0x89,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35, +0x02,0xda,0x02,0x06,0x00,0xa8,0x00,0x00,0xff,0xff,0x00,0x2e,0xff,0xe7,0x02,0x2a,0x03,0x02,0x02,0x06,0x01,0xe1,0x00,0x00,0xff,0xff,0x00,0x28,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0xa7,0x00,0x00,0x00,0x01,0x00,0x36,0x00,0x00,0x02,0x22,0x02,0xda,0x00,0x19,0x00,0x2b,0x40,0x28,0x04,0x01,0x02,0x06,0x01,0x00,0x07,0x02, +0x00,0x6a,0x05,0x03,0x02,0x01,0x01,0x28,0x4d,0x08,0x01,0x07,0x07,0x29,0x07,0x4e,0x00,0x00,0x00,0x19,0x00,0x19,0x14,0x13,0x11,0x11,0x13,0x14,0x11,0x09,0x08,0x1d,0x2b,0x33,0x35,0x22,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x11,0x33,0x11,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x06,0x23,0x15,0xff,0x3c,0x5a,0x33,0x54, +0x43,0x38,0x4e,0x38,0x43,0x54,0x32,0x5b,0x3c,0xaa,0x34,0x5d,0x3f,0x01,0x60,0xfe,0xa0,0x3d,0x45,0x01,0xe2,0xfe,0x1e,0x45,0x3d,0x01,0x60,0xfe,0xa0,0x3f,0x5d,0x34,0xaa,0x00,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x27,0x02,0xe4,0x00,0x27,0x00,0x5f,0x4b,0xb0,0x2a,0x50,0x58,0x40,0x20,0x06,0x01,0x04,0x05,0x00,0x00,0x04, +0x72,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x2e,0x4d,0x02,0x01,0x00,0x00,0x03,0x60,0x08,0x07,0x02,0x03,0x03,0x29,0x03,0x4e,0x1b,0x40,0x21,0x06,0x01,0x04,0x05,0x00,0x05,0x04,0x00,0x80,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x2e,0x4d,0x02,0x01,0x00,0x00,0x03,0x60,0x08,0x07,0x02,0x03,0x03,0x29,0x03,0x4e,0x59,0x40,0x10, +0x00,0x00,0x00,0x27,0x00,0x27,0x15,0x25,0x11,0x11,0x27,0x28,0x11,0x09,0x08,0x1d,0x2b,0x33,0x35,0x33,0x35,0x2e,0x02,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x06,0x07,0x15,0x33,0x15,0x23,0x35,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x15,0x32,0x91,0x18,0x36,0x25,0x77,0x65,0x65, +0x77,0x25,0x35,0x19,0x92,0xd3,0x28,0x32,0x47,0x3b,0x3b,0x47,0x32,0x28,0x50,0x05,0x03,0x23,0x45,0x35,0x01,0x18,0x62,0x75,0x75,0x62,0xfe,0xe8,0x35,0x44,0x23,0x03,0x06,0x50,0x6e,0x49,0x39,0x01,0x1d,0x3e,0x49,0x49,0x3e,0xfe,0xe3,0x39,0x49,0x6e,0xff,0xff,0x00,0x0a,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x26,0x00,0x01,0x00,0x00, +0x00,0x07,0x06,0xb1,0xff,0x29,0x00,0x00,0xff,0xff,0xff,0x8d,0x00,0x00,0x02,0x08,0x02,0xda,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0xb1,0xfe,0xac,0x00,0x00,0xff,0xff,0xff,0x8d,0x00,0x00,0x01,0xfb,0x02,0xda,0x00,0x27,0x06,0xb1,0xfe,0xac,0x00,0x00,0x02,0x06,0x00,0x40,0x00,0x00,0xff,0xff,0xff,0x8d,0x00,0x00,0x01,0xef, +0x02,0xda,0x00,0x27,0x06,0xb1,0xfe,0xac,0x00,0x00,0x02,0x06,0x00,0x43,0x00,0x00,0xff,0xff,0xff,0xb0,0xff,0xf6,0x02,0x00,0x02,0xe4,0x00,0x27,0x06,0xb1,0xfe,0xcf,0x00,0x00,0x02,0x06,0x00,0x60,0x00,0x00,0xff,0xff,0xff,0x83,0x00,0x00,0x02,0x35,0x02,0xda,0x00,0x27,0x06,0xb1,0xfe,0xa2,0x00,0x00,0x02,0x06,0x00,0xa8,0x00,0x00, +0xff,0xff,0xff,0xb0,0x00,0x00,0x02,0x27,0x02,0xe4,0x02,0x26,0x02,0x68,0x00,0x00,0x00,0x07,0x06,0xb1,0xfe,0xcf,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb1,0x00,0x27,0x06,0x8e,0x02,0x58,0x00,0x00,0x02,0x06,0x00,0x43,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xb1,0x00,0x27,0x06,0x8e,0x02,0x58, +0x00,0x00,0x02,0x06,0x00,0xa8,0x00,0x00,0x00,0x01,0x00,0x5c,0xff,0x4c,0x02,0x44,0x02,0xda,0x00,0x17,0x00,0x42,0x40,0x3f,0x07,0x01,0x07,0x01,0x01,0x4c,0x00,0x03,0x07,0x06,0x07,0x03,0x06,0x80,0x00,0x01,0x00,0x07,0x03,0x01,0x07,0x67,0x02,0x01,0x00,0x00,0x28,0x4d,0x09,0x08,0x02,0x06,0x06,0x29,0x4d,0x00,0x05,0x05,0x04,0x61, +0x00,0x04,0x04,0x2d,0x04,0x4e,0x00,0x00,0x00,0x17,0x00,0x17,0x11,0x12,0x21,0x23,0x12,0x11,0x11,0x11,0x0a,0x08,0x1e,0x2b,0x33,0x11,0x33,0x11,0x33,0x13,0x33,0x03,0x13,0x33,0x15,0x14,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x23,0x03,0x23,0x11,0x5c,0x5a,0x6c,0xa2,0x62,0xb5,0x9b,0x38,0x5f,0x5c,0x1d,0x1d,0x2d,0x38,0x25,0xaa, +0x69,0x02,0xda,0xfe,0xc6,0x01,0x3a,0xfe,0xa0,0xfe,0xcd,0x47,0x58,0x5c,0x4f,0x37,0x2e,0x01,0x51,0xfe,0xaf,0x00,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0xba,0x00,0x00,0x00,0x02,0x00,0x5d,0xff,0x4c,0x02,0x44,0x02,0xda,0x00,0x10,0x00,0x14,0x00,0x40,0x40,0x3d,0x0a,0x07,0x02,0x03,0x02,0x01, +0x4c,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x05,0x01,0x02,0x02,0x38,0x4d,0x08,0x06,0x02,0x01,0x01,0x39,0x4d,0x00,0x00,0x00,0x04,0x61,0x07,0x01,0x04,0x04,0x3d,0x04,0x4e,0x11,0x11,0x00,0x00,0x11,0x14,0x11,0x14,0x13,0x12,0x00,0x10,0x00,0x0f,0x12,0x12,0x12,0x21,0x09,0x09,0x1a,0x2b,0x05,0x35,0x33,0x32,0x36,0x35,0x23,0x03, +0x13,0x33,0x03,0x13,0x33,0x15,0x14,0x06,0x23,0x25,0x11,0x33,0x11,0x01,0x6c,0x1d,0x2d,0x38,0x2f,0xf9,0xf9,0x67,0xf0,0xcb,0x43,0x5f,0x5c,0xfe,0xd4,0x5a,0xb4,0x4f,0x37,0x2e,0x01,0x7c,0x01,0x5e,0xfe,0xa2,0xfe,0xcb,0x47,0x58,0x5c,0xb4,0x02,0xda,0xfd,0x26,0x00,0x00,0x00,0x02,0x00,0x55,0xff,0xf6,0x01,0xfc,0x02,0x30,0x00,0x13, +0x00,0x21,0x00,0x67,0xb6,0x10,0x0a,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x19,0x00,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01,0x31,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x03,0x06,0x02,0x00,0x00,0x2f,0x00,0x4e,0x1b,0x40,0x21,0x00,0x02,0x02,0x2b,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x31,0x4d,0x00,0x03, +0x03,0x29,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x2f,0x00,0x4e,0x59,0x40,0x17,0x15,0x14,0x01,0x00,0x1c,0x1a,0x14,0x21,0x15,0x21,0x0f,0x0e,0x0d,0x0c,0x08,0x06,0x00,0x13,0x01,0x13,0x08,0x08,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x27,0x33,0x11,0x23,0x35,0x23,0x06,0x06,0x27, +0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x0c,0x52,0x65,0x64,0x53,0x3e,0x50,0x07,0x03,0x02,0x5a,0x5a,0x01,0x07,0x50,0x20,0x38,0x40,0x40,0x38,0x39,0x42,0x42,0x0a,0x6e,0x5e,0xa1,0x5f,0x6e,0x3e,0x35,0x69,0xfd,0xda,0x69,0x36,0x3d,0x4e,0x46,0x3e,0x96,0x3e,0x46,0x44,0x40,0x96,0x40,0x44,0x00,0x00, +0x00,0x02,0x00,0x5c,0xff,0x4c,0x02,0x1a,0x02,0xe4,0x00,0x1b,0x00,0x31,0x00,0x48,0x40,0x45,0x0c,0x01,0x04,0x05,0x18,0x01,0x03,0x04,0x02,0x4c,0x00,0x05,0x00,0x04,0x03,0x05,0x04,0x69,0x00,0x06,0x06,0x00,0x61,0x00,0x00,0x00,0x2e,0x4d,0x08,0x01,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x2f,0x4d,0x07,0x01,0x02,0x02,0x2d,0x02,0x4e, +0x1d,0x1c,0x00,0x00,0x2c,0x2a,0x26,0x24,0x23,0x21,0x1c,0x31,0x1d,0x31,0x00,0x1b,0x00,0x1b,0x2e,0x24,0x09,0x08,0x18,0x2b,0x17,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x1e,0x02,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x15,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35, +0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x5c,0x34,0x5e,0x3d,0x3d,0x5b,0x34,0x40,0x33,0x2d,0x43,0x26,0x35,0x60,0x3f,0x3c,0x4d,0x07,0x03,0x03,0x86,0x3a,0x48,0x48,0x3b,0x37,0x27,0x34,0x40,0x40,0x34,0x34,0x41,0x4b,0xb4,0x02,0xc5,0x3f,0x5f,0x35,0x2d,0x51,0x35,0x38,0x56,0x0d,0x03,0x06,0x36,0x53,0x33,0x41,0x63,0x37,0x3c, +0x34,0x7a,0xa0,0xfc,0x4f,0x3f,0x3f,0x4f,0x4c,0x3f,0x33,0x33,0x3f,0x48,0x3b,0xfe,0xc5,0x3f,0x4f,0x00,0x00,0x01,0x00,0x3c,0xff,0x4c,0x02,0x1c,0x02,0x26,0x00,0x0e,0x00,0x23,0x40,0x20,0x0d,0x07,0x01,0x03,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x2b,0x4d,0x03,0x01,0x02,0x02,0x2d,0x02,0x4e,0x00,0x00,0x00,0x0e,0x00,0x0e,0x18, +0x12,0x04,0x08,0x18,0x2b,0x17,0x35,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x15,0xff,0xc3,0x5f,0x7c,0x0c,0x0a,0x03,0x03,0x09,0x0b,0x79,0x5c,0xc3,0xb4,0xb4,0x02,0x26,0xfe,0x93,0x22,0x35,0x11,0x11,0x35,0x22,0x01,0x6d,0xfd,0xda,0xb4,0x00,0x00,0x00,0x02,0x00,0x54,0xff,0xf6,0x02,0x04,0x02,0xda,0x00,0x16, +0x00,0x24,0x00,0x3f,0x40,0x3c,0x0c,0x01,0x01,0x03,0x01,0x4c,0x00,0x01,0x00,0x05,0x04,0x01,0x05,0x69,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x28,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x2f,0x00,0x4e,0x18,0x17,0x01,0x00,0x1f,0x1d,0x17,0x24,0x18,0x24,0x10,0x0f,0x0e,0x0d,0x08,0x07,0x00,0x16,0x01,0x16,0x08, +0x08,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x33,0x26,0x26,0x27,0x35,0x21,0x15,0x21,0x1e,0x02,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x61,0x77,0x31,0x58,0x3a,0x06,0x22,0x57,0x38,0x01,0x89,0xfe,0xdc,0x61,0x89,0x49,0x76,0x62,0x39,0x43,0x1b,0x23,0x3f, +0x37,0x46,0x45,0x0a,0x73,0x64,0x61,0x3f,0x5e,0x35,0x1c,0x42,0x2a,0x52,0x4b,0x43,0x78,0x86,0x59,0x82,0x7d,0x50,0x51,0x5e,0x3f,0x58,0x29,0x4b,0x3c,0x61,0x40,0x47,0x00,0x01,0x00,0x4b,0xff,0xf9,0x02,0x12,0x02,0x2d,0x00,0x2d,0x00,0x52,0x40,0x4f,0x00,0x03,0x04,0x05,0x04,0x03,0x05,0x80,0x00,0x01,0x05,0x06,0x05,0x01,0x06,0x80, +0x00,0x08,0x06,0x07,0x06,0x08,0x07,0x80,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x31,0x4d,0x00,0x07,0x07,0x00,0x62,0x09,0x01,0x00,0x00,0x32,0x00,0x4e,0x02,0x00,0x2b,0x2a,0x28,0x25,0x21,0x1f,0x1e,0x1c,0x18,0x15,0x13,0x12,0x10,0x0d,0x07,0x06,0x00,0x2d,0x02,0x2d,0x0a,0x08,0x16,0x2b, +0x05,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x01,0x4e,0x35,0x5f,0x6f,0x42,0x3c,0x32,0x3f,0x69,0x5a,0x2f,0x56,0x66,0x01,0x5a,0x01,0x36, +0x2c,0x2f,0x2e,0x37,0x37,0x2f,0x75,0x78,0x34,0x3c,0x3c,0x34,0x35,0x31,0x39,0x5a,0x6a,0x07,0x59,0x4b,0x3c,0x4c,0x04,0x04,0x04,0x3f,0x2e,0x45,0x4a,0x4d,0x41,0x1d,0x22,0x29,0x23,0x24,0x2a,0x4e,0x2f,0x29,0x27,0x2d,0x2a,0x23,0x49,0x55,0x00,0x00,0x00,0x01,0x00,0x69,0xff,0x47,0x02,0x30,0x02,0xda,0x00,0x1e,0x00,0x18,0x40,0x15, +0x12,0x01,0x02,0x00,0x49,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x28,0x00,0x4e,0x11,0x1e,0x02,0x08,0x18,0x2b,0x05,0x27,0x37,0x36,0x35,0x34,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x21,0x35,0x21,0x15,0x07,0x06,0x06,0x15,0x14,0x17,0x17,0x16,0x16,0x15,0x14,0x07,0x01,0xe4,0x46,0x2e,0x0a,0x22,0x84,0x65,0x62,0x62,0x6d, +0x86,0xfe,0xba,0x01,0xb3,0xba,0x5a,0x52,0x89,0x81,0x2f,0x32,0x1b,0xb9,0x2a,0x49,0x10,0x0e,0x1a,0x0b,0x26,0x1d,0x62,0x49,0x43,0x8d,0x5c,0x71,0x52,0x5a,0xa6,0x50,0x6f,0x2f,0x4d,0x28,0x25,0x0d,0x3c,0x26,0x27,0x29,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfe,0x02,0x30,0x02,0x06,0x01,0x1b,0x00,0x00,0x00,0x03,0x00,0x58, +0xff,0xf6,0x02,0x00,0x02,0xda,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x39,0x40,0x36,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x28,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x2f,0x00,0x4e,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x14,0x12,0x0f,0x0e,0x08,0x06,0x00, +0x0d,0x01,0x0d,0x08,0x08,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x03,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x13,0x32,0x36,0x35,0x35,0x23,0x15,0x14,0x16,0x01,0x2c,0x62,0x72,0x72,0x62,0x62,0x72,0x72,0xdc,0xf4,0x3f,0x3b,0x3a,0x40,0x7a,0x3b,0x3f,0xf4,0x40,0x0a,0x70,0x62,0x01,0x40, +0x62,0x70,0x6f,0x62,0xfe,0xbf,0x62,0x70,0x01,0x9d,0x75,0x40,0x42,0x42,0x40,0xfe,0x3e,0x42,0x40,0x7d,0x7d,0x40,0x42,0x00,0x00,0x01,0x00,0x37,0x00,0x00,0x02,0x26,0x02,0x26,0x00,0x0d,0x00,0x28,0x40,0x25,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x2b,0x4d,0x00,0x03,0x03,0x00,0x5f,0x04,0x01,0x00,0x00,0x29,0x00,0x4e,0x01,0x00, +0x0c,0x0a,0x07,0x06,0x05,0x04,0x00,0x0d,0x01,0x0d,0x05,0x08,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x14,0x16,0x33,0x33,0x15,0x01,0x9a,0x49,0x57,0xc3,0x01,0x1d,0x26,0x20,0x8c,0x55,0x46,0x01,0x39,0x52,0xfe,0x75,0x22,0x27,0x52,0xff,0xff,0x00,0x67,0x00,0x00,0x02,0x35,0x02,0x26,0x02,0x06,0x02,0x19,0x00,0x00, +0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0d,0x00,0x22,0x40,0x1f,0x09,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x00,0x28,0x4d,0x03,0x02,0x02,0x01,0x01,0x29,0x01,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x12,0x04,0x08,0x18,0x2b,0x33,0x13,0x27,0x33,0x01,0x23,0x03,0x26,0x26,0x27,0x14,0x06,0x07,0x03,0x32,0xcc, +0x4a,0x60,0x01,0x12,0x60,0x83,0x0d,0x0c,0x05,0x08,0x0c,0x7e,0x02,0x1d,0xbd,0xfd,0x26,0x01,0x65,0x23,0x36,0x0f,0x0f,0x36,0x23,0xfe,0x9b,0x00,0x00,0x01,0x00,0x5d,0xff,0x4c,0x01,0xfb,0x02,0x26,0x00,0x18,0x00,0x57,0xb5,0x0e,0x01,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x18,0x02,0x01,0x00,0x00,0x2b,0x4d,0x00,0x01, +0x01,0x03,0x61,0x04,0x01,0x03,0x03,0x29,0x4d,0x06,0x01,0x05,0x05,0x2d,0x05,0x4e,0x1b,0x40,0x1c,0x02,0x01,0x00,0x00,0x2b,0x4d,0x00,0x03,0x03,0x29,0x4d,0x00,0x01,0x01,0x04,0x61,0x00,0x04,0x04,0x2f,0x4d,0x06,0x01,0x05,0x05,0x2d,0x05,0x4e,0x59,0x40,0x0e,0x00,0x00,0x00,0x18,0x00,0x18,0x24,0x11,0x13,0x23,0x11,0x07,0x08,0x1b, +0x2b,0x17,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x15,0x5d,0x5a,0x3c,0x37,0x38,0x3f,0x5a,0x58,0x03,0x03,0x36,0x3e,0x3e,0x30,0x03,0x03,0x02,0xb4,0x02,0xda,0xfe,0xa2,0x3e,0x46,0x46,0x3e,0x01,0x5e,0xfd,0xda,0x69,0x35,0x3e,0x3e,0x35,0x7d,0xa0,0x00, +0xff,0xff,0x00,0x36,0x00,0x00,0x02,0x22,0x02,0x26,0x02,0x06,0x01,0x69,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0x47,0x02,0x1f,0x02,0xe4,0x00,0x2e,0x00,0x3a,0x40,0x37,0x1f,0x01,0x02,0x01,0x01,0x4c,0x14,0x13,0x02,0x02,0x49,0x00,0x04,0x00,0x01,0x00,0x04,0x01,0x80,0x00,0x01,0x00,0x02,0x01,0x02,0x63,0x05,0x01,0x00,0x00,0x03,0x61, +0x00,0x03,0x03,0x2e,0x00,0x4e,0x01,0x00,0x2c,0x2b,0x28,0x26,0x0a,0x08,0x07,0x05,0x00,0x2e,0x01,0x2e,0x06,0x08,0x16,0x2b,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x16,0x16,0x07,0x07,0x27,0x37,0x36,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x36,0x33, +0x32,0x16,0x16,0x17,0x23,0x26,0x26,0x01,0x45,0x37,0x44,0x44,0x37,0x92,0x8e,0x42,0x53,0x74,0x8f,0x4a,0x1e,0x2a,0x29,0x46,0x2b,0x0e,0x0a,0x1c,0x8b,0x5e,0x5b,0x4e,0x3e,0x34,0x41,0x37,0x62,0x40,0x40,0x5e,0x36,0x02,0x5a,0x04,0x40,0x02,0x92,0x42,0x32,0x31,0x39,0x50,0x46,0x38,0x4e,0x23,0x2c,0x17,0x65,0x44,0x42,0x27,0x46,0x18, +0x24,0x09,0x2c,0x1e,0x5e,0x45,0x42,0x60,0x0b,0x03,0x0d,0x51,0x39,0x35,0x53,0x2f,0x2d,0x4e,0x33,0x29,0x33,0x00,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x02,0x2e,0x02,0x06,0x01,0x22,0x00,0x00,0x00,0x01,0x00,0x19,0xff,0xfb,0x02,0x2b,0x02,0x26,0x00,0x13,0x00,0x59,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x19,0x05,0x03,0x02, +0x01,0x01,0x04,0x5f,0x00,0x04,0x04,0x2b,0x4d,0x00,0x06,0x06,0x00,0x61,0x02,0x07,0x02,0x00,0x00,0x32,0x00,0x4e,0x1b,0x40,0x1d,0x05,0x03,0x02,0x01,0x01,0x04,0x5f,0x00,0x04,0x04,0x2b,0x4d,0x00,0x02,0x02,0x29,0x4d,0x00,0x06,0x06,0x00,0x61,0x07,0x01,0x00,0x00,0x32,0x00,0x4e,0x59,0x40,0x15,0x01,0x00,0x12,0x10,0x0d,0x0c,0x0b, +0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x13,0x01,0x13,0x08,0x08,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x23,0x11,0x23,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x14,0x16,0x33,0x33,0x15,0x02,0x18,0x4c,0x5b,0xad,0x57,0x54,0x02,0x11,0x63,0x29,0x23,0x18,0x05,0x60,0x4f,0x01,0x2c,0xfe,0x2a,0x01,0xd6,0x50,0x50,0xfe,0xce,0x29,0x2c,0x54, +0x00,0x02,0x00,0x5e,0xff,0x4c,0x01,0xfe,0x02,0x30,0x00,0x11,0x00,0x1f,0x00,0x38,0x40,0x35,0x0e,0x01,0x03,0x04,0x01,0x4c,0x00,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x31,0x4d,0x06,0x01,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x2f,0x4d,0x05,0x01,0x02,0x02,0x2d,0x02,0x4e,0x13,0x12,0x00,0x00,0x1a,0x18,0x12,0x1f,0x13,0x1f,0x00,0x11, +0x00,0x11,0x25,0x23,0x07,0x08,0x18,0x2b,0x17,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x15,0x37,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x5e,0x70,0x61,0x61,0x6e,0x5f,0x53,0x3e,0x4e,0x07,0x03,0x02,0x76,0x39,0x3d,0x3d,0x39,0x39,0x3d,0x3f,0xb4,0x02,0x18,0x5f, +0x6d,0x6d,0x5f,0xa1,0x5f,0x6e,0x3e,0x35,0x7d,0xa0,0xf8,0x44,0x40,0x96,0x40,0x44,0x44,0x40,0x96,0x3e,0x46,0x00,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0x47,0x02,0x0b,0x02,0x30,0x00,0x1f,0x00,0x1d,0x40,0x1a,0x1f,0x01,0x01,0x49,0x00,0x01,0x02,0x01,0x86,0x00,0x02,0x02,0x00,0x61,0x00,0x00,0x00,0x31,0x02,0x4e,0x22,0x12,0x2b,0x03, +0x08,0x19,0x2b,0x05,0x37,0x36,0x26,0x27,0x27,0x26,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x07,0x07,0x01,0x59,0x2b,0x0e,0x0a,0x1c,0x76,0x4a,0x52,0x77,0x64,0x5f,0x74,0x03,0x5a,0x03,0x41,0x38,0x3b,0x46,0x31,0x2b,0x7a,0x4a,0x1e,0x2a,0x29,0x92,0x46, +0x18,0x24,0x09,0x25,0x17,0x63,0x44,0x82,0x62,0x70,0x66,0x58,0x35,0x39,0x43,0x3e,0x83,0x25,0x3a,0x0e,0x26,0x17,0x65,0x44,0x42,0x00,0x00,0x00,0x00,0x02,0x00,0x55,0xff,0xf6,0x02,0x3a,0x02,0x26,0x00,0x14,0x00,0x22,0x00,0x30,0x40,0x2d,0x04,0x01,0x02,0x02,0x01,0x5f,0x00,0x01,0x01,0x2b,0x4d,0x06,0x01,0x03,0x03,0x00,0x61,0x05, +0x01,0x00,0x00,0x2f,0x00,0x4e,0x16,0x15,0x01,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x0c,0x0b,0x0a,0x08,0x00,0x14,0x01,0x14,0x07,0x08,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x21,0x15,0x23,0x15,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01, +0x29,0x40,0x5f,0x35,0x35,0x5f,0x40,0x01,0x11,0xa9,0x32,0x3a,0x35,0x5f,0x40,0x39,0x41,0x41,0x39,0x39,0x41,0x41,0x0a,0x35,0x5e,0x3f,0x8c,0x3f,0x5f,0x34,0x52,0x03,0x04,0x43,0x36,0x8c,0x3f,0x5e,0x35,0x50,0x46,0x3c,0x8c,0x3c,0x46,0x46,0x3c,0x8c,0x3c,0x46,0x00,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x08,0x02,0x26,0x00,0x0f, +0x00,0x2b,0x40,0x28,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x2b,0x4d,0x00,0x04,0x04,0x00,0x5f,0x05,0x01,0x00,0x00,0x29,0x00,0x4e,0x01,0x00,0x0e,0x0c,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x0f,0x01,0x0f,0x06,0x08,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x14,0x16,0x33,0x33,0x15,0x01,0x6d,0x44, +0x52,0xa8,0x01,0xd9,0xd7,0x21,0x1b,0x96,0x4f,0x42,0x01,0x43,0x52,0x52,0xfe,0xbd,0x1c,0x23,0x52,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0x26,0x02,0x06,0x01,0x51,0x00,0x00,0x00,0x02,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x2b,0x00,0x1e,0x00,0x27,0x00,0x3b,0x40,0x38,0x0b,0x01,0x01,0x06,0x01,0x4c,0x0a,0x01,0x02,0x4a, +0x00,0x06,0x06,0x02,0x5f,0x00,0x02,0x02,0x2b,0x4d,0x05,0x01,0x01,0x01,0x00,0x61,0x03,0x01,0x00,0x00,0x29,0x4d,0x07,0x01,0x04,0x04,0x2d,0x04,0x4e,0x00,0x00,0x26,0x25,0x20,0x1f,0x00,0x1e,0x00,0x1e,0x17,0x21,0x1f,0x11,0x08,0x08,0x1a,0x2b,0x17,0x35,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x37,0x15,0x06,0x06,0x15,0x07,0x06, +0x16,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x15,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0xff,0x3b,0x5b,0x33,0x22,0x3e,0x28,0x16,0x1d,0x01,0x01,0x46,0x38,0x50,0x3c,0x5b,0x34,0x33,0x5a,0x3c,0x08,0x38,0x45,0x42,0x35,0x06,0xb4,0xb4,0x34,0x5e,0x3d,0x92,0x34,0x56,0x39,0x07,0x5f,0x05,0x3b,0x26,0x9c, +0x3a,0x49,0x01,0xdf,0x32,0x58,0x3b,0x92,0x3d,0x5e,0x34,0xb4,0xfb,0x49,0x3a,0x9c,0x36,0x44,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0x26,0x02,0x06,0x01,0x6f,0x00,0x00,0x00,0x01,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x26,0x00,0x17,0x00,0x2d,0x40,0x2a,0x05,0x03,0x02,0x01,0x01,0x2b,0x4d,0x04,0x01,0x02,0x02,0x00, +0x62,0x06,0x01,0x00,0x00,0x29,0x4d,0x08,0x01,0x07,0x07,0x2d,0x07,0x4e,0x00,0x00,0x00,0x17,0x00,0x17,0x13,0x13,0x11,0x11,0x13,0x13,0x11,0x09,0x08,0x1d,0x2b,0x17,0x35,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x11,0x33,0x11,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0x15,0xff,0x5c,0x6d,0x54,0x3e,0x3d,0x4e,0x3d,0x3e, +0x54,0x6d,0x5c,0xb4,0xb4,0x6c,0x5e,0x01,0x5c,0xfe,0xa4,0x3d,0x44,0x01,0xdd,0xfe,0x23,0x44,0x3d,0x01,0x5c,0xfe,0xa4,0x5e,0x6c,0xb4,0x00,0x00,0x00,0x01,0x00,0x36,0xff,0xf6,0x02,0x22,0x02,0x30,0x00,0x2d,0x00,0x34,0x40,0x31,0x2a,0x01,0x01,0x02,0x01,0x4c,0x20,0x1f,0x08,0x07,0x04,0x02,0x4a,0x00,0x02,0x01,0x02,0x85,0x03,0x01, +0x01,0x01,0x00,0x61,0x04,0x05,0x02,0x00,0x00,0x2f,0x00,0x4e,0x01,0x00,0x28,0x26,0x19,0x17,0x14,0x13,0x10,0x0e,0x00,0x2d,0x01,0x2d,0x06,0x08,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x15,0x06,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x27,0x35,0x16, +0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0xb5,0x3a,0x45,0x4c,0x41,0x19,0x1f,0x22,0x1c,0x1c,0x20,0x4e,0x20,0x1c,0x1d,0x21,0x21,0x1c,0x44,0x4e,0x44,0x3b,0x31,0x41,0x05,0x02,0x04,0x40,0x0a,0x5c,0x4f,0xbb,0x57,0x73,0x0a,0x5f,0x05,0x3c,0x2e,0xc7,0x29,0x30,0x30,0x29,0xbe,0xbe,0x29,0x30,0x30,0x29,0xc7,0x2b, +0x39,0x06,0x5f,0x0a,0x70,0x55,0xbb,0x4f,0x5c,0x3f,0x35,0x35,0x3f,0x00,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x26,0x03,0x11,0x02,0x26,0x02,0x7d,0x00,0x00,0x00,0x06,0x06,0xb0,0x19,0x00,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x26,0x03,0x09,0x02,0x26,0x02,0x7d,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x53,0x00,0x00, +0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x26,0x03,0x84,0x02,0x26,0x02,0x7d,0x00,0x00,0x00,0x06,0x06,0xb2,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x06,0x06,0xb0,0x1e,0x00,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x09,0x02,0x26,0x01,0x51,0x00,0x00, +0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x84,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x06,0x06,0xb2,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x06,0x06,0xb0,0x1e,0x00,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0xf6,0x02,0x22, +0x03,0x11,0x02,0x26,0x02,0x8d,0x00,0x00,0x00,0x06,0x06,0xb0,0x14,0x00,0x00,0x00,0x00,0x03,0x00,0x55,0xff,0xf6,0x01,0xfc,0x03,0x11,0x00,0x03,0x00,0x17,0x00,0x25,0x00,0x84,0xb6,0x14,0x0e,0x02,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x24,0x00,0x00,0x01,0x00,0x85,0x08,0x01,0x01,0x03,0x01,0x85,0x00,0x07,0x07,0x03, +0x61,0x04,0x01,0x03,0x03,0x31,0x4d,0x0a,0x01,0x06,0x06,0x02,0x61,0x05,0x09,0x02,0x02,0x02,0x2f,0x02,0x4e,0x1b,0x40,0x2c,0x00,0x00,0x01,0x00,0x85,0x08,0x01,0x01,0x03,0x01,0x85,0x00,0x04,0x04,0x2b,0x4d,0x00,0x07,0x07,0x03,0x61,0x00,0x03,0x03,0x31,0x4d,0x00,0x05,0x05,0x29,0x4d,0x0a,0x01,0x06,0x06,0x02,0x61,0x09,0x01,0x02, +0x02,0x2f,0x02,0x4e,0x59,0x40,0x1e,0x19,0x18,0x05,0x04,0x00,0x00,0x20,0x1e,0x18,0x25,0x19,0x25,0x13,0x12,0x11,0x10,0x0c,0x0a,0x04,0x17,0x05,0x17,0x00,0x03,0x00,0x03,0x11,0x0b,0x08,0x17,0x2b,0x13,0x37,0x33,0x07,0x03,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x27,0x33,0x11,0x23,0x35,0x23,0x06,0x06,0x27,0x32, +0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xea,0x6a,0x64,0x6f,0x3d,0x52,0x65,0x64,0x53,0x3e,0x50,0x07,0x03,0x02,0x5a,0x5a,0x01,0x07,0x50,0x20,0x38,0x40,0x40,0x38,0x39,0x42,0x42,0x02,0x85,0x8c,0x8c,0xfd,0x71,0x6e,0x5e,0xa1,0x5f,0x6e,0x3e,0x35,0x69,0xfd,0xda,0x69,0x36,0x3d,0x4e,0x46,0x3e,0x96,0x3e,0x46, +0x44,0x40,0x96,0x40,0x44,0x00,0x00,0x00,0x00,0x02,0x00,0x4b,0xff,0xf9,0x02,0x12,0x03,0x11,0x00,0x2d,0x00,0x31,0x01,0x43,0x4b,0xb0,0x13,0x50,0x58,0x40,0x40,0x00,0x09,0x0a,0x09,0x85,0x0c,0x01,0x0a,0x02,0x0a,0x85,0x00,0x03,0x04,0x05,0x04,0x03,0x72,0x00,0x01,0x05,0x06,0x05,0x01,0x06,0x80,0x00,0x08,0x06,0x07,0x06,0x08,0x07, +0x80,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x31,0x4d,0x00,0x07,0x07,0x00,0x62,0x0b,0x01,0x00,0x00,0x32,0x00,0x4e,0x1b,0x4b,0xb0,0x14,0x50,0x58,0x40,0x41,0x00,0x09,0x0a,0x09,0x85,0x0c,0x01,0x0a,0x02,0x0a,0x85,0x00,0x03,0x04,0x05,0x04,0x03,0x05,0x80,0x00,0x01,0x05,0x06,0x05,0x01, +0x06,0x80,0x00,0x08,0x06,0x07,0x06,0x08,0x07,0x80,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x31,0x4d,0x00,0x07,0x07,0x00,0x62,0x0b,0x01,0x00,0x00,0x32,0x00,0x4e,0x1b,0x4b,0xb0,0x15,0x50,0x58,0x40,0x40,0x00,0x09,0x0a,0x09,0x85,0x0c,0x01,0x0a,0x02,0x0a,0x85,0x00,0x03,0x04,0x05,0x04, +0x03,0x72,0x00,0x01,0x05,0x06,0x05,0x01,0x06,0x80,0x00,0x08,0x06,0x07,0x06,0x08,0x07,0x80,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x31,0x4d,0x00,0x07,0x07,0x00,0x62,0x0b,0x01,0x00,0x00,0x32,0x00,0x4e,0x1b,0x40,0x41,0x00,0x09,0x0a,0x09,0x85,0x0c,0x01,0x0a,0x02,0x0a,0x85,0x00,0x03, +0x04,0x05,0x04,0x03,0x05,0x80,0x00,0x01,0x05,0x06,0x05,0x01,0x06,0x80,0x00,0x08,0x06,0x07,0x06,0x08,0x07,0x80,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x31,0x4d,0x00,0x07,0x07,0x00,0x62,0x0b,0x01,0x00,0x00,0x32,0x00,0x4e,0x59,0x59,0x59,0x40,0x21,0x2e,0x2e,0x02,0x00,0x2e,0x31,0x2e, +0x31,0x30,0x2f,0x2b,0x2a,0x28,0x25,0x21,0x1f,0x1e,0x1c,0x18,0x15,0x13,0x12,0x10,0x0d,0x07,0x06,0x00,0x2d,0x02,0x2d,0x0d,0x08,0x16,0x2b,0x05,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14, +0x16,0x33,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x03,0x37,0x33,0x07,0x01,0x4e,0x35,0x5f,0x6f,0x42,0x3c,0x32,0x3f,0x69,0x5a,0x2f,0x56,0x66,0x01,0x5a,0x01,0x36,0x2c,0x2f,0x2e,0x37,0x37,0x2f,0x75,0x78,0x34,0x3c,0x3c,0x34,0x35,0x31,0x39,0x5a,0x6a,0xb8,0x6a,0x64,0x6f,0x07,0x59,0x4b,0x3c,0x4c,0x04,0x04,0x04,0x3f,0x2e,0x45,0x4a, +0x4d,0x41,0x1d,0x22,0x29,0x23,0x24,0x2a,0x4e,0x2f,0x29,0x27,0x2d,0x2a,0x23,0x49,0x55,0x02,0x8c,0x8c,0x8c,0x00,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x1b,0x00,0x00,0x00,0x06,0x06,0xb0,0x23,0x00,0x00,0x00,0x00,0x01,0x00,0x5c,0xff,0x4c,0x02,0x26,0x02,0x26,0x00,0x1a,0x00,0x39,0x40,0x36, +0x19,0x06,0x02,0x02,0x00,0x01,0x4c,0x00,0x02,0x00,0x05,0x00,0x02,0x05,0x80,0x01,0x01,0x00,0x00,0x2b,0x4d,0x07,0x06,0x02,0x05,0x05,0x29,0x4d,0x00,0x04,0x04,0x03,0x61,0x00,0x03,0x03,0x2d,0x03,0x4e,0x00,0x00,0x00,0x1a,0x00,0x1a,0x12,0x21,0x23,0x11,0x15,0x11,0x08,0x08,0x1c,0x2b,0x33,0x11,0x33,0x11,0x14,0x06,0x07,0x13,0x33, +0x11,0x33,0x15,0x14,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x23,0x11,0x34,0x36,0x37,0x03,0x5c,0x56,0x03,0x08,0xe5,0x70,0x2a,0x5f,0x5c,0x1d,0x1d,0x2d,0x38,0x2a,0x03,0x08,0xe5,0x02,0x26,0xfe,0xd8,0x2b,0x5c,0x1d,0x01,0xcc,0xfe,0x21,0x47,0x58,0x5c,0x4f,0x37,0x2e,0x01,0x29,0x2c,0x5c,0x1d,0xfe,0x32,0x00,0xff,0xff,0x00,0x30, +0xff,0x4c,0x02,0x28,0x02,0xda,0x02,0x06,0x02,0x25,0x00,0x00,0x00,0x02,0x00,0x0f,0xff,0xf6,0x02,0x49,0x02,0x26,0x00,0x18,0x00,0x2c,0x00,0x49,0x40,0x46,0x16,0x01,0x05,0x06,0x01,0x4c,0x00,0x06,0x01,0x05,0x01,0x06,0x05,0x80,0x08,0x03,0x02,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x2b,0x4d,0x07,0x0a,0x02,0x05,0x05,0x00,0x61,0x04, +0x09,0x02,0x00,0x00,0x2f,0x00,0x4e,0x1a,0x19,0x01,0x00,0x29,0x26,0x23,0x21,0x1e,0x1d,0x19,0x2c,0x1a,0x2c,0x14,0x12,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x00,0x18,0x01,0x18,0x0b,0x08,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x23,0x35,0x21,0x15,0x23,0x16,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x27,0x32, +0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x35,0x35,0x34,0x23,0x23,0x22,0x15,0x15,0x14,0xb5,0x3a,0x44,0x27,0x24,0x73,0x02,0x3a,0x73,0x24,0x27,0x43,0x3b,0x31,0x3e,0x08,0x07,0x3e,0x1e,0x1d,0x21,0x4a,0x21,0x1d,0x3d,0x3d,0xc6,0x3d,0x0a,0x56,0x4b,0xbc,0x2e,0x42,0x11,0x52,0x52,0x11,0x42,0x2e,0xbc,0x4b,0x56,0x39,0x32,0x32, +0x39,0x4c,0x2c,0x28,0xc3,0xc3,0x28,0x2c,0x54,0xea,0x54,0x54,0xea,0x54,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x37,0x02,0x26,0x02,0x06,0x02,0x4b,0x00,0x00,0x00,0x01,0x00,0x1a,0xff,0x4c,0x02,0x21,0x02,0x2a,0x00,0x15,0x00,0x29,0x40,0x26,0x14,0x0e,0x01,0x03,0x03,0x00,0x01,0x4c,0x00,0x00,0x00,0x01,0x61,0x02,0x01,0x01, +0x01,0x3b,0x4d,0x04,0x01,0x03,0x03,0x3d,0x03,0x4e,0x00,0x00,0x00,0x15,0x00,0x15,0x1a,0x21,0x23,0x05,0x09,0x19,0x2b,0x05,0x35,0x03,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x17,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x15,0x01,0x09,0x8b,0x11,0x35,0x1e,0x1e,0x3a,0x51,0x10,0x4e,0x0b,0x09,0x03,0x03,0x0b,0x0b,0x74,0x5c, +0xbe,0xb4,0xb4,0x01,0xa7,0x31,0x52,0x36,0x35,0xfe,0xfa,0x22,0x35,0x11,0x11,0x35,0x22,0x01,0x6d,0xfd,0xda,0xb4,0x00,0x00,0x00,0x01,0x00,0x2f,0xff,0xfb,0x02,0x44,0x02,0xdf,0x00,0x1a,0x00,0x59,0xb6,0x0d,0x07,0x02,0x04,0x02,0x01,0x4c,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x17,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x00, +0x04,0x04,0x00,0x61,0x01,0x05,0x02,0x00,0x00,0x42,0x00,0x4e,0x1b,0x40,0x1b,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x00,0x01,0x01,0x39,0x4d,0x00,0x04,0x04,0x00,0x61,0x05,0x01,0x00,0x00,0x42,0x00,0x4e,0x59,0x40,0x11,0x01,0x00,0x19,0x17,0x14,0x12,0x11,0x0f,0x0c,0x0b,0x00,0x1a,0x01,0x1a,0x06,0x09,0x16,0x2b,0x05, +0x22,0x26,0x27,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x23,0x13,0x27,0x26,0x23,0x23,0x35,0x33,0x32,0x17,0x13,0x16,0x33,0x33,0x15,0x02,0x1c,0x3a,0x50,0x11,0x48,0x07,0x0b,0x03,0x03,0x0c,0x08,0x7d,0x61,0xca,0x23,0x12,0x30,0x3c,0x4b,0x66,0x24,0xa9,0x11,0x35,0x28,0x05,0x37,0x34,0xea,0x19,0x2b,0x10,0x10,0x2c,0x14,0xfe,0xac, +0x02,0x04,0x5b,0x2d,0x53,0x6a,0xfe,0x09,0x31,0x52,0x00,0x00,0x00,0x03,0x00,0x2e,0x00,0x00,0x02,0x2a,0x02,0xda,0x00,0x07,0x00,0x0b,0x00,0x14,0x00,0x3a,0x40,0x37,0x11,0x01,0x06,0x05,0x01,0x4c,0x00,0x06,0x00,0x02,0x04,0x06,0x02,0x67,0x00,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x01,0x5f,0x07,0x03,0x02, +0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x09,0x19,0x2b,0x33,0x13,0x33,0x13,0x23,0x27,0x23,0x07,0x25,0x33,0x03,0x23,0x03,0x33,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x2e,0xaa,0xa8,0xaa,0x98,0x32,0xd4,0x32,0x01,0x5c,0x3e,0x98,0x3d,0x8a,0xc1,0x43,0x0c,0x0e,0x02, +0x02,0x10,0x0c,0x02,0xda,0xfd,0x26,0xd5,0xd5,0x28,0x02,0x8a,0xfe,0x4b,0x01,0x29,0x37,0x46,0x0d,0x0b,0x49,0x36,0x00,0x00,0x00,0x06,0x00,0x4b,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x0e,0x00,0x12,0x00,0x1c,0x00,0x23,0x00,0x2b,0x00,0x32,0x00,0x4d,0x40,0x4a,0x23,0x1d,0x18,0x17,0x04,0x04,0x03,0x08,0x01,0x07,0x04,0x32,0x2c,0x28, +0x27,0x04,0x02,0x07,0x03,0x4c,0x00,0x04,0x00,0x07,0x02,0x04,0x07,0x67,0x05,0x01,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x06,0x01,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x2b,0x29,0x26,0x24,0x1c,0x1a,0x15,0x13,0x12,0x11,0x10,0x0f,0x00,0x0e,0x00,0x0d,0x21,0x09,0x09,0x17,0x2b,0x33,0x11,0x33, +0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x11,0x23,0x13,0x33,0x32,0x36,0x37,0x11,0x26,0x26,0x23,0x23,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x03,0x33,0x32,0x37,0x11,0x26,0x23,0x23,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x4b,0xf2,0x5c,0x6c,0x3c,0x35,0x3e,0x45,0x74,0x63,0xcb,0x3c,0x3c,0x66,0x67,0x0d, +0x18,0x0a,0x0a,0x18,0x0d,0x67,0xbf,0x1f,0x22,0x22,0x1f,0xbf,0x6a,0x19,0x13,0x13,0x19,0x6a,0xbf,0x27,0x2c,0x2c,0x27,0x02,0xda,0x64,0x56,0x43,0x58,0x0e,0x0d,0x5c,0x47,0x5b,0x6c,0x28,0x02,0x8a,0xfe,0xd9,0x03,0x02,0x01,0x1d,0x02,0x03,0xfe,0xef,0x12,0x41,0x2b,0x2b,0x40,0x12,0xfd,0x8c,0x04,0x01,0x33,0x04,0xfe,0xd6,0x13,0x48, +0x32,0x32,0x47,0x13,0x00,0x02,0x00,0x4a,0xff,0xf6,0x02,0x0e,0x02,0xe4,0x00,0x19,0x00,0x21,0x00,0x4a,0x40,0x47,0x1b,0x10,0x02,0x02,0x03,0x1a,0x11,0x02,0x04,0x05,0x02,0x4c,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00, +0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x04,0x00,0x51,0x01,0x00,0x17,0x16,0x14,0x12,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x19,0x01,0x19,0x07,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x07,0x11,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x27,0x11,0x06,0x06,0x15,0x11,0x14,0x16, +0x01,0x2c,0x67,0x7b,0x7b,0x67,0x69,0x79,0x2a,0x62,0x56,0x2e,0x24,0x24,0x2e,0x56,0x62,0x2a,0x79,0xe5,0x1c,0x20,0x20,0x0a,0x77,0x65,0x01,0x36,0x65,0x77,0x77,0x65,0x53,0x61,0x0f,0xfd,0x80,0x0f,0x61,0x53,0x65,0x77,0x4f,0x02,0x50,0x18,0x47,0x2e,0xfe,0xca,0x2e,0x47,0x00,0x04,0x00,0x4b,0x00,0x00,0x02,0x0e,0x02,0xda,0x00,0x09, +0x00,0x0d,0x00,0x17,0x00,0x1f,0x00,0x36,0x40,0x33,0x1f,0x18,0x13,0x12,0x04,0x02,0x03,0x01,0x4c,0x05,0x01,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x04,0x01,0x02,0x02,0x01,0x5f,0x06,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x17,0x15,0x10,0x0e,0x0d,0x0c,0x0b,0x0a,0x00,0x09,0x00,0x08,0x21,0x07,0x09,0x17,0x2b,0x33,0x11, +0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x27,0x33,0x11,0x23,0x13,0x33,0x32,0x36,0x37,0x11,0x26,0x26,0x23,0x23,0x13,0x36,0x36,0x35,0x11,0x34,0x26,0x27,0x4b,0xdb,0x6b,0x7d,0x7d,0x6b,0xb1,0x3c,0x3c,0x66,0x4b,0x19,0x2c,0x13,0x13,0x2c,0x19,0x4b,0xcd,0x1d,0x1f,0x1f,0x1d,0x02,0xda,0x77,0x65,0xfe,0xde,0x65,0x77,0x28,0x02,0x8a, +0xfd,0x76,0x09,0x07,0x02,0x6a,0x08,0x08,0xfd,0x9f,0x17,0x47,0x2d,0x01,0x22,0x2d,0x47,0x17,0x00,0x00,0x00,0x02,0x00,0x55,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x0b,0x00,0x0f,0x00,0x35,0x40,0x32,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x07,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x06,0x01,0x04,0x04,0x05,0x5f,0x08, +0x01,0x05,0x05,0x39,0x05,0x4e,0x00,0x00,0x0f,0x0e,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x09,0x09,0x1b,0x2b,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x25,0x33,0x11,0x23,0x55,0x01,0xbd,0xfe,0xd5,0x01,0x08,0xfe,0xf8,0x01,0x2b,0xfe,0x6e,0x3c,0x3c,0x02,0xda,0x28,0xfe,0xdf,0x28,0xfe,0xbf, +0x28,0x28,0x02,0x8a,0x00,0x02,0x00,0x5a,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x09,0x00,0x0d,0x00,0x33,0x40,0x30,0x00,0x02,0x00,0x03,0x05,0x02,0x03,0x67,0x06,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x05,0x05,0x04,0x5f,0x07,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x0d,0x0c,0x0b,0x0a,0x00,0x09,0x00,0x09,0x11, +0x11,0x11,0x11,0x08,0x09,0x1a,0x2b,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x27,0x33,0x11,0x23,0x5a,0x01,0xbd,0xfe,0xd5,0x01,0x08,0xfe,0xf8,0x67,0x3c,0x3c,0x02,0xda,0x28,0xfe,0xdf,0x28,0xfe,0x97,0x28,0x02,0x8a,0x00,0x03,0x00,0x4a,0xff,0xf6,0x02,0x0e,0x02,0xe4,0x00,0x1c,0x00,0x24,0x00,0x2a,0x00,0x4f,0x40,0x4c, +0x1e,0x10,0x02,0x02,0x03,0x25,0x1d,0x15,0x11,0x04,0x04,0x05,0x02,0x4c,0x00,0x02,0x03,0x06,0x03,0x02,0x06,0x80,0x00,0x06,0x07,0x01,0x05,0x04,0x06,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x04,0x04,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x2a,0x29,0x19,0x18,0x17,0x16,0x14,0x12,0x0f, +0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1c,0x01,0x1c,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x07,0x11,0x16,0x33,0x32,0x37,0x11,0x23,0x35,0x33,0x15,0x14,0x06,0x27,0x11,0x06,0x06,0x15,0x11,0x14,0x16,0x05,0x36,0x36,0x35,0x35,0x23,0x01,0x2c,0x67,0x7b,0x7b,0x67,0x69,0x79, +0x2a,0x62,0x56,0x2e,0x24,0x24,0x2e,0x2e,0x24,0x50,0xe0,0x7a,0xe4,0x1c,0x20,0x20,0x01,0x14,0x1d,0x1f,0x3c,0x0a,0x77,0x65,0x01,0x36,0x65,0x77,0x77,0x65,0x53,0x61,0x0f,0xfd,0x80,0x0f,0x0f,0x01,0x1d,0x28,0xa0,0x65,0x77,0x4f,0x02,0x50,0x18,0x47,0x2e,0xfe,0xca,0x2e,0x47,0x18,0x18,0x47,0x2e,0x78,0x00,0x00,0x00,0x03,0x00,0x4b, +0x00,0x00,0x02,0x0d,0x02,0xda,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x3f,0x40,0x3c,0x02,0x01,0x00,0x09,0x01,0x07,0x01,0x00,0x07,0x67,0x00,0x01,0x00,0x04,0x06,0x01,0x04,0x67,0x08,0x01,0x06,0x03,0x03,0x06,0x57,0x08,0x01,0x06,0x06,0x03,0x5f,0x0a,0x05,0x02,0x03,0x06,0x03,0x4f,0x00,0x00,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c, +0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0b,0x06,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x27,0x33,0x11,0x23,0x01,0x33,0x11,0x23,0x4b,0x90,0xa2,0x90,0x90,0xa2,0x66,0x3c,0x3c,0x01,0x32,0x3c,0x3c,0x02,0xda,0xfe,0xb5,0x01,0x4b,0xfd,0x26,0x01,0x67,0xfe,0x99,0x28,0x02,0x8a,0xfd,0x76,0x02, +0x8a,0x00,0x00,0x00,0x00,0x02,0x00,0x50,0x00,0x00,0x02,0x08,0x02,0xda,0x00,0x0b,0x00,0x0f,0x00,0x2f,0x40,0x2c,0x07,0x03,0x02,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x06,0x04,0x02,0x00,0x00,0x05,0x5f,0x08,0x01,0x05,0x05,0x39,0x05,0x4e,0x00,0x00,0x0f,0x0e,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x09, +0x09,0x1b,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x33,0x15,0x27,0x33,0x11,0x23,0x50,0x95,0x95,0x01,0xb8,0x93,0x93,0xf9,0x3c,0x3c,0x28,0x02,0x8a,0x28,0x28,0xfd,0x76,0x28,0x28,0x02,0x8a,0x00,0x02,0x00,0x1b,0xff,0xf6,0x02,0x49,0x02,0xda,0x00,0x12,0x00,0x18,0x00,0x3f,0x40,0x3c,0x13,0x09,0x02,0x02,0x01,0x01, +0x4c,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x06,0x05,0x02,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x18,0x17,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00,0x12,0x01,0x12,0x08,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32, +0x37,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x14,0x06,0x37,0x36,0x36,0x35,0x11,0x23,0xff,0x69,0x7b,0x2a,0x65,0x55,0x30,0x24,0xa1,0x01,0x97,0x66,0x7b,0x15,0x1d,0x1f,0x3c,0x0a,0x77,0x65,0x53,0x61,0x0f,0x02,0x85,0x28,0x28,0xfe,0x20,0x65,0x77,0x50,0x17,0x47,0x2e,0x01,0xe0,0x00,0x00,0x00,0x00,0x03,0x00,0x4b,0x00,0x00,0x02,0x45, +0x02,0xda,0x00,0x0c,0x00,0x10,0x00,0x14,0x00,0x43,0x40,0x40,0x13,0x07,0x02,0x01,0x07,0x14,0x01,0x04,0x01,0x02,0x4c,0x00,0x01,0x00,0x04,0x06,0x01,0x04,0x67,0x00,0x07,0x07,0x00,0x5f,0x02,0x01,0x00,0x00,0x38,0x4d,0x08,0x01,0x06,0x06,0x03,0x60,0x09,0x05,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x12,0x11,0x10,0x0f,0x0e,0x0d, +0x00,0x0c,0x00,0x0c,0x11,0x12,0x11,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x13,0x33,0x07,0x13,0x23,0x03,0x23,0x11,0x27,0x33,0x11,0x23,0x01,0x33,0x03,0x07,0x4b,0x90,0x3a,0xe3,0x33,0xa1,0xbb,0xa0,0x7e,0x4c,0x66,0x3c,0x3c,0x01,0x50,0x42,0x99,0x29,0x02,0xda,0xfe,0xad,0x01,0x53,0xf0,0xfe,0x16,0x01,0x5f,0xfe, +0xa1,0x28,0x02,0x8a,0xfd,0x76,0x01,0x98,0x3d,0x00,0x00,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x05,0x00,0x09,0x00,0x29,0x40,0x26,0x00,0x04,0x04,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x03,0x01,0x01,0x01,0x02,0x5f,0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x09,0x08,0x07,0x06,0x00,0x05,0x00,0x05,0x11, +0x11,0x06,0x09,0x18,0x2b,0x33,0x11,0x33,0x11,0x21,0x15,0x25,0x33,0x11,0x23,0x64,0x90,0x01,0x32,0xfe,0x68,0x3c,0x3c,0x02,0xda,0xfd,0x4e,0x28,0x28,0x02,0x8a,0x00,0x00,0x03,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x14,0x00,0x18,0x00,0x1c,0x00,0x43,0x40,0x40,0x0f,0x0c,0x02,0x05,0x00,0x16,0x03,0x02,0x03,0x05,0x02,0x4c, +0x00,0x03,0x05,0x06,0x05,0x03,0x06,0x80,0x07,0x01,0x05,0x05,0x00,0x5f,0x01,0x01,0x00,0x00,0x38,0x4d,0x00,0x06,0x06,0x02,0x5f,0x08,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x00,0x14,0x00,0x14,0x16,0x11,0x12,0x11,0x09,0x09,0x1a,0x2b,0x33,0x11,0x33,0x17,0x37,0x33,0x11,0x23,0x11,0x34,0x36, +0x36,0x37,0x03,0x23,0x03,0x1e,0x02,0x15,0x11,0x13,0x37,0x27,0x23,0x01,0x33,0x11,0x23,0x32,0xad,0x50,0x4f,0xa8,0x90,0x02,0x02,0x01,0x88,0x32,0x8b,0x02,0x02,0x02,0x9f,0x20,0x57,0x40,0x01,0x3c,0x3c,0x3c,0x02,0xda,0xdf,0xdf,0xfd,0x26,0x01,0xb8,0x33,0x65,0x56,0x1b,0xfe,0x84,0x01,0x7c,0x1b,0x56,0x65,0x33,0xfe,0x48,0x01,0x68, +0x59,0xf1,0xfd,0x76,0x02,0x8a,0x00,0x00,0x00,0x02,0x00,0x5f,0x00,0x00,0x01,0xf9,0x02,0xda,0x00,0x0f,0x00,0x13,0x00,0x35,0x40,0x32,0x0b,0x03,0x02,0x04,0x05,0x01,0x4c,0x01,0x01,0x00,0x00,0x05,0x04,0x00,0x05,0x67,0x00,0x04,0x02,0x02,0x04,0x57,0x00,0x04,0x04,0x02,0x5f,0x06,0x03,0x02,0x02,0x04,0x02,0x4f,0x00,0x00,0x13,0x12, +0x11,0x10,0x00,0x0f,0x00,0x0f,0x11,0x15,0x11,0x07,0x06,0x19,0x2b,0x33,0x11,0x33,0x13,0x26,0x26,0x35,0x11,0x33,0x11,0x23,0x03,0x16,0x16,0x15,0x11,0x25,0x33,0x01,0x23,0x5f,0x7c,0xf9,0x03,0x02,0x2a,0x7e,0xf7,0x02,0x02,0x01,0x10,0x43,0xfe,0xe4,0x42,0x02,0xda,0xfd,0xc7,0x20,0x50,0x1b,0x01,0xae,0xfd,0x26,0x02,0x3a,0x21,0x4f, +0x1c,0xfe,0x52,0x27,0x02,0x8c,0x00,0x00,0x00,0x04,0x00,0x4a,0xff,0xf6,0x02,0x0e,0x02,0xe4,0x00,0x0d,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0x3a,0x40,0x37,0x27,0x20,0x19,0x18,0x16,0x15,0x11,0x10,0x08,0x02,0x03,0x01,0x4c,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f, +0x00,0x4e,0x0f,0x0e,0x01,0x00,0x14,0x12,0x0e,0x17,0x0f,0x17,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x37,0x11,0x26,0x23,0x22,0x07,0x11,0x16,0x27,0x11,0x06,0x06,0x15,0x11,0x14,0x16,0x05,0x36,0x36,0x35,0x11,0x34,0x26,0x27,0x01,0x2c, +0x68,0x7a,0x7a,0x68,0x68,0x7a,0x7a,0x68,0x2e,0x24,0x24,0x2e,0x2e,0x24,0x24,0x4e,0x1c,0x20,0x20,0x01,0x14,0x1d,0x1f,0x1f,0x1d,0x0a,0x77,0x65,0x01,0x36,0x65,0x77,0x77,0x65,0xfe,0xca,0x65,0x77,0x28,0x0f,0x02,0x80,0x0f,0x0f,0xfd,0x80,0x0f,0x27,0x02,0x50,0x17,0x48,0x2e,0xfe,0xca,0x2e,0x48,0x17,0x17,0x48,0x2e,0x01,0x36,0x2e, +0x48,0x17,0x00,0x00,0x00,0x04,0x00,0x4b,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0a,0x00,0x0e,0x00,0x16,0x00,0x1b,0x00,0x41,0x40,0x3e,0x1b,0x17,0x13,0x12,0x04,0x05,0x04,0x01,0x4c,0x00,0x00,0x06,0x01,0x04,0x05,0x00,0x04,0x67,0x00,0x05,0x00,0x01,0x03,0x05,0x01,0x67,0x00,0x03,0x02,0x02,0x03,0x57,0x00,0x03,0x03,0x02,0x5f,0x07, +0x01,0x02,0x03,0x02,0x4f,0x00,0x00,0x16,0x14,0x11,0x0f,0x0e,0x0d,0x0c,0x0b,0x00,0x0a,0x00,0x0a,0x24,0x21,0x08,0x06,0x18,0x2b,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x27,0x33,0x11,0x23,0x13,0x33,0x32,0x37,0x11,0x26,0x23,0x23,0x13,0x36,0x35,0x34,0x27,0x4b,0x01,0x09,0x60,0x72,0x73,0x5f,0x79,0x66,0x3c,0x3c, +0x66,0x79,0x1e,0x16,0x16,0x1e,0x79,0xd7,0x42,0x42,0x02,0xda,0x6e,0x5c,0x5c,0x6e,0xfe,0xba,0x28,0x02,0x8a,0xfe,0xbc,0x07,0x01,0x36,0x07,0xfe,0xd6,0x2c,0x5c,0x5e,0x2a,0x00,0x00,0x00,0x00,0x04,0x00,0x4a,0xff,0x4c,0x02,0x0e,0x02,0xe4,0x00,0x12,0x00,0x1c,0x00,0x24,0x00,0x2c,0x00,0x47,0x40,0x44,0x2c,0x25,0x1e,0x1d,0x1b,0x1a, +0x16,0x15,0x08,0x03,0x04,0x11,0x01,0x00,0x03,0x02,0x4c,0x05,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x69,0x06,0x01,0x03,0x00,0x00,0x03,0x59,0x06,0x01,0x03,0x03,0x00,0x61,0x00,0x00,0x03,0x00,0x51,0x14,0x13,0x00,0x00,0x19,0x17,0x13,0x1c,0x14,0x1c,0x00,0x12,0x00,0x12,0x25,0x22,0x07,0x06,0x18,0x2b,0x05, +0x27,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x17,0x27,0x32,0x37,0x11,0x26,0x23,0x22,0x07,0x11,0x16,0x27,0x11,0x06,0x06,0x15,0x11,0x14,0x16,0x05,0x36,0x36,0x35,0x11,0x34,0x26,0x27,0x01,0xc1,0x6a,0x13,0x18,0x67,0x7b,0x7b,0x67,0x67,0x7b,0x43,0x3e,0x71,0xd2,0x2e,0x24,0x24,0x2e,0x2e, +0x24,0x24,0x4e,0x1c,0x20,0x20,0x01,0x14,0x1d,0x1f,0x1f,0x1d,0xb4,0xad,0x03,0x77,0x65,0x01,0x36,0x65,0x77,0x77,0x65,0xfe,0xca,0x4b,0x6a,0x17,0xba,0xd2,0x0f,0x02,0x80,0x0f,0x0f,0xfd,0x80,0x0f,0x28,0x02,0x4e,0x17,0x47,0x2e,0xfe,0xca,0x2e,0x47,0x17,0x17,0x47,0x2e,0x01,0x36,0x2e,0x47,0x17,0x00,0x00,0x00,0x00,0x05,0x00,0x4b, +0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0d,0x00,0x11,0x00,0x19,0x00,0x20,0x00,0x26,0x00,0x4e,0x40,0x4b,0x1e,0x1d,0x16,0x15,0x04,0x06,0x05,0x08,0x01,0x02,0x06,0x02,0x4c,0x00,0x00,0x07,0x01,0x05,0x06,0x00,0x05,0x67,0x00,0x06,0x09,0x01,0x02,0x04,0x06,0x02,0x69,0x08,0x01,0x04,0x01,0x01,0x04,0x57,0x08,0x01,0x04,0x04,0x01,0x5f, +0x0a,0x03,0x02,0x01,0x04,0x01,0x4f,0x00,0x00,0x26,0x24,0x22,0x21,0x19,0x17,0x14,0x12,0x11,0x10,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x16,0x21,0x0b,0x06,0x19,0x2b,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x13,0x23,0x03,0x23,0x11,0x27,0x33,0x11,0x23,0x13,0x33,0x32,0x37,0x11,0x26,0x23,0x23,0x05,0x34,0x26,0x27,0x11,0x36, +0x36,0x03,0x33,0x03,0x06,0x23,0x23,0x4b,0x01,0x04,0x60,0x72,0x4e,0x44,0xab,0xa7,0x9e,0x1a,0x66,0x3c,0x3c,0x66,0x74,0x1e,0x1a,0x1a,0x1e,0x74,0x01,0x1c,0x25,0x21,0x20,0x26,0x46,0x43,0x8f,0x0b,0x0b,0x2d,0x02,0xda,0x6e,0x5c,0x4c,0x66,0x11,0xfe,0xb3,0x01,0x46,0xfe,0xba,0x28,0x02,0x8a,0xfe,0xbc,0x08,0x01,0x34,0x08,0xa2,0x2d, +0x45,0x15,0xfe,0xf2,0x15,0x46,0xfe,0x44,0x01,0x1f,0x01,0x00,0x00,0x02,0x00,0x41,0xff,0xf6,0x02,0x17,0x02,0xe4,0x00,0x27,0x00,0x41,0x00,0x3a,0x40,0x37,0x3f,0x01,0x03,0x04,0x32,0x01,0x01,0x00,0x02,0x4c,0x00,0x03,0x04,0x00,0x04,0x03,0x00,0x80,0x00,0x00,0x01,0x04,0x00,0x01,0x7e,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e, +0x4d,0x00,0x01,0x01,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x2b,0x22,0x12,0x2b,0x22,0x10,0x06,0x09,0x1c,0x2b,0x37,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x13,0x14, +0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x06,0x06,0x41,0x2a,0x61,0x52,0x3a,0x44,0x31,0x2b,0x6d,0x3e,0x49,0x81,0x6d,0x5c,0x6b,0x2a,0x57,0x4a,0x37,0x40,0x32,0x2b,0x6e,0x41,0x4c,0x86,0x73,0x66,0x77,0x35,0x3b,0x33,0x6d,0x36,0x3f,0x23,0x1f,0x31,0x39,0x3f, +0x35,0x6c,0x38,0x41,0x27,0x20,0x2f,0x37,0xc0,0x4a,0x57,0x4c,0x40,0x24,0x40,0x13,0x31,0x1c,0x67,0x3d,0x60,0x71,0x65,0x56,0x44,0x4f,0x3f,0x36,0x1f,0x39,0x13,0x31,0x1d,0x72,0x46,0x67,0x79,0x6d,0x01,0xb5,0x31,0x55,0x17,0x32,0x19,0x53,0x2f,0x2b,0x4a,0x14,0x12,0x5e,0x3e,0x3a,0x5f,0x17,0x30,0x19,0x4e,0x2a,0x29,0x3d,0x0b,0x0b, +0x54,0x00,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x07,0x00,0x0b,0x00,0x2b,0x40,0x28,0x05,0x02,0x02,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x00,0x04,0x04,0x03,0x5f,0x06,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x0b,0x0a,0x09,0x08,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x07,0x09,0x19,0x2b,0x33, +0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x27,0x33,0x11,0x23,0xe5,0xb3,0x01,0xf4,0xb1,0x66,0x3c,0x3c,0x02,0xb2,0x28,0x28,0xfd,0x4e,0x28,0x02,0x8a,0x00,0x02,0x00,0x4a,0xff,0xf6,0x02,0x0e,0x02,0xda,0x00,0x10,0x00,0x16,0x00,0x32,0x40,0x2f,0x11,0x06,0x02,0x02,0x04,0x01,0x4c,0x00,0x04,0x04,0x01,0x5f,0x03,0x01,0x01,0x01,0x38,0x4d, +0x00,0x02,0x02,0x00,0x61,0x05,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x13,0x12,0x0d,0x0c,0x09,0x07,0x05,0x04,0x00,0x10,0x01,0x10,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x27,0x11,0x23,0x11,0x14,0x16,0x01,0x2c,0x67,0x7b,0x90,0x24,0x2e,0x56,0x62,0x2a,0x7a, +0xe4,0x3c,0x20,0x0a,0x77,0x65,0x02,0x08,0xfd,0x53,0x0f,0x61,0x53,0x02,0x08,0xfd,0xf8,0x65,0x77,0x4f,0x02,0x6d,0xfe,0x20,0x2e,0x47,0x00,0x00,0x00,0x02,0x00,0x2e,0x00,0x00,0x02,0x2a,0x02,0xda,0x00,0x0c,0x00,0x10,0x00,0x2f,0x40,0x2c,0x06,0x01,0x03,0x04,0x01,0x4c,0x00,0x04,0x04,0x00,0x5f,0x01,0x01,0x00,0x00,0x38,0x4d,0x00, +0x03,0x03,0x02,0x5f,0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x10,0x0f,0x0e,0x0d,0x00,0x0c,0x00,0x0c,0x18,0x11,0x06,0x09,0x18,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x27,0x33,0x03,0x23,0xdd,0xaf,0x98,0x7f,0x0d,0x0e,0x01,0x02,0x0f,0x0d,0x7f,0x2c,0xaf,0x7b,0x3d,0x9a,0x3e,0x02,0xda,0xfd, +0xe4,0x37,0x42,0x11,0x11,0x43,0x36,0x02,0x1c,0xfd,0x26,0x28,0x02,0x8a,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0xda,0x00,0x1f,0x00,0x23,0x00,0x2d,0x00,0x3a,0x40,0x37,0x2d,0x29,0x1a,0x0f,0x06,0x05,0x05,0x06,0x01,0x4c,0x00,0x06,0x06,0x00,0x5f,0x02,0x01,0x02,0x00,0x00,0x38,0x4d,0x07,0x01,0x05,0x05,0x03,0x60, +0x08,0x04,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x25,0x24,0x23,0x22,0x21,0x20,0x00,0x1f,0x00,0x1f,0x11,0x18,0x18,0x11,0x09,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x23,0x27,0x26,0x26,0x35,0x23,0x06,0x06,0x07,0x07,0x27,0x33,0x03,0x23, +0x01,0x33,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x59,0x59,0x92,0x45,0x04,0x01,0x03,0x05,0x04,0x04,0x56,0x38,0x5f,0x05,0x04,0x03,0x04,0x02,0x03,0x40,0x2a,0x5d,0x8e,0x28,0x08,0x0d,0x02,0x02,0x0b,0x08,0x30,0x69,0x3c,0x51,0x3c,0x01,0x5f,0x3e,0x59,0x07,0x09,0x04,0x04,0x0b,0x05,0x08,0x02,0xda,0xfd,0xe4,0x1b,0x25,0x22,0x22, +0x25,0x1b,0x02,0x1c,0xfd,0xe4,0x1b,0x25,0x22,0x22,0x25,0x1b,0x02,0x1c,0xfd,0x26,0xd5,0x2e,0x65,0x21,0x28,0x66,0x26,0xd5,0x27,0x02,0x8c,0xfd,0x74,0x01,0xeb,0x27,0x46,0x1e,0x1c,0x48,0x27,0x3b,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0b,0x00,0x0f,0x00,0x34,0x40,0x31,0x0a,0x07,0x04,0x01,0x04,0x04, +0x05,0x01,0x4c,0x00,0x05,0x05,0x00,0x5f,0x01,0x01,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x02,0x60,0x06,0x03,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x0f,0x0e,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x12,0x12,0x12,0x07,0x09,0x19,0x2b,0x33,0x13,0x03,0x33,0x13,0x13,0x33,0x03,0x13,0x23,0x03,0x03,0x25,0x33,0x01,0x23,0x22,0xcb,0xcf,0xa9, +0x85,0xa2,0x31,0xbd,0xd8,0xa9,0x8e,0xb1,0x01,0x5c,0x46,0xfe,0xb6,0x45,0x01,0x43,0x01,0x97,0xfe,0xfb,0x01,0x05,0xfe,0xcf,0xfe,0x57,0x01,0x17,0xfe,0xe9,0x28,0x02,0x8a,0x00,0x00,0x00,0x00,0x02,0x00,0x14,0x00,0x00,0x02,0x44,0x02,0xda,0x00,0x0e,0x00,0x14,0x00,0x33,0x40,0x30,0x14,0x11,0x0d,0x07,0x01,0x05,0x03,0x04,0x01,0x4c, +0x00,0x04,0x04,0x00,0x5f,0x01,0x01,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x02,0x5f,0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x13,0x12,0x10,0x0f,0x00,0x0e,0x00,0x0e,0x18,0x12,0x06,0x09,0x18,0x2b,0x33,0x11,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x11,0x27,0x33,0x35,0x03,0x23,0x13,0xe6,0xd2,0xa2,0x92, +0x0a,0x0f,0x03,0x03,0x12,0x0a,0x92,0x2f,0xce,0x66,0x3c,0xb4,0x42,0xba,0x01,0x04,0x01,0xd6,0xfe,0xba,0x16,0x2a,0x0a,0x0b,0x2c,0x16,0x01,0x43,0xfe,0x45,0xfe,0xe1,0x28,0xf7,0x01,0x93,0xfe,0x60,0x00,0x00,0x00,0x02,0x00,0x46,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x09,0x00,0x0d,0x00,0x3c,0x40,0x39,0x06,0x01,0x02,0x02,0x00,0x01, +0x4c,0x00,0x01,0x04,0x01,0x00,0x02,0x01,0x00,0x67,0x07,0x05,0x02,0x02,0x03,0x03,0x02,0x57,0x07,0x05,0x02,0x02,0x02,0x03,0x5f,0x06,0x01,0x03,0x02,0x03,0x4f,0x0a,0x0a,0x00,0x00,0x0a,0x0d,0x0a,0x0d,0x0c,0x0b,0x00,0x09,0x00,0x09,0x12,0x11,0x12,0x08,0x06,0x19,0x2b,0x33,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x25,0x01, +0x23,0x01,0x46,0x01,0x2e,0xfe,0xdc,0x01,0xbd,0xfe,0xd2,0x01,0x33,0xfe,0xa0,0x01,0x30,0x41,0xfe,0xd0,0x2c,0x02,0x86,0x28,0x2c,0xfd,0x7a,0x28,0x28,0x02,0x8a,0xfd,0x76,0x00,0x00,0x00,0x00,0x04,0x00,0x36,0xff,0xf6,0x02,0x10,0x02,0x30,0x00,0x1a,0x00,0x23,0x00,0x2d,0x00,0x32,0x00,0xb2,0x4b,0xb0,0x18,0x50,0x58,0x40,0x11,0x20, +0x01,0x02,0x04,0x2f,0x2e,0x2b,0x18,0x04,0x06,0x08,0x2c,0x01,0x00,0x06,0x03,0x4c,0x1b,0x40,0x11,0x20,0x01,0x02,0x04,0x2f,0x2e,0x2b,0x18,0x04,0x06,0x08,0x2c,0x01,0x07,0x06,0x03,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x29,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x08,0x06,0x01,0x08,0x67,0x00,0x02,0x02,0x04, +0x61,0x00,0x04,0x04,0x41,0x4d,0x0a,0x07,0x02,0x06,0x06,0x00,0x61,0x05,0x09,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x31,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x08,0x06,0x01,0x08,0x67,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x06,0x06,0x05,0x5f,0x00,0x05,0x05,0x39,0x4d,0x0a,0x01,0x07,0x07, +0x00,0x61,0x09,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1d,0x25,0x24,0x01,0x00,0x2a,0x28,0x24,0x2d,0x25,0x2d,0x1c,0x1b,0x17,0x16,0x13,0x11,0x0f,0x0e,0x0c,0x0a,0x07,0x05,0x00,0x1a,0x01,0x1a,0x0b,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15, +0x11,0x23,0x35,0x06,0x06,0x37,0x33,0x11,0x34,0x26,0x27,0x16,0x16,0x15,0x03,0x32,0x36,0x35,0x35,0x23,0x22,0x07,0x15,0x16,0x27,0x35,0x06,0x15,0x14,0xe7,0x52,0x5f,0x5e,0x52,0x9a,0x44,0x3b,0x39,0x49,0x03,0x2a,0x03,0x68,0x67,0x73,0x79,0x90,0x10,0x50,0x8a,0x3c,0x4a,0x44,0x26,0x2c,0xc0,0x45,0x51,0x9a,0x11,0x0f,0x11,0x3b,0x3c, +0x0a,0x5a,0x4d,0x4b,0x57,0x38,0x44,0x4a,0x45,0x3a,0x4a,0x60,0x5f,0x5a,0xfe,0x89,0x53,0x2b,0x32,0x32,0x01,0x4f,0x3e,0x4e,0x0a,0x10,0x51,0x35,0xfe,0xa7,0x4a,0x3f,0x70,0x03,0xf3,0x03,0x11,0xd8,0x20,0x4a,0x4e,0x00,0x00,0x00,0x00,0x04,0x00,0x4b,0xff,0xf6,0x02,0x17,0x02,0xda,0x00,0x11,0x00,0x15,0x00,0x23,0x00,0x2a,0x00,0x9e, +0x4b,0xb0,0x18,0x50,0x58,0x40,0x0e,0x2a,0x24,0x1a,0x08,0x03,0x05,0x04,0x07,0x19,0x01,0x00,0x04,0x02,0x4c,0x1b,0x40,0x0e,0x2a,0x24,0x1a,0x08,0x03,0x05,0x04,0x07,0x19,0x01,0x06,0x04,0x02,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x00,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x07,0x07,0x03,0x61,0x00,0x03,0x03, +0x41,0x4d,0x09,0x06,0x02,0x04,0x04,0x00,0x61,0x01,0x08,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x2b,0x00,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x07,0x07,0x03,0x61,0x00,0x03,0x03,0x41,0x4d,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x01,0x39,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59, +0x40,0x1b,0x17,0x16,0x01,0x00,0x1e,0x1c,0x16,0x23,0x17,0x23,0x15,0x14,0x13,0x12,0x0c,0x0a,0x07,0x06,0x05,0x04,0x00,0x11,0x01,0x11,0x0a,0x09,0x16,0x2b,0x05,0x22,0x26,0x27,0x15,0x23,0x11,0x33,0x11,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x25,0x33,0x11,0x23,0x13,0x32,0x36,0x37,0x11,0x26,0x26,0x23,0x22,0x06,0x15,0x15, +0x14,0x16,0x37,0x36,0x35,0x35,0x34,0x26,0x27,0x01,0x6e,0x37,0x4c,0x10,0x90,0x90,0x10,0x4c,0x37,0x4e,0x5b,0x5b,0xfe,0xb9,0x3c,0x3c,0xef,0x09,0x12,0x08,0x08,0x12,0x09,0x3f,0x4a,0x4a,0x8c,0x3c,0x1f,0x1d,0x0a,0x30,0x2a,0x50,0x02,0xda,0xfe,0xfc,0x2a,0x30,0x6c,0x5c,0xab,0x5b,0x6c,0x32,0x02,0x8a,0xfd,0x6c,0x02,0x02,0x01,0xe2, +0x02,0x02,0x56,0x4a,0xab,0x49,0x56,0x16,0x29,0x60,0xab,0x2f,0x47,0x14,0x00,0x00,0x00,0x02,0x00,0x4b,0xff,0xf6,0x02,0x0d,0x02,0x30,0x00,0x19,0x00,0x21,0x00,0x47,0x40,0x44,0x1b,0x10,0x02,0x02,0x03,0x1a,0x11,0x02,0x04,0x05,0x02,0x4c,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x00,0x03,0x03, +0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x17,0x16,0x14,0x12,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x19,0x01,0x19,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x07,0x11,0x16,0x33,0x32,0x36,0x35,0x33,0x14, +0x06,0x27,0x11,0x06,0x06,0x15,0x15,0x14,0x16,0x01,0x2f,0x69,0x7b,0x7b,0x69,0x66,0x78,0x2a,0x61,0x53,0x2f,0x25,0x25,0x2f,0x53,0x61,0x2a,0x78,0xe4,0x1c,0x20,0x20,0x0a,0x71,0x60,0x97,0x61,0x71,0x71,0x61,0x4e,0x5c,0x0e,0xfe,0x32,0x0e,0x5b,0x4e,0x60,0x71,0x4d,0x01,0x9f,0x16,0x43,0x2b,0x97,0x2b,0x42,0x00,0x00,0x04,0x00,0x41, +0xff,0xf6,0x02,0x0d,0x02,0xda,0x00,0x11,0x00,0x15,0x00,0x23,0x00,0x2a,0x00,0x9e,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0e,0x25,0x24,0x20,0x0f,0x0a,0x05,0x04,0x07,0x21,0x01,0x00,0x04,0x02,0x4c,0x1b,0x40,0x0e,0x25,0x24,0x20,0x0f,0x0a,0x05,0x04,0x07,0x21,0x01,0x06,0x04,0x02,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x00,0x05, +0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x09,0x06,0x02,0x04,0x04,0x00,0x61,0x03,0x08,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x2b,0x00,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03, +0x39,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1b,0x17,0x16,0x01,0x00,0x1e,0x1c,0x16,0x23,0x17,0x23,0x15,0x14,0x13,0x12,0x0e,0x0d,0x0c,0x0b,0x08,0x06,0x00,0x11,0x01,0x11,0x0a,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x11,0x33,0x11,0x23,0x35,0x06,0x06, +0x37,0x33,0x11,0x23,0x03,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x16,0x16,0x27,0x11,0x06,0x06,0x15,0x15,0x14,0xea,0x4e,0x5b,0x5b,0x4e,0x37,0x4c,0x10,0x90,0x90,0x10,0x4c,0x86,0x3c,0x3c,0xb3,0x3f,0x4a,0x4a,0x3f,0x09,0x12,0x08,0x08,0x12,0x44,0x1c,0x20,0x0a,0x6c,0x5b,0xab,0x5c,0x6c,0x30,0x2a,0x01,0x04,0xfd, +0x26,0x50,0x2a,0x30,0x32,0x02,0x8a,0xfd,0x6c,0x56,0x49,0xab,0x4a,0x56,0x02,0x02,0xfe,0x1e,0x02,0x02,0x16,0x01,0xbe,0x14,0x47,0x2f,0xab,0x60,0x00,0x04,0x00,0x46,0xff,0xf6,0x02,0x12,0x02,0x30,0x00,0x15,0x00,0x1c,0x00,0x22,0x00,0x2a,0x00,0x4f,0x40,0x4c,0x24,0x22,0x1c,0x18,0x04,0x05,0x06,0x23,0x0d,0x02,0x03,0x04,0x02,0x4c, +0x00,0x04,0x02,0x03,0x02,0x04,0x03,0x80,0x07,0x01,0x05,0x00,0x02,0x04,0x05,0x02,0x67,0x00,0x06,0x06,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x1e,0x1d,0x1b,0x19,0x17,0x16,0x13,0x12,0x10,0x0e,0x0c,0x0b,0x08,0x06,0x00,0x15,0x01,0x15,0x09,0x09,0x16,0x2b,0x05, +0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x21,0x15,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x03,0x33,0x35,0x26,0x23,0x22,0x07,0x17,0x33,0x35,0x34,0x26,0x27,0x01,0x11,0x06,0x06,0x15,0x15,0x14,0x16,0x01,0x2e,0x6b,0x7d,0x7d,0x6b,0x69,0x7b,0xfe,0xc4,0x26,0x32,0x53,0x64,0x03,0x2a,0x03,0x7b,0xbe,0xac,0x25,0x2f, +0x32,0x26,0xd6,0x3c,0x1f,0x1d,0xff,0x00,0x1c,0x20,0x20,0x0a,0x71,0x60,0x97,0x61,0x71,0x71,0x61,0x5a,0xd7,0x0f,0x56,0x49,0x5b,0x6c,0x01,0x36,0xce,0x0e,0x0f,0xcd,0x32,0x2b,0x43,0x16,0xfe,0x62,0x01,0x9d,0x16,0x42,0x2b,0x97,0x2b,0x42,0x00,0x00,0x00,0x02,0x00,0x41,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x14,0x00,0x1a,0x00,0x40, +0x40,0x3d,0x17,0x01,0x02,0x04,0x01,0x4c,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x06,0x01,0x01,0x01,0x02,0x5f,0x05,0x01,0x02,0x02,0x3b,0x4d,0x09,0x07,0x02,0x00,0x00,0x08,0x5f,0x0a,0x01,0x08,0x08,0x39,0x08,0x4e,0x00,0x00,0x16,0x15,0x00,0x14,0x00,0x14,0x11,0x11,0x11,0x11,0x23,0x11,0x11,0x11,0x0b,0x09,0x1e,0x2b, +0x33,0x35,0x33,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x25,0x33,0x11,0x06,0x06,0x15,0x41,0x8d,0x8d,0x8d,0x3d,0x3d,0xca,0xb4,0xb4,0xb4,0xb4,0xfe,0xe6,0x3c,0x1d,0x1f,0x28,0x01,0xd6,0x28,0x37,0x3b,0x42,0x28,0x8c,0x28,0xfe,0x2a,0x28,0x28,0x02,0x89,0x04,0x2f,0x21,0x00,0x00, +0x00,0x04,0x00,0x41,0xff,0x4c,0x02,0x0d,0x02,0x30,0x00,0x19,0x00,0x25,0x00,0x2a,0x00,0x32,0x00,0x9f,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0f,0x2c,0x2b,0x24,0x23,0x13,0x06,0x06,0x05,0x06,0x26,0x01,0x00,0x01,0x02,0x4c,0x1b,0x40,0x12,0x23,0x01,0x07,0x06,0x2c,0x2b,0x24,0x13,0x06,0x05,0x05,0x07,0x26,0x01,0x00,0x01,0x03,0x4c,0x59, +0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x07,0x01,0x06,0x06,0x02,0x61,0x03,0x01,0x02,0x02,0x41,0x4d,0x09,0x01,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x00,0x00,0x04,0x5f,0x08,0x01,0x04,0x04,0x3d,0x04,0x4e,0x1b,0x40,0x2b,0x00,0x06,0x06,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x00,0x07,0x07,0x03,0x5f,0x00,0x03,0x03,0x3b, +0x4d,0x09,0x01,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x00,0x00,0x04,0x5f,0x08,0x01,0x04,0x04,0x3d,0x04,0x4e,0x59,0x40,0x17,0x1b,0x1a,0x00,0x00,0x2a,0x29,0x22,0x20,0x1a,0x25,0x1b,0x25,0x00,0x19,0x00,0x18,0x13,0x25,0x24,0x31,0x0a,0x09,0x1a,0x2b,0x17,0x35,0x33,0x32,0x32,0x37,0x35,0x06,0x06,0x23,0x22,0x26,0x35, +0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x35,0x33,0x11,0x14,0x06,0x23,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x07,0x11,0x16,0x17,0x36,0x35,0x11,0x23,0x01,0x11,0x06,0x06,0x15,0x15,0x14,0x16,0x6d,0xfd,0x05,0x0a,0x04,0x10,0x4a,0x37,0x4f,0x5c,0x5c,0x4f,0x37,0x4a,0x10,0x90,0x58,0x4b,0x74,0x40,0x47,0x47,0x40,0x15,0x10,0x10, +0xc6,0x3c,0x3c,0xff,0x00,0x1c,0x20,0x20,0xb4,0x28,0x01,0xd8,0x29,0x2e,0x6c,0x5b,0xab,0x5c,0x6c,0x2e,0x29,0x4d,0xfd,0xcb,0x4c,0x59,0xd2,0x56,0x49,0xab,0x4a,0x56,0x04,0xfe,0x1e,0x04,0x9c,0x1e,0x51,0x02,0x0d,0xfe,0x37,0x01,0xbc,0x14,0x46,0x2f,0xab,0x2f,0x45,0x00,0x00,0x03,0x00,0x4b,0x00,0x00,0x02,0x10,0x02,0xda,0x00,0x12, +0x00,0x16,0x00,0x1b,0x00,0x40,0x40,0x3d,0x1b,0x0c,0x03,0x03,0x05,0x03,0x01,0x4c,0x00,0x06,0x06,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x05,0x05,0x02,0x5f,0x08,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x18,0x17,0x16,0x15,0x14,0x13,0x00,0x12,0x00,0x12,0x22,0x13, +0x23,0x11,0x09,0x09,0x1a,0x2b,0x33,0x11,0x33,0x11,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x26,0x23,0x22,0x06,0x15,0x11,0x27,0x33,0x11,0x23,0x01,0x33,0x11,0x34,0x27,0x4b,0x90,0x11,0x48,0x34,0x4d,0x5b,0x90,0x0f,0x13,0x3d,0x46,0x66,0x3c,0x3c,0x01,0x35,0x3c,0x3c,0x02,0xda,0xfe,0xfe,0x2a,0x2e,0x6c,0x5c,0xfe,0x98,0x02, +0x04,0x04,0x56,0x4a,0xfe,0x98,0x28,0x02,0x8a,0xfd,0x76,0x01,0x40,0x60,0x29,0x00,0x00,0x04,0x00,0x41,0x00,0x00,0x02,0x26,0x03,0x19,0x00,0x0b,0x00,0x17,0x00,0x21,0x00,0x25,0x00,0x8b,0x4b,0xb0,0x11,0x50,0x58,0x40,0x2d,0x0c,0x01,0x02,0x0b,0x01,0x00,0x06,0x02,0x00,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x40,0x4d,0x0a, +0x01,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3b,0x4d,0x09,0x07,0x02,0x04,0x04,0x08,0x5f,0x0d,0x01,0x08,0x08,0x39,0x08,0x4e,0x1b,0x40,0x2b,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x0c,0x01,0x02,0x0b,0x01,0x00,0x06,0x02,0x00,0x69,0x0a,0x01,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3b,0x4d,0x09,0x07,0x02,0x04,0x04,0x08,0x5f,0x0d, +0x01,0x08,0x08,0x39,0x08,0x4e,0x59,0x40,0x25,0x18,0x18,0x0d,0x0c,0x01,0x00,0x25,0x24,0x23,0x22,0x18,0x21,0x18,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0e,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34, +0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x35,0x33,0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x25,0x33,0x11,0x23,0x01,0x3b,0x29,0x31,0x31,0x29,0x29,0x31,0x31,0x29,0x17,0x1b,0x1b,0x17,0x17,0x1b,0x1b,0xe3,0xb3,0x9a,0x01,0x2a,0xa2,0xfe,0xf8,0x3c,0x3c,0x02,0x7d,0x2a,0x24,0x24,0x2a,0x2a,0x24,0x24,0x2a,0x23,0x18,0x13,0x14,0x17,0x17, +0x14,0x13,0x18,0xfd,0x60,0x28,0x01,0xd6,0x28,0xfe,0x02,0x28,0x28,0x01,0xd6,0x00,0x00,0x04,0x00,0x4b,0xff,0x4c,0x01,0xbd,0x03,0x19,0x00,0x0b,0x00,0x17,0x00,0x24,0x00,0x29,0x00,0x8b,0xb6,0x25,0x1c,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x2b,0x0a,0x01,0x02,0x09,0x01,0x00,0x06,0x02,0x00,0x69,0x00,0x03,0x03, +0x01,0x61,0x00,0x01,0x01,0x40,0x4d,0x08,0x01,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3b,0x4d,0x00,0x04,0x04,0x07,0x5f,0x0b,0x01,0x07,0x07,0x3d,0x07,0x4e,0x1b,0x40,0x29,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x0a,0x01,0x02,0x09,0x01,0x00,0x06,0x02,0x00,0x69,0x08,0x01,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3b,0x4d,0x00,0x04, +0x04,0x07,0x5f,0x0b,0x01,0x07,0x07,0x3d,0x07,0x4e,0x59,0x40,0x21,0x18,0x18,0x0d,0x0c,0x01,0x00,0x29,0x28,0x18,0x24,0x18,0x23,0x20,0x1f,0x1e,0x1d,0x1b,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34, +0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x35,0x33,0x32,0x37,0x11,0x23,0x35,0x21,0x11,0x14,0x06,0x23,0x37,0x36,0x35,0x11,0x23,0x01,0x63,0x29,0x31,0x31,0x29,0x29,0x31,0x31,0x29,0x17,0x1b,0x1b,0x17,0x17,0x1b,0x1b,0xfe,0xff,0x9f,0x1c,0x16,0xbd,0x01,0x4d,0x66,0x5c,0x5c,0x3c,0x3c,0x02,0x7d,0x2a,0x24,0x24,0x2a,0x2a,0x24,0x24, +0x2a,0x23,0x18,0x13,0x14,0x17,0x17,0x14,0x13,0x18,0xfc,0xac,0x28,0x06,0x02,0x84,0x28,0xfd,0xe4,0x59,0x65,0x40,0x26,0x58,0x01,0xf4,0x00,0x00,0x00,0x03,0x00,0x4b,0x00,0x00,0x02,0x32,0x02,0xda,0x00,0x0c,0x00,0x10,0x00,0x14,0x00,0x47,0x40,0x44,0x13,0x07,0x02,0x01,0x02,0x14,0x01,0x04,0x01,0x02,0x4c,0x00,0x01,0x00,0x04,0x06, +0x01,0x04,0x67,0x00,0x07,0x07,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x02,0x02,0x3b,0x4d,0x08,0x01,0x06,0x06,0x03,0x60,0x09,0x05,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x00,0x0c,0x00,0x0c,0x11,0x12,0x11,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x37,0x33,0x07,0x13,0x23,0x03, +0x23,0x11,0x27,0x33,0x11,0x23,0x01,0x33,0x03,0x07,0x4b,0x90,0x37,0xd6,0x3e,0x99,0xa5,0xa8,0x67,0x48,0x66,0x3c,0x3c,0x01,0x36,0x44,0x82,0x2a,0x02,0xda,0xfe,0x51,0xfb,0xaf,0xfe,0x89,0x01,0x03,0xfe,0xfd,0x28,0x02,0x8a,0xfd,0x76,0x01,0x2a,0x2f,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0a,0x00,0x0f,0x00,0x31, +0x40,0x2e,0x0b,0x01,0x03,0x01,0x01,0x4c,0x04,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x03,0x03,0x00,0x5f,0x05,0x01,0x00,0x00,0x39,0x00,0x4e,0x01,0x00,0x0d,0x0c,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x0a,0x01,0x0a,0x06,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x27,0x11,0x23,0x11, +0x14,0x01,0x6a,0x43,0x49,0xac,0x01,0x3d,0xb7,0xe1,0x3c,0x47,0x40,0x02,0x26,0x2d,0xfd,0x53,0x2d,0x30,0x02,0x7d,0xfd,0xda,0x48,0x00,0x00,0x00,0x00,0x04,0x00,0x0f,0x00,0x00,0x02,0x49,0x02,0x30,0x00,0x1c,0x00,0x22,0x00,0x28,0x00,0x2c,0x00,0xc1,0x4b,0xb0,0x1a,0x50,0x58,0x40,0x0e,0x28,0x22,0x09,0x03,0x04,0x07,0x05,0x01,0x4c, +0x12,0x01,0x05,0x01,0x4b,0x1b,0x40,0x11,0x28,0x22,0x02,0x0a,0x05,0x09,0x03,0x02,0x07,0x0a,0x02,0x4c,0x12,0x01,0x05,0x01,0x4b,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x0a,0x01,0x05,0x05,0x00,0x61,0x02,0x01,0x02,0x00,0x00,0x3b,0x4d,0x09,0x08,0x02,0x07,0x07,0x03,0x60,0x0b,0x06,0x04,0x03,0x03,0x03,0x39,0x03,0x4e,0x1b,0x4b, +0xb0,0x1a,0x50,0x58,0x40,0x27,0x0a,0x01,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x0a,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x3b,0x4d,0x09,0x08,0x02,0x07,0x07,0x03,0x60,0x0b,0x06,0x04,0x03,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x25,0x00,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x00,0x0a,0x0a,0x00,0x5f, +0x00,0x00,0x00,0x3b,0x4d,0x09,0x08,0x02,0x07,0x07,0x03,0x60,0x0b,0x06,0x04,0x03,0x03,0x03,0x39,0x03,0x4e,0x59,0x59,0x40,0x17,0x00,0x00,0x2c,0x2b,0x2a,0x29,0x24,0x23,0x1e,0x1d,0x00,0x1c,0x00,0x1c,0x11,0x15,0x13,0x24,0x23,0x11,0x0c,0x09,0x1c,0x2b,0x33,0x11,0x33,0x15,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16, +0x15,0x11,0x23,0x11,0x06,0x06,0x15,0x11,0x23,0x11,0x06,0x06,0x15,0x11,0x25,0x33,0x11,0x34,0x26,0x27,0x03,0x33,0x11,0x34,0x26,0x27,0x03,0x33,0x11,0x23,0x0f,0x8c,0x07,0x34,0x29,0x26,0x38,0x0a,0x06,0x39,0x2d,0x36,0x40,0x8e,0x24,0x2a,0x82,0x24,0x2a,0x01,0x46,0x3c,0x20,0x1c,0xd0,0x32,0x1b,0x17,0xda,0x3c,0x3c,0x02,0x26,0x42, +0x23,0x29,0x2a,0x24,0x24,0x2a,0x46,0x3b,0xfe,0x51,0x02,0x07,0x04,0x32,0x28,0xfe,0x57,0x02,0x08,0x02,0x34,0x29,0xfe,0x57,0x28,0x01,0x81,0x23,0x31,0x07,0xfe,0x24,0x01,0x81,0x21,0x2e,0x0a,0xfe,0x26,0x01,0xd6,0x00,0x00,0x00,0x00,0x03,0x00,0x4b,0x00,0x00,0x02,0x10,0x02,0x30,0x00,0x12,0x00,0x16,0x00,0x1b,0x00,0x7a,0x4b,0xb0, +0x18,0x50,0x58,0xb7,0x1b,0x0c,0x03,0x03,0x05,0x03,0x01,0x4c,0x1b,0x40,0x0b,0x0c,0x01,0x06,0x03,0x1b,0x03,0x02,0x05,0x06,0x02,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1a,0x06,0x01,0x03,0x03,0x00,0x61,0x01,0x01,0x00,0x00,0x3b,0x4d,0x07,0x01,0x05,0x05,0x02,0x5f,0x08,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x1b,0x40,0x22,0x00, +0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x06,0x06,0x00,0x5f,0x00,0x00,0x00,0x3b,0x4d,0x07,0x01,0x05,0x05,0x02,0x5f,0x08,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x59,0x40,0x13,0x00,0x00,0x18,0x17,0x16,0x15,0x14,0x13,0x00,0x12,0x00,0x12,0x22,0x13,0x23,0x11,0x09,0x09,0x1a,0x2b,0x33,0x11,0x33,0x15,0x36,0x36,0x33,0x32, +0x16,0x15,0x11,0x23,0x11,0x26,0x23,0x22,0x06,0x15,0x11,0x27,0x33,0x11,0x23,0x01,0x33,0x11,0x34,0x27,0x4b,0x90,0x11,0x48,0x34,0x4d,0x5b,0x90,0x0f,0x13,0x3d,0x46,0x66,0x3c,0x3c,0x01,0x35,0x3c,0x3c,0x02,0x26,0x4b,0x29,0x2c,0x6c,0x5c,0xfe,0x98,0x02,0x04,0x04,0x56,0x4a,0xfe,0x98,0x28,0x01,0xd6,0xfe,0x2a,0x01,0x40,0x60,0x29, +0x00,0x04,0x00,0x46,0xff,0xf6,0x02,0x12,0x02,0x30,0x00,0x0d,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0x3a,0x40,0x37,0x27,0x20,0x19,0x18,0x16,0x15,0x11,0x10,0x08,0x02,0x03,0x01,0x4c,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x0f,0x0e,0x01,0x00,0x14,0x12, +0x0e,0x17,0x0f,0x17,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x37,0x11,0x26,0x23,0x22,0x07,0x11,0x16,0x27,0x11,0x06,0x06,0x15,0x15,0x14,0x16,0x05,0x36,0x36,0x35,0x35,0x34,0x26,0x27,0x01,0x2c,0x6a,0x7c,0x7c,0x6a,0x6a,0x7c,0x7c,0x6a, +0x31,0x25,0x25,0x31,0x30,0x26,0x26,0x50,0x1c,0x20,0x20,0x01,0x1c,0x1d,0x1f,0x1f,0x1d,0x0a,0x71,0x60,0x97,0x61,0x71,0x71,0x61,0x97,0x60,0x71,0x28,0x0f,0x01,0xcc,0x0f,0x0f,0xfe,0x34,0x0f,0x26,0x01,0x9e,0x16,0x43,0x2b,0x97,0x2b,0x42,0x16,0x16,0x42,0x2b,0x97,0x2b,0x43,0x16,0x00,0x00,0x00,0x04,0x00,0x4b,0xff,0x4c,0x02,0x17, +0x02,0x30,0x00,0x11,0x00,0x1f,0x00,0x23,0x00,0x2a,0x00,0x98,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0b,0x2a,0x24,0x16,0x15,0x10,0x03,0x06,0x04,0x05,0x01,0x4c,0x1b,0x40,0x0e,0x16,0x01,0x07,0x05,0x2a,0x24,0x15,0x10,0x03,0x05,0x04,0x07,0x02,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x07,0x01,0x05,0x05,0x00,0x61,0x01,0x01,0x00, +0x00,0x3b,0x4d,0x09,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f,0x4d,0x00,0x06,0x06,0x03,0x5f,0x08,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x2b,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x07,0x07,0x00,0x5f,0x00,0x00,0x00,0x3b,0x4d,0x09,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f,0x4d,0x00,0x06,0x06,0x03, +0x5f,0x08,0x01,0x03,0x03,0x3d,0x03,0x4e,0x59,0x40,0x18,0x13,0x12,0x00,0x00,0x23,0x22,0x21,0x20,0x1a,0x18,0x12,0x1f,0x13,0x1f,0x00,0x11,0x00,0x11,0x25,0x23,0x11,0x0a,0x09,0x19,0x2b,0x17,0x11,0x33,0x15,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x11,0x37,0x32,0x36,0x37,0x11,0x26,0x26,0x23,0x22,0x06, +0x15,0x15,0x14,0x16,0x07,0x33,0x11,0x23,0x01,0x36,0x36,0x35,0x35,0x34,0x27,0x4b,0x90,0x10,0x4c,0x37,0x4e,0x5b,0x5b,0x4e,0x37,0x4c,0x10,0x89,0x09,0x12,0x08,0x08,0x12,0x09,0x3f,0x4a,0x4a,0xb0,0x3c,0x3c,0x01,0x3c,0x1d,0x1f,0x3c,0xb4,0x02,0xda,0x50,0x2a,0x30,0x6b,0x5c,0xab,0x5c,0x6c,0x30,0x2a,0xfe,0xfc,0xd2,0x02,0x02,0x01, +0xe2,0x02,0x02,0x55,0x4a,0xab,0x49,0x57,0xaa,0x02,0x8a,0xfe,0x36,0x14,0x47,0x2f,0xab,0x60,0x29,0x00,0x00,0x04,0x00,0x41,0xff,0x4c,0x02,0x0d,0x02,0x30,0x00,0x11,0x00,0x1f,0x00,0x23,0x00,0x2a,0x00,0x98,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0b,0x25,0x24,0x1d,0x1c,0x0e,0x01,0x06,0x04,0x05,0x01,0x4c,0x1b,0x40,0x0e,0x1c,0x01,0x07, +0x05,0x25,0x24,0x1d,0x0e,0x01,0x05,0x04,0x07,0x02,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x07,0x01,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x09,0x01,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x3f,0x4d,0x00,0x06,0x06,0x03,0x5f,0x08,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x2b,0x00,0x05,0x05,0x01,0x61,0x00,0x01, +0x01,0x41,0x4d,0x00,0x07,0x07,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x09,0x01,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x3f,0x4d,0x00,0x06,0x06,0x03,0x5f,0x08,0x01,0x03,0x03,0x3d,0x03,0x4e,0x59,0x40,0x18,0x13,0x12,0x00,0x00,0x23,0x22,0x21,0x20,0x1a,0x18,0x12,0x1f,0x13,0x1f,0x00,0x11,0x00,0x11,0x13,0x25,0x23,0x0a,0x09,0x19,0x2b, +0x05,0x11,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x35,0x33,0x11,0x25,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x16,0x16,0x17,0x33,0x11,0x23,0x01,0x11,0x06,0x15,0x15,0x14,0x16,0x01,0x7d,0x10,0x4c,0x37,0x4e,0x5b,0x5b,0x4e,0x37,0x4c,0x10,0x90,0xfe,0xe7,0x3f,0x4a,0x4a,0x3f,0x09,0x12, +0x08,0x08,0x12,0xbc,0x3c,0x3c,0xff,0x00,0x3c,0x20,0xb4,0x01,0x04,0x2a,0x30,0x6c,0x5c,0xab,0x5c,0x6b,0x30,0x2a,0x50,0xfd,0x26,0xd2,0x57,0x49,0xab,0x4a,0x55,0x02,0x02,0xfe,0x1e,0x02,0x02,0xaa,0x02,0x8a,0xfe,0x36,0x01,0xbe,0x29,0x60,0xab,0x2f,0x47,0x00,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x02,0x30,0x02,0x30,0x00,0x19, +0x00,0x1d,0x00,0x77,0xb5,0x07,0x01,0x04,0x01,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x00,0x04,0x01,0x00,0x01,0x04,0x00,0x80,0x09,0x05,0x02,0x01,0x01,0x02,0x61,0x03,0x01,0x02,0x02,0x3b,0x4d,0x08,0x06,0x02,0x00,0x00,0x07,0x5f,0x0a,0x01,0x07,0x07,0x39,0x07,0x4e,0x1b,0x40,0x2b,0x00,0x04,0x01,0x00,0x01,0x04,0x00,0x80, +0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x41,0x4d,0x09,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x08,0x06,0x02,0x00,0x00,0x07,0x5f,0x0a,0x01,0x07,0x07,0x39,0x07,0x4e,0x59,0x40,0x14,0x00,0x00,0x1d,0x1c,0x1b,0x1a,0x00,0x19,0x00,0x19,0x13,0x23,0x13,0x23,0x11,0x11,0x11,0x0b,0x09,0x1d,0x2b,0x33,0x35,0x33,0x11,0x23, +0x35,0x33,0x15,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x33,0x15,0x27,0x33,0x11,0x23,0x2d,0x5f,0x5f,0xef,0x0f,0x40,0x2f,0x4e,0x48,0x2a,0x35,0x3f,0x3b,0x3b,0x78,0xde,0x3c,0x3c,0x28,0x01,0xd6,0x28,0x48,0x27,0x2b,0x6c,0x5c,0x23,0x23,0x4a,0x56,0x56,0x4a,0xfe,0xc0,0x28,0x28,0x01,0xd6, +0x00,0x02,0x00,0x4b,0xff,0xf6,0x02,0x0d,0x02,0x30,0x00,0x27,0x00,0x41,0x00,0x3b,0x40,0x38,0x3f,0x01,0x04,0x02,0x01,0x4c,0x32,0x01,0x01,0x01,0x4b,0x00,0x03,0x04,0x00,0x04,0x03,0x00,0x80,0x00,0x00,0x01,0x04,0x00,0x01,0x7e,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x00,0x01,0x01,0x05,0x61,0x00,0x05,0x05,0x3f,0x05, +0x4e,0x2b,0x22,0x12,0x2b,0x22,0x10,0x06,0x09,0x1c,0x2b,0x37,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x13,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x36,0x36, +0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x06,0x06,0x4b,0x2a,0x05,0x5b,0x48,0x34,0x3c,0x22,0x1d,0x8f,0x33,0x3b,0x77,0x65,0x56,0x6f,0x0a,0x2a,0x09,0x4f,0x39,0x34,0x3c,0x1e,0x19,0x86,0x3b,0x44,0x7c,0x6b,0x60,0x76,0x2b,0x2b,0x25,0x90,0x2b,0x31,0x1d,0x17,0x2c,0x34,0x35,0x2d,0x85,0x27,0x2e,0x21,0x1a,0x2e,0x39, +0x8f,0x34,0x3c,0x2d,0x26,0x1c,0x2a,0x09,0x2b,0x0f,0x52,0x37,0x50,0x5c,0x4b,0x41,0x2f,0x35,0x2d,0x26,0x18,0x25,0x08,0x27,0x11,0x5c,0x3d,0x4e,0x5b,0x53,0x01,0x42,0x2b,0x3f,0x0b,0x2b,0x0d,0x3c,0x26,0x1f,0x32,0x0c,0x09,0x42,0x2f,0x30,0x49,0x0d,0x27,0x0b,0x37,0x24,0x1d,0x34,0x0d,0x0a,0x44,0x00,0x00,0x00,0x00,0x03,0x00,0x37, +0x00,0x00,0x02,0x12,0x02,0xc1,0x00,0x10,0x00,0x14,0x00,0x1a,0x00,0x46,0x40,0x43,0x15,0x01,0x06,0x01,0x01,0x4c,0x00,0x03,0x00,0x08,0x02,0x03,0x08,0x67,0x09,0x05,0x02,0x01,0x01,0x02,0x5f,0x07,0x04,0x02,0x02,0x02,0x3b,0x4d,0x00,0x06,0x06,0x00,0x5f,0x0a,0x01,0x00,0x00,0x39,0x00,0x4e,0x01,0x00,0x17,0x16,0x14,0x13,0x12,0x11, +0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x10,0x01,0x10,0x0b,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x01,0x33,0x35,0x23,0x13,0x11,0x23,0x11,0x14,0x16,0x01,0x3b,0x3f,0x3b,0x8a,0x8a,0x90,0xc1,0xc1,0xbc,0xfe,0xde,0x3c,0x3c,0x3c,0x3c,0x1f, +0x40,0x3d,0x01,0x81,0x28,0x9b,0x9b,0x28,0xfe,0x2a,0x28,0x02,0x26,0x73,0xfd,0x91,0x01,0xd4,0xfe,0x7f,0x22,0x2c,0x00,0x00,0x00,0x02,0x00,0x50,0xff,0xf6,0x02,0x08,0x02,0x26,0x00,0x10,0x00,0x16,0x00,0x32,0x40,0x2f,0x11,0x06,0x02,0x02,0x04,0x01,0x4c,0x00,0x04,0x04,0x01,0x5f,0x03,0x01,0x01,0x01,0x3b,0x4d,0x00,0x02,0x02,0x00, +0x61,0x05,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x13,0x12,0x0d,0x0c,0x09,0x07,0x05,0x04,0x00,0x10,0x01,0x10,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x27,0x11,0x23,0x11,0x14,0x16,0x01,0x2d,0x66,0x77,0x90,0x24,0x29,0x52,0x5f,0x2a,0x76,0xdc,0x3c,0x20,0x0a, +0x77,0x65,0x01,0x54,0xfe,0x06,0x0e,0x61,0x53,0x01,0x54,0xfe,0xac,0x65,0x77,0x4e,0x01,0xba,0xfe,0xd4,0x2e,0x49,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x02,0x2b,0x02,0x26,0x00,0x0c,0x00,0x10,0x00,0x2f,0x40,0x2c,0x06,0x01,0x03,0x04,0x01,0x4c,0x00,0x04,0x04,0x00,0x5f,0x01,0x01,0x00,0x00,0x3b,0x4d,0x00,0x03,0x03,0x02,0x5f, +0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x10,0x0f,0x0e,0x0d,0x00,0x0c,0x00,0x0c,0x18,0x11,0x06,0x09,0x18,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x27,0x33,0x03,0x23,0xdc,0xaf,0x99,0x76,0x11,0x14,0x02,0x02,0x15,0x10,0x75,0x2c,0xae,0x81,0x3e,0x94,0x3f,0x02,0x26,0xfe,0x8e,0x35,0x48,0x0b, +0x0b,0x49,0x34,0x01,0x72,0xfd,0xda,0x28,0x01,0xd6,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x26,0x00,0x21,0x00,0x25,0x00,0x30,0x00,0x39,0x40,0x36,0x30,0x2b,0x10,0x06,0x04,0x05,0x06,0x01,0x4c,0x00,0x06,0x06,0x00,0x5f,0x02,0x01,0x02,0x00,0x00,0x3b,0x4d,0x07,0x01,0x05,0x05,0x03,0x60,0x08,0x04,0x02,0x03,0x03, +0x39,0x03,0x4e,0x00,0x00,0x27,0x26,0x25,0x24,0x23,0x22,0x00,0x21,0x00,0x21,0x11,0x1a,0x19,0x11,0x09,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x3e,0x02,0x37,0x13,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x26,0x36,0x37,0x13,0x33,0x03,0x23,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x27,0x33,0x03,0x23,0x01,0x33,0x03,0x26, +0x26,0x27,0x23,0x06,0x06,0x07,0x07,0x62,0x62,0x92,0x49,0x04,0x05,0x02,0x01,0x03,0x06,0x04,0x4c,0x34,0x5f,0x05,0x06,0x02,0x03,0x01,0x02,0x01,0x03,0x44,0x2e,0x61,0x98,0x24,0x04,0x0b,0x02,0x01,0x09,0x05,0x20,0x75,0x3d,0x55,0x3d,0x01,0x50,0x3d,0x50,0x06,0x0b,0x02,0x02,0x02,0x0c,0x05,0x0b,0x02,0x26,0xfe,0x71,0x16,0x21,0x15, +0x0e,0x10,0x17,0x16,0x01,0x90,0xfe,0x70,0x16,0x20,0x15,0x14,0x10,0x09,0x0e,0x11,0x01,0x8f,0xfd,0xda,0xa2,0x12,0x41,0x1e,0x16,0x43,0x18,0xa2,0x28,0x01,0xd6,0xfe,0x2a,0x01,0x5f,0x1b,0x43,0x16,0x16,0x43,0x1b,0x3a,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x3a,0x02,0x26,0x00,0x0b,0x00,0x0f,0x00,0x34,0x40,0x31,0x0a,0x07, +0x04,0x01,0x04,0x04,0x05,0x01,0x4c,0x00,0x05,0x05,0x00,0x5f,0x01,0x01,0x00,0x00,0x3b,0x4d,0x00,0x04,0x04,0x02,0x60,0x06,0x03,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x0f,0x0e,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x12,0x12,0x12,0x07,0x09,0x19,0x2b,0x33,0x37,0x03,0x33,0x17,0x37,0x33,0x07,0x13,0x23,0x27,0x07,0x25,0x33,0x01,0x23, +0x3a,0xb2,0xce,0xb2,0x7e,0x8b,0x35,0xa9,0xd5,0xb2,0x84,0x94,0x01,0x30,0x4a,0xfe,0xcc,0x48,0xed,0x01,0x39,0xbf,0xbf,0xe3,0xfe,0xbd,0xc8,0xc8,0x28,0x01,0xd6,0x00,0x00,0x02,0x00,0x2d,0xff,0x4c,0x02,0x2b,0x02,0x26,0x00,0x0f,0x00,0x19,0x00,0x31,0x40,0x2e,0x13,0x10,0x09,0x06,0x04,0x00,0x04,0x01,0x4c,0x00,0x04,0x04,0x01,0x5f, +0x02,0x01,0x01,0x01,0x3b,0x4d,0x00,0x00,0x00,0x03,0x61,0x05,0x01,0x03,0x03,0x3d,0x03,0x4e,0x00,0x00,0x15,0x14,0x00,0x0f,0x00,0x0e,0x12,0x14,0x21,0x06,0x09,0x19,0x2b,0x17,0x35,0x33,0x32,0x36,0x37,0x37,0x03,0x33,0x13,0x13,0x33,0x01,0x06,0x06,0x23,0x37,0x36,0x36,0x37,0x03,0x23,0x13,0x1e,0x02,0x4f,0x2b,0x2f,0x3d,0x13,0x1e, +0xea,0x9f,0x99,0x98,0x2e,0xfe,0xf1,0x18,0x54,0x36,0xb4,0x05,0x10,0x0a,0x9e,0x42,0x8e,0x08,0x14,0x13,0xb4,0x28,0x31,0x2b,0x44,0x02,0x12,0xfe,0xa5,0x01,0x5b,0xfd,0x9b,0x36,0x3f,0xf9,0x0c,0x2c,0x18,0x01,0x69,0xfe,0xb7,0x12,0x2c,0x27,0x00,0x00,0x00,0x02,0x00,0x46,0x00,0x00,0x02,0x12,0x02,0x26,0x00,0x09,0x00,0x0d,0x00,0x32, +0x40,0x2f,0x06,0x01,0x02,0x02,0x00,0x01,0x4c,0x05,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x3b,0x4d,0x04,0x01,0x02,0x02,0x03,0x5f,0x06,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x0d,0x0c,0x0b,0x0a,0x00,0x09,0x00,0x09,0x12,0x11,0x12,0x07,0x09,0x19,0x2b,0x33,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x25,0x33,0x01,0x23, +0x46,0x01,0x1e,0xfe,0xeb,0x01,0xb6,0xfe,0xe4,0x01,0x29,0xfe,0x62,0x47,0x01,0x1d,0x46,0x29,0x01,0xd5,0x28,0x2a,0xfe,0x2c,0x28,0x28,0x01,0xd6,0x00,0x03,0x00,0x50,0xff,0xf6,0x02,0x08,0x02,0xe4,0x00,0x0e,0x00,0x1c,0x00,0x28,0x00,0x3e,0x40,0x3b,0x00,0x05,0x08,0x01,0x04,0x02,0x05,0x04,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01, +0x01,0x3e,0x4d,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x1e,0x1d,0x10,0x0f,0x01,0x00,0x24,0x22,0x1d,0x28,0x1e,0x28,0x17,0x15,0x0f,0x1c,0x10,0x1c,0x08,0x06,0x00,0x0e,0x01,0x0e,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x06,0x27,0x32,0x36,0x35,0x11, +0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x65,0x77,0x77,0x65,0x65,0x77,0x36,0x63,0x43,0x3c,0x49,0x49,0x3c,0x3c,0x49,0x49,0x3c,0x1b,0x21,0x21,0x1b,0x1b,0x21,0x21,0x0a,0x75,0x62,0x01,0x40,0x62,0x75,0x75,0x62,0xfe,0xc0,0x41,0x61,0x35,0x4d,0x4d,0x3d, +0x01,0x40,0x3d,0x4d,0x4d,0x3d,0xfe,0xc0,0x3d,0x4d,0xf3,0x1e,0x1c,0x1b,0x1d,0x1d,0x1b,0x1c,0x1e,0x00,0x00,0x01,0x00,0x5a,0x00,0x00,0x02,0x1c,0x02,0xda,0x00,0x0a,0x00,0x29,0x40,0x26,0x05,0x04,0x03,0x03,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0x38,0x4d,0x02,0x01,0x00,0x00,0x03,0x60,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00, +0x00,0x0a,0x00,0x0a,0x11,0x14,0x11,0x05,0x09,0x19,0x2b,0x33,0x35,0x33,0x11,0x07,0x35,0x37,0x33,0x11,0x33,0x15,0x5a,0xc6,0xc6,0xa5,0x7b,0xa2,0x52,0x02,0x3a,0x94,0x67,0x7b,0xfd,0x78,0x52,0x00,0x00,0x00,0x00,0x01,0x00,0x4c,0x00,0x00,0x02,0x0f,0x02,0xe4,0x00,0x18,0x00,0x34,0x40,0x31,0x01,0x01,0x03,0x01,0x01,0x4c,0x00,0x01, +0x00,0x03,0x00,0x01,0x03,0x80,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x18,0x00,0x18,0x16,0x22,0x12,0x27,0x06,0x09,0x1a,0x2b,0x33,0x35,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07, +0x07,0x21,0x15,0x56,0xf3,0x35,0x2c,0x45,0x3b,0x3d,0x47,0x5a,0x03,0x78,0x63,0x65,0x77,0x39,0x45,0xc5,0x01,0x4c,0x53,0x01,0x04,0x38,0x58,0x2a,0x3c,0x47,0x49,0x3e,0x63,0x74,0x72,0x62,0x34,0x74,0x48,0xce,0x52,0x00,0x00,0x00,0x00,0x01,0x00,0x46,0xff,0xf6,0x01,0xfe,0x02,0xda,0x00,0x1c,0x00,0x43,0x40,0x40,0x16,0x15,0x10,0x03, +0x03,0x04,0x01,0x4c,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x01,0x02,0x04,0x01,0x02,0x7e,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x05,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x14,0x13,0x12,0x11,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x1c,0x01,0x1c,0x07,0x09,0x16,0x2b,0x05,0x22,0x26, +0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0x35,0x37,0x21,0x35,0x21,0x15,0x07,0x16,0x16,0x15,0x15,0x14,0x06,0x01,0x21,0x65,0x76,0x5a,0x46,0x3c,0x3c,0x46,0x46,0x3c,0x4f,0xb3,0xfe,0xd4,0x01,0x92,0xb0,0x5a,0x68,0x77,0x0a,0x71,0x61,0x3c,0x46,0x46,0x3c,0x32,0x3c,0x46,0x4e,0xbe,0x52,0x54,0xbb,0x07,0x6f, +0x5b,0x32,0x61,0x71,0x00,0x01,0x00,0x46,0x00,0x00,0x01,0xea,0x02,0xda,0x00,0x0b,0x00,0x30,0x40,0x2d,0x06,0x03,0x02,0x02,0x03,0x01,0x4c,0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x68,0x00,0x01,0x01,0x38,0x4d,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x12,0x12,0x11,0x06,0x09, +0x1a,0x2b,0x21,0x35,0x21,0x35,0x01,0x33,0x01,0x15,0x33,0x35,0x33,0x11,0x01,0x90,0xfe,0xb6,0x01,0x0a,0x66,0xfe,0xea,0xf0,0x5a,0xa0,0x8d,0x01,0xad,0xfe,0x3f,0x27,0xb2,0xfe,0x5c,0x00,0x00,0x01,0x00,0x4b,0xff,0xf6,0x02,0x03,0x02,0xda,0x00,0x1b,0x00,0x3e,0x40,0x3b,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x06,0x00,0x03, +0x01,0x06,0x03,0x67,0x00,0x05,0x05,0x04,0x5f,0x00,0x04,0x04,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x16,0x14,0x13,0x12,0x11,0x10,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x1b,0x01,0x1b,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23, +0x11,0x21,0x15,0x21,0x17,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x01,0x26,0x65,0x76,0x5a,0x46,0x3c,0x3c,0x46,0x44,0x3a,0xc7,0x01,0x85,0xfe,0xcf,0x02,0x76,0x65,0x6e,0x77,0x0a,0x71,0x61,0x3c,0x46,0x46,0x3c,0x2d,0x3c,0x46,0x01,0x63,0x52,0xbf,0x6f,0x65,0x2d,0x61,0x71,0x00,0x02,0x00,0x40,0xff,0xf6,0x02,0x18,0x02,0xda,0x00,0x15, +0x00,0x21,0x00,0x38,0x40,0x35,0x0a,0x01,0x04,0x02,0x01,0x4c,0x00,0x02,0x00,0x04,0x03,0x02,0x04,0x6a,0x00,0x01,0x01,0x38,0x4d,0x06,0x01,0x03,0x03,0x00,0x61,0x05,0x01,0x00,0x00,0x3f,0x00,0x4e,0x17,0x16,0x01,0x00,0x1d,0x1b,0x16,0x21,0x17,0x21,0x0f,0x0d,0x09,0x08,0x00,0x15,0x01,0x15,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x26, +0x35,0x34,0x36,0x37,0x13,0x33,0x03,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2d,0x46,0x6b,0x3c,0x24,0x1f,0xa9,0x64,0xb4,0x03,0x0d,0x34,0x1f,0x41,0x61,0x37,0x3c,0x69,0x47,0x41,0x51,0x51,0x41,0x41,0x51,0x51,0x0a,0x3b,0x69,0x45,0x30,0x65,0x37, +0x01,0x2f,0xfe,0xc7,0x02,0x11,0x12,0x39,0x64,0x42,0x46,0x6b,0x3c,0x50,0x56,0x45,0x45,0x56,0x56,0x45,0x45,0x56,0x00,0x00,0x00,0x01,0x00,0x52,0x00,0x00,0x02,0x22,0x02,0xda,0x00,0x08,0x00,0x52,0xb5,0x07,0x01,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x18,0x00,0x01,0x00,0x03,0x00,0x01,0x72,0x00,0x00,0x00,0x02,0x5f, +0x00,0x02,0x02,0x38,0x4d,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x19,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x59,0x40,0x0c,0x00,0x00,0x00,0x08,0x00,0x08,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x33,0x01,0x21,0x15,0x23,0x35,0x21,0x15, +0x01,0xbe,0x01,0x04,0xfe,0xea,0x5a,0x01,0xd0,0xfe,0xfe,0x02,0x88,0x76,0xc8,0x54,0xfd,0x7a,0x00,0x00,0x00,0x03,0x00,0x42,0xff,0xf6,0x02,0x16,0x02,0xe4,0x00,0x1d,0x00,0x29,0x00,0x35,0x00,0x45,0x40,0x42,0x16,0x07,0x02,0x05,0x02,0x01,0x4c,0x07,0x01,0x02,0x00,0x05,0x04,0x02,0x05,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01, +0x3e,0x4d,0x08,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x2b,0x2a,0x1f,0x1e,0x01,0x00,0x31,0x2f,0x2a,0x35,0x2b,0x35,0x25,0x23,0x1e,0x29,0x1f,0x29,0x10,0x0e,0x00,0x1d,0x01,0x1d,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14, +0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x45,0x6a,0x3b,0x4f,0x42,0x39,0x44,0x36,0x61,0x3f,0x40,0x60,0x36,0x44,0x39,0x42,0x4f,0x3b,0x69,0x46,0x38,0x44,0x44,0x38,0x37,0x45,0x45,0x37,0x40, +0x50,0x50,0x40,0x40,0x50,0x50,0x0a,0x36,0x61,0x3f,0x45,0x64,0x0b,0x03,0x0d,0x59,0x3a,0x39,0x57,0x31,0x31,0x57,0x39,0x3a,0x59,0x0d,0x03,0x0b,0x64,0x45,0x3f,0x61,0x36,0x01,0xb0,0x42,0x35,0x35,0x42,0x42,0x35,0x35,0x42,0xfe,0xa1,0x4b,0x3c,0x3d,0x4b,0x4b,0x3d,0x3c,0x4b,0x00,0x00,0x00,0x00,0x02,0x00,0x40,0x00,0x00,0x02,0x18, +0x02,0xe4,0x00,0x15,0x00,0x21,0x00,0x36,0x40,0x33,0x01,0x01,0x00,0x03,0x01,0x4c,0x06,0x01,0x03,0x00,0x00,0x02,0x03,0x00,0x69,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x17,0x16,0x00,0x00,0x1d,0x1b,0x16,0x21,0x17,0x21,0x00,0x15,0x00,0x15,0x26,0x24,0x07,0x09,0x18,0x2b,0x33,0x13, +0x27,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x03,0x11,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xc3,0xb4,0x03,0x0a,0x36,0x20,0x3f,0x5f,0x36,0x3c,0x6a,0x45,0x47,0x6a,0x3c,0x24,0x1f,0xa9,0x41,0x51,0x51,0x41,0x41,0x51,0x51,0x01,0x39,0x02,0x10,0x13,0x39,0x64, +0x42,0x47,0x6a,0x3c,0x3b,0x69,0x45,0x30,0x65,0x37,0xfe,0xd1,0x01,0x5e,0x56,0x45,0x45,0x56,0x56,0x45,0x45,0x56,0x00,0x00,0x00,0x03,0x00,0x50,0xff,0xf6,0x02,0x08,0x02,0xe4,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x36,0x40,0x33,0x1c,0x1b,0x11,0x10,0x04,0x03,0x02,0x01,0x4c,0x00,0x02,0x02,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x05, +0x01,0x03,0x03,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x18,0x17,0x01,0x00,0x17,0x1e,0x18,0x1e,0x15,0x13,0x08,0x06,0x00,0x0e,0x01,0x0e,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x06,0x03,0x11,0x01,0x26,0x26,0x23,0x22,0x06,0x13,0x32,0x36,0x35,0x11,0x01,0x16,0x16,0x01, +0x2c,0x65,0x77,0x77,0x65,0x65,0x77,0x36,0x63,0xc8,0x01,0x05,0x0b,0x44,0x31,0x3c,0x49,0x85,0x3c,0x49,0xfe,0xfb,0x0b,0x44,0x0a,0x75,0x62,0x01,0x40,0x62,0x75,0x75,0x62,0xfe,0xc0,0x41,0x61,0x35,0x02,0x17,0xfe,0xec,0x01,0x3c,0x2d,0x35,0x4d,0xfd,0xf9,0x4d,0x3d,0x01,0x14,0xfe,0xc4,0x2d,0x35,0x00,0x00,0x00,0x00,0x01,0x00,0x58, +0x00,0x00,0x02,0x13,0x02,0xe4,0x00,0x22,0x00,0x2e,0x40,0x2b,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x22,0x00,0x22,0x1b,0x23,0x12,0x2b,0x06,0x09,0x1a,0x2b,0x33,0x35,0x34,0x36,0x36,0x37,0x37,0x36, +0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x3e,0x02,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x07,0x06,0x06,0x15,0x15,0x21,0x15,0x59,0x2b,0x4a,0x2d,0x64,0x28,0x2f,0x48,0x3a,0x3a,0x48,0x5a,0x02,0x39,0x62,0x3f,0x42,0x64,0x38,0x4a,0x40,0x66,0x2b,0x44,0x01,0x60,0x80,0x34,0x57,0x42,0x13,0x2b,0x11,0x48,0x29,0x3c,0x4b,0x4b, +0x3c,0x40,0x60,0x37,0x37,0x60,0x40,0x44,0x72,0x1c,0x2c,0x13,0x4c,0x35,0x29,0x52,0x00,0x02,0x00,0x55,0xff,0xf6,0x02,0x11,0x02,0xe4,0x00,0x1b,0x00,0x29,0x00,0x49,0x40,0x46,0x12,0x01,0x05,0x06,0x01,0x4c,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01, +0x3e,0x4d,0x08,0x01,0x05,0x05,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x1d,0x1c,0x01,0x00,0x24,0x22,0x1c,0x29,0x1d,0x29,0x16,0x14,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1b,0x01,0x1b,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x36,0x36,0x33,0x32, +0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x34,0x67,0x78,0x76,0x65,0x5b,0x72,0x07,0x5a,0x05,0x43,0x33,0x3b,0x45,0x0b,0x4f,0x3d,0x5e,0x6d,0x77,0x67,0x3d,0x47,0x47,0x3d,0x3d,0x47,0x47,0x0a,0x74,0x63,0x01,0x40,0x63,0x74,0x59,0x47,0x22,0x2e,0x49,0x3e,0xa5,0x30,0x37, +0x74,0x63,0x2b,0x63,0x74,0x50,0x49,0x3e,0x2b,0x3e,0x49,0x49,0x3e,0x2b,0x3e,0x49,0x00,0x02,0x00,0x49,0xff,0xf6,0x02,0x03,0x02,0xe4,0x00,0x1b,0x00,0x29,0x00,0x49,0x40,0x46,0x0b,0x01,0x05,0x06,0x01,0x4c,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x08,0x01,0x05,0x00,0x03,0x01,0x05,0x03,0x69,0x00,0x06,0x06,0x04,0x61,0x00,0x04, +0x04,0x3e,0x4d,0x00,0x02,0x02,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x1d,0x1c,0x01,0x00,0x24,0x22,0x1c,0x29,0x1d,0x29,0x16,0x14,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x1b,0x01,0x1b,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32, +0x16,0x15,0x11,0x14,0x06,0x03,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x28,0x5b,0x72,0x07,0x5a,0x05,0x43,0x33,0x3b,0x45,0x0a,0x4e,0x3e,0x5e,0x6c,0x76,0x66,0x67,0x77,0x76,0x67,0x3d,0x46,0x46,0x3d,0x3d,0x46,0x46,0x0a,0x5b,0x4a,0x25,0x30,0x49,0x3e,0xb8,0x32,0x39,0x74,0x63,0x1c,0x63,0x74,0x74, +0x63,0xfe,0xc0,0x63,0x74,0x01,0x74,0x49,0x3e,0x1c,0x3e,0x49,0x49,0x3e,0x1c,0x3e,0x49,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0xff,0xf6,0x02,0x16,0x02,0xe5,0x00,0x1b,0x00,0x29,0x00,0x37,0x00,0x36,0x40,0x33,0x31,0x1d,0x15,0x07,0x04,0x03,0x02,0x01,0x4c,0x00,0x02,0x02,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x05,0x01,0x03,0x03,0x00, +0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x2b,0x2a,0x01,0x00,0x2a,0x37,0x2b,0x37,0x25,0x23,0x0f,0x0d,0x00,0x1b,0x01,0x1b,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x17,0x37,0x36,0x36,0x35,0x34,0x26, +0x23,0x22,0x06,0x15,0x14,0x16,0x13,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x07,0x06,0x06,0x15,0x14,0x16,0x01,0x2c,0x46,0x6a,0x3a,0x4f,0x42,0x41,0x40,0x39,0x62,0x3f,0x3f,0x63,0x38,0x40,0x41,0x42,0x4f,0x3a,0x69,0x64,0x1d,0x19,0x2f,0x3a,0x48,0x3a,0x3a,0x48,0x38,0x4a,0x42,0x50,0x36,0x31,0x2b,0x2e,0x30,0x34,0x50,0x0a,0x31,0x57, +0x39,0x3e,0x6b,0x1e,0x20,0x59,0x33,0x37,0x54,0x30,0x30,0x54,0x37,0x32,0x59,0x21,0x1e,0x6b,0x3e,0x39,0x57,0x31,0x01,0xb5,0x0b,0x0a,0x12,0x43,0x28,0x31,0x3d,0x3e,0x30,0x29,0x42,0xfe,0x8a,0x45,0x38,0x2c,0x47,0x13,0x11,0x12,0x13,0x47,0x2b,0x38,0x45,0x00,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0xf6,0x02,0x03,0x02,0xda,0x00,0x20, +0x00,0x4d,0x40,0x4a,0x17,0x01,0x03,0x07,0x01,0x4c,0x00,0x04,0x03,0x01,0x03,0x04,0x01,0x80,0x00,0x01,0x02,0x03,0x01,0x02,0x7e,0x00,0x07,0x00,0x03,0x04,0x07,0x03,0x69,0x00,0x06,0x06,0x05,0x5f,0x00,0x05,0x05,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x1b,0x19,0x16,0x15,0x14,0x13,0x12, +0x11,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x20,0x01,0x20,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x11,0x21,0x15,0x21,0x17,0x36,0x36,0x33,0x36,0x16,0x15,0x15,0x14,0x06,0x01,0x2a,0x5b,0x73,0x07,0x5a,0x05,0x43,0x34,0x3a,0x44,0x44,0x3a,0x27,0x39,0x0d, +0x5a,0x01,0x85,0xfe,0xcf,0x02,0x0d,0x48,0x35,0x5b,0x64,0x75,0x0a,0x5c,0x4e,0x29,0x31,0x46,0x3c,0x47,0x3c,0x46,0x28,0x1e,0x01,0x8f,0x52,0xf5,0x24,0x29,0x01,0x6f,0x63,0x47,0x61,0x71,0xff,0xff,0x00,0x89,0xff,0x76,0x01,0xcf,0x01,0x40,0x03,0x07,0x03,0x02,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x96,0xff,0x7b,0x01,0xe0,0x01,0x3b,0x03,0x07,0x03,0x03,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0xff,0x7b,0x01,0xc9,0x01,0x40,0x03,0x07,0x03,0x04,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8b,0xff,0x76,0x01,0xce,0x01,0x3b,0x03,0x07,0x03,0x05,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8f,0xff,0x7b,0x01,0xbd,0x01,0x3b,0x03,0x07,0x03,0x06,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8d,0xff,0x76,0x01,0xcf,0x01,0x3b,0x03,0x07,0x03,0x07,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x86,0xff,0x76,0x01,0xd2,0x01,0x3b,0x03,0x07,0x03,0x08,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x94,0xff,0x7b,0x01,0xce,0x01,0x3b,0x03,0x07,0x03,0x09,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x87,0xff,0x6c,0x01,0xd1,0x01,0x36,0x03,0x07,0x03,0x0a,0x00,0x00,0xfd,0xf3,0x00,0x09,0xb1,0x00,0x03,0xb8,0xfd,0xf3,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8b,0xff,0x7b,0x01,0xcd,0x01,0x40,0x03,0x07,0x03,0x0b,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0xfb,0x01,0xcf,0x01,0xc5,0x03,0x07,0x03,0x02,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x82,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x96,0x00,0x00,0x01,0xe0,0x01,0xc0,0x03,0x07,0x03,0x03,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0x00,0x00,0x01,0xc9,0x01,0xc5,0x03,0x07,0x03,0x04,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8b,0xff,0xfb,0x01,0xce,0x01,0xc0,0x03,0x07,0x03,0x05,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x01,0xbd,0x01,0xc0,0x03,0x07,0x03,0x06,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8d,0xff,0xfb,0x01,0xcf,0x01,0xc0,0x03,0x07,0x03,0x07,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x86,0xff,0xfb,0x01,0xd2,0x01,0xc0,0x03,0x07,0x03,0x08,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x82,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x94,0x00,0x00,0x01,0xce,0x01,0xc0,0x03,0x07,0x03,0x09,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x87,0xff,0xfb,0x01,0xd1,0x01,0xc5,0x03,0x07,0x03,0x0a,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x03,0xb8,0xfe,0x82,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8b,0x00,0x00,0x01,0xcd,0x01,0xc5,0x03,0x07,0x03,0x0b,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x89,0x01,0x15,0x01,0xcf,0x02,0xdf,0x03,0x06,0x03,0x02,0x00,0x9c,0x00,0x09,0xb1,0x00,0x02,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00, +0xff,0xff,0x00,0x96,0x01,0x1a,0x01,0xe0,0x02,0xda,0x03,0x06,0x03,0x03,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x93,0x01,0x1a,0x01,0xc9,0x02,0xdf,0x03,0x06,0x03,0x04,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8b,0x01,0x15,0x01,0xce, +0x02,0xda,0x03,0x06,0x03,0x05,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8f,0x01,0x1a,0x01,0xbd,0x02,0xda,0x03,0x06,0x03,0x06,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8d,0x01,0x15,0x01,0xcf,0x02,0xda,0x03,0x06,0x03,0x07,0x00,0x9c, +0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x86,0x01,0x15,0x01,0xd2,0x02,0xda,0x03,0x06,0x03,0x08,0x00,0x9c,0x00,0x09,0xb1,0x00,0x02,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x94,0x01,0x1a,0x01,0xce,0x02,0xda,0x03,0x06,0x03,0x09,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c, +0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x87,0x01,0x15,0x01,0xd1,0x02,0xdf,0x03,0x06,0x03,0x0a,0x00,0x9c,0x00,0x09,0xb1,0x00,0x03,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8b,0x01,0x1a,0x01,0xcd,0x02,0xdf,0x03,0x06,0x03,0x0b,0x00,0x9c,0x00,0x09,0xb1,0x00,0x02,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0x00,0x02,0x00,0x89, +0x01,0x79,0x01,0xcf,0x03,0x43,0x00,0x0d,0x00,0x1b,0x00,0x2d,0x40,0x2a,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x52,0x4d,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x53,0x00,0x4e,0x0f,0x0e,0x01,0x00,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x35,0x34,0x36, +0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x49,0x5a,0x5a,0x49,0x49,0x5a,0x5a,0x49,0x29,0x33,0x33,0x29,0x29,0x33,0x33,0x01,0x79,0x5c,0x49,0x81,0x49,0x5b,0x5b,0x49,0x81,0x49,0x5c,0x40,0x38,0x2d,0x81,0x2c,0x38,0x38,0x2c,0x81,0x2d,0x38,0x00,0x00,0x00, +0x00,0x01,0x00,0x96,0x01,0x7e,0x01,0xe0,0x03,0x3e,0x00,0x0a,0x00,0x29,0x40,0x26,0x05,0x04,0x03,0x03,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0x50,0x4d,0x02,0x01,0x00,0x00,0x03,0x60,0x04,0x01,0x03,0x03,0x51,0x03,0x4e,0x00,0x00,0x00,0x0a,0x00,0x0a,0x11,0x14,0x11,0x05,0x0b,0x19,0x2b,0x13,0x35,0x33,0x11,0x07,0x35,0x37,0x33,0x11, +0x33,0x15,0x96,0x90,0x8d,0x74,0x60,0x73,0x01,0x7e,0x41,0x01,0x44,0x55,0x49,0x47,0xfe,0x81,0x41,0x00,0x00,0x01,0x00,0x93,0x01,0x7e,0x01,0xc9,0x03,0x43,0x00,0x1a,0x00,0x34,0x40,0x31,0x01,0x01,0x03,0x01,0x01,0x4c,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x02,0x52,0x4d,0x00,0x03,0x03,0x04, +0x5f,0x05,0x01,0x04,0x04,0x51,0x04,0x4e,0x00,0x00,0x00,0x1a,0x00,0x1a,0x17,0x23,0x12,0x27,0x06,0x0b,0x1a,0x2b,0x13,0x35,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x3e,0x02,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x07,0x33,0x15,0x9c,0xb7,0x14,0x18,0x2f,0x23,0x22,0x31,0x47,0x02,0x2a,0x45,0x29,0x2c,0x45,0x29, +0x2a,0x24,0x8c,0xdc,0x01,0x7e,0x4d,0x9e,0x11,0x25,0x16,0x23,0x2b,0x2c,0x24,0x2b,0x40,0x25,0x23,0x3f,0x2a,0x24,0x3e,0x1f,0x77,0x41,0x00,0x00,0x00,0x01,0x00,0x8b,0x01,0x79,0x01,0xce,0x03,0x3e,0x00,0x1a,0x00,0x43,0x40,0x40,0x15,0x14,0x0f,0x03,0x03,0x04,0x01,0x4c,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x01,0x02,0x04, +0x01,0x02,0x7e,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x05,0x50,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x53,0x00,0x4e,0x01,0x00,0x13,0x12,0x11,0x10,0x0e,0x0c,0x08,0x06,0x04,0x03,0x00,0x1a,0x01,0x1a,0x07,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x37,0x23,0x35, +0x21,0x15,0x07,0x16,0x16,0x15,0x14,0x06,0x01,0x2c,0x47,0x5a,0x47,0x32,0x28,0x28,0x32,0x32,0x28,0x29,0x73,0xd5,0x01,0x1d,0x75,0x3c,0x49,0x5a,0x01,0x79,0x52,0x42,0x25,0x2f,0x2f,0x25,0x25,0x2e,0x45,0x58,0x41,0x48,0x5c,0x07,0x4c,0x3a,0x42,0x52,0x00,0x01,0x00,0x8f,0x01,0x7e,0x01,0xbd,0x03,0x3e,0x00,0x0b,0x00,0x30,0x40,0x2d, +0x06,0x03,0x02,0x02,0x03,0x01,0x4c,0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x68,0x00,0x01,0x01,0x50,0x4d,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x04,0x51,0x04,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x12,0x12,0x11,0x06,0x0b,0x1a,0x2b,0x01,0x35,0x23,0x35,0x37,0x33,0x03,0x15,0x33,0x35,0x33,0x11,0x01,0x76,0xe7,0xae,0x50,0xb8, +0xa1,0x47,0x01,0x7e,0x69,0x5d,0xfa,0xfe,0xf6,0x0d,0x72,0xfe,0xe5,0x00,0x00,0x00,0x00,0x01,0x00,0x8d,0x01,0x79,0x01,0xcf,0x03,0x3e,0x00,0x19,0x00,0x3e,0x40,0x3b,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x06,0x00,0x03,0x01,0x06,0x03,0x67,0x00,0x05,0x05,0x04,0x5f,0x00,0x04,0x04,0x50,0x4d,0x00,0x02,0x02,0x00,0x61,0x07, +0x01,0x00,0x00,0x53,0x00,0x4e,0x01,0x00,0x15,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0c,0x08,0x06,0x04,0x03,0x00,0x19,0x01,0x19,0x08,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x21,0x15,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2f,0x49,0x59,0x46,0x32,0x2a,0x28,0x30,0x30, +0x28,0x8b,0x01,0x1a,0xd7,0x48,0x4a,0x56,0x58,0x01,0x79,0x50,0x44,0x28,0x2c,0x2f,0x25,0x26,0x2e,0xdd,0x3f,0x62,0x4e,0x42,0x42,0x52,0x00,0x00,0x00,0x02,0x00,0x86,0x01,0x79,0x01,0xd2,0x03,0x3e,0x00,0x10,0x00,0x1c,0x00,0x38,0x40,0x35,0x08,0x01,0x04,0x02,0x01,0x4c,0x00,0x02,0x00,0x04,0x03,0x02,0x04,0x6a,0x00,0x01,0x01,0x50, +0x4d,0x06,0x01,0x03,0x03,0x00,0x61,0x05,0x01,0x00,0x00,0x53,0x00,0x4e,0x12,0x11,0x01,0x00,0x18,0x16,0x11,0x1c,0x12,0x1c,0x0c,0x0a,0x07,0x06,0x00,0x10,0x01,0x10,0x07,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x37,0x37,0x33,0x07,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14, +0x16,0x01,0x2d,0x4b,0x5c,0x24,0x7e,0x4d,0x81,0x04,0x1b,0x31,0x40,0x4e,0x5b,0x4b,0x2a,0x34,0x34,0x2a,0x29,0x35,0x34,0x01,0x79,0x55,0x43,0x32,0x39,0xc2,0xc5,0x25,0x4e,0x3f,0x43,0x55,0x40,0x31,0x27,0x27,0x31,0x31,0x27,0x27,0x31,0x00,0x00,0x00,0x00,0x01,0x00,0x94,0x01,0x7e,0x01,0xce,0x03,0x3e,0x00,0x08,0x00,0x52,0xb5,0x07, +0x01,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x18,0x00,0x01,0x00,0x03,0x00,0x01,0x72,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x02,0x50,0x4d,0x04,0x01,0x03,0x03,0x51,0x03,0x4e,0x1b,0x40,0x19,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x02,0x50,0x4d,0x04,0x01,0x03,0x03,0x51,0x03,0x4e, +0x59,0x40,0x0c,0x00,0x00,0x00,0x08,0x00,0x08,0x11,0x11,0x11,0x05,0x0b,0x19,0x2b,0x13,0x13,0x23,0x15,0x23,0x35,0x21,0x15,0x03,0xd8,0xb1,0xaf,0x46,0x01,0x3a,0xa8,0x01,0x7e,0x01,0x80,0x4e,0x8e,0x4c,0xfe,0x8c,0x00,0x00,0x00,0x00,0x03,0x00,0x87,0x01,0x79,0x01,0xd1,0x03,0x43,0x00,0x19,0x00,0x25,0x00,0x31,0x00,0x45,0x40,0x42, +0x13,0x06,0x02,0x05,0x02,0x01,0x4c,0x07,0x01,0x02,0x00,0x05,0x04,0x02,0x05,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x52,0x4d,0x08,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x53,0x00,0x4e,0x27,0x26,0x1b,0x1a,0x01,0x00,0x2d,0x2b,0x26,0x31,0x27,0x31,0x21,0x1f,0x1a,0x25,0x1b,0x25,0x0e,0x0c,0x00,0x19,0x01,0x19,0x09, +0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x49,0x5c,0x3a,0x2e,0x2a,0x33,0x55,0x45,0x46, +0x56,0x34,0x2c,0x2f,0x3a,0x5b,0x4a,0x27,0x30,0x30,0x27,0x26,0x2f,0x2f,0x26,0x2a,0x36,0x36,0x2a,0x2a,0x36,0x36,0x01,0x79,0x49,0x3a,0x2e,0x3d,0x04,0x04,0x08,0x34,0x22,0x35,0x41,0x41,0x35,0x22,0x34,0x08,0x04,0x04,0x3d,0x2e,0x3a,0x49,0x01,0x0b,0x24,0x1d,0x1d,0x25,0x25,0x1d,0x1d,0x24,0xce,0x29,0x21,0x21,0x29,0x29,0x21,0x21, +0x29,0x00,0x00,0x00,0x00,0x02,0x00,0x8b,0x01,0x7e,0x01,0xcd,0x03,0x43,0x00,0x12,0x00,0x1e,0x00,0x36,0x40,0x33,0x01,0x01,0x00,0x03,0x01,0x4c,0x06,0x01,0x03,0x00,0x00,0x02,0x03,0x00,0x69,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x52,0x4d,0x05,0x01,0x02,0x02,0x51,0x02,0x4e,0x14,0x13,0x00,0x00,0x1a,0x18,0x13,0x1e,0x14,0x1e, +0x00,0x12,0x00,0x12,0x24,0x24,0x07,0x0b,0x18,0x2b,0x13,0x37,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xe7,0x7e,0x04,0x0a,0x26,0x1d,0x3f,0x4a,0x57,0x49,0x4a,0x58,0x16,0x16,0x6d,0x08,0x26,0x33,0x30,0x29,0x29,0x30,0x30, +0x01,0x7e,0xc5,0x10,0x15,0x4f,0x3e,0x44,0x54,0x54,0x44,0x21,0x3c,0x23,0xad,0xd5,0x31,0x27,0x27,0x31,0x31,0x27,0x27,0x31,0xff,0xff,0x00,0x9a,0xff,0x7b,0x01,0xce,0x01,0x40,0x03,0x07,0x03,0x15,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x90,0xff,0x76,0x01,0xd4, +0x01,0x40,0x03,0x07,0x03,0x16,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x84,0xff,0x76,0x01,0xc8,0x01,0x40,0x03,0x07,0x03,0x17,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x9a,0x00,0x00,0x01,0xce, +0x01,0xc5,0x03,0x07,0x03,0x15,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x90,0xff,0xfb,0x01,0xd4,0x01,0xc5,0x03,0x07,0x03,0x16,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x84,0xff,0xfb,0x01,0xc8, +0x01,0xc5,0x03,0x07,0x03,0x17,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x9a,0x01,0x1a,0x01,0xce,0x02,0xdf,0x03,0x06,0x03,0x15,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x90,0x01,0x15,0x01,0xd4,0x02,0xdf,0x03,0x06, +0x03,0x16,0x00,0x9c,0x00,0x09,0xb1,0x00,0x02,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x84,0x01,0x15,0x01,0xc8,0x02,0xdf,0x03,0x06,0x03,0x17,0x00,0x9c,0x00,0x09,0xb1,0x00,0x02,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x9a,0x01,0x7e,0x01,0xce,0x03,0x43,0x00,0x1e,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03, +0x00,0x01,0x03,0x80,0x00,0x02,0x00,0x00,0x01,0x02,0x00,0x69,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x1e,0x00,0x1e,0x19,0x22,0x12,0x2a,0x06,0x09,0x1a,0x2b,0x13,0x35,0x34,0x3e,0x04,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e, +0x04,0x15,0x33,0x15,0xa0,0x21,0x35,0x3a,0x35,0x21,0x2d,0x23,0x26,0x2e,0x48,0x56,0x46,0x43,0x55,0x22,0x34,0x3c,0x34,0x22,0xe7,0x01,0x7e,0x39,0x2f,0x3b,0x26,0x1b,0x1a,0x24,0x1c,0x20,0x27,0x2d,0x23,0x40,0x50,0x4a,0x3d,0x29,0x34,0x22,0x1a,0x1c,0x28,0x20,0x41,0x00,0x00,0x02,0x00,0x90,0x01,0x79,0x01,0xd4,0x03,0x43,0x00,0x1a, +0x00,0x26,0x00,0x4d,0x40,0x4a,0x12,0x01,0x05,0x06,0x01,0x4c,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x69,0x08,0x01,0x05,0x00,0x00,0x05,0x59,0x08,0x01,0x05,0x05,0x00,0x61,0x07,0x01,0x00,0x05,0x00,0x51,0x1c,0x1b,0x01,0x00,0x22,0x20,0x1b,0x26,0x1c, +0x26,0x16,0x14,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1a,0x01,0x1a,0x09,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x32,0x49,0x59,0x56,0x4c,0x44,0x56, +0x04,0x45,0x04,0x31,0x24,0x2b,0x32,0x01,0x16,0x54,0x41,0x53,0x59,0x49,0x29,0x32,0x32,0x2a,0x2a,0x32,0x33,0x01,0x79,0x54,0x43,0x94,0x4a,0x55,0x45,0x37,0x1b,0x23,0x34,0x2d,0x50,0x4c,0x4f,0x41,0x43,0x54,0x3f,0x31,0x27,0x27,0x31,0x31,0x27,0x27,0x31,0x00,0x00,0x00,0x00,0x02,0x00,0x84,0x01,0x79,0x01,0xc8,0x03,0x43,0x00,0x1a, +0x00,0x26,0x00,0x4c,0x40,0x49,0x0b,0x01,0x05,0x06,0x01,0x4c,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x69,0x08,0x01,0x05,0x00,0x03,0x01,0x05,0x03,0x69,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x07,0x01,0x00,0x02,0x00,0x51,0x1c,0x1b,0x01,0x00,0x22,0x20,0x1b,0x26,0x1c,0x26, +0x15,0x13,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x1a,0x01,0x1a,0x09,0x09,0x16,0x2b,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x31,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x26,0x43,0x57,0x04,0x45,0x05,0x30,0x24, +0x2c,0x31,0x16,0x55,0x41,0x53,0x59,0x49,0x49,0x59,0x56,0x4b,0x2a,0x32,0x33,0x2a,0x29,0x32,0x32,0x01,0x79,0x44,0x34,0x18,0x21,0x34,0x2c,0x55,0x4c,0x4e,0x40,0x42,0x52,0x52,0x42,0x97,0x49,0x56,0xe0,0x2f,0x27,0x26,0x30,0x30,0x26,0x26,0x30,0x00,0xff,0xff,0x00,0x87,0xff,0x6c,0x01,0xd1,0x01,0x36,0x03,0x07,0x03,0x1b,0x00,0x00, +0xfd,0xf3,0x00,0x09,0xb1,0x00,0x03,0xb8,0xfd,0xf3,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x87,0xff,0xfb,0x01,0xd1,0x01,0xc5,0x03,0x07,0x03,0x1b,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x03,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x87,0x01,0x10,0x01,0xd1,0x02,0xda,0x03,0x06,0x03,0x1b,0x00,0x97, +0x00,0x09,0xb1,0x00,0x03,0xb8,0xff,0x97,0xb0,0x35,0x2b,0x00,0x00,0x03,0x00,0x87,0x01,0x79,0x01,0xd1,0x03,0x43,0x00,0x1b,0x00,0x29,0x00,0x37,0x00,0x3a,0x40,0x37,0x31,0x1d,0x15,0x07,0x04,0x03,0x02,0x01,0x4c,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x69,0x05,0x01,0x03,0x00,0x00,0x03,0x59,0x05,0x01,0x03,0x03,0x00,0x61,0x04,0x01, +0x00,0x03,0x00,0x51,0x2b,0x2a,0x01,0x00,0x2a,0x37,0x2b,0x37,0x25,0x23,0x0f,0x0d,0x00,0x1b,0x01,0x1b,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x37,0x37,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x17,0x16,0x16,0x15,0x14,0x06,0x03,0x17,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15, +0x14,0x16,0x17,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x07,0x06,0x06,0x15,0x14,0x16,0x01,0x2c,0x49,0x5c,0x28,0x20,0x26,0x1a,0x1f,0x2a,0x56,0x44,0x44,0x56,0x25,0x1d,0x1c,0x20,0x22,0x27,0x5b,0x72,0x2a,0x2b,0x11,0x17,0x2f,0x26,0x25,0x30,0x1a,0x3b,0x2b,0x35,0x19,0x14,0x31,0x35,0x14,0x19,0x35,0x01,0x79,0x49,0x3a,0x1f,0x2d,0x0e, +0x10,0x0c,0x0e,0x2f,0x1b,0x36,0x43,0x43,0x36,0x1e,0x2e,0x0d,0x0c,0x0f,0x0f,0x2d,0x1e,0x3a,0x49,0x01,0x19,0x13,0x12,0x08,0x1c,0x13,0x1c,0x23,0x23,0x1c,0x12,0x1b,0xe4,0x25,0x1e,0x14,0x1e,0x09,0x17,0x17,0x08,0x1e,0x14,0x1e,0x26,0x00,0x00,0x00,0xff,0xff,0x00,0x8a,0xff,0x76,0x01,0xcc,0x01,0x3b,0x03,0x07,0x03,0x1f,0x00,0x00, +0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8a,0x01,0x15,0x01,0xcc,0x02,0xda,0x03,0x06,0x03,0x1f,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8a,0x01,0x10,0x01,0xcc,0x02,0xd5,0x03,0x06,0x03,0x1f,0x00,0x97,0x00,0x09,0xb1,0x00, +0x01,0xb8,0xff,0x97,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x8a,0x01,0x79,0x01,0xcc,0x03,0x3e,0x00,0x1e,0x00,0x50,0x40,0x4d,0x16,0x01,0x03,0x07,0x01,0x4c,0x00,0x04,0x03,0x01,0x03,0x04,0x01,0x80,0x00,0x01,0x02,0x03,0x01,0x02,0x7e,0x00,0x05,0x00,0x06,0x07,0x05,0x06,0x67,0x00,0x07,0x00,0x03,0x04,0x07,0x03,0x69,0x00,0x02,0x00, +0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x1a,0x18,0x15,0x14,0x13,0x12,0x11,0x10,0x0e,0x0c,0x08,0x06,0x04,0x03,0x00,0x1e,0x01,0x1e,0x09,0x09,0x16,0x2b,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x11,0x21,0x15,0x23,0x15,0x36,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x01,0x2a,0x40,0x59,0x07,0x48,0x05,0x31,0x22,0x28,0x32,0x32,0x28,0x1b,0x29,0x0b,0x41,0x01,0x1c,0xd9,0x0d,0x34,0x22,0x3e,0x4e,0x5a,0x01,0x79,0x43,0x35,0x19,0x1f,0x33,0x25,0x26,0x32,0x1a,0x12,0x01,0x01,0x40,0x88,0x14,0x1a,0x53,0x40,0x42,0x56,0x00,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x00,0x02,0x53, +0x02,0xda,0x00,0x03,0x00,0x19,0x40,0x16,0x00,0x00,0x00,0x38,0x4d,0x02,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x33,0x01,0x33,0x01,0x05,0x01,0xf9,0x55,0xfe,0x07,0x02,0xda,0xfd,0x26,0x00,0x00,0x00,0x00,0x02,0x00,0x05,0x00,0x00,0x02,0x53,0x02,0xda,0x00,0x12,0x00,0x2e,0x00,0x6a, +0xb1,0x06,0x64,0x44,0x40,0x5f,0x0a,0x09,0x05,0x03,0x01,0x02,0x28,0x14,0x02,0x09,0x07,0x29,0x01,0x05,0x09,0x03,0x4c,0x04,0x01,0x02,0x01,0x02,0x85,0x00,0x07,0x06,0x09,0x06,0x07,0x09,0x80,0x03,0x01,0x01,0x00,0x00,0x08,0x01,0x00,0x68,0x00,0x08,0x00,0x06,0x07,0x08,0x06,0x69,0x00,0x09,0x05,0x05,0x09,0x57,0x00,0x09,0x09,0x05, +0x5f,0x0c,0x0a,0x0b,0x03,0x05,0x09,0x05,0x4f,0x13,0x13,0x00,0x00,0x13,0x2e,0x13,0x2e,0x2d,0x2b,0x22,0x20,0x1e,0x1d,0x1b,0x19,0x00,0x12,0x00,0x12,0x12,0x11,0x17,0x11,0x11,0x0d,0x09,0x1b,0x2b,0xb1,0x06,0x00,0x44,0x33,0x01,0x23,0x35,0x33,0x35,0x06,0x06,0x07,0x07,0x35,0x37,0x33,0x11,0x33,0x15,0x13,0x33,0x01,0x33,0x35,0x37, +0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x15,0x36,0x36,0x33,0x33,0x15,0x05,0x01,0x18,0xff,0x76,0x04,0x12,0x0b,0x3e,0x46,0x55,0x6b,0xc3,0x55,0xfe,0x07,0xe1,0x78,0x46,0x24,0x1d,0x1d,0x24,0x3c,0x02,0x45,0x36,0x38,0x45,0x2d,0x29,0x5d,0x0b,0x2a,0x16,0x6d,0x01,0x95,0x32, +0xec,0x07,0x15,0x0a,0x36,0x46,0x3d,0xfe,0xed,0x07,0x01,0x1a,0xfd,0x26,0x40,0x45,0x28,0x2b,0x1d,0x23,0x23,0x1d,0x34,0x3e,0x3e,0x32,0x1f,0x3c,0x17,0x34,0x0a,0x02,0x06,0x32,0x00,0x00,0x00,0x02,0x00,0x05,0x00,0x00,0x02,0x53,0x02,0xda,0x00,0x12,0x00,0x1e,0x00,0x6a,0xb1,0x06,0x64,0x44,0x40,0x5f,0x0a,0x09,0x05,0x03,0x01,0x02, +0x0f,0x01,0x00,0x01,0x19,0x16,0x02,0x08,0x09,0x03,0x4c,0x04,0x01,0x02,0x01,0x02,0x85,0x00,0x07,0x00,0x09,0x00,0x07,0x09,0x80,0x03,0x01,0x01,0x00,0x00,0x07,0x01,0x00,0x68,0x00,0x09,0x08,0x05,0x09,0x57,0x00,0x08,0x00,0x06,0x05,0x08,0x06,0x68,0x00,0x09,0x09,0x05,0x5f,0x0c,0x0a,0x0b,0x03,0x05,0x09,0x05,0x4f,0x13,0x13,0x00, +0x00,0x13,0x1e,0x13,0x1e,0x1d,0x1c,0x1b,0x1a,0x18,0x17,0x15,0x14,0x00,0x12,0x00,0x12,0x12,0x11,0x17,0x11,0x11,0x0d,0x09,0x1b,0x2b,0xb1,0x06,0x00,0x44,0x33,0x01,0x23,0x35,0x33,0x35,0x06,0x06,0x07,0x07,0x35,0x37,0x33,0x11,0x33,0x15,0x13,0x33,0x01,0x21,0x35,0x23,0x35,0x37,0x33,0x07,0x15,0x33,0x35,0x33,0x15,0x05,0x01,0x18, +0xff,0x76,0x04,0x12,0x0b,0x3e,0x46,0x55,0x61,0xcd,0x55,0xfe,0x07,0x01,0x86,0xaf,0x7e,0x45,0x87,0x73,0x3c,0x01,0x95,0x32,0xec,0x07,0x15,0x0a,0x36,0x46,0x3d,0xfe,0xed,0x15,0x01,0x28,0xfd,0x26,0x46,0x50,0xaf,0xbd,0x10,0x59,0xd1,0x00,0x00,0x00,0x00,0x03,0x00,0x05,0x00,0x00,0x02,0x53,0x02,0xda,0x00,0x1a,0x00,0x1e,0x00,0x2a, +0x00,0xd3,0xb1,0x06,0x64,0x44,0x40,0x0d,0x15,0x14,0x0f,0x03,0x03,0x04,0x25,0x22,0x02,0x0a,0x0b,0x02,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x42,0x00,0x03,0x04,0x01,0x04,0x03,0x72,0x00,0x09,0x00,0x0b,0x00,0x09,0x0b,0x80,0x06,0x01,0x05,0x00,0x04,0x03,0x05,0x04,0x67,0x00,0x01,0x02,0x07,0x01,0x57,0x00,0x02,0x0d,0x01,0x00,0x09, +0x02,0x00,0x69,0x00,0x0b,0x0a,0x07,0x0b,0x57,0x00,0x0a,0x00,0x08,0x07,0x0a,0x08,0x68,0x00,0x0b,0x0b,0x07,0x60,0x0f,0x0c,0x0e,0x03,0x07,0x0b,0x07,0x50,0x1b,0x40,0x43,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x09,0x00,0x0b,0x00,0x09,0x0b,0x80,0x06,0x01,0x05,0x00,0x04,0x03,0x05,0x04,0x67,0x00,0x01,0x02,0x07,0x01,0x57, +0x00,0x02,0x0d,0x01,0x00,0x09,0x02,0x00,0x69,0x00,0x0b,0x0a,0x07,0x0b,0x57,0x00,0x0a,0x00,0x08,0x07,0x0a,0x08,0x68,0x00,0x0b,0x0b,0x07,0x60,0x0f,0x0c,0x0e,0x03,0x07,0x0b,0x07,0x50,0x59,0x40,0x29,0x1f,0x1f,0x1b,0x1b,0x01,0x00,0x1f,0x2a,0x1f,0x2a,0x29,0x28,0x27,0x26,0x24,0x23,0x21,0x20,0x1b,0x1e,0x1b,0x1e,0x1d,0x1c,0x13, +0x12,0x11,0x10,0x0e,0x0c,0x08,0x06,0x04,0x03,0x00,0x1a,0x01,0x1a,0x10,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x13,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x37,0x23,0x35,0x33,0x15,0x07,0x16,0x16,0x15,0x14,0x06,0x03,0x01,0x33,0x01,0x21,0x35,0x23,0x35,0x37,0x33,0x07,0x15,0x33,0x35,0x33,0x15, +0x9a,0x3a,0x46,0x3c,0x25,0x1f,0x1e,0x25,0x25,0x1d,0x1e,0x51,0x9c,0xd7,0x55,0x2d,0x38,0x46,0xce,0x01,0xf9,0x55,0xfe,0x07,0x01,0x86,0xaf,0x7e,0x45,0x87,0x73,0x3c,0x01,0x90,0x3a,0x2f,0x19,0x1e,0x1e,0x19,0x19,0x1e,0x39,0x3f,0x32,0x37,0x42,0x06,0x38,0x2a,0x2f,0x3a,0xfe,0x70,0x02,0xda,0xfd,0x26,0x46,0x50,0xaf,0xbd,0x10,0x59, +0xd1,0x00,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0x76,0x01,0xcf,0x01,0x40,0x03,0x07,0x03,0x02,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x89,0x01,0x79,0x01,0xcf,0x03,0x43,0x02,0x06,0x03,0x02,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0xe4,0x01,0xcf,0x01,0xae,0x03,0x07, +0x03,0x02,0x00,0x00,0xfe,0x6b,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x6b,0xb0,0x35,0x2b,0x00,0x00,0x00,0x00,0x02,0x00,0x91,0x01,0x8b,0x01,0xc7,0x03,0x48,0x00,0x0d,0x00,0x1b,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00, +0x51,0x0f,0x0e,0x01,0x00,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x48,0x53,0x53,0x48,0x48,0x53,0x53,0x48,0x28,0x2d,0x2d,0x28,0x28, +0x2d,0x2d,0x01,0x8b,0x4f,0x46,0x94,0x45,0x4f,0x4f,0x45,0x94,0x46,0x4f,0x3f,0x2e,0x28,0x94,0x28,0x2d,0x2d,0x28,0x94,0x28,0x2e,0x00,0x00,0x00,0x00,0x02,0x00,0x4c,0xff,0xf6,0x02,0x0c,0x02,0x8a,0x00,0x15,0x00,0x22,0x00,0x32,0x40,0x2f,0x1f,0x0e,0x0b,0x08,0x04,0x03,0x01,0x01,0x4c,0x02,0x01,0x01,0x03,0x01,0x85,0x00,0x03,0x00, +0x00,0x03,0x59,0x00,0x03,0x03,0x00,0x61,0x04,0x01,0x00,0x03,0x00,0x51,0x01,0x00,0x1a,0x18,0x0d,0x0c,0x0a,0x09,0x00,0x15,0x01,0x15,0x05,0x06,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x27,0x33,0x17,0x37,0x33,0x07,0x17,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x27,0x07,0x06, +0x06,0x01,0x2c,0x43,0x63,0x36,0x2b,0x22,0x5b,0xac,0x68,0x79,0x79,0x66,0xac,0x5d,0x23,0x28,0x36,0x62,0xc6,0x46,0x3c,0x3c,0x46,0x30,0x52,0x53,0x16,0x19,0x0a,0x32,0x56,0x34,0x2e,0x51,0x28,0x69,0xc8,0x8b,0x8b,0xc7,0x6b,0x29,0x51,0x2c,0x34,0x56,0x32,0xc4,0x30,0x44,0x44,0x30,0x37,0x36,0x60,0x60,0x19,0x37,0x00,0x01,0x00,0xda, +0xff,0xf6,0x01,0x7e,0x00,0x98,0x00,0x0b,0x00,0x1a,0x40,0x17,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x07,0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x25,0x2d,0x2d,0x25,0x25,0x2d,0x2d,0x0a,0x2c,0x23,0x25,0x2e,0x2e,0x25, +0x23,0x2c,0x00,0x00,0x00,0x01,0x00,0xd2,0xff,0x60,0x01,0x75,0x00,0x92,0x00,0x03,0x00,0x35,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0c,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x01,0x3d,0x01,0x4e,0x1b,0x40,0x11,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x59,0x40,0x0a,0x00,0x00,0x00,0x03, +0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x17,0x13,0x33,0x03,0xd2,0x37,0x6c,0x46,0xa0,0x01,0x32,0xfe,0xce,0x00,0x02,0x00,0xd9,0xff,0xf6,0x01,0x7f,0x02,0x30,0x00,0x0b,0x00,0x17,0x00,0x2d,0x40,0x2a,0x04,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x02,0x61,0x05,0x01,0x02,0x02,0x3f,0x02,0x4e,0x0d,0x0c,0x01, +0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x29,0x2a,0x2a,0x29,0x29,0x2a,0x2a,0x29,0x29,0x2a,0x2a,0x29,0x29,0x2a,0x2a,0x01,0x9c,0x28,0x22,0x22,0x28, +0x28,0x22,0x22,0x28,0xfe,0x5a,0x28,0x22,0x22,0x28,0x28,0x22,0x22,0x28,0x00,0x00,0x00,0x02,0x00,0xcd,0xff,0x60,0x01,0x81,0x02,0x30,0x00,0x0d,0x00,0x11,0x00,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x17,0x04,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40, +0x14,0x00,0x02,0x05,0x01,0x03,0x02,0x03,0x63,0x04,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x00,0x4e,0x59,0x40,0x13,0x0e,0x0e,0x01,0x00,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x08,0x05,0x00,0x0d,0x01,0x0c,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x03,0x13,0x33,0x03,0x01,0x22, +0x21,0x2a,0x2b,0x20,0x14,0x20,0x2b,0x2a,0x21,0x69,0x37,0x6c,0x46,0x01,0x9a,0x2a,0x21,0x20,0x2b,0x2b,0x20,0x21,0x2a,0xfd,0xc6,0x01,0x32,0xfe,0xce,0x00,0x00,0x00,0x00,0x03,0x00,0x3c,0xff,0xf6,0x02,0x1c,0x00,0xaa,0x00,0x0d,0x00,0x1b,0x00,0x29,0x00,0x30,0x40,0x2d,0x05,0x03,0x02,0x01,0x01,0x00,0x61,0x08,0x04,0x07,0x02,0x06, +0x05,0x00,0x00,0x3f,0x00,0x4e,0x1d,0x1c,0x0f,0x0e,0x01,0x00,0x24,0x22,0x1c,0x29,0x1d,0x29,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x33,0x22, +0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x01,0xea,0x16,0x1c,0x1c,0x16,0x17,0x1b,0x1b,0xfe,0x6d,0x16,0x1c,0x1c,0x16,0x17,0x1b,0x1b,0xa7,0x16,0x1c,0x1c,0x16,0x17,0x1b,0x1b,0x0a,0x1e,0x19,0x46,0x19,0x1e,0x1e,0x19,0x46,0x19,0x1e,0x1e,0x19,0x46,0x19,0x1e,0x1e,0x19,0x46,0x19,0x1e,0x1e,0x19,0x46,0x19,0x1e, +0x1e,0x19,0x46,0x19,0x1e,0x00,0x00,0x00,0x00,0x02,0x00,0xe1,0xff,0xfb,0x01,0x77,0x02,0xda,0x00,0x03,0x00,0x11,0x00,0x2c,0x40,0x29,0x04,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x02,0x61,0x05,0x01,0x02,0x02,0x42,0x02,0x4e,0x05,0x04,0x00,0x00,0x0c,0x09,0x04,0x11,0x05,0x10,0x00,0x03,0x00,0x03,0x11, +0x06,0x09,0x17,0x2b,0x25,0x03,0x33,0x03,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x03,0x0c,0x6a,0x0c,0x38,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xdc,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x02,0x00,0xe1,0xff,0x4c,0x01,0x77,0x02,0x2b,0x00,0x0d, +0x00,0x11,0x00,0x2d,0x40,0x2a,0x04,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x3b,0x4d,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3d,0x03,0x4e,0x0e,0x0e,0x01,0x00,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x08,0x05,0x00,0x0d,0x01,0x0c,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x03, +0x13,0x33,0x13,0x01,0x1d,0x1a,0x22,0x22,0x1a,0x1e,0x1a,0x22,0x1f,0x1d,0x44,0x0c,0x52,0x0c,0x01,0xb3,0x22,0x1a,0x1a,0x22,0x23,0x1a,0x19,0x22,0xfd,0x99,0x02,0x03,0xfd,0xfd,0x00,0x00,0x00,0x02,0x00,0x82,0xff,0xfb,0x01,0xe5,0x02,0xda,0x00,0x14,0x00,0x22,0x00,0x70,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x26,0x07,0x01,0x04,0x03,0x06, +0x03,0x04,0x72,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x06,0x06,0x05,0x61,0x08,0x01,0x05,0x05,0x42,0x05,0x4e,0x1b,0x40,0x27,0x07,0x01,0x04,0x03,0x06,0x03,0x04,0x06,0x80,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00, +0x06,0x06,0x05,0x61,0x08,0x01,0x05,0x05,0x42,0x05,0x4e,0x59,0x40,0x15,0x16,0x15,0x00,0x00,0x1d,0x1a,0x15,0x22,0x16,0x21,0x00,0x14,0x00,0x14,0x16,0x21,0x24,0x21,0x09,0x09,0x1a,0x2b,0x37,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x15,0x07,0x22,0x26,0x35,0x34,0x36,0x33, +0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xce,0x32,0x40,0x4b,0x4b,0x41,0x7d,0x7d,0x46,0x67,0x39,0x30,0x55,0x38,0x3d,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0xaa,0x47,0x3b,0x3b,0x47,0x55,0x35,0x60,0x42,0x39,0x5b,0x36,0x03,0x5f,0xdc,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x02,0x00,0x73,0xff,0x4c,0x01,0xd6, +0x02,0x2b,0x00,0x0d,0x00,0x22,0x00,0x74,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x26,0x00,0x04,0x00,0x03,0x03,0x04,0x72,0x00,0x03,0x00,0x05,0x06,0x03,0x05,0x6a,0x07,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x3b,0x4d,0x00,0x06,0x06,0x02,0x5f,0x08,0x01,0x02,0x02,0x3d,0x02,0x4e,0x1b,0x40,0x27,0x00,0x04,0x00,0x03,0x00,0x04,0x03,0x80, +0x00,0x03,0x00,0x05,0x06,0x03,0x05,0x6a,0x07,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x3b,0x4d,0x00,0x06,0x06,0x02,0x5f,0x08,0x01,0x02,0x02,0x3d,0x02,0x4e,0x59,0x40,0x19,0x0f,0x0e,0x01,0x00,0x21,0x1f,0x1b,0x19,0x18,0x17,0x16,0x15,0x0e,0x22,0x0f,0x22,0x08,0x05,0x00,0x0d,0x01,0x0c,0x09,0x09,0x16,0x2b,0x01,0x22,0x26,0x35, +0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x03,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x35,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x01,0x4f,0x1c,0x20,0x22,0x1a,0x1e,0x1a,0x22,0x22,0x1a,0x14,0x46,0x67,0x39,0x30,0x55,0x38,0x5a,0x32,0x40,0x4b,0x4c,0x40,0x7d,0x01,0xb3,0x22,0x19,0x1a,0x23,0x22,0x1a, +0x1a,0x22,0xfd,0x99,0x35,0x61,0x41,0x3a,0x5a,0x36,0x03,0x5f,0xaa,0x47,0x3b,0x3b,0x47,0x55,0x00,0x00,0xff,0xff,0x00,0xda,0x01,0x04,0x01,0x7e,0x01,0xa6,0x03,0x07,0x03,0x29,0x00,0x00,0x01,0x0e,0x00,0x09,0xb1,0x00,0x01,0xb8,0x01,0x0e,0xb0,0x35,0x2b,0x00,0x00,0x00,0x00,0x01,0x00,0xb4,0x00,0xf5,0x01,0xa4,0x01,0xe5,0x00,0x0b, +0x00,0x1f,0x40,0x1c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07,0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0x25,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0xf5,0x44,0x34,0x35,0x43,0x43,0x35,0x34,0x44,0x00, +0x00,0x01,0x00,0x24,0x00,0x67,0x02,0x34,0x02,0x6c,0x00,0x2c,0x00,0x1b,0x40,0x18,0x29,0x25,0x24,0x20,0x1c,0x1b,0x17,0x0e,0x0a,0x09,0x05,0x01,0x0c,0x00,0x49,0x00,0x00,0x00,0x76,0x13,0x12,0x01,0x09,0x16,0x2b,0x37,0x27,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x37,0x17,0x16,0x16,0x17,0x26,0x26,0x35,0x35,0x33,0x15,0x14,0x06, +0x07,0x36,0x36,0x37,0x37,0x17,0x07,0x06,0x06,0x07,0x16,0x16,0x17,0x17,0x07,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0xb1,0x45,0x41,0x0d,0x2d,0x14,0x1c,0x3e,0x12,0x6b,0x1c,0x6c,0x11,0x38,0x17,0x05,0x05,0x54,0x06,0x05,0x18,0x37,0x12,0x6c,0x1c,0x6b,0x12,0x3e,0x1c,0x14,0x2e,0x0c,0x41,0x45,0x41,0x0c,0x22,0x0c,0x0c,0x22,0x0c,0x67, +0x31,0x5d,0x12,0x34,0x14,0x04,0x10,0x07,0x28,0x4f,0x28,0x06,0x1a,0x0e,0x1a,0x37,0x13,0x7d,0x7d,0x13,0x37,0x1a,0x0e,0x1a,0x06,0x28,0x4f,0x28,0x07,0x10,0x04,0x14,0x35,0x11,0x5d,0x31,0x5e,0x11,0x3c,0x1a,0x1a,0x3b,0x12,0x00,0x00,0x01,0x00,0xcd,0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x0b,0x00,0x32,0x40,0x2f,0x00,0x00,0x00,0x01, +0x02,0x00,0x01,0x67,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x06,0x01,0x05,0x04,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x17,0x11,0x33,0x15,0x23,0x11,0x33,0x15,0x23,0x11,0x33,0x15,0xcd,0xf5,0x9b,0x9b,0x9b,0x96,0x6e,0x03, +0xac,0x50,0xfe,0xb1,0x50,0xfe,0x93,0x50,0x00,0x01,0x00,0x96,0xff,0x92,0x01,0x8b,0x03,0x3e,0x00,0x0b,0x00,0x2c,0x40,0x29,0x00,0x05,0x00,0x04,0x03,0x05,0x04,0x67,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x11,0x11,0x11,0x11,0x11,0x10,0x06,0x09, +0x1c,0x2b,0x05,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x8b,0xf0,0x96,0x9b,0x9b,0x9b,0xf5,0x6e,0x50,0x01,0x6d,0x50,0x01,0x4f,0x50,0x00,0x00,0x00,0x02,0x00,0x7d,0xff,0x92,0x01,0xdb,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x22,0x40,0x1f,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x03,0x04,0x03,0x01,0x01,0x76,0x04, +0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x17,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x7d,0x5a,0xaa,0x5a,0x6e,0x03,0xac,0xfc,0x54,0x03,0xac,0xfc,0x54,0x00,0xff,0xff,0x00,0x69,0xff,0xfb,0x01,0xef,0x02,0xda,0x00,0x26,0x03,0x2e,0x88,0x00,0x00,0x06,0x03,0x2e,0x78,0x00,0x00,0x00, +0x00,0x02,0x00,0x87,0xff,0xfb,0x01,0xea,0x02,0xda,0x00,0x16,0x00,0x24,0x00,0x3f,0x40,0x3c,0x15,0x05,0x02,0x03,0x00,0x01,0x4c,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x06,0x01,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x3b,0x4d,0x00,0x05,0x05,0x04,0x61,0x07,0x01,0x04,0x04,0x42,0x04,0x4e,0x18,0x17,0x00,0x00,0x1f,0x1c, +0x17,0x24,0x18,0x23,0x00,0x16,0x00,0x16,0x21,0x27,0x12,0x08,0x09,0x19,0x2b,0x37,0x27,0x35,0x33,0x15,0x07,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x0f,0x02,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xdf,0x0d,0x5a,0x03,0x30,0x37,0x4b,0x41,0x7d,0x7d,0x46,0x67,0x39, +0x6a,0x5b,0x06,0x2f,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xcd,0xf5,0x64,0x64,0x3e,0x0a,0x43,0x32,0x3b,0x47,0x55,0x35,0x60,0x42,0x57,0x6e,0x07,0x6a,0xd2,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x02,0x00,0x23,0x00,0x00,0x02,0x35,0x02,0xda,0x00,0x1b,0x00,0x1f,0x00,0x47,0x40,0x44,0x07,0x05,0x02,0x03,0x0f,0x08, +0x02,0x02,0x01,0x03,0x02,0x68,0x0e,0x09,0x02,0x01,0x0c,0x0a,0x02,0x00,0x0b,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x10,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x00,0x00,0x1f,0x1e,0x1d,0x1c,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x1f,0x2b,0x33, +0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x13,0x33,0x37,0x23,0x53,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0xd2,0x41,0xb4,0x41,0xd2, +0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0x01,0x13,0xb4,0xff,0xff,0x00,0xda,0xff,0xf6,0x01,0x7e,0x00,0x98,0x02,0x06,0x03,0x29,0x00,0x00,0x00,0x01,0xff,0xf6,0x02,0xee,0x02,0x62,0x03,0x3e,0x00,0x03,0x00,0x26,0xb1,0x06,0x64,0x44,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01, +0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x03,0x35,0x21,0x15,0x0a,0x02,0x6c,0x02,0xee,0x50,0x50,0x00,0x00,0x01,0x00,0x4b,0xff,0x92,0x02,0x0d,0x03,0x3e,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17, +0x2b,0x17,0x01,0x33,0x01,0x4b,0x01,0x63,0x5f,0xfe,0x9d,0x6e,0x03,0xac,0xfc,0x54,0x00,0x01,0x00,0x4b,0xff,0x92,0x02,0x0d,0x03,0x3e,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x05,0x01,0x33,0x01,0x01,0xae,0xfe,0x9d,0x5f,0x01,0x63, +0x6e,0x03,0xac,0xfc,0x54,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0xff,0x4c,0x02,0x4e,0x00,0x00,0x00,0x0f,0x00,0x24,0x40,0x21,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x02,0x00,0x5f,0x04,0x01,0x00,0x00,0x3d,0x00,0x4e,0x01,0x00,0x0c,0x0b,0x09,0x06,0x04,0x03,0x00,0x0f,0x01,0x0e,0x05,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x33,0x14, +0x16,0x33,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0xb4,0x4e,0x5c,0x5a,0x31,0x29,0xdc,0x29,0x31,0x5a,0x5c,0x4e,0xb4,0x61,0x53,0x2e,0x36,0x36,0x2e,0x53,0x61,0x00,0x00,0x02,0x00,0xd9,0x00,0x46,0x01,0x7f,0x02,0x80,0x00,0x0b,0x00,0x17,0x00,0x30,0x40,0x2d,0x00,0x01,0x04,0x01,0x00,0x03,0x01,0x00,0x69,0x00,0x03,0x02,0x02,0x03, +0x59,0x00,0x03,0x03,0x02,0x61,0x05,0x01,0x02,0x03,0x02,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x25,0x2e,0x2e,0x25,0x26,0x2d, +0x2d,0x26,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0x01,0xea,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0xfe,0x5c,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0x00,0x00,0x00,0xff,0xff,0xff,0x1a,0x01,0x09,0xff,0xbe,0x01,0xab,0x01,0x07,0x03,0x29,0xfe,0x40,0x01,0x13,0x00,0x09,0xb1,0x00,0x01,0xb8,0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x00, +0xff,0xff,0xff,0x79,0x01,0x09,0x00,0x1d,0x01,0xab,0x01,0x07,0x03,0x29,0xfe,0x9f,0x01,0x13,0x00,0x09,0xb1,0x00,0x01,0xb8,0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x00,0x00,0x01,0x00,0xb9,0xff,0x88,0x01,0xe5,0x03,0x48,0x00,0x11,0x00,0x06,0xb3,0x07,0x00,0x01,0x32,0x2b,0x05,0x26,0x26,0x35,0x35,0x34,0x36,0x37,0x15,0x0e,0x02,0x15, +0x15,0x14,0x16,0x16,0x17,0x01,0xe5,0x8f,0x9d,0x9d,0x8f,0x40,0x5f,0x33,0x33,0x5f,0x40,0x78,0x20,0xcc,0x9a,0xb4,0x9a,0xcc,0x20,0x57,0x0f,0x54,0x7d,0x4f,0xb4,0x4e,0x7e,0x54,0x0f,0x00,0x00,0x01,0x00,0x73,0xff,0x88,0x01,0x9f,0x03,0x48,0x00,0x11,0x00,0x06,0xb3,0x0b,0x00,0x01,0x32,0x2b,0x17,0x35,0x3e,0x02,0x35,0x35,0x34,0x26, +0x26,0x27,0x35,0x16,0x16,0x15,0x15,0x14,0x06,0x73,0x41,0x5e,0x33,0x33,0x5e,0x41,0x8f,0x9d,0x9d,0x78,0x57,0x0f,0x54,0x7e,0x4e,0xb4,0x4f,0x7d,0x54,0x0f,0x57,0x20,0xcc,0x9a,0xb4,0x9a,0xcc,0x00,0x00,0x00,0x00,0x01,0x00,0x4b,0xff,0x92,0x01,0xf9,0x03,0x3e,0x00,0x24,0x00,0x3d,0x40,0x3a,0x1b,0x01,0x01,0x02,0x01,0x4c,0x00,0x03, +0x00,0x04,0x02,0x03,0x04,0x69,0x00,0x02,0x00,0x01,0x05,0x02,0x01,0x67,0x00,0x05,0x00,0x00,0x05,0x59,0x00,0x05,0x05,0x00,0x61,0x06,0x01,0x00,0x05,0x00,0x51,0x01,0x00,0x23,0x21,0x15,0x13,0x12,0x10,0x0b,0x09,0x08,0x06,0x00,0x24,0x01,0x24,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x36, +0x27,0x27,0x26,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x07,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x01,0xcc,0x58,0x68,0x07,0x0f,0x05,0x28,0x41,0x73,0x73,0x41,0x28,0x05,0x0f,0x07,0x68,0x58,0x2d,0x2d,0x2f,0x34,0x04,0x0f,0x05,0x42,0x4b,0x4b,0x42,0x05,0x0f,0x04,0x34,0x2f,0x2d,0x6e,0x57,0x4f,0xa4,0x35, +0x2f,0x50,0x2f,0x35,0xa4,0x4f,0x57,0x50,0x2b,0x2b,0xa4,0x3b,0x47,0x07,0x07,0x4e,0x3a,0xa4,0x2b,0x2b,0x50,0x00,0x00,0x00,0x00,0x01,0x00,0x5f,0xff,0x92,0x02,0x0d,0x03,0x3e,0x00,0x26,0x00,0x38,0x40,0x35,0x09,0x01,0x04,0x03,0x01,0x4c,0x00,0x02,0x00,0x01,0x03,0x02,0x01,0x69,0x00,0x03,0x00,0x04,0x00,0x03,0x04,0x67,0x00,0x00, +0x05,0x05,0x00,0x59,0x00,0x00,0x00,0x05,0x61,0x06,0x01,0x05,0x00,0x05,0x51,0x00,0x00,0x00,0x26,0x00,0x25,0x21,0x26,0x21,0x2c,0x21,0x07,0x09,0x1b,0x2b,0x17,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x37,0x26,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x17, +0x17,0x16,0x06,0x06,0x23,0x5f,0x2d,0x2f,0x37,0x07,0x19,0x09,0x3a,0x33,0x33,0x3a,0x09,0x19,0x07,0x37,0x2f,0x2d,0x2d,0x3b,0x59,0x2d,0x08,0x19,0x08,0x2b,0x41,0x7d,0x7d,0x40,0x2c,0x08,0x19,0x08,0x2d,0x59,0x3b,0x6e,0x50,0x2b,0x2b,0xa4,0x39,0x4f,0x09,0x08,0x46,0x39,0xa4,0x2b,0x2b,0x50,0x27,0x4a,0x35,0xa4,0x35,0x2f,0x50,0x2f, +0x35,0xa4,0x34,0x4b,0x27,0x00,0x00,0x00,0x00,0x01,0x00,0xcd,0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x07,0x00,0x28,0x40,0x25,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x17,0x11, +0x33,0x15,0x23,0x11,0x33,0x15,0xcd,0xf5,0x9b,0x9b,0x6e,0x03,0xac,0x50,0xfc,0xf4,0x50,0x00,0x00,0x00,0x00,0x01,0x00,0x96,0xff,0x92,0x01,0x8b,0x03,0x3e,0x00,0x07,0x00,0x28,0x40,0x25,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x03,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00, +0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x17,0x35,0x33,0x11,0x23,0x35,0x33,0x11,0x96,0x9b,0x9b,0xf5,0x6e,0x50,0x03,0x0c,0x50,0xfc,0x54,0x00,0x00,0x00,0xff,0xff,0x00,0x4b,0xff,0x92,0x01,0xf9,0x03,0x3e,0x02,0x06,0x03,0x45,0x00,0x00,0xff,0xff,0x00,0x5f,0xff,0x92,0x02,0x0d,0x03,0x3e,0x02,0x06,0x03,0x46,0x00,0x00, +0x00,0x01,0x00,0x6e,0x00,0x00,0x01,0xef,0x02,0xda,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x33,0x03,0x13,0x33,0x03,0x13,0xf3,0x85,0x85,0xfc,0x85,0x85,0x01,0x6b,0x01,0x6f,0xfe,0x93,0xfe,0x93, +0x00,0x01,0x00,0x96,0x00,0x00,0x01,0xc5,0x02,0xda,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x21,0x03,0x13,0x33,0x03,0x13,0x01,0x1d,0x87,0x87,0xa8,0x87,0x87,0x01,0x6b,0x01,0x6f,0xfe,0x93,0xfe, +0x93,0x00,0x00,0x00,0x00,0x01,0x00,0x69,0x00,0x00,0x01,0xea,0x02,0xda,0x00,0x05,0x00,0x18,0x40,0x15,0x05,0x02,0x02,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x12,0x10,0x02,0x06,0x18,0x2b,0x21,0x23,0x13,0x03,0x33,0x13,0x01,0x65,0xfc,0x85,0x85,0xfc,0x85,0x01,0x6d,0x01,0x6d,0xfe,0x91,0x00,0x00,0x00, +0x00,0x01,0x00,0x93,0x00,0x00,0x01,0xc2,0x02,0xda,0x00,0x05,0x00,0x18,0x40,0x15,0x05,0x02,0x02,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x12,0x10,0x02,0x06,0x18,0x2b,0x21,0x23,0x13,0x03,0x33,0x13,0x01,0x3b,0xa8,0x87,0x87,0xa8,0x87,0x01,0x6d,0x01,0x6d,0xfe,0x91,0x00,0x00,0x00,0x00,0x01,0x00,0xcd, +0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x17,0x11,0x33,0x15,0x23,0x11,0xcd,0xf5,0x9b,0x6e,0x03,0xac,0x50,0xfc,0xa4,0x00,0x00,0x00, +0x00,0x01,0x00,0xcd,0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x17,0x11,0x33,0x11,0x33,0x15,0xcd,0x5a,0x9b,0x6e,0x03,0xac,0xfc,0xa4, +0x50,0x00,0x00,0x00,0x00,0x01,0x00,0x87,0xff,0x92,0x01,0xea,0x03,0x48,0x00,0x26,0x00,0x5c,0x4b,0xb0,0x0e,0x50,0x58,0x40,0x20,0x05,0x01,0x04,0x03,0x01,0x03,0x04,0x72,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x1b,0x40,0x21,0x05,0x01,0x04,0x03, +0x01,0x03,0x04,0x01,0x80,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x59,0x40,0x0d,0x00,0x00,0x00,0x26,0x00,0x26,0x2c,0x21,0x2b,0x23,0x06,0x06,0x1a,0x2b,0x13,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x06,0x06,0x15,0x14,0x16,0x33, +0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x37,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0xb9,0x54,0x46,0x45,0x52,0x22,0x14,0x79,0x36,0x24,0x41,0x37,0x87,0x87,0x5f,0x73,0x09,0x21,0x25,0x85,0x21,0x14,0x1e,0x1f,0x1c,0x24,0x02,0x9c,0x1b,0x42,0x4f,0x4e,0x41,0x2b,0x53,0x21,0xca,0x5a,0x6e,0x25,0x3c,0x45,0x50, +0x70,0x5f,0x10,0x43,0x61,0x3b,0xd6,0x35,0x49,0x13,0x1a,0x27,0x24,0x1d,0x1b,0x00,0x00,0x01,0x00,0x96,0xff,0x92,0x01,0x8b,0x03,0x3e,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06, +0x18,0x2b,0x05,0x11,0x23,0x35,0x33,0x11,0x01,0x31,0x9b,0xf5,0x6e,0x03,0x5c,0x50,0xfc,0x54,0x00,0x00,0x00,0x01,0x00,0x96,0xff,0x92,0x01,0x8b,0x03,0x3e,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x03,0x01,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05, +0x11,0x11,0x04,0x06,0x18,0x2b,0x17,0x35,0x33,0x11,0x33,0x11,0x96,0x9b,0x5a,0x6e,0x50,0x03,0x5c,0xfc,0x54,0x00,0x00,0x00,0x00,0x01,0x00,0x78,0xff,0x92,0x01,0xdb,0x03,0x48,0x00,0x26,0x00,0x54,0x4b,0xb0,0x0e,0x50,0x58,0x40,0x1f,0x00,0x00,0x01,0x03,0x01,0x00,0x72,0x00,0x04,0x00,0x01,0x00,0x04,0x01,0x69,0x00,0x03,0x02,0x02, +0x03,0x57,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x03,0x02,0x4f,0x1b,0x40,0x20,0x00,0x00,0x01,0x03,0x01,0x00,0x03,0x80,0x00,0x04,0x00,0x01,0x00,0x04,0x01,0x69,0x00,0x03,0x02,0x02,0x03,0x57,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x03,0x02,0x4f,0x59,0xb7,0x2b,0x21,0x2c,0x23,0x10,0x05,0x06,0x1b,0x2b,0x01,0x23,0x35,0x34,0x26,0x23, +0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x1e,0x02,0x15,0x14,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x01,0xa9,0x5a,0x23,0x1d,0x1f,0x1e,0x14,0x21,0x85,0x25,0x21,0x09,0x73,0x5f,0x87,0x87,0x37,0x41,0x24,0x36,0x79,0x14,0x22,0x52,0x45,0x46,0x54,0x02,0x9c,0x1b,0x1d, +0x24,0x27,0x1a,0x13,0x49,0x35,0xd6,0x3b,0x61,0x43,0x10,0x5f,0x70,0x50,0x45,0x3c,0x25,0x6e,0x5a,0xca,0x21,0x53,0x2b,0x41,0x4e,0x4f,0x42,0x00,0x00,0x02,0x00,0xa0,0xff,0x88,0x01,0xe5,0x03,0x48,0x00,0x09,0x00,0x11,0x00,0x08,0xb5,0x0b,0x0a,0x09,0x00,0x02,0x32,0x2b,0x05,0x2e,0x02,0x35,0x35,0x34,0x36,0x36,0x37,0x03,0x11,0x06, +0x06,0x15,0x15,0x14,0x16,0x01,0xe5,0x62,0x93,0x50,0x50,0x93,0x62,0x55,0x46,0x50,0x50,0x78,0x10,0x6b,0xa5,0x66,0xb4,0x67,0xa4,0x6b,0x10,0xfc,0xb3,0x02,0xde,0x24,0x92,0x61,0xb4,0x5f,0x91,0x00,0x00,0x00,0x00,0x02,0x00,0x73,0xff,0x88,0x01,0xb8,0x03,0x48,0x00,0x09,0x00,0x11,0x00,0x08,0xb5,0x11,0x0a,0x01,0x00,0x02,0x32,0x2b, +0x17,0x11,0x1e,0x02,0x15,0x15,0x14,0x06,0x06,0x27,0x36,0x36,0x35,0x35,0x34,0x26,0x27,0x73,0x63,0x92,0x50,0x50,0x92,0x0e,0x46,0x50,0x50,0x46,0x78,0x03,0xc0,0x10,0x6b,0xa4,0x67,0xb4,0x66,0xa5,0x6b,0x63,0x23,0x91,0x5f,0xb4,0x61,0x92,0x24,0x00,0x00,0x01,0x00,0x8c,0x01,0x22,0x01,0xcc,0x01,0x72,0x00,0x03,0x00,0x1e,0x40,0x1b, +0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x8c,0x01,0x40,0x01,0x22,0x50,0x50,0x00,0xff,0xff,0x00,0x8c,0x01,0x22,0x01,0xcc,0x01,0x72,0x02,0x06,0x03,0x57,0x00,0x00,0x00,0x01,0x00,0x50,0x01,0x22,0x02,0x08, +0x01,0x72,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x50,0x01,0xb8,0x01,0x22,0x50,0x50,0x00,0x00,0x01,0x00,0x00,0x01,0x22,0x02,0x58,0x01,0x72,0x00,0x03,0x00,0x1e,0x40,0x1b, +0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x11,0x35,0x21,0x15,0x02,0x58,0x01,0x22,0x50,0x50,0x00,0x00,0xff,0xff,0x00,0x8c,0x01,0x22,0x01,0xcc,0x01,0x72,0x02,0x06,0x03,0x57,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x9c,0x02,0x1c, +0xff,0xe7,0x00,0x03,0x00,0x26,0xb1,0x06,0x64,0x44,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x17,0x35,0x21,0x15,0x3c,0x01,0xe0,0x64,0x4b,0x4b,0x00,0x00,0x00,0x01,0x00,0xdc,0xff,0x60,0x01,0x86, +0x00,0x91,0x00,0x0f,0x00,0x35,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0c,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x01,0x3d,0x01,0x4e,0x1b,0x40,0x11,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x59,0x40,0x0a,0x00,0x00,0x00,0x0f,0x00,0x0f,0x17,0x03,0x09,0x17,0x2b,0x17,0x37,0x36,0x36,0x35, +0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x06,0x07,0x07,0xdc,0x38,0x09,0x0a,0x1c,0x19,0x65,0x16,0x19,0x0e,0x0b,0x2d,0xa0,0x7b,0x14,0x2a,0x0f,0x1d,0x39,0x13,0x14,0x38,0x1d,0x14,0x38,0x19,0x63,0x00,0x00,0xff,0xff,0x00,0x69,0xff,0x60,0x02,0x05,0x00,0x91,0x00,0x26,0x03,0x5d,0x8d,0x00,0x00,0x06,0x03,0x5d,0x7f,0x00,0x00,0x00, +0x00,0x02,0x00,0x69,0x01,0xa9,0x01,0xed,0x02,0xda,0x00,0x0f,0x00,0x1f,0x00,0x24,0x40,0x21,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x01,0x38,0x00,0x4e,0x10,0x10,0x00,0x00,0x10,0x1f,0x10,0x1f,0x18,0x17,0x00,0x0f,0x00,0x0f,0x17,0x06,0x09,0x17,0x2b,0x01,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x23,0x26,0x26,0x35, +0x34,0x36,0x37,0x37,0x23,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x01,0xed,0x38,0x09,0x0a,0x1c,0x19,0x65,0x16,0x19,0x0e,0x0b,0x2d,0x76,0x38,0x09,0x0a,0x1c,0x19,0x65,0x16,0x19,0x0e,0x0b,0x2d,0x02,0xda,0x7b,0x13,0x2b,0x0f,0x1d,0x39,0x13,0x14,0x39,0x1c,0x14,0x38,0x19,0x63,0x7b,0x13,0x2b, +0x0f,0x1d,0x39,0x13,0x14,0x39,0x1c,0x14,0x38,0x19,0x63,0x00,0xff,0xff,0x00,0x69,0x01,0xaf,0x01,0xef,0x02,0xe0,0x00,0x27,0x03,0x5d,0xff,0x8d,0x02,0x4f,0x01,0x07,0x03,0x5d,0x00,0x69,0x02,0x4f,0x00,0x12,0xb1,0x00,0x01,0xb8,0x02,0x4f,0xb0,0x35,0x2b,0xb1,0x01,0x01,0xb8,0x02,0x4f,0xb0,0x35,0x2b,0x00,0x00,0x00,0x01,0x00,0xd2, +0x01,0xa9,0x01,0x7c,0x02,0xda,0x00,0x0f,0x00,0x19,0x40,0x16,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x01,0x38,0x00,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x17,0x03,0x09,0x17,0x2b,0x01,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x01,0x7c,0x38,0x09,0x0a,0x1c,0x19,0x65,0x16,0x19,0x0e,0x0b,0x2d, +0x02,0xda,0x7b,0x13,0x2b,0x0f,0x1d,0x39,0x13,0x14,0x39,0x1c,0x14,0x38,0x19,0x63,0xff,0xff,0x00,0xdc,0x01,0xa9,0x01,0x86,0x02,0xda,0x03,0x07,0x03,0x5d,0x00,0x00,0x02,0x49,0x00,0x09,0xb1,0x00,0x01,0xb8,0x02,0x49,0xb0,0x35,0x2b,0x00,0x00,0x00,0x00,0x01,0x00,0xd2,0x01,0xa9,0x01,0x7c,0x02,0xda,0x00,0x0f,0x00,0x13,0x40,0x10, +0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x00,0x4e,0x17,0x10,0x02,0x09,0x18,0x2b,0x01,0x23,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x7c,0x64,0x2d,0x0b,0x0e,0x19,0x16,0x65,0x19,0x1c,0x0a,0x09,0x01,0xa9,0x63,0x19,0x38,0x14,0x1d,0x38,0x14,0x13,0x39,0x1d,0x0f,0x2a,0x14,0x00,0x00,0x00, +0x00,0x02,0x00,0x69,0x01,0xa9,0x01,0xef,0x02,0xda,0x00,0x0f,0x00,0x1f,0x00,0x17,0x40,0x14,0x02,0x01,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x01,0x38,0x00,0x4e,0x17,0x17,0x17,0x10,0x04,0x09,0x1a,0x2b,0x01,0x23,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x23,0x27,0x26,0x26,0x35,0x34,0x36,0x37, +0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0xef,0x64,0x2d,0x0b,0x0e,0x19,0x16,0x65,0x19,0x1c,0x0a,0x09,0xa4,0x64,0x2d,0x0b,0x0e,0x19,0x16,0x65,0x19,0x1c,0x0a,0x09,0x01,0xa9,0x63,0x19,0x38,0x14,0x1d,0x38,0x14,0x13,0x39,0x1d,0x0f,0x2a,0x14,0x7b,0x63,0x19,0x38,0x14,0x1d,0x38,0x14,0x13,0x39,0x1d,0x0f,0x2a,0x14,0x00,0x00,0x00, +0x00,0x02,0x00,0x1e,0x00,0x28,0x02,0x33,0x02,0x08,0x00,0x05,0x00,0x0b,0x00,0x33,0x40,0x30,0x0a,0x07,0x04,0x01,0x04,0x01,0x00,0x01,0x4c,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x09,0x08,0x00,0x05,0x00,0x05,0x12,0x06, +0x09,0x17,0x2b,0x25,0x27,0x37,0x33,0x07,0x17,0x21,0x27,0x37,0x33,0x07,0x17,0x01,0xcc,0xc0,0xbf,0x68,0xc4,0xc4,0xfe,0xab,0xc0,0xbf,0x6a,0xc4,0xc4,0x28,0xf0,0xf0,0xee,0xf2,0xf0,0xf0,0xee,0xf2,0x00,0x00,0x00,0x02,0x00,0x25,0x00,0x28,0x02,0x3a,0x02,0x08,0x00,0x05,0x00,0x0b,0x00,0x33,0x40,0x30,0x0a,0x07,0x04,0x01,0x04,0x01, +0x00,0x01,0x4c,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x09,0x08,0x00,0x05,0x00,0x05,0x12,0x06,0x09,0x17,0x2b,0x25,0x37,0x27,0x33,0x17,0x07,0x21,0x37,0x27,0x33,0x17,0x07,0x01,0x12,0xc0,0xc1,0x69,0xc0,0xbf,0xfe,0xab, +0xc0,0xc1,0x67,0xc0,0xbf,0x28,0xf1,0xef,0xf0,0xf0,0xf1,0xef,0xf0,0xf0,0x00,0x00,0x00,0x01,0x00,0x93,0x00,0x28,0x01,0xc6,0x02,0x08,0x00,0x05,0x00,0x25,0x40,0x22,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03, +0x09,0x17,0x2b,0x25,0x27,0x37,0x33,0x07,0x17,0x01,0x5d,0xca,0xca,0x66,0xcc,0xcf,0x28,0xf0,0xf0,0xee,0xf2,0x00,0x00,0x00,0x00,0x01,0x00,0x93,0x00,0x28,0x01,0xc6,0x02,0x08,0x00,0x05,0x00,0x25,0x40,0x22,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f, +0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x09,0x17,0x2b,0x37,0x37,0x27,0x33,0x17,0x07,0x96,0xcc,0xcf,0x69,0xca,0xca,0x28,0xee,0xf2,0xf0,0xf0,0xff,0xff,0x00,0x14,0x01,0xa3,0x02,0x44,0x02,0xd5,0x00,0x27,0x03,0x2a,0xff,0x42,0x02,0x43,0x00,0x27,0x03,0x2a,0x00,0x09,0x02,0x43,0x01,0x07,0x03,0x2a,0x00,0xcf,0x02,0x43,0x00,0x1b, +0xb1,0x00,0x01,0xb8,0x02,0x43,0xb0,0x35,0x2b,0xb1,0x01,0x01,0xb8,0x02,0x43,0xb0,0x35,0x2b,0xb1,0x02,0x01,0xb8,0x02,0x43,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8f,0x01,0xae,0x01,0xc9,0x02,0xda,0x00,0x26,0x03,0x6b,0x96,0x00,0x00,0x06,0x03,0x6b,0x6a,0x00,0x00,0x00,0x00,0x01,0x00,0xf9,0x01,0xae,0x01,0x5f,0x02,0xda,0x00,0x03, +0x00,0x19,0x40,0x16,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x01,0x4e,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x01,0x03,0x33,0x03,0x01,0x01,0x08,0x66,0x07,0x01,0xae,0x01,0x2c,0xfe,0xd4,0x00,0x00,0x00,0x02,0xfe,0x34,0x01,0x22,0x01,0xcc,0x01,0x72,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x02,0x01, +0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x2d,0x01,0x9f,0xfc,0x68,0x01,0x9f,0x01,0x22,0x50,0x50,0x50,0x50,0x00,0x00,0x03,0xfb,0xdc, +0x01,0x22,0x01,0xcc,0x01,0x72,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x36,0x40,0x33,0x04,0x02,0x02,0x00,0x01,0x01,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x01,0x5f,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x00,0x01,0x4f,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11, +0x09,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x0f,0x01,0xbd,0xfa,0x10,0x01,0xbd,0x5f,0x01,0xb8,0x01,0x22,0x50,0x50,0x50,0x50,0x50,0x50,0x00,0x00,0x00,0x02,0xf9,0x4d,0xff,0x74,0x01,0xf4,0x03,0x20,0x00,0x29,0x00,0x50,0x00,0x84,0xb5,0x33,0x01,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58, +0x40,0x24,0x0b,0x05,0x02,0x02,0x0c,0x06,0x02,0x01,0x00,0x02,0x01,0x67,0x08,0x01,0x00,0x0f,0x0d,0x0e,0x03,0x07,0x00,0x07,0x65,0x09,0x01,0x03,0x03,0x04,0x61,0x0a,0x01,0x04,0x04,0x40,0x03,0x4e,0x1b,0x40,0x2b,0x0a,0x01,0x04,0x09,0x01,0x03,0x02,0x04,0x03,0x69,0x0b,0x05,0x02,0x02,0x0c,0x06,0x02,0x01,0x00,0x02,0x01,0x67,0x08, +0x01,0x00,0x07,0x07,0x00,0x59,0x08,0x01,0x00,0x00,0x07,0x61,0x0f,0x0d,0x0e,0x03,0x07,0x00,0x07,0x51,0x59,0x40,0x20,0x2a,0x2a,0x00,0x00,0x2a,0x50,0x2a,0x4f,0x49,0x47,0x46,0x44,0x3e,0x3c,0x3b,0x39,0x2d,0x2b,0x00,0x29,0x00,0x28,0x21,0x26,0x21,0x26,0x11,0x16,0x21,0x10,0x09,0x1d,0x2b,0x05,0x35,0x33,0x32,0x36,0x27,0x27,0x26, +0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x06,0x23,0x21,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x37,0x26,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15, +0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x06,0x23,0xfe,0x34,0x2d,0x2f,0x37,0x07,0x19,0x04,0x0c,0x0f,0xfa,0x8f,0x05,0x75,0x11,0x0f,0x05,0x19,0x07,0x37,0x2f,0x2d,0x2d,0x3b,0x59,0x2d,0x08,0x19,0x08,0x2b,0x41,0x7d,0x7d,0x40,0x2c,0x08,0x19,0x08,0x2d,0x59,0x3b,0x01,0xe5,0x2d,0x2f,0x37,0x07,0x19,0x09,0x3a,0x33,0x33,0x3a,0x09,0x19, +0x07,0x37,0x2f,0x2d,0x2d,0x3b,0x59,0x2d,0x08,0x19,0x08,0x2b,0x41,0x7d,0x7d,0x40,0x2c,0x08,0x19,0x08,0x2d,0x59,0x3b,0x8c,0x50,0x2b,0x2b,0xa4,0x1e,0x33,0x13,0x50,0x11,0x33,0x20,0xa4,0x2b,0x2b,0x50,0x27,0x4a,0x35,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x34,0x4b,0x27,0x50,0x2b,0x2b,0xa4,0x39,0x4f,0x09,0x08,0x46,0x39,0xa4,0x2b, +0x2b,0x50,0x27,0x4a,0x35,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x34,0x4b,0x27,0x00,0x00,0x01,0xfb,0xa6,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0c,0x00,0x2a,0x40,0x27,0x02,0x01,0x02,0x03,0x01,0x4c,0x00,0x00,0x03,0x00,0x85,0x00,0x01,0x02,0x01,0x86,0x00,0x03,0x02,0x02,0x03,0x57,0x00,0x03,0x03,0x02,0x60,0x00,0x02,0x03,0x02,0x50, +0x11,0x13,0x12,0x10,0x04,0x09,0x1a,0x2b,0x13,0x33,0x13,0x03,0x23,0x37,0x36,0x37,0x21,0x35,0x21,0x26,0x27,0xbc,0x6a,0xe7,0xe8,0x69,0xbe,0x08,0x08,0xfa,0x1c,0x05,0xe4,0x0a,0x0a,0x02,0x71,0xfe,0xd9,0xfe,0xd9,0xef,0x0a,0x06,0x50,0x08,0x0c,0x00,0x00,0x01,0xfe,0x5c,0xff,0xab,0x01,0x59,0x02,0xee,0x00,0x07,0x00,0x47,0x4b,0xb0, +0x18,0x50,0x58,0x40,0x14,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x04,0x01,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x38,0x03,0x4e,0x1b,0x40,0x19,0x00,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x59,0x40,0x0c,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11, +0x11,0x05,0x09,0x19,0x2b,0x17,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0xff,0xfd,0x5d,0x02,0xa3,0x5a,0x55,0x01,0x77,0x50,0x01,0x7c,0xfc,0xbd,0x00,0x00,0x01,0xfd,0xfd,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0e,0x00,0x2a,0x40,0x27,0x02,0x01,0x02,0x03,0x01,0x4c,0x00,0x00,0x03,0x00,0x85,0x00,0x01,0x02,0x01,0x86,0x00,0x03,0x02,0x02, +0x03,0x57,0x00,0x03,0x03,0x02,0x60,0x00,0x02,0x03,0x02,0x50,0x11,0x23,0x12,0x10,0x04,0x09,0x1a,0x2b,0x13,0x33,0x13,0x03,0x23,0x37,0x36,0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x27,0xbc,0x6a,0xe7,0xe8,0x69,0xbe,0x03,0x07,0x03,0xfc,0x76,0x03,0x8a,0x04,0x08,0x05,0x02,0x71,0xfe,0xd9,0xfe,0xd9,0xef,0x04,0x08,0x04,0x50,0x05,0x0a, +0x05,0x00,0x00,0x00,0x00,0x02,0xfb,0xa5,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0e,0x00,0x1a,0x00,0x3c,0x40,0x39,0x19,0x13,0x0d,0x03,0x00,0x01,0x01,0x4c,0x04,0x01,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x68,0x04,0x01,0x02,0x02,0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x02,0x03,0x4f,0x0f,0x0f,0x00,0x00,0x0f, +0x1a,0x0f,0x1a,0x18,0x17,0x00,0x0e,0x00,0x0e,0x14,0x11,0x23,0x08,0x09,0x19,0x2b,0x27,0x37,0x36,0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x33,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x70,0xbe,0x03,0x07,0x03,0xfb,0x4a,0x04,0xb6,0x04,0x08,0x05,0xba,0x6a,0xe7,0xe8,0xc3,0xbe,0x13,0x1a,0x05, +0x05,0x1c,0x15,0xba,0x6a,0xe7,0xe8,0x23,0xef,0x04,0x08,0x04,0x50,0x05,0x0a,0x05,0xeb,0xfe,0xd9,0xfe,0xd9,0xef,0x17,0x1c,0x04,0x05,0x1f,0x19,0xeb,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x00,0x00,0x01,0xfd,0xfd,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0a,0x00,0x2e,0x40,0x2b,0x08,0x01,0x00,0x01,0x01,0x4c,0x00,0x02,0x01,0x03,0x02,0x57, +0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x0a,0x00,0x0a,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x25,0x27,0x21,0x35,0x21,0x37,0x33,0x07,0x07,0x17,0x17,0x01,0x8a,0xc8,0xfd,0x3b,0x02,0xc5,0xc9,0x69,0xbe,0x2e,0x32,0xba,0x23,0xff,0x50,0xff,0xef,0x37,0x3d,0xeb, +0x00,0x02,0xfb,0xa5,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0a,0x00,0x12,0x00,0x3c,0x40,0x39,0x10,0x0c,0x08,0x03,0x00,0x01,0x01,0x4c,0x04,0x01,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x04,0x01,0x02,0x02,0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x02,0x03,0x4f,0x0b,0x0b,0x00,0x00,0x0b,0x12,0x0b,0x12,0x0e, +0x0d,0x00,0x0a,0x00,0x0a,0x11,0x11,0x11,0x08,0x09,0x19,0x2b,0x37,0x27,0x21,0x35,0x21,0x37,0x33,0x07,0x07,0x17,0x17,0x33,0x03,0x13,0x33,0x07,0x07,0x17,0x17,0x5e,0xc8,0xfc,0x0f,0x03,0xf1,0xc9,0x69,0xbe,0x2e,0x32,0xba,0xc2,0xe7,0xe8,0x69,0xbe,0x2e,0x32,0xba,0x23,0xff,0x50,0xff,0xef,0x37,0x3d,0xeb,0x01,0x27,0x01,0x27,0xef, +0x37,0x3d,0xeb,0x00,0x00,0x01,0xfe,0x11,0x00,0xdc,0x01,0xef,0x01,0xb8,0x00,0x1d,0x00,0x6e,0x4b,0xb0,0x11,0x50,0x58,0x40,0x22,0x00,0x04,0x00,0x06,0x03,0x04,0x06,0x69,0x00,0x03,0x01,0x00,0x03,0x59,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x03,0x03,0x00,0x61,0x05,0x07,0x02,0x00,0x03,0x00,0x51,0x1b,0x40,0x29,0x00,0x05, +0x01,0x00,0x01,0x05,0x00,0x80,0x00,0x04,0x00,0x06,0x03,0x04,0x06,0x69,0x00,0x03,0x01,0x00,0x03,0x59,0x00,0x02,0x00,0x01,0x05,0x02,0x01,0x67,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x03,0x00,0x51,0x59,0x40,0x15,0x01,0x00,0x19,0x17,0x14,0x13,0x10,0x0e,0x0a,0x08,0x05,0x04,0x03,0x02,0x00,0x1d,0x01,0x1d,0x08,0x09,0x16,0x2b, +0x37,0x22,0x27,0x21,0x35,0x21,0x15,0x14,0x16,0x33,0x32,0x3e,0x03,0x33,0x32,0x16,0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x22,0x0e,0x03,0x64,0x62,0x27,0xfe,0x36,0x02,0x0d,0x27,0x1f,0x1a,0x27,0x23,0x29,0x39,0x2a,0x46,0x55,0x55,0x26,0x20,0x1b,0x27,0x24,0x29,0x38,0xdc,0x46,0x50,0x05,0x22,0x24,0x1d,0x2b,0x2c,0x1d,0x50,0x41,0x3c, +0x3c,0x20,0x26,0x1d,0x2b,0x2c,0x1d,0x00,0xff,0xff,0xfe,0x0c,0xff,0x92,0x01,0xcc,0x03,0x3e,0x00,0x27,0x03,0x45,0xfd,0xc1,0x00,0x00,0x00,0x06,0x03,0x45,0xd3,0x00,0x00,0x03,0xf9,0x7f,0xff,0x74,0x02,0x03,0x03,0x20,0x00,0x24,0x00,0x4a,0x00,0x4f,0x00,0x8d,0xb7,0x4e,0x4d,0x1b,0x03,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58, +0x40,0x24,0x0b,0x08,0x02,0x02,0x0c,0x07,0x02,0x01,0x05,0x02,0x01,0x67,0x0d,0x01,0x05,0x0f,0x06,0x0e,0x03,0x00,0x05,0x00,0x65,0x0a,0x01,0x04,0x04,0x03,0x61,0x09,0x01,0x03,0x03,0x40,0x04,0x4e,0x1b,0x40,0x2b,0x09,0x01,0x03,0x0a,0x01,0x04,0x02,0x03,0x04,0x69,0x0b,0x08,0x02,0x02,0x0c,0x07,0x02,0x01,0x05,0x02,0x01,0x67,0x0d, +0x01,0x05,0x00,0x00,0x05,0x59,0x0d,0x01,0x05,0x05,0x00,0x61,0x0f,0x06,0x0e,0x03,0x00,0x05,0x00,0x51,0x59,0x40,0x27,0x26,0x25,0x01,0x00,0x49,0x47,0x42,0x41,0x40,0x3f,0x3a,0x38,0x37,0x35,0x30,0x2e,0x2d,0x2b,0x25,0x4a,0x26,0x4a,0x23,0x21,0x15,0x13,0x12,0x10,0x0b,0x09,0x08,0x06,0x00,0x24,0x01,0x24,0x10,0x09,0x16,0x2b,0x05, +0x22,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x07,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x21,0x22,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x07,0x21, +0x15,0x21,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x01,0x16,0x17,0x35,0x06,0xfb,0x00,0x58,0x68,0x07,0x0f,0x05,0x28,0x41,0x73,0x73,0x41,0x28,0x05,0x0f,0x07,0x68,0x58,0x2d,0x2d,0x2f,0x34,0x04,0x0f,0x05,0x42,0x4b,0x4b,0x42,0x05,0x0f,0x04,0x34,0x2f,0x2d,0x01,0xe8,0x58,0x68,0x07,0x0f,0x05,0x28,0x41,0x73,0x73,0x41,0x28,0x05, +0x0f,0x07,0x68,0x58,0x2d,0x2d,0x2f,0x34,0x04,0x0f,0x06,0x27,0x05,0x5f,0xfa,0xa3,0x25,0x06,0x0f,0x04,0x34,0x2f,0x2d,0xfe,0xfb,0x17,0x14,0x14,0x8c,0x57,0x4f,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x4f,0x57,0x50,0x2b,0x2b,0xa4,0x3b,0x47,0x07,0x07,0x4e,0x3a,0xa4,0x2b,0x2b,0x50,0x57,0x4f,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x4f, +0x57,0x50,0x2b,0x2b,0xa4,0x41,0x23,0x50,0x25,0x3f,0xa4,0x2b,0x2b,0x50,0x01,0xd9,0x02,0x06,0x0f,0x05,0x00,0x05,0xf9,0x7f,0xff,0x74,0x02,0x03,0x03,0x20,0x00,0x25,0x00,0x29,0x00,0x2d,0x00,0x32,0x00,0x40,0x00,0xaf,0xb6,0x30,0x2e,0x02,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x36,0x0a,0x05,0x02,0x02,0x10,0x0b,0x06, +0x03,0x01,0x09,0x02,0x01,0x67,0x00,0x07,0x0e,0x01,0x00,0x07,0x00,0x65,0x00,0x04,0x04,0x03,0x61,0x00,0x03,0x03,0x40,0x4d,0x0f,0x01,0x09,0x09,0x08,0x5f,0x00,0x08,0x08,0x38,0x4d,0x00,0x0d,0x0d,0x0c,0x61,0x11,0x01,0x0c,0x0c,0x42,0x0c,0x4e,0x1b,0x40,0x34,0x00,0x03,0x00,0x04,0x02,0x03,0x04,0x69,0x0a,0x05,0x02,0x02,0x10,0x0b, +0x06,0x03,0x01,0x09,0x02,0x01,0x67,0x00,0x07,0x0e,0x01,0x00,0x07,0x00,0x65,0x0f,0x01,0x09,0x09,0x08,0x5f,0x00,0x08,0x08,0x38,0x4d,0x00,0x0d,0x0d,0x0c,0x61,0x11,0x01,0x0c,0x0c,0x42,0x0c,0x4e,0x59,0x40,0x2f,0x34,0x33,0x2a,0x2a,0x26,0x26,0x01,0x00,0x3b,0x38,0x33,0x40,0x34,0x3f,0x2a,0x2d,0x2a,0x2d,0x2c,0x2b,0x26,0x29,0x26, +0x29,0x28,0x27,0x24,0x22,0x1d,0x1c,0x1b,0x1a,0x15,0x13,0x12,0x10,0x0b,0x09,0x08,0x06,0x00,0x25,0x01,0x25,0x12,0x09,0x16,0x2b,0x05,0x22,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x07,0x21,0x15,0x21,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x01, +0x03,0x33,0x03,0x37,0x35,0x21,0x15,0x25,0x16,0x17,0x35,0x06,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfb,0x00,0x58,0x68,0x07,0x0f,0x05,0x28,0x41,0x73,0x73,0x41,0x28,0x05,0x0f,0x07,0x68,0x58,0x2d,0x2d,0x2f,0x34,0x04,0x0f,0x06,0x27,0x01,0x25,0xfe,0xdd,0x25,0x06,0x0f,0x04,0x34,0x2f,0x2d,0x01, +0x28,0x0c,0x6a,0x0c,0x9d,0x04,0xbf,0xf8,0x25,0x0e,0x0c,0x0c,0x02,0x39,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0x8c,0x57,0x4f,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x4f,0x57,0x50,0x2b,0x2b,0xa4,0x41,0x23,0x50,0x25,0x3f,0xa4,0x2b,0x2b,0x50,0x01,0x63,0x02,0x03,0xfd,0xfd,0x4b,0x50,0x50,0x2b,0x01,0x03,0x08,0x02,0xfe,0xac, +0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0xff,0xff,0xfc,0x09,0xff,0x92,0x01,0x40,0x03,0x3e,0x00,0x27,0x03,0x45,0xfb,0xbe,0x00,0x00,0x00,0x27,0x03,0x2e,0xfd,0xf3,0x00,0x00,0x00,0x06,0x03,0x2e,0xc9,0x00,0x00,0x02,0xfe,0x43,0xff,0x92,0x01,0x45,0x03,0x3e,0x00,0x24,0x00,0x28,0x00,0x48,0x40,0x45,0x1b,0x01,0x01,0x02,0x01,0x4c, +0x06,0x01,0x03,0x00,0x04,0x02,0x03,0x04,0x67,0x00,0x02,0x00,0x01,0x05,0x02,0x01,0x67,0x00,0x05,0x00,0x00,0x05,0x57,0x00,0x05,0x05,0x00,0x5f,0x09,0x07,0x08,0x03,0x00,0x05,0x00,0x4f,0x25,0x25,0x01,0x00,0x25,0x28,0x25,0x28,0x27,0x26,0x23,0x21,0x15,0x13,0x12,0x10,0x0b,0x09,0x08,0x06,0x00,0x24,0x01,0x24,0x0a,0x09,0x16,0x2b, +0x07,0x22,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x07,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x33,0x11,0x33,0x11,0x3c,0x58,0x65,0x04,0x0a,0x03,0x26,0x41,0x6e,0x6e,0x41,0x26,0x03,0x0a,0x04,0x65,0x58,0x73,0x73,0x2f,0x32,0x02,0x0a, +0x03,0x35,0x32,0x31,0x36,0x03,0x0a,0x02,0x32,0x2f,0x73,0xb4,0x5a,0x6e,0x57,0x4f,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x4f,0x57,0x50,0x2b,0x2b,0xa4,0x39,0x4a,0x09,0x09,0x4a,0x39,0xa4,0x2b,0x2b,0x50,0x03,0xac,0xfc,0x54,0x00,0xff,0xff,0xfe,0x34,0xff,0x92,0x01,0xf4,0x03,0x3e,0x00,0x27,0x03,0x46,0xfd,0xd5,0x00,0x00,0x00,0x06, +0x03,0x46,0xe7,0x00,0x00,0x02,0xfe,0xbb,0xff,0x92,0x01,0x45,0x03,0x3e,0x00,0x07,0x00,0x0b,0x00,0x33,0x40,0x30,0x04,0x01,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x02,0x03,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07, +0x11,0x11,0x11,0x08,0x09,0x19,0x2b,0x05,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x33,0x11,0x33,0x11,0xfe,0xbb,0x01,0x81,0xfe,0xd9,0x01,0x27,0xaf,0x5a,0x6e,0x03,0xac,0x50,0xfc,0xf4,0x50,0x03,0xac,0xfc,0x54,0xff,0xff,0xfe,0x8e,0xff,0x92,0x01,0x9f,0x03,0x3e,0x00,0x27,0x03,0x47,0xfd,0xc1,0x00,0x00,0x01,0x06,0x04,0x1c,0x9c,0x0f, +0x00,0x08,0xb1,0x01,0x01,0xb0,0x0f,0xb0,0x35,0x2b,0x00,0x00,0x00,0x03,0xfe,0x3e,0xff,0x92,0x02,0x35,0x03,0x3e,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x5e,0x40,0x5b,0x00,0x04,0x00,0x03,0x06,0x04,0x03,0x67,0x09,0x07,0x02,0x05,0x13,0x10,0x02,0x0a,0x0b,0x05,0x0a,0x68,0x12,0x11,0x02,0x0b,0x0e,0x0c,0x02,0x00,0x0d,0x0b,0x00,0x67, +0x00,0x02,0x00,0x01,0x02,0x01,0x63,0x08,0x01,0x06,0x06,0x38,0x4d,0x14,0x0f,0x02,0x0d,0x0d,0x39,0x0d,0x4e,0x00,0x00,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x00,0x1f,0x00,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x15,0x09,0x1f,0x2b,0x33,0x37,0x21,0x11, +0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x13,0x21,0x15,0x21,0x33,0x33,0x37,0x23,0x53,0x27,0xfe,0xb9,0xf5,0x9b,0x9b,0xf5,0x01,0x7f,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x0e, +0xfe,0x8c,0x01,0x52,0x46,0xa0,0x22,0xa0,0xd2,0xfe,0xc0,0x50,0x03,0x0c,0x50,0xfe,0xca,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0x01,0xc7,0xb4,0xb4,0x00,0xff,0xff,0xfe,0xd4,0xff,0xf6,0x01,0x2e,0x00,0x98,0x00,0x27,0x03,0x29,0xfd,0xfa,0x00,0x00,0x00,0x06,0x03,0x29,0xb0,0x00,0xff,0xff,0xfc,0x90,0xff,0xf6,0x01,0x1a, +0x00,0x98,0x00,0x27,0x03,0x29,0xfb,0xb6,0x00,0x00,0x00,0x27,0x03,0x29,0xfd,0xa9,0x00,0x00,0x00,0x06,0x03,0x29,0x9c,0x00,0xff,0xff,0xfc,0x71,0xff,0xf6,0x01,0x45,0x02,0x53,0x00,0x27,0x04,0x1c,0xff,0x42,0x00,0x00,0x00,0x27,0x03,0x29,0xfb,0x97,0x00,0x00,0x00,0x07,0x03,0x29,0xfd,0x4d,0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0x82, +0xff,0xf6,0x01,0x81,0x02,0xda,0x00,0x27,0x03,0x29,0xfd,0xa8,0x00,0x00,0x00,0x06,0x03,0x30,0x9c,0x00,0xff,0xff,0xfe,0x5c,0x00,0xaa,0x02,0x03,0x01,0xea,0x00,0x27,0x03,0x33,0xfd,0xa8,0xff,0xdd,0x03,0x06,0x04,0x19,0x00,0x00,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0xdd,0xb0,0x35,0x2b,0x00,0xff,0xff,0xfe,0xd1,0xff,0xf6,0x01,0x2f, +0x02,0x30,0x00,0x27,0x03,0x2b,0xfd,0xf8,0x00,0x00,0x00,0x06,0x03,0x2b,0xb0,0x00,0xff,0xff,0xfc,0xc9,0xff,0xf6,0x00,0xdf,0x02,0x30,0x00,0x27,0x03,0x2b,0xfb,0xf0,0x00,0x00,0x00,0x27,0x03,0x2b,0xfd,0xa8,0x00,0x00,0x00,0x07,0x03,0x2b,0xff,0x60,0x00,0x00,0x00,0x00,0xff,0xff,0xfc,0x44,0x00,0x2d,0x01,0x81,0x02,0x67,0x00,0x27, +0x03,0x2b,0xfb,0x6b,0x00,0x37,0x00,0x27,0x03,0x2b,0xfd,0x2f,0x00,0x37,0x01,0x07,0x04,0x19,0xff,0x7e,0x00,0x00,0x00,0x10,0xb1,0x00,0x02,0xb0,0x37,0xb0,0x35,0x2b,0xb1,0x02,0x02,0xb0,0x37,0xb0,0x35,0x2b,0xff,0xff,0xfe,0xb3,0xff,0xf6,0x01,0x81,0x02,0xda,0x00,0x26,0x03,0x30,0x9c,0x00,0x00,0x07,0x03,0x2b,0xfd,0xda,0x00,0x00, +0x00,0x05,0xfc,0x2c,0xff,0xf6,0x01,0xae,0x02,0xda,0x00,0x14,0x00,0x21,0x00,0x2f,0x00,0x3d,0x00,0x4b,0x01,0x3b,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x1b,0x1f,0x01,0x06,0x01,0x1e,0x01,0x05,0x06,0x20,0x1a,0x02,0x03,0x00,0x21,0x01,0x04,0x03,0x16,0x01,0x08,0x04,0x15,0x01,0x07,0x0a,0x06,0x4c,0x1b,0x40,0x1b,0x1f,0x01,0x06,0x01,0x1e, +0x01,0x05,0x06,0x20,0x1a,0x02,0x03,0x00,0x21,0x01,0x04,0x03,0x16,0x01,0x08,0x04,0x15,0x01,0x09,0x0a,0x06,0x4c,0x59,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x40,0x0b,0x01,0x04,0x03,0x08,0x03,0x04,0x72,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x0c,0x01,0x05,0x05,0x06,0x61,0x00,0x06, +0x06,0x41,0x4d,0x00,0x08,0x08,0x07,0x61,0x0e,0x09,0x0d,0x03,0x07,0x07,0x3f,0x4d,0x00,0x0a,0x0a,0x07,0x61,0x0e,0x09,0x0d,0x03,0x07,0x07,0x3f,0x07,0x4e,0x1b,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x41,0x0b,0x01,0x04,0x03,0x08,0x03,0x04,0x08,0x80,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38, +0x4d,0x0c,0x01,0x05,0x05,0x06,0x61,0x00,0x06,0x06,0x41,0x4d,0x00,0x08,0x08,0x07,0x61,0x0e,0x09,0x0d,0x03,0x07,0x07,0x3f,0x4d,0x00,0x0a,0x0a,0x07,0x61,0x0e,0x09,0x0d,0x03,0x07,0x07,0x3f,0x07,0x4e,0x1b,0x40,0x3d,0x0b,0x01,0x04,0x03,0x08,0x03,0x04,0x08,0x80,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x01,0x02,0x5f, +0x00,0x02,0x02,0x38,0x4d,0x0c,0x01,0x05,0x05,0x06,0x61,0x00,0x06,0x06,0x41,0x4d,0x00,0x0a,0x0a,0x09,0x61,0x0e,0x01,0x09,0x09,0x42,0x4d,0x00,0x08,0x08,0x07,0x61,0x0d,0x01,0x07,0x07,0x3f,0x07,0x4e,0x59,0x59,0x40,0x25,0x3f,0x3e,0x31,0x30,0x23,0x22,0x00,0x00,0x46,0x43,0x3e,0x4b,0x3f,0x4a,0x38,0x35,0x30,0x3d,0x31,0x3c,0x2a, +0x27,0x22,0x2f,0x23,0x2e,0x00,0x14,0x00,0x14,0x16,0x21,0x24,0x21,0x0f,0x09,0x1a,0x2b,0x25,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0x25,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06, +0x23,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x25,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfe,0x09,0x32,0x40,0x4b,0x4b,0x41,0x7d,0x7d,0x46,0x67,0x39,0x30,0x55,0x38,0x01,0x9d,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0xca,0x01,0xae,0xfa,0xc9,0x21,0x2a,0x2b,0x20, +0x14,0x20,0x2b,0x2a,0x21,0x14,0x21,0x2a,0x2b,0x20,0x14,0x20,0x2b,0x2a,0x21,0x01,0x9b,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0xaa,0x47,0x3b,0x3b,0x47,0x55,0x35,0x60,0x42,0x39,0x5b,0x36,0x03,0x5f,0x96,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0x5a,0xd7,0x64,0x82,0x2a,0x21,0x20,0x2b,0x2b,0x20,0x21,0x2a,0xfe, +0x5c,0x2a,0x21,0x20,0x2b,0x2b,0x20,0x21,0x2a,0x05,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x00,0x04,0xfe,0x52,0x00,0x64,0x01,0xd6,0x02,0x30,0x00,0x0b,0x00,0x0f,0x00,0x1b,0x00,0x1f,0x00,0x7b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x24,0x00,0x02,0x00,0x00,0x02,0x57,0x0b,0x01,0x07,0x04,0x05,0x07,0x57,0x06,0x01,0x05,0x0a, +0x01,0x04,0x05,0x04,0x65,0x09,0x03,0x08,0x03,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x01,0x4e,0x1b,0x40,0x26,0x00,0x02,0x09,0x01,0x03,0x00,0x02,0x03,0x67,0x00,0x06,0x0b,0x01,0x07,0x04,0x06,0x07,0x67,0x00,0x05,0x0a,0x01,0x04,0x05,0x04,0x65,0x08,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x00,0x4e,0x59,0x40,0x23,0x1c, +0x1c,0x11,0x10,0x0c,0x0c,0x01,0x00,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x35,0x21,0x15,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37, +0x35,0x21,0x15,0xfe,0xa2,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xea,0x02,0x26,0xfc,0xcc,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xea,0x02,0x26,0x01,0x90,0x2b,0x25,0x24,0x2c,0x2c,0x24,0x25,0x2b,0x0a,0x50,0x50,0xfe,0xca,0x2c,0x25,0x24,0x2b,0x2b,0x24,0x25,0x2c,0x46,0x50,0x50,0x00,0x00,0x00,0xff,0xff,0xfe,0x81,0x00,0x2d,0x01,0x9f, +0x02,0x67,0x00,0x26,0x04,0x1b,0x9c,0x00,0x01,0x07,0x03,0x2b,0xfd,0xa8,0x00,0x37,0x00,0x08,0xb1,0x01,0x02,0xb0,0x37,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0xfe,0x81,0x00,0x2d,0x01,0x77,0x02,0x67,0x00,0x27,0x03,0x2b,0xfd,0xa8,0x00,0x37,0x01,0x07,0x04,0x1c,0xff,0x74,0x00,0x00,0x00,0x08,0xb1,0x00,0x02,0xb0,0x37,0xb0,0x35,0x2b, +0xff,0xff,0xfe,0xc5,0xff,0x60,0x01,0x31,0x02,0x30,0x00,0x27,0x03,0x2c,0xfd,0xf8,0x00,0x00,0x00,0x06,0x03,0x2c,0xb0,0x00,0xff,0xff,0xfc,0xbd,0xff,0x60,0x00,0xe1,0x02,0x30,0x00,0x27,0x03,0x2c,0xfd,0xa8,0x00,0x00,0x00,0x27,0x03,0x2c,0xff,0x60,0x00,0x00,0x00,0x07,0x03,0x2c,0xfb,0xf0,0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xc5, +0xff,0xfb,0x01,0x3b,0x02,0xda,0x00,0x27,0x03,0x2e,0xfd,0xe4,0x00,0x00,0x00,0x06,0x03,0x2e,0xc4,0x00,0xff,0xff,0xfc,0x68,0xff,0x92,0x01,0x9f,0x03,0x3e,0x00,0x27,0x03,0x2e,0xfb,0x87,0x00,0x00,0x00,0x27,0x03,0x2e,0xfd,0x5d,0x00,0x00,0x00,0x06,0x03,0x46,0x92,0x00,0x00,0x01,0xfd,0xf8,0x00,0x00,0x02,0x08,0x02,0x99,0x00,0x13, +0x00,0x35,0x40,0x32,0x00,0x04,0x03,0x04,0x85,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x68,0x07,0x01,0x01,0x08,0x01,0x00,0x09,0x01,0x00,0x67,0x0a,0x01,0x09,0x09,0x39,0x09,0x4e,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x09,0x1f,0x2b,0x23,0x37,0x21,0x35,0x21,0x37,0x21,0x35,0x21, +0x37,0x33,0x07,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0x98,0x3e,0xfe,0x52,0x01,0xcc,0x3a,0xfd,0xfa,0x02,0x24,0x40,0x46,0x40,0x01,0xa6,0xfe,0x3c,0x3a,0x01,0xfe,0xfd,0xe4,0x3e,0xaa,0x50,0xa0,0x50,0xaf,0xaf,0x50,0xa0,0x50,0xaa,0x00,0x00,0x00,0x00,0x01,0xfb,0xa5,0xff,0x92,0x02,0x03,0x03,0x3e,0x00,0x1b,0x00,0x4f,0x40,0x4c, +0x00,0x06,0x05,0x06,0x85,0x0e,0x01,0x0d,0x00,0x0d,0x86,0x07,0x01,0x05,0x08,0x01,0x04,0x03,0x05,0x04,0x68,0x09,0x01,0x03,0x0a,0x01,0x02,0x01,0x03,0x02,0x67,0x0b,0x01,0x01,0x00,0x00,0x01,0x57,0x0b,0x01,0x01,0x01,0x00,0x5f,0x0c,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x09,0x1f,0x2b,0x05,0x37,0x21,0x35,0x21,0x37,0x21,0x35,0x21,0x37,0x21,0x35,0x21,0x37,0x33,0x07,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0xfe,0x1f,0x44,0xfd,0x42,0x02,0xda,0x34,0xfc,0xf2,0x03,0x29,0x34,0xfc,0xa3,0x03,0x79,0x5a,0x46,0x5a,0x02,0x9f,0xfd, +0x45,0x34,0x02,0xef,0xfc,0xf6,0x34,0x03,0x3e,0xfc,0xa6,0x44,0x6e,0xba,0x4c,0x8c,0x4c,0x8c,0x4c,0xf6,0xf6,0x4c,0x8c,0x4c,0x8c,0x4c,0xba,0x00,0xff,0xff,0xfe,0x90,0xff,0xf6,0x01,0x2d,0x02,0xda,0x00,0x27,0x03,0x30,0xfe,0x0e,0x00,0x00,0x00,0x06,0x03,0x29,0xaf,0x00,0xff,0xff,0xfe,0x90,0xff,0xf6,0x01,0x4d,0x02,0xda,0x00,0x27, +0x03,0x30,0xfe,0x0e,0x00,0x00,0x00,0x06,0x03,0x2b,0xce,0x00,0xff,0xff,0xfe,0x5c,0xff,0xfb,0x01,0xb8,0x02,0xda,0x00,0x27,0x03,0x30,0xfd,0xda,0x00,0x00,0x00,0x06,0x03,0x30,0xd3,0x00,0xff,0xff,0xfb,0xfa,0xff,0xfb,0x01,0xbd,0x02,0xda,0x00,0x27,0x03,0x30,0xfb,0x78,0x00,0x00,0x00,0x27,0x03,0x30,0xfd,0xa8,0x00,0x00,0x00,0x06, +0x03,0x30,0xd8,0x00,0x00,0x04,0xfe,0x52,0xff,0xfb,0x01,0xcc,0x02,0xda,0x00,0x14,0x00,0x18,0x00,0x1e,0x00,0x2c,0x00,0xa5,0xb5,0x1a,0x01,0x04,0x07,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x32,0x00,0x05,0x0c,0x01,0x06,0x00,0x05,0x06,0x67,0x00,0x00,0x00,0x03,0x07,0x00,0x03,0x69,0x00,0x07,0x0d,0x08,0x0b,0x03,0x04,0x0a,0x07, +0x04,0x67,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x0a,0x0a,0x09,0x61,0x0e,0x01,0x09,0x09,0x42,0x09,0x4e,0x1b,0x40,0x39,0x0b,0x01,0x04,0x07,0x08,0x07,0x04,0x08,0x80,0x00,0x05,0x0c,0x01,0x06,0x00,0x05,0x06,0x67,0x00,0x00,0x00,0x03,0x07,0x00,0x03,0x69,0x00,0x07,0x0d,0x01,0x08,0x0a,0x07,0x08,0x67,0x00,0x01, +0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x0a,0x0a,0x09,0x61,0x0e,0x01,0x09,0x09,0x42,0x09,0x4e,0x59,0x40,0x25,0x20,0x1f,0x19,0x19,0x15,0x15,0x00,0x00,0x27,0x24,0x1f,0x2c,0x20,0x2b,0x19,0x1e,0x19,0x1e,0x1d,0x1c,0x15,0x18,0x15,0x18,0x17,0x16,0x00,0x14,0x00,0x14,0x16,0x21,0x24,0x21,0x0f,0x09,0x1a,0x2b,0x25,0x35,0x33, +0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x15,0x25,0x35,0x21,0x15,0x05,0x35,0x36,0x37,0x21,0x15,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfe,0x9e,0x32,0x40,0x4b,0x4b,0x41,0x7d,0x7d,0x46,0x67,0x39,0x30,0x55,0x38,0x01,0x1c,0x01,0xb8,0xfd,0xa8,0x27, +0x09,0x02,0x28,0xfc,0xef,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0xaa,0x47,0x3b,0x3b,0x47,0x55,0x35,0x60,0x42,0x39,0x5b,0x36,0x03,0x5f,0xe6,0x50,0x50,0xf0,0x24,0x13,0x19,0x50,0xd2,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0xff,0xff,0xfb,0x9c,0x00,0x67,0x02,0x0c,0x03,0x0c,0x00,0x27,0x03,0x34,0xfb,0x78, +0x00,0x00,0x00,0x27,0x03,0x34,0xfd,0xa8,0x00,0xa0,0x01,0x06,0x03,0x34,0xd8,0x00,0x00,0x08,0xb1,0x01,0x01,0xb0,0xa0,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0xfd,0xe5,0x00,0x41,0x02,0x12,0x02,0x6c,0x00,0x26,0x04,0x1b,0x0f,0x00,0x00,0x07,0x03,0x34,0xfd,0xc1,0x00,0x00,0xff,0xff,0xfd,0xcc,0xff,0x92,0x02,0x0d,0x03,0x3e,0x00,0x27, +0x03,0x34,0xfd,0xa8,0xff,0xb0,0x03,0x06,0x03,0x3d,0x00,0x00,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0xb0,0xb0,0x35,0x2b,0x00,0x00,0x03,0xfd,0xcb,0xff,0x88,0x01,0xe5,0x03,0x48,0x00,0x27,0x00,0x2d,0x00,0x31,0x00,0x4c,0x40,0x49,0x1e,0x1d,0x02,0x08,0x4a,0x27,0x00,0x02,0x01,0x49,0x0b,0x09,0x02,0x07,0x0f,0x0d,0x02,0x06,0x05,0x07, +0x06,0x68,0x0e,0x0c,0x02,0x05,0x04,0x02,0x02,0x00,0x01,0x05,0x00,0x67,0x0a,0x01,0x08,0x08,0x38,0x4d,0x03,0x01,0x01,0x01,0x39,0x01,0x4e,0x31,0x30,0x2f,0x2e,0x2d,0x2a,0x29,0x28,0x1a,0x19,0x18,0x17,0x16,0x15,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x13,0x10,0x09,0x1f,0x2b,0x05,0x26,0x26,0x27,0x21,0x07,0x23,0x37,0x23,0x07, +0x23,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x36,0x36,0x37,0x15,0x0e,0x02,0x15,0x15,0x14,0x16,0x16,0x17,0x01,0x21,0x35,0x34,0x35,0x21,0x05,0x33,0x37,0x23,0x01,0xe5,0x81,0x99,0x0f,0xfe,0x92,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46, +0x27,0x01,0x38,0x10,0x99,0x7e,0x40,0x5f,0x33,0x33,0x5f,0x40,0xfd,0x74,0x01,0x60,0xfe,0xc2,0xfe,0xf8,0xa0,0x22,0xa0,0x78,0x1d,0xac,0x81,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x7d,0xa7,0x1c,0x57,0x0f,0x54,0x7d,0x4f,0xb4,0x4e,0x7e,0x54,0x0f,0x01,0x34,0xaf,0x03,0x02,0xb4,0xb4,0x00,0x00,0x00,0x03,0xfd,0xcb, +0xff,0x92,0x02,0x03,0x03,0x3e,0x00,0x33,0x00,0x3f,0x00,0x43,0x00,0xd3,0xb5,0x26,0x01,0x07,0x08,0x01,0x4c,0x4b,0xb0,0x0f,0x50,0x58,0x40,0x44,0x00,0x0f,0x13,0x12,0x07,0x0f,0x72,0x00,0x0d,0x00,0x0e,0x09,0x0d,0x0e,0x69,0x0c,0x0a,0x02,0x08,0x16,0x14,0x02,0x07,0x13,0x08,0x07,0x68,0x00,0x13,0x00,0x12,0x06,0x13,0x12,0x67,0x15, +0x11,0x02,0x06,0x05,0x03,0x02,0x01,0x02,0x06,0x01,0x67,0x00,0x10,0x17,0x01,0x00,0x10,0x00,0x65,0x0b,0x01,0x09,0x09,0x38,0x4d,0x04,0x01,0x02,0x02,0x39,0x02,0x4e,0x1b,0x40,0x45,0x00,0x0f,0x13,0x12,0x13,0x0f,0x12,0x80,0x00,0x0d,0x00,0x0e,0x09,0x0d,0x0e,0x69,0x0c,0x0a,0x02,0x08,0x16,0x14,0x02,0x07,0x13,0x08,0x07,0x68,0x00, +0x13,0x00,0x12,0x06,0x13,0x12,0x67,0x15,0x11,0x02,0x06,0x05,0x03,0x02,0x01,0x02,0x06,0x01,0x67,0x00,0x10,0x17,0x01,0x00,0x10,0x00,0x65,0x0b,0x01,0x09,0x09,0x38,0x4d,0x04,0x01,0x02,0x02,0x39,0x02,0x4e,0x59,0x40,0x35,0x01,0x00,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3c,0x3a,0x39,0x37,0x35,0x34,0x32,0x30,0x29,0x28,0x23,0x21,0x20, +0x1e,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x33,0x01,0x33,0x18,0x09,0x16,0x2b,0x05,0x22,0x26,0x37,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x27,0x26,0x36, +0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x07,0x15,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x01,0x21,0x26,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x37,0x21,0x05,0x33,0x37,0x23,0x01,0xd6,0x58,0x65,0x04,0x09,0xfe,0x28,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27, +0x01,0xa0,0x09,0x05,0x66,0x58,0x2d,0x2d,0x2f,0x33,0x03,0x0a,0x04,0x3c,0x3b,0x3c,0x3a,0x03,0x0a,0x02,0x32,0x2f,0x2d,0xfd,0x56,0x01,0xcb,0x06,0x2c,0x2f,0x4b,0x4b,0x2e,0x2d,0x06,0xfe,0x57,0xfe,0xf8,0xa0,0x22,0xa0,0x6e,0x57,0x4f,0x9a,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x90,0x4f,0x57,0x50,0x2b,0x2b,0x9f, +0x37,0x4f,0x02,0x05,0x02,0x52,0x37,0xa9,0x2b,0x2b,0x50,0x01,0x81,0x1a,0x18,0x50,0x18,0x1a,0xb4,0xb4,0x00,0x03,0xfd,0xcb,0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x5e,0x40,0x5b,0x00,0x0c,0x00,0x0d,0x08,0x0c,0x0d,0x67,0x0b,0x09,0x02,0x07,0x13,0x11,0x02,0x06,0x05,0x07,0x06,0x68,0x12,0x10,0x02,0x05, +0x04,0x02,0x02,0x00,0x01,0x05,0x00,0x67,0x00,0x0e,0x14,0x01,0x0f,0x0e,0x0f,0x63,0x0a,0x01,0x08,0x08,0x38,0x4d,0x03,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x00,0x1f,0x00,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, +0x15,0x09,0x1f,0x2b,0x17,0x11,0x21,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x11,0x33,0x15,0x23,0x11,0x33,0x15,0x01,0x21,0x35,0x21,0x05,0x33,0x37,0x23,0xcd,0xfe,0x81,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27, +0x46,0x27,0x01,0x47,0xf5,0x9b,0x9b,0xfd,0x97,0x01,0x74,0xfe,0xae,0xfe,0xf8,0xa0,0x22,0xa0,0x6e,0x01,0x40,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x01,0x36,0x50,0xfc,0xf4,0x50,0x01,0x81,0xb4,0xb4,0xb4,0x00,0x00,0x04,0xfd,0xcb,0x00,0x00,0x01,0x7c,0x02,0xda,0x00,0x1b,0x00,0x27,0x00,0x2b,0x00,0x37,0x00,0xab, +0x4b,0xb0,0x11,0x50,0x58,0x40,0x37,0x07,0x05,0x02,0x03,0x11,0x08,0x02,0x02,0x0e,0x03,0x02,0x68,0x00,0x0f,0x15,0x01,0x0e,0x01,0x0f,0x0e,0x69,0x0c,0x0a,0x02,0x00,0x12,0x01,0x00,0x57,0x13,0x10,0x09,0x03,0x01,0x16,0x01,0x12,0x0b,0x01,0x12,0x69,0x06,0x01,0x04,0x04,0x38,0x4d,0x14,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x1b,0x40, +0x38,0x07,0x05,0x02,0x03,0x11,0x08,0x02,0x02,0x0e,0x03,0x02,0x68,0x00,0x0f,0x15,0x01,0x0e,0x13,0x0f,0x0e,0x69,0x10,0x09,0x02,0x01,0x0c,0x0a,0x02,0x00,0x12,0x01,0x00,0x67,0x00,0x13,0x16,0x01,0x12,0x0b,0x13,0x12,0x69,0x06,0x01,0x04,0x04,0x38,0x4d,0x14,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x59,0x40,0x2e,0x2d,0x2c,0x1d,0x1c, +0x00,0x00,0x33,0x31,0x2c,0x37,0x2d,0x37,0x2b,0x2a,0x29,0x28,0x23,0x21,0x1c,0x27,0x1d,0x27,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33, +0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x33,0x37,0x23,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xfd,0xfb,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x02,0xeb,0x24,0x2c, +0x2c,0x24,0x24,0x2c,0x2c,0xfd,0x23,0xa0,0x22,0xa0,0x02,0x97,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0x01,0xae,0x2b,0x25,0x24,0x2c,0x2c,0x24,0x25,0x2b,0x9b,0xb4,0xfe,0xbb,0x2c,0x25,0x24,0x2b,0x2b,0x24,0x25,0x2c,0x00,0x00,0x04,0xfd,0xcb,0xff,0xfb,0x01,0x8b, +0x02,0xda,0x00,0x03,0x00,0x1f,0x00,0x23,0x00,0x31,0x00,0xaf,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x30,0x09,0x07,0x02,0x05,0x11,0x0a,0x02,0x04,0x03,0x05,0x04,0x68,0x10,0x0b,0x02,0x03,0x0e,0x0c,0x02,0x14,0x04,0x01,0x13,0x03,0x01,0x67,0x08,0x06,0x02,0x00,0x00,0x38,0x4d,0x00,0x13,0x13,0x0d,0x5f,0x16,0x12,0x15,0x0f,0x04,0x0d,0x0d, +0x39,0x0d,0x4e,0x1b,0x40,0x3b,0x14,0x01,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x09,0x07,0x02,0x05,0x11,0x0a,0x02,0x04,0x03,0x05,0x04,0x68,0x10,0x0b,0x02,0x03,0x0e,0x0c,0x02,0x02,0x13,0x03,0x02,0x67,0x08,0x06,0x02,0x00,0x00,0x38,0x4d,0x15,0x0f,0x02,0x0d,0x0d,0x39,0x4d,0x00,0x13,0x13,0x12,0x61,0x16,0x01,0x12,0x12,0x42,0x12, +0x4e,0x59,0x40,0x36,0x25,0x24,0x04,0x04,0x00,0x00,0x2c,0x29,0x24,0x31,0x25,0x30,0x23,0x22,0x21,0x20,0x04,0x1f,0x04,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x17,0x09,0x17,0x2b,0x37,0x13,0x33,0x03,0x05, +0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x13,0x33,0x37,0x23,0x01,0x22,0x26,0x37,0x36,0x36,0x33,0x33,0x32,0x16,0x07,0x06,0x06,0x23,0xc9,0x58,0x6a,0x70,0xfc,0xe0,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27, +0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0x02,0x23,0x1a,0x1b,0x05,0x05,0x28,0x1a,0x1e,0x1d,0x19,0x05,0x05,0x29,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xd7,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0x01,0x13,0xb4,0xfe,0x34,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00, +0x00,0x03,0xfd,0xcb,0xff,0xfb,0x02,0x08,0x02,0xe4,0x00,0x34,0x00,0x38,0x00,0x46,0x01,0x0e,0x4b,0xb0,0x18,0x50,0x58,0x40,0x3c,0x07,0x05,0x02,0x03,0x14,0x0d,0x02,0x02,0x0b,0x03,0x02,0x68,0x00,0x0b,0x00,0x09,0x01,0x0b,0x09,0x69,0x13,0x0e,0x02,0x01,0x11,0x0f,0x0a,0x03,0x00,0x16,0x01,0x00,0x67,0x00,0x0c,0x0c,0x04,0x5f,0x08, +0x06,0x02,0x04,0x04,0x38,0x4d,0x00,0x16,0x16,0x10,0x5f,0x18,0x15,0x17,0x12,0x04,0x10,0x10,0x39,0x10,0x4e,0x1b,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x40,0x07,0x05,0x02,0x03,0x14,0x0d,0x02,0x02,0x0b,0x03,0x02,0x68,0x00,0x0b,0x00,0x09,0x01,0x0b,0x09,0x69,0x13,0x0e,0x02,0x01,0x11,0x0f,0x0a,0x03,0x00,0x16,0x01,0x00,0x67,0x06,0x01, +0x04,0x04,0x38,0x4d,0x00,0x0c,0x0c,0x08,0x61,0x00,0x08,0x08,0x3e,0x4d,0x00,0x16,0x16,0x10,0x5f,0x18,0x15,0x17,0x12,0x04,0x10,0x10,0x39,0x10,0x4e,0x1b,0x40,0x4b,0x00,0x0a,0x00,0x16,0x00,0x0a,0x16,0x80,0x07,0x05,0x02,0x03,0x14,0x0d,0x02,0x02,0x0b,0x03,0x02,0x68,0x00,0x0b,0x00,0x09,0x01,0x0b,0x09,0x69,0x13,0x0e,0x02,0x01, +0x11,0x0f,0x02,0x00,0x0a,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x00,0x0c,0x0c,0x08,0x61,0x00,0x08,0x08,0x3e,0x4d,0x17,0x12,0x02,0x10,0x10,0x39,0x4d,0x00,0x16,0x16,0x15,0x61,0x18,0x01,0x15,0x15,0x42,0x15,0x4e,0x59,0x59,0x40,0x30,0x3a,0x39,0x00,0x00,0x41,0x3e,0x39,0x46,0x3a,0x45,0x38,0x37,0x36,0x35,0x00,0x34,0x00, +0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x27,0x25,0x21,0x1f,0x1e,0x1d,0x1c,0x1b,0x24,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x19,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35, +0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x21,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x13,0x33,0x37,0x23,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfd,0xfb,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xa2,0x3d,0x6c,0x47,0x49,0x6c,0x3b,0x67,0x56,0x5a, +0x32,0x41,0x48,0x50,0x44,0x45,0x51,0xfe,0xf9,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0x02,0x7e,0x1d,0x24,0x24,0x1d,0x14,0x1d,0x24,0x24,0x1d,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x01,0x41,0x63,0x37,0x36,0x63,0x43,0x5b,0x76,0x06,0x64,0xaf,0x4a,0x42,0x41,0x4b,0x4b,0x41,0x41,0xb4,0x41,0xd2,0xd2,0xd2, +0x01,0x13,0xb4,0xfe,0x34,0x1f,0x1c,0x1b,0x22,0x22,0x1b,0x1b,0x20,0x00,0x00,0x00,0x00,0x04,0xfd,0xe9,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x2b,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x6b,0x40,0x68,0x0b,0x09,0x07,0x05,0x04,0x03,0x1b,0x19,0x17,0x0c,0x04,0x02,0x01,0x03,0x02,0x68,0x1a,0x18,0x16,0x0d,0x04,0x01,0x14,0x12,0x10,0x0e, +0x04,0x00,0x0f,0x01,0x00,0x67,0x0a,0x08,0x06,0x03,0x04,0x04,0x38,0x4d,0x1c,0x15,0x13,0x11,0x04,0x0f,0x0f,0x39,0x0f,0x4e,0x00,0x00,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x00,0x2b,0x00,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15, +0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1d,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x23,0x07,0x13,0x33,0x37,0x23,0x17, +0x33,0x37,0x23,0x05,0x33,0x37,0x23,0xfe,0x19,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xf0,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xf0,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0xc4,0xf0,0x22,0xf0,0x01,0x14,0xa0,0x22,0xa0,0xd2,0x41,0xb4, +0x41,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x01,0x13,0xb4,0xb4,0xb4,0xb4,0xb4,0x00,0x00,0x00,0x06,0xfb,0x91,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x8f,0x40,0x8c,0x0f,0x0d,0x0b,0x09,0x07,0x05,0x06,0x03,0x27,0x25, +0x23,0x21,0x1f,0x10,0x06,0x02,0x01,0x03,0x02,0x68,0x26,0x24,0x22,0x20,0x1e,0x11,0x06,0x01,0x1c,0x1a,0x18,0x16,0x14,0x12,0x06,0x00,0x13,0x01,0x00,0x67,0x0e,0x0c,0x0a,0x08,0x06,0x05,0x04,0x04,0x38,0x4d,0x28,0x1d,0x1b,0x19,0x17,0x15,0x06,0x13,0x13,0x39,0x13,0x4e,0x00,0x00,0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x46, +0x45,0x44,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3d,0x3c,0x00,0x3b,0x00,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x29, +0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x13, +0x33,0x37,0x23,0x17,0x21,0x37,0x21,0x05,0x33,0x37,0x23,0x17,0x21,0x37,0x21,0x05,0x33,0x37,0x23,0xfb,0xc1,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x01,0x0e,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x01,0x0e,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27, +0xfe,0xf2,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xfe,0xf2,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0xc4,0x01,0x0e,0x22,0xfe,0xf2,0x01,0x32,0xa0,0x22,0xa0,0xc4,0x01,0x0e,0x22,0xfe,0xf2,0x01,0x32,0xa0,0x22,0xa0,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2, +0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x01,0x13,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0x00,0x00,0x08,0xf9,0x39,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x57,0x00,0x5b,0x00,0x5f,0x00,0x63,0x00,0x67,0x00,0xb3,0x40,0xb0,0x13,0x11,0x0f,0x0d,0x0b,0x09,0x07,0x05,0x08,0x03,0x33,0x31,0x2f,0x2d, +0x2b,0x29,0x27,0x14,0x08,0x02,0x01,0x03,0x02,0x68,0x32,0x30,0x2e,0x2c,0x2a,0x28,0x26,0x15,0x08,0x01,0x24,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x08,0x00,0x17,0x01,0x00,0x67,0x12,0x10,0x0e,0x0c,0x0a,0x08,0x06,0x07,0x04,0x04,0x38,0x4d,0x34,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x08,0x17,0x17,0x39,0x17,0x4e,0x00,0x00,0x67,0x66, +0x65,0x64,0x63,0x62,0x61,0x60,0x5f,0x5e,0x5d,0x5c,0x5b,0x5a,0x59,0x58,0x57,0x56,0x55,0x54,0x53,0x52,0x51,0x50,0x4f,0x4e,0x4d,0x4c,0x00,0x4b,0x00,0x4b,0x4a,0x49,0x48,0x47,0x46,0x45,0x44,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29, +0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x35,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x33, +0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x13,0x33,0x37,0x23,0x17,0x21,0x37,0x21,0x05,0x33,0x37,0x23,0x17,0x21,0x37,0x21,0x05, +0x33,0x37,0x23,0x17,0x21,0x37,0x21,0x05,0x33,0x37,0x23,0xf9,0x69,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x01,0x18,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x01,0x18,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x01,0x18,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46, +0x27,0xfe,0xe8,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xfe,0xe8,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xfe,0xe8,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0xc4,0x01,0x18,0x22,0xfe,0xe8,0x01,0x3c,0xa0,0x22,0xa0,0xc4,0x01,0x18,0x22,0xfe,0xe8,0x01,0x3c,0xa0,0x22,0xa0,0xc4,0x01,0x18,0x22,0xfe,0xe8,0x01,0x3c,0xa0,0x22,0xa0,0xd2, +0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x01,0x13,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0x00,0x04,0xfd,0xcb,0x00,0x00,0x02,0x08,0x02,0xda,0x00,0x1b, +0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0xdf,0x4b,0xb0,0x18,0x50,0x58,0x40,0x2c,0x0e,0x07,0x05,0x03,0x03,0x11,0x15,0x0f,0x08,0x04,0x02,0x01,0x03,0x02,0x68,0x12,0x10,0x09,0x03,0x01,0x16,0x13,0x0c,0x0a,0x04,0x00,0x0b,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x14,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x1b,0x4b,0xb0,0x2e,0x50, +0x58,0x40,0x36,0x00,0x0e,0x03,0x02,0x0e,0x57,0x07,0x05,0x02,0x03,0x11,0x15,0x0f,0x08,0x04,0x02,0x01,0x03,0x02,0x68,0x0c,0x0a,0x02,0x00,0x13,0x01,0x00,0x57,0x12,0x10,0x09,0x03,0x01,0x16,0x01,0x13,0x0b,0x01,0x13,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x14,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x1b,0x40,0x38,0x07,0x05,0x02,0x03, +0x11,0x08,0x02,0x02,0x0f,0x03,0x02,0x68,0x00,0x0e,0x15,0x01,0x0f,0x12,0x0e,0x0f,0x67,0x10,0x09,0x02,0x01,0x0c,0x0a,0x02,0x00,0x13,0x01,0x00,0x67,0x00,0x12,0x16,0x01,0x13,0x0b,0x12,0x13,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x14,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x59,0x59,0x40,0x2e,0x24,0x24,0x1c,0x1c,0x00,0x00,0x24,0x27, +0x24,0x27,0x26,0x25,0x23,0x22,0x21,0x20,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23, +0x37,0x23,0x07,0x01,0x35,0x21,0x15,0x05,0x33,0x37,0x23,0x05,0x35,0x21,0x15,0xfd,0xfb,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x02,0x0f,0x01,0xb8,0xfc,0x6b,0xa0,0x22,0xa0,0x01,0xbb,0x01,0xb8,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41, +0xd2,0xd2,0xd2,0x01,0xc2,0x50,0x50,0xaf,0xb4,0xff,0x50,0x50,0x00,0x02,0xfd,0xcb,0xff,0x9c,0x02,0x1c,0x02,0xda,0x00,0x1d,0x00,0x21,0x00,0x4f,0x40,0x4c,0x09,0x07,0x02,0x05,0x10,0x0a,0x02,0x04,0x03,0x05,0x04,0x68,0x0f,0x0b,0x02,0x03,0x0c,0x02,0x02,0x00,0x01,0x03,0x00,0x67,0x00,0x0d,0x11,0x01,0x0e,0x0d,0x0e,0x63,0x08,0x01, +0x06,0x06,0x38,0x4d,0x00,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x21,0x20,0x1f,0x1e,0x00,0x1d,0x00,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x09,0x1f,0x2b,0x05,0x13,0x23,0x07,0x23,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33, +0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x21,0x15,0x01,0x33,0x37,0x23,0xfe,0xce,0x3a,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x2c,0x02,0xfa,0xfc,0x57,0xa0,0x22,0xa0,0x64,0x01,0x36,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xeb,0x4b,0x01,0x77, +0xb4,0x00,0x00,0x00,0x00,0x02,0xfb,0x73,0xff,0x9c,0x01,0xdb,0x03,0x43,0x00,0x2f,0x00,0x33,0x00,0x59,0x40,0x56,0x2e,0x01,0x0d,0x01,0x4b,0x25,0x24,0x02,0x06,0x4a,0x09,0x07,0x02,0x05,0x10,0x0a,0x02,0x04,0x03,0x05,0x04,0x68,0x0f,0x0b,0x02,0x03,0x0c,0x02,0x02,0x00,0x01,0x03,0x00,0x67,0x00,0x0d,0x11,0x01,0x0e,0x0d,0x0e,0x63, +0x08,0x01,0x06,0x06,0x38,0x4d,0x00,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x33,0x32,0x31,0x30,0x00,0x2f,0x00,0x2f,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x09,0x1f,0x2b,0x05,0x13,0x23,0x07,0x23,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33, +0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x21,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x37,0x15,0x0e,0x02,0x15,0x15,0x14,0x16,0x16,0x17,0x15,0x01,0x33,0x37,0x23,0xfc,0x76,0x3a,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x2c,0x04,0x73,0x42,0x4c,0x49,0x87,0x5c, +0x40,0x5e,0x34,0x32,0x5d,0x3f,0xfa,0x44,0xa0,0x22,0xa0,0x64,0x01,0x36,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xeb,0x2a,0x9f,0x63,0xaa,0x62,0x9f,0x6e,0x17,0x55,0x0f,0x55,0x7e,0x4f,0xaa,0x4c,0x7c,0x54,0x10,0x4b,0x01,0x77,0xb4,0x00,0x00,0x00,0xff,0xff,0xfd,0xf3,0xff,0x92,0x02,0x34,0x03,0x3e,0x00,0x27, +0x03,0x3d,0xfd,0xa8,0x00,0x00,0x03,0x07,0x03,0x34,0x00,0x00,0x00,0x82,0x00,0x08,0xb1,0x01,0x01,0xb0,0x82,0xb0,0x35,0x2b,0xff,0xff,0xfb,0x9b,0xff,0x92,0x02,0x34,0x03,0x3e,0x00,0x27,0x03,0x3d,0xfb,0x50,0x00,0x00,0x00,0x27,0x03,0x34,0xfd,0xa8,0x00,0x82,0x03,0x07,0x03,0x34,0x00,0x00,0x00,0x82,0x00,0x10,0xb1,0x01,0x01,0xb0, +0x82,0xb0,0x35,0x2b,0xb1,0x02,0x01,0xb0,0x82,0xb0,0x35,0x2b,0x00,0x01,0xfe,0x11,0xff,0x92,0x01,0xea,0x03,0x3e,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x00,0x01,0x00,0x85,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x00, +0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x05,0x01,0x33,0x03,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x03,0xfe,0x11,0x01,0x63,0x5f,0x80,0x02,0x97,0xfd,0x4a,0x3c,0x02,0xf2,0xfc,0xf0,0x6a,0x6e,0x03,0xac,0xfe,0xac,0x50,0xa0,0x50,0xfe,0xe8,0x00,0x01,0xfb,0xa0,0xff,0x92,0x01,0xea,0x03,0x3e,0x00,0x0b, +0x00,0x34,0x40,0x31,0x00,0x00,0x01,0x00,0x85,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x05,0x01,0x33,0x03,0x21,0x15,0x21,0x07,0x21,0x15, +0x21,0x03,0xfb,0xa0,0x01,0x63,0x5f,0x80,0x05,0x08,0xfa,0xd9,0x3c,0x05,0x63,0xfa,0x7f,0x6a,0x6e,0x03,0xac,0xfe,0xac,0x50,0xa0,0x50,0xfe,0xe8,0x00,0x01,0xfe,0x16,0xff,0x92,0x01,0xd6,0x03,0x3e,0x00,0x10,0x00,0x23,0x40,0x20,0x0f,0x0b,0x07,0x06,0x05,0x04,0x03,0x07,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x10,0x00,0x10,0x11,0x03,0x09,0x17,0x2b,0x05,0x01,0x33,0x07,0x01,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x01,0xfe,0x16,0x01,0x63,0x5f,0x41,0x02,0x3f,0xfe,0x52,0x01,0x36,0x13,0x21,0x08,0x09,0x21,0x12,0xfe,0x1d,0xfe,0xfa,0x6e,0x03,0xac,0xad,0xfe,0xeb,0x64,0xd7,0x5a,0x97,0x09,0x0b, +0x02,0x02,0x0b,0x09,0xe9,0xfd,0x4b,0x00,0xff,0xff,0xfe,0x3e,0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x26,0x03,0x3d,0xb5,0x00,0x00,0x07,0x03,0x3d,0xfd,0xf3,0x00,0x00,0x00,0x02,0xfb,0xfa,0xff,0x92,0x01,0xd6,0x03,0x3e,0x00,0x0b,0x00,0x0f,0x00,0x3f,0x40,0x3c,0x06,0x01,0x00,0x01,0x00,0x85,0x09,0x07,0x08,0x03,0x05,0x04,0x05,0x86, +0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x0c,0x0c,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x05,0x01,0x33,0x03,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x03,0x21,0x01,0x33,0x01,0xfd, +0xbd,0x01,0x63,0x5f,0x80,0x02,0xd7,0xfd,0x0a,0x3c,0x03,0x32,0xfc,0xb0,0x6a,0xfd,0xde,0x01,0x63,0x5f,0xfe,0x9d,0x6e,0x03,0xac,0xfe,0xac,0x50,0xa0,0x50,0xfe,0xe8,0x03,0xac,0xfc,0x54,0xff,0xff,0xfc,0x13,0xff,0x92,0x01,0x95,0x03,0x3e,0x00,0x27,0x03,0x3d,0xfb,0xc8,0x00,0x00,0x00,0x27,0x03,0x3d,0xfd,0xa8,0x00,0x00,0x00,0x06, +0x03,0x3d,0x88,0x00,0x00,0x01,0xfe,0x66,0xff,0x92,0x01,0x9a,0x03,0x3e,0x00,0x08,0x00,0x1f,0x40,0x1c,0x06,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x03,0x02,0x02,0x01,0x01,0x76,0x00,0x00,0x00,0x08,0x00,0x08,0x11,0x11,0x04,0x09,0x18,0x2b,0x05,0x01,0x33,0x01,0x23,0x01,0x27,0x07,0x01,0xfe,0x66,0x01,0x63,0x6e,0x01, +0x63,0x5f,0xfe,0xdc,0x17,0x16,0xfe,0xdc,0x6e,0x03,0xac,0xfc,0x54,0x03,0x0a,0x44,0x44,0xfc,0xf6,0x00,0x00,0x01,0xfe,0x66,0xff,0x92,0x01,0x9a,0x03,0x3e,0x00,0x08,0x00,0x1f,0x40,0x1c,0x04,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x08,0x00,0x08,0x14,0x11,0x04,0x09,0x18, +0x2b,0x07,0x01,0x33,0x01,0x17,0x37,0x01,0x33,0x01,0x37,0xfe,0x9d,0x5f,0x01,0x24,0x17,0x16,0x01,0x24,0x60,0xfe,0x9d,0x6e,0x03,0xac,0xfc,0xf6,0x44,0x44,0x03,0x0a,0xfc,0x54,0x00,0x00,0x00,0x01,0xfc,0x22,0xff,0x9c,0x01,0x86,0x02,0xee,0x00,0x07,0x00,0x41,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0f,0x02,0x01,0x00,0x04,0x01,0x03,0x00, +0x03,0x63,0x00,0x01,0x01,0x38,0x01,0x4e,0x1b,0x40,0x18,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x59,0x40,0x0c,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x05,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0xfc,0x22,0x02,0x85,0x5a, +0x02,0x85,0x64,0x4b,0x03,0x07,0xfc,0xf9,0x4b,0x00,0x00,0x00,0x00,0x01,0xfd,0xe4,0xff,0x9c,0x02,0x1c,0xff,0xe7,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x05,0x35,0x21,0x15,0xfd,0xe4,0x04,0x38, +0x64,0x4b,0x4b,0x00,0x00,0x04,0xfe,0x5c,0xff,0xfb,0x01,0x90,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x19,0x00,0x4e,0x40,0x4b,0x00,0x02,0x09,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x0a,0x01,0x05,0x07,0x04,0x05,0x67,0x08,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x07,0x07,0x06,0x61,0x0b,0x01,0x06,0x06, +0x42,0x06,0x4e,0x0d,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x14,0x11,0x0c,0x19,0x0d,0x18,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x09,0x17,0x2b,0x25,0x03,0x33,0x03,0x37,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23, +0xfe,0x7e,0x0c,0x6a,0x0c,0xcc,0x01,0xf4,0xfe,0x0c,0x01,0xf4,0xfd,0x08,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xc3,0x50,0x50,0xf0,0x50,0x50,0xaf,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x06,0xfc,0x0e,0xff,0xfb,0x01,0x90,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13, +0x00,0x21,0x00,0x64,0x40,0x61,0x04,0x01,0x02,0x0e,0x05,0x0d,0x03,0x03,0x06,0x02,0x03,0x67,0x08,0x01,0x06,0x10,0x09,0x0f,0x03,0x07,0x0b,0x06,0x07,0x67,0x0c,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x0b,0x0b,0x0a,0x61,0x11,0x01,0x0a,0x0a,0x42,0x0a,0x4e,0x15,0x14,0x10,0x10,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00, +0x00,0x1c,0x19,0x14,0x21,0x15,0x20,0x10,0x13,0x10,0x13,0x12,0x11,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x12,0x09,0x17,0x2b,0x25,0x03,0x33,0x03,0x37,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x05,0x22,0x26,0x35, +0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfc,0x30,0x0c,0x6a,0x0c,0xcc,0x01,0xe5,0x78,0x01,0xe5,0xfb,0xbe,0x01,0xe5,0x78,0x01,0xe5,0xfa,0xba,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xc3,0x50,0x50,0x50,0x50,0xf0,0x50,0x50,0x50,0x50,0xaf,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00, +0x00,0x01,0x00,0x7d,0xff,0x8d,0x01,0xe5,0x03,0x2f,0x00,0x06,0x00,0x1f,0x40,0x1c,0x05,0x02,0x01,0x03,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x13,0x03,0x06,0x17,0x2b,0x05,0x03,0x35,0x13,0x33,0x01,0x01,0x01,0x79,0xfc,0xfc,0x66,0xfe,0xe8,0x01,0x1e,0x73,0x01,0x95, +0x7a,0x01,0x93,0xfe,0x2d,0xfe,0x31,0x00,0x00,0x02,0x00,0x64,0xff,0x92,0x02,0x2a,0x03,0x3e,0x00,0x06,0x00,0x0d,0x00,0x2d,0x40,0x2a,0x0c,0x09,0x08,0x05,0x02,0x01,0x06,0x01,0x00,0x01,0x4c,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x03,0x04,0x03,0x01,0x01,0x76,0x07,0x07,0x00,0x00,0x07,0x0d,0x07,0x0d,0x0b,0x0a,0x00,0x06,0x00,0x06, +0x13,0x06,0x06,0x17,0x2b,0x05,0x01,0x35,0x01,0x33,0x01,0x01,0x33,0x01,0x35,0x01,0x33,0x01,0x01,0x01,0x75,0xfe,0xef,0x01,0x11,0x37,0xfe,0xe2,0x01,0x1e,0x47,0xfe,0xef,0x01,0x11,0x37,0xfe,0xe2,0x01,0x1e,0x6e,0x01,0xbc,0x33,0x01,0xbd,0xfe,0x2a,0xfe,0x2a,0x01,0xbc,0x33,0x01,0xbd,0xfe,0x2a,0xfe,0x2a,0x00,0x00,0x02,0x00,0xa0, +0xff,0x92,0x01,0xef,0x03,0x3e,0x00,0x07,0x00,0x0b,0x00,0x2d,0x40,0x2a,0x00,0x01,0x06,0x05,0x02,0x02,0x03,0x01,0x02,0x67,0x04,0x01,0x03,0x00,0x00,0x03,0x57,0x04,0x01,0x03,0x03,0x00,0x5f,0x00,0x00,0x03,0x00,0x4f,0x08,0x08,0x08,0x0b,0x08,0x0b,0x12,0x11,0x11,0x11,0x10,0x07,0x06,0x1b,0x2b,0x05,0x21,0x11,0x21,0x15,0x23,0x11, +0x33,0x01,0x11,0x33,0x11,0x01,0xef,0xfe,0xb1,0x01,0x4f,0xaf,0xaf,0xfe,0xe3,0x3c,0x6e,0x03,0xac,0x2d,0xfc,0xae,0x03,0x52,0xfc,0xae,0x03,0x52,0x00,0x01,0x00,0x73,0xff,0x8d,0x01,0xdb,0x03,0x2f,0x00,0x06,0x00,0x1f,0x40,0x1c,0x05,0x04,0x01,0x03,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00, +0x00,0x06,0x00,0x06,0x12,0x03,0x06,0x17,0x2b,0x17,0x01,0x01,0x33,0x13,0x15,0x03,0x73,0x01,0x1e,0xfe,0xe8,0x66,0xfc,0xfc,0x73,0x01,0xcf,0x01,0xd3,0xfe,0x6d,0x7a,0xfe,0x6b,0x00,0x00,0x00,0x02,0x00,0x2e,0xff,0x92,0x01,0xf4,0x03,0x3e,0x00,0x06,0x00,0x0d,0x00,0x20,0x40,0x1d,0x0d,0x0c,0x09,0x06,0x05,0x02,0x06,0x00,0x01,0x01, +0x4c,0x03,0x01,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x00,0x76,0x12,0x13,0x12,0x10,0x04,0x06,0x1a,0x2b,0x17,0x23,0x01,0x01,0x33,0x01,0x15,0x01,0x23,0x01,0x01,0x33,0x01,0x15,0xe3,0x37,0x01,0x1e,0xfe,0xe2,0x37,0x01,0x11,0xfe,0x71,0x37,0x01,0x1e,0xfe,0xe2,0x37,0x01,0x11,0x6e,0x01,0xd6,0x01,0xd6,0xfe,0x43,0x33,0xfe,0x44,0x01, +0xd6,0x01,0xd6,0xfe,0x43,0x33,0x00,0x00,0x00,0x02,0x00,0x69,0xff,0x92,0x01,0xb8,0x03,0x3e,0x00,0x07,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x04,0x01,0x01,0x00,0x02,0x01,0x67,0x05,0x01,0x00,0x03,0x03,0x00,0x57,0x05,0x01,0x00,0x00,0x03,0x5f,0x06,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x0b,0x0a,0x09,0x08,0x00,0x07,0x00,0x07, +0x11,0x11,0x11,0x07,0x06,0x19,0x2b,0x17,0x35,0x33,0x11,0x23,0x35,0x21,0x11,0x03,0x23,0x11,0x33,0x69,0xaf,0xaf,0x01,0x4f,0x32,0x3c,0x3c,0x6e,0x2d,0x03,0x52,0x2d,0xfc,0x54,0x03,0x7f,0xfc,0xae,0x00,0x00,0xff,0xff,0x00,0xda,0x01,0x09,0x01,0x7e,0x01,0xab,0x03,0x07,0x03,0x29,0x00,0x00,0x01,0x13,0x00,0x09,0xb1,0x00,0x01,0xb8, +0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0xcd,0xff,0x60,0x01,0x81,0x02,0x30,0x02,0x06,0x03,0x2c,0x00,0x00,0x00,0x03,0x00,0x5d,0xff,0x74,0x02,0x12,0x03,0x67,0x00,0x1c,0x00,0x25,0x00,0x2e,0x00,0x55,0x40,0x52,0x0b,0x01,0x09,0x01,0x11,0x01,0x0b,0x08,0x17,0x01,0x00,0x0a,0x03,0x4c,0x04,0x01,0x02,0x01,0x02,0x85, +0x0c,0x07,0x02,0x05,0x00,0x05,0x86,0x00,0x08,0x00,0x0b,0x0a,0x08,0x0b,0x67,0x00,0x09,0x09,0x01,0x5f,0x03,0x01,0x01,0x01,0x38,0x4d,0x00,0x0a,0x0a,0x00,0x5f,0x06,0x01,0x00,0x00,0x39,0x00,0x4e,0x00,0x00,0x2e,0x2c,0x28,0x26,0x25,0x23,0x1f,0x1d,0x00,0x1c,0x00,0x1c,0x11,0x1e,0x11,0x11,0x11,0x11,0x11,0x0d,0x09,0x1d,0x2b,0x17, +0x35,0x23,0x11,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x23,0x15,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0xb3,0x56,0x56,0x3c,0x46,0x3c,0x44,0x4c,0x3a,0x34,0x3b,0x44,0x55,0x4c,0x3c,0x46,0x3a,0x76, +0x3a,0x43,0x42,0x3a,0x77,0x7c,0x3f,0x49,0x49,0x3f,0x7c,0x8c,0x8c,0x02,0xda,0x8d,0x8d,0x8d,0x94,0x10,0x5e,0x48,0x3b,0x52,0x0e,0x10,0x60,0x47,0x50,0x68,0x0e,0x91,0x8c,0x8c,0x02,0x2f,0x3e,0x35,0x35,0x3e,0xfd,0xc8,0x43,0x3a,0x3c,0x4b,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x74,0x02,0x0b,0x02,0xb2,0x00,0x1b,0x00,0x23,0x00,0x3f, +0x40,0x3c,0x20,0x12,0x0b,0x08,0x04,0x01,0x00,0x1f,0x1a,0x13,0x01,0x04,0x03,0x02,0x02,0x4c,0x00,0x01,0x00,0x02,0x00,0x01,0x02,0x80,0x00,0x02,0x03,0x00,0x02,0x03,0x7e,0x00,0x00,0x01,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x1b,0x00,0x1b,0x17,0x14,0x19,0x05,0x09,0x19,0x2b,0x05, +0x35,0x26,0x26,0x35,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x17,0x23,0x26,0x26,0x27,0x11,0x36,0x36,0x37,0x33,0x06,0x06,0x07,0x15,0x03,0x14,0x16,0x17,0x11,0x06,0x06,0x15,0x01,0x11,0x55,0x64,0x64,0x55,0x3c,0x55,0x66,0x03,0x5a,0x03,0x34,0x2d,0x2d,0x34,0x03,0x5a,0x03,0x66,0x55,0x9b,0x33,0x2c,0x2c,0x33,0x8c,0x84,0x0a, +0x6d,0x59,0x96,0x59,0x6d,0x0a,0x84,0x83,0x07,0x64,0x52,0x2e,0x38,0x06,0xfe,0x6a,0x06,0x38,0x2e,0x52,0x64,0x07,0x83,0x01,0x54,0x34,0x41,0x0a,0x01,0x94,0x0a,0x40,0x34,0x00,0x00,0x00,0x00,0x02,0x00,0x2b,0x00,0x71,0x02,0x2e,0x02,0x7b,0x00,0x1c,0x00,0x2a,0x00,0x6a,0x40,0x20,0x15,0x13,0x0f,0x0d,0x04,0x03,0x01,0x1b,0x16,0x0c, +0x08,0x04,0x02,0x03,0x1c,0x07,0x05,0x01,0x04,0x00,0x02,0x03,0x4c,0x14,0x0e,0x02,0x01,0x4a,0x06,0x01,0x00,0x49,0x4b,0xb0,0x21,0x50,0x58,0x40,0x13,0x04,0x01,0x02,0x00,0x00,0x02,0x00,0x65,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x03,0x4e,0x1b,0x40,0x1a,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x04,0x01,0x02,0x00,0x00, +0x02,0x59,0x04,0x01,0x02,0x02,0x00,0x61,0x00,0x00,0x02,0x00,0x51,0x59,0x40,0x0d,0x1e,0x1d,0x24,0x22,0x1d,0x2a,0x1e,0x2a,0x2c,0x22,0x05,0x09,0x18,0x2b,0x25,0x27,0x06,0x23,0x22,0x27,0x07,0x27,0x37,0x26,0x35,0x34,0x37,0x27,0x37,0x17,0x36,0x33,0x32,0x17,0x37,0x17,0x07,0x16,0x15,0x14,0x06,0x07,0x17,0x25,0x32,0x36,0x35,0x34, +0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0xef,0x57,0x2e,0x3d,0x3e,0x2f,0x55,0x3e,0x53,0x21,0x22,0x56,0x3f,0x58,0x30,0x3b,0x3f,0x30,0x54,0x3d,0x53,0x1f,0x11,0x0f,0x55,0xfe,0xff,0x38,0x4a,0x4a,0x38,0x25,0x3c,0x23,0x23,0x3c,0x71,0x57,0x1d,0x1d,0x55,0x3e,0x54,0x31,0x3f,0x40,0x31,0x56,0x3f,0x58,0x1c,0x1f,0x54,0x3d, +0x53,0x32,0x3d,0x1f,0x39,0x18,0x55,0x40,0x4c,0x39,0x39,0x4c,0x23,0x3c,0x26,0x26,0x3c,0x23,0x00,0x00,0x00,0x03,0x00,0x48,0xff,0x74,0x02,0x10,0x03,0x66,0x00,0x23,0x00,0x2a,0x00,0x32,0x00,0x3a,0x40,0x37,0x28,0x1a,0x13,0x10,0x04,0x02,0x01,0x32,0x27,0x1b,0x09,0x04,0x00,0x02,0x2b,0x22,0x08,0x01,0x04,0x03,0x00,0x03,0x4c,0x00, +0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x02,0x85,0x00,0x00,0x03,0x00,0x85,0x04,0x01,0x03,0x03,0x76,0x00,0x00,0x00,0x23,0x00,0x23,0x14,0x1c,0x14,0x05,0x09,0x19,0x2b,0x05,0x35,0x26,0x26,0x27,0x33,0x14,0x16,0x17,0x11,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x17,0x23,0x34,0x26,0x27,0x15,0x17,0x16,0x16,0x15, +0x14,0x06,0x07,0x15,0x03,0x14,0x16,0x17,0x35,0x06,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x01,0x13,0x5e,0x6b,0x02,0x5a,0x3b,0x36,0x1b,0x4b,0x51,0x63,0x54,0x3c,0x53,0x64,0x01,0x5a,0x31,0x2d,0x28,0x49,0x50,0x69,0x58,0x99,0x30,0x2d,0x2c,0x31,0x99,0x31,0x36,0x2f,0x2c,0x0c,0x8c,0x83,0x08,0x69,0x56,0x31,0x3e,0x07,0x01, +0x06,0x08,0x17,0x6c,0x49,0x50,0x68,0x08,0x84,0x83,0x08,0x68,0x52,0x2f,0x3b,0x07,0xf8,0x0d,0x17,0x6e,0x4a,0x52,0x6c,0x09,0x83,0x02,0xb6,0x2d,0x42,0x0e,0xe5,0x07,0x36,0xfd,0xf3,0x08,0x3c,0x30,0x2c,0x41,0x0e,0x04,0x00,0x00,0x00,0x03,0x00,0x5a,0xff,0xb0,0x02,0x58,0x02,0xda,0x00,0x1c,0x00,0x2a,0x00,0x2e,0x00,0x9a,0xb6,0x19, +0x0a,0x02,0x08,0x09,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x2e,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x69,0x0d,0x01,0x08,0x00,0x00,0x08,0x59,0x00,0x0a,0x0e,0x01,0x0b,0x0a,0x0b,0x63,0x07,0x0c,0x02,0x00,0x00,0x04,0x5f,0x00,0x04,0x04,0x38,0x04,0x4e,0x1b,0x40,0x2f,0x05,0x01, +0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x69,0x0d,0x01,0x08,0x0c,0x01,0x00,0x0a,0x08,0x00,0x69,0x00,0x0a,0x0e,0x01,0x0b,0x0a,0x0b,0x63,0x00,0x07,0x07,0x04,0x5f,0x00,0x04,0x04,0x38,0x07,0x4e,0x59,0x40,0x27,0x2b,0x2b,0x1e,0x1d,0x01,0x00,0x2b,0x2e,0x2b,0x2e,0x2d,0x2c,0x25,0x23,0x1d,0x2a, +0x1e,0x2a,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x08,0x06,0x00,0x1c,0x01,0x1c,0x0f,0x09,0x16,0x2b,0x25,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x27,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15, +0x15,0x14,0x16,0x07,0x35,0x21,0x15,0x01,0x0c,0x52,0x60,0x5f,0x53,0x3e,0x4e,0x07,0x03,0x02,0x74,0x74,0x5a,0x5e,0x5e,0x5a,0x01,0x07,0x4e,0x20,0x38,0x3e,0x3e,0x38,0x39,0x3d,0x3d,0x97,0x01,0xa4,0x32,0x6e,0x5e,0x29,0x5f,0x6e,0x3e,0x35,0x7d,0x3c,0x4b,0x55,0x55,0x4b,0xfe,0x02,0x69,0x36,0x3d,0x4e,0x46,0x3e,0x1e,0x3e,0x46,0x44, +0x40,0x1e,0x40,0x44,0xd0,0x50,0x50,0x00,0x00,0x01,0x00,0x13,0xff,0xf6,0x02,0x0a,0x02,0xe4,0x00,0x2b,0x00,0x60,0x40,0x5d,0x00,0x06,0x07,0x04,0x07,0x06,0x04,0x80,0x00,0x0d,0x01,0x0c,0x01,0x0d,0x0c,0x80,0x08,0x01,0x04,0x09,0x01,0x03,0x02,0x04,0x03,0x67,0x0a,0x01,0x02,0x0b,0x01,0x01,0x0d,0x02,0x01,0x67,0x00,0x07,0x07,0x05, +0x61,0x00,0x05,0x05,0x3e,0x4d,0x00,0x0c,0x0c,0x00,0x61,0x0e,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x29,0x28,0x26,0x24,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x17,0x15,0x13,0x12,0x10,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x2b,0x01,0x2b,0x0f,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x23,0x35,0x33,0x35,0x23, +0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x01,0x34,0x64,0x74,0x49,0x49,0x49,0x49,0x74,0x64,0x62,0x74,0x5a,0x41,0x3b,0x3b,0x43,0xad,0xad,0xad,0xad,0x43,0x3b,0x3b,0x41,0x5a,0x74,0x0a,0x70,0x62, +0x2d,0x41,0x64,0x41,0x37,0x62,0x70,0x71,0x61,0x3e,0x43,0x43,0x3e,0x37,0x41,0x64,0x41,0x2d,0x3e,0x43,0x43,0x3e,0x61,0x71,0x00,0x01,0x00,0x00,0xff,0x4c,0x02,0x17,0x02,0xda,0x00,0x1a,0x00,0x33,0x40,0x30,0x05,0x01,0x02,0x06,0x01,0x01,0x00,0x02,0x01,0x67,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x00,0x00,0x00,0x07, +0x5f,0x08,0x01,0x07,0x07,0x3d,0x07,0x4e,0x00,0x00,0x00,0x1a,0x00,0x19,0x11,0x12,0x21,0x23,0x11,0x13,0x21,0x09,0x09,0x1d,0x2b,0x15,0x35,0x33,0x32,0x36,0x35,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x14,0x06,0x23,0x69,0x35,0x3e,0xa0,0xa0,0x51,0x49,0xa1,0xa1,0x40,0xe1,0xe1, +0x70,0x5d,0xb4,0x52,0x3d,0x34,0x01,0x2a,0x52,0xc4,0x42,0x49,0x50,0x3c,0xc3,0x52,0xfe,0xd6,0x58,0x6b,0x00,0x02,0x00,0x32,0xff,0xf6,0x02,0x26,0x02,0xe4,0x00,0x19,0x00,0x31,0x00,0x5a,0x40,0x57,0x00,0x02,0x01,0x00,0x01,0x02,0x00,0x80,0x00,0x09,0x07,0x08,0x07,0x09,0x08,0x80,0x04,0x01,0x00,0x0c,0x01,0x05,0x06,0x00,0x05,0x67, +0x00,0x06,0x0d,0x0b,0x02,0x07,0x09,0x06,0x07,0x67,0x00,0x01,0x01,0x03,0x61,0x00,0x03,0x03,0x3e,0x4d,0x00,0x08,0x08,0x0a,0x61,0x00,0x0a,0x0a,0x3f,0x0a,0x4e,0x1a,0x1a,0x00,0x00,0x1a,0x31,0x1a,0x31,0x2d,0x2b,0x29,0x28,0x26,0x24,0x1e,0x1d,0x1c,0x1b,0x00,0x19,0x00,0x19,0x16,0x22,0x12,0x26,0x11,0x0e,0x09,0x1b,0x2b,0x13,0x35, +0x21,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x33,0x15,0x05,0x35,0x21,0x15,0x21,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x32,0x01,0x17,0x25,0x15,0x1c,0x38,0x31,0x38,0x41,0x59,0x02,0x6e,0x61,0x59,0x69, +0x25,0x1e,0x09,0x7b,0xfe,0x0c,0x01,0xf4,0xfe,0xd2,0x10,0x16,0x1b,0x3b,0x31,0x38,0x44,0x59,0x01,0x72,0x61,0x59,0x6c,0x33,0x01,0x8e,0x46,0x20,0x12,0x2b,0x18,0x26,0x27,0x35,0x31,0x55,0x5f,0x4e,0x48,0x22,0x35,0x1b,0x08,0x46,0x92,0x46,0x46,0x0c,0x10,0x2d,0x18,0x25,0x32,0x3f,0x31,0x55,0x69,0x58,0x48,0x3b,0x2b,0x00,0x00,0x00, +0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x18,0x00,0x21,0x00,0x3d,0x40,0x3a,0x09,0x01,0x03,0x05,0x01,0x02,0x01,0x03,0x02,0x67,0x06,0x01,0x01,0x07,0x01,0x00,0x08,0x01,0x00,0x67,0x00,0x0a,0x0a,0x04,0x5f,0x00,0x04,0x04,0x38,0x4d,0x0b,0x01,0x08,0x08,0x39,0x08,0x4e,0x00,0x00,0x21,0x1f,0x1b,0x19,0x00,0x18,0x00, +0x18,0x11,0x11,0x26,0x21,0x11,0x11,0x11,0x11,0x0c,0x09,0x1e,0x2b,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x15,0x33,0x15,0x23,0x15,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x6e,0x50,0x50,0x50,0x50,0xdf,0x42,0x61,0x36,0x36,0x61,0x42,0x85,0xe6,0xe6,0x85,0x39, +0x43,0x43,0x39,0x85,0x9b,0x50,0x55,0x50,0x01,0x4a,0x33,0x5c,0x3e,0x3d,0x5d,0x33,0x55,0x50,0x9b,0x01,0x90,0x44,0x39,0x39,0x44,0x00,0x00,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x02,0x17,0x02,0xe4,0x00,0x2a,0x00,0x42,0x40,0x3f,0x01,0x01,0x07,0x00,0x01,0x4c,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x05,0x01,0x01,0x06,0x01,0x00, +0x07,0x01,0x00,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x07,0x07,0x08,0x5f,0x09,0x01,0x08,0x08,0x39,0x08,0x4e,0x00,0x00,0x00,0x2a,0x00,0x2a,0x16,0x11,0x16,0x22,0x12,0x26,0x11,0x17,0x0a,0x09,0x1e,0x2b,0x33,0x35,0x3e,0x02,0x35,0x34,0x27,0x23,0x35,0x33,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23, +0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x17,0x33,0x15,0x23,0x16,0x15,0x14,0x06,0x06,0x07,0x21,0x15,0x4b,0x18,0x32,0x23,0x05,0x68,0x4b,0x0e,0x1e,0x14,0x74,0x62,0x63,0x73,0x01,0x5f,0x42,0x37,0x3a,0x40,0x18,0x22,0x0f,0xb9,0xa3,0x03,0x23,0x33,0x18,0x01,0x72,0x64,0x13,0x35,0x39,0x19,0x1b,0x18,0x50,0x1a,0x31,0x39,0x26, +0x55,0x64,0x65,0x59,0x32,0x3c,0x39,0x35,0x23,0x33,0x30,0x1f,0x50,0x14,0x16,0x2b,0x49,0x35,0x0e,0x50,0x00,0x01,0x00,0x2d,0x00,0x00,0x02,0x2b,0x02,0xda,0x00,0x17,0x00,0x36,0x40,0x33,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x10,0x03,0x00,0x01,0x4c,0x02,0x01,0x00,0x00,0x01,0x5f,0x00, +0x01,0x01,0x38,0x4d,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x17,0x00,0x17,0x11,0x11,0x19,0x05,0x09,0x19,0x2b,0x21,0x35,0x07,0x35,0x37,0x35,0x07,0x35,0x37,0x35,0x23,0x35,0x21,0x15,0x23,0x15,0x37,0x15,0x07,0x15,0x37,0x15,0x07,0x15,0x01,0x00,0xb0,0xb0,0xb0,0xb0,0xd3,0x01,0xfe,0xd3,0xb0,0xb0,0xb0,0xb0,0xb7,0x30, +0x4b,0x30,0x64,0x30,0x4b,0x30,0xda,0x4f,0x4f,0xc2,0x30,0x4b,0x30,0x64,0x30,0x4b,0x30,0xcf,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x35,0x02,0xda,0x00,0x1c,0x00,0x3e,0x40,0x3b,0x0c,0x01,0x02,0x03,0x01,0x4c,0x05,0x01,0x02,0x06,0x01,0x01,0x00,0x02,0x01,0x68,0x07,0x01,0x00,0x0b,0x0a,0x02,0x08,0x09,0x00,0x08,0x67,0x04, +0x01,0x03,0x03,0x38,0x4d,0x00,0x09,0x09,0x39,0x09,0x4e,0x00,0x00,0x00,0x1c,0x00,0x1c,0x1b,0x1a,0x11,0x11,0x11,0x11,0x18,0x11,0x11,0x11,0x11,0x0c,0x09,0x1f,0x2b,0x37,0x35,0x33,0x35,0x23,0x35,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x3c,0xc3,0xc3, +0xa0,0xb9,0x60,0x8e,0x0c,0x0e,0x02,0x02,0x0f,0x0c,0x8e,0x5d,0xb9,0xa0,0xc3,0xc3,0xc3,0x5a,0x78,0x4b,0x4b,0x4b,0x01,0x81,0xfe,0xd4,0x19,0x23,0x08,0x08,0x23,0x19,0x01,0x2c,0xfe,0x7f,0x4b,0x4b,0x4b,0x78,0x78,0x00,0x00,0x00,0x00,0x01,0x00,0x58,0xff,0x4c,0x02,0x0b,0x02,0xda,0x00,0x21,0x00,0x42,0x40,0x3f,0x0b,0x08,0x02,0x02, +0x00,0x20,0x01,0x02,0x05,0x03,0x02,0x4c,0x00,0x01,0x02,0x04,0x02,0x01,0x04,0x80,0x00,0x04,0x03,0x02,0x04,0x03,0x7e,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x05,0x5f,0x06,0x01,0x05,0x05,0x3d,0x05,0x4e,0x00,0x00,0x00,0x21,0x00,0x21,0x12,0x25,0x22,0x14,0x19,0x07,0x09,0x1b,0x2b,0x05,0x35,0x26,0x26, +0x35,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x07,0x15,0x01,0x02,0x4e,0x5c,0x5c,0x4e,0x5a,0x4e,0x5e,0x03,0x5a,0x03,0x42,0x38,0x3b,0x47,0x47,0x3b,0x38,0x42,0x03,0x5a,0x03,0x5e,0x4e,0xb4,0xae,0x0d,0x6c,0x55,0x96,0x55,0x6c,0x0d, +0xae,0xad,0x0a,0x63,0x4e,0x35,0x39,0x43,0x3e,0x97,0x3e,0x44,0x3a,0x34,0x4e,0x63,0x0a,0xad,0x00,0x00,0x00,0x01,0x00,0x48,0xff,0x4c,0x02,0x10,0x03,0x84,0x00,0x2d,0x00,0x3a,0x40,0x37,0x2d,0x02,0x02,0x02,0x00,0x19,0x16,0x02,0x03,0x05,0x02,0x4c,0x00,0x01,0x02,0x04,0x02,0x01,0x04,0x80,0x00,0x04,0x05,0x02,0x04,0x05,0x7e,0x00, +0x00,0x00,0x02,0x01,0x00,0x02,0x69,0x00,0x05,0x05,0x03,0x5f,0x00,0x03,0x03,0x3d,0x03,0x4e,0x22,0x14,0x1d,0x22,0x14,0x10,0x06,0x09,0x1c,0x2b,0x01,0x33,0x15,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x26,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35, +0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x01,0x05,0x5a,0x47,0x56,0x5a,0x44,0x35,0x35,0x42,0x2b,0x27,0x72,0x49,0x51,0x5f,0x52,0x5a,0x57,0x66,0x5a,0x4e,0x40,0x3e,0x4a,0x2f,0x2c,0x6f,0x45,0x4f,0x5e,0x4d,0x03,0x84,0xa5,0x0f,0x65,0x48,0x32,0x3f,0x3f,0x32,0x28,0x39,0x0b,0x20,0x14,0x6f,0x4c,0x54,0x6e,0x0c,0xae,0xad, +0x0b,0x6c,0x58,0x3d,0x45,0x48,0x3a,0x2c,0x41,0x0c,0x1f,0x14,0x67,0x46,0x4e,0x68,0x0b,0x00,0x00,0x00,0x00,0x02,0x00,0x46,0x00,0xaa,0x02,0x12,0x02,0x39,0x00,0x1b,0x00,0x1f,0x00,0x86,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x30,0x00,0x02,0x00,0x04,0x01,0x02,0x72,0x08,0x01,0x05,0x01,0x03,0x04,0x05,0x72,0x00,0x00,0x00,0x04,0x01,0x00, +0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x09,0x01,0x07,0x06,0x07,0x4f,0x1b,0x40,0x32,0x00,0x02,0x00,0x04,0x00,0x02,0x04,0x80,0x08,0x01,0x05,0x01,0x03,0x01,0x05,0x03,0x80,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00, +0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x09,0x01,0x07,0x06,0x07,0x4f,0x59,0x40,0x16,0x1c,0x1c,0x00,0x00,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x00,0x1b,0x00,0x1b,0x24,0x23,0x12,0x24,0x23,0x0a,0x06,0x1b,0x2b,0x13,0x35,0x34,0x36,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22, +0x15,0x15,0x07,0x35,0x21,0x15,0x46,0x48,0x3a,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x01,0xcc,0x01,0x71,0x46,0x3b,0x47,0x1a,0x27,0x27,0x1a,0x37,0x46,0x46,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x37,0x46,0xc7,0x50,0x50,0x00,0x03,0x00,0x1d,0xff,0xf6,0x02,0x3b,0x02,0x30,0x00,0x0b, +0x00,0x17,0x00,0x23,0x00,0x3b,0x40,0x38,0x03,0x01,0x01,0x07,0x02,0x06,0x03,0x00,0x05,0x01,0x00,0x69,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x19,0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16, +0x2b,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x64,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x01,0x6f,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0xe9,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x01,0xb0, +0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfe,0x46,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x00,0x02,0x00,0x9e,0xff,0xc9,0x01,0xc6,0x02,0x5d,0x00,0x21,0x00,0x2f,0x00,0x08,0xb5,0x2c,0x25,0x0d,0x00,0x02,0x32,0x2b,0x17,0x35,0x36,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x37,0x26, +0x27,0x35,0x16,0x17,0x36,0x37,0x15,0x06,0x07,0x16,0x16,0x15,0x15,0x14,0x06,0x07,0x16,0x17,0x15,0x26,0x27,0x06,0x03,0x14,0x16,0x17,0x36,0x36,0x35,0x35,0x34,0x26,0x27,0x06,0x06,0x15,0xa8,0x34,0x29,0x38,0x2f,0x2f,0x38,0x29,0x34,0x50,0x3a,0x3a,0x50,0x34,0x29,0x38,0x2f,0x2f,0x38,0x29,0x34,0x50,0x3a,0x3a,0x28,0x2b,0x37,0x37, +0x2b,0x2b,0x37,0x37,0x2b,0x37,0x2d,0x0b,0x12,0x2d,0x7e,0x4b,0x14,0x4b,0x7e,0x2d,0x12,0x0b,0x2d,0x0e,0x1f,0x1f,0x0e,0x2d,0x0b,0x12,0x2d,0x7e,0x4b,0x14,0x4b,0x7e,0x2d,0x12,0x0b,0x2d,0x0e,0x1f,0x1f,0x01,0x32,0x43,0x71,0x28,0x28,0x71,0x43,0x14,0x43,0x71,0x28,0x28,0x71,0x43,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x32,0x02,0x58, +0x02,0x9b,0x00,0x05,0x00,0x08,0x00,0x0b,0x00,0x0a,0xb7,0x0b,0x09,0x07,0x06,0x01,0x00,0x03,0x32,0x2b,0x35,0x11,0x01,0x01,0x11,0x01,0x17,0x11,0x07,0x05,0x37,0x27,0x01,0x2c,0x01,0x2c,0xfe,0xd3,0xfb,0xd6,0xfe,0xe2,0xd5,0xd5,0x32,0x02,0x69,0xfe,0xef,0x01,0x11,0xfd,0x97,0x01,0x13,0xa0,0x01,0x86,0xc3,0xc5,0xc4,0xc2,0x00,0x00, +0xff,0xff,0x00,0xda,0x00,0xf0,0x01,0x7e,0x01,0x92,0x03,0x07,0x03,0x29,0x00,0x00,0x00,0xfa,0x00,0x08,0xb1,0x00,0x01,0xb0,0xfa,0xb0,0x35,0x2b,0x00,0x04,0x00,0x00,0x00,0x64,0x02,0x58,0x02,0x30,0x00,0x0b,0x00,0x0f,0x00,0x1b,0x00,0x1f,0x00,0x52,0x40,0x4f,0x00,0x02,0x09,0x01,0x03,0x00,0x02,0x03,0x67,0x00,0x01,0x08,0x01,0x00, +0x05,0x01,0x00,0x69,0x00,0x05,0x06,0x04,0x05,0x59,0x00,0x06,0x0b,0x01,0x07,0x04,0x06,0x07,0x67,0x00,0x05,0x05,0x04,0x61,0x0a,0x01,0x04,0x05,0x04,0x51,0x1c,0x1c,0x11,0x10,0x0c,0x0c,0x01,0x00,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x06, +0x16,0x2b,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x35,0x21,0x15,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x35,0x21,0x15,0x50,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0x86,0x01,0x5e,0xfd,0xf8,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0x86,0x01,0x5e,0x01,0x90,0x2b,0x25,0x24,0x2c,0x2c, +0x24,0x25,0x2b,0x0a,0x50,0x50,0xfe,0xca,0x2c,0x24,0x25,0x2b,0x2b,0x25,0x24,0x2c,0x46,0x50,0x50,0x00,0x00,0x01,0x00,0x9b,0xff,0xf6,0x01,0xc7,0x02,0x30,0x00,0x1f,0x00,0x6f,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x26,0x00,0x02,0x03,0x05,0x03,0x02,0x72,0x00,0x05,0x04,0x04,0x05,0x70,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04, +0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x06,0x01,0x00,0x04,0x00,0x52,0x1b,0x40,0x28,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x06,0x01,0x00,0x04,0x00,0x52,0x59,0x40,0x13,0x01,0x00,0x1c, +0x1b,0x18,0x16,0x11,0x0f,0x0c,0x0b,0x08,0x06,0x00,0x1f,0x01,0x1f,0x07,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x01,0x31,0x44,0x52,0x52,0x44,0x44,0x52,0x5a,0x21,0x1b,0x1b,0x21,0x21,0x1b, +0x1b,0x21,0x5a,0x52,0x0a,0x52,0x44,0x01,0x0e,0x44,0x52,0x52,0x44,0x28,0x32,0x1b,0x21,0x21,0x1b,0xfe,0xde,0x1b,0x21,0x21,0x1b,0x32,0x28,0x44,0x52,0x00,0x00,0x00,0x00,0x03,0x00,0x46,0x00,0x4c,0x02,0x12,0x02,0x9e,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0xa0,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x39,0x00,0x02,0x00,0x04,0x01,0x02,0x72, +0x0a,0x01,0x05,0x01,0x03,0x04,0x05,0x72,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00,0x06,0x0b,0x01,0x07,0x08,0x06,0x07,0x67,0x00,0x08,0x09,0x09,0x08,0x57,0x00,0x08,0x08,0x09,0x5f,0x0c,0x01,0x09,0x08,0x09,0x4f,0x1b,0x40,0x3b,0x00,0x02,0x00,0x04,0x00,0x02,0x04,0x80,0x0a,0x01,0x05, +0x01,0x03,0x01,0x05,0x03,0x80,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00,0x06,0x0b,0x01,0x07,0x08,0x06,0x07,0x67,0x00,0x08,0x09,0x09,0x08,0x57,0x00,0x08,0x08,0x09,0x5f,0x0c,0x01,0x09,0x08,0x09,0x4f,0x59,0x40,0x1e,0x20,0x20,0x1c,0x1c,0x00,0x00,0x20,0x23,0x20,0x23,0x22,0x21,0x1c, +0x1f,0x1c,0x1f,0x1e,0x1d,0x00,0x1b,0x00,0x1b,0x24,0x23,0x12,0x24,0x23,0x0d,0x06,0x1b,0x2b,0x13,0x35,0x34,0x36,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x15,0x15,0x07,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x46,0x48,0x3a,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25, +0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x01,0xcc,0xfe,0x34,0x01,0xcc,0x01,0xd6,0x46,0x3b,0x47,0x1a,0x27,0x27,0x1a,0x37,0x46,0x46,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x37,0x46,0xb2,0x4c,0x4c,0xd8,0x4c,0x4c,0x00,0x00,0x01,0x00,0x28,0xff,0x4c,0x02,0x30,0x02,0xda,0x00,0x0b,0x00,0x2c,0x40,0x29,0x03,0x01,0x01,0x00,0x01,0x85,0x04,0x02, +0x02,0x00,0x05,0x05,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x17,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x28,0x41,0x5a,0xd2,0x5a,0x41,0xb4,0x52,0x03,0x3c,0xfc,0xc4,0x03,0x3c,0xfc,0xc4,0x52,0x00, +0x00,0x01,0x00,0xff,0xfe,0xd4,0x01,0x59,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xff,0x5a,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0x1b,0x00,0x00,0x02,0x3c,0x02,0x2a,0x00,0x14, +0x00,0x13,0x40,0x10,0x14,0x10,0x0c,0x0b,0x00,0x05,0x00,0x4a,0x00,0x00,0x00,0x76,0x15,0x01,0x06,0x17,0x2b,0x01,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x26,0x26,0x27,0x35,0x1e,0x02,0x17,0x3e,0x02,0x37,0x02,0x3c,0x44,0x66,0x37,0x64,0x36,0x63,0x43,0x4d,0x76,0x45,0x06,0x07,0x47,0x78,0x4d,0x01,0xd0,0x08,0x63,0xa2,0x69,0x5a,0x5a, +0x69,0xa2,0x63,0x08,0x5a,0x09,0x56,0x8f,0x5c,0x5c,0x8f,0x56,0x09,0x00,0x00,0x00,0x00,0x02,0x00,0x9f,0x00,0xbe,0x01,0xb9,0x01,0xd8,0x00,0x03,0x00,0x07,0x00,0x08,0xb5,0x06,0x04,0x02,0x00,0x02,0x32,0x2b,0x25,0x27,0x37,0x17,0x07,0x37,0x27,0x07,0x01,0x2c,0x8d,0x8d,0x8d,0x8d,0x54,0x54,0x54,0xbe,0x8d,0x8d,0x8d,0x54,0x54,0x54, +0x54,0x00,0x00,0x00,0x00,0x01,0x00,0xff,0x00,0x00,0x01,0x59,0x02,0xda,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x33,0x11,0x33,0x11,0xff,0x5a,0x02,0xda,0xfd,0x26,0x00,0xff,0xff,0x00,0x05,0x00,0x00,0x02,0x53,0x02,0xda,0x02,0x06, +0x03,0x20,0x00,0x00,0x00,0x01,0x00,0x7d,0x00,0x00,0x01,0xdb,0x02,0xda,0x00,0x0b,0x00,0x2c,0x40,0x29,0x0a,0x07,0x04,0x01,0x04,0x03,0x01,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x03,0x01,0x85,0x04,0x01,0x03,0x02,0x03,0x85,0x00,0x02,0x02,0x76,0x00,0x00,0x00,0x0b,0x00,0x0b,0x12,0x12,0x12,0x05,0x06,0x19,0x2b,0x37,0x37, +0x11,0x33,0x15,0x37,0x33,0x07,0x11,0x23,0x35,0x07,0x7d,0x82,0x5a,0x3c,0x46,0x82,0x5a,0x3c,0x8c,0xd1,0x01,0x7d,0xec,0x60,0xd1,0xfe,0x83,0xec,0x60,0x00,0x00,0x00,0x00,0x02,0x00,0x8c,0x00,0xaa,0x01,0xcc,0x01,0xea,0x00,0x0b,0x00,0x0f,0x00,0x30,0x40,0x2d,0x00,0x01,0x04,0x01,0x00,0x02,0x01,0x00,0x69,0x00,0x02,0x03,0x03,0x02, +0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f,0x0c,0x0c,0x01,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x35,0x21,0x15,0x01,0x2c,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0xc6,0x01,0x40,0x01,0x54,0x29,0x22, +0x22,0x29,0x29,0x22,0x22,0x29,0xaa,0x50,0x50,0x00,0x00,0x00,0x00,0x02,0x00,0x23,0x00,0x46,0x02,0x35,0x02,0x8a,0x00,0x15,0x00,0x29,0x00,0x48,0x40,0x45,0x00,0x01,0x00,0x02,0x05,0x01,0x02,0x67,0x00,0x05,0x00,0x06,0x07,0x05,0x06,0x67,0x00,0x07,0x09,0x01,0x04,0x03,0x07,0x04,0x67,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x03,0x03, +0x00,0x5f,0x08,0x01,0x00,0x03,0x00,0x4f,0x17,0x16,0x01,0x00,0x28,0x26,0x21,0x1f,0x1e,0x1c,0x16,0x29,0x17,0x29,0x14,0x12,0x0d,0x0b,0x0a,0x08,0x00,0x15,0x01,0x15,0x0a,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x21,0x15,0x27,0x22,0x26,0x35,0x35,0x34, +0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x33,0x15,0x01,0x18,0x4a,0x6f,0x3c,0x3c,0x6f,0x4a,0x01,0x1d,0xfe,0xe3,0x4b,0x5a,0x5a,0x4b,0x01,0x1d,0xf4,0x38,0x40,0x40,0x38,0xf4,0xea,0x17,0x1b,0x1b,0x17,0xea,0x46,0x3c,0x6c,0x48,0x64,0x49,0x6b,0x3c,0x46,0x5d,0x4d,0x64,0x4d,0x5d,0x46,0x9b,0x3d,0x36,0x28,0x36, +0x3d,0x46,0x1b,0x17,0x1e,0x17,0x1b,0x46,0x00,0x03,0xff,0xf6,0x00,0x19,0x02,0x62,0x02,0x83,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x41,0x40,0x3e,0x00,0x01,0x06,0x01,0x00,0x03,0x01,0x00,0x69,0x00,0x03,0x07,0x01,0x02,0x05,0x03,0x02,0x69,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x19, +0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x3d, +0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xd0,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xcf,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0x01,0xf7,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x00,0x00,0x01,0x00,0x23,0x00,0x46,0x02,0x3a,0x02,0x8a,0x00,0x1b, +0x00,0x37,0x40,0x34,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x00,0x05,0x00,0x00,0x05,0x57,0x00,0x05,0x05,0x00,0x5f,0x06,0x01,0x00,0x05,0x00,0x4f,0x01,0x00,0x1a,0x18,0x14,0x13,0x12,0x11,0x0d,0x0b,0x0a,0x08,0x00,0x1b,0x01,0x1b,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x35,0x34, +0x36,0x36,0x33,0x21,0x15,0x21,0x22,0x06,0x06,0x15,0x15,0x21,0x15,0x21,0x15,0x14,0x16,0x16,0x33,0x21,0x15,0x01,0x09,0x3e,0x69,0x3f,0x3f,0x69,0x3e,0x01,0x31,0xfe,0xcf,0x27,0x40,0x25,0x01,0xbd,0xfe,0x43,0x25,0x40,0x27,0x01,0x31,0x46,0x39,0x63,0x3e,0x90,0x3e,0x63,0x39,0x50,0x27,0x40,0x25,0x1e,0x50,0x1e,0x25,0x40,0x27,0x50, +0x00,0x01,0x00,0xa5,0x00,0xb6,0x01,0xbd,0x01,0xe2,0x00,0x17,0x00,0x37,0x40,0x34,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x00,0x05,0x00,0x00,0x05,0x57,0x00,0x05,0x05,0x00,0x5f,0x06,0x01,0x00,0x05,0x00,0x4f,0x01,0x00,0x16,0x14,0x11,0x10,0x0f,0x0e,0x0b,0x09,0x08,0x06,0x00,0x17,0x01, +0x17,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33,0x33,0x15,0x01,0x1a,0x36,0x3f,0x3f,0x36,0xa3,0xa3,0x1f,0x24,0xe6,0xe6,0x24,0x1f,0xa3,0xb6,0x3f,0x36,0x42,0x36,0x3f,0x2d,0x24,0x1f,0x11,0x2a,0x11,0x1f,0x24,0x2d,0x00,0x00,0x03,0x00,0xe6, +0x00,0x19,0x01,0x73,0x02,0x83,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x41,0x40,0x3e,0x00,0x01,0x06,0x01,0x00,0x03,0x01,0x00,0x69,0x00,0x03,0x07,0x01,0x02,0x05,0x03,0x02,0x69,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x19,0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13, +0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2d,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0x20,0x20,0x27,0x27, +0x20,0x20,0x26,0x26,0x20,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0x01,0xf7,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x00,0x01,0x00,0x78,0x00,0x00,0x01,0xe0,0x01,0xfe,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x33,0x11,0x21,0x11,0x78,0x01,0x68,0x01,0xfe,0xfe,0x02,0x00,0x02,0x00,0x97,0x01,0xd2,0x01,0xc4,0x02,0xb2,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x2c,0x00,0x00,0x04,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01, +0x03,0x02,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x0b,0x17,0x2b,0x13,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x97,0x01,0x2d,0xfe,0xd3,0x01,0x2d,0x02,0x7a,0x38,0x38,0xa8,0x38,0x38,0x00,0x00,0x00,0x00,0x03,0x00,0x55,0x00,0x4c,0x02,0x03,0x02,0x48,0x00,0x03,0x00,0x07,0x00,0x0b, +0x00,0x40,0x40,0x3d,0x00,0x00,0x06,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x07,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x04,0x05,0x4f,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06, +0x17,0x2b,0x13,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x55,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0x52,0x01,0xae,0x01,0xfc,0x4c,0x4c,0xd8,0x4c,0x4c,0xd8,0x4c,0x4c,0x00,0x00,0x02,0x00,0x2d,0x00,0x73,0x02,0x2b,0x02,0x21,0x00,0x0f,0x00,0x1f,0x00,0x44,0x40,0x41,0x03,0x01,0x01,0x02,0x01,0x85,0x09,0x07,0x02,0x05, +0x06,0x05,0x86,0x00,0x02,0x08,0x01,0x00,0x04,0x02,0x00,0x67,0x00,0x04,0x06,0x06,0x04,0x57,0x00,0x04,0x04,0x06,0x5f,0x00,0x06,0x04,0x06,0x4f,0x10,0x10,0x01,0x00,0x10,0x1f,0x10,0x1f,0x1d,0x1a,0x18,0x17,0x15,0x12,0x0c,0x0b,0x09,0x06,0x04,0x03,0x00,0x0f,0x01,0x0e,0x0a,0x06,0x16,0x2b,0x13,0x22,0x26,0x35,0x33,0x14,0x16,0x33, +0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0x01,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x23,0x22,0x06,0x15,0xf5,0x5c,0x6c,0x5a,0x3b,0x33,0x6e,0x33,0x3b,0x5a,0x6c,0x5c,0xfe,0xca,0x6c,0x5c,0x6e,0x5c,0x6c,0x5a,0x3b,0x33,0x6e,0x33,0x3b,0x01,0x77,0x5c,0x4e,0x29,0x31,0x31,0x29,0x4e,0x5c,0xfe,0xfc,0x4e,0x5c,0x5c, +0x4e,0x29,0x31,0x31,0x29,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x69,0x02,0x58,0x02,0x2b,0x00,0x0b,0x00,0x0f,0x00,0x1b,0x00,0x41,0x40,0x3e,0x00,0x01,0x06,0x01,0x00,0x02,0x01,0x00,0x69,0x00,0x02,0x07,0x01,0x03,0x05,0x02,0x03,0x67,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x11, +0x10,0x0c,0x0c,0x01,0x00,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x35,0x21,0x15,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x08,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c, +0xfd,0xd4,0x01,0x5e,0xaa,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0x01,0x95,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0x73,0x50,0x50,0xb9,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0x00,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x01,0xf4,0x02,0xda,0x00,0x0b,0x00,0x32,0x40,0x2f,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x00,0x02,0x00,0x01, +0x00,0x02,0x01,0x67,0x00,0x00,0x05,0x05,0x00,0x57,0x00,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x33,0x35,0x21,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x50,0x01,0x4a,0xfe,0xd9,0x01,0x27,0xfe,0xb6,0x01,0xa4,0x52,0x01,0x02,0x52,0xe2, +0x52,0xfd,0x26,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x03,0x00,0x0c,0x00,0x2a,0x40,0x27,0x08,0x01,0x01,0x02,0x01,0x4c,0x00,0x01,0x02,0x01,0x86,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x03,0x01,0x02,0x00,0x02,0x4f,0x04,0x04,0x04,0x0c,0x04,0x0c,0x11,0x10,0x04,0x06,0x18,0x2b,0x13,0x21, +0x03,0x23,0x03,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x32,0x01,0xf4,0xbd,0x7b,0x4c,0x69,0x0d,0x11,0x04,0x04,0x13,0x0d,0x65,0x02,0xda,0xfd,0x26,0x02,0x8a,0xfe,0x5f,0x34,0x58,0x17,0x17,0x59,0x34,0x01,0xa0,0x00,0x00,0x00,0x00,0x02,0x00,0x50,0xff,0xfb,0x02,0x08,0x02,0xd0,0x00,0x0c,0x00,0x28,0x00,0x7d,0x40,0x0a,0x0c,0x0b, +0x0a,0x09,0x05,0x01,0x00,0x07,0x00,0x4a,0x4b,0xb0,0x11,0x50,0x58,0x40,0x27,0x00,0x02,0x00,0x04,0x01,0x02,0x72,0x06,0x01,0x05,0x01,0x03,0x04,0x05,0x72,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x05,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x62,0x00,0x03,0x01,0x03,0x52,0x1b,0x40,0x29,0x00,0x02,0x00,0x04,0x00,0x02,0x04, +0x80,0x06,0x01,0x05,0x01,0x03,0x01,0x05,0x03,0x80,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x05,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x62,0x00,0x03,0x01,0x03,0x52,0x59,0x40,0x13,0x0d,0x0d,0x0d,0x28,0x0d,0x28,0x25,0x23,0x20,0x1e,0x1b,0x1a,0x17,0x15,0x12,0x10,0x07,0x06,0x16,0x2b,0x37,0x35,0x25,0x36,0x36,0x37,0x26, +0x26,0x27,0x25,0x35,0x05,0x15,0x01,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x55,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0xca,0x01,0xae,0xfe,0x4d,0x47,0x3b,0x23,0x30,0x26,0x23,0x16,0x16,0x19,0x55,0x47,0x3b,0x23,0x31,0x25,0x24,0x15, +0x16,0x19,0xbe,0x57,0x98,0x09,0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0xfe,0x6b,0x14,0x3b,0x47,0x18,0x20,0x18,0x19,0x16,0x1c,0x14,0x3b,0x47,0x18,0x20,0x18,0x19,0x16,0x1c,0x00,0x00,0x01,0x00,0x23,0x00,0xb5,0x02,0x34,0x01,0xdf,0x00,0x25,0x00,0x2b,0x40,0x28,0x04,0x01,0x01,0x06,0x01,0x03,0x02,0x01,0x03,0x69,0x07,0x01, +0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x05,0x01,0x00,0x02,0x00,0x51,0x14,0x24,0x24,0x11,0x14,0x24,0x24,0x10,0x08,0x06,0x1e,0x2b,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x35,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x27,0x26,0x23,0x22,0x06,0x15, +0x14,0x16,0x33,0xb1,0x43,0x4b,0x4a,0x43,0x35,0x4d,0x13,0x16,0x16,0x36,0x20,0x22,0x23,0x20,0x44,0x4a,0x49,0x44,0x37,0x50,0x12,0x17,0x14,0x33,0x1f,0x23,0x23,0x20,0xb5,0x4e,0x46,0x47,0x4f,0x39,0x34,0x3d,0x3d,0x2b,0x28,0x26,0x2a,0x44,0x4d,0x47,0x47,0x4f,0x3a,0x34,0x42,0x38,0x2c,0x28,0x26,0x2a,0x00,0x00,0x00,0x01,0xff,0xb0, +0x00,0x71,0x02,0xa8,0x02,0x24,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x01,0x02,0x01,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x02,0x00,0x00,0x02,0x57,0x00,0x02,0x02,0x00,0x60,0x00,0x00,0x02,0x00,0x50,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x25,0x37,0x21,0x37,0x33,0x07,0x21,0x07,0x01,0x7f,0xbd,0xfd, +0x74,0xe9,0x40,0xbd,0x02,0x8c,0xe9,0x71,0xc3,0xf0,0xc3,0xf0,0x00,0x02,0x00,0x0a,0x00,0xeb,0x02,0x44,0x01,0xa9,0x00,0x0e,0x00,0x1a,0x00,0x34,0x40,0x31,0x00,0x02,0x00,0x05,0x03,0x02,0x05,0x69,0x00,0x03,0x00,0x00,0x04,0x03,0x00,0x67,0x06,0x01,0x04,0x01,0x01,0x04,0x59,0x06,0x01,0x04,0x04,0x01,0x61,0x00,0x01,0x04,0x01,0x51, +0x10,0x0f,0x16,0x14,0x0f,0x1a,0x10,0x1a,0x12,0x24,0x22,0x10,0x07,0x06,0x1a,0x2b,0x01,0x21,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x21,0x05,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x44,0xfe,0x82,0x07,0x33,0x23,0x28,0x37,0x37,0x28,0x23,0x33,0x07,0x01,0x7e,0xfe,0x25,0x18,0x1f,0x1f, +0x18,0x18,0x1f,0x1f,0x01,0x35,0x21,0x29,0x37,0x28,0x29,0x36,0x29,0x21,0x4c,0x1f,0x18,0x18,0x1f,0x1f,0x18,0x18,0x1f,0x00,0x00,0x01,0x00,0xff,0xff,0x92,0x01,0xe5,0x03,0xfc,0x00,0x0a,0x00,0x26,0x40,0x23,0x00,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x03,0x01,0x00,0x02,0x00,0x51,0x01,0x00, +0x09,0x07,0x05,0x04,0x00,0x0a,0x01,0x0a,0x04,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x33,0x15,0x01,0xb8,0x58,0x61,0x5a,0x5f,0x2d,0x6e,0x57,0x4f,0x03,0xc4,0xfc,0x3c,0x56,0x50,0x00,0x00,0x01,0x00,0x2d,0xfe,0xd4,0x01,0x59,0x03,0xfc,0x00,0x16,0x00,0x30,0x40,0x2d,0x12,0x01,0x00,0x01,0x01,0x4c,0x00,0x02, +0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x16,0x00,0x16,0x14,0x21,0x24,0x05,0x06,0x19,0x2b,0x13,0x11,0x34,0x26,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x07,0x16,0x16,0x15,0x11,0xff,0x0e,0x2b, +0x2b,0x6e,0x6e,0x2c,0x2a,0x0e,0x5a,0x33,0x32,0x31,0x34,0xfe,0xd4,0x02,0x08,0x24,0x2c,0x14,0x50,0x14,0x2d,0x23,0x02,0x08,0xfd,0xf8,0x39,0x4a,0x09,0x09,0x4a,0x39,0xfd,0xf8,0x00,0x00,0x00,0x01,0x00,0xff,0xfe,0xd4,0x01,0xe5,0x03,0x3e,0x00,0x0a,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x59, +0x00,0x00,0x00,0x01,0x61,0x00,0x01,0x00,0x01,0x51,0x00,0x00,0x00,0x0a,0x00,0x0a,0x21,0x23,0x04,0x06,0x18,0x2b,0x13,0x11,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x11,0xff,0x61,0x58,0x2d,0x2d,0x5f,0xfe,0xd4,0x03,0xc4,0x4f,0x57,0x50,0x56,0xfc,0x3c,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x02,0x58,0x02,0x9b,0x00,0x08, +0x00,0x0b,0x00,0x08,0xb5,0x0b,0x09,0x04,0x03,0x02,0x32,0x2b,0x25,0x07,0x25,0x01,0x11,0x01,0x25,0x17,0x05,0x05,0x37,0x27,0x02,0x58,0x22,0xfe,0xf5,0xfe,0xd5,0x01,0x2c,0x01,0x0b,0x21,0xfe,0xf8,0xfe,0xe2,0xd5,0xd5,0x75,0x26,0xf6,0xfe,0xed,0x02,0x69,0xfe,0xef,0xf2,0x24,0xf0,0xc5,0xc4,0xc2,0x00,0x00,0x00,0x00,0x01,0x00,0xff, +0xfe,0xd4,0x01,0x59,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xff,0x5a,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0xff,0xff,0x92,0x01,0xf4,0x03,0xfc,0x00,0x05,0x00,0x24,0x40,0x21, +0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x17,0x11,0x33,0x11,0x33,0x15,0xff,0x5a,0x9b,0x6e,0x04,0x6a,0xfb,0xe6,0x50,0x00,0x00,0x00,0x00,0x01,0x00,0xff,0xfe,0xd4,0x01,0xf4,0x03,0x3e,0x00,0x05, +0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x33,0x15,0x23,0x11,0xff,0xf5,0x9b,0xfe,0xd4,0x04,0x6a,0x50,0xfb,0xe6,0x00,0x00,0x00,0x02,0x00,0x41,0x00,0x00,0x02,0x17, +0x02,0xd0,0x00,0x0c,0x00,0x28,0x00,0x3b,0x40,0x38,0x0c,0x08,0x04,0x03,0x02,0x01,0x00,0x07,0x00,0x4a,0x00,0x01,0x04,0x03,0x01,0x59,0x02,0x01,0x00,0x00,0x04,0x03,0x00,0x04,0x69,0x00,0x01,0x01,0x03,0x62,0x06,0x05,0x02,0x03,0x01,0x03,0x52,0x0d,0x0d,0x0d,0x28,0x0d,0x28,0x25,0x23,0x20,0x1e,0x1b,0x1a,0x17,0x15,0x12,0x10,0x07, +0x06,0x16,0x2b,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x01,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x02,0x03,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x22,0x11,0x01,0x36,0xfe,0x3e,0x47,0x3b,0x23,0x39, +0x32,0x2c,0x16,0x16,0x19,0x55,0x47,0x3b,0x23,0x3a,0x31,0x2d,0x15,0x16,0x19,0xbe,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0xfe,0xe8,0x0f,0x3b,0x47,0x15,0x1c,0x15,0x19,0x16,0x17,0x0f,0x3b,0x47,0x15,0x1c,0x15,0x19,0x16,0x17,0x00,0x03,0xff,0xf6,0x01,0x08,0x02,0x62,0x01,0x94,0x00,0x0b,0x00,0x17,0x00,0x23, +0x00,0x37,0x40,0x34,0x05,0x03,0x02,0x01,0x00,0x00,0x01,0x59,0x05,0x03,0x02,0x01,0x01,0x00,0x61,0x08,0x04,0x07,0x02,0x06,0x05,0x00,0x01,0x00,0x51,0x19,0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x13,0x22,0x26,0x35,0x34,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x33,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x33,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x3d,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xd0,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xcf,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0x01,0x08,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x27, +0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x00,0x00,0x01,0x00,0x41,0xff,0xec,0x02,0x17,0x02,0x26,0x00,0x0f,0x00,0x2f,0x40,0x2c,0x00,0x04,0x03,0x04,0x86,0x00,0x00,0x07,0x01,0x01,0x02,0x00,0x01,0x67,0x06,0x01,0x02,0x03,0x03,0x02,0x57,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03, +0x4f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x08,0x06,0x1e,0x2b,0x13,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x35,0x23,0x46,0x01,0xcc,0xba,0xbf,0xbf,0x58,0xbf,0xbf,0xba,0x02,0x26,0x46,0xe1,0x50,0xc3,0xc3,0x50,0xe1,0x00,0x02,0x00,0x00,0x00,0x41,0x02,0x58,0x02,0x53,0x00,0x0c,0x00,0x19,0x00,0x08, +0xb5,0x17,0x0d,0x0a,0x00,0x02,0x32,0x2b,0x25,0x35,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x35,0x05,0x15,0x05,0x35,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x35,0x05,0x15,0x01,0x0e,0xd2,0x11,0x21,0x0a,0x0a,0x21,0x11,0xd2,0x01,0x4a,0xfd,0xa8,0xd2,0x11,0x21,0x0a,0x0a,0x21,0x11,0xd2,0x01,0x4a,0x41,0x53,0x96,0x0c,0x11,0x04, +0x04,0x14,0x0b,0x8f,0x56,0xe0,0x4e,0xe4,0x53,0x96,0x0c,0x11,0x04,0x04,0x14,0x0b,0x8f,0x56,0xe0,0x4e,0x00,0x02,0x00,0x00,0x00,0x41,0x02,0x58,0x02,0x53,0x00,0x0c,0x00,0x19,0x00,0x08,0xb5,0x10,0x0d,0x03,0x00,0x02,0x32,0x2b,0x25,0x25,0x35,0x25,0x15,0x07,0x06,0x06,0x07,0x16,0x16,0x17,0x17,0x05,0x25,0x35,0x25,0x15,0x07,0x06, +0x06,0x07,0x16,0x16,0x17,0x17,0x02,0x58,0xfe,0xb6,0x01,0x4a,0xd2,0x10,0x22,0x0a,0x0a,0x21,0x11,0xd2,0xfe,0xf2,0xfe,0xb6,0x01,0x4a,0xd2,0x10,0x22,0x0a,0x0a,0x21,0x11,0xd2,0x41,0xe4,0x4e,0xe0,0x56,0x8f,0x0b,0x14,0x04,0x04,0x11,0x0c,0x96,0x53,0xe4,0x4e,0xe0,0x56,0x8f,0x0b,0x14,0x04,0x04,0x11,0x0c,0x96,0x00,0x02,0x00,0x14, +0x00,0xeb,0x02,0x4e,0x01,0xa9,0x00,0x0e,0x00,0x1a,0x00,0x3a,0x40,0x37,0x00,0x01,0x00,0x05,0x00,0x01,0x05,0x69,0x00,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x07,0x01,0x04,0x02,0x02,0x04,0x59,0x07,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x04,0x02,0x51,0x10,0x0f,0x00,0x00,0x16,0x14,0x0f,0x1a,0x10,0x1a,0x00,0x0e,0x00,0x0e,0x24, +0x22,0x11,0x08,0x06,0x19,0x2b,0x13,0x35,0x21,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x14,0x01,0x7e,0x07,0x33,0x23,0x29,0x36,0x36,0x29,0x23,0x33,0x07,0x5d,0x18,0x1f,0x1f,0x18,0x18,0x1f,0x1f,0x01,0x35,0x2a,0x21,0x29,0x36,0x29,0x28,0x37,0x29, +0x21,0x22,0x1f,0x18,0x18,0x1f,0x1f,0x18,0x18,0x1f,0x00,0x00,0x00,0x02,0x00,0x46,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x13,0x00,0x1f,0x00,0x43,0x40,0x40,0x02,0x01,0x00,0x06,0x00,0x85,0x00,0x06,0x05,0x06,0x85,0x0a,0x01,0x09,0x04,0x01,0x04,0x09,0x01,0x80,0x07,0x01,0x05,0x08,0x01,0x04,0x09,0x05,0x04,0x67,0x00,0x01,0x03,0x03, +0x01,0x59,0x00,0x01,0x01,0x03,0x61,0x00,0x03,0x01,0x03,0x51,0x14,0x14,0x14,0x1f,0x14,0x1f,0x11,0x11,0x11,0x11,0x14,0x33,0x13,0x33,0x10,0x0b,0x06,0x1f,0x2b,0x13,0x33,0x11,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x17,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x46, +0x32,0x51,0x4a,0x32,0x4a,0x51,0x32,0x68,0x63,0x36,0x63,0x68,0xd2,0x78,0x78,0x28,0x78,0x78,0x02,0xda,0xfd,0xee,0x4a,0x51,0x51,0x4a,0x02,0x12,0xfd,0xee,0x61,0x67,0x67,0x61,0x73,0x79,0x26,0x79,0x79,0x26,0x79,0x00,0x00,0x00,0x00,0x03,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x2b,0x00,0x42,0x40,0x3f, +0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x00,0x05,0x08,0x01,0x04,0x02,0x05,0x04,0x69,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x02,0x00,0x51,0x21,0x20,0x11,0x10,0x01,0x00,0x27,0x25,0x20,0x2b,0x21,0x2b,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b, +0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a, +0x4a,0x76,0x44,0x44,0x76,0x4a,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0xcc,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d,0x02,0xda,0x00,0x07,0x00,0x20,0x40,0x1d, +0x03,0x01,0x01,0x02,0x01,0x86,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x00,0x02,0x4f,0x11,0x11,0x11,0x10,0x04,0x06,0x1a,0x2b,0x13,0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x2b,0x02,0x02,0x5a,0xfe,0xb2,0x5a,0x02,0xda,0xfd,0x26,0x02,0x88,0xfd,0x78,0x00,0x00,0x00,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d, +0x02,0xda,0x00,0x07,0x00,0x26,0x40,0x23,0x02,0x01,0x00,0x01,0x00,0x85,0x00,0x01,0x03,0x03,0x01,0x57,0x00,0x01,0x01,0x03,0x5f,0x04,0x01,0x03,0x01,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x2b,0x5a,0x01,0x4e,0x5a,0x02,0xda,0xfd,0x78,0x02,0x88,0xfd, +0x26,0x00,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x50,0x02,0x2b,0x02,0xf0,0x00,0x03,0x00,0x10,0x00,0x3c,0x40,0x39,0x0c,0x01,0x03,0x02,0x01,0x4c,0x00,0x02,0x01,0x03,0x01,0x02,0x03,0x80,0x06,0x04,0x02,0x03,0x03,0x84,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x05,0x01,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04, +0x10,0x04,0x10,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x07,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0x01,0x13,0x33,0x13,0x23,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x2d,0x01,0xfe,0xfe,0x11,0xb3,0x7a,0xb3,0x5c,0x75,0x0c,0x11,0x04,0x04,0x12,0x0b,0x72,0x02,0xa5,0x4b,0x4b,0xfd,0xab,0x01,0xf4,0xfe,0x0c,0x01,0x40,0x20,0x3f, +0x10,0x10,0x3f,0x20,0xfe,0xc0,0x00,0x00,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d,0x02,0xda,0x00,0x13,0x00,0x26,0x40,0x23,0x04,0x03,0x02,0x01,0x02,0x01,0x86,0x00,0x00,0x02,0x02,0x00,0x59,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x00,0x02,0x51,0x00,0x00,0x00,0x13,0x00,0x13,0x33,0x13,0x33,0x05,0x06,0x19,0x2b,0x33,0x11,0x34,0x36, +0x33,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x23,0x22,0x06,0x15,0x11,0x2b,0x75,0x6f,0x3a,0x6f,0x75,0x5a,0x48,0x44,0x36,0x44,0x48,0x01,0xfe,0x6b,0x71,0x71,0x6b,0xfe,0x02,0x01,0xfe,0x44,0x48,0x48,0x44,0xfe,0x02,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d,0x02,0xda,0x00,0x13,0x00,0x20,0x40,0x1d,0x02,0x01,0x00,0x01, +0x00,0x85,0x00,0x01,0x03,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x61,0x00,0x03,0x01,0x03,0x51,0x33,0x13,0x33,0x10,0x04,0x06,0x1a,0x2b,0x13,0x33,0x11,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x2b,0x5a,0x48,0x44,0x36,0x44,0x48,0x5a,0x75,0x6f,0x3a,0x6f,0x75,0x02,0xda,0xfe,0x02,0x44, +0x48,0x48,0x44,0x01,0xfe,0xfe,0x02,0x6b,0x71,0x71,0x6b,0x00,0x00,0x01,0x00,0x46,0xff,0x9c,0x02,0x12,0x03,0x0c,0x00,0x2f,0x00,0xc6,0x40,0x0a,0x17,0x01,0x07,0x03,0x07,0x01,0x04,0x07,0x02,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x46,0x00,0x06,0x05,0x06,0x85,0x00,0x08,0x05,0x03,0x07,0x08,0x72,0x00,0x04,0x07,0x09,0x03,0x04,0x72, +0x00,0x0e,0x0d,0x0e,0x86,0x00,0x05,0x00,0x03,0x07,0x05,0x03,0x69,0x00,0x07,0x00,0x09,0x02,0x07,0x09,0x6a,0x0a,0x01,0x02,0x0b,0x01,0x01,0x00,0x02,0x01,0x67,0x0c,0x01,0x00,0x0d,0x0d,0x00,0x57,0x0c,0x01,0x00,0x00,0x0d,0x5f,0x10,0x0f,0x02,0x0d,0x00,0x0d,0x4f,0x1b,0x40,0x48,0x00,0x06,0x05,0x06,0x85,0x00,0x08,0x05,0x03,0x05, +0x08,0x03,0x80,0x00,0x04,0x07,0x09,0x07,0x04,0x09,0x80,0x00,0x0e,0x0d,0x0e,0x86,0x00,0x05,0x00,0x03,0x07,0x05,0x03,0x69,0x00,0x07,0x00,0x09,0x02,0x07,0x09,0x6a,0x0a,0x01,0x02,0x0b,0x01,0x01,0x00,0x02,0x01,0x67,0x0c,0x01,0x00,0x0d,0x0d,0x00,0x57,0x0c,0x01,0x00,0x00,0x0d,0x5f,0x10,0x0f,0x02,0x0d,0x00,0x0d,0x4f,0x59,0x40, +0x1e,0x00,0x00,0x00,0x2f,0x00,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x23,0x21,0x12,0x11,0x14,0x23,0x12,0x24,0x11,0x11,0x11,0x11,0x06,0x1f,0x2b,0x37,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x17,0x37,0x33,0x07,0x36,0x35,0x35,0x33,0x15,0x14, +0x06,0x23,0x22,0x27,0x07,0x33,0x15,0x23,0x07,0x21,0x15,0x21,0x07,0x23,0x37,0x46,0x87,0x2f,0xb6,0xd0,0x29,0x1a,0x22,0x21,0x18,0x2f,0x55,0x47,0x3b,0x2b,0x35,0x23,0x0f,0x47,0x3f,0x51,0x2e,0x55,0x47,0x3b,0x0e,0x0c,0x21,0xbd,0xd7,0x2f,0x01,0x06,0xfe,0xe0,0x3b,0x3f,0x3b,0x4c,0x4c,0x8c,0x4c,0x7a,0x13,0x31,0x25,0x37,0x46,0x46, +0x3b,0x47,0x21,0x2f,0x13,0xd1,0xf0,0x01,0x36,0x46,0x46,0x3a,0x48,0x02,0x63,0x4c,0x8c,0x4c,0xb0,0xb0,0x00,0x02,0x00,0x23,0xff,0x92,0x02,0x3a,0x03,0x3e,0x00,0x1d,0x00,0x26,0x00,0xcc,0x40,0x0a,0x21,0x01,0x06,0x05,0x05,0x01,0x07,0x06,0x02,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x32,0x00,0x03,0x02,0x02,0x03,0x70,0x0c,0x01,0x0a, +0x00,0x00,0x0a,0x71,0x04,0x01,0x02,0x0b,0x01,0x05,0x06,0x02,0x05,0x68,0x00,0x06,0x00,0x07,0x01,0x06,0x07,0x67,0x08,0x01,0x01,0x00,0x00,0x01,0x57,0x08,0x01,0x01,0x01,0x00,0x5f,0x09,0x01,0x00,0x01,0x00,0x4f,0x1b,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x31,0x00,0x03,0x02,0x03,0x85,0x0c,0x01,0x0a,0x00,0x00,0x0a,0x71,0x04,0x01,0x02, +0x0b,0x01,0x05,0x06,0x02,0x05,0x68,0x00,0x06,0x00,0x07,0x01,0x06,0x07,0x67,0x08,0x01,0x01,0x00,0x00,0x01,0x57,0x08,0x01,0x01,0x01,0x00,0x5f,0x09,0x01,0x00,0x01,0x00,0x4f,0x1b,0x40,0x30,0x00,0x03,0x02,0x03,0x85,0x0c,0x01,0x0a,0x00,0x0a,0x86,0x04,0x01,0x02,0x0b,0x01,0x05,0x06,0x02,0x05,0x68,0x00,0x06,0x00,0x07,0x01,0x06, +0x07,0x67,0x08,0x01,0x01,0x00,0x00,0x01,0x57,0x08,0x01,0x01,0x01,0x00,0x5f,0x09,0x01,0x00,0x01,0x00,0x4f,0x59,0x59,0x40,0x16,0x00,0x00,0x24,0x22,0x00,0x1d,0x00,0x1d,0x1c,0x1b,0x11,0x11,0x11,0x11,0x11,0x11,0x28,0x11,0x11,0x0d,0x06,0x1f,0x2b,0x17,0x37,0x23,0x35,0x33,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x33,0x37, +0x33,0x07,0x33,0x15,0x23,0x03,0x33,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0x03,0x14,0x16,0x17,0x13,0x23,0x22,0x06,0x15,0x66,0x28,0x5c,0x7a,0x2d,0x53,0x63,0x3a,0x67,0x45,0x7f,0x37,0x46,0x37,0x6c,0x8a,0x74,0xfe,0xfe,0xe4,0x2c,0x01,0x48,0xfe,0x9a,0x28,0x2f,0x3f,0x3a,0x74,0x61,0x43,0x49,0x6e,0x6e,0x52,0x7a,0x0d,0x73,0x56,0x2c, +0x42,0x62,0x36,0x96,0x96,0x52,0xfe,0xc4,0x52,0x76,0x52,0x6e,0x02,0x12,0x3d,0x47,0x05,0x01,0x3b,0x48,0x42,0x00,0x00,0x00,0x00,0x02,0x00,0x1e,0xff,0x92,0x02,0x35,0x03,0x3e,0x00,0x21,0x00,0x29,0x00,0x91,0x40,0x0a,0x11,0x01,0x03,0x04,0x24,0x01,0x02,0x03,0x02,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x31,0x00,0x05,0x04,0x05,0x85, +0x00,0x09,0x08,0x08,0x09,0x71,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x0b,0x01,0x02,0x06,0x01,0x01,0x00,0x02,0x01,0x69,0x07,0x01,0x00,0x08,0x08,0x00,0x57,0x07,0x01,0x00,0x00,0x08,0x5f,0x0c,0x0a,0x02,0x08,0x00,0x08,0x4f,0x1b,0x40,0x30,0x00,0x05,0x04,0x05,0x85,0x00,0x09,0x08,0x09,0x86,0x00,0x04,0x00,0x03,0x02,0x04,0x03, +0x67,0x0b,0x01,0x02,0x06,0x01,0x01,0x00,0x02,0x01,0x69,0x07,0x01,0x00,0x08,0x08,0x00,0x57,0x07,0x01,0x00,0x00,0x08,0x5f,0x0c,0x0a,0x02,0x08,0x00,0x08,0x4f,0x59,0x40,0x16,0x00,0x00,0x27,0x25,0x00,0x21,0x00,0x21,0x20,0x1f,0x11,0x11,0x28,0x12,0x21,0x22,0x11,0x11,0x11,0x0d,0x06,0x1f,0x2b,0x33,0x35,0x33,0x37,0x23,0x35,0x33, +0x13,0x26,0x23,0x21,0x35,0x21,0x32,0x17,0x37,0x33,0x07,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x23,0x07,0x21,0x15,0x21,0x07,0x23,0x37,0x01,0x34,0x27,0x03,0x33,0x32,0x36,0x35,0x1e,0x8e,0x2c,0xba,0xd8,0x73,0x0c,0x0e,0xfe,0xcf,0x01,0x31,0x1d,0x1a,0x39,0x46,0x40,0x34,0x3c,0x3a,0x67,0x45,0x31,0x2c,0x01,0x34,0xfe,0xae,0x28, +0x46,0x28,0x01,0x4d,0x34,0x6b,0x13,0x43,0x49,0x52,0x76,0x52,0x01,0x3a,0x02,0x52,0x05,0x9b,0xb0,0x1a,0x63,0x43,0x2c,0x41,0x63,0x36,0x76,0x52,0x6e,0x6e,0x01,0xcc,0x4f,0x23,0xfe,0xdc,0x48,0x42,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x50,0x02,0x2b,0x02,0xf0,0x00,0x03,0x00,0x10,0x00,0x3c,0x40,0x39,0x0a,0x01,0x04,0x02,0x01,0x4c, +0x03,0x01,0x02,0x01,0x04,0x01,0x02,0x04,0x80,0x06,0x01,0x04,0x04,0x84,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x05,0x01,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x10,0x04,0x10,0x0f,0x0e,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x07,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0x01,0x03,0x33,0x13,0x16,0x16,0x17,0x36, +0x36,0x37,0x13,0x33,0x03,0x2d,0x01,0xfe,0xfe,0xc4,0xb3,0x5c,0x75,0x0c,0x11,0x04,0x04,0x12,0x0b,0x72,0x5b,0xb3,0x02,0xa5,0x4b,0x4b,0xfd,0xab,0x01,0xf4,0xfe,0xc0,0x20,0x3e,0x11,0x11,0x3e,0x20,0x01,0x40,0xfe,0x0c,0x00,0x00,0x00,0x03,0x00,0x55,0x00,0x00,0x02,0x03,0x02,0xd0,0x00,0x03,0x00,0x0c,0x00,0x10,0x00,0x28,0x40,0x25, +0x09,0x05,0x04,0x03,0x02,0x01,0x00,0x07,0x00,0x4a,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x0d,0x0d,0x0d,0x10,0x0d,0x10,0x1e,0x03,0x06,0x17,0x2b,0x25,0x25,0x35,0x25,0x03,0x11,0x07,0x06,0x06,0x07,0x16,0x16,0x17,0x03,0x35,0x21,0x15,0x02,0x03,0xfe,0x52,0x01,0xae,0x4c,0xea,0x13, +0x21,0x08,0x09,0x22,0x11,0x78,0x01,0xae,0xbe,0xd7,0x64,0xd7,0xfe,0x6f,0x01,0x13,0x72,0x09,0x0c,0x02,0x02,0x0e,0x08,0xfe,0x4f,0x50,0x50,0x00,0x00,0x01,0x00,0x46,0xff,0xc4,0x02,0x12,0x03,0x0c,0x00,0x3f,0x00,0xe4,0x40,0x18,0x15,0x01,0x01,0x06,0x18,0x01,0x05,0x01,0x26,0x07,0x02,0x02,0x05,0x27,0x06,0x02,0x0c,0x09,0x37,0x01, +0x08,0x0c,0x05,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x4f,0x00,0x04,0x03,0x04,0x85,0x00,0x06,0x03,0x01,0x05,0x06,0x72,0x00,0x02,0x05,0x07,0x01,0x02,0x72,0x00,0x09,0x00,0x0c,0x08,0x09,0x72,0x0e,0x01,0x0d,0x08,0x0a,0x0c,0x0d,0x72,0x00,0x0b,0x0a,0x0b,0x86,0x00,0x03,0x00,0x01,0x05,0x03,0x01,0x69,0x00,0x05,0x00,0x07,0x00,0x05, +0x07,0x6a,0x00,0x00,0x00,0x0c,0x08,0x00,0x0c,0x69,0x00,0x08,0x0d,0x0a,0x08,0x59,0x00,0x08,0x08,0x0a,0x62,0x00,0x0a,0x08,0x0a,0x52,0x1b,0x40,0x53,0x00,0x04,0x03,0x04,0x85,0x00,0x06,0x03,0x01,0x03,0x06,0x01,0x80,0x00,0x02,0x05,0x07,0x05,0x02,0x07,0x80,0x00,0x09,0x00,0x0c,0x00,0x09,0x0c,0x80,0x0e,0x01,0x0d,0x08,0x0a,0x08, +0x0d,0x0a,0x80,0x00,0x0b,0x0a,0x0b,0x86,0x00,0x03,0x00,0x01,0x05,0x03,0x01,0x69,0x00,0x05,0x00,0x07,0x00,0x05,0x07,0x6a,0x00,0x00,0x00,0x0c,0x08,0x00,0x0c,0x69,0x00,0x08,0x0d,0x0a,0x08,0x59,0x00,0x08,0x08,0x0a,0x62,0x00,0x0a,0x08,0x0a,0x52,0x59,0x40,0x1a,0x00,0x00,0x00,0x3f,0x00,0x3f,0x3d,0x3b,0x39,0x38,0x34,0x32,0x2f, +0x2e,0x26,0x23,0x12,0x23,0x13,0x23,0x12,0x24,0x23,0x0f,0x06,0x1f,0x2b,0x37,0x35,0x34,0x36,0x33,0x32,0x17,0x37,0x26,0x26,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x13,0x33,0x03,0x16,0x16,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x07,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06, +0x23,0x22,0x26,0x26,0x27,0x07,0x23,0x13,0x26,0x23,0x22,0x15,0x15,0x46,0x48,0x3a,0x1a,0x16,0x25,0x15,0x23,0x1b,0x2f,0x55,0x48,0x3a,0x2c,0x36,0x12,0x65,0x3f,0x78,0x08,0x13,0x0b,0x2f,0x55,0x47,0x3b,0x14,0x21,0x0d,0x23,0x13,0x1d,0x1e,0x15,0x2f,0x55,0x47,0x3b,0x24,0x30,0x21,0x0e,0x56,0x3f,0x67,0x0a,0x0b,0x2f,0x6e,0x46,0x3b, +0x47,0x08,0x6a,0x1a,0x2e,0x37,0x46,0x46,0x3b,0x47,0x25,0x17,0x01,0x1d,0xfe,0xad,0x07,0x09,0x37,0x46,0x46,0x3a,0x48,0x09,0x07,0x61,0x13,0x29,0x1d,0x37,0x46,0x46,0x3a,0x48,0x18,0x25,0x12,0xf4,0x01,0x22,0x05,0x37,0x46,0x00,0x00,0x03,0x00,0x23,0xff,0xc4,0x02,0x3a,0x03,0x0c,0x00,0x1c,0x00,0x22,0x00,0x2a,0x00,0x92,0x40,0x0a, +0x10,0x01,0x03,0x04,0x20,0x01,0x02,0x03,0x02,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x31,0x00,0x05,0x04,0x05,0x85,0x00,0x07,0x06,0x06,0x07,0x71,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x09,0x01,0x02,0x0a,0x01,0x01,0x00,0x02,0x01,0x67,0x0b,0x01,0x00,0x06,0x06,0x00,0x57,0x0b,0x01,0x00,0x00,0x06,0x5f,0x0c,0x08,0x02,0x06,0x00, +0x06,0x4f,0x1b,0x40,0x30,0x00,0x05,0x04,0x05,0x85,0x00,0x07,0x06,0x07,0x86,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x09,0x01,0x02,0x0a,0x01,0x01,0x00,0x02,0x01,0x67,0x0b,0x01,0x00,0x06,0x06,0x00,0x57,0x0b,0x01,0x00,0x00,0x06,0x5f,0x0c,0x08,0x02,0x06,0x00,0x06,0x4f,0x59,0x40,0x17,0x00,0x00,0x27,0x25,0x24,0x23,0x22,0x21, +0x00,0x1c,0x00,0x1c,0x11,0x28,0x12,0x21,0x21,0x11,0x11,0x11,0x0d,0x06,0x1e,0x2b,0x37,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x23,0x21,0x35,0x21,0x32,0x17,0x37,0x33,0x07,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x23,0x07,0x23,0x37,0x01,0x34,0x26,0x27,0x07,0x33,0x15,0x23,0x07,0x33,0x32,0x36,0x36,0x35,0x23,0x9f,0x3c,0xdb,0xf8, +0x3c,0x03,0xfe,0xcf,0x01,0x31,0x0f,0x0f,0x2f,0x3f,0x34,0x3e,0x50,0x3f,0x68,0x3f,0x6f,0x2e,0x3f,0x2e,0x01,0x3a,0x2c,0x23,0x37,0x86,0xa3,0x3c,0x53,0x28,0x3f,0x25,0x46,0x50,0xaa,0x50,0xaa,0x50,0x02,0x84,0x92,0x19,0x6b,0x46,0x90,0x3e,0x63,0x39,0x82,0x82,0x01,0x68,0x28,0x45,0x11,0x9c,0x50,0xaa,0x27,0x40,0x25,0x00,0x00,0x00, +0x00,0x03,0x00,0x23,0xff,0xc4,0x02,0x3a,0x03,0x0c,0x00,0x1d,0x00,0x25,0x00,0x2b,0x00,0x90,0x40,0x0a,0x29,0x01,0x06,0x05,0x01,0x01,0x07,0x06,0x02,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x30,0x00,0x01,0x00,0x00,0x01,0x70,0x0c,0x01,0x08,0x07,0x08,0x86,0x02,0x01,0x00,0x0a,0x01,0x03,0x04,0x00,0x03,0x68,0x09,0x01,0x04,0x0b,0x01, +0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x00,0x07,0x06,0x07,0x4f,0x1b,0x40,0x2f,0x00,0x01,0x00,0x01,0x85,0x0c,0x01,0x08,0x07,0x08,0x86,0x02,0x01,0x00,0x0a,0x01,0x03,0x04,0x00,0x03,0x68,0x09,0x01,0x04,0x0b,0x01,0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06, +0x07,0x5f,0x00,0x07,0x06,0x07,0x4f,0x59,0x40,0x17,0x00,0x00,0x2b,0x2a,0x22,0x20,0x1f,0x1e,0x00,0x1d,0x00,0x1d,0x21,0x31,0x11,0x11,0x11,0x11,0x11,0x28,0x0d,0x06,0x1e,0x2b,0x17,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x32,0x33,0x21,0x15,0x21,0x22,0x27,0x07, +0x03,0x33,0x37,0x23,0x22,0x06,0x06,0x15,0x15,0x14,0x16,0x17,0x37,0x23,0x78,0x34,0x3c,0x4d,0x3f,0x69,0x3e,0x6a,0x2e,0x3f,0x2e,0x88,0xa4,0x3c,0xe0,0xfd,0x3c,0x04,0x04,0x01,0x31,0xfe,0xcf,0x12,0x11,0x2f,0x3a,0x9e,0x3c,0x4e,0x27,0x40,0x25,0x29,0x22,0x36,0x81,0x3c,0x94,0x19,0x6a,0x45,0x90,0x3e,0x63,0x39,0x82,0x82,0x50,0xaa, +0x50,0xaa,0x50,0x03,0x85,0x01,0xcc,0xaa,0x27,0x40,0x25,0x8c,0x27,0x43,0x12,0x9a,0x00,0x01,0x00,0x2d,0x00,0x00,0x02,0x2b,0x02,0x99,0x00,0x29,0x00,0x57,0x40,0x54,0x11,0x01,0x03,0x02,0x26,0x01,0x08,0x09,0x02,0x4c,0x00,0x04,0x02,0x04,0x85,0x05,0x01,0x02,0x03,0x02,0x85,0x0c,0x0b,0x02,0x08,0x09,0x0a,0x09,0x08,0x0a,0x80,0x00, +0x0a,0x0a,0x84,0x00,0x03,0x06,0x01,0x01,0x00,0x03,0x01,0x69,0x07,0x01,0x00,0x09,0x09,0x00,0x59,0x07,0x01,0x00,0x00,0x09,0x61,0x00,0x09,0x00,0x09,0x51,0x00,0x00,0x00,0x29,0x00,0x29,0x25,0x24,0x23,0x21,0x12,0x22,0x12,0x14,0x11,0x22,0x12,0x22,0x12,0x0d,0x06,0x1f,0x2b,0x37,0x34,0x36,0x33,0x33,0x37,0x23,0x22,0x26,0x35,0x33, +0x14,0x16,0x33,0x33,0x37,0x33,0x07,0x36,0x36,0x35,0x33,0x14,0x06,0x23,0x23,0x07,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x23,0x07,0x23,0x37,0x06,0x06,0x15,0x2d,0x6c,0x5c,0x04,0x21,0x25,0x5c,0x6c,0x5a,0x3b,0x33,0x42,0x4d,0x46,0x4c,0x27,0x2c,0x5a,0x6c,0x5c,0x03,0x21,0x24,0x5c,0x6c,0x5a,0x3b,0x33,0x42,0x4b,0x46,0x4b,0x28, +0x2c,0x73,0x4e,0x5c,0x5a,0x5c,0x4e,0x29,0x31,0xd2,0xd0,0x06,0x2e,0x24,0x4e,0x5c,0x5a,0x5c,0x4e,0x29,0x31,0xcd,0xcb,0x06,0x2e,0x24,0x00,0x00,0x00,0x02,0x00,0x55,0xff,0xba,0x02,0x03,0x02,0xda,0x00,0x0f,0x00,0x18,0x00,0x23,0x40,0x20,0x16,0x12,0x11,0x0f,0x0b,0x0a,0x09,0x06,0x05,0x04,0x03,0x01,0x00,0x0d,0x01,0x00,0x01,0x4c, +0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x01,0x76,0x15,0x17,0x02,0x06,0x18,0x2b,0x37,0x35,0x37,0x37,0x27,0x35,0x17,0x37,0x33,0x03,0x17,0x15,0x07,0x07,0x23,0x37,0x37,0x27,0x07,0x37,0x36,0x36,0x37,0x26,0x26,0x55,0x87,0x41,0xc8,0xe2,0x56,0x3f,0x5f,0x96,0xff,0x4d,0x3f,0x40,0xd3,0x38,0x2b,0x63,0x13,0x21,0x08,0x09,0x22,0x41,0x57, +0x42,0xbc,0x63,0x5a,0x71,0xf8,0xfe,0xed,0x4b,0x64,0x7f,0xdf,0xb8,0xee,0x1c,0x7d,0x31,0x09,0x0d,0x02,0x02,0x0e,0x00,0x00,0x00,0x02,0x00,0x55,0xff,0x92,0x02,0x03,0x03,0x0c,0x00,0x17,0x00,0x20,0x00,0x6d,0x40,0x12,0x1e,0x1a,0x19,0x0f,0x0e,0x0d,0x0a,0x09,0x08,0x07,0x05,0x04,0x03,0x0d,0x00,0x01,0x01,0x4c,0x4b,0xb0,0x0c,0x50, +0x58,0x40,0x1f,0x00,0x01,0x00,0x01,0x85,0x00,0x04,0x03,0x03,0x04,0x71,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x1b,0x40,0x1e,0x00,0x01,0x00,0x01,0x85,0x00,0x04,0x03,0x04,0x86,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03, +0x00,0x03,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x17,0x00,0x17,0x11,0x11,0x15,0x19,0x11,0x07,0x06,0x1b,0x2b,0x33,0x35,0x33,0x37,0x07,0x35,0x37,0x37,0x27,0x35,0x05,0x37,0x33,0x07,0x17,0x15,0x07,0x07,0x21,0x15,0x21,0x07,0x23,0x37,0x13,0x27,0x07,0x37,0x36,0x36,0x37,0x26,0x26,0x55,0x63,0x40,0xa3,0xc5,0x2d,0xf2,0x01,0x0c,0x40, +0x3f,0x49,0x6c,0xc0,0x4c,0x01,0x0c,0xfe,0xd9,0x25,0x3f,0x25,0xee,0x0e,0x18,0x26,0x13,0x21,0x08,0x09,0x22,0x52,0xbe,0x51,0x57,0x60,0x89,0x78,0x5a,0x86,0xc1,0xdc,0x36,0x64,0x60,0xe4,0x52,0x6e,0x6e,0x01,0xde,0x07,0x4a,0x13,0x09,0x0d,0x02,0x02,0x0e,0x00,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0xc4,0x02,0x03,0x02,0xd9,0x00,0x1b, +0x00,0xca,0x4b,0xb0,0x09,0x50,0x58,0x40,0x34,0x00,0x05,0x04,0x04,0x05,0x70,0x00,0x0c,0x0b,0x0b,0x0c,0x71,0x06,0x01,0x04,0x07,0x01,0x03,0x02,0x04,0x03,0x68,0x08,0x01,0x02,0x09,0x01,0x01,0x00,0x02,0x01,0x67,0x0a,0x01,0x00,0x0b,0x0b,0x00,0x57,0x0a,0x01,0x00,0x00,0x0b,0x5f,0x0e,0x0d,0x02,0x0b,0x00,0x0b,0x4f,0x1b,0x4b,0xb0, +0x0a,0x50,0x58,0x40,0x33,0x00,0x05,0x04,0x05,0x85,0x00,0x0c,0x0b,0x0b,0x0c,0x71,0x06,0x01,0x04,0x07,0x01,0x03,0x02,0x04,0x03,0x68,0x08,0x01,0x02,0x09,0x01,0x01,0x00,0x02,0x01,0x67,0x0a,0x01,0x00,0x0b,0x0b,0x00,0x57,0x0a,0x01,0x00,0x00,0x0b,0x5f,0x0e,0x0d,0x02,0x0b,0x00,0x0b,0x4f,0x1b,0x40,0x32,0x00,0x05,0x04,0x05,0x85, +0x00,0x0c,0x0b,0x0c,0x86,0x06,0x01,0x04,0x07,0x01,0x03,0x02,0x04,0x03,0x68,0x08,0x01,0x02,0x09,0x01,0x01,0x00,0x02,0x01,0x67,0x0a,0x01,0x00,0x0b,0x0b,0x00,0x57,0x0a,0x01,0x00,0x00,0x0b,0x5f,0x0e,0x0d,0x02,0x0b,0x00,0x0b,0x4f,0x59,0x59,0x40,0x1a,0x00,0x00,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x06,0x1f,0x2b,0x37,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x21,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x21,0x07,0x23,0x37,0x55,0x7c,0x2e,0xaa,0xc2,0x2e,0xf0,0x01,0x09,0x2f,0x3f,0x2f,0x66,0x7f,0x2e,0xad,0xc5,0x2e,0xf3,0xfe,0xf4,0x2c,0x3f,0x2c, +0x4c,0x4c,0x8c,0x4c,0x8c,0x4c,0x91,0x91,0x4c,0x8c,0x4c,0x8c,0x4c,0x88,0x88,0x00,0x00,0x02,0x00,0x55,0xff,0xba,0x02,0x03,0x02,0xda,0x00,0x0f,0x00,0x18,0x00,0x29,0x40,0x26,0x16,0x12,0x11,0x0e,0x0d,0x0c,0x0b,0x09,0x08,0x07,0x03,0x02,0x01,0x0d,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00, +0x00,0x0f,0x00,0x0f,0x15,0x03,0x06,0x17,0x2b,0x17,0x13,0x27,0x35,0x37,0x37,0x33,0x07,0x37,0x15,0x07,0x07,0x17,0x15,0x27,0x03,0x13,0x17,0x37,0x07,0x06,0x06,0x07,0x16,0x16,0x78,0x62,0x85,0xe7,0x51,0x3f,0x44,0x7b,0x9f,0x3a,0xd9,0xf3,0x59,0x16,0x27,0x24,0x4b,0x13,0x21,0x08,0x09,0x22,0x46,0x01,0x1b,0x43,0x64,0x73,0xeb,0xc5, +0x3e,0x57,0x4e,0xa8,0x6b,0x5a,0x7a,0xfe,0xff,0x01,0x7a,0x13,0x68,0x25,0x09,0x0d,0x02,0x02,0x0d,0x00,0x00,0x02,0x00,0x55,0xff,0x92,0x02,0x03,0x03,0x0c,0x00,0x17,0x00,0x20,0x00,0x6d,0x40,0x12,0x1e,0x1a,0x19,0x10,0x0f,0x0e,0x0d,0x0b,0x0a,0x09,0x05,0x04,0x03,0x0d,0x00,0x01,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x1f,0x00, +0x01,0x00,0x01,0x85,0x00,0x04,0x03,0x03,0x04,0x71,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x1b,0x40,0x1e,0x00,0x01,0x00,0x01,0x85,0x00,0x04,0x03,0x04,0x86,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x59, +0x40,0x0e,0x00,0x00,0x00,0x17,0x00,0x17,0x11,0x11,0x19,0x15,0x11,0x07,0x06,0x1b,0x2b,0x33,0x35,0x33,0x37,0x27,0x35,0x25,0x37,0x33,0x07,0x37,0x15,0x07,0x07,0x17,0x15,0x27,0x07,0x21,0x15,0x21,0x07,0x23,0x37,0x13,0x17,0x37,0x07,0x06,0x06,0x07,0x16,0x16,0x55,0x63,0x4e,0xb1,0x01,0x20,0x2c,0x3f,0x1f,0x42,0x64,0x49,0xad,0xc7, +0x45,0x01,0x0c,0xfe,0xd9,0x25,0x3f,0x25,0x30,0x53,0x33,0x86,0x13,0x21,0x08,0x09,0x22,0x52,0xea,0x59,0x64,0x90,0x83,0x5d,0x21,0x57,0x31,0xda,0x56,0x5a,0x63,0xcf,0x52,0x6e,0x6e,0x01,0xb1,0x29,0x9b,0x42,0x09,0x0d,0x02,0x02,0x0d,0x00,0x00,0x00,0x00,0x02,0x00,0x23,0xff,0x92,0x02,0x3a,0x03,0x3e,0x00,0x17,0x00,0x1b,0x00,0xca, +0x4b,0xb0,0x09,0x50,0x58,0x40,0x34,0x00,0x03,0x02,0x02,0x03,0x70,0x00,0x0a,0x09,0x09,0x0a,0x71,0x04,0x01,0x02,0x0d,0x01,0x05,0x06,0x02,0x05,0x68,0x0c,0x01,0x06,0x07,0x01,0x01,0x00,0x06,0x01,0x67,0x08,0x01,0x00,0x09,0x09,0x00,0x57,0x08,0x01,0x00,0x00,0x09,0x5f,0x0e,0x0b,0x02,0x09,0x00,0x09,0x4f,0x1b,0x4b,0xb0,0x0c,0x50, +0x58,0x40,0x33,0x00,0x03,0x02,0x03,0x85,0x00,0x0a,0x09,0x09,0x0a,0x71,0x04,0x01,0x02,0x0d,0x01,0x05,0x06,0x02,0x05,0x68,0x0c,0x01,0x06,0x07,0x01,0x01,0x00,0x06,0x01,0x67,0x08,0x01,0x00,0x09,0x09,0x00,0x57,0x08,0x01,0x00,0x00,0x09,0x5f,0x0e,0x0b,0x02,0x09,0x00,0x09,0x4f,0x1b,0x40,0x32,0x00,0x03,0x02,0x03,0x85,0x00,0x0a, +0x09,0x0a,0x86,0x04,0x01,0x02,0x0d,0x01,0x05,0x06,0x02,0x05,0x68,0x0c,0x01,0x06,0x07,0x01,0x01,0x00,0x06,0x01,0x67,0x08,0x01,0x00,0x09,0x09,0x00,0x57,0x08,0x01,0x00,0x00,0x09,0x5f,0x0e,0x0b,0x02,0x09,0x00,0x09,0x4f,0x59,0x59,0x40,0x1a,0x00,0x00,0x1b,0x1a,0x19,0x18,0x00,0x17,0x00,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x06,0x1f,0x2b,0x33,0x35,0x33,0x37,0x23,0x11,0x21,0x37,0x33,0x07,0x33,0x15,0x23,0x03,0x33,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0x23,0x37,0x03,0x33,0x13,0x23,0x23,0x88,0x2c,0xb4,0x01,0x64,0x37,0x46,0x37,0x6d,0x8b,0x74,0xff,0xfe,0xe3,0x2c,0x01,0x49,0xfe,0x99,0x28,0x46,0x28,0x10,0x78,0x74, +0xec,0x52,0x76,0x01,0xe0,0x96,0x96,0x52,0xfe,0xc4,0x52,0x76,0x52,0x6e,0x6e,0x01,0x1a,0x01,0x3c,0x00,0x00,0x02,0x00,0x23,0xff,0xc4,0x02,0x3a,0x03,0x0c,0x00,0x17,0x00,0x1f,0x00,0x43,0x40,0x40,0x1a,0x01,0x04,0x03,0x01,0x01,0x05,0x04,0x02,0x4c,0x00,0x01,0x00,0x01,0x85,0x08,0x01,0x06,0x05,0x06,0x86,0x02,0x01,0x00,0x07,0x01, +0x03,0x04,0x00,0x03,0x69,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x04,0x05,0x4f,0x00,0x00,0x1d,0x1b,0x00,0x17,0x00,0x17,0x21,0x11,0x11,0x11,0x11,0x28,0x09,0x06,0x1c,0x2b,0x17,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x03,0x21,0x15,0x21,0x22,0x27,0x07,0x03, +0x14,0x17,0x13,0x23,0x22,0x06,0x15,0x78,0x43,0x46,0x52,0x3a,0x67,0x45,0x58,0x40,0x3f,0x40,0x9a,0xb7,0x6f,0x01,0x26,0xfe,0xcf,0x09,0x09,0x40,0x3a,0x5a,0x6d,0x3b,0x43,0x49,0x3c,0xbe,0x14,0x6e,0x4e,0x2c,0x42,0x62,0x36,0xb4,0xb4,0x52,0xfe,0xc4,0x52,0x01,0xb5,0x01,0x90,0x6b,0x19,0x01,0x36,0x48,0x42,0x00,0x00,0x02,0x00,0x1e, +0xff,0xc4,0x02,0x35,0x03,0x0c,0x00,0x17,0x00,0x1f,0x00,0x44,0x40,0x41,0x0b,0x01,0x01,0x02,0x1a,0x01,0x00,0x01,0x02,0x4c,0x00,0x03,0x02,0x03,0x85,0x00,0x05,0x04,0x05,0x86,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x07,0x01,0x00,0x04,0x04,0x00,0x59,0x07,0x01,0x00,0x00,0x04,0x5f,0x08,0x06,0x02,0x04,0x00,0x04,0x4f,0x00,0x00, +0x1d,0x1b,0x00,0x17,0x00,0x17,0x11,0x28,0x12,0x21,0x11,0x11,0x09,0x06,0x1c,0x2b,0x37,0x35,0x33,0x13,0x21,0x35,0x21,0x32,0x17,0x37,0x33,0x07,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x23,0x07,0x23,0x37,0x01,0x34,0x27,0x03,0x33,0x32,0x36,0x35,0x1e,0xb7,0x6f,0xfe,0xda,0x01,0x31,0x09,0x09,0x40,0x3f,0x43,0x46,0x52,0x3a,0x67, +0x45,0x58,0x40,0x3f,0x40,0x01,0x23,0x5a,0x6d,0x3b,0x43,0x49,0x78,0x52,0x01,0x3c,0x52,0x01,0xb5,0xbe,0x14,0x6e,0x4e,0x2c,0x41,0x63,0x36,0xb4,0xb4,0x01,0x04,0x6b,0x19,0xfe,0xca,0x48,0x42,0x00,0x00,0x00,0x00,0x01,0x00,0x41,0x00,0x5f,0x02,0x17,0x02,0x35,0x00,0x0b,0x00,0x4d,0x4b,0xb0,0x21,0x50,0x58,0x40,0x16,0x03,0x01,0x01, +0x04,0x01,0x00,0x05,0x01,0x00,0x67,0x06,0x01,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x3b,0x05,0x4e,0x1b,0x40,0x1b,0x00,0x02,0x01,0x05,0x02,0x57,0x03,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x67,0x00,0x02,0x02,0x05,0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07, +0x09,0x1b,0x2b,0x25,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x01,0x00,0xbf,0xbf,0x58,0xbf,0xbf,0x5f,0xc3,0x50,0xc3,0xc3,0x50,0xc3,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x01,0x22,0x01,0xcc,0x01,0x72,0x02,0x06,0x03,0x57,0x00,0x00,0x00,0x01,0x00,0x69,0x00,0x88,0x01,0xee,0x02,0x0e,0x00,0x0b,0x00,0x06,0xb3,0x06, +0x00,0x01,0x32,0x2b,0x37,0x27,0x37,0x27,0x37,0x17,0x37,0x17,0x07,0x17,0x07,0x27,0x9c,0x33,0x8d,0x8d,0x33,0x8e,0x91,0x33,0x91,0x8e,0x34,0x8d,0x88,0x34,0x8d,0x8e,0x33,0x8d,0x91,0x34,0x91,0x8d,0x34,0x8e,0x00,0x03,0x00,0x64,0x00,0x37,0x01,0xf4,0x02,0x62,0x00,0x0b,0x00,0x0f,0x00,0x1b,0x00,0x41,0x40,0x3e,0x00,0x01,0x06,0x01, +0x00,0x02,0x01,0x00,0x69,0x00,0x02,0x07,0x01,0x03,0x05,0x02,0x03,0x67,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x11,0x10,0x0c,0x0c,0x01,0x00,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34, +0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x35,0x21,0x15,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0xee,0x01,0x90,0xc8,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0x01,0xcc,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0xa5,0x4b,0x4b,0xf0,0x29,0x22,0x22,0x29,0x29,0x22,0x22, +0x29,0x00,0x00,0x00,0x00,0x02,0x00,0x55,0x00,0xaa,0x02,0x03,0x01,0xea,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x2c,0x00,0x00,0x04,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06, +0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x55,0x01,0xae,0xfe,0x52,0x01,0xae,0x01,0x9a,0x50,0x50,0xf0,0x50,0x50,0x00,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0xc4,0x02,0x03,0x03,0x0c,0x00,0x13,0x00,0x3d,0x40,0x3a,0x00,0x04,0x03,0x04,0x85,0x0a,0x01,0x09,0x00,0x09,0x86,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02, +0x67,0x07,0x01,0x01,0x00,0x00,0x01,0x57,0x07,0x01,0x01,0x01,0x00,0x5f,0x08,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x06,0x1f,0x2b,0x17,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x78,0x51,0x74,0x91,0x38, +0xc9,0xe5,0x67,0x3f,0x67,0x8a,0xa6,0x38,0xde,0xfb,0x51,0x3c,0xe6,0x50,0xa0,0x50,0x01,0x22,0xfe,0xde,0x50,0xa0,0x50,0xe6,0x00,0x01,0x00,0x55,0x00,0x41,0x02,0x03,0x02,0x53,0x00,0x0c,0x00,0x06,0xb3,0x0a,0x00,0x01,0x32,0x2b,0x37,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0x55,0x01,0x36,0x13,0x21,0x08,0x09, +0x22,0x11,0xfe,0xca,0x01,0xae,0x41,0x57,0x98,0x09,0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0x00,0x00,0x01,0x00,0x55,0x00,0x41,0x02,0x03,0x02,0x53,0x00,0x0c,0x00,0x06,0xb3,0x03,0x00,0x01,0x32,0x2b,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x02,0x03,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08, +0x09,0x22,0x11,0x01,0x36,0x41,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0x00,0x00,0x00,0x02,0x00,0x55,0x00,0x00,0x02,0x03,0x02,0xd0,0x00,0x0c,0x00,0x10,0x00,0x28,0x40,0x25,0x0c,0x0b,0x0a,0x09,0x05,0x01,0x00,0x07,0x00,0x4a,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01, +0x4f,0x0d,0x0d,0x0d,0x10,0x0d,0x10,0x1e,0x03,0x06,0x17,0x2b,0x37,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0x01,0x35,0x21,0x15,0x55,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0xca,0x01,0xae,0xfe,0x52,0x01,0xae,0xbe,0x57,0x98,0x09,0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0xfe,0x6b,0x50,0x50,0x00, +0x00,0x02,0x00,0x55,0x00,0x00,0x02,0x03,0x02,0xd0,0x00,0x0c,0x00,0x10,0x00,0x28,0x40,0x25,0x0c,0x08,0x04,0x03,0x02,0x01,0x00,0x07,0x00,0x4a,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x0d,0x0d,0x0d,0x10,0x0d,0x10,0x1e,0x03,0x06,0x17,0x2b,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06, +0x07,0x16,0x16,0x17,0x05,0x01,0x35,0x21,0x15,0x02,0x03,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x22,0x11,0x01,0x36,0xfe,0x52,0x01,0xae,0xbe,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0xfe,0xe8,0x50,0x50,0x00,0x00,0x00,0x01,0x00,0x41,0x00,0x00,0x02,0x17,0x02,0x3a,0x00,0x0f,0x00,0x56,0x4b,0xb0, +0x18,0x50,0x58,0x40,0x1c,0x04,0x01,0x02,0x05,0x01,0x01,0x00,0x02,0x01,0x67,0x00,0x03,0x03,0x3b,0x4d,0x06,0x01,0x00,0x00,0x07,0x60,0x08,0x01,0x07,0x07,0x39,0x07,0x4e,0x1b,0x40,0x1c,0x00,0x03,0x02,0x03,0x85,0x04,0x01,0x02,0x05,0x01,0x01,0x00,0x02,0x01,0x67,0x06,0x01,0x00,0x00,0x07,0x60,0x08,0x01,0x07,0x07,0x39,0x07,0x4e, +0x59,0x40,0x10,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x09,0x1d,0x2b,0x33,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x46,0xba,0xbf,0xbf,0x58,0xbf,0xbf,0xba,0x46,0xe1,0x50,0xc3,0xc3,0x50,0xe1,0x46,0xff,0xff,0x00,0x46,0x00,0x69,0x02,0x12,0x02,0x2b,0x02,0x26, +0x04,0x22,0x00,0x64,0x01,0x07,0x04,0x22,0x00,0x00,0xff,0x6f,0x00,0x11,0xb1,0x00,0x01,0xb0,0x64,0xb0,0x35,0x2b,0xb1,0x01,0x01,0xb8,0xff,0x6f,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x64,0x00,0xb9,0x01,0xf4,0x01,0x8b,0x00,0x05,0x00,0x46,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x17,0x03,0x01,0x02,0x00,0x00,0x02,0x71,0x00,0x01,0x00,0x00, +0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x16,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0b,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x09,0x18,0x2b,0x25,0x35,0x21,0x35,0x21,0x15,0x01,0x9f,0xfe,0xc5,0x01,0x90, +0xb9,0x82,0x50,0xd2,0x00,0x01,0x00,0x46,0x00,0xfa,0x02,0x12,0x01,0xc7,0x00,0x1b,0x00,0x68,0xb1,0x06,0x64,0x44,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x1b,0x02,0x01,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x03,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x62,0x06,0x05,0x02,0x03,0x01,0x03,0x52,0x1b,0x40,0x29,0x00,0x02,0x00,0x04,0x00, +0x02,0x04,0x80,0x06,0x01,0x05,0x01,0x03,0x01,0x05,0x03,0x80,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x05,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x62,0x00,0x03,0x01,0x03,0x52,0x59,0x40,0x0e,0x00,0x00,0x00,0x1b,0x00,0x1b,0x24,0x23,0x12,0x24,0x23,0x07,0x09,0x1b,0x2b,0xb1,0x06,0x00,0x44,0x37,0x35,0x34,0x36,0x33,0x32, +0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x15,0x15,0x46,0x48,0x3a,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0xff,0x46,0x3b,0x47,0x1a,0x27,0x27,0x1a,0x37,0x46,0x46,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x37,0x46,0x00,0x00,0x00,0x00,0x01,0x00,0x50, +0x01,0x54,0x02,0x08,0x02,0xda,0x00,0x0c,0x00,0x27,0xb1,0x06,0x64,0x44,0x40,0x1c,0x08,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x03,0x02,0x02,0x01,0x01,0x76,0x00,0x00,0x00,0x0c,0x00,0x0c,0x11,0x11,0x04,0x09,0x18,0x2b,0xb1,0x06,0x00,0x44,0x13,0x13,0x33,0x13,0x23,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x50,0xb3, +0x54,0xb1,0x51,0x70,0x08,0x0d,0x03,0x04,0x0e,0x09,0x73,0x01,0x54,0x01,0x86,0xfe,0x7a,0x01,0x02,0x14,0x25,0x0a,0x0a,0x25,0x14,0xfe,0xfe,0x00,0x00,0x03,0x00,0x23,0x00,0xa0,0x02,0x35,0x01,0xf9,0x00,0x1b,0x00,0x2a,0x00,0x39,0x00,0x4b,0x40,0x48,0x17,0x09,0x02,0x04,0x05,0x01,0x4c,0x02,0x01,0x01,0x07,0x01,0x05,0x04,0x01,0x05, +0x69,0x0a,0x06,0x09,0x03,0x04,0x00,0x00,0x04,0x59,0x0a,0x06,0x09,0x03,0x04,0x04,0x00,0x61,0x03,0x08,0x02,0x00,0x04,0x00,0x51,0x2c,0x2b,0x1d,0x1c,0x01,0x00,0x33,0x31,0x2b,0x39,0x2c,0x39,0x25,0x23,0x1c,0x2a,0x1d,0x2a,0x16,0x14,0x0f,0x0d,0x08,0x06,0x00,0x1b,0x01,0x1b,0x0b,0x06,0x16,0x2b,0x37,0x22,0x26,0x35,0x35,0x34,0x36, +0x33,0x32,0x17,0x33,0x3e,0x02,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x27,0x23,0x0e,0x02,0x27,0x32,0x3e,0x02,0x37,0x27,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x21,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x17,0x16,0xa6,0x3b,0x48,0x4c,0x3d,0x66,0x24,0x03,0x05,0x1d,0x33,0x24,0x3b,0x48,0x4b,0x3e,0x66, +0x24,0x03,0x04,0x1e,0x32,0x1c,0x1d,0x24,0x15,0x0a,0x01,0x1f,0x16,0x2c,0x1f,0x27,0x27,0x01,0x19,0x20,0x26,0x26,0x20,0x1c,0x25,0x15,0x0a,0x01,0x1f,0x16,0xa0,0x4a,0x3d,0x4b,0x3d,0x4a,0x63,0x16,0x2d,0x20,0x4a,0x3d,0x4b,0x3d,0x4a,0x63,0x15,0x2e,0x20,0x3c,0x17,0x20,0x1c,0x06,0x54,0x34,0x29,0x22,0x4b,0x22,0x29,0x29,0x22,0x4b, +0x22,0x29,0x17,0x20,0x1c,0x06,0x54,0x34,0x00,0x03,0xff,0xf6,0x00,0x00,0x02,0x62,0x02,0xda,0x00,0x18,0x00,0x22,0x00,0x2c,0x00,0x4f,0x40,0x4c,0x0d,0x0a,0x02,0x04,0x00,0x2b,0x2a,0x1d,0x1c,0x04,0x05,0x04,0x17,0x01,0x02,0x02,0x05,0x03,0x4c,0x00,0x01,0x00,0x01,0x85,0x06,0x01,0x03,0x02,0x03,0x86,0x00,0x00,0x00,0x04,0x05,0x00, +0x04,0x69,0x07,0x01,0x05,0x02,0x02,0x05,0x59,0x07,0x01,0x05,0x05,0x02,0x61,0x00,0x02,0x05,0x02,0x51,0x24,0x23,0x00,0x00,0x23,0x2c,0x24,0x2c,0x20,0x1e,0x00,0x18,0x00,0x18,0x27,0x12,0x27,0x08,0x06,0x19,0x2b,0x33,0x37,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x17,0x37,0x33,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26, +0x27,0x07,0x03,0x14,0x16,0x17,0x13,0x26,0x23,0x22,0x06,0x06,0x13,0x32,0x36,0x36,0x35,0x34,0x26,0x27,0x03,0x16,0x14,0x50,0x33,0x3b,0x51,0x8d,0x58,0x4f,0x43,0x3f,0x47,0x54,0x35,0x3d,0x51,0x8c,0x59,0x2a,0x4c,0x21,0x3a,0x0b,0x24,0x20,0xfc,0x2e,0x36,0x3f,0x63,0x3a,0xdc,0x3f,0x63,0x3a,0x27,0x21,0xfd,0x30,0x77,0x2a,0x7d,0x4a, +0x59,0x8c,0x51,0x22,0x5e,0x7e,0x2a,0x7e,0x4c,0x58,0x8d,0x51,0x13,0x12,0x57,0x01,0x68,0x33,0x57,0x1f,0x01,0x78,0x17,0x3c,0x68,0xfe,0xd8,0x3c,0x69,0x41,0x35,0x59,0x1f,0xfe,0x87,0x1a,0x00,0x01,0x00,0x3c,0x00,0x32,0x02,0x1c,0x02,0x26,0x00,0x0c,0x00,0x1f,0x40,0x1c,0x08,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x03, +0x02,0x02,0x01,0x01,0x76,0x00,0x00,0x00,0x0c,0x00,0x0c,0x11,0x11,0x04,0x06,0x18,0x2b,0x37,0x13,0x33,0x13,0x23,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x3c,0xb3,0x7a,0xb3,0x5c,0x75,0x0c,0x11,0x04,0x04,0x12,0x0b,0x72,0x32,0x01,0xf4,0xfe,0x0c,0x01,0x40,0x20,0x3f,0x10,0x10,0x3f,0x20,0xfe,0xc0,0x00,0x00,0x00,0x01,0x00,0x3c, +0x00,0x32,0x02,0x1c,0x02,0x26,0x00,0x0c,0x00,0x1f,0x40,0x1c,0x06,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x0c,0x00,0x0c,0x18,0x11,0x04,0x06,0x18,0x2b,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0xef,0xb3,0x5c,0x75,0x0c,0x11,0x04,0x04,0x12,0x0b, +0x72,0x5b,0xb3,0x32,0x01,0xf4,0xfe,0xc0,0x20,0x3e,0x11,0x11,0x3e,0x20,0x01,0x40,0xfe,0x0c,0x00,0x00,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d,0x02,0xda,0x00,0x13,0x00,0x26,0x40,0x23,0x04,0x03,0x02,0x01,0x02,0x01,0x86,0x00,0x00,0x02,0x02,0x00,0x59,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x00,0x02,0x51,0x00,0x00,0x00,0x13,0x00, +0x13,0x33,0x13,0x33,0x05,0x06,0x19,0x2b,0x33,0x11,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x23,0x22,0x06,0x15,0x11,0x2b,0x75,0x6f,0x3a,0x6f,0x75,0x5a,0x48,0x44,0x36,0x44,0x48,0x01,0xfe,0x6b,0x71,0x71,0x6b,0xfe,0x02,0x01,0xfe,0x44,0x48,0x48,0x44,0xfe,0x02,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d, +0x02,0xda,0x00,0x13,0x00,0x20,0x40,0x1d,0x02,0x01,0x00,0x01,0x00,0x85,0x00,0x01,0x03,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x61,0x00,0x03,0x01,0x03,0x51,0x33,0x13,0x33,0x10,0x04,0x06,0x1a,0x2b,0x13,0x33,0x11,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x2b,0x5a,0x48,0x44,0x36,0x44, +0x48,0x5a,0x75,0x6f,0x3a,0x6f,0x75,0x02,0xda,0xfe,0x02,0x44,0x48,0x48,0x44,0x01,0xfe,0xfe,0x02,0x6b,0x71,0x71,0x6b,0x00,0x00,0x01,0x00,0x00,0xff,0x4c,0x02,0x17,0x02,0xda,0x00,0x12,0x00,0x28,0x40,0x25,0x00,0x01,0x00,0x02,0x00,0x01,0x02,0x67,0x00,0x00,0x03,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03, +0x4f,0x00,0x00,0x00,0x12,0x00,0x11,0x21,0x25,0x21,0x05,0x06,0x19,0x2b,0x15,0x35,0x33,0x32,0x36,0x35,0x11,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x11,0x14,0x06,0x23,0x69,0x35,0x3e,0x51,0x49,0xa1,0xa1,0x40,0x70,0x5d,0xb4,0x52,0x3d,0x34,0x02,0x40,0x42,0x49,0x50,0x3c,0xfd,0xc1,0x58,0x6b,0x00,0x00,0x00,0xff,0xff,0x00,0x32, +0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x06,0x02,0x54,0x00,0x00,0x00,0x01,0x00,0x28,0xff,0x4c,0x02,0x30,0x02,0xda,0x00,0x0b,0x00,0x2a,0x40,0x27,0x06,0x05,0x02,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x04,0x02,0x02,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11, +0x07,0x06,0x1b,0x2b,0x17,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x23,0x11,0x23,0x11,0x6e,0x46,0x02,0x08,0x46,0x5a,0xc8,0xb4,0x03,0x3c,0x52,0x52,0xfc,0xc4,0x03,0x3c,0xfc,0xc4,0x00,0x00,0x00,0x01,0x00,0x37,0xff,0x4c,0x02,0x1c,0x02,0xda,0x00,0x0b,0x00,0x37,0x40,0x34,0x08,0x02,0x02,0x02,0x01,0x01,0x4c,0x03,0x01,0x01,0x01,0x01, +0x02,0x02,0x4b,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x12,0x11,0x14,0x05,0x06,0x19,0x2b,0x17,0x35,0x01,0x01,0x35,0x21,0x15,0x21,0x01,0x01,0x21,0x15,0x37,0x01,0x13,0xfe,0xed,0x01,0xe5,0xfe,0x89,0x01,0x12, +0xfe,0xec,0x01,0x79,0xb4,0x52,0x01,0x75,0x01,0x75,0x52,0x52,0xfe,0x8b,0xfe,0x8b,0x52,0x00,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x02,0x49,0x02,0xda,0x00,0x0f,0x00,0x2e,0x40,0x2b,0x00,0x03,0x01,0x03,0x85,0x00,0x01,0x00,0x00,0x02,0x01,0x00,0x67,0x00,0x02,0x04,0x04,0x02,0x57,0x00,0x02,0x02,0x04,0x5f,0x05,0x01,0x04,0x02, +0x04,0x4f,0x00,0x00,0x00,0x0f,0x00,0x0f,0x14,0x14,0x11,0x11,0x06,0x06,0x1a,0x2b,0x21,0x03,0x23,0x35,0x33,0x13,0x16,0x16,0x07,0x33,0x26,0x36,0x37,0x13,0x33,0x03,0x01,0x0c,0x7f,0x6f,0xaf,0x63,0x08,0x06,0x01,0x09,0x01,0x07,0x09,0xa0,0x54,0xd4,0x01,0xd6,0x50,0xfe,0x7b,0x22,0x33,0x0b,0x0b,0x34,0x21,0x02,0x39,0xfd,0x26,0x00, +0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0xda,0x00,0x1b,0x00,0x29,0x00,0x3f,0x40,0x3c,0x0c,0x0a,0x02,0x03,0x04,0x01,0x4c,0x00,0x02,0x01,0x02,0x85,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x69,0x06,0x01,0x03,0x00,0x00,0x03,0x59,0x06,0x01,0x03,0x03,0x00,0x61,0x05,0x01,0x00,0x03,0x00,0x51,0x1d,0x1c,0x01,0x00,0x24,0x22,0x1c, +0x29,0x1d,0x29,0x12,0x11,0x08,0x06,0x00,0x1b,0x01,0x1b,0x07,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35,0x34,0x2e,0x02,0x27,0x33,0x30,0x1e,0x03,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x62,0x70,0x61,0x57,0x3e,0x4b,0x07,0x02, +0x31,0x4e,0x5a,0x2a,0x87,0x2b,0x40,0x40,0x2b,0x70,0x62,0x3a,0x3e,0x3d,0x3b,0x3a,0x3e,0x3e,0x0a,0x73,0x64,0x50,0x62,0x70,0x37,0x32,0x19,0x36,0x62,0x52,0x3e,0x13,0x1b,0x36,0x4e,0x67,0x3f,0xc8,0x64,0x73,0x50,0x46,0x41,0x50,0x42,0x45,0x46,0x41,0x50,0x41,0x46,0x00,0xff,0xff,0x00,0x5d,0xff,0x4c,0x01,0xfb,0x02,0x26,0x02,0x06, +0x02,0x80,0x00,0x00,0x00,0x02,0x00,0x9b,0x00,0x00,0x01,0xbd,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x22,0x40,0x1f,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x03,0x04,0x03,0x01,0x01,0x76,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x01,0x63, +0x5a,0xfe,0xde,0x5a,0x02,0xda,0xfd,0x26,0x02,0xda,0xfd,0x26,0x00,0x01,0x00,0xff,0xfe,0xd4,0x01,0x59,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xff,0x5a,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00, +0x00,0x01,0x00,0xff,0xff,0x88,0x02,0x2b,0x03,0xfc,0x00,0x0a,0x00,0x10,0x40,0x0d,0x0a,0x00,0x02,0x00,0x49,0x00,0x00,0x00,0x76,0x15,0x01,0x06,0x17,0x2b,0x05,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x17,0x02,0x2b,0x5d,0x86,0x49,0x5a,0x71,0x61,0x78,0x17,0x6e,0xa0,0x61,0x02,0xee,0xfd,0x12,0x75,0xa2,0x17,0x00,0x01,0x00,0xff, +0xfe,0xd4,0x02,0x2b,0x03,0x48,0x00,0x0a,0x00,0x16,0x40,0x13,0x06,0x05,0x02,0x00,0x4a,0x01,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0x0a,0x00,0x0a,0x02,0x06,0x16,0x2b,0x13,0x11,0x34,0x36,0x36,0x37,0x15,0x06,0x06,0x15,0x11,0xff,0x49,0x86,0x5d,0x61,0x71,0xfe,0xd4,0x02,0xee,0x62,0x9f,0x6e,0x17,0x58,0x17,0xa2,0x75,0xfd,0x12,0x00, +0xff,0xff,0x00,0xff,0xfe,0xd4,0x01,0x59,0x03,0xfc,0x02,0x06,0x04,0x32,0x00,0x00,0x00,0x01,0x00,0x2d,0xff,0x88,0x01,0x59,0x03,0xfc,0x00,0x0a,0x00,0x10,0x40,0x0d,0x01,0x00,0x02,0x00,0x49,0x00,0x00,0x00,0x76,0x15,0x01,0x06,0x17,0x2b,0x17,0x35,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x06,0x2d,0x62,0x70,0x5a,0x48,0x87,0x78, +0x58,0x17,0xa2,0x75,0x02,0xee,0xfd,0x12,0x61,0xa0,0x6e,0x00,0x00,0x01,0x00,0x2d,0xfe,0xd4,0x01,0x59,0x03,0x48,0x00,0x0a,0x00,0x10,0x40,0x0d,0x06,0x05,0x02,0x00,0x4a,0x00,0x00,0x00,0x76,0x10,0x01,0x06,0x17,0x2b,0x01,0x23,0x11,0x34,0x26,0x27,0x35,0x1e,0x02,0x15,0x01,0x59,0x5a,0x70,0x62,0x5d,0x87,0x48,0xfe,0xd4,0x02,0xee, +0x75,0xa2,0x17,0x58,0x17,0x6e,0x9f,0x62,0x00,0x05,0x00,0x0e,0xff,0xfb,0x02,0x4a,0x02,0xdf,0x00,0x0d,0x00,0x11,0x00,0x1f,0x00,0x2d,0x00,0x3b,0x00,0x99,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x2c,0x0c,0x01,0x04,0x0a,0x01,0x00,0x07,0x04,0x00,0x69,0x00,0x07,0x00,0x09,0x08,0x07,0x09,0x69,0x00,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01, +0x38,0x4d,0x0e,0x01,0x08,0x08,0x03,0x61,0x0d,0x06,0x0b,0x03,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x34,0x0c,0x01,0x04,0x0a,0x01,0x00,0x07,0x04,0x00,0x69,0x00,0x07,0x00,0x09,0x08,0x07,0x09,0x69,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x38,0x4d,0x0b,0x01,0x03,0x03,0x39,0x4d,0x0e,0x01,0x08,0x08,0x06, +0x61,0x0d,0x01,0x06,0x06,0x42,0x06,0x4e,0x59,0x40,0x2b,0x2f,0x2e,0x21,0x20,0x13,0x12,0x0e,0x0e,0x01,0x00,0x36,0x34,0x2e,0x3b,0x2f,0x3b,0x28,0x26,0x20,0x2d,0x21,0x2d,0x1a,0x18,0x12,0x1f,0x13,0x1f,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x08,0x06,0x00,0x0d,0x01,0x0d,0x0f,0x09,0x16,0x2b,0x13,0x22,0x26,0x37,0x35,0x26,0x36,0x33,0x32, +0x16,0x17,0x15,0x14,0x06,0x03,0x01,0x33,0x01,0x13,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x22,0x26,0x35,0x35,0x26,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x06,0x16,0x99,0x40,0x4b,0x01,0x01,0x4b,0x40,0x40,0x4b,0x01,0x4b,0xcc,0x01, +0xf2,0x4a,0xfe,0x0e,0x42,0x1e,0x23,0x23,0x1e,0x1e,0x23,0x23,0x01,0x42,0x40,0x4b,0x01,0x4c,0x40,0x40,0x4b,0x4b,0x40,0x1e,0x23,0x23,0x1f,0x1d,0x23,0x01,0x23,0x01,0x90,0x49,0x3e,0x41,0x3e,0x49,0x49,0x3e,0x41,0x3e,0x49,0xfe,0x70,0x02,0xda,0xfd,0x26,0x01,0xd4,0x24,0x1f,0x41,0x1f,0x24,0x24,0x1f,0x41,0x1f,0x24,0xfe,0x27,0x49, +0x3e,0x41,0x3e,0x49,0x49,0x3e,0x41,0x3e,0x49,0x45,0x23,0x1f,0x41,0x1f,0x24,0x24,0x1f,0x41,0x1f,0x23,0x00,0x06,0xff,0xfb,0xff,0xfb,0x02,0x72,0x02,0xdf,0x00,0x0d,0x00,0x11,0x00,0x1f,0x00,0x39,0x00,0x47,0x00,0x55,0x00,0xb7,0xb6,0x37,0x2a,0x02,0x0a,0x0b,0x01,0x4c,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x31,0x10,0x01,0x04,0x0e,0x01, +0x00,0x07,0x04,0x00,0x69,0x08,0x01,0x07,0x0d,0x01,0x0b,0x0a,0x07,0x0b,0x6a,0x00,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01,0x38,0x4d,0x13,0x0c,0x12,0x03,0x0a,0x0a,0x03,0x61,0x09,0x11,0x06,0x0f,0x04,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x39,0x10,0x01,0x04,0x0e,0x01,0x00,0x07,0x04,0x00,0x69,0x08,0x01,0x07,0x0d,0x01,0x0b,0x0a, +0x07,0x0b,0x6a,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x38,0x4d,0x0f,0x01,0x03,0x03,0x39,0x4d,0x13,0x0c,0x12,0x03,0x0a,0x0a,0x06,0x61,0x09,0x11,0x02,0x06,0x06,0x42,0x06,0x4e,0x59,0x40,0x37,0x49,0x48,0x3b,0x3a,0x21,0x20,0x13,0x12,0x0e,0x0e,0x01,0x00,0x50,0x4e,0x48,0x55,0x49,0x55,0x42,0x40,0x3a, +0x47,0x3b,0x47,0x35,0x33,0x2e,0x2c,0x28,0x26,0x20,0x39,0x21,0x39,0x1a,0x18,0x12,0x1f,0x13,0x1f,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x08,0x06,0x00,0x0d,0x01,0x0d,0x14,0x09,0x16,0x2b,0x13,0x22,0x26,0x27,0x35,0x26,0x36,0x33,0x32,0x16,0x17,0x15,0x14,0x06,0x03,0x01,0x33,0x01,0x13,0x32,0x36,0x35,0x35,0x26,0x26,0x23,0x22,0x06,0x15, +0x15,0x14,0x16,0x13,0x22,0x26,0x37,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x27,0x32,0x36,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x06,0x16,0x33,0x32,0x36,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x06,0x16,0x7d,0x37,0x40,0x01,0x01,0x41,0x37, +0x37,0x41,0x01,0x40,0xba,0x01,0xb6,0x43,0xfe,0x4a,0x3f,0x1a,0x1f,0x01,0x1e,0x1a,0x1a,0x1f,0x1f,0xf6,0x32,0x3b,0x01,0x3b,0x31,0x26,0x2e,0x02,0x03,0x2f,0x25,0x32,0x3a,0x3a,0x32,0x26,0x2e,0x02,0x04,0x2f,0x1f,0x17,0x1b,0x01,0x1c,0x17,0x17,0x1c,0x01,0x1c,0xbb,0x17,0x1b,0x01,0x1c,0x17,0x17,0x1c,0x01,0x1c,0x01,0xb8,0x3e,0x35, +0x41,0x35,0x3e,0x3e,0x35,0x41,0x35,0x3e,0xfe,0x48,0x02,0xda,0xfd,0x26,0x01,0xf3,0x1f,0x19,0x41,0x1a,0x1e,0x1e,0x1a,0x41,0x19,0x1f,0xfe,0x08,0x40,0x37,0x38,0x38,0x40,0x26,0x20,0x20,0x26,0x40,0x38,0x38,0x37,0x40,0x26,0x20,0x20,0x26,0x35,0x23,0x1f,0x38,0x1f,0x24,0x24,0x1f,0x38,0x1f,0x23,0x23,0x1f,0x38,0x1f,0x24,0x24,0x1f, +0x38,0x1f,0x23,0x00,0x00,0x01,0x00,0x78,0x00,0x00,0x01,0xe0,0x01,0x65,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b, +0x2b,0x21,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x01,0x07,0x8f,0x8f,0x4a,0x8f,0x8f,0x93,0x40,0x92,0x92,0x40,0x93,0x00,0x00,0x00,0x01,0x00,0xa0,0x01,0x31,0x01,0xb8,0x02,0x49,0x00,0x0b,0x00,0x2c,0x40,0x29,0x00,0x02,0x01,0x05,0x02,0x57,0x03,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x67,0x00,0x02,0x02,0x05, +0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x0b,0x1b,0x2b,0x01,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x01,0x04,0x64,0x64,0x50,0x64,0x64,0x01,0x31,0x69,0x46,0x69,0x69,0x46,0x69,0x00,0x00,0x00,0x00,0x01,0x00,0x37,0x00,0x37,0x02,0x08,0x02,0x58,0x00,0x12, +0x00,0x33,0x40,0x30,0x00,0x02,0x01,0x02,0x85,0x00,0x03,0x01,0x00,0x01,0x03,0x00,0x80,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x01,0x03,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x00,0x00,0x00,0x12,0x00,0x12,0x13,0x13,0x11,0x13,0x06,0x06,0x1a,0x2b,0x25,0x2e,0x02,0x23,0x35,0x32,0x36,0x36,0x37,0x33,0x0e, +0x02,0x07,0x1e,0x02,0x17,0x01,0xae,0x08,0x63,0xa3,0x69,0x69,0xa3,0x63,0x08,0x5a,0x09,0x56,0x8f,0x5c,0x5c,0x8f,0x56,0x09,0x37,0x45,0x65,0x37,0x64,0x36,0x63,0x43,0x4c,0x73,0x45,0x05,0x07,0x48,0x7a,0x4f,0x00,0x02,0x00,0x37,0x00,0x00,0x02,0x08,0x02,0xd5,0x00,0x12,0x00,0x16,0x00,0x47,0x40,0x44,0x00,0x02,0x01,0x02,0x85,0x00, +0x03,0x01,0x00,0x01,0x03,0x00,0x80,0x07,0x01,0x04,0x00,0x05,0x00,0x04,0x05,0x80,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x69,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05,0x06,0x5f,0x08,0x01,0x06,0x05,0x06,0x4f,0x13,0x13,0x00,0x00,0x13,0x16,0x13,0x16,0x15,0x14,0x00,0x12,0x00,0x12,0x13,0x13,0x11,0x13,0x09,0x06,0x1a,0x2b,0x25, +0x2e,0x02,0x23,0x35,0x32,0x36,0x36,0x37,0x33,0x0e,0x02,0x07,0x1e,0x02,0x17,0x05,0x35,0x21,0x15,0x01,0xae,0x08,0x63,0xa3,0x69,0x69,0xa3,0x63,0x08,0x5a,0x09,0x56,0x8f,0x5c,0x5c,0x8f,0x56,0x09,0xfe,0x2f,0x01,0xcc,0xb4,0x45,0x65,0x37,0x64,0x36,0x63,0x43,0x4c,0x73,0x45,0x05,0x07,0x48,0x7a,0x4f,0xb4,0x50,0x50,0x00,0x00,0x00, +0x00,0x04,0x00,0x37,0xff,0xf6,0x02,0x20,0x01,0xfe,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x47,0x40,0x44,0x03,0x01,0x01,0x09,0x02,0x08,0x03,0x00,0x05,0x01,0x00,0x69,0x07,0x01,0x05,0x04,0x04,0x05,0x59,0x07,0x01,0x05,0x05,0x04,0x61,0x0b,0x06,0x0a,0x03,0x04,0x05,0x04,0x51,0x25,0x24,0x19,0x18,0x0d,0x0c,0x01,0x00,0x2b, +0x29,0x24,0x2f,0x25,0x2f,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21, +0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0xce,0x24,0x2e,0x2e,0x24,0x24,0x2e,0x2e,0xfe,0x97,0x24,0x2e,0x2e,0x24,0x24,0x2e,0x2e,0x24,0x24,0x2e,0x2e,0x24,0x24,0x2e,0x2e,0x01,0x21,0x24,0x2e,0x2e,0x24,0x24,0x2e,0x2e,0x01,0x5c,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d, +0xfe,0x9a,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d,0x00,0x00,0x00,0x04,0x00,0x55,0x00,0x4c,0x02,0x03,0x03,0x17,0x00,0x13,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0xaa,0x4b,0xb0,0x24,0x50,0x58,0x40,0x3b,0x0b,0x01,0x04,0x03,0x06,0x03,0x04,0x72,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00, +0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x06,0x0c,0x01,0x05,0x07,0x06,0x05,0x69,0x00,0x07,0x0d,0x01,0x08,0x09,0x07,0x08,0x67,0x00,0x09,0x0a,0x0a,0x09,0x57,0x00,0x09,0x09,0x0a,0x5f,0x0e,0x01,0x0a,0x09,0x0a,0x4f,0x1b,0x40,0x3c,0x0b,0x01,0x04,0x03,0x06,0x03,0x04,0x06,0x80,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00, +0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x06,0x0c,0x01,0x05,0x07,0x06,0x05,0x69,0x00,0x07,0x0d,0x01,0x08,0x09,0x07,0x08,0x67,0x00,0x09,0x0a,0x0a,0x09,0x57,0x00,0x09,0x09,0x0a,0x5f,0x0e,0x01,0x0a,0x09,0x0a,0x4f,0x59,0x40,0x25,0x24,0x24,0x20,0x20,0x15,0x14,0x00,0x00,0x24,0x27,0x24,0x27,0x26,0x25,0x20,0x23,0x20,0x23,0x22,0x21, +0x1b,0x19,0x14,0x1f,0x15,0x1f,0x00,0x13,0x00,0x13,0x24,0x21,0x24,0x21,0x0f,0x06,0x1a,0x2b,0x13,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0xff,0x49,0x18,0x1d,0x1d,0x18, +0x86,0x87,0x33,0x3d,0x3d,0x33,0x13,0x1c,0x12,0x15,0x15,0x12,0x12,0x15,0x15,0xd7,0x01,0xae,0xfe,0x52,0x01,0xae,0x02,0x21,0x55,0x1d,0x18,0x18,0x1d,0x37,0x3a,0x32,0x2f,0x38,0x23,0x73,0x14,0x10,0x11,0x13,0x13,0x11,0x10,0x14,0x8a,0x4c,0x4c,0xd8,0x4c,0x4c,0x00,0x00,0xff,0xff,0x00,0xd9,0xff,0xf6,0x01,0x7f,0x02,0x30,0x02,0x06, +0x03,0x2b,0x00,0x00,0x00,0x02,0x00,0x23,0x00,0x00,0x02,0x3a,0x02,0xa8,0x00,0x15,0x00,0x19,0x00,0x3c,0x40,0x39,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x06,0x01,0x00,0x04,0x03,0x00,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x16,0x16,0x01,0x00,0x16,0x19,0x16,0x19, +0x18,0x17,0x14,0x12,0x0d,0x0b,0x0a,0x08,0x00,0x15,0x01,0x15,0x08,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x21,0x15,0x05,0x35,0x21,0x15,0x01,0x09,0x45,0x67,0x3a,0x3a,0x67,0x45,0x01,0x31,0xfe,0xcf,0x43,0x49,0x49,0x43,0x01,0x31,0xfd,0xf8,0x02,0x08, +0xc8,0x36,0x63,0x41,0x2c,0x42,0x62,0x36,0x52,0x48,0x42,0x28,0x42,0x48,0x52,0xc8,0x52,0x52,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x35,0x02,0xa8,0x00,0x15,0x00,0x19,0x00,0x39,0x40,0x36,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04, +0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x16,0x16,0x00,0x00,0x16,0x19,0x16,0x19,0x18,0x17,0x00,0x15,0x00,0x14,0x21,0x25,0x21,0x08,0x06,0x19,0x2b,0x37,0x35,0x21,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x05,0x35,0x21,0x15,0x1e,0x01,0x31,0x43,0x49,0x49,0x43,0xfe,0xcf, +0x01,0x31,0x45,0x67,0x3a,0x3a,0x67,0x45,0xfe,0xcf,0x02,0x08,0xc8,0x52,0x48,0x42,0x28,0x42,0x48,0x52,0x36,0x62,0x42,0x2c,0x41,0x63,0x36,0xc8,0x52,0x52,0x00,0x00,0x00,0x01,0xff,0xb0,0x00,0x4b,0x02,0xa8,0x01,0xdb,0x00,0x31,0x00,0x4c,0x40,0x49,0x14,0x09,0x02,0x01,0x00,0x2c,0x21,0x1a,0x13,0x08,0x01,0x06,0x06,0x01,0x2b,0x20, +0x02,0x05,0x06,0x03,0x4c,0x04,0x02,0x02,0x00,0x01,0x00,0x85,0x0a,0x09,0x07,0x03,0x05,0x06,0x05,0x86,0x03,0x01,0x01,0x06,0x06,0x01,0x59,0x03,0x01,0x01,0x01,0x06,0x62,0x08,0x01,0x06,0x01,0x06,0x52,0x00,0x00,0x00,0x31,0x00,0x31,0x27,0x11,0x27,0x12,0x17,0x21,0x17,0x21,0x12,0x0b,0x06,0x1f,0x2b,0x27,0x37,0x27,0x33,0x17,0x33, +0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x33,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x07,0x23,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x23,0x07,0x23,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x23,0x07,0x50,0x9f,0x9f,0x6a,0x7d,0x88,0x11,0x28,0x0d,0x07,0x19,0x0d,0x57,0x6a,0x7d,0x18,0x11,0x28,0x0d,0x07, +0x19,0x0d,0x57,0x6a,0x9c,0x9c,0x6a,0x57,0x0a,0x1a,0x09,0x0d,0x28,0x11,0x18,0x7d,0x6a,0x57,0x0a,0x1a,0x09,0x0d,0x28,0x11,0x88,0x7d,0x4b,0xc8,0xc8,0xa0,0x03,0x02,0x09,0x06,0x19,0x10,0x6d,0xa0,0x03,0x02,0x09,0x06,0x19,0x10,0x6d,0xc8,0xc8,0x6e,0x0d,0x19,0x07,0x09,0x01,0x03,0xa0,0x6e,0x0d,0x19,0x07,0x09,0x01,0x03,0xa0,0x00, +0x00,0x01,0x00,0x73,0xff,0x92,0x01,0x59,0x03,0xfc,0x00,0x0a,0x00,0x26,0x40,0x23,0x00,0x02,0x01,0x02,0x85,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x03,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07,0x06,0x04,0x02,0x00,0x0a,0x01,0x0a,0x04,0x06,0x16,0x2b,0x17,0x23,0x35,0x33,0x32,0x35,0x11,0x33,0x11,0x14,0x06,0xa0, +0x2d,0x2d,0x5f,0x5a,0x60,0x6e,0x50,0x56,0x03,0xc4,0xfc,0x3c,0x4f,0x57,0x00,0x00,0x00,0x01,0x00,0xff,0xfe,0xd4,0x02,0x2b,0x03,0xfc,0x00,0x16,0x00,0x2a,0x40,0x27,0x05,0x01,0x03,0x02,0x01,0x4c,0x00,0x01,0x02,0x01,0x85,0x00,0x00,0x03,0x00,0x86,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x02,0x03,0x4f, +0x21,0x24,0x18,0x10,0x04,0x06,0x1a,0x2b,0x01,0x23,0x11,0x34,0x36,0x37,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x06,0x15,0x01,0x59,0x5a,0x34,0x31,0x32,0x33,0x5a,0x0e,0x2b,0x2b,0x6e,0x6e,0x2b,0x2b,0x0e,0xfe,0xd4,0x02,0x08,0x39,0x4a,0x09,0x09,0x4a,0x39,0x02,0x08,0xfd,0xf8,0x23,0x2d,0x14, +0x50,0x14,0x2c,0x24,0x00,0x01,0x00,0x73,0xfe,0xd4,0x01,0x59,0x03,0x3e,0x00,0x0a,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x59,0x00,0x02,0x02,0x01,0x61,0x00,0x01,0x02,0x01,0x51,0x21,0x22,0x10,0x03,0x06,0x19,0x2b,0x01,0x23,0x11,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x01,0x59,0x5a,0x5f,0x2d, +0x2d,0x59,0x60,0xfe,0xd4,0x03,0xc4,0x56,0x50,0x57,0x4f,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x02,0x58,0x02,0x9b,0x00,0x08,0x00,0x0b,0x00,0x08,0xb5,0x0a,0x09,0x04,0x03,0x02,0x32,0x2b,0x11,0x37,0x05,0x01,0x11,0x01,0x05,0x27,0x25,0x05,0x11,0x07,0x23,0x01,0x09,0x01,0x2c,0xfe,0xd3,0xfe,0xf7,0x22,0x01,0x07,0x01,0x1f,0xd6,0x02, +0x58,0x25,0xf3,0x01,0x11,0xfd,0x97,0x01,0x13,0xf1,0x23,0xf0,0xc2,0x01,0x86,0xc3,0xff,0xff,0x00,0xff,0xfe,0xd4,0x01,0x59,0x03,0xfc,0x02,0x06,0x03,0xf4,0x00,0x00,0x00,0x01,0x00,0x64,0xff,0x92,0x01,0x59,0x03,0xfc,0x00,0x05,0x00,0x1e,0x40,0x1b,0x00,0x02,0x01,0x02,0x85,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f, +0x00,0x00,0x01,0x00,0x4f,0x11,0x11,0x10,0x03,0x06,0x19,0x2b,0x05,0x23,0x35,0x33,0x11,0x33,0x01,0x59,0xf5,0x9b,0x5a,0x6e,0x50,0x04,0x1a,0x00,0x00,0x01,0x00,0x64,0xfe,0xd4,0x01,0x59,0x03,0x3e,0x00,0x05,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x02,0x01, +0x4f,0x11,0x11,0x10,0x03,0x06,0x19,0x2b,0x01,0x23,0x11,0x23,0x35,0x33,0x01,0x59,0x5a,0x9b,0xf5,0xfe,0xd4,0x04,0x1a,0x50,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02, +0x01,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x31,0x11,0x33,0x15,0x21,0x15,0x21,0x11,0x5a,0x01,0xfe,0xfe,0x02,0x02,0x58,0xff,0x50,0xfe,0xf7,0x00,0x00,0x04,0x00,0x55,0x00,0x4c,0x02,0x03,0x02,0xd1,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x52,0x40,0x4f,0x00,0x01,0x00,0x03,0x02,0x01, +0x03,0x69,0x09,0x01,0x02,0x08,0x01,0x00,0x04,0x02,0x00,0x69,0x00,0x04,0x0a,0x01,0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x0b,0x01,0x07,0x06,0x07,0x4f,0x1c,0x1c,0x18,0x18,0x0d,0x0c,0x01,0x00,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x18,0x1b,0x18,0x1b,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17, +0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x07,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x01,0x2c,0x36,0x42,0x42,0x36,0x36,0x42,0x42,0x36,0x1b,0x21,0x21,0x1b,0x1b,0x21,0x21,0xbc,0x01,0xae,0xfe,0x52, +0x01,0xae,0x01,0xed,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x33,0x3f,0x35,0x21,0x1c,0x1c,0x22,0x22,0x1c,0x1c,0x21,0xfe,0x4c,0x4c,0xd8,0x4c,0x4c,0x00,0x00,0x02,0x00,0xb4,0x00,0xd2,0x01,0xa4,0x01,0xc2,0x00,0x0b,0x00,0x17,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02, +0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0x35,0x23, +0x2d,0x2d,0x23,0x23,0x2d,0x2d,0xd2,0x44,0x34,0x35,0x43,0x43,0x35,0x34,0x44,0x28,0x2d,0x23,0x23,0x2d,0x2d,0x23,0x23,0x2d,0xff,0xff,0x00,0x46,0x00,0xfa,0x02,0x12,0x01,0xc7,0x02,0x06,0x04,0x22,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x17,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x03,0x02,0x01,0x02,0x01,0x86,0x00, +0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x33,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x3c,0x01,0xe0,0x5a,0xfe,0xd4,0x02,0x17,0xfd,0xe9,0x01,0xc5,0xfe,0x3b,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x17,0x00,0x07, +0x00,0x20,0x40,0x1d,0x02,0x01,0x00,0x01,0x00,0x85,0x00,0x01,0x03,0x03,0x01,0x57,0x00,0x01,0x01,0x03,0x5f,0x00,0x03,0x01,0x03,0x4f,0x11,0x11,0x11,0x10,0x04,0x06,0x1a,0x2b,0x13,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x3c,0x5a,0x01,0x2c,0x5a,0xfe,0x20,0x02,0x17,0xfe,0x3b,0x01,0xc5,0xfd,0xe9,0x00,0x00,0x00,0x00,0x03,0x00,0x00, +0x00,0x1e,0x02,0x58,0x02,0x76,0x00,0x03,0x00,0x07,0x00,0x13,0x00,0x3b,0x40,0x38,0x00,0x00,0x00,0x03,0x05,0x00,0x03,0x67,0x00,0x05,0x07,0x01,0x04,0x02,0x05,0x04,0x69,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x06,0x01,0x01,0x02,0x01,0x4f,0x09,0x08,0x00,0x00,0x0f,0x0d,0x08,0x13,0x09,0x13,0x07,0x06,0x05,0x04, +0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0xfa,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0x1e,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0xfe,0xce,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x00, +0x00,0x03,0x00,0x00,0x00,0x1e,0x02,0x58,0x02,0x76,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x3b,0x40,0x38,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x67,0x00,0x04,0x07,0x01,0x05,0x02,0x04,0x05,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x06,0x01,0x01,0x02,0x01,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09, +0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x13,0x35,0x21,0x15,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x5a,0x01,0x40,0x1e,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0xfe,0xde,0x50,0x50,0x00,0x05,0x00,0x00,0x00,0x1e,0x02,0x58,0x02,0x76,0x00,0x03,0x00,0x06,0x00,0x09, +0x00,0x0c,0x00,0x0f,0x00,0x33,0x40,0x30,0x0c,0x0b,0x09,0x08,0x04,0x03,0x02,0x01,0x4c,0x00,0x00,0x00,0x02,0x03,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x00,0x00,0x0f,0x0e,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x01,0x37,0x21, +0x17,0x17,0x11,0x05,0x27,0x11,0x37,0x07,0x21,0x02,0x58,0xfe,0xd2,0xc2,0xfe,0x7a,0xf7,0xc9,0xfe,0xd0,0xc4,0xf8,0xcb,0x01,0x94,0x1e,0x02,0x58,0xfd,0xa8,0x01,0x64,0xc2,0xf6,0xc7,0x01,0x90,0xc9,0xc6,0xfe,0x76,0x91,0xcb,0x00,0x00,0x05,0x00,0x00,0x00,0x1e,0x02,0x58,0x02,0x76,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13, +0x00,0x4e,0x40,0x4b,0x00,0x00,0x05,0x01,0x02,0x03,0x00,0x02,0x67,0x04,0x0b,0x02,0x03,0x09,0x01,0x06,0x07,0x03,0x06,0x67,0x08,0x0c,0x02,0x07,0x01,0x01,0x07,0x57,0x08,0x0c,0x02,0x07,0x07,0x01,0x5f,0x0a,0x01,0x01,0x07,0x01,0x4f,0x0c,0x0c,0x04,0x04,0x00,0x00,0x13,0x12,0x11,0x10,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x0b,0x0a,0x09, +0x08,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0d,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x01,0x35,0x23,0x15,0x21,0x33,0x35,0x23,0x13,0x35,0x23,0x15,0x21,0x33,0x35,0x23,0x02,0x58,0xfe,0xa8,0xce,0x01,0x26,0xce,0xce,0xce,0xce,0xfe,0xda,0xce,0xce,0x1e,0x02,0x58,0xfd,0xa8,0x01,0x54,0xd2,0xd2,0xd2,0xfe,0x0c,0xd2, +0xd2,0xd2,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x5a,0x02,0x3a,0x02,0x3a,0x00,0x07,0x00,0x28,0x40,0x25,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x37,0x11,0x21,0x15,0x21,0x11, +0x21,0x15,0x23,0x02,0x17,0xfe,0x43,0x01,0xbd,0x5a,0x01,0xe0,0x52,0xfe,0xc4,0x52,0x00,0x02,0x00,0x23,0x00,0x00,0x02,0x3a,0x02,0xa8,0x00,0x07,0x00,0x0b,0x00,0x39,0x40,0x36,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x06,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01, +0x05,0x04,0x05,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x37,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x05,0x35,0x21,0x15,0x23,0x02,0x17,0xfe,0x43,0x01,0xbd,0xfd,0xe9,0x02,0x17,0xc8,0x01,0xe0,0x52,0xfe,0xc4,0x52,0xc8,0x52,0x52,0x00,0x00,0x00,0x01,0x00,0x1e, +0x00,0x5a,0x02,0x35,0x02,0x3a,0x00,0x07,0x00,0x22,0x40,0x1f,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x11,0x11,0x11,0x10,0x04,0x06,0x1a,0x2b,0x25,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x02,0x35,0xfd,0xe9,0x01,0xbd,0xfe,0x43,0x02,0x17,0x5a,0x52, +0x01,0x3c,0x52,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x35,0x02,0xa8,0x00,0x07,0x00,0x0b,0x00,0x39,0x40,0x36,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b, +0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x37,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x05,0x35,0x21,0x15,0x1e,0x01,0xbd,0xfe,0x43,0x02,0x17,0xfd,0xe9,0x02,0x17,0xc8,0x52,0x01,0x3c,0x52,0xfe,0x20,0xc8,0x52,0x52,0x00,0x00,0x00,0x01,0x00,0xb4,0x00,0xda,0x01,0xa4,0x01,0xd0,0x00,0x09,0x00,0x18,0x40,0x15, +0x04,0x01,0x00,0x4a,0x09,0x08,0x07,0x01,0x04,0x00,0x49,0x01,0x01,0x00,0x00,0x76,0x12,0x12,0x02,0x06,0x18,0x2b,0x37,0x37,0x27,0x33,0x37,0x17,0x33,0x07,0x17,0x27,0xe3,0x1e,0x4d,0x5b,0x1d,0x1d,0x5b,0x4d,0x1e,0x49,0xda,0x63,0x36,0x5d,0x5d,0x36,0x63,0x43,0x00,0x00,0x00,0x04,0x00,0x55,0x00,0x54,0x02,0x03,0x02,0x40,0x00,0x03, +0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x51,0x40,0x4e,0x00,0x00,0x08,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x09,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x0a,0x01,0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x0b,0x01,0x07,0x06,0x07,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f, +0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x55,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0x52,0x01,0xae,0x02,0x04,0x3c,0x3c,0x90,0x3c,0x3c,0x90, +0x3c,0x3c,0x90,0x3c,0x3c,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x78,0x02,0x3a,0x02,0x58,0x00,0x15,0x00,0x2b,0x40,0x28,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x03,0x03,0x00,0x5f,0x04,0x01,0x00,0x03,0x00,0x4f,0x01,0x00,0x14,0x12,0x0d,0x0b,0x0a,0x08,0x00,0x15,0x01,0x15,0x05,0x06,0x16, +0x2b,0x25,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x21,0x15,0x01,0x09,0x45,0x67,0x3a,0x3a,0x67,0x45,0x01,0x31,0xfe,0xcf,0x43,0x49,0x49,0x43,0x01,0x31,0x78,0x36,0x63,0x41,0x2c,0x42,0x62,0x36,0x52,0x48,0x42,0x28,0x42,0x48,0x52,0x00,0x01,0x00,0x50,0x00,0x37,0x02,0x21, +0x02,0x58,0x00,0x12,0x00,0x33,0x40,0x30,0x00,0x01,0x02,0x01,0x85,0x00,0x00,0x02,0x03,0x02,0x00,0x03,0x80,0x05,0x01,0x04,0x03,0x04,0x86,0x00,0x02,0x00,0x03,0x02,0x59,0x00,0x02,0x02,0x03,0x61,0x00,0x03,0x02,0x03,0x51,0x00,0x00,0x00,0x12,0x00,0x12,0x11,0x13,0x13,0x14,0x06,0x06,0x1a,0x2b,0x37,0x3e,0x02,0x37,0x2e,0x02,0x27, +0x33,0x1e,0x02,0x33,0x15,0x22,0x06,0x06,0x07,0x50,0x09,0x56,0x8f,0x5c,0x5c,0x8f,0x56,0x09,0x5a,0x09,0x62,0xa3,0x69,0x69,0xa3,0x62,0x09,0x37,0x4f,0x7a,0x48,0x07,0x05,0x45,0x73,0x4c,0x43,0x63,0x36,0x64,0x37,0x65,0x45,0x00,0x00,0x01,0x00,0x23,0x00,0x46,0x02,0x3a,0x02,0x8a,0x00,0x1b,0x00,0x32,0x40,0x2f,0x00,0x04,0x00,0x03, +0x02,0x04,0x03,0x67,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x05,0x05,0x00,0x57,0x00,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x00,0x00,0x00,0x1b,0x00,0x1a,0x21,0x24,0x11,0x14,0x21,0x07,0x06,0x1b,0x2b,0x37,0x35,0x21,0x32,0x36,0x36,0x35,0x35,0x21,0x35,0x21,0x35,0x34,0x26,0x26,0x23,0x21,0x35,0x21,0x32, +0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x23,0x01,0x31,0x28,0x3f,0x25,0xfe,0x43,0x01,0xbd,0x25,0x3f,0x28,0xfe,0xcf,0x01,0x31,0x3f,0x68,0x3f,0x3f,0x68,0x3f,0x46,0x50,0x27,0x40,0x25,0x1e,0x50,0x1e,0x25,0x40,0x27,0x50,0x39,0x63,0x3e,0x90,0x3e,0x63,0x39,0x00,0x00,0x00,0x02,0x00,0x37,0xff,0x4c,0x02,0x1c,0x02,0xda,0x00,0x0b, +0x00,0x11,0x00,0x3a,0x40,0x37,0x11,0x0e,0x08,0x03,0x02,0x01,0x06,0x02,0x01,0x01,0x4c,0x00,0x00,0x05,0x01,0x01,0x02,0x00,0x01,0x67,0x04,0x01,0x02,0x03,0x03,0x02,0x57,0x04,0x01,0x02,0x02,0x03,0x5f,0x06,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x10,0x0f,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x12,0x11,0x14,0x07,0x06,0x19,0x2b,0x17,0x35, +0x13,0x03,0x35,0x21,0x15,0x21,0x13,0x03,0x21,0x15,0x25,0x33,0x13,0x03,0x23,0x13,0x37,0xfa,0xfa,0x01,0xe5,0xfe,0xb4,0xfa,0xfa,0x01,0x4c,0xfe,0x46,0x41,0xfd,0xfd,0x41,0xfc,0xb4,0x32,0x01,0x94,0x01,0x96,0x32,0x2e,0xfe,0x62,0xfe,0x6c,0x2e,0x2e,0x01,0x98,0x01,0x9a,0xfe,0x66,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x78,0x02,0x35, +0x02,0x58,0x00,0x15,0x00,0x28,0x40,0x25,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x03,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x15,0x00,0x14,0x21,0x25,0x21,0x05,0x06,0x19,0x2b,0x37,0x35,0x21,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16,0x16,0x15,0x15, +0x14,0x06,0x06,0x23,0x1e,0x01,0x31,0x43,0x49,0x49,0x43,0xfe,0xcf,0x01,0x31,0x45,0x67,0x3a,0x3a,0x67,0x45,0x78,0x52,0x48,0x42,0x28,0x42,0x48,0x52,0x36,0x62,0x42,0x2c,0x41,0x63,0x36,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57, +0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xff,0xff,0x02,0x58,0xff,0x02,0x08,0x50,0x50,0xfd,0xf8,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x07,0x00,0x24,0x40,0x21,0x00,0x03,0x02,0x03, +0x85,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x02,0x01,0x4f,0x11,0x11,0x11,0x10,0x04,0x06,0x1a,0x2b,0x21,0x23,0x11,0x21,0x35,0x21,0x35,0x33,0x02,0x58,0x5a,0xfe,0x02,0x01,0xfe,0x5a,0x01,0x09,0x50,0xff,0x00,0x00,0x00,0x03,0x00,0x43,0xff,0x92,0x01,0xf4,0x03,0x3e,0x00,0x13, +0x00,0x16,0x00,0x1a,0x00,0x96,0xb5,0x15,0x01,0x02,0x03,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x33,0x00,0x05,0x04,0x05,0x85,0x00,0x08,0x07,0x07,0x08,0x71,0x06,0x01,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x0e,0x0a,0x02,0x02,0x0b,0x01,0x01,0x00,0x02,0x01,0x67,0x0c,0x01,0x00,0x07,0x07,0x00,0x57,0x0c,0x01,0x00,0x00,0x07,0x5f, +0x0d,0x09,0x02,0x07,0x00,0x07,0x4f,0x1b,0x40,0x32,0x00,0x05,0x04,0x05,0x85,0x00,0x08,0x07,0x08,0x86,0x06,0x01,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x0e,0x0a,0x02,0x02,0x0b,0x01,0x01,0x00,0x02,0x01,0x67,0x0c,0x01,0x00,0x07,0x07,0x00,0x57,0x0c,0x01,0x00,0x00,0x07,0x5f,0x0d,0x09,0x02,0x07,0x00,0x07,0x4f,0x59,0x40,0x1c,0x14, +0x14,0x00,0x00,0x1a,0x19,0x18,0x17,0x14,0x16,0x14,0x16,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x06,0x1f,0x2b,0x33,0x35,0x33,0x13,0x23,0x35,0x33,0x37,0x21,0x35,0x21,0x37,0x33,0x07,0x33,0x11,0x21,0x07,0x23,0x37,0x01,0x35,0x07,0x17,0x23,0x03,0x33,0x50,0x39,0x5f,0x75,0x93,0x53,0xfe,0xf7,0x01, +0x27,0x25,0x46,0x25,0x37,0xfe,0xbd,0x28,0x46,0x28,0x01,0x2f,0x4e,0x4e,0x6c,0x5f,0xcb,0x52,0x01,0x02,0x52,0xe2,0x52,0x64,0x64,0xfd,0x26,0x6e,0x6e,0x01,0xa6,0xd4,0xd4,0x52,0xfe,0xfe,0x00,0x03,0x00,0x1d,0xff,0xf6,0x02,0x3b,0x02,0x30,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x3c,0x40,0x39,0x00,0x01,0x06,0x01,0x00,0x03,0x01,0x00, +0x69,0x05,0x01,0x03,0x02,0x02,0x03,0x59,0x05,0x01,0x03,0x03,0x02,0x61,0x08,0x04,0x07,0x03,0x02,0x03,0x02,0x51,0x19,0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22, +0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0xe9,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x01,0x6f,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x01,0xb0,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0xfe,0x46,0x23,0x1e,0x1d,0x22, +0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x00,0x03,0x00,0x41,0x00,0x26,0x02,0x17,0x02,0x6f,0x00,0x1b,0x00,0x37,0x00,0x53,0x01,0x0c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x65,0x00,0x02,0x00,0x04,0x01,0x02,0x72,0x12,0x01,0x05,0x01,0x03,0x04,0x05,0x72,0x00,0x08,0x06,0x0a,0x07,0x08,0x72,0x13,0x01,0x0b,0x07,0x09, +0x0a,0x0b,0x72,0x00,0x0e,0x0c,0x10,0x0d,0x0e,0x72,0x14,0x01,0x11,0x0d,0x0f,0x10,0x11,0x72,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00,0x06,0x00,0x0a,0x07,0x06,0x0a,0x69,0x00,0x07,0x00,0x09,0x0c,0x07,0x09,0x6a,0x00,0x0c,0x00,0x10,0x0d,0x0c,0x10,0x69,0x00,0x0d,0x11,0x0f,0x0d,0x59, +0x00,0x0d,0x0d,0x0f,0x62,0x00,0x0f,0x0d,0x0f,0x52,0x1b,0x40,0x6b,0x00,0x02,0x00,0x04,0x00,0x02,0x04,0x80,0x12,0x01,0x05,0x01,0x03,0x01,0x05,0x03,0x80,0x00,0x08,0x06,0x0a,0x06,0x08,0x0a,0x80,0x13,0x01,0x0b,0x07,0x09,0x07,0x0b,0x09,0x80,0x00,0x0e,0x0c,0x10,0x0c,0x0e,0x10,0x80,0x14,0x01,0x11,0x0d,0x0f,0x0d,0x11,0x0f,0x80, +0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00,0x06,0x00,0x0a,0x07,0x06,0x0a,0x69,0x00,0x07,0x00,0x09,0x0c,0x07,0x09,0x6a,0x00,0x0c,0x00,0x10,0x0d,0x0c,0x10,0x69,0x00,0x0d,0x11,0x0f,0x0d,0x59,0x00,0x0d,0x0d,0x0f,0x62,0x00,0x0f,0x0d,0x0f,0x52,0x59,0x40,0x2e,0x38,0x38,0x1c,0x1c,0x00, +0x00,0x38,0x53,0x38,0x53,0x50,0x4e,0x4b,0x49,0x46,0x45,0x42,0x40,0x3d,0x3b,0x1c,0x37,0x1c,0x37,0x34,0x32,0x2f,0x2d,0x2a,0x29,0x26,0x24,0x21,0x1f,0x00,0x1b,0x00,0x1b,0x23,0x23,0x13,0x23,0x23,0x15,0x06,0x1b,0x2b,0x13,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23, +0x22,0x06,0x15,0x15,0x07,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x07,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x41,0x46,0x3c,0x26,0x39,0x2e,0x2b,0x18, +0x16,0x19,0x55,0x46,0x3c,0x26,0x39,0x2f,0x2b,0x17,0x16,0x19,0x55,0x46,0x3c,0x26,0x39,0x2e,0x2b,0x18,0x16,0x19,0x55,0x46,0x3c,0x26,0x39,0x2f,0x2b,0x17,0x16,0x19,0x55,0x46,0x3c,0x26,0x39,0x2e,0x2b,0x18,0x16,0x19,0x55,0x46,0x3c,0x26,0x39,0x2f,0x2b,0x17,0x16,0x19,0x01,0xd9,0x0f,0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0x0f, +0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0xd7,0x0f,0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0x0f,0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0xd7,0x0f,0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0x0f,0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x07,0x00,0x10,0x00,0x33, +0x40,0x30,0x0b,0x01,0x03,0x04,0x01,0x4c,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x01,0x03,0x04,0x03,0x86,0x00,0x01,0x04,0x04,0x01,0x57,0x00,0x01,0x01,0x04,0x5f,0x00,0x04,0x01,0x04,0x4f,0x00,0x00,0x10,0x0f,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x06,0x06,0x19,0x2b,0x33,0x03,0x33,0x17,0x33,0x37,0x33,0x03,0x27,0x16,0x16,0x17,0x36, +0x36,0x37,0x37,0x23,0xef,0xbd,0x5b,0x32,0xd9,0x32,0x5c,0xbe,0x60,0x0d,0x13,0x04,0x05,0x12,0x0d,0x36,0xb4,0x02,0xda,0xca,0xca,0xfd,0x26,0xeb,0x34,0x5a,0x17,0x17,0x59,0x34,0xda,0x00,0x00,0x03,0xff,0xf6,0x00,0x19,0x02,0x62,0x02,0x83,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x41,0x40,0x3e,0x00,0x01,0x06,0x01,0x00,0x03,0x01,0x00, +0x69,0x00,0x03,0x07,0x01,0x02,0x05,0x03,0x02,0x69,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x19,0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16, +0x15,0x14,0x06,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x1c,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xfe,0xf1,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xfe,0xf0,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0x01,0xf7,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27, +0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x07,0x00,0x21,0x40,0x1e,0x00,0x00,0x01,0x00,0x85,0x03,0x01,0x01,0x02,0x02,0x01,0x57,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x11,0x11,0x11,0x10,0x04, +0x06,0x1a,0x2b,0x13,0x33,0x11,0x33,0x15,0x21,0x35,0x33,0xff,0x5a,0xff,0xfd,0xa8,0xff,0x02,0x58,0xfd,0xf8,0x50,0x50,0x00,0x00,0x02,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0xbc,0x00,0x0c,0x00,0x10,0x00,0x39,0x40,0x36,0x06,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x05,0x01,0x02,0x03,0x02,0x85,0x00,0x03,0x04,0x04, +0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x06,0x01,0x04,0x03,0x04,0x4f,0x0d,0x0d,0x00,0x00,0x0d,0x10,0x0d,0x10,0x0f,0x0e,0x00,0x0c,0x00,0x0c,0x18,0x11,0x07,0x06,0x18,0x2b,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x05,0x35,0x21,0x15,0xef,0xb3,0x5c,0x75,0x0c,0x11,0x04,0x04,0x12,0x0b,0x72,0x5b,0xb3,0xfe, +0xec,0x01,0xae,0xc8,0x01,0xf4,0xfe,0xc0,0x20,0x3e,0x11,0x11,0x3e,0x20,0x01,0x40,0xfe,0x0c,0xc8,0x50,0x50,0x00,0x00,0x00,0x00,0x06,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x1a,0x00,0x25,0x00,0x32,0x00,0x3f,0x00,0x4b,0x00,0x40,0x40,0x3d,0x4a,0x46,0x42,0x3e,0x3a,0x36,0x30,0x2c,0x27,0x25,0x22,0x1e,0x1a,0x17, +0x13,0x0f,0x02,0x01,0x01,0x4c,0x00,0x01,0x02,0x01,0x85,0x04,0x01,0x02,0x00,0x00,0x02,0x59,0x04,0x01,0x02,0x02,0x00,0x61,0x03,0x01,0x00,0x02,0x00,0x51,0x41,0x40,0x01,0x00,0x40,0x4b,0x41,0x4b,0x09,0x07,0x00,0x0f,0x01,0x0f,0x05,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06, +0x03,0x16,0x16,0x17,0x26,0x26,0x35,0x35,0x06,0x06,0x07,0x25,0x14,0x06,0x07,0x36,0x36,0x37,0x37,0x26,0x26,0x27,0x13,0x17,0x36,0x36,0x35,0x34,0x27,0x07,0x06,0x06,0x07,0x16,0x16,0x25,0x14,0x16,0x17,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x06,0x01,0x32,0x37,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x16,0x01,0x2c,0x58,0x8d, +0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0xd9,0x11,0x38,0x17,0x05,0x05,0x3c,0x60,0x1c,0x01,0x0c,0x06,0x05,0x18,0x37,0x12,0x62,0x1c,0x60,0x3c,0x55,0x3b,0x23,0x27,0x05,0x62,0x12,0x3e,0x1c,0x14,0x2e,0xfe,0x89,0x27,0x23,0x3b,0x0d,0x2d,0x14,0x1c,0x3e,0x12,0x62,0x05,0x01,0x04,0x3f,0x36,0x3b,0x0c,0x22,0x0c,0x0c,0x22,0x0c, +0x3b,0x36,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x01,0x96,0x06,0x1a,0x0e,0x1a,0x37,0x13,0x6b,0x09,0x42,0x32,0x12,0x13,0x37,0x1a,0x0e,0x1a,0x06,0x24,0x32,0x42,0x09,0xfe,0x9b,0x55,0x23,0x5f,0x37,0x1b,0x1b,0x25,0x07,0x10,0x04,0x14,0x35,0x53,0x37,0x5f,0x23,0x55,0x12,0x34,0x14,0x04,0x10,0x07,0x25, +0x1b,0xfe,0xe1,0x1a,0x56,0x11,0x3c,0x1a,0x1a,0x3b,0x12,0x56,0x1a,0x00,0x00,0x00,0x00,0x03,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x18,0x00,0x21,0x00,0x42,0x40,0x3f,0x00,0x01,0x07,0x01,0x02,0x03,0x01,0x02,0x69,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x67,0x08,0x01,0x04,0x00,0x00,0x04,0x59,0x08,0x01,0x04,0x04, +0x00,0x61,0x06,0x01,0x00,0x04,0x00,0x51,0x1a,0x19,0x11,0x10,0x01,0x00,0x1e,0x1d,0x19,0x21,0x1a,0x21,0x15,0x14,0x10,0x18,0x11,0x18,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x22,0x06,0x06,0x07,0x21,0x2e,0x02,0x03,0x32,0x36,0x36, +0x37,0x21,0x1e,0x02,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x43,0x6e,0x47,0x09,0x02,0x02,0x09,0x47,0x6e,0x43,0x43,0x6e,0x47,0x09,0xfd,0xfe,0x09,0x47,0x6e,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x02,0x3a,0x39,0x63,0x40,0x40,0x63,0x39,0xfd,0xf8,0x39,0x63,0x40,0x40, +0x63,0x39,0x00,0x00,0x00,0x04,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x16,0x00,0x20,0x00,0x27,0x00,0x4e,0x40,0x4b,0x00,0x01,0x09,0x01,0x02,0x03,0x01,0x02,0x69,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x67,0x00,0x04,0x00,0x07,0x06,0x04,0x07,0x67,0x0a,0x01,0x06,0x00,0x00,0x06,0x59,0x0a,0x01,0x06,0x06,0x00,0x61, +0x08,0x01,0x00,0x06,0x00,0x51,0x22,0x21,0x11,0x10,0x01,0x00,0x25,0x24,0x21,0x27,0x22,0x27,0x1f,0x1e,0x1a,0x19,0x14,0x13,0x10,0x16,0x11,0x16,0x09,0x07,0x00,0x0f,0x01,0x0f,0x0b,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x22,0x06,0x07,0x21,0x26,0x26,0x01,0x14,0x17, +0x21,0x36,0x35,0x34,0x27,0x21,0x06,0x01,0x32,0x36,0x37,0x21,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4b,0x78,0x20,0x01,0xc6,0x20,0x78,0xfe,0xb1,0x04,0x02,0x00,0x04,0x04,0xfe,0x00,0x04,0x01,0x04,0x4b,0x78,0x20,0xfe,0x3a,0x20,0x78,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59, +0x58,0x8d,0x51,0x02,0x3a,0x47,0x3b,0x3b,0x47,0xfe,0xfc,0x1a,0x18,0x18,0x1a,0x1a,0x18,0x18,0xfe,0xe2,0x47,0x3b,0x3b,0x47,0x00,0x03,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x19,0x00,0x23,0x00,0x3a,0x40,0x37,0x22,0x21,0x14,0x13,0x04,0x03,0x02,0x01,0x4c,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x69,0x05,0x01,0x03, +0x00,0x00,0x03,0x59,0x05,0x01,0x03,0x03,0x00,0x61,0x04,0x01,0x00,0x03,0x00,0x51,0x1b,0x1a,0x01,0x00,0x1a,0x23,0x1b,0x23,0x17,0x15,0x09,0x07,0x00,0x0f,0x01,0x0f,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x14,0x16,0x17,0x01,0x26,0x23,0x22,0x06,0x06,0x01,0x32, +0x36,0x36,0x35,0x34,0x26,0x27,0x01,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0xfe,0xa3,0x2f,0x28,0x01,0x21,0x36,0x3e,0x4a,0x76,0x44,0x01,0x04,0x4a,0x76,0x44,0x33,0x2b,0xfe,0xde,0x39,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x01,0x36,0x3c,0x66,0x23,0x01,0xaf,0x1a,0x44, +0x76,0xfe,0xb2,0x44,0x76,0x4a,0x3f,0x69,0x23,0xfe,0x4f,0x1e,0x00,0x03,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x1f,0x00,0x23,0x00,0x42,0x40,0x3f,0x00,0x01,0x00,0x03,0x04,0x01,0x03,0x69,0x00,0x04,0x08,0x01,0x05,0x02,0x04,0x05,0x67,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01, +0x00,0x02,0x00,0x51,0x20,0x20,0x11,0x10,0x01,0x00,0x20,0x23,0x20,0x23,0x22,0x21,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16, +0x27,0x35,0x21,0x15,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x56,0x01,0x40,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0xdc,0x50,0x50,0x00,0x00,0x00, +0x00,0x05,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0x2f,0x00,0x46,0x40,0x43,0x2d,0x2c,0x2b,0x25,0x24,0x23,0x1f,0x19,0x15,0x14,0x13,0x0b,0x03,0x02,0x01,0x4c,0x00,0x01,0x05,0x01,0x02,0x03,0x01,0x02,0x69,0x06,0x01,0x03,0x00,0x00,0x03,0x59,0x06,0x01,0x03,0x03,0x00,0x61,0x04,0x01, +0x00,0x03,0x00,0x51,0x29,0x28,0x11,0x10,0x01,0x00,0x28,0x2f,0x29,0x2f,0x10,0x17,0x11,0x17,0x09,0x07,0x00,0x0f,0x01,0x0f,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x22,0x06,0x07,0x17,0x37,0x26,0x26,0x13,0x17,0x36,0x36,0x35,0x34,0x26,0x27,0x05,0x14,0x16,0x17, +0x37,0x27,0x06,0x06,0x01,0x32,0x36,0x37,0x27,0x07,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x2e,0x51,0x21,0x9e,0x9f,0x20,0x50,0x04,0x9f,0x19,0x1b,0x1b,0x18,0xfe,0x2b,0x1a,0x18,0x9c,0x9c,0x18,0x1a,0x01,0x04,0x2d,0x4f,0x20,0x9e,0x9d,0x21,0x50,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51, +0x8c,0x59,0x58,0x8d,0x51,0x02,0x3a,0x1b,0x19,0x9d,0x9f,0x18,0x1a,0xfe,0xfb,0x9e,0x20,0x51,0x2e,0x2e,0x50,0x21,0x9f,0x2d,0x50,0x20,0x9c,0x9d,0x20,0x4f,0xfe,0xcf,0x1a,0x17,0x9f,0x9d,0x18,0x1b,0x00,0x00,0x00,0x03,0xff,0xf6,0x00,0x00,0x02,0x62,0x02,0x6c,0x00,0x0f,0x00,0x1f,0x00,0x2b,0x00,0x42,0x40,0x3f,0x00,0x01,0x00,0x03, +0x05,0x01,0x03,0x69,0x00,0x05,0x08,0x01,0x04,0x02,0x05,0x04,0x69,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x02,0x00,0x51,0x21,0x20,0x11,0x10,0x01,0x00,0x27,0x25,0x20,0x2b,0x21,0x2b,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x21,0x22,0x26,0x26, +0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44, +0x76,0x4a,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0xcc,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x00,0x00,0x05,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x15,0x00,0x1b,0x00,0x21,0x00,0x27, +0x00,0x4b,0x40,0x48,0x17,0x15,0x02,0x02,0x01,0x27,0x1d,0x02,0x00,0x04,0x02,0x4c,0x00,0x01,0x02,0x01,0x85,0x06,0x01,0x00,0x04,0x00,0x86,0x07,0x03,0x02,0x02,0x04,0x04,0x02,0x57,0x07,0x03,0x02,0x02,0x02,0x04,0x5f,0x05,0x08,0x02,0x04,0x02,0x04,0x4f,0x1c,0x1c,0x16,0x16,0x01,0x00,0x23,0x22,0x1c,0x21,0x1c,0x21,0x16,0x1b,0x16, +0x1b,0x11,0x10,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x33,0x2e,0x02,0x27,0x07,0x35,0x0e,0x02,0x07,0x05,0x15,0x3e,0x02,0x37,0x21,0x23,0x1e,0x02,0x17,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x2d,0xd5, +0x08,0x3a,0x5b,0x38,0x58,0x38,0x5b,0x3a,0x08,0x01,0x2d,0x38,0x5b,0x3a,0x08,0xfe,0xd3,0xd5,0x08,0x3a,0x5b,0x38,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x01,0x5e,0x39,0x5b,0x3c,0x09,0xd9,0xd9,0x09,0x3c,0x5b,0x39,0x50,0xd9,0x09,0x3c,0x5b,0x39,0x39,0x5b,0x3c,0x09,0x00,0x00,0x00,0x00,0x01,0x00,0x28, +0x00,0x00,0x02,0x30,0x02,0xe4,0x00,0x0e,0x00,0x15,0x40,0x12,0x0e,0x0d,0x0c,0x0b,0x07,0x04,0x00,0x07,0x00,0x4a,0x00,0x00,0x00,0x76,0x15,0x01,0x06,0x17,0x2b,0x01,0x27,0x26,0x26,0x27,0x11,0x23,0x11,0x06,0x06,0x07,0x07,0x35,0x25,0x05,0x02,0x30,0xb4,0x10,0x16,0x02,0x50,0x04,0x14,0x0e,0xb6,0x01,0x03,0x01,0x05,0x01,0x99,0xa0, +0x0e,0x1c,0x07,0xfd,0x96,0x02,0x6a,0x09,0x1c,0x0c,0xa2,0x6b,0xe2,0xe1,0x00,0x00,0x00,0x01,0x00,0x2f,0x00,0xed,0x02,0x1c,0x02,0xda,0x00,0x0e,0x00,0x26,0x40,0x23,0x0a,0x09,0x08,0x04,0x03,0x05,0x01,0x49,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x0e,0x00,0x0c,0x11, +0x03,0x06,0x17,0x2b,0x13,0x37,0x21,0x11,0x07,0x11,0x34,0x36,0x37,0x01,0x27,0x01,0x06,0x06,0x23,0x4c,0x4f,0x01,0x81,0x53,0x05,0x05,0xfe,0x95,0x39,0x01,0x6e,0x0a,0x24,0x14,0x02,0x8b,0x4f,0xfe,0x7b,0x53,0x01,0x1a,0x10,0x22,0x0b,0xfe,0x94,0x39,0x01,0x6e,0x07,0x02,0x00,0x01,0x00,0x14,0x00,0x32,0x02,0x4e,0x02,0x62,0x00,0x0d, +0x00,0x30,0x40,0x2d,0x0c,0x01,0x00,0x01,0x01,0x4c,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0d,0x00,0x0d,0x14,0x11,0x13,0x05,0x06,0x19,0x2b,0x25,0x37,0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x27,0x27,0x33,0x13,0x03, +0x01,0x0a,0x9e,0x1a,0x1a,0xfe,0x38,0x01,0xc3,0x0c,0x19,0x0a,0x9e,0x69,0xdb,0xdc,0x32,0xc9,0x22,0x05,0x50,0x05,0x14,0x0d,0xca,0xfe,0xe9,0xfe,0xe7,0x00,0x00,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x1c,0x01,0xed,0x00,0x0e,0x00,0x20,0x40,0x1d,0x0c,0x0b,0x07,0x06,0x05,0x05,0x00,0x4a,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00, +0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x1a,0x30,0x02,0x06,0x18,0x2b,0x37,0x21,0x32,0x16,0x17,0x01,0x37,0x01,0x26,0x26,0x35,0x11,0x17,0x11,0x21,0x4c,0x01,0x0f,0x14,0x24,0x0a,0xfe,0x92,0x39,0x01,0x6b,0x05,0x05,0x53,0xfe,0x7f,0x4f,0x02,0x07,0x01,0x6e,0x39,0xfe,0x94,0x0b,0x22,0x10,0x01,0x1a,0x53,0xfe,0x7b,0x00,0x00,0x00, +0x00,0x01,0x00,0x28,0xff,0xf6,0x02,0x30,0x02,0xda,0x00,0x0e,0x00,0x15,0x40,0x12,0x0b,0x08,0x04,0x03,0x02,0x01,0x00,0x07,0x00,0x49,0x00,0x00,0x00,0x76,0x19,0x01,0x06,0x17,0x2b,0x01,0x15,0x05,0x25,0x35,0x17,0x16,0x16,0x17,0x11,0x33,0x11,0x36,0x36,0x37,0x02,0x30,0xfe,0xfb,0xfe,0xfd,0xb6,0x0e,0x14,0x04,0x50,0x02,0x16,0x10, +0x01,0x41,0x6a,0xe1,0xe2,0x6b,0xa2,0x0c,0x1c,0x09,0x02,0x6a,0xfd,0x96,0x08,0x1b,0x0e,0x00,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x29,0x01,0xed,0x00,0x0e,0x00,0x27,0x40,0x24,0x0a,0x09,0x08,0x04,0x03,0x05,0x01,0x4a,0x02,0x01,0x01,0x00,0x00,0x01,0x57,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00, +0x00,0x0e,0x00,0x0c,0x11,0x03,0x06,0x17,0x2b,0x25,0x07,0x21,0x11,0x37,0x11,0x14,0x06,0x07,0x01,0x17,0x01,0x36,0x36,0x33,0x02,0x0c,0x4f,0xfe,0x7f,0x53,0x05,0x05,0x01,0x6b,0x39,0xfe,0x92,0x0b,0x23,0x14,0x4f,0x4f,0x01,0x85,0x53,0xfe,0xe6,0x10,0x22,0x0b,0x01,0x6c,0x39,0xfe,0x92,0x07,0x02,0x00,0x00,0x00,0x00,0x01,0x00,0x0a, +0x00,0x32,0x02,0x44,0x02,0x62,0x00,0x0d,0x00,0x2a,0x40,0x27,0x02,0x01,0x03,0x02,0x01,0x4c,0x00,0x01,0x02,0x01,0x85,0x00,0x00,0x03,0x00,0x86,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x02,0x03,0x4f,0x11,0x14,0x12,0x10,0x04,0x06,0x1a,0x2b,0x25,0x23,0x03,0x13,0x33,0x07,0x06,0x06,0x07,0x21,0x15,0x21, +0x16,0x17,0x01,0x4e,0x68,0xdc,0xdb,0x69,0x9e,0x0a,0x19,0x0c,0x01,0xc3,0xfe,0x38,0x1a,0x1a,0x32,0x01,0x19,0x01,0x17,0xca,0x0d,0x14,0x05,0x50,0x05,0x22,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0xed,0x02,0x29,0x02,0xda,0x00,0x0e,0x00,0x20,0x40,0x1d,0x0c,0x0b,0x07,0x06,0x05,0x05,0x00,0x49,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01, +0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1a,0x30,0x02,0x06,0x18,0x2b,0x01,0x21,0x22,0x26,0x27,0x01,0x07,0x01,0x16,0x16,0x15,0x11,0x27,0x11,0x21,0x02,0x0c,0xfe,0xf1,0x14,0x23,0x0b,0x01,0x6e,0x39,0xfe,0x95,0x05,0x05,0x53,0x01,0x81,0x02,0x8b,0x02,0x07,0xfe,0x92,0x39,0x01,0x6c,0x0b,0x22,0x10,0xfe,0xe6,0x53,0x01,0x85,0x00, +0x00,0x01,0xff,0xb0,0x00,0x32,0x02,0xa8,0x02,0x62,0x00,0x17,0x00,0x35,0x40,0x32,0x12,0x05,0x02,0x05,0x02,0x01,0x4c,0x03,0x01,0x01,0x02,0x01,0x85,0x04,0x01,0x00,0x05,0x00,0x86,0x00,0x02,0x05,0x05,0x02,0x57,0x00,0x02,0x02,0x05,0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x00,0x00,0x00,0x17,0x00,0x17,0x12,0x14,0x14,0x12,0x13,0x07, +0x06,0x1b,0x2b,0x13,0x16,0x17,0x17,0x23,0x03,0x13,0x33,0x07,0x06,0x06,0x07,0x21,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x23,0x37,0x36,0x37,0x22,0x1a,0x1a,0x9e,0x68,0xdc,0xdb,0x69,0x9e,0x0a,0x19,0x0c,0x02,0x0a,0x0c,0x19,0x0a,0x9e,0x69,0xdb,0xdc,0x68,0x9e,0x1a,0x1a,0x01,0x22,0x05,0x22,0xc9,0x01,0x19,0x01,0x17,0xca,0x0d,0x14, +0x05,0x05,0x14,0x0d,0xca,0xfe,0xe9,0xfe,0xe7,0xc9,0x22,0x05,0x00,0x01,0x00,0x28,0xff,0x56,0x02,0x30,0x03,0x84,0x00,0x19,0x00,0x06,0xb3,0x19,0x0c,0x01,0x32,0x2b,0x37,0x35,0x17,0x16,0x16,0x17,0x11,0x06,0x06,0x07,0x07,0x35,0x25,0x05,0x15,0x27,0x26,0x26,0x27,0x11,0x36,0x36,0x37,0x37,0x15,0x05,0x28,0xb6,0x0e,0x14,0x04,0x04, +0x14,0x0e,0xb6,0x01,0x03,0x01,0x05,0xb4,0x10,0x16,0x02,0x02,0x16,0x10,0xb4,0xfe,0xfb,0x38,0x6b,0xa2,0x0c,0x1c,0x09,0x03,0x3a,0x09,0x1c,0x0c,0xa2,0x6b,0xe2,0xe1,0x6a,0xa0,0x0e,0x1c,0x07,0xfc,0xc6,0x08,0x1b,0x0e,0xa0,0x6a,0xe1,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0xa0,0x02,0x4e,0x01,0xbd,0x00,0x21,0x00,0x7d,0x40,0x0a, +0x11,0x01,0x02,0x03,0x14,0x01,0x06,0x00,0x02,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x29,0x08,0x01,0x07,0x01,0x04,0x06,0x07,0x72,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x67,0x00,0x00,0x00,0x06,0x01,0x00,0x06,0x69,0x00,0x01,0x07,0x04,0x01,0x59,0x00,0x01,0x01,0x04,0x61,0x05,0x01,0x04,0x01,0x04,0x51,0x1b,0x40,0x2a,0x08,0x01,0x07, +0x01,0x04,0x01,0x07,0x04,0x80,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x67,0x00,0x00,0x00,0x06,0x01,0x00,0x06,0x69,0x00,0x01,0x07,0x04,0x01,0x59,0x00,0x01,0x01,0x04,0x61,0x05,0x01,0x04,0x01,0x04,0x51,0x59,0x40,0x10,0x00,0x00,0x00,0x21,0x00,0x21,0x24,0x23,0x12,0x11,0x12,0x24,0x23,0x09,0x06,0x1d,0x2b,0x37,0x35,0x34,0x36,0x33, +0x32,0x1e,0x03,0x33,0x32,0x37,0x37,0x23,0x35,0x33,0x17,0x15,0x23,0x35,0x07,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x06,0x15,0x15,0x0a,0x4c,0x3a,0x23,0x2c,0x1d,0x15,0x17,0x11,0x1d,0x1c,0x55,0x8c,0xcd,0x46,0x50,0x4d,0x33,0x47,0x22,0x2c,0x1c,0x16,0x18,0x12,0x14,0x1f,0xa5,0x31,0x3d,0x4b,0x17,0x21,0x21,0x17,0x21,0x60,0x4e,0x46, +0xd7,0xa1,0x60,0x41,0x17,0x21,0x21,0x17,0x20,0x1a,0x31,0x00,0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e,0x01,0xc7,0x00,0x25,0x00,0x7f,0x40,0x0c,0x14,0x02,0x02,0x01,0x07,0x15,0x01,0x02,0x06,0x01,0x02,0x4c,0x4b,0xb0,0x0b,0x50,0x58,0x40,0x29,0x04,0x01,0x00,0x02,0x00,0x85,0x0a,0x09,0x02,0x05,0x06,0x06,0x05,0x71,0x00,0x02,0x00, +0x07,0x01,0x02,0x07,0x69,0x03,0x01,0x01,0x06,0x06,0x01,0x59,0x03,0x01,0x01,0x01,0x06,0x62,0x08,0x01,0x06,0x01,0x06,0x52,0x1b,0x40,0x28,0x04,0x01,0x00,0x02,0x00,0x85,0x0a,0x09,0x02,0x05,0x06,0x05,0x86,0x00,0x02,0x00,0x07,0x01,0x02,0x07,0x69,0x03,0x01,0x01,0x06,0x06,0x01,0x59,0x03,0x01,0x01,0x01,0x06,0x62,0x08,0x01,0x06, +0x01,0x06,0x52,0x59,0x40,0x12,0x00,0x00,0x00,0x25,0x00,0x25,0x23,0x23,0x21,0x13,0x11,0x23,0x23,0x21,0x13,0x0b,0x06,0x1f,0x2b,0x37,0x27,0x35,0x37,0x33,0x07,0x33,0x32,0x3e,0x02,0x33,0x32,0x1e,0x02,0x33,0x33,0x27,0x33,0x17,0x15,0x07,0x23,0x37,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x23,0x23,0x17,0x8d,0x83,0x83,0x5e,0x98, +0x34,0x11,0x1e,0x22,0x2b,0x1f,0x1f,0x2b,0x22,0x1e,0x11,0x47,0x98,0x69,0x79,0x79,0x68,0x6e,0x1e,0x24,0x2b,0x1c,0x1b,0x15,0x15,0x1b,0x1b,0x29,0x23,0x0d,0x6e,0x5f,0x91,0x46,0x91,0xa5,0x20,0x2b,0x20,0x20,0x2b,0x20,0xa5,0x91,0x46,0x91,0x74,0x20,0x29,0x20,0x20,0x29,0x20,0x74,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e, +0x01,0xc7,0x00,0x11,0x00,0x68,0xb6,0x04,0x03,0x02,0x05,0x02,0x01,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x22,0x03,0x01,0x01,0x02,0x02,0x01,0x70,0x06,0x01,0x00,0x05,0x05,0x00,0x71,0x04,0x01,0x02,0x05,0x05,0x02,0x57,0x04,0x01,0x02,0x02,0x05,0x60,0x08,0x07,0x02,0x05,0x02,0x05,0x50,0x1b,0x40,0x20,0x03,0x01,0x01,0x02,0x01,0x85, +0x06,0x01,0x00,0x05,0x00,0x86,0x04,0x01,0x02,0x05,0x05,0x02,0x57,0x04,0x01,0x02,0x02,0x05,0x60,0x08,0x07,0x02,0x05,0x02,0x05,0x50,0x59,0x40,0x10,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x13,0x11,0x09,0x06,0x1d,0x2b,0x37,0x17,0x23,0x27,0x35,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x15,0x21,0x17,0x23,0x27, +0x69,0x82,0x5e,0x83,0x83,0x5f,0x83,0x81,0x81,0x61,0x88,0x01,0x0a,0xfe,0xf5,0x88,0x60,0x81,0xeb,0x8c,0x91,0x46,0x91,0x8c,0x8c,0x8c,0x50,0x8c,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e,0x01,0xc7,0x00,0x11,0x00,0x61,0xb6,0x0f,0x0e,0x02,0x00,0x03,0x01,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x21,0x06,0x01,0x04, +0x03,0x03,0x04,0x70,0x07,0x01,0x01,0x00,0x00,0x01,0x71,0x05,0x01,0x03,0x00,0x00,0x03,0x57,0x05,0x01,0x03,0x03,0x00,0x60,0x02,0x01,0x00,0x03,0x00,0x50,0x1b,0x40,0x1f,0x06,0x01,0x04,0x03,0x04,0x85,0x07,0x01,0x01,0x00,0x01,0x86,0x05,0x01,0x03,0x00,0x00,0x03,0x57,0x05,0x01,0x03,0x03,0x00,0x60,0x02,0x01,0x00,0x03,0x00,0x50, +0x59,0x40,0x0b,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x08,0x06,0x1e,0x2b,0x25,0x23,0x07,0x23,0x37,0x21,0x35,0x21,0x27,0x33,0x17,0x33,0x27,0x33,0x17,0x15,0x07,0x23,0x01,0xef,0x81,0x81,0x60,0x88,0xfe,0xf5,0x01,0x0a,0x88,0x61,0x81,0x81,0x83,0x5f,0x83,0x83,0x5e,0xeb,0x8c,0x8c,0x50,0x8c,0x8c,0x8c,0x91,0x46,0x91,0x00,0x00, +0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e,0x01,0xc7,0x00,0x0e,0x00,0x61,0xb7,0x0b,0x04,0x03,0x03,0x05,0x02,0x01,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x1f,0x03,0x01,0x01,0x02,0x02,0x01,0x70,0x04,0x01,0x00,0x05,0x05,0x00,0x71,0x00,0x02,0x05,0x05,0x02,0x57,0x00,0x02,0x02,0x05,0x60,0x06,0x01,0x05,0x02,0x05,0x50,0x1b,0x40,0x1d, +0x03,0x01,0x01,0x02,0x01,0x85,0x04,0x01,0x00,0x05,0x00,0x86,0x00,0x02,0x05,0x05,0x02,0x57,0x00,0x02,0x02,0x05,0x60,0x06,0x01,0x05,0x02,0x05,0x50,0x59,0x40,0x0e,0x00,0x00,0x00,0x0e,0x00,0x0e,0x12,0x11,0x11,0x13,0x11,0x07,0x06,0x1b,0x2b,0x37,0x17,0x23,0x27,0x35,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x17,0x23,0x27,0x69,0x82, +0x5e,0x83,0x83,0x5f,0x83,0x01,0x00,0x7d,0x68,0x9c,0x9c,0x67,0x7d,0xeb,0x8c,0x91,0x46,0x91,0x8c,0x8c,0xb3,0xb5,0x8c,0x00,0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e,0x01,0xc7,0x00,0x0e,0x00,0x5a,0xb7,0x0c,0x0b,0x04,0x03,0x00,0x03,0x01,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x1e,0x04,0x01,0x02,0x03,0x03,0x02,0x70,0x05,0x01,0x01, +0x00,0x00,0x01,0x71,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x03,0x03,0x00,0x60,0x00,0x00,0x03,0x00,0x50,0x1b,0x40,0x1c,0x04,0x01,0x02,0x03,0x02,0x85,0x05,0x01,0x01,0x00,0x01,0x86,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x03,0x03,0x00,0x60,0x00,0x00,0x03,0x00,0x50,0x59,0x40,0x09,0x13,0x11,0x11,0x12,0x11,0x10,0x06,0x06,0x1c,0x2b, +0x25,0x21,0x07,0x23,0x37,0x27,0x33,0x17,0x21,0x27,0x33,0x17,0x15,0x07,0x23,0x01,0xef,0xfe,0xff,0x7d,0x67,0x9c,0x9c,0x68,0x7d,0x01,0x00,0x83,0x5f,0x83,0x83,0x5e,0xeb,0x8c,0xb5,0xb3,0x8c,0x8c,0x91,0x46,0x91,0x00,0x00,0x00,0x00,0x01,0x00,0x6e,0x00,0x00,0x01,0xea,0x02,0x26,0x00,0x0d,0x00,0x32,0x40,0x2f,0x0a,0x09,0x08,0x05, +0x04,0x03,0x06,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x0d,0x00,0x0d,0x14,0x14,0x11,0x05,0x06,0x19,0x2b,0x33,0x35,0x33,0x11,0x07,0x35,0x37,0x33,0x17,0x15,0x27,0x11,0x33,0x15,0x6e,0x92,0x92,0x9c,0x46,0x9a, +0x92,0x92,0x50,0x01,0x6a,0x84,0x65,0x8b,0x8a,0x66,0x83,0xfe,0x97,0x50,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e,0x01,0xc7,0x00,0x0d,0x00,0x60,0xb6,0x08,0x07,0x02,0x04,0x01,0x01,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x1f,0x02,0x01,0x00,0x01,0x01,0x00,0x70,0x06,0x05,0x02,0x03,0x04,0x04,0x03,0x71,0x00,0x01,0x04,0x04, +0x01,0x57,0x00,0x01,0x01,0x04,0x60,0x00,0x04,0x01,0x04,0x50,0x1b,0x40,0x1d,0x02,0x01,0x00,0x01,0x00,0x85,0x06,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x04,0x04,0x01,0x57,0x00,0x01,0x01,0x04,0x60,0x00,0x04,0x01,0x04,0x50,0x59,0x40,0x0e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x13,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x37,0x11, +0x33,0x15,0x21,0x27,0x33,0x17,0x15,0x07,0x23,0x37,0x21,0x15,0x0a,0x52,0x01,0x93,0x83,0x5f,0x83,0x83,0x5e,0x82,0xfe,0x6d,0x5f,0x01,0x68,0x8c,0x8c,0x91,0x46,0x91,0x8c,0x8c,0x00,0x00,0x00,0x01,0x00,0x6e,0x00,0x00,0x01,0xea,0x02,0x26,0x00,0x0d,0x00,0x2b,0x40,0x28,0x0b,0x0a,0x09,0x06,0x05,0x04,0x06,0x02,0x01,0x01,0x4c,0x00, +0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x00,0x01,0x4f,0x14,0x14,0x11,0x10,0x04,0x06,0x1a,0x2b,0x13,0x21,0x15,0x23,0x11,0x37,0x15,0x07,0x23,0x27,0x35,0x17,0x11,0x23,0x6e,0x01,0x7c,0x92,0x92,0x9a,0x46,0x9c,0x92,0x92,0x02,0x26,0x50,0xfe,0x97,0x83,0x66,0x8a,0x8b,0x65,0x84, +0x01,0x6a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x82,0x02,0x44,0x02,0x12,0x00,0x03,0x00,0x12,0x00,0x2e,0x40,0x2b,0x0b,0x01,0x05,0x02,0x01,0x4c,0x03,0x01,0x01,0x02,0x01,0x85,0x04,0x01,0x00,0x05,0x00,0x86,0x00,0x02,0x05,0x05,0x02,0x57,0x00,0x02,0x02,0x05,0x60,0x00,0x05,0x02,0x05,0x50,0x14,0x12,0x14,0x11,0x11,0x10,0x06,0x06, +0x1c,0x2b,0x25,0x23,0x11,0x33,0x05,0x21,0x26,0x26,0x27,0x27,0x33,0x17,0x07,0x23,0x37,0x36,0x36,0x37,0x21,0x02,0x44,0x55,0x55,0xfd,0xbc,0x01,0x57,0x05,0x15,0x0b,0x65,0x61,0xa0,0xa0,0x61,0x66,0x08,0x14,0x08,0xfe,0xa9,0x82,0x01,0x90,0xa0,0x02,0x14,0x0d,0x7d,0xc8,0xc8,0x80,0x0a,0x12,0x04,0x00,0x00,0x00,0x00,0x01,0x00,0x0a, +0x00,0x6e,0x02,0x4e,0x02,0xda,0x00,0x1e,0x00,0x3d,0x40,0x3a,0x01,0x01,0x04,0x01,0x01,0x4c,0x00,0x00,0x02,0x01,0x02,0x00,0x01,0x80,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x69,0x00,0x01,0x04,0x04,0x01,0x57,0x00,0x01,0x01,0x04,0x60,0x00,0x04,0x01,0x04,0x50,0x00,0x00,0x00,0x1e,0x00,0x1e,0x26,0x21, +0x24,0x33,0x12,0x07,0x06,0x1b,0x2b,0x37,0x27,0x37,0x33,0x07,0x06,0x06,0x07,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x16,0x16,0x17,0x17,0xaa,0xa0,0xa0,0x61,0x65,0x0a,0x16,0x05,0xcb,0x4b,0x5d,0x5d,0x4b,0x1e,0x1e,0x4d,0x74,0x41,0x41,0x74,0x4d,0xcb,0x08,0x14,0x08,0x66, +0x6e,0xc8,0xc8,0x7d,0x0d,0x14,0x02,0x50,0x46,0x45,0x51,0x50,0x3f,0x69,0x3e,0x46,0x68,0x38,0x04,0x12,0x0a,0x80,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x6e,0x02,0x4e,0x02,0xda,0x00,0x1e,0x00,0x37,0x40,0x34,0x1e,0x01,0x01,0x04,0x01,0x4c,0x00,0x05,0x03,0x04,0x03,0x05,0x04,0x80,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x00,0x03,0x05, +0x02,0x03,0x69,0x00,0x04,0x01,0x01,0x04,0x57,0x00,0x04,0x04,0x01,0x60,0x00,0x01,0x04,0x01,0x50,0x14,0x24,0x21,0x26,0x24,0x10,0x06,0x06,0x1c,0x2b,0x25,0x23,0x37,0x36,0x36,0x37,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x26,0x26,0x27,0x27,0x33,0x17,0x01,0xae,0x61,0x66, +0x08,0x14,0x08,0xcb,0x4c,0x75,0x41,0x41,0x75,0x4c,0x1e,0x1e,0x4b,0x5d,0x5d,0x4b,0xcb,0x05,0x15,0x0b,0x65,0x61,0xa0,0x6e,0x80,0x0a,0x12,0x04,0x38,0x68,0x46,0x3e,0x69,0x3f,0x50,0x51,0x45,0x46,0x50,0x02,0x14,0x0d,0x7d,0xc8,0x00,0x01,0x00,0xff,0xff,0x4c,0x01,0xf4,0x03,0x47,0x00,0x05,0x00,0x18,0x40,0x15,0x04,0x03,0x02,0x01, +0x04,0x00,0x4a,0x01,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x02,0x06,0x16,0x2b,0x17,0x11,0x17,0x15,0x27,0x11,0xff,0xf5,0xc3,0xb4,0x03,0xfb,0xee,0x41,0xbd,0xfc,0x77,0x00,0x00,0x01,0x00,0x0a,0xff,0xd9,0x02,0x4e,0x02,0x52,0x00,0x11,0x00,0x77,0x40,0x11,0x0d,0x0c,0x02,0x02,0x03,0x0e,0x05,0x02,0x01,0x02,0x10,0x0f, +0x02,0x00,0x01,0x03,0x4c,0x4b,0xb0,0x0b,0x50,0x58,0x40,0x25,0x00,0x04,0x03,0x03,0x04,0x70,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x23,0x00,0x04,0x03,0x04,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x00, +0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x11,0x12,0x11,0x11,0x07,0x06,0x1b,0x2b,0x05,0x37,0x21,0x35,0x21,0x27,0x37,0x21,0x35,0x21,0x27,0x33,0x17,0x15,0x07,0x17,0x15,0x07,0x01,0x8b,0x62,0xfe,0x1d, +0x01,0xe3,0x62,0x62,0xfe,0x1d,0x01,0xe3,0x62,0x62,0x61,0x61,0x61,0x61,0x27,0x77,0x50,0x77,0x74,0x50,0x77,0x7d,0x44,0x7a,0x7d,0x44,0x7d,0x00,0x00,0x02,0xff,0xf6,0xff,0x4c,0x02,0x62,0x03,0x47,0x00,0x05,0x00,0x0b,0x00,0x24,0x40,0x21,0x0a,0x09,0x08,0x07,0x04,0x03,0x02,0x01,0x08,0x00,0x4a,0x03,0x01,0x02,0x03,0x00,0x00,0x76, +0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x00,0x05,0x00,0x05,0x04,0x06,0x16,0x2b,0x05,0x11,0x17,0x15,0x27,0x11,0x23,0x11,0x07,0x35,0x37,0x11,0x01,0x6d,0xf5,0xc3,0xe6,0xc3,0xf5,0xb4,0x03,0xfb,0xee,0x41,0xbd,0xfc,0x77,0x03,0x89,0xbd,0x41,0xee,0xfc,0x05,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x02,0x58,0x02,0x71,0x00,0x0d, +0x00,0x6c,0xb6,0x0c,0x05,0x02,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x25,0x00,0x04,0x03,0x03,0x04,0x70,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x23,0x00,0x04,0x03,0x04,0x85,0x06,0x01, +0x05,0x00,0x05,0x86,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x11,0x12,0x11,0x11,0x07,0x06,0x1b,0x2b,0x25,0x37,0x21,0x35,0x21,0x37,0x27,0x21,0x35,0x21,0x27,0x33,0x13,0x03,0x01,0x07,0x6a,0xfe, +0x8f,0x01,0xb0,0x3f,0x3f,0xfe,0x50,0x01,0x71,0x6a,0x69,0xe8,0xe7,0x23,0x87,0x50,0x50,0x50,0x50,0x87,0xfe,0xd9,0xfe,0xd9,0x00,0x02,0xff,0xf6,0xff,0x42,0x02,0x62,0x03,0x3d,0x00,0x05,0x00,0x0b,0x00,0x18,0x40,0x15,0x0b,0x0a,0x09,0x08,0x05,0x04,0x03,0x02,0x08,0x00,0x49,0x01,0x01,0x00,0x00,0x76,0x15,0x10,0x02,0x06,0x18,0x2b, +0x01,0x33,0x11,0x37,0x15,0x07,0x03,0x33,0x11,0x27,0x35,0x17,0x01,0x6d,0x32,0xc3,0xf5,0xb4,0x32,0xf5,0xc3,0x03,0x3d,0xfc,0x77,0xbd,0x41,0xee,0x03,0xfb,0xfc,0x05,0xee,0x41,0xbd,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x02,0x58,0x02,0x71,0x00,0x0d,0x00,0x65,0xb6,0x09,0x02,0x02,0x04,0x03,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40, +0x24,0x00,0x01,0x02,0x02,0x01,0x70,0x00,0x00,0x05,0x05,0x00,0x71,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x68,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x04,0x05,0x4f,0x1b,0x40,0x22,0x00,0x01,0x02,0x01,0x85,0x00,0x00,0x05,0x00,0x86,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x68,0x00,0x04,0x05,0x05,0x04,0x57, +0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x04,0x05,0x4f,0x59,0x40,0x09,0x11,0x12,0x11,0x11,0x12,0x10,0x06,0x06,0x1c,0x2b,0x25,0x23,0x03,0x13,0x33,0x07,0x21,0x15,0x21,0x07,0x17,0x21,0x15,0x21,0x01,0x51,0x6a,0xe7,0xe8,0x69,0x6a,0x01,0x71,0xfe,0x50,0x3f,0x3f,0x01,0xb0,0xfe,0x8f,0x23,0x01,0x27,0x01,0x27,0x87,0x50,0x50,0x50,0x50, +0x00,0x02,0xff,0xb0,0x00,0x23,0x02,0xa8,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x77,0x40,0x09,0x13,0x10,0x08,0x01,0x04,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00,0x70,0x08,0x05,0x02,0x03,0x04,0x04,0x03,0x71,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00, +0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x1b,0x40,0x25,0x02,0x01,0x00,0x01,0x00,0x85,0x08,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00,0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x59,0x40,0x12,0x00,0x00,0x12,0x11,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x12, +0x11,0x11,0x12,0x09,0x06,0x1b,0x2b,0x37,0x03,0x13,0x33,0x07,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x17,0x27,0x21,0x37,0x27,0x21,0x07,0x97,0xe7,0xe8,0x69,0x6a,0x01,0x2a,0x6a,0x69,0xe8,0xe7,0x6a,0x6a,0xfe,0xd6,0x6a,0xa9,0x01,0xa8,0x3f,0x3f,0xfe,0x58,0x3f,0x23,0x01,0x27,0x01,0x27,0x87,0x87,0xfe,0xd9,0xfe,0xd9,0x87,0x87, +0xd7,0x50,0x50,0x50,0x00,0x01,0x00,0x00,0x00,0x23,0x02,0x58,0x02,0x71,0x00,0x10,0x00,0x7d,0xb5,0x0d,0x01,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x0f,0x50,0x58,0x40,0x2d,0x00,0x05,0x04,0x04,0x05,0x70,0x00,0x06,0x07,0x07,0x06,0x71,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x68,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x07,0x07, +0x00,0x57,0x00,0x00,0x00,0x07,0x5f,0x08,0x01,0x07,0x00,0x07,0x4f,0x1b,0x40,0x2b,0x00,0x05,0x04,0x05,0x85,0x00,0x06,0x07,0x06,0x86,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x68,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x07,0x07,0x00,0x57,0x00,0x00,0x00,0x07,0x5f,0x08,0x01,0x07,0x00,0x07,0x4f,0x59,0x40,0x10,0x00,0x00, +0x00,0x10,0x00,0x10,0x12,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x06,0x1d,0x2b,0x35,0x35,0x21,0x37,0x21,0x35,0x21,0x27,0x21,0x35,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x01,0x87,0x49,0xfe,0x30,0x01,0xd0,0x49,0xfe,0x79,0x01,0x4a,0x43,0x69,0xe8,0xe7,0x6a,0x43,0x78,0x4e,0x5d,0x4e,0x5d,0x4e,0x55,0xfe,0xd9,0xfe,0xd9,0x55,0x00,0x00, +0x00,0x02,0x00,0x14,0x00,0x00,0x02,0x44,0x03,0x16,0x00,0x0c,0x00,0x13,0x00,0x31,0x40,0x2e,0x0e,0x0c,0x02,0x03,0x4a,0x06,0x05,0x02,0x03,0x02,0x01,0x00,0x04,0x03,0x00,0x67,0x00,0x04,0x01,0x01,0x04,0x57,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x04,0x01,0x4f,0x0d,0x0d,0x0d,0x13,0x0d,0x13,0x11,0x14,0x13,0x33,0x10,0x07,0x06,0x1b, +0x2b,0x01,0x23,0x11,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x11,0x23,0x01,0x13,0x27,0x07,0x33,0x11,0x33,0x11,0x02,0x44,0x9b,0x21,0x1b,0x82,0x1b,0x21,0x9b,0x01,0x18,0xc0,0xbf,0xbf,0x70,0x9c,0x01,0xe5,0xfe,0x57,0x1b,0x21,0x21,0x1b,0x01,0xa9,0x01,0x31,0xfe,0xf4,0xcf,0xcf,0xfe,0x21,0x01,0xdf,0x00,0x00,0x00,0x00,0x02,0x00,0x00, +0x00,0x32,0x02,0x58,0x02,0x6c,0x00,0x0c,0x00,0x13,0x00,0x33,0x40,0x30,0x0e,0x0c,0x02,0x03,0x02,0x01,0x4c,0x0f,0x0b,0x02,0x01,0x4a,0x0d,0x00,0x02,0x00,0x49,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x03,0x03,0x00,0x5f,0x00,0x00,0x03,0x00,0x4f,0x11,0x16,0x25,0x21,0x04,0x06,0x1a,0x2b,0x25, +0x35,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x33,0x35,0x01,0x05,0x37,0x27,0x15,0x21,0x15,0x21,0x01,0x27,0xeb,0x1b,0x21,0x21,0x1b,0xeb,0x01,0x31,0xfe,0xfb,0xc7,0xc7,0xfe,0xdc,0x01,0x24,0x32,0xa4,0x21,0x1b,0x7a,0x1b,0x21,0xa4,0xfe,0xe3,0xbb,0xbb,0xba,0x6c,0x9c,0x00,0x01,0x00,0x0a,0xff,0xf6,0x02,0x4e,0x01,0x56,0x00,0x05, +0x00,0x06,0xb3,0x04,0x00,0x01,0x32,0x2b,0x05,0x25,0x35,0x05,0x25,0x15,0x01,0x2b,0xfe,0xdf,0x01,0x27,0x01,0x1d,0x0a,0xf6,0x69,0xf9,0xfa,0x69,0x00,0x03,0xff,0xf6,0x01,0xae,0x02,0x62,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x0d,0x00,0x3e,0x40,0x3b,0x0c,0x01,0x04,0x01,0x01,0x4c,0x09,0x01,0x00,0x4a,0x07,0x05,0x02,0x04,0x01,0x04, +0x86,0x03,0x01,0x00,0x01,0x01,0x00,0x57,0x03,0x01,0x00,0x00,0x01,0x5f,0x02,0x06,0x02,0x01,0x00,0x01,0x4f,0x08,0x08,0x00,0x00,0x08,0x0d,0x08,0x0d,0x0b,0x0a,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x03,0x35,0x33,0x15,0x21,0x23,0x35,0x33,0x01,0x13,0x13,0x23,0x27,0x07,0x0a,0xb4,0x01,0xb8,0xb4,0xb4, +0xfd,0xd5,0xf5,0xf5,0x5f,0x96,0x96,0x02,0x8a,0x50,0x50,0x50,0xfe,0xd4,0x01,0x2c,0xfe,0xd4,0xb9,0xb9,0x00,0x01,0x00,0x0a,0x00,0x78,0x02,0x4e,0x02,0x1c,0x00,0x16,0x00,0x2f,0x40,0x2c,0x16,0x01,0x01,0x02,0x01,0x4c,0x05,0x01,0x01,0x01,0x4b,0x00,0x03,0x02,0x03,0x85,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x57,0x00, +0x02,0x02,0x01,0x5f,0x00,0x01,0x02,0x01,0x4f,0x16,0x31,0x27,0x10,0x04,0x06,0x1a,0x2b,0x25,0x23,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x21,0x35,0x21,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x01,0x9e,0x95,0x56,0x0c,0x1c,0x0c,0x13,0x26,0x0b,0xfe,0xbb,0x01,0x41,0x1a,0x26,0x06,0x05,0x18,0x10,0x57,0x91,0xb0,0x78, +0x68,0x0f,0x1c,0x08,0x04,0x01,0x03,0x6e,0x01,0x02,0x04,0x05,0x19,0x13,0x69,0xd2,0x00,0x01,0x00,0x05,0x00,0x64,0x02,0x4e,0x02,0x30,0x00,0x27,0x00,0x39,0x40,0x36,0x25,0x18,0x02,0x01,0x02,0x01,0x4c,0x09,0x01,0x01,0x01,0x4b,0x00,0x03,0x02,0x03,0x85,0x04,0x01,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02, +0x01,0x5f,0x00,0x01,0x02,0x01,0x4f,0x01,0x00,0x23,0x21,0x17,0x13,0x0f,0x0c,0x00,0x27,0x01,0x27,0x05,0x06,0x16,0x2b,0x25,0x22,0x26,0x35,0x34,0x37,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x17,0x07,0x06,0x01, +0x75,0x17,0x22,0x0e,0x08,0x1a,0x26,0x06,0x13,0x28,0x11,0xfe,0xf5,0x19,0x23,0x23,0x19,0x01,0x07,0x1a,0x2a,0x0c,0x0a,0x23,0x14,0x11,0x0d,0x22,0x17,0x1d,0x11,0xae,0xad,0x10,0x64,0x22,0x17,0x14,0x10,0x09,0x1e,0x27,0x04,0x04,0x01,0x03,0x20,0x17,0x17,0x20,0x02,0x02,0x04,0x09,0x23,0x15,0x13,0x10,0x14,0x17,0x20,0x19,0xcd,0xcf, +0x17,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x69,0x02,0x4e,0x02,0x2b,0x00,0x06,0x00,0x26,0x40,0x23,0x06,0x01,0x00,0x01,0x01,0x4c,0x05,0x01,0x01,0x4a,0x00,0x01,0x00,0x49,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x11,0x11,0x02,0x06,0x18,0x2b,0x25,0x35,0x21,0x35,0x21,0x35,0x17,0x01, +0x8f,0xfe,0x7b,0x01,0x85,0xbf,0x69,0xbe,0x46,0xbe,0xe1,0x00,0x00,0x01,0x00,0x0a,0x00,0x69,0x02,0x4e,0x02,0x2b,0x00,0x06,0x00,0x26,0x40,0x23,0x06,0x01,0x00,0x01,0x01,0x4c,0x05,0x01,0x01,0x4a,0x00,0x01,0x00,0x49,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x11,0x11,0x02,0x06,0x18,0x2b, +0x25,0x35,0x21,0x35,0x21,0x35,0x17,0x01,0x8f,0xfe,0x7b,0x01,0x85,0xbf,0x69,0xaa,0x6e,0xaa,0xe1,0x00,0x00,0x01,0xff,0xd8,0x00,0x4b,0x02,0x80,0x02,0x49,0x00,0x16,0x00,0x3a,0x40,0x37,0x07,0x01,0x01,0x00,0x11,0x08,0x01,0x03,0x02,0x01,0x12,0x01,0x03,0x02,0x03,0x4c,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00, +0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x16,0x00,0x16,0x21,0x36,0x12,0x05,0x06,0x19,0x2b,0x37,0x27,0x37,0x33,0x07,0x06,0x06,0x07,0x15,0x36,0x36,0x33,0x21,0x15,0x21,0x22,0x26,0x27,0x15,0x16,0x16,0x17,0x17,0xa7,0xcf,0xce,0x67,0x86,0x0a,0x1a,0x09,0x0d,0x29,0x10,0x01,0xe0, +0xfe,0x20,0x10,0x29,0x0d,0x07,0x19,0x0d,0x89,0x4b,0xff,0xff,0xa5,0x0c,0x1a,0x07,0x09,0x02,0x02,0x50,0x04,0x01,0x09,0x06,0x1a,0x0f,0xa4,0x00,0x00,0x01,0xff,0xd8,0x00,0x4b,0x02,0x80,0x02,0x49,0x00,0x16,0x00,0x3a,0x40,0x37,0x0f,0x01,0x01,0x02,0x15,0x0e,0x05,0x03,0x00,0x01,0x04,0x01,0x03,0x00,0x03,0x4c,0x00,0x02,0x01,0x02, +0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x16,0x00,0x16,0x17,0x21,0x27,0x05,0x06,0x19,0x2b,0x25,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x21,0x35,0x21,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x07,0x01,0x4b,0x86,0x0a,0x1a, +0x09,0x0d,0x28,0x11,0xfe,0x20,0x01,0xe0,0x11,0x28,0x0d,0x07,0x19,0x0d,0x89,0x69,0xcf,0xce,0x4b,0xa5,0x0c,0x1a,0x07,0x09,0x01,0x03,0x50,0x03,0x02,0x09,0x06,0x1a,0x0f,0xa4,0xff,0xff,0x00,0x01,0xff,0xb0,0x00,0x4b,0x02,0xa8,0x02,0x49,0x00,0x29,0x00,0x43,0x40,0x40,0x10,0x07,0x02,0x01,0x00,0x24,0x1d,0x16,0x0f,0x08,0x01,0x06, +0x04,0x01,0x25,0x1c,0x02,0x03,0x04,0x03,0x4c,0x02,0x01,0x00,0x01,0x00,0x85,0x06,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x04,0x04,0x01,0x57,0x00,0x01,0x01,0x04,0x5f,0x00,0x04,0x01,0x04,0x4f,0x00,0x00,0x00,0x29,0x00,0x29,0x37,0x12,0x17,0x46,0x12,0x07,0x06,0x1b,0x2b,0x37,0x27,0x37,0x33,0x07,0x06,0x06,0x07,0x15,0x36,0x36, +0x33,0x21,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x07,0x23,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x21,0x22,0x26,0x27,0x15,0x16,0x16,0x17,0x17,0x7f,0xcf,0xce,0x67,0x86,0x0a,0x1a,0x09,0x0d,0x29,0x10,0x01,0x68,0x11,0x28,0x0d,0x07,0x19,0x0d,0x89,0x69,0xcf,0xce,0x67,0x86,0x0a,0x1a,0x09,0x0d,0x28,0x11,0xfe,0x98, +0x10,0x29,0x0d,0x07,0x19,0x0d,0x89,0x4b,0xff,0xff,0xa5,0x0c,0x1a,0x07,0x09,0x02,0x02,0x03,0x02,0x09,0x06,0x1a,0x0f,0xa4,0xff,0xff,0xa5,0x0c,0x1a,0x07,0x09,0x01,0x03,0x04,0x01,0x09,0x06,0x1a,0x0f,0xa4,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0xff,0x79,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00, +0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x35,0x21,0x15,0x02,0x58,0xfe,0xd4,0xa5,0xa5,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x00,0x1e,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03, +0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0x01,0x4a,0xfe,0xb6,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x00,0xc3,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe, +0xd4,0x01,0xef,0xfe,0x11,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x01,0x68,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0xfe,0xd4,0x02,0x58,0x02,0x0d,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0x03,0x39,0xfc,0xc7,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x02,0xb2,0x00,0x03,0x00,0x17,0x40,0x14, +0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0x03,0xde,0xfc,0x22,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0x57,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00, +0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0x04,0x83,0xfb,0x7d,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21, +0x11,0x02,0x58,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x68,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0x01,0x68,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x03,0x57,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x35,0x21,0x15,0x02,0x58,0x03,0x57,0xa5,0xa5,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x00,0x4b, +0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x33,0x11,0x4b,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x01,0x00,0x00,0xfe,0xd4,0x00,0x96,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x33,0x11,0x96,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x01,0x00,0x00,0xfe,0xd4,0x00,0xc8,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x33, +0x11,0xc8,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x01,0x00,0x00,0xfe,0xd4,0x01,0x2c,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0x2c,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0xfe,0xd4,0x01,0x77,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0x77,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x01,0xc2,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14, +0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0xc2,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x0d,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00, +0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x0d,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x01,0x2c,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x01,0x11,0x21, +0x11,0x01,0x2c,0x01,0x2c,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x01,0x02,0x0d,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x01,0x11,0x33,0x11,0x02,0x0d,0x4b,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00, +0x00,0x01,0x00,0x00,0xfe,0xd4,0x01,0x2c,0x01,0x68,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0x2c,0xfe,0xd4,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x01,0x2c,0xfe,0xd4,0x02,0x58,0x01,0x68,0x00,0x03, +0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x01,0x11,0x21,0x11,0x01,0x2c,0x01,0x2c,0xfe,0xd4,0x02,0x94,0xfd,0x6c,0x00,0x00,0x01,0x00,0x00,0x01,0x68,0x01,0x2c,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0x2c,0x01,0x68,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1d,0x40,0x1a,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x01,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x05,0x00, +0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x11,0x11,0x21,0x11,0x21,0x11,0x01,0x2c,0x01,0x2c,0xfe,0xd4,0x05,0x28,0xfd,0x6c,0xfd,0x6c,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x03,0x02,0x85,0x05,0x01, +0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x11,0x11,0x21,0x19,0x02,0x21,0x11,0x01,0x2c,0x01,0x2c,0x01,0x68,0x02,0x94,0xfd,0x6c,0xfd,0x6c,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1d,0x40,0x1a, +0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x01,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x11,0x11,0x21,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0xfe,0xd4,0x05,0x28,0xfd,0x6c,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1d,0x40,0x1a, +0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x01,0x11,0x21,0x11,0x21,0x11,0x01,0x2c,0xfe,0xca,0x02,0x62,0xfe,0xd4,0x02,0x94,0x02,0x94,0xfa,0xd8,0x00,0x00,0x01,0x01,0x2c,0x01,0x68,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14, +0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x01,0x11,0x21,0x11,0x01,0x2c,0x01,0x2c,0x01,0x68,0x02,0x94,0xfd,0x6c,0x00,0x00,0x02,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x01,0x02,0x01, +0x85,0x00,0x02,0x03,0x02,0x85,0x05,0x01,0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x01,0x11,0x21,0x11,0x01,0x11,0x21,0x11,0x01,0x2c,0x01,0x2c,0xfd,0xa8,0x01,0x2c,0x01,0x68,0x02,0x94,0xfd,0x6c,0xfd,0x6c,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00,0x01,0x00,0x00, +0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1d,0x40,0x1a,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x11,0x11,0x21,0x11,0x21,0x11,0x01,0x2c,0x01,0x2c,0xfe,0xd4,0x02,0x94,0x02,0x94,0xfa,0xd8,0x00,0x00,0x00,0x00,0x37,0x00,0x3c, +0xff,0x10,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x57,0x00,0x5b,0x00,0x5f,0x00,0x63,0x00,0x67,0x00,0x6b,0x00,0x6f,0x00,0x73, +0x00,0x77,0x00,0x7b,0x00,0x7f,0x00,0x83,0x00,0x87,0x00,0x8b,0x00,0x8f,0x00,0x93,0x00,0x97,0x00,0x9b,0x00,0x9f,0x00,0xa3,0x00,0xa7,0x00,0xab,0x00,0xaf,0x00,0xb3,0x00,0xb7,0x00,0xbb,0x00,0xbf,0x00,0xc3,0x00,0xc7,0x00,0xcb,0x00,0xcf,0x00,0xd3,0x00,0xd7,0x00,0xdb,0x00,0x00,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35, +0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35, +0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35, +0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35, +0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x02,0x1c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x03,0xc0,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x00,0x00,0x00,0x6e,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x57,0x00,0x5b, +0x00,0x5f,0x00,0x63,0x00,0x67,0x00,0x6b,0x00,0x6f,0x00,0x73,0x00,0x77,0x00,0x7b,0x00,0x7f,0x00,0x83,0x00,0x87,0x00,0x8b,0x00,0x8f,0x00,0x93,0x00,0x97,0x00,0x9b,0x00,0x9f,0x00,0xa3,0x00,0xa7,0x00,0xab,0x00,0xaf,0x00,0xb3,0x00,0xb7,0x00,0xbb,0x00,0xbf,0x00,0xc3,0x00,0xc7,0x00,0xcb,0x00,0xcf,0x00,0xd3,0x00,0xd7,0x00,0xdb, +0x00,0xdf,0x00,0xe3,0x00,0xe7,0x00,0xeb,0x00,0xef,0x00,0xf3,0x00,0xf7,0x00,0xfb,0x00,0xff,0x01,0x03,0x01,0x07,0x01,0x0b,0x01,0x0f,0x01,0x13,0x01,0x17,0x01,0x1b,0x01,0x1f,0x01,0x23,0x01,0x27,0x01,0x2b,0x01,0x2f,0x01,0x33,0x01,0x37,0x01,0x3b,0x01,0x3f,0x01,0x43,0x01,0x47,0x01,0x4b,0x01,0x4f,0x01,0x53,0x01,0x57,0x01,0x5b, +0x01,0x5f,0x01,0x63,0x01,0x67,0x01,0x6b,0x01,0x6f,0x01,0x73,0x01,0x77,0x01,0x7b,0x01,0x7f,0x01,0x83,0x01,0x87,0x01,0x8b,0x01,0x8f,0x01,0x93,0x01,0x97,0x01,0x9b,0x01,0x9f,0x01,0xa3,0x01,0xa7,0x01,0xab,0x01,0xaf,0x01,0xb3,0x01,0xb7,0x00,0x00,0x01,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15, +0x23,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15, +0x07,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x17,0x35,0x33,0x15, +0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15, +0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15, +0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15, +0x21,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15, +0x05,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x02,0x1c,0x3c,0xb4,0x3c,0xb4,0x3c,0xb4,0x3c,0xb4,0x3c,0x01,0x68,0x3c,0xb4,0x3c,0xb4,0x3c,0xb4,0x3c,0xb4,0x3c,0x01,0xe0, +0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0xb4,0x3c,0xf0,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0x78,0x3c,0x01,0x2c,0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0x78,0x3c,0xfe,0xd4,0x3c,0xb4,0x3c,0xb4,0x3c,0x01,0x2c,0x3c,0x78,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0xb4,0x3c,0xfe,0xd4,0x3c,0xf0,0x3c,0xfe,0xd4,0x3c,0x3c, +0x3c,0xb4,0x3c,0xfd,0xe4,0x3c,0xf0,0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0x01,0x2c,0x3c,0xfe,0x20,0x3c,0x01,0xa4,0x3c,0xb4,0x3c,0xfe,0xd4,0x3c,0x3c,0x3c,0xf0,0x3c,0xfe,0xd4,0x3c,0xb4,0x3c,0xb4,0x3c,0x01,0x2c,0x3c,0xf0,0x3c,0x3c,0x3c,0xfe,0x5c,0x3c,0x3c,0x3c,0x01,0x2c,0x3c,0xf0,0x3c,0xfe,0xd4,0x3c,0x3c,0x3c,0x01,0x2c, +0x3c,0xb4,0x3c,0x78,0x3c,0xfe,0xd4,0x3c,0x01,0x2c,0x3c,0xfe,0xd4,0x3c,0xfe,0xd4,0x3c,0x01,0x68,0x3c,0xfe,0xd4,0x3c,0x3c,0x3c,0xb4,0x3c,0xfd,0xe4,0x3c,0x01,0x68,0x3c,0xfd,0xe4,0x3c,0xb4,0x3c,0x3c,0x3c,0xfe,0xd4,0x3c,0x78,0x3c,0x01,0x2c,0x3c,0xb4,0x3c,0xb4,0x3c,0x01,0x2c,0x3c,0x78,0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c, +0xb4,0x3c,0x01,0x68,0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0xb4,0x3c,0x78,0x3c,0x01,0x2c,0x3c,0xb4,0x3c,0xb4,0x3c,0xfe,0xd4,0x3c,0x01,0xe0,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0xb4,0x3c,0xfe,0xd4,0x3c,0x78,0x3c,0xb4,0x3c,0xb4,0x3c,0xfe,0xd4,0x3c,0xb4,0x3c,0x03,0xc0,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x00,0x00,0x00,0x00,0x29,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x3d,0x00,0x41,0x00,0x45,0x00,0x49,0x00,0x4d,0x00,0x51,0x00,0x55, +0x00,0x59,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0x69,0x00,0x6d,0x00,0x71,0x00,0x75,0x00,0x79,0x00,0x7d,0x00,0x81,0x00,0x85,0x00,0x89,0x00,0x8d,0x00,0x91,0x00,0x95,0x00,0x99,0x00,0x9d,0x00,0xa1,0x00,0xa5,0x00,0xa9,0x00,0xad,0x00,0xb1,0x00,0xb5,0x00,0xb9,0x00,0xbd,0x00,0xc1,0x00,0xc5,0x00,0xc9,0x00,0xcd,0x00,0xd1,0x00,0xd5, +0x00,0xd9,0x00,0xdd,0x00,0x00,0x11,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15, +0x33,0x35,0x33,0x11,0x03,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x17,0x33,0x35,0x23, +0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x15,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x15,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23, +0x07,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x15,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x01,0x68,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x01,0x68,0x3c,0x3c,0x78,0x3c,0x3c,0xf0,0x3c,0x3c,0x78,0x3c,0x3c,0xf0,0x3c,0x3c,0xfe,0x98,0x3c,0x3c,0xf0,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x01,0x68,0x3c,0x3c,0xf0,0x3c,0x3c,0x78, +0x3c,0x3c,0x3c,0x3c,0xf0,0x3c,0x3c,0x78,0x3c,0x3c,0xf0,0x3c,0x3c,0xfe,0x98,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x01,0x68,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x01,0x68,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0xfe,0xd4, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfa,0xd8,0x04,0x74,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f, +0x00,0x18,0x40,0x15,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x00,0x76,0x01,0x00,0x09,0x07,0x00,0x0f,0x01,0x0f,0x03,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c, +0x59,0x58,0x8d,0x51,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x11,0x10,0x01,0x00,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01, +0x0f,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x32,0x51, +0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04, +0x01,0x00,0x02,0x00,0x51,0x11,0x10,0x01,0x00,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d, +0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1d,0x00,0x3b,0x40,0x38,0x00,0x03, +0x04,0x02,0x04,0x03,0x02,0x80,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x69,0x06,0x01,0x02,0x00,0x00,0x02,0x59,0x06,0x01,0x02,0x02,0x00,0x61,0x05,0x01,0x00,0x02,0x00,0x51,0x11,0x10,0x01,0x00,0x17,0x16,0x15,0x14,0x10,0x1d,0x11,0x1d,0x09,0x07,0x00,0x0f,0x01,0x0f,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33, +0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x21,0x11,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0xfe,0xfc,0x4a,0x76,0x44,0x44,0x76,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x01,0x04, +0x44,0x76,0x4a,0x4a,0x76,0x44,0x00,0x00,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x15,0x00,0x2f,0x40,0x2c,0x00,0x02,0x03,0x00,0x03,0x02,0x00,0x80,0x04,0x01,0x00,0x00,0x84,0x00,0x01,0x03,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x61,0x00,0x03,0x01,0x03,0x51,0x01,0x00,0x13,0x12,0x11,0x10,0x09,0x07,0x00, +0x0f,0x01,0x0f,0x05,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x21,0x11,0x22,0x06,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0xfe,0xa3,0x01,0x04,0x4a,0x76,0x44,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x01,0x36, +0x01,0x04,0x44,0x76,0x00,0x03,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1d,0x00,0x23,0x00,0x3e,0x40,0x3b,0x1f,0x14,0x02,0x00,0x04,0x01,0x4c,0x05,0x01,0x00,0x04,0x00,0x86,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x02,0x04,0x04,0x02,0x57,0x00,0x02,0x02,0x04,0x5f,0x06,0x01,0x04,0x02,0x04,0x4f,0x1e,0x1e, +0x01,0x00,0x1e,0x23,0x1e,0x23,0x1b,0x19,0x16,0x15,0x09,0x07,0x00,0x0f,0x01,0x0f,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x14,0x16,0x16,0x17,0x11,0x21,0x2e,0x02,0x23,0x22,0x06,0x06,0x05,0x15,0x3e,0x02,0x37,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c, +0x51,0x51,0x8c,0xfe,0xa3,0x3d,0x6a,0x44,0x01,0x1c,0x06,0x46,0x71,0x46,0x4a,0x76,0x44,0x01,0x1d,0x40,0x65,0x3f,0x06,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x01,0x36,0x46,0x71,0x46,0x06,0x01,0x1c,0x44,0x6a,0x3d,0x44,0x76,0x63,0xea,0x06,0x3f,0x65,0x40,0x00,0x00,0x08,0xff,0xf6,0x00,0x32,0x02,0x62, +0x02,0x9e,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x35,0x00,0x3b,0x00,0x47,0x00,0x48,0x40,0x45,0x13,0x0e,0x04,0x03,0x01,0x00,0x43,0x3d,0x39,0x38,0x33,0x31,0x2f,0x2b,0x2a,0x22,0x21,0x1b,0x1a,0x16,0x15,0x11,0x0f,0x0b,0x05,0x13,0x02,0x01,0x44,0x3b,0x34,0x03,0x03,0x02,0x03,0x4c,0x00,0x00,0x00,0x01,0x02,0x00, +0x01,0x69,0x00,0x02,0x03,0x03,0x02,0x59,0x00,0x02,0x02,0x03,0x61,0x00,0x03,0x02,0x03,0x51,0x47,0x45,0x41,0x3f,0x24,0x21,0x04,0x06,0x18,0x2b,0x13,0x36,0x33,0x32,0x17,0x07,0x26,0x26,0x23,0x22,0x06,0x07,0x07,0x36,0x37,0x17,0x06,0x07,0x25,0x37,0x16,0x17,0x07,0x26,0x05,0x34,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x26, +0x05,0x36,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x15,0x14,0x07,0x05,0x37,0x16,0x17,0x07,0x26,0x25,0x36,0x37,0x17,0x06,0x07,0x07,0x37,0x16,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x23,0x22,0xdb,0x25,0x2c,0x2c,0x25,0x0d,0x10,0x22,0x12,0x12,0x21,0x11,0xcb,0x29,0x4a,0x19,0x3d,0x23,0x01,0x66,0x19,0x4a,0x29,0x2c,0x23,0xfe,0x0a,0x0a, +0x30,0x04,0x04,0x04,0x04,0x30,0x0a,0x02,0x32,0x04,0x04,0x04,0x04,0x30,0x0a,0x0a,0xfd,0xc5,0x2c,0x23,0x3d,0x19,0x4a,0x01,0x69,0x3d,0x23,0x2c,0x29,0x4a,0xed,0x0d,0x11,0x21,0x12,0x12,0x22,0x10,0x0d,0x25,0x2c,0x2c,0x02,0x94,0x0a,0x0a,0x30,0x04,0x04,0x04,0x04,0x60,0x4a,0x29,0x2c,0x23,0x3d,0x60,0x2c,0x29,0x4a,0x19,0x3d,0xc0, +0x2c,0x25,0x0d,0x10,0x22,0x12,0x12,0x21,0x11,0x0d,0x25,0x18,0x11,0x21,0x12,0x12,0x22,0x10,0x0d,0x25,0x2c,0x2c,0x25,0x4b,0x19,0x3d,0x23,0x2c,0x29,0x03,0x23,0x3d,0x19,0x4a,0x29,0x1d,0x30,0x04,0x04,0x04,0x04,0x30,0x0a,0x00,0x00,0x03,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x49,0x40,0x46, +0x00,0x05,0x03,0x04,0x03,0x05,0x04,0x80,0x08,0x01,0x04,0x02,0x03,0x04,0x02,0x7e,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x02,0x00,0x51,0x21,0x20,0x11,0x10,0x01,0x00,0x29,0x27,0x20,0x2f,0x21,0x2f,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00, +0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59, +0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x37,0x59,0x35,0x35,0x59,0x37,0x39,0x59,0x33,0x35,0x59,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x3f,0x35,0x59,0x37,0x37,0x59,0x35,0x33,0x59,0x39, +0x37,0x59,0x35,0x00,0x00,0x04,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x3f,0x00,0x53,0x40,0x50,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x0b,0x01,0x06,0x0a,0x01,0x04,0x02,0x06,0x04,0x69,0x09,0x01,0x02,0x00,0x00,0x02,0x59,0x09,0x01,0x02,0x02,0x00, +0x61,0x08,0x01,0x00,0x02,0x00,0x51,0x31,0x30,0x21,0x20,0x11,0x10,0x01,0x00,0x39,0x37,0x30,0x3f,0x31,0x3f,0x29,0x27,0x20,0x2f,0x21,0x2f,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x0c,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35, +0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a, +0x76,0x44,0x44,0x76,0x4a,0x37,0x59,0x35,0x35,0x59,0x37,0x39,0x59,0x33,0x35,0x59,0x37,0x2b,0x44,0x27,0x27,0x44,0x2b,0x2b,0x44,0x27,0x27,0x44,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x3f,0x35,0x59,0x37,0x37,0x59,0x35,0x33,0x59,0x39, +0x37,0x59,0x35,0x2f,0x27,0x44,0x2b,0x2b,0x44,0x27,0x27,0x44,0x2b,0x2b,0x44,0x27,0x00,0x02,0x00,0xb4,0x00,0xf5,0x01,0xa4,0x01,0xe5,0x00,0x0b,0x00,0x17,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01, +0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0x35,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x2d,0xf5,0x44,0x34,0x35,0x43,0x43, +0x35,0x34,0x44,0x28,0x2d,0x23,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x00,0x01,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9f,0x00,0x03,0x00,0x06,0xb3,0x02,0x00,0x01,0x32,0x2b,0x25,0x09,0x02,0x01,0x2c,0xfe,0xca,0x01,0x36,0x01,0x36,0x32,0x01,0x36,0x01,0x37,0xfe,0xc9,0x00,0x00,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9f,0x00,0x03, +0x00,0x07,0x00,0x08,0xb5,0x06,0x04,0x02,0x00,0x02,0x32,0x2b,0x25,0x09,0x02,0x05,0x37,0x27,0x07,0x01,0x2c,0xfe,0xca,0x01,0x36,0x01,0x36,0xfe,0xca,0xe8,0xe8,0xe8,0x32,0x01,0x36,0x01,0x37,0xfe,0xc9,0xe8,0xe8,0xe9,0xe9,0x00,0x00,0x03,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9f,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0a,0xb7,0x0a, +0x08,0x06,0x04,0x02,0x00,0x03,0x32,0x2b,0x25,0x09,0x02,0x05,0x37,0x27,0x07,0x17,0x27,0x37,0x17,0x01,0x2c,0xfe,0xca,0x01,0x36,0x01,0x36,0xfe,0xca,0xe8,0xe8,0xe8,0xe8,0x8d,0x8d,0x8d,0x32,0x01,0x36,0x01,0x37,0xfe,0xc9,0xe8,0xe8,0xe9,0xe9,0x8d,0x8d,0x8d,0x8d,0x00,0x00,0x02,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0xd0,0x00,0x07, +0x00,0x1b,0x00,0x25,0x40,0x22,0x18,0x17,0x12,0x0e,0x0d,0x06,0x05,0x02,0x01,0x09,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x07,0x00,0x07,0x13,0x03,0x06,0x17,0x2b,0x33,0x03,0x35,0x13,0x33,0x13,0x15,0x03,0x27,0x33,0x36,0x36,0x37,0x37,0x35,0x27,0x26,0x26,0x27,0x23,0x06,0x06,0x07, +0x07,0x15,0x17,0x16,0x16,0xf0,0xb4,0xb4,0x7e,0xae,0xae,0x43,0x04,0x07,0x1b,0x0f,0x62,0x62,0x0f,0x1b,0x07,0x04,0x07,0x1c,0x0f,0x63,0x63,0x10,0x1b,0x01,0x44,0x47,0x01,0x45,0xfe,0xbb,0x47,0xfe,0xbc,0x3c,0x0e,0x36,0x1d,0xbb,0x1f,0xbc,0x1d,0x36,0x0e,0x0e,0x36,0x1d,0xbc,0x1f,0xbb,0x1e,0x35,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x02,0x58,0x3c,0x02,0x58,0xfd,0xa8,0x00,0x02,0x00,0x00,0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00, +0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x3c,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0x00,0x00, +0x00,0x01,0x00,0x96,0x00,0xd2,0x01,0xc2,0x01,0xfe,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x37,0x11,0x21,0x11,0x96,0x01,0x2c,0xd2,0x01,0x2c,0xfe,0xd4,0x00,0x00,0x00,0x00,0x02,0x00,0x96,0x00,0xd2,0x01,0xc2,0x01,0xfe,0x00,0x03, +0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x37,0x11,0x21,0x11,0x27,0x33,0x35,0x23,0x96,0x01,0x2c,0xfa,0xc8,0xc8,0xd2,0x01,0x2c,0xfe, +0xd4,0x32,0xc8,0x00,0x00,0x02,0x00,0x00,0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x07,0x00,0x29,0x40,0x26,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x04,0x01,0x03,0x00,0x00,0x03,0x57,0x04,0x01,0x03,0x03,0x00,0x5f,0x00,0x00,0x03,0x00,0x4f,0x04,0x04,0x04,0x07,0x04,0x07,0x12,0x11,0x10,0x05,0x06,0x19,0x2b,0x25,0x21,0x11, +0x21,0x03,0x11,0x21,0x11,0x02,0x58,0xfd,0xa8,0x02,0x58,0x32,0xfe,0xfc,0x3c,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x00,0x00,0x02,0x00,0x00,0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01, +0x02,0x01,0x4f,0x00,0x00,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x02,0x58,0xfd,0xda,0x01,0x04,0xfe,0xfc,0x3c,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x06,0x00,0x2b,0x40,0x28,0x06,0x01, +0x02,0x00,0x01,0x4c,0x00,0x00,0x02,0x00,0x85,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x03,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x04,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x21,0x11,0x02,0x58,0xfd,0xda,0x01,0xf4,0x3c,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0x00,0x02,0x00,0x00, +0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x06,0x00,0x2c,0x40,0x29,0x06,0x01,0x00,0x02,0x01,0x4c,0x00,0x00,0x02,0x00,0x86,0x03,0x01,0x01,0x02,0x02,0x01,0x57,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x04,0x06,0x17,0x2b,0x01,0x11,0x21,0x11,0x05,0x21,0x11,0x02, +0x58,0xfd,0xa8,0x02,0x26,0xfe,0x0c,0x02,0x94,0xfd,0xa8,0x02,0x58,0x32,0xfe,0x0c,0x00,0x03,0x00,0x00,0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x31,0x40,0x2e,0x00,0x00,0x04,0x01,0x03,0x02,0x00,0x03,0x67,0x05,0x01,0x02,0x01,0x01,0x02,0x57,0x05,0x01,0x02,0x02,0x01,0x5f,0x06,0x01,0x01,0x02,0x01,0x4f, +0x00,0x00,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x07,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x33,0x11,0x23,0x21,0x23,0x11,0x33,0x02,0x58,0xfd,0xda,0xe1,0xe1,0x01,0xf4,0xe1,0xe1,0x3c,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0xfe,0x0c,0x00,0x00,0x01,0xff,0xf6,0x00,0x3c,0x02,0x62,0x02,0x9e,0x00,0x02, +0x00,0x15,0x40,0x12,0x01,0x01,0x00,0x4a,0x01,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x06,0x16,0x2b,0x27,0x01,0x01,0x0a,0x01,0x36,0x01,0x36,0x3c,0x02,0x62,0xfd,0x9e,0x00,0x01,0x00,0x00,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x02,0x00,0x06,0xb3,0x01,0x00,0x01,0x32,0x2b,0x35,0x11,0x01,0x02,0x62,0x32,0x02,0x6c, +0xfe,0xca,0x00,0x00,0x00,0x01,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x94,0x00,0x02,0x00,0x0a,0xb7,0x00,0x00,0x00,0x76,0x11,0x01,0x06,0x17,0x2b,0x25,0x01,0x21,0x01,0x2c,0xfe,0xca,0x02,0x6c,0x32,0x02,0x62,0x00,0x01,0xff,0xf6,0x00,0x31,0x02,0x58,0x02,0x9e,0x00,0x02,0x00,0x06,0xb3,0x02,0x00,0x01,0x32,0x2b,0x25,0x01,0x01,0x02, +0x58,0xfd,0x9e,0x02,0x62,0x31,0x01,0x37,0x01,0x36,0x00,0x00,0x00,0x02,0xff,0xf6,0x00,0x3c,0x02,0x62,0x02,0x9e,0x00,0x02,0x00,0x05,0x00,0x24,0x40,0x21,0x05,0x01,0x02,0x01,0x4a,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x04,0x03,0x00,0x02,0x00,0x02,0x03,0x06,0x16,0x2b, +0x27,0x01,0x01,0x25,0x21,0x03,0x0a,0x01,0x36,0x01,0x36,0xfd,0xe7,0x01,0xc6,0xe3,0x3c,0x02,0x62,0xfd,0x9e,0x32,0x01,0xbf,0x00,0x02,0x00,0x00,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x05,0x03,0x01,0x00,0x02,0x32,0x2b,0x35,0x11,0x01,0x05,0x25,0x25,0x02,0x62,0xfd,0xd0,0x01,0xc0,0xfe,0x40,0x32,0x02, +0x6c,0xfe,0xca,0xe3,0xe3,0xe3,0x00,0x00,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x94,0x00,0x02,0x00,0x05,0x00,0x18,0x40,0x15,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x12,0x11,0x02,0x06,0x18,0x2b,0x25,0x01,0x21,0x01,0x13,0x21,0x01,0x2c,0xfe,0xca,0x02,0x6c,0xfe,0xca,0xe3,0xfe, +0x3a,0x32,0x02,0x62,0xfe,0x0f,0x01,0xbf,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x58,0x02,0x9e,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x04,0x03,0x02,0x00,0x02,0x32,0x2b,0x25,0x01,0x01,0x03,0x11,0x05,0x02,0x58,0xfd,0x9e,0x02,0x62,0x32,0xfe,0x40,0x32,0x01,0x36,0x01,0x36,0xfd,0xe7,0x01,0xc6,0xe3,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0x00,0xd2,0x02,0x62,0x01,0xfe,0x00,0x02,0x00,0x06,0xb3,0x01,0x00,0x01,0x32,0x2b,0x35,0x11,0x05,0x02,0x62,0xd2,0x01,0x2c,0x96,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0x00,0xd2,0x02,0x58,0x01,0xfe,0x00,0x02,0x00,0x06,0xb3,0x02,0x00,0x01,0x32,0x2b,0x2d,0x02,0x02,0x58,0xfd,0x9e,0x02,0x62,0xd2,0x96,0x96,0x00,0x00,0x02,0x00,0x00, +0x00,0xd2,0x02,0x62,0x01,0xfe,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x05,0x03,0x01,0x00,0x02,0x32,0x2b,0x35,0x11,0x05,0x05,0x25,0x25,0x02,0x62,0xfd,0xd0,0x01,0x8e,0xfe,0x72,0xd2,0x01,0x2c,0x96,0x56,0x56,0x56,0x00,0x00,0x00,0x00,0x02,0xff,0xf6,0x00,0xd2,0x02,0x58,0x01,0xfe,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x04,0x03,0x02, +0x00,0x02,0x32,0x2b,0x2d,0x02,0x07,0x35,0x05,0x02,0x58,0xfd,0x9e,0x02,0x62,0x32,0xfe,0x72,0xd2,0x96,0x96,0xec,0xac,0x56,0x00,0x01,0x00,0x96,0x00,0xd2,0x01,0xc2,0x02,0x08,0x00,0x02,0x00,0x15,0x40,0x12,0x01,0x01,0x00,0x4a,0x01,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x06,0x16,0x2b,0x37,0x13,0x13,0x96,0x96, +0x96,0xd2,0x01,0x36,0xfe,0xca,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0xd2,0x01,0xcc,0x01,0xfe,0x00,0x02,0x00,0x06,0xb3,0x01,0x00,0x01,0x32,0x2b,0x37,0x11,0x05,0x96,0x01,0x36,0xd2,0x01,0x2c,0x96,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0xc8,0x01,0xc2,0x01,0xfe,0x00,0x02,0x00,0x0f,0x40,0x0c,0x02,0x01,0x00,0x49,0x00,0x00,0x00,0x76, +0x10,0x01,0x06,0x17,0x2b,0x13,0x21,0x03,0x96,0x01,0x2c,0x96,0x01,0xfe,0xfe,0xca,0x00,0x01,0x00,0x8c,0x00,0xd2,0x01,0xc2,0x01,0xfe,0x00,0x02,0x00,0x06,0xb3,0x01,0x00,0x01,0x32,0x2b,0x01,0x11,0x25,0x01,0xc2,0xfe,0xca,0x01,0xfe,0xfe,0xd4,0x96,0x00,0x02,0x00,0x96,0x00,0xd2,0x01,0xc2,0x02,0x08,0x00,0x02,0x00,0x05,0x00,0x24, +0x40,0x21,0x05,0x01,0x02,0x01,0x4a,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x04,0x03,0x00,0x02,0x00,0x02,0x03,0x06,0x16,0x2b,0x37,0x13,0x13,0x27,0x33,0x27,0x96,0x96,0x96,0xec,0xac,0x56,0xd2,0x01,0x36,0xfe,0xca,0x28,0xb2,0x00,0x00,0x02,0x00,0x96,0x00,0xd2,0x01,0xcc, +0x01,0xfe,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x05,0x03,0x01,0x00,0x02,0x32,0x2b,0x37,0x11,0x05,0x05,0x37,0x27,0x96,0x01,0x36,0xfe,0xf2,0xb2,0xb2,0xd2,0x01,0x2c,0x96,0x56,0x56,0x56,0x00,0x02,0x00,0x96,0x00,0xc8,0x01,0xc2,0x01,0xfe,0x00,0x02,0x00,0x05,0x00,0x18,0x40,0x15,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01, +0x5f,0x00,0x01,0x00,0x01,0x4f,0x12,0x11,0x02,0x06,0x18,0x2b,0x25,0x03,0x21,0x07,0x37,0x23,0x01,0x2c,0x96,0x01,0x2c,0x96,0x56,0xac,0xc8,0x01,0x36,0xda,0xb2,0x00,0x00,0x02,0x00,0x8c,0x00,0xd2,0x01,0xc2,0x01,0xfe,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x04,0x03,0x02,0x00,0x02,0x32,0x2b,0x2d,0x02,0x07,0x35,0x07,0x01,0xc2,0xfe, +0xca,0x01,0x36,0x28,0xb2,0xd2,0x96,0x96,0xec,0xac,0x56,0x00,0x00,0x03,0xff,0xec,0xfe,0x70,0x02,0x6c,0x02,0x08,0x00,0x03,0x00,0x09,0x00,0x0f,0x00,0x45,0x40,0x42,0x0a,0x07,0x09,0x03,0x04,0x03,0x04,0x86,0x00,0x00,0x08,0x01,0x01,0x02,0x00,0x01,0x67,0x06,0x01,0x02,0x03,0x03,0x02,0x57,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01, +0x03,0x02,0x03,0x4f,0x0a,0x0a,0x04,0x04,0x00,0x00,0x0a,0x0f,0x0a,0x0f,0x0e,0x0d,0x0c,0x0b,0x04,0x09,0x04,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0b,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x01,0x11,0x21,0x15,0x23,0x11,0x21,0x11,0x23,0x35,0x21,0x11,0x14,0x02,0x80,0xfe,0xf2,0x01,0x0e,0xaa,0xfe,0xd4,0xaa,0x01,0x0e, +0x01,0xa4,0x64,0x64,0xfc,0xcc,0x02,0xd0,0x64,0xfd,0x94,0x02,0x6c,0x64,0xfd,0x30,0x00,0x02,0xff,0xec,0xfe,0x70,0x01,0xc2,0x02,0x08,0x00,0x05,0x00,0x0b,0x00,0x38,0x40,0x35,0x07,0x05,0x06,0x03,0x02,0x03,0x02,0x86,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x04,0x03,0x03,0x04,0x57,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x04, +0x03,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11,0x08,0x06,0x18,0x2b,0x01,0x11,0x21,0x35,0x21,0x11,0x21,0x11,0x23,0x35,0x21,0x11,0x01,0x5e,0xfe,0x8e,0x01,0xd6,0xfe,0xd4,0xaa,0x01,0x0e,0xfe,0x70,0x03,0x34,0x64,0xfc,0x68,0x02,0x6c,0x64,0xfd,0x30,0x00,0x00,0x02,0x00,0x96, +0xfe,0x70,0x02,0x6c,0x02,0x08,0x00,0x05,0x00,0x0b,0x00,0x38,0x40,0x35,0x07,0x05,0x06,0x03,0x02,0x04,0x02,0x86,0x00,0x00,0x00,0x01,0x03,0x00,0x01,0x67,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11, +0x08,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x21,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0x96,0x01,0xd6,0xfe,0x8e,0x64,0x01,0x0e,0xaa,0xfe,0x70,0x03,0x98,0x64,0xfc,0xcc,0x02,0xd0,0x64,0xfd,0x94,0x00,0x00,0x00,0x00,0x02,0xff,0xec,0x00,0xdc,0x02,0x6c,0x02,0x08,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x2c,0x00,0x00,0x04,0x01,0x01,0x02, +0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x14,0x02,0x80,0xfd,0x80,0x02,0x80,0x01,0xa4,0x64,0x64,0xc8,0x64,0x64,0x00,0x00,0x00, +0x00,0x03,0xff,0xec,0x00,0xdc,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x0b,0x00,0x0f,0x00,0x43,0x40,0x40,0x04,0x01,0x00,0x01,0x00,0x85,0x03,0x01,0x01,0x09,0x05,0x08,0x03,0x02,0x06,0x01,0x02,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x0a,0x01,0x07,0x06,0x07,0x4f,0x0c,0x0c,0x06,0x06,0x00,0x00,0x0c,0x0f,0x0c, +0x0f,0x0e,0x0d,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11,0x0b,0x06,0x18,0x2b,0x01,0x11,0x33,0x11,0x33,0x15,0x21,0x35,0x33,0x11,0x33,0x11,0x05,0x35,0x21,0x15,0x01,0x5e,0x64,0xaa,0xfd,0x80,0xaa,0x64,0xfe,0xf2,0x02,0x80,0x01,0xa4,0x02,0xbc,0xfd,0xa8,0x64,0x64,0x02,0x58,0xfd,0x44,0xc8,0x64,0x64, +0x00,0x02,0xff,0xec,0x00,0xdc,0x01,0xc2,0x04,0x60,0x00,0x05,0x00,0x0b,0x00,0x38,0x40,0x35,0x04,0x01,0x01,0x03,0x01,0x85,0x00,0x03,0x07,0x01,0x05,0x00,0x03,0x05,0x67,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x06,0x01,0x02,0x00,0x02,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05, +0x00,0x05,0x11,0x11,0x08,0x06,0x18,0x2b,0x27,0x35,0x21,0x11,0x33,0x11,0x25,0x35,0x33,0x11,0x33,0x11,0x14,0x01,0x72,0x64,0xfe,0x2a,0xaa,0x64,0xdc,0x64,0x03,0x20,0xfc,0x7c,0xc8,0x64,0x02,0x58,0xfd,0x44,0x00,0x02,0x00,0x96,0x00,0xdc,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x0b,0x00,0x38,0x40,0x35,0x03,0x01,0x00,0x04,0x00,0x85, +0x00,0x04,0x07,0x01,0x05,0x01,0x04,0x05,0x67,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x06,0x01,0x02,0x01,0x02,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11,0x08,0x06,0x18,0x2b,0x37,0x11,0x33,0x11,0x21,0x15,0x25,0x11,0x33,0x11,0x33,0x15,0x96,0x64,0x01,0x72, +0xfe,0xf2,0x64,0xaa,0xdc,0x03,0x84,0xfc,0xe0,0x64,0xc8,0x02,0xbc,0xfd,0xa8,0x64,0x00,0x02,0x00,0x96,0xfe,0x70,0x01,0xc2,0x04,0x60,0x00,0x03,0x00,0x07,0x00,0x22,0x40,0x1f,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x03,0x04,0x03,0x01,0x01,0x76,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06, +0x17,0x2b,0x01,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x01,0x5e,0x64,0xfe,0xd4,0x64,0xfe,0x70,0x05,0xf0,0xfa,0x10,0x05,0xf0,0xfa,0x10,0x00,0x00,0x00,0x04,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x59,0x40,0x56,0x03,0x01,0x01,0x00,0x01,0x85,0x0f,0x0b,0x0e,0x03,0x08,0x07,0x08,0x86, +0x04,0x01,0x00,0x0d,0x05,0x0c,0x03,0x02,0x06,0x00,0x02,0x67,0x0a,0x01,0x06,0x07,0x07,0x06,0x57,0x0a,0x01,0x06,0x06,0x07,0x5f,0x09,0x01,0x07,0x06,0x07,0x4f,0x12,0x12,0x0c,0x0c,0x06,0x06,0x00,0x00,0x12,0x17,0x12,0x17,0x16,0x15,0x14,0x13,0x0c,0x11,0x0c,0x11,0x10,0x0f,0x0e,0x0d,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00, +0x05,0x00,0x05,0x11,0x11,0x10,0x06,0x18,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x01,0x11,0x21,0x15,0x23,0x11,0x21,0x11,0x23,0x35,0x21,0x11,0x14,0xaa,0x64,0x64,0x64,0xaa,0xfe,0xf2,0x01,0x0e,0xaa,0xfe,0xd4,0xaa,0x01,0x0e,0x01,0xa4,0x64,0x02,0x58,0xfd,0x44,0x02,0xbc,0xfd,0xa8,0x64,0xfc,0xcc,0x02, +0xd0,0x64,0xfd,0x94,0x02,0x6c,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x03,0xff,0xec,0xfe,0x70,0x01,0xc2,0x04,0x60,0x00,0x03,0x00,0x09,0x00,0x0f,0x00,0x48,0x40,0x45,0x03,0x01,0x00,0x02,0x00,0x85,0x0a,0x07,0x08,0x03,0x01,0x05,0x01,0x86,0x00,0x02,0x09,0x01,0x04,0x06,0x02,0x04,0x67,0x00,0x06,0x05,0x05,0x06,0x57,0x00,0x06,0x06, +0x05,0x5f,0x00,0x05,0x06,0x05,0x4f,0x0a,0x0a,0x04,0x04,0x00,0x00,0x0a,0x0f,0x0a,0x0f,0x0e,0x0d,0x0c,0x0b,0x04,0x09,0x04,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0b,0x06,0x17,0x2b,0x01,0x11,0x33,0x11,0x01,0x35,0x33,0x11,0x33,0x11,0x03,0x11,0x23,0x35,0x21,0x11,0x01,0x5e,0x64,0xfe,0x2a,0xaa,0x64,0x64,0xaa,0x01, +0x0e,0xfe,0x70,0x05,0xf0,0xfa,0x10,0x03,0x34,0x64,0x02,0x58,0xfd,0x44,0xfc,0xcc,0x02,0x6c,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x03,0x00,0x96,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x03,0x00,0x09,0x00,0x0f,0x00,0x48,0x40,0x45,0x02,0x01,0x00,0x03,0x00,0x85,0x0a,0x07,0x08,0x03,0x01,0x06,0x01,0x86,0x00,0x03,0x09,0x01,0x04,0x05, +0x03,0x04,0x67,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05,0x06,0x5f,0x00,0x06,0x05,0x06,0x4f,0x0a,0x0a,0x04,0x04,0x00,0x00,0x0a,0x0f,0x0a,0x0f,0x0e,0x0d,0x0c,0x0b,0x04,0x09,0x04,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0b,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0x13,0x11,0x33,0x11,0x33,0x15,0x01,0x11,0x21,0x15, +0x23,0x11,0x96,0x64,0x64,0x64,0xaa,0xfe,0xf2,0x01,0x0e,0xaa,0xfe,0x70,0x05,0xf0,0xfa,0x10,0x03,0x34,0x02,0xbc,0xfd,0xa8,0x64,0xfc,0xcc,0x02,0xd0,0x64,0xfd,0x94,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x0b,0x00,0x2a,0x40,0x27,0x06,0x05,0x02,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01, +0x00,0x5f,0x04,0x02,0x02,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x23,0x11,0x23,0x11,0x96,0xaa,0x02,0x80,0xaa,0x64,0x64,0xfe,0x70,0x02,0xd0,0x64,0x64,0xfd,0x30,0x02,0xd0,0xfd,0x30,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0xc2, +0x01,0xa4,0x00,0x09,0x00,0x28,0x40,0x25,0x05,0x04,0x02,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x03,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x23,0x11,0x23,0x11,0x96,0xaa,0x01,0xd6,0x64,0x64,0xfe,0x70, +0x02,0xd0,0x64,0xfc,0xcc,0x02,0xd0,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0x00,0x96,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x09,0x00,0x28,0x40,0x25,0x05,0x04,0x02,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06, +0x1a,0x2b,0x13,0x11,0x21,0x15,0x23,0x11,0x23,0x11,0x23,0x11,0x96,0x01,0xd6,0xaa,0x64,0x64,0xfe,0x70,0x03,0x34,0x64,0xfd,0x30,0x02,0xd0,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00, +0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xc8,0xdc,0x02,0x80,0xdc,0xfe,0x70,0x02,0xd0,0x64,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x01,0xa4,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00, +0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0xc8,0xdc,0x01,0xa4,0xfe,0x70,0x02,0xd0,0x64,0xfc,0xcc,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x03,0xfc,0x00,0x09,0x00,0x2d,0x40,0x2a, +0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0xc8,0xdc,0x01,0x0e,0x64,0x32,0xfe,0x70,0x02,0xd0,0x64, +0x02,0x58,0xfd,0xa8,0xfc,0xcc,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x23,0x11, +0xc8,0x01,0xa4,0xdc,0xfe,0x70,0x03,0x34,0x64,0xfd,0x30,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2d,0x40,0x2a,0x00,0x01,0x00,0x01,0x85,0x05,0x01,0x04,0x03,0x04,0x86,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x00,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11, +0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x33,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0xc8,0x32,0x64,0x01,0x0e,0xdc,0xfe,0x70,0x03,0x34,0x02,0xbc,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03, +0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0xc8,0xdc,0x01,0x0e,0x64,0x01,0x0e,0xdc,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd,0x44,0x64,0xfd, +0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x21,0x35,0x21,0x15,0x21,0x11, +0xfa,0xfe,0xf2,0x02,0x80,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0xc8,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x01,0xd6,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06, +0x18,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x72,0xfe,0x70,0x02,0x9e,0xc8,0xfc,0x9a,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x09,0x00,0x2c,0x40,0x29,0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x03,0x01,0x00,0x01,0x00,0x4f, +0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x35,0x33,0x11,0x33,0x11,0x23,0x11,0xfa,0xfe,0xf2,0xdc,0xc8,0x32,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfc,0xae,0xfd,0x62,0x00,0x00,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01, +0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x21,0x11,0xfa,0x01,0x72,0xfe,0xf2,0xfe,0x70,0x03,0x66,0xc8,0xfd,0x62,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2c,0x40,0x29, +0x00,0x01,0x02,0x01,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x02,0x00,0x00,0x02,0x57,0x00,0x02,0x02,0x00,0x5f,0x03,0x01,0x00,0x02,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x23,0x11,0x33,0x11,0x33,0x15,0x21,0x11,0xfa,0x32,0xc8,0xdc,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0x03,0x52, +0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11, +0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x21,0x11,0xfa,0xfe,0xf2,0xdc,0xc8,0xdc,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x00,0x00,0x02,0xff,0xec,0xfe,0x70,0x02,0x6c,0x02,0x08,0x00,0x03,0x00,0x0b,0x00,0x39,0x40,0x36,0x07,0x01,0x05,0x02,0x05,0x86, +0x00,0x00,0x06,0x01,0x01,0x03,0x00,0x01,0x67,0x00,0x03,0x02,0x02,0x03,0x57,0x00,0x03,0x03,0x02,0x5f,0x04,0x01,0x02,0x03,0x02,0x4f,0x04,0x04,0x00,0x00,0x04,0x0b,0x04,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x01,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x02,0x80, +0xfe,0x8e,0xfe,0xf2,0x02,0x80,0xfe,0xf2,0x01,0xa4,0x64,0x64,0xfc,0xcc,0x02,0x6c,0x64,0x64,0xfd,0x94,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x02,0x08,0x00,0x09,0x00,0x2e,0x40,0x2b,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01, +0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0x01,0x72,0xfe,0x70,0x02,0x6c,0x64,0x64,0x64,0xfc,0x68,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x02,0x08,0x00,0x09,0x00,0x2e,0x40,0x2b,0x05,0x01,0x04,0x03, +0x04,0x86,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0xfa,0x01,0x72,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x03,0x98,0x64, +0x64,0x64,0xfd,0x94,0x00,0x02,0x00,0x4b,0x01,0x0e,0x02,0x0d,0x01,0xd6,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x01,0x35, +0x33,0x15,0x21,0x35,0x33,0x15,0x01,0x77,0x96,0xfe,0x3e,0x96,0x01,0x0e,0xc8,0xc8,0xc8,0xc8,0x00,0x00,0x00,0x02,0x00,0xc8,0xff,0x6f,0x01,0x90,0x03,0x69,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x03,0x02,0x85,0x05,0x01,0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04, +0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0xc8,0xc8,0xc8,0xc8,0x01,0xcc,0x01,0x9d,0xfe,0x63,0xfd,0xa3,0x01,0x9f,0xfe,0x61,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x01,0x90,0x01,0xa4,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xc8,0xc8,0xfe,0x70,0x03,0x34,0xfc,0xcc,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00, +0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xc8,0xdc,0x02,0x80,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0xc8,0xfd,0x62,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x01,0xd6,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01, +0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0xc8,0xdc,0x01,0xa4,0xfe,0x70,0x02,0x9e,0xc8,0xfc,0x9a,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01, +0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x23,0x11,0xc8,0x01,0xa4,0xdc,0xfe,0x70,0x03,0x66,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x01,0xd6,0x00,0x03,0x00,0x1e,0x40,0x1b, +0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x14,0x02,0x80,0x01,0x0e,0xc8,0xc8,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x01,0x5e,0x01,0xd6,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00, +0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x14,0x01,0x72,0x01,0x0e,0xc8,0xc8,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x01,0xd6,0x00,0x07,0x00,0x28,0x40,0x25,0x00,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x00, +0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x03,0x35,0x21,0x15,0x21,0x15,0x21,0x15,0x14,0x01,0x72,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0xc8,0x32,0x64,0x32,0x00,0x00,0x04,0x00,0x19,0x01,0x0e,0x02,0x3f,0x01,0xd6,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x42, +0x40,0x3f,0x06,0x04,0x02,0x03,0x00,0x01,0x01,0x00,0x57,0x06,0x04,0x02,0x03,0x00,0x00,0x01,0x5f,0x0b,0x07,0x0a,0x05,0x09,0x03,0x08,0x07,0x01,0x00,0x01,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x06, +0x17,0x2b,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0xdb,0x64,0xfd,0xda,0x64,0x32,0x64,0x32,0x64,0x01,0x0e,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0x00,0x00,0x00,0x04,0x00,0xc8,0xff,0x3d,0x01,0x90,0x03,0xa7,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x51,0x40,0x4e,0x00,0x00, +0x08,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x09,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x0a,0x01,0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x0b,0x01,0x07,0x06,0x07,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07, +0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x06,0x17,0x2b,0x13,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0x02,0xd0,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0x00,0x00,0x00,0x00,0x01,0x00,0xfa,0x01,0x0e,0x02,0x6c, +0x01,0xd6,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0xfa,0x01,0x72,0x01,0x0e,0xc8,0xc8,0x00,0x00,0x03,0x00,0x25,0x01,0x0e,0x02,0x33,0x01,0xd6,0x00,0x03,0x00,0x07,0x00,0x0b, +0x00,0x36,0x40,0x33,0x04,0x02,0x02,0x00,0x01,0x01,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x01,0x5f,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x00,0x01,0x4f,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15, +0x33,0x35,0x33,0x15,0x01,0xb5,0x7e,0xfd,0xf2,0x7e,0x4a,0x7e,0x01,0x0e,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0x00,0x03,0x00,0xc8,0xff,0x25,0x01,0x90,0x03,0xaa,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x3d,0x40,0x3a,0x00,0x00,0x01,0x00,0x85,0x06,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x03,0x02,0x85,0x07,0x01,0x03,0x04,0x03,0x85,0x00,0x04, +0x05,0x04,0x85,0x08,0x01,0x05,0x05,0x76,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0x02,0x64,0x01,0x46,0xfe,0xba,0xfe,0x52,0x01,0x65,0xfe, +0x9b,0xfe,0x6f,0x01,0x46,0xfe,0xba,0x00,0x00,0x01,0x00,0xc8,0x01,0x40,0x01,0x90,0x04,0x60,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xc8,0xc8,0x01,0x40,0x03,0x20,0xfc,0xe0,0x00,0x00,0x00,0x00,0x01,0xff,0xec, +0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x27,0x40,0x24,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x14,0xdc,0xc8,0xdc,0x01,0x0e,0xc8, +0x02,0x8a,0xfd,0x76,0xc8,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x01,0x90,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x03,0x01,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x03,0x35,0x33,0x11,0x33,0x11, +0x14,0xdc,0xc8,0x01,0x0e,0xc8,0x02,0x8a,0xfc,0xae,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x07,0x00,0x1f,0x40,0x1c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x00,0x85,0x04,0x01,0x03,0x03,0x76,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x23,0x11,0x33,0x11,0x23, +0x11,0xfa,0x32,0xc8,0x32,0xfe,0x70,0x02,0xd0,0x03,0x20,0xfc,0xe0,0xfd,0x30,0x00,0x00,0x01,0x00,0xc8,0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06, +0x18,0x2b,0x13,0x11,0x33,0x11,0x33,0x15,0xc8,0xc8,0xdc,0x01,0x0e,0x03,0x52,0xfd,0x76,0xc8,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xc8,0xc8,0xfe, +0x70,0x05,0xf0,0xfa,0x10,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11, +0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xdc,0xdc,0xc8,0xdc,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00, +0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0xc8,0xdc,0xdc,0xc8,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfa,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x07, +0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xc8,0xdc,0xdc,0xfe,0x70,0x05,0xf0,0xfd,0x76,0xc8,0xfd, +0x62,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0d,0x00,0x37,0x40,0x34,0x00,0x02,0x01,0x02,0x85,0x07,0x01,0x06,0x00,0x06,0x86,0x03,0x01,0x01,0x04,0x00,0x01,0x57,0x00,0x04,0x00,0x05,0x00,0x04,0x05,0x67,0x03,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11, +0x11,0x11,0x11,0x11,0x11,0x08,0x06,0x1c,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x11,0x33,0x15,0x33,0x15,0x23,0x11,0xc8,0xdc,0x01,0x0e,0x64,0x32,0xdc,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0x32,0x64,0xfd,0x30,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x09,0x00,0x2e,0x40,0x2b,0x05,0x01,0x04,0x00, +0x04,0x86,0x00,0x01,0x02,0x00,0x01,0x57,0x00,0x02,0x00,0x03,0x00,0x02,0x03,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x35,0x21,0x15,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x72,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0xc8, +0x32,0x64,0xfd,0x30,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x04,0x00,0x57,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x00,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b, +0x03,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x14,0x01,0x0e,0x64,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0xc8,0x02,0x8a,0xfd,0x44,0x64,0x32,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x00,0x01,0x03,0x00,0x01,0x57,0x00,0x03,0x00, +0x04,0x00,0x03,0x04,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x44,0x64,0xfd,0x30, +0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x09,0x00,0x2e,0x40,0x2b,0x05,0x01,0x04,0x03,0x04,0x86,0x00,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x23,0x35, +0x33,0x35,0x21,0x15,0x23,0x11,0xc8,0xdc,0xdc,0x01,0xa4,0xdc,0xfe,0x70,0x02,0xd0,0x64,0x32,0xc8,0xfd,0x62,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x02,0x03,0x02,0x85,0x00,0x03,0x01,0x04,0x03,0x57,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x03,0x03,0x04,0x5f, +0x05,0x01,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0xc8,0xdc,0xdc,0xc8,0xdc,0x01,0x0e,0x32,0x64,0x02,0xbc,0xfd,0x76,0xc8,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x02,0x03,0x02, +0x85,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x03,0x01,0x04,0x03,0x57,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xdc,0xdc,0xc8,0xdc,0xdc, +0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0d,0x00,0x36,0x40,0x33,0x00,0x02,0x01,0x02,0x85,0x07,0x01,0x06,0x00,0x06,0x86,0x00,0x01,0x03,0x00,0x01,0x57,0x00,0x03,0x00,0x04,0x00,0x03,0x04,0x67,0x00,0x01,0x01,0x00,0x5f,0x05,0x01,0x00,0x01,0x00,0x4f, +0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x08,0x06,0x1c,0x2b,0x13,0x11,0x21,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x23,0x11,0xfa,0xfe,0xf2,0xdc,0xc8,0xdc,0xdc,0x32,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x44,0x64,0x32,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x01,0xa4,0x00,0x0d, +0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x00,0x00,0x00,0x0d,0x00,0x0d,0x21,0x24,0x04,0x06,0x18,0x2b,0x13,0x11,0x34,0x26,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x11,0xfa,0x3a,0x69,0x48,0x23,0x23,0x66,0x96,0x53,0xfe,0x70,0x01, +0xe0,0x49,0x6c,0x3b,0x64,0x54,0x99,0x67,0xfe,0x20,0x00,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x0d,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x59,0x00,0x00,0x00,0x01,0x61,0x00,0x01,0x00,0x01,0x51,0x00,0x00,0x00,0x0d,0x00,0x0d,0x21,0x24,0x04,0x06,0x18,0x2b,0x13,0x11, +0x34,0x36,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x06,0x15,0x11,0xfa,0x53,0x97,0x65,0x23,0x23,0x47,0x6a,0x3a,0xfe,0x70,0x01,0xe0,0x67,0x99,0x54,0x64,0x3b,0x6c,0x49,0xfe,0x20,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x40,0x01,0x5e,0x04,0x60,0x00,0x0d,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x59,0x00, +0x00,0x00,0x02,0x61,0x03,0x01,0x02,0x00,0x02,0x51,0x00,0x00,0x00,0x0d,0x00,0x0c,0x14,0x21,0x04,0x06,0x18,0x2b,0x03,0x35,0x33,0x32,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x06,0x23,0x14,0x23,0x48,0x69,0x3a,0x64,0x53,0x96,0x66,0x01,0x40,0x64,0x3b,0x6c,0x49,0x01,0xcc,0xfe,0x34,0x67,0x99,0x54,0x00,0x00,0x00,0x01,0x00,0xfa, +0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x0d,0x00,0x26,0x40,0x23,0x00,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x03,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x0c,0x0a,0x06,0x05,0x00,0x0d,0x01,0x0d,0x04,0x06,0x16,0x2b,0x01,0x22,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x16,0x33,0x33,0x15,0x02,0x49, +0x65,0x97,0x53,0x64,0x3a,0x6a,0x47,0x23,0x01,0x40,0x54,0x99,0x67,0x01,0xcc,0xfe,0x34,0x49,0x6c,0x3b,0x64,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xff,0x60,0x02,0x6c,0x03,0x70,0x00,0x0f,0x00,0x28,0x40,0x25,0x0e,0x0b,0x0a,0x09,0x06,0x03,0x02,0x01,0x08,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x04,0x03,0x02,0x02,0x02, +0x76,0x00,0x00,0x00,0x0f,0x00,0x0f,0x14,0x12,0x14,0x05,0x06,0x19,0x2b,0x07,0x35,0x01,0x01,0x35,0x33,0x13,0x13,0x33,0x15,0x01,0x01,0x15,0x23,0x03,0x03,0x14,0x01,0x0d,0xfe,0xf3,0x50,0xf0,0xf0,0x50,0xfe,0xf3,0x01,0x0d,0x50,0xf0,0xf0,0xa0,0x28,0x01,0xe0,0x01,0xe0,0x28,0xfe,0x57,0x01,0xa9,0x28,0xfe,0x20,0xfe,0x20,0x28,0x01, +0xa9,0xfe,0x57,0x00,0x00,0x01,0xff,0xec,0xff,0x60,0x02,0x6c,0x03,0x70,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x05,0x01,0x35,0x33,0x01,0x15,0x02,0x1c,0xfd,0xd0,0x50,0x02,0x30,0xa0,0x03,0xe8, +0x28,0xfc,0x18,0x28,0x00,0x01,0xff,0xec,0xff,0x60,0x02,0x6c,0x03,0x70,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x07,0x35,0x01,0x33,0x15,0x01,0x14,0x02,0x30,0x50,0xfd,0xd0,0xa0,0x28,0x03,0xe8, +0x28,0xfc,0x18,0x00,0x00,0x02,0x00,0x46,0x01,0x40,0x02,0x12,0x01,0xa4,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x01,0x35, +0x33,0x15,0x21,0x35,0x33,0x15,0x01,0x72,0xa0,0xfe,0x34,0xa0,0x01,0x40,0x64,0x64,0x64,0x64,0x00,0x00,0x00,0x02,0x00,0xfa,0xff,0x5b,0x01,0x5e,0x03,0x7d,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x03,0x02,0x85,0x05,0x01,0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04, +0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0xfa,0x64,0x64,0x64,0x01,0xb8,0x01,0xc5,0xfe,0x3b,0xfd,0xa3,0x01,0xc7,0xfe,0x39,0x00,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x01,0x5e,0x01,0xa4,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xfa,0x64,0xfe,0x70,0x03,0x34,0xfc,0xcc,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00, +0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x02,0x80,0xfe,0xf2,0xfe,0x70,0x02,0xd0,0x64,0x64,0xfd,0x30,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x01,0xa4,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01, +0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x72,0xfe,0x70,0x02,0xd0,0x64,0xfc,0xcc,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01, +0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x21,0x11,0xfa,0x01,0x72,0xfe,0xf2,0xfe,0x70,0x03,0x34,0x64,0xfd,0x30,0x00,0x01,0xff,0xec,0x01,0x40,0x02,0x6c,0x01,0xa4,0x00,0x03,0x00,0x1e,0x40,0x1b, +0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x14,0x02,0x80,0x01,0x40,0x64,0x64,0x00,0x00,0x01,0xff,0xec,0x01,0x40,0x01,0x5e,0x01,0xa4,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00, +0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x14,0x01,0x72,0x01,0x40,0x64,0x64,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x01,0xd6,0x00,0x07,0x00,0x28,0x40,0x25,0x00,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x02, +0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x35,0x21,0x35,0x21,0x35,0x21,0x15,0xfa,0xfe,0xf2,0x01,0x0e,0x01,0x72,0x01,0x0e,0x32,0x64,0x32,0xc8,0x00,0x00,0x04,0x00,0x19,0x01,0x40,0x02,0x3f,0x01,0xa4,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x42, +0x40,0x3f,0x06,0x04,0x02,0x03,0x00,0x01,0x01,0x00,0x57,0x06,0x04,0x02,0x03,0x00,0x00,0x01,0x5f,0x0b,0x07,0x0a,0x05,0x09,0x03,0x08,0x07,0x01,0x00,0x01,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x06, +0x17,0x2b,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0xdb,0x64,0xfd,0xda,0x64,0x32,0x64,0x32,0x64,0x01,0x40,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x00,0x00,0x00,0x04,0x00,0xfa,0xff,0x3d,0x01,0x5e,0x03,0xa7,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x51,0x40,0x4e,0x00,0x00, +0x08,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x09,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x0a,0x01,0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x0b,0x01,0x07,0x06,0x07,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07, +0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x06,0x17,0x2b,0x13,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0xfa,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x02,0xd0,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0x00,0x00,0x00,0x00,0x01,0x00,0xfa,0x01,0x40,0x02,0x6c, +0x01,0xa4,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0xfa,0x01,0x72,0x01,0x40,0x64,0x64,0x00,0x00,0x03,0x00,0x25,0x01,0x40,0x02,0x33,0x01,0xa4,0x00,0x03,0x00,0x07,0x00,0x0b, +0x00,0x36,0x40,0x33,0x04,0x02,0x02,0x00,0x01,0x01,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x01,0x5f,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x00,0x01,0x4f,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15, +0x33,0x35,0x33,0x15,0x01,0xb5,0x7e,0xfd,0xf2,0x7e,0x4a,0x7e,0x01,0x40,0x64,0x64,0x64,0x64,0x64,0x64,0x00,0x03,0x00,0xfa,0xff,0x25,0x01,0x5e,0x03,0xaa,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x3d,0x40,0x3a,0x00,0x00,0x01,0x00,0x85,0x06,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x03,0x02,0x85,0x07,0x01,0x03,0x04,0x03,0x85,0x00,0x04, +0x05,0x04,0x85,0x08,0x01,0x05,0x05,0x76,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0xfa,0x64,0x64,0x64,0x64,0x64,0x02,0x58,0x01,0x52,0xfe,0xae,0xfe,0x69,0x01,0x4e,0xfe, +0xb2,0xfe,0x64,0x01,0x51,0xfe,0xaf,0x00,0x00,0x01,0x00,0xfa,0x01,0x40,0x01,0x5e,0x04,0x60,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xfa,0x64,0x01,0x40,0x03,0x20,0xfc,0xe0,0x00,0x00,0x00,0x00,0x01,0x00,0xc8, +0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x07,0x00,0x1f,0x40,0x1c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x00,0x85,0x04,0x01,0x03,0x03,0x76,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0xc8,0x32,0x64,0x32,0xfe,0x70,0x03,0x34,0x02,0xbc,0xfd,0x44,0xfc,0xcc,0x00, +0x00,0x01,0xff,0xec,0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x27,0x40,0x24,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x03,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x14,0x01,0x0e, +0x64,0x01,0x0e,0x01,0x40,0x64,0x02,0xbc,0xfd,0x44,0x64,0x00,0x00,0x01,0xff,0xec,0x01,0x40,0x01,0x5e,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x03,0x01,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x03,0x35, +0x21,0x11,0x33,0x11,0x14,0x01,0x0e,0x64,0x01,0x40,0x64,0x02,0xbc,0xfc,0xe0,0x00,0x00,0x01,0x00,0xfa,0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06, +0x18,0x2b,0x13,0x11,0x33,0x11,0x21,0x15,0xfa,0x64,0x01,0x0e,0x01,0x40,0x03,0x20,0xfd,0x44,0x64,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x01,0x5e,0x04,0x60,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xfa,0x64,0xfe, +0x70,0x05,0xf0,0xfa,0x10,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11, +0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03, +0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfa,0x10,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c, +0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70, +0x05,0xf0,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0d,0x00,0x37,0x40,0x34,0x00,0x03,0x02,0x03,0x85,0x07,0x01,0x06,0x05,0x06,0x86,0x04,0x01,0x02,0x01,0x05,0x02,0x57,0x00,0x01,0x00,0x00,0x05,0x01,0x00,0x67,0x04,0x01,0x02,0x02,0x05,0x5f,0x00,0x05,0x02,0x05,0x4f,0x00,0x00,0x00, +0x0d,0x00,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x08,0x06,0x1c,0x2b,0x13,0x11,0x23,0x35,0x33,0x35,0x33,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0xc8,0xdc,0xdc,0x32,0x64,0x01,0x0e,0xdc,0xfe,0x70,0x02,0xd0,0x64,0x32,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x09,0x00,0x2e,0x40,0x2b, +0x05,0x01,0x04,0x03,0x04,0x86,0x00,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x35,0x21,0x35,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x01,0x72,0xfe,0xf2,0xfe, +0x70,0x02,0xd0,0x64,0x32,0xc8,0xfd,0x62,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x02,0x03,0x02,0x85,0x00,0x03,0x01,0x04,0x03,0x57,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11, +0x06,0x06,0x1a,0x2b,0x13,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0x01,0x0e,0x01,0x0e,0x32,0x64,0x02,0xbc,0xfd,0x76,0xc8,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x02,0x03,0x02,0x85,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x03,0x01,0x04,0x03, +0x57,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd, +0x76,0xc8,0xfd,0x62,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x09,0x00,0x2e,0x40,0x2b,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x01,0x02,0x00,0x01,0x57,0x00,0x02,0x00,0x03,0x00,0x02,0x03,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b, +0x13,0x11,0x23,0x35,0x21,0x15,0x33,0x15,0x23,0x11,0xc8,0xdc,0x01,0xa4,0xdc,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0x32,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x04,0x00,0x57,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00, +0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x00,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x14,0xdc,0xc8,0xdc,0xdc,0x01,0x0e,0xc8,0x02,0x8a,0xfd,0x44,0x64,0x32,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31, +0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x00,0x01,0x03,0x00,0x01,0x57,0x00,0x03,0x00,0x04,0x00,0x03,0x04,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xdc, +0xdc,0xc8,0xdc,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x44,0x64,0xfd,0x30,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0d,0x00,0x36,0x40,0x33,0x00,0x03,0x04,0x03,0x85,0x07,0x01,0x06,0x00,0x06,0x86,0x00,0x04,0x02,0x00,0x04,0x57,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x04,0x04,0x00,0x5f,0x05,0x01, +0x00,0x04,0x00,0x4f,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x08,0x06,0x1c,0x2b,0x13,0x11,0x23,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x21,0x11,0xfa,0x32,0xdc,0xdc,0xc8,0xdc,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0x32,0x64,0x02,0xbc,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0x01,0x40,0x02,0x6c, +0x04,0x60,0x00,0x0b,0x00,0x2c,0x40,0x29,0x03,0x01,0x01,0x00,0x01,0x85,0x04,0x02,0x02,0x00,0x05,0x05,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x14,0xaa, +0x64,0x64,0x64,0xaa,0x01,0x40,0x64,0x02,0xbc,0xfd,0x44,0x02,0xbc,0xfd,0x44,0x64,0x00,0x01,0xff,0xec,0x01,0x40,0x01,0xc2,0x04,0x60,0x00,0x09,0x00,0x29,0x40,0x26,0x03,0x01,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x04,0x04,0x00,0x57,0x02,0x01,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x00,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11, +0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x14,0xaa,0x64,0x64,0x64,0x01,0x40,0x64,0x02,0xbc,0xfd,0x44,0x02,0xbc,0xfc,0xe0,0x00,0x00,0x00,0x00,0x01,0x00,0x96,0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x29,0x40,0x26,0x02,0x01,0x00,0x01,0x00,0x85,0x03,0x01,0x01,0x04,0x04,0x01, +0x57,0x03,0x01,0x01,0x01,0x04,0x5f,0x05,0x01,0x04,0x01,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x96,0x64,0x64,0x64,0xaa,0x01,0x40,0x03,0x20,0xfd,0x44,0x02,0xbc,0xfd,0x44,0x64,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c, +0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x21, +0x11,0xfa,0xfe,0xf2,0xdc,0xc8,0xdc,0xfe,0xf2,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x27,0x40,0x24,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f, +0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x14,0xdc,0xc8,0xdc,0x01,0x40,0x64,0x02,0xbc,0xfd,0x44,0x64,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x09,0x00,0x2c,0x40,0x29,0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x00, +0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x03,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x35,0x33,0x11,0x33,0x11,0x23,0x11,0xfa,0xfe,0xf2,0xdc,0xc8,0x32,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfc,0xe0,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec, +0x01,0x40,0x01,0x90,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x03,0x01,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x14,0xdc,0xc8,0x01,0x40,0x64,0x02,0xbc,0xfc,0xe0,0x00,0x00, +0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2c,0x40,0x29,0x00,0x01,0x02,0x01,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x02,0x00,0x00,0x02,0x57,0x00,0x02,0x02,0x00,0x5f,0x03,0x01,0x00,0x02,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x23,0x11,0x33,0x11, +0x33,0x15,0x21,0x11,0xfa,0x32,0xc8,0xdc,0xfe,0xf2,0xfe,0x70,0x02,0xd0,0x03,0x20,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0x00,0xc8,0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00, +0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x33,0x11,0x33,0x15,0xc8,0xc8,0xdc,0x01,0x40,0x03,0x20,0xfd,0x44,0x64,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01, +0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0xc8,0xdc,0x01,0x0e,0x64,0x01,0x0e,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x00,0x00,0x01,0xff,0xec, +0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x27,0x40,0x24,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x03,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x14,0x01,0x0e,0x64,0x01,0x0e,0x01, +0x0e,0xc8,0x02,0x8a,0xfd,0x76,0xc8,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x09,0x00,0x2d,0x40,0x2a,0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06, +0x06,0x1a,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0xc8,0xdc,0x01,0x0e,0x64,0x32,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0xfc,0x9a,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x01,0x5e,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f, +0x03,0x01,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x03,0x35,0x21,0x11,0x33,0x11,0x14,0x01,0x0e,0x64,0x01,0x0e,0xc8,0x02,0x8a,0xfc,0xae,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2d,0x40,0x2a,0x00,0x01,0x00,0x01,0x85,0x05,0x01,0x04,0x03,0x04,0x86,0x02, +0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x00,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x33,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0xc8,0x32,0x64,0x01,0x0e,0xdc,0xfe,0x70,0x03,0x66,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x00,0x01,0x00,0xfa, +0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x33,0x11,0x21,0x15,0xfa,0x64,0x01,0x0e,0x01,0x0e,0x03,0x52,0xfd,0x76,0xc8,0x00, +0x00,0x02,0xff,0xec,0x00,0xdc,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x0b,0x00,0x37,0x40,0x34,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07, +0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x03,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x05,0x35,0x21,0x15,0x14,0x01,0x0e,0x64,0x01,0x0e,0xfd,0x80,0x02,0x80,0x01,0xa4,0x64,0x02,0x58,0xfd,0xa8,0x64,0xc8,0x64,0x64,0x00,0x01,0xff,0xec,0x00,0xdc,0x01,0x5e,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x03,0x02,0x03,0x85,0x00,0x02,0x00, +0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x04,0x04,0x00,0x57,0x00,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x00,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x27,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x14,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0x64,0xdc,0x64,0x64,0x64,0x02,0x58,0xfc,0x7c,0x00,0x00, +0x00,0x01,0x00,0xfa,0x00,0xdc,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x37,0x11,0x33,0x11, +0x21,0x15,0x21,0x15,0x21,0x15,0xfa,0x64,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0xdc,0x03,0x84,0xfd,0xa8,0x64,0x64,0x64,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x13,0x00,0x38,0x40,0x35,0x04,0x01,0x02,0x01,0x02,0x85,0x0a,0x09,0x02,0x07,0x00,0x07,0x86,0x05,0x03,0x02,0x01,0x00,0x00,0x01,0x57,0x05,0x03,0x02, +0x01,0x01,0x00,0x5f,0x08,0x06,0x02,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x06,0x1f,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x11,0x96,0xaa,0xaa,0x64,0x64,0x64,0xaa,0xaa,0x64,0x64,0xfe,0x70,0x02,0xd0, +0x64,0x02,0xbc,0xfd,0x44,0x02,0xbc,0xfd,0x44,0x64,0xfd,0x30,0x02,0xd0,0xfd,0x30,0x00,0x02,0xff,0xec,0xfe,0x70,0x01,0xc2,0x04,0x60,0x00,0x07,0x00,0x0b,0x00,0x35,0x40,0x32,0x04,0x01,0x02,0x01,0x02,0x85,0x07,0x05,0x06,0x03,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f, +0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x96,0xaa,0xaa,0x64,0x64,0x64,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfa,0x10,0x05,0xf0,0xfa,0x10,0x00,0x02,0x00,0x96,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x07, +0x00,0x0b,0x00,0x35,0x40,0x32,0x04,0x01,0x00,0x01,0x00,0x85,0x07,0x05,0x06,0x03,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x01,0x11,0x33,0x11,0x33,0x15,0x23, +0x11,0x21,0x11,0x33,0x11,0x01,0x5e,0x64,0xaa,0xaa,0xfe,0xd4,0x64,0xfe,0x70,0x05,0xf0,0xfd,0x44,0x64,0xfd,0x30,0x05,0xf0,0xfa,0x10,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01, +0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xdc,0xdc,0xc8,0xdc,0xdc,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90, +0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0xc8,0xdc,0xdc,0xc8,0xfe,0x70,0x02,0xd0, +0x64,0x02,0xbc,0xfa,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b, +0x13,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xc8,0xdc,0xdc,0xfe,0x70,0x05,0xf0,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f, +0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e, +0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0xfe,0x70, +0x02,0x9e,0xc8,0x02,0x8a,0xfa,0x10,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b, +0x13,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x05,0xf0,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x13,0x00,0x3d,0x40,0x3a,0x00,0x04,0x03,0x04,0x85,0x0a,0x01,0x09,0x00,0x09,0x86,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x07,0x01,0x01, +0x00,0x00,0x01,0x57,0x07,0x01,0x01,0x01,0x00,0x5f,0x08,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x06,0x1f,0x2b,0x13,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0x01,0x0e, +0x64,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0x6c,0x64,0x64,0x64,0x02,0x58,0xfd,0xa8,0x64,0x64,0x64,0xfd,0x94,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x04,0x03,0x04,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x67,0x00, +0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0x64,0xfe,0x70,0x02,0x6c,0x64,0x64,0x64,0x02,0x58,0xfa,0x10,0x00, +0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x00,0x01,0x00,0x85,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06, +0x1b,0x2b,0x13,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0xfa,0x64,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x05,0xf0,0xfd,0xa8,0x64,0x64,0x64,0xfd,0x94,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0xda,0x00,0x0b,0x00,0x2d,0x40,0x2a,0x00,0x02,0x03,0x01,0x01,0x00,0x02,0x01,0x67,0x04,0x01,0x00, +0x05,0x05,0x00,0x57,0x04,0x01,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x31,0x35,0x21,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x21,0x15,0x01,0x13,0xfe,0xed,0x02,0x58,0xfe,0xed,0x01,0x13,0x2d,0x02,0x80,0x2d,0x2d,0xfd,0x80,0x2d,0x00,0x00,0x00, +0x00,0x02,0x00,0x44,0xff,0xf5,0x02,0x2e,0x02,0x30,0x00,0x14,0x00,0x22,0x00,0x4d,0x40,0x4a,0x11,0x0e,0x0a,0x03,0x04,0x05,0x01,0x4c,0x00,0x02,0x01,0x05,0x01,0x02,0x05,0x80,0x00,0x03,0x04,0x00,0x04,0x03,0x00,0x80,0x00,0x01,0x00,0x05,0x04,0x01,0x05,0x69,0x07,0x01,0x04,0x03,0x00,0x04,0x59,0x07,0x01,0x04,0x04,0x00,0x61,0x06, +0x01,0x00,0x04,0x00,0x51,0x16,0x15,0x01,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x10,0x0f,0x0d,0x0c,0x08,0x06,0x00,0x14,0x01,0x14,0x08,0x06,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x37,0x33,0x03,0x13,0x23,0x27,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16, +0xf9,0x50,0x65,0x65,0x50,0x45,0x59,0x05,0x02,0x36,0x53,0x65,0x6c,0x55,0x3c,0x01,0x06,0x59,0x3f,0x2c,0x34,0x34,0x2c,0x2c,0x34,0x34,0x0b,0x67,0x57,0xbf,0x57,0x67,0x58,0x48,0x96,0xfe,0xf5,0xfe,0xe5,0xa6,0x50,0x61,0x4e,0x3c,0x34,0xbf,0x34,0x3c,0x3c,0x34,0xbf,0x34,0x3c,0x00,0x00,0x00,0x00,0x03,0x00,0x44,0xff,0x5b,0x02,0x2e, +0x02,0x30,0x00,0x14,0x00,0x22,0x00,0x26,0x00,0x5d,0x40,0x5a,0x11,0x0e,0x0a,0x03,0x04,0x05,0x01,0x4c,0x00,0x02,0x01,0x05,0x01,0x02,0x05,0x80,0x00,0x03,0x04,0x00,0x04,0x03,0x00,0x80,0x00,0x01,0x00,0x05,0x04,0x01,0x05,0x69,0x09,0x01,0x04,0x08,0x01,0x00,0x06,0x04,0x00,0x69,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07, +0x5f,0x0a,0x01,0x07,0x06,0x07,0x4f,0x23,0x23,0x16,0x15,0x01,0x00,0x23,0x26,0x23,0x26,0x25,0x24,0x1d,0x1b,0x15,0x22,0x16,0x22,0x10,0x0f,0x0d,0x0c,0x08,0x06,0x00,0x14,0x01,0x14,0x0b,0x06,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x37,0x33,0x03,0x13,0x23,0x27,0x23,0x06,0x06,0x27,0x32,0x36,0x35, +0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x07,0x35,0x21,0x15,0xf9,0x50,0x65,0x65,0x50,0x45,0x59,0x05,0x02,0x36,0x53,0x65,0x6c,0x55,0x3c,0x01,0x06,0x59,0x3f,0x2c,0x34,0x34,0x2c,0x2c,0x34,0x34,0x87,0x01,0xe0,0x0b,0x67,0x57,0xbf,0x57,0x67,0x58,0x48,0x96,0xfe,0xf5,0xfe,0xe5,0xa6,0x50,0x61,0x4e,0x3c,0x34,0xbf,0x34, +0x3c,0x3c,0x34,0xbf,0x34,0x3c,0xe8,0x4b,0x4b,0x00,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x92,0x02,0x1c,0x03,0x3e,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x01,0x00,0x01,0x85,0x00,0x04,0x03,0x04,0x86,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b, +0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x35,0x33,0x03,0x33,0x13,0x33,0x15,0x23,0x13,0x23,0x03,0x3c,0xbd,0xae,0x5f,0xae,0xc4,0xa6,0x97,0x5f,0x97,0x01,0x22,0x50,0x01,0xcc,0xfe,0x34,0x50,0xfe,0x70,0x01,0x90,0x00,0xff,0xff,0xff,0xf6,0xff,0x92,0x02,0x62,0x03,0x3e,0x02,0x26,0x03,0x3e,0x00,0x00,0x00,0x06,0x04,0xbb, +0x00,0x00,0x00,0x00,0x00,0x04,0xff,0xf6,0x00,0x32,0x02,0x62,0x03,0xb1,0x00,0x0b,0x00,0x17,0x00,0x27,0x00,0x37,0x00,0x4d,0x40,0x4a,0x03,0x01,0x01,0x09,0x02,0x08,0x03,0x00,0x05,0x01,0x00,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x0b,0x01,0x06,0x04,0x04,0x06,0x59,0x0b,0x01,0x06,0x06,0x04,0x61,0x0a,0x01,0x04,0x06,0x04, +0x51,0x29,0x28,0x19,0x18,0x0d,0x0c,0x01,0x00,0x31,0x2f,0x28,0x37,0x29,0x37,0x21,0x1f,0x18,0x27,0x19,0x27,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x22,0x26, +0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x9b,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x52,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76, +0x4a,0x4a,0x76,0x44,0x44,0x76,0x03,0x31,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfd,0x01,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x00,0x00,0x04,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f, +0x00,0x1f,0x00,0x2b,0x00,0x37,0x00,0x53,0x40,0x50,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x0b,0x01,0x06,0x0a,0x01,0x04,0x02,0x06,0x04,0x69,0x09,0x01,0x02,0x00,0x00,0x02,0x59,0x09,0x01,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x02,0x00,0x51,0x2d,0x2c,0x21,0x20,0x11,0x10,0x01,0x00,0x33, +0x31,0x2c,0x37,0x2d,0x37,0x27,0x25,0x20,0x2b,0x21,0x2b,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x0c,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x35,0x34, +0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x36,0x49,0x49,0x36,0x36,0x49,0x49,0x36,0x23,0x2e,0x2e,0x23,0x22,0x2f,0x2f,0x32,0x51,0x8d,0x58, +0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x85,0x49,0x36,0x36,0x49,0x49,0x36,0x36,0x49,0x2e,0x2f,0x22,0x23,0x2e,0x2e,0x23,0x22,0x2f,0x00,0x03,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x29,0x00,0x4b,0x40,0x48,0x24,0x01,0x04,0x03, +0x29,0x28,0x27,0x21,0x04,0x02,0x04,0x02,0x4c,0x05,0x01,0x04,0x03,0x02,0x03,0x04,0x02,0x80,0x00,0x01,0x00,0x03,0x04,0x01,0x03,0x69,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x02,0x00,0x51,0x11,0x10,0x01,0x00,0x26,0x25,0x23,0x22,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01, +0x0f,0x08,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x37,0x27,0x33,0x37,0x17,0x33,0x07,0x17,0x27,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44, +0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x01,0x1e,0x4d,0x5b,0x1d,0x1d,0x5b,0x4d,0x1e,0x49,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x95,0x63,0x36,0x5d,0x5d,0x36,0x63,0x43,0x00,0x03,0xff,0xf6,0xff,0x92,0x02,0x62,0x03,0x3e,0x00,0x15, +0x00,0x1e,0x00,0x27,0x00,0x24,0x40,0x21,0x24,0x23,0x1b,0x1a,0x14,0x0c,0x09,0x01,0x08,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x15,0x00,0x15,0x1a,0x03,0x06,0x17,0x2b,0x05,0x35,0x2e,0x02,0x35,0x34,0x36,0x36,0x37,0x35,0x33,0x15,0x1e,0x02,0x15,0x14,0x06,0x06,0x07,0x15,0x01,0x14, +0x16,0x16,0x17,0x11,0x0e,0x02,0x05,0x34,0x26,0x26,0x27,0x11,0x3e,0x02,0x01,0x13,0x52,0x81,0x4a,0x4a,0x81,0x52,0x32,0x52,0x81,0x4a,0x4a,0x81,0x52,0xfe,0xe3,0x3d,0x6a,0x44,0x44,0x6a,0x3d,0x02,0x08,0x3d,0x6a,0x44,0x44,0x6a,0x3d,0x6e,0xa1,0x06,0x53,0x88,0x54,0x54,0x88,0x53,0x06,0xa1,0xa1,0x06,0x53,0x88,0x54,0x54,0x88,0x53, +0x06,0xa1,0x01,0xd6,0x46,0x71,0x46,0x06,0x02,0x06,0x06,0x46,0x71,0x46,0x46,0x71,0x46,0x06,0xfd,0xfa,0x06,0x46,0x71,0x00,0x00,0x03,0xff,0xf6,0xff,0x5b,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x23,0x00,0x41,0x40,0x3e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x07,0x01,0x02,0x06,0x01,0x00,0x04,0x02,0x00,0x69,0x00,0x04, +0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x04,0x05,0x4f,0x20,0x20,0x11,0x10,0x01,0x00,0x20,0x23,0x20,0x23,0x22,0x21,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35, +0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x03,0x35,0x21,0x15,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0xce,0x02,0x30,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44, +0x76,0x4a,0x4a,0x76,0x44,0xfe,0xf7,0x4b,0x4b,0x00,0x00,0x00,0x00,0x02,0x00,0x8c,0x00,0x68,0x01,0xcc,0x02,0x26,0x00,0x03,0x00,0x07,0x00,0x33,0x40,0x30,0x00,0x02,0x01,0x03,0x01,0x02,0x03,0x80,0x05,0x01,0x03,0x03,0x84,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x04,0x01,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00, +0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0x01,0x13,0x33,0x03,0x8c,0x01,0x40,0xfe,0xd9,0x50,0x82,0x82,0x01,0xdb,0x4b,0x4b,0xfe,0x8d,0x01,0x37,0xfe,0xc9,0x00,0x00,0x00,0x00,0x04,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb1,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x24,0x00,0x42, +0x40,0x3f,0x09,0x01,0x05,0x06,0x05,0x86,0x03,0x01,0x01,0x08,0x02,0x07,0x03,0x00,0x04,0x01,0x00,0x69,0x00,0x04,0x06,0x06,0x04,0x57,0x00,0x04,0x04,0x06,0x5f,0x00,0x06,0x04,0x06,0x4f,0x18,0x18,0x0d,0x0c,0x01,0x00,0x21,0x20,0x18,0x1b,0x18,0x1b,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0a,0x06, +0x16,0x2b,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x33,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x03,0x21,0x03,0x27,0x36,0x36,0x37,0x13,0x21,0x13,0x16,0x16,0xbd,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xc1,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xca,0xbc,0x01,0xf4,0xbd,0x3c,0x04,0x13,0x0d, +0x65,0xfe,0xec,0x69,0x0d,0x11,0x03,0x31,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfc,0xcf,0x02,0xda,0xfd,0x26,0x46,0x17,0x59,0x34,0x01,0xa0,0xfe,0x5f,0x34,0x58,0x00,0x03,0x00,0x32,0xff,0x92,0x02,0x26,0x03,0x3e,0x00,0x0b,0x00,0x0e,0x00,0x11,0x00,0x42,0x40,0x3f,0x0f,0x0c,0x02,0x00, +0x06,0x01,0x4c,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x00,0x06,0x05,0x06,0x00,0x05,0x80,0x08,0x01,0x05,0x05,0x84,0x03,0x01,0x01,0x06,0x06,0x01,0x57,0x03,0x01,0x01,0x01,0x06,0x5f,0x07,0x01,0x06,0x01,0x06,0x4f,0x00,0x00,0x11,0x10,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x09,0x06,0x1b,0x2b,0x05,0x35,0x23,0x03, +0x33,0x35,0x33,0x15,0x33,0x03,0x23,0x15,0x03,0x03,0x23,0x13,0x13,0x23,0x01,0x13,0x25,0xbc,0xe1,0x32,0xe1,0xbd,0x24,0x2d,0x04,0x72,0xa2,0x72,0x72,0x6e,0x6e,0x02,0xda,0x64,0x64,0xfd,0x26,0x6e,0x01,0x21,0x01,0xd7,0xfe,0x29,0x01,0xd7,0x00,0x00,0x00,0x03,0x00,0x32,0xff,0x92,0x02,0x26,0x03,0x3e,0x00,0x0b,0x00,0x0e,0x00,0x11, +0x00,0x40,0x40,0x3d,0x11,0x0e,0x02,0x06,0x01,0x01,0x4c,0x00,0x02,0x01,0x02,0x85,0x03,0x01,0x01,0x06,0x01,0x85,0x08,0x01,0x05,0x00,0x05,0x86,0x07,0x01,0x06,0x00,0x00,0x06,0x57,0x07,0x01,0x06,0x06,0x00,0x5f,0x04,0x01,0x00,0x06,0x00,0x4f,0x00,0x00,0x10,0x0f,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x09,0x06, +0x1b,0x2b,0x05,0x35,0x23,0x13,0x33,0x35,0x33,0x15,0x33,0x13,0x23,0x15,0x27,0x33,0x11,0x13,0x33,0x03,0x01,0x13,0xe1,0xbe,0x23,0x32,0x24,0xbd,0xe1,0xa3,0x72,0x30,0x73,0x73,0x6e,0x6e,0x02,0xda,0x64,0x64,0xfd,0x26,0x6e,0xbe,0x01,0xd3,0xfe,0x2d,0x01,0xd2,0x00,0x00,0x00,0x03,0x00,0x2d,0xff,0x5b,0x02,0x2b,0x02,0xda,0x00,0x03, +0x00,0x0c,0x00,0x10,0x00,0x3c,0x40,0x39,0x09,0x01,0x02,0x00,0x01,0x4c,0x00,0x00,0x02,0x00,0x85,0x00,0x02,0x05,0x01,0x01,0x03,0x02,0x01,0x67,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x06,0x01,0x04,0x03,0x04,0x4f,0x0d,0x0d,0x00,0x00,0x0d,0x10,0x0d,0x10,0x0f,0x0e,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x07,0x06, +0x17,0x2b,0x33,0x13,0x33,0x13,0x25,0x21,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x35,0x21,0x15,0x32,0xbe,0x79,0xbd,0xfe,0x7c,0x01,0x15,0x67,0x0d,0x12,0x05,0x04,0x13,0x0d,0xdb,0x01,0xfe,0x02,0xda,0xfd,0x26,0x50,0x01,0x9f,0x34,0x5a,0x17,0x16,0x5a,0x34,0xfd,0x6b,0x4b,0x4b,0x00,0x00,0x00,0x03,0x00,0x32,0x00,0x00,0x02,0x26, +0x03,0xb1,0x00,0x19,0x00,0x1d,0x00,0x26,0x00,0x97,0x4b,0xb0,0x14,0x50,0x58,0x40,0x35,0x00,0x05,0x03,0x01,0x04,0x05,0x72,0x00,0x02,0x04,0x00,0x01,0x02,0x72,0x0a,0x01,0x07,0x08,0x07,0x86,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x09,0x01,0x00,0x06,0x04,0x00,0x6a,0x00,0x06,0x08,0x08,0x06,0x57,0x00,0x06,0x06,0x08, +0x5f,0x00,0x08,0x06,0x08,0x4f,0x1b,0x40,0x37,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x0a,0x01,0x07,0x08,0x07,0x86,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x09,0x01,0x00,0x06,0x04,0x00,0x6a,0x00,0x06,0x08,0x08,0x06,0x57,0x00,0x06,0x06,0x08,0x5f,0x00,0x08,0x06,0x08,0x4f, +0x59,0x40,0x1d,0x1a,0x1a,0x01,0x00,0x23,0x22,0x1a,0x1d,0x1a,0x1d,0x1c,0x1b,0x16,0x15,0x13,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x0b,0x06,0x16,0x2b,0x01,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x03,0x03,0x21,0x03,0x27,0x36,0x36, +0x37,0x13,0x21,0x13,0x16,0x16,0x01,0x72,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x32,0x28,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x31,0xad,0xbc,0x01,0xf4,0xbd,0x3c,0x04,0x13,0x0d,0x65,0xfe,0xec,0x69,0x0d,0x11,0x03,0x2f,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0xfc,0xd1,0x02,0xda,0xfd,0x26, +0x46,0x17,0x59,0x34,0x01,0xa0,0xfe,0x5f,0x34,0x58,0x00,0x00,0x00,0x03,0xff,0xf6,0xff,0x5b,0x02,0x62,0x02,0x9f,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x27,0x40,0x24,0x07,0x06,0x05,0x03,0x02,0x01,0x06,0x00,0x4a,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x08,0x08,0x08,0x0b,0x08,0x0b, +0x19,0x03,0x06,0x17,0x2b,0x25,0x09,0x02,0x05,0x37,0x27,0x07,0x03,0x35,0x21,0x15,0x01,0x2c,0xfe,0xca,0x01,0x36,0x01,0x36,0xfe,0xca,0xe8,0xe8,0xe8,0x30,0x02,0x30,0x32,0x01,0x36,0x01,0x37,0xfe,0xc9,0xe8,0xe8,0xe9,0xe9,0xfd,0xf3,0x4b,0x4b,0x00,0xff,0xff,0x00,0x3c,0x00,0x32,0x02,0x1c,0x03,0x0c,0x00,0x27,0x06,0x72,0x02,0x58, +0x00,0x00,0x02,0x06,0x04,0x27,0x00,0x00,0x00,0x01,0x00,0x50,0xff,0x92,0x02,0x08,0x03,0x3e,0x00,0x17,0x00,0x28,0x40,0x25,0x16,0x0d,0x0a,0x01,0x04,0x03,0x00,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x00,0x85,0x04,0x01,0x03,0x03,0x76,0x00,0x00,0x00,0x17,0x00,0x17,0x15,0x15,0x15,0x05,0x06,0x19,0x2b,0x05,0x35, +0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x17,0x11,0x33,0x11,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x07,0x15,0x01,0x13,0x5a,0x69,0x32,0x4e,0x43,0x32,0x43,0x4e,0x32,0x69,0x5a,0x6e,0xc9,0x08,0x75,0x5e,0x01,0x40,0xfe,0xbb,0x47,0x5a,0x08,0x02,0xb6,0xfd,0x4a,0x08,0x5a,0x47,0x01,0x45,0xfe,0xc0,0x5e,0x75,0x08,0xc9,0x00,0x00, +0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x19,0x00,0x22,0x00,0x2b,0x00,0x4b,0x40,0x48,0x00,0x00,0x01,0x00,0x85,0x07,0x01,0x01,0x0b,0x0c,0x02,0x08,0x09,0x01,0x08,0x69,0x0d,0x0a,0x02,0x09,0x06,0x01,0x02,0x03,0x09,0x02,0x69,0x05,0x01,0x03,0x04,0x04,0x03,0x57,0x05,0x01,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04, +0x4f,0x24,0x23,0x1b,0x1a,0x29,0x28,0x23,0x2b,0x24,0x2b,0x20,0x1f,0x1a,0x22,0x1b,0x22,0x14,0x21,0x11,0x11,0x12,0x14,0x21,0x10,0x0e,0x06,0x1e,0x2b,0x13,0x33,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x07,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x35, +0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x15,0xff,0x5a,0x05,0x35,0x43,0x43,0x35,0x05,0xff,0xfd,0xa8,0xff,0x05,0x34,0x44,0x44,0x34,0x05,0x05,0x23,0x2d,0x2d,0x23,0x05,0x5f,0x23,0x2d,0x2d,0x23,0x05,0x02,0x58,0x91,0x43,0x35,0x34,0x44,0x87,0x50,0x50,0x87,0x44,0x34,0x35,0x43,0x28,0x2d,0x23,0x23,0x2d,0xa0,0xa0,0x2d,0x23,0x23, +0x2d,0xa0,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x5b,0x02,0x58,0x02,0x58,0x00,0x07,0x00,0x0b,0x00,0x37,0x40,0x34,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09, +0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x31,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x05,0x35,0x21,0x15,0xff,0x5a,0xff,0xfd,0xa8,0x02,0x58,0x50,0x02,0x08,0xfd,0xf8,0x50,0xa5,0x4b,0x4b,0x00,0x00,0x01,0x00,0x00,0xff,0xf6,0x02,0x58,0x02,0xda,0x00,0x0e,0x00,0x2b,0x40,0x28,0x00,0x03,0x02,0x03,0x85,0x06,0x01,0x00, +0x01,0x00,0x86,0x04,0x01,0x02,0x01,0x01,0x02,0x57,0x04,0x01,0x02,0x02,0x01,0x5f,0x05,0x01,0x01,0x02,0x01,0x4f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1d,0x2b,0x05,0x27,0x33,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x33,0x01,0x2d,0xc9,0x9b,0xff,0xff,0x5a,0xff,0xff,0x9b,0x0a,0xa9,0xa6,0x50,0x01,0x45, +0xfe,0xbb,0x50,0xa6,0x00,0x02,0x00,0x50,0xff,0x5b,0x02,0x17,0x02,0x2d,0x00,0x2c,0x00,0x30,0x00,0x62,0x40,0x5f,0x07,0x01,0x05,0x04,0x01,0x4c,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x07,0x05,0x06,0x05,0x07,0x06,0x80,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x00,0x05,0x07,0x04,0x05,0x67,0x00,0x06,0x0a,0x01, +0x00,0x08,0x06,0x00,0x69,0x00,0x08,0x09,0x09,0x08,0x57,0x00,0x08,0x08,0x09,0x5f,0x0b,0x01,0x09,0x08,0x09,0x4f,0x2d,0x2d,0x02,0x00,0x2d,0x30,0x2d,0x30,0x2f,0x2e,0x2a,0x29,0x27,0x24,0x20,0x1e,0x1d,0x1b,0x18,0x15,0x13,0x12,0x10,0x0d,0x00,0x2c,0x02,0x2c,0x0c,0x06,0x16,0x2b,0x05,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26, +0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x05,0x35,0x21,0x15,0x01,0x4b,0x34,0x5b,0x6c,0x41,0x46,0x3a,0x3b,0x64,0x58,0x2e,0x53,0x6b,0x09,0x5f,0x05,0x38,0x2b,0x2e,0x5d,0x30,0x2e,0x7b,0x83, +0x33,0x35,0x37,0x31,0x34,0x2e,0x3b,0x04,0x5f,0x0a,0x6d,0xfe,0xc2,0x01,0x9e,0x07,0x58,0x49,0x3e,0x47,0x05,0x04,0x04,0x3a,0x31,0x47,0x4f,0x4c,0x42,0x1d,0x21,0x4b,0x24,0x2a,0x4e,0x30,0x28,0x25,0x30,0x1f,0x1a,0x40,0x49,0x9e,0x4b,0x4b,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x41,0x02,0x03,0x03,0x09,0x02,0x26,0x04,0x1b,0x00,0x00, +0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x26,0x02,0x26,0x02,0x06,0x02,0x7d,0x00,0x00,0x00,0x02,0x00,0x37,0xff,0x5b,0x02,0x26,0x02,0x26,0x00,0x0d,0x00,0x11,0x00,0x3c,0x40,0x39,0x00,0x02,0x00,0x01,0x03,0x02,0x01,0x67,0x00,0x03,0x06,0x01,0x00,0x04,0x03,0x00,0x67,0x00,0x04,0x05,0x05,0x04, +0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x0e,0x0e,0x01,0x00,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x0c,0x0a,0x07,0x06,0x05,0x04,0x00,0x0d,0x01,0x0d,0x08,0x06,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x14,0x16,0x33,0x33,0x15,0x05,0x35,0x21,0x15,0x01,0x9f,0x49,0x57,0xc8,0x01,0x22,0x26,0x20,0x87, +0xfe,0x16,0x01,0xea,0x55,0x46,0x01,0x39,0x52,0xfe,0x75,0x22,0x27,0x52,0xa5,0x4b,0x4b,0x00,0x00,0x00,0x00,0x04,0x00,0x7d,0x00,0xd2,0x01,0xdb,0x02,0xaf,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x4d,0x40,0x4a,0x03,0x01,0x01,0x09,0x02,0x08,0x03,0x00,0x05,0x01,0x00,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x0b,0x01, +0x06,0x04,0x04,0x06,0x59,0x0b,0x01,0x06,0x06,0x04,0x61,0x0a,0x01,0x04,0x06,0x04,0x51,0x25,0x24,0x19,0x18,0x0d,0x0c,0x01,0x00,0x2b,0x29,0x24,0x2f,0x25,0x2f,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14, +0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x9b,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x52,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0x35,0x23, +0x2d,0x2d,0x23,0x23,0x2d,0x2d,0x02,0x2f,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfe,0xa3,0x44,0x34,0x35,0x43,0x43,0x35,0x34,0x44,0x28,0x2d,0x23,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x00,0x00,0x03,0x00,0x8c,0xff,0x5b,0x01,0xcc,0x01,0xc2,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x41,0x40,0x3e, +0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x07,0x01,0x02,0x06,0x01,0x00,0x04,0x02,0x00,0x69,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x04,0x05,0x4f,0x18,0x18,0x0d,0x0c,0x01,0x00,0x18,0x1b,0x18,0x1b,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x25, +0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x35,0x21,0x15,0x01,0x2c,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0x35,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x2d,0x7d,0x01,0x40,0xd2,0x44,0x34,0x35,0x43,0x43,0x35,0x34,0x44,0x28,0x2d,0x23,0x23,0x2d,0x2d,0x23,0x23, +0x2d,0xfe,0x61,0x4b,0x4b,0x00,0x00,0x00,0x00,0x02,0x00,0x1e,0xff,0x92,0x02,0x3a,0x03,0x3e,0x00,0x14,0x00,0x1d,0x00,0x45,0x40,0x42,0x00,0x02,0x01,0x02,0x85,0x0a,0x01,0x07,0x00,0x07,0x86,0x03,0x01,0x01,0x09,0x01,0x04,0x05,0x01,0x04,0x69,0x0b,0x08,0x02,0x05,0x00,0x00,0x05,0x59,0x0b,0x08,0x02,0x05,0x05,0x00,0x61,0x06,0x01, +0x00,0x05,0x00,0x51,0x16,0x15,0x00,0x00,0x19,0x17,0x15,0x1d,0x16,0x1d,0x00,0x14,0x00,0x14,0x11,0x11,0x11,0x11,0x11,0x24,0x21,0x0c,0x06,0x1d,0x2b,0x05,0x11,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x23,0x11,0x03,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2a,0x30,0x65,0x77, +0x77,0x65,0x30,0x32,0xde,0xde,0xde,0xde,0x67,0x35,0x35,0x4c,0x59,0x59,0x6e,0x01,0x04,0x75,0x62,0x62,0x75,0xfa,0xfa,0x2d,0xfe,0xac,0x2d,0xfe,0xfc,0x01,0x31,0x01,0x54,0x5c,0x4e,0x4e,0x5c,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0x00,0x00,0x02,0x58,0x02,0xda,0x00,0x0e,0x00,0x37,0x40,0x34,0x06,0x01,0x02,0x03,0x05,0x01,0x01,0x02, +0x04,0x01,0x00,0x01,0x03,0x4c,0x00,0x03,0x02,0x03,0x85,0x00,0x00,0x01,0x00,0x86,0x04,0x01,0x02,0x01,0x01,0x02,0x57,0x04,0x01,0x02,0x02,0x01,0x5f,0x05,0x01,0x01,0x02,0x01,0x4f,0x11,0x11,0x11,0x14,0x11,0x10,0x06,0x06,0x1c,0x2b,0x21,0x23,0x11,0x23,0x15,0x27,0x37,0x15,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x01,0x59,0x5a,0x77, +0x9c,0x9c,0x77,0x5a,0xff,0xff,0x01,0x45,0xa0,0xc8,0xc8,0xa0,0x01,0x45,0xfe,0xbb,0x50,0x00,0x00,0x00,0x00,0x01,0x00,0x37,0xff,0xf6,0x02,0x21,0x02,0x30,0x00,0x2a,0x00,0x3a,0x40,0x37,0x28,0x01,0x01,0x02,0x01,0x4c,0x1e,0x1d,0x08,0x07,0x04,0x02,0x4a,0x00,0x02,0x01,0x02,0x85,0x03,0x01,0x01,0x00,0x00,0x01,0x59,0x03,0x01,0x01, +0x01,0x00,0x61,0x04,0x05,0x02,0x00,0x01,0x00,0x51,0x01,0x00,0x26,0x24,0x18,0x16,0x13,0x12,0x0f,0x0d,0x00,0x2a,0x01,0x2a,0x06,0x06,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x15,0x06,0x06,0x15,0x15,0x14,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x35,0x35,0x34,0x26,0x27,0x35,0x16,0x16,0x15,0x15,0x14, +0x06,0x23,0x22,0x26,0x27,0x06,0x06,0xb5,0x3a,0x44,0x4b,0x41,0x1a,0x1d,0x3d,0x1d,0x21,0x4a,0x21,0x1d,0x3d,0x1f,0x1d,0x44,0x4d,0x43,0x3b,0x31,0x3f,0x07,0x07,0x3f,0x0a,0x56,0x4b,0xcf,0x53,0x6d,0x0a,0x5f,0x05,0x3a,0x2c,0xd0,0x54,0x2c,0x28,0xc3,0xc3,0x28,0x2c,0x54,0xd0,0x29,0x37,0x06,0x5f,0x0a,0x6a,0x51,0xcf,0x4b,0x56,0x39, +0x32,0x32,0x39,0x00,0x00,0x02,0x00,0x37,0xff,0x5b,0x02,0x21,0x02,0x30,0x00,0x2a,0x00,0x2e,0x00,0x4a,0x40,0x47,0x28,0x01,0x01,0x02,0x01,0x4c,0x1e,0x1d,0x08,0x07,0x04,0x02,0x4a,0x00,0x02,0x01,0x02,0x85,0x03,0x01,0x01,0x04,0x07,0x02,0x00,0x05,0x01,0x00,0x69,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05,0x06,0x5f,0x08,0x01, +0x06,0x05,0x06,0x4f,0x2b,0x2b,0x01,0x00,0x2b,0x2e,0x2b,0x2e,0x2d,0x2c,0x26,0x24,0x18,0x16,0x13,0x12,0x0f,0x0d,0x00,0x2a,0x01,0x2a,0x09,0x06,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x15,0x06,0x06,0x15,0x15,0x14,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x35,0x35,0x34,0x26,0x27,0x35,0x16,0x16,0x15, +0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x07,0x35,0x21,0x15,0xb5,0x3a,0x44,0x4b,0x41,0x1a,0x1d,0x3d,0x1d,0x21,0x4a,0x21,0x1d,0x3d,0x1f,0x1d,0x44,0x4d,0x43,0x3b,0x31,0x3f,0x07,0x07,0x3f,0xaf,0x01,0xea,0x0a,0x56,0x4b,0xcf,0x53,0x6d,0x0a,0x5f,0x05,0x3a,0x2c,0xd0,0x54,0x2c,0x28,0xc3,0xc3,0x28,0x2c,0x54,0xd0,0x29,0x37, +0x06,0x5f,0x0a,0x6a,0x51,0xcf,0x4b,0x56,0x39,0x32,0x32,0x39,0x9b,0x4b,0x4b,0x00,0x00,0x02,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x07,0x06,0x05, +0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x06,0x00,0x09,0x00,0x31,0x40,0x2e,0x09,0x06,0x02,0x03,0x02,0x01,0x4c,0x00, +0x00,0x00,0x02,0x03,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x00,0x00,0x08,0x07,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x03,0x21,0x01,0x05,0x21,0x01,0x02,0x58,0x32,0xfe,0x2a,0x01,0xd6,0xfe,0x0c,0x01,0xd8,0xfe,0x28,0x6f,0x03, +0xad,0xfc,0x53,0x03,0x80,0xfc,0xda,0x2d,0x03,0x29,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x0c,0x00,0x1c,0x00,0x25,0x00,0x55,0x40,0x52,0x25,0x1f,0x0a,0x07,0x04,0x04,0x05,0x01,0x4c,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x09,0x01,0x02,0x00,0x05,0x04,0x02,0x05,0x69,0x0a,0x01,0x04,0x00, +0x07,0x06,0x04,0x07,0x69,0x00,0x06,0x01,0x01,0x06,0x57,0x00,0x06,0x06,0x01,0x5f,0x08,0x01,0x01,0x06,0x01,0x4f,0x0e,0x0d,0x05,0x04,0x00,0x00,0x23,0x21,0x1e,0x1d,0x16,0x14,0x0d,0x1c,0x0e,0x1c,0x09,0x08,0x04,0x0c,0x05,0x0c,0x00,0x03,0x00,0x03,0x11,0x0b,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x32,0x16,0x17,0x35,0x21,0x15, +0x36,0x36,0x13,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x07,0x21,0x35,0x06,0x06,0x23,0x22,0x26,0x27,0x02,0x58,0xfe,0xd4,0x50,0x83,0x27,0xfe,0x0c,0x28,0x82,0x50,0x48,0x71,0x41,0x41,0x71,0x48,0x47,0x71,0x42,0x42,0x71,0xb3,0x01,0xf4,0x27,0x83,0x50,0x50,0x82,0x28,0x6f,0x03,0xad,0xfc,0x53, +0x03,0x04,0x46,0x3b,0xfd,0xfd,0x3c,0x45,0xfd,0xd9,0x42,0x71,0x47,0x47,0x71,0x42,0x42,0x71,0x47,0x47,0x71,0x42,0xb0,0xfe,0x3b,0x46,0x45,0x3c,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x13,0x00,0x1f,0x00,0x4c,0x40,0x49,0x00,0x00,0x00,0x03,0x05,0x00,0x03,0x67,0x00,0x05,0x09,0x01,0x04,0x07, +0x05,0x04,0x69,0x00,0x07,0x0a,0x01,0x06,0x02,0x07,0x06,0x69,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x02,0x01,0x4f,0x15,0x14,0x09,0x08,0x00,0x00,0x1b,0x19,0x14,0x1f,0x15,0x1f,0x0f,0x0d,0x08,0x13,0x09,0x13,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x0b,0x06,0x17,0x2b,0x15,0x11,0x21,0x11, +0x25,0x21,0x11,0x21,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0xfa,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0x26,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0xfe,0xde,0x29,0x22, +0x22,0x29,0x29,0x22,0x22,0x29,0xfe,0x5c,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x0d,0x00,0x16,0x00,0x4c,0x40,0x49,0x0d,0x0a,0x02,0x06,0x02,0x01,0x4c,0x00,0x05,0x06,0x04,0x06,0x05,0x04,0x80,0x00,0x00,0x08,0x01,0x03,0x02,0x00,0x03,0x67,0x00,0x02, +0x00,0x06,0x05,0x02,0x06,0x67,0x00,0x04,0x01,0x01,0x04,0x57,0x00,0x04,0x04,0x01,0x5f,0x07,0x01,0x01,0x04,0x01,0x4f,0x04,0x04,0x00,0x00,0x13,0x12,0x0c,0x0b,0x09,0x08,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x15,0x21,0x35,0x01,0x21,0x11,0x03,0x23,0x03,0x13,0x36, +0x36,0x37,0x13,0x21,0x13,0x16,0x16,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x01,0xf4,0xbd,0x79,0xbe,0xfe,0x05,0x0f,0x0e,0x70,0xfe,0xd9,0x6f,0x0e,0x14,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80,0x37,0x37,0xfc,0xad,0x02,0xf7,0xfd,0x4b,0x02,0xb6,0xfd,0x90,0x17,0x5a,0x34,0x01,0x9f,0xfe,0x60,0x34,0x59,0x00,0x00,0x00,0x04,0x00,0x00, +0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x09,0x00,0x12,0x00,0x16,0x00,0x50,0x40,0x4d,0x0f,0x01,0x04,0x02,0x08,0x05,0x02,0x06,0x04,0x02,0x4c,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x00,0x08,0x01,0x03,0x02,0x00,0x03,0x67,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x67,0x00,0x05,0x01,0x01,0x05,0x57,0x00,0x05,0x05,0x01, +0x5f,0x07,0x01,0x01,0x05,0x01,0x4f,0x04,0x04,0x00,0x00,0x16,0x15,0x14,0x13,0x0b,0x0a,0x04,0x09,0x04,0x09,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x11,0x13,0x33,0x13,0x11,0x01,0x21,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x21,0x35,0x21,0x02,0x58,0xfd,0xda,0xbe,0x79,0xbd,0xfe,0x73, +0x01,0x27,0x70,0x0d,0x12,0x05,0x04,0x12,0x0e,0xd6,0x01,0xf4,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80,0xfd,0x14,0x02,0xb5,0xfd,0x4b,0x02,0xec,0xfd,0x3f,0x01,0x9f,0x34,0x5b,0x16,0x16,0x5a,0x34,0xfd,0xce,0x42,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x08,0x00,0x0c,0x00,0x11,0x00,0x37, +0x40,0x34,0x11,0x10,0x0f,0x0c,0x0b,0x0a,0x08,0x05,0x08,0x03,0x02,0x01,0x4c,0x00,0x00,0x00,0x02,0x03,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x00,0x00,0x0e,0x0d,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x17,0x11,0x21,0x11, +0x13,0x37,0x27,0x07,0x03,0x21,0x11,0x07,0x27,0x02,0x58,0xfe,0xd4,0xfa,0xfe,0x0c,0xfa,0xe8,0xe8,0xe8,0x12,0x01,0xf4,0xfa,0xfa,0x6f,0x03,0xad,0xfc,0x53,0x03,0x0e,0xfb,0x01,0x6d,0xfe,0x93,0xfe,0xdc,0xe8,0xe9,0xe9,0xfe,0x56,0x01,0x6e,0xfa,0xfa,0x00,0x05,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x13, +0x00,0x17,0x00,0x23,0x00,0x5d,0x40,0x5a,0x00,0x00,0x0b,0x01,0x03,0x05,0x00,0x03,0x67,0x00,0x05,0x0c,0x01,0x04,0x02,0x05,0x04,0x69,0x00,0x02,0x00,0x07,0x09,0x02,0x07,0x67,0x00,0x09,0x0d,0x01,0x08,0x06,0x09,0x08,0x69,0x00,0x06,0x01,0x01,0x06,0x57,0x00,0x06,0x06,0x01,0x5f,0x0a,0x01,0x01,0x06,0x01,0x4f,0x19,0x18,0x09,0x08, +0x04,0x04,0x00,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x17,0x16,0x15,0x14,0x0f,0x0d,0x08,0x13,0x09,0x13,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0e,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x11,0x21,0x11,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x21,0x11,0x21,0x17,0x22,0x26,0x35,0x34, +0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfa,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0xfe,0xe0,0x01,0xf4,0xfe,0x0c,0xfa,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80,0xfe,0x7c,0x01,0x84,0xfe,0xd4,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0xfd,0xd9,0x01,0x84,0xf2,0x29,0x22,0x22, +0x29,0x29,0x22,0x22,0x29,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x1e,0x00,0x47,0x40,0x44,0x14,0x13,0x11,0x10,0x04,0x04,0x03,0x12,0x01,0x02,0x04,0x02,0x4c,0x05,0x01,0x04,0x03,0x02,0x03,0x04,0x02,0x80,0x00,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00, +0x02,0x02,0x01,0x60,0x07,0x01,0x01,0x02,0x01,0x50,0x00,0x00,0x1e,0x1d,0x19,0x18,0x0c,0x0b,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x23,0x11,0x14,0x06,0x07,0x33,0x36,0x36,0x37,0x37,0x15,0x07,0x27,0x35,0x17,0x16,0x16,0x17,0x33,0x26,0x26,0x35,0x11,0x23,0x02,0x58, +0xfd,0xda,0x01,0xf4,0xcd,0x03,0x02,0x0a,0x05,0x1b,0x16,0x60,0xc7,0xc9,0x5f,0x16,0x1d,0x04,0x0a,0x01,0x04,0xcd,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0xfd,0xc1,0x16,0x2d,0x0d,0x06,0x1d,0x12,0x51,0x69,0xa9,0xa9,0x69,0x50,0x12,0x1d,0x07,0x0d,0x2d,0x16,0x02,0x3f,0x00,0x03,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03, +0x00,0x0e,0x00,0x14,0x00,0x3e,0x40,0x3b,0x14,0x11,0x0e,0x0b,0x07,0x05,0x04,0x02,0x01,0x4c,0x00,0x04,0x02,0x03,0x02,0x04,0x03,0x80,0x00,0x00,0x00,0x02,0x04,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x05,0x01,0x01,0x03,0x01,0x4f,0x00,0x00,0x13,0x12,0x10,0x0f,0x0d,0x0c,0x00,0x03,0x00,0x03,0x11, +0x06,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x35,0x21,0x15,0x11,0x21,0x11,0x03,0x23,0x03,0x02,0x58,0xfe,0xb4,0x0b,0x12,0x04,0x05,0x13,0x0a,0xd7,0xfe,0x0c,0x01,0xf4,0xdb,0x3e,0xdb,0x6f,0x03,0xad,0xfc,0x53,0xf0,0x1c,0x3a,0x11,0x11,0x3b,0x1b,0x02,0x49,0x47,0x3c,0xfc,0xe9,0x02,0x8f,0xfd, +0xa8,0x02,0x58,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x47,0x40,0x44,0x00,0x00,0x09,0x01,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x04,0x00,0x07,0x06,0x04,0x07,0x67,0x00,0x06,0x01,0x01,0x06,0x57,0x00,0x06,0x06,0x01,0x5f,0x08,0x01, +0x01,0x06,0x01,0x4f,0x04,0x04,0x00,0x00,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0a,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x11,0x21,0x11,0x01,0x21,0x35,0x21,0x11,0x21,0x11,0x21,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x01,0xf4,0xfe,0x0c,0x01,0xf4,0xfe,0x0c,0x6f, +0x03,0xad,0xfc,0x53,0x03,0x80,0xfe,0xf7,0x01,0x09,0xfe,0x07,0xa0,0xfe,0x06,0x01,0x0a,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x3b,0x40,0x38,0x14,0x13,0x0e,0x0a,0x09,0x06,0x05,0x07,0x03,0x02,0x01,0x4c,0x00,0x00,0x05,0x01,0x02,0x03,0x00,0x02,0x67,0x00, +0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x04,0x04,0x00,0x00,0x12,0x11,0x04,0x07,0x04,0x07,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x15,0x05,0x11,0x03,0x25,0x11,0x25,0x36,0x36,0x37,0x26,0x26,0x01,0x21,0x11,0x05,0x02,0x58,0xfd,0xda,0x01,0xf4,0x78,0xfe, +0x84,0x01,0x7c,0x13,0x21,0x08,0x09,0x22,0xfe,0x73,0x01,0xf4,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80,0x7c,0xfa,0x01,0x76,0xfe,0x6e,0xbc,0xfe,0x59,0xbb,0x09,0x0d,0x02,0x02,0x0e,0xfe,0x47,0x01,0x79,0xfa,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x02,0x26,0x04,0x4d,0x00,0x28,0x01,0x06,0x05,0x85, +0x00,0x00,0x00,0x08,0xb1,0x00,0x02,0xb0,0x28,0xb0,0x35,0x2b,0x00,0x02,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x1e,0x00,0x5a,0x40,0x57,0x17,0x01,0x06,0x05,0x18,0x11,0x0a,0x03,0x03,0x06,0x0b,0x01,0x04,0x03,0x03,0x4c,0x00,0x05,0x07,0x06,0x07,0x05,0x06,0x80,0x00,0x04,0x03,0x02,0x03,0x04,0x02,0x80,0x00,0x00, +0x00,0x07,0x05,0x00,0x07,0x67,0x00,0x06,0x00,0x03,0x04,0x06,0x03,0x68,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x1e,0x1d,0x1c,0x1a,0x13,0x12,0x10,0x0f,0x08,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x23,0x22,0x26, +0x27,0x15,0x16,0x16,0x17,0x17,0x23,0x27,0x37,0x33,0x07,0x06,0x06,0x07,0x15,0x36,0x36,0x33,0x33,0x11,0x21,0x02,0x58,0xfd,0xda,0x01,0xf4,0xf4,0x10,0x29,0x0d,0x09,0x1a,0x0a,0x57,0x6a,0x9c,0x9c,0x6a,0x57,0x0d,0x19,0x07,0x0d,0x29,0x10,0xf4,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x01,0x82,0x03,0x01,0x09,0x07,0x19,0x0d,0x6e, +0xc8,0xc8,0x6d,0x10,0x19,0x06,0x09,0x02,0x03,0x01,0x81,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x3b,0x40,0x38,0x14,0x13,0x0e,0x0a,0x09,0x06,0x05,0x07,0x03,0x02,0x01,0x4c,0x00,0x00,0x05,0x01,0x02,0x03,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03, +0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x04,0x04,0x00,0x00,0x12,0x11,0x04,0x07,0x04,0x07,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x11,0x25,0x35,0x01,0x05,0x11,0x05,0x06,0x06,0x07,0x16,0x16,0x03,0x21,0x35,0x25,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x84,0x01,0x7c,0xfe,0x84,0x13,0x21,0x08,0x09, +0x22,0x67,0x01,0xf4,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80,0xfe,0x89,0xfa,0x7d,0xfe,0x41,0xbc,0x01,0xa7,0xbb,0x09,0x0d,0x02,0x02,0x0e,0xfe,0x64,0x7e,0xfa,0x00,0x05,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x1b,0x00,0x67,0x40,0x64,0x0f,0x01,0x05,0x03,0x02,0x03,0x05,0x02, +0x80,0x00,0x0c,0x0b,0x0a,0x0b,0x0c,0x0a,0x80,0x00,0x00,0x00,0x03,0x05,0x00,0x03,0x67,0x04,0x01,0x02,0x09,0x01,0x07,0x06,0x02,0x07,0x67,0x08,0x01,0x06,0x0d,0x01,0x0b,0x0c,0x06,0x0b,0x67,0x00,0x0a,0x01,0x01,0x0a,0x57,0x00,0x0a,0x0a,0x01,0x5f,0x0e,0x01,0x01,0x0a,0x01,0x4f,0x04,0x04,0x00,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16, +0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x04,0x0b,0x04,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x10,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x03,0x07,0x33,0x11,0x21,0x11,0x21,0x37,0x01,0x33,0x37,0x23,0x05,0x33,0x35,0x23,0x01,0x21,0x11,0x21,0x07,0x23,0x37,0x23,0x02,0x58,0x8e,0x40,0x9c,0xfe,0x0c, +0x01,0x12,0x40,0xfe,0xae,0xba,0x3a,0xf4,0x01,0x00,0xf4,0xba,0xfe,0xc6,0x01,0xf4,0xfe,0xee,0x3e,0x46,0x3e,0x9c,0x6f,0x03,0xad,0xfc,0x53,0x03,0x26,0xaf,0x01,0x09,0xfe,0xf7,0xaf,0xfe,0x61,0xa0,0xa0,0xa0,0xfe,0x06,0x01,0x0a,0xaa,0xaa,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x1c, +0x00,0x2a,0x00,0xa7,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x3a,0x0c,0x01,0x08,0x07,0x0a,0x07,0x08,0x72,0x00,0x00,0x00,0x03,0x06,0x00,0x03,0x67,0x00,0x06,0x00,0x05,0x04,0x06,0x05,0x67,0x00,0x04,0x00,0x07,0x08,0x04,0x07,0x69,0x00,0x0a,0x0d,0x01,0x09,0x02,0x0a,0x09,0x69,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x0b, +0x01,0x01,0x02,0x01,0x4f,0x1b,0x40,0x3b,0x0c,0x01,0x08,0x07,0x0a,0x07,0x08,0x0a,0x80,0x00,0x00,0x00,0x03,0x06,0x00,0x03,0x67,0x00,0x06,0x00,0x05,0x04,0x06,0x05,0x67,0x00,0x04,0x00,0x07,0x08,0x04,0x07,0x69,0x00,0x0a,0x0d,0x01,0x09,0x02,0x0a,0x09,0x69,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x0b,0x01,0x01, +0x02,0x01,0x4f,0x59,0x40,0x24,0x1e,0x1d,0x08,0x08,0x00,0x00,0x25,0x22,0x1d,0x2a,0x1e,0x29,0x08,0x1c,0x08,0x1c,0x1b,0x1a,0x14,0x12,0x11,0x0f,0x0b,0x09,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x0e,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x13,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32, +0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x15,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x95,0x32,0x40,0x4b,0x4b,0x41,0x7d,0x7d,0x46,0x67,0x39,0x30,0x55,0x38,0x3d,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0xfd,0xbc, +0xb4,0x47,0x3b,0x3b,0x47,0x55,0x35,0x60,0x42,0x39,0x5b,0x36,0x03,0x69,0xd2,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x02,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x1e,0x00,0x5a,0x40,0x57,0x0d,0x01,0x04,0x05,0x1a,0x13,0x0c,0x03,0x07,0x04,0x19,0x01,0x06,0x07,0x03,0x4c,0x00,0x05,0x03,0x04,0x03,0x05, +0x04,0x80,0x00,0x06,0x07,0x02,0x07,0x06,0x02,0x80,0x00,0x00,0x00,0x03,0x05,0x00,0x03,0x67,0x00,0x04,0x00,0x07,0x06,0x04,0x07,0x68,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x1e,0x1c,0x15,0x14,0x12,0x11,0x0a,0x08,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x09,0x06, +0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x11,0x33,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x07,0x23,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x23,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0xf4,0x11,0x28,0x0d,0x07,0x19,0x0d,0x57,0x6a,0x9c,0x9c,0x6a,0x57,0x0a,0x1a,0x09,0x0d,0x28,0x11,0xf4,0x6f,0x03,0xad, +0xfc,0x53,0x2d,0x03,0x53,0xfe,0x7f,0x03,0x02,0x09,0x06,0x19,0x10,0x6d,0xc8,0xc8,0x6e,0x0d,0x19,0x07,0x09,0x01,0x03,0x00,0x00,0x03,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x06,0x00,0x09,0x00,0x3c,0x40,0x39,0x08,0x05,0x02,0x03,0x02,0x01,0x4c,0x00,0x00,0x05,0x01,0x02,0x03,0x00,0x02,0x67,0x06,0x01,0x03,0x01, +0x01,0x03,0x57,0x06,0x01,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x07,0x07,0x04,0x04,0x00,0x00,0x07,0x09,0x07,0x09,0x04,0x06,0x04,0x06,0x00,0x03,0x00,0x03,0x11,0x07,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x11,0x01,0x13,0x11,0x01,0x02,0x58,0xfd,0xda,0x01,0xd8,0x1c,0xfe,0x28,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80, +0xfc,0xd6,0x03,0x2a,0xfc,0xad,0x03,0x29,0xfc,0xd7,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x1e,0x00,0x48,0x40,0x45,0x10,0x01,0x03,0x06,0x12,0x11,0x0f,0x0e,0x04,0x02,0x03,0x02,0x4c,0x04,0x01,0x03,0x06,0x02,0x06,0x03,0x02,0x80,0x00,0x00,0x00,0x06,0x03,0x00,0x06,0x67,0x05,0x01,0x02,0x01, +0x01,0x02,0x57,0x05,0x01,0x02,0x02,0x01,0x5f,0x07,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x1e,0x1d,0x1c,0x1b,0x17,0x16,0x0a,0x09,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x33,0x11,0x34,0x36,0x37,0x23,0x06,0x06,0x07,0x07,0x35,0x37,0x17,0x15,0x27,0x26,0x26,0x27,0x23,0x16,0x16,0x15,0x11, +0x33,0x11,0x21,0x02,0x58,0xfd,0xda,0xcd,0x04,0x01,0x0a,0x04,0x1d,0x16,0x5f,0xc9,0xc7,0x60,0x16,0x1b,0x05,0x0a,0x02,0x03,0xcd,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x02,0x40,0x16,0x2d,0x0d,0x07,0x1d,0x12,0x50,0x69,0xa9,0xa9,0x69,0x51,0x12,0x1d,0x06,0x0d,0x2d,0x16,0xfd,0xc0,0x03,0x53,0x00,0x00,0x00,0x00,0x03,0x00,0x00, +0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x09,0x00,0x14,0x00,0x43,0x40,0x40,0x14,0x10,0x0c,0x08,0x05,0x05,0x04,0x03,0x01,0x4c,0x06,0x01,0x03,0x02,0x04,0x02,0x03,0x04,0x80,0x00,0x00,0x00,0x02,0x03,0x00,0x02,0x67,0x00,0x04,0x01,0x01,0x04,0x57,0x00,0x04,0x04,0x01,0x5f,0x05,0x01,0x01,0x04,0x01,0x4f,0x04,0x04,0x00,0x00, +0x0b,0x0a,0x04,0x09,0x04,0x09,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x07,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x13,0x11,0x21,0x11,0x13,0x03,0x21,0x35,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x02,0x58,0xfe,0xf3,0xdb,0xfe,0x0c,0xdb,0xdb,0x01,0xf4,0xd9,0x0a,0x13,0x05,0x04,0x12,0x0b,0xd8,0x6f,0x03,0xad,0xfc,0x53,0x03,0x49, +0xfd,0xa8,0x02,0x8f,0xfd,0x71,0x02,0x58,0xfc,0xe4,0x42,0x02,0x4e,0x1b,0x3b,0x11,0x11,0x3a,0x1c,0xfd,0xb2,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x0d,0x00,0x49,0x40,0x46,0x0c,0x09,0x02,0x05,0x04,0x01,0x4c,0x00,0x04,0x03,0x05,0x03,0x04,0x05,0x80,0x07,0x01,0x05,0x02,0x03, +0x05,0x02,0x7e,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x06,0x01,0x01,0x02,0x01,0x4f,0x08,0x08,0x00,0x00,0x08,0x0d,0x08,0x0d,0x0b,0x0a,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x13,0x27,0x35,0x33,0x15, +0x07,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0xd6,0x0c,0x60,0x0b,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0xfe,0x9d,0x96,0x96,0x96,0x96,0x00,0x00,0x02,0x00,0x8c,0xff,0x5b,0x01,0xcc,0x02,0xda,0x00,0x05,0x00,0x09,0x00,0x38,0x40,0x35,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x01,0x02,0x01,0x85, +0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f,0x06,0x06,0x00,0x00,0x06,0x09,0x06,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x12,0x06,0x06,0x17,0x2b,0x01,0x27,0x35,0x33,0x15,0x07,0x03,0x35,0x21,0x15,0x01,0x08,0x0c,0x60,0x0b,0xc5,0x01,0x40,0x01,0xae,0x96,0x96,0x96,0x96,0xfd,0xad,0x4b,0x4b, +0x00,0x02,0x00,0x5e,0xff,0x4c,0x01,0xfe,0x02,0x30,0x00,0x11,0x00,0x1f,0x00,0x3c,0x40,0x39,0x0e,0x01,0x03,0x04,0x01,0x4c,0x05,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x00,0x04,0x03,0x00,0x04,0x69,0x06,0x01,0x03,0x01,0x01,0x03,0x59,0x06,0x01,0x03,0x03,0x01,0x61,0x00,0x01,0x03,0x01,0x51,0x13,0x12,0x00,0x00,0x1a,0x18,0x12,0x1f, +0x13,0x1f,0x00,0x11,0x00,0x11,0x25,0x23,0x07,0x06,0x18,0x2b,0x17,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x15,0x37,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x5e,0x70,0x61,0x61,0x6e,0x5f,0x53,0x3e,0x4e,0x07,0x03,0x02,0x76,0x39,0x3d,0x3d,0x39,0x39,0x3d,0x3f, +0xb4,0x02,0x18,0x5f,0x6d,0x6d,0x5f,0xa1,0x5f,0x6e,0x3e,0x35,0x7d,0xa0,0xf8,0x44,0x40,0x96,0x40,0x44,0x44,0x40,0x96,0x3e,0x46,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x6c,0x02,0xda,0x00,0x0e,0x00,0x3d,0x40,0x3a,0x09,0x01,0x01,0x02,0x0a,0x01,0x00,0x01,0x0b,0x01,0x05,0x00,0x03,0x4c,0x00,0x02,0x01,0x02,0x85,0x06, +0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0e,0x00,0x0e,0x14,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x35,0x17,0x07,0x35,0x23,0x11,0xff,0xff,0xff,0x5a,0x77,0x9c,0x9c,0x77,0x01,0x45, +0x50,0x01,0x45,0xfe,0xbb,0xa0,0xc8,0xc8,0xa0,0xfe,0xbb,0x00,0x00,0x03,0x00,0x8c,0xff,0x5b,0x01,0xcc,0x02,0xe4,0x00,0x0d,0x00,0x11,0x00,0x15,0x00,0x48,0x40,0x45,0x00,0x02,0x00,0x03,0x00,0x02,0x03,0x80,0x07,0x01,0x03,0x04,0x00,0x03,0x04,0x7e,0x00,0x01,0x06,0x01,0x00,0x02,0x01,0x00,0x69,0x00,0x04,0x05,0x05,0x04,0x57,0x00, +0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x04,0x05,0x4f,0x12,0x12,0x0e,0x0e,0x01,0x00,0x12,0x15,0x12,0x15,0x14,0x13,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x08,0x05,0x00,0x0d,0x01,0x0c,0x09,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x03,0x13,0x33,0x03,0x07,0x35,0x21,0x15,0x01,0x22,0x21,0x2a, +0x2b,0x20,0x14,0x20,0x2b,0x2a,0x21,0x8c,0x50,0x82,0x82,0x6e,0x01,0x40,0x02,0x4e,0x2a,0x21,0x20,0x2b,0x2b,0x20,0x21,0x2a,0xfd,0xc6,0x01,0x37,0xfe,0xc9,0xb9,0x4b,0x4b,0x00,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x92,0x02,0x1c,0x03,0x3e,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03, +0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x17,0x13,0x23,0x35,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x03,0x4b,0x97,0xa6,0xc4,0xae,0x5f,0xae,0xbd,0xdb,0x97,0x6e,0x01,0x90,0x50,0x01,0xcc,0xfe,0x34,0x50, +0xfe,0x70,0x00,0x00,0x00,0x02,0x00,0xaa,0xff,0x91,0x01,0xae,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x17,0x11, +0x21,0x11,0x27,0x33,0x11,0x23,0xaa,0x01,0x04,0xd2,0xa0,0xa0,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0x00,0x03,0x00,0x7d,0x00,0xda,0x01,0xdb,0x02,0xaf,0x00,0x0b,0x00,0x17,0x00,0x21,0x00,0x42,0x40,0x3f,0x1c,0x01,0x04,0x00,0x01,0x4c,0x21,0x20,0x1f,0x19,0x04,0x04,0x49,0x05,0x01,0x04,0x00,0x04,0x86,0x03,0x01,0x01,0x00,0x00, +0x01,0x59,0x03,0x01,0x01,0x01,0x00,0x61,0x07,0x02,0x06,0x03,0x00,0x01,0x00,0x51,0x0d,0x0c,0x01,0x00,0x1e,0x1d,0x1b,0x1a,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x08,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x13,0x37,0x27,0x33,0x37,0x17,0x33,0x07,0x17,0x27,0x01,0x9b,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x09,0x1e,0x4d,0x5b,0x1d,0x1d,0x5b,0x4d,0x1e,0x49,0x02,0x2f,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfe,0xab,0x63,0x36,0x5d,0x5d,0x36,0x63,0x43, +0x00,0x01,0x00,0x41,0xff,0x92,0x02,0x17,0x03,0x3e,0x00,0x23,0x00,0x90,0x40,0x0c,0x0a,0x07,0x02,0x06,0x03,0x1c,0x19,0x02,0x07,0x02,0x02,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x31,0x00,0x01,0x00,0x01,0x85,0x00,0x03,0x00,0x06,0x02,0x03,0x72,0x08,0x01,0x07,0x02,0x04,0x06,0x07,0x72,0x00,0x05,0x04,0x05,0x86,0x00,0x00,0x00,0x06, +0x02,0x00,0x06,0x69,0x00,0x02,0x07,0x04,0x02,0x59,0x00,0x02,0x02,0x04,0x62,0x00,0x04,0x02,0x04,0x52,0x1b,0x40,0x33,0x00,0x01,0x00,0x01,0x85,0x00,0x03,0x00,0x06,0x00,0x03,0x06,0x80,0x08,0x01,0x07,0x02,0x04,0x02,0x07,0x04,0x80,0x00,0x05,0x04,0x05,0x86,0x00,0x00,0x00,0x06,0x02,0x00,0x06,0x69,0x00,0x02,0x07,0x04,0x02,0x59, +0x00,0x02,0x02,0x04,0x62,0x00,0x04,0x02,0x04,0x52,0x59,0x40,0x10,0x00,0x00,0x00,0x23,0x00,0x23,0x23,0x13,0x23,0x13,0x23,0x13,0x23,0x09,0x06,0x1d,0x2b,0x13,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x11,0x33,0x11,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x11,0x23,0x11,0x26,0x26,0x23,0x22,0x06, +0x15,0x15,0x41,0x46,0x3c,0x17,0x28,0x11,0x32,0x14,0x25,0x15,0x16,0x19,0x55,0x46,0x3c,0x17,0x28,0x11,0x32,0x14,0x26,0x14,0x16,0x19,0x01,0x02,0x0f,0x3e,0x49,0x0b,0x08,0x01,0xb9,0xfe,0x2a,0x0d,0x13,0x18,0x15,0x1e,0x0f,0x3e,0x49,0x0a,0x08,0xfe,0x83,0x01,0x9a,0x0d,0x14,0x18,0x15,0x1e,0xff,0xff,0x00,0x46,0x00,0xfa,0x02,0x12, +0x02,0xaf,0x02,0x26,0x04,0x22,0x00,0x00,0x01,0x07,0x06,0x68,0x02,0x58,0xff,0xa6,0x00,0x09,0xb1,0x01,0x02,0xb8,0xff,0xa6,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x3c,0x00,0x32,0x02,0x1c,0x03,0x0c,0x00,0x27,0x06,0x72,0x02,0x58,0x00,0x00,0x02,0x06,0x04,0x26,0x00,0x00,0x00,0x03,0x00,0x50,0x00,0x00,0x02,0x08,0x02,0x30,0x00,0x11, +0x00,0x1d,0x00,0x29,0x00,0x49,0x40,0x46,0x08,0x03,0x02,0x01,0x04,0x01,0x86,0x00,0x00,0x00,0x02,0x05,0x00,0x02,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x0a,0x01,0x06,0x04,0x04,0x06,0x59,0x0a,0x01,0x06,0x06,0x04,0x61,0x09,0x01,0x04,0x06,0x04,0x51,0x1f,0x1e,0x13,0x12,0x00,0x00,0x25,0x23,0x1e,0x29,0x1f,0x29,0x19,0x17, +0x12,0x1d,0x13,0x1d,0x00,0x11,0x00,0x11,0x23,0x13,0x23,0x0b,0x06,0x19,0x2b,0x33,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x50,0x77,0x65,0x65,0x77,0x32,0x5c, +0x4e,0x4e,0x5c,0xaa,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0x35,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x2d,0x01,0x54,0x65,0x77,0x77,0x65,0xfe,0xac,0x01,0x59,0x4e,0x5c,0x5c,0x4e,0xfe,0xa7,0xe6,0x44,0x34,0x35,0x43,0x43,0x35,0x34,0x44,0x28,0x2d,0x23,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x58, +0x03,0x09,0x00,0x0b,0x00,0x17,0x00,0x1f,0x00,0x45,0x40,0x42,0x0a,0x01,0x07,0x04,0x07,0x86,0x03,0x01,0x01,0x09,0x02,0x08,0x03,0x00,0x05,0x01,0x00,0x69,0x00,0x05,0x04,0x04,0x05,0x57,0x00,0x05,0x05,0x04,0x5f,0x06,0x01,0x04,0x05,0x04,0x4f,0x18,0x18,0x0d,0x0c,0x01,0x00,0x18,0x1f,0x18,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x13, +0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0b,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x01,0x9b,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23, +0x25,0xff,0x02,0x58,0xff,0x02,0x89,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfd,0x77,0x02,0x08,0x50,0x50,0xfd,0xf8,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x19,0x00,0x22,0x00,0x2b,0x00,0x52,0x40,0x4f,0x0c,0x01,0x07,0x00,0x07,0x86,0x00,0x03,0x04,0x01,0x02,0x01, +0x03,0x02,0x67,0x05,0x01,0x01,0x0e,0x0b,0x02,0x08,0x09,0x01,0x08,0x69,0x0a,0x0d,0x02,0x09,0x00,0x00,0x09,0x59,0x0a,0x0d,0x02,0x09,0x09,0x00,0x61,0x06,0x01,0x00,0x09,0x00,0x51,0x23,0x23,0x1a,0x1a,0x00,0x00,0x23,0x2b,0x23,0x2b,0x27,0x25,0x1a,0x22,0x1a,0x22,0x1e,0x1c,0x00,0x19,0x00,0x19,0x14,0x21,0x11,0x11,0x12,0x14,0x21, +0x0f,0x06,0x1d,0x2b,0x33,0x35,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35,0x23,0x35,0x21,0x15,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x27,0x33,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0x37,0x23,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0xff,0x05,0x34,0x44,0x44,0x34,0x05,0xff,0x02,0x58,0xff,0x05,0x35,0x43,0x43,0x35, +0x05,0x5f,0x05,0x05,0x23,0x2d,0x2d,0x87,0x05,0x05,0x23,0x2d,0x2d,0x91,0x44,0x34,0x35,0x43,0x87,0x50,0x50,0x87,0x43,0x35,0x34,0x44,0x91,0xb9,0xa0,0x2d,0x23,0x23,0x2d,0xa0,0xa0,0x2d,0x23,0x23,0x2d,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0xfd,0x00,0x07,0x00,0x0b,0x00,0x2a,0x40,0x27,0x00,0x02,0x01,0x02,0x86,0x00, +0x04,0x00,0x05,0x00,0x04,0x05,0x67,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x00,0x01,0x4f,0x11,0x11,0x11,0x11,0x11,0x10,0x06,0x06,0x1c,0x2b,0x11,0x21,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x21,0x15,0x21,0x02,0x58,0xff,0x5a,0xff,0x02,0x58,0xfd,0xa8,0x02,0x58,0x50,0xfd,0xf8,0x02,0x08,0xf5,0x4b, +0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0xe4,0x00,0x0e,0x00,0x2b,0x40,0x28,0x06,0x01,0x00,0x01,0x00,0x85,0x00,0x03,0x02,0x03,0x86,0x05,0x01,0x01,0x02,0x02,0x01,0x57,0x05,0x01,0x01,0x01,0x02,0x5f,0x04,0x01,0x02,0x01,0x02,0x4f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1d,0x2b,0x01,0x17,0x23,0x15,0x33,0x15,0x23, +0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x01,0x2d,0xc7,0x9b,0xff,0xff,0x5a,0xff,0xff,0x9b,0x02,0xe4,0xa9,0xa6,0x50,0xfe,0xbb,0x01,0x45,0x50,0xa6,0x00,0x00,0x00,0x00,0x03,0x00,0x58,0xff,0xf6,0x02,0x00,0x02,0xe4,0x00,0x0d,0x00,0x1e,0x00,0x2f,0x00,0x58,0x40,0x55,0x1d,0x01,0x07,0x02,0x23,0x01,0x06,0x03,0x02,0x4c,0x00,0x01, +0x00,0x04,0x02,0x01,0x04,0x69,0x09,0x01,0x02,0x00,0x07,0x03,0x02,0x07,0x69,0x00,0x03,0x00,0x06,0x05,0x03,0x06,0x69,0x0a,0x01,0x05,0x00,0x00,0x05,0x59,0x0a,0x01,0x05,0x05,0x00,0x61,0x08,0x01,0x00,0x05,0x00,0x51,0x20,0x1f,0x0f,0x0e,0x01,0x00,0x2b,0x29,0x26,0x24,0x1f,0x2f,0x20,0x2f,0x1a,0x18,0x14,0x12,0x0e,0x1e,0x0f,0x1e, +0x08,0x06,0x00,0x0d,0x01,0x0d,0x0b,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x03,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x36,0x13,0x32,0x36,0x35,0x35,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x14,0x16,0x01,0x2c,0x62,0x72,0x72,0x62,0x62,0x72, +0x72,0x9a,0x1a,0x23,0x1b,0x1e,0x14,0x28,0x3f,0x3b,0x3a,0x40,0x0e,0x6c,0x3b,0x3f,0x0e,0x34,0x1a,0x23,0x1b,0x1e,0x14,0x28,0x40,0x0a,0x72,0x6a,0x01,0x36,0x6a,0x72,0x72,0x69,0xfe,0xc9,0x6a,0x72,0x01,0xd3,0x1d,0x25,0x1d,0x2d,0x7b,0x3e,0x43,0x43,0x3e,0x8c,0x43,0xfe,0x7e,0x43,0x3e,0x9a,0x43,0x1d,0x25,0x1d,0x2d,0x89,0x3e,0x43, +0x00,0x04,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x2b,0x00,0x37,0x00,0x4d,0x40,0x4a,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x07,0x01,0x05,0x0b,0x06,0x0a,0x03,0x04,0x02,0x05,0x04,0x69,0x09,0x01,0x02,0x00,0x00,0x02,0x59,0x09,0x01,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x02,0x00,0x51,0x2d,0x2c,0x21, +0x20,0x11,0x10,0x01,0x00,0x33,0x31,0x2c,0x37,0x2d,0x37,0x27,0x25,0x20,0x2b,0x21,0x2b,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x0c,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16, +0x16,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0xda,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0xfe,0xc8,0x18,0x20,0x20,0x18, +0x18,0x20,0x20,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0xd1,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x00,0x00,0x00,0x03,0xff,0xf6,0x00,0x00,0x02,0x62,0x02,0xe4,0x00,0x0e,0x00,0x14,0x00,0x1c, +0x00,0x3d,0x40,0x3a,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x67,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x69,0x07,0x01,0x04,0x00,0x00,0x04,0x59,0x07,0x01,0x04,0x04,0x00,0x5f,0x06,0x01,0x00,0x04,0x00,0x4f,0x16,0x15,0x01,0x00,0x1a,0x18,0x15,0x1c,0x16,0x1c,0x13,0x12,0x10,0x0f,0x08,0x06,0x00,0x0e,0x01,0x0d,0x08,0x06,0x16,0x2b,0x33, +0x22,0x35,0x34,0x37,0x13,0x36,0x33,0x32,0x17,0x13,0x16,0x15,0x14,0x23,0x25,0x33,0x13,0x35,0x23,0x15,0x13,0x32,0x35,0x34,0x23,0x22,0x15,0x14,0x3b,0x45,0x13,0xf2,0x10,0x21,0x21,0x10,0xf1,0x14,0x45,0xfe,0xf6,0x31,0x0a,0x44,0x21,0x2c,0x2c,0x2c,0x38,0x1a,0x2e,0x02,0x3e,0x26,0x26,0xfd,0xc2,0x2e,0x1a,0x38,0xc8,0x01,0x17,0x47, +0x47,0xfe,0x5e,0x2a,0x2a,0x2a,0x2a,0x00,0x00,0x01,0x00,0x14,0xff,0x92,0x02,0x44,0x03,0x48,0x00,0x05,0x00,0x1c,0x40,0x19,0x03,0x01,0x01,0x49,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x12,0x11,0x02,0x06,0x18,0x2b,0x01,0x03,0x21,0x01,0x13,0x21,0x01,0xd6,0xb4,0x01,0x22,0xfd,0xee,0xf5, +0xfe,0xed,0x03,0x48,0xfe,0x70,0xfd,0xda,0x01,0xa4,0x00,0x00,0x00,0x01,0x00,0x25,0x00,0x73,0x02,0x34,0x02,0x6e,0x00,0x05,0x00,0x06,0xb3,0x05,0x03,0x01,0x32,0x2b,0x13,0x37,0x17,0x13,0x17,0x01,0x25,0x3f,0x90,0xfb,0x45,0xfe,0xc9,0x01,0x48,0x42,0x8e,0x01,0x72,0x30,0xfe,0x35,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x64,0x02,0x16, +0x02,0x38,0x00,0x0b,0x00,0x06,0xb3,0x0a,0x04,0x01,0x32,0x2b,0x37,0x27,0x37,0x27,0x37,0x17,0x37,0x17,0x07,0x17,0x07,0x27,0x7b,0x38,0xb0,0xb1,0x3a,0xb1,0xb0,0x38,0xb0,0xb1,0x3a,0xb1,0x65,0x38,0xb0,0xb1,0x3a,0xb1,0xb0,0x38,0xb0,0xb1,0x3a,0xb1,0x00,0x01,0x00,0x1f,0x00,0x5b,0x02,0x39,0x02,0x75,0x00,0x0b,0x00,0x06,0xb3,0x0a, +0x04,0x01,0x32,0x2b,0x37,0x27,0x37,0x27,0x37,0x17,0x37,0x17,0x07,0x17,0x07,0x27,0x59,0x39,0xd3,0xd4,0x3a,0xd4,0xd2,0x39,0xd3,0xd4,0x3a,0xd4,0x5c,0x39,0xd2,0xd4,0x3a,0xd4,0xd3,0x39,0xd2,0xd4,0x3a,0xd4,0x00,0x01,0x00,0x27,0x00,0x3c,0x02,0x30,0x02,0x94,0x00,0x0b,0x00,0x06,0xb3,0x0a,0x04,0x01,0x32,0x2b,0x37,0x37,0x27,0x17, +0x37,0x17,0x37,0x07,0x17,0x27,0x07,0x27,0x27,0xab,0xaa,0xd7,0x2d,0x2c,0xd7,0xaa,0xab,0xd7,0x2d,0x2d,0xd2,0x96,0x96,0x49,0xdf,0xde,0x48,0x96,0x96,0x49,0xdf,0xdf,0x00,0x03,0x00,0x0f,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x07,0x00,0x10,0x00,0x1d,0x00,0x61,0x40,0x5e,0x0b,0x01,0x04,0x02,0x18,0x01,0x09,0x06,0x02,0x4c,0x00,0x02, +0x04,0x02,0x85,0x0b,0x03,0x02,0x01,0x00,0x05,0x00,0x01,0x05,0x80,0x07,0x01,0x05,0x06,0x00,0x05,0x06,0x7e,0x0c,0x0a,0x02,0x08,0x09,0x08,0x86,0x00,0x04,0x00,0x00,0x01,0x04,0x00,0x67,0x00,0x06,0x09,0x09,0x06,0x57,0x00,0x06,0x06,0x09,0x5f,0x00,0x09,0x06,0x09,0x4f,0x11,0x11,0x00,0x00,0x11,0x1d,0x11,0x1d,0x1c,0x1b,0x1a,0x19, +0x17,0x16,0x15,0x14,0x13,0x12,0x10,0x0f,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x0d,0x06,0x19,0x2b,0x01,0x27,0x23,0x07,0x23,0x13,0x33,0x13,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x33,0x03,0x11,0x33,0x15,0x33,0x37,0x33,0x07,0x17,0x23,0x27,0x23,0x15,0x01,0x3c,0x1c,0xb0,0x1b,0x46,0x94,0x4a,0x94,0x9e,0x08,0x12,0x02,0x02,0x12, +0x08,0x22,0x7d,0x11,0x42,0x4f,0x60,0x4a,0x71,0x7b,0x4e,0x66,0x4f,0x01,0x8b,0x41,0x41,0x01,0x4f,0xfe,0xb1,0xce,0x13,0x2a,0x0d,0x0d,0x2a,0x13,0x52,0xfd,0xf9,0x01,0x4f,0x86,0x86,0xa1,0xae,0x8f,0x8f,0x00,0x00,0x04,0x00,0x2d,0xff,0xfc,0x02,0x2f,0x02,0xda,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x4b,0x00,0x6c,0x40,0x69,0x07,0x01, +0x05,0x02,0x01,0x4c,0x00,0x0a,0x0b,0x07,0x0b,0x0a,0x07,0x80,0x00,0x07,0x08,0x0b,0x07,0x08,0x7e,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x04,0x0c,0x01,0x01,0x09,0x04,0x01,0x67,0x00,0x09,0x00,0x0b,0x0a,0x09,0x0b,0x69,0x00,0x08,0x06,0x06,0x08,0x59,0x00,0x08,0x08,0x06,0x61,0x0d, +0x01,0x06,0x08,0x06,0x51,0x21,0x20,0x00,0x00,0x3f,0x3c,0x3a,0x39,0x37,0x34,0x29,0x26,0x24,0x23,0x20,0x4b,0x21,0x4a,0x1f,0x1d,0x19,0x17,0x16,0x14,0x10,0x0e,0x00,0x0d,0x00,0x0c,0x21,0x0e,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x15, +0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x2d,0xc2,0x33,0x3f,0x37,0x21,0x27,0x40,0x34,0x8f,0x81,0x14, +0x1a,0x19,0x14,0x82,0x8c,0x17,0x1d,0x1d,0x17,0x8c,0x01,0x15,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x01,0x8b,0x01,0x4f,0x2e,0x26,0x39,0x14,0x08,0x2b,0x1e,0x29,0x34,0xbf,0x17,0x13,0x13, +0x19,0xdb,0x19,0x13,0x13,0x17,0xfd,0xe1,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0x00,0x00,0x00,0x02,0x00,0x2d,0xff,0x4c,0x02,0x30,0x02,0xe4,0x00,0x27,0x00,0x35,0x00,0x4b,0x40,0x48,0x19,0x01,0x07,0x03,0x01,0x4c, +0x00,0x03,0x00,0x07,0x06,0x03,0x07,0x69,0x09,0x01,0x06,0x00,0x02,0x05,0x06,0x02,0x69,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x05,0x05,0x00,0x5f,0x08,0x01,0x00,0x00,0x3d,0x00,0x4e,0x29,0x28,0x01,0x00,0x30,0x2e,0x28,0x35,0x29,0x35,0x26,0x24,0x1f,0x1d,0x17,0x15,0x10,0x0e,0x09,0x07,0x00,0x27,0x01,0x27,0x0a, +0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x33,0x15,0x03,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x45,0x55,0x7e,0x45,0x90,0x7e, +0x72,0x83,0x56,0x4a,0x49,0x57,0x46,0x40,0x29,0x36,0x09,0x02,0x55,0x50,0x5a,0x64,0x6b,0x5d,0x6e,0x23,0x26,0x2a,0x2a,0x26,0x26,0x2a,0x2a,0xb4,0x47,0x83,0x58,0x01,0x54,0x87,0x9b,0x83,0x72,0xfe,0xf1,0x4e,0x5b,0x58,0x47,0x74,0x4a,0x51,0x20,0x1c,0x46,0x55,0x5a,0x74,0x68,0xfe,0xac,0x64,0x73,0x4b,0x01,0x2e,0x31,0x2b,0x75,0x2c, +0x2f,0x30,0x2c,0x74,0x2b,0x31,0x00,0x00,0x00,0x02,0x00,0x19,0xff,0xf7,0x02,0x67,0x02,0xe4,0x00,0x24,0x00,0x30,0x00,0x9b,0x40,0x09,0x28,0x21,0x1e,0x1b,0x04,0x07,0x08,0x01,0x4c,0x4b,0xb0,0x1a,0x50,0x58,0x40,0x34,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x01,0x00,0x08,0x07,0x01,0x08,0x69,0x00,0x04,0x04,0x02,0x61,0x00, +0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x00,0x61,0x06,0x09,0x02,0x00,0x00,0x3f,0x4d,0x0a,0x01,0x07,0x07,0x00,0x61,0x06,0x09,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x31,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x01,0x00,0x08,0x07,0x01,0x08,0x69,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x06,0x5f, +0x00,0x06,0x06,0x39,0x4d,0x0a,0x01,0x07,0x07,0x00,0x61,0x09,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1d,0x26,0x25,0x01,0x00,0x2b,0x29,0x25,0x30,0x26,0x30,0x20,0x1f,0x1d,0x1c,0x16,0x14,0x12,0x11,0x0e,0x0c,0x07,0x06,0x00,0x24,0x01,0x24,0x0b,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36, +0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x37,0x33,0x07,0x17,0x23,0x27,0x07,0x06,0x06,0x27,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xd7,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0xc3,0x5b,0x64,0x8f,0x91,0x63,0x61,0x2b,0x22,0x53, +0x26,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b,0x09,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55,0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfc,0x72,0xb0,0xbd,0x80,0x36,0x2a,0x29,0x51,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b,0x00,0x00,0x02,0x00,0x41,0xff,0x4c,0x01,0xf9,0x02,0xda,0x00,0x0a,0x00,0x0e,0x00,0x2a, +0x40,0x27,0x00,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x01,0x38,0x4d,0x06,0x04,0x05,0x03,0x02,0x02,0x3d,0x02,0x4e,0x0b,0x0b,0x00,0x00,0x0b,0x0e,0x0b,0x0e,0x0d,0x0c,0x00,0x0a,0x00,0x0a,0x25,0x11,0x07,0x09,0x18,0x2b,0x17,0x11,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x33,0x11,0x33,0x11,0x33,0x11,0xff,0x55,0x69,0x69,0x55,0x50,0x5a, +0x50,0xb4,0x01,0xea,0x5e,0x4c,0x50,0x4d,0x5d,0xfc,0x72,0x03,0x8e,0xfc,0x72,0x00,0x00,0x02,0x00,0x4d,0xff,0x66,0x02,0x0b,0x02,0xe4,0x00,0x3b,0x00,0x49,0x00,0x47,0x40,0x44,0x16,0x01,0x06,0x04,0x01,0x4c,0x00,0x04,0x05,0x06,0x05,0x04,0x06,0x80,0x00,0x06,0x01,0x05,0x06,0x01,0x7e,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x02, +0x07,0x01,0x00,0x02,0x00,0x65,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x3e,0x05,0x4e,0x01,0x00,0x33,0x32,0x27,0x24,0x22,0x21,0x1f,0x1c,0x09,0x06,0x04,0x03,0x00,0x3b,0x01,0x3a,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x2e,0x02,0x35,0x34,0x36,0x37,0x35,0x26,0x26, +0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x1e,0x02,0x15,0x14,0x06,0x23,0x13,0x16,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x06,0x15,0x14,0x16,0x17,0x01,0x13,0x5b,0x6b,0x5f,0x38,0x2f,0x32,0x32,0x39,0x33,0x32,0x5c,0x2e,0x44,0x26,0x3b, +0x34,0x34,0x38,0x66,0x57,0x32,0x4f,0x66,0x07,0x5f,0x04,0x32,0x27,0x32,0x2e,0x35,0x24,0x20,0x78,0x47,0x51,0x44,0x2f,0x15,0x37,0x2a,0x6a,0x5c,0x05,0x2c,0x38,0x2c,0x23,0x4a,0x2c,0x38,0x2b,0x22,0x9a,0x53,0x47,0x22,0x28,0x2e,0x28,0x24,0x33,0x08,0x0f,0x08,0x34,0x4a,0x28,0x3a,0x48,0x07,0x02,0x0c,0x4c,0x38,0x4a,0x57,0x4e,0x43, +0x1e,0x23,0x2c,0x26,0x21,0x2e,0x06,0x17,0x0d,0x62,0x3d,0x3a,0x45,0x03,0x02,0x02,0x21,0x41,0x33,0x4e,0x5b,0x01,0x55,0x07,0x42,0x35,0x23,0x36,0x06,0x0d,0x08,0x40,0x33,0x26,0x38,0x06,0x00,0x03,0x00,0x2d,0x00,0x6e,0x02,0x2b,0x02,0xe4,0x00,0x11,0x00,0x23,0x00,0x3f,0x00,0x69,0xb1,0x06,0x64,0x44,0x40,0x5e,0x00,0x06,0x07,0x09, +0x07,0x06,0x09,0x80,0x00,0x09,0x08,0x07,0x09,0x08,0x7e,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x00,0x08,0x0c,0x01,0x04,0x02,0x08,0x04,0x69,0x0b,0x01,0x02,0x00,0x00,0x02,0x59,0x0b,0x01,0x02,0x02,0x00,0x62,0x0a,0x01,0x00,0x02,0x00,0x52,0x25,0x24,0x13,0x12,0x01,0x00,0x3d,0x3c,0x3a, +0x38,0x33,0x31,0x2f,0x2e,0x2c,0x2a,0x24,0x3f,0x25,0x3f,0x1c,0x1a,0x12,0x23,0x13,0x23,0x0a,0x08,0x00,0x11,0x01,0x11,0x0d,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x25,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x15, +0x14,0x16,0x16,0x37,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x01,0x2c,0x4c,0x73,0x40,0x40,0x73,0x4c,0x4d,0x72,0x40,0x40,0x72,0x4d,0x3c,0x5a,0x32,0x32,0x5a,0x3c,0x3c,0x5a,0x32,0x32,0x5a,0x41,0x38,0x45,0x45,0x38,0x38,0x44,0x41, +0x21,0x1a,0x1b,0x21,0x21,0x1b,0x1a,0x21,0x41,0x44,0x6e,0x3c,0x6c,0x48,0x96,0x48,0x6c,0x3c,0x3c,0x6c,0x48,0x96,0x48,0x6c,0x3c,0x32,0x2f,0x56,0x39,0x96,0x39,0x55,0x30,0x30,0x55,0x39,0x96,0x39,0x56,0x2f,0x55,0x3f,0x34,0x82,0x34,0x3f,0x3f,0x34,0x1b,0x21,0x21,0x1b,0x82,0x1b,0x21,0x21,0x1b,0x34,0x3f,0x00,0x00,0x04,0x00,0x2d, +0x00,0x6e,0x02,0x2b,0x02,0xe4,0x00,0x11,0x00,0x23,0x00,0x30,0x00,0x39,0x00,0x63,0xb1,0x06,0x64,0x44,0x40,0x58,0x2b,0x01,0x06,0x08,0x01,0x4c,0x0b,0x07,0x02,0x05,0x06,0x02,0x06,0x05,0x02,0x80,0x00,0x01,0x00,0x03,0x04,0x01,0x03,0x69,0x00,0x04,0x00,0x09,0x08,0x04,0x09,0x69,0x00,0x08,0x00,0x06,0x05,0x08,0x06,0x67,0x00,0x02, +0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x0a,0x01,0x00,0x02,0x00,0x51,0x24,0x24,0x01,0x00,0x39,0x37,0x33,0x31,0x24,0x30,0x24,0x30,0x2f,0x2e,0x2d,0x2c,0x27,0x25,0x20,0x1e,0x17,0x15,0x0a,0x08,0x00,0x11,0x01,0x11,0x0c,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x25,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16, +0x15,0x15,0x14,0x06,0x06,0x25,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x17,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x17,0x23,0x27,0x23,0x15,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x2c,0x4c,0x73,0x40,0x40,0x73,0x4c,0x4d,0x72,0x40,0x40,0x72,0xfe,0xeb,0x32,0x5a,0x3c,0x3c, +0x5a,0x32,0x32,0x5a,0x3c,0x3c,0x5a,0x32,0x5a,0x72,0x36,0x3f,0x3c,0x42,0x40,0x3b,0x36,0x36,0x1a,0x1e,0x1e,0x1a,0x36,0x6e,0x3c,0x6c,0x48,0x96,0x48,0x6c,0x3c,0x3c,0x6c,0x48,0x96,0x48,0x6c,0x3c,0xf0,0x39,0x56,0x2f,0x2f,0x56,0x39,0x96,0x39,0x55,0x30,0x30,0x55,0x39,0xfa,0x01,0x5e,0x39,0x30,0x45,0x1a,0x96,0x8c,0x8c,0xbe,0x1d, +0x1a,0x1a,0x1d,0x00,0x00,0x02,0x00,0x0f,0x01,0x72,0x02,0x35,0x02,0xda,0x00,0x07,0x00,0x26,0x00,0x4d,0x40,0x4a,0x22,0x19,0x02,0x00,0x01,0x0e,0x01,0x07,0x00,0x02,0x4c,0x00,0x07,0x00,0x03,0x00,0x07,0x03,0x80,0x0a,0x08,0x06,0x09,0x04,0x03,0x03,0x84,0x05,0x04,0x02,0x01,0x00,0x00,0x01,0x57,0x05,0x04,0x02,0x01,0x01,0x00,0x5f, +0x02,0x01,0x00,0x01,0x00,0x4f,0x08,0x08,0x00,0x00,0x08,0x26,0x08,0x26,0x1e,0x1d,0x15,0x14,0x13,0x12,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x0b,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x33,0x11,0x33,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x11,0x23,0x35,0x34,0x36,0x37,0x06,0x06,0x07,0x07,0x23, +0x27,0x26,0x26,0x27,0x16,0x16,0x15,0x15,0x73,0x64,0x01,0x04,0x64,0x87,0x50,0x22,0x05,0x09,0x02,0x02,0x07,0x05,0x21,0x4e,0x37,0x05,0x02,0x06,0x0e,0x03,0x1e,0x33,0x21,0x03,0x0e,0x06,0x02,0x06,0x01,0x72,0x01,0x36,0x32,0x32,0xfe,0xca,0x01,0x68,0x66,0x0e,0x2b,0x0e,0x0e,0x2b,0x0e,0x66,0xfe,0x98,0xdd,0x1c,0x3e,0x13,0x14,0x33, +0x09,0x67,0x68,0x09,0x32,0x14,0x13,0x3e,0x1c,0xdd,0x00,0x00,0x00,0x02,0x00,0x96,0x01,0xc2,0x01,0xc2,0x02,0xe4,0x00,0x0b,0x00,0x17,0x00,0x39,0xb1,0x06,0x64,0x44,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01, +0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x43,0x53,0x53,0x43,0x43,0x53,0x53,0x43,0x26,0x2f,0x2f,0x26,0x25,0x30,0x30,0x01,0xc2, +0x51,0x40,0x41,0x50,0x50,0x41,0x40,0x51,0x38,0x31,0x28,0x28,0x32,0x32,0x28,0x28,0x31,0x00,0x00,0x00,0xff,0xff,0x00,0xd2,0x01,0xa3,0x01,0x75,0x02,0xd5,0x03,0x07,0x03,0x2a,0x00,0x00,0x02,0x43,0x00,0x09,0xb1,0x00,0x01,0xb8,0x02,0x43,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x69,0x01,0xa4,0x01,0xef,0x02,0xd6,0x00,0x27, +0x03,0x2a,0xff,0x97,0x02,0x44,0x01,0x07,0x03,0x2a,0x00,0x7a,0x02,0x44,0x00,0x12,0xb1,0x00,0x01,0xb8,0x02,0x44,0xb0,0x35,0x2b,0xb1,0x01,0x01,0xb8,0x02,0x44,0xb0,0x35,0x2b,0x00,0x00,0x00,0x01,0x00,0xff,0xff,0x92,0x01,0x59,0x03,0x3e,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00, +0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x17,0x11,0x33,0x11,0xff,0x5a,0x6e,0x03,0xac,0xfc,0x54,0x00,0x02,0x00,0xff,0xff,0x92,0x01,0x59,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x2c,0x00,0x00,0x04,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f, +0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0xff,0x5a,0x5a,0x5a,0x01,0xc2,0x01,0x7c,0xfe,0x84,0xfd,0xd0,0x01,0x7c,0xfe,0x84,0x00,0x00,0x01,0x00,0x50,0xff,0x92,0x02,0x08,0x03,0x3e,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02, +0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x17,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0xff,0xaf,0xaf,0x5a,0xaf,0xaf,0x6e,0x02,0x76,0x50,0xe6, +0xe6,0x50,0xfd,0x8a,0x00,0x02,0x00,0x46,0x00,0x00,0x01,0xf4,0x02,0xe4,0x00,0x1e,0x00,0x28,0x00,0x38,0x40,0x35,0x20,0x1b,0x1a,0x13,0x07,0x06,0x05,0x04,0x08,0x02,0x03,0x01,0x4c,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x27,0x25, +0x18,0x16,0x0c,0x0a,0x00,0x1e,0x01,0x1e,0x05,0x06,0x16,0x2b,0x21,0x22,0x26,0x35,0x35,0x07,0x27,0x37,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x07,0x07,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x0e,0x02,0x03,0x15,0x37,0x36,0x35,0x35,0x34,0x23,0x22,0x06,0x01,0x51,0x4d,0x5a,0x46,0x1e,0x64,0x58,0x48,0x49,0x57,0x4f, +0x46,0x51,0x29,0x24,0x22,0x32,0x0b,0x44,0x09,0x2d,0x42,0x78,0x35,0x57,0x46,0x21,0x25,0x57,0x49,0x4a,0x1b,0x51,0x25,0x01,0x04,0x46,0x55,0x54,0x47,0x55,0x43,0x6c,0x1a,0x1f,0x6c,0x25,0x29,0x2a,0x13,0x2a,0x15,0x2f,0x21,0x02,0x49,0xe3,0x13,0x21,0x5a,0x55,0x49,0x26,0x00,0x01,0x00,0x50,0xff,0x92,0x02,0x08,0x03,0x3e,0x00,0x13, +0x00,0x3d,0x40,0x3a,0x00,0x04,0x03,0x04,0x85,0x0a,0x01,0x09,0x00,0x09,0x86,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x07,0x01,0x01,0x00,0x00,0x01,0x57,0x07,0x01,0x01,0x01,0x00,0x5f,0x08,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x09,0x1f,0x2b,0x17, +0x35,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x23,0x15,0xff,0xaf,0xaf,0xaf,0xaf,0x5a,0xaf,0xaf,0xaf,0xaf,0x6e,0xfa,0x50,0x01,0x22,0x50,0xf0,0xf0,0x50,0xfe,0xde,0x50,0xfa,0x00,0x00,0x00,0x03,0x00,0x1e,0x00,0x00,0x02,0x58,0x02,0xe4,0x00,0x0d,0x00,0x27,0x00,0x35,0x00,0x79,0x40,0x0a, +0x22,0x01,0x06,0x07,0x15,0x01,0x04,0x00,0x02,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1e,0x0a,0x01,0x06,0x08,0x01,0x00,0x04,0x06,0x00,0x69,0x00,0x07,0x07,0x01,0x5f,0x03,0x02,0x02,0x01,0x01,0x38,0x4d,0x09,0x05,0x02,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x22,0x0a,0x01,0x06,0x08,0x01,0x00,0x04,0x06,0x00,0x69,0x03,0x01,0x02,0x02, +0x38,0x4d,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x09,0x05,0x02,0x04,0x04,0x39,0x04,0x4e,0x59,0x40,0x1f,0x29,0x28,0x0e,0x0e,0x01,0x00,0x30,0x2e,0x28,0x35,0x29,0x35,0x0e,0x27,0x0e,0x27,0x1d,0x1c,0x1b,0x1a,0x10,0x0f,0x08,0x06,0x00,0x0d,0x01,0x0d,0x0b,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32, +0x16,0x15,0x15,0x14,0x06,0x01,0x11,0x33,0x13,0x1e,0x02,0x17,0x2e,0x02,0x35,0x11,0x33,0x11,0x23,0x03,0x2e,0x02,0x27,0x1e,0x02,0x15,0x11,0x01,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0xf9,0x28,0x37,0x37,0x28,0x29,0x36,0x36,0xfd,0xfc,0x5f,0x75,0x06,0x10,0x11,0x06,0x02,0x06,0x04,0x46,0x5f,0x72, +0x05,0x11,0x11,0x07,0x02,0x05,0x03,0x01,0x95,0x0e,0x15,0x15,0x0e,0x0d,0x16,0x16,0x01,0x2c,0x3a,0x2f,0xe6,0x2f,0x3a,0x3a,0x2f,0xe6,0x2f,0x3a,0xfe,0xd4,0x02,0xda,0xfe,0x3b,0x15,0x44,0x4a,0x1d,0x1d,0x4c,0x4b,0x19,0x01,0xb8,0xfd,0x26,0x01,0xc6,0x17,0x44,0x49,0x1c,0x1c,0x4b,0x4b,0x1c,0xfe,0x48,0x01,0x63,0x12,0x16,0xfa,0x12, +0x16,0x16,0x12,0xfa,0x16,0x12,0x00,0x00,0x00,0x02,0x00,0x3c,0xff,0xf6,0x02,0x1c,0x02,0xe4,0x00,0x1a,0x00,0x23,0x00,0x4c,0x40,0x49,0x1e,0x1b,0x02,0x05,0x06,0x10,0x01,0x03,0x04,0x02,0x4c,0x00,0x04,0x02,0x03,0x02,0x04,0x03,0x80,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x69,0x00,0x05,0x00,0x02,0x04,0x05,0x02,0x67,0x00,0x03,0x00, +0x00,0x03,0x59,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x03,0x00,0x51,0x01,0x00,0x22,0x20,0x1d,0x1c,0x17,0x16,0x14,0x12,0x0f,0x0e,0x0a,0x08,0x00,0x1a,0x01,0x1a,0x08,0x06,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x15,0x21,0x11,0x16,0x16,0x33,0x32,0x36,0x37,0x33,0x0e,0x02,0x03,0x15, +0x21,0x35,0x26,0x26,0x23,0x22,0x06,0x01,0x2c,0x47,0x6d,0x3c,0x3c,0x6d,0x47,0x49,0x6b,0x3c,0xfe,0x84,0x0c,0x49,0x37,0x3b,0x62,0x14,0x32,0x10,0x44,0x5b,0xc0,0x01,0x18,0x0c,0x48,0x38,0x37,0x49,0x0a,0x41,0x76,0x4d,0xe6,0x4e,0x75,0x41,0x41,0x74,0x4f,0x79,0xfe,0xfd,0x15,0x2c,0x3d,0x31,0x2e,0x46,0x27,0x02,0x80,0xdd,0xdd,0x15, +0x2c,0x2c,0x00,0x00,0x00,0x04,0x00,0x2d,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x25,0x00,0x57,0x40,0x54,0x07,0x01,0x05,0x02,0x01,0x4c,0x00,0x06,0x01,0x07,0x01,0x06,0x07,0x80,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x04,0x09,0x01,0x01,0x06,0x04,0x01, +0x67,0x00,0x07,0x08,0x08,0x07,0x57,0x00,0x07,0x07,0x08,0x5f,0x0a,0x01,0x08,0x07,0x08,0x4f,0x20,0x20,0x00,0x00,0x20,0x25,0x20,0x25,0x24,0x23,0x22,0x21,0x1f,0x1d,0x19,0x17,0x16,0x14,0x10,0x0e,0x00,0x0d,0x00,0x0c,0x21,0x0b,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32, +0x36,0x35,0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x13,0x11,0x33,0x11,0x33,0x15,0x2d,0xc2,0x33,0x3f,0x37,0x21,0x27,0x40,0x34,0x8f,0x81,0x14,0x1a,0x19,0x14,0x82,0x8c,0x17,0x1d,0x1d,0x17,0x8c,0xab,0x42,0xde,0x01,0x8b,0x01,0x4f,0x2e,0x26,0x39,0x14,0x08,0x2b,0x1e,0x29,0x34,0xbf,0x17,0x13,0x13,0x19, +0xdb,0x19,0x13,0x13,0x17,0xfd,0xe5,0x01,0x4f,0xfe,0xed,0x3c,0x00,0x01,0x00,0x28,0xff,0x4c,0x02,0x30,0x00,0x00,0x00,0x07,0x00,0x49,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x18,0x02,0x01,0x00,0x01,0x01,0x00,0x70,0x00,0x01,0x03,0x03,0x01,0x57,0x00,0x01,0x01,0x03,0x60,0x04,0x01,0x03,0x01,0x03,0x50,0x1b,0x40,0x17,0x02,0x01,0x00,0x01, +0x00,0x85,0x00,0x01,0x03,0x03,0x01,0x57,0x00,0x01,0x01,0x03,0x60,0x04,0x01,0x03,0x01,0x03,0x50,0x59,0x40,0x0c,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x28,0x5a,0x01,0x54,0x5a,0xb4,0xb4,0x64,0x64,0xb4,0x00,0x00,0x00,0x00,0x02,0x00,0x14,0x00,0x56,0x02,0x4e, +0x02,0x89,0x00,0x06,0x00,0x20,0x00,0x47,0x40,0x44,0x05,0x02,0x01,0x03,0x02,0x04,0x06,0x01,0x03,0x02,0x02,0x4c,0x00,0x00,0x05,0x00,0x85,0x00,0x02,0x04,0x03,0x04,0x02,0x03,0x80,0x00,0x05,0x00,0x04,0x02,0x05,0x04,0x69,0x00,0x03,0x01,0x01,0x03,0x59,0x00,0x03,0x03,0x01,0x61,0x06,0x01,0x01,0x03,0x01,0x51,0x08,0x07,0x1a,0x19, +0x18,0x17,0x11,0x0f,0x0c,0x0b,0x07,0x20,0x08,0x20,0x13,0x07,0x06,0x17,0x2b,0x01,0x27,0x07,0x35,0x33,0x07,0x17,0x07,0x22,0x26,0x26,0x35,0x33,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x35,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x55,0xe1,0x60,0xf9,0x65,0xe2,0x4f,0x4e,0x7d,0x48,0x4e,0x33,0x5a,0x38,0x39, +0x59,0x33,0x33,0x59,0x39,0x4f,0x7c,0x48,0x48,0x7c,0x01,0x18,0xd8,0x60,0xf9,0x65,0xd8,0xf6,0x47,0x7c,0x4d,0x39,0x5a,0x35,0x35,0x5a,0x39,0x39,0x5b,0x34,0x47,0x47,0x7a,0x4e,0x4d,0x7c,0x47,0x00,0x00,0x00,0x00,0x02,0x00,0x20,0x00,0x00,0x02,0x2b,0x02,0xdf,0x00,0x1b,0x00,0x2d,0x00,0x60,0x40,0x5d,0x28,0x1f,0x02,0x08,0x06,0x01, +0x4c,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x07,0x01,0x06,0x00,0x08,0x00,0x06,0x08,0x80,0x0b,0x09,0x02,0x08,0x08,0x84,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x61,0x0a,0x01,0x00,0x04,0x00,0x51,0x1c,0x1c,0x01,0x00,0x1c,0x2d,0x1c,0x2d, +0x27,0x26,0x25,0x24,0x1e,0x1d,0x19,0x18,0x16,0x14,0x10,0x0e,0x0c,0x0b,0x09,0x07,0x00,0x1b,0x01,0x1b,0x0c,0x06,0x16,0x2b,0x13,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x03,0x11,0x33,0x13,0x2e,0x02,0x35,0x35,0x33,0x11,0x23,0x03, +0x1e,0x02,0x15,0x15,0xcf,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x39,0x5a,0x10,0x44,0x0b,0x35,0x1f,0x2e,0x3d,0x3d,0x2e,0x1f,0x35,0x0b,0x44,0x10,0x5a,0x13,0x50,0xb2,0x05,0x06,0x02,0x41,0x50,0xb2,0x06,0x05,0x02,0x01,0x86,0x2d,0x4e,0x31,0x32,0x4e,0x2d,0x3e,0x32,0x18,0x1e,0x41,0x32,0x31,0x41,0x1e,0x18,0x31,0x3f,0xfe,0x7a,0x01,0x4f, +0xfe,0xf7,0x1e,0x26,0x30,0x2c,0x69,0xfe,0xb1,0x01,0x09,0x1c,0x26,0x31,0x2d,0x69,0x00,0x03,0x00,0x20,0x00,0x00,0x02,0x3f,0x02,0xdf,0x00,0x1b,0x00,0x29,0x00,0x32,0x00,0x6b,0x40,0x68,0x24,0x01,0x08,0x0a,0x01,0x4c,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x0d,0x09,0x02,0x07,0x08,0x07,0x86, +0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x0c,0x01,0x00,0x06,0x04,0x00,0x69,0x00,0x06,0x00,0x0b,0x0a,0x06,0x0b,0x68,0x00,0x0a,0x08,0x08,0x0a,0x57,0x00,0x0a,0x0a,0x08,0x5f,0x00,0x08,0x0a,0x08,0x4f,0x1c,0x1c,0x01,0x00,0x32,0x30,0x2c,0x2a,0x1c,0x29,0x1c,0x29,0x28,0x27,0x26,0x25,0x1f,0x1d,0x19,0x18,0x16,0x14,0x10, +0x0e,0x0c,0x0b,0x09,0x07,0x00,0x1b,0x01,0x1b,0x0e,0x06,0x16,0x2b,0x13,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x03,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x17,0x23,0x27,0x23,0x15,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23, +0xcf,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x39,0x5a,0x10,0x44,0x0b,0x35,0x1f,0x2e,0x3d,0x3d,0x2e,0x1f,0x35,0x0b,0x44,0x10,0x5a,0x13,0xc6,0x38,0x44,0x34,0x2b,0x67,0x50,0x64,0x54,0x85,0x19,0x1f,0x1e,0x19,0x86,0x01,0x86,0x2d,0x4e,0x31,0x32,0x4e,0x2d,0x3e,0x32,0x18,0x1e,0x41,0x32,0x31,0x41,0x1e,0x18,0x31,0x3f,0xfe,0x7a,0x01,0x4f, +0x3d,0x2f,0x28,0x32,0x06,0x83,0x81,0x81,0xb3,0x1b,0x15,0x16,0x1c,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0x01,0xd6,0x02,0x35,0x02,0xe4,0x00,0x05,0x00,0x18,0x40,0x15,0x04,0x01,0x02,0x00,0x4a,0x02,0x01,0x02,0x00,0x00,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x13,0x01,0x01,0x23,0x27,0x07,0x23,0x01,0x09,0x01, +0x09,0x6e,0x9a,0x9e,0x01,0xd6,0x01,0x0e,0xfe,0xf2,0xa2,0xa2,0x00,0x01,0x00,0xc3,0xff,0x92,0x01,0xef,0x00,0xbe,0x00,0x05,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x11,0x11,0x10,0x03,0x06,0x19,0x2b,0x37,0x33,0x15,0x33,0x15,0x21,0xc3,0x5a, +0xd2,0xfe,0xd4,0xbe,0xdc,0x50,0x00,0x00,0x00,0x01,0x00,0x69,0xff,0x92,0x01,0x95,0x00,0xbe,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x85,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x25,0x11,0x21,0x35,0x33,0x35, +0x01,0x95,0xfe,0xd4,0xd2,0xbe,0xfe,0xd4,0x50,0xdc,0x00,0x00,0x00,0x01,0x00,0x69,0x02,0x12,0x01,0x95,0x03,0x3e,0x00,0x05,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x02,0x01,0x4f,0x11,0x11,0x10,0x03,0x06,0x19,0x2b,0x01,0x23,0x35,0x23,0x35,0x21,0x01,0x95, +0x5a,0xd2,0x01,0x2c,0x02,0x12,0xdc,0x50,0x00,0x01,0x00,0xc3,0x02,0x12,0x01,0xef,0x03,0x3e,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x23,0x15, +0xc3,0x01,0x2c,0xd2,0x02,0x12,0x01,0x2c,0x50,0xdc,0x00,0x00,0x00,0x03,0x00,0x2d,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x1f,0x00,0x54,0x40,0x51,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x0a,0x01,0x01,0x05,0x02,0x01,0x67,0x00,0x05,0x00,0x06,0x07,0x05,0x06,0x67,0x00,0x07,0x00,0x08,0x09,0x07,0x08, +0x67,0x0b,0x01,0x09,0x04,0x04,0x09,0x57,0x0b,0x01,0x09,0x09,0x04,0x5f,0x00,0x04,0x09,0x04,0x4f,0x14,0x14,0x00,0x00,0x14,0x1f,0x14,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x21,0x0c,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32, +0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d,0x3e,0x3e,0x2d,0x54,0x01,0xb7,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31,0x31,0x3d,0xfd,0x9a,0x3a,0x01,0x4f,0x3a,0x56, +0x2f,0x56,0x00,0x00,0x00,0x03,0x00,0x2d,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x19,0x00,0x45,0x40,0x42,0x00,0x04,0x01,0x05,0x01,0x04,0x05,0x80,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x07,0x01,0x01,0x04,0x02,0x01,0x67,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05,0x06,0x5f,0x08,0x01,0x06,0x05, +0x06,0x4f,0x14,0x14,0x00,0x00,0x14,0x19,0x14,0x19,0x18,0x17,0x16,0x15,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x21,0x09,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x13,0x11,0x33,0x11,0x33,0x15,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d, +0x3e,0x3e,0x2d,0x54,0xab,0x42,0xde,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31,0x31,0x3d,0xfd,0x60,0x01,0x4f,0xfe,0xed,0x3c,0x00,0x00,0x00,0x00,0x03,0x00,0x2d,0x00,0x00,0x02,0x0e,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x1f,0x00,0x58,0x40,0x55,0x1a,0x17,0x02,0x06,0x07,0x01,0x4c,0x00,0x05,0x01,0x07,0x01, +0x05,0x07,0x80,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x09,0x01,0x01,0x05,0x02,0x01,0x67,0x00,0x07,0x06,0x08,0x07,0x57,0x00,0x06,0x00,0x04,0x08,0x06,0x04,0x67,0x00,0x07,0x07,0x08,0x5f,0x0a,0x01,0x08,0x07,0x08,0x4f,0x14,0x14,0x00,0x00,0x14,0x1f,0x14,0x1f,0x1e,0x1d,0x1c,0x1b,0x19,0x18,0x16,0x15,0x13,0x11,0x0d, +0x0b,0x00,0x0a,0x00,0x09,0x21,0x0b,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x35,0x23,0x35,0x37,0x33,0x07,0x15,0x33,0x35,0x33,0x15,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d,0x3e,0x3e,0x2d,0x54,0x01,0x5f,0xcd,0xa3,0x4e,0xb2,0x8e, +0x40,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31,0x31,0x3d,0xfd,0x60,0x42,0x59,0xb4,0xc7,0x0a,0x63,0xe1,0x00,0x00,0x00,0x00,0x03,0x00,0x2d,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x1e,0x00,0x51,0x40,0x4e,0x19,0x18,0x17,0x03,0x04,0x05,0x01,0x4c,0x00,0x05,0x01,0x04,0x01,0x05,0x04,0x80, +0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x08,0x01,0x01,0x05,0x02,0x01,0x67,0x06,0x01,0x04,0x07,0x07,0x04,0x57,0x06,0x01,0x04,0x04,0x07,0x5f,0x09,0x01,0x07,0x04,0x07,0x4f,0x14,0x14,0x00,0x00,0x14,0x1e,0x14,0x1e,0x1d,0x1c,0x1b,0x1a,0x16,0x15,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x21,0x0a,0x06,0x17,0x2b,0x13, +0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x13,0x35,0x33,0x35,0x07,0x35,0x37,0x33,0x11,0x33,0x15,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d,0x3e,0x3e,0x2d,0x54,0x94,0x83,0x7a,0x61,0x5b,0x68,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31, +0x31,0x3d,0xfd,0x60,0x3c,0xd8,0x57,0x4b,0x47,0xfe,0xed,0x3c,0x00,0x03,0x00,0x2d,0xff,0xfb,0x02,0x15,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x2e,0x00,0xa6,0xb7,0x29,0x28,0x23,0x03,0x07,0x08,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x38,0x00,0x07,0x08,0x05,0x08,0x07,0x72,0x00,0x05,0x06,0x08,0x05,0x06,0x7e,0x00,0x00,0x00,0x03, +0x02,0x00,0x03,0x67,0x00,0x02,0x0a,0x01,0x01,0x09,0x02,0x01,0x67,0x00,0x09,0x00,0x08,0x07,0x09,0x08,0x67,0x00,0x06,0x04,0x04,0x06,0x59,0x00,0x06,0x06,0x04,0x61,0x0b,0x01,0x04,0x06,0x04,0x51,0x1b,0x40,0x39,0x00,0x07,0x08,0x05,0x08,0x07,0x05,0x80,0x00,0x05,0x06,0x08,0x05,0x06,0x7e,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67, +0x00,0x02,0x0a,0x01,0x01,0x09,0x02,0x01,0x67,0x00,0x09,0x00,0x08,0x07,0x09,0x08,0x67,0x00,0x06,0x04,0x04,0x06,0x59,0x00,0x06,0x06,0x04,0x61,0x0b,0x01,0x04,0x06,0x04,0x51,0x59,0x40,0x1e,0x15,0x14,0x00,0x00,0x27,0x26,0x25,0x24,0x22,0x20,0x1c,0x1a,0x18,0x17,0x14,0x2e,0x15,0x2e,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x21, +0x0c,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x37,0x23,0x35,0x33,0x15,0x07,0x16,0x16,0x15,0x14,0x06,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d,0x3e,0x3e, +0x2d,0x54,0x01,0x11,0x42,0x52,0x42,0x2d,0x25,0x25,0x2e,0x2d,0x25,0x1e,0x56,0xba,0xfa,0x4c,0x2f,0x39,0x53,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31,0x31,0x3d,0xfd,0x5b,0x4a,0x3a,0x21,0x29,0x20,0x19,0x19,0x1e,0x35,0x39,0x3c,0x46,0x34,0x08,0x37,0x28,0x32,0x41,0x00,0x03,0x00,0x2d,0x00,0x00,0x02,0x22, +0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x2c,0x00,0x57,0x40,0x54,0x15,0x01,0x07,0x05,0x01,0x4c,0x00,0x05,0x04,0x07,0x04,0x05,0x07,0x80,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x09,0x01,0x01,0x06,0x02,0x01,0x67,0x00,0x06,0x00,0x04,0x05,0x06,0x04,0x69,0x00,0x07,0x08,0x08,0x07,0x57,0x00,0x07,0x07,0x08,0x5f,0x0a,0x01, +0x08,0x07,0x08,0x4f,0x14,0x14,0x00,0x00,0x14,0x2c,0x14,0x2c,0x2b,0x2a,0x24,0x22,0x20,0x1f,0x1d,0x1b,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x21,0x0b,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x13,0x35,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06, +0x15,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x33,0x15,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d,0x3e,0x3e,0x2d,0x54,0x9b,0x9a,0x17,0x1c,0x26,0x23,0x25,0x2c,0x42,0x03,0x50,0x40,0x41,0x4a,0x2c,0x24,0x54,0xad,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31,0x31,0x3d,0xfd,0x60, +0x3e,0x5b,0x0e,0x20,0x11,0x1e,0x23,0x2a,0x24,0x3f,0x4a,0x42,0x38,0x23,0x3a,0x14,0x2d,0x3c,0x00,0x00,0x00,0x05,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x16,0x00,0x1f,0x00,0x26,0x00,0x2d,0x00,0x40,0x40,0x3d,0x2c,0x2b,0x23,0x22,0x04,0x00,0x04,0x01,0x4c,0x05,0x01,0x00,0x04,0x00,0x86,0x00,0x01,0x06,0x01,0x02, +0x03,0x01,0x02,0x69,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x11,0x10,0x01,0x00,0x1c,0x1b,0x14,0x13,0x10,0x16,0x11,0x16,0x09,0x07,0x00,0x0f,0x01,0x0f,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x22,0x06,0x07,0x21,0x26, +0x26,0x03,0x36,0x36,0x37,0x37,0x21,0x17,0x16,0x16,0x25,0x34,0x27,0x03,0x3e,0x02,0x25,0x14,0x16,0x16,0x17,0x03,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x45,0x70,0x23,0x01,0xb0,0x23,0x70,0x45,0x0c,0x1b,0x0d,0x88,0xfe,0x89,0x88,0x0d,0x1a,0x01,0x10,0x14,0xd6,0x43,0x6a,0x3d,0xfd,0xf8,0x3c, +0x68,0x42,0xd3,0x13,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x02,0x3a,0x3c,0x33,0x33,0x3c,0xfe,0x20,0x17,0x2f,0x16,0xe8,0xe8,0x16,0x2f,0xc5,0x37,0x30,0xfe,0x96,0x06,0x47,0x70,0x46,0x45,0x70,0x46,0x07,0x01,0x67,0x2f,0x00,0x02,0x00,0x34,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0b,0x00,0x25,0x00,0x5f, +0x40,0x5c,0x20,0x1d,0x12,0x03,0x09,0x06,0x01,0x4c,0x07,0x01,0x06,0x00,0x09,0x00,0x06,0x09,0x80,0x00,0x09,0x08,0x00,0x09,0x08,0x7e,0x0c,0x0a,0x02,0x08,0x08,0x84,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x0b,0x01,0x05,0x00,0x00,0x05,0x57,0x0b,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x05, +0x00,0x4f,0x0c,0x0c,0x00,0x00,0x0c,0x25,0x0c,0x25,0x1f,0x1e,0x19,0x18,0x17,0x16,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0d,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x13,0x11,0x33,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x11,0x23,0x35,0x34,0x36,0x37,0x07,0x23,0x27, +0x1e,0x02,0x15,0x15,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0x70,0x5b,0x37,0x0a,0x0b,0x04,0x04,0x0c,0x0a,0x35,0x5a,0x40,0x04,0x0a,0x56,0x43,0x58,0x05,0x07,0x04,0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x3b,0x01,0x4f,0x7b,0x16,0x1b,0x11,0x11,0x1a,0x18,0x7a,0xfe,0xb1,0x5f,0x44,0x61,0x26,0xca,0xc7,0x19,0x35, +0x46,0x34,0x5f,0x00,0x00,0x02,0x00,0x34,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0b,0x00,0x23,0x00,0x57,0x40,0x54,0x1f,0x19,0x13,0x0d,0x04,0x08,0x06,0x01,0x4c,0x07,0x01,0x06,0x00,0x08,0x00,0x06,0x08,0x80,0x0b,0x09,0x02,0x08,0x08,0x84,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x0a,0x01, +0x05,0x00,0x00,0x05,0x57,0x0a,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x05,0x00,0x4f,0x0c,0x0c,0x00,0x00,0x0c,0x23,0x0c,0x23,0x1b,0x1a,0x18,0x17,0x0f,0x0e,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0c,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x13,0x37,0x27,0x33,0x17,0x16,0x16,0x17,0x36, +0x36,0x37,0x37,0x33,0x07,0x17,0x23,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0x70,0x7e,0x7d,0x4e,0x42,0x0d,0x08,0x07,0x05,0x09,0x0c,0x40,0x4d,0x7d,0x7d,0x4f,0x41,0x0d,0x0a,0x06,0x05,0x06,0x0d,0x42,0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x3b,0xa9,0xa6,0x56,0x10,0x18, +0x0e,0x0e,0x18,0x10,0x56,0xa8,0xa7,0x55,0x11,0x1a,0x0d,0x0d,0x19,0x11,0x56,0x00,0x00,0x02,0x00,0x34,0x00,0x00,0x02,0x49,0x02,0xda,0x00,0x0b,0x00,0x13,0x00,0x4d,0x40,0x4a,0x0b,0x01,0x09,0x06,0x09,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x0a,0x01,0x05,0x00,0x00,0x07,0x05,0x00, +0x67,0x00,0x07,0x06,0x06,0x07,0x57,0x00,0x07,0x07,0x06,0x5f,0x08,0x01,0x06,0x07,0x06,0x4f,0x0c,0x0c,0x00,0x00,0x0c,0x13,0x0c,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0c,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x13,0x11,0x23,0x35,0x21,0x15,0x23, +0x11,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0xf9,0x98,0x01,0x72,0x98,0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x3b,0x01,0x13,0x3c,0x3c,0xfe,0xed,0x00,0x04,0x00,0x34,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0b,0x00,0x19,0x00,0x22,0x00,0x2b,0x00,0x61,0x40,0x5e,0x13,0x01,0x0b,0x08,0x01,0x4c,0x00,0x01,0x00,0x02, +0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x0c,0x01,0x05,0x00,0x00,0x06,0x05,0x00,0x67,0x00,0x06,0x00,0x09,0x08,0x06,0x09,0x67,0x00,0x08,0x00,0x0b,0x0a,0x08,0x0b,0x67,0x00,0x0a,0x07,0x07,0x0a,0x57,0x00,0x0a,0x0a,0x07,0x5f,0x0d,0x01,0x07,0x0a,0x07,0x4f,0x0c,0x0c,0x00,0x00,0x2b,0x29,0x25,0x23,0x22,0x20, +0x1c,0x1a,0x0c,0x19,0x0c,0x18,0x0f,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0e,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23, +0x23,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0x7f,0xc2,0x33,0x3f,0x37,0x21,0x27,0x40,0x34,0x8f,0x81,0x14,0x1a,0x19,0x14,0x82,0x8c,0x17,0x1d,0x1d,0x17,0x8c,0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x3b,0x01,0x4f,0x2e,0x26,0x39,0x14,0x08,0x2b,0x1e,0x29,0x34,0xbf,0x17,0x13,0x13,0x19,0xdb,0x19,0x13,0x13,0x17, +0x00,0x02,0x00,0x34,0xff,0xc6,0x02,0x46,0x02,0xda,0x00,0x0b,0x00,0x2f,0x00,0xb7,0x40,0x0c,0x29,0x1b,0x1a,0x03,0x09,0x0a,0x2e,0x01,0x06,0x09,0x02,0x4c,0x4b,0xb0,0x12,0x50,0x58,0x40,0x3e,0x00,0x0a,0x08,0x09,0x09,0x0a,0x72,0x00,0x0b,0x06,0x0b,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04, +0x67,0x0c,0x01,0x05,0x00,0x00,0x07,0x05,0x00,0x67,0x00,0x07,0x00,0x08,0x0a,0x07,0x08,0x69,0x00,0x09,0x06,0x06,0x09,0x59,0x00,0x09,0x09,0x06,0x62,0x0d,0x01,0x06,0x09,0x06,0x52,0x1b,0x40,0x3f,0x00,0x0a,0x08,0x09,0x08,0x0a,0x09,0x80,0x00,0x0b,0x06,0x0b,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05, +0x03,0x04,0x67,0x0c,0x01,0x05,0x00,0x00,0x07,0x05,0x00,0x67,0x00,0x07,0x00,0x08,0x0a,0x07,0x08,0x69,0x00,0x09,0x06,0x06,0x09,0x59,0x00,0x09,0x09,0x06,0x62,0x0d,0x01,0x06,0x09,0x06,0x52,0x59,0x40,0x1e,0x0d,0x0c,0x00,0x00,0x2d,0x2c,0x2b,0x2a,0x28,0x26,0x22,0x20,0x15,0x13,0x0c,0x2f,0x0d,0x2f,0x00,0x0b,0x00,0x0b,0x11,0x11, +0x11,0x11,0x11,0x0e,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x01,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x07,0x27,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x27,0x33,0x17,0x23,0x27,0x06,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca, +0x01,0x1a,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x32,0x4f,0x2e,0x21,0x2d,0x05,0x05,0x3e,0x2d,0x2d,0x3e,0x3e,0x2d,0x0a,0x09,0x36,0x4b,0x8e,0x4b,0x30,0x1c,0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x36,0x2d,0x4e,0x31,0x32,0x4e,0x2d,0x2d,0x4e,0x32,0x3a,0x2e,0x36,0x0b,0x1a,0x0d,0x31,0x41,0x41,0x31,0x31,0x41,0x02,0x46,0xb7, +0x3e,0x09,0x00,0x00,0x00,0x02,0x00,0x34,0xff,0xfb,0x02,0x3a,0x02,0xda,0x00,0x0b,0x00,0x27,0x00,0x62,0x40,0x5f,0x00,0x08,0x09,0x0b,0x09,0x08,0x0b,0x80,0x00,0x0b,0x0a,0x09,0x0b,0x0a,0x7e,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x0c,0x01,0x05,0x00,0x00,0x07,0x05,0x00,0x67,0x00,0x07, +0x00,0x09,0x08,0x07,0x09,0x69,0x00,0x0a,0x06,0x06,0x0a,0x59,0x00,0x0a,0x0a,0x06,0x61,0x0d,0x01,0x06,0x0a,0x06,0x51,0x0d,0x0c,0x00,0x00,0x25,0x24,0x22,0x20,0x1c,0x1a,0x18,0x17,0x15,0x13,0x0c,0x27,0x0d,0x27,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0e,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15, +0x23,0x15,0x01,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0x01,0x21,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x39,0x5a,0x10,0x44,0x0b,0x35,0x1f,0x2e,0x3d,0x3d,0x2e,0x1f,0x35,0x0b,0x44,0x10,0x5a, +0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x36,0x2d,0x4e,0x31,0x32,0x4e,0x2d,0x3e,0x32,0x18,0x1e,0x41,0x32,0x31,0x41,0x1e,0x18,0x31,0x3f,0x00,0x00,0x00,0x00,0x02,0x00,0x3e,0xff,0xfc,0x02,0x2f,0x02,0xda,0x00,0x09,0x00,0x35,0x00,0x61,0x40,0x5e,0x0b,0x01,0x04,0x03,0x08,0x03,0x04,0x08,0x80,0x00,0x09,0x0a,0x06,0x0a, +0x09,0x06,0x80,0x00,0x06,0x07,0x0a,0x06,0x07,0x7e,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x08,0x00,0x0a,0x09,0x08,0x0a,0x69,0x00,0x07,0x05,0x05,0x07,0x59,0x00,0x07,0x07,0x05,0x61,0x0c,0x01,0x05,0x07,0x05,0x51,0x0b,0x0a,0x00,0x00,0x29,0x26,0x24,0x23,0x21,0x1e,0x13,0x10,0x0e, +0x0d,0x0a,0x35,0x0b,0x34,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x0d,0x06,0x1a,0x2b,0x13,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17, +0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x3e,0x01,0x2a,0xe8,0xca,0xca,0x01,0x04,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x01,0x8b,0x01,0x4f,0x3a,0x56,0x3a,0x85,0xfe,0x71,0x3a,0x31,0x16,0x1b, +0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0x00,0x00,0x00,0x02,0x00,0x3e,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x09,0x00,0x13,0x00,0x55,0x40,0x52,0x0a,0x01,0x04,0x03,0x05,0x03,0x04,0x05,0x80,0x0b,0x01,0x09,0x08,0x09,0x86,0x00,0x00,0x00, +0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x05,0x00,0x06,0x07,0x05,0x06,0x67,0x00,0x07,0x08,0x08,0x07,0x57,0x00,0x07,0x07,0x08,0x5f,0x00,0x08,0x07,0x08,0x4f,0x0a,0x0a,0x00,0x00,0x0a,0x13,0x0a,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x0c,0x06,0x1a, +0x2b,0x13,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x13,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x3e,0x01,0x2a,0xe8,0xca,0xca,0x86,0x01,0x2a,0xe8,0xca,0xca,0x01,0x8b,0x01,0x4f,0x3a,0x56,0x3a,0x85,0xfe,0x75,0x01,0x4f,0x3a,0x56,0x3a,0x85,0x00,0x00,0x00,0x00,0x02,0x00,0x20,0xff,0xfc,0x02,0x2f,0x02,0xdf,0x00,0x1f, +0x00,0x4b,0x00,0x65,0x40,0x62,0x00,0x01,0x02,0x05,0x02,0x01,0x05,0x80,0x00,0x0b,0x0c,0x08,0x0c,0x0b,0x08,0x80,0x00,0x08,0x09,0x0c,0x08,0x09,0x7e,0x00,0x00,0x00,0x02,0x01,0x00,0x02,0x69,0x00,0x05,0x00,0x04,0x03,0x05,0x04,0x67,0x00,0x03,0x00,0x06,0x0a,0x03,0x06,0x69,0x00,0x0a,0x00,0x0c,0x0b,0x0a,0x0c,0x69,0x00,0x09,0x07, +0x07,0x09,0x59,0x00,0x09,0x09,0x07,0x61,0x0d,0x01,0x07,0x09,0x07,0x51,0x21,0x20,0x3f,0x3c,0x3a,0x39,0x37,0x34,0x29,0x26,0x24,0x23,0x20,0x4b,0x21,0x4a,0x24,0x11,0x12,0x24,0x22,0x12,0x23,0x0e,0x06,0x1d,0x2b,0x13,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x23,0x35, +0x33,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x20,0x2e,0x4f,0x32,0x39,0x59,0x10,0x44,0x0b,0x34,0x1f, +0x2e,0x3d,0x3d,0x2e,0x20,0x36,0x0d,0x63,0xa7,0x2c,0x4b,0x30,0x32,0x4f,0x2e,0x01,0x64,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x02,0x32,0x32,0x4e,0x2d,0x3d,0x2d,0x14,0x1c,0x41,0x32,0x31, +0x41,0x20,0x27,0x39,0x0e,0x33,0x4d,0x2c,0x2d,0x4e,0xfd,0xfb,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x02,0x49,0x02,0xda,0x00,0x0b,0x00,0x13,0x00,0x4c,0x40,0x49,0x02,0x01, +0x00,0x01,0x00,0x85,0x0a,0x05,0x02,0x03,0x04,0x07,0x04,0x03,0x07,0x80,0x0b,0x01,0x09,0x06,0x09,0x86,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x00,0x07,0x06,0x06,0x07,0x57,0x00,0x07,0x07,0x06,0x5f,0x08,0x01,0x06,0x07,0x06,0x4f,0x0c,0x0c,0x00,0x00,0x0c,0x13,0x0c,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11, +0x11,0x11,0x11,0x11,0x0c,0x06,0x1b,0x2b,0x13,0x11,0x33,0x15,0x33,0x35,0x33,0x11,0x23,0x35,0x23,0x15,0x01,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x2d,0x42,0xb2,0x42,0x42,0xb2,0x01,0x00,0x98,0x01,0x72,0x98,0x01,0x8b,0x01,0x4f,0x84,0x84,0xfe,0xb1,0x8f,0x8f,0xfe,0x75,0x01,0x13,0x3c,0x3c,0xfe,0xed,0x00,0x00,0x00,0x04,0xff,0xf6, +0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x21,0x00,0x27,0x00,0x2d,0x00,0x50,0x40,0x4d,0x2c,0x23,0x19,0x03,0x00,0x05,0x01,0x4c,0x07,0x01,0x00,0x05,0x00,0x86,0x00,0x01,0x08,0x01,0x02,0x03,0x01,0x02,0x69,0x04,0x01,0x03,0x05,0x05,0x03,0x57,0x04,0x01,0x03,0x03,0x05,0x5f,0x0a,0x06,0x09,0x03,0x05,0x03,0x05,0x4f,0x28,0x28, +0x22,0x22,0x11,0x10,0x01,0x00,0x28,0x2d,0x28,0x2d,0x22,0x27,0x22,0x27,0x1e,0x1d,0x15,0x14,0x10,0x21,0x11,0x21,0x09,0x07,0x00,0x0f,0x01,0x0f,0x0b,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x22,0x06,0x06,0x07,0x33,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x2e, +0x02,0x13,0x07,0x3e,0x02,0x37,0x21,0x1e,0x02,0x17,0x27,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x46,0x71,0x47,0x05,0x77,0x59,0x0e,0x19,0x0c,0x0c,0x1b,0x0d,0x59,0x76,0x05,0x47,0x71,0x60,0x8c,0x40,0x66,0x3e,0x05,0xfd,0xfa,0x05,0x3d,0x64,0x3f,0x8b,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c, +0x59,0x58,0x8d,0x51,0x02,0x3a,0x3e,0x6b,0x44,0x97,0x16,0x2f,0x17,0x17,0x2f,0x16,0x97,0x44,0x6b,0x3e,0xfe,0xe6,0xed,0x06,0x40,0x67,0x40,0x40,0x66,0x40,0x06,0xec,0x00,0x02,0x00,0x51,0x00,0x00,0x02,0x07,0x02,0x30,0x00,0x04,0x00,0x09,0x00,0x28,0x40,0x25,0x09,0x08,0x07,0x03,0x02,0x01,0x06,0x01,0x4a,0x00,0x01,0x00,0x00,0x01, +0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x06,0x05,0x00,0x04,0x00,0x04,0x03,0x06,0x16,0x2b,0x33,0x11,0x37,0x17,0x11,0x25,0x21,0x11,0x27,0x07,0x51,0xdb,0xdb,0xfe,0x7c,0x01,0x52,0xa9,0xa9,0x01,0x5b,0xd5,0xd5,0xfe,0xa5,0x32,0x01,0x11,0xa5,0xa5,0x00,0x00,0x00,0x04,0x00,0x14,0x00,0x00,0x02,0x44, +0x03,0x16,0x00,0x06,0x00,0x0d,0x00,0x17,0x00,0x1b,0x00,0x53,0x40,0x50,0x08,0x06,0x02,0x03,0x4a,0x0a,0x05,0x02,0x03,0x02,0x01,0x00,0x04,0x03,0x00,0x67,0x00,0x04,0x00,0x01,0x07,0x04,0x01,0x67,0x0b,0x01,0x07,0x0c,0x01,0x09,0x08,0x07,0x09,0x67,0x00,0x08,0x06,0x06,0x08,0x57,0x00,0x08,0x08,0x06,0x5f,0x00,0x06,0x08,0x06,0x4f, +0x18,0x18,0x0e,0x0e,0x07,0x07,0x18,0x1b,0x18,0x1b,0x1a,0x19,0x0e,0x17,0x0e,0x17,0x14,0x11,0x07,0x0d,0x07,0x0d,0x11,0x14,0x11,0x11,0x10,0x0d,0x06,0x1b,0x2b,0x01,0x23,0x15,0x23,0x35,0x23,0x01,0x13,0x27,0x07,0x33,0x15,0x33,0x35,0x13,0x15,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x35,0x17,0x15,0x33,0x35,0x02,0x44,0x9b,0xfa,0x9b, +0x01,0x18,0xba,0xba,0xba,0x6c,0x9c,0x2f,0x21,0x1b,0x82,0x1b,0x21,0x2f,0x9c,0x01,0xe5,0xd6,0xd6,0x01,0x31,0xfe,0xf5,0xcd,0xcd,0xd6,0xd6,0xfe,0xb4,0x83,0x1b,0x21,0x21,0x1b,0x83,0x26,0x71,0x71,0x00,0x00,0x00,0x02,0xff,0x5b,0x00,0x41,0x02,0x8f,0x02,0xa3,0x00,0x0a,0x00,0x16,0x00,0x29,0x40,0x26,0x16,0x15,0x14,0x13,0x12,0x11, +0x10,0x0f,0x0e,0x0d,0x0c,0x02,0x0c,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x00,0x76,0x01,0x00,0x05,0x03,0x00,0x0a,0x01,0x0a,0x03,0x06,0x16,0x2b,0x25,0x21,0x01,0x01,0x21,0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x27,0x37,0x27,0x07,0x27,0x07,0x17,0x07,0x17,0x37,0x17,0x02,0x2e,0xfe,0x5c,0xfe,0xd1,0x01,0x33, +0x01,0xa0,0x2c,0x35,0x35,0x17,0x9e,0x9b,0x43,0x9b,0x9a,0x48,0x9c,0x99,0x45,0x98,0x9b,0x41,0x01,0x2c,0x01,0x36,0x36,0x2c,0xfe,0x62,0x2b,0x37,0x96,0x9c,0x9c,0x43,0x9b,0x9b,0x47,0x9c,0x99,0x44,0x99,0x9b,0x00,0x02,0xff,0xc9,0x00,0x41,0x02,0xfd,0x02,0xa3,0x00,0x0a,0x00,0x16,0x00,0x29,0x40,0x26,0x16,0x15,0x14,0x13,0x12,0x11, +0x10,0x0f,0x0e,0x0d,0x0c,0x09,0x0c,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x00,0x76,0x01,0x00,0x08,0x06,0x00,0x0a,0x01,0x0a,0x03,0x06,0x16,0x2b,0x37,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x21,0x01,0x01,0x25,0x17,0x37,0x17,0x37,0x27,0x37,0x27,0x07,0x27,0x07,0x17,0x2a,0x2b,0x36,0x36,0x2b,0x01,0xa0,0x01, +0x33,0xfe,0xd1,0xfe,0x47,0x48,0x9b,0x98,0x45,0x99,0x9c,0x48,0x9a,0x9b,0x43,0x9b,0x41,0x37,0x2b,0x01,0x9e,0x2c,0x36,0xfe,0xca,0xfe,0xd4,0x96,0x47,0x9b,0x99,0x44,0x99,0x9c,0x47,0x9b,0x9b,0x43,0x9c,0x00,0x00,0x09,0xff,0xa9,0x00,0x41,0x02,0xaf,0x02,0xa3,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1d,0x00,0x21,0x00,0x25,0x00,0x29, +0x00,0x2d,0x00,0x31,0x00,0x64,0x40,0x61,0x00,0x01,0x0a,0x07,0x05,0x03,0x03,0x02,0x01,0x03,0x67,0x09,0x08,0x04,0x03,0x02,0x10,0x0e,0x02,0x0c,0x06,0x02,0x0c,0x67,0x0f,0x0d,0x0b,0x03,0x06,0x00,0x12,0x11,0x06,0x12,0x67,0x00,0x11,0x00,0x00,0x11,0x57,0x00,0x11,0x11,0x00,0x60,0x13,0x01,0x00,0x11,0x00,0x50,0x01,0x00,0x31,0x30, +0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x09,0x06,0x00,0x0f,0x01,0x0e,0x14,0x06,0x16,0x2b,0x37,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x21,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x01,0x33,0x35,0x23,0x17,0x33, +0x35,0x23,0x01,0x33,0x11,0x23,0x15,0x33,0x23,0x33,0x35,0x23,0x03,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x01,0x21,0x35,0x21,0x14,0x2f,0x3c,0x36,0x2b,0x02,0x44,0x2c,0x35,0x35,0x2c,0xfd,0x9f,0x6c,0x6c,0x98,0x6c,0x6c,0x01,0x7a,0x6c,0xb6,0x4a,0xe2,0x6c,0x6c,0xe6,0x6c,0x6c,0x98,0x6c,0x6c,0x98,0x6c,0x6c,0xfe, +0x86,0x01,0xe6,0xfe,0x1a,0x41,0x3c,0x2f,0x01,0x95,0x2c,0x36,0x36,0x2c,0xfe,0x61,0x2b,0x36,0x01,0x9e,0x80,0x80,0x80,0xfe,0xd4,0x01,0x2c,0x80,0x80,0xfe,0xd4,0x80,0x80,0x80,0x80,0x80,0xfe,0xd4,0x80,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x02,0x4e,0x02,0xda,0x00,0x07,0x00,0x0b,0x00,0x33,0x40,0x30,0x04,0x01,0x01,0x07,0x05,0x02, +0x00,0x02,0x01,0x00,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x06,0x01,0x03,0x02,0x03,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x21,0x03,0x23,0x35,0x33,0x13,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x69,0xbc,0xa3,0xe5,0xbd,0xa2,0xcc,0xcc, +0x02,0x8a,0x50,0xfd,0x76,0x50,0x02,0x8a,0x50,0x50,0x00,0x00,0x00,0x01,0x00,0x64,0xff,0xe2,0x01,0xf4,0x02,0xdb,0x00,0x16,0x00,0x3f,0x40,0x3c,0x12,0x01,0x08,0x49,0x00,0x03,0x02,0x03,0x85,0x09,0x01,0x08,0x07,0x08,0x86,0x04,0x01,0x02,0x05,0x01,0x01,0x00,0x02,0x01,0x67,0x06,0x01,0x00,0x07,0x07,0x00,0x57,0x06,0x01,0x00,0x00, +0x07,0x5f,0x0a,0x01,0x07,0x00,0x07,0x4f,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x0b,0x06,0x1f,0x2b,0x13,0x33,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x33,0x07,0x27,0x33,0x35,0x23,0x6e,0x93,0x93,0x93,0x56,0x93,0x93,0x93,0x93,0x9d,0xc2,0xce,0x9d,0x93,0x01,0x94, +0x59,0x50,0x9e,0x9e,0x50,0x59,0x50,0x7e,0xe4,0xe4,0x7e,0x00,0x00,0x01,0x00,0x64,0xff,0xff,0x01,0xf4,0x02,0xf8,0x00,0x16,0x00,0x44,0x40,0x41,0x05,0x01,0x01,0x4a,0x02,0x01,0x01,0x00,0x01,0x85,0x00,0x07,0x06,0x07,0x86,0x03,0x01,0x00,0x0b,0x0a,0x02,0x04,0x05,0x00,0x04,0x67,0x09,0x01,0x05,0x06,0x06,0x05,0x57,0x09,0x01,0x05, +0x05,0x06,0x5f,0x08,0x01,0x06,0x05,0x06,0x4f,0x00,0x00,0x00,0x16,0x00,0x16,0x15,0x14,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x11,0x11,0x0c,0x06,0x1f,0x2b,0x13,0x35,0x33,0x35,0x23,0x37,0x17,0x23,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x35,0x6e,0x93,0x9d,0xce,0xc2,0x9d,0x93,0x93,0x93,0x93,0x56, +0x93,0x93,0x01,0x46,0x50,0x7e,0xe4,0xe4,0x7e,0x50,0x59,0x50,0x9e,0x9e,0x50,0x59,0x00,0x06,0x00,0x00,0x00,0x48,0x02,0x58,0x02,0x9c,0x00,0x0a,0x00,0x0e,0x00,0x19,0x00,0x24,0x00,0x2f,0x00,0x5f,0x00,0x6e,0x40,0x6b,0x0f,0x01,0x0d,0x05,0x01,0x01,0x00,0x0d,0x01,0x69,0x0e,0x14,0x04,0x03,0x00,0x10,0x0c,0x02,0x03,0x02,0x00,0x03, +0x69,0x11,0x0b,0x02,0x02,0x13,0x08,0x15,0x03,0x06,0x07,0x02,0x06,0x69,0x09,0x01,0x07,0x0a,0x0a,0x07,0x59,0x09,0x01,0x07,0x07,0x0a,0x61,0x12,0x16,0x02,0x0a,0x07,0x0a,0x51,0x31,0x30,0x1b,0x1a,0x10,0x0f,0x5c,0x5b,0x58,0x56,0x52,0x50,0x4f,0x4d,0x49,0x47,0x44,0x43,0x40,0x3e,0x3a,0x38,0x37,0x35,0x30,0x5f,0x31,0x5f,0x2e,0x2c, +0x28,0x26,0x20,0x1e,0x1a,0x24,0x1b,0x24,0x15,0x13,0x0f,0x19,0x10,0x19,0x11,0x12,0x24,0x21,0x17,0x06,0x1a,0x2b,0x01,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0x33,0x35,0x23,0x27,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x05,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x05,0x35,0x23,0x22,0x06, +0x15,0x14,0x16,0x33,0x32,0x36,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x33,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x23,0x15,0x14,0x06,0x01,0x9c,0x41,0x1c,0x25,0x25,0x1c,0x1c,0x25,0xa6, +0x6c,0x6c,0x7b,0x41,0x25,0x1c,0x1c,0x25,0x25,0x01,0x7e,0x41,0x25,0x1c,0x1c,0x25,0x25,0xfe,0xc3,0x41,0x1c,0x25,0x25,0x1c,0x1c,0x25,0x41,0x34,0x47,0x47,0x34,0x41,0x41,0x34,0x47,0x47,0x34,0x35,0x46,0x6c,0x47,0x34,0x35,0x46,0x46,0x35,0x41,0x41,0x35,0x46,0x46,0x35,0x34,0x47,0x6c,0x46,0x02,0x24,0x41,0x25,0x1c,0x1c,0x25,0x25, +0xfe,0xf8,0x74,0x37,0x41,0x1c,0x25,0x25,0x1c,0x1c,0x25,0xe2,0x41,0x1c,0x25,0x25,0x1c,0x1c,0x25,0x41,0x41,0x25,0x1c,0x1c,0x25,0x25,0x5c,0x44,0x34,0x34,0x44,0x74,0x44,0x34,0x34,0x44,0x44,0x34,0x41,0x41,0x34,0x44,0x44,0x34,0x34,0x44,0x74,0x44,0x34,0x34,0x44,0x44,0x34,0x41,0x41,0x34,0x44,0x00,0x00,0x00,0x00,0x02,0xff,0xec, +0x00,0x32,0x02,0x67,0x02,0xda,0x00,0x11,0x00,0x1a,0x00,0x3d,0x40,0x3a,0x19,0x02,0x02,0x00,0x04,0x1a,0x01,0x02,0x03,0x05,0x02,0x4c,0x12,0x00,0x02,0x02,0x49,0x00,0x01,0x00,0x04,0x00,0x01,0x04,0x67,0x00,0x00,0x00,0x05,0x03,0x00,0x05,0x67,0x00,0x03,0x02,0x02,0x03,0x57,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x03,0x02,0x4f,0x11, +0x11,0x12,0x25,0x33,0x13,0x06,0x06,0x1c,0x2b,0x25,0x01,0x01,0x15,0x33,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x21,0x07,0x35,0x21,0x11,0x23,0x11,0x23,0x35,0x07,0x01,0x1d,0xfe,0xcf,0x01,0x31,0x4c,0x21,0x1b,0x86,0x1b,0x21,0x21,0x1b,0xfe,0xf2,0x2c,0x01,0x47,0xa0,0xa7,0xc5,0x32,0x01,0x1d,0x01,0x1d,0xa5, +0xd7,0x1b,0x21,0x21,0x1b,0xfe,0x76,0x1b,0x21,0x40,0x6b,0x01,0xaa,0xfe,0xee,0x6c,0xb8,0x00,0x00,0x00,0x00,0x02,0x00,0x52,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x05,0x00,0x0f,0x00,0x48,0x40,0x45,0x00,0x00,0x01,0x00,0x85,0x09,0x01,0x07,0x06,0x07,0x86,0x00,0x01,0x08,0x01,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03, +0x04,0x67,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05,0x06,0x5f,0x00,0x06,0x05,0x06,0x4f,0x06,0x06,0x00,0x00,0x06,0x0f,0x06,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11,0x0a,0x06,0x18,0x2b,0x13,0x11,0x33,0x11,0x33,0x15,0x03,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x52,0x42,0xde,0x6c, +0x01,0x2a,0xe8,0xca,0xca,0x01,0x8b,0x01,0x4f,0xfe,0xed,0x3c,0xfe,0x75,0x01,0x4f,0x3a,0x56,0x3a,0x85,0x00,0x02,0x00,0x2d,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x11,0x00,0x1e,0x00,0x54,0x40,0x51,0x0c,0x03,0x02,0x02,0x00,0x19,0x01,0x08,0x05,0x02,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x0a,0x03,0x02,0x02,0x04,0x02,0x85,0x06,0x01, +0x04,0x05,0x04,0x85,0x0b,0x09,0x02,0x07,0x08,0x07,0x86,0x00,0x05,0x08,0x08,0x05,0x57,0x00,0x05,0x05,0x08,0x5f,0x00,0x08,0x05,0x08,0x4f,0x12,0x12,0x00,0x00,0x12,0x1e,0x12,0x1e,0x1d,0x1c,0x1b,0x1a,0x18,0x17,0x16,0x15,0x14,0x13,0x00,0x11,0x00,0x11,0x11,0x16,0x11,0x0c,0x06,0x19,0x2b,0x13,0x11,0x33,0x13,0x2e,0x02,0x35,0x35, +0x33,0x11,0x23,0x03,0x1e,0x02,0x15,0x15,0x13,0x11,0x33,0x15,0x33,0x37,0x33,0x07,0x17,0x23,0x27,0x23,0x15,0x2d,0x50,0xb2,0x05,0x06,0x02,0x41,0x50,0xb2,0x06,0x05,0x02,0x87,0x42,0x4f,0x60,0x4a,0x71,0x7b,0x4e,0x66,0x4f,0x01,0x8b,0x01,0x4f,0xfe,0xf7,0x1e,0x25,0x31,0x2c,0x69,0xfe,0xb1,0x01,0x09,0x1c,0x26,0x31,0x2d,0x69,0xfe, +0x75,0x01,0x4f,0x86,0x86,0xa1,0xae,0x8f,0x8f,0x00,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x11,0x00,0x17,0x00,0x43,0x40,0x40,0x0c,0x03,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x07,0x03,0x02,0x02,0x04,0x02,0x85,0x00,0x04,0x05,0x04,0x85,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05, +0x06,0x5f,0x08,0x01,0x06,0x05,0x06,0x4f,0x12,0x12,0x00,0x00,0x12,0x17,0x12,0x17,0x16,0x15,0x14,0x13,0x00,0x11,0x00,0x11,0x11,0x16,0x11,0x09,0x06,0x19,0x2b,0x13,0x11,0x33,0x13,0x2e,0x02,0x35,0x35,0x33,0x11,0x23,0x03,0x1e,0x02,0x15,0x15,0x13,0x11,0x33,0x11,0x33,0x15,0x2d,0x50,0xb2,0x05,0x06,0x02,0x41,0x50,0xb2,0x06,0x05, +0x02,0xac,0x42,0xde,0x01,0x8b,0x01,0x4f,0xfe,0xf7,0x1e,0x25,0x31,0x2c,0x69,0xfe,0xb1,0x01,0x09,0x1c,0x26,0x31,0x2d,0x69,0xfe,0x75,0x01,0x4f,0xfe,0xed,0x3c,0x00,0x00,0x02,0x00,0x2d,0xff,0xf6,0x02,0x2b,0x02,0xda,0x00,0x11,0x00,0x23,0x00,0x46,0x40,0x43,0x0c,0x03,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x08, +0x03,0x02,0x02,0x05,0x02,0x85,0x07,0x01,0x05,0x06,0x05,0x85,0x00,0x06,0x04,0x04,0x06,0x59,0x00,0x06,0x06,0x04,0x61,0x09,0x01,0x04,0x06,0x04,0x51,0x13,0x12,0x00,0x00,0x20,0x1f,0x1c,0x1a,0x17,0x16,0x12,0x23,0x13,0x23,0x00,0x11,0x00,0x11,0x11,0x16,0x11,0x0a,0x06,0x19,0x2b,0x13,0x11,0x33,0x13,0x2e,0x02,0x35,0x35,0x33,0x11, +0x23,0x03,0x1e,0x02,0x15,0x15,0x01,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x2d,0x50,0xb2,0x05,0x06,0x02,0x41,0x50,0xb2,0x06,0x05,0x02,0x01,0x22,0x45,0x56,0x42,0x31,0x28,0x28,0x31,0x42,0x56,0x01,0x8b,0x01,0x4f,0xfe,0xf7,0x1e,0x25,0x31,0x2c,0x69,0xfe,0xb1,0x01,0x09,0x1c,0x26, +0x31,0x2d,0x69,0xfe,0x6b,0x53,0x47,0xbf,0xbf,0x2c,0x32,0x32,0x2c,0xbf,0xbf,0x47,0x53,0x00,0x00,0x00,0x00,0x02,0xff,0xec,0xff,0xf6,0x02,0x6c,0x02,0xd5,0x00,0x0d,0x00,0x37,0x00,0x32,0x40,0x2f,0x00,0x01,0x00,0x01,0x85,0x04,0x01,0x00,0x03,0x00,0x85,0x00,0x03,0x02,0x02,0x03,0x59,0x00,0x03,0x03,0x02,0x61,0x05,0x01,0x02,0x03, +0x02,0x51,0x0f,0x0e,0x01,0x00,0x24,0x22,0x0e,0x37,0x0f,0x37,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x36,0x36,0x17,0x16,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x27, +0x26,0x26,0x37,0x36,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x01,0x2c,0x16,0x21,0x21,0x16,0x17,0x20,0x20,0x17,0x43,0x74,0x58,0x31,0x32,0x2a,0x15,0x33,0x10,0x10,0x07,0x14,0x19,0x1d,0x34,0x5d,0x3c,0x3c,0x5d,0x34,0x1c,0x1a,0x14,0x07,0x10,0x11,0x32,0x15,0x2b,0x31,0x31,0x58,0x74,0xe1,0x23,0x19,0x01,0x7c,0x19,0x23,0x23,0x19, +0xfe,0x84,0x19,0x23,0xeb,0x30,0x57,0x72,0x42,0x41,0x72,0x2b,0x16,0x07,0x11,0x10,0x30,0x17,0x1c,0x4b,0x2c,0x3d,0x5f,0x36,0x36,0x5f,0x3d,0x2c,0x4b,0x1c,0x17,0x30,0x10,0x11,0x07,0x16,0x2a,0x73,0x41,0x42,0x72,0x57,0x30,0x00,0x00,0x03,0xff,0xec,0xff,0xf6,0x02,0x6c,0x02,0x6c,0x00,0x13,0x00,0x23,0x00,0x31,0x00,0x49,0x40,0x46, +0x00,0x05,0x03,0x04,0x03,0x05,0x04,0x80,0x08,0x01,0x04,0x02,0x03,0x04,0x02,0x7e,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x02,0x00,0x51,0x25,0x24,0x15,0x14,0x01,0x00,0x2c,0x2a,0x24,0x31,0x25,0x31,0x1d,0x1b,0x14,0x23,0x15,0x23,0x0b,0x09,0x00, +0x13,0x01,0x13,0x09,0x06,0x16,0x2b,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x01,0x2c,0x43,0x74,0x58,0x31,0x31,0x58,0x74,0x43,0x43, +0x74,0x58,0x31,0x31,0x58,0x74,0x43,0x3c,0x62,0x39,0x39,0x62,0x3c,0x3c,0x61,0x3a,0x3a,0x61,0x3c,0x16,0x21,0x21,0x16,0x17,0x20,0x20,0x0a,0x30,0x57,0x72,0x42,0x42,0x72,0x57,0x30,0x30,0x57,0x72,0x42,0x42,0x72,0x57,0x30,0x5f,0x3b,0x64,0x3d,0x3d,0x64,0x3b,0x3b,0x64,0x3d,0x3d,0x64,0x3b,0x46,0x23,0x19,0xb4,0x19,0x23,0x23,0x19, +0xb4,0x19,0x23,0x00,0x00,0x02,0xff,0xec,0xff,0xf6,0x02,0x6c,0x02,0x6c,0x00,0x13,0x00,0x23,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x15,0x14,0x01,0x00,0x1d,0x1b,0x14,0x23,0x15,0x23,0x0b,0x09,0x00,0x13,0x01, +0x13,0x06,0x06,0x16,0x2b,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x2c,0x43,0x74,0x58,0x31,0x31,0x58,0x74,0x43,0x43,0x74,0x58,0x31,0x31,0x58,0x74,0x43,0x3c,0x62,0x39,0x39,0x62,0x3c,0x3c,0x61,0x3a, +0x3a,0x61,0x0a,0x30,0x57,0x72,0x42,0x42,0x72,0x57,0x30,0x30,0x57,0x72,0x42,0x42,0x72,0x57,0x30,0x5f,0x3b,0x64,0x3d,0x3d,0x64,0x3b,0x3b,0x64,0x3d,0x3d,0x64,0x3b,0x00,0x01,0x00,0xf5,0xff,0xfb,0x01,0x63,0x02,0x67,0x00,0x0d,0x00,0x18,0x40,0x15,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x00,0x76,0x01,0x00,0x08,0x06,0x00,0x0d, +0x01,0x0d,0x03,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x01,0x2c,0x16,0x21,0x21,0x16,0x17,0x20,0x20,0x05,0x23,0x19,0x01,0xf4,0x19,0x23,0x23,0x19,0xfe,0x0c,0x19,0x23,0x00,0x00,0x00,0x01,0x00,0x06,0xff,0xf7,0x02,0x66,0x02,0x57,0x00,0x15,0x00,0x16,0x40,0x13,0x0f,0x07,0x02,0x00, +0x4a,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x01,0x76,0x15,0x1d,0x02,0x06,0x18,0x2b,0x37,0x26,0x26,0x36,0x36,0x37,0x36,0x37,0x06,0x06,0x16,0x17,0x16,0x16,0x36,0x37,0x06,0x07,0x0e,0x02,0x26,0x64,0x2f,0x2f,0x01,0x30,0x30,0x27,0x2b,0x1e,0x05,0x2e,0x2e,0x2f,0x82,0x89,0x3a,0x16,0x27,0x30,0x75,0x7c,0x75,0x55,0x2f,0x75,0x7c,0x75, +0x30,0x27,0x16,0x39,0x8a,0x82,0x2e,0x2f,0x2e,0x05,0x1e,0x2b,0x27,0x30,0x30,0x01,0x2f,0x00,0x00,0x00,0x00,0x02,0x00,0x23,0x01,0x4a,0x02,0x35,0x02,0xda,0x00,0x03,0x00,0x09,0x00,0x34,0x40,0x31,0x08,0x05,0x02,0x02,0x01,0x01,0x4c,0x05,0x03,0x02,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x04, +0x01,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x09,0x04,0x09,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0x09,0x02,0x23,0x27,0x07,0x37,0x01,0xea,0xfe,0x02,0x01,0x09,0x01,0x09,0x6e,0x9a,0x9e,0x02,0x8a,0x50,0x50,0xfe,0xc0,0x01,0x0e,0xfe,0xf2,0xa2,0xa2,0x00,0x00,0x00,0x00,0x03,0x00,0x2d, +0xff,0xfc,0x02,0x2f,0x02,0xda,0x00,0x0d,0x00,0x16,0x00,0x42,0x00,0x6b,0x40,0x68,0x08,0x01,0x02,0x04,0x01,0x4c,0x0c,0x03,0x02,0x01,0x02,0x09,0x02,0x01,0x09,0x80,0x00,0x0a,0x0b,0x07,0x0b,0x0a,0x07,0x80,0x00,0x07,0x08,0x0b,0x07,0x08,0x7e,0x00,0x00,0x00,0x05,0x04,0x00,0x05,0x67,0x00,0x04,0x00,0x02,0x01,0x04,0x02,0x67,0x00, +0x09,0x00,0x0b,0x0a,0x09,0x0b,0x69,0x00,0x08,0x06,0x06,0x08,0x59,0x00,0x08,0x08,0x06,0x61,0x0d,0x01,0x06,0x08,0x06,0x51,0x18,0x17,0x00,0x00,0x36,0x33,0x31,0x30,0x2e,0x2b,0x20,0x1d,0x1b,0x1a,0x17,0x42,0x18,0x41,0x16,0x14,0x10,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x16,0x21,0x0e,0x06,0x19,0x2b,0x13,0x11,0x33,0x32,0x16,0x15,0x14, +0x06,0x07,0x17,0x23,0x27,0x23,0x15,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x2d,0xc6,0x38,0x44, +0x34,0x2b,0x67,0x50,0x64,0x54,0x85,0x19,0x1f,0x1e,0x19,0x86,0x01,0x15,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x01,0x8b,0x01,0x4f,0x3d,0x2f,0x28,0x32,0x06,0x83,0x81,0x81,0xb3,0x1b,0x15, +0x16,0x1c,0xfd,0x5c,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0x00,0x00,0x00,0x03,0xff,0xf6,0xff,0xf5,0x02,0x62,0x02,0xe4,0x00,0x14,0x00,0x27,0x00,0x35,0x00,0x53,0x40,0x50,0x00,0x03,0x06,0x02,0x06,0x03,0x02,0x80, +0x00,0x01,0x00,0x04,0x05,0x01,0x04,0x69,0x00,0x05,0x00,0x06,0x03,0x05,0x06,0x69,0x00,0x02,0x00,0x08,0x07,0x02,0x08,0x69,0x0a,0x01,0x07,0x00,0x00,0x07,0x59,0x0a,0x01,0x07,0x07,0x00,0x61,0x09,0x01,0x00,0x07,0x00,0x51,0x2a,0x28,0x01,0x00,0x31,0x2e,0x28,0x35,0x2a,0x35,0x27,0x25,0x21,0x1f,0x1e,0x1c,0x18,0x17,0x16,0x15,0x0b, +0x09,0x00,0x14,0x01,0x14,0x0b,0x06,0x16,0x2b,0x05,0x22,0x27,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x33,0x32,0x17,0x13,0x16,0x16,0x15,0x14,0x07,0x03,0x06,0x03,0x33,0x35,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x17,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x01, +0x2c,0x23,0x23,0xd4,0x1c,0x1b,0xd5,0x23,0x23,0x23,0x23,0xd5,0x0e,0x0d,0x1c,0xd4,0x22,0x48,0x35,0x2c,0x33,0x3e,0x35,0x3f,0x3f,0x1c,0x21,0x21,0x1c,0x21,0x13,0x12,0x0e,0x11,0x11,0x0e,0x12,0x0d,0x11,0x11,0x0b,0x2a,0x01,0x03,0x23,0x23,0x24,0x22,0x01,0x0b,0x2b,0x2b,0xfe,0xf5,0x11,0x24,0x11,0x23,0x23,0xfe,0xfd,0x2a,0x01,0x20, +0x35,0x02,0x38,0x2d,0x32,0x3a,0x32,0x20,0x1d,0x1c,0x23,0xc5,0x13,0x0d,0x0e,0x12,0x12,0x0e,0x0d,0x13,0x00,0x02,0x00,0x25,0x00,0x00,0x02,0x2e,0x02,0xde,0x00,0x2b,0x00,0x37,0x00,0x62,0x40,0x5f,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00,0x02,0x0c, +0x01,0x00,0x08,0x02,0x00,0x69,0x00,0x08,0x09,0x01,0x07,0x06,0x08,0x07,0x67,0x0a,0x01,0x06,0x0b,0x0b,0x06,0x57,0x0a,0x01,0x06,0x06,0x0b,0x5f,0x0d,0x01,0x0b,0x06,0x0b,0x4f,0x2c,0x2c,0x01,0x00,0x2c,0x37,0x2c,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06,0x04,0x03,0x00,0x2b, +0x01,0x2a,0x0e,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x35,0x33,0x35,0x23,0x35,0x21,0x15,0x23,0x15,0x33,0x15,0xbc,0x40, +0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x1d,0x7d,0x7d,0x01,0x3c,0x7d,0x7d,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11, +0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0x3c,0xd7,0x3c,0x3c,0xd7,0x3c,0x00,0x00,0x00,0x00,0x03,0x00,0x25,0xff,0xfb,0x02,0x3f,0x02,0xde,0x00,0x2b,0x00,0x3b,0x00,0x47,0x00,0x61,0x40,0x5e,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00, +0x02,0x0a,0x01,0x00,0x07,0x02,0x00,0x69,0x00,0x07,0x00,0x09,0x08,0x07,0x09,0x69,0x0c,0x01,0x08,0x06,0x06,0x08,0x59,0x0c,0x01,0x08,0x08,0x06,0x61,0x0b,0x01,0x06,0x08,0x06,0x51,0x3d,0x3c,0x2d,0x2c,0x01,0x00,0x43,0x41,0x3c,0x47,0x3d,0x47,0x35,0x33,0x2c,0x3b,0x2d,0x3b,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06,0x04,0x03,0x00, +0x2b,0x01,0x2a,0x0d,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15, +0x14,0x06,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0xbb,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x32,0x4f,0x2e,0x2e,0x4f,0x32, +0x2d,0x3e,0x3e,0x2d,0x2d,0x3e,0x3e,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x74,0x2d,0x4e,0x31,0x32,0x4e,0x2d,0x2d,0x4e,0x32,0x31,0x4e,0x2d,0x3a,0x41,0x31,0x31,0x42,0x42,0x31,0x31,0x41,0x00,0x00, +0x00,0x03,0x00,0x25,0x00,0x00,0x02,0x3a,0x02,0xde,0x00,0x2b,0x00,0x36,0x00,0x3f,0x00,0x62,0x40,0x5f,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x0c,0x01,0x08,0x07,0x08,0x86,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00,0x02,0x0b,0x01,0x00,0x06,0x02,0x00,0x69,0x00,0x06,0x00,0x0a,0x09,0x06, +0x0a,0x67,0x00,0x09,0x07,0x07,0x09,0x57,0x00,0x09,0x09,0x07,0x5f,0x00,0x07,0x09,0x07,0x4f,0x2c,0x2c,0x01,0x00,0x3f,0x3d,0x39,0x37,0x2c,0x36,0x2c,0x36,0x35,0x33,0x2f,0x2d,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06,0x04,0x03,0x00,0x2b,0x01,0x2a,0x0d,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35, +0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c, +0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x2a,0xbf,0x38,0x44,0x44,0x38,0x7d,0x7e,0x19,0x1f,0x1e,0x19,0x7f,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a, +0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0x01,0x4f,0x3f,0x2f,0x2e,0x3e,0x75,0xaf,0x1d,0x15,0x16,0x1e,0x00,0x00,0x02,0x00,0x25,0x00,0x00,0x02,0x2b,0x02,0xde,0x00,0x2b,0x00,0x37,0x00,0x66,0x40,0x63,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x08,0x01,0x06,0x00,0x07,0x00,0x06,0x07,0x80,0x0d,0x0b, +0x02,0x09,0x0a,0x09,0x86,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00,0x02,0x0c,0x01,0x00,0x06,0x02,0x00,0x69,0x00,0x07,0x0a,0x0a,0x07,0x57,0x00,0x07,0x07,0x0a,0x5f,0x00,0x0a,0x07,0x0a,0x4f,0x2c,0x2c,0x01,0x00,0x2c,0x37,0x2c,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06, +0x04,0x03,0x00,0x2b,0x01,0x2a,0x0e,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x11,0x33,0x15,0x33,0x35,0x33,0x11,0x23,0x35, +0x23,0x15,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x20,0x42,0xb2,0x42,0x42,0xb2,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11, +0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0x01,0x4f,0x84,0x84,0xfe,0xb1,0x8f,0x8f,0x00,0x00,0x00,0x02,0x00,0x25,0x00,0x00,0x02,0x3a,0x02,0xde,0x00,0x2b,0x00,0x43,0x00,0x62,0x40,0x5f,0x3f,0x39,0x33,0x2d,0x04,0x08,0x06,0x01,0x4c,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01, +0x02,0x7e,0x07,0x01,0x06,0x00,0x08,0x00,0x06,0x08,0x80,0x0b,0x09,0x02,0x08,0x08,0x84,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x0a,0x01,0x00,0x02,0x00,0x51,0x2c,0x2c,0x01,0x00,0x2c,0x43,0x2c,0x43,0x3b,0x3a,0x38,0x37,0x2f,0x2e,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06, +0x04,0x03,0x00,0x2b,0x01,0x2a,0x0c,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x37,0x27,0x33,0x17,0x16,0x16,0x17,0x36,0x36, +0x37,0x37,0x33,0x07,0x17,0x23,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x11,0x7e,0x7d,0x4e,0x42,0x0d,0x08,0x07,0x05,0x09,0x0c,0x40,0x4d,0x7d, +0x7d,0x4f,0x41,0x0d,0x0a,0x06,0x05,0x06,0x0d,0x42,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0xa9,0xa6,0x56,0x10,0x18,0x0e,0x0e,0x18,0x10,0x56,0xa8,0xa7,0x55,0x11,0x1a,0x0d,0x0d,0x19,0x11,0x56, +0x00,0x04,0x00,0x25,0x00,0x00,0x02,0x3a,0x02,0xde,0x00,0x2b,0x00,0x39,0x00,0x42,0x00,0x4b,0x00,0x6d,0x40,0x6a,0x33,0x01,0x0b,0x08,0x01,0x4c,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00,0x02,0x0c,0x01,0x00,0x06,0x02,0x00,0x69,0x00,0x06,0x00,0x09, +0x08,0x06,0x09,0x67,0x00,0x08,0x00,0x0b,0x0a,0x08,0x0b,0x67,0x00,0x0a,0x07,0x07,0x0a,0x57,0x00,0x0a,0x0a,0x07,0x5f,0x0d,0x01,0x07,0x0a,0x07,0x4f,0x2c,0x2c,0x01,0x00,0x4b,0x49,0x45,0x43,0x42,0x40,0x3c,0x3a,0x2c,0x39,0x2c,0x38,0x2f,0x2d,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06,0x04,0x03,0x00,0x2b,0x01,0x2a,0x0e,0x06,0x16, +0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35, +0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x20,0xc2,0x33,0x3f,0x37,0x21,0x27,0x40,0x34,0x8f,0x81,0x14,0x1a,0x19,0x14, +0x82,0x8c,0x17,0x1d,0x1d,0x17,0x8c,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0x01,0x4f,0x2e,0x26,0x39,0x14,0x08,0x2b,0x1e,0x29,0x34,0xbf,0x17,0x13,0x13,0x19,0xdb,0x19,0x13,0x13,0x17,0x00,0x00, +0x00,0x02,0x00,0x25,0x00,0x00,0x02,0x2b,0x02,0xde,0x00,0x2b,0x00,0x3d,0x00,0x60,0x40,0x5d,0x38,0x2f,0x02,0x08,0x06,0x01,0x4c,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x07,0x01,0x06,0x00,0x08,0x00,0x06,0x08,0x80,0x0b,0x09,0x02,0x08,0x08,0x84,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00, +0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x0a,0x01,0x00,0x02,0x00,0x51,0x2c,0x2c,0x01,0x00,0x2c,0x3d,0x2c,0x3d,0x37,0x36,0x35,0x34,0x2e,0x2d,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06,0x04,0x03,0x00,0x2b,0x01,0x2a,0x0c,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27, +0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x11,0x33,0x13,0x2e,0x02,0x35,0x35,0x33,0x11,0x23,0x03,0x1e,0x02,0x15,0x15,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d, +0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x20,0x50,0xb2,0x05,0x06,0x02,0x41,0x50,0xb2,0x06,0x05,0x02,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0x01,0x4f, +0xfe,0xf7,0x1e,0x26,0x30,0x2c,0x69,0xfe,0xb1,0x01,0x09,0x1c,0x26,0x31,0x2d,0x69,0x00,0x01,0x00,0x5a,0x00,0x00,0x02,0x12,0x02,0xe4,0x00,0x1c,0x00,0x43,0x40,0x40,0x16,0x15,0x10,0x03,0x04,0x03,0x01,0x4c,0x00,0x01,0x02,0x03,0x02,0x01,0x03,0x80,0x00,0x03,0x04,0x02,0x03,0x04,0x7e,0x00,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00, +0x3e,0x4d,0x00,0x04,0x04,0x05,0x60,0x00,0x05,0x05,0x39,0x05,0x4e,0x01,0x00,0x14,0x13,0x12,0x11,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x1c,0x01,0x1c,0x07,0x09,0x16,0x2b,0x01,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x33,0x15,0x07,0x21,0x15,0x21,0x35,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x01,0x37, +0x65,0x76,0x5a,0x46,0x3c,0x3c,0x46,0x46,0x3c,0x4f,0xb3,0x01,0x2c,0xfe,0x6e,0xb0,0x5a,0x68,0x77,0x02,0xe4,0x71,0x61,0x3c,0x46,0x46,0x3c,0x32,0x3c,0x46,0x4e,0xbe,0x52,0x54,0xbb,0x07,0x6f,0x5b,0x32,0x61,0x71,0x00,0x00,0x00,0x00,0x01,0x00,0x49,0xff,0xf6,0x02,0x0c,0x02,0xda,0x00,0x18,0x00,0x34,0x40,0x31,0x01,0x01,0x01,0x03, +0x01,0x4c,0x00,0x01,0x03,0x00,0x03,0x01,0x00,0x80,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x04,0x38,0x4d,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x02,0x3f,0x02,0x4e,0x00,0x00,0x00,0x18,0x00,0x18,0x16,0x22,0x12,0x27,0x06,0x09,0x1a,0x2b,0x01,0x15,0x03,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x06,0x06,0x23,0x22,0x26, +0x35,0x34,0x36,0x37,0x37,0x21,0x35,0x02,0x02,0xf3,0x34,0x2d,0x45,0x3b,0x3d,0x47,0x5a,0x03,0x78,0x63,0x65,0x77,0x39,0x45,0xc5,0xfe,0xb4,0x02,0xda,0x53,0xfe,0xfc,0x37,0x59,0x2a,0x3c,0x47,0x49,0x3e,0x63,0x74,0x73,0x61,0x35,0x73,0x48,0xce,0x52,0x00,0x02,0x00,0x2d,0xff,0xfc,0x02,0x2f,0x02,0xda,0x00,0x11,0x00,0x3d,0x00,0x59, +0x40,0x56,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x08,0x09,0x05,0x09,0x08,0x05,0x80,0x00,0x05,0x06,0x09,0x05,0x06,0x7e,0x00,0x02,0x0a,0x01,0x00,0x07,0x02,0x00,0x69,0x00,0x07,0x00,0x09,0x08,0x07,0x09,0x69,0x00,0x06,0x04,0x04,0x06,0x59,0x00,0x06,0x06,0x04,0x61,0x0b,0x01,0x04,0x06,0x04,0x51,0x13,0x12,0x01,0x00,0x31,0x2e,0x2c, +0x2b,0x29,0x26,0x1b,0x18,0x16,0x15,0x12,0x3d,0x13,0x3c,0x0e,0x0d,0x0a,0x08,0x05,0x04,0x00,0x11,0x01,0x11,0x0c,0x06,0x16,0x2b,0x13,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36, +0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0xc8,0x45,0x56,0x42,0x31,0x28,0x28,0x31,0x42,0x56,0x77,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16, +0x58,0x33,0x3b,0x4e,0x44,0x01,0x81,0x53,0x47,0xbf,0xbf,0x2c,0x32,0x32,0x2c,0xbf,0xbf,0x47,0x53,0xfe,0x7b,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0x00,0x00,0x02,0x00,0x0f,0x00,0x00,0x02,0x49,0x02,0xda,0x00,0x0c, +0x00,0x14,0x00,0x3a,0x40,0x37,0x03,0x01,0x01,0x00,0x01,0x4c,0x02,0x01,0x00,0x01,0x00,0x85,0x00,0x01,0x04,0x01,0x85,0x07,0x01,0x06,0x03,0x06,0x86,0x00,0x04,0x03,0x03,0x04,0x57,0x00,0x04,0x04,0x03,0x5f,0x05,0x01,0x03,0x04,0x03,0x4f,0x0d,0x0d,0x0d,0x14,0x0d,0x14,0x11,0x11,0x12,0x11,0x11,0x17,0x08,0x06,0x1c,0x2b,0x13,0x16, +0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x03,0x23,0x03,0x33,0x01,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xad,0x08,0x12,0x02,0x02,0x10,0x07,0x57,0x48,0x94,0x4a,0x94,0x45,0x01,0x1b,0x98,0x01,0x72,0x98,0x02,0x0c,0x13,0x29,0x0e,0x0e,0x29,0x13,0xce,0xfe,0xb1,0x01,0x4f,0xfd,0x26,0x01,0x13,0x3c,0x3c,0xfe,0xed,0x00,0x00,0x02,0x00,0x37, +0x00,0x00,0x02,0x53,0x02,0xda,0x00,0x1a,0x00,0x23,0x00,0x42,0x40,0x3f,0x06,0x01,0x04,0x03,0x01,0x4c,0x00,0x03,0x06,0x01,0x04,0x05,0x03,0x04,0x67,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x08,0x01,0x05,0x05,0x00,0x5f,0x07,0x01,0x00,0x00,0x39,0x00,0x4e,0x1c,0x1b,0x01,0x00,0x1f,0x1d,0x1b,0x23,0x1c,0x23,0x19,0x18, +0x17,0x15,0x11,0x0f,0x0e,0x0c,0x00,0x1a,0x01,0x1a,0x09,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x23,0x11,0x27,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x17,0x67,0x79,0x51,0x40,0x39,0x47,0x6f,0x5e,0xad,0xad,0x35,0x3e, +0x3f,0x36,0x01,0x3c,0x73,0xca,0x70,0x70,0x3c,0x47,0x47,0x70,0x5f,0x45,0x61,0x08,0x03,0x0b,0x59,0x3a,0x56,0x66,0x52,0x3d,0x35,0x34,0x3e,0x50,0xfe,0xac,0x52,0x01,0x02,0x46,0x3b,0x3b,0x46,0x00,0x00,0x00,0xff,0xff,0x00,0xb4,0xff,0x06,0x01,0xa4,0xff,0xce,0x00,0x07,0x06,0x79,0x02,0x58,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x8c, +0xff,0x2e,0x01,0xcc,0xff,0xb0,0x00,0x19,0x00,0x6d,0xb1,0x06,0x64,0x44,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x1b,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x02,0x06,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x29,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04, +0x02,0x00,0x80,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x06,0x01,0x00,0x04,0x00,0x52,0x59,0x40,0x13,0x01,0x00,0x16,0x15,0x13,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x07,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x05,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23, +0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x01,0x72,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x32,0x28,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x31,0xd2,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x00,0x00,0x01,0xfe,0x13,0xff,0x4c,0x01,0xf9,0x03,0x84,0x00,0x36, +0x00,0x41,0x40,0x3e,0x36,0x02,0x02,0x01,0x00,0x0c,0x06,0x05,0x03,0x03,0x01,0x08,0x01,0x04,0x03,0x22,0x1f,0x07,0x03,0x02,0x04,0x04,0x4c,0x00,0x03,0x01,0x04,0x01,0x03,0x04,0x80,0x00,0x00,0x00,0x01,0x03,0x00,0x01,0x69,0x00,0x04,0x04,0x02,0x5f,0x00,0x02,0x02,0x3d,0x02,0x4e,0x2a,0x28,0x26,0x25,0x21,0x20,0x13,0x11,0x10,0x05, +0x09,0x17,0x2b,0x01,0x33,0x15,0x16,0x17,0x01,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x26,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0xfe,0xd0,0x5a,0x40,0x41,0x02, +0x4e,0xfe,0x61,0x01,0x27,0x13,0x20,0x08,0x09,0x21,0x11,0xfe,0x08,0x4c,0x49,0x35,0x42,0x2b,0x27,0x72,0x47,0x53,0x5f,0x52,0x5a,0x57,0x66,0x5a,0x4e,0x40,0x3e,0x4a,0x31,0x2a,0x6f,0x45,0x4f,0x5e,0x4d,0x03,0x84,0xa4,0x0b,0x23,0xfe,0xca,0x64,0xd7,0x5a,0x97,0x0a,0x0d,0x02,0x02,0x0a,0x09,0x01,0x0a,0x2a,0x3f,0x32,0x28,0x39,0x0b, +0x20,0x14,0x71,0x4d,0x52,0x6d,0x0c,0xae,0xad,0x0b,0x6c,0x58,0x3d,0x45,0x47,0x38,0x2d,0x43,0x0c,0x1f,0x14,0x67,0x46,0x4e,0x68,0x0b,0x00,0x00,0x00,0x01,0xfe,0x07,0xff,0x4c,0x02,0x01,0x03,0x84,0x00,0x36,0x00,0x48,0x40,0x45,0x21,0x1e,0x02,0x04,0x02,0x06,0x01,0x03,0x04,0x0b,0x07,0x05,0x04,0x04,0x01,0x03,0x35,0x01,0x00,0x01, +0x04,0x4c,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x02,0x00,0x04,0x03,0x02,0x04,0x69,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x00,0x42,0x4d,0x06,0x01,0x05,0x05,0x3d,0x05,0x4e,0x00,0x00,0x00,0x36,0x00,0x36,0x22,0x14,0x1d,0x2e,0x11,0x07,0x09,0x1b,0x2b,0x17,0x35,0x26,0x27,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16, +0x17,0x05,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0xf6,0x6d,0x90,0xfe,0x0e,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x21,0x12,0x01,0x9b,0x8e,0x65,0x48,0x54,0x31,0x2a, +0x6f,0x45,0x4f,0x5e,0x4d,0x5a,0x47,0x56,0x5a,0x44,0x35,0x35,0x42,0x2b,0x27,0x72,0x47,0x53,0x5e,0x53,0xb4,0xab,0x06,0x3f,0xdc,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x03,0x0a,0x08,0xb3,0x3e,0x45,0x3a,0x2d,0x43,0x0c,0x1f,0x14,0x67,0x46,0x4e,0x68,0x0b,0xa2,0xa5,0x0f,0x65,0x48,0x32,0x3f,0x3f,0x32,0x28,0x39,0x0b,0x20,0x14,0x71, +0x4d,0x50,0x6a,0x0f,0xb0,0x00,0x00,0x00,0x00,0x01,0xfb,0xc8,0xff,0x4c,0x01,0xe0,0x03,0x84,0x00,0x40,0x00,0x42,0x40,0x3f,0x21,0x1e,0x02,0x03,0x02,0x2b,0x27,0x25,0x24,0x0b,0x07,0x06,0x05,0x04,0x09,0x01,0x03,0x3f,0x26,0x02,0x00,0x01,0x03,0x4c,0x00,0x02,0x00,0x03,0x01,0x02,0x03,0x69,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x00, +0x42,0x4d,0x05,0x01,0x04,0x04,0x3d,0x04,0x4e,0x00,0x00,0x00,0x40,0x00,0x40,0x33,0x31,0x1d,0x2e,0x11,0x06,0x09,0x19,0x2b,0x05,0x35,0x26,0x27,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x01,0x15,0x05,0x35, +0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0xfe,0xb7,0x6d,0x90,0xfe,0x0e,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x21,0x12,0x01,0x9b,0x8e,0x65,0x4d,0x4f,0x31,0x2a,0x6f,0x45,0x4f,0x5e,0x4d,0x5a,0x3f,0x42,0x02,0x4e,0xfe,0x61,0x01,0x27,0x13, +0x20,0x08,0x09,0x21,0x11,0xfe,0x08,0x26,0x4c,0x23,0x35,0x42,0x2b,0x27,0x72,0x47,0x53,0x5c,0x55,0xb4,0xab,0x06,0x3f,0xdc,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x03,0x0a,0x08,0xb3,0x3e,0x47,0x38,0x2d,0x43,0x0c,0x1f,0x14,0x67,0x46,0x4e,0x68,0x0b,0xa2,0xa5,0x0a,0x23,0xfe,0xca,0x64,0xd7,0x5a,0x97,0x0a,0x0d,0x02,0x02,0x0a,0x09, +0x01,0x0a,0x14,0x16,0x3f,0x32,0x28,0x39,0x0b,0x20,0x14,0x71,0x4d,0x4f,0x6b,0x0f,0xb0,0x00,0x00,0x00,0x00,0x03,0xfd,0xda,0x00,0x00,0x02,0x62,0x02,0xda,0x00,0x32,0x00,0x3b,0x00,0x44,0x00,0x5c,0x40,0x59,0x0e,0x01,0x01,0x05,0x01,0x4c,0x08,0x01,0x05,0x0d,0x0b,0x09,0x03,0x01,0x0a,0x05,0x01,0x67,0x07,0x01,0x04,0x04,0x03,0x5f, +0x06,0x01,0x03,0x03,0x38,0x4d,0x10,0x0c,0x0f,0x03,0x0a,0x0a,0x00,0x5f,0x02,0x0e,0x02,0x00,0x00,0x39,0x00,0x4e,0x3d,0x3c,0x34,0x33,0x01,0x00,0x40,0x3e,0x3c,0x44,0x3d,0x44,0x37,0x35,0x33,0x3b,0x34,0x3b,0x31,0x30,0x2f,0x2d,0x29,0x27,0x26,0x24,0x1f,0x1d,0x19,0x17,0x16,0x14,0x09,0x07,0x06,0x05,0x00,0x32,0x01,0x32,0x11,0x09, +0x16,0x2b,0x21,0x22,0x26,0x35,0x34,0x37,0x23,0x11,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x23,0x11,0x25,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x21,0x33, +0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x12,0x67,0x79,0x40,0xdc,0xdc,0x67,0x79,0x51,0x40,0x39,0x47,0x6f,0x5e,0xaa,0xaa,0x35,0x3e,0x41,0x34,0x01,0xcd,0x20,0x24,0x6f,0x5e,0xb4,0xb4,0x35,0x3e,0x41,0x34,0x01,0x50,0x74,0xfc,0xcb,0x83,0x83,0x3c,0x47,0x47,0x02,0x94,0x83,0x83,0x3c,0x47,0x47,0x6e,0x61,0x54,0x31,0xfe,0xac,0x6e, +0x61,0x45,0x61,0x08,0x03,0x0b,0x59,0x3a,0x59,0x63,0x50,0x3b,0x38,0x36,0x3d,0x15,0x3e,0x27,0x59,0x63,0x50,0x3b,0x38,0x36,0x3d,0x50,0xfe,0xac,0x50,0x01,0x04,0x44,0x3e,0x3e,0x44,0x01,0x04,0x44,0x3e,0x3e,0x44,0x00,0x00,0x00,0x00,0x04,0xfb,0x82,0x00,0x00,0x02,0x62,0x02,0xda,0x00,0x4a,0x00,0x53,0x00,0x5c,0x00,0x65,0x00,0x76, +0x40,0x73,0x16,0x01,0x01,0x07,0x01,0x4c,0x0d,0x0a,0x02,0x07,0x14,0x12,0x10,0x0e,0x03,0x05,0x01,0x0f,0x07,0x01,0x67,0x0c,0x09,0x02,0x06,0x06,0x05,0x5f,0x0b,0x08,0x02,0x05,0x05,0x38,0x4d,0x18,0x13,0x17,0x11,0x16,0x05,0x0f,0x0f,0x00,0x5f,0x04,0x02,0x15,0x03,0x00,0x00,0x39,0x00,0x4e,0x5e,0x5d,0x55,0x54,0x4c,0x4b,0x01,0x00, +0x61,0x5f,0x5d,0x65,0x5e,0x65,0x58,0x56,0x54,0x5c,0x55,0x5c,0x4f,0x4d,0x4b,0x53,0x4c,0x53,0x49,0x48,0x47,0x45,0x41,0x3f,0x3e,0x3c,0x37,0x35,0x31,0x2f,0x2e,0x2c,0x27,0x25,0x21,0x1f,0x1e,0x1c,0x11,0x0f,0x0e,0x0d,0x09,0x07,0x06,0x05,0x00,0x4a,0x01,0x4a,0x19,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x34,0x37,0x23,0x11,0x23,0x22, +0x26,0x35,0x34,0x37,0x23,0x11,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x23, +0x11,0x25,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x21,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x21,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x12,0x67,0x79,0x40,0xdc,0xdc,0x67,0x79,0x40,0xdc,0xdc,0x67,0x79,0x51,0x40,0x39,0x47,0x6f,0x5e,0xaa,0xaa,0x35,0x3e,0x41,0x34,0x01,0xcd,0x20,0x24,0x6f,0x5e,0xb4,0xb4,0x35,0x3e, +0x41,0x34,0x01,0xcd,0x20,0x24,0x6f,0x5e,0xb4,0xb4,0x35,0x3e,0x41,0x34,0x01,0x50,0x74,0xfa,0x73,0x83,0x83,0x3c,0x47,0x47,0x02,0x94,0x83,0x83,0x3c,0x47,0x47,0x02,0x94,0x83,0x83,0x3c,0x47,0x47,0x6e,0x61,0x54,0x31,0xfe,0xac,0x6e,0x61,0x54,0x31,0xfe,0xac,0x6e,0x61,0x45,0x61,0x08,0x03,0x0b,0x59,0x3a,0x59,0x63,0x50,0x3b,0x38, +0x36,0x3d,0x15,0x3e,0x27,0x59,0x63,0x50,0x3b,0x38,0x36,0x3d,0x15,0x3e,0x27,0x59,0x63,0x50,0x3b,0x38,0x36,0x3d,0x50,0xfe,0xac,0x50,0x01,0x04,0x44,0x3e,0x3e,0x44,0x01,0x04,0x44,0x3e,0x3e,0x44,0x01,0x04,0x44,0x3e,0x3e,0x44,0x00,0x03,0xfd,0xdf,0x00,0x00,0x02,0x08,0x02,0xda,0x00,0x1a,0x00,0x23,0x00,0x27,0x00,0x53,0x40,0x50, +0x06,0x01,0x04,0x03,0x01,0x4c,0x00,0x03,0x06,0x01,0x04,0x07,0x03,0x04,0x67,0x00,0x07,0x0b,0x01,0x08,0x05,0x07,0x08,0x67,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x0a,0x01,0x05,0x05,0x00,0x5f,0x09,0x01,0x00,0x00,0x39,0x00,0x4e,0x24,0x24,0x1c,0x1b,0x01,0x00,0x24,0x27,0x24,0x27,0x26,0x25,0x1f,0x1d,0x1b,0x23,0x1c, +0x23,0x19,0x18,0x17,0x15,0x11,0x0f,0x0e,0x0c,0x00,0x1a,0x01,0x1a,0x0c,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21,0x11,0x27,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x25,0x35,0x21,0x15,0xfe,0xbf,0x67,0x79,0x51,0x40,0x39, +0x47,0x6f,0x5e,0xad,0xad,0x35,0x3e,0x3f,0x36,0x03,0x49,0xfd,0x80,0xca,0x70,0x70,0x3c,0x47,0x47,0x01,0xab,0x01,0xdb,0x70,0x5f,0x45,0x61,0x08,0x03,0x0b,0x59,0x3a,0x56,0x66,0x52,0x3d,0x35,0x34,0x3e,0x50,0xfe,0xac,0x52,0x01,0x02,0x46,0x3b,0x3b,0x46,0x12,0x50,0x50,0x00,0x02,0xfd,0xd5,0xff,0x9c,0x02,0x1c,0x02,0xe4,0x00,0x27, +0x00,0x31,0x00,0x7a,0xb5,0x19,0x01,0x07,0x03,0x01,0x4c,0x4b,0xb0,0x21,0x50,0x58,0x40,0x26,0x09,0x01,0x06,0x00,0x02,0x05,0x06,0x02,0x69,0x00,0x05,0x08,0x01,0x00,0x05,0x00,0x63,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x07,0x07,0x03,0x61,0x00,0x03,0x03,0x3b,0x07,0x4e,0x1b,0x40,0x24,0x00,0x03,0x00,0x07,0x06, +0x03,0x07,0x69,0x09,0x01,0x06,0x00,0x02,0x05,0x06,0x02,0x69,0x00,0x05,0x08,0x01,0x00,0x05,0x00,0x63,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x04,0x4e,0x59,0x40,0x1b,0x29,0x28,0x01,0x00,0x2e,0x2c,0x28,0x31,0x29,0x31,0x26,0x24,0x1f,0x1d,0x17,0x15,0x10,0x0e,0x09,0x07,0x00,0x27,0x01,0x27,0x0a,0x09,0x16,0x2b,0x05,0x22, +0x26,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x21,0x15,0x01,0x32,0x35,0x35,0x34,0x23,0x22,0x15,0x15,0x14,0xfe,0xed,0x55,0x7e,0x45,0x90,0x7e,0x75,0x80,0x56,0x4a,0x49,0x57,0x46,0x40,0x29, +0x36,0x09,0x02,0x56,0x4f,0x5a,0x64,0x6b,0x5d,0x03,0x2f,0xfd,0x1c,0x50,0x50,0x50,0x64,0x47,0x83,0x58,0x01,0x04,0x87,0x9b,0x7d,0x73,0xe2,0x4e,0x5b,0x56,0x49,0x74,0x4a,0x51,0x20,0x1c,0x23,0x4d,0x53,0x74,0x68,0xfe,0xfc,0x64,0x73,0x4b,0x01,0x10,0x5c,0x75,0x5b,0x5c,0x74,0x5c,0x00,0x00,0x00,0x04,0xfd,0xc6,0xff,0xf7,0x02,0x62, +0x02,0xe4,0x00,0x24,0x00,0x45,0x00,0x51,0x00,0x5d,0x00,0xcc,0x40,0x0b,0x55,0x49,0x42,0x21,0x1e,0x1b,0x06,0x0d,0x0e,0x01,0x4c,0x4b,0xb0,0x1a,0x50,0x58,0x40,0x41,0x0a,0x01,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x08,0x01,0x01,0x10,0x01,0x0e,0x0d,0x01,0x0e,0x69,0x0b,0x01,0x04,0x04,0x02,0x61,0x09,0x01,0x02,0x02,0x3e,0x4d,0x00, +0x05,0x05,0x00,0x61,0x0c,0x12,0x07,0x06,0x11,0x05,0x00,0x00,0x3f,0x4d,0x14,0x0f,0x13,0x03,0x0d,0x0d,0x00,0x61,0x0c,0x12,0x07,0x06,0x11,0x05,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x3b,0x0a,0x01,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x08,0x01,0x01,0x10,0x01,0x0e,0x0d,0x01,0x0e,0x69,0x0b,0x01,0x04,0x04,0x02,0x61,0x09,0x01,0x02, +0x02,0x3e,0x4d,0x00,0x05,0x05,0x06,0x5f,0x0c,0x01,0x06,0x06,0x39,0x4d,0x14,0x0f,0x13,0x03,0x0d,0x0d,0x00,0x61,0x12,0x07,0x11,0x03,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x35,0x53,0x52,0x47,0x46,0x26,0x25,0x01,0x00,0x58,0x56,0x52,0x5d,0x53,0x5d,0x4c,0x4a,0x46,0x51,0x47,0x51,0x41,0x40,0x3b,0x39,0x37,0x36,0x33,0x31,0x2c,0x2b, +0x25,0x45,0x26,0x45,0x20,0x1f,0x1d,0x1c,0x16,0x14,0x12,0x11,0x0e,0x0c,0x07,0x06,0x00,0x24,0x01,0x24,0x15,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x37,0x33,0x07,0x17,0x23,0x27,0x07,0x06,0x06,0x21,0x22,0x26, +0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x01,0x23,0x27,0x07,0x06,0x06,0x25,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x21,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xd2,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37, +0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0xc3,0x5b,0x64,0x8f,0x91,0x63,0x61,0x2b,0x22,0x53,0xfd,0x86,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0x01,0x84,0x63,0x61,0x2b,0x22,0x53,0x02,0x28,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b,0xfd,0xe3,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b, +0x09,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55,0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfc,0x72,0xb0,0xbd,0x80,0x36,0x2a,0x29,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55,0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfe,0x09,0x80,0x36,0x2a,0x29,0x51,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b, +0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b,0x00,0x06,0xfb,0x73,0xff,0xf7,0x02,0x5d,0x02,0xe4,0x00,0x24,0x00,0x45,0x00,0x66,0x00,0x72,0x00,0x7e,0x00,0x8a,0x00,0xfd,0x40,0x0d,0x82,0x76,0x6a,0x63,0x42,0x21,0x1e,0x1b,0x08,0x13,0x14,0x01,0x4c,0x4b,0xb0,0x1a,0x50,0x58,0x40,0x4e,0x10,0x0a,0x02,0x03,0x04,0x01,0x04,0x03,0x01,0x80, +0x0e,0x08,0x02,0x01,0x18,0x16,0x02,0x14,0x13,0x01,0x14,0x69,0x11,0x0b,0x02,0x04,0x04,0x02,0x61,0x0f,0x09,0x02,0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x00,0x61,0x12,0x1b,0x0d,0x0c,0x1a,0x07,0x06,0x19,0x08,0x00,0x00,0x3f,0x4d,0x1e,0x17,0x1d,0x15,0x1c,0x05,0x13,0x13,0x00,0x61,0x12,0x1b,0x0d,0x0c,0x1a,0x07,0x06,0x19,0x08,0x00, +0x00,0x3f,0x00,0x4e,0x1b,0x40,0x45,0x10,0x0a,0x02,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x0e,0x08,0x02,0x01,0x18,0x16,0x02,0x14,0x13,0x01,0x14,0x69,0x11,0x0b,0x02,0x04,0x04,0x02,0x61,0x0f,0x09,0x02,0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x06,0x5f,0x12,0x0c,0x02,0x06,0x06,0x39,0x4d,0x1e,0x17,0x1d,0x15,0x1c,0x05,0x13,0x13,0x00, +0x61,0x1b,0x0d,0x1a,0x07,0x19,0x05,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x4d,0x80,0x7f,0x74,0x73,0x68,0x67,0x47,0x46,0x26,0x25,0x01,0x00,0x85,0x83,0x7f,0x8a,0x80,0x8a,0x79,0x77,0x73,0x7e,0x74,0x7e,0x6d,0x6b,0x67,0x72,0x68,0x72,0x62,0x61,0x5c,0x5a,0x58,0x57,0x54,0x52,0x4d,0x4c,0x46,0x66,0x47,0x66,0x41,0x40,0x3b,0x39,0x37, +0x36,0x33,0x31,0x2c,0x2b,0x25,0x45,0x26,0x45,0x20,0x1f,0x1d,0x1c,0x16,0x14,0x12,0x11,0x0e,0x0c,0x07,0x06,0x00,0x24,0x01,0x24,0x1f,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x37,0x33,0x07,0x17,0x23,0x27,0x07, +0x06,0x06,0x21,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x01,0x23,0x27,0x07,0x06,0x06,0x21,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x01,0x23, +0x27,0x07,0x06,0x06,0x25,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x21,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x21,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xcd,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0xc3,0x5b,0x64,0x8f,0x91,0x63, +0x61,0x2b,0x22,0x53,0xfb,0x38,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0x01,0x84,0x63,0x61,0x2b,0x22,0x53,0x02,0x22,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0x01,0x84,0x63,0x61,0x2b,0x22,0x53,0xfd,0x8c,0x39,0x28,0x34,0x7d,0x1e,0x2f, +0x37,0x3b,0x02,0x7f,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b,0x02,0x7f,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b,0x09,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55,0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfc,0x72,0xb0,0xbd,0x80,0x36,0x2a,0x29,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55, +0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfe,0x09,0x80,0x36,0x2a,0x29,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55,0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfe,0x09,0x80,0x36,0x2a,0x29,0x51,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b, +0x00,0x03,0xfd,0xd5,0xff,0xf7,0x02,0x1c,0x02,0xe4,0x00,0x26,0x00,0x32,0x00,0x36,0x00,0xbc,0x40,0x0f,0x1b,0x01,0x0a,0x09,0x2a,0x20,0x02,0x0b,0x0a,0x23,0x01,0x08,0x0b,0x03,0x4c,0x4b,0xb0,0x1a,0x50,0x58,0x40,0x39,0x00,0x03,0x04,0x05,0x04,0x03,0x05,0x80,0x00,0x05,0x00,0x06,0x09,0x05,0x06,0x67,0x00,0x01,0x00,0x09,0x0a,0x01, +0x09,0x69,0x00,0x0a,0x0e,0x01,0x0b,0x08,0x0a,0x0b,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x0d,0x01,0x08,0x08,0x00,0x61,0x07,0x0c,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x3d,0x00,0x03,0x04,0x05,0x04,0x03,0x05,0x80,0x00,0x05,0x00,0x06,0x09,0x05,0x06,0x67,0x00,0x01,0x00,0x09,0x0a,0x01,0x09,0x69,0x00,0x0a, +0x0e,0x01,0x0b,0x08,0x0a,0x0b,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x07,0x07,0x39,0x4d,0x0d,0x01,0x08,0x08,0x00,0x61,0x0c,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x27,0x33,0x33,0x28,0x27,0x01,0x00,0x33,0x36,0x33,0x36,0x35,0x34,0x2d,0x2b,0x27,0x32,0x28,0x32,0x22,0x21,0x1f,0x1e,0x1d,0x1c,0x16,0x14, +0x12,0x11,0x0e,0x0c,0x07,0x06,0x00,0x26,0x01,0x26,0x0f,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x37,0x21,0x15,0x21,0x07,0x17,0x23,0x27,0x07,0x06,0x06,0x27,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14, +0x16,0x25,0x35,0x21,0x15,0xfe,0x93,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0xc3,0xbf,0x01,0xfb,0xfe,0x2a,0xb4,0x91,0x63,0x61,0x2b,0x22,0x53,0x26,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b,0x01,0xd9,0x01,0xdb,0x09,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55, +0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfc,0xef,0x50,0xdd,0xbd,0x80,0x36,0x2a,0x29,0x51,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b,0x62,0x50,0x50,0x00,0x01,0xfe,0xa7,0xff,0xab,0x01,0xa4,0x02,0xee,0x00,0x07,0x00,0x47,0x4b,0xb0,0x18,0x50,0x58,0x40,0x14,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x04,0x01,0x03,0x03,0x00,0x5f,0x00, +0x00,0x00,0x38,0x03,0x4e,0x1b,0x40,0x19,0x00,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x59,0x40,0x0c,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x05,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfe,0xa7,0x5a,0x02,0xa3,0xfd,0x5d, +0x55,0x03,0x43,0xfe,0x84,0x50,0xfe,0x89,0x00,0x01,0xfb,0xd2,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x12,0x00,0x33,0x40,0x30,0x0a,0x01,0x04,0x01,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x68,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x12,0x00,0x12, +0x23,0x12,0x14,0x11,0x11,0x07,0x09,0x1b,0x2b,0x25,0x11,0x33,0x15,0x21,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x23,0x37,0x36,0x36,0x37,0x21,0x15,0xfb,0xd2,0x5a,0x05,0x5b,0x04,0x08,0x05,0xba,0x6a,0xe7,0xe8,0x69,0xbe,0x03,0x07,0x03,0xfa,0xa5,0x23,0x02,0x4e,0xff,0x05,0x0a,0x05,0xeb,0xfe,0xd9,0xfe,0xd9,0xef,0x04,0x08,0x04,0xff, +0x00,0x02,0xfe,0xbb,0xff,0x92,0x01,0xbd,0x03,0x3e,0x00,0x24,0x00,0x28,0x00,0x43,0x40,0x40,0x09,0x01,0x04,0x03,0x01,0x4c,0x06,0x01,0x02,0x00,0x01,0x03,0x02,0x01,0x67,0x00,0x03,0x00,0x04,0x00,0x03,0x04,0x67,0x00,0x00,0x05,0x05,0x00,0x57,0x00,0x00,0x00,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x00,0x05,0x4f,0x25,0x25,0x00,0x00, +0x25,0x28,0x25,0x28,0x27,0x26,0x00,0x24,0x00,0x23,0x21,0x25,0x21,0x2c,0x21,0x0a,0x09,0x1b,0x2b,0x07,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x37,0x26,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x23,0x21,0x11,0x33,0x11,0x37,0x73,0x2f,0x32, +0x02,0x0a,0x03,0x36,0x31,0x32,0x35,0x03,0x0a,0x02,0x32,0x2f,0x73,0x73,0x59,0x65,0x05,0x0a,0x03,0x26,0x41,0x6e,0x6e,0x40,0x27,0x03,0x0a,0x05,0x65,0x59,0xfe,0x7f,0x5a,0x6e,0x50,0x2b,0x2b,0xa4,0x39,0x4a,0x09,0x09,0x4a,0x39,0xa4,0x2b,0x2b,0x50,0x57,0x4f,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x4f,0x57,0x03,0xac,0xfc,0x54,0x00, +0x00,0x02,0xfe,0xbb,0xff,0x92,0x01,0x45,0x03,0x3e,0x00,0x07,0x00,0x0b,0x00,0x33,0x40,0x30,0x04,0x01,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x03,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x00,0x03,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08, +0x09,0x19,0x2b,0x07,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x11,0x33,0x11,0x3c,0x01,0x27,0xfe,0xd9,0x01,0x81,0xfd,0x76,0x5a,0x6e,0x50,0x03,0x0c,0x50,0xfc,0x54,0x03,0xac,0xfc,0x54,0xff,0xff,0xfe,0xe3,0xff,0x92,0x01,0x1d,0x03,0x3e,0x00,0x26,0x05,0xbe,0xc4,0x00,0x00,0x07,0x05,0xbe,0xfd,0xe4,0x00,0x00,0x00,0x02,0xfc,0xa4, +0xff,0xab,0x01,0x72,0x02,0xee,0x00,0x07,0x00,0x0b,0x00,0x56,0x4b,0xb0,0x18,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x07,0x05,0x06,0x03,0x03,0x03,0x00,0x5f,0x04,0x01,0x00,0x00,0x38,0x03,0x4e,0x1b,0x40,0x1d,0x04,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x04,0x01,0x00,0x00, +0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x00,0x03,0x4f,0x59,0x40,0x14,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x09,0x19,0x2b,0x05,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x11,0x33,0x11,0xfe,0x52,0x5a,0x02,0xc6,0xfd,0x3a,0xfd,0xf8,0x5a,0x55,0x03,0x43,0xfe,0x84,0x50,0xfe,0x89, +0x03,0x43,0xfc,0xbd,0x00,0x03,0xfc,0xc7,0xff,0x92,0x00,0xe1,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x2d,0x40,0x2a,0x04,0x02,0x02,0x00,0x01,0x00,0x85,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x01,0x76,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09, +0x06,0x17,0x2b,0x17,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x87,0x5a,0xfb,0xe6,0x5a,0x01,0x86,0x5a,0x6e,0x03,0xac,0xfc,0x54,0x03,0xac,0xfc,0x54,0x03,0xac,0xfc,0x54,0x00,0x04,0xfa,0xc9,0xff,0xab,0x00,0xd2,0x02,0xee,0x00,0x03,0x00,0x07,0x00,0x0d,0x00,0x16,0x00,0x5f,0x40,0x0a,0x16,0x12,0x0e,0x0c,0x0b,0x05, +0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x12,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x01,0x00,0x5f,0x04,0x02,0x02,0x00,0x00,0x38,0x01,0x4e,0x1b,0x40,0x19,0x04,0x02,0x02,0x00,0x01,0x01,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x01,0x5f,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x00,0x01,0x4f,0x59,0x40,0x1a,0x08,0x08,0x04,0x04, +0x00,0x00,0x08,0x0d,0x08,0x0d,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x09,0x17,0x2b,0x05,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x01,0x15,0x01,0x35,0x01,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0xfc,0x77,0x5a,0xfd,0xf8,0x5a,0x03,0x02,0x5a,0x02,0x53,0xfd,0xad,0x01,0xbd,0x16,0x27,0x0a, +0x0a,0x27,0x16,0xfe,0x43,0x55,0x03,0x43,0xfc,0xbd,0x03,0x43,0xfc,0xbd,0x03,0x43,0xfe,0x8e,0x64,0xfe,0x93,0x68,0x01,0x0e,0x0e,0x15,0x04,0x05,0x17,0x0d,0x01,0x12,0x00,0x02,0xfc,0xa4,0xff,0xab,0x01,0x72,0x02,0xee,0x00,0x0b,0x00,0x0f,0x00,0x68,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1f,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00, +0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x09,0x07,0x08,0x03,0x05,0x05,0x00,0x5f,0x06,0x01,0x00,0x00,0x38,0x05,0x4e,0x1b,0x40,0x25,0x06,0x01,0x00,0x01,0x05,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x06,0x01,0x00,0x00,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x00,0x05,0x4f,0x59,0x40, +0x16,0x0c,0x0c,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x05,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x33,0x11,0xfe,0x52,0x5a,0x02,0xc6,0xfd,0x3a,0x02,0xc6,0xfd,0x3a,0xfd,0xf8,0x5a,0x55,0x03,0x43,0xfe,0xfc,0x50,0xa0,0x50,0xff,0x03, +0x43,0xfc,0xbd,0x00,0x00,0x03,0xfc,0xd6,0xff,0xab,0x01,0x31,0x02,0xee,0x00,0x03,0x00,0x09,0x00,0x12,0x00,0x50,0x40,0x0a,0x12,0x0e,0x0a,0x08,0x07,0x05,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0f,0x05,0x03,0x04,0x03,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x00,0x38,0x01,0x4e,0x1b,0x40,0x15,0x02,0x01,0x00,0x01,0x01, +0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x59,0x40,0x12,0x04,0x04,0x00,0x00,0x04,0x09,0x04,0x09,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x05,0x11,0x33,0x11,0x21,0x11,0x33,0x01,0x15,0x01,0x35,0x01,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0xfc,0xd6,0x5a,0x01,0x54,0x5a,0x02, +0x53,0xfd,0xad,0x01,0xbd,0x16,0x27,0x0a,0x0a,0x27,0x16,0xfe,0x43,0x55,0x03,0x43,0xfc,0xbd,0x03,0x43,0xfe,0x8e,0x64,0xfe,0x93,0x68,0x01,0x0e,0x0e,0x15,0x04,0x05,0x17,0x0d,0x01,0x12,0x00,0x01,0xfe,0xa7,0xff,0xab,0x01,0xa4,0x02,0xee,0x00,0x0b,0x00,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1c,0x00,0x01,0x00,0x02,0x03,0x01,0x02, +0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x06,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x38,0x05,0x4e,0x1b,0x40,0x21,0x00,0x00,0x01,0x05,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x00,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x0b, +0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x05,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x15,0xfe,0xa7,0x5a,0x02,0xa3,0xfd,0x5d,0x02,0xa3,0xfd,0x5d,0x55,0x03,0x43,0xfe,0xfc,0x50,0xa0,0x50,0xff,0x00,0x00,0x02,0xfb,0xd2,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0c,0x00,0x17,0x00,0x40,0x40,0x3d,0x12,0x07, +0x02,0x06,0x07,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x00,0x04,0x03,0x06,0x04,0x67,0x02,0x01,0x00,0x00,0x03,0x5f,0x08,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x17,0x16,0x0e,0x0d,0x00,0x0c,0x00,0x0c,0x11,0x12,0x11,0x11,0x11,0x09,0x09,0x1b,0x2b,0x25,0x11,0x33,0x15, +0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x15,0x35,0x21,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x21,0xfb,0xd2,0x5a,0x04,0xfb,0x6b,0x6a,0xe7,0xe8,0x69,0x6b,0xfb,0x05,0x05,0x3b,0x13,0x13,0x1a,0x05,0x05,0x1c,0x15,0x10,0xfa,0xc6,0x23,0x02,0x4e,0x87,0x87,0xfe,0xd9,0xfe,0xd9,0x87,0x87,0xd7,0x18,0x17,0x1c,0x04,0x05,0x1f,0x19, +0x14,0x00,0x00,0x00,0x00,0x02,0xfe,0xbb,0xff,0xab,0x01,0x68,0x02,0xee,0x00,0x05,0x00,0x0e,0x00,0x41,0x40,0x0a,0x0e,0x0a,0x06,0x04,0x03,0x05,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0c,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x01,0x4e,0x1b,0x40,0x11,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01, +0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x59,0x40,0x0a,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x03,0x09,0x17,0x2b,0x05,0x11,0x33,0x01,0x15,0x01,0x35,0x01,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0xfe,0xbb,0x5a,0x02,0x53,0xfd,0xad,0x01,0xbd,0x16,0x27,0x0a,0x0a,0x27,0x16,0xfe,0x43,0x55,0x03,0x43,0xfe,0x8e,0x64,0xfe,0x93,0x68,0x01,0x0e, +0x0e,0x15,0x04,0x05,0x17,0x0d,0x01,0x12,0x00,0x03,0xfe,0x13,0xff,0x74,0x01,0xf9,0x03,0x66,0x00,0x2d,0x00,0x34,0x00,0x3c,0x00,0x36,0x40,0x33,0x3c,0x32,0x31,0x25,0x24,0x1d,0x17,0x16,0x13,0x10,0x09,0x0b,0x00,0x01,0x35,0x2c,0x19,0x18,0x08,0x01,0x06,0x02,0x00,0x02,0x4c,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x00,0x85,0x03, +0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x2d,0x00,0x2d,0x1c,0x14,0x04,0x09,0x18,0x2b,0x05,0x35,0x26,0x26,0x27,0x33,0x14,0x16,0x17,0x11,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x01,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0x26,0x26,0x27,0x15,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x03,0x14, +0x16,0x17,0x35,0x06,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0xfe,0xde,0x5e,0x6b,0x02,0x5a,0x3b,0x36,0x1b,0x4b,0x51,0x63,0x54,0x3c,0x44,0x4d,0x02,0x4e,0xfe,0x61,0x01,0x27,0x13,0x20,0x08,0x09,0x21,0x11,0xfe,0x0d,0x26,0x35,0x19,0x28,0x49,0x50,0x69,0x58,0x99,0x30,0x2d,0x2c,0x31,0x99,0x31,0x36,0x2f,0x2c,0x0c,0x8c,0x83, +0x08,0x69,0x56,0x31,0x3e,0x07,0x01,0x06,0x08,0x17,0x6c,0x49,0x50,0x68,0x08,0x84,0x84,0x08,0x28,0xfe,0xca,0x64,0xd7,0x5a,0x97,0x0a,0x0d,0x02,0x02,0x0a,0x09,0x01,0x08,0x14,0x14,0x02,0xf8,0x0d,0x17,0x6e,0x4a,0x52,0x6c,0x09,0x83,0x02,0xb6,0x2d,0x42,0x0e,0xe5,0x07,0x36,0xfd,0xf3,0x08,0x3c,0x30,0x2c,0x42,0x0d,0x04,0x00,0x00, +0x00,0x01,0xfe,0x20,0x00,0x5f,0x01,0xe0,0x02,0x35,0x00,0x13,0x00,0x5a,0x4b,0xb0,0x21,0x50,0x58,0x40,0x1a,0x05,0x03,0x02,0x01,0x08,0x06,0x02,0x00,0x07,0x01,0x00,0x67,0x0a,0x09,0x02,0x07,0x07,0x02,0x5f,0x04,0x01,0x02,0x02,0x3b,0x07,0x4e,0x1b,0x40,0x20,0x04,0x01,0x02,0x01,0x07,0x02,0x57,0x05,0x03,0x02,0x01,0x08,0x06,0x02, +0x00,0x07,0x01,0x00,0x67,0x04,0x01,0x02,0x02,0x07,0x5f,0x0a,0x09,0x02,0x07,0x02,0x07,0x4f,0x59,0x40,0x12,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x09,0x1f,0x2b,0x25,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x21,0x15,0xfe,0xdf,0xbf,0xbf, +0x58,0x01,0x92,0x58,0xbf,0xbf,0x58,0xfe,0x6e,0x5f,0xc3,0x50,0xc3,0xc3,0xc3,0xc3,0x50,0xc3,0xc3,0xc3,0x00,0x01,0xfb,0xff,0x00,0x5f,0x01,0xa9,0x02,0x35,0x00,0x1b,0x00,0x6b,0x4b,0xb0,0x21,0x50,0x58,0x40,0x1e,0x07,0x05,0x03,0x03,0x01,0x0c,0x0a,0x08,0x03,0x00,0x09,0x01,0x00,0x67,0x0e,0x0d,0x0b,0x03,0x09,0x09,0x02,0x5f,0x06, +0x04,0x02,0x02,0x02,0x3b,0x09,0x4e,0x1b,0x40,0x25,0x06,0x04,0x02,0x02,0x01,0x09,0x02,0x57,0x07,0x05,0x03,0x03,0x01,0x0c,0x0a,0x08,0x03,0x00,0x09,0x01,0x00,0x67,0x06,0x04,0x02,0x02,0x02,0x09,0x5f,0x0e,0x0d,0x0b,0x03,0x09,0x02,0x09,0x4f,0x59,0x40,0x1a,0x00,0x00,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x09,0x1f,0x2b,0x25,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x21,0x15,0x23,0x35,0x21,0x15,0xfc,0xbe,0xbf,0xbf,0x58,0x01,0x92,0x58,0x01,0x92,0x58,0xbf,0xbf,0x58,0xfe,0x6e,0x58,0xfe,0x6e,0x5f,0xc3,0x50,0xc3, +0xc3,0xc3,0xc3,0xc3,0xc3,0x50,0xc3,0xc3,0xc3,0xc3,0xc3,0x00,0x00,0x02,0xfd,0xda,0x00,0x2d,0x02,0x12,0x02,0x67,0x00,0x0b,0x00,0x18,0x00,0x3e,0x40,0x3b,0x17,0x16,0x15,0x03,0x01,0x02,0x11,0x01,0x00,0x01,0x18,0x0d,0x0c,0x03,0x05,0x00,0x03,0x4c,0x00,0x02,0x01,0x05,0x02,0x57,0x03,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x67, +0x00,0x02,0x02,0x05,0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x25,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x25,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0xfe,0xcb,0xf1,0xf1,0x58,0xf1,0xf1,0x01,0x41,0x01,0x36,0x13,0x21, +0x08,0x09,0x22,0x11,0xfe,0xca,0x01,0xae,0x2d,0xf5,0x50,0xf5,0xf5,0x50,0xf5,0x14,0x57,0x98,0x09,0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0x00,0x04,0xfe,0x2a,0x00,0x64,0x01,0xae,0x02,0x30,0x00,0x0b,0x00,0x0f,0x00,0x1b,0x00,0x1f,0x00,0x6f,0x4b,0xb0,0x18,0x50,0x58,0x40,0x22,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x06,0x04, +0x05,0x06,0x57,0x07,0x01,0x05,0x09,0x01,0x04,0x05,0x04,0x65,0x02,0x08,0x02,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x01,0x4e,0x1b,0x40,0x24,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x67,0x00,0x07,0x00,0x06,0x04,0x07,0x06,0x67,0x00,0x05,0x09,0x01,0x04,0x05,0x04,0x65,0x08,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x00,0x4e, +0x59,0x40,0x1b,0x11,0x10,0x01,0x00,0x1f,0x1e,0x1d,0x1c,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0f,0x0e,0x0d,0x0c,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0a,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x25,0x21,0x35,0x21,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x25,0x21,0x35,0x21,0x01, +0x5e,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xfe,0xce,0xfd,0xda,0x02,0x26,0x01,0x0e,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xfe,0xce,0xfd,0xda,0x02,0x26,0x01,0x90,0x2b,0x25,0x24,0x2c,0x2c,0x24,0x25,0x2b,0x0a,0x50,0xfe,0x7a,0x2c,0x25,0x24,0x2b,0x2b,0x24,0x25,0x2c,0x46,0x50,0x00,0x00,0x00,0x00,0x06,0xfb,0xa0,0x00,0x64,0x02,0x08, +0x02,0x30,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x97,0x4b,0xb0,0x18,0x50,0x58,0x40,0x2a,0x04,0x01,0x02,0x00,0x00,0x02,0x57,0x11,0x0b,0x10,0x03,0x09,0x06,0x07,0x09,0x57,0x0a,0x08,0x02,0x07,0x0f,0x01,0x06,0x07,0x06,0x65,0x0e,0x05,0x0d,0x03,0x0c,0x05,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x01, +0x4e,0x1b,0x40,0x2c,0x04,0x01,0x02,0x0e,0x05,0x0d,0x03,0x03,0x00,0x02,0x03,0x67,0x0a,0x01,0x08,0x11,0x0b,0x10,0x03,0x09,0x06,0x08,0x09,0x67,0x00,0x07,0x0f,0x01,0x06,0x07,0x06,0x65,0x0c,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x00,0x4e,0x59,0x40,0x33,0x24,0x24,0x20,0x20,0x15,0x14,0x10,0x10,0x0c,0x0c,0x01,0x00,0x24, +0x27,0x24,0x27,0x26,0x25,0x20,0x23,0x20,0x23,0x22,0x21,0x1b,0x19,0x14,0x1f,0x15,0x1f,0x10,0x13,0x10,0x13,0x12,0x11,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x12,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x01,0x22,0x26,0x35,0x34, +0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x25,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0xfe,0xd4,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xef,0x02,0x21,0xf9,0x98,0x02,0x21,0x01,0x13,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xfc,0xa8,0x02,0x21,0x02,0x26,0x02,0x21,0x01,0x90,0x2b,0x25,0x24,0x2c,0x2c,0x24,0x25,0x2b,0x0a,0x50,0x50,0x50,0x50,0xfe, +0xca,0x2c,0x24,0x25,0x2b,0x2b,0x25,0x24,0x2c,0x46,0x50,0x50,0x50,0x50,0x00,0x00,0x00,0x06,0xfb,0xa0,0xff,0xfb,0x02,0x08,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x21,0x00,0x64,0x40,0x61,0x04,0x01,0x02,0x0e,0x05,0x0d,0x03,0x03,0x06,0x02,0x03,0x67,0x08,0x01,0x06,0x10,0x09,0x0f,0x03,0x07,0x0b,0x06, +0x07,0x67,0x0c,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x0b,0x0b,0x0a,0x61,0x11,0x01,0x0a,0x0a,0x42,0x0a,0x4e,0x15,0x14,0x10,0x10,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x1c,0x19,0x14,0x21,0x15,0x20,0x10,0x13,0x10,0x13,0x12,0x11,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04, +0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x12,0x09,0x17,0x2b,0x25,0x03,0x33,0x03,0x37,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfe,0xab,0x0c,0x6a,0x0c,0xea,0x02,0x21,0xf9,0x98,0x02,0x21,0xfd,0xdf,0x02,0x21,0x02,0x26, +0x02,0x21,0xfc,0xbd,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xc3,0x50,0x50,0x50,0x50,0xf0,0x50,0x50,0x50,0x50,0xaf,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x00,0x00,0x02,0xfd,0xf8,0x00,0xaa,0x02,0x08,0x01,0xea,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x2c,0x00,0x00,0x04,0x01,0x01,0x02, +0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x01,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0xfd,0xf8,0x04,0x10,0xfb,0xf0,0x04,0x10,0x01,0x9a,0x50,0x50,0xf0,0x50,0x50,0x00,0x00, +0x00,0x03,0xfb,0xa5,0x00,0x4c,0x02,0x03,0x02,0x48,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x40,0x40,0x3d,0x00,0x00,0x06,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x07,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x04,0x05,0x4f,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08, +0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x09,0x17,0x2b,0x01,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0xfb,0xa5,0x06,0x5e,0xf9,0xa2,0x06,0x5e,0xf9,0xa2,0x06,0x5e,0x01,0xfc,0x4c,0x4c,0xd8,0x4c,0x4c,0xd8,0x4c,0x4c,0x00,0x01,0xfb,0xa5,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x13, +0x00,0x6c,0xb6,0x12,0x08,0x02,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x25,0x00,0x04,0x03,0x03,0x04,0x70,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x23,0x00,0x04,0x03,0x04,0x85,0x06,0x01, +0x05,0x00,0x05,0x86,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x18,0x11,0x11,0x07,0x09,0x1b,0x2b,0x37,0x37,0x21,0x35,0x21,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x21,0x35,0x21,0x27,0x33, +0x13,0x03,0xbc,0x6b,0xfa,0x7e,0x05,0xc2,0x13,0x13,0x1a,0x05,0x05,0x1c,0x15,0x10,0xfa,0x3f,0x05,0x82,0x6b,0x6a,0xe7,0xe8,0x23,0x87,0x50,0x18,0x17,0x1c,0x04,0x05,0x1f,0x19,0x14,0x50,0x87,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x00,0x00,0x01,0xfd,0xfd,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x13,0x00,0x6c,0xb6,0x12,0x08,0x02,0x01,0x02, +0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x25,0x00,0x04,0x03,0x03,0x04,0x70,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x23,0x00,0x04,0x03,0x04,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x00,0x03,0x00,0x02, +0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x18,0x11,0x11,0x07,0x09,0x1b,0x2b,0x37,0x37,0x21,0x35,0x21,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x21,0x35,0x21,0x27,0x33,0x13,0x03,0xbc,0x6b,0xfc,0xd6,0x03,0x6a, +0x13,0x13,0x1a,0x05,0x05,0x1c,0x15,0x10,0xfc,0x97,0x03,0x2a,0x6b,0x6a,0xe7,0xe8,0x23,0x87,0x50,0x18,0x17,0x1c,0x04,0x05,0x1f,0x19,0x14,0x50,0x87,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x00,0x00,0x02,0xfb,0xa5,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x13,0x00,0x1f,0x00,0x47,0x40,0x44,0x1e,0x18,0x12,0x08,0x04,0x01,0x02,0x01,0x4c,0x06, +0x01,0x04,0x03,0x05,0x04,0x57,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x05,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x04,0x05,0x4f,0x14,0x14,0x00,0x00,0x14,0x1f,0x14,0x1f,0x1d,0x1c,0x00,0x13,0x00,0x13,0x11,0x11,0x18,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x27,0x37,0x21,0x35,0x21, +0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x21,0x35,0x21,0x27,0x33,0x13,0x03,0x33,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x70,0x6b,0xfb,0xaa,0x04,0x96,0x13,0x13,0x1a,0x05,0x05,0x1c,0x15,0x10,0xfb,0x6b,0x04,0x56,0x6b,0x6a,0xe7,0xe8,0xc3,0xbe,0x13,0x1a,0x05,0x05,0x1c,0x15,0xba,0x6a,0xe7,0xe8,0x23,0x87,0x50, +0x18,0x17,0x1c,0x04,0x05,0x1f,0x19,0x14,0x50,0x87,0xfe,0xd9,0xfe,0xd9,0xef,0x17,0x1c,0x04,0x05,0x1f,0x19,0xeb,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x00,0x02,0xfb,0xa5,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0f,0x00,0x17,0x00,0x47,0x40,0x44,0x15,0x11,0x0d,0x05,0x04,0x01,0x02,0x01,0x4c,0x06,0x01,0x04,0x03,0x05,0x04,0x57,0x00,0x03, +0x00,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x00,0x05,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x04,0x05,0x4f,0x10,0x10,0x00,0x00,0x10,0x17,0x10,0x17,0x13,0x12,0x00,0x0f,0x00,0x0f,0x11,0x11,0x12,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x37,0x27,0x21,0x35,0x21,0x27,0x37,0x21,0x35,0x21,0x37,0x33,0x07, +0x07,0x17,0x17,0x33,0x03,0x13,0x33,0x07,0x07,0x17,0x17,0x72,0x6a,0xfb,0x9d,0x04,0x25,0x3f,0x3f,0xfb,0xdb,0x04,0x64,0x6a,0x69,0xbe,0x2e,0x32,0xba,0xae,0xe7,0xe8,0x69,0xbe,0x2e,0x32,0xba,0x23,0x87,0x50,0x50,0x50,0x50,0x87,0xef,0x37,0x3d,0xeb,0x01,0x27,0x01,0x27,0xef,0x37,0x3d,0xeb,0x00,0x01,0xfb,0xa1,0x00,0x00,0x02,0x09, +0x02,0x99,0x00,0x13,0x00,0x35,0x40,0x32,0x00,0x04,0x03,0x04,0x85,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x68,0x07,0x01,0x01,0x08,0x01,0x00,0x09,0x01,0x00,0x67,0x0a,0x01,0x09,0x09,0x39,0x09,0x4e,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x09,0x1f,0x2b,0x21,0x37,0x21,0x35,0x21, +0x37,0x21,0x35,0x21,0x37,0x33,0x07,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0xfe,0x53,0x3e,0xfd,0x10,0x03,0x0e,0x3a,0xfc,0xb8,0x03,0x66,0x40,0x48,0x40,0x02,0xba,0xfd,0x28,0x3a,0x03,0x12,0xfc,0xd0,0x3e,0xaa,0x50,0xa0,0x50,0xaf,0xaf,0x50,0xa0,0x50,0xaa,0x00,0x00,0x00,0x01,0xfe,0x0c,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x0e, +0x00,0x2e,0x40,0x2b,0x04,0x01,0x02,0x01,0x01,0x4c,0x00,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x0e,0x00,0x0e,0x11,0x11,0x18,0x05,0x09,0x19,0x2b,0x25,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x33,0x17,0x21,0x15,0x21,0x07,0xfe, +0x0c,0xbe,0x13,0x1a,0x05,0x05,0x1c,0x15,0xba,0x6a,0xc8,0x02,0xc5,0xfd,0x3b,0xc9,0x23,0xef,0x17,0x1c,0x04,0x05,0x1f,0x19,0xeb,0xff,0x50,0xff,0x00,0x01,0xfb,0xb3,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x19,0x00,0x34,0x40,0x31,0x11,0x04,0x02,0x04,0x01,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x04,0x03,0x01, +0x04,0x68,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x19,0x00,0x19,0x23,0x12,0x14,0x11,0x18,0x07,0x09,0x1b,0x2b,0x25,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x33,0x17,0x21,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x23,0x37,0x36,0x36,0x37,0x21,0x07,0xfb,0xb3,0xbe,0x13,0x1a,0x05,0x05,0x1d, +0x14,0xba,0x6a,0xc8,0x04,0xa1,0x04,0x07,0x05,0xba,0x6a,0xe7,0xe8,0x69,0xbe,0x03,0x07,0x03,0xfb,0x5e,0xc9,0x23,0xef,0x17,0x1c,0x04,0x05,0x1e,0x1a,0xeb,0xff,0x05,0x0a,0x05,0xeb,0xfe,0xd9,0xfe,0xd9,0xef,0x04,0x08,0x04,0xff,0xff,0xff,0xfe,0x61,0xff,0x92,0x01,0x59,0x03,0x3e,0x00,0x27,0x04,0x1b,0xfe,0x0c,0x00,0x0f,0x01,0x06, +0x03,0x48,0xce,0x00,0x00,0x08,0xb1,0x00,0x01,0xb0,0x0f,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0xfe,0x89,0x00,0x2d,0x01,0x7f,0x02,0x67,0x00,0x27,0x04,0x1b,0xfe,0x34,0x00,0x00,0x03,0x06,0x03,0x2b,0x00,0x37,0x00,0x08,0xb1,0x01,0x02,0xb0,0x37,0xb0,0x35,0x2b,0x00,0x00,0x00,0x02,0xfe,0xcf,0xff,0xb6,0x01,0x31,0x02,0xbc,0x00,0x0d, +0x00,0x11,0x00,0x08,0xb5,0x10,0x0e,0x0b,0x00,0x02,0x32,0x2b,0x25,0x35,0x25,0x36,0x36,0x37,0x35,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0x01,0x35,0x25,0x15,0xfe,0xcf,0x01,0xea,0x11,0x1f,0x07,0x07,0x1f,0x11,0xfe,0x16,0x02,0x62,0xfd,0x9e,0x02,0x62,0x96,0x5a,0xa8,0x06,0x06,0x01,0x07,0x01,0x06,0x06,0xab,0x58,0xe1,0x64,0xfe,0x3f, +0x5a,0xe1,0x5a,0x00,0x00,0x02,0xfb,0xb3,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0d,0x00,0x19,0x00,0x42,0x40,0x3f,0x19,0x13,0x08,0x01,0x04,0x06,0x07,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x00,0x04,0x03,0x06,0x04,0x67,0x02,0x01,0x00,0x00,0x03,0x5f,0x08,0x05,0x02,0x03, +0x00,0x03,0x4f,0x00,0x00,0x18,0x17,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x09,0x09,0x1b,0x2b,0x25,0x13,0x03,0x33,0x17,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x07,0x37,0x21,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x21,0x17,0xfb,0xb3,0xeb,0xeb,0x6a,0x6a,0x04,0xa0,0x6b,0x6a,0xe7,0xe8,0x69,0x6b,0xfb,0x5f, +0x6a,0xa9,0x04,0xa2,0x13,0x13,0x1a,0x05,0x05,0x1c,0x15,0x10,0xfb,0x5f,0x3f,0x23,0x01,0x26,0x01,0x28,0x87,0x87,0xfe,0xd9,0xfe,0xd9,0x87,0x87,0xd7,0x18,0x17,0x1c,0x04,0x05,0x1f,0x19,0x14,0x50,0x00,0x00,0xff,0xff,0xfe,0x2a,0x00,0x40,0x01,0xd7,0x02,0x53,0x00,0x26,0x04,0x1b,0xd4,0x00,0x01,0x07,0x04,0x1b,0xfd,0xd5,0xff,0xff, +0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xff,0xb0,0x35,0x2b,0x00,0x00,0x02,0xfb,0xb3,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x08,0x00,0x0e,0x00,0x3c,0x40,0x39,0x0d,0x0a,0x01,0x03,0x02,0x01,0x01,0x4c,0x04,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x04,0x01,0x00,0x00,0x03,0x5f,0x07,0x05,0x06,0x03,0x03, +0x00,0x03,0x4f,0x09,0x09,0x00,0x00,0x09,0x0e,0x09,0x0e,0x0c,0x0b,0x00,0x08,0x00,0x08,0x11,0x11,0x12,0x08,0x09,0x19,0x2b,0x25,0x13,0x03,0x33,0x17,0x21,0x15,0x21,0x07,0x21,0x13,0x03,0x33,0x13,0x03,0xfc,0xdf,0xeb,0xeb,0x6a,0xc8,0x03,0xf2,0xfc,0x0e,0xc9,0xfe,0x6b,0xeb,0xeb,0x6a,0xe7,0xe8,0x23,0x01,0x26,0x01,0x28,0xff,0x50, +0xff,0x01,0x26,0x01,0x28,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x00,0x00,0x02,0xfb,0xb3,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x47,0x40,0x44,0x12,0x0f,0x08,0x01,0x04,0x03,0x02,0x01,0x4c,0x06,0x01,0x00,0x01,0x05,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x06,0x01, +0x00,0x00,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x00,0x05,0x4f,0x0e,0x0e,0x00,0x00,0x0e,0x13,0x0e,0x13,0x11,0x10,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x0a,0x09,0x1b,0x2b,0x25,0x13,0x03,0x33,0x17,0x21,0x15,0x21,0x17,0x07,0x21,0x15,0x21,0x07,0x21,0x13,0x03,0x33,0x13,0x03,0xfc,0xdf,0xeb,0xeb,0x6a,0x6a,0x04,0x50,0xfb, +0xee,0x3f,0x3f,0x04,0x12,0xfb,0xaf,0x6a,0xfe,0x6b,0xeb,0xeb,0x6a,0xe7,0xe8,0x23,0x01,0x26,0x01,0x28,0x87,0x50,0x50,0x50,0x50,0x87,0x01,0x26,0x01,0x28,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0xff,0xff,0xfc,0x6d,0x00,0x41,0x02,0x03,0x02,0x53,0x00,0x27,0x04,0x1b,0xfc,0x18,0x00,0x00,0x00,0x27,0x04,0x1b,0xfe,0x0c,0x00,0x00,0x02,0x06, +0x04,0x1b,0x00,0x00,0x00,0x01,0xfd,0xf3,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0e,0x00,0x30,0x40,0x2d,0x01,0x01,0x02,0x01,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x60,0x00,0x02,0x01,0x02,0x50,0x00,0x00,0x00,0x0e,0x00,0x0e,0x11,0x23,0x12,0x05,0x09, +0x19,0x2b,0x25,0x03,0x13,0x33,0x07,0x06,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x17,0x17,0xfe,0xda,0xe7,0xe8,0x69,0xbe,0x03,0x07,0x03,0x03,0x7b,0xfc,0x86,0x04,0x08,0x04,0xba,0x23,0x01,0x27,0x01,0x27,0xef,0x04,0x08,0x04,0x50,0x04,0x0b,0x05,0xeb,0x00,0x01,0xfb,0x9b,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x0e,0x00,0x30,0x40,0x2d, +0x01,0x01,0x02,0x01,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x60,0x00,0x02,0x01,0x02,0x50,0x00,0x00,0x00,0x0e,0x00,0x0e,0x11,0x23,0x12,0x05,0x09,0x19,0x2b,0x25,0x03,0x13,0x33,0x07,0x06,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x17,0x17,0xfc,0x82,0xe7, +0xe8,0x69,0xbe,0x03,0x07,0x03,0x05,0xe2,0xfa,0x1a,0x05,0x0a,0x06,0xba,0x23,0x01,0x27,0x01,0x27,0xef,0x04,0x08,0x04,0x4b,0x05,0x0d,0x07,0xeb,0x00,0x01,0xfb,0x9b,0x00,0x23,0x01,0xd6,0x02,0x71,0x00,0x0c,0x00,0x33,0x40,0x30,0x09,0x01,0x02,0x05,0x01,0x4c,0x04,0x01,0x00,0x05,0x01,0x00,0x57,0x06,0x01,0x05,0x00,0x02,0x01,0x05, +0x02,0x68,0x04,0x01,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x0c,0x00,0x0c,0x12,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x01,0x35,0x33,0x11,0x23,0x35,0x21,0x17,0x23,0x03,0x13,0x33,0x07,0x01,0x7c,0x5a,0x5a,0xfa,0xa6,0xca,0x6a,0xe7,0xe8,0x69,0xcb,0x01,0x72,0xff,0xfd,0xb2,0xff,0xff,0x01,0x27,0x01, +0x27,0xff,0x00,0x00,0x00,0x01,0xfb,0x9b,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0d,0x00,0x35,0x40,0x32,0x08,0x01,0x02,0x04,0x01,0x01,0x4c,0x02,0x01,0x00,0x01,0x00,0x85,0x06,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x04,0x04,0x01,0x57,0x00,0x01,0x01,0x04,0x60,0x00,0x04,0x01,0x04,0x50,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x12, +0x11,0x11,0x12,0x07,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x17,0xfc,0x82,0xe7,0xe8,0x69,0xcb,0x05,0x66,0xcb,0x6a,0xe7,0xe8,0x69,0xcb,0xfa,0x9b,0xca,0x23,0x01,0x27,0x01,0x27,0xff,0xff,0xfe,0xd9,0xfe,0xd9,0xff,0xff,0x00,0x00,0x01,0xfb,0x9b,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0d, +0x00,0x34,0x40,0x31,0x08,0x01,0x02,0x04,0x01,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x68,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x07,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x37,0x33,0x03,0x13, +0x23,0x27,0x21,0x17,0xfc,0x82,0xe7,0xe8,0x69,0xcb,0x04,0xa1,0xc9,0x69,0xe7,0xe7,0x6a,0xc8,0xfb,0x60,0xca,0x23,0x01,0x27,0x01,0x27,0xff,0xff,0xfe,0xda,0xfe,0xd8,0xff,0xff,0x00,0x00,0xff,0xff,0xfe,0x89,0x00,0x2d,0x01,0x7f,0x02,0x67,0x00,0x27,0x04,0x1c,0xfe,0x34,0x00,0x00,0x03,0x06,0x03,0x2b,0x00,0x37,0x00,0x08,0xb1,0x01, +0x02,0xb0,0x37,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0xfb,0xcd,0x00,0x2d,0x01,0xa9,0x02,0x67,0x00,0x27,0x04,0x1c,0xfb,0x78,0x00,0x00,0x00,0x27,0x03,0x2b,0xfd,0xa8,0x00,0x37,0x01,0x06,0x04,0x1c,0xa6,0x00,0x00,0x08,0xb1,0x01,0x02,0xb0,0x37,0xb0,0x35,0x2b,0x00,0x00,0x00,0x04,0xf9,0x43,0xff,0xfb,0x02,0x03,0x02,0xda,0x00,0x03, +0x00,0x10,0x00,0x14,0x00,0x22,0x00,0x62,0x40,0x5f,0x05,0x01,0x04,0x03,0x01,0x4c,0x00,0x02,0x00,0x03,0x00,0x02,0x03,0x80,0x0b,0x01,0x05,0x09,0x08,0x09,0x05,0x08,0x80,0x06,0x01,0x03,0x0c,0x07,0x02,0x04,0x01,0x03,0x04,0x68,0x0a,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x09,0x09,0x08,0x61,0x0d,0x01,0x08,0x08, +0x42,0x08,0x4e,0x16,0x15,0x11,0x11,0x04,0x04,0x00,0x00,0x1d,0x1a,0x15,0x22,0x16,0x21,0x11,0x14,0x11,0x14,0x13,0x12,0x04,0x10,0x04,0x10,0x0d,0x0c,0x0b,0x0a,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x0e,0x09,0x17,0x2b,0x25,0x03,0x33,0x03,0x05,0x03,0x13,0x33,0x07,0x06,0x07,0x21,0x15,0x21,0x16,0x17,0x17,0x25,0x35,0x21,0x15,0x01, +0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfc,0x53,0x0c,0x6a,0x0c,0xfd,0x85,0xe7,0xe8,0x69,0xbe,0x07,0x06,0x01,0xeb,0xfe,0x16,0x08,0x08,0xba,0x02,0xb0,0x04,0xbf,0xfa,0x6a,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xb4,0x01,0x27,0x01,0x27,0xef,0x08,0x08,0x50,0x0a,0x0a, +0xeb,0xff,0x50,0x50,0xfe,0xd9,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0xff,0xff,0xfd,0xee,0x00,0x41,0x02,0x20,0x02,0x6c,0x00,0x27,0x04,0x1c,0xfd,0x99,0x00,0x00,0x00,0x06,0x03,0x34,0xec,0x00,0xff,0xff,0xfb,0xb4,0x00,0x41,0x01,0xf4,0x02,0x6c,0x00,0x27,0x04,0x1c,0xfb,0x5f,0x00,0x00,0x00,0x26,0x04,0x1b,0xf1,0x00, +0x00,0x07,0x03,0x34,0xfd,0xa8,0x00,0x00,0x00,0x02,0xfe,0x98,0xff,0xab,0x01,0x45,0x02,0xee,0x00,0x05,0x00,0x0e,0x00,0x41,0x40,0x0a,0x0b,0x07,0x06,0x02,0x01,0x05,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0c,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x01,0x4e,0x1b,0x40,0x11,0x00,0x00,0x01,0x01,0x00,0x57, +0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x59,0x40,0x0a,0x00,0x00,0x00,0x05,0x00,0x05,0x13,0x03,0x09,0x17,0x2b,0x17,0x01,0x35,0x01,0x33,0x11,0x27,0x11,0x01,0x06,0x06,0x07,0x16,0x16,0x17,0xeb,0xfd,0xad,0x02,0x53,0x5a,0x5a,0xfe,0x43,0x16,0x27,0x0a,0x0a,0x27,0x16,0x55,0x01,0x6d,0x64,0x01,0x72,0xfc,0xbd,0x68, +0x02,0x70,0xfe,0xee,0x0d,0x17,0x05,0x04,0x15,0x0e,0x00,0x00,0x00,0x03,0xfc,0x77,0xff,0xab,0x00,0xd2,0x02,0xee,0x00,0x03,0x00,0x09,0x00,0x12,0x00,0x50,0x40,0x0a,0x0f,0x0b,0x0a,0x06,0x05,0x05,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0f,0x05,0x03,0x04,0x03,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x00,0x38,0x01,0x4e, +0x1b,0x40,0x15,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x59,0x40,0x12,0x04,0x04,0x00,0x00,0x04,0x09,0x04,0x09,0x08,0x07,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x17,0x11,0x33,0x11,0x21,0x01,0x35,0x01,0x33,0x11,0x27,0x11,0x01,0x06,0x06,0x07,0x16,0x16, +0x17,0x78,0x5a,0xfd,0xf8,0xfd,0xad,0x02,0x53,0x5a,0x5a,0xfe,0x43,0x16,0x27,0x0a,0x0a,0x27,0x16,0x55,0x03,0x43,0xfc,0xbd,0x01,0x6d,0x64,0x01,0x72,0xfc,0xbd,0x68,0x02,0x70,0xfe,0xee,0x0d,0x17,0x05,0x04,0x15,0x0e,0x00,0x00,0x00,0x04,0xfa,0x7e,0xff,0xab,0x00,0x87,0x02,0xee,0x00,0x03,0x00,0x07,0x00,0x0d,0x00,0x16,0x00,0x5f, +0x40,0x0a,0x13,0x0f,0x0e,0x0a,0x09,0x05,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x12,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x01,0x00,0x5f,0x04,0x02,0x02,0x00,0x00,0x38,0x01,0x4e,0x1b,0x40,0x19,0x04,0x02,0x02,0x00,0x01,0x01,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x01,0x5f,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x00,0x01, +0x4f,0x59,0x40,0x1a,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0d,0x08,0x0d,0x0c,0x0b,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x09,0x17,0x2b,0x17,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x01,0x35,0x01,0x33,0x11,0x27,0x11,0x01,0x06,0x06,0x07,0x16,0x16,0x17,0x2d,0x5a,0xfd,0xf8,0x5a,0xfd,0xf8,0xfd,0xad,0x02, +0x53,0x5a,0x5a,0xfe,0x43,0x16,0x27,0x0a,0x0a,0x27,0x16,0x55,0x03,0x43,0xfc,0xbd,0x03,0x43,0xfc,0xbd,0x01,0x6d,0x64,0x01,0x72,0xfc,0xbd,0x68,0x02,0x70,0xfe,0xee,0x0d,0x17,0x05,0x04,0x15,0x0e,0x00,0x00,0x00,0x03,0xfb,0xe6,0xff,0x92,0x01,0xc2,0x03,0x0c,0x00,0x03,0x00,0x10,0x00,0x1d,0x00,0x2a,0x40,0x27,0x1d,0x19,0x15,0x14, +0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x09,0x05,0x04,0x0e,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x05,0x11,0x33,0x11,0x37,0x35,0x01,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0x35,0x01,0x15,0x01,0x01,0x35,0x01,0x15,0x01,0x06,0x06,0x07,0x16,0x16, +0x17,0x01,0xfe,0xa7,0x5a,0x6e,0x01,0xbd,0x14,0x27,0x0a,0x0a,0x27,0x14,0xfe,0x43,0x02,0x53,0xfc,0x77,0xfd,0xad,0x02,0x53,0xfe,0x43,0x13,0x26,0x0b,0x0b,0x26,0x13,0x01,0xbd,0x6e,0x03,0x7a,0xfc,0x86,0x18,0x6b,0x01,0x10,0x0c,0x15,0x04,0x05,0x16,0x0c,0x01,0x16,0x67,0xfe,0x8e,0x64,0xfe,0x91,0x01,0x6f,0x64,0x01,0x72,0x6b,0xfe, +0xeb,0x0c,0x16,0x05,0x05,0x15,0x0b,0xfe,0xee,0x00,0x00,0x00,0x00,0x03,0xfe,0x07,0xff,0x74,0x02,0x01,0x03,0x66,0x00,0x2d,0x00,0x34,0x00,0x3c,0x00,0x49,0x40,0x46,0x32,0x24,0x1d,0x1a,0x06,0x05,0x03,0x02,0x3c,0x31,0x25,0x13,0x0b,0x07,0x05,0x04,0x08,0x01,0x03,0x2c,0x01,0x04,0x00,0x03,0x4c,0x35,0x01,0x01,0x01,0x4b,0x00,0x02, +0x03,0x02,0x85,0x00,0x03,0x01,0x03,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x00,0x42,0x00,0x4e,0x00,0x00,0x00,0x2d,0x00,0x2d,0x14,0x19,0x1f,0x11,0x06,0x09,0x1a,0x2b,0x05,0x35,0x26,0x27,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x16,0x16,0x17,0x11,0x27,0x26,0x26,0x35,0x34, +0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x17,0x23,0x34,0x26,0x27,0x15,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x03,0x14,0x16,0x17,0x35,0x06,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x01,0x04,0x79,0x69,0xfd,0xe5,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x21,0x12,0x01,0xc5,0x2c,0x5d,0x37,0x1b,0x4a,0x52,0x63,0x54,0x3c,0x53, +0x64,0x01,0x5a,0x31,0x2d,0x28,0x49,0x50,0x69,0x58,0x99,0x30,0x2d,0x2c,0x31,0x99,0x31,0x36,0x30,0x2b,0x0c,0x8c,0x83,0x04,0x2f,0xee,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x03,0x0c,0x08,0xc4,0x13,0x15,0x02,0x01,0x07,0x08,0x17,0x6b,0x4a,0x50,0x68,0x08,0x84,0x83,0x08,0x68,0x52,0x2f,0x3b,0x07,0xf8,0x0d,0x17,0x6d,0x4b,0x52,0x6c, +0x09,0x83,0x02,0xb6,0x2d,0x42,0x0e,0xe5,0x07,0x36,0xfd,0xf3,0x08,0x3c,0x30,0x2c,0x42,0x0d,0x04,0x00,0x00,0x03,0xfb,0xbe,0xff,0x74,0x01,0xea,0x03,0x66,0x00,0x37,0x00,0x3e,0x00,0x46,0x00,0x48,0x40,0x45,0x46,0x3c,0x3b,0x2f,0x2e,0x28,0x24,0x22,0x21,0x1d,0x1a,0x13,0x0b,0x07,0x06,0x05,0x04,0x11,0x01,0x02,0x23,0x01,0x00,0x01, +0x36,0x01,0x03,0x00,0x03,0x4c,0x3f,0x01,0x01,0x01,0x4b,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x00,0x42,0x00,0x4e,0x00,0x00,0x00,0x37,0x00,0x37,0x19,0x1f,0x11,0x05,0x09,0x19,0x2b,0x05,0x35,0x26,0x27,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x16,0x16, +0x17,0x11,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x17,0x01,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0x26,0x27,0x15,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x03,0x14,0x16,0x17,0x35,0x06,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0xfe,0xbb,0x79,0x69,0xfd,0xe5,0x01,0xae,0xfe,0xca,0x13, +0x21,0x08,0x09,0x21,0x12,0x01,0xc5,0x2c,0x5d,0x37,0x1b,0x4a,0x52,0x63,0x54,0x3c,0x23,0x50,0x25,0x02,0x5b,0xfe,0x52,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfd,0xf8,0x3f,0x34,0x28,0x49,0x50,0x69,0x58,0x99,0x30,0x2d,0x2c,0x31,0x99,0x31,0x36,0x30,0x2b,0x0c,0x8c,0x83,0x04,0x2f,0xee,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x03, +0x0c,0x08,0xc4,0x13,0x15,0x02,0x01,0x07,0x08,0x16,0x6c,0x4a,0x50,0x67,0x08,0x85,0x85,0x04,0x19,0x13,0xfe,0xcb,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x01,0x0a,0x20,0x08,0xf8,0x0d,0x17,0x6d,0x4b,0x52,0x6c,0x09,0x83,0x02,0xb6,0x2d,0x42,0x0e,0xe5,0x07,0x36,0xfd,0xf3,0x08,0x3c,0x30,0x2c,0x41,0x0e,0x04,0x00,0x00, +0x00,0x04,0xf9,0x43,0x00,0x00,0x02,0x03,0x02,0xda,0x00,0x1b,0x00,0x24,0x00,0x28,0x00,0x2c,0x00,0x7d,0x40,0x7a,0x1d,0x01,0x10,0x0f,0x01,0x4c,0x00,0x0e,0x04,0x03,0x04,0x0e,0x03,0x80,0x17,0x01,0x11,0x00,0x0b,0x00,0x11,0x0b,0x80,0x07,0x05,0x02,0x03,0x13,0x08,0x02,0x02,0x0f,0x03,0x02,0x68,0x14,0x01,0x0f,0x18,0x15,0x02,0x10, +0x01,0x0f,0x10,0x68,0x12,0x09,0x02,0x01,0x0c,0x0a,0x02,0x00,0x11,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x16,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x29,0x29,0x1c,0x1c,0x00,0x00,0x29,0x2c,0x29,0x2c,0x2b,0x2a,0x28,0x27,0x26,0x25,0x1c,0x24,0x1c,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17, +0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x19,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x25,0x03,0x13,0x33,0x07,0x21,0x15,0x21,0x17,0x25,0x33,0x37,0x23,0x05,0x35,0x21,0x15,0xfb,0xa3, +0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0xfe,0x41,0xe7,0xe8,0x69,0xcb,0x01,0x69,0xfe,0x98,0xca,0x01,0x87,0xa0,0x22,0xa0,0x01,0x93,0x04,0x33,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0x23,0x01,0x27,0x01,0x27,0xff,0x50, +0xff,0xf0,0xb4,0xa5,0x50,0x50,0x00,0x00,0x00,0x02,0xfd,0xee,0x00,0x2d,0x02,0x26,0x02,0x67,0x00,0x0b,0x00,0x18,0x00,0x3e,0x40,0x3b,0x10,0x0f,0x0e,0x03,0x01,0x02,0x14,0x01,0x00,0x01,0x18,0x0d,0x0c,0x03,0x05,0x00,0x03,0x4c,0x00,0x02,0x01,0x05,0x02,0x57,0x03,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x67,0x00,0x02,0x02,0x05, +0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x37,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0xdd,0xf1,0xf1,0x58,0xf1,0xf1,0xfe,0x67,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08, +0x09,0x22,0x11,0x01,0x36,0x2d,0xf5,0x50,0xf5,0xf5,0x50,0xf5,0x14,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0x00,0x00,0x00,0x00,0x03,0xfb,0xb4,0x00,0x2d,0x01,0xf4,0x02,0x67,0x00,0x0b,0x00,0x18,0x00,0x25,0x00,0x45,0x40,0x42,0x24,0x23,0x22,0x10,0x0f,0x0e,0x06,0x01,0x02,0x1e,0x14,0x02,0x00,0x01,0x25,0x1a, +0x19,0x18,0x0d,0x0c,0x06,0x05,0x00,0x03,0x4c,0x00,0x02,0x01,0x05,0x02,0x57,0x03,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x67,0x00,0x02,0x02,0x05,0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x25,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x25, +0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0xfe,0xa8,0xf1,0xf1,0x58,0xf1,0xf1,0xfe,0x62,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x22,0x11,0x01,0x36,0x02,0xe4,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0xca,0x01,0xae,0x2d,0xf5, +0x50,0xf5,0xf5,0x50,0xf5,0x14,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0x5a,0x57,0x98,0x09,0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0x00,0x00,0x02,0xfe,0xcf,0xff,0xb6,0x01,0x31,0x02,0xbc,0x00,0x0d,0x00,0x11,0x00,0x08,0xb5,0x10,0x0e,0x03,0x00,0x02,0x32,0x2b,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06, +0x07,0x15,0x32,0x16,0x17,0x05,0x11,0x25,0x35,0x05,0x01,0x31,0xfd,0x9e,0x02,0x62,0xfe,0x16,0x11,0x1e,0x08,0x08,0x1e,0x11,0x01,0xea,0xfd,0x9e,0x02,0x62,0x96,0xe1,0x64,0xe1,0x5a,0xa8,0x06,0x06,0x01,0x07,0x06,0x06,0xab,0xfe,0xc7,0xe2,0x58,0xe2,0x00,0x02,0xfb,0x9b,0x00,0x23,0x01,0xd6,0x02,0x71,0x00,0x0c,0x00,0x11,0x00,0x40, +0x40,0x3d,0x11,0x01,0x02,0x06,0x07,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x00,0x04,0x03,0x06,0x04,0x67,0x02,0x01,0x00,0x00,0x03,0x5f,0x08,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x10,0x0f,0x0e,0x0d,0x00,0x0c,0x00,0x0c,0x11,0x11,0x11,0x11,0x12,0x09,0x09,0x1b,0x2b, +0x25,0x03,0x13,0x33,0x07,0x21,0x35,0x33,0x11,0x23,0x35,0x21,0x17,0x27,0x21,0x35,0x21,0x07,0xfc,0x82,0xe7,0xe8,0x69,0x6b,0x04,0xfb,0x5a,0x5a,0xfb,0x05,0x6b,0xaa,0x05,0x3a,0xfa,0xc5,0x3d,0x23,0x01,0x27,0x01,0x27,0x87,0x87,0xfd,0xb2,0x87,0x87,0xd7,0xa0,0x4f,0x00,0x00,0x01,0xfb,0x9b,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x0d, +0x00,0x6c,0xb6,0x08,0x01,0x02,0x03,0x02,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x25,0x00,0x00,0x01,0x01,0x00,0x70,0x06,0x01,0x05,0x04,0x04,0x05,0x71,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x1b,0x40,0x23,0x00,0x00,0x01,0x00,0x85,0x06,0x01, +0x05,0x04,0x05,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x07,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x15,0x21,0x07,0x17,0x21,0x15,0x21,0x17,0xfc,0x82,0xe7,0xe8, +0x69,0x6b,0x05,0x82,0xfa,0x3e,0x3d,0x3e,0x05,0xc1,0xfa,0x7e,0x6b,0x23,0x01,0x27,0x01,0x27,0x87,0x50,0x4f,0x51,0x50,0x87,0x00,0x02,0xf9,0x43,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x77,0x40,0x09,0x13,0x10,0x08,0x01,0x04,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00, +0x70,0x08,0x05,0x02,0x03,0x04,0x04,0x03,0x71,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00,0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x1b,0x40,0x25,0x02,0x01,0x00,0x01,0x00,0x85,0x08,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00, +0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x59,0x40,0x12,0x00,0x00,0x12,0x11,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x09,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x17,0x27,0x21,0x37,0x27,0x21,0x07,0xfa,0x2a,0xe7,0xe8,0x69,0x6b,0x06,0xfe,0x6b,0x6a,0xe7,0xe8,0x69, +0x6b,0xf9,0x02,0x6b,0xaa,0x07,0x7d,0x41,0x42,0xf8,0x83,0x3d,0x23,0x01,0x27,0x01,0x27,0x87,0x87,0xfe,0xd9,0xfe,0xd9,0x87,0x87,0xd7,0x4f,0x51,0x4f,0x00,0x00,0x00,0x00,0x02,0xfb,0x9b,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x77,0x40,0x09,0x13,0x10,0x08,0x01,0x04,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58, +0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00,0x70,0x08,0x05,0x02,0x03,0x04,0x04,0x03,0x71,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00,0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x1b,0x40,0x25,0x02,0x01,0x00,0x01,0x00,0x85,0x08,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x00,0x07,0x06,0x01,0x07, +0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00,0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x59,0x40,0x12,0x00,0x00,0x12,0x11,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x09,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x17,0x27,0x21,0x37,0x27,0x21,0x07,0xfc,0x82,0xe7,0xe8,0x69, +0x6b,0x04,0xa6,0x6b,0x6a,0xe7,0xe8,0x69,0x6b,0xfb,0x5a,0x6b,0xaa,0x05,0x25,0x41,0x42,0xfa,0xdb,0x3e,0x23,0x01,0x27,0x01,0x27,0x87,0x87,0xfe,0xd9,0xfe,0xd9,0x87,0x87,0xd7,0x4f,0x51,0x4f,0x00,0x00,0x00,0x00,0x02,0xfb,0x9b,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x42,0x40,0x3f,0x13,0x10,0x08,0x01,0x04,0x06, +0x07,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x00,0x04,0x03,0x06,0x04,0x67,0x02,0x01,0x00,0x00,0x03,0x5f,0x08,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x12,0x11,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x09,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21, +0x37,0x33,0x03,0x13,0x23,0x27,0x21,0x17,0x27,0x21,0x27,0x37,0x21,0x07,0xfc,0x82,0xe7,0xe8,0x69,0x6b,0x04,0xa0,0x6a,0x69,0xe8,0xe8,0x6a,0x6a,0xfb,0x61,0x6b,0xaa,0x04,0xa0,0x3f,0x3f,0xfb,0x5f,0x3d,0x23,0x01,0x27,0x01,0x27,0x87,0x87,0xfe,0xda,0xfe,0xd8,0x87,0x87,0xd7,0x50,0x50,0x4f,0x00,0x02,0xfe,0x34,0x00,0x28,0x01,0xcc, +0x02,0x6c,0x00,0x05,0x00,0x13,0x00,0x08,0xb5,0x0e,0x06,0x03,0x00,0x02,0x32,0x2b,0x35,0x25,0x35,0x25,0x05,0x15,0x05,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x05,0x06,0x07,0x16,0x17,0xfe,0x34,0x01,0xcc,0x01,0xcc,0xfe,0x38,0x01,0x4e,0x14,0x17,0x04,0x04,0x18,0x11,0xfe,0xab,0xfe,0xb7,0x25,0x0c,0x0c,0x25,0x28,0xf0,0x64,0xf0, +0xf0,0x64,0x91,0xaa,0x0a,0x0c,0x02,0x02,0x0a,0x09,0xb0,0xac,0x13,0x03,0x03,0x13,0xff,0xff,0xfe,0x47,0x00,0x41,0x01,0xd6,0x02,0x53,0x00,0x27,0x04,0x1c,0xfd,0xf2,0x00,0x00,0x00,0x06,0x04,0x1c,0xd3,0x00,0x00,0x02,0xfb,0x9b,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x08,0x00,0x0e,0x00,0x3c,0x40,0x39,0x0d,0x0a,0x01,0x03,0x02,0x01, +0x01,0x4c,0x04,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x04,0x01,0x00,0x00,0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x00,0x03,0x4f,0x09,0x09,0x00,0x00,0x09,0x0e,0x09,0x0e,0x0c,0x0b,0x00,0x08,0x00,0x08,0x11,0x11,0x12,0x08,0x09,0x19,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x15,0x21,0x13,0x21,0x03,0x13, +0x33,0x03,0x13,0xfd,0xae,0xe7,0xe8,0x69,0xcb,0x04,0xb6,0xfb,0x46,0xcf,0xfe,0x6a,0xe7,0xe8,0x69,0xea,0xea,0x23,0x01,0x27,0x01,0x27,0xff,0x4b,0xfe,0xfc,0x01,0x27,0x01,0x27,0xfe,0xda,0xfe,0xd8,0x00,0x00,0x00,0x02,0xfb,0x9b,0x00,0x23,0x01,0xdb,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x47,0x40,0x44,0x12,0x0f,0x08,0x01,0x04,0x03, +0x02,0x01,0x4c,0x06,0x01,0x00,0x01,0x05,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x06,0x01,0x00,0x00,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x00,0x05,0x4f,0x0e,0x0e,0x00,0x00,0x0e,0x13,0x0e,0x13,0x11,0x10,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x0a,0x09,0x1b,0x2b,0x25, +0x03,0x13,0x33,0x07,0x21,0x15,0x21,0x07,0x17,0x21,0x15,0x21,0x17,0x21,0x03,0x13,0x33,0x03,0x13,0xfd,0xae,0xe7,0xe8,0x69,0x6b,0x04,0x2e,0xfb,0x92,0x3f,0x40,0x04,0x6d,0xfb,0xd2,0x6b,0xfe,0x6a,0xe7,0xe8,0x69,0xe9,0xe9,0x23,0x01,0x27,0x01,0x27,0x87,0x50,0x4f,0x51,0x50,0x87,0x01,0x27,0x01,0x27,0xfe,0xda,0xfe,0xd8,0x00,0x00, +0xff,0xff,0xfb,0xf5,0x00,0x41,0x01,0xbd,0x02,0x53,0x00,0x27,0x04,0x1c,0xfb,0xa0,0x00,0x00,0x00,0x27,0x04,0x1c,0xfd,0xad,0x00,0x00,0x00,0x06,0x04,0x1c,0xba,0x00,0x00,0x02,0xfb,0x9b,0x00,0x23,0x02,0x12,0x02,0x71,0x00,0x4c,0x00,0x52,0x00,0xa6,0x40,0x09,0x51,0x4e,0x4b,0x01,0x04,0x02,0x09,0x01,0x4c,0x4b,0xb0,0x0d,0x50,0x58, +0x40,0x34,0x00,0x07,0x01,0x09,0x02,0x07,0x72,0x0f,0x01,0x00,0x01,0x0e,0x00,0x57,0x05,0x03,0x02,0x01,0x0d,0x0b,0x02,0x09,0x02,0x01,0x09,0x6a,0x06,0x04,0x02,0x02,0x0c,0x0a,0x02,0x08,0x0e,0x02,0x08,0x6a,0x0f,0x01,0x00,0x00,0x0e,0x5f,0x12,0x10,0x11,0x03,0x0e,0x00,0x0e,0x4f,0x1b,0x40,0x35,0x00,0x07,0x01,0x09,0x01,0x07,0x09, +0x80,0x0f,0x01,0x00,0x01,0x0e,0x00,0x57,0x05,0x03,0x02,0x01,0x0d,0x0b,0x02,0x09,0x02,0x01,0x09,0x6a,0x06,0x04,0x02,0x02,0x0c,0x0a,0x02,0x08,0x0e,0x02,0x08,0x6a,0x0f,0x01,0x00,0x00,0x0e,0x5f,0x12,0x10,0x11,0x03,0x0e,0x00,0x0e,0x4f,0x59,0x40,0x24,0x4d,0x4d,0x00,0x00,0x4d,0x52,0x4d,0x52,0x50,0x4f,0x00,0x4c,0x00,0x4c,0x4a, +0x48,0x44,0x42,0x3e,0x3c,0x38,0x36,0x32,0x30,0x23,0x12,0x24,0x24,0x24,0x24,0x24,0x21,0x12,0x13,0x09,0x1f,0x2b,0x25,0x03,0x13,0x33,0x07,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23, +0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x23,0x07,0x13,0x21,0x03,0x13,0x33,0x03,0x13,0xfd,0xae,0xe7,0xe8,0x69,0x98,0x1e,0x26,0x31,0x22,0x1c,0x1e,0x15,0x15,0x1e,0x1c,0x22,0x32,0x25,0x25,0x34,0x24,0x1d,0x1f,0x14,0x15,0x1f,0x1d,0x24,0x33,0x25,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32, +0x21,0x1b,0x1e,0x15,0x15,0x1f,0x1e,0x24,0x33,0x26,0x25,0x33,0x24,0x1d,0x1f,0x15,0x15,0x1e,0x1c,0x22,0x31,0x26,0x26,0x31,0x22,0x1c,0x1e,0x15,0x5a,0x16,0xea,0xfe,0x6a,0xe7,0xe8,0x69,0xe9,0xe9,0x23,0x01,0x27,0x01,0x27,0xbf,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a, +0x37,0x28,0x28,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1c,0xfe,0xd8,0x01,0x27,0x01,0x27,0xfe,0xda,0xfe,0xd8,0x00,0x01,0xfd,0xf3,0x00,0x23,0x02,0x12,0x02,0x71,0x00,0x3d,0x00,0xa0,0x40,0x0b,0x3c,0x01,0x07,0x03,0x01,0x4c,0x01,0x01,0x01,0x01,0x4b,0x4b, +0xb0,0x0d,0x50,0x58,0x40,0x37,0x00,0x00,0x02,0x00,0x85,0x00,0x06,0x02,0x08,0x03,0x06,0x72,0x00,0x01,0x08,0x03,0x08,0x01,0x03,0x80,0x0c,0x01,0x0b,0x07,0x0b,0x86,0x04,0x01,0x02,0x0a,0x01,0x08,0x01,0x02,0x08,0x6a,0x05,0x01,0x03,0x07,0x07,0x03,0x59,0x05,0x01,0x03,0x03,0x07,0x62,0x09,0x01,0x07,0x03,0x07,0x52,0x1b,0x40,0x38, +0x00,0x00,0x02,0x00,0x85,0x00,0x06,0x02,0x08,0x02,0x06,0x08,0x80,0x00,0x01,0x08,0x03,0x08,0x01,0x03,0x80,0x0c,0x01,0x0b,0x07,0x0b,0x86,0x04,0x01,0x02,0x0a,0x01,0x08,0x01,0x02,0x08,0x6a,0x05,0x01,0x03,0x07,0x07,0x03,0x59,0x05,0x01,0x03,0x03,0x07,0x62,0x09,0x01,0x07,0x03,0x07,0x52,0x59,0x40,0x16,0x00,0x00,0x00,0x3d,0x00, +0x3d,0x38,0x36,0x32,0x30,0x24,0x23,0x12,0x24,0x24,0x24,0x24,0x21,0x12,0x0d,0x09,0x1f,0x2b,0x25,0x03,0x13,0x33,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x02,0x07, +0x17,0xfe,0xda,0xe7,0xe8,0x69,0xeb,0x0d,0x15,0x1e,0x1c,0x22,0x32,0x25,0x25,0x34,0x24,0x1d,0x1f,0x14,0x15,0x1f,0x1d,0x24,0x33,0x25,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x21,0x1b,0x1e,0x15,0x15,0x1f,0x1e,0x24,0x33,0x26,0x25,0x33,0x24,0x1d,0x1f,0x15,0x17,0x22,0x20,0x29,0x1e,0xb6,0x23,0x01,0x27,0x01, +0x27,0xfe,0xd9,0x15,0x1f,0x1f,0x15,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x38,0x28,0x28,0x3a,0x49,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x17,0x21,0x1f,0x07,0xe6,0x00,0x00,0x00,0x00,0x03,0xfb,0xb4,0x00,0x41,0x01,0xf4,0x02,0x53,0x00,0x0c,0x00,0x19,0x00,0x4d,0x00,0xa4,0x40,0x1f, +0x18,0x02,0x02,0x01,0x07,0x12,0x08,0x02,0x04,0x01,0x19,0x01,0x02,0x02,0x04,0x03,0x4c,0x17,0x16,0x04,0x03,0x04,0x03,0x4a,0x0e,0x0d,0x0c,0x00,0x04,0x00,0x49,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x2c,0x00,0x07,0x03,0x01,0x04,0x07,0x72,0x00,0x02,0x04,0x00,0x01,0x02,0x72,0x05,0x01,0x03,0x09,0x01,0x01,0x04,0x03,0x01,0x69,0x06,0x01, +0x04,0x02,0x00,0x04,0x59,0x06,0x01,0x04,0x04,0x00,0x62,0x08,0x0a,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x2e,0x00,0x07,0x03,0x01,0x03,0x07,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x05,0x01,0x03,0x09,0x01,0x01,0x04,0x03,0x01,0x69,0x06,0x01,0x04,0x02,0x00,0x04,0x59,0x06,0x01,0x04,0x04,0x00,0x62,0x08,0x0a,0x02,0x00, +0x04,0x00,0x52,0x59,0x40,0x1b,0x1b,0x1a,0x49,0x47,0x43,0x41,0x3e,0x3d,0x3b,0x39,0x35,0x33,0x2f,0x2d,0x29,0x27,0x24,0x23,0x21,0x1f,0x1a,0x4d,0x1b,0x4d,0x0b,0x09,0x16,0x2b,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0x05,0x22,0x2e,0x03, +0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0xfd,0x62,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x22,0x11,0x01,0x36,0x02,0xe4,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0xca, +0x01,0xae,0xfc,0x81,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x48,0x3a,0x25,0x31,0x22,0x1b,0x1e,0x15,0x15,0x1d,0x1b,0x21,0x32,0x25,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x21,0x1b,0x1e,0x15,0x15,0x1d,0x1b,0x21,0x31,0x41,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0x5a,0x57,0x98,0x09, +0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0x33,0x1a,0x27,0x27,0x1a,0x37,0x28,0x28,0x3b,0x47,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x37,0x28,0x28,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x00,0x01,0xfb,0x9b,0x00,0x23,0x02,0x12,0x02,0x71,0x00,0x66,0x00,0xb3,0x40,0x0b,0x12,0x01,0x0a,0x04, +0x0f,0x06,0x02,0x03,0x0c,0x02,0x4c,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x37,0x00,0x02,0x04,0x02,0x85,0x00,0x0a,0x04,0x0c,0x03,0x0a,0x72,0x00,0x01,0x00,0x01,0x86,0x08,0x06,0x02,0x04,0x10,0x0e,0x02,0x0c,0x03,0x04,0x0c,0x69,0x09,0x07,0x05,0x03,0x03,0x00,0x00,0x03,0x59,0x09,0x07,0x05,0x03,0x03,0x03,0x00,0x62,0x0f,0x0d,0x0b,0x11, +0x04,0x00,0x03,0x00,0x52,0x1b,0x40,0x38,0x00,0x02,0x04,0x02,0x85,0x00,0x0a,0x04,0x0c,0x04,0x0a,0x0c,0x80,0x00,0x01,0x00,0x01,0x86,0x08,0x06,0x02,0x04,0x10,0x0e,0x02,0x0c,0x03,0x04,0x0c,0x69,0x09,0x07,0x05,0x03,0x03,0x00,0x00,0x03,0x59,0x09,0x07,0x05,0x03,0x03,0x03,0x00,0x62,0x0f,0x0d,0x0b,0x11,0x04,0x00,0x03,0x00,0x52, +0x59,0x40,0x29,0x01,0x00,0x62,0x60,0x5c,0x5a,0x56,0x54,0x50,0x4e,0x4a,0x48,0x44,0x42,0x3f,0x3e,0x3c,0x3a,0x36,0x34,0x30,0x2e,0x2a,0x28,0x24,0x22,0x1e,0x1c,0x18,0x16,0x11,0x10,0x0e,0x0d,0x00,0x66,0x01,0x66,0x12,0x09,0x16,0x2b,0x25,0x22,0x2e,0x03,0x27,0x06,0x06,0x07,0x16,0x16,0x17,0x17,0x23,0x03,0x13,0x33,0x07,0x1e,0x03, +0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0xfc,0xd6,0x24,0x30,0x22,0x1b,0x1b,0x13, +0x09,0x0c,0x02,0x04,0x19,0x15,0xba,0x6a,0xe7,0xe8,0x69,0xa2,0x1a,0x23,0x1c,0x1e,0x15,0x15,0x1e,0x1c,0x22,0x32,0x25,0x26,0x31,0x22,0x1c,0x1e,0x15,0x15,0x1e,0x1c,0x22,0x32,0x25,0x25,0x34,0x24,0x1d,0x1f,0x14,0x15,0x1f,0x1d,0x24,0x33,0x25,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x21,0x1b,0x1e,0x15,0x15, +0x1f,0x1e,0x24,0x33,0x26,0x25,0x33,0x24,0x1d,0x1f,0x15,0x15,0x1e,0x1c,0x22,0x31,0x26,0x26,0x31,0x22,0x1c,0x1e,0x15,0x15,0x1e,0x1c,0x22,0x31,0xe5,0x18,0x24,0x26,0x1c,0x03,0x0b,0x0d,0x03,0x04,0x1f,0x1a,0xeb,0x01,0x27,0x01,0x27,0xcc,0x0c,0x27,0x27,0x1b,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27, +0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x37,0x28,0x28,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x00,0x00,0x01,0xfe,0x2a,0xff,0x92,0x01,0xea,0x03,0x3e,0x00,0x10,0x00,0x23,0x40,0x20,0x0d,0x09,0x05,0x04,0x03,0x02,0x01,0x07, +0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x10,0x00,0x10,0x1e,0x03,0x09,0x17,0x2b,0x17,0x37,0x01,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x01,0x33,0x01,0x28,0x2b,0xfd,0xd7,0x01,0xae,0xfe,0xca,0x11,0x1c,0x07,0x07,0x1c,0x11,0x01,0xcd,0x01,0x1c,0x5f,0xfe,0x9d,0x6e, +0x71,0x01,0x15,0x64,0xd7,0x5a,0x97,0x09,0x0c,0x02,0x02,0x0c,0x09,0xe6,0x02,0xf0,0xfc,0x54,0x00,0x00,0x00,0x01,0xfb,0xf5,0xff,0x92,0x01,0xb3,0x03,0x3e,0x00,0x1d,0x00,0x2a,0x40,0x27,0x1c,0x18,0x14,0x13,0x12,0x11,0x10,0x0d,0x09,0x05,0x04,0x03,0x02,0x01,0x0e,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01, +0x76,0x00,0x00,0x00,0x1d,0x00,0x1d,0x1e,0x03,0x09,0x17,0x2b,0x05,0x37,0x01,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x01,0x33,0x07,0x01,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x01,0xfd,0xf3,0x2b,0xfd,0xd7,0x01,0xae,0xfe,0xca,0x11,0x1c,0x07,0x07,0x1c,0x11,0x01,0xcd,0x01,0x1c,0x5f,0x3d,0x02, +0x3b,0xfe,0x52,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0x20,0xfe,0xf7,0x6e,0x71,0x01,0x15,0x64,0xd7,0x5a,0x97,0x09,0x0c,0x02,0x02,0x0c,0x09,0xe6,0x02,0xf0,0xa3,0xfe,0xe1,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0xf0,0xfd,0x42,0x00,0x01,0xfe,0x11,0x00,0xdc,0x01,0xf4,0x01,0xb8,0x00,0x1e,0x00,0x6e,0x4b,0xb0, +0x11,0x50,0x58,0x40,0x22,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x06,0x00,0x04,0x59,0x00,0x05,0x00,0x06,0x00,0x05,0x06,0x67,0x00,0x04,0x04,0x00,0x61,0x02,0x07,0x02,0x00,0x04,0x00,0x51,0x1b,0x40,0x29,0x00,0x02,0x06,0x00,0x06,0x02,0x00,0x80,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x06,0x00,0x04,0x59, +0x00,0x05,0x00,0x06,0x02,0x05,0x06,0x67,0x00,0x04,0x04,0x00,0x61,0x07,0x01,0x00,0x04,0x00,0x51,0x59,0x40,0x15,0x01,0x00,0x1c,0x1b,0x1a,0x18,0x16,0x14,0x10,0x0e,0x0b,0x0a,0x07,0x05,0x00,0x1e,0x01,0x1e,0x08,0x09,0x16,0x2b,0x27,0x22,0x2e,0x03,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x03,0x33,0x32,0x36, +0x35,0x35,0x21,0x15,0x21,0x06,0x06,0x64,0x29,0x38,0x29,0x24,0x27,0x1b,0x1f,0x27,0x55,0x55,0x46,0x2a,0x39,0x29,0x23,0x27,0x1a,0x20,0x26,0x02,0x12,0xfe,0x2f,0x13,0x46,0xdc,0x1d,0x2b,0x2c,0x1d,0x26,0x20,0x3c,0x3c,0x41,0x50,0x1d,0x2b,0x2c,0x1d,0x28,0x1e,0x05,0x50,0x21,0x25,0x00,0x00,0x00,0x02,0xfd,0xee,0xff,0x4c,0x02,0x30, +0x02,0xe4,0x00,0x44,0x00,0x52,0x00,0xcb,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x0b,0x2e,0x19,0x02,0x0c,0x03,0x42,0x01,0x00,0x04,0x02,0x4c,0x1b,0x40,0x0b,0x2e,0x19,0x02,0x0c,0x03,0x42,0x01,0x02,0x04,0x02,0x4c,0x59,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x38,0x00,0x07,0x00,0x0c,0x01,0x07,0x0c,0x69,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69, +0x00,0x04,0x02,0x0d,0x02,0x00,0x0b,0x04,0x00,0x69,0x0e,0x01,0x0b,0x00,0x06,0x09,0x0b,0x06,0x69,0x00,0x08,0x08,0x05,0x61,0x00,0x05,0x05,0x3e,0x4d,0x00,0x09,0x09,0x0a,0x5f,0x00,0x0a,0x0a,0x3d,0x0a,0x4e,0x1b,0x40,0x3f,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x00,0x07,0x00,0x0c,0x01,0x07,0x0c,0x69,0x00,0x03,0x00,0x01,0x04, +0x03,0x01,0x69,0x00,0x04,0x0d,0x01,0x00,0x0b,0x04,0x00,0x69,0x0e,0x01,0x0b,0x00,0x06,0x09,0x0b,0x06,0x69,0x00,0x08,0x08,0x05,0x61,0x00,0x05,0x05,0x3e,0x4d,0x00,0x09,0x09,0x0a,0x5f,0x00,0x0a,0x0a,0x3d,0x0a,0x4e,0x59,0x40,0x25,0x46,0x45,0x01,0x00,0x4d,0x4b,0x45,0x52,0x46,0x52,0x3e,0x3c,0x3b,0x39,0x34,0x32,0x2c,0x2a,0x25, +0x23,0x1e,0x1c,0x17,0x15,0x11,0x0f,0x0b,0x0a,0x07,0x05,0x00,0x44,0x01,0x44,0x0f,0x09,0x16,0x2b,0x27,0x22,0x2e,0x03,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x36,0x36,0x33,0x32,0x1e,0x03,0x33,0x32,0x36,0x37,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35, +0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x26,0x35,0x35,0x06,0x06,0x05,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x62,0x31,0x45,0x32,0x29,0x2a,0x1a,0x1e,0x28,0x55,0x28,0x46,0x2b,0x2c,0x3c,0x2e,0x2a,0x33,0x24,0x39,0x4c,0x0a,0x90,0x7e,0x72,0x83,0x56,0x4a,0x49,0x57, +0x46,0x40,0x29,0x36,0x09,0x02,0x55,0x50,0x5a,0x64,0x6b,0x5d,0x6e,0x6e,0x55,0x7e,0x45,0x19,0x49,0x01,0xc5,0x26,0x2a,0x2a,0x26,0x26,0x2a,0x2a,0xfa,0x1a,0x27,0x27,0x1a,0x25,0x1c,0x3c,0x3c,0x28,0x3f,0x25,0x1a,0x27,0x27,0x1a,0x3e,0x33,0x0c,0x87,0x9b,0x83,0x72,0xfe,0xf1,0x4e,0x5b,0x58,0x47,0x74,0x4a,0x51,0x20,0x1c,0x46,0x55, +0x5a,0x74,0x68,0xfe,0xac,0x64,0x73,0x4b,0x47,0x83,0x58,0xcf,0x20,0x23,0x80,0x31,0x2b,0x75,0x2c,0x2f,0x30,0x2c,0x74,0x2b,0x31,0x00,0x00,0x00,0x00,0x01,0xfd,0xee,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x3d,0x00,0xa0,0x40,0x0b,0x01,0x01,0x01,0x05,0x01,0x4c,0x3c,0x01,0x09,0x01,0x4b,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x37,0x00,0x0a, +0x06,0x0a,0x85,0x00,0x04,0x06,0x00,0x05,0x04,0x72,0x00,0x09,0x00,0x05,0x00,0x09,0x05,0x80,0x0c,0x01,0x0b,0x01,0x0b,0x86,0x08,0x01,0x06,0x02,0x01,0x00,0x09,0x06,0x00,0x6a,0x07,0x01,0x05,0x01,0x01,0x05,0x59,0x07,0x01,0x05,0x05,0x01,0x62,0x03,0x01,0x01,0x05,0x01,0x52,0x1b,0x40,0x38,0x00,0x0a,0x06,0x0a,0x85,0x00,0x04,0x06, +0x00,0x06,0x04,0x00,0x80,0x00,0x09,0x00,0x05,0x00,0x09,0x05,0x80,0x0c,0x01,0x0b,0x01,0x0b,0x86,0x08,0x01,0x06,0x02,0x01,0x00,0x09,0x06,0x00,0x6a,0x07,0x01,0x05,0x01,0x01,0x05,0x59,0x07,0x01,0x05,0x05,0x01,0x62,0x03,0x01,0x01,0x05,0x01,0x52,0x59,0x40,0x16,0x00,0x00,0x00,0x3d,0x00,0x3d,0x3b,0x3a,0x39,0x37,0x24,0x24,0x24, +0x22,0x13,0x24,0x24,0x24,0x25,0x0d,0x09,0x1f,0x2b,0x37,0x37,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x33,0x03,0x33,0x13,0x03,0xbc,0xb6,0x1e,0x29,0x20,0x22,0x17,0x15, +0x1f,0x1d,0x24,0x32,0x26,0x25,0x34,0x24,0x1e,0x1f,0x15,0x15,0x1e,0x1b,0x21,0x31,0x26,0x3a,0x48,0x55,0x2f,0x14,0x1e,0x1b,0x22,0x32,0x25,0x25,0x33,0x24,0x1d,0x1f,0x15,0x14,0x1f,0x1d,0x24,0x34,0x25,0x26,0x31,0x22,0x1c,0x1e,0x15,0x10,0xee,0x6a,0xe7,0xe8,0x23,0xe5,0x08,0x1e,0x22,0x17,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a, +0x1a,0x27,0x27,0x1a,0x48,0x3a,0x28,0x28,0x37,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x15,0x1f,0x1f,0x15,0x01,0x27,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x01,0xfe,0x57,0x00,0xe6,0x01,0xae,0x01,0xb3,0x00,0x33,0x00,0x83,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x2c,0x00,0x07,0x03,0x01,0x04,0x07,0x72,0x00,0x02,0x04,0x00, +0x01,0x02,0x72,0x05,0x01,0x03,0x09,0x01,0x01,0x04,0x03,0x01,0x69,0x06,0x01,0x04,0x02,0x00,0x04,0x59,0x06,0x01,0x04,0x04,0x00,0x62,0x08,0x0a,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x2e,0x00,0x07,0x03,0x01,0x03,0x07,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x05,0x01,0x03,0x09,0x01,0x01,0x04,0x03,0x01,0x69,0x06,0x01, +0x04,0x02,0x00,0x04,0x59,0x06,0x01,0x04,0x04,0x00,0x62,0x08,0x0a,0x02,0x00,0x04,0x00,0x52,0x59,0x40,0x1b,0x01,0x00,0x2f,0x2d,0x29,0x27,0x24,0x23,0x21,0x1f,0x1b,0x19,0x15,0x13,0x0f,0x0d,0x0a,0x09,0x07,0x05,0x00,0x33,0x01,0x33,0x0b,0x09,0x16,0x2b,0x27,0x22,0x2e,0x03,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e, +0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x5f,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x48,0x3a,0x25,0x31,0x22,0x1b,0x1e,0x15,0x15,0x1d,0x1b,0x21,0x32,0x25,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x21,0x1b,0x1e,0x15, +0x15,0x1d,0x1b,0x21,0x31,0xe6,0x1a,0x27,0x27,0x1a,0x37,0x28,0x28,0x3b,0x47,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x37,0x28,0x28,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x00,0x01,0xfb,0x96,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x61,0x00,0xf7,0x40,0x0b,0x5d,0x01,0x08,0x0a,0x60,0x01,0x02,0x09, +0x00,0x02,0x4c,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x38,0x00,0x10,0x0a,0x10,0x85,0x00,0x08,0x0a,0x00,0x09,0x08,0x72,0x12,0x01,0x11,0x01,0x11,0x86,0x0e,0x0c,0x02,0x0a,0x06,0x04,0x02,0x03,0x00,0x09,0x0a,0x00,0x69,0x0f,0x0d,0x0b,0x03,0x09,0x01,0x01,0x09,0x59,0x0f,0x0d,0x0b,0x03,0x09,0x09,0x01,0x62,0x07,0x05,0x03,0x03,0x01,0x09, +0x01,0x52,0x1b,0x4b,0xb0,0x17,0x50,0x58,0x40,0x39,0x00,0x10,0x0a,0x10,0x85,0x00,0x08,0x0a,0x00,0x0a,0x08,0x00,0x80,0x12,0x01,0x11,0x01,0x11,0x86,0x0e,0x0c,0x02,0x0a,0x06,0x04,0x02,0x03,0x00,0x09,0x0a,0x00,0x69,0x0f,0x0d,0x0b,0x03,0x09,0x01,0x01,0x09,0x59,0x0f,0x0d,0x0b,0x03,0x09,0x09,0x01,0x62,0x07,0x05,0x03,0x03,0x01, +0x09,0x01,0x52,0x1b,0x40,0x40,0x00,0x10,0x0a,0x10,0x85,0x00,0x08,0x0a,0x02,0x0a,0x08,0x02,0x80,0x00,0x00,0x02,0x09,0x02,0x00,0x09,0x80,0x12,0x01,0x11,0x01,0x11,0x86,0x0e,0x0c,0x02,0x0a,0x06,0x04,0x02,0x02,0x00,0x0a,0x02,0x69,0x0f,0x0d,0x0b,0x03,0x09,0x01,0x01,0x09,0x59,0x0f,0x0d,0x0b,0x03,0x09,0x09,0x01,0x62,0x07,0x05, +0x03,0x03,0x01,0x09,0x01,0x52,0x59,0x59,0x40,0x22,0x00,0x00,0x00,0x61,0x00,0x61,0x5f,0x5e,0x59,0x57,0x53,0x51,0x4d,0x4b,0x47,0x45,0x41,0x3f,0x3b,0x39,0x35,0x33,0x13,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x12,0x13,0x09,0x1f,0x2b,0x37,0x13,0x27,0x0e,0x04,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22, +0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x27,0x33,0x13,0x03,0xbc,0xee,0x12,0x14,0x1e,0x1b,0x22,0x32,0x25,0x25,0x32,0x22,0x1c, +0x1e,0x15,0x15,0x1e,0x1c,0x22,0x31,0x26,0x25,0x32,0x22,0x1c,0x1e,0x15,0x15,0x1f,0x1d,0x24,0x32,0x26,0x25,0x34,0x24,0x1e,0x1f,0x15,0x15,0x1e,0x1b,0x21,0x31,0x26,0x3a,0x48,0x55,0x2f,0x14,0x1e,0x1b,0x22,0x32,0x25,0x26,0x32,0x24,0x1d,0x1f,0x15,0x14,0x1f,0x1d,0x24,0x34,0x25,0x26,0x31,0x22,0x1c,0x1e,0x15,0x15,0x1e,0x1c,0x22, +0x32,0x25,0x26,0x31,0x22,0x1c,0x1e,0x15,0x16,0x1e,0x1d,0x24,0x1c,0xa7,0x6a,0xe7,0xe8,0x23,0x01,0x26,0x14,0x01,0x18,0x24,0x23,0x18,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x48,0x3a,0x28,0x28,0x37,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a, +0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x25,0x25,0x0a,0xd3,0xfe,0xd9,0xfe,0xd9,0x00,0x02,0xfe,0x39,0x00,0xaa,0x01,0x9f,0x02,0xf8,0x00,0x0e,0x00,0x12,0x00,0x3d,0x40,0x3a,0x0a,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x06,0x03,0x02,0x02,0x04,0x01,0x02,0x67,0x00, +0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x0f,0x0f,0x00,0x00,0x0f,0x12,0x0f,0x12,0x11,0x10,0x00,0x0e,0x00,0x0e,0x11,0x11,0x11,0x08,0x09,0x19,0x2b,0x01,0x13,0x33,0x13,0x21,0x15,0x21,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x05,0x35,0x21,0x15,0xfe,0x39,0xc8,0x54,0x9b,0x01,0xaf,0xfe, +0x1b,0x77,0x0a,0x0b,0x02,0x02,0x0d,0x0b,0x7c,0x01,0x24,0x01,0xe5,0x01,0x9a,0x01,0x5e,0xfe,0xf2,0x50,0xe1,0x14,0x1e,0x07,0x07,0x1e,0x14,0xe1,0xf0,0x50,0x50,0x00,0x00,0x04,0xfd,0xf8,0x00,0xaa,0x02,0x08,0x01,0xea,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x46,0x40,0x43,0x02,0x01,0x00,0x09,0x03,0x08,0x03,0x01,0x04,0x00, +0x01,0x67,0x06,0x01,0x04,0x05,0x05,0x04,0x57,0x06,0x01,0x04,0x04,0x05,0x5f,0x0b,0x07,0x0a,0x03,0x05,0x04,0x05,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x09,0x17,0x2b,0x01,0x35,0x21,0x15,0x33,0x35, +0x21,0x15,0x05,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0xfd,0xf8,0x01,0xcc,0x78,0x01,0xcc,0xfb,0xf0,0x01,0xcc,0x78,0x01,0xcc,0x01,0x9a,0x50,0x50,0x50,0x50,0xf0,0x50,0x50,0x50,0x50,0x00,0x00,0x06,0xfb,0xa0,0x00,0xaa,0x02,0x08,0x01,0xea,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x5d,0x40,0x5a,0x04,0x02, +0x02,0x00,0x0e,0x05,0x0d,0x03,0x0c,0x05,0x01,0x06,0x00,0x01,0x67,0x0a,0x08,0x02,0x06,0x07,0x07,0x06,0x57,0x0a,0x08,0x02,0x06,0x06,0x07,0x5f,0x11,0x0b,0x10,0x09,0x0f,0x05,0x07,0x06,0x07,0x4f,0x14,0x14,0x10,0x10,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x14,0x17,0x14,0x17,0x16,0x15,0x10,0x13,0x10,0x13,0x12,0x11,0x0c,0x0f, +0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x12,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x3c,0x01,0xcc,0xf9,0x98,0x01,0xcc,0x8c,0x01,0xcc,0xfb,0xdc,0x01,0xcc,0x8c, +0x01,0xcc,0x78,0x01,0xcc,0x01,0x9a,0x50,0x50,0x50,0x50,0x50,0x50,0xf0,0x50,0x50,0x50,0x50,0x50,0x50,0x00,0x02,0x00,0x8c,0xff,0xf6,0x01,0xcc,0x02,0xda,0x00,0x0e,0x00,0x1a,0x00,0x24,0x40,0x21,0x0f,0x03,0x00,0x03,0x02,0x49,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x59,0x00,0x01,0x01,0x02,0x61,0x00,0x02,0x01,0x02, +0x51,0x2e,0x24,0x11,0x03,0x06,0x19,0x2b,0x17,0x11,0x33,0x11,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x07,0x27,0x37,0x36,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x8c,0x5a,0x01,0x06,0x36,0x29,0x3a,0x46,0x4f,0x46,0x51,0x35,0x29,0x2e,0x25,0x21,0x21,0x25,0x0a,0x02,0xe4,0xfe,0xc0,0x27,0x2f,0x54,0x47,0x55,0x43, +0x6c,0x1a,0x3a,0x14,0x10,0x40,0x2b,0x55,0x23,0x26,0x26,0x23,0x00,0x02,0x00,0x41,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x1b,0x00,0x1f,0x00,0x40,0x40,0x3d,0x0e,0x01,0x00,0x01,0x1f,0x1e,0x1d,0x1c,0x1b,0x18,0x17,0x14,0x13,0x12,0x11,0x10,0x0f,0x0d,0x0a,0x09,0x06,0x05,0x04,0x03,0x02,0x01,0x16,0x02,0x00,0x00,0x01,0x03,0x02,0x03, +0x4c,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x00,0x85,0x00,0x02,0x03,0x02,0x85,0x00,0x03,0x03,0x76,0x13,0x19,0x13,0x17,0x04,0x06,0x1a,0x2b,0x37,0x35,0x37,0x35,0x07,0x35,0x37,0x35,0x33,0x15,0x37,0x35,0x33,0x15,0x37,0x15,0x07,0x15,0x37,0x15,0x07,0x15,0x23,0x35,0x07,0x15,0x23,0x35,0x13,0x15,0x37,0x35,0x41,0x69,0x69,0x69, +0x3c,0x8c,0x3c,0x69,0x69,0x69,0x69,0x3c,0x8c,0x3c,0x3c,0x8c,0x50,0x41,0x37,0xc1,0x37,0x41,0x37,0xb6,0x96,0x49,0xa7,0x87,0x37,0x41,0x37,0xc1,0x37,0x41,0x37,0xb6,0x96,0x49,0xa7,0x87,0x01,0x22,0xc1,0x49,0xc1,0x00,0x00,0x00,0x00,0x01,0x00,0xa5,0x01,0x9a,0x01,0x77,0x02,0xd1,0x00,0x03,0x00,0x19,0x40,0x16,0x02,0x01,0x01,0x00, +0x01,0x86,0x00,0x00,0x00,0x28,0x00,0x4e,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x08,0x17,0x2b,0x13,0x13,0x33,0x03,0xa5,0x50,0x82,0x82,0x01,0x9a,0x01,0x37,0xfe,0xc9,0x00,0x00,0x00,0xff,0xff,0x00,0xd2,0xff,0x60,0x01,0x75,0x00,0x92,0x02,0x06,0x03,0x2a,0x00,0x00,0x00,0x01,0x00,0xa5,0x01,0xd1,0x01,0x77,0x03,0x08,0x00,0x03, +0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x13,0x13,0x33,0x03,0xa5,0x50,0x82,0x82,0x01,0xd1,0x01,0x37,0xfe,0xc9,0x00,0x00,0x02,0x00,0x37,0x01,0x99,0x02,0x1c,0x02,0xd0,0x00,0x03,0x00,0x07,0x00,0x2a, +0xb1,0x06,0x64,0x44,0x40,0x1f,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x03,0x04,0x03,0x01,0x01,0x76,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x13,0x33,0x03,0x21,0x13,0x33,0x03,0x01,0x4a,0x50,0x82,0x82,0xfe,0x9d,0x50,0x82,0x82,0x01,0x99,0x01,0x37, +0xfe,0xc9,0x01,0x37,0xfe,0xc9,0x00,0x00,0xff,0xff,0x00,0x8c,0x02,0x9e,0x01,0xcc,0x02,0xe9,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0xa5,0x01,0x9a,0x01,0x77,0x02,0xd1,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03, +0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x13,0x13,0x33,0x03,0xa5,0x50,0x82,0x82,0x01,0x9a,0x01,0x37,0xfe,0xc9,0x00,0x00,0x02,0xfe,0x25,0x02,0x89,0xff,0x83,0x03,0x09,0x00,0x0b,0x00,0x17,0x00,0x33,0xb1,0x06,0x64,0x44,0x40,0x28,0x03,0x01,0x01,0x00,0x00,0x01,0x59,0x03,0x01,0x01,0x01,0x00,0x61,0x05,0x02,0x04,0x03,0x00, +0x01,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xbd,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d, +0x1d,0x23,0x23,0x02,0x89,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x00,0x00,0x01,0xfe,0x8d,0x02,0x89,0xff,0x1b,0x03,0x09,0x00,0x0b,0x00,0x27,0xb1,0x06,0x64,0x44,0x40,0x1c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07, +0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xfe,0xd4,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x02,0x89,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x01,0xfe,0x4a,0x02,0x85,0xff,0x1c,0x03,0x11,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14, +0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x27,0x33,0x17,0xfe,0xbd,0x73,0x64,0x6e,0x02,0x85,0x8c,0x8c,0x00,0x00,0x00,0x01,0xfe,0x90,0x02,0x85,0xff,0x5b,0x03,0x11,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00, +0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x37,0x33,0x07,0xfe,0x90,0x6a,0x61,0x6f,0x02,0x85,0x8c,0x8c,0x00,0x00,0x00,0x02,0xfe,0x3b,0x02,0x85,0xff,0xb8,0x03,0x11,0x00,0x03,0x00,0x07,0x00,0x32,0xb1,0x06,0x64,0x44,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00, +0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0xfe,0xee,0x6e,0x5c,0x73,0xfe,0xf6,0x6e,0x5c,0x73,0x02,0x85,0x8c,0x8c,0x8c,0x8c,0x00,0x00, +0x00,0x01,0xff,0x60,0x02,0x26,0xff,0xc3,0x02,0xda,0x00,0x03,0x00,0x19,0x40,0x16,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x01,0x4e,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x03,0x37,0x33,0x07,0xa0,0x0f,0x54,0x18,0x02,0x26,0xb4,0xb4,0x00,0x00,0x01,0xfe,0x1f,0x02,0x85,0xff,0x89,0x03,0x11,0x00,0x06, +0x00,0x27,0xb1,0x06,0x64,0x44,0x40,0x1c,0x05,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x03,0x02,0x02,0x01,0x01,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x11,0x11,0x04,0x09,0x18,0x2b,0xb1,0x06,0x00,0x44,0x01,0x37,0x33,0x17,0x23,0x27,0x07,0xfe,0x1f,0x8b,0x53,0x8c,0x63,0x52,0x50,0x02,0x85,0x8c,0x8c,0x4e,0x4e,0x00,0x00, +0x00,0x01,0xfe,0x1f,0x02,0x85,0xff,0x89,0x03,0x11,0x00,0x06,0x00,0x27,0xb1,0x06,0x64,0x44,0x40,0x1c,0x03,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x12,0x11,0x04,0x09,0x18,0x2b,0xb1,0x06,0x00,0x44,0x01,0x27,0x33,0x17,0x37,0x33,0x07,0xfe,0xab,0x8c,0x63, +0x52,0x50,0x65,0x8b,0x02,0x85,0x8c,0x4e,0x4e,0x8c,0x00,0x00,0x00,0x01,0xfe,0x34,0x02,0x80,0xff,0x74,0x03,0x11,0x00,0x0d,0x00,0x31,0xb1,0x06,0x64,0x44,0x40,0x26,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00, +0x0d,0x01,0x0d,0x05,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xfe,0xd4,0x48,0x58,0x47,0x30,0x28,0x29,0x31,0x47,0x58,0x02,0x80,0x50,0x41,0x27,0x30,0x30,0x27,0x41,0x50,0x00,0x00,0x00,0x02,0xfe,0x5c,0x02,0x60,0xff,0x4c,0x03,0x44,0x00,0x0b,0x00,0x17,0x00,0x39, +0xb1,0x06,0x64,0x44,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x01,0x22,0x26,0x35,0x34,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xfe,0xd4,0x36,0x42,0x42,0x36,0x36,0x42,0x42,0x36,0x1b,0x21,0x21,0x1b,0x1b,0x21,0x21,0x02,0x60,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x33,0x3f,0x35,0x21,0x1c,0x1c,0x22,0x22,0x1c,0x1c,0x21,0x00,0x00,0x00,0x00,0x01,0xfe,0x34,0x02,0x8a,0xff,0x74, +0x03,0x0c,0x00,0x19,0x00,0x6d,0xb1,0x06,0x64,0x44,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x1b,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x02,0x06,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x29,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x00, +0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x06,0x01,0x00,0x04,0x00,0x52,0x59,0x40,0x13,0x01,0x00,0x16,0x15,0x13,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x07,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x03,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33, +0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0xe6,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x32,0x28,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x31,0x02,0x8a,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x00,0x00,0x01,0xfe,0x34,0x02,0x9e,0xff,0x74,0x02,0xe9,0x00,0x03,0x00,0x26,0xb1,0x06, +0x64,0x44,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x35,0x21,0x15,0xfe,0x34,0x01,0x40,0x02,0x9e,0x4b,0x4b,0x00,0x01,0xfe,0x7a,0x02,0x85,0xff,0x38,0x03,0x39,0x00,0x0e,0x00,0x4e,0xb1,0x06, +0x64,0x44,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x17,0x03,0x01,0x02,0x00,0x00,0x02,0x71,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x16,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0b,0x00,0x00,0x00,0x0e, +0x00,0x0e,0x21,0x24,0x04,0x09,0x18,0x2b,0xb1,0x06,0x00,0x44,0x01,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x07,0x07,0xfe,0xaa,0x32,0x0e,0x20,0x50,0x69,0x26,0x2f,0x11,0x28,0x02,0x85,0x3f,0x13,0x0d,0x14,0x41,0x27,0x23,0x20,0x16,0x34,0x00,0x00,0x00,0x02,0xfd,0xf0,0x02,0x85,0xff,0x6d,0x03,0x11,0x00,0x03, +0x00,0x07,0x00,0x25,0xb1,0x06,0x64,0x44,0x40,0x1a,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x11,0x11,0x11,0x10,0x04,0x09,0x1a,0x2b,0xb1,0x06,0x00,0x44,0x01,0x23,0x27,0x33,0x05,0x23,0x27,0x33,0xfe,0xba,0x57,0x73,0x5c,0x01,0x21,0x57,0x73,0x5c,0x02,0x85,0x8c,0x8c,0x8c, +0x00,0x01,0xfe,0x7a,0x02,0x85,0xff,0x47,0x03,0x70,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x02,0x01,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x03,0x07,0x23,0x37,0xb9,0x50,0x7d,0x82,0x03,0x70,0xeb,0xeb,0x00,0x00,0x00,0x00,0x01,0xff,0x18, +0x01,0xe5,0xff,0xa0,0x02,0x94,0x00,0x0a,0x00,0x4e,0xb1,0x06,0x64,0x44,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x00,0x01,0x70,0x00,0x00,0x02,0x02,0x00,0x59,0x00,0x00,0x00,0x02,0x62,0x03,0x01,0x02,0x00,0x02,0x52,0x1b,0x40,0x16,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x59,0x00,0x00,0x00,0x02,0x62,0x03, +0x01,0x02,0x00,0x02,0x52,0x59,0x40,0x0b,0x00,0x00,0x00,0x0a,0x00,0x09,0x12,0x21,0x04,0x09,0x18,0x2b,0xb1,0x06,0x00,0x44,0x03,0x35,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0xe8,0x1a,0x23,0x4b,0x3a,0x2f,0x01,0xe5,0x41,0x23,0x4b,0x50,0x2b,0x34,0x00,0x00,0x00,0x00,0x01,0xfe,0x8d,0xff,0x2b,0xff,0x1b,0xff,0xab,0x00,0x0b, +0x00,0x27,0xb1,0x06,0x64,0x44,0x40,0x1c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07,0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xfe,0xd4,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0xd5,0x22, +0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x02,0xfe,0x5c,0xff,0x06,0xff,0x4c,0xff,0xce,0x00,0x0b,0x00,0x17,0x00,0x39,0xb1,0x06,0x64,0x44,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c, +0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xfe,0xd4,0x36,0x42,0x42,0x36,0x36,0x42,0x42,0x37,0x1c,0x21,0x20,0x1d,0x1a,0x21,0x21,0xfa,0x37,0x2d,0x2d,0x37,0x37, +0x2d,0x2d,0x37,0x33,0x1b,0x16,0x1a,0x18,0x1b,0x17,0x16,0x1b,0x00,0x01,0xfe,0x66,0xff,0x10,0xff,0x2e,0xff,0xa1,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x05,0x37,0x33,0x07,0xfe,0x66,0x5f, +0x69,0x69,0xf0,0x91,0x91,0x00,0x00,0x00,0x00,0x01,0xfe,0x75,0xff,0x35,0xff,0x42,0x00,0x1a,0x00,0x12,0x00,0x36,0xb1,0x06,0x64,0x44,0x40,0x2b,0x0b,0x01,0x01,0x02,0x01,0x4c,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x00,0x03,0x03,0x00,0x59,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x12,0x00, +0x11,0x11,0x14,0x21,0x05,0x09,0x19,0x2b,0xb1,0x06,0x00,0x44,0x05,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x33,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xfe,0x75,0x46,0x16,0x1b,0x37,0x32,0x23,0x39,0x15,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x5f,0x3d,0x03,0x14,0x24,0x1a,0x22,0x31,0x00,0x00,0x01,0xfe,0x61, +0xff,0x35,0xff,0x29,0x00,0x0a,0x00,0x10,0x00,0x2e,0xb1,0x06,0x64,0x44,0x40,0x23,0x00,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x60,0x03,0x01,0x00,0x02,0x00,0x50,0x01,0x00,0x0f,0x0d,0x07,0x06,0x00,0x10,0x01,0x10,0x04,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x05,0x22,0x26,0x35,0x34,0x36,0x37,0x33, +0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0xfe,0xdb,0x37,0x43,0x26,0x2f,0x4b,0x0b,0x22,0x1e,0x1e,0x19,0x3c,0xcb,0x35,0x28,0x1d,0x3a,0x21,0x09,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x00,0x00,0x01,0xfd,0x8a,0x01,0x22,0x00,0x1e,0x01,0x68,0x00,0x03,0x00,0x26,0xb1,0x06,0x64,0x44,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00, +0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x35,0x21,0x15,0xfd,0x8a,0x02,0x94,0x01,0x22,0x46,0x46,0x00,0x01,0xfd,0xcb,0xff,0xe2,0xff,0xdd,0x02,0x4e,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x05,0x01,0x33,0x01,0xfd,0xcb,0x01,0xb7,0x5b,0xfe,0x48,0x1e,0x02,0x6c,0xfd,0x94,0x00,0x00,0x00,0x00,0x01,0xfe,0x16,0xff,0x92,0xff,0x92,0x02,0x94,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x05,0x01,0x33,0x01,0xfe,0x16,0x01,0x3d,0x3f,0xfe,0xc3,0x6e,0x03,0x02,0xfc,0xfe,0x00,0x00,0x00,0xff,0xff,0x00,0x7d,0x02,0x89,0x01,0xdb,0x03,0x09,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xe5,0x02,0x89,0x01,0x73, +0x03,0x09,0x00,0x07,0x06,0x69,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa2,0x02,0x85,0x01,0x74,0x03,0x11,0x00,0x07,0x06,0x6a,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xe8,0x02,0x85,0x01,0xb3,0x03,0x11,0x00,0x07,0x06,0x6b,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0x02,0x85,0x02,0x10,0x03,0x11,0x00,0x07, +0x06,0x6c,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x77,0x02,0x85,0x01,0xe1,0x03,0x11,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x77,0x02,0x85,0x01,0xe1,0x03,0x11,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x02,0x80,0x01,0xcc,0x03,0x11,0x00,0x07,0x06,0x70,0x02,0x58, +0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xb4,0x02,0x60,0x01,0xa4,0x03,0x44,0x00,0x07,0x06,0x71,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x02,0x8a,0x01,0xcc,0x03,0x0c,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x02,0x9e,0x01,0xcc,0x02,0xe9,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0xcd,0xff,0x35,0x01,0x9a,0x00,0x1a,0x00,0x07,0x06,0x7b,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xb9,0xff,0x35,0x01,0x81,0x00,0x0a,0x00,0x07,0x06,0x7c,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0x66,0xff,0x10,0xff,0x2e,0xff,0xa1,0x02,0x06,0x06,0x7a,0x00,0x00,0x00,0x02,0xfe,0x25,0x03,0x31,0xff,0x83, +0x03,0xb1,0x00,0x0b,0x00,0x17,0x00,0x2b,0x40,0x28,0x03,0x01,0x01,0x00,0x00,0x01,0x59,0x03,0x01,0x01,0x01,0x00,0x61,0x05,0x02,0x04,0x03,0x00,0x01,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23, +0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xbd,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x03,0x31,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x00,0x00,0x01,0xfe,0x8d,0x03,0x30,0xff,0x1b,0x03,0xb0,0x00,0x0b,0x00,0x1f,0x40,0x1c, +0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07,0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xfe,0xd4,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x03,0x30,0x23,0x1d,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x00,0x01,0xfe,0x4a, +0x03,0x2a,0xff,0x1c,0x03,0xb6,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x01,0x27,0x33,0x17,0xfe,0xbd,0x73,0x64,0x6e,0x03,0x2a,0x8c,0x8c,0x00,0x00,0x00,0x01,0xfe,0x90,0x03,0x2a,0xff,0x5b,0x03,0xb6,0x00,0x03,0x00,0x17,0x40,0x14, +0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x01,0x37,0x33,0x07,0xfe,0x90,0x6a,0x61,0x6f,0x03,0x2a,0x8c,0x8c,0x00,0x00,0x00,0x02,0xfe,0x3b,0x03,0x2a,0xff,0xb8,0x03,0xb6,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00, +0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x01,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0xfe,0xee,0x6e,0x5c,0x73,0xfe,0xf6,0x6e,0x5c,0x73,0x03,0x2a,0x8c,0x8c,0x8c,0x8c,0x00,0x00,0x00,0x01,0xfe,0x1f,0x03,0x2a,0xff,0x89, +0x03,0xb6,0x00,0x06,0x00,0x1f,0x40,0x1c,0x05,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x03,0x02,0x02,0x01,0x01,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x11,0x11,0x04,0x09,0x18,0x2b,0x01,0x37,0x33,0x17,0x23,0x27,0x07,0xfe,0x1f,0x8b,0x53,0x8c,0x63,0x52,0x50,0x03,0x2a,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x00,0x01,0xfe,0x1f, +0x03,0x2a,0xff,0x89,0x03,0xb6,0x00,0x06,0x00,0x1f,0x40,0x1c,0x03,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x12,0x11,0x04,0x09,0x18,0x2b,0x01,0x27,0x33,0x17,0x37,0x33,0x07,0xfe,0xab,0x8c,0x63,0x52,0x50,0x65,0x8b,0x03,0x2a,0x8c,0x4e,0x4e,0x8c,0x00,0x00, +0x00,0x01,0xfe,0x34,0x03,0x25,0xff,0x74,0x03,0xb6,0x00,0x0d,0x00,0x29,0x40,0x26,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00,0x0d,0x01,0x0d,0x05,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32, +0x36,0x35,0x33,0x14,0x06,0xfe,0xd4,0x48,0x58,0x47,0x30,0x28,0x29,0x31,0x47,0x58,0x03,0x25,0x50,0x41,0x27,0x30,0x30,0x27,0x41,0x50,0x00,0x00,0x00,0x02,0xfe,0x5c,0x02,0xfe,0xff,0x4c,0x03,0xe2,0x00,0x0b,0x00,0x17,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02, +0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xfe,0xd4,0x36,0x42,0x42,0x36,0x36,0x42,0x42,0x36,0x1b, +0x21,0x21,0x1b,0x1b,0x21,0x21,0x02,0xfe,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x33,0x3f,0x35,0x21,0x1c,0x1c,0x22,0x22,0x1c,0x1c,0x21,0x00,0x00,0x00,0x00,0x01,0xfe,0x34,0x03,0x2f,0xff,0x74,0x03,0xb1,0x00,0x19,0x00,0x65,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x1b,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x00,0x00,0x04,0x59, +0x00,0x04,0x04,0x00,0x62,0x02,0x06,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x29,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x06,0x01,0x00,0x04,0x00,0x52,0x59,0x40,0x13,0x01,0x00,0x16,0x15,0x13, +0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x07,0x09,0x16,0x2b,0x03,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0xe6,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x32,0x28,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x31,0x03,0x2f,0x15,0x1c,0x15,0x23,0x1e, +0x1e,0x2d,0x32,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x00,0x00,0x01,0xfe,0x34,0x03,0x48,0xff,0x74,0x03,0x93,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x01,0x35,0x21,0x15,0xfe,0x34,0x01,0x40, +0x03,0x48,0x4b,0x4b,0x00,0x01,0xfe,0x7a,0x03,0x20,0xff,0x33,0x03,0xd4,0x00,0x0e,0x00,0x46,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x17,0x03,0x01,0x02,0x00,0x00,0x02,0x71,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x16,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00, +0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0b,0x00,0x00,0x00,0x0e,0x00,0x0e,0x21,0x24,0x04,0x09,0x18,0x2b,0x01,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x07,0x07,0xfe,0xaa,0x2d,0x0e,0x20,0x4b,0x50,0x2f,0x3a,0x11,0x23,0x03,0x20,0x3f,0x14,0x0c,0x14,0x41,0x29,0x22,0x1c,0x19,0x34,0x00,0x00, +0x00,0x02,0xfd,0xf0,0x03,0x2a,0xff,0x6d,0x03,0xb6,0x00,0x03,0x00,0x07,0x00,0x1d,0x40,0x1a,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x11,0x11,0x11,0x10,0x04,0x09,0x1a,0x2b,0x01,0x23,0x27,0x33,0x05,0x23,0x27,0x33,0xfe,0xba,0x57,0x73,0x5c,0x01,0x21,0x57,0x73,0x5c,0x03, +0x2a,0x8c,0x8c,0x8c,0x00,0x01,0xfe,0x34,0x03,0x25,0xff,0x74,0x03,0xb6,0x00,0x0d,0x00,0x26,0x40,0x23,0x04,0x03,0x02,0x01,0x02,0x01,0x86,0x00,0x00,0x02,0x02,0x00,0x59,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x00,0x02,0x51,0x00,0x00,0x00,0x0d,0x00,0x0d,0x22,0x12,0x22,0x05,0x06,0x19,0x2b,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x23, +0x34,0x26,0x23,0x22,0x06,0x15,0xfe,0x34,0x58,0x48,0x48,0x58,0x47,0x31,0x29,0x28,0x30,0x03,0x25,0x41,0x50,0x50,0x41,0x27,0x30,0x30,0x27,0x00,0x00,0x01,0xfe,0x7a,0x03,0x2a,0xff,0x38,0x03,0xfc,0x00,0x03,0x00,0x1f,0x40,0x1c,0x02,0x01,0x01,0x00,0x00,0x01,0x57,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00, +0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x03,0x07,0x23,0x37,0xc8,0x41,0x7d,0x73,0x03,0xfc,0xd2,0xd2,0x00,0x00,0x00,0x00,0x01,0xff,0x1b,0x02,0x99,0xff,0xa6,0x03,0x48,0x00,0x0b,0x00,0x3c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x12,0x00,0x01,0x00,0x00,0x01,0x70,0x03,0x01,0x02,0x02,0x00,0x61,0x00,0x00,0x00,0x38,0x02,0x4e,0x1b, +0x40,0x11,0x00,0x01,0x00,0x01,0x85,0x03,0x01,0x02,0x02,0x00,0x61,0x00,0x00,0x00,0x38,0x02,0x4e,0x59,0x40,0x0b,0x00,0x00,0x00,0x0b,0x00,0x0a,0x13,0x21,0x04,0x09,0x18,0x2b,0x03,0x35,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0xe5,0x1d,0x10,0x13,0x4b,0x39,0x30,0x02,0x99,0x41,0x13,0x10,0x4b,0x50,0x2b,0x34,0x00,0x00, +0x00,0x01,0xfe,0x8d,0xff,0x2b,0xff,0x1b,0xff,0xab,0x00,0x0b,0x00,0x1f,0x40,0x1c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07,0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xfe,0xd4,0x21,0x26,0x26,0x21,0x21, +0x26,0x26,0xd5,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x02,0xfe,0x25,0xff,0x2b,0xff,0x83,0xff,0xab,0x00,0x0b,0x00,0x17,0x00,0x2b,0x40,0x28,0x03,0x01,0x01,0x00,0x00,0x01,0x59,0x03,0x01,0x01,0x01,0x00,0x61,0x05,0x02,0x04,0x03,0x00,0x01,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00, +0x0b,0x01,0x0b,0x06,0x06,0x16,0x2b,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xbd,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xd5,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22, +0x00,0x01,0xfe,0x66,0xff,0x10,0xff,0x2e,0xff,0xa1,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x05,0x37,0x33,0x07,0xfe,0x66,0x5f,0x69,0x69,0xf0,0x91,0x91,0x00,0x00,0x00,0x00,0x01,0xfe,0x75,0xff,0x35,0xff,0x42,0x00,0x1a,0x00,0x12, +0x00,0x4e,0xb5,0x0b,0x01,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x14,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x19,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x00,0x03,0x03,0x00,0x59,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f, +0x59,0x40,0x0c,0x00,0x00,0x00,0x12,0x00,0x11,0x11,0x14,0x21,0x05,0x09,0x19,0x2b,0x05,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x33,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xfe,0x75,0x46,0x16,0x1b,0x37,0x32,0x23,0x39,0x15,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x5f,0x3d,0x03,0x14,0x24,0x1a,0x22,0x31,0x00, +0x00,0x01,0xfe,0x61,0xff,0x35,0xff,0x29,0x00,0x0a,0x00,0x10,0x00,0x42,0x4b,0xb0,0x15,0x50,0x58,0x40,0x11,0x00,0x01,0x02,0x01,0x85,0x00,0x02,0x02,0x00,0x60,0x03,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x16,0x00,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x60,0x03,0x01,0x00,0x02,0x00,0x50,0x59, +0x40,0x0d,0x01,0x00,0x0f,0x0d,0x07,0x06,0x00,0x10,0x01,0x10,0x04,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x37,0x33,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0xfe,0xdb,0x37,0x43,0x26,0x2f,0x4b,0x0b,0x22,0x1e,0x1e,0x19,0x3c,0xcb,0x35,0x28,0x1d,0x3a,0x21,0x09,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x00,0x00,0x01,0xfe,0x34, +0xff,0x10,0xff,0x74,0xff,0xa1,0x00,0x0d,0x00,0x29,0x40,0x26,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00,0x0d,0x01,0x0d,0x05,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14, +0x06,0xfe,0xd4,0x48,0x58,0x47,0x30,0x28,0x29,0x31,0x47,0x58,0xf0,0x50,0x41,0x27,0x30,0x30,0x27,0x41,0x50,0x00,0x00,0x00,0x00,0x01,0xfe,0x34,0xff,0x3d,0xff,0x74,0xff,0x88,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11, +0x03,0x06,0x17,0x2b,0x05,0x35,0x21,0x15,0xfe,0x34,0x01,0x40,0xc3,0x4b,0x4b,0x00,0xff,0xff,0x00,0x7d,0x03,0x31,0x01,0xdb,0x03,0xb1,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xe5,0x03,0x30,0x01,0x73,0x03,0xb0,0x00,0x07,0x06,0x8f,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa2,0x03,0x2a,0x01,0x74, +0x03,0xb6,0x00,0x07,0x06,0x90,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xe8,0x03,0x2a,0x01,0xb3,0x03,0xb6,0x00,0x07,0x06,0x91,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0x03,0x2a,0x02,0x10,0x03,0xb6,0x00,0x07,0x06,0x92,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x77,0x03,0x2a,0x01,0xe1,0x03,0xb6,0x00,0x07, +0x06,0x93,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x77,0x03,0x2a,0x01,0xe1,0x03,0xb6,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x03,0x25,0x01,0xcc,0x03,0xb6,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xb4,0x02,0xfe,0x01,0xa4,0x03,0xe2,0x00,0x07,0x06,0x96,0x02,0x58, +0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x03,0x2f,0x01,0xcc,0x03,0xb1,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x03,0x48,0x01,0xcc,0x03,0x93,0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0xd2,0x02,0x85,0x01,0xa0,0x03,0x11,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14, +0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x08,0x17,0x2b,0xb1,0x06,0x00,0x44,0x13,0x37,0x33,0x07,0xd2,0x6a,0x64,0x6f,0x02,0x85,0x8c,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0xe1,0x02,0x3a,0x01,0x77,0x02,0xda,0x00,0x03,0x00,0x19,0x40,0x16,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00, +0x00,0x38,0x01,0x4e,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x13,0x37,0x33,0x07,0xe1,0x38,0x5e,0x40,0x02,0x3a,0xa0,0xa0,0x00,0x00,0x03,0x00,0x7d,0x02,0x89,0x01,0xdb,0x03,0x84,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x77,0xb1,0x06,0x64,0x44,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x24,0x00,0x00,0x03,0x03,0x00,0x70,0x06, +0x01,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x05,0x01,0x03,0x01,0x02,0x03,0x59,0x05,0x01,0x03,0x03,0x02,0x62,0x08,0x04,0x07,0x03,0x02,0x03,0x02,0x52,0x1b,0x40,0x23,0x00,0x00,0x03,0x00,0x85,0x06,0x01,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x05,0x01,0x03,0x01,0x02,0x03,0x59,0x05,0x01,0x03,0x03,0x02,0x62,0x08,0x04,0x07,0x03,0x02, +0x03,0x02,0x52,0x59,0x40,0x1a,0x11,0x10,0x05,0x04,0x00,0x00,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0b,0x09,0x04,0x0f,0x05,0x0f,0x00,0x03,0x00,0x03,0x11,0x09,0x08,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x37,0x33,0x07,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14, +0x06,0x01,0x03,0x4e,0x50,0x58,0x52,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x03,0x01,0x83,0x83,0x78,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x01,0xfe,0x34,0x02,0x80,0xff,0x74,0x03,0x11,0x00,0x0d,0x00,0x29,0x40,0x26,0x03,0x01,0x01,0x02, +0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00,0x0d,0x01,0x0d,0x05,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xfe,0xd4,0x48,0x58,0x47,0x30,0x28,0x29,0x31,0x47,0x58,0x02,0x80,0x50,0x41, +0x27,0x30,0x30,0x27,0x41,0x50,0x00,0x00,0x00,0x02,0xfe,0x2a,0x02,0x80,0xff,0x7e,0x03,0x7a,0x00,0x03,0x00,0x11,0x00,0x3b,0x40,0x38,0x00,0x00,0x03,0x00,0x85,0x05,0x01,0x03,0x01,0x03,0x85,0x06,0x01,0x01,0x04,0x01,0x85,0x00,0x04,0x02,0x02,0x04,0x59,0x00,0x04,0x04,0x02,0x62,0x07,0x01,0x02,0x04,0x02,0x52,0x05,0x04,0x00,0x00, +0x0f,0x0e,0x0c,0x0a,0x08,0x07,0x04,0x11,0x05,0x11,0x00,0x03,0x00,0x03,0x11,0x08,0x09,0x17,0x2b,0x01,0x37,0x33,0x07,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xfe,0x95,0x73,0x60,0x78,0x1c,0x4c,0x5e,0x46,0x37,0x2d,0x2d,0x37,0x46,0x5d,0x02,0xf8,0x82,0x82,0x78,0x48,0x3a,0x1f,0x27,0x27,0x1f,0x3a, +0x48,0x00,0x00,0x00,0x00,0x02,0xfe,0x2a,0x02,0x80,0xff,0x7e,0x03,0x7a,0x00,0x03,0x00,0x11,0x00,0x3b,0x40,0x38,0x00,0x00,0x03,0x00,0x85,0x05,0x01,0x03,0x01,0x03,0x85,0x06,0x01,0x01,0x04,0x01,0x85,0x00,0x04,0x02,0x02,0x04,0x59,0x00,0x04,0x04,0x02,0x62,0x07,0x01,0x02,0x04,0x02,0x52,0x05,0x04,0x00,0x00,0x0f,0x0e,0x0c,0x0a, +0x08,0x07,0x04,0x11,0x05,0x11,0x00,0x03,0x00,0x03,0x11,0x08,0x09,0x17,0x2b,0x01,0x27,0x33,0x17,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xfe,0xb8,0x78,0x60,0x73,0x3f,0x4c,0x5e,0x46,0x37,0x2d,0x2d,0x37,0x46,0x5d,0x02,0xf8,0x82,0x82,0x78,0x48,0x3a,0x1f,0x27,0x27,0x1f,0x3a,0x48,0x00,0x00,0x00, +0x00,0x02,0xfe,0x2a,0x02,0x80,0xff,0x7e,0x03,0xa2,0x00,0x0f,0x00,0x1d,0x00,0x78,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x29,0x06,0x01,0x04,0x00,0x02,0x00,0x04,0x02,0x80,0x07,0x01,0x02,0x05,0x00,0x02,0x70,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x69,0x00,0x05,0x03,0x03,0x05,0x59,0x00,0x05,0x05,0x03,0x61,0x08,0x01,0x03,0x05,0x03,0x51, +0x1b,0x40,0x2a,0x06,0x01,0x04,0x00,0x02,0x00,0x04,0x02,0x80,0x07,0x01,0x02,0x05,0x00,0x02,0x05,0x7e,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x69,0x00,0x05,0x03,0x03,0x05,0x59,0x00,0x05,0x05,0x03,0x61,0x08,0x01,0x03,0x05,0x03,0x51,0x59,0x40,0x17,0x11,0x10,0x00,0x00,0x1b,0x1a,0x18,0x16,0x14,0x13,0x10,0x1d,0x11,0x1d,0x00,0x0f, +0x00,0x0f,0x21,0x24,0x09,0x09,0x18,0x2b,0x01,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x06,0x0f,0x02,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xfe,0xa5,0x2d,0x09,0x1b,0x37,0x41,0x2b,0x33,0x09,0x08,0x23,0x20,0x4c,0x5e,0x46,0x37,0x2d,0x2d,0x37,0x46,0x5d,0x02,0xf8,0x3d,0x0c,0x0d, +0x18,0x3c,0x27,0x20,0x0d,0x19,0x0b,0x32,0x78,0x48,0x3a,0x1f,0x27,0x27,0x1f,0x3a,0x48,0x00,0x00,0x00,0x00,0x02,0xfe,0x34,0x02,0x85,0xff,0x74,0x03,0xa0,0x00,0x19,0x00,0x27,0x00,0x95,0x4b,0xb0,0x1e,0x50,0x58,0x40,0x2d,0x09,0x01,0x07,0x00,0x08,0x00,0x07,0x08,0x80,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02, +0x0a,0x02,0x00,0x07,0x04,0x00,0x6a,0x00,0x08,0x06,0x06,0x08,0x59,0x00,0x08,0x08,0x06,0x61,0x0b,0x01,0x06,0x08,0x06,0x51,0x1b,0x40,0x3b,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x09,0x01,0x07,0x00,0x08,0x00,0x07,0x08,0x80,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x0a,0x01, +0x00,0x07,0x04,0x00,0x6a,0x00,0x08,0x06,0x06,0x08,0x59,0x00,0x08,0x08,0x06,0x61,0x0b,0x01,0x06,0x08,0x06,0x51,0x59,0x40,0x1f,0x1b,0x1a,0x01,0x00,0x25,0x24,0x22,0x20,0x1e,0x1d,0x1a,0x27,0x1b,0x27,0x16,0x15,0x13,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x0c,0x09,0x16,0x2b,0x03,0x22,0x2e,0x02,0x23,0x22,0x15, +0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xea,0x1f,0x25,0x18,0x16,0x11,0x1e,0x41,0x34,0x2a,0x20,0x25,0x17,0x16,0x11,0x1e,0x41,0x34,0x6c,0x48,0x58,0x41,0x34,0x2a,0x2b,0x35,0x41,0x58,0x03,0x2c,0x13,0x19,0x13, +0x1e,0x19,0x14,0x28,0x30,0x13,0x19,0x13,0x1e,0x19,0x14,0x28,0x30,0xa7,0x48,0x3a,0x1f,0x28,0x28,0x1f,0x3a,0x48,0x00,0x00,0x00,0x02,0xfe,0x20,0x02,0x85,0x00,0x19,0x03,0x84,0x00,0x03,0x00,0x0a,0x00,0x33,0x40,0x30,0x09,0x01,0x03,0x01,0x01,0x4c,0x00,0x00,0x02,0x00,0x85,0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x01,0x03,0x01,0x85, +0x06,0x04,0x02,0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04,0x0a,0x04,0x0a,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x07,0x09,0x17,0x2b,0x03,0x37,0x33,0x07,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xbe,0x73,0x64,0x78,0xfe,0x7f,0x8a,0x54,0x8b,0x65,0x50,0x51,0x02,0xf8,0x8c,0x8c,0x73,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x02,0xfe,0x20, +0x02,0x85,0xff,0xc9,0x03,0x84,0x00,0x03,0x00,0x0a,0x00,0x3f,0x40,0x3c,0x09,0x01,0x03,0x01,0x01,0x4c,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x80,0x05,0x01,0x01,0x03,0x00,0x01,0x03,0x7e,0x00,0x00,0x02,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x06,0x04,0x02,0x03,0x00,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x0a,0x04,0x0a,0x08,0x07, +0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x07,0x09,0x17,0x2b,0x03,0x27,0x33,0x17,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0x96,0x82,0x64,0x7d,0xfe,0x57,0x8a,0x54,0x8b,0x65,0x50,0x51,0x02,0xf8,0x8c,0x8c,0x73,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x02,0xfe,0x20,0x02,0x85,0xff,0xce,0x03,0xa2,0x00,0x0e,0x00,0x15,0x00,0x75,0xb5,0x14,0x01,0x04, +0x02,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x25,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x06,0x01,0x02,0x04,0x00,0x02,0x70,0x07,0x05,0x02,0x04,0x04,0x84,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x1b,0x40,0x26,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x06,0x01,0x02,0x04,0x00,0x02, +0x04,0x7e,0x07,0x05,0x02,0x04,0x04,0x84,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x59,0x40,0x15,0x0f,0x0f,0x00,0x00,0x0f,0x15,0x0f,0x15,0x13,0x12,0x11,0x10,0x00,0x0e,0x00,0x0e,0x21,0x24,0x08,0x09,0x18,0x2b,0x03,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x07,0x07, +0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xb1,0x2d,0x09,0x20,0x32,0x37,0x2e,0x36,0x11,0x23,0xfe,0x86,0x8a,0x54,0x8b,0x65,0x50,0x51,0x02,0xf8,0x3d,0x0e,0x0a,0x19,0x3c,0x28,0x23,0x15,0x18,0x32,0x73,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x00,0x02,0xfe,0x20,0x02,0x85,0xff,0x89,0x03,0xa0,0x00,0x19,0x00,0x20,0x00,0x92,0xb5,0x1f,0x01,0x07, +0x06,0x01,0x4c,0x4b,0xb0,0x1e,0x50,0x58,0x40,0x29,0x00,0x06,0x00,0x07,0x00,0x06,0x07,0x80,0x0a,0x08,0x02,0x07,0x07,0x84,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x02,0x09,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x37,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02, +0x04,0x00,0x04,0x02,0x00,0x80,0x00,0x06,0x00,0x07,0x00,0x06,0x07,0x80,0x0a,0x08,0x02,0x07,0x07,0x84,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x09,0x01,0x00,0x04,0x00,0x52,0x59,0x40,0x1d,0x1a,0x1a,0x01,0x00,0x1a,0x20,0x1a,0x20,0x1e,0x1d,0x1c,0x1b,0x16,0x15,0x13,0x11, +0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x0b,0x09,0x16,0x2b,0x03,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xea,0x1f,0x25,0x18,0x16,0x11,0x1e,0x41,0x34,0x2a,0x20,0x25,0x17,0x16,0x11,0x1e,0x41,0x34,0xfe, +0xe0,0x8a,0x54,0x8b,0x65,0x50,0x51,0x03,0x2c,0x13,0x19,0x13,0x1e,0x19,0x14,0x28,0x30,0x13,0x19,0x13,0x1e,0x19,0x14,0x28,0x30,0xa7,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x00,0x02,0xfe,0x2f,0x03,0x0c,0xff,0x79,0x03,0xfc,0x00,0x03,0x00,0x13,0x00,0x3b,0x40,0x38,0x00,0x00,0x03,0x00,0x85,0x05,0x01,0x03,0x01,0x03,0x85,0x06,0x01,0x01, +0x04,0x01,0x85,0x00,0x04,0x02,0x02,0x04,0x59,0x00,0x04,0x04,0x02,0x62,0x07,0x01,0x02,0x04,0x02,0x52,0x05,0x04,0x00,0x00,0x10,0x0f,0x0d,0x0a,0x08,0x07,0x04,0x13,0x05,0x12,0x00,0x03,0x00,0x03,0x11,0x08,0x09,0x17,0x2b,0x01,0x37,0x33,0x07,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0xfe, +0x95,0x69,0x60,0x6e,0x35,0x40,0x4c,0x46,0x26,0x20,0x31,0x21,0x26,0x46,0x4c,0x41,0x03,0x84,0x78,0x78,0x78,0x46,0x3c,0x20,0x26,0x26,0x20,0x3c,0x46,0x00,0x00,0x00,0x00,0x02,0xfe,0x2f,0x03,0x0c,0xff,0x79,0x03,0xfc,0x00,0x03,0x00,0x13,0x00,0x3b,0x40,0x38,0x00,0x00,0x03,0x00,0x85,0x05,0x01,0x03,0x01,0x03,0x85,0x06,0x01,0x01, +0x04,0x01,0x85,0x00,0x04,0x02,0x02,0x04,0x59,0x00,0x04,0x04,0x02,0x62,0x07,0x01,0x02,0x04,0x02,0x52,0x05,0x04,0x00,0x00,0x10,0x0f,0x0d,0x0a,0x08,0x07,0x04,0x13,0x05,0x12,0x00,0x03,0x00,0x03,0x11,0x08,0x09,0x17,0x2b,0x01,0x27,0x33,0x17,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0xfe, +0xb8,0x64,0x60,0x5f,0x58,0x40,0x4c,0x46,0x26,0x20,0x31,0x21,0x26,0x46,0x4c,0x41,0x03,0x84,0x78,0x78,0x78,0x46,0x3c,0x20,0x26,0x26,0x20,0x3c,0x46,0x00,0x00,0x00,0x00,0x02,0xfe,0x2f,0x03,0x0c,0xff,0x79,0x03,0xfc,0x00,0x0f,0x00,0x1f,0x00,0x78,0x4b,0xb0,0x0f,0x50,0x58,0x40,0x29,0x06,0x01,0x04,0x00,0x02,0x00,0x04,0x02,0x80, +0x07,0x01,0x02,0x05,0x00,0x02,0x70,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x05,0x03,0x03,0x05,0x59,0x00,0x05,0x05,0x03,0x61,0x08,0x01,0x03,0x05,0x03,0x51,0x1b,0x40,0x2a,0x06,0x01,0x04,0x00,0x02,0x00,0x04,0x02,0x80,0x07,0x01,0x02,0x05,0x00,0x02,0x05,0x7e,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x05,0x03,0x03, +0x05,0x59,0x00,0x05,0x05,0x03,0x61,0x08,0x01,0x03,0x05,0x03,0x51,0x59,0x40,0x17,0x11,0x10,0x00,0x00,0x1c,0x1b,0x19,0x16,0x14,0x13,0x10,0x1f,0x11,0x1e,0x00,0x0f,0x00,0x0f,0x21,0x24,0x09,0x09,0x18,0x2b,0x01,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x06,0x0f,0x02,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33, +0x32,0x36,0x35,0x33,0x14,0x06,0x23,0xfe,0xa6,0x2f,0x07,0x0a,0x49,0x61,0x1a,0x1d,0x08,0x08,0x20,0x36,0x40,0x4c,0x46,0x26,0x20,0x31,0x21,0x26,0x46,0x4c,0x41,0x03,0x70,0x38,0x08,0x08,0x08,0x3c,0x19,0x17,0x0d,0x1c,0x0b,0x28,0x64,0x46,0x3c,0x20,0x26,0x26,0x20,0x3c,0x46,0x00,0x00,0x00,0x00,0x02,0xfe,0x2f,0x03,0x0c,0xff,0x79, +0x03,0xfc,0x00,0x1b,0x00,0x2b,0x00,0x55,0x40,0x52,0x18,0x16,0x02,0x03,0x02,0x0a,0x08,0x02,0x00,0x01,0x02,0x4c,0x07,0x01,0x05,0x00,0x06,0x00,0x05,0x06,0x80,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x03,0x08,0x01,0x00,0x05,0x03,0x00,0x69,0x00,0x06,0x04,0x04,0x06,0x59,0x00,0x06,0x06,0x04,0x61,0x09,0x01,0x04,0x06,0x04, +0x51,0x1d,0x1c,0x01,0x00,0x28,0x27,0x25,0x22,0x20,0x1f,0x1c,0x2b,0x1d,0x2a,0x14,0x12,0x0f,0x0d,0x06,0x04,0x00,0x1b,0x01,0x1b,0x0a,0x09,0x16,0x2b,0x03,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33, +0x32,0x36,0x35,0x33,0x14,0x06,0x23,0xdf,0x1f,0x2a,0x1e,0x1b,0x11,0x0d,0x11,0x41,0x31,0x29,0x20,0x29,0x1d,0x1a,0x11,0x0e,0x10,0x41,0x2f,0x8f,0x40,0x4c,0x46,0x26,0x20,0x31,0x21,0x26,0x46,0x4c,0x41,0x03,0x98,0x0e,0x13,0x0e,0x10,0x0e,0x07,0x07,0x26,0x2d,0x0e,0x13,0x0e,0x11,0x0d,0x07,0x07,0x26,0x2d,0x8c,0x3c,0x3c,0x20,0x1c, +0x1c,0x20,0x3c,0x3c,0x00,0x02,0xfe,0x20,0x03,0x0c,0x00,0x0f,0x03,0xfc,0x00,0x03,0x00,0x0a,0x00,0x33,0x40,0x30,0x09,0x01,0x03,0x01,0x01,0x4c,0x00,0x00,0x02,0x00,0x85,0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x01,0x03,0x01,0x85,0x06,0x04,0x02,0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04,0x0a,0x04,0x0a,0x08,0x07,0x06,0x05,0x00,0x03, +0x00,0x03,0x11,0x07,0x09,0x17,0x2b,0x03,0x37,0x33,0x07,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xc0,0x69,0x66,0x6e,0xfe,0x7f,0x8a,0x54,0x8b,0x65,0x50,0x51,0x03,0x84,0x78,0x78,0x78,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x02,0xfe,0x20,0x03,0x0c,0xff,0xc4,0x03,0xfc,0x00,0x03,0x00,0x0a,0x00,0x3f,0x40,0x3c,0x09,0x01,0x03,0x01,0x01,0x4c, +0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x80,0x05,0x01,0x01,0x03,0x00,0x01,0x03,0x7e,0x00,0x00,0x02,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x06,0x04,0x02,0x03,0x00,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x0a,0x04,0x0a,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x07,0x09,0x17,0x2b,0x03,0x27,0x33,0x17,0x05,0x37,0x33,0x17,0x23, +0x27,0x07,0x9b,0x78,0x64,0x73,0xfe,0x5c,0x8a,0x54,0x8b,0x65,0x50,0x51,0x03,0x84,0x78,0x78,0x78,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x02,0xfe,0x20,0x03,0x0c,0xff,0xce,0x03,0xfc,0x00,0x0e,0x00,0x15,0x00,0x75,0xb5,0x14,0x01,0x04,0x02,0x01,0x4c,0x4b,0xb0,0x0f,0x50,0x58,0x40,0x25,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x06,0x01, +0x02,0x04,0x00,0x02,0x70,0x07,0x05,0x02,0x04,0x04,0x84,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x1b,0x40,0x26,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x06,0x01,0x02,0x04,0x00,0x02,0x04,0x7e,0x07,0x05,0x02,0x04,0x04,0x84,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x61,0x00, +0x00,0x01,0x00,0x51,0x59,0x40,0x15,0x0f,0x0f,0x00,0x00,0x0f,0x15,0x0f,0x15,0x13,0x12,0x11,0x10,0x00,0x0e,0x00,0x0e,0x21,0x24,0x08,0x09,0x18,0x2b,0x03,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x07,0x07,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xb4,0x30,0x08,0x0f,0x42,0x55,0x20,0x26,0x10,0x24,0xfe,0x86,0x8a, +0x54,0x8b,0x65,0x50,0x51,0x03,0x70,0x2f,0x08,0x0b,0x10,0x3a,0x22,0x1c,0x1c,0x10,0x22,0x64,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x00,0x02,0xfe,0x20,0x03,0x0c,0xff,0x88,0x03,0xfc,0x00,0x1b,0x00,0x22,0x00,0x53,0x40,0x50,0x18,0x16,0x02,0x03,0x02,0x0a,0x08,0x02,0x00,0x01,0x21,0x01,0x05,0x04,0x03,0x4c,0x00,0x04,0x00,0x05,0x00,0x04, +0x05,0x80,0x08,0x06,0x02,0x05,0x05,0x84,0x00,0x03,0x01,0x00,0x03,0x59,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x03,0x00,0x51,0x1c,0x1c,0x01,0x00,0x1c,0x22,0x1c,0x22,0x20,0x1f,0x1e,0x1d,0x14,0x12,0x0f,0x0d,0x06,0x04,0x00,0x1b,0x01,0x1b,0x09,0x09,0x16,0x2b,0x03,0x22,0x2e,0x02,0x23, +0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xdf,0x1f,0x2a,0x1e,0x1b,0x11,0x0d,0x11,0x41,0x31,0x29,0x20,0x29,0x1d,0x1a,0x11,0x0e,0x10,0x41,0x2f,0xfe,0xd6,0x74,0x80,0x74,0x65,0x4f,0x51,0x03,0x98,0x0e,0x13,0x0e,0x10,0x0e,0x07, +0x07,0x26,0x2d,0x0e,0x13,0x0e,0x11,0x0d,0x07,0x07,0x26,0x2d,0x8c,0x6e,0x6e,0x49,0x49,0x00,0x00,0x00,0x00,0x02,0x00,0x5a,0xfe,0xf2,0x02,0x58,0x03,0xca,0x00,0x03,0x00,0x1a,0x00,0x2a,0x40,0x27,0x0f,0x01,0x01,0x00,0x03,0x00,0x02,0x03,0x01,0x02,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x03,0x01,0x85,0x04,0x01,0x03,0x03, +0x76,0x04,0x04,0x04,0x1a,0x04,0x1a,0x12,0x1b,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x34,0x36,0x37,0x37,0x36,0x36,0x35,0x35,0x23,0x37,0x17,0x23,0x15,0x14,0x06,0x07,0x07,0x06,0x06,0x15,0x11,0x5a,0x78,0x78,0x2c,0x25,0x91,0x19,0x1d,0x6e,0xaa,0xaa,0x6e,0x28,0x20,0x9b,0x19,0x1c,0x01,0x6c,0x02,0x5e,0xfd,0xfb, +0xfd,0x2d,0x01,0x7d,0x2c,0x59,0x1b,0x6c,0x12,0x2d,0x13,0xaa,0xaa,0xaa,0xb4,0x25,0x4b,0x18,0x73,0x13,0x34,0x1d,0xfe,0x8e,0x00,0x02,0x00,0x69,0xff,0x42,0x01,0xef,0x03,0x7a,0x00,0x05,0x00,0x1e,0x00,0x47,0x40,0x44,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x09,0x01,0x02,0x03,0x01,0x02,0x67,0x05,0x01,0x03,0x00,0x07,0x04,0x03,0x07, +0x67,0x00,0x04,0x06,0x06,0x04,0x57,0x00,0x04,0x04,0x06,0x5f,0x0a,0x08,0x02,0x06,0x04,0x06,0x4f,0x06,0x06,0x00,0x00,0x06,0x1e,0x06,0x1e,0x1a,0x19,0x15,0x14,0x13,0x12,0x0d,0x0c,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11,0x0b,0x06,0x18,0x2b,0x13,0x11,0x33,0x11,0x33,0x15,0x03,0x11,0x33,0x13,0x16,0x16,0x17,0x33,0x32,0x26,0x26, +0x35,0x11,0x33,0x11,0x23,0x03,0x26,0x26,0x27,0x23,0x16,0x16,0x15,0x11,0x69,0x50,0xdd,0xf1,0x5d,0x81,0x0c,0x15,0x05,0x0a,0x01,0x08,0x08,0x4b,0x5c,0x80,0x0c,0x17,0x06,0x0a,0x05,0x0b,0x01,0x90,0x01,0xea,0xfe,0x61,0x4b,0xfd,0xb2,0x01,0xea,0xfe,0xdb,0x1c,0x47,0x17,0x30,0x41,0x1b,0x01,0x13,0xfe,0x16,0x01,0x25,0x1c,0x47,0x17, +0x1b,0x51,0x20,0xfe,0xed,0x00,0x00,0x00,0x00,0x03,0x00,0x32,0xff,0xb0,0x02,0x26,0x03,0x6b,0x00,0x1a,0x00,0x23,0x00,0x32,0x00,0x44,0x40,0x41,0x32,0x26,0x02,0x06,0x07,0x01,0x4c,0x00,0x02,0x00,0x05,0x01,0x02,0x05,0x69,0x04,0x03,0x02,0x01,0x00,0x07,0x06,0x01,0x07,0x69,0x00,0x06,0x00,0x00,0x06,0x57,0x00,0x06,0x06,0x00,0x5f, +0x08,0x01,0x00,0x06,0x00,0x4f,0x01,0x00,0x2d,0x2b,0x25,0x24,0x21,0x1f,0x1c,0x1b,0x14,0x12,0x0e,0x0c,0x08,0x06,0x00,0x1a,0x01,0x19,0x09,0x06,0x16,0x2b,0x17,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x33,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x15,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x01,0x33,0x35,0x34,0x26,0x23,0x22, +0x06,0x15,0x13,0x33,0x35,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x6e,0x19,0x23,0x23,0x19,0x0a,0x30,0x51,0x33,0x35,0x51,0x2e,0x0a,0x19,0x23,0x23,0x19,0xfe,0xde,0xc8,0x37,0x2d,0x2d,0x37,0x37,0x59,0x12,0x26,0x37,0x2d,0x2d,0x37,0x25,0x12,0x50,0x23,0x19,0x01,0xb2,0x19,0x23,0xe7,0x33,0x4d,0x2a,0x2c,0x4c, +0x32,0xe7,0x23,0x19,0xfe,0x4e,0x19,0x23,0x02,0x2b,0xe6,0x2d,0x37,0x37,0x2d,0xfd,0x71,0xa0,0x07,0x28,0x22,0x28,0x31,0x31,0x28,0x22,0x28,0x07,0x00,0x01,0xff,0xd8,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x04,0x00,0x17,0x40,0x14,0x04,0x01,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x11,0x10,0x02,0x06,0x18, +0x2b,0x13,0x23,0x11,0x33,0x01,0x0a,0x32,0x32,0x02,0x4e,0xfe,0xd4,0x05,0x28,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b, +0x11,0x01,0x01,0x33,0x01,0x01,0x01,0xe2,0xfe,0x24,0x70,0x01,0xe2,0xfe,0x1e,0xfe,0xd4,0x02,0x92,0x02,0x96,0xfd,0x6c,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x80,0x03,0xfc,0x00,0x04,0x00,0x1d,0x40,0x1a,0x01,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x04, +0x00,0x04,0x12,0x03,0x06,0x17,0x2b,0x09,0x02,0x33,0x11,0x02,0x4e,0xfd,0xb2,0x02,0x4e,0x32,0xfe,0xd4,0x02,0x94,0x02,0x94,0xfa,0xd8,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00, +0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x09,0x02,0x33,0x01,0x01,0x01,0xe2,0xfe,0x1e,0x01,0xe2,0x70,0xfe,0x24,0x01,0xe2,0xfe,0xd4,0x02,0x94,0x02,0x94,0xfd,0x6a,0xfd,0x6e,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0x35,0x02,0x2b,0x02,0x26,0x00,0x19,0x00,0x5f,0x4b,0xb0,0x15,0x50,0x58,0x40,0x22,0x00,0x01,0x01,0x02,0x5f,0x00,0x02, +0x02,0x3b,0x4d,0x03,0x01,0x00,0x00,0x04,0x5f,0x08,0x07,0x02,0x04,0x04,0x39,0x4d,0x00,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3d,0x06,0x4e,0x1b,0x40,0x1f,0x00,0x05,0x00,0x06,0x05,0x06,0x63,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x03,0x01,0x00,0x00,0x04,0x5f,0x08,0x07,0x02,0x04,0x04,0x39,0x04,0x4e,0x59,0x40,0x10, +0x00,0x00,0x00,0x19,0x00,0x19,0x21,0x25,0x11,0x11,0x11,0x11,0x11,0x09,0x09,0x1d,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x55,0xc3,0xaf,0x01,0x09,0xb9,0xcf,0x21,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x20,0x27,0x52,0x01,0x82,0x52, +0xfe,0x2c,0x52,0x1b,0x2d,0x15,0x16,0x1c,0x3c,0x35,0x28,0x1a,0x36,0x1e,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0x2b,0x02,0x2b,0x02,0x26,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x67,0x00,0x00,0x00,0x00,0x00,0x16,0x01,0x0e,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, +0x01,0x01,0x00,0x13,0x00,0x14,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x17,0x00,0x27,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x03,0x00,0x0b,0x00,0x3e,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x00,0x00,0xbc,0x00,0x49,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x01,0x00,0x1c,0x01,0x05,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x02,0x00,0x0e, +0x01,0x21,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x03,0x00,0x3c,0x01,0x2f,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x04,0x00,0x2c,0x01,0x6b,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x05,0x00,0x54,0x01,0x97,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x06,0x00,0x2a,0x01,0xeb,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x07,0x00,0x62,0x02,0x15,0x00,0x03, +0x00,0x01,0x04,0x09,0x00,0x08,0x00,0x12,0x02,0x77,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x09,0x00,0x4a,0x02,0x89,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0b,0x00,0x32,0x02,0xd3,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0c,0x00,0x32,0x03,0x05,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0d,0x01,0x22,0x03,0x37,0x00,0x03,0x00,0x01,0x04,0x09, +0x00,0x0e,0x00,0x36,0x04,0x59,0x00,0x03,0x00,0x01,0x04,0x09,0x01,0x00,0x00,0x28,0x04,0x8f,0x00,0x03,0x00,0x01,0x04,0x09,0x01,0x01,0x00,0x26,0x04,0xb7,0x00,0x03,0x00,0x01,0x04,0x09,0x01,0x02,0x00,0x2e,0x04,0xdd,0x00,0x03,0x00,0x01,0x04,0x09,0x01,0x03,0x00,0x16,0x05,0x0b,0x43,0x6c,0x61,0x73,0x73,0x69,0x63,0x20,0x63,0x6f, +0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x69,0x6f,0x6e,0x42,0x72,0x6f,0x6b,0x65,0x6e,0x20,0x65,0x71,0x75,0x61,0x6c,0x73,0x20,0x6c,0x69,0x67,0x61,0x74,0x75,0x72,0x65,0x73,0x52,0x61,0x73,0x65,0x64,0x20,0x62,0x61,0x72,0x20,0x66,0x00, +0x43,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x32,0x00,0x30,0x00,0x20,0x00,0x54,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00, +0x6f,0x00,0x20,0x00,0x50,0x00,0x72,0x00,0x6f,0x00,0x6a,0x00,0x65,0x00,0x63,0x00,0x74,0x00,0x20,0x00,0x41,0x00,0x75,0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x72,0x00,0x73,0x00,0x20,0x00,0x28,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x67,0x00,0x69,0x00,0x74,0x00,0x68,0x00,0x75,0x00, +0x62,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x2f,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x2f,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x29,0x00,0x4a,0x00,0x65,0x00, +0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x32,0x00,0x2e,0x00,0x33,0x00,0x30,0x00,0x34,0x00,0x3b,0x00,0x4a,0x00,0x42,0x00,0x3b,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00, +0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x2d,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x20,0x00, +0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x56,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x32,0x00,0x2e,0x00,0x33,0x00,0x30,0x00,0x34,0x00,0x3b,0x00,0x20,0x00,0x74,0x00,0x74,0x00,0x66,0x00,0x61,0x00,0x75,0x00,0x74,0x00,0x6f,0x00,0x68,0x00,0x69,0x00,0x6e,0x00, +0x74,0x00,0x20,0x00,0x28,0x00,0x76,0x00,0x31,0x00,0x2e,0x00,0x38,0x00,0x2e,0x00,0x34,0x00,0x2e,0x00,0x37,0x00,0x2d,0x00,0x35,0x00,0x64,0x00,0x35,0x00,0x62,0x00,0x29,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x2d,0x00,0x52,0x00, +0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x74,0x00,0x72,0x00,0x61,0x00,0x64,0x00,0x65,0x00,0x6d,0x00, +0x61,0x00,0x72,0x00,0x6b,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x73,0x00,0x2e,0x00,0x72,0x00,0x2e,0x00,0x6f,0x00,0x2e,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00, +0x50,0x00,0x68,0x00,0x69,0x00,0x6c,0x00,0x69,0x00,0x70,0x00,0x70,0x00,0x20,0x00,0x4e,0x00,0x75,0x00,0x72,0x00,0x75,0x00,0x6c,0x00,0x6c,0x00,0x69,0x00,0x6e,0x00,0x2c,0x00,0x20,0x00,0x4b,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x74,0x00,0x61,0x00,0x6e,0x00,0x74,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x42,0x00,0x75,0x00,0x6c,0x00, +0x65,0x00,0x6e,0x00,0x6b,0x00,0x6f,0x00,0x76,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x77,0x00,0x77,0x00,0x77,0x00,0x2e,0x00,0x6a,0x00,0x65,0x00,0x74,0x00,0x62,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x68,0x00,0x74,0x00, +0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x77,0x00,0x77,0x00,0x77,0x00,0x2e,0x00,0x6a,0x00,0x65,0x00,0x74,0x00,0x62,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x54,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x46,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00, +0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x75,0x00,0x6e,0x00,0x64,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00, +0x53,0x00,0x49,0x00,0x4c,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x20,0x00,0x46,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x56,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x31,0x00, +0x2e,0x00,0x31,0x00,0x2e,0x00,0x20,0x00,0x54,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x61,0x00,0x76,0x00,0x61,0x00,0x69,0x00,0x6c,0x00,0x61,0x00,0x62,0x00,0x6c,0x00,0x65,0x00,0x20,0x00,0x77,0x00,0x69,0x00, +0x74,0x00,0x68,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x46,0x00,0x41,0x00,0x51,0x00,0x20,0x00,0x61,0x00,0x74,0x00,0x3a,0x00,0x20,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x73,0x00,0x63,0x00,0x72,0x00,0x69,0x00,0x70,0x00,0x74,0x00,0x73,0x00,0x2e,0x00,0x73,0x00,0x69,0x00,0x6c,0x00, +0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00,0x4f,0x00,0x46,0x00,0x4c,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x73,0x00,0x63,0x00,0x72,0x00,0x69,0x00,0x70,0x00,0x74,0x00,0x73,0x00,0x2e,0x00,0x73,0x00,0x69,0x00,0x6c,0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00, +0x4f,0x00,0x46,0x00,0x4c,0x00,0x43,0x00,0x6c,0x00,0x61,0x00,0x73,0x00,0x73,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x75,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x43,0x00,0x6c,0x00,0x6f,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x63,0x00,0x6f,0x00, +0x6e,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x75,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x42,0x00,0x72,0x00,0x6f,0x00,0x6b,0x00,0x65,0x00,0x6e,0x00,0x20,0x00,0x65,0x00,0x71,0x00,0x75,0x00,0x61,0x00,0x6c,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x67,0x00,0x61,0x00,0x74,0x00,0x75,0x00,0x72,0x00,0x65,0x00, +0x73,0x00,0x52,0x00,0x61,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x61,0x00,0x72,0x00,0x20,0x00,0x66,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x65,0x00,0x32,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xcf,0x00,0x00,0x00,0x24,0x00,0xc9, +0x01,0x02,0x01,0x03,0x01,0x04,0x01,0x05,0x01,0x06,0x01,0x07,0x01,0x08,0x00,0xc7,0x01,0x09,0x01,0x0a,0x01,0x0b,0x01,0x0c,0x01,0x0d,0x00,0x62,0x01,0x0e,0x00,0xad,0x01,0x0f,0x01,0x10,0x01,0x11,0x00,0x63,0x00,0xae,0x00,0x90,0x01,0x12,0x00,0x25,0x00,0x26,0x00,0xfd,0x00,0xff,0x00,0x64,0x01,0x13,0x01,0x14,0x00,0x27,0x00,0xe9, +0x01,0x15,0x01,0x16,0x00,0x28,0x00,0x65,0x01,0x17,0x01,0x18,0x00,0xc8,0x01,0x19,0x01,0x1a,0x01,0x1b,0x01,0x1c,0x01,0x1d,0x00,0xca,0x01,0x1e,0x01,0x1f,0x00,0xcb,0x01,0x20,0x01,0x21,0x01,0x22,0x01,0x23,0x01,0x24,0x00,0x29,0x00,0x2a,0x01,0x25,0x00,0xf8,0x01,0x26,0x01,0x27,0x01,0x28,0x01,0x29,0x00,0x2b,0x01,0x2a,0x01,0x2b, +0x00,0x2c,0x00,0xcc,0x01,0x2c,0x00,0xcd,0x00,0xce,0x00,0xfa,0x01,0x2d,0x00,0xcf,0x01,0x2e,0x01,0x2f,0x01,0x30,0x01,0x31,0x00,0x2d,0x01,0x32,0x00,0x2e,0x01,0x33,0x00,0x2f,0x01,0x34,0x01,0x35,0x01,0x36,0x01,0x37,0x00,0xe2,0x00,0x30,0x00,0x31,0x01,0x38,0x01,0x39,0x01,0x3a,0x01,0x3b,0x00,0x66,0x00,0x32,0x00,0xd0,0x01,0x3c, +0x00,0xd1,0x01,0x3d,0x01,0x3e,0x01,0x3f,0x01,0x40,0x01,0x41,0x00,0x67,0x01,0x42,0x00,0xd3,0x01,0x43,0x01,0x44,0x01,0x45,0x01,0x46,0x01,0x47,0x01,0x48,0x01,0x49,0x01,0x4a,0x01,0x4b,0x01,0x4c,0x00,0x91,0x01,0x4d,0x00,0xaf,0x00,0xb0,0x00,0x33,0x00,0xed,0x00,0x34,0x00,0x35,0x01,0x4e,0x01,0x4f,0x01,0x50,0x00,0x36,0x01,0x51, +0x00,0xe4,0x00,0xfb,0x01,0x52,0x01,0x53,0x01,0x54,0x01,0x55,0x00,0x37,0x01,0x56,0x01,0x57,0x01,0x58,0x01,0x59,0x00,0x38,0x00,0xd4,0x01,0x5a,0x00,0xd5,0x00,0x68,0x01,0x5b,0x00,0xd6,0x01,0x5c,0x01,0x5d,0x01,0x5e,0x01,0x5f,0x01,0x60,0x01,0x61,0x01,0x62,0x01,0x63,0x01,0x64,0x01,0x65,0x01,0x66,0x01,0x67,0x00,0x39,0x00,0x3a, +0x01,0x68,0x01,0x69,0x01,0x6a,0x01,0x6b,0x00,0x3b,0x00,0x3c,0x00,0xeb,0x01,0x6c,0x00,0xbb,0x01,0x6d,0x01,0x6e,0x01,0x6f,0x01,0x70,0x01,0x71,0x00,0x3d,0x01,0x72,0x00,0xe6,0x01,0x73,0x01,0x74,0x01,0x75,0x01,0x76,0x01,0x77,0x01,0x78,0x01,0x79,0x01,0x7a,0x01,0x7b,0x00,0x44,0x00,0x69,0x01,0x7c,0x01,0x7d,0x01,0x7e,0x01,0x7f, +0x01,0x80,0x01,0x81,0x01,0x82,0x00,0x6b,0x01,0x83,0x01,0x84,0x01,0x85,0x01,0x86,0x01,0x87,0x00,0x6c,0x01,0x88,0x00,0x6a,0x01,0x89,0x01,0x8a,0x01,0x8b,0x00,0x6e,0x00,0x6d,0x00,0xa0,0x01,0x8c,0x00,0x45,0x00,0x46,0x00,0xfe,0x01,0x00,0x00,0x6f,0x01,0x8d,0x01,0x8e,0x00,0x47,0x00,0xea,0x01,0x8f,0x01,0x01,0x00,0x48,0x00,0x70, +0x01,0x90,0x01,0x91,0x00,0x72,0x01,0x92,0x01,0x93,0x01,0x94,0x01,0x95,0x01,0x96,0x00,0x73,0x01,0x97,0x01,0x98,0x00,0x71,0x01,0x99,0x01,0x9a,0x01,0x9b,0x01,0x9c,0x01,0x9d,0x00,0x49,0x00,0x4a,0x01,0x9e,0x00,0xf9,0x01,0x9f,0x01,0xa0,0x01,0xa1,0x01,0xa2,0x00,0x4b,0x01,0xa3,0x01,0xa4,0x00,0x4c,0x00,0xd7,0x00,0x74,0x01,0xa5, +0x01,0xa6,0x00,0x76,0x00,0x77,0x01,0xa7,0x01,0xa8,0x00,0x75,0x01,0xa9,0x01,0xaa,0x01,0xab,0x01,0xac,0x00,0x4d,0x01,0xad,0x01,0xae,0x00,0x4e,0x01,0xaf,0x01,0xb0,0x00,0x4f,0x01,0xb1,0x01,0xb2,0x01,0xb3,0x01,0xb4,0x01,0xb5,0x00,0xe3,0x00,0x50,0x00,0x51,0x01,0xb6,0x01,0xb7,0x01,0xb8,0x01,0xb9,0x01,0xba,0x00,0x78,0x00,0x52, +0x00,0x79,0x01,0xbb,0x01,0xbc,0x00,0x7b,0x01,0xbd,0x01,0xbe,0x01,0xbf,0x01,0xc0,0x01,0xc1,0x00,0x7c,0x01,0xc2,0x00,0x7a,0x01,0xc3,0x01,0xc4,0x01,0xc5,0x01,0xc6,0x01,0xc7,0x01,0xc8,0x01,0xc9,0x01,0xca,0x01,0xcb,0x01,0xcc,0x00,0xa1,0x01,0xcd,0x00,0x7d,0x00,0xb1,0x00,0x53,0x00,0xee,0x00,0x54,0x00,0x55,0x01,0xce,0x01,0xcf, +0x01,0xd0,0x00,0x56,0x01,0xd1,0x00,0xe5,0x00,0xfc,0x01,0xd2,0x01,0xd3,0x00,0x89,0x01,0xd4,0x00,0x57,0x01,0xd5,0x01,0xd6,0x01,0xd7,0x01,0xd8,0x00,0x58,0x00,0x7e,0x01,0xd9,0x01,0xda,0x00,0x80,0x00,0x81,0x01,0xdb,0x01,0xdc,0x01,0xdd,0x01,0xde,0x01,0xdf,0x00,0x7f,0x01,0xe0,0x01,0xe1,0x01,0xe2,0x01,0xe3,0x01,0xe4,0x01,0xe5, +0x01,0xe6,0x01,0xe7,0x01,0xe8,0x01,0xe9,0x01,0xea,0x01,0xeb,0x00,0x59,0x00,0x5a,0x01,0xec,0x01,0xed,0x01,0xee,0x01,0xef,0x00,0x5b,0x00,0x5c,0x00,0xec,0x01,0xf0,0x00,0xba,0x01,0xf1,0x01,0xf2,0x01,0xf3,0x01,0xf4,0x01,0xf5,0x00,0x5d,0x01,0xf6,0x00,0xe7,0x01,0xf7,0x01,0xf8,0x01,0xf9,0x01,0xfa,0x01,0xfb,0x01,0xfc,0x01,0xfd, +0x01,0xfe,0x01,0xff,0x02,0x00,0x02,0x01,0x02,0x02,0x02,0x03,0x02,0x04,0x02,0x05,0x02,0x06,0x02,0x07,0x02,0x08,0x02,0x09,0x02,0x0a,0x02,0x0b,0x02,0x0c,0x02,0x0d,0x02,0x0e,0x02,0x0f,0x02,0x10,0x02,0x11,0x02,0x12,0x02,0x13,0x02,0x14,0x02,0x15,0x02,0x16,0x02,0x17,0x02,0x18,0x02,0x19,0x02,0x1a,0x02,0x1b,0x02,0x1c,0x02,0x1d, +0x02,0x1e,0x02,0x1f,0x02,0x20,0x02,0x21,0x02,0x22,0x02,0x23,0x02,0x24,0x02,0x25,0x02,0x26,0x02,0x27,0x02,0x28,0x02,0x29,0x02,0x2a,0x02,0x2b,0x02,0x2c,0x02,0x2d,0x02,0x2e,0x02,0x2f,0x02,0x30,0x02,0x31,0x02,0x32,0x02,0x33,0x02,0x34,0x02,0x35,0x02,0x36,0x02,0x37,0x02,0x38,0x02,0x39,0x02,0x3a,0x02,0x3b,0x02,0x3c,0x02,0x3d, +0x02,0x3e,0x02,0x3f,0x02,0x40,0x00,0x9d,0x00,0x9e,0x02,0x41,0x02,0x42,0x02,0x43,0x02,0x44,0x02,0x45,0x02,0x46,0x02,0x47,0x02,0x48,0x02,0x49,0x02,0x4a,0x02,0x4b,0x02,0x4c,0x02,0x4d,0x02,0x4e,0x02,0x4f,0x02,0x50,0x02,0x51,0x02,0x52,0x02,0x53,0x02,0x54,0x02,0x55,0x02,0x56,0x02,0x57,0x02,0x58,0x02,0x59,0x02,0x5a,0x02,0x5b, +0x02,0x5c,0x02,0x5d,0x02,0x5e,0x02,0x5f,0x02,0x60,0x02,0x61,0x02,0x62,0x02,0x63,0x02,0x64,0x02,0x65,0x02,0x66,0x02,0x67,0x02,0x68,0x02,0x69,0x02,0x6a,0x02,0x6b,0x02,0x6c,0x02,0x6d,0x02,0x6e,0x02,0x6f,0x02,0x70,0x02,0x71,0x02,0x72,0x02,0x73,0x02,0x74,0x02,0x75,0x02,0x76,0x02,0x77,0x02,0x78,0x02,0x79,0x02,0x7a,0x02,0x7b, +0x02,0x7c,0x02,0x7d,0x02,0x7e,0x02,0x7f,0x02,0x80,0x02,0x81,0x02,0x82,0x02,0x83,0x02,0x84,0x02,0x85,0x02,0x86,0x02,0x87,0x02,0x88,0x02,0x89,0x02,0x8a,0x02,0x8b,0x02,0x8c,0x02,0x8d,0x02,0x8e,0x02,0x8f,0x02,0x90,0x02,0x91,0x02,0x92,0x02,0x93,0x02,0x94,0x02,0x95,0x02,0x96,0x02,0x97,0x02,0x98,0x02,0x99,0x02,0x9a,0x02,0x9b, +0x02,0x9c,0x02,0x9d,0x02,0x9e,0x02,0x9f,0x02,0xa0,0x02,0xa1,0x02,0xa2,0x02,0xa3,0x02,0xa4,0x02,0xa5,0x02,0xa6,0x02,0xa7,0x02,0xa8,0x02,0xa9,0x02,0xaa,0x02,0xab,0x02,0xac,0x02,0xad,0x02,0xae,0x02,0xaf,0x02,0xb0,0x02,0xb1,0x02,0xb2,0x02,0xb3,0x02,0xb4,0x02,0xb5,0x02,0xb6,0x02,0xb7,0x02,0xb8,0x02,0xb9,0x02,0xba,0x02,0xbb, +0x02,0xbc,0x02,0xbd,0x02,0xbe,0x02,0xbf,0x02,0xc0,0x02,0xc1,0x02,0xc2,0x02,0xc3,0x02,0xc4,0x02,0xc5,0x02,0xc6,0x02,0xc7,0x02,0xc8,0x02,0xc9,0x02,0xca,0x02,0xcb,0x02,0xcc,0x02,0xcd,0x02,0xce,0x02,0xcf,0x02,0xd0,0x02,0xd1,0x02,0xd2,0x02,0xd3,0x02,0xd4,0x02,0xd5,0x02,0xd6,0x02,0xd7,0x02,0xd8,0x02,0xd9,0x02,0xda,0x02,0xdb, +0x02,0xdc,0x02,0xdd,0x02,0xde,0x02,0xdf,0x02,0xe0,0x02,0xe1,0x02,0xe2,0x02,0xe3,0x02,0xe4,0x02,0xe5,0x02,0xe6,0x02,0xe7,0x02,0xe8,0x02,0xe9,0x02,0xea,0x02,0xeb,0x02,0xec,0x02,0xed,0x02,0xee,0x02,0xef,0x02,0xf0,0x02,0xf1,0x02,0xf2,0x02,0xf3,0x02,0xf4,0x02,0xf5,0x02,0xf6,0x02,0xf7,0x02,0xf8,0x02,0xf9,0x02,0xfa,0x02,0xfb, +0x02,0xfc,0x00,0x9b,0x02,0xfd,0x02,0xfe,0x02,0xff,0x03,0x00,0x03,0x01,0x03,0x02,0x03,0x03,0x03,0x04,0x03,0x05,0x03,0x06,0x03,0x07,0x03,0x08,0x03,0x09,0x03,0x0a,0x03,0x0b,0x03,0x0c,0x03,0x0d,0x03,0x0e,0x03,0x0f,0x03,0x10,0x03,0x11,0x03,0x12,0x03,0x13,0x03,0x14,0x03,0x15,0x03,0x16,0x03,0x17,0x03,0x18,0x03,0x19,0x03,0x1a, +0x03,0x1b,0x03,0x1c,0x03,0x1d,0x03,0x1e,0x03,0x1f,0x03,0x20,0x03,0x21,0x03,0x22,0x03,0x23,0x03,0x24,0x03,0x25,0x03,0x26,0x03,0x27,0x03,0x28,0x03,0x29,0x03,0x2a,0x03,0x2b,0x03,0x2c,0x03,0x2d,0x03,0x2e,0x03,0x2f,0x03,0x30,0x03,0x31,0x03,0x32,0x03,0x33,0x03,0x34,0x03,0x35,0x03,0x36,0x03,0x37,0x03,0x38,0x03,0x39,0x03,0x3a, +0x03,0x3b,0x03,0x3c,0x03,0x3d,0x03,0x3e,0x03,0x3f,0x03,0x40,0x03,0x41,0x03,0x42,0x03,0x43,0x03,0x44,0x03,0x45,0x03,0x46,0x03,0x47,0x03,0x48,0x03,0x49,0x03,0x4a,0x03,0x4b,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x03,0x4c,0x03,0x4d,0x03,0x4e,0x03,0x4f,0x03,0x50, +0x03,0x51,0x03,0x52,0x03,0x53,0x03,0x54,0x03,0x55,0x03,0x56,0x03,0x57,0x03,0x58,0x03,0x59,0x03,0x5a,0x03,0x5b,0x03,0x5c,0x03,0x5d,0x03,0x5e,0x03,0x5f,0x03,0x60,0x03,0x61,0x03,0x62,0x03,0x63,0x03,0x64,0x03,0x65,0x03,0x66,0x03,0x67,0x03,0x68,0x03,0x69,0x03,0x6a,0x03,0x6b,0x03,0x6c,0x03,0x6d,0x03,0x6e,0x03,0x6f,0x03,0x70, +0x03,0x71,0x03,0x72,0x03,0x73,0x03,0x74,0x03,0x75,0x03,0x76,0x03,0x77,0x03,0x78,0x03,0x79,0x03,0x7a,0x03,0x7b,0x03,0x7c,0x03,0x7d,0x03,0x7e,0x03,0x7f,0x03,0x80,0x03,0x81,0x03,0x82,0x03,0x83,0x03,0x84,0x03,0x85,0x03,0x86,0x03,0x87,0x03,0x88,0x03,0x89,0x03,0x8a,0x03,0x8b,0x03,0x8c,0x03,0x8d,0x00,0xbc,0x00,0xf4,0x00,0xf5, +0x00,0xf6,0x03,0x8e,0x03,0x8f,0x03,0x90,0x03,0x91,0x03,0x92,0x00,0x11,0x00,0x0f,0x00,0x1d,0x00,0x1e,0x00,0xab,0x00,0x04,0x00,0xa3,0x00,0x22,0x00,0xa2,0x00,0xc3,0x00,0x87,0x00,0x0d,0x03,0x93,0x03,0x94,0x03,0x95,0x03,0x96,0x03,0x97,0x00,0x06,0x03,0x98,0x03,0x99,0x00,0x12,0x00,0x3f,0x03,0x9a,0x03,0x9b,0x03,0x9c,0x03,0x9d, +0x00,0x0b,0x00,0x0c,0x00,0x5e,0x00,0x60,0x00,0x3e,0x00,0x40,0x03,0x9e,0x03,0x9f,0x03,0xa0,0x03,0xa1,0x03,0xa2,0x03,0xa3,0x03,0xa4,0x03,0xa5,0x03,0xa6,0x03,0xa7,0x03,0xa8,0x03,0xa9,0x03,0xaa,0x03,0xab,0x00,0x10,0x03,0xac,0x00,0xb2,0x00,0xb3,0x03,0xad,0x00,0x42,0x00,0xc4,0x00,0xc5,0x00,0xb4,0x00,0xb5,0x00,0xb6,0x00,0xb7, +0x03,0xae,0x03,0xaf,0x00,0xa9,0x00,0xaa,0x00,0xbe,0x00,0xbf,0x03,0xb0,0x00,0x05,0x00,0x0a,0x03,0xb1,0x03,0xb2,0x03,0xb3,0x03,0xb4,0x03,0xb5,0x03,0xb6,0x03,0xb7,0x03,0xb8,0x03,0xb9,0x03,0xba,0x03,0xbb,0x03,0xbc,0x03,0xbd,0x03,0xbe,0x03,0xbf,0x03,0xc0,0x03,0xc1,0x03,0xc2,0x03,0xc3,0x03,0xc4,0x03,0xc5,0x03,0xc6,0x03,0xc7, +0x03,0xc8,0x03,0xc9,0x03,0xca,0x03,0xcb,0x03,0xcc,0x03,0xcd,0x03,0xce,0x03,0xcf,0x03,0xd0,0x03,0xd1,0x03,0xd2,0x03,0xd3,0x03,0xd4,0x03,0xd5,0x03,0xd6,0x03,0xd7,0x03,0xd8,0x03,0xd9,0x03,0xda,0x03,0xdb,0x03,0xdc,0x03,0xdd,0x03,0xde,0x03,0xdf,0x03,0xe0,0x03,0xe1,0x03,0xe2,0x03,0xe3,0x03,0xe4,0x03,0xe5,0x03,0xe6,0x03,0xe7, +0x03,0xe8,0x03,0xe9,0x03,0xea,0x03,0xeb,0x03,0xec,0x03,0xed,0x03,0xee,0x03,0xef,0x03,0xf0,0x03,0xf1,0x03,0xf2,0x03,0xf3,0x03,0xf4,0x03,0xf5,0x03,0xf6,0x03,0xf7,0x03,0xf8,0x03,0xf9,0x03,0xfa,0x03,0xfb,0x03,0xfc,0x03,0xfd,0x03,0xfe,0x03,0xff,0x04,0x00,0x04,0x01,0x04,0x02,0x00,0x03,0x04,0x03,0x04,0x04,0x04,0x05,0x04,0x06, +0x00,0x84,0x00,0xbd,0x00,0x07,0x04,0x07,0x04,0x08,0x00,0xa6,0x04,0x09,0x04,0x0a,0x00,0x85,0x04,0x0b,0x00,0x96,0x04,0x0c,0x04,0x0d,0x04,0x0e,0x04,0x0f,0x04,0x10,0x04,0x11,0x04,0x12,0x04,0x13,0x04,0x14,0x04,0x15,0x04,0x16,0x04,0x17,0x04,0x18,0x04,0x19,0x04,0x1a,0x04,0x1b,0x04,0x1c,0x04,0x1d,0x04,0x1e,0x04,0x1f,0x04,0x20, +0x04,0x21,0x04,0x22,0x04,0x23,0x04,0x24,0x04,0x25,0x04,0x26,0x04,0x27,0x04,0x28,0x04,0x29,0x04,0x2a,0x04,0x2b,0x04,0x2c,0x04,0x2d,0x04,0x2e,0x04,0x2f,0x04,0x30,0x04,0x31,0x04,0x32,0x04,0x33,0x04,0x34,0x04,0x35,0x04,0x36,0x04,0x37,0x04,0x38,0x04,0x39,0x04,0x3a,0x04,0x3b,0x04,0x3c,0x04,0x3d,0x04,0x3e,0x04,0x3f,0x04,0x40, +0x04,0x41,0x04,0x42,0x04,0x43,0x04,0x44,0x04,0x45,0x04,0x46,0x04,0x47,0x04,0x48,0x04,0x49,0x04,0x4a,0x04,0x4b,0x04,0x4c,0x04,0x4d,0x04,0x4e,0x04,0x4f,0x04,0x50,0x04,0x51,0x04,0x52,0x00,0x0e,0x00,0xef,0x00,0xf0,0x00,0xb8,0x00,0x20,0x00,0x8f,0x00,0x21,0x00,0x1f,0x00,0x95,0x00,0x94,0x00,0x93,0x00,0xa7,0x00,0xa4,0x00,0x61, +0x00,0x41,0x00,0x92,0x04,0x53,0x04,0x54,0x04,0x55,0x04,0x56,0x04,0x57,0x00,0x9c,0x04,0x58,0x00,0x9a,0x00,0x99,0x00,0xa5,0x00,0x98,0x04,0x59,0x04,0x5a,0x04,0x5b,0x04,0x5c,0x04,0x5d,0x04,0x5e,0x04,0x5f,0x04,0x60,0x00,0x08,0x00,0xc6,0x04,0x61,0x04,0x62,0x04,0x63,0x04,0x64,0x04,0x65,0x04,0x66,0x04,0x67,0x04,0x68,0x04,0x69, +0x04,0x6a,0x04,0x6b,0x04,0x6c,0x04,0x6d,0x04,0x6e,0x04,0x6f,0x04,0x70,0x04,0x71,0x04,0x72,0x04,0x73,0x04,0x74,0x04,0x75,0x04,0x76,0x04,0x77,0x04,0x78,0x04,0x79,0x04,0x7a,0x04,0x7b,0x04,0x7c,0x04,0x7d,0x04,0x7e,0x04,0x7f,0x04,0x80,0x04,0x81,0x04,0x82,0x04,0x83,0x04,0x84,0x04,0x85,0x04,0x86,0x04,0x87,0x04,0x88,0x04,0x89, +0x04,0x8a,0x04,0x8b,0x04,0x8c,0x04,0x8d,0x04,0x8e,0x04,0x8f,0x04,0x90,0x04,0x91,0x04,0x92,0x04,0x93,0x04,0x94,0x04,0x95,0x04,0x96,0x04,0x97,0x04,0x98,0x04,0x99,0x04,0x9a,0x04,0x9b,0x04,0x9c,0x04,0x9d,0x04,0x9e,0x04,0x9f,0x04,0xa0,0x04,0xa1,0x04,0xa2,0x04,0xa3,0x04,0xa4,0x04,0xa5,0x04,0xa6,0x04,0xa7,0x04,0xa8,0x04,0xa9, +0x04,0xaa,0x04,0xab,0x04,0xac,0x04,0xad,0x04,0xae,0x04,0xaf,0x04,0xb0,0x04,0xb1,0x04,0xb2,0x04,0xb3,0x04,0xb4,0x04,0xb5,0x04,0xb6,0x04,0xb7,0x04,0xb8,0x04,0xb9,0x04,0xba,0x04,0xbb,0x04,0xbc,0x04,0xbd,0x04,0xbe,0x04,0xbf,0x04,0xc0,0x04,0xc1,0x04,0xc2,0x04,0xc3,0x04,0xc4,0x04,0xc5,0x04,0xc6,0x04,0xc7,0x04,0xc8,0x04,0xc9, +0x04,0xca,0x04,0xcb,0x04,0xcc,0x04,0xcd,0x04,0xce,0x04,0xcf,0x04,0xd0,0x04,0xd1,0x04,0xd2,0x04,0xd3,0x04,0xd4,0x04,0xd5,0x04,0xd6,0x04,0xd7,0x04,0xd8,0x04,0xd9,0x04,0xda,0x04,0xdb,0x04,0xdc,0x04,0xdd,0x04,0xde,0x04,0xdf,0x04,0xe0,0x04,0xe1,0x04,0xe2,0x04,0xe3,0x04,0xe4,0x04,0xe5,0x04,0xe6,0x04,0xe7,0x04,0xe8,0x04,0xe9, +0x04,0xea,0x04,0xeb,0x04,0xec,0x04,0xed,0x00,0xb9,0x04,0xee,0x04,0xef,0x04,0xf0,0x04,0xf1,0x04,0xf2,0x04,0xf3,0x04,0xf4,0x04,0xf5,0x04,0xf6,0x04,0xf7,0x04,0xf8,0x04,0xf9,0x04,0xfa,0x04,0xfb,0x04,0xfc,0x04,0xfd,0x04,0xfe,0x04,0xff,0x05,0x00,0x05,0x01,0x05,0x02,0x05,0x03,0x05,0x04,0x05,0x05,0x05,0x06,0x05,0x07,0x05,0x08, +0x05,0x09,0x05,0x0a,0x05,0x0b,0x05,0x0c,0x05,0x0d,0x05,0x0e,0x05,0x0f,0x05,0x10,0x05,0x11,0x05,0x12,0x05,0x13,0x05,0x14,0x05,0x15,0x05,0x16,0x05,0x17,0x05,0x18,0x05,0x19,0x05,0x1a,0x05,0x1b,0x05,0x1c,0x05,0x1d,0x05,0x1e,0x05,0x1f,0x05,0x20,0x05,0x21,0x05,0x22,0x05,0x23,0x05,0x24,0x05,0x25,0x05,0x26,0x05,0x27,0x05,0x28, +0x05,0x29,0x05,0x2a,0x05,0x2b,0x05,0x2c,0x05,0x2d,0x05,0x2e,0x05,0x2f,0x05,0x30,0x05,0x31,0x05,0x32,0x05,0x33,0x05,0x34,0x05,0x35,0x05,0x36,0x05,0x37,0x05,0x38,0x05,0x39,0x05,0x3a,0x05,0x3b,0x05,0x3c,0x05,0x3d,0x05,0x3e,0x05,0x3f,0x05,0x40,0x05,0x41,0x05,0x42,0x05,0x43,0x05,0x44,0x05,0x45,0x05,0x46,0x05,0x47,0x05,0x48, +0x05,0x49,0x05,0x4a,0x05,0x4b,0x05,0x4c,0x05,0x4d,0x05,0x4e,0x05,0x4f,0x05,0x50,0x05,0x51,0x05,0x52,0x05,0x53,0x05,0x54,0x05,0x55,0x05,0x56,0x05,0x57,0x05,0x58,0x05,0x59,0x05,0x5a,0x05,0x5b,0x05,0x5c,0x05,0x5d,0x05,0x5e,0x05,0x5f,0x05,0x60,0x05,0x61,0x05,0x62,0x05,0x63,0x05,0x64,0x05,0x65,0x05,0x66,0x05,0x67,0x05,0x68, +0x05,0x69,0x05,0x6a,0x05,0x6b,0x05,0x6c,0x05,0x6d,0x05,0x6e,0x05,0x6f,0x05,0x70,0x05,0x71,0x05,0x72,0x05,0x73,0x05,0x74,0x05,0x75,0x05,0x76,0x05,0x77,0x05,0x78,0x05,0x79,0x05,0x7a,0x05,0x7b,0x05,0x7c,0x05,0x7d,0x05,0x7e,0x05,0x7f,0x05,0x80,0x05,0x81,0x05,0x82,0x05,0x83,0x05,0x84,0x05,0x85,0x05,0x86,0x05,0x87,0x05,0x88, +0x05,0x89,0x05,0x8a,0x05,0x8b,0x05,0x8c,0x05,0x8d,0x05,0x8e,0x05,0x8f,0x05,0x90,0x05,0x91,0x05,0x92,0x05,0x93,0x05,0x94,0x05,0x95,0x05,0x96,0x05,0x97,0x05,0x98,0x05,0x99,0x05,0x9a,0x05,0x9b,0x05,0x9c,0x05,0x9d,0x05,0x9e,0x05,0x9f,0x05,0xa0,0x05,0xa1,0x05,0xa2,0x05,0xa3,0x05,0xa4,0x05,0xa5,0x05,0xa6,0x05,0xa7,0x05,0xa8, +0x05,0xa9,0x05,0xaa,0x05,0xab,0x05,0xac,0x05,0xad,0x05,0xae,0x05,0xaf,0x05,0xb0,0x05,0xb1,0x05,0xb2,0x05,0xb3,0x05,0xb4,0x05,0xb5,0x05,0xb6,0x05,0xb7,0x05,0xb8,0x05,0xb9,0x05,0xba,0x05,0xbb,0x05,0xbc,0x05,0xbd,0x05,0xbe,0x05,0xbf,0x05,0xc0,0x05,0xc1,0x05,0xc2,0x05,0xc3,0x05,0xc4,0x05,0xc5,0x05,0xc6,0x05,0xc7,0x05,0xc8, +0x05,0xc9,0x05,0xca,0x05,0xcb,0x05,0xcc,0x05,0xcd,0x05,0xce,0x05,0xcf,0x05,0xd0,0x05,0xd1,0x05,0xd2,0x05,0xd3,0x05,0xd4,0x05,0xd5,0x05,0xd6,0x05,0xd7,0x05,0xd8,0x05,0xd9,0x00,0x23,0x00,0x09,0x00,0x88,0x00,0x86,0x00,0x8b,0x00,0x8a,0x00,0x8c,0x00,0x83,0x05,0xda,0x05,0xdb,0x00,0x5f,0x00,0xe8,0x00,0x82,0x05,0xdc,0x00,0xc2, +0x05,0xdd,0x05,0xde,0x05,0xdf,0x05,0xe0,0x05,0xe1,0x05,0xe2,0x05,0xe3,0x05,0xe4,0x05,0xe5,0x05,0xe6,0x05,0xe7,0x05,0xe8,0x05,0xe9,0x05,0xea,0x05,0xeb,0x05,0xec,0x05,0xed,0x05,0xee,0x05,0xef,0x05,0xf0,0x05,0xf1,0x05,0xf2,0x05,0xf3,0x05,0xf4,0x05,0xf5,0x05,0xf6,0x05,0xf7,0x05,0xf8,0x05,0xf9,0x05,0xfa,0x05,0xfb,0x05,0xfc, +0x05,0xfd,0x05,0xfe,0x05,0xff,0x06,0x00,0x06,0x01,0x06,0x02,0x06,0x03,0x06,0x04,0x06,0x05,0x06,0x06,0x06,0x07,0x06,0x08,0x06,0x09,0x06,0x0a,0x06,0x0b,0x06,0x0c,0x06,0x0d,0x06,0x0e,0x06,0x0f,0x06,0x10,0x06,0x11,0x06,0x12,0x06,0x13,0x06,0x14,0x06,0x15,0x06,0x16,0x06,0x17,0x06,0x18,0x06,0x19,0x06,0x1a,0x06,0x1b,0x06,0x1c, +0x06,0x1d,0x06,0x1e,0x06,0x1f,0x06,0x20,0x06,0x21,0x06,0x22,0x06,0x23,0x06,0x24,0x06,0x25,0x06,0x26,0x06,0x27,0x06,0x28,0x06,0x29,0x06,0x2a,0x06,0x2b,0x06,0x2c,0x06,0x2d,0x06,0x2e,0x06,0x2f,0x06,0x30,0x06,0x31,0x06,0x32,0x06,0x33,0x06,0x34,0x06,0x35,0x06,0x36,0x06,0x37,0x06,0x38,0x06,0x39,0x06,0x3a,0x06,0x3b,0x06,0x3c, +0x06,0x3d,0x06,0x3e,0x06,0x3f,0x06,0x40,0x06,0x41,0x06,0x42,0x06,0x43,0x06,0x44,0x06,0x45,0x06,0x46,0x06,0x47,0x06,0x48,0x06,0x49,0x06,0x4a,0x06,0x4b,0x06,0x4c,0x06,0x4d,0x06,0x4e,0x06,0x4f,0x06,0x50,0x06,0x51,0x06,0x52,0x06,0x53,0x06,0x54,0x06,0x55,0x06,0x56,0x06,0x57,0x06,0x58,0x06,0x59,0x06,0x5a,0x06,0x5b,0x06,0x5c, +0x06,0x5d,0x06,0x5e,0x06,0x5f,0x06,0x60,0x06,0x61,0x06,0x62,0x06,0x63,0x06,0x64,0x06,0x65,0x06,0x66,0x06,0x67,0x06,0x68,0x06,0x69,0x06,0x6a,0x06,0x6b,0x06,0x6c,0x06,0x6d,0x06,0x6e,0x06,0x6f,0x06,0x70,0x06,0x71,0x06,0x72,0x06,0x73,0x06,0x74,0x06,0x75,0x06,0x76,0x06,0x77,0x06,0x78,0x06,0x79,0x06,0x7a,0x06,0x7b,0x06,0x7c, +0x06,0x7d,0x06,0x7e,0x06,0x7f,0x06,0x80,0x06,0x81,0x06,0x82,0x06,0x83,0x06,0x84,0x06,0x85,0x06,0x86,0x06,0x87,0x06,0x88,0x06,0x89,0x06,0x8a,0x06,0x8b,0x06,0x8c,0x06,0x8d,0x06,0x8e,0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x00,0x8e,0x00,0xdc,0x00,0x43, +0x00,0x8d,0x00,0xdf,0x00,0xd8,0x00,0xe1,0x00,0xdb,0x00,0xdd,0x00,0xd9,0x00,0xda,0x00,0xde,0x00,0xe0,0x06,0x9a,0x06,0x9b,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0x9f,0x06,0xa0,0x06,0xa1,0x06,0xa2,0x06,0xa3,0x06,0xa4,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x06,0xac,0x06,0xad,0x06,0xae,0x06,0xaf, +0x06,0xb0,0x06,0xb1,0x06,0xb2,0x06,0xb3,0x06,0xb4,0x06,0xb5,0x06,0xb6,0x06,0xb7,0x06,0xb8,0x06,0xb9,0x06,0xba,0x06,0xbb,0x06,0xbc,0x06,0xbd,0x06,0xbe,0x06,0xbf,0x06,0xc0,0x06,0xc1,0x06,0xc2,0x06,0xc3,0x06,0xc4,0x06,0xc5,0x06,0xc6,0x06,0xc7,0x06,0xc8,0x06,0xc9,0x06,0xca,0x06,0xcb,0x06,0xcc,0x06,0xcd,0x06,0xce,0x06,0xcf, +0x06,0xd0,0x06,0xd1,0x06,0xd2,0x06,0xd3,0x06,0xd4,0x06,0xd5,0x06,0xd6,0x06,0xd7,0x06,0xd8,0x06,0xd9,0x06,0xda,0x06,0xdb,0x06,0x41,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x32,0x07, +0x75,0x6e,0x69,0x31,0x45,0x42,0x34,0x07,0x75,0x6e,0x69,0x30,0x31,0x43,0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x34,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x30,0x07, +0x75,0x6e,0x69,0x31,0x45,0x41,0x32,0x07,0x41,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x41,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x41,0x45,0x61,0x63,0x75,0x74,0x65,0x0b,0x43,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0a,0x43,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x44,0x63,0x61,0x72,0x6f,0x6e,0x06,0x44,0x63, +0x72,0x6f,0x61,0x74,0x06,0x45,0x62,0x72,0x65,0x76,0x65,0x06,0x45,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x34,0x0a,0x45,0x64,0x6f,0x74,0x61, +0x63,0x63,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x41,0x07,0x45,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x45,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x75,0x6e,0x69,0x30,0x31,0x39,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x43,0x07,0x75,0x6e,0x69,0x30,0x31,0x46,0x34,0x06,0x47,0x63, +0x61,0x72,0x6f,0x6e,0x0b,0x47,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x31,0x32,0x32,0x0a,0x47,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x04,0x48,0x62,0x61,0x72,0x0b,0x48,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x06,0x49,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x31, +0x45,0x43,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x38,0x07,0x49,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x49,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x06,0x49,0x74,0x69,0x6c,0x64,0x65,0x0b,0x4a,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x31,0x33,0x36,0x06,0x4c,0x61,0x63,0x75,0x74,0x65,0x06,0x4c,0x63, +0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x33,0x42,0x04,0x4c,0x64,0x6f,0x74,0x06,0x4e,0x61,0x63,0x75,0x74,0x65,0x06,0x4e,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x34,0x35,0x03,0x45,0x6e,0x67,0x06,0x4f,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x30,0x07,0x75,0x6e,0x69,0x31,0x45, +0x44,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x34,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x45,0x05,0x4f,0x68,0x6f,0x72,0x6e,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x32, +0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x30,0x0d,0x4f,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x07,0x4f,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x45,0x41,0x0b,0x4f,0x73,0x6c,0x61,0x73,0x68,0x61,0x63,0x75, +0x74,0x65,0x06,0x52,0x61,0x63,0x75,0x74,0x65,0x06,0x52,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x35,0x36,0x06,0x53,0x61,0x63,0x75,0x74,0x65,0x0b,0x53,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x32,0x31,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x39,0x45,0x07,0x75,0x6e,0x69,0x30, +0x31,0x38,0x46,0x04,0x54,0x62,0x61,0x72,0x06,0x54,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x36,0x32,0x07,0x75,0x6e,0x69,0x30,0x32,0x31,0x41,0x06,0x55,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x34,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x36,0x05,0x55,0x68,0x6f,0x72,0x6e,0x07,0x75,0x6e,0x69, +0x31,0x45,0x45,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x45,0x0d,0x55,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x07,0x55,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x55,0x6f,0x67,0x6f,0x6e, +0x65,0x6b,0x05,0x55,0x72,0x69,0x6e,0x67,0x06,0x55,0x74,0x69,0x6c,0x64,0x65,0x06,0x57,0x61,0x63,0x75,0x74,0x65,0x0b,0x57,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x09,0x57,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x06,0x57,0x67,0x72,0x61,0x76,0x65,0x0b,0x59,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07, +0x75,0x6e,0x69,0x31,0x45,0x46,0x34,0x06,0x59,0x67,0x72,0x61,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x36,0x07,0x75,0x6e,0x69,0x30,0x32,0x33,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x38,0x06,0x5a,0x61,0x63,0x75,0x74,0x65,0x0a,0x5a,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x57,0x2e,0x63,0x76,0x30,0x37,0x0b, +0x57,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x30,0x37,0x10,0x57,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x30,0x37,0x0e,0x57,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x63,0x76,0x30,0x37,0x0b,0x57,0x67,0x72,0x61,0x76,0x65,0x2e,0x63,0x76,0x30,0x37,0x06,0x4b,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75, +0x6e,0x69,0x30,0x31,0x33,0x36,0x2e,0x63,0x76,0x30,0x38,0x06,0x51,0x2e,0x63,0x76,0x31,0x36,0x06,0x61,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x46,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x42, +0x35,0x07,0x75,0x6e,0x69,0x30,0x31,0x43,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x35,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x39,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x41, +0x33,0x07,0x61,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x61,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x61,0x65,0x61,0x63,0x75,0x74,0x65,0x0b,0x63,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0a,0x63,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x64,0x63,0x61,0x72,0x6f,0x6e,0x06,0x65,0x62,0x72,0x65,0x76,0x65,0x06,0x65, +0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x46,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x35,0x0a,0x65,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x39, +0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x42,0x07,0x65,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x65,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x44,0x07,0x75,0x6e,0x69,0x30,0x32,0x35,0x39,0x07,0x75,0x6e,0x69,0x30,0x31,0x46,0x35,0x06,0x67,0x63,0x61,0x72,0x6f,0x6e,0x0b,0x67,0x63,0x69,0x72,0x63,0x75,0x6d,0x66, +0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x31,0x32,0x33,0x0a,0x67,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x04,0x68,0x62,0x61,0x72,0x0b,0x68,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x06,0x69,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x30,0x09,0x69,0x2e,0x6c,0x6f,0x63,0x6c,0x54,0x52,0x4b, +0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x39,0x07,0x69,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x69,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x06,0x69,0x74,0x69,0x6c,0x64,0x65,0x07,0x75,0x6e,0x69,0x30,0x32,0x33,0x37,0x0b,0x6a,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30, +0x31,0x33,0x37,0x0c,0x6b,0x67,0x72,0x65,0x65,0x6e,0x6c,0x61,0x6e,0x64,0x69,0x63,0x06,0x6c,0x61,0x63,0x75,0x74,0x65,0x07,0x75,0x6e,0x69,0x30,0x31,0x39,0x42,0x06,0x6c,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x33,0x43,0x04,0x6c,0x64,0x6f,0x74,0x06,0x6e,0x61,0x63,0x75,0x74,0x65,0x0b,0x6e,0x61,0x70,0x6f,0x73, +0x74,0x72,0x6f,0x70,0x68,0x65,0x06,0x6e,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x34,0x36,0x03,0x65,0x6e,0x67,0x06,0x6f,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x39,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x33, +0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x35,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x46,0x05,0x6f,0x68,0x6f,0x72,0x6e,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x44,0x07,0x75, +0x6e,0x69,0x31,0x45,0x44,0x46,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x31,0x0d,0x6f,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x07,0x6f,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x45,0x42,0x0b,0x6f,0x73,0x6c,0x61,0x73,0x68,0x61,0x63,0x75,0x74,0x65,0x06,0x72,0x61,0x63,0x75,0x74,0x65,0x06, +0x72,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x35,0x37,0x06,0x73,0x61,0x63,0x75,0x74,0x65,0x0b,0x73,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x32,0x31,0x39,0x05,0x6c,0x6f,0x6e,0x67,0x73,0x04,0x74,0x62,0x61,0x72,0x06,0x74,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30, +0x31,0x36,0x33,0x07,0x75,0x6e,0x69,0x30,0x32,0x31,0x42,0x06,0x75,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x34,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x38,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x41,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x43,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x36,0x07,0x75,0x6e,0x69,0x31,0x45, +0x45,0x35,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x37,0x05,0x75,0x68,0x6f,0x72,0x6e,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x39,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x46,0x0d,0x75,0x68,0x75,0x6e,0x67,0x61,0x72, +0x75,0x6d,0x6c,0x61,0x75,0x74,0x07,0x75,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x75,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x05,0x75,0x72,0x69,0x6e,0x67,0x06,0x75,0x74,0x69,0x6c,0x64,0x65,0x06,0x77,0x61,0x63,0x75,0x74,0x65,0x0b,0x77,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x09,0x77,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73, +0x06,0x77,0x67,0x72,0x61,0x76,0x65,0x0b,0x79,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x35,0x06,0x79,0x67,0x72,0x61,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x37,0x07,0x75,0x6e,0x69,0x30,0x32,0x33,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x39,0x06,0x7a,0x61,0x63,0x75,0x74, +0x65,0x0a,0x7a,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x0f,0x67,0x65,0x72,0x6d,0x61,0x6e,0x64,0x62,0x6c,0x73,0x2e,0x63,0x61,0x6c,0x74,0x06,0x6c,0x2e,0x63,0x76,0x30,0x31,0x0b,0x6c,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x30,0x31,0x0b,0x6c,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x30,0x31,0x0c,0x75,0x6e,0x69,0x30, +0x31,0x33,0x43,0x2e,0x63,0x76,0x30,0x31,0x09,0x6c,0x64,0x6f,0x74,0x2e,0x63,0x76,0x30,0x31,0x0b,0x6c,0x73,0x6c,0x61,0x73,0x68,0x2e,0x63,0x76,0x30,0x31,0x06,0x74,0x2e,0x63,0x76,0x30,0x32,0x09,0x74,0x62,0x61,0x72,0x2e,0x63,0x76,0x30,0x32,0x0b,0x74,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x30,0x32,0x0c,0x75,0x6e,0x69,0x30, +0x31,0x36,0x33,0x2e,0x63,0x76,0x30,0x32,0x0c,0x75,0x6e,0x69,0x30,0x32,0x31,0x42,0x2e,0x63,0x76,0x30,0x32,0x06,0x67,0x2e,0x63,0x76,0x30,0x33,0x0c,0x75,0x6e,0x69,0x30,0x31,0x46,0x35,0x2e,0x63,0x76,0x30,0x33,0x0b,0x67,0x62,0x72,0x65,0x76,0x65,0x2e,0x63,0x76,0x30,0x33,0x0b,0x67,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x30, +0x33,0x10,0x67,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x30,0x33,0x0c,0x75,0x6e,0x69,0x30,0x31,0x32,0x33,0x2e,0x63,0x76,0x30,0x33,0x0f,0x67,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x63,0x76,0x30,0x33,0x06,0x6a,0x2e,0x63,0x76,0x30,0x34,0x0c,0x75,0x6e,0x69,0x30,0x32,0x33,0x37,0x2e,0x63, +0x76,0x30,0x34,0x10,0x6a,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x30,0x34,0x06,0x6c,0x2e,0x63,0x76,0x30,0x35,0x0b,0x6c,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x30,0x35,0x0b,0x6c,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x30,0x35,0x0c,0x75,0x6e,0x69,0x30,0x31,0x33,0x43,0x2e,0x63,0x76,0x30,0x35, +0x09,0x6c,0x64,0x6f,0x74,0x2e,0x63,0x76,0x30,0x35,0x0b,0x6c,0x73,0x6c,0x61,0x73,0x68,0x2e,0x63,0x76,0x30,0x35,0x06,0x6d,0x2e,0x63,0x76,0x30,0x36,0x06,0x77,0x2e,0x63,0x76,0x30,0x37,0x0b,0x77,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x30,0x37,0x10,0x77,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x30, +0x37,0x0e,0x77,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x63,0x76,0x30,0x37,0x0b,0x77,0x67,0x72,0x61,0x76,0x65,0x2e,0x63,0x76,0x30,0x37,0x06,0x6b,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x31,0x33,0x37,0x2e,0x63,0x76,0x30,0x38,0x11,0x6b,0x67,0x72,0x65,0x65,0x6e,0x6c,0x61,0x6e,0x64,0x69,0x63,0x2e,0x63,0x76, +0x30,0x38,0x06,0x66,0x2e,0x63,0x76,0x30,0x39,0x06,0x72,0x2e,0x63,0x76,0x31,0x30,0x0b,0x72,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x31,0x30,0x0b,0x72,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x31,0x30,0x0c,0x75,0x6e,0x69,0x30,0x31,0x35,0x37,0x2e,0x63,0x76,0x31,0x30,0x06,0x79,0x2e,0x63,0x76,0x31,0x31,0x0b,0x79,0x61,0x63, +0x75,0x74,0x65,0x2e,0x63,0x76,0x31,0x31,0x10,0x79,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x31,0x31,0x0e,0x79,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x31,0x45,0x46,0x35,0x2e,0x63,0x76,0x31,0x31,0x0b,0x79,0x67,0x72,0x61,0x76,0x65,0x2e,0x63,0x76,0x31, +0x31,0x0c,0x75,0x6e,0x69,0x31,0x45,0x46,0x37,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x30,0x32,0x33,0x33,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x31,0x45,0x46,0x39,0x2e,0x63,0x76,0x31,0x31,0x06,0x75,0x2e,0x63,0x76,0x31,0x32,0x0b,0x75,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x31,0x32,0x0b,0x75,0x62,0x72,0x65, +0x76,0x65,0x2e,0x63,0x76,0x31,0x32,0x10,0x75,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x31,0x32,0x0e,0x75,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6e,0x69,0x31,0x45,0x45,0x35,0x2e,0x63,0x76,0x31,0x32,0x0b,0x75,0x67,0x72,0x61,0x76,0x65,0x2e,0x63,0x76,0x31,0x32, +0x0c,0x75,0x6e,0x69,0x31,0x45,0x45,0x37,0x2e,0x63,0x76,0x31,0x32,0x0a,0x75,0x68,0x6f,0x72,0x6e,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6e,0x69,0x31,0x45,0x45,0x39,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6e,0x69,0x31,0x45,0x46,0x31,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6e,0x69,0x31,0x45,0x45,0x42,0x2e,0x63,0x76,0x31,0x32,0x0c, +0x75,0x6e,0x69,0x31,0x45,0x45,0x44,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6e,0x69,0x31,0x45,0x45,0x46,0x2e,0x63,0x76,0x31,0x32,0x12,0x75,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6f,0x67,0x6f,0x6e,0x65, +0x6b,0x2e,0x63,0x76,0x31,0x32,0x0a,0x75,0x72,0x69,0x6e,0x67,0x2e,0x63,0x76,0x31,0x32,0x0b,0x75,0x74,0x69,0x6c,0x64,0x65,0x2e,0x63,0x76,0x31,0x32,0x06,0x66,0x2e,0x63,0x76,0x31,0x37,0x0b,0x66,0x2e,0x63,0x76,0x30,0x39,0x2e,0x73,0x73,0x32,0x30,0x06,0x66,0x2e,0x73,0x73,0x32,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x30,0x07, +0x75,0x6e,0x69,0x30,0x34,0x31,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x31,0x07, +0x75,0x6e,0x69,0x30,0x34,0x31,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x43,0x07, +0x75,0x6e,0x69,0x30,0x34,0x31,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x45,0x07, +0x75,0x6e,0x69,0x30,0x34,0x32,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x43,0x07, +0x75,0x6e,0x69,0x30,0x34,0x32,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x36,0x07, +0x75,0x6e,0x69,0x30,0x34,0x30,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x41,0x07, +0x75,0x6e,0x69,0x30,0x34,0x41,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x45,0x07, +0x75,0x6e,0x69,0x30,0x34,0x45,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x34,0x0c,0x75,0x6e,0x69,0x30,0x34,0x31,0x36,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x31,0x41,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x30, +0x43,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x39,0x41,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x32,0x33,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x30,0x34,0x30,0x45,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x30,0x34,0x32,0x31,0x2e,0x63,0x76,0x39,0x39,0x07,0x75,0x6e,0x69,0x30,0x34, +0x33,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x35,0x07,0x75,0x6e,0x69,0x30,0x34, +0x35,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x42,0x07,0x75,0x6e,0x69,0x30,0x34, +0x33,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x33,0x07,0x75,0x6e,0x69,0x30,0x34, +0x35,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x46,0x07,0x75,0x6e,0x69,0x30,0x34, +0x34,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x44,0x07,0x75,0x6e,0x69,0x30,0x34, +0x35,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x33,0x07,0x75,0x6e,0x69,0x30,0x34, +0x39,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x44,0x07,0x75,0x6e,0x69,0x30,0x34, +0x44,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x35,0x0c,0x75,0x6e,0x69,0x30,0x34,0x35,0x38,0x2e,0x63,0x76,0x30,0x34,0x0c,0x75,0x6e,0x69,0x30,0x34,0x33,0x36,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69, +0x30,0x34,0x33,0x41,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x35,0x43,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x39,0x42,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x34,0x33,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x30,0x34,0x35,0x45,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e, +0x69,0x30,0x34,0x34,0x31,0x2e,0x63,0x76,0x39,0x39,0x05,0x41,0x6c,0x70,0x68,0x61,0x04,0x42,0x65,0x74,0x61,0x05,0x47,0x61,0x6d,0x6d,0x61,0x07,0x75,0x6e,0x69,0x30,0x33,0x39,0x34,0x07,0x45,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x04,0x5a,0x65,0x74,0x61,0x03,0x45,0x74,0x61,0x05,0x54,0x68,0x65,0x74,0x61,0x04,0x49,0x6f,0x74,0x61,0x05, +0x4b,0x61,0x70,0x70,0x61,0x06,0x4c,0x61,0x6d,0x62,0x64,0x61,0x02,0x4d,0x75,0x02,0x4e,0x75,0x02,0x58,0x69,0x07,0x4f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x02,0x50,0x69,0x03,0x52,0x68,0x6f,0x05,0x53,0x69,0x67,0x6d,0x61,0x03,0x54,0x61,0x75,0x07,0x55,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x03,0x50,0x68,0x69,0x03,0x43,0x68,0x69,0x03,0x50, +0x73,0x69,0x07,0x75,0x6e,0x69,0x30,0x33,0x41,0x39,0x0a,0x41,0x6c,0x70,0x68,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x45,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x08,0x45,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x09,0x49,0x6f,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x4f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x74,0x6f,0x6e, +0x6f,0x73,0x0c,0x55,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x4f,0x6d,0x65,0x67,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x49,0x6f,0x74,0x61,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x0f,0x55,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x07,0x75,0x6e,0x69,0x30,0x33,0x43,0x46,0x0a, +0x4b,0x61,0x70,0x70,0x61,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x33,0x43,0x46,0x2e,0x63,0x76,0x30,0x38,0x05,0x61,0x6c,0x70,0x68,0x61,0x04,0x62,0x65,0x74,0x61,0x05,0x67,0x61,0x6d,0x6d,0x61,0x05,0x64,0x65,0x6c,0x74,0x61,0x07,0x65,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x04,0x7a,0x65,0x74,0x61,0x03,0x65,0x74,0x61,0x05, +0x74,0x68,0x65,0x74,0x61,0x04,0x69,0x6f,0x74,0x61,0x05,0x6b,0x61,0x70,0x70,0x61,0x06,0x6c,0x61,0x6d,0x62,0x64,0x61,0x07,0x75,0x6e,0x69,0x30,0x33,0x42,0x43,0x02,0x6e,0x75,0x02,0x78,0x69,0x07,0x6f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x03,0x72,0x68,0x6f,0x07,0x75,0x6e,0x69,0x30,0x33,0x43,0x32,0x05,0x73,0x69,0x67,0x6d,0x61,0x03, +0x74,0x61,0x75,0x07,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x03,0x70,0x68,0x69,0x03,0x63,0x68,0x69,0x03,0x70,0x73,0x69,0x05,0x6f,0x6d,0x65,0x67,0x61,0x09,0x69,0x6f,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x69,0x6f,0x74,0x61,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x11,0x69,0x6f,0x74,0x61,0x64,0x69,0x65,0x72,0x65,0x73,0x69, +0x73,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x0f,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x14,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x6f,0x6d,0x69,0x63,0x72,0x6f,0x6e, +0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x6f,0x6d,0x65,0x67,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x61,0x6c,0x70,0x68,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x65,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x08,0x65,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x07,0x75,0x6e,0x69,0x30,0x33,0x44,0x37,0x07,0x75,0x6e,0x69,0x30,0x33,0x44, +0x35,0x07,0x75,0x6e,0x69,0x30,0x33,0x44,0x36,0x0a,0x6b,0x61,0x70,0x70,0x61,0x2e,0x63,0x76,0x30,0x38,0x0a,0x67,0x61,0x6d,0x6d,0x61,0x2e,0x63,0x76,0x31,0x31,0x0b,0x6c,0x61,0x6d,0x62,0x64,0x61,0x2e,0x63,0x76,0x31,0x31,0x06,0x75,0x31,0x36,0x39,0x31,0x30,0x06,0x75,0x31,0x44,0x35,0x33,0x38,0x06,0x75,0x31,0x44,0x35,0x33,0x39, +0x07,0x75,0x6e,0x69,0x32,0x31,0x30,0x32,0x06,0x75,0x31,0x44,0x35,0x33,0x42,0x06,0x75,0x31,0x44,0x35,0x33,0x43,0x06,0x75,0x31,0x44,0x35,0x33,0x44,0x06,0x75,0x31,0x44,0x35,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x31,0x30,0x44,0x06,0x75,0x31,0x44,0x35,0x34,0x30,0x06,0x75,0x31,0x44,0x35,0x34,0x31,0x06,0x75,0x31,0x44,0x35,0x34, +0x32,0x06,0x75,0x31,0x44,0x35,0x34,0x33,0x06,0x75,0x31,0x44,0x35,0x34,0x34,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x35,0x06,0x75,0x31,0x44,0x35,0x34,0x36,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x39,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x41,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x44,0x06,0x75,0x31,0x44,0x35,0x34,0x41,0x06,0x75,0x31, +0x44,0x35,0x34,0x42,0x06,0x75,0x31,0x44,0x35,0x34,0x43,0x06,0x75,0x31,0x44,0x35,0x34,0x44,0x06,0x75,0x31,0x44,0x35,0x34,0x45,0x06,0x75,0x31,0x44,0x35,0x34,0x46,0x06,0x75,0x31,0x44,0x35,0x35,0x30,0x07,0x75,0x6e,0x69,0x32,0x31,0x32,0x34,0x06,0x75,0x31,0x44,0x35,0x35,0x32,0x06,0x75,0x31,0x44,0x35,0x35,0x33,0x06,0x75,0x31, +0x44,0x35,0x35,0x34,0x06,0x75,0x31,0x44,0x35,0x35,0x35,0x06,0x75,0x31,0x44,0x35,0x35,0x36,0x06,0x75,0x31,0x44,0x35,0x35,0x37,0x06,0x75,0x31,0x44,0x35,0x35,0x38,0x06,0x75,0x31,0x44,0x35,0x35,0x39,0x06,0x75,0x31,0x44,0x35,0x35,0x41,0x06,0x75,0x31,0x44,0x35,0x35,0x42,0x06,0x75,0x31,0x44,0x35,0x35,0x43,0x06,0x75,0x31,0x44, +0x35,0x35,0x44,0x06,0x75,0x31,0x44,0x35,0x35,0x45,0x06,0x75,0x31,0x44,0x35,0x35,0x46,0x06,0x75,0x31,0x44,0x35,0x36,0x30,0x06,0x75,0x31,0x44,0x35,0x36,0x31,0x06,0x75,0x31,0x44,0x35,0x36,0x32,0x06,0x75,0x31,0x44,0x35,0x36,0x33,0x06,0x75,0x31,0x44,0x35,0x36,0x34,0x06,0x75,0x31,0x44,0x35,0x36,0x35,0x06,0x75,0x31,0x44,0x35, +0x36,0x36,0x06,0x75,0x31,0x44,0x35,0x36,0x37,0x06,0x75,0x31,0x44,0x35,0x36,0x38,0x06,0x75,0x31,0x44,0x35,0x36,0x39,0x06,0x75,0x31,0x44,0x35,0x36,0x41,0x06,0x75,0x31,0x44,0x35,0x36,0x42,0x09,0x7a,0x65,0x72,0x6f,0x2e,0x7a,0x65,0x72,0x6f,0x08,0x74,0x77,0x6f,0x2e,0x63,0x76,0x31,0x38,0x08,0x73,0x69,0x78,0x2e,0x63,0x76,0x31, +0x38,0x09,0x6e,0x69,0x6e,0x65,0x2e,0x63,0x76,0x31,0x38,0x0a,0x65,0x69,0x67,0x68,0x74,0x2e,0x63,0x76,0x31,0x39,0x09,0x66,0x69,0x76,0x65,0x2e,0x63,0x76,0x32,0x30,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x30,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x31,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x32,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x33, +0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x34,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x35,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x36,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x37,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x38,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x39,0x09,0x7a,0x65,0x72,0x6f,0x2e,0x64,0x6e,0x6f,0x6d,0x08,0x6f,0x6e,0x65,0x2e,0x64, +0x6e,0x6f,0x6d,0x08,0x74,0x77,0x6f,0x2e,0x64,0x6e,0x6f,0x6d,0x0a,0x74,0x68,0x72,0x65,0x65,0x2e,0x64,0x6e,0x6f,0x6d,0x09,0x66,0x6f,0x75,0x72,0x2e,0x64,0x6e,0x6f,0x6d,0x09,0x66,0x69,0x76,0x65,0x2e,0x64,0x6e,0x6f,0x6d,0x08,0x73,0x69,0x78,0x2e,0x64,0x6e,0x6f,0x6d,0x0a,0x73,0x65,0x76,0x65,0x6e,0x2e,0x64,0x6e,0x6f,0x6d,0x0a, +0x65,0x69,0x67,0x68,0x74,0x2e,0x64,0x6e,0x6f,0x6d,0x09,0x6e,0x69,0x6e,0x65,0x2e,0x64,0x6e,0x6f,0x6d,0x09,0x7a,0x65,0x72,0x6f,0x2e,0x6e,0x75,0x6d,0x72,0x08,0x6f,0x6e,0x65,0x2e,0x6e,0x75,0x6d,0x72,0x08,0x74,0x77,0x6f,0x2e,0x6e,0x75,0x6d,0x72,0x0a,0x74,0x68,0x72,0x65,0x65,0x2e,0x6e,0x75,0x6d,0x72,0x09,0x66,0x6f,0x75,0x72, +0x2e,0x6e,0x75,0x6d,0x72,0x09,0x66,0x69,0x76,0x65,0x2e,0x6e,0x75,0x6d,0x72,0x08,0x73,0x69,0x78,0x2e,0x6e,0x75,0x6d,0x72,0x0a,0x73,0x65,0x76,0x65,0x6e,0x2e,0x6e,0x75,0x6d,0x72,0x0a,0x65,0x69,0x67,0x68,0x74,0x2e,0x6e,0x75,0x6d,0x72,0x09,0x6e,0x69,0x6e,0x65,0x2e,0x6e,0x75,0x6d,0x72,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x30, +0x07,0x75,0x6e,0x69,0x30,0x30,0x42,0x39,0x07,0x75,0x6e,0x69,0x30,0x30,0x42,0x32,0x07,0x75,0x6e,0x69,0x30,0x30,0x42,0x33,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x34,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x35,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x36,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x37,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x38, +0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x39,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x32,0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x36,0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x39,0x2e,0x63,0x76,0x31,0x38,0x0d,0x74,0x77,0x6f,0x2e,0x64,0x6e,0x6f,0x6d,0x2e,0x63,0x76,0x31,0x38,0x0d,0x73,0x69, +0x78,0x2e,0x64,0x6e,0x6f,0x6d,0x2e,0x63,0x76,0x31,0x38,0x0e,0x6e,0x69,0x6e,0x65,0x2e,0x64,0x6e,0x6f,0x6d,0x2e,0x63,0x76,0x31,0x38,0x0d,0x74,0x77,0x6f,0x2e,0x6e,0x75,0x6d,0x72,0x2e,0x63,0x76,0x31,0x38,0x0d,0x73,0x69,0x78,0x2e,0x6e,0x75,0x6d,0x72,0x2e,0x63,0x76,0x31,0x38,0x0e,0x6e,0x69,0x6e,0x65,0x2e,0x6e,0x75,0x6d,0x72, +0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x30,0x30,0x42,0x32,0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x32,0x30,0x37,0x36,0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x32,0x30,0x37,0x39,0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x38,0x2e,0x63,0x76,0x31,0x39,0x0f,0x65,0x69,0x67,0x68,0x74,0x2e, +0x64,0x6e,0x6f,0x6d,0x2e,0x63,0x76,0x31,0x39,0x0f,0x65,0x69,0x67,0x68,0x74,0x2e,0x6e,0x75,0x6d,0x72,0x2e,0x63,0x76,0x31,0x39,0x0c,0x75,0x6e,0x69,0x32,0x30,0x37,0x38,0x2e,0x63,0x76,0x31,0x39,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x35,0x2e,0x63,0x76,0x32,0x30,0x0e,0x66,0x69,0x76,0x65,0x2e,0x64,0x6e,0x6f,0x6d,0x2e,0x63,0x76, +0x32,0x30,0x0e,0x66,0x69,0x76,0x65,0x2e,0x6e,0x75,0x6d,0x72,0x2e,0x63,0x76,0x32,0x30,0x0c,0x75,0x6e,0x69,0x32,0x30,0x37,0x35,0x2e,0x63,0x76,0x32,0x30,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x30,0x2e,0x7a,0x65,0x72,0x6f,0x0e,0x7a,0x65,0x72,0x6f,0x2e,0x64,0x6e,0x6f,0x6d,0x2e,0x7a,0x65,0x72,0x6f,0x0e,0x7a,0x65,0x72,0x6f,0x2e, +0x6e,0x75,0x6d,0x72,0x2e,0x7a,0x65,0x72,0x6f,0x0c,0x75,0x6e,0x69,0x32,0x30,0x37,0x30,0x2e,0x7a,0x65,0x72,0x6f,0x07,0x75,0x6e,0x69,0x30,0x41,0x45,0x41,0x07,0x75,0x6e,0x69,0x32,0x30,0x34,0x35,0x07,0x75,0x6e,0x69,0x32,0x30,0x34,0x36,0x07,0x75,0x6e,0x69,0x32,0x30,0x31,0x36,0x09,0x65,0x78,0x63,0x6c,0x61,0x6d,0x64,0x62,0x6c, +0x07,0x75,0x6e,0x69,0x32,0x30,0x33,0x44,0x0e,0x6f,0x6e,0x65,0x64,0x6f,0x74,0x65,0x6e,0x6c,0x65,0x61,0x64,0x65,0x72,0x07,0x75,0x6e,0x69,0x32,0x30,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x30,0x33,0x46,0x0a,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x63,0x61,0x73,0x65,0x1b,0x70,0x65,0x72,0x69,0x6f,0x64,0x63,0x65,0x6e,0x74,0x65,0x72,0x65, +0x64,0x2e,0x6c,0x6f,0x63,0x6c,0x43,0x41,0x54,0x2e,0x63,0x61,0x73,0x65,0x16,0x70,0x65,0x72,0x69,0x6f,0x64,0x63,0x65,0x6e,0x74,0x65,0x72,0x65,0x64,0x2e,0x6c,0x6f,0x63,0x6c,0x43,0x41,0x54,0x07,0x75,0x6e,0x69,0x46,0x46,0x35,0x42,0x07,0x75,0x6e,0x69,0x46,0x46,0x35,0x44,0x07,0x75,0x6e,0x69,0x32,0x37,0x37,0x30,0x07,0x75,0x6e, +0x69,0x32,0x37,0x36,0x45,0x07,0x75,0x6e,0x69,0x32,0x37,0x37,0x31,0x07,0x75,0x6e,0x69,0x32,0x37,0x36,0x46,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x41,0x07,0x75,0x6e,0x69,0x32,0x37,0x43,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x42,0x07,0x75,0x6e, +0x69,0x32,0x37,0x43,0x36,0x07,0x75,0x6e,0x69,0x32,0x39,0x38,0x37,0x07,0x75,0x6e,0x69,0x32,0x39,0x38,0x38,0x07,0x75,0x6e,0x69,0x30,0x30,0x41,0x44,0x07,0x75,0x6e,0x69,0x32,0x30,0x31,0x30,0x0d,0x71,0x75,0x6f,0x74,0x65,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x64,0x07,0x75,0x6e,0x69,0x32,0x30,0x31,0x46,0x07,0x75,0x6e,0x69,0x32, +0x30,0x33,0x34,0x12,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x19,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x28,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x62, +0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x5f,0x62,0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x62,0x61,0x72,0x2e, +0x6c,0x69,0x67,0x61,0x13,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x1b,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x6c,0x65,0x73,0x73, +0x2e,0x6c,0x69,0x67,0x61,0x15,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x16,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x2e,0x6c,0x69,0x67,0x61,0x18,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x62,0x72,0x61, +0x63,0x65,0x6c,0x65,0x66,0x74,0x2e,0x6c,0x69,0x67,0x61,0x26,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x23,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x65,0x78,0x63, +0x6c,0x61,0x6d,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1c,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x78,0x63,0x6c,0x61,0x6d,0x2e,0x6c,0x69,0x67,0x61,0x12,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x62,0x61, +0x72,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x62,0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x5f,0x62,0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x14,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x6c,0x65,0x66,0x74,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x15,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x6c,0x65, +0x66,0x74,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x1c,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x72,0x69,0x67,0x68,0x74,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x12,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x70,0x65,0x72,0x69,0x6f,0x64,0x2e,0x6c,0x69,0x67,0x61,0x19,0x70,0x65,0x72, +0x69,0x6f,0x64,0x5f,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x70,0x65,0x72,0x69,0x6f,0x64,0x2e,0x6c,0x69,0x67,0x61,0x17,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x14,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x2e,0x6c, +0x69,0x67,0x61,0x11,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x10,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x16,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x16,0x63,0x6f, +0x6c,0x6f,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x13,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1b,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e, +0x6c,0x69,0x67,0x61,0x10,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x12,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x18,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c, +0x6f,0x6e,0x5f,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x22,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x12,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x78,0x63,0x6c, +0x61,0x6d,0x2e,0x6c,0x69,0x67,0x61,0x1d,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x62,0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x11,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x17,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65, +0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x14,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x70,0x65,0x72,0x69,0x6f,0x64,0x2e,0x6c,0x69,0x67,0x61,0x13,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x16,0x71,0x75,0x65,0x73,0x74,0x69,0x6f, +0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x13,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c, +0x69,0x67,0x61,0x1f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x2e,0x6c,0x69,0x67,0x61,0x15,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x13,0x61,0x73,0x74,0x65,0x72,0x69, +0x73,0x6b,0x5f,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61,0x19,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x70,0x61,0x72,0x65,0x6e,0x6c,0x65,0x66,0x74,0x2e,0x6c,0x69,0x67,0x61,0x19,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x2e,0x6c,0x69,0x67, +0x61,0x1b,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x6c,0x65,0x66,0x74,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x16,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x65, +0x78,0x63,0x6c,0x61,0x6d,0x2e,0x6c,0x69,0x67,0x61,0x18,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x25,0x6e, +0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x30,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65, +0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72, +0x65,0x2e,0x6c,0x69,0x67,0x61,0x24,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x5f,0x70,0x61,0x72,0x65,0x6e,0x6c,0x65,0x66,0x74,0x2e,0x6c,0x69,0x67,0x61,0x13,0x73,0x6c,0x61,0x73,0x68,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x2e,0x6c,0x69,0x67,0x61,0x1c, +0x73,0x6c,0x61,0x73,0x68,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x2e,0x6c,0x69,0x67,0x61,0x10,0x73,0x6c,0x61,0x73,0x68,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x16,0x73,0x6c,0x61,0x73,0x68,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e, +0x6c,0x69,0x67,0x61,0x12,0x73,0x6c,0x61,0x73,0x68,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10,0x73,0x6c,0x61,0x73,0x68,0x5f,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61,0x16,0x73,0x6c,0x61,0x73,0x68,0x5f,0x73,0x6c,0x61,0x73,0x68,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x16, +0x73,0x6c,0x61,0x73,0x68,0x5f,0x73,0x6c,0x61,0x73,0x68,0x5f,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61,0x14,0x73,0x6c,0x61,0x73,0x68,0x5f,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61,0x14,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x5f,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61, +0x1e,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x5f,0x62,0x61,0x72,0x5f,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x5f,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x2e,0x6c,0x69,0x67,0x61,0x16,0x65,0x78,0x63,0x6c,0x61, +0x6d,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x73,0x73,0x31,0x39,0x1c,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x73,0x73,0x31,0x39,0x07,0x75,0x6e,0x69,0x32,0x37,0x45,0x38,0x07,0x75,0x6e,0x69,0x32,0x37,0x45,0x41,0x07,0x75, +0x6e,0x69,0x32,0x37,0x45,0x36,0x07,0x75,0x6e,0x69,0x32,0x37,0x45,0x39,0x07,0x75,0x6e,0x69,0x32,0x37,0x45,0x42,0x07,0x75,0x6e,0x69,0x32,0x37,0x45,0x37,0x09,0x61,0x6e,0x6f,0x74,0x65,0x6c,0x65,0x69,0x61,0x07,0x75,0x6e,0x69,0x30,0x33,0x37,0x45,0x06,0x45,0x4d,0x71,0x75,0x61,0x64,0x0e,0x5a,0x45,0x52,0x4f,0x57,0x49,0x44,0x54, +0x48,0x53,0x50,0x41,0x43,0x45,0x07,0x75,0x6e,0x69,0x30,0x30,0x41,0x30,0x02,0x43,0x52,0x07,0x75,0x6e,0x69,0x46,0x45,0x46,0x46,0x07,0x75,0x6e,0x69,0x32,0x30,0x42,0x46,0x04,0x64,0x6f,0x6e,0x67,0x04,0x45,0x75,0x72,0x6f,0x07,0x75,0x6e,0x69,0x32,0x30,0x42,0x34,0x07,0x75,0x6e,0x69,0x32,0x30,0x42,0x44,0x07,0x75,0x6e,0x69,0x32, +0x30,0x41,0x45,0x09,0x63,0x65,0x6e,0x74,0x2e,0x63,0x76,0x31,0x34,0x0b,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x2e,0x63,0x76,0x31,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x34,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x33,0x35,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x43,0x07,0x75,0x6e,0x69,0x32,0x32,0x43,0x38,0x07,0x75,0x6e,0x69,0x32,0x32,0x31, +0x39,0x07,0x75,0x6e,0x69,0x32,0x32,0x35,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x31,0x09,0x63,0x6f,0x6e,0x67,0x72,0x75,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x31,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x41,0x07,0x75,0x6e,0x69,0x32,0x32,0x43,0x45,0x07,0x75,0x6e,0x69,0x32,0x32,0x43,0x34,0x07,0x75,0x6e,0x69,0x32, +0x32,0x32,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x31,0x35,0x07,0x75,0x6e,0x69,0x32,0x32,0x32,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x33,0x38,0x07,0x75,0x6e,0x69,0x32,0x32,0x44,0x30,0x07,0x75,0x6e,0x69,0x32,0x32,0x46,0x31,0x07,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x41,0x07,0x75,0x6e,0x69,0x32, +0x32,0x45,0x45,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x45,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x43,0x0b,0x65,0x71,0x75,0x69,0x76,0x61,0x6c,0x65,0x6e,0x63,0x65,0x07,0x75,0x6e,0x69,0x32,0x32,0x34,0x44,0x07,0x75,0x6e,0x69,0x32,0x32,0x33,0x39,0x0b,0x65,0x78,0x69,0x73,0x74,0x65,0x6e,0x74,0x69,0x61,0x6c,0x08,0x67,0x72,0x61,0x64, +0x69,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x39,0x34,0x41,0x07,0x75,0x6e,0x69,0x32,0x37,0x44,0x43,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x37,0x07,0x75,0x6e,0x69, +0x32,0x32,0x43,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x32,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x31,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x32,0x07,0x75,0x6e,0x69,0x32,0x32,0x45,0x46,0x07,0x75,0x6e,0x69,0x32,0x32,0x31,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x42,0x07,0x75,0x6e,0x69, +0x32,0x32,0x36,0x41,0x07,0x75,0x6e,0x69,0x32,0x32,0x42,0x38,0x07,0x75,0x6e,0x69,0x32,0x32,0x38,0x45,0x07,0x75,0x6e,0x69,0x32,0x41,0x30,0x30,0x07,0x75,0x6e,0x69,0x32,0x41,0x30,0x35,0x07,0x75,0x6e,0x69,0x32,0x41,0x30,0x36,0x07,0x75,0x6e,0x69,0x32,0x32,0x42,0x43,0x07,0x75,0x6e,0x69,0x32,0x32,0x43,0x32,0x07,0x75,0x6e,0x69, +0x32,0x32,0x43,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x34,0x37,0x07,0x75,0x6e,0x69,0x32,0x32,0x38,0x38,0x07,0x75,0x6e,0x69,0x32,0x32,0x38,0x39,0x07,0x75,0x6e,0x69,0x32,0x32,0x42,0x44,0x07,0x75,0x6e,0x69,0x32,0x32,0x42,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x34,0x39,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x43,0x0a,0x6e,0x6f,0x74, +0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x44,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x46,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x31,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x32,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x45,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x30,0x07,0x75,0x6e,0x69,0x32,0x32,0x45,0x32,0x09, +0x6e,0x6f,0x74,0x73,0x75,0x62,0x73,0x65,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x38,0x35,0x08,0x65,0x6d,0x70,0x74,0x79,0x73,0x65,0x74,0x0a,0x6c,0x6f,0x67,0x69,0x63,0x61,0x6c,0x61,0x6e,0x64,0x09,0x6c,0x6f,0x67,0x69,0x63,0x61,0x6c,0x6f,0x72,0x0c,0x69,0x6e,0x74,0x65,0x72,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x05,0x75,0x6e,0x69, +0x6f,0x6e,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x36,0x07,0x75,0x6e,0x69,0x30,0x30,0x42,0x35,0x07,0x75,0x6e,0x69,0x32,0x32,0x32,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x43,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x46,0x07,0x75,0x6e,0x69,0x32,0x33, +0x41,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x45,0x07,0x75,0x6e,0x69,0x46,0x45,0x36,0x32,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x41,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x41,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x43,0x07,0x75,0x6e,0x69,0x32,0x32,0x33,0x37,0x07,0x75,0x6e,0x69,0x32,0x32,0x35,0x46,0x07,0x75,0x6e,0x69,0x32,0x32, +0x33,0x36,0x0c,0x72,0x65,0x66,0x6c,0x65,0x78,0x73,0x75,0x62,0x73,0x65,0x74,0x0e,0x72,0x65,0x66,0x6c,0x65,0x78,0x73,0x75,0x70,0x65,0x72,0x73,0x65,0x74,0x07,0x75,0x6e,0x69,0x32,0x39,0x31,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x43,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x42,0x07,0x75, +0x6e,0x69,0x32,0x32,0x43,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x32,0x07,0x75,0x6e,0x69,0x32,0x32,0x35,0x37,0x07,0x75,0x6e,0x69,0x32,0x32,0x31,0x38,0x07,0x73,0x69,0x6d,0x69,0x6c,0x61,0x72,0x07,0x75, +0x6e,0x69,0x32,0x32,0x39,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x31,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x46,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x45,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x30,0x07,0x75,0x6e,0x69,0x32,0x32,0x38,0x46,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x31,0x07,0x75, +0x6e,0x69,0x32,0x32,0x39,0x30,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x32,0x07,0x75,0x6e,0x69,0x32,0x32,0x43,0x36,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x33,0x0c,0x70,0x72,0x6f,0x70,0x65,0x72,0x73,0x75,0x62,0x73,0x65,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x42,0x08,0x73,0x75,0x63,0x68,0x74,0x68,0x61,0x74,0x07,0x75,0x6e,0x69, +0x32,0x31,0x34,0x30,0x0e,0x70,0x72,0x6f,0x70,0x65,0x72,0x73,0x75,0x70,0x65,0x72,0x73,0x65,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x34,0x09,0x74,0x68,0x65,0x72,0x65,0x66,0x6f,0x72,0x65,0x07,0x75,0x6e,0x69,0x32,0x32,0x34,0x42,0x09,0x75,0x6e, +0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x07,0x75,0x6e,0x69,0x32,0x32,0x46,0x30,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x35,0x07,0x75,0x6e,0x69,0x32,0x32,0x42,0x42,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x42,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x44,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x43,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x38,0x07, +0x75,0x6e,0x69,0x32,0x32,0x39,0x36,0x0e,0x63,0x69,0x72,0x63,0x6c,0x65,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x79,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x39,0x0a,0x63,0x69,0x72,0x63,0x6c,0x65,0x70,0x6c,0x75,0x73,0x07,0x61,0x72,0x72,0x6f,0x77,0x75,0x70,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x37,0x0a,0x61,0x72,0x72,0x6f,0x77,0x72, +0x69,0x67,0x68,0x74,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x38,0x09,0x61,0x72,0x72,0x6f,0x77,0x64,0x6f,0x77,0x6e,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x39,0x09,0x61,0x72,0x72,0x6f,0x77,0x6c,0x65,0x66,0x74,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x36,0x09,0x61,0x72,0x72,0x6f,0x77,0x62,0x6f,0x74,0x68,0x09,0x61,0x72,0x72,0x6f,0x77, +0x75,0x70,0x64,0x6e,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x44,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x44,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x45,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x30,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x32,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x33,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x35,0x07,0x75,0x6e,0x69, +0x32,0x31,0x41,0x36,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x37,0x07,0x75,0x6e,0x69,0x32,0x31,0x45,0x35,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x39,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x41,0x07,0x75,0x6e,0x69,0x32,0x31,0x42,0x45,0x07,0x75,0x6e,0x69,0x32,0x31,0x43,0x39,0x0a,0x61,0x72,0x72,0x6f,0x77,0x64,0x62,0x6c,0x75,0x70,0x0d, +0x61,0x72,0x72,0x6f,0x77,0x64,0x62,0x6c,0x72,0x69,0x67,0x68,0x74,0x0c,0x61,0x72,0x72,0x6f,0x77,0x64,0x62,0x6c,0x64,0x6f,0x77,0x6e,0x0c,0x61,0x72,0x72,0x6f,0x77,0x64,0x62,0x6c,0x6c,0x65,0x66,0x74,0x0c,0x61,0x72,0x72,0x6f,0x77,0x64,0x62,0x6c,0x62,0x6f,0x74,0x68,0x07,0x75,0x6e,0x69,0x32,0x31,0x44,0x42,0x07,0x75,0x6e,0x69, +0x32,0x31,0x45,0x37,0x07,0x75,0x6e,0x69,0x32,0x31,0x45,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x34,0x07,0x75,0x6e,0x69,0x32,0x33,0x32,0x34,0x07,0x75,0x6e,0x69,0x32,0x37,0x39,0x34,0x07,0x75,0x6e,0x69,0x32,0x37,0x39,0x43,0x07,0x75,0x6e,0x69,0x32,0x37,0x39,0x44,0x07,0x75,0x6e,0x69,0x32,0x37,0x39,0x45,0x07,0x75,0x6e,0x69, +0x32,0x37,0x46,0x35,0x07,0x75,0x6e,0x69,0x32,0x37,0x46,0x36,0x07,0x75,0x6e,0x69,0x32,0x37,0x46,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x33,0x07,0x64,0x6e,0x62,0x6c,0x6f,0x63,0x6b,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x35,0x07,0x75,0x6e,0x69, +0x32,0x35,0x38,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x37,0x05,0x62,0x6c,0x6f,0x63,0x6b,0x07,0x75,0x70,0x62,0x6c,0x6f,0x63,0x6b,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x44,0x07,0x6c,0x66,0x62,0x6c,0x6f, +0x63,0x6b,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x39,0x07,0x72,0x74,0x62,0x6c,0x6f,0x63,0x6b,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x37,0x07,0x75,0x6e,0x69,0x32,0x35, +0x39,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x46,0x07,0x6c,0x74,0x73,0x68,0x61, +0x64,0x65,0x05,0x73,0x68,0x61,0x64,0x65,0x07,0x64,0x6b,0x73,0x68,0x61,0x64,0x65,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x46,0x06,0x63,0x69,0x72,0x63,0x6c,0x65,0x07,0x75,0x6e,0x69,0x32,0x35,0x45,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x44,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x44,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x46,0x36,0x07, +0x75,0x6e,0x69,0x32,0x35,0x43,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x45,0x0a,0x6f,0x70,0x65,0x6e,0x62,0x75,0x6c,0x6c,0x65,0x74,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x38,0x09,0x66,0x69,0x6c,0x6c,0x65, +0x64,0x62,0x6f,0x78,0x07,0x75,0x6e,0x69,0x32,0x35,0x41,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x41,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x41,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x45,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x45,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x45,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x45,0x41,0x07,0x75,0x6e,0x69, +0x32,0x35,0x45,0x42,0x07,0x74,0x72,0x69,0x61,0x67,0x75,0x70,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x36,0x07,0x74,0x72,0x69,0x61,0x67,0x64,0x6e,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x44,0x07,0x75,0x6e,0x69, +0x32,0x35,0x43,0x31,0x07,0x74,0x72,0x69,0x61,0x67,0x72,0x74,0x07,0x74,0x72,0x69,0x61,0x67,0x6c,0x66,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x45,0x07,0x75,0x6e,0x69, +0x32,0x35,0x43,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x34,0x07,0x75,0x6e,0x69, +0x32,0x35,0x35,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x30,0x07,0x75,0x6e,0x69, +0x32,0x35,0x36,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x46,0x07,0x75,0x6e,0x69, +0x32,0x35,0x34,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x34,0x07,0x75,0x6e,0x69, +0x32,0x35,0x35,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x46,0x07,0x75,0x6e,0x69, +0x32,0x35,0x30,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x37,0x07,0x75,0x6e,0x69, +0x32,0x35,0x37,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x42,0x07,0x75,0x6e,0x69, +0x32,0x35,0x32,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x41,0x07,0x75,0x6e,0x69, +0x32,0x35,0x34,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x31,0x07,0x75,0x6e,0x69, +0x32,0x35,0x34,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x34,0x07,0x75,0x6e,0x69, +0x32,0x35,0x37,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x44,0x07,0x75,0x6e,0x69, +0x32,0x35,0x33,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x36,0x07,0x75,0x6e,0x69, +0x32,0x35,0x32,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x38,0x07,0x75,0x6e,0x69, +0x32,0x35,0x35,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x36,0x07,0x75,0x6e,0x69, +0x32,0x35,0x34,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x42,0x07,0x75,0x6e,0x69, +0x32,0x35,0x35,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x46,0x07,0x75,0x6e,0x69, +0x32,0x35,0x32,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x36,0x07,0x75,0x6e,0x69, +0x32,0x33,0x34,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x46,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x43,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x41,0x07,0x75,0x6e,0x69, +0x32,0x33,0x36,0x32,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x32,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x31,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x36,0x07,0x75,0x6e,0x69, +0x32,0x33,0x34,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x37,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x34,0x07,0x75,0x6e,0x69, +0x32,0x33,0x35,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x37,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x32,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x43,0x07,0x75,0x6e,0x69, +0x32,0x33,0x36,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x34,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x37,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x43,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x38,0x07,0x75,0x6e,0x69, +0x32,0x33,0x34,0x34,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x37,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x46,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x31,0x07,0x75,0x6e,0x69, +0x32,0x33,0x35,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x34,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x46,0x07,0x75,0x6e,0x69, +0x32,0x33,0x33,0x37,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x32,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x31,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x35,0x07,0x75,0x6e,0x69, +0x32,0x33,0x35,0x31,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x46,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x43,0x07,0x75,0x6e,0x69,0x32,0x36,0x38,0x37,0x07,0x75,0x6e,0x69,0x32,0x36,0x41,0x30,0x07,0x75,0x6e,0x69,0x32,0x36,0x41,0x31,0x07,0x75,0x6e,0x69,0x32,0x37,0x31,0x33,0x07,0x75,0x6e,0x69,0x32,0x37,0x31,0x35,0x07,0x75,0x6e,0x69, +0x32,0x37,0x31,0x37,0x07,0x75,0x6e,0x69,0x32,0x37,0x33,0x36,0x12,0x61,0x63,0x6b,0x6e,0x6f,0x77,0x6c,0x65,0x64,0x67,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x10,0x62,0x61,0x63,0x6b,0x73,0x70,0x61,0x63,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x06,0x6d,0x69,0x6e,0x75,0x74,0x65,0x06,0x73,0x65,0x63,0x6f,0x6e,0x64,0x07,0x75, +0x6e,0x69,0x32,0x31,0x31,0x33,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x36,0x09,0x65,0x73,0x74,0x69,0x6d,0x61,0x74,0x65,0x64,0x0b,0x62,0x65,0x6c,0x6c,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x34,0x32,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x38,0x42,0x0d,0x63,0x61,0x6e,0x63,0x65,0x6c,0x63,0x6f,0x6e,0x74,0x72, +0x6f,0x6c,0x15,0x63,0x61,0x72,0x72,0x69,0x61,0x67,0x65,0x52,0x65,0x74,0x75,0x72,0x6e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x31,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x31,0x46,0x07,0x75,0x6e,0x69,0x32,0x33,0x31,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x31,0x43, +0x15,0x64,0x61,0x74,0x61,0x4c,0x69,0x6e,0x6b,0x45,0x73,0x63,0x61,0x70,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0d,0x64,0x65,0x6c,0x65,0x74,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x18,0x64,0x65,0x76,0x69,0x63,0x65,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x46,0x6f,0x75,0x72,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x17,0x64,0x65, +0x76,0x69,0x63,0x65,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x4f,0x6e,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x19,0x64,0x65,0x76,0x69,0x63,0x65,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x54,0x68,0x72,0x65,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x17,0x64,0x65,0x76,0x69,0x63,0x65,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x54,0x77,0x6f, +0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x33,0x38,0x41,0x12,0x65,0x6e,0x64,0x4f,0x66,0x4d,0x65,0x64,0x69,0x75,0x6d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x10,0x65,0x6e,0x64,0x4f,0x66,0x54,0x65,0x78,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x18,0x65,0x6e,0x64,0x4f,0x66,0x54,0x72,0x61,0x6e,0x73,0x6d,0x69, +0x73,0x73,0x69,0x6f,0x6e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x1d,0x65,0x6e,0x64,0x4f,0x66,0x54,0x72,0x61,0x6e,0x73,0x6d,0x69,0x73,0x73,0x69,0x6f,0x6e,0x42,0x6c,0x6f,0x63,0x6b,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0e,0x65,0x6e,0x71,0x75,0x69,0x72,0x79,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0d,0x65,0x73,0x63,0x61,0x70,0x65, +0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x14,0x66,0x69,0x6c,0x65,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0f,0x66,0x6f,0x72,0x6d,0x46,0x65,0x65,0x64,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x15,0x67,0x72,0x6f,0x75,0x70,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x63,0x6f,0x6e,0x74,0x72, +0x6f,0x6c,0x1b,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x54,0x61,0x62,0x75,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x33,0x38,0x39,0x05,0x68,0x6f,0x75,0x73,0x65,0x07,0x75,0x6e,0x69,0x32,0x31,0x45,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x32,0x42,0x07,0x75,0x6e,0x69, +0x32,0x33,0x32,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x32,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x32,0x35,0x07,0x75,0x6e,0x69,0x32,0x31,0x44,0x46,0x07,0x75,0x6e,0x69,0x32,0x31,0x44,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x31,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x43,0x45,0x0f,0x6c,0x69,0x6e,0x65,0x46,0x65,0x65,0x64,0x63,0x6f,0x6e, +0x74,0x72,0x6f,0x6c,0x1a,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x41,0x63,0x6b,0x6e,0x6f,0x77,0x6c,0x65,0x64,0x67,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0b,0x6e,0x75,0x6c,0x6c,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x33, +0x46,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x46,0x43,0x07,0x75,0x6e,0x69,0x32,0x42,0x35,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x46,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x46,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x35,0x16,0x72,0x65,0x63,0x6f,0x72,0x64,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x63,0x6f,0x6e,0x74,0x72,0x6f, +0x6c,0x0b,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x0e,0x73,0x68,0x69,0x66,0x74,0x49,0x6e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0f,0x73,0x68,0x69,0x66,0x74,0x4f,0x75,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0c,0x73,0x70,0x61,0x63,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x15,0x73,0x74,0x61,0x72,0x74,0x4f, +0x66,0x48,0x65,0x61,0x64,0x69,0x6e,0x67,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x12,0x73,0x74,0x61,0x72,0x74,0x4f,0x66,0x54,0x65,0x78,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x11,0x73,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x16,0x73,0x79,0x6e,0x63,0x68,0x72,0x6f,0x6e,0x6f,0x75,0x73, +0x49,0x64,0x6c,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x31,0x38,0x42,0x07,0x75,0x6e,0x69,0x32,0x31,0x38,0x41,0x14,0x75,0x6e,0x69,0x74,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x19,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x54,0x61,0x62,0x75,0x6c,0x61,0x74, +0x69,0x6f,0x6e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0e,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x2e,0x63,0x76,0x31,0x35,0x07,0x75,0x6e,0x69,0x30,0x32,0x46,0x33,0x07,0x75,0x6e,0x69,0x30,0x32,0x46,0x37,0x18,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76, +0x31,0x34,0x15,0x6c,0x65,0x73,0x73,0x5f,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76,0x31,0x34,0x1d,0x6c,0x65,0x73,0x73,0x5f,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76,0x31,0x34,0x1d,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64, +0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76,0x31,0x35,0x27,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76,0x31,0x35,0x19,0x61,0x6d,0x70, +0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76,0x31,0x35,0x12,0x61,0x74,0x5f,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x2e,0x6c,0x69,0x67,0x61,0x18,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x2e,0x6c,0x69, +0x67,0x61,0x22,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x2e,0x6c,0x69,0x67,0x61,0x14,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x62,0x61,0x72,0x5f,0x68, +0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x17,0x62,0x61,0x72,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x13,0x62,0x61,0x72,0x5f,0x62,0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x15,0x62,0x61,0x72,0x5f,0x62,0x72,0x61,0x63,0x6b, +0x65,0x74,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x0c,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x13,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x10,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x18,0x62, +0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x12,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x14,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0e, +0x62,0x61,0x72,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x16,0x62,0x61,0x72,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10,0x62,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x13,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x5f,0x67,0x72, +0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0e,0x70,0x6c,0x75,0x73,0x5f,0x70,0x6c,0x75,0x73,0x2e,0x6c,0x69,0x67,0x61,0x13,0x70,0x6c,0x75,0x73,0x5f,0x70,0x6c,0x75,0x73,0x5f,0x70,0x6c,0x75,0x73,0x2e,0x6c,0x69,0x67,0x61,0x11,0x70,0x6c,0x75,0x73,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10, +0x65,0x71,0x75,0x61,0x6c,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x16,0x65,0x71,0x75,0x61,0x6c,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x17,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x10, +0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x16,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x18,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61, +0x12,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x14,0x65,0x71,0x75,0x61,0x6c,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c, +0x69,0x67,0x61,0x16,0x65,0x71,0x75,0x61,0x6c,0x5f,0x73,0x6c,0x61,0x73,0x68,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x13,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1b,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72, +0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x19,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x12,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x12,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f, +0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x14,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x1b,0x67,0x72,0x65,0x61,0x74, +0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x1c,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65, +0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x17,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x14,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70, +0x68,0x65,0x6e,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x18,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x6c,0x65,0x73,0x73, +0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x14,0x6c,0x65,0x73,0x73,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x1e,0x6c,0x65,0x73,0x73,0x5f,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x12, +0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0d,0x6c,0x65,0x73,0x73,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x11,0x6c,0x65,0x73,0x73, +0x5f,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6c,0x65,0x73,0x73,0x5f,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6c,0x65,0x73,0x73,0x5f,0x62,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10,0x6c,0x65,0x73,0x73,0x5f,0x64, +0x6f,0x6c,0x6c,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x18,0x6c,0x65,0x73,0x73,0x5f,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x22,0x6c,0x65,0x73,0x73,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65, +0x6e,0x2e,0x6c,0x69,0x67,0x61,0x0e,0x6c,0x65,0x73,0x73,0x5f,0x70,0x6c,0x75,0x73,0x2e,0x6c,0x69,0x67,0x61,0x16,0x6c,0x65,0x73,0x73,0x5f,0x70,0x6c,0x75,0x73,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x13,0x6c,0x65,0x73, +0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x1d,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e, +0x6c,0x69,0x67,0x61,0x17,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x14,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x11,0x6c,0x65,0x73,0x73,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c, +0x69,0x67,0x61,0x0e,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x14,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x13,0x6c,0x65, +0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x19,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x2e,0x6c,0x69,0x67,0x61,0x14,0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x2e,0x6c,0x69,0x67,0x61, +0x1c,0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x1f,0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x6c,0x65, +0x73,0x73,0x5f,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61,0x17,0x6c,0x65,0x73,0x73,0x5f,0x73,0x6c,0x61,0x73,0x68,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x16,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x12,0x61,0x73,0x63, +0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x61,0x74,0x2e,0x6c,0x69,0x67,0x61,0x17,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x2e,0x6c,0x69, +0x67,0x61,0x22,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x16,0x61,0x73,0x63,0x69,0x69,0x63,0x69,0x72,0x63,0x75,0x6d,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x15,0x65,0x71,0x75, +0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x73,0x73,0x31,0x39,0x1b,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x73,0x73,0x31,0x39,0x07,0x75,0x6e,0x69,0x32,0x36,0x36,0x44,0x07,0x75,0x6e,0x69,0x32,0x36,0x36,0x46,0x07,0x75, +0x6e,0x69,0x30,0x33,0x37,0x34,0x07,0x75,0x6e,0x69,0x30,0x33,0x37,0x35,0x07,0x75,0x6e,0x69,0x30,0x32,0x42,0x43,0x07,0x75,0x6e,0x69,0x30,0x32,0x42,0x41,0x07,0x75,0x6e,0x69,0x30,0x32,0x43,0x39,0x07,0x75,0x6e,0x69,0x30,0x32,0x42,0x39,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x38,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x37,0x09,0x67, +0x72,0x61,0x76,0x65,0x63,0x6f,0x6d,0x62,0x09,0x61,0x63,0x75,0x74,0x65,0x63,0x6f,0x6d,0x62,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x42,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x43,0x2e,0x61,0x6c,0x74,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x43,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x07,0x75, +0x6e,0x69,0x30,0x33,0x30,0x41,0x09,0x74,0x69,0x6c,0x64,0x65,0x63,0x6f,0x6d,0x62,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x34,0x0d,0x68,0x6f,0x6f,0x6b,0x61,0x62,0x6f,0x76,0x65,0x63,0x6f,0x6d,0x62,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x46,0x07,0x75,0x6e,0x69,0x30,0x33,0x31,0x32,0x07,0x75,0x6e,0x69,0x30,0x33,0x31,0x42,0x0c,0x64, +0x6f,0x74,0x62,0x65,0x6c,0x6f,0x77,0x63,0x6f,0x6d,0x62,0x07,0x75,0x6e,0x69,0x30,0x33,0x32,0x35,0x07,0x75,0x6e,0x69,0x30,0x33,0x32,0x36,0x07,0x75,0x6e,0x69,0x30,0x33,0x32,0x37,0x07,0x75,0x6e,0x69,0x30,0x33,0x32,0x38,0x07,0x75,0x6e,0x69,0x30,0x33,0x33,0x36,0x07,0x75,0x6e,0x69,0x30,0x33,0x33,0x37,0x07,0x75,0x6e,0x69,0x30, +0x33,0x33,0x38,0x0b,0x75,0x6e,0x69,0x30,0x33,0x32,0x36,0x2e,0x61,0x6c,0x74,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x38,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x37,0x2e,0x63,0x61,0x73,0x65,0x0e,0x67,0x72,0x61,0x76,0x65,0x63,0x6f,0x6d,0x62,0x2e,0x63,0x61,0x73,0x65,0x0e,0x61,0x63,0x75,0x74,0x65,0x63,0x6f, +0x6d,0x62,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x42,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x43,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30, +0x33,0x30,0x41,0x2e,0x63,0x61,0x73,0x65,0x0e,0x74,0x69,0x6c,0x64,0x65,0x63,0x6f,0x6d,0x62,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x34,0x2e,0x63,0x61,0x73,0x65,0x12,0x68,0x6f,0x6f,0x6b,0x61,0x62,0x6f,0x76,0x65,0x63,0x6f,0x6d,0x62,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x46,0x2e, +0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x31,0x31,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x31,0x32,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x31,0x42,0x2e,0x63,0x61,0x73,0x65,0x11,0x64,0x6f,0x74,0x62,0x65,0x6c,0x6f,0x77,0x63,0x6f,0x6d,0x62,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e, +0x69,0x30,0x33,0x32,0x34,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x32,0x36,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x32,0x37,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x32,0x38,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x32,0x45,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75, +0x6e,0x69,0x30,0x33,0x33,0x31,0x2e,0x63,0x61,0x73,0x65,0x0d,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x63,0x61,0x73,0x65,0x0e,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x63,0x61,0x73,0x65,0x0a,0x67,0x72,0x61,0x76,0x65,0x2e,0x63,0x61,0x73,0x65,0x0a,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x61,0x73,0x65,0x11,0x68, +0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x2e,0x63,0x61,0x73,0x65,0x0f,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x61,0x73,0x65,0x0a,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x61,0x73,0x65,0x0a,0x62,0x72,0x65,0x76,0x65,0x2e,0x63,0x61,0x73,0x65,0x09,0x72,0x69,0x6e,0x67,0x2e,0x63,0x61,0x73,0x65, +0x0a,0x74,0x69,0x6c,0x64,0x65,0x2e,0x63,0x61,0x73,0x65,0x0b,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x2e,0x63,0x61,0x73,0x65,0x05,0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x74,0x6f,0x6e,0x6f,0x73,0x2e,0x63,0x61,0x73,0x65,0x0d,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x74,0x6f,0x6e,0x6f,0x73,0x0b,0x62,0x72,0x65,0x76,0x65,0x63,0x6f,0x6d,0x62, +0x63,0x79,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x31,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x30,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x39,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x33,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x31,0x0b,0x75, +0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x30,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x39,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x33,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x31,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x30,0x2e, +0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x39,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x33,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x31,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30, +0x33,0x30,0x30,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x39,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x33,0x2e,0x63,0x61,0x73,0x65,0x07,0x75,0x6e,0x69,0x45,0x30,0x41,0x30,0x07,0x75,0x6e,0x69,0x45,0x30,0x41,0x31,0x07,0x75,0x6e,0x69,0x45,0x30, +0x41,0x32,0x07,0x75,0x6e,0x69,0x45,0x30,0x42,0x30,0x07,0x75,0x6e,0x69,0x45,0x30,0x42,0x31,0x07,0x75,0x6e,0x69,0x45,0x30,0x42,0x32,0x07,0x75,0x6e,0x69,0x45,0x30,0x42,0x33,0x0e,0x69,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x64,0x6f,0x74,0x6c,0x65,0x73,0x73,0x10,0x69,0x64,0x6f,0x74,0x62,0x65,0x6c,0x6f,0x77,0x64,0x6f,0x74,0x6c,0x65, +0x73,0x73,0x04,0x4e,0x55,0x4c,0x4c,0x03,0x53,0x50,0x43,0x00,0x00,0x01,0x00,0x01,0xff,0xff,0x00,0x0f,0x00,0x01,0x00,0x02,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xe0,0x00,0x02,0x00,0x4d,0x00,0x01,0x00,0x5d,0x00,0x01,0x00,0x5f,0x00,0x78,0x00,0x01,0x00,0x7a,0x00,0x7a,0x00,0x01,0x00,0x7c,0x00,0x86,0x00,0x01,0x00,0x89, +0x00,0xdd,0x00,0x01,0x00,0xe1,0x00,0xf2,0x00,0x01,0x00,0xf4,0x00,0xfc,0x00,0x01,0x00,0xfe,0x01,0x14,0x00,0x01,0x01,0x16,0x01,0x1f,0x00,0x01,0x01,0x21,0x01,0x3b,0x00,0x01,0x01,0x3d,0x01,0x49,0x00,0x01,0x01,0x4c,0x01,0x7c,0x00,0x01,0x01,0x7e,0x01,0xc2,0x00,0x01,0x01,0xc4,0x01,0xc5,0x00,0x01,0x01,0xc8,0x01,0xc8,0x00,0x01, +0x01,0xca,0x01,0xcc,0x00,0x01,0x01,0xcf,0x01,0xd6,0x00,0x01,0x01,0xd8,0x01,0xda,0x00,0x01,0x01,0xdc,0x01,0xe0,0x00,0x01,0x01,0xe2,0x01,0xe3,0x00,0x01,0x01,0xe9,0x01,0xea,0x00,0x01,0x01,0xed,0x01,0xf2,0x00,0x01,0x01,0xf4,0x01,0xf5,0x00,0x01,0x01,0xf7,0x01,0xfd,0x00,0x01,0x01,0xff,0x02,0x02,0x00,0x01,0x02,0x04,0x02,0x04, +0x00,0x01,0x02,0x06,0x02,0x0a,0x00,0x01,0x02,0x0c,0x02,0x0c,0x00,0x01,0x02,0x0f,0x02,0x10,0x00,0x01,0x02,0x13,0x02,0x1a,0x00,0x01,0x02,0x1e,0x02,0x1e,0x00,0x01,0x02,0x20,0x02,0x24,0x00,0x01,0x02,0x26,0x02,0x27,0x00,0x01,0x02,0x2e,0x02,0x2e,0x00,0x01,0x02,0x31,0x02,0x36,0x00,0x01,0x02,0x38,0x02,0x39,0x00,0x01,0x02,0x3b, +0x02,0x3b,0x00,0x01,0x02,0x3d,0x02,0x3d,0x00,0x01,0x02,0x40,0x02,0x46,0x00,0x01,0x02,0x48,0x02,0x49,0x00,0x01,0x02,0x4b,0x02,0x4f,0x00,0x01,0x02,0x51,0x02,0x53,0x00,0x01,0x02,0x55,0x02,0x57,0x00,0x01,0x02,0x59,0x02,0x5a,0x00,0x01,0x02,0x5c,0x02,0x5d,0x00,0x01,0x02,0x5f,0x02,0x5f,0x00,0x01,0x02,0x61,0x02,0x61,0x00,0x01, +0x02,0x63,0x02,0x64,0x00,0x01,0x02,0x66,0x02,0x66,0x00,0x01,0x02,0x69,0x02,0x6e,0x00,0x01,0x02,0x70,0x02,0x75,0x00,0x01,0x02,0x79,0x02,0x79,0x00,0x01,0x02,0x7b,0x02,0x7b,0x00,0x01,0x02,0x7d,0x02,0x7e,0x00,0x01,0x02,0x81,0x02,0x81,0x00,0x01,0x02,0x83,0x02,0x83,0x00,0x01,0x02,0x89,0x02,0x89,0x00,0x01,0x02,0x8b,0x02,0x8b, +0x00,0x01,0x02,0x8e,0x02,0x94,0x00,0x01,0x02,0x96,0x02,0x99,0x00,0x01,0x02,0x9c,0x02,0x9c,0x00,0x01,0x02,0xb0,0x02,0xb0,0x00,0x01,0x02,0xcc,0x02,0xcc,0x00,0x01,0x03,0xc3,0x03,0xc3,0x00,0x01,0x03,0xc7,0x03,0xc7,0x00,0x01,0x03,0xcd,0x03,0xcf,0x00,0x01,0x05,0x7d,0x05,0x7e,0x00,0x01,0x05,0xaa,0x05,0xaa,0x00,0x01,0x05,0xc5, +0x05,0xc5,0x00,0x01,0x05,0xd0,0x05,0xd0,0x00,0x01,0x05,0xeb,0x05,0xeb,0x00,0x01,0x05,0xed,0x05,0xed,0x00,0x01,0x06,0x05,0x06,0x06,0x00,0x02,0x06,0x68,0x06,0x7f,0x00,0x03,0x06,0x8d,0x06,0xa4,0x00,0x03,0x06,0xb3,0x06,0xc3,0x00,0x03,0x06,0xcb,0x06,0xcc,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2a, +0x00,0x00,0x00,0x40,0x00,0x01,0x00,0x0b,0x06,0x78,0x06,0x79,0x06,0x7a,0x06,0x7b,0x06,0x8d,0x06,0x9e,0x06,0x9f,0x06,0xa0,0x06,0xa1,0x06,0xa3,0x06,0xa4,0x00,0x02,0x00,0x03,0x06,0x68,0x06,0x76,0x00,0x00,0x06,0x8e,0x06,0x9c,0x00,0x0f,0x06,0xb3,0x06,0xc3,0x00,0x1e,0x00,0x01,0x00,0x03,0x06,0x6d,0x06,0x77,0x06,0x9d,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x16,0x00,0x24,0x00,0x0a,0x00,0x05,0x00,0x2c,0x00,0x34,0x00,0x3c,0x00,0x46,0x00,0x50,0x00,0x02,0x44,0x46,0x4c,0x54,0x00,0x1c,0x6c,0x61,0x74,0x6e,0x00,0x60,0x00,0x02,0x6d,0x61,0x72,0x6b,0x00,0x40,0x6d,0x6b,0x6d,0x6b,0x00,0x48,0x00,0x78,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x7e,0x00,0x04, +0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x06,0x00,0x10,0x00,0x01,0x00,0x86,0x00,0x00,0x00,0x06,0x00,0x10,0x00,0x01,0x00,0x88,0x00,0x01,0x00,0x06,0x00,0x10,0x00,0x01,0x00,0x8a,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x34,0x00,0x08,0x41,0x5a,0x45,0x20,0x00,0x34, +0x43,0x41,0x54,0x20,0x00,0x34,0x43,0x52,0x54,0x20,0x00,0x34,0x4b,0x41,0x5a,0x20,0x00,0x34,0x4d,0x4f,0x4c,0x20,0x00,0x34,0x52,0x4f,0x4d,0x20,0x00,0x34,0x54,0x41,0x54,0x20,0x00,0x34,0x54,0x52,0x4b,0x20,0x00,0x34,0x00,0x00,0xff,0xff,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x42,0x01,0x66,0x00,0x01,0x00,0x54,0x02,0xca, +0x00,0x01,0x00,0x56,0x04,0xc6,0x00,0x05,0x03,0xc0,0x06,0x68,0x00,0x01,0x00,0x8e,0x00,0x8e,0x00,0x01,0x00,0xc4,0x00,0x76,0x00,0x01,0x00,0x54,0x00,0x9c,0x00,0x01,0x01,0xe8,0x00,0xe6,0x00,0x01,0x00,0x12,0x00,0x1c,0x00,0x01,0x00,0x24,0x00,0x0c,0x00,0x02,0x1d,0x1e,0x1d,0x24,0x00,0x01,0x00,0x03,0x06,0x6d,0x06,0x77,0x06,0x9d, +0x00,0x01,0x00,0x02,0x06,0x77,0x06,0x9d,0x00,0x03,0x00,0x00,0x1d,0x12,0x00,0x00,0x1d,0x18,0x00,0x00,0x1d,0x1e,0x00,0x02,0x00,0x03,0x06,0x68,0x06,0x7f,0x00,0x00,0x06,0x8d,0x06,0xa4,0x00,0x18,0x06,0xb3,0x06,0xc3,0x00,0x30,0x00,0x02,0x00,0x03,0x06,0x68,0x06,0x76,0x00,0x00,0x06,0x8e,0x06,0x9c,0x00,0x0f,0x06,0xb3,0x06,0xc3, +0x00,0x1e,0x00,0x0b,0x1c,0xf0,0x1c,0xea,0x1c,0xf6,0x1c,0xfc,0x1c,0xf6,0x1c,0xf0,0x1c,0xf0,0x1c,0xf6,0x1c,0xfc,0x1d,0x02,0x1d,0x08,0x00,0x01,0x00,0x0b,0x06,0x78,0x06,0x79,0x06,0x7a,0x06,0x7b,0x06,0x8d,0x06,0x9e,0x06,0x9f,0x06,0xa0,0x06,0xa1,0x06,0xa3,0x06,0xa4,0x00,0x02,0x00,0x04,0x06,0x68,0x06,0x6c,0x00,0x00,0x06,0x6e, +0x06,0x76,0x00,0x05,0x06,0x8e,0x06,0x9c,0x00,0x0e,0x06,0xb4,0x06,0xc3,0x00,0x1d,0x00,0x0b,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc0,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x2d, +0x1c,0x9e,0x1c,0x9e,0x1c,0xa4,0x1c,0xaa,0x1c,0xb0,0x1c,0xb6,0x1c,0xb6,0x1c,0xb6,0x1c,0xbc,0x1c,0xc2,0x1c,0xc8,0x1c,0xce,0x1c,0xd4,0x1c,0xda,0x1c,0xfe,0x1c,0xe0,0x1c,0xe6,0x1c,0xec,0x1c,0xf2,0x1d,0x16,0x1d,0x16,0x1d,0x16,0x1c,0xf8,0x1c,0xfe,0x1d,0x04,0x1d,0x0a,0x1d,0x10,0x1d,0x16,0x1d,0x1c,0x1d,0x22,0x1d,0x22,0x1d,0x28, +0x1d,0x40,0x1d,0x2e,0x1d,0x34,0x1d,0x3a,0x1d,0x40,0x1d,0x58,0x1d,0x58,0x1d,0x58,0x1d,0x58,0x1d,0x46,0x1d,0x4c,0x1d,0x52,0x1d,0x58,0x00,0x02,0x00,0x1b,0x00,0x60,0x00,0x74,0x00,0x00,0x00,0x78,0x00,0x78,0x00,0x15,0x00,0x8e,0x00,0x9d,0x00,0x16,0x00,0x9f,0x00,0xa0,0x00,0x26,0x00,0xbc,0x00,0xbc,0x00,0x28,0x00,0xdd,0x00,0xdd, +0x00,0x29,0x01,0x22,0x01,0x37,0x00,0x2a,0x01,0x3b,0x01,0x3b,0x00,0x40,0x01,0x4c,0x01,0x5d,0x00,0x41,0x01,0x64,0x01,0x65,0x00,0x53,0x01,0x67,0x01,0x68,0x00,0x55,0x01,0x84,0x01,0x88,0x00,0x57,0x01,0xb0,0x01,0xc2,0x00,0x5c,0x01,0xda,0x01,0xda,0x00,0x6f,0x02,0x02,0x02,0x02,0x00,0x70,0x02,0x1e,0x02,0x1e,0x00,0x71,0x02,0x46, +0x02,0x46,0x00,0x72,0x02,0x5f,0x02,0x5f,0x00,0x73,0x02,0x6d,0x02,0x6d,0x00,0x74,0x02,0x83,0x02,0x83,0x00,0x75,0x02,0x89,0x02,0x89,0x00,0x76,0x02,0x91,0x02,0x94,0x00,0x77,0x05,0xaa,0x05,0xaa,0x00,0x7b,0x05,0xc5,0x05,0xc5,0x00,0x7c,0x05,0xd0,0x05,0xd0,0x00,0x7d,0x05,0xeb,0x05,0xeb,0x00,0x7e,0x05,0xed,0x05,0xed,0x00,0x7f, +0x00,0x2f,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x5c,0x00,0x00,0x1c,0x62,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x68,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00, +0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x6e,0x00,0x00,0x1c,0x74,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x7a,0x00,0x00, +0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x80, +0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4, +0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce, +0x1b,0xce,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce, +0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xd4,0x1b,0xd4,0x1b,0xce,0x1b,0xce,0x1b,0xd4,0x1b,0xd4,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xd4,0x1b,0xe0,0x1b,0xe0,0x1b,0xda,0x1b,0xe0, +0x00,0x41,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0x9c,0x00,0x00,0x1a,0xa2,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xa8,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x01, +0x1a,0xe4,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x03,0x19,0xd6,0x00,0x04,0x1a,0xea,0x00,0x04,0x1a,0xf0,0x00,0x04,0x1a,0xf6,0x00,0x02,0x19,0xd0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xae,0x00,0x00,0x1a,0xb4,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00, +0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x01,0x1a,0xc0,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x03,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x02, +0x19,0xd6,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00, +0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x02,0x00,0x45,0x00,0x01,0x00,0x5d,0x00,0x00,0x00,0x5f,0x00,0x78,0x00,0x5d,0x00,0x7a,0x00,0x7a,0x00,0x77,0x00,0x7c,0x00,0x86,0x00,0x78,0x00,0x89,0x00,0xdd,0x00,0x83,0x00,0xe1,0x00,0xf2,0x00,0xd8,0x00,0xf4,0x00,0xfc,0x00,0xea,0x00,0xfe,0x01,0x14,0x00,0xf3,0x01,0x16,0x01,0x1f,0x01,0x0a, +0x01,0x21,0x01,0x3b,0x01,0x14,0x01,0x3d,0x01,0x49,0x01,0x2f,0x01,0x4c,0x01,0x7c,0x01,0x3c,0x01,0x7e,0x01,0xc2,0x01,0x6d,0x01,0xc4,0x01,0xc5,0x01,0xb2,0x01,0xc8,0x01,0xc8,0x01,0xb4,0x01,0xca,0x01,0xcc,0x01,0xb5,0x01,0xcf,0x01,0xd6,0x01,0xb8,0x01,0xd8,0x01,0xda,0x01,0xc0,0x01,0xdc,0x01,0xe0,0x01,0xc3,0x01,0xe2,0x01,0xe3, +0x01,0xc8,0x01,0xe9,0x01,0xea,0x01,0xca,0x01,0xed,0x01,0xf2,0x01,0xcc,0x01,0xf4,0x01,0xf5,0x01,0xd2,0x01,0xf7,0x01,0xfd,0x01,0xd4,0x01,0xff,0x02,0x02,0x01,0xdb,0x02,0x04,0x02,0x04,0x01,0xdf,0x02,0x06,0x02,0x0a,0x01,0xe0,0x02,0x0c,0x02,0x0c,0x01,0xe5,0x02,0x0f,0x02,0x10,0x01,0xe6,0x02,0x13,0x02,0x1a,0x01,0xe8,0x02,0x1e, +0x02,0x1e,0x01,0xf0,0x02,0x20,0x02,0x21,0x01,0xf1,0x02,0x23,0x02,0x24,0x01,0xf3,0x02,0x26,0x02,0x27,0x01,0xf5,0x02,0x2e,0x02,0x2e,0x01,0xf7,0x02,0x31,0x02,0x36,0x01,0xf8,0x02,0x38,0x02,0x39,0x01,0xfe,0x02,0x3b,0x02,0x3b,0x02,0x00,0x02,0x40,0x02,0x46,0x02,0x01,0x02,0x48,0x02,0x49,0x02,0x08,0x02,0x4b,0x02,0x4f,0x02,0x0a, +0x02,0x51,0x02,0x53,0x02,0x0f,0x02,0x55,0x02,0x57,0x02,0x12,0x02,0x59,0x02,0x5a,0x02,0x15,0x02,0x5c,0x02,0x5d,0x02,0x17,0x02,0x5f,0x02,0x5f,0x02,0x19,0x02,0x61,0x02,0x61,0x02,0x1a,0x02,0x63,0x02,0x64,0x02,0x1b,0x02,0x66,0x02,0x66,0x02,0x1d,0x02,0x69,0x02,0x6e,0x02,0x1e,0x02,0x70,0x02,0x75,0x02,0x24,0x02,0x79,0x02,0x79, +0x02,0x2a,0x02,0x7b,0x02,0x7b,0x02,0x2b,0x02,0x7d,0x02,0x7e,0x02,0x2c,0x02,0x81,0x02,0x81,0x02,0x2e,0x02,0x83,0x02,0x83,0x02,0x2f,0x02,0x89,0x02,0x89,0x02,0x30,0x02,0x8b,0x02,0x8b,0x02,0x31,0x02,0x8e,0x02,0x94,0x02,0x32,0x02,0x96,0x02,0x99,0x02,0x39,0x02,0x9c,0x02,0x9c,0x02,0x3d,0x02,0xb0,0x02,0xb0,0x02,0x3e,0x02,0xcc, +0x02,0xcc,0x02,0x3f,0x03,0xc3,0x03,0xc3,0x02,0x40,0x03,0xc7,0x03,0xc7,0x02,0x41,0x03,0xcd,0x03,0xcf,0x02,0x42,0x05,0x7d,0x05,0x7e,0x02,0x45,0x05,0xaa,0x05,0xaa,0x02,0x47,0x06,0xcb,0x06,0xcc,0x02,0x48,0x02,0x4a,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0x66, +0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xe4,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0x66,0x00,0x00,0x1a,0xe8,0x1b,0xba,0x00,0x00,0x18,0xe4,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xe4,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xe4,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44, +0x1b,0xba,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xd2,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0x66,0x00,0x00,0x1a,0xe8,0x1b,0xba,0x00,0x00,0x18,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xde,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xe4,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00, +0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xe8,0x1b,0xba,0x00,0x00,0x19,0x26,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x19,0x14,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x19,0x1a,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x19,0x08,0x00,0x00, +0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x14,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x18,0x54,0x00,0x00,0x1c,0x1a,0x00,0x00, +0x00,0x00,0x18,0x5a,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x1c,0x14,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x18,0x5a,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x18,0x60,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x66, +0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0xc0,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x66,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x72,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x72,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x72,0x00,0x00,0x1b,0xc6, +0x1b,0xcc,0x00,0x00,0x18,0x6c,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x72,0x00,0x00,0x18,0x90,0x1b,0xcc,0x00,0x00,0x18,0x78,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x7e,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x84,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1b,0x2a,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00, +0x18,0x8a,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1b,0xc0,0x00,0x00,0x18,0x90,0x1b,0xcc,0x00,0x00,0x18,0x96,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x9c,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0xa2,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1b,0xc0,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1c,0x38,0x00,0x00, +0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x2a,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x18,0xae,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x18,0xae,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x18,0xae,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x18,0xae,0x00,0x00, +0x00,0x00,0x1b,0x66,0x00,0x00,0x18,0xae,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x18,0xa8,0x00,0x00,0x00,0x00,0x19,0x20,0x00,0x00,0x18,0xae,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38, +0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x19,0x20,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xe8, +0x1b,0xd2,0x00,0x00,0x19,0x26,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x19,0x14,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x19,0x1a,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0x30,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00, +0x18,0xb4,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x18,0xc6,0x00,0x00,0x18,0xcc,0x00,0x00,0x1c,0x50,0x18,0xba,0x00,0x00,0x18,0xcc,0x00,0x00,0x1c,0x50,0x18,0xc6,0x00,0x00,0x18,0xcc,0x00,0x00,0x1c,0x50,0x18,0xc6,0x00,0x00, +0x18,0xc0,0x00,0x00,0x1c,0x50,0x18,0xc6,0x00,0x00,0x18,0xcc,0x00,0x00,0x1c,0x50,0x18,0xc6,0x00,0x00,0x18,0xcc,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00, +0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x54,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x66,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x66,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x18,0xd2, +0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x66,0x1c,0x3e,0x1a,0xe8,0x1c,0x4a,0x1c,0x50,0x18,0xd8,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x18,0xde,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x18,0xe4,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0xd8,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x1c,0x3e,0x1a,0xe8, +0x1c,0x4a,0x1c,0x50,0x19,0x26,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x19,0x14,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x4e,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x18,0xea,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x4e,0x1c,0x3e,0x1a,0xe8,0x1c,0x4a,0x1c,0x50,0x18,0xf0,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50, +0x18,0xf6,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x18,0xfc,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x19,0x02,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x19,0x1a,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x1c,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x1b,0xb4,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x1b,0xb4, +0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00, +0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38, +0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x1c,0x50,0x1c,0x38,0x19,0x0e,0x1c,0x44, +0x1c,0x4a,0x00,0x00,0x1b,0x54,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x66,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x66,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xd8,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x19,0x0e,0x1a,0xe8,0x1c,0x4a,0x00,0x00,0x19,0x26,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00, +0x19,0x14,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x54,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x19,0x0e,0x1a,0xe8,0x1c,0x4a,0x00,0x00,0x19,0x26,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x19,0x14,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xd8,0x19,0x0e, +0x1c,0x44,0x1c,0x4a,0x00,0x00,0x19,0x02,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x19,0x1a,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x19,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x08,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xd8,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00, +0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x19,0x26,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38, +0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xe8,0x00,0x00,0x00,0x00,0x19,0x26,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x19,0x14,0x00,0x00,0x1c,0x44, +0x00,0x00,0x00,0x00,0x19,0x1a,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x19,0x20,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50, +0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x19,0x26,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00, +0x1a,0xbe,0x00,0x00,0x00,0x00,0x1c,0x38,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x02,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0xfe,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x0a,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x2c,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x0a,0x00,0x00,0x19,0x56,0x1b,0x6c, +0x00,0x00,0x19,0x2c,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x32,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x4a,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x0a,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x0a,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x38,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x0a, +0x00,0x00,0x19,0x56,0x1b,0x6c,0x00,0x00,0x19,0x3e,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x44,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x4a,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x50,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1c,0x02,0x00,0x00,0x19,0x56,0x1b,0x6c,0x00,0x00,0x19,0x5c,0x00,0x00,0x1c,0x1a, +0x1b,0x6c,0x00,0x00,0x19,0x62,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x68,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1c,0x02,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x6e,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x10,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x1b,0xa8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x20,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x19,0x74,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x19,0x7a,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x1c,0x20,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x19,0x7a,0x00,0x00, +0x1c,0x26,0x00,0x00,0x00,0x00,0x19,0x80,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1b,0xfc,0x1c,0x32,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x1c,0x4a, +0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x16,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x00,0x00,0x1a,0xe8,0x1c,0x4a,0x00,0x00,0x1a,0x1c,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x22,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x28,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xea, +0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x1a,0xe8,0x1c,0x4a,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0xfa,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x0c,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x1b,0x18,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x19,0x86,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0x8c,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0x92,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0x92,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00, +0x19,0x92,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0x98,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0x9e,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0xa4,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x19,0xaa,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x84,0x00,0x00,0x1c,0x44,0x1c,0x68,0x00,0x00,0x1c,0x5c,0x00,0x00, +0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xb0,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xb6,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xb6,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xb6,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x56,0x1c,0x68, +0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x62,0x1c,0x68,0x00,0x00,0x19,0xbc,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xc2,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xc8,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xce,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x1b,0x8a, +0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x19,0xd4,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x19,0xda,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1b,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0xf8,0x00,0x00,0x1b,0xd2, +0x00,0x00,0x1c,0x50,0x19,0xe0,0x00,0x00,0x1b,0xd2,0x00,0x00,0x1c,0x50,0x19,0xf8,0x00,0x00,0x1b,0xd2,0x00,0x00,0x1c,0x50,0x19,0xf8,0x00,0x00,0x19,0xe6,0x00,0x00,0x1c,0x50,0x19,0xec,0x00,0x00,0x1c,0x44,0x00,0x00,0x19,0xf2,0x19,0xf8,0x00,0x00,0x1b,0xd2,0x00,0x00,0x1c,0x50,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00, +0x1c,0x02,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x19,0xfe,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1a,0x04,0x00,0x00,0x00,0x00,0x1a,0x0a,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1a,0x10,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x1b,0xf6, +0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xa8,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xae,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xae,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xae,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x16,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xae,0x1b,0xf6,0x1a,0xe8,0x1c,0x4a, +0x1b,0xfc,0x1a,0x1c,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x22,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x28,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xea,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1c,0x32,0x1b,0xf6,0x1a,0xe8,0x1c,0x4a,0x1b,0xfc,0x1a,0xf4,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0xfa, +0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x34,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x2e,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x34,0x1b,0xf6,0x1a,0xe8,0x1c,0x4a,0x1b,0xfc,0x1a,0x3a,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x40,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x46,0x1b,0xf6,0x1c,0x44, +0x1c,0x4a,0x1b,0xfc,0x1b,0x06,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0x0c,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1c,0x32,0x1b,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x1b,0xf6,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x1b,0xf6,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x18,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc, +0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x5a,0x00,0x00,0x1b,0x60,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1a,0xd6,0x00,0x00,0x1a,0x4c,0x00,0x00,0x00,0x00,0x1a,0xc4,0x00,0x00,0x1a,0x4c,0x00,0x00,0x00,0x00,0x1a,0xca,0x00,0x00,0x1a,0x4c,0x00,0x00,0x00,0x00,0x1a,0xd6,0x00,0x00, +0x1a,0x52,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1a,0xbe,0x00,0x00, +0x00,0x00,0x1a,0x58,0x00,0x00,0x1a,0x82,0x00,0x00,0x1b,0xfc,0x1a,0x58,0x00,0x00,0x1a,0x82,0x00,0x00,0x1b,0xfc,0x1a,0x58,0x00,0x00,0x1a,0x82,0x00,0x00,0x1b,0xfc,0x1a,0x58,0x00,0x00,0x1a,0x82,0x00,0x00,0x1b,0xfc,0x1a,0x58,0x00,0x00,0x1a,0x88,0x00,0x00,0x1b,0xfc,0x1c,0x32,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xa8, +0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xea,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x5e,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x64,0x1b,0xf0,0x1c,0x44, +0x1c,0x4a,0x00,0x00,0x1a,0x6a,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x70,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1a,0xe8,0x1c,0x4a,0x00,0x00,0x1a,0xf4,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0xfa,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00, +0x1b,0xa8,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1a,0xee,0x00,0x00,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x1a,0xfa,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x1b,0x18,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x1b,0x06,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x0c,0x1b,0xf0, +0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x12,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x18,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00, +0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae, +0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1a,0xe2,0x00,0x00,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1a,0xfa,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x0c,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x18,0x00,0x00,0x1c,0x44, +0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x1b,0xfc,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00,0x1b,0xfc,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x1b,0xfc,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x1b,0xfc,0x1a,0x7c,0x00,0x00,0x1b,0xc6,0x00,0x00,0x00,0x00,0x1a,0x76,0x00,0x00,0x1b,0xc6,0x00,0x00,0x00,0x00, +0x1a,0x7c,0x00,0x00,0x1b,0xc6,0x00,0x00,0x00,0x00,0x1a,0x7c,0x00,0x00,0x1a,0xb2,0x00,0x00,0x00,0x00,0x1a,0x7c,0x00,0x00,0x1b,0xc6,0x00,0x00,0x00,0x00,0x1a,0x7c,0x00,0x00,0x1b,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x82,0x00,0x00,0x1a,0x8e,0x00,0x00,0x00,0x00,0x1a,0x82,0x00,0x00,0x1a,0x8e,0x00,0x00,0x00,0x00, +0x1a,0x82,0x00,0x00,0x1a,0x8e,0x00,0x00,0x00,0x00,0x1a,0x82,0x00,0x00,0x1a,0x8e,0x00,0x00,0x00,0x00,0x1a,0x88,0x00,0x00,0x1a,0x8e,0x1c,0x32,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1a,0x9a,0x00,0x00, +0x00,0x00,0x1b,0xae,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1a,0x94,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1b,0x9c,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1a,0xa0,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1a,0xa6,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1a,0xb8, +0x00,0x00,0x1b,0xd2,0x00,0x00,0x00,0x00,0x1a,0xac,0x00,0x00,0x1b,0xd2,0x00,0x00,0x00,0x00,0x1a,0xb8,0x00,0x00,0x1b,0xd2,0x00,0x00,0x00,0x00,0x1a,0xb8,0x00,0x00,0x1a,0xb2,0x00,0x00,0x00,0x00,0x1a,0xb8,0x00,0x00,0x1b,0xd2,0x00,0x00,0x00,0x00,0x1a,0xb8,0x00,0x00,0x1b,0xd2,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44, +0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00, +0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1a,0xd6,0x00,0x00,0x1a,0xd0,0x00,0x00,0x00,0x00,0x1a,0xc4,0x00,0x00,0x1a,0xd0,0x00,0x00,0x00,0x00,0x1a,0xca,0x00,0x00,0x1a,0xd0,0x00,0x00,0x00,0x00,0x1a,0xd6,0x00,0x00, +0x1a,0xdc,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1a,0xe2,0x00,0x00,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1c,0x44,0x00,0x00, +0x00,0x00,0x1a,0xfa,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x0c,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x18,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0xa8,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0xae,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0xae, +0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0xea,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1a,0xe8,0x1b,0x1e,0x00,0x00,0x1a,0xf4,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1a,0xfa,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1b,0x00,0x1c,0x4a,0x00,0x00,0x1b,0xa8,0x1b,0xf0,0x1b,0x00, +0x1c,0x4a,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1a,0xee,0x1c,0x4a,0x00,0x00,0x1a,0xf4,0x1b,0xf0,0x1b,0x00,0x1c,0x4a,0x00,0x00,0x1a,0xfa,0x1b,0xf0,0x1b,0x00,0x1c,0x4a,0x00,0x00,0x1b,0x18,0x1b,0xf0,0x1b,0x00,0x1c,0x4a,0x00,0x00,0x1b,0x06,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0x0c,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00, +0x1c,0x32,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0x12,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0x18,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1c,0x38,0x00,0x00, +0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xb4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xc0,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1b,0x2a,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00, +0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38, +0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x14,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44, +0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x14,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x1b,0x5a,0x00,0x00,0x1b,0x60,0x00,0x00,0x00,0x00, +0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0x30,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xb4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x36,0x00,0x00, +0x1b,0x3c,0x00,0x00,0x00,0x00,0x1b,0x42,0x00,0x00,0x1c,0x0e,0x00,0x00,0x1b,0x48,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xd8,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x5a, +0x00,0x00,0x1b,0x60,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1b,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44, +0x1c,0x4a,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x1b,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x20,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00, +0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x56,0x1c,0x68, +0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x1b,0x8a,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x44, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x32,0x1b,0x96,0x00,0x00,0x1b,0xea,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xea,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xea,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x1b,0x9c,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00, +0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xb4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xc0,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00, +0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00, +0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0xc0,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1c,0x38, +0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44, +0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00, +0x1c,0x32,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1c,0x32,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xe4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x1b,0xf0, +0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xea,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1c,0x44,0x00,0x00, +0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x08,0x00,0x00,0x1c,0x0e,0x00,0x00,0x00,0x00,0x1c,0x20,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x1c,0x14,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x1c,0x38, +0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x20,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x5c,0x00,0x00,0x1c,0x56, +0x1c,0x68,0x00,0x00,0x1c,0x5c,0x00,0x00,0x1c,0x62,0x1c,0x68,0x00,0x00,0x00,0x01,0xff,0xb4,0x02,0x94,0x00,0x01,0xff,0xba,0x03,0x48,0x00,0x01,0xff,0x51,0x02,0x26,0x00,0x01,0xff,0x04,0x02,0x26,0x00,0x01,0xff,0x07,0x02,0xda,0x00,0x01,0xfe,0xd4,0xff,0x06,0x00,0x01,0xfe,0xd4,0xff,0x2b,0x00,0x01,0xfe,0xca,0xff,0x10,0x00,0x01, +0xfe,0xdb,0xff,0x35,0x00,0x01,0xfe,0xd4,0xff,0x10,0x00,0x01,0xfe,0xd4,0xff,0x3d,0x00,0x01,0xfe,0xca,0x00,0x00,0x00,0x01,0xfe,0xd4,0x00,0x00,0x00,0x01,0xfe,0xd4,0x03,0x09,0x00,0x01,0xfe,0xb3,0x03,0x11,0x00,0x01,0xfe,0xf5,0x03,0x11,0x00,0x01,0xfe,0xf9,0x03,0x11,0x00,0x01,0xfe,0xd4,0x03,0x11,0x00,0x01,0xfe,0xd4,0x03,0x44, +0x00,0x01,0xfe,0xd4,0x03,0x0c,0x00,0x01,0xfe,0xd4,0x02,0xe9,0x00,0x01,0xfe,0xd9,0x03,0x39,0x00,0x01,0xfe,0xae,0x03,0x11,0x00,0x01,0xfe,0xe0,0x03,0x70,0x00,0x01,0xfe,0xd4,0x03,0xb0,0x00,0x01,0xfe,0xb3,0x03,0xb6,0x00,0x01,0xfe,0xf5,0x03,0xb6,0x00,0x01,0xfe,0xf9,0x03,0xb6,0x00,0x01,0xfe,0xd4,0x03,0xe2,0x00,0x01,0xfe,0xd4, +0x03,0xb1,0x00,0x01,0xfe,0xd4,0x03,0x93,0x00,0x01,0xfe,0xd6,0x03,0xd4,0x00,0x01,0xfe,0xae,0x03,0xb6,0x00,0x01,0xfe,0xd4,0x03,0xb6,0x00,0x01,0xfe,0xd9,0x03,0xfc,0x00,0x01,0xfe,0xd4,0x03,0x7a,0x00,0x01,0xfe,0xd4,0x03,0xa2,0x00,0x01,0xff,0x1c,0x03,0x84,0x00,0x01,0xfe,0xf4,0x03,0x84,0x00,0x01,0xfe,0xf7,0x03,0xa2,0x00,0x01, +0xfe,0xd4,0x03,0xa0,0x00,0x01,0xff,0x17,0x03,0xfc,0x00,0x01,0xfe,0xf2,0x03,0xfc,0x00,0x01,0xfe,0xf7,0x03,0xfc,0x00,0x01,0xfe,0xd4,0x03,0xfc,0x00,0x01,0xfe,0xde,0x02,0x26,0x00,0x01,0xfe,0xca,0x02,0x26,0x00,0x01,0xfe,0xb6,0x02,0xda,0x00,0x01,0xfe,0xde,0x02,0xda,0x00,0x01,0xfe,0xca,0x02,0xda,0x00,0x01,0xfe,0xd4,0x02,0x26, +0x00,0x01,0xfe,0xd4,0x02,0xda,0x00,0x01,0x01,0x63,0x02,0x6d,0x00,0x01,0x02,0x44,0x02,0x26,0x00,0x01,0x02,0x44,0x02,0xda,0x00,0x01,0x02,0x44,0x04,0x65,0x00,0x01,0x03,0x0c,0x02,0xda,0x00,0x01,0xfe,0xec,0x02,0x26,0x00,0x01,0xfe,0xd4,0x01,0x45,0x00,0x01,0xfe,0xd4,0x01,0x18,0x00,0x01,0xfe,0xd4,0x01,0x13,0x00,0x01,0x01,0x5c, +0x03,0xb6,0x00,0x01,0x01,0x31,0x03,0xb6,0x00,0x01,0x01,0x31,0x03,0xb0,0x00,0x01,0x01,0x61,0x03,0xb6,0x00,0x01,0x01,0x79,0x03,0xfc,0x00,0x01,0x01,0x36,0x03,0xb6,0x00,0x01,0x01,0x54,0x03,0xfc,0x00,0x01,0x01,0x59,0x03,0xfc,0x00,0x01,0x01,0x36,0x03,0xfc,0x00,0x01,0x01,0x36,0x03,0xb0,0x00,0x01,0x01,0x36,0xff,0x2b,0x00,0x01, +0x01,0x0b,0x03,0xb6,0x00,0x01,0x01,0x38,0x03,0xd4,0x00,0x01,0x01,0x36,0x03,0x93,0x00,0x01,0x01,0x26,0xff,0x10,0x00,0x01,0x01,0x30,0x00,0x00,0x00,0x01,0x01,0xc2,0x03,0xb6,0x00,0x01,0x00,0xda,0x03,0xb6,0x00,0x01,0x01,0x4a,0xff,0x10,0x00,0x01,0x00,0xaf,0x02,0xda,0x00,0x01,0x01,0x54,0x00,0x00,0x00,0x01,0x01,0x6f,0x03,0xfc, +0x00,0x01,0x01,0x4a,0x03,0xfc,0x00,0x01,0x01,0x4f,0x03,0xfc,0x00,0x01,0x01,0x2c,0x03,0xfc,0x00,0x01,0x01,0x4d,0x03,0xb6,0x00,0x01,0x00,0xf7,0x03,0xb6,0x00,0x01,0x01,0x24,0x03,0xd4,0x00,0x01,0x01,0x22,0x03,0xb1,0x00,0x01,0x01,0x51,0x03,0xb6,0x00,0x01,0x01,0x2c,0x03,0xe2,0x00,0x01,0x01,0x81,0x02,0xda,0x00,0x01,0x01,0x2e, +0x03,0xd4,0x00,0x01,0x01,0x2c,0x03,0x93,0x00,0x01,0x01,0x2c,0x03,0xb0,0x00,0x01,0x01,0x01,0x03,0xb6,0x00,0x01,0x01,0x31,0x03,0x7a,0x00,0x01,0x01,0x31,0x03,0xa2,0x00,0x01,0x01,0x79,0x03,0x84,0x00,0x01,0x01,0x51,0x03,0x84,0x00,0x01,0x01,0x54,0x03,0xa2,0x00,0x01,0x01,0x31,0x03,0xa0,0x00,0x01,0x01,0x31,0x03,0x09,0x00,0x01, +0x01,0x31,0xff,0x2b,0x00,0x01,0x01,0x06,0x03,0x11,0x00,0x01,0x01,0x36,0x03,0x39,0x00,0x01,0x01,0x31,0x02,0xe9,0x00,0x01,0x01,0x31,0x03,0x44,0x00,0x01,0x01,0x5f,0x03,0x11,0x00,0x01,0x01,0x34,0x03,0x11,0x00,0x01,0x01,0x34,0x03,0x09,0x00,0x01,0x01,0x29,0x02,0x26,0x00,0x01,0x01,0x54,0x03,0x11,0x00,0x01,0x01,0x29,0x03,0x11, +0x00,0x01,0x01,0x35,0x03,0x70,0x00,0x01,0x01,0x29,0x03,0x09,0x00,0x01,0x00,0x89,0x02,0xda,0x00,0x01,0x00,0x89,0x03,0xc5,0x00,0x01,0x01,0x66,0x03,0x11,0x00,0x01,0x01,0x3b,0x03,0x11,0x00,0x01,0x01,0x10,0x03,0x11,0x00,0x01,0x01,0x40,0x03,0x39,0x00,0x01,0x01,0x3b,0x02,0xe9,0x00,0x01,0x01,0x3b,0x03,0x0c,0x00,0x01,0x01,0x7c, +0x02,0x26,0x00,0x01,0x01,0x7c,0x03,0x11,0x00,0x01,0x01,0x1b,0x03,0xb6,0x00,0x01,0x01,0x36,0xff,0x10,0x00,0x01,0x00,0xdc,0x02,0xda,0x00,0x01,0x01,0x18,0x01,0x6d,0x00,0x01,0x00,0xf0,0x02,0xda,0x00,0x01,0x01,0x5c,0x03,0x11,0x00,0x01,0x00,0x5a,0x02,0x85,0x00,0x01,0x01,0x31,0x03,0x11,0x00,0x01,0x01,0x31,0x03,0x0c,0x00,0x01, +0x01,0x74,0x03,0x84,0x00,0x01,0x01,0x4c,0x03,0x84,0x00,0x01,0x01,0x4f,0x03,0xa2,0x00,0x01,0x01,0x2c,0x03,0xa0,0x00,0x01,0x01,0x4d,0x03,0x11,0x00,0x01,0x01,0x22,0x02,0x26,0x00,0x01,0x00,0xf7,0x03,0x11,0x00,0x01,0x01,0x27,0x03,0x39,0x00,0x01,0x01,0x22,0x03,0x0c,0x00,0x01,0x00,0x91,0x00,0x00,0x00,0x01,0x00,0x87,0xff,0x10, +0x00,0x01,0x00,0xfa,0x02,0xc1,0x00,0x01,0x01,0x57,0x03,0xf4,0x00,0x01,0x01,0x2c,0x03,0xf4,0x00,0x01,0x01,0x01,0x03,0xf4,0x00,0x01,0x01,0x2c,0x03,0xcc,0x00,0x01,0x01,0x48,0x03,0xb6,0x00,0x01,0x01,0x1d,0x02,0xda,0x00,0x01,0x01,0x68,0x00,0x00,0x00,0x01,0x01,0x5e,0xff,0x10,0x00,0x01,0x01,0x13,0x01,0x13,0x00,0x01,0x01,0x38, +0x03,0x70,0x00,0x01,0x01,0x2c,0xfe,0xf2,0x00,0x01,0x01,0xb7,0x02,0x26,0x00,0x01,0x01,0xb7,0x03,0x11,0x00,0x01,0x01,0x25,0x03,0xb6,0x00,0x01,0x01,0x27,0xff,0x10,0x00,0x01,0x00,0xfa,0x02,0xda,0x00,0x01,0x01,0x22,0xff,0x10,0x00,0x01,0x01,0x6b,0x03,0x11,0x00,0x01,0x01,0x40,0x03,0x11,0x00,0x01,0x00,0xf5,0x00,0x00,0x00,0x01, +0x01,0x40,0x02,0x26,0x00,0x01,0x00,0xe6,0xff,0x10,0x00,0x01,0x01,0xcc,0xff,0x2b,0x00,0x01,0x01,0x2c,0xff,0x2b,0x00,0x01,0x01,0x2b,0xff,0x2b,0x00,0x01,0x01,0x01,0x03,0x11,0x00,0x01,0x01,0x31,0x03,0x39,0x00,0x01,0x01,0x2b,0x00,0x00,0x00,0x01,0x01,0x51,0x03,0x11,0x00,0x01,0x01,0x2c,0x02,0xe9,0x00,0x01,0x01,0x2c,0x03,0x44, +0x00,0x01,0x01,0x2c,0x03,0x0c,0x00,0x01,0x01,0xcd,0x00,0x00,0x00,0x01,0x01,0x6b,0x03,0xb6,0x00,0x01,0x01,0x36,0x03,0xb1,0x00,0x01,0x01,0xc2,0x02,0xda,0x00,0x01,0x01,0x21,0x02,0xda,0x00,0x01,0x01,0x21,0x00,0x00,0x00,0x01,0x01,0x28,0x02,0xda,0x00,0x01,0x01,0x28,0x01,0x6d,0x00,0x01,0x01,0x22,0x02,0xda,0x00,0x01,0x01,0x57, +0x03,0xb6,0x00,0x01,0x01,0x27,0x02,0xda,0x00,0x01,0x01,0x27,0x00,0x00,0x00,0x01,0x01,0x2c,0x03,0xb6,0x00,0x01,0x01,0xd1,0x00,0x00,0x00,0x01,0x01,0x4a,0x02,0x26,0x00,0x01,0x01,0x75,0x03,0x11,0x00,0x01,0x01,0x5a,0x03,0x11,0x00,0x01,0x01,0x3b,0x03,0x09,0x00,0x01,0x01,0x7c,0x03,0x09,0x00,0x01,0x01,0x4f,0x02,0x26,0x00,0x01, +0x00,0xfa,0x02,0x26,0x00,0x01,0x01,0xb7,0x03,0x09,0x00,0x01,0x01,0x27,0xfe,0xf2,0x00,0x01,0x01,0x57,0x03,0x11,0x00,0x01,0x01,0x2c,0x03,0x11,0x00,0x01,0x01,0x40,0x02,0xda,0x00,0x01,0x01,0xf4,0x00,0x00,0x00,0x01,0x01,0x36,0x02,0xda,0x00,0x01,0x01,0x36,0x00,0x00,0x00,0x01,0x01,0xb8,0x00,0x00,0x00,0x01,0x01,0x40,0x00,0x00, +0x00,0x01,0x01,0x2c,0x03,0xb1,0x00,0x01,0x01,0x2f,0x02,0x26,0x00,0x01,0x01,0x27,0x03,0x09,0x00,0x01,0x01,0x2c,0x03,0x09,0x00,0x01,0x01,0xa4,0x02,0x26,0x00,0x01,0x01,0x4c,0x02,0x26,0x00,0x01,0x01,0x2c,0x01,0x13,0x00,0x01,0x01,0x31,0x02,0x26,0x00,0x01,0x01,0x28,0x02,0x26,0x00,0x01,0x01,0x28,0x00,0x00,0x00,0x01,0x01,0x31, +0x02,0xda,0x00,0x01,0x01,0x31,0x00,0x00,0x00,0x01,0x01,0x34,0x02,0x26,0x00,0x01,0x01,0x34,0x00,0x00,0x00,0x01,0x01,0x27,0x02,0x26,0x00,0x01,0x01,0x2c,0x02,0x26,0x00,0x01,0x01,0x2c,0x02,0xda,0x00,0x01,0x01,0x40,0x02,0xbc,0x00,0x01,0x01,0x2c,0x00,0x00,0x00,0x01,0x01,0x5e,0x00,0x00,0x00,0x01,0x01,0x2c,0x01,0x6d,0x00,0x01, +0x01,0x3b,0x00,0x00,0x00,0x01,0x01,0x3b,0x02,0x26,0x00,0x01,0x01,0x3b,0xff,0x2b,0x00,0x01,0x01,0x4a,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0a,0x00,0x18,0x01,0x1c,0x00,0x02,0x44,0x46,0x4c,0x54,0x04,0xac,0x6c,0x61,0x74,0x6e,0x04,0xb0,0x00,0x2b,0x61,0x61,0x6c,0x74,0x05,0xb4,0x63,0x61,0x6c,0x74,0x05,0xe4,0x63,0x61, +0x73,0x65,0x04,0xd6,0x63,0x63,0x6d,0x70,0x05,0xc4,0x63,0x63,0x6d,0x70,0x05,0xd8,0x63,0x76,0x30,0x31,0x04,0xdc,0x63,0x76,0x30,0x32,0x04,0xe2,0x63,0x76,0x30,0x33,0x04,0xe8,0x63,0x76,0x30,0x34,0x04,0xee,0x63,0x76,0x30,0x35,0x04,0xf4,0x63,0x76,0x30,0x36,0x04,0xfa,0x63,0x76,0x30,0x37,0x05,0x00,0x63,0x76,0x30,0x38,0x05,0x06, +0x63,0x76,0x30,0x39,0x05,0x0c,0x63,0x76,0x31,0x30,0x05,0x12,0x63,0x76,0x31,0x31,0x05,0x18,0x63,0x76,0x31,0x32,0x05,0x1e,0x63,0x76,0x31,0x34,0x05,0x24,0x63,0x76,0x31,0x35,0x05,0x2a,0x63,0x76,0x31,0x36,0x05,0x30,0x63,0x76,0x31,0x37,0x05,0x36,0x63,0x76,0x31,0x38,0x05,0x3c,0x63,0x76,0x31,0x39,0x05,0x42,0x63,0x76,0x32,0x30, +0x05,0x48,0x63,0x76,0x39,0x39,0x05,0x4e,0x66,0x72,0x61,0x63,0x05,0xce,0x6c,0x6f,0x63,0x6c,0x05,0x54,0x6c,0x6f,0x63,0x6c,0x05,0x5a,0x6c,0x6f,0x63,0x6c,0x05,0x60,0x6c,0x6f,0x63,0x6c,0x05,0x66,0x6c,0x6f,0x63,0x6c,0x05,0x6c,0x6c,0x6f,0x63,0x6c,0x05,0x72,0x6c,0x6f,0x63,0x6c,0x05,0x78,0x6c,0x6f,0x63,0x6c,0x05,0x7e,0x6f,0x72, +0x64,0x6e,0x05,0xbc,0x73,0x69,0x6e,0x66,0x05,0x84,0x73,0x73,0x30,0x31,0x05,0x8a,0x73,0x73,0x30,0x32,0x05,0x90,0x73,0x73,0x31,0x39,0x05,0x96,0x73,0x73,0x32,0x30,0x05,0x9c,0x73,0x75,0x62,0x73,0x05,0xa2,0x73,0x75,0x70,0x73,0x05,0xa8,0x7a,0x65,0x72,0x6f,0x05,0xae,0x01,0xcc,0x06,0x18,0x06,0x20,0x06,0x28,0x06,0x30,0x06,0x38, +0x06,0x40,0x06,0x40,0x06,0x48,0x06,0x50,0x06,0x58,0x06,0x60,0x06,0x68,0x06,0x70,0x06,0x78,0x06,0x80,0x06,0x88,0x06,0x90,0x06,0x98,0x06,0xa0,0x06,0xa8,0x06,0xb0,0x0a,0x90,0x06,0xb8,0x06,0xc0,0x0a,0x90,0x06,0xc8,0x06,0xd0,0x0c,0x60,0x06,0xd8,0x06,0xe0,0x06,0xe8,0x06,0xf0,0x06,0xf8,0x07,0x00,0x07,0x28,0x07,0x08,0x07,0x10, +0x07,0x28,0x07,0x28,0x07,0x18,0x07,0x20,0x07,0x28,0x07,0x28,0x07,0x28,0x07,0x30,0x07,0x38,0x07,0x40,0x07,0x48,0x07,0x50,0x07,0x58,0x07,0x60,0x07,0x68,0x07,0x70,0x07,0x78,0x11,0xb0,0x07,0x80,0x11,0xba,0x07,0x88,0x07,0x90,0x07,0x98,0x07,0xd0,0x07,0xa0,0x07,0xa8,0x07,0xd0,0x07,0xd0,0x07,0xb0,0x07,0xb8,0x07,0xc0,0x07,0xc8, +0x07,0xd0,0x07,0xd8,0x07,0xe0,0x0d,0x70,0x07,0xe8,0x07,0xf0,0x07,0xf8,0x08,0x00,0x08,0x28,0x08,0x08,0x08,0x10,0x08,0x18,0x08,0x20,0x08,0x28,0x08,0x28,0x08,0x30,0x08,0x38,0x08,0x50,0x08,0x40,0x08,0x48,0x08,0x50,0x08,0x50,0x08,0x58,0x08,0x60,0x08,0x68,0x08,0x70,0x08,0x98,0x08,0x78,0x08,0x80,0x08,0x98,0x08,0x98,0x08,0x88, +0x08,0x90,0x08,0x98,0x08,0xa0,0x08,0xa8,0x0c,0x60,0x08,0xb0,0x08,0xb8,0x0e,0x40,0x08,0xc0,0x08,0xc8,0x08,0xd0,0x08,0xd8,0x0c,0x60,0x08,0xe0,0x08,0xe8,0x08,0xf0,0x08,0xf8,0x09,0x00,0x09,0x08,0x0e,0x40,0x09,0x10,0x09,0x18,0x0e,0x40,0x09,0x20,0x09,0x28,0x0e,0x40,0x0e,0x40,0x09,0x30,0x09,0x38,0x0e,0x40,0x09,0x40,0x09,0x48, +0x09,0x50,0x09,0x58,0x09,0x60,0x09,0x68,0x0c,0x28,0x0c,0x28,0x09,0x70,0x09,0x78,0x0c,0x28,0x09,0x80,0x09,0x88,0x09,0x90,0x09,0x98,0x09,0xa0,0x09,0xa8,0x0d,0xd8,0x09,0xb0,0x09,0xb8,0x0c,0x60,0x09,0xc0,0x09,0xc8,0x09,0xd0,0x09,0xd8,0x0d,0xd8,0x09,0xe0,0x09,0xe8,0x0d,0xd8,0x0d,0xd8,0x09,0xf0,0x09,0xf8,0x0a,0x00,0x0a,0x08, +0x0a,0x10,0x0a,0x18,0x0a,0x20,0x0a,0x28,0x0a,0x30,0x0a,0x38,0x0e,0x40,0x0a,0x40,0x0a,0x48,0x0d,0x70,0x0a,0x50,0x0a,0x58,0x0a,0x60,0x0a,0x68,0x0d,0x18,0x0a,0x70,0x0a,0x78,0x0a,0x80,0x0a,0x88,0x0a,0x90,0x0a,0x98,0x0a,0xa0,0x0d,0x70,0x0a,0xa8,0x0a,0xb0,0x0d,0x70,0x0a,0xb8,0x0a,0xc0,0x0a,0xc8,0x0a,0xd0,0x0d,0x70,0x0a,0xd8, +0x0a,0xe0,0x0d,0x70,0x0d,0x70,0x0a,0xe8,0x0a,0xf0,0x0d,0x70,0x0a,0xf8,0x0b,0x00,0x0b,0x08,0x0b,0x10,0x0b,0x18,0x0b,0x20,0x0b,0x28,0x0b,0x30,0x0b,0xa0,0x0b,0x38,0x0b,0x40,0x0b,0x58,0x0b,0x48,0x0b,0x50,0x0b,0x58,0x0b,0x58,0x0b,0x60,0x0b,0x68,0x0b,0xa0,0x0b,0xa0,0x0b,0x70,0x0b,0x78,0x0b,0x80,0x0b,0x88,0x0b,0x90,0x0b,0x98, +0x0b,0xa0,0x0b,0xa8,0x0b,0xb0,0x0c,0x28,0x0c,0x28,0x0b,0xb8,0x0b,0xc0,0x0c,0x28,0x0b,0xc8,0x0b,0xd0,0x0b,0xd8,0x0b,0xe0,0x0c,0x28,0x0b,0xe8,0x0b,0xf0,0x0c,0x28,0x0b,0xf8,0x0c,0x00,0x0c,0x08,0x0c,0x10,0x0c,0x18,0x0c,0x20,0x0c,0x28,0x0c,0x30,0x0c,0x38,0x0c,0x60,0x0c,0x40,0x0c,0x48,0x0c,0x60,0x0c,0x50,0x0c,0x58,0x0c,0x60, +0x0c,0x60,0x0c,0x68,0x0c,0x70,0x0c,0x88,0x0c,0x78,0x0c,0x80,0x0c,0x88,0x0c,0x88,0x0c,0x90,0x0c,0x98,0x0c,0xa0,0x0c,0xa8,0x0c,0xb0,0x0c,0xb8,0x0c,0xc0,0x0c,0xc8,0x0c,0xf0,0x0c,0xd0,0x0c,0xd8,0x0c,0xe0,0x0c,0xe8,0x0c,0xf0,0x0c,0xf0,0x0c,0xf8,0x0d,0x00,0x0d,0x08,0x0d,0x10,0x0d,0x18,0x0d,0x20,0x0d,0x28,0x0d,0x70,0x0d,0x30, +0x0d,0x38,0x0e,0x40,0x0d,0x40,0x0d,0x48,0x0e,0x40,0x0d,0x50,0x0d,0x58,0x0d,0x70,0x0d,0x60,0x0d,0x68,0x0d,0x70,0x0d,0x78,0x0d,0x80,0x0d,0xd8,0x0d,0x88,0x0d,0x90,0x0d,0xd8,0x0d,0x98,0x0d,0xa0,0x0d,0xd8,0x0d,0xa8,0x0d,0xb0,0x0d,0xd8,0x0d,0xb8,0x0d,0xc0,0x0d,0xc8,0x0d,0xd0,0x0d,0xd8,0x0d,0xe0,0x0d,0xe8,0x0d,0xf0,0x0d,0xf8, +0x0e,0xb8,0x0e,0x00,0x0e,0x08,0x0e,0x10,0x0e,0x18,0x0e,0x20,0x0e,0x28,0x0e,0x40,0x0e,0x30,0x0e,0x38,0x0e,0x40,0x0e,0x48,0x0e,0x50,0x0e,0x58,0x0e,0x60,0x0e,0x68,0x0e,0x70,0x0e,0x78,0x0e,0x80,0x0e,0x88,0x0e,0x90,0x0e,0xb8,0x0e,0x98,0x0e,0xa0,0x0e,0xa8,0x0e,0xb0,0x0e,0xb8,0x0e,0xc0,0x0e,0xc8,0x0e,0xd0,0x0e,0xd8,0x0e,0xe0, +0x0e,0xe8,0x0e,0xf0,0x0e,0xf8,0x0f,0x00,0x0f,0x08,0x0f,0x10,0x0f,0x18,0x0f,0x20,0x0f,0x28,0x0f,0x30,0x0f,0x38,0x0f,0x40,0x0f,0x48,0x0f,0x50,0x0f,0x58,0x0f,0x60,0x0f,0x68,0x0f,0x70,0x0f,0x78,0x0f,0x80,0x0f,0x88,0x0f,0x90,0x0f,0x98,0x0f,0xa0,0x0f,0xa8,0x0f,0xb0,0x0f,0xb8,0x0f,0xc0,0x0f,0xc8,0x0f,0xd0,0x0f,0xd8,0x0f,0xe0, +0x0f,0xe8,0x0f,0xf0,0x0f,0xf8,0x10,0x00,0x10,0x08,0x10,0x10,0x10,0x18,0x10,0x20,0x10,0x28,0x10,0x30,0x10,0x38,0x10,0x40,0x10,0x48,0x10,0x50,0x10,0x58,0x11,0xd8,0x10,0x60,0x10,0x60,0x10,0x68,0x10,0x70,0x10,0x70,0x10,0x78,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x88,0x10,0x88,0x10,0x90,0x10,0xa0,0x10,0x98, +0x10,0xa0,0x10,0xa0,0x10,0xa8,0x10,0xa8,0x10,0xb0,0x10,0xb8,0x10,0xc0,0x11,0xc4,0x10,0xc8,0x10,0xc8,0x11,0xce,0x10,0xd0,0x10,0xd8,0x10,0xe0,0x10,0xe8,0x10,0xf0,0x10,0xf8,0x11,0x00,0x11,0x08,0x11,0x10,0x11,0x18,0x11,0x20,0x11,0x28,0x11,0x30,0x11,0x38,0x11,0x40,0x11,0x48,0x11,0x50,0x11,0x58,0x11,0x60,0x11,0x68,0x11,0x70, +0x11,0x78,0x11,0x80,0x11,0x88,0x11,0x90,0x11,0x98,0x11,0xa0,0x11,0xa8,0x0e,0x4c,0x00,0x00,0x0e,0x92,0x00,0x08,0x41,0x5a,0x45,0x20,0x0e,0xdc,0x43,0x41,0x54,0x20,0x0f,0x28,0x43,0x52,0x54,0x20,0x0f,0x74,0x4b,0x41,0x5a,0x20,0x0f,0xc0,0x4d,0x4f,0x4c,0x20,0x10,0x0c,0x52,0x4f,0x4d,0x20,0x10,0x58,0x54,0x41,0x54,0x20,0x10,0xa4, +0x54,0x52,0x4b,0x20,0x10,0xf0,0x00,0x00,0x00,0x01,0x01,0xb2,0x00,0x00,0x00,0x01,0x01,0xb8,0x00,0x00,0x00,0x01,0x01,0xb9,0x00,0x00,0x00,0x01,0x01,0xba,0x00,0x00,0x00,0x01,0x01,0xbb,0x00,0x00,0x00,0x01,0x01,0xbc,0x00,0x00,0x00,0x01,0x01,0xbd,0x00,0x00,0x00,0x01,0x01,0xbe,0x00,0x00,0x00,0x01,0x01,0xbf,0x00,0x00,0x00,0x01, +0x01,0xc0,0x00,0x00,0x00,0x01,0x01,0xc1,0x00,0x00,0x00,0x01,0x01,0xc2,0x00,0x00,0x00,0x01,0x01,0xc3,0x00,0x00,0x00,0x01,0x01,0xc4,0x00,0x00,0x00,0x01,0x01,0xc5,0x00,0x00,0x00,0x01,0x01,0xc6,0x00,0x00,0x00,0x01,0x01,0xc7,0x00,0x00,0x00,0x01,0x01,0xc8,0x00,0x00,0x00,0x01,0x01,0xc9,0x00,0x00,0x00,0x01,0x01,0xca,0x00,0x00, +0x00,0x01,0x01,0xcb,0x00,0x00,0x00,0x01,0x01,0x9b,0x00,0x00,0x00,0x01,0x01,0xa2,0x00,0x00,0x00,0x01,0x01,0x9c,0x00,0x00,0x00,0x01,0x01,0x9d,0x00,0x00,0x00,0x01,0x01,0xa1,0x00,0x00,0x00,0x01,0x01,0xa0,0x00,0x00,0x00,0x01,0x01,0x9e,0x00,0x00,0x00,0x01,0x01,0x9f,0x00,0x00,0x00,0x01,0x01,0xa8,0x10,0x54,0x00,0x01,0x01,0xb4, +0x10,0x52,0x00,0x01,0x01,0xb5,0x10,0x50,0x00,0x01,0x01,0xb6,0x10,0x4e,0x00,0x01,0x01,0xb7,0x00,0x00,0x00,0x01,0x01,0xa7,0x00,0x00,0x00,0x01,0x01,0xa9,0x00,0x00,0x00,0x01,0x01,0xb3,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x01,0xaf,0x01,0xb1,0x00,0x00,0x00,0x03,0x01,0x94,0x01,0x97,0x01,0x9a,0x00,0x00, +0x00,0x03,0x01,0xaa,0x01,0xab,0x01,0xac,0x00,0x00,0x00,0x04,0x01,0x94,0x01,0x97,0x01,0x9a,0x01,0x9a,0x00,0x00,0x00,0x9a,0x00,0x02,0x00,0x04,0x00,0x07,0x00,0x0a,0x00,0x0d,0x00,0x10,0x00,0x13,0x00,0x16,0x00,0x19,0x00,0x1c,0x00,0x1e,0x00,0x20,0x00,0x23,0x00,0x27,0x00,0x2c,0x00,0x2e,0x00,0x30,0x00,0x32,0x00,0x34,0x00,0x36, +0x00,0x38,0x00,0x3a,0x00,0x3d,0x00,0x41,0x00,0x43,0x00,0x46,0x00,0x49,0x00,0x4b,0x00,0x4e,0x00,0x50,0x00,0x54,0x00,0x57,0x00,0x5b,0x00,0x5d,0x00,0x60,0x00,0x64,0x00,0x67,0x00,0x6a,0x00,0x6d,0x00,0x6f,0x00,0x72,0x00,0x74,0x00,0x76,0x00,0x79,0x00,0x7c,0x00,0x80,0x00,0x83,0x00,0x85,0x00,0x87,0x00,0x8b,0x00,0x8e,0x00,0x90, +0x00,0x92,0x00,0x95,0x00,0x98,0x00,0x9a,0x00,0x9d,0x00,0xa1,0x00,0xa3,0x00,0xa5,0x00,0xa7,0x00,0xa9,0x00,0xac,0x00,0xaf,0x00,0xb1,0x00,0xb4,0x00,0xb6,0x00,0xb9,0x00,0xbc,0x00,0xbf,0x00,0xc1,0x00,0xc4,0x00,0xc8,0x00,0xcb,0x00,0xcd,0x00,0xcf,0x00,0xd1,0x00,0xd4,0x00,0xd7,0x00,0xdb,0x00,0xdf,0x00,0xe1,0x00,0xe3,0x00,0xe6, +0x00,0xea,0x00,0xed,0x00,0xef,0x00,0xf2,0x00,0xf5,0x00,0xf7,0x00,0xf9,0x00,0xfc,0x00,0xff,0x01,0x02,0x01,0x06,0x01,0x09,0x01,0x0d,0x01,0x0f,0x01,0x11,0x01,0x13,0x01,0x16,0x01,0x18,0x01,0x1c,0x01,0x1e,0x01,0x21,0x01,0x24,0x01,0x27,0x01,0x2a,0x01,0x2d,0x01,0x30,0x01,0x33,0x01,0x36,0x01,0x39,0x01,0x3c,0x01,0x3e,0x01,0x41, +0x01,0x43,0x01,0x46,0x01,0x48,0x01,0x4a,0x01,0x4d,0x01,0x50,0x01,0x52,0x01,0x54,0x01,0x56,0x01,0x58,0x01,0x5b,0x01,0x5d,0x01,0x60,0x01,0x62,0x01,0x64,0x01,0x66,0x01,0x68,0x01,0x6a,0x01,0x6c,0x01,0x6e,0x01,0x70,0x01,0x72,0x01,0x74,0x01,0x76,0x01,0x78,0x01,0x7a,0x01,0x7c,0x01,0x7e,0x01,0x80,0x01,0x82,0x01,0x84,0x01,0x86, +0x01,0x88,0x01,0x8a,0x01,0x8c,0x01,0x8e,0x01,0x90,0x01,0x92,0x00,0x01,0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x1d,0xcc,0x00,0x06,0x00,0x00,0x00,0x01,0x1b,0xf6,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0xba,0x00,0x06,0x00,0x00,0x00,0x01,0x1b,0x60,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0xb0,0x00,0x06,0x00,0x00, +0x00,0x01,0x10,0x3a,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0xa6,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0xa4,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x2a,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0x9a,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0x98,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x1a,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x1c,0x00,0x01,0x00,0x00, +0x00,0x01,0x11,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x20,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x22,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x24,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x26,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x28,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x2a,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x2c,0x00,0x06,0x00,0x00, +0x00,0x01,0x18,0xcc,0x00,0x01,0x00,0x00,0x00,0x01,0x18,0xd0,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x1e,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x20,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x22,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x24,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x9a,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0x0e,0x00,0x06,0x00,0x00, +0x00,0x01,0x0f,0x92,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0x04,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x8a,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0xfa,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0xf8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xee,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xf0,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xf2,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0xf4,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xf6,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xf8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xfa,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xfc,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xfe,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x02,0x00,0x01,0x00,0x00, +0x00,0x01,0x11,0x04,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1a,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x8e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x12,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x84,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xe6,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xe8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xea,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0xec,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x62,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xe6,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xe8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xea,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xec,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xee,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xf0,0x00,0x06,0x00,0x00, +0x00,0x01,0x10,0xf2,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xf4,0x00,0x06,0x00,0x00,0x00,0x01,0x0e,0xa2,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x18,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x16,0x00,0x06,0x00,0x00,0x00,0x01,0x0e,0x92,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x0c,0x00,0x06,0x00,0x00,0x00,0x01,0x0e,0x8a,0x00,0x01,0x00,0x00, +0x00,0x01,0x0d,0x02,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xb6,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xb8,0x00,0x06,0x00,0x00,0x00,0x01,0x0e,0x6a,0x00,0x01,0x00,0x00,0x00,0x01,0x0c,0xe6,0x00,0x06,0x00,0x00,0x00,0x01,0x0e,0x62,0x00,0x01,0x00,0x00,0x00,0x01,0x0c,0xdc,0x00,0x06,0x00,0x00, +0x00,0x01,0x10,0x9a,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x9c,0x00,0x01,0x00,0x00,0x00,0x01,0x0c,0xca,0x00,0x06,0x00,0x00,0x00,0x01,0x17,0x0c,0x00,0x01,0x00,0x00,0x00,0x01,0x17,0x10,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x86,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x88,0x00,0x06,0x00,0x00,0x00,0x01,0x19,0x28,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0x82,0x00,0x06,0x00,0x00,0x00,0x01,0x16,0xf4,0x00,0x01,0x00,0x00,0x00,0x01,0x16,0xf8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x74,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x76,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x78,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x7a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x7c,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0x7e,0x00,0x06,0x00,0x00,0x00,0x01,0x0d,0xd2,0x00,0x01,0x00,0x00,0x00,0x01,0x0c,0x50,0x00,0x06,0x00,0x00,0x00,0x01,0x0d,0xca,0x00,0x01,0x00,0x00,0x00,0x01,0x0c,0x46,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x60,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x62,0x00,0x06,0x00,0x00,0x00,0x01,0x16,0x9c,0x00,0x01,0x00,0x00, +0x00,0x01,0x16,0xa0,0x00,0x06,0x00,0x00,0x00,0x01,0x16,0xa4,0x00,0x01,0x00,0x00,0x00,0x01,0x16,0xa8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x44,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x46,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x48,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x4a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x4c,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0x4e,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x50,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x52,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x54,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x56,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x58,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x5a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x5c,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0x5e,0x00,0x06,0x00,0x00,0x00,0x01,0x0d,0x22,0x00,0x01,0x00,0x00,0x00,0x01,0x0b,0x9c,0x00,0x06,0x00,0x00,0x00,0x01,0x0d,0x1a,0x00,0x01,0x00,0x00,0x00,0x01,0x0b,0x92,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x40,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x42,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x44,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0x46,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x48,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x4a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x4c,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x4e,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x50,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x52,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x54,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0x56,0x00,0x06,0x00,0x00,0x00,0x01,0x15,0xbc,0x00,0x01,0x00,0x00,0x00,0x01,0x15,0xc0,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x48,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x4a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x4c,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x4e,0x00,0x06,0x00,0x00,0x00,0x01,0x0c,0x82,0x00,0x01,0x00,0x00, +0x00,0x01,0x0a,0xf8,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0xf6,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x38,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x3a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x3c,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x3e,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x40,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x42,0x00,0x06,0x00,0x00, +0x00,0x01,0x0c,0x42,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0xbc,0x00,0x06,0x00,0x00,0x00,0x01,0x0c,0x3a,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0xb2,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x24,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x26,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x28,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x2a,0x00,0x06,0x00,0x00, +0x00,0x01,0x10,0x2c,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x2e,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x30,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x32,0x00,0x06,0x00,0x00,0x00,0x01,0x0b,0xf2,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x68,0x00,0x06,0x00,0x00,0x00,0x01,0x0b,0xea,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x5e,0x00,0x06,0x00,0x00, +0x00,0x01,0x0b,0xe2,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x54,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x52,0x00,0x06,0x00,0x00,0x00,0x01,0x0b,0xd2,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x48,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xec,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xee,0x00,0x06,0x00,0x00,0x00,0x01,0x14,0xa4,0x00,0x01,0x00,0x00, +0x00,0x01,0x14,0xa8,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xe0,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xe2,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x16,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xdc,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xde,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xe0,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xe2,0x00,0x06,0x00,0x00, +0x00,0x01,0x0f,0xe4,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xe6,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xe8,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xea,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xec,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xee,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xf0,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xf2,0x00,0x06,0x00,0x00, +0x00,0x01,0x0f,0xf4,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xf6,0x00,0x06,0x00,0x00,0x00,0x01,0x0b,0x22,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x9c,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x9a,0x00,0x06,0x00,0x00,0x00,0x01,0x0b,0x12,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x90,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xd0,0x00,0x01,0x00,0x00, +0x00,0x01,0x0f,0xd2,0x00,0x06,0x00,0x00,0x00,0x01,0x0a,0xfa,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x76,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x74,0x00,0x06,0x00,0x00,0x00,0x01,0x0a,0xea,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x6a,0x00,0x06,0x00,0x00,0x00,0x01,0x0a,0xe2,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x60,0x00,0x01,0x00,0x00, +0x00,0x01,0x09,0x5e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x94,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x96,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x98,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x9a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x9c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x9e,0x00,0x06,0x00,0x00,0x00,0x01,0x0a,0xa2,0x00,0x01,0x00,0x00, +0x00,0x01,0x09,0x24,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x90,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x92,0x00,0x06,0x00,0x00,0x00,0x01,0x0a,0x8a,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x0a,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x08,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x7c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x7e,0x00,0x06,0x00,0x00, +0x00,0x01,0x0a,0x6a,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0xec,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x68,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x6a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x6c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x6e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x70,0x00,0x01,0x00,0x00, +0x00,0x01,0x0f,0x72,0x00,0x06,0x00,0x00,0x00,0x01,0x12,0xec,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0xf0,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x64,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x66,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0x9a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x60,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x62,0x00,0x06,0x00,0x00, +0x00,0x01,0x0f,0x64,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x66,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x68,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x6a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x6c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x6e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x70,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x72,0x00,0x06,0x00,0x00, +0x00,0x01,0x0f,0x74,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x76,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0x38,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x70,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x72,0x00,0x06,0x00,0x00,0x00,0x01,0x09,0x8a,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x12,0x54,0x00,0x01,0x00,0x00, +0x00,0x01,0x12,0x58,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x54,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x56,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x58,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x5a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x5c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x5e,0x00,0x01,0x00,0x00,0x00,0x01,0x07,0xdc,0x00,0x06,0x00,0x00, +0x00,0x01,0x12,0x24,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x28,0x00,0x06,0x00,0x00,0x00,0x01,0x12,0x2c,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x30,0x00,0x06,0x00,0x00,0x00,0x01,0x12,0x34,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x38,0x00,0x06,0x00,0x00,0x00,0x01,0x12,0x3c,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x40,0x00,0x06,0x00,0x00, +0x00,0x01,0x0f,0x18,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x20,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x22,0x00,0x01,0x00,0x00,0x00,0x01,0x07,0x6a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1c,0x00,0x01,0x00,0x00, +0x00,0x01,0x0f,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x20,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x22,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x24,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x26,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x28,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x2a,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0xcc,0x00,0x01,0x00,0x00, +0x00,0x01,0x11,0xd0,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x20,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x22,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0xb4,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xb8,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x14,0x00,0x01,0x00,0x00, +0x00,0x01,0x0f,0x16,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x18,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1a,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x9c,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xa0,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x0c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x0e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x10,0x00,0x01,0x00,0x00, +0x00,0x01,0x0f,0x12,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x84,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x88,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x04,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x06,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x08,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x0a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x0c,0x00,0x01,0x00,0x00, +0x00,0x01,0x0f,0x0e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x10,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x12,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x14,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x16,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x18,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1c,0x00,0x01,0x00,0x00, +0x00,0x01,0x0f,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x20,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x22,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x24,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x26,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x28,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x2a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xec,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0xf0,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1e,0x00,0x01,0x00,0x00,0x00,0x01,0x14,0xd8,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x40,0x00,0x01,0x00,0x00,0x00,0x01,0x14,0x1c,0x00,0x04,0x00,0x00,0x00,0x01,0x10,0xcc,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0xa8,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0xca,0x00,0x06,0x00,0x00,0x00,0x01,0x06,0xf2,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x96,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x94,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x92,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x86,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x88,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x86,0x00,0x01,0x00,0x00, +0x00,0x01,0x05,0x84,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x90,0x00,0x04,0x00,0x00,0x00,0x01,0x06,0xb2,0x00,0x01,0x00,0x00,0x00,0x01,0x14,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x6a,0x00,0x01,0x00,0x00,0x00,0x01,0x14,0xac,0x00,0x01,0x00,0x00,0x00,0x01,0x13,0x42,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x6e,0x00,0x01,0x00,0x00, +0x00,0x01,0x0e,0x78,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xea,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x40,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x3e,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x54,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xdc,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x2c,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xc8,0x00,0x01,0x00,0x00, +0x00,0x01,0x12,0x52,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x1a,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x18,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xf2,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x58,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x48,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x12,0x00,0x01,0x00,0x00,0x00,0x01,0x04,0xf6,0x00,0x01,0x00,0x00, +0x00,0x01,0x04,0xf4,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xe6,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x30,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x38,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0xe2,0x00,0x06,0x00,0x00,0x00,0x02,0x10,0xca,0x10,0xe0,0x00,0x06,0x00,0x00,0x00,0x02,0x10,0xec,0x11,0x02,0x00,0x06,0x00,0x00,0x00,0x02,0x10,0x6e, +0x10,0x80,0x00,0x06,0x00,0x00,0x00,0x02,0x10,0x88,0x10,0x9a,0x00,0x06,0x00,0x00,0x00,0x04,0x10,0xfa,0x11,0x4a,0x11,0x0c,0x11,0x1e,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10, +0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b, +0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06, +0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23, +0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1b,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27, +0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1c, +0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14, +0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1d,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e, +0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1e,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08, +0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1f,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01, +0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x20,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29, +0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x21,0x00,0x22,0x00,0x23, +0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x03,0x00,0x01,0x12,0x42,0x00,0x15,0x00,0x01,0x12,0x36,0x00,0x33,0x00,0x01,0x11,0xc0,0x00,0x31,0x00,0x01,0x11,0xba,0x03,0x89,0x00,0x01,0x11,0xba,0x00,0x35,0x00,0x01,0x11,0xb4, +0x03,0x88,0x00,0x01,0x11,0xb4,0x00,0x66,0x00,0x01,0x11,0xae,0x00,0x67,0x00,0x01,0x11,0xa8,0x00,0x68,0x00,0x01,0x11,0xa2,0x03,0x94,0x00,0x01,0x12,0x0c,0x00,0x6e,0x00,0x01,0x12,0x06,0x00,0x70,0x00,0x01,0x12,0x00,0x03,0x91,0x00,0x01,0x11,0x90,0x00,0x63,0x00,0x01,0x11,0x8a,0x03,0x9a,0x00,0x01,0x11,0x8a,0x02,0x08,0x00,0x01, +0x11,0x84,0x02,0x09,0x00,0x01,0x11,0x7e,0x02,0xb9,0x00,0x01,0x11,0x7e,0x00,0x56,0x00,0x01,0x11,0x78,0x00,0x57,0x00,0x01,0x11,0x72,0x03,0xa5,0x00,0x01,0x11,0x72,0x02,0x32,0x00,0x01,0x11,0x6c,0x02,0x35,0x00,0x01,0x11,0x6c,0x02,0x15,0x00,0x01,0x11,0x66,0x02,0x18,0x00,0x01,0x11,0x66,0x00,0x60,0x00,0x01,0x11,0x60,0x03,0xa0, +0x00,0x01,0x11,0x60,0x02,0x0a,0x00,0x01,0x11,0x5a,0x02,0x0b,0x00,0x01,0x11,0x94,0x00,0x59,0x00,0x01,0x11,0x54,0x00,0x60,0x00,0x01,0x11,0x4e,0x00,0x61,0x00,0x01,0x11,0x48,0x03,0xa2,0x00,0x01,0x11,0x7c,0x00,0x5a,0x00,0x01,0x11,0x76,0x03,0xa3,0x00,0x01,0x11,0x3c,0x00,0x55,0x00,0x01,0x11,0x36,0x01,0x10,0x00,0x01,0x11,0x36, +0x00,0x15,0x00,0x01,0x11,0x30,0x00,0x16,0x00,0x01,0x11,0x2a,0x03,0x77,0x00,0x01,0x11,0x2a,0x00,0x64,0x00,0x01,0x11,0x24,0x00,0x65,0x00,0x01,0x11,0x1e,0x03,0x9e,0x00,0x01,0x11,0x1e,0x00,0x57,0x00,0x01,0x11,0x18,0x00,0x58,0x00,0x01,0x11,0x12,0x01,0x19,0x00,0x01,0x11,0x12,0x00,0x55,0x00,0x01,0x11,0x0c,0x03,0x72,0x00,0x01, +0x10,0xe2,0x02,0xb5,0x00,0x01,0x10,0xd0,0x02,0xb3,0x00,0x01,0x11,0x00,0x02,0x39,0x00,0x01,0x10,0xbe,0x02,0xb2,0x00,0x01,0x10,0xf4,0x02,0xac,0x00,0x01,0x10,0x70,0x00,0x07,0x00,0x01,0x10,0xee,0x00,0x0f,0x00,0x01,0x10,0xe8,0x00,0x10,0x00,0x01,0x13,0x50,0x00,0x10,0x00,0x01,0x10,0xf2,0xff,0xe3,0x00,0x01,0x13,0x44,0x00,0x24, +0x00,0x01,0x13,0x34,0xff,0xf6,0x00,0x01,0x10,0x4c,0x00,0x0a,0x00,0x01,0x12,0x30,0x00,0x38,0x00,0x01,0x12,0x34,0x00,0x94,0x00,0x01,0x10,0x40,0x00,0x7f,0x00,0x01,0x10,0x46,0x00,0xae,0x00,0x01,0x12,0x2c,0x00,0x63,0x00,0x01,0x10,0x34,0x00,0x40,0x00,0x01,0x10,0x34,0x00,0xcf,0x00,0x01,0x10,0x34,0x00,0x01,0x13,0x12,0x00,0x01, +0x10,0x32,0x00,0x01,0x13,0x14,0x00,0x01,0x10,0x30,0x00,0x01,0x13,0x16,0x00,0x01,0x10,0x28,0x00,0x01,0x16,0x76,0x00,0x01,0x10,0x20,0x00,0x01,0x18,0xee,0x00,0x01,0x10,0x88,0x00,0x01,0x16,0x72,0x00,0x01,0x10,0x80,0x00,0x01,0x16,0x76,0x00,0x01,0x10,0x0e,0x00,0x01,0x16,0x7a,0x00,0x01,0x10,0x0c,0x00,0x01,0x12,0xf0,0x00,0x01, +0x10,0x04,0x00,0x01,0x16,0x76,0x00,0x01,0x10,0x02,0x00,0x01,0x16,0x7a,0x00,0x01,0x0f,0xfa,0x00,0x01,0x16,0x7e,0x00,0x01,0x0f,0xf8,0x00,0x01,0x1b,0x08,0x00,0x01,0x0f,0xf0,0x00,0x01,0x16,0x7a,0x00,0x01,0x0f,0xee,0x00,0x01,0x1b,0x0a,0x00,0x01,0x0f,0xe6,0x00,0x01,0x16,0x76,0x00,0x01,0x0f,0xe4,0x00,0x01,0x18,0x9c,0x00,0x01, +0x0f,0xe2,0x00,0x01,0x1a,0x4a,0x00,0x01,0x0f,0xda,0x00,0x01,0x1a,0xfc,0x00,0x01,0x10,0x12,0x00,0x01,0x16,0x62,0x00,0x01,0x0f,0xd0,0x00,0x01,0x12,0x9a,0x00,0x01,0x0f,0xc8,0x00,0x01,0x16,0x5e,0x00,0x01,0x0f,0xfa,0x00,0x01,0x16,0x62,0x00,0x01,0x0f,0xbe,0x00,0x01,0x18,0x72,0x00,0x01,0x0f,0xbc,0x00,0x01,0x1a,0x22,0x00,0x01, +0x0f,0xb4,0x00,0x01,0x18,0x70,0x00,0x01,0x0f,0xb2,0x00,0x01,0x12,0x74,0x00,0x01,0x0f,0xaa,0x00,0x01,0x16,0x46,0x00,0x01,0x0f,0xa8,0x00,0x01,0x12,0x6e,0x00,0x01,0x0f,0xa0,0x00,0x01,0x16,0x42,0x00,0x01,0x0f,0x9e,0x00,0x01,0x12,0x68,0x00,0x01,0x0f,0x9c,0x00,0x01,0x18,0x4e,0x00,0x01,0x0f,0x9a,0x00,0x01,0x12,0x62,0x00,0x01, +0x21,0xd0,0x00,0x01,0x0f,0x98,0x00,0x01,0x12,0x6c,0x00,0x02,0x12,0x5c,0x12,0x64,0x00,0x02,0x12,0x62,0x00,0x02,0x06,0xce,0x03,0x77,0x00,0x02,0x12,0x58,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x12,0x56,0x00,0x02,0x10,0xf6,0x16,0x08,0x00,0x02,0x12,0x4c,0x00,0x02,0x03,0x6e,0x06,0xce,0x00,0x02,0x12,0x42,0x00,0x02,0x06,0xce, +0x06,0xce,0x00,0x01,0x12,0x48,0x00,0x02,0x10,0xde,0x12,0x40,0x00,0x02,0x12,0x3e,0x00,0x02,0x03,0x79,0x06,0xce,0x00,0x01,0x12,0x3c,0x00,0x02,0x15,0xe0,0x0f,0x56,0x00,0x02,0x12,0x32,0x00,0x02,0x06,0xce,0x03,0x8f,0x00,0x01,0x13,0x08,0x00,0x02,0x0f,0x46,0x15,0xd6,0x00,0x02,0x12,0xfe,0x00,0x02,0x06,0x20,0x06,0xce,0x00,0x01, +0x12,0x24,0x00,0x02,0x0f,0x36,0x12,0x1c,0x00,0x02,0x12,0x1a,0x00,0x02,0x06,0x0b,0x06,0xce,0x00,0x01,0x12,0x20,0x00,0x02,0x0f,0x26,0x12,0x18,0x00,0x02,0x12,0x16,0x00,0x02,0x06,0x11,0x06,0xce,0x00,0x01,0x12,0x14,0x00,0x02,0x10,0x80,0x0f,0x16,0x00,0x02,0x12,0x0a,0x00,0x02,0x06,0xce,0x03,0x7c,0x00,0x01,0x12,0x08,0x00,0x02, +0x0f,0x06,0x10,0x72,0x00,0x02,0x11,0xfe,0x00,0x02,0x06,0x12,0x06,0xce,0x00,0x01,0x11,0xfc,0x00,0x02,0x1a,0x28,0x0e,0xf6,0x00,0x02,0x11,0xf2,0x00,0x02,0x06,0xce,0x03,0x7d,0x00,0x01,0x11,0xf8,0x00,0x02,0x11,0xf0,0x0e,0xe6,0x00,0x02,0x11,0xee,0x00,0x02,0x06,0xce,0x03,0x7a,0x00,0x02,0x11,0xec,0x00,0x02,0x03,0xaf,0x06,0xce, +0x00,0x02,0x11,0xe2,0x00,0x02,0x06,0xce,0x03,0xae,0x00,0x01,0x12,0xd0,0x00,0x02,0x15,0x40,0x0e,0xc2,0x00,0x02,0x12,0xc6,0x00,0x02,0x06,0xce,0x03,0xa8,0x00,0x01,0x12,0xbc,0x00,0x02,0x17,0x2c,0x0e,0xb2,0x00,0x02,0x12,0xb2,0x00,0x02,0x06,0xce,0x03,0xac,0x00,0x01,0x12,0xa8,0x00,0x02,0x11,0xb8,0x10,0x00,0x00,0x02,0x12,0x9e, +0x00,0x02,0x06,0xce,0x03,0xa9,0x00,0x01,0x11,0xac,0x00,0x02,0x0e,0x8e,0x18,0xa2,0x00,0x02,0x11,0xa2,0x00,0x02,0x03,0xa6,0x06,0xce,0x00,0x01,0x11,0x98,0x00,0x02,0x0f,0xde,0x18,0x9c,0x00,0x02,0x11,0x8e,0x00,0x02,0x03,0xa7,0x06,0xce,0x00,0x01,0x11,0x84,0x00,0x02,0x18,0x96,0x0e,0x6a,0x00,0x02,0x11,0x7a,0x00,0x02,0x06,0xce, +0x03,0x99,0x00,0x01,0x12,0x38,0x00,0x02,0x11,0x78,0x0e,0x5a,0x00,0x02,0x12,0x2e,0x00,0x02,0x06,0xce,0x03,0x82,0x00,0x01,0x11,0x6c,0x00,0x02,0x14,0xbe,0x0e,0x4a,0x00,0x02,0x11,0x62,0x00,0x02,0x06,0xce,0x03,0x81,0x00,0x01,0x13,0xd0,0x00,0x02,0x0e,0x3a,0x14,0xb4,0x00,0x02,0x13,0xc6,0x00,0x02,0x06,0x4f,0x06,0xce,0x00,0x02, +0x13,0xbc,0x00,0x02,0x06,0x34,0x06,0xce,0x00,0x01,0x11,0x4a,0x00,0x02,0x0e,0x20,0x11,0x42,0x00,0x02,0x11,0x40,0x00,0x02,0x06,0x4d,0x06,0xce,0x00,0x01,0x11,0x8e,0x00,0x02,0x0e,0x10,0x14,0x8c,0x00,0x02,0x11,0x84,0x00,0x02,0x06,0x39,0x06,0xce,0x00,0x01,0x11,0x7a,0x00,0x02,0x0e,0x00,0x14,0x82,0x00,0x02,0x11,0x70,0x00,0x02, +0x06,0xce,0x06,0x3a,0x00,0x01,0x11,0xfe,0x00,0x02,0x14,0x78,0x0d,0xf0,0x00,0x02,0x11,0xf4,0x00,0x02,0x06,0xce,0x06,0x52,0x00,0x01,0x11,0x12,0x00,0x02,0x11,0x02,0x11,0x0a,0x00,0x02,0x11,0x08,0x00,0x02,0x06,0xce,0x06,0x40,0x00,0x01,0x10,0xfe,0x00,0x02,0x14,0x5a,0x0f,0x12,0x00,0x02,0x10,0xf4,0x00,0x02,0x06,0xce,0x06,0x3f, +0x00,0x01,0x10,0xea,0x00,0x02,0x14,0x50,0x0d,0xb8,0x00,0x02,0x10,0xe0,0x00,0x02,0x06,0xce,0x06,0x3e,0x00,0x01,0x11,0x36,0x00,0x02,0x14,0x46,0x0d,0xa8,0x00,0x02,0x11,0x2c,0x00,0x02,0x06,0xce,0x03,0x70,0x00,0x01,0x11,0x82,0x00,0x02,0x10,0xca,0x0e,0xdc,0x00,0x02,0x11,0x78,0x00,0x02,0x06,0xce,0x03,0x72,0x00,0x01,0x11,0x6e, +0x00,0x02,0x15,0xda,0x0d,0x84,0x00,0x02,0x11,0x64,0x00,0x02,0x06,0xce,0x03,0x6f,0x00,0x01,0x11,0x5a,0x00,0x02,0x18,0x04,0x0d,0x74,0x00,0x02,0x11,0x50,0x00,0x02,0x06,0xce,0x03,0x71,0x00,0x01,0x11,0x3e,0x00,0x02,0x0d,0x64,0x15,0xbe,0x00,0x02,0x11,0x34,0x00,0x02,0x06,0x2e,0x06,0xce,0x00,0x01,0x10,0xaa,0x00,0x02,0x0d,0x54, +0x10,0x82,0x00,0x02,0x10,0xa0,0x00,0x02,0x06,0x2d,0x06,0xce,0x00,0x01,0x10,0x76,0x00,0x02,0x0d,0x44,0x18,0x3c,0x00,0x02,0x10,0x6c,0x00,0x02,0x06,0x2c,0x06,0xce,0x00,0x01,0x11,0x1a,0x00,0x02,0x0d,0x34,0x17,0x32,0x00,0x02,0x11,0x10,0x00,0x02,0x06,0x47,0x06,0xce,0x00,0x01,0x11,0x06,0x00,0x02,0x0d,0x24,0x13,0xb0,0x00,0x02, +0x10,0xfc,0x00,0x02,0x06,0x50,0x06,0xce,0x00,0x01,0x10,0xf2,0x00,0x02,0x0e,0x42,0x15,0x66,0x00,0x02,0x10,0xe8,0x00,0x02,0x06,0x49,0x06,0xce,0x00,0x01,0x10,0x2e,0x00,0x02,0x13,0x92,0x0d,0x00,0x00,0x02,0x10,0x24,0x00,0x02,0x03,0xb0,0x06,0xce,0x00,0x01,0x10,0x22,0x00,0x02,0x16,0xf0,0x0c,0xf0,0x00,0x02,0x10,0x18,0x00,0x02, +0x06,0xce,0x03,0x90,0x00,0x01,0x10,0x0e,0x00,0x02,0x15,0x36,0x0e,0x0c,0x00,0x02,0x10,0x04,0x00,0x02,0x06,0xce,0x03,0x91,0x00,0x01,0x0f,0xfa,0x00,0x02,0x0c,0xcc,0x15,0x2e,0x00,0x02,0x0f,0xf0,0x00,0x02,0x06,0xce,0x06,0x22,0x00,0x01,0x10,0x76,0x00,0x02,0x17,0xd0,0x0c,0xbc,0x00,0x02,0x10,0x6c,0x00,0x02,0x06,0xce,0x06,0x26, +0x00,0x01,0x0f,0xf2,0x00,0x02,0x0c,0xac,0x15,0x12,0x00,0x02,0x0f,0xe8,0x00,0x02,0x06,0xce,0x06,0x21,0x00,0x01,0x0f,0xde,0x00,0x02,0x13,0x24,0x0c,0x9c,0x00,0x02,0x0f,0xd4,0x00,0x02,0x06,0xce,0x03,0x89,0x00,0x01,0x0f,0xba,0x00,0x02,0x0f,0xb2,0x0c,0x8c,0x00,0x02,0x0f,0xb0,0x00,0x02,0x06,0xce,0x03,0x8a,0x00,0x01,0x0f,0xae, +0x00,0x02,0x13,0x06,0x0c,0x7c,0x00,0x02,0x0f,0xa4,0x00,0x02,0x06,0xce,0x03,0x8b,0x00,0x01,0x0f,0xd2,0x00,0x02,0x12,0xfc,0x0c,0x6c,0x00,0x02,0x0f,0xc8,0x00,0x02,0x06,0xce,0x03,0x87,0x00,0x01,0x0f,0x8e,0x00,0x02,0x12,0xf2,0x0c,0x5c,0x00,0x02,0x0f,0x84,0x00,0x02,0x06,0xce,0x03,0x86,0x00,0x01,0x0f,0x8a,0x00,0x02,0x0c,0x4c, +0x14,0xa6,0x00,0x02,0x0f,0x80,0x00,0x02,0x06,0x16,0x06,0xce,0x00,0x01,0x0f,0x76,0x00,0x02,0x0c,0x3c,0x14,0x9e,0x00,0x02,0x0f,0x6c,0x00,0x02,0x06,0x18,0x06,0xce,0x00,0x01,0x0f,0x62,0x00,0x02,0x0c,0x2c,0x0f,0x5a,0x00,0x02,0x0f,0x58,0x00,0x02,0x06,0x1b,0x06,0xce,0x00,0x01,0x0f,0x56,0x00,0x02,0x0c,0x1c,0x12,0xac,0x00,0x02, +0x0f,0x4c,0x00,0x02,0x06,0x14,0x06,0xce,0x00,0x01,0x0f,0x4a,0x00,0x02,0x0c,0x0c,0x12,0xa2,0x00,0x02,0x0f,0x40,0x00,0x02,0x06,0x17,0x06,0xce,0x00,0x01,0x0f,0x2e,0x00,0x02,0x0b,0xfc,0x12,0x98,0x00,0x02,0x0f,0x24,0x00,0x02,0x06,0x0f,0x06,0xce,0x00,0x01,0x0f,0x22,0x00,0x02,0x0b,0xec,0x12,0x8e,0x00,0x02,0x0f,0x18,0x00,0x02, +0x06,0x19,0x06,0xce,0x00,0x01,0x10,0xf6,0x00,0x02,0x0c,0xd2,0x0f,0x16,0x00,0x02,0x10,0xec,0x00,0x02,0x06,0x35,0x06,0xce,0x00,0x01,0x0f,0x0a,0x00,0x02,0x0b,0xc8,0x12,0x70,0x00,0x02,0x0f,0x00,0x00,0x02,0x03,0x93,0x06,0xce,0x00,0x01,0x0e,0xfe,0x00,0x02,0x16,0x6e,0x0b,0xb8,0x00,0x02,0x0e,0xf4,0x00,0x02,0x06,0xce,0x03,0x96, +0x00,0x01,0x0e,0xfa,0x00,0x02,0x0b,0xa8,0x0e,0xf2,0x00,0x02,0x0e,0xf0,0x00,0x02,0x03,0x92,0x06,0xce,0x00,0x01,0x0e,0xee,0x00,0x02,0x0b,0x98,0x12,0x3e,0x00,0x02,0x0e,0xe4,0x00,0x02,0x06,0x0e,0x06,0xce,0x00,0x01,0x0e,0xea,0x00,0x02,0x0e,0xe2,0x0b,0x88,0x00,0x02,0x0e,0xe0,0x00,0x02,0x06,0xce,0x03,0x83,0x00,0x01,0x0e,0xde, +0x00,0x02,0x0b,0x78,0x13,0xba,0x00,0x02,0x0e,0xd4,0x00,0x02,0x06,0xce,0x06,0x29,0x00,0x01,0x10,0x6a,0x00,0x02,0x0b,0x68,0x12,0x0c,0x00,0x02,0x10,0x60,0x00,0x02,0x06,0xce,0x06,0x38,0x00,0x01,0x0e,0xd6,0x00,0x02,0x0b,0x58,0x13,0x9e,0x00,0x02,0x0e,0xcc,0x00,0x02,0x06,0xce,0x06,0x4c,0x00,0x01,0x0e,0xaa,0x00,0x02,0x15,0x6c, +0x0b,0x48,0x00,0x02,0x0e,0xa0,0x00,0x02,0x06,0xce,0x06,0x25,0x00,0x01,0x0e,0x96,0x00,0x02,0x11,0xda,0x0c,0x10,0x00,0x02,0x0e,0x8c,0x00,0x02,0x06,0xce,0x06,0x27,0x00,0x01,0x0e,0x82,0x00,0x02,0x0b,0x24,0x11,0xd0,0x00,0x02,0x0e,0x78,0x00,0x02,0x06,0xce,0x06,0x2f,0x00,0x01,0x0e,0x6e,0x00,0x02,0x0b,0x14,0x11,0xc6,0x00,0x02, +0x0e,0x64,0x00,0x02,0x06,0x32,0x06,0xce,0x00,0x01,0x0e,0x62,0x00,0x02,0x0b,0x04,0x11,0xbc,0x00,0x02,0x0e,0x58,0x00,0x02,0x06,0x31,0x06,0xce,0x00,0x01,0x0e,0x4e,0x00,0x02,0x0a,0xf4,0x13,0x32,0x00,0x02,0x0e,0x44,0x00,0x02,0x06,0x2a,0x06,0xce,0x00,0x01,0x0e,0x3a,0x00,0x02,0x0a,0xe4,0x11,0x9e,0x00,0x02,0x0e,0x30,0x00,0x02, +0x06,0xce,0x06,0x2b,0x00,0x01,0x0e,0x3e,0x00,0x02,0x11,0x94,0x0a,0xd4,0x00,0x02,0x0e,0x34,0x00,0x02,0x06,0xce,0x06,0x53,0x00,0x01,0x0f,0xa2,0x00,0x02,0x13,0x02,0x0a,0xc4,0x00,0x02,0x0f,0x98,0x00,0x02,0x06,0xce,0x03,0x73,0x00,0x01,0x0f,0x8e,0x00,0x02,0x0e,0x06,0x0b,0x76,0x00,0x02,0x0f,0x84,0x00,0x02,0x06,0xce,0x03,0x74, +0x00,0x01,0x0d,0xfa,0x00,0x02,0x11,0x62,0x0b,0x68,0x00,0x02,0x0d,0xf0,0x00,0x02,0x06,0xce,0x06,0x28,0x00,0x01,0x0d,0xee,0x00,0x02,0x11,0x58,0x0b,0x5a,0x00,0x02,0x0d,0xe4,0x00,0x02,0x06,0xce,0x06,0x55,0x00,0x01,0x0d,0xfa,0x00,0x02,0x11,0x4e,0x0a,0x78,0x00,0x02,0x0d,0xf0,0x00,0x02,0x06,0xce,0x03,0x75,0x00,0x01,0x0d,0xd6, +0x00,0x02,0x0a,0x68,0x11,0x44,0x00,0x02,0x0d,0xcc,0x00,0x02,0x06,0x5c,0x06,0xce,0x00,0x01,0x0d,0xc2,0x00,0x02,0x0a,0x58,0x0d,0xba,0x00,0x02,0x0d,0xb8,0x00,0x02,0x06,0x5a,0x06,0xce,0x00,0x01,0x0d,0xbe,0x00,0x02,0x0a,0x48,0x0d,0xb6,0x00,0x02,0x0d,0xb4,0x00,0x02,0x06,0x58,0x06,0xce,0x00,0x01,0x0d,0xba,0x00,0x02,0x0d,0xb2, +0x0a,0x38,0x00,0x02,0x0d,0xb0,0x00,0x02,0x06,0xce,0x06,0x59,0x00,0x01,0x0d,0xb6,0x00,0x02,0x0a,0x28,0x0d,0xae,0x00,0x02,0x0d,0xac,0x00,0x02,0x06,0x5d,0x06,0xce,0x00,0x01,0x0d,0xb2,0x00,0x02,0x0a,0x18,0x0d,0xaa,0x00,0x02,0x0d,0xa8,0x00,0x02,0x06,0x42,0x06,0xce,0x00,0x01,0x0d,0xae,0x00,0x02,0x0d,0xa6,0x0a,0x08,0x00,0x02, +0x0d,0xa4,0x00,0x02,0x06,0xce,0x06,0x1c,0x00,0x01,0x0d,0xaa,0x00,0x02,0x09,0xf8,0x0d,0xa2,0x00,0x02,0x0d,0xa0,0x00,0x02,0x06,0x45,0x06,0xce,0x00,0x01,0x0d,0xa6,0x00,0x02,0x0d,0x9e,0x09,0xe8,0x00,0x02,0x0d,0x9c,0x00,0x02,0x06,0xce,0x06,0x1f,0x00,0x01,0x0d,0xa2,0x00,0x02,0x09,0xd8,0x0d,0x9a,0x00,0x02,0x0d,0x98,0x00,0x02, +0x06,0x3c,0x06,0xce,0x00,0x01,0x0d,0x9e,0x00,0x02,0x0d,0x96,0x09,0xc8,0x00,0x02,0x0d,0x94,0x00,0x02,0x06,0xce,0x03,0x98,0x00,0x01,0x0d,0x9a,0x00,0x02,0x09,0xb8,0x0d,0x92,0x00,0x02,0x0d,0x90,0x00,0x02,0x06,0x56,0x06,0xce,0x00,0x01,0x0d,0x96,0x00,0x02,0x0d,0x8e,0x09,0xa8,0x00,0x02,0x0d,0x8c,0x00,0x02,0x06,0xce,0x03,0xaa, +0x00,0x01,0x0d,0x92,0x00,0x02,0x0d,0x8a,0x09,0x98,0x00,0x02,0x0d,0x88,0x00,0x02,0x06,0xce,0x03,0x9b,0x00,0x01,0x0d,0x8e,0x00,0x02,0x0d,0x86,0x09,0x88,0x00,0x02,0x0d,0x84,0x00,0x02,0x06,0xce,0x03,0x9c,0x00,0x01,0x0d,0x8a,0x00,0x02,0x0d,0x82,0x09,0x78,0x00,0x02,0x0d,0x80,0x00,0x02,0x06,0xce,0x03,0x9a,0x00,0x01,0x0d,0x86, +0x00,0x02,0x09,0x68,0x0d,0x7e,0x00,0x02,0x0d,0x7c,0x00,0x02,0x03,0x9f,0x06,0xce,0x00,0x01,0x0d,0x7a,0x00,0x02,0x0f,0xfa,0x09,0x58,0x00,0x02,0x0d,0x70,0x00,0x02,0x06,0xce,0x03,0xa4,0x00,0x01,0x0d,0x76,0x00,0x02,0x09,0x48,0x0d,0x6e,0x00,0x02,0x0d,0x6c,0x00,0x02,0x03,0x9e,0x06,0xce,0x00,0x01,0x0d,0x72,0x00,0x02,0x09,0x38, +0x0d,0x6a,0x00,0x02,0x0d,0x68,0x00,0x02,0x03,0x9d,0x06,0xce,0x00,0x01,0x0d,0x6e,0x00,0x02,0x0d,0x66,0x09,0x28,0x00,0x02,0x0d,0x64,0x00,0x02,0x06,0xce,0x03,0xa3,0x00,0x01,0x0d,0x6a,0x00,0x02,0x09,0x18,0x0d,0x62,0x00,0x02,0x0d,0x60,0x00,0x02,0x03,0x7e,0x06,0xce,0x00,0x02,0x0d,0x5e,0x00,0x02,0x01,0xc5,0x01,0xc4,0x00,0x02, +0x0d,0x5c,0x00,0x02,0x02,0x0b,0x02,0x50,0x00,0x01,0x10,0xde,0x00,0x03,0x09,0x6c,0x0f,0x8c,0x0d,0x5a,0x00,0x02,0x10,0xd2,0x00,0x03,0x06,0xce,0x06,0xce,0x03,0x78,0x00,0x01,0x10,0xda,0x00,0x03,0x09,0x58,0x0d,0x48,0x10,0xd0,0x00,0x02,0x10,0xce,0x00,0x03,0x06,0xce,0x06,0x3b,0x06,0xce,0x00,0x01,0x10,0xcc,0x00,0x03,0x09,0x44, +0x0d,0x36,0x0f,0x64,0x00,0x02,0x10,0xc0,0x00,0x03,0x06,0xce,0x06,0x44,0x06,0xce,0x00,0x01,0x10,0xf0,0x00,0x03,0x09,0x30,0x09,0x34,0x10,0xbe,0x00,0x02,0x10,0xe4,0x00,0x03,0x06,0xce,0x06,0x4b,0x06,0xce,0x00,0x01,0x10,0xb0,0x00,0x03,0x09,0x20,0x09,0x24,0x0f,0x3c,0x00,0x02,0x10,0xa4,0x00,0x03,0x06,0xce,0x06,0x37,0x06,0xce, +0x00,0x01,0x10,0xa2,0x00,0x03,0x09,0x10,0x0f,0x2c,0x09,0x14,0x00,0x02,0x10,0x96,0x00,0x03,0x06,0x41,0x06,0xce,0x06,0xce,0x00,0x01,0x10,0x94,0x00,0x03,0x0f,0x1c,0x09,0x00,0x09,0x04,0x00,0x02,0x10,0x88,0x00,0x03,0x06,0xce,0x06,0xce,0x03,0x88,0x00,0x01,0x10,0x90,0x00,0x03,0x0c,0xc4,0x08,0xf0,0x10,0x86,0x00,0x02,0x10,0x84, +0x00,0x03,0x06,0xce,0x06,0x4a,0x06,0xce,0x00,0x01,0x10,0x82,0x00,0x03,0x08,0xdc,0x0e,0xf4,0x08,0xe0,0x00,0x02,0x10,0x76,0x00,0x03,0x06,0x54,0x06,0xce,0x06,0xce,0x00,0x01,0x10,0x74,0x00,0x03,0x08,0xcc,0x0e,0xe4,0x08,0xd0,0x00,0x02,0x10,0x68,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0x36,0x00,0x01,0x10,0x70,0x00,0x03,0x08,0xbc, +0x10,0x66,0x08,0xc0,0x00,0x02,0x10,0x64,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0x48,0x00,0x01,0x10,0x62,0x00,0x03,0x08,0xac,0x08,0xb0,0x0e,0xbc,0x00,0x02,0x10,0x56,0x00,0x03,0x06,0xce,0x06,0x1a,0x06,0xce,0x00,0x01,0x10,0x54,0x00,0x03,0x08,0x9c,0x08,0xa0,0x0e,0xac,0x00,0x02,0x10,0x48,0x00,0x03,0x06,0xce,0x06,0x10,0x06,0xce, +0x00,0x01,0x10,0x46,0x00,0x03,0x08,0x8c,0x08,0x90,0x0e,0x9c,0x00,0x02,0x10,0x3a,0x00,0x03,0x06,0xce,0x06,0x43,0x06,0xce,0x00,0x01,0x10,0x38,0x00,0x03,0x08,0x7c,0x08,0x80,0x0e,0x8c,0x00,0x02,0x10,0x2c,0x00,0x03,0x06,0xce,0x06,0x46,0x06,0xce,0x00,0x01,0x10,0x2a,0x00,0x03,0x08,0x6c,0x08,0x70,0x0e,0x7c,0x00,0x02,0x10,0x1e, +0x00,0x03,0x06,0xce,0x06,0x3d,0x06,0xce,0x00,0x01,0x10,0x1c,0x00,0x03,0x08,0x5c,0x08,0x60,0x0e,0x6c,0x00,0x02,0x10,0x10,0x00,0x03,0x06,0xce,0x06,0x57,0x06,0xce,0x00,0x01,0x10,0x0e,0x00,0x03,0x0e,0x5c,0x08,0x4c,0x08,0x50,0x00,0x02,0x10,0x02,0x00,0x03,0x06,0xce,0x03,0xa5,0x06,0xce,0x00,0x01,0x20,0x08,0x00,0x04,0x10,0x76, +0x10,0x80,0x10,0x8a,0x10,0x94,0x00,0x02,0x10,0xee,0x00,0x04,0x00,0x86,0x00,0x8d,0x01,0x49,0x01,0x50,0x00,0x02,0x10,0xec,0x00,0x04,0x01,0xc6,0x01,0xc7,0x01,0xc6,0x01,0xc7,0x00,0x02,0x10,0xea,0x00,0x04,0x03,0xb2,0x03,0xb3,0x06,0x5e,0x06,0x5f,0x00,0x02,0x10,0xe8,0x00,0x04,0x01,0x90,0x01,0x91,0x01,0x92,0x02,0x49,0x00,0x02, +0x10,0xe6,0x00,0x04,0x06,0x02,0x06,0x08,0x06,0x09,0x06,0x0a,0x00,0x02,0x05,0x8e,0x12,0x4c,0x10,0x4a,0x12,0x4c,0x00,0x02,0x0b,0x76,0x0f,0xac,0x00,0x02,0x12,0xb4,0x12,0x8c,0x12,0x64,0x12,0x8c,0x00,0x02,0x0b,0x66,0x0f,0xa2,0x00,0x02,0x11,0x24,0x00,0x05,0x03,0xce,0x03,0xcf,0x06,0x05,0x06,0x06,0x06,0x07,0x00,0x02,0x11,0x22, +0x00,0x05,0x02,0xe2,0x03,0x18,0x03,0x19,0x03,0x1a,0x03,0x1b,0x00,0x02,0x11,0x20,0x00,0x05,0x02,0xe3,0x03,0x1c,0x03,0x1d,0x03,0x1e,0x03,0x1f,0x00,0x02,0x0b,0x1e,0x11,0x34,0x11,0x44,0x11,0xda,0x00,0x03,0x0b,0x26,0x11,0x64,0x0f,0x68,0x00,0x02,0x11,0x42,0x00,0x06,0x01,0x7e,0x01,0x7f,0x01,0x80,0x01,0x81,0x01,0x82,0x01,0x83, +0x00,0x02,0x11,0x30,0x00,0x06,0x01,0x93,0x01,0x94,0x01,0x95,0x01,0x96,0x01,0x97,0x01,0x98,0x00,0x03,0x00,0x01,0x12,0x8e,0x00,0x01,0x05,0x0e,0x00,0x01,0x12,0x8e,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x03,0x00,0x01,0x10,0x4a,0x00,0x01,0x07,0x4e,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0xad,0x00,0x03,0x00,0x01,0x10,0xc2,0x00,0x01, +0x07,0x3c,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0xae,0x00,0x03,0x00,0x01,0x07,0x34,0x00,0x01,0x10,0x62,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0xb0,0x00,0x03,0x00,0x01,0x07,0x22,0x00,0x01,0x10,0x58,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0xb0,0x00,0x03,0x00,0x02,0x10,0x96,0x10,0xe6,0x00,0x01,0x04,0xb8,0x00,0x01,0x10,0xe6,0x00,0x01, +0x00,0x00,0x00,0x37,0x00,0x03,0x00,0x01,0x10,0xd0,0x00,0x01,0x10,0x86,0x00,0x02,0x04,0xa2,0x10,0xd0,0x00,0x01,0x00,0x00,0x00,0x37,0x00,0x03,0x00,0x02,0x10,0x6a,0x10,0xba,0x00,0x01,0x10,0x70,0x00,0x01,0x10,0xba,0x00,0x01,0x00,0x00,0x00,0x39,0x00,0x03,0x00,0x01,0x10,0xa4,0x00,0x01,0x04,0x76,0x00,0x02,0x10,0x5a,0x10,0xa4, +0x00,0x01,0x00,0x00,0x00,0x39,0x00,0x03,0x00,0x00,0x00,0x01,0x10,0xcc,0x00,0x01,0x10,0x9c,0x00,0x01,0x00,0x00,0x01,0x95,0x00,0x03,0x00,0x01,0x11,0x78,0x00,0x01,0x11,0x78,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x95,0x00,0x03,0x00,0x01,0x11,0x8e,0x00,0x01,0x11,0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x96,0x00,0x02,0x10,0x76, +0x00,0x0a,0x00,0xb5,0x00,0xb6,0x00,0xb7,0x00,0xb8,0x00,0xb9,0x01,0x9a,0x01,0x9b,0x01,0x9c,0x01,0x9d,0x01,0x9e,0x00,0x03,0x00,0x00,0x00,0x01,0x10,0x7c,0x00,0x02,0x10,0x6c,0x10,0x4c,0x00,0x01,0x00,0x00,0x01,0x96,0x00,0x02,0x10,0x7c,0x00,0x0b,0x03,0x02,0x03,0x03,0x03,0x04,0x03,0x05,0x03,0x06,0x03,0x07,0x03,0x08,0x03,0x09, +0x03,0x0a,0x03,0x0b,0x04,0x3b,0x00,0x02,0x11,0x9e,0x00,0x0f,0x01,0xa7,0x01,0xa8,0x01,0xa9,0x01,0xaa,0x01,0xab,0x01,0xac,0x01,0xad,0x01,0xae,0x01,0xaf,0x02,0x09,0x02,0x0a,0x02,0x4e,0x02,0x4f,0x02,0x9d,0x02,0x9e,0x00,0x02,0x11,0x9c,0x00,0x0f,0x02,0xdf,0x02,0xe0,0x02,0xe1,0x03,0x0c,0x03,0x0d,0x03,0x0e,0x03,0x0f,0x03,0x10, +0x03,0x11,0x03,0x12,0x03,0x13,0x03,0x14,0x03,0x15,0x03,0x16,0x03,0x17,0x00,0x02,0x11,0x9a,0x00,0x10,0x00,0xba,0x00,0xbb,0x01,0x9f,0x01,0xa0,0x01,0xa1,0x02,0x05,0x02,0x06,0x02,0x07,0x02,0x08,0x02,0x4a,0x02,0x4b,0x02,0x4c,0x02,0x4d,0x02,0x73,0x02,0x74,0x02,0x9c,0x00,0x02,0x11,0x1a,0x00,0x13,0x01,0xb0,0x01,0xb1,0x01,0xb2, +0x01,0xb3,0x01,0xb4,0x01,0xb5,0x01,0xb6,0x01,0xb7,0x01,0xb8,0x01,0xb9,0x01,0xba,0x01,0xbb,0x01,0xbc,0x01,0xbd,0x01,0xbe,0x01,0xbf,0x01,0xc0,0x01,0xc1,0x01,0xc2,0x00,0x01,0x13,0xd6,0x00,0x24,0x11,0xf8,0x11,0x90,0x11,0x98,0x11,0xa0,0x11,0xa8,0x11,0xb0,0x11,0xb8,0x11,0xc0,0x11,0xc8,0x11,0xd0,0x12,0x02,0x12,0x7e,0x11,0xd8, +0x12,0x0c,0x12,0x52,0x11,0x6c,0x12,0x16,0x12,0x22,0x12,0x6e,0x11,0x72,0x11,0x78,0x11,0xe0,0x12,0x2e,0x11,0x7e,0x11,0xe8,0x12,0xc2,0x12,0x3a,0x11,0x84,0x12,0x46,0x12,0xe2,0x13,0x4a,0x12,0xa8,0x12,0x60,0x11,0x8a,0x11,0xf0,0x12,0x92,0x00,0x02,0x13,0x42,0x00,0x26,0x00,0xb5,0x00,0xb6,0x00,0xb7,0x00,0xb8,0x00,0xb9,0x01,0xc3, +0x01,0x93,0x01,0x94,0x01,0x95,0x01,0x96,0x01,0x97,0x01,0x98,0x01,0x99,0x01,0x84,0x01,0x85,0x01,0x86,0x01,0x87,0x01,0x88,0x01,0x9a,0x01,0x9b,0x01,0x9c,0x01,0x9d,0x01,0x9e,0x01,0xa7,0x01,0xa8,0x01,0xa9,0x01,0xaa,0x01,0xab,0x01,0xac,0x01,0xad,0x01,0xae,0x01,0xaf,0x02,0x09,0x02,0x0a,0x02,0x4e,0x02,0x4f,0x02,0x9d,0x02,0x9e, +0x00,0x02,0x0f,0xd0,0x00,0x27,0x06,0x8e,0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x06,0x9a,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0xa0,0x06,0xa1,0x06,0xa2,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x06,0xac,0x06,0xad,0x06,0xae, +0x06,0xaf,0x06,0xb1,0x06,0xbc,0x06,0xbd,0x06,0xbe,0x06,0xbf,0x06,0xc0,0x06,0xc1,0x06,0xc2,0x06,0xc3,0x00,0x02,0x12,0x22,0x00,0x29,0x03,0x40,0x03,0x41,0x06,0x8e,0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x06,0x9a,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0xa0, +0x06,0xa1,0x06,0xa2,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x06,0xac,0x06,0xad,0x06,0xae,0x06,0xaf,0x06,0xb1,0x06,0xbc,0x06,0xbd,0x06,0xbe,0x06,0xbf,0x06,0xc0,0x06,0xc1,0x06,0xc2,0x06,0xc3,0x00,0x02,0x12,0xd6,0x00,0x2f,0x01,0x00,0x06,0xcc,0x06,0xcb,0x01,0x0e,0x01,0x91,0x01,0x00,0x01,0x0e, +0x01,0x91,0x06,0x8e,0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x06,0x9a,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0xa0,0x06,0xa1,0x06,0xa2,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x06,0xac,0x06,0xad,0x06,0xae,0x06,0xaf,0x06,0xb1, +0x06,0xbc,0x06,0xbd,0x06,0xbe,0x06,0xbf,0x06,0xc0,0x06,0xc1,0x06,0xc2,0x06,0xc3,0x00,0x02,0x12,0xca,0x00,0x3b,0x00,0xba,0x00,0xbb,0x01,0xa2,0x01,0x9f,0x01,0xa0,0x01,0xa1,0x01,0x7e,0x01,0x7f,0x01,0x80,0x01,0x81,0x01,0x82,0x01,0x83,0x01,0xa3,0x01,0xa4,0x01,0xa5,0x01,0xa6,0x01,0xb0,0x01,0xb1,0x01,0xb2,0x01,0xb3,0x01,0xb4, +0x01,0xb5,0x01,0xb6,0x01,0xb7,0x01,0xb8,0x01,0xb9,0x01,0xba,0x01,0xbb,0x01,0xbc,0x01,0xbd,0x01,0xbe,0x01,0xbf,0x01,0xc0,0x01,0xc1,0x01,0xc2,0x01,0xa7,0x01,0xa8,0x01,0xa9,0x01,0xaa,0x01,0xab,0x01,0xac,0x01,0xad,0x01,0xae,0x01,0xaf,0x02,0x05,0x02,0x06,0x02,0x07,0x02,0x09,0x02,0x0a,0x02,0x08,0x02,0x4a,0x02,0x4b,0x02,0x4c, +0x02,0x4e,0x02,0x4f,0x02,0x4d,0x02,0x9d,0x02,0x9c,0x02,0x9e,0x00,0x02,0x12,0xc4,0x00,0x3d,0x01,0xc6,0x01,0xc7,0x00,0x86,0x00,0x8d,0x01,0xc6,0x01,0x06,0x01,0xc7,0x01,0x49,0x01,0x7d,0x01,0x50,0x02,0xee,0x02,0xef,0x02,0xf0,0x02,0xf1,0x02,0xf2,0x02,0xf3,0x02,0xf4,0x02,0xf5,0x02,0xf6,0x02,0xf7,0x03,0x41,0x06,0xce,0x06,0x8e, +0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x06,0x9a,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0xa0,0x06,0xa1,0x06,0xa2,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x06,0xac,0x06,0xad,0x06,0xae,0x06,0xaf,0x06,0xb1,0x06,0xbc,0x06,0xbd, +0x06,0xbe,0x06,0xbf,0x06,0xc0,0x06,0xc1,0x06,0xc2,0x06,0xc3,0x00,0x01,0x00,0x01,0x00,0xff,0x00,0x01,0x00,0x01,0x02,0xd4,0x00,0x01,0x00,0x01,0x01,0x1a,0x00,0x01,0x00,0x01,0x00,0x7c,0x00,0x01,0x00,0x01,0x00,0xf4,0x00,0x01,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01, +0x03,0x34,0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x01,0x03,0x2c,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x01, +0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x01,0x03,0x32,0x00,0x01,0x12,0x30,0x00,0x01,0x00,0x01,0x01,0x4a,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x01,0x15,0x88,0x00,0x01,0x12,0x24,0x00,0x01,0x12,0x2e,0x00,0x01,0x12,0x38,0x00,0x01,0x12,0x42, +0x00,0x01,0x12,0x4c,0x00,0x01,0x12,0x56,0x00,0x01,0x12,0x60,0x00,0x01,0x12,0x6a,0x00,0x01,0x15,0x74,0x00,0x01,0x12,0x70,0x00,0x01,0x12,0x7a,0x00,0x01,0x12,0x84,0x00,0x01,0x15,0x74,0x00,0x01,0x15,0x80,0x00,0x01,0x12,0x86,0x00,0x01,0x12,0x90,0x00,0x01,0x15,0x84,0x00,0x01,0x15,0x90,0x00,0x01,0x12,0x92,0x00,0x01,0x12,0x9c, +0x00,0x01,0x15,0x94,0x00,0x01,0x12,0xa2,0x00,0x01,0x12,0xac,0x00,0x01,0x12,0xb6,0x00,0x01,0x12,0xc0,0x00,0x01,0x12,0xca,0x00,0x01,0x12,0xd4,0x00,0x01,0x15,0x88,0x00,0x01,0x12,0xda,0x00,0x01,0x15,0x90,0x00,0x01,0x12,0xe0,0x00,0x01,0x15,0x98,0x00,0x01,0x12,0xe6,0x00,0x01,0x12,0xf0,0x00,0x01,0x12,0xfa,0x00,0x01,0x13,0x04, +0x00,0x01,0x15,0x94,0x00,0x01,0x19,0xc4,0x00,0x01,0x15,0x9c,0x00,0x01,0x13,0x02,0x00,0x01,0x15,0xa4,0x00,0x01,0x15,0xb0,0x00,0x01,0x13,0x04,0x00,0x01,0x13,0x0e,0x00,0x01,0x13,0x18,0x00,0x01,0x13,0x22,0x00,0x01,0x13,0x2c,0x00,0x01,0x13,0x36,0x00,0x01,0x13,0x40,0x00,0x01,0x15,0xa0,0x00,0x01,0x15,0xac,0x00,0x01,0x15,0xb8, +0x00,0x01,0x15,0xc4,0x00,0x01,0x15,0xd0,0x00,0x01,0x15,0xdc,0x00,0x01,0x15,0xe8,0x00,0x01,0x13,0x2e,0x00,0x01,0x15,0xf0,0x00,0x01,0x13,0x34,0x00,0x01,0x13,0x3e,0x00,0x01,0x13,0x48,0x00,0x01,0x15,0xf0,0x00,0x01,0x13,0x4e,0x00,0x01,0x13,0x58,0x00,0x01,0x13,0x62,0x00,0x01,0x13,0x6c,0x00,0x01,0x13,0x76,0x00,0x01,0x13,0x80, +0x00,0x01,0x13,0x8a,0x00,0x01,0x13,0x94,0x00,0x01,0x13,0x9e,0x00,0x01,0x13,0xa8,0x00,0x01,0x13,0xb2,0x00,0x01,0x13,0xbc,0x00,0x01,0x13,0xc6,0x00,0x01,0x13,0xd0,0x00,0x01,0x13,0xda,0x00,0x01,0x13,0xe4,0x00,0x01,0x13,0xee,0x00,0x01,0x13,0xf8,0x00,0x01,0x14,0x02,0x00,0x01,0x14,0x0c,0x00,0x01,0x14,0x16,0x00,0x02,0x00,0x01, +0x01,0x4c,0x01,0x50,0x00,0x00,0x00,0x02,0x00,0x01,0x00,0xf5,0x00,0xfb,0x00,0x00,0x00,0x02,0x00,0x01,0x01,0x40,0x01,0x43,0x00,0x00,0x00,0x02,0x20,0xe0,0x20,0xf2,0x00,0x02,0x18,0xfa,0x19,0x0a,0x00,0x02,0x13,0xf6,0x15,0x7e,0x00,0x02,0x13,0xfc,0x15,0x86,0x00,0x02,0x19,0x08,0x19,0x18,0x00,0x02,0x19,0x22,0x19,0x32,0x00,0x02, +0x19,0x3c,0x19,0x4c,0x00,0x02,0x19,0x56,0x19,0x66,0x00,0x02,0x19,0x70,0x19,0x80,0x00,0x02,0x19,0x8a,0x19,0x9a,0x00,0x02,0x19,0xa4,0x19,0xb4,0x00,0x02,0x19,0xbe,0x19,0xce,0x00,0x02,0x19,0xd8,0x19,0xe8,0x00,0x02,0x19,0xf2,0x1a,0x02,0x00,0x02,0x1a,0x0c,0x1a,0x1c,0x00,0x01,0x20,0xaa,0x00,0x01,0x20,0xb8,0x00,0x01,0x20,0xc6, +0x00,0x01,0x1a,0x1a,0x00,0x01,0x1a,0x26,0x00,0x01,0x1a,0x32,0x00,0x01,0x1a,0x3e,0x00,0x01,0x1a,0x4a,0x00,0x01,0x1a,0x56,0x00,0x01,0x1a,0x62,0x00,0x01,0x1a,0x6e,0x00,0x01,0x1a,0x7a,0x00,0x01,0x1a,0x86,0x00,0x01,0x1a,0x92,0x00,0x01,0x1a,0x9e,0x00,0x01,0x1a,0xaa,0x00,0x01,0x1a,0xb6,0x00,0x01,0x1a,0xc2,0x00,0x01,0x1a,0xce, +0x00,0x01,0x1a,0xda,0x00,0x01,0x1a,0xe6,0x00,0x01,0x1a,0xf2,0x00,0x01,0x1a,0xfe,0x00,0x01,0x1b,0x0a,0x00,0x01,0x1b,0x16,0x00,0x01,0x1b,0x22,0x00,0x01,0x1b,0x2e,0x00,0x01,0x1b,0x3a,0x00,0x01,0x1b,0x46,0x00,0x01,0x1b,0x52,0x00,0x01,0x1b,0x5e,0x00,0x01,0x1b,0x6a,0x00,0x02,0x00,0x01,0x02,0xf8,0x03,0x01,0x00,0x00,0x00,0x02, +0x00,0x01,0x02,0xd4,0x02,0xdd,0x00,0x00,0x00,0x04,0x14,0xb8,0x14,0xc4,0x1b,0x62,0x1b,0x70,0x00,0x04,0x14,0xc6,0x14,0xd2,0x1b,0x74,0x1b,0x82,0x00,0x04,0x14,0xd4,0x16,0xcc,0x1b,0x86,0x1b,0x94,0x00,0x04,0x14,0xd6,0x16,0x0e,0x1b,0x98,0x1b,0xa6,0x00,0x04,0x14,0xd8,0x14,0xe4,0x1b,0xaa,0x1b,0xb8,0x00,0x04,0x14,0xe6,0x16,0xc6, +0x1b,0xbc,0x1b,0xca,0x00,0x04,0x14,0xe8,0x14,0xf4,0x1b,0xce,0x1b,0xdc,0x00,0x04,0x14,0xf6,0x16,0xca,0x1b,0xe0,0x1b,0xee,0x00,0x04,0x1f,0xfc,0x20,0x0c,0x20,0x1c,0x20,0x2c,0x00,0x03,0x20,0x32,0x26,0xa4,0x26,0xb6,0x00,0x03,0x20,0x3a,0x26,0xc0,0x26,0xd2,0x00,0x01,0x00,0x02,0x03,0x45,0x03,0x57,0x00,0x01,0x00,0x02,0x03,0x46, +0x03,0x57,0x00,0x03,0x1b,0xc8,0x1b,0xd6,0x20,0x32,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x45,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x46,0x00,0x03,0x14,0xb6,0x16,0x7e,0x1b,0xcc,0x00,0x01,0x00,0x02,0x03,0x5c,0x05,0xb4,0x00,0x03,0x14,0xb2,0x14,0xbe,0x1b,0xca,0x00,0x01,0x00,0x02,0x03,0x46,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x47, +0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x48,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x47,0x04,0x1c,0x00,0x03,0x14,0xa2,0x16,0x5e,0x1b,0xb0,0x00,0x01,0x00,0x02,0x03,0x45,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x3d,0x03,0x3e,0x00,0x03,0x1b,0xa6,0x1e,0xf6,0x1f,0xda,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x3d,0x00,0x03,0x14,0x86,0x16,0x06, +0x1b,0xa4,0x00,0x01,0x00,0x02,0x03,0x29,0x04,0x1c,0x00,0x03,0x14,0x82,0x16,0xf2,0x1b,0xa2,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1c,0x00,0x03,0x1f,0xba,0x1f,0xca,0x26,0x34,0x00,0x03,0x26,0x3e,0x26,0x50,0x26,0x62,0x00,0x01,0x00,0x02,0x04,0x1c,0x05,0xbe,0x00,0x03,0x1b,0x88,0x1e,0x00,0x1f,0xc2,0x00,0x03,0x14,0x5e,0x15,0xd2, +0x1b,0x8e,0x00,0x01,0x00,0x02,0x03,0x48,0x04,0x1b,0x00,0x01,0x00,0x02,0x03,0x5c,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x2e,0x04,0x19,0x00,0x03,0x14,0x4a,0x16,0xa2,0x1b,0x7c,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x1b,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x03,0x16,0x76,0x16,0x82, +0x1b,0x6a,0x00,0x01,0x00,0x02,0x04,0x1b,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x57,0x05,0xbe,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xbe,0x00,0x03,0x1b,0x58,0x1d,0xd8,0x1f,0x6a,0x00,0x01,0x00,0x02,0x03,0x2b,0x03,0x30,0x00,0x01,0x00,0x02,0x03,0x30,0x04,0x19,0x00,0x03,0x13,0xfe,0x15,0x42,0x1b,0x4e,0x00,0x01,0x00,0x02,0x03,0x29, +0x03,0x30,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xb5,0x00,0x03,0x13,0xf2,0x16,0x1a,0x1b,0x44,0x00,0x01,0x00,0x02,0x03,0x29,0x04,0x19,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x03,0x1b,0x2a,0x1d,0x4e,0x1f,0x22,0x00,0x01,0x00,0x02,0x04,0x19, +0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x22,0x00,0x03,0x13,0xbe,0x15,0xf2,0x1b,0x20,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x22,0x00,0x03,0x13,0xba,0x15,0x22,0x1b,0x1e,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x22,0x00,0x03,0x13,0xb6,0x13,0xc2,0x1b,0x1c,0x00,0x01,0x00,0x02,0x04,0x22,0x05,0xb4,0x00,0x03,0x13,0xbe,0x15,0xaa, +0x1b,0x1a,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x23,0x00,0x03,0x13,0xba,0x13,0xc6,0x1b,0x18,0x00,0x01,0x00,0x02,0x03,0xc5,0x04,0x1c,0x00,0x03,0x13,0xc2,0x15,0xa2,0x1b,0x16,0x00,0x01,0x00,0x02,0x03,0xc5,0x04,0x1b,0x00,0x03,0x13,0xbe,0x13,0xca,0x1b,0x14,0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x1c,0x00,0x03,0x15,0x5e,0x15,0x82, +0x1b,0x12,0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x1b,0x00,0x03,0x13,0xb6,0x14,0xbe,0x1b,0x10,0x00,0x01,0x00,0x02,0x03,0x34,0x04,0x1c,0x00,0x03,0x13,0xb2,0x15,0x62,0x1b,0x0e,0x00,0x01,0x00,0x02,0x03,0x34,0x04,0x1b,0x00,0x03,0x13,0xae,0x14,0xaa,0x1b,0x0c,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x1c,0x00,0x03,0x15,0x12,0x15,0x42, +0x1b,0x0a,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x1b,0x00,0x03,0x13,0x9a,0x13,0xa6,0x1b,0x08,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x45,0x00,0x03,0x13,0xa2,0x13,0xae,0x1b,0x06,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x47,0x00,0x03,0x13,0xaa,0x13,0xb6,0x1b,0x04,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x43,0x00,0x03,0x13,0xb2,0x14,0x06, +0x1b,0x02,0x00,0x01,0x00,0x02,0x03,0x30,0x03,0x3a,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x5c,0x00,0x03,0x13,0xa6,0x14,0x12,0x1a,0xf8,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x3a,0x00,0x03,0x13,0xa2,0x13,0xea,0x1a,0xf6,0x00,0x01,0x00,0x02,0x03,0x2b,0x03,0x3a,0x00,0x03,0x13,0x9e,0x14,0xb2,0x1a,0xf4,0x00,0x01,0x00,0x02,0x03,0x3a, +0x04,0x19,0x00,0x03,0x13,0x9a,0x13,0xa6,0x1a,0xf2,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x48,0x00,0x01,0x00,0x02,0x00,0xf4,0x01,0xa2,0x00,0x01,0x00,0x02,0x01,0xdd,0x02,0x21,0x00,0x02,0x24,0x34,0x24,0x46,0x00,0x02,0x24,0x52,0x24,0x64,0x00,0x02,0x24,0x70,0x24,0x82,0x00,0x02,0x24,0x8e,0x24,0xa0,0x00,0x01,0x00,0x02,0x03,0x57, +0x04,0x1c,0x00,0x00,0x00,0x05,0x1d,0xa0,0x1d,0xae,0x24,0xa2,0x24,0xb2,0x24,0xc2,0x00,0x05,0x1c,0x2c,0x13,0xc4,0x1a,0xb2,0x1d,0xb0,0x1d,0xbe,0x00,0x05,0x1d,0xc0,0x1d,0xce,0x24,0xba,0x24,0xca,0x24,0xda,0x00,0x05,0x23,0x1c,0x23,0x2a,0x24,0xde,0x24,0xee,0x24,0xfe,0x00,0x05,0x1d,0xc4,0x1d,0xd2,0x25,0x02,0x25,0x12,0x25,0x22, +0x00,0x05,0x1a,0x8e,0x13,0x34,0x1a,0x9a,0x1d,0xd4,0x1d,0xe2,0x00,0x05,0x1d,0xe4,0x1d,0xf2,0x25,0x1a,0x25,0x2a,0x25,0x3a,0x00,0x05,0x1d,0xf4,0x1b,0x68,0x25,0x3e,0x25,0x4e,0x25,0x5e,0x00,0x05,0x1d,0xf6,0x1b,0x4e,0x25,0x62,0x25,0x72,0x25,0x82,0x00,0x05,0x1a,0x76,0x13,0x1c,0x1b,0x2a,0x1d,0xf8,0x1e,0x06,0x00,0x05,0x1e,0x08, +0x1e,0x16,0x25,0x7a,0x25,0x8a,0x25,0x9a,0x00,0x05,0x1e,0x18,0x1e,0x26,0x25,0x9e,0x25,0xae,0x25,0xbe,0x00,0x05,0x1e,0x28,0x1e,0x36,0x25,0xc2,0x25,0xd2,0x25,0xe2,0x00,0x05,0x1e,0x38,0x1e,0x46,0x25,0xe6,0x25,0xf6,0x26,0x06,0x00,0x04,0x26,0x0a,0x26,0x1a,0x2b,0xfa,0x2c,0x0c,0x00,0x04,0x1e,0x3e,0x1e,0x4c,0x26,0x20,0x26,0x30, +0x00,0x04,0x1a,0x32,0x12,0xcc,0x1a,0xda,0x1e,0x50,0x00,0x04,0x1a,0x34,0x1b,0x7e,0x13,0x9a,0x1e,0x54,0x00,0x04,0x1e,0x58,0x1e,0x66,0x26,0x22,0x26,0x32,0x00,0x04,0x1e,0x6a,0x1e,0x78,0x26,0x38,0x26,0x48,0x00,0x04,0x1a,0x22,0x1a,0x2e,0x12,0xa4,0x1e,0x7c,0x00,0x04,0x1e,0x80,0x1e,0x8e,0x26,0x44,0x26,0x54,0x00,0x04,0x1e,0x92, +0x1e,0xa0,0x26,0x5a,0x26,0x6a,0x00,0x04,0x1e,0xa4,0x1e,0xc0,0x1e,0xb2,0x26,0x70,0x00,0x04,0x1a,0x2a,0x1e,0xb6,0x1a,0x12,0x1e,0xc4,0x00,0x04,0x1a,0x14,0x1a,0x20,0x12,0x96,0x1e,0xc8,0x00,0x04,0x1e,0xcc,0x1e,0xda,0x26,0x62,0x26,0x72,0x00,0x04,0x1e,0xde,0x1e,0xec,0x26,0x78,0x26,0x88,0x00,0x04,0x1b,0x10,0x1a,0x0e,0x13,0x2c, +0x1e,0xf0,0x00,0x04,0x1a,0x10,0x1b,0x12,0x1b,0x2c,0x1e,0xf4,0x00,0x04,0x1a,0x12,0x12,0x34,0x1a,0x1e,0x1e,0xf8,0x00,0x04,0x1e,0xfc,0x21,0xa0,0x26,0x70,0x26,0x80,0x00,0x04,0x26,0x86,0x1f,0x00,0x26,0x96,0x26,0xa6,0x00,0x04,0x26,0xac,0x1f,0x04,0x26,0xbc,0x26,0xcc,0x00,0x04,0x1a,0x02,0x12,0x48,0x1a,0xb0,0x1f,0x08,0x00,0x04, +0x1a,0x04,0x1a,0xb2,0x12,0xe6,0x1f,0x0c,0x00,0x04,0x1a,0x06,0x12,0x04,0x1a,0x12,0x1f,0x10,0x00,0x04,0x1a,0x14,0x12,0xd2,0x1a,0x9e,0x1f,0x14,0x00,0x04,0x1f,0x18,0x1f,0x26,0x26,0xaa,0x26,0xba,0x00,0x04,0x1f,0x2a,0x26,0xc0,0x1a,0x0c,0x26,0xd0,0x00,0x04,0x1f,0x2e,0x21,0xc8,0x26,0xd6,0x26,0xe6,0x00,0x04,0x1f,0x32,0x1f,0x40, +0x26,0xec,0x26,0xfc,0x00,0x04,0x1f,0x44,0x1f,0x52,0x27,0x02,0x27,0x12,0x00,0x04,0x1f,0x56,0x21,0x0e,0x27,0x18,0x27,0x28,0x00,0x04,0x1a,0x28,0x1a,0x34,0x1a,0x40,0x1f,0x5a,0x00,0x04,0x1f,0x5e,0x27,0x24,0x19,0xde,0x27,0x34,0x00,0x04,0x1f,0x62,0x1f,0x70,0x1f,0x7e,0x27,0x3a,0x00,0x04,0x19,0xd8,0x1a,0x16,0x1a,0x22,0x1f,0x82, +0x00,0x04,0x1f,0x86,0x1f,0xda,0x27,0x36,0x27,0x46,0x00,0x04,0x19,0xd0,0x11,0x8e,0x19,0xdc,0x1f,0x8a,0x00,0x03,0x27,0x42,0x29,0x66,0x2a,0xb6,0x00,0x03,0x27,0x4a,0x27,0x5a,0x2a,0xc0,0x00,0x03,0x1f,0x7e,0x20,0xb8,0x27,0x62,0x00,0x03,0x20,0xd8,0x20,0xe6,0x27,0x6a,0x00,0x03,0x1f,0x7c,0x1f,0x8a,0x27,0x72,0x00,0x03,0x1f,0x90, +0x1f,0x9e,0x27,0x7a,0x00,0x03,0x1f,0xa4,0x1f,0xb2,0x27,0x82,0x00,0x03,0x1f,0xb8,0x21,0x2c,0x27,0x8a,0x00,0x03,0x1f,0xbe,0x20,0x88,0x27,0x92,0x00,0x03,0x1f,0xc4,0x1f,0xd2,0x27,0x9a,0x00,0x03,0x1f,0xd8,0x1f,0xe6,0x27,0xa2,0x00,0x03,0x1f,0xec,0x1f,0xfa,0x27,0xaa,0x00,0x03,0x20,0x00,0x20,0x0e,0x27,0xb2,0x00,0x03,0x20,0x14, +0x20,0x22,0x27,0xba,0x00,0x06,0x2a,0x6a,0x2a,0x7a,0x2d,0xde,0x2d,0xf0,0x2e,0x02,0x2e,0x14,0x00,0x06,0x20,0x1a,0x27,0xb4,0x2a,0x7c,0x11,0x12,0x27,0xc2,0x27,0xd0,0x00,0x06,0x20,0x18,0x11,0x10,0x0c,0xfc,0x20,0x24,0x27,0xd0,0x27,0xde,0x00,0x06,0x2a,0x70,0x27,0xde,0x19,0x44,0x2a,0x80,0x2a,0x90,0x2a,0xa0,0x00,0x06,0x20,0x14, +0x19,0x44,0x19,0x50,0x19,0x5c,0x27,0xde,0x27,0xec,0x00,0x05,0x27,0xec,0x28,0x5c,0x28,0x6a,0x2a,0x94,0x2a,0xa4,0x00,0x05,0x29,0x16,0x27,0xee,0x20,0x06,0x2a,0xa8,0x2a,0xb8,0x00,0x05,0x20,0x08,0x11,0x82,0x19,0x4e,0x20,0x7e,0x27,0xf0,0x00,0x05,0x29,0x9c,0x2d,0x0c,0x19,0x72,0x29,0xaa,0x2a,0xb0,0x00,0x05,0x27,0xe6,0x2d,0x00, +0x2d,0xb0,0x19,0x66,0x2a,0xb4,0x00,0x05,0x27,0xe8,0x2a,0xb8,0x27,0xf6,0x2a,0xc8,0x2a,0xd8,0x00,0x05,0x27,0xf8,0x2a,0xdc,0x1f,0xe4,0x2a,0xec,0x2a,0xfc,0x00,0x05,0x2b,0x00,0x2b,0x10,0x2d,0x9e,0x2d,0xb0,0x2d,0xc2,0x00,0x05,0x27,0xee,0x1f,0xda,0x1f,0xe8,0x2b,0x14,0x2b,0x24,0x00,0x05,0x27,0xf0,0x2b,0x28,0x27,0xfe,0x2b,0x38, +0x2b,0x48,0x00,0x05,0x28,0x00,0x2b,0x4c,0x28,0x0e,0x2b,0x5c,0x2b,0x6c,0x00,0x05,0x1f,0xd2,0x10,0x6e,0x18,0xd6,0x1f,0xde,0x28,0x10,0x00,0x05,0x20,0x12,0x18,0xfa,0x1f,0xde,0x19,0x14,0x28,0x12,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x45,0x03,0x57,0x00,0x04,0x2b,0x4e,0x2d,0x82,0x28,0x0a,0x2d,0x94,0x00,0x01,0x00,0x03,0x03,0x2e, +0x03,0x57,0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x57,0x04,0x1c,0x00,0x04,0x27,0xfc,0x2c,0x88,0x1f,0xea,0x2b,0x40,0x00,0x01,0x00,0x03,0x03,0x57,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x04,0x1b,0x04,0x1c,0x05,0xbe,0x00,0x01,0x00,0x03,0x03,0x2b,0x03,0x30,0x04,0x1b,0x00,0x04,0x2b,0x28,0x2d,0x60,0x2b,0x38,0x2d,0x72, +0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x04,0x1b,0x04,0x1c,0x04,0x22,0x00,0x01,0x00,0x03,0x03,0x57,0x04,0x1c,0x05,0xbe,0x00,0x04,0x27,0xba,0x2b,0x20,0x27,0xc8,0x2b,0x30,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x1c,0x05,0xbe,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x1b,0x05,0xbe,0x00,0x01,0x00,0x03, +0x03,0x57,0x04,0x1b,0x05,0xbe,0x00,0x01,0x00,0x03,0x03,0xc5,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x04,0x15,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x34,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x3d,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x43,0x03,0x5c,0x00,0x02,0x2a,0xe6,0x27,0x7c,0x00,0x02, +0x27,0x84,0x27,0x92,0x00,0x01,0x27,0x9a,0x00,0x07,0x18,0x00,0x2d,0x02,0x2b,0x72,0x10,0x1c,0x17,0xe8,0x2a,0xe6,0x2a,0xf4,0x00,0x07,0x27,0x94,0x2e,0x02,0x27,0xa2,0x27,0xae,0x0f,0x64,0x2a,0xf2,0x2b,0x00,0x00,0x06,0x27,0xaa,0x27,0xb6,0x0f,0x60,0x27,0xc2,0x27,0xce,0x2a,0xfe,0x00,0x06,0x2a,0xfe,0x1e,0xce,0x1e,0xdc,0x2b,0x0c, +0x2b,0x1a,0x2c,0xc4,0x00,0x06,0x27,0xbe,0x17,0xb8,0x27,0xca,0x0f,0x50,0x27,0xd6,0x2b,0x1a,0x00,0x06,0x1e,0xce,0x27,0xd4,0x27,0xe0,0x2b,0x28,0x0f,0xd2,0x2b,0x1a,0x00,0x06,0x27,0xde,0x2b,0x1a,0x2c,0xaa,0x17,0xa8,0x0f,0xc4,0x2b,0x28,0x00,0x04,0x0f,0x32,0x0f,0x38,0x0f,0x3e,0x0f,0x44,0x00,0x04,0x0f,0x40,0x0f,0x46,0x0f,0x4c, +0x0f,0x52,0x00,0x04,0x0f,0x4e,0x0f,0x54,0x0f,0x5a,0x0f,0x60,0x00,0x04,0x0f,0x5c,0x0f,0x62,0x0f,0x68,0x0f,0x6e,0x00,0x01,0x01,0x4a,0x00,0x01,0x00,0x01,0x00,0x08,0x17,0x76,0x1e,0x8e,0x2a,0xf8,0x17,0x90,0x2b,0x48,0x2b,0x04,0x2c,0x7c,0x2c,0x8a,0x00,0x08,0x2b,0x5a,0x0f,0x8c,0x2b,0x66,0x2a,0xfe,0x2b,0x4e,0x0f,0x5c,0x2c,0x86, +0x2c,0x94,0x00,0x08,0x2c,0x90,0x2a,0xf8,0x27,0x88,0x17,0x5e,0x27,0x96,0x2d,0x6a,0x2d,0x7a,0x2d,0x8a,0x00,0x07,0x2b,0x1e,0x2a,0xf6,0x2b,0x36,0x0f,0x5c,0x0f,0x68,0x0f,0x44,0x2c,0x8c,0x00,0x07,0x2c,0x8a,0x2c,0x98,0x2d,0xd0,0x2a,0xf2,0x1e,0x54,0x2d,0x78,0x2d,0x88,0x00,0x01,0x00,0x04,0x00,0x84,0x00,0x8c,0x01,0x47,0x01,0x4f, +0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x60,0x00,0xbd,0x01,0x22,0x00,0x01,0x00,0x04,0x03,0x90,0x03,0x91,0x06,0x23,0x06,0x24,0x00,0x01,0x00,0x04,0x01,0x0d,0x01,0x0e,0x01,0x0f,0x02,0x36,0x00,0x01,0x00,0x04,0x05,0xb5,0x06,0x0c,0x06,0x0d,0x06,0x0e,0x00,0x01,0x00,0x01,0x03,0x20,0x00,0x08,0x2c,0x54,0x16,0xf8,0x2c,0x60,0x2c,0x6c, +0x2c,0x78,0x2c,0x84,0x2a,0xb0,0x2d,0x46,0x00,0x08,0x2c,0x7e,0x2c,0x8a,0x2c,0x96,0x2c,0xa2,0x2c,0xae,0x2c,0xba,0x0a,0x20,0x2d,0x42,0x00,0x08,0x2c,0xb4,0x0e,0xca,0x2d,0x6c,0x2d,0x7c,0x2d,0x8c,0x2d,0x9c,0x2d,0x3e,0x2d,0x4c,0x00,0x01,0x00,0x02,0x00,0x01,0x00,0xbd,0x00,0x01,0x00,0x02,0x00,0x60,0x01,0x22,0x00,0x09,0x2a,0x76, +0x2a,0x82,0x2a,0x8e,0x0e,0xb4,0x2d,0xa6,0x2d,0x8a,0x2a,0x9a,0x0e,0xc0,0x2d,0x98,0x00,0x01,0x00,0x05,0x03,0xc3,0x03,0xc5,0x06,0x1c,0x06,0x42,0x06,0x43,0x00,0x01,0x00,0x05,0x02,0xdc,0x02,0xec,0x02,0xf6,0x03,0x00,0x03,0x0a,0x00,0x01,0x00,0x05,0x02,0xd9,0x02,0xe9,0x02,0xf3,0x02,0xfd,0x03,0x07,0x00,0x02,0x00,0x01,0x02,0xee, +0x02,0xf7,0x00,0x00,0x00,0x01,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x3e,0x00,0x02,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x01,0x06,0xce,0x06,0xce,0x00,0x02,0x00,0x02,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x01,0x00,0x01,0x00,0x06,0x01,0x13,0x01,0x14,0x01,0x16,0x01,0x17,0x01,0x18,0x01,0x19, +0x00,0x09,0x2d,0x32,0x2d,0x3e,0x2d,0x6e,0x2d,0x8a,0x2d,0x9a,0x2d,0x4a,0x2d,0x56,0x2d,0x62,0x2d,0x7c,0x00,0x01,0x00,0x05,0x03,0x29,0x03,0x32,0x03,0x33,0x03,0xbe,0x05,0xc6,0x00,0x02,0x00,0x02,0x06,0x68,0x06,0x6c,0x00,0x00,0x06,0x6e,0x06,0x76,0x00,0x05,0x00,0x02,0x00,0x02,0x00,0xa2,0x00,0xa6,0x00,0x00,0x01,0x6a,0x01,0x6e, +0x00,0x05,0x00,0x02,0x00,0x02,0x06,0x77,0x06,0x79,0x00,0x00,0x06,0x7b,0x06,0x7f,0x00,0x03,0x00,0x01,0x00,0x08,0x00,0xff,0x01,0x07,0x01,0x0b,0x01,0x0d,0x01,0x90,0x02,0x34,0x02,0x36,0x02,0x49,0x00,0x02,0x00,0x02,0x02,0xd4,0x02,0xdd,0x00,0x00,0x04,0x15,0x04,0x15,0x00,0x0a,0x00,0x02,0x00,0x05,0x02,0xd4,0x02,0xde,0x00,0x01, +0x03,0x57,0x03,0x57,0x00,0x03,0x04,0x1b,0x04,0x1b,0x00,0x04,0x04,0x1c,0x04,0x1c,0x00,0x02,0x05,0xbe,0x05,0xbe,0x00,0x05,0x00,0x02,0x00,0x06,0x00,0x01,0x00,0xbc,0x00,0x01,0x01,0xc8,0x01,0xfe,0x00,0x01,0x02,0x03,0x02,0x03,0x00,0x01,0x02,0x05,0x02,0x0a,0x00,0x01,0x02,0x51,0x02,0x74,0x00,0x01,0x02,0xa0,0x02,0xb9,0x00,0x01, +0x00,0x02,0x00,0x06,0x06,0x68,0x06,0x6c,0x00,0x01,0x06,0x6e,0x06,0x78,0x00,0x01,0x06,0x7a,0x06,0x7c,0x00,0x01,0x06,0x80,0x06,0x8a,0x00,0x01,0x06,0xb0,0x06,0xb0,0x00,0x01,0x06,0xb4,0x06,0xbb,0x00,0x01,0x00,0x02,0x00,0x06,0x06,0x8e,0x06,0x9a,0x00,0x01,0x06,0x9c,0x06,0x9e,0x00,0x01,0x06,0xa0,0x06,0xa2,0x00,0x01,0x06,0xa5, +0x06,0xaf,0x00,0x01,0x06,0xb1,0x06,0xb1,0x00,0x01,0x06,0xbc,0x06,0xc3,0x00,0x01,0x00,0x02,0x00,0x06,0x06,0x68,0x06,0x6c,0x00,0x00,0x06,0x6e,0x06,0x78,0x00,0x05,0x06,0x7a,0x06,0x7c,0x00,0x10,0x06,0x80,0x06,0x8a,0x00,0x13,0x06,0xb0,0x06,0xb0,0x00,0x1e,0x06,0xb4,0x06,0xbb,0x00,0x1f,0x00,0x02,0x00,0x06,0x00,0x01,0x00,0xbc, +0x00,0x00,0x01,0xc8,0x01,0xfe,0x00,0xbc,0x02,0x03,0x02,0x03,0x00,0xf3,0x02,0x05,0x02,0x0a,0x00,0xf4,0x02,0x51,0x02,0x74,0x00,0xfa,0x02,0xa0,0x02,0xb9,0x01,0x1e,0x00,0x02,0x00,0x07,0x00,0x01,0x00,0xbc,0x00,0x00,0x01,0xc8,0x01,0xfe,0x00,0xbc,0x02,0x03,0x02,0x03,0x00,0xf3,0x02,0x05,0x02,0x0a,0x00,0xf4,0x02,0x51,0x02,0x74, +0x00,0xfa,0x02,0xa0,0x02,0xb9,0x01,0x1e,0x02,0xd4,0x02,0xde,0x01,0x38,0x00,0x02,0x00,0x03,0x01,0x51,0x01,0x53,0x00,0x00,0x01,0x55,0x01,0x56,0x00,0x03,0x01,0x5b,0x01,0x68,0x00,0x05,0x00,0x01,0x00,0x0f,0x01,0x70,0x01,0x71,0x01,0x72,0x01,0x73,0x01,0x74,0x01,0x75,0x01,0x76,0x01,0x77,0x01,0x78,0x01,0xdf,0x01,0xe0,0x02,0x23, +0x02,0x24,0x02,0x77,0x02,0x7f,0x00,0x01,0x00,0x0f,0x02,0xd6,0x02,0xda,0x02,0xdd,0x02,0xe6,0x02,0xea,0x02,0xed,0x02,0xf0,0x02,0xf4,0x02,0xf7,0x02,0xfa,0x02,0xfe,0x03,0x01,0x03,0x04,0x03,0x08,0x03,0x0b,0x00,0x01,0x00,0x10,0x00,0x51,0x00,0x52,0x01,0x10,0x01,0x11,0x01,0x12,0x01,0xd1,0x01,0xd5,0x01,0xd6,0x01,0xf8,0x02,0x15, +0x02,0x19,0x02,0x1a,0x02,0x3c,0x02,0x5a,0x02,0x72,0x02,0x7e,0x00,0x02,0x03,0x41,0x03,0x42,0x00,0x02,0x03,0xae,0x06,0xce,0x00,0x02,0x03,0x9a,0x03,0xa5,0x00,0x02,0x03,0x9c,0x06,0xce,0x00,0x02,0x06,0x42,0x06,0xce,0x00,0x02,0x06,0x59,0x06,0xce,0x00,0x03,0x02,0xe5,0x02,0xf9,0x03,0x03,0x00,0x03,0x02,0xe6,0x02,0xfa,0x03,0x04, +0x00,0x03,0x02,0xe7,0x02,0xfb,0x03,0x05,0x00,0x03,0x02,0xe8,0x02,0xfc,0x03,0x06,0x00,0x03,0x02,0xe9,0x02,0xfd,0x03,0x07,0x00,0x03,0x02,0xea,0x02,0xfe,0x03,0x08,0x00,0x03,0x02,0xeb,0x02,0xff,0x03,0x09,0x00,0x03,0x02,0xec,0x03,0x00,0x03,0x0a,0x00,0x03,0x02,0xed,0x03,0x01,0x03,0x0b,0x00,0x03,0x03,0x8c,0x03,0x8d,0x06,0xce, +0x00,0x03,0x03,0x76,0x03,0x9b,0x06,0xce,0x00,0x03,0x06,0x12,0x06,0x2c,0x06,0xce,0x00,0x03,0x06,0x0c,0x06,0x0d,0x06,0xce,0x00,0x04,0x02,0xde,0x02,0xe4,0x02,0xf8,0x03,0x02,0x00,0x04,0x03,0x7f,0x03,0x80,0x03,0x92,0x06,0xce,0x00,0x04,0x03,0x79,0x03,0x8e,0x03,0x9e,0x06,0xce,0x00,0x05,0x03,0x97,0x03,0xa6,0x03,0xa7,0x06,0x3c, +0x06,0xce,0x00,0x05,0x03,0x7e,0x03,0xa0,0x03,0xa1,0x03,0xa2,0x06,0xce,0x00,0x05,0x03,0x6e,0x03,0x7b,0x03,0x8f,0x06,0x11,0x06,0xce,0x00,0x05,0x03,0xa4,0x03,0xb0,0x03,0xb1,0x06,0x0b,0x06,0xce,0x00,0x05,0x04,0x3b,0x06,0x1d,0x06,0x1e,0x06,0x45,0x06,0xce,0x00,0x06,0x03,0x82,0x03,0x87,0x03,0x94,0x03,0x95,0x03,0x9f,0x06,0xce, +0x00,0x06,0x03,0x75,0x06,0x52,0x06,0x53,0x06,0x55,0x06,0x5b,0x06,0xce,0x00,0x07,0x03,0x20,0x03,0x99,0x03,0xab,0x03,0xad,0x03,0xaf,0x06,0x56,0x06,0xce,0x00,0x09,0x03,0x40,0x03,0x84,0x03,0x85,0x03,0x93,0x03,0x9d,0x06,0x20,0x06,0x2d,0x06,0x39,0x06,0xce,0x00,0x0a,0x03,0x70,0x03,0x7a,0x03,0x7c,0x06,0x13,0x06,0x36,0x06,0x3e, +0x06,0x3f,0x06,0x40,0x06,0x48,0x06,0xce,0x00,0x0c,0x03,0x73,0x03,0x74,0x03,0x7d,0x03,0x81,0x03,0x8b,0x06,0x28,0x06,0x38,0x06,0x3a,0x06,0x4c,0x06,0x4e,0x06,0x51,0x06,0xce,0x00,0x0f,0x03,0x6c,0x03,0x6d,0x03,0x77,0x03,0x78,0x06,0x0f,0x06,0x14,0x06,0x2a,0x06,0x31,0x06,0x34,0x06,0x35,0x06,0x3b,0x06,0x44,0x06,0x4f,0x06,0x58, +0x06,0xce,0x00,0x19,0x03,0x83,0x03,0x86,0x03,0x89,0x03,0x90,0x03,0x91,0x03,0x96,0x03,0xa3,0x03,0xa8,0x03,0xa9,0x03,0xac,0x06,0x0e,0x06,0x17,0x06,0x19,0x06,0x21,0x06,0x22,0x06,0x23,0x06,0x24,0x06,0x29,0x06,0x2e,0x06,0x32,0x06,0x47,0x06,0x49,0x06,0x50,0x06,0x5d,0x06,0xce,0x00,0x02,0x00,0x08,0x03,0x2b,0x03,0x2b,0x00,0x00, +0x03,0x42,0x03,0x42,0x00,0x01,0x06,0x68,0x06,0x6c,0x00,0x02,0x06,0x6e,0x06,0x78,0x00,0x07,0x06,0x7a,0x06,0x7c,0x00,0x12,0x06,0x80,0x06,0x8a,0x00,0x15,0x06,0xb0,0x06,0xb0,0x00,0x20,0x06,0xb4,0x06,0xbb,0x00,0x21,0x00,0x22,0x03,0x6f,0x03,0x71,0x03,0x72,0x03,0x88,0x03,0x8a,0x03,0x98,0x03,0xaa,0x06,0x10,0x06,0x16,0x06,0x18, +0x06,0x1a,0x06,0x1b,0x06,0x1c,0x06,0x1f,0x06,0x25,0x06,0x26,0x06,0x27,0x06,0x2b,0x06,0x2f,0x06,0x30,0x06,0x33,0x06,0x37,0x06,0x3d,0x06,0x41,0x06,0x43,0x06,0x46,0x06,0x4a,0x06,0x4b,0x06,0x4d,0x06,0x54,0x06,0x57,0x06,0x5a,0x06,0x5c,0x06,0xce,0x00,0x02,0x00,0x0b,0x00,0xa2,0x00,0xa6,0x00,0x00,0x00,0xf4,0x00,0xf4,0x00,0x05, +0x01,0x13,0x01,0x14,0x00,0x06,0x01,0x16,0x01,0x1a,0x00,0x08,0x01,0x4c,0x01,0x50,0x00,0x0d,0x01,0x6a,0x01,0x6e,0x00,0x12,0x01,0x70,0x01,0x78,0x00,0x17,0x01,0xdf,0x01,0xe0,0x00,0x20,0x02,0x23,0x02,0x24,0x00,0x22,0x02,0x77,0x02,0x77,0x00,0x24,0x02,0x7f,0x02,0x7f,0x00,0x25,0x00,0x01,0x00,0x24,0x02,0xd4,0x02,0xd5,0x02,0xd6, +0x02,0xd7,0x02,0xd8,0x02,0xd9,0x02,0xda,0x02,0xdb,0x02,0xdc,0x02,0xdd,0x03,0x29,0x03,0x2b,0x03,0x2c,0x03,0x2e,0x03,0x30,0x03,0x32,0x03,0x34,0x03,0x3a,0x03,0x3d,0x03,0x3e,0x03,0x43,0x03,0x45,0x03,0x46,0x03,0x47,0x03,0x48,0x03,0x57,0x03,0x5c,0x03,0xc5,0x04,0x15,0x04,0x19,0x04,0x1b,0x04,0x1c,0x04,0x22,0x05,0xb4,0x05,0xb5, +0x05,0xbe,0x00,0x02,0x00,0x0e,0x00,0xff,0x00,0xff,0x00,0x00,0x01,0x07,0x01,0x07,0x00,0x01,0x01,0x0b,0x01,0x0b,0x00,0x02,0x01,0x0d,0x01,0x0d,0x00,0x03,0x01,0x90,0x01,0x90,0x00,0x04,0x02,0x34,0x02,0x34,0x00,0x05,0x02,0x36,0x02,0x36,0x00,0x06,0x02,0x49,0x02,0x49,0x00,0x07,0x06,0x68,0x06,0x6c,0x00,0x08,0x06,0x6e,0x06,0x78, +0x00,0x0d,0x06,0x7a,0x06,0x7c,0x00,0x18,0x06,0x80,0x06,0x8a,0x00,0x1b,0x06,0xb0,0x06,0xb0,0x00,0x26,0x06,0xb4,0x06,0xbb,0x00,0x27,0x00,0x02,0x00,0x13,0x00,0x51,0x00,0x52,0x00,0x00,0x00,0xf4,0x00,0xf4,0x00,0x02,0x01,0x10,0x01,0x14,0x00,0x03,0x01,0x16,0x01,0x19,0x00,0x08,0x01,0x40,0x01,0x43,0x00,0x0c,0x01,0x51,0x01,0x53, +0x00,0x10,0x01,0x55,0x01,0x56,0x00,0x13,0x01,0x5b,0x01,0x68,0x00,0x15,0x01,0x70,0x01,0x78,0x00,0x23,0x01,0xd1,0x01,0xd1,0x00,0x2c,0x01,0xd5,0x01,0xd6,0x00,0x2d,0x01,0xdf,0x01,0xe0,0x00,0x2f,0x01,0xf8,0x01,0xf8,0x00,0x31,0x02,0x15,0x02,0x15,0x00,0x32,0x02,0x19,0x02,0x1a,0x00,0x33,0x02,0x23,0x02,0x24,0x00,0x35,0x02,0x3c, +0x02,0x3c,0x00,0x37,0x02,0x77,0x02,0x77,0x00,0x38,0x02,0x7e,0x02,0x7f,0x00,0x39,0x00,0x02,0x00,0x13,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x01,0x00,0x84,0x00,0x84,0x00,0x02,0x00,0x8c,0x00,0x8c,0x00,0x03,0x00,0xbd,0x00,0xbd,0x00,0x04,0x00,0xff,0x00,0xff,0x00,0x05,0x01,0x22,0x01,0x22,0x00,0x06,0x01,0x47, +0x01,0x47,0x00,0x07,0x01,0x4a,0x01,0x4a,0x00,0x08,0x01,0x4f,0x01,0x4f,0x00,0x09,0x02,0xf8,0x03,0x01,0x00,0x0a,0x03,0x42,0x03,0x42,0x00,0x14,0x04,0x23,0x04,0x23,0x00,0x15,0x06,0x68,0x06,0x6c,0x00,0x16,0x06,0x6e,0x06,0x78,0x00,0x1b,0x06,0x7a,0x06,0x7c,0x00,0x26,0x06,0x80,0x06,0x8a,0x00,0x29,0x06,0xb0,0x06,0xb0,0x00,0x34, +0x06,0xb4,0x06,0xbb,0x00,0x35,0x05,0xc3,0x00,0x03,0x01,0x22,0x03,0x29,0x00,0x01,0x00,0x01,0x00,0x5a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2d,0x00,0x01, +0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x31,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x35,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0x42,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x73,0x00,0x01,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x8f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x91,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x99,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00, +0x00,0xa2,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xa4,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xa6,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xa8,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xaa,0x00,0x01,0x06,0xce,0x00,0x01, +0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xb5,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xc0,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xcc,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xce,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xd0, +0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xe0,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xee,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xf6,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xf8,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00, +0x00,0x01,0x00,0x00,0x01,0x0e,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x10,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x12,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x17,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x1d,0x00,0x01, +0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x3d,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x42,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x49,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x5c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, +0x00,0x00,0x01,0x61,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x63,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x65,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x67,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x6b,0x00,0x01,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x6d,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x71,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x73,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x77,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00, +0x01,0x79,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x7d,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x7f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x81,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x83,0x00,0x01,0x06,0xce,0x00,0x01, +0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x85,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x87,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x89,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x8b,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x8d, +0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x8f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x93,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x48,0x03,0x48,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0x17,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x44,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6b,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01, +0x00,0x00,0x00,0x77,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x81,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x96,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x00,0x00,0xb2,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01, +0x00,0x00,0x00,0xbd,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xc9,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xe4,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xeb,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0xf0,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xf3,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x22,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x25,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01, +0x00,0x00,0x01,0x28,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x2e,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x34,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x37,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, +0x00,0x00,0x01,0x3a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x3f,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x5e,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x01,0x00,0x00,0x00,0x31, +0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x01,0x03,0x45,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x45,0x03,0x57,0x00,0x00,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x3a,0x00,0x00,0x00,0x01,0x04,0x15, +0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x00,0x00,0x01,0x03,0x2c,0x00,0x01,0x00,0x01,0x03,0x2c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2c,0x03,0x2c,0x00,0x00,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x00,0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x01,0x05,0xb5,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xb5, +0x05,0xb5,0x00,0x00,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x00,0x00,0x01,0x05,0xb4,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x03,0x46,0x00,0x00,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x00, +0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x01,0x03,0x29,0x00,0x00,0x00,0x01,0x03,0x29, +0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x01,0x05,0xb4,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xb4,0x05,0xb4,0x00,0x00,0x00,0x01,0x04,0x23,0x00,0x01,0x00,0x01, +0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x03,0xc5,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0xc5,0x03,0xc5,0x00,0x00,0x00,0x01,0x03,0xc5,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x15,0x00,0x00, +0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x45,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x45,0x03,0x45,0x00,0x00,0x00,0x01,0x03,0x3a, +0x00,0x01,0x00,0x01,0x03,0x47,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x47,0x03,0x47,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x43,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x43,0x03,0x43,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01, +0x03,0x2e,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x48,0x00,0x01,0x00,0x01,0x03,0x3a,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x3a,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x29,0x03,0x29,0x00,0x00, +0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x30,0x03,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x03,0x2b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x5c,0x03,0x5c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x2e,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01, +0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x03,0x3d,0x00,0x00,0x06,0xb8,0x00,0x02,0x06,0x6b,0x06,0xb9,0x00,0x02,0x06,0x6a,0x06,0xba,0x00,0x02,0x06,0x74,0x06,0xbb,0x00,0x02,0x06,0x72,0x06,0xb4,0x00,0x02,0x06,0x6b,0x06,0xb5, +0x00,0x02,0x06,0x6a,0x06,0xb6,0x00,0x02,0x06,0x74,0x06,0xb7,0x00,0x02,0x06,0x72,0x06,0xc0,0x00,0x02,0x06,0x91,0x06,0xc1,0x00,0x02,0x06,0x90,0x06,0xc2,0x00,0x02,0x06,0x99,0x06,0xc3,0x00,0x02,0x06,0x97,0x06,0xbc,0x00,0x02,0x06,0x91,0x06,0xbd,0x00,0x02,0x06,0x90,0x06,0xbe,0x00,0x02,0x06,0x99,0x06,0xbf,0x00,0x02,0x06,0x97, +0x00,0x01,0x00,0x04,0x06,0x6e,0x06,0x70,0x06,0x93,0x06,0x95,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01, +0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xe7,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x14,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x00,0x00,0x15,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x00,0x00,0x4d,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x8c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x8d,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x93,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x94,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xad,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xae,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xba,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xbb,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x01,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x31,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x32,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x4b,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x4c,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x4e,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x4f,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x00,0x01,0x5a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x84,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x84,0x00,0x01,0x06,0xce,0x00,0x01, +0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x86,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x86,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xb0,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xb0,0x00,0x01,0x06,0xce,0x00,0x01, +0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xe2,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xe2,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x2b,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x47,0x00,0x01,0x06,0xce,0x00,0x01, +0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x47,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x01,0x51,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x51,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x01,0x53,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x53,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x55,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x55,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x69,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x69,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x6f,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x6f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x75,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x75,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x7b,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x7b,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x91,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x00,0x01,0x91,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x45, +0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x0c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x00,0x00,0x22,0x00,0x01, +0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x00,0x00,0x56,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2c,0x00,0x01,0x00,0x00,0x00,0xd6,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, +0x00,0x00,0x01,0x07,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x00,0x01,0x08,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x14,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x00,0x01,0x15,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x1f,0x00,0x00,0x00,0x01, +0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x00,0x01,0x20,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x2e,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x2e,0x03,0x2e,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x00, +0x00,0x2d,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x35,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x73,0x00,0x01,0x03,0x57,0x00,0x01, +0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xee,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x00, +0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x00,0x01,0x12,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x1d,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x61,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x57, +0x00,0x01,0x00,0x00,0x01,0x63,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xb4,0x00,0x01,0x00,0x00,0x01,0x65,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x67,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0xc5,0x00,0x01,0x00,0x00,0x01,0x6b,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x6d,0x00,0x00, +0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x00,0x01,0x71,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x73,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x00,0x01,0x77,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x79,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x01, +0x00,0x00,0x01,0x7d,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x7f,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x00,0x01,0x81,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x00,0x01,0x83,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x00,0x01,0x85,0x00,0x00,0x00,0x01, +0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x00,0x01,0x87,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x00,0x01,0x8b,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x00,0x01,0x8d,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x8f,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x00, +0x01,0x93,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x01,0x03,0x29,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x29,0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x01, +0x03,0x3d,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01, +0x00,0x01,0x05,0xbe,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x30,0x04,0x1b,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01,0x03,0x57, +0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x00,0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1b,0x04,0x1b,0x04,0x1b,0x00,0x00, +0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1c,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x5c,0x03,0x43,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x57,0x03,0x57,0x03,0x57,0x00,0x00, +0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x3d, +0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x03,0x06,0xce,0x06,0xce, +0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x12,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x1a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00, +0x00,0x68,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x01,0x01,0x13,0x00,0x01,0x00,0x01,0x01,0x13,0x00,0x01,0x00,0x00,0x01,0xa3,0x00,0x01,0x00,0x53,0x00,0x01,0x00,0x01,0x00,0x53,0x00,0x01,0x00,0x00,0x01,0xa4,0x00,0x01,0x01,0x7e,0x00,0x01,0x00,0x01,0x01,0x7e,0x00,0x01, +0x00,0x00,0x01,0xa5,0x00,0x01,0x01,0x93,0x00,0x01,0x00,0x01,0x01,0x93,0x00,0x01,0x00,0x00,0x01,0xa6,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x03,0x03,0x45,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x03,0x03,0x57,0x03,0x45,0x03,0x45,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x2e,0x00,0x01, +0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x05,0xbe,0x05,0xbe,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x01, +0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x4b,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x3a,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x3a,0x03,0x3a,0x00,0x00, +0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x00,0x00,0x3c,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x02,0x03,0x3d,0x03,0x3d,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3d,0x03,0x3d,0x03,0x3d,0x00,0x00,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x02, +0x04,0x15,0x04,0x15,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x15,0x04,0x15,0x04,0x15,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x00,0x00,0x5f,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x02,0x03,0x29,0x03,0x29,0x00,0x00,0x00,0x00, +0x00,0x01,0x00,0x03,0x03,0x29,0x03,0x29,0x03,0x29,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01, +0x00,0x00,0x00,0xd3,0x00,0x01,0x03,0x2c,0x00,0x01,0x00,0x02,0x03,0x2c,0x03,0x2c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2c,0x03,0x2c,0x03,0x2c,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x02,0x03,0x2b,0x03,0x2b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2b,0x03,0x2b,0x03,0x2b,0x00,0x00,0x00,0x01,0x03,0x30, +0x00,0x01,0x00,0x02,0x03,0x30,0x03,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x30,0x03,0x30,0x03,0x30,0x00,0x00,0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x02,0x05,0xb5,0x05,0xb5,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xb5,0x05,0xb5,0x05,0xb5,0x00,0x00,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x02,0x03,0x46,0x03,0x46, +0x00,0x00,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x46,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0x42,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x02,0x03,0x29,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03, +0x03,0x29,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x1c,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1c,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x1c,0x00,0x00, +0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2b,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1c,0x04,0x22,0x04,0x22,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe, +0x05,0xbe,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1c,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01, +0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x02,0x05,0xbe,0x03,0x5c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x03,0x5c,0x03,0x5c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01, +0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x00,0x00,0xe0,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01, +0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x00,0x01,0x0e,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x17,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1c, +0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x57,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03, +0x04,0x1b,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x02,0x04,0x1b,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1b,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x00,0x01,0x42, +0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x22,0x04,0x22,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x22,0x04,0x22,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x22, +0x00,0x01,0x00,0x00,0x01,0x5c,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x00,0x01,0x89,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x02,0x03,0x30,0x04,0x1b,0x00,0x00,0x00,0x00, +0x00,0x01,0x00,0x03,0x03,0x30,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x22,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x57,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x57,0x05,0xbe, +0x05,0xbe,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0xc5,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0xc5,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c, +0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x15,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x34,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x34,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x1b, +0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3d,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x02,0x03,0x5c,0x03,0x43,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x5c,0x03,0x43,0x03,0x43,0x00,0x00,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01, +0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x03,0x48,0x00,0x00,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x57,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2b,0x04,0x19, +0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01, +0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x34,0x03,0x34,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19, +0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x45,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x02,0x06,0xce, +0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x88,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x88,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01, +0x00,0x00,0x00,0x89,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x05,0xbe,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x8a,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1a,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x1b,0x00,0x03,0x06,0xce,0x06,0xce, +0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00, +0x00,0x71,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x2b,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x2c,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x24,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x3a, +0x00,0x01,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x3a,0x00,0x01,0x00,0x00,0x00,0x26,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3e,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x03,0x3d, +0x00,0x01,0x00,0x00,0x00,0x40,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x34,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x58,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x15,0x00,0x01,0x00,0x00,0x00,0x5a,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x29, +0x00,0x01,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x29,0x03,0x29,0x00,0x01,0x00,0x00,0x00,0x63,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7d,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c, +0x00,0x01,0x00,0x00,0x00,0x7f,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x9e,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xa0,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0xd8,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x2c,0x00,0x01,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2c,0x03,0x2c,0x00,0x01,0x00,0x00,0x00,0xda,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xdc,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x2b, +0x00,0x01,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x03,0x2b,0x00,0x01,0x00,0x00,0x00,0xde,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x0a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x00,0x01,0x0b,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x30,0x03,0x30, +0x00,0x01,0x00,0x00,0x01,0x0c,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x19,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x00,0x01,0x1a,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xb5,0x05,0xb5,0x00,0x01,0x00,0x00,0x01,0x1b,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x03,0x03,0x57, +0x03,0x46,0x03,0x46,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x03,0x57,0x03,0x46,0x03,0x46,0x03,0x46,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x18,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c, +0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x29,0x04,0x1c,0x00,0x01,0x00,0x00,0x00,0x66,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x6c,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x1c,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x22,0x00,0x01,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x05,0xbe, +0x00,0x01,0x00,0x00,0x00,0x8c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xab,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x03,0x5c, +0x00,0x01,0x00,0x00,0x00,0xb3,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xe5,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x03,0x05,0xbe,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57, +0x00,0x01,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0xf1,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x03,0x05,0xbe,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x19, +0x00,0x01,0x00,0x00,0x00,0xf4,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x25,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x26,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b, +0x00,0x01,0x00,0x00,0x01,0x31,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x34,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x35,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x37,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x19, +0x00,0x01,0x00,0x00,0x01,0x38,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x3a,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x3b,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x3f,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b, +0x00,0x01,0x00,0x00,0x01,0x40,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x4e,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x22,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b, +0x00,0x01,0x00,0x00,0x01,0x5e,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x03,0x3a,0x03,0x57, +0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x30,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x1b, +0x00,0x01,0x00,0x00,0x01,0x47,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x05,0xbe,0x00,0x01,0x00,0x00,0x01,0x51,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x55,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0xc5,0x04,0x1b, +0x00,0x01,0x00,0x00,0x01,0x69,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x6f,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x34,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x75,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x7b,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x5c,0x03,0x43, +0x00,0x01,0x00,0x00,0x01,0x91,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x00,0x00,0xb8,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x00, +0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0xfb,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x44,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x00,0x01,0x45,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x02,0x03,0x3d, +0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xa2,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x03,0x2e,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01, +0x00,0x03,0x03,0x2e,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3d,0x04,0x19,0x04,0x19, +0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x3d,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x49,0x00,0x00,0x00,0x01,0x00,0x04, +0x03,0x2e,0x03,0x57,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00, +0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x01,0x98,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x99,0x00,0x01,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01, +0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x3d,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x29, +0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x00,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xbe,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01, +0x03,0x2e,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x46,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x57, +0x03,0x46,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x3a,0x03,0x3a,0x00,0x00,0x00,0x00, +0x00,0x01,0x00,0x04,0x03,0x3a,0x03,0x3a,0x03,0x3a,0x03,0x3a,0x00,0x00,0x00,0x03,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x00,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x03,0x03,0x57,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x03,0x00,0x01, +0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x05,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0x45,0x00,0x01, +0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xba,0x00,0x02, +0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x03,0x2e,0x04,0x19,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2e,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xbe,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x00,0x00,0x02, +0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xca,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x05,0xbe,0x05,0xbe,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01, +0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xec,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x22,0x00,0x00, +0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x23,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1c,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x28,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x29,0x00,0x01, +0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x84,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x04,0x19,0x04,0x19,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x02, +0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xbe,0x00,0x01,0x00,0x00,0x01,0x53,0x00,0x02,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x01, +0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xc3,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x00,0x00,0x4a,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x34, +0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x34,0x03,0x34,0x03,0x3d,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x34,0x03,0x34,0x03,0x29,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xa8,0x00,0x02,0x03,0x30,0x03,0x43, +0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xb5,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x03,0x57,0x00,0x00,0x00,0x02,0x03,0x30,0x03,0x43, +0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01, +0x04,0x19,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x19,0x00,0x00,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x28,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x3a, +0x00,0x01,0x00,0x00,0x00,0x29,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x3a,0x00,0x01,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x3a,0x03,0x3a,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x03,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x02,0x06,0xce, +0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xe7,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xe9,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x57, +0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x2b,0x00,0x00,0x00,0x01,0x00,0x02, +0x03,0x34,0x03,0x34,0x00,0x01,0x00,0x00,0x00,0x4c,0x00,0x03,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x00,0x7b,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x9c,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x99,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x19, +0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x15,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x03,0xc5,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02, +0x04,0x1c,0x03,0x3d,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x03,0xc5,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x01,0x03,0x48, +0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x04,0x03,0x2e,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xc5,0x00,0x01,0x06,0xce, +0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xc7,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x2e,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x2f,0x00,0x00,0x00,0x01, +0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x01,0x00,0x00,0x00,0xa6,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x10,0x00,0x03,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02, +0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x03,0x04,0x19,0x03,0x2b,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x03,0x04,0x19,0x03,0x2e,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x03,0x04,0x19, +0x03,0x3d,0x04,0x19,0x00,0x00,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xc0,0x00,0x03,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x00,0x00,0x00, +0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x03,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x01, +0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x03,0x00,0x01,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x04,0x00,0x00, }; read_only global String8 rd_default_code_font_bytes = {rd_default_code_font_bytes__data, sizeof(rd_default_code_font_bytes__data)}; diff --git a/src/raddbg/raddbg.mdesk b/src/raddbg/raddbg.mdesk index 949f8e20..8cd6e9ae 100644 --- a/src/raddbg/raddbg.mdesk +++ b/src/raddbg/raddbg.mdesk @@ -5,10 +5,15 @@ //~ rjf: Embedded Data @embed_file rd_icon_font_bytes: "../data/icons.ttf" -@embed_file rd_default_main_font_bytes: "../data/Roboto-Regular.ttf" + +//@embed_file rd_default_main_font_bytes: "../data/Roboto-Regular.ttf" +@embed_file rd_default_main_font_bytes: "../data/segoeui.ttf" + //@embed_file rd_default_main_font_bytes: "../data/seguisb.ttf" -@embed_file rd_default_code_font_bytes: "../data/liberation-mono.ttf" +//@embed_file rd_default_code_font_bytes: "../data/liberation-.ttf" //@embed_file rd_default_code_font_bytes: "../data/Inconsolata-Regular.ttf" +@embed_file rd_default_code_font_bytes: "../data/JetBrainsMono-Regular.ttf" + @embed_file rd_icon_file_bytes: "../data/logo.ico" //////////////////////////////// diff --git a/src/ui/ui_core.c b/src/ui/ui_core.c index 6f2bda61..c83cb7a7 100644 --- a/src/ui/ui_core.c +++ b/src/ui/ui_core.c @@ -2781,11 +2781,7 @@ ui_box_text_position(UI_Box *box) FNT_Tag font = box->font; F32 font_size = box->font_size; FNT_Metrics font_metrics = fnt_metrics_from_tag_size(font, font_size); - result.y = floor_f32((box->rect.p0.y + box->rect.p1.y)/2.f) + font_metrics.ascent/2.f - 2.f; - if(!fnt_tag_match(font, ui_icon_font())) - { - result.y += font_metrics.descent/2; - } + result.y = floor_f32((box->rect.p0.y + box->rect.p1.y)/2.f + font_metrics.ascent/2.f - font_metrics.descent/2.f); switch(box->text_align) { default: From e2eb1cd6d6036c63044367faeec28ef8ad2f3ae0 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 25 Jun 2025 09:41:48 -0700 Subject: [PATCH 043/372] do not unnecessarily block on parses when closing modules --- src/ctrl/ctrl_core.c | 1 + src/dbgi/dbgi.c | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 1eb12eac..dec07293 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -4681,6 +4681,7 @@ ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg, out_evt->entity_id = event->code; }break; case DMN_EventKind_UnloadModule: + ProfScope("unload module %.*s", str8_varg(event->string)) { CTRL_Event *out_evt = ctrl_event_list_push(scratch.arena, &evts); CTRL_Handle module_handle = ctrl_handle_make(CTRL_MachineID_Local, event->module); diff --git a/src/dbgi/dbgi.c b/src/dbgi/dbgi.c index fc1801b9..a08d9b87 100644 --- a/src/dbgi/dbgi.c +++ b/src/dbgi/dbgi.c @@ -543,8 +543,7 @@ di_close(DI_Key *key) if(node->ref_count == 0) for(;;) { //- rjf: release - if(ins_atomic_u64_eval(&node->touch_count) == 0 && - ins_atomic_u64_eval(&node->is_working) == 0) + if(ins_atomic_u64_eval(&node->touch_count) == 0) { di_string_release__stripe_mutex_w_guarded(stripe, node->key.path); if(node->file_base != 0) @@ -1129,6 +1128,16 @@ ASYNC_WORK_DEF(di_parse_work) node->rdi = rdi_parsed; node->parse_done = 1; } + else + { + if(rdi_parsed_arena != 0) + { + arena_release(rdi_parsed_arena); + } + os_file_map_view_close(file_map, file_base, r1u64(0, file_props.size)); + os_file_map_close(file_map); + os_file_close(file); + } } os_condition_variable_broadcast(stripe->cv); From 36f5597d8e895c92d34c7f33226610cff0f62f91 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 25 Jun 2025 10:52:29 -0700 Subject: [PATCH 044/372] eliminate unneeded path-renormalization in debug info cache lookup --- src/ctrl/ctrl_core.c | 9 +++++++-- src/dbgi/dbgi.c | 29 +++++++++++++---------------- src/eval/eval_ir.c | 2 +- src/eval/eval_parse.c | 2 ++ src/raddbg/raddbg_core.c | 1 + 5 files changed, 24 insertions(+), 19 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index dec07293..764a8936 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -1366,14 +1366,16 @@ ctrl_entity_store_apply_events(CTRL_EntityCtxRWStore *store, CTRL_EventList *lis }break; case CTRL_EventKind_ModuleDebugInfoPathChange: { + Temp scratch = scratch_begin(0, 0); CTRL_Entity *module = ctrl_entity_from_handle(&store->ctx, event->entity); CTRL_Entity *debug_info_path = ctrl_entity_child_from_kind(module, CTRL_EntityKind_DebugInfoPath); if(debug_info_path == &ctrl_entity_nil) { debug_info_path = ctrl_entity_alloc(store, module, CTRL_EntityKind_DebugInfoPath, Arch_Null, ctrl_handle_zero(), 0); } - ctrl_entity_equip_string(store, debug_info_path, event->string); + ctrl_entity_equip_string(store, debug_info_path, path_normalized_from_string(scratch.arena, event->string)); debug_info_path->timestamp = event->timestamp; + scratch_end(scratch); }break; //- rjf: dynamic, program-created breakpoints @@ -3813,7 +3815,10 @@ ctrl_thread__entry_point(void *p) CTRL_Entity *debug_info_path = ctrl_entity_child_from_kind(module, CTRL_EntityKind_DebugInfoPath); DI_Key old_dbgi_key = {debug_info_path->string, debug_info_path->timestamp}; di_close(&old_dbgi_key); - OS_MutexScopeW(ctrl_state->ctrl_thread_entity_ctx_rw_mutex) ctrl_entity_equip_string(ctrl_state->ctrl_thread_entity_store, debug_info_path, path); + OS_MutexScopeW(ctrl_state->ctrl_thread_entity_ctx_rw_mutex) + { + ctrl_entity_equip_string(ctrl_state->ctrl_thread_entity_store, debug_info_path, path_normalized_from_string(scratch.arena, path)); + } U64 new_dbgi_timestamp = os_properties_from_file_path(path).modified; debug_info_path->timestamp = new_dbgi_timestamp; DI_Key new_dbgi_key = {debug_info_path->string, new_dbgi_timestamp}; diff --git a/src/dbgi/dbgi.c b/src/dbgi/dbgi.c index a08d9b87..2be972d8 100644 --- a/src/dbgi/dbgi.c +++ b/src/dbgi/dbgi.c @@ -462,25 +462,24 @@ di_open(DI_Key *key) Temp scratch = scratch_begin(0, 0); if(key->path.size != 0) { - DI_Key key_normalized = di_normalized_key_from_key(scratch.arena, key); - U64 hash = di_hash_from_key(&key_normalized); + U64 hash = di_hash_from_key(key); U64 slot_idx = hash%di_shared->slots_count; U64 stripe_idx = slot_idx%di_shared->stripes_count; DI_Slot *slot = &di_shared->slots[slot_idx]; DI_Stripe *stripe = &di_shared->stripes[stripe_idx]; - log_infof("open_debug_info: {\"%S\", 0x%I64x}\n", key_normalized.path, key_normalized.min_timestamp); + log_infof("open_debug_info: {\"%S\", 0x%I64x}\n", key->path, key->min_timestamp); OS_MutexScopeW(stripe->rw_mutex) { //- rjf: find existing node - DI_Node *node = di_node_from_key_slot__stripe_mutex_r_guarded(slot, &key_normalized); + DI_Node *node = di_node_from_key_slot__stripe_mutex_r_guarded(slot, key); //- rjf: allocate node if none exists; insert into slot if(node == 0) { - U64 current_timestamp = os_properties_from_file_path(key_normalized.path).modified; + U64 current_timestamp = os_properties_from_file_path(key->path).modified; if(current_timestamp == 0) { - current_timestamp = key_normalized.min_timestamp; + current_timestamp = key->min_timestamp; } node = stripe->free_node; if(node != 0) @@ -493,7 +492,7 @@ di_open(DI_Key *key) } MemoryZeroStruct(node); DLLPushBack(slot->first, slot->last, node); - String8 path_stored = di_string_alloc__stripe_mutex_w_guarded(stripe, key_normalized.path); + String8 path_stored = di_string_alloc__stripe_mutex_w_guarded(stripe, key->path); node->key.path = path_stored; node->key.min_timestamp = current_timestamp; } @@ -504,7 +503,7 @@ di_open(DI_Key *key) node->ref_count += 1; if(node->ref_count == 1) { - di_u2p_enqueue_key(&key_normalized, max_U64); + di_u2p_enqueue_key(key, max_U64); ins_atomic_u64_eval_assign(&node->is_working, 1); DeferLoop(os_rw_mutex_drop_w(stripe->rw_mutex), os_rw_mutex_take_w(stripe->rw_mutex)) { @@ -524,17 +523,16 @@ di_close(DI_Key *key) Temp scratch = scratch_begin(0, 0); if(key->path.size != 0) { - DI_Key key_normalized = di_normalized_key_from_key(scratch.arena, key); - U64 hash = di_hash_from_key(&key_normalized); + U64 hash = di_hash_from_key(key); U64 slot_idx = hash%di_shared->slots_count; U64 stripe_idx = slot_idx%di_shared->stripes_count; DI_Slot *slot = &di_shared->slots[slot_idx]; DI_Stripe *stripe = &di_shared->stripes[stripe_idx]; - log_infof("close_debug_info: {\"%S\", 0x%I64x}\n", key_normalized.path, key_normalized.min_timestamp); + log_infof("close_debug_info: {\"%S\", 0x%I64x}\n", key->path, key->min_timestamp); OS_MutexScopeW(stripe->rw_mutex) { //- rjf: find existing node - DI_Node *node = di_node_from_key_slot__stripe_mutex_r_guarded(slot, &key_normalized); + DI_Node *node = di_node_from_key_slot__stripe_mutex_r_guarded(slot, key); //- rjf: node exists -> decrement reference count; release if(node != 0) @@ -588,8 +586,7 @@ di_rdi_from_key(DI_Scope *scope, DI_Key *key, B32 high_priority, U64 endt_us) if(key->path.size != 0) { Temp scratch = scratch_begin(0, 0); - DI_Key key_normalized = di_normalized_key_from_key(scratch.arena, key); - U64 hash = di_hash_from_key(&key_normalized); + U64 hash = di_hash_from_key(key); U64 slot_idx = hash%di_shared->slots_count; U64 stripe_idx = slot_idx%di_shared->stripes_count; DI_Slot *slot = &di_shared->slots[slot_idx]; @@ -597,7 +594,7 @@ di_rdi_from_key(DI_Scope *scope, DI_Key *key, B32 high_priority, U64 endt_us) ProfScope("grab node") OS_MutexScopeR(stripe->rw_mutex) for(;;) { //- rjf: find existing node - DI_Node *node = di_node_from_key_slot__stripe_mutex_r_guarded(slot, &key_normalized); + DI_Node *node = di_node_from_key_slot__stripe_mutex_r_guarded(slot, key); //- rjf: no node? this path is not opened if(node == 0) @@ -623,7 +620,7 @@ di_rdi_from_key(DI_Scope *scope, DI_Key *key, B32 high_priority, U64 endt_us) if(node != 0 && !node->parse_done && !ins_atomic_u64_eval(&node->is_working) && - di_u2p_enqueue_key(&key_normalized, endt_us)) + di_u2p_enqueue_key(key, endt_us)) { ProfScope("ask for parse") { diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index 1dd8a8ee..fa740c8a 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -1617,7 +1617,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I { //- rjf: try to map identifier via this path E_IdentifierResolutionPath path = identifier_resolution_rule->paths[path_idx]; - switch(path) + ProfScope("identifier resolution %i", path) switch(path) { default:{}break; diff --git a/src/eval/eval_parse.c b/src/eval/eval_parse.c index 937ce6c5..a3b7cd29 100644 --- a/src/eval/eval_parse.c +++ b/src/eval/eval_parse.c @@ -528,6 +528,7 @@ e_string_from_expr(Arena *arena, E_Expr *expr, String8 parent_expr_string) internal E_TypeKey e_leaf_type_from_name(String8 name) { + ProfBeginFunction(); E_TypeKey key = zero_struct; B32 found = 0; if(!found) @@ -674,6 +675,7 @@ e_leaf_type_from_name(String8 name) } } } + ProfEnd(); return key; } diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 12b5f436..80f16d70 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -11787,6 +11787,7 @@ rd_frame(void) rd_state->meta_name2type_map[0] = e_string2typekey_map_make(rd_frame_arena(), 256); EV_ExpandRuleTable *expand_rule_table = push_array(scratch.arena, EV_ExpandRuleTable, 1); rd_state->view_ui_rule_map = rd_view_ui_rule_map_make(scratch.arena, 512); + ProfScope("build extra types & maps") { //- rjf: add macros for command groups { From 1eca5818a66a3676f99a3bb7f0e951d096b2e6b7 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 7 Apr 2025 11:01:20 -0700 Subject: [PATCH 045/372] removed dependency on relocation list when error checking .drectve --- src/linker/lnk_obj.c | 219 ++++++++++++++++++++++--------------------- 1 file changed, 110 insertions(+), 109 deletions(-) diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index af16561c..877f720f 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -91,6 +91,80 @@ lnk_input_obj_list_from_string_list(Arena *arena, String8List list) //////////////////////////////// +internal void +lnk_parse_msvc_linker_directive(Arena *arena, String8 obj_path, String8 lib_path, LNK_DirectiveInfo *directive_info, String8 buffer) +{ + Temp scratch = scratch_begin(&arena, 1); + + local_persist B32 init_table = 1; + local_persist B8 is_legal[LNK_CmdSwitch_Count]; + if (init_table) { + init_table = 0; + is_legal[LNK_CmdSwitch_AlternateName] = 1; + is_legal[LNK_CmdSwitch_DefaultLib] = 1; + is_legal[LNK_CmdSwitch_DisallowLib] = 1; + is_legal[LNK_CmdSwitch_EditAndContinue] = 1; + is_legal[LNK_CmdSwitch_Entry] = 1; + is_legal[LNK_CmdSwitch_Export] = 1; + is_legal[LNK_CmdSwitch_FailIfMismatch] = 1; + is_legal[LNK_CmdSwitch_GuardSym] = 1; + is_legal[LNK_CmdSwitch_Include] = 1; + is_legal[LNK_CmdSwitch_InferAsanLibs] = 1; + is_legal[LNK_CmdSwitch_InferAsanLibsNo] = 1; + is_legal[LNK_CmdSwitch_ManifestDependency] = 1; + is_legal[LNK_CmdSwitch_Merge] = 1; + is_legal[LNK_CmdSwitch_NoDefaultLib] = 1; + is_legal[LNK_CmdSwitch_Release] = 1; + is_legal[LNK_CmdSwitch_Section] = 1; + is_legal[LNK_CmdSwitch_Stack] = 1; + is_legal[LNK_CmdSwitch_SubSystem] = 1; + is_legal[LNK_CmdSwitch_ThrowingNew] = 1; + } + + String8 to_parse; + { + local_persist const U8 bom_sig[] = { 0xEF, 0xBB, 0xBF }; + local_persist const U8 ascii_sig[] = { 0x20, 0x20, 0x20 }; + if (MemoryMatch(buffer.str, &bom_sig[0], sizeof(bom_sig))) { + to_parse = str8_zero(); + lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "TODO: support for BOM encoding"); + } else if (MemoryMatch(buffer.str, &ascii_sig[0], sizeof(ascii_sig))) { + to_parse = str8_skip(buffer, sizeof(ascii_sig)); + } else { + to_parse = buffer; + } + } + + String8List arg_list = lnk_arg_list_parse_windows_rules(scratch.arena, to_parse); + LNK_CmdLine cmd_line = lnk_cmd_line_parse_windows_rules(scratch.arena, arg_list); + + for (LNK_CmdOption *opt = cmd_line.first_option; opt != 0; opt = opt->next) { + LNK_CmdSwitchType type = lnk_cmd_switch_type_from_string(opt->string); + + if (type == LNK_CmdSwitch_Null) { + lnk_error_with_loc(LNK_Warning_UnknownDirective, obj_path, lib_path, "unknown directive \"%S\"", opt->string); + continue; + } + if (!is_legal[type]) { + lnk_error_with_loc(LNK_Warning_IllegalDirective, obj_path, lib_path, "illegal directive \"%S\"", opt->string); + continue; + } + + LNK_Directive *directive = push_array_no_zero(arena, LNK_Directive, 1); + directive->next = 0; + directive->id = push_str8_copy(arena, opt->string); + directive->value_list = str8_list_copy(arena, &opt->value_strings); + + LNK_DirectiveList *directive_list = &directive_info->v[type]; + SLLQueuePush(directive_list->first, directive_list->last, directive); + ++directive_list->count; + } + + scratch_end(scratch); +} + +//////////////////////////////// + internal LNK_Obj ** lnk_obj_arr_from_list(Arena *arena, LNK_ObjList list) { @@ -315,11 +389,13 @@ lnk_sect_defn_list_concat_in_place_arr(LNK_SectDefnList *list, LNK_SectDefnList internal THREAD_POOL_TASK_FUNC(lnk_obj_initer) { + Temp scratch = scratch_begin(&arena, 1); + LNK_ObjIniter *task = raw_task; LNK_InputObj *input = task->inputs[task_id]; LNK_Obj *obj = &task->obj_node_arr[task_id].data; U64 obj_idx = task->obj_id_base + task_id; - + // // parse obj header // @@ -382,7 +458,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) // read name String8 sect_name = coff_name_from_section_header(raw_coff_string_table, coff_sect_header); - + // parse name coff_parse_section_name(sect_name, §_name_arr[sect_idx], §_sort_arr[sect_idx]); @@ -450,7 +526,36 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) // // parse directives // - LNK_DirectiveInfo directive_info = lnk_directive_info_from_sections(arena, input->path, input->lib_path, coff_info.section_count_no_null, reloc_list_arr, sect_name_arr, chunk_arr); + + String8List drectve_data = {0}; + for (U64 sect_idx = 0; sect_idx < coff_info.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = &coff_section_table[sect_idx]; + + if (sect_header->flags & COFF_SectionFlag_LnkInfo) { + if (str8_match(sect_name_arr[sect_idx], str8_lit(".drectve"), 0)) { + if (sect_header->flags & COFF_SectionFlag_CntUninitializedData) { + lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, ".drectve section header has flag COFF_SectionFlag_CntUninitializedData"); + break; + } + if (sect_header->fsize < 3) { + lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "not enough bytes to parse .drectve"); + break; + } + if (sect_header->reloc_count > 0) { + lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, ".drectve must not have relocations"); + break; + } + + Rng1U64 sect_range = rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize); + str8_list_push(scratch.arena, &drectve_data, str8_substr(input->data, sect_range)); + } + } + } + + LNK_DirectiveInfo directive_info = {0}; + for (String8Node *drectve_n = drectve_data.first; drectve_n != 0; drectve_n = drectve_n->next) { + lnk_parse_msvc_linker_directive(arena, input->path, input->lib_path, &directive_info, drectve_n->string); + } // parse exports LNK_ExportParseList export_parse = {0}; @@ -497,6 +602,8 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) obj->export_parse = export_parse; obj->include_symbol_list = include_symbol_list; obj->alt_name_list = alt_name_list; + + scratch_end(scratch); } internal @@ -1051,112 +1158,6 @@ lnk_reloc_list_array_from_coff(Arena *arena, COFF_MachineType machine, String8 c return reloc_list_arr; } -internal void -lnk_parse_msvc_linker_directive(Arena *arena, String8 obj_path, String8 lib_path, LNK_DirectiveInfo *directive_info, String8 buffer) -{ - Temp scratch = scratch_begin(&arena, 1); - - local_persist B32 init_table = 1; - local_persist B8 is_legal[LNK_CmdSwitch_Count]; - if (init_table) { - init_table = 0; - is_legal[LNK_CmdSwitch_AlternateName] = 1; - is_legal[LNK_CmdSwitch_DefaultLib] = 1; - is_legal[LNK_CmdSwitch_DisallowLib] = 1; - is_legal[LNK_CmdSwitch_EditAndContinue] = 1; - is_legal[LNK_CmdSwitch_Entry] = 1; - is_legal[LNK_CmdSwitch_Export] = 1; - is_legal[LNK_CmdSwitch_FailIfMismatch] = 1; - is_legal[LNK_CmdSwitch_GuardSym] = 1; - is_legal[LNK_CmdSwitch_Include] = 1; - is_legal[LNK_CmdSwitch_InferAsanLibs] = 1; - is_legal[LNK_CmdSwitch_InferAsanLibsNo] = 1; - is_legal[LNK_CmdSwitch_ManifestDependency] = 1; - is_legal[LNK_CmdSwitch_Merge] = 1; - is_legal[LNK_CmdSwitch_NoDefaultLib] = 1; - is_legal[LNK_CmdSwitch_Release] = 1; - is_legal[LNK_CmdSwitch_Section] = 1; - is_legal[LNK_CmdSwitch_Stack] = 1; - is_legal[LNK_CmdSwitch_SubSystem] = 1; - is_legal[LNK_CmdSwitch_ThrowingNew] = 1; - } - - String8 to_parse; - { - local_persist const U8 bom_sig[] = { 0xEF, 0xBB, 0xBF }; - local_persist const U8 ascii_sig[] = { 0x20, 0x20, 0x20 }; - if (MemoryMatch(buffer.str, &bom_sig[0], sizeof(bom_sig))) { - to_parse = str8_zero(); - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "TODO: support for BOM encoding"); - } else if (MemoryMatch(buffer.str, &ascii_sig[0], sizeof(ascii_sig))) { - to_parse = str8_skip(buffer, sizeof(ascii_sig)); - } else { - to_parse = buffer; - } - } - - String8List arg_list = lnk_arg_list_parse_windows_rules(scratch.arena, to_parse); - LNK_CmdLine cmd_line = lnk_cmd_line_parse_windows_rules(scratch.arena, arg_list); - - for (LNK_CmdOption *opt = cmd_line.first_option; opt != 0; opt = opt->next) { - LNK_CmdSwitchType type = lnk_cmd_switch_type_from_string(opt->string); - - if (type == LNK_CmdSwitch_Null) { - lnk_error_with_loc(LNK_Warning_UnknownDirective, obj_path, lib_path, "unknown directive \"%S\"", opt->string); - continue; - } - if (!is_legal[type]) { - lnk_error_with_loc(LNK_Warning_IllegalDirective, obj_path, lib_path, "illegal directive \"%S\"", opt->string); - continue; - } - - LNK_Directive *directive = push_array_no_zero(arena, LNK_Directive, 1); - directive->next = 0; - directive->id = push_str8_copy(arena, opt->string); - directive->value_list = str8_list_copy(arena, &opt->value_strings); - - LNK_DirectiveList *directive_list = &directive_info->v[type]; - SLLQueuePush(directive_list->first, directive_list->last, directive); - ++directive_list->count; - } - - scratch_end(scratch); -} - -internal LNK_DirectiveInfo -lnk_directive_info_from_sections(Arena *arena, - String8 obj_path, - String8 lib_path, - U64 chunk_count, - LNK_RelocList *reloc_list_arr, - String8 *sect_name_arr, - LNK_Chunk *chunk_arr) -{ - LNK_DirectiveInfo directive_info = {0}; - for (U64 chunk_idx = 0; chunk_idx < chunk_count; ++chunk_idx) { - String8 sect_name = sect_name_arr[chunk_idx]; - LNK_Chunk *sect_chunk = chunk_arr + chunk_idx; - if (str8_match_lit(".drectve", sect_name, 0)) { - if (sect_chunk->type == LNK_Chunk_Leaf) { - if (sect_chunk->u.leaf.size >= 3) { - if (~sect_chunk->flags & COFF_SectionFlag_LnkInfo) { - lnk_error_with_loc(LNK_Warning_IllData, obj_path, lib_path, "%S missing COFF_SectionFlag_LnkInfo", sect_name); - } - if (reloc_list_arr[chunk_idx].count > 0) { - lnk_error_with_loc(LNK_Warning_DirectiveSectionWithRelocs, obj_path, lib_path, "directive section %S(%#x) has relocations", sect_name, (chunk_idx+1)); - } - lnk_parse_msvc_linker_directive(arena, obj_path, lib_path, &directive_info, sect_chunk->u.leaf); - } else { - lnk_error_with_loc(LNK_Warning_IllData, obj_path, lib_path, "unable to parse %S", sect_name); - } - } else { - Assert(!"linker directive section chunk must be of leaf type"); - } - } - } - return directive_info; -} - internal MSCRT_FeatFlags lnk_obj_get_features(LNK_Obj *obj) { From 307d3a7f4bdbdaa461c0e44d92a0f557739f9bc9 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 9 Apr 2025 15:18:40 -0700 Subject: [PATCH 046/372] check obj compatibility before initializing them --- src/linker/lnk.c | 34 ++++++++++++---------------------- src/linker/lnk_lib.c | 2 +- src/linker/lnk_obj.c | 30 ++++++++++++++++++++++++++---- src/linker/lnk_obj.h | 4 ++-- 4 files changed, 41 insertions(+), 29 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 1dea30a5..2e3f6eb0 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -189,8 +189,8 @@ lnk_input_import_is_before(void *raw_a, void *raw_b) int lnk_input_import_compar(const void *raw_a, const void *raw_b) { - const LNK_InputImport **a = (const LNK_InputImport **) raw_a; - const LNK_InputImport **b = (const LNK_InputImport **) raw_b; + LNK_InputImport * const *a = raw_a; + LNK_InputImport * const *b = raw_b; int cmp = str8_compar_ignore_case(&(*a)->import_header.dll_name, &(*b)->import_header.dll_name); if (cmp == 0) { cmp = str8_compar_case_sensitive(&(*a)->import_header.func_name, &(*b)->import_header.func_name); @@ -3761,29 +3761,19 @@ lnk_run(int argc, char **argv) } ProfEnd(); - LNK_ObjNodeArray obj_node_arr = lnk_obj_list_push_parallel(tp, tp_arena, &obj_list, sectab, config->function_pad_min, unique_obj_input_list.count, input_obj_arr); - - ProfBegin("Machine Compat Check"); - for (U64 obj_idx = 0; obj_idx < obj_node_arr.count; ++obj_idx) { - LNK_Obj *obj = &obj_node_arr.v[obj_idx].data; - - // derive machine from obj - if (config->machine == COFF_MachineType_Unknown) { - config->machine = obj->machine; - } else if (config->machine != COFF_MachineType_X64) { - lnk_error_with_loc(LNK_Error_UnsupportedMachine, obj->path, obj->lib_path, "%S machine is supported", coff_string_from_machine_type(obj->machine)); - } else { - // is obj machine compatible? - if (config->machine != obj->machine && - obj->machine != COFF_MachineType_Unknown) { // obj with unknown machine type is compatible with any other machine type - lnk_error_obj(LNK_Error_IncompatibleObj, obj, - "conflicting machine types expected %S but got %S", - coff_string_from_machine_type(config->machine), - coff_string_from_machine_type(obj->machine)); + LNK_ObjNodeArray obj_node_arr = lnk_obj_list_push_parallel(tp, tp_arena, &obj_list, sectab, config->function_pad_min, config->machine, unique_obj_input_list.count, input_obj_arr); + + // + // if the machine was omitted on the command line, derive machine from obj + // + if (config->machine == COFF_MachineType_Unknown) { + for (U64 obj_idx = 0; obj_idx < obj_node_arr.count; obj_idx += 1) { + if (obj_node_arr.v[obj_idx].data.machine != COFF_MachineType_Unknown) { + config->machine = obj_node_arr.v[obj_idx].data.machine; + break; } } } - ProfEnd(); ProfBegin("Collect Directives"); for (U64 i = 0; i < obj_node_arr.count; ++i) { diff --git a/src/linker/lnk_lib.c b/src/linker/lnk_lib.c index d02f4fac..d8b9c37b 100644 --- a/src/linker/lnk_lib.c +++ b/src/linker/lnk_lib.c @@ -941,7 +941,7 @@ lnk_build_import_lib(TP_Context *tp, TP_Arena *arena, COFF_MachineType machine, LNK_InputObj **inputs = lnk_array_from_input_obj_list(scratch.arena, input_obj_list); LNK_SectionTable *sectab = lnk_section_table_alloc(0,0,0); LNK_ObjList obj_list = {0}; - lnk_obj_list_push_parallel(tp, arena, &obj_list, sectab, 0, input_obj_list.count, inputs); + lnk_obj_list_push_parallel(tp, arena, &obj_list, sectab, 0, machine, input_obj_list.count, inputs); LNK_LibBuild import_lib = lnk_build_lib(scratch.arena, machine, time_stamp, dll_name, obj_list, exptab); B32 emit_second_member = 0; // MSVC linker refuses to link with lib that has the second member. diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 877f720f..2c305ee7 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -399,10 +399,30 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) // // parse obj header // - COFF_FileHeaderInfo coff_info = coff_file_header_info_from_data(input->data); - String8 raw_coff_section_table = str8_substr(input->data, coff_info.section_table_range); - String8 raw_coff_symbol_table = str8_substr(input->data, coff_info.symbol_table_range); - String8 raw_coff_string_table = str8_substr(input->data, coff_info.string_table_range); + COFF_FileHeaderInfo coff_info = coff_file_header_info_from_data(input->data); + + // + // set & check machine compatibility + // + { + if (task->machine == COFF_MachineType_Unknown) { + ins_atomic_u32_eval_assign(&task->machine, coff_info.machine); + } + + if (coff_info.machine != COFF_MachineType_Unknown && task->machine != coff_info.machine) { + lnk_error_with_loc(LNK_Error_IncompatibleObj, input->path, input->lib_path, + "conflicting machine types expected %S but got %S", + coff_string_from_machine_type(task->machine), + coff_string_from_machine_type(coff_info.machine)); + } + } + + // + // extract COFF info + // + String8 raw_coff_section_table = str8_substr(input->data, coff_info.section_table_range); + String8 raw_coff_symbol_table = str8_substr(input->data, coff_info.symbol_table_range); + String8 raw_coff_string_table = str8_substr(input->data, coff_info.string_table_range); // // error check: section table / symbol table / string table @@ -714,6 +734,7 @@ lnk_obj_list_push_parallel(TP_Context *tp, LNK_ObjList *obj_list, LNK_SectionTable *sectab, U64 *function_pad_min, + COFF_MachineType machine, U64 input_count, LNK_InputObj **inputs) { @@ -730,6 +751,7 @@ lnk_obj_list_push_parallel(TP_Context *tp, task.obj_id_base = obj_id_base; task.obj_node_arr = obj_arr.v; task.function_pad_min = function_pad_min; + task.machine = machine; tp_for_parallel(tp, arena, input_count, lnk_obj_initer, &task); } ProfEnd(); diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index ec07d32e..f7790b54 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -54,7 +54,6 @@ typedef struct LNK_Obj String8 path; String8 lib_path; U64 input_idx; - U64 common_symbol_size; COFF_MachineType machine; U64 chunk_count; U64 sect_count; @@ -114,6 +113,7 @@ typedef struct LNK_SectDefnList *defn_arr; LNK_SectionTable *sectab; U64 *function_pad_min; + U32 machine; } LNK_ObjIniter; typedef struct @@ -198,7 +198,7 @@ internal LNK_InputObjList lnk_input_obj_list_from_string_list(Arena *arena, Stri internal LNK_Obj ** lnk_obj_arr_from_list(Arena *arena, LNK_ObjList list); internal LNK_ObjNodeArray lnk_obj_list_reserve(Arena *arena, LNK_ObjList *list, U64 count); internal LNK_ChunkList * lnk_collect_obj_chunks(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8 name, String8 postfix, B32 collect_discarded); -internal LNK_ObjNodeArray lnk_obj_list_push_parallel(TP_Context *tp, TP_Arena *tp_arena, LNK_ObjList *obj_list, LNK_SectionTable *sectab, U64 *function_pad_min, U64 input_count, LNK_InputObj **inputs); +internal LNK_ObjNodeArray lnk_obj_list_push_parallel(TP_Context *tp, TP_Arena *tp_arena, LNK_ObjList *obj_list, LNK_SectionTable *sectab, U64 *function_pad_min, COFF_MachineType machine, U64 input_count, LNK_InputObj **inputs); internal LNK_Chunk * lnk_sect_chunk_array_from_coff(Arena *arena, U64 obj_id, String8 obj_path, String8 coff_data, U64 sect_count, COFF_SectionHeader *coff_sect_arr, String8 *sect_name_arr, String8 *sect_postfix_arr); internal LNK_SymbolArray lnk_symbol_array_from_coff(Arena *arena, LNK_Obj *obj, String8 obj_path, String8 lib_path, B32 is_big_obj, U64 function_pad_min, U64 sect_count, COFF_SectionHeader *section_table, U64 symbol_count, void *symbol_table, String8 string_table, LNK_ChunkPtr *chunk_table, LNK_Chunk *master_common_block); From 55c76db902db6649357e86033db2f6fef59ae4ad Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 10 Apr 2025 17:06:23 -0700 Subject: [PATCH 047/372] handle linker directives in a separate step after obj is initialized, this way we don't need to store directives in obj struct --- src/linker/linker.natvis | 13 ++ src/linker/lnk.c | 271 +++++++++++++++----------- src/linker/lnk_config.c | 356 ++++++++++++++++++---------------- src/linker/lnk_config.h | 17 +- src/linker/lnk_export_table.c | 12 -- src/linker/lnk_export_table.h | 2 - src/linker/lnk_obj.c | 179 +---------------- src/linker/lnk_obj.h | 4 - 8 files changed, 385 insertions(+), 469 deletions(-) diff --git a/src/linker/linker.natvis b/src/linker/linker.natvis index 4b6e5c55..82533c44 100644 --- a/src/linker/linker.natvis +++ b/src/linker/linker.natvis @@ -15,9 +15,22 @@ + + {{count={count} first={first} last={last} }} + + + count + first + next + this + + + + + {{count={count} first={first} last={last} }} diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 2e3f6eb0..235881fd 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2891,34 +2891,6 @@ lnk_init_section_table(LNK_SymbolTable *symtab, U64 section_virt_off, U64 sect_a return sectab; } -internal LNK_MergeDirectiveList -lnk_init_merge_directive_list(Arena *arena, LNK_ObjList obj_list) -{ - ProfBeginFunction(); - - LNK_MergeDirectiveList result = {0}; - - lnk_merge_directive_list_push(arena, &result, (LNK_MergeDirective){ str8_lit_comp(".xdata") , str8_lit_comp(".rdata") }); - //lnk_merge_directive_list_push(arena, &result, (LNK_MergeDirective){ str8_lit_comp(".tls"), str8_lit_comp(".data") }); - - // collect merge directives from objs - for (LNK_ObjNode *obj_node = obj_list.first; obj_node != 0; obj_node = obj_node->next) { - LNK_Obj *obj = &obj_node->data; - for (LNK_Directive *dir = obj->directive_info.v[LNK_CmdSwitch_Merge].first; dir != 0; dir = dir->next) { - for (String8Node *value_node = dir->value_list.first; value_node != 0; value_node = value_node->next) { - LNK_MergeDirective merge_dir; - if (lnk_parse_merge_directive(value_node->string, &merge_dir)) { lnk_merge_directive_list_push(arena, &result, merge_dir); - } else { - lnk_error_obj(LNK_Warning_IllData, obj, "can't parse merge directive \"%S\"", value_node->string); - } - } - } - } - - ProfEnd(); - return result; -} - internal void lnk_discard_meta_data_sections(LNK_SectionTable *sectab) { @@ -3391,29 +3363,25 @@ lnk_run(int argc, char **argv) ProfBeginFunction(); Temp scratch = scratch_begin(0, 0); + + lnk_init_error_handler(); - LNK_Config *config = lnk_build_config(scratch.arena, argc, argv); - + LNK_Config *config = lnk_build_config(scratch.arena, argc, argv); TP_Context *tp = tp_alloc(scratch.arena, config->worker_count, config->max_worker_count, config->shared_thread_pool_name); TP_Arena *tp_arena = tp_arena_alloc(tp); -#if PROFILE_TELEMETRY - { - String8 cmdl = str8_list_join(scratch.arena, &config->raw_cmd_line, &(StringJoin){ .sep = str8_lit_comp(" ") }); - tmMessage(0, TMMF_ICON_NOTE, "Command Line: %.*s", str8_varg(cmdl)); - } -#endif - // inputs - String8List include_symbol_list = config->include_symbol_list; - String8List input_disallow_lib_list = config->disallow_lib_list; - String8List input_manifest_path_list = str8_list_copy(tp_arena->v[0], &config->input_list[LNK_Input_Manifest]); - String8List manifest_dep_list = str8_list_copy(scratch.arena, &config->manifest_dependency_list); - LNK_AltNameList alt_name_list = config->alt_name_list; - LNK_InputLibList input_libs[LNK_InputSource_Count] = {0}; - LNK_InputObjList input_obj_list = {0}; - LNK_InputImportList input_import_list = {0}; - LNK_SymbolList input_weak_list = {0}; + String8List include_symbol_list = config->include_symbol_list; + String8List input_disallow_lib_list = config->disallow_lib_list; + String8List input_manifest_path_list = str8_list_copy(tp_arena->v[0], &config->input_list[LNK_Input_Manifest]); + String8List manifest_dep_list = str8_list_copy(scratch.arena, &config->manifest_dependency_list); + LNK_ExportParseList export_symbol_list = config->export_symbol_list; + LNK_MergeDirectiveList merge_list = config->merge_list; + LNK_AltNameList alt_name_list = config->alt_name_list; + LNK_InputLibList input_libs[LNK_InputSource_Count] = {0}; + LNK_InputObjList input_obj_list = {0}; + LNK_InputImportList input_import_list = {0}; + LNK_SymbolList input_weak_list = {0}; // :null_obj lnk_input_obj_list_push(scratch.arena, &input_obj_list); @@ -3427,39 +3395,39 @@ lnk_run(int argc, char **argv) input_libs[LNK_InputSource_Default] = config->input_default_lib_list; // state - LNK_SymbolTable *symtab = lnk_symbol_table_init(tp_arena); - LNK_SectionTable *sectab = lnk_init_section_table(symtab, config->section_virt_off, config->sect_align, config->file_align); - LNK_ImportTable *imptab_static = 0; - LNK_ImportTable *imptab_delayed = 0; - LNK_ExportTable *exptab = lnk_export_table_alloc(); - Arena *ht_arena = arena_alloc(); - HashTable *disallow_lib_ht = hash_table_init(scratch.arena, 0x100); - HashTable *delay_load_dll_ht = hash_table_init(scratch.arena, 0x100); - HashTable *loaded_lib_ht = hash_table_init(scratch.arena, 0x100); - HashTable *missing_lib_ht = hash_table_init(scratch.arena, 0x100); - HashTable *loaded_obj_ht = hash_table_init(scratch.arena, 0x4000); - LNK_SymbolList lookup_undef_list = {0}; - LNK_SymbolList lookup_weak_list = {0}; - LNK_SymbolList unresolved_undef_list = {0}; - LNK_SymbolList unresolved_weak_list = {0}; - U64 entry_search_attempts = 0; - B32 build_debug_info = lnk_do_debug_info(config); - B32 build_linker_obj = build_debug_info; - B32 build_debug_directory = build_debug_info; - B32 build_res_obj = 1; - B32 discard_meta_data_sections = 1; - B32 merge_sections = !!(config->flags & LNK_ConfigFlag_Merge); - B32 build_cf_guards = 0; // (config->flags != LNK_Guard_NONE); - B32 build_export_table = 1; - B32 build_base_relocs = !(config->flags & LNK_ConfigFlag_Fixed); - B32 report_unresolved_symbols = 1; - B32 check_unused_delay_loads = !!(config->flags & LNK_ConfigFlag_CheckUnusedDelayLoadDll); - B32 build_imp_lib = config->build_imp_lib; - B32 build_rad_chunk_map = (config->rad_chunk_map == LNK_SwitchState_Yes); - LNK_ObjList obj_list = {0}; - LNK_LibList lib_index[LNK_InputSource_Count] = {0}; - String8 image_data = str8_zero(); - OS_Handle image_write_thread = {0}; + LNK_SymbolTable *symtab = lnk_symbol_table_init(tp_arena); + LNK_SectionTable *sectab = lnk_init_section_table(symtab, config->section_virt_off, config->sect_align, config->file_align); + LNK_ImportTable *imptab_static = 0; + LNK_ImportTable *imptab_delayed = 0; + LNK_ExportTable *exptab = lnk_export_table_alloc(); + Arena *ht_arena = arena_alloc(); + HashTable *disallow_lib_ht = hash_table_init(scratch.arena, 0x100); + HashTable *delay_load_dll_ht = hash_table_init(scratch.arena, 0x100); + HashTable *loaded_lib_ht = hash_table_init(scratch.arena, 0x100); + HashTable *missing_lib_ht = hash_table_init(scratch.arena, 0x100); + HashTable *loaded_obj_ht = hash_table_init(scratch.arena, 0x4000); + LNK_SymbolList lookup_undef_list = {0}; + LNK_SymbolList lookup_weak_list = {0}; + LNK_SymbolList unresolved_undef_list = {0}; + LNK_SymbolList unresolved_weak_list = {0}; + U64 entry_search_attempts = 0; + B32 build_debug_info = lnk_do_debug_info(config); + B32 build_linker_obj = build_debug_info; + B32 build_debug_directory = build_debug_info; + B32 build_res_obj = 1; + B32 discard_meta_data_sections = 1; + B32 merge_sections = !!(config->flags & LNK_ConfigFlag_Merge); + B32 build_cf_guards = 0; // (config->flags != LNK_Guard_NONE); + B32 build_export_table = 1; + B32 build_base_relocs = !(config->flags & LNK_ConfigFlag_Fixed); + B32 report_unresolved_symbols = 1; + B32 check_unused_delay_loads = !!(config->flags & LNK_ConfigFlag_CheckUnusedDelayLoadDll); + B32 build_imp_lib = config->build_imp_lib; + B32 build_rad_chunk_map = (config->rad_chunk_map == LNK_SwitchState_Yes); + LNK_ObjList obj_list = {0}; + LNK_LibList lib_index[LNK_InputSource_Count] = {0}; + String8 image_data = str8_zero(); + OS_Handle image_write_thread = {0}; // init state machine struct StateList state_list = {0}; @@ -3478,6 +3446,9 @@ lnk_run(int argc, char **argv) if (config->guard_flags != LNK_Guard_None) { state_list_push(scratch.arena, state_list, State_PushLoadConfigUndefSymbol); } + + // default section merges + lnk_merge_directive_list_push(scratch.arena, &merge_list, (LNK_MergeDirective){ str8_lit_comp(".xdata") , str8_lit_comp(".rdata") }); ProfBegin("Image"); // :EndImage ProfBegin("Build"); // :EndBuild @@ -3761,7 +3732,20 @@ lnk_run(int argc, char **argv) } ProfEnd(); - LNK_ObjNodeArray obj_node_arr = lnk_obj_list_push_parallel(tp, tp_arena, &obj_list, sectab, config->function_pad_min, config->machine, unique_obj_input_list.count, input_obj_arr); + if (lnk_get_log_status(LNK_Log_InputObj)) { + U64 input_size = 0; + for (U64 i = 0; i < unique_obj_input_list.count; ++i) { input_size += input_obj_arr[i]->data.size; } + lnk_log(LNK_Log_InputObj, "[ Obj Input Size %M ]", input_size); + } + + LNK_ObjNodeArray obj_node_arr = lnk_obj_list_push_parallel(tp, + tp_arena, + &obj_list, + sectab, + config->function_pad_min, + config->machine, + unique_obj_input_list.count, + input_obj_arr); // // if the machine was omitted on the command line, derive machine from obj @@ -3774,41 +3758,114 @@ lnk_run(int argc, char **argv) } } } - - ProfBegin("Collect Directives"); - for (U64 i = 0; i < obj_node_arr.count; ++i) { - LNK_Obj *obj = &obj_node_arr.v[i].data; - str8_list_concat_in_place(&include_symbol_list, &obj->include_symbol_list); + ProfBegin("Handle Directives"); + for (U64 obj_idx = 0; obj_idx < obj_node_arr.count; obj_idx += 1) { + LNK_Obj *obj = &obj_node_arr.v[obj_idx].data; - lnk_alt_name_list_concat_in_place(&alt_name_list, &obj->alt_name_list); + LNK_DirectiveInfo directive_info = {0}; + { + COFF_FileHeaderInfo coff_info = coff_file_header_info_from_data(obj->data); + COFF_SectionHeader *coff_section_table = (COFF_SectionHeader *)str8_substr(obj->data, coff_info.section_table_range).str; - for (LNK_Directive *dir = obj->directive_info.v[LNK_CmdSwitch_DisallowLib].first; dir != 0; dir = dir->next) { + String8List drectve_data = {0}; + for (U64 sect_idx = 0; sect_idx < coff_info.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = &coff_section_table[sect_idx]; + if (sect_header->flags & COFF_SectionFlag_LnkInfo) { + String8 sect_name = str8_cstring_capped(sect_header->name, sect_header->name + sizeof(sect_header->name)); + if (str8_match(sect_name, str8_lit(".drectve"), 0)) { + if (sect_header->flags & COFF_SectionFlag_CntUninitializedData) { + lnk_error_obj(LNK_Error_IllData, obj, ".drectve section header has flag COFF_SectionFlag_CntUninitializedData"); + break; + } + if (sect_header->fsize < 3) { + lnk_error_obj(LNK_Error_IllData, obj, "not enough bytes to parse .drectve"); + break; + } + if (sect_header->reloc_count > 0) { + lnk_error_obj(LNK_Error_IllData, obj, ".drectve must not have relocations"); + break; + } + Rng1U64 sect_range = rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize); + str8_list_push(scratch.arena, &drectve_data, str8_substr(obj->data, sect_range)); + } + } + } + + for (String8Node *drectve_n = drectve_data.first; drectve_n != 0; drectve_n = drectve_n->next) { + lnk_parse_msvc_linker_directive(scratch.arena, obj, &directive_info, drectve_n->string); + } + } + + // /EXPORT + { + LNK_ExportParseList obj_exports = {0}; + for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Export].first; dir != 0; dir = dir->next) { + lnk_parse_export_directive(scratch.arena, &obj_exports, dir->value_list, obj->path, obj->lib_path); + } + for (LNK_ExportParse *exp = obj_exports.first; exp != 0; exp = exp->next) { + str8_list_push(scratch.arena, &include_symbol_list, exp->name); + } + lnk_export_parse_list_concat_in_place(&export_symbol_list, &obj_exports); + } + + // /INCLUDESYMBOL + for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Include].first; dir != 0; dir = dir->next) { + str8_list_concat_in_place(&include_symbol_list, &dir->value_list); + } + + // /MERGE + for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Merge].first; dir != 0; dir = dir->next) { + for (String8Node *value_n = dir->value_list.first; value_n != 0; value_n = value_n->next) { + LNK_MergeDirective merge_dir; + if (lnk_parse_merge_directive(value_n->string, &merge_dir)) { + lnk_merge_directive_list_push(scratch.arena, &merge_list, merge_dir); + } else { + lnk_error_obj(LNK_Warning_IllData, obj, "can't parse merge directive \"%S\"", value_n->string); + } + } + } + + // /MANIFESTDEPENDENCY + for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_ManifestDependency].first; dir != 0; dir = dir->next) { + str8_list_concat_in_place(&manifest_dep_list, &dir->value_list); + } + + // /DISALLOWLIB + for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_DisallowLib].first; dir != 0; dir = dir->next) { str8_list_concat_in_place(&input_disallow_lib_list, &dir->value_list); } - for (LNK_Directive *dir = obj->directive_info.v[LNK_CmdSwitch_Entry].first; dir != 0; dir = dir->next) { + // /DEFAULTLIB + for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_DefaultLib].first; dir != 0; dir = dir->next) { + str8_list_concat_in_place(&input_libs[LNK_InputSource_Obj], &dir->value_list); + } + + // /ALTERNATENAME + for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_AlternateName].first; dir != 0; dir = dir->next) { + String8 *invalid_string = lnk_parse_alt_name_directive_list(scratch.arena, dir->value_list, &alt_name_list); + if (invalid_string) { + lnk_error_obj(LNK_Error_Cmdl, obj, "invalid syntax \"%S\", expected format \"FROM=TO\"", *invalid_string); + } + } + + // /ENTRY + for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Entry].first; dir != 0; dir = dir->next) { lnk_apply_cmd_option_to_config(scratch.arena, config, dir->id, dir->value_list, obj->path, obj->lib_path); } - for (LNK_Directive *dir = obj->directive_info.v[LNK_CmdSwitch_SubSystem].first; dir != 0; dir = dir->next) { + // /SUBSYSTEM + for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_SubSystem].first; dir != 0; dir = dir->next) { lnk_apply_cmd_option_to_config(scratch.arena, config, dir->id, dir->value_list, obj->path, obj->lib_path); } - for (LNK_Directive *dir = obj->directive_info.v[LNK_CmdSwitch_Stack].first; dir != 0; dir = dir->next) { + // /STACK + for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Stack].first; dir != 0; dir = dir->next) { lnk_apply_cmd_option_to_config(scratch.arena, config, dir->id, dir->value_list, obj->path, obj->lib_path); } } ProfEnd(); - // collect manifest dependencies - String8List obj_dep_list = lnk_collect_manifest_dependency_list(tp, tp_arena, obj_node_arr); - str8_list_concat_in_place(&manifest_dep_list, &obj_dep_list); - - // collect libs for input - LNK_InputLibList lib_list = lnk_collect_default_lib_obj_arr(tp, tp_arena, obj_node_arr); // TODO: put these on temp arena - str8_list_concat_in_place(&input_libs[LNK_InputSource_Obj], &lib_list); - // update symbol table lnk_push_defined_symbols(tp, symtab, obj_node_arr); @@ -3823,14 +3880,6 @@ lnk_run(int argc, char **argv) // reset input objs MemoryZeroStruct(&input_obj_list); - if (lnk_get_log_status(LNK_Log_InputObj)) { - U64 input_size = 0; - for (U64 i = 0; i < obj_node_arr.count; ++i) { - input_size += obj_node_arr.v[i].data.data.size; - } - lnk_log(LNK_Log_InputObj, "[ Obj Input Size %M ]", input_size); - } - ProfEnd(); } break; case State_InputLibs: { @@ -4112,13 +4161,11 @@ lnk_run(int argc, char **argv) case State_BuildExportTable: { ProfBegin("Build Export Table"); - // push exports from command line - for (LNK_ExportParse *exp_parse = config->export_symbol_list.first; exp_parse != 0; exp_parse = exp_parse->next) { + ProfBeginV("Push Exports [Count %u]", export_symbol_list.count); + for (LNK_ExportParse *exp_parse = export_symbol_list.first; exp_parse != 0; exp_parse = exp_parse->next) { lnk_export_table_push_export(exptab, symtab, exp_parse); } - - // push exports from obj directives - lnk_collect_exports_from_obj_directives(exptab, obj_list, symtab); + ProfEnd(); // build export table section lnk_build_edata(exptab, sectab, symtab, config->image_name, config->machine); @@ -4127,7 +4174,6 @@ lnk_run(int argc, char **argv) } break; case State_MergeSections: { ProfBegin("Merge Sections"); - LNK_MergeDirectiveList merge_list = lnk_init_merge_directive_list(scratch.arena, obj_list); lnk_section_table_merge(sectab, merge_list); ProfEnd(); } break; @@ -4564,7 +4610,6 @@ lnk_run(int argc, char **argv) internal void entry_point(CmdLine *cmdline) { - lnk_init_error_handler(); lnk_run(cmdline->argc, cmdline->argv); } diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 53ad9cda..86862571 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -4,168 +4,163 @@ //////////////////////////////// // Enum <-> String -global read_only struct -{ - LNK_CmdSwitchType type; - char *name; - char *args; - char *desc; -} g_cmd_switch_map[] = { - { LNK_CmdSwitch_Null, "", "", "" }, - { LNK_CmdSwitch_NotImplemented, "NOT_IMPLEMENTED", "", "" }, - { LNK_CmdSwitch_Align, "ALIGN", ":#", "" }, - { LNK_CmdSwitch_AllowBind, "ALLOWBIND", "[:NO]", "" }, - { LNK_CmdSwitch_AllowIsolation, "ALLOWISOLATION", "[:NO]", "" }, - { LNK_CmdSwitch_AlternateName, "ALTERNATENAME", "Creates an a symbol alias \"FROM=TO\"." }, - { LNK_CmdSwitch_AppContainer, "APPCONTAINER", "[:NO]", "" }, - { LNK_CmdSwitch_NotImplemented, "ASSEMBLYDEBUG", "", "" }, // .NET - { LNK_CmdSwitch_NotImplemented, "ASSEMBLYLINKRESOURCE", "", "" }, // .NET - { LNK_CmdSwitch_NotImplemented, "ASSEMBLYMODULE", "", "" }, // .NET - { LNK_CmdSwitch_NotImplemented, "ASSEMBLYRESOURCE", "", "" }, // .NET - { LNK_CmdSwitch_Base, "BASE", "{ADDRESS[,SIZE]|@FILENAME,KEY}", "" }, - { LNK_CmdSwitch_NotImplemented, "CLRIMAGETYPE", "", "" }, // .NET - { LNK_CmdSwitch_NotImplemented, "CLRLOADEROPTIMIZATION","", "" }, // .NET - { LNK_CmdSwitch_NotImplemented, "CLRSUPPORTLASTERROR", "", "" }, // .NET - { LNK_CmdSwitch_NotImplemented, "CLRTHREADATTRIBUTE", "", "" }, // .NET - { LNK_CmdSwitch_NotImplemented, "CLRUNMANAGEDCODECHECK","", "" }, // .NET - { LNK_CmdSwitch_Debug, "DEBUG", "[:{FULL|NONE}]", "" }, - { LNK_CmdSwitch_Dump, "DUMP", "", "" }, - { LNK_CmdSwitch_NotImplemented, "DEF", ":FILENAME", "" }, - { LNK_CmdSwitch_DefaultLib, "DEFAULTLIB", ":LIBNAME", "" }, - { LNK_CmdSwitch_Delay, "DELAY", ":{NOBIND|UNLOAD}", "" }, - { LNK_CmdSwitch_DelayLoad, "DELAYLOAD", ":DLL", "" }, - { LNK_CmdSwitch_NotImplemented, "DELAYSIGN", "", "" }, - { LNK_CmdSwitch_NotImplemented, "DEPENDENTLOADFLAG", "", "" }, - { LNK_CmdSwitch_Dll, "DLL", "", "" }, - { LNK_CmdSwitch_NotImplemented, "DRIVER", "", "" }, - { LNK_CmdSwitch_DisallowLib, "DISALLOWLIB", ":LIBRARY", "", }, - { LNK_CmdSwitch_EditAndContinue, "EDITANDCONTINUE", "[:NO]", "" }, - { LNK_CmdSwitch_DynamicBase, "DYNAMICBASE", "[:NO]", "" }, - { LNK_CmdSwitch_NotImplemented, "EMITVOLATILEMETADATA", "", "" }, - { LNK_CmdSwitch_Entry, "ENTRY", ":FUNCTION", "" }, - { LNK_CmdSwitch_Null, "ERRORREPORT", "", "Deprecated starting Windows Vista." }, - { LNK_CmdSwitch_Export, "EXPORT", ":SYMBOL", "" }, - { LNK_CmdSwitch_NotImplemented, "EXPORTADMIN", "", "" }, - { LNK_CmdSwitch_FastFail, "FASTFAIL", "", "Not used." }, - { LNK_CmdSwitch_NotImplemented, "FASTGENPROFILE", "", "" }, - { LNK_CmdSwitch_FailIfMismatch, "FAILIFMISMATCH", "", "" }, - { LNK_CmdSwitch_FileAlign, "FILEALIGN", ":#", "" }, - { LNK_CmdSwitch_Fixed, "FIXED", "[:NO]", "" }, - { LNK_CmdSwitch_NotImplemented, "FORCE", "", "" }, - { LNK_CmdSwitch_FunctionPadMin, "FUNCTIONPADMIN", ":#", "Not Implemented" }, - { LNK_CmdSwitch_NotImplemented, "GUARD", "", "" }, - { LNK_CmdSwitch_GuardSym, "GUARDSYM", "", "", }, - { LNK_CmdSwitch_NotImplemented, "GENPROFILE", "", "" }, - { LNK_CmdSwitch_Heap, "HEAP", "RESERVE[,COMMIT]", "" }, - { LNK_CmdSwitch_HighEntropyVa, "HIGHENTROPYVA", "[:NO]", "" }, - { LNK_CmdSwitch_NotImplemented, "IDLOUT", "", "" }, - { LNK_CmdSwitch_Ignore, "IGNORE", ":#", "" }, - { LNK_CmdSwitch_NotImplemented, "IGNOREIDL", "", "" }, - { LNK_CmdSwitch_NotImplemented, "ILK", "", "" }, - { LNK_CmdSwitch_ImpLib, "IMPLIB", ":FILENAME", "" }, - { LNK_CmdSwitch_Include, "INCLUDE", "", "" }, - { LNK_CmdSwitch_Incremental, "INCREMENTAL", "[:NO]", "Incremental linking is not supported." }, - { LNK_CmdSwitch_NotImplemented, "INTEGRITYCHECK", "", "" }, - { LNK_CmdSwitch_InferAsanLibs, "INFERASANLIBS", "[:NO]", "" }, - { LNK_CmdSwitch_InferAsanLibsNo, "INFERASANLIBSNO", "", "", }, - { LNK_CmdSwitch_NotImplemented, "KERNEL", "", "" }, - { LNK_CmdSwitch_NotImplemented, "KEYCONTAINER", "", "" }, - { LNK_CmdSwitch_NotImplemented, "KEYFILE", "", "" }, - { LNK_CmdSwitch_LargeAddressAware, "LARGEADDRESSAWARE", "[:NO]", "" }, - { LNK_CmdSwitch_Lib, "LIB", "" }, - { LNK_CmdSwitch_LibPath, "LIBPATH", ":DIR", "" }, - { LNK_CmdSwitch_NotImplemented, "LINKERREPO", "", "" }, - { LNK_CmdSwitch_NotImplemented, "LINKERREPOTARGET", "", "" }, - { LNK_CmdSwitch_NotImplemented, "LTCG", "", "" }, - { LNK_CmdSwitch_NotImplemented, "LTCGOUT", "", "" }, - { LNK_CmdSwitch_Machine, "MACHINE", ":{X64|X86}", "" }, - { LNK_CmdSwitch_Manifest, "MANIFEST", "[:{EMBED[,ID=#]|NO]", "" }, - { LNK_CmdSwitch_ManifestDependency, "MANIFESTDEPENDENCY", ":\"manifest dependency XML string\"", "" }, - { LNK_CmdSwitch_ManifestFile, "MANIFESTFILE", ":FILENAME", "" }, - { LNK_CmdSwitch_ManifestInput, "MANIFESTINPUT", ":FILENAME", "" }, - { LNK_CmdSwitch_ManifestUac, "MANIFESTUAC", ":{NO|{'level'={'asInvoker'|'highestAvailable'|'requireAdministrator'} ['uiAccess'={'true'|'false'}]}}", "" }, - { LNK_CmdSwitch_NotImplemented, "MAP", "", "" }, - { LNK_CmdSwitch_NotImplemented, "MAPINFO", "", "" }, - { LNK_CmdSwitch_Merge, "MERGE", ":from=to", "" }, - { LNK_CmdSwitch_NotImplemented, "MIDL", "", "" }, - { LNK_CmdSwitch_Natvis, "NATVIS", ":FILENAME", "" }, - { LNK_CmdSwitch_NotImplemented, "NOASSEMBLY", "", "" }, - { LNK_CmdSwitch_NoDefaultLib, "NODEFAULTLIB", ":LIBNAME", "" }, - { LNK_CmdSwitch_NoDefaultLib, "NOD", ":LIBNAME", "" }, - { LNK_CmdSwitch_NotImplemented, "NOENTRY", "", "" }, - { LNK_CmdSwitch_NoExp, "NOEXP", "", ".exp is not supported." }, - { LNK_CmdSwitch_NoImpLib, "NOIMPLIB", "", "" }, - { LNK_CmdSwitch_NoLogo, "NOLOGO", "", "" }, - { LNK_CmdSwitch_NxCompat, "NXCOMPAT", "[:NO]", "" }, - { LNK_CmdSwitch_Opt, "OPT", "", "" }, - { LNK_CmdSwitch_NotImplemented, "ORDER", "", "" }, - { LNK_CmdSwitch_Out, "OUT", ":FILENAME", "" }, - { LNK_CmdSwitch_Pdb, "PDB", ":FILENAME", "" }, - { LNK_CmdSwitch_PdbAltPath, "PDBALTPATH", "", "" }, - { LNK_CmdSwitch_NotImplemented, "PDBSTRIPPED", "", "" }, - { LNK_CmdSwitch_PdbPageSize, "PDBPAGESIZE", ":#", "Page size must be power of two" }, - { LNK_CmdSwitch_NotImplemented, "PROFILE", "", "" }, - { LNK_CmdSwitch_Release, "RELEASE", "", "" }, - { LNK_CmdSwitch_NotImplemented, "SAFESEH", "", "" }, - { LNK_CmdSwitch_NotImplemented, "SECTION", "", "" }, - { LNK_CmdSwitch_NotImplemented, "SOURCELINK", "", "" }, - { LNK_CmdSwitch_Stack, "STACK", ":RESERVE[,COMMIT]", "" }, - { LNK_CmdSwitch_NotImplemented, "STUB", "", "" }, - { LNK_CmdSwitch_SubSystem, "SUBSYSTEM", ":{CONSOLE|NATIVE|WINDOWS}[,#[.##]]", "" }, - { LNK_CmdSwitch_NotImplemented, "SWAPRUN", "", "" }, - { LNK_CmdSwitch_NotImplemented, "TLBID", "", "" }, - { LNK_CmdSwitch_NotImplemented, "TLBOUT", "", "" }, - { LNK_CmdSwitch_NotImplemented, "TIME", "", "" }, - { LNK_CmdSwitch_TsAware, "TSAWARE", "[:NO]", "" }, - { LNK_CmdSwitch_ThrowingNew, "THROWINGNEW", "", "" }, - { LNK_CmdSwitch_NotImplemented, "USERPROFILE", "", "" }, - { LNK_CmdSwitch_NotImplemented, "VERBOSE", "", "" }, - { LNK_CmdSwitch_Version, "VERSION", "", "" }, - { LNK_CmdSwitch_NotImplemented, "WINMD", "", "" }, - { LNK_CmdSwitch_NotImplemented, "WINMDDELAYSIGN", "", "" }, - { LNK_CmdSwitch_NotImplemented, "WINMDKEYCONTAINER", "", "" }, - { LNK_CmdSwitch_NotImplemented, "WINMDKEYFILE", "", "" }, - { LNK_CmdSwitch_NotImplemented, "WHOLEARCHIVE", "", "" }, - { LNK_CmdSwitch_NotImplemented, "WX", "", "" }, +global read_only LNK_CmdSwitch g_cmd_switch_map[] = { + { LNK_CmdSwitch_Null, 0, "", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "NOT_IMPLEMENTED", "", "" }, + { LNK_CmdSwitch_Align, 0, "ALIGN", ":#", "" }, + { LNK_CmdSwitch_AllowBind, 0, "ALLOWBIND", "[:NO]", "" }, + { LNK_CmdSwitch_AllowIsolation, 0, "ALLOWISOLATION", "[:NO]", "" }, + { LNK_CmdSwitch_AlternateName, 1, "ALTERNATENAME", "Creates an a symbol alias \"FROM=TO\"." }, + { LNK_CmdSwitch_AppContainer, 0, "APPCONTAINER", "[:NO]", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "ASSEMBLYDEBUG", "", "" }, // .NET + { LNK_CmdSwitch_NotImplemented, 0, "ASSEMBLYLINKRESOURCE", "", "" }, // .NET + { LNK_CmdSwitch_NotImplemented, 0, "ASSEMBLYMODULE", "", "" }, // .NET + { LNK_CmdSwitch_NotImplemented, 0, "ASSEMBLYRESOURCE", "", "" }, // .NET + { LNK_CmdSwitch_Base, 0, "BASE", "{ADDRESS[,SIZE]|@FILENAME,KEY}", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "CLRIMAGETYPE", "", "" }, // .NET + { LNK_CmdSwitch_NotImplemented, 0, "CLRLOADEROPTIMIZATION","", "" }, // .NET + { LNK_CmdSwitch_NotImplemented, 0, "CLRSUPPORTLASTERROR", "", "" }, // .NET + { LNK_CmdSwitch_NotImplemented, 0, "CLRTHREADATTRIBUTE", "", "" }, // .NET + { LNK_CmdSwitch_NotImplemented, 0, "CLRUNMANAGEDCODECHECK","", "" }, // .NET + { LNK_CmdSwitch_Debug, 0, "DEBUG", "[:{FULL|NONE}]", "" }, + { LNK_CmdSwitch_Dump, 0, "DUMP", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "DEF", ":FILENAME", "" }, + { LNK_CmdSwitch_DefaultLib, 1, "DEFAULTLIB", ":LIBNAME", "" }, + { LNK_CmdSwitch_Delay, 0, "DELAY", ":{NOBIND|UNLOAD}", "" }, + { LNK_CmdSwitch_DelayLoad, 0, "DELAYLOAD", ":DLL", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "DELAYSIGN", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "DEPENDENTLOADFLAG", "", "" }, + { LNK_CmdSwitch_Dll, 0, "DLL", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "DRIVER", "", "" }, + { LNK_CmdSwitch_DisallowLib, 1, "DISALLOWLIB", ":LIBRARY", "", }, + { LNK_CmdSwitch_EditAndContinue, 1, "EDITANDCONTINUE", "[:NO]", "" }, + { LNK_CmdSwitch_DynamicBase, 0, "DYNAMICBASE", "[:NO]", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "EMITVOLATILEMETADATA", "", "" }, + { LNK_CmdSwitch_Entry, 1, "ENTRY", ":FUNCTION", "" }, + { LNK_CmdSwitch_Null, 0, "ERRORREPORT", "", "Deprecated starting Windows Vista." }, + { LNK_CmdSwitch_Export, 1, "EXPORT", ":SYMBOL", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "EXPORTADMIN", "", "" }, + { LNK_CmdSwitch_FastFail, 0, "FASTFAIL", "", "Not used." }, + { LNK_CmdSwitch_NotImplemented, 0, "FASTGENPROFILE", "", "" }, + { LNK_CmdSwitch_FailIfMismatch, 1, "FAILIFMISMATCH", "", "" }, + { LNK_CmdSwitch_FileAlign, 0, "FILEALIGN", ":#", "" }, + { LNK_CmdSwitch_Fixed, 0, "FIXED", "[:NO]", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "FORCE", "", "" }, + { LNK_CmdSwitch_FunctionPadMin, 0, "FUNCTIONPADMIN", ":#", "Not Implemented" }, + { LNK_CmdSwitch_NotImplemented, 0, "GUARD", "", "" }, + { LNK_CmdSwitch_GuardSym, 1, "GUARDSYM", "", "", }, + { LNK_CmdSwitch_NotImplemented, 0, "GENPROFILE", "", "" }, + { LNK_CmdSwitch_Heap, 0, "HEAP", "RESERVE[,COMMIT]", "" }, + { LNK_CmdSwitch_HighEntropyVa, 0, "HIGHENTROPYVA", "[:NO]", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "IDLOUT", "", "" }, + { LNK_CmdSwitch_Ignore, 0, "IGNORE", ":#", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "IGNOREIDL", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "ILK", "", "" }, + { LNK_CmdSwitch_ImpLib, 0, "IMPLIB", ":FILENAME", "" }, + { LNK_CmdSwitch_Include, 1, "INCLUDE", "", "" }, + { LNK_CmdSwitch_Incremental, 0, "INCREMENTAL", "[:NO]", "Incremental linking is not supported." }, + { LNK_CmdSwitch_NotImplemented, 0, "INTEGRITYCHECK", "", "" }, + { LNK_CmdSwitch_InferAsanLibs, 1, "INFERASANLIBS", "[:NO]", "" }, + { LNK_CmdSwitch_InferAsanLibsNo, 1, "INFERASANLIBSNO", "", "", }, + { LNK_CmdSwitch_NotImplemented, 0, "KERNEL", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "KEYCONTAINER", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "KEYFILE", "", "" }, + { LNK_CmdSwitch_LargeAddressAware, 0, "LARGEADDRESSAWARE", "[:NO]", "" }, + { LNK_CmdSwitch_Lib, 0, "LIB", "" }, + { LNK_CmdSwitch_LibPath, 0, "LIBPATH", ":DIR", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "LINKERREPO", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "LINKERREPOTARGET", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "LTCG", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "LTCGOUT", "", "" }, + { LNK_CmdSwitch_Machine, 0, "MACHINE", ":{X64|X86}", "" }, + { LNK_CmdSwitch_Manifest, 0, "MANIFEST", "[:{EMBED[,ID=#]|NO]", "" }, + { LNK_CmdSwitch_ManifestDependency, 1, "MANIFESTDEPENDENCY", ":\"manifest dependency XML string\"", "" }, + { LNK_CmdSwitch_ManifestFile, 0, "MANIFESTFILE", ":FILENAME", "" }, + { LNK_CmdSwitch_ManifestInput, 0, "MANIFESTINPUT", ":FILENAME", "" }, + { LNK_CmdSwitch_ManifestUac, 0, "MANIFESTUAC", ":{NO|{'level'={'asInvoker'|'highestAvailable'|'requireAdministrator'} ['uiAccess'={'true'|'false'}]}}", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "MAP", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "MAPINFO", "", "" }, + { LNK_CmdSwitch_Merge, 1, "MERGE", ":from=to", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "MIDL", "", "" }, + { LNK_CmdSwitch_Natvis, 0, "NATVIS", ":FILENAME", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "NOASSEMBLY", "", "" }, + { LNK_CmdSwitch_NoDefaultLib, 1, "NODEFAULTLIB", ":LIBNAME", "" }, + { LNK_CmdSwitch_NoDefaultLib, 0, "NOD", ":LIBNAME", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "NOENTRY", "", "" }, + { LNK_CmdSwitch_NoExp, 0, "NOEXP", "", ".exp is not supported." }, + { LNK_CmdSwitch_NoImpLib, 0, "NOIMPLIB", "", "" }, + { LNK_CmdSwitch_NoLogo, 0, "NOLOGO", "", "" }, + { LNK_CmdSwitch_NxCompat, 0, "NXCOMPAT", "[:NO]", "" }, + { LNK_CmdSwitch_Opt, 0, "OPT", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "ORDER", "", "" }, + { LNK_CmdSwitch_Out, 0, "OUT", ":FILENAME", "" }, + { LNK_CmdSwitch_Pdb, 0, "PDB", ":FILENAME", "" }, + { LNK_CmdSwitch_PdbAltPath, 0, "PDBALTPATH", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "PDBSTRIPPED", "", "" }, + { LNK_CmdSwitch_PdbPageSize, 0, "PDBPAGESIZE", ":#", "Page size must be power of two" }, + { LNK_CmdSwitch_NotImplemented, 0, "PROFILE", "", "" }, + { LNK_CmdSwitch_Release, 1, "RELEASE", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "SAFESEH", "", "" }, + { LNK_CmdSwitch_Section, 1, "SECTION", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "SOURCELINK", "", "" }, + { LNK_CmdSwitch_Stack, 1, "STACK", ":RESERVE[,COMMIT]", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "STUB", "", "" }, + { LNK_CmdSwitch_SubSystem, 1, "SUBSYSTEM", ":{CONSOLE|NATIVE|WINDOWS}[,#[.##]]", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "SWAPRUN", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "TLBID", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "TLBOUT", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "TIME", "", "" }, + { LNK_CmdSwitch_TsAware, 0, "TSAWARE", "[:NO]", "" }, + { LNK_CmdSwitch_ThrowingNew, 1, "THROWINGNEW", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "USERPROFILE", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "VERBOSE", "", "" }, + { LNK_CmdSwitch_Version, 0, "VERSION", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "WINMD", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "WINMDDELAYSIGN", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "WINMDKEYCONTAINER", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "WINMDKEYFILE", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "WHOLEARCHIVE", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "WX", "", "" }, //- internal switches - { LNK_CmdSwitch_Rad_Age, "RAD_AGE", ":#", "Age embeded in EXE and PDB, used to validate incremental build. Default is 1." }, - { LNK_CmdSwitch_Rad_BuildInfo, "RAD_BUILD_INFO", "", "Print build info and exit." }, - { LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll, "RAD_CHECK_UNUSED_DELAY_LOAD_DLL", "[:NO]", "" }, - { LNK_CmdSwitch_Rad_ChunkMap, "RAD_CHUNK_MAP", ":FILENAME", "Emit file with the output image's layout description." }, - { LNK_CmdSwitch_Rad_Debug, "RAD_DEBUG", "[:NO]", "Emit RAD debug info file." }, - { LNK_CmdSwitch_Rad_DebugAltPath, "RAD_DEBUGALTPATH", "", "" }, - { LNK_CmdSwitch_Rad_DebugName, "RAD_DEBUG_NAME", ":FILENAME", "Sets file name for RAD debug info file." }, - { LNK_CmdSwitch_Rad_DelayBind, "RAD_DELAY_BIND", "[:NO]", "" }, - { LNK_CmdSwitch_Rad_DoMerge, "RAD_DO_MERGE", "[:NO]", "" }, - { LNK_CmdSwitch_Rad_EnvLib, "RAD_ENV_LIB", "[:NO]", "" }, - { LNK_CmdSwitch_Rad_Exe, "RAD_EXE", "[:NO]", "" }, - { LNK_CmdSwitch_Rad_Guid, "RAD_GUID", ":{IMAGEBLAKE3|XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX}", "" }, - { LNK_CmdSwitch_Rad_LargePages, "RAD_LARGE_PAGES", "[:NO]", "Disabled by default on Windows." }, - { LNK_CmdSwitch_Rad_LinkVer, "RAD_LINK_VER", ":##,##", "" }, - { LNK_CmdSwitch_Rad_Log, "RAD_LOG", ":{ALL,INPUT_OBJ,INPUT_LIB,IO,LINK_STATS,TIMERS}", "" }, - { LNK_CmdSwitch_Rad_MtPath, "RAD_MT_PATH", ":EXEPATH", "Exe path to manifest tool, default: " LNK_MANIFEST_MERGE_TOOL_NAME }, - { LNK_CmdSwitch_Rad_OsVer, "RAD_OS_VER", ":##,##", "" }, - { LNK_CmdSwitch_Rad_PageSize, "RAD_PAGE_SIZE", ":#", "Must be power of two." }, - { LNK_CmdSwitch_Rad_PathStyle, "RAD_PATH_STYLE", ":{WindowsAbsolute|UnixAbsolute}", "" }, - { LNK_CmdSwitch_Rad_PdbHashTypeNameLength, "RAD_PDB_HASH_TYPE_NAME_LENGTH", ":#", "Number of hash bytes to use to replace type name. Default 8 bytes (Max 16)." }, - { LNK_CmdSwitch_Rad_PdbHashTypeNameMap, "RAD_PDB_HASH_TYPE_NAME_MAP", ":FILENAME", "Produce map file with hash -> type name mappings." }, - { LNK_CmdSwitch_Rad_PdbHashTypeNames, "RAD_PDB_HASH_TYPE_NAMES", ":{NONE|LENIENT|FULL}", "Replace type names in LF_STRUCTURE and LF_CLASS with hashes." }, - { LNK_CmdSwitch_Rad_SectVirtOff, "RAD_SECT_VIRT_OFF", ":#", "Set RVA where section data is placed in memory. For internal use only." }, - { LNK_CmdSwitch_Rad_SharedThreadPool, "RAD_SHARED_THREAD_POOL", "[:STRING]", "Default value \"" LNK_DEFAULT_THREAD_POOL_NAME "\"" }, - { LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, "RAD_SHARED_THREAD_POOL_MAX_WORKERS", ":#", "Sets maximum number of workers in a thread pool." }, - { LNK_CmdSwitch_Rad_SuppressError, "RAD_SUPPRESS_ERROR", ":#", "" }, - { LNK_CmdSwitch_Rad_SymbolTableCapDefined, "RAD_SYMBOL_TABLE_CAP_DEFINED", ":#", "Number of buckets allocated in the symbol table for defined symbols." }, - { LNK_CmdSwitch_Rad_SymbolTableCapInternal, "RAD_SYMBOL_TABLE_CAP_INTERNAL", ":#", "Number of buckets allocated in the symbol table for internal symbols." }, - { LNK_CmdSwitch_Rad_SymbolTableCapLib, "RAD_SYMBOL_TABLE_CAP_LIB", ":#", "Number of buckets allocated in the symbol table for library symbols." }, - { LNK_CmdSwitch_Rad_SymbolTableCapWeak, "RAD_SYMBOL_TABLE_CAP_WEAK", ":#", "Number of buckets allocated in the symbol table for weak symbols." }, - { LNK_CmdSwitch_Rad_TargetOs, "RAD_TARGET_OS", ":{WINDOWS,LINUX,MAC}" }, - { LNK_CmdSwitch_Rad_WriteTempFiles, "RAD_WRITE_TEMP_FILES", "[:NO]", "When speicifed linker writes image and debug info to temporary files and renames after link is done." }, - { LNK_CmdSwitch_Rad_TimeStamp, "RAD_TIME_STAMP", ":#", "Time stamp embeded in EXE and PDB." }, - { LNK_CmdSwitch_Rad_Version, "RAD_VERSION", "", "Print version and exit." }, - { LNK_CmdSwitch_Rad_Workers, "RAD_WORKERS", ":#", "Sets number of workers created in the pool. Number is capped at 1024. When /RAD_SHARED_THREAD_POOL is specified this number cant exceed /RAD_SHARED_THREAD_POOL_MAX_WORKERS." }, - { LNK_CmdSwitch_Help, "HELP", "", "" }, - { LNK_CmdSwitch_Help, "?", "", "" }, + { LNK_CmdSwitch_Rad_Age, 0, "RAD_AGE", ":#", "Age embeded in EXE and PDB, used to validate incremental build. Default is 1." }, + { LNK_CmdSwitch_Rad_BuildInfo, 0, "RAD_BUILD_INFO", "", "Print build info and exit." }, + { LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll, 0, "RAD_CHECK_UNUSED_DELAY_LOAD_DLL", "[:NO]", "" }, + { LNK_CmdSwitch_Rad_ChunkMap, 0, "RAD_CHUNK_MAP", ":FILENAME", "Emit file with the output image's layout description." }, + { LNK_CmdSwitch_Rad_Debug, 0, "RAD_DEBUG", "[:NO]", "Emit RAD debug info file." }, + { LNK_CmdSwitch_Rad_DebugAltPath, 0, "RAD_DEBUGALTPATH", "", "" }, + { LNK_CmdSwitch_Rad_DebugName, 0, "RAD_DEBUG_NAME", ":FILENAME", "Sets file name for RAD debug info file." }, + { LNK_CmdSwitch_Rad_DelayBind, 0, "RAD_DELAY_BIND", "[:NO]", "" }, + { LNK_CmdSwitch_Rad_DoMerge, 0, "RAD_DO_MERGE", "[:NO]", "" }, + { LNK_CmdSwitch_Rad_EnvLib, 0, "RAD_ENV_LIB", "[:NO]", "" }, + { LNK_CmdSwitch_Rad_Exe, 0, "RAD_EXE", "[:NO]", "" }, + { LNK_CmdSwitch_Rad_Guid, 0, "RAD_GUID", ":{IMAGEBLAKE3|XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX}", "" }, + { LNK_CmdSwitch_Rad_LargePages, 0, "RAD_LARGE_PAGES", "[:NO]", "Disabled by default on Windows." }, + { LNK_CmdSwitch_Rad_LinkVer, 0, "RAD_LINK_VER", ":##,##", "" }, + { LNK_CmdSwitch_Rad_Log, 0, "RAD_LOG", ":{ALL,INPUT_OBJ,INPUT_LIB,IO,LINK_STATS,TIMERS}", "" }, + { LNK_CmdSwitch_Rad_MtPath, 0, "RAD_MT_PATH", ":EXEPATH", "Exe path to manifest tool, default: " LNK_MANIFEST_MERGE_TOOL_NAME }, + { LNK_CmdSwitch_Rad_OsVer, 0, "RAD_OS_VER", ":##,##", "" }, + { LNK_CmdSwitch_Rad_PageSize, 0, "RAD_PAGE_SIZE", ":#", "Must be power of two." }, + { LNK_CmdSwitch_Rad_PathStyle, 0, "RAD_PATH_STYLE", ":{WindowsAbsolute|UnixAbsolute}", "" }, + { LNK_CmdSwitch_Rad_PdbHashTypeNameLength, 0, "RAD_PDB_HASH_TYPE_NAME_LENGTH", ":#", "Number of hash bytes to use to replace type name. Default 8 bytes (Max 16)." }, + { LNK_CmdSwitch_Rad_PdbHashTypeNameMap, 0, "RAD_PDB_HASH_TYPE_NAME_MAP", ":FILENAME", "Produce map file with hash -> type name mappings." }, + { LNK_CmdSwitch_Rad_PdbHashTypeNames, 0, "RAD_PDB_HASH_TYPE_NAMES", ":{NONE|LENIENT|FULL}", "Replace type names in LF_STRUCTURE and LF_CLASS with hashes." }, + { LNK_CmdSwitch_Rad_SectVirtOff, 0, "RAD_SECT_VIRT_OFF", ":#", "Set RVA where section data is placed in memory. For internal use only." }, + { LNK_CmdSwitch_Rad_SharedThreadPool, 0, "RAD_SHARED_THREAD_POOL", "[:STRING]", "Default value \"" LNK_DEFAULT_THREAD_POOL_NAME "\"" }, + { LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, 0, "RAD_SHARED_THREAD_POOL_MAX_WORKERS", ":#", "Sets maximum number of workers in a thread pool." }, + { LNK_CmdSwitch_Rad_SuppressError, 0, "RAD_SUPPRESS_ERROR", ":#", "" }, + { LNK_CmdSwitch_Rad_SymbolTableCapDefined, 0, "RAD_SYMBOL_TABLE_CAP_DEFINED", ":#", "Number of buckets allocated in the symbol table for defined symbols." }, + { LNK_CmdSwitch_Rad_SymbolTableCapInternal, 0, "RAD_SYMBOL_TABLE_CAP_INTERNAL", ":#", "Number of buckets allocated in the symbol table for internal symbols." }, + { LNK_CmdSwitch_Rad_SymbolTableCapLib, 0, "RAD_SYMBOL_TABLE_CAP_LIB", ":#", "Number of buckets allocated in the symbol table for library symbols." }, + { LNK_CmdSwitch_Rad_SymbolTableCapWeak, 0, "RAD_SYMBOL_TABLE_CAP_WEAK", ":#", "Number of buckets allocated in the symbol table for weak symbols." }, + { LNK_CmdSwitch_Rad_TargetOs, 0, "RAD_TARGET_OS", ":{WINDOWS,LINUX,MAC}" }, + { LNK_CmdSwitch_Rad_WriteTempFiles, 0, "RAD_WRITE_TEMP_FILES", "[:NO]", "When speicifed linker writes image and debug info to temporary files and renames after link is done." }, + { LNK_CmdSwitch_Rad_TimeStamp, 0, "RAD_TIME_STAMP", ":#", "Time stamp embeded in EXE and PDB." }, + { LNK_CmdSwitch_Rad_Version, 0, "RAD_VERSION", "", "Print version and exit." }, + { LNK_CmdSwitch_Rad_Workers, 0, "RAD_WORKERS", ":#", "Sets number of workers created in the pool. Number is capped at 1024. When /RAD_SHARED_THREAD_POOL is specified this number cant exceed /RAD_SHARED_THREAD_POOL_MAX_WORKERS." }, + + { LNK_CmdSwitch_Help, 0, "HELP", "", "" }, + { LNK_CmdSwitch_Help, 0, "?", "", "" }, }; global read_only struct @@ -213,15 +208,33 @@ lnk_cmd_switch_type_from_string(String8 name) return LNK_CmdSwitch_Null; } -internal String8 -lnk_string_from_cmd_switch_type(LNK_CmdSwitchType type) +internal LNK_CmdSwitch * +lnk_cmd_switch_from_string(String8 name) +{ + for (U64 i = 0; i < ArrayCount(g_cmd_switch_map); i += 1) { + if (str8_match_cstr(g_cmd_switch_map[i].name, name, StringMatchFlag_CaseInsensitive)) { + return &g_cmd_switch_map[i]; + } + } + return 0; +} + +internal LNK_CmdSwitch * +lnk_cmd_switch_from_type(LNK_CmdSwitchType type) { for (U64 cmd_idx = 0; cmd_idx < ArrayCount(g_cmd_switch_map); cmd_idx += 1) { if (g_cmd_switch_map[cmd_idx].type == type) { - return str8_cstring(g_cmd_switch_map[cmd_idx].name); + return &g_cmd_switch_map[cmd_idx]; } } - return str8_zero(); + return 0; +} + +internal String8 +lnk_string_from_cmd_switch_type(LNK_CmdSwitchType type) +{ + LNK_CmdSwitch *cmd_switch = lnk_cmd_switch_from_type(type); + return cmd_switch ? str8_cstring(cmd_switch->name) : str8_zero(); } internal LNK_InputType @@ -784,6 +797,12 @@ lnk_parse_alt_name_directive_list(Arena *arena, String8List list, LNK_AltNameLis return 0; } +internal void +lnk_export_parse_list_concat_in_place(LNK_ExportParseList *list, LNK_ExportParseList *to_concat) +{ + SLLConcatInPlace(list, to_concat); +} + internal LNK_ExportParse * lnk_parse_export_directive(Arena *arena, LNK_ExportParseList *list, String8List value_list, String8 obj_path, String8 lib_path) { @@ -964,7 +983,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam lnk_error_with_loc(LNK_Warning_UnknownSwitch, obj_path, lib_path, "unknown switch: \"/%S%s%S\"", cmd_name, value.size ? ":" : "", value); } break; - default: { InvalidPath; } break; + default: break; case LNK_CmdSwitch_NotImplemented: { String8 value = str8_list_join(scratch.arena, &value_strings, &(StringJoin){.sep=str8_lit_comp(",")}); @@ -2096,6 +2115,13 @@ lnk_build_config(Arena *arena, int argc, char **argv) // init config LNK_Config *config = lnk_config_from_cmd_line(arena, raw_cmd_line); +#if PROFILE_TELEMETRY + { + String8 cmdl = str8_list_join(scratch.arena, &config->raw_cmd_line, &(StringJoin){ .sep = str8_lit_comp(" ") }); + tmMessage(0, TMMF_ICON_NOTE, "Command Line: %.*s", str8_varg(cmdl)); + } +#endif + scratch_end(scratch); return config; } diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index 81f64066..60fb1701 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -167,6 +167,15 @@ typedef enum LNK_CmdSwitch_Count } LNK_CmdSwitchType; +typedef struct LNK_CmdSwitch +{ + LNK_CmdSwitchType type; + B32 is_legal_directive; + char *name; + char *args; + char *desc; +} LNK_CmdSwitch; + typedef enum { LNK_SwitchState_Null, @@ -233,10 +242,10 @@ typedef struct LNK_AltNameList typedef struct LNK_ExportParse { - struct LNK_ExportParse *next; String8 name; String8 alias; String8 type; + struct LNK_ExportParse *next; } LNK_ExportParse; typedef struct LNK_ExportParseList @@ -265,8 +274,6 @@ typedef struct LNK_MergeDirectiveList LNK_MergeDirectiveNode *last; } LNK_MergeDirectiveList; - - typedef enum { LNK_DebugInfoGuid_Null, @@ -362,6 +369,7 @@ typedef struct LNK_Config String8 rad_debug_alt_path; String8List include_symbol_list; LNK_AltNameList alt_name_list; + LNK_MergeDirectiveList merge_list; U64 symbol_table_cap_defined; U64 symbol_table_cap_internal; U64 symbol_table_cap_weak; @@ -512,7 +520,8 @@ typedef enum // Enum <-> String internal String8 lnk_string_cmd_switch_type(LNK_CmdSwitchType type); -internal LNK_CmdSwitchType lnk_cmd_switch_from_string(String8 string); +internal LNK_CmdSwitchType lnk_cmd_switch_type_from_string(String8 string); +internal LNK_CmdSwitch * lnk_cmd_switch_from_string(String8 string); internal LNK_InputType lnk_input_type_from_string(String8 string); internal LNK_DebugMode lnk_debug_mode_from_string(String8 string); internal LNK_TypeNameHashMode lnk_type_name_hash_mode_from_string(String8 string); diff --git a/src/linker/lnk_export_table.c b/src/linker/lnk_export_table.c index d2beb95e..c8112392 100644 --- a/src/linker/lnk_export_table.c +++ b/src/linker/lnk_export_table.c @@ -287,16 +287,4 @@ exit:; ProfEnd(); } -internal void -lnk_collect_exports_from_obj_directives(LNK_ExportTable *exptab, LNK_ObjList obj_list, LNK_SymbolTable *symtab) -{ - ProfBeginFunction(); - for (LNK_ObjNode *obj_node = obj_list.first; obj_node != 0; obj_node = obj_node->next) { - for (LNK_ExportParse *exp_parse = obj_node->data.export_parse.first; exp_parse != 0; exp_parse = exp_parse->next) { - lnk_export_table_push_export(exptab, symtab, exp_parse); - } - } - ProfEnd(); -} - diff --git a/src/linker/lnk_export_table.h b/src/linker/lnk_export_table.h index 08be801f..e0ccb8ed 100644 --- a/src/linker/lnk_export_table.h +++ b/src/linker/lnk_export_table.h @@ -40,7 +40,5 @@ typedef struct LNK_ExportTable internal LNK_ExportTable * lnk_export_table_alloc(void); internal void lnk_export_table_release(LNK_ExportTable **exptab_ptr); internal LNK_Export * lnk_export_table_search(LNK_ExportTable *exptab, String8 name); -internal void lnk_collect_exports_from_def_files(LNK_ExportTable *exptab, String8List path_list); internal void lnk_build_edata(LNK_ExportTable *exptab, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, String8 image_name, COFF_MachineType machine); -internal void lnk_collect_exports_from_obj_directives(LNK_ExportTable *exptab, LNK_ObjList obj_list, LNK_SymbolTable *symtab); diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 2c305ee7..225f2491 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -92,42 +92,17 @@ lnk_input_obj_list_from_string_list(Arena *arena, String8List list) //////////////////////////////// internal void -lnk_parse_msvc_linker_directive(Arena *arena, String8 obj_path, String8 lib_path, LNK_DirectiveInfo *directive_info, String8 buffer) +lnk_parse_msvc_linker_directive(Arena *arena, LNK_Obj *obj, LNK_DirectiveInfo *directive_info, String8 buffer) { Temp scratch = scratch_begin(&arena, 1); - local_persist B32 init_table = 1; - local_persist B8 is_legal[LNK_CmdSwitch_Count]; - if (init_table) { - init_table = 0; - is_legal[LNK_CmdSwitch_AlternateName] = 1; - is_legal[LNK_CmdSwitch_DefaultLib] = 1; - is_legal[LNK_CmdSwitch_DisallowLib] = 1; - is_legal[LNK_CmdSwitch_EditAndContinue] = 1; - is_legal[LNK_CmdSwitch_Entry] = 1; - is_legal[LNK_CmdSwitch_Export] = 1; - is_legal[LNK_CmdSwitch_FailIfMismatch] = 1; - is_legal[LNK_CmdSwitch_GuardSym] = 1; - is_legal[LNK_CmdSwitch_Include] = 1; - is_legal[LNK_CmdSwitch_InferAsanLibs] = 1; - is_legal[LNK_CmdSwitch_InferAsanLibsNo] = 1; - is_legal[LNK_CmdSwitch_ManifestDependency] = 1; - is_legal[LNK_CmdSwitch_Merge] = 1; - is_legal[LNK_CmdSwitch_NoDefaultLib] = 1; - is_legal[LNK_CmdSwitch_Release] = 1; - is_legal[LNK_CmdSwitch_Section] = 1; - is_legal[LNK_CmdSwitch_Stack] = 1; - is_legal[LNK_CmdSwitch_SubSystem] = 1; - is_legal[LNK_CmdSwitch_ThrowingNew] = 1; - } - String8 to_parse; { local_persist const U8 bom_sig[] = { 0xEF, 0xBB, 0xBF }; local_persist const U8 ascii_sig[] = { 0x20, 0x20, 0x20 }; if (MemoryMatch(buffer.str, &bom_sig[0], sizeof(bom_sig))) { to_parse = str8_zero(); - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "TODO: support for BOM encoding"); + lnk_error_obj(LNK_Error_IllData, obj, "TODO: support for BOM encoding"); } else if (MemoryMatch(buffer.str, &ascii_sig[0], sizeof(ascii_sig))) { to_parse = str8_skip(buffer, sizeof(ascii_sig)); } else { @@ -139,23 +114,23 @@ lnk_parse_msvc_linker_directive(Arena *arena, String8 obj_path, String8 lib_path LNK_CmdLine cmd_line = lnk_cmd_line_parse_windows_rules(scratch.arena, arg_list); for (LNK_CmdOption *opt = cmd_line.first_option; opt != 0; opt = opt->next) { - LNK_CmdSwitchType type = lnk_cmd_switch_type_from_string(opt->string); + LNK_CmdSwitch *cmd_switch = lnk_cmd_switch_from_string(opt->string); - if (type == LNK_CmdSwitch_Null) { - lnk_error_with_loc(LNK_Warning_UnknownDirective, obj_path, lib_path, "unknown directive \"%S\"", opt->string); + if (cmd_switch == 0) { + lnk_error_obj(LNK_Warning_UnknownDirective, obj, "unknown directive \"%S\"", opt->string); continue; } - if (!is_legal[type]) { - lnk_error_with_loc(LNK_Warning_IllegalDirective, obj_path, lib_path, "illegal directive \"%S\"", opt->string); + if (!cmd_switch->is_legal_directive) { + lnk_error_obj(LNK_Warning_IllegalDirective, obj, "illegal directive \"%S\"", opt->string); continue; } LNK_Directive *directive = push_array_no_zero(arena, LNK_Directive, 1); directive->next = 0; - directive->id = push_str8_copy(arena, opt->string); + directive->id = str8_cstring(cmd_switch->name); directive->value_list = str8_list_copy(arena, &opt->value_strings); - LNK_DirectiveList *directive_list = &directive_info->v[type]; + LNK_DirectiveList *directive_list = &directive_info->v[cmd_switch->type]; SLLQueuePush(directive_list->first, directive_list->last, directive); ++directive_list->count; } @@ -286,74 +261,6 @@ lnk_run_symbol_collector(TP_Context *tp, TP_Arena *arena, LNK_ObjNodeArray arr, return list; } -internal -THREAD_POOL_TASK_FUNC(lnk_default_lib_collector) -{ - LNK_DefaultLibCollector *task = raw_task; - Rng1U64 range = task->range_arr[task_id]; - String8List *result = &task->out_arr[task_id]; - for (U64 obj_idx = range.min; obj_idx < range.max; obj_idx += 1) { - LNK_Obj *obj = &task->in_arr.v[obj_idx].data; - for (LNK_Directive *dir = obj->directive_info.v[LNK_CmdSwitch_DefaultLib].first; dir != 0; dir = dir->next) { - str8_list_concat_in_place(result, &dir->value_list); - } - } -} - -internal LNK_InputLibList -lnk_collect_default_lib_obj_arr(TP_Context *tp, TP_Arena *arena, LNK_ObjNodeArray arr) -{ - Temp scratch = scratch_begin(0,0); - - LNK_DefaultLibCollector task_data; - task_data.range_arr = tp_divide_work(scratch.arena, arr.count, tp->worker_count); - task_data.in_arr = arr; - task_data.out_arr = push_array(scratch.arena, LNK_InputLibList, tp->worker_count); - tp_for_parallel(tp, arena, tp->worker_count, lnk_default_lib_collector, &task_data); - - String8List result = str8_list_arr_concat(task_data.out_arr, tp->worker_count); - - scratch_end(scratch); - return result; -} - -internal -THREAD_POOL_TASK_FUNC(lnk_manifest_dependency_collector) -{ - LNK_ManifestDependencyCollector *task = raw_task; - Rng1U64 range = task->range_arr[task_id]; - String8List *list = &task->out_arr[task_id]; - - LNK_ObjNode *obj_ptr = &task->in_arr[range.min]; - LNK_ObjNode *obj_opl = &task->in_arr[range.max]; - - for (; obj_ptr < obj_opl; obj_ptr += 1) { - LNK_Obj *obj = &obj_ptr->data; - LNK_DirectiveList *dirs = &obj->directive_info.v[LNK_CmdSwitch_ManifestDependency]; - for (LNK_Directive *dir = dirs->first; dir != 0; dir = dir->next) { - String8List dep = str8_list_copy(arena, &dir->value_list); - str8_list_concat_in_place(list, &dep); - } - } -} - -internal String8List -lnk_collect_manifest_dependency_list(TP_Context *tp, TP_Arena *arena, LNK_ObjNodeArray obj_node_arr) -{ - Temp scratch = scratch_begin(arena->v, arena->count); - - LNK_ManifestDependencyCollector task_data = {0}; - task_data.in_arr = obj_node_arr.v; - task_data.out_arr = push_array(scratch.arena, String8List, tp->worker_count); - task_data.range_arr = tp_divide_work(scratch.arena, obj_node_arr.count, tp->worker_count); - tp_for_parallel(tp, arena, tp->worker_count, lnk_manifest_dependency_collector, &task_data); - - String8List result = str8_list_arr_concat(task_data.out_arr, tp->worker_count); - - scratch_end(scratch); - return result; -} - internal void lnk_sect_defn_list_push_node(LNK_SectDefnList *list, LNK_SectDefn *node) { @@ -437,7 +344,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "corrupted file, unable to read string table"); } - U64 chunk_count = coff_info.section_count_no_null + /* :common_block */ 1; + U64 chunk_count = coff_info.section_count_no_null + /* :common_block */ 1; String8 *sect_name_arr = push_array_no_zero(arena, String8, chunk_count); String8 *sect_sort_arr = push_array_no_zero(arena, String8, chunk_count); LNK_Chunk *chunk_arr = push_array(arena, LNK_Chunk, chunk_count); @@ -543,68 +450,6 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) LNK_SymbolList symbol_list = lnk_symbol_list_from_array(arena, symbol_arr); LNK_RelocList *reloc_list_arr = lnk_reloc_list_array_from_coff(arena, coff_info.machine, input->data, coff_info.section_count_no_null, coff_section_table, chunk_ptr_arr, symbol_arr); - // - // parse directives - // - - String8List drectve_data = {0}; - for (U64 sect_idx = 0; sect_idx < coff_info.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *sect_header = &coff_section_table[sect_idx]; - - if (sect_header->flags & COFF_SectionFlag_LnkInfo) { - if (str8_match(sect_name_arr[sect_idx], str8_lit(".drectve"), 0)) { - if (sect_header->flags & COFF_SectionFlag_CntUninitializedData) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, ".drectve section header has flag COFF_SectionFlag_CntUninitializedData"); - break; - } - if (sect_header->fsize < 3) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "not enough bytes to parse .drectve"); - break; - } - if (sect_header->reloc_count > 0) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, ".drectve must not have relocations"); - break; - } - - Rng1U64 sect_range = rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize); - str8_list_push(scratch.arena, &drectve_data, str8_substr(input->data, sect_range)); - } - } - } - - LNK_DirectiveInfo directive_info = {0}; - for (String8Node *drectve_n = drectve_data.first; drectve_n != 0; drectve_n = drectve_n->next) { - lnk_parse_msvc_linker_directive(arena, input->path, input->lib_path, &directive_info, drectve_n->string); - } - - // parse exports - LNK_ExportParseList export_parse = {0}; - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Export].first; dir != 0; dir = dir->next) { - lnk_parse_export_directive(arena, &export_parse, dir->value_list, input->path, input->lib_path); - } - - // push /export symbols - for (LNK_ExportParse *exp = export_parse.first; exp != 0; exp = exp->next) { - LNK_Symbol *symbol = lnk_make_undefined_symbol(arena, exp->name, LNK_SymbolScopeFlag_Main); - lnk_symbol_list_push(arena, &symbol_list, symbol); - } - - // push /include symbols - String8List include_symbol_list = {0}; - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Include].first; dir != 0; dir = dir->next) { - str8_list_concat_in_place(&include_symbol_list, &dir->value_list); - } - - // parse /alternatename - LNK_AltNameList alt_name_list = {0}; - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_AlternateName].first; dir != 0; dir = dir->next) { - String8 *invalid_string = lnk_parse_alt_name_directive_list(arena, dir->value_list, &alt_name_list); - if (invalid_string != 0) { - lnk_error_with_loc(LNK_Error_Cmdl, input->path, input->lib_path, "invalid syntax \"%S\", expected format \"FROM=TO\"", *invalid_string); - } - } - - // fill out obj obj->data = input->data; obj->path = push_str8_copy(arena, input->path); @@ -618,10 +463,6 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) obj->chunk_arr = chunk_ptr_arr; obj->symbol_list = symbol_list; obj->sect_reloc_list_arr = reloc_list_arr; - obj->directive_info = directive_info; - obj->export_parse = export_parse; - obj->include_symbol_list = include_symbol_list; - obj->alt_name_list = alt_name_list; scratch_end(scratch); } diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index f7790b54..ca5c48e0 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -62,10 +62,6 @@ typedef struct LNK_Obj LNK_RelocList *sect_reloc_list_arr; LNK_ChunkPtr *chunk_arr; LNK_SymbolList symbol_list; - LNK_DirectiveInfo directive_info; - LNK_ExportParseList export_parse; - String8List include_symbol_list; - LNK_AltNameList alt_name_list; } LNK_Obj; typedef struct LNK_ObjNode From c45088b5460f5976e87ea031a45583a8319c247e Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 15 Apr 2025 15:44:25 -0700 Subject: [PATCH 048/372] replaced dependency on linker's chunking for resource serialization with COFF obj writer --- src/base/base_core.h | 1 + src/base/base_strings.c | 9 + src/base/base_strings.h | 1 + src/coff/coff.h | 1 + src/coff/coff_obj_writer.c | 273 +++++++++++++++ src/coff/coff_obj_writer.h | 78 +++++ src/linker/base_ext/base_strings.h | 2 - src/linker/hash_table.c | 25 ++ src/linker/hash_table.h | 2 + src/linker/lnk.c | 543 ++++++++--------------------- src/linker/lnk.h | 8 +- 11 files changed, 540 insertions(+), 403 deletions(-) create mode 100644 src/coff/coff_obj_writer.c create mode 100644 src/coff/coff_obj_writer.h diff --git a/src/base/base_core.h b/src/base/base_core.h index 511020f8..758a5b34 100644 --- a/src/base/base_core.h +++ b/src/base/base_core.h @@ -148,6 +148,7 @@ #define MemoryCopyStruct(d,s) MemoryCopy((d),(s),sizeof(*(d))) #define MemoryCopyArray(d,s) MemoryCopy((d),(s),sizeof(d)) #define MemoryCopyTyped(d,s,c) MemoryCopy((d),(s),sizeof(*(d))*(c)) +#define MemoryCopyStr8(dst, s) MemoryCopy(dst, (s).str, (s).size) #define MemoryZero(s,z) memset((s),0,(z)) #define MemoryZeroStruct(s) MemoryZero((s),sizeof(*(s))) diff --git a/src/base/base_strings.c b/src/base/base_strings.c index bbd485c9..3aa6019b 100644 --- a/src/base/base_strings.c +++ b/src/base/base_strings.c @@ -971,6 +971,15 @@ str8_list_push(Arena *arena, String8List *list, String8 string){ return(node); } +internal String8Node * +str8_list_push_cstr(Arena *arena, String8List *list, String8 string) +{ + String8Node *node = str8_list_push(arena, list, string); + local_persist String8 null = str8_lit_comp("\0"); + str8_list_push(arena, list, null); + return node; +} + internal String8Node* str8_list_push_front(Arena *arena, String8List *list, String8 string){ String8Node *node = push_array_no_zero(arena, String8Node, 1); diff --git a/src/base/base_strings.h b/src/base/base_strings.h index 022676f3..7b9b3d20 100644 --- a/src/base/base_strings.h +++ b/src/base/base_strings.h @@ -446,6 +446,7 @@ internal void str8_serial_push_u16(Arena *arena, String8List *srl, U16 x); internal void str8_serial_push_u8(Arena *arena, String8List *srl, U8 x); internal void str8_serial_push_cstr(Arena *arena, String8List *srl, String8 str); internal void str8_serial_push_string(Arena *arena, String8List *srl, String8 str); +internal void str8_serial_push_cstr(Arena *arena, String8List *srl, String8 str); #define str8_serial_push_array(arena, srl, ptr, count) str8_serial_push_data(arena, srl, ptr, sizeof(*(ptr)) * (count)) #define str8_serial_push_struct(arena, srl, ptr) str8_serial_push_array(arena, srl, ptr, 1) diff --git a/src/coff/coff.h b/src/coff/coff.h index 92328f66..6c0c8828 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -144,6 +144,7 @@ enum COFF_SectionFlag_MemRead = (1 << 30), COFF_SectionFlag_MemWrite = (1 << 31) }; +#define COFF_SectionFlags_PackAlign(f) ((f) << COFF_SectionFlag_AlignShift) #define COFF_SectionFlags_ExtractAlign(f) (COFF_SectionAlign)(((f) >> COFF_SectionFlag_AlignShift) & COFF_SectionFlag_AlignMask) #define COFF_SectionFlags_LnkFlags ((COFF_SectionFlag_AlignMask << COFF_SectionFlag_AlignShift) | COFF_SectionFlag_LnkCOMDAT | COFF_SectionFlag_LnkInfo | COFF_SectionFlag_LnkOther | COFF_SectionFlag_LnkRemove | COFF_SectionFlag_LnkNRelocOvfl) diff --git a/src/coff/coff_obj_writer.c b/src/coff/coff_obj_writer.c new file mode 100644 index 00000000..20caa69d --- /dev/null +++ b/src/coff/coff_obj_writer.c @@ -0,0 +1,273 @@ +internal COFF_ObjWriter* +coff_obj_writer_alloc(COFF_TimeStamp time_stamp, COFF_MachineType machine_type) +{ + Arena *arena = arena_alloc(); + COFF_ObjWriter *obj_writer = push_array(arena, COFF_ObjWriter, 1); + obj_writer->arena = arena; + obj_writer->time_stamp = time_stamp; + obj_writer->machine_type = machine_type; + return obj_writer; +} + +internal void +coff_obj_writer_release(COFF_ObjWriter **obj_writer) +{ + arena_release((*obj_writer)->arena); + *obj_writer = 0; +} + +internal COFF_ObjSymbol * +coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSection *section, COFF_SymbolType type, COFF_SymStorageClass storage_class) +{ + COFF_ObjSymbolNode *n = push_array(obj_writer->arena, COFF_ObjSymbolNode, 1); + SLLQueuePush(obj_writer->symbol_first, obj_writer->symbol_last, n); + obj_writer->symbol_count += 1; + + COFF_ObjSymbol *s = &n->v; + s->name = name; + s->value = value; + s->section = section; + s->type = type; + s->storage_class = storage_class; + s->idx = obj_writer->symbol_count-1; + + return s; +} + +internal COFF_ObjSymbol * +coff_obj_writer_push_symbol_static(COFF_ObjWriter *obj_writer, String8 name, U32 off, COFF_ObjSection *section) +{ + COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, off, section, (COFF_SymbolType){0}, COFF_SymStorageClass_Static); + return s; +} + +internal COFF_ObjSymbol * +coff_obj_writer_push_symbol_abs(COFF_ObjWriter *obj_writer, String8 name, COFF_SymStorageClass storage_class, U32 value) +{ + COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, value, 0, (COFF_SymbolType){0}, storage_class); + return s; +} + +internal COFF_ObjSymbol * +coff_obj_writer_push_symbol_undef_func(COFF_ObjWriter *obj_writer, String8 name) +{ + COFF_SymbolType type = {0}; + type.u.msb = COFF_SymDType_Func; + COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, 0, 0, type, COFF_SymStorageClass_External); + return s; +} + +internal COFF_ObjSection * +coff_obj_writer_push_section(COFF_ObjWriter *obj_writer, String8 name, COFF_SectionFlags flags, String8 data) +{ + COFF_ObjSectionNode *sect_n = push_array(obj_writer->arena, COFF_ObjSectionNode, 1); + SLLQueuePush(obj_writer->sect_first, obj_writer->sect_last, sect_n); + obj_writer->sect_count += 1; + + COFF_ObjSection *sect = §_n->v; + sect->name = name; + sect->flags = flags; + sect->symbol = coff_obj_writer_push_symbol_static(obj_writer, name, 0, sect); + + str8_list_push(obj_writer->arena, §->data, data); + + return sect; +} + +internal COFF_ObjReloc* +coff_obj_writer_section_push_reloc(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol, COFF_RelocType type) +{ + COFF_ObjRelocNode *reloc_n = push_array(obj_writer->arena, COFF_ObjRelocNode, 1); + SLLQueuePush(sect->reloc_first, sect->reloc_last, reloc_n); + sect->reloc_count += 1; + + COFF_ObjReloc *reloc = &reloc_n->v; + reloc->apply_off = apply_off; + reloc->symbol = symbol; + reloc->type = type; + + return reloc; +} + +internal int +coff_obj_section_is_before(void *raw_a, void *raw_b) +{ + COFF_ObjSection **a = raw_a; + COFF_ObjSection **b = raw_b; + return (*a)->section_number < (*b)->section_number; +} + +internal String8 +coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8List srl = {0}; + + String8List string_table = {0}; + U32 *string_table_size = push_array(scratch.arena, U32, 1); + *string_table_size = sizeof(*string_table_size); + str8_list_push(scratch.arena, &string_table, str8_struct(string_table_size)); + + // + // + // + U64 obj_sections_count; + COFF_ObjSection **obj_sections; + { + obj_sections_count = obj_writer->sect_count; + obj_sections = push_array(scratch.arena, COFF_ObjSection *, obj_writer->sect_count); + U64 sect_idx = 0; + for (COFF_ObjSectionNode *sect_n = obj_writer->sect_first; sect_n != 0; sect_n = sect_n->next, sect_idx += 1) { + COFF_ObjSection *sect = §_n->v; + sect->section_number = sect_idx+1; + obj_sections[sect_idx] = sect; + + } + } + AssertAlways(obj_sections_count <= max_U16); + + // + // file header + // + COFF_FileHeader *file_header = push_array(scratch.arena, COFF_FileHeader, 1); + file_header->machine = obj_writer->machine_type; + file_header->section_count = obj_sections_count; + file_header->time_stamp = obj_writer->time_stamp; + file_header->symbol_table_foff = 0; + file_header->symbol_count = safe_cast_u32(obj_writer->symbol_count); + file_header->optional_header_size = 0; + file_header->flags = 0; + str8_list_push(scratch.arena, &srl, str8_struct(file_header)); + + // + // section table + // + + COFF_SectionHeader *sectab = push_array(scratch.arena, COFF_SectionHeader, obj_sections_count); + str8_list_push(scratch.arena, &srl, str8_array(sectab, obj_sections_count)); + { + for (U64 sect_idx = 0; sect_idx < obj_sections_count; sect_idx += 1) { + COFF_ObjSection *s = obj_sections[sect_idx]; + COFF_SectionHeader *d = §ab[sect_idx]; + + // section name + String8 sect_name = s->name; + if (sect_name.size > sizeof(d->name)) { + U64 sect_name_off = string_table.total_size; + str8_list_push_cstr(scratch.arena, &string_table, sect_name); + + sect_name = push_str8f(scratch.arena, "/%u", sect_name_off); + AssertAlways(sect_name.size <= sizeof(d->name)); + } + + // section data + U64 data_foff = 0; + U64 data_size = 0; + if (s->data.total_size > 0) { + data_foff = srl.total_size; + data_size = s->data.total_size; + str8_list_concat_in_place(&srl, &s->data); + } + + // section relocs + U64 relocs_foff = 0; + if (s->reloc_count) { + AssertAlways(s->reloc_count <= max_U16); + COFF_Reloc *relocs = push_array(scratch.arena, COFF_Reloc, s->reloc_count); + U64 reloc_idx = 0; + for (COFF_ObjRelocNode *reloc_n = s->reloc_first; reloc_n != 0; reloc_n = reloc_n->next, reloc_idx += 1) { + COFF_ObjReloc *rs = &reloc_n->v; + COFF_Reloc *rd = &relocs[reloc_idx]; + rd->apply_off = rs->apply_off; + rd->isymbol = rs->symbol->idx; + rd->type = rs->type; + } + relocs_foff = srl.total_size; + str8_list_push(scratch.arena, &srl, str8_array(relocs, s->reloc_count)); + } + + // section header + MemoryCopyStr8(d->name, sect_name); + MemoryZeroTyped(d->name + sect_name.size, sizeof(d->name) - sect_name.size); + d->vsize = 0; + d->voff = 0; + d->fsize = data_size; + d->foff = data_foff; + d->relocs_foff = relocs_foff; + d->lines_foff = 0; + d->reloc_count = safe_cast_u32(s->reloc_count); + d->line_count = 0; + d->flags = s->flags; + } + } + + // + // symbol table + // + if (obj_writer->symbol_count) { + file_header->symbol_table_foff = srl.total_size; + COFF_Symbol16 *symtab = push_array(scratch.arena, COFF_Symbol16, obj_writer->symbol_count); + str8_list_push(scratch.arena, &srl, str8_array(symtab, obj_writer->symbol_count)); + { + U64 symbol_idx = 0; + for (COFF_ObjSymbolNode *symbol_n = obj_writer->symbol_first; symbol_n != 0; symbol_n = symbol_n->next) { + COFF_ObjSymbol *s = &symbol_n->v; + COFF_Symbol16 *d = &symtab[symbol_idx]; + + COFF_SymbolName name = {0}; + // long name + if (s->name.size > sizeof(name.short_name)) { + U64 string_table_offset = string_table.total_size; + str8_list_push_cstr(scratch.arena, &string_table, s->name); + + name.long_name.zeroes = 0; + name.long_name.string_table_offset = safe_cast_u32(string_table_offset); + } + // short name + else { + MemoryCopyStr8(name.short_name, s->name); + MemoryZeroTyped(name.short_name + s->name.size, sizeof(name.short_name) - s->name.size); + } + + // symbol header + AssertAlways(s->aux_symbols.node_count <= max_U8); + d->name = name; + d->value = s->value; + if (s->section == 0) { + d->section_number = COFF_Symbol_AbsSection16; + } else { + d->section_number = safe_cast_u16(s->section->section_number); + } + d->type = s->type; + d->storage_class = s->storage_class; + d->aux_symbol_count = (U8)s->aux_symbols.node_count; + + // aux symbols + symbol_idx += 1; + for (String8Node *aux_n = s->aux_symbols.first; aux_n != 0; aux_n = aux_n->next, symbol_idx += 1) { + AssertAlways(aux_n->string.size <= sizeof(COFF_Symbol16)); + COFF_Symbol16 *a = &symtab[symbol_idx]; + MemoryZeroStruct(a); + MemoryCopyStr8(a, aux_n->string); + } + } + } + } + + // + // string table + // + *string_table_size = safe_cast_u32(string_table.total_size); + str8_list_concat_in_place(&srl, &string_table); + + // + // join + // + String8 obj = str8_list_join(arena, &srl, 0); + + scratch_end(scratch); + return obj; +} + + diff --git a/src/coff/coff_obj_writer.h b/src/coff/coff_obj_writer.h new file mode 100644 index 00000000..67297401 --- /dev/null +++ b/src/coff/coff_obj_writer.h @@ -0,0 +1,78 @@ +#ifndef COFF_OBJ_WRITER_H +#define COFF_OBJ_WRITER_H + +typedef struct COFF_ObjSymbol +{ + String8 name; + U32 value; + struct COFF_ObjSection *section; + COFF_SymbolType type; + COFF_SymStorageClass storage_class; + String8List aux_symbols; + U32 idx; +} COFF_ObjSymbol; + +typedef struct COFF_ObjSymbolNode +{ + struct COFF_ObjSymbolNode *next; + COFF_ObjSymbol v; +} COFF_ObjSymbolNode; + +typedef struct COFF_ObjReloc +{ + U32 apply_off; + COFF_ObjSymbol *symbol; + COFF_RelocType type; +} COFF_ObjReloc; + +typedef struct COFF_ObjRelocNode +{ + struct COFF_ObjRelocNode *next; + COFF_ObjReloc v; +} COFF_ObjRelocNode; + +typedef struct COFF_ObjSection +{ + String8 name; + String8List data; + COFF_SectionFlags flags; + COFF_ObjSymbol *symbol; + + U64 reloc_count; + COFF_ObjRelocNode *reloc_first; + COFF_ObjRelocNode *reloc_last; + + U32 section_number; +} COFF_ObjSection; + +typedef struct COFF_ObjSectionNode +{ + struct COFF_ObjSectionNode *next; + COFF_ObjSection v; +} COFF_ObjSectionNode; + +typedef struct COFF_ObjWriter +{ + Arena *arena; + COFF_TimeStamp time_stamp; + COFF_MachineType machine_type; + + U64 symbol_count; + COFF_ObjSymbolNode *symbol_first; + COFF_ObjSymbolNode *symbol_last; + + U64 sect_count; + COFF_ObjSectionNode *sect_first; + COFF_ObjSectionNode *sect_last; +} COFF_ObjWriter; + +//////////////////////////////// + +internal COFF_ObjWriter* coff_obj_writer_alloc(COFF_TimeStamp time_stamp, COFF_MachineType machine_type); +internal void coff_obj_writer_release(COFF_ObjWriter **obj_writer); +internal COFF_ObjSection* coff_obj_writer_push_section(COFF_ObjWriter *obj_writer, String8 name, COFF_SectionFlags flags, String8 data); +internal COFF_ObjSymbol* coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSection *section, COFF_SymbolType type, COFF_SymStorageClass storage_class); +internal COFF_ObjReloc* coff_obj_writer_section_push_reloc(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol, COFF_RelocType reloc_type); + +#endif // COFF_OBJ_WRITER_H + diff --git a/src/linker/base_ext/base_strings.h b/src/linker/base_ext/base_strings.h index 5b9ac947..fd1c66db 100644 --- a/src/linker/base_ext/base_strings.h +++ b/src/linker/base_ext/base_strings.h @@ -3,8 +3,6 @@ #pragma once -#define MemoryCopyStr8(dst, s) MemoryCopy(dst, (s).str, (s).size) - internal int str8_compar(String8 a, String8 b, B32 ignore_case); internal int str8_compar_ignore_case(const void *a, const void *b); internal int str8_compar_case_sensitive(const void *a, const void *b); diff --git a/src/linker/hash_table.c b/src/linker/hash_table.c index c38e224f..29da28d3 100644 --- a/src/linker/hash_table.c +++ b/src/linker/hash_table.c @@ -270,6 +270,19 @@ hash_table_search_string_u64(HashTable *ht, String8 key, U64 *value_out) return 0; } +internal B32 +hash_table_search_string_raw(HashTable *ht, String8 key, void **value_out) +{ + KeyValuePair *result = hash_table_search_string(ht, key); + if (result) { + if (value_out) { + *value_out = result->value_raw; + } + return 1; + } + return 0; +} + //////////////////////////////// internal int @@ -327,6 +340,18 @@ key_value_pairs_from_hash_table(Arena *arena, HashTable *ht) return pairs; } +internal void * +values_from_hash_table_raw(Arena *arena, HashTable *ht) +{ + void **result = push_array(arena, void *, ht->count); + for (U64 bucket_idx = 0, cursor = 0; bucket_idx < ht->cap; ++bucket_idx) { + for (BucketNode *n = ht->buckets[bucket_idx].first; n != 0; n = n->next) { + Assert(cursor < ht->count); + result[cursor++] = n->v.value_raw; + } + } + return result; +} #include "third_party/radsort/radsort.h" internal void diff --git a/src/linker/hash_table.h b/src/linker/hash_table.h index b35c9fcf..4ea808ff 100644 --- a/src/linker/hash_table.h +++ b/src/linker/hash_table.h @@ -81,6 +81,8 @@ internal U32 * keys_from_hash_table_u32 (Arena *arena, HashTable internal U64 * keys_from_hash_table_u64 (Arena *arena, HashTable *ht); internal KeyValuePair * key_value_pairs_from_hash_table(Arena *arena, HashTable *ht); +internal void * values_from_hash_table_raw(Arena *arena, HashTable *ht); + internal void sort_key_value_pairs_as_u32(KeyValuePair *pairs, U64 count); internal void sort_key_value_pairs_as_u64(KeyValuePair *pairs, U64 count); diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 235881fd..9e4850c5 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -33,11 +33,16 @@ #include "base/base_inc.h" #include "os/os_inc.h" +#include "path/path.h" +#include "hash_table.h" #include "coff/coff.h" +#include "coff/coff_enum.h" #include "coff/coff_parse.h" +#include "coff/coff_obj_writer.h" #include "pe/pe.h" #include "codeview/codeview.h" #include "codeview/codeview_parse.h" +#include "codeview/codeview_enum.h" #include "msf/msf.h" #include "msf/msf_parse.h" #include "pdb/pdb.h" @@ -45,10 +50,15 @@ #include "base/base_inc.c" #include "os/os_inc.c" +#include "path/path.c" +#include "hash_table.c" #include "coff/coff.c" +#include "coff/coff_enum.c" #include "coff/coff_parse.c" +#include "coff/coff_obj_writer.c" #include "pe/pe.c" #include "codeview/codeview.c" +#include "codeview/codeview_enum.c" #include "codeview/codeview_parse.c" #include "msf/msf.c" #include "msf/msf_parse.c" @@ -63,14 +73,15 @@ // RDI #include "rdi/rdi_overrides.h" -#include "lib_rdi/rdi.h" -#include "lib_rdi/rdi.c" +#include "lib_rdi_format/rdi_format.h" +#include "rdi/rdi.h" +#include "lib_rdi_format/rdi_format.c" +#include "rdi/rdi.c" //////////////////////////////// // Code Base Extensions #include "base_ext/base_inc.h" -#include "hash_table.h" #include "thread_pool/thread_pool.h" #include "codeview_ext/codeview.h" #include "pdb_ext/msf_builder.h" @@ -79,7 +90,6 @@ #include "pdb_ext/pdb_builder.h" #include "base_ext/base_inc.c" -#include "hash_table.c" #include "thread_pool/thread_pool.c" #include "codeview_ext/codeview.c" #include "pdb_ext/msf_builder.c" @@ -406,87 +416,61 @@ lnk_res_number_id_is_before(void *raw_a, void *raw_b) } internal void -lnk_serialize_pe_resource_tree(LNK_SectionTable *sectab, LNK_SymbolTable *symtab, PE_ResourceDir *root_dir) +lnk_serialize_pe_resource_tree(COFF_ObjWriter *obj_writer, PE_ResourceDir *root_dir) { ProfBeginFunction(); Temp scratch = scratch_begin(0, 0); - LNK_Section *dir_sect = lnk_section_table_push(sectab, str8_lit(".rsrc$01"), LNK_RSRC_SECTION_FLAGS); - LNK_Section *data_sect = lnk_section_table_push(sectab, str8_lit(".rsrc$02"), LNK_RSRC_SECTION_FLAGS); - - LNK_Chunk *dir_tree_chunk = lnk_section_push_chunk_list(dir_sect, dir_sect->root, str8_zero()); - LNK_Chunk *dir_data_chunk = lnk_section_push_chunk_list(dir_sect, dir_sect->root, str8_zero()); - LNK_Chunk *dir_string_chunk = lnk_section_push_chunk_list(dir_sect, dir_sect->root, str8_zero()); - - dir_tree_chunk->sort_idx = str8_lit("a"); - dir_string_chunk->sort_idx = str8_lit("b"); - dir_data_chunk->sort_idx = str8_lit("c"); - - PE_Resource root_wrapper = {0}; - root_wrapper.id.type = COFF_ResourceIDType_Number; - root_wrapper.id.u.number = 0; - root_wrapper.kind = PE_ResDataKind_DIR; - root_wrapper.u.dir = root_dir; - struct Stack { - struct Stack *next; - U64 arr_idx; - U64 res_idx[2]; - PE_ResourceArray res_arr[2]; - LNK_Chunk *coff_entry_array_chunk; - LNK_Chunk *coff_entry_chunk; + struct Stack *next; + U64 arr_idx; + U64 res_idx[2]; + PE_ResourceArray res_arr[2]; + COFF_ResourceDirEntry *coff_entry_arr[2]; }; - struct Stack *stack = push_array(scratch.arena, struct Stack, 1); - stack->res_arr[0].count = 1; - stack->res_arr[0].v = &root_wrapper; + struct Stack *stack = push_array(scratch.arena, struct Stack, 1); + // init stack + { + PE_Resource root_wrapper = {0}; + root_wrapper.id.type = COFF_ResourceIDType_Number; + root_wrapper.id.u.number = 0; + root_wrapper.kind = PE_ResDataKind_DIR; + root_wrapper.u.dir = root_dir; + + COFF_ResourceDirEntry root_dir = {0}; + + stack->res_arr[0].count = 1; + stack->res_arr[0].v = &root_wrapper; + + stack->coff_entry_arr[0] = &root_dir; + stack->coff_entry_arr[1] = 0; + } + + COFF_ObjSection *rsrc1 = coff_obj_writer_push_section(obj_writer, str8_lit(".rsrc$01"), LNK_RSRC1_SECTION_FLAGS, str8_zero()); + COFF_ObjSection *rsrc2 = coff_obj_writer_push_section(obj_writer, str8_lit(".rsrc$02"), LNK_RSRC2_SECTION_FLAGS, str8_zero()); - U64 total_res_count = 0; - - while (stack) { - while (stack->arr_idx < ArrayCount(stack->res_arr)) { - while (stack->res_idx[stack->arr_idx] < stack->res_arr[stack->arr_idx].count) { - PE_Resource *res = &stack->res_arr[stack->arr_idx].v[stack->res_idx[stack->arr_idx]]; - ++stack->res_idx[stack->arr_idx]; - - String8 flag_name = push_str8f(symtab->arena->v[0], "flag_%u", total_res_count); - String8 offset_name = push_str8f(symtab->arena->v[0], "offset_%u", total_res_count); - ++total_res_count; - - if (stack->coff_entry_array_chunk) { - COFF_ResourceDirEntry *entry = push_array(dir_sect->arena, COFF_ResourceDirEntry, 1); - stack->coff_entry_chunk = lnk_section_push_chunk_data(dir_sect, stack->coff_entry_array_chunk, str8_struct(entry), str8_zero()); - - switch (res->id.type) { - case COFF_ResourceIDType_Number: { - entry->name.id = res->id.u.number; - } break; + for (; stack; ) { + for (; stack->arr_idx < ArrayCount(stack->res_arr); stack->arr_idx += 1) { + for (; stack->res_idx[stack->arr_idx] < stack->res_arr[stack->arr_idx].count; ) { + U64 res_idx = stack->res_idx[stack->arr_idx]++; + PE_Resource *res = &stack->res_arr[stack->arr_idx].v[res_idx]; - case COFF_ResourceIDType_String: { - // TODO: we can make string table smaller by reusing offsets for same strings - - // not sure why high bit has to be turned on here since number id and string id entries are - // in separate arrays but windows doesn't treat name offset like string without this bit. - entry->name.offset |= (1 << 31); - - // make chunk and symbol - String8 res_name = coff_resource_string_from_str8(dir_sect->arena, res->id.u.string); - LNK_Chunk *name_chunk = lnk_section_push_chunk_data(dir_sect, dir_string_chunk, res_name, str8_zero()); - LNK_Symbol *name_symbol = lnk_make_defined_symbol_chunk(symtab->arena->v[0], str8_lit("COFF_RESOURCE_ID_STRING"), LNK_DefinedSymbolVisibility_Static, 0, name_chunk, 0, 0, 0); + { + COFF_ResourceDirEntry *coff_entry = &stack->coff_entry_arr[stack->arr_idx][res_idx]; - // patch COFF_ResourceDirEntry.name.offset - lnk_section_push_reloc(dir_sect, stack->coff_entry_chunk, LNK_Reloc_SECT_REL, OffsetOf(COFF_ResourceDirEntry, name.offset), name_symbol); - } break; + // assign entry data offset + coff_entry->id.data_entry_offset = safe_cast_u32(rsrc1->data.total_size); - case COFF_ResourceIDType_Null: break; - - default: InvalidPath; + // set directory flag + if (res->kind == PE_ResDataKind_DIR) { + coff_entry->id.data_entry_offset |= COFF_Resource_SubDirFlag; } } - + switch (res->kind) { case PE_ResDataKind_DIR: { - // initialize directory header - COFF_ResourceDirTable *dir_header = push_array(dir_sect->arena, COFF_ResourceDirTable, 1); + // fill out directory header + COFF_ResourceDirTable *dir_header = push_array(obj_writer->arena, COFF_ResourceDirTable, 1); dir_header->characteristics = res->u.dir->characteristics; dir_header->time_stamp = res->u.dir->time_stamp; dir_header->major_version = res->u.dir->major_version; @@ -494,65 +478,71 @@ lnk_serialize_pe_resource_tree(LNK_SectionTable *sectab, LNK_SymbolTable *symtab dir_header->name_entry_count = res->u.dir->named_list.count; dir_header->id_entry_count = res->u.dir->id_list.count; - // push sub directory chunk layout - LNK_Chunk *dir_node_chunk = lnk_section_push_chunk_list(dir_sect, dir_tree_chunk, str8_zero()); - dir_node_chunk->align = COFF_ResourceAlign; - LNK_Chunk *dir_header_chunk = lnk_section_push_chunk_data(dir_sect, dir_node_chunk, str8_struct(dir_header), str8_zero()); - LNK_Chunk *entry_array_chunk = lnk_section_push_chunk_list(dir_sect, dir_node_chunk, str8_zero()); - lnk_chunk_set_debugf(dir_sect->arena, dir_header_chunk, "DIR_HEADER_CHUNK"); - lnk_chunk_set_debugf(dir_sect->arena, entry_array_chunk, "DIR_ENTRY_ARRAY_CHUNK"); - - // push symbols to patch coff entry - LNK_Symbol *flag_symbol = lnk_make_defined_symbol_va(symtab->arena->v[0], flag_name, LNK_DefinedSymbolVisibility_Internal, 0, COFF_Resource_SubDirFlag); - LNK_Symbol *offset_symbol = lnk_make_defined_symbol_chunk(symtab->arena->v[0], offset_name, LNK_DefinedSymbolVisibility_Internal, 0, dir_header_chunk, 0, 0, 0); - lnk_symbol_table_push(symtab, flag_symbol); // set high bit to indicate directory - lnk_symbol_table_push(symtab, offset_symbol); // write offset for this directory - - // patch resource dir header - if (stack->coff_entry_chunk) { - lnk_section_push_reloc(dir_sect, stack->coff_entry_chunk, LNK_Reloc_ADDR_32, OffsetOf(COFF_ResourceDirEntry, id.data_entry_offset), flag_symbol); - lnk_section_push_reloc(dir_sect, stack->coff_entry_chunk, LNK_Reloc_SECT_REL, OffsetOf(COFF_ResourceDirEntry, id.data_entry_offset), offset_symbol); - } - - // sort entries by id + // sort input resources PE_ResourceArray named_array = pe_resource_list_to_array(scratch.arena, &res->u.dir->named_list); PE_ResourceArray id_array = pe_resource_list_to_array(scratch.arena, &res->u.dir->id_list); radsort(named_array.v, named_array.count, lnk_res_string_id_is_before); - radsort(id_array.v, id_array.count, lnk_res_number_id_is_before); + radsort(id_array.v, id_array.count, lnk_res_number_id_is_before); - // frame for sub directory - struct Stack *frame = push_array(scratch.arena, struct Stack, 1); - frame->coff_entry_array_chunk = entry_array_chunk; - frame->res_arr[0] = named_array; - frame->res_arr[1] = id_array; + // allocate COFF entries + COFF_ResourceDirEntry *named_entries = push_array(obj_writer->arena, COFF_ResourceDirEntry, named_array.count); + COFF_ResourceDirEntry *id_entries = push_array(obj_writer->arena, COFF_ResourceDirEntry, id_array.count); + + // push header and entries + str8_list_push(obj_writer->arena, &rsrc1->data, str8_struct(dir_header)); + str8_list_push(obj_writer->arena, &rsrc1->data, str8_array(named_entries, named_array.count)); + str8_list_push(obj_writer->arena, &rsrc1->data, str8_array(id_entries, id_array.count)); + + // fill out named ids + for (U64 i = 0; i < named_array.count; i += 1) { + PE_Resource src = named_array.v[i]; + COFF_ResourceDirEntry *dst = &named_entries[i]; + + // append resource name + U32 res_name_off = safe_cast_u32(rsrc1->data.total_size); + String8 res_name = coff_resource_string_from_str8(obj_writer->arena, res->id.u.string); + str8_list_push(obj_writer->arena, &rsrc1->data, res_name); + + // not sure why high bit has to be turned on here since number id and string id entries are + // in separate arrays but windows doesn't treat name offset like string without this bit. + dst->name.offset = (1 << 31) | res_name_off; + } + + // fill out number ids + for (U64 i = 0; i < id_array.count; i += 1) { + PE_Resource src = id_array.v[i]; + COFF_ResourceDirEntry *dst = &id_entries[i]; + dst->name.id = src.id.u.number; + } + + // fill out sub directory stack frame + struct Stack *frame = push_array(scratch.arena, struct Stack, 1); + frame->res_arr[0] = named_array; + frame->res_arr[1] = id_array; + frame->coff_entry_arr[0] = named_entries; + frame->coff_entry_arr[1] = id_entries; SLLStackPush(stack, frame); - } goto yeild; // recurse to sub directory + } goto yield; // recurse to sub directory case PE_ResDataKind_COFF_RESOURCE: { - COFF_ResourceDataEntry *coff_resource_data_entry = push_array(dir_sect->arena, COFF_ResourceDataEntry, 1); - coff_resource_data_entry->data_size = res->u.coff_res.data.size; - coff_resource_data_entry->data_voff = 0; // relocated - coff_resource_data_entry->code_page = 0; // TODO: whats this for? (lld-link writes zero) + // fill out resource header + COFF_ResourceDataEntry *coff_res = push_array(obj_writer->arena, COFF_ResourceDataEntry, 1); + coff_res->data_size = res->u.coff_res.data.size; + coff_res->data_voff = 0; // relocated + coff_res->code_page = 0; // TODO: whats this for? (lld-link writes zero) - // push layout chunks - LNK_Chunk *coff_resource_data_entry_chunk = lnk_section_push_chunk_data(dir_sect, dir_data_chunk, str8_struct(coff_resource_data_entry), str8_zero()); - LNK_Chunk *resource_data_chunk = lnk_section_push_chunk_data(data_sect, data_sect->root, res->u.coff_res.data, str8_zero()); + // emit symbol for resource data + U32 resdat_off = safe_cast_u32(rsrc2->data.total_size); + COFF_ObjSymbol *resdat = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("resdat"), resdat_off, rsrc2); - // windows errors out on unaligned data - coff_resource_data_entry_chunk->align = COFF_ResourceAlign; - resource_data_chunk->align = COFF_ResourceAlign; + // emit reloc for 'data_voff' + U64 apply_off = rsrc1->data.total_size + OffsetOf(COFF_ResourceDataEntry, data_voff); + U32 apply_off32 = safe_cast_u32(apply_off); + coff_obj_writer_section_push_reloc(obj_writer, rsrc1, apply_off32, resdat, COFF_Reloc_X64_Addr32Nb); - // relocate data - String8 resource_data_symbol_name = push_str8f(symtab->arena->v[0], "$R%06X", total_res_count); - LNK_Symbol *resource_data_symbol = lnk_make_defined_symbol_chunk(symtab->arena->v[0], resource_data_symbol_name, LNK_DefinedSymbolVisibility_Static, 0, resource_data_chunk, 0, 0, 0); - lnk_section_push_reloc(dir_sect, coff_resource_data_entry_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(COFF_ResourceDataEntry, data_voff), resource_data_symbol); - - // push symbol for data offset relocation - LNK_Symbol *coff_data_offset_symbol = lnk_make_defined_symbol_chunk(symtab->arena->v[0], offset_name, LNK_DefinedSymbolVisibility_Internal, 0, coff_resource_data_entry_chunk, 0, 0, 0); - lnk_symbol_table_push(symtab, coff_data_offset_symbol); - - Assert(stack->coff_entry_chunk); - lnk_section_push_reloc(dir_sect, stack->coff_entry_chunk, LNK_Reloc_SECT_REL, OffsetOf(COFF_ResourceDirEntry, id.data_entry_offset), coff_data_offset_symbol); + // push resource entry & data + str8_list_push(obj_writer->arena, &rsrc1->data, str8_struct(coff_res)); + str8_list_push(obj_writer->arena, &rsrc2->data, res->u.coff_res.data); } break; case PE_ResDataKind_NULL: break; @@ -561,10 +551,9 @@ lnk_serialize_pe_resource_tree(LNK_SectionTable *sectab, LNK_SymbolTable *symtab case PE_ResDataKind_COFF_LEAF: InvalidPath; } } - ++stack->arr_idx; } SLLStackPop(stack); - yeild:; + yield:; } scratch_end(scratch); @@ -572,20 +561,20 @@ lnk_serialize_pe_resource_tree(LNK_SectionTable *sectab, LNK_SymbolTable *symtab } internal void -lnk_add_resource_debug_s(LNK_SectionTable *sectab, - LNK_SymbolTable *symtab, - String8 obj_path, - String8 cwd_path, - String8 exe_path, - CV_Arch arch, - String8List res_file_list, - MD5Hash *res_hash_array) +lnk_add_resource_debug_s(COFF_ObjWriter *obj_writer, + String8 obj_path, + String8 cwd_path, + String8 exe_path, + CV_Arch arch, + String8List res_file_list, + MD5Hash *res_hash_array) { ProfBeginFunction(); Temp scratch = scratch_begin(0,0); // init serial for tables - String8List string_srl, file_srl; MemoryZeroStruct(&string_srl); MemoryZeroStruct(&file_srl); + String8List string_srl = {0}; + String8List file_srl = {0}; str8_serial_begin(scratch.arena, &string_srl); str8_serial_begin(scratch.arena, &file_srl); @@ -620,7 +609,7 @@ lnk_add_resource_debug_s(LNK_SectionTable *sectab, 1, 0, 1, 0, version_string); - String8List env_list; MemoryZeroStruct(&env_list); + String8List env_list = {0}; str8_list_push(scratch.arena, &env_list, str8_lit("cwd")); str8_list_push(scratch.arena, &env_list, cwd_path); str8_list_push(scratch.arena, &env_list, str8_lit("exe")); @@ -629,18 +618,18 @@ lnk_add_resource_debug_s(LNK_SectionTable *sectab, str8_list_push(scratch.arena, &env_list, str8_lit("")); String8 envblock_data = cv_make_envblock(scratch.arena, env_list); - String8 obj_symbol = cv_make_symbol(scratch.arena, CV_SymKind_OBJNAME, obj_data); - String8 comp_symbol = cv_make_symbol(scratch.arena, CV_SymKind_COMPILE3, comp_data); + String8 obj_symbol = cv_make_symbol(scratch.arena, CV_SymKind_OBJNAME, obj_data); + String8 comp_symbol = cv_make_symbol(scratch.arena, CV_SymKind_COMPILE3, comp_data); String8 envblock_symbol = cv_make_symbol(scratch.arena, CV_SymKind_ENVBLOCK, envblock_data); - String8List symbol_srl; MemoryZeroStruct(&symbol_srl); + String8List symbol_srl = {0}; str8_serial_begin(scratch.arena, &symbol_srl); str8_serial_push_string(scratch.arena, &symbol_srl, obj_symbol); str8_serial_push_string(scratch.arena, &symbol_srl, comp_symbol); str8_serial_push_string(scratch.arena, &symbol_srl, envblock_symbol); // build code view sub-sections - String8List sub_sect_srl; MemoryZeroStruct(&sub_sect_srl); + String8List sub_sect_srl = {0}; str8_serial_begin(scratch.arena, &sub_sect_srl); CV_Signature sig = CV_Signature_C13; str8_serial_push_struct(scratch.arena, &sub_sect_srl, &sig); @@ -666,20 +655,18 @@ lnk_add_resource_debug_s(LNK_SectionTable *sectab, str8_serial_push_data_list(scratch.arena, &sub_sect_srl, symbol_srl.first); str8_serial_push_align(scratch.arena, &sub_sect_srl, CV_C13SubSectionAlign); - LNK_Section *debug_s = lnk_section_table_push(sectab, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS); - String8 sub_sect_data = str8_serial_end(debug_s->arena, &sub_sect_srl); - lnk_section_push_chunk_data(debug_s, debug_s->root, sub_sect_data, str8_zero()); + String8 sub_sect_data = str8_serial_end(obj_writer->arena, &sub_sect_srl); + coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS, sub_sect_data); scratch_end(scratch); ProfEnd(); } internal String8 -lnk_make_res_obj(TP_Context *tp, - Arena *arena, +lnk_make_res_obj(Arena *arena, PE_ResourceDir *root_dir, - COFF_MachineType machine, COFF_TimeStamp time_stamp, + COFF_MachineType machine, String8 path, String8 cwd_path, String8 exe_path, @@ -687,262 +674,23 @@ lnk_make_res_obj(TP_Context *tp, MD5Hash *res_hash_array) { ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - static const U64 sect_virt_align = 1; - static const U64 sect_file_align = 1; - TP_Arena *temp_tp_arena = push_array(scratch.arena, TP_Arena, 1); - temp_tp_arena->v = push_array(scratch.arena, Arena *, 1); - temp_tp_arena->count = 1; - temp_tp_arena->v[0] = arena_alloc(); + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); + + // obj features + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@feat.00"), COFF_SymStorageClass_Static, MSCRT_FeatFlag_HAS_SAFE_SEH|MSCRT_FeatFlag_UNKNOWN_4); - LNK_SymbolTable *symtab = lnk_symbol_table_init(temp_tp_arena); - LNK_SectionTable *sectab = lnk_section_table_alloc(0, sect_virt_align, sect_file_align); - LNK_Section *header_sect = lnk_section_table_push(sectab, str8_lit(".null"), 0); + // serialize resource tree + lnk_serialize_pe_resource_tree(obj_writer, root_dir); + + // push resource debug info + lnk_add_resource_debug_s(obj_writer, path, cwd_path, exe_path, cv_arch_from_coff_machine(machine), res_file_list, res_hash_array); + + // finalize obj + String8 res_obj = coff_obj_writer_serialize(arena, obj_writer); - lnk_serialize_pe_resource_tree(sectab, symtab, root_dir); - - CV_Arch cv_arch = cv_arch_from_coff_machine(machine); - lnk_add_resource_debug_s(sectab, symtab, path, cwd_path, exe_path, cv_arch, res_file_list, res_hash_array); - - // register section symbols (after this point don't push new sections) - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != 0; sect_node = sect_node->next) { - LNK_Section *sect = §_node->data; - lnk_symbol_table_push_defined_chunk(symtab, sect->name, LNK_DefinedSymbolVisibility_Internal, 0, sect->root, 0, 0, 0); - } - sectab->null_sect = lnk_section_list_remove(§ab->list, str8_lit(".null")); - lnk_section_table_build_data(tp, sectab, machine); - lnk_section_table_push_null(sectab); - lnk_section_table_assign_indices(sectab); - LNK_Section **sect_id_map = lnk_sect_id_map_from_section_table(scratch.arena, sectab); - - COFF_Symbol16List coff_symbol_list = {0}; - - COFF_Symbol16 coff_feat00 = {0}; - MemoryCopyStr8(&coff_feat00.name, str8_lit("@feat.00")); - coff_feat00.value = MSCRT_FeatFlag_HAS_SAFE_SEH|MSCRT_FeatFlag_UNKNOWN_4; - coff_feat00.section_number = COFF_Symbol_AbsSection16; - coff_feat00.storage_class = COFF_SymStorageClass_Static; - coff_symbol16_list_push(scratch.arena, &coff_symbol_list, coff_feat00); - - // emit coff symbols for section definitions - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != 0; sect_node = sect_node->next) { - LNK_Section *sect = §_node->data; - if (sect == header_sect) continue; - if (!sect->emit_header) continue; - - U64 reloc_count = 0; - LNK_Symbol *coff_reloc_count_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScopeFlag_Internal, "%S.coff_relocs[].count", sect->name); - if (coff_reloc_count_symbol) { - reloc_count = coff_reloc_count_symbol->u.defined.u.va; - } - - U64 sect_size = lnk_virt_size_from_chunk_ref(sect_id_map, sect->root->ref); - - COFF_Symbol16 coff_sect_symbol = {0}; - Assert(sect->name.size <= 8); - MemoryCopyStr8(&coff_sect_symbol.name, sect->name); - coff_sect_symbol.value = 0; - coff_sect_symbol.section_number = sect->isect; - coff_sect_symbol.aux_symbol_count = 1; - coff_sect_symbol.storage_class = COFF_SymStorageClass_Static; - - Assert(sect->isect <= max_U16); - COFF_SymbolSecDef secdef = {0}; - secdef.length = safe_cast_u32(sect_size); - secdef.number_lo = sect->isect; - secdef.number_of_relocations = safe_cast_u32(reloc_count); - - coff_symbol16_list_push(scratch.arena, &coff_symbol_list, coff_sect_symbol); - coff_symbol16_list_push(scratch.arena, &coff_symbol_list, *((COFF_Symbol16*)&secdef)); - } - - // convert relocations and symbols to coff format - { - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != 0; sect_node = sect_node->next) { - LNK_Section *sect = §_node->data; - - // filter out resource relocations - LNK_RelocList reloc_list = {0}; - LNK_RelocList res_data_reloc_list = {0}; - for (LNK_Reloc *reloc = sect->reloc_list.first; reloc != 0; reloc = reloc->next) { - B32 is_reloc_symbol = str8_match_lit("$R", reloc->symbol->name, StringMatchFlag_RightSideSloppy); - LNK_Reloc *dst; - if (is_reloc_symbol) { - dst = lnk_reloc_list_push(sect->arena, &res_data_reloc_list); - } else { - dst = lnk_reloc_list_push(sect->arena, &reloc_list); - } - dst->chunk = reloc->chunk; - dst->type = reloc->type; - dst->apply_off = reloc->apply_off; - dst->symbol = reloc->symbol; - } - sect->reloc_list = reloc_list; - - COFF_RelocList coff_reloc_list = {0}; - for (LNK_Reloc *reloc = res_data_reloc_list.first; reloc != 0; reloc = reloc->next) { - LNK_Symbol *symbol = reloc->symbol; - - Assert(LNK_Symbol_IsDefined(symbol->type)); - Assert(symbol->u.defined.value_type == LNK_DefinedSymbolValue_Chunk); - LNK_DefinedSymbol *def = &symbol->u.defined; - - // resolve symbol offset - LNK_Section *symbol_sect = lnk_sect_from_chunk_ref(sect_id_map, def->u.chunk->ref); - U64 chunk_off = lnk_off_from_chunk_ref(sect_id_map, def->u.chunk->ref); - U64 symbol_offset = chunk_off + def->u.chunk_offset; - U64 symbol_idx = coff_symbol_list.count; - - // push coff symbol - COFF_Symbol16 coff_symbol = {0}; - Assert(symbol->name.size <= 8); - String8 symbol_name = push_str8f(scratch.arena, "$R%06X", symbol_offset); - MemoryCopyStr8(&coff_symbol.name, symbol_name); - coff_symbol.value = symbol_offset; - coff_symbol.section_number = symbol_sect->isect; - coff_symbol.storage_class = COFF_SymStorageClass_Static; - coff_symbol16_list_push(scratch.arena, &coff_symbol_list, coff_symbol); - - // push coff reloc - U64 reloc_off = lnk_off_from_chunk_ref(sect_id_map, reloc->chunk->ref); - reloc_off += reloc->apply_off; - - COFF_Reloc coff_reloc = {0}; - coff_reloc.apply_off = reloc_off; - coff_reloc.isymbol = safe_cast_u32(symbol_idx); - coff_reloc.type = lnk_ext_reloc_type_to_coff(machine, reloc->type); - coff_reloc_list_push(scratch.arena, &coff_reloc_list, coff_reloc); - } - - if (coff_reloc_list.count == 0) continue; - - // push section for relocation data - String8 sect_name = push_str8f(sectab->arena, "%S.relocs", sect->name); - LNK_Section *reloc_sect = lnk_section_table_push(sectab, sect_name, 0); - reloc_sect->emit_header = 0; - - // push chunk layout for relocations - LNK_Chunk *reloc_array_chunk = lnk_section_push_chunk_list(reloc_sect, reloc_sect->root, str8_zero()); - for (COFF_RelocNode *i = coff_reloc_list.first; i != 0; i = i->next) { - String8 reloc_data = push_str8_copy(reloc_sect->arena, str8_struct(&i->data)); - lnk_section_push_chunk_data(reloc_sect, reloc_array_chunk, reloc_data, str8_zero()); - } - - // emit symbols for coff section header patch - String8 coff_reloc_symbol_name = push_str8f(symtab->arena->v[0], "%S.coff_reloc[]", sect->name); - String8 coff_reloc_count_symbol_name = push_str8f(symtab->arena->v[0], "%S.coff_reloc[].count", sect->name); - LNK_Symbol *coff_reloc_symbol = lnk_make_defined_symbol_chunk(symtab->arena->v[0], coff_reloc_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, reloc_array_chunk, 0, 0, 0); - LNK_Symbol *coff_reloc_count_symbol = lnk_make_defined_symbol_va(symtab->arena->v[0], coff_reloc_count_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, coff_reloc_list.count); - lnk_symbol_table_push(symtab, coff_reloc_symbol); - lnk_symbol_table_push(symtab, coff_reloc_count_symbol); - } - } - - LNK_Section *misc_sect = lnk_section_table_push(sectab, str8_lit(".misc"), COFF_SectionFlag_LnkInfo|COFF_SectionFlag_LnkRemove); - misc_sect->emit_header = 0; - - // serialize coff symbol list - String8List srl = {0}; - str8_serial_begin(scratch.arena, &srl); - for (COFF_Symbol16Node *i = coff_symbol_list.first; i != 0; i = i->next) { - str8_serial_push_struct(scratch.arena, &srl, &i->data); - } - String8 coff_symbol_table_data = str8_serial_end(scratch.arena, &srl); - LNK_Chunk *coff_symbol_table_chunk = lnk_section_push_chunk_data(misc_sect, misc_sect->root, coff_symbol_table_data, str8_zero()); - LNK_Symbol *coff_symbol_table_symbol = lnk_make_defined_symbol_chunk(symtab->arena->v[0], str8_lit("COFF_SYMBOL_TABLE"), LNK_DefinedSymbolVisibility_Internal, 0, coff_symbol_table_chunk, 0, 0, 0); - lnk_symbol_table_push(symtab, coff_symbol_table_symbol); - - LNK_Symbol *coff_symbol_count_symbol = lnk_make_defined_symbol_va(symtab->arena->v[0], str8_lit("COFF_SYMBOL_COUNT"), LNK_DefinedSymbolVisibility_Internal, 0, coff_symbol_list.count); - lnk_symbol_table_push(symtab, coff_symbol_count_symbol); - - // build obj header - { - // init header - COFF_FileHeader *file_header = push_array(header_sect->arena, COFF_FileHeader, 1); - file_header->machine = machine; - file_header->section_count = 0; // relocated - file_header->time_stamp = time_stamp; - file_header->symbol_table_foff = 0; // relocated - file_header->symbol_count = 0; // relocated - file_header->optional_header_size = 0; // no PE header in obj - file_header->flags = COFF_FileHeaderFlag_32BitMachine; - - // push coff header chunk - String8 file_header_data = str8_struct(file_header); - LNK_Chunk *file_header_chunk = lnk_section_push_chunk_data(header_sect, header_sect->root, file_header_data, str8_zero()); - - // relocate coff header fields - lnk_section_push_reloc_undefined(header_sect, file_header_chunk, LNK_Reloc_ADDR_32, OffsetOf(COFF_FileHeader, section_count), str8_lit(LNK_COFF_SECT_HEADER_COUNT_SYMBOL_NAME), LNK_SymbolScopeFlag_Internal); - lnk_section_push_reloc(header_sect, file_header_chunk, LNK_Reloc_FILE_OFF_32, OffsetOf(COFF_FileHeader, symbol_table_foff), coff_symbol_table_symbol); - lnk_section_push_reloc(header_sect, file_header_chunk, LNK_Reloc_ADDR_32, OffsetOf(COFF_FileHeader, symbol_count), coff_symbol_count_symbol); - - // push coff header symbol - LNK_Symbol *file_header_symbol = lnk_make_defined_symbol_chunk(symtab->arena->v[0], str8_lit(LNK_COFF_FILE_HEADER_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, file_header_chunk, 0, 0, 0); - lnk_symbol_table_push(symtab, file_header_symbol); - } - - // build section headers - { - LNK_Chunk *coff_section_header_array_chunk = lnk_section_push_chunk_list(header_sect, header_sect->root, str8_zero()); - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != 0; sect_node = sect_node->next) { - if (sect_node == sectab->null_sect) continue; - if (!sect_node->data.emit_header) continue; - LNK_Section *sect = §_node->data; - - // init section header - COFF_SectionHeader *coff_sect_header = push_array(header_sect->arena, COFF_SectionHeader, 1); - Assert(sect->name.size <= sizeof(coff_sect_header->name)); - MemoryCopyStr8(&coff_sect_header->name[0], sect->name); - coff_sect_header->flags = sect->flags; - coff_sect_header->vsize = 0; // ignored - coff_sect_header->voff = 0; // ignored - coff_sect_header->fsize = 0; // relocated - coff_sect_header->foff = 0; // relocated - coff_sect_header->relocs_foff = 0; // relocated - coff_sect_header->lines_foff = 0; // obsolete - coff_sect_header->line_count = 0; // obsolete - coff_sect_header->reloc_count = 0; // relocated - - // push section header chunk - String8 coff_sect_header_data = str8_struct(coff_sect_header); - String8 sort_index = lnk_make_section_sort_index(header_sect->arena, str8_zero(), 0, sect->isect); - LNK_Chunk *coff_sect_header_chunk = lnk_section_push_chunk_data(header_sect, coff_section_header_array_chunk, coff_sect_header_data, sort_index); - lnk_chunk_set_debugf(header_sect->arena, coff_sect_header_chunk, "%S", sect->name); - - // patch reloc fields - if (sect->reloc_list.count) { - String8 coff_reloc_symbol_name = push_str8f(scratch.arena, "%S.coff_reloc[]", sect->name); - String8 coff_reloc_count_symbol_name = push_str8f(scratch.arena, "%S.coff_reloc[].count", sect->name); - lnk_section_push_reloc_undefined(header_sect, coff_sect_header_chunk, LNK_Reloc_FILE_OFF_32, OffsetOf(COFF_SectionHeader, relocs_foff), coff_reloc_symbol_name, LNK_SymbolScopeFlag_Internal); - lnk_section_push_reloc_undefined(header_sect, coff_sect_header_chunk, LNK_Reloc_ADDR_32, OffsetOf(COFF_SectionHeader, reloc_count), coff_reloc_count_symbol_name, LNK_SymbolScopeFlag_Internal); - } - - // patch file fields - if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { - LNK_Symbol *sect_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Internal, sect->name); - lnk_section_push_reloc(header_sect, coff_sect_header_chunk, LNK_Reloc_CHUNK_SIZE_FILE_32, OffsetOf(COFF_SectionHeader, fsize), sect_symbol); - lnk_section_push_reloc(header_sect, coff_sect_header_chunk, LNK_Reloc_FILE_OFF_32, OffsetOf(COFF_SectionHeader, foff), sect_symbol); - } - } - - // push section header count symbol - U64 symbol_count = coff_section_header_array_chunk->u.list->count; - LNK_Symbol *coff_section_header_count_symbol = lnk_make_defined_symbol_va(symtab->arena->v[0], str8_lit(LNK_COFF_SECT_HEADER_COUNT_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, symbol_count); - lnk_symbol_table_push(symtab, coff_section_header_count_symbol); - } - - lnk_section_table_assign_indices(sectab); - lnk_section_table_build_data(tp, sectab, machine); - lnk_section_table_assign_file_offsets(sectab); - String8 res_obj = lnk_section_table_serialize(tp, arena, sectab, machine); - sect_id_map = lnk_sect_id_map_from_section_table(scratch.arena, sectab); - lnk_patch_relocs_linker(tp, symtab, sectab, sect_id_map, res_obj, 0); - lnk_section_table_release(§ab); - - arena_release(temp_tp_arena->v[0]); - scratch_end(scratch); + coff_obj_writer_release(&obj_writer); + ProfEnd(); return res_obj; } @@ -986,11 +734,10 @@ lnk_obj_from_res_file_list(TP_Context *tp, String8List exe_path_strs = {0}; str8_list_push(scratch.arena, &exe_path_strs, process_info->binary_path); String8 exe_path = str8_list_first(&exe_path_strs); - String8 res_obj = lnk_make_res_obj(tp, - arena, + String8 res_obj = lnk_make_res_obj(arena, root_dir, - machine, time_stamp, + machine, obj_name, work_dir, exe_path, diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 2790fa60..c7fc306d 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -89,6 +89,8 @@ #define LNK_IDATA_SECTION_FLAGS LNK_DATA_SECTION_FLAGS #define LNK_DEBUG_DIR_SECTION_FLAGS LNK_DATA_SECTION_FLAGS #define LNK_RSRC_SECTION_FLAGS LNK_DATA_SECTION_FLAGS +#define LNK_RSRC1_SECTION_FLAGS (LNK_DATA_SECTION_FLAGS | COFF_SectionFlags_PackAlign(COFF_SectionAlign_4Bytes)) +#define LNK_RSRC2_SECTION_FLAGS (LNK_DATA_SECTION_FLAGS | COFF_SectionFlags_PackAlign(COFF_SectionAlign_4Bytes)) #define LNK_XDATA_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS #define LNK_PDATA_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS #define LNK_EDATA_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS @@ -262,9 +264,9 @@ internal void lnk_merge_manifest_files(String8 mt_path, String8 out_name, Str //////////////////////////////// // Resources -internal void lnk_serialize_pe_resource_tree(LNK_SectionTable *sectab, LNK_SymbolTable *symtab, PE_ResourceDir *root_dir); -internal void lnk_add_resource_debug_s(LNK_SectionTable *sectab, LNK_SymbolTable *symtab, String8 obj_path, String8 cwd_path, String8 exe_path, CV_Arch arch, String8List res_file_list, MD5Hash *res_hash_array); -internal String8 lnk_make_res_obj(TP_Context *tp, Arena *arena, PE_ResourceDir *root_dir, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 path, String8 cwd_path, String8 exe_path, String8List res_file_list, MD5Hash *res_hash_array); +internal void lnk_serialize_pe_resource_tree(COFF_ObjWriter *obj_writer, PE_ResourceDir *root_dir); +internal void lnk_add_resource_debug_s(COFF_ObjWriter *obj_writer, String8 obj_path, String8 cwd_path, String8 exe_path, CV_Arch arch, String8List res_file_list, MD5Hash *res_hash_array); +internal String8 lnk_make_res_obj(Arena *arena, PE_ResourceDir *root_dir, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 path, String8 cwd_path, String8 exe_path, String8List res_file_list, MD5Hash *res_hash_array); internal String8 lnk_obj_from_res_file_list(TP_Context *tp, Arena *arena, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, String8List res_file_list, String8List res_path_list, COFF_MachineType machine, U32 time_stamp, String8 work_dir, PathStyle system_path_style, String8 obj_name); //////////////////////////////// From e580b691805ddfe2b6e4f51a267119c1c8db131a Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 15 Apr 2025 14:14:07 -0700 Subject: [PATCH 049/372] make linker obj with COFF obj writer --- src/linker/lnk.c | 103 +++++------------------------------------------ src/linker/lnk.h | 2 +- 2 files changed, 12 insertions(+), 93 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 9e4850c5..436dcf44 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -752,8 +752,7 @@ lnk_obj_from_res_file_list(TP_Context *tp, //////////////////////////////// internal String8 -lnk_make_linker_coff_obj(TP_Context *tp, - Arena *arena, +lnk_make_linker_coff_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 cwd_path, @@ -763,30 +762,8 @@ lnk_make_linker_coff_obj(TP_Context *tp, String8 obj_name) { Temp scratch = scratch_begin(&arena, 1); - - TP_Arena *temp_tp_arena = push_array(scratch.arena, TP_Arena, 1); - temp_tp_arena->v = &scratch.arena; - temp_tp_arena->count = 1; - - LNK_SymbolTable *symtab = lnk_symbol_table_init(temp_tp_arena); - LNK_SectionTable *sectab = lnk_section_table_alloc(0, 1, 1); - - LNK_Section *header_sect = lnk_section_table_push(sectab, str8_lit(".coffhdr"), 0); - LNK_Section *debug_s_sect = lnk_section_table_push(sectab, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS); - - // TODO: remove! hack! - header_sect->emit_header = 0; - - { - COFF_FileHeader *file_header = push_array(header_sect->arena, COFF_FileHeader, 1); - file_header->machine = machine; - file_header->section_count = 0; - file_header->time_stamp = time_stamp; - - LNK_Chunk *file_header_chunk = lnk_section_push_chunk_raw(header_sect, header_sect->root, file_header, sizeof(*file_header), str8_zero()); - lnk_section_push_reloc_undefined(header_sect, file_header_chunk, LNK_Reloc_ADDR_32, OffsetOf(COFF_FileHeader, section_count), str8_lit(LNK_COFF_SECT_HEADER_COUNT_SYMBOL_NAME), LNK_SymbolScopeFlag_Internal); - } + String8 debug_s_data = {0}; { CV_SymbolList symbol_list = {0}; symbol_list.signature = CV_Signature_C13; @@ -836,77 +813,19 @@ lnk_make_linker_coff_obj(TP_Context *tp, B32 include_sig = 1; String8List debug_s_data_list = cv_data_c13_from_debug_s(scratch.arena, &debug_s, include_sig); - - // push debug info to section - String8 debug_s_data = str8_list_join(debug_s_sect->arena, &debug_s_data_list, 0); - lnk_section_push_chunk_data(debug_s_sect, debug_s_sect->root, debug_s_data, str8_zero()); + debug_s_data = str8_list_join(scratch.arena, &debug_s_data_list, 0); } - + + String8 obj; { - // register section symbols (after this point don't push new sections) - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != NULL; sect_node = sect_node->next) { - LNK_Section *sect = §_node->data; - lnk_symbol_table_push_defined_chunk(symtab, sect->name, LNK_DefinedSymbolVisibility_Internal, 0, sect->root, 0, 0, 0); - } - - LNK_Chunk *coff_section_header_array_chunk = lnk_section_push_chunk_list(header_sect, header_sect->root, str8_zero()); - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != NULL; sect_node = sect_node->next) { - if (sect_node == sectab->null_sect) continue; - if (!sect_node->data.emit_header) continue; - LNK_Section *sect = §_node->data; - - // init section header - COFF_SectionHeader *coff_sect_header = push_array(header_sect->arena, COFF_SectionHeader, 1); - Assert(sect->name.size <= sizeof(coff_sect_header->name)); - MemoryCopy(&coff_sect_header->name[0], sect->name.str, sect->name.size); - coff_sect_header->flags = sect->flags; - coff_sect_header->vsize = 0; // ignored - coff_sect_header->voff = 0; // ignored - coff_sect_header->fsize = 0; // relocated - coff_sect_header->foff = 0; // relocated - coff_sect_header->relocs_foff = 0; // relocated - coff_sect_header->lines_foff = 0; // obsolete - coff_sect_header->line_count = 0; // obsolete - coff_sect_header->reloc_count = 0; // relocated - - // push section header chunk - String8 sort_index = lnk_make_section_sort_index(header_sect->arena, str8_zero(), 0, sect->isect); - LNK_Chunk *coff_sect_header_chunk = lnk_section_push_chunk_raw(header_sect, coff_section_header_array_chunk, coff_sect_header, sizeof(*coff_sect_header), sort_index); - lnk_chunk_set_debugf(header_sect->arena, coff_sect_header_chunk, "%S", sect->name); - - // emit relocs for reloc fields - if (sect->reloc_list.count) { - String8 coff_reloc_symbol_name = push_str8f(scratch.arena, "%S.coff_reloc[]", sect->name); - String8 coff_reloc_count_symbol_name = push_str8f(scratch.arena, "%S.coff_reloc[].count", sect->name); - lnk_section_push_reloc_undefined(header_sect, coff_sect_header_chunk, LNK_Reloc_FILE_OFF_32, OffsetOf(COFF_SectionHeader, relocs_foff), coff_reloc_symbol_name, LNK_SymbolScopeFlag_Internal); - lnk_section_push_reloc_undefined(header_sect, coff_sect_header_chunk, LNK_Reloc_ADDR_32, OffsetOf(COFF_SectionHeader, reloc_count), coff_reloc_count_symbol_name, LNK_SymbolScopeFlag_Internal); - } - - // emit relocs for file fields - if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { - LNK_Symbol *sect_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Internal, sect->name); - lnk_section_push_reloc(header_sect, coff_sect_header_chunk, LNK_Reloc_CHUNK_SIZE_FILE_32, OffsetOf(COFF_SectionHeader, fsize), sect_symbol); - lnk_section_push_reloc(header_sect, coff_sect_header_chunk, LNK_Reloc_FILE_OFF_32, OffsetOf(COFF_SectionHeader, foff), sect_symbol); - } - } - - // push section header count symbol - U64 symbol_count = coff_section_header_array_chunk->u.list->count; - LNK_Symbol *coff_section_header_count_symbol = lnk_make_defined_symbol_va(symtab->arena->v[0], str8_lit(LNK_COFF_SECT_HEADER_COUNT_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, symbol_count); - lnk_symbol_table_push(symtab, coff_section_header_count_symbol); + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); + coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS, debug_s_data); + obj = coff_obj_writer_serialize(arena, obj_writer); + coff_obj_writer_release(&obj_writer); } - lnk_section_table_assign_indices(sectab); - lnk_section_table_build_data(tp, sectab, machine); - lnk_section_table_assign_file_offsets(sectab); - String8 coff_data = lnk_section_table_serialize(tp, arena, sectab, machine); - LNK_Section **sect_id_map = lnk_sect_id_map_from_section_table(scratch.arena, sectab); - lnk_patch_relocs_linker(tp, symtab, sectab, sect_id_map, coff_data, 0); - - lnk_section_table_release(§ab); - scratch_end(scratch); - return coff_data; + return obj; } //////////////////////////////// @@ -3816,7 +3735,7 @@ lnk_run(int argc, char **argv) StringJoin join = { str8_lit_comp(""), str8_lit_comp(" "), str8_lit_comp("") }; String8 raw_cmd_line = str8_list_join(scratch.arena, &config->raw_cmd_line, &join); - String8 obj_data = lnk_make_linker_coff_obj(tp, scratch.arena, config->time_stamp, config->machine, config->work_dir, config->image_name, config->pdb_name, raw_cmd_line, obj_name); + String8 obj_data = lnk_make_linker_coff_obj(scratch.arena, config->time_stamp, config->machine, config->work_dir, config->image_name, config->pdb_name, raw_cmd_line, obj_name); LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->dedup_id = obj_name; diff --git a/src/linker/lnk.h b/src/linker/lnk.h index c7fc306d..1a146b2a 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -272,7 +272,7 @@ internal String8 lnk_obj_from_res_file_list(TP_Context *tp, Arena *arena, LNK_Se //////////////////////////////// // Debug -internal String8 lnk_make_linker_coff_obj(TP_Context *tp, Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 cwd_path, String8 exe_path, String8 pdb_path, String8 cmd_line, String8 obj_name); +internal String8 lnk_make_linker_coff_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 cwd_path, String8 exe_path, String8 pdb_path, String8 cmd_line, String8 obj_name); //////////////////////////////// // Win32 Image Helpers From 3a2bb318c70f4ff326f5d330ee9057236a3acd56 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 16 Apr 2025 13:53:35 -0700 Subject: [PATCH 050/372] make import lib objs with COFF obj writer --- src/coff/coff.h | 16 +- src/coff/coff_obj_writer.c | 76 +++++-- src/coff/coff_obj_writer.h | 21 +- src/linker/lnk.c | 35 +-- src/linker/lnk.h | 4 +- src/linker/lnk_lib.c | 431 ++++++++++--------------------------- src/linker/lnk_lib.h | 6 +- src/linker/lnk_obj.c | 252 +++++++++++----------- 8 files changed, 352 insertions(+), 489 deletions(-) diff --git a/src/coff/coff.h b/src/coff/coff.h index 6c0c8828..aa88b9b9 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -21,6 +21,7 @@ read_only global U8 g_coff_thin_archive_sig[8] = "!\n"; #pragma pack(push, 1) +#define COFF_TimeStamp_Max max_U32 typedef U32 COFF_TimeStamp; typedef U16 COFF_FileHeaderFlags; @@ -135,6 +136,20 @@ enum COFF_SectionFlag_MemPreload = (1 << 19), COFF_SectionFlag_AlignShift = 20, COFF_SectionFlag_AlignMask = 0xf, + COFF_SectionFlag_Align1Bytes = (COFF_SectionAlign_1Bytes << COFF_SectionFlag_AlignShift), + COFF_SectionFlag_Align2Bytes = (COFF_SectionAlign_2Bytes << COFF_SectionFlag_AlignShift), + COFF_SectionFlag_Align4Bytes = (COFF_SectionAlign_4Bytes << COFF_SectionFlag_AlignShift), + COFF_SectionFlag_Align8Bytes = (COFF_SectionAlign_8Bytes << COFF_SectionFlag_AlignShift), + COFF_SectionFlag_Align16Bytes = (COFF_SectionAlign_16Bytes << COFF_SectionFlag_AlignShift), + COFF_SectionFlag_Align32Bytes = (COFF_SectionAlign_32Bytes << COFF_SectionFlag_AlignShift), + COFF_SectionFlag_Align64Bytes = (COFF_SectionAlign_64Bytes << COFF_SectionFlag_AlignShift), + COFF_SectionFlag_Align128Bytes = (COFF_SectionAlign_128Bytes << COFF_SectionFlag_AlignShift), + COFF_SectionFlag_Align256Bytes = (COFF_SectionAlign_256Bytes << COFF_SectionFlag_AlignShift), + COFF_SectionFlag_Align512Bytes = (COFF_SectionAlign_512Bytes << COFF_SectionFlag_AlignShift), + COFF_SectionFlag_Align1024Bytes = (COFF_SectionAlign_1024Bytes << COFF_SectionFlag_AlignShift), + COFF_SectionFlag_Align2048Bytes = (COFF_SectionAlign_2048Bytes << COFF_SectionFlag_AlignShift), + COFF_SectionFlag_Align4096Bytes = (COFF_SectionAlign_4096Bytes << COFF_SectionFlag_AlignShift), + COFF_SectionFlag_Align8192Bytes = (COFF_SectionAlign_8192Bytes << COFF_SectionFlag_AlignShift), COFF_SectionFlag_LnkNRelocOvfl = (1 << 24), COFF_SectionFlag_MemDiscardable = (1 << 25), COFF_SectionFlag_MemNotCached = (1 << 26), @@ -144,7 +159,6 @@ enum COFF_SectionFlag_MemRead = (1 << 30), COFF_SectionFlag_MemWrite = (1 << 31) }; -#define COFF_SectionFlags_PackAlign(f) ((f) << COFF_SectionFlag_AlignShift) #define COFF_SectionFlags_ExtractAlign(f) (COFF_SectionAlign)(((f) >> COFF_SectionFlag_AlignShift) & COFF_SectionFlag_AlignMask) #define COFF_SectionFlags_LnkFlags ((COFF_SectionFlag_AlignMask << COFF_SectionFlag_AlignShift) | COFF_SectionFlag_LnkCOMDAT | COFF_SectionFlag_LnkInfo | COFF_SectionFlag_LnkOther | COFF_SectionFlag_LnkRemove | COFF_SectionFlag_LnkNRelocOvfl) diff --git a/src/coff/coff_obj_writer.c b/src/coff/coff_obj_writer.c index 20caa69d..9d715603 100644 --- a/src/coff/coff_obj_writer.c +++ b/src/coff/coff_obj_writer.c @@ -17,7 +17,7 @@ coff_obj_writer_release(COFF_ObjWriter **obj_writer) } internal COFF_ObjSymbol * -coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSection *section, COFF_SymbolType type, COFF_SymStorageClass storage_class) +coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_SymbolLocation loc, COFF_SymbolType type, COFF_SymStorageClass storage_class) { COFF_ObjSymbolNode *n = push_array(obj_writer->arena, COFF_ObjSymbolNode, 1); SLLQueuePush(obj_writer->symbol_first, obj_writer->symbol_last, n); @@ -26,7 +26,7 @@ coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSymbol *s = &n->v; s->name = name; s->value = value; - s->section = section; + s->loc = loc; s->type = type; s->storage_class = storage_class; s->idx = obj_writer->symbol_count-1; @@ -35,16 +35,41 @@ coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer, String8 name, U32 value, } internal COFF_ObjSymbol * -coff_obj_writer_push_symbol_static(COFF_ObjWriter *obj_writer, String8 name, U32 off, COFF_ObjSection *section) +coff_obj_writer_push_symbol_external(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSection *section) { - COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, off, section, (COFF_SymbolType){0}, COFF_SymStorageClass_Static); + COFF_SymbolLocation loc = {0}; + loc.type = COFF_SymbolLocation_Section; + loc.u.section = section; + COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, value, loc, (COFF_SymbolType){0}, COFF_SymStorageClass_External); return s; } internal COFF_ObjSymbol * -coff_obj_writer_push_symbol_abs(COFF_ObjWriter *obj_writer, String8 name, COFF_SymStorageClass storage_class, U32 value) +coff_obj_writer_push_symbol_static(COFF_ObjWriter *obj_writer, String8 name, U32 off, COFF_ObjSection *section) { - COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, value, 0, (COFF_SymbolType){0}, storage_class); + COFF_SymbolLocation loc = {0}; + loc.type = COFF_SymbolLocation_Section; + loc.u.section = section; + COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, off, loc, (COFF_SymbolType){0}, COFF_SymStorageClass_Static); + return s; +} + +internal COFF_ObjSymbol * +coff_obj_writer_push_symbol_abs(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_SymStorageClass storage_class) +{ + COFF_SymbolLocation loc = {0}; + loc.type = COFF_SymbolLocation_Abs; + COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, value, loc, (COFF_SymbolType){0}, storage_class); + return s; +} + +internal COFF_ObjSymbol * +coff_obj_writer_push_symbol_undef(COFF_ObjWriter *obj_writer, String8 name) +{ + COFF_SymbolType type = {0}; + COFF_SymbolLocation loc = {0}; + loc.type = COFF_SymbolLocation_Undef; + COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, 0, loc, type, COFF_SymStorageClass_External); return s; } @@ -53,7 +78,34 @@ coff_obj_writer_push_symbol_undef_func(COFF_ObjWriter *obj_writer, String8 name) { COFF_SymbolType type = {0}; type.u.msb = COFF_SymDType_Func; - COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, 0, 0, type, COFF_SymStorageClass_External); + COFF_SymbolLocation loc = {0}; + loc.type = COFF_SymbolLocation_Undef; + COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, 0, loc, type, COFF_SymStorageClass_External); + return s; +} + +internal COFF_ObjSymbol * +coff_obj_writer_push_symbol_undef_sect(COFF_ObjWriter *obj_writer, String8 name, U32 value) +{ + COFF_SymbolType type = {0}; + COFF_SymbolLocation loc = {0}; + loc.type = COFF_SymbolLocation_Undef; + COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, value, loc, type, COFF_SymStorageClass_Section); + return s; +} + +internal COFF_ObjSymbol * +coff_obj_writer_push_symbol_sect(COFF_ObjWriter *obj_writer, String8 name, COFF_ObjSection *sect) +{ + COFF_SymbolType type = {0}; + COFF_SymbolLocation loc = {0}; + loc.type = COFF_SymbolLocation_Section; + loc.u.section = sect; + + // strip align flags + COFF_SectionFlags expected_flags = sect->flags & ~(COFF_SectionFlag_AlignMask << COFF_SectionFlag_AlignShift); + + COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, expected_flags, loc, type, COFF_SymStorageClass_Section); return s; } @@ -67,7 +119,6 @@ coff_obj_writer_push_section(COFF_ObjWriter *obj_writer, String8 name, COFF_Sect COFF_ObjSection *sect = §_n->v; sect->name = name; sect->flags = flags; - sect->symbol = coff_obj_writer_push_symbol_static(obj_writer, name, 0, sect); str8_list_push(obj_writer->arena, §->data, data); @@ -234,10 +285,11 @@ coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer) AssertAlways(s->aux_symbols.node_count <= max_U8); d->name = name; d->value = s->value; - if (s->section == 0) { - d->section_number = COFF_Symbol_AbsSection16; - } else { - d->section_number = safe_cast_u16(s->section->section_number); + switch (s->loc.type) { + case COFF_SymbolLocation_Null: break; + case COFF_SymbolLocation_Section: d->section_number = safe_cast_u16(s->loc.u.section->section_number); break; + case COFF_SymbolLocation_Abs: d->section_number = COFF_Symbol_AbsSection16; break; + case COFF_SymbolLocation_Undef: d->section_number = COFF_Symbol_UndefinedSection; break; } d->type = s->type; d->storage_class = s->storage_class; diff --git a/src/coff/coff_obj_writer.h b/src/coff/coff_obj_writer.h index 67297401..9a85357c 100644 --- a/src/coff/coff_obj_writer.h +++ b/src/coff/coff_obj_writer.h @@ -1,11 +1,27 @@ #ifndef COFF_OBJ_WRITER_H #define COFF_OBJ_WRITER_H +typedef enum +{ + COFF_SymbolLocation_Null, + COFF_SymbolLocation_Section, + COFF_SymbolLocation_Abs, + COFF_SymbolLocation_Undef +} COFF_SymbolLocationType; + +typedef struct COFF_SymbolLocation +{ + COFF_SymbolLocationType type; + union { + struct COFF_ObjSection *section; + } u; +} COFF_SymbolLocation; + typedef struct COFF_ObjSymbol { String8 name; U32 value; - struct COFF_ObjSection *section; + COFF_SymbolLocation loc; COFF_SymbolType type; COFF_SymStorageClass storage_class; String8List aux_symbols; @@ -36,7 +52,6 @@ typedef struct COFF_ObjSection String8 name; String8List data; COFF_SectionFlags flags; - COFF_ObjSymbol *symbol; U64 reloc_count; COFF_ObjRelocNode *reloc_first; @@ -71,7 +86,7 @@ typedef struct COFF_ObjWriter internal COFF_ObjWriter* coff_obj_writer_alloc(COFF_TimeStamp time_stamp, COFF_MachineType machine_type); internal void coff_obj_writer_release(COFF_ObjWriter **obj_writer); internal COFF_ObjSection* coff_obj_writer_push_section(COFF_ObjWriter *obj_writer, String8 name, COFF_SectionFlags flags, String8 data); -internal COFF_ObjSymbol* coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSection *section, COFF_SymbolType type, COFF_SymStorageClass storage_class); +internal COFF_ObjSymbol* coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_SymbolLocation loc, COFF_SymbolType type, COFF_SymStorageClass storage_class); internal COFF_ObjReloc* coff_obj_writer_section_push_reloc(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol, COFF_RelocType reloc_type); #endif // COFF_OBJ_WRITER_H diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 436dcf44..a89acec9 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -121,6 +121,7 @@ #include "lnk_reloc.h" #include "lnk_symbol_table.h" #include "lnk_section_table.h" +#include "lnk_debug_helper.h" #include "lnk_obj.h" #include "lnk_import_table.h" #include "lnk_export_table.h" @@ -139,6 +140,7 @@ #include "lnk_symbol_table.c" #include "lnk_section_table.c" #include "lnk_obj.c" +#include "lnk_debug_helper.c" #include "lnk_import_table.c" #include "lnk_export_table.c" #include "lnk_lib.c" @@ -763,27 +765,16 @@ lnk_make_linker_coff_obj(Arena *arena, { Temp scratch = scratch_begin(&arena, 1); - String8 debug_s_data = {0}; + String8 debug_symbols = {0}; { - CV_SymbolList symbol_list = {0}; - symbol_list.signature = CV_Signature_C13; + CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; // S_OBJ String8 obj_data = cv_make_obj_name(scratch.arena, obj_name, 0); cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_OBJNAME, obj_data); // S_COMPILE3 - CV_Arch cv_arch = cv_arch_from_coff_machine(machine); - U64 ver_fe_major = 0; - U64 ver_fe_minor = 0; - U64 ver_fe_build = 0; - U64 ver_feqfe = 0; - U64 ver_major = 14; - U64 ver_minor = 36; - U64 ver_build = 32537; - U64 ver_qfe = 0; - String8 version_string = push_str8f(scratch.arena, "Epic Games Tools (R) RAD Linker"); - String8 comp3_data = cv_make_comp3(scratch.arena, 0, CV_Language_LINK, cv_arch, ver_fe_major, ver_fe_minor, ver_fe_build, ver_feqfe, ver_major, ver_minor, ver_build, ver_qfe, version_string); + String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); // S_ENVBLOCK @@ -798,28 +789,18 @@ lnk_make_linker_coff_obj(Arena *arena, str8_list_push(scratch.arena, &env_list, cmd_line); str8_list_push(scratch.arena, &env_list, str8_lit("")); str8_list_push(scratch.arena, &env_list, str8_lit("")); - String8 env_data = cv_make_envblock(scratch.arena, env_list); - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_ENVBLOCK, env_data); + cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_ENVBLOCK, cv_make_envblock(scratch.arena, env_list)); // TODO: emit S_SECTION and S_COFFGROUP // TODO: emit S_TRAMPOLINE - String8List symbol_data_list = cv_data_from_symbol_list(scratch.arena, symbol_list, CV_SymbolAlign); - - CV_DebugS debug_s = {0}; - - String8List *symbols_list_ptr = cv_sub_section_ptr_from_debug_s(&debug_s, CV_C13SubSectionKind_Symbols); - *symbols_list_ptr = symbol_data_list; - - B32 include_sig = 1; - String8List debug_s_data_list = cv_data_c13_from_debug_s(scratch.arena, &debug_s, include_sig); - debug_s_data = str8_list_join(scratch.arena, &debug_s_data_list, 0); + debug_symbols = lnk_make_debug_s(scratch.arena, symbol_list); } String8 obj; { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); - coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS, debug_s_data); + coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); obj = coff_obj_writer_serialize(arena, obj_writer); coff_obj_writer_release(&obj_writer); } diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 1a146b2a..ba3e3281 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -89,8 +89,8 @@ #define LNK_IDATA_SECTION_FLAGS LNK_DATA_SECTION_FLAGS #define LNK_DEBUG_DIR_SECTION_FLAGS LNK_DATA_SECTION_FLAGS #define LNK_RSRC_SECTION_FLAGS LNK_DATA_SECTION_FLAGS -#define LNK_RSRC1_SECTION_FLAGS (LNK_DATA_SECTION_FLAGS | COFF_SectionFlags_PackAlign(COFF_SectionAlign_4Bytes)) -#define LNK_RSRC2_SECTION_FLAGS (LNK_DATA_SECTION_FLAGS | COFF_SectionFlags_PackAlign(COFF_SectionAlign_4Bytes)) +#define LNK_RSRC1_SECTION_FLAGS (LNK_DATA_SECTION_FLAGS | COFF_SectionFlag_Align4Bytes) +#define LNK_RSRC2_SECTION_FLAGS (LNK_DATA_SECTION_FLAGS | COFF_SectionFlag_Align4Bytes) #define LNK_XDATA_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS #define LNK_PDATA_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS #define LNK_EDATA_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS diff --git a/src/linker/lnk_lib.c b/src/linker/lnk_lib.c index d8b9c37b..a884bba8 100644 --- a/src/linker/lnk_lib.c +++ b/src/linker/lnk_lib.c @@ -536,352 +536,143 @@ lnk_build_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, return lib; } -internal String8List -lnk_build_import_entry_obj(Arena *arena, String8 dll_name, COFF_MachineType machine) +internal String8 +lnk_build_import_entry_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine) { ProfBeginFunction(); + Temp scratch = scratch_begin(&arena, 1); Assert(machine == COFF_MachineType_X64); Assert(str8_match_lit("dll", str8_skip_last_dot(dll_name), StringMatchFlag_CaseInsensitive|StringMatchFlag_RightSideSloppy)); - - String8List list = {0}; - - COFF_FileHeader *file_header = push_array(arena, COFF_FileHeader, 1); - file_header->machine = machine; - str8_list_push(arena, &list, str8_struct(file_header)); - - file_header->section_count = 2; - COFF_SectionHeader *coff_sect_header_array = push_array(arena, COFF_SectionHeader, file_header->section_count); - str8_list_push(arena, &list, str8_array(coff_sect_header_array, file_header->section_count)); - - PE_ImportEntry *import_entry = push_array(arena, PE_ImportEntry, 1); - U64 import_entry_off = list.total_size; - str8_list_push(arena, &list, str8_struct(import_entry)); - - String8 dll_name_cstr = push_cstr(arena, dll_name); - U64 dll_name_off = list.total_size; - str8_list_push(arena, &list, dll_name_cstr); - - U32 import_entry_reloc_count = 3; - COFF_Reloc *import_entry_reloc_array = push_array(arena, COFF_Reloc, import_entry_reloc_count); - U64 import_entry_reloc_off = list.total_size; - str8_list_push(arena, &list, str8_array(import_entry_reloc_array, import_entry_reloc_count)); - - file_header->symbol_count = 7; - COFF_Symbol16 *symbol_array = push_array(arena, COFF_Symbol16, file_header->symbol_count); - file_header->symbol_table_foff = safe_cast_u32(list.total_size); - str8_list_push(arena, &list, str8_array(symbol_array, file_header->symbol_count)); - - U64 string_table_base = list.total_size; - U32 *string_table_size_ptr = push_array(arena, U32, 1); - str8_list_push(arena, &list, str8_struct(string_table_size_ptr)); - - // PE_ImportEntry + + String8 dll_name_no_ext = str8_chop_last_dot(dll_name); + + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); + + String8 debug_symbols; { - COFF_SectionHeader *sect = &coff_sect_header_array[0]; - sect->name[0] = '.'; - sect->name[1] = 'i'; - sect->name[2] = 'd'; - sect->name[3] = 'a'; - sect->name[4] = 't'; - sect->name[5] = 'a'; - sect->name[6] = '$'; - sect->name[7] = '2'; - sect->fsize = sizeof(PE_ImportEntry); - sect->foff = import_entry_off; - sect->reloc_count = import_entry_reloc_count; - sect->relocs_foff = import_entry_reloc_off; - sect->flags = COFF_SectionFlag_CntInitializedData|(COFF_SectionAlign_4Bytes << COFF_SectionFlag_AlignShift)|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite; + CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; + String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); + cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); + debug_symbols = lnk_make_debug_s(obj_writer->arena, symbol_list); } + + String8 dll_name_cstr = push_cstr(obj_writer->arena, dll_name); + COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + COFF_ObjSection *idata2 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$2"), LNK_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_zero()); + COFF_ObjSection *idata6 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$6"), LNK_DATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); + + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@comp.id"), 0x1018175, COFF_SymStorageClass_Static); { - COFF_Reloc *lookup_table_voff_reloc = &import_entry_reloc_array[0]; - lookup_table_voff_reloc->apply_off = OffsetOf(PE_ImportEntry, lookup_table_voff); - lookup_table_voff_reloc->isymbol = 3; - lookup_table_voff_reloc->type = COFF_Reloc_X64_Addr32Nb; - - COFF_Reloc *name_voff_reloc = &import_entry_reloc_array[1]; - name_voff_reloc->apply_off = OffsetOf(PE_ImportEntry, name_voff); - name_voff_reloc->isymbol = 2; - name_voff_reloc->type = COFF_Reloc_X64_Addr32Nb; - - COFF_Reloc *import_addr_table_voff = &import_entry_reloc_array[2]; - import_addr_table_voff->apply_off = OffsetOf(PE_ImportEntry, import_addr_table_voff); - import_addr_table_voff->isymbol = 4; - import_addr_table_voff->type = COFF_Reloc_X64_Addr32Nb; - } - - // dll name - { - COFF_SectionHeader *sect = &coff_sect_header_array[1]; - sect->name[0] = '.'; - sect->name[1] = 'i'; - sect->name[2] = 'd'; - sect->name[3] = 'a'; - sect->name[4] = 't'; - sect->name[5] = 'a'; - sect->name[6] = '$'; - sect->name[7] = '6'; - sect->fsize = dll_name_cstr.size; - sect->foff = dll_name_off; - sect->flags = COFF_SectionFlag_CntInitializedData|(COFF_SectionAlign_2Bytes << COFF_SectionFlag_AlignShift)|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite; - } - - // import descriptor - { - String8 dll_name_no_ext = str8_substr(dll_name, r1u64(0, dll_name.size - 4)); String8 symbol_name = push_str8f(arena, "__IMPORT_DESCRIPTOR_%S", dll_name_no_ext); - - U64 symbol_name_off = (list.total_size - string_table_base); - str8_list_push(arena, &list, push_cstr(arena, symbol_name)); - - COFF_Symbol16 *symbol = &symbol_array[0]; - symbol->name.long_name.zeroes = 0; - symbol->name.long_name.string_table_offset = symbol_name_off; - symbol->section_number = 1; - symbol->storage_class = COFF_SymStorageClass_External; + coff_obj_writer_push_symbol_external(obj_writer, symbol_name, 0, idata2); } - - // .idata$2 + COFF_ObjSymbol *idata2_symbol = coff_obj_writer_push_symbol_sect(obj_writer, idata2->name, idata2); + COFF_ObjSymbol *idata6_symbol = coff_obj_writer_push_symbol_static(obj_writer, idata6->name, 0, idata6); + COFF_ObjSymbol *idata4_symbol = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".idata$4"), COFF_SectionFlag_MemWrite|COFF_SectionFlag_MemRead|COFF_SectionFlag_CntInitializedData); + COFF_ObjSymbol *idata5_symbol = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".idata$5"), COFF_SectionFlag_MemWrite|COFF_SectionFlag_MemRead|COFF_SectionFlag_CntInitializedData); + coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__NULL_IMPORT_DESCRIPTOR")); { - COFF_Symbol16 *symbol = &symbol_array[1]; - symbol->name.short_name[0] = '.'; - symbol->name.short_name[1] = 'i'; - symbol->name.short_name[2] = 'd'; - symbol->name.short_name[3] = 'a'; - symbol->name.short_name[4] = 't'; - symbol->name.short_name[5] = 'a'; - symbol->name.short_name[6] = '$'; - symbol->name.short_name[7] = '2'; - symbol->section_number = 1; - symbol->storage_class = COFF_SymStorageClass_Section; - } - - // .idata$6 - { - COFF_Symbol16 *symbol = &symbol_array[2]; - symbol->name.short_name[0] = '.'; - symbol->name.short_name[1] = 'i'; - symbol->name.short_name[2] = 'd'; - symbol->name.short_name[3] = 'a'; - symbol->name.short_name[4] = 't'; - symbol->name.short_name[5] = 'a'; - symbol->name.short_name[6] = '$'; - symbol->name.short_name[7] = '6'; - symbol->section_number = 2; - symbol->storage_class = COFF_SymStorageClass_Static; - } - - // .idata$4 - { - COFF_Symbol16 *symbol = &symbol_array[3]; - symbol->name.short_name[0] = '.'; - symbol->name.short_name[1] = 'i'; - symbol->name.short_name[2] = 'd'; - symbol->name.short_name[3] = 'a'; - symbol->name.short_name[4] = 't'; - symbol->name.short_name[5] = 'a'; - symbol->name.short_name[6] = '$'; - symbol->name.short_name[7] = '4'; - symbol->section_number = COFF_Symbol_UndefinedSection; - symbol->storage_class = COFF_SymStorageClass_Section; - } - - // .idata$5 - { - COFF_Symbol16 *symbol = &symbol_array[4]; - symbol->name.short_name[0] = '.'; - symbol->name.short_name[1] = 'i'; - symbol->name.short_name[2] = 'd'; - symbol->name.short_name[3] = 'a'; - symbol->name.short_name[4] = 't'; - symbol->name.short_name[5] = 'a'; - symbol->name.short_name[6] = '$'; - symbol->name.short_name[7] = '5'; - symbol->section_number = COFF_Symbol_UndefinedSection; - symbol->storage_class = COFF_SymStorageClass_Section; - } - - // __NULL_IMPORT_DESCRIPTOR - { - U64 symbol_name_off = (list.total_size - string_table_base); - str8_list_push(arena, &list, push_cstr(arena, str8_lit("__NULL_IMPORT_DESCRIPTOR"))); - - COFF_Symbol16 *symbol = &symbol_array[5]; - symbol->name.long_name.zeroes = 0; - symbol->name.long_name.string_table_offset = symbol_name_off; - symbol->section_number = COFF_Symbol_UndefinedSection; - symbol->storage_class = COFF_SymStorageClass_External; - } - - // NULL_THUNK_DATA - { - String8 dll_name_no_ext = str8_substr(dll_name, r1u64(0, dll_name.size - 4)); String8 symbol_name = push_str8f(arena, "\x7f%S_NULL_THUNK_DATA", dll_name_no_ext); - - U64 symbol_name_off = (list.total_size - string_table_base); - str8_list_push(arena, &list, push_cstr(arena, symbol_name)); - - COFF_Symbol16 *symbol = &symbol_array[6]; - symbol->name.long_name.zeroes = 0; - symbol->name.long_name.string_table_offset = symbol_name_off; - symbol->section_number = COFF_Symbol_UndefinedSection; - symbol->storage_class = COFF_SymStorageClass_External; + coff_obj_writer_push_symbol_undef(obj_writer, symbol_name); } - - // update string table size - *string_table_size_ptr = (list.total_size - string_table_base); - + + { + PE_ImportEntry *import_entry = push_array(obj_writer->arena, PE_ImportEntry, 1); + str8_list_push(obj_writer->arena, &idata2->data, str8_struct(import_entry)); + coff_obj_writer_section_push_reloc(obj_writer, idata2, OffsetOf(PE_ImportEntry, name_voff), idata6_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, idata2, OffsetOf(PE_ImportEntry, lookup_table_voff), idata4_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, idata2, OffsetOf(PE_ImportEntry, import_addr_table_voff), idata5_symbol, COFF_Reloc_X64_Addr32Nb); + } + + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + + coff_obj_writer_release(&obj_writer); + + scratch_end(scratch); ProfEnd(); - return list; + return obj; } -internal String8List -lnk_build_null_import_descriptor_obj(Arena *arena, COFF_MachineType machine) +internal String8 +lnk_build_null_import_descriptor_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine) { ProfBeginFunction(); - - String8List list = {0}; - - COFF_FileHeader *coff_header = push_array(arena, COFF_FileHeader, 1); - coff_header->machine = machine; - str8_list_push(arena, &list, str8_struct(coff_header)); - - coff_header->section_count = 1; - COFF_SectionHeader *coff_sect_header_array = push_array(arena, COFF_SectionHeader, coff_header->section_count); - str8_list_push(arena, &list, str8_array(coff_sect_header_array, coff_header->section_count)); - - U64 null_import_data_size = 20; - U8 *null_import_data = push_array(arena, U8, null_import_data_size); - U64 null_import_data_off = list.total_size; - str8_list_push(arena, &list, str8(null_import_data, null_import_data_size)); - - coff_header->symbol_count = 1; - COFF_Symbol16 *symbol_array = push_array(arena, COFF_Symbol16, coff_header->symbol_count); - coff_header->symbol_table_foff = safe_cast_u32(list.total_size); - str8_list_push(arena, &list, str8_array(symbol_array, coff_header->symbol_count)); - - U64 string_table_base = list.total_size; - U32 *string_table_size_ptr = push_array(arena, U32, 1); - str8_list_push(arena, &list, str8_struct(string_table_size_ptr)); - + Temp scratch = scratch_begin(&arena, 1); + + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); + + String8 debug_symbols; { - COFF_SectionHeader *sect = &coff_sect_header_array[0]; - sect->name[0] = '.'; - sect->name[1] = 'i'; - sect->name[2] = 'd'; - sect->name[3] = 'a'; - sect->name[4] = 't'; - sect->name[5] = 'a'; - sect->name[6] = '$'; - sect->name[7] = '3'; - sect->fsize = null_import_data_size; - sect->foff = null_import_data_off; - sect->flags = COFF_SectionFlag_CntInitializedData|(COFF_SectionAlign_4Bytes << COFF_SectionFlag_AlignShift)|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite; + CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; + String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); + cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); + debug_symbols = lnk_make_debug_s(obj_writer->arena, symbol_list); } - - { - U64 symbol_name_off = list.total_size - string_table_base; - str8_list_push(arena, &list, push_cstr(arena, str8_lit("__NULL_IMPORT_DESCRIPTOR"))); - - COFF_Symbol16 *symbol = &symbol_array[0]; - symbol->name.long_name.zeroes = 0; - symbol->name.long_name.string_table_offset = symbol_name_off; - symbol->section_number = 1; - symbol->storage_class = COFF_SymStorageClass_External; - } - - // update string table size - *string_table_size_ptr = (list.total_size - string_table_base); - + + PE_ImportEntry *import_desc = push_array(obj_writer->arena, PE_ImportEntry, 1); + COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + COFF_ObjSection *idata3 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$3"), LNK_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(import_desc)); + + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@comp.id"), 0x01018175, COFF_SymStorageClass_Static); + coff_obj_writer_push_symbol_external(obj_writer, str8_lit("__NULL_IMPORT_DESCRIPTOR"), 0, idata3); + + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + + coff_obj_writer_release(&obj_writer); + + scratch_end(scratch); ProfEnd(); - return list; + return obj; } -internal String8List -lnk_build_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_MachineType machine) +internal String8 +lnk_build_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine) { ProfBeginFunction(); + Temp scratch = scratch_begin(&arena, 1); Assert(str8_match_lit("dll", str8_skip_last_dot(dll_name), StringMatchFlag_CaseInsensitive|StringMatchFlag_RightSideSloppy)); - - String8List list = {0}; - - COFF_FileHeader *coff_header = push_array(arena, COFF_FileHeader, 1); - coff_header->machine = machine; - str8_list_push(arena, &list, str8_struct(coff_header)); - - coff_header->section_count = 2; - COFF_SectionHeader *coff_sect_header_array = push_array(arena, COFF_SectionHeader, coff_header->section_count); - str8_list_push(arena, &list, str8_array(coff_sect_header_array, coff_header->section_count)); - - U64 lookup_entry_data_size = 8; - U8 *lookup_entry_data = push_array(arena, U8, lookup_entry_data_size); - U64 lookup_entry_data_off = list.total_size; - str8_list_push(arena, &list, str8(lookup_entry_data, lookup_entry_data_size)); - - U64 null_thunk_data_size = 8; - U8 *null_thunk_data = push_array(arena, U8, null_thunk_data_size); - U64 null_thunk_data_off = list.total_size; - str8_list_push(arena, &list, str8(null_thunk_data, null_thunk_data_size)); - - coff_header->symbol_count = 1; - COFF_Symbol16 *symbol_array = push_array(arena, COFF_Symbol16, coff_header->symbol_count); - coff_header->symbol_table_foff = safe_cast_u32(list.total_size); - str8_list_push(arena, &list, str8_array(symbol_array, coff_header->symbol_count)); - - U64 string_table_base = list.total_size; - U32 *string_table_size_ptr = push_array(arena, U32, 1); - str8_list_push(arena, &list, str8_struct(string_table_size_ptr)); - + + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); + + String8 debug_symbols; { - COFF_SectionHeader *sect = &coff_sect_header_array[0]; - sect->name[0] = '.'; - sect->name[1] = 'i'; - sect->name[2] = 'd'; - sect->name[3] = 'a'; - sect->name[4] = 't'; - sect->name[5] = 'a'; - sect->name[6] = '$'; - sect->name[7] = '5'; - sect->fsize = lookup_entry_data_size; - sect->foff = lookup_entry_data_off; - sect->flags = COFF_SectionFlag_CntInitializedData | (COFF_SectionAlign_8Bytes << COFF_SectionFlag_AlignShift)|(COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite); + CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; + String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); + cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); + debug_symbols = lnk_make_debug_s(obj_writer->arena, symbol_list); } - + + COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + COFF_ObjSection *idata4 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$4"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite, str8_zero()); + COFF_ObjSection *idata5 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$5"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite, str8_zero()); + + U64 import_size = coff_word_size_from_machine(machine); + + U8 *null_thunk = push_array(obj_writer->arena, U8, import_size); + U8 *null_lookup = push_array(obj_writer->arena, U8, import_size); + + str8_list_push(obj_writer->arena, &idata5->data, str8_array(null_thunk, import_size)); + str8_list_push(obj_writer->arena, &idata4->data, str8_array(null_lookup, import_size)); + + idata4->flags |= coff_section_flag_from_align_size(import_size); + idata5->flags |= coff_section_flag_from_align_size(import_size); + + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@comp.id"), 0x1018175, COFF_SymStorageClass_Static); { - COFF_SectionHeader *sect = &coff_sect_header_array[1]; - sect->name[0] = '.'; - sect->name[1] = 'i'; - sect->name[2] = 'd'; - sect->name[3] = 'a'; - sect->name[4] = 't'; - sect->name[5] = 'a'; - sect->name[6] = '$'; - sect->name[7] = '4'; - sect->fsize = null_thunk_data_size; - sect->foff = null_thunk_data_off; - sect->flags = COFF_SectionFlag_CntInitializedData|(COFF_SectionAlign_8Bytes << COFF_SectionFlag_AlignShift)|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite; - } - - { - String8 dll_name_no_ext = str8_substr(dll_name, r1u64(0, dll_name.size - 4)); + String8 dll_name_no_ext = str8_chop_last_dot(dll_name); String8 symbol_name = push_str8f(arena, "\x7f%S_NULL_THUNK_DATA", dll_name_no_ext); - - U64 symbol_name_off = list.total_size - string_table_base; - str8_list_push(arena, &list, push_cstr(arena, symbol_name)); - - COFF_Symbol16 *symbol = &symbol_array[0]; - symbol->name.long_name.zeroes = 0; - symbol->name.long_name.string_table_offset = symbol_name_off; - symbol->section_number = 1; - symbol->storage_class = COFF_SymStorageClass_External; + coff_obj_writer_push_symbol_external(obj_writer, symbol_name, 0, idata5); } + + String8 obj = coff_obj_writer_serialize(arena, obj_writer); - // update string table size - *string_table_size_ptr = (list.total_size - string_table_base); - + coff_obj_writer_release(&obj_writer); + + scratch_end(scratch); ProfEnd(); - return list; + return obj; } internal String8 @@ -924,28 +715,28 @@ lnk_build_import_lib(TP_Context *tp, TP_Arena *arena, COFF_MachineType machine, // These objects appear in first three members of any lib that linker produces with /dll. // Objects are used by MSVC linker to build import table. - String8List import_obj_array[3]; - import_obj_array[0] = lnk_build_import_entry_obj(scratch.arena, dll_name, machine); - import_obj_array[1] = lnk_build_null_import_descriptor_obj(scratch.arena, machine); - import_obj_array[2] = lnk_build_null_thunk_data_obj(scratch.arena, dll_name, machine); + String8 import_obj_array[3]; + import_obj_array[0] = lnk_build_import_entry_obj(scratch.arena, dll_name, time_stamp, machine); + import_obj_array[1] = lnk_build_null_import_descriptor_obj(scratch.arena, time_stamp, machine); + import_obj_array[2] = lnk_build_null_thunk_data_obj(scratch.arena, dll_name, time_stamp, machine); // build input list LNK_InputObjList input_obj_list = {0}; for (U64 i = 0; i < ArrayCount(import_obj_array); ++i) { LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); - input->data = str8_list_join(scratch.arena, &import_obj_array[i], 0); + input->data = import_obj_array[i]; input->path = dll_name; input->lib_path = lib_name; } LNK_InputObj **inputs = lnk_array_from_input_obj_list(scratch.arena, input_obj_list); - LNK_SectionTable *sectab = lnk_section_table_alloc(0,0,0); + LNK_SectionTable *sectab = lnk_section_table_alloc(0,0,0); LNK_ObjList obj_list = {0}; lnk_obj_list_push_parallel(tp, arena, &obj_list, sectab, 0, machine, input_obj_list.count, inputs); LNK_LibBuild import_lib = lnk_build_lib(scratch.arena, machine, time_stamp, dll_name, obj_list, exptab); - B32 emit_second_member = 0; // MSVC linker refuses to link with lib that has the second member. - String8List coff_archive_data = lnk_coff_archive_from_lib_build(arena->v[0], &import_lib, emit_second_member, time_stamp, /* -rw-r--r-- */ 644); + B32 emit_second_member = 1; + String8List coff_archive_data = lnk_coff_archive_from_lib_build(arena->v[0], &import_lib, emit_second_member, COFF_TimeStamp_Max, 0); // cleanup memory lnk_section_table_release(§ab); diff --git a/src/linker/lnk_lib.h b/src/linker/lnk_lib.h index af87ae84..2c07ec1e 100644 --- a/src/linker/lnk_lib.h +++ b/src/linker/lnk_lib.h @@ -128,9 +128,9 @@ internal String8List lnk_coff_archive_from_lib_build(Arena *arena, LNK_LibBu //////////////////////////////// internal LNK_LibBuild lnk_build_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ObjList obj_list, LNK_ExportTable *exptab); -internal String8List lnk_build_import_entry_obj(Arena *arena, String8 dll_name, COFF_MachineType machine); -internal String8List lnk_build_null_import_descriptor_obj(Arena *arena, COFF_MachineType machine); -internal String8List lnk_build_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_MachineType machine); +internal String8 lnk_build_import_entry_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine); +internal String8 lnk_build_null_import_descriptor_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine); +internal String8 lnk_build_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine); internal String8 lnk_build_lib_member_header(Arena *arena, String8 name, COFF_TimeStamp time_stamp, U16 user_id, U16 group_id, U16 mode, U32 size); internal String8List lnk_build_import_lib(TP_Context *tp, TP_Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 lib_name, String8 dll_name, LNK_ExportTable *exptab); diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 225f2491..b77d2d73 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -751,12 +751,17 @@ lnk_symbol_array_from_coff(Arena *arena, if (symbol.section_number == 0 || symbol.section_number > sect_count) { lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "out ouf bounds section index in symbol \"%S (%u)\"", symbol.name, symbol.section_number); } - if (symbol.value > section_table[symbol.section_number-1].fsize) { - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "out of bounds section offset in symbol \"%S (%u)\"", symbol.name, symbol.value); + + U32 section_offset = 0; + if (symbol.storage_class == COFF_SymStorageClass_External || symbol.storage_class == COFF_SymStorageClass_Static) { + section_offset = symbol.value; + } + if (section_offset > section_table[symbol.section_number-1].fsize) { + lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "out of bounds section offset in symbol \"%S (%u)\"", symbol.name, section_offset); } LNK_Chunk *chunk = chunk_table[symbol.section_number-1]; - if (symbol.value > 0) { + if (section_offset > 0) { // convert leaf to list // // there is no way to know up front how many splits we have, @@ -796,7 +801,7 @@ lnk_symbol_array_from_coff(Arena *arena, LNK_ChunkNode *current = chunk->u.list->last; for (LNK_ChunkNode *c = chunk->u.list->first; c != 0; c = c->next) { Assert(c->data->type == LNK_Chunk_Leaf); - if (offset_cursor + c->data->u.leaf.size >= symbol.value) { + if (offset_cursor + c->data->u.leaf.size >= section_offset) { current = c; break; } @@ -804,9 +809,9 @@ lnk_symbol_array_from_coff(Arena *arena, } Assert(current->data->type == LNK_Chunk_Leaf); - if (offset_cursor < symbol.value) { + if (offset_cursor < section_offset) { // bifurcate chunk at symbol offset - U64 split_pos = symbol.value - offset_cursor; + U64 split_pos = section_offset - offset_cursor; Rng1U64 left_data_range = rng_1u64(0, split_pos); Rng1U64 right_data_range = rng_1u64(left_data_range.max, current->data->u.leaf.size); String8 left_data = str8_substr(current->data->u.leaf, left_data_range); @@ -865,142 +870,147 @@ lnk_symbol_array_from_coff(Arena *arena, COFF_SymbolValueInterpType interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); switch (interp) { - case COFF_SymbolValueInterp_Regular: { - if (parsed_symbol.section_number == 0 || parsed_symbol.section_number > sect_count) { - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "symbol %S (No. %llx) has out ouf bounds section index %x", parsed_symbol.name, symbol_idx, parsed_symbol.section_number); - } - if (parsed_symbol.value > section_table[parsed_symbol.section_number-1].fsize) { - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "symbol %S (No. %llx) has out of bounds section offset %x into section %x", parsed_symbol.name, symbol_idx, parsed_symbol.value, parsed_symbol.section_number); - } + case COFF_SymbolValueInterp_Regular: { + if (parsed_symbol.section_number == 0 || parsed_symbol.section_number > sect_count) { + lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "symbol %S (No. %llx) has out ouf bounds section index %x", parsed_symbol.name, symbol_idx, parsed_symbol.section_number); + } + + U32 section_offset = 0; + if (parsed_symbol.storage_class == COFF_SymStorageClass_External || + parsed_symbol.storage_class == COFF_SymStorageClass_Static) { + section_offset = parsed_symbol.value; + } + + if (section_offset > section_table[parsed_symbol.section_number-1].fsize) { + lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "symbol %S (No. %llx) has out of bounds section offset %x into section %x", parsed_symbol.name, symbol_idx, section_offset, parsed_symbol.section_number); + } + + LNK_DefinedSymbolVisibility visibility = LNK_DefinedSymbolVisibility_Static; + if (parsed_symbol.storage_class == COFF_SymStorageClass_External) { + visibility = LNK_DefinedSymbolVisibility_Extern; + } + LNK_DefinedSymbolFlags flags = 0; + if (COFF_SymbolType_IsFunc(parsed_symbol.type)) { + flags |= LNK_DefinedSymbolFlag_IsFunc; + } - LNK_DefinedSymbolVisibility visibility = LNK_DefinedSymbolVisibility_Static; - if (parsed_symbol.storage_class == COFF_SymStorageClass_External) { - visibility = LNK_DefinedSymbolVisibility_Extern; - } - LNK_DefinedSymbolFlags flags = 0; - if (COFF_SymbolType_IsFunc(parsed_symbol.type)) { - flags |= LNK_DefinedSymbolFlag_IsFunc; - } + LNK_Chunk *chunk = chunk_table[parsed_symbol.section_number-1]; + COFF_ComdatSelectType selection = COFF_ComdatSelect_Any; + U64 check_sum = 0; - LNK_Chunk *chunk = chunk_table[parsed_symbol.section_number-1]; - U64 offset = parsed_symbol.value; - COFF_ComdatSelectType selection = COFF_ComdatSelect_Any; - U64 check_sum = 0; + B32 is_comdat = (section_table[parsed_symbol.section_number-1].flags & COFF_SectionFlag_LnkCOMDAT) && + parsed_symbol.value == 0 && + parsed_symbol.aux_symbol_count > 0 && + parsed_symbol.type.u.lsb == COFF_SymType_Null && + parsed_symbol.storage_class == COFF_SymStorageClass_Static; + if (is_comdat) { + COFF_SymbolSecDef *secdef = aux_symbols; + selection = secdef->selection; + check_sum = secdef->check_sum; - B32 is_comdat = (section_table[parsed_symbol.section_number-1].flags & COFF_SectionFlag_LnkCOMDAT) && - parsed_symbol.value == 0 && - parsed_symbol.aux_symbol_count > 0 && - parsed_symbol.type.u.lsb == COFF_SymType_Null && - parsed_symbol.storage_class == COFF_SymStorageClass_Static; - if (is_comdat) { - COFF_SymbolSecDef *secdef = aux_symbols; + // create association link between chunks + if (secdef->selection == COFF_ComdatSelect_Associative) { + U32 secdef_number = secdef->number_lo; - selection = secdef->selection; - check_sum = secdef->check_sum; + // promote secdef number to 32 bits + if (is_big_obj) { + secdef_number |= (U32)secdef->number_hi << 16; + } - // create association link between chunks - if (secdef->selection == COFF_ComdatSelect_Associative) { - U32 secdef_number = secdef->number_lo; - - // promote secdef number to 32 bits - if (is_big_obj) { - secdef_number |= (U32)secdef->number_hi << 16; - } - - // associate chunks - if (secdef_number > 0 && secdef_number <= sect_count) { - LNK_Chunk *head_chunk = chunk_table[secdef_number-1]; - LNK_Chunk *associate_chunk = chunk_table[parsed_symbol.section_number-1]; - lnk_chunk_associate(head_chunk, associate_chunk); - } else { - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "symbol %S (No. %llx) has out of bounds section definition number %u", parsed_symbol.name, symbol_idx, secdef_number); - } + // associate chunks + if (secdef_number > 0 && secdef_number <= sect_count) { + LNK_Chunk *head_chunk = chunk_table[secdef_number-1]; + LNK_Chunk *associate_chunk = chunk_table[parsed_symbol.section_number-1]; + lnk_chunk_associate(head_chunk, associate_chunk); + } else { + lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "symbol %S (No. %llx) has out of bounds section definition number %u", parsed_symbol.name, symbol_idx, secdef_number); } } + } - if (chunk->type == LNK_Chunk_List) { - LNK_Chunk *closest_chunk = chunk->u.list->last->data; - U64 offset_cursor = 0; - for (LNK_ChunkNode *c = chunk->u.list->first; c != 0; c = c->next) { - if (offset_cursor + c->data->u.leaf.size > offset) { - closest_chunk = c->data; - break; - } - offset_cursor += c->data->u.leaf.size; + if (chunk->type == LNK_Chunk_List) { + LNK_Chunk *closest_chunk = chunk->u.list->last->data; + U64 offset_cursor = 0; + for (LNK_ChunkNode *c = chunk->u.list->first; c != 0; c = c->next) { + if (offset_cursor + c->data->u.leaf.size > section_offset) { + closest_chunk = c->data; + break; } - Assert(offset >= offset_cursor); - offset -= offset_cursor; - chunk = closest_chunk; + offset_cursor += c->data->u.leaf.size; } - Assert(chunk->type == LNK_Chunk_Leaf); + Assert(section_offset >= offset_cursor); + section_offset -= offset_cursor; + chunk = closest_chunk; + } + Assert(chunk->type == LNK_Chunk_Leaf); - lnk_init_defined_symbol_chunk(&symbol_array.v[symbol_idx], parsed_symbol.name, visibility, flags, chunk, offset, selection, check_sum); - symbol_array.v[symbol_idx].obj = obj; - } break; - case COFF_SymbolValueInterp_Weak: { - if (parsed_symbol.aux_symbol_count == 0) { - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "weak symbol \"%S (%u)\" must at least one aux symbol", parsed_symbol.name, symbol_idx); - } - - COFF_SymbolWeakExt *weak_ext = aux_symbols; - if (weak_ext->tag_index >= symbol_count) { - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "weak symbol \"%S (%u)\" points to out of bounds symbol", parsed_symbol.name, symbol_idx); - } + lnk_init_defined_symbol_chunk(&symbol_array.v[symbol_idx], parsed_symbol.name, visibility, flags, chunk, section_offset, selection, check_sum); + symbol_array.v[symbol_idx].obj = obj; + } break; + case COFF_SymbolValueInterp_Weak: { + if (parsed_symbol.aux_symbol_count == 0) { + lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "weak symbol \"%S (%u)\" must at least one aux symbol", parsed_symbol.name, symbol_idx); + } - LNK_Symbol *symbol = &symbol_array.v[symbol_idx]; - LNK_Symbol *fallback_symbol = &symbol_array.v[weak_ext->tag_index]; - lnk_init_weak_symbol(symbol, parsed_symbol.name, weak_ext->characteristics, fallback_symbol); + COFF_SymbolWeakExt *weak_ext = aux_symbols; + if (weak_ext->tag_index >= symbol_count) { + lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "weak symbol \"%S (%u)\" points to out of bounds symbol", parsed_symbol.name, symbol_idx); + } - symbol->obj = obj; - fallback_symbol->obj = obj; - } break; - case COFF_SymbolValueInterp_Undefined: { - LNK_Symbol *symbol = &symbol_array.v[symbol_idx]; - lnk_init_undefined_symbol(symbol, parsed_symbol.name, LNK_SymbolScopeFlag_Main); - symbol->obj = obj; - } break; - case COFF_SymbolValueInterp_Common: { - // :common_block - // - // TODO: sort chunks on size to reduce bss usage - LNK_Chunk *chunk = push_array(arena, LNK_Chunk, 1); - chunk->align = Min(32, u64_up_to_pow2(parsed_symbol.value)); // link.exe caps align at 32 bytes - chunk->type = LNK_Chunk_Leaf; - chunk->flags = master_common_block->flags; - chunk->u.leaf = str8(0, parsed_symbol.value); - chunk->obj = obj; - lnk_chunk_set_debugf(arena, chunk, "common block %S", parsed_symbol.name); - lnk_chunk_list_push(arena, master_common_block->u.list, chunk); + LNK_Symbol *symbol = &symbol_array.v[symbol_idx]; + LNK_Symbol *fallback_symbol = &symbol_array.v[weak_ext->tag_index]; + lnk_init_weak_symbol(symbol, parsed_symbol.name, weak_ext->characteristics, fallback_symbol); - LNK_DefinedSymbolFlags flags = 0; - if (COFF_SymbolType_IsFunc(parsed_symbol.type)) { - flags |= LNK_DefinedSymbolFlag_IsFunc; - } + symbol->obj = obj; + fallback_symbol->obj = obj; + } break; + case COFF_SymbolValueInterp_Undefined: { + LNK_Symbol *symbol = &symbol_array.v[symbol_idx]; + lnk_init_undefined_symbol(symbol, parsed_symbol.name, LNK_SymbolScopeFlag_Main); + symbol->obj = obj; + } break; + case COFF_SymbolValueInterp_Common: { + // :common_block + // + // TODO: sort chunks on size to reduce bss usage + LNK_Chunk *chunk = push_array(arena, LNK_Chunk, 1); + chunk->align = Min(32, u64_up_to_pow2(parsed_symbol.value)); // link.exe caps align at 32 bytes + chunk->type = LNK_Chunk_Leaf; + chunk->flags = master_common_block->flags; + chunk->u.leaf = str8(0, parsed_symbol.value); + chunk->obj = obj; + lnk_chunk_set_debugf(arena, chunk, "common block %S", parsed_symbol.name); + lnk_chunk_list_push(arena, master_common_block->u.list, chunk); - LNK_Symbol *symbol = &symbol_array.v[symbol_idx]; - lnk_init_defined_symbol_chunk(symbol, parsed_symbol.name, LNK_DefinedSymbolVisibility_Extern, flags, chunk, 0, COFF_ComdatSelect_Largest, 0); - symbol->obj = obj; - } break; - case COFF_SymbolValueInterp_Abs: { - // Never code or data, synthetic symbol. COFF spec says bits in value are used - // as flags in symbol @feat.00, other symbols like @comp.id and @vol.md are undocumented. - // LLVM uses undocumented mask 0x4800 on @feat.00 to tell if object was compiled with /guard:cf. + LNK_DefinedSymbolFlags flags = 0; + if (COFF_SymbolType_IsFunc(parsed_symbol.type)) { + flags |= LNK_DefinedSymbolFlag_IsFunc; + } - LNK_DefinedSymbolVisibility visibility = LNK_DefinedSymbolVisibility_Static; - if (parsed_symbol.storage_class == COFF_SymStorageClass_External) { - visibility = LNK_DefinedSymbolVisibility_Extern; - } + LNK_Symbol *symbol = &symbol_array.v[symbol_idx]; + lnk_init_defined_symbol_chunk(symbol, parsed_symbol.name, LNK_DefinedSymbolVisibility_Extern, flags, chunk, 0, COFF_ComdatSelect_Largest, 0); + symbol->obj = obj; + } break; + case COFF_SymbolValueInterp_Abs: { + // Never code or data, synthetic symbol. COFF spec says bits in value are used + // as flags in symbol @feat.00, other symbols like @comp.id and @vol.md are undocumented. + // LLVM uses undocumented mask 0x4800 on @feat.00 to tell if object was compiled with /guard:cf. - LNK_Symbol *symbol = &symbol_array.v[symbol_idx]; - lnk_init_defined_symbol_va(symbol, parsed_symbol.name, visibility, 0, parsed_symbol.value); - symbol->obj = obj; - } break; - case COFF_SymbolValueInterp_Debug: { - } break; + LNK_DefinedSymbolVisibility visibility = LNK_DefinedSymbolVisibility_Static; + if (parsed_symbol.storage_class == COFF_SymStorageClass_External) { + visibility = LNK_DefinedSymbolVisibility_Extern; + } + + LNK_Symbol *symbol = &symbol_array.v[symbol_idx]; + lnk_init_defined_symbol_va(symbol, parsed_symbol.name, visibility, 0, parsed_symbol.value); + symbol->obj = obj; + } break; + case COFF_SymbolValueInterp_Debug: { + } break; } } From 19a7ada1dc7b2ba3b12712956bd21127f884ac55 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 18 Apr 2025 15:35:16 -0700 Subject: [PATCH 051/372] make export table with COFF obj writer, partially converted import table to COFF obj writer --- src/coff/coff.c | 21 + src/coff/coff.h | 1 + src/coff/coff_obj_writer.c | 8 +- src/coff/coff_obj_writer.h | 4 +- src/linker/hash_table.c | 24 +- src/linker/hash_table.h | 1 + src/linker/lnk.c | 329 +++++++------ src/linker/lnk.h | 7 +- src/linker/lnk_error.h | 2 +- src/linker/lnk_export_table.c | 191 ++++---- src/linker/lnk_export_table.h | 2 +- src/linker/lnk_import_table.c | 859 ++++++++++++++++------------------ src/linker/lnk_import_table.h | 62 ++- src/linker/lnk_lib.c | 139 ------ src/linker/lnk_lib.h | 3 - src/linker/lnk_obj.c | 2 +- src/linker/lnk_symbol_table.c | 4 + src/linker/lnk_symbol_table.h | 1 + 18 files changed, 760 insertions(+), 900 deletions(-) diff --git a/src/coff/coff.c b/src/coff/coff.c index 81ec2bf8..5b65582a 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -205,6 +205,27 @@ coff_make_ordinal64(U16 hint) return ordinal; } +internal String8 +coff_ordinal_data_from_hint(Arena *arena, COFF_MachineType machine, U16 hint) +{ + String8 ordinal_data = {0}; + switch (machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X64: { + U64 *ordinal = push_array(arena, U64, 1); + *ordinal = coff_make_ordinal64(hint); + ordinal_data = str8_struct(ordinal); + } break; + case COFF_MachineType_X86: { + U32 *ordinal = push_array(arena, U32, 1); + *ordinal = coff_make_ordinal32(hint); + ordinal_data = str8_struct(ordinal); + } break; + default: { NotImplemented; } break; + } + return ordinal_data; +} + internal String8 coff_make_import_header_by_name(Arena *arena, String8 dll_name, diff --git a/src/coff/coff.h b/src/coff/coff.h index aa88b9b9..34475016 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -601,6 +601,7 @@ internal U64 coff_apply_size_from_reloc_x86(COFF_Reloc_X86 x); internal U32 coff_make_ordinal32(U16 hint); internal U64 coff_make_ordinal64(U16 hint); +internal String8 coff_ordinal_data_from_hint(Arena *arena, COFF_MachineType machine, U16 hint); internal String8 coff_make_import_lookup (Arena *arena, U16 hint, String8 name); internal String8 coff_make_import_header_by_name (Arena *arena, String8 dll_name, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 name, U16 hint, COFF_ImportType type); diff --git a/src/coff/coff_obj_writer.c b/src/coff/coff_obj_writer.c index 9d715603..d804e2cd 100644 --- a/src/coff/coff_obj_writer.c +++ b/src/coff/coff_obj_writer.c @@ -1,11 +1,11 @@ internal COFF_ObjWriter* -coff_obj_writer_alloc(COFF_TimeStamp time_stamp, COFF_MachineType machine_type) +coff_obj_writer_alloc(COFF_TimeStamp time_stamp, COFF_MachineType machine) { Arena *arena = arena_alloc(); COFF_ObjWriter *obj_writer = push_array(arena, COFF_ObjWriter, 1); obj_writer->arena = arena; obj_writer->time_stamp = time_stamp; - obj_writer->machine_type = machine_type; + obj_writer->machine = machine; return obj_writer; } @@ -35,7 +35,7 @@ coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer, String8 name, U32 value, } internal COFF_ObjSymbol * -coff_obj_writer_push_symbol_external(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSection *section) +coff_obj_writer_push_symbol_extern(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSection *section) { COFF_SymbolLocation loc = {0}; loc.type = COFF_SymbolLocation_Section; @@ -182,7 +182,7 @@ coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer) // file header // COFF_FileHeader *file_header = push_array(scratch.arena, COFF_FileHeader, 1); - file_header->machine = obj_writer->machine_type; + file_header->machine = obj_writer->machine; file_header->section_count = obj_sections_count; file_header->time_stamp = obj_writer->time_stamp; file_header->symbol_table_foff = 0; diff --git a/src/coff/coff_obj_writer.h b/src/coff/coff_obj_writer.h index 9a85357c..6a203d60 100644 --- a/src/coff/coff_obj_writer.h +++ b/src/coff/coff_obj_writer.h @@ -70,7 +70,7 @@ typedef struct COFF_ObjWriter { Arena *arena; COFF_TimeStamp time_stamp; - COFF_MachineType machine_type; + COFF_MachineType machine; U64 symbol_count; COFF_ObjSymbolNode *symbol_first; @@ -83,7 +83,7 @@ typedef struct COFF_ObjWriter //////////////////////////////// -internal COFF_ObjWriter* coff_obj_writer_alloc(COFF_TimeStamp time_stamp, COFF_MachineType machine_type); +internal COFF_ObjWriter* coff_obj_writer_alloc(COFF_TimeStamp time_stamp, COFF_MachineType machine); internal void coff_obj_writer_release(COFF_ObjWriter **obj_writer); internal COFF_ObjSection* coff_obj_writer_push_section(COFF_ObjWriter *obj_writer, String8 name, COFF_SectionFlags flags, String8 data); internal COFF_ObjSymbol* coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_SymbolLocation loc, COFF_SymbolType type, COFF_SymStorageClass storage_class); diff --git a/src/linker/hash_table.c b/src/linker/hash_table.c index 29da28d3..16560c36 100644 --- a/src/linker/hash_table.c +++ b/src/linker/hash_table.c @@ -286,19 +286,21 @@ hash_table_search_string_raw(HashTable *ht, String8 key, void **value_out) //////////////////////////////// internal int -key_value_pair_is_before_u32(void *raw_a, void *raw_b) +key_value_pair_is_before_u32(void *a, void *b) { - KeyValuePair *a = raw_a; - KeyValuePair *b = raw_b; - return a->key_u32 < b->key_u32; + return ((KeyValuePair *)a)->key_u32 < ((KeyValuePair *)b)->key_u32; } internal int -key_value_pair_is_before_u64(void *raw_a, void *raw_b) +key_value_pair_is_before_u64(void *a, void *b) { - KeyValuePair *a = raw_a; - KeyValuePair *b = raw_b; - return a->key_u64 < b->key_u64; + return ((KeyValuePair *)a)->key_u64 < ((KeyValuePair *)b)->key_u64; +} + +internal int +key_value_pair_is_before_string_sensitive(void *a, void *b) +{ + return str8_compar_case_sensitive(((KeyValuePair*)a)->key_string, ((KeyValuePair*)b)->key_string) < 0; } internal U32 * @@ -366,6 +368,12 @@ sort_key_value_pairs_as_u64(KeyValuePair *pairs, U64 count) radsort(pairs, count, key_value_pair_is_before_u64); } +internal void +sort_key_value_pairs_as_string_sensitive(KeyValuePair *pairs, U64 count) +{ + radsort(pairs, count, key_value_pair_is_before_string_sensitive); +} + internal U64Array remove_duplicates_u64_array(Arena *arena, U64Array arr) { diff --git a/src/linker/hash_table.h b/src/linker/hash_table.h index 4ea808ff..df557997 100644 --- a/src/linker/hash_table.h +++ b/src/linker/hash_table.h @@ -85,6 +85,7 @@ internal void * values_from_hash_table_raw(Arena *arena, HashTable *ht); internal void sort_key_value_pairs_as_u32(KeyValuePair *pairs, U64 count); internal void sort_key_value_pairs_as_u64(KeyValuePair *pairs, U64 count); +internal void sort_key_value_pairs_as_string_sensitive(KeyValuePair *pairs, U64 count); //////////////////////////////// diff --git a/src/linker/lnk.c b/src/linker/lnk.c index a89acec9..cb2731d5 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -698,10 +698,7 @@ lnk_make_res_obj(Arena *arena, } internal String8 -lnk_obj_from_res_file_list(TP_Context *tp, - Arena *arena, - LNK_SectionTable *sectab, - LNK_SymbolTable *symtab, +lnk_obj_from_res_file_list(Arena *arena, String8List res_data_list, String8List res_path_list, COFF_MachineType machine, @@ -790,7 +787,7 @@ lnk_make_linker_coff_obj(Arena *arena, str8_list_push(scratch.arena, &env_list, str8_lit("")); str8_list_push(scratch.arena, &env_list, str8_lit("")); cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_ENVBLOCK, cv_make_envblock(scratch.arena, env_list)); - + // TODO: emit S_SECTION and S_COFFGROUP // TODO: emit S_TRAMPOLINE @@ -992,83 +989,67 @@ lnk_build_guard_data(Arena *arena, U64Array voff_arr, U64 stride) } internal void -lnk_push_pe_debug_data_directory(LNK_Section *sect, - LNK_Chunk *dir_array_chunk, - LNK_Symbol *data_symbol, +lnk_push_pe_debug_data_directory(COFF_ObjWriter *obj_writer, + COFF_ObjSymbol *data_symbol, PE_DebugDirectoryType type, COFF_TimeStamp time_stamp) { // init directory - PE_DebugDirectory *dir = push_array(sect->arena, PE_DebugDirectory, 1); + PE_DebugDirectory *dir = push_array(obj_writer->arena, PE_DebugDirectory, 1); dir->time_stamp = time_stamp; dir->type = type; //dir->voff = 0; // relocated through 'data_symbol' //dir->foff = 0; // relocated through 'data_symbol' //dir->size = 0; // relocated through 'data_symbol' - - // push chunk - LNK_Chunk *dir_entry_chunk = lnk_section_push_chunk_data(sect, dir_array_chunk, str8_struct(dir), str8_zero()); - lnk_chunk_set_debugf(sect->arena, dir_entry_chunk, "DebugDirectory[%u]", type); - - // push debug directory relocs - lnk_section_push_reloc(sect, dir_entry_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_DebugDirectory, voff), data_symbol); - lnk_section_push_reloc(sect, dir_entry_chunk, LNK_Reloc_FILE_OFF_32, OffsetOf(PE_DebugDirectory, foff), data_symbol); - lnk_section_push_reloc(sect, dir_entry_chunk, LNK_Reloc_CHUNK_SIZE_VIRT_32, OffsetOf(PE_DebugDirectory, size), data_symbol); + COFF_ObjSection *debug_dir_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINKER_DEBUG_DIR$d"), LNK_DATA_SECTION_FLAGS, str8_struct(dir)); + coff_obj_writer_section_push_reloc(obj_writer, debug_dir_sect, OffsetOf(PE_DebugDirectory, voff), data_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, debug_dir_sect, OffsetOf(PE_DebugDirectory, foff), data_symbol, LNK_COFF_RELOC_FILE_OFFSET32); + coff_obj_writer_section_push_reloc(obj_writer, debug_dir_sect, OffsetOf(PE_DebugDirectory, size), data_symbol, LNK_COFF_RELOC_SECT_SIZE32); } -internal void -lnk_build_debug_pdb(LNK_SectionTable *sectab, - LNK_SymbolTable *symtab, - LNK_Section *sect, - LNK_Chunk *dir_array_chunk, - COFF_TimeStamp time_stamp, - Guid guid, - U32 age, - String8 pdb_path) +internal LNK_InputObjList +lnk_build_debug_directory_objs(Arena *arena, LNK_Config *config) { - ProfBeginFunction(); - - // push chunks - String8 debug_pdb_data = pe_make_debug_header_pdb70(sect->arena, guid, age, pdb_path); - LNK_Chunk *debug_pdb_chunk = lnk_section_push_chunk_data(sect, sect->root, debug_pdb_data, str8(0, 0)); - lnk_chunk_set_debugf(sect->arena, debug_pdb_chunk, LNK_CV_HEADER_PDB70_SYMBOL_NAME); - - // push symbols - LNK_Symbol *debug_pdb_symbol = lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_CV_HEADER_PDB70_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, debug_pdb_chunk, 0, 0, 0); - LNK_Symbol *guid_symbol = lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_CV_HEADER_GUID_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, debug_pdb_chunk, OffsetOf(PE_CvHeaderPDB70, guid), 0, 0); - - // push debug directory - lnk_push_pe_debug_data_directory(sect, dir_array_chunk, debug_pdb_symbol, PE_DebugDirectoryType_CODEVIEW, time_stamp); - - ProfEnd(); -} + LNK_InputObjList result = {0}; -internal void -lnk_build_debug_rdi(LNK_SectionTable *sectab, - LNK_SymbolTable *symtab, - LNK_Section *debug_sect, - LNK_Chunk *debug_dir_array_chunk, - COFF_TimeStamp time_stamp, - Guid guid, - String8 rdi_path) -{ - ProfBeginFunction(); - - LNK_Section *rdi_sect = lnk_section_table_push(sectab, str8_lit(".raddbg"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead); - - // push chunks - String8 debug_rdi = pe_make_debug_header_rdi(rdi_sect->arena, guid, rdi_path); - LNK_Chunk *debug_rdi_chunk = lnk_section_push_chunk_data(rdi_sect, rdi_sect->root, debug_rdi, str8_zero()); - lnk_chunk_set_debugf(rdi_sect->arena, debug_rdi_chunk, LNK_CV_HEADER_RDI_SYMBOL_NAME); - - // push symbols - LNK_Symbol *debug_rdi_symbol = lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_CV_HEADER_RDI_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, debug_rdi_chunk, 0, 0, 0); - LNK_Symbol *guid_symbol = lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_CV_HEADER_GUID_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, debug_rdi_chunk, OffsetOf(PE_CvHeaderRDI, guid), 0, 0); - - // push debug directory - lnk_push_pe_debug_data_directory(debug_sect, debug_dir_array_chunk, debug_rdi_symbol, PE_DebugDirectoryType_CODEVIEW, time_stamp); - - ProfEnd(); + B32 build_pdb_header = config->debug_mode != LNK_DebugMode_None && config->debug_mode != LNK_DebugMode_Null; + B32 build_rdi_header = config->rad_debug == LNK_SwitchState_Yes; + + if (build_pdb_header || build_rdi_header) { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, config->machine); + + COFF_ObjSection *sect_a = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINKER_DEBUG_DIR$a"), LNK_DATA_SECTION_FLAGS, str8_zero()); + COFF_ObjSection *sect_z = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINKER_DEBUG_DIR$z"), LNK_DATA_SECTION_FLAGS, str8_zero()); + + // marker symbols for debug directory patcher + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("RAD_LINKER_DEBUG_SECTION_A"), 0, sect_a); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("RAD_LINKER_DEBUG_SECTION_Z"), 0, sect_z); + + // debug entry for PDB + if (build_pdb_header) { + String8 debug_pdb_data = pe_make_debug_header_pdb70(obj_writer->arena, config->guid, config->age, config->pdb_alt_path); + COFF_ObjSection *debug_pdb_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$z"), LNK_DATA_SECTION_FLAGS, debug_pdb_data); + COFF_ObjSymbol *debug_pdb_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("PDB_DEBUG_HEADER_70"), 0, debug_pdb_sect); + lnk_push_pe_debug_data_directory(obj_writer, debug_pdb_symbol, PE_DebugDirectoryType_CODEVIEW, config->time_stamp); + } + + // debug entry for RDI + if (build_rdi_header) { + String8 debug_rdi_data = pe_make_debug_header_rdi(obj_writer->arena, config->guid, config->rad_debug_alt_path); + COFF_ObjSection *debug_rdi_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$z"), LNK_DATA_SECTION_FLAGS, debug_rdi_data); + COFF_ObjSymbol *debug_rdi_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("RDI_DEBUG_HEADER"), 0, debug_rdi_sect); + lnk_push_pe_debug_data_directory(obj_writer, debug_rdi_symbol, PE_DebugDirectoryType_CODEVIEW, config->time_stamp); + } + + LNK_InputObj *input = lnk_input_obj_list_push(arena, &result); + input->path = str8_lit("* Debug Directory *"); + input->dedup_id = input->path; + input->data = coff_obj_writer_serialize(arena, obj_writer); + + coff_obj_writer_release(&obj_writer); + } + + return result; } internal void @@ -2067,7 +2048,7 @@ THREAD_POOL_TASK_FUNC(lnk_undef_symbol_finder) LNK_Symbol *has_defn = lnk_symbol_table_search(task->symtab, undef->scope_flags, symbol->name); if (has_defn) { - Assert(LNK_Symbol_IsDefined(has_defn->type) || has_defn->type == LNK_Symbol_Weak); + Assert(LNK_Symbol_IsDefined(has_defn->type) || has_defn->type == LNK_Symbol_Weak || has_defn->type == LNK_Symbol_Import); continue; } @@ -2970,17 +2951,17 @@ lnk_run(int argc, char **argv) State_InputObjs, State_LookupUndef, State_LookupWeak, + State_BuildImportObjs, + State_BuildExportObjs, + State_BuildDebugDirectoryObjs, State_BuildAndInputLinkerObj, State_BuildAndInputResObj, State_PushDllHelperUndefSymbol, State_PushLinkerSymbols, State_PushLoadConfigUndefSymbol, State_SearchEntryPoint, - State_CheckUnusedDelayLoads, State_ReportUnresolvedSymbols, State_DiscardMetaDataSections, - State_BuildDebugDirectory, - State_BuildExportTable, State_MergeSections, State_BuildCFGuards, State_BuildBaseRelocs, @@ -3040,12 +3021,20 @@ lnk_run(int argc, char **argv) // input command line libs input_libs[LNK_InputSource_CmdLine] = config->input_list[LNK_Input_Lib]; input_libs[LNK_InputSource_Default] = config->input_default_lib_list; + + LNK_ImportTableFlags imptab_flags = 0; + if (config->flags & LNK_ConfigFlag_DelayUnload) { + imptab_flags |= LNK_ImportTableFlag_EmitUiat; + } + if (config->flags & LNK_ConfigFlag_DelayBind) { + imptab_flags |= LNK_ImportTableFlag_EmitUiat; + } // state LNK_SymbolTable *symtab = lnk_symbol_table_init(tp_arena); LNK_SectionTable *sectab = lnk_init_section_table(symtab, config->section_virt_off, config->sect_align, config->file_align); - LNK_ImportTable *imptab_static = 0; - LNK_ImportTable *imptab_delayed = 0; + LNK_ImportTable *imptab_static = lnk_import_table_alloc(0); + LNK_ImportTable *imptab_delayed = lnk_import_table_alloc(imptab_flags); LNK_ExportTable *exptab = lnk_export_table_alloc(); Arena *ht_arena = arena_alloc(); HashTable *disallow_lib_ht = hash_table_init(scratch.arena, 0x100); @@ -3060,15 +3049,15 @@ lnk_run(int argc, char **argv) U64 entry_search_attempts = 0; B32 build_debug_info = lnk_do_debug_info(config); B32 build_linker_obj = build_debug_info; - B32 build_debug_directory = build_debug_info; + B32 build_debug_directory_objs = build_debug_info; + B32 build_import_objs = 1; + B32 build_export_objs = 1; B32 build_res_obj = 1; B32 discard_meta_data_sections = 1; B32 merge_sections = !!(config->flags & LNK_ConfigFlag_Merge); B32 build_cf_guards = 0; // (config->flags != LNK_Guard_NONE); - B32 build_export_table = 1; B32 build_base_relocs = !(config->flags & LNK_ConfigFlag_Fixed); B32 report_unresolved_symbols = 1; - B32 check_unused_delay_loads = !!(config->flags & LNK_ConfigFlag_CheckUnusedDelayLoadDll); B32 build_imp_lib = config->build_imp_lib; B32 build_rad_chunk_map = (config->rad_chunk_map == LNK_SwitchState_Yes); LNK_ObjList obj_list = {0}; @@ -3285,37 +3274,49 @@ lnk_run(int argc, char **argv) ProfBegin("Input Imports"); for (LNK_InputImport *input = input_import_list.first; input != 0; input = input->next) { COFF_ParsedArchiveImportHeader *import_header = &input->import_header; - KeyValuePair *is_delayed = hash_table_search_path(delay_load_dll_ht, import_header->dll_name); + if (import_header->machine != config->machine) { + lnk_error(LNK_Error_IncompatibleMachine, "symbol pulls in an import with incompatible machine %S (expected %S)", + coff_string_from_machine_type(input->import_header.machine), + coff_string_from_machine_type(config->machine)); + } + + KeyValuePair *is_delayed = hash_table_search_path(delay_load_dll_ht, import_header->dll_name); + + LNK_ImportDLL *dll; + LNK_ImportFunc *func; if (is_delayed) { - if (!imptab_delayed) { - Assert(config->machine != COFF_MachineType_Unknown); - B32 is_unloadable = !!(config->flags & LNK_ConfigFlag_DelayUnload); - B32 is_bindable = !!(config->flags & LNK_ConfigFlag_DelayBind); - imptab_delayed = lnk_import_table_alloc_delayed(sectab, symtab, config->machine, is_unloadable, is_bindable); - } - LNK_ImportDLL *dll = lnk_import_table_search_dll(imptab_delayed, import_header->dll_name); + dll = lnk_import_table_search_dll(imptab_delayed, import_header->dll_name); if (!dll) { - dll = lnk_import_table_push_dll_delayed(imptab_delayed, symtab, import_header->dll_name, import_header->machine); + dll = lnk_import_table_push_dll_delayed(imptab_delayed, import_header->dll_name, import_header->machine); } - LNK_ImportFunc *func = lnk_import_table_search_func(dll, import_header->func_name); + func = lnk_import_table_search_func(dll, import_header->func_name); if (!func) { - func = lnk_import_table_push_func_delayed(imptab_delayed, symtab, dll, import_header); + func = lnk_import_table_push_func_delayed(imptab_delayed, dll, import_header); } } else { - if (!imptab_static) { - Assert(config->machine != COFF_MachineType_Unknown); - imptab_static = lnk_import_table_alloc_static(sectab, symtab, config->machine); - } - LNK_ImportDLL *dll = lnk_import_table_search_dll(imptab_static, import_header->dll_name); + dll = lnk_import_table_search_dll(imptab_static, import_header->dll_name); if (!dll) { - dll = lnk_import_table_push_dll_static(imptab_static, symtab, import_header->dll_name, import_header->machine); + dll = lnk_import_table_push_dll_static(imptab_static, import_header->dll_name, import_header->machine); } - LNK_ImportFunc *func = lnk_import_table_search_func(dll, import_header->func_name); + func = lnk_import_table_search_func(dll, import_header->func_name); if (!func) { - func = lnk_import_table_push_func_static(imptab_static, symtab, dll, import_header); + func = lnk_import_table_push_func_static(imptab_static, dll, import_header); } } + + { + LNK_Symbol *thunk_symbol = push_array(symtab->arena->v[0], LNK_Symbol, 1); + thunk_symbol->name = func->thunk_symbol_name; + thunk_symbol->type = LNK_Symbol_Import; + + LNK_Symbol *iat_symbol = push_array(symtab->arena->v[0], LNK_Symbol, 1); + iat_symbol->name = func->iat_symbol_name; + iat_symbol->type = LNK_Symbol_Import; + + lnk_symbol_table_push(symtab, thunk_symbol); + lnk_symbol_table_push(symtab, iat_symbol); + } } // reset input @@ -3629,6 +3630,50 @@ lnk_run(int argc, char **argv) ProfEnd(); } break; + case State_BuildImportObjs: { + ProfBegin("Build Import Table"); + + if (config->flags & LNK_ConfigFlag_CheckUnusedDelayLoadDll) { + if (imptab_delayed) { + for (String8Node *node = config->delay_load_dll_list.first; node != 0; node = node->next) { + LNK_ImportDLL *dll = lnk_import_table_search_dll(imptab_delayed, node->string); + if (dll == 0) { + lnk_error(LNK_Warning_UnusedDelayLoadDll, "/DELAYLOAD: %S found no imports", node->string); + } + } + } + } + + LNK_InputObjList static_imports = lnk_import_table_serialize(scratch.arena, imptab_static, str8_skip_last_slash(config->image_name), config->machine); + LNK_InputObjList delayed_imports = lnk_import_table_serialize(scratch.arena, imptab_delayed, str8_skip_last_slash(config->image_name), config->machine); + + lnk_input_obj_list_concat_in_place(&input_obj_list, &static_imports); + lnk_input_obj_list_concat_in_place(&input_obj_list, &delayed_imports); + + ProfEnd(); + } break; + case State_BuildExportObjs: { + ProfBegin("Build Export Table"); + + ProfBeginV("Push Exports [Count %u]", export_symbol_list.count); + for (LNK_ExportParse *exp_parse = export_symbol_list.first; exp_parse != 0; exp_parse = exp_parse->next) { + lnk_export_table_push_export(exptab, symtab, exp_parse); + } + ProfEnd(); + + LNK_InputObjList export_objs = lnk_export_table_serialize(scratch.arena, exptab, str8_skip_last_slash(config->image_name), config->machine); + lnk_input_obj_list_concat_in_place(&input_obj_list, &export_objs); + + ProfEnd(); + } break; + case State_BuildDebugDirectoryObjs: { + ProfBegin("Build Debug Directory"); + + LNK_InputObjList debug_objs = lnk_build_debug_directory_objs(scratch.arena, config); + lnk_input_obj_list_concat_in_place(&input_obj_list, &debug_objs); + + ProfEnd(); + } break; case State_BuildAndInputResObj: { String8List res_data_list = {0}; String8List res_path_list = {0}; @@ -3688,10 +3733,7 @@ lnk_run(int argc, char **argv) ProfBegin("Build * Resources *"); String8 obj_name = str8_lit("* Resources *"); - String8 obj_data = lnk_obj_from_res_file_list(tp, - tp_arena->v[0], - sectab, - symtab, + String8 obj_data = lnk_obj_from_res_file_list(scratch.arena, res_data_list, res_path_list, config->machine, @@ -3757,16 +3799,6 @@ lnk_run(int argc, char **argv) MemoryZeroStruct(&lookup_weak_list); ProfEnd(); } break; - case State_CheckUnusedDelayLoads: { - if (imptab_delayed) { - for (String8Node *node = config->delay_load_dll_list.first; node != 0; node = node->next) { - LNK_ImportDLL *dll = lnk_import_table_search_dll(imptab_delayed, node->string); - if (dll == 0) { - lnk_error(LNK_Warning_UnusedDelayLoadDll, "/DELAYLOAD: %S found no imports", node->string); - } - } - } - } break; case State_ReportUnresolvedSymbols: { // report unresolved symbols for (LNK_SymbolNode *node = unresolved_undef_list.first; node != 0; node = node->next) { @@ -3782,43 +3814,6 @@ lnk_run(int argc, char **argv) lnk_discard_meta_data_sections(sectab); ProfEnd(); } break; - case State_BuildDebugDirectory: { - ProfBegin("Build Debug Directory"); - - // push debug directory layout chunks - LNK_Section *debug_sect = lnk_section_table_search(sectab, str8_lit(".rdata")); - LNK_Chunk *debug_chunk = lnk_section_push_chunk_list(debug_sect, debug_sect->root, str8_zero()); - LNK_Chunk *debug_dir_array_chunk = lnk_section_push_chunk_list(debug_sect, debug_chunk, str8_zero()); - - // push symbols for PE directory patch - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_DEBUG_DIR_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, debug_dir_array_chunk, 0, 0, 0); - - // debug entry for PDB - if (config->debug_mode != LNK_DebugMode_None && config->debug_mode != LNK_DebugMode_Null) { - lnk_build_debug_pdb(sectab, symtab, debug_sect, debug_dir_array_chunk, config->time_stamp, config->guid, config->age, config->pdb_alt_path); - } - - // debug entry for RDI - if (config->rad_debug == LNK_SwitchState_Yes) { - lnk_build_debug_rdi(sectab, symtab, debug_sect, debug_dir_array_chunk, config->time_stamp, config->guid, config->rad_debug_alt_path); - } - - ProfEnd(); - } break; - case State_BuildExportTable: { - ProfBegin("Build Export Table"); - - ProfBeginV("Push Exports [Count %u]", export_symbol_list.count); - for (LNK_ExportParse *exp_parse = export_symbol_list.first; exp_parse != 0; exp_parse = exp_parse->next) { - lnk_export_table_push_export(exptab, symtab, exp_parse); - } - ProfEnd(); - - // build export table section - lnk_build_edata(exptab, sectab, symtab, config->image_name, config->machine); - - ProfEnd(); - } break; case State_MergeSections: { ProfBegin("Merge Sections"); lnk_section_table_merge(sectab, merge_list); @@ -4151,6 +4146,22 @@ lnk_run(int argc, char **argv) continue; } } + + if (build_import_objs) { + build_import_objs = 0; + state_list_push(scratch.arena, state_list, State_BuildImportObjs); + continue; + } + if (build_export_objs) { + build_export_objs = 0; + state_list_push(scratch.arena, state_list, State_BuildExportObjs); + continue; + } + if (build_debug_directory_objs) { + build_debug_directory_objs = 0; + state_list_push(scratch.arena, state_list, State_BuildDebugDirectoryObjs); + continue; + } if (build_res_obj) { build_res_obj = 0; state_list_push(scratch.arena, state_list, State_BuildAndInputResObj); @@ -4161,29 +4172,13 @@ lnk_run(int argc, char **argv) state_list_push(scratch.arena, state_list, State_BuildAndInputLinkerObj); continue; } - if (check_unused_delay_loads) { - check_unused_delay_loads = 0; - state_list_push(scratch.arena, state_list, State_CheckUnusedDelayLoads); - continue; - } - - /// --- inputs are ready --- - + + if (discard_meta_data_sections) { discard_meta_data_sections = 0; state_list_push(scratch.arena, state_list, State_DiscardMetaDataSections); continue; } - if (build_debug_directory) { - build_debug_directory = 0; - state_list_push(scratch.arena, state_list, State_BuildDebugDirectory); - continue; - } - if (build_export_table) { - build_export_table = 0; - state_list_push(scratch.arena, state_list, State_BuildExportTable); - continue; - } if (merge_sections) { merge_sections = 0; state_list_push(scratch.arena, state_list, State_MergeSections); @@ -4199,6 +4194,8 @@ lnk_run(int argc, char **argv) state_list_push(scratch.arena, state_list, State_BuildBaseRelocs); continue; } + + if (image_data.size == 0) { state_list_push(scratch.arena, state_list, State_FinalizeImage); continue; diff --git a/src/linker/lnk.h b/src/linker/lnk.h index ba3e3281..275fd652 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -103,6 +103,11 @@ //////////////////////////////// +#define LNK_COFF_RELOC_FILE_OFFSET32 0x1000 +#define LNK_COFF_RELOC_SECT_SIZE32 0x1001 + +//////////////////////////////// + typedef enum { LNK_InputSource_CmdLine, // specified on command line @@ -267,7 +272,7 @@ internal void lnk_merge_manifest_files(String8 mt_path, String8 out_name, Str internal void lnk_serialize_pe_resource_tree(COFF_ObjWriter *obj_writer, PE_ResourceDir *root_dir); internal void lnk_add_resource_debug_s(COFF_ObjWriter *obj_writer, String8 obj_path, String8 cwd_path, String8 exe_path, CV_Arch arch, String8List res_file_list, MD5Hash *res_hash_array); internal String8 lnk_make_res_obj(Arena *arena, PE_ResourceDir *root_dir, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 path, String8 cwd_path, String8 exe_path, String8List res_file_list, MD5Hash *res_hash_array); -internal String8 lnk_obj_from_res_file_list(TP_Context *tp, Arena *arena, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, String8List res_file_list, String8List res_path_list, COFF_MachineType machine, U32 time_stamp, String8 work_dir, PathStyle system_path_style, String8 obj_name); +internal String8 lnk_obj_from_res_file_list(Arena *arena, String8List res_file_list, String8List res_path_list, COFF_MachineType machine, U32 time_stamp, String8 work_dir, PathStyle system_path_style, String8 obj_name); //////////////////////////////// // Debug diff --git a/src/linker/lnk_error.h b/src/linker/lnk_error.h index ad6dd4ba..761579ea 100644 --- a/src/linker/lnk_error.h +++ b/src/linker/lnk_error.h @@ -16,7 +16,7 @@ typedef enum LNK_Error_IllData, LNK_Error_IllExport, LNK_Error_IncomatibleCmdOptions, - LNK_Error_IncompatibleObj, + LNK_Error_IncompatibleMachine, LNK_Error_InvalidPrecompLeafCount, LNK_Error_InvalidStartIndex, LNK_Error_NoAccess, diff --git a/src/linker/lnk_export_table.c b/src/linker/lnk_export_table.c index c8112392..d2f9fc10 100644 --- a/src/linker/lnk_export_table.c +++ b/src/linker/lnk_export_table.c @@ -170,17 +170,11 @@ lnk_export_array_from_list(Arena *arena, LNK_ExportList list) return arr; } -internal void -lnk_build_edata(LNK_ExportTable *exptab, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, String8 image_name, COFF_MachineType machine) +internal LNK_InputObjList +lnk_export_table_serialize(Arena *arena, LNK_ExportTable *exptab, String8 image_name, COFF_MachineType machine) { - ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - - // is export table empty? - if (exptab->name_export_ht->count == 0 && exptab->noname_export_ht->count == 0) { - goto exit; - } - + Temp scratch = scratch_begin(&arena, 1); + // compute ordinal bounds U64 ordinal_low; for (ordinal_low = 0; ordinal_low < exptab->max_ordinal; ++ordinal_low) { @@ -195,96 +189,117 @@ lnk_build_edata(LNK_ExportTable *exptab, LNK_SectionTable *sectab, LNK_SymbolTab } } - LNK_Section *edata = lnk_section_table_search(sectab, str8_lit(".edata")); - - // push header - PE_ExportTableHeader *header = push_array(edata->arena, PE_ExportTableHeader, 1); + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, machine); + + // fill out export table header + PE_ExportTableHeader *header = push_array(obj_writer->arena, PE_ExportTableHeader, 1); header->ordinal_base = safe_cast_u16(ordinal_low + 1); header->export_address_table_count = safe_cast_u32(exptab->name_export_ht->count + exptab->noname_export_ht->count); header->name_pointer_table_count = safe_cast_u32(exptab->name_export_ht->count); - - String8 header_data = str8((U8*)header, sizeof(*header)); - String8 image_name_cstr = push_cstr(edata->arena, str8_skip_last_slash(image_name)); - - // push edata chunks - LNK_Chunk *header_chunk = lnk_section_push_chunk_data(edata, edata->root, header_data, str8_lit("a")); - LNK_Chunk *voff_table_chunk = lnk_section_push_chunk_list(edata, edata->root, str8_lit("b")); - LNK_Chunk *name_voff_table_chunk = lnk_section_push_chunk_list(edata, edata->root, str8_lit("c")); - LNK_Chunk *ordinal_table_chunk = lnk_section_push_chunk_list(edata, edata->root, str8_lit("d")); - LNK_Chunk *string_buffer_chunk = lnk_section_push_chunk_list(edata, edata->root, str8_lit("e")); - LNK_Chunk *image_name_chunk = lnk_section_push_chunk_data(edata, string_buffer_chunk, image_name_cstr, str8(0,0)); - lnk_chunk_set_debugf(edata->arena, header_chunk, "EXPORT_HEADER"); - lnk_chunk_set_debugf(edata->arena, voff_table_chunk, "EXPORT_ADDRESS_TABLE"); - lnk_chunk_set_debugf(edata->arena, name_voff_table_chunk, "EXPORT_NAME_VOFF_TABLE"); - lnk_chunk_set_debugf(edata->arena, ordinal_table_chunk, "EXPORT_ORDINAL_TABLE"); - lnk_chunk_set_debugf(edata->arena, string_buffer_chunk, "EXPORT_STRING_BUFFER"); - lnk_chunk_set_debugf(edata->arena, image_name_chunk, "EXPORT_IMAGE_NAME"); - - LNK_Symbol *image_name_symbol = lnk_symbol_table_push_defined_chunk(symtab, str8_lit("export_table.name_voff"), LNK_DefinedSymbolVisibility_Internal, 0, image_name_chunk, 0, 0, 0); - LNK_Symbol *address_table_symbol = lnk_symbol_table_push_defined_chunk(symtab, str8_lit("export_table.export_address_table_voff"), LNK_DefinedSymbolVisibility_Internal, 0, voff_table_chunk, 0, 0, 0); - LNK_Symbol *name_table_symbol = lnk_symbol_table_push_defined_chunk(symtab, str8_lit("export_table.name_pointer_table_voff"), LNK_DefinedSymbolVisibility_Internal, 0, name_voff_table_chunk, 0, 0, 0); - LNK_Symbol *ordinal_table_symbol = lnk_symbol_table_push_defined_chunk(symtab, str8_lit("export_table.ordinal_table_voff"), LNK_DefinedSymbolVisibility_Internal, 0, ordinal_table_chunk, 0, 0, 0); - - // patch header fields - lnk_section_push_reloc(edata, header_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_ExportTableHeader, name_voff), image_name_symbol); - lnk_section_push_reloc(edata, header_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_ExportTableHeader, export_address_table_voff), address_table_symbol); - lnk_section_push_reloc(edata, header_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_ExportTableHeader, name_pointer_table_voff), name_table_symbol); - lnk_section_push_reloc(edata, header_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_ExportTableHeader, ordinal_table_voff), ordinal_table_symbol); - - // reserve virtual offset chunks - LNK_Chunk **ordinal_voff_map = push_array(scratch.arena, LNK_Chunk *, exptab->max_ordinal); - for (U32 i = ordinal_low; i <= ordinal_high; i += 1) { - String8 sort_index = str8_from_bits_u32(edata->arena, i); - LNK_Chunk *voff_chunk = lnk_section_push_chunk_bss(edata, voff_table_chunk, exptab->voff_size, sort_index); - ordinal_voff_map[i] = voff_chunk; + + + // make iamge name c-string + String8 image_name_cstr = push_cstr(obj_writer->arena, image_name); + + // push sections + COFF_ObjSection *header_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$1"), LNK_EDATA_SECTION_FLAGS, str8_struct(header)); + COFF_ObjSection *voff_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$2"), LNK_EDATA_SECTION_FLAGS, str8_zero()); + COFF_ObjSection *name_voff_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$3"), LNK_EDATA_SECTION_FLAGS, str8_zero()); + COFF_ObjSection *ordinal_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$4"), LNK_EDATA_SECTION_FLAGS, str8_zero()); + COFF_ObjSection *string_buffer_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$5"), LNK_EDATA_SECTION_FLAGS, str8_zero()); + COFF_ObjSection *image_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$6"), LNK_EDATA_SECTION_FLAGS, image_name_cstr); + + // push symbols + COFF_ObjSymbol *image_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_TABLE_NAME_VOFF"), 0, image_name_sect); + COFF_ObjSymbol *address_table_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_TABLE_ADDRESS_TABLE_VOFF"), 0, voff_table_sect); + COFF_ObjSymbol *name_table_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_TABLE_NAME_POINTER_VOFF"), 0, name_voff_table_sect); + COFF_ObjSymbol *ordinal_table_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_TABLE_ORDINAL_TABLE_VOFF"), 0, ordinal_table_sect); + + // patch export table header + switch (machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X64: { + coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, name_voff), image_name_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, export_address_table_voff), address_table_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, name_pointer_table_voff), name_table_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, ordinal_table_voff), ordinal_table_symbol, COFF_Reloc_X64_Addr32Nb); + } break; + default: { NotImplemented; } break; } - + + B8 *is_ordinal_bound = push_array(scratch.arena, B8, exptab->max_ordinal); HashTable *exp_ht_arr[] = { exptab->name_export_ht, exptab->noname_export_ht }; - for (HashTable **ht_ptr = &exp_ht_arr[0], **ht_opl = ht_ptr + ArrayCount(exp_ht_arr); - ht_ptr < ht_opl; - ht_ptr += 1) { - KeyValuePair *kv_arr = key_value_pairs_from_hash_table(scratch.arena, *ht_ptr); - for (U64 i = 0; i < (*ht_ptr)->count; ++i) { - LNK_Export *exp = kv_arr[i].value_raw; - String8 name_cstr = push_cstr(edata->arena, exp->name); - - // push name string - LNK_Chunk *name_chunk = lnk_section_push_chunk_data(edata, string_buffer_chunk, name_cstr, str8(0,0)); - lnk_chunk_set_debugf(edata->arena, name_chunk, "export: %S", name_cstr); - - // push name symbol - String8 name_export_name = push_str8f(symtab->arena->v[0], "export.%S", name_cstr); - LNK_Symbol *name_symbol = lnk_symbol_table_push_defined_chunk(symtab, name_export_name, LNK_DefinedSymbolVisibility_Internal, 0, name_chunk, 0, 0, 0); - - // name voff - LNK_Chunk *voff_chunk = lnk_section_push_chunk_bss(edata, name_voff_table_chunk, exptab->voff_size, /* export table must be sorted lexically: */ name_cstr); - lnk_chunk_set_debugf(edata->arena, voff_chunk, "voff for export name %S", name_cstr); - - // link reloc with name symbol - lnk_section_push_reloc(edata, voff_chunk, LNK_Reloc_VIRT_OFF_32, 0, name_symbol); + for (U64 ht_idx = 0; ht_idx < ArrayCount(exp_ht_arr); ht_idx += 1) { + HashTable *ht = exp_ht_arr[ht_idx]; - // make ordinal relative - U16 *ordinal_ptr = push_array(edata->arena, U16, 1); - *ordinal_ptr = (exp->ordinal - ordinal_low); - - // ordinal - LNK_Chunk *ordinal_chunk = lnk_section_push_chunk_raw(edata, ordinal_table_chunk, ordinal_ptr, sizeof(*ordinal_ptr), /* ordinal table is parallel to the name table: */ name_cstr); - lnk_chunk_set_debugf(edata->arena, ordinal_chunk, "ordinal %u for %S", exp->ordinal, exp->name); - - // (ordinal - ordinal_low) -> export virtual offset - if ( ! is_ordinal_bound[exp->ordinal]) { - is_ordinal_bound[exp->ordinal] = 1; - LNK_Chunk *export_func_voff_chunk = ordinal_voff_map[exp->ordinal]; - lnk_section_push_reloc(edata, export_func_voff_chunk, LNK_Reloc_VIRT_OFF_32, 0, exp->symbol); + KeyValuePair *kv_arr = key_value_pairs_from_hash_table(scratch.arena, exptab->name_export_ht); + + // named exports must be lexically sorted + if (ht_idx == 0) { + sort_key_value_pairs_as_string_sensitive(kv_arr, exptab->name_export_ht->count); + } + + for (U64 i = 0; i < ht->count; i += 1) { + LNK_Export *exp = kv_arr[i].value_raw; + + { + U64 export_name_offset = string_buffer_sect->data.total_size; + String8 export_name_cstr = push_cstr(obj_writer->arena, exp->name); + str8_list_push(obj_writer->arena, &string_buffer_sect->data, export_name_cstr); + + String8 export_name_symbol_name = push_str8f(obj_writer->arena, "EXPORT.%S", exp->name); + COFF_ObjSymbol *export_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, export_name_symbol_name, export_name_offset, string_buffer_sect); + + U64 export_name_voff_offset = name_voff_table_sect->data.total_size; + U64 export_name_voff_size = sizeof(U32); + U8 *export_name_voff = push_array(obj_writer->arena, U8, export_name_voff_size); + str8_list_push(obj_writer->arena, &name_voff_table_sect->data, str8_array(export_name_voff, export_name_voff_size)); + + switch (machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X64: { coff_obj_writer_section_push_reloc(obj_writer, name_voff_table_sect, export_name_voff_offset, export_name_symbol, COFF_Reloc_X64_Addr32Nb); } break; + default: { NotImplemented; } break; + } + } + + { + U16 *ordinal = push_array(obj_writer->arena, U16, 1); + *ordinal = exp->ordinal - ordinal_low; + str8_list_push(obj_writer->arena, &ordinal_table_sect->data, str8_struct(ordinal)); + + if ( ! is_ordinal_bound[exp->ordinal]) { + is_ordinal_bound[exp->ordinal] = 1; + + U64 voff_offset = voff_table_sect->data.total_size; + U32 *voff = push_array(obj_writer->arena, U32, 1); + str8_list_push(obj_writer->arena, &voff_table_sect->data, str8_struct(voff)); + + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, exp->name); + switch (machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X64: { coff_obj_writer_section_push_reloc(obj_writer, voff_table_sect, voff_offset, symbol, COFF_Reloc_X64_Addr32Nb); } break; + default: { NotImplemented; } break; + } + } } } } - -exit:; + + + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + coff_obj_writer_release(&obj_writer); + + LNK_InputObjList result = {0}; + LNK_InputObj *input = lnk_input_obj_list_push(arena, &result); + input->path = str8_lit("* Exports *"); + input->dedup_id = input->path; + input->data = obj; + scratch_end(scratch); - ProfEnd(); + return result; } + diff --git a/src/linker/lnk_export_table.h b/src/linker/lnk_export_table.h index e0ccb8ed..42cd3ed7 100644 --- a/src/linker/lnk_export_table.h +++ b/src/linker/lnk_export_table.h @@ -40,5 +40,5 @@ typedef struct LNK_ExportTable internal LNK_ExportTable * lnk_export_table_alloc(void); internal void lnk_export_table_release(LNK_ExportTable **exptab_ptr); internal LNK_Export * lnk_export_table_search(LNK_ExportTable *exptab, String8 name); -internal void lnk_build_edata(LNK_ExportTable *exptab, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, String8 image_name, COFF_MachineType machine); +internal LNK_InputObjList lnk_export_table_serialize(Arena *arena, LNK_ExportTable *exptab, String8 image_name, COFF_MachineType machine); diff --git a/src/linker/lnk_import_table.c b/src/linker/lnk_import_table.c index c1973f30..6b474897 100644 --- a/src/linker/lnk_import_table.c +++ b/src/linker/lnk_import_table.c @@ -2,120 +2,20 @@ // Licensed under the MIT license (https://opensource.org/license/mit/) internal LNK_ImportTable * -lnk_import_table_alloc_static(LNK_SectionTable *sectab, LNK_SymbolTable *symtab, COFF_MachineType machine) +lnk_import_table_alloc(LNK_ImportTableFlags flags) { ProfBeginFunction(); - - LNK_Section *data_sect = lnk_section_table_push(sectab, str8_lit(".idata"), LNK_IDATA_SECTION_FLAGS); - LNK_Section *code_sect = lnk_section_table_search(sectab, str8_lit(".text")); - - LNK_Chunk *dll_table_chunk = lnk_section_push_chunk_list(data_sect, data_sect->root, str8_zero()); - LNK_Chunk *int_chunk = lnk_section_push_chunk_list(data_sect, data_sect->root, str8_zero()); - LNK_Chunk *iat_chunk = lnk_section_push_chunk_list(data_sect, data_sect->root, str8_zero()); - LNK_Chunk *ilt_chunk = lnk_section_push_chunk_list(data_sect, data_sect->root, str8_zero()); - LNK_Chunk *code_chunk = lnk_section_push_chunk_list(code_sect, code_sect->root, str8_zero()); - lnk_chunk_set_debugf(data_sect->arena, dll_table_chunk, "DLL_TABLE" ); - lnk_chunk_set_debugf(data_sect->arena, int_chunk, "IMPORT_NAME_TABLE" ); - lnk_chunk_set_debugf(data_sect->arena, iat_chunk, "IMPORT_ADDRESS_TABLE"); - lnk_chunk_set_debugf(data_sect->arena, ilt_chunk, "IMPORT_LOOKUP_TABLE" ); - lnk_chunk_set_debugf(data_sect->arena, code_chunk, "IMPORT_TABLE_CODE" ); - LNK_Chunk *null_dll_import = lnk_section_push_chunk_data(data_sect, dll_table_chunk, str8(0, sizeof(PE_ImportEntry)), str8_lit("zzzzz")); - lnk_chunk_set_debugf(data_sect->arena, null_dll_import, "DLL_DIRECTORY_TERMINATOR"); - - lnk_symbol_table_push_defined_chunk(symtab, str8_cstring(LNK_IMPORT_DLL_TABLE_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, dll_table_chunk, 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_cstring(LNK_IMPORT_NAME_TABLE_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, int_chunk , 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_cstring(LNK_IMPORT_IAT_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, iat_chunk , 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_cstring(LNK_IMPORT_ILT_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, ilt_chunk , 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_cstring(LNK_IMPORT_JMP_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, code_chunk , 0, 0, 0); - Arena *arena = arena_alloc(); LNK_ImportTable *imptab = push_array(arena, LNK_ImportTable, 1); - imptab->machine = machine; imptab->arena = arena; - imptab->data_sect = data_sect; - imptab->code_sect = code_sect; - imptab->dll_table_chunk = dll_table_chunk; - imptab->int_chunk = int_chunk; - imptab->iat_chunk = iat_chunk; - imptab->ilt_chunk = ilt_chunk; - imptab->code_chunk = code_chunk; + imptab->flags = flags; imptab->dll_ht = hash_table_init(arena, LNK_IMPORT_DLL_HASH_TABLE_BUCKET_COUNT); ProfEnd(); return imptab; } -internal LNK_ImportTable * -lnk_import_table_alloc_delayed(LNK_SectionTable *sectab, LNK_SymbolTable *symtab, COFF_MachineType machine, B32 is_unloadable, B32 is_bindable) -{ - ProfBeginFunction(); - - LNK_Section *data_sect = lnk_section_table_push(sectab, str8_lit(".didat"), LNK_DEBUG_DIR_SECTION_FLAGS); - LNK_Section *code_sect = lnk_section_table_search(sectab, str8_lit(".text")); - - LNK_Chunk *dll_table_chunk = lnk_section_push_chunk_list(data_sect, data_sect->root, str8_zero()); - LNK_Chunk *int_chunk = lnk_section_push_chunk_list(data_sect, data_sect->root, str8_zero()); - LNK_Chunk *handle_table_chunk = lnk_section_push_chunk_list(data_sect, data_sect->root, str8_zero()); - LNK_Chunk *iat_chunk = lnk_section_push_chunk_list(data_sect, data_sect->root, str8_zero()); - LNK_Chunk *ilt_chunk = lnk_section_push_chunk_list(data_sect, data_sect->root, str8_zero()); - LNK_Chunk *biat_chunk = lnk_section_push_chunk_list(data_sect, data_sect->root, str8_zero()); - LNK_Chunk *uiat_chunk = lnk_section_push_chunk_list(data_sect, data_sect->root, str8_zero()); - LNK_Chunk *code_chunk = lnk_section_push_chunk_list(code_sect, code_sect->root, str8_zero()); - - LNK_Chunk *null_dll_import = lnk_section_push_chunk_data(data_sect, dll_table_chunk, str8(0, sizeof(PE_DelayedImportEntry)), str8_lit("~0")); - lnk_chunk_set_debugf(data_sect->arena, null_dll_import, "DLL_DIRECTORY_TERMINATOR"); - - if (is_unloadable) { - U64 import_size = coff_word_size_from_machine(machine); - LNK_Chunk *null_uiat_chunk = lnk_section_push_chunk_bss(data_sect, uiat_chunk, import_size, str8_lit("~1")); - lnk_chunk_set_debugf(data_sect->arena, null_uiat_chunk, "UIAT_TERMINATOR"); - } - - if (is_bindable) { - U64 import_size = coff_word_size_from_machine(machine); - LNK_Chunk *null_biat_chunk = lnk_section_push_chunk_bss(data_sect, biat_chunk, import_size, str8_lit("~2")); - lnk_chunk_set_debugf(data_sect->arena, null_biat_chunk, "BIAT_TERMINATOR"); - } - - lnk_symbol_table_push_defined_chunk(symtab, str8_cstring(LNK_DELAYED_IMPORT_DLL_TABLE_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, dll_table_chunk , 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_cstring(LNK_DELAYED_IMPORT_INT_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, int_chunk , 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_cstring(LNK_DELAYED_IMPORT_HANDLE_TABLE_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, handle_table_chunk, 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_cstring(LNK_DELAYED_IMPORT_IAT_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, iat_chunk , 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_cstring(LNK_DELAYED_IMPORT_ILT_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, ilt_chunk , 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_cstring(LNK_DELAYED_IMPORT_BIAT_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, biat_chunk , 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_cstring(LNK_DELAYED_IMPORT_UIAT_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, uiat_chunk , 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_cstring(LNK_DELAYED_IMPORT_CODE_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, code_chunk , 0, 0, 0); - - LNK_ImportTableFlags flags = 0; - if (is_unloadable) { - flags |= LNK_ImportTableFlag_EmitUiat; - } - if (is_bindable) { - flags |= LNK_ImportTableFlag_EmitBiat; - } - - Arena *arena = arena_alloc(); - LNK_ImportTable *imptab = push_array(arena, LNK_ImportTable, 1); - imptab->arena = arena; - imptab->machine = machine; - imptab->data_sect = data_sect; - imptab->code_sect = code_sect; - imptab->dll_table_chunk = dll_table_chunk; - imptab->int_chunk = int_chunk; - imptab->handle_table_chunk = handle_table_chunk; - imptab->iat_chunk = iat_chunk; - imptab->ilt_chunk = ilt_chunk; - imptab->biat_chunk = biat_chunk; - imptab->uiat_chunk = uiat_chunk; - imptab->code_chunk = code_chunk; - imptab->flags = flags; - imptab->dll_ht = hash_table_init(arena, LNK_IMPORT_FUNC_HASH_TABLE_BUCKET_COUNT); - - ProfEnd(); - return imptab; -} - internal void lnk_import_table_release(LNK_ImportTable **imptab_ptr) { @@ -148,88 +48,61 @@ lnk_import_table_push_func_node(LNK_ImportTable *imptab, LNK_ImportDLL *dll, LNK internal LNK_ImportDLL * lnk_import_table_search_dll(LNK_ImportTable *imptab, String8 name) { - KeyValuePair *kv = hash_table_search_path(imptab->dll_ht, name); - if (kv) { - Assert(kv->value_raw); - return kv->value_raw; - } - return 0; + return hash_table_search_path_raw(imptab->dll_ht, name); } internal LNK_ImportFunc * lnk_import_table_search_func(LNK_ImportDLL *dll, String8 name) { - KeyValuePair *kv = hash_table_search_string(dll->func_ht, name); - if (kv) { - Assert(kv->value_raw); - return kv->value_raw; - } - return 0; + LNK_ImportFunc *func = 0; + hash_table_search_string_raw(dll->func_ht, name, &func); + return func; } internal LNK_ImportDLL * -lnk_import_table_push_dll_static(LNK_ImportTable *imptab, LNK_SymbolTable *symtab, String8 dll_name, COFF_MachineType machine) +lnk_import_table_push_dll_static(LNK_ImportTable *imptab, String8 dll_name, COFF_MachineType machine) { ProfBeginFunction(); - // TODO: error handle - Assert(imptab->machine == machine); + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, machine); + + U64 import_size = coff_word_size_from_machine(machine); + COFF_SectionFlags import_align = coff_section_flag_from_align_size(import_size); + + PE_ImportEntry *impdesc = push_array(obj_writer->arena, PE_ImportEntry, 1); + String8 dll_name_cstr = push_cstr(obj_writer->arena, dll_name); + + COFF_ObjSection *dll_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$2"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(impdesc)); + COFF_ObjSection *ilt_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$4"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *iat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$5"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *int_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$6"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); + COFF_ObjSection *dll_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$7"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); + COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$i"), LNK_TEXT_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_zero()); + + COFF_ObjSymbol *ilt_symbol = coff_obj_writer_push_symbol_static(obj_writer, ilt_sect->name, 0, ilt_sect); + COFF_ObjSymbol *iat_symbol = coff_obj_writer_push_symbol_static(obj_writer, iat_sect->name, 0, iat_sect); + COFF_ObjSymbol *dll_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll_name_sect->name, 0, dll_name_sect); - LNK_Section *data_sect = imptab->data_sect; - LNK_Section *code_sect = imptab->code_sect; - - LNK_Chunk *int_table_chunk = lnk_section_push_chunk_list(data_sect, imptab->int_chunk, str8_zero()); - LNK_Chunk *ilt_table_chunk = lnk_section_push_chunk_list(data_sect, imptab->ilt_chunk, str8_zero()); - LNK_Chunk *iat_table_chunk = lnk_section_push_chunk_list(data_sect, imptab->iat_chunk, str8_zero()); - LNK_Chunk *code_table_chunk = lnk_section_push_chunk_list(code_sect, imptab->code_chunk, str8_zero()); - lnk_chunk_set_debugf(data_sect->arena, int_table_chunk, "%S.INT", dll_name); - lnk_chunk_set_debugf(data_sect->arena, ilt_table_chunk, "%S.ILT", dll_name); - lnk_chunk_set_debugf(data_sect->arena, iat_table_chunk, "%S.IAT", dll_name); - lnk_chunk_set_debugf(data_sect->arena, code_table_chunk, "%S.CODE", dll_name); - - String8 ilt_symbol_name = push_str8f(symtab->arena->v[0], "%S.lookup_table_voff", dll_name); - LNK_Symbol *ilt_symbol = lnk_symbol_table_push_defined_chunk(symtab, ilt_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, ilt_table_chunk, 0, 0, 0); - - String8 iat_symbol_name = push_str8f(symtab->arena->v[0], "%S.import_addr_table_voff", dll_name); - LNK_Symbol *iat_symbol = lnk_symbol_table_push_defined_chunk(symtab, iat_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, iat_table_chunk, 0, 0, 0); - - String8 dll_name_cstr = push_cstr(data_sect->arena, dll_name); - LNK_Chunk *dll_name_chunk = lnk_section_push_chunk_data(data_sect, int_table_chunk, dll_name_cstr, str8_zero()); - lnk_chunk_set_debugf(data_sect->arena, dll_name_chunk, "DLL name chunk (%S)", dll_name); - - String8 dll_name_voff_name = push_str8f(symtab->arena->v[0], "%S.name_voff", dll_name); - LNK_Symbol *dll_name_voff_symbol = lnk_symbol_table_push_defined_chunk(symtab, dll_name_voff_name, LNK_DefinedSymbolVisibility_Internal, 0, dll_name_chunk, 0, 0, 0); - - // chunk for dll directory entry - PE_ImportEntry *dir = push_array(imptab->arena, PE_ImportEntry, 1); - LNK_Chunk *dll_chunk = lnk_section_push_chunk_data(data_sect, imptab->dll_table_chunk, str8_struct(dir), str8_zero()); - lnk_chunk_set_debugf(data_sect->arena, dll_chunk, "DLL Directory for %S", dll_name); - - // patch dll import fields - lnk_section_push_reloc(data_sect, dll_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_ImportEntry, lookup_table_voff), ilt_symbol); - lnk_section_push_reloc(data_sect, dll_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_ImportEntry, name_voff), dll_name_voff_symbol); - lnk_section_push_reloc(data_sect, dll_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_ImportEntry, import_addr_table_voff), iat_symbol); - - U64 import_size = coff_word_size_from_machine(machine); - - // null entry to terminate import lookup table array - LNK_Chunk *null_ilt_chunk = lnk_section_push_chunk_data(data_sect, ilt_table_chunk, str8(0, import_size), str8_lit("zzzzzz")); - lnk_chunk_set_debugf(data_sect->arena, null_ilt_chunk, "%S: ILT terminator", dll_name); - - // null entry to terminate import address table array - LNK_Chunk *null_iat_chunk = lnk_section_push_chunk_data(data_sect, iat_table_chunk, str8(0, import_size), str8_lit("zzzzzz")); - lnk_chunk_set_debugf(data_sect->arena, null_iat_chunk, "%S: IAT terminator", dll_name); + switch (machine) { + case COFF_MachineType_Unknown: {} break; + case COFF_MachineType_X64: { + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, lookup_table_voff), ilt_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, name_voff), dll_name_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, import_addr_table_voff), iat_symbol, COFF_Reloc_X64_Addr32Nb); + } break; + default: { NotImplemented; } break; + } // push to list - LNK_ImportDLL *dll = push_array(imptab->arena, LNK_ImportDLL, 1); - dll->name = push_str8_copy(imptab->arena, dll_name); - dll->dll_chunk = dll_chunk; - dll->int_table_chunk = int_table_chunk; - dll->ilt_table_chunk = ilt_table_chunk; - dll->iat_table_chunk = iat_table_chunk; - dll->code_table_chunk = code_table_chunk; - dll->machine = machine; - dll->func_ht = hash_table_init(imptab->arena, LNK_IMPORT_FUNC_HASH_TABLE_BUCKET_COUNT); + LNK_ImportDLL *dll = push_array(imptab->arena, LNK_ImportDLL, 1); + dll->obj_writer = obj_writer; + dll->name = push_str8_copy(imptab->arena, dll_name); + dll->dll_sect = dll_sect; + dll->int_sect = int_sect; + dll->ilt_sect = ilt_sect; + dll->iat_sect = iat_sect; + dll->code_sect = code_sect; + dll->func_ht = hash_table_init(imptab->arena, LNK_IMPORT_FUNC_HASH_TABLE_BUCKET_COUNT); lnk_import_table_push_dll_node(imptab, dll); @@ -238,150 +111,82 @@ lnk_import_table_push_dll_static(LNK_ImportTable *imptab, LNK_SymbolTable *symta } internal LNK_ImportDLL * -lnk_import_table_push_dll_delayed(LNK_ImportTable *imptab, LNK_SymbolTable *symtab, String8 dll_name, COFF_MachineType machine) +lnk_import_table_push_dll_delayed(LNK_ImportTable *imptab, String8 dll_name, COFF_MachineType machine) { ProfBeginFunction(); - Assert(imptab->machine == machine); - + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, machine); + + // import descriptor + PE_DelayedImportEntry *impdesc = push_array(obj_writer->arena, PE_DelayedImportEntry, 1); + impdesc->attributes = 1; + + // DLL name cstring + String8 dll_name_cstr = push_cstr(obj_writer->arena, dll_name); + + // DLL handle U64 handle_size = coff_word_size_from_machine(machine); - U64 import_size = coff_word_size_from_machine(machine); - - // shortcuts - LNK_Section *data_sect = imptab->data_sect; - LNK_Section *code_sect = imptab->code_sect; - - // init DLL entry - PE_DelayedImportEntry *imp_desc = push_array(data_sect->arena, PE_DelayedImportEntry, 1); - imp_desc->attributes = 1; - imp_desc->name_voff = 0; // relocated - imp_desc->module_handle_voff = 0; // relocated - imp_desc->iat_voff = 0; // relocated - imp_desc->name_table_voff = 0; // relocated - imp_desc->bound_table_voff = 0; // relocated - imp_desc->unload_table_voff = 0; // relocated - imp_desc->time_stamp = 0; - - // emit entry chunk - String8 imp_desc_data = str8_struct(imp_desc); - LNK_Chunk *imp_desc_chunk = lnk_section_push_chunk_data(data_sect, imptab->dll_table_chunk, imp_desc_data, str8_zero()); - lnk_chunk_set_debugf(data_sect->arena, imp_desc_chunk, "%S.IMP_DESC", dll_name); - - // emit entry symbol - String8 imp_desc_name = push_str8f(symtab->arena->v[0], "__DELAY_IMPORT_DESCRIPTOR_%S", dll_name); - LNK_Symbol *imp_desc_symbol = lnk_symbol_table_push_defined_chunk(symtab, imp_desc_name, LNK_DefinedSymbolVisibility_Extern, 0, imp_desc_chunk, 0, 0, 0); - - // emit string table chunk - LNK_Chunk *int_table_chunk = lnk_section_push_chunk_list(data_sect, imptab->int_chunk, str8_zero()); - lnk_chunk_set_debugf(data_sect->arena, int_table_chunk, "%S.DELAY_INT", dll_name); - - String8 int_table_symbol_name = push_str8f(symtab->arena->v[0], "delayed.%S.int", dll_name); - LNK_Symbol *int_table_symbol = lnk_symbol_table_push_defined_chunk(symtab, int_table_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, int_table_chunk, 0, 0, 0); - - LNK_Chunk *null_string_chunk = lnk_section_push_chunk_list(data_sect, int_table_chunk, str8_lit("zzzzz")); - lnk_chunk_set_debugf(data_sect->arena, null_string_chunk, "%S.STRING_TABLE_NULL", dll_name); - - // emit DLL name chunk - String8 name_chunk_data = push_cstr(data_sect->arena, dll_name); - LNK_Chunk *name_chunk = lnk_section_push_chunk_data(data_sect, int_table_chunk, name_chunk_data, str8_zero()); - lnk_chunk_set_debugf(data_sect->arena, name_chunk, "%S.DELAY_NAME", dll_name); - - String8 name_symbol_name = push_str8f(symtab->arena->v[0], "delayed.%S.name", dll_name); - LNK_Symbol *name_symbol = lnk_symbol_table_push_defined_chunk(symtab, name_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, name_chunk, 0, 0, 0); - - // patch DLL name voff - lnk_section_push_reloc(data_sect, imp_desc_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_DelayedImportEntry, name_voff), name_symbol); - - // emit DLL handle chunk - LNK_Chunk *handle_chunk = lnk_section_push_chunk_bss(data_sect, imptab->handle_table_chunk, handle_size, str8_zero()); - lnk_chunk_set_debugf(data_sect->arena, handle_chunk, "%S.DELAY_HANDLE", dll_name); - - String8 handle_name = push_str8f(symtab->arena->v[0], "delayed.%S.handle", dll_name); - LNK_Symbol *handle_symbol = lnk_symbol_table_push_defined_chunk(symtab, handle_name, LNK_DefinedSymbolVisibility_Internal, 0, handle_chunk, 0, 0, 0); - - // patch DLL handle voff - lnk_section_push_reloc(data_sect, imp_desc_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_DelayedImportEntry, module_handle_voff), handle_symbol); - - // emit IAT chunk - LNK_Chunk *iat_table_chunk = lnk_section_push_chunk_list(data_sect, imptab->iat_chunk, str8_zero()); - lnk_chunk_set_debugf(data_sect->arena, iat_table_chunk, "%S.DELAY_IAT", dll_name); - - String8 iat_table_name = push_str8f(symtab->arena->v[0], "delayed.%S.iat", dll_name); - LNK_Symbol *iat_table_symbol = lnk_symbol_table_push_defined_chunk(symtab, iat_table_name, LNK_DefinedSymbolVisibility_Internal, 0, iat_table_chunk, 0, 0, 0); - - LNK_Chunk *null_iat_chunk = lnk_section_push_chunk_bss(data_sect, iat_table_chunk, import_size, str8_lit("zzzzzz")); - lnk_chunk_set_debugf(data_sect->arena, null_iat_chunk, "%S.DELAY_IAT_TERMINATOR", dll_name); - - // emit ILT chunk - LNK_Chunk *ilt_table_chunk = lnk_section_push_chunk_list(data_sect, imptab->ilt_chunk, str8_zero()); - - LNK_Chunk *null_ilt_chunk = lnk_section_push_chunk_bss(data_sect, ilt_table_chunk, import_size, str8_lit("zzzzzz")); - lnk_chunk_set_debugf(data_sect->arena, null_ilt_chunk, "%S.DELAY_ILT_TERMINATOR", dll_name); - - String8 ilt_table_name = push_str8f(symtab->arena->v[0], "delayed.%S.ilt", dll_name); - LNK_Symbol *ilt_table_symbol = lnk_symbol_table_push_defined_chunk(symtab, ilt_table_name, LNK_DefinedSymbolVisibility_Extern, 0, ilt_table_chunk, 0, 0, 0); - - // patch import address table voff - lnk_section_push_reloc(data_sect, imp_desc_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_DelayedImportEntry, iat_voff), iat_table_symbol); - - // patch string table voff - lnk_section_push_reloc(data_sect, imp_desc_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_DelayedImportEntry, name_table_voff), ilt_table_symbol); - - // emit bound table chunk - LNK_Chunk *biat_chunk = 0; + U8 *handle = push_array(obj_writer->arena, U8, handle_size); + + // import align + U64 import_size = coff_word_size_from_machine(machine); + COFF_SectionFlags import_align = coff_section_flag_from_align_size(import_size); + + COFF_ObjSection *dll_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$2"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(impdesc)); + COFF_ObjSection *ilt_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$4"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *iat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$5"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *int_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$6"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); + COFF_ObjSection *dll_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$7"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); + COFF_ObjSection *biat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$8"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *uiat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$9"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$i"), LNK_TEXT_SECTION_FLAGS, str8_zero()); + COFF_ObjSection *handle_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$h"), LNK_DATA_SECTION_FLAGS, str8_array(handle, handle_size)); + + COFF_ObjSymbol *dll_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll_sect->name, 0, dll_sect); + COFF_ObjSymbol *dll_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll_name_sect->name, 0, dll_name_sect); + COFF_ObjSymbol *handle_symbol = coff_obj_writer_push_symbol_static(obj_writer, handle_sect->name, 0, handle_sect); + COFF_ObjSymbol *iat_symbol = coff_obj_writer_push_symbol_static(obj_writer, iat_sect->name, 0, iat_sect); + COFF_ObjSymbol *ilt_symbol = coff_obj_writer_push_symbol_static(obj_writer, ilt_sect->name, 0, ilt_sect); + + switch (machine) { + case COFF_MachineType_Unknown: {} break; + case COFF_MachineType_X64: { + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, name_voff), dll_name_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, module_handle_voff), handle_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, iat_voff), iat_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, name_table_voff), ilt_symbol, COFF_Reloc_X64_Addr32Nb); + } break; + default: { NotImplemented; } break; + } + if (imptab->flags & LNK_ImportTableFlag_EmitBiat) { - biat_chunk = lnk_section_push_chunk_list(data_sect, imptab->biat_chunk, str8_zero()); - lnk_chunk_set_debugf(data_sect->arena, biat_chunk, "%S.DELAY_BIAT", dll_name); - - String8 biat_symbol_name = push_str8f(symtab->arena->v[0], "delayed.%S.BIAT", dll_name); - LNK_Symbol *biat_symbol = lnk_symbol_table_push_defined_chunk(symtab, biat_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, biat_chunk, 0, 0, 0); - - // patch BIAT field off - lnk_section_push_reloc(data_sect, imp_desc_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_DelayedImportEntry, bound_table_voff), biat_symbol); + COFF_ObjSymbol *biat_symbol = coff_obj_writer_push_symbol_static(obj_writer, biat_sect->name, 0, biat_sect); + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, bound_table_voff), biat_symbol, COFF_Reloc_X64_Addr32Nb); } - - // emit unload table chunk - LNK_Chunk *uiat_chunk = NULL; if (imptab->flags & LNK_ImportTableFlag_EmitUiat) { - uiat_chunk = lnk_section_push_chunk_list(data_sect, imptab->uiat_chunk, str8_zero()); - lnk_chunk_set_debugf(data_sect->arena, uiat_chunk, "%S.DELAY_UIAT", dll_name); - - String8 uiat_symbol_name = push_str8f(symtab->arena->v[0], "delayed.%S.UIAT", dll_name); - LNK_Symbol *uiat_symbol = lnk_symbol_table_push_defined_chunk(symtab, uiat_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, uiat_chunk, 0, 0, 0); - - // patch UIAT field voff - lnk_section_push_reloc(data_sect, imp_desc_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_DelayedImportEntry, unload_table_voff), uiat_symbol); + COFF_ObjSymbol *uiat_symbol = coff_obj_writer_push_symbol_static(obj_writer, uiat_sect->name, 0, uiat_sect); + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, unload_table_voff), uiat_symbol, COFF_Reloc_X64_Addr32Nb); } - // emit chunk for DLL thunk/load code - LNK_Chunk *code_chunk = lnk_section_push_chunk_list(code_sect, imptab->code_chunk, str8_zero()); - lnk_chunk_set_debugf(code_sect->arena, code_chunk, "%S.DLAY_CODE", dll_name); - // emit tail merge - LNK_Chunk *tail_merge_chunk = 0; + COFF_ObjSymbol *tail_merge_symbol = 0; switch (machine) { - case COFF_MachineType_X64: { - LNK_Symbol *delay_load_helper_symbol = lnk_make_undefined_symbol(symtab->arena->v[0], str8_lit(LNK_DELAY_LOAD_HELPER2_SYMBOL_NAME), LNK_SymbolScopeFlag_Main); - tail_merge_chunk = lnk_emit_tail_merge_thunk_x64(code_sect, code_chunk, imp_desc_symbol, delay_load_helper_symbol); - lnk_chunk_set_debugf(code_sect->arena, code_chunk, "%S.X64_TAIL_MERGE", dll_name); - } break; - default: { - lnk_not_implemented("TODO: __tailMerge for %S", coff_string_from_machine_type(machine)); - } break; + case COFF_MachineType_Unknown: {} break; + case COFF_MachineType_X64: { tail_merge_symbol = lnk_emit_tail_merge_thunk_x64(obj_writer, code_sect, dll_name, dll_symbol); } break; + default: { NotImplemented; } break; } // fill out result LNK_ImportDLL *dll = push_array(imptab->arena, LNK_ImportDLL, 1); - dll->dll_chunk = imp_desc_chunk; - dll->int_table_chunk = int_table_chunk; - dll->iat_table_chunk = iat_table_chunk; - dll->ilt_table_chunk = ilt_table_chunk; - dll->biat_table_chunk = biat_chunk; - dll->uiat_table_chunk = uiat_chunk; - dll->code_table_chunk = code_chunk; - dll->tail_merge_symbol = lnk_emit_tail_merge_symbol(symtab, tail_merge_chunk, dll_name); + dll->dll_sect = dll_sect; + dll->int_sect = int_sect; + dll->iat_sect = iat_sect; + dll->ilt_sect = ilt_sect; + dll->biat_sect = biat_sect; + dll->uiat_sect = uiat_sect; + dll->code_sect = code_sect; + dll->tail_merge_symbol = tail_merge_symbol; dll->name = push_str8_copy(imptab->arena, dll_name); - dll->machine = machine; dll->func_ht = hash_table_init(imptab->arena, LNK_IMPORT_FUNC_HASH_TABLE_BUCKET_COUNT); lnk_import_table_push_dll_node(imptab, dll); @@ -391,91 +196,61 @@ lnk_import_table_push_dll_delayed(LNK_ImportTable *imptab, LNK_SymbolTable *symt } internal LNK_ImportFunc * -lnk_import_table_push_func_static(LNK_ImportTable *imptab, LNK_SymbolTable *symtab, LNK_ImportDLL *dll, COFF_ParsedArchiveImportHeader *header) +lnk_import_table_push_func_static(LNK_ImportTable *imptab, LNK_ImportDLL *dll, COFF_ParsedArchiveImportHeader *header) { ProfBeginFunction(); - - Assert(header->machine == dll->machine); // TODO: error handling - LNK_Section *data_sect = imptab->data_sect; - LNK_Section *code_sect = imptab->code_sect; - - LNK_Chunk *int_table_chunk = dll->int_table_chunk; - LNK_Chunk *ilt_table_chunk = dll->ilt_table_chunk; - LNK_Chunk *iat_table_chunk = dll->iat_table_chunk; - LNK_Chunk *code_table_chunk = dll->code_table_chunk; - - LNK_Chunk *ilt_chunk = g_null_chunk_ptr; - LNK_Chunk *iat_chunk = g_null_chunk_ptr; - - U64 import_size = coff_word_size_from_machine(dll->machine); - - // generate sort index (optional) - String8 sort_index = str8_from_bits_u32(data_sect->arena, header->hint_or_ordinal); + COFF_ObjWriter *obj_writer = dll->obj_writer; + String8 iat_symbol_name = push_str8f(obj_writer->arena, "__imp_%S", header->func_name); + U64 iat_offset = dll->iat_sect->data.total_size; + U64 ilt_offset = dll->ilt_sect->data.total_size; + U64 int_offset = dll->int_sect->data.total_size; + + COFF_ObjSymbol *iat_symbol = 0; switch (header->import_by) { case COFF_ImportBy_Ordinal: { - String8 ordinal_data = lnk_ordinal_data_from_hint(data_sect->arena, dll->machine, header->hint_or_ordinal); - ilt_chunk = lnk_section_push_chunk_data(data_sect, ilt_table_chunk, ordinal_data, sort_index); - iat_chunk = lnk_section_push_chunk_data(data_sect, iat_table_chunk, ordinal_data, sort_index); - lnk_chunk_set_debugf(data_sect->arena, ilt_chunk, "ILT entry for %S.%u", dll->name, header->hint_or_ordinal); - lnk_chunk_set_debugf(data_sect->arena, iat_chunk, "IAT entry for %S.%u", dll->name, header->hint_or_ordinal); + String8 ordinal_data = coff_ordinal_data_from_hint(obj_writer->arena, header->machine, header->hint_or_ordinal); + str8_list_push(obj_writer->arena, &dll->ilt_sect->data, ordinal_data); + str8_list_push(obj_writer->arena, &dll->iat_sect->data, ordinal_data); - // associate chunks - lnk_section_associate_chunks(data_sect, iat_chunk, ilt_chunk); + iat_symbol = coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_offset, dll->iat_sect); } break; case COFF_ImportBy_Name: { // put together name look up entry - String8 int_data = coff_make_import_lookup(data_sect->arena, header->hint_or_ordinal, header->func_name); - LNK_Chunk *int_chunk = lnk_section_push_chunk_data(data_sect, int_table_chunk, int_data, str8_zero()); - lnk_chunk_set_debugf(data_sect->arena, int_chunk, "INT entry for %S.%S (Hint: %u)", dll->name, header->func_name, header->hint_or_ordinal); - - // create symbol for lookup chunk - String8 int_symbol_name = push_str8f(symtab->arena->v[0], "static.%S.%S.name", dll->name, header->func_name); - LNK_Symbol *int_symbol = lnk_symbol_table_push_defined_chunk(symtab, int_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, int_chunk, 0, 0, 0); - - // in the file IAT mirrors ILT, dynamic linker later overwrites it with imported function addresses. - ilt_chunk = lnk_section_push_chunk_bss(data_sect, ilt_table_chunk, import_size, sort_index); - iat_chunk = lnk_section_push_chunk_bss(data_sect, iat_table_chunk, import_size, sort_index); - lnk_chunk_set_debugf(data_sect->arena, ilt_chunk, "ILT entry for %S.%S", dll->name, header->func_name); - lnk_chunk_set_debugf(data_sect->arena, iat_chunk, "IAT entry for %S.%S", dll->name, header->func_name); + String8 int_data = coff_make_import_lookup(obj_writer->arena, header->hint_or_ordinal, header->func_name); + str8_list_push(obj_writer->arena, &dll->int_sect->data, int_data); - // associate chunks - lnk_section_associate_chunks(data_sect, iat_chunk, ilt_chunk); - lnk_section_associate_chunks(data_sect, iat_chunk, int_chunk); + // create symbol for lookup entry + COFF_ObjSymbol *int_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll->int_sect->name, int_offset, dll->int_sect); + + // in the file IAT mirrors ILT, dynamic linker later overwrites it with imported function addresses + U64 import_size = coff_word_size_from_machine(header->machine); + U8 *import_entry = push_array(obj_writer->arena, U8, import_size); + str8_list_push(obj_writer->arena, &dll->ilt_sect->data, str8_array(import_entry, import_size)); + str8_list_push(obj_writer->arena, &dll->iat_sect->data, str8_array(import_entry, import_size)); + + iat_symbol = coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_offset, dll->iat_sect); // patch IAT and ILT - lnk_section_push_reloc(data_sect, ilt_chunk, LNK_Reloc_VIRT_OFF_32, 0, int_symbol); - lnk_section_push_reloc(data_sect, iat_chunk, LNK_Reloc_VIRT_OFF_32, 0, int_symbol); + coff_obj_writer_section_push_reloc(obj_writer, dll->ilt_sect, ilt_offset, int_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, dll->iat_sect, iat_offset, int_symbol, COFF_Reloc_X64_Addr32Nb); } break; case COFF_ImportBy_Undecorate: { - lnk_not_implemented("TODO: COFF_ImportBy_Undecorate"); + NotImplemented; } break; case COFF_ImportBy_NameNoPrefix: { - lnk_not_implemented("TODO: COFF_ImportBy_NameNoPrefix"); + NotImplemented; } break; } - - String8 ilt_symbol_name = push_str8f(symtab->arena->v[0], "static.%S.%S.ilt", dll->name, header->func_name); - String8 iat_symbol_name = push_str8f(symtab->arena->v[0], "__imp_%S", header->func_name); - LNK_Symbol *ilt_symbol = lnk_symbol_table_push_defined_chunk(symtab, ilt_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, ilt_chunk, 0, 0, 0); - LNK_Symbol *iat_symbol = lnk_symbol_table_push_defined_chunk(symtab, iat_symbol_name, LNK_DefinedSymbolVisibility_Extern, 0, iat_chunk, 0, 0, 0); // generate thunks - LNK_Symbol *jmp_thunk_symbol = g_null_symbol_ptr; + COFF_ObjSymbol *jmp_thunk_symbol = 0; if (header->type == COFF_ImportHeader_Code) { - switch (dll->machine) { - case COFF_MachineType_X64: { - // generate jump thunk - LNK_Chunk *jmp_thunk_chunk = lnk_emit_indirect_jump_thunk_x64(code_sect, code_table_chunk, iat_symbol); - lnk_section_associate_chunks(data_sect, iat_chunk, jmp_thunk_chunk); - lnk_chunk_set_debugf(data_sect->arena, jmp_thunk_chunk, "Jump thunk to %S.%S", dll->name, iat_symbol->name); - - // push jump thunk symbol - String8 jmp_thunk_symbol_name = push_str8_copy(symtab->arena->v[0], header->func_name); - jmp_thunk_symbol = lnk_emit_jmp_thunk_symbol(symtab, jmp_thunk_chunk, jmp_thunk_symbol_name); - } break; - default: lnk_not_implemented("TODO: support for machine 0x%X", dll->machine); break; + switch (header->machine) { + case COFF_MachineType_Unknown: {} break; + case COFF_MachineType_X64: { jmp_thunk_symbol = lnk_emit_indirect_jump_thunk_x64(obj_writer, dll->code_sect, iat_symbol, header->func_name); } break; + default: { NotImplemented; } break; } } @@ -483,7 +258,7 @@ lnk_import_table_push_func_static(LNK_ImportTable *imptab, LNK_SymbolTable *symt LNK_ImportFunc *func = push_array(imptab->arena, LNK_ImportFunc, 1); func->name = push_str8_copy(imptab->arena, header->func_name); func->thunk_symbol_name = push_str8_copy(imptab->arena, jmp_thunk_symbol->name); - func->iat_symbol_name = push_str8_copy(imptab->arena, iat_symbol->name); + func->iat_symbol_name = iat_symbol_name; lnk_import_table_push_func_node(imptab, dll, func); @@ -492,34 +267,18 @@ lnk_import_table_push_func_static(LNK_ImportTable *imptab, LNK_SymbolTable *symt } internal LNK_ImportFunc * -lnk_import_table_push_func_delayed(LNK_ImportTable *imptab, LNK_SymbolTable *symtab, LNK_ImportDLL *dll, COFF_ParsedArchiveImportHeader *header) +lnk_import_table_push_func_delayed(LNK_ImportTable *imptab, LNK_ImportDLL *dll, COFF_ParsedArchiveImportHeader *header) { +#if 0 ProfBeginFunction(); + COFF_ObjWriter *obj_writer = dll->obj_writer; Assert(dll->machine == header->machine); // TODO: error handle U64 import_size = coff_word_size_from_machine(dll->machine); - LNK_Section *data_sect = imptab->data_sect; - LNK_Section *code_sect = imptab->code_sect; - - LNK_Chunk *int_table_chunk = dll->int_table_chunk; - LNK_Chunk *ilt_table_chunk = dll->ilt_table_chunk; - LNK_Chunk *iat_table_chunk = dll->iat_table_chunk; - LNK_Chunk *biat_table_chunk = dll->biat_table_chunk; - LNK_Chunk *uiat_table_chunk = dll->uiat_table_chunk; - LNK_Chunk *code_table_chunk = dll->code_table_chunk; - - LNK_Chunk *ilt_chunk = g_null_chunk_ptr; - LNK_Chunk *iat_chunk = g_null_chunk_ptr; - LNK_Chunk *uiat_chunk = g_null_chunk_ptr; - LNK_Chunk *biat_chunk = g_null_chunk_ptr; - LNK_Symbol *int_symbol = 0; - // generate sort index (optional) - String8 sort_index = str8_from_bits_u32(data_sect->arena, header->hint_or_ordinal); - // generate thunks LNK_Symbol *jmp_thunk_symbol = g_null_symbol_ptr; LNK_Symbol *load_thunk_symbol = g_null_symbol_ptr; @@ -637,49 +396,34 @@ lnk_import_table_push_func_delayed(LNK_ImportTable *imptab, LNK_SymbolTable *sym ProfEnd(); return func; +#endif + return 0; } -internal String8 -lnk_ordinal_data_from_hint(Arena *arena, COFF_MachineType machine, U16 hint) -{ - String8 ordinal_data = str8_zero(); - switch (machine) { - case COFF_MachineType_X64: { - U64 *ordinal = push_array(arena, U64, 1); - *ordinal = coff_make_ordinal64(hint); - ordinal_data = str8_struct(ordinal); - } break; - case COFF_MachineType_X86: { - U32 *ordinal = push_array(arena, U32, 1); - *ordinal = coff_make_ordinal32(hint); - ordinal_data = str8_struct(ordinal); - } break; - default: lnk_not_implemented("TODO: support for machine 0x%x", machine); - } - return ordinal_data; -} - -internal LNK_Chunk * -lnk_emit_indirect_jump_thunk_x64(LNK_Section *sect, LNK_Chunk *parent, LNK_Symbol *addr_ptr) +internal COFF_ObjSymbol * +lnk_emit_indirect_jump_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, COFF_ObjSymbol *iat_symbol, String8 thunk_name) { ProfBeginFunction(); static U8 thunk[] = { 0xFF, 0x25, 0x00, 0x00, 0x00, 0x00 }; // jmp [__imp_] // emit chunk - String8 jmp_data = push_str8_copy(sect->arena, str8_array_fixed(thunk)); - LNK_Chunk *jmp_chunk = lnk_section_push_chunk_data(sect, parent, jmp_data, str8_zero()); + String8 jmp_data = push_str8_copy(obj_writer->arena, str8_array_fixed(thunk)); + U64 jmp_data_offset = code_sect->data.total_size; + str8_list_push(obj_writer->arena, &code_sect->data, jmp_data); // patch thunk with imports address static const U64 JMP_OPERAND_OFFSET = 2; - lnk_section_push_reloc(sect, jmp_chunk, LNK_Reloc_REL32, JMP_OPERAND_OFFSET, addr_ptr); + coff_obj_writer_section_push_reloc(obj_writer, code_sect, jmp_data_offset + JMP_OPERAND_OFFSET, iat_symbol, COFF_Reloc_X64_Rel32); + COFF_ObjSymbol *jmp_thunk_symbol = coff_obj_writer_push_symbol_extern(obj_writer, thunk_name, jmp_data_offset, code_sect); + ProfEnd(); - return jmp_chunk; + return jmp_thunk_symbol; } -internal LNK_Chunk * -lnk_emit_load_thunk_x64(LNK_Section *sect, LNK_Chunk *parent, LNK_Symbol *imp_addr_ptr, LNK_Symbol *tail_merge) +internal COFF_ObjSymbol * +lnk_emit_load_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, COFF_ObjSymbol *imp_addr_ptr, COFF_ObjSymbol *tail_merge, String8 func_name) { ProfBeginFunction(); @@ -689,23 +433,28 @@ lnk_emit_load_thunk_x64(LNK_Section *sect, LNK_Chunk *parent, LNK_Symbol *imp_ad }; // emit load thunk chunk - String8 load_thunk_data = push_str8_copy(sect->arena, str8_array_fixed(load_thunk)); - LNK_Chunk *load_thunk_chunk = lnk_section_push_chunk_data(sect, parent, load_thunk_data, str8_zero()); + U64 load_thunk_data_offset = code_sect->data.total_size; + String8 load_thunk_data = push_str8_copy(obj_writer->arena, str8_array_fixed(load_thunk)); + str8_list_push(obj_writer->arena, &code_sect->data, load_thunk_data); // patch lea with IAT entry static const U64 LEA_OPERAND_OFFSET = 3; - lnk_section_push_reloc(sect, load_thunk_chunk, LNK_Reloc_REL32, LEA_OPERAND_OFFSET, imp_addr_ptr); + coff_obj_writer_section_push_reloc(obj_writer, code_sect, load_thunk_data_offset + LEA_OPERAND_OFFSET, imp_addr_ptr, COFF_Reloc_X64_Rel32); // patch jmp __tailMerge_ static const U64 JMP_OPERAND_OFFSET = 8; - lnk_section_push_reloc(sect, load_thunk_chunk, LNK_Reloc_REL32, JMP_OPERAND_OFFSET, tail_merge); + coff_obj_writer_section_push_reloc(obj_writer, code_sect, load_thunk_data_offset + JMP_OPERAND_OFFSET, tail_merge, COFF_Reloc_X64_Rel32); + + // emit symbol + String8 thunk_name = push_str8f(obj_writer->arena, "__imp_load_%S", func_name); + COFF_ObjSymbol *load_thunk_symbol = coff_obj_writer_push_symbol_extern(obj_writer, thunk_name, load_thunk_data_offset, code_sect); ProfEnd(); - return load_thunk_chunk; + return load_thunk_symbol; } -internal LNK_Chunk * -lnk_emit_tail_merge_thunk_x64(LNK_Section *sect, LNK_Chunk *parent, LNK_Symbol *dll_import_descriptor, LNK_Symbol *delay_load_helper) +internal COFF_ObjSymbol * +lnk_emit_tail_merge_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, String8 dll_name, COFF_ObjSymbol *dll_import_descriptor) { ProfBeginFunction(); @@ -735,49 +484,257 @@ lnk_emit_tail_merge_thunk_x64(LNK_Section *sect, LNK_Chunk *parent, LNK_Symbol * }; // emit tail merge chunk - String8 tail_merge_data = push_str8_copy(sect->arena, str8_array_fixed(tail_merge)); - LNK_Chunk *tail_merge_chunk = lnk_section_push_chunk_data(sect, parent, tail_merge_data, str8_zero()); + String8 tail_merge_data = push_str8_copy(obj_writer->arena, str8_array_fixed(tail_merge)); + U64 tail_merge_off = code_sect->data.total_size; + str8_list_push(obj_writer->arena, &code_sect->data, tail_merge_data); // patch lea __DELAY_IMPORT_DESCRIPTOR_ static const U64 LEA_OPERAND_OFFSET = 54; - lnk_section_push_reloc(sect, tail_merge_chunk, LNK_Reloc_REL32, LEA_OPERAND_OFFSET, dll_import_descriptor); + coff_obj_writer_section_push_reloc(obj_writer, code_sect, tail_merge_off + LEA_OPERAND_OFFSET, dll_import_descriptor, COFF_Reloc_X64_Rel32); + + COFF_ObjSymbol *delay_load_helper = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit(LNK_DELAY_LOAD_HELPER2_SYMBOL_NAME)); // patch call __delayLoadHelper2 static const U64 CALL_OPERAND_OFFSET = 59; - lnk_section_push_reloc(sect, tail_merge_chunk, LNK_Reloc_REL32, CALL_OPERAND_OFFSET, delay_load_helper); + coff_obj_writer_section_push_reloc(obj_writer, code_sect, tail_merge_off + CALL_OPERAND_OFFSET, delay_load_helper, COFF_Reloc_X64_Rel32); + + // emit symbol + String8 tail_merge_name = push_str8f(obj_writer->arena, "__tailMerge_%S", dll_name); + COFF_ObjSymbol *tail_merge_symbol = coff_obj_writer_push_symbol_extern(obj_writer, tail_merge_name, tail_merge_off, code_sect); - ProfEnd(); - return tail_merge_chunk; -} - -internal LNK_Symbol * -lnk_emit_load_thunk_symbol(LNK_SymbolTable *symtab, LNK_Chunk *chunk, String8 func_name) -{ - ProfBeginFunction(); - // emit load thunk symbol - String8 load_thunk_name = push_str8f(symtab->arena->v[0], "__imp_load_%S", func_name); - LNK_Symbol *load_thunk_symbol = lnk_symbol_table_push_defined_chunk(symtab, load_thunk_name, LNK_DefinedSymbolVisibility_Extern, LNK_DefinedSymbolFlag_IsFunc|LNK_DefinedSymbolFlag_IsThunk, chunk, 0, COFF_ComdatSelect_NoDuplicates, 0); - ProfEnd(); - return load_thunk_symbol; -} - -internal LNK_Symbol * -lnk_emit_jmp_thunk_symbol(LNK_SymbolTable *symtab, LNK_Chunk *chunk, String8 func_name) -{ - ProfBeginFunction(); - String8 jmp_thunk_name = push_str8f(symtab->arena->v[0], "%S", func_name); - LNK_Symbol *jmp_thunk_symbol = lnk_symbol_table_push_defined_chunk(symtab, jmp_thunk_name, LNK_DefinedSymbolVisibility_Extern, LNK_DefinedSymbolFlag_IsFunc|LNK_DefinedSymbolFlag_IsThunk, chunk, 0, COFF_ComdatSelect_Any, 0); - ProfEnd(); - return jmp_thunk_symbol; -} - -internal LNK_Symbol * -lnk_emit_tail_merge_symbol(LNK_SymbolTable *symtab, LNK_Chunk *chunk, String8 func_name) -{ - ProfBeginFunction(); - String8 tail_merge_name = push_str8f(symtab->arena->v[0], "__tailMerge_%S", func_name); - LNK_Symbol *tail_merge_symbol = lnk_symbol_table_push_defined_chunk(symtab, tail_merge_name, LNK_DefinedSymbolVisibility_Extern, LNK_DefinedSymbolFlag_IsFunc|LNK_DefinedSymbolFlag_IsThunk, chunk, 0, COFF_ComdatSelect_NoDuplicates, 0); ProfEnd(); return tail_merge_symbol; } +internal String8 +lnk_build_import_entry_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(&arena, 1); + + Assert(machine == COFF_MachineType_X64); + Assert(str8_match_lit("dll", str8_skip_last_dot(dll_name), StringMatchFlag_CaseInsensitive|StringMatchFlag_RightSideSloppy)); + + String8 dll_name_no_ext = str8_chop_last_dot(dll_name); + + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); + + String8 debug_symbols; + { + CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; + String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); + cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); + debug_symbols = lnk_make_debug_s(obj_writer->arena, symbol_list); + } + + String8 dll_name_cstr = push_cstr(obj_writer->arena, dll_name); + COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + COFF_ObjSection *idata2 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$2"), LNK_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_zero()); + COFF_ObjSection *idata6 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$6"), LNK_DATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); + + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@comp.id"), 0x1018175, COFF_SymStorageClass_Static); + { + String8 symbol_name = push_str8f(arena, "__IMPORT_DESCRIPTOR_%S", dll_name_no_ext); + coff_obj_writer_push_symbol_extern(obj_writer, symbol_name, 0, idata2); + } + COFF_ObjSymbol *idata2_symbol = coff_obj_writer_push_symbol_sect(obj_writer, idata2->name, idata2); + COFF_ObjSymbol *idata6_symbol = coff_obj_writer_push_symbol_static(obj_writer, idata6->name, 0, idata6); + COFF_ObjSymbol *idata4_symbol = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".idata$4"), COFF_SectionFlag_MemWrite|COFF_SectionFlag_MemRead|COFF_SectionFlag_CntInitializedData); + COFF_ObjSymbol *idata5_symbol = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".idata$5"), COFF_SectionFlag_MemWrite|COFF_SectionFlag_MemRead|COFF_SectionFlag_CntInitializedData); + coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__NULL_IMPORT_DESCRIPTOR")); + { + String8 symbol_name = push_str8f(arena, "\x7f%S_NULL_THUNK_DATA", dll_name_no_ext); + coff_obj_writer_push_symbol_undef(obj_writer, symbol_name); + } + + { + PE_ImportEntry *import_entry = push_array(obj_writer->arena, PE_ImportEntry, 1); + str8_list_push(obj_writer->arena, &idata2->data, str8_struct(import_entry)); + coff_obj_writer_section_push_reloc(obj_writer, idata2, OffsetOf(PE_ImportEntry, name_voff), idata6_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, idata2, OffsetOf(PE_ImportEntry, lookup_table_voff), idata4_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, idata2, OffsetOf(PE_ImportEntry, import_addr_table_voff), idata5_symbol, COFF_Reloc_X64_Addr32Nb); + } + + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + + coff_obj_writer_release(&obj_writer); + + scratch_end(scratch); + ProfEnd(); + return obj; +} + +internal String8 +lnk_build_null_import_descriptor_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(&arena, 1); + + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); + + String8 debug_symbols; + { + CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; + String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); + cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); + debug_symbols = lnk_make_debug_s(obj_writer->arena, symbol_list); + } + + PE_ImportEntry *import_desc = push_array(obj_writer->arena, PE_ImportEntry, 1); + COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + COFF_ObjSection *idata3 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$3"), LNK_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(import_desc)); + + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@comp.id"), 0x01018175, COFF_SymStorageClass_Static); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("__NULL_IMPORT_DESCRIPTOR"), 0, idata3); + + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + + coff_obj_writer_release(&obj_writer); + + scratch_end(scratch); + ProfEnd(); + return obj; +} + +internal String8 +lnk_build_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(&arena, 1); + + Assert(str8_match_lit("dll", str8_skip_last_dot(dll_name), StringMatchFlag_CaseInsensitive|StringMatchFlag_RightSideSloppy)); + + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); + + String8 debug_symbols; + { + CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; + String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); + cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); + debug_symbols = lnk_make_debug_s(obj_writer->arena, symbol_list); + } + + COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + COFF_ObjSection *idata4 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$4"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite, str8_zero()); + COFF_ObjSection *idata5 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$5"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite, str8_zero()); + + U64 import_size = coff_word_size_from_machine(machine); + + U8 *null_thunk = push_array(obj_writer->arena, U8, import_size); + U8 *null_lookup = push_array(obj_writer->arena, U8, import_size); + + str8_list_push(obj_writer->arena, &idata5->data, str8_array(null_thunk, import_size)); + str8_list_push(obj_writer->arena, &idata4->data, str8_array(null_lookup, import_size)); + + idata4->flags |= coff_section_flag_from_align_size(import_size); + idata5->flags |= coff_section_flag_from_align_size(import_size); + + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@comp.id"), 0x1018175, COFF_SymStorageClass_Static); + { + String8 dll_name_no_ext = str8_chop_last_dot(dll_name); + String8 symbol_name = push_str8f(arena, "\x7f%S_NULL_THUNK_DATA", dll_name_no_ext); + coff_obj_writer_push_symbol_extern(obj_writer, symbol_name, 0, idata5); + } + + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + + coff_obj_writer_release(&obj_writer); + + scratch_end(scratch); + ProfEnd(); + return obj; +} + +internal LNK_InputObjList +lnk_import_table_serialize(Arena *arena, LNK_ImportTable *imptab, String8 image_name, COFF_MachineType machine) +{ + Temp scratch = scratch_begin(&arena, 1); + + // append .debug$S + for (LNK_ImportDLL *dll = imptab->first_dll; dll != 0; dll = dll->next) { + String8 debug_symbols = {0}; + { + Temp temp = temp_begin(scratch.arena); + + CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; + + // S_OBJ + String8 obj_data = cv_make_obj_name(temp.arena, dll->name, 0); + cv_symbol_list_push_data(temp.arena, &symbol_list, CV_SymKind_OBJNAME, obj_data); + + // S_COMPILE3 + String8 comp3_data = lnk_make_linker_compile3(temp.arena, dll->obj_writer->machine); + cv_symbol_list_push_data(temp.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); + + // S_END + cv_symbol_list_push_data(temp.arena, &symbol_list, CV_SymKind_END, str8_zero()); + + // TODO: add thunks + + // serialize symbols + debug_symbols = lnk_make_debug_s(dll->obj_writer->arena, symbol_list); + + temp_end(temp); + } + coff_obj_writer_push_section(dll->obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS, debug_symbols); + } + + LNK_InputObjList result = {0}; + + // serialize obj writers + for (LNK_ImportDLL *dll = imptab->first_dll; dll != 0; dll = dll->next) { + String8 obj = coff_obj_writer_serialize(arena, dll->obj_writer); + + LNK_InputObj *input = lnk_input_obj_list_push(arena, &result); + input->data = obj; + input->path = push_str8f(arena, "Import:%S", dll->name); + input->dedup_id = input->path; + } + + // generate null terminator objs + String8 null_import_entry_obj = lnk_build_import_entry_obj(arena, image_name, COFF_TimeStamp_Max, machine); + String8 null_import_descriptor_obj = lnk_build_null_import_descriptor_obj(arena, COFF_TimeStamp_Max, machine); + String8 null_thunk_data_obj = lnk_build_null_thunk_data_obj(arena, image_name, COFF_TimeStamp_Max, machine); + + // pick null terminator obj paths + String8 null_import_path; + String8 null_import_descriptor_path; + String8 null_thunk_path; + if (imptab->flags & LNK_ImportTableFlag_Delayed) { + null_import_path = str8_lit("DELAYED_NULL_IMPORT_ENTRY_OBJ"); + null_import_descriptor_path = str8_lit("DELAYED_NULL_IMPORT_DESCRIPTOR_OBJ"); + null_thunk_path = str8_lit("DELAYED_NULL_THUNK_OBJ"); + } else { + null_import_path = str8_lit("NULL_IMPORT_ENTRY_OBJ"); + null_import_descriptor_path = str8_lit("NULL_IMPORT_DESCRIPTOR_OBJ"); + null_thunk_path = str8_lit("NULL_THUNK_OBJ"); + } + + os_write_data_to_file_path(str8_lit("null_import_entry.obj"), null_import_entry_obj); + os_write_data_to_file_path(str8_lit("null_import_descriptor.obj"), null_import_descriptor_obj); + os_write_data_to_file_path(str8_lit("null_thunk.obj"), null_thunk_data_obj); + + // append null terminators + { + LNK_InputObj *input = lnk_input_obj_list_push(arena, &result); + input->data = null_import_entry_obj; + input->path = null_import_path; + input->dedup_id = input->path; + } + { + LNK_InputObj *input = lnk_input_obj_list_push(arena, &result); + input->data = null_import_descriptor_obj; + input->path = null_import_descriptor_path; + input->dedup_id = input->path; + } + { + LNK_InputObj *input = lnk_input_obj_list_push(arena, &result); + input->data = null_thunk_data_obj; + input->path = null_thunk_path; + input->dedup_id = input->path; + } + + scratch_end(scratch); + return result; +} + diff --git a/src/linker/lnk_import_table.h b/src/linker/lnk_import_table.h index 3bb9eb2f..14493218 100644 --- a/src/linker/lnk_import_table.h +++ b/src/linker/lnk_import_table.h @@ -19,23 +19,24 @@ typedef struct LNK_ImportDLL struct LNK_ImportDLL *next; struct LNK_ImportFunc *first_func; struct LNK_ImportFunc *last_func; - LNK_Chunk *dll_chunk; - LNK_Chunk *int_table_chunk; - LNK_Chunk *ilt_table_chunk; - LNK_Chunk *iat_table_chunk; - LNK_Chunk *biat_table_chunk; - LNK_Chunk *uiat_table_chunk; - LNK_Chunk *code_table_chunk; - LNK_Symbol *tail_merge_symbol; + COFF_ObjWriter *obj_writer; + COFF_ObjSection *dll_sect; + COFF_ObjSection *int_sect; + COFF_ObjSection *ilt_sect; + COFF_ObjSection *iat_sect; + COFF_ObjSection *biat_sect; + COFF_ObjSection *uiat_sect; + COFF_ObjSection *code_sect; + COFF_ObjSymbol *tail_merge_symbol; String8 name; - COFF_MachineType machine; HashTable *func_ht; } LNK_ImportDLL; enum { - LNK_ImportTableFlag_EmitBiat = (1 << 0), - LNK_ImportTableFlag_EmitUiat = (1 << 1), + LNK_ImportTableFlag_Delayed = (1 << 0), + LNK_ImportTableFlag_EmitBiat = (1 << 1), + LNK_ImportTableFlag_EmitUiat = (1 << 2), }; typedef U32 LNK_ImportTableFlags; @@ -45,37 +46,28 @@ typedef struct LNK_ImportTable COFF_MachineType machine; LNK_ImportDLL *first_dll; LNK_ImportDLL *last_dll; - LNK_Section *data_sect; - LNK_Section *code_sect; - LNK_Chunk *dll_table_chunk; - LNK_Chunk *int_chunk; - LNK_Chunk *handle_table_chunk; - LNK_Chunk *iat_chunk; - LNK_Chunk *ilt_chunk; - LNK_Chunk *biat_chunk; - LNK_Chunk *uiat_chunk; - LNK_Chunk *code_chunk; LNK_ImportTableFlags flags; HashTable *dll_ht; } LNK_ImportTable; -internal LNK_ImportTable * lnk_import_table_alloc_static(LNK_SectionTable *sectab, LNK_SymbolTable *symtab, COFF_MachineType machine); -internal LNK_ImportTable * lnk_import_table_alloc_delayed(LNK_SectionTable *sectab, LNK_SymbolTable *symtab, COFF_MachineType machine, B32 is_unloadable, B32 is_bindable); +//////////////////////////////// + +internal LNK_ImportTable * lnk_import_table_alloc(LNK_ImportTableFlags flags); internal void lnk_import_table_release(LNK_ImportTable **imptab); -internal LNK_ImportDLL * lnk_import_table_push_dll_static(LNK_ImportTable *imptab, LNK_SymbolTable *symtab, String8 dll_name, COFF_MachineType machine); -internal LNK_ImportDLL * lnk_import_table_push_dll_delayed(LNK_ImportTable *imptab, LNK_SymbolTable *symtab, String8 dll_name, COFF_MachineType machine); -internal LNK_ImportFunc * lnk_import_table_push_func_static(LNK_ImportTable *imptab, LNK_SymbolTable *symtab, LNK_ImportDLL *dll, COFF_ParsedArchiveImportHeader *header); -internal LNK_ImportFunc * lnk_import_table_push_func_delayed(LNK_ImportTable *imptab, LNK_SymbolTable *symtab, LNK_ImportDLL *dll, COFF_ParsedArchiveImportHeader *header); +internal LNK_ImportDLL * lnk_import_table_push_dll_static(LNK_ImportTable *imptab, String8 dll_name, COFF_MachineType machine); +internal LNK_ImportDLL * lnk_import_table_push_dll_delayed(LNK_ImportTable *imptab, String8 dll_name, COFF_MachineType machine); internal LNK_ImportDLL * lnk_import_table_search_dll(LNK_ImportTable *imptab, String8 name); + +internal LNK_ImportFunc * lnk_import_table_push_func_static(LNK_ImportTable *imptab, LNK_ImportDLL *dll, COFF_ParsedArchiveImportHeader *header); +internal LNK_ImportFunc * lnk_import_table_push_func_delayed(LNK_ImportTable *imptab, LNK_ImportDLL *dll, COFF_ParsedArchiveImportHeader *header); internal LNK_ImportFunc * lnk_import_table_search_func(LNK_ImportDLL *dll, String8 name); -internal String8 lnk_ordinal_data_from_hint(Arena *arena, COFF_MachineType machine, U16 hint); +internal COFF_ObjSymbol * lnk_emit_indirect_jump_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, COFF_ObjSymbol *iat_symbol, String8 thunk_name); +internal COFF_ObjSymbol * lnk_emit_load_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, COFF_ObjSymbol *imp_addr_ptr, COFF_ObjSymbol *tail_merge, String8 func_name); +internal COFF_ObjSymbol * lnk_emit_tail_merge_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, String8 dll_name, COFF_ObjSymbol *dll_import_desc); -internal LNK_Chunk * lnk_emit_indirect_jump_thunk_x64(LNK_Section *sect, LNK_Chunk *parent, LNK_Symbol *addr_ptr); -internal LNK_Chunk * lnk_emit_load_thunk_x64(LNK_Section *sect, LNK_Chunk *parent, LNK_Symbol *imp_addr_ptr, LNK_Symbol *tail_merge); -internal LNK_Chunk * lnk_emit_tail_merge_thunk_x64(LNK_Section *sect, LNK_Chunk *parent, LNK_Symbol *dll_import_descriptor, LNK_Symbol *delay_load_helper); - -internal LNK_Symbol * lnk_emit_load_thunk_symbol(LNK_SymbolTable *symtab, LNK_Chunk *chunk, String8 func_name); -internal LNK_Symbol * lnk_emit_jmp_thunk_symbol(LNK_SymbolTable *symtab, LNK_Chunk *chunk, String8 func_name); -internal LNK_Symbol * lnk_emit_tail_merge_symbol(LNK_SymbolTable *symtab, LNK_Chunk *chunk, String8 func_name); +internal String8 lnk_build_import_entry_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine); +internal String8 lnk_build_null_import_descriptor_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine); +internal String8 lnk_build_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine); +internal LNK_InputObjList lnk_import_table_serialize(Arena *arena, LNK_ImportTable *imptab, String8 image_name, COFF_MachineType machine); diff --git a/src/linker/lnk_lib.c b/src/linker/lnk_lib.c index a884bba8..93df67c7 100644 --- a/src/linker/lnk_lib.c +++ b/src/linker/lnk_lib.c @@ -536,145 +536,6 @@ lnk_build_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, return lib; } -internal String8 -lnk_build_import_entry_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - Assert(machine == COFF_MachineType_X64); - Assert(str8_match_lit("dll", str8_skip_last_dot(dll_name), StringMatchFlag_CaseInsensitive|StringMatchFlag_RightSideSloppy)); - - String8 dll_name_no_ext = str8_chop_last_dot(dll_name); - - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); - - String8 debug_symbols; - { - CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; - String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); - debug_symbols = lnk_make_debug_s(obj_writer->arena, symbol_list); - } - - String8 dll_name_cstr = push_cstr(obj_writer->arena, dll_name); - COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); - COFF_ObjSection *idata2 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$2"), LNK_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_zero()); - COFF_ObjSection *idata6 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$6"), LNK_DATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); - - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@comp.id"), 0x1018175, COFF_SymStorageClass_Static); - { - String8 symbol_name = push_str8f(arena, "__IMPORT_DESCRIPTOR_%S", dll_name_no_ext); - coff_obj_writer_push_symbol_external(obj_writer, symbol_name, 0, idata2); - } - COFF_ObjSymbol *idata2_symbol = coff_obj_writer_push_symbol_sect(obj_writer, idata2->name, idata2); - COFF_ObjSymbol *idata6_symbol = coff_obj_writer_push_symbol_static(obj_writer, idata6->name, 0, idata6); - COFF_ObjSymbol *idata4_symbol = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".idata$4"), COFF_SectionFlag_MemWrite|COFF_SectionFlag_MemRead|COFF_SectionFlag_CntInitializedData); - COFF_ObjSymbol *idata5_symbol = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".idata$5"), COFF_SectionFlag_MemWrite|COFF_SectionFlag_MemRead|COFF_SectionFlag_CntInitializedData); - coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__NULL_IMPORT_DESCRIPTOR")); - { - String8 symbol_name = push_str8f(arena, "\x7f%S_NULL_THUNK_DATA", dll_name_no_ext); - coff_obj_writer_push_symbol_undef(obj_writer, symbol_name); - } - - { - PE_ImportEntry *import_entry = push_array(obj_writer->arena, PE_ImportEntry, 1); - str8_list_push(obj_writer->arena, &idata2->data, str8_struct(import_entry)); - coff_obj_writer_section_push_reloc(obj_writer, idata2, OffsetOf(PE_ImportEntry, name_voff), idata6_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, idata2, OffsetOf(PE_ImportEntry, lookup_table_voff), idata4_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, idata2, OffsetOf(PE_ImportEntry, import_addr_table_voff), idata5_symbol, COFF_Reloc_X64_Addr32Nb); - } - - String8 obj = coff_obj_writer_serialize(arena, obj_writer); - - coff_obj_writer_release(&obj_writer); - - scratch_end(scratch); - ProfEnd(); - return obj; -} - -internal String8 -lnk_build_null_import_descriptor_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); - - String8 debug_symbols; - { - CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; - String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); - debug_symbols = lnk_make_debug_s(obj_writer->arena, symbol_list); - } - - PE_ImportEntry *import_desc = push_array(obj_writer->arena, PE_ImportEntry, 1); - COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); - COFF_ObjSection *idata3 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$3"), LNK_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(import_desc)); - - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@comp.id"), 0x01018175, COFF_SymStorageClass_Static); - coff_obj_writer_push_symbol_external(obj_writer, str8_lit("__NULL_IMPORT_DESCRIPTOR"), 0, idata3); - - String8 obj = coff_obj_writer_serialize(arena, obj_writer); - - coff_obj_writer_release(&obj_writer); - - scratch_end(scratch); - ProfEnd(); - return obj; -} - -internal String8 -lnk_build_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - Assert(str8_match_lit("dll", str8_skip_last_dot(dll_name), StringMatchFlag_CaseInsensitive|StringMatchFlag_RightSideSloppy)); - - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); - - String8 debug_symbols; - { - CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; - String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); - debug_symbols = lnk_make_debug_s(obj_writer->arena, symbol_list); - } - - COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); - COFF_ObjSection *idata4 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$4"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite, str8_zero()); - COFF_ObjSection *idata5 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$5"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite, str8_zero()); - - U64 import_size = coff_word_size_from_machine(machine); - - U8 *null_thunk = push_array(obj_writer->arena, U8, import_size); - U8 *null_lookup = push_array(obj_writer->arena, U8, import_size); - - str8_list_push(obj_writer->arena, &idata5->data, str8_array(null_thunk, import_size)); - str8_list_push(obj_writer->arena, &idata4->data, str8_array(null_lookup, import_size)); - - idata4->flags |= coff_section_flag_from_align_size(import_size); - idata5->flags |= coff_section_flag_from_align_size(import_size); - - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@comp.id"), 0x1018175, COFF_SymStorageClass_Static); - { - String8 dll_name_no_ext = str8_chop_last_dot(dll_name); - String8 symbol_name = push_str8f(arena, "\x7f%S_NULL_THUNK_DATA", dll_name_no_ext); - coff_obj_writer_push_symbol_external(obj_writer, symbol_name, 0, idata5); - } - - String8 obj = coff_obj_writer_serialize(arena, obj_writer); - - coff_obj_writer_release(&obj_writer); - - scratch_end(scratch); - ProfEnd(); - return obj; -} - internal String8 lnk_build_lib_member_header(Arena *arena, String8 name, COFF_TimeStamp time_stamp, U16 user_id, U16 group_id, U16 mode, U32 size) { diff --git a/src/linker/lnk_lib.h b/src/linker/lnk_lib.h index 2c07ec1e..fe579bb5 100644 --- a/src/linker/lnk_lib.h +++ b/src/linker/lnk_lib.h @@ -128,9 +128,6 @@ internal String8List lnk_coff_archive_from_lib_build(Arena *arena, LNK_LibBu //////////////////////////////// internal LNK_LibBuild lnk_build_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ObjList obj_list, LNK_ExportTable *exptab); -internal String8 lnk_build_import_entry_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine); -internal String8 lnk_build_null_import_descriptor_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine); -internal String8 lnk_build_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine); internal String8 lnk_build_lib_member_header(Arena *arena, String8 name, COFF_TimeStamp time_stamp, U16 user_id, U16 group_id, U16 mode, U32 size); internal String8List lnk_build_import_lib(TP_Context *tp, TP_Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 lib_name, String8 dll_name, LNK_ExportTable *exptab); diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index b77d2d73..aaf9c583 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -317,7 +317,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) } if (coff_info.machine != COFF_MachineType_Unknown && task->machine != coff_info.machine) { - lnk_error_with_loc(LNK_Error_IncompatibleObj, input->path, input->lib_path, + lnk_error_with_loc(LNK_Error_IncompatibleMachine, input->path, input->lib_path, "conflicting machine types expected %S but got %S", coff_string_from_machine_type(task->machine), coff_string_from_machine_type(coff_info.machine)); diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index 79f6a3fe..ef027153 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -259,6 +259,9 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) lnk_supplement_error("%S", src->obj->path); } } + else if (dst->type == LNK_Symbol_Import) { + can_replace = 1; + } // defined VA vs defined chunk else if (LNK_Symbol_IsDefined(dst->type) && dst->u.defined.value_type == LNK_DefinedSymbolValue_VA && LNK_Symbol_IsDefined(src->type)) { @@ -556,6 +559,7 @@ lnk_symbol_table_push_hash(LNK_SymbolTable *symtab, U64 hash, LNK_Symbol *symbol switch (symbol->type) { case LNK_Symbol_Null: break; + case LNK_Symbol_Import: case LNK_Symbol_DefinedExtern: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], &symtab->chunk_lists[LNK_SymbolScopeIndex_Defined][0], LNK_SymbolScopeIndex_Defined, hash, symbol); } break; diff --git a/src/linker/lnk_symbol_table.h b/src/linker/lnk_symbol_table.h index 29326d6d..a6be9f8a 100644 --- a/src/linker/lnk_symbol_table.h +++ b/src/linker/lnk_symbol_table.h @@ -88,6 +88,7 @@ typedef enum LNK_Symbol_Weak, LNK_Symbol_Lazy, LNK_Symbol_Undefined, + LNK_Symbol_Import, } LNK_SymbolType; typedef struct LNK_Symbol From b9768be4ed87831d48a406845343f6ca33bdb0f6 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 21 Apr 2025 11:27:05 -0700 Subject: [PATCH 052/372] tester for linkers --- src/base/base_strings.c | 10 + src/coff/coff_obj_writer.c | 186 +++++++---- src/coff/coff_obj_writer.h | 11 + src/os/core/linux/os_core_linux.c | 6 + src/os/core/os_core.h | 1 + src/os/core/win32/os_core_win32.c | 16 + src/pe/pe.c | 16 + src/torture/torture.c | 496 ++++++++++++++++++++++++++++++ 8 files changed, 688 insertions(+), 54 deletions(-) create mode 100644 src/torture/torture.c diff --git a/src/base/base_strings.c b/src/base/base_strings.c index 3aa6019b..450b804a 100644 --- a/src/base/base_strings.c +++ b/src/base/base_strings.c @@ -1197,6 +1197,16 @@ str8_array_from_list(Arena *arena, String8List *list) return array; } +internal String8Array * +str8_array_from_list_arr(Arena *arena, String8List **lists, U64 count) +{ + String8Array *result = push_array(arena, String8Array, count); + for (U64 idx = 0; idx < count; idx += 1) { + result[idx] = str8_array_from_list(arena, lists[idx]); + } + return result; +} + internal String8Array str8_array_reserve(Arena *arena, U64 count) { diff --git a/src/coff/coff_obj_writer.c b/src/coff/coff_obj_writer.c index d804e2cd..d9380f94 100644 --- a/src/coff/coff_obj_writer.c +++ b/src/coff/coff_obj_writer.c @@ -29,7 +29,6 @@ coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer, String8 name, U32 value, s->loc = loc; s->type = type; s->storage_class = storage_class; - s->idx = obj_writer->symbol_count-1; return s; } @@ -48,9 +47,41 @@ internal COFF_ObjSymbol * coff_obj_writer_push_symbol_static(COFF_ObjWriter *obj_writer, String8 name, U32 off, COFF_ObjSection *section) { COFF_SymbolLocation loc = {0}; - loc.type = COFF_SymbolLocation_Section; - loc.u.section = section; - COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, off, loc, (COFF_SymbolType){0}, COFF_SymStorageClass_Static); + loc.type = COFF_SymbolLocation_Section; + loc.u.section = section; + + COFF_SymbolType symtype = {0}; + + COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, off, loc, symtype, COFF_SymStorageClass_Static); + return s; +} + +internal COFF_ObjSymbol * +coff_obj_writer_push_symbol_secdef(COFF_ObjWriter *obj_writer, COFF_ObjSection *section, COFF_ComdatSelectType selection) +{ + COFF_ObjSymbol *s = coff_obj_writer_push_symbol_static(obj_writer, section->name, 0, section); + + COFF_ObjSymbolSecDef *sd = push_array(obj_writer->arena, COFF_ObjSymbolSecDef, 1); + sd->selection = selection; + + str8_list_push(obj_writer->arena, &s->aux_symbols, str8_struct(sd)); + + return s; +} + +internal COFF_ObjSymbol * +coff_obj_writer_push_symbol_weak(COFF_ObjWriter *obj_writer, String8 name, COFF_WeakExtType characteristics, COFF_ObjSymbol *tag) +{ + COFF_SymbolLocation loc = {0}; + COFF_SymbolType symtype = {0}; + COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, COFF_Symbol_UndefinedSection, loc, symtype, COFF_SymStorageClass_WeakExternal); + + COFF_ObjSymbolWeak *weak_ext = push_array(obj_writer->arena, COFF_ObjSymbolWeak, 1); + weak_ext->tag = tag; + weak_ext->characteristics = characteristics; + + str8_list_push(obj_writer->arena, &s->aux_symbols, str8_struct(weak_ext)); + return s; } @@ -73,6 +104,15 @@ coff_obj_writer_push_symbol_undef(COFF_ObjWriter *obj_writer, String8 name) return s; } +internal COFF_ObjSymbol * +coff_obj_writer_push_symbol_undef_section(COFF_ObjWriter *obj_writer, String8 name, COFF_SectionFlags flags) +{ + COFF_SymbolType type = {0}; + COFF_SymbolLocation loc = { COFF_SymbolLocation_Undef }; + COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, flags, loc, type, COFF_SymStorageClass_Section); + return s; +} + internal COFF_ObjSymbol * coff_obj_writer_push_symbol_undef_func(COFF_ObjWriter *obj_writer, String8 name) { @@ -161,7 +201,7 @@ coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer) str8_list_push(scratch.arena, &string_table, str8_struct(string_table_size)); // - // + // assing section numbers // U64 obj_sections_count; COFF_ObjSection **obj_sections; @@ -178,6 +218,90 @@ coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer) } AssertAlways(obj_sections_count <= max_U16); + // + // serialize symbol table + // + String8List symbol_table = {0}; + { + U64 symbol_idx = 0; + for (COFF_ObjSymbolNode *symbol_n = obj_writer->symbol_first; symbol_n != 0; symbol_n = symbol_n->next) { + COFF_ObjSymbol *s = &symbol_n->v; + + // assign symbol index + s->idx = symbol_idx++; + + COFF_Symbol16 *d = push_array(scratch.arena, COFF_Symbol16, 1); + str8_list_push(scratch.arena, &symbol_table, str8_struct(d)); + + COFF_SymbolName name = {0}; + // long name + if (s->name.size > sizeof(name.short_name)) { + U64 string_table_offset = string_table.total_size; + str8_list_push_cstr(scratch.arena, &string_table, s->name); + + name.long_name.zeroes = 0; + name.long_name.string_table_offset = safe_cast_u32(string_table_offset); + } + // short name + else { + MemoryCopyStr8(name.short_name, s->name); + MemoryZeroTyped(name.short_name + s->name.size, sizeof(name.short_name) - s->name.size); + } + + // symbol header + AssertAlways(s->aux_symbols.node_count <= max_U8); + d->name = name; + d->value = s->value; + switch (s->loc.type) { + case COFF_SymbolLocation_Null: break; + case COFF_SymbolLocation_Section: d->section_number = safe_cast_u16(s->loc.u.section->section_number); break; + case COFF_SymbolLocation_Abs: d->section_number = COFF_Symbol_AbsSection16; break; + case COFF_SymbolLocation_Undef: d->section_number = COFF_Symbol_UndefinedSection; break; + } + d->type = s->type; + d->storage_class = s->storage_class; + d->aux_symbol_count = 0; + + U64 start_symbol_idx = symbol_idx; + if (s->storage_class == COFF_SymStorageClass_WeakExternal) { + Assert(s->aux_symbols.node_count <= 1); + + if (s->aux_symbols.node_count == 1) { + COFF_ObjSymbolWeak *s_weak = (COFF_ObjSymbolWeak *)s->aux_symbols.first->string.str; + COFF_SymbolWeakExt *d_weak = push_array(scratch.arena, COFF_SymbolWeakExt, 1); + d_weak->tag_index = s_weak->tag->idx; + d_weak->characteristics = s_weak->characteristics; + + str8_list_push(scratch.arena, &symbol_table, str8_struct(d_weak)); + symbol_idx += 1; + } + } else if (s->storage_class == COFF_SymStorageClass_Static) { + Assert(s->aux_symbols.node_count <= 1); + + if (s->aux_symbols.node_count == 1) { + Assert(s->loc.type == COFF_SymbolLocation_Section); + COFF_ObjSection *sect = s->loc.u.section; + + COFF_ObjSymbolSecDef *s_sd = (COFF_ObjSymbolSecDef *)s->aux_symbols.first->string.str; + COFF_SymbolSecDef *d_sd = push_array(scratch.arena, COFF_SymbolSecDef, 1); + + d_sd->length = safe_cast_u32(sect->data.total_size); + d_sd->number_of_relocations = (U16)sect->reloc_count; + d_sd->check_sum = 0; + d_sd->number_lo = (U16)sect->section_number; + d_sd->selection = s_sd->selection; + + str8_list_push(scratch.arena, &symbol_table, str8_struct(d_sd)); + symbol_idx += 1; + } + } else { + Assert(s->aux_symbols.node_count == 0); + } + + d->aux_symbol_count = (U8)(symbol_idx - start_symbol_idx); + } + } + // // file header // @@ -186,7 +310,7 @@ coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer) file_header->section_count = obj_sections_count; file_header->time_stamp = obj_writer->time_stamp; file_header->symbol_table_foff = 0; - file_header->symbol_count = safe_cast_u32(obj_writer->symbol_count); + file_header->symbol_count = safe_cast_u32(symbol_table.node_count); file_header->optional_header_size = 0; file_header->flags = 0; str8_list_push(scratch.arena, &srl, str8_struct(file_header)); @@ -256,55 +380,9 @@ coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer) // // symbol table // - if (obj_writer->symbol_count) { + if (symbol_table.total_size) { file_header->symbol_table_foff = srl.total_size; - COFF_Symbol16 *symtab = push_array(scratch.arena, COFF_Symbol16, obj_writer->symbol_count); - str8_list_push(scratch.arena, &srl, str8_array(symtab, obj_writer->symbol_count)); - { - U64 symbol_idx = 0; - for (COFF_ObjSymbolNode *symbol_n = obj_writer->symbol_first; symbol_n != 0; symbol_n = symbol_n->next) { - COFF_ObjSymbol *s = &symbol_n->v; - COFF_Symbol16 *d = &symtab[symbol_idx]; - - COFF_SymbolName name = {0}; - // long name - if (s->name.size > sizeof(name.short_name)) { - U64 string_table_offset = string_table.total_size; - str8_list_push_cstr(scratch.arena, &string_table, s->name); - - name.long_name.zeroes = 0; - name.long_name.string_table_offset = safe_cast_u32(string_table_offset); - } - // short name - else { - MemoryCopyStr8(name.short_name, s->name); - MemoryZeroTyped(name.short_name + s->name.size, sizeof(name.short_name) - s->name.size); - } - - // symbol header - AssertAlways(s->aux_symbols.node_count <= max_U8); - d->name = name; - d->value = s->value; - switch (s->loc.type) { - case COFF_SymbolLocation_Null: break; - case COFF_SymbolLocation_Section: d->section_number = safe_cast_u16(s->loc.u.section->section_number); break; - case COFF_SymbolLocation_Abs: d->section_number = COFF_Symbol_AbsSection16; break; - case COFF_SymbolLocation_Undef: d->section_number = COFF_Symbol_UndefinedSection; break; - } - d->type = s->type; - d->storage_class = s->storage_class; - d->aux_symbol_count = (U8)s->aux_symbols.node_count; - - // aux symbols - symbol_idx += 1; - for (String8Node *aux_n = s->aux_symbols.first; aux_n != 0; aux_n = aux_n->next, symbol_idx += 1) { - AssertAlways(aux_n->string.size <= sizeof(COFF_Symbol16)); - COFF_Symbol16 *a = &symtab[symbol_idx]; - MemoryZeroStruct(a); - MemoryCopyStr8(a, aux_n->string); - } - } - } + str8_list_concat_in_place(&srl, &symbol_table); } // diff --git a/src/coff/coff_obj_writer.h b/src/coff/coff_obj_writer.h index 6a203d60..f7c217d5 100644 --- a/src/coff/coff_obj_writer.h +++ b/src/coff/coff_obj_writer.h @@ -17,6 +17,17 @@ typedef struct COFF_SymbolLocation } u; } COFF_SymbolLocation; +typedef struct COFF_ObjSymbolWeak +{ + struct COFF_ObjSymbol *tag; + COFF_WeakExtType characteristics; +} COFF_ObjSymbolWeak; + +typedef struct COFF_ObjSymbolSecDef +{ + COFF_ComdatSelectType selection; +} COFF_ObjSymbolSecDef; + typedef struct COFF_ObjSymbol { String8 name; diff --git a/src/os/core/linux/os_core_linux.c b/src/os/core/linux/os_core_linux.c index 83921594..6d8ceb99 100644 --- a/src/os/core/linux/os_core_linux.c +++ b/src/os/core/linux/os_core_linux.c @@ -774,6 +774,12 @@ os_process_join(OS_Handle handle, U64 endt_us) NotImplemented; } +internal B32 +os_process_join_exit_code(OS_Handle handle, U64 endt_us, int *exit_code_out) +{ + NotImplemented; +} + internal void os_process_detach(OS_Handle handle) { diff --git a/src/os/core/os_core.h b/src/os/core/os_core.h index 922f793c..84ce63d5 100644 --- a/src/os/core/os_core.h +++ b/src/os/core/os_core.h @@ -255,6 +255,7 @@ internal void os_sleep_milliseconds(U32 msec); internal OS_Handle os_process_launch(OS_ProcessLaunchParams *params); internal B32 os_process_join(OS_Handle handle, U64 endt_us); +internal B32 os_process_join_exit_code(OS_Handle handle, U64 endt_us, int *exit_code_out); internal void os_process_detach(OS_Handle handle); //////////////////////////////// diff --git a/src/os/core/win32/os_core_win32.c b/src/os/core/win32/os_core_win32.c index cdb2c2e6..650ece89 100644 --- a/src/os/core/win32/os_core_win32.c +++ b/src/os/core/win32/os_core_win32.c @@ -1070,6 +1070,22 @@ os_process_join(OS_Handle handle, U64 endt_us) return (result == WAIT_OBJECT_0); } +internal B32 +os_process_join_exit_code(OS_Handle handle, U64 endt_us, int *exit_code_out) +{ + B32 result = 0; + if(os_process_join(handle, endt_us)) + { + DWORD exit_code; + if(GetExitCodeProcess((HANDLE)handle.u64[0], &exit_code)) + { + *exit_code_out = exit_code; + result = 1; + } + } + return result; +} + internal void os_process_detach(OS_Handle handle) { diff --git a/src/pe/pe.c b/src/pe/pe.c index cf7cedfb..eaffd5f5 100644 --- a/src/pe/pe.c +++ b/src/pe/pe.c @@ -1742,3 +1742,19 @@ pe_compute_checksum(U8 *buffer, U64 buffer_size) return hash; } +//////////////////////////////// + +internal B32 +pe_has_plus_header(COFF_MachineType machine) +{ + B32 has_plus_header = 0; + switch (machine) { + case COFF_MachineType_X86: { + has_plus_header = 0; + } break; + case COFF_MachineType_X64: { + has_plus_header = 1; + } break; + } + return has_plus_header; +} diff --git a/src/torture/torture.c b/src/torture/torture.c new file mode 100644 index 00000000..af4fb94e --- /dev/null +++ b/src/torture/torture.c @@ -0,0 +1,496 @@ +// Copyright (c) 2025 Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +// Build Options + +#define BUILD_CONSOLE_INTERFACE 1 +#define BUILD_TITLE "TORTURE" + +//////////////////////////////// + +#include "base/base_inc.h" +#include "os/os_inc.h" +#include "coff/coff.h" +#include "coff/coff_enum.h" +#include "coff/coff_parse.h" +#include "coff/coff_obj_writer.h" +#include "pe/pe.h" + +#include "base/base_inc.c" +#include "os/os_inc.c" +#include "coff/coff.c" +#include "coff/coff_enum.c" +#include "coff/coff_parse.c" +#include "coff/coff_obj_writer.c" +#include "pe/pe.c" + +#include "linker/lnk_cmd_line.h" +#include "linker/lnk_cmd_line.c" + +//////////////////////////////// + +typedef enum +{ + T_Result_Fail, + T_Result_Crash, + T_Result_Pass, +} T_Result; + +typedef T_Result (*T_Run)(void); + +internal char * +t_string_from_result(T_Result v) +{ + switch (v) { + case T_Result_Fail: return "FAIL"; + case T_Result_Crash: return "CRASH"; + case T_Result_Pass: return "PASS"; + } + return 0; +} + +global String8 g_linker; +global String8 g_wdir; +global String8 g_out = str8_lit_comp("torture_out"); +global B32 g_verbose; + +internal int +t_invoke_linker(String8 cmdline) +{ + Temp scratch = scratch_begin(0,0); + + // + // Build Launch Options + // + OS_ProcessLaunchParams launch_opts = {0}; + launch_opts.path = g_wdir; + launch_opts.inherit_env = 1; + str8_list_push(scratch.arena, &launch_opts.cmd_line, g_linker); + str8_list_push(scratch.arena, &launch_opts.cmd_line, str8_lit("/nologo")); + { + String8List parsed_cmdline = lnk_arg_list_parse_windows_rules(scratch.arena, cmdline); + str8_list_concat_in_place(&launch_opts.cmd_line, &parsed_cmdline); + } + + // + // Invoke Linker + // + int exit_code = -1; + { + if (g_verbose) { + String8 full_cmd_line = str8_list_join(scratch.arena, &launch_opts.cmd_line, &(StringJoin){ .sep = str8_lit(" ") }); + fprintf(stdout, "Command Line: %.*s\n", str8_varg(full_cmd_line)); + fprintf(stdout, "Working Dir: %.*s\n", str8_varg(g_wdir)); + } + + OS_Handle linker_handle = os_process_launch(&launch_opts); + if (os_handle_match(linker_handle, os_handle_zero())) { + fprintf(stderr, "unable to start process: %.*s\n", str8_varg(g_linker)); + } else { + B32 was_joined = os_process_join_exit_code(linker_handle, max_U64, &exit_code); + Assert(was_joined); + os_process_detach(linker_handle); + } + } + + scratch_end(scratch); + return exit_code; +} + +internal String8 +t_make_file_path(Arena *arena, String8 name) +{ + return push_str8f(arena, "%S\\%S", g_wdir, name); +} + +internal B32 +t_write_file(String8 name, String8 data) +{ + Temp scratch = scratch_begin(0,0); + String8 path = t_make_file_path(scratch.arena, name); + B32 is_written = os_write_data_to_file_path(path, data); + scratch_end(scratch); + return is_written; +} + +internal String8 +t_read_file(Arena *arena, String8 name) +{ + Temp scratch = scratch_begin(0,0); + String8 path = t_make_file_path(scratch.arena, name); + String8 data = os_data_from_file_path(scratch.arena, path); + scratch_end(scratch); + return data; +} + +typedef struct +{ + T_Run run; + T_Result result; +} T_RunCtx; + +internal void +t_run_caller(void *raw_ctx) +{ + T_RunCtx *ctx = raw_ctx; + ctx->result = ctx->run(); +} + +internal void +t_run_fail_handler(void *raw_ctx) +{ + T_RunCtx *ctx = raw_ctx; + ctx->result = T_Result_Crash; +} + +internal T_Result +t_run(T_Run run) +{ + T_RunCtx ctx = {0}; + ctx.run = run; + os_safe_call(t_run_caller, t_run_fail_handler, &ctx); + return ctx.result; +} + +internal COFF_SectionHeader * +t_coff_section_header_from_name(String8 string_table, COFF_SectionHeader *section_table, U64 section_count, String8 name) +{ + for (U64 sect_idx = 0; sect_idx < section_count; sect_idx += 1) { + COFF_SectionHeader *section_header = §ion_table[sect_idx]; + String8 section_name = coff_name_from_section_header(string_table, section_header); + if (str8_match(section_name, name, 0)) { + return section_header; + } + } + return 0; +} + +//////////////////////////////////////////////////////////////// + +internal T_Result +t_abs_vs_weak(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + U32 abs_value = 0x123; + U8 text_code[] = { 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3 }; + + String8 abs_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("foo"), abs_value, COFF_SymStorageClass_External); + abs_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + String8 text_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + + COFF_ObjSection *mydata = coff_obj_writer_push_section(obj_writer, str8_lit(".mydata"), COFF_SectionFlag_CntCode|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemExecute|COFF_SectionFlag_Align1Bytes, str8_lit("mydata")); + COFF_ObjSymbol *tag = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("mydata"), 0, mydata); + COFF_ObjSymbol *foo = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("foo"), COFF_WeakExt_NoLibrary, tag); + + COFF_ObjSection *text = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), COFF_SectionFlag_CntCode|COFF_SectionFlag_MemExecute|COFF_SectionFlag_MemRead|COFF_SectionFlag_Align1Bytes, str8_array_fixed(text_code)); + coff_obj_writer_section_push_reloc(obj_writer, text, 2, foo, COFF_Reloc_X64_Addr64); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text); + + text_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + { + B32 was_file_written = 0; + was_file_written = t_write_file(str8_lit("abs.obj"), abs_obj); + if (!was_file_written) { + goto exit; + } + was_file_written = t_write_file(str8_lit("text.obj"), text_obj); + if (!was_file_written) { + goto exit; + } + } + + int linker_exit_code = t_invoke_linker(str8_lit("/subsystem:console /entry:my_entry /out:a.exe abs.obj text.obj")); + if (linker_exit_code == 0) { + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *text_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + if (text_section) { + String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + text_section->fsize)); + String8 inst = str8_prefix(text_data, 2); + if (str8_match(inst, str8_array(text_code, 2), 0)) { + String8 imm = str8_prefix(str8_skip(text_data, 2), 8); + U64 expected_imm = abs_value; + if (str8_match(imm, str8_struct(&expected_imm), 0)) { + result = T_Result_Pass; + } + } + } + } + +exit:; + scratch_end(scratch); + return result; +} + +internal String8 +t_make_sec_defn_obj(Arena *arena, String8 payload) +{ + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *mysect_section = coff_obj_writer_push_section(obj_writer, str8_lit(".mysect"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_Align1Bytes, payload); + coff_obj_writer_push_symbol_secdef(obj_writer, mysect_section, COFF_ComdatSelect_Null); + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + coff_obj_writer_release(&obj_writer); + return obj; +} + +internal T_Result +t_undef_section(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + String8 main_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + + U8 data[] = { 0, 0, 0, 0 }; + COFF_ObjSection *data_section = coff_obj_writer_push_section(obj_writer, str8_lit(".data"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite, str8_array_fixed(data)); + COFF_ObjSymbol *foo = coff_obj_writer_push_symbol_undef_section(obj_writer, str8_lit(".mysect"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead); + coff_obj_writer_section_push_reloc(obj_writer, data_section, 0, foo, COFF_Reloc_X64_Addr32Nb); + + U8 text[] = { 0xC3 }; + COFF_ObjSection *text_section = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), COFF_SectionFlag_CntCode|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemExecute, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_section); + + main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + + coff_obj_writer_release(&obj_writer); + } + + U8 payload[] = { 1, 2, 3 }; + String8 sec_defn_obj = t_make_sec_defn_obj(scratch.arena, str8_array_fixed(payload)); + + t_write_file(str8_lit("main.obj"), main_obj); + t_write_file(str8_lit("sec_defn.obj"), sec_defn_obj); + + int linker_exit_code = t_invoke_linker(str8_lit("/subsystem:console /entry:my_entry /out:a.exe main.obj sec_defn.obj")); + if (linker_exit_code == 0) { + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *data_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + COFF_SectionHeader *mysect_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".mysect")); + if (data_section && mysect_section) { + if (data_section->vsize == 4 && mysect_section->vsize == 3) { + String8 addr32nb = str8_substr(exe, rng_1u64(data_section->foff, data_section->foff + data_section->vsize)); + String8 expected_voff = str8_struct(&mysect_section->voff); + if (str8_match(addr32nb, expected_voff, 0)) { + result = T_Result_Pass; + } + } + } + } + + scratch_end(scratch); + return result; +} + +//////////////////////////////////////////////////////////////// + +internal void +entry_point(CmdLine *cmdline) +{ + Temp scratch = scratch_begin(0,0); + + // + // Targets + // + static struct { + char *label; + T_Result (*r)(void); + } target_array[] = { + { "undef_section", t_undef_section }, + { "abs_vs_weak", t_abs_vs_weak }, + }; + + // + // Handle -help + // + { + B32 print_help = cmd_line_has_flag(cmdline, str8_lit("help")) || + cmd_line_has_flag(cmdline, str8_lit("h")) || + cmdline->argc == 1; + if (print_help) { + fprintf(stderr, "--- Help -----------------------------------------------------------------------\n"); + fprintf(stderr, " %s\n\n", BUILD_TITLE_STRING_LITERAL); + fprintf(stderr, " Usage: torture [Options] [Files]\n\n"); + fprintf(stderr, " Options:\n"); + fprintf(stderr, " -linker:{path} Path to PE/COFF linker\n"); + fprintf(stderr, " -target:{name[,name]} Selects targets to test\n"); + fprintf(stderr, " -list Print available test targets and exit\n"); + fprintf(stderr, " -out:{path} Directory path for test outputs (default \"%.*s\")\n", str8_varg(g_out)); + fprintf(stderr, " -verbose Enable verbose mode\n"); + fprintf(stderr, " -help Print help menu and exit\n"); + os_abort(0); + } + } + + // + // Handle -list + // + { + if (cmd_line_has_flag(cmdline, str8_lit("list"))) { + fprintf(stdout, "--- Targets --------------------------------------------------------------------\n"); + for (U64 i = 0; i < ArrayCount(target_array); i += 1) { + fprintf(stdout, " %s\n", target_array[i].label); + } + os_abort(0); + } + } + + + // + // Handle -linker + // + { + CmdLineOpt *linker_opt = cmd_line_opt_from_string(cmdline, str8_lit("linker")); + if (linker_opt == 0) { + linker_opt = cmd_line_opt_from_string(cmdline, str8_lit("l")); + } + if (linker_opt) { + if (linker_opt->value_strings.node_count == 1) { + g_linker = linker_opt->value_string; + } else { + fprintf(stderr, "ERROR: -linker has invalid number of arguments\n"); + os_abort(1); + } + } else { + fprintf(stderr, "ERROR: missing -linker option\n"); + os_abort(1); + } + } + + // + // Handle optional -target + // + String8List target = cmdline->inputs; + { + CmdLineOpt *target_opt = cmd_line_opt_from_string(cmdline, str8_lit("target")); + if (target_opt == 0) { + target_opt = cmd_line_opt_from_string(cmdline, str8_lit("t")); + } + if (target_opt) { + if (target_opt->value_strings.node_count > 0) { + str8_list_concat_in_place(&target, &target_opt->value_strings); + } else { + fprintf(stderr, "ERROR: -target has invalid number of arguments\n"); + } + } + } + + // + // Handle -out + // + { + CmdLineOpt *out_opt = cmd_line_opt_from_string(cmdline, str8_lit("out")); + if (out_opt) { + if (out_opt->value_strings.node_count == 1) { + g_out = out_opt->value_string; + } else { + fprintf(stderr, "ERROR: -out invalid number of arguments"); + } + } + } + + // + // Handle -verbose + // + { + g_verbose = cmd_line_has_flag(cmdline, str8_lit("verbose")); + } + + // + // Make Output Directory + // + os_make_directory(g_out); + if (!os_folder_path_exists(g_out)) { + fprintf(stderr, "ERROR: unable to create output directory \"%.*s\"\n", str8_varg(g_out)); + os_abort(1); + } + + // + // Run Test Targets + // + { + U64 max_label_size = 0; + for (U64 i = 0; i < ArrayCount(target_array); i += 1) { max_label_size = Max(max_label_size, cstring8_length(target_array[i].label)); } + + U64 dots_min = 10; + U64 dots_size = max_label_size+dots_min; + U8 *dots = push_array(scratch.arena, U8, dots_size); + MemorySet(dots, '.', dots_size); + + U64 target_indices_count; + U64 *target_indices; + if (target.node_count == 0) { + target_indices_count = ArrayCount(target_array); + target_indices = push_array(scratch.arena, U64, ArrayCount(target_array)); + for (U64 i = 0; i < target_indices_count; i += 1) { target_indices[i] = i; } + } else { + target_indices_count = 0; + target_indices = push_array(scratch.arena, U64, target.node_count); + + for (String8Node *target_n = target.first; target_n != 0; target_n = target_n->next) { + B32 is_target_unknown = 1; + for (U64 i = 0; i < ArrayCount(target_array); i += 1) { + if (str8_match(str8_cstring(target_array[i].label), target_n->string, 0)) { + target_indices[target_indices_count++] = i; + is_target_unknown = 0; + break; + } + } + if (is_target_unknown) { + fprintf(stderr, "ERROR: unknown target \"%.*s\"\n", str8_varg(target_n->string)); + } + } + } + + for (U64 i = 0; i < target_indices_count; i += 1) { + U64 target_idx = target_indices[i]; + + g_wdir = push_str8f(scratch.arena, "%S\\%s", g_out, target_array[target_idx].label); + g_wdir = os_full_path_from_path(scratch.arena, g_wdir); + os_make_directory(g_wdir); + if (!os_folder_path_exists(g_out)) { + fprintf(stderr, "ERROR: unable to create output directory for test run %.*s\n", str8_varg(g_wdir)); + continue; + } + + T_Result result = t_run(target_array[target_idx].r); + + U64 dots_count = (max_label_size - cstring8_length(target_array[target_idx].label)) + dots_min; + String8 msg = push_str8f(scratch.arena, "%s%.*s%s", target_array[target_idx].label, dots_count, dots, t_string_from_result(result)); + + if (result == T_Result_Pass) { + fprintf(stdout, "\x1b[32m" "%.*s" "\x1b[0m" "\n", str8_varg(msg)); + } else if (result == T_Result_Fail) { + fprintf(stdout, "\x1b[31m" "%.*s" "\x1b[0m" "\n", str8_varg(msg)); + } else if (result == T_Result_Crash) { + fprintf(stdout, "\x1b[33m" "%.*s" "\x1b[0m" "\n", str8_varg(msg)); + } + } + } + + scratch_end(scratch); +} + From 19694dac2a0bb2246bcd654619fcf8a466c1f821 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 22 Apr 2025 10:47:33 -0700 Subject: [PATCH 053/372] test case for merged pdata --- src/torture/torture.c | 68 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 66 insertions(+), 2 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index af4fb94e..11ca6bf9 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -305,6 +305,69 @@ t_undef_section(void) return result; } +internal T_Result +t_find_merged_pdata(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + U8 foobar_payload[] = { + 0x40, 0x57, 0x48, 0x81, 0xEC, 0x00, 0x02, 0x00, 0x00, 0x48, 0x8B, 0x05, 0x00, 0x00, 0x00, 0x00, + 0x48, 0x33, 0xC4, 0x48, 0x89, 0x84, 0x24, 0xF0, 0x01, 0x00, 0x00, 0x48, 0x8D, 0x04, 0x24, 0x48, + 0x8B, 0xF8, 0x33, 0xC0, 0xB9, 0xEC, 0x01, 0x00, 0x00, 0xF3, 0xAA, 0xB8, 0x04, 0x00, 0x00, 0x00, + 0x48, 0x6B, 0xC0, 0x02, 0x8B, 0x04, 0x04, 0x48, 0x8B, 0x8C, 0x24, 0xF0, 0x01, 0x00, 0x00, 0x48, + 0x33, 0xCC, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x48, 0x81, 0xC4, 0x00, 0x02, 0x00, 0x00, 0x5F, 0xC3, + 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, + 0x48, 0x83, 0xEC, 0x28, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x48, 0x83, 0xC4, 0x28, 0xC3 + }; + U8 xdata_payload[] = { + 0x19, 0x1B, 0x03, 0x00, 0x09, 0x01, 0x40, 0x00, 0x02, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xF0, 0x01, 0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x04, 0x42, 0x00, 0x00 + }; + PE_IntelPdata intel_pdata = {0}; + U8 text_payload[] = { 0xC3 }; + + String8 main_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *xdata = coff_obj_writer_push_section(obj_writer, str8_lit(".xdata"), COFF_SectionFlag_MemRead|COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_Align4Bytes, str8_array_fixed(xdata_payload)); + COFF_ObjSection *pdata = coff_obj_writer_push_section(obj_writer, str8_lit(".pdata"), COFF_SectionFlag_MemRead|COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_Align4Bytes, str8_struct(&intel_pdata)); + COFF_ObjSection *foobar = coff_obj_writer_push_section(obj_writer, str8_lit(".foobar"), COFF_SectionFlag_MemRead|COFF_SectionFlag_MemExecute|COFF_SectionFlag_CntCode|COFF_SectionFlag_Align1Bytes, str8_array_fixed(foobar_payload)); + COFF_ObjSection *text = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), COFF_SectionFlag_MemRead|COFF_SectionFlag_MemExecute|COFF_SectionFlag_CntCode|COFF_SectionFlag_Align1Bytes, str8_array_fixed(text_payload)); + + COFF_ObjSymbol *foobar_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("foobar"), 0, foobar); + + coff_obj_writer_push_symbol_secdef(obj_writer, xdata, COFF_ComdatSelect_Null); + COFF_ObjSymbol *unwind_foobar = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("$unwind$foobar"), 0, xdata); + + coff_obj_writer_push_symbol_secdef(obj_writer, pdata, COFF_ComdatSelect_Null); + coff_obj_writer_push_symbol_static(obj_writer, str8_lit("$pdata$foobar"), 0, pdata); + + coff_obj_writer_section_push_reloc(obj_writer, pdata, OffsetOf(PE_IntelPdata, voff_unwind_info), unwind_foobar, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, pdata, OffsetOf(PE_IntelPdata, voff_first), foobar_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, pdata, OffsetOf(PE_IntelPdata, voff_one_past_last), foobar_symbol, COFF_Reloc_X64_Addr32Nb); + + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text); + main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + t_write_file(str8_lit("main.obj"), main_obj); + + int linker_exit_code = t_invoke_linker(str8_lit("/subsystem:console /entry:my_entry /out:a.exe main.obj /merge:.pdata=.rdata")); + if (linker_exit_code == 0) { + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + if (dim_1u64(pe.data_dir_franges[PE_DataDirectoryIndex_EXCEPTIONS]) == 0xC) { + result = T_Result_Pass; + } + } + + scratch_end(scratch); + return result; +} + //////////////////////////////////////////////////////////////// internal void @@ -319,8 +382,9 @@ entry_point(CmdLine *cmdline) char *label; T_Result (*r)(void); } target_array[] = { - { "undef_section", t_undef_section }, - { "abs_vs_weak", t_abs_vs_weak }, + { "undef_section", t_undef_section }, + { "abs_vs_weak", t_abs_vs_weak }, + { "find_merged_pdata", t_find_merged_pdata }, }; // From 88d34eff54ee1d08d72e1bc4d0aedf5e26a83fe3 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 28 Apr 2025 13:51:13 -0700 Subject: [PATCH 054/372] simple link test --- src/torture/torture.c | 100 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index 11ca6bf9..acc3b9c3 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -98,6 +98,18 @@ t_invoke_linker(String8 cmdline) return exit_code; } +internal int +t_invoke_linkerf(char *fmt, ...) +{ + Temp scratch = scratch_begin(0,0); + va_list args; + va_strat(args, fmt); + String8 cmdline = push_str8fv(scratch.arena, fmt, args); + va_end(args); + scratch_end(scratch); + return result; +} + internal String8 t_make_file_path(Arena *arena, String8 name) { @@ -168,6 +180,93 @@ t_coff_section_header_from_name(String8 string_table, COFF_SectionHeader *sectio //////////////////////////////////////////////////////////////// +internal T_Result +t_simple_link_test(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + U8 text_payload[] = { 0xC3 }; + + String8 main_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *text_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), COFF_SectionFlag_CntCode, str8_array_fixed(text_payload)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); + main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + String8 main_obj_name = str8_lit("main.obj"); + if (!t_write_file(main_obj_name, main_obj)) { + goto exit; + } + + int file_align = 512; + int virt_align = 4096; + String8 out_name = str8_lit("a.exe"); + int linker_exit_code = t_invoke_linkerf("/entry:my_entry /subsystem:console /fixed /filealign:%d /align:%d /out:%S %S", file_align, virt_align, out_name, main_obj_name); + if (linker_exit_code == 0) { + String8 exe = t_read_file(scratch.arena, out_name); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + if (pe.is_pe32) { + goto exit; + } + if (pe.section_count == 0) { + goto exit; + } + if (pe.arch != Arch_x64) { + goto exit; + } + if (pe.subsystem != PE_WindowsSubsystem_WINDOWS_CUI) { + goto exit; + } + if (pe.virt_section_align != virt_align) { + goto exit; + } + if (pe.file_section_align != file_align) { + goto exit; + } + if (pe.symbol_count != 0) { + goto exit; + } + + // check section alignment + for (U64 sect_idx = 0; sect_idx < pe.section_count; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + if (AlignPadPow2(text_section->fsize, file_align) != 0) { + goto exit; + } + if (AlignPadPow2(text_section->voff, virt_align) != 0) { + goto exit; + } + } + + COFF_SectionHeader *text_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + if (!text_section) { + goto exit; + } + if (text_section->foff != file_align) { + goto exit; + } + + String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + text_section->vsize)); + if (!str8_match(text_data, str8_array_fixed(text_payload), 0)) { + goto exit; + } + + result = T_Result_Pass; + } + +exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_abs_vs_weak(void) { @@ -382,6 +481,7 @@ entry_point(CmdLine *cmdline) char *label; T_Result (*r)(void); } target_array[] = { + { "simple_link_test", t_simple_link_test }, { "undef_section", t_undef_section }, { "abs_vs_weak", t_abs_vs_weak }, { "find_merged_pdata", t_find_merged_pdata }, From f001f08e042cdf53c676d383a4f1a11d0537fbec Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 28 Apr 2025 13:52:12 -0700 Subject: [PATCH 055/372] string compar funcs --- src/base/base_strings.c | 63 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 2 deletions(-) diff --git a/src/base/base_strings.c b/src/base/base_strings.c index 450b804a..fde890c5 100644 --- a/src/base/base_strings.c +++ b/src/base/base_strings.c @@ -1198,11 +1198,11 @@ str8_array_from_list(Arena *arena, String8List *list) } internal String8Array * -str8_array_from_list_arr(Arena *arena, String8List **lists, U64 count) +str8_array_from_list_arr(Arena *arena, String8List *lists, U64 count) { String8Array *result = push_array(arena, String8Array, count); for (U64 idx = 0; idx < count; idx += 1) { - result[idx] = str8_array_from_list(arena, lists[idx]); + result[idx] = str8_array_from_list(arena, &lists[idx]); } return result; } @@ -2744,6 +2744,65 @@ str8_deserial_read_block(String8 string, U64 off, U64 size, String8 *block_out) } //////////////////////////////// + +internal int +str8_compar(String8 a, String8 b, B32 ignore_case) +{ + int cmp = 0; + U64 size = Min(a.size, b.size); + if (ignore_case) { + for (U64 i = 0; i < size; ++i) { + U8 la = char_to_lower(a.str[i]); + U8 lb = char_to_lower(b.str[i]); + if (la < lb) { + cmp = -1; + break; + } else if (la > lb) { + cmp = +1; + break; + } + } + } else { + for (U64 i = 0; i < size; ++i) { + if (a.str[i] < b.str[i]) { + cmp = -1; + break; + } else if (a.str[i] > b.str[i]) { + cmp = +1; + break; + } + } + } + + if (cmp == 0) { + // shorter prefix must precede longer prefixes + if (a.size > b.size) { + cmp = +1; + } else if (b.size > a.size) { + cmp = -1; + } + } + + return cmp; +} + +internal int +str8_compar_ignore_case(const void *a, const void *b) +{ + return str8_compar(*(String8*)a, *(String8*)b, 1); +} + +internal int +str8_compar_case_sensitive(const void *a, const void *b) +{ + return str8_compar(*(String8*)a, *(String8*)b, 0); +} + +internal int +str8_is_before_case_sensitive(const void *a, const void *b) +{ + int cmp = str8_compar_case_sensitive(a, b); + return cmp < 0; //~ rjf: Basic String Hashes #if !defined(XXH_IMPLEMENTATION) From ada037cb883bdece2fef9e3d120060cc782b189e Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 28 Apr 2025 13:53:18 -0700 Subject: [PATCH 056/372] export range for data directories, subsystem, and check sum --- src/pe/pe.c | 59 ++++++++++++++++++++++++++++++++--------------------- src/pe/pe.h | 31 +++++++++++++++------------- 2 files changed, 53 insertions(+), 37 deletions(-) diff --git a/src/pe/pe.c b/src/pe/pe.c index eaffd5f5..47cb116d 100644 --- a/src/pe/pe.c +++ b/src/pe/pe.c @@ -485,13 +485,16 @@ pe_bin_info_from_data(Arena *arena, String8 data) U64 string_table_off = symbol_array_off + sizeof(COFF_Symbol16) * symbol_count; // rjf: read optional header - U16 optional_magic = 0; - U64 image_base = 0; - U64 entry_point = 0; - U32 data_dir_count = 0; - U64 virt_section_align = 0; - U64 file_section_align = 0; - Rng1U64 *data_dir_franges = 0; + U16 optional_magic = 0; + U64 image_base = 0; + U64 entry_point = 0; + PE_WindowsSubsystem subsystem = 0; + U32 *check_sum = 0; + U32 data_dir_count = 0; + U64 virt_section_align = 0; + U64 file_section_align = 0; + Rng1U64 data_dir_range = {0}; + Rng1U64 *data_dir_franges = 0; if(valid && optional_size > 0) { // rjf: read magic number @@ -504,15 +507,17 @@ pe_bin_info_from_data(Arena *arena, String8 data) { case PE_PE32_MAGIC: { - PE_OptionalHeader32 pe_optional = {0}; - if(str8_deserial_read_struct(data, optional_range.min, &pe_optional) == sizeof(pe_optional)) + PE_OptionalHeader32 *pe_optional = str8_deserial_get_raw_ptr(data, optional_range.min, sizeof(*pe_optional)); + if(pe_optional) { - image_base = pe_optional.image_base; - entry_point = pe_optional.entry_point_va; - virt_section_align = pe_optional.section_alignment; - file_section_align = pe_optional.file_alignment; - reported_data_dir_offset = sizeof(pe_optional); - reported_data_dir_count = pe_optional.data_dir_count; + image_base = pe_optional->image_base; + entry_point = pe_optional->entry_point_va; + subsystem = pe_optional->subsystem; + check_sum = &pe_optional->check_sum; + virt_section_align = pe_optional->section_alignment; + file_section_align = pe_optional->file_alignment; + reported_data_dir_offset = sizeof(*pe_optional); + reported_data_dir_count = pe_optional->data_dir_count; } else { @@ -521,15 +526,17 @@ pe_bin_info_from_data(Arena *arena, String8 data) }break; case PE_PE32PLUS_MAGIC: { - PE_OptionalHeader32Plus pe_optional = {0}; - if(str8_deserial_read_struct(data, optional_range.min, &pe_optional) == sizeof(pe_optional)) + PE_OptionalHeader32Plus *pe_optional = str8_deserial_get_raw_ptr(data, optional_range.min, sizeof(*pe_optional)); + if(pe_optional) { - image_base = pe_optional.image_base; - entry_point = pe_optional.entry_point_va; - virt_section_align = pe_optional.section_alignment; - file_section_align = pe_optional.file_alignment; - reported_data_dir_offset = sizeof(pe_optional); - reported_data_dir_count = pe_optional.data_dir_count; + image_base = pe_optional->image_base; + entry_point = pe_optional->entry_point_va; + subsystem = pe_optional->subsystem; + check_sum = &pe_optional->check_sum; + virt_section_align = pe_optional->section_alignment; + file_section_align = pe_optional->file_alignment; + reported_data_dir_offset = sizeof(*pe_optional); + reported_data_dir_count = pe_optional->data_dir_count; } else { @@ -558,6 +565,9 @@ pe_bin_info_from_data(Arena *arena, String8 data) Assert(!"unable to read data directory"); } } + + // export directory range + data_dir_range = rng_1u64(reported_data_dir_offset, reported_data_dir_offset + data_dir_count * sizeof(PE_DataDirectory)); } // rjf: extract tls header @@ -604,6 +614,8 @@ pe_bin_info_from_data(Arena *arena, String8 data) info.image_base = image_base; info.entry_point = entry_point; info.is_pe32 = (optional_magic == PE_PE32_MAGIC); + info.subsystem = subsystem; + info.check_sum = check_sum; info.virt_section_align = virt_section_align; info.file_section_align = file_section_align; info.section_count = clamped_sec_count; @@ -611,6 +623,7 @@ pe_bin_info_from_data(Arena *arena, String8 data) info.section_table_range = rng_1u64(sec_array_off, sec_array_off + sizeof(COFF_SectionHeader) * clamped_sec_count); info.symbol_table_range = rng_1u64(symbol_array_off, symbol_array_off + sizeof(COFF_Symbol16) * symbol_count); info.string_table_range = rng_1u64(string_table_off, data.size); + info.data_dir_range = data_dir_range; info.data_dir_franges = data_dir_franges; info.data_dir_count = data_dir_count; info.tls_header = tls_header; diff --git a/src/pe/pe.h b/src/pe/pe.h index 61f6c783..3cb49bb9 100644 --- a/src/pe/pe.h +++ b/src/pe/pe.h @@ -993,20 +993,23 @@ struct PE_HandlerScope typedef struct PE_BinInfo PE_BinInfo; struct PE_BinInfo { - Arch arch; - U64 image_base; - U64 entry_point; - B32 is_pe32; - U64 virt_section_align; - U64 file_section_align; - U64 section_count; - U64 symbol_count; - Rng1U64 section_table_range; - Rng1U64 symbol_table_range; - Rng1U64 string_table_range; - Rng1U64 *data_dir_franges; - U32 data_dir_count; - PE_TLSHeader64 tls_header; + Arch arch; + U64 image_base; + U64 entry_point; + B32 is_pe32; + PE_WindowsSubsystem subsystem; + U32 *check_sum; + U64 virt_section_align; + U64 file_section_align; + U64 section_count; + U64 symbol_count; + Rng1U64 section_table_range; + Rng1U64 symbol_table_range; + Rng1U64 string_table_range; + Rng1U64 data_dir_range; + Rng1U64 *data_dir_franges; + U32 data_dir_count; + PE_TLSHeader64 tls_header; }; typedef struct PE_DebugInfo From c2a0a6f1e10d8c51e78cd8b1f8591432fa9b44fc Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 28 Apr 2025 13:54:51 -0700 Subject: [PATCH 057/372] factored out format specific relocation code to COFF layer --- src/coff/coff.c | 88 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/src/coff/coff.c b/src/coff/coff.c index 5b65582a..c2ab20a1 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -179,6 +179,94 @@ coff_apply_size_from_reloc(COFF_MachineType machine, COFF_RelocType x) return 0; } +internal void +coff_apply_reloc_x64(String8 data, + COFF_Reloc_X64 type, + U64 apply_off, + U64 reloc_virtual_offset, + U32 symbol_section_number, + U32 symbol_section_offset, + U32 symbol_virtual_offset, + U64 symbol_address) +{ + U64 reloc_value_size = 0; + S64 reloc_value = 0; + switch (type) { + case COFF_Reloc_X64_Abs: {} break; + case COFF_Reloc_X64_Addr64: { + reloc_value_size = 8; + reloc_value = symbol_address; + } break; + case COFF_Reloc_X64_Addr32: { + reloc_value_size = 4; + reloc_value = safe_cast_u32(symbol_address); + } break; + case COFF_Reloc_X64_Addr32Nb: { + reloc_value_size = 4; + reloc_value = safe_cast_u32(symbol_virtual_offset); + } break; + case COFF_Reloc_X64_Rel32: { + reloc_value_size = 4; + reloc_value = safe_cast_s32(symbol_virtual_offset - reloc_virtual_offset - (4 + 0)); + } break; + case COFF_Reloc_X64_Rel32_1: { + reloc_value_size = 4; + reloc_value = safe_cast_s32(symbol_virtual_offset - reloc_virtual_offset - (4 + 1)); + } break; + case COFF_Reloc_X64_Rel32_2: { + reloc_value_size = 4; + reloc_value = safe_cast_s32(symbol_virtual_offset - reloc_virtual_offset - (4 + 2)); + } break; + case COFF_Reloc_X64_Rel32_3: { + reloc_value_size = 4; + reloc_value = safe_cast_s32(symbol_virtual_offset - reloc_virtual_offset - (4 + 3)); + } break; + case COFF_Reloc_X64_Rel32_4: { + reloc_value_size = 4; + reloc_value = safe_cast_s32(symbol_virtual_offset - reloc_virtual_offset - (4 + 4)); + } break; + case COFF_Reloc_X64_Rel32_5: { + reloc_value_size = 4; + reloc_value = safe_cast_s32(symbol_virtual_offset - reloc_virtual_offset - (4 + 5)); + } break; + case COFF_Reloc_X64_Section: { + reloc_value_size = 4; + reloc_value = symbol_section_number; + } break; + case COFF_Reloc_X64_SecRel: { + reloc_value_size = 4; + reloc_value = symbol_section_offset; + } break; + case COFF_Reloc_X64_SecRel7: { + NotImplemented; + } break; + case COFF_Reloc_X64_Token: { + NotImplemented; + } break; + case COFF_Reloc_X64_SRel32: { + NotImplemented; + } break; + case COFF_Reloc_X64_Pair: { + NotImplemented; + } break; + case COFF_Reloc_X64_SSpan32: { + NotImplemented; + } break; + } + + // read addend + Assert(apply_off + reloc_value_size <= data.size); + U64 raw_addend = 0; + str8_deserial_read(data, apply_off, &raw_addend, reloc_value_size, reloc_value_size); + + // compute new reloc value + S64 addend = extend_sign64(raw_addend, reloc_value_size); + U64 reloc_result = reloc_value + addend; + + // commit new reloc value + MemoryCopy(data.str + apply_off, &reloc_result, reloc_value_size); +} + internal String8 coff_make_import_lookup(Arena *arena, U16 hint, String8 name) { From 3875b057d7fff4af67e8fdef6bcc58e43e742de2 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 28 Apr 2025 13:55:26 -0700 Subject: [PATCH 058/372] delete string compars form linker layer --- src/linker/base_ext/base_strings.c | 60 ------------------------------ src/linker/base_ext/base_strings.h | 4 -- 2 files changed, 64 deletions(-) diff --git a/src/linker/base_ext/base_strings.c b/src/linker/base_ext/base_strings.c index dd1380b1..83b1d81d 100644 --- a/src/linker/base_ext/base_strings.c +++ b/src/linker/base_ext/base_strings.c @@ -1,66 +1,6 @@ // Copyright (c) 2024 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -internal int -str8_compar(String8 a, String8 b, B32 ignore_case) -{ - int cmp = 0; - U64 size = Min(a.size, b.size); - if (ignore_case) { - for (U64 i = 0; i < size; ++i) { - U8 la = char_to_lower(a.str[i]); - U8 lb = char_to_lower(b.str[i]); - if (la < lb) { - cmp = -1; - break; - } else if (la > lb) { - cmp = +1; - break; - } - } - } else { - for (U64 i = 0; i < size; ++i) { - if (a.str[i] < b.str[i]) { - cmp = -1; - break; - } else if (a.str[i] > b.str[i]) { - cmp = +1; - break; - } - } - } - - if (cmp == 0) { - // shorter prefix must precede longer prefixes - if (a.size > b.size) { - cmp = +1; - } else if (b.size > a.size) { - cmp = -1; - } - } - - return cmp; -} - -internal int -str8_compar_ignore_case(const void *a, const void *b) -{ - return str8_compar(*(String8*)a, *(String8*)b, 1); -} - -internal int -str8_compar_case_sensitive(const void *a, const void *b) -{ - return str8_compar(*(String8*)a, *(String8*)b, 0); -} - -internal int -str8_is_before_case_sensitive(const void *a, const void *b) -{ - int cmp = str8_compar_case_sensitive(a, b); - return cmp < 0; -} - internal String8Node * str8_list_push_raw(Arena *arena, String8List *list, void *data_ptr, U64 data_size) { diff --git a/src/linker/base_ext/base_strings.h b/src/linker/base_ext/base_strings.h index fd1c66db..ce683cfe 100644 --- a/src/linker/base_ext/base_strings.h +++ b/src/linker/base_ext/base_strings.h @@ -3,10 +3,6 @@ #pragma once -internal int str8_compar(String8 a, String8 b, B32 ignore_case); -internal int str8_compar_ignore_case(const void *a, const void *b); -internal int str8_compar_case_sensitive(const void *a, const void *b); - #define str8_list_push_struct(a,l,d) str8_list_push_raw(a, l, d, sizeof(*d)) internal String8Node * str8_list_push_raw(Arena *arena, String8List *list, void *data_ptr, U64 data_size); internal U64 str8_list_push_pad(Arena *arena, String8List *list, U64 offset, U64 align); From c56cfefe09e227e58c8dd30a427512aa3c7c7e36 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 28 Apr 2025 13:56:22 -0700 Subject: [PATCH 059/372] move rsp unwrapper to config --- src/linker/lnk_cmd_line.c | 40 --------------------------------------- src/linker/lnk_cmd_line.h | 2 -- src/linker/lnk_config.c | 40 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 42 deletions(-) diff --git a/src/linker/lnk_cmd_line.c b/src/linker/lnk_cmd_line.c index 5d1f6d5f..ee7e76bc 100644 --- a/src/linker/lnk_cmd_line.c +++ b/src/linker/lnk_cmd_line.c @@ -187,46 +187,6 @@ lnk_cmd_line_has_option(LNK_CmdLine cmd_line, char *string) return lnk_cmd_line_has_option_string(cmd_line, str8_cstring(string)); } -internal String8List -lnk_unwrap_rsp(Arena *arena, String8List arg_list) -{ - Temp scratch = scratch_begin(&arena, 1); - - String8List result = {0}; - - for (String8Node *curr = arg_list.first; curr != 0; curr = curr->next) { - B32 is_rsp = str8_match_lit("@", curr->string, StringMatchFlag_RightSideSloppy); - if (is_rsp) { - // remove "@" - String8 name = str8_skip(curr->string, 1); - - if (os_file_path_exists(name)) { - // read rsp from disk - String8 file = lnk_read_data_from_file_path(scratch.arena, name); - - // parse rsp - String8List rsp_args = lnk_arg_list_parse_windows_rules(scratch.arena, file); - - // handle case where rsp references another rsp - String8List list = lnk_unwrap_rsp(arena, rsp_args); - - // push arguments from rsp - list = str8_list_copy(arena, &list); - str8_list_concat_in_place(&result, &list); - } else { - lnk_error(LNK_Error_Cmdl, "unable to find rsp: %S", name); - } - } else { - // push regular argument - String8 str = push_str8_copy(arena, curr->string); - str8_list_push(arena, &result, str); - } - } - - scratch_end(scratch); - return result; -} - internal String8List lnk_data_from_cmd_line(Arena *arena, LNK_CmdLine cmd_line) { diff --git a/src/linker/lnk_cmd_line.h b/src/linker/lnk_cmd_line.h index 2d35832f..ea8d3052 100644 --- a/src/linker/lnk_cmd_line.h +++ b/src/linker/lnk_cmd_line.h @@ -27,7 +27,5 @@ internal B32 lnk_cmd_line_has_option(LNK_CmdLine cmd_line, char *str internal LNK_CmdOption * lnk_cmd_line_push_option(Arena *arena, LNK_CmdLine *cmd_line, char *string, char *value); internal LNK_CmdOption * lnk_cmd_line_push_option_if_not_present(Arena *arena, LNK_CmdLine *cmd_line, char *string, char *value); -internal String8List lnk_unwrap_rsp(Arena *arena, String8List arg_list); - internal String8List lnk_data_from_cmd_line(Arena *arena, LNK_CmdLine cmd_line); diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 86862571..5ef066a4 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -1806,6 +1806,46 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam scratch_end(scratch); } +internal String8List +lnk_unwrap_rsp(Arena *arena, String8List arg_list) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8List result = {0}; + + for (String8Node *curr = arg_list.first; curr != 0; curr = curr->next) { + B32 is_rsp = str8_match_lit("@", curr->string, StringMatchFlag_RightSideSloppy); + if (is_rsp) { + // remove "@" + String8 name = str8_skip(curr->string, 1); + + if (os_file_path_exists(name)) { + // read rsp from disk + String8 file = lnk_read_data_from_file_path(scratch.arena, name); + + // parse rsp + String8List rsp_args = lnk_arg_list_parse_windows_rules(scratch.arena, file); + + // handle case where rsp references another rsp + String8List list = lnk_unwrap_rsp(arena, rsp_args); + + // push arguments from rsp + list = str8_list_copy(arena, &list); + str8_list_concat_in_place(&result, &list); + } else { + lnk_error(LNK_Error_Cmdl, "unable to find rsp: %S", name); + } + } else { + // push regular argument + String8 str = push_str8_copy(arena, curr->string); + str8_list_push(arena, &result, str); + } + } + + scratch_end(scratch); + return result; +} + internal LNK_Config * lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line) { From 01c905dbbd284c1df86348b5ff462d2aee49efd5 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 28 Apr 2025 13:57:22 -0700 Subject: [PATCH 060/372] reuse import table flags, and parameterize data directory count --- src/linker/lnk_config.c | 9 +++++---- src/linker/lnk_config.h | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 5ef066a4..956ebf5f 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -1074,9 +1074,9 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } else { String8 value = value_strings.first->string; if (str8_match_lit("unload", value, StringMatchFlag_CaseInsensitive)) { - config->flags |= LNK_ConfigFlag_DelayUnload; + config->flags |= LNK_ImportTableFlag_EmitUiat; } else if (str8_match_lit("nobind", value, StringMatchFlag_CaseInsensitive)) { - config->flags &= ~LNK_ConfigFlag_DelayBind; + config->flags &= ~LNK_ImportTableFlag_EmitBiat; } else { lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unknown parameter \"%S\"", value); } @@ -1558,7 +1558,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_Rad_DelayBind: { - lnk_cmd_switch_set_flag_64(obj_path, lib_path, cmd_switch, value_strings, &config->flags, LNK_ConfigFlag_DelayBind); + lnk_cmd_switch_set_flag_64(obj_path, lib_path, cmd_switch, value_strings, &config->flags, LNK_ImportTableFlag_EmitBiat); } break; case LNK_CmdSwitch_Rad_DoMerge: { @@ -1918,6 +1918,7 @@ lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line) config->stack_commit = KB(1); config->pdb_hash_type_names = LNK_TypeNameHashMode_None; config->pdb_hash_type_name_length = 8; + config->data_dir_count = PE_DataDirectoryIndex_COUNT; // process command line switches for (LNK_CmdOption *cmd = cmd_line.first_option; cmd != 0; cmd = cmd->next) { @@ -1973,7 +1974,7 @@ lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line) // don't emit bind table with /ALLOWBIND:NO if (config->dll_characteristics & PE_DllCharacteristic_NO_BIND) { - config->flags &= ~LNK_ConfigFlag_DelayBind; + config->flags &= ~LNK_ImportTableFlag_EmitBiat; } // set flags for /OPT diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index 60fb1701..3d06b062 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -198,8 +198,6 @@ enum LNK_ConfigFlag_Fixed = (1 << 0), LNK_ConfigFlag_Merge = (1 << 1), LNK_ConfigFlag_EnvLib = (1 << 2), - LNK_ConfigFlag_DelayUnload = (1 << 3), - LNK_ConfigFlag_DelayBind = (1 << 4), LNK_ConfigFlag_CheckUnusedDelayLoadDll = (1 << 5), LNK_ConfigFlag_NoTsAware = (1 << 6), LNK_ConfigFlag_WriteImageChecksum = (1 << 8), @@ -306,6 +304,7 @@ typedef struct LNK_Config LNK_SwitchState opt_icf; LNK_SwitchState opt_lbr; U64 opt_iter_count; + LNK_ImportTableFlags import_table_flags; LNK_GuardFlags guard_flags; LNK_DebugInfoGuidType guid_type; Guid guid; @@ -374,6 +373,7 @@ typedef struct LNK_Config U64 symbol_table_cap_internal; U64 symbol_table_cap_weak; U64 symbol_table_cap_lib; + U64 data_dir_count; B32 build_imp_lib; B32 build_exp; LNK_SwitchState write_temp_files; From f17ed8485df72e236301f146128d1ace8473b770 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 29 Apr 2025 10:45:05 -0700 Subject: [PATCH 061/372] add tests for symbols with absolute address --- src/torture/torture.c | 247 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 227 insertions(+), 20 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index acc3b9c3..cff56f1f 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -103,11 +103,12 @@ t_invoke_linkerf(char *fmt, ...) { Temp scratch = scratch_begin(0,0); va_list args; - va_strat(args, fmt); + va_start(args, fmt); String8 cmdline = push_str8fv(scratch.arena, fmt, args); + int exit_code = t_invoke_linker(cmdline); va_end(args); scratch_end(scratch); - return result; + return exit_code; } internal String8 @@ -180,6 +181,24 @@ t_coff_section_header_from_name(String8 string_table, COFF_SectionHeader *sectio //////////////////////////////////////////////////////////////// +internal COFF_ObjSection * +t_push_text_section(COFF_ObjWriter *obj_writer, String8 data) +{ + return coff_obj_writer_push_section(obj_writer, str8_lit(".text"), COFF_SectionFlag_CntCode|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemExecute|COFF_SectionFlag_Align1Bytes, data); +} + +internal COFF_ObjSection * +t_push_data_section(COFF_ObjWriter *obj_writer, String8 data) +{ + return coff_obj_writer_push_section(obj_writer, str8_lit(".data"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite, data); +} + +internal COFF_ObjSection * +t_push_rdata_section(COFF_ObjWriter *obj_writer, String8 data) +{ + return coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead, data); +} + internal T_Result t_simple_link_test(void) { @@ -238,10 +257,10 @@ t_simple_link_test(void) // check section alignment for (U64 sect_idx = 0; sect_idx < pe.section_count; sect_idx += 1) { COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - if (AlignPadPow2(text_section->fsize, file_align) != 0) { + if (AlignPadPow2(sect_header->fsize, file_align) != 0) { goto exit; } - if (AlignPadPow2(text_section->voff, virt_align) != 0) { + if (AlignPadPow2(sect_header->voff, virt_align) != 0) { goto exit; } } @@ -313,23 +332,30 @@ t_abs_vs_weak(void) } } - int linker_exit_code = t_invoke_linker(str8_lit("/subsystem:console /entry:my_entry /out:a.exe abs.obj text.obj")); - if (linker_exit_code == 0) { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); + int abs_vs_weak_exit_code = t_invoke_linker(str8_lit("/subsystem:console /entry:my_entry /out:a.exe abs.obj text.obj")); + if (abs_vs_weak_exit_code != 0) { + goto exit; + } - COFF_SectionHeader *text_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_section) { - String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + text_section->fsize)); - String8 inst = str8_prefix(text_data, 2); - if (str8_match(inst, str8_array(text_code, 2), 0)) { - String8 imm = str8_prefix(str8_skip(text_data, 2), 8); - U64 expected_imm = abs_value; - if (str8_match(imm, str8_struct(&expected_imm), 0)) { - result = T_Result_Pass; - } + int weak_vs_abs_exit_code = t_invoke_linker(str8_lit("/subsystem:console /entry:my_entry /out:a.exe text.obj abs.obj")); + if (weak_vs_abs_exit_code != 0) { + goto exit; + } + + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *text_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + if (text_section) { + String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + text_section->fsize)); + String8 inst = str8_prefix(text_data, 2); + if (str8_match(inst, str8_array(text_code, 2), 0)) { + String8 imm = str8_prefix(str8_skip(text_data, 2), 8); + U64 expected_imm = abs_value; + if (str8_match(imm, str8_struct(&expected_imm), 0)) { + result = T_Result_Pass; } } } @@ -339,6 +365,125 @@ exit:; return result; } +internal T_Result +t_abs_vs_regular(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + String8 shared_symbol_name = str8_lit("foo"); + + U8 regular_payload[] = { 0xC0, 0xFF, 0xEE }; + String8 regular_obj_name = str8_lit("regular.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(regular_payload)); + coff_obj_writer_push_symbol_extern(obj_writer, shared_symbol_name, 0, data_sect); + String8 regular_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(regular_obj_name, regular_obj)) { + goto exit; + } + } + + String8 abs_obj_name = str8_lit("abs.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + coff_obj_writer_push_symbol_abs(obj_writer, shared_symbol_name, 0x1234, COFF_SymStorageClass_External); + String8 abs_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(abs_obj_name, abs_obj)) { + goto exit; + } + } + + U8 entry_text[] = { 0xC3 }; + String8 entry_obj_name = str8_lit("entry.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); + String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(entry_obj_name, entry_obj)) { + goto exit; + } + } + + // TODO: validate that linker issues multiply defined symbol error + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe abs.obj regular.obj entry.obj"); + if (linker_exit_code != 0) { + int regular_vs_abs_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe regular.obj abs.obj entry.obj"); + if (regular_vs_abs_exit_code != 0) { + result = T_Result_Pass; + } + } + + exit:; + scratch_end(scratch); + return result; +} + +internal T_Result +t_abs_vs_common(void) +{ + + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + String8 shared_symbol_name = str8_lit("foo"); + + String8 common_obj_name = str8_lit("common.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + coff_obj_writer_push_symbol_common(obj_writer, shared_symbol_name, 321); + String8 common_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(common_obj_name, common_obj)) { + goto exit; + } + } + + String8 abs_obj_name = str8_lit("abs.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + coff_obj_writer_push_symbol_abs(obj_writer, shared_symbol_name, 0x1234, COFF_SymStorageClass_External); + String8 abs_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(abs_obj_name, abs_obj)) { + goto exit; + } + } + + U8 entry_text[] = { 0xC3 }; + String8 entry_obj_name = str8_lit("entry.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); + String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(entry_obj_name, entry_obj)) { + goto exit; + } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe abs.obj common.obj entry.obj"); + if (linker_exit_code == 0) { + // TODO: validate that linker issues multiply defined symbol error + int common_vs_abs = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe common.obj abs.obj entry.obj"); + if (common_vs_abs != 0) { + result = T_Result_Pass; + } + } + +exit:; + scratch_end(scratch); + return result; +} + internal String8 t_make_sec_defn_obj(Arena *arena, String8 payload) { @@ -467,6 +612,65 @@ t_find_merged_pdata(void) return result; } +internal T_Result +t_base_relocs(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + // main.obj + String8 entry_name = str8_lit("my_entry"); + U64 mov_func_name64 = 2; + U64 mov_func_name32 = 16; + U8 main_text[] = { + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // mov rax, func_name + 0xff, 0xd0, // call rax + 0x48, 0x31, 0xc0, // xor rax, rax + 0xb8, 0x00, 0x00, 0x00, 0x00, // mov eax, func_name + 0xff, 0xd0, // call rax + 0xc3 // ret + }; + + // func.obj + String8 func_name = str8_lit("foo"); + U8 func_text[] = { 0xc3 }; + + String8 main_obj_name = str8_lit("main.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(main_text)); + COFF_ObjSymbol *func_undef = coff_obj_writer_push_symbol_undef(obj_writer, func_name); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, mov_func_name64, func_undef, COFF_Reloc_X64_Addr64); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, mov_func_name32, func_undef, COFF_Reloc_X64_Addr32); + coff_obj_writer_push_symbol_extern(obj_writer, entry_name, 0, text_sect); + String8 main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(main_obj_name, main_obj)) { + goto exit; + } + } + + String8 func_obj_name = str8_lit("func.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(func_text)); + coff_obj_writer_push_symbol_extern(obj_writer, func_name, 0, text_sect); + String8 func_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(func_obj_name, func_obj)) { + goto exit; + } + } + + String8 out_name = str8_lit("a.exe"); + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:%S /dynamicbase /dll /largeaddressaware:no /out:%S %S %S", entry_name, out_name, main_obj_name, func_obj_name); + +exit:; + scratch_end(scratch); + return result; +} + //////////////////////////////////////////////////////////////// internal void @@ -484,7 +688,10 @@ entry_point(CmdLine *cmdline) { "simple_link_test", t_simple_link_test }, { "undef_section", t_undef_section }, { "abs_vs_weak", t_abs_vs_weak }, + { "abs_vs_regular", t_abs_vs_regular }, + { "abs_vs_common", t_abs_vs_common }, { "find_merged_pdata", t_find_merged_pdata }, + //{ "base_relocs", t_base_relocs }, }; // From 174c6ebb7d600733f88c8bba9918502145c817c2 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 29 Apr 2025 14:01:04 -0700 Subject: [PATCH 062/372] bugfix data directory range export --- src/pe/pe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pe/pe.c b/src/pe/pe.c index 47cb116d..4cf32c11 100644 --- a/src/pe/pe.c +++ b/src/pe/pe.c @@ -567,7 +567,7 @@ pe_bin_info_from_data(Arena *arena, String8 data) } // export directory range - data_dir_range = rng_1u64(reported_data_dir_offset, reported_data_dir_offset + data_dir_count * sizeof(PE_DataDirectory)); + data_dir_range = rng_1u64(optional_range.min + reported_data_dir_offset, optional_range.min + reported_data_dir_offset + data_dir_count * sizeof(PE_DataDirectory)); } // rjf: extract tls header From 2c6db1b566b275ca045db5f891aa765cc3c63f6c Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 29 Apr 2025 14:01:57 -0700 Subject: [PATCH 063/372] update COFF type enum strings --- src/coff/coff_enum.c | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/coff/coff_enum.c diff --git a/src/coff/coff_enum.c b/src/coff/coff_enum.c new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/src/coff/coff_enum.c @@ -0,0 +1 @@ + From f39397fa782ff729dccdb88f76b4cd90477f2ef9 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 30 Apr 2025 11:47:06 -0700 Subject: [PATCH 064/372] test cycles made from weak symbols --- src/coff/coff_obj_writer.c | 29 +++-- src/coff/coff_obj_writer.h | 3 +- src/os/core/linux/os_core_linux.c | 6 + src/os/core/os_core.h | 1 + src/os/core/win32/os_core_win32.c | 8 ++ src/torture/torture.c | 204 +++++++++++++++++++++++++++++- 6 files changed, 236 insertions(+), 15 deletions(-) diff --git a/src/coff/coff_obj_writer.c b/src/coff/coff_obj_writer.c index d9380f94..3200e75e 100644 --- a/src/coff/coff_obj_writer.c +++ b/src/coff/coff_obj_writer.c @@ -149,6 +149,16 @@ coff_obj_writer_push_symbol_sect(COFF_ObjWriter *obj_writer, String8 name, COFF_ return s; } +internal COFF_ObjSymbol * +coff_obj_writer_push_symbol_common(COFF_ObjWriter *obj_writer, String8 name, U32 size) +{ + COFF_SymbolType type = {0}; + COFF_SymbolLocation loc = {0}; + loc.type = COFF_SymbolLocation_Common; + COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, size, loc, type, COFF_SymStorageClass_External); + return s; +} + internal COFF_ObjSection * coff_obj_writer_push_section(COFF_ObjWriter *obj_writer, String8 name, COFF_SectionFlags flags, String8 data) { @@ -264,9 +274,7 @@ coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer) U64 start_symbol_idx = symbol_idx; if (s->storage_class == COFF_SymStorageClass_WeakExternal) { - Assert(s->aux_symbols.node_count <= 1); - - if (s->aux_symbols.node_count == 1) { + if (s->aux_symbols.node_count > 0) { COFF_ObjSymbolWeak *s_weak = (COFF_ObjSymbolWeak *)s->aux_symbols.first->string.str; COFF_SymbolWeakExt *d_weak = push_array(scratch.arena, COFF_SymbolWeakExt, 1); d_weak->tag_index = s_weak->tag->idx; @@ -276,9 +284,7 @@ coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer) symbol_idx += 1; } } else if (s->storage_class == COFF_SymStorageClass_Static) { - Assert(s->aux_symbols.node_count <= 1); - - if (s->aux_symbols.node_count == 1) { + if (s->aux_symbols.node_count > 0) { Assert(s->loc.type == COFF_SymbolLocation_Section); COFF_ObjSection *sect = s->loc.u.section; @@ -294,11 +300,16 @@ coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer) str8_list_push(scratch.arena, &symbol_table, str8_struct(d_sd)); symbol_idx += 1; } - } else { - Assert(s->aux_symbols.node_count == 0); } - d->aux_symbol_count = (U8)(symbol_idx - start_symbol_idx); + U8 processed_aux_symbol_count = (U8)(symbol_idx - start_symbol_idx); + + for (U64 aux_idx = processed_aux_symbol_count; aux_idx < s->aux_symbols.node_count; aux_idx += 1) { + COFF_Symbol16 *a = push_array(scratch.arena, COFF_Symbol16, 1); + str8_list_push(scratch.arena, &symbol_table, str8_struct(a)); + } + + d->aux_symbol_count = (U8)s->aux_symbols.node_count; } } diff --git a/src/coff/coff_obj_writer.h b/src/coff/coff_obj_writer.h index f7c217d5..a42c2c75 100644 --- a/src/coff/coff_obj_writer.h +++ b/src/coff/coff_obj_writer.h @@ -6,7 +6,8 @@ typedef enum COFF_SymbolLocation_Null, COFF_SymbolLocation_Section, COFF_SymbolLocation_Abs, - COFF_SymbolLocation_Undef + COFF_SymbolLocation_Undef, + COFF_SymbolLocation_Common, } COFF_SymbolLocationType; typedef struct COFF_SymbolLocation diff --git a/src/os/core/linux/os_core_linux.c b/src/os/core/linux/os_core_linux.c index 6d8ceb99..38d2046f 100644 --- a/src/os/core/linux/os_core_linux.c +++ b/src/os/core/linux/os_core_linux.c @@ -786,6 +786,12 @@ os_process_detach(OS_Handle handle) NotImplemented; } +internal B32 +os_process_kill(OS_Handle handle) +{ + NotImplemented; +} + //////////////////////////////// //~ rjf: @os_hooks Threads (Implemented Per-OS) diff --git a/src/os/core/os_core.h b/src/os/core/os_core.h index 84ce63d5..415bb662 100644 --- a/src/os/core/os_core.h +++ b/src/os/core/os_core.h @@ -257,6 +257,7 @@ internal OS_Handle os_process_launch(OS_ProcessLaunchParams *params); internal B32 os_process_join(OS_Handle handle, U64 endt_us); internal B32 os_process_join_exit_code(OS_Handle handle, U64 endt_us, int *exit_code_out); internal void os_process_detach(OS_Handle handle); +internal B32 os_process_kill(OS_Handle handle); //////////////////////////////// //~ rjf: @os_hooks Threads (Implemented Per-OS) diff --git a/src/os/core/win32/os_core_win32.c b/src/os/core/win32/os_core_win32.c index 650ece89..65d7926d 100644 --- a/src/os/core/win32/os_core_win32.c +++ b/src/os/core/win32/os_core_win32.c @@ -1086,6 +1086,14 @@ os_process_join_exit_code(OS_Handle handle, U64 endt_us, int *exit_code_out) return result; } +internal B32 +os_process_kill(OS_Handle handle) +{ + HANDLE process = (HANDLE)handle.u64[0]; + BOOL was_terminated = TerminateProcess(process, 999); + return was_terminated; +} + internal void os_process_detach(OS_Handle handle) { diff --git a/src/torture/torture.c b/src/torture/torture.c index cff56f1f..ba1f4b3b 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -50,13 +50,42 @@ t_string_from_result(T_Result v) return 0; } +global U64 g_linker_time_out; global String8 g_linker; global String8 g_wdir; global String8 g_out = str8_lit_comp("torture_out"); global B32 g_verbose; +#define T_LINKER_TIME_OUT_EXIT_CODE 999999 + +typedef enum +{ + T_Linker_Null, + T_Linker_RAD, + T_Linker_MSVC, + T_Linker_LLVM +} T_Linker; + +internal T_Linker +t_ident_linker(void) +{ + String8 name = g_linker; + name = str8_skip_last_slash(name); + name = str8_chop_last_dot(name); + if (str8_match(name, str8_lit("radlink"), StringMatchFlag_CaseInsensitive)) { + return T_Linker_RAD; + } + if (str8_match(name, str8_lit("link"), StringMatchFlag_CaseInsensitive)) { + return T_Linker_MSVC; + } + if (str8_match(name, str8_lit("lld-link"), StringMatchFlag_CaseInsensitive)) { + return T_Linker_LLVM; + } + return T_Linker_Null; +} + internal int -t_invoke_linker(String8 cmdline) +t_invoke_linker_with_time_out(U64 time_out, String8 cmdline) { Temp scratch = scratch_begin(0,0); @@ -88,8 +117,11 @@ t_invoke_linker(String8 cmdline) if (os_handle_match(linker_handle, os_handle_zero())) { fprintf(stderr, "unable to start process: %.*s\n", str8_varg(g_linker)); } else { - B32 was_joined = os_process_join_exit_code(linker_handle, max_U64, &exit_code); - Assert(was_joined); + B32 was_joined = os_process_join_exit_code(linker_handle, os_now_microseconds() + time_out, &exit_code); + if (!was_joined) { + os_process_kill(linker_handle); + exit_code = T_LINKER_TIME_OUT_EXIT_CODE; + } os_process_detach(linker_handle); } } @@ -98,6 +130,12 @@ t_invoke_linker(String8 cmdline) return exit_code; } +internal int +t_invoke_linker(String8 cmdline) +{ + return t_invoke_linker_with_time_out(max_U64, cmdline); +} + internal int t_invoke_linkerf(char *fmt, ...) { @@ -111,6 +149,19 @@ t_invoke_linkerf(char *fmt, ...) return exit_code; } +internal int +t_invoke_linker_with_time_outf(U64 time_out, char *fmt, ...) +{ + Temp scratch = scratch_begin(0,0); + va_list args; + va_start(args, fmt); + String8 cmdline = push_str8fv(scratch.arena, fmt, args); + int exit_code = t_invoke_linker_with_time_out(time_out, cmdline); + va_end(args); + scratch_end(scratch); + return exit_code; +} + internal String8 t_make_file_path(Arena *arena, String8 name) { @@ -181,6 +232,11 @@ t_coff_section_header_from_name(String8 string_table, COFF_SectionHeader *sectio //////////////////////////////////////////////////////////////// +typedef enum +{ + T_MsvcLinkExitCode_CorruptOrInvalidSymbolTable = 0x4d3, +} T_MsvcLinkExitCode; + internal COFF_ObjSection * t_push_text_section(COFF_ObjWriter *obj_writer, String8 data) { @@ -190,13 +246,13 @@ t_push_text_section(COFF_ObjWriter *obj_writer, String8 data) internal COFF_ObjSection * t_push_data_section(COFF_ObjWriter *obj_writer, String8 data) { - return coff_obj_writer_push_section(obj_writer, str8_lit(".data"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite, data); + return coff_obj_writer_push_section(obj_writer, str8_lit(".data"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite|COFF_SectionFlag_Align1Bytes, data); } internal COFF_ObjSection * t_push_rdata_section(COFF_ObjWriter *obj_writer, String8 data) { - return coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead, data); + return coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_Align1Bytes, data); } internal T_Result @@ -484,6 +540,82 @@ exit:; return result; } +internal T_Result +t_undef_weak(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + String8 entry_symbol_name = str8_lit("my_entry"); + String8 shared_symbol_name = str8_lit("foo"); + + U8 weak_payload[] = { 0xDE, 0xAD, 0xBE, 0xEF }; + String8 weak_obj_name = str8_lit("weak.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *weak_sect = t_push_data_section(obj_writer, str8_array_fixed(weak_payload)); + COFF_ObjSymbol *tag = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("ptr")); + coff_obj_writer_push_symbol_weak(obj_writer, shared_symbol_name, COFF_WeakExt_SearchAlias, tag); + String8 weak_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(weak_obj_name, weak_obj)) { + goto exit; + } + } + + String8 ptr_obj_name = str8_lit("ptr.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSymbol *tag = coff_obj_writer_push_symbol_undef(obj_writer, entry_symbol_name); + coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("ptr"), COFF_WeakExt_SearchAlias, tag); + String8 ptr_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(ptr_obj_name, ptr_obj)) { + goto exit; + } + } + + U8 undef_obj_payload[] = { 0x00, 0x00, 0x00, 0x00 }; + String8 undef_obj_name = str8_lit("undef.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *undef_sect = t_push_data_section(obj_writer, str8_array_fixed(undef_obj_payload)); + COFF_ObjSymbol *undef_symbol = coff_obj_writer_push_symbol_undef(obj_writer, shared_symbol_name); + coff_obj_writer_section_push_reloc(obj_writer, undef_sect, 0, undef_symbol, COFF_Reloc_X64_Addr32Nb); + String8 undef_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(undef_obj_name, undef_obj)) { + goto exit; + } + } + + U8 entry_payload[] = {0xC3}; + String8 entry_obj_name = str8_lit("entry.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_payload)); + coff_obj_writer_push_symbol_extern(obj_writer, entry_symbol_name, 0, text_sect); + String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(entry_obj_name, entry_obj)) { + goto exit; + } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:%S /out:a.exe %S %S %S %S", entry_symbol_name, weak_obj_name, entry_obj_name, ptr_obj_name, undef_obj_name); + + T_Linker link_ident = t_ident_linker(); + if (link_ident == T_Linker_MSVC && linker_exit_code != T_MsvcLinkExitCode_CorruptOrInvalidSymbolTable) { + goto exit; + } + + +exit:; + scratch_end(scratch); + return result; +} + internal String8 t_make_sec_defn_obj(Arena *arena, String8 payload) { @@ -612,6 +744,66 @@ t_find_merged_pdata(void) return result; } +internal T_Result +t_weak_cycle(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + String8 ab_obj_name = str8_lit("ab.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSymbol *b = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("B")); + coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("A"), COFF_WeakExt_SearchAlias, b); + String8 ab_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(ab_obj_name, ab_obj)) { + goto exit; + } + } + + String8 ba_obj_name = str8_lit("ba.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSymbol *a = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("A")); + coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("B"), COFF_WeakExt_SearchAlias, a); + String8 ba_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(ba_obj_name, ba_obj)) { + goto exit; + } + } + + String8 entry_obj_name = str8_lit("entry.obj"); + U8 entry_payload[] = { 0xC3 }; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_payload)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); + String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(entry_obj_name, entry_obj)) { + goto exit; + } + } + + int linker_exit_code = t_invoke_linker_with_time_outf(3 * 1000 * 1000, "/subsystem:console /entry:my_entry %S %S %S", entry_obj_name, ab_obj_name, ba_obj_name); + if (linker_exit_code != T_LINKER_TIME_OUT_EXIT_CODE) { + if (t_ident_linker() == T_Linker_MSVC) { + if (linker_exit_code == 1120) { + result = T_Result_Pass; + } + } else { + result = T_Result_Pass; + } + } + +exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_base_relocs(void) { @@ -690,6 +882,8 @@ entry_point(CmdLine *cmdline) { "abs_vs_weak", t_abs_vs_weak }, { "abs_vs_regular", t_abs_vs_regular }, { "abs_vs_common", t_abs_vs_common }, + { "undef_weak", t_undef_weak }, + { "weak_cycle", t_weak_cycle }, { "find_merged_pdata", t_find_merged_pdata }, //{ "base_relocs", t_base_relocs }, }; From 2a0929014b85d0723ee096730f253d90e8d18db2 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 30 Apr 2025 15:14:12 -0700 Subject: [PATCH 065/372] test weak tag --- src/torture/torture.c | 79 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 74 insertions(+), 5 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index ba1f4b3b..d6f6a179 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -117,7 +117,7 @@ t_invoke_linker_with_time_out(U64 time_out, String8 cmdline) if (os_handle_match(linker_handle, os_handle_zero())) { fprintf(stderr, "unable to start process: %.*s\n", str8_varg(g_linker)); } else { - B32 was_joined = os_process_join_exit_code(linker_handle, os_now_microseconds() + time_out, &exit_code); + B32 was_joined = os_process_join_exit_code(linker_handle, time_out, &exit_code); if (!was_joined) { os_process_kill(linker_handle); exit_code = T_LINKER_TIME_OUT_EXIT_CODE; @@ -234,7 +234,8 @@ t_coff_section_header_from_name(String8 string_table, COFF_SectionHeader *sectio typedef enum { - T_MsvcLinkExitCode_CorruptOrInvalidSymbolTable = 0x4d3, + T_MsvcLinkExitCode_UnresolvedExternals = 1120, + T_MsvcLinkExitCode_CorruptOrInvalidSymbolTable = 1235, } T_MsvcLinkExitCode; internal COFF_ObjSection * @@ -606,10 +607,76 @@ t_undef_weak(void) int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:%S /out:a.exe %S %S %S %S", entry_symbol_name, weak_obj_name, entry_obj_name, ptr_obj_name, undef_obj_name); T_Linker link_ident = t_ident_linker(); - if (link_ident == T_Linker_MSVC && linker_exit_code != T_MsvcLinkExitCode_CorruptOrInvalidSymbolTable) { + if (linker_exit_code != 0) { goto exit; } + result = T_Result_Pass; + +exit:; + scratch_end(scratch); + return result; +} + +internal T_Result +t_weak_tag(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + U32 weak_tag_expected_value = 0x12345678; + String8 weak_tag_obj_name = str8_lit("weak_tag.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSymbol *tag_symbol = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("abs"), weak_tag_expected_value, COFF_SymStorageClass_Static); + COFF_ObjSymbol *weak_first = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("strong_first"), COFF_WeakExt_SearchAlias, tag_symbol); + COFF_ObjSymbol *weak_second = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("strong_second"), COFF_WeakExt_SearchAlias, weak_first); + + U8 sect_data[] = { 0, 0, 0, 0 }; + COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_array_fixed(sect_data)); + coff_obj_writer_section_push_reloc(obj_writer, sect, 0, weak_second, COFF_Reloc_X64_Addr32); + + String8 weak_tag_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(weak_tag_obj_name, weak_tag_obj)) { + goto exit; + } + } + + String8 entry_name = str8_lit("my_entry"); + U8 entry_text[] = { 0xC3 }; + String8 entry_obj_name = str8_lit("entry.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_text)); + coff_obj_writer_push_symbol_extern(obj_writer, entry_name, 0, text_sect); + String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(entry_obj_name, entry_obj)) { + goto exit; + } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe %S %S", weak_tag_obj_name, entry_obj_name); + if (linker_exit_code == 0) { + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *data_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + if (!data_section) { + goto exit; + } + if (data_section->vsize != 4) { + goto exit; + } + String8 data = str8_substr(exe, rng_1u64(data_section->foff, data_section->foff + data_section->vsize)); + if (str8_match(data, str8_struct(&weak_tag_expected_value), 0)) { + result = T_Result_Pass; + } + } exit:; scratch_end(scratch); @@ -788,10 +855,11 @@ t_weak_cycle(void) } } - int linker_exit_code = t_invoke_linker_with_time_outf(3 * 1000 * 1000, "/subsystem:console /entry:my_entry %S %S %S", entry_obj_name, ab_obj_name, ba_obj_name); + U64 time_out = os_now_microseconds() + 3 * 1000 * 1000; // give a generous 3 seconds + int linker_exit_code = t_invoke_linker_with_time_outf(time_out, "/subsystem:console /entry:my_entry %S %S %S", entry_obj_name, ab_obj_name, ba_obj_name); if (linker_exit_code != T_LINKER_TIME_OUT_EXIT_CODE) { if (t_ident_linker() == T_Linker_MSVC) { - if (linker_exit_code == 1120) { + if (linker_exit_code == T_MsvcLinkExitCode_UnresolvedExternals) { result = T_Result_Pass; } } else { @@ -884,6 +952,7 @@ entry_point(CmdLine *cmdline) { "abs_vs_common", t_abs_vs_common }, { "undef_weak", t_undef_weak }, { "weak_cycle", t_weak_cycle }, + { "weak_tag", t_weak_tag }, { "find_merged_pdata", t_find_merged_pdata }, //{ "base_relocs", t_base_relocs }, }; From 0772617486090f379fc871aca6ffc02025af1b8a Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 1 May 2025 11:52:58 -0700 Subject: [PATCH 066/372] add relocation for shared symbol in abs_vs_regular test test linker on base relocations to abs symbols --- src/torture/torture.c | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index d6f6a179..9d667565 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -455,12 +455,17 @@ t_abs_vs_regular(void) } } - U8 entry_text[] = { 0xC3 }; + U8 entry_text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; String8 entry_obj_name = str8_lit("entry.obj"); { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_text)); coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); + COFF_ObjSymbol *shared_symbol = coff_obj_writer_push_symbol_undef(obj_writer, shared_symbol_name); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 3, shared_symbol, COFF_Reloc_X64_Addr32Nb); String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); if (!t_write_file(entry_obj_name, entry_obj)) { @@ -469,13 +474,19 @@ t_abs_vs_regular(void) } // TODO: validate that linker issues multiply defined symbol error - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe abs.obj regular.obj entry.obj"); - if (linker_exit_code != 0) { - int regular_vs_abs_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe regular.obj abs.obj entry.obj"); - if (regular_vs_abs_exit_code != 0) { - result = T_Result_Pass; - } + int abs_vs_regular_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe abs.obj regular.obj entry.obj"); + if (abs_vs_regular_exit_code == 0) { + // linker should complain about multiply defined symbol + goto exit; } + + int regular_vs_abs_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe regular.obj abs.obj entry.obj"); + if (regular_vs_abs_exit_code == 0) { + // linker should complain even if the regular is before abs + goto exit; + } + + result = T_Result_Pass; exit:; scratch_end(scratch); @@ -903,6 +914,13 @@ t_base_relocs(void) COFF_ObjSymbol *func_undef = coff_obj_writer_push_symbol_undef(obj_writer, func_name); coff_obj_writer_section_push_reloc(obj_writer, text_sect, mov_func_name64, func_undef, COFF_Reloc_X64_Addr64); coff_obj_writer_section_push_reloc(obj_writer, text_sect, mov_func_name32, func_undef, COFF_Reloc_X64_Addr32); + + // linker must not produce base relocations for absolute symbol + U8 data[4] = {0}; + COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(data)); + COFF_ObjSymbol *abs_symbol = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("abs"), 0x12345678, COFF_SymStorageClass_Static); + coff_obj_writer_section_push_reloc(obj_writer, data_sect, 0, abs_symbol, COFF_Reloc_X64_Addr32); + coff_obj_writer_push_symbol_extern(obj_writer, entry_name, 0, text_sect); String8 main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); @@ -924,7 +942,7 @@ t_base_relocs(void) } String8 out_name = str8_lit("a.exe"); - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:%S /dynamicbase /dll /largeaddressaware:no /out:%S %S %S", entry_name, out_name, main_obj_name, func_obj_name); + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:%S /dynamicbase /largeaddressaware:no /out:%S %S %S", entry_name, out_name, main_obj_name, func_obj_name); exit:; scratch_end(scratch); From e9d5022a55b70634d138067c08136656c1503da3 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 1 May 2025 12:47:02 -0700 Subject: [PATCH 067/372] test section sorter --- src/coff/coff_obj_writer.c | 8 ++- src/torture/torture.c | 127 ++++++++++++++++++++++++++++--------- 2 files changed, 102 insertions(+), 33 deletions(-) diff --git a/src/coff/coff_obj_writer.c b/src/coff/coff_obj_writer.c index 3200e75e..76b9fcb6 100644 --- a/src/coff/coff_obj_writer.c +++ b/src/coff/coff_obj_writer.c @@ -391,7 +391,7 @@ coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer) // // symbol table // - if (symbol_table.total_size) { + if (symbol_table.total_size || string_table.total_size > sizeof(*string_table_size)) { file_header->symbol_table_foff = srl.total_size; str8_list_concat_in_place(&srl, &symbol_table); } @@ -399,8 +399,10 @@ coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer) // // string table // - *string_table_size = safe_cast_u32(string_table.total_size); - str8_list_concat_in_place(&srl, &string_table); + if (string_table.total_size) { + *string_table_size = safe_cast_u32(string_table.total_size); + str8_list_concat_in_place(&srl, &string_table); + } // // join diff --git a/src/torture/torture.c b/src/torture/torture.c index 9d667565..bbd04e68 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -629,6 +629,67 @@ exit:; return result; } +internal T_Result +t_weak_cycle(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + String8 ab_obj_name = str8_lit("ab.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSymbol *b = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("B")); + coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("A"), COFF_WeakExt_SearchAlias, b); + String8 ab_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(ab_obj_name, ab_obj)) { + goto exit; + } + } + + String8 ba_obj_name = str8_lit("ba.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSymbol *a = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("A")); + coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("B"), COFF_WeakExt_SearchAlias, a); + String8 ba_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(ba_obj_name, ba_obj)) { + goto exit; + } + } + + String8 entry_obj_name = str8_lit("entry.obj"); + U8 entry_payload[] = { 0xC3 }; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_payload)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); + String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(entry_obj_name, entry_obj)) { + goto exit; + } + } + + U64 time_out = os_now_microseconds() + 3 * 1000 * 1000; // give a generous 3 seconds + int linker_exit_code = t_invoke_linker_with_time_outf(time_out, "/subsystem:console /entry:my_entry %S %S %S", entry_obj_name, ab_obj_name, ba_obj_name); + if (linker_exit_code != T_LINKER_TIME_OUT_EXIT_CODE) { + if (t_ident_linker() == T_Linker_MSVC) { + if (linker_exit_code == T_MsvcLinkExitCode_UnresolvedExternals) { + result = T_Result_Pass; + } + } else { + result = T_Result_Pass; + } + } + +exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_weak_tag(void) { @@ -823,41 +884,35 @@ t_find_merged_pdata(void) } internal T_Result -t_weak_cycle(void) +t_section_sort(void) { Temp scratch = scratch_begin(0,0); - + T_Result result = T_Result_Fail; - String8 ab_obj_name = str8_lit("ab.obj"); + String8 data_obj_name = str8_lit("data.obj"); { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *b = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("B")); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("A"), COFF_WeakExt_SearchAlias, b); - String8 ab_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(ab_obj_name, ab_obj)) { - goto exit; - } - } - String8 ba_obj_name = str8_lit("ba.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *a = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("A")); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("B"), COFF_WeakExt_SearchAlias, a); - String8 ba_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + COFF_SectionFlags data_flags = COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemRead|COFF_SectionFlag_Align1Bytes; + coff_obj_writer_push_section(obj_writer, str8_lit(".data$z"), data_flags, str8_lit("five")); + coff_obj_writer_push_section(obj_writer, str8_lit(".data$a"), data_flags, str8_lit("three")); + coff_obj_writer_push_section(obj_writer, str8_lit(".data$bbbbb"), data_flags, str8_lit("four")); + coff_obj_writer_push_section(obj_writer, str8_lit(".data$"), data_flags, str8_lit("two")); + coff_obj_writer_push_section(obj_writer, str8_lit(".data"), data_flags, str8_lit("one")); + + String8 data_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); - if (!t_write_file(ba_obj_name, ba_obj)) { + if (!t_write_file(data_obj_name, data_obj)) { goto exit; } } String8 entry_obj_name = str8_lit("entry.obj"); - U8 entry_payload[] = { 0xC3 }; + U8 entry_text[] = { 0xC3 }; { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_payload)); + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_text)); coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); @@ -866,18 +921,29 @@ t_weak_cycle(void) } } - U64 time_out = os_now_microseconds() + 3 * 1000 * 1000; // give a generous 3 seconds - int linker_exit_code = t_invoke_linker_with_time_outf(time_out, "/subsystem:console /entry:my_entry %S %S %S", entry_obj_name, ab_obj_name, ba_obj_name); - if (linker_exit_code != T_LINKER_TIME_OUT_EXIT_CODE) { - if (t_ident_linker() == T_Linker_MSVC) { - if (linker_exit_code == T_MsvcLinkExitCode_UnresolvedExternals) { - result = T_Result_Pass; - } - } else { - result = T_Result_Pass; - } + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe data.obj entry.obj"); + if (linker_exit_code != 0) { + goto exit; } + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *data_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + if (!data_section) { + goto exit; + } + + String8 data = str8_substr(exe, rng_1u64(data_section->foff, data_section->foff + data_section->vsize)); + String8 expected_data = str8_lit("onetwothreefourfive"); + if (!str8_match(data, expected_data, 0)) { + goto exit; + } + + result = T_Result_Pass; + exit:; scratch_end(scratch); return result; @@ -972,6 +1038,7 @@ entry_point(CmdLine *cmdline) { "weak_cycle", t_weak_cycle }, { "weak_tag", t_weak_tag }, { "find_merged_pdata", t_find_merged_pdata }, + { "section_sort", t_section_sort }, //{ "base_relocs", t_base_relocs }, }; From cede94f8d9ea31ad10148259894a2c3e8e2e62c4 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 6 May 2025 11:40:03 -0700 Subject: [PATCH 068/372] test for conflicting section header flags and common bss and common block basic tests --- src/torture/torture.c | 201 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 200 insertions(+), 1 deletion(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index bbd04e68..f556d9e3 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -230,6 +230,34 @@ t_coff_section_header_from_name(String8 string_table, COFF_SectionHeader *sectio return 0; } +internal COFF_SectionHeaderArray +t_coff_section_header_array_from_name(Arena *arena, String8 string_table, COFF_SectionHeader *section_table, U64 section_count, String8 name) +{ + U64 match_count = 0; + for (U64 sect_idx = 0; sect_idx < section_count; sect_idx += 1) { + COFF_SectionHeader *section_header = §ion_table[sect_idx]; + String8 section_name = coff_name_from_section_header(string_table, section_header); + if (str8_match(section_name, name, 0)) { + match_count += 1; + } + } + + COFF_SectionHeader *matches = push_array(arena, COFF_SectionHeader, match_count); + for (U64 sect_idx = 0, match_idx = 0; sect_idx < section_count; sect_idx += 1) { + COFF_SectionHeader *section_header = §ion_table[sect_idx]; + String8 section_name = coff_name_from_section_header(string_table, section_header); + if (str8_match(section_name, name, 0)) { + matches[match_idx++] = *section_header; + } + } + + COFF_SectionHeaderArray result = {0}; + result.count = match_count; + result.v = matches; + + return result; +} + //////////////////////////////////////////////////////////////// typedef enum @@ -482,7 +510,7 @@ t_abs_vs_regular(void) int regular_vs_abs_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe regular.obj abs.obj entry.obj"); if (regular_vs_abs_exit_code == 0) { - // linker should complain even if the regular is before abs + // linker should complain even in case regular is before abs goto exit; } @@ -949,6 +977,174 @@ exit:; return result; } +internal T_Result +t_flag_conf(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + COFF_SectionFlags my_sect0_flags = COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemExecute; + COFF_SectionFlags my_sect1_flags = COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite; + String8 conf_obj_name = str8_lit("conf.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *a_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".mysect"), my_sect0_flags, str8_lit("one")); + COFF_ObjSection *b_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".mysect"), my_sect1_flags, str8_lit("two")); + String8 conf_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(conf_obj_name, conf_obj)) { + goto exit; + } + } + + U8 entry_text[] = { 0xC3 }; + String8 entry_obj_name = str8_lit("entry.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); + String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(entry_obj_name, entry_obj)) { + goto exit; + } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe data.obj conf.obj entry.obj"); + if (linker_exit_code != 0) { + goto exit; + } + + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeaderArray my_sects = t_coff_section_header_array_from_name(scratch.arena, string_table, section_table, pe.section_count, str8_lit(".mysect")); + + if (my_sects.count != 2) { + goto exit; + } + + COFF_SectionHeader *my_sect0 = &my_sects.v[0]; + COFF_SectionHeader *my_sect1 = &my_sects.v[1]; + if (my_sect0->flags != my_sect0_flags) { + goto exit; + } + if (my_sect1->flags != my_sect1_flags) { + goto exit; + } + + result = T_Result_Pass; + +exit:; + scratch_end(scratch); + return result; +} + +internal T_Result +t_invalid_bss(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + String8 bss_obj_name = str8_lit("bss.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + coff_obj_writer_push_section(obj_writer, str8_lit(".bss"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead, str8_lit("Hello, World")); + String8 bss_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(bss_obj_name, bss_obj)) { + goto exit; + } + } + + String8 entry_obj_name = str8_lit("entry.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { 0xC3 }; + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); + String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(entry_obj_name, entry_obj)) { + goto exit; + } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe bss.obj entry.obj"); + +exit:; + scratch_end(scratch); + return result; +} + +internal T_Result +t_common_block(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + String8 a_obj_name = str8_lit("a.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_common(obj_writer, str8_lit("A"), 3); + U8 data[6] = { 0 }; + COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(data)); + coff_obj_writer_section_push_reloc(obj_writer, data_sect, 0, symbol, COFF_Reloc_X64_Addr32); + String8 a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(a_obj_name, a_obj)) { + goto exit; + } + } + + String8 b_obj_name = str8_lit("b.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 data[9] = { 0 }; + COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(data)); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_common(obj_writer, str8_lit("B"), 6); + coff_obj_writer_section_push_reloc(obj_writer, data_sect, 0, symbol, COFF_Reloc_X64_Addr64); + String8 b_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(b_obj_name, b_obj)) { + goto exit; + } + } + + String8 entry_obj_name = str8_lit("entry.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { 0xC3 }; + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); + String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(entry_obj_name, entry_obj)) { + goto exit; + } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe /fixed /largeaddressaware:no a.obj b.obj entry.obj"); + + if (linker_exit_code != 0) { + goto exit; + } + + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + +exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_base_relocs(void) { @@ -1039,6 +1235,9 @@ entry_point(CmdLine *cmdline) { "weak_tag", t_weak_tag }, { "find_merged_pdata", t_find_merged_pdata }, { "section_sort", t_section_sort }, + { "flag_conf", t_flag_conf }, + { "invalid_bss", t_invalid_bss }, + { "common_block", t_common_block }, //{ "base_relocs", t_base_relocs }, }; From 5cb682bcb39f492face1b4ab6b04731b2f0a198e Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 6 May 2025 14:18:26 -0700 Subject: [PATCH 069/372] check common block relocs and sort --- src/torture/torture.c | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index f556d9e3..f0850e10 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -1089,11 +1089,11 @@ t_common_block(void) T_Result result = T_Result_Fail; String8 a_obj_name = str8_lit("a.obj"); + U8 a_data[6] = {0}; { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_common(obj_writer, str8_lit("A"), 3); - U8 data[6] = { 0 }; - COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(data)); + COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(a_data)); coff_obj_writer_section_push_reloc(obj_writer, data_sect, 0, symbol, COFF_Reloc_X64_Addr32); String8 a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); @@ -1103,10 +1103,10 @@ t_common_block(void) } String8 b_obj_name = str8_lit("b.obj"); + U8 b_data[9] = { 0 }; { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 data[9] = { 0 }; - COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(data)); + COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(b_data)); COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_common(obj_writer, str8_lit("B"), 6); coff_obj_writer_section_push_reloc(obj_writer, data_sect, 0, symbol, COFF_Reloc_X64_Addr64); String8 b_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); @@ -1137,8 +1137,31 @@ t_common_block(void) String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + + COFF_SectionHeader *data_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + if (data_sect == 0) { + goto exit; + } + + // test common block sort, if absent vsize is 0x1D + if (data_sect->vsize != 0x1B) { + goto exit; + } + + String8 data = str8_substr(exe, rng_1u64(data_sect->foff, data_sect->foff + data_sect->fsize)); + U32 *a_addr = (U32 *)data.str; + U64 *b_addr = (U64 *)(data.str + sizeof(a_data)); + if ((*a_addr) - (pe.image_base + data_sect->voff) != 0x18) { + goto exit; + } + if ((*b_addr) - (pe.image_base + data_sect->voff) != 0x10) { + goto exit; + } + + result = T_Result_Pass; + exit:; scratch_end(scratch); From a5b3df7d1b1af268b977a40e308da612b1b249d2 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 7 May 2025 09:59:44 -0700 Subject: [PATCH 070/372] check flags on custom bss section --- src/torture/torture.c | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index f0850e10..c36d784b 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -262,8 +262,9 @@ t_coff_section_header_array_from_name(Arena *arena, String8 string_table, COFF_S typedef enum { - T_MsvcLinkExitCode_UnresolvedExternals = 1120, - T_MsvcLinkExitCode_CorruptOrInvalidSymbolTable = 1235, + T_MsvcLinkExitCode_UnresolvedExternals = 1120, + T_MsvcLinkExitCode_CorruptOrInvalidSymbolTable = 1235, + T_MsvcLinkExitCode_SectionsFoundWithDifferentAttributes = 4078, } T_MsvcLinkExitCode; internal COFF_ObjSection * @@ -1050,10 +1051,12 @@ t_invalid_bss(void) T_Result result = T_Result_Fail; + COFF_SectionFlags bss_flags = COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead; String8 bss_obj_name = str8_lit("bss.obj"); + String8 bss_data = str8_lit("Hello, World"); { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - coff_obj_writer_push_section(obj_writer, str8_lit(".bss"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead, str8_lit("Hello, World")); + coff_obj_writer_push_section(obj_writer, str8_lit(".bss"), bss_flags, bss_data); String8 bss_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); if (!t_write_file(bss_obj_name, bss_obj)) { @@ -1075,6 +1078,31 @@ t_invalid_bss(void) } int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe bss.obj entry.obj"); + if (linker_exit_code != 0) { + goto exit; + } + + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *bss_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".bss")); + if (bss_sect == 0) { + goto exit; + } + if (bss_sect->vsize != 0xC) { + goto exit; + } + if (bss_sect->flags != bss_flags) { + goto exit; + } + String8 data = str8_substr(exe, rng_1u64(bss_sect->foff, bss_sect->foff + bss_sect->vsize)); + if (!str8_match(data, bss_data, 0)) { + goto exit; + } + + result = T_Result_Pass; exit:; scratch_end(scratch); From 63a374cf54c5b5d5a309421ab647b5e659406ad9 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 7 May 2025 10:01:21 -0700 Subject: [PATCH 071/372] simplify COFF reloc apply helper --- src/coff/coff.c | 33 +++++++++++++-------------------- src/coff/coff.h | 8 ++++++++ 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/coff/coff.c b/src/coff/coff.c index c2ab20a1..7d6fb166 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -179,18 +179,17 @@ coff_apply_size_from_reloc(COFF_MachineType machine, COFF_RelocType x) return 0; } -internal void -coff_apply_reloc_x64(String8 data, - COFF_Reloc_X64 type, - U64 apply_off, - U64 reloc_virtual_offset, - U32 symbol_section_number, - U32 symbol_section_offset, - U32 symbol_virtual_offset, - U64 symbol_address) +internal COFF_RelocValue +coff_pick_reloc_value_x64(COFF_Reloc_X64 type, + U64 reloc_virtual_offset, + U32 symbol_section_number, + U32 symbol_section_offset, + U32 symbol_virtual_offset, + U64 symbol_address) { U64 reloc_value_size = 0; S64 reloc_value = 0; + switch (type) { case COFF_Reloc_X64_Abs: {} break; case COFF_Reloc_X64_Addr64: { @@ -199,7 +198,7 @@ coff_apply_reloc_x64(String8 data, } break; case COFF_Reloc_X64_Addr32: { reloc_value_size = 4; - reloc_value = safe_cast_u32(symbol_address); + reloc_value = symbol_address; } break; case COFF_Reloc_X64_Addr32Nb: { reloc_value_size = 4; @@ -254,17 +253,11 @@ coff_apply_reloc_x64(String8 data, } break; } - // read addend - Assert(apply_off + reloc_value_size <= data.size); - U64 raw_addend = 0; - str8_deserial_read(data, apply_off, &raw_addend, reloc_value_size, reloc_value_size); + COFF_RelocValue result = {0}; + result.size = reloc_value_size; + result.value = reloc_value; - // compute new reloc value - S64 addend = extend_sign64(raw_addend, reloc_value_size); - U64 reloc_result = reloc_value + addend; - - // commit new reloc value - MemoryCopy(data.str + apply_off, &reloc_result, reloc_value_size); + return result; } internal String8 diff --git a/src/coff/coff.h b/src/coff/coff.h index 34475016..89445216 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -576,6 +576,12 @@ typedef struct COFF_ImportHeader #pragma pack(pop) +typedef struct COFF_RelocValue +{ + U64 size; + S64 value; +} COFF_RelocValue; + //////////////////////////////// // Section @@ -596,6 +602,8 @@ internal String8 coff_read_symbol_name(String8 string_table, COFF_SymbolName *na internal U64 coff_apply_size_from_reloc_x64(COFF_Reloc_X64 x); internal U64 coff_apply_size_from_reloc_x86(COFF_Reloc_X86 x); +internal COFF_RelocValue coff_pick_reloc_valuex64(COFF_Reloc_X64 type, U64 reloc_virtual_offset, U32 symbol_section_number, U32 symbol_section_offset, U32 symbol_virtual_offset, U64 symbol_address); + //////////////////////////////// // Import From f81bab5a4c7ea2df63f73c0bf473d3d0834125a2 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 7 May 2025 10:02:04 -0700 Subject: [PATCH 072/372] remove special sort postfix case --- src/coff/coff.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/coff/coff.c b/src/coff/coff.c index 7d6fb166..de5488e0 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -79,14 +79,7 @@ coff_parse_section_name(String8 full_name, String8 *name_out, String8 *postfix_o for (U64 i = 0; i < full_name.size; ++i) { if (full_name.str[i] == '$') { *name_out = str8(full_name.str, i); - *postfix_out = str8(full_name.str + i + 1, full_name.size - i - 1); - - // TLS sections don't have a postfix but we still have to sort them based - // on dollar sign so they are sloted between CRT's _tls_start and _tls_end sections. - if (str8_match_lit(".tls", *name_out, 0) && postfix_out->size == 0) { - *postfix_out = str8_lit("$"); - } - + *postfix_out = str8(full_name.str + i, full_name.size - i); break; } } From b0a652b10bd6a4b605cc3de66f6300188fd918f0 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 7 May 2025 11:36:54 -0700 Subject: [PATCH 073/372] helpers for parsing aux COFF symbols --- src/coff/coff_parse.c | 51 +++++++++++++++++++++++++++++++++++++++++++ src/coff/coff_parse.h | 21 +++++++++++++----- 2 files changed, 66 insertions(+), 6 deletions(-) diff --git a/src/coff/coff_parse.c b/src/coff/coff_parse.c index 3a53e8ba..f45723ad 100644 --- a/src/coff/coff_parse.c +++ b/src/coff/coff_parse.c @@ -121,6 +121,18 @@ coff_file_header_info_from_data(String8 raw_coff) return info; } +internal COFF_SectionHeader ** +coff_section_table_from_data(Arena *arena, String8 data, Rng1U64 section_table_range) +{ + U64 section_count = dim_1u64(section_table_range) / sizeof(COFF_SectionHeader); + COFF_SectionHeader **section_table = push_array_no_zero(arena, COFF_SectionHeader *, section_count+1); + section_table[0] = push_array(arena, COFF_SectionHeader, 1); + for (U64 i = 0; i < section_count; ++i) { + section_table[i+1] = str8_deserial_get_raw_ptr(data, section_table_range.min + i*sizeof(COFF_SectionHeader), sizeof(COFF_SectionHeader)); + } + return section_table; +} + internal COFF_ParsedSymbol coff_parse_symbol32(String8 string_table, COFF_Symbol32 *sym32) { @@ -131,6 +143,7 @@ coff_parse_symbol32(String8 string_table, COFF_Symbol32 *sym32) result.type = sym32->type; result.storage_class = sym32->storage_class; result.aux_symbol_count = sym32->aux_symbol_count; + result.raw_symbol = sym32; return result; } @@ -150,6 +163,7 @@ coff_parse_symbol16(String8 string_table, COFF_Symbol16 *sym16) result.type = sym16->type; result.storage_class = sym16->storage_class; result.aux_symbol_count = sym16->aux_symbol_count; + result.raw_symbol = sym16; return result; } @@ -253,6 +267,43 @@ coff_interp_symbol(U32 section_number, U32 value, COFF_SymStorageClass storage_c return COFF_SymbolValueInterp_Regular; } +internal void +coff_parse_secdef(COFF_ParsedSymbol symbol, B32 is_big_obj, COFF_ComdatSelectType *selection_out, U32 *number_out, U32 *length_out, U32 *check_sum_out) +{ + Assert(coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class) == COFF_SymbolValueInterp_Regular); + Assert(symbol.aux_symbol_count > 0); + + if (is_big_obj) { + COFF_SymbolSecDef *sd = (COFF_SymbolSecDef *)((COFF_Symbol32 *)symbol.raw_symbol + 1); + if (selection_out) *selection_out = sd->selection; + if (length_out) *length_out = sd->length; + if (check_sum_out) *check_sum_out = sd->check_sum; + if (number_out) *number_out = sd->number_lo | ((U32)sd->number_hi << 16); + } else { + COFF_SymbolSecDef *sd = (COFF_SymbolSecDef *)((COFF_Symbol16 *)symbol.raw_symbol + 1); + if (selection_out) *selection_out = sd->selection; + if (length_out) *length_out = sd->length; + if (check_sum_out) *check_sum_out = sd->check_sum; + if (number_out) *number_out = sd->number_lo; + } +} + +internal COFF_SymbolWeakExt * +coff_parse_weak_tag(COFF_ParsedSymbol symbol, B32 is_big_obj) +{ + Assert(coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class) == COFF_SymbolValueInterp_Weak); + Assert(symbol.aux_symbol_count > 0); + + void *tag; + if (is_big_obj) { + tag = (COFF_SymbolWeakExt *)((COFF_Symbol32 *)symbol.raw_symbol + 1); + } else { + tag = (COFF_SymbolWeakExt *)((COFF_Symbol16 *)symbol.raw_symbol + 1); + } + + return tag; +} + internal COFF_RelocNode * coff_reloc_list_push(Arena *arena, COFF_RelocList *list, COFF_Reloc reloc) { diff --git a/src/coff/coff_parse.h b/src/coff/coff_parse.h index 69c57ff3..b5990312 100644 --- a/src/coff/coff_parse.h +++ b/src/coff/coff_parse.h @@ -49,12 +49,13 @@ typedef struct COFF_Symbol32Array typedef struct COFF_ParsedSymbol { - String8 name; - U32 value; - U32 section_number; - COFF_SymbolType type; - COFF_SymStorageClass storage_class; - U8 aux_symbol_count; + String8 name; + U32 value; + U32 section_number; + COFF_SymbolType type; + COFF_SymStorageClass storage_class; + U8 aux_symbol_count; + void *raw_symbol; } COFF_ParsedSymbol; typedef U32 COFF_SymbolValueInterpType; @@ -247,6 +248,11 @@ internal B32 coff_is_big_obj(String8 raw_coff); internal B32 coff_is_obj (String8 raw_coff); internal COFF_FileHeaderInfo coff_file_header_info_from_data(String8 raw_coff); +//////////////////////////////// +// Section + +internal COFF_SectionHeader ** coff_section_table_from_data(Arena *arena, String8 data, Rng1U64 section_table_range); + //////////////////////////////// // Symbol @@ -261,6 +267,9 @@ internal COFF_Symbol16Node *coff_symbol16_list_push(Arena *arena, COFF_Symbol16L internal COFF_SymbolValueInterpType coff_interp_symbol(U32 section_number, U32 value, COFF_SymStorageClass storage_class); +internal void coff_parse_secdef(COFF_ParsedSymbol symbol, B32 is_big_obj, COFF_ComdatSelectType *selection_out, U32 *number_out, U32 *length_out, U32 *check_sum_out); +internal COFF_SymbolWeakExt * coff_parse_weak_tag(COFF_ParsedSymbol symbol, B32 is_big_obj); + //////////////////////////////// // Reloc From 45ca147579485975acafa502d6583fbfce3ed7e1 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 7 May 2025 11:38:28 -0700 Subject: [PATCH 074/372] report test stats, and check the exit code --- src/torture/torture.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index c36d784b..1a9a9f19 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -27,6 +27,7 @@ #include "linker/lnk_cmd_line.h" #include "linker/lnk_cmd_line.c" +#include "linker/lnk_error.h" //////////////////////////////// @@ -571,8 +572,14 @@ t_abs_vs_common(void) if (linker_exit_code == 0) { // TODO: validate that linker issues multiply defined symbol error int common_vs_abs = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe common.obj abs.obj entry.obj"); - if (common_vs_abs != 0) { - result = T_Result_Pass; + if (t_ident_linker() == T_Linker_RAD) { + if (common_vs_abs == LNK_Error_MultiplyDefinedSymbol) { + result = T_Result_Pass; + } + } else { + if (common_vs_abs != 0) { + result = T_Result_Pass; + } } } @@ -1434,6 +1441,9 @@ entry_point(CmdLine *cmdline) } } + U64 pass_count = 0; + U64 fail_count = 0; + U64 crash_count = 0; for (U64 i = 0; i < target_indices_count; i += 1) { U64 target_idx = target_indices[i]; @@ -1452,12 +1462,20 @@ entry_point(CmdLine *cmdline) if (result == T_Result_Pass) { fprintf(stdout, "\x1b[32m" "%.*s" "\x1b[0m" "\n", str8_varg(msg)); + pass_count += 1; } else if (result == T_Result_Fail) { fprintf(stdout, "\x1b[31m" "%.*s" "\x1b[0m" "\n", str8_varg(msg)); + fail_count += 1; } else if (result == T_Result_Crash) { fprintf(stdout, "\x1b[33m" "%.*s" "\x1b[0m" "\n", str8_varg(msg)); + crash_count += 1; } } + + fprintf(stdout, "--- Report ---------------------------------------------------------------------\n"); + fprintf(stdout, " Passed: %llu\n", pass_count); + fprintf(stdout, " Failed: %llu\n", fail_count); + fprintf(stdout, " Crashed: %llu\n", crash_count); } scratch_end(scratch); From 0f81aae985ffd9ba17e477604fbb0bb80297535b Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 7 May 2025 11:40:11 -0700 Subject: [PATCH 075/372] extend COFF obj writer with ability to produce linker directive section --- src/coff/coff_obj_writer.c | 12 ++++++++++++ src/coff/coff_obj_writer.h | 15 +++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/coff/coff_obj_writer.c b/src/coff/coff_obj_writer.c index 76b9fcb6..1eb1243a 100644 --- a/src/coff/coff_obj_writer.c +++ b/src/coff/coff_obj_writer.c @@ -190,6 +190,18 @@ coff_obj_writer_section_push_reloc(COFF_ObjWriter *obj_writer, COFF_ObjSection * return reloc; } +internal void +coff_obj_writer_push_directive(COFF_ObjWriter *obj_writer, String8 directive) +{ + if (obj_writer->drectve_sect == 0) { + local_persist const U8 bom_sig[] = { 0xEF, 0xBB, 0xBF }; + obj_writer->drectve_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".drectve"), COFF_SectionFlag_LnkInfo|COFF_SectionFlag_LnkRemove|COFF_SectionFlag_Align1Bytes, str8_array_fixed(bom_sig)); + } + String8List *data = &obj_writer->drectve_sect->data; + str8_list_push(obj_writer->arena, data, directive); + str8_list_pushf(obj_writer->arena, data, " "); +} + internal int coff_obj_section_is_before(void *raw_a, void *raw_b) { diff --git a/src/coff/coff_obj_writer.h b/src/coff/coff_obj_writer.h index a42c2c75..56cf47e2 100644 --- a/src/coff/coff_obj_writer.h +++ b/src/coff/coff_obj_writer.h @@ -80,17 +80,16 @@ typedef struct COFF_ObjSectionNode typedef struct COFF_ObjWriter { - Arena *arena; - COFF_TimeStamp time_stamp; - COFF_MachineType machine; - - U64 symbol_count; - COFF_ObjSymbolNode *symbol_first; - COFF_ObjSymbolNode *symbol_last; - + Arena *arena; + COFF_TimeStamp time_stamp; + COFF_MachineType machine; + U64 symbol_count; + COFF_ObjSymbolNode *symbol_first; + COFF_ObjSymbolNode *symbol_last; U64 sect_count; COFF_ObjSectionNode *sect_first; COFF_ObjSectionNode *sect_last; + COFF_ObjSection *drectve_sect; } COFF_ObjWriter; //////////////////////////////// From a60216fa9f3ab0afb05bfa9226b4a0ff3c866373 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 7 May 2025 12:03:27 -0700 Subject: [PATCH 076/372] minor fixes in hash table --- src/linker/hash_table.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/linker/hash_table.c b/src/linker/hash_table.c index 16560c36..4f9f8033 100644 --- a/src/linker/hash_table.c +++ b/src/linker/hash_table.c @@ -271,12 +271,12 @@ hash_table_search_string_u64(HashTable *ht, String8 key, U64 *value_out) } internal B32 -hash_table_search_string_raw(HashTable *ht, String8 key, void **value_out) +hash_table_search_string_raw(HashTable *ht, String8 key, void *value_out) { KeyValuePair *result = hash_table_search_string(ht, key); if (result) { if (value_out) { - *value_out = result->value_raw; + (*(void **)value_out) = result->value_raw; } return 1; } @@ -300,7 +300,7 @@ key_value_pair_is_before_u64(void *a, void *b) internal int key_value_pair_is_before_string_sensitive(void *a, void *b) { - return str8_compar_case_sensitive(((KeyValuePair*)a)->key_string, ((KeyValuePair*)b)->key_string) < 0; + return str8_compar_case_sensitive(&((KeyValuePair*)a)->key_string, &((KeyValuePair*)b)->key_string) < 0; } internal U32 * @@ -415,3 +415,4 @@ remove_duplicates_str8_list(Arena *arena, String8List list) scratch_end(scratch); return result; } + From 7c071e7238f29668679228493bfca3d4ae5b90a6 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 7 May 2025 13:42:54 -0700 Subject: [PATCH 077/372] linker checkpoint --- src/linker/base_ext/base_arena.c | 2 +- src/linker/base_ext/base_arena.h | 2 +- src/linker/base_ext/base_arrays.c | 2 +- src/linker/base_ext/base_arrays.h | 2 +- src/linker/base_ext/base_bit_array.c | 2 +- src/linker/base_ext/base_bit_array.h | 2 +- src/linker/base_ext/base_blake3.c | 2 +- src/linker/base_ext/base_blake3.h | 2 +- src/linker/base_ext/base_blake3_asm.c | 2 +- src/linker/base_ext/base_blake3_asm.h | 2 +- src/linker/base_ext/base_core.c | 2 +- src/linker/base_ext/base_core.h | 2 +- src/linker/base_ext/base_crc32.c | 2 +- src/linker/base_ext/base_crc32.h | 2 +- src/linker/base_ext/base_inc.c | 2 +- src/linker/base_ext/base_inc.h | 2 +- src/linker/base_ext/base_md5.c | 2 +- src/linker/base_ext/base_md5.h | 2 +- src/linker/base_ext/base_strings.c | 2 +- src/linker/base_ext/base_strings.h | 2 +- src/linker/codeview_ext/codeview.c | 2 +- src/linker/codeview_ext/codeview.h | 2 +- src/linker/hash_table.c | 2 +- src/linker/hash_table.h | 2 +- src/linker/lnk.c | 4686 +++++++++++++------------ src/linker/lnk.h | 232 +- src/linker/lnk_chunk.c | 804 ----- src/linker/lnk_chunk.h | 210 -- src/linker/lnk_cmd_line.c | 2 +- src/linker/lnk_cmd_line.h | 2 +- src/linker/lnk_config.c | 13 +- src/linker/lnk_config.h | 2 +- src/linker/lnk_debug_helper.c | 39 + src/linker/lnk_debug_helper.h | 8 + src/linker/lnk_debug_info.c | 248 +- src/linker/lnk_debug_info.h | 33 +- src/linker/lnk_error.c | 2 +- src/linker/lnk_error.h | 7 +- src/linker/lnk_export_table.c | 16 +- src/linker/lnk_export_table.h | 4 +- src/linker/lnk_import_table.c | 6 +- src/linker/lnk_import_table.h | 2 +- src/linker/lnk_input.c | 154 + src/linker/lnk_input.h | 64 + src/linker/lnk_lib.c | 95 +- src/linker/lnk_lib.h | 3 +- src/linker/lnk_log.c | 2 +- src/linker/lnk_log.h | 2 +- src/linker/lnk_obj.c | 1235 ++----- src/linker/lnk_obj.h | 202 +- src/linker/lnk_reloc.c | 175 - src/linker/lnk_reloc.h | 56 - src/linker/lnk_section_table.c | 1001 ++---- src/linker/lnk_section_table.h | 186 +- src/linker/lnk_symbol_table.c | 637 ++-- src/linker/lnk_symbol_table.h | 169 +- src/linker/lnk_timer.c | 2 +- src/linker/lnk_timer.h | 2 +- src/linker/pdb_ext/msf_builder.c | 2 +- src/linker/pdb_ext/msf_builder.h | 2 +- src/linker/pdb_ext/pdb.c | 2 +- src/linker/pdb_ext/pdb.h | 2 +- src/linker/pdb_ext/pdb_builder.c | 2 +- src/linker/pdb_ext/pdb_builder.h | 2 +- src/linker/pdb_ext/pdb_helpers.c | 2 +- src/linker/pdb_ext/pdb_helpers.h | 2 +- src/linker/rdi/rdi_builder.c | 2 +- src/linker/rdi/rdi_builder.h | 2 +- src/linker/rdi/rdi_coff.c | 2 +- src/linker/rdi/rdi_coff.h | 2 +- src/linker/rdi/rdi_cv.c | 2 +- src/linker/rdi/rdi_cv.h | 2 +- src/linker/thread_pool/thread_pool.c | 2 +- src/linker/thread_pool/thread_pool.h | 2 +- 74 files changed, 3940 insertions(+), 6441 deletions(-) delete mode 100644 src/linker/lnk_chunk.c delete mode 100644 src/linker/lnk_chunk.h create mode 100644 src/linker/lnk_debug_helper.c create mode 100644 src/linker/lnk_debug_helper.h create mode 100644 src/linker/lnk_input.c create mode 100644 src/linker/lnk_input.h delete mode 100644 src/linker/lnk_reloc.c delete mode 100644 src/linker/lnk_reloc.h diff --git a/src/linker/base_ext/base_arena.c b/src/linker/base_ext/base_arena.c index 5b6ca528..79471dfb 100644 --- a/src/linker/base_ext/base_arena.c +++ b/src/linker/base_ext/base_arena.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal String8 diff --git a/src/linker/base_ext/base_arena.h b/src/linker/base_ext/base_arena.h index dbafb624..cb7f00ee 100644 --- a/src/linker/base_ext/base_arena.h +++ b/src/linker/base_ext/base_arena.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/base_ext/base_arrays.c b/src/linker/base_ext/base_arrays.c index 423ab684..040f220d 100644 --- a/src/linker/base_ext/base_arrays.c +++ b/src/linker/base_ext/base_arrays.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal U64 diff --git a/src/linker/base_ext/base_arrays.h b/src/linker/base_ext/base_arrays.h index e1cd052d..b2c45bd5 100644 --- a/src/linker/base_ext/base_arrays.h +++ b/src/linker/base_ext/base_arrays.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/base_ext/base_bit_array.c b/src/linker/base_ext/base_bit_array.c index 2e213294..2ab94b77 100644 --- a/src/linker/base_ext/base_bit_array.c +++ b/src/linker/base_ext/base_bit_array.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal U32Array diff --git a/src/linker/base_ext/base_bit_array.h b/src/linker/base_ext/base_bit_array.h index c9428957..76e19f87 100644 --- a/src/linker/base_ext/base_bit_array.h +++ b/src/linker/base_ext/base_bit_array.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/base_ext/base_blake3.c b/src/linker/base_ext/base_blake3.c index 9f522068..ca29e21a 100644 --- a/src/linker/base_ext/base_blake3.c +++ b/src/linker/base_ext/base_blake3.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #if defined(__clang__) diff --git a/src/linker/base_ext/base_blake3.h b/src/linker/base_ext/base_blake3.h index 4489e1d5..72e8986f 100644 --- a/src/linker/base_ext/base_blake3.h +++ b/src/linker/base_ext/base_blake3.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/base_ext/base_blake3_asm.c b/src/linker/base_ext/base_blake3_asm.c index d02a4380..1b91df31 100644 --- a/src/linker/base_ext/base_blake3_asm.c +++ b/src/linker/base_ext/base_blake3_asm.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #include "../third_party_ext/blake3/blake3_portable.c" diff --git a/src/linker/base_ext/base_blake3_asm.h b/src/linker/base_ext/base_blake3_asm.h index 94cdf267..e39c3b41 100644 --- a/src/linker/base_ext/base_blake3_asm.h +++ b/src/linker/base_ext/base_blake3_asm.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #ifndef BASE_BLAKE3_H diff --git a/src/linker/base_ext/base_core.c b/src/linker/base_ext/base_core.c index 2f44ddd5..3239be28 100644 --- a/src/linker/base_ext/base_core.c +++ b/src/linker/base_ext/base_core.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal U16 diff --git a/src/linker/base_ext/base_core.h b/src/linker/base_ext/base_core.h index 2f850d3b..deb18e8c 100644 --- a/src/linker/base_ext/base_core.h +++ b/src/linker/base_ext/base_core.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/base_ext/base_crc32.c b/src/linker/base_ext/base_crc32.c index ee5a95aa..28b90da6 100644 --- a/src/linker/base_ext/base_crc32.c +++ b/src/linker/base_ext/base_crc32.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal U32 diff --git a/src/linker/base_ext/base_crc32.h b/src/linker/base_ext/base_crc32.h index a7bb209d..e6d55bae 100644 --- a/src/linker/base_ext/base_crc32.h +++ b/src/linker/base_ext/base_crc32.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/base_ext/base_inc.c b/src/linker/base_ext/base_inc.c index c90891e9..c3886302 100644 --- a/src/linker/base_ext/base_inc.c +++ b/src/linker/base_ext/base_inc.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #include "base_core.c" diff --git a/src/linker/base_ext/base_inc.h b/src/linker/base_ext/base_inc.h index c06090ff..67081bf6 100644 --- a/src/linker/base_ext/base_inc.h +++ b/src/linker/base_ext/base_inc.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/base_ext/base_md5.c b/src/linker/base_ext/base_md5.c index 326c466b..38ffac51 100644 --- a/src/linker/base_ext/base_md5.c +++ b/src/linker/base_ext/base_md5.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal MD5Hash diff --git a/src/linker/base_ext/base_md5.h b/src/linker/base_ext/base_md5.h index b4593dd4..b435fe58 100644 --- a/src/linker/base_ext/base_md5.h +++ b/src/linker/base_ext/base_md5.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/base_ext/base_strings.c b/src/linker/base_ext/base_strings.c index 83b1d81d..fe465f5e 100644 --- a/src/linker/base_ext/base_strings.c +++ b/src/linker/base_ext/base_strings.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal String8Node * diff --git a/src/linker/base_ext/base_strings.h b/src/linker/base_ext/base_strings.h index ce683cfe..b469cccf 100644 --- a/src/linker/base_ext/base_strings.h +++ b/src/linker/base_ext/base_strings.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/codeview_ext/codeview.c b/src/linker/codeview_ext/codeview.c index f09ff50f..b932a4be 100644 --- a/src/linker/codeview_ext/codeview.c +++ b/src/linker/codeview_ext/codeview.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) //////////////////////////////// diff --git a/src/linker/codeview_ext/codeview.h b/src/linker/codeview_ext/codeview.h index a4bddb1c..d4b4ac4e 100644 --- a/src/linker/codeview_ext/codeview.h +++ b/src/linker/codeview_ext/codeview.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/hash_table.c b/src/linker/hash_table.c index 4f9f8033..bdc32ac3 100644 --- a/src/linker/hash_table.c +++ b/src/linker/hash_table.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal void diff --git a/src/linker/hash_table.h b/src/linker/hash_table.h index df557997..cc65cbf5 100644 --- a/src/linker/hash_table.h +++ b/src/linker/hash_table.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/lnk.c b/src/linker/lnk.c index cb2731d5..975922b1 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) //////////////////////////////// @@ -116,15 +116,14 @@ #include "lnk_timer.h" #include "lnk_io.h" #include "lnk_cmd_line.h" +#include "lnk_input.h" +#include "lnk_import_table.h" +#include "lnk_export_table.h" #include "lnk_config.h" -#include "lnk_chunk.h" -#include "lnk_reloc.h" #include "lnk_symbol_table.h" #include "lnk_section_table.h" #include "lnk_debug_helper.h" #include "lnk_obj.h" -#include "lnk_import_table.h" -#include "lnk_export_table.h" #include "lnk_lib.h" #include "lnk_debug_info.h" #include "lnk.h" @@ -134,86 +133,21 @@ #include "lnk_timer.c" #include "lnk_io.c" #include "lnk_cmd_line.c" +#include "lnk_input.c" +#include "lnk_import_table.c" +#include "lnk_export_table.c" #include "lnk_config.c" -#include "lnk_chunk.c" -#include "lnk_reloc.c" #include "lnk_symbol_table.c" #include "lnk_section_table.c" #include "lnk_obj.c" #include "lnk_debug_helper.c" -#include "lnk_import_table.c" -#include "lnk_export_table.c" #include "lnk_lib.c" #include "lnk_debug_info.c" //////////////////////////////// -internal LNK_InputImport * -lnk_input_import_list_push(Arena *arena, LNK_InputImportList *list) -{ - LNK_InputImport *node = push_array(arena, LNK_InputImport, 1); - SLLQueuePush(list->first, list->last, node); - list->count += 1; - return node; -} - -internal void -lnk_input_import_list_concat_in_place(LNK_InputImportList *list, LNK_InputImportList *to_concat) -{ - SLLConcatInPlace(list, to_concat); -} - -internal LNK_InputImport ** -lnk_input_import_arr_from_list(Arena *arena, LNK_InputImportList list) -{ - LNK_InputImport **result = push_array_no_zero(arena, LNK_InputImport *, list.count); - U64 idx = 0; - for (LNK_InputImport *node = list.first; node != 0; node = node->next) { - Assert(idx < list.count); - result[idx++] = node; - } - return result; -} - -internal LNK_InputImportList -lnk_list_from_input_import_arr(LNK_InputImport **arr, U64 count) -{ - LNK_InputImportList list = {0}; - for (U64 i = 0; i < count; i += 1) { - SLLQueuePush(list.first, list.last, arr[i]); - list.count += 1; - } - return list; -} - -int -lnk_input_import_is_before(void *raw_a, void *raw_b) -{ - LNK_InputImport **a = raw_a; - LNK_InputImport **b = raw_b; - int cmp = str8_compar_ignore_case(&(*a)->import_header.dll_name, &(*b)->import_header.dll_name); - if (cmp == 0) { - cmp = str8_compar_case_sensitive(&(*a)->import_header.func_name, &(*b)->import_header.func_name); - } - return cmp < 0; -} - -int -lnk_input_import_compar(const void *raw_a, const void *raw_b) -{ - LNK_InputImport * const *a = raw_a; - LNK_InputImport * const *b = raw_b; - int cmp = str8_compar_ignore_case(&(*a)->import_header.dll_name, &(*b)->import_header.dll_name); - if (cmp == 0) { - cmp = str8_compar_case_sensitive(&(*a)->import_header.func_name, &(*b)->import_header.func_name); - } - return cmp; -} - -//////////////////////////////// - internal String8 -lnk_make_full_path(Arena *arena, String8 work_dir, PathStyle system_path_style, String8 path) +lnk_make_full_path(Arena *arena, PathStyle system_path_style, String8 work_dir, String8 path) { ProfBeginFunction(); String8 result = str8(0,0); @@ -232,7 +166,49 @@ lnk_make_full_path(Arena *arena, String8 work_dir, PathStyle system_path_style, return result; } -//////////////////////////////// +internal +THREAD_POOL_TASK_FUNC(lnk_blake3_hasher_task) +{ + ProfBeginFunction(); + + LNK_Blake3Hasher *task = raw_task; + Rng1U64 range = task->ranges[task_id]; + String8 sub_data = str8_substr(task->data, range); + + blake3_hasher hasher; blake3_hasher_init(&hasher); + blake3_hasher_update(&hasher, sub_data.str, sub_data.size); + blake3_hasher_finalize(&hasher, (U8 *)task->hashes[task_id].u64, sizeof(task->hashes[task_id].u64)); + + ProfEnd(); +} + +internal U128 +lnk_blake3_hash_parallel(TP_Context *tp, U64 chunk_count, String8 data) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(0, 0); + + ProfBegin("Hash Chunks"); + LNK_Blake3Hasher task = {0}; + task.data = data; + task.ranges = tp_divide_work(scratch.arena, data.size, chunk_count); + task.hashes = push_array(scratch.arena, U128, chunk_count); + tp_for_parallel(tp, 0, chunk_count, lnk_blake3_hasher_task, &task); + ProfEnd(); + + ProfBegin("Combine Hashes"); + blake3_hasher hasher; blake3_hasher_init(&hasher); + for (U64 i = 0; i < chunk_count; ++i) { + blake3_hasher_update(&hasher, (U8 *)task.hashes[i].u64, sizeof(task.hashes[i].u64)); + } + U128 result; + blake3_hasher_finalize(&hasher, (U8 *)result.u64, sizeof(result.u64)); + ProfEnd(); + + scratch_end(scratch); + ProfEnd(); + return result; +} internal String8 lnk_make_linker_manifest(Arena *arena, @@ -393,8 +369,6 @@ lnk_manifest_from_inputs(Arena *arena, return manifest_data; } -//////////////////////////////// - internal int lnk_res_string_id_is_before(void *raw_a, void *raw_b) { @@ -666,46 +640,13 @@ lnk_add_resource_debug_s(COFF_ObjWriter *obj_writer, internal String8 lnk_make_res_obj(Arena *arena, - PE_ResourceDir *root_dir, - COFF_TimeStamp time_stamp, + String8List res_data_list, + String8List res_path_list, COFF_MachineType machine, - String8 path, - String8 cwd_path, - String8 exe_path, - String8List res_file_list, - MD5Hash *res_hash_array) -{ - ProfBeginFunction(); - - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); - - // obj features - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@feat.00"), COFF_SymStorageClass_Static, MSCRT_FeatFlag_HAS_SAFE_SEH|MSCRT_FeatFlag_UNKNOWN_4); - - // serialize resource tree - lnk_serialize_pe_resource_tree(obj_writer, root_dir); - - // push resource debug info - lnk_add_resource_debug_s(obj_writer, path, cwd_path, exe_path, cv_arch_from_coff_machine(machine), res_file_list, res_hash_array); - - // finalize obj - String8 res_obj = coff_obj_writer_serialize(arena, obj_writer); - - coff_obj_writer_release(&obj_writer); - - ProfEnd(); - return res_obj; -} - -internal String8 -lnk_obj_from_res_file_list(Arena *arena, - String8List res_data_list, - String8List res_path_list, - COFF_MachineType machine, - U32 time_stamp, - String8 work_dir, - PathStyle system_path_style, - String8 obj_name) + U32 time_stamp, + String8 work_dir, + PathStyle system_path_style, + String8 obj_name) { ProfBeginFunction(); Temp scratch = scratch_begin(&arena,1); @@ -724,7 +665,7 @@ lnk_obj_from_res_file_list(Arena *arena, // convert res paths to stable paths String8List stable_res_file_list = {0}; for (String8Node *node = res_path_list.first; node != 0; node = node->next) { - String8 stable_res_path = lnk_make_full_path(scratch.arena, work_dir, system_path_style, node->string); + String8 stable_res_path = lnk_make_full_path(scratch.arena, system_path_style, work_dir, node->string); str8_list_push(scratch.arena, &stable_res_file_list, stable_res_path); } @@ -733,23 +674,31 @@ lnk_obj_from_res_file_list(Arena *arena, String8List exe_path_strs = {0}; str8_list_push(scratch.arena, &exe_path_strs, process_info->binary_path); String8 exe_path = str8_list_first(&exe_path_strs); - String8 res_obj = lnk_make_res_obj(arena, - root_dir, - time_stamp, - machine, - obj_name, - work_dir, - exe_path, - stable_res_file_list, - res_hash_array); + + String8 res_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); + + // obj features + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@feat.00"), COFF_SymStorageClass_Static, MSCRT_FeatFlag_HAS_SAFE_SEH|MSCRT_FeatFlag_UNKNOWN_4); + + // serialize resource tree + lnk_serialize_pe_resource_tree(obj_writer, root_dir); + + // push resource debug info + lnk_add_resource_debug_s(obj_writer, obj_name, work_dir, exe_path, cv_arch_from_coff_machine(machine), stable_res_file_list, res_hash_array); + + // finalize obj + res_obj = coff_obj_writer_serialize(arena, obj_writer); + + coff_obj_writer_release(&obj_writer); + } scratch_end(scratch); ProfEnd(); return res_obj; } -//////////////////////////////// - internal String8 lnk_make_linker_coff_obj(Arena *arena, COFF_TimeStamp time_stamp, @@ -806,7 +755,60 @@ lnk_make_linker_coff_obj(Arena *arena, return obj; } -//////////////////////////////// +internal void +lnk_push_pe_debug_data_directory(COFF_ObjWriter *obj_writer, + COFF_ObjSymbol *data_symbol, + U64 data_size, + String8 dir_name, + PE_DebugDirectoryType type, + COFF_TimeStamp time_stamp) +{ + // init directory + PE_DebugDirectory *dir = push_array(obj_writer->arena, PE_DebugDirectory, 1); + dir->time_stamp = time_stamp; + dir->type = type; + dir->size = data_size; + //dir->voff = 0; // relocated through 'data_symbol' + //dir->foff = 0; // relocated through 'data_symbol' + COFF_ObjSection *debug_dir_sect = coff_obj_writer_push_section(obj_writer, dir_name, LNK_DATA_SECTION_FLAGS, str8_struct(dir)); + coff_obj_writer_section_push_reloc(obj_writer, debug_dir_sect, OffsetOf(PE_DebugDirectory, voff), data_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, debug_dir_sect, OffsetOf(PE_DebugDirectory, foff), data_symbol, COFF_Reloc_X64_Abs); +} + +internal String8 +lnk_make_debug_directory_obj(Arena *arena, LNK_Config *config) +{ + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, config->machine); + COFF_ObjSection *sect_a = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINKER_DEBUG_DIR$a"), LNK_DATA_SECTION_FLAGS, str8_zero()); + COFF_ObjSection *sect_z = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINKER_DEBUG_DIR$z"), LNK_DATA_SECTION_FLAGS, str8_zero()); + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + coff_obj_writer_release(&obj_writer); + return obj; +} + +internal String8 +lnk_make_debug_directory_pdb_obj(Arena *arena, LNK_Config *config) +{ + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, config->machine); + String8 debug_pdb_data = pe_make_debug_header_pdb70(obj_writer->arena, config->guid, config->age, config->pdb_alt_path); + COFF_ObjSection *debug_pdb_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$z"), LNK_DATA_SECTION_FLAGS, debug_pdb_data); + COFF_ObjSymbol *debug_pdb_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("PDB_DEBUG_HEADER_70"), 0, debug_pdb_sect); + lnk_push_pe_debug_data_directory(obj_writer, debug_pdb_symbol, debug_pdb_data.size, str8_lit(".RAD_LINKER_DEBUG_DIR$PDB"), PE_DebugDirectoryType_CODEVIEW, config->time_stamp); + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + return obj; +} + +internal String8 +lnk_make_debug_directory_rdi_obj(Arena *arena, LNK_Config *config) +{ + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, COFF_MachineType_Unknown); + String8 debug_rdi_data = pe_make_debug_header_rdi(obj_writer->arena, config->guid, config->rad_debug_alt_path); + COFF_ObjSection *debug_rdi_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$z"), LNK_DATA_SECTION_FLAGS, debug_rdi_data); + COFF_ObjSymbol *debug_rdi_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("RDI_DEBUG_HEADER"), 0, debug_rdi_sect); + lnk_push_pe_debug_data_directory(obj_writer, debug_rdi_symbol, debug_rdi_data.size, str8_lit("RAD_LINKER_DEBUG_DIR$RDI"), PE_DebugDirectoryType_CODEVIEW, config->time_stamp); + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + return obj; +} internal THREAD_POOL_TASK_FUNC(lnk_load_thin_objs_task) @@ -865,55 +867,11 @@ lnk_push_loaded_lib(Arena *arena, HashTable *loaded_lib_ht, String8 path) } } -internal void -lnk_push_input_from_lazy(Arena *arena, PathStyle path_style, LNK_LazySymbol *lazy, LNK_InputImportList *input_import_list, LNK_InputObjList *input_obj_list) +internal LNK_InputObjList +lnk_push_linker_symbols(Arena *arena, LNK_Config *config) { - // parse member - COFF_ArchiveMember member_info = coff_archive_member_from_offset(lazy->lib->data, lazy->member_offset); - COFF_DataType member_type = coff_data_type_from_data(member_info.data); - - switch (member_type) { - case COFF_DataType_Null: break; - case COFF_DataType_Import: { - LNK_InputImport *input = lnk_input_import_list_push(arena, input_import_list); - input->import_header = coff_archive_import_from_data(member_info.data); - } break; - case COFF_DataType_BigObj: - case COFF_DataType_Obj: { - String8 obj_path = coff_parse_long_name(lazy->lib->long_names, member_info.header.name); - - // obj path in thin archive has slash appended which screws up - // file lookup on disk; it couble be there to enable paths to symbols - // but we don't use this feature - String8 slash = str8_lit("/"); - if (str8_ends_with(obj_path, slash, 0)) { - obj_path = str8_chop(obj_path, slash.size); - } - - // obj path in thin archive is relative to directory with archive - B32 is_thin = lazy->lib->type == COFF_Archive_Thin; - if (is_thin) { - Temp scratch = scratch_begin(&arena, 1); - String8List obj_path_list; MemoryZeroStruct(&obj_path_list); - str8_list_push(scratch.arena, &obj_path_list, str8_chop_last_slash(lazy->lib->path)); - str8_list_push(scratch.arena, &obj_path_list, obj_path); - obj_path = str8_path_list_join_by_style(arena, &obj_path_list, path_style); - scratch_end(scratch); - } - - LNK_InputObj *input = lnk_input_obj_list_push(arena, input_obj_list); - input->is_thin = is_thin; - input->dedup_id = push_str8f(arena, "%S/%S", lazy->lib->path, obj_path); - input->path = obj_path; - input->data = member_info.data; - input->lib_path = lazy->lib->path; - } break; - } -} + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, config->machine); -internal void -lnk_push_linker_symbols(LNK_SymbolTable *symtab, COFF_MachineType machine) -{ // Emit __ImageBase symbol. // // This symbol is used with REL32 to compute delta from current IP @@ -921,30 +879,298 @@ lnk_push_linker_symbols(LNK_SymbolTable *symtab, COFF_MachineType machine) // passing it around as a function argument. // // 100h: lea rax, [rip + ffffff00h] ; -100h - LNK_Symbol *image_base = lnk_symbol_table_push_defined_chunk(symtab, str8_lit("__ImageBase"), LNK_DefinedSymbolVisibility_Extern, 0, g_null_chunk_ptr, 0, COFF_ComdatSelect_Any, 0); + U64 base_addr = lnk_get_base_addr(config); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("__ImageBase"), base_addr, COFF_SymStorageClass_External); { // load config symbols - if (machine == COFF_MachineType_X86) { - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_SAFE_SE_HANDLER_TABLE_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Extern, 0, g_null_chunk_ptr, 0, COFF_ComdatSelect_NoDuplicates, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_SAFE_SE_HANDLER_COUNT_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Extern, 0, g_null_chunk_ptr, 0, COFF_ComdatSelect_NoDuplicates, 0); + if (config->machine == COFF_MachineType_X86) { + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_SAFE_SE_HANDLER_TABLE_SYMBOL_NAME), 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_SAFE_SE_HANDLER_COUNT_SYMBOL_NAME), 0, COFF_SymStorageClass_External); } // TODO: investigate IMAGE_ENCLAVE_CONFIG 32/64 - lnk_symbol_table_push_defined_va(symtab, str8_lit(LNK_ENCLAVE_CONFIG_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Extern, 0, 0); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_ENCLAVE_CONFIG_SYMBOL_NAME), 0, COFF_SymStorageClass_External); - lnk_symbol_table_push_defined(symtab, str8_lit(LNK_GUARD_FLAGS_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Extern, 0); - lnk_symbol_table_push_defined(symtab, str8_lit(LNK_GUARD_FIDS_TABLE_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Extern, 0); - lnk_symbol_table_push_defined(symtab, str8_lit(LNK_GUARD_FIDS_COUNT_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Extern, 0); - lnk_symbol_table_push_defined(symtab, str8_lit(LNK_GUARD_IAT_TABLE_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Extern, 0); - lnk_symbol_table_push_defined(symtab, str8_lit(LNK_GUARD_IAT_COUNT_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Extern, 0); - lnk_symbol_table_push_defined(symtab, str8_lit(LNK_GUARD_LONGJMP_TABLE_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Extern, 0); - lnk_symbol_table_push_defined(symtab, str8_lit(LNK_GUARD_LONGJMP_COUNT_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Extern, 0); - lnk_symbol_table_push_defined(symtab, str8_lit(LNK_GUARD_EHCONT_TABLE_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Extern, 0); - lnk_symbol_table_push_defined(symtab, str8_lit(LNK_GUARD_EHCONT_COUNT_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Extern, 0); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_FLAGS_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_FIDS_TABLE_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_FIDS_COUNT_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_IAT_TABLE_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_IAT_COUNT_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_LONGJMP_TABLE_SYMBOL_NAME), 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_LONGJMP_COUNT_SYMBOL_NAME), 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_EHCONT_TABLE_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_EHCONT_COUNT_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); + } + + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + coff_obj_writer_release(&obj_writer); + + LNK_InputObjList result = {0}; + LNK_InputObj *input = lnk_input_obj_list_push(arena, &result); + input->path = str8_lit("* Linker Symbols *"); + input->dedup_id = input->path; + input->data = obj; + + return result; +} + +internal void +lnk_queue_lib_member_input(Arena *arena, PathStyle path_style, LNK_SymbolLib *symbol, LNK_InputImportList *input_import_list, LNK_InputObjList *input_obj_list) +{ + // parse member + COFF_ArchiveMember member_info = coff_archive_member_from_offset(symbol->lib->data, symbol->member_offset); + COFF_DataType member_type = coff_data_type_from_data(member_info.data); + + switch (member_type) { + case COFF_DataType_Null: break; + case COFF_DataType_Import: { + LNK_InputImport *input = lnk_input_import_list_push(arena, input_import_list); + input->import_header = coff_archive_import_from_data(member_info.data); + } break; + case COFF_DataType_BigObj: + case COFF_DataType_Obj: { + String8 obj_path = coff_parse_long_name(symbol->lib->long_names, member_info.header.name); + + // obj path in thin archive has slash appended which screws up + // file lookup on disk; it couble be there to enable paths to symbols + // but we don't use this feature + String8 slash = str8_lit("/"); + if (str8_ends_with(obj_path, slash, 0)) { + obj_path = str8_chop(obj_path, slash.size); + } + + // obj path in thin archive is relative to directory with archive + B32 is_thin = symbol->lib->type == COFF_Archive_Thin; + if (is_thin) { + Temp scratch = scratch_begin(&arena, 1); + String8List obj_path_list = {0}; + str8_list_push(scratch.arena, &obj_path_list, str8_chop_last_slash(symbol->lib->path)); + str8_list_push(scratch.arena, &obj_path_list, obj_path); + obj_path = str8_path_list_join_by_style(arena, &obj_path_list, path_style); + scratch_end(scratch); + } + + LNK_InputObj *input = lnk_input_obj_list_push(arena, input_obj_list); + input->is_thin = is_thin; + input->dedup_id = push_str8f(arena, "%S/%S", symbol->lib->path, obj_path); + input->path = obj_path; + input->data = member_info.data; + input->lib_path = symbol->lib->path; + } break; } } -//////////////////////////////// +internal int +lnk_section_contrib_is_before(void *raw_a, void *raw_b) +{ + // Grouped Sections (PE Format) + // "All contributions with the same object-section name are allocated contiguously in the image, + // and the blocks of contributions are sorted in lexical order by object-section name." + LNK_SectionContrib *a = raw_a; + LNK_SectionContrib *b = raw_b; + + int cmp; + + // place sections without sort postfix first + if (a->u.sort_idx_size == 0 && b->u.sort_idx_size > 0) { + cmp = -1; + } else if (a->u.sort_idx_size > 0 && b->u.sort_idx_size == 0) { + cmp = +1; + } else { + // sort on section postfix + String8 a_sort_idx = str8(a->u.sort_idx, a->u.sort_idx_size); + String8 b_sort_idx = str8(b->u.sort_idx, b->u.sort_idx_size); + cmp = str8_compar_case_sensitive(&a_sort_idx, &b_sort_idx); + + // sort on obj position on command line + if (cmp == 0) { + cmp = u64_compar(&a->u.obj_idx, &b->u.obj_idx); + } + } + + int is_before = cmp < 0; + return is_before; +} + +internal int +lnk_common_block_contrib_is_before(void *raw_a, void *raw_b) +{ + LNK_CommonBlockContrib *a = raw_a; + LNK_CommonBlockContrib *b = raw_b; + + int is_before; + if (a->u.size == b->u.size) { + LNK_Symbol *a_symbol = a->symbol; + LNK_Symbol *b_symbol = b->symbol; + if (a_symbol->u.defined.obj->input_idx == b_symbol->u.defined.obj->input_idx) { + is_before = a_symbol->u.defined.symbol_idx < b_symbol->u.defined.symbol_idx; + } else { + is_before = a_symbol->u.defined.obj->input_idx < b_symbol->u.defined.obj->input_idx; + } + } else { + is_before = a->u.size > b->u.size; + } + + return is_before; +} + +internal U64 +lnk_compute_win32_image_header_size(LNK_Config *config, U64 sect_count) +{ + U64 image_header_size = 0; + image_header_size += sizeof(PE_DosHeader) + pe_dos_program.size; + image_header_size += sizeof(U32); // PE_MAGIC + image_header_size += sizeof(COFF_FileHeader); + image_header_size += pe_has_plus_header(config->machine) ? sizeof(PE_OptionalHeader32Plus) : sizeof(PE_OptionalHeader32); + image_header_size += sizeof(PE_DataDirectory) * config->data_dir_count; + image_header_size += sizeof(COFF_SectionHeader) * sect_count; + return image_header_size; +} + +internal +THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) +{ + LNK_ObjRelocPatcher *task = raw_task; + LNK_Obj *obj = task->objs[task_id]; + + COFF_FileHeaderInfo obj_header = obj->header; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj_header.section_table_range).str; + String8 symbol_table = str8_substr(obj->data, obj_header.symbol_table_range); + String8 string_table = str8_substr(obj->data, obj_header.string_table_range); + + for (U64 sect_idx = 0; sect_idx < obj_header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *section_header = §ion_table[sect_idx]; + + if (section_header->flags & COFF_SectionFlag_LnkRemove) { + continue; + } + + COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, section_header); + COFF_Reloc *relocs = (COFF_Reloc *)(obj->data.str + reloc_info.array_off); + + for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { + COFF_Reloc *reloc = &relocs[reloc_idx]; + + // compute relocation file/virtual offsets + U64 reloc_file_offset = section_header->foff + reloc->apply_off; + U64 reloc_virtual_offset = section_header->voff + reloc->apply_off; + + // compute symbol location values + U32 symbol_section_number = 0; + U32 symbol_section_offset = 0; + U32 symbol_virtual_offset = 0; + U64 symbol_address = 0; + { + COFF_ParsedSymbol symbol; + if (obj_header.is_big_obj) { + symbol = coff_parse_symbol32(string_table, (COFF_Symbol32 *)symbol_table.str + reloc->isymbol); + } else { + symbol = coff_parse_symbol16(string_table, (COFF_Symbol16 *)symbol_table.str + reloc->isymbol); + } + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { + symbol_section_number = symbol.section_number; + symbol_section_offset = symbol.value; + symbol_virtual_offset = task->image_section_table[symbol.section_number]->voff + symbol_section_offset; + symbol_address = task->base_addr + symbol_virtual_offset; + } else if (interp == COFF_SymbolValueInterp_Abs) { + symbol_section_number = max_U32; + symbol_section_offset = max_U32; + symbol_virtual_offset = symbol.value - task->base_addr; + symbol_address = symbol.value; + } else if (interp == COFF_SymbolValueInterp_Weak) { + // unresolved weak + } else if (interp == COFF_SymbolValueInterp_Undefined) { + // unresolved undefined + } else { + InvalidPath; + } + } + + // pick reloc value + COFF_RelocValue reloc_value = {0}; + switch (obj_header.machine) { + case COFF_MachineType_Unknown: {} break; + case COFF_MachineType_X64: { reloc_value = coff_pick_reloc_value_x64(reloc->type, reloc_virtual_offset, symbol_section_number, symbol_section_offset, symbol_virtual_offset, symbol_address); } break; + default: { NotImplemented; } break; + } + + // read addend + Assert(reloc_file_offset + reloc_value.size <= task->image_data.size); + U64 raw_addend = 0; + str8_deserial_read(task->image_data, reloc_file_offset, &raw_addend, reloc_value.size, reloc_value.size); + + // compute new reloc value + S64 addend = extend_sign64(raw_addend, reloc_value.size); + U64 reloc_result = reloc_value.value + addend; + + // commit new reloc value + MemoryCopy(task->image_data.str + reloc_file_offset, &reloc_result, reloc_value.size); + } + } +} + +internal void +lnk_patch_weak_external_symbol(B32 is_big_obj, void *symbol, COFF_ParsedSymbol parsed_symbol) +{ + COFF_SymbolValueInterpType parsed_symbol_interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); + switch (parsed_symbol_interp) { + case COFF_SymbolValueInterp_Regular: { + if (is_big_obj) { + COFF_Symbol32 *symbol32 = symbol; + symbol32->section_number = parsed_symbol.section_number; + symbol32->value = parsed_symbol.value; + symbol32->type = parsed_symbol.type; + symbol32->storage_class = COFF_SymStorageClass_Static; + } else { + COFF_Symbol16 *symbol16 = symbol; + symbol16->section_number = safe_cast_u16(parsed_symbol.section_number); + symbol16->value = parsed_symbol.value; + symbol16->type = parsed_symbol.type; + symbol16->storage_class = COFF_SymStorageClass_Static; + } + } break; + case COFF_SymbolValueInterp_Common: { + InvalidPath; + } break; + case COFF_SymbolValueInterp_Abs: { + if (is_big_obj) { + COFF_Symbol32 *symbol32 = symbol; + symbol32->section_number = COFF_Symbol_AbsSection32; + symbol32->value = parsed_symbol.value; + symbol32->type = parsed_symbol.type; + symbol32->storage_class = COFF_SymStorageClass_Static; + } else { + COFF_Symbol16 *symbol16 = symbol; + symbol16->section_number = COFF_Symbol_AbsSection16; + symbol16->value = parsed_symbol.value; + symbol16->type = parsed_symbol.type; + symbol16->storage_class = COFF_SymStorageClass_Static; + } + } break; + case COFF_SymbolValueInterp_Weak: + case COFF_SymbolValueInterp_Debug: + case COFF_SymbolValueInterp_Undefined: { + InvalidPath; + } break; + default: { NotImplemented; } break; + } +} + +internal int +lnk_section_definition_is_before(void *raw_a, void *raw_b) +{ + LNK_SectionDefinition **a = raw_a; + LNK_SectionDefinition **b = raw_b; + int is_before; + if ((*a)->obj->input_idx == (*b)->obj->input_idx) { + is_before = (*a)->obj_sect_idx < (*b)->obj_sect_idx; + } else { + is_before = (*a)->obj->input_idx < (*b)->obj->input_idx; + } + return is_before; +} internal void lnk_push_coff_symbols_from_data(Arena *arena, LNK_SymbolList *symbol_list, String8 data, LNK_SymbolArray obj_symbols) @@ -988,81 +1214,22 @@ lnk_build_guard_data(Arena *arena, U64Array voff_arr, U64 stride) return guard_data; } -internal void -lnk_push_pe_debug_data_directory(COFF_ObjWriter *obj_writer, - COFF_ObjSymbol *data_symbol, - PE_DebugDirectoryType type, - COFF_TimeStamp time_stamp) -{ - // init directory - PE_DebugDirectory *dir = push_array(obj_writer->arena, PE_DebugDirectory, 1); - dir->time_stamp = time_stamp; - dir->type = type; - //dir->voff = 0; // relocated through 'data_symbol' - //dir->foff = 0; // relocated through 'data_symbol' - //dir->size = 0; // relocated through 'data_symbol' - COFF_ObjSection *debug_dir_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINKER_DEBUG_DIR$d"), LNK_DATA_SECTION_FLAGS, str8_struct(dir)); - coff_obj_writer_section_push_reloc(obj_writer, debug_dir_sect, OffsetOf(PE_DebugDirectory, voff), data_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, debug_dir_sect, OffsetOf(PE_DebugDirectory, foff), data_symbol, LNK_COFF_RELOC_FILE_OFFSET32); - coff_obj_writer_section_push_reloc(obj_writer, debug_dir_sect, OffsetOf(PE_DebugDirectory, size), data_symbol, LNK_COFF_RELOC_SECT_SIZE32); -} - -internal LNK_InputObjList -lnk_build_debug_directory_objs(Arena *arena, LNK_Config *config) -{ - LNK_InputObjList result = {0}; - - B32 build_pdb_header = config->debug_mode != LNK_DebugMode_None && config->debug_mode != LNK_DebugMode_Null; - B32 build_rdi_header = config->rad_debug == LNK_SwitchState_Yes; - - if (build_pdb_header || build_rdi_header) { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, config->machine); - - COFF_ObjSection *sect_a = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINKER_DEBUG_DIR$a"), LNK_DATA_SECTION_FLAGS, str8_zero()); - COFF_ObjSection *sect_z = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINKER_DEBUG_DIR$z"), LNK_DATA_SECTION_FLAGS, str8_zero()); - - // marker symbols for debug directory patcher - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("RAD_LINKER_DEBUG_SECTION_A"), 0, sect_a); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("RAD_LINKER_DEBUG_SECTION_Z"), 0, sect_z); - - // debug entry for PDB - if (build_pdb_header) { - String8 debug_pdb_data = pe_make_debug_header_pdb70(obj_writer->arena, config->guid, config->age, config->pdb_alt_path); - COFF_ObjSection *debug_pdb_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$z"), LNK_DATA_SECTION_FLAGS, debug_pdb_data); - COFF_ObjSymbol *debug_pdb_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("PDB_DEBUG_HEADER_70"), 0, debug_pdb_sect); - lnk_push_pe_debug_data_directory(obj_writer, debug_pdb_symbol, PE_DebugDirectoryType_CODEVIEW, config->time_stamp); - } - - // debug entry for RDI - if (build_rdi_header) { - String8 debug_rdi_data = pe_make_debug_header_rdi(obj_writer->arena, config->guid, config->rad_debug_alt_path); - COFF_ObjSection *debug_rdi_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$z"), LNK_DATA_SECTION_FLAGS, debug_rdi_data); - COFF_ObjSymbol *debug_rdi_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("RDI_DEBUG_HEADER"), 0, debug_rdi_sect); - lnk_push_pe_debug_data_directory(obj_writer, debug_rdi_symbol, PE_DebugDirectoryType_CODEVIEW, config->time_stamp); - } - - LNK_InputObj *input = lnk_input_obj_list_push(arena, &result); - input->path = str8_lit("* Debug Directory *"); - input->dedup_id = input->path; - input->data = coff_obj_writer_serialize(arena, obj_writer); - - coff_obj_writer_release(&obj_writer); - } - - return result; -} - -internal void +internal String8List lnk_build_guard_tables(TP_Context *tp, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, LNK_ExportTable *exptab, - LNK_ObjList obj_list, + U64 objs_count, + LNK_Obj **objs, COFF_MachineType machine, String8 entry_point_name, LNK_GuardFlags guard_flags, B32 emit_suppress_flag) { + NotImplemented; + String8List result = {0}; + return result; +#if 0 ProfBeginFunction(); Temp scratch = scratch_begin(0, 0); @@ -1079,32 +1246,31 @@ lnk_build_guard_tables(TP_Context *tp, if (has_guard_flags) { LNK_SymbolArray symbol_arr = lnk_symbol_array_from_list(scratch.arena, obj->symbol_list); if (guard_flags & LNK_Guard_Cf) { - LNK_ChunkList gfids_list = lnk_obj_search_chunks(scratch.arena, obj, str8_lit(".gfids"), str8_zero(), 1); - for (LNK_ChunkNode *node = gfids_list.first; node != 0; node = node->next) { - Assert(node->data->type == LNK_Chunk_Leaf); - lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], node->data->u.leaf, symbol_arr); + String8List gfids_list = lnk_collect_obj_chunks(scratch.arena, obj, str8_lit(".gfids"), str8_zero(), 1); + for (String8Node *node = gfids_list.first; node != 0; node = node->next) { + lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], node->string, symbol_arr); } - LNK_ChunkList giats_list = lnk_obj_search_chunks(scratch.arena, obj, str8_lit(".giats"), str8_zero(), 1); - for (LNK_ChunkNode *node = giats_list.first; node != 0; node = node->next) { - Assert(node->data->type == LNK_Chunk_Leaf); - lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_IATS], node->data->u.leaf, symbol_arr); + String8List giats_list = lnk_collect_obj_chunks(scratch.arena, obj, str8_lit(".giats"), str8_zero(), 1); + for (String8Node *node = giats_list.first; node != 0; node = node->next) { + lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_IATS], node->string, symbol_arr); } } if (guard_flags & LNK_Guard_LongJmp) { - LNK_ChunkList gljmp_list = lnk_obj_search_chunks(scratch.arena, obj, str8_lit(".gljmp"), str8_zero(), 1); - for (LNK_ChunkNode *node = gljmp_list.first; node != 0; node = node->next) { - Assert(node->data->type == LNK_Chunk_Leaf); - lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_LJMP], node->data->u.leaf, symbol_arr); + String8List gljmp_list = lnk_obj_search_chunks(scratch.arena, obj, str8_lit(".gljmp"), str8_zero(), 1); + for (String8Node *node = gljmp_list.first; node != 0; node = node->next) { + lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_LJMP], node->string, symbol_arr); } } if (guard_flags & LNK_Guard_EhCont) { - LNK_ChunkList gehcont_list = lnk_obj_search_chunks(scratch.arena, obj, str8_lit(".gehcont"), str8_zero(), 1); - for (LNK_ChunkNode *node = gehcont_list.first; node != 0; node = node->next) { - Assert(node->data->type == LNK_Chunk_Leaf); - lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_EHCONT], node->data->u.leaf, symbol_arr); + String8List gehcont_list = lnk_obj_search_chunks(scratch.arena, obj, str8_lit(".gehcont"), str8_zero(), 1); + for (String8Node *node = gehcont_list.first; node != 0; node = node->next) { + lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_EHCONT], node->string, symbol_arr); } } } else { + // TODO: loop over COFF relocs + NotImplemented; +#if 0 // use relocation data in code sections to get function symbols for (U64 isect = 0; isect < obj->sect_count; ++isect) { LNK_Chunk *chunk = obj->chunk_arr[isect]; @@ -1140,11 +1306,12 @@ lnk_build_guard_tables(TP_Context *tp, lnk_symbol_list_push(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], symbol); } } +#endif } } // entry point - LNK_Symbol *entry_point_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Main, entry_point_name); + LNK_Symbol *entry_point_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, entry_point_name); lnk_symbol_list_push(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], entry_point_symbol); // push exports @@ -1163,9 +1330,9 @@ lnk_build_guard_tables(TP_Context *tp, NotImplemented; #if 0 // push thunks - LNK_SymbolScopeIndex scope_array[] = { LNK_SymbolScopeIndex_Defined, LNK_SymbolScopeIndex_Internal }; + LNK_SymbolScope scope_array[] = { LNK_SymbolScope_Defined, LNK_SymbolScope_Internal }; for (U64 iscope = 0; iscope < ArrayCount(scope_array); ++iscope) { - LNK_SymbolScopeIndex scope = scope_array[iscope]; + LNK_SymbolScope scope = scope_array[iscope]; for (U64 ibucket = 0; ibucket < symtab->bucket_count[scope]; ++ibucket) { for (LNK_SymbolNode *symbol_node = symtab->buckets[scope][ibucket].first; symbol_node != NULL; @@ -1225,7 +1392,6 @@ lnk_build_guard_tables(TP_Context *tp, }; for (U64 i = 0; i < ArrayCount(sect_layout); ++i) { LNK_Section *sect = lnk_section_table_push(sectab, str8_cstring(sect_layout[i].name), sect_layout[i].flags); - lnk_symbol_table_push_defined_chunk(symtab, str8_cstring(sect_layout[i].symbol), LNK_DefinedSymbolVisibility_Internal, 0, sect->root, 0, 0, 0); } // TODO: emit table for SEH on X86 @@ -1234,10 +1400,10 @@ lnk_build_guard_tables(TP_Context *tp, lnk_not_implemented("__safe_se_handler_count"); } - LNK_Symbol *gfids_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Internal, str8_lit(LNK_GFIDS_SYMBOL_NAME)); - LNK_Symbol *giats_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Internal, str8_lit(LNK_GIATS_SYMBOL_NAME)); - LNK_Symbol *gljmp_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Internal, str8_lit(LNK_GLJMP_SYMBOL_NAME)); - LNK_Symbol *gehcont_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Internal, str8_lit(LNK_GEHCONT_SYMBOL_NAME)); + LNK_Symbol *gfids_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Internal, str8_lit(LNK_GFIDS_SYMBOL_NAME)); + LNK_Symbol *giats_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Internal, str8_lit(LNK_GIATS_SYMBOL_NAME)); + LNK_Symbol *gljmp_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Internal, str8_lit(LNK_GLJMP_SYMBOL_NAME)); + LNK_Symbol *gehcont_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Internal, str8_lit(LNK_GEHCONT_SYMBOL_NAME)); LNK_Section *gfids_sect = lnk_section_table_search_id(sectab, gfids_symbol->u.defined.u.chunk->ref.sect_id); LNK_Section *giats_sect = lnk_section_table_search_id(sectab, giats_symbol->u.defined.u.chunk->ref.sect_id); @@ -1270,15 +1436,15 @@ lnk_build_guard_tables(TP_Context *tp, lnk_section_push_chunk_data(gljmp_sect, gljmp_array_chunk, gljmp_data, str8_zero()); lnk_section_push_chunk_data(gehcont_sect, gehcont_array_chunk, gehcont_data, str8_zero()); - LNK_Symbol *gflags_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Main, str8_lit(LNK_GUARD_FLAGS_SYMBOL_NAME)); - LNK_Symbol *gfids_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Main, str8_lit(LNK_GUARD_FIDS_TABLE_SYMBOL_NAME)); - LNK_Symbol *gfids_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Main, str8_lit(LNK_GUARD_FIDS_COUNT_SYMBOL_NAME)); - LNK_Symbol *giats_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Main, str8_lit(LNK_GUARD_IAT_TABLE_SYMBOL_NAME)); - LNK_Symbol *giats_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Main, str8_lit(LNK_GUARD_IAT_COUNT_SYMBOL_NAME)); - LNK_Symbol *gljmp_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Main, str8_lit(LNK_GUARD_LONGJMP_TABLE_SYMBOL_NAME)); - LNK_Symbol *gljmp_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Main, str8_lit(LNK_GUARD_LONGJMP_COUNT_SYMBOL_NAME)); - LNK_Symbol *gehcont_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Main, str8_lit(LNK_GUARD_EHCONT_TABLE_SYMBOL_NAME)); - LNK_Symbol *gehcont_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Main, str8_lit(LNK_GUARD_EHCONT_COUNT_SYMBOL_NAME)); + LNK_Symbol *gflags_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_FLAGS_SYMBOL_NAME)); + LNK_Symbol *gfids_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_FIDS_TABLE_SYMBOL_NAME)); + LNK_Symbol *gfids_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_FIDS_COUNT_SYMBOL_NAME)); + LNK_Symbol *giats_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_IAT_TABLE_SYMBOL_NAME)); + LNK_Symbol *giats_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_IAT_COUNT_SYMBOL_NAME)); + LNK_Symbol *gljmp_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_LONGJMP_TABLE_SYMBOL_NAME)); + LNK_Symbol *gljmp_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_LONGJMP_COUNT_SYMBOL_NAME)); + LNK_Symbol *gehcont_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_EHCONT_TABLE_SYMBOL_NAME)); + LNK_Symbol *gehcont_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_EHCONT_COUNT_SYMBOL_NAME)); LNK_DefinedSymbol *gflags_def = &gflags_symbol->u.defined; LNK_DefinedSymbol *gfids_table_def = &gfids_table_symbol->u.defined; @@ -1350,108 +1516,93 @@ lnk_build_guard_tables(TP_Context *tp, scratch_end(scratch); ProfEnd(); -} - -internal void -lnk_emit_base_reloc_info(Arena *arena, - LNK_Section **sect_id_map, - B32 is_large_addr_aware, - U64 page_size, - HashTable *page_ht, - LNK_BaseRelocPageList *page_list, - LNK_Reloc *reloc) -{ - B32 is_addr = (reloc->type == LNK_Reloc_ADDR_64 || reloc->type == LNK_Reloc_ADDR_32); - if (is_addr) { - U64 reloc_voff = lnk_virt_off_from_reloc(sect_id_map, reloc); - U64 page_voff = AlignDownPow2(reloc_voff, page_size); - - LNK_BaseRelocPageNode *page; - { - KeyValuePair *is_page_present = hash_table_search_u64(page_ht, page_voff); - if (is_page_present) { - page = is_page_present->value_raw; - } else { - // fill out page - page = push_array(arena, LNK_BaseRelocPageNode, 1); - page->v.voff = page_voff; - - // push page - SLLQueuePush(page_list->first, page_list->last, page); - page_list->count += 1; - - // register page voff - hash_table_push_u64_raw(arena, page_ht, page_voff, page); - } - } - - if (reloc->type == LNK_Reloc_ADDR_32) { - if (is_large_addr_aware) { - lnk_error(LNK_Error_LargeAddrAwareRequired, "found out of range ADDR32 relocation for '%S', link with /LARGEADDRESSAWARE:NO", reloc->symbol->name); - } else { - u64_list_push(arena, &page->v.entries_addr32, reloc_voff); - } - } else if (reloc->type == LNK_Reloc_ADDR_64) { - u64_list_push(arena, &page->v.entries_addr64, reloc_voff); - } - } -} - -internal -THREAD_POOL_TASK_FUNC(lnk_emit_base_relocs_from_reloc_array_task) -{ - ProfBeginFunction(); - LNK_BaseRelocTask task = *(LNK_BaseRelocTask*)raw_task; - Rng1U64 range = task.range_arr[task_id]; - for (U64 reloc_idx = range.min; reloc_idx < range.max; reloc_idx += 1) { - LNK_Reloc *reloc = task.reloc_arr[reloc_idx]; - lnk_emit_base_reloc_info(arena, task.sect_id_map, task.is_large_addr_aware, task.page_size, task.page_ht_arr[task_id], &task.list_arr[task_id], reloc); - } - ProfEnd(); +#endif } internal THREAD_POOL_TASK_FUNC(lnk_emit_base_relocs_from_objs_task) { ProfBeginFunction(); - LNK_ObjBaseRelocTask task = *(LNK_ObjBaseRelocTask *)raw_task; - Rng1U64 range = task.ranges[task_id]; + + LNK_ObjBaseRelocTask *task = raw_task; + Rng1U64 range = task->ranges[task_id]; + + HashTable *page_ht = task->page_ht_arr[task_id]; + LNK_BaseRelocPageList *page_list = &task->list_arr[task_id]; + for (U64 obj_idx = range.min; obj_idx < range.max; ++obj_idx) { - LNK_Obj *obj = task.obj_arr[obj_idx]; - for (U64 sect_idx = 0; sect_idx < obj->sect_count; sect_idx += 1) { - B32 is_live = !lnk_chunk_is_discarded(obj->chunk_arr[sect_idx]); - if (is_live) { - LNK_RelocList reloc_list = obj->sect_reloc_list_arr[sect_idx]; - for (LNK_Reloc *reloc = reloc_list.first; reloc != 0; reloc = reloc->next) { - lnk_emit_base_reloc_info(arena, task.sect_id_map, task.is_large_addr_aware, task.page_size, task.page_ht_arr[task_id], &task.list_arr[task_id], reloc); + LNK_Obj *obj = task->obj_arr[obj_idx]; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + + if (sect_header->flags & COFF_SectionFlag_LnkRemove) { + continue; + } + + COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, sect_header); + COFF_Reloc *relocs = (COFF_Reloc *)(obj->data.str + reloc_info.array_off); + + for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { + COFF_Reloc *r = &relocs[reloc_idx]; + + COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, r->isymbol); + COFF_SymbolValueInterpType symbol_interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + B32 is_symbol_address = symbol_interp == COFF_SymbolValueInterp_Regular; + + if (is_symbol_address) { + B32 is_addr32 = 0, is_addr64 = 0; + switch (obj->header.machine) { + case COFF_MachineType_Unknown: {} break; + case COFF_MachineType_X64: { + is_addr32 = r->type == COFF_Reloc_X64_Addr32; + is_addr64 = r->type == COFF_Reloc_X64_Addr64; + } break; + default: { NotImplemented; } break; + } + + if (is_addr32 || is_addr64) { + U64 reloc_voff = sect_header->voff + r->apply_off; + U64 page_voff = AlignDownPow2(reloc_voff, task->page_size); + + LNK_BaseRelocPageNode *page; + { + KeyValuePair *is_page_present = hash_table_search_u64(page_ht, page_voff); + if (is_page_present) { + page = is_page_present->value_raw; + } else { + // fill out page + page = push_array(arena, LNK_BaseRelocPageNode, 1); + page->v.voff = page_voff; + + // push page + SLLQueuePush(page_list->first, page_list->last, page); + page_list->count += 1; + + // register page voff + hash_table_push_u64_raw(arena, page_ht, page_voff, page); + } + } + + if (is_addr32) { + if (task->is_large_addr_aware) { + COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, r->isymbol); + lnk_error_obj(LNK_Error_LargeAddrAwareRequired, obj, "found out of range ADDR32 relocation for '%S', link with /LARGEADDRESSAWARE:NO", symbol.name); + } else { + u64_list_push(arena, &page->v.entries_addr32, reloc_voff); + } + } else { + u64_list_push(arena, &page->v.entries_addr64, reloc_voff); + } + } } } } } + ProfEnd(); } -internal LNK_BaseRelocPageArray -lnk_base_reloc_page_array_from_list(Arena* arena, LNK_BaseRelocPageList list) -{ - LNK_BaseRelocPageArray result = {0}; - result.count = 0; - result.v = push_array_no_zero(arena, LNK_BaseRelocPage, list.count); - for (LNK_BaseRelocPageNode* n = list.first; n != 0; n = n->next) { - result.v[result.count++] = n->v; - } - Assert(result.count == list.count); - return result; -} - -int -lnk_base_reloc_page_is_before(void *raw_a, void *raw_b) -{ - LNK_BaseRelocPage* a = raw_a; - LNK_BaseRelocPage* b = raw_b; - return a->voff < b->voff; -} - int lnk_base_reloc_page_compar(const void *raw_a, const void *raw_b) { @@ -1460,118 +1611,93 @@ lnk_base_reloc_page_compar(const void *raw_a, const void *raw_b) return u64_compar(&a->voff, &b->voff); } -internal void -lnk_base_reloc_page_array_sort(LNK_BaseRelocPageArray arr) +int +lnk_base_reloc_page_is_before(void *raw_a, void *raw_b) { - ProfBeginFunction(); - //radsort(arr.v, arr.count, lnk_base_reloc_page_is_before); - qsort(arr.v, arr.count, sizeof(arr.v[0]), lnk_base_reloc_page_compar); - ProfEnd(); + LNK_BaseRelocPage* a = raw_a; + LNK_BaseRelocPage* b = raw_b; + return a->voff < b->voff; } -internal void -lnk_build_base_relocs(TP_Context *tp, - TP_Arena *tp_arena, - LNK_SectionTable *sectab, - LNK_SymbolTable *symtab, - COFF_MachineType machine, - U64 page_size, - PE_ImageFileCharacteristics file_chars, - LNK_ObjList obj_list) +internal String8List +lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config, U64 objs_count, LNK_Obj **objs) { ProfBeginFunction(); + + Arena *arena = tp_arena->v[0]; + Temp scratch = scratch_begin(tp_arena->v, tp_arena->count); + tp_arena->v[0] = scratch.arena; + TP_Temp tp_temp = tp_temp_begin(tp_arena); - TP_Temp temp = tp_temp_begin(tp_arena); - - lnk_section_table_build_data(tp, sectab, machine); - lnk_section_table_assign_virtual_offsets(sectab); - - LNK_Section **sect_id_map = lnk_sect_id_map_from_section_table(tp_arena->v[0], sectab); - - LNK_BaseRelocPageList *page_list_arr = push_array(tp_arena->v[0], LNK_BaseRelocPageList, tp->worker_count); - HashTable **page_ht_arr = push_array_no_zero(tp_arena->v[0], HashTable *, tp->worker_count); - for (U64 i = 0; i < tp->worker_count; ++i) { - page_ht_arr[i] = hash_table_init(tp_arena->v[0], 1024); - } - - // emit pages from relocs defined in section table - ProfBegin("Emit Relocs From Section Table"); - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != 0; sect_node = sect_node->next) { - LNK_BaseRelocTask task = {0}; - task.page_size = page_size; - task.sect_id_map = sect_id_map; - task.list_arr = page_list_arr; - task.page_ht_arr = page_ht_arr; - task.reloc_arr = lnk_reloc_array_from_list(tp_arena->v[0], sect_node->data.reloc_list); - task.range_arr = tp_divide_work(tp_arena->v[0], sect_node->data.reloc_list.count, tp->worker_count); - task.is_large_addr_aware = !!(file_chars & PE_ImageFileCharacteristic_LARGE_ADDRESS_AWARE); - tp_for_parallel(tp, tp_arena, tp->worker_count, lnk_emit_base_relocs_from_reloc_array_task, &task); - } - ProfEnd(); - - // emit pages from relocs defined in objs - ProfBegin("Emit Relocs From Objs"); + LNK_BaseRelocPageArray page_arr; { - LNK_ObjBaseRelocTask task = {0}; - task.ranges = tp_divide_work(tp_arena->v[0], obj_list.count, tp->worker_count); - task.page_size = page_size; - task.sect_id_map = sect_id_map; - task.page_ht_arr = page_ht_arr; - task.list_arr = page_list_arr; - task.obj_arr = lnk_obj_arr_from_list(tp_arena->v[0], obj_list); - task.is_large_addr_aware = !!(file_chars & PE_ImageFileCharacteristic_LARGE_ADDRESS_AWARE); - tp_for_parallel(tp, tp_arena, tp->worker_count, lnk_emit_base_relocs_from_objs_task, &task); - } - ProfEnd(); - - // merge page lists - - ProfBegin("Merge Worker Page Lists"); - - HashTable *main_ht = page_ht_arr[0]; - LNK_BaseRelocPageList *main_page_list = &page_list_arr[0]; - - for (U64 list_idx = 1; list_idx < tp->worker_count; ++list_idx) { - LNK_BaseRelocPageList src = page_list_arr[list_idx]; - - for (LNK_BaseRelocPageNode *src_page = src.first, *src_next; src_page != 0; src_page = src_next) { - src_next = src_page->next; - - KeyValuePair *is_page_present = hash_table_search_u64(main_ht, src_page->v.voff); - if (is_page_present) { - // page exists concat voffs - LNK_BaseRelocPageNode *page = is_page_present->value_raw; - Assert(page != src_page); - u64_list_concat_in_place(&page->v.entries_addr32, &src_page->v.entries_addr32); - u64_list_concat_in_place(&page->v.entries_addr64, &src_page->v.entries_addr64); - } else { - // push page to main list - SLLQueuePush(main_page_list->first, main_page_list->last, src_page); - main_page_list->count += 1; - - // store lookup voff - hash_table_push_u64_raw(tp_arena->v[0], main_ht, src_page->v.voff, src_page); - } + LNK_BaseRelocPageList *page_list_arr = push_array(scratch.arena, LNK_BaseRelocPageList, tp->worker_count); + HashTable **page_ht_arr = push_array_no_zero(scratch.arena, HashTable *, tp->worker_count); + for (U64 i = 0; i < tp->worker_count; ++i) { + page_ht_arr[i] = hash_table_init(scratch.arena, 1024); } - } - - ProfEnd(); - - if (main_page_list->count > 0) { - LNK_Section *base_reloc_sect = lnk_section_table_push(sectab, str8_lit(".reloc"), LNK_RELOC_SECTION_FLAGS); - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_BASE_RELOC_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, base_reloc_sect->root, 0, 0, 0); - + + { + ProfBegin("Emit Relocs From Objs"); + LNK_ObjBaseRelocTask task = {0}; + task.ranges = tp_divide_work(scratch.arena, objs_count, tp->worker_count); + task.page_size = config->page_size; + task.page_ht_arr = page_ht_arr; + task.list_arr = page_list_arr; + task.obj_arr = objs; + task.is_large_addr_aware = !!(config->file_characteristics & PE_ImageFileCharacteristic_LARGE_ADDRESS_AWARE); + tp_for_parallel(tp, tp_arena, tp->worker_count, lnk_emit_base_relocs_from_objs_task, &task); + ProfEnd(); + } + + LNK_BaseRelocPageList *main_page_list = &page_list_arr[0]; + { + ProfBegin("Merge Worker Page Lists"); + HashTable *main_ht = page_ht_arr[0]; + for (U64 list_idx = 1; list_idx < tp->worker_count; ++list_idx) { + LNK_BaseRelocPageList src = page_list_arr[list_idx]; + + for (LNK_BaseRelocPageNode *src_page = src.first, *src_next; src_page != 0; src_page = src_next) { + src_next = src_page->next; + + KeyValuePair *is_page_present = hash_table_search_u64(main_ht, src_page->v.voff); + if (is_page_present) { + // page exists concat voffs + LNK_BaseRelocPageNode *page = is_page_present->value_raw; + Assert(page != src_page); + u64_list_concat_in_place(&page->v.entries_addr32, &src_page->v.entries_addr32); + u64_list_concat_in_place(&page->v.entries_addr64, &src_page->v.entries_addr64); + } else { + // push page to main list + SLLQueuePush(main_page_list->first, main_page_list->last, src_page); + main_page_list->count += 1; + + // store lookup voff + hash_table_push_u64_raw(scratch.arena, main_ht, src_page->v.voff, src_page); + } + } + } + ProfEnd(); + } + ProfBegin("Page List -> Array"); - LNK_BaseRelocPageArray page_arr = lnk_base_reloc_page_array_from_list(base_reloc_sect->arena, *main_page_list); + page_arr.count = 0; + page_arr.v = push_array_no_zero(scratch.arena, LNK_BaseRelocPage, main_page_list->count); + for (LNK_BaseRelocPageNode* n = main_page_list->first; n != 0; n = n->next) { + page_arr.v[page_arr.count++] = n->v; + } ProfEnd(); ProfBegin("Sort Pages on VOFF"); - lnk_base_reloc_page_array_sort(page_arr); + //radsort(page_arr.v, page_arr.count, lnk_base_reloc_page_is_before); + qsort(page_arr.v, page_arr.count, sizeof(page_arr.v[0]), lnk_base_reloc_page_compar); ProfEnd(); - - HashTable *voff_ht = hash_table_init(tp_arena->v[0], page_size); - + } + + String8List result = {0}; + if (page_arr.count) { ProfBegin("Serialize Pages"); + HashTable *voff_ht = hash_table_init(scratch.arena, config->page_size); for (U64 page_idx = 0; page_idx < page_arr.count; ++page_idx) { LNK_BaseRelocPage *page = &page_arr.v[page_idx]; @@ -1582,7 +1708,7 @@ lnk_build_base_relocs(TP_Context *tp, // push buffer U64 buf_align = sizeof(U32); U64 buf_size = AlignPow2(sizeof(U32)*2 + sizeof(U16)*total_entry_count, buf_align); - U8 *buf = push_array_no_zero(base_reloc_sect->arena, U8, buf_size); + U8 *buf = push_array_no_zero(arena, U8, buf_size); // setup pointers into buffer U32 *page_voff_ptr = (U32*)buf; @@ -1596,11 +1722,11 @@ lnk_build_base_relocs(TP_Context *tp, if (hash_table_search_u64(voff_ht, i->data)) { continue; } - hash_table_push_u64_u64(tp_arena->v[0], voff_ht, i->data, 0); + hash_table_push_u64_u64(scratch.arena, voff_ht, i->data, 0); // write entry U64 rel_off = i->data - page->voff; - Assert(rel_off <= page_size); + Assert(rel_off <= config->page_size); *reloc_arr_ptr++ = PE_BaseRelocMake(PE_BaseRelocKind_HIGHLOW, rel_off); } @@ -1610,11 +1736,11 @@ lnk_build_base_relocs(TP_Context *tp, if (hash_table_search_u64(voff_ht, i->data)) { continue; } - hash_table_push_u64_u64(tp_arena->v[0], voff_ht, i->data, 0); + hash_table_push_u64_u64(scratch.arena, voff_ht, i->data, 0); // write entry U64 rel_off = i->data - page->voff; - Assert(rel_off <= page_size); + Assert(rel_off <= config->page_size); *reloc_arr_ptr++ = PE_BaseRelocMake(PE_BaseRelocKind_DIR64, rel_off); } @@ -1631,404 +1757,1324 @@ lnk_build_base_relocs(TP_Context *tp, *page_voff_ptr = safe_cast_u32(page->voff); *block_size_ptr = safe_cast_u32(block_size); Assert(*block_size_ptr <= buf_size); + + // push page + str8_list_push(arena, &result, str8(buf, block_size)); - // push page chunk - LNK_Chunk *page_chunk = lnk_section_push_chunk_raw(base_reloc_sect, base_reloc_sect->root, buf, block_size, str8_zero()); - lnk_chunk_set_debugf(base_reloc_sect->arena, page_chunk, "Base Reloc Page (VirtOff: %#x Size: %#x, Pads: %#x)", page->voff, block_size, pad_reloc_count); - - // purge voffs for next run + // purge voffs for next page hash_table_purge(voff_ht); } ProfEnd(); } - tp_temp_end(temp); + tp_temp_end(tp_temp); // scratch is cleared here + tp_arena->v[0] = arena; + ProfEnd(); + return result; } -internal LNK_Chunk * -lnk_build_dos_header(LNK_SymbolTable *symtab, LNK_Section *header_sect, LNK_Chunk *parent_chunk) -{ - U32 dos_stub_size = sizeof(PE_DosHeader) + pe_dos_program.size; - - PE_DosHeader *dos_header = push_array(header_sect->arena, PE_DosHeader, 1); - dos_header->magic = PE_DOS_MAGIC; - dos_header->last_page_size = dos_stub_size % 512; - dos_header->page_count = CeilIntegerDiv(dos_stub_size, 512); - dos_header->paragraph_header_size = sizeof(PE_DosHeader) / 16; - dos_header->min_paragraph = 0; - dos_header->max_paragraph = 0; - dos_header->init_ss = 0; - dos_header->init_sp = 0; - dos_header->checksum = 0; - dos_header->init_ip = 0xFFFF; - dos_header->init_cs = 0; - dos_header->reloc_table_file_off = sizeof(PE_DosHeader); - dos_header->overlay_number = 0; - MemoryZeroStruct(dos_header->reserved); - dos_header->oem_id = 0; - dos_header->oem_info = 0; - MemoryZeroArray(dos_header->reserved2); - dos_header->coff_file_offset = 0; // :coff_file_offset - - LNK_Chunk *dos_chunk = lnk_section_push_chunk_list(header_sect, parent_chunk, str8_zero()); - LNK_Chunk *dos_header_chunk = lnk_section_push_chunk_raw(header_sect, dos_chunk, dos_header, sizeof(*dos_header), str8_zero()); - LNK_Chunk *dos_program_chunk = lnk_section_push_chunk_data(header_sect, dos_chunk, pe_dos_program, str8_zero()); - lnk_chunk_set_debugf(header_sect->arena, dos_chunk, "DOS Header & Stub"); - lnk_chunk_set_debugf(header_sect->arena, dos_header_chunk, LNK_DOS_HEADER_SYMBOL_NAME); - lnk_chunk_set_debugf(header_sect->arena, dos_program_chunk, LNK_DOS_PROGRAM_SYMBOL_NAME); - - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_DOS_HEADER_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, dos_header_chunk, 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_DOS_PROGRAM_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, dos_program_chunk, 0, 0, 0); - - // :coff_file_offset - lnk_section_push_reloc_undefined(header_sect, dos_header_chunk, LNK_Reloc_FILE_OFF_32, OffsetOf(PE_DosHeader, coff_file_offset), str8_lit(LNK_NT_HEADERS_SYMBOL_NAME), LNK_SymbolScopeFlag_Internal); - - return dos_chunk; -} - -internal LNK_Chunk * -lnk_build_pe_magic(LNK_SymbolTable *symtab, LNK_Section *header_sect, LNK_Chunk *parent) -{ - U32 *pe_magic = push_array_no_zero(header_sect->arena, U32, 1); - *pe_magic = PE_MAGIC; - - LNK_Chunk *pe_magic_chunk = lnk_section_push_chunk_raw(header_sect, parent, pe_magic, sizeof(*pe_magic), str8_zero()); - lnk_chunk_set_debugf(header_sect->arena, pe_magic_chunk, LNK_PE_MAGIC_SYMBOL_NAME); - - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_PE_MAGIC_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, pe_magic_chunk, 0, 0, 0); - - return pe_magic_chunk; -} - -internal LNK_Chunk * -lnk_build_coff_file_header(LNK_SymbolTable *symtab, LNK_Section *header_sect, LNK_Chunk *parent, - COFF_MachineType machine, COFF_TimeStamp time_stamp, PE_ImageFileCharacteristics file_characteristics) -{ - COFF_FileHeader *file_header = push_array_no_zero(header_sect->arena, COFF_FileHeader, 1); - file_header->machine = machine; - file_header->time_stamp = time_stamp; - file_header->symbol_table_foff = 0; - file_header->symbol_count = 0; - file_header->section_count = 0; // :section_count - file_header->optional_header_size = 0; // :optional_header_size - file_header->flags = file_characteristics; - - LNK_Chunk *file_header_chunk = lnk_section_push_chunk_raw(header_sect, parent, file_header, sizeof(*file_header), str8_zero()); - lnk_chunk_set_debugf(header_sect->arena, file_header_chunk, LNK_COFF_FILE_HEADER_SYMBOL_NAME); - - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_COFF_FILE_HEADER_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, file_header_chunk, 0, 0, 0); - - // :section_count - lnk_section_push_reloc_undefined(header_sect, file_header_chunk, LNK_Reloc_ADDR_16, OffsetOf(COFF_FileHeader, section_count), str8_lit(LNK_COFF_SECT_HEADER_COUNT_SYMBOL_NAME), LNK_SymbolScopeFlag_Internal); - - // :optional_header_size - lnk_section_push_reloc_undefined(header_sect, file_header_chunk, LNK_Reloc_CHUNK_SIZE_FILE_16, OffsetOf(COFF_FileHeader, optional_header_size), str8_lit(LNK_PE_OPT_HEADER_SYMBOL_NAME), LNK_SymbolScopeFlag_Internal); - lnk_section_push_reloc_undefined(header_sect, file_header_chunk, LNK_Reloc_CHUNK_SIZE_FILE_16, OffsetOf(COFF_FileHeader, optional_header_size), str8_lit(LNK_PE_DIRECTORY_ARRAY_SYMBOL_NAME), LNK_SymbolScopeFlag_Internal); - - return file_header_chunk; -} - -internal LNK_Chunk * -lnk_build_pe_optional_header_x64(LNK_SymbolTable *symtab, - LNK_Section *header_sect, - LNK_Chunk *parent, - COFF_MachineType machine, - U64 base_addr, - U64 sect_align, - U64 file_align, - Version linker_ver, - Version os_ver, - Version image_ver, - Version subsystem_ver, - PE_WindowsSubsystem subsystem, - PE_DllCharacteristics dll_characteristics, - U64 stack_reserve, - U64 stack_commit, - U64 heap_reserve, - U64 heap_commit, - String8 entry_point_name, - LNK_SectionArray sect_arr) -{ - PE_OptionalHeader32Plus *opt_header = push_array_no_zero(header_sect->arena, PE_OptionalHeader32Plus, 1); - opt_header->magic = PE_PE32PLUS_MAGIC; - opt_header->major_linker_version = linker_ver.major; - opt_header->minor_linker_version = linker_ver.minor; - opt_header->sizeof_code = 0; // :sizeof_code - opt_header->sizeof_inited_data = 0; // :sizeof_inited_data - opt_header->sizeof_uninited_data = 0; // :sizeof_uninited_data - opt_header->entry_point_va = 0; // :entry_point_va - opt_header->code_base = 0; // :code_base - opt_header->image_base = base_addr; - opt_header->section_alignment = sect_align; - opt_header->file_alignment = file_align; - opt_header->major_os_ver = os_ver.major; - opt_header->minor_os_ver = os_ver.minor; - opt_header->major_img_ver = image_ver.major; - opt_header->minor_img_ver = image_ver.minor; - opt_header->major_subsystem_ver = subsystem_ver.major; - opt_header->minor_subsystem_ver = subsystem_ver.minor; - opt_header->win32_version_value = 0; // MSVC writes zero - opt_header->sizeof_image = 0; // :sizeof_image - opt_header->sizeof_headers = 0; // :sizeof_headers - opt_header->check_sum = 0; // :check_sum - opt_header->subsystem = subsystem; - opt_header->dll_characteristics = dll_characteristics; - opt_header->sizeof_stack_reserve = stack_reserve; - opt_header->sizeof_stack_commit = stack_commit; - opt_header->sizeof_heap_reserve = heap_reserve; - opt_header->sizeof_heap_commit = heap_commit; - opt_header->loader_flags = 0; // for dynamic linker, always zero - opt_header->data_dir_count = 0; // :data_dir_count - - // push chunk - LNK_Chunk *opt_header_chunk = lnk_section_push_chunk_raw(header_sect, parent, opt_header, sizeof(*opt_header), str8_zero()); - lnk_chunk_set_debugf(header_sect->arena, opt_header_chunk, LNK_PE_OPT_HEADER_SYMBOL_NAME); - - // define optional header symbol - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_PE_OPT_HEADER_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, opt_header_chunk, 0, 0, 0); - - // :entry_point_va - lnk_section_push_reloc_undefined(header_sect, opt_header_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_OptionalHeader32Plus, entry_point_va), entry_point_name, LNK_SymbolScopeFlag_Main); - - // :code_base - lnk_section_push_reloc_undefined(header_sect, opt_header_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_OptionalHeader32Plus, code_base), str8_lit(LNK_TEXT_SYMBOL_NAME), LNK_SymbolScopeFlag_Internal); - - LNK_Section *last_sect = 0; - for (LNK_Section *sect = §_arr.v[0], *sect_opl = sect + sect_arr.count; sect < sect_opl; sect += 1) { - if (!sect->has_layout) { - continue; - } - // :sizeof_uninited_data - if (sect->flags & COFF_SectionFlag_CntUninitializedData) { - lnk_section_push_reloc_undefined(header_sect, opt_header_chunk, LNK_Reloc_CHUNK_SIZE_VIRT_32, OffsetOf(PE_OptionalHeader32Plus, sizeof_uninited_data), sect->name, LNK_SymbolScopeFlag_Internal); - } - - // :sizeof_inited_data - if (sect->flags & COFF_SectionFlag_CntInitializedData) { - lnk_section_push_reloc_undefined(header_sect, opt_header_chunk, LNK_Reloc_CHUNK_SIZE_FILE_32, OffsetOf(PE_OptionalHeader32Plus, sizeof_inited_data), sect->name, LNK_SymbolScopeFlag_Internal); - } - - // :sizeof_code - if (sect->flags & COFF_SectionFlag_CntCode) { - lnk_section_push_reloc_undefined(header_sect, opt_header_chunk, LNK_Reloc_CHUNK_SIZE_FILE_32, OffsetOf(PE_OptionalHeader32Plus, sizeof_code), sect->name, LNK_SymbolScopeFlag_Internal); - } - - last_sect = sect; - } - - // :sizeof_image - if (last_sect) { - lnk_section_push_reloc_undefined(header_sect, opt_header_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(PE_OptionalHeader32Plus, sizeof_image), last_sect->name, LNK_SymbolScopeFlag_Internal); - lnk_section_push_reloc_undefined(header_sect, opt_header_chunk, LNK_Reloc_CHUNK_SIZE_VIRT_32, OffsetOf(PE_OptionalHeader32Plus, sizeof_image), last_sect->name, LNK_SymbolScopeFlag_Internal); - lnk_section_push_reloc(header_sect, opt_header_chunk, LNK_Reloc_VIRT_ALIGN_32, OffsetOf(PE_OptionalHeader32Plus, sizeof_image), &g_null_symbol); - } - - // :sizeof_headers - lnk_section_push_reloc_undefined(header_sect, opt_header_chunk, LNK_Reloc_CHUNK_SIZE_FILE_32, OffsetOf(PE_OptionalHeader32Plus, sizeof_headers), str8_lit(LNK_WIN32_HEADER_SYMBOL_NAME), LNK_SymbolScopeFlag_Internal); - lnk_section_push_reloc(header_sect, opt_header_chunk, LNK_Reloc_FILE_ALIGN_32, OffsetOf(PE_OptionalHeader32Plus, sizeof_headers), &g_null_symbol); - - // :check_sum - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_PE_CHECKSUM_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, opt_header_chunk, OffsetOf(PE_OptionalHeader32Plus, check_sum), COFF_ComdatSelect_NoDuplicates, 0); - - // :data_dir_count - lnk_section_push_reloc_undefined(header_sect, opt_header_chunk, LNK_Reloc_ADDR_32, OffsetOf(PE_OptionalHeader32Plus, data_dir_count), str8_lit(LNK_PE_DIRECTORY_COUNT_SYMBOL_NAME), LNK_SymbolScopeFlag_Internal); - - return opt_header_chunk; -} - -internal LNK_Chunk * -lnk_build_pe_directories(LNK_SymbolTable *symtab, LNK_Section *header_sect, LNK_Chunk *parent) -{ - static struct { - char *name; - PE_DataDirectoryIndex index; - LNK_SymbolScopeFlags scope; - } directory_map[] = { - { LNK_LOAD_CONFIG_SYMBOL_NAME , PE_DataDirectoryIndex_LOAD_CONFIG , LNK_SymbolScopeFlag_Main }, - { LNK_PDATA_SYMBOL_NAME , PE_DataDirectoryIndex_EXCEPTIONS , LNK_SymbolScopeFlag_Internal }, - { LNK_EDATA_SYMBOL_NAME , PE_DataDirectoryIndex_EXPORT , LNK_SymbolScopeFlag_Internal }, - { LNK_BASE_RELOC_SYMBOL_NAME , PE_DataDirectoryIndex_BASE_RELOC , LNK_SymbolScopeFlag_Internal }, - { LNK_IMPORT_DLL_TABLE_SYMBOL_NAME , PE_DataDirectoryIndex_IMPORT , LNK_SymbolScopeFlag_Internal }, - { LNK_IMPORT_IAT_SYMBOL_NAME , PE_DataDirectoryIndex_IMPORT_ADDR , LNK_SymbolScopeFlag_Internal }, - { LNK_DELAYED_IMPORT_DLL_TABLE_SYMBOL_NAME, PE_DataDirectoryIndex_DELAY_IMPORT, LNK_SymbolScopeFlag_Internal }, - { LNK_TLS_SYMBOL_NAME , PE_DataDirectoryIndex_TLS , LNK_SymbolScopeFlag_Main }, - { LNK_DEBUG_DIR_SYMBOL_NAME , PE_DataDirectoryIndex_DEBUG , LNK_SymbolScopeFlag_Internal }, - { LNK_RSRC_SYMBOL_NAME , PE_DataDirectoryIndex_RESOURCES , LNK_SymbolScopeFlag_Internal }, - }; - - // init directory virtual coords from symbol names - U64 directory_count = PE_DataDirectoryIndex_COUNT; - PE_DataDirectory *directory_array = push_array(header_sect->arena, PE_DataDirectory, directory_count); - - LNK_Chunk *directory_array_chunk = lnk_section_push_chunk_raw(header_sect, parent, directory_array, sizeof(directory_array[0])*directory_count, str8_zero()); - lnk_chunk_set_debugf(header_sect->arena, directory_array_chunk, LNK_PE_DIRECTORY_ARRAY_SYMBOL_NAME); - - // define PE directory symbols - LNK_Symbol *directory_array_symbol = lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_PE_DIRECTORY_ARRAY_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, directory_array_chunk, 0, 0, 0); - LNK_Symbol *directory_count_symbol = lnk_symbol_table_push_defined_va(symtab, str8_lit(LNK_PE_DIRECTORY_COUNT_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, directory_count); - - for (U64 dir_idx = 0; dir_idx < ArrayCount(directory_map); dir_idx += 1) { - String8 symbol_name = str8_cstring(directory_map[dir_idx].name); - LNK_Symbol *symbol = lnk_symbol_table_search(symtab, directory_map[dir_idx].scope, symbol_name); - if (symbol) { - U64 virt_off_field_off = sizeof(PE_DataDirectory) * directory_map[dir_idx].index + OffsetOf(PE_DataDirectory, virt_off); - U64 virt_size_field_off = sizeof(PE_DataDirectory) * directory_map[dir_idx].index + OffsetOf(PE_DataDirectory, virt_size); - lnk_section_push_reloc(header_sect, directory_array_chunk, LNK_Reloc_VIRT_OFF_32, virt_off_field_off, symbol); - lnk_section_push_reloc(header_sect, directory_array_chunk, LNK_Reloc_CHUNK_SIZE_VIRT_32, virt_size_field_off, symbol); - } - } - - return directory_array_chunk; -} - -internal LNK_Chunk * -lnk_build_coff_section_table(LNK_SymbolTable *symtab, LNK_Section *header_sect, LNK_Chunk *parent_chunk, LNK_SectionArray sect_arr) -{ - // register section symbols - for (LNK_Section *sect = §_arr.v[0], *sect_opl = sect + sect_arr.count; - sect < sect_opl; - sect += 1) { - // was section symbol defined elsewhere? - LNK_Symbol *test_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Internal, sect->name); - Assert(!test_symbol); (void)test_symbol; - - // define symbol - String8 sect_symbol_name = push_str8_copy(symtab->arena->v[0], sect->name); - lnk_symbol_table_push_defined_chunk(symtab, sect_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, sect->root, 0, 0, 0); - } - - // push COFF header array chunk - LNK_Chunk *coff_section_array_chunk = lnk_section_push_chunk_list(header_sect, parent_chunk, str8_zero()); - lnk_chunk_set_debugf(header_sect->arena, coff_section_array_chunk, LNK_COFF_SECT_HEADER_ARRAY_SYMBOL_NAME); - - // define symbol for COFF header array - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_COFF_SECT_HEADER_ARRAY_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, coff_section_array_chunk, 0, 0, 0); - - // push headers - for (LNK_Section *sect = §_arr.v[0], *sect_opl = sect + sect_arr.count; sect < sect_opl; sect += 1) { - if (!sect->emit_header) { - continue; - } - if (!sect->has_layout) { - continue; - } - COFF_SectionHeader *coff_section = push_array_no_zero(header_sect->arena, COFF_SectionHeader, 1); - - // TODO: for objs we can store long name in string table and write here /offset - if (sect->name.size > sizeof(coff_section->name)) { - lnk_error(LNK_Warning_LongSectionName, "not enough space in COFF section header to store entire name \"%S\"", sect->name); - } - - MemorySet(&coff_section->name[0], 0, sizeof(coff_section->name)); - MemoryCopy(&coff_section->name[0], sect->name.str, Min(sect->name.size, sizeof(coff_section->name))); - coff_section->vsize = 0; // :vsize - coff_section->voff = 0; // :voff - coff_section->fsize = 0; // :fsize - coff_section->foff = 0; // :foff - coff_section->relocs_foff = 0; // :relocs_foff - coff_section->lines_foff = 0; // obsolete - coff_section->reloc_count = 0; // :reloc_count - coff_section->line_count = 0; // obsolete - coff_section->flags = sect->flags; - - // push chunk - LNK_Chunk *coff_section_chunk = lnk_section_push_chunk_raw(header_sect, coff_section_array_chunk, coff_section, sizeof(*coff_section), str8_zero()); - lnk_chunk_set_debugf(header_sect->arena, coff_section_chunk, "COFF_SECTION_HEADER %S", sect->name); - - // :vsize - lnk_section_push_reloc_undefined(header_sect, coff_section_chunk, LNK_Reloc_CHUNK_SIZE_VIRT_32, OffsetOf(COFF_SectionHeader, vsize), sect->name, LNK_SymbolScopeFlag_Internal); - // :voff - lnk_section_push_reloc_undefined(header_sect, coff_section_chunk, LNK_Reloc_VIRT_OFF_32, OffsetOf(COFF_SectionHeader, voff), sect->name, LNK_SymbolScopeFlag_Internal); - - if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { - // :fsize - lnk_section_push_reloc_undefined(header_sect, coff_section_chunk, LNK_Reloc_CHUNK_SIZE_FILE_32, OffsetOf(COFF_SectionHeader, fsize), sect->name, LNK_SymbolScopeFlag_Internal); - // :foff - lnk_section_push_reloc_undefined(header_sect, coff_section_chunk, LNK_Reloc_FILE_OFF_32, OffsetOf(COFF_SectionHeader, foff), sect->name, LNK_SymbolScopeFlag_Internal); - } - - // TODO: :reloc_off - // TODO: :reloc_count - } - - // push symbol for section header count - U64 header_count = coff_section_array_chunk->u.list->count; - lnk_symbol_table_push_defined_va(symtab, str8_lit(LNK_COFF_SECT_HEADER_COUNT_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, header_count); - - return coff_section_array_chunk; -} - -internal LNK_Chunk * -lnk_build_win32_image_header(LNK_SymbolTable *symtab, - LNK_Section *header_sect, - LNK_Chunk *parent_chunk, - LNK_Config *config, - LNK_SectionArray sect_arr) +internal String8List +lnk_build_win32_image_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sects, U64 expected_image_header_size) { ProfBeginFunction(); - - // header sections must be written first - Assert(header_sect->id == 0); - - LNK_Chunk *win32_header_chunk = lnk_section_push_chunk_list(header_sect, parent_chunk , str8_zero() ); - LNK_Chunk *dos_chunk = lnk_section_push_chunk_list(header_sect, win32_header_chunk, str8_lit("a")); - LNK_Chunk *nt_chunk = lnk_section_push_chunk_list(header_sect, win32_header_chunk, str8_lit("b")); - LNK_Chunk *pe_magic_chunk = lnk_section_push_chunk_list(header_sect, nt_chunk , str8_lit("a")); - LNK_Chunk *coff_file_header_chunk = lnk_section_push_chunk_list(header_sect, nt_chunk , str8_lit("b")); - LNK_Chunk *pe_optional_chunk = lnk_section_push_chunk_list(header_sect, nt_chunk , str8_lit("c")); - LNK_Chunk *coff_sect_header_chunk = lnk_section_push_chunk_list(header_sect, nt_chunk , str8_lit("d")); - - lnk_chunk_set_debugf(header_sect->arena, win32_header_chunk , "Win32 Headers" ); - lnk_chunk_set_debugf(header_sect->arena, dos_chunk , "DOS Chunk" ); - lnk_chunk_set_debugf(header_sect->arena, nt_chunk , "NT Chunk" ); - lnk_chunk_set_debugf(header_sect->arena, pe_magic_chunk , "PE Magic Container" ); - lnk_chunk_set_debugf(header_sect->arena, coff_file_header_chunk, "COFF File Header Container" ); - lnk_chunk_set_debugf(header_sect->arena, pe_optional_chunk , "PE Optional Header Container" ); - lnk_chunk_set_debugf(header_sect->arena, coff_sect_header_chunk, "COFF Section Headers Container"); - - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_WIN32_HEADER_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, win32_header_chunk , 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_DOS_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, dos_chunk , 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_NT_HEADERS_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, nt_chunk , 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_PE_MAGIC_CONTAINER_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, pe_magic_chunk , 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_COFF_FILE_HEADER_CONTAINER_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, coff_file_header_chunk, 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_PE_OPT_HEADER_CONTAINER_SYMBOL_NAME) , LNK_DefinedSymbolVisibility_Internal, 0, pe_optional_chunk , 0, 0, 0); - lnk_symbol_table_push_defined_chunk(symtab, str8_lit(LNK_COFF_SECTION_HEADER_CONTAINER_SYMBOL_NAME), LNK_DefinedSymbolVisibility_Internal, 0, coff_sect_header_chunk, 0, 0, 0); - - lnk_build_dos_header(symtab, header_sect, dos_chunk); - lnk_build_pe_magic(symtab, header_sect, pe_magic_chunk); - lnk_build_coff_file_header(symtab, header_sect, coff_file_header_chunk, config->machine, config->time_stamp, config->file_characteristics); - switch (config->machine) { - case COFF_MachineType_X64: { - lnk_build_pe_optional_header_x64(symtab, - header_sect, - pe_optional_chunk, - config->machine, - lnk_get_base_addr(config), - config->sect_align, - config->file_align, - config->link_ver, - config->os_ver, - config->image_ver, - config->subsystem_ver, - config->subsystem, - config->dll_characteristics, - config->stack_reserve, - config->stack_commit, - config->heap_reserve, - config->heap_commit, - config->entry_point_name, - sect_arr); - } break; - default: { - lnk_not_implemented("TODO: PE Optional Header for %S", coff_string_from_machine_type(config->machine)); - } break; + + String8List result = {0}; + + // + // DOS header + // + U32 dos_stub_size = sizeof(PE_DosHeader) + pe_dos_program.size; + { + PE_DosHeader *dos_header = push_array(arena, PE_DosHeader, 1); + dos_header->magic = PE_DOS_MAGIC; + dos_header->last_page_size = dos_stub_size % 512; + dos_header->page_count = CeilIntegerDiv(dos_stub_size, 512); + dos_header->paragraph_header_size = sizeof(PE_DosHeader) / 16; + dos_header->min_paragraph = 0; + dos_header->max_paragraph = 0; + dos_header->init_ss = 0; + dos_header->init_sp = 0; + dos_header->checksum = 0; + dos_header->init_ip = 0xFFFF; + dos_header->init_cs = 0; + dos_header->reloc_table_file_off = sizeof(PE_DosHeader); + dos_header->overlay_number = 0; + MemoryZeroStruct(dos_header->reserved); + dos_header->oem_id = 0; + dos_header->oem_info = 0; + MemoryZeroArray(dos_header->reserved2); + dos_header->coff_file_offset = dos_stub_size; + + str8_list_push(arena, &result, str8_struct(dos_header)); + str8_list_push(arena, &result, pe_dos_program); } - lnk_build_pe_directories(symtab, header_sect, pe_optional_chunk); - lnk_build_coff_section_table(symtab, header_sect, coff_sect_header_chunk, sect_arr); - + + // + // PE magic + // + U32 *pe_magic = push_array(arena, U32, 1); + *pe_magic = PE_MAGIC; + str8_list_push(arena, &result, str8_struct(pe_magic)); + + // + // determine PE optional header type + // + B32 has_pe_plus_header = pe_has_plus_header(config->machine); + + // + // COFF file header + // + { + COFF_FileHeader *file_header = push_array_no_zero(arena, COFF_FileHeader, 1); + file_header->machine = config->machine; + file_header->time_stamp = config->time_stamp; + file_header->symbol_table_foff = 0; + file_header->symbol_count = 0; + file_header->section_count = sects.count; + file_header->optional_header_size = (has_pe_plus_header ? sizeof(PE_OptionalHeader32Plus) : sizeof(PE_OptionalHeader32)) + (sizeof(PE_DataDirectory) * config->data_dir_count); + file_header->flags = config->file_characteristics; + str8_list_push(arena, &result, str8_struct(file_header)); + } + + // + // compute code/inited/uninited sizes + // + U64 code_base = 0; + U64 sizeof_code = 0; + U64 sizeof_inited_data = 0; + U64 sizeof_uninited_data = 0; + U64 sizeof_image = 0; + for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { + LNK_Section *sect = sects.v[sect_idx]; + if ( ! sect->has_layout) { + continue; + } + if (code_base == 0 && sect->flags & COFF_SectionFlag_CntCode) { + code_base = sect->voff; + } + if (sect->flags & COFF_SectionFlag_CntUninitializedData) { + sizeof_uninited_data += sect->vsize; + } + if (sect->flags & COFF_SectionFlag_CntInitializedData) { + sizeof_inited_data += sect->fsize; + } + if (sect->flags & COFF_SectionFlag_CntCode) { + sizeof_code += sect->fsize; + } + sizeof_image = AlignPow2(Max(sizeof_image, sects.v[sect_idx]->voff + sects.v[sect_idx]->vsize), 4096); + } + + // + // compute image headers size + // + U64 sizeof_image_headers = 0; + sizeof_image_headers += dos_stub_size; + sizeof_image_headers += sizeof(COFF_FileHeader); + sizeof_image_headers += has_pe_plus_header ? sizeof(PE_OptionalHeader32Plus) : sizeof(PE_OptionalHeader32); + sizeof_image_headers += sizeof(PE_DataDirectory) * config->data_dir_count; + sizeof_image_headers = AlignPow2(sizeof_image_headers, config->file_align); + + // + // fill out PE optional header + // + U32 *entry_point_va; + U32 *check_sum; + if (has_pe_plus_header) { + PE_OptionalHeader32Plus *opt_header = push_array_no_zero(arena, PE_OptionalHeader32Plus, 1); + opt_header->magic = PE_PE32PLUS_MAGIC; + opt_header->major_linker_version = config->link_ver.major; + opt_header->minor_linker_version = config->link_ver.minor; + opt_header->sizeof_code = safe_cast_u32(sizeof_code); + opt_header->sizeof_inited_data = safe_cast_u32(sizeof_inited_data); + opt_header->sizeof_uninited_data = safe_cast_u32(sizeof_uninited_data); + opt_header->entry_point_va = 0; + opt_header->code_base = code_base; + opt_header->image_base = lnk_get_base_addr(config); + opt_header->section_alignment = config->sect_align; + opt_header->file_alignment = config->file_align; + opt_header->major_os_ver = config->os_ver.major; + opt_header->minor_os_ver = config->os_ver.minor; + opt_header->major_img_ver = config->image_ver.major; + opt_header->minor_img_ver = config->image_ver.minor; + opt_header->major_subsystem_ver = config->subsystem_ver.major; + opt_header->minor_subsystem_ver = config->subsystem_ver.minor; + opt_header->win32_version_value = 0; // MSVC writes zero + opt_header->sizeof_image = sizeof_image; + opt_header->sizeof_headers = safe_cast_u32(sizeof_image_headers); + opt_header->check_sum = 0; // :check_sum + opt_header->subsystem = config->subsystem; + opt_header->dll_characteristics = config->dll_characteristics; + opt_header->sizeof_stack_reserve = config->stack_reserve; + opt_header->sizeof_stack_commit = config->stack_commit; + opt_header->sizeof_heap_reserve = config->heap_reserve; + opt_header->sizeof_heap_commit = config->heap_commit; + opt_header->loader_flags = 0; // for dynamic linker, always zero + opt_header->data_dir_count = safe_cast_u32(config->data_dir_count); + + entry_point_va = &opt_header->entry_point_va; + check_sum = &opt_header->check_sum; + + str8_list_push(arena, &result, str8_struct(opt_header)); + } else { + NotImplemented; + } + + // + // PE directories + // + PE_DataDirectory *directory_array; + { + directory_array = push_array(arena, PE_DataDirectory, config->data_dir_count); + str8_list_push(arena, &result, str8_array(directory_array, config->data_dir_count)); + } + + // + // COFF section table + // + COFF_SectionHeader *coff_section_table = push_array(arena, COFF_SectionHeader, sects.count); + U64 coff_section_table_count = 0; + { + for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { + LNK_Section *sect = sects.v[sect_idx]; + if (!sect->has_layout) { + continue; + } + + COFF_SectionHeader *coff_section = &coff_section_table[sect_idx]; + + // TODO: for objs we can store long name in string table and write here /offset + if (sect->name.size > sizeof(coff_section->name)) { + lnk_error(LNK_Warning_LongSectionName, "not enough space in COFF section header to store entire name \"%S\"", sect->name); + } + + MemorySet(&coff_section->name[0], 0, sizeof(coff_section->name)); + MemoryCopy(&coff_section->name[0], sect->name.str, Min(sect->name.size, sizeof(coff_section->name))); + coff_section->vsize = sect->vsize; + coff_section->voff = sect->voff; + coff_section->fsize = sect->fsize; + coff_section->foff = sect->foff; + coff_section->relocs_foff = 0; // not present in image + coff_section->lines_foff = 0; // obsolete + coff_section->reloc_count = 0; // not present in image + coff_section->line_count = 0; // obsolete + coff_section->flags = sect->flags; + + coff_section_table_count += 1; + } + + str8_list_push(arena, &result, str8_array(coff_section_table, coff_section_table_count)); + } + + // align image headers + { + U64 image_headers_align_size = AlignPadPow2(result.total_size, config->file_align); + U8 *image_headers_align = push_array(arena, U8, image_headers_align_size); + str8_list_push(arena, &result, str8(image_headers_align, image_headers_align_size)); + } + + // + // entry point + // + { + Temp scratch = scratch_begin(&arena, 1); + + COFF_SectionHeader **section_table = push_array(arena, COFF_SectionHeader *, coff_section_table_count + 1); + for (U64 i = 1; i <= coff_section_table_count; i += 1) { section_table[i] = &coff_section_table[i-1]; } + + LNK_Symbol *entry_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, config->entry_point_name); + if (entry_symbol) { + *entry_point_va = safe_cast_u32(lnk_virt_off_from_symbol(section_table, entry_symbol)); + } + + scratch_end(scratch); + } + + Assert(result.total_size == expected_image_header_size); ProfEnd(); - return win32_header_chunk; + return result; +} + +internal int +lnk_pdata_is_before_x8664(void *raw_a, void *raw_b) +{ + PE_IntelPdata *a = raw_a; + PE_IntelPdata *b = raw_b; + int is_before = a->voff_first < b->voff_first; + return is_before; +} + +internal String8 +lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, LNK_ExportTable *exptab, LNK_ObjList obj_list) +{ + Temp scratch = scratch_begin(arena->v, arena->count); + + // + // init section table + // + LNK_SectionTable *sectab = lnk_section_table_alloc(); + lnk_section_table_push(sectab, str8_lit(".text"), LNK_TEXT_SECTION_FLAGS); + lnk_section_table_push(sectab, str8_lit(".data"), LNK_DATA_SECTION_FLAGS); + lnk_section_table_push(sectab, str8_lit(".rdata"), LNK_RDATA_SECTION_FLAGS); + + // + // obj list -> array + // + U64 objs_count = obj_list.count; + LNK_Obj **objs = lnk_obj_arr_from_list(scratch.arena, obj_list); + + { + ProfBegin("Define And Count Sections"); + Temp temp = temp_begin(scratch.arena); + + HashTable **sect_defn_ht_arr = push_array(temp.arena, HashTable *, tp->worker_count); + for (U64 i = 0; i < tp->worker_count; i += 1) sect_defn_ht_arr[i] = hash_table_init(temp.arena, 128); + HashTable *sect_defn_ht = sect_defn_ht_arr[0]; + + ProfBegin("Gather Section Definitions"); + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + + U32 obj_features = lnk_obj_get_features (obj); + B32 discards_guards = (obj_features & MSCRT_FeatFlag_GUARD_CF) || + (obj_features & MSCRT_FeatFlag_GUARD_EH_CONT); + + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + + // discard section + if (sect_header->flags & COFF_SectionFlag_LnkRemove) { + continue; + } + + // parse section name + String8 full_sect_name = coff_name_from_section_header(string_table, sect_header); + String8 sect_name, sect_sort_idx; + coff_parse_section_name(full_sect_name, §_name, §_sort_idx); + + // remove debug sections + if (str8_match(sect_name, str8_lit(".debug"), 0)) { + sect_header->flags |= COFF_SectionFlag_LnkRemove; + continue; + } + + // strip linker flags + COFF_SectionFlags sect_flags = sect_header->flags & ~COFF_SectionFlags_LnkFlags; + + // was section defined? + String8 sect_name_with_flags = lnk_make_name_with_flags(temp.arena, sect_name, sect_flags); + LNK_SectionDefinition *sect_defn = 0; + hash_table_search_string_raw(sect_defn_ht, sect_name_with_flags, §_defn); + if (sect_defn == 0) { + sect_defn = push_array(temp.arena, LNK_SectionDefinition, 1); + sect_defn->name = sect_name; + sect_defn->flags = sect_flags; + sect_defn->obj = obj; + sect_defn->obj_sect_idx = sect_idx; + hash_table_push_string_raw(temp.arena, sect_defn_ht, sect_name_with_flags, sect_defn); + } + + // acc contrib count + sect_defn->contribs_count += 1; + } + } + ProfEnd(); + + ProfBegin("Merge Section Definitions"); + HashTable *main_sect_defns_ht = sect_defn_ht_arr[0]; + for (U64 worker_idx = 1; worker_idx < tp->worker_count; worker_idx += 1) { + U64 sect_defns_count = sect_defn_ht_arr[worker_idx]->count; + LNK_SectionDefinition **sect_defns = values_from_hash_table_raw(temp.arena, sect_defn_ht_arr[worker_idx]); + radsort(sect_defns, sect_defns_count, lnk_section_definition_is_before); + + for (U64 i = 0; i < sect_defns_count; i += 1) { + String8 name_with_flags = lnk_make_name_with_flags(temp.arena, sect_defns[i]->name, sect_defns[i]->flags); + LNK_SectionDefinition *main_defn = 0; + hash_table_search_string_raw(main_sect_defns_ht, name_with_flags, &main_defn); + if (main_defn == 0) { + main_defn = sect_defns[i]; + hash_table_push_string_raw(temp.arena, main_sect_defns_ht, name_with_flags, main_defn); + } else { + main_defn->contribs_count += sect_defns[i]->contribs_count; + } + } + } + ProfEnd(); + + ProfBegin("Push Sections And Reserve Section Contrib Memory"); + U64 sect_defns_count = main_sect_defns_ht->count; + LNK_SectionDefinition **sect_defns = values_from_hash_table_raw(temp.arena, main_sect_defns_ht); + radsort(sect_defns, sect_defns_count, lnk_section_definition_is_before); + + for (U64 defn_idx = 0; defn_idx < sect_defns_count; defn_idx += 1) { + LNK_SectionDefinition *sect_defn = sect_defns[defn_idx]; + + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + LNK_Section *sect = §_n->data; + if (str8_match(sect->name, sect_defn->name, 0)) { + if (sect->flags != sect_defn->flags) { + LNK_Obj *obj = sect_defn->obj; + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + COFF_SectionHeader *sect_header = §ion_table[sect_defn->obj_sect_idx]; + String8 full_sect_name = coff_name_from_section_header(string_table, sect_header); + U32 sect_number = sect_defn->obj_sect_idx + 1; + String8 expected_flags_str = coff_string_from_section_flags(temp.arena, sect->flags); + String8 current_flags_str = coff_string_from_section_flags(temp.arena, sect_defn->flags); + lnk_error_obj(LNK_Warning_SectionFlagsConflict, sect_defn->obj, "detected section flags conflict in %S(No. %X); expected {%S} but got {%S}", full_sect_name, sect_number, expected_flags_str, current_flags_str); + } + } + } + + LNK_Section *sect = lnk_section_table_search(sectab, sect_defn->name, sect_defn->flags); + if (sect == 0) { + sect = lnk_section_table_push(sectab, sect_defn->name, sect_defn->flags); + } + AssertAlways(sect->contribs.chunk_count == 0); + lnk_section_contrib_chunk_list_push_chunk(sectab->arena, §->contribs, sect_defn->contribs_count); + } + ProfEnd(); + + temp_end(temp); + ProfEnd(); + } + + + U64 expected_image_header_size; + { + // gather section contribs + LNK_SectionContrib ***sect_map = push_array(scratch.arena, LNK_SectionContrib **, objs_count); + { + U16 default_align = lnk_default_align_from_machine(config->machine); + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + + sect_map[obj_idx] = push_array(scratch.arena, LNK_SectionContrib *, obj->header.section_count_no_null); + + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + + if (sect_header->flags & COFF_SectionFlag_LnkRemove) { + continue; + } + + // parse section name + String8 full_sect_name = coff_name_from_section_header(string_table, sect_header); + String8 sect_name, sect_sort_idx; + coff_parse_section_name(full_sect_name, §_name, §_sort_idx); + + // extract section bytes + String8 sect_data = str8_substr(obj->data, rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize)); + + // extract align + U16 sc_align = coff_align_size_from_section_flags(COFF_SectionFlags_ExtractAlign(sect_header->flags)); + if (sc_align == 0) { + sc_align = default_align; + } + + // search for section to contribute + COFF_SectionFlags flags = sect_header->flags & ~COFF_SectionFlags_LnkFlags; + LNK_Section *sect = lnk_section_table_search(sectab, sect_name, flags); + + // fill out contrib + LNK_SectionContribChunk *sc_chunk = sect->contribs.first; + LNK_SectionContrib *sc = lnk_section_contrib_chunk_push(sc_chunk, 1); + sc->align = sc_align; + sc->u.obj_idx = obj_idx; + sc->u.sort_idx_size = (U16)sect_sort_idx.size; + sc->u.sort_idx = sect_sort_idx.str; + + String8Node *data_n = push_array(sect->arena, String8Node, 1); + data_n->string = sect_data; + SLLStackPush(sc->data_list, data_n); + + sect_map[obj_idx][sect_idx] = sc; + } + } + } + + // build obj section map + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + + String8 *symlinks = push_array(scratch.arena, String8, obj->header.section_count_no_null); + { + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { + if (symbol.storage_class == COFF_SymStorageClass_External) { + U64 sect_idx = symbol.section_number-1; + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { + // TODO: check that we don't override COMDAT symbol link + symlinks[sect_idx] = symbol.name; + } + } + } + } + } + + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symlinks[sect_idx]); + COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + sect_map[obj_idx][sect_idx] = sect_map[defn->u.defined.obj->input_idx][symbol.section_number-1]; + } + } + } + + // finalize sections layouts + { + ProfBegin("Finalize Sections Layout"); + + // sort contribs + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + for (LNK_SectionContribChunk *sc_chunk = sect_n->data.contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { + Assert(sc_chunk->count == sc_chunk->cap); + radsort(sc_chunk->v, sc_chunk->count, lnk_section_contrib_is_before); + } + } + + // merge sections + if (config->flags & LNK_ConfigFlag_Merge) { + lnk_section_table_merge(sectab, config->merge_list); + } + + // assign contribs offsets, sizes, and section indices + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + lnk_finalize_section_layout(sectab, §_n->data, config->file_align); + } + + // remove empty sections + String8List empty_sect_list = {0}; + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + LNK_Section *sect = §_n->data; + if (sect->vsize == 0) { + str8_list_push(scratch.arena, &empty_sect_list, sect->name); + } + } + for (String8Node *name_n = empty_sect_list.first; name_n != 0; name_n = name_n->next) { + lnk_section_table_remove(sectab, name_n->string); + } + + // assign section indices to sections + U64 sect_idx = 0; + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + sect_n->data.sect_idx = sect_idx++; + } + + // assign section indices to contribs + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + LNK_Section *sect = §_n->data; + for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { + for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { + sc_chunk->v[sc_idx].u.sect_idx = sect->sect_idx; + } + } + } + + ProfEnd(); + } + + // build common block + // + // TODO: build common block in .bss and merge with .data + U64 common_block_contribs_count; + LNK_CommonBlockContrib *common_block_contribs; + LNK_Section *common_block_sect; + { + ProfBegin("Build Common Block"); + + ProfBegin("Count Contribs"); + common_block_contribs_count = 0; + for (U64 worker_id = 0; worker_id < tp->worker_count; worker_id += 1) { + for (LNK_SymbolHashTrieChunk *chunk = symtab->chunk_lists[LNK_SymbolScope_Defined][worker_id].first; + chunk != 0; + chunk = chunk->next) { + for (U64 i = 0; i < chunk->count; i += 1) { + LNK_Symbol *symbol = chunk->v[i].symbol; + COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + COFF_SymbolValueInterpType parsed_interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); + if (parsed_interp == COFF_SymbolValueInterp_Common) { + common_block_contribs_count += 1; + } + } + } + } + ProfEnd(); + + ProfBegin("Gather Contribs"); + common_block_contribs = push_array(scratch.arena, LNK_CommonBlockContrib, common_block_contribs_count); + { + U64 cursor = 0; + for (U64 worker_id = 0; worker_id < tp->worker_count; worker_id += 1) { + for (LNK_SymbolHashTrieChunk *chunk = symtab->chunk_lists[LNK_SymbolScope_Defined][worker_id].first; + chunk != 0; + chunk = chunk->next) { + for (U64 i = 0; i < chunk->count; i += 1) { + LNK_Symbol *symbol = chunk->v[i].symbol; + COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + COFF_SymbolValueInterpType parsed_interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); + if (parsed_interp == COFF_SymbolValueInterp_Common) { + LNK_CommonBlockContrib *contrib = &common_block_contribs[cursor++]; + contrib->symbol = chunk->v[i].symbol; + contrib->u.size = parsed_symbol.value; + } + } + } + } + } + ProfEnd(); + + if (common_block_contribs_count) { + ProfBeginV("Assign Common Block Offsets [count %llu]", common_block_contribs_count); + + // search/push .data + common_block_sect = lnk_section_table_search(sectab, str8_lit(".data"), LNK_DATA_SECTION_FLAGS); + if (common_block_sect == 0) { + common_block_sect = lnk_section_table_push(sectab, str8_lit(".data"), LNK_DATA_SECTION_FLAGS); + } + + // sort common blocks from largest to smallest for tighter packing + radsort(common_block_contribs, common_block_contribs_count, lnk_common_block_contrib_is_before); + + // compute common block offsets + for (U64 contrib_idx = 0; contrib_idx < common_block_contribs_count; contrib_idx += 1) { + LNK_CommonBlockContrib *contrib = &common_block_contribs[contrib_idx]; + U32 size = contrib->u.size; + U32 align = Min(32, u64_up_to_pow2(size)); // link.exe caps align at 32 bytes + common_block_sect->vsize = AlignPow2(common_block_sect->vsize, align); + contrib->u.offset = common_block_sect->vsize; + common_block_sect->vsize += size; + } + ProfEnd(); + } + + ProfEnd(); + } + + // + // section list -> array + // + LNK_SectionArray sects = lnk_section_array_from_list(scratch.arena, sectab->list); + + // patch symbol tables + { + ProfBegin("Patch Symbol Tables"); + + ProfBegin("Patch Common Block Leaders"); + B8 **was_patched = push_array(scratch.arena, B8 *, objs_count); + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + was_patched[obj_idx] = push_array(scratch.arena, B8, objs[obj_idx]->header.symbol_count); + } + + for (U64 contrib_idx = 0; contrib_idx < common_block_contribs_count; contrib_idx += 1) { + LNK_CommonBlockContrib *contrib = &common_block_contribs[contrib_idx]; + LNK_Symbol *symbol = contrib->symbol; + LNK_Obj *obj = symbol->u.defined.obj; + COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol->u.defined.symbol_idx); + + was_patched[obj->input_idx][symbol->u.defined.symbol_idx] = 1; + + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = parsed_symbol.raw_symbol; + symbol32->value = contrib->u.offset; + symbol32->section_number = safe_cast_u32(common_block_sect->sect_idx + 1); + } else { + COFF_Symbol16 *symbol16 = parsed_symbol.raw_symbol; + symbol16->value = contrib->u.offset; + symbol16->section_number = safe_cast_u16(common_block_sect->sect_idx + 1); + } + } + ProfEnd(); + + ProfBegin("Patch Regular Symbols"); + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + + if (was_patched[obj_idx][symbol_idx]) { + continue; + } + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { + LNK_SectionContrib *sc = sect_map[obj_idx][symbol.section_number-1]; + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = symbol.raw_symbol; + symbol32->section_number = safe_cast_u32(sc->u.sect_idx + 1); + symbol32->value = safe_cast_u32(sc->u.off); + } else { + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + symbol16->section_number = safe_cast_u16(sc->u.sect_idx + 1); + symbol16->value = safe_cast_u32(sc->u.off); + } + } + } + } + ProfEnd(); + + ProfBegin("Patch common blocks"); + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + + if (interp == COFF_SymbolValueInterp_Common) { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); + if (defn) { + LNK_SectionContrib *sc = sect_map[obj_idx][symbol.section_number-1]; + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = symbol.raw_symbol; + symbol32->section_number = safe_cast_u32(sc->u.sect_idx + 1); + symbol32->value = safe_cast_u32(sc->u.off); + symbol32->storage_class = COFF_SymStorageClass_Static; + } else { + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + symbol16->section_number = safe_cast_u16(sc->u.sect_idx + 1); + symbol16->value = safe_cast_u32(sc->u.off); + symbol16->storage_class = COFF_SymStorageClass_Static; + } + } + } + } + } + ProfEnd(); + + ProfBegin("Patch Abs"); + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + + if (interp == COFF_SymbolValueInterp_Abs && symbol.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); + + if (defn == 0) { + continue; + } + if (defn->u.defined.obj == obj && defn->u.defined.symbol_idx == symbol_idx) { + continue; + } + + COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_symbol.section_number, defn_symbol.value, defn_symbol.storage_class); + if (defn_interp == COFF_SymbolValueInterp_Regular) { + if (defn->u.defined.obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = symbol.raw_symbol; + symbol32->section_number = defn_symbol.section_number; + symbol32->value = defn_symbol.value; + symbol32->type = defn_symbol.type; + symbol32->storage_class = COFF_SymStorageClass_Static; + } else { + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + symbol16->section_number = defn_symbol.section_number; + symbol16->value = defn_symbol.value; + symbol16->type = defn_symbol.type; + symbol16->storage_class = COFF_SymStorageClass_Static; + } + } else { + InvalidPath; + } + } + } + } + ProfEnd(); + + // patch undefined symbols + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Undefined) { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); + if (defn) { + COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + + if (defn_symbol.storage_class == COFF_SymStorageClass_WeakExternal) { + continue; + } + + lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_symbol); + } else { + // TODO: collect unresolved undefined + } + } + } + } + + // patch weak symbols with strong definition + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Weak) { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); + if (defn) { + COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_symbol.section_number, defn_symbol.value, defn_symbol.storage_class); + if (defn_interp != COFF_SymbolValueInterp_Weak) { + lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_symbol); + } + } + } + } + } + + // patch weak with fallback definition + { + HashTable *visited_symbols_ht = hash_table_init(scratch.arena, 32); + struct LookupLocation { + struct LookupLocation *next; + LNK_Obj *obj; + U64 symbol_idx; + }; + struct LookupLocation *lookup_first = 0; + struct LookupLocation *lookup_last = 0; + struct LookupLocation *lookup_free_list = 0; + + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Undefined) { + String8 lookup_name = symbol.name; + LNK_Obj *lookup_obj = obj; + U64 lookup_symbol_idx = symbol_idx; + for (;;) { + // lookup definition + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, lookup_name); + if (defn == 0) { + break; + } + + // not external symbol? patch and move to next symbol + COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + if (defn_parsed.storage_class != COFF_SymStorageClass_WeakExternal) { + lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_parsed); + break; + } + + // check against cyclic refs + struct LookupLocation *was_visited = 0; + hash_table_search_string_raw(visited_symbols_ht, lookup_name, &was_visited); + if (was_visited != 0) { + Temp temp = temp_begin(scratch.arena); + + String8List list = {0}; + for (struct LookupLocation *l = lookup_first; l != 0; l = l->next) { + COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(l->obj, l->symbol_idx); + str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx) =>", l->obj->path, loc_symbol.name, l->symbol_idx); + } + { + COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(was_visited->obj, was_visited->symbol_idx); + str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx)", was_visited->obj->path, loc_symbol.name, was_visited->symbol_idx); + } + + String8 loc_string = str8_list_join(temp.arena, &list, &(StringJoin){.sep = str8_lit("\n") }); + lnk_error_obj(LNK_Error_WeakCycle, obj, "unable to resolve cyclic symbol %S; ref chain:\n%S", symbol.name, loc_string); + + temp_end(temp); + break; + } + struct LookupLocation *loc = lookup_free_list; + if (lookup_free_list) { + SLLStackPop(lookup_free_list); + } else { + loc = push_array(scratch.arena, struct LookupLocation, 1); + } + loc->obj = lookup_obj; + loc->symbol_idx = symbol_idx; + SLLQueuePush(lookup_first, lookup_last, loc); + hash_table_push_string_raw(scratch.arena, visited_symbols_ht, lookup_name, loc); + + // fallback to weak tag for definition + COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(defn_parsed, defn->u.defined.obj->header.is_big_obj); + COFF_ParsedSymbol parsed_tag = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, weak_ext->tag_index); + lookup_name = parsed_tag.name; + lookup_obj = defn->u.defined.obj; + lookup_symbol_idx = weak_ext->tag_index; + } + + hash_table_purge(visited_symbols_ht); + lookup_free_list = lookup_first; + lookup_first = 0; + lookup_last = 0; + } + } + } + } + + // patch weak symbols which have undefined tag + { + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Weak) { + COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(symbol, obj->header.is_big_obj); + AssertAlways(weak_ext->tag_index < symbol_idx); + + COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, weak_ext->tag_index); + COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_symbol.section_number, defn_symbol.value, defn_symbol.storage_class); + if (defn_interp != COFF_SymbolValueInterp_Undefined) { + lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_symbol); + } + } + } + } + } + + // report unresolved symbols + { + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Undefined || interp == COFF_SymbolValueInterp_Weak) { + lnk_error_obj(LNK_Error_UnresolvedSymbol, obj, "unresolved symbol %S", symbol.name); + } + } + } + } + + ProfEnd(); + } + + expected_image_header_size = lnk_compute_win32_image_header_size(config, sects.count); + + // assign virtual space + U64 voff_cursor = AlignPow2(expected_image_header_size + sizeof(COFF_SectionHeader), config->sect_align); + for (U64 i = 0; i < sects.count; i += 1) { + lnk_assign_section_virtual_space(sects.v[i], config->sect_align, &voff_cursor); + } + + // patch virtual offset and size in section headers + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { + LNK_SectionContrib *sc = sect_map[obj_idx][sect_idx]; + LNK_Section *sect = sects.v[sc->u.sect_idx]; + sect_header->vsize = sc->u.size; + sect_header->voff = sect->voff + sc->u.off; + } + } + } + + // build base relocs + if (~config->flags & LNK_ConfigFlag_Fixed) { + String8List base_relocs_data = lnk_build_base_relocs(tp, arena, config, objs_count, objs); + if (base_relocs_data.total_size) { + LNK_Section *reloc = lnk_section_table_push(sectab, str8_lit(".reloc"), LNK_RELOC_SECTION_FLAGS); + LNK_SectionContribChunk *sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &reloc->contribs, 1); + LNK_SectionContrib *sc = lnk_section_contrib_chunk_push(sc_chunk, 1); + sc->data_list = base_relocs_data.first; + sc->align = 1; + sc->u.sort_idx_size = 0; + sc->u.obj_idx = max_U32; + + lnk_finalize_section_layout(sectab, reloc, config->file_align); + lnk_assign_section_virtual_space(reloc, config->sect_align, &voff_cursor); + + sects = sects = lnk_section_array_from_list(scratch.arena, sectab->list); + expected_image_header_size = lnk_compute_win32_image_header_size(config, sects.count); + } + } + + // assign file space + U64 foff_cursor = AlignPow2(expected_image_header_size, config->file_align); + for (U64 i = 0; i < sects.count; i += 1) { + lnk_assign_section_file_space(sects.v[i], &foff_cursor); + } + + // patch file offset and size in section headers + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { + LNK_SectionContrib *sc = sect_map[obj_idx][sect_idx]; + LNK_Section *sect = sects.v[sc->u.sect_idx]; + if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { + sect_header->fsize = sc->u.size; + sect_header->foff = sect->foff + sc->u.off; + } + } + } + } + } + + // build win32 image header + LNK_SectionArray sects; + { + sects = lnk_section_array_from_list(scratch.arena, sectab->list); + String8List image_header_data = lnk_build_win32_image_header(scratch.arena, symtab, config, sects, AlignPow2(expected_image_header_size, config->file_align)); + + LNK_Section *image_header_sect = lnk_section_table_push(sectab, str8_lit(".rad_linker_image_header_section"), 0); + LNK_SectionContribChunk *image_header_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &image_header_sect->contribs, 1); + LNK_SectionContrib *image_header_sc = lnk_section_contrib_chunk_push(image_header_sc_chunk, 1); + + image_header_sc->align = config->file_align; + image_header_sc->data_list = image_header_data.first; + image_header_sc->u.size = safe_cast_u32(image_header_data.total_size); + + lnk_finalize_section_layout(sectab, image_header_sect, config->file_align); + + sects = lnk_section_array_from_list(scratch.arena, sectab->list); + } + + String8 image_data = {0}; + { + ProfBegin("Image Fill"); + + U64 image_size = 0; + for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { + image_size += sects.v[sect_idx]->fsize; + } + + image_data.size = image_size; + image_data.str = push_array_no_zero(arena->v[0], U8, image_size); + + for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { + LNK_Section *sect = sects.v[sect_idx]; + + if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { + // pick fill pick + U8 fill_byte = 0; + if (sect->flags & COFF_SectionFlag_CntCode) { + fill_byte = lnk_code_align_byte_from_machine(config->machine); + } + + // copy section contribution + U64 prev_sc_opl = 0; + for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { + for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { + LNK_SectionContrib *sc = &sc_chunk->v[sc_idx]; + + // fill align bytes + Assert(sc->u.off >= prev_sc_opl); + U64 fill_size = sc->u.off - prev_sc_opl; + MemorySet(image_data.str + sect->foff + prev_sc_opl, fill_byte, fill_size); + prev_sc_opl = sc->u.off + sc->u.size; + + // copy contrib contents + { + U64 cursor = 0; + for (String8Node *data_n = sc->data_list; data_n != 0; data_n = data_n->next) { + Assert(sc->u.off + data_n->string.size <= sect->vsize); + MemoryCopy(image_data.str + sect->foff + sc->u.off + cursor, data_n->string.str, data_n->string.size); + cursor += data_n->string.size; + } + } + } + } + + // fill section align bytes + { + U64 fill_size = sect->fsize - prev_sc_opl; + MemorySet(image_data.str + sect->foff + prev_sc_opl, fill_byte, fill_size); + } + } + } + + ProfEnd(); + } + + { + ProfBegin("Image Patch"); + + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, image_data); + COFF_SectionHeader **image_section_table = coff_section_table_from_data(scratch.arena, image_data, pe.section_table_range); + + // patch relocs + { + ProfBegin("Patch Relocs"); + LNK_ObjRelocPatcher task = {0}; + task.image_data = image_data; + task.objs = objs; + task.base_addr = pe.image_base; + task.image_section_table = image_section_table; + tp_for_parallel(tp, 0, objs_count, lnk_obj_reloc_patcher, &task); + ProfEnd(); + } + + LNK_Obj *debug_dir_obj = 0; + //hash_table_search_string_raw(loaded_obj_ht, str8_lit("* Debug Directory *"), &debug_dir_obj); + + // patch load config + { + LNK_Symbol *load_config_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit(LNK_LOAD_CONFIG_SYMBOL_NAME)); + if (load_config_symbol) { + U64 load_config_foff = lnk_file_off_from_symbol(image_section_table, load_config_symbol); + String8 load_config_data = str8_skip(image_data, load_config_foff); + + U32 load_config_size = 0; + if (sizeof(load_config_size) <= load_config_data.size) { + PE_DataDirectory *load_config_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_LOAD_CONFIG, sizeof(PE_DataDirectory)); + load_config_dir->virt_off = lnk_virt_off_from_symbol(image_section_table, load_config_symbol); + load_config_dir->virt_size = load_config_size; + } else { + // TODO: report corrupted load config + } + } + } + + // patch .pdata + { + LNK_Section *pdata_sect = lnk_section_table_search(sectab, str8_lit(".pdata"), LNK_PDATA_SECTION_FLAGS); + if (pdata_sect) { + String8 pdata = str8_substr(image_data, rng_1u64(pdata_sect->foff, pdata_sect->foff + pdata_sect->vsize)); + + ProfBegin("Sort Exception Info"); + if (pdata_sect) { + switch (config->machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X86: + case COFF_MachineType_X64: { + U64 count = pdata.size / sizeof(PE_IntelPdata); + radsort((PE_IntelPdata *)pdata.str, count, lnk_pdata_is_before_x8664); + } break; + default: { NotImplemented; } break; + } + } + ProfEnd(); + + PE_DataDirectory *pdata_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_EXCEPTIONS, sizeof(PE_DataDirectory)); + pdata_dir->virt_off = pdata_sect->voff; + pdata_dir->virt_size = pdata_sect->vsize; + } + } + + // patch export + { + LNK_Section *edata_sect = lnk_section_table_search(sectab, str8_lit(".edata"), LNK_EDATA_SECTION_FLAGS); + if (edata_sect) { + PE_DataDirectory *export_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_EXPORT, sizeof(PE_DataDirectory)); + export_dir->virt_off = edata_sect->voff; + export_dir->virt_size = edata_sect->vsize; + } + } + + // patch base relocs + { + LNK_Section *reloc_sect = lnk_section_table_search(sectab, str8_lit(".reloc"), LNK_RELOC_SECTION_FLAGS); + if (reloc_sect) { + PE_DataDirectory *reloc_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_BASE_RELOC, sizeof(PE_DataDirectory)); + reloc_dir->virt_off = reloc_sect->voff; + reloc_dir->virt_size = reloc_sect->vsize; + } + } + + // patch import and import addr + { + LNK_Symbol *dll_table_begin_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER_IMPORT_TABLE_DLL_BEGIN")); + LNK_Symbol *dll_table_end_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER_IMPORT_TABLE_DLL_END")); + if (dll_table_begin_symbol && dll_table_end_symbol) { + COFF_ParsedSymbol dll_table_begin_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dll_table_begin_symbol->u.defined.obj, dll_table_begin_symbol->u.defined.symbol_idx); + COFF_ParsedSymbol dll_table_end_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dll_table_end_symbol->u.defined.obj, dll_table_end_symbol->u.defined.symbol_idx); + U64 dll_table_voff = image_section_table[dll_table_begin_parsed.section_number]->voff + dll_table_begin_parsed.value; + U64 dll_table_vsize = dll_table_end_parsed.value - dll_table_begin_parsed.value; + + PE_DataDirectory *import_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_IMPORT, sizeof(PE_DataDirectory)); + import_dir->virt_off = dll_table_voff; + import_dir->virt_size = dll_table_vsize; + } + + LNK_Symbol *iat_begin_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER IMPORT_ADDRESS_TABLE_BEGIN")); + LNK_Symbol *iat_end_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER_IMPORT_ADDRESS_TABLE_END")); + if (iat_begin_symbol && iat_end_symbol) { + COFF_ParsedSymbol iat_begin_parsed = lnk_parsed_symbol_from_coff_symbol_idx(iat_begin_symbol->u.defined.obj, iat_begin_symbol->u.defined.symbol_idx); + COFF_ParsedSymbol iat_end_parsed = lnk_parsed_symbol_from_coff_symbol_idx(iat_end_symbol->u.defined.obj, iat_end_symbol->u.defined.symbol_idx); + U64 iat_voff = image_section_table[iat_begin_parsed.section_number]->voff + iat_begin_parsed.value; + U64 iat_vsize = iat_end_parsed.value - iat_begin_parsed.value; + + PE_DataDirectory *import_addr_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_IMPORT_ADDR, sizeof(PE_DataDirectory)); + import_addr_dir->virt_off = iat_voff; + import_addr_dir->virt_size = iat_vsize; + } + } + + // patch delay import + { + LNK_Symbol *dll_table_begin_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER_IMPORT_TABLE_DLL_DELAY_BEGIN")); + LNK_Symbol *dll_table_end_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER_IMPORT_TABLE_DLL_DELAY_END")); + if (dll_table_begin_symbol && dll_table_end_symbol) { + COFF_ParsedSymbol dll_table_begin_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dll_table_begin_symbol->u.defined.obj, dll_table_begin_symbol->u.defined.symbol_idx); + COFF_ParsedSymbol dll_table_end_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dll_table_end_symbol->u.defined.obj, dll_table_end_symbol->u.defined.symbol_idx); + U64 dll_table_voff = image_section_table[dll_table_begin_parsed.section_number]->voff + dll_table_begin_parsed.value; + U64 dll_table_vsize = dll_table_end_parsed.value - dll_table_begin_parsed.value; + + PE_DataDirectory *delay_import_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_DELAY_IMPORT, sizeof(PE_DataDirectory)); + delay_import_dir->virt_off = dll_table_voff; + delay_import_dir->virt_size = dll_table_vsize; + } + } + + // patch TLS + LNK_Symbol *tls_used_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, LNK_TLS_SYMBOL_NAME); + if (tls_used_symbol) { + ProfBegin("Patch TLS Align"); + + // loop over .tls sections and extract max alignment + LNK_Section *tls_sect = lnk_section_table_search(sectab, str8_lit(".tls"), LNK_RDATA_SECTION_FLAGS); + U64 tls_align = 0; + + for (LNK_SectionContribChunk *sc_chunk = tls_sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { + for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { + LNK_SectionContrib *sc = &sc_chunk->v[sc_idx]; + tls_align = Max(tls_align, sc->align); + } + } + + if (IsPow2(tls_align)) { + // compute TLS header offset + U64 tls_header_foff = lnk_file_off_from_symbol(image_section_table, tls_used_symbol); + + // patch TLS header + if (coff_word_size_from_machine(config->machine) == 8) { + String8 raw_tls_used = str8_substr(image_data, rng_1u64(tls_header_foff, tls_header_foff + sizeof(PE_TLSHeader64))); + PE_TLSHeader64 *tls_header = (PE_TLSHeader64 *) raw_tls_used.str; + tls_header->characteristics |= coff_section_flag_from_align_size(tls_align); + } else { + String8 raw_tls_used = str8_substr(image_data, rng_1u64(tls_header_foff, tls_header_foff + sizeof(PE_TLSHeader32))); + PE_TLSHeader32 *tls_header = (PE_TLSHeader32 *) raw_tls_used.str; + tls_header->characteristics |= coff_section_flag_from_align_size(tls_align); + } + } else { + lnk_error(LNK_Warning_TLSAlign, "unable to patch TLS Header characteristics, alignment must be power of two, align inferred from section flags: %llu", tls_align); + } + + PE_DataDirectory *tls_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_TLS, sizeof(PE_DataDirectory)); + tls_dir->virt_off = tls_sect->voff; + tls_dir->virt_size = tls_sect->vsize; + + ProfEnd(); + } + + // patch Debug + { + LNK_Section *debug_dir_sect = lnk_section_table_search(sectab, str8_lit(".RAD_LINKER_DEBUG_DIR"), LNK_RDATA_SECTION_FLAGS); + if (debug_dir_sect) { + PE_DataDirectory *debug_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_DEBUG, sizeof(PE_DataDirectory)); + debug_dir->virt_off = debug_dir_sect->voff; + debug_dir->virt_size = debug_dir_sect->vsize; + + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(debug_dir_obj->data, debug_dir_obj->header.section_table_range).str; + String8 string_table = str8_substr(debug_dir_obj->data, debug_dir_obj->header.string_table_range); + for (U64 sect_idx = 0; sect_idx < debug_dir_obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(debug_dir_obj->data, sect_header); + COFF_Reloc *relocs = (COFF_Reloc *)(debug_dir_obj->data.str + reloc_info.array_off); + + for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { + COFF_Reloc *r = &relocs[reloc_idx]; + if (r->type == 0) { + COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(debug_dir_obj, r->isymbol); + + // patch PE_DebugDirectory.foff + U32 *debug_directory_foff = (U32 *)(image_data.str + sect_header->foff + r->apply_off); + *debug_directory_foff = image_section_table[symbol.section_number]->foff + symbol.value; + break; + } + } + } + } + } + + // patch resources + { + LNK_Section *rsrc_sect = lnk_section_table_search(sectab, str8_lit(".rsrc"), LNK_RSRC_SECTION_FLAGS); + if (rsrc_sect) { + PE_DataDirectory *rsrc_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_RESOURCES, sizeof(PE_DataDirectory)); + rsrc_dir->virt_off = rsrc_sect->voff; + rsrc_dir->virt_size = rsrc_sect->vsize; + } + } + + // image checksum + if (config->flags & LNK_ConfigFlag_WriteImageChecksum) { + ProfBegin("Image Checksum"); + *pe.check_sum = pe_compute_checksum(image_data.str, image_data.size); + ProfEnd(); + } + + // compute image guid, and patch PDB and RDI guids + { + LNK_Symbol *guid_pdb_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER_PDB_GUID")); + LNK_Symbol *guid_rdi_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER_RDI_GUID")); + + if (guid_pdb_symbol || guid_rdi_symbol) { + switch (config->guid_type) { + case LNK_DebugInfoGuid_Null: break; + case Lnk_DebugInfoGuid_ImageBlake3: { + ProfBegin("Hash Image With Blake3"); + U128 hash = lnk_blake3_hash_parallel(tp, 128, image_data); + MemoryCopy(&config->guid, hash.u8, sizeof(hash.u8)); + ProfEnd(); + } break; + } + } + + if (guid_pdb_symbol) { + LNK_Obj *obj = guid_pdb_symbol->u.defined.obj; + COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, guid_pdb_symbol->u.defined.symbol_idx); + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + Guid *cv_guid_pdb = str8_deserial_get_raw_ptr(image_data, section_header->foff, sizeof(*cv_guid_pdb)); + *cv_guid_pdb = config->guid; + } + + if (guid_rdi_symbol) { + LNK_Obj *obj = guid_rdi_symbol->u.defined.obj; + COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, guid_rdi_symbol->u.defined.symbol_idx); + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + Guid *cv_guid_rdi = str8_deserial_get_raw_ptr(image_data, section_header->foff, sizeof(*cv_guid_rdi)); + *cv_guid_rdi = config->guid; + } + } + + ProfEnd(); + } + + scratch_end(scratch); + return image_data; } //////////////////////////////// @@ -2041,22 +3087,19 @@ THREAD_POOL_TASK_FUNC(lnk_undef_symbol_finder) Rng1U64 range = task->range_arr[task_id]; for (U64 symbol_idx = range.min; symbol_idx < range.max; symbol_idx += 1) { - LNK_SymbolNode *symbol_node = task->lookup_node_arr.v[symbol_idx]; - LNK_Symbol *symbol = symbol_node->data; - Assert(symbol->type == LNK_Symbol_Undefined); - LNK_UndefinedSymbol *undef = &symbol->u.undefined; + LNK_SymbolNode *symbol_n = task->lookup_node_arr.v[symbol_idx]; + LNK_Symbol *symbol = symbol_n->data; - LNK_Symbol *has_defn = lnk_symbol_table_search(task->symtab, undef->scope_flags, symbol->name); + LNK_Symbol *has_defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol->name); if (has_defn) { - Assert(LNK_Symbol_IsDefined(has_defn->type) || has_defn->type == LNK_Symbol_Weak || has_defn->type == LNK_Symbol_Import); continue; } - LNK_Symbol *lazy = lnk_symbol_table_search(task->symtab, LNK_SymbolScopeFlag_Lib, symbol->name); - if (lazy) { - lnk_push_input_from_lazy(arena, task->path_style, &lazy->u.lazy, &result->input_import_list, &result->input_obj_list); + LNK_Symbol *member_symbol = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Lib, symbol->name); + if (member_symbol) { + lnk_queue_lib_member_input(arena, task->path_style, &member_symbol->u.lib, &result->input_import_list, &result->input_obj_list); } else { - lnk_symbol_list_push_node(&result->unresolved_symbol_list, symbol_node); + lnk_symbol_list_push_node(&result->unresolved_symbol_list, symbol_n); } } } @@ -2069,29 +3112,28 @@ THREAD_POOL_TASK_FUNC(lnk_weak_symbol_finder) Rng1U64 range = task->range_arr[task_id]; for (U64 symbol_idx = range.min; symbol_idx < range.max; symbol_idx += 1) { - LNK_SymbolNode *symbol_node = task->lookup_node_arr.v[symbol_idx]; - LNK_Symbol *symbol = symbol_node->data; - Assert(symbol->type == LNK_Symbol_Weak); - LNK_WeakSymbol *weak = &symbol->u.weak; + LNK_SymbolNode *symbol_n = task->lookup_node_arr.v[symbol_idx]; + LNK_Symbol *symbol = symbol_n->data; - Assert((weak->scope_flags & ~(LNK_SymbolScopeFlag_Defined | LNK_SymbolScopeFlag_Internal)) == 0); - LNK_Symbol *has_strong_defn = lnk_symbol_table_search(task->symtab, weak->scope_flags, symbol->name); + LNK_Symbol *has_strong_defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol->name); if (has_strong_defn) { - Assert(LNK_Symbol_IsDefined(has_strong_defn->type)); continue; } - - LNK_Symbol *lazy = 0; - switch (weak->lookup_type) { + + LNK_Symbol *member_symbol = 0; + { + COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(parsed_symbol, symbol->u.defined.obj->header.is_big_obj); + switch (weak_ext->characteristics) { case COFF_WeakExt_NoLibrary: { // NOLIBRARY means weak symbol should be resolved in case where strong definition pulls in lib member. } break; case COFF_WeakExt_SearchLibrary: { - lazy = lnk_symbol_table_search(task->symtab, LNK_SymbolScopeFlag_Lib, symbol->name); + member_symbol = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Lib, symbol->name); } break; case COFF_WeakExt_SearchAlias: { - lazy = lnk_symbol_table_search(task->symtab, LNK_SymbolScopeFlag_Lib, symbol->name); - if (!lazy) { + member_symbol = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Lib, symbol->name); + if (member_symbol == 0) { if (str8_match_lit(".weak.", symbol->name, StringMatchFlag_RightSideSloppy)) { // TODO: Clang and MingGW encode extra info in alias // @@ -2109,16 +3151,18 @@ THREAD_POOL_TASK_FUNC(lnk_weak_symbol_finder) // In this case linker needs to parse .weak.bar.default.foo and search for bar and foo as well. Assert("TODO: MinGW weak symbol"); } else { - lazy = lnk_symbol_table_search(task->symtab, LNK_SymbolScopeFlag_Lib, weak->fallback_symbol->name); + COFF_ParsedSymbol tag = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, weak_ext->tag_index); + member_symbol = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Lib, tag.name); } } } break; + } } - if (lazy) { - lnk_push_input_from_lazy(arena, task->path_style, &lazy->u.lazy, &result->input_import_list, &result->input_obj_list); + if (member_symbol) { + lnk_queue_lib_member_input(arena, task->path_style, &member_symbol->u.lib, &result->input_import_list, &result->input_obj_list); } else { - lnk_symbol_list_push_node(&result->unresolved_symbol_list, symbol_node); + lnk_symbol_list_push_node(&result->unresolved_symbol_list, symbol_n); } } } @@ -2177,466 +3221,140 @@ lnk_run_symbol_finder(TP_Context *tp, return result; } -internal -THREAD_POOL_TASK_FUNC(lnk_defined_symbol_pusher_task) -{ - LNK_SymbolPusher *task = raw_task; - LNK_SymbolTable *symtab = task->symtab; - LNK_Obj *obj = &task->u.objs.v[task_id].data; - - LNK_SymbolHashTrieChunkList **chunk_lists = symtab->chunk_lists; - - for (LNK_SymbolNode *symnode = obj->symbol_list.first; symnode != 0; symnode = symnode->next) { - if (symnode->data->type == LNK_Symbol_DefinedExtern) { - U64 hash = lnk_symbol_hash(symnode->data->name); - lnk_symbol_table_push_(symtab, arena, &chunk_lists[LNK_SymbolScopeIndex_Defined][worker_id], LNK_SymbolScopeIndex_Defined, hash, symnode->data); - } else if (symnode->data->type == LNK_Symbol_Weak) { - U64 hash = lnk_symbol_hash(symnode->data->name); - lnk_symbol_table_push_(symtab, arena, &chunk_lists[LNK_SymbolScopeIndex_Weak][worker_id], LNK_SymbolScopeIndex_Weak, hash, symnode->data); - } - } -} - -internal void -lnk_push_defined_symbols(TP_Context *tp, LNK_SymbolTable *symtab, LNK_ObjNodeArray objs) -{ - ProfBeginFunction(); - LNK_SymbolPusher task = {0}; - task.symtab = symtab; - task.u.objs = objs; - tp_for_parallel(tp, symtab->arena, objs.count, lnk_defined_symbol_pusher_task, &task); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_lazy_symbol_pusher_task) -{ - LNK_SymbolPusher *task = raw_task; - LNK_SymbolTable *symtab = task->symtab; - LNK_Lib *lib = &task->u.libs.v[task_id].data; - String8Node *name_node = lib->symbol_name_list.first; - - LNK_Symbol *lazy_symbols = push_array_no_zero(arena, LNK_Symbol, lib->symbol_count); - - for (U64 symbol_idx = 0; symbol_idx < lib->symbol_count; ++symbol_idx, name_node = name_node->next) { - LNK_Symbol *symbol = &lazy_symbols[symbol_idx]; - lnk_init_lazy_symbol(symbol, name_node->string, lib, lib->member_off_arr[symbol_idx]); - - U64 hash = lnk_symbol_hash(symbol->name); - lnk_symbol_table_push_(symtab, arena, &symtab->chunk_lists[LNK_SymbolScopeIndex_Lib][worker_id], LNK_SymbolScopeIndex_Lib, hash, symbol); - } -} - -internal void -lnk_push_lazy_symbols(TP_Context *tp, LNK_SymbolTable *symtab, LNK_LibNodeArray libs) -{ - ProfBeginFunction(); - LNK_SymbolPusher task = {0}; - task.symtab = symtab; - task.u.libs = libs; - tp_for_parallel(tp, symtab->arena, libs.count, lnk_lazy_symbol_pusher_task, &task); - ProfEnd(); -} - //////////////////////////////// -internal void -lnk_apply_reloc(U64 base_addr, - U64 virt_align, - U64 file_align, - LNK_Section **sect_id_map, - LNK_SymbolTable *symtab, - String8 chunk_data, - LNK_Reloc *reloc) -{ - LNK_Symbol *symbol = lnk_resolve_symbol(symtab, reloc->symbol); - - // TODO: check if user forced to link with unresolved symbols and accordingly report the error - if (!LNK_Symbol_IsDefined(symbol->type)) { - lnk_error(LNK_Error_UndefinedSymbol, "%S", symbol->name); - return; - } - - U64 symbol_vsize = 0; - U64 symbol_fsize = 0; - U64 symbol_isect = 0; - U64 symbol_off = 0; - U64 symbol_voff = 0; - U64 symbol_foff = 0; - - LNK_DefinedSymbol *defined_symbol = &symbol->u.defined; - switch (defined_symbol->value_type) { - case LNK_DefinedSymbolValue_Null: break; - case LNK_DefinedSymbolValue_Chunk: { - symbol_isect = lnk_isect_from_symbol(sect_id_map, symbol); - symbol_vsize = lnk_virt_size_from_symbol(sect_id_map, symbol); - symbol_fsize = lnk_file_size_from_symbol(sect_id_map, symbol); - symbol_off = lnk_sect_off_from_symbol(sect_id_map, symbol); - symbol_voff = lnk_virt_off_from_symbol(sect_id_map, symbol); - symbol_foff = lnk_file_off_from_symbol(sect_id_map, symbol); - } break; - case LNK_DefinedSymbolValue_VA: { - symbol_voff = defined_symbol->u.va - base_addr; - } break; - } - - U64 reloc_align = 1; - U64 reloc_size = 0; - S64 reloc_value = 0; - - switch (reloc->type) { - case LNK_Reloc_NULL: /* ignore */ break; - case LNK_Reloc_ADDR_16: { - reloc_value = safe_cast_u16(base_addr + symbol_voff); - reloc_size = 2; - } break; - case LNK_Reloc_ADDR_32: { - reloc_value = (U32)(base_addr + symbol_voff); - reloc_size = 4; - } break; - case LNK_Reloc_ADDR_64: { - reloc_value = base_addr + symbol_voff; - reloc_size = 8; - } break; - case LNK_Reloc_CHUNK_SIZE_FILE_16: { - reloc_value = safe_cast_u16(symbol_fsize); - reloc_size = 2; - } break; - case LNK_Reloc_CHUNK_SIZE_FILE_32: { - reloc_value = symbol_fsize; - reloc_size = 4; - } break; - case LNK_Reloc_CHUNK_SIZE_VIRT_32: { - reloc_value = symbol_vsize; - reloc_size = 4; - } break; - case LNK_Reloc_FILE_ALIGN_32: { - reloc_value = 0; - reloc_size = 4; - reloc_align = file_align; - } break; - case LNK_Reloc_FILE_OFF_32: { - reloc_value = safe_cast_u32(symbol_foff); - reloc_size = 4; - } break; - case LNK_Reloc_FILE_OFF_64: { - reloc_value = symbol_foff; - reloc_size = 8; - } break; - case LNK_Reloc_REL32: { - U64 reloc_voff = lnk_virt_off_from_reloc(sect_id_map, reloc); - reloc_value = safe_cast_s32((S64)(symbol_voff - reloc_voff) - (4 + 0)); - reloc_size = 4; - } break; - case LNK_Reloc_REL32_1: { - U64 reloc_voff = lnk_virt_off_from_reloc(sect_id_map, reloc); - reloc_value = safe_cast_s32((S64)(symbol_voff - reloc_voff) - (4 + 1)); - reloc_size = 4; - } break; - case LNK_Reloc_REL32_2: { - U64 reloc_voff = lnk_virt_off_from_reloc(sect_id_map, reloc); - reloc_value = safe_cast_s32((S64)(symbol_voff - reloc_voff) - (4 + 2)); - reloc_size = 4; - } break; - case LNK_Reloc_REL32_3: { - U64 reloc_voff = lnk_virt_off_from_reloc(sect_id_map, reloc); - reloc_value = safe_cast_s32((S64)(symbol_voff - reloc_voff) - (4 + 3)); - reloc_size = 4; - } break; - case LNK_Reloc_REL32_4: { - U64 reloc_voff = lnk_virt_off_from_reloc(sect_id_map, reloc); - reloc_value = safe_cast_s32((S64)(symbol_voff - reloc_voff) - (4 + 4)); - reloc_size = 4; - } break; - case LNK_Reloc_REL32_5: { - U64 reloc_voff = lnk_virt_off_from_reloc(sect_id_map, reloc); - reloc_value = safe_cast_s32((S64)(symbol_voff - reloc_voff) - (4 + 5)); - reloc_size = 4; - } break; - case LNK_Reloc_SECT_REL: { - reloc_value = safe_cast_u32(symbol_off); - reloc_size = 4; - } break; - case LNK_Reloc_SECT_IDX: { - reloc_value = safe_cast_u32(symbol_isect); - reloc_size = 4; - } break; - case LNK_Reloc_VIRT_ALIGN_32: { - reloc_value = 0; - reloc_size = 4; - reloc_align = virt_align; - } break; - case LNK_Reloc_VIRT_OFF_32: { - reloc_value = safe_cast_u32(symbol_voff); - reloc_size = 4; - } break; - default: NotImplemented; - } - - // read addend - Assert(reloc->apply_off + reloc_size <= chunk_data.size); - U64 raw_addend = 0; - MemoryCopy(&raw_addend, chunk_data.str + reloc->apply_off, reloc_size); - S64 addend = extend_sign64(raw_addend, reloc_size); - - // commit reloc value - reloc_value += addend; - reloc_value = AlignPow2(reloc_value, reloc_align); - MemoryCopy(chunk_data.str + reloc->apply_off, &reloc_value, reloc_size); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_section_reloc_patcher) -{ - LNK_SectionRelocPatcher *task = raw_task; - - String8 image_data = task->image_data; - LNK_SymbolTable *symtab = task->symtab; - LNK_SectionTable *sectab = task->sectab; - LNK_Section **sect_id_map = task->sect_id_map; - U64 base_addr = task->base_addr; - Rng1U64 range = task->range_arr[task_id]; - - for (U64 sect_idx = range.min; sect_idx < range.max; sect_idx += 1) { - LNK_Section *sect = task->sect_arr[sect_idx]; - - for (LNK_Reloc *reloc = sect->reloc_list.first; reloc != 0; reloc = reloc->next) { - LNK_Chunk *chunk = reloc->chunk; - if (lnk_chunk_is_discarded(chunk)) { - continue; - } - String8 chunk_data = lnk_data_from_chunk_ref(sect_id_map, image_data, chunk->ref); - lnk_apply_reloc(base_addr, sectab->sect_align, sectab->file_align, sect_id_map, symtab, chunk_data, reloc); - int bad_vs = 0; (void)bad_vs; - } - } -} - -internal void -lnk_patch_relocs_linker(TP_Context *tp, LNK_SymbolTable *symtab, LNK_SectionTable *sectab, LNK_Section **sect_id_map, String8 image_data, U64 base_addr) +internal String8List +lnk_build_rad_chunk_map(Arena *arena, String8 image_data, U64 thread_count, LNK_ObjList objs, LNK_LibList lib_index[LNK_InputSource_Count], LNK_SectionTable *sectab) { ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); - - LNK_SectionPtrArray sect_arr = lnk_section_ptr_array_from_list(scratch.arena, sectab->list); - - LNK_SectionRelocPatcher task = {0}; - task.image_data = image_data; - task.symtab = symtab; - task.sectab = sectab; - task.sect_id_map = sect_id_map; - task.sect_arr = sect_arr.v; - task.base_addr = base_addr; - task.range_arr = tp_divide_work(scratch.arena, sect_arr.count, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, lnk_section_reloc_patcher, &task); - - scratch_end(scratch); - ProfEnd(); -} + Temp scratch = scratch_begin(&arena, 1); -internal -THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) -{ - LNK_ObjRelocPatcher *task = raw_task; - String8 image_data = task->image_data; - LNK_Obj *obj = task->obj_arr[task_id]; - LNK_Section **sect_id_map = task->sect_id_map; - - for (U64 sect_idx = 0; sect_idx < obj->sect_count; sect_idx += 1) { - LNK_RelocList reloc_list = obj->sect_reloc_list_arr[sect_idx]; - for (LNK_Reloc *reloc = reloc_list.first; reloc != 0; reloc = reloc->next) { - if (lnk_chunk_is_discarded(reloc->chunk)) { - continue; - } - String8 chunk_data = lnk_data_from_chunk_ref(sect_id_map, image_data, reloc->chunk->ref); - lnk_apply_reloc(task->base_addr, task->sectab->sect_align, task->sectab->file_align, task->sect_id_map, task->symtab, chunk_data, reloc); - int bad_vs = 0; (void)bad_vs; - } - } -} + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, image_data); + COFF_SectionHeader **image_section_table = coff_section_table_from_data(scratch.arena, image_data, pe.section_table_range); -internal void -lnk_patch_relocs_obj(TP_Context *tp, LNK_ObjList obj_list, LNK_SymbolTable *symtab, LNK_SectionTable *sectab, LNK_Section **sect_id_map, String8 image_data, U64 base_addr) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); - - LNK_ObjRelocPatcher task; - task.image_data = image_data; - task.symtab = symtab; - task.sectab = sectab; - task.sect_id_map = sect_id_map; - task.base_addr = base_addr; - task.obj_arr = lnk_obj_arr_from_list(scratch.arena, obj_list); - tp_for_parallel(tp, 0, obj_list.count, lnk_obj_reloc_patcher, &task); - - scratch_end(scratch); - ProfEnd(); -} + String8List map = {0}; -//////////////////////////////// - -internal LNK_SectionTable * -lnk_init_section_table(LNK_SymbolTable *symtab, U64 section_virt_off, U64 sect_align, U64 file_align) -{ - ProfBeginFunction(); - - static struct { - char *name; - char *symbol; - int flags; - } sect_layout[] = { - { ".null", LNK_NULL_SYMBOL_NAME, 0 }, - { ".text", LNK_TEXT_SYMBOL_NAME, LNK_TEXT_SECTION_FLAGS }, - { ".data", LNK_DATA_SYMBOL_NAME, LNK_DATA_SECTION_FLAGS }, - { ".rdata", LNK_RDATA_SYMBOL_NAME, LNK_RDATA_SECTION_FLAGS }, - { ".bss", LNK_BSS_SYMBOL_NAME, LNK_BSS_SECTION_FLAGS }, - { ".xdata", LNK_XDATA_SYMBOL_NAME, LNK_XDATA_SECTION_FLAGS }, - { ".pdata", LNK_PDATA_SYMBOL_NAME, LNK_PDATA_SECTION_FLAGS }, - { ".edata", LNK_EDATA_SYMBOL_NAME, LNK_EDATA_SECTION_FLAGS }, - { ".rsrc", LNK_RSRC_SYMBOL_NAME, LNK_RSRC_SECTION_FLAGS }, - { ".debug", LNK_DEBUG_SYMBOL_NAME, LNK_DEBUG_SECTION_FLAGS }, - { ".tls", LNK_TLS_SYMBOL_NAME, LNK_DATA_SECTION_FLAGS }, - }; - - LNK_SectionTable *sectab = lnk_section_table_alloc(section_virt_off, sect_align, file_align); - for (U64 i = 0; i < ArrayCount(sect_layout); ++i) { - LNK_Section *sect = lnk_section_table_push(sectab, str8_cstring(sect_layout[i].name), sect_layout[i].flags); - sect->symbol_name = str8_cstring(sect_layout[i].symbol); - sect->symbol_name = push_str8_copy(sect->arena, sect->symbol_name); - - lnk_symbol_table_push_defined_chunk(symtab, sect->symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, sect->root, 0, 0, 0); - } - - sectab->null_sect = lnk_section_list_remove(§ab->list, str8_lit(".null")); - - // dont build layout because we discard debug from image and move it to pdb - LNK_Section *debug_sect = lnk_section_table_search(sectab, str8_lit(".debug")); - debug_sect->emit_header = 0; - debug_sect->has_layout = 0; - - ProfEnd(); - return sectab; -} - -internal void -lnk_discard_meta_data_sections(LNK_SectionTable *sectab) -{ - static char * meta_data_sect_arr[] = { - ".gfids", - ".giats", - ".gljmp", - ".gehcont", - }; - for (U64 meta_idx = 0; meta_idx < ArrayCount(meta_data_sect_arr); meta_idx += 1) { - String8 name = str8_cstring(meta_data_sect_arr[meta_idx]); - LNK_Section *sect = lnk_section_table_search(sectab, name); - if (sect) { - lnk_visit_chunks(sect->id, sect->root, lnk_chunk_mark_discarded, NULL); - sect->root->is_discarded = 0; - } - } -} - -//////////////////////////////// - -internal int -lnk_pdata_is_before_x8664(void *raw_a, void *raw_b) -{ - PE_IntelPdata *a = raw_a; - PE_IntelPdata *b = raw_b; - int is_before = a->voff_first < b->voff_first; - return is_before; -} - -//////////////////////////////// - -internal void -lnk_log_size_breakdown(LNK_SectionTable *sectab, LNK_SymbolTable *symtab) -{ - Temp scratch = scratch_begin(0, 0); - - LNK_Section **sect_id_map = lnk_sect_id_map_from_section_table(scratch.arena, sectab); - - U64 code_size = 0; - U64 data_size = 0; - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != NULL; sect_node = sect_node->next) { - LNK_Section *sect = §_node->data; + ProfBegin("SECTIONS"); + str8_list_pushf(arena, &map, "# SECTIONS\n"); + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + LNK_Section *sect = §_n->data; if (sect->has_layout) { - U64 sect_size = lnk_file_size_from_chunk_ref(sect_id_map, sect->root->ref); - if (sect->flags & COFF_SectionFlag_CntCode) { - code_size += sect_size; - } else if (sect->flags & COFF_SectionFlag_CntInitializedData) { - data_size += sect_size; + str8_list_pushf(arena, &map, "%S\n", sect->name); + str8_list_pushf(arena, &map, "%-8s %-8s %-8s %-8s %-16s %-8s %s\n", "FileOff", "VirtOff", "VirtSize", "FileSize", "Blake3", "SC", "Source"); + + for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { + for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { + Temp temp = temp_begin(scratch.arena); + LNK_SectionContrib *sc = &sc_chunk->v[sc_idx]; + + U64 file_off = image_section_table[sc->u.sect_idx]->foff + sc->u.off; + U64 virt_off = image_section_table[sc->u.sect_idx]->voff + sc->u.off; + U64 virt_size = sc->u.size; + U64 file_size = sc->u.size; + String8 sc_data = str8_substr(image_data, rng_1u64(file_off, file_off + virt_size)); + + U128 sc_hash = {0}; + if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { + blake3_hasher hasher; blake3_hasher_init(&hasher); + blake3_hasher_update(&hasher, sc_data.str, sc_data.size); + blake3_hasher_finalize(&hasher, (U8 *)&sc_hash, sizeof(sc_hash)); + } + + String8 file_off_str = push_str8f(temp.arena, "%08x", file_off); + String8 virt_off_str = push_str8f(temp.arena, "%08x", virt_off); + String8 virt_size_str = push_str8f(temp.arena, "%08x", virt_size); + String8 file_size_str = push_str8f(temp.arena, "%08x", file_size); + String8 sc_hash_str = push_str8f(temp.arena, "%08x%08x", sc_hash.u64[0], sc_hash.u64[1]); + String8 sc_idx_str = push_str8f(temp.arena, "%llx", sc_idx); + String8 source_str; + { + String8List source_list = {0}; + +#if 0 + // location + if (chunk->obj) { + if (chunk->obj->lib_path.size) { + String8 lib_name = chunk->obj->lib_path; + lib_name = str8_skip_last_slash(lib_name); + lib_name = str8_chop_last_dot(lib_name); + + String8 obj_name = chunk->obj->path; + obj_name = str8_skip_last_slash(obj_name); + + str8_list_pushf(temp.arena, &source_list, "%S:%S", lib_name, obj_name); + } else { + str8_list_push(temp.arena, &source_list, chunk->obj->path); + } + } +#else + str8_list_pushf(temp.arena, &source_list, ""); +#endif + + // string join + source_str = str8_list_join(temp.arena, &source_list, &(StringJoin){.sep=str8_lit(" ")}); + } + + str8_list_pushf(arena, &map, "%-8S %-8S %-8S %-8S %-16S %-8S %S\n", file_off_str, virt_off_str, virt_size_str, file_size_str, sc_hash, sc_idx_str, source_str); + + temp_end(temp); + } + } + str8_list_pushf(arena, &map, "\n"); + } + } + ProfEnd(); + + + ProfBegin("SYMBOLS"); + str8_list_pushf(arena, &map, "# SYMBOLS\n"); + str8_list_pushf(arena, &map, "%-8s %s\n", "Sect:Idx", "Symbol"); + for (LNK_ObjNode *obj_n = objs.first; obj_n != 0; obj_n = obj_n->next) { + LNK_Obj *obj = &obj_n->data; + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { + String8 sc = push_str8f(scratch.arena, "%x:%x", symbol.section_number, symbol.value); + + String8 lib_name = obj->lib_path; + lib_name = str8_skip_last_slash(lib_name); + lib_name = str8_chop_last_dot(lib_name); + + String8 obj_name = obj->path; + obj_name = str8_skip_last_slash(obj_name); + + str8_list_pushf(arena, &map, "%-8S (%S%s%S) %S\n", + sc, + lib_name, lib_name.size ? ":" : "", obj_name, + symbol.name); } } } - - LNK_Symbol *dos_header_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Internal, str8_lit(LNK_DOS_HEADER_SYMBOL_NAME)); - LNK_Symbol *dos_program_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Internal, str8_lit(LNK_DOS_PROGRAM_SYMBOL_NAME)); - LNK_Symbol *coff_file_header_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Internal, str8_lit(LNK_COFF_FILE_HEADER_SYMBOL_NAME)); - LNK_Symbol *coff_section_header_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Internal, str8_lit(LNK_COFF_SECT_HEADER_ARRAY_SYMBOL_NAME)); - LNK_Symbol *pe_opt_header_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Internal, str8_lit(LNK_PE_OPT_HEADER_SYMBOL_NAME)); - LNK_Symbol *pe_directories_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Internal, str8_lit(LNK_PE_DIRECTORY_ARRAY_SYMBOL_NAME)); - - LNK_Chunk *dos_header_chunk = dos_header_symbol->u.defined.u.chunk; - LNK_Chunk *dos_program_chunk = dos_program_symbol->u.defined.u.chunk; - LNK_Chunk *coff_file_header_chunk = coff_file_header_symbol->u.defined.u.chunk; - LNK_Chunk *coff_section_header_chunk = coff_section_header_symbol->u.defined.u.chunk; - LNK_Chunk *pe_opt_header_chunk = pe_opt_header_symbol->u.defined.u.chunk; - LNK_Chunk *pe_directories_chunk = pe_directories_symbol->u.defined.u.chunk; - - U64 dos_header_size = lnk_file_size_from_chunk_ref(sect_id_map, dos_header_chunk->ref); - U64 dos_program_size = lnk_file_size_from_chunk_ref(sect_id_map, dos_program_chunk->ref); - U64 coff_file_header_size = lnk_file_size_from_chunk_ref(sect_id_map, coff_file_header_chunk->ref); - U64 coff_section_header_size = lnk_file_size_from_chunk_ref(sect_id_map, coff_section_header_chunk->ref); - U64 pe_opt_header_size = lnk_file_size_from_chunk_ref(sect_id_map, pe_opt_header_chunk->ref); - U64 pe_directories_size = lnk_file_size_from_chunk_ref(sect_id_map, pe_directories_chunk->ref); - - String8List output_list; MemoryZeroStruct(&output_list); - str8_list_pushf(scratch.arena, &output_list, "--- Image Size Breakdown -------------------------------------------------------"); - str8_list_pushf(scratch.arena, &output_list, " DOS Header: %M", dos_header_size); - str8_list_pushf(scratch.arena, &output_list, " DOS Program Stub: %M", dos_program_size); - str8_list_pushf(scratch.arena, &output_list, " COFF Header: %M", coff_file_header_size); - str8_list_pushf(scratch.arena, &output_list, " COFF Section Headers: %M", coff_section_header_size); - str8_list_pushf(scratch.arena, &output_list, " PE Header: %M", pe_opt_header_size); - str8_list_pushf(scratch.arena, &output_list, " Directories: %M", pe_directories_size); - str8_list_pushf(scratch.arena, &output_list, " Code Size: %M", code_size); - str8_list_pushf(scratch.arena, &output_list, " Data Size: %M", data_size); - - StringJoin new_line_join = { str8_lit_comp(""), str8_lit_comp("\n"), str8_lit_comp("") }; - String8 output = str8_list_join(scratch.arena, &output_list, &new_line_join); - lnk_log(LNK_Log_SizeBreakdown, "%S\n", output); - + str8_list_pushf(arena, &map, "\n"); + ProfEnd(); + + + ProfBegin("LIBS"); + for (U64 input_source = 0; input_source < LNK_InputSource_Count; ++input_source) { + if (lib_index[input_source].count) { + str8_list_pushf(arena, &map, "# LIBS (%S)\n", lnk_string_from_input_source(input_source)); + for (LNK_LibNode *lib_n = lib_index[input_source].first; lib_n != 0; lib_n = lib_n->next) { + str8_list_pushf(arena, &map, "%S\n", lib_n->data.path); + } + } + } + ProfEnd(); + + scratch_end(scratch); + ProfEnd(); + return map; } -internal void -lnk_log_link_stats(LNK_ObjList obj_list, LNK_LibList *lib_index, LNK_SectionTable *sectab) -{ - Temp scratch = scratch_begin(0, 0); - - U32 lib_count = 0; - for (U32 i = 0; i < LNK_InputSource_Count; i += 1) { - lib_count += lib_index[i].count; - } - U32 reloc_count = 0; - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != NULL; sect_node = sect_node->next) { - reloc_count += sect_node->data.reloc_list.count; - } - - String8List output_list = {0}; - str8_list_pushf(scratch.arena, &output_list, "------ Link Stats --------------------------------------------------------------"); - str8_list_pushf(scratch.arena, &output_list, " Linked Objs: %u", obj_list.count); - str8_list_pushf(scratch.arena, &output_list, " Linked Libs: %u", lib_count); - str8_list_pushf(scratch.arena, &output_list, " Relocs Patched: %u", reloc_count); - - StringJoin new_line_join = { str8_lit_comp(""), str8_lit_comp("\n"), str8_lit_comp("") }; - String8 output = str8_list_join(scratch.arena, &output_list, &new_line_join); - lnk_log(LNK_Log_LinkStats, "%S\n", output); - - scratch_end(scratch); -} +//////////////////////////////// internal void lnk_log_timers(void) @@ -2680,292 +3398,29 @@ lnk_write_thread(void *raw_ctx) ProfEnd(); } -internal -THREAD_POOL_TASK_FUNC(lnk_blake3_hasher_task) -{ - ProfBeginFunction(); - - LNK_Blake3Hasher *task = raw_task; - Rng1U64 range = task->ranges[task_id]; - String8 sub_data = str8_substr(task->data, range); - - blake3_hasher hasher; blake3_hasher_init(&hasher); - blake3_hasher_update(&hasher, sub_data.str, sub_data.size); - blake3_hasher_finalize(&hasher, (U8 *)task->hashes[task_id].u64, sizeof(task->hashes[task_id].u64)); - - ProfEnd(); -} - -internal U128 -lnk_blake3_hash_parallel(TP_Context *tp, U64 chunk_count, String8 data) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - - ProfBegin("Hash Chunks"); - LNK_Blake3Hasher task = {0}; - task.data = data; - task.ranges = tp_divide_work(scratch.arena, data.size, chunk_count); - task.hashes = push_array(scratch.arena, U128, chunk_count); - tp_for_parallel(tp, 0, chunk_count, lnk_blake3_hasher_task, &task); - ProfEnd(); - - ProfBegin("Combine Hashes"); - blake3_hasher hasher; blake3_hasher_init(&hasher); - for (U64 i = 0; i < chunk_count; ++i) { - blake3_hasher_update(&hasher, (U8 *)task.hashes[i].u64, sizeof(task.hashes[i].u64)); - } - U128 result; - blake3_hasher_finalize(&hasher, (U8 *)result.u64, sizeof(result.u64)); - ProfEnd(); - - scratch_end(scratch); - ProfEnd(); - return result; -} - -LNK_CHUNK_VISITOR_SIG(lnk_max_tls_align) -{ - if (chunk->type == LNK_Chunk_Leaf) { - U64 *max_align = ud; - *max_align = Max(*max_align, chunk->align); - } - return 0; -} - -global LNK_Section **g_rad_sort_sect_id_map = 0; - -typedef struct -{ - U64 off; - LNK_Chunk *chunk; -} LNK_ChunkOffPair; - -internal int -lnk_map_sort_on_chunk_file_off(void *raw_a, void *raw_b) -{ - LNK_Chunk **a = raw_a; - LNK_Chunk **b = raw_b; - - U64 a_file_off = lnk_virt_off_from_chunk_ref(g_rad_sort_sect_id_map, (*a)->ref); - U64 b_file_off = lnk_virt_off_from_chunk_ref(g_rad_sort_sect_id_map, (*b)->ref); - - int is_before = a_file_off < b_file_off; - return is_before; -} - -internal int -lnk_map_sort_on_chunk_off(void *raw_a, void *raw_b) -{ - LNK_ChunkOffPair *a = raw_a; - LNK_ChunkOffPair *b = raw_b; - - int is_before = a->off < b->off; - return is_before; -} - -internal U64 -lnk_chunk_off_pair_array_bsearch(LNK_ChunkOffPair *arr, U64 count, U64 value) -{ - if(count > 1 && arr[0].off <= value && value < arr[count-1].off) - { - U64 l = 0; - U64 r = count - 1; - for(; l <= r; ) - { - U64 m = l + (r - l) / 2; - if(arr[m].off == value) - { - return m; - } - else if(arr[m].off < value) - { - l = m + 1; - } - else - { - r = m - 1; - } - } - } - else if (count == 1 && arr[0].off == value) - { - return 0; - } - return max_U64; -} - -internal String8List -lnk_build_rad_chunk_map(Arena *arena, String8 image_data, U64 thread_count, LNK_ObjList objs, LNK_LibList lib_index[LNK_InputSource_Count], LNK_SectionTable *sectab, LNK_SymbolTable *symtab) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - String8List map = {0}; - - LNK_Section **sect_id_map = lnk_sect_id_map_from_section_table(scratch.arena, sectab); - - ProfBegin("SECTIONS"); - str8_list_pushf(arena, &map, "# SECTIONS\n"); - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - LNK_Section *sect = §_n->data; - if (sect->has_layout) { - LNK_Chunk **chunks = push_array_no_zero(scratch.arena, LNK_Chunk *, sect->layout.total_count); - MemoryCopyTyped(chunks, sect->layout.chunk_ptr_array, sect->layout.total_count); - - g_rad_sort_sect_id_map = sect_id_map; - radsort(chunks, sect->layout.total_count, lnk_map_sort_on_chunk_file_off); - - str8_list_pushf(arena, &map, "%S\n", sect->name); - str8_list_pushf(arena, &map, "%-8s %-8s %-8s %-8s %-16s %-8s %s\n", "FileOff", "VirtOff", "VirtSize", "FileSize", "Blake3", "ChunkRef", "Source"); - for (U64 chunk_idx = 0; chunk_idx < sect->layout.total_count; ++chunk_idx) { - LNK_Chunk *chunk = chunks[chunk_idx]; - if (chunk != g_null_chunk_ptr) { - Temp temp = temp_begin(scratch.arena); - - U64 file_off = lnk_file_off_from_chunk_ref(sect_id_map, chunk->ref); - U64 virt_off = lnk_virt_off_from_chunk_ref(sect_id_map, chunk->ref); - U64 virt_size = lnk_virt_size_from_chunk_ref(sect_id_map, chunk->ref); - U64 file_size = lnk_file_size_from_chunk_ref(sect_id_map, chunk->ref); - String8 chunk_data = lnk_data_from_chunk_ref(sect_id_map, image_data, chunk->ref); - - U128 chunk_hash = {0}; - if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { - blake3_hasher hasher; blake3_hasher_init(&hasher); - blake3_hasher_update(&hasher, chunk_data.str, chunk_data.size); - blake3_hasher_finalize(&hasher, (U8 *)&chunk_hash, sizeof(chunk_hash)); - } - - String8 file_off_str = push_str8f(temp.arena, "%08x", file_off); - String8 virt_off_str = push_str8f(temp.arena, "%08x", virt_off); - String8 virt_size_str = push_str8f(temp.arena, "%08x", virt_size); - String8 file_size_str = push_str8f(temp.arena, "%08x", file_size); - String8 chunk_hash_str = push_str8f(temp.arena, "%08x%08x", chunk_hash.u64[0], chunk_hash.u64[1]); - String8 chunk_ref_str = push_str8f(temp.arena, "{%llx,%llx}", chunk->ref.sect_id, chunk->ref.chunk_id); - String8 source_str; - { - String8List source_list = {0}; - - // chunk type - str8_list_pushf(temp.arena, &source_list, "[%S]", lnk_string_from_chunk_type(chunk->type)); - - // location - if (chunk->obj) { - if (chunk->obj->lib_path.size) { - String8 lib_name = chunk->obj->lib_path; - lib_name = str8_skip_last_slash(lib_name); - lib_name = str8_chop_last_dot(lib_name); - - String8 obj_name = chunk->obj->path; - obj_name = str8_skip_last_slash(obj_name); - - str8_list_pushf(temp.arena, &source_list, "%S:%S", lib_name, obj_name); - } else { - str8_list_push(temp.arena, &source_list, chunk->obj->path); - } - } - - // debug comment -#if LNK_DEBUG_CHUNKS - if (chunk->debug.size) { - if (source_str.size) { - str8_list_pushf(temp.arena, &source_list, "(%S)", chunk->debug); - } else if (chunk->debug.size) { - str8_list_push(temp.arena, &source_list, chunk->debug); - } - } -#endif - - // string join - source_str = str8_list_join(temp.arena, &source_list, &(StringJoin){.sep=str8_lit(" ")}); - } - - str8_list_pushf(arena, &map, "%-8S %-8S %-8S %-8S %-16S %-8S %S\n", file_off_str, virt_off_str, virt_size_str, file_size_str, chunk_hash_str, chunk_ref_str, source_str); - - temp_end(temp); - } - } - str8_list_pushf(arena, &map, "\n"); - } - } - ProfEnd(); - - - ProfBegin("SYMBOLS"); - str8_list_pushf(arena, &map, "# SYMBOLS\n"); - str8_list_pushf(arena, &map, "%-8s %s\n", "ChunkRef", "Symbol"); - for (LNK_ObjNode *obj_n = objs.first; obj_n != 0; obj_n = obj_n->next) { - LNK_Obj *obj = &obj_n->data; - for (LNK_SymbolNode *symbol_n = obj->symbol_list.first; symbol_n != 0; symbol_n = symbol_n->next) { - LNK_Symbol *symbol = symbol_n->data; - if (LNK_Symbol_IsDefined(symbol->type)) { - if (symbol->u.defined.value_type == LNK_DefinedSymbolValue_Chunk) { - LNK_Chunk *chunk = symbol->u.defined.u.chunk; - String8 chunk_ref_str = push_str8f(scratch.arena, "{%llx,%llx}", chunk->ref.sect_id, chunk->ref.chunk_id); - - String8 lib_name = obj->lib_path; - lib_name = str8_skip_last_slash(lib_name); - lib_name = str8_chop_last_dot(lib_name); - - String8 obj_name = obj->path; - obj_name = str8_skip_last_slash(obj_name); - - str8_list_pushf(arena, &map, "%-8S (%S%s%S) %S\n", - chunk_ref_str, - lib_name, lib_name.size ? ":" : "", obj_name, - symbol->name); - } - } - } - } - str8_list_pushf(arena, &map, "\n"); - ProfEnd(); - - - ProfBegin("LIBS"); - for (U64 input_source = 0; input_source < LNK_InputSource_Count; ++input_source) { - if (lib_index[input_source].count) { - str8_list_pushf(arena, &map, "# LIBS (%S)\n", lnk_string_from_input_source(input_source)); - for (LNK_LibNode *lib_n = lib_index[input_source].first; lib_n != 0; lib_n = lib_n->next) { - str8_list_pushf(arena, &map, "%S\n", lib_n->data.path); - } - } - } - ProfEnd(); - - - scratch_end(scratch); - ProfEnd(); - return map; -} - internal void lnk_run(int argc, char **argv) { enum State { State_Null, - State_InputSymbols, - State_InputImports, State_InputDisallowLibs, - State_InputLibs, + State_InputImports, + State_InputSymbols, State_InputObjs, - State_LookupUndef, - State_LookupWeak, - State_BuildImportObjs, - State_BuildExportObjs, - State_BuildDebugDirectoryObjs, - State_BuildAndInputLinkerObj, - State_BuildAndInputResObj, + State_InputLibs, State_PushDllHelperUndefSymbol, State_PushLinkerSymbols, State_PushLoadConfigUndefSymbol, - State_SearchEntryPoint, + State_LookupUndef, + State_LookupWeak, + State_LookupEntryPoint, State_ReportUnresolvedSymbols, - State_DiscardMetaDataSections, - State_MergeSections, - State_BuildCFGuards, - State_BuildBaseRelocs, - State_FinalizeImage, + State_InputImportObjs, + State_InputExportObjs, + State_InputResObj, + State_InputLinkerObj, + State_InputDebugDirObj, + State_BuildImage, State_BuildImpLib, State_BuildRadChunkMap, State_BuildDebugInfo, @@ -2994,22 +3449,25 @@ lnk_run(int argc, char **argv) lnk_init_error_handler(); - LNK_Config *config = lnk_build_config(scratch.arena, argc, argv); + LNK_Config *config = lnk_build_config(scratch.arena, argc, argv); + TP_Context *tp = tp_alloc(scratch.arena, config->worker_count, config->max_worker_count, config->shared_thread_pool_name); TP_Arena *tp_arena = tp_arena_alloc(tp); // inputs String8List include_symbol_list = config->include_symbol_list; String8List input_disallow_lib_list = config->disallow_lib_list; - String8List input_manifest_path_list = str8_list_copy(tp_arena->v[0], &config->input_list[LNK_Input_Manifest]); + String8List input_manifest_path_list = str8_list_copy(scratch.arena, &config->input_list[LNK_Input_Manifest]); String8List manifest_dep_list = str8_list_copy(scratch.arena, &config->manifest_dependency_list); LNK_ExportParseList export_symbol_list = config->export_symbol_list; - LNK_MergeDirectiveList merge_list = config->merge_list; LNK_AltNameList alt_name_list = config->alt_name_list; - LNK_InputLibList input_libs[LNK_InputSource_Count] = {0}; LNK_InputObjList input_obj_list = {0}; LNK_InputImportList input_import_list = {0}; LNK_SymbolList input_weak_list = {0}; + LNK_InputLibList input_libs[LNK_InputSource_Count] = { + config->input_list[LNK_Input_Lib], // command line libs + config->input_default_lib_list // default libs + }; // :null_obj lnk_input_obj_list_push(scratch.arena, &input_obj_list); @@ -3017,60 +3475,45 @@ lnk_run(int argc, char **argv) // input command line objs LNK_InputObjList cmd_line_obj_inputs = lnk_input_obj_list_from_string_list(scratch.arena, config->input_list[LNK_Input_Obj]); lnk_input_obj_list_concat_in_place(&input_obj_list, &cmd_line_obj_inputs); - - // input command line libs - input_libs[LNK_InputSource_CmdLine] = config->input_list[LNK_Input_Lib]; - input_libs[LNK_InputSource_Default] = config->input_default_lib_list; - LNK_ImportTableFlags imptab_flags = 0; - if (config->flags & LNK_ConfigFlag_DelayUnload) { - imptab_flags |= LNK_ImportTableFlag_EmitUiat; - } - if (config->flags & LNK_ConfigFlag_DelayBind) { - imptab_flags |= LNK_ImportTableFlag_EmitUiat; - } - // state - LNK_SymbolTable *symtab = lnk_symbol_table_init(tp_arena); - LNK_SectionTable *sectab = lnk_init_section_table(symtab, config->section_virt_off, config->sect_align, config->file_align); - LNK_ImportTable *imptab_static = lnk_import_table_alloc(0); - LNK_ImportTable *imptab_delayed = lnk_import_table_alloc(imptab_flags); - LNK_ExportTable *exptab = lnk_export_table_alloc(); - Arena *ht_arena = arena_alloc(); - HashTable *disallow_lib_ht = hash_table_init(scratch.arena, 0x100); - HashTable *delay_load_dll_ht = hash_table_init(scratch.arena, 0x100); - HashTable *loaded_lib_ht = hash_table_init(scratch.arena, 0x100); - HashTable *missing_lib_ht = hash_table_init(scratch.arena, 0x100); - HashTable *loaded_obj_ht = hash_table_init(scratch.arena, 0x4000); - LNK_SymbolList lookup_undef_list = {0}; - LNK_SymbolList lookup_weak_list = {0}; - LNK_SymbolList unresolved_undef_list = {0}; - LNK_SymbolList unresolved_weak_list = {0}; - U64 entry_search_attempts = 0; - B32 build_debug_info = lnk_do_debug_info(config); - B32 build_linker_obj = build_debug_info; - B32 build_debug_directory_objs = build_debug_info; - B32 build_import_objs = 1; - B32 build_export_objs = 1; - B32 build_res_obj = 1; - B32 discard_meta_data_sections = 1; - B32 merge_sections = !!(config->flags & LNK_ConfigFlag_Merge); - B32 build_cf_guards = 0; // (config->flags != LNK_Guard_NONE); - B32 build_base_relocs = !(config->flags & LNK_ConfigFlag_Fixed); - B32 report_unresolved_symbols = 1; - B32 build_imp_lib = config->build_imp_lib; - B32 build_rad_chunk_map = (config->rad_chunk_map == LNK_SwitchState_Yes); - LNK_ObjList obj_list = {0}; - LNK_LibList lib_index[LNK_InputSource_Count] = {0}; - String8 image_data = str8_zero(); - OS_Handle image_write_thread = {0}; + LNK_SymbolTable *symtab = lnk_symbol_table_init(tp_arena); + LNK_SectionTable *sectab = 0; + LNK_ImportTable *imptab_static = lnk_import_table_alloc(0); + LNK_ImportTable *imptab_delayed = lnk_import_table_alloc(config->import_table_flags); + LNK_ExportTable *exptab = lnk_export_table_alloc(); + LNK_ObjList obj_list = {0}; + LNK_LibList lib_index[LNK_InputSource_Count] = {0}; + Arena *ht_arena = arena_alloc(); + HashTable *disallow_lib_ht = hash_table_init(scratch.arena, 0x100); + HashTable *delay_load_dll_ht = hash_table_init(scratch.arena, 0x100); + HashTable *loaded_lib_ht = hash_table_init(scratch.arena, 0x100); + HashTable *missing_lib_ht = hash_table_init(scratch.arena, 0x100); + HashTable *loaded_obj_ht = hash_table_init(scratch.arena, 0x4000); + LNK_SymbolList lookup_undef_list = {0}; + LNK_SymbolList lookup_weak_list = {0}; + LNK_SymbolList unresolved_undef_list = {0}; + LNK_SymbolList unresolved_weak_list = {0}; + U64 entry_point_lookup_attempts = 0; + B32 report_unresolved_symbols = 1; + B32 input_import_objs = 1; + B32 input_export_objs = 1; + B32 input_res_obj = 1; + B32 input_linker_obj = lnk_do_debug_info(config); + B32 input_debug_dir_obj = lnk_do_debug_info(config); + B32 build_imp_lib = config->build_imp_lib; + B32 build_rad_chunk_map = (config->rad_chunk_map == LNK_SwitchState_Yes); + B32 build_debug_info = lnk_do_debug_info(config); + String8 image_data = str8_zero(); + OS_Handle image_write_thread = {0}; - // init state machine + // + // Init state machine + // struct StateList state_list = {0}; state_list_push(scratch.arena, state_list, State_InputDisallowLibs); state_list_push(scratch.arena, state_list, State_InputObjs); state_list_push(scratch.arena, state_list, State_InputLibs); - state_list_push(scratch.arena, state_list, State_PushLinkerSymbols); if (config->delay_load_dll_list.node_count) { for (String8Node *delay_load_dll_node = config->delay_load_dll_list.first; delay_load_dll_node != 0; @@ -3083,11 +3526,17 @@ lnk_run(int argc, char **argv) state_list_push(scratch.arena, state_list, State_PushLoadConfigUndefSymbol); } - // default section merges - lnk_merge_directive_list_push(scratch.arena, &merge_list, (LNK_MergeDirective){ str8_lit_comp(".xdata") , str8_lit_comp(".rdata") }); + // + // Default section merges + // + lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".xdata"), str8_lit_comp(".rdata") }); + lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".tls"), str8_lit_comp(".data") }); + lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".edata"), str8_lit_comp(".rdata") }); + lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".idata"), str8_lit_comp(".rdata") }); + lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".didat"), str8_lit_comp(".didat") }); + lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".RAD_LINKER_DEBUG_DIR"), str8_lit_comp(".rdata") }); ProfBegin("Image"); // :EndImage - ProfBegin("Build"); // :EndBuild lnk_timer_begin(LNK_Timer_Image); // run states @@ -3096,177 +3545,18 @@ lnk_run(int argc, char **argv) enum State state = state_list_pop(state_list); switch (state) { case State_Null: break; - case State_SearchEntryPoint: { - ProfBegin("Search Entry Point"); - LNK_Symbol *entry_point_symbol = 0; - - B32 is_entry_point_unspecified = config->entry_point_name.size == 0; - if (is_entry_point_unspecified) { - if (config->subsystem == PE_WindowsSubsystem_UNKNOWN) { - // we don't have a subsystem and entry point name, - // so we loop over every subsystem and search potential entry - // points in the symbol table - for (U64 subsys_idx = 0; subsys_idx < PE_WindowsSubsystem_COUNT; subsys_idx += 1) { - String8Array name_arr = pe_get_entry_point_names(config->machine, (PE_WindowsSubsystem)subsys_idx, config->file_characteristics); - for (U64 entry_idx = 0; entry_idx < name_arr.count; entry_idx += 1) { - entry_point_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Defined, name_arr.v[entry_idx]); - if (entry_point_symbol) { - config->subsystem = (PE_WindowsSubsystem)subsys_idx; - goto dbl_break; - } - } - } - - // search for potential entry points in libs - if (!entry_point_symbol) { - for (U64 subsys_idx = 0; subsys_idx < PE_WindowsSubsystem_COUNT; subsys_idx += 1) { - String8Array name_arr = pe_get_entry_point_names(config->machine, (PE_WindowsSubsystem)subsys_idx, config->file_characteristics); - for (U64 entry_idx = 0; entry_idx < name_arr.count; entry_idx += 1) { - entry_point_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Lib, name_arr.v[entry_idx]); - if (entry_point_symbol) { - config->subsystem = (PE_WindowsSubsystem)subsys_idx; - goto dbl_break; - } - } - } - } - - dbl_break:; - } else { - // we have subsystem but no entry point name, get potential entry point names - // and see which is in the symbol table - String8Array name_arr = pe_get_entry_point_names(config->machine, config->subsystem, config->file_characteristics); - for (U64 entry_idx = 0; entry_idx < name_arr.count; entry_idx += 1) { - LNK_Symbol *symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Defined, name_arr.v[entry_idx]); - if (symbol) { - if (entry_point_symbol) { - lnk_error(LNK_Error_EntryPoint, - "multiple entry point symbols found: %S(%S) and %S(%S)", - entry_point_symbol->name, entry_point_symbol->obj->path, - symbol->name, symbol->obj->path); - } else { - entry_point_symbol = symbol; - } - } - } - - // search for entry point in libs - if (!entry_point_symbol) { - for (U64 entry_idx = 0; entry_idx < name_arr.count; entry_idx += 1) { - entry_point_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Lib, name_arr.v[entry_idx]); - if (entry_point_symbol) { - break; - } - } - } - } - - // redirect user entry to appropriate CRT entry - if (entry_point_symbol) { - config->entry_point_name = entry_point_symbol->name; - if (str8_match_lit("wmain", config->entry_point_name, 0)) { - config->entry_point_name = str8_lit("wmainCRTStartup"); - } else if (str8_match_lit("main", config->entry_point_name, 0)) { - config->entry_point_name = str8_lit("mainCRTStartup"); - } else if (str8_match_lit("WinMain", config->entry_point_name, 0)) { - config->entry_point_name = str8_lit("WinMainCRTStartup"); - } else if (str8_match_lit("wWinMain", config->entry_point_name, 0)) { - config->entry_point_name = str8_lit("wWinMainCRTStartup"); - } - } - } - - // generate undefined symbol so in case obj is in lib it will be linked - if (config->entry_point_name.size) { - str8_list_push(scratch.arena, &include_symbol_list, config->entry_point_name); - } - // no entry point, error and exit - else { - lnk_error(LNK_Error_EntryPoint, "unable to find entry point symbol"); - } - - // by default terminal server is enabled for windows and console applications - if (~config->flags & LNK_ConfigFlag_NoTsAware && - ~config->file_characteristics & PE_ImageFileCharacteristic_FILE_DLL) { - if (config->subsystem == PE_WindowsSubsystem_WINDOWS_GUI || config->subsystem == PE_WindowsSubsystem_WINDOWS_CUI) { - config->dll_characteristics |= PE_DllCharacteristic_TERMINAL_SERVER_AWARE; - } - } - - // do we have a subsystem? - if (config->subsystem == PE_WindowsSubsystem_UNKNOWN) { - lnk_error(LNK_Error_NoSubsystem, "unknown subsystem, please use /SUBSYSTEM to set subsytem type you need"); - } - - if (config->subsystem_ver.major == 0 && config->subsystem_ver.minor == 0) { - // subsystem version not specified, set default values - config->subsystem_ver = lnk_get_default_subsystem_version(config->subsystem, config->machine); - } - - // check subsystem version against allowed min version - Version min_subsystem_ver = lnk_get_min_subsystem_version(config->subsystem, config->machine); - int ver_cmp = version_compar(config->subsystem_ver, min_subsystem_ver); - if (ver_cmp < 0) { - lnk_error(LNK_Error_Cmdl, "subsystem version %I64u.%I64u can't be lower than %I64u.%I64u", - config->subsystem_ver.major, config->subsystem_ver.minor, min_subsystem_ver.major, min_subsystem_ver.minor); - } - - ProfEnd(); - } break; - case State_PushDllHelperUndefSymbol: { - ProfBegin("Puhs Dll Helper Undef Symbol"); - - String8 delay_helper_name = str8_zero(); - switch (config->machine) { - case COFF_MachineType_X86: delay_helper_name = str8_cstring(LNK_DELAY_LOAD_HELPER2_X86_SYMBOL_NAME); break; - case COFF_MachineType_X64: delay_helper_name = str8_cstring(LNK_DELAY_LOAD_HELPER2_SYMBOL_NAME); break; - default: NotImplemented; - } - - str8_list_push(scratch.arena, &include_symbol_list, delay_helper_name); - ProfEnd(); - } break; - case State_PushLoadConfigUndefSymbol: { - ProfBegin("Push Load Config Undef Symbol"); - String8 load_config_name = str8_lit(LNK_LOAD_CONFIG_SYMBOL_NAME); - str8_list_push(scratch.arena, &include_symbol_list, load_config_name); - ProfEnd(); - } break; - case State_PushLinkerSymbols: { - ProfBegin("Push Linker Symbols"); - lnk_push_linker_symbols(symtab, config->machine); - ProfEnd(); - } break; - case State_InputSymbols: { - ProfBegin("Input Symbols"); - - ProfBegin("Push /INCLUDE Symbols"); - for (String8Node *include_node = include_symbol_list.first; include_node != 0; include_node = include_node->next) { - String8 name = push_str8_copy(symtab->arena->v[0], include_node->string); - LNK_Symbol *symbol = lnk_make_undefined_symbol(symtab->arena->v[0], name, LNK_SymbolScopeFlag_Main); - lnk_symbol_list_push(scratch.arena, &lookup_undef_list, symbol); - } - ProfEnd(); - - ProfBegin("Push /ALTERNATIVENAME Symbols"); - Assert(alt_name_list.from_list.node_count == alt_name_list.to_list.node_count); - for (String8Node *from_node = alt_name_list.from_list.first, *to_node = alt_name_list.to_list.first; - from_node != 0; - from_node = from_node->next, to_node = to_node->next) { - LNK_Symbol *weak = lnk_symbol_table_push_weak(symtab, from_node->string, COFF_WeakExt_SearchAlias, to_node->string); - lnk_symbol_list_push(scratch.arena, &input_weak_list, weak); - } - ProfEnd(); - // we defined new symbols, give unresolved symbols another chance to be resolved - lnk_symbol_list_concat_in_place(&lookup_undef_list, &unresolved_undef_list); - lnk_symbol_list_concat_in_place(&lookup_weak_list, &input_weak_list); - lnk_symbol_list_concat_in_place(&lookup_weak_list, &unresolved_weak_list); + case State_InputDisallowLibs: { + ProfBegin("Input /disallowlib"); - // reset inputs - MemoryZeroStruct(&include_symbol_list); - MemoryZeroStruct(&alt_name_list); - MemoryZeroStruct(&input_weak_list); + for (String8Node *name_n = input_disallow_lib_list.first; name_n != 0; name_n = name_n->next) { + if ( ! lnk_is_lib_disallowed(disallow_lib_ht, name_n->string)) { + lnk_push_disallow_lib(scratch.arena, disallow_lib_ht, name_n->string); + } + } + + // reset input + MemoryZeroStruct(&input_disallow_lib_list); ProfEnd(); } break; @@ -3324,17 +3614,41 @@ lnk_run(int argc, char **argv) ProfEnd(); } break; - case State_InputDisallowLibs: { - ProfBegin("Input /disallowlib"); + case State_InputSymbols: { + ProfBegin("Input Symbols"); - for (String8Node *name_n = input_disallow_lib_list.first; name_n != 0; name_n = name_n->next) { - if ( ! lnk_is_lib_disallowed(disallow_lib_ht, name_n->string)) { - lnk_push_disallow_lib(scratch.arena, disallow_lib_ht, name_n->string); - } + ProfBegin("Push /INCLUDE Symbols"); + for (String8Node *include_node = include_symbol_list.first; include_node != 0; include_node = include_node->next) { + String8 name = push_str8_copy(symtab->arena->v[0], include_node->string); + LNK_Symbol *symbol = lnk_make_undefined_symbol(symtab->arena->v[0], name, 0); + lnk_symbol_list_push(scratch.arena, &lookup_undef_list, symbol); } + ProfEnd(); - // reset input - MemoryZeroStruct(&input_disallow_lib_list); +#if 0 + ProfBegin("Push /ALTERNATIVENAME Symbols"); + Assert(alt_name_list.from_list.node_count == alt_name_list.to_list.node_count); + for (String8Node *from_node = alt_name_list.from_list.first, *to_node = alt_name_list.to_list.first; + from_node != 0; + from_node = from_node->next, to_node = to_node->next) { + LNK_Symbol *fallback = lnk_make_undefined_symbol(scratch.arena, to_node->string); + LNK_Symbol *weak = lnk_make_weak_symbol(scratch.arena, from_node->string, COFF_WeakExt_SearchAlias, fallback); + lnk_symbol_list_push(scratch.arena, &lookup_undef_list, fallback); + lnk_symbol_list_push(scratch.arena, &input_weak_list, weak); + lnk_symbol_table_push(symtab, weak); + } + ProfEnd(); +#endif + + // we defined new symbols, give unresolved symbols another chance to be resolved + lnk_symbol_list_concat_in_place(&lookup_undef_list, &unresolved_undef_list); + lnk_symbol_list_concat_in_place(&lookup_weak_list, &input_weak_list); + lnk_symbol_list_concat_in_place(&lookup_weak_list, &unresolved_weak_list); + + // reset inputs + MemoryZeroStruct(&include_symbol_list); + MemoryZeroStruct(&alt_name_list); + MemoryZeroStruct(&input_weak_list); ProfEnd(); } break; @@ -3386,22 +3700,15 @@ lnk_run(int argc, char **argv) lnk_log(LNK_Log_InputObj, "[ Obj Input Size %M ]", input_size); } - LNK_ObjNodeArray obj_node_arr = lnk_obj_list_push_parallel(tp, - tp_arena, - &obj_list, - sectab, - config->function_pad_min, - config->machine, - unique_obj_input_list.count, - input_obj_arr); + LNK_ObjNodeArray obj_node_arr = lnk_obj_list_push_parallel(tp, tp_arena, &obj_list, config->machine, unique_obj_input_list.count, input_obj_arr); // // if the machine was omitted on the command line, derive machine from obj // if (config->machine == COFF_MachineType_Unknown) { for (U64 obj_idx = 0; obj_idx < obj_node_arr.count; obj_idx += 1) { - if (obj_node_arr.v[obj_idx].data.machine != COFF_MachineType_Unknown) { - config->machine = obj_node_arr.v[obj_idx].data.machine; + if (obj_node_arr.v[obj_idx].data.header.machine != COFF_MachineType_Unknown) { + config->machine = obj_node_arr.v[obj_idx].data.header.machine; break; } } @@ -3413,12 +3720,11 @@ lnk_run(int argc, char **argv) LNK_DirectiveInfo directive_info = {0}; { - COFF_FileHeaderInfo coff_info = coff_file_header_info_from_data(obj->data); - COFF_SectionHeader *coff_section_table = (COFF_SectionHeader *)str8_substr(obj->data, coff_info.section_table_range).str; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; String8List drectve_data = {0}; - for (U64 sect_idx = 0; sect_idx < coff_info.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *sect_header = &coff_section_table[sect_idx]; + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; if (sect_header->flags & COFF_SectionFlag_LnkInfo) { String8 sect_name = str8_cstring_capped(sect_header->name, sect_header->name + sizeof(sect_header->name)); if (str8_match(sect_name, str8_lit(".drectve"), 0)) { @@ -3467,7 +3773,7 @@ lnk_run(int argc, char **argv) for (String8Node *value_n = dir->value_list.first; value_n != 0; value_n = value_n->next) { LNK_MergeDirective merge_dir; if (lnk_parse_merge_directive(value_n->string, &merge_dir)) { - lnk_merge_directive_list_push(scratch.arena, &merge_list, merge_dir); + lnk_merge_directive_list_push(scratch.arena, &config->merge_list, merge_dir); } else { lnk_error_obj(LNK_Warning_IllData, obj, "can't parse merge directive \"%S\"", value_n->string); } @@ -3514,16 +3820,11 @@ lnk_run(int argc, char **argv) } ProfEnd(); - // update symbol table - lnk_push_defined_symbols(tp, symtab, obj_node_arr); - - // collect symbols for input - LNK_SymbolList new_weak_list = lnk_run_symbol_collector(tp, tp_arena, obj_node_arr, LNK_Symbol_Weak); - LNK_SymbolList new_undef_list = lnk_run_symbol_collector(tp, tp_arena, obj_node_arr, LNK_Symbol_Undefined); // TODO: allocate these on temp arena + LNK_SymbolInputResult input_result = lnk_input_obj_symbols(tp, tp_arena, symtab, obj_node_arr); // schedule symbol input - lnk_symbol_list_concat_in_place(&input_weak_list, &new_weak_list); - lnk_symbol_list_concat_in_place(&lookup_undef_list, &new_undef_list); + lnk_symbol_list_concat_in_place(&input_weak_list, &input_result.weak_symbols); + lnk_symbol_list_concat_in_place(&lookup_undef_list, &input_result.undef_symbols); // reset input objs MemoryZeroStruct(&input_obj_list); @@ -3601,22 +3902,20 @@ lnk_run(int argc, char **argv) ProfEnd(); ProfBegin("Disk Read Libs"); - String8Array path_arr = str8_array_from_list(temp.arena, &unique_input_lib_list); - String8Array data_arr = lnk_read_data_from_file_path_parallel(tp, tp_arena->v[0], path_arr); + String8Array paths = str8_array_from_list(temp.arena, &unique_input_lib_list); + String8Array datas = lnk_read_data_from_file_path_parallel(tp, tp_arena->v[0], paths); ProfEnd(); ProfBegin("Lib Init"); - LNK_LibNodeArray lib_arr = lnk_lib_list_push_parallel(tp, tp_arena, &lib_index[input_source], data_arr, path_arr); + LNK_LibNodeArray libs = lnk_lib_list_push_parallel(tp, tp_arena, &lib_index[input_source], datas, paths); ProfEnd(); - lnk_push_lazy_symbols(tp, symtab, lib_arr); + lnk_input_lib_symbols(tp, symtab, libs); if (lnk_get_log_status(LNK_Log_InputLib)) { - if (lib_arr.count > 0) { + if (libs.count > 0) { U64 input_size = 0; - for (U64 i = 0; i < lib_arr.count; ++i) { - input_size += lib_arr.v[i].data.data.size; - } + for (U64 i = 0; i < libs.count; ++i) { input_size += libs.v[i].data.data.size; } lnk_log(LNK_Log_InputObj, "[ Lib Input Size %M ]", input_size); } } @@ -3630,51 +3929,230 @@ lnk_run(int argc, char **argv) ProfEnd(); } break; - case State_BuildImportObjs: { - ProfBegin("Build Import Table"); - - if (config->flags & LNK_ConfigFlag_CheckUnusedDelayLoadDll) { - if (imptab_delayed) { - for (String8Node *node = config->delay_load_dll_list.first; node != 0; node = node->next) { - LNK_ImportDLL *dll = lnk_import_table_search_dll(imptab_delayed, node->string); - if (dll == 0) { - lnk_error(LNK_Warning_UnusedDelayLoadDll, "/DELAYLOAD: %S found no imports", node->string); + case State_PushDllHelperUndefSymbol: { + ProfBegin("Puhs Dll Helper Undef Symbol"); + + String8 delay_helper_name = str8_zero(); + switch (config->machine) { + case COFF_MachineType_X86: delay_helper_name = str8_cstring(LNK_DELAY_LOAD_HELPER2_X86_SYMBOL_NAME); break; + case COFF_MachineType_X64: delay_helper_name = str8_cstring(LNK_DELAY_LOAD_HELPER2_SYMBOL_NAME); break; + default: NotImplemented; + } + + str8_list_push(scratch.arena, &include_symbol_list, delay_helper_name); + ProfEnd(); + } break; + case State_PushLinkerSymbols: { + ProfBegin("Push Linker Symbols"); + LNK_InputObjList linker_objs = lnk_push_linker_symbols(scratch.arena, config); + lnk_input_obj_list_concat_in_place(&input_obj_list, &linker_objs); + ProfEnd(); + } break; + case State_PushLoadConfigUndefSymbol: { + ProfBegin("Push Load Config Undef Symbol"); + String8 load_config_name = str8_lit(LNK_LOAD_CONFIG_SYMBOL_NAME); + str8_list_push(scratch.arena, &include_symbol_list, load_config_name); + ProfEnd(); + } break; + case State_LookupUndef: { + ProfBegin("Lookup Undefined Symbols"); + // search archives + LNK_SymbolFinderResult result = lnk_run_symbol_finder(tp, tp_arena, config->path_style, symtab, lookup_undef_list, lnk_undef_symbol_finder); // TODO: put these on temp arena + + // new inputs found + input_obj_list = result.input_obj_list; + input_import_list = result.input_import_list; + + // undefined symbols that weren't resolved + lnk_symbol_list_concat_in_place(&unresolved_undef_list, &result.unresolved_symbol_list); + + // reset input + MemoryZeroStruct(&lookup_undef_list); + ProfEnd(); + } break; + case State_LookupWeak: { + ProfBegin("Lookup Weak Symbols"); + // search archives + LNK_SymbolFinderResult result = lnk_run_symbol_finder(tp, tp_arena, config->path_style, symtab, lookup_weak_list, lnk_weak_symbol_finder); // TODO: put these on temp arena + + // schedule new inputs + input_obj_list = result.input_obj_list; + input_import_list = result.input_import_list; + + // weak symbols that weren't resolved + lnk_symbol_list_concat_in_place(&unresolved_weak_list, &result.unresolved_symbol_list); + + // reset input + MemoryZeroStruct(&lookup_weak_list); + ProfEnd(); + } break; + case State_LookupEntryPoint: { + ProfBegin("Lookup Entry Point"); + LNK_Symbol *entry_point_symbol = 0; + + B32 is_entry_point_unspecified = config->entry_point_name.size == 0; + if (is_entry_point_unspecified) { + if (config->subsystem == PE_WindowsSubsystem_UNKNOWN) { + // we don't have a subsystem and entry point name, + // so we loop over every subsystem and search potential entry + // points in the symbol table + for (U64 subsys_idx = 0; subsys_idx < PE_WindowsSubsystem_COUNT; subsys_idx += 1) { + String8Array name_arr = pe_get_entry_point_names(config->machine, (PE_WindowsSubsystem)subsys_idx, config->file_characteristics); + for (U64 entry_idx = 0; entry_idx < name_arr.count; entry_idx += 1) { + entry_point_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, name_arr.v[entry_idx]); + if (entry_point_symbol) { + config->subsystem = (PE_WindowsSubsystem)subsys_idx; + goto dbl_break; + } + } + } + + // search for potential entry points in libs + if (!entry_point_symbol) { + for (U64 subsys_idx = 0; subsys_idx < PE_WindowsSubsystem_COUNT; subsys_idx += 1) { + String8Array name_arr = pe_get_entry_point_names(config->machine, (PE_WindowsSubsystem)subsys_idx, config->file_characteristics); + for (U64 entry_idx = 0; entry_idx < name_arr.count; entry_idx += 1) { + entry_point_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Lib, name_arr.v[entry_idx]); + if (entry_point_symbol) { + config->subsystem = (PE_WindowsSubsystem)subsys_idx; + goto dbl_break; + } + } + } + } + + dbl_break:; + } else { + // we have subsystem but no entry point name, get potential entry point names + // and see which is in the symbol table + String8Array name_arr = pe_get_entry_point_names(config->machine, config->subsystem, config->file_characteristics); + for (U64 entry_idx = 0; entry_idx < name_arr.count; entry_idx += 1) { + LNK_Symbol *symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, name_arr.v[entry_idx]); + if (symbol) { + if (entry_point_symbol) { + lnk_error(LNK_Error_EntryPoint, + "multiple entry point symbols found: %S(%S) and %S(%S)", + entry_point_symbol->name, entry_point_symbol->u.defined.obj->path, + symbol->name, symbol->u.defined.obj->path); + } else { + entry_point_symbol = symbol; + } + } + } + + // search for entry point in libs + if (!entry_point_symbol) { + for (U64 entry_idx = 0; entry_idx < name_arr.count; entry_idx += 1) { + entry_point_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Lib, name_arr.v[entry_idx]); + if (entry_point_symbol) { + break; + } } } } + + // redirect user entry to appropriate CRT entry + if (entry_point_symbol) { + config->entry_point_name = entry_point_symbol->name; + if (str8_match_lit("wmain", config->entry_point_name, 0)) { + config->entry_point_name = str8_lit("wmainCRTStartup"); + } else if (str8_match_lit("main", config->entry_point_name, 0)) { + config->entry_point_name = str8_lit("mainCRTStartup"); + } else if (str8_match_lit("WinMain", config->entry_point_name, 0)) { + config->entry_point_name = str8_lit("WinMainCRTStartup"); + } else if (str8_match_lit("wWinMain", config->entry_point_name, 0)) { + config->entry_point_name = str8_lit("wWinMainCRTStartup"); + } + } } - - LNK_InputObjList static_imports = lnk_import_table_serialize(scratch.arena, imptab_static, str8_skip_last_slash(config->image_name), config->machine); - LNK_InputObjList delayed_imports = lnk_import_table_serialize(scratch.arena, imptab_delayed, str8_skip_last_slash(config->image_name), config->machine); - - lnk_input_obj_list_concat_in_place(&input_obj_list, &static_imports); - lnk_input_obj_list_concat_in_place(&input_obj_list, &delayed_imports); - - ProfEnd(); - } break; - case State_BuildExportObjs: { - ProfBegin("Build Export Table"); - - ProfBeginV("Push Exports [Count %u]", export_symbol_list.count); - for (LNK_ExportParse *exp_parse = export_symbol_list.first; exp_parse != 0; exp_parse = exp_parse->next) { - lnk_export_table_push_export(exptab, symtab, exp_parse); + + // generate undefined symbol so in case obj is in lib it will be linked + if (config->entry_point_name.size) { + str8_list_push(scratch.arena, &include_symbol_list, config->entry_point_name); } - ProfEnd(); - - LNK_InputObjList export_objs = lnk_export_table_serialize(scratch.arena, exptab, str8_skip_last_slash(config->image_name), config->machine); - lnk_input_obj_list_concat_in_place(&input_obj_list, &export_objs); - + // no entry point, error and exit + else { + lnk_error(LNK_Error_EntryPoint, "unable to find entry point symbol"); + } + + // by default terminal server is enabled for windows and console applications + if (~config->flags & LNK_ConfigFlag_NoTsAware && + ~config->file_characteristics & PE_ImageFileCharacteristic_FILE_DLL) { + if (config->subsystem == PE_WindowsSubsystem_WINDOWS_GUI || config->subsystem == PE_WindowsSubsystem_WINDOWS_CUI) { + config->dll_characteristics |= PE_DllCharacteristic_TERMINAL_SERVER_AWARE; + } + } + + // do we have a subsystem? + if (config->subsystem == PE_WindowsSubsystem_UNKNOWN) { + lnk_error(LNK_Error_NoSubsystem, "unknown subsystem, please use /SUBSYSTEM to set subsytem type you need"); + } + + if (config->subsystem_ver.major == 0 && config->subsystem_ver.minor == 0) { + // subsystem version not specified, set default values + config->subsystem_ver = lnk_get_default_subsystem_version(config->subsystem, config->machine); + } + + // check subsystem version against allowed min version + Version min_subsystem_ver = lnk_get_min_subsystem_version(config->subsystem, config->machine); + int ver_cmp = version_compar(config->subsystem_ver, min_subsystem_ver); + if (ver_cmp < 0) { + lnk_error(LNK_Error_Cmdl, "subsystem version %I64u.%I64u can't be lower than %I64u.%I64u", + config->subsystem_ver.major, config->subsystem_ver.minor, min_subsystem_ver.major, min_subsystem_ver.minor); + } + ProfEnd(); } break; - case State_BuildDebugDirectoryObjs: { - ProfBegin("Build Debug Directory"); - - LNK_InputObjList debug_objs = lnk_build_debug_directory_objs(scratch.arena, config); - lnk_input_obj_list_concat_in_place(&input_obj_list, &debug_objs); - - ProfEnd(); + case State_ReportUnresolvedSymbols: { + // report unresolved symbols + for (LNK_SymbolNode *node = unresolved_undef_list.first; node != 0; node = node->next) { + lnk_error(LNK_Error_UnresolvedSymbol, "unresolved symbol %S", node->data->name); + } + if (unresolved_undef_list.count) { + goto exit; + } } break; - case State_BuildAndInputResObj: { + case State_InputImportObjs: { + if (input_import_list.count) { + ProfBegin("Build Import Table"); + + if (config->flags & LNK_ConfigFlag_CheckUnusedDelayLoadDll) { + if (imptab_delayed) { + for (String8Node *node = config->delay_load_dll_list.first; node != 0; node = node->next) { + LNK_ImportDLL *dll = lnk_import_table_search_dll(imptab_delayed, node->string); + if (dll == 0) { + lnk_error(LNK_Warning_UnusedDelayLoadDll, "/DELAYLOAD: %S found no imports", node->string); + } + } + } + } + + LNK_InputObjList static_imports = lnk_import_table_serialize(scratch.arena, imptab_static, str8_skip_last_slash(config->image_name), config->machine); + LNK_InputObjList delayed_imports = lnk_import_table_serialize(scratch.arena, imptab_delayed, str8_skip_last_slash(config->image_name), config->machine); + + lnk_input_obj_list_concat_in_place(&input_obj_list, &static_imports); + lnk_input_obj_list_concat_in_place(&input_obj_list, &delayed_imports); + + ProfEnd(); + } + } break; + case State_InputExportObjs: { + if (export_symbol_list.count) { + ProfBegin("Build Export Table"); + + ProfBeginV("Push Exports [Count %u]", export_symbol_list.count); + for (LNK_ExportParse *exp_parse = export_symbol_list.first; exp_parse != 0; exp_parse = exp_parse->next) { + lnk_export_table_push_export(exptab, symtab, exp_parse); + } + ProfEnd(); + + LNK_InputObjList export_objs = lnk_export_table_serialize(scratch.arena, exptab, str8_skip_last_slash(config->image_name), config->machine); + lnk_input_obj_list_concat_in_place(&input_obj_list, &export_objs); + + ProfEnd(); + } + } break; + case State_InputResObj: { String8List res_data_list = {0}; String8List res_path_list = {0}; @@ -3718,7 +4196,7 @@ lnk_run(int argc, char **argv) if (res_data.size > 0) { if (pe_is_res(res_data)) { str8_list_push(scratch.arena, &res_data_list, res_data); - String8 stable_res_path = lnk_make_full_path(scratch.arena, config->work_dir, config->path_style, node->string); + String8 stable_res_path = lnk_make_full_path(scratch.arena, config->path_style, config->work_dir, node->string); str8_list_push(scratch.arena, &res_path_list, stable_res_path); } else { lnk_error(LNK_Error_LoadRes, "file is not of RES format: %S", node->string); @@ -3733,14 +4211,14 @@ lnk_run(int argc, char **argv) ProfBegin("Build * Resources *"); String8 obj_name = str8_lit("* Resources *"); - String8 obj_data = lnk_obj_from_res_file_list(scratch.arena, - res_data_list, - res_path_list, - config->machine, - config->time_stamp, - config->work_dir, - config->path_style, - obj_name); + String8 obj_data = lnk_make_res_obj(scratch.arena, + res_data_list, + res_path_list, + config->machine, + config->time_stamp, + config->work_dir, + config->path_style, + obj_name); LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->dedup_id = obj_name; @@ -3750,15 +4228,12 @@ lnk_run(int argc, char **argv) ProfEnd(); } } break; - case State_BuildAndInputLinkerObj: { + case State_InputLinkerObj: { ProfBegin("Build * Linker * Obj"); - String8 obj_name = str8_lit("* Linker *"); - - StringJoin join = { str8_lit_comp(""), str8_lit_comp(" "), str8_lit_comp("") }; - String8 raw_cmd_line = str8_list_join(scratch.arena, &config->raw_cmd_line, &join); - - String8 obj_data = lnk_make_linker_coff_obj(scratch.arena, config->time_stamp, config->machine, config->work_dir, config->image_name, config->pdb_name, raw_cmd_line, obj_name); + String8 obj_name = str8_lit("* Linker *"); + String8 raw_cmd_line = str8_list_join(scratch.arena, &config->raw_cmd_line, &(StringJoin){ str8_lit_comp(""), str8_lit_comp(" "), str8_lit_comp("") }); + String8 obj_data = lnk_make_linker_coff_obj(scratch.arena, config->time_stamp, config->machine, config->work_dir, config->image_name, config->pdb_name, raw_cmd_line, obj_name); LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->dedup_id = obj_name; @@ -3767,203 +4242,37 @@ lnk_run(int argc, char **argv) ProfEnd(); } break; - case State_LookupUndef: { - ProfBegin("Lookup Undefined Symbols"); - // search archives - LNK_SymbolFinderResult result = lnk_run_symbol_finder(tp, tp_arena, config->path_style, symtab, lookup_undef_list, lnk_undef_symbol_finder); // TODO: put these on temp arena - - // new inputs found - input_obj_list = result.input_obj_list; - input_import_list = result.input_import_list; - - // undefined symbols that weren't resolved - lnk_symbol_list_concat_in_place(&unresolved_undef_list, &result.unresolved_symbol_list); - - // reset input - MemoryZeroStruct(&lookup_undef_list); - ProfEnd(); - } break; - case State_LookupWeak: { - ProfBegin("Lookup Weak Symbols"); - // search archives - LNK_SymbolFinderResult result = lnk_run_symbol_finder(tp, tp_arena, config->path_style, symtab, lookup_weak_list, lnk_weak_symbol_finder); // TODO: put these on temp arena - - // schedule new inputs - input_obj_list = result.input_obj_list; - input_import_list = result.input_import_list; - - // weak symbols that weren't resolved - lnk_symbol_list_concat_in_place(&unresolved_weak_list, &result.unresolved_symbol_list); - - // reset input - MemoryZeroStruct(&lookup_weak_list); - ProfEnd(); - } break; - case State_ReportUnresolvedSymbols: { - // report unresolved symbols - for (LNK_SymbolNode *node = unresolved_undef_list.first; node != 0; node = node->next) { - lnk_error(LNK_Error_UnresolvedSymbol, "unresolved symbol %S", node->data->name); + case State_InputDebugDirObj: { + ProfBegin("Build Debug Directory"); + + { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->path = str8_lit("* Debug Directory *"); + input->dedup_id = input->path; + input->data = lnk_make_debug_directory_obj(scratch.arena, config); } - if (unresolved_undef_list.count) { - goto exit; + + if (config->debug_mode != LNK_DebugMode_None && config->debug_mode != LNK_DebugMode_Null) { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->path = str8_lit("* Debug Directory PDB *"); + input->dedup_id = input->path; + input->data = lnk_make_debug_directory_pdb_obj(scratch.arena, config); } - } break; - case State_DiscardMetaDataSections: { - ProfBegin("Discard Meta Data Sections"); - lnk_discard_meta_data_sections(sectab); - ProfEnd(); - } break; - case State_MergeSections: { - ProfBegin("Merge Sections"); - lnk_section_table_merge(sectab, merge_list); - ProfEnd(); - } break; - case State_BuildCFGuards: { - ProfBegin("Build CF Guards"); - B32 emit_suppress_flag = 1; // MSVC emits this flag but every entry has zero set. - lnk_build_guard_tables(tp, sectab, symtab, exptab, obj_list, config->machine, config->entry_point_name, config->guard_flags, emit_suppress_flag); - ProfEnd(); - } break; - case State_BuildBaseRelocs: { - ProfBegin("Base Relocs"); - lnk_build_base_relocs(tp, tp_arena, sectab, symtab, config->machine, config->page_size, config->file_characteristics, obj_list); - ProfEnd(); - } break; - case State_FinalizeImage: { - ProfBegin("Build Win32 Header"); - - // remove empty section headers from output image - lnk_section_table_remove_empties(sectab, symtab); - - // collect output sections - LNK_SectionArray out_sect_arr = lnk_section_table_get_output_sections(scratch.arena, sectab); - - // push back null section where we store image header - LNK_Section *header_sect = lnk_section_table_push_null(sectab); - - // fill out header section with win32 image header data - lnk_build_win32_image_header(symtab, header_sect, header_sect->root, config, out_sect_arr); - - ProfEnd(); - - // finalize sections - lnk_section_table_build_data(tp, sectab, config->machine); - lnk_section_table_assign_indices(sectab); - lnk_section_table_assign_virtual_offsets(sectab); - lnk_section_table_assign_file_offsets(sectab); - - ProfBegin("Image Serialize"); - image_data = lnk_section_table_serialize(tp, scratch.arena, sectab, config->machine); - Assert(image_data.size > 0); - ProfEnd(); - - // image layout is finalized, section id map is stable after this point - LNK_Section **sect_id_map = lnk_sect_id_map_from_section_table(scratch.arena, sectab); - - ProfBegin("Patch Relocs"); - - U64 base_addr = lnk_get_base_addr(config); - lnk_patch_relocs_obj(tp, obj_list, symtab, sectab, sect_id_map, image_data, base_addr); - lnk_patch_relocs_linker(tp, symtab, sectab, sect_id_map, image_data, base_addr); - - ProfEnd(); - - ProfBegin("Sort Exception Info"); - - LNK_Symbol *pdata_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScopeFlag_Internal, LNK_PDATA_SYMBOL_NAME); - if (pdata_symbol) { - String8 pdata = lnk_data_from_chunk_ref_no_pad(sect_id_map, image_data, pdata_symbol->u.defined.u.chunk->ref); - switch (config->machine) { - case COFF_MachineType_X86: - case COFF_MachineType_X64: { - U64 count = pdata.size / sizeof(PE_IntelPdata); - radsort((PE_IntelPdata *)pdata.str, count, lnk_pdata_is_before_x8664); - } break; - case COFF_MachineType_Arm64: - case COFF_MachineType_Arm: { - AssertAlways(!"TOOD: ARM"); - } break; - case COFF_MachineType_MipsFpu: - case COFF_MachineType_Mips16: - case COFF_MachineType_MipsFpu16: { - AssertAlways(!"TODO: MIPS"); - } break; - } + if (config->rad_debug == LNK_SwitchState_Yes) { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->path = str8_lit("* Debug Directory RDI *"); + input->dedup_id = input->path; + input->data = lnk_make_debug_directory_rdi_obj(scratch.arena, config); } ProfEnd(); + } break; + case State_BuildImage: { + // build image + image_data = lnk_build_win32_image(tp_arena, tp, config, symtab, exptab, obj_list); - ProfEnd(); // :EndBuild - - LNK_Symbol *tls_used_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScopeFlag_Main, LNK_TLS_SYMBOL_NAME); - if (tls_used_symbol) { - ProfBegin("Patch TLS Align"); - - // loop over .tls sections and extract max alignment - LNK_Symbol *tls_sect_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScopeFlag_Internal, LNK_TLS_SYMBOL_NAME); - LNK_Chunk *tls_root_chunk = tls_sect_symbol->u.defined.u.chunk; - U64 tls_align = 0; - lnk_visit_chunks(0, tls_root_chunk, lnk_max_tls_align, &tls_align); - - if (IsPow2(tls_align)) { - // compute TLS header offset - U64 tls_header_foff = lnk_file_off_from_symbol(sect_id_map, tls_used_symbol); - - // patch TLS header - if (coff_word_size_from_machine(config->machine) == 8) { - String8 raw_tls_used = str8_substr(image_data, rng_1u64(tls_header_foff, tls_header_foff + sizeof(PE_TLSHeader64))); - PE_TLSHeader64 *tls_header = (PE_TLSHeader64 *) raw_tls_used.str; - tls_header->characteristics |= coff_section_flag_from_align_size(tls_align); - } else { - String8 raw_tls_used = str8_substr(image_data, rng_1u64(tls_header_foff, tls_header_foff + sizeof(PE_TLSHeader32))); - PE_TLSHeader32 *tls_header = (PE_TLSHeader32 *) raw_tls_used.str; - tls_header->characteristics |= coff_section_flag_from_align_size(tls_align); - } - } else { - lnk_error(LNK_Warning_TLSAlign, "unable to patch TLS Header characteristics, alignment must be power of two, align inferred from section flags: %llu", tls_align); - } - - ProfEnd(); - } - - if (config->flags & LNK_ConfigFlag_WriteImageChecksum) { - ProfBegin("Image Checksum"); - - U32 image_checksum = pe_compute_checksum(image_data.str, image_data.size); - - LNK_Symbol *checksum_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScopeFlag_Internal, LNK_PE_CHECKSUM_SYMBOL_NAME); - U64 checksum_foff = lnk_file_off_from_symbol(sect_id_map, checksum_symbol); - - U32 *checksum_ptr = (U32 *)(image_data.str + checksum_foff); - *checksum_ptr = image_checksum; - - ProfEnd(); - } - - LNK_Symbol *guid_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScopeFlag_Internal, LNK_CV_HEADER_GUID_SYMBOL_NAME); - if (guid_symbol) { - // we can't have a debug directory to patch without debug info - Assert(build_debug_info); - - switch (config->guid_type) { - case LNK_DebugInfoGuid_Null: break; - case Lnk_DebugInfoGuid_ImageBlake3: { - ProfBegin("Hash Image With Blake3"); - - U128 hash = lnk_blake3_hash_parallel(tp, 128, image_data); - MemoryCopy(&config->guid, hash.u64, sizeof(hash.u64)); - - U64 guid_foff = lnk_file_off_from_symbol(sect_id_map, guid_symbol); - Guid *guid_ptr = (Guid *)(image_data.str + guid_foff); - MemoryCopy(guid_ptr, hash.u64, sizeof(hash.u64)); - - ProfEnd(); - } break; - } - } - - // write image file in background + // write image to disk in a background thread { LNK_WriteThreadContext *ctx = push_array(scratch.arena, LNK_WriteThreadContext, 1); ctx->path = config->image_name; @@ -3972,24 +4281,23 @@ lnk_run(int argc, char **argv) image_write_thread = os_thread_launch(lnk_write_thread, ctx, 0); } - if (lnk_get_log_status(LNK_Log_InputObj)) { - U64 total_input_size = 0; - for (LNK_ObjNode *obj_n = obj_list.first; obj_n != 0; obj_n = obj_n->next) { - total_input_size += obj_n->data.data.size; + // log + { + if (lnk_get_log_status(LNK_Log_InputObj)) { + U64 total_input_size = 0; + for (LNK_ObjNode *obj_n = obj_list.first; obj_n != 0; obj_n = obj_n->next) { total_input_size += obj_n->data.data.size; } + lnk_log(LNK_Log_InputObj, "[Total Obj Input Size %M]", total_input_size); } - lnk_log(LNK_Log_InputObj, "[Total Obj Input Size %M]", total_input_size); - } - if (lnk_get_log_status(LNK_Log_InputLib)) { - U64 total_input_size = 0; - for (U64 i = 0; i < ArrayCount(lib_index); ++i) { - LNK_LibList list = lib_index[i]; - for (LNK_LibNode *lib_n = list.first; lib_n != 0; lib_n = lib_n->next) { - total_input_size += lib_n->data.data.size; + if (lnk_get_log_status(LNK_Log_InputLib)) { + U64 total_input_size = 0; + for (U64 i = 0; i < ArrayCount(lib_index); ++i) { + LNK_LibList list = lib_index[i]; + for (LNK_LibNode *lib_n = list.first; lib_n != 0; lib_n = lib_n->next) { total_input_size += lib_n->data.data.size; } } + lnk_log(LNK_Log_InputLib, "[Total Lib Input Size %M]", total_input_size); } - lnk_log(LNK_Log_InputLib, "[Total Lib Input Size %M]", total_input_size); } - + lnk_timer_end(LNK_Timer_Image); ProfEnd(); // :EndImage } break; @@ -4003,7 +4311,7 @@ lnk_run(int argc, char **argv) } break; case State_BuildRadChunkMap: { ProfBegin("RAD Chunk Map"); - String8List map = lnk_build_rad_chunk_map(scratch.arena, image_data, config->worker_count, obj_list, lib_index, sectab, symtab); + String8List map = lnk_build_rad_chunk_map(scratch.arena, image_data, config->worker_count, obj_list, lib_index, sectab); lnk_write_data_list_to_file_path(config->rad_chunk_map_name, config->temp_rad_chunk_map_name, map); ProfEnd(); } break; @@ -4011,9 +4319,8 @@ lnk_run(int argc, char **argv) ProfBegin("Debug Info"); lnk_timer_begin(LNK_Timer_Debug); - LNK_CodeViewInput input = lnk_make_code_view_input(tp, tp_arena, config->lib_dir_list, obj_list); - CV_DebugT *types = lnk_import_types(tp, tp_arena, &input); - LNK_Section **sect_id_map = lnk_sect_id_map_from_section_table(scratch.arena, sectab); + LNK_CodeViewInput input = lnk_make_code_view_input(tp, tp_arena, config->lib_dir_list, obj_list); + CV_DebugT *types = lnk_import_types(tp, tp_arena, &input); if (config->rad_debug == LNK_SwitchState_Yes) { lnk_timer_begin(LNK_Timer_Rdi); @@ -4027,7 +4334,6 @@ lnk_run(int argc, char **argv) config->image_name, image_data, image_sects, - sect_id_map, input.count, input.obj_arr, input.debug_s_arr, @@ -4053,16 +4359,8 @@ lnk_run(int argc, char **argv) String8List pdb_data = lnk_build_pdb(tp, tp_arena, image_data, - config->guid, - config->machine, - config->time_stamp, - config->age, - config->pdb_page_size, - config->pdb_name, - config->lib_dir_list, - config->natvis_list, + config, symtab, - sect_id_map, input.count, input.obj_arr, input.debug_s_arr, @@ -4124,19 +4422,11 @@ lnk_run(int argc, char **argv) // we can't find strong definitions for unresolved weak symbols // so now we have to use fallback symbols MemoryZeroStruct(&unresolved_weak_list); - - // make sure fallback symbols are defined, if not try to find definitions - for (LNK_SymbolNode *symbol_n = unresolved_weak_list.first; symbol_n != 0; symbol_n = symbol_n->next) { - if (symbol_n->data->u.weak.fallback_symbol->type == LNK_Symbol_Undefined) { - lnk_symbol_list_push(scratch.arena, &lookup_undef_list, symbol_n->data->u.weak.fallback_symbol); - } - } - continue; } - if (entry_search_attempts == 0) { - state_list_push(scratch.arena, state_list, State_SearchEntryPoint); - entry_search_attempts += 1; + if (entry_point_lookup_attempts == 0) { + state_list_push(scratch.arena, state_list, State_LookupEntryPoint); + entry_point_lookup_attempts += 1; continue; } if (unresolved_undef_list.count) { @@ -4147,57 +4437,36 @@ lnk_run(int argc, char **argv) } } - if (build_import_objs) { - build_import_objs = 0; - state_list_push(scratch.arena, state_list, State_BuildImportObjs); - continue; - } - if (build_export_objs) { - build_export_objs = 0; - state_list_push(scratch.arena, state_list, State_BuildExportObjs); - continue; - } - if (build_debug_directory_objs) { - build_debug_directory_objs = 0; - state_list_push(scratch.arena, state_list, State_BuildDebugDirectoryObjs); - continue; - } - if (build_res_obj) { - build_res_obj = 0; - state_list_push(scratch.arena, state_list, State_BuildAndInputResObj); - continue; - } - if (build_linker_obj) { - build_linker_obj = 0; - state_list_push(scratch.arena, state_list, State_BuildAndInputLinkerObj); - continue; - } - - if (discard_meta_data_sections) { - discard_meta_data_sections = 0; - state_list_push(scratch.arena, state_list, State_DiscardMetaDataSections); + if (input_import_objs) { + input_import_objs = 0; + state_list_push(scratch.arena, state_list, State_InputImportObjs); continue; } - if (merge_sections) { - merge_sections = 0; - state_list_push(scratch.arena, state_list, State_MergeSections); + if (input_export_objs) { + input_export_objs = 0; + state_list_push(scratch.arena, state_list, State_InputExportObjs); continue; } - if (build_cf_guards) { - build_cf_guards = 0; - state_list_push(scratch.arena, state_list, State_BuildCFGuards); + if (input_res_obj) { + input_res_obj = 0; + state_list_push(scratch.arena, state_list, State_InputResObj); continue; } - if (build_base_relocs) { - build_base_relocs = 0; - state_list_push(scratch.arena, state_list, State_BuildBaseRelocs); + if (input_linker_obj) { + input_linker_obj = 0; + state_list_push(scratch.arena, state_list, State_InputLinkerObj); + continue; + } + if (input_debug_dir_obj) { + input_debug_dir_obj = 0; + state_list_push(scratch.arena, state_list, State_InputDebugDirObj); continue; } if (image_data.size == 0) { - state_list_push(scratch.arena, state_list, State_FinalizeImage); + state_list_push(scratch.arena, state_list, State_BuildImage); continue; } if (build_imp_lib) { @@ -4223,13 +4492,7 @@ lnk_run(int argc, char **argv) break; } - - if (lnk_get_log_status(LNK_Log_SizeBreakdown)) { - lnk_log_size_breakdown(sectab, symtab); - } - if (lnk_get_log_status(LNK_Log_LinkStats)) { - lnk_log_link_stats(obj_list, lib_index, sectab); - } + if (lnk_get_log_status(LNK_Log_Timers)) { lnk_log_timers(); } @@ -4257,18 +4520,3 @@ entry_point(CmdLine *cmdline) lnk_run(cmdline->argc, cmdline->argv); } -//////////////////////////////// - -internal String8 -lnk_string_from_input_source(LNK_InputSourceType input_source) -{ - String8 result = str8_zero(); - switch (input_source) { - case LNK_InputSource_CmdLine: result = str8_lit("CmdLine"); break; - case LNK_InputSource_Default: result = str8_lit("Default"); break; - case LNK_InputSource_Obj: result = str8_lit("Obj"); break; - default: InvalidPath; - } - return result; -} - diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 275fd652..3977a20c 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -1,67 +1,11 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once -#define LNK_NULL_SYMBOL_NAME "NULL" -#define LNK_TEXT_SYMBOL_NAME "TEXT" -#define LNK_DATA_SYMBOL_NAME "DATA" -#define LNK_RDATA_SYMBOL_NAME "RDATA" -#define LNK_BSS_SYMBOL_NAME "BSS" -#define LNK_XDATA_SYMBOL_NAME "XDATA" -#define LNK_PDATA_SYMBOL_NAME "PDATA" -#define LNK_BASE_RELOC_SYMBOL_NAME "BASE_RELOC" -#define LNK_EDATA_SYMBOL_NAME "EDATA" -#define LNK_DEBUG_DIR_SYMBOL_NAME "DEDIR" -#define LNK_DEBUG_DATA_SYMBOL_NAME "DEDAT" -#define LNK_CV_DIR_SYMBOL_NAME "CV_DIR" -#define LNK_CV_HEADER_PDB70_SYMBOL_NAME "CV_HEADER_PDB70" -#define LNK_CV_HEADER_RDI_SYMBOL_NAME "CV_HEADER_RDI" -#define LNK_CV_HEADER_GUID_SYMBOL_NAME "CV_HEADER_GUID" -#define LNK_RSRC_SYMBOL_NAME "RSRC" -#define LNK_DEBUG_SYMBOL_NAME "DEBUG" -#define LNK_GFIDS_SYMBOL_NAME "GFIDS" -#define LNK_GIATS_SYMBOL_NAME "GIATS" -#define LNK_GLJMP_SYMBOL_NAME "GLJMP" -#define LNK_GEHCONT_SYMBOL_NAME "GEHCONT" -#define LNK_IMPORT_NAME_TABLE_SYMBOL_NAME "IMPORT_STR" -#define LNK_IMPORT_DLL_TABLE_SYMBOL_NAME "IDATA" -#define LNK_IMPORT_ILT_SYMBOL_NAME "ILT" -#define LNK_IMPORT_IAT_SYMBOL_NAME "IAT" -#define LNK_IMPORT_JMP_SYMBOL_NAME "IMPORT_THUNKS" -#define LNK_DELAYED_IMPORT_DLL_TABLE_SYMBOL_NAME "DELAYED_IMPORT_DLL_TABLE" -#define LNK_DELAYED_IMPORT_HANDLE_TABLE_SYMBOL_NAME "DELAYED_IMPORT_HANDLE_TABLE" -#define LNK_DELAYED_IMPORT_INT_SYMBOL_NAME "DELAYED_IMPORT_INT" -#define LNK_DELAYED_IMPORT_IAT_SYMBOL_NAME "DELAYED_IMPORT_IAT" -#define LNK_DELAYED_IMPORT_ILT_SYMBOL_NAME "DELAYED_IMPORT_ILT" -#define LNK_DELAYED_IMPORT_BIAT_SYMBOL_NAME "DELAYED_IMPORT_BIAT" -#define LNK_DELAYED_IMPORT_UIAT_SYMBOL_NAME "DELAYED_IMPORT_UIAT" -#define LNK_DELAYED_IMPORT_CODE_SYMBOL_NAME "DELAYED_IMPORT_CODE" +// --- CRT Symbols ------------------------------------------------------------- -#define LNK_WIN32_HEADER_SYMBOL_NAME "WIN32_HEADER" -#define LNK_DOS_SYMBOL_NAME "DOS" -#define LNK_NT_HEADERS_SYMBOL_NAME "NT_HEADERS" -#define LNK_PE_MAGIC_CONTAINER_SYMBOL_NAME "PE_MAGIC_CONTAINER" -#define LNK_COFF_FILE_HEADER_CONTAINER_SYMBOL_NAME "COFF_FILE_HEADER_CONTAINER" -#define LNK_PE_OPT_HEADER_CONTAINER_SYMBOL_NAME "PE_OPTIONAL_HEADER_CONTAINER" -#define LNK_COFF_SECTION_HEADER_CONTAINER_SYMBOL_NAME "COFF_SECTION_HEADER_CONTAINER" - -#define LNK_DOS_HEADER_SYMBOL_NAME "DOS_HEADER" -#define LNK_DOS_PROGRAM_SYMBOL_NAME "DOS_PROGRAM" -#define LNK_PE_MAGIC_SYMBOL_NAME "PE_MAGIC" -#define LNK_COFF_FILE_HEADER_SYMBOL_NAME "COFF_FILE_HEADER" -#define LNK_PE_DIRECTORY_ARRAY_SYMBOL_NAME "PE_DIRECTORY_ARRAY" -#define LNK_PE_DIRECTORY_COUNT_SYMBOL_NAME "PE_DIRECTORY_COUNT" -#define LNK_PE_OPT_HEADER_SYMBOL_NAME "PE_OPTIONAL_HEADER" -#define LNK_COFF_SECT_HEADER_ARRAY_SYMBOL_NAME "COFF_SECT_HEADER_ARRAY" -#define LNK_COFF_SECT_HEADER_COUNT_SYMBOL_NAME "COFF_SECT_HEADER_COUNT" -#define LNK_PE_CHECKSUM_SYMBOL_NAME "PE_CHECKSUM" - -// _tls_used is a special section in CRT which has format of -// PE_TLSHeader32 or PE_TLSHeader64, according to machine type. -#define LNK_TLS_SYMBOL_NAME "_tls_used" - -// _load_config_used points to SYMS_PeLoadConfig32/SYMS_PeLoadConfig64 +// _load_config_used points to PE_LoadConfig32/PE_LoadConfig64 // and symbols below are used to patch patricual fields of the struct. #define LNK_LOAD_CONFIG_SYMBOL_NAME "_load_config_used" #define LNK_ENCLAVE_CONFIG_SYMBOL_NAME "__enclave_config" @@ -74,6 +18,7 @@ #define LNK_GUARD_LONGJMP_COUNT_SYMBOL_NAME "__guard_longjmp_count" #define LNK_GUARD_EHCONT_TABLE_SYMBOL_NAME "__guard_eh_cont_table" #define LNK_GUARD_EHCONT_COUNT_SYMBOL_NAME "__guard_eh_cont_count" + // x86 load config fields #define LNK_SAFE_SE_HANDLER_TABLE_SYMBOL_NAME "__safe_se_handler_table" #define LNK_SAFE_SE_HANDLER_COUNT_SYMBOL_NAME "__safe_se_handler_count" @@ -82,6 +27,12 @@ #define LNK_DELAY_LOAD_HELPER2_SYMBOL_NAME "__delayLoadHelper2" #define LNK_DELAY_LOAD_HELPER2_X86_SYMBOL_NAME "___delayLoadHelper2@8" +// _tls_used is a special section in CRT which has format of +// PE_TLSHeader32 or PE_TLSHeader64, according to machine type. +#define LNK_TLS_SYMBOL_NAME "_tls_used" + +// --- Default Section Flags -------------------------------------------------- + #define LNK_TEXT_SECTION_FLAGS (COFF_SectionFlag_CntCode|COFF_SectionFlag_MemExecute|COFF_SectionFlag_MemRead) #define LNK_DATA_SECTION_FLAGS (COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite) #define LNK_RDATA_SECTION_FLAGS (COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead) @@ -101,38 +52,7 @@ #define LNK_RELOC_SECTION_FLAGS (LNK_RDATA_SECTION_FLAGS | COFF_SectionFlag_MemDiscardable) #define LNK_DEBUG_SECTION_FLAGS (LNK_RDATA_SECTION_FLAGS | COFF_SectionFlag_MemDiscardable) -//////////////////////////////// - -#define LNK_COFF_RELOC_FILE_OFFSET32 0x1000 -#define LNK_COFF_RELOC_SECT_SIZE32 0x1001 - -//////////////////////////////// - -typedef enum -{ - LNK_InputSource_CmdLine, // specified on command line - LNK_InputSource_Default, // specified through defaultlib switch - LNK_InputSource_Obj, // refrenced from objects - LNK_InputSource_Count -} LNK_InputSourceType; - -typedef String8Node LNK_InputLib; -typedef String8List LNK_InputLibList; - -typedef struct LNK_InputImport -{ - COFF_ParsedArchiveImportHeader import_header; - struct LNK_InputImport *next; -} LNK_InputImport; - -typedef struct LNK_InputImportList -{ - U64 count; - LNK_InputImport *first; - LNK_InputImport *last; -} LNK_InputImportList; - -//////////////////////////////// +// --- Base Reloc -------------------------------------------------------------- typedef struct LNK_BaseRelocPage { @@ -160,11 +80,11 @@ typedef struct LNK_BaseRelocPageArray LNK_BaseRelocPage *v; } LNK_BaseRelocPageArray; +// --- Workers Contexts -------------------------------------------------------- + typedef struct { U64 page_size; - LNK_Section **sect_id_map; - LNK_Reloc **reloc_arr; Rng1U64 *range_arr; LNK_BaseRelocPageList *list_arr; HashTable **page_ht_arr; @@ -175,7 +95,6 @@ typedef struct { Rng1U64 *ranges; U64 page_size; - LNK_Section **sect_id_map; LNK_BaseRelocPageList *list_arr; LNK_Obj **obj_arr; HashTable **page_ht_arr; @@ -200,32 +119,10 @@ typedef struct typedef struct { - LNK_SymbolTable *symtab; - union { - LNK_ObjNodeArray objs; - LNK_LibNodeArray libs; - } u; -} LNK_SymbolPusher; - -typedef struct -{ - String8 image_data; - LNK_SymbolTable *symtab; - LNK_SectionTable *sectab; - LNK_Section **sect_id_map; - U64 base_addr; - LNK_Section **sect_arr; - Rng1U64 *range_arr; -} LNK_SectionRelocPatcher; - -typedef struct -{ - String8 image_data; - LNK_SymbolTable *symtab; - LNK_SectionTable *sectab; - LNK_Section **sect_id_map; - U64 base_addr; - LNK_Obj **obj_arr; + String8 image_data; + LNK_Obj **objs; + U64 base_addr; + COFF_SectionHeader **image_section_table; } LNK_ObjRelocPatcher; typedef struct @@ -242,17 +139,42 @@ typedef struct U128 *hashes; } LNK_Blake3Hasher; -//////////////////////////////// +typedef struct +{ + LNK_SymbolTable *symtab; + union { + LNK_ObjNodeArray objs; + LNK_LibNodeArray libs; + } u; +} LNK_SymbolPusher; -internal LNK_InputImport * lnk_input_import_list_push(Arena *arena, LNK_InputImportList *list); -internal void lnk_input_import_list_concat_in_place(LNK_InputImportList *list, LNK_InputImportList *to_concat); -internal LNK_InputImport ** lnk_input_import_arr_from_list(Arena *arena, LNK_InputImportList list); -internal LNK_InputImportList lnk_list_from_input_import_arr(LNK_InputImport **arr, U64 count); +// --- Entry Point ------------------------------------------------------------- -//////////////////////////////// -// Helpers +internal void lnk_run(int argc, char **argv); -internal String8 lnk_make_full_path(Arena *arena, String8 work_dir, PathStyle system_path_style, String8 path); +// --- Path -------------------------------------------------------------------- + +internal String8 lnk_make_full_path(Arena *arena, PathStyle system_path_style, String8 work_dir, String8 path); + +// --- Hasher ------------------------------------------------------------------ + +internal U128 lnk_blake3_hash_parallel(TP_Context *tp, U64 chunk_count, String8 data); + +// --- Manifest ---------------------------------------------------------------- + +internal String8 lnk_make_linker_manifest(Arena *arena, B32 manifest_uac, String8 manifest_level, String8 manifest_ui_access, String8List manifest_dependency_list); +internal void lnk_merge_manifest_files(String8 mt_path, String8 out_name, String8List manifest_path_list); +internal String8 lnk_manifest_from_inputs(Arena *arena, String8 mt_path, String8 manifest_name, B32 manifest_uac, String8 manifest_level, String8 manifest_ui_access, String8List input_manifest_path_list, String8List deps_list); + +// --- Internal Objs ----------------------------------------------------------- + +internal String8 lnk_make_res_obj(Arena *arena, String8List res_file_list, String8List res_path_list, COFF_MachineType machine, U32 time_stamp, String8 work_dir, PathStyle system_path_style, String8 obj_name); +internal String8 lnk_make_linker_coff_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 cwd_path, String8 exe_path, String8 pdb_path, String8 cmd_line, String8 obj_name); +internal String8 lnk_make_debug_directory_obj(Arena *arena, LNK_Config *config); +internal String8 lnk_make_debug_directory_pdb_obj(Arena *arena, LNK_Config *config); +internal String8 lnk_make_debug_directory_rdi_obj(Arena *arena, LNK_Config *config); + +// --- Symbol Resolver --------------------------------------------------------- internal String8 lnk_get_lib_name(String8 path); internal B32 lnk_is_lib_disallowed(HashTable *disallow_lib_ht, String8 path); @@ -260,56 +182,18 @@ internal B32 lnk_is_lib_loaded(HashTable *loaded_lib_ht, String8 lib_path); internal void lnk_push_disallow_lib(Arena *arena, HashTable *disallow_lib_ht, String8 path); internal void lnk_push_loaded_lib(Arena *arena, HashTable *loaded_lib_ht, String8 path); -//////////////////////////////// -// Manifest +internal LNK_InputObjList lnk_push_linker_symbols(Arena *arena, LNK_Config *config); +internal void lnk_queue_lib_member_input(Arena *arena, PathStyle path_style, LNK_SymbolLib *symbol, LNK_InputImportList *input_import_list, LNK_InputObjList *input_obj_list); -internal String8 lnk_make_linker_manifest(Arena *arena, B32 manifest_uac, String8 manifest_level, String8 manifest_ui_access, String8List manifest_dependency_list); -internal void lnk_merge_manifest_files(String8 mt_path, String8 out_name, String8List manifest_path_list); +// --- Win32 Image ------------------------------------------------------------- -//////////////////////////////// -// Resources +internal String8List lnk_build_guard_tables(TP_Context *tp, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, LNK_ExportTable *exptab, U64 objs_count, LNK_Obj **objs, COFF_MachineType machine, String8 entry_point_name, LNK_GuardFlags guard_flags, B32 emit_suppress_flag); +internal String8List lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_temp, LNK_Config *config, U64 objs_count, LNK_Obj **objs); +internal String8List lnk_build_win32_image_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sect_arr, U64 expected_image_header_size); +internal String8 lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, LNK_ExportTable *exptab, LNK_ObjList obj_list); -internal void lnk_serialize_pe_resource_tree(COFF_ObjWriter *obj_writer, PE_ResourceDir *root_dir); -internal void lnk_add_resource_debug_s(COFF_ObjWriter *obj_writer, String8 obj_path, String8 cwd_path, String8 exe_path, CV_Arch arch, String8List res_file_list, MD5Hash *res_hash_array); -internal String8 lnk_make_res_obj(Arena *arena, PE_ResourceDir *root_dir, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 path, String8 cwd_path, String8 exe_path, String8List res_file_list, MD5Hash *res_hash_array); -internal String8 lnk_obj_from_res_file_list(Arena *arena, String8List res_file_list, String8List res_path_list, COFF_MachineType machine, U32 time_stamp, String8 work_dir, PathStyle system_path_style, String8 obj_name); +// --- Logger ------------------------------------------------------------------ -//////////////////////////////// -// Debug - -internal String8 lnk_make_linker_coff_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 cwd_path, String8 exe_path, String8 pdb_path, String8 cmd_line, String8 obj_name); - -//////////////////////////////// -// Win32 Image Helpers - -internal void lnk_build_debug_pdb(LNK_SectionTable *sectab, LNK_SymbolTable *symtab, LNK_Section *debug_sect, LNK_Chunk *debug_dir_array_chunk, COFF_TimeStamp time_stamp, Guid guid, U32 age, String8 pdb_path); -internal void lnk_build_debug_rdi(LNK_SectionTable *sectab, LNK_SymbolTable *symtab, LNK_Section *debug_sect, LNK_Chunk *debug_dir_array_chunk, COFF_TimeStamp time_stamp, Guid guid, String8 rdi_path); -internal void lnk_build_guard_tables(TP_Context *tp, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, LNK_ExportTable *exptab, LNK_ObjList obj_list, COFF_MachineType machine, String8 entry_point_name, LNK_GuardFlags guard_flags, B32 emit_suppress_flag); -internal void lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_arena, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, COFF_MachineType machine, U64 page_size, PE_ImageFileCharacteristics file_chars, LNK_ObjList obj_list); -internal LNK_Chunk * lnk_build_dos_header(LNK_SymbolTable *symtab, LNK_Section *header_sect, LNK_Chunk *parent_chunk); -internal LNK_Chunk * lnk_build_pe_magic(LNK_SymbolTable *symtab, LNK_Section *header_sect, LNK_Chunk *parent); -internal LNK_Chunk * lnk_build_coff_file_header(LNK_SymbolTable *symtab, LNK_Section *header_sect, LNK_Chunk *parent, COFF_MachineType machine, COFF_TimeStamp time_stamp, PE_ImageFileCharacteristics file_characteristics); -internal LNK_Chunk * lnk_build_pe_optional_header_x64(LNK_SymbolTable *symtab, LNK_Section *header_sect, LNK_Chunk *parent, COFF_MachineType machine, U64 base_addr, U64 sect_align, U64 file_align, Version linker_ver, Version os_ver, Version image_ver, Version subsystem_ver, PE_WindowsSubsystem subsystem, PE_DllCharacteristics dll_characteristics, U64 stack_reserve, U64 stack_commit, U64 heap_reserve, U64 heap_commit, String8 entry_point_name, LNK_SectionArray sect_arr); -internal LNK_Chunk * lnk_build_pe_directories(LNK_SymbolTable *symtab, LNK_Section *header_sect, LNK_Chunk *parent); -internal LNK_Chunk * lnk_build_coff_section_table(LNK_SymbolTable *symtab, LNK_Section *header_sect, LNK_Chunk *parent_chunk, LNK_SectionArray sect_arr); -internal LNK_Chunk * lnk_build_win32_image_header(LNK_SymbolTable *symtab, LNK_Section *header_sect, LNK_Chunk *parent_chunk, LNK_Config *config, LNK_SectionArray sect_arr); - -//////////////////////////////// -// Relocs - -internal void lnk_patch_relocs_linker(TP_Context *tp, LNK_SymbolTable *symtab, LNK_SectionTable *sectab, LNK_Section **sect_id_map, String8 image_data, U64 base_addr); -internal void lnk_patch_relocs_obj(TP_Context *tp, LNK_ObjList obj_list, LNK_SymbolTable *symtab, LNK_SectionTable *sectab, LNK_Section **sect_id_map, String8 image_data, U64 base_addr); - -internal void lnk_apply_reloc(U64 base_addr, U64 virt_align, U64 file_align, LNK_Section **sect_id_map, LNK_SymbolTable *symtab, String8 chunk_data, LNK_Reloc *reloc); - -//////////////////////////////// - -internal void lnk_log_size_breakdown(LNK_SectionTable *sectab, LNK_SymbolTable *symtab); internal void lnk_log_link_stats(LNK_ObjList obj_list, LNK_LibList *lib_index, LNK_SectionTable *sectab); internal void lnk_log_timers(void); -//////////////////////////////// -// Enum <-> String - -internal String8 lnk_string_from_input_source(LNK_InputSourceType input_source); - diff --git a/src/linker/lnk_chunk.c b/src/linker/lnk_chunk.c deleted file mode 100644 index be7b7211..00000000 --- a/src/linker/lnk_chunk.c +++ /dev/null @@ -1,804 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -internal LNK_ChunkRef -lnk_chunk_ref(U64 sect_id, U64 chunk_id) -{ - LNK_ChunkRef ref = {0}; - ref.sect_id = sect_id; - ref.chunk_id = chunk_id; - return ref; -} - -internal B32 -lnk_chunk_ref_is_equal(LNK_ChunkRef a, LNK_ChunkRef b) -{ - B32 is_equal = a.sect_id == b.sect_id && a.chunk_id == b.chunk_id; - return is_equal; -} - -internal LNK_ChunkNode * -lnk_chunk_list_push(Arena *arena, LNK_ChunkList *list, LNK_Chunk *chunk) -{ - LNK_ChunkNode *node = push_array_no_zero(arena, LNK_ChunkNode, 1); - node->next = 0; - node->data = chunk; - - SLLQueuePush(list->first, list->last, node); - ++list->count; - - return node; -} - -internal void -lnk_chunk_list_concat_in_place(LNK_ChunkList *list, LNK_ChunkList *to_concat) -{ - SLLConcatInPlace(list, to_concat); -} - -internal void -lnk_chunk_list_concat_in_place_arr(LNK_ChunkList *list, LNK_ChunkList *arr, U64 count) -{ - SLLConcatInPlaceArray(list, arr, count); -} - -internal LNK_ChunkList ** -lnk_make_chunk_list_arr_arr(Arena *arena, U64 slot_count, U64 per_count) -{ - LNK_ChunkList **arr_arr = push_array_no_zero(arena, LNK_ChunkList *, slot_count); - for (U64 i = 0; i < slot_count; i += 1) { - arr_arr[i] = push_array(arena, LNK_ChunkList, per_count); - } - return arr_arr; -} - -internal int -lnk_chunk_sort_index_is_before(void *raw_a, void *raw_b) -{ - // Grouped Sections (PE Format) - // "All contributions with the same object-section name are allocated contiguously in the image, - // and the blocks of contributions are sorted in lexical order by object-section name." - LNK_ChunkPtr *a = raw_a; - LNK_ChunkPtr *b = raw_b; - - // sort on section postfix - int cmp = str8_compar_case_sensitive(&(*a)->sort_idx, &(*b)->sort_idx); - - // sort on obj position on command line - if (cmp == 0) { - cmp = u64_compar(&(*a)->input_idx, &(*b)->input_idx); - } - - int is_before = cmp < 0; - return is_before; -} - -internal void -lnk_chunk_array_sort(LNK_ChunkArray arr) -{ - radsort(arr.v, arr.count, lnk_chunk_sort_index_is_before); -} - -internal LNK_ChunkManager * -lnk_chunk_manager_alloc(Arena *arena, U64 id, U64 align) -{ - ProfBeginFunction(); - - LNK_ChunkList temp_list = {0}; - - LNK_Chunk temp_chunk = {0}; - temp_chunk.ref = lnk_chunk_ref(id, 0); - temp_chunk.align = align; - temp_chunk.type = LNK_Chunk_List; - temp_chunk.u.list = &temp_list; - - LNK_ChunkManager *cman = push_array_no_zero(arena, LNK_ChunkManager, 1); - cman->total_chunk_count = 1; // null chunk - cman->root = 0; - cman->root = lnk_chunk_push_list(arena, cman, &temp_chunk, str8(0,0)); - cman->root->align = align; - - ProfEnd(); - return cman; -} - -internal LNK_Chunk * -lnk_chunk_push_(Arena *arena, LNK_Chunk *parent, U64 chunk_id, String8 sort_index) -{ - ProfBeginFunction(); - - Assert(parent->type == LNK_Chunk_List); - LNK_ChunkList *list = parent->u.list; - - LNK_Chunk *chunk = push_array_no_zero(arena, LNK_Chunk, 1); - chunk->ref = lnk_chunk_ref(parent->ref.sect_id, chunk_id); - chunk->align = 1; - chunk->is_discarded = 0; - chunk->sort_chunk = 1; - chunk->type = LNK_Chunk_Null; - chunk->sort_idx = push_str8_copy(arena, sort_index); - chunk->input_idx = list->count; - chunk->flags = 0; - chunk->associate = 0; - - lnk_chunk_list_push(arena, list, chunk); - - ProfEnd(); - return chunk; -} - -internal LNK_Chunk * -lnk_chunk_push(Arena *arena, LNK_ChunkManager *cman, LNK_Chunk *parent, String8 sort_index) -{ - U64 chunk_id = cman->total_chunk_count; - ++cman->total_chunk_count; - LNK_Chunk *chunk = lnk_chunk_push_(arena, parent, chunk_id, sort_index); - return chunk; -} - -internal LNK_Chunk * -lnk_chunk_push_leaf(Arena *arena, LNK_ChunkManager *cman, LNK_Chunk *parent, String8 sort_index, void *raw_ptr, U64 raw_size) -{ - LNK_Chunk *chunk = lnk_chunk_push(arena, cman, parent, sort_index); - chunk->type = LNK_Chunk_Leaf; - chunk->u.leaf = str8((U8 *)raw_ptr, raw_size); - return chunk; -} - -internal LNK_Chunk * -lnk_chunk_push_list(Arena *arena, LNK_ChunkManager *cman, LNK_Chunk *parent, String8 sort_index) -{ - LNK_Chunk *chunk = lnk_chunk_push(arena, cman, parent, sort_index); - chunk->type = LNK_Chunk_List; - chunk->u.list = push_array(arena, LNK_ChunkList, 1); - return chunk; -} - -internal LNK_ChunkNode * -lnk_chunk_deep_copy(Arena *arena, LNK_Chunk *chunk) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - LNK_ChunkNode *dst_root_node = push_array_no_zero(arena, LNK_ChunkNode, 1); - LNK_ChunkNode *src_root_node = push_array_no_zero(scratch.arena, LNK_ChunkNode, 1); - src_root_node->next = 0; - src_root_node->data = chunk; - - struct Stack { - struct Stack *next; - LNK_ChunkNode *src_node; - LNK_ChunkNode *dst_node; - }; - struct Stack *stack = push_array_no_zero(scratch.arena, struct Stack, 1); - stack->next = 0; - stack->src_node = src_root_node; - stack->dst_node = dst_root_node; - - while (stack) { - while (stack->src_node) { - LNK_Chunk *src = stack->src_node->data; - LNK_Chunk *dst = stack->dst_node->data; - - stack->src_node = stack->src_node->next; - stack->dst_node = stack->dst_node->next; - - dst->ref = src->ref; - dst->type = src->type; - dst->align = src->align; - dst->is_discarded = src->is_discarded; - dst->sort_chunk = src->sort_chunk; - dst->sort_idx = push_str8_copy(arena, src->sort_idx); - dst->input_idx = src->input_idx; - dst->flags = src->flags; - //dst->associate = src->associate; - Assert(src->associate == 0); - lnk_chunk_set_debugf(arena, dst, "%S", src->debug); - - switch (src->type) { - case LNK_Chunk_Null: break; - case LNK_Chunk_Leaf: { - B32 is_bss = src->u.leaf.str == 0; - if (is_bss) { - dst->u.leaf = src->u.leaf; - } else { - dst->u.leaf = push_str8_copy(arena, src->u.leaf); - } - } break; - case LNK_Chunk_List: { - LNK_ChunkNode *chain = 0; - LNK_ChunkNode *curr = 0; - if (src->u.list->count > 0) { - chain = push_array(arena, LNK_ChunkNode, src->u.list->count); - curr = chain; - for (U64 i = 1; i < src->u.list->count; ++i) { - curr->next = &chain[i]; - curr = curr->next; - } - curr->next = 0; - } - - dst->u.list = push_array_no_zero(arena, LNK_ChunkList, 1); - dst->u.list->count = src->u.list->count; - dst->u.list->first = chain; - dst->u.list->last = curr; - - struct Stack *frame = push_array_no_zero(scratch.arena, struct Stack, 1); - frame->next = 0; - frame->src_node = src->u.list->first; - frame->dst_node = dst->u.list->first; - SLLStackPush(stack, frame); - } break; - default: InvalidPath; break; - } - } - - SLLStackPop(stack); - } - - scratch_end(scratch); - ProfEnd(); - return dst_root_node; -} - -internal LNK_ChunkNode * -lnk_merge_chunks(Arena *arena, LNK_ChunkManager *dst_cman, LNK_Chunk *dst, LNK_Chunk *src, U64 *id_map_out, U64 id_map_max) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 0); - - Assert(src->ref.sect_id != dst->ref.sect_id); - Assert(dst->type == LNK_Chunk_List); - Assert(src->type != LNK_Chunk_Null); - - LNK_ChunkNode *src_node = push_array(arena, LNK_ChunkNode, 1); - src_node->data = src; - - struct Stack { - struct Stack *next; - LNK_ChunkNode *node; - }; - struct Stack *stack = push_array_no_zero(scratch.arena, struct Stack, 1); - stack->next = 0; - stack->node = src_node; - - while (stack) { - while (stack->node) { - LNK_Chunk *chunk = stack->node->data; - - // advance node - stack->node = stack->node->next; - - // allocate id - U64 new_id = dst_cman->total_chunk_count++; - - // write id map - Assert(chunk->ref.chunk_id < id_map_max); - id_map_out[chunk->ref.chunk_id] = new_id; - - // update id - chunk->ref = lnk_chunk_ref(dst->ref.sect_id, new_id); - - // recurse down on lists - if (chunk->type == LNK_Chunk_List) { - struct Stack *frame = push_array_no_zero(scratch.arena, struct Stack, 1); - frame->next = 0; - frame->node = chunk->u.list->first; - SLLStackPush(stack, frame); - } - } - - // reached end of chunk list, pop frame - SLLStackPop(stack); - } - - // move source root copy to destination section - LNK_ChunkList *list = dst->u.list; - ++list->count; - SLLQueuePush(list->first, list->last, src_node); - - scratch_end(scratch); - ProfEnd(); - return src_node; -} - -internal -LNK_CHUNK_VISITOR_SIG(lnk_set_associate_on_chunks) -{ - chunk->associate = (LNK_Chunk *)ud; - return 0; -} - -internal void -lnk_chunk_associate(LNK_Chunk *head, LNK_Chunk *chunk) -{ - // for simplicity we don't support multiple associations, - // but it's possible to craft symbol table with multiple associations - AssertAlways(!chunk->associate); - lnk_visit_chunks(0, chunk, lnk_set_associate_on_chunks, head); -} - -internal B32 -lnk_chunk_is_discarded(LNK_Chunk *chunk) -{ - B32 is_discarded = chunk->is_discarded; - LNK_Chunk *curr = chunk->associate; - while (!is_discarded && curr) { - is_discarded = curr->is_discarded; - curr = curr->associate; - } - return is_discarded; -} - -internal U64 -lnk_chunk_get_size(LNK_Chunk *chunk) -{ - U64 result = 0; - switch (chunk->type) { - case LNK_Chunk_Null: break; - case LNK_Chunk_Leaf: { - result = chunk->u.leaf.size; - } break; - case LNK_Chunk_LeafArray: - case LNK_Chunk_List: { - Assert(!"TODO: list size"); - } break; - } - return result; -} - -internal U64 -lnk_chunk_list_get_node_count(LNK_Chunk *chunk) -{ - Assert(chunk->type == LNK_Chunk_List); - return chunk->u.list->count; -} - -internal void -lnk_chunk_pad_array_list_push(Arena *arena, Arena *scratch, LNK_ChunkPadArrayList *list, U64 cap, U64 align_off, U64 align_size) -{ - if (align_size > 0) { - if (list->last == 0 || list->last->data.count >= list->last->cap) { - LNK_ChunkPadArrayNode *node = push_array(scratch, LNK_ChunkPadArrayNode, 1); - node->cap = cap; - node->data.v = push_array_no_zero(arena, LNK_ChunkPad, cap); - - SLLQueuePush(list->first, list->last, node); - ++list->count; - } - - LNK_ChunkPadArray *last_array = &list->last->data; - LNK_ChunkPad *align = &last_array->v[last_array->count++]; - align->off = align_off; - align->size = align_size; - } -} - -internal -LNK_CHUNK_VISITOR_SIG(lnk_offset_chunks) -{ - LNK_OffsetChunks *offset_chunks = ud; - U64 offset = offset_chunks->offset; - LNK_ChunkLayout *layout = offset_chunks->layout; - - layout->chunk_off_array[chunk->ref.chunk_id] += offset; - - return 0; -} - -internal LNK_ChunkLayout -lnk_layout_from_chunk(Arena *arena, LNK_Chunk *root, U64 total_chunk_count) -{ - ProfBeginV("lnk_layout_from_chunk [total_chunk_count = %llu]", total_chunk_count); - Temp scratch = scratch_begin(&arena, 1); - - LNK_ChunkLayout layout = {0}; - layout.total_count = total_chunk_count; - layout.chunk_ptr_array = push_array_no_zero(arena, LNK_ChunkPtr, total_chunk_count); - layout.chunk_off_array = push_array_no_zero(arena, U64, total_chunk_count); - layout.chunk_file_size_array = push_array_no_zero(arena, U64, total_chunk_count); - layout.chunk_virt_size_array = push_array_no_zero(arena, U64, total_chunk_count); - - ProfBegin("Init Arrays"); - for (U64 i = 0; i < total_chunk_count; ++i) { - layout.chunk_ptr_array[i] = &g_null_chunk; - } -#if BUILD_DEBUG - MemorySet(layout.chunk_off_array, 0xff, total_chunk_count * sizeof(layout.chunk_off_array)); - MemorySet(layout.chunk_file_size_array, 0xff, total_chunk_count * sizeof(layout.chunk_file_size_array)); - MemorySet(layout.chunk_virt_size_array, 0xff, total_chunk_count * sizeof(layout.chunk_virt_size_array)); -#endif - ProfEnd(); - - // handle null chunk - layout.chunk_off_array[0] = 0; - layout.chunk_file_size_array[0] = 0; - layout.chunk_virt_size_array[0] = 0; - - // setup stack - struct Stack { - struct Stack *next; - LNK_ChunkArray chunk_array; - U64 ichunk; - }; - struct Stack *stack = push_array(scratch.arena, struct Stack, 1); - stack->chunk_array.count = 1; - stack->chunk_array.v = &root; - - U64 pad_cap = 4096; - LNK_ChunkPadArrayList pad_list = {0}; - - U64 cursor = 0; - - ProfBegin("Traverse chunks from root"); - for (; stack != 0; ) { - for (; stack->ichunk < stack->chunk_array.count; ) { - LNK_Chunk *chunk = stack->chunk_array.v[stack->ichunk++]; - - // skip discarded chunk - if (lnk_chunk_is_discarded(chunk)) { - continue; - } - - switch (chunk->type) { - case LNK_Chunk_Leaf: { - // push pad - if (chunk->u.leaf.size < chunk->min_size) { - U64 pad_size = chunk->min_size - chunk->u.leaf.size; - lnk_chunk_pad_array_list_push(arena, scratch.arena, &pad_list, pad_cap, cursor, pad_size); - cursor += pad_size; - } - - // push align - U64 align_size = AlignPadPow2(cursor, chunk->align); - lnk_chunk_pad_array_list_push(arena, scratch.arena, &pad_list, pad_cap, cursor, align_size); - cursor += align_size; - - // store id -> chunk - Assert(chunk->ref.chunk_id < total_chunk_count); - Assert(layout.chunk_ptr_array[chunk->ref.chunk_id] == &g_null_chunk); - layout.chunk_ptr_array[chunk->ref.chunk_id] = chunk; - - // store id -> offset - Assert(layout.chunk_off_array[chunk->ref.chunk_id] == max_U64); - layout.chunk_off_array[chunk->ref.chunk_id] = cursor; - - // store id -> file size - Assert(layout.chunk_file_size_array[chunk->ref.chunk_id] == max_U64); - layout.chunk_file_size_array[chunk->ref.chunk_id] = chunk->u.leaf.size; - - // store id -> virt size - Assert(layout.chunk_virt_size_array[chunk->ref.chunk_id] == max_U64); - layout.chunk_virt_size_array[chunk->ref.chunk_id] = chunk->u.leaf.size; - - // advance - cursor += chunk->u.leaf.size; - } break; - - case LNK_Chunk_LeafArray: { - // push align - U64 align_size = AlignPadPow2(cursor, chunk->align); - lnk_chunk_pad_array_list_push(arena, scratch.arena, &pad_list, pad_cap, cursor, align_size); - cursor += align_size; - - // store id -> chunk - Assert(chunk->ref.chunk_id < total_chunk_count); - Assert(layout.chunk_ptr_array[chunk->ref.chunk_id] == &g_null_chunk); - layout.chunk_ptr_array[chunk->ref.chunk_id] = chunk; - - // store id -> offset - Assert(layout.chunk_off_array[chunk->ref.chunk_id] == max_U64); - layout.chunk_off_array[chunk->ref.chunk_id] = cursor; - - // apply sort - if (chunk->sort_chunk) { - lnk_chunk_array_sort(*chunk->u.arr); - } - - // recurse into sub chunks - struct Stack *frame = push_array(scratch.arena, struct Stack, 1); - frame->chunk_array = *chunk->u.arr; - SLLStackPush(stack, frame); - } goto _continue; - - case LNK_Chunk_List: { - // push align - U64 align_size = AlignPadPow2(cursor, chunk->align); - lnk_chunk_pad_array_list_push(arena, scratch.arena, &pad_list, pad_cap, cursor, align_size); - cursor += align_size; - - // store id -> chunk - Assert(chunk->ref.chunk_id < total_chunk_count); - Assert(layout.chunk_ptr_array[chunk->ref.chunk_id] == &g_null_chunk); - layout.chunk_ptr_array[chunk->ref.chunk_id] = chunk; - - // store id -> offset - Assert(layout.chunk_off_array[chunk->ref.chunk_id] == max_U64); - layout.chunk_off_array[chunk->ref.chunk_id] = cursor; - - // list -> array - LNK_ChunkArray chunk_array = {0}; - chunk_array.v = push_array_no_zero(scratch.arena, LNK_ChunkPtr, chunk->u.list->count); - for (LNK_ChunkNode *cptr = chunk->u.list->first; cptr != 0; cptr = cptr->next) { - chunk_array.v[chunk_array.count++] = cptr->data; - } - - // apply sort - if (chunk->sort_chunk) { - lnk_chunk_array_sort(chunk_array); - } - - // recurse into sub chunks - struct Stack *frame = push_array(scratch.arena, struct Stack, 1); - frame->chunk_array = chunk_array; - SLLStackPush(stack, frame); - } goto _continue; - - case LNK_Chunk_Null: break; - } - } - - // terminate series - if (stack->next) { - // pop node chunk from stack - struct Stack *prev = stack->next; - - Assert(prev->ichunk > 0); - LNK_Chunk *chunk = prev->chunk_array.v[prev->ichunk-1]; - - U64 chunk_data_off = layout.chunk_off_array[chunk->ref.chunk_id]; - Assert(chunk_data_off != max_U64); - Assert(chunk_data_off <= cursor); - - U64 chunk_data_size = cursor - chunk_data_off; - - // store id -> virt size (no pad and align) - Assert(layout.chunk_virt_size_array[chunk->ref.chunk_id] == max_U64); - layout.chunk_virt_size_array[chunk->ref.chunk_id] = chunk_data_size; - - // push pad - if (chunk_data_size < chunk->min_size) { - U64 pad_size = chunk->min_size - chunk->u.leaf.size; - lnk_chunk_pad_array_list_push(arena, scratch.arena, &pad_list, pad_cap, chunk_data_off, pad_size); - - LNK_OffsetChunks ud = {0}; - ud.offset = pad_size; - ud.layout = &layout; - lnk_visit_chunks(0, chunk, lnk_offset_chunks, &ud); - } - - // align chunk end - U64 align_size = AlignPadPow2(cursor, chunk->align); - lnk_chunk_pad_array_list_push(arena, scratch.arena, &pad_list, pad_cap, cursor, align_size); - cursor += align_size; - - chunk_data_size = cursor - chunk_data_off; - - // store id -> file size (pad + align) - Assert(layout.chunk_file_size_array[chunk->ref.chunk_id] == max_U64); - layout.chunk_file_size_array[chunk->ref.chunk_id] = chunk_data_size; - } - - // move to next frame - SLLStackPop(stack); - - _continue:; - } - ProfEnd(); - - ProfBegin("Build Pad Array"); - layout.pad_array_count = 0; - layout.pad_array = push_array(arena, LNK_ChunkPadArray, pad_list.count); - for (LNK_ChunkPadArrayNode *node = pad_list.first; node != 0; node = node->next) { - layout.pad_array[layout.pad_array_count++] = node->data; - } - ProfEnd(); - - scratch_end(scratch); - ProfEnd(); - return layout; -} - -internal LNK_ChunkLayout -lnk_build_chunk_layout(Arena *arena, LNK_ChunkManager *cman) -{ - ProfBeginFunction(); - LNK_ChunkLayout layout = lnk_layout_from_chunk(arena, cman->root, cman->total_chunk_count); - ProfEnd(); - return layout; -} - -internal -THREAD_POOL_TASK_FUNC(lnk_fill_chunks_task) -{ - ProfBeginFunction(); - - LNK_ChunkLayoutSerializer *task = raw_task; - Rng1U64 range = task->ranges[task_id]; - LNK_ChunkLayout layout = task->layout; - String8 buffer = task->buffer; - - for (U64 chunk_idx = range.min; chunk_idx < range.max; ++chunk_idx) { - LNK_Chunk *chunk = layout.chunk_ptr_array[chunk_idx]; - - if (lnk_chunk_is_discarded(chunk)) { - continue; - } - - if (chunk->type == LNK_Chunk_Leaf) { - U64 off = layout.chunk_off_array[chunk->ref.chunk_id]; - Assert(off + chunk->u.leaf.size <= buffer.size); - U8 *buffer_ptr = buffer.str + off; - - if (chunk->u.leaf.str == 0) { - // zero out chunk bytes - MemorySet(buffer_ptr, 0, chunk->u.leaf.size); - } else { - // copy chunk bytes - MemoryCopy(buffer_ptr, chunk->u.leaf.str, chunk->u.leaf.size); - } - } - } - - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_fill_pads_task) -{ - ProfBeginFunction(); - - LNK_ChunkLayoutSerializer *task = raw_task; - Rng1U64 range = task->ranges[task_id]; - LNK_ChunkLayout layout = task->layout; - String8 buffer = task->buffer; - U8 fill_byte = task->fill_byte; - - for (U64 pad_array_idx = range.min; pad_array_idx < range.max; ++pad_array_idx) { - LNK_ChunkPadArray pad_array = layout.pad_array[pad_array_idx]; - for (U64 pad_idx = 0; pad_idx < pad_array.count; ++pad_idx) { - LNK_ChunkPad pad = pad_array.v[pad_idx]; - Assert(pad.off + pad.size <= buffer.size); - MemorySet(buffer.str + pad.off, fill_byte, pad.size); - } - } - - ProfEnd(); -} - -internal void -lnk_serialize_chunk_layout(TP_Context *tp, LNK_ChunkLayout layout, String8 buffer, U8 fill_byte) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); - - LNK_ChunkLayoutSerializer task; - task.layout = layout; - task.buffer = buffer; - task.fill_byte = fill_byte; - - ProfBeginV("Fill Chunks [Chunk Count %llu]", layout.total_count); - task.ranges = tp_divide_work(scratch.arena, layout.total_count, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, lnk_fill_chunks_task, &task); - ProfEnd(); - - ProfBeginV("Fill Pads [Array Count %llu]", layout.pad_array_count); - task.ranges = tp_divide_work(scratch.arena, layout.pad_array_count, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, lnk_fill_pads_task, &task); - ProfEnd(); - - scratch_end(scratch); - ProfEnd(); -} - -internal B32 -lnk_visit_chunks_(U64 sect_id, LNK_Chunk *chunk, LNK_ChunkVisitorSig *cb, void *ud) -{ - // visit chunk - B32 is_done = cb(sect_id, chunk, ud); - if (is_done) { - return is_done; - } - - switch (chunk->type) { - case LNK_Chunk_Null: - case LNK_Chunk_Leaf: { - // reached leaf - } break; - case LNK_Chunk_LeafArray: { - for (U64 idx = 0; idx < chunk->u.arr->count; idx += 1) { - is_done = lnk_visit_chunks_(sect_id, chunk->u.arr->v[idx], cb, ud); - if (is_done) { - break; - } - } - } break; - case LNK_Chunk_List: { - for (LNK_ChunkNode *i = chunk->u.list->first; i != 0; i = i->next) { - is_done = lnk_visit_chunks_(sect_id, i->data, cb, ud); - if (is_done) { - break; - } - } - } break; - } - - return is_done; -} - -internal void -lnk_visit_chunks(U64 sect_id, LNK_Chunk *chunk, LNK_ChunkVisitorSig *cb, void *ud) -{ - lnk_visit_chunks_(sect_id, chunk, cb, ud); -} - -LNK_CHUNK_VISITOR_SIG(lnk_save_chunk_ptr) -{ - LNK_Chunk **id_map = (LNK_Chunk **)ud; - if (!chunk->is_discarded) { - id_map[chunk->ref.chunk_id] = chunk; - } - return 0; -} - -internal LNK_ChunkPtr * -lnk_make_chunk_id_map(Arena *arena, LNK_ChunkManager *cman) -{ - LNK_ChunkPtr *map = push_array_no_zero(arena, LNK_ChunkPtr, cman->total_chunk_count); - lnk_visit_chunks(0, cman->root, lnk_save_chunk_ptr, map); - map[0] = &g_null_chunk; - return map; -} - -internal LNK_ChunkNode * -lnk_chunk_ptr_list_reserve(Arena *arena, LNK_ChunkList *list, U64 count) -{ - LNK_ChunkNode *arr = 0; - if (count) { - arr = push_array(arena, LNK_ChunkNode, count); - LNK_Chunk *chunk_arr = push_array(arena, LNK_Chunk, count); - for (U64 i = 0; i < count; i += 1) { - arr[i].data = &chunk_arr[i]; - SLLQueuePush(list->first, list->last, &arr[i]); - } - list->count += count; - } - return arr; -} - -internal String8Array -lnk_data_arr_from_chunk_ptr_list(Arena *arena, LNK_ChunkList list) -{ - String8Array arr = {0}; - arr.v = push_array(arena, String8, list.count); - for (LNK_ChunkNode *n = list.first; n != 0; n = n->next) { - LNK_ChunkPtr c = n->data; - Assert(c->type == LNK_Chunk_Leaf); - arr.v[arr.count] = c->u.leaf; - arr.count += 1; - } - return arr; -} - -internal String8Array * -lnk_data_arr_from_chunk_ptr_list_arr(Arena *arena, LNK_ChunkList *list_arr, U64 count) -{ - String8Array *result = push_array(arena, String8Array, count); - for (U64 i = 0; i < count; i += 1) { - result[i] = lnk_data_arr_from_chunk_ptr_list(arena, list_arr[i]); - } - return result; -} - -internal String8 -lnk_string_from_chunk_type(LNK_ChunkType type) -{ - switch (type) { - case LNK_Chunk_Null: return str8_lit("Null"); - case LNK_Chunk_Leaf: return str8_lit("Leaf"); - case LNK_Chunk_LeafArray: return str8_lit("LeafArray"); - case LNK_Chunk_List: return str8_lit("List"); - default: InvalidPath; - } - return str8_zero(); -} diff --git a/src/linker/lnk_chunk.h b/src/linker/lnk_chunk.h deleted file mode 100644 index ed53cf36..00000000 --- a/src/linker/lnk_chunk.h +++ /dev/null @@ -1,210 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#pragma once - -//////////////////////////////// - -#define LNK_DEBUG_CHUNKS 1 - -#if LNK_DEBUG_CHUNKS -# define lnk_chunk_set_debugf(a, c, f, ...) do { (c)->debug = push_str8f((a), f, __VA_ARGS__); } while(0) -#else -# define lnk_chunk_set_debugf(a, c, f, ...) (void)(c) -#endif - -//////////////////////////////// - -typedef struct LNK_ChunkRef -{ - U64 sect_id; - U64 chunk_id; -} LNK_ChunkRef; - -typedef enum -{ - LNK_Chunk_Null, - LNK_Chunk_Leaf, - LNK_Chunk_LeafArray, - LNK_Chunk_List, -} LNK_ChunkType; - -typedef struct LNK_Chunk -{ - LNK_ChunkRef ref; - LNK_ChunkType type; - U64 align; - U64 min_size; - B32 is_discarded; - B32 sort_chunk; - String8 sort_idx; - U64 input_idx; - COFF_SectionFlags flags; - struct LNK_Chunk *associate; - union { - String8 leaf; - struct LNK_ChunkList *list; - struct LNK_ChunkArray *arr; - } u; - struct LNK_Obj *obj; -#if LNK_DEBUG_CHUNKS - String8 debug; -#endif -} LNK_Chunk, * LNK_ChunkPtr; - -typedef struct LNK_ChunkNode -{ - struct LNK_ChunkNode *next; - LNK_ChunkPtr data; -} LNK_ChunkNode; - -typedef struct LNK_ChunkArray -{ - U64 count; - LNK_ChunkPtr *v; -} LNK_ChunkArray; - -typedef struct LNK_ChunkList -{ - U64 count; - LNK_ChunkNode *first; - LNK_ChunkNode *last; -} LNK_ChunkList; - -typedef enum LNK_ChunkOpType -{ - LNK_ChunkOp_Null, - LNK_ChunkOp_WriteString, - LNK_ChunkOp_Align, - LNK_ChunkOp_Begin, - LNK_ChunkOp_End, - LNK_ChunkOp_EndVirt, -} LNK_ChunkOpType; - -typedef struct LNK_ChunkOp -{ - struct LNK_ChunkOp *next; - LNK_ChunkOpType type; - union { - String8 string; - LNK_Chunk *chunk; - struct { - U64 val; - U64 x; - } align; - LNK_Chunk *leaf; - } u; -} LNK_ChunkOp; - -typedef struct LNK_ChunkOpList -{ - U64 total_chunk_count; - LNK_ChunkOp *first; - LNK_ChunkOp *last; -} LNK_ChunkOpList; - -typedef struct LNK_ChunkPad -{ - U64 off; - U64 size; -} LNK_ChunkPad; - -typedef struct LNK_ChunkPadArray -{ - U64 count; - LNK_ChunkPad *v; -} LNK_ChunkPadArray; -typedef struct LNK_ChunkPadArrayNode -{ - struct LNK_ChunkPadArrayNode *next; - U64 cap; - LNK_ChunkPadArray data; -} LNK_ChunkPadArrayNode; -typedef struct LNK_ChunkPadArrayList -{ - U64 count; - LNK_ChunkPadArrayNode *first; - LNK_ChunkPadArrayNode *last; -} LNK_ChunkPadArrayList; - -typedef struct LNK_ChunkLayout -{ - U64 total_count; - LNK_Chunk **chunk_ptr_array; // discarded chunks point to g_null_chunk - U64 *chunk_off_array; // discarded chunks have offset set to max_U64 - U64 *chunk_file_size_array; // discarded chunks have offset set to max_U64 - U64 *chunk_virt_size_array; // discarded chunks have offset set to max_U64 - U64 pad_array_count; - LNK_ChunkPadArray *pad_array; -} LNK_ChunkLayout; - -typedef struct LNK_ChunkManager -{ - LNK_Chunk *root; - U64 total_chunk_count; -} LNK_ChunkManager; - -//////////////////////////////// - -typedef struct -{ - U64 offset; - LNK_ChunkLayout *layout; -} LNK_OffsetChunks; - -typedef struct -{ - LNK_ChunkLayout layout; - String8 buffer; - U8 fill_byte; - Rng1U64 *ranges; -} LNK_ChunkLayoutSerializer; - -//////////////////////////////// - -read_only global LNK_Chunk g_null_chunk = { 0, 0, /* is_discarded: */ 1 }; -read_only global LNK_Chunk *g_null_chunk_ptr = &g_null_chunk; - -//////////////////////////////// - -internal LNK_ChunkRef lnk_chunk_ref(U64 sect_id, U64 chunk_id); -internal B32 lnk_chunk_ref_is_equal(LNK_ChunkRef a, LNK_ChunkRef b); - -internal LNK_ChunkNode * lnk_chunk_list_push(Arena *arena, LNK_ChunkList *list, LNK_Chunk *chunk); -internal void lnk_chunk_list_concat_in_place(LNK_ChunkList *list, LNK_ChunkList *to_concat); -internal void lnk_chunk_list_concat_in_place_arr(LNK_ChunkList *list, LNK_ChunkList *arr, U64 count); -internal LNK_ChunkList ** lnk_make_chunk_list_arr_arr(Arena *arena, U64 slot_count, U64 per_count); -internal void lnk_chunk_array_sort(LNK_ChunkArray arr); - -internal LNK_ChunkManager * lnk_chunk_manager_alloc(Arena *arena, U64 id, U64 align); -internal LNK_Chunk * lnk_chunk_push(Arena *arena, LNK_ChunkManager *cman, LNK_Chunk *parent, String8 sort_index); -internal LNK_Chunk * lnk_chunk_push_leaf(Arena *arena, LNK_ChunkManager *cman, LNK_Chunk *parent, String8 sort_index, void *raw_ptr, U64 raw_size); -internal LNK_Chunk * lnk_chunk_push_list(Arena *arena, LNK_ChunkManager *cman, LNK_Chunk *parent, String8 sort_index); -internal LNK_ChunkNode * lnk_chunk_deep_copy(Arena *arena, LNK_Chunk *chunk); -internal LNK_ChunkNode * lnk_merge_chunks(Arena *arena, LNK_ChunkManager *dst_cman, LNK_Chunk *dst, LNK_Chunk *src, U64 *id_map_out, U64 id_map_max); -internal void lnk_chunk_associate(LNK_Chunk *head, LNK_Chunk *associate); -internal B32 lnk_chunk_is_discarded(LNK_Chunk *chunk); -internal U64 lnk_chunk_get_size(LNK_Chunk *chunk); -internal U64 lnk_chunk_list_get_node_count(LNK_Chunk *chunk); - -internal void lnk_chunk_op_list_push_node(LNK_ChunkOpList *list, LNK_ChunkOp *op); - -internal LNK_ChunkOp * lnk_push_chunk_op_begin(Arena *arena, U64 chunk_id); -internal LNK_ChunkOp * lnk_push_chunk_op_end_virt(Arena *arena); -internal LNK_ChunkOp * lnk_push_chunk_op_end_file(Arena *arena); -internal LNK_ChunkOp * lnk_push_chunk_op_align(Arena *arena, U64 align, U64 val); -internal LNK_ChunkOp * lnk_push_chunk_op_write(Arena *arena, String8 string); - -internal LNK_ChunkLayout lnk_layout_from_chunk(Arena *arena, LNK_Chunk *root, U64 total_chunk_count); -internal LNK_ChunkLayout lnk_build_chunk_layout(Arena *arena, LNK_ChunkManager *cman); - -#define LNK_CHUNK_VISITOR_SIG(name) B32 name(U64 sect_id, LNK_Chunk *chunk, void *ud) -typedef LNK_CHUNK_VISITOR_SIG(LNK_ChunkVisitorSig); -internal void lnk_visit_chunks(U64 sect_id, LNK_Chunk *root, LNK_ChunkVisitorSig *cb, void *ud); - -internal LNK_ChunkNode * lnk_chunk_ptr_list_reserve(Arena *arena, LNK_ChunkList *list, U64 count); -internal String8Array lnk_data_arr_from_chunk_ptr_list(Arena *arena, LNK_ChunkList list); -internal String8Array * lnk_data_arr_from_chunk_ptr_list_arr(Arena *arena, LNK_ChunkList *list_arr, U64 count); - -internal String8 lnk_string_from_chunk_type(LNK_ChunkType type); - diff --git a/src/linker/lnk_cmd_line.c b/src/linker/lnk_cmd_line.c index ee7e76bc..ac179a42 100644 --- a/src/linker/lnk_cmd_line.c +++ b/src/linker/lnk_cmd_line.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal String8List diff --git a/src/linker/lnk_cmd_line.h b/src/linker/lnk_cmd_line.h index ea8d3052..1cc65781 100644 --- a/src/linker/lnk_cmd_line.h +++ b/src/linker/lnk_cmd_line.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 956ebf5f..a6e76e38 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) //////////////////////////////// @@ -396,7 +396,11 @@ lnk_get_base_addr(LNK_Config *config) if (config->file_characteristics & PE_ImageFileCharacteristic_FILE_DLL) { base_addr = coff_default_dll_base_from_machine(config->machine); } else if (config->file_characteristics & PE_ImageFileCharacteristic_EXE) { - base_addr = coff_default_exe_base_from_machine(config->machine); + if ((~config->file_characteristics & PE_ImageFileCharacteristic_LARGE_ADDRESS_AWARE) && config->machine == COFF_MachineType_X64) { + base_addr = coff_default_exe_base_from_machine(COFF_MachineType_X86); + } else { + base_addr = coff_default_exe_base_from_machine(config->machine); + } } else { lnk_error(LNK_Error_Cmdl, "image type is not specified."); } @@ -2002,6 +2006,11 @@ lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line) config->opt_lbr = LNK_SwitchState_Yes; } } + + // warn about unused large address aware flag + if ((~config->file_characteristics & PE_ImageFileCharacteristic_LARGE_ADDRESS_AWARE) && (config->file_characteristics & PE_ImageFileCharacteristic_FILE_DLL)) { + lnk_error(LNK_Warning_NoLargeAddressAwarenessForDll, "/LARGEADDRESSAWARE:NO has no effect when specified together with /DLL"); + } // error check base address flags if (config->flags & LNK_ConfigFlag_Fixed) { diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index 3d06b062..ad0160a3 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/lnk_debug_helper.c b/src/linker/lnk_debug_helper.c new file mode 100644 index 00000000..3e964c76 --- /dev/null +++ b/src/linker/lnk_debug_helper.c @@ -0,0 +1,39 @@ +// Copyright (c) 2025 Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal String8 +lnk_make_linker_compile3(Arena *arena, COFF_MachineType machine) +{ + String8 comp3_data = cv_make_comp3(arena, + 0, + CV_Language_LINK, + cv_arch_from_coff_machine(machine), + /* ver_fe_major */ 0, + /* ver_fe_minor */ 0, + /* ver_fe_build */ 0, + /* ver_feqfe */ 0, + /* ver_major */ 14, + /* ver_minor */ 36, + /* ver_build */ 32537, + /* ver_qfe */ 0, + str8_lit(BUILD_TITLE)); + return comp3_data; +} + +internal String8 +lnk_make_debug_s(Arena *arena, CV_SymbolList symbol_list) +{ + Temp scratch = scratch_begin(&arena, 1); + + CV_DebugS debug_s = {0}; + String8List *symbol_list_ptr = cv_sub_section_ptr_from_debug_s(&debug_s, CV_C13SubSectionKind_Symbols); + *symbol_list_ptr = cv_data_from_symbol_list(scratch.arena, symbol_list, CV_SymbolAlign); + + String8List debug_s_data_list = cv_data_c13_from_debug_s(scratch.arena, &debug_s, 1); + String8 debug_s_data = str8_list_join(arena, &debug_s_data_list, 0); + + scratch_end(scratch); + return debug_s_data; +} + + diff --git a/src/linker/lnk_debug_helper.h b/src/linker/lnk_debug_helper.h new file mode 100644 index 00000000..a0627d17 --- /dev/null +++ b/src/linker/lnk_debug_helper.h @@ -0,0 +1,8 @@ +// Copyright (c) 2025 Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#pragma once + +internal String8 lnk_make_linker_compile3(Arena *arena, COFF_MachineType machine); +internal String8 lnk_make_debug_s(Arena *arena, CV_SymbolList symbol_list); + diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index 7e857d20..708a9e93 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) //////////////////////////////// @@ -9,16 +9,13 @@ THREAD_POOL_TASK_FUNC(lnk_parse_debug_s_task) U64 obj_idx = task_id; LNK_ParseDebugSTaskData *task = raw_task; - LNK_Obj *obj = task->obj_arr[obj_idx]; - LNK_ChunkList sect_list = task->sect_list_arr[obj_idx]; - CV_DebugS *debug_s = &task->debug_s_arr[obj_idx]; - - for (LNK_ChunkNode *node = sect_list.first; node != 0; node = node->next) { - LNK_ChunkPtr chunk = node->data; - Assert(chunk->type == LNK_Chunk_Leaf); + LNK_Obj *obj = task->obj_arr[obj_idx]; + String8List sect_list = task->sect_list_arr[obj_idx]; + CV_DebugS *debug_s = &task->debug_s_arr[obj_idx]; + for (String8Node *node = sect_list.first; node != 0; node = node->next) { // parse & merge sub sections - CV_DebugS ds = cv_parse_debug_s(arena, chunk->u.leaf); + CV_DebugS ds = cv_parse_debug_s(arena, node->string); cv_debug_s_concat_in_place(debug_s, &ds); // make sure there is one string table @@ -38,7 +35,7 @@ THREAD_POOL_TASK_FUNC(lnk_parse_debug_s_task) } internal CV_DebugS * -lnk_parse_debug_s_sections(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, LNK_ChunkList *sect_list_arr) +lnk_parse_debug_s_sections(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8List *sect_list_arr) { ProfBeginFunction(); @@ -113,12 +110,12 @@ THREAD_POOL_TASK_FUNC(lnk_parse_debug_t_task) } internal CV_DebugT * -lnk_parse_debug_t_sections(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, LNK_ChunkList *debug_t_list_arr) +lnk_parse_debug_t_sections(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8List *debug_t_list_arr) { ProfBeginFunction(); // list -> array - String8Array *data_arr_arr = lnk_data_arr_from_chunk_ptr_list_arr(arena->v[0], debug_t_list_arr, obj_count); + String8Array *data_arr_arr = str8_array_from_list_arr(arena->v[0], debug_t_list_arr, obj_count); // validate signatures LNK_CheckDebugTSigTaskData check_sig; @@ -376,26 +373,26 @@ lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, String8List lib_dir ProfBegin("Collect CodeView"); // TODO: fix memory leak, we need a Temp wrapper for pool arena B32 collect_discarded_flag = 0; - LNK_ChunkList *debug_s_list_arr = lnk_collect_obj_chunks(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug"), str8_lit("S"), collect_discarded_flag); - LNK_ChunkList *debug_p_list_arr = lnk_collect_obj_chunks(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug"), str8_lit("P"), collect_discarded_flag); - LNK_ChunkList *debug_t_list_arr = lnk_collect_obj_chunks(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug"), str8_lit("T"), collect_discarded_flag); + String8List *debug_s_list_arr = lnk_collect_obj_chunks_parallel(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug"), str8_lit("S"), collect_discarded_flag); + String8List *debug_p_list_arr = lnk_collect_obj_chunks_parallel(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug"), str8_lit("P"), collect_discarded_flag); + String8List *debug_t_list_arr = lnk_collect_obj_chunks_parallel(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug"), str8_lit("T"), collect_discarded_flag); ProfEnd(); if (lnk_get_log_status(LNK_Log_Debug) || PROFILE_TELEMETRY) { U64 total_debug_s_size = 0, total_debug_t_size = 0, total_debug_p_size = 0; for (U64 obj_idx = 0; obj_idx < obj_count; ++obj_idx) { - for (LNK_ChunkNode *chunk = debug_s_list_arr[obj_idx].first; chunk != 0; chunk = chunk->next) { - total_debug_s_size += chunk->data->u.leaf.size; + for (String8Node *chunk = debug_s_list_arr[obj_idx].first; chunk != 0; chunk = chunk->next) { + total_debug_s_size += chunk->string.size; } - for (LNK_ChunkNode *chunk = debug_t_list_arr[obj_idx].first; chunk != 0; chunk = chunk->next) { - total_debug_t_size += chunk->data->u.leaf.size; + for (String8Node *chunk = debug_t_list_arr[obj_idx].first; chunk != 0; chunk = chunk->next) { + total_debug_t_size += chunk->string.size; } - for (LNK_ChunkNode *chunk = debug_p_list_arr[obj_idx].first; chunk != 0; chunk = chunk->next) { - total_debug_p_size += chunk->data->u.leaf.size; + for (String8Node *chunk = debug_p_list_arr[obj_idx].first; chunk != 0; chunk = chunk->next) { + total_debug_p_size += chunk->string.size; } } - ProfNoteV("Total .debug$S Input Size: %M", total_debug_s_size); + ProfNoteV("Total .debug$S Input Size: %M", total_debug_s_size); ProfNoteV("Total .debug$T Input Size: %M", total_debug_t_size); ProfNoteV("Total .debug$P Input Size: %M", total_debug_p_size); @@ -416,10 +413,7 @@ lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, String8List lib_dir str8_serial_push_string(scratch.arena, &srl, raw_null_leaf); String8 null_debug_data = str8_serial_end(tp_arena->v[0], &srl); - LNK_Chunk *null_chunk = push_array(tp_arena->v[0], LNK_Chunk, 1); - null_chunk->type = LNK_Chunk_Leaf; - null_chunk->u.leaf = null_debug_data; - lnk_chunk_list_push(tp_arena->v[0], &debug_t_list_arr[0], null_chunk); + str8_list_push(tp_arena->v[0], &debug_t_list_arr[0], null_debug_data); } ProfBegin("Parse CodeView"); @@ -2971,55 +2965,43 @@ lnk_hash_cv_symbol_ptr_arr(TP_Context *tp, Arena *arena, CV_SymbolPtrArray arr) internal THREAD_POOL_TASK_FUNC(lnk_push_dbi_sec_contrib_task) { - U64 obj_idx = task_id; - LNK_PushDbiSecContribTaskData *task = raw_task; - LNK_Section **sect_id_map = task->sect_id_map; - PDB_DbiModule *mod = task->mod_arr[obj_idx]; - LNK_Obj *obj = &task->obj_arr[obj_idx]; - PDB_DbiSectionContribList *dst_list = &task->sc_list[obj_idx]; - String8 image_data = task->image_data; - // TODO: use chunked lists for SC + // TODO: put back unused sc nodes + // TODO: compute CRC for relocations - // TODO: put back unused nodes - PDB_DbiSectionContribNode *sc_arr = push_array_no_zero(arena, PDB_DbiSectionContribNode, obj->sect_count); - U64 sc_count = 0; + U64 obj_idx = task_id; + LNK_PushDbiSecContribTaskData *task = raw_task; + PDB_DbiModule *mod = task->mod_arr[obj_idx]; + LNK_Obj *obj = &task->obj_arr[obj_idx]; + + COFF_SectionHeader *obj_section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + PDB_DbiSectionContribNode *sc_arr = push_array_no_zero(arena, PDB_DbiSectionContribNode, obj->header.section_count_no_null); + U64 sc_count = 0; - for (U64 chunk_idx = 0; chunk_idx < obj->sect_count; ++chunk_idx) { - LNK_Chunk *chunk = obj->chunk_arr[chunk_idx]; - - if (!chunk || lnk_chunk_is_discarded(chunk)) { + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *obj_sect_header = &obj_section_table[sect_idx]; + + if (obj_sect_header->flags & COFF_SectionFlag_LnkRemove) { continue; } - LNK_Section *sect = lnk_sect_from_chunk_ref(task->sect_id_map, chunk->ref); - if (!sect->has_layout) { - continue; - } - - // query chunk info - ISectOff chunk_sc = lnk_sc_from_chunk_ref (sect_id_map, chunk->ref); - String8 chunk_data = lnk_data_from_chunk_ref (sect_id_map, image_data, chunk->ref); - LNK_Section *chunk_sect = lnk_sect_from_chunk_ref (sect_id_map, chunk->ref); - U64 chunk_size = lnk_file_size_from_chunk_ref(sect_id_map, chunk->ref); - - // compute chunk CRC - U32 data_crc = update_crc32(0, chunk_data.str, chunk_data.size); - U32 reloc_crc = 0; // TODO: compute CRC for relocations block + U64 sect_number = rng_1u64_array_bsearch(task->image_section_file_ranges, obj_sect_header->foff); + String8 sect_data = str8_substr(task->image_data, rng_1u64(obj_sect_header->foff, obj_sect_header->foff + obj_sect_header->fsize)); + U32 sect_off = obj_sect_header->foff - task->image_section_file_ranges.v[sect_number].min; // fill out SC PDB_DbiSectionContribNode *sc = sc_arr + sc_count++; - sc->data.base.sec = safe_cast_u16(chunk_sc.isect); + sc->data.base.sec = (U16)sect_number; sc->data.base.pad0 = 0; - sc->data.base.sec_off = chunk_sc.off; - sc->data.base.size = safe_cast_u32(chunk_size); - sc->data.base.flags = chunk_sect->flags; + sc->data.base.sec_off = sect_off; + sc->data.base.size = obj_sect_header->foff; + sc->data.base.flags = obj_sect_header->flags; sc->data.base.mod = mod->imod; sc->data.base.pad1 = 0; - sc->data.data_crc = data_crc; - sc->data.reloc_crc = reloc_crc; + sc->data.data_crc = update_crc32(0, sect_data.str, sect_data.size); + sc->data.reloc_crc = 0; - dbi_sec_contrib_list_push_node(dst_list, sc); + dbi_sec_contrib_list_push_node(&task->sc_list[obj_idx], sc); } // Mod1::fUpdateSecContrib @@ -3040,36 +3022,33 @@ THREAD_POOL_TASK_FUNC(lnk_build_pdb_public_symbols_defined_task) { ProfBeginFunction(); - LNK_BuildPublicSymbolsTask *task = raw_task; - LNK_Section **sect_id_map = task->sect_id_map; - CV_SymbolList *pub_list = &task->pub_list_arr[task_id]; - LNK_SymbolHashTrieChunkList chunk_list = task->chunk_lists[task_id]; + LNK_BuildPublicSymbolsTask *task = raw_task; + CV_SymbolList *pub_list = &task->pub_list_arr[task_id]; + LNK_SymbolHashTrieChunkList chunk_list = task->chunk_lists[task_id]; for (LNK_SymbolHashTrieChunk *chunk = chunk_list.first; chunk != 0; chunk = chunk->next) { CV_SymbolNode *nodes = push_array_no_zero(arena, CV_SymbolNode, chunk->count); for (U64 i = 0, node_idx = 0; i < chunk->count; ++i) { LNK_Symbol *symbol = chunk->v[i].symbol; + Assert(symbol->type == LNK_Symbol_Defined); - Assert(LNK_Symbol_IsDefined(symbol->type)); - - LNK_DefinedSymbol *defined_symbol = &symbol->u.defined; - if (defined_symbol->value_type == LNK_DefinedSymbolValue_Chunk) { + COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { CV_Pub32Flags flags = 0; - if (defined_symbol->flags & LNK_DefinedSymbolFlag_IsFunc || defined_symbol->flags & LNK_DefinedSymbolFlag_IsThunk) { + if (COFF_SymbolType_IsFunc(parsed_symbol.type)) { flags |= CV_Pub32Flag_Function; } - U64 symbol_off = lnk_sect_off_from_symbol(sect_id_map, symbol); - U64 symbol_isect = lnk_isect_from_symbol(sect_id_map, symbol); - - U32 symbol_off32 = safe_cast_u32(symbol_off); - U16 symbol_isect16 = safe_cast_u16(symbol_isect); + ISectOff sc = lnk_sc_from_symbol(symbol); + U16 symbol_isect16 = safe_cast_u16(sc.isect); + U32 symbol_off32 = safe_cast_u32(sc.off); nodes[node_idx].data = cv_make_pub32(arena, flags, symbol_off32, symbol_isect16, symbol->name); cv_symbol_list_push_node(pub_list, &nodes[node_idx]); - ++node_idx; + node_idx += 1; } } } @@ -3098,7 +3077,6 @@ internal void lnk_build_pdb_public_symbols(TP_Context *tp, TP_Arena *arena, LNK_SymbolTable *symtab, - LNK_Section **sect_id_map, PDB_PsiContext *psi) { ProfBeginFunction(); @@ -3106,9 +3084,8 @@ lnk_build_pdb_public_symbols(TP_Context *tp, ProfBegin("Defined"); LNK_BuildPublicSymbolsTask task = {0}; - task.sect_id_map = sect_id_map; task.pub_list_arr = push_array(scratch.arena, CV_SymbolList, tp->worker_count); - task.chunk_lists = symtab->chunk_lists[LNK_SymbolScopeIndex_Defined]; + task.chunk_lists = symtab->chunk_lists[LNK_SymbolScope_Defined]; tp_for_parallel(tp, arena, tp->worker_count, lnk_build_pdb_public_symbols_defined_task, &task); ProfEnd(); @@ -3126,16 +3103,8 @@ internal String8List lnk_build_pdb(TP_Context *tp, TP_Arena *tp_arena, String8 image_data, - Guid guid, - COFF_MachineType machine, - COFF_TimeStamp time_stamp, - U32 age, - U64 page_size, - String8 pdb_name, - String8List lib_dir_list, - String8List natvis_list, + LNK_Config *config, LNK_SymbolTable *symtab, - LNK_Section **sect_id_map, U64 obj_count, LNK_Obj *obj_arr, CV_DebugS *debug_s_arr, @@ -3147,8 +3116,12 @@ lnk_build_pdb(TP_Context *tp, ProfBegin("PDB"); Temp scratch = scratch_begin(tp_arena->v, tp_arena->count); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, image_data); + COFF_SectionHeader **image_section_table = coff_section_table_from_data(scratch.arena, image_data, pe.section_table_range); + U64 image_section_table_count = pe.section_count+1; + ProfBegin("Setup PDB Context"); - PDB_Context *pdb = pdb_alloc(page_size, machine, time_stamp, age, guid); + PDB_Context *pdb = pdb_alloc(config->page_size, config->machine, config->time_stamp, config->age, config->guid); ProfEnd(); // move patched type data @@ -3284,27 +3257,29 @@ lnk_build_pdb(TP_Context *tp, ProfBegin("Build DBI Section Headers"); { - LNK_Symbol *coff_sect_array_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScopeFlag_Internal, LNK_COFF_SECT_HEADER_ARRAY_SYMBOL_NAME); - LNK_Chunk *coff_sect_chunk = lnk_chunk_from_symbol(coff_sect_array_symbol); - String8 coff_sect_chunk_data = lnk_data_from_chunk_ref(sect_id_map, image_data, coff_sect_chunk->ref); - U64 coff_sect_count = coff_sect_chunk_data.size / sizeof(COFF_SectionHeader); - COFF_SectionHeader *coff_sect_ptr = (COFF_SectionHeader*)coff_sect_chunk_data.str; - for (COFF_SectionHeader *hdr_ptr = &coff_sect_ptr[0], *opl = hdr_ptr + coff_sect_count; - hdr_ptr < opl; - ++hdr_ptr) { - dbi_push_section(pdb->dbi, hdr_ptr); + for (U64 sect_idx = 1; sect_idx < image_section_table_count; sect_idx += 1) { + dbi_push_section(pdb->dbi, image_section_table[sect_idx]); } } ProfEnd(); ProfBegin("Build Section Contrib Map"); { + + Rng1U64Array image_section_file_ranges = {0}; + image_section_file_ranges.count = image_section_table_count; + image_section_file_ranges.v = push_array(scratch.arena, Rng1U64, image_section_table_count); + for (U64 i = 0; i < image_section_table_count; i += 1) { + COFF_SectionHeader *sect_header = image_section_table[i]; + image_section_file_ranges.v[i] = rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize); + } + LNK_PushDbiSecContribTaskData task = {0}; task.obj_arr = obj_arr; - task.sect_id_map = sect_id_map; task.mod_arr = mod_arr; task.sc_list = push_array(scratch.arena, PDB_DbiSectionContribList, obj_count); task.image_data = image_data; + task.image_section_file_ranges = image_section_file_ranges; tp_for_parallel(tp, tp_arena, obj_count, lnk_push_dbi_sec_contrib_task, &task); dbi_sec_list_concat_arr(&pdb->dbi->sec_contrib_list, obj_count, task.sc_list); @@ -3313,7 +3288,7 @@ lnk_build_pdb(TP_Context *tp, ProfBegin("Build NatVis"); { - String8Array natvis_file_path_arr = str8_array_from_list(scratch.arena, &natvis_list); + String8Array natvis_file_path_arr = str8_array_from_list(scratch.arena, &config->natvis_list); String8Array natvis_file_data_arr = lnk_read_data_from_file_path_parallel(tp, scratch.arena, natvis_file_path_arr); for (U64 i = 0; i < natvis_file_data_arr.count; ++i) { @@ -3341,7 +3316,7 @@ lnk_build_pdb(TP_Context *tp, } ProfEnd(); - lnk_build_pdb_public_symbols(tp, tp_arena, symtab, sect_id_map, pdb->psi); + lnk_build_pdb_public_symbols(tp, tp_arena, symtab, pdb->psi); pdb_build(tp, tp_arena, pdb, string_ht); @@ -4439,16 +4414,16 @@ lnk_type_from_itype(CV_TypeIndex itype, Rng1U64 tpi_itype_range, RDIB_Type **tpi } internal U64 -lnk_virt_off_from_sect_off(U64 sect_idx, U64 sect_off, LNK_SectionArray image_sects, LNK_Obj *obj, CV_SymKind symbol_kind, U64 symbol_offset) +lnk_voff_from_sect_off(U64 sect_idx, U64 sect_off, LNK_SectionArray image_sects, LNK_Obj *obj, CV_SymKind symbol_kind, U64 symbol_offset) { - U64 virt_off = 0; + U64 voff = 0; if (sect_idx < image_sects.count) { - virt_off = image_sects.v[sect_idx].virt_off + sect_off; + voff = image_sects.v[sect_idx]->voff + sect_off; } else { lnk_error_obj(LNK_Error_CvIllSymbolData, obj, "Out of bounds section index 0x%x in S_%S @ 0x%llx.", sect_idx, cv_string_from_sym_kind(symbol_kind), symbol_offset); } - return virt_off; + return voff; } internal Rng1U64 @@ -4456,8 +4431,8 @@ lnk_virt_range_from_sect_off_size(U64 sect_idx, U64 sect_off, U64 size, LNK_Sect { Rng1U64 virt_range = {0}; if (sect_idx < image_sects.count) { - U64 virt_off = image_sects.v[sect_idx].virt_off + sect_off; - virt_range = rng_1u64(virt_off, virt_off + size); + U64 voff = image_sects.v[sect_idx]->voff + sect_off; + virt_range = rng_1u64(voff, voff + size); } else { lnk_error_obj(LNK_Error_CvIllSymbolData, obj, "Out of bounds section index 0x%x in S_%S @ 0x%llx.", sect_idx, cv_string_from_sym_kind(symbol_kind), symbol_offset); @@ -4589,8 +4564,8 @@ THREAD_POOL_TASK_FUNC(lnk_convert_line_tables_to_rdi_task) lnk_error_obj(LNK_Warning_IllData, obj, "Out of bounds section index (%u) in $$LINES; skip line info for \"%S\".", parsed_lines.sec_idx, file_path); continue; } - LNK_Section *sect = &task->image_sects.v[parsed_lines.sec_idx]; - CV_LineArray lines = cv_c13_line_array_from_data(arena, raw_lines, sect->virt_off, parsed_lines); + LNK_Section *sect = task->image_sects.v[parsed_lines.sec_idx]; + CV_LineArray lines = cv_c13_line_array_from_data(arena, raw_lines, sect->voff, parsed_lines); // find source file for this line table String8 normal_path = lnk_normalize_src_file_path(scratch.arena, file_path); @@ -4734,7 +4709,7 @@ THREAD_POOL_TASK_FUNC(lnk_convert_symbols_to_rdi_task) String8 name = str8_cstring_capped(data32 + 1, symbol.data.str + symbol.data.size); RDIB_Type *type = lnk_type_from_itype(data32->itype, task->tpi_itype_range, task->tpi_itype_map, obj, symbol.kind, symbol.offset); RDIB_Type *container_type = lnk_find_container_type(name, task->tpi_itype_range, task->udt_name_buckets, task->udt_name_buckets_cap, task->tpi_itype_map); - U64 data_voff = lnk_virt_off_from_sect_off(data32->sec, data32->off, task->image_sects, obj, symbol.kind, symbol.offset); + U64 data_voff = lnk_voff_from_sect_off(data32->sec, data32->off, task->image_sects, obj, symbol.kind, symbol.offset); B32 is_comp_gen = symbol.kind == CV_SymKind_LDATA32 && name.size == 0 && type == 0; if (!is_comp_gen) { @@ -5330,32 +5305,26 @@ THREAD_POOL_TASK_FUNC(lnk_collect_obj_virtual_ranges_task) RDIB_Unit *dst = &task->units[unit_chunk_idx].v[local_unit_idx]; dst->virt_range_count = 0; - dst->virt_ranges = push_array_no_zero(arena, Rng1U64, obj->sect_count); + dst->virt_ranges = push_array_no_zero(arena, Rng1U64, obj->header.section_count_no_null); - for (U64 chunk_idx = 0; chunk_idx < obj->sect_count; ++chunk_idx) { - LNK_Chunk *chunk = obj->chunk_arr[chunk_idx]; - if (!chunk || lnk_chunk_is_discarded(chunk)) { + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + + if (sect_header->flags & COFF_SectionFlag_LnkRemove) { + continue; + } + if (sect_header->vsize == 0) { continue; } - LNK_Section *sect = lnk_sect_from_chunk_ref(task->sect_id_map, chunk->ref); - if (!sect->has_layout) { - continue; - } - - U64 chunk_voff = lnk_virt_off_from_chunk_ref(task->sect_id_map, chunk->ref); - U64 chunk_size = lnk_virt_size_from_chunk_ref(task->sect_id_map, chunk->ref); - - if (chunk_size == 0) { - continue; - } - - dst->virt_ranges[dst->virt_range_count] = rng_1u64(chunk_voff, chunk_voff + chunk_size); + dst->virt_ranges[dst->virt_range_count] = rng_1u64(sect_header->voff, sect_header->voff + sect_header->vsize); ++dst->virt_range_count; } // free unused memory - arena_pop(arena, sizeof(dst->virt_ranges[0]) * (obj->sect_count - dst->virt_range_count)); + arena_pop(arena, sizeof(dst->virt_ranges[0]) * (obj->header.section_count_no_null - dst->virt_range_count)); ProfEnd(); } @@ -5368,7 +5337,6 @@ lnk_build_rad_debug_info(TP_Context *tp, String8 image_name, String8 image_data, LNK_SectionArray image_sects, - LNK_Section **sect_id_map, U64 obj_count, LNK_Obj *obj_arr, CV_DebugS *debug_s_arr, @@ -5386,10 +5354,8 @@ lnk_build_rad_debug_info(TP_Context *tp, { U64 image_vsize = 0; for (U64 sect_idx = 0; sect_idx < image_sects.count; sect_idx++) { - LNK_Section *sect = &image_sects.v[sect_idx]; - U64 sect_virt_size = lnk_virt_size_from_chunk_ref(sect_id_map, sect->root->ref); - U64 sect_voff_max = sect->virt_off + sect_virt_size; - image_vsize = Max(image_vsize, sect_voff_max); + LNK_Section *sect = image_sects.v[sect_idx]; + image_vsize = Max(image_vsize, sect->voff + sect->vsize); } input.top_level_info.arch = arch; @@ -5405,18 +5371,15 @@ lnk_build_rad_debug_info(TP_Context *tp, input.sect_count = image_sects.count; input.sections = push_array(scratch.arena, RDIB_BinarySection, image_sects.count); for (U64 sect_idx = 0; sect_idx < image_sects.count; ++sect_idx) { - LNK_Section *src = &image_sects.v[sect_idx]; + LNK_Section *src = image_sects.v[sect_idx]; RDIB_BinarySection *dst = &input.sections[sect_idx]; - U64 sect_virt_size = lnk_virt_size_from_chunk_ref(sect_id_map, src->root->ref); - U64 sect_file_size = lnk_file_size_from_chunk_ref(sect_id_map, src->root->ref); - dst->name = push_str8_copy(scratch.arena, src->name); dst->flags = rdi_binary_section_flags_from_coff_section_flags(src->flags); - dst->voff_first = src->virt_off; - dst->voff_opl = src->virt_off + sect_virt_size; - dst->foff_first = src->file_off; - dst->foff_opl = src->file_off + sect_file_size; + dst->voff_first = src->voff; + dst->voff_opl = src->voff + src->vsize; + dst->foff_first = src->foff; + dst->foff_opl = src->foff + src->fsize; } } ProfEnd(); @@ -5551,7 +5514,6 @@ lnk_build_rad_debug_info(TP_Context *tp, { LNK_ConvertUnitToRDITask task = {0}; task.image_sects = image_sects; - task.sect_id_map = sect_id_map; task.obj_arr = obj_arr; task.debug_s_arr = debug_s_arr; task.ipi = types[CV_TypeIndexSource_IPI]; diff --git a/src/linker/lnk_debug_info.h b/src/linker/lnk_debug_info.h index cca87cff..7188830e 100644 --- a/src/linker/lnk_debug_info.h +++ b/src/linker/lnk_debug_info.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once @@ -122,9 +122,9 @@ typedef union typedef struct { - LNK_Obj **obj_arr; - LNK_ChunkList *sect_list_arr; - CV_DebugS *debug_s_arr; + LNK_Obj **obj_arr; + String8List *sect_list_arr; + CV_DebugS *debug_s_arr; } LNK_ParseDebugSTaskData; typedef struct @@ -313,10 +313,10 @@ typedef struct typedef struct { LNK_Obj *obj_arr; - LNK_Section **sect_id_map; PDB_DbiModule **mod_arr; PDB_DbiSectionContribList *sc_list; String8 image_data; + Rng1U64Array image_section_file_ranges; } LNK_PushDbiSecContribTaskData; typedef struct @@ -334,7 +334,6 @@ typedef struct typedef struct { - LNK_Section **sect_id_map; LNK_SymbolHashTrieChunkList *chunk_lists; CV_SymbolList *pub_list_arr; @@ -454,7 +453,6 @@ typedef struct typedef struct { LNK_SectionArray image_sects; - LNK_Section **sect_id_map; LNK_Obj *obj_arr; CV_DebugS *debug_s_arr; CV_DebugT ipi; @@ -496,8 +494,8 @@ typedef struct //////////////////////////////// // CodeView -internal CV_DebugS * lnk_parse_debug_s_sections(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, LNK_ChunkList *sect_list_arr); -internal CV_DebugT * lnk_parse_debug_t_sections(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, LNK_ChunkList *debug_t_list_arr); +internal CV_DebugS * lnk_parse_debug_s_sections(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8List *sect_list_arr); +internal CV_DebugT * lnk_parse_debug_t_sections(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8List *debug_t_list_arr); internal CV_SymbolList * lnk_cv_symbol_list_arr_from_debug_s_arr(TP_Context *tp, TP_Arena *arena, U64 obj_count, CV_DebugS *debug_s_arr); internal LNK_PchInfo * lnk_setup_pch(Arena *arena, U64 obj_count, LNK_Obj *obj_arr, CV_DebugT *debug_t_arr, CV_DebugT *debug_p_arr, CV_SymbolListArray *parsed_symbols); @@ -557,7 +555,6 @@ internal String8List lnk_build_rad_debug_info(TP_Context *tp, String8 image_name, String8 image_data, LNK_SectionArray image_sects, - LNK_Section **sect_id_map, U64 obj_count, LNK_Obj *obj_arr, CV_DebugS *debug_s_arr, @@ -574,25 +571,13 @@ internal LNK_ProcessedCodeViewC13Data lnk_process_c13_data(TP_Context *tp, TP_Ar internal U64 * lnk_hash_cv_symbol_ptr_arr(TP_Context *tp, Arena *arena, CV_SymbolPtrArray arr); internal CV_SymbolPtrArray lnk_dedup_gsi_symbols(TP_Context *tp, Arena *arena, PDB_GsiContext *gsi, U64 obj_count, CV_SymbolList *symbol_list_arr); -internal void lnk_build_pdb_public_symbols(TP_Context *tp, - TP_Arena *arena, - LNK_SymbolTable *symtab, - LNK_Section **sect_id_map, - PDB_PsiContext *psi); +internal void lnk_build_pdb_public_symbols(TP_Context *tp, TP_Arena *arena, LNK_SymbolTable *symtab, PDB_PsiContext *psi); internal String8List lnk_build_pdb(TP_Context *tp, TP_Arena *tp_arena, String8 image_data, - Guid guid, - COFF_MachineType machine, - COFF_TimeStamp time_stamp, - U32 age, - U64 page_size, - String8 pdb_name, - String8List lib_dir_list, - String8List natvis_list, + LNK_Config *config, LNK_SymbolTable *symtab, - LNK_Section **sect_id_map, U64 obj_count, LNK_Obj *obj_arr, CV_DebugS *debug_s_arr, diff --git a/src/linker/lnk_error.c b/src/linker/lnk_error.c index b907de88..7ff046f0 100644 --- a/src/linker/lnk_error.c +++ b/src/linker/lnk_error.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) static LNK_ErrorMode g_error_mode_arr[LNK_Error_Count]; diff --git a/src/linker/lnk_error.h b/src/linker/lnk_error.h index 761579ea..b528a8ef 100644 --- a/src/linker/lnk_error.h +++ b/src/linker/lnk_error.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once @@ -32,13 +32,13 @@ typedef enum LNK_Error_IO, LNK_Error_LargeAddrAwareRequired, LNK_Error_InvalidPath, + LNK_Error_MultiplyDefinedSymbol, LNK_Error_StopLast, LNK_Error_First, LNK_Error_AlreadyDefinedSymbol, LNK_Error_AlternateNameConflict, LNK_Error_CvPrecomp, - LNK_Error_MultiplyDefinedSymbol, LNK_Error_Natvis, LNK_Error_TooManyFiles, LNK_Error_UndefinedSymbol, @@ -48,6 +48,8 @@ typedef enum LNK_Error_CvIllSymbolData, LNK_Error_IllegalAlternateNameRedifine, LNK_Error_InvalidTypeIndex, + LNK_Error_UndefinedIsWeak, + LNK_Error_WeakCycle, LNK_Error_Last, LNK_Warning_First, @@ -81,6 +83,7 @@ typedef enum LNK_Warning_UnknownSwitch, LNK_Warning_TLSAlign, LNK_Warning_DirectiveSectionWithRelocs, + LNK_Warning_NoLargeAddressAwarenessForDll, LNK_Warning_Last, LNK_Error_Count diff --git a/src/linker/lnk_export_table.c b/src/linker/lnk_export_table.c index d2f9fc10..f2081e08 100644 --- a/src/linker/lnk_export_table.c +++ b/src/linker/lnk_export_table.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) int @@ -61,19 +61,16 @@ lnk_export_table_push_export(LNK_ExportTable *exptab, LNK_SymbolTable *symtab, L LNK_Export *exp = 0; // get export symbol - LNK_Symbol *symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Main, exp_parse->name); + LNK_Symbol *symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, exp_parse->name); if (symbol == 0) { lnk_error(LNK_Warning_IllExport, "symbol \"%S\" for export doesn't exist", exp_parse->name); goto exit; } - symbol = lnk_resolve_symbol(symtab, symbol); - if (!LNK_Symbol_IsDefined(symbol->type)) { + if (symbol->type != LNK_Symbol_Defined) { lnk_error(LNK_Warning_IllExport, "unable to resolve symbol \"%S\" for export", exp_parse->name); goto exit; } - LNK_DefinedSymbol *def = &symbol->u.defined; - // NOTE: It is possible to export a global variable as CODE // with following snippet: // int global_bar = 0; @@ -85,13 +82,15 @@ lnk_export_table_push_export(LNK_ExportTable *exptab, LNK_SymbolTable *symtab, L COFF_ImportType type = coff_import_header_type_from_string(exp_parse->type); switch (type) { case COFF_ImportHeader_Code: { - B32 is_export_data = !(def->flags & (LNK_DefinedSymbolFlag_IsFunc|LNK_DefinedSymbolFlag_IsThunk)); + COFF_ParsedSymbol defn = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + B32 is_export_data = !COFF_SymbolType_IsFunc(defn.type); if (is_export_data) { lnk_error(LNK_Error_IllExport, "export \"%S\" is DATA but has specifier CODE", exp_parse->name); } } break; case COFF_ImportHeader_Data: { - B32 is_export_code = !!(def->flags & (LNK_DefinedSymbolFlag_IsFunc|LNK_DefinedSymbolFlag_IsThunk)); + COFF_ParsedSymbol defn = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + B32 is_export_code = COFF_SymbolType_IsFunc(defn.type); if (is_export_code) { lnk_error(LNK_Error_IllExport, "export \"%S\" is CODE but has specifier DATA", exp_parse->name); } @@ -106,7 +105,6 @@ lnk_export_table_push_export(LNK_ExportTable *exptab, LNK_SymbolTable *symtab, L } break; } - // error check multiple def exp = lnk_export_table_search(exptab, exp_parse->alias); if (exp) { diff --git a/src/linker/lnk_export_table.h b/src/linker/lnk_export_table.h index 42cd3ed7..57533918 100644 --- a/src/linker/lnk_export_table.h +++ b/src/linker/lnk_export_table.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once @@ -7,7 +7,7 @@ typedef struct LNK_Export { struct LNK_Export *next; String8 name; - LNK_Symbol *symbol; + struct LNK_Symbol *symbol; U32 id; U16 ordinal; COFF_ImportType type; diff --git a/src/linker/lnk_import_table.c b/src/linker/lnk_import_table.c index 6b474897..91282160 100644 --- a/src/linker/lnk_import_table.c +++ b/src/linker/lnk_import_table.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal LNK_ImportTable * @@ -55,7 +55,7 @@ internal LNK_ImportFunc * lnk_import_table_search_func(LNK_ImportDLL *dll, String8 name) { LNK_ImportFunc *func = 0; - hash_table_search_string_raw(dll->func_ht, name, &func); + hash_table_search_string_raw(dll->func_ht, name, (void **)&func); return func; } @@ -288,7 +288,7 @@ lnk_import_table_push_func_delayed(LNK_ImportTable *imptab, LNK_ImportDLL *dll, switch (dll->machine) { case COFF_MachineType_X64: { String8 iat_symbol_name = push_str8f(symtab->arena->v[0], "__imp_%S", header->func_name); - LNK_Symbol *iat_symbol = lnk_make_undefined_symbol(symtab->arena->v[0], iat_symbol_name, LNK_SymbolScopeFlag_Main); + LNK_Symbol *iat_symbol = lnk_make_undefined_symbol(symtab->arena->v[0], iat_symbol_name, LNK_SymbolScope_Main); // emit jmp thunk chunk jmp_thunk_chunk = lnk_emit_indirect_jump_thunk_x64(code_sect, code_table_chunk, iat_symbol); diff --git a/src/linker/lnk_import_table.h b/src/linker/lnk_import_table.h index 14493218..2ba9a9a4 100644 --- a/src/linker/lnk_import_table.h +++ b/src/linker/lnk_import_table.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/lnk_input.c b/src/linker/lnk_input.c new file mode 100644 index 00000000..b586ac56 --- /dev/null +++ b/src/linker/lnk_input.c @@ -0,0 +1,154 @@ +// Copyright (c) 2025 Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal String8 +lnk_string_from_input_source(LNK_InputSourceType input_source) +{ + String8 result = str8_zero(); + switch (input_source) { + case LNK_InputSource_CmdLine: result = str8_lit("CmdLine"); break; + case LNK_InputSource_Default: result = str8_lit("Default"); break; + case LNK_InputSource_Obj: result = str8_lit("Obj"); break; + default: InvalidPath; + } + return result; +} + +internal void +lnk_input_obj_list_push_node(LNK_InputObjList *list, LNK_InputObj *node) +{ + SLLQueuePush(list->first, list->last, node); + ++list->count; +} + +internal LNK_InputObj * +lnk_input_obj_list_push(Arena *arena, LNK_InputObjList *list) +{ + LNK_InputObj *node = push_array(arena, LNK_InputObj, 1); + lnk_input_obj_list_push_node(list, node); + return node; +} + +internal void +lnk_input_obj_list_concat_in_place(LNK_InputObjList *list, LNK_InputObjList *to_concat) +{ + SLLConcatInPlace(list, to_concat); +} + +internal LNK_InputObj ** +lnk_array_from_input_obj_list(Arena *arena, LNK_InputObjList list) +{ + LNK_InputObj **result = push_array_no_zero(arena, LNK_InputObj *, list.count); + U64 i = 0; + for (LNK_InputObj *n = list.first; n != 0; n = n->next, ++i) { + Assert(i < list.count); + result[i] = n; + } + return result; +} + +internal int +lnk_input_obj_compar(const void *raw_a, const void *raw_b) +{ + const LNK_InputObj **a = (const LNK_InputObj **) raw_a; + const LNK_InputObj **b = (const LNK_InputObj **) raw_b; + int cmp = str8_compar_case_sensitive(&(*a)->path, &(*b)->path); + return cmp; +} + +internal int +lnk_input_obj_compar_is_before(void *raw_a, void *raw_b) +{ + LNK_InputObj **a = raw_a; + LNK_InputObj **b = raw_b; + int cmp = str8_compar_case_sensitive(&(*a)->path, &(*b)->path); + int is_before = cmp < 0; + return is_before; +} + +internal LNK_InputObjList +lnk_list_from_input_obj_arr(LNK_InputObj **arr, U64 count) +{ + LNK_InputObjList list = {0}; + for (U64 i = 0; i < count; ++i) { + SLLQueuePush(list.first, list.last, arr[i]); + ++list.count; + } + return list; +} + +internal LNK_InputObjList +lnk_input_obj_list_from_string_list(Arena *arena, String8List list) +{ + LNK_InputObjList input_list = {0}; + for (String8Node *path = list.first; path != 0; path = path->next) { + LNK_InputObj *input = lnk_input_obj_list_push(arena, &input_list); + input->is_thin = 1; + input->dedup_id = path->string; + input->path = path->string; + } + return input_list; +} + +internal LNK_InputImport * +lnk_input_import_list_push(Arena *arena, LNK_InputImportList *list) +{ + LNK_InputImport *node = push_array(arena, LNK_InputImport, 1); + SLLQueuePush(list->first, list->last, node); + list->count += 1; + return node; +} + +internal void +lnk_input_import_list_concat_in_place(LNK_InputImportList *list, LNK_InputImportList *to_concat) +{ + SLLConcatInPlace(list, to_concat); +} + +internal LNK_InputImport ** +lnk_input_import_arr_from_list(Arena *arena, LNK_InputImportList list) +{ + LNK_InputImport **result = push_array_no_zero(arena, LNK_InputImport *, list.count); + U64 idx = 0; + for (LNK_InputImport *node = list.first; node != 0; node = node->next) { + Assert(idx < list.count); + result[idx++] = node; + } + return result; +} + +internal LNK_InputImportList +lnk_list_from_input_import_arr(LNK_InputImport **arr, U64 count) +{ + LNK_InputImportList list = {0}; + for (U64 i = 0; i < count; i += 1) { + SLLQueuePush(list.first, list.last, arr[i]); + list.count += 1; + } + return list; +} + +int +lnk_input_import_is_before(void *raw_a, void *raw_b) +{ + LNK_InputImport **a = raw_a; + LNK_InputImport **b = raw_b; + int cmp = str8_compar_ignore_case(&(*a)->import_header.dll_name, &(*b)->import_header.dll_name); + if (cmp == 0) { + cmp = str8_compar_case_sensitive(&(*a)->import_header.func_name, &(*b)->import_header.func_name); + } + return cmp < 0; +} + +int +lnk_input_import_compar(const void *raw_a, const void *raw_b) +{ + LNK_InputImport * const *a = raw_a; + LNK_InputImport * const *b = raw_b; + int cmp = str8_compar_ignore_case(&(*a)->import_header.dll_name, &(*b)->import_header.dll_name); + if (cmp == 0) { + cmp = str8_compar_case_sensitive(&(*a)->import_header.func_name, &(*b)->import_header.func_name); + } + return cmp; +} + diff --git a/src/linker/lnk_input.h b/src/linker/lnk_input.h new file mode 100644 index 00000000..51ba3d65 --- /dev/null +++ b/src/linker/lnk_input.h @@ -0,0 +1,64 @@ +// Copyright (c) 2025 Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#pragma once + +typedef enum +{ + LNK_InputSource_CmdLine, // specified on command line + LNK_InputSource_Default, // specified through defaultlib switch + LNK_InputSource_Obj, // refrenced from objects + LNK_InputSource_Count +} LNK_InputSourceType; + +typedef String8Node LNK_InputLib; +typedef String8List LNK_InputLibList; + +typedef struct LNK_InputImport +{ + COFF_ParsedArchiveImportHeader import_header; + struct LNK_InputImport *next; +} LNK_InputImport; + +typedef struct LNK_InputImportList +{ + U64 count; + LNK_InputImport *first; + LNK_InputImport *last; +} LNK_InputImportList; + +typedef struct LNK_InputObj +{ + struct LNK_InputObj *next; + B32 is_thin; + B32 has_disk_read_failed; + String8 dedup_id; + String8 path; + String8 data; + String8 lib_path; +} LNK_InputObj; + +typedef struct LNK_InputObjList +{ + U64 count; + LNK_InputObj *first; + LNK_InputObj *last; +} LNK_InputObjList; + +//////////////////////////////// + +internal String8 lnk_string_from_input_source(LNK_InputSourceType input_source); + +internal void lnk_input_obj_list_push_node(LNK_InputObjList *list, LNK_InputObj *node); +internal LNK_InputObj * lnk_input_obj_list_push(Arena *arena, LNK_InputObjList *list); +internal void lnk_input_obj_list_concat_in_place(LNK_InputObjList *list, LNK_InputObjList *to_concat); + +internal LNK_InputObj ** lnk_array_from_input_obj_list(Arena *arena, LNK_InputObjList list); +internal LNK_InputObjList lnk_list_from_input_obj_arr(LNK_InputObj **arr, U64 count); +internal LNK_InputObjList lnk_input_obj_list_from_string_list(Arena *arena, String8List list); + +internal LNK_InputImport * lnk_input_import_list_push(Arena *arena, LNK_InputImportList *list); +internal void lnk_input_import_list_concat_in_place(LNK_InputImportList *list, LNK_InputImportList *to_concat); +internal LNK_InputImport ** lnk_input_import_arr_from_list(Arena *arena, LNK_InputImportList list); +internal LNK_InputImportList lnk_list_from_input_import_arr(LNK_InputImport **arr, U64 count); + diff --git a/src/linker/lnk_lib.c b/src/linker/lnk_lib.c index 93df67c7..22aad6c8 100644 --- a/src/linker/lnk_lib.c +++ b/src/linker/lnk_lib.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal LNK_LibNode * @@ -208,31 +208,6 @@ lnk_lib_list_push_parallel(TP_Context *tp, TP_Arena *arena, LNK_LibList *list, S return arr; } -#if 0 -internal LNK_LibNode * -lnk_lib_list_push(Arena *arena, LNK_LibList *list, String8 data, String8 path) -{ - ProfBeginFunction(); - - TP_Arena pool_arena = {0}; - pool_arena.count = 1; - pool_arena.v = &arena; - - String8Array data_arr = {0}; - data_arr.count = 1; - data_arr.v = &data; - - String8Array path_arr = {0}; - path_arr.count = 1; - path_arr.v = &path; - - LNK_LibNodeArray node_arr = lnk_lib_list_push_parallel(&pool_arena, list, data_arr, path_arr); - - ProfEnd(); - return node_arr.v; -} -#endif - //////////////////////////////// internal LNK_LibWriter * @@ -265,14 +240,31 @@ lnk_lib_writer_push_obj(LNK_LibWriter *writer, LNK_Obj *obj) lnk_lib_member_list_push(writer->arena, &writer->member_list, member); // push external symbols - for (LNK_SymbolNode *node = obj->symbol_list.first; node != 0; node = node->next) { - LNK_Symbol *symbol = node->data; - B32 is_extern = symbol->type == LNK_Symbol_DefinedExtern; - if (is_extern) { - LNK_LibSymbol lib_symbol = {0}; - lib_symbol.name = symbol->name; - lib_symbol.member_idx = member_idx; - lnk_lib_symbol_list_push(writer->arena, &writer->symbol_list, lib_symbol); + { + COFF_FileHeaderInfo coff_info = coff_file_header_info_from_data(obj->data); + String8 string_table = str8_substr(obj->data, coff_info.string_table_range); + String8 symbol_table = str8_substr(obj->data, coff_info.symbol_table_range); + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < coff_info.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + void *symbol_ptr; + if (coff_info.is_big_obj) { + symbol_ptr = &((COFF_Symbol32 *)symbol_table.str)[symbol_idx]; + symbol = coff_parse_symbol32(string_table, symbol_ptr); + } else { + symbol_ptr = &((COFF_Symbol16 *)symbol_table.str)[symbol_idx]; + symbol = coff_parse_symbol16(string_table, symbol_ptr); + } + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { + if (symbol.storage_class == COFF_SymStorageClass_External) { + LNK_LibSymbol lib_symbol = {0}; + lib_symbol.name = symbol.name; + lib_symbol.member_idx = member_idx; + lnk_lib_symbol_list_push(writer->arena, &writer->symbol_list, lib_symbol); + } + } } } @@ -590,20 +582,45 @@ lnk_build_import_lib(TP_Context *tp, TP_Arena *arena, COFF_MachineType machine, input->lib_path = lib_name; } - LNK_InputObj **inputs = lnk_array_from_input_obj_list(scratch.arena, input_obj_list); - LNK_SectionTable *sectab = lnk_section_table_alloc(0,0,0); - LNK_ObjList obj_list = {0}; - lnk_obj_list_push_parallel(tp, arena, &obj_list, sectab, 0, machine, input_obj_list.count, inputs); + LNK_InputObj **inputs = lnk_array_from_input_obj_list(scratch.arena, input_obj_list); + LNK_ObjList obj_list = {0}; + lnk_obj_list_push_parallel(tp, arena, &obj_list, machine, input_obj_list.count, inputs); LNK_LibBuild import_lib = lnk_build_lib(scratch.arena, machine, time_stamp, dll_name, obj_list, exptab); B32 emit_second_member = 1; String8List coff_archive_data = lnk_coff_archive_from_lib_build(arena->v[0], &import_lib, emit_second_member, COFF_TimeStamp_Max, 0); // cleanup memory - lnk_section_table_release(§ab); scratch_end(scratch); ProfEnd(); return coff_archive_data; } +internal +THREAD_POOL_TASK_FUNC(lnk_push_lib_symbols_task) +{ + LNK_SymbolPusher *task = raw_task; + LNK_SymbolTable *symtab = task->symtab; + LNK_Lib *lib = &task->u.libs.v[task_id].data; + + String8Node *name_node = lib->symbol_name_list.first; + for (U64 symbol_idx = 0; symbol_idx < lib->symbol_count; ++symbol_idx, name_node = name_node->next) { + LNK_Symbol *symbol = lnk_make_lib_symbol(arena, name_node->string, lib, lib->member_off_arr[symbol_idx]); + + U64 hash = lnk_symbol_hash(symbol->name); + lnk_symbol_table_push_(symtab, arena, worker_id, LNK_SymbolScope_Lib, hash, symbol); + } +} + +internal void +lnk_input_lib_symbols(TP_Context *tp, LNK_SymbolTable *symtab, LNK_LibNodeArray libs) +{ + ProfBeginFunction(); + LNK_SymbolPusher task = {0}; + task.symtab = symtab; + task.u.libs = libs; + tp_for_parallel(tp, symtab->arena, libs.count, lnk_push_lib_symbols_task, &task); + ProfEnd(); +} + diff --git a/src/linker/lnk_lib.h b/src/linker/lnk_lib.h index fe579bb5..6b3f2cb9 100644 --- a/src/linker/lnk_lib.h +++ b/src/linker/lnk_lib.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once @@ -114,7 +114,6 @@ internal void lnk_lib_symbol_array_sort(LNK_LibSymbol *arr, U64 count internal LNK_Lib lnk_lib_from_data(Arena *arena, String8 data, String8 path); internal LNK_LibNodeArray lnk_lib_list_push_parallel(TP_Context *tp, TP_Arena *arena, LNK_LibList *list, String8Array data_arr, String8Array path_arr); -internal LNK_LibNode * lnk_lib_list_push(Arena *arena, LNK_LibList *list, String8 data, String8 path); //////////////////////////////// diff --git a/src/linker/lnk_log.c b/src/linker/lnk_log.c index 368387f2..905b26ba 100644 --- a/src/linker/lnk_log.c +++ b/src/linker/lnk_log.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal void diff --git a/src/linker/lnk_log.h b/src/linker/lnk_log.h index cc0d8544..a878803f 100644 --- a/src/linker/lnk_log.h +++ b/src/linker/lnk_log.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index aaf9c583..370ab8b7 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -1,8 +1,6 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -//////////////////////////////// - internal void lnk_error_obj(LNK_ErrorCode code, LNK_Obj *obj, char *fmt, ...) { @@ -11,85 +9,242 @@ lnk_error_obj(LNK_ErrorCode code, LNK_Obj *obj, char *fmt, ...) va_end(args); } +internal void +lnk_error_multiply_defined_symbol(LNK_Obj *defn_obj, LNK_Obj *conf_obj, String8 symbol_name) +{ + lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, defn_obj, "symbol %S is multiply defined in %S", symbol_name, conf_obj->path); +} + //////////////////////////////// -internal void -lnk_input_obj_list_push_node(LNK_InputObjList *list, LNK_InputObj *node) +internal LNK_ObjNodeArray +lnk_obj_list_reserve(Arena *arena, LNK_ObjList *list, U64 count) { - SLLQueuePush(list->first, list->last, node); - ++list->count; -} - -internal LNK_InputObj * -lnk_input_obj_list_push(Arena *arena, LNK_InputObjList *list) -{ - LNK_InputObj *node = push_array(arena, LNK_InputObj, 1); - lnk_input_obj_list_push_node(list, node); - return node; -} - -internal LNK_InputObj ** -lnk_array_from_input_obj_list(Arena *arena, LNK_InputObjList list) -{ - LNK_InputObj **result = push_array_no_zero(arena, LNK_InputObj *, list.count); - U64 i = 0; - for (LNK_InputObj *n = list.first; n != 0; n = n->next, ++i) { - Assert(i < list.count); - result[i] = n; + LNK_ObjNodeArray arr = {0}; + if (count) { + arr.count = count; + arr.v = push_array(arena, LNK_ObjNode, count); + for (LNK_ObjNode *ptr = arr.v, *opl = arr.v + arr.count; ptr < opl; ++ptr) { + SLLQueuePush(list->first, list->last, ptr); + } + list->count += count; + } else { + MemoryZeroStruct(&arr); } + + return arr; +} + +internal +THREAD_POOL_TASK_FUNC(lnk_obj_initer) +{ + LNK_ObjIniter *task = raw_task; + LNK_InputObj *input = task->inputs[task_id]; + LNK_Obj *obj = &task->objs.v[task_id].data; + U64 obj_idx = task->obj_id_base + task_id; + + // + // parse obj header + // + COFF_FileHeaderInfo coff_info = coff_file_header_info_from_data(input->data); + + // + // set & check machine compatibility + // + { + if (task->machine == COFF_MachineType_Unknown) { + ins_atomic_u32_eval_assign(&task->machine, coff_info.machine); + } + + if (coff_info.machine != COFF_MachineType_Unknown && task->machine != coff_info.machine) { + lnk_error_with_loc(LNK_Error_IncompatibleMachine, input->path, input->lib_path, + "conflicting machine types expected %S but got %S", + coff_string_from_machine_type(task->machine), + coff_string_from_machine_type(coff_info.machine)); + } + } + + // + // extract COFF info + // + String8 raw_coff_section_table = str8_substr(input->data, coff_info.section_table_range); + String8 raw_coff_symbol_table = str8_substr(input->data, coff_info.symbol_table_range); + String8 raw_coff_string_table = str8_substr(input->data, coff_info.string_table_range); + + // + // error check: section table / symbol table / string table + // + if (raw_coff_section_table.size != dim_1u64(coff_info.section_table_range)) { + lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "corrupted file, unable to read section header table"); + } + if (raw_coff_symbol_table.size != dim_1u64(coff_info.symbol_table_range)) { + lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "corrupted file, unable to read symbol table"); + } + if (raw_coff_string_table.size != dim_1u64(coff_info.string_table_range)) { + lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "corrupted file, unable to read string table"); + } + + // + // error check section headers + // + COFF_SectionHeader *coff_section_table = (COFF_SectionHeader *)raw_coff_section_table.str; + for (U64 sect_idx = 0; sect_idx < coff_info.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *coff_sect_header = &coff_section_table[sect_idx]; + + // read name + String8 sect_name = coff_name_from_section_header(raw_coff_string_table, coff_sect_header); + + if (~coff_sect_header->flags & COFF_SectionFlag_CntUninitializedData) { + if (coff_sect_header->fsize > 0) { + Rng1U64 sect_range = rng_1u64(coff_sect_header->foff, coff_sect_header->foff + coff_sect_header->fsize); + + if (contains_1u64(coff_info.header_range, coff_sect_header->foff) || + (coff_sect_header->fsize > 0 && contains_1u64(coff_info.header_range, sect_range.max-1))) { + lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "header (%S No. %#llx) defines out of bounds section data (file offsets point into file header)", sect_name, sect_idx+1); + } + if (contains_1u64(coff_info.section_table_range, coff_sect_header->foff) || + (coff_sect_header->fsize > 0 && contains_1u64(coff_info.section_table_range, sect_range.max-1))) { + lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "header (%S No. %#llx) defines out of bounds section data (file offsets point into section header table)", sect_name, sect_idx+1); + } + if (contains_1u64(coff_info.symbol_table_range, coff_sect_header->foff) || + (coff_sect_header->fsize > 0 && contains_1u64(coff_info.symbol_table_range, sect_range.max-1))) { + lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "header (%S No. %#llx) defines out of bounds section data (file offsets point into symbol table)", sect_name, sect_idx+1); + } + if (dim_1u64(sect_range) != coff_sect_header->fsize) { + lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "header (%S No. %#llx) defines out of bounds section data", sect_name, sect_idx+1); + } + } + } + } + + // fill out obj + obj->data = input->data; + obj->path = push_str8_copy(arena, input->path); + obj->lib_path = push_str8_copy(arena, input->lib_path); + obj->input_idx = obj_idx; + obj->header = coff_info; +} + +internal LNK_ObjNodeArray +lnk_obj_list_push_parallel(TP_Context *tp, + TP_Arena *arena, + LNK_ObjList *obj_list, + COFF_MachineType machine, + U64 input_count, + LNK_InputObj **inputs) +{ + ProfBeginFunction(); + + LNK_ObjIniter task = {0}; + task.inputs = inputs; + task.obj_id_base = obj_list->count; + task.objs = lnk_obj_list_reserve(arena->v[0], obj_list, input_count); + task.machine = machine; + tp_for_parallel(tp, arena, input_count, lnk_obj_initer, &task); + + ProfEnd(); + return task.objs; +} + +internal LNK_Obj ** +lnk_obj_arr_from_list(Arena *arena, LNK_ObjList list) +{ + LNK_Obj **arr = push_array_no_zero(arena, LNK_Obj *, list.count); + U64 idx = 0; + for (LNK_ObjNode *node = list.first; node != 0; node = node->next, ++idx) { + arr[idx] = &node->data; + } + return arr; +} + +internal COFF_ParsedSymbol +lnk_obj_match_symbol(LNK_Obj *obj, String8 match_name) +{ + COFF_ParsedSymbol result = {0}; + + COFF_FileHeaderInfo coff_info = coff_file_header_info_from_data(obj->data); + + String8 raw_coff_symbol_table = str8_substr(obj->data, coff_info.symbol_table_range); + String8 raw_coff_string_table = str8_substr(obj->data, coff_info.string_table_range); + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < coff_info.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + void *symbol_ptr; + if (coff_info.is_big_obj) { + symbol_ptr = &((COFF_Symbol32 *)raw_coff_symbol_table.str)[symbol_idx]; + symbol = coff_parse_symbol32(raw_coff_string_table, symbol_ptr); + } else { + symbol_ptr = &((COFF_Symbol16 *)raw_coff_symbol_table.str)[symbol_idx]; + symbol = coff_parse_symbol16(raw_coff_string_table, symbol_ptr); + } + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + + if (str8_match(symbol.name, match_name, 0)) { + result = symbol; + break; + } + } + return result; } -internal void -lnk_input_obj_list_concat_in_place(LNK_InputObjList *list, LNK_InputObjList *to_concat) +internal MSCRT_FeatFlags +lnk_obj_get_features(LNK_Obj *obj) { - SLLConcatInPlace(list, to_concat); + return lnk_obj_match_symbol(obj, str8_lit("@feat.00")).value; } -internal int -lnk_input_obj_compar(const void *raw_a, const void *raw_b) +internal U32 +lnk_obj_get_comp_id(LNK_Obj *obj) { - const LNK_InputObj **a = (const LNK_InputObj **) raw_a; - const LNK_InputObj **b = (const LNK_InputObj **) raw_b; - int cmp = str8_compar_case_sensitive(&(*a)->path, &(*b)->path); - return cmp; + return lnk_obj_match_symbol(obj, str8_lit("@comp.id")).value; } -internal int -lnk_input_obj_compar_is_before(void *raw_a, void *raw_b) +internal U32 +lnk_obj_get_vol_md(LNK_Obj *obj) { - LNK_InputObj **a = raw_a; - LNK_InputObj **b = raw_b; - int cmp = str8_compar_case_sensitive(&(*a)->path, &(*b)->path); - int is_before = cmp < 0; - return is_before; + return lnk_obj_match_symbol(obj, str8_lit("@vol.md")).value; } -internal LNK_InputObjList -lnk_list_from_input_obj_arr(LNK_InputObj **arr, U64 count) +internal COFF_SectionHeader * +lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number) { - LNK_InputObjList list = {0}; - for (U64 i = 0; i < count; ++i) { - SLLQueuePush(list.first, list.last, arr[i]); - ++list.count; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + COFF_SectionHeader *section_header = §ion_table[section_number-1]; + return section_header; +} + +internal COFF_ParsedSymbol +lnk_parsed_symbol_from_coff_symbol_idx(LNK_Obj *obj, U64 symbol_idx) +{ + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + String8 symbol_table = str8_substr(obj->data, obj->header.symbol_table_range); + + COFF_ParsedSymbol result = {0}; + if (obj->header.is_big_obj) { + result = coff_parse_symbol32(string_table, (COFF_Symbol32 *)symbol_table.str + symbol_idx); + } else { + result = coff_parse_symbol16(string_table, (COFF_Symbol16 *)symbol_table.str + symbol_idx); } - return list; + + return result; } -internal LNK_InputObjList -lnk_input_obj_list_from_string_list(Arena *arena, String8List list) +internal String8List * +lnk_collect_obj_chunks_parallel(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8 name, String8 postfix, B32 collect_discarded) { - LNK_InputObjList input_list = {0}; - for (String8Node *path = list.first; path != 0; path = path->next) { - LNK_InputObj *input = lnk_input_obj_list_push(arena, &input_list); - input->is_thin = 1; - input->dedup_id = path->string; - input->path = path->string; - } - return input_list; + NotImplemented; + return 0; } -//////////////////////////////// +internal String8List +lnk_collect_obj_chunks(Arena *arena, LNK_Obj *obj, String8 name, String8 postfix, B32 collect_discarded) +{ + NotImplemented; + String8List result = {0}; + return result; +} internal void lnk_parse_msvc_linker_directive(Arena *arena, LNK_Obj *obj, LNK_DirectiveInfo *directive_info, String8 buffer) @@ -138,935 +293,91 @@ lnk_parse_msvc_linker_directive(Arena *arena, LNK_Obj *obj, LNK_DirectiveInfo *d scratch_end(scratch); } -//////////////////////////////// - -internal LNK_Obj ** -lnk_obj_arr_from_list(Arena *arena, LNK_ObjList list) -{ - LNK_Obj **arr = push_array_no_zero(arena, LNK_Obj *, list.count); - U64 idx = 0; - for (LNK_ObjNode *node = list.first; node != 0; node = node->next, ++idx) { - arr[idx] = &node->data; - } - return arr; -} - -internal LNK_ObjNodeArray -lnk_obj_list_reserve(Arena *arena, LNK_ObjList *list, U64 count) -{ - LNK_ObjNodeArray arr = {0}; - if (count) { - arr.count = count; - arr.v = push_array(arena, LNK_ObjNode, count); - for (LNK_ObjNode *ptr = arr.v, *opl = arr.v + arr.count; ptr < opl; ++ptr) { - SLLQueuePush(list->first, list->last, ptr); - } - list->count += count; - } else { - MemoryZeroStruct(&arr); - } - - return arr; -} - -internal LNK_ChunkList -lnk_obj_search_chunks(Arena *arena, LNK_Obj *obj, String8 name, String8 postfix, B32 collect_discarded) -{ - LNK_ChunkList list = {0}; - for (U64 sect_idx = 0; sect_idx < obj->chunk_count; ++sect_idx) { - String8 obj_sect_name = obj->sect_name_arr[sect_idx]; - String8 obj_sect_sort = obj->sect_sort_arr[sect_idx]; - - B32 is_match = str8_match(obj_sect_name, name, 0) && - str8_match(obj_sect_sort, postfix, 0); - - if (is_match) { - LNK_ChunkPtr chunk = obj->chunk_arr[sect_idx]; - - if (!collect_discarded && lnk_chunk_is_discarded(chunk)) { - continue; - } - - LNK_ChunkNode *node = push_array_no_zero(arena, LNK_ChunkNode, 1); - node->next = 0; - node->data = chunk; - - SLLQueuePush(list.first, list.last, node); - ++list.count; - } - } - return list; -} - internal -THREAD_POOL_TASK_FUNC(lnk_collect_obj_chunks_task) +THREAD_POOL_TASK_FUNC(lnk_input_coff_symbol_table) { - U64 obj_idx = task_id; - LNK_CollectObjChunksTaskData *task = raw_task; - LNK_Obj *obj = task->obj_arr[obj_idx]; - LNK_ChunkList *list_ptr = &task->list_arr[obj_idx]; - *list_ptr = lnk_obj_search_chunks(arena, obj, task->name, task->postfix, task->collect_discarded); -} - -internal LNK_ChunkList * -lnk_collect_obj_chunks(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8 name, String8 postfix, B32 collect_discarded) -{ - LNK_CollectObjChunksTaskData task_data = {0}; - task_data.obj_arr = obj_arr; - task_data.name = name; - task_data.postfix = postfix; - task_data.list_arr = push_array_no_zero(arena->v[0], LNK_ChunkList, obj_count); - task_data.collect_discarded = collect_discarded; - tp_for_parallel(tp, arena, obj_count, lnk_collect_obj_chunks_task, &task_data); - return task_data.list_arr; -} - -internal -THREAD_POOL_TASK_FUNC(lnk_symbol_collector) -{ - LNK_SymbolCollector *task = raw_task; - Rng1U64 range = task->range_arr[task_id]; - LNK_SymbolList *list = &task->out_arr[task_id]; - for (U64 obj_idx = range.min; obj_idx < range.max; ++obj_idx) { - LNK_Obj *obj = &task->in_arr.v[obj_idx].data; - for (LNK_SymbolNode *node = obj->symbol_list.first; node != 0; node = node->next) { - if (node->data->type == task->type) { - lnk_symbol_list_push(arena, list, node->data); - } - } - } -} - -internal LNK_SymbolList -lnk_run_symbol_collector(TP_Context *tp, TP_Arena *arena, LNK_ObjNodeArray arr, LNK_SymbolType symbol_type) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); - - LNK_SymbolCollector task_data; - task_data.type = symbol_type; - task_data.range_arr = tp_divide_work(scratch.arena, arr.count, tp->worker_count); - task_data.in_arr = arr; - task_data.out_arr = push_array(scratch.arena, LNK_SymbolList, tp->worker_count); - - tp_for_parallel(tp, arena, tp->worker_count, lnk_symbol_collector, &task_data); - - LNK_SymbolList list = {0}; - for (U64 ithread = 0; ithread < tp->worker_count; ++ithread) { - lnk_symbol_list_concat_in_place(&list, &task_data.out_arr[ithread]); - } - - scratch_end(scratch); - ProfEnd(); - return list; -} - -internal void -lnk_sect_defn_list_push_node(LNK_SectDefnList *list, LNK_SectDefn *node) -{ - SLLQueuePush(list->first, list->last, node); - ++list->count; -} - -internal LNK_SectDefn * -lnk_sect_defn_list_push(Arena *arena, LNK_SectDefnList *list, LNK_Obj *obj, String8 name, U64 idx, COFF_SectionFlags flags) -{ - LNK_SectDefn *node = push_array_no_zero(arena, LNK_SectDefn, 1); - node->next = 0; - node->obj = obj; - node->name = name; - node->idx = idx; - node->flags = flags; - lnk_sect_defn_list_push_node(list, node); - return node; -} - -internal void -lnk_sect_defn_list_concat_in_place(LNK_SectDefnList *list, LNK_SectDefnList *to_concat) -{ - SLLConcatInPlace(list, to_concat); -} - -internal void -lnk_sect_defn_list_concat_in_place_arr(LNK_SectDefnList *list, LNK_SectDefnList *to_concat_arr, U64 count) -{ - SLLConcatInPlaceArray(list, to_concat_arr, count); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_obj_initer) -{ - Temp scratch = scratch_begin(&arena, 1); - - LNK_ObjIniter *task = raw_task; - LNK_InputObj *input = task->inputs[task_id]; - LNK_Obj *obj = &task->obj_node_arr[task_id].data; - U64 obj_idx = task->obj_id_base + task_id; + LNK_InputCoffSymbolTable *task = raw_task; + LNK_Obj *obj = &task->objs.v[task_id].data; // // parse obj header // - COFF_FileHeaderInfo coff_info = coff_file_header_info_from_data(input->data); - - // - // set & check machine compatibility - // - { - if (task->machine == COFF_MachineType_Unknown) { - ins_atomic_u32_eval_assign(&task->machine, coff_info.machine); - } - - if (coff_info.machine != COFF_MachineType_Unknown && task->machine != coff_info.machine) { - lnk_error_with_loc(LNK_Error_IncompatibleMachine, input->path, input->lib_path, - "conflicting machine types expected %S but got %S", - coff_string_from_machine_type(task->machine), - coff_string_from_machine_type(coff_info.machine)); - } - } + COFF_FileHeaderInfo header = coff_file_header_info_from_data(obj->data); // // extract COFF info // - String8 raw_coff_section_table = str8_substr(input->data, coff_info.section_table_range); - String8 raw_coff_symbol_table = str8_substr(input->data, coff_info.symbol_table_range); - String8 raw_coff_string_table = str8_substr(input->data, coff_info.string_table_range); + String8 raw_coff_section_table = str8_substr(obj->data, header.section_table_range); + String8 raw_coff_symbol_table = str8_substr(obj->data, header.symbol_table_range); + String8 raw_coff_string_table = str8_substr(obj->data, header.string_table_range); - // - // error check: section table / symbol table / string table - // - if (raw_coff_section_table.size != dim_1u64(coff_info.section_table_range)) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "corrupted file, unable to read section header table"); - } - if (raw_coff_symbol_table.size != dim_1u64(coff_info.symbol_table_range)) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "corrupted file, unable to read symbol table"); - } - if (raw_coff_string_table.size != dim_1u64(coff_info.string_table_range)) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "corrupted file, unable to read string table"); - } + COFF_ParsedSymbol symbol = {0}; + for (U64 symbol_idx = 0; symbol_idx < header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + // read symbol + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - U64 chunk_count = coff_info.section_count_no_null + /* :common_block */ 1; - String8 *sect_name_arr = push_array_no_zero(arena, String8, chunk_count); - String8 *sect_sort_arr = push_array_no_zero(arena, String8, chunk_count); - LNK_Chunk *chunk_arr = push_array(arena, LNK_Chunk, chunk_count); - LNK_ChunkPtr *chunk_ptr_arr = push_array_no_zero(arena, LNK_ChunkPtr, chunk_count); - - for (U64 chunk_idx = 0; chunk_idx < chunk_count; chunk_idx += 1) { - chunk_ptr_arr[chunk_idx] = &chunk_arr[chunk_idx]; - } - - // - // setup :common_block - // - - U64 common_block_idx = chunk_count - 1; - sect_name_arr[common_block_idx] = str8_lit(".bss"); - sect_sort_arr[common_block_idx] = str8_lit("~"); - - LNK_Chunk *master_common_block = &chunk_arr[common_block_idx]; - master_common_block->ref = lnk_chunk_ref(0,0); // :chunk_ref_assign - master_common_block->align = 1; - master_common_block->is_discarded = 0; - master_common_block->sort_chunk = 0; - master_common_block->type = LNK_Chunk_List; - master_common_block->sort_idx = sect_sort_arr[common_block_idx]; - master_common_block->input_idx = LNK_MakeChunkInputIdx(obj_idx, common_block_idx); - master_common_block->flags = LNK_BSS_SECTION_FLAGS; - master_common_block->associate = 0; - master_common_block->u.list = push_array(arena, LNK_ChunkList, 1); - master_common_block->obj = obj; - lnk_chunk_set_debugf(arena, master_common_block, "obj[%llx] master common block", obj_idx); - - // - // parse section table - // - COFF_SectionHeader *coff_section_table = (COFF_SectionHeader *)raw_coff_section_table.str; - for (U64 sect_idx = 0; sect_idx < coff_info.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *coff_sect_header = &coff_section_table[sect_idx]; - - // read name - String8 sect_name = coff_name_from_section_header(raw_coff_string_table, coff_sect_header); - - // parse name - coff_parse_section_name(sect_name, §_name_arr[sect_idx], §_sort_arr[sect_idx]); - - // find contents - String8 sect_data; - if (coff_sect_header->flags & COFF_SectionFlag_CntUninitializedData) { - sect_data = str8(0, coff_sect_header->fsize); - } else { - if (coff_sect_header->fsize > 0) { - Rng1U64 sect_range = rng_1u64(coff_sect_header->foff, coff_sect_header->foff + coff_sect_header->fsize); - sect_data = str8_substr(input->data, sect_range); - - if (contains_1u64(coff_info.header_range, coff_sect_header->foff) || - (coff_sect_header->fsize > 0 && contains_1u64(coff_info.header_range, sect_range.max-1))) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "header (%S No. %#llx) defines out of bounds section data (file offsets point into file header)", sect_name, sect_idx+1); - } - if (contains_1u64(coff_info.section_table_range, coff_sect_header->foff) || - (coff_sect_header->fsize > 0 && contains_1u64(coff_info.section_table_range, sect_range.max-1))) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "header (%S No. %#llx) defines out of bounds section data (file offsets point into section header table)", sect_name, sect_idx+1); - } - if (contains_1u64(coff_info.symbol_table_range, coff_sect_header->foff) || - (coff_sect_header->fsize > 0 && contains_1u64(coff_info.symbol_table_range, sect_range.max-1))) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "header (%S No. %#llx) defines out of bounds section data (file offsets point into symbol table)", sect_name, sect_idx+1); - } - if (dim_1u64(sect_range) != coff_sect_header->fsize) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "header (%S No. %#llx) defines out of bounds section data", sect_name, sect_idx+1); - } - } else { - sect_data = str8_zero(); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + switch (interp) { + case COFF_SymbolValueInterp_Regular: { + if (symbol.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); + U64 hash = lnk_symbol_hash(symbol.name); + lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); } - } + } break; + case COFF_SymbolValueInterp_Weak: { + LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); + U64 hash = lnk_symbol_hash(symbol.name); + lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); - // fill out chunk - LNK_Chunk *chunk = &chunk_arr[sect_idx]; - chunk->align = coff_align_size_from_section_flags(coff_sect_header->flags); - chunk->is_discarded = !!(coff_sect_header->flags & COFF_SectionFlag_LnkRemove); - chunk->sort_chunk = 1; - chunk->type = LNK_Chunk_Leaf; - chunk->sort_idx = sect_sort_arr[sect_idx]; - chunk->input_idx = LNK_MakeChunkInputIdx(obj_idx, sect_idx); - chunk->flags = coff_sect_header->flags; - chunk->u.leaf = sect_data; - chunk->obj = obj; - lnk_chunk_set_debugf(arena, chunk, "obj[%llx] sect[%llx]", obj_idx, sect_idx); - } - - // - // :function_pad_min - // - U64 function_pad_min; - if (task->function_pad_min) { - function_pad_min = *task->function_pad_min; - } else { - function_pad_min = lnk_get_default_function_pad_min(coff_info.machine); - } - - // - // convert from COFF - // - void *coff_symbol_table = raw_coff_symbol_table.str; - LNK_SymbolArray symbol_arr = lnk_symbol_array_from_coff(arena, obj, input->path, input->lib_path, coff_info.is_big_obj, function_pad_min, coff_info.section_count_no_null, coff_section_table, coff_info.symbol_count, coff_symbol_table, raw_coff_string_table, chunk_ptr_arr, master_common_block); - LNK_SymbolList symbol_list = lnk_symbol_list_from_array(arena, symbol_arr); - LNK_RelocList *reloc_list_arr = lnk_reloc_list_array_from_coff(arena, coff_info.machine, input->data, coff_info.section_count_no_null, coff_section_table, chunk_ptr_arr, symbol_arr); - - // fill out obj - obj->data = input->data; - obj->path = push_str8_copy(arena, input->path); - obj->lib_path = push_str8_copy(arena, input->lib_path); - obj->input_idx = obj_idx; - obj->machine = coff_info.machine; - obj->chunk_count = chunk_count; - obj->sect_count = coff_info.section_count_no_null; - obj->sect_name_arr = sect_name_arr; - obj->sect_sort_arr = sect_sort_arr; - obj->chunk_arr = chunk_ptr_arr; - obj->symbol_list = symbol_list; - obj->sect_reloc_list_arr = reloc_list_arr; - - scratch_end(scratch); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_obj_new_sect_scanner) -{ - LNK_ObjNewSectScanner *task = raw_task; - - Rng1U64 range = task->range_arr[task_id]; - HashTable *ht = hash_table_init(arena, 128); - - for (U64 obj_idx = range.min; obj_idx < range.max; obj_idx += 1) { - LNK_Obj *obj = &task->obj_node_arr[obj_idx].data; - - for (U64 chunk_idx = 0; chunk_idx < obj->chunk_count; chunk_idx += 1) { - String8 sect_name = obj->sect_name_arr[chunk_idx]; - COFF_SectionFlags sect_flags = obj->chunk_arr[chunk_idx]->flags & ~COFF_SectionFlags_LnkFlags; - - KeyValuePair *is_present = hash_table_search_string(ht, sect_name); - if (is_present) { - if (lnk_is_error_code_active(LNK_Warning_SectionFlagsConflict)) { - LNK_SectDefn *defn = is_present->value_raw; - if (defn->flags != sect_flags) { - lnk_sect_defn_list_push(arena, &task->defn_arr[task_id], obj, sect_name, chunk_idx, sect_flags); - } - } - } else { - LNK_SectDefn *defn = lnk_sect_defn_list_push(arena, &task->defn_arr[task_id], obj, sect_name, chunk_idx, sect_flags); - hash_table_push_string_raw(arena, ht, sect_name, defn); + lnk_symbol_list_push(arena, &task->weak_lists[task_id], defn); + } break; + case COFF_SymbolValueInterp_Common: { + LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); + U64 hash = lnk_symbol_hash(symbol.name); + lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); + } break; + case COFF_SymbolValueInterp_Abs: { + if (symbol.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); + U64 hash = lnk_symbol_hash(symbol.name); + lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); } + } break; + case COFF_SymbolValueInterp_Undefined: { + LNK_Symbol *s = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + if (s == 0) { + LNK_Symbol *undef = lnk_make_undefined_symbol(arena, symbol.name, obj); + lnk_symbol_list_push(arena, &task->undef_lists[worker_id], undef); + } + } break; + case COFF_SymbolValueInterp_Debug: { + // not used + } break; + default: { InvalidPath; } break; } } } -LNK_CHUNK_VISITOR_SIG(lnk_chunk_get_count_cb) -{ - U64 *counter = (U64 *)ud; - *counter += 1; - return 0; -} - -internal -THREAD_POOL_TASK_FUNC(lnk_chunk_counter) -{ - U64 obj_idx = task_id; - LNK_ChunkCounter *task = raw_task; - LNK_Obj *obj = &task->obj_arr[obj_idx].data; - for (U64 chunk_idx = 0; chunk_idx < obj->chunk_count; chunk_idx += 1) { - String8 name = obj->sect_name_arr[chunk_idx]; - LNK_Chunk *chunk = obj->chunk_arr[chunk_idx]; - LNK_Section *sect = lnk_section_table_search(task->sectab, name); - - U64 count = 0; - lnk_visit_chunks(0, chunk, lnk_chunk_get_count_cb, &count); - - task->chunk_counts[sect->id][obj_idx] += count; - } -} - -internal -LNK_CHUNK_VISITOR_SIG(lnk_chunk_ref_assign) -{ - LNK_ChunkRefAssign *ctx = ud; - - // alloc chunk id - U64 chunk_id = *ctx->chunk_id; - *ctx->chunk_id += 1; - - // set chunk ref - chunk->ref = lnk_chunk_ref(sect_id, chunk_id); - - // keep visiting chunks - return 0; -} - -internal -THREAD_POOL_TASK_FUNC(lnk_chunk_ref_assigner) -{ - LNK_ChunkRefAssigner *task = raw_task; - Rng1U64 range = task->range_arr[task_id]; - - for (U64 obj_idx = range.min; obj_idx < range.max; obj_idx += 1) { - LNK_Obj *obj = &task->obj_arr[obj_idx].data; - - for (U64 chunk_idx = 0; chunk_idx < obj->chunk_count; chunk_idx += 1) { - String8 name = obj->sect_name_arr[chunk_idx]; - String8 sort = obj->sect_sort_arr[chunk_idx]; - LNK_Chunk *chunk = obj->chunk_arr[chunk_idx]; - - // :find_chunk_section - LNK_Section *sect = lnk_section_table_search(task->sectab, name); - - // :chunk_ref_assign - LNK_ChunkRefAssign ctx = {0}; - ctx.cman = sect->cman; - ctx.chunk_id = &task->chunk_ids[sect->id][obj_idx]; - lnk_visit_chunks(sect->id, chunk, lnk_chunk_ref_assign, &ctx); - - // push to section chunk list - LNK_ChunkList **chunk_list_arr_arr = sort.size ? task->chunk_list_arr_arr : task->nosort_chunk_list_arr_arr; - lnk_chunk_list_push(arena, &chunk_list_arr_arr[sect->id][task_id], chunk); - } - } -} - -internal LNK_ObjNodeArray -lnk_obj_list_push_parallel(TP_Context *tp, - TP_Arena *arena, - LNK_ObjList *obj_list, - LNK_SectionTable *sectab, - U64 *function_pad_min, - COFF_MachineType machine, - U64 input_count, - LNK_InputObj **inputs) +internal LNK_SymbolInputResult +lnk_input_obj_symbols(TP_Context *tp, TP_Arena *arena, LNK_SymbolTable *symtab, LNK_ObjNodeArray objs) { ProfBeginFunction(); Temp scratch = scratch_begin(arena->v, arena->count); - - U64 obj_id_base = obj_list->count; - LNK_ObjNodeArray obj_arr = lnk_obj_list_reserve(arena->v[0], obj_list, input_count); - - ProfBegin("Obj Initer"); - { - LNK_ObjIniter task = {0}; - task.inputs = inputs; - task.obj_id_base = obj_id_base; - task.obj_node_arr = obj_arr.v; - task.function_pad_min = function_pad_min; - task.machine = machine; - tp_for_parallel(tp, arena, input_count, lnk_obj_initer, &task); - } - ProfEnd(); - - if (sectab) { - ProfBegin("Section Table Update"); - { - TP_Temp temp = tp_temp_begin(arena); - LNK_ObjNewSectScanner task; - task.range_arr = tp_divide_work(arena->v[0], obj_arr.count, tp->worker_count); - task.obj_node_arr = obj_arr.v; - task.defn_arr = push_array(arena->v[0], LNK_SectDefnList, tp->worker_count); - task.conf_arr = push_array(arena->v[0], LNK_SectDefnList, tp->worker_count); - tp_for_parallel(tp, arena, tp->worker_count, lnk_obj_new_sect_scanner, &task); + LNK_InputCoffSymbolTable task = {0}; + task.symtab = symtab; + task.objs = objs; + task.weak_lists = push_array(scratch.arena, LNK_SymbolList, tp->worker_count); + task.undef_lists = push_array(scratch.arena, LNK_SymbolList, tp->worker_count); + tp_for_parallel(tp, arena, objs.count, lnk_input_coff_symbol_table, &task); + LNK_SymbolInputResult result = {0}; + SLLConcatInPlaceArray(&result.weak_symbols, task.weak_lists, tp->worker_count); + SLLConcatInPlaceArray(&result.undef_symbols, task.undef_lists, tp->worker_count); - LNK_SectDefnList defn_list = {0}; - LNK_SectDefnList conf_list = {0}; - lnk_sect_defn_list_concat_in_place_arr(&defn_list, task.defn_arr, tp->worker_count); - lnk_sect_defn_list_concat_in_place_arr(&conf_list, task.conf_arr, tp->worker_count); - - - HashTable *ht = hash_table_init(arena->v[0], 128); - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != 0; sect_node = sect_node->next) { - LNK_Section *sect = §_node->data; - hash_table_push_string_u64(arena->v[0], ht, sect->name, sect->flags); - } - - - LNK_SectDefnList new_list = {0}; - for (LNK_SectDefn *curr = defn_list.first, *next; curr != 0; curr = next) { - next = curr->next; - curr->next = 0; - - KeyValuePair *is_present = hash_table_search_string(ht, curr->name); - if (is_present) { - if (lnk_is_error_code_active(LNK_Warning_SectionFlagsConflict)) { - COFF_SectionFlags flags = is_present->value_u64; - if (flags != curr->flags) { - lnk_sect_defn_list_push_node(&conf_list, curr); - } else { - // section is present or is in new_list - } - } - } else { - lnk_sect_defn_list_push_node(&new_list, curr); - hash_table_push_string_u64(arena->v[0], ht, curr->name, curr->flags); - } - } - - - for (LNK_SectDefn *defn = conf_list.first; defn != 0; defn = defn->next) { - KeyValuePair *is_present = hash_table_search_string(ht, defn->name); - if (!is_present) { - InvalidPath; - } - U64 sect_number = (defn->idx + 1); - COFF_SectionFlags expected_flags = is_present->value_u64; - String8 expected_flags_str = coff_string_from_section_flags(scratch.arena, expected_flags); - String8 current_flags_str = coff_string_from_section_flags(scratch.arena, defn->flags); - lnk_error_obj(LNK_Warning_SectionFlagsConflict, defn->obj, "detected section flags conflict in %S(No. %X); expected {%S} but got {%S}", defn->name, sect_number, expected_flags_str, current_flags_str); - } - - - // push new sections for :find_chunk_section - for (LNK_SectDefn *curr = new_list.first; curr != 0; curr = curr->next) { - lnk_section_table_push(sectab, curr->name, curr->flags & ~COFF_SectionFlags_LnkFlags); - } - - tp_temp_end(temp); - } - ProfEnd(); - - ProfBegin("Count Chunks Per Section"); - U64 **chunk_ids; - { - U64 **chunk_counts = push_array_no_zero(scratch.arena, U64 *, sectab->id_max); - for (U64 sect_idx = 0; sect_idx < sectab->id_max; sect_idx += 1) { - chunk_counts[sect_idx] = push_array(scratch.arena, U64, obj_arr.count); - } - - LNK_ChunkCounter task = {0}; - task.sectab = sectab; - task.obj_arr = obj_arr.v; - task.chunk_counts = chunk_counts; - tp_for_parallel(tp, 0, obj_arr.count, lnk_chunk_counter, &task); - - chunk_ids = chunk_counts; - for (U64 sect_idx = 1; sect_idx < sectab->id_max; sect_idx += 1) { - LNK_Section *sect = lnk_section_table_search_id(sectab, sect_idx); - if (!sect) continue; - for (U64 obj_idx = 0; obj_idx < obj_arr.count; obj_idx += 1) { - U64 chunk_id_base = sect->cman->total_chunk_count; - sect->cman->total_chunk_count += chunk_counts[sect_idx][obj_idx]; - chunk_ids[sect_idx][obj_idx] = chunk_id_base; - } - } - } - ProfEnd(); - - ProfBegin("Assign Chunk Refs"); - { - LNK_ChunkRefAssigner task; - task.sectab = sectab; - task.range_arr = tp_divide_work(scratch.arena, obj_arr.count, tp->worker_count); - task.chunk_ids = chunk_ids; - task.obj_arr = obj_arr.v; - task.nosort_chunk_list_arr_arr = lnk_make_chunk_list_arr_arr(scratch.arena, sectab->id_max, tp->worker_count); - task.chunk_list_arr_arr = lnk_make_chunk_list_arr_arr(scratch.arena, sectab->id_max, tp->worker_count); - tp_for_parallel(tp, arena, tp->worker_count, lnk_chunk_ref_assigner, &task); - - // merge chunks - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != 0; sect_node = sect_node->next) { - LNK_Section *sect = §_node->data; - lnk_chunk_list_concat_in_place_arr(sect->nosort_chunk->u.list, task.nosort_chunk_list_arr_arr[sect->id], tp->worker_count); - lnk_chunk_list_concat_in_place_arr(sect->root->u.list, task.chunk_list_arr_arr[sect->id], tp->worker_count); - } - } - ProfEnd(); - } - - ProfEnd(); scratch_end(scratch); - return obj_arr; -} - -internal LNK_SymbolArray -lnk_symbol_array_from_coff(Arena *arena, - LNK_Obj *obj, - String8 obj_path, - String8 lib_path, - B32 is_big_obj, - U64 function_pad_min, - U64 sect_count, - COFF_SectionHeader *section_table, - U64 symbol_count, - void *symbol_table, - String8 string_table, - LNK_ChunkPtr *chunk_table, - LNK_Chunk *master_common_block) -{ - if (function_pad_min) { - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - // read symbol - if (is_big_obj) { - symbol = coff_parse_symbol32(string_table, &((COFF_Symbol32 *)symbol_table)[symbol_idx]); - } else { - symbol = coff_parse_symbol16(string_table, &((COFF_Symbol16 *)symbol_table)[symbol_idx]); - } - - // is this a function symbol? - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular && COFF_SymbolType_IsFunc(symbol.type)) { - if (symbol.section_number == 0 || symbol.section_number > sect_count) { - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "out ouf bounds section index in symbol \"%S (%u)\"", symbol.name, symbol.section_number); - } - - U32 section_offset = 0; - if (symbol.storage_class == COFF_SymStorageClass_External || symbol.storage_class == COFF_SymStorageClass_Static) { - section_offset = symbol.value; - } - if (section_offset > section_table[symbol.section_number-1].fsize) { - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "out of bounds section offset in symbol \"%S (%u)\"", symbol.name, section_offset); - } - - LNK_Chunk *chunk = chunk_table[symbol.section_number-1]; - if (section_offset > 0) { - // convert leaf to list - // - // there is no way to know up front how many splits we have, - // so lazily convert chunks when see two or more functions - // in a section - if (chunk->type == LNK_Chunk_Leaf) { - // make a list chunk - LNK_Chunk *chunk_list = push_array(arena, LNK_Chunk, 1); - chunk_list->type = LNK_Chunk_List; - chunk_list->align = chunk->align; - chunk_list->is_discarded = chunk->is_discarded; - chunk_list->sort_idx = chunk->sort_idx; - chunk_list->input_idx = chunk->input_idx; - chunk_list->flags = chunk->flags; - chunk_list->u.list = push_array(arena, LNK_ChunkList, 1); - chunk_list->obj = obj; - lnk_chunk_set_debugf(arena, chunk_list, "function chunk list for %S", symbol.name); - - // update properties on first chunk - chunk->min_size = function_pad_min; - chunk->sort_chunk = 0; - chunk->sort_idx = str8_zero(); - chunk->input_idx = 0; - - // push leaf to list - lnk_chunk_list_push(arena, chunk_list->u.list, chunk); - - // set list as target chunk - chunk = chunk_list; - - // set list chunk to be head of this section - chunk_table[symbol.section_number-1] = chunk_list; - } - - // find chunk that is near symbol - U64 offset_cursor = 0; - LNK_ChunkNode *current = chunk->u.list->last; - for (LNK_ChunkNode *c = chunk->u.list->first; c != 0; c = c->next) { - Assert(c->data->type == LNK_Chunk_Leaf); - if (offset_cursor + c->data->u.leaf.size >= section_offset) { - current = c; - break; - } - offset_cursor += c->data->u.leaf.size; - } - Assert(current->data->type == LNK_Chunk_Leaf); - - if (offset_cursor < section_offset) { - // bifurcate chunk at symbol offset - U64 split_pos = section_offset - offset_cursor; - Rng1U64 left_data_range = rng_1u64(0, split_pos); - Rng1U64 right_data_range = rng_1u64(left_data_range.max, current->data->u.leaf.size); - String8 left_data = str8_substr(current->data->u.leaf, left_data_range); - String8 right_data = str8_substr(current->data->u.leaf, right_data_range); - - // create new chunk - LNK_Chunk *split_chunk = push_array(arena, LNK_Chunk, 1); - split_chunk->type = LNK_Chunk_Leaf; - split_chunk->align = current->data->align; - split_chunk->min_size = function_pad_min; - split_chunk->is_discarded = current->data->is_discarded; - split_chunk->flags = current->data->flags; - split_chunk->u.leaf = right_data; - split_chunk->obj = obj; - lnk_chunk_set_debugf(arena, split_chunk, "chunk split on function %S sect %x split pos %#llx", symbol.name, symbol.section_number, split_pos); - - LNK_ChunkNode *split_node = push_array(arena, LNK_ChunkNode, 1); - split_node->data = split_chunk; - - // update split chunk data - current->data->u.leaf = left_data; - - // insert split chunk after current chunk - if (split_node->next == 0) { - chunk->u.list->last = split_node; - } - split_node->next = current->next; - current->next = split_node; - chunk->u.list->count += 1; - } - } - } - } - } - - LNK_SymbolArray symbol_array = {0}; - symbol_array.count = symbol_count; - symbol_array.v = push_array(arena, LNK_Symbol, symbol_array.count); - - COFF_ParsedSymbol parsed_symbol; - for (U64 symbol_idx = 0; symbol_idx < symbol_count; symbol_idx += (1 + parsed_symbol.aux_symbol_count)) { - void *aux_symbols; - if (is_big_obj) { - COFF_Symbol32 *ptr = &((COFF_Symbol32 *)symbol_table)[symbol_idx]; - parsed_symbol = coff_parse_symbol32(string_table, ptr); - aux_symbols = parsed_symbol.aux_symbol_count ? ptr+1 : 0; - } else { - COFF_Symbol16 *ptr = (COFF_Symbol16 *)symbol_table + symbol_idx; - parsed_symbol = coff_parse_symbol16(string_table, ptr); - aux_symbols = parsed_symbol.aux_symbol_count ? ptr+1 : 0; - } - - if (symbol_idx + parsed_symbol.aux_symbol_count + 1 > symbol_count) { - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "symbol %S (No. %llx) has out of bounds aux symbol count %llu", parsed_symbol.name, symbol_idx, parsed_symbol.aux_symbol_count); - } - - COFF_SymbolValueInterpType interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); - switch (interp) { - case COFF_SymbolValueInterp_Regular: { - if (parsed_symbol.section_number == 0 || parsed_symbol.section_number > sect_count) { - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "symbol %S (No. %llx) has out ouf bounds section index %x", parsed_symbol.name, symbol_idx, parsed_symbol.section_number); - } - - U32 section_offset = 0; - if (parsed_symbol.storage_class == COFF_SymStorageClass_External || - parsed_symbol.storage_class == COFF_SymStorageClass_Static) { - section_offset = parsed_symbol.value; - } - - if (section_offset > section_table[parsed_symbol.section_number-1].fsize) { - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "symbol %S (No. %llx) has out of bounds section offset %x into section %x", parsed_symbol.name, symbol_idx, section_offset, parsed_symbol.section_number); - } - - LNK_DefinedSymbolVisibility visibility = LNK_DefinedSymbolVisibility_Static; - if (parsed_symbol.storage_class == COFF_SymStorageClass_External) { - visibility = LNK_DefinedSymbolVisibility_Extern; - } - LNK_DefinedSymbolFlags flags = 0; - if (COFF_SymbolType_IsFunc(parsed_symbol.type)) { - flags |= LNK_DefinedSymbolFlag_IsFunc; - } - - - LNK_Chunk *chunk = chunk_table[parsed_symbol.section_number-1]; - COFF_ComdatSelectType selection = COFF_ComdatSelect_Any; - U64 check_sum = 0; - - - B32 is_comdat = (section_table[parsed_symbol.section_number-1].flags & COFF_SectionFlag_LnkCOMDAT) && - parsed_symbol.value == 0 && - parsed_symbol.aux_symbol_count > 0 && - parsed_symbol.type.u.lsb == COFF_SymType_Null && - parsed_symbol.storage_class == COFF_SymStorageClass_Static; - if (is_comdat) { - COFF_SymbolSecDef *secdef = aux_symbols; - - selection = secdef->selection; - check_sum = secdef->check_sum; - - // create association link between chunks - if (secdef->selection == COFF_ComdatSelect_Associative) { - U32 secdef_number = secdef->number_lo; - - // promote secdef number to 32 bits - if (is_big_obj) { - secdef_number |= (U32)secdef->number_hi << 16; - } - - // associate chunks - if (secdef_number > 0 && secdef_number <= sect_count) { - LNK_Chunk *head_chunk = chunk_table[secdef_number-1]; - LNK_Chunk *associate_chunk = chunk_table[parsed_symbol.section_number-1]; - lnk_chunk_associate(head_chunk, associate_chunk); - } else { - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "symbol %S (No. %llx) has out of bounds section definition number %u", parsed_symbol.name, symbol_idx, secdef_number); - } - } - } - - - if (chunk->type == LNK_Chunk_List) { - LNK_Chunk *closest_chunk = chunk->u.list->last->data; - U64 offset_cursor = 0; - for (LNK_ChunkNode *c = chunk->u.list->first; c != 0; c = c->next) { - if (offset_cursor + c->data->u.leaf.size > section_offset) { - closest_chunk = c->data; - break; - } - offset_cursor += c->data->u.leaf.size; - } - Assert(section_offset >= offset_cursor); - section_offset -= offset_cursor; - chunk = closest_chunk; - } - Assert(chunk->type == LNK_Chunk_Leaf); - - lnk_init_defined_symbol_chunk(&symbol_array.v[symbol_idx], parsed_symbol.name, visibility, flags, chunk, section_offset, selection, check_sum); - symbol_array.v[symbol_idx].obj = obj; - } break; - case COFF_SymbolValueInterp_Weak: { - if (parsed_symbol.aux_symbol_count == 0) { - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "weak symbol \"%S (%u)\" must at least one aux symbol", parsed_symbol.name, symbol_idx); - } - - COFF_SymbolWeakExt *weak_ext = aux_symbols; - if (weak_ext->tag_index >= symbol_count) { - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "weak symbol \"%S (%u)\" points to out of bounds symbol", parsed_symbol.name, symbol_idx); - } - - LNK_Symbol *symbol = &symbol_array.v[symbol_idx]; - LNK_Symbol *fallback_symbol = &symbol_array.v[weak_ext->tag_index]; - lnk_init_weak_symbol(symbol, parsed_symbol.name, weak_ext->characteristics, fallback_symbol); - - symbol->obj = obj; - fallback_symbol->obj = obj; - } break; - case COFF_SymbolValueInterp_Undefined: { - LNK_Symbol *symbol = &symbol_array.v[symbol_idx]; - lnk_init_undefined_symbol(symbol, parsed_symbol.name, LNK_SymbolScopeFlag_Main); - symbol->obj = obj; - } break; - case COFF_SymbolValueInterp_Common: { - // :common_block - // - // TODO: sort chunks on size to reduce bss usage - LNK_Chunk *chunk = push_array(arena, LNK_Chunk, 1); - chunk->align = Min(32, u64_up_to_pow2(parsed_symbol.value)); // link.exe caps align at 32 bytes - chunk->type = LNK_Chunk_Leaf; - chunk->flags = master_common_block->flags; - chunk->u.leaf = str8(0, parsed_symbol.value); - chunk->obj = obj; - lnk_chunk_set_debugf(arena, chunk, "common block %S", parsed_symbol.name); - lnk_chunk_list_push(arena, master_common_block->u.list, chunk); - - LNK_DefinedSymbolFlags flags = 0; - if (COFF_SymbolType_IsFunc(parsed_symbol.type)) { - flags |= LNK_DefinedSymbolFlag_IsFunc; - } - - LNK_Symbol *symbol = &symbol_array.v[symbol_idx]; - lnk_init_defined_symbol_chunk(symbol, parsed_symbol.name, LNK_DefinedSymbolVisibility_Extern, flags, chunk, 0, COFF_ComdatSelect_Largest, 0); - symbol->obj = obj; - } break; - case COFF_SymbolValueInterp_Abs: { - // Never code or data, synthetic symbol. COFF spec says bits in value are used - // as flags in symbol @feat.00, other symbols like @comp.id and @vol.md are undocumented. - // LLVM uses undocumented mask 0x4800 on @feat.00 to tell if object was compiled with /guard:cf. - - LNK_DefinedSymbolVisibility visibility = LNK_DefinedSymbolVisibility_Static; - if (parsed_symbol.storage_class == COFF_SymStorageClass_External) { - visibility = LNK_DefinedSymbolVisibility_Extern; - } - - LNK_Symbol *symbol = &symbol_array.v[symbol_idx]; - lnk_init_defined_symbol_va(symbol, parsed_symbol.name, visibility, 0, parsed_symbol.value); - symbol->obj = obj; - } break; - case COFF_SymbolValueInterp_Debug: { - } break; - } - } - - return symbol_array; -} - -internal LNK_RelocList * -lnk_reloc_list_array_from_coff(Arena *arena, COFF_MachineType machine, String8 coff_data, U64 sect_count, COFF_SectionHeader *coff_sect_arr, LNK_ChunkPtr *chunk_ptr_arr, LNK_SymbolArray symbol_array) -{ - LNK_RelocList *reloc_list_arr = push_array_no_zero(arena, LNK_RelocList, sect_count); - for (U64 sect_idx = 0; sect_idx < sect_count; ++sect_idx) { - COFF_SectionHeader *coff_sect_header = &coff_sect_arr[sect_idx]; - COFF_RelocInfo coff_reloc_info = coff_reloc_info_from_section_header(coff_data, coff_sect_header); - COFF_Reloc *coff_reloc_v = (COFF_Reloc *)(coff_data.str + coff_reloc_info.array_off); - LNK_Chunk *sect_chunk = chunk_ptr_arr[sect_idx]; - reloc_list_arr[sect_idx] = lnk_reloc_list_from_coff_reloc_array(arena, machine, sect_chunk, symbol_array, coff_reloc_v, coff_reloc_info.count); - } - return reloc_list_arr; -} - -internal MSCRT_FeatFlags -lnk_obj_get_features(LNK_Obj *obj) -{ - MSCRT_FeatFlags result = 0; - LNK_Symbol *sym = lnk_symbol_list_search(obj->symbol_list, str8_lit("@feat.00"), 0); - if (sym) { - Assert(LNK_Symbol_IsDefined(sym->type)); - Assert(sym->u.defined.value_type == LNK_DefinedSymbolValue_VA); - result = sym->u.defined.u.va; - } - return result; -} - -internal U32 -lnk_obj_get_comp_id(LNK_Obj *obj) -{ - U32 result = 0; - LNK_Symbol *sym = lnk_symbol_list_search(obj->symbol_list, str8_lit("@comp.id"), 0); - if (sym) { - Assert(LNK_Symbol_IsDefined(sym->type)); - Assert(sym->u.defined.value_type == LNK_DefinedSymbolValue_VA); - result = sym->u.defined.u.va; - } - return result; -} - -internal U32 -lnk_obj_get_vol_md(LNK_Obj *obj) -{ - U32 result = 0; - LNK_Symbol *sym = lnk_symbol_list_search(obj->symbol_list, str8_lit("@vol.md"), 0); - if (sym) { - Assert(LNK_Symbol_IsDefined(sym->type)); - Assert(sym->u.defined.value_type == LNK_DefinedSymbolValue_VA); - result = sym->u.defined.u.va; - } + ProfEnd(); return result; } diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index ca5c48e0..c0c15ea5 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -1,27 +1,37 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once //////////////////////////////// -typedef struct LNK_InputObj +typedef struct LNK_Obj { - struct LNK_InputObj *next; - B32 is_thin; - B32 has_disk_read_failed; - String8 dedup_id; - String8 path; - String8 data; - String8 lib_path; -} LNK_InputObj; + String8 data; + String8 path; + String8 lib_path; + U64 input_idx; + COFF_FileHeaderInfo header; +} LNK_Obj; -typedef struct LNK_InputObjList +typedef struct LNK_ObjNode { - U64 count; - LNK_InputObj *first; - LNK_InputObj *last; -} LNK_InputObjList; + struct LNK_ObjNode *next; + LNK_Obj data; +} LNK_ObjNode; + +typedef struct LNK_ObjList +{ + U64 count; + LNK_ObjNode *first; + LNK_ObjNode *last; +} LNK_ObjList; + +typedef struct LNK_ObjNodeArray +{ + U64 count; + LNK_ObjNode *v; +} LNK_ObjNodeArray; //////////////////////////////// @@ -46,133 +56,29 @@ typedef struct LNK_DirectiveInfo //////////////////////////////// -#define LNK_MakeChunkInputIdx(obj_idx, sect_idx) (((U64)(obj_idx) << 32) | (U64)((sect_idx) & max_U32)) - -typedef struct LNK_Obj +typedef struct LNK_SymbolInputResult { - String8 data; - String8 path; - String8 lib_path; - U64 input_idx; - COFF_MachineType machine; - U64 chunk_count; - U64 sect_count; - String8 *sect_name_arr; - String8 *sect_sort_arr; - LNK_RelocList *sect_reloc_list_arr; - LNK_ChunkPtr *chunk_arr; - LNK_SymbolList symbol_list; -} LNK_Obj; - -typedef struct LNK_ObjNode -{ - struct LNK_ObjNode *next; - LNK_Obj data; -} LNK_ObjNode; - -typedef struct LNK_ObjList -{ - U64 count; - LNK_ObjNode *first; - LNK_ObjNode *last; -} LNK_ObjList; - -typedef struct LNK_ObjNodeArray -{ - U64 count; - LNK_ObjNode *v; -} LNK_ObjNodeArray; + LNK_SymbolList weak_symbols; + LNK_SymbolList undef_symbols; +} LNK_SymbolInputResult; //////////////////////////////// -typedef struct LNK_SectDefn -{ - struct LNK_SectDefn *next; - LNK_Obj *obj; - String8 name; - COFF_SectionFlags flags; - U64 idx; -} LNK_SectDefn; - -typedef struct -{ - U64 count; - LNK_SectDefn *first; - LNK_SectDefn *last; -} LNK_SectDefnList; - typedef struct { LNK_InputObj **inputs; - LNK_ObjNode *obj_node_arr; + LNK_ObjNodeArray objs; U64 obj_id_base; - LNK_SectDefnList *defn_arr; - LNK_SectionTable *sectab; - U64 *function_pad_min; U32 machine; } LNK_ObjIniter; typedef struct { - Rng1U64 *range_arr; - LNK_ObjNode *obj_node_arr; - LNK_SectDefnList *defn_arr; - LNK_SectDefnList *conf_arr; -} LNK_ObjNewSectScanner; - -typedef struct -{ - LNK_SectionTable *sectab; - LNK_ObjNode *obj_arr; - U64 **chunk_counts; -} LNK_ChunkCounter; - -typedef struct -{ - LNK_ChunkManager *cman; - U64 *chunk_id; -} LNK_ChunkRefAssign; - -typedef struct -{ - LNK_SectionTable *sectab; - Rng1U64 *range_arr; - U64 **chunk_ids; - LNK_ObjNode *obj_arr; - LNK_ChunkList **nosort_chunk_list_arr_arr; - LNK_ChunkList **chunk_list_arr_arr; -} LNK_ChunkRefAssigner; - -typedef struct -{ - LNK_SymbolType type; - LNK_ObjNodeArray in_arr; - LNK_SymbolList *out_arr; - Rng1U64 *range_arr; -} LNK_SymbolCollector; - -typedef struct -{ - LNK_Obj **obj_arr; - String8 name; - String8 postfix; - B32 collect_discarded; - LNK_ChunkList *list_arr; -} LNK_CollectObjChunksTaskData; - -typedef struct -{ - Rng1U64 *range_arr; - LNK_ObjNodeArray in_arr; - String8List *out_arr; -} LNK_DefaultLibCollector; - -typedef struct -{ - LNK_ObjNode *in_arr; - String8List *out_arr; - Rng1U64 *range_arr; -} LNK_ManifestDependencyCollector; + LNK_SymbolTable *symtab; + LNK_ObjNodeArray objs; + LNK_SymbolList *weak_lists; + LNK_SymbolList *undef_lists; +} LNK_InputCoffSymbolTable; //////////////////////////////// @@ -180,29 +86,31 @@ internal void lnk_error_obj(LNK_ErrorCode code, LNK_Obj *obj, char *fmt, ...); //////////////////////////////// -internal void lnk_input_obj_list_push_node(LNK_InputObjList *list, LNK_InputObj *node); -internal void lnk_input_obj_list_concat_in_place(LNK_InputObjList *list, LNK_InputObjList *to_concat); -internal LNK_InputObj * lnk_input_obj_list_push(Arena *arena, LNK_InputObjList *list); -internal LNK_InputObj ** lnk_array_from_input_obj_list(Arena *arena, LNK_InputObjList list); -internal LNK_InputObjList lnk_input_obj_list_from_string_list(Arena *arena, String8List list); -internal LNK_InputObjList lnk_list_from_input_obj_arr(LNK_InputObj **arr, U64 count); - -//////////////////////////////// - -internal LNK_InputObjList lnk_input_obj_list_from_string_list(Arena *arena, String8List list); - internal LNK_Obj ** lnk_obj_arr_from_list(Arena *arena, LNK_ObjList list); internal LNK_ObjNodeArray lnk_obj_list_reserve(Arena *arena, LNK_ObjList *list, U64 count); -internal LNK_ChunkList * lnk_collect_obj_chunks(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8 name, String8 postfix, B32 collect_discarded); -internal LNK_ObjNodeArray lnk_obj_list_push_parallel(TP_Context *tp, TP_Arena *tp_arena, LNK_ObjList *obj_list, LNK_SectionTable *sectab, U64 *function_pad_min, COFF_MachineType machine, U64 input_count, LNK_InputObj **inputs); +internal LNK_ObjNodeArray lnk_obj_list_push_parallel(TP_Context *tp, TP_Arena *tp_arena, LNK_ObjList *obj_list, COFF_MachineType machine, U64 input_count, LNK_InputObj **inputs); -internal LNK_Chunk * lnk_sect_chunk_array_from_coff(Arena *arena, U64 obj_id, String8 obj_path, String8 coff_data, U64 sect_count, COFF_SectionHeader *coff_sect_arr, String8 *sect_name_arr, String8 *sect_postfix_arr); -internal LNK_SymbolArray lnk_symbol_array_from_coff(Arena *arena, LNK_Obj *obj, String8 obj_path, String8 lib_path, B32 is_big_obj, U64 function_pad_min, U64 sect_count, COFF_SectionHeader *section_table, U64 symbol_count, void *symbol_table, String8 string_table, LNK_ChunkPtr *chunk_table, LNK_Chunk *master_common_block); -internal LNK_RelocList lnk_reloc_list_from_coff_reloc_array(Arena *arena, COFF_MachineType machine, LNK_Chunk *chunk, LNK_SymbolArray symbol_array, COFF_Reloc *reloc_v, U64 reloc_count); -internal LNK_RelocList * lnk_reloc_list_array_from_coff(Arena *arena, COFF_MachineType machine, String8 coff_data, U64 sect_count, COFF_SectionHeader *coff_sect_arr, LNK_ChunkPtr *chunk_ptr_arr, LNK_SymbolArray symbol_array); -internal LNK_DirectiveInfo lnk_directive_info_from_sections(Arena *arena, String8 obj_path, String8 lib_path, U64 chunk_count, LNK_RelocList *reloc_list_arr, String8 *sect_name_arr, LNK_Chunk *chunk_arr); +internal LNK_Obj ** lnk_obj_arr_from_list(Arena *arena, LNK_ObjList list); + +//////////////////////////////// internal U32 lnk_obj_get_features(LNK_Obj *obj); internal U32 lnk_obj_get_comp_id(LNK_Obj *obj); internal U32 lnk_obj_get_vol_md(LNK_Obj *obj); +internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff(LNK_Obj *obj, void *coff_symbol); +internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff_symbol_idx(LNK_Obj *obj, U64 symbol_idx); + +//////////////////////////////// + +internal String8List * lnk_collect_obj_chunks_parallel(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8 name, String8 postfix, B32 collect_discarded); +internal String8List lnk_collect_obj_chunks(Arena *arena, LNK_Obj *obj, String8 name, String8 postfix, B32 collect_discarded); + +//////////////////////////////// + +internal void lnk_parse_msvc_linker_directive(Arena *arena, LNK_Obj *obj, LNK_DirectiveInfo *directive_info, String8 buffer); + +//////////////////////////////// + +internal LNK_SymbolList lnk_run_symbol_collector(TP_Context *tp, TP_Arena *arena, LNK_ObjNodeArray arr, LNK_SymbolType symbol_type); + diff --git a/src/linker/lnk_reloc.c b/src/linker/lnk_reloc.c deleted file mode 100644 index f78df7e6..00000000 --- a/src/linker/lnk_reloc.c +++ /dev/null @@ -1,175 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -internal LNK_Reloc * -lnk_reloc_list_reserve(Arena *arena, LNK_RelocList *list, U64 count) -{ - LNK_Reloc *arr = NULL; - if (count) { - arr = push_array(arena, LNK_Reloc, count); - for (LNK_Reloc *ptr = arr, *opl = arr + count; ptr < opl; ++ptr) { - SLLQueuePush(list->first, list->last, ptr); - } - list->count += count; - } - return arr; -} - -internal LNK_Reloc * -lnk_reloc_list_push(Arena *arena, LNK_RelocList *list) -{ - LNK_Reloc *node = push_array(arena, LNK_Reloc, 1); - SLLQueuePush(list->first, list->last, node); - list->count += 1; - return node; -} - -internal LNK_RelocList -lnk_reloc_list_copy(Arena *arena, LNK_RelocList *list) -{ - LNK_RelocList result = {0}; - for (LNK_Reloc *n = list->first; n != NULL; n = n->next) { - LNK_Reloc *r = lnk_reloc_list_push(arena, &result); - r->chunk = n->chunk; - r->type = n->type; - r->apply_off = n->apply_off; - r->symbol = n->symbol; - } - return result; -} - -internal void -lnk_reloc_list_concat_in_place(LNK_RelocList *list, LNK_RelocList *to_concat) -{ - SLLConcatInPlace(list, to_concat); -} - -internal void -lnk_reloc_list_concat_in_place_arr(LNK_RelocList *list, LNK_RelocList *arr, U64 count) -{ - SLLConcatInPlaceArray(list, arr, count); -} - -internal LNK_RelocList ** -lnk_make_reloc_list_arr_arr(Arena *arena, U64 slot_count, U64 per_count) -{ - LNK_RelocList **arr_arr = push_array_no_zero(arena, LNK_RelocList *, slot_count); - for (U64 i = 0; i < slot_count; i += 1) { - arr_arr[i] = push_array(arena, LNK_RelocList, per_count); - } - return arr_arr; -} - -internal LNK_RelocList -lnk_reloc_list_from_coff_reloc_array(Arena *arena, COFF_MachineType machine, LNK_Chunk *chunk, LNK_SymbolArray symbol_array, COFF_Reloc *reloc_v, U64 reloc_count) -{ - LNK_RelocList reloc_list = {0}; - - LNK_Reloc *reloc_arr = lnk_reloc_list_reserve(arena, &reloc_list, reloc_count); - LNK_Reloc *reloc_ptr = reloc_arr; - LNK_Reloc *reloc_opl = reloc_arr + reloc_count; - COFF_Reloc *coff_reloc_ptr = reloc_v; - - for (; reloc_ptr < reloc_opl; ++reloc_ptr, ++coff_reloc_ptr) { - LNK_RelocType type = lnk_ext_reloc_type_from_coff(machine, coff_reloc_ptr->type); - LNK_Chunk *reloc_chunk = chunk; - U64 apply_off = coff_reloc_ptr->apply_off; - LNK_Symbol *symbol = symbol_array.v + coff_reloc_ptr->isymbol; - - if (chunk->type == LNK_Chunk_List) { - reloc_chunk = chunk->u.list->last->data; - U64 cursor = 0; - for (LNK_ChunkNode *c = chunk->u.list->first; c != 0; c = c->next) { - Assert(c->data->type == LNK_Chunk_Leaf); - if (coff_reloc_ptr->apply_off < cursor + c->data->u.leaf.size) { - reloc_chunk = c->data; - break; - } - cursor += c->data->u.leaf.size; - } - apply_off = coff_reloc_ptr->apply_off - cursor; - } - - Assert(reloc_chunk->type == LNK_Chunk_Leaf); - Assert(coff_reloc_ptr->isymbol < symbol_array.count); - reloc_ptr->chunk = reloc_chunk; - reloc_ptr->type = type; - reloc_ptr->apply_off = apply_off; - reloc_ptr->symbol = symbol; - } - return reloc_list; -} - -internal LNK_Reloc ** -lnk_reloc_array_from_list(Arena *arena, LNK_RelocList list) -{ - LNK_Reloc **arr = push_array_no_zero(arena, LNK_Reloc *, list.count); - U64 count = 0; - for (LNK_Reloc *node = list.first; node != 0; node = node->next) { - Assert(count < list.count); - arr[count++] = node; - } - return arr; -} - -internal LNK_RelocType -lnk_ext_reloc_type_from_coff(COFF_MachineType machine, U32 type) -{ - LNK_RelocType result = LNK_Reloc_NULL; - switch (machine) { - case COFF_MachineType_Unknown: break; - case COFF_MachineType_X64: { - switch (type) { - case COFF_Reloc_X64_Abs: result = LNK_Reloc_NULL; break; - case COFF_Reloc_X64_Addr64: result = LNK_Reloc_ADDR_64; break; - case COFF_Reloc_X64_Addr32: result = LNK_Reloc_ADDR_32; break; - case COFF_Reloc_X64_Addr32Nb: result = LNK_Reloc_VIRT_OFF_32; break; - case COFF_Reloc_X64_Rel32: result = LNK_Reloc_REL32; break; - case COFF_Reloc_X64_Rel32_1: result = LNK_Reloc_REL32_1; break; - case COFF_Reloc_X64_Rel32_2: result = LNK_Reloc_REL32_2; break; - case COFF_Reloc_X64_Rel32_3: result = LNK_Reloc_REL32_3; break; - case COFF_Reloc_X64_Rel32_4: result = LNK_Reloc_REL32_4; break; - case COFF_Reloc_X64_Rel32_5: result = LNK_Reloc_REL32_5; break; - case COFF_Reloc_X64_Section: result = LNK_Reloc_SECT_IDX; break; - case COFF_Reloc_X64_SecRel: result = LNK_Reloc_SECT_REL; break; - case COFF_Reloc_X64_SecRel7: lnk_not_implemented("TODO: COFF_Reloc_X64_SecRel7"); break; - case COFF_Reloc_X64_Token: lnk_not_implemented("TODO: COFF_Reloc_X64_Token"); break; - case COFF_Reloc_X64_SRel32: lnk_not_implemented("TODO: COFF_Reloc_X64_SRel32"); break; - case COFF_Reloc_X64_Pair: lnk_not_implemented("TODO: COFF_Reloc_X64_Pair"); break; - case COFF_Reloc_X64_SSpan32: lnk_not_implemented("TODO: COFF_Reloc_X64_SSpan32"); break; - default: lnk_invalid_path("unknown relocation type 0x%X", type); - } - } break; - default: lnk_not_implemented("TODO: define remap for coff reloc types"); break; - } - return result; -} - -internal U32 -lnk_ext_reloc_type_to_coff(COFF_MachineType machine, LNK_RelocType type) -{ - U32 result = 0; - switch (machine) { - case COFF_MachineType_X64: { - switch (type) { - case LNK_Reloc_NULL: result = COFF_Reloc_X64_Abs; break; - case LNK_Reloc_ADDR_64: result = COFF_Reloc_X64_Addr64; break; - case LNK_Reloc_ADDR_32: result = COFF_Reloc_X64_Addr32; break; - case LNK_Reloc_VIRT_OFF_32: result = COFF_Reloc_X64_Addr32Nb; break; - case LNK_Reloc_REL32: result = COFF_Reloc_X64_Rel32; break; - case LNK_Reloc_REL32_1: result = COFF_Reloc_X64_Rel32_1; break; - case LNK_Reloc_REL32_2: result = COFF_Reloc_X64_Rel32_2; break; - case LNK_Reloc_REL32_3: result = COFF_Reloc_X64_Rel32_3; break; - case LNK_Reloc_REL32_4: result = COFF_Reloc_X64_Rel32_4; break; - case LNK_Reloc_REL32_5: result = COFF_Reloc_X64_Rel32_5; break; - case LNK_Reloc_SECT_IDX: result = COFF_Reloc_X64_Section; break; - case LNK_Reloc_SECT_REL: result = COFF_Reloc_X64_SecRel; break; - default: InvalidPath; - } - } break; - default: lnk_not_implemented("TODO: support for machine 0x%X", machine); break; - } - return result; -} - - diff --git a/src/linker/lnk_reloc.h b/src/linker/lnk_reloc.h deleted file mode 100644 index 11e69e3f..00000000 --- a/src/linker/lnk_reloc.h +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#pragma once - -typedef enum -{ - LNK_Reloc_NULL, - LNK_Reloc_ADDR_16, - LNK_Reloc_ADDR_32, - LNK_Reloc_ADDR_64, - LNK_Reloc_CHUNK_SIZE_FILE_16, - LNK_Reloc_CHUNK_SIZE_FILE_32, - LNK_Reloc_CHUNK_SIZE_VIRT_32, - LNK_Reloc_FILE_ALIGN_32, - LNK_Reloc_FILE_OFF_15, - LNK_Reloc_FILE_OFF_32, - LNK_Reloc_FILE_OFF_64, - LNK_Reloc_REL32, - LNK_Reloc_REL32_1, - LNK_Reloc_REL32_2, - LNK_Reloc_REL32_3, - LNK_Reloc_REL32_4, - LNK_Reloc_REL32_5, - LNK_Reloc_SECT_REL, - LNK_Reloc_SECT_IDX, - LNK_Reloc_VIRT_ALIGN_32, - LNK_Reloc_VIRT_OFF_32, -} LNK_RelocType; - -typedef struct LNK_Reloc -{ - struct LNK_Reloc *next; - LNK_Chunk *chunk; - LNK_RelocType type; - U64 apply_off; - struct LNK_Symbol *symbol; -} LNK_Reloc; - -typedef struct LNK_RelocList -{ - U64 count; - LNK_Reloc *first; - LNK_Reloc *last; -} LNK_RelocList; - -internal LNK_Reloc * lnk_reloc_list_reserve(Arena *arena, LNK_RelocList *list, U64 count); -internal LNK_Reloc * lnk_reloc_list_push(Arena *arena, LNK_RelocList *list); -internal LNK_RelocList lnk_reloc_list_copy(Arena *arena, LNK_RelocList *list); -internal void lnk_reloc_list_concat_in_place(LNK_RelocList *list, LNK_RelocList *to_concat); -internal void lnk_reloc_list_concat_in_place_arr(LNK_RelocList *list, LNK_RelocList *arr, U64 count); -internal LNK_RelocList ** lnk_make_reloc_list_arr_arr(Arena *arena, U64 slot_count, U64 per_count); -internal LNK_Reloc ** lnk_reloc_array_from_list(Arena *arena, LNK_RelocList list); -internal LNK_RelocType lnk_ext_reloc_type_from_coff(COFF_MachineType machine, U32 type); -internal U32 lnk_ext_reloc_type_to_coff(COFF_MachineType machine, LNK_RelocType type); - diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index 4da0b857..529a25bf 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -1,236 +1,6 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -internal LNK_SectionNode * -lnk_section_list_remove(LNK_SectionList *list, String8 name) -{ - LNK_SectionNode *section = lnk_section_list_search_node(list, name); - - if (list->count > 0) { - if (list->first == section) { - list->first = list->first->next; - list->count -= 1; - - if (list->last == section) { - list->last = NULL; - } - } else { - for (LNK_SectionNode *curr = list->first, *prev = NULL; curr != NULL; prev = curr, curr = curr->next) { - if (curr == section) { - prev->next = curr->next; - list->count -= 1; - - if (list->last == curr) { - list->last = prev; - } - - break; - } - } - } - } - return section; -} - -internal LNK_SectionNode * -lnk_section_list_search_node(LNK_SectionList *list, String8 name) -{ - LNK_SectionNode *node; - for (node = list->first; node != 0; node = node->next) { - if (str8_match(node->data.name, name, 0)) { - break; - } - } - return node; -} - -internal LNK_Section * -lnk_section_list_search(LNK_SectionList *list, String8 name) -{ - LNK_SectionNode *node = lnk_section_list_search_node(list, name); - return node != NULL ? &node->data : NULL; -} - -internal LNK_SectionArray -lnk_section_array_from_list(Arena *arena, LNK_SectionList list) -{ - LNK_SectionArray result; - result.count = 0; - result.v = push_array_no_zero(arena, LNK_Section, list.count); - for (LNK_SectionNode *node = list.first; node != 0; node = node->next) { - result.v[result.count] = node->data; - result.count += 1; - } - return result; -} - -internal LNK_SectionPtrArray -lnk_section_ptr_array_from_list(Arena *arena, LNK_SectionList list) -{ - LNK_SectionPtrArray result; - result.count = 0; - result.v = push_array_no_zero(arena, LNK_Section *, list.count); - for (LNK_SectionNode *node = list.first; node != 0; node = node->next) { - result.v[result.count] = &node->data; - result.count += 1; - } - return result; -} - -internal String8 -lnk_make_section_sort_index(Arena *arena, String8 name, COFF_SectionFlags flags, U64 section_index) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - // pack sections with run-time data closer - String8List sort_index_list = {0}; - if (flags & COFF_SectionFlag_MemDiscardable) { - str8_list_pushf(scratch.arena, &sort_index_list, "b"); - } else { - str8_list_pushf(scratch.arena, &sort_index_list, "a"); - } - - if (str8_match_lit(".null", name, 0)) { - // null section always first - str8_list_pushf(scratch.arena, &sort_index_list, "a"); - } else if (str8_match_lit(".rsrc", name, 0)) { - // section with resource data must be last because during runtime windows might append pages - str8_list_pushf(scratch.arena, &sort_index_list, "c"); - } else { - str8_list_pushf(scratch.arena, &sort_index_list, "b"); - } - - // sort sections based on the contents - if (flags & COFF_SectionFlag_CntCode) { - str8_list_pushf(scratch.arena, &sort_index_list, "a"); - if (str8_match_lit(".text", name, 0)) { - str8_list_pushf(scratch.arena, &sort_index_list, "a"); - } else { - str8_list_pushf(scratch.arena, &sort_index_list, "b"); - } - } else if (flags & COFF_SectionFlag_CntInitializedData) { - str8_list_pushf(scratch.arena, &sort_index_list, "b"); - if (str8_match_lit(".data", name, 0)) { - str8_list_pushf(scratch.arena, &sort_index_list, "a"); - } else if (str8_match_lit(".rdata", name, 0)) { - str8_list_pushf(scratch.arena, &sort_index_list, "b"); - } else if (str8_match_lit(".tls", name, 0)) { - str8_list_pushf(scratch.arena, &sort_index_list, "c"); - } else { - str8_list_pushf(scratch.arena, &sort_index_list, "d"); - } - } else if (flags & COFF_SectionFlag_CntUninitializedData) { - str8_list_pushf(scratch.arena, &sort_index_list, "c"); - } else { - str8_list_pushf(scratch.arena, &sort_index_list, "d"); - } - - // sort sections based on read/write access so final section layout looks cleaner - if (flags & COFF_SectionFlag_MemRead && ~flags & COFF_SectionFlag_MemWrite) { - str8_list_pushf(scratch.arena, &sort_index_list, "a"); - } else { - str8_list_pushf(scratch.arena, &sort_index_list, "b"); - } - - String8 order_index = str8_from_bits_u32(scratch.arena, safe_cast_u32(section_index)); - str8_list_push(scratch.arena, &sort_index_list, order_index); - - String8 result = str8_list_join(arena, &sort_index_list, 0); - scratch_end(scratch); - ProfEnd(); - return result; -} - -internal void -lnk_section_associate_chunks(LNK_Section *sect, LNK_Chunk *head, LNK_Chunk *associate) -{ - lnk_chunk_associate(head, associate); -} - -internal LNK_Chunk * -lnk_section_push_chunk_raw(LNK_Section *sect, LNK_Chunk *parent, void *raw_ptr, U64 raw_size, String8 sort_index) -{ - return lnk_chunk_push_leaf(sect->arena, sect->cman, parent, sort_index, raw_ptr, raw_size); -} - -internal LNK_Chunk * -lnk_section_push_chunk_data(LNK_Section *sect, LNK_Chunk *parent, String8 data, String8 sort_index) -{ - return lnk_section_push_chunk_raw(sect, parent, data.str, data.size, sort_index); -} - -internal LNK_Chunk * -lnk_section_push_chunk_u32(LNK_Section *sect, LNK_Chunk *parent, U32 value, String8 sort_index) -{ - U32 *ptr = push_array_no_zero(sect->arena, U32, 1); - *ptr = value; - return lnk_section_push_chunk_raw(sect, parent, ptr, sizeof(*ptr), sort_index); -} - -internal LNK_Chunk * -lnk_section_push_chunk_u64(LNK_Section *sect, LNK_Chunk *parent, U32 value, String8 sort_index) -{ - U64 *ptr = push_array_no_zero(sect->arena, U64, 1); - *ptr = value; - return lnk_section_push_chunk_raw(sect, parent, ptr, sizeof(*ptr), sort_index); -} - -internal LNK_Chunk * -lnk_section_push_chunk_bss(LNK_Section *sect, LNK_Chunk *parent, U64 size, String8 sort_index) -{ - return lnk_section_push_chunk_raw(sect, parent, 0, size, sort_index); -} - -internal LNK_Chunk * -lnk_section_push_chunk_list(LNK_Section *sect, LNK_Chunk *parent, String8 sort_index) -{ - return lnk_chunk_push_list(sect->arena, sect->cman, parent, sort_index); -} - -internal LNK_Reloc * -lnk_section_push_reloc(LNK_Section *sect, LNK_Chunk *chunk, LNK_RelocType type, U64 apply_off, LNK_Symbol *symbol) -{ - Assert(symbol); - LNK_Reloc *reloc = lnk_reloc_list_push(sect->arena, §->reloc_list); - reloc->chunk = chunk; - reloc->type = type; - reloc->apply_off = apply_off; - reloc->symbol = symbol; - return reloc; -} - -internal LNK_Reloc * -lnk_section_push_reloc_undefined(LNK_Section *sect, LNK_Chunk *chunk, LNK_RelocType type, U64 apply_off, String8 undefined_symbol_name, LNK_SymbolScopeFlags scope_flags) -{ - LNK_Symbol *symbol = lnk_make_undefined_symbol(sect->arena, undefined_symbol_name, scope_flags); - LNK_Reloc *reloc = lnk_section_push_reloc(sect, chunk, type, apply_off, symbol); - return reloc; -} - -internal void -lnk_section_merge(LNK_Section *dst, LNK_Section *src) -{ - ProfBeginFunction(); - - // set merge info - src->is_merged = 1; - src->merge_sect_id = dst->id; - src->id_map = push_array_no_zero(src->arena, U64, src->cman->total_chunk_count); - - // put source root in a wrapper list so it has unique sort index otherwise - // after we merge sections sort indices might conflict - LNK_Chunk *src_root_wrapper = lnk_section_push_chunk_list(dst, dst->cman->root, str8(0,0)); - - // merge roots - lnk_merge_chunks(dst->arena, dst->cman, src_root_wrapper, src->cman->root, src->id_map, src->cman->total_chunk_count); - - // copy relocations - lnk_reloc_list_concat_in_place(&dst->reloc_list, &src->reloc_list); - - ProfEnd(); -} - internal U8 lnk_code_align_byte_from_machine(COFF_MachineType machine) { @@ -247,35 +17,103 @@ lnk_code_align_byte_from_machine(COFF_MachineType machine) return align_byte; } -internal void -lnk_section_build_data(LNK_Section *sect, COFF_MachineType machine) +internal U16 +lnk_default_align_from_machine(COFF_MachineType machine) { - if (sect->is_loose) { - if (sect->has_layout) { - sect->layout = lnk_build_chunk_layout(sect->arena, sect->cman); - } else { - sect->layout.total_count = sect->cman->total_chunk_count; - sect->layout.chunk_ptr_array = lnk_make_chunk_id_map(sect->arena, sect->cman); - sect->layout.chunk_off_array = 0; - sect->layout.chunk_file_size_array = 0; - sect->layout.chunk_virt_size_array = 0; - sect->layout.pad_array_count = 0; - sect->layout.pad_array = 0; - } - sect->is_loose = 0; + U16 align = 0; + switch (machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X64: { + align = 16; + } break; + default: { NotImplemented; } break; + } + return align; +} + +internal LNK_SectionContrib * +lnk_section_contrib_chunk_push(LNK_SectionContribChunk *chunk, U64 count) +{ + Assert(chunk->count + count <= chunk->cap); + LNK_SectionContrib *result = &chunk->v[chunk->count]; + chunk->count += count; + return result; +} + +internal LNK_SectionContribChunk * +lnk_section_contrib_chunk_list_push_chunk(Arena *arena, LNK_SectionContribChunkList *list, U64 cap) +{ + LNK_SectionContribChunk *chunk = push_array(arena, LNK_SectionContribChunk, 1); + chunk->count = 0; + chunk->cap = cap; + chunk->v = push_array(arena, LNK_SectionContrib, cap); + SLLQueuePush(list->first, list->last, chunk); + list->chunk_count += 1; + return chunk; +} + +internal void +lnk_section_contrib_chunk_list_concat_in_place(LNK_SectionContribChunkList *list, LNK_SectionContribChunkList *to_concat) +{ + if (list->chunk_count == 0) { + *list = *to_concat; + } else { + list->last->next = to_concat->first; + list->last = to_concat->last; + list->chunk_count += to_concat->chunk_count; + MemoryZeroStruct(to_concat); } } +internal void +lnk_section_list_remove(LNK_SectionList *list, LNK_SectionNode *node) +{ + if (list->count > 0) { + if (list->first == node) { + list->first = list->first->next; + list->count -= 1; + + if (list->last == node) { + list->last = 0; + } + } else { + for (LNK_SectionNode *curr = list->first, *prev = 0; curr != 0; prev = curr, curr = curr->next) { + if (curr == node) { + prev->next = curr->next; + list->count -= 1; + + if (list->last == curr) { + list->last = prev; + } + + break; + } + } + } + } +} + +internal LNK_SectionArray +lnk_section_array_from_list(Arena *arena, LNK_SectionList list) +{ + LNK_SectionArray result; + result.count = 0; + result.v = push_array_no_zero(arena, LNK_Section *, list.count); + for (LNK_SectionNode *node = list.first; node != 0; node = node->next) { + result.v[result.count] = &node->data; + result.count += 1; + } + return result; +} + internal LNK_SectionTable * -lnk_section_table_alloc(U64 section_virt_off, U64 sect_align, U64 file_align) +lnk_section_table_alloc(void) { ProfBeginFunction(); Arena *arena = arena_alloc(); LNK_SectionTable *sectab = push_array(arena, LNK_SectionTable, 1); sectab->arena = arena; - sectab->section_virt_off = section_virt_off; - sectab->sect_align = sect_align; - sectab->file_align = file_align; + sectab->sect_ht = hash_table_init(arena, 256); ProfEnd(); return sectab; } @@ -286,131 +124,106 @@ lnk_section_table_release(LNK_SectionTable **st_ptr) ProfBeginFunction(); LNK_SectionTable *sectab = *st_ptr; arena_release(sectab->arena); - *st_ptr = NULL; + *st_ptr = 0; ProfEnd(); } +internal String8 +lnk_make_name_with_flags(Arena *arena, String8 name, COFF_SectionFlags flags) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List l = {0}; + str8_list_push(scratch.arena, &l, name); + str8_list_push(scratch.arena, &l, str8_struct(&flags)); + String8 name_with_flags = str8_list_join(arena, &l, 0); + scratch_end(scratch); + return name_with_flags; +} + internal LNK_Section * lnk_section_table_push(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags flags) { ProfBeginFunction(); + + LNK_SectionNode *sect_node = push_array(sectab->arena, LNK_SectionNode, 1); + LNK_Section *sect = §_node->data; + sect->arena = arena_alloc(); + sect->id = sectab->id_max++; + sect->name = push_str8_copy(sect->arena, name); + sect->flags = flags; + sect->has_layout = 1; + LNK_SectionList *sect_list = §ab->list; - - LNK_SectionNode *sect_node = push_array(sectab->arena, LNK_SectionNode, 1); - String8 sort_index = lnk_make_section_sort_index(sectab->arena, name, flags, sectab->id_max); - - B32 found = 0; - for (LNK_SectionNode *curr = sect_list->first, *prev = NULL; curr != NULL; prev = curr, curr = curr->next) { - LNK_Section *sect = &curr->data; - int cmp = str8_compar_case_sensitive(&sort_index, §->sort_index); - if (cmp < 0) { - if (prev == NULL) { - SLLQueuePushFront(sect_list->first, sect_list->last, sect_node); - } else { - prev->next = sect_node; - sect_node->next = curr; - } - found = 1; - break; - } - } - - if (!found) { - SLLQueuePush(sect_list->first, sect_list->last, sect_node); - } + SLLQueuePush(sect_list->first, sect_list->last, sect_node); sect_list->count += 1; - U64 sect_id = sectab->id_max; - sectab->id_max += 1; - - LNK_Section *sect = §_node->data; - sect->arena = arena_alloc(); - sect->id = sect_id; - sect->name = push_str8_copy(sect->arena, name); - sect->sort_index = sort_index; - sect->flags = flags; - sect->cman = lnk_chunk_manager_alloc(sect->arena, sect_id, sectab->file_align); - sect->root = sect->cman->root; - sect->nosort_chunk = lnk_chunk_push_list(sect->arena, sect->cman, sect->root, str8(0,0)); - sect->nosort_chunk->sort_chunk = 0; - sect->emit_header = 1; - sect->has_layout = 1; - sect->is_loose = 1; + String8 name_with_flags = lnk_make_name_with_flags(sectab->arena, name, flags); + hash_table_push_string_raw(sectab->arena, sectab->sect_ht, name_with_flags, sect); - lnk_chunk_set_debugf(sect->arena, sect->root, "root chunk for %S", name); - lnk_chunk_set_debugf(sect->arena, sect->nosort_chunk, "nosort chunk for %S", name); - ProfEnd(); return sect; } -internal LNK_Section * -lnk_section_table_push_null(LNK_SectionTable *sectab) -{ - LNK_SectionList *list = §ab->list; - SLLQueuePushFront(list->first, list->last, sectab->null_sect); - list->count += 1; - return §ab->null_sect->data; -} - -LNK_CHUNK_VISITOR_SIG(lnk_chunk_has_leaf) -{ - B32 stop = 0; - if (chunk->type == LNK_Chunk_Leaf) { - B32 has_data = !lnk_chunk_is_discarded(chunk) && chunk->u.leaf.size > 0; - if (has_data) { - B32 *no_data = (B32*)ud; - *no_data = 0; - stop = 1; - } - } - return stop; -} - -LNK_CHUNK_VISITOR_SIG(lnk_chunk_mark_discarded) -{ - chunk->is_discarded = 1; - B32 stop = 0; - return stop; -} - internal void -lnk_section_table_remove(LNK_SectionTable *sectab, LNK_SymbolTable *symtab, String8 name) +lnk_section_table_remove(LNK_SectionTable *sectab, String8 name) { ProfBeginFunction(); - // remove node from list - LNK_SectionNode *sect_node = lnk_section_list_remove(§ab->list, name); - LNK_Section *sect = §_node->data; - - // remove symbol for section root chunk - lnk_symbol_table_remove(symtab, LNK_SymbolScopeIndex_Internal, sect->symbol_name); - - // mark chunks as discarded - lnk_visit_chunks(sect->id, sect->root, lnk_chunk_mark_discarded, NULL); - - // push to empties - SLLQueuePush(sectab->empties_list.first, sectab->empties_list.last, sect_node); - sectab->empties_list.count += 1; + // find node + LNK_SectionNode *sect_n; + for (sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + if (str8_match(sect_n->data.name, name, 0)) { + break; + } + } + + // remove node + lnk_section_list_remove(§ab->list, sect_n); + + // push to free list + SLLQueuePush(sectab->free_list.first, sectab->free_list.last, sect_n); + sectab->free_list.count += 1; ProfEnd(); } internal LNK_Section * -lnk_section_table_search(LNK_SectionTable *sectab, String8 name) +lnk_section_table_search(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags flags) { - return lnk_section_list_search(§ab->list, name); + Temp scratch = scratch_begin(0,0); + + String8 name_with_flags = lnk_make_name_with_flags(scratch.arena, name, flags); + LNK_Section *section = 0; + hash_table_search_string_raw(sectab->sect_ht, name_with_flags, §ion); + + scratch_end(scratch); + return section; } -internal LNK_Section * -lnk_section_table_search_id(LNK_SectionTable *sectab, U64 id) +internal LNK_SectionArray +lnk_section_table_search_many(Arena *arena, LNK_SectionTable *sectab, String8 name) { - for (LNK_SectionNode *node = sectab->list.first; node != NULL; node = node->next) { - if (node->data.id == id) { - return &node->data; + U64 match_count = 0; + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + if (str8_match(sect_n->data.name, name, 0)) { + match_count += 1; } } - return NULL; + + LNK_SectionArray result = {0}; + + if (match_count > 0) { + result.count = 0; + result.v = push_array(arena, LNK_Section *, match_count); + + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + if (str8_match(sect_n->data.name, name, 0)) { + result.v[result.count++] = §_n->data; + } + } + } + + return result; } internal void @@ -419,12 +232,13 @@ lnk_section_table_merge(LNK_SectionTable *sectab, LNK_MergeDirectiveList merge_l ProfBeginFunction(); Temp scratch = scratch_begin(0, 0); LNK_Section **src_dst = push_array(scratch.arena, LNK_Section *, sectab->id_max); - for (LNK_MergeDirectiveNode *merge_node = merge_list.first; merge_node != NULL; merge_node = merge_node->next) { + for (LNK_MergeDirectiveNode *merge_node = merge_list.first; merge_node != 0; merge_node = merge_node->next) { LNK_MergeDirective *merge = &merge_node->data; // are we trying to merge section that was already merged? - LNK_Section *merge_sect = lnk_section_list_search(§ab->merge_list, merge->src); - if (merge_sect) { + LNK_Section *merge_sect = 0; + hash_table_search_string_raw(sectab->sect_ht, merge->src, &merge_sect); + if (merge_sect && merge_sect->is_merged) { LNK_Section *dst = src_dst[merge_sect->id]; B32 is_ambiguous_merge = !str8_match(dst->name, merge->dst, 0); if (is_ambiguous_merge) { @@ -436,59 +250,41 @@ lnk_section_table_merge(LNK_SectionTable *sectab, LNK_MergeDirectiveList merge_l } // find source seciton - LNK_Section *src = lnk_section_table_search(sectab, merge->src); - if (src == NULL) { - lnk_error(LNK_Warning_IllData, "Can't find section \"%S\" to merge with \"%S\"", merge->src, merge->dst); - // TODO: supplement obj path if applicable + LNK_SectionArray src_matches = lnk_section_table_search_many(scratch.arena, sectab, merge->src); + if (src_matches.count == 0) { continue; } - - // handle case where destination section doesn't exist - LNK_Section *dst = lnk_section_table_search(sectab, merge->dst); - if (dst == NULL) { - src->name = push_str8_copy(src->arena, merge->dst); - src_dst[src->id] = src; - continue; - } - - // update map - src_dst[src->id] = dst; - - // merge section with destination - lnk_section_merge(dst, src); - - // remove from output section list - LNK_SectionNode *src_node = lnk_section_list_remove(§ab->list, src->name); - - // push section to merged list - SLLQueuePush(sectab->merge_list.first, sectab->merge_list.last, src_node); - sectab->merge_list.count += 1; - } - scratch_end(scratch); - ProfEnd(); -} -internal void -lnk_section_table_remove_empties(LNK_SectionTable *sectab, LNK_SymbolTable *symtab) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - - String8List name_list = {0}; - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != NULL; sect_node = sect_node->next) { - LNK_Section *sect = §_node->data; - - B32 no_data = 1; - lnk_visit_chunks(sect->id, sect->root, lnk_chunk_has_leaf, (void*)&no_data); - - if (no_data) { - String8 name = push_str8_copy(scratch.arena, sect->name); - str8_list_push(scratch.arena, &name_list, name); + LNK_Section *dst; + { + LNK_SectionArray dst_matches = lnk_section_table_search_many(scratch.arena, sectab, merge->dst); + + if (dst_matches.count > 1) { + lnk_error(LNK_Warning_AmbiguousMerge, "unable to merge %S=%S, too many dest sections (%llu)", merge->src, merge->dst, dst_matches.count); + continue; + } + + // handle case where destination section doesn't exist + if (dst_matches.count == 0) { + dst = lnk_section_table_push(sectab, merge->dst, src_matches.v[0]->flags); + } else { + dst = dst_matches.v[0]; + } + } + + for (U64 src_idx = 0; src_idx < src_matches.count; src_idx += 1) { + LNK_Section *src = src_matches.v[src_idx]; + + // update map + src_dst[src->id] = dst; + + // merge section with destination + lnk_section_contrib_chunk_list_concat_in_place(&dst->contribs, &src->contribs); + src->is_merged = 1; + + // remove from output section list + lnk_section_table_remove(sectab, src->name); } - } - - for (String8Node *name = name_list.first; name != NULL; name = name->next) { - lnk_section_table_remove(sectab, symtab, name->string); } scratch_end(scratch); ProfEnd(); @@ -499,12 +295,12 @@ lnk_section_table_get_output_sections(Arena *arena, LNK_SectionTable *sectab) { LNK_SectionArray result = {0}; result.count = 0; - result.v = push_array(arena, LNK_Section, sectab->list.count); + result.v = push_array(arena, LNK_Section *, sectab->list.count); for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != 0; sect_node = sect_node->next) { - if (sect_node->data.emit_header && sect_node->data.has_layout) { + if (sect_node->data.has_layout) { Assert(result.count < sectab->list.count); - result.v[result.count] = sect_node->data; + result.v[result.count] = §_node->data; result.count += 1; } } @@ -515,390 +311,53 @@ lnk_section_table_get_output_sections(Arena *arena, LNK_SectionTable *sectab) return result; } -internal -THREAD_POOL_TASK_FUNC(lnk_section_data_builder) -{ - LNK_SectionDataBuilder *task = raw_task; - Rng1U64 range = task->range_arr[task_id]; - for (U64 sect_idx = range.min; sect_idx < range.max; ++sect_idx) { - lnk_section_build_data(task->sect_arr[sect_idx], task->machine); - } -} - internal void -lnk_section_table_build_data(TP_Context *tp, LNK_SectionTable *sectab, COFF_MachineType machine) +lnk_finalize_section_layout(LNK_SectionTable *sectab, LNK_Section *sect, U64 file_align) { - ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - - LNK_SectionPtrArray sect_arr = lnk_section_ptr_array_from_list(scratch.arena, sectab->list); - - LNK_SectionDataBuilder task = {0}; - task.machine = machine; - task.range_arr = tp_divide_work(scratch.arena, sect_arr.count, tp->worker_count); - task.sect_arr = sect_arr.v; - tp_for_parallel(tp, 0, tp->worker_count, lnk_section_data_builder, &task); - - scratch_end(scratch); - ProfEnd(); -} - -internal void -lnk_section_table_assign_virtual_offsets(LNK_SectionTable *sectab) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - LNK_Section **sect_id_map = lnk_sect_id_map_from_section_table(scratch.arena, sectab); - U64 cursor = sectab->section_virt_off; - Assert(cursor >= 0x1000); - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != NULL; sect_node = sect_node->next) { - if (sect_node == sectab->null_sect) continue; - LNK_Section *sect = §_node->data; - if (!sect->has_layout) continue; - sect->virt_off = cursor; - U64 sect_size = lnk_virt_size_from_chunk_ref(sect_id_map, sect->root->ref); - cursor += sect_size; - cursor = AlignPow2(cursor, sectab->sect_align); - } - scratch_end(scratch); - ProfEnd(); -} - -internal void -lnk_section_table_assign_file_offsets(LNK_SectionTable *sectab) -{ - ProfBeginFunction(); U64 cursor = 0; - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != NULL; sect_node = sect_node->next) { - LNK_Section *sect = §_node->data; - if (sect->flags & COFF_SectionFlag_CntUninitializedData) { - continue; + for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { + for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { + LNK_SectionContrib *sc = &sc_chunk->v[sc_idx]; + + cursor = AlignPow2(cursor, sc->align); + + // store section contribution start offset + U64 sc_off = cursor; + + // compute contrib size + U64 sc_size = 0; + for (String8Node *data_n = sc->data_list; data_n != 0; data_n = data_n->next) { + sc_size += data_n->string.size; + } + + cursor += sc_size; + + // assign offset and size + sc->u.off = sc_off; + sc->u.size = sc_size; } - if (!sect->has_layout) continue; - sect->file_off = cursor; - U64 root_size = sect->layout.chunk_file_size_array[sect->root->ref.chunk_id]; - cursor += root_size; } - ProfEnd(); + + if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { + sect->fsize = AlignPow2(cursor, file_align); + } + sect->vsize = cursor; } internal void -lnk_section_table_assign_indices(LNK_SectionTable *sectab) +lnk_assign_section_virtual_space(LNK_Section *sect, U64 sect_align, U64 *voff_cursor) { - ProfBeginFunction(); - U64 isect = 0; - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != NULL; sect_node = sect_node->next) { - LNK_Section *sect = §_node->data; - if (sect->emit_header) { - sect->isect = isect++; - } - } - ProfEnd(); + sect->voff = *voff_cursor; + *voff_cursor += sect->vsize; + *voff_cursor = AlignPow2(*voff_cursor, sect_align); } -internal String8 -lnk_section_table_serialize(TP_Context *tp, Arena *arena, LNK_SectionTable *sectab, COFF_MachineType machine) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - U64 image_size = 0; - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - LNK_Section *sect = §_n->data; - if (sect->has_layout) { - U64 root_size = sect->layout.chunk_file_size_array[sect->root->ref.chunk_id]; - image_size += root_size; - } - } - - U8 *image_buffer = push_array_no_zero(arena, U8, image_size); - String8 image = str8(image_buffer, image_size); - U64 image_cursor = 0; - - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - LNK_Section *sect = §_n->data; - if (sect->has_layout) { - if (sect->flags & COFF_SectionFlag_CntUninitializedData) { - continue; - } - - U64 sect_size = sect->layout.chunk_file_size_array[sect->root->ref.chunk_id]; - String8 sect_data = str8_substr(image, rng_1u64(image_cursor, image_cursor + sect_size)); - - U8 fill_byte = 0; - if (sect->flags & COFF_SectionFlag_CntCode) { - fill_byte = lnk_code_align_byte_from_machine(machine); - } - - lnk_serialize_chunk_layout(tp, sect->layout, sect_data, fill_byte); - - image_cursor += sect_size; - } - } - - scratch_end(scratch); - ProfEnd(); - return image; -} - -internal LNK_ChunkPtr ** -lnk_chunk_id_map_from_section_table(Arena *arena, LNK_SectionTable *sectab) -{ - ProfBeginFunction(); - LNK_ChunkPtr **chunk_id_map = push_array(arena, LNK_ChunkPtr *, sectab->id_max); - for (LNK_SectionNode *node = sectab->list.first; node != 0; node = node->next) { - LNK_Section *sect = &node->data; - chunk_id_map[sect->id] = lnk_make_chunk_id_map(arena, sect->cman); - } - if (sectab->list.first->data.id != 0) { - chunk_id_map[0] = push_array(arena, LNK_ChunkPtr, 1); - chunk_id_map[0][0] = g_null_chunk_ptr; - } - ProfEnd(); - return chunk_id_map; -} - -internal LNK_Section ** -lnk_sect_id_map_from_section_table(Arena *arena, LNK_SectionTable *sectab) -{ - ProfBeginFunction(); - LNK_Section **map = push_array(arena, LNK_Section *, sectab->id_max); - LNK_SectionList *list_arr[] = { §ab->list, §ab->merge_list, §ab->empties_list }; - for (U64 list_idx = 0; list_idx < ArrayCount(list_arr); ++list_idx) { - for (LNK_SectionNode *sect_node = list_arr[list_idx]->first; sect_node != NULL; sect_node = sect_node->next) { - LNK_Section *sect = §_node->data; - Assert(sect->id < sectab->id_max); - Assert(map[sect->id] == NULL); - map[sect->id] = sect; - } - } - if (map[0] == NULL) { - LNK_Section *sect = push_array(arena, LNK_Section, 1); - sect->layout.chunk_off_array = push_array(arena, U64, 1); - sect->layout.chunk_file_size_array = push_array(arena, U64, 1); - sect->layout.chunk_virt_size_array = push_array(arena, U64, 1); - map[0] = sect; - } - ProfEnd(); - return map; -} - -internal LNK_ChunkRef -lnk_get_final_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref) -{ - LNK_ChunkRef final_chunk_ref = chunk_ref; - if (sect_id_map[chunk_ref.sect_id]->is_merged) { - final_chunk_ref.sect_id = sect_id_map[chunk_ref.sect_id]->merge_sect_id; - final_chunk_ref.chunk_id = sect_id_map[chunk_ref.sect_id]->id_map[chunk_ref.chunk_id]; - // we don't support sections that were merged more than once. - Assert(!sect_id_map[final_chunk_ref.sect_id]->is_merged); - } - return final_chunk_ref; -} - -internal LNK_Section * -lnk_sect_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef input_chunk_ref) -{ - LNK_ChunkRef final_chunk_ref = lnk_get_final_chunk_ref(sect_id_map, input_chunk_ref); - LNK_Section *sect = sect_id_map[final_chunk_ref.sect_id]; - return sect; -} - -internal LNK_Chunk * -lnk_chunk_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkPtr **chunk_id_map, LNK_ChunkRef chunk_ref) -{ - LNK_ChunkRef final_chunk_ref = lnk_get_final_chunk_ref(sect_id_map, chunk_ref); - LNK_Chunk *chunk = chunk_id_map[final_chunk_ref.sect_id][final_chunk_ref.chunk_id]; - return chunk; -} - -internal U64 -lnk_isect_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref) -{ - LNK_Section *sect = lnk_sect_from_chunk_ref(sect_id_map, chunk_ref); - U64 isect = sect->isect; - return isect; -} - -internal U64 -lnk_off_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref) -{ - LNK_ChunkRef final_chunk_ref = lnk_get_final_chunk_ref(sect_id_map, chunk_ref); - LNK_Section *sect = sect_id_map[final_chunk_ref.sect_id]; - U64 off = sect->layout.chunk_off_array[final_chunk_ref.chunk_id]; - return off; -} - -internal U64 -lnk_virt_off_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref) -{ - LNK_ChunkRef final_chunk_ref = lnk_get_final_chunk_ref(sect_id_map, chunk_ref); - LNK_Section *sect = sect_id_map[final_chunk_ref.sect_id]; - U64 off = sect->layout.chunk_off_array[final_chunk_ref.chunk_id]; - U64 virt_off = off + sect->virt_off; - return virt_off; -} - -internal U64 -lnk_file_off_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref) -{ - LNK_ChunkRef final_chunk_ref = lnk_get_final_chunk_ref(sect_id_map, chunk_ref); - LNK_Section *sect = sect_id_map[final_chunk_ref.sect_id]; - U64 off = sect->layout.chunk_off_array[final_chunk_ref.chunk_id]; - U64 file_off = off + sect->file_off; - return file_off; -} - -internal U64 -lnk_virt_size_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref) -{ - LNK_ChunkRef final_chunk_ref = lnk_get_final_chunk_ref(sect_id_map, chunk_ref); - LNK_Section *sect = sect_id_map[final_chunk_ref.sect_id]; - U64 virt_size = sect->layout.chunk_virt_size_array[final_chunk_ref.chunk_id]; - return virt_size; -} - -internal U64 -lnk_file_size_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref) -{ - LNK_ChunkRef final_chunk_ref = lnk_get_final_chunk_ref(sect_id_map, chunk_ref); - LNK_Section *sect = sect_id_map[final_chunk_ref.sect_id]; - U64 file_size = sect->layout.chunk_file_size_array[final_chunk_ref.chunk_id]; - return file_size; -} - -internal String8 -lnk_data_from_chunk_ref(LNK_Section **sect_id_map, String8 image_data, LNK_ChunkRef chunk_ref) -{ - LNK_ChunkRef final_chunk_ref = lnk_get_final_chunk_ref(sect_id_map, chunk_ref); - LNK_Section *sect = sect_id_map[final_chunk_ref.sect_id]; - String8 chunk_data; - if (sect->has_layout) { - U64 chunk_size = lnk_file_size_from_chunk_ref(sect_id_map, chunk_ref); - U64 chunk_foff = lnk_file_off_from_chunk_ref(sect_id_map, chunk_ref); - chunk_data = str8_substr(image_data, r1u64(chunk_foff, chunk_foff + chunk_size)); - } else { - LNK_Chunk *chunk = sect->layout.chunk_ptr_array[final_chunk_ref.chunk_id]; - Assert(chunk->type == LNK_Chunk_Leaf); - chunk_data = chunk->u.leaf; - } - - return chunk_data; -} - -internal String8 -lnk_data_from_chunk_ref_no_pad(LNK_Section **sect_id_map, String8 image_data, LNK_ChunkRef chunk_ref) -{ - LNK_ChunkRef final_chunk_ref = lnk_get_final_chunk_ref(sect_id_map, chunk_ref); - LNK_Section *sect = sect_id_map[final_chunk_ref.sect_id]; - - String8 chunk_data; - if (sect->has_layout) { - U64 chunk_size = lnk_virt_size_from_chunk_ref(sect_id_map, chunk_ref); - U64 chunk_foff = lnk_file_off_from_chunk_ref(sect_id_map, chunk_ref); - chunk_data = str8_substr(image_data, r1u64(chunk_foff, chunk_foff + chunk_size)); - } else { - LNK_Chunk *chunk = sect->layout.chunk_ptr_array[final_chunk_ref.chunk_id]; - Assert(chunk->type == LNK_Chunk_Leaf); - chunk_data = chunk->u.leaf; - } - - return chunk_data; -} - -internal ISectOff -lnk_sc_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref) -{ - ISectOff sc = {0}; - sc.isect = lnk_isect_from_chunk_ref(sect_id_map, chunk_ref); - sc.off = lnk_off_from_chunk_ref(sect_id_map, chunk_ref); - return sc; -} - -internal U64 -lnk_virt_off_from_reloc(LNK_Section **sect_id_map, LNK_Reloc *reloc) -{ - U64 virt_off = lnk_virt_off_from_chunk_ref(sect_id_map, reloc->chunk->ref); - virt_off += reloc->apply_off; - return virt_off; -} - -internal U64 -lnk_isect_from_symbol(LNK_Section **sect_id_map, LNK_Symbol *symbol) -{ - Assert(LNK_Symbol_IsDefined(symbol->type)); - LNK_ChunkRef symbol_chunk_ref = symbol->u.defined.u.chunk->ref; - U64 symbol_isect = lnk_isect_from_chunk_ref(sect_id_map, symbol_chunk_ref); - return symbol_isect; -} - -internal U64 -lnk_sect_off_from_symbol(LNK_Section **sect_id_map, LNK_Symbol *symbol) -{ - Assert(LNK_Symbol_IsDefined(symbol->type)); - LNK_ChunkRef symbol_chunk_ref = symbol->u.defined.u.chunk->ref; - U64 chunk_off = lnk_off_from_chunk_ref(sect_id_map, symbol_chunk_ref); - U64 symbol_off = chunk_off + symbol->u.defined.u.chunk_offset; - return symbol_off; -} - -internal U64 -lnk_virt_off_from_symbol(LNK_Section **sect_id_map, LNK_Symbol *symbol) -{ - Assert(LNK_Symbol_IsDefined(symbol->type)); - LNK_ChunkRef symbol_chunk_ref = symbol->u.defined.u.chunk->ref; - U64 chunk_voff = lnk_virt_off_from_chunk_ref(sect_id_map, symbol_chunk_ref); - U64 symbol_voff = chunk_voff + symbol->u.defined.u.chunk_offset; - return symbol_voff; -} - -internal U64 -lnk_file_off_from_symbol(LNK_Section **sect_id_map, LNK_Symbol *symbol) -{ - Assert(LNK_Symbol_IsDefined(symbol->type)); - LNK_ChunkRef symbol_chunk_ref = symbol->u.defined.u.chunk->ref; - U64 chunk_foff = lnk_file_off_from_chunk_ref(sect_id_map, symbol_chunk_ref); - U64 symbol_foff = chunk_foff + symbol->u.defined.u.chunk_offset; - return symbol_foff; -} - -internal U64 -lnk_virt_size_from_symbol(LNK_Section **sect_id_map, LNK_Symbol *symbol) -{ - Assert(LNK_Symbol_IsDefined(symbol->type)); - U64 symbol_chunk_virt_size = lnk_virt_size_from_chunk_ref(sect_id_map, symbol->u.defined.u.chunk->ref); - return symbol_chunk_virt_size; -} - -internal U64 -lnk_file_size_from_symbol(LNK_Section **sect_id_map, LNK_Symbol *symbol) -{ - Assert(LNK_Symbol_IsDefined(symbol->type)); - U64 symbol_chunk_file_size = lnk_file_size_from_chunk_ref(sect_id_map, symbol->u.defined.u.chunk->ref); - return symbol_chunk_file_size; -} - -#if LNK_DEBUG_CHUNKS internal void -lnk_dump_chunks(LNK_SectionTable *sectab) +lnk_assign_section_file_space(LNK_Section *sect, U64 *foff_cursor) { - Temp scratch = scratch_begin(0, 0); - LNK_ChunkPtr **chunk_id_map = lnk_chunk_id_map_from_section_table(scratch.arena, sectab); - LNK_Section **sect_id_map = lnk_sect_id_map_from_section_table(scratch.arena, sectab); - for (U64 sect_id = 0; sect_id < sectab->id_max; ++sect_id) { - LNK_Section *sect = sect_id_map[sect_id]; - if (!sect) continue; - if (sect->is_merged) continue; - if (str8_match_lit(".text", sect->name, 0)) { - for (U64 chunk_id = 0; chunk_id < sect->cman->total_chunk_count; ++chunk_id) { - LNK_ChunkRef chunk_ref = { sect_id, chunk_id }; - LNK_Chunk *chunk = lnk_chunk_from_chunk_ref(sect_id_map, chunk_id_map, chunk_ref); - U64 chunk_foff = sect->file_off + sect->layout.chunk_off_array[chunk_id]; - printf("%llu {%04llX,%04llX} 0x%08llX %.*s\n", chunk_foff, sect_id, chunk_id, chunk_foff, str8_varg(chunk->debug)); - } - } + if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { + sect->foff = *foff_cursor; + *foff_cursor += sect->fsize; } - scratch_end(scratch); } -#endif diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index 770b934b..8884e5d0 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -1,43 +1,84 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once +typedef struct LNK_SectionContrib +{ + U16 align; + union { + String8Node *data_list; + U64 bss_size; + }; + union { + struct { + U16 sort_idx_size; + U32 obj_idx; + U8 *sort_idx; + }; + struct { + U16 sect_idx; + U32 off; + U32 size; + }; + } u; +} LNK_SectionContrib; + +typedef struct LNK_CommonBlockContrib +{ + struct LNK_Symbol *symbol; + union { + U32 size; + U32 offset; + } u; +} LNK_CommonBlockContrib; + +typedef struct LNK_SectionContribChunk +{ + struct LNK_SectionContribChunk *next; + U64 count; + U64 cap; + LNK_SectionContrib *v; +} LNK_SectionContribChunk; + +typedef struct LNK_SectionContribChunkList +{ + U64 chunk_count; + LNK_SectionContribChunk *first; + LNK_SectionContribChunk *last; +} LNK_SectionContribChunkList; + +typedef struct LNK_SectionDefinition +{ + String8 name; + COFF_SectionFlags flags; + U64 contribs_count; + struct LNK_Obj *obj; + U64 obj_sect_idx; +} LNK_SectionDefinition; + typedef struct LNK_Section { - Arena *arena; - U64 id; - String8 name; - String8 symbol_name; - COFF_SectionFlags flags; - String8 sort_index; + Arena *arena; + U64 id; + String8 name; + COFF_SectionFlags flags; + B32 has_layout; + B32 is_merged; - LNK_ChunkManager *cman; - LNK_Chunk *root; + LNK_SectionContribChunkList contribs; - // overwhelming number of chunks don't have sort index and grouping - // them speeds up sort step - LNK_Chunk *nosort_chunk; - - LNK_RelocList reloc_list; - - B32 emit_header; // TODO: this is a hack to make reloc serializer work in resource converter - B32 has_layout; - B32 is_loose; - - B32 is_merged; - U64 merge_sect_id; - U64 *id_map; - - U64 isect; - U64 virt_off; - U64 file_off; - LNK_ChunkLayout layout; + U64 voff; + U64 vsize; + U64 fsize; + U64 foff; + U64 sect_idx; } LNK_Section; typedef struct LNK_SectionNode { struct LNK_SectionNode *next; + struct LNK_SectionNode *prev; LNK_Section data; } LNK_SectionNode; @@ -49,103 +90,38 @@ typedef struct LNK_SectionList } LNK_SectionList; typedef struct LNK_SectionArray -{ - U64 count; - LNK_Section *v; -} LNK_SectionArray; - -typedef struct LNK_SectionPtrArray { U64 count; LNK_Section **v; -} LNK_SectionPtrArray; +} LNK_SectionArray; typedef struct LNK_SectionTable { Arena *arena; - U64 section_virt_off; - U64 sect_align; - U64 file_align; U64 id_max; + U64 next_sect_idx; LNK_SectionList list; - LNK_SectionList merge_list; - LNK_SectionList empties_list; - LNK_SectionNode *null_sect; + LNK_SectionList free_list; + HashTable *sect_ht; // name -> LNK_Section * } LNK_SectionTable; //////////////////////////////// -typedef struct -{ - COFF_MachineType machine; - Rng1U64 *range_arr; - LNK_Section **sect_arr; -} LNK_SectionDataBuilder; +internal U8 lnk_code_align_byte_from_machine(COFF_MachineType machine); +internal U16 lnk_default_align_from_machine(COFF_MachineType machine); //////////////////////////////// -internal LNK_SectionNode * lnk_section_list_remove(LNK_SectionList *list, String8 name); -internal LNK_SectionNode * lnk_section_list_search_node(LNK_SectionList *list, String8 name); -internal LNK_Section * lnk_section_list_search(LNK_SectionList *list, String8 name); +internal void lnk_section_list_remove(LNK_SectionList *list, LNK_SectionNode *node); +internal LNK_SectionArray lnk_section_array_from_list(Arena *arena, LNK_SectionList list); -internal LNK_SectionArray lnk_section_array_from_list(Arena *arena, LNK_SectionList list); -internal LNK_SectionPtrArray lnk_section_ptr_array_from_list(Arena *arena, LNK_SectionList list); +//////////////////////////////// -internal void lnk_section_associate_chunks(LNK_Section *sect, LNK_Chunk *head, LNK_Chunk *associate); - -internal LNK_Reloc * lnk_section_push_reloc(LNK_Section *sect, LNK_Chunk *chunk, LNK_RelocType type, U64 apply_off, LNK_Symbol *symbol); -internal LNK_Reloc * lnk_section_push_reloc_undefined(LNK_Section *sect, LNK_Chunk *chunk, LNK_RelocType type, U64 apply_off, String8 undefined_symbol_name, LNK_SymbolScopeFlags scope_flags); - -internal void lnk_section_merge(LNK_Section *dst, LNK_Section *src); -internal void lnk_section_build_data(LNK_Section *sect, COFF_MachineType machine); - -internal String8 lnk_make_section_sort_index(Arena *arena, String8 name, COFF_SectionFlags flags, U64 section_index); - -internal LNK_Chunk * lnk_section_push_chunk_raw(LNK_Section *sect, LNK_Chunk *parent, void *data_ptr, U64 data_size, String8 sort_index); -internal LNK_Chunk * lnk_section_push_chunk_data(LNK_Section *sect, LNK_Chunk *parent, String8 data, String8 sort_index); -internal LNK_Chunk * lnk_section_push_chunk_u32(LNK_Section *sect, LNK_Chunk *parent, U32 value, String8 sort_index); -internal LNK_Chunk * lnk_section_push_chunk_u64(LNK_Section *sect, LNK_Chunk *parent, U32 value, String8 sort_index); -internal LNK_Chunk * lnk_section_push_chunk_bss(LNK_Section *sect, LNK_Chunk *parent, U64 size, String8 sort_index); -internal LNK_Chunk * lnk_section_push_chunk_list(LNK_Section *sect, LNK_Chunk *parent, String8 sort_index); - -internal LNK_SectionTable * lnk_section_table_alloc(U64 section_virt_off, U64 sect_align, U64 file_align); +internal LNK_SectionTable * lnk_section_table_alloc(void); internal void lnk_section_table_release(LNK_SectionTable **st_ptr); internal LNK_Section * lnk_section_table_push(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags flags); -internal LNK_Section * lnk_section_table_push_null(LNK_SectionTable *sectab); -internal void lnk_section_table_remove(LNK_SectionTable *sectab, LNK_SymbolTable *symtab, String8 name); -internal LNK_Section * lnk_section_table_search(LNK_SectionTable *sectab, String8 name); -internal LNK_Section * lnk_section_table_search_id(LNK_SectionTable *sectab, U64 id); +internal void lnk_section_table_remove(LNK_SectionTable *sectab, String8 name); +internal LNK_Section * lnk_section_table_search(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags flags); internal void lnk_section_table_merge(LNK_SectionTable *sectab, LNK_MergeDirectiveList merge_list); -internal void lnk_section_table_remove_empties(LNK_SectionTable *sectab, LNK_SymbolTable *symtab); -internal void lnk_section_table_build_data(TP_Context *tp, LNK_SectionTable *sectab, COFF_MachineType machine); -internal void lnk_section_table_assign_virtual_offsets(LNK_SectionTable *sectab); -internal void lnk_section_table_assign_file_offsets(LNK_SectionTable *sectab); -internal void lnk_section_table_assign_indices(LNK_SectionTable *sectab); -internal String8 lnk_section_table_serialize(TP_Context *tp, Arena *arena, LNK_SectionTable *sectab, COFF_MachineType machine); - -internal LNK_ChunkPtr ** lnk_chunk_id_map_from_section_table(Arena *arena, LNK_SectionTable *sectab); -internal LNK_Section ** lnk_sect_id_map_from_section_table(Arena *arena, LNK_SectionTable *sectab); -internal LNK_ChunkRef lnk_get_final_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref); -internal LNK_Section * lnk_sect_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref); -internal LNK_Chunk * lnk_chunk_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkPtr **chunk_id_map, LNK_ChunkRef chunk_ref); -internal U64 lnk_isect_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref); -internal U64 lnk_off_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref); -internal U64 lnk_virt_off_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref); -internal U64 lnk_file_off_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref); -internal U64 lnk_virt_size_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref); -internal U64 lnk_file_size_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref); -internal String8 lnk_data_from_chunk_ref(LNK_Section **sect_id_map, String8 image_data, LNK_ChunkRef chunk_ref); -internal String8 lnk_data_from_chunk_ref_no_pad(LNK_Section **sect_id_map, String8 image_data, LNK_ChunkRef chunk_ref); -internal ISectOff lnk_sc_from_chunk_ref(LNK_Section **sect_id_map, LNK_ChunkRef chunk_ref); -internal U64 lnk_virt_off_from_reloc(LNK_Section **sect_id_map, LNK_Reloc *reloc); -internal U64 lnk_isect_from_symbol(LNK_Section **sect_id_map, LNK_Symbol *symbol); -internal U64 lnk_sect_off_from_symbol(LNK_Section **sect_id_map, LNK_Symbol *symbol); -internal U64 lnk_virt_off_from_symbol(LNK_Section **sect_id_map, LNK_Symbol *symbol); -internal U64 lnk_file_off_from_symbol(LNK_Section **sect_id_map, LNK_Symbol *symbol); -internal U64 lnk_virt_size_from_symbol(LNK_Section **sect_id_map, LNK_Symbol *symbol); -internal U64 lnk_file_size_from_symbol(LNK_Section **sect_id_map, LNK_Symbol *symbol); - -#if LNK_DEBUG_CHUNKS -internal void lnk_dump_chunks(LNK_SectionTable *sectab); -#endif +internal LNK_SectionArray lnk_section_table_get_output_sections(Arena *arena, LNK_SectionTable *sectab); diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index ef027153..1e09f419 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -1,128 +1,40 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -internal void -lnk_init_symbol(LNK_Symbol *symbol, String8 name, LNK_SymbolType type) -{ - symbol->name = name; - symbol->type = type; -} - -internal void -lnk_init_defined_symbol(LNK_Symbol *symbol, String8 name, LNK_DefinedSymbolVisibility visibility, LNK_DefinedSymbolFlags flags) -{ - switch (visibility) { - case LNK_DefinedSymbolVisibility_Static: lnk_init_symbol(symbol, name, LNK_Symbol_DefinedStatic); break; - case LNK_DefinedSymbolVisibility_Extern: lnk_init_symbol(symbol, name, LNK_Symbol_DefinedExtern); break; - case LNK_DefinedSymbolVisibility_Internal: lnk_init_symbol(symbol, name, LNK_Symbol_DefinedInternal); break; - } - LNK_DefinedSymbol *def = &symbol->u.defined; - def->flags = flags; - def->value_type = LNK_DefinedSymbolValue_Null; -} - -internal void -lnk_init_defined_symbol_chunk(LNK_Symbol *symbol, String8 name, LNK_DefinedSymbolVisibility visibility, LNK_DefinedSymbolFlags flags, LNK_Chunk *chunk, U64 offset, COFF_ComdatSelectType selection, U32 check_sum) -{ - lnk_init_defined_symbol(symbol, name, visibility, flags); - LNK_DefinedSymbol *def = &symbol->u.defined; - def->value_type = LNK_DefinedSymbolValue_Chunk; - def->u.chunk = chunk; - def->u.chunk_offset = offset; - def->u.check_sum = check_sum; - def->u.selection = selection; -} - -internal void -lnk_init_defined_symbol_va(LNK_Symbol *symbol, String8 name, LNK_DefinedSymbolVisibility visibility, LNK_DefinedSymbolFlags flags, U64 va) -{ - lnk_init_defined_symbol(symbol, name, visibility, flags); - LNK_DefinedSymbol *def = &symbol->u.defined; - def->value_type = LNK_DefinedSymbolValue_VA; - def->u.va = va; -} - -internal void -lnk_init_undefined_symbol(LNK_Symbol *symbol, String8 name, LNK_SymbolScopeFlags scope_flags) -{ - lnk_init_symbol(symbol, name, LNK_Symbol_Undefined); - symbol->u.undefined.scope_flags = scope_flags; -} - -internal void -lnk_init_weak_symbol(LNK_Symbol *symbol, String8 name, COFF_WeakExtType lookup, LNK_Symbol *fallback) -{ - lnk_init_symbol(symbol, name, LNK_Symbol_Weak); - symbol->u.weak.scope_flags = LNK_SymbolScopeFlag_Defined; - symbol->u.weak.lookup_type = lookup; - symbol->u.weak.fallback_symbol = fallback; -} - -internal void -lnk_init_lazy_symbol(LNK_Symbol *symbol, String8 name, LNK_Lib *lib, U64 member_offset) -{ - lnk_init_symbol(symbol, name, LNK_Symbol_Lazy); - symbol->u.lazy.lib = lib; - symbol->u.lazy.member_offset = member_offset; -} +//////////////////////////////// internal LNK_Symbol * -lnk_make_defined_symbol(Arena *arena, String8 name, LNK_DefinedSymbolVisibility visibility, LNK_DefinedSymbolFlags flags) +lnk_make_defined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj, U32 symbol_idx) { - LNK_Symbol *symbol = push_array_no_zero(arena, LNK_Symbol, 1); - lnk_init_defined_symbol(symbol, name, visibility, flags); - return symbol; -} - -internal LNK_Symbol * -lnk_make_defined_symbol_chunk(Arena *arena, String8 name, LNK_DefinedSymbolVisibility visibility, LNK_DefinedSymbolFlags flags, LNK_Chunk *chunk, U64 offset, COFF_ComdatSelectType selection, U32 check_sum) -{ - LNK_Symbol *symbol = push_array_no_zero(arena, LNK_Symbol, 1); - lnk_init_defined_symbol_chunk(symbol, name, visibility, flags, chunk, offset, selection, check_sum); + LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); + symbol->name = name; + symbol->type = LNK_Symbol_Defined; + symbol->u.defined.obj = obj; + symbol->u.defined.symbol_idx = symbol_idx; return symbol; } internal LNK_Symbol * -lnk_make_defined_symbol_va(Arena *arena, String8 name, LNK_DefinedSymbolVisibility visibility, LNK_DefinedSymbolFlags flags, U64 va) +lnk_make_lib_symbol(Arena *arena, String8 name, struct LNK_Lib *lib, U64 member_offset) { - LNK_Symbol *symbol = push_array_no_zero(arena, LNK_Symbol, 1); - lnk_init_defined_symbol_va(symbol, name, visibility, flags, va); - return symbol; -} - -internal LNK_Symbol * -lnk_make_undefined_symbol(Arena *arena, String8 name, LNK_SymbolScopeFlags flags) -{ - LNK_Symbol *symbol = push_array_no_zero(arena, LNK_Symbol, 1); - lnk_init_undefined_symbol(symbol, name, flags); + LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); + symbol->name = name; + symbol->type = LNK_Symbol_Lib; + symbol->u.lib.lib = lib; + symbol->u.lib.member_offset = member_offset; return symbol; } internal LNK_Symbol * -lnk_make_weak_symbol(Arena *arena, String8 name, COFF_WeakExtType lookup, LNK_Symbol *fallback) +lnk_make_undefined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj) { - LNK_Symbol *symbol = push_array_no_zero(arena, LNK_Symbol, 1); - lnk_init_weak_symbol(symbol, name, lookup, fallback); + LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); + symbol->name = name; + symbol->type = LNK_Symbol_Undefined; + symbol->u.undef.obj = obj; return symbol; } -internal LNK_Symbol * -lnk_make_lazy_symbol(Arena *arena, String8 name, LNK_Lib *lib, U64 member_offset) -{ - LNK_Symbol *symbol = push_array_no_zero(arena, LNK_Symbol, 1); - lnk_init_lazy_symbol(symbol, name, lib, member_offset); - return symbol; -} - -internal LNK_Chunk * -lnk_chunk_from_symbol(LNK_Symbol *symbol) -{ - if (LNK_Symbol_IsDefined(symbol->type) && symbol->u.defined.value_type == LNK_DefinedSymbolValue_Chunk) { - return symbol->u.defined.u.chunk; - } - return 0; -} - //////////////////////////////// internal void @@ -147,24 +59,6 @@ lnk_symbol_list_concat_in_place(LNK_SymbolList *list, LNK_SymbolList *to_concat) SLLConcatInPlace(list, to_concat); } -internal LNK_SymbolNode * -lnk_symbol_list_search_node(LNK_SymbolList list, String8 name, StringMatchFlags flags) -{ - for (LNK_SymbolNode *node = list.first; node != 0; node = node->next) { - if (str8_match(node->data->name, name, flags)) { - return node; - } - } - return 0; -} - -internal LNK_Symbol * -lnk_symbol_list_search(LNK_SymbolList list, String8 name, StringMatchFlags flags) -{ - LNK_SymbolNode *node = lnk_symbol_list_search_node(list, name, flags); - return node ? node->data : 0; -} - internal LNK_SymbolList lnk_symbol_list_from_array(Arena *arena, LNK_SymbolArray arr) { @@ -205,6 +99,48 @@ lnk_symbol_array_from_list(Arena *arena, LNK_SymbolList list) //////////////////////////////// +internal ISectOff +lnk_sc_from_symbol(LNK_Symbol *symbol) +{ + COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + + ISectOff sc = {0}; + sc.isect = parsed_symbol.section_number; + sc.off = parsed_symbol.value; + + return sc; +} + +internal U64 +lnk_isect_from_symbol(LNK_Symbol *symbol) +{ + return lnk_sc_from_symbol(symbol).isect; +} + +internal U64 +lnk_sect_off_from_symbol(LNK_Symbol *symbol) +{ + return lnk_sc_from_symbol(symbol).off; +} + +internal U64 +lnk_virt_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol) +{ + ISectOff sc = lnk_sc_from_symbol(symbol); + U64 voff = section_table[sc.isect]->voff + sc.off; + return voff; +} + +internal U64 +lnk_file_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol) +{ + ISectOff sc = lnk_sc_from_symbol(symbol); + U64 foff = section_table[sc.isect]->foff + sc.off; + return foff; +} + +//////////////////////////////// + internal LNK_SymbolHashTrie * lnk_symbol_hash_trie_chunk_list_push(Arena *arena, LNK_SymbolHashTrieChunkList *list, U64 cap) { @@ -229,120 +165,148 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) B32 can_replace = 0; - // lazy vs lazy - if (dst->type == LNK_Symbol_Lazy && src->type == LNK_Symbol_Lazy) { + // lib vs lib + if (dst->type == LNK_Symbol_Lib && src->type == LNK_Symbol_Lib) { // link.exe picks symbol from lib that is discovered first - LNK_Lib *dst_lib = dst->u.lazy.lib; - LNK_Lib *src_lib = src->u.lazy.lib; - can_replace = dst_lib->input_idx > src_lib->input_idx; - } - // lazy vs weak - else if (dst->type == LNK_Symbol_Lazy && (LNK_Symbol_IsDefined(src->type) || src->type == LNK_Symbol_Weak)) { - can_replace = 1; - } - // weak vs strong - else if (dst->type == LNK_Symbol_Weak && LNK_Symbol_IsDefined(src->type)) { - can_replace = 1; - } - // weak vs weak - else if (dst->type == LNK_Symbol_Weak && src->type == LNK_Symbol_Weak) { - B32 is_fallback_same = str8_match(dst->u.weak.fallback_symbol->name, src->u.weak.fallback_symbol->name, 0); - if (is_fallback_same) { - if (src->obj && !dst->obj) { - can_replace = 1; - } else if (src->obj && dst->obj) { - can_replace = src->obj->input_idx < dst->obj->input_idx; - } - } else { - lnk_error(LNK_Error_MultiplyDefinedSymbol, "multiply defined weak symbol %S, symbol defined in:", src->name); - lnk_supplement_error("%S", dst->obj->path); - lnk_supplement_error("%S", src->obj->path); - } + can_replace = src->u.lib.lib->input_idx < dst->u.lib.lib->input_idx; } else if (dst->type == LNK_Symbol_Import) { + AssertAlways(src->type != LNK_Symbol_Import); can_replace = 1; } - // defined VA vs defined chunk - else if (LNK_Symbol_IsDefined(dst->type) && dst->u.defined.value_type == LNK_DefinedSymbolValue_VA && - LNK_Symbol_IsDefined(src->type)) { - can_replace = 1; - } - // defined chunk vs defined chunk - else if (LNK_Symbol_IsDefined(dst->type) && dst->u.defined.value_type == LNK_DefinedSymbolValue_Chunk && - LNK_Symbol_IsDefined(src->type) && src->u.defined.value_type == LNK_DefinedSymbolValue_Chunk) { - LNK_DefinedSymbol *dst_defn = &dst->u.defined; - LNK_DefinedSymbol *src_defn = &src->u.defined; + // defined vs defined + else if (dst->type == LNK_Symbol_Defined && src->type == LNK_Symbol_Defined) { + LNK_Obj *dst_obj = dst->u.defined.obj; + LNK_Obj *src_obj = src->u.defined.obj; - Assert(dst_defn->u.chunk->is_discarded == 0); - Assert(dst_defn->u.chunk->type == LNK_Chunk_Leaf); - Assert(src_defn->u.chunk->type == LNK_Chunk_Leaf); + COFF_ParsedSymbol dst_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dst->u.defined.obj, dst->u.defined.symbol_idx); + COFF_ParsedSymbol src_parsed = lnk_parsed_symbol_from_coff_symbol_idx(src->u.defined.obj, src->u.defined.symbol_idx); - COFF_ComdatSelectType dst_select = dst_defn->u.selection; - COFF_ComdatSelectType src_select = src_defn->u.selection; + COFF_SymbolValueInterpType dst_interp = coff_interp_symbol(dst_parsed.section_number, dst_parsed.value, dst_parsed.storage_class); + COFF_SymbolValueInterpType src_interp = coff_interp_symbol(src_parsed.section_number, src_parsed.value, src_parsed.storage_class); - // handle objs compiled with /GR- and /GR - if ((src_select == COFF_ComdatSelect_Any && dst_select == COFF_ComdatSelect_Largest) || - (src_select == COFF_ComdatSelect_Largest && dst_select == COFF_ComdatSelect_Any)) { - dst_select = COFF_ComdatSelect_Largest; - src_select = COFF_ComdatSelect_Largest; + if (dst_interp == COFF_SymbolValueInterp_Regular && src_interp == COFF_SymbolValueInterp_Abs) { + lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, dst->u.defined.obj, "symbol \"%S\" (No. %#x) is multiply defined in %S (No. %#x)", dst->name, dst->u.defined.symbol_idx, src->u.defined.obj->path, src->u.defined.symbol_idx); } + // abs vs regular + else if ((dst_interp == COFF_SymbolValueInterp_Abs && src_interp == COFF_SymbolValueInterp_Regular) || + (dst_interp == COFF_SymbolValueInterp_Regular && src_interp == COFF_SymbolValueInterp_Abs)) { + lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, dst->u.defined.obj, "symbol \"%S\" (No. %#x) is multiply defined in %S (No. %#x)", dst->name, dst->u.defined.symbol_idx, src->u.defined.obj->path, src->u.defined.symbol_idx); + } + // abs vs common + else if (dst_interp == COFF_SymbolValueInterp_Abs && src_interp == COFF_SymbolValueInterp_Common) { + if (dst->u.defined.obj->input_idx < src->u.defined.obj->input_idx) { + can_replace = 1; + } else { + lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, dst->u.defined.obj, "symbol \"%S\" (No. %#x) is multiply defined in %S (No. %#x)", dst->name, dst->u.defined.symbol_idx, src->u.defined.obj->path, src->u.defined.symbol_idx); + } + } + // common vs abs + else if (dst_interp == COFF_SymbolValueInterp_Common && src_interp == COFF_SymbolValueInterp_Abs) { + if (dst->u.defined.obj->input_idx < src->u.defined.obj->input_idx) { + lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, dst->u.defined.obj, "symbol \"%S\" (No. %#x) is multiply defined in %S (No. %#x)", dst->name, dst->u.defined.symbol_idx, src->u.defined.obj->path, src->u.defined.symbol_idx); + } + } + // weak vs weak + else if (dst_interp == COFF_SymbolValueInterp_Weak && src_interp == COFF_SymbolValueInterp_Weak) { + } + // weak vs abs + else if (dst_interp == COFF_SymbolValueInterp_Weak && src_interp == COFF_SymbolValueInterp_Abs) { + can_replace = 1; + } + // abs vs weak + else if (dst_interp == COFF_SymbolValueInterp_Abs && src_interp == COFF_SymbolValueInterp_Weak) { + can_replace = 0; + } + // weak vs regular,common,abs + else if (dst_interp == COFF_SymbolValueInterp_Weak && + (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Common || src_interp == COFF_SymbolValueInterp_Abs)) { + can_replace = 1; + } + // regular,common vs regular,common + else if ((dst_interp == COFF_SymbolValueInterp_Regular || dst_interp == COFF_SymbolValueInterp_Common) && + (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Common)) { + COFF_ComdatSelectType dst_select; + U32 dst_section_length; + U32 dst_check_sum; + if (dst_interp == COFF_SymbolValueInterp_Regular) { + coff_parse_secdef(dst_parsed, dst_obj->header.is_big_obj, &dst_select, 0, &dst_section_length, &dst_check_sum); + } else { + dst_select = COFF_ComdatSelect_Largest; + dst_section_length = dst_parsed.value; + dst_check_sum = 0; + } - if (src_select == dst_select) { - LNK_Chunk *dst_chunk = dst_defn->u.chunk; - LNK_Chunk *src_chunk = src_defn->u.chunk; - U64 dst_chunk_size = lnk_chunk_get_size(dst_chunk); - U64 src_chunk_size = lnk_chunk_get_size(src_chunk); + COFF_ComdatSelectType src_select; + U32 src_section_length; + U32 src_check_sum; + if (src_interp == COFF_SymbolValueInterp_Regular) { + coff_parse_secdef(src_parsed, src_obj->header.is_big_obj, &src_select, 0, &src_section_length, &src_check_sum); + } else { + src_select = COFF_ComdatSelect_Largest; + src_section_length = src_parsed.value; + src_check_sum = 0; + } - switch (src_select) { - case COFF_ComdatSelect_Null: - case COFF_ComdatSelect_Any: { - if (src_chunk_size == dst_chunk_size) { - can_replace = src_chunk->input_idx < dst_chunk->input_idx; - } else { - // both COMDATs are valid but to get smaller exe pick smallest - can_replace = src_chunk_size < dst_chunk_size; - } - } break; - case COFF_ComdatSelect_NoDuplicates: { - lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src->obj, "multiply defined symbol %S in %S.", dst->name, dst->obj->path); - } break; - case COFF_ComdatSelect_SameSize: { - if (dst_chunk_size != src_chunk_size) { - lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src->obj, "multiply defined symbol %S in %S.", dst->name, dst->obj->path); - } - } break; - case COFF_ComdatSelect_ExactMatch: { - if (dst_defn->u.check_sum != src_defn->u.check_sum) { - lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src->obj, "multiply defined symbol %S in %S.", dst->name, dst->obj->path); - } - } break; - case COFF_ComdatSelect_Largest: { - if (dst_chunk_size == src_chunk_size) { - if (dst_defn->u.chunk->u.leaf.str == 0 && src_defn->u.chunk->u.leaf.size > 0) { - // handle communal variable - // - // MSVC CRT relies on this behaviour (e.g. __scrt_ucrt_dll_is_in_use in ucrt_detection.c) - can_replace = 1; + // handle objs compiled with /GR- and /GR + if ((src_select == COFF_ComdatSelect_Any && dst_select == COFF_ComdatSelect_Largest) || + (src_select == COFF_ComdatSelect_Largest && dst_select == COFF_ComdatSelect_Any)) { + dst_select = COFF_ComdatSelect_Largest; + src_select = COFF_ComdatSelect_Largest; + } + + if (src_select == dst_select) { + switch (src_select) { + case COFF_ComdatSelect_Null: + case COFF_ComdatSelect_Any: { + if (src_section_length == dst_section_length) { + can_replace = src_obj->input_idx < dst_obj->input_idx; } else { - can_replace = src_chunk->input_idx < dst_chunk->input_idx; + // both COMDATs are valid but to get smaller exe pick smallest + can_replace = src_section_length < dst_section_length; } - } else { - can_replace = dst_chunk_size < src_chunk_size; + } break; + case COFF_ComdatSelect_NoDuplicates: { + lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S.", dst->name, dst_obj->path); + } break; + case COFF_ComdatSelect_SameSize: { + if (dst_section_length != src_section_length) { + lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S.", dst->name, dst_obj->path); + } + } break; + case COFF_ComdatSelect_ExactMatch: { + if (dst_check_sum != src_check_sum) { + lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S.", dst->name, dst_obj->path); + } + } break; + case COFF_ComdatSelect_Largest: { + if (dst_section_length == src_section_length) { + if (dst_interp == COFF_SymbolValueInterp_Common) { + // handle communal variable + // + // MSVC CRT relies on this behaviour (e.g. __scrt_ucrt_dll_is_in_use in ucrt_detection.c) + can_replace = 1; + } else { + can_replace = src_obj->input_idx < dst_obj->input_idx; + } + } else { + can_replace = dst_section_length < src_section_length; + } + } break; + case COFF_ComdatSelect_Associative: { + // ignore + } break; + default: { InvalidPath; } } - } break; - case COFF_ComdatSelect_Associative: { - // ignore - } break; - default: { - lnk_error_obj(LNK_Error_InvalidPath, src->obj, "unknown COMDAT selection %#x", src->obj, src_select); - } break; + } else { + String8 src_select_str = coff_string_from_comdat_select_type(src_select); + String8 dst_select_str = coff_string_from_comdat_select_type(dst_select); + lnk_error_obj(LNK_Warning_UnresolvedComdat, src_obj, + "%S: COMDAT selection conflict detected, current selection %S, leader selection %S from %S", + src->name, src_select_str, dst_select_str, dst_obj); } } else { - String8 src_select_str = coff_string_from_comdat_select_type(src_defn->u.selection); - String8 dst_select_str = coff_string_from_comdat_select_type(dst_defn->u.selection); - lnk_error_obj(LNK_Warning_UnresolvedComdat, src->obj, - "%S: COMDAT selection conflict detected, current selection %S, leader selection %S from %S", - src->name, src_select_str, dst_select_str, dst->obj->path); + lnk_error(LNK_Error_InvalidPath, "unable to find a suitable replacement logic for symbol combination"); } } else { lnk_error(LNK_Error_InvalidPath, "unable to find a suitable replacement logic for symbol combination"); @@ -355,33 +319,12 @@ internal void lnk_on_symbol_replace(LNK_Symbol *dst, LNK_Symbol *src) { Assert(dst != src); - - if (dst->type == LNK_Symbol_Lazy && src->type == LNK_Symbol_Lazy) { - dst->u.lazy = src->u.lazy; - } else if (LNK_Symbol_IsDefined(dst->type)) { - LNK_DefinedSymbol *dst_defined = &dst->u.defined; - - if (dst_defined->value_type == LNK_DefinedSymbolValue_Chunk) { - // discard chunk from output - dst_defined->u.chunk->is_discarded = 1; - - if (LNK_Symbol_IsDefined(src->type)) { - LNK_DefinedSymbol *src_defined = &src->u.defined; - - if (src_defined->value_type == LNK_DefinedSymbolValue_Chunk) { - // static symbols that are not part of obj's symbol table might point to discarded chunk - dst_defined->u.chunk->ref = src_defined->u.chunk->ref; - - // copy offset because after folding COMDATS we might end - // up with larger sized chunk and, for instance, a vftable - // might have a function pointer preceeding lead symbol - dst_defined->u.chunk = src_defined->u.chunk; - dst_defined->u.chunk_offset = src_defined->u.chunk_offset; - } - } else { - InvalidPath; - } - } + if (dst->type == LNK_Symbol_Lib && src->type == LNK_Symbol_Lib) { + dst->u.lib = src->u.lib; + } else if (dst->type == LNK_Symbol_Defined && src->type == LNK_Symbol_Defined) { + dst->u.defined = src->u.defined; + } else { + InvalidPath; } } @@ -501,38 +444,28 @@ lnk_symbol_table_init(TP_Arena *arena) { LNK_SymbolTable *symtab = push_array(arena->v[0], LNK_SymbolTable, 1); symtab->arena = arena; - for (U64 i = 0; i < LNK_SymbolScopeIndex_Count; ++i) { + for (U64 i = 0; i < LNK_SymbolScope_Count; ++i) { symtab->chunk_lists[i] = push_array(arena->v[0], LNK_SymbolHashTrieChunkList, arena->count); } return symtab; } internal LNK_Symbol * -lnk_symbol_table_search_hash(LNK_SymbolTable *symtab, LNK_SymbolScopeFlags scope_flags, U64 hash, String8 name) +lnk_symbol_table_search_hash(LNK_SymbolTable *symtab, LNK_SymbolScope scope, U64 hash, String8 name) { - LNK_Symbol *result = 0; - while (scope_flags) { - LNK_SymbolScopeIndex scope_idx = ctz64(scope_flags); - scope_flags &= scope_flags - 1; - - LNK_SymbolHashTrie *match = lnk_symbol_hash_trie_search(symtab->scopes[scope_idx], hash, name); - if (match) { - result = match->symbol; - break; - } - } - return result; + LNK_SymbolHashTrie *trie = lnk_symbol_hash_trie_search(symtab->scopes[scope], hash, name); + return trie ? trie->symbol : 0; } internal LNK_Symbol * -lnk_symbol_table_search(LNK_SymbolTable *symtab, LNK_SymbolScopeFlags scope, String8 name) +lnk_symbol_table_search(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 name) { U64 hash = lnk_symbol_hash(name); return lnk_symbol_table_search_hash(symtab, scope, hash, name); } internal LNK_Symbol * -lnk_symbol_table_searchf(LNK_SymbolTable *symtab, LNK_SymbolScopeFlags scope_flags, char *fmt, ...) +lnk_symbol_table_searchf(LNK_SymbolTable *symtab, LNK_SymbolScope scope, char *fmt, ...) { Temp scratch = scratch_begin(0, 0); @@ -541,16 +474,16 @@ lnk_symbol_table_searchf(LNK_SymbolTable *symtab, LNK_SymbolScopeFlags scope_fla String8 name = push_str8fv(scratch.arena, fmt, args); va_end(args); - LNK_Symbol *symbol = lnk_symbol_table_search(symtab, scope_flags, name); + LNK_Symbol *symbol = lnk_symbol_table_search(symtab, scope, name); scratch_end(scratch); return symbol; } internal void -lnk_symbol_table_push_(LNK_SymbolTable *symtab, Arena *arena, LNK_SymbolHashTrieChunkList *chunk_list, LNK_SymbolScopeIndex scope_idx, U64 hash, LNK_Symbol *symbol) +lnk_symbol_table_push_(LNK_SymbolTable *symtab, Arena *arena, U64 worker_id, LNK_SymbolScope scope, U64 hash, LNK_Symbol *symbol) { - lnk_symbol_hash_trie_insert_or_replace(arena, chunk_list, &symtab->scopes[scope_idx], hash, symbol); + lnk_symbol_hash_trie_insert_or_replace(arena, &symtab->chunk_lists[scope][worker_id], &symtab->scopes[scope], hash, symbol); } internal void @@ -558,29 +491,10 @@ lnk_symbol_table_push_hash(LNK_SymbolTable *symtab, U64 hash, LNK_Symbol *symbol { switch (symbol->type) { case LNK_Symbol_Null: break; - - case LNK_Symbol_Import: - case LNK_Symbol_DefinedExtern: { - lnk_symbol_table_push_(symtab, symtab->arena->v[0], &symtab->chunk_lists[LNK_SymbolScopeIndex_Defined][0], LNK_SymbolScopeIndex_Defined, hash, symbol); - } break; - - case LNK_Symbol_DefinedInternal: { - lnk_symbol_table_push_(symtab, symtab->arena->v[0], &symtab->chunk_lists[LNK_SymbolScopeIndex_Internal][0], LNK_SymbolScopeIndex_Internal, hash, symbol); - } break; - - case LNK_Symbol_Weak: { - lnk_symbol_table_push_(symtab, symtab->arena->v[0], &symtab->chunk_lists[LNK_SymbolScopeIndex_Weak][0], LNK_SymbolScopeIndex_Weak, hash, symbol); - } break; - - case LNK_Symbol_Lazy: { - lnk_symbol_table_push_(symtab, symtab->arena->v[0], &symtab->chunk_lists[LNK_SymbolScopeIndex_Lib][0], LNK_SymbolScopeIndex_Lib, hash, symbol); - } break; - - // symbols not supported - case LNK_Symbol_Undefined: - case LNK_Symbol_DefinedStatic: { - InvalidPath; - } break; + case LNK_Symbol_Defined: + case LNK_Symbol_Import: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Defined, hash, symbol); } break; + case LNK_Symbol_Lib: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Lib, hash, symbol); } break; + default: { InvalidPath; } break; } } @@ -592,7 +506,7 @@ lnk_symbol_table_push(LNK_SymbolTable *symtab, LNK_Symbol *symbol) } internal void -lnk_symbol_table_remove(LNK_SymbolTable *symtab, LNK_SymbolScopeIndex scope, String8 name) +lnk_symbol_table_remove(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 name) { U64 hash = lnk_symbol_hash(name); LNK_SymbolHashTrie *trie = lnk_symbol_hash_trie_search(symtab->scopes[scope], hash, name); @@ -601,141 +515,4 @@ lnk_symbol_table_remove(LNK_SymbolTable *symtab, LNK_SymbolScopeIndex scope, Str } } -internal LNK_Symbol * -lnk_symbol_table_push_defined_chunk(LNK_SymbolTable *symtab, String8 name, LNK_DefinedSymbolVisibility visibility, LNK_DefinedSymbolFlags flags, LNK_Chunk *chunk, U64 offset, COFF_ComdatSelectType selection, U32 check_sum) -{ - LNK_Symbol *symbol = lnk_make_defined_symbol_chunk(symtab->arena->v[0], name, visibility, flags, chunk, offset, selection, check_sum); - lnk_symbol_table_push(symtab, symbol); - return symbol; -} -internal LNK_Symbol * -lnk_symbol_table_push_defined(LNK_SymbolTable *symtab, String8 name, LNK_DefinedSymbolVisibility visibility, LNK_DefinedSymbolFlags flags) -{ - LNK_Symbol *symbol = lnk_make_defined_symbol(symtab->arena->v[0], name, visibility, flags); - lnk_symbol_table_push(symtab, symbol); - return symbol; -} - -internal LNK_Symbol * -lnk_symbol_table_push_defined_va(LNK_SymbolTable *symtab, String8 name, LNK_DefinedSymbolVisibility visibility, LNK_DefinedSymbolFlags flags, U64 va) -{ - LNK_Symbol *symbol = lnk_make_defined_symbol_va(symtab->arena->v[0], name, visibility, flags, va); - lnk_symbol_table_push(symtab, symbol); - return symbol; -} - -internal LNK_Symbol * -lnk_symbol_table_push_weak(LNK_SymbolTable *symtab, String8 weak_name, COFF_WeakExtType lookup, String8 strong_name) -{ - weak_name = push_str8_copy(symtab->arena->v[0], weak_name); - strong_name = push_str8_copy(symtab->arena->v[0], strong_name); - LNK_Symbol *strong_symbol = lnk_make_undefined_symbol(symtab->arena->v[0], strong_name, LNK_SymbolScopeFlag_Main); - LNK_Symbol *weak_symbol = lnk_make_weak_symbol(symtab->arena->v[0], weak_name, COFF_WeakExt_SearchAlias, strong_symbol); - lnk_symbol_table_push(symtab, weak_symbol); - return weak_symbol; -} - -internal LNK_Symbol * -lnk_resolve_symbol(LNK_SymbolTable *symtab, LNK_Symbol *resolve_symbol) -{ - LNK_Symbol *symbol = resolve_symbol; - B32 run_resolver; - do { - run_resolver = 0; - switch (symbol->type) { - case LNK_Symbol_Null: break; - case LNK_Symbol_Undefined: { - LNK_UndefinedSymbol *undef_symbol = &symbol->u.undefined; - LNK_Symbol *def = lnk_symbol_table_search(symtab, undef_symbol->scope_flags, symbol->name); - if (def) { - symbol = def; - run_resolver = 1; - } - } break; - case LNK_Symbol_Weak: { - LNK_WeakSymbol *weak = &symbol->u.weak; - LNK_Symbol *def = lnk_symbol_table_search(symtab, weak->scope_flags, symbol->name); - if (def) { - Assert(LNK_Symbol_IsDefined(def->type)); - symbol = def; - } else { - symbol = symbol->u.weak.fallback_symbol; - } - run_resolver = 1; - } break; - case LNK_Symbol_DefinedExtern: { - // search for defined symbol because we don't update symbol pointers in relocations - // whenver we replace them in the symbol table - symbol = lnk_symbol_table_search(symtab, LNK_SymbolScopeFlag_Defined, symbol->name); - Assert(symbol); - } break; - case LNK_Symbol_DefinedStatic: - case LNK_Symbol_DefinedInternal: { - // symbol resolved - } break; - default: NotImplemented; - } - } while (run_resolver); - return symbol; -} - -#if 0 - -internal void -lnk_symbol_hash_trie_debug(LNK_SymbolHashTrie *root) -{ - Temp scratch = scratch_begin(0,0); - - struct Stack { - struct Stack *next; - U64 i; - LNK_SymbolHashTrie *trie; - }; - - struct Stack *stack = push_array(scratch.arena, struct Stack, 1); - stack->i = 0; - stack->trie = root; - - U64 cur_depth = 1; - U64 max_depth = 0; - - char *dashes = "--------------------------------"; - - FILE *f = fopen("trie.txt", "w"); - - while (stack) { - for (; stack->i < ArrayCount(stack->trie->child); ++stack->i) { - - if (stack->i == 0 && stack->trie->symbol) { - fprintf(f, "%.*s%.*s\n", (int)cur_depth, dashes, str8_varg(stack->trie->symbol->name)); - } - - if (stack->trie->child[stack->i] != 0) { - struct Stack *frame = push_array(scratch.arena, struct Stack, 1); - frame->i = 0; - frame->trie = stack->trie->child[stack->i]; - - stack->i += 1; - SLLStackPush(stack, frame); - - cur_depth += 1; - max_depth = Max(cur_depth, max_depth); - - break; - } - } - - if (stack->i >= ArrayCount(stack->trie->child)) { - cur_depth -= 1; - SLLStackPop(stack); - } - } - - fprintf(f, "Max Depth: %llu\n", max_depth); - fclose(f); - - scratch_end(scratch); -} - -#endif diff --git a/src/linker/lnk_symbol_table.h b/src/linker/lnk_symbol_table.h index a6be9f8a..a12d3a91 100644 --- a/src/linker/lnk_symbol_table.h +++ b/src/linker/lnk_symbol_table.h @@ -1,109 +1,49 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once -typedef enum -{ - LNK_SymbolScopeIndex_Defined, - LNK_SymbolScopeIndex_Internal, // symbols defined by linker - LNK_SymbolScopeIndex_Weak, - LNK_SymbolScopeIndex_Lib, - LNK_SymbolScopeIndex_Count -} LNK_SymbolScopeIndex; +//////////////////////////////// -enum -{ - LNK_SymbolScopeFlag_Defined = 1, - LNK_SymbolScopeFlag_Internal = 2, - LNK_SymbolScopeFlag_Weak = 4, - LNK_SymbolScopeFlag_Lib = 8, - - LNK_SymbolScopeFlag_Main = LNK_SymbolScopeFlag_Defined | LNK_SymbolScopeFlag_Weak, - LNK_SymbolScopeFlag_All = LNK_SymbolScopeFlag_Defined | LNK_SymbolScopeFlag_Weak | LNK_SymbolScopeFlag_Lib | LNK_SymbolScopeFlag_Internal -}; -typedef U64 LNK_SymbolScopeFlags; - -typedef enum -{ - LNK_DefinedSymbolVisibility_Static, - LNK_DefinedSymbolVisibility_Extern, - LNK_DefinedSymbolVisibility_Internal, -} LNK_DefinedSymbolVisibility; - -enum -{ - LNK_DefinedSymbolFlag_IsFunc = (1 << 0), - LNK_DefinedSymbolFlag_IsThunk = (1 << 1), -}; -typedef U64 LNK_DefinedSymbolFlags; - -typedef enum -{ - LNK_DefinedSymbolValue_Null, - LNK_DefinedSymbolValue_Chunk, - LNK_DefinedSymbolValue_VA -} LNK_DefinedSymbolValueType; - -typedef struct LNK_DefinedSymbol -{ - LNK_DefinedSymbolFlags flags; - LNK_DefinedSymbolValueType value_type; - union { - struct { - LNK_Chunk *chunk; - U64 chunk_offset; - U32 check_sum; - COFF_ComdatSelectType selection; - }; - U64 va; - } u; -} LNK_DefinedSymbol; - -typedef struct LNK_WeakSymbol -{ - LNK_SymbolScopeFlags scope_flags; - COFF_WeakExtType lookup_type; - struct LNK_Symbol *fallback_symbol; -} LNK_WeakSymbol; - -typedef struct LNK_UndefinedSymbol -{ - LNK_SymbolScopeFlags scope_flags; -} LNK_UndefinedSymbol; - -typedef struct LNK_LazySymbol -{ - struct LNK_Lib *lib; - U64 member_offset; -} LNK_LazySymbol; - -#define LNK_Symbol_IsDefined(type) ((type) == LNK_Symbol_DefinedStatic || (type) == LNK_Symbol_DefinedExtern || (type) == LNK_Symbol_DefinedInternal) typedef enum { LNK_Symbol_Null, - LNK_Symbol_DefinedStatic, - LNK_Symbol_DefinedExtern, - LNK_Symbol_DefinedInternal, - LNK_Symbol_Weak, - LNK_Symbol_Lazy, - LNK_Symbol_Undefined, + LNK_Symbol_Defined, LNK_Symbol_Import, + LNK_Symbol_Lib, + LNK_Symbol_Undefined, } LNK_SymbolType; +typedef struct LNK_SymbolDefined +{ + struct LNK_Obj *obj; + U32 symbol_idx; +} LNK_SymbolDefined; + +typedef struct LNK_SymbolLib +{ + struct LNK_Lib *lib; + U64 member_offset; +} LNK_SymbolLib; + +typedef struct LNK_SymbolUndefined +{ + struct LNK_Obj *obj; +} LNK_SymbolUndefined; + typedef struct LNK_Symbol { - String8 name; - LNK_SymbolType type; - struct LNK_Obj *obj; + String8 name; + LNK_SymbolType type; union { - LNK_DefinedSymbol defined; - LNK_WeakSymbol weak; - LNK_UndefinedSymbol undefined; - LNK_LazySymbol lazy; + LNK_SymbolDefined defined; + LNK_SymbolLib lib; + LNK_SymbolUndefined undef; } u; } LNK_Symbol; +//////////////////////////////// + typedef struct LNK_SymbolNode { struct LNK_SymbolNode *next; @@ -129,6 +69,15 @@ typedef struct LNK_SymbolArray LNK_Symbol *v; } LNK_SymbolArray; +//////////////////////////////// + +typedef enum +{ + LNK_SymbolScope_Defined, + LNK_SymbolScope_Lib, + LNK_SymbolScope_Count +} LNK_SymbolScope; + typedef struct LNK_SymbolHashTrie { String8 *name; @@ -154,8 +103,8 @@ typedef struct LNK_SymbolHashTrieChunkList typedef struct LNK_SymbolTable { TP_Arena *arena; - LNK_SymbolHashTrie *scopes[LNK_SymbolScopeIndex_Count]; - LNK_SymbolHashTrieChunkList *chunk_lists[LNK_SymbolScopeIndex_Count]; + LNK_SymbolHashTrie *scopes[LNK_SymbolScope_Count]; + LNK_SymbolHashTrieChunkList *chunk_lists[LNK_SymbolScope_Count]; } LNK_SymbolTable; //////////////////////////////// @@ -170,26 +119,14 @@ typedef struct //////////////////////////////// -global read_only LNK_Symbol g_null_symbol = { str8_lit_comp("NULL"), LNK_Symbol_DefinedStatic }; +global read_only LNK_Symbol g_null_symbol = { str8_lit_comp("NULL"), LNK_Symbol_Null }; global read_only LNK_Symbol *g_null_symbol_ptr = &g_null_symbol; //////////////////////////////// -internal void lnk_init_symbol(LNK_Symbol *symbol, String8 name, LNK_SymbolType type); -internal void lnk_init_defined_symbol(LNK_Symbol *symbol, String8 name, LNK_DefinedSymbolVisibility visibility, LNK_DefinedSymbolFlags flags); -internal void lnk_init_defined_symbol_chunk(LNK_Symbol *symbol, String8 name, LNK_DefinedSymbolVisibility visibility, LNK_DefinedSymbolFlags flags, LNK_Chunk *chunk, U64 offset, COFF_ComdatSelectType selection, U32 check_sum); -internal void lnk_init_defined_symbol_va(LNK_Symbol *symbol, String8 name, LNK_DefinedSymbolVisibility visibility, LNK_DefinedSymbolFlags flags, U64 va); -internal void lnk_init_undefined_symbol(LNK_Symbol *symbol, String8 name, LNK_SymbolScopeFlags scope_flags); -internal void lnk_init_weak_symbol(LNK_Symbol *symbol, String8 name, COFF_WeakExtType lookup, LNK_Symbol *fallback); - -internal LNK_Symbol * lnk_make_defined_symbol(Arena *arena, String8 name, LNK_DefinedSymbolVisibility visibility, LNK_DefinedSymbolFlags flags); -internal LNK_Symbol * lnk_make_defined_symbol_chunk(Arena *arena, String8 name, LNK_DefinedSymbolVisibility visibility, LNK_DefinedSymbolFlags flags, LNK_Chunk *chunk, U64 offset, COFF_ComdatSelectType selection, U32 check_sum); -internal LNK_Symbol * lnk_make_defined_symbol_va(Arena *arena, String8 name, LNK_DefinedSymbolVisibility visibility, LNK_DefinedSymbolFlags flags, U64 va); -internal LNK_Symbol * lnk_make_undefined_symbol(Arena *arena, String8 name, LNK_SymbolScopeFlags scope_flags); -internal LNK_Symbol * lnk_make_weak_symbol(Arena *arena, String8 name, COFF_WeakExtType lookup, LNK_Symbol *fallback); -internal LNK_Symbol * lnk_make_lazy_symbol(Arena *arena, String8 name, struct LNK_Lib *lib, U64 member_offset); - -internal LNK_Chunk * lnk_chunk_from_symbol(LNK_Symbol *symbol); +internal LNK_Symbol * lnk_make_defined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj, U32 symbol_idx); +internal LNK_Symbol * lnk_make_lib_symbol(Arena *arena, String8 name, struct LNK_Lib *lib, U64 member_offset); +internal LNK_Symbol * lnk_make_undefined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj); //////////////////////////////// @@ -202,6 +139,14 @@ internal LNK_SymbolArray lnk_symbol_array_from_list(Arena *arena, LNK_Symbol //////////////////////////////// +internal ISectOff lnk_sc_from_symbol (LNK_Symbol *symbol); +internal U64 lnk_isect_from_symbol (LNK_Symbol *symbol); +internal U64 lnk_sect_off_from_symbol(LNK_Symbol *symbol); +internal U64 lnk_virt_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol); +internal U64 lnk_file_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol); + +//////////////////////////////// + internal void lnk_symbol_hash_trie_insert_or_replace(Arena *arena, LNK_SymbolHashTrieChunkList *chunks, LNK_SymbolHashTrie **trie, U64 hash, LNK_Symbol *symbol); internal LNK_SymbolHashTrie * lnk_symbol_hash_trie_search(LNK_SymbolHashTrie *trie, U64 hash, String8 name); internal void lnk_symbol_hash_trie_remove(LNK_SymbolHashTrie *trie); @@ -211,12 +156,10 @@ internal void lnk_symbol_hash_trie_remove(LNK_SymbolHashTrie *tr internal U64 lnk_symbol_hash(String8 string); internal LNK_SymbolTable * lnk_symbol_table_init(TP_Arena *arena); -internal LNK_Symbol * lnk_symbol_table_search_hash(LNK_SymbolTable *symtab, LNK_SymbolScopeFlags scope, U64 hash, String8 name); -internal LNK_Symbol * lnk_symbol_table_search(LNK_SymbolTable *symtab, LNK_SymbolScopeFlags scope, String8 name); -internal LNK_Symbol * lnk_symbol_table_searchf(LNK_SymbolTable *symtab, LNK_SymbolScopeFlags scope, char *fmt, ...); +internal LNK_Symbol * lnk_symbol_table_search_hash(LNK_SymbolTable *symtab, LNK_SymbolScope scope, U64 hash, String8 name); +internal LNK_Symbol * lnk_symbol_table_search(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 name); +internal LNK_Symbol * lnk_symbol_table_searchf(LNK_SymbolTable *symtab, LNK_SymbolScope scope, char *fmt, ...); internal void lnk_symbol_table_push_hash(LNK_SymbolTable *symtab, U64 hash, LNK_Symbol *symbol); internal void lnk_symbol_table_push(LNK_SymbolTable *symtab, LNK_Symbol *symbol); -internal void lnk_symbol_table_remove(LNK_SymbolTable *symtab, LNK_SymbolScopeIndex scope, String8 name); - -internal LNK_Symbol * lnk_resolve_symbol(LNK_SymbolTable *symtab, LNK_Symbol *resolve_symbol); +internal void lnk_symbol_table_remove(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 name); diff --git a/src/linker/lnk_timer.c b/src/linker/lnk_timer.c index 61872279..51460d58 100644 --- a/src/linker/lnk_timer.c +++ b/src/linker/lnk_timer.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) global LNK_Timer g_timers[LNK_Timer_Count]; diff --git a/src/linker/lnk_timer.h b/src/linker/lnk_timer.h index 41b81053..ade95ae2 100644 --- a/src/linker/lnk_timer.h +++ b/src/linker/lnk_timer.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/pdb_ext/msf_builder.c b/src/linker/pdb_ext/msf_builder.c index 5ae0036d..5a1cf862 100644 --- a/src/linker/pdb_ext/msf_builder.c +++ b/src/linker/pdb_ext/msf_builder.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal U64 diff --git a/src/linker/pdb_ext/msf_builder.h b/src/linker/pdb_ext/msf_builder.h index c9bda071..a2d10322 100644 --- a/src/linker/pdb_ext/msf_builder.h +++ b/src/linker/pdb_ext/msf_builder.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/pdb_ext/pdb.c b/src/linker/pdb_ext/pdb.c index f0b3447c..3ddd666f 100644 --- a/src/linker/pdb_ext/pdb.c +++ b/src/linker/pdb_ext/pdb.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal U32 diff --git a/src/linker/pdb_ext/pdb.h b/src/linker/pdb_ext/pdb.h index 3101a935..6b31f4ee 100644 --- a/src/linker/pdb_ext/pdb.h +++ b/src/linker/pdb_ext/pdb.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/pdb_ext/pdb_builder.c b/src/linker/pdb_ext/pdb_builder.c index ffabb1c6..103a2b4c 100644 --- a/src/linker/pdb_ext/pdb_builder.c +++ b/src/linker/pdb_ext/pdb_builder.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) //////////////////////////////// diff --git a/src/linker/pdb_ext/pdb_builder.h b/src/linker/pdb_ext/pdb_builder.h index 7042bf17..8ca8ed93 100644 --- a/src/linker/pdb_ext/pdb_builder.h +++ b/src/linker/pdb_ext/pdb_builder.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/pdb_ext/pdb_helpers.c b/src/linker/pdb_ext/pdb_helpers.c index 501ded65..0f8dcc28 100644 --- a/src/linker/pdb_ext/pdb_helpers.c +++ b/src/linker/pdb_ext/pdb_helpers.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal U64 diff --git a/src/linker/pdb_ext/pdb_helpers.h b/src/linker/pdb_ext/pdb_helpers.h index 315ff665..7ba2d47b 100644 --- a/src/linker/pdb_ext/pdb_helpers.h +++ b/src/linker/pdb_ext/pdb_helpers.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/rdi/rdi_builder.c b/src/linker/rdi/rdi_builder.c index 6d7145f1..623f0a9f 100644 --- a/src/linker/rdi/rdi_builder.c +++ b/src/linker/rdi/rdi_builder.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal RDIB_DataModel diff --git a/src/linker/rdi/rdi_builder.h b/src/linker/rdi/rdi_builder.h index d0b3ef33..50bb1965 100644 --- a/src/linker/rdi/rdi_builder.h +++ b/src/linker/rdi/rdi_builder.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/rdi/rdi_coff.c b/src/linker/rdi/rdi_coff.c index 2646860c..57072743 100644 --- a/src/linker/rdi/rdi_coff.c +++ b/src/linker/rdi/rdi_coff.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal RDI_Arch diff --git a/src/linker/rdi/rdi_coff.h b/src/linker/rdi/rdi_coff.h index d946e237..c68e4dc5 100644 --- a/src/linker/rdi/rdi_coff.h +++ b/src/linker/rdi/rdi_coff.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/rdi/rdi_cv.c b/src/linker/rdi/rdi_cv.c index 330161d0..0f8e9de2 100644 --- a/src/linker/rdi/rdi_cv.c +++ b/src/linker/rdi/rdi_cv.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal RDI_Arch diff --git a/src/linker/rdi/rdi_cv.h b/src/linker/rdi/rdi_cv.h index 0201c688..fb6ca4da 100644 --- a/src/linker/rdi/rdi_cv.h +++ b/src/linker/rdi/rdi_cv.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once diff --git a/src/linker/thread_pool/thread_pool.c b/src/linker/thread_pool/thread_pool.c index 434729d8..066efdd4 100644 --- a/src/linker/thread_pool/thread_pool.c +++ b/src/linker/thread_pool/thread_pool.c @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) internal void diff --git a/src/linker/thread_pool/thread_pool.h b/src/linker/thread_pool/thread_pool.h index e37f903c..f03e2a1e 100644 --- a/src/linker/thread_pool/thread_pool.h +++ b/src/linker/thread_pool/thread_pool.h @@ -1,4 +1,4 @@ -// Copyright (c) 2024 Epic Games Tools +// Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #pragma once From ccf204d2f10ffffed97662b61922eb36f5f911b0 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 7 May 2025 13:43:15 -0700 Subject: [PATCH 078/372] build target for torture --- build.bat | 1 + 1 file changed, 1 insertion(+) diff --git a/build.bat b/build.bat index 76ce1902..aab7c76e 100644 --- a/build.bat +++ b/build.bat @@ -123,6 +123,7 @@ if "%strip_lib_debug%"=="1" set didbuild=1 && %compile% ..\src\strip_ if "%mule_main%"=="1" set didbuild=1 && del vc*.pdb mule*.pdb && %compile_release% %only_compile% ..\src\mule\mule_inline.cpp && %compile_release% %only_compile% ..\src\mule\mule_o2.cpp && %compile_debug% %EHsc% ..\src\mule\mule_main.cpp ..\src\mule\mule_c.c mule_inline.obj mule_o2.obj %compile_link% %no_aslr% %out%mule_main.exe || exit /b 1 if "%mule_module%"=="1" set didbuild=1 && %compile% ..\src\mule\mule_module.cpp %compile_link% %link_dll% %out%mule_module.dll || exit /b 1 if "%mule_hotload%"=="1" set didbuild=1 && %compile% ..\src\mule\mule_hotload_main.c %compile_link% %out%mule_hotload.exe & %compile% ..\src\mule\mule_hotload_module_main.c %compile_link% %link_dll% %out%mule_hotload_module.dll || exit /b 1 +if "%torture%"=="1" set didbuild=1 && %compile% ..\src\torture\torture.c %compile_link% %out%torture.exe || exit /b1 if "%mule_peb_trample%"=="1" ( set didbuild=1 if exist mule_peb_trample.exe move mule_peb_trample.exe mule_peb_trample_old_%random%.exe From 120829095bd369ee003f45fa01ff40a82c49a5cb Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 8 May 2025 11:09:32 -0700 Subject: [PATCH 079/372] COFF lib writer --- src/coff/coff.c | 28 ++- src/coff/coff.h | 3 +- src/coff/coff_lib_writer.c | 374 +++++++++++++++++++++++++++++++++++++ src/coff/coff_lib_writer.h | 69 +++++++ 4 files changed, 470 insertions(+), 4 deletions(-) create mode 100644 src/coff/coff_lib_writer.c create mode 100644 src/coff/coff_lib_writer.h diff --git a/src/coff/coff.c b/src/coff/coff.c index de5488e0..d925ae56 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -302,9 +302,9 @@ coff_ordinal_data_from_hint(Arena *arena, COFF_MachineType machine, U16 hint) internal String8 coff_make_import_header_by_name(Arena *arena, - String8 dll_name, COFF_MachineType machine, COFF_TimeStamp time_stamp, + String8 dll_name, String8 name, U16 hint, COFF_ImportType type) @@ -346,9 +346,9 @@ coff_make_import_header_by_name(Arena *arena, internal String8 coff_make_import_header_by_ordinal(Arena *arena, - String8 dll_name, COFF_MachineType machine, COFF_TimeStamp time_stamp, + String8 dll_name, U16 ordinal, COFF_ImportType type) { @@ -930,3 +930,27 @@ coff_import_header_type_from_string(String8 name) } return COFF_ImportType_Invalid; } +internal String8 +coff_make_lib_member_header(Arena *arena, String8 name, COFF_TimeStamp time_stamp, U16 user_id, U16 group_id, U16 mode, U32 size) +{ + Assert(name.size < 16); + Assert(user_id < 10000); + Assert(group_id < 10000); + Assert(mode < 10000); + Assert(size < 1000000000); + + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + str8_list_pushf(scratch.arena, &list, "%-16.*s", str8_varg(name)); + str8_list_pushf(scratch.arena, &list, "%-12u", time_stamp); + str8_list_pushf(scratch.arena, &list, "%-6u", user_id); + str8_list_pushf(scratch.arena, &list, "%-6u", group_id); + str8_list_pushf(scratch.arena, &list, "%-8u", mode); + str8_list_pushf(scratch.arena, &list, "%-10u", size); + str8_list_pushf(scratch.arena, &list, "`\n"); + String8 result = str8_list_join(arena, &list, 0); + + Assert(result.size == sizeof(COFF_ArchiveMemberHeader)); + scratch_end(scratch); + return result; +} diff --git a/src/coff/coff.h b/src/coff/coff.h index 89445216..3d6d7646 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -612,8 +612,6 @@ internal U64 coff_make_ordinal64(U16 hint); internal String8 coff_ordinal_data_from_hint(Arena *arena, COFF_MachineType machine, U16 hint); internal String8 coff_make_import_lookup (Arena *arena, U16 hint, String8 name); -internal String8 coff_make_import_header_by_name (Arena *arena, String8 dll_name, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 name, U16 hint, COFF_ImportType type); -internal String8 coff_make_import_header_by_ordinal(Arena *arena, String8 dll_name, COFF_MachineType machine, COFF_TimeStamp time_stamp, U16 ordinal, COFF_ImportType type); //////////////////////////////// // Misc @@ -647,5 +645,6 @@ internal String8 coff_string_from_reloc(COFF_MachineType machine, COFF_RelocType internal COFF_MachineType coff_machine_from_string(String8 string); internal COFF_ImportType coff_import_header_type_from_string(String8 name); +internal String8 coff_make_lib_member_header(Arena *arena, String8 name, COFF_TimeStamp time_stamp, U16 user_id, U16 group_id, U16 mode, U32 size); #endif // COFF_H diff --git a/src/coff/coff_lib_writer.c b/src/coff/coff_lib_writer.c new file mode 100644 index 00000000..1aebcc69 --- /dev/null +++ b/src/coff/coff_lib_writer.c @@ -0,0 +1,374 @@ +// Copyright (c) 2025 Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal COFF_LibWriterSymbolNode * +coff_lib_writer_symbol_list_push(Arena *arena, COFF_LibWriterSymbolList *list, COFF_LibWriterSymbol symbol) +{ + COFF_LibWriterSymbolNode *node = push_array_no_zero(arena, COFF_LibWriterSymbolNode, 1); + node->next = 0; + node->data = symbol; + SLLQueuePush(list->first, list->last, node); + list->count += 1; + return node; +} + +internal COFF_LibWriterMemberNode * +coff_lib_writer_member_list_push(Arena *arena, COFF_LibWriterMemberList *list, COFF_LibWriterMember member) +{ + COFF_LibWriterMemberNode *node = push_array_no_zero(arena, COFF_LibWriterMemberNode, 1); + node->next = 0; + node->data = member; + SLLQueuePush(list->first, list->last, node); + list->count += 1; + return node; +} + +internal COFF_LibWriterSymbol * +coff_lib_writer_symbol_array_from_list(Arena *arena, COFF_LibWriterSymbolList list) +{ + COFF_LibWriterSymbol *arr = push_array_no_zero(arena, COFF_LibWriterSymbol, list.count + 2); + COFF_LibWriterSymbol *ptr = arr + 1; + for (COFF_LibWriterSymbolNode *i = list.first; i != 0; i = i->next, ptr += 1) { + ptr->name = push_str8_copy(arena, i->data.name); + ptr->member_idx = i->data.member_idx; + } + MemoryZeroStruct(&arr[0]); + MemoryZeroStruct(&arr[list.count+1]); + return arr; +} + +internal COFF_LibWriterMember * +coff_lib_writer_member_array_from_list(Arena *arena, COFF_LibWriterMemberList list) +{ + COFF_LibWriterMember *arr = push_array_no_zero(arena, COFF_LibWriterMember, list.count); + COFF_LibWriterMember *ptr = arr; + for (COFF_LibWriterMemberNode *i = list.first; i != 0; i = i->next, ptr += 1) { + ptr->name = push_str8_copy(arena, i->data.name); + ptr->data = push_str8_copy(arena, i->data.data); + } + return arr; +} + +internal int +coff_lib_writer_symbol_name_compar(const void *raw_a, const void *raw_b) +{ + const COFF_LibWriterSymbol *sa = raw_a; + const COFF_LibWriterSymbol *sb = raw_b; + return str8_compar_case_sensitive(&sa->name, &sb->name); +} + +internal int +coff_lib_writer_symbol_is_before(void *raw_a, void *raw_b) +{ + int compar = coff_lib_writer_symbol_name_compar(raw_a, raw_b); + return compar < 0; +} + +internal void +coff_lib_writer_symbol_array_sort(COFF_LibWriterSymbol *arr, U64 count) +{ + Assert(count >= 2); + radsort(arr + 1, count - 2, coff_lib_writer_symbol_is_before); +} + +internal COFF_LibWriter * +coff_lib_writer_alloc(void) +{ + Arena *arena = arena_alloc(); + COFF_LibWriter *writer = push_array(arena, COFF_LibWriter, 1); + writer->arena = arena; + return writer; +} + +internal void +coff_lib_writer_release(COFF_LibWriter **writer_ptr) +{ + arena_release((*writer_ptr)->arena); + *writer_ptr = 0; +} + +internal void +coff_lib_writer_push_obj(COFF_LibWriter *writer, String8 obj_path, String8 obj_data) +{ + U64 member_idx = writer->member_list.count; + + // push obj member + COFF_LibWriterMember member = {0}; + member.name = obj_path; + member.data = obj_data; + coff_lib_writer_member_list_push(writer->arena, &writer->member_list, member); + + // push external symbols + { + COFF_FileHeaderInfo obj_header = coff_file_header_info_from_data(obj_data); + String8 string_table = str8_substr(obj_data, obj_header.string_table_range); + String8 symbol_table = str8_substr(obj_data, obj_header.symbol_table_range); + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj_header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + void *symbol_ptr; + if (obj_header.is_big_obj) { + symbol_ptr = &((COFF_Symbol32 *)symbol_table.str)[symbol_idx]; + symbol = coff_parse_symbol32(string_table, symbol_ptr); + } else { + symbol_ptr = &((COFF_Symbol16 *)symbol_table.str)[symbol_idx]; + symbol = coff_parse_symbol16(string_table, symbol_ptr); + } + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { + if (symbol.storage_class == COFF_SymStorageClass_External) { + COFF_LibWriterSymbol lib_symbol = {0}; + lib_symbol.name = symbol.name; + lib_symbol.member_idx = member_idx; + coff_lib_writer_symbol_list_push(writer->arena, &writer->symbol_list, lib_symbol); + } + } + } + } +} + +internal void +coff_lib_writer_push_export(COFF_LibWriter *writer, String8 raw_import_header) +{ + U64 member_idx = writer->member_list.count; + COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(raw_import_header); + + // push import member + COFF_LibWriterMember member = {0}; + member.name = import_header.dll_name; + member.data = raw_import_header; + coff_lib_writer_member_list_push(writer->arena, &writer->member_list, member); + + switch (import_header.type) { + case COFF_ImportHeader_Code: { + COFF_LibWriterSymbol def_symbol = {0}; + def_symbol.name = push_str8_copy(writer->arena, import_header.func_name); + def_symbol.member_idx = member_idx; + coff_lib_writer_symbol_list_push(writer->arena, &writer->symbol_list, def_symbol); + } break; + case COFF_ImportHeader_Data: { + COFF_LibWriterSymbol imp_symbol = {0}; + imp_symbol.name = push_str8f(writer->arena, "__imp_%S", import_header.func_name); + imp_symbol.member_idx = member_idx; + coff_lib_writer_symbol_list_push(writer->arena, &writer->symbol_list, imp_symbol); + } break; + case COFF_ImportHeader_Const: { + NotImplemented; + } break; + default: { InvalidPath; } break; + } +} + +internal void +coff_lib_writer_push_export_by_ordinal(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, U16 ordinal) +{ + String8 import_header = coff_make_import_header_by_ordinal(lib_writer->arena, machine, time_stamp, dll_name, ordinal, import_type); + coff_lib_writer_push_export(lib_writer, import_header); +} + +internal void +coff_lib_writer_push_export_by_name(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, String8 name, U16 hint) +{ + String8 import_header = coff_make_import_header_by_name(lib_writer->arena, machine, time_stamp, dll_name, name, hint, import_type); + coff_lib_writer_push_export(lib_writer, import_header); +} + +internal String8List +coff_lib_writer_serialize(Arena *arena, COFF_LibWriter *lib_writer, COFF_TimeStamp time_stamp, U16 mode, B32 emit_second_member) +{ + Temp scratch = scratch_begin(&arena, 1); + + // symbol & member lists -> arrays + U64 symbols_count; + COFF_LibWriterSymbol *symbols; + U64 member_count; + COFF_LibWriterMember *member_array; + { + U64 symbols_count_with_null = lib_writer->symbol_list.count + 2; + COFF_LibWriterSymbol *symbols_with_null = coff_lib_writer_symbol_array_from_list(scratch.arena, lib_writer->symbol_list); + coff_lib_writer_symbol_array_sort(symbols_with_null, symbols_count_with_null); + symbols_count = symbols_count_with_null - 2; + symbols = symbols_with_null + 1; + + member_count = lib_writer->member_list.count; + member_array = coff_lib_writer_member_array_from_list(scratch.arena, lib_writer->member_list); + } + + // serialize members + U64 *member_offsets = push_array_no_zero(scratch.arena, U64, member_count); + String8List long_names_list = {0}; + String8List member_data_list = {0}; + { + HashTable *name_ht = hash_table_init(scratch.arena, 1024); + for (U64 member_idx = 0; member_idx < member_count; member_idx += 1) { + COFF_LibWriterMember *member = &member_array[member_idx]; + + // make member name + String8 name; + U64 name_with_slash_size = member->name.size + 1; + if (name_with_slash_size > COFF_Archive_MaxShortNameSize) { + // have we seen this member name before? + KeyValuePair *is_present = hash_table_search_string(name_ht, member->name); + if (is_present) { + name = is_present->value_string; + } else { + name = push_str8f(scratch.arena, "/%u", long_names_list.total_size); + str8_list_pushf(scratch.arena, &long_names_list, "%S/\n", member->name); + hash_table_push_string_string(scratch.arena, name_ht, member->name, name); + } + } else { + name = push_str8f(scratch.arena, "%S/", member->name); + } + + member_offsets[member_idx] = member_data_list.total_size; + + String8 member_data = member->data; + String8 member_header = coff_make_lib_member_header(arena, name, time_stamp, 0, 0, mode, member_data.size); + + str8_list_push(arena, &member_data_list, member_header); + str8_list_push(arena, &member_data_list, member_data); + { + U64 pad_size = AlignPadPow2(member_data_list.total_size, COFF_Archive_MemberAlign); + U8 *pad = push_array(arena, U8, pad_size); + str8_list_push(arena, &member_data_list, str8(pad, pad_size)); + } + } + } + + // long names member + if (long_names_list.total_size) { + String8 header = coff_make_lib_member_header(arena, str8_lit("//"), time_stamp, 0, 0, mode, long_names_list.total_size); + String8 data = str8_list_join(arena, &long_names_list, 0); + U64 member_offset = member_data_list.total_size + data.size + header.size; + { + U64 pad_size = AlignPadPow2(member_offset, COFF_Archive_MemberAlign); + U8 *pad = push_array(arena, U8, pad_size); + str8_list_push_front(arena, &member_data_list, str8(pad, pad_size)); + } + str8_list_push_front(arena, &member_data_list, data); + str8_list_push_front(arena, &member_data_list, header); + } + + // compute size for symbol string table + U32 name_buffer_size = 0; + for (COFF_LibWriterSymbol *ptr = &symbols[0], *opl = ptr + symbols_count; ptr < opl; ptr += 1) { + name_buffer_size += ptr->name.size; + name_buffer_size += 1; // null + } + + // write symbol name buffer + U8 *name_buffer = push_array_no_zero(scratch.arena, U8, name_buffer_size); + { + U64 name_cursor = 0; + for (COFF_LibWriterSymbol *ptr = &symbols[0], *opl = ptr + symbols_count; ptr < opl; ptr += 1) { + MemoryCopy(name_buffer + name_cursor, ptr->name.str, ptr->name.size); + name_buffer[name_cursor + ptr->name.size] = '\0'; + name_cursor += ptr->name.size + 1; + } + } + + U64 members_base_offset; + { + U64 sizeof_first_header = sizeof(COFF_ArchiveMemberHeader) + sizeof(U32) + sizeof(U32) * symbols_count + name_buffer_size; + U64 sizeof_second_header = sizeof(COFF_ArchiveMemberHeader) + sizeof(U32) + sizeof(U32) * member_count + sizeof(U32) + sizeof(U16) * symbols_count + name_buffer_size; + U64 sizeof_long_names = sizeof(COFF_ArchiveMemberHeader) + long_names_list.total_size; + + sizeof_first_header = AlignPow2(sizeof_first_header, COFF_Archive_MemberAlign); + sizeof_second_header = AlignPow2(sizeof_second_header, COFF_Archive_MemberAlign); + sizeof_long_names = AlignPow2(sizeof_long_names, COFF_Archive_MemberAlign); + + members_base_offset = sizeof(g_coff_archive_sig); + members_base_offset += sizeof_first_header; + if (emit_second_member) { + members_base_offset += sizeof_second_header; + } + if (long_names_list.total_size) { + members_base_offset += sizeof_long_names; + } + } + + // second linker member + if (emit_second_member) { + U32 member_count32 = safe_cast_u32(member_count); + U32 symbol_count32 = safe_cast_u32(symbols_count); + + U32 *member_off32_arr = push_array_no_zero(scratch.arena, U32, member_count); + U16 *member_idx16_arr = push_array_no_zero(scratch.arena, U16, symbols_count); + + // write member offset array + for (U64 member_idx = 0; member_idx < member_count; member_idx += 1) { + U64 member_offset = members_base_offset + member_offsets[member_idx]; + U32 member_off32 = safe_cast_u32(member_offset); + member_off32_arr[member_idx] = member_off32; + } + + // write member offset indices for each symbol + for (U64 symbol_idx = 0; symbol_idx < symbols_count; symbol_idx += 1) { + // member offset indices are 1-based + U64 member_idx = symbols[symbol_idx].member_idx + 1; + U16 member_idx16 = safe_cast_u16(member_idx); + member_idx16_arr[symbol_idx] = member_idx16; + } + + // layout second member data + String8List second_member_data_list = {0}; + str8_list_push(scratch.arena, &second_member_data_list, str8_struct(&member_count32)); + str8_list_push(scratch.arena, &second_member_data_list, str8_array(member_off32_arr, member_count)); + str8_list_push(scratch.arena, &second_member_data_list, str8_struct(&symbol_count32)); + str8_list_push(scratch.arena, &second_member_data_list, str8_array(member_idx16_arr, symbols_count)); + str8_list_push(scratch.arena, &second_member_data_list, str8(name_buffer, name_buffer_size)); + + String8 member_data = str8_list_join(arena, &second_member_data_list, 0); + String8 member_header = coff_make_lib_member_header(arena, str8_lit("/"), time_stamp, 0, 0, mode, member_data.size); + + U64 member_offset = member_data_list.total_size + member_data.size + member_header.size; + { + U64 pad_size = AlignPadPow2(member_offset, COFF_Archive_MemberAlign); + U8 *pad = push_array(arena, U8, pad_size); + str8_list_push_front(arena, &member_data_list, str8(pad, pad_size)); + } + str8_list_push_front(arena, &member_data_list, member_data); + str8_list_push_front(arena, &member_data_list, member_header); + } + + // first linker member (obsolete, but kept for compatability reasons) + { + U32 symbol_count_be = from_be_u32(symbols_count); + U32 *member_off32_arr = push_array_no_zero(scratch.arena, U32, symbols_count); + + for (U64 symbol_idx = 0; symbol_idx < symbols_count; symbol_idx += 1) { + COFF_LibWriterSymbol *symbol = &symbols[symbol_idx]; + + // write big endian member offset + U64 member_offset = members_base_offset + member_offsets[symbol->member_idx]; + U32 member_off32 = from_be_u32(safe_cast_u32(member_offset)); + member_off32_arr[symbol_idx] = member_off32; + } + + // layout first member data + String8List first_member_data_list = {0}; + str8_list_push(scratch.arena, &first_member_data_list, str8_struct(&symbol_count_be)); + str8_list_push(scratch.arena, &first_member_data_list, str8_array(member_off32_arr, symbols_count)); + str8_list_push(scratch.arena, &first_member_data_list, str8(name_buffer, name_buffer_size)); + + String8 member_data = str8_list_join(arena, &first_member_data_list, 0); + String8 member_header = coff_make_lib_member_header(arena, str8_lit("/"), time_stamp, 0, 0, mode, member_data.size); + + U64 member_offset = sizeof(g_coff_archive_sig) + member_header.size + member_data.size; + { + U64 pad_size = AlignPadPow2(member_offset, COFF_Archive_MemberAlign); + U8 *pad = push_array(arena, U8, pad_size); + str8_list_push_front(arena, &member_data_list, str8(pad, pad_size)); + } + str8_list_push_front(arena, &member_data_list, member_data); + str8_list_push_front(arena, &member_data_list, member_header); + } + + // archive signature + str8_list_push_front(arena, &member_data_list, str8_struct(&g_coff_archive_sig)); + + scratch_end(scratch); + return member_data_list; +} + diff --git a/src/coff/coff_lib_writer.h b/src/coff/coff_lib_writer.h new file mode 100644 index 00000000..0e590ed3 --- /dev/null +++ b/src/coff/coff_lib_writer.h @@ -0,0 +1,69 @@ +// Copyright (c) 2025 Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef COFF_LIB_WRITER_H +#define COFF_LIB_WRITER_H + +typedef struct COFF_LibWriterMember +{ + String8 name; + String8 data; +} COFF_LibWriterMember; + +typedef struct COFF_LibWriterMemberNode +{ + struct COFF_LibWriterMemberNode *next; + COFF_LibWriterMember data; +} COFF_LibWriterMemberNode; + +typedef struct COFF_LibWriterMemberList +{ + U64 count; + COFF_LibWriterMemberNode *first; + COFF_LibWriterMemberNode *last; +} COFF_LibWriterMemberList; + +typedef struct COFF_LibWriterSymbol +{ + String8 name; + U64 member_idx; +} COFF_LibWriterSymbol; + +typedef struct COFF_LibWriterSymbolNode +{ + struct COFF_LibWriterSymbolNode *next; + COFF_LibWriterSymbol data; +} COFF_LibWriterSymbolNode; + +typedef struct COFF_LibWriterSymbolList +{ + U64 count; + COFF_LibWriterSymbolNode *first; + COFF_LibWriterSymbolNode *last; +} COFF_LibWriterSymbolList; + +typedef struct COFF_LibWriter +{ + Arena *arena; + COFF_LibWriterMemberList member_list; + COFF_LibWriterSymbolList symbol_list; +} COFF_LibWriter; + +//////////////////////////////// + +internal COFF_LibWriterSymbolNode * coff_lib_writer_symbol_list_push(Arena *arena, COFF_LibWriterSymbolList *list, COFF_LibWriterSymbol symbol); +internal COFF_LibWriterMemberNode * coff_lib_writer_member_list_push(Arena *arena, COFF_LibWriterMemberList *list, COFF_LibWriterMember member); +internal COFF_LibWriterSymbol * coff_lib_writer_symbol_array_from_list(Arena *arena, COFF_LibWriterSymbolList list); +internal COFF_LibWriterMember * coff_lib_writer_member_array_from_list(Arena *arena, COFF_LibWriterMemberList list); +internal void coff_lib_writer_symbol_array_sort(COFF_LibWriterSymbol *arr, U64 count); + +internal COFF_LibWriter * coff_lib_writer_alloc(void); +internal void coff_lib_writer_release(COFF_LibWriter **writer_ptr); +internal void coff_lib_writer_push_obj(COFF_LibWriter *writer, String8 obj_path, String8 obj_data); +internal void coff_lib_writer_push_export(COFF_LibWriter *writer, String8 raw_import_header); +internal void coff_lib_writer_push_export_by_ordinal(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, U16 ordinal); +internal void coff_lib_writer_push_export_by_name(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, String8 name, U16 hint); +internal String8List coff_lib_writer_serialize(Arena *arena, COFF_LibWriter *lib_writer, COFF_TimeStamp time_stamp, U16 mode, B32 emit_second_member); + +#endif // COFF_LIB_WRITER_H + From 3a7afcd80c6ecd35bd0fed8266641ed191ca15a2 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 8 May 2025 12:42:20 -0700 Subject: [PATCH 080/372] replace linker lib writer with one from COFF --- src/linker/lnk.c | 41 +++- src/linker/lnk.h | 4 + src/linker/lnk_lib.c | 468 ------------------------------------------ src/linker/lnk_lib.h | 83 +------- src/torture/torture.c | 12 ++ 5 files changed, 57 insertions(+), 551 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 975922b1..9eeff7bb 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -39,6 +39,7 @@ #include "coff/coff_enum.h" #include "coff/coff_parse.h" #include "coff/coff_obj_writer.h" +#include "coff/coff_lib_writer.h" #include "pe/pe.h" #include "codeview/codeview.h" #include "codeview/codeview_parse.h" @@ -56,6 +57,7 @@ #include "coff/coff_enum.c" #include "coff/coff_parse.c" #include "coff/coff_obj_writer.c" +#include "coff/coff_lib_writer.c" #include "pe/pe.c" #include "codeview/codeview.c" #include "codeview/codeview_enum.c" @@ -3077,6 +3079,43 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S return image_data; } +internal String8List +lnk_build_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ExportTable *exptab) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(&arena, 1); + + dll_name = str8_skip_last_slash(dll_name); + + // These objects appear in first three members of any lib that linker produces with /dll. + // Objects are used by MSVC linker to build import table. + String8 import_entry_obj = lnk_build_import_entry_obj(scratch.arena, dll_name, time_stamp, machine); + String8 null_import_descriptor_obj = lnk_build_null_import_descriptor_obj(scratch.arena, time_stamp, machine); + String8 null_thunk_data_obj = lnk_build_null_thunk_data_obj(scratch.arena, dll_name, time_stamp, machine); + + COFF_LibWriter *lib_writer = coff_lib_writer_alloc(); + coff_lib_writer_push_obj(lib_writer, dll_name, import_entry_obj); + coff_lib_writer_push_obj(lib_writer, dll_name, null_import_descriptor_obj); + coff_lib_writer_push_obj(lib_writer, dll_name, null_thunk_data_obj); + + KeyValuePair *raw_export_arr = key_value_pairs_from_hash_table(scratch.arena, exptab->name_export_ht); + for (U64 i = 0; i < exptab->name_export_ht->count; ++i) { + LNK_Export *exp = raw_export_arr[i].value_raw; + if (exp->name.size) { + coff_lib_writer_push_export_by_name(lib_writer, machine, time_stamp, dll_name, exp->type, exp->name, safe_cast_u16(exp->id)); + } else { + coff_lib_writer_push_export_by_ordinal(lib_writer, machine, time_stamp, dll_name, exp->type, exp->ordinal); + } + } + + String8List lib = coff_lib_writer_serialize(arena, lib_writer, COFF_TimeStamp_Max, 0, /* emit second member: */ 1); + coff_lib_writer_release(&lib_writer); + + scratch_end(scratch); + ProfEnd(); + return lib; +} + //////////////////////////////// internal @@ -4304,7 +4343,7 @@ lnk_run(int argc, char **argv) case State_BuildImpLib: { ProfBegin("Build Imp Lib"); lnk_timer_begin(LNK_Timer_Lib); - String8List lib_list = lnk_build_import_lib(tp, tp_arena, config->machine, config->time_stamp, config->imp_lib_name, config->image_name, exptab); + String8List lib_list = lnk_build_import_lib(tp_arena->v[0], config->machine, config->time_stamp, config->image_name, exptab); lnk_write_data_list_to_file_path(config->imp_lib_name, str8_zero(), lib_list); lnk_timer_end(LNK_Timer_Lib); ProfEnd(); diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 3977a20c..2f2ef39f 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -192,6 +192,10 @@ internal String8List lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_temp, LN internal String8List lnk_build_win32_image_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sect_arr, U64 expected_image_header_size); internal String8 lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, LNK_ExportTable *exptab, LNK_ObjList obj_list); +// --- Import Lib -------------------------------------------------------------- + +internal String8List lnk_build_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ExportTable *exptab); + // --- Logger ------------------------------------------------------------------ internal void lnk_log_link_stats(LNK_ObjList obj_list, LNK_LibList *lib_index, LNK_SectionTable *sectab); diff --git a/src/linker/lnk_lib.c b/src/linker/lnk_lib.c index 22aad6c8..a04e6961 100644 --- a/src/linker/lnk_lib.c +++ b/src/linker/lnk_lib.c @@ -15,85 +15,6 @@ lnk_lib_list_reserve(Arena *arena, LNK_LibList *list, U64 count) return arr; } -internal LNK_LibMemberNode * -lnk_lib_member_list_push(Arena *arena, LNK_LibMemberList *list, LNK_LibMember member) -{ - LNK_LibMemberNode *n = push_array_no_zero(arena, LNK_LibMemberNode, 1); - n->next = 0; - n->data = member; - - SLLQueuePush(list->first, list->last, n); - ++list->count; - - return n; -} - -internal LNK_LibMember * -lnk_lib_member_array_from_list(Arena *arena, LNK_LibMemberList list) -{ - ProfBeginFunction(); - LNK_LibMember *arr = push_array_no_zero(arena, LNK_LibMember, list.count); - LNK_LibMember *ptr = arr; - for (LNK_LibMemberNode *i = list.first; i != 0; i = i->next, ptr += 1) { - ptr->name = push_str8_copy(arena, i->data.name); - ptr->data = push_str8_copy(arena, i->data.data); - } - ProfEnd(); - return arr; -} - -internal LNK_LibSymbolNode * -lnk_lib_symbol_list_push(Arena *arena, LNK_LibSymbolList *list, LNK_LibSymbol symbol) -{ - LNK_LibSymbolNode *n = push_array_no_zero(arena, LNK_LibSymbolNode, 1); - n->next = 0; - n->data = symbol; - - SLLQueuePush(list->first, list->last, n); - ++list->count; - - return n; -} - -internal LNK_LibSymbol * -lnk_lib_symbol_array_from_list(Arena *arena, LNK_LibSymbolList list) -{ - LNK_LibSymbol *arr = push_array_no_zero(arena, LNK_LibSymbol, list.count + 2); - LNK_LibSymbol *ptr = arr + 1; - for (LNK_LibSymbolNode *i = list.first; i != 0; i = i->next, ptr += 1) { - ptr->name = push_str8_copy(arena, i->data.name); - ptr->member_idx = i->data.member_idx; - } - MemoryZeroStruct(&arr[0]); - MemoryZeroStruct(&arr[list.count+1]); - return arr; -} - -int -lnk_lib_symbol_name_compar(const void *raw_a, const void *raw_b) -{ - const LNK_Symbol *sa = (const LNK_Symbol *)raw_a; - const LNK_Symbol *sb = (const LNK_Symbol *)raw_b; - return str8_compar_case_sensitive(&sa->name, &sb->name); -} - -int -lnk_lib_symbol_name_compar_is_before(void *raw_a, void *raw_b) -{ - int compar = lnk_lib_symbol_name_compar(raw_a, raw_b); - int is_before = compar < 0; - return is_before; -} - -internal void -lnk_lib_symbol_array_sort(LNK_LibSymbol *arr, U64 count) -{ - Assert(count >= 2); - radsort(arr + 1, count - 2, lnk_lib_symbol_name_compar_is_before); -} - -//////////////////////////////// - internal LNK_Lib lnk_lib_from_data(Arena *arena, String8 data, String8 path) { @@ -208,395 +129,6 @@ lnk_lib_list_push_parallel(TP_Context *tp, TP_Arena *arena, LNK_LibList *list, S return arr; } -//////////////////////////////// - -internal LNK_LibWriter * -lnk_lib_writer_alloc(void) -{ - Arena *arena = arena_alloc(); - LNK_LibWriter *writer = push_array(arena, LNK_LibWriter, 1); - writer->arena = arena; - return writer; -} - -internal void -lnk_lib_writer_release(LNK_LibWriter **writer_ptr) -{ - arena_release((*writer_ptr)->arena); - *writer_ptr = 0; -} - -internal void -lnk_lib_writer_push_obj(LNK_LibWriter *writer, LNK_Obj *obj) -{ - ProfBeginFunction(); - - U64 member_idx = writer->member_list.count; - - // push obj member - LNK_LibMember member = {0}; - member.name = obj->path; - member.data = obj->data; - lnk_lib_member_list_push(writer->arena, &writer->member_list, member); - - // push external symbols - { - COFF_FileHeaderInfo coff_info = coff_file_header_info_from_data(obj->data); - String8 string_table = str8_substr(obj->data, coff_info.string_table_range); - String8 symbol_table = str8_substr(obj->data, coff_info.symbol_table_range); - - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < coff_info.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - void *symbol_ptr; - if (coff_info.is_big_obj) { - symbol_ptr = &((COFF_Symbol32 *)symbol_table.str)[symbol_idx]; - symbol = coff_parse_symbol32(string_table, symbol_ptr); - } else { - symbol_ptr = &((COFF_Symbol16 *)symbol_table.str)[symbol_idx]; - symbol = coff_parse_symbol16(string_table, symbol_ptr); - } - - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular) { - if (symbol.storage_class == COFF_SymStorageClass_External) { - LNK_LibSymbol lib_symbol = {0}; - lib_symbol.name = symbol.name; - lib_symbol.member_idx = member_idx; - lnk_lib_symbol_list_push(writer->arena, &writer->symbol_list, lib_symbol); - } - } - } - } - - ProfEnd(); -} - -internal void -lnk_lib_writer_push_export(LNK_LibWriter *writer, COFF_MachineType machine, U64 time_stamp, String8 dll_name, LNK_Export *exp) -{ - ProfBeginFunction(); - - U64 member_idx = writer->member_list.count; - - // make import header - String8 import_data; - if (exp->name.size) { - U16 hint = safe_cast_u16(exp->id); - import_data = coff_make_import_header_by_name(writer->arena, dll_name, machine, time_stamp, exp->name, hint, exp->type); - } else { - U16 ordinal = safe_cast_u16(exp->id); - import_data = coff_make_import_header_by_ordinal(writer->arena, dll_name, machine, time_stamp, ordinal, exp->type); - } - - // push import member - LNK_LibMember member = {0}; - member.name = dll_name; - member.data = import_data; - lnk_lib_member_list_push(writer->arena, &writer->member_list, member); - - switch (exp->type) { - case COFF_ImportHeader_Code: { - LNK_LibSymbol def_symbol = {0}; - def_symbol.name = push_str8_copy(writer->arena, exp->name); - def_symbol.member_idx = member_idx; - lnk_lib_symbol_list_push(writer->arena, &writer->symbol_list, def_symbol); - } - case COFF_ImportHeader_Data: { - LNK_LibSymbol imp_symbol = {0}; - imp_symbol.name = push_str8f(writer->arena, "__imp_%S", exp->name); - imp_symbol.member_idx = member_idx; - lnk_lib_symbol_list_push(writer->arena, &writer->symbol_list, imp_symbol); - } break; - case COFF_ImportHeader_Const: { - NotImplemented; - } break; - default: InvalidPath; - } - - ProfEnd(); -} - -internal LNK_LibBuild -lnk_lib_build_from_writer(Arena *arena, LNK_LibWriter *writer) -{ - ProfBeginFunction(); - - LNK_LibBuild lib = {0}; - lib.symbol_count = writer->symbol_list.count + 2; - lib.member_count = writer->member_list.count; - lib.symbol_array = lnk_lib_symbol_array_from_list(arena, writer->symbol_list); - lib.member_array = lnk_lib_member_array_from_list(arena, writer->member_list); - lnk_lib_symbol_array_sort(lib.symbol_array, lib.symbol_count); - - ProfEnd(); - return lib; -} - -internal String8List -lnk_coff_archive_from_lib_build(Arena *arena, LNK_LibBuild *lib, B32 emit_second_member, COFF_TimeStamp time_stamp, U32 mode) -{ - ProfBeginFunction(); - - Temp scratch = scratch_begin(&arena, 1); - - U64 symbol_count = lib->symbol_count - 2; - LNK_LibSymbol *symbol_arr = lib->symbol_array + 1; - - HashTable *name_ht = hash_table_init(scratch.arena, 1024); - U64 *member_off_arr = push_array_no_zero(scratch.arena, U64, lib->member_count); - String8List long_names_list = {0}; - String8List member_data_list = {0}; - - for (U64 member_idx = 0; member_idx < lib->member_count; member_idx += 1) { - LNK_LibMember *member = &lib->member_array[member_idx]; - - // make member name - String8 name; - U64 name_with_slash_size = member->name.size + 1; - if (name_with_slash_size > COFF_Archive_MaxShortNameSize) { - // have we seen this member name before? - KeyValuePair *is_present = hash_table_search_string(name_ht, member->name); - if (is_present) { - name = is_present->value_string; - } else { - name = push_str8f(scratch.arena, "/%u", long_names_list.total_size); - str8_list_pushf(scratch.arena, &long_names_list, "%S/\n", member->name); - hash_table_push_string_string(scratch.arena, name_ht, member->name, name); - } - } else { - name = push_str8f(scratch.arena, "%S/", member->name); - } - - member_off_arr[member_idx] = member_data_list.total_size; - - String8 member_data = member->data; - String8 member_header = lnk_build_lib_member_header(arena, name, time_stamp, 0, 0, mode, member_data.size); - - str8_list_push(arena, &member_data_list, member_header); - str8_list_push(arena, &member_data_list, member_data); - str8_list_push_pad(arena, &member_data_list, member_data_list.total_size, COFF_Archive_MemberAlign); - } - - // long names member - if (long_names_list.total_size > 0) { - String8 header = lnk_build_lib_member_header(arena, str8_lit("//"), time_stamp, 0, 0, mode, long_names_list.total_size); - String8 data = str8_list_join(arena, &long_names_list, 0); - U64 member_offset = member_data_list.total_size + data.size + header.size; - str8_list_push_pad_front(arena, &member_data_list, member_offset, COFF_Archive_MemberAlign); - str8_list_push_front(arena, &member_data_list, data); - str8_list_push_front(arena, &member_data_list, header); - } - - // compute size for symbol string table - U32 name_buffer_size = 0; - for (LNK_LibSymbol *ptr = &symbol_arr[0], *opl = ptr + symbol_count; ptr < opl; ptr += 1) { - name_buffer_size += ptr->name.size; - name_buffer_size += 1; // null - } - - // write symbol name buffer - U8 *name_buffer = push_array_no_zero(scratch.arena, U8, name_buffer_size); - { - U64 name_cursor = 0; - for (LNK_LibSymbol *ptr = &symbol_arr[0], *opl = ptr + symbol_count; ptr < opl; ptr += 1) { - MemoryCopy(name_buffer + name_cursor, ptr->name.str, ptr->name.size); - name_buffer[name_cursor + ptr->name.size] = '\0'; - name_cursor += ptr->name.size + 1; - } - } - - U64 member_base_off; - { - U64 sizeof_first_header = sizeof(COFF_ArchiveMemberHeader) + sizeof(U32) + sizeof(U32) * symbol_count + name_buffer_size; - U64 sizeof_second_header = sizeof(COFF_ArchiveMemberHeader) + sizeof(U32) + sizeof(U32) * lib->member_count + sizeof(U32) + sizeof(U16) * symbol_count + name_buffer_size; - U64 sizeof_long_names = sizeof(COFF_ArchiveMemberHeader) + long_names_list.total_size; - - sizeof_first_header = AlignPow2(sizeof_first_header, COFF_Archive_MemberAlign); - sizeof_second_header = AlignPow2(sizeof_second_header, COFF_Archive_MemberAlign); - sizeof_long_names = AlignPow2(sizeof_long_names, COFF_Archive_MemberAlign); - - member_base_off = sizeof(g_coff_archive_sig); - member_base_off += sizeof_first_header; - if (emit_second_member) { - member_base_off += sizeof_second_header; - } - if (long_names_list.total_size > 0) { - member_base_off += sizeof_long_names; - } - } - - // second linker member - if (emit_second_member) { - U32 member_count32 = safe_cast_u32(lib->member_count); - U32 symbol_count32 = safe_cast_u32(symbol_count); - - U32 *member_off32_arr = push_array_no_zero(scratch.arena, U32, lib->member_count); - U16 *member_idx16_arr = push_array_no_zero(scratch.arena, U16, symbol_count); - - // write member offset array - for (U64 member_idx = 0; member_idx < lib->member_count; member_idx += 1) { - U64 member_off = member_base_off + member_off_arr[member_idx]; - U32 member_off32 = safe_cast_u32(member_off); - member_off32_arr[member_idx] = member_off32; - } - - // write member offset indices for each symbol - for (U64 symbol_idx = 0; symbol_idx < symbol_count; symbol_idx += 1) { - // member offset indices are 1-based - U64 member_idx = symbol_arr[symbol_idx].member_idx + 1; - U16 member_idx16 = safe_cast_u16(member_idx); - member_idx16_arr[symbol_idx] = member_idx16; - } - - // layout second member data - String8List second_member_data_list = {0}; - str8_list_push(scratch.arena, &second_member_data_list, str8_struct(&member_count32)); - str8_list_push(scratch.arena, &second_member_data_list, str8_array(member_off32_arr, lib->member_count)); - str8_list_push(scratch.arena, &second_member_data_list, str8_struct(&symbol_count32)); - str8_list_push(scratch.arena, &second_member_data_list, str8_array(member_idx16_arr, symbol_count)); - str8_list_push(scratch.arena, &second_member_data_list, str8(name_buffer, name_buffer_size)); - - String8 member_data = str8_list_join(arena, &second_member_data_list, 0); - String8 member_header = lnk_build_lib_member_header(arena, str8_lit("/"), time_stamp, 0, 0, mode, member_data.size); - - U64 member_offset = member_data_list.total_size + member_data.size + member_header.size; - str8_list_push_pad_front(arena, &member_data_list, member_offset, COFF_Archive_MemberAlign); - str8_list_push_front(arena, &member_data_list, member_data); - str8_list_push_front(arena, &member_data_list, member_header); - } - - // first linker member (obsolete, but kept for compatability reasons) - { - U32 symbol_count_be = from_be_u32(symbol_count); - U32 *member_off32_arr = push_array_no_zero(scratch.arena, U32, symbol_count); - - for (U64 symbol_idx = 0; symbol_idx < symbol_count; symbol_idx += 1) { - LNK_LibSymbol *symbol = &symbol_arr[symbol_idx]; - - // write big endian member offset - U64 member_off = member_base_off + member_off_arr[symbol->member_idx]; - U32 member_off32 = from_be_u32(safe_cast_u32(member_off)); - member_off32_arr[symbol_idx] = member_off32; - } - - // layout first member data - String8List first_member_data_list = {0}; - str8_list_push(scratch.arena, &first_member_data_list, str8_struct(&symbol_count_be)); - str8_list_push(scratch.arena, &first_member_data_list, str8_array(member_off32_arr, symbol_count)); - str8_list_push(scratch.arena, &first_member_data_list, str8(name_buffer, name_buffer_size)); - - String8 member_data = str8_list_join(arena, &first_member_data_list, 0); - String8 member_header = lnk_build_lib_member_header(arena, str8_lit("/"), time_stamp, 0, 0, mode, member_data.size); - - U64 member_offset = sizeof(g_coff_archive_sig) + member_header.size + member_data.size; - str8_list_push_pad_front(arena, &member_data_list, member_offset, COFF_Archive_MemberAlign); - str8_list_push_front(arena, &member_data_list, member_data); - str8_list_push_front(arena, &member_data_list, member_header); - } - - // archive signature - str8_list_push_front(arena, &member_data_list, str8_struct(&g_coff_archive_sig)); - - scratch_end(scratch); - ProfEnd(); - return member_data_list; -} - -//////////////////////////////// - -internal LNK_LibBuild -lnk_build_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ObjList obj_list, LNK_ExportTable *exptab) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - LNK_LibWriter *writer = lnk_lib_writer_alloc(); - for (LNK_ObjNode *obj_node = obj_list.first; obj_node != 0; obj_node = obj_node->next) { - lnk_lib_writer_push_obj(writer, &obj_node->data); - } - - KeyValuePair *raw_export_arr = key_value_pairs_from_hash_table(scratch.arena, exptab->name_export_ht); - for (U64 i = 0; i < exptab->name_export_ht->count; ++i) { - LNK_Export *exp = raw_export_arr[i].value_raw; - lnk_lib_writer_push_export(writer, machine, time_stamp, dll_name, exp); - } - LNK_LibBuild lib = lnk_lib_build_from_writer(arena, writer); - lnk_lib_writer_release(&writer); - - scratch_end(scratch); - ProfEnd(); - return lib; -} - -internal String8 -lnk_build_lib_member_header(Arena *arena, String8 name, COFF_TimeStamp time_stamp, U16 user_id, U16 group_id, U16 mode, U32 size) -{ - ProfBeginFunction(); - - Assert(name.size < 16); - Assert(user_id < 10000); - Assert(group_id < 10000); - Assert(mode < 10000); - Assert(size < 1000000000); - - //U64 sizeof_member_header = /* name */ 16 + /* time */ 12 + /* user_id */ 6 + /* group id */ 6 + /* mode */ 8 + /* size */ 10; - - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - str8_list_pushf(scratch.arena, &list, "%-16.*s", str8_varg(name)); - str8_list_pushf(scratch.arena, &list, "%-12u", time_stamp); - str8_list_pushf(scratch.arena, &list, "%-6u", user_id); - str8_list_pushf(scratch.arena, &list, "%-6u", group_id); - str8_list_pushf(scratch.arena, &list, "%-8u", mode); - str8_list_pushf(scratch.arena, &list, "%-10u", size); - str8_list_pushf(scratch.arena, &list, "`\n"); - String8 result = str8_list_join(arena, &list, 0); - - Assert(result.size == sizeof(COFF_ArchiveMemberHeader)); - scratch_end(scratch); - ProfEnd(); - return result; -} - -internal String8List -lnk_build_import_lib(TP_Context *tp, TP_Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 lib_name, String8 dll_name, LNK_ExportTable *exptab) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(arena->v, arena->count); - - dll_name = str8_skip_last_slash(dll_name); - - // These objects appear in first three members of any lib that linker produces with /dll. - // Objects are used by MSVC linker to build import table. - String8 import_obj_array[3]; - import_obj_array[0] = lnk_build_import_entry_obj(scratch.arena, dll_name, time_stamp, machine); - import_obj_array[1] = lnk_build_null_import_descriptor_obj(scratch.arena, time_stamp, machine); - import_obj_array[2] = lnk_build_null_thunk_data_obj(scratch.arena, dll_name, time_stamp, machine); - - // build input list - LNK_InputObjList input_obj_list = {0}; - for (U64 i = 0; i < ArrayCount(import_obj_array); ++i) { - LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); - input->data = import_obj_array[i]; - input->path = dll_name; - input->lib_path = lib_name; - } - - LNK_InputObj **inputs = lnk_array_from_input_obj_list(scratch.arena, input_obj_list); - LNK_ObjList obj_list = {0}; - lnk_obj_list_push_parallel(tp, arena, &obj_list, machine, input_obj_list.count, inputs); - - LNK_LibBuild import_lib = lnk_build_lib(scratch.arena, machine, time_stamp, dll_name, obj_list, exptab); - B32 emit_second_member = 1; - String8List coff_archive_data = lnk_coff_archive_from_lib_build(arena->v[0], &import_lib, emit_second_member, COFF_TimeStamp_Max, 0); - - // cleanup memory - scratch_end(scratch); - - ProfEnd(); - return coff_archive_data; -} - internal THREAD_POOL_TASK_FUNC(lnk_push_lib_symbols_task) { diff --git a/src/linker/lnk_lib.h b/src/linker/lnk_lib.h index 6b3f2cb9..c15d0687 100644 --- a/src/linker/lnk_lib.h +++ b/src/linker/lnk_lib.h @@ -36,61 +36,6 @@ typedef struct LNK_LibList //////////////////////////////// -typedef struct LNK_LibMember -{ - String8 name; - String8 data; -} LNK_LibMember; - -typedef struct LNK_LibMemberNode -{ - struct LNK_LibMemberNode *next; - LNK_LibMember data; -} LNK_LibMemberNode; - -typedef struct LNK_LibMemberList -{ - U64 count; - LNK_LibMemberNode *first; - LNK_LibMemberNode *last; -} LNK_LibMemberList; - -typedef struct LNK_LibSymbol -{ - String8 name; - U64 member_idx; -} LNK_LibSymbol; - -typedef struct LNK_LibSymbolNode -{ - struct LNK_LibSymbolNode *next; - LNK_LibSymbol data; -} LNK_LibSymbolNode; - -typedef struct LNK_LibSymbolList -{ - U64 count; - LNK_LibSymbolNode *first; - LNK_LibSymbolNode *last; -} LNK_LibSymbolList; - -typedef struct LNK_LibWriter -{ - Arena *arena; - LNK_LibMemberList member_list; - LNK_LibSymbolList symbol_list; -} LNK_LibWriter; - -typedef struct LNK_LibBuild -{ - U64 symbol_count; - U64 member_count; - LNK_LibSymbol *symbol_array; - LNK_LibMember *member_array; -} LNK_LibBuild; - -//////////////////////////////// - typedef struct { LNK_LibNode *node_arr; @@ -101,32 +46,6 @@ typedef struct //////////////////////////////// -internal LNK_LibNode * lnk_lib_list_reserve(Arena *arena, LNK_LibList *list, U64 count); -internal LNK_LibMemberNode * lnk_lib_member_list_push(Arena *arena, LNK_LibMemberList *list, LNK_LibMember member); -internal LNK_LibMember * lnk_lib_member_array_from_list(Arena *arena, LNK_LibMemberList list); -internal LNK_LibSymbolNode * lnk_lib_symbol_list_push(Arena *arena, LNK_LibSymbolList *list, LNK_LibSymbol symbol); - -internal LNK_LibSymbol * lnk_lib_symbol_array_from_list(Arena *arena, LNK_LibSymbolList list); -internal void lnk_lib_symbol_array_sort(LNK_LibSymbol *arr, U64 count); - -//////////////////////////////// - -internal LNK_Lib lnk_lib_from_data(Arena *arena, String8 data, String8 path); - +internal LNK_Lib lnk_lib_from_data(Arena *arena, String8 data, String8 path); internal LNK_LibNodeArray lnk_lib_list_push_parallel(TP_Context *tp, TP_Arena *arena, LNK_LibList *list, String8Array data_arr, String8Array path_arr); -//////////////////////////////// - -internal LNK_LibWriter * lnk_lib_writer_alloc(void); -internal void lnk_lib_writer_release(LNK_LibWriter **writer_ptr); -internal void lnk_lib_writer_push_obj(LNK_LibWriter *writer, LNK_Obj *obj); -internal void lnk_lib_writer_push_export(LNK_LibWriter *writer, COFF_MachineType machine, U64 time_stamp, String8 dll_name, LNK_Export *exp); -internal LNK_LibBuild lnk_lib_build_from_writer(Arena *arena, LNK_LibWriter *writer); -internal String8List lnk_coff_archive_from_lib_build(Arena *arena, LNK_LibBuild *lib, B32 emit_second_member, COFF_TimeStamp time_stamp, U32 mode); - -//////////////////////////////// - -internal LNK_LibBuild lnk_build_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ObjList obj_list, LNK_ExportTable *exptab); -internal String8 lnk_build_lib_member_header(Arena *arena, String8 name, COFF_TimeStamp time_stamp, U16 user_id, U16 group_id, U16 mode, U32 size); -internal String8List lnk_build_import_lib(TP_Context *tp, TP_Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 lib_name, String8 dll_name, LNK_ExportTable *exptab); - diff --git a/src/torture/torture.c b/src/torture/torture.c index 1a9a9f19..f92259d8 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -9,21 +9,33 @@ //////////////////////////////// +#include "third_party/xxHash/xxhash.c" +#include "third_party/xxHash/xxhash.h" +#include "third_party/radsort/radsort.h" + +//////////////////////////////// + #include "base/base_inc.h" #include "os/os_inc.h" +#include "path/path.h" #include "coff/coff.h" #include "coff/coff_enum.h" #include "coff/coff_parse.h" #include "coff/coff_obj_writer.h" +#include "coff/coff_lib_writer.h" #include "pe/pe.h" +#include "linker/hash_table.h" #include "base/base_inc.c" #include "os/os_inc.c" +#include "path/path.c" #include "coff/coff.c" #include "coff/coff_enum.c" #include "coff/coff_parse.c" #include "coff/coff_obj_writer.c" +#include "coff/coff_lib_writer.c" #include "pe/pe.c" +#include "linker/hash_table.c" #include "linker/lnk_cmd_line.h" #include "linker/lnk_cmd_line.c" From e7c808ee69eeadf16c91460d5e3c48a9f22c2612 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 8 May 2025 12:42:34 -0700 Subject: [PATCH 081/372] test simple lib link --- src/torture/torture.c | 100 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 99 insertions(+), 1 deletion(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index f92259d8..f9cf3a70 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -183,10 +183,22 @@ t_make_file_path(Arena *arena, String8 name) internal B32 t_write_file(String8 name, String8 data) +{ + String8Node temp_node = {0}; + temp_node.string = data; + + String8List temp_list = {0}; + str8_list_push_node(&temp_list, &temp_node); + + return t_write_file_list(name, temp_list); +} + +internal B32 +t_write_file_list(String8 name, String8List data) { Temp scratch = scratch_begin(0,0); String8 path = t_make_file_path(scratch.arena, name); - B32 is_written = os_write_data_to_file_path(path, data); + B32 is_written = os_write_data_list_to_file_path(path, data); scratch_end(scratch); return is_written; } @@ -1281,6 +1293,91 @@ exit:; return result; } +internal T_Result +t_simple_lib_test(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + String8 test_payload = str8_lit("The quick brown fox jumps over the lazy dog"); + String8 test_obj = {0}; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_Unknown); + COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8(test_payload.str, test_payload.size+1)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("test"), 0, data_sect); + test_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + String8 test_lib_name = str8_lit("test.lib"); + { + COFF_LibWriter *lib_writer = coff_lib_writer_alloc(); + coff_lib_writer_push_obj(lib_writer, str8_lit("test.obj"), test_obj); + String8List test_lib = coff_lib_writer_serialize(scratch.arena, lib_writer, 0, 0, 1); + coff_lib_writer_release(&lib_writer); + if (!t_write_file_list(test_lib_name, test_lib)) { + goto exit; + } + } + + U8 entry_text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, + 0xC3 + }; + String8 entry_obj_name = str8_lit("entry.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_X64); + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_text)); + COFF_ObjSymbol *test_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("test")); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 3, test_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 7, text_sect); + String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(entry_obj_name, entry_obj)) { + goto exit; + } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe entry.obj test.lib"); + if (linker_exit_code != 0) { + goto exit; + } + + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + COFF_SectionHeader *data_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->fsize)); + String8 data_data = str8_substr(exe, rng_1u64(data_sect->foff, data_sect->foff + data_sect->fsize)); + + // was test payload linked? + String8 data_string = str8_cstring_capped(data_data.str, data_data.str + data_data.size); + if (!str8_match(data_string, test_payload, 0)) { + goto exit; + } + + // do we have enough bytes to read text? + if (text_data.size < sizeof(entry_text)) { + goto exit; + } + + // linker must pull in test.obj and patch relocation for "test" symbol + U32 *data_addr32nb = (U32 *)(text_data.str+3); + if (*data_addr32nb != data_sect->voff) { + goto exit; + } + + result = T_Result_Pass; + +exit:; + scratch_end(scratch); + return result; +} + //////////////////////////////////////////////////////////////// internal void @@ -1309,6 +1406,7 @@ entry_point(CmdLine *cmdline) { "invalid_bss", t_invalid_bss }, { "common_block", t_common_block }, //{ "base_relocs", t_base_relocs }, + { "simple_lib_test", t_simple_lib_test }, }; // From 35e6b4a9f9452939274703ff13033cf436f7b5e7 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 8 May 2025 14:12:12 -0700 Subject: [PATCH 082/372] linker directive header fix --- src/coff/coff_obj_writer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coff/coff_obj_writer.c b/src/coff/coff_obj_writer.c index 1eb1243a..7a365eb4 100644 --- a/src/coff/coff_obj_writer.c +++ b/src/coff/coff_obj_writer.c @@ -194,7 +194,7 @@ internal void coff_obj_writer_push_directive(COFF_ObjWriter *obj_writer, String8 directive) { if (obj_writer->drectve_sect == 0) { - local_persist const U8 bom_sig[] = { 0xEF, 0xBB, 0xBF }; + local_persist const U8 bom_sig[] = { ' ', ' ', ' ' }; obj_writer->drectve_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".drectve"), COFF_SectionFlag_LnkInfo|COFF_SectionFlag_LnkRemove|COFF_SectionFlag_Align1Bytes, str8_array_fixed(bom_sig)); } String8List *data = &obj_writer->drectve_sect->data; From 9bcb227ed9b0ad95e9682a818c90577c3492c3c3 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 8 May 2025 14:12:47 -0700 Subject: [PATCH 083/372] test imports and exports --- src/torture/torture.c | 92 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 91 insertions(+), 1 deletion(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index f9cf3a70..2ad0640b 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -1365,7 +1365,7 @@ t_simple_lib_test(void) goto exit; } - // linker must pull in test.obj and patch relocation for "test" symbol + // linker must pull-in test.obj and patch relocation for "test" symbol U32 *data_addr32nb = (U32 *)(text_data.str+3); if (*data_addr32nb != data_sect->voff) { goto exit; @@ -1378,6 +1378,95 @@ exit:; return result; } +internal T_Result +t_import_export(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + + String8 export_obj_name = str8_lit("export.obj"); + String8 export_obj_payload = str8_lit("test"); + U8 export_text[] = { 0xC3 }; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *data_sect = t_push_data_section(obj_writer, export_obj_payload); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("foo"), 0, data_sect); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("ord"), 0, data_sect); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("ord2"), 0, data_sect); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("ord3"), 0, data_sect); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("ord4"), 0, data_sect); + coff_obj_writer_push_directive(obj_writer, str8_lit("/export:foo=foo")); + coff_obj_writer_push_directive(obj_writer, str8_lit("/export:bar=foo")); + coff_obj_writer_push_directive(obj_writer, str8_lit("/export:baz=baz.qwe")); + coff_obj_writer_push_directive(obj_writer, str8_lit("/export:baf=baz.#1")); + coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord,@5")); + coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord2,@6,DATA")); + coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord3,@7,NONAME")); + coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord4,@8,NONAME,DATA")); + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(export_text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("_DllMainCRTStartup"), 0, text_sect); + String8 export_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(export_obj_name, export_obj)) { + goto exit; + } + } + + String8 import_obj_name = str8_lit("import.obj"); + U8 import_payload[1024] = {0}; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(import_payload)); + COFF_ObjSymbol *foo_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_foo")); + COFF_ObjSymbol *bar_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_bar")); + COFF_ObjSymbol *baz_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_baz")); + COFF_ObjSymbol *baf_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_baf")); + COFF_ObjSymbol *ord_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_ord")); + COFF_ObjSymbol *ord2_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_ord2")); + COFF_ObjSymbol *ord3_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_ord3")); + COFF_ObjSymbol *ord4_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_ord4")); + coff_obj_writer_section_push_reloc(obj_writer, data_sect, 0*4, foo_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, data_sect, 1*4, bar_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, data_sect, 2*4, baz_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, data_sect, 3*4, baf_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, data_sect, 4*4, ord_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, data_sect, 5*4, ord2_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, data_sect, 6*4, ord3_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, data_sect, 7*4, ord4_symbol, COFF_Reloc_X64_Addr32Nb); + String8 import_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(import_obj_name, import_obj)) { + goto exit; + } + } + + String8 entry_obj_name = str8_lit("entry.obj"); + U8 entry_text[] = { 0xC3 }; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); + String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(entry_obj_name, entry_obj)) { + goto exit; + } + } + + int lib_link_exit_code = t_invoke_linkerf("/dll /out:export.dll export.obj"); + if (lib_link_exit_code != 0) { + goto exit; + } + + int import_link_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe export.lib import.obj entry.obj"); + +exit:; + scratch_end(scratch); + return result; +} + //////////////////////////////////////////////////////////////// internal void @@ -1407,6 +1496,7 @@ entry_point(CmdLine *cmdline) { "common_block", t_common_block }, //{ "base_relocs", t_base_relocs }, { "simple_lib_test", t_simple_lib_test }, + { "import_export", t_import_export }, }; // From 4161dd0440d635ee013bb2af7a33d9564fc1dc68 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 12 May 2025 15:58:05 -0700 Subject: [PATCH 084/372] check export table entries --- src/torture/torture.c | 67 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 3 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index 2ad0640b..335cd9fa 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -206,9 +206,9 @@ t_write_file_list(String8 name, String8List data) internal String8 t_read_file(Arena *arena, String8 name) { - Temp scratch = scratch_begin(0,0); + Temp scratch = scratch_begin(&arena,1); String8 path = t_make_file_path(scratch.arena, name); - String8 data = os_data_from_file_path(scratch.arena, path); + String8 data = os_data_from_file_path(arena, path); scratch_end(scratch); return data; } @@ -1460,8 +1460,69 @@ t_import_export(void) goto exit; } + { + String8 dll = t_read_file(scratch.arena, str8_lit("export.dll")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, dll); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(dll, pe.section_table_range).str; + String8 string_table = str8_substr(dll, pe.string_table_range); + + PE_ParsedExportTable export_table = pe_exports_from_data(scratch.arena, pe.section_count, section_table, dll, pe.data_dir_franges[PE_DataDirectoryIndex_EXPORT], pe.data_dir_vranges[PE_DataDirectoryIndex_EXPORT]); + + if (export_table.export_count != 8) { + goto exit; + } + + { + String8 expected_symbols[] = { + str8_lit_comp("foo"), + str8_lit_comp("bar"), + str8_lit_comp("baz"), + str8_lit_comp("baf"), + str8_lit_comp("ord"), + str8_lit_comp("ord2") + }; + U64 match_count = 0; + for (U64 i = 0; i < export_table.export_count; i += 1) { + for (U64 k = 0; k < ArrayCount(expected_symbols); k += 1) { + if (str8_match(export_table.exports[i].name, expected_symbols[k], 0)) { + match_count += 1; + } + } + } + if (match_count != ArrayCount(expected_symbols)) { + goto exit; + } + } + + { + String8 expected_forwarders[] = { + str8_lit_comp("baz.qwe"), + str8_lit_comp("baz.#1"), + }; + U64 match_count = 0; + for (U64 i = 0; i < export_table.export_count; i += 1) { + for (U64 k = 0; k < ArrayCount(expected_forwarders); k += 1) { + if (str8_match(export_table.exports[i].forwarder, expected_forwarders[k], 0)) { + match_count += 1; + } + } + } + if (match_count != ArrayCount(expected_forwarders)) { + goto exit; + } + } + } + int import_link_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe export.lib import.obj entry.obj"); - + + if (import_link_exit_code != 0) { + goto exit; + } + + // TODO: check import table + + result = T_Result_Pass; + exit:; scratch_end(scratch); return result; From f37f94a2b9da8d2b12c2681da208598414816779 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 12 May 2025 15:59:15 -0700 Subject: [PATCH 085/372] minor fixes --- src/coff/coff.c | 2 +- src/pe/pe.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coff/coff.c b/src/coff/coff.c index d925ae56..a474f698 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -371,7 +371,7 @@ coff_make_import_header_by_ordinal(Arena *arena, U8 *buffer = push_array_no_zero(arena, U8, buffer_size); // copy header - MemoryCopyStruct(buffer, &header); + MemoryCopy(buffer, &header, sizeof(header)); // no function name write zero U8 *func_name = buffer + sizeof(header); diff --git a/src/pe/pe.c b/src/pe/pe.c index 4cf32c11..417fdc1c 100644 --- a/src/pe/pe.c +++ b/src/pe/pe.c @@ -1302,7 +1302,7 @@ pe_exports_from_data(Arena *arena, U64 section_count, COFF_SectionHeader *sectio { B32 is_forwarder = dir_virt_range.min <= export_voff && export_voff < dir_virt_range.max; if (is_forwarder) { - U64 fwd_name_off = coff_foff_from_voff(sections, section_count, name_voff); + U64 fwd_name_off = coff_foff_from_voff(sections, section_count, export_voff); str8_deserial_read_cstr(raw_data, fwd_name_off, &forwarder); } } From c55c60549ed4ecb9c9053bfa4047df465f063a96 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 12 May 2025 15:59:42 -0700 Subject: [PATCH 086/372] export virtual ranges for data directories --- src/pe/pe.c | 18 ++++++++++++++++++ src/pe/pe.h | 1 + 2 files changed, 19 insertions(+) diff --git a/src/pe/pe.c b/src/pe/pe.c index 417fdc1c..50214f2c 100644 --- a/src/pe/pe.c +++ b/src/pe/pe.c @@ -495,6 +495,7 @@ pe_bin_info_from_data(Arena *arena, String8 data) U64 file_section_align = 0; Rng1U64 data_dir_range = {0}; Rng1U64 *data_dir_franges = 0; + Rng1U64 *data_dir_vranges = 0; if(valid && optional_size > 0) { // rjf: read magic number @@ -566,6 +567,22 @@ pe_bin_info_from_data(Arena *arena, String8 data) } } + // export virtual directory ranges + data_dir_vranges = push_array(arena, Rng1U64, data_dir_count); + for(U32 dir_idx = 0; dir_idx < data_dir_count; dir_idx += 1) + { + U64 dir_offset = optional_range.min + reported_data_dir_offset + sizeof(PE_DataDirectory)*dir_idx; + PE_DataDirectory dir = {0}; + if(str8_deserial_read_struct(data, dir_offset, &dir) == sizeof(dir)) + { + data_dir_vranges[dir_idx] = r1u64(dir.virt_off, dir.virt_off+dir.virt_size); + } + else + { + Assert(!"unable to read data directory"); + } + } + // export directory range data_dir_range = rng_1u64(optional_range.min + reported_data_dir_offset, optional_range.min + reported_data_dir_offset + data_dir_count * sizeof(PE_DataDirectory)); } @@ -625,6 +642,7 @@ pe_bin_info_from_data(Arena *arena, String8 data) info.string_table_range = rng_1u64(string_table_off, data.size); info.data_dir_range = data_dir_range; info.data_dir_franges = data_dir_franges; + info.data_dir_vranges = data_dir_vranges; info.data_dir_count = data_dir_count; info.tls_header = tls_header; } diff --git a/src/pe/pe.h b/src/pe/pe.h index 3cb49bb9..088b8775 100644 --- a/src/pe/pe.h +++ b/src/pe/pe.h @@ -1008,6 +1008,7 @@ struct PE_BinInfo Rng1U64 string_table_range; Rng1U64 data_dir_range; Rng1U64 *data_dir_franges; + Rng1U64 *data_dir_vranges; U32 data_dir_count; PE_TLSHeader64 tls_header; }; From 3ffd8c19ea7a998a046f77cd83f4b4438a083320 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 12 May 2025 16:00:08 -0700 Subject: [PATCH 087/372] helper for querying machine specific relocation for virtual offset relocation --- src/coff/coff.c | 12 ++++++++++++ src/coff/coff.h | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/coff/coff.c b/src/coff/coff.c index a474f698..1d68d786 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -253,6 +253,18 @@ coff_pick_reloc_value_x64(COFF_Reloc_X64 type, return result; } +internal COFF_RelocType +coff_virt_off_reloc_from_machine(COFF_MachineType machine) +{ + COFF_RelocType result = 0; + switch (machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X64: result = COFF_Reloc_X64_Addr32Nb; break; + default: { NotImplemented; } break; + } + return result; +} + internal String8 coff_make_import_lookup(Arena *arena, U16 hint, String8 name) { diff --git a/src/coff/coff.h b/src/coff/coff.h index 3d6d7646..5d1473b9 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -602,7 +602,8 @@ internal String8 coff_read_symbol_name(String8 string_table, COFF_SymbolName *na internal U64 coff_apply_size_from_reloc_x64(COFF_Reloc_X64 x); internal U64 coff_apply_size_from_reloc_x86(COFF_Reloc_X86 x); -internal COFF_RelocValue coff_pick_reloc_valuex64(COFF_Reloc_X64 type, U64 reloc_virtual_offset, U32 symbol_section_number, U32 symbol_section_offset, U32 symbol_virtual_offset, U64 symbol_address); +internal COFF_RelocValue coff_pick_reloc_value_x64(COFF_Reloc_X64 type, U64 reloc_virtual_offset, U32 symbol_section_number, U32 symbol_section_offset, U32 symbol_virtual_offset, U64 symbol_address); +internal COFF_RelocType coff_virt_off_reloc_from_machine(COFF_MachineType machine); //////////////////////////////// // Import From c5164bd49063043817068211e46b2e7bf7af1b9e Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 12 May 2025 16:00:28 -0700 Subject: [PATCH 088/372] discard null data nodes --- src/coff/coff_obj_writer.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/coff/coff_obj_writer.c b/src/coff/coff_obj_writer.c index 7a365eb4..faa0dd29 100644 --- a/src/coff/coff_obj_writer.c +++ b/src/coff/coff_obj_writer.c @@ -170,7 +170,9 @@ coff_obj_writer_push_section(COFF_ObjWriter *obj_writer, String8 name, COFF_Sect sect->name = name; sect->flags = flags; - str8_list_push(obj_writer->arena, §->data, data); + if (data.size) { + str8_list_push(obj_writer->arena, §->data, data); + } return sect; } From f25dc5cc8d76b209df3fac5d01be7b66c7d7aa77 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 12 May 2025 16:02:07 -0700 Subject: [PATCH 089/372] pack export table into obj and input back to the linker --- src/linker/lnk.c | 169 +++++++--- src/linker/lnk.h | 6 +- src/linker/lnk_config.c | 69 +--- src/linker/lnk_config.h | 20 +- src/linker/lnk_export_table.c | 591 +++++++++++++++++++-------------- src/linker/lnk_export_table.h | 62 ++-- src/linker/lnk_section_table.c | 8 +- src/linker/lnk_section_table.h | 3 +- 8 files changed, 525 insertions(+), 403 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 9eeff7bb..2fa3e468 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -869,6 +869,48 @@ lnk_push_loaded_lib(Arena *arena, HashTable *loaded_lib_ht, String8 path) } } +internal void +lnk_push_export(Arena *arena, HashTable *export_ht, LNK_ExportParseList *export_list, String8List *include_symbol_list, LNK_ExportParse export_parse) +{ + LNK_ExportParseNode *exp_n = 0; + String8 export_name = lnk_name_from_export_parse(&export_parse); + hash_table_search_string_raw(export_ht, export_name, &exp_n); + + if (exp_n == 0) { + // make sure export is defined + if (!export_parse.is_forwarder) { + str8_list_push(arena, include_symbol_list, export_parse.name); + } + + // push new export + exp_n = lnk_export_parse_list_push(arena, export_list, export_parse); + + hash_table_push_string_raw(arena, export_ht, export_name, exp_n); + } else { + B32 is_ambiguous = 1; + LNK_ExportParse *extant_export = &exp_n->data; + + if (extant_export->alias.size && export_parse.alias.size && !str8_match(extant_export->alias, export_parse.alias, 0)) { + goto report; + } + + if (extant_export->ordinal != export_parse.ordinal) { + goto report; + } + + is_ambiguous = 0; + + if (extant_export->alias.size == 0 && export_parse.alias.size != 0) { + extant_export->alias = export_parse.alias; + } + + report:; + if (is_ambiguous) { + lnk_error_with_loc(LNK_Error_IllExport, export_parse.obj_path, export_parse.lib_path, "ambiguous symbol export %S", export_parse.name); + } + } +} + internal LNK_InputObjList lnk_push_linker_symbols(Arena *arena, LNK_Config *config) { @@ -963,13 +1005,13 @@ lnk_queue_lib_member_input(Arena *arena, PathStyle path_style, LNK_SymbolLib *sy } internal int -lnk_section_contrib_is_before(void *raw_a, void *raw_b) +lnk_section_contrib_ptr_is_before(void *raw_a, void *raw_b) { // Grouped Sections (PE Format) // "All contributions with the same object-section name are allocated contiguously in the image, // and the blocks of contributions are sorted in lexical order by object-section name." - LNK_SectionContrib *a = raw_a; - LNK_SectionContrib *b = raw_b; + LNK_SectionContrib *a = *(LNK_SectionContrib **)raw_a; + LNK_SectionContrib *b = *(LNK_SectionContrib **)raw_b; int cmp; @@ -1220,7 +1262,6 @@ internal String8List lnk_build_guard_tables(TP_Context *tp, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, - LNK_ExportTable *exptab, U64 objs_count, LNK_Obj **objs, COFF_MachineType machine, @@ -2007,7 +2048,7 @@ lnk_pdata_is_before_x8664(void *raw_a, void *raw_b) } internal String8 -lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, LNK_ExportTable *exptab, LNK_ObjList obj_list) +lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, LNK_ObjList obj_list) { Temp scratch = scratch_begin(arena->v, arena->count); @@ -2182,18 +2223,18 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S COFF_SectionFlags flags = sect_header->flags & ~COFF_SectionFlags_LnkFlags; LNK_Section *sect = lnk_section_table_search(sectab, sect_name, flags); + String8Node *data_n = push_array(sect->arena, String8Node, 1); + data_n->string = sect_data; + // fill out contrib LNK_SectionContribChunk *sc_chunk = sect->contribs.first; LNK_SectionContrib *sc = lnk_section_contrib_chunk_push(sc_chunk, 1); sc->align = sc_align; + sc->data_list = data_n; sc->u.obj_idx = obj_idx; sc->u.sort_idx_size = (U16)sect_sort_idx.size; sc->u.sort_idx = sect_sort_idx.str; - String8Node *data_n = push_array(sect->arena, String8Node, 1); - data_n->string = sect_data; - SLLStackPush(sc->data_list, data_n); - sect_map[obj_idx][sect_idx] = sc; } } @@ -2242,7 +2283,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { for (LNK_SectionContribChunk *sc_chunk = sect_n->data.contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { Assert(sc_chunk->count == sc_chunk->cap); - radsort(sc_chunk->v, sc_chunk->count, lnk_section_contrib_is_before); + radsort(sc_chunk->v, sc_chunk->count, lnk_section_contrib_ptr_is_before); } } @@ -2279,7 +2320,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S LNK_Section *sect = §_n->data; for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { - sc_chunk->v[sc_idx].u.sect_idx = sect->sect_idx; + sc_chunk->v[sc_idx]->u.sect_idx = sect->sect_idx; } } } @@ -2417,11 +2458,11 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S if (obj->header.is_big_obj) { COFF_Symbol32 *symbol32 = symbol.raw_symbol; symbol32->section_number = safe_cast_u32(sc->u.sect_idx + 1); - symbol32->value = safe_cast_u32(sc->u.off); + symbol32->value = safe_cast_u32(sc->u.off + symbol32->value); } else { COFF_Symbol16 *symbol16 = symbol.raw_symbol; symbol16->section_number = safe_cast_u16(sc->u.sect_idx + 1); - symbol16->value = safe_cast_u32(sc->u.off); + symbol16->value = safe_cast_u32(sc->u.off + symbol16->value); } } } @@ -2789,7 +2830,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S U64 prev_sc_opl = 0; for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { - LNK_SectionContrib *sc = &sc_chunk->v[sc_idx]; + LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; // fill align bytes Assert(sc->u.off >= prev_sc_opl); @@ -2961,7 +3002,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S for (LNK_SectionContribChunk *sc_chunk = tls_sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { - LNK_SectionContrib *sc = &sc_chunk->v[sc_idx]; + LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; tls_align = Max(tls_align, sc->align); } } @@ -3080,7 +3121,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S } internal String8List -lnk_build_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ExportTable *exptab) +lnk_build_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ExportParseList export_list) { ProfBeginFunction(); Temp scratch = scratch_begin(&arena, 1); @@ -3094,20 +3135,24 @@ lnk_build_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time String8 null_thunk_data_obj = lnk_build_null_thunk_data_obj(scratch.arena, dll_name, time_stamp, machine); COFF_LibWriter *lib_writer = coff_lib_writer_alloc(); + + // push import table nulls coff_lib_writer_push_obj(lib_writer, dll_name, import_entry_obj); coff_lib_writer_push_obj(lib_writer, dll_name, null_import_descriptor_obj); coff_lib_writer_push_obj(lib_writer, dll_name, null_thunk_data_obj); - KeyValuePair *raw_export_arr = key_value_pairs_from_hash_table(scratch.arena, exptab->name_export_ht); - for (U64 i = 0; i < exptab->name_export_ht->count; ++i) { - LNK_Export *exp = raw_export_arr[i].value_raw; - if (exp->name.size) { - coff_lib_writer_push_export_by_name(lib_writer, machine, time_stamp, dll_name, exp->type, exp->name, safe_cast_u16(exp->id)); - } else { + // push exports + for (LNK_ExportParseNode *exp_n = export_list.first; exp_n != 0; exp_n = exp_n->next) { + LNK_ExportParse *exp = &exp_n->data; + if (exp->is_noname_present) { coff_lib_writer_push_export_by_ordinal(lib_writer, machine, time_stamp, dll_name, exp->type, exp->ordinal); + } else { + String8 name = lnk_name_from_export_parse(exp); + coff_lib_writer_push_export_by_name(lib_writer, machine, time_stamp, dll_name, exp->type, name, exp->hint); } } + // serialize lib String8List lib = coff_lib_writer_serialize(arena, lib_writer, COFF_TimeStamp_Max, 0, /* emit second member: */ 1); coff_lib_writer_release(&lib_writer); @@ -3284,7 +3329,7 @@ lnk_build_rad_chunk_map(Arena *arena, String8 image_data, U64 thread_count, LNK_ for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { Temp temp = temp_begin(scratch.arena); - LNK_SectionContrib *sc = &sc_chunk->v[sc_idx]; + LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; U64 file_off = image_section_table[sc->u.sect_idx]->foff + sc->u.off; U64 virt_off = image_section_table[sc->u.sect_idx]->voff + sc->u.off; @@ -3499,6 +3544,7 @@ lnk_run(int argc, char **argv) String8List input_manifest_path_list = str8_list_copy(scratch.arena, &config->input_list[LNK_Input_Manifest]); String8List manifest_dep_list = str8_list_copy(scratch.arena, &config->manifest_dependency_list); LNK_ExportParseList export_symbol_list = config->export_symbol_list; + HashTable *export_ht = hash_table_init(scratch.arena, max_U16/2); LNK_AltNameList alt_name_list = config->alt_name_list; LNK_InputObjList input_obj_list = {0}; LNK_InputImportList input_import_list = {0}; @@ -3520,7 +3566,6 @@ lnk_run(int argc, char **argv) LNK_SectionTable *sectab = 0; LNK_ImportTable *imptab_static = lnk_import_table_alloc(0); LNK_ImportTable *imptab_delayed = lnk_import_table_alloc(config->import_table_flags); - LNK_ExportTable *exptab = lnk_export_table_alloc(); LNK_ObjList obj_list = {0}; LNK_LibList lib_index[LNK_InputSource_Count] = {0}; Arena *ht_arena = arena_alloc(); @@ -3570,10 +3615,17 @@ lnk_run(int argc, char **argv) // lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".xdata"), str8_lit_comp(".rdata") }); lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".tls"), str8_lit_comp(".data") }); - lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".edata"), str8_lit_comp(".rdata") }); + //lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".edata"), str8_lit_comp(".rdata") }); lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".idata"), str8_lit_comp(".rdata") }); lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".didat"), str8_lit_comp(".didat") }); lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".RAD_LINKER_DEBUG_DIR"), str8_lit_comp(".rdata") }); + + // + // Push config exports + // + for (LNK_ExportParseNode *exp_n = config->export_symbol_list.first; exp_n != 0; exp_n = exp_n->next) { + lnk_push_export(scratch.arena, export_ht, &export_symbol_list, &include_symbol_list, exp_n->data); + } ProfBegin("Image"); // :EndImage lnk_timer_begin(LNK_Timer_Image); @@ -3792,14 +3844,11 @@ lnk_run(int argc, char **argv) // /EXPORT { - LNK_ExportParseList obj_exports = {0}; for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Export].first; dir != 0; dir = dir->next) { - lnk_parse_export_directive(scratch.arena, &obj_exports, dir->value_list, obj->path, obj->lib_path); + LNK_ExportParse export_parse = {0}; + lnk_parse_export_directive_ex(scratch.arena, dir->value_list, obj->path, obj->lib_path, &export_parse); + lnk_push_export(scratch.arena, export_ht, &export_symbol_list, &include_symbol_list, export_parse); } - for (LNK_ExportParse *exp = obj_exports.first; exp != 0; exp = exp->next) { - str8_list_push(scratch.arena, &include_symbol_list, exp->name); - } - lnk_export_parse_list_concat_in_place(&export_symbol_list, &obj_exports); } // /INCLUDESYMBOL @@ -4145,7 +4194,7 @@ lnk_run(int argc, char **argv) case State_ReportUnresolvedSymbols: { // report unresolved symbols for (LNK_SymbolNode *node = unresolved_undef_list.first; node != 0; node = node->next) { - lnk_error(LNK_Error_UnresolvedSymbol, "unresolved symbol %S", node->data->name); + lnk_error_obj(LNK_Error_UnresolvedSymbol, node->data->u.undef.obj, "unresolved symbol %S", node->data->name); } if (unresolved_undef_list.count) { goto exit; @@ -4179,14 +4228,52 @@ lnk_run(int argc, char **argv) if (export_symbol_list.count) { ProfBegin("Build Export Table"); - ProfBeginV("Push Exports [Count %u]", export_symbol_list.count); - for (LNK_ExportParse *exp_parse = export_symbol_list.first; exp_parse != 0; exp_parse = exp_parse->next) { - lnk_export_table_push_export(exptab, symtab, exp_parse); - } - ProfEnd(); + LNK_ExportParseList resolved_exports = {0}; + for (LNK_ExportParseNode *exp_n = export_symbol_list.first, *exp_n_next; exp_n != 0; exp_n = exp_n_next) { + exp_n_next = exp_n->next; + LNK_ExportParse *exp = &exp_n->data; - LNK_InputObjList export_objs = lnk_export_table_serialize(scratch.arena, exptab, str8_skip_last_slash(config->image_name), config->machine); - lnk_input_obj_list_concat_in_place(&input_obj_list, &export_objs); + if (!exp->is_forwarder) { + // filter out unresolved exports + LNK_Symbol *symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, exp_n->data.name); + if (symbol == 0) { + lnk_error_with_loc(LNK_Warning_IllExport, exp->obj_path, exp->lib_path, "unresolved export symbol %S\n", exp->name); + continue; + } + + // check export type + switch (exp->type) { + case COFF_ImportHeader_Code: { + COFF_ParsedSymbol defn = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + B32 is_export_data = !COFF_SymbolType_IsFunc(defn.type); + if (is_export_data) { + lnk_error_with_loc(LNK_Warning_IllExport, exp->obj_path, exp->lib_path, "export \"%S\" is DATA but has type CODE", exp->name); + } + } break; + case COFF_ImportHeader_Data: { + COFF_ParsedSymbol defn = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + B32 is_export_code = COFF_SymbolType_IsFunc(defn.type); + if (is_export_code) { + lnk_error_with_loc(LNK_Warning_IllExport, exp->obj_path, exp->lib_path, "export \"%S\" is CODE but has type DATA", exp->name); + } + } break; + case COFF_ImportHeader_Const: { + lnk_not_implemented("TODO: COFF_ImportHeader_Const"); + } break; + default: { InvalidPath; } break; + } + } + + // push resolved export + lnk_export_parse_list_push_node(&resolved_exports, exp_n); + } + + String8 edata_obj = lnk_make_edata_obj(scratch.arena, symtab, str8_skip_last_slash(config->image_name), config->machine, resolved_exports); + + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->path = str8_lit("* Exports *"); + input->dedup_id = input->path; + input->data = edata_obj; ProfEnd(); } @@ -4309,7 +4396,7 @@ lnk_run(int argc, char **argv) } break; case State_BuildImage: { // build image - image_data = lnk_build_win32_image(tp_arena, tp, config, symtab, exptab, obj_list); + image_data = lnk_build_win32_image(tp_arena, tp, config, symtab, obj_list); // write image to disk in a background thread { @@ -4343,7 +4430,7 @@ lnk_run(int argc, char **argv) case State_BuildImpLib: { ProfBegin("Build Imp Lib"); lnk_timer_begin(LNK_Timer_Lib); - String8List lib_list = lnk_build_import_lib(tp_arena->v[0], config->machine, config->time_stamp, config->image_name, exptab); + String8List lib_list = lnk_build_import_lib(tp_arena->v[0], config->machine, config->time_stamp, config->image_name, export_symbol_list); lnk_write_data_list_to_file_path(config->imp_lib_name, str8_zero(), lib_list); lnk_timer_end(LNK_Timer_Lib); ProfEnd(); diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 2f2ef39f..5bf62c45 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -187,14 +187,14 @@ internal void lnk_queue_lib_member_input(Arena *arena, PathStyle pat // --- Win32 Image ------------------------------------------------------------- -internal String8List lnk_build_guard_tables(TP_Context *tp, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, LNK_ExportTable *exptab, U64 objs_count, LNK_Obj **objs, COFF_MachineType machine, String8 entry_point_name, LNK_GuardFlags guard_flags, B32 emit_suppress_flag); +internal String8List lnk_build_guard_tables(TP_Context *tp, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs, COFF_MachineType machine, String8 entry_point_name, LNK_GuardFlags guard_flags, B32 emit_suppress_flag); internal String8List lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_temp, LNK_Config *config, U64 objs_count, LNK_Obj **objs); internal String8List lnk_build_win32_image_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sect_arr, U64 expected_image_header_size); -internal String8 lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, LNK_ExportTable *exptab, LNK_ObjList obj_list); +internal String8 lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, LNK_ObjList obj_list); // --- Import Lib -------------------------------------------------------------- -internal String8List lnk_build_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ExportTable *exptab); +internal String8List lnk_build_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ExportParseList export_list); // --- Logger ------------------------------------------------------------------ diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index a6e76e38..756b3b01 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -801,72 +801,13 @@ lnk_parse_alt_name_directive_list(Arena *arena, String8List list, LNK_AltNameLis return 0; } -internal void -lnk_export_parse_list_concat_in_place(LNK_ExportParseList *list, LNK_ExportParseList *to_concat) -{ - SLLConcatInPlace(list, to_concat); -} - -internal LNK_ExportParse * -lnk_parse_export_directive(Arena *arena, LNK_ExportParseList *list, String8List value_list, String8 obj_path, String8 lib_path) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - LNK_ExportParse *parse = 0; - - // parse directive - String8 name = str8_zero(); - String8 alias = str8_zero(); - String8 type = coff_string_from_import_header_type(COFF_ImportHeader_Code); - if (value_list.node_count > 0) { - String8List dir_split = str8_split_by_string_chars(scratch.arena, value_list.first->string, str8_lit("="), 0); - B32 is_export_valid = value_list.node_count <= 2 && value_list.node_count > 0; - if (is_export_valid) { - if (dir_split.node_count > 0) { - name = dir_split.last->string; - } - if (dir_split.node_count == 2) { - alias = dir_split.first->string; - } - if (value_list.node_count == 2) { - type = value_list.last->string; - } - } - } - - // prase error check - if (name.size == 0) { - String8 dir = str8_list_join(scratch.arena, &value_list, 0); - lnk_error_with_loc(LNK_Error_IllData, obj_path, lib_path, "invalid export directive \"%S\"", dir); - goto exit; - } - - parse = push_array_no_zero(arena, LNK_ExportParse, 1); - parse->next = 0; - parse->name = name; - parse->alias = alias; - parse->type = type; - - SLLQueuePush(list->first, list->last, parse); - ++list->count; - -exit:; - - scratch_end(scratch); - ProfEnd(); - return parse; -} - internal LNK_MergeDirectiveNode * lnk_merge_directive_list_push(Arena *arena, LNK_MergeDirectiveList *list, LNK_MergeDirective data) { LNK_MergeDirectiveNode *node = push_array_no_zero(arena, LNK_MergeDirectiveNode, 1); - node->data = data; - node->next = 0; - + node->data = data; SLLQueuePush(list->first, list->last, node); - ++list->count; - + list->count += 1; return node; } @@ -1121,8 +1062,10 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_Export: { - String8List value_strings_copy = str8_list_copy(arena, &value_strings); - lnk_parse_export_directive(arena, &config->export_symbol_list, value_strings_copy, obj_path, lib_path); + LNK_ExportParse export_parse = {0}; + if (lnk_parse_export_directive_ex(arena, value_strings, obj_path, lib_path, &export_parse)) { + lnk_export_parse_list_push(arena, &config->export_symbol_list, export_parse); + } } break; case LNK_CmdSwitch_FastFail: { diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index ad0160a3..8e883fb8 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -238,21 +238,6 @@ typedef struct LNK_AltNameList String8List to_list; } LNK_AltNameList; -typedef struct LNK_ExportParse -{ - String8 name; - String8 alias; - String8 type; - struct LNK_ExportParse *next; -} LNK_ExportParse; - -typedef struct LNK_ExportParseList -{ - U64 count; - LNK_ExportParse *first; - LNK_ExportParse *last; -} LNK_ExportParseList; - typedef struct LNK_MergeDirective { String8 src; @@ -573,10 +558,9 @@ internal void lnk_alt_name_list_concat_in_place(LNK_AltNameList *list, LNK_ internal B32 lnk_parse_alt_name_directive (Arena *arena, String8 input, LNK_AltNameList *list_out); internal String8 * lnk_parse_alt_name_directive_list(Arena *arena, String8List list, LNK_AltNameList *list_out); -internal LNK_ExportParse * lnk_parse_export_directive(Arena *arena, LNK_ExportParseList *list, String8List value_list, String8 obj_path, String8 lib_path); - internal LNK_MergeDirectiveNode * lnk_merge_directive_list_push(Arena *arena, LNK_MergeDirectiveList *list, LNK_MergeDirective data); -internal B32 lnk_parse_merge_directive(String8 string, LNK_MergeDirective *out); + +internal B32 lnk_parse_merge_directive(String8 string, LNK_MergeDirective *parse_out); //////////////////////////////// diff --git a/src/linker/lnk_export_table.c b/src/linker/lnk_export_table.c index f2081e08..62081894 100644 --- a/src/linker/lnk_export_table.c +++ b/src/linker/lnk_export_table.c @@ -1,303 +1,406 @@ // Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -int -lnk_export_name_compar(const void *a_, const void *b_) +internal String8 +lnk_name_from_export_parse(LNK_ExportParse *exp) { - const LNK_Export *a = (const LNK_Export *)a_; - const LNK_Export *b = (const LNK_Export *)b_; - return str8_compar_case_sensitive(&a->name, &b->name); + String8 name; + if (exp->is_forwarder) { + name = exp->alias; + } else if (exp->alias.size) { + name = exp->alias; + } else { + name = exp->name; + } + return name; } -int -lnk_export_ordinal_compar(const void *a_, const void *b_) -{ - const LNK_Export *a = (const LNK_Export *)a_; - const LNK_Export *b = (const LNK_Export *)b_; - int cmp = u16_compar(&a->ordinal, &b->ordinal); - return cmp; -} - -internal LNK_ExportTable * -lnk_export_table_alloc(void) +internal B32 +lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_path, String8 lib_path, LNK_ExportParse *export_out) { ProfBeginFunction(); - Arena *arena = arena_alloc(); + Temp scratch = scratch_begin(&arena, 1); + B32 is_parsed = 0; - LNK_ExportTable *exptab = push_array(arena, LNK_ExportTable, 1); - exptab->arena = arena; - exptab->voff_size = sizeof(U32); - exptab->max_ordinal = max_U16; - exptab->is_ordinal_used = push_array(arena, B8, exptab->max_ordinal); - exptab->name_export_ht = hash_table_init(arena, 0x10000); - exptab->noname_export_ht = hash_table_init(arena, 0x100); + // parse "alias=name" + String8 name = {0}; + String8 alias = {0}; + String8List flags = {0}; + { + String8List alias_name_split = str8_split_by_string_chars(scratch.arena, directive.first->string, str8_lit("="), 0); + if (alias_name_split.node_count == 2) { + alias = alias_name_split.first->string; + name = alias_name_split.last->string; + } else if (alias_name_split.node_count == 1) { + name = alias_name_split.first->string; + } else { + String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); + lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); + goto exit; + } + flags = directive; + str8_list_pop_front(&flags); + } + + // discard alias to itself + if (str8_match(name, alias, 0)) { + alias = str8_zero(); + } + + // does directive have ordinal? + U16 ordinal16 = 0; + String8 ordinal = {0}; + String8 noname_flag = {0}; + if (str8_match(str8_prefix(str8_list_first(&flags), 1), str8_lit("@"), 0)) { + // parse ordinal + ordinal = str8_skip(str8_list_pop_front(&flags)->string, 1); + if (str8_is_integer(ordinal, 10)) { + U64 ordinal64 = u64_from_str8(ordinal, 10); + if (ordinal64 <= max_U16) { + ordinal16 = (U16)ordinal64; + } else { + String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); + lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "ordinal value must fit into 16-bit integer, \"/EXPORT:%S\"", d); + goto exit; + } + } else { + String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); + lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); + goto exit; + } + + // detect NONAME flag + if (str8_match(str8_list_first(&flags), str8_lit("NONAME"), StringMatchFlag_CaseInsensitive)) { + noname_flag = str8_list_pop_front(&flags)->string; + } + } + + // detect PRIVATE flag + String8 private_flag = {0}; + if (str8_match(str8_list_first(&flags), str8_lit("PRIVATE"), StringMatchFlag_CaseInsensitive)) { + private_flag = str8_list_pop_front(&flags)->string; + } + + // parse export type + COFF_ImportType type = COFF_ImportHeader_Code; + if (flags.node_count) { + type = coff_import_header_type_from_string(str8_list_pop_front(&flags)->string); + if (type == COFF_ImportType_Invalid) { + String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); + lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); + goto exit; + } + } + + // are there leftover nodes? + if (flags.node_count != 0) { + String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); + lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); + goto exit; + } + + // fill out export + export_out->obj_path = obj_path; + export_out->lib_path = lib_path; + export_out->name = push_str8_copy(arena, name); + export_out->alias = push_str8_copy(arena, alias); + export_out->type = type; + export_out->ordinal = ordinal16; + export_out->is_ordinal_assigned = ordinal.size > 0; + export_out->is_noname_present = noname_flag.size > 0; + export_out->is_private = private_flag.size > 0; + export_out->is_forwarder = str8_find_needle(name, 0, str8_lit("."), 0) < name.size; + + is_parsed = 1; + +exit:; + scratch_end(scratch); ProfEnd(); - return exptab; + return is_parsed; +} + +internal B32 +lnk_parse_export_directive(Arena *arena, String8 directive, String8 obj_path, String8 lib_path, LNK_ExportParse *export_out) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List split_directive = str8_split_by_string_chars(scratch.arena, directive, str8_lit(","), 0); + B32 is_parsed = lnk_parse_export_directive_ex(arena, split_directive, obj_path, lib_path, export_out); + scratch_end(scratch); + return is_parsed; +} + +internal LNK_ExportParsePtrArray +lnk_array_from_export_list(Arena *arena, LNK_ExportParseList list) +{ + LNK_ExportParsePtrArray result = {0}; + result.v = push_array_no_zero(arena, LNK_ExportParse *, list.count); + for (LNK_ExportParseNode *exp = list.first; exp != 0; exp = exp->next) { + result.v[result.count++] = &exp->data; + } + return result; } internal void -lnk_export_table_release(LNK_ExportTable **exptab_ptr) +lnk_export_parse_list_push_node(LNK_ExportParseList *list, LNK_ExportParseNode *node) { - ProfBeginFunction(); - arena_release((*exptab_ptr)->arena); - *exptab_ptr = NULL; - ProfEnd(); + SLLQueuePush(list->first, list->last, node); + list->count += 1; } -internal LNK_Export * -lnk_export_table_search(LNK_ExportTable *exptab, String8 name) +internal LNK_ExportParseNode * +lnk_export_parse_list_push(Arena *arena, LNK_ExportParseList *list, LNK_ExportParse data) { - KeyValuePair *kv = hash_table_search_string(exptab->name_export_ht, name); - if (kv) { - return kv->value_raw; - } - return 0; + LNK_ExportParseNode *node = push_array(arena, LNK_ExportParseNode, 1); + node->data = data; + lnk_export_parse_list_push_node(list, node); + return node; } -internal LNK_Export * -lnk_export_table_push_export(LNK_ExportTable *exptab, LNK_SymbolTable *symtab, LNK_ExportParse *exp_parse) +internal void +lnk_export_parse_list_concat_in_place(LNK_ExportParseList *list, LNK_ExportParseList *to_concat) { - LNK_Export *exp = 0; - - // get export symbol - LNK_Symbol *symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, exp_parse->name); - if (symbol == 0) { - lnk_error(LNK_Warning_IllExport, "symbol \"%S\" for export doesn't exist", exp_parse->name); - goto exit; - } - if (symbol->type != LNK_Symbol_Defined) { - lnk_error(LNK_Warning_IllExport, "unable to resolve symbol \"%S\" for export", exp_parse->name); - goto exit; - } - - // NOTE: It is possible to export a global variable as CODE - // with following snippet: - // int global_bar = 0; - // #pragma comment(linker, "/export:global_bar") - // for some reason MSVC and LLD don't check symbol type and default - // to CODE instead of DATA. But if you try export global variable with: - // #pragma comment(linker, "/export:global_bar,CODE") - // MSVC and LLD issue an error. For compatibility sake we do the same thing too. - COFF_ImportType type = coff_import_header_type_from_string(exp_parse->type); - switch (type) { - case COFF_ImportHeader_Code: { - COFF_ParsedSymbol defn = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); - B32 is_export_data = !COFF_SymbolType_IsFunc(defn.type); - if (is_export_data) { - lnk_error(LNK_Error_IllExport, "export \"%S\" is DATA but has specifier CODE", exp_parse->name); - } - } break; - case COFF_ImportHeader_Data: { - COFF_ParsedSymbol defn = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); - B32 is_export_code = COFF_SymbolType_IsFunc(defn.type); - if (is_export_code) { - lnk_error(LNK_Error_IllExport, "export \"%S\" is CODE but has specifier DATA", exp_parse->name); - } - } break; - case COFF_ImportHeader_Const: { - lnk_not_implemented("TODO: COFF_ImportHeader_Const"); - } break; - default: { - if (exp_parse->type.size) { - lnk_error(LNK_Error_IllExport, "invalid type \"%S\" for export \"%S\"", exp_parse->type, exp_parse->name); - } - } break; - } - - // error check multiple def - exp = lnk_export_table_search(exptab, exp_parse->alias); - if (exp) { - if (exp->type != type) { - lnk_error(LNK_Warning_IllExport, "trying to rexport symbol \"%S\"", exp_parse->alias); - } - goto exit; - } - exp = lnk_export_table_search(exptab, exp_parse->name); - if (exp) { - if (exp->type != type) { - lnk_error(LNK_Warning_IllExport, "multiple export definition for \"%S\"", exp_parse->name); - } - goto exit; - } - - - // find free ordinal - U16 ordinal; - for (ordinal = 0; ordinal < exptab->max_ordinal; ++ordinal) { - if (!exptab->is_ordinal_used[ordinal]) { - exptab->is_ordinal_used[ordinal] = 1; - break; - } - } - - // ordinal alloc error check - if (ordinal >= exptab->max_ordinal) { - lnk_error(LNK_Error_OutOfExportOrdinals, "reached export limit of %u, discarding export %S", exptab->max_ordinal, exp_parse->name); - goto exit; - } - - - // fill out export - exp = push_array_no_zero(exptab->arena, LNK_Export, 1); - exp->next = 0; - exp->name = push_str8_copy(exptab->arena, exp_parse->alias.size > 0 ? exp_parse->alias : exp_parse->name); - exp->symbol = symbol; - exp->id = exptab->name_export_ht->count; - exp->ordinal = ordinal; - exp->type = type; - exp->is_private = 0; // exports through directives are public - - hash_table_push_string_raw(exptab->arena, exptab->name_export_ht, exp->name, exp); - - exit:; - return exp; + SLLConcatInPlace(list, to_concat); } -internal LNK_ExportArray -lnk_export_array_from_list(Arena *arena, LNK_ExportList list) +internal int +lnk_named_export_is_before(void *raw_a, void *raw_b) { - ProfBeginFunction(); - LNK_ExportArray arr; - arr.count = 0; - arr.v = push_array_no_zero(arena, LNK_Export, list.count); - for (LNK_Export *exp = list.first; exp != NULL; exp = exp->next) { - arr.v[arr.count++] = *exp; - } - ProfEnd(); - return arr; + LNK_ExportParse *a = *(LNK_ExportParse **)raw_a; + LNK_ExportParse *b = *(LNK_ExportParse **)raw_b; + int cmp = str8_compar_case_sensitive(&a->name, &b->name); + return cmp < 0; } -internal LNK_InputObjList -lnk_export_table_serialize(Arena *arena, LNK_ExportTable *exptab, String8 image_name, COFF_MachineType machine) +internal int +lnk_ordinal_export_is_before(void *raw_a, void *raw_b) +{ + LNK_ExportParse *a = raw_a; + LNK_ExportParse *b = raw_b; + return a->ordinal < b->ordinal; +} + +internal String8 +lnk_make_edata_obj(Arena *arena, + LNK_SymbolTable *symtab, + String8 image_name, + COFF_MachineType machine, + LNK_ExportParseList export_list) { Temp scratch = scratch_begin(&arena, 1); - // compute ordinal bounds - U64 ordinal_low; - for (ordinal_low = 0; ordinal_low < exptab->max_ordinal; ++ordinal_low) { - if (exptab->is_ordinal_used[ordinal_low]) { - break; + // compute max ordinal and used ordinal flag array + U64 ordinal_low = max_U64; + B8 *is_ordinal_used = push_array(arena, B8, max_U16); + for (LNK_ExportParseNode *exp_n = export_list.first; exp_n != 0; exp_n = exp_n->next) { + LNK_ExportParse *exp = &exp_n->data; + if (exp->is_ordinal_assigned) { + ordinal_low = Min(ordinal_low, exp->ordinal); + is_ordinal_used[exp->ordinal] = 1; } } - U64 ordinal_high; - for (ordinal_high = exptab->max_ordinal - 1; ordinal_high > 0; --ordinal_high) { - if (exptab->is_ordinal_used[ordinal_high]) { - break; + + LNK_ExportParsePtrArray named_exports = {0}; + LNK_ExportParsePtrArray noname_exports = {0}; + LNK_ExportParsePtrArray forwarder_exports = {0}; + { + // group exports based on flags + LNK_ExportParseList named_exports_list = {0}; + LNK_ExportParseList noname_exports_list = {0}; + LNK_ExportParseList forwarder_exports_list = {0}; + for (LNK_ExportParseNode *exp_n = export_list.first, *exp_n_next; exp_n != 0; exp_n = exp_n_next) { + exp_n_next = exp_n->next; + if (exp_n->data.is_forwarder) { + lnk_export_parse_list_push_node(&forwarder_exports_list, exp_n); + } else if (exp_n->data.is_noname_present) { + AssertAlways(exp_n->data.is_ordinal_assigned); + lnk_export_parse_list_push_node(&noname_exports_list, exp_n); + } else { + lnk_export_parse_list_push_node(&named_exports_list, exp_n); + } + } + + // list -> array + named_exports = lnk_array_from_export_list(scratch.arena, named_exports_list); + noname_exports = lnk_array_from_export_list(scratch.arena, noname_exports_list); + forwarder_exports = lnk_array_from_export_list(scratch.arena, forwarder_exports_list); + + // sort exports + radsort(named_exports.v, named_exports.count, lnk_named_export_is_before); + radsort(noname_exports.v, noname_exports.count, lnk_ordinal_export_is_before); + radsort(forwarder_exports.v, forwarder_exports.count, lnk_named_export_is_before); + + MemoryZeroStruct(&export_list); + lnk_export_parse_list_concat_in_place(&export_list, &named_exports_list); + lnk_export_parse_list_concat_in_place(&export_list, &forwarder_exports_list); + lnk_export_parse_list_concat_in_place(&export_list, &noname_exports_list); + } + + // assign omitted ordinals + { + U16 last_ordinal = ordinal_low; + for (U64 exp_idx = 0; exp_idx < named_exports.count; exp_idx += 1) { + LNK_ExportParse *exp = named_exports.v[exp_idx]; + if (!exp->is_ordinal_assigned) { + for (; last_ordinal < max_U16 && is_ordinal_used[last_ordinal] != 0; last_ordinal += 1); + exp->ordinal = last_ordinal; + exp->is_ordinal_assigned = 1; + is_ordinal_used[last_ordinal] = 1; + } + } + for (U64 exp_idx = 0; exp_idx < forwarder_exports.count; exp_idx += 1) { + LNK_ExportParse *exp = forwarder_exports.v[exp_idx]; + if (!exp->is_ordinal_assigned) { + for (; last_ordinal < max_U16 && is_ordinal_used[last_ordinal] != 0; last_ordinal += 1); + exp->ordinal = last_ordinal; + exp->is_ordinal_assigned = 1; + is_ordinal_used[last_ordinal] = 1; + } + } + for (U64 exp_idx = 0; exp_idx < noname_exports.count; exp_idx += 1) { + LNK_ExportParse *exp = noname_exports.v[exp_idx]; + if (!exp->is_ordinal_assigned) { + exp->ordinal = last_ordinal; + exp->is_ordinal_assigned = 1; + is_ordinal_used[last_ordinal] = 1; + } } } - + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, machine); - // fill out export table header - PE_ExportTableHeader *header = push_array(obj_writer->arena, PE_ExportTableHeader, 1); - header->ordinal_base = safe_cast_u16(ordinal_low + 1); - header->export_address_table_count = safe_cast_u32(exptab->name_export_ht->count + exptab->noname_export_ht->count); - header->name_pointer_table_count = safe_cast_u32(exptab->name_export_ht->count); - - - // make iamge name c-string - String8 image_name_cstr = push_cstr(obj_writer->arena, image_name); - // push sections - COFF_ObjSection *header_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$1"), LNK_EDATA_SECTION_FLAGS, str8_struct(header)); - COFF_ObjSection *voff_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$2"), LNK_EDATA_SECTION_FLAGS, str8_zero()); - COFF_ObjSection *name_voff_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$3"), LNK_EDATA_SECTION_FLAGS, str8_zero()); - COFF_ObjSection *ordinal_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$4"), LNK_EDATA_SECTION_FLAGS, str8_zero()); - COFF_ObjSection *string_buffer_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$5"), LNK_EDATA_SECTION_FLAGS, str8_zero()); - COFF_ObjSection *image_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$6"), LNK_EDATA_SECTION_FLAGS, image_name_cstr); + COFF_ObjSection *voff_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$2"), LNK_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_zero()); + COFF_ObjSection *name_voff_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$3"), LNK_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_zero()); + COFF_ObjSection *ordinal_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$4"), LNK_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); + COFF_ObjSection *string_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$5"), LNK_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_zero()); + COFF_ObjSection *image_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$6"), LNK_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, push_cstr(obj_writer->arena, image_name)); - // push symbols - COFF_ObjSymbol *image_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_TABLE_NAME_VOFF"), 0, image_name_sect); - COFF_ObjSymbol *address_table_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_TABLE_ADDRESS_TABLE_VOFF"), 0, voff_table_sect); - COFF_ObjSymbol *name_table_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_TABLE_NAME_POINTER_VOFF"), 0, name_voff_table_sect); - COFF_ObjSymbol *ordinal_table_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_TABLE_ORDINAL_TABLE_VOFF"), 0, ordinal_table_sect); + ProfBegin("Virtual Offset Table"); + { + B8 *is_ordinal_bound = push_array(scratch.arena, B8, max_U16); + LNK_ExportParsePtrArray *all_exports[] = { &named_exports, &forwarder_exports, &noname_exports }; - // patch export table header - switch (machine) { - case COFF_MachineType_Unknown: break; - case COFF_MachineType_X64: { - coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, name_voff), image_name_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, export_address_table_voff), address_table_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, name_pointer_table_voff), name_table_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, ordinal_table_voff), ordinal_table_symbol, COFF_Reloc_X64_Addr32Nb); - } break; - default: { NotImplemented; } break; - } - - - B8 *is_ordinal_bound = push_array(scratch.arena, B8, exptab->max_ordinal); - HashTable *exp_ht_arr[] = { exptab->name_export_ht, exptab->noname_export_ht }; - - for (U64 ht_idx = 0; ht_idx < ArrayCount(exp_ht_arr); ht_idx += 1) { - HashTable *ht = exp_ht_arr[ht_idx]; - - KeyValuePair *kv_arr = key_value_pairs_from_hash_table(scratch.arena, exptab->name_export_ht); - - // named exports must be lexically sorted - if (ht_idx == 0) { - sort_key_value_pairs_as_string_sensitive(kv_arr, exptab->name_export_ht->count); - } - - for (U64 i = 0; i < ht->count; i += 1) { - LNK_Export *exp = kv_arr[i].value_raw; - - { - U64 export_name_offset = string_buffer_sect->data.total_size; - String8 export_name_cstr = push_cstr(obj_writer->arena, exp->name); - str8_list_push(obj_writer->arena, &string_buffer_sect->data, export_name_cstr); - - String8 export_name_symbol_name = push_str8f(obj_writer->arena, "EXPORT.%S", exp->name); - COFF_ObjSymbol *export_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, export_name_symbol_name, export_name_offset, string_buffer_sect); - - U64 export_name_voff_offset = name_voff_table_sect->data.total_size; - U64 export_name_voff_size = sizeof(U32); - U8 *export_name_voff = push_array(obj_writer->arena, U8, export_name_voff_size); - str8_list_push(obj_writer->arena, &name_voff_table_sect->data, str8_array(export_name_voff, export_name_voff_size)); - - switch (machine) { - case COFF_MachineType_Unknown: break; - case COFF_MachineType_X64: { coff_obj_writer_section_push_reloc(obj_writer, name_voff_table_sect, export_name_voff_offset, export_name_symbol, COFF_Reloc_X64_Addr32Nb); } break; - default: { NotImplemented; } break; - } - } - - { - U16 *ordinal = push_array(obj_writer->arena, U16, 1); - *ordinal = exp->ordinal - ordinal_low; - str8_list_push(obj_writer->arena, &ordinal_table_sect->data, str8_struct(ordinal)); - - if ( ! is_ordinal_bound[exp->ordinal]) { + for (U64 arr_idx = 0; arr_idx < ArrayCount(all_exports); arr_idx += 1) { + for (U64 exp_idx = 0; exp_idx < all_exports[arr_idx]->count; exp_idx += 1) { + LNK_ExportParse *exp = all_exports[arr_idx]->v[exp_idx]; + if (is_ordinal_bound[exp->ordinal] == 0) { + // alloc only one slot per ordinal, so it's possible to map ordinal to a virtual offset is_ordinal_bound[exp->ordinal] = 1; + // create slot for the ordinal virtual offset U64 voff_offset = voff_table_sect->data.total_size; U32 *voff = push_array(obj_writer->arena, U32, 1); str8_list_push(obj_writer->arena, &voff_table_sect->data, str8_struct(voff)); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, exp->name); - switch (machine) { - case COFF_MachineType_Unknown: break; - case COFF_MachineType_X64: { coff_obj_writer_section_push_reloc(obj_writer, voff_table_sect, voff_offset, symbol, COFF_Reloc_X64_Addr32Nb); } break; - default: { NotImplemented; } break; + COFF_ObjSymbol *exp_symbol; + if (exp->is_forwarder) { + U64 forwarder_name_offset = string_table_sect->data.total_size; + String8 forwarder_name_cstr = push_cstr(obj_writer->arena, exp->name); + str8_list_push(obj_writer->arena, &string_table_sect->data, forwarder_name_cstr); + // symbol to the name string + exp_symbol = coff_obj_writer_push_symbol_static(obj_writer, exp->name, forwarder_name_offset, string_table_sect); + } else { + // function or global var symbol + exp_symbol = coff_obj_writer_push_symbol_undef(obj_writer, exp->name); } + + U16 ordinal_nb = exp->ordinal - ordinal_low; + coff_obj_writer_section_push_reloc(obj_writer, voff_table_sect, ordinal_nb*sizeof(U32), exp_symbol, coff_virt_off_reloc_from_machine(machine)); } } } } + ProfEnd(); + ProfBegin("Named & Forwarder Exports"); + { + LNK_ExportParsePtrArray *exports_with_names[] = { &named_exports, &forwarder_exports }; + + // assign hints + for (U64 arr_idx = 0, hint = 0; arr_idx < ArrayCount(exports_with_names); arr_idx += 1) { + for (U64 exp_idx = 0; exp_idx < exports_with_names[arr_idx]->count; exp_idx += 1, hint += 1) { + LNK_ExportParse *exp = exports_with_names[arr_idx]->v[exp_idx]; + exp->hint = hint; + } + } + + for (U64 arr_idx = 0; arr_idx < ArrayCount(exports_with_names); arr_idx += 1) { + LNK_ExportParsePtrArray *exports = exports_with_names[arr_idx]; + for (U64 exp_idx = 0; exp_idx < exports->count; exp_idx += 1) { + LNK_ExportParse *exp = exports->v[exp_idx]; + + String8 name = lnk_name_from_export_parse(exp); + + // store symbol name string + U64 export_name_offset = string_table_sect->data.total_size; + String8 export_name_cstr = push_cstr(obj_writer->arena, name); + str8_list_push(obj_writer->arena, &string_table_sect->data, export_name_cstr); + + // create symbol for the name string + String8 export_name_symbol_name = push_str8f(obj_writer->arena, "RAD_NAME:%S", name); + COFF_ObjSymbol *export_name_symbol = coff_obj_writer_push_symbol_extern(obj_writer, export_name_symbol_name, export_name_offset, string_table_sect); + + // create slot for export virtual offset + U64 export_name_voff_offset = name_voff_table_sect->data.total_size; + U8 *export_name_voff = push_array(obj_writer->arena, U8, sizeof(U32)); + str8_list_push(obj_writer->arena, &name_voff_table_sect->data, str8_array(export_name_voff, sizeof(U32))); + + // write string's virtual offset + coff_obj_writer_section_push_reloc(obj_writer, name_voff_table_sect, export_name_voff_offset, export_name_symbol, coff_virt_off_reloc_from_machine(machine)); + + // create and store export's ordinal + U16 *ordinal = push_array(obj_writer->arena, U16, 1); + *ordinal = exp->ordinal - ordinal_low; + str8_list_push(obj_writer->arena, &ordinal_table_sect->data, str8_struct(ordinal)); + } + } + } + ProfEnd(); + + ProfBegin("NONAME Exports"); + { + for (U64 exp_idx = 0; exp_idx < noname_exports.count; exp_idx += 1) { + // create and store export's ordinal + LNK_ExportParse *exp = noname_exports.v[exp_idx]; + U16 *ordinal = push_array(obj_writer->arena, U16, 1); + *ordinal = exp->ordinal - ordinal_low; + str8_list_push(obj_writer->arena, &ordinal_table_sect->data, str8_struct(ordinal)); + } + } + ProfEnd(); + + // fill out export table header + PE_ExportTableHeader *header = push_array(obj_writer->arena, PE_ExportTableHeader, 1); + header->time_stamp = COFF_TimeStamp_Max; + header->ordinal_base = safe_cast_u16(ordinal_low); + header->export_address_table_count = safe_cast_u32(voff_table_sect->data.node_count); + header->name_pointer_table_count = safe_cast_u32(name_voff_table_sect->data.node_count); + + // push header field's symbols + COFF_ObjSymbol *image_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_HEADER_NAME_VOFF"), 0, image_name_sect); + COFF_ObjSymbol *address_table_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_HEADER_ADDRESS_TABLE_VOFF"), 0, voff_table_sect); + COFF_ObjSymbol *name_table_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_HEADER_NAME_POINTER_VOFF"), 0, name_voff_table_sect); + COFF_ObjSymbol *ordinal_table_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_HEADER_ORDINAL_TABLE_VOFF"), 0, ordinal_table_sect); + + // push export table header section + COFF_ObjSection *header_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$1"), LNK_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_struct(header)); + coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_TABLE_HEADER"), 0, header_sect); + + // patch export table header + COFF_RelocType virt_off_reloc_type = coff_virt_off_reloc_from_machine(machine); + coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, name_voff), image_name_symbol, virt_off_reloc_type); + coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, export_address_table_voff), address_table_symbol, virt_off_reloc_type); + coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, name_pointer_table_voff), name_table_symbol, virt_off_reloc_type); + coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, ordinal_table_voff), ordinal_table_symbol, virt_off_reloc_type); String8 obj = coff_obj_writer_serialize(arena, obj_writer); coff_obj_writer_release(&obj_writer); - LNK_InputObjList result = {0}; - LNK_InputObj *input = lnk_input_obj_list_push(arena, &result); - input->path = str8_lit("* Exports *"); - input->dedup_id = input->path; - input->data = obj; + os_write_data_to_file_path(str8_lit("foo.obj"), obj); scratch_end(scratch); - return result; + return obj; } - diff --git a/src/linker/lnk_export_table.h b/src/linker/lnk_export_table.h index 57533918..f3c5b9ec 100644 --- a/src/linker/lnk_export_table.h +++ b/src/linker/lnk_export_table.h @@ -3,42 +3,44 @@ #pragma once -typedef struct LNK_Export +typedef struct LNK_ExportParse { - struct LNK_Export *next; - String8 name; - struct LNK_Symbol *symbol; - U32 id; - U16 ordinal; - COFF_ImportType type; - B32 is_private; -} LNK_Export; + String8 obj_path; + String8 lib_path; + String8 name; + String8 alias; + COFF_ImportType type; + U16 ordinal; + U16 hint; + B32 is_ordinal_assigned; + B32 is_noname_present; + B32 is_private; + B32 is_forwarder; +} LNK_ExportParse; -typedef struct LNK_ExportList +typedef struct LNK_ExportParseNode { - U64 count; - LNK_Export *first; - LNK_Export *last; -} LNK_ExportList; + LNK_ExportParse data; + struct LNK_ExportParseNode *next; +} LNK_ExportParseNode; -typedef struct LNK_ExportArray +typedef struct LNK_ExportParseList { - U64 count; - LNK_Export *v; -} LNK_ExportArray; + U64 count; + LNK_ExportParseNode *first; + LNK_ExportParseNode *last; +} LNK_ExportParseList; -typedef struct LNK_ExportTable +typedef struct LNK_ExportParsePtrArray { - Arena *arena; - HashTable *name_export_ht; - HashTable *noname_export_ht; - U64 voff_size; - U64 max_ordinal; - B8 *is_ordinal_used; -} LNK_ExportTable; + U64 count; + LNK_ExportParse **v; +} LNK_ExportParsePtrArray; -internal LNK_ExportTable * lnk_export_table_alloc(void); -internal void lnk_export_table_release(LNK_ExportTable **exptab_ptr); -internal LNK_Export * lnk_export_table_search(LNK_ExportTable *exptab, String8 name); -internal LNK_InputObjList lnk_export_table_serialize(Arena *arena, LNK_ExportTable *exptab, String8 image_name, COFF_MachineType machine); +//////////////////////////////// + +internal B32 lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_path, String8 lib_path, LNK_ExportParse *export_out); +internal B32 lnk_parse_export_directive(Arena *arena, String8 directive, String8 obj_path, String8 lib_path, LNK_ExportParse *parse_out); +internal LNK_ExportParsePtrArray lnk_array_from_export_list(Arena *arena, LNK_ExportParseList list); +internal LNK_ExportParseNode * lnk_export_parse_list_push(Arena *arena, LNK_ExportParseList *list, LNK_ExportParse data); diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index 529a25bf..e1f855c6 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -35,7 +35,7 @@ internal LNK_SectionContrib * lnk_section_contrib_chunk_push(LNK_SectionContribChunk *chunk, U64 count) { Assert(chunk->count + count <= chunk->cap); - LNK_SectionContrib *result = &chunk->v[chunk->count]; + LNK_SectionContrib *result = chunk->v[chunk->count]; chunk->count += count; return result; } @@ -46,7 +46,9 @@ lnk_section_contrib_chunk_list_push_chunk(Arena *arena, LNK_SectionContribChunkL LNK_SectionContribChunk *chunk = push_array(arena, LNK_SectionContribChunk, 1); chunk->count = 0; chunk->cap = cap; - chunk->v = push_array(arena, LNK_SectionContrib, cap); + chunk->v = push_array(arena, LNK_SectionContrib *, cap); + chunk->v2 = push_array(arena, LNK_SectionContrib, cap); + for (U64 i = 0; i < cap; i += 1) { chunk->v[i] = &chunk->v2[i]; } SLLQueuePush(list->first, list->last, chunk); list->chunk_count += 1; return chunk; @@ -317,7 +319,7 @@ lnk_finalize_section_layout(LNK_SectionTable *sectab, LNK_Section *sect, U64 fil U64 cursor = 0; for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { - LNK_SectionContrib *sc = &sc_chunk->v[sc_idx]; + LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; cursor = AlignPow2(cursor, sc->align); diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index 8884e5d0..d468728d 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -38,7 +38,8 @@ typedef struct LNK_SectionContribChunk struct LNK_SectionContribChunk *next; U64 count; U64 cap; - LNK_SectionContrib *v; + LNK_SectionContrib **v; + LNK_SectionContrib *v2; } LNK_SectionContribChunk; typedef struct LNK_SectionContribChunkList From bd830a60235a4d0f40a438906712e04017c16601 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 7 May 2025 15:47:45 -0700 Subject: [PATCH 090/372] test case for relocation to undefined section with base relocations --- src/linker/lnk.c | 34 +++++++----------- src/torture/torture.c | 82 +++++++++++++++++++++++++++++++++---------- 2 files changed, 75 insertions(+), 41 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 2fa3e468..518cc8b9 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -119,6 +119,7 @@ #include "lnk_io.h" #include "lnk_cmd_line.h" #include "lnk_input.h" +#include "lnk_image_section_flags.h" #include "lnk_import_table.h" #include "lnk_export_table.h" #include "lnk_config.h" @@ -1818,7 +1819,7 @@ lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config, U6 } internal String8List -lnk_build_win32_image_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sects, U64 expected_image_header_size) +lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sects, U64 expected_image_header_size) { ProfBeginFunction(); @@ -2700,21 +2701,6 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S } } - // report unresolved symbols - { - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Undefined || interp == COFF_SymbolValueInterp_Weak) { - lnk_error_obj(LNK_Error_UnresolvedSymbol, obj, "unresolved symbol %S", symbol.name); - } - } - } - } - ProfEnd(); } @@ -2789,7 +2775,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S LNK_SectionArray sects; { sects = lnk_section_array_from_list(scratch.arena, sectab->list); - String8List image_header_data = lnk_build_win32_image_header(scratch.arena, symtab, config, sects, AlignPow2(expected_image_header_size, config->file_align)); + String8List image_header_data = lnk_build_win32_header(scratch.arena, symtab, config, sects, AlignPow2(expected_image_header_size, config->file_align)); LNK_Section *image_header_sect = lnk_section_table_push(sectab, str8_lit(".rad_linker_image_header_section"), 0); LNK_SectionContribChunk *image_header_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &image_header_sect->contribs, 1); @@ -3254,7 +3240,7 @@ THREAD_POOL_TASK_FUNC(lnk_weak_symbol_finder) internal LNK_SymbolFinderResult lnk_run_symbol_finder(TP_Context *tp, TP_Arena *arena, - PathStyle path_style, + LNK_Config *config, LNK_SymbolTable *symtab, LNK_SymbolList lookup_list, TP_TaskFunc *task_func) @@ -3264,7 +3250,7 @@ lnk_run_symbol_finder(TP_Context *tp, ProfBegin("Setup Task"); LNK_SymbolFinder task = {0}; - task.path_style = path_style; + task.path_style = config->path_style; task.symtab = symtab; task.lookup_node_arr = lnk_symbol_node_array_from_list(scratch.arena, lookup_list); task.result_arr = push_array(scratch.arena, LNK_SymbolFinderResult, tp->worker_count); @@ -4018,7 +4004,7 @@ lnk_run(int argc, char **argv) ProfEnd(); } break; case State_PushDllHelperUndefSymbol: { - ProfBegin("Puhs Dll Helper Undef Symbol"); + ProfBegin("Push Dll Helper Undef Symbol"); String8 delay_helper_name = str8_zero(); switch (config->machine) { @@ -4044,8 +4030,9 @@ lnk_run(int argc, char **argv) } break; case State_LookupUndef: { ProfBegin("Lookup Undefined Symbols"); + // search archives - LNK_SymbolFinderResult result = lnk_run_symbol_finder(tp, tp_arena, config->path_style, symtab, lookup_undef_list, lnk_undef_symbol_finder); // TODO: put these on temp arena + LNK_SymbolFinderResult result = lnk_run_symbol_finder(tp, tp_arena, config, symtab, lookup_undef_list, lnk_undef_symbol_finder); // TODO: put these on temp arena // new inputs found input_obj_list = result.input_obj_list; @@ -4056,12 +4043,14 @@ lnk_run(int argc, char **argv) // reset input MemoryZeroStruct(&lookup_undef_list); + ProfEnd(); } break; case State_LookupWeak: { ProfBegin("Lookup Weak Symbols"); + // search archives - LNK_SymbolFinderResult result = lnk_run_symbol_finder(tp, tp_arena, config->path_style, symtab, lookup_weak_list, lnk_weak_symbol_finder); // TODO: put these on temp arena + LNK_SymbolFinderResult result = lnk_run_symbol_finder(tp, tp_arena, config, symtab, lookup_weak_list, lnk_weak_symbol_finder); // TODO: put these on temp arena // schedule new inputs input_obj_list = result.input_obj_list; @@ -4072,6 +4061,7 @@ lnk_run(int argc, char **argv) // reset input MemoryZeroStruct(&lookup_weak_list); + ProfEnd(); } break; case State_LookupEntryPoint: { diff --git a/src/torture/torture.c b/src/torture/torture.c index 335cd9fa..9978a78f 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -40,6 +40,7 @@ #include "linker/lnk_cmd_line.h" #include "linker/lnk_cmd_line.c" #include "linker/lnk_error.h" +#include "linker/lnk_image_section_flags.h" //////////////////////////////// @@ -295,19 +296,19 @@ typedef enum internal COFF_ObjSection * t_push_text_section(COFF_ObjWriter *obj_writer, String8 data) { - return coff_obj_writer_push_section(obj_writer, str8_lit(".text"), COFF_SectionFlag_CntCode|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemExecute|COFF_SectionFlag_Align1Bytes, data); + return coff_obj_writer_push_section(obj_writer, str8_lit(".text"), LNK_TEXT_SECTION_FLAGS, data); } internal COFF_ObjSection * t_push_data_section(COFF_ObjWriter *obj_writer, String8 data) { - return coff_obj_writer_push_section(obj_writer, str8_lit(".data"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite|COFF_SectionFlag_Align1Bytes, data); + return coff_obj_writer_push_section(obj_writer, str8_lit(".data"), LNK_DATA_SECTION_FLAGS, data); } internal COFF_ObjSection * t_push_rdata_section(COFF_ObjWriter *obj_writer, String8 data) { - return coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_Align1Bytes, data); + return coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), LNK_RDATA_SECTION_FLAGS, data); } internal T_Result @@ -837,12 +838,12 @@ t_undef_section(void) COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); U8 data[] = { 0, 0, 0, 0 }; - COFF_ObjSection *data_section = coff_obj_writer_push_section(obj_writer, str8_lit(".data"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite, str8_array_fixed(data)); + COFF_ObjSection *data_section = t_push_data_section(obj_writer, str8_array_fixed(data)); COFF_ObjSymbol *foo = coff_obj_writer_push_symbol_undef_section(obj_writer, str8_lit(".mysect"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead); coff_obj_writer_section_push_reloc(obj_writer, data_section, 0, foo, COFF_Reloc_X64_Addr32Nb); U8 text[] = { 0xC3 }; - COFF_ObjSection *text_section = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), COFF_SectionFlag_CntCode|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemExecute, str8_array_fixed(text)); + COFF_ObjSection *text_section = t_push_text_section(obj_writer, str8_array_fixed(text)); coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_section); main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); @@ -880,6 +881,48 @@ t_undef_section(void) return result; } +internal T_Result +t_undef_reloc_section(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + String8 main_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + + U8 data[] = { 0, 0, 0, 0 }; + COFF_ObjSection *data_section = t_push_data_section(obj_writer, str8_array_fixed(data)); + COFF_ObjSymbol *foo = coff_obj_writer_push_symbol_undef_section(obj_writer, str8_lit(".reloc"), LNK_RELOC_SECTION_FLAGS); + coff_obj_writer_section_push_reloc(obj_writer, data_section, 0, foo, COFF_Reloc_X64_Addr32Nb); + + U8 text[] = { 0xC3 }; + COFF_ObjSection *text_section = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), LNK_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_section); + + main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + + coff_obj_writer_release(&obj_writer); + } + + U8 payload[] = { 1, 2, 3 }; + String8 sec_defn_obj = t_make_sec_defn_obj(scratch.arena, str8_array_fixed(payload)); + + t_write_file(str8_lit("main.obj"), main_obj); + t_write_file(str8_lit("sec_defn.obj"), sec_defn_obj); + + int linker_exit_code = t_invoke_linker(str8_lit("/subsystem:console /entry:my_entry /out:a.exe main.obj sec_defn.obj")); + if (linker_exit_code == 0) { + goto exit; + } + + result = T_Result_Pass; + + exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_find_merged_pdata(void) { @@ -1043,7 +1086,7 @@ t_flag_conf(void) } } - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe data.obj conf.obj entry.obj"); + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe conf.obj entry.obj"); if (linker_exit_code != 0) { goto exit; } @@ -1542,19 +1585,20 @@ entry_point(CmdLine *cmdline) char *label; T_Result (*r)(void); } target_array[] = { - { "simple_link_test", t_simple_link_test }, - { "undef_section", t_undef_section }, - { "abs_vs_weak", t_abs_vs_weak }, - { "abs_vs_regular", t_abs_vs_regular }, - { "abs_vs_common", t_abs_vs_common }, - { "undef_weak", t_undef_weak }, - { "weak_cycle", t_weak_cycle }, - { "weak_tag", t_weak_tag }, - { "find_merged_pdata", t_find_merged_pdata }, - { "section_sort", t_section_sort }, - { "flag_conf", t_flag_conf }, - { "invalid_bss", t_invalid_bss }, - { "common_block", t_common_block }, + { "simple_link_test", t_simple_link_test }, + { "undef_section", t_undef_section }, + { "undef_reloc_section", t_undef_reloc_section }, + { "abs_vs_weak", t_abs_vs_weak }, + { "abs_vs_regular", t_abs_vs_regular }, + { "abs_vs_common", t_abs_vs_common }, + { "undef_weak", t_undef_weak }, + { "weak_cycle", t_weak_cycle }, + { "weak_tag", t_weak_tag }, + { "find_merged_pdata", t_find_merged_pdata }, + { "section_sort", t_section_sort }, + { "flag_conf", t_flag_conf }, + { "invalid_bss", t_invalid_bss }, + { "common_block", t_common_block }, //{ "base_relocs", t_base_relocs }, { "simple_lib_test", t_simple_lib_test }, { "import_export", t_import_export }, From 40fda5335ceb63cd3bdcbdb15722a07af9ef5bb9 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 7 May 2025 15:48:52 -0700 Subject: [PATCH 091/372] move default section flags to separate file to use them in torture --- src/linker/lnk_image_section_flags.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/linker/lnk_image_section_flags.h diff --git a/src/linker/lnk_image_section_flags.h b/src/linker/lnk_image_section_flags.h new file mode 100644 index 00000000..a237d7ce --- /dev/null +++ b/src/linker/lnk_image_section_flags.h @@ -0,0 +1,26 @@ +// Copyright (c) 2025 Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#pragma once + +// --- Default Section Flags -------------------------------------------------- + +#define LNK_TEXT_SECTION_FLAGS (COFF_SectionFlag_CntCode|COFF_SectionFlag_MemExecute|COFF_SectionFlag_MemRead) +#define LNK_DATA_SECTION_FLAGS (COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite) +#define LNK_RDATA_SECTION_FLAGS (COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead) +#define LNK_BSS_SECTION_FLAGS (COFF_SectionFlag_CntUninitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite) +#define LNK_IDATA_SECTION_FLAGS LNK_DATA_SECTION_FLAGS +#define LNK_DEBUG_DIR_SECTION_FLAGS LNK_DATA_SECTION_FLAGS +#define LNK_RSRC_SECTION_FLAGS LNK_DATA_SECTION_FLAGS +#define LNK_RSRC1_SECTION_FLAGS (LNK_DATA_SECTION_FLAGS | COFF_SectionFlag_Align4Bytes) +#define LNK_RSRC2_SECTION_FLAGS (LNK_DATA_SECTION_FLAGS | COFF_SectionFlag_Align4Bytes) +#define LNK_XDATA_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS +#define LNK_PDATA_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS +#define LNK_EDATA_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS +#define LNK_GFIDS_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS +#define LNK_GIATS_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS +#define LNK_GLJMP_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS +#define LNK_GEHCONT_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS +#define LNK_RELOC_SECTION_FLAGS (LNK_RDATA_SECTION_FLAGS | COFF_SectionFlag_MemDiscardable) +#define LNK_DEBUG_SECTION_FLAGS (LNK_RDATA_SECTION_FLAGS | COFF_SectionFlag_MemDiscardable) + From 8da56025b3fdbe4112734b9bb529b42504bc98b2 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 8 May 2025 15:55:12 -0700 Subject: [PATCH 092/372] patch section symbol and test for relocations to discarded memory --- src/linker/lnk.c | 73 +++++++++++++++++++++++++------- src/linker/lnk_error.h | 1 + src/linker/lnk_obj.c | 10 ++++- src/linker/lnk_section_table.c | 76 +++++++++++++++++++--------------- src/linker/lnk_section_table.h | 2 +- src/torture/torture.c | 23 +++++----- 6 files changed, 122 insertions(+), 63 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 518cc8b9..133d9eec 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1592,7 +1592,7 @@ THREAD_POOL_TASK_FUNC(lnk_emit_base_relocs_from_objs_task) COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, r->isymbol); COFF_SymbolValueInterpType symbol_interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - B32 is_symbol_address = symbol_interp == COFF_SymbolValueInterp_Regular; + B32 is_symbol_address = symbol_interp != COFF_SymbolValueInterp_Abs; if (is_symbol_address) { B32 is_addr32 = 0, is_addr64 = 0; @@ -2155,6 +2155,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S for (U64 defn_idx = 0; defn_idx < sect_defns_count; defn_idx += 1) { LNK_SectionDefinition *sect_defn = sect_defns[defn_idx]; + // warn about conflicting section flags for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { LNK_Section *sect = §_n->data; if (str8_match(sect->name, sect_defn->name, 0)) { @@ -2172,6 +2173,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S } } + // reserve chunk for contribs LNK_Section *sect = lnk_section_table_search(sectab, sect_defn->name, sect_defn->flags); if (sect == 0) { sect = lnk_section_table_push(sectab, sect_defn->name, sect_defn->flags); @@ -2185,7 +2187,6 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S ProfEnd(); } - U64 expected_image_header_size; { // gather section contribs @@ -2228,8 +2229,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S data_n->string = sect_data; // fill out contrib - LNK_SectionContribChunk *sc_chunk = sect->contribs.first; - LNK_SectionContrib *sc = lnk_section_contrib_chunk_push(sc_chunk, 1); + LNK_SectionContrib *sc = lnk_section_contrib_chunk_push(sect->contribs.first, 1); sc->align = sc_align; sc->data_list = data_n; sc->u.obj_idx = obj_idx; @@ -2552,17 +2552,19 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Undefined) { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); - if (defn) { - COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + if (symbol.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); + if (defn) { + COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - if (defn_symbol.storage_class == COFF_SymStorageClass_WeakExternal) { - continue; + if (defn_symbol.storage_class == COFF_SymStorageClass_WeakExternal) { + continue; + } + + lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_symbol); + } else { + // TODO: collect unresolved undefined } - - lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_symbol); - } else { - // TODO: collect unresolved undefined } } } @@ -2731,9 +2733,9 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S if (~config->flags & LNK_ConfigFlag_Fixed) { String8List base_relocs_data = lnk_build_base_relocs(tp, arena, config, objs_count, objs); if (base_relocs_data.total_size) { - LNK_Section *reloc = lnk_section_table_push(sectab, str8_lit(".reloc"), LNK_RELOC_SECTION_FLAGS); - LNK_SectionContribChunk *sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &reloc->contribs, 1); - LNK_SectionContrib *sc = lnk_section_contrib_chunk_push(sc_chunk, 1); + LNK_Section *reloc = lnk_section_table_push(sectab, str8_lit(".reloc"), LNK_RELOC_SECTION_FLAGS); + LNK_SectionContribChunk *first_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &reloc->contribs, 1); + LNK_SectionContrib *sc = lnk_section_contrib_chunk_push(first_sc_chunk, 1); sc->data_list = base_relocs_data.first; sc->align = 1; sc->u.sort_idx_size = 0; @@ -2790,6 +2792,45 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S sects = lnk_section_array_from_list(scratch.arena, sectab->list); } + // patch section symbols + { + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Undefined) { + if (symbol.storage_class == COFF_SymStorageClass_Section) { + LNK_Section *sect = lnk_section_table_search(sectab, symbol.name, symbol.value); + if (sect) { + if (~sect->flags & COFF_SectionFlag_MemDiscardable) { + LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = symbol.raw_symbol; + symbol32->section_number = safe_cast_u32(first_sc->u.sect_idx + 1); + symbol32->value = first_sc->u.off; + symbol32->storage_class = COFF_SymStorageClass_Static; + } else { + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + symbol16->section_number = safe_cast_u16(first_sc->u.sect_idx + 1); + symbol16->value = first_sc->u.off; + symbol16->storage_class = COFF_SymStorageClass_Static; + } + } else { + lnk_error_obj(LNK_Error_SectRefsDiscardedMemory, obj, "symbol %S (No. 0x%llx) references section with discard flag", symbol.name, symbol_idx); + } + } else { + lnk_error_obj(LNK_Error_UndefinedSymbol, obj, "undefined section symbol %S (No 0x%llx) refers to section that does not exist", symbol.name, symbol_idx); + } + } + } + } + } + } + String8 image_data = {0}; { ProfBegin("Image Fill"); diff --git a/src/linker/lnk_error.h b/src/linker/lnk_error.h index b528a8ef..b00f8491 100644 --- a/src/linker/lnk_error.h +++ b/src/linker/lnk_error.h @@ -33,6 +33,7 @@ typedef enum LNK_Error_LargeAddrAwareRequired, LNK_Error_InvalidPath, LNK_Error_MultiplyDefinedSymbol, + LNK_Error_SectRefsDiscardedMemory, LNK_Error_StopLast, LNK_Error_First, diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 370ab8b7..6a1f12da 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -347,8 +347,14 @@ THREAD_POOL_TASK_FUNC(lnk_input_coff_symbol_table) case COFF_SymbolValueInterp_Undefined: { LNK_Symbol *s = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); if (s == 0) { - LNK_Symbol *undef = lnk_make_undefined_symbol(arena, symbol.name, obj); - lnk_symbol_list_push(arena, &task->undef_lists[worker_id], undef); + if (symbol.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *undef = lnk_make_undefined_symbol(arena, symbol.name, obj); + lnk_symbol_list_push(arena, &task->undef_lists[worker_id], undef); + } else if (symbol.storage_class == COFF_SymStorageClass_Section) { + // lookup is performed during image patching step + } else { + Assert(!"unexpected storage class on undefined symbol"); + } } } break; case COFF_SymbolValueInterp_Debug: { diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index e1f855c6..ac36ca88 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -67,34 +67,6 @@ lnk_section_contrib_chunk_list_concat_in_place(LNK_SectionContribChunkList *list } } -internal void -lnk_section_list_remove(LNK_SectionList *list, LNK_SectionNode *node) -{ - if (list->count > 0) { - if (list->first == node) { - list->first = list->first->next; - list->count -= 1; - - if (list->last == node) { - list->last = 0; - } - } else { - for (LNK_SectionNode *curr = list->first, *prev = 0; curr != 0; prev = curr, curr = curr->next) { - if (curr == node) { - prev->next = curr->next; - list->count -= 1; - - if (list->last == curr) { - list->last = prev; - } - - break; - } - } - } - } -} - internal LNK_SectionArray lnk_section_array_from_list(Arena *arena, LNK_SectionList list) { @@ -108,6 +80,17 @@ lnk_section_array_from_list(Arena *arena, LNK_SectionList list) return result; } +internal LNK_SectionContrib * +lnk_get_first_section_contrib(LNK_Section *sect) +{ + if (sect->contribs.chunk_count > 0) { + if (sect->contribs.first->count > 0) { + return §->contribs.first->v[0]; + } + } + return 0; +} + internal LNK_SectionTable * lnk_section_table_alloc(void) { @@ -154,7 +137,7 @@ lnk_section_table_push(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags sect->name = push_str8_copy(sect->arena, name); sect->flags = flags; sect->has_layout = 1; - + LNK_SectionList *sect_list = §ab->list; SLLQueuePush(sect_list->first, sect_list->last, sect_node); sect_list->count += 1; @@ -172,18 +155,43 @@ lnk_section_table_remove(LNK_SectionTable *sectab, String8 name) ProfBeginFunction(); // find node - LNK_SectionNode *sect_n; - for (sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - if (str8_match(sect_n->data.name, name, 0)) { + LNK_SectionNode *node; + for (node = sectab->list.first; node != 0; node = node->next) { + if (str8_match(node->data.name, name, 0)) { break; } } // remove node - lnk_section_list_remove(§ab->list, sect_n); + { + LNK_SectionList *list = §ab->list; + if (list->count > 0) { + if (list->first == node) { + list->first = list->first->next; + list->count -= 1; + + if (list->last == node) { + list->last = 0; + } + } else { + for (LNK_SectionNode *curr = list->first, *prev = 0; curr != 0; prev = curr, curr = curr->next) { + if (curr == node) { + prev->next = curr->next; + list->count -= 1; + + if (list->last == curr) { + list->last = prev; + } + + break; + } + } + } + } + } // push to free list - SLLQueuePush(sectab->free_list.first, sectab->free_list.last, sect_n); + SLLQueuePush(sectab->free_list.first, sectab->free_list.last, node); sectab->free_list.count += 1; ProfEnd(); diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index d468728d..38e80288 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -68,6 +68,7 @@ typedef struct LNK_Section B32 is_merged; LNK_SectionContribChunkList contribs; + LNK_SectionContrib *first_contrib_chunk; U64 voff; U64 vsize; @@ -113,7 +114,6 @@ internal U16 lnk_default_align_from_machine(COFF_MachineType machine); //////////////////////////////// -internal void lnk_section_list_remove(LNK_SectionList *list, LNK_SectionNode *node); internal LNK_SectionArray lnk_section_array_from_list(Arena *arena, LNK_SectionList list); //////////////////////////////// diff --git a/src/torture/torture.c b/src/torture/torture.c index 9978a78f..4663d81d 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -891,14 +891,14 @@ t_undef_reloc_section(void) { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 data[] = { 0, 0, 0, 0 }; - COFF_ObjSection *data_section = t_push_data_section(obj_writer, str8_array_fixed(data)); - COFF_ObjSymbol *foo = coff_obj_writer_push_symbol_undef_section(obj_writer, str8_lit(".reloc"), LNK_RELOC_SECTION_FLAGS); - coff_obj_writer_section_push_reloc(obj_writer, data_section, 0, foo, COFF_Reloc_X64_Addr32Nb); - U8 text[] = { 0xC3 }; COFF_ObjSection *text_section = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), LNK_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_section); + COFF_ObjSymbol *my_entry_symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_section); + + U8 data[8] = { 0 }; + COFF_ObjSection *data_section = t_push_data_section(obj_writer, str8_array_fixed(data)); + COFF_ObjSymbol *foo = coff_obj_writer_push_symbol_undef_section(obj_writer, str8_lit(".reloc"), LNK_RELOC_SECTION_FLAGS); + coff_obj_writer_section_push_reloc(obj_writer, data_section, 0, foo, COFF_Reloc_X64_Addr64); main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); @@ -912,7 +912,11 @@ t_undef_reloc_section(void) t_write_file(str8_lit("sec_defn.obj"), sec_defn_obj); int linker_exit_code = t_invoke_linker(str8_lit("/subsystem:console /entry:my_entry /out:a.exe main.obj sec_defn.obj")); - if (linker_exit_code == 0) { + if (t_ident_linker() == T_Linker_RAD) { + if (linker_exit_code != LNK_Error_SectRefsDiscardedMemory) { + goto exit; + } + } else if (linker_exit_code == 0) { goto exit; } @@ -1428,7 +1432,6 @@ t_import_export(void) T_Result result = T_Result_Fail; - String8 export_obj_name = str8_lit("export.obj"); String8 export_obj_payload = str8_lit("test"); U8 export_text[] = { 0xC3 }; @@ -1600,8 +1603,8 @@ entry_point(CmdLine *cmdline) { "invalid_bss", t_invalid_bss }, { "common_block", t_common_block }, //{ "base_relocs", t_base_relocs }, - { "simple_lib_test", t_simple_lib_test }, - { "import_export", t_import_export }, + { "simple_lib_test", t_simple_lib_test }, + { "import_export", t_import_export }, }; // From 86fe2ddd3857afdd848ce25fe9b4f8a69d44efae Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 8 May 2025 15:58:05 -0700 Subject: [PATCH 093/372] remove arena per section --- src/linker/lnk_section_table.c | 3 +-- src/linker/lnk_section_table.h | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index ac36ca88..ccc48343 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -132,9 +132,8 @@ lnk_section_table_push(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags LNK_SectionNode *sect_node = push_array(sectab->arena, LNK_SectionNode, 1); LNK_Section *sect = §_node->data; - sect->arena = arena_alloc(); sect->id = sectab->id_max++; - sect->name = push_str8_copy(sect->arena, name); + sect->name = push_str8_copy(sectab->arena, name); sect->flags = flags; sect->has_layout = 1; diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index 38e80288..3d0c2f8f 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -60,7 +60,6 @@ typedef struct LNK_SectionDefinition typedef struct LNK_Section { - Arena *arena; U64 id; String8 name; COFF_SectionFlags flags; From 2c5fb7e7ef4ba7d915bef269bd3d3d67ea48bda5 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 8 May 2025 16:30:54 -0700 Subject: [PATCH 094/372] guard against merges with resource and base reloc sections --- src/linker/lnk_config.c | 14 ++++++++++++++ src/linker/lnk_error.h | 2 ++ src/linker/lnk_section_table.c | 17 +++++++++++++++++ src/torture/torture.c | 33 +++++++++++++++++++++++++++++++-- 4 files changed, 64 insertions(+), 2 deletions(-) diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 756b3b01..e6a1f1ce 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -1306,6 +1306,20 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } } break; + case LNK_CmdSwitch_Merge: { + if (value_strings.node_count == 1) { + LNK_MergeDirective merge = {0};; + if (lnk_parse_merge_directive(push_str8_copy(arena, value_strings.first->string), &merge)) { + lnk_merge_directive_list_push(arena, &config->merge_list, merge); + } else { + lnk_error_cmd_switch(LNK_Warning_InvalidMergeDirectiveFormat, obj_path, lib_path, cmd_switch, "invalid merge directive format expected \"/MERGE:FROM=TO\" but got \"%S\"", + value_strings.first->string); + } + } else { + lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters %d", value_strings.node_count); + } + } break; + case LNK_CmdSwitch_Natvis: { // warn about invalid natvis extension for (String8Node *node = value_strings.first; node != 0; node = node->next) { diff --git a/src/linker/lnk_error.h b/src/linker/lnk_error.h index b00f8491..d1fa096c 100644 --- a/src/linker/lnk_error.h +++ b/src/linker/lnk_error.h @@ -34,6 +34,7 @@ typedef enum LNK_Error_InvalidPath, LNK_Error_MultiplyDefinedSymbol, LNK_Error_SectRefsDiscardedMemory, + LNK_Error_IllegalSectionMerge, LNK_Error_StopLast, LNK_Error_First, @@ -54,6 +55,7 @@ typedef enum LNK_Error_Last, LNK_Warning_First, + LNK_Warning_InvalidMergeDirectiveFormat, LNK_Warning_AmbiguousMerge, LNK_Warning_AtypicalStartIndex, LNK_Warning_Cmdl, diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index ccc48343..e5726782 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -240,9 +240,26 @@ lnk_section_table_merge(LNK_SectionTable *sectab, LNK_MergeDirectiveList merge_l { ProfBeginFunction(); Temp scratch = scratch_begin(0, 0); + LNK_Section **src_dst = push_array(scratch.arena, LNK_Section *, sectab->id_max); for (LNK_MergeDirectiveNode *merge_node = merge_list.first; merge_node != 0; merge_node = merge_node->next) { LNK_MergeDirective *merge = &merge_node->data; + + // guard against illegal merges + { + local_persist String8 illegal_merge_sections[] = { + str8_lit_comp(".rsrc"), + str8_lit_comp(".reloc"), + }; + for (U64 i = 0; i < ArrayCount(illegal_merge_sections); i += 1) { + if (str8_match(merge->src, illegal_merge_sections[i], 0)) { + lnk_error(LNK_Error_IllegalSectionMerge, "illegal to merge %S with %S", illegal_merge_sections[i], merge->dst); + } + if (str8_match(merge->dst, illegal_merge_sections[i], 0)) { + lnk_error(LNK_Error_IllegalSectionMerge, "illegal to merge %S with %S", merge->src, illegal_merge_sections[i]); + } + } + } // are we trying to merge section that was already merged? LNK_Section *merge_sect = 0; diff --git a/src/torture/torture.c b/src/torture/torture.c index 4663d81d..64127fec 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -1333,7 +1333,36 @@ t_base_relocs(void) } String8 out_name = str8_lit("a.exe"); - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:%S /dynamicbase /largeaddressaware:no /out:%S %S %S", entry_name, out_name, main_obj_name, func_obj_name); + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /dynamicbase /largeaddressaware:no /out:a.exe main.obj func.obj"); + if (linker_exit_code != 0) { + goto exit; + } + + // it is illegal to merge .reloc with other sections + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /dynamicbase /largeaddressaware:no /out:a.exe /merge:.reloc=.rdata main.obj func.obj"); + if (t_ident_linker() == T_Linker_RAD) { + if (linker_exit_code != LNK_Error_IllegalSectionMerge) { + goto exit; + } + } else { + if (linker_exit_code == 0) { + goto exit; + } + } + + // the other way around is illegal too + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /dynamicbase /largeaddressaware:no /out:a.exe /merge:.rdata=.reloc main.obj func.obj"); + if (t_ident_linker() == T_Linker_RAD) { + if (linker_exit_code != LNK_Error_IllegalSectionMerge) { + goto exit; + } + } else { + if (linker_exit_code == 0) { + goto exit; + } + } + + result = T_Result_Pass; exit:; scratch_end(scratch); @@ -1602,7 +1631,7 @@ entry_point(CmdLine *cmdline) { "flag_conf", t_flag_conf }, { "invalid_bss", t_invalid_bss }, { "common_block", t_common_block }, - //{ "base_relocs", t_base_relocs }, + { "base_relocs", t_base_relocs }, { "simple_lib_test", t_simple_lib_test }, { "import_export", t_import_export }, }; From 1b21d0709f5086bc605abf3606db8d20da9c17c9 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 13 May 2025 11:08:12 -0700 Subject: [PATCH 095/372] return symbol for pushed lib member --- src/coff/coff_lib_writer.c | 18 +++++++++++------- src/coff/coff_lib_writer.h | 6 +++--- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/coff/coff_lib_writer.c b/src/coff/coff_lib_writer.c index 1aebcc69..6ad24044 100644 --- a/src/coff/coff_lib_writer.c +++ b/src/coff/coff_lib_writer.c @@ -128,9 +128,11 @@ coff_lib_writer_push_obj(COFF_LibWriter *writer, String8 obj_path, String8 obj_d } } -internal void +internal COFF_LibWriterSymbolNode * coff_lib_writer_push_export(COFF_LibWriter *writer, String8 raw_import_header) { + COFF_LibWriterSymbolNode *result = 0; + U64 member_idx = writer->member_list.count; COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(raw_import_header); @@ -145,33 +147,35 @@ coff_lib_writer_push_export(COFF_LibWriter *writer, String8 raw_import_header) COFF_LibWriterSymbol def_symbol = {0}; def_symbol.name = push_str8_copy(writer->arena, import_header.func_name); def_symbol.member_idx = member_idx; - coff_lib_writer_symbol_list_push(writer->arena, &writer->symbol_list, def_symbol); + result = coff_lib_writer_symbol_list_push(writer->arena, &writer->symbol_list, def_symbol); } break; case COFF_ImportHeader_Data: { COFF_LibWriterSymbol imp_symbol = {0}; imp_symbol.name = push_str8f(writer->arena, "__imp_%S", import_header.func_name); imp_symbol.member_idx = member_idx; - coff_lib_writer_symbol_list_push(writer->arena, &writer->symbol_list, imp_symbol); + result = coff_lib_writer_symbol_list_push(writer->arena, &writer->symbol_list, imp_symbol); } break; case COFF_ImportHeader_Const: { NotImplemented; } break; default: { InvalidPath; } break; } + + return result; } -internal void +internal COFF_LibWriterSymbolNode * coff_lib_writer_push_export_by_ordinal(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, U16 ordinal) { String8 import_header = coff_make_import_header_by_ordinal(lib_writer->arena, machine, time_stamp, dll_name, ordinal, import_type); - coff_lib_writer_push_export(lib_writer, import_header); + return coff_lib_writer_push_export(lib_writer, import_header); } -internal void +internal COFF_LibWriterSymbolNode * coff_lib_writer_push_export_by_name(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, String8 name, U16 hint) { String8 import_header = coff_make_import_header_by_name(lib_writer->arena, machine, time_stamp, dll_name, name, hint, import_type); - coff_lib_writer_push_export(lib_writer, import_header); + return coff_lib_writer_push_export(lib_writer, import_header); } internal String8List diff --git a/src/coff/coff_lib_writer.h b/src/coff/coff_lib_writer.h index 0e590ed3..0b2c166c 100644 --- a/src/coff/coff_lib_writer.h +++ b/src/coff/coff_lib_writer.h @@ -60,9 +60,9 @@ internal void coff_lib_writer_symbol_array_sort(COFF_LibWriterSymbol *arr, U64 c internal COFF_LibWriter * coff_lib_writer_alloc(void); internal void coff_lib_writer_release(COFF_LibWriter **writer_ptr); internal void coff_lib_writer_push_obj(COFF_LibWriter *writer, String8 obj_path, String8 obj_data); -internal void coff_lib_writer_push_export(COFF_LibWriter *writer, String8 raw_import_header); -internal void coff_lib_writer_push_export_by_ordinal(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, U16 ordinal); -internal void coff_lib_writer_push_export_by_name(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, String8 name, U16 hint); +internal COFF_LibWriterSymbolNode * coff_lib_writer_push_export(COFF_LibWriter *writer, String8 raw_import_header); +internal COFF_LibWriterSymbolNode * coff_lib_writer_push_export_by_ordinal(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, U16 ordinal); +internal COFF_LibWriterSymbolNode * coff_lib_writer_push_export_by_name(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, String8 name, U16 hint); internal String8List coff_lib_writer_serialize(Arena *arena, COFF_LibWriter *lib_writer, COFF_TimeStamp time_stamp, U16 mode, B32 emit_second_member); #endif // COFF_LIB_WRITER_H From 69d501024592b81f71ba733596043ba8f4e4a1c0 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 13 May 2025 11:09:39 -0700 Subject: [PATCH 096/372] WIP switching to creating import table objs --- src/coff/coff_parse.h | 4 +- src/linker/lnk.c | 145 +++--- src/linker/lnk.h | 4 - src/linker/lnk_config.c | 8 +- src/linker/lnk_config.h | 3 +- src/linker/lnk_export_table.c | 45 ++ src/linker/lnk_export_table.h | 2 +- src/linker/lnk_import_table.c | 786 ++++++++++++++------------------- src/linker/lnk_import_table.h | 60 +-- src/linker/lnk_input.c | 16 +- src/linker/lnk_input.h | 4 +- src/linker/lnk_section_table.c | 2 +- src/linker/lnk_symbol_table.h | 1 + 13 files changed, 476 insertions(+), 604 deletions(-) diff --git a/src/coff/coff_parse.h b/src/coff/coff_parse.h index b5990312..425e2ce5 100644 --- a/src/coff/coff_parse.h +++ b/src/coff/coff_parse.h @@ -195,8 +195,8 @@ typedef struct COFF_ParsedArchiveImportHeader typedef struct COFF_ArchiveMember { COFF_ParsedArchiveMemberHeader header; - U64 offset; - String8 data; + U64 offset; + String8 data; } COFF_ArchiveMember; typedef struct COFF_ArchiveFirstMember diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 133d9eec..ecf53d44 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -960,21 +960,29 @@ lnk_push_linker_symbols(Arena *arena, LNK_Config *config) } internal void -lnk_queue_lib_member_input(Arena *arena, PathStyle path_style, LNK_SymbolLib *symbol, LNK_InputImportList *input_import_list, LNK_InputObjList *input_obj_list) +lnk_queue_lib_member_input(Arena *arena, + PathStyle path_style, + LNK_SymbolLib *symbol, + LNK_InputImportList *input_import_list, + LNK_InputObjList *input_obj_list) { + LNK_Lib *lib = symbol->lib; + U64 input_idx = Compose64Bit(lib->input_idx, symbol->member_offset); + // parse member - COFF_ArchiveMember member_info = coff_archive_member_from_offset(symbol->lib->data, symbol->member_offset); + COFF_ArchiveMember member_info = coff_archive_member_from_offset(lib->data, symbol->member_offset); COFF_DataType member_type = coff_data_type_from_data(member_info.data); switch (member_type) { case COFF_DataType_Null: break; case COFF_DataType_Import: { LNK_InputImport *input = lnk_input_import_list_push(arena, input_import_list); - input->import_header = coff_archive_import_from_data(member_info.data); + input->coff_import = member_info.data; + input->input_idx = input_idx; } break; case COFF_DataType_BigObj: case COFF_DataType_Obj: { - String8 obj_path = coff_parse_long_name(symbol->lib->long_names, member_info.header.name); + String8 obj_path = coff_parse_long_name(lib->long_names, member_info.header.name); // obj path in thin archive has slash appended which screws up // file lookup on disk; it couble be there to enable paths to symbols @@ -985,11 +993,11 @@ lnk_queue_lib_member_input(Arena *arena, PathStyle path_style, LNK_SymbolLib *sy } // obj path in thin archive is relative to directory with archive - B32 is_thin = symbol->lib->type == COFF_Archive_Thin; + B32 is_thin = lib->type == COFF_Archive_Thin; if (is_thin) { Temp scratch = scratch_begin(&arena, 1); String8List obj_path_list = {0}; - str8_list_push(scratch.arena, &obj_path_list, str8_chop_last_slash(symbol->lib->path)); + str8_list_push(scratch.arena, &obj_path_list, str8_chop_last_slash(lib->path)); str8_list_push(scratch.arena, &obj_path_list, obj_path); obj_path = str8_path_list_join_by_style(arena, &obj_path_list, path_style); scratch_end(scratch); @@ -997,10 +1005,11 @@ lnk_queue_lib_member_input(Arena *arena, PathStyle path_style, LNK_SymbolLib *sy LNK_InputObj *input = lnk_input_obj_list_push(arena, input_obj_list); input->is_thin = is_thin; - input->dedup_id = push_str8f(arena, "%S/%S", symbol->lib->path, obj_path); + input->dedup_id = push_str8f(arena, "%S/%S", lib->path, obj_path); input->path = obj_path; input->data = member_info.data; - input->lib_path = symbol->lib->path; + input->lib_path = lib->path; + input->input_idx = input_idx; } break; } } @@ -2225,7 +2234,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S COFF_SectionFlags flags = sect_header->flags & ~COFF_SectionFlags_LnkFlags; LNK_Section *sect = lnk_section_table_search(sectab, sect_name, flags); - String8Node *data_n = push_array(sect->arena, String8Node, 1); + String8Node *data_n = push_array(sectab->arena, String8Node, 1); data_n->string = sect_data; // fill out contrib @@ -3147,47 +3156,6 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S return image_data; } -internal String8List -lnk_build_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ExportParseList export_list) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - dll_name = str8_skip_last_slash(dll_name); - - // These objects appear in first three members of any lib that linker produces with /dll. - // Objects are used by MSVC linker to build import table. - String8 import_entry_obj = lnk_build_import_entry_obj(scratch.arena, dll_name, time_stamp, machine); - String8 null_import_descriptor_obj = lnk_build_null_import_descriptor_obj(scratch.arena, time_stamp, machine); - String8 null_thunk_data_obj = lnk_build_null_thunk_data_obj(scratch.arena, dll_name, time_stamp, machine); - - COFF_LibWriter *lib_writer = coff_lib_writer_alloc(); - - // push import table nulls - coff_lib_writer_push_obj(lib_writer, dll_name, import_entry_obj); - coff_lib_writer_push_obj(lib_writer, dll_name, null_import_descriptor_obj); - coff_lib_writer_push_obj(lib_writer, dll_name, null_thunk_data_obj); - - // push exports - for (LNK_ExportParseNode *exp_n = export_list.first; exp_n != 0; exp_n = exp_n->next) { - LNK_ExportParse *exp = &exp_n->data; - if (exp->is_noname_present) { - coff_lib_writer_push_export_by_ordinal(lib_writer, machine, time_stamp, dll_name, exp->type, exp->ordinal); - } else { - String8 name = lnk_name_from_export_parse(exp); - coff_lib_writer_push_export_by_name(lib_writer, machine, time_stamp, dll_name, exp->type, name, exp->hint); - } - } - - // serialize lib - String8List lib = coff_lib_writer_serialize(arena, lib_writer, COFF_TimeStamp_Max, 0, /* emit second member: */ 1); - coff_lib_writer_release(&lib_writer); - - scratch_end(scratch); - ProfEnd(); - return lib; -} - //////////////////////////////// internal @@ -3591,8 +3559,8 @@ lnk_run(int argc, char **argv) // state LNK_SymbolTable *symtab = lnk_symbol_table_init(tp_arena); LNK_SectionTable *sectab = 0; - LNK_ImportTable *imptab_static = lnk_import_table_alloc(0); - LNK_ImportTable *imptab_delayed = lnk_import_table_alloc(config->import_table_flags); + LNK_ImportTable *imptab_static = lnk_import_table_alloc(); + LNK_ImportTable *imptab_delayed = lnk_import_table_alloc(); LNK_ObjList obj_list = {0}; LNK_LibList lib_index[LNK_InputSource_Count] = {0}; Arena *ht_arena = arena_alloc(); @@ -3681,50 +3649,26 @@ lnk_run(int argc, char **argv) case State_InputImports: { ProfBegin("Input Imports"); for (LNK_InputImport *input = input_import_list.first; input != 0; input = input->next) { - COFF_ParsedArchiveImportHeader *import_header = &input->import_header; + COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(input->coff_import); - if (import_header->machine != config->machine) { + if (import_header.machine != config->machine) { lnk_error(LNK_Error_IncompatibleMachine, "symbol pulls in an import with incompatible machine %S (expected %S)", - coff_string_from_machine_type(input->import_header.machine), + coff_string_from_machine_type(import_header.machine), coff_string_from_machine_type(config->machine)); } - KeyValuePair *is_delayed = hash_table_search_path(delay_load_dll_ht, import_header->dll_name); + LNK_Symbol *thunk_symbol = push_array(symtab->arena->v[0], LNK_Symbol, 1); + thunk_symbol->type = LNK_Symbol_Import; + thunk_symbol->name = import_header.func_name; + thunk_symbol->u.coff_import = input->coff_import; - LNK_ImportDLL *dll; - LNK_ImportFunc *func; - if (is_delayed) { - dll = lnk_import_table_search_dll(imptab_delayed, import_header->dll_name); - if (!dll) { - dll = lnk_import_table_push_dll_delayed(imptab_delayed, import_header->dll_name, import_header->machine); - } - func = lnk_import_table_search_func(dll, import_header->func_name); - if (!func) { - func = lnk_import_table_push_func_delayed(imptab_delayed, dll, import_header); - } - } else { - dll = lnk_import_table_search_dll(imptab_static, import_header->dll_name); - if (!dll) { - dll = lnk_import_table_push_dll_static(imptab_static, import_header->dll_name, import_header->machine); - } - func = lnk_import_table_search_func(dll, import_header->func_name); - if (!func) { - func = lnk_import_table_push_func_static(imptab_static, dll, import_header); - } - } + LNK_Symbol *iat_symbol = push_array(symtab->arena->v[0], LNK_Symbol, 1); + iat_symbol->type = LNK_Symbol_Import; + iat_symbol->name = push_str8f(symtab->arena->v[0], "__imp_%S", import_header.func_name); + iat_symbol->u.coff_import = input->coff_import; - { - LNK_Symbol *thunk_symbol = push_array(symtab->arena->v[0], LNK_Symbol, 1); - thunk_symbol->name = func->thunk_symbol_name; - thunk_symbol->type = LNK_Symbol_Import; - - LNK_Symbol *iat_symbol = push_array(symtab->arena->v[0], LNK_Symbol, 1); - iat_symbol->name = func->iat_symbol_name; - iat_symbol->type = LNK_Symbol_Import; - - lnk_symbol_table_push(symtab, thunk_symbol); - lnk_symbol_table_push(symtab, iat_symbol); - } + lnk_symbol_table_push(symtab, thunk_symbol); + lnk_symbol_table_push(symtab, iat_symbol); } // reset input @@ -4235,6 +4179,7 @@ lnk_run(int argc, char **argv) if (input_import_list.count) { ProfBegin("Build Import Table"); + // warn about unused delayloads if (config->flags & LNK_ConfigFlag_CheckUnusedDelayLoadDll) { if (imptab_delayed) { for (String8Node *node = config->delay_load_dll_list.first; node != 0; node = node->next) { @@ -4246,11 +4191,25 @@ lnk_run(int argc, char **argv) } } - LNK_InputObjList static_imports = lnk_import_table_serialize(scratch.arena, imptab_static, str8_skip_last_slash(config->image_name), config->machine); - LNK_InputObjList delayed_imports = lnk_import_table_serialize(scratch.arena, imptab_delayed, str8_skip_last_slash(config->image_name), config->machine); + // make and input static imports + String8Array import_objs_static = lnk_make_import_dlls_static(scratch.arena, imptab_static, config->machine, str8_skip_last_slash(config->image_name)); + for (U64 i = 0; i < import_objs_static.count; i += 1) { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->path = str8_lit("* Import Obj *"); + input->input_idx = i; + input->data = import_objs_static.v[i]; + } - lnk_input_obj_list_concat_in_place(&input_obj_list, &static_imports); - lnk_input_obj_list_concat_in_place(&input_obj_list, &delayed_imports); + // make and input delayed imports + B32 emit_biat = config->import_table_emit_biat == LNK_SwitchState_Yes; + B32 emit_uiat = config->import_table_emit_uiat == LNK_SwitchState_Yes; + String8Array import_objs_delayed = lnk_make_import_dlls_delayed(scratch.arena, imptab_delayed, config->machine, str8_skip_last_slash(config->image_name), emit_biat, emit_uiat); + for (U64 i = 0; i < import_objs_delayed.count; i += 1) { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->path = str8_lit("* Import Obj *"); + input->input_idx = import_objs_static.count + i; + input->data = import_objs_delayed.v[i]; + } ProfEnd(); } diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 5bf62c45..2a1b1808 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -192,10 +192,6 @@ internal String8List lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_temp, LN internal String8List lnk_build_win32_image_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sect_arr, U64 expected_image_header_size); internal String8 lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, LNK_ObjList obj_list); -// --- Import Lib -------------------------------------------------------------- - -internal String8List lnk_build_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ExportParseList export_list); - // --- Logger ------------------------------------------------------------------ internal void lnk_log_link_stats(LNK_ObjList obj_list, LNK_LibList *lib_index, LNK_SectionTable *sectab); diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index e6a1f1ce..7df1713a 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -1019,9 +1019,9 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } else { String8 value = value_strings.first->string; if (str8_match_lit("unload", value, StringMatchFlag_CaseInsensitive)) { - config->flags |= LNK_ImportTableFlag_EmitUiat; + config->import_table_emit_uiat = 1; } else if (str8_match_lit("nobind", value, StringMatchFlag_CaseInsensitive)) { - config->flags &= ~LNK_ImportTableFlag_EmitBiat; + config->import_table_emit_biat = 0; } else { lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unknown parameter \"%S\"", value); } @@ -1519,7 +1519,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_Rad_DelayBind: { - lnk_cmd_switch_set_flag_64(obj_path, lib_path, cmd_switch, value_strings, &config->flags, LNK_ImportTableFlag_EmitBiat); + lnk_cmd_switch_parse_flag(obj_path, lib_path, cmd_switch, value_strings, &config->import_table_emit_biat); } break; case LNK_CmdSwitch_Rad_DoMerge: { @@ -1935,7 +1935,7 @@ lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line) // don't emit bind table with /ALLOWBIND:NO if (config->dll_characteristics & PE_DllCharacteristic_NO_BIND) { - config->flags &= ~LNK_ImportTableFlag_EmitBiat; + config->import_table_emit_biat = LNK_SwitchState_No; } // set flags for /OPT diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index 8e883fb8..20946905 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -289,7 +289,8 @@ typedef struct LNK_Config LNK_SwitchState opt_icf; LNK_SwitchState opt_lbr; U64 opt_iter_count; - LNK_ImportTableFlags import_table_flags; + LNK_SwitchState import_table_emit_biat; + LNK_SwitchState import_table_emit_uiat; LNK_GuardFlags guard_flags; LNK_DebugInfoGuidType guid_type; Guid guid; diff --git a/src/linker/lnk_export_table.c b/src/linker/lnk_export_table.c index 62081894..e3866ab9 100644 --- a/src/linker/lnk_export_table.c +++ b/src/linker/lnk_export_table.c @@ -403,4 +403,49 @@ lnk_make_edata_obj(Arena *arena, return obj; } +internal String8List +lnk_build_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ExportParseList export_list) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(&arena, 1); + + dll_name = str8_skip_last_slash(dll_name); + + // These objects appear in first three members of any lib that linker produces with /dll. + // Objects are used by MSVC linker to build import table. + String8 import_entry_obj = lnk_build_import_entry_obj(scratch.arena, dll_name, time_stamp, machine); + String8 null_import_descriptor_obj = lnk_build_null_import_descriptor_obj(scratch.arena, time_stamp, machine); + String8 null_thunk_data_obj = lnk_build_null_thunk_data_obj(scratch.arena, dll_name, time_stamp, machine); + + COFF_LibWriter *lib_writer = coff_lib_writer_alloc(); + + // push import table nulls + coff_lib_writer_push_obj(lib_writer, dll_name, import_entry_obj); + coff_lib_writer_push_obj(lib_writer, dll_name, null_import_descriptor_obj); + coff_lib_writer_push_obj(lib_writer, dll_name, null_thunk_data_obj); + + // push exports + for (LNK_ExportParseNode *exp_n = export_list.first; exp_n != 0; exp_n = exp_n->next) { + LNK_ExportParse *exp = &exp_n->data; + if (exp->is_noname_present) { + coff_lib_writer_push_export_by_ordinal(lib_writer, machine, time_stamp, dll_name, exp->type, exp->ordinal); + } else { + String8 name = lnk_name_from_export_parse(exp); + COFF_LibWriterSymbolNode *member_symbol = coff_lib_writer_push_export_by_name(lib_writer, machine, time_stamp, dll_name, exp->type, name, exp->hint); + + COFF_LibWriterSymbol imp_symbol = {0}; + imp_symbol.name = push_str8f(lib_writer->arena, "__imp_%S", name); + imp_symbol.member_idx = member_symbol->data.member_idx; + coff_lib_writer_symbol_list_push(lib_writer->arena, &lib_writer->symbol_list, imp_symbol); + } + } + + // serialize lib + String8List lib = coff_lib_writer_serialize(arena, lib_writer, COFF_TimeStamp_Max, 0, /* emit second member: */ 1); + coff_lib_writer_release(&lib_writer); + + scratch_end(scratch); + ProfEnd(); + return lib; +} diff --git a/src/linker/lnk_export_table.h b/src/linker/lnk_export_table.h index f3c5b9ec..78474d61 100644 --- a/src/linker/lnk_export_table.h +++ b/src/linker/lnk_export_table.h @@ -43,4 +43,4 @@ internal B32 lnk_parse_export_directive_ex(Arena *arena, String8List directive, internal B32 lnk_parse_export_directive(Arena *arena, String8 directive, String8 obj_path, String8 lib_path, LNK_ExportParse *parse_out); internal LNK_ExportParsePtrArray lnk_array_from_export_list(Arena *arena, LNK_ExportParseList list); internal LNK_ExportParseNode * lnk_export_parse_list_push(Arena *arena, LNK_ExportParseList *list, LNK_ExportParse data); - +internal String8List lnk_build_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ExportParseList export_list); diff --git a/src/linker/lnk_import_table.c b/src/linker/lnk_import_table.c index 91282160..9beccc87 100644 --- a/src/linker/lnk_import_table.c +++ b/src/linker/lnk_import_table.c @@ -2,17 +2,12 @@ // Licensed under the MIT license (https://opensource.org/license/mit/) internal LNK_ImportTable * -lnk_import_table_alloc(LNK_ImportTableFlags flags) +lnk_import_table_alloc(void) { - ProfBeginFunction(); - Arena *arena = arena_alloc(); LNK_ImportTable *imptab = push_array(arena, LNK_ImportTable, 1); - imptab->arena = arena; - imptab->flags = flags; - imptab->dll_ht = hash_table_init(arena, LNK_IMPORT_DLL_HASH_TABLE_BUCKET_COUNT); - - ProfEnd(); + imptab->arena = arena; + imptab->dll_ht = hash_table_init(arena, 512); return imptab; } @@ -25,381 +20,37 @@ lnk_import_table_release(LNK_ImportTable **imptab_ptr) ProfEnd(); } -internal BucketNode * -lnk_import_table_push_dll_node(LNK_ImportTable *imptab, LNK_ImportDLL *dll) +internal LNK_ImportDLL * +lnk_import_table_push_dll(LNK_ImportTable *imptab, String8 dll_name, COFF_MachineType machine) { + LNK_ImportDLL *dll = push_array(imptab->arena, LNK_ImportDLL, 1); + // update list SLLQueuePush(imptab->first_dll, imptab->last_dll, dll); // update name -> dll hash table - return hash_table_push_path_raw(imptab->arena, imptab->dll_ht, dll->name, dll); -} + hash_table_push_path_raw(imptab->arena, imptab->dll_ht, dll->name, dll); -internal BucketNode * -lnk_import_table_push_func_node(LNK_ImportTable *imptab, LNK_ImportDLL *dll, LNK_ImportFunc *func) -{ - // update list - SLLQueuePush(dll->first_func, dll->last_func, func); - - // update name -> func hash table - return hash_table_push_string_raw(imptab->arena, dll->func_ht, func->name, func); -} - -internal LNK_ImportDLL * -lnk_import_table_search_dll(LNK_ImportTable *imptab, String8 name) -{ - return hash_table_search_path_raw(imptab->dll_ht, name); -} - -internal LNK_ImportFunc * -lnk_import_table_search_func(LNK_ImportDLL *dll, String8 name) -{ - LNK_ImportFunc *func = 0; - hash_table_search_string_raw(dll->func_ht, name, (void **)&func); - return func; -} - -internal LNK_ImportDLL * -lnk_import_table_push_dll_static(LNK_ImportTable *imptab, String8 dll_name, COFF_MachineType machine) -{ - ProfBeginFunction(); - - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, machine); - - U64 import_size = coff_word_size_from_machine(machine); - COFF_SectionFlags import_align = coff_section_flag_from_align_size(import_size); - - PE_ImportEntry *impdesc = push_array(obj_writer->arena, PE_ImportEntry, 1); - String8 dll_name_cstr = push_cstr(obj_writer->arena, dll_name); - - COFF_ObjSection *dll_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$2"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(impdesc)); - COFF_ObjSection *ilt_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$4"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); - COFF_ObjSection *iat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$5"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); - COFF_ObjSection *int_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$6"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); - COFF_ObjSection *dll_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$7"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); - COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$i"), LNK_TEXT_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_zero()); - - COFF_ObjSymbol *ilt_symbol = coff_obj_writer_push_symbol_static(obj_writer, ilt_sect->name, 0, ilt_sect); - COFF_ObjSymbol *iat_symbol = coff_obj_writer_push_symbol_static(obj_writer, iat_sect->name, 0, iat_sect); - COFF_ObjSymbol *dll_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll_name_sect->name, 0, dll_name_sect); - - switch (machine) { - case COFF_MachineType_Unknown: {} break; - case COFF_MachineType_X64: { - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, lookup_table_voff), ilt_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, name_voff), dll_name_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, import_addr_table_voff), iat_symbol, COFF_Reloc_X64_Addr32Nb); - } break; - default: { NotImplemented; } break; - } - - // push to list - LNK_ImportDLL *dll = push_array(imptab->arena, LNK_ImportDLL, 1); - dll->obj_writer = obj_writer; - dll->name = push_str8_copy(imptab->arena, dll_name); - dll->dll_sect = dll_sect; - dll->int_sect = int_sect; - dll->ilt_sect = ilt_sect; - dll->iat_sect = iat_sect; - dll->code_sect = code_sect; - dll->func_ht = hash_table_init(imptab->arena, LNK_IMPORT_FUNC_HASH_TABLE_BUCKET_COUNT); - - lnk_import_table_push_dll_node(imptab, dll); - - ProfEnd(); return dll; } internal LNK_ImportDLL * -lnk_import_table_push_dll_delayed(LNK_ImportTable *imptab, String8 dll_name, COFF_MachineType machine) +lnk_import_table_search_dll(LNK_ImportTable *imptab, String8 dll_name) { - ProfBeginFunction(); - - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, machine); - - // import descriptor - PE_DelayedImportEntry *impdesc = push_array(obj_writer->arena, PE_DelayedImportEntry, 1); - impdesc->attributes = 1; - - // DLL name cstring - String8 dll_name_cstr = push_cstr(obj_writer->arena, dll_name); - - // DLL handle - U64 handle_size = coff_word_size_from_machine(machine); - U8 *handle = push_array(obj_writer->arena, U8, handle_size); - - // import align - U64 import_size = coff_word_size_from_machine(machine); - COFF_SectionFlags import_align = coff_section_flag_from_align_size(import_size); - - COFF_ObjSection *dll_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$2"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(impdesc)); - COFF_ObjSection *ilt_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$4"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); - COFF_ObjSection *iat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$5"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); - COFF_ObjSection *int_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$6"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); - COFF_ObjSection *dll_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$7"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); - COFF_ObjSection *biat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$8"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); - COFF_ObjSection *uiat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$9"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); - COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$i"), LNK_TEXT_SECTION_FLAGS, str8_zero()); - COFF_ObjSection *handle_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$h"), LNK_DATA_SECTION_FLAGS, str8_array(handle, handle_size)); - - COFF_ObjSymbol *dll_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll_sect->name, 0, dll_sect); - COFF_ObjSymbol *dll_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll_name_sect->name, 0, dll_name_sect); - COFF_ObjSymbol *handle_symbol = coff_obj_writer_push_symbol_static(obj_writer, handle_sect->name, 0, handle_sect); - COFF_ObjSymbol *iat_symbol = coff_obj_writer_push_symbol_static(obj_writer, iat_sect->name, 0, iat_sect); - COFF_ObjSymbol *ilt_symbol = coff_obj_writer_push_symbol_static(obj_writer, ilt_sect->name, 0, ilt_sect); - - switch (machine) { - case COFF_MachineType_Unknown: {} break; - case COFF_MachineType_X64: { - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, name_voff), dll_name_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, module_handle_voff), handle_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, iat_voff), iat_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, name_table_voff), ilt_symbol, COFF_Reloc_X64_Addr32Nb); - } break; - default: { NotImplemented; } break; - } - - if (imptab->flags & LNK_ImportTableFlag_EmitBiat) { - COFF_ObjSymbol *biat_symbol = coff_obj_writer_push_symbol_static(obj_writer, biat_sect->name, 0, biat_sect); - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, bound_table_voff), biat_symbol, COFF_Reloc_X64_Addr32Nb); - } - if (imptab->flags & LNK_ImportTableFlag_EmitUiat) { - COFF_ObjSymbol *uiat_symbol = coff_obj_writer_push_symbol_static(obj_writer, uiat_sect->name, 0, uiat_sect); - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, unload_table_voff), uiat_symbol, COFF_Reloc_X64_Addr32Nb); - } - - // emit tail merge - COFF_ObjSymbol *tail_merge_symbol = 0; - switch (machine) { - case COFF_MachineType_Unknown: {} break; - case COFF_MachineType_X64: { tail_merge_symbol = lnk_emit_tail_merge_thunk_x64(obj_writer, code_sect, dll_name, dll_symbol); } break; - default: { NotImplemented; } break; - } - - // fill out result - LNK_ImportDLL *dll = push_array(imptab->arena, LNK_ImportDLL, 1); - dll->dll_sect = dll_sect; - dll->int_sect = int_sect; - dll->iat_sect = iat_sect; - dll->ilt_sect = ilt_sect; - dll->biat_sect = biat_sect; - dll->uiat_sect = uiat_sect; - dll->code_sect = code_sect; - dll->tail_merge_symbol = tail_merge_symbol; - dll->name = push_str8_copy(imptab->arena, dll_name); - dll->func_ht = hash_table_init(imptab->arena, LNK_IMPORT_FUNC_HASH_TABLE_BUCKET_COUNT); - - lnk_import_table_push_dll_node(imptab, dll); - - ProfEnd(); + LNK_ImportDLL *dll = 0; + hash_table_search_string_raw(imptab->dll_ht, dll_name, &dll); return dll; } internal LNK_ImportFunc * -lnk_import_table_push_func_static(LNK_ImportTable *imptab, LNK_ImportDLL *dll, COFF_ParsedArchiveImportHeader *header) +lnk_import_table_push_func(LNK_ImportTable *imptab, LNK_ImportDLL *dll, struct LNK_Symbol *symbol) { - ProfBeginFunction(); - - COFF_ObjWriter *obj_writer = dll->obj_writer; - - String8 iat_symbol_name = push_str8f(obj_writer->arena, "__imp_%S", header->func_name); - U64 iat_offset = dll->iat_sect->data.total_size; - U64 ilt_offset = dll->ilt_sect->data.total_size; - U64 int_offset = dll->int_sect->data.total_size; - - COFF_ObjSymbol *iat_symbol = 0; - switch (header->import_by) { - case COFF_ImportBy_Ordinal: { - String8 ordinal_data = coff_ordinal_data_from_hint(obj_writer->arena, header->machine, header->hint_or_ordinal); - str8_list_push(obj_writer->arena, &dll->ilt_sect->data, ordinal_data); - str8_list_push(obj_writer->arena, &dll->iat_sect->data, ordinal_data); - - iat_symbol = coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_offset, dll->iat_sect); - } break; - case COFF_ImportBy_Name: { - // put together name look up entry - String8 int_data = coff_make_import_lookup(obj_writer->arena, header->hint_or_ordinal, header->func_name); - str8_list_push(obj_writer->arena, &dll->int_sect->data, int_data); - - // create symbol for lookup entry - COFF_ObjSymbol *int_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll->int_sect->name, int_offset, dll->int_sect); - - // in the file IAT mirrors ILT, dynamic linker later overwrites it with imported function addresses - U64 import_size = coff_word_size_from_machine(header->machine); - U8 *import_entry = push_array(obj_writer->arena, U8, import_size); - str8_list_push(obj_writer->arena, &dll->ilt_sect->data, str8_array(import_entry, import_size)); - str8_list_push(obj_writer->arena, &dll->iat_sect->data, str8_array(import_entry, import_size)); - - iat_symbol = coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_offset, dll->iat_sect); - - // patch IAT and ILT - coff_obj_writer_section_push_reloc(obj_writer, dll->ilt_sect, ilt_offset, int_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, dll->iat_sect, iat_offset, int_symbol, COFF_Reloc_X64_Addr32Nb); - } break; - case COFF_ImportBy_Undecorate: { - NotImplemented; - } break; - case COFF_ImportBy_NameNoPrefix: { - NotImplemented; - } break; - } - - // generate thunks - COFF_ObjSymbol *jmp_thunk_symbol = 0; - if (header->type == COFF_ImportHeader_Code) { - switch (header->machine) { - case COFF_MachineType_Unknown: {} break; - case COFF_MachineType_X64: { jmp_thunk_symbol = lnk_emit_indirect_jump_thunk_x64(obj_writer, dll->code_sect, iat_symbol, header->func_name); } break; - default: { NotImplemented; } break; - } - } - - // fill out import - LNK_ImportFunc *func = push_array(imptab->arena, LNK_ImportFunc, 1); - func->name = push_str8_copy(imptab->arena, header->func_name); - func->thunk_symbol_name = push_str8_copy(imptab->arena, jmp_thunk_symbol->name); - func->iat_symbol_name = iat_symbol_name; - + LNK_ImportFunc *func = push_array(imptab->arena, LNK_ImportFunc, 1); + func->symbol = symbol; lnk_import_table_push_func_node(imptab, dll, func); - - ProfEnd(); return func; } -internal LNK_ImportFunc * -lnk_import_table_push_func_delayed(LNK_ImportTable *imptab, LNK_ImportDLL *dll, COFF_ParsedArchiveImportHeader *header) -{ -#if 0 - ProfBeginFunction(); - - COFF_ObjWriter *obj_writer = dll->obj_writer; - Assert(dll->machine == header->machine); // TODO: error handle - - U64 import_size = coff_word_size_from_machine(dll->machine); - - LNK_Symbol *int_symbol = 0; - - // generate thunks - LNK_Symbol *jmp_thunk_symbol = g_null_symbol_ptr; - LNK_Symbol *load_thunk_symbol = g_null_symbol_ptr; - LNK_Chunk *jmp_thunk_chunk = 0; - LNK_Chunk *load_thunk_chunk = 0; - if (header->type == COFF_ImportHeader_Code) { - switch (dll->machine) { - case COFF_MachineType_X64: { - String8 iat_symbol_name = push_str8f(symtab->arena->v[0], "__imp_%S", header->func_name); - LNK_Symbol *iat_symbol = lnk_make_undefined_symbol(symtab->arena->v[0], iat_symbol_name, LNK_SymbolScope_Main); - - // emit jmp thunk chunk - jmp_thunk_chunk = lnk_emit_indirect_jump_thunk_x64(code_sect, code_table_chunk, iat_symbol); - jmp_thunk_symbol = lnk_emit_jmp_thunk_symbol(symtab, jmp_thunk_chunk, header->func_name); - - // emit load thunk - load_thunk_chunk = lnk_emit_load_thunk_x64(code_sect, code_table_chunk, iat_symbol, dll->tail_merge_symbol); - load_thunk_symbol = lnk_emit_load_thunk_symbol(symtab, load_thunk_chunk, header->func_name); - } break; - default: lnk_not_implemented("TODO: support for machine 0x%X", dll->machine); break; - } - } - - switch (header->import_by) { - case COFF_ImportBy_Ordinal: { - String8 ordinal_data = lnk_ordinal_data_from_hint(data_sect->arena, dll->machine, header->hint_or_ordinal); - Assert(ordinal_data.size == import_size); - ilt_chunk = lnk_section_push_chunk_data(data_sect, ilt_table_chunk, ordinal_data, sort_index); - iat_chunk = lnk_section_push_chunk_bss(data_sect, iat_table_chunk, import_size, sort_index); - lnk_section_push_reloc(data_sect, iat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); - - lnk_section_associate_chunks(data_sect, iat_chunk, ilt_chunk); - if (imptab->flags & LNK_ImportTableFlag_EmitBiat) { - biat_chunk = lnk_section_push_chunk_bss(data_sect, biat_table_chunk, import_size, sort_index); - lnk_section_push_reloc(data_sect, biat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); - lnk_section_associate_chunks(data_sect, iat_chunk, biat_chunk); - } - if (imptab->flags & LNK_ImportTableFlag_EmitUiat) { - uiat_chunk = lnk_section_push_chunk_bss(data_sect, uiat_table_chunk, import_size, sort_index); - lnk_section_push_reloc(data_sect, uiat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); - lnk_section_associate_chunks(data_sect, iat_chunk, uiat_chunk); - } - } break; - case COFF_ImportBy_Name: { - // put together name look up entry - String8 int_data = coff_make_import_lookup(data_sect->arena, header->hint_or_ordinal, header->func_name); - LNK_Chunk *int_chunk = lnk_section_push_chunk_data(data_sect, int_table_chunk, int_data, str8_zero()); - - // create symbol for lookup chunk - String8 int_symbol_name = push_str8f(symtab->arena->v[0], "%S.%S.name.delayed", dll->name, header->func_name); - int_symbol = lnk_symbol_table_push_defined_chunk(symtab, int_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, int_chunk, 0, 0, 0); - - // dynamic linker patches this voff on DLL load event - ilt_chunk = lnk_section_push_chunk_bss(data_sect, ilt_table_chunk, import_size, sort_index); - lnk_chunk_set_debugf(data_sect->arena, ilt_chunk, "ILT entry (delayed) %S.%S", dll->name, header->func_name); - - // patch-in ILT with import voff - lnk_section_push_reloc(data_sect, ilt_chunk, LNK_Reloc_VIRT_OFF_32, 0, int_symbol); - - // in the file IAT mirrors ILT, dynamic linker later overwrites it with imported function addresses. - iat_chunk = lnk_section_push_chunk_bss(data_sect, iat_table_chunk, import_size, sort_index); - lnk_chunk_set_debugf(data_sect->arena, iat_chunk, "IAT entre (delayed) %S.%S", dll->name, header->func_name); - - // associate chunks - lnk_section_associate_chunks(data_sect, iat_chunk, ilt_chunk); - lnk_section_associate_chunks(data_sect, iat_chunk, int_chunk); - - // patch-in thunk address - lnk_section_push_reloc(data_sect, iat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); - - if (imptab->flags & LNK_ImportTableFlag_EmitBiat) { - biat_chunk = lnk_section_push_chunk_bss(data_sect, biat_table_chunk, import_size, sort_index); - lnk_chunk_set_debugf(data_sect->arena, biat_chunk, "%S.biat.%S (delayed)", dll->name, header->func_name); - - // patch-in thunk address - lnk_section_push_reloc(data_sect, biat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); - } - - if (imptab->flags & LNK_ImportTableFlag_EmitUiat) { - uiat_chunk = lnk_section_push_chunk_bss(data_sect, uiat_table_chunk, import_size, sort_index); - lnk_chunk_set_debugf(data_sect->arena, uiat_chunk, "%S.uiat.%S (delayed)", dll->name, header->func_name); - - // patch-in thunk address - lnk_section_push_reloc(data_sect, uiat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); - } - } break; - case COFF_ImportBy_Undecorate: { - lnk_not_implemented("TODO: COFF_ImportBy_Undecorate"); - } break; - case COFF_ImportBy_NameNoPrefix: { - lnk_not_implemented("TODO: COFF_ImportBy_NameNoPrefix"); - } break; - } - - if (jmp_thunk_chunk) { - lnk_section_associate_chunks(data_sect, iat_chunk, jmp_thunk_chunk); - } - if (load_thunk_chunk) { - lnk_section_associate_chunks(data_sect, iat_chunk, load_thunk_chunk); - } - - String8 iat_symbol_name = push_str8f(symtab->arena->v[0], "__imp_%S", header->func_name); - LNK_Symbol *iat_symbol = lnk_symbol_table_push_defined_chunk(symtab, iat_symbol_name, LNK_DefinedSymbolVisibility_Extern, 0, iat_chunk, 0, 0, 0); - - String8 ilt_symbol_name = push_str8f(symtab->arena->v[0], "%S.%S.ilt.delayed", dll->name, header->func_name); - LNK_Symbol *ilt_symbol = lnk_symbol_table_push_defined_chunk(symtab, ilt_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, ilt_chunk, 0, 0, 0); - - // fill out import - LNK_ImportFunc *func = push_array(imptab->arena, LNK_ImportFunc, 1); - func->name = push_str8_copy(imptab->arena, header->func_name); - func->thunk_symbol_name = push_str8_copy(imptab->arena, jmp_thunk_symbol->name); - func->iat_symbol_name = push_str8_copy(imptab->arena, iat_symbol->name); - - lnk_import_table_push_func_node(imptab, dll, func); - - ProfEnd(); - return func; -#endif - return 0; -} - internal COFF_ObjSymbol * lnk_emit_indirect_jump_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, COFF_ObjSymbol *iat_symbol, String8 thunk_name) { @@ -645,96 +296,343 @@ lnk_build_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_TimeStamp tim return obj; } -internal LNK_InputObjList -lnk_import_table_serialize(Arena *arena, LNK_ImportTable *imptab, String8 image_name, COFF_MachineType machine) +internal void +lnk_emit_dll_import_debug_symbols(COFF_ObjWriter *obj_writer, String8 dll_name) { - Temp scratch = scratch_begin(&arena, 1); + Temp scratch = scratch_begin(0,0); - // append .debug$S - for (LNK_ImportDLL *dll = imptab->first_dll; dll != 0; dll = dll->next) { - String8 debug_symbols = {0}; - { - Temp temp = temp_begin(scratch.arena); + CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; - CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; + // S_OBJ + String8 obj_data = cv_make_obj_name(scratch.arena, dll_name, 0); + cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_OBJNAME, obj_data); - // S_OBJ - String8 obj_data = cv_make_obj_name(temp.arena, dll->name, 0); - cv_symbol_list_push_data(temp.arena, &symbol_list, CV_SymKind_OBJNAME, obj_data); + // S_COMPILE3 + String8 comp3_data = lnk_make_linker_compile3(scratch.arena, obj_writer->machine); + cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); - // S_COMPILE3 - String8 comp3_data = lnk_make_linker_compile3(temp.arena, dll->obj_writer->machine); - cv_symbol_list_push_data(temp.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); + // S_END + cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_END, str8_zero()); - // S_END - cv_symbol_list_push_data(temp.arena, &symbol_list, CV_SymKind_END, str8_zero()); + // TODO: add thunks - // TODO: add thunks + // serialize symbols + String8 debug_symbols = lnk_make_debug_s(obj_writer->arena, symbol_list); - // serialize symbols - debug_symbols = lnk_make_debug_s(dll->obj_writer->arena, symbol_list); - - temp_end(temp); - } - coff_obj_writer_push_section(dll->obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS, debug_symbols); - } - - LNK_InputObjList result = {0}; - - // serialize obj writers - for (LNK_ImportDLL *dll = imptab->first_dll; dll != 0; dll = dll->next) { - String8 obj = coff_obj_writer_serialize(arena, dll->obj_writer); - - LNK_InputObj *input = lnk_input_obj_list_push(arena, &result); - input->data = obj; - input->path = push_str8f(arena, "Import:%S", dll->name); - input->dedup_id = input->path; - } - - // generate null terminator objs - String8 null_import_entry_obj = lnk_build_import_entry_obj(arena, image_name, COFF_TimeStamp_Max, machine); - String8 null_import_descriptor_obj = lnk_build_null_import_descriptor_obj(arena, COFF_TimeStamp_Max, machine); - String8 null_thunk_data_obj = lnk_build_null_thunk_data_obj(arena, image_name, COFF_TimeStamp_Max, machine); - - // pick null terminator obj paths - String8 null_import_path; - String8 null_import_descriptor_path; - String8 null_thunk_path; - if (imptab->flags & LNK_ImportTableFlag_Delayed) { - null_import_path = str8_lit("DELAYED_NULL_IMPORT_ENTRY_OBJ"); - null_import_descriptor_path = str8_lit("DELAYED_NULL_IMPORT_DESCRIPTOR_OBJ"); - null_thunk_path = str8_lit("DELAYED_NULL_THUNK_OBJ"); - } else { - null_import_path = str8_lit("NULL_IMPORT_ENTRY_OBJ"); - null_import_descriptor_path = str8_lit("NULL_IMPORT_DESCRIPTOR_OBJ"); - null_thunk_path = str8_lit("NULL_THUNK_OBJ"); - } - - os_write_data_to_file_path(str8_lit("null_import_entry.obj"), null_import_entry_obj); - os_write_data_to_file_path(str8_lit("null_import_descriptor.obj"), null_import_descriptor_obj); - os_write_data_to_file_path(str8_lit("null_thunk.obj"), null_thunk_data_obj); - - // append null terminators - { - LNK_InputObj *input = lnk_input_obj_list_push(arena, &result); - input->data = null_import_entry_obj; - input->path = null_import_path; - input->dedup_id = input->path; - } - { - LNK_InputObj *input = lnk_input_obj_list_push(arena, &result); - input->data = null_import_descriptor_obj; - input->path = null_import_descriptor_path; - input->dedup_id = input->path; - } - { - LNK_InputObj *input = lnk_input_obj_list_push(arena, &result); - input->data = null_thunk_data_obj; - input->path = null_thunk_path; - input->dedup_id = input->path; - } + coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS, debug_symbols); scratch_end(scratch); - return result; +} + +internal String8 +lnk_obj_from_import_dll_static(Arena *arena, COFF_MachineType machine, LNK_ImportDLL *dll) +{ + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, machine); + + U64 import_size = coff_word_size_from_machine(machine); + COFF_SectionFlags import_align = coff_section_flag_from_align_size(import_size); + + PE_ImportEntry *impdesc = push_array(obj_writer->arena, PE_ImportEntry, 1); + String8 dll_name_cstr = push_cstr(obj_writer->arena, dll->name); + + COFF_ObjSection *dll_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$2"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(impdesc)); + COFF_ObjSection *ilt_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$4"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *iat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$5"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *int_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$6"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); + COFF_ObjSection *dll_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$7"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); + COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$i"), LNK_TEXT_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_zero()); + + COFF_ObjSymbol *ilt_symbol = coff_obj_writer_push_symbol_static(obj_writer, ilt_sect->name, 0, ilt_sect); + COFF_ObjSymbol *iat_symbol = coff_obj_writer_push_symbol_static(obj_writer, iat_sect->name, 0, iat_sect); + COFF_ObjSymbol *dll_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll_name_sect->name, 0, dll_name_sect); + + switch (machine) { + case COFF_MachineType_Unknown: {} break; + case COFF_MachineType_X64: { + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, lookup_table_voff), ilt_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, name_voff), dll_name_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, import_addr_table_voff), iat_symbol, COFF_Reloc_X64_Addr32Nb); + } break; + default: { NotImplemented; } break; + } + + for (LNK_ImportFunc *func = dll->first_func; func != 0; func = func->next) { + LNK_Symbol *import_symbol = func->symbol; + COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(import_symbol->u.coff_import); + + String8 iat_symbol_name = push_str8f(obj_writer->arena, "__imp_%S", import_header.func_name); + U64 iat_offset = iat_sect->data.total_size; + U64 ilt_offset = ilt_sect->data.total_size; + U64 int_offset = int_sect->data.total_size; + + COFF_ObjSymbol *iat_symbol = 0; + switch (import_header.import_by) { + case COFF_ImportBy_Ordinal: { + String8 ordinal_data = coff_ordinal_data_from_hint(obj_writer->arena, import_header.machine, import_header.hint_or_ordinal); + str8_list_push(obj_writer->arena, &ilt_sect->data, ordinal_data); + str8_list_push(obj_writer->arena, &iat_sect->data, ordinal_data); + + iat_symbol = coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_offset, iat_sect); + } break; + case COFF_ImportBy_Name: { + // put together name look up entry + String8 int_data = coff_make_import_lookup(obj_writer->arena, import_header.hint_or_ordinal, import_header.func_name); + str8_list_push(obj_writer->arena, &int_sect->data, int_data); + + // create symbol for lookup entry + COFF_ObjSymbol *int_symbol = coff_obj_writer_push_symbol_static(obj_writer, int_sect->name, int_offset, int_sect); + + // in the file IAT mirrors ILT, dynamic linker later overwrites it with imported function addresses + U64 import_size = coff_word_size_from_machine(import_header.machine); + U8 *import_entry = push_array(obj_writer->arena, U8, import_size); + str8_list_push(obj_writer->arena, &ilt_sect->data, str8_array(import_entry, import_size)); + str8_list_push(obj_writer->arena, &iat_sect->data, str8_array(import_entry, import_size)); + + iat_symbol = coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_offset, iat_sect); + + // patch IAT and ILT + coff_obj_writer_section_push_reloc(obj_writer, ilt_sect, ilt_offset, int_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, iat_sect, iat_offset, int_symbol, COFF_Reloc_X64_Addr32Nb); + } break; + case COFF_ImportBy_Undecorate: { + NotImplemented; + } break; + case COFF_ImportBy_NameNoPrefix: { + NotImplemented; + } break; + } + + // emit thunks + COFF_ObjSymbol *jmp_thunk_symbol = 0; + if (import_header.type == COFF_ImportHeader_Code) { + switch (import_header.machine) { + case COFF_MachineType_Unknown: {} break; + case COFF_MachineType_X64: { jmp_thunk_symbol = lnk_emit_indirect_jump_thunk_x64(obj_writer, code_sect, iat_symbol, import_header.func_name); } break; + default: { NotImplemented; } break; + } + } + } + + String8 dll_obj = coff_obj_writer_serialize(arena, obj_writer); + coff_obj_writer_release(&obj_writer); + return dll_obj; +} + +internal String8 +lnk_obj_from_import_dll_delayed(Arena *arena, COFF_MachineType machine, LNK_ImportDLL *dll, B32 emit_biat, B32 emit_uiat) +{ + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, machine); + + // import descriptor + PE_DelayedImportEntry *impdesc = push_array(obj_writer->arena, PE_DelayedImportEntry, 1); + impdesc->attributes = 1; + + // DLL name cstring + String8 dll_name_cstr = push_cstr(obj_writer->arena, dll->name); + + // DLL handle + U64 handle_size = coff_word_size_from_machine(machine); + U8 *handle = push_array(obj_writer->arena, U8, handle_size); + + // import align + U64 import_size = coff_word_size_from_machine(machine); + COFF_SectionFlags import_align = coff_section_flag_from_align_size(import_size); + + COFF_ObjSection *dll_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$2"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(impdesc)); + COFF_ObjSection *ilt_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$4"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *iat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$5"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *int_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$6"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); + COFF_ObjSection *dll_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$7"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); + COFF_ObjSection *biat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$8"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *uiat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$9"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$i"), LNK_TEXT_SECTION_FLAGS, str8_zero()); + COFF_ObjSection *handle_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$h"), LNK_DATA_SECTION_FLAGS, str8_array(handle, handle_size)); + + COFF_ObjSymbol *dll_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll_sect->name, 0, dll_sect); + COFF_ObjSymbol *dll_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll_name_sect->name, 0, dll_name_sect); + COFF_ObjSymbol *handle_symbol = coff_obj_writer_push_symbol_static(obj_writer, handle_sect->name, 0, handle_sect); + COFF_ObjSymbol *iat_symbol = coff_obj_writer_push_symbol_static(obj_writer, iat_sect->name, 0, iat_sect); + COFF_ObjSymbol *ilt_symbol = coff_obj_writer_push_symbol_static(obj_writer, ilt_sect->name, 0, ilt_sect); + + switch (machine) { + case COFF_MachineType_Unknown: {} break; + case COFF_MachineType_X64: { + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, name_voff), dll_name_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, module_handle_voff), handle_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, iat_voff), iat_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, name_table_voff), ilt_symbol, COFF_Reloc_X64_Addr32Nb); + } break; + default: { NotImplemented; } break; + } + + if (emit_biat) { + COFF_ObjSymbol *biat_symbol = coff_obj_writer_push_symbol_static(obj_writer, biat_sect->name, 0, biat_sect); + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, bound_table_voff), biat_symbol, COFF_Reloc_X64_Addr32Nb); + } + if (emit_uiat) { + COFF_ObjSymbol *uiat_symbol = coff_obj_writer_push_symbol_static(obj_writer, uiat_sect->name, 0, uiat_sect); + coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, unload_table_voff), uiat_symbol, COFF_Reloc_X64_Addr32Nb); + } + + // emit tail merge + COFF_ObjSymbol *tail_merge_symbol = 0; + switch (machine) { + case COFF_MachineType_Unknown: {} break; + case COFF_MachineType_X64: { tail_merge_symbol = lnk_emit_tail_merge_thunk_x64(obj_writer, code_sect, dll->name, dll_symbol); } break; + default: { NotImplemented; } break; + } + + for (LNK_ImportFunc *func = dll->first_func; func != 0; func = func->next) { +#if 0 + LNK_Symbol *import_symbol = func->symbol; + COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(import_symbol->u.coff_import); + + // emit thunks + COFF_ObjSymbol *jmp_thunk_symbol = 0; + COFF_ObjSymbol *load_thunk_symbol = 0; + if (import_header.type == COFF_ImportHeader_Code) { + switch (machine) { + case COFF_MachineType_X64: { + String8 iat_symbol_name = push_str8f(obj_writer->arena, "__imp_%S", header->func_name); + coff_obj_writer_push_symbol_undef(obj_writer, iat_symbol_name); + + // emit jmp thunk + jmp_thunk_symbol = lnk_emit_indirect_jump_thunk_x64(obj_writer, code_sect, iat_symbol, import_header.func_name); + + // emit load thunk + load_thunk_chunk = lnk_emit_load_thunk_x64(code_sect, code_table_chunk, iat_symbol, dll->tail_merge_symbol); + } break; + default: lnk_not_implemented("TODO: support for machine 0x%X", dll->machine); break; + } + } + + U64 import_size = coff_word_size_from_machine(machine); + + switch (header->import_by) { + case COFF_ImportBy_Ordinal: { + String8 ordinal_data = coff_ordinal_data_from_hint(obj_writer->arena, import_header.machine, import_header.hint_or_ordinal); + str8_list_push(obj_writer->arena, &ilt_sect->data, ordinal_data); + str8_list_push(obj_writer->arena, &iat_sect->data, ordinal_data); + + iat_symbol = coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_offset, iat_sect); + + if (emit_biat) { + biat_chunk = lnk_section_push_chunk_bss(data_sect, biat_table_chunk, import_size, sort_index); + lnk_section_push_reloc(data_sect, biat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); + lnk_section_associate_chunks(data_sect, iat_chunk, biat_chunk); + } + if (emit_uiat) { + uiat_chunk = lnk_section_push_chunk_bss(data_sect, uiat_table_chunk, import_size, sort_index); + lnk_section_push_reloc(data_sect, uiat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); + lnk_section_associate_chunks(data_sect, iat_chunk, uiat_chunk); + } + } break; + case COFF_ImportBy_Name: { + // put together name look up entry + String8 int_data = coff_make_import_lookup(data_sect->arena, header->hint_or_ordinal, header->func_name); + LNK_Chunk *int_chunk = lnk_section_push_chunk_data(data_sect, int_table_chunk, int_data, str8_zero()); + + // create symbol for lookup chunk + String8 int_symbol_name = push_str8f(symtab->arena->v[0], "%S.%S.name.delayed", dll->name, header->func_name); + int_symbol = lnk_symbol_table_push_defined_chunk(symtab, int_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, int_chunk, 0, 0, 0); + + // dynamic linker patches this voff on DLL load event + ilt_chunk = lnk_section_push_chunk_bss(data_sect, ilt_table_chunk, import_size, sort_index); + lnk_chunk_set_debugf(data_sect->arena, ilt_chunk, "ILT entry (delayed) %S.%S", dll->name, header->func_name); + + // patch-in ILT with import voff + lnk_section_push_reloc(data_sect, ilt_chunk, LNK_Reloc_VIRT_OFF_32, 0, int_symbol); + + // in the file IAT mirrors ILT, dynamic linker later overwrites it with imported function addresses. + iat_chunk = lnk_section_push_chunk_bss(data_sect, iat_table_chunk, import_size, sort_index); + lnk_chunk_set_debugf(data_sect->arena, iat_chunk, "IAT entre (delayed) %S.%S", dll->name, header->func_name); + + // associate chunks + lnk_section_associate_chunks(data_sect, iat_chunk, ilt_chunk); + lnk_section_associate_chunks(data_sect, iat_chunk, int_chunk); + + // patch-in thunk address + lnk_section_push_reloc(data_sect, iat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); + + if (imptab->flags & LNK_ImportTableFlag_EmitBiat) { + biat_chunk = lnk_section_push_chunk_bss(data_sect, biat_table_chunk, import_size, sort_index); + lnk_chunk_set_debugf(data_sect->arena, biat_chunk, "%S.biat.%S (delayed)", dll->name, header->func_name); + + // patch-in thunk address + lnk_section_push_reloc(data_sect, biat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); + } + + if (imptab->flags & LNK_ImportTableFlag_EmitUiat) { + uiat_chunk = lnk_section_push_chunk_bss(data_sect, uiat_table_chunk, import_size, sort_index); + lnk_chunk_set_debugf(data_sect->arena, uiat_chunk, "%S.uiat.%S (delayed)", dll->name, header->func_name); + + // patch-in thunk address + lnk_section_push_reloc(data_sect, uiat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); + } + } break; + case COFF_ImportBy_Undecorate: { + lnk_not_implemented("TODO: COFF_ImportBy_Undecorate"); + } break; + case COFF_ImportBy_NameNoPrefix: { + lnk_not_implemented("TODO: COFF_ImportBy_NameNoPrefix"); + } break; + } + + if (jmp_thunk_chunk) { + lnk_section_associate_chunks(data_sect, iat_chunk, jmp_thunk_chunk); + } + if (load_thunk_chunk) { + lnk_section_associate_chunks(data_sect, iat_chunk, load_thunk_chunk); + } + + String8 iat_symbol_name = push_str8f(symtab->arena->v[0], "__imp_%S", header->func_name); + LNK_Symbol *iat_symbol = lnk_symbol_table_push_defined_chunk(symtab, iat_symbol_name, LNK_DefinedSymbolVisibility_Extern, 0, iat_chunk, 0, 0, 0); + + String8 ilt_symbol_name = push_str8f(symtab->arena->v[0], "%S.%S.ilt.delayed", dll->name, header->func_name); + LNK_Symbol *ilt_symbol = lnk_symbol_table_push_defined_chunk(symtab, ilt_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, ilt_chunk, 0, 0, 0); +#endif + } + + return str8_zero(); +} + +internal String8Array +lnk_make_import_dlls_static(Arena *arena, LNK_ImportTable *imptab, COFF_MachineType machine, String8 image_name) +{ + String8Array objs = {0}; + if (imptab->dll_count) { + objs.v = push_array(arena, String8, imptab->dll_count + 3); + + // make objs for each DLL + for (LNK_ImportDLL *dll = imptab->first_dll; dll != 0; dll = dll->next) { + objs.v[objs.count++] = lnk_obj_from_import_dll_static(arena, machine, dll); + } + + // make null terminator objs + objs.v[objs.count++] = lnk_build_import_entry_obj(arena, image_name, COFF_TimeStamp_Max, machine); + objs.v[objs.count++] = lnk_build_null_import_descriptor_obj(arena, COFF_TimeStamp_Max, machine); + objs.v[objs.count++] = lnk_build_null_thunk_data_obj(arena, image_name, COFF_TimeStamp_Max, machine); + } + return objs; +} + +internal String8Array +lnk_make_import_dlls_delayed(Arena *arena, LNK_ImportTable *imptab, COFF_MachineType machine, String8 image_name, B32 emit_biat, B32 emit_uiat) +{ + String8Array objs = {0}; + if (imptab->dll_count) { + objs.v = push_array(arena, String8, imptab->dll_count + 3); + + // make objs for each DLL + for (LNK_ImportDLL *dll = imptab->first_dll; dll != 0; dll = dll->next) { + objs.v[objs.count++] = lnk_obj_from_import_dll_delayed(arena, machine, dll, emit_biat, emit_uiat); + } + + // make null terminator objs + objs.v[objs.count++] = lnk_build_import_entry_obj(arena, image_name, COFF_TimeStamp_Max, machine); + objs.v[objs.count++] = lnk_build_null_import_descriptor_obj(arena, COFF_TimeStamp_Max, machine); + objs.v[objs.count++] = lnk_build_null_thunk_data_obj(arena, image_name, COFF_TimeStamp_Max, machine); + } + return objs; } diff --git a/src/linker/lnk_import_table.h b/src/linker/lnk_import_table.h index 2ba9a9a4..6dcd300b 100644 --- a/src/linker/lnk_import_table.h +++ b/src/linker/lnk_import_table.h @@ -3,15 +3,10 @@ #pragma once -#define LNK_IMPORT_DLL_HASH_TABLE_BUCKET_COUNT 512 -#define LNK_IMPORT_FUNC_HASH_TABLE_BUCKET_COUNT 2048 - typedef struct LNK_ImportFunc { struct LNK_ImportFunc *next; - String8 name; - String8 thunk_symbol_name; - String8 iat_symbol_name; + struct LNK_Symbol *symbol; } LNK_ImportFunc; typedef struct LNK_ImportDLL @@ -19,55 +14,38 @@ typedef struct LNK_ImportDLL struct LNK_ImportDLL *next; struct LNK_ImportFunc *first_func; struct LNK_ImportFunc *last_func; - COFF_ObjWriter *obj_writer; - COFF_ObjSection *dll_sect; - COFF_ObjSection *int_sect; - COFF_ObjSection *ilt_sect; - COFF_ObjSection *iat_sect; - COFF_ObjSection *biat_sect; - COFF_ObjSection *uiat_sect; - COFF_ObjSection *code_sect; - COFF_ObjSymbol *tail_merge_symbol; String8 name; - HashTable *func_ht; } LNK_ImportDLL; -enum -{ - LNK_ImportTableFlag_Delayed = (1 << 0), - LNK_ImportTableFlag_EmitBiat = (1 << 1), - LNK_ImportTableFlag_EmitUiat = (1 << 2), -}; -typedef U32 LNK_ImportTableFlags; - typedef struct LNK_ImportTable { - Arena *arena; - COFF_MachineType machine; - LNK_ImportDLL *first_dll; - LNK_ImportDLL *last_dll; - LNK_ImportTableFlags flags; - HashTable *dll_ht; + Arena *arena; + LNK_ImportDLL *first_dll; + LNK_ImportDLL *last_dll; + U64 dll_count; + HashTable *dll_ht; } LNK_ImportTable; //////////////////////////////// -internal LNK_ImportTable * lnk_import_table_alloc(LNK_ImportTableFlags flags); -internal void lnk_import_table_release(LNK_ImportTable **imptab); -internal LNK_ImportDLL * lnk_import_table_push_dll_static(LNK_ImportTable *imptab, String8 dll_name, COFF_MachineType machine); -internal LNK_ImportDLL * lnk_import_table_push_dll_delayed(LNK_ImportTable *imptab, String8 dll_name, COFF_MachineType machine); -internal LNK_ImportDLL * lnk_import_table_search_dll(LNK_ImportTable *imptab, String8 name); - -internal LNK_ImportFunc * lnk_import_table_push_func_static(LNK_ImportTable *imptab, LNK_ImportDLL *dll, COFF_ParsedArchiveImportHeader *header); -internal LNK_ImportFunc * lnk_import_table_push_func_delayed(LNK_ImportTable *imptab, LNK_ImportDLL *dll, COFF_ParsedArchiveImportHeader *header); -internal LNK_ImportFunc * lnk_import_table_search_func(LNK_ImportDLL *dll, String8 name); +internal LNK_ImportTable * lnk_import_table_alloc(void); +internal void lnk_import_table_release(LNK_ImportTable **imptab_ptr); +internal LNK_ImportDLL * lnk_import_table_push_dll(LNK_ImportTable *imptab, String8 dll_name, COFF_MachineType machine); +internal LNK_ImportDLL * lnk_import_table_search_dll(LNK_ImportTable *imptab, String8 dll_name); +internal LNK_ImportFunc * lnk_import_table_push_func(LNK_ImportTable *imptab, LNK_ImportDLL *dll, struct LNK_Symbol *symbol); internal COFF_ObjSymbol * lnk_emit_indirect_jump_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, COFF_ObjSymbol *iat_symbol, String8 thunk_name); internal COFF_ObjSymbol * lnk_emit_load_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, COFF_ObjSymbol *imp_addr_ptr, COFF_ObjSymbol *tail_merge, String8 func_name); -internal COFF_ObjSymbol * lnk_emit_tail_merge_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, String8 dll_name, COFF_ObjSymbol *dll_import_desc); +internal COFF_ObjSymbol * lnk_emit_tail_merge_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, String8 dll_name, COFF_ObjSymbol *dll_import_descriptor); internal String8 lnk_build_import_entry_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine); internal String8 lnk_build_null_import_descriptor_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine); internal String8 lnk_build_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine); -internal LNK_InputObjList lnk_import_table_serialize(Arena *arena, LNK_ImportTable *imptab, String8 image_name, COFF_MachineType machine); +internal void lnk_emit_dll_import_debug_symbols(COFF_ObjWriter *obj_writer, String8 dll_name); +internal String8 lnk_obj_from_import_dll_static(Arena *arena, COFF_MachineType machine, LNK_ImportDLL *dll); +internal String8 lnk_obj_from_import_dll_delayed(Arena *arena, COFF_MachineType machine, LNK_ImportDLL *dll, B32 emit_biat, B32 emit_uiat); + +internal String8Array lnk_make_import_dlls_static(Arena *arena, LNK_ImportTable *imptab, COFF_MachineType machine, String8 image_name); +internal String8Array lnk_make_import_dlls_delayed(Arena *arena, LNK_ImportTable *imptab, COFF_MachineType machine, String8 image_name, B32 emit_biat, B32 emit_uiat); + diff --git a/src/linker/lnk_input.c b/src/linker/lnk_input.c index b586ac56..5669a84b 100644 --- a/src/linker/lnk_input.c +++ b/src/linker/lnk_input.c @@ -131,13 +131,9 @@ lnk_list_from_input_import_arr(LNK_InputImport **arr, U64 count) int lnk_input_import_is_before(void *raw_a, void *raw_b) { - LNK_InputImport **a = raw_a; - LNK_InputImport **b = raw_b; - int cmp = str8_compar_ignore_case(&(*a)->import_header.dll_name, &(*b)->import_header.dll_name); - if (cmp == 0) { - cmp = str8_compar_case_sensitive(&(*a)->import_header.func_name, &(*b)->import_header.func_name); - } - return cmp < 0; + LNK_InputImport *a = *(LNK_InputImport **)raw_a; + LNK_InputImport *b = *(LNK_InputImport **)raw_b; + return a->input_idx < b->input_idx; } int @@ -145,10 +141,6 @@ lnk_input_import_compar(const void *raw_a, const void *raw_b) { LNK_InputImport * const *a = raw_a; LNK_InputImport * const *b = raw_b; - int cmp = str8_compar_ignore_case(&(*a)->import_header.dll_name, &(*b)->import_header.dll_name); - if (cmp == 0) { - cmp = str8_compar_case_sensitive(&(*a)->import_header.func_name, &(*b)->import_header.func_name); - } - return cmp; + return u64_compar(&(*a)->input_idx, &(*b)->input_idx); } diff --git a/src/linker/lnk_input.h b/src/linker/lnk_input.h index 51ba3d65..bbd351eb 100644 --- a/src/linker/lnk_input.h +++ b/src/linker/lnk_input.h @@ -16,8 +16,9 @@ typedef String8List LNK_InputLibList; typedef struct LNK_InputImport { - COFF_ParsedArchiveImportHeader import_header; struct LNK_InputImport *next; + String8 coff_import; + U64 input_idx; } LNK_InputImport; typedef struct LNK_InputImportList @@ -36,6 +37,7 @@ typedef struct LNK_InputObj String8 path; String8 data; String8 lib_path; + U64 input_idx; } LNK_InputObj; typedef struct LNK_InputObjList diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index e5726782..6cce1613 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -85,7 +85,7 @@ lnk_get_first_section_contrib(LNK_Section *sect) { if (sect->contribs.chunk_count > 0) { if (sect->contribs.first->count > 0) { - return §->contribs.first->v[0]; + return sect->contribs.first->v[0]; } } return 0; diff --git a/src/linker/lnk_symbol_table.h b/src/linker/lnk_symbol_table.h index a12d3a91..d3cbd10c 100644 --- a/src/linker/lnk_symbol_table.h +++ b/src/linker/lnk_symbol_table.h @@ -38,6 +38,7 @@ typedef struct LNK_Symbol union { LNK_SymbolDefined defined; LNK_SymbolLib lib; + String8 coff_import; LNK_SymbolUndefined undef; } u; } LNK_Symbol; From f467ff8822dcd80a0b258b618cc55a772dd37104 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 13 May 2025 23:08:19 -0700 Subject: [PATCH 097/372] WIP move export and import table make code to appropriate layers --- src/base/base_strings.c | 11 + src/base/base_strings.h | 1 + src/coff/coff.c | 12 - src/coff/coff.h | 1 - src/coff/coff_lib_writer.c | 27 +- src/coff/coff_lib_writer.h | 10 +- src/coff/coff_obj_writer.c | 69 +-- src/coff/coff_obj_writer.h | 23 +- src/linker/base_ext/base_arena.c | 11 - src/linker/hash_table.c | 13 + src/linker/hash_table.h | 1 + src/linker/lnk.c | 258 ++++++---- src/linker/lnk.h | 21 - src/linker/lnk_config.c | 120 ++++- src/linker/lnk_config.h | 5 +- src/linker/lnk_debug_helper.c | 39 ++ src/linker/lnk_export_table.c | 451 ------------------ src/linker/lnk_export_table.h | 46 -- src/linker/lnk_image_section_flags.h | 26 - src/linker/lnk_import_table.h | 51 -- src/natvis/base.natvis | 2 + src/pe/pe_make_export_table.c | 343 +++++++++++++ src/pe/pe_make_export_table.h | 61 +++ .../pe_make_import_table.c} | 383 ++++----------- src/pe/pe_make_import_table.h | 18 + src/pe/pe_section_flags.h | 27 ++ src/torture/torture.c | 2 +- 27 files changed, 992 insertions(+), 1040 deletions(-) delete mode 100644 src/linker/lnk_export_table.c delete mode 100644 src/linker/lnk_export_table.h delete mode 100644 src/linker/lnk_image_section_flags.h delete mode 100644 src/linker/lnk_import_table.h create mode 100644 src/pe/pe_make_export_table.c create mode 100644 src/pe/pe_make_export_table.h rename src/{linker/lnk_import_table.c => pe/pe_make_import_table.c} (51%) create mode 100644 src/pe/pe_make_import_table.h create mode 100644 src/pe/pe_section_flags.h diff --git a/src/base/base_strings.c b/src/base/base_strings.c index fde890c5..ab34f01a 100644 --- a/src/base/base_strings.c +++ b/src/base/base_strings.c @@ -522,6 +522,17 @@ push_str8f(Arena *arena, char *fmt, ...){ return(result); } +internal String8 +push_cstr(Arena *arena, String8 str) +{ + U64 buffer_size = str.size + 1; + U8 *buffer = push_array_no_zero(arena, U8, buffer_size); + MemoryCopy(buffer, str.str, str.size); + buffer[str.size] = 0; + String8 result = str8(buffer, buffer_size); + return result; +} + //////////////////////////////// //~ rjf: String <=> Integer Conversions diff --git a/src/base/base_strings.h b/src/base/base_strings.h index 7b9b3d20..14e71c74 100644 --- a/src/base/base_strings.h +++ b/src/base/base_strings.h @@ -232,6 +232,7 @@ internal String8 push_str8_cat(Arena *arena, String8 s1, String8 s2); internal String8 push_str8_copy(Arena *arena, String8 s); internal String8 push_str8fv(Arena *arena, char *fmt, va_list args); internal String8 push_str8f(Arena *arena, char *fmt, ...); +internal String8 push_cstr(Arena *arena, String8 str); //////////////////////////////// //~ rjf: String <=> Integer Conversions diff --git a/src/coff/coff.c b/src/coff/coff.c index 1d68d786..a474f698 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -253,18 +253,6 @@ coff_pick_reloc_value_x64(COFF_Reloc_X64 type, return result; } -internal COFF_RelocType -coff_virt_off_reloc_from_machine(COFF_MachineType machine) -{ - COFF_RelocType result = 0; - switch (machine) { - case COFF_MachineType_Unknown: break; - case COFF_MachineType_X64: result = COFF_Reloc_X64_Addr32Nb; break; - default: { NotImplemented; } break; - } - return result; -} - internal String8 coff_make_import_lookup(Arena *arena, U16 hint, String8 name) { diff --git a/src/coff/coff.h b/src/coff/coff.h index 5d1473b9..3cbe8f8e 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -603,7 +603,6 @@ internal U64 coff_apply_size_from_reloc_x64(COFF_Reloc_X64 x); internal U64 coff_apply_size_from_reloc_x86(COFF_Reloc_X86 x); internal COFF_RelocValue coff_pick_reloc_value_x64(COFF_Reloc_X64 type, U64 reloc_virtual_offset, U32 symbol_section_number, U32 symbol_section_offset, U32 symbol_virtual_offset, U64 symbol_address); -internal COFF_RelocType coff_virt_off_reloc_from_machine(COFF_MachineType machine); //////////////////////////////// // Import diff --git a/src/coff/coff_lib_writer.c b/src/coff/coff_lib_writer.c index 6ad24044..e29370d5 100644 --- a/src/coff/coff_lib_writer.c +++ b/src/coff/coff_lib_writer.c @@ -128,11 +128,9 @@ coff_lib_writer_push_obj(COFF_LibWriter *writer, String8 obj_path, String8 obj_d } } -internal COFF_LibWriterSymbolNode * +internal void coff_lib_writer_push_export(COFF_LibWriter *writer, String8 raw_import_header) { - COFF_LibWriterSymbolNode *result = 0; - U64 member_idx = writer->member_list.count; COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(raw_import_header); @@ -147,35 +145,36 @@ coff_lib_writer_push_export(COFF_LibWriter *writer, String8 raw_import_header) COFF_LibWriterSymbol def_symbol = {0}; def_symbol.name = push_str8_copy(writer->arena, import_header.func_name); def_symbol.member_idx = member_idx; - result = coff_lib_writer_symbol_list_push(writer->arena, &writer->symbol_list, def_symbol); + coff_lib_writer_symbol_list_push(writer->arena, &writer->symbol_list, def_symbol); + + COFF_LibWriterSymbol imp_symbol = {0}; + imp_symbol.name = push_str8f(writer->arena, "__imp_%S", import_header.func_name); + imp_symbol.member_idx = member_idx; + coff_lib_writer_symbol_list_push(writer->arena, &writer->symbol_list, def_symbol); } break; case COFF_ImportHeader_Data: { COFF_LibWriterSymbol imp_symbol = {0}; imp_symbol.name = push_str8f(writer->arena, "__imp_%S", import_header.func_name); imp_symbol.member_idx = member_idx; - result = coff_lib_writer_symbol_list_push(writer->arena, &writer->symbol_list, imp_symbol); - } break; - case COFF_ImportHeader_Const: { - NotImplemented; + coff_lib_writer_symbol_list_push(writer->arena, &writer->symbol_list, imp_symbol); } break; + case COFF_ImportHeader_Const: { NotImplemented; } break; default: { InvalidPath; } break; } - - return result; } -internal COFF_LibWriterSymbolNode * +internal void coff_lib_writer_push_export_by_ordinal(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, U16 ordinal) { String8 import_header = coff_make_import_header_by_ordinal(lib_writer->arena, machine, time_stamp, dll_name, ordinal, import_type); - return coff_lib_writer_push_export(lib_writer, import_header); + coff_lib_writer_push_export(lib_writer, import_header); } -internal COFF_LibWriterSymbolNode * +internal void coff_lib_writer_push_export_by_name(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, String8 name, U16 hint) { String8 import_header = coff_make_import_header_by_name(lib_writer->arena, machine, time_stamp, dll_name, name, hint, import_type); - return coff_lib_writer_push_export(lib_writer, import_header); + coff_lib_writer_push_export(lib_writer, import_header); } internal String8List diff --git a/src/coff/coff_lib_writer.h b/src/coff/coff_lib_writer.h index 0b2c166c..76dee152 100644 --- a/src/coff/coff_lib_writer.h +++ b/src/coff/coff_lib_writer.h @@ -12,8 +12,8 @@ typedef struct COFF_LibWriterMember typedef struct COFF_LibWriterMemberNode { - struct COFF_LibWriterMemberNode *next; COFF_LibWriterMember data; + struct COFF_LibWriterMemberNode *next; } COFF_LibWriterMemberNode; typedef struct COFF_LibWriterMemberList @@ -31,8 +31,8 @@ typedef struct COFF_LibWriterSymbol typedef struct COFF_LibWriterSymbolNode { - struct COFF_LibWriterSymbolNode *next; COFF_LibWriterSymbol data; + struct COFF_LibWriterSymbolNode *next; } COFF_LibWriterSymbolNode; typedef struct COFF_LibWriterSymbolList @@ -60,9 +60,9 @@ internal void coff_lib_writer_symbol_array_sort(COFF_LibWriterSymbol *arr, U64 c internal COFF_LibWriter * coff_lib_writer_alloc(void); internal void coff_lib_writer_release(COFF_LibWriter **writer_ptr); internal void coff_lib_writer_push_obj(COFF_LibWriter *writer, String8 obj_path, String8 obj_data); -internal COFF_LibWriterSymbolNode * coff_lib_writer_push_export(COFF_LibWriter *writer, String8 raw_import_header); -internal COFF_LibWriterSymbolNode * coff_lib_writer_push_export_by_ordinal(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, U16 ordinal); -internal COFF_LibWriterSymbolNode * coff_lib_writer_push_export_by_name(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, String8 name, U16 hint); +internal void coff_lib_writer_push_export(COFF_LibWriter *writer, String8 raw_import_header); +internal void coff_lib_writer_push_export_by_ordinal(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, U16 ordinal); +internal void coff_lib_writer_push_export_by_name(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, String8 name, U16 hint); internal String8List coff_lib_writer_serialize(Arena *arena, COFF_LibWriter *lib_writer, COFF_TimeStamp time_stamp, U16 mode, B32 emit_second_member); #endif // COFF_LIB_WRITER_H diff --git a/src/coff/coff_obj_writer.c b/src/coff/coff_obj_writer.c index faa0dd29..9b730d9c 100644 --- a/src/coff/coff_obj_writer.c +++ b/src/coff/coff_obj_writer.c @@ -16,6 +16,24 @@ coff_obj_writer_release(COFF_ObjWriter **obj_writer) *obj_writer = 0; } +internal COFF_ObjSection * +coff_obj_writer_push_section(COFF_ObjWriter *obj_writer, String8 name, COFF_SectionFlags flags, String8 data) +{ + COFF_ObjSectionNode *sect_n = push_array(obj_writer->arena, COFF_ObjSectionNode, 1); + SLLQueuePush(obj_writer->sect_first, obj_writer->sect_last, sect_n); + obj_writer->sect_count += 1; + + COFF_ObjSection *sect = §_n->v; + sect->name = name; + sect->flags = flags; + + if (data.size) { + str8_list_push(obj_writer->arena, §->data, data); + } + + return sect; +} + internal COFF_ObjSymbol * coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_SymbolLocation loc, COFF_SymbolType type, COFF_SymStorageClass storage_class) { @@ -104,15 +122,6 @@ coff_obj_writer_push_symbol_undef(COFF_ObjWriter *obj_writer, String8 name) return s; } -internal COFF_ObjSymbol * -coff_obj_writer_push_symbol_undef_section(COFF_ObjWriter *obj_writer, String8 name, COFF_SectionFlags flags) -{ - COFF_SymbolType type = {0}; - COFF_SymbolLocation loc = { COFF_SymbolLocation_Undef }; - COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, flags, loc, type, COFF_SymStorageClass_Section); - return s; -} - internal COFF_ObjSymbol * coff_obj_writer_push_symbol_undef_func(COFF_ObjWriter *obj_writer, String8 name) { @@ -159,24 +168,6 @@ coff_obj_writer_push_symbol_common(COFF_ObjWriter *obj_writer, String8 name, U32 return s; } -internal COFF_ObjSection * -coff_obj_writer_push_section(COFF_ObjWriter *obj_writer, String8 name, COFF_SectionFlags flags, String8 data) -{ - COFF_ObjSectionNode *sect_n = push_array(obj_writer->arena, COFF_ObjSectionNode, 1); - SLLQueuePush(obj_writer->sect_first, obj_writer->sect_last, sect_n); - obj_writer->sect_count += 1; - - COFF_ObjSection *sect = §_n->v; - sect->name = name; - sect->flags = flags; - - if (data.size) { - str8_list_push(obj_writer->arena, §->data, data); - } - - return sect; -} - internal COFF_ObjReloc* coff_obj_writer_section_push_reloc(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol, COFF_RelocType type) { @@ -192,6 +183,30 @@ coff_obj_writer_section_push_reloc(COFF_ObjWriter *obj_writer, COFF_ObjSection * return reloc; } +internal COFF_ObjReloc * +coff_obj_writer_section_push_reloc_addr(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol) +{ + COFF_RelocType reloc_type = 0; + switch (obj_writer->machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X64: reloc_type = COFF_Reloc_X64_Addr64; break; + default: { NotImplemented; } break; + } + return coff_obj_writer_section_push_reloc(obj_writer, sect, apply_off, symbol, reloc_type); +} + +internal COFF_ObjReloc * +coff_obj_writer_section_push_reloc_voff(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol) +{ + COFF_RelocType reloc_type = 0; + switch (obj_writer->machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X64: reloc_type = COFF_Reloc_X64_Addr32Nb; break; + default: { NotImplemented; } break; + } + return coff_obj_writer_section_push_reloc(obj_writer, sect, apply_off, symbol, reloc_type); +} + internal void coff_obj_writer_push_directive(COFF_ObjWriter *obj_writer, String8 directive) { diff --git a/src/coff/coff_obj_writer.h b/src/coff/coff_obj_writer.h index 56cf47e2..e537a632 100644 --- a/src/coff/coff_obj_writer.h +++ b/src/coff/coff_obj_writer.h @@ -94,11 +94,26 @@ typedef struct COFF_ObjWriter //////////////////////////////// -internal COFF_ObjWriter* coff_obj_writer_alloc(COFF_TimeStamp time_stamp, COFF_MachineType machine); -internal void coff_obj_writer_release(COFF_ObjWriter **obj_writer); -internal COFF_ObjSection* coff_obj_writer_push_section(COFF_ObjWriter *obj_writer, String8 name, COFF_SectionFlags flags, String8 data); +internal COFF_ObjWriter * coff_obj_writer_alloc(COFF_TimeStamp time_stamp, COFF_MachineType machine); +internal void coff_obj_writer_release(COFF_ObjWriter **obj_writer); + +internal COFF_ObjSection * coff_obj_writer_push_section(COFF_ObjWriter *obj_writer, String8 name, COFF_SectionFlags flags, String8 data); + internal COFF_ObjSymbol* coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_SymbolLocation loc, COFF_SymbolType type, COFF_SymStorageClass storage_class); -internal COFF_ObjReloc* coff_obj_writer_section_push_reloc(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol, COFF_RelocType reloc_type); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_extern(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSection *section); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_static(COFF_ObjWriter *obj_writer, String8 name, U32 off, COFF_ObjSection *section); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_secdef(COFF_ObjWriter *obj_writer, COFF_ObjSection *section, COFF_ComdatSelectType selection); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_weak(COFF_ObjWriter *obj_writer, String8 name, COFF_WeakExtType characteristics, COFF_ObjSymbol *tag); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_abs(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_SymStorageClass storage_class); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_undef(COFF_ObjWriter *obj_writer, String8 name); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_undef_func(COFF_ObjWriter *obj_writer, String8 name); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_undef_sect(COFF_ObjWriter *obj_writer, String8 name, U32 value); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_sect(COFF_ObjWriter *obj_writer, String8 name, COFF_ObjSection *sect); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_common(COFF_ObjWriter *obj_writer, String8 name, U32 size); + +internal COFF_ObjReloc * coff_obj_writer_section_push_reloc(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol, COFF_RelocType reloc_type); +internal COFF_ObjReloc * coff_obj_writer_section_push_reloc_addr(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol); +internal COFF_ObjReloc * coff_obj_writer_section_push_reloc_voff(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol); #endif // COFF_OBJ_WRITER_H diff --git a/src/linker/base_ext/base_arena.c b/src/linker/base_ext/base_arena.c index 79471dfb..669cf47f 100644 --- a/src/linker/base_ext/base_arena.c +++ b/src/linker/base_ext/base_arena.c @@ -1,17 +1,6 @@ // Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -internal String8 -push_cstr(Arena *arena, String8 str) -{ - U64 buffer_size = str.size + 1; - U8 *buffer = push_array_no_zero(arena, U8, buffer_size); - MemoryCopy(buffer, str.str, str.size); - buffer[str.size] = 0; - String8 result = str8(buffer, buffer_size); - return result; -} - internal U32 * push_u32(Arena *arena, U32 value) { diff --git a/src/linker/hash_table.c b/src/linker/hash_table.c index bdc32ac3..964506aa 100644 --- a/src/linker/hash_table.c +++ b/src/linker/hash_table.c @@ -329,6 +329,19 @@ keys_from_hash_table_u64(Arena *arena, HashTable *ht) return result; } +internal String8 * +keys_from_hash_table_string(Arena *arena, HashTable *ht) +{ + String8 *result = push_array_no_zero(arena, String8, ht->count); + for (U64 bucket_idx = 0, cursor = 0; bucket_idx < ht->cap; ++bucket_idx) { + for (BucketNode *n = ht->buckets[bucket_idx].first; n != 0; n = n->next) { + Assert(cursor < ht->count); + result[cursor++] = n->v.key_string; + } + } + return result; +} + internal KeyValuePair * key_value_pairs_from_hash_table(Arena *arena, HashTable *ht) { diff --git a/src/linker/hash_table.h b/src/linker/hash_table.h index cc65cbf5..504aedc6 100644 --- a/src/linker/hash_table.h +++ b/src/linker/hash_table.h @@ -79,6 +79,7 @@ internal B32 hash_table_search_path_u64(HashTable *ht, String8 key, U64 *value_o internal U32 * keys_from_hash_table_u32 (Arena *arena, HashTable *ht); internal U64 * keys_from_hash_table_u64 (Arena *arena, HashTable *ht); +internal String8 keys_from_hash_table_str8 (Arena *arena, HashTable *ht); internal KeyValuePair * key_value_pairs_from_hash_table(Arena *arena, HashTable *ht); internal void * values_from_hash_table_raw(Arena *arena, HashTable *ht); diff --git a/src/linker/lnk.c b/src/linker/lnk.c index ecf53d44..7fec2c93 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -41,6 +41,9 @@ #include "coff/coff_obj_writer.h" #include "coff/coff_lib_writer.h" #include "pe/pe.h" +#include "pe/pe_section_flags.h" +#include "pe/pe_make_import_table.h" +#include "pe/pe_make_export_table.h" #include "codeview/codeview.h" #include "codeview/codeview_parse.h" #include "codeview/codeview_enum.h" @@ -59,6 +62,8 @@ #include "coff/coff_obj_writer.c" #include "coff/coff_lib_writer.c" #include "pe/pe.c" +#include "pe/pe_make_import_table.c" +#include "pe/pe_make_export_table.c" #include "codeview/codeview.c" #include "codeview/codeview_enum.c" #include "codeview/codeview_parse.c" @@ -119,9 +124,6 @@ #include "lnk_io.h" #include "lnk_cmd_line.h" #include "lnk_input.h" -#include "lnk_image_section_flags.h" -#include "lnk_import_table.h" -#include "lnk_export_table.h" #include "lnk_config.h" #include "lnk_symbol_table.h" #include "lnk_section_table.h" @@ -137,8 +139,6 @@ #include "lnk_io.c" #include "lnk_cmd_line.c" #include "lnk_input.c" -#include "lnk_import_table.c" -#include "lnk_export_table.c" #include "lnk_config.c" #include "lnk_symbol_table.c" #include "lnk_section_table.c" @@ -425,8 +425,8 @@ lnk_serialize_pe_resource_tree(COFF_ObjWriter *obj_writer, PE_ResourceDir *root_ stack->coff_entry_arr[1] = 0; } - COFF_ObjSection *rsrc1 = coff_obj_writer_push_section(obj_writer, str8_lit(".rsrc$01"), LNK_RSRC1_SECTION_FLAGS, str8_zero()); - COFF_ObjSection *rsrc2 = coff_obj_writer_push_section(obj_writer, str8_lit(".rsrc$02"), LNK_RSRC2_SECTION_FLAGS, str8_zero()); + COFF_ObjSection *rsrc1 = coff_obj_writer_push_section(obj_writer, str8_lit(".rsrc$01"), PE_RSRC1_SECTION_FLAGS, str8_zero()); + COFF_ObjSection *rsrc2 = coff_obj_writer_push_section(obj_writer, str8_lit(".rsrc$02"), PE_RSRC2_SECTION_FLAGS, str8_zero()); for (; stack; ) { for (; stack->arr_idx < ArrayCount(stack->res_arr); stack->arr_idx += 1) { @@ -635,7 +635,7 @@ lnk_add_resource_debug_s(COFF_ObjWriter *obj_writer, str8_serial_push_align(scratch.arena, &sub_sect_srl, CV_C13SubSectionAlign); String8 sub_sect_data = str8_serial_end(obj_writer->arena, &sub_sect_srl); - coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS, sub_sect_data); + coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS, sub_sect_data); scratch_end(scratch); ProfEnd(); @@ -749,7 +749,7 @@ lnk_make_linker_coff_obj(Arena *arena, String8 obj; { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); - coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); obj = coff_obj_writer_serialize(arena, obj_writer); coff_obj_writer_release(&obj_writer); } @@ -773,7 +773,7 @@ lnk_push_pe_debug_data_directory(COFF_ObjWriter *obj_writer, dir->size = data_size; //dir->voff = 0; // relocated through 'data_symbol' //dir->foff = 0; // relocated through 'data_symbol' - COFF_ObjSection *debug_dir_sect = coff_obj_writer_push_section(obj_writer, dir_name, LNK_DATA_SECTION_FLAGS, str8_struct(dir)); + COFF_ObjSection *debug_dir_sect = coff_obj_writer_push_section(obj_writer, dir_name, PE_DATA_SECTION_FLAGS, str8_struct(dir)); coff_obj_writer_section_push_reloc(obj_writer, debug_dir_sect, OffsetOf(PE_DebugDirectory, voff), data_symbol, COFF_Reloc_X64_Addr32Nb); coff_obj_writer_section_push_reloc(obj_writer, debug_dir_sect, OffsetOf(PE_DebugDirectory, foff), data_symbol, COFF_Reloc_X64_Abs); } @@ -782,8 +782,8 @@ internal String8 lnk_make_debug_directory_obj(Arena *arena, LNK_Config *config) { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, config->machine); - COFF_ObjSection *sect_a = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINKER_DEBUG_DIR$a"), LNK_DATA_SECTION_FLAGS, str8_zero()); - COFF_ObjSection *sect_z = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINKER_DEBUG_DIR$z"), LNK_DATA_SECTION_FLAGS, str8_zero()); + COFF_ObjSection *sect_a = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINKER_DEBUG_DIR$a"), PE_DATA_SECTION_FLAGS, str8_zero()); + COFF_ObjSection *sect_z = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINKER_DEBUG_DIR$z"), PE_DATA_SECTION_FLAGS, str8_zero()); String8 obj = coff_obj_writer_serialize(arena, obj_writer); coff_obj_writer_release(&obj_writer); return obj; @@ -794,7 +794,7 @@ lnk_make_debug_directory_pdb_obj(Arena *arena, LNK_Config *config) { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, config->machine); String8 debug_pdb_data = pe_make_debug_header_pdb70(obj_writer->arena, config->guid, config->age, config->pdb_alt_path); - COFF_ObjSection *debug_pdb_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$z"), LNK_DATA_SECTION_FLAGS, debug_pdb_data); + COFF_ObjSection *debug_pdb_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$z"), PE_DATA_SECTION_FLAGS, debug_pdb_data); COFF_ObjSymbol *debug_pdb_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("PDB_DEBUG_HEADER_70"), 0, debug_pdb_sect); lnk_push_pe_debug_data_directory(obj_writer, debug_pdb_symbol, debug_pdb_data.size, str8_lit(".RAD_LINKER_DEBUG_DIR$PDB"), PE_DebugDirectoryType_CODEVIEW, config->time_stamp); String8 obj = coff_obj_writer_serialize(arena, obj_writer); @@ -806,7 +806,7 @@ lnk_make_debug_directory_rdi_obj(Arena *arena, LNK_Config *config) { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, COFF_MachineType_Unknown); String8 debug_rdi_data = pe_make_debug_header_rdi(obj_writer->arena, config->guid, config->rad_debug_alt_path); - COFF_ObjSection *debug_rdi_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$z"), LNK_DATA_SECTION_FLAGS, debug_rdi_data); + COFF_ObjSection *debug_rdi_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$z"), PE_DATA_SECTION_FLAGS, debug_rdi_data); COFF_ObjSymbol *debug_rdi_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("RDI_DEBUG_HEADER"), 0, debug_rdi_sect); lnk_push_pe_debug_data_directory(obj_writer, debug_rdi_symbol, debug_rdi_data.size, str8_lit("RAD_LINKER_DEBUG_DIR$RDI"), PE_DebugDirectoryType_CODEVIEW, config->time_stamp); String8 obj = coff_obj_writer_serialize(arena, obj_writer); @@ -871,10 +871,10 @@ lnk_push_loaded_lib(Arena *arena, HashTable *loaded_lib_ht, String8 path) } internal void -lnk_push_export(Arena *arena, HashTable *export_ht, LNK_ExportParseList *export_list, String8List *include_symbol_list, LNK_ExportParse export_parse) +lnk_push_export(Arena *arena, HashTable *export_ht, PE_ExportParseList *export_list, String8List *include_symbol_list, PE_ExportParse export_parse) { - LNK_ExportParseNode *exp_n = 0; - String8 export_name = lnk_name_from_export_parse(&export_parse); + PE_ExportParseNode *exp_n = 0; + String8 export_name = pe_name_from_export_parse(&export_parse); hash_table_search_string_raw(export_ht, export_name, &exp_n); if (exp_n == 0) { @@ -884,12 +884,12 @@ lnk_push_export(Arena *arena, HashTable *export_ht, LNK_ExportParseList *export_ } // push new export - exp_n = lnk_export_parse_list_push(arena, export_list, export_parse); + exp_n = pe_export_parse_list_push(arena, export_list, export_parse); hash_table_push_string_raw(arena, export_ht, export_name, exp_n); } else { B32 is_ambiguous = 1; - LNK_ExportParse *extant_export = &exp_n->data; + PE_ExportParse *extant_export = &exp_n->data; if (extant_export->alias.size && export_parse.alias.size && !str8_match(extant_export->alias, export_parse.alias, 0)) { goto report; @@ -2066,9 +2066,9 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S // init section table // LNK_SectionTable *sectab = lnk_section_table_alloc(); - lnk_section_table_push(sectab, str8_lit(".text"), LNK_TEXT_SECTION_FLAGS); - lnk_section_table_push(sectab, str8_lit(".data"), LNK_DATA_SECTION_FLAGS); - lnk_section_table_push(sectab, str8_lit(".rdata"), LNK_RDATA_SECTION_FLAGS); + lnk_section_table_push(sectab, str8_lit(".text"), PE_TEXT_SECTION_FLAGS); + lnk_section_table_push(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); + lnk_section_table_push(sectab, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS); // // obj list -> array @@ -2392,9 +2392,9 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S ProfBeginV("Assign Common Block Offsets [count %llu]", common_block_contribs_count); // search/push .data - common_block_sect = lnk_section_table_search(sectab, str8_lit(".data"), LNK_DATA_SECTION_FLAGS); + common_block_sect = lnk_section_table_search(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); if (common_block_sect == 0) { - common_block_sect = lnk_section_table_push(sectab, str8_lit(".data"), LNK_DATA_SECTION_FLAGS); + common_block_sect = lnk_section_table_push(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); } // sort common blocks from largest to smallest for tighter packing @@ -2742,7 +2742,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S if (~config->flags & LNK_ConfigFlag_Fixed) { String8List base_relocs_data = lnk_build_base_relocs(tp, arena, config, objs_count, objs); if (base_relocs_data.total_size) { - LNK_Section *reloc = lnk_section_table_push(sectab, str8_lit(".reloc"), LNK_RELOC_SECTION_FLAGS); + LNK_Section *reloc = lnk_section_table_push(sectab, str8_lit(".reloc"), PE_RELOC_SECTION_FLAGS); LNK_SectionContribChunk *first_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &reloc->contribs, 1); LNK_SectionContrib *sc = lnk_section_contrib_chunk_push(first_sc_chunk, 1); sc->data_list = base_relocs_data.first; @@ -2938,7 +2938,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S // patch .pdata { - LNK_Section *pdata_sect = lnk_section_table_search(sectab, str8_lit(".pdata"), LNK_PDATA_SECTION_FLAGS); + LNK_Section *pdata_sect = lnk_section_table_search(sectab, str8_lit(".pdata"), PE_PDATA_SECTION_FLAGS); if (pdata_sect) { String8 pdata = str8_substr(image_data, rng_1u64(pdata_sect->foff, pdata_sect->foff + pdata_sect->vsize)); @@ -2964,7 +2964,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S // patch export { - LNK_Section *edata_sect = lnk_section_table_search(sectab, str8_lit(".edata"), LNK_EDATA_SECTION_FLAGS); + LNK_Section *edata_sect = lnk_section_table_search(sectab, str8_lit(".edata"), PE_EDATA_SECTION_FLAGS); if (edata_sect) { PE_DataDirectory *export_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_EXPORT, sizeof(PE_DataDirectory)); export_dir->virt_off = edata_sect->voff; @@ -2974,7 +2974,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S // patch base relocs { - LNK_Section *reloc_sect = lnk_section_table_search(sectab, str8_lit(".reloc"), LNK_RELOC_SECTION_FLAGS); + LNK_Section *reloc_sect = lnk_section_table_search(sectab, str8_lit(".reloc"), PE_RELOC_SECTION_FLAGS); if (reloc_sect) { PE_DataDirectory *reloc_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_BASE_RELOC, sizeof(PE_DataDirectory)); reloc_dir->virt_off = reloc_sect->voff; @@ -3033,7 +3033,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S ProfBegin("Patch TLS Align"); // loop over .tls sections and extract max alignment - LNK_Section *tls_sect = lnk_section_table_search(sectab, str8_lit(".tls"), LNK_RDATA_SECTION_FLAGS); + LNK_Section *tls_sect = lnk_section_table_search(sectab, str8_lit(".tls"), PE_RDATA_SECTION_FLAGS); U64 tls_align = 0; for (LNK_SectionContribChunk *sc_chunk = tls_sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { @@ -3070,7 +3070,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S // patch Debug { - LNK_Section *debug_dir_sect = lnk_section_table_search(sectab, str8_lit(".RAD_LINKER_DEBUG_DIR"), LNK_RDATA_SECTION_FLAGS); + LNK_Section *debug_dir_sect = lnk_section_table_search(sectab, str8_lit(".RAD_LINKER_DEBUG_DIR"), PE_RDATA_SECTION_FLAGS); if (debug_dir_sect) { PE_DataDirectory *debug_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_DEBUG, sizeof(PE_DataDirectory)); debug_dir->virt_off = debug_dir_sect->voff; @@ -3100,7 +3100,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S // patch resources { - LNK_Section *rsrc_sect = lnk_section_table_search(sectab, str8_lit(".rsrc"), LNK_RSRC_SECTION_FLAGS); + LNK_Section *rsrc_sect = lnk_section_table_search(sectab, str8_lit(".rsrc"), PE_RSRC_SECTION_FLAGS); if (rsrc_sect) { PE_DataDirectory *rsrc_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_RESOURCES, sizeof(PE_DataDirectory)); rsrc_dir->virt_off = rsrc_sect->voff; @@ -3538,7 +3538,7 @@ lnk_run(int argc, char **argv) String8List input_disallow_lib_list = config->disallow_lib_list; String8List input_manifest_path_list = str8_list_copy(scratch.arena, &config->input_list[LNK_Input_Manifest]); String8List manifest_dep_list = str8_list_copy(scratch.arena, &config->manifest_dependency_list); - LNK_ExportParseList export_symbol_list = config->export_symbol_list; + PE_ExportParseList export_symbol_list = config->export_symbol_list; HashTable *export_ht = hash_table_init(scratch.arena, max_U16/2); LNK_AltNameList alt_name_list = config->alt_name_list; LNK_InputObjList input_obj_list = {0}; @@ -3559,11 +3559,12 @@ lnk_run(int argc, char **argv) // state LNK_SymbolTable *symtab = lnk_symbol_table_init(tp_arena); LNK_SectionTable *sectab = 0; - LNK_ImportTable *imptab_static = lnk_import_table_alloc(); - LNK_ImportTable *imptab_delayed = lnk_import_table_alloc(); + HashTable *static_imports = hash_table_init(scratch.arena, 512); + HashTable *delayed_imports = hash_table_init(scratch.arena, 512); LNK_ObjList obj_list = {0}; LNK_LibList lib_index[LNK_InputSource_Count] = {0}; Arena *ht_arena = arena_alloc(); + String8 delay_load_helper_name = {0}; HashTable *disallow_lib_ht = hash_table_init(scratch.arena, 0x100); HashTable *delay_load_dll_ht = hash_table_init(scratch.arena, 0x100); HashTable *loaded_lib_ht = hash_table_init(scratch.arena, 0x100); @@ -3618,7 +3619,7 @@ lnk_run(int argc, char **argv) // // Push config exports // - for (LNK_ExportParseNode *exp_n = config->export_symbol_list.first; exp_n != 0; exp_n = exp_n->next) { + for (PE_ExportParseNode *exp_n = config->export_symbol_list.first; exp_n != 0; exp_n = exp_n->next) { lnk_push_export(scratch.arena, export_ht, &export_symbol_list, &include_symbol_list, exp_n->data); } @@ -3651,24 +3652,56 @@ lnk_run(int argc, char **argv) for (LNK_InputImport *input = input_import_list.first; input != 0; input = input->next) { COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(input->coff_import); + // import machine compat check if (import_header.machine != config->machine) { - lnk_error(LNK_Error_IncompatibleMachine, "symbol pulls in an import with incompatible machine %S (expected %S)", + lnk_error(LNK_Error_IncompatibleMachine, "symbol %S pulled in import with incompatible machine %S (expected %S)", + import_header.func_name, coff_string_from_machine_type(import_header.machine), coff_string_from_machine_type(config->machine)); + continue; } - LNK_Symbol *thunk_symbol = push_array(symtab->arena->v[0], LNK_Symbol, 1); - thunk_symbol->type = LNK_Symbol_Import; - thunk_symbol->name = import_header.func_name; - thunk_symbol->u.coff_import = input->coff_import; + // create import stubs (later replaced with acutal imports generated by linker) + LNK_Symbol *thunk_symbol; + { + thunk_symbol = push_array(symtab->arena->v[0], LNK_Symbol, 1); + thunk_symbol->type = LNK_Symbol_Import; + thunk_symbol->name = import_header.func_name; + thunk_symbol->u.coff_import = input->coff_import; - LNK_Symbol *iat_symbol = push_array(symtab->arena->v[0], LNK_Symbol, 1); - iat_symbol->type = LNK_Symbol_Import; - iat_symbol->name = push_str8f(symtab->arena->v[0], "__imp_%S", import_header.func_name); - iat_symbol->u.coff_import = input->coff_import; + LNK_Symbol *iat_symbol = push_array(symtab->arena->v[0], LNK_Symbol, 1); + iat_symbol->type = LNK_Symbol_Import; + iat_symbol->name = push_str8f(symtab->arena->v[0], "__imp_%S", import_header.func_name); + iat_symbol->u.coff_import = input->coff_import; - lnk_symbol_table_push(symtab, thunk_symbol); - lnk_symbol_table_push(symtab, iat_symbol); + lnk_symbol_table_push(symtab, thunk_symbol); + lnk_symbol_table_push(symtab, iat_symbol); + } + + // pick imports hash table + HashTable *imports_ht; + { + B32 is_delay_load_dll = hash_table_search_path_u64(delay_load_dll_ht, import_header.dll_name, 0); + if (is_delay_load_dll) { + imports_ht = delayed_imports; + } else { + imports_ht = static_imports; + } + } + + // search DLL symbol list + String8List *import_symbols; + { + import_symbols = hash_table_search_path_raw(imports_ht, import_header.dll_name); + if (import_symbols == 0) { + import_symbols = push_array(scratch.arena, String8List, 1); + hash_table_push_path_raw(scratch.arena, imports_ht, import_header.dll_name, import_symbols); + } + hash_table_push_path_raw(scratch.arena, imports_ht, import_header.dll_name, import_symbols); + } + + // push symbol + str8_list_push(scratch.arena, import_symbols, input->coff_import); } // reset input @@ -3816,7 +3849,7 @@ lnk_run(int argc, char **argv) // /EXPORT { for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Export].first; dir != 0; dir = dir->next) { - LNK_ExportParse export_parse = {0}; + PE_ExportParse export_parse = {0}; lnk_parse_export_directive_ex(scratch.arena, dir->value_list, obj->path, obj->lib_path, &export_parse); lnk_push_export(scratch.arena, export_ht, &export_symbol_list, &include_symbol_list, export_parse); } @@ -3991,14 +4024,13 @@ lnk_run(int argc, char **argv) case State_PushDllHelperUndefSymbol: { ProfBegin("Push Dll Helper Undef Symbol"); - String8 delay_helper_name = str8_zero(); switch (config->machine) { - case COFF_MachineType_X86: delay_helper_name = str8_cstring(LNK_DELAY_LOAD_HELPER2_X86_SYMBOL_NAME); break; - case COFF_MachineType_X64: delay_helper_name = str8_cstring(LNK_DELAY_LOAD_HELPER2_SYMBOL_NAME); break; - default: NotImplemented; + case COFF_MachineType_X86: delay_load_helper_name = str8_cstring(LNK_DELAY_LOAD_HELPER2_X86_SYMBOL_NAME); break; + case COFF_MachineType_X64: delay_load_helper_name = str8_cstring(LNK_DELAY_LOAD_HELPER2_SYMBOL_NAME); break; + default: { NotImplemented; } break; } - str8_list_push(scratch.arena, &include_symbol_list, delay_helper_name); + str8_list_push(scratch.arena, &include_symbol_list, delay_load_helper_name); ProfEnd(); } break; case State_PushLinkerSymbols: { @@ -4176,52 +4208,96 @@ lnk_run(int argc, char **argv) } } break; case State_InputImportObjs: { - if (input_import_list.count) { - ProfBegin("Build Import Table"); + ProfBegin("Build Import Table"); - // warn about unused delayloads - if (config->flags & LNK_ConfigFlag_CheckUnusedDelayLoadDll) { - if (imptab_delayed) { - for (String8Node *node = config->delay_load_dll_list.first; node != 0; node = node->next) { - LNK_ImportDLL *dll = lnk_import_table_search_dll(imptab_delayed, node->string); - if (dll == 0) { - lnk_error(LNK_Warning_UnusedDelayLoadDll, "/DELAYLOAD: %S found no imports", node->string); - } - } + // warn about unused delayloads + if (config->flags & LNK_ConfigFlag_CheckUnusedDelayLoadDll) { + for (String8Node *dll_name_n = config->delay_load_dll_list.first; dll_name_n != 0; dll_name_n = dll_name_n->next) { + if (!hash_table_search_string_raw(delayed_imports, dll_name_n->string, 0)) { + lnk_error(LNK_Warning_UnusedDelayLoadDll, "/DELAYLOAD: %S found no imports", dll_name_n->string); } } + } - // make and input static imports - String8Array import_objs_static = lnk_make_import_dlls_static(scratch.arena, imptab_static, config->machine, str8_skip_last_slash(config->image_name)); - for (U64 i = 0; i < import_objs_static.count; i += 1) { - LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); - input->path = str8_lit("* Import Obj *"); - input->input_idx = i; - input->data = import_objs_static.v[i]; - } - - // make and input delayed imports + // make and input delayed imports + if (delayed_imports->count) { + COFF_TimeStamp time_stamp = COFF_TimeStamp_Max; B32 emit_biat = config->import_table_emit_biat == LNK_SwitchState_Yes; B32 emit_uiat = config->import_table_emit_uiat == LNK_SwitchState_Yes; - String8Array import_objs_delayed = lnk_make_import_dlls_delayed(scratch.arena, imptab_delayed, config->machine, str8_skip_last_slash(config->image_name), emit_biat, emit_uiat); - for (U64 i = 0; i < import_objs_delayed.count; i += 1) { - LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); - input->path = str8_lit("* Import Obj *"); - input->input_idx = import_objs_static.count + i; - input->data = import_objs_delayed.v[i]; - } + String8 *dll_names = keys_from_hash_table_string(scratch.arena, delayed_imports); + String8List *dll_import_headers = values_from_hash_table_raw(scratch.arena, delayed_imports); - ProfEnd(); + for (U64 dll_idx = 0; dll_idx < delayed_imports->count; dll_idx += 1) { + String8 import_debug_symbols = lnk_make_dll_import_debug_symbols(scratch.arena, config->machine, dll_names[dll_idx]); + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->input_idx = input_obj_list.count; + input->data = pe_make_import_dll_obj_delayed(scratch.arena, time_stamp, config->machine, dll_names[dll_idx], delay_load_helper_name, import_debug_symbols, dll_import_headers[dll_idx], emit_biat, emit_uiat); + input->path = dll_names[dll_idx]; + } + String8 linker_debug_symbols = lnk_make_linker_debug_symbols(scratch.arena, config->machine); + { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->input_idx = input_obj_list.count; + input->data = pe_make_import_entry_obj(scratch.arena, config->image_name, time_stamp, config->machine, linker_debug_symbols); + input->path = str8_lit("* Delayed Import Entry Obj *"); + } + { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->input_idx = input_obj_list.count; + input->data = pe_make_null_import_descriptor_obj(scratch.arena, time_stamp, config->machine, linker_debug_symbols); + input->path = str8_lit("* Delayed Null Import Descriptor *"); + } + { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->input_idx = input_obj_list.count; + input->data = pe_make_null_thunk_data_obj(scratch.arena, config->image_name, time_stamp, config->machine, linker_debug_symbols); + input->path = str8_lit("* Delayed Null Thunk Data *"); + } } + + // make and input static imports + if (static_imports->count) { + COFF_TimeStamp time_stamp = COFF_TimeStamp_Max; + String8 *dll_names = keys_from_hash_table_string(scratch.arena, static_imports); + String8List *dll_import_headers = values_from_hash_table_raw(scratch.arena, static_imports); + for (U64 dll_idx = 0; dll_idx < static_imports->count; dll_idx += 1) { + String8 import_debug_symbols = lnk_make_dll_import_debug_symbols(scratch.arena, config->machine, dll_names[dll_idx]); + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->input_idx = input_obj_list.count; + input->data = pe_make_import_dll_obj_static(scratch.arena, time_stamp, config->machine, dll_names[dll_idx], import_debug_symbols, dll_import_headers[dll_idx]); + input->path = dll_names[dll_idx]; + } + String8 linker_debug_symbols = lnk_make_linker_debug_symbols(scratch.arena, config->machine); + { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->input_idx = input_obj_list.count; + input->data = pe_make_import_entry_obj(scratch.arena, config->image_name, time_stamp, config->machine, linker_debug_symbols); + input->path = str8_lit("* Import Entry Obj *"); + } + { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->input_idx = input_obj_list.count; + input->data = pe_make_null_import_descriptor_obj(scratch.arena, time_stamp, config->machine, linker_debug_symbols); + input->path = str8_lit("* Null Import Descriptor *"); + } + { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->input_idx = input_obj_list.count; + input->data = pe_make_null_thunk_data_obj(scratch.arena, config->image_name, time_stamp, config->machine, linker_debug_symbols); + input->path = str8_lit("* Null Thunk Data *"); + } + } + + ProfEnd(); } break; case State_InputExportObjs: { if (export_symbol_list.count) { ProfBegin("Build Export Table"); - LNK_ExportParseList resolved_exports = {0}; - for (LNK_ExportParseNode *exp_n = export_symbol_list.first, *exp_n_next; exp_n != 0; exp_n = exp_n_next) { + PE_ExportParseList resolved_exports = {0}; + for (PE_ExportParseNode *exp_n = export_symbol_list.first, *exp_n_next; exp_n != 0; exp_n = exp_n_next) { exp_n_next = exp_n->next; - LNK_ExportParse *exp = &exp_n->data; + PE_ExportParse *exp = &exp_n->data; if (!exp->is_forwarder) { // filter out unresolved exports @@ -4255,15 +4331,16 @@ lnk_run(int argc, char **argv) } // push resolved export - lnk_export_parse_list_push_node(&resolved_exports, exp_n); + pe_export_parse_list_push_node(&resolved_exports, exp_n); } - String8 edata_obj = lnk_make_edata_obj(scratch.arena, symtab, str8_skip_last_slash(config->image_name), config->machine, resolved_exports); + PE_FinalizedExports finalized_exports = pe_finalize_export_list(scratch.arena, resolved_exports); + String8 edata_obj = pe_make_edata_obj(scratch.arena, str8_skip_last_slash(config->image_name), COFF_TimeStamp_Max, config->machine, finalized_exports); LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); - input->path = str8_lit("* Exports *"); - input->dedup_id = input->path; - input->data = edata_obj; + input->path = str8_lit("* Exports *"); + input->dedup_id = input->path; + input->data = edata_obj; ProfEnd(); } @@ -4420,7 +4497,8 @@ lnk_run(int argc, char **argv) case State_BuildImpLib: { ProfBegin("Build Imp Lib"); lnk_timer_begin(LNK_Timer_Lib); - String8List lib_list = lnk_build_import_lib(tp_arena->v[0], config->machine, config->time_stamp, config->image_name, export_symbol_list); + String8 linker_debug_symbols = lnk_make_linker_debug_symbols(scratch.arena, config->machine); + String8List lib_list = pe_make_import_lib(tp_arena->v[0], config->machine, config->time_stamp, str8_skip_last_slash(config->image_name), linker_debug_symbols, export_symbol_list); lnk_write_data_list_to_file_path(config->imp_lib_name, str8_zero(), lib_list); lnk_timer_end(LNK_Timer_Lib); ProfEnd(); diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 2a1b1808..89842710 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -31,27 +31,6 @@ // PE_TLSHeader32 or PE_TLSHeader64, according to machine type. #define LNK_TLS_SYMBOL_NAME "_tls_used" -// --- Default Section Flags -------------------------------------------------- - -#define LNK_TEXT_SECTION_FLAGS (COFF_SectionFlag_CntCode|COFF_SectionFlag_MemExecute|COFF_SectionFlag_MemRead) -#define LNK_DATA_SECTION_FLAGS (COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite) -#define LNK_RDATA_SECTION_FLAGS (COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead) -#define LNK_BSS_SECTION_FLAGS (COFF_SectionFlag_CntUninitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite) -#define LNK_IDATA_SECTION_FLAGS LNK_DATA_SECTION_FLAGS -#define LNK_DEBUG_DIR_SECTION_FLAGS LNK_DATA_SECTION_FLAGS -#define LNK_RSRC_SECTION_FLAGS LNK_DATA_SECTION_FLAGS -#define LNK_RSRC1_SECTION_FLAGS (LNK_DATA_SECTION_FLAGS | COFF_SectionFlag_Align4Bytes) -#define LNK_RSRC2_SECTION_FLAGS (LNK_DATA_SECTION_FLAGS | COFF_SectionFlag_Align4Bytes) -#define LNK_XDATA_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS -#define LNK_PDATA_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS -#define LNK_EDATA_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS -#define LNK_GFIDS_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS -#define LNK_GIATS_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS -#define LNK_GLJMP_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS -#define LNK_GEHCONT_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS -#define LNK_RELOC_SECTION_FLAGS (LNK_RDATA_SECTION_FLAGS | COFF_SectionFlag_MemDiscardable) -#define LNK_DEBUG_SECTION_FLAGS (LNK_RDATA_SECTION_FLAGS | COFF_SectionFlag_MemDiscardable) - // --- Base Reloc -------------------------------------------------------------- typedef struct LNK_BaseRelocPage diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 7df1713a..632147b9 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -801,6 +801,122 @@ lnk_parse_alt_name_directive_list(Arena *arena, String8List list, LNK_AltNameLis return 0; } +internal B32 +lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_path, String8 lib_path, PE_ExportParse *export_out) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(&arena, 1); + B32 is_parsed = 0; + + // parse "alias=name" + String8 name = {0}; + String8 alias = {0}; + String8List flags = {0}; + { + String8List alias_name_split = str8_split_by_string_chars(scratch.arena, directive.first->string, str8_lit("="), 0); + if (alias_name_split.node_count == 2) { + alias = alias_name_split.first->string; + name = alias_name_split.last->string; + } else if (alias_name_split.node_count == 1) { + name = alias_name_split.first->string; + } else { + String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); + lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); + goto exit; + } + + flags = directive; + str8_list_pop_front(&flags); + } + + // discard alias to itself + if (str8_match(name, alias, 0)) { + alias = str8_zero(); + } + + // does directive have ordinal? + U16 ordinal16 = 0; + String8 ordinal = {0}; + String8 noname_flag = {0}; + if (str8_match(str8_prefix(str8_list_first(&flags), 1), str8_lit("@"), 0)) { + // parse ordinal + ordinal = str8_skip(str8_list_pop_front(&flags)->string, 1); + if (str8_is_integer(ordinal, 10)) { + U64 ordinal64 = u64_from_str8(ordinal, 10); + if (ordinal64 <= max_U16) { + ordinal16 = (U16)ordinal64; + } else { + String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); + lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "ordinal value must fit into 16-bit integer, \"/EXPORT:%S\"", d); + goto exit; + } + } else { + String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); + lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); + goto exit; + } + + // detect NONAME flag + if (str8_match(str8_list_first(&flags), str8_lit("NONAME"), StringMatchFlag_CaseInsensitive)) { + noname_flag = str8_list_pop_front(&flags)->string; + } + } + + // detect PRIVATE flag + String8 private_flag = {0}; + if (str8_match(str8_list_first(&flags), str8_lit("PRIVATE"), StringMatchFlag_CaseInsensitive)) { + private_flag = str8_list_pop_front(&flags)->string; + } + + // parse export type + COFF_ImportType type = COFF_ImportHeader_Code; + if (flags.node_count) { + type = coff_import_header_type_from_string(str8_list_pop_front(&flags)->string); + if (type == COFF_ImportType_Invalid) { + String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); + lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); + goto exit; + } + } + + // are there leftover nodes? + if (flags.node_count != 0) { + String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); + lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); + goto exit; + } + + // fill out export + export_out->obj_path = obj_path; + export_out->lib_path = lib_path; + export_out->name = push_str8_copy(arena, name); + export_out->alias = push_str8_copy(arena, alias); + export_out->type = type; + export_out->ordinal = ordinal16; + export_out->is_ordinal_assigned = ordinal.size > 0; + export_out->is_noname_present = noname_flag.size > 0; + export_out->is_private = private_flag.size > 0; + export_out->is_forwarder = str8_find_needle(name, 0, str8_lit("."), 0) < name.size; + + is_parsed = 1; + +exit:; + scratch_end(scratch); + ProfEnd(); + return is_parsed; +} + +internal B32 +lnk_parse_export_directive(Arena *arena, String8 directive, String8 obj_path, String8 lib_path, PE_ExportParse *export_out) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List split_directive = str8_split_by_string_chars(scratch.arena, directive, str8_lit(","), 0); + B32 is_parsed = lnk_parse_export_directive_ex(arena, split_directive, obj_path, lib_path, export_out); + scratch_end(scratch); + return is_parsed; +} + + internal LNK_MergeDirectiveNode * lnk_merge_directive_list_push(Arena *arena, LNK_MergeDirectiveList *list, LNK_MergeDirective data) { @@ -1062,9 +1178,9 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_Export: { - LNK_ExportParse export_parse = {0}; + PE_ExportParse export_parse = {0}; if (lnk_parse_export_directive_ex(arena, value_strings, obj_path, lib_path, &export_parse)) { - lnk_export_parse_list_push(arena, &config->export_symbol_list, export_parse); + pe_export_parse_list_push(arena, &config->export_symbol_list, export_parse); } } break; diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index 20946905..d139cf2d 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -336,7 +336,7 @@ typedef struct LNK_Config LNK_TypeNameHashMode pdb_hash_type_names; String8 pdb_hash_type_name_map; U64 pdb_hash_type_name_length; - LNK_ExportParseList export_symbol_list; + PE_ExportParseList export_symbol_list; String8List input_list[LNK_Input_Count]; String8List input_default_lib_list; String8List disallow_lib_list; @@ -559,6 +559,9 @@ internal void lnk_alt_name_list_concat_in_place(LNK_AltNameList *list, LNK_ internal B32 lnk_parse_alt_name_directive (Arena *arena, String8 input, LNK_AltNameList *list_out); internal String8 * lnk_parse_alt_name_directive_list(Arena *arena, String8List list, LNK_AltNameList *list_out); +internal B32 lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_path, String8 lib_path, PE_ExportParse *export_out); +internal B32 lnk_parse_export_directive(Arena *arena, String8 directive, String8 obj_path, String8 lib_path, PE_ExportParse *export_out); + internal LNK_MergeDirectiveNode * lnk_merge_directive_list_push(Arena *arena, LNK_MergeDirectiveList *list, LNK_MergeDirective data); internal B32 lnk_parse_merge_directive(String8 string, LNK_MergeDirective *parse_out); diff --git a/src/linker/lnk_debug_helper.c b/src/linker/lnk_debug_helper.c index 3e964c76..b4190db4 100644 --- a/src/linker/lnk_debug_helper.c +++ b/src/linker/lnk_debug_helper.c @@ -36,4 +36,43 @@ lnk_make_debug_s(Arena *arena, CV_SymbolList symbol_list) return debug_s_data; } +internal String8 +lnk_make_linker_debug_symbols(Arena *arena, COFF_MachineType machine) +{ + Temp scratch = scratch_begin(&arena, 1); + CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; + String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); + cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); + String8 debug_symbols = lnk_make_debug_s(arena, symbol_list); + scratch_end(scratch); + return debug_symbols; +} + +internal String8 +lnk_make_dll_import_debug_symbols(Arena *arena, COFF_MachineType machine, String8 dll_name) +{ + Temp scratch = scratch_begin(&arena,1); + + CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; + + // S_OBJ + String8 obj_data = cv_make_obj_name(scratch.arena, dll_name, 0); + cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_OBJNAME, obj_data); + + // S_COMPILE3 + String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); + cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); + + // S_END + cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_END, str8_zero()); + + // TODO: add thunks + + // serialize symbols + String8 debug_symbols = lnk_make_debug_s(arena, symbol_list); + + scratch_end(scratch); + return debug_symbols; +} + diff --git a/src/linker/lnk_export_table.c b/src/linker/lnk_export_table.c deleted file mode 100644 index e3866ab9..00000000 --- a/src/linker/lnk_export_table.c +++ /dev/null @@ -1,451 +0,0 @@ -// Copyright (c) 2025 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -internal String8 -lnk_name_from_export_parse(LNK_ExportParse *exp) -{ - String8 name; - if (exp->is_forwarder) { - name = exp->alias; - } else if (exp->alias.size) { - name = exp->alias; - } else { - name = exp->name; - } - return name; -} - -internal B32 -lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_path, String8 lib_path, LNK_ExportParse *export_out) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - B32 is_parsed = 0; - - // parse "alias=name" - String8 name = {0}; - String8 alias = {0}; - String8List flags = {0}; - { - String8List alias_name_split = str8_split_by_string_chars(scratch.arena, directive.first->string, str8_lit("="), 0); - if (alias_name_split.node_count == 2) { - alias = alias_name_split.first->string; - name = alias_name_split.last->string; - } else if (alias_name_split.node_count == 1) { - name = alias_name_split.first->string; - } else { - String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); - lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); - goto exit; - } - - flags = directive; - str8_list_pop_front(&flags); - } - - // discard alias to itself - if (str8_match(name, alias, 0)) { - alias = str8_zero(); - } - - // does directive have ordinal? - U16 ordinal16 = 0; - String8 ordinal = {0}; - String8 noname_flag = {0}; - if (str8_match(str8_prefix(str8_list_first(&flags), 1), str8_lit("@"), 0)) { - // parse ordinal - ordinal = str8_skip(str8_list_pop_front(&flags)->string, 1); - if (str8_is_integer(ordinal, 10)) { - U64 ordinal64 = u64_from_str8(ordinal, 10); - if (ordinal64 <= max_U16) { - ordinal16 = (U16)ordinal64; - } else { - String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); - lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "ordinal value must fit into 16-bit integer, \"/EXPORT:%S\"", d); - goto exit; - } - } else { - String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); - lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); - goto exit; - } - - // detect NONAME flag - if (str8_match(str8_list_first(&flags), str8_lit("NONAME"), StringMatchFlag_CaseInsensitive)) { - noname_flag = str8_list_pop_front(&flags)->string; - } - } - - // detect PRIVATE flag - String8 private_flag = {0}; - if (str8_match(str8_list_first(&flags), str8_lit("PRIVATE"), StringMatchFlag_CaseInsensitive)) { - private_flag = str8_list_pop_front(&flags)->string; - } - - // parse export type - COFF_ImportType type = COFF_ImportHeader_Code; - if (flags.node_count) { - type = coff_import_header_type_from_string(str8_list_pop_front(&flags)->string); - if (type == COFF_ImportType_Invalid) { - String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); - lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); - goto exit; - } - } - - // are there leftover nodes? - if (flags.node_count != 0) { - String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); - lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); - goto exit; - } - - // fill out export - export_out->obj_path = obj_path; - export_out->lib_path = lib_path; - export_out->name = push_str8_copy(arena, name); - export_out->alias = push_str8_copy(arena, alias); - export_out->type = type; - export_out->ordinal = ordinal16; - export_out->is_ordinal_assigned = ordinal.size > 0; - export_out->is_noname_present = noname_flag.size > 0; - export_out->is_private = private_flag.size > 0; - export_out->is_forwarder = str8_find_needle(name, 0, str8_lit("."), 0) < name.size; - - is_parsed = 1; - -exit:; - scratch_end(scratch); - ProfEnd(); - return is_parsed; -} - -internal B32 -lnk_parse_export_directive(Arena *arena, String8 directive, String8 obj_path, String8 lib_path, LNK_ExportParse *export_out) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List split_directive = str8_split_by_string_chars(scratch.arena, directive, str8_lit(","), 0); - B32 is_parsed = lnk_parse_export_directive_ex(arena, split_directive, obj_path, lib_path, export_out); - scratch_end(scratch); - return is_parsed; -} - -internal LNK_ExportParsePtrArray -lnk_array_from_export_list(Arena *arena, LNK_ExportParseList list) -{ - LNK_ExportParsePtrArray result = {0}; - result.v = push_array_no_zero(arena, LNK_ExportParse *, list.count); - for (LNK_ExportParseNode *exp = list.first; exp != 0; exp = exp->next) { - result.v[result.count++] = &exp->data; - } - return result; -} - -internal void -lnk_export_parse_list_push_node(LNK_ExportParseList *list, LNK_ExportParseNode *node) -{ - SLLQueuePush(list->first, list->last, node); - list->count += 1; -} - -internal LNK_ExportParseNode * -lnk_export_parse_list_push(Arena *arena, LNK_ExportParseList *list, LNK_ExportParse data) -{ - LNK_ExportParseNode *node = push_array(arena, LNK_ExportParseNode, 1); - node->data = data; - lnk_export_parse_list_push_node(list, node); - return node; -} - -internal void -lnk_export_parse_list_concat_in_place(LNK_ExportParseList *list, LNK_ExportParseList *to_concat) -{ - SLLConcatInPlace(list, to_concat); -} - -internal int -lnk_named_export_is_before(void *raw_a, void *raw_b) -{ - LNK_ExportParse *a = *(LNK_ExportParse **)raw_a; - LNK_ExportParse *b = *(LNK_ExportParse **)raw_b; - int cmp = str8_compar_case_sensitive(&a->name, &b->name); - return cmp < 0; -} - -internal int -lnk_ordinal_export_is_before(void *raw_a, void *raw_b) -{ - LNK_ExportParse *a = raw_a; - LNK_ExportParse *b = raw_b; - return a->ordinal < b->ordinal; -} - -internal String8 -lnk_make_edata_obj(Arena *arena, - LNK_SymbolTable *symtab, - String8 image_name, - COFF_MachineType machine, - LNK_ExportParseList export_list) -{ - Temp scratch = scratch_begin(&arena, 1); - - // compute max ordinal and used ordinal flag array - U64 ordinal_low = max_U64; - B8 *is_ordinal_used = push_array(arena, B8, max_U16); - for (LNK_ExportParseNode *exp_n = export_list.first; exp_n != 0; exp_n = exp_n->next) { - LNK_ExportParse *exp = &exp_n->data; - if (exp->is_ordinal_assigned) { - ordinal_low = Min(ordinal_low, exp->ordinal); - is_ordinal_used[exp->ordinal] = 1; - } - } - - LNK_ExportParsePtrArray named_exports = {0}; - LNK_ExportParsePtrArray noname_exports = {0}; - LNK_ExportParsePtrArray forwarder_exports = {0}; - { - // group exports based on flags - LNK_ExportParseList named_exports_list = {0}; - LNK_ExportParseList noname_exports_list = {0}; - LNK_ExportParseList forwarder_exports_list = {0}; - for (LNK_ExportParseNode *exp_n = export_list.first, *exp_n_next; exp_n != 0; exp_n = exp_n_next) { - exp_n_next = exp_n->next; - if (exp_n->data.is_forwarder) { - lnk_export_parse_list_push_node(&forwarder_exports_list, exp_n); - } else if (exp_n->data.is_noname_present) { - AssertAlways(exp_n->data.is_ordinal_assigned); - lnk_export_parse_list_push_node(&noname_exports_list, exp_n); - } else { - lnk_export_parse_list_push_node(&named_exports_list, exp_n); - } - } - - // list -> array - named_exports = lnk_array_from_export_list(scratch.arena, named_exports_list); - noname_exports = lnk_array_from_export_list(scratch.arena, noname_exports_list); - forwarder_exports = lnk_array_from_export_list(scratch.arena, forwarder_exports_list); - - // sort exports - radsort(named_exports.v, named_exports.count, lnk_named_export_is_before); - radsort(noname_exports.v, noname_exports.count, lnk_ordinal_export_is_before); - radsort(forwarder_exports.v, forwarder_exports.count, lnk_named_export_is_before); - - MemoryZeroStruct(&export_list); - lnk_export_parse_list_concat_in_place(&export_list, &named_exports_list); - lnk_export_parse_list_concat_in_place(&export_list, &forwarder_exports_list); - lnk_export_parse_list_concat_in_place(&export_list, &noname_exports_list); - } - - // assign omitted ordinals - { - U16 last_ordinal = ordinal_low; - for (U64 exp_idx = 0; exp_idx < named_exports.count; exp_idx += 1) { - LNK_ExportParse *exp = named_exports.v[exp_idx]; - if (!exp->is_ordinal_assigned) { - for (; last_ordinal < max_U16 && is_ordinal_used[last_ordinal] != 0; last_ordinal += 1); - exp->ordinal = last_ordinal; - exp->is_ordinal_assigned = 1; - is_ordinal_used[last_ordinal] = 1; - } - } - for (U64 exp_idx = 0; exp_idx < forwarder_exports.count; exp_idx += 1) { - LNK_ExportParse *exp = forwarder_exports.v[exp_idx]; - if (!exp->is_ordinal_assigned) { - for (; last_ordinal < max_U16 && is_ordinal_used[last_ordinal] != 0; last_ordinal += 1); - exp->ordinal = last_ordinal; - exp->is_ordinal_assigned = 1; - is_ordinal_used[last_ordinal] = 1; - } - } - for (U64 exp_idx = 0; exp_idx < noname_exports.count; exp_idx += 1) { - LNK_ExportParse *exp = noname_exports.v[exp_idx]; - if (!exp->is_ordinal_assigned) { - exp->ordinal = last_ordinal; - exp->is_ordinal_assigned = 1; - is_ordinal_used[last_ordinal] = 1; - } - } - } - - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, machine); - - // push sections - COFF_ObjSection *voff_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$2"), LNK_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_zero()); - COFF_ObjSection *name_voff_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$3"), LNK_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_zero()); - COFF_ObjSection *ordinal_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$4"), LNK_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); - COFF_ObjSection *string_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$5"), LNK_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_zero()); - COFF_ObjSection *image_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$6"), LNK_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, push_cstr(obj_writer->arena, image_name)); - - ProfBegin("Virtual Offset Table"); - { - B8 *is_ordinal_bound = push_array(scratch.arena, B8, max_U16); - LNK_ExportParsePtrArray *all_exports[] = { &named_exports, &forwarder_exports, &noname_exports }; - - for (U64 arr_idx = 0; arr_idx < ArrayCount(all_exports); arr_idx += 1) { - for (U64 exp_idx = 0; exp_idx < all_exports[arr_idx]->count; exp_idx += 1) { - LNK_ExportParse *exp = all_exports[arr_idx]->v[exp_idx]; - if (is_ordinal_bound[exp->ordinal] == 0) { - // alloc only one slot per ordinal, so it's possible to map ordinal to a virtual offset - is_ordinal_bound[exp->ordinal] = 1; - - // create slot for the ordinal virtual offset - U64 voff_offset = voff_table_sect->data.total_size; - U32 *voff = push_array(obj_writer->arena, U32, 1); - str8_list_push(obj_writer->arena, &voff_table_sect->data, str8_struct(voff)); - - COFF_ObjSymbol *exp_symbol; - if (exp->is_forwarder) { - U64 forwarder_name_offset = string_table_sect->data.total_size; - String8 forwarder_name_cstr = push_cstr(obj_writer->arena, exp->name); - str8_list_push(obj_writer->arena, &string_table_sect->data, forwarder_name_cstr); - // symbol to the name string - exp_symbol = coff_obj_writer_push_symbol_static(obj_writer, exp->name, forwarder_name_offset, string_table_sect); - } else { - // function or global var symbol - exp_symbol = coff_obj_writer_push_symbol_undef(obj_writer, exp->name); - } - - U16 ordinal_nb = exp->ordinal - ordinal_low; - coff_obj_writer_section_push_reloc(obj_writer, voff_table_sect, ordinal_nb*sizeof(U32), exp_symbol, coff_virt_off_reloc_from_machine(machine)); - } - } - } - } - ProfEnd(); - - ProfBegin("Named & Forwarder Exports"); - { - LNK_ExportParsePtrArray *exports_with_names[] = { &named_exports, &forwarder_exports }; - - // assign hints - for (U64 arr_idx = 0, hint = 0; arr_idx < ArrayCount(exports_with_names); arr_idx += 1) { - for (U64 exp_idx = 0; exp_idx < exports_with_names[arr_idx]->count; exp_idx += 1, hint += 1) { - LNK_ExportParse *exp = exports_with_names[arr_idx]->v[exp_idx]; - exp->hint = hint; - } - } - - for (U64 arr_idx = 0; arr_idx < ArrayCount(exports_with_names); arr_idx += 1) { - LNK_ExportParsePtrArray *exports = exports_with_names[arr_idx]; - for (U64 exp_idx = 0; exp_idx < exports->count; exp_idx += 1) { - LNK_ExportParse *exp = exports->v[exp_idx]; - - String8 name = lnk_name_from_export_parse(exp); - - // store symbol name string - U64 export_name_offset = string_table_sect->data.total_size; - String8 export_name_cstr = push_cstr(obj_writer->arena, name); - str8_list_push(obj_writer->arena, &string_table_sect->data, export_name_cstr); - - // create symbol for the name string - String8 export_name_symbol_name = push_str8f(obj_writer->arena, "RAD_NAME:%S", name); - COFF_ObjSymbol *export_name_symbol = coff_obj_writer_push_symbol_extern(obj_writer, export_name_symbol_name, export_name_offset, string_table_sect); - - // create slot for export virtual offset - U64 export_name_voff_offset = name_voff_table_sect->data.total_size; - U8 *export_name_voff = push_array(obj_writer->arena, U8, sizeof(U32)); - str8_list_push(obj_writer->arena, &name_voff_table_sect->data, str8_array(export_name_voff, sizeof(U32))); - - // write string's virtual offset - coff_obj_writer_section_push_reloc(obj_writer, name_voff_table_sect, export_name_voff_offset, export_name_symbol, coff_virt_off_reloc_from_machine(machine)); - - // create and store export's ordinal - U16 *ordinal = push_array(obj_writer->arena, U16, 1); - *ordinal = exp->ordinal - ordinal_low; - str8_list_push(obj_writer->arena, &ordinal_table_sect->data, str8_struct(ordinal)); - } - } - } - ProfEnd(); - - ProfBegin("NONAME Exports"); - { - for (U64 exp_idx = 0; exp_idx < noname_exports.count; exp_idx += 1) { - // create and store export's ordinal - LNK_ExportParse *exp = noname_exports.v[exp_idx]; - U16 *ordinal = push_array(obj_writer->arena, U16, 1); - *ordinal = exp->ordinal - ordinal_low; - str8_list_push(obj_writer->arena, &ordinal_table_sect->data, str8_struct(ordinal)); - } - } - ProfEnd(); - - // fill out export table header - PE_ExportTableHeader *header = push_array(obj_writer->arena, PE_ExportTableHeader, 1); - header->time_stamp = COFF_TimeStamp_Max; - header->ordinal_base = safe_cast_u16(ordinal_low); - header->export_address_table_count = safe_cast_u32(voff_table_sect->data.node_count); - header->name_pointer_table_count = safe_cast_u32(name_voff_table_sect->data.node_count); - - // push header field's symbols - COFF_ObjSymbol *image_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_HEADER_NAME_VOFF"), 0, image_name_sect); - COFF_ObjSymbol *address_table_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_HEADER_ADDRESS_TABLE_VOFF"), 0, voff_table_sect); - COFF_ObjSymbol *name_table_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_HEADER_NAME_POINTER_VOFF"), 0, name_voff_table_sect); - COFF_ObjSymbol *ordinal_table_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_HEADER_ORDINAL_TABLE_VOFF"), 0, ordinal_table_sect); - - // push export table header section - COFF_ObjSection *header_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$1"), LNK_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_struct(header)); - coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_TABLE_HEADER"), 0, header_sect); - - // patch export table header - COFF_RelocType virt_off_reloc_type = coff_virt_off_reloc_from_machine(machine); - coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, name_voff), image_name_symbol, virt_off_reloc_type); - coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, export_address_table_voff), address_table_symbol, virt_off_reloc_type); - coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, name_pointer_table_voff), name_table_symbol, virt_off_reloc_type); - coff_obj_writer_section_push_reloc(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, ordinal_table_voff), ordinal_table_symbol, virt_off_reloc_type); - - String8 obj = coff_obj_writer_serialize(arena, obj_writer); - coff_obj_writer_release(&obj_writer); - - os_write_data_to_file_path(str8_lit("foo.obj"), obj); - - scratch_end(scratch); - return obj; -} - -internal String8List -lnk_build_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ExportParseList export_list) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - dll_name = str8_skip_last_slash(dll_name); - - // These objects appear in first three members of any lib that linker produces with /dll. - // Objects are used by MSVC linker to build import table. - String8 import_entry_obj = lnk_build_import_entry_obj(scratch.arena, dll_name, time_stamp, machine); - String8 null_import_descriptor_obj = lnk_build_null_import_descriptor_obj(scratch.arena, time_stamp, machine); - String8 null_thunk_data_obj = lnk_build_null_thunk_data_obj(scratch.arena, dll_name, time_stamp, machine); - - COFF_LibWriter *lib_writer = coff_lib_writer_alloc(); - - // push import table nulls - coff_lib_writer_push_obj(lib_writer, dll_name, import_entry_obj); - coff_lib_writer_push_obj(lib_writer, dll_name, null_import_descriptor_obj); - coff_lib_writer_push_obj(lib_writer, dll_name, null_thunk_data_obj); - - // push exports - for (LNK_ExportParseNode *exp_n = export_list.first; exp_n != 0; exp_n = exp_n->next) { - LNK_ExportParse *exp = &exp_n->data; - if (exp->is_noname_present) { - coff_lib_writer_push_export_by_ordinal(lib_writer, machine, time_stamp, dll_name, exp->type, exp->ordinal); - } else { - String8 name = lnk_name_from_export_parse(exp); - COFF_LibWriterSymbolNode *member_symbol = coff_lib_writer_push_export_by_name(lib_writer, machine, time_stamp, dll_name, exp->type, name, exp->hint); - - COFF_LibWriterSymbol imp_symbol = {0}; - imp_symbol.name = push_str8f(lib_writer->arena, "__imp_%S", name); - imp_symbol.member_idx = member_symbol->data.member_idx; - coff_lib_writer_symbol_list_push(lib_writer->arena, &lib_writer->symbol_list, imp_symbol); - } - } - - // serialize lib - String8List lib = coff_lib_writer_serialize(arena, lib_writer, COFF_TimeStamp_Max, 0, /* emit second member: */ 1); - coff_lib_writer_release(&lib_writer); - - scratch_end(scratch); - ProfEnd(); - return lib; -} - diff --git a/src/linker/lnk_export_table.h b/src/linker/lnk_export_table.h deleted file mode 100644 index 78474d61..00000000 --- a/src/linker/lnk_export_table.h +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) 2025 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#pragma once - -typedef struct LNK_ExportParse -{ - String8 obj_path; - String8 lib_path; - String8 name; - String8 alias; - COFF_ImportType type; - U16 ordinal; - U16 hint; - B32 is_ordinal_assigned; - B32 is_noname_present; - B32 is_private; - B32 is_forwarder; -} LNK_ExportParse; - -typedef struct LNK_ExportParseNode -{ - LNK_ExportParse data; - struct LNK_ExportParseNode *next; -} LNK_ExportParseNode; - -typedef struct LNK_ExportParseList -{ - U64 count; - LNK_ExportParseNode *first; - LNK_ExportParseNode *last; -} LNK_ExportParseList; - -typedef struct LNK_ExportParsePtrArray -{ - U64 count; - LNK_ExportParse **v; -} LNK_ExportParsePtrArray; - -//////////////////////////////// - -internal B32 lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_path, String8 lib_path, LNK_ExportParse *export_out); -internal B32 lnk_parse_export_directive(Arena *arena, String8 directive, String8 obj_path, String8 lib_path, LNK_ExportParse *parse_out); -internal LNK_ExportParsePtrArray lnk_array_from_export_list(Arena *arena, LNK_ExportParseList list); -internal LNK_ExportParseNode * lnk_export_parse_list_push(Arena *arena, LNK_ExportParseList *list, LNK_ExportParse data); -internal String8List lnk_build_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, LNK_ExportParseList export_list); diff --git a/src/linker/lnk_image_section_flags.h b/src/linker/lnk_image_section_flags.h deleted file mode 100644 index a237d7ce..00000000 --- a/src/linker/lnk_image_section_flags.h +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) 2025 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#pragma once - -// --- Default Section Flags -------------------------------------------------- - -#define LNK_TEXT_SECTION_FLAGS (COFF_SectionFlag_CntCode|COFF_SectionFlag_MemExecute|COFF_SectionFlag_MemRead) -#define LNK_DATA_SECTION_FLAGS (COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite) -#define LNK_RDATA_SECTION_FLAGS (COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead) -#define LNK_BSS_SECTION_FLAGS (COFF_SectionFlag_CntUninitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite) -#define LNK_IDATA_SECTION_FLAGS LNK_DATA_SECTION_FLAGS -#define LNK_DEBUG_DIR_SECTION_FLAGS LNK_DATA_SECTION_FLAGS -#define LNK_RSRC_SECTION_FLAGS LNK_DATA_SECTION_FLAGS -#define LNK_RSRC1_SECTION_FLAGS (LNK_DATA_SECTION_FLAGS | COFF_SectionFlag_Align4Bytes) -#define LNK_RSRC2_SECTION_FLAGS (LNK_DATA_SECTION_FLAGS | COFF_SectionFlag_Align4Bytes) -#define LNK_XDATA_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS -#define LNK_PDATA_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS -#define LNK_EDATA_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS -#define LNK_GFIDS_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS -#define LNK_GIATS_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS -#define LNK_GLJMP_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS -#define LNK_GEHCONT_SECTION_FLAGS LNK_RDATA_SECTION_FLAGS -#define LNK_RELOC_SECTION_FLAGS (LNK_RDATA_SECTION_FLAGS | COFF_SectionFlag_MemDiscardable) -#define LNK_DEBUG_SECTION_FLAGS (LNK_RDATA_SECTION_FLAGS | COFF_SectionFlag_MemDiscardable) - diff --git a/src/linker/lnk_import_table.h b/src/linker/lnk_import_table.h deleted file mode 100644 index 6dcd300b..00000000 --- a/src/linker/lnk_import_table.h +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) 2025 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#pragma once - -typedef struct LNK_ImportFunc -{ - struct LNK_ImportFunc *next; - struct LNK_Symbol *symbol; -} LNK_ImportFunc; - -typedef struct LNK_ImportDLL -{ - struct LNK_ImportDLL *next; - struct LNK_ImportFunc *first_func; - struct LNK_ImportFunc *last_func; - String8 name; -} LNK_ImportDLL; - -typedef struct LNK_ImportTable -{ - Arena *arena; - LNK_ImportDLL *first_dll; - LNK_ImportDLL *last_dll; - U64 dll_count; - HashTable *dll_ht; -} LNK_ImportTable; - -//////////////////////////////// - -internal LNK_ImportTable * lnk_import_table_alloc(void); -internal void lnk_import_table_release(LNK_ImportTable **imptab_ptr); -internal LNK_ImportDLL * lnk_import_table_push_dll(LNK_ImportTable *imptab, String8 dll_name, COFF_MachineType machine); -internal LNK_ImportDLL * lnk_import_table_search_dll(LNK_ImportTable *imptab, String8 dll_name); -internal LNK_ImportFunc * lnk_import_table_push_func(LNK_ImportTable *imptab, LNK_ImportDLL *dll, struct LNK_Symbol *symbol); - -internal COFF_ObjSymbol * lnk_emit_indirect_jump_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, COFF_ObjSymbol *iat_symbol, String8 thunk_name); -internal COFF_ObjSymbol * lnk_emit_load_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, COFF_ObjSymbol *imp_addr_ptr, COFF_ObjSymbol *tail_merge, String8 func_name); -internal COFF_ObjSymbol * lnk_emit_tail_merge_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, String8 dll_name, COFF_ObjSymbol *dll_import_descriptor); - -internal String8 lnk_build_import_entry_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine); -internal String8 lnk_build_null_import_descriptor_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine); -internal String8 lnk_build_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine); - -internal void lnk_emit_dll_import_debug_symbols(COFF_ObjWriter *obj_writer, String8 dll_name); -internal String8 lnk_obj_from_import_dll_static(Arena *arena, COFF_MachineType machine, LNK_ImportDLL *dll); -internal String8 lnk_obj_from_import_dll_delayed(Arena *arena, COFF_MachineType machine, LNK_ImportDLL *dll, B32 emit_biat, B32 emit_uiat); - -internal String8Array lnk_make_import_dlls_static(Arena *arena, LNK_ImportTable *imptab, COFF_MachineType machine, String8 image_name); -internal String8Array lnk_make_import_dlls_delayed(Arena *arena, LNK_ImportTable *imptab, COFF_MachineType machine, String8 image_name, B32 emit_biat, B32 emit_uiat); - diff --git a/src/natvis/base.natvis b/src/natvis/base.natvis index 644b583c..ce938f33 100644 --- a/src/natvis/base.natvis +++ b/src/natvis/base.natvis @@ -151,6 +151,8 @@ + + {{ count={count} first={first} }} count diff --git a/src/pe/pe_make_export_table.c b/src/pe/pe_make_export_table.c new file mode 100644 index 00000000..e4d37e02 --- /dev/null +++ b/src/pe/pe_make_export_table.c @@ -0,0 +1,343 @@ +// Copyright (c) 2025 Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal String8 +pe_name_from_export_parse(PE_ExportParse *exp) +{ + String8 name; + if (exp->is_forwarder) { + name = exp->alias; + } else if (exp->alias.size) { + name = exp->alias; + } else { + name = exp->name; + } + return name; +} + +internal PE_ExportParsePtrArray +pe_array_from_export_list(Arena *arena, PE_ExportParseList list) +{ + PE_ExportParsePtrArray result = {0}; + result.v = push_array_no_zero(arena, PE_ExportParse *, list.count); + for (PE_ExportParseNode *exp = list.first; exp != 0; exp = exp->next) { + result.v[result.count++] = &exp->data; + } + return result; +} + +internal void +pe_export_parse_list_push_node(PE_ExportParseList *list, PE_ExportParseNode *node) +{ + SLLQueuePush(list->first, list->last, node); + list->count += 1; +} + +internal PE_ExportParseNode * +pe_export_parse_list_push(Arena *arena, PE_ExportParseList *list, PE_ExportParse data) +{ + PE_ExportParseNode *node = push_array(arena, PE_ExportParseNode, 1); + node->data = data; + pe_export_parse_list_push_node(list, node); + return node; +} + +internal void +pe_export_parse_list_concat_in_place(PE_ExportParseList *list, PE_ExportParseList *to_concat) +{ + if (to_concat->count) { + if (list->count) { + list->last->next = to_concat->first; + list->last = to_concat->last; + } else { + list->first = to_concat->first; + list->last = to_concat->last; + } + list->count += to_concat->count; + MemoryZeroStruct(to_concat); + } +} + +internal int +pe_named_export_is_before(void *raw_a, void *raw_b) +{ + PE_ExportParse *a = *(PE_ExportParse **)raw_a; + PE_ExportParse *b = *(PE_ExportParse **)raw_b; + int cmp = str8_compar_case_sensitive(&a->name, &b->name); + return cmp < 0; +} + +internal int +pe_ordinal_export_is_before(void *raw_a, void *raw_b) +{ + PE_ExportParse *a = raw_a; + PE_ExportParse *b = raw_b; + return a->ordinal < b->ordinal; +} + +internal PE_FinalizedExports +pe_finalize_export_list(Arena *arena, PE_ExportParseList export_list) +{ + // compute max ordinal and used ordinal flag array + U64 ordinal_low = max_U64; + B8 *is_ordinal_used = push_array(arena, B8, max_U16); + for (PE_ExportParseNode *exp_n = export_list.first; exp_n != 0; exp_n = exp_n->next) { + PE_ExportParse *exp = &exp_n->data; + if (exp->is_ordinal_assigned) { + ordinal_low = Min(ordinal_low, exp->ordinal); + is_ordinal_used[exp->ordinal] = 1; + } + } + + PE_ExportParsePtrArray named_exports = {0}; + PE_ExportParsePtrArray ordinal_exports = {0}; + PE_ExportParsePtrArray forwarder_exports = {0}; + { + // group exports based on flags + PE_ExportParseList named_exports_list = {0}; + PE_ExportParseList ordinal_exports_list = {0}; + PE_ExportParseList forwarder_exports_list = {0}; + for (PE_ExportParseNode *exp_n = export_list.first, *exp_n_next; exp_n != 0; exp_n = exp_n_next) { + exp_n_next = exp_n->next; + if (exp_n->data.is_forwarder) { + pe_export_parse_list_push_node(&forwarder_exports_list, exp_n); + } else if (exp_n->data.is_noname_present) { + AssertAlways(exp_n->data.is_ordinal_assigned); + pe_export_parse_list_push_node(&ordinal_exports_list, exp_n); + } else { + pe_export_parse_list_push_node(&named_exports_list, exp_n); + } + } + + // list -> array + named_exports = pe_array_from_export_list(arena, named_exports_list); + forwarder_exports = pe_array_from_export_list(arena, forwarder_exports_list); + ordinal_exports = pe_array_from_export_list(arena, ordinal_exports_list); + + // sort exports + radsort(named_exports.v, named_exports.count, pe_named_export_is_before); + radsort(ordinal_exports.v, ordinal_exports.count, pe_ordinal_export_is_before); + radsort(forwarder_exports.v, forwarder_exports.count, pe_named_export_is_before); + + MemoryZeroStruct(&export_list); + pe_export_parse_list_concat_in_place(&export_list, &named_exports_list); + pe_export_parse_list_concat_in_place(&export_list, &forwarder_exports_list); + pe_export_parse_list_concat_in_place(&export_list, &ordinal_exports_list); + } + + // assign omitted ordinals + { + U16 last_ordinal = ordinal_low; + for (U64 exp_idx = 0; exp_idx < named_exports.count; exp_idx += 1) { + PE_ExportParse *exp = named_exports.v[exp_idx]; + if (!exp->is_ordinal_assigned) { + for (; last_ordinal < max_U16 && is_ordinal_used[last_ordinal] != 0; last_ordinal += 1); + exp->ordinal = last_ordinal; + exp->is_ordinal_assigned = 1; + is_ordinal_used[last_ordinal] = 1; + } + } + for (U64 exp_idx = 0; exp_idx < forwarder_exports.count; exp_idx += 1) { + PE_ExportParse *exp = forwarder_exports.v[exp_idx]; + if (!exp->is_ordinal_assigned) { + for (; last_ordinal < max_U16 && is_ordinal_used[last_ordinal] != 0; last_ordinal += 1); + exp->ordinal = last_ordinal; + exp->is_ordinal_assigned = 1; + is_ordinal_used[last_ordinal] = 1; + } + } + for (U64 exp_idx = 0; exp_idx < ordinal_exports.count; exp_idx += 1) { + PE_ExportParse *exp = ordinal_exports.v[exp_idx]; + if (!exp->is_ordinal_assigned) { + exp->ordinal = last_ordinal; + exp->is_ordinal_assigned = 1; + is_ordinal_used[last_ordinal] = 1; + } + } + } + + // assign hints + { + U64 hint = 0; + for (U64 exp_idx = 0; exp_idx < named_exports.count; exp_idx += 1, hint += 1) { + named_exports.v[exp_idx]->hint = hint; + } + for (U64 exp_idx = 0; exp_idx < forwarder_exports.count; exp_idx += 1, hint += 1) { + forwarder_exports.v[exp_idx]->hint = hint; + } + } + + PE_FinalizedExports result = {0}; + result.named_exports = named_exports; + result.forwarder_exports = forwarder_exports; + result.ordinal_exports = ordinal_exports; + + return result; +} + +internal String8 +pe_make_edata_obj(Arena *arena, + String8 image_name, + COFF_TimeStamp time_stamp, + COFF_MachineType machine, + PE_FinalizedExports finalized_exports) +{ + Temp scratch = scratch_begin(&arena, 1); + + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); + + // push sections + COFF_ObjSection *voff_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$2"), PE_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_zero()); + COFF_ObjSection *name_voff_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$3"), PE_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_zero()); + COFF_ObjSection *ordinal_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$4"), PE_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); + COFF_ObjSection *string_table_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$5"), PE_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_zero()); + COFF_ObjSection *image_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$6"), PE_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, push_cstr(obj_writer->arena, image_name)); + + ProfBegin("Virtual Offset Table"); + { + B8 *is_ordinal_bound = push_array(scratch.arena, B8, max_U16); + + for (U64 arr_idx = 0; arr_idx < ArrayCount(finalized_exports.all); arr_idx += 1) { + for (U64 exp_idx = 0; exp_idx < finalized_exports.all[arr_idx].count; exp_idx += 1) { + PE_ExportParse *exp = finalized_exports.all[arr_idx].v[exp_idx]; + if (is_ordinal_bound[exp->ordinal] == 0) { + // alloc only one slot per ordinal, so it's possible to map ordinal to a virtual offset + is_ordinal_bound[exp->ordinal] = 1; + + // create slot for the ordinal virtual offset + U64 voff_offset = voff_table_sect->data.total_size; + U32 *voff = push_array(obj_writer->arena, U32, 1); + str8_list_push(obj_writer->arena, &voff_table_sect->data, str8_struct(voff)); + + COFF_ObjSymbol *exp_symbol; + if (exp->is_forwarder) { + U64 forwarder_name_offset = string_table_sect->data.total_size; + String8 forwarder_name_cstr = push_cstr(obj_writer->arena, exp->name); + str8_list_push(obj_writer->arena, &string_table_sect->data, forwarder_name_cstr); + // symbol to the name string + exp_symbol = coff_obj_writer_push_symbol_static(obj_writer, exp->name, forwarder_name_offset, string_table_sect); + } else { + // function or global var symbol + exp_symbol = coff_obj_writer_push_symbol_undef(obj_writer, exp->name); + } + + U16 ordinal_nb = exp->ordinal - finalized_exports.ordinal_low; + coff_obj_writer_section_push_reloc_voff(obj_writer, voff_table_sect, ordinal_nb*sizeof(U32), exp_symbol); + } + } + } + } + ProfEnd(); + + ProfBegin("Named & Forwarder Exports"); + { + for (U64 arr_idx = 0; arr_idx < ArrayCount(finalized_exports.exports_with_names); arr_idx += 1) { + PE_ExportParsePtrArray exports = finalized_exports.exports_with_names[arr_idx]; + for (U64 exp_idx = 0; exp_idx < exports.count; exp_idx += 1) { + PE_ExportParse *exp = exports.v[exp_idx]; + + String8 name = pe_name_from_export_parse(exp); + + // store symbol name string + U64 export_name_offset = string_table_sect->data.total_size; + String8 export_name_cstr = push_cstr(obj_writer->arena, name); + str8_list_push(obj_writer->arena, &string_table_sect->data, export_name_cstr); + + // create symbol for the name string + String8 export_name_symbol_name = push_str8f(obj_writer->arena, "RAD_NAME:%S", name); + COFF_ObjSymbol *export_name_symbol = coff_obj_writer_push_symbol_extern(obj_writer, export_name_symbol_name, export_name_offset, string_table_sect); + + // create slot for export virtual offset + U64 export_name_voff_offset = name_voff_table_sect->data.total_size; + U8 *export_name_voff = push_array(obj_writer->arena, U8, sizeof(U32)); + str8_list_push(obj_writer->arena, &name_voff_table_sect->data, str8_array(export_name_voff, sizeof(U32))); + + // write string's virtual offset + coff_obj_writer_section_push_reloc_voff(obj_writer, name_voff_table_sect, export_name_voff_offset, export_name_symbol); + + // create and store export's ordinal + U16 *ordinal = push_array(obj_writer->arena, U16, 1); + *ordinal = exp->ordinal - finalized_exports.ordinal_low; + str8_list_push(obj_writer->arena, &ordinal_table_sect->data, str8_struct(ordinal)); + } + } + } + ProfEnd(); + + ProfBegin("Ordinal Exports"); + { + for (U64 exp_idx = 0; exp_idx < finalized_exports.ordinal_exports.count; exp_idx += 1) { + // create and store export's ordinal + PE_ExportParse *exp = finalized_exports.ordinal_exports.v[exp_idx]; + U16 *ordinal = push_array(obj_writer->arena, U16, 1); + *ordinal = exp->ordinal - finalized_exports.ordinal_low; + str8_list_push(obj_writer->arena, &ordinal_table_sect->data, str8_struct(ordinal)); + } + } + ProfEnd(); + + // fill out export table header + PE_ExportTableHeader *header = push_array(obj_writer->arena, PE_ExportTableHeader, 1); + header->time_stamp = time_stamp; + header->ordinal_base = safe_cast_u16(finalized_exports.ordinal_low); + header->export_address_table_count = safe_cast_u32(voff_table_sect->data.node_count); + header->name_pointer_table_count = safe_cast_u32(name_voff_table_sect->data.node_count); + + // push header field's symbols + COFF_ObjSymbol *image_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_HEADER_NAME_VOFF"), 0, image_name_sect); + COFF_ObjSymbol *address_table_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_HEADER_ADDRESS_TABLE_VOFF"), 0, voff_table_sect); + COFF_ObjSymbol *name_table_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_HEADER_NAME_POINTER_VOFF"), 0, name_voff_table_sect); + COFF_ObjSymbol *ordinal_table_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_HEADER_ORDINAL_TABLE_VOFF"), 0, ordinal_table_sect); + + // push export table header section + COFF_ObjSection *header_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".edata$1"), PE_EDATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_struct(header)); + coff_obj_writer_push_symbol_static(obj_writer, str8_lit("EXPORT_TABLE_HEADER"), 0, header_sect); + + // patch export table header + coff_obj_writer_section_push_reloc_voff(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, name_voff), image_name_symbol); + coff_obj_writer_section_push_reloc_voff(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, export_address_table_voff), address_table_symbol); + coff_obj_writer_section_push_reloc_voff(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, name_pointer_table_voff), name_table_symbol); + coff_obj_writer_section_push_reloc_voff(obj_writer, header_sect, OffsetOf(PE_ExportTableHeader, ordinal_table_voff), ordinal_table_symbol); + + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + coff_obj_writer_release(&obj_writer); + + scratch_end(scratch); + return obj; +} + +internal String8List +pe_make_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, String8 debug_symbols, PE_ExportParseList export_list) +{ + ProfBeginFunction(); + + COFF_LibWriter *lib_writer = coff_lib_writer_alloc(); + + // These objects appear in first three members of any lib that linker produces with /dll. + // Objects are used by MSVC linker to build import table. + String8 import_entry_obj = pe_make_import_entry_obj(lib_writer->arena, dll_name, time_stamp, machine, debug_symbols); + String8 null_import_descriptor_obj = pe_make_null_import_descriptor_obj(lib_writer->arena, time_stamp, machine, debug_symbols); + String8 null_thunk_data_obj = pe_make_null_thunk_data_obj(lib_writer->arena, dll_name, time_stamp, machine, debug_symbols); + + // push import table nulls + coff_lib_writer_push_obj(lib_writer, dll_name, import_entry_obj); + coff_lib_writer_push_obj(lib_writer, dll_name, null_import_descriptor_obj); + coff_lib_writer_push_obj(lib_writer, dll_name, null_thunk_data_obj); + + // push exports + for (PE_ExportParseNode *exp_n = export_list.first; exp_n != 0; exp_n = exp_n->next) { + PE_ExportParse *exp = &exp_n->data; + if (exp->is_private) { + continue; + } + String8 name = pe_name_from_export_parse(exp); + coff_lib_writer_push_export_by_name(lib_writer, machine, time_stamp, dll_name, exp->type, name, exp->hint); + } + + // serialize lib + String8List lib = coff_lib_writer_serialize(arena, lib_writer, COFF_TimeStamp_Max, 0, /* emit second member: */ 1); + coff_lib_writer_release(&lib_writer); + + ProfEnd(); + return lib; +} diff --git a/src/pe/pe_make_export_table.h b/src/pe/pe_make_export_table.h new file mode 100644 index 00000000..e5a5e6ad --- /dev/null +++ b/src/pe/pe_make_export_table.h @@ -0,0 +1,61 @@ +// Copyright (c) 2025 Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef PE_MAKE_EXPORT_TABLE_H +#define PE_MAKE_EXPORT_TABLE_H + +typedef struct PE_ExportParse +{ + String8 obj_path; + String8 lib_path; + String8 name; + String8 alias; + COFF_ImportType type; + U16 ordinal; + U16 hint; + B32 is_ordinal_assigned; + B32 is_noname_present; + B32 is_private; + B32 is_forwarder; +} PE_ExportParse; + +typedef struct PE_ExportParseNode +{ + PE_ExportParse data; + struct PE_ExportParseNode *next; +} PE_ExportParseNode; + +typedef struct PE_ExportParseList +{ + U64 count; + PE_ExportParseNode *first; + PE_ExportParseNode *last; +} PE_ExportParseList; + +typedef struct PE_ExportParsePtrArray +{ + U64 count; + PE_ExportParse **v; +} PE_ExportParsePtrArray; + +typedef struct PE_FinalizedExports +{ + U64 ordinal_low; + union { + struct { + PE_ExportParsePtrArray named_exports; + PE_ExportParsePtrArray forwarder_exports; + PE_ExportParsePtrArray ordinal_exports; + }; + PE_ExportParsePtrArray exports_with_names[2]; + PE_ExportParsePtrArray all[3]; + }; +} PE_FinalizedExports; + +//////////////////////////////// + +internal PE_ExportParsePtrArray pe_array_from_export_list(Arena *arena, PE_ExportParseList list); +internal PE_ExportParseNode * pe_export_parse_list_push(Arena *arena, PE_ExportParseList *list, PE_ExportParse data); +internal String8List pe_make_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, String8 debug_symbols, PE_ExportParseList export_list); + +#endif // COFF_EXPORT_TABLE_H diff --git a/src/linker/lnk_import_table.c b/src/pe/pe_make_import_table.c similarity index 51% rename from src/linker/lnk_import_table.c rename to src/pe/pe_make_import_table.c index 9beccc87..8935e0a9 100644 --- a/src/linker/lnk_import_table.c +++ b/src/pe/pe_make_import_table.c @@ -1,58 +1,8 @@ // Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -internal LNK_ImportTable * -lnk_import_table_alloc(void) -{ - Arena *arena = arena_alloc(); - LNK_ImportTable *imptab = push_array(arena, LNK_ImportTable, 1); - imptab->arena = arena; - imptab->dll_ht = hash_table_init(arena, 512); - return imptab; -} - -internal void -lnk_import_table_release(LNK_ImportTable **imptab_ptr) -{ - ProfBeginFunction(); - arena_release((*imptab_ptr)->arena); - *imptab_ptr = 0; - ProfEnd(); -} - -internal LNK_ImportDLL * -lnk_import_table_push_dll(LNK_ImportTable *imptab, String8 dll_name, COFF_MachineType machine) -{ - LNK_ImportDLL *dll = push_array(imptab->arena, LNK_ImportDLL, 1); - - // update list - SLLQueuePush(imptab->first_dll, imptab->last_dll, dll); - - // update name -> dll hash table - hash_table_push_path_raw(imptab->arena, imptab->dll_ht, dll->name, dll); - - return dll; -} - -internal LNK_ImportDLL * -lnk_import_table_search_dll(LNK_ImportTable *imptab, String8 dll_name) -{ - LNK_ImportDLL *dll = 0; - hash_table_search_string_raw(imptab->dll_ht, dll_name, &dll); - return dll; -} - -internal LNK_ImportFunc * -lnk_import_table_push_func(LNK_ImportTable *imptab, LNK_ImportDLL *dll, struct LNK_Symbol *symbol) -{ - LNK_ImportFunc *func = push_array(imptab->arena, LNK_ImportFunc, 1); - func->symbol = symbol; - lnk_import_table_push_func_node(imptab, dll, func); - return func; -} - internal COFF_ObjSymbol * -lnk_emit_indirect_jump_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, COFF_ObjSymbol *iat_symbol, String8 thunk_name) +pe_make_indirect_jump_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, COFF_ObjSymbol *iat_symbol, String8 thunk_name) { ProfBeginFunction(); @@ -74,7 +24,7 @@ lnk_emit_indirect_jump_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *co } internal COFF_ObjSymbol * -lnk_emit_load_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, COFF_ObjSymbol *imp_addr_ptr, COFF_ObjSymbol *tail_merge, String8 func_name) +pe_make_load_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, COFF_ObjSymbol *imp_addr_ptr, COFF_ObjSymbol *tail_merge, String8 func_name) { ProfBeginFunction(); @@ -105,7 +55,7 @@ lnk_emit_load_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, } internal COFF_ObjSymbol * -lnk_emit_tail_merge_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, String8 dll_name, COFF_ObjSymbol *dll_import_descriptor) +pe_make_tail_merge_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, String8 dll_name, String8 delay_load_helper_name, COFF_ObjSymbol *dll_import_descriptor) { ProfBeginFunction(); @@ -143,7 +93,7 @@ lnk_emit_tail_merge_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_ static const U64 LEA_OPERAND_OFFSET = 54; coff_obj_writer_section_push_reloc(obj_writer, code_sect, tail_merge_off + LEA_OPERAND_OFFSET, dll_import_descriptor, COFF_Reloc_X64_Rel32); - COFF_ObjSymbol *delay_load_helper = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit(LNK_DELAY_LOAD_HELPER2_SYMBOL_NAME)); + COFF_ObjSymbol *delay_load_helper = coff_obj_writer_push_symbol_undef(obj_writer, delay_load_helper_name); // patch call __delayLoadHelper2 static const U64 CALL_OPERAND_OFFSET = 59; @@ -158,10 +108,9 @@ lnk_emit_tail_merge_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_ } internal String8 -lnk_build_import_entry_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine) +pe_make_import_entry_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols) { ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); Assert(machine == COFF_MachineType_X64); Assert(str8_match_lit("dll", str8_skip_last_dot(dll_name), StringMatchFlag_CaseInsensitive|StringMatchFlag_RightSideSloppy)); @@ -170,18 +119,10 @@ lnk_build_import_entry_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_s COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); - String8 debug_symbols; - { - CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; - String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); - debug_symbols = lnk_make_debug_s(obj_writer->arena, symbol_list); - } - String8 dll_name_cstr = push_cstr(obj_writer->arena, dll_name); - COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); - COFF_ObjSection *idata2 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$2"), LNK_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_zero()); - COFF_ObjSection *idata6 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$6"), LNK_DATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); + COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + COFF_ObjSection *idata2 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$2"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_zero()); + COFF_ObjSection *idata6 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$6"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@comp.id"), 0x1018175, COFF_SymStorageClass_Static); { @@ -210,30 +151,20 @@ lnk_build_import_entry_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_s coff_obj_writer_release(&obj_writer); - scratch_end(scratch); ProfEnd(); return obj; } internal String8 -lnk_build_null_import_descriptor_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine) +pe_make_null_import_descriptor_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols) { ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); - String8 debug_symbols; - { - CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; - String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); - debug_symbols = lnk_make_debug_s(obj_writer->arena, symbol_list); - } - PE_ImportEntry *import_desc = push_array(obj_writer->arena, PE_ImportEntry, 1); - COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); - COFF_ObjSection *idata3 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$3"), LNK_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(import_desc)); + COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + COFF_ObjSection *idata3 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$3"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(import_desc)); coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@comp.id"), 0x01018175, COFF_SymStorageClass_Static); coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("__NULL_IMPORT_DESCRIPTOR"), 0, idata3); @@ -242,30 +173,20 @@ lnk_build_null_import_descriptor_obj(Arena *arena, COFF_TimeStamp time_stamp, CO coff_obj_writer_release(&obj_writer); - scratch_end(scratch); ProfEnd(); return obj; } internal String8 -lnk_build_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine) +pe_make_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols) { ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); Assert(str8_match_lit("dll", str8_skip_last_dot(dll_name), StringMatchFlag_CaseInsensitive|StringMatchFlag_RightSideSloppy)); COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); - String8 debug_symbols; - { - CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; - String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); - debug_symbols = lnk_make_debug_s(obj_writer->arena, symbol_list); - } - - COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); COFF_ObjSection *idata4 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$4"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite, str8_zero()); COFF_ObjSection *idata5 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$5"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite, str8_zero()); @@ -291,74 +212,38 @@ lnk_build_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_TimeStamp tim coff_obj_writer_release(&obj_writer); - scratch_end(scratch); ProfEnd(); return obj; } -internal void -lnk_emit_dll_import_debug_symbols(COFF_ObjWriter *obj_writer, String8 dll_name) -{ - Temp scratch = scratch_begin(0,0); - - CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; - - // S_OBJ - String8 obj_data = cv_make_obj_name(scratch.arena, dll_name, 0); - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_OBJNAME, obj_data); - - // S_COMPILE3 - String8 comp3_data = lnk_make_linker_compile3(scratch.arena, obj_writer->machine); - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); - - // S_END - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_END, str8_zero()); - - // TODO: add thunks - - // serialize symbols - String8 debug_symbols = lnk_make_debug_s(obj_writer->arena, symbol_list); - - coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), LNK_DEBUG_SECTION_FLAGS, debug_symbols); - - scratch_end(scratch); -} - internal String8 -lnk_obj_from_import_dll_static(Arena *arena, COFF_MachineType machine, LNK_ImportDLL *dll) +pe_make_import_dll_obj_static(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 dll_name, String8 debug_symbols, String8List import_headers) { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, machine); + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); - U64 import_size = coff_word_size_from_machine(machine); + U64 import_size = coff_word_size_from_machine(machine); COFF_SectionFlags import_align = coff_section_flag_from_align_size(import_size); - PE_ImportEntry *impdesc = push_array(obj_writer->arena, PE_ImportEntry, 1); - String8 dll_name_cstr = push_cstr(obj_writer->arena, dll->name); + PE_ImportEntry *impdesc = push_array(obj_writer->arena, PE_ImportEntry, 1); + String8 dll_name_cstr = push_cstr(obj_writer->arena, dll_name); - COFF_ObjSection *dll_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$2"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(impdesc)); - COFF_ObjSection *ilt_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$4"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); - COFF_ObjSection *iat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$5"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); - COFF_ObjSection *int_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$6"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); - COFF_ObjSection *dll_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$7"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); - COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$i"), LNK_TEXT_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_zero()); + COFF_ObjSection *dll_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$2"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(impdesc)); + COFF_ObjSection *ilt_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$4"), PE_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *iat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$5"), PE_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *int_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$6"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); + COFF_ObjSection *dll_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$7"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); + COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$i"), PE_TEXT_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_zero()); COFF_ObjSymbol *ilt_symbol = coff_obj_writer_push_symbol_static(obj_writer, ilt_sect->name, 0, ilt_sect); COFF_ObjSymbol *iat_symbol = coff_obj_writer_push_symbol_static(obj_writer, iat_sect->name, 0, iat_sect); COFF_ObjSymbol *dll_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll_name_sect->name, 0, dll_name_sect); - - switch (machine) { - case COFF_MachineType_Unknown: {} break; - case COFF_MachineType_X64: { - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, lookup_table_voff), ilt_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, name_voff), dll_name_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, import_addr_table_voff), iat_symbol, COFF_Reloc_X64_Addr32Nb); - } break; - default: { NotImplemented; } break; - } - for (LNK_ImportFunc *func = dll->first_func; func != 0; func = func->next) { - LNK_Symbol *import_symbol = func->symbol; - COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(import_symbol->u.coff_import); + coff_obj_writer_section_push_reloc_voff(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, lookup_table_voff), ilt_symbol); + coff_obj_writer_section_push_reloc_voff(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, name_voff), dll_name_symbol); + coff_obj_writer_section_push_reloc_voff(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, import_addr_table_voff), iat_symbol); + + for (String8Node *import_header_n = import_headers.first; import_header_n != 0; import_header_n = import_header_n->next) { + COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(import_header_n->string); String8 iat_symbol_name = push_str8f(obj_writer->arena, "__imp_%S", import_header.func_name); U64 iat_offset = iat_sect->data.total_size; @@ -391,8 +276,8 @@ lnk_obj_from_import_dll_static(Arena *arena, COFF_MachineType machine, LNK_Impor iat_symbol = coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_offset, iat_sect); // patch IAT and ILT - coff_obj_writer_section_push_reloc(obj_writer, ilt_sect, ilt_offset, int_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, iat_sect, iat_offset, int_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc_voff(obj_writer, ilt_sect, ilt_offset, int_symbol); + coff_obj_writer_section_push_reloc_voff(obj_writer, iat_sect, iat_offset, int_symbol); } break; case COFF_ImportBy_Undecorate: { NotImplemented; @@ -407,7 +292,7 @@ lnk_obj_from_import_dll_static(Arena *arena, COFF_MachineType machine, LNK_Impor if (import_header.type == COFF_ImportHeader_Code) { switch (import_header.machine) { case COFF_MachineType_Unknown: {} break; - case COFF_MachineType_X64: { jmp_thunk_symbol = lnk_emit_indirect_jump_thunk_x64(obj_writer, code_sect, iat_symbol, import_header.func_name); } break; + case COFF_MachineType_X64: { jmp_thunk_symbol = pe_make_indirect_jump_thunk_x64(obj_writer, code_sect, iat_symbol, import_header.func_name); } break; default: { NotImplemented; } break; } } @@ -419,73 +304,72 @@ lnk_obj_from_import_dll_static(Arena *arena, COFF_MachineType machine, LNK_Impor } internal String8 -lnk_obj_from_import_dll_delayed(Arena *arena, COFF_MachineType machine, LNK_ImportDLL *dll, B32 emit_biat, B32 emit_uiat) +pe_make_import_dll_obj_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 dll_name, String8 delay_load_helper_name, String8 debug_symbols, String8List import_headers, B32 emit_biat, B32 emit_uiat) { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, machine); + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); // import descriptor PE_DelayedImportEntry *impdesc = push_array(obj_writer->arena, PE_DelayedImportEntry, 1); - impdesc->attributes = 1; + impdesc->attributes = 1; // DLL name cstring - String8 dll_name_cstr = push_cstr(obj_writer->arena, dll->name); + String8 dll_name_cstr = push_cstr(obj_writer->arena, dll_name); // DLL handle U64 handle_size = coff_word_size_from_machine(machine); - U8 *handle = push_array(obj_writer->arena, U8, handle_size); + U8 *handle = push_array(obj_writer->arena, U8, handle_size); // import align - U64 import_size = coff_word_size_from_machine(machine); + U64 import_size = coff_word_size_from_machine(machine); COFF_SectionFlags import_align = coff_section_flag_from_align_size(import_size); - COFF_ObjSection *dll_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$2"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(impdesc)); - COFF_ObjSection *ilt_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$4"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); - COFF_ObjSection *iat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$5"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); - COFF_ObjSection *int_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$6"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); - COFF_ObjSection *dll_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$7"), LNK_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); - COFF_ObjSection *biat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$8"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); - COFF_ObjSection *uiat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$9"), LNK_IDATA_SECTION_FLAGS|import_align, str8_zero()); - COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$i"), LNK_TEXT_SECTION_FLAGS, str8_zero()); - COFF_ObjSection *handle_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$h"), LNK_DATA_SECTION_FLAGS, str8_array(handle, handle_size)); + // push sections + COFF_ObjSection *dll_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$2"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(impdesc)); + COFF_ObjSection *ilt_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$4"), PE_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *iat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$5"), PE_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *int_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$6"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); + COFF_ObjSection *dll_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$7"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); + COFF_ObjSection *biat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$8"), PE_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *uiat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$9"), PE_IDATA_SECTION_FLAGS|import_align, str8_zero()); + COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$i"), PE_TEXT_SECTION_FLAGS, str8_zero()); + COFF_ObjSection *handle_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$h"), PE_DATA_SECTION_FLAGS, str8_array(handle, handle_size)); + COFF_ObjSection *debug_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + // sections symbols COFF_ObjSymbol *dll_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll_sect->name, 0, dll_sect); COFF_ObjSymbol *dll_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll_name_sect->name, 0, dll_name_sect); COFF_ObjSymbol *handle_symbol = coff_obj_writer_push_symbol_static(obj_writer, handle_sect->name, 0, handle_sect); COFF_ObjSymbol *iat_symbol = coff_obj_writer_push_symbol_static(obj_writer, iat_sect->name, 0, iat_sect); COFF_ObjSymbol *ilt_symbol = coff_obj_writer_push_symbol_static(obj_writer, ilt_sect->name, 0, ilt_sect); - switch (machine) { - case COFF_MachineType_Unknown: {} break; - case COFF_MachineType_X64: { - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, name_voff), dll_name_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, module_handle_voff), handle_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, iat_voff), iat_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, name_table_voff), ilt_symbol, COFF_Reloc_X64_Addr32Nb); - } break; - default: { NotImplemented; } break; - } + // patch virutal offsets in import header + coff_obj_writer_section_push_reloc_voff(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, name_voff), dll_name_symbol); + coff_obj_writer_section_push_reloc_voff(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, module_handle_voff), handle_symbol); + coff_obj_writer_section_push_reloc_voff(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, iat_voff), iat_symbol); + coff_obj_writer_section_push_reloc_voff(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, name_table_voff), ilt_symbol); + // patch BIAT virtual offset in import header if (emit_biat) { COFF_ObjSymbol *biat_symbol = coff_obj_writer_push_symbol_static(obj_writer, biat_sect->name, 0, biat_sect); - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, bound_table_voff), biat_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc_voff(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, bound_table_voff), biat_symbol); } + + // patch UIAT virtual offset in import header if (emit_uiat) { COFF_ObjSymbol *uiat_symbol = coff_obj_writer_push_symbol_static(obj_writer, uiat_sect->name, 0, uiat_sect); - coff_obj_writer_section_push_reloc(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, unload_table_voff), uiat_symbol, COFF_Reloc_X64_Addr32Nb); + coff_obj_writer_section_push_reloc_voff(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, unload_table_voff), uiat_symbol); } // emit tail merge COFF_ObjSymbol *tail_merge_symbol = 0; switch (machine) { case COFF_MachineType_Unknown: {} break; - case COFF_MachineType_X64: { tail_merge_symbol = lnk_emit_tail_merge_thunk_x64(obj_writer, code_sect, dll->name, dll_symbol); } break; + case COFF_MachineType_X64: { tail_merge_symbol = pe_make_tail_merge_thunk_x64(obj_writer, code_sect, dll_name, delay_load_helper_name, dll_symbol); } break; default: { NotImplemented; } break; } - for (LNK_ImportFunc *func = dll->first_func; func != 0; func = func->next) { -#if 0 - LNK_Symbol *import_symbol = func->symbol; - COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(import_symbol->u.coff_import); + for (String8Node *import_header_n = import_headers.first; import_header_n != 0; import_header_n = import_header_n->next) { + COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(import_header_n->string); // emit thunks COFF_ObjSymbol *jmp_thunk_symbol = 0; @@ -493,146 +377,91 @@ lnk_obj_from_import_dll_delayed(Arena *arena, COFF_MachineType machine, LNK_Impo if (import_header.type == COFF_ImportHeader_Code) { switch (machine) { case COFF_MachineType_X64: { - String8 iat_symbol_name = push_str8f(obj_writer->arena, "__imp_%S", header->func_name); + String8 iat_symbol_name = push_str8f(obj_writer->arena, "__imp_%S", import_header.func_name); coff_obj_writer_push_symbol_undef(obj_writer, iat_symbol_name); // emit jmp thunk - jmp_thunk_symbol = lnk_emit_indirect_jump_thunk_x64(obj_writer, code_sect, iat_symbol, import_header.func_name); + jmp_thunk_symbol = pe_make_indirect_jump_thunk_x64(obj_writer, code_sect, iat_symbol, import_header.func_name); // emit load thunk - load_thunk_chunk = lnk_emit_load_thunk_x64(code_sect, code_table_chunk, iat_symbol, dll->tail_merge_symbol); + load_thunk_symbol = pe_make_load_thunk_x64(obj_writer, code_sect, iat_symbol, tail_merge_symbol, import_header.func_name); } break; - default: lnk_not_implemented("TODO: support for machine 0x%X", dll->machine); break; + default: { NotImplemented; } break; } } - U64 import_size = coff_word_size_from_machine(machine); - - switch (header->import_by) { + switch (import_header.import_by) { case COFF_ImportBy_Ordinal: { + U64 iat_offset = iat_sect->data.total_size; String8 ordinal_data = coff_ordinal_data_from_hint(obj_writer->arena, import_header.machine, import_header.hint_or_ordinal); str8_list_push(obj_writer->arena, &ilt_sect->data, ordinal_data); str8_list_push(obj_writer->arena, &iat_sect->data, ordinal_data); + String8 iat_symbol_name = push_str8f(obj_writer->arena, "__imp_%S", import_header.func_name); iat_symbol = coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_offset, iat_sect); + if (emit_biat) { - biat_chunk = lnk_section_push_chunk_bss(data_sect, biat_table_chunk, import_size, sort_index); - lnk_section_push_reloc(data_sect, biat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); - lnk_section_associate_chunks(data_sect, iat_chunk, biat_chunk); + U64 import_size = coff_word_size_from_machine(machine); + U64 biat_offset = biat_sect->data.total_size; + str8_list_push(obj_writer->arena, &biat_sect->data, str8(0,import_size)); + coff_obj_writer_section_push_reloc_addr(obj_writer, biat_sect, biat_offset, load_thunk_symbol); } if (emit_uiat) { - uiat_chunk = lnk_section_push_chunk_bss(data_sect, uiat_table_chunk, import_size, sort_index); - lnk_section_push_reloc(data_sect, uiat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); - lnk_section_associate_chunks(data_sect, iat_chunk, uiat_chunk); + U64 import_size = coff_word_size_from_machine(machine); + U64 uiat_offset = uiat_sect->data.total_size; + str8_list_push(obj_writer->arena, &biat_sect->data, str8(0,import_size)); + coff_obj_writer_section_push_reloc_addr(obj_writer, uiat_sect, uiat_offset, load_thunk_symbol); } } break; case COFF_ImportBy_Name: { // put together name look up entry - String8 int_data = coff_make_import_lookup(data_sect->arena, header->hint_or_ordinal, header->func_name); - LNK_Chunk *int_chunk = lnk_section_push_chunk_data(data_sect, int_table_chunk, int_data, str8_zero()); + String8 int_data = coff_make_import_lookup(obj_writer->arena, import_header.hint_or_ordinal, import_header.func_name); + U64 int_data_offset = int_sect->data.total_size; + str8_list_push(obj_writer->arena, &int_sect->data, int_data); // create symbol for lookup chunk - String8 int_symbol_name = push_str8f(symtab->arena->v[0], "%S.%S.name.delayed", dll->name, header->func_name); - int_symbol = lnk_symbol_table_push_defined_chunk(symtab, int_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, int_chunk, 0, 0, 0); + String8 int_symbol_name = push_str8f(obj_writer->arena, "%S.%S.name.delayed", dll_name, import_header.func_name); + COFF_ObjSymbol *int_symbol = coff_obj_writer_push_symbol_static(obj_writer, int_symbol_name, int_data_offset, int_sect); + + U64 import_size = coff_word_size_from_machine(machine); // dynamic linker patches this voff on DLL load event - ilt_chunk = lnk_section_push_chunk_bss(data_sect, ilt_table_chunk, import_size, sort_index); - lnk_chunk_set_debugf(data_sect->arena, ilt_chunk, "ILT entry (delayed) %S.%S", dll->name, header->func_name); + U64 ilt_data_offset = ilt_sect->data.total_size; + str8_list_push(obj_writer->arena, &ilt_sect->data, str8(0, import_size)); // patch-in ILT with import voff - lnk_section_push_reloc(data_sect, ilt_chunk, LNK_Reloc_VIRT_OFF_32, 0, int_symbol); + coff_obj_writer_section_push_reloc_voff(obj_writer, ilt_sect, ilt_data_offset, int_symbol); // in the file IAT mirrors ILT, dynamic linker later overwrites it with imported function addresses. - iat_chunk = lnk_section_push_chunk_bss(data_sect, iat_table_chunk, import_size, sort_index); - lnk_chunk_set_debugf(data_sect->arena, iat_chunk, "IAT entre (delayed) %S.%S", dll->name, header->func_name); - - // associate chunks - lnk_section_associate_chunks(data_sect, iat_chunk, ilt_chunk); - lnk_section_associate_chunks(data_sect, iat_chunk, int_chunk); + U64 iat_data_offset = iat_sect->data.total_size; + str8_list_push(obj_writer->arena, &iat_sect->data, str8(0, import_size)); // patch-in thunk address - lnk_section_push_reloc(data_sect, iat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); + coff_obj_writer_section_push_reloc_addr(obj_writer, iat_sect, iat_data_offset, load_thunk_symbol); - if (imptab->flags & LNK_ImportTableFlag_EmitBiat) { - biat_chunk = lnk_section_push_chunk_bss(data_sect, biat_table_chunk, import_size, sort_index); - lnk_chunk_set_debugf(data_sect->arena, biat_chunk, "%S.biat.%S (delayed)", dll->name, header->func_name); + if (emit_biat) { + U64 biat_data_offset = biat_sect->data.total_size; + str8_list_push(obj_writer->arena, &biat_sect->data, str8(0, import_size)); // patch-in thunk address - lnk_section_push_reloc(data_sect, biat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); + coff_obj_writer_section_push_reloc_addr(obj_writer, biat_sect, biat_data_offset, load_thunk_symbol); } - if (imptab->flags & LNK_ImportTableFlag_EmitUiat) { - uiat_chunk = lnk_section_push_chunk_bss(data_sect, uiat_table_chunk, import_size, sort_index); - lnk_chunk_set_debugf(data_sect->arena, uiat_chunk, "%S.uiat.%S (delayed)", dll->name, header->func_name); + if (emit_uiat) { + U64 uiat_data_offset = uiat_sect->data.total_size; + str8_list_push(obj_writer->arena, &uiat_sect->data, str8(0, import_size)); // patch-in thunk address - lnk_section_push_reloc(data_sect, uiat_chunk, LNK_Reloc_ADDR_64, 0, load_thunk_symbol); + coff_obj_writer_section_push_reloc_addr(obj_writer, uiat_sect, uiat_data_offset, load_thunk_symbol); } } break; - case COFF_ImportBy_Undecorate: { - lnk_not_implemented("TODO: COFF_ImportBy_Undecorate"); - } break; - case COFF_ImportBy_NameNoPrefix: { - lnk_not_implemented("TODO: COFF_ImportBy_NameNoPrefix"); - } break; + case COFF_ImportBy_Undecorate: { NotImplemented; } break; + case COFF_ImportBy_NameNoPrefix: { NotImplemented; } break; } - - if (jmp_thunk_chunk) { - lnk_section_associate_chunks(data_sect, iat_chunk, jmp_thunk_chunk); - } - if (load_thunk_chunk) { - lnk_section_associate_chunks(data_sect, iat_chunk, load_thunk_chunk); - } - - String8 iat_symbol_name = push_str8f(symtab->arena->v[0], "__imp_%S", header->func_name); - LNK_Symbol *iat_symbol = lnk_symbol_table_push_defined_chunk(symtab, iat_symbol_name, LNK_DefinedSymbolVisibility_Extern, 0, iat_chunk, 0, 0, 0); - - String8 ilt_symbol_name = push_str8f(symtab->arena->v[0], "%S.%S.ilt.delayed", dll->name, header->func_name); - LNK_Symbol *ilt_symbol = lnk_symbol_table_push_defined_chunk(symtab, ilt_symbol_name, LNK_DefinedSymbolVisibility_Internal, 0, ilt_chunk, 0, 0, 0); -#endif } - return str8_zero(); + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + coff_obj_writer_release(&obj_writer); + return obj; } - -internal String8Array -lnk_make_import_dlls_static(Arena *arena, LNK_ImportTable *imptab, COFF_MachineType machine, String8 image_name) -{ - String8Array objs = {0}; - if (imptab->dll_count) { - objs.v = push_array(arena, String8, imptab->dll_count + 3); - - // make objs for each DLL - for (LNK_ImportDLL *dll = imptab->first_dll; dll != 0; dll = dll->next) { - objs.v[objs.count++] = lnk_obj_from_import_dll_static(arena, machine, dll); - } - - // make null terminator objs - objs.v[objs.count++] = lnk_build_import_entry_obj(arena, image_name, COFF_TimeStamp_Max, machine); - objs.v[objs.count++] = lnk_build_null_import_descriptor_obj(arena, COFF_TimeStamp_Max, machine); - objs.v[objs.count++] = lnk_build_null_thunk_data_obj(arena, image_name, COFF_TimeStamp_Max, machine); - } - return objs; -} - -internal String8Array -lnk_make_import_dlls_delayed(Arena *arena, LNK_ImportTable *imptab, COFF_MachineType machine, String8 image_name, B32 emit_biat, B32 emit_uiat) -{ - String8Array objs = {0}; - if (imptab->dll_count) { - objs.v = push_array(arena, String8, imptab->dll_count + 3); - - // make objs for each DLL - for (LNK_ImportDLL *dll = imptab->first_dll; dll != 0; dll = dll->next) { - objs.v[objs.count++] = lnk_obj_from_import_dll_delayed(arena, machine, dll, emit_biat, emit_uiat); - } - - // make null terminator objs - objs.v[objs.count++] = lnk_build_import_entry_obj(arena, image_name, COFF_TimeStamp_Max, machine); - objs.v[objs.count++] = lnk_build_null_import_descriptor_obj(arena, COFF_TimeStamp_Max, machine); - objs.v[objs.count++] = lnk_build_null_thunk_data_obj(arena, image_name, COFF_TimeStamp_Max, machine); - } - return objs; -} - diff --git a/src/pe/pe_make_import_table.h b/src/pe/pe_make_import_table.h new file mode 100644 index 00000000..b88d3905 --- /dev/null +++ b/src/pe/pe_make_import_table.h @@ -0,0 +1,18 @@ +// Copyright (c) 2025 Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef PE_MAKE_IMPORT_TABLE_H +#define PE_MAKE_IMPORT_TABLE_H + +internal COFF_ObjSymbol * pe_make_indirect_jump_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, COFF_ObjSymbol *iat_symbol, String8 thunk_name); +internal COFF_ObjSymbol * pe_make_load_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, COFF_ObjSymbol *imp_addr_ptr, COFF_ObjSymbol *tail_merge, String8 func_name); +internal COFF_ObjSymbol * pe_make_tail_merge_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_sect, String8 dll_name, String8 delay_load_helper_name, COFF_ObjSymbol *dll_import_descriptor); + +internal String8 pe_make_import_dll_obj_static(Arena *arena, COFF_TimeStamp time_stmap, COFF_MachineType machine, String8 dll_name, String8 debug_symbols, String8List import_headers); +internal String8 pe_make_import_dll_obj_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 dll_name, String8 delay_load_helper_name, String8 debug_symbols, String8List import_headers, B32 emit_biat, B32 emit_uiat); + +internal String8 pe_make_import_entry_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols); +internal String8 pe_make_null_import_descriptor_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols); +internal String8 pe_make_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols); + +#endif // PE_MAKE_IMPORT_TABLE_H \ No newline at end of file diff --git a/src/pe/pe_section_flags.h b/src/pe/pe_section_flags.h new file mode 100644 index 00000000..4d9fdf54 --- /dev/null +++ b/src/pe/pe_section_flags.h @@ -0,0 +1,27 @@ +// Copyright (c) 2025 Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef PE_SECTION_FLAGS_H +#define PE_SECTION_FLAGS_H + +#define PE_TEXT_SECTION_FLAGS (COFF_SectionFlag_CntCode|COFF_SectionFlag_MemExecute|COFF_SectionFlag_MemRead) +#define PE_DATA_SECTION_FLAGS (COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite) +#define PE_RDATA_SECTION_FLAGS (COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead) +#define PE_BSS_SECTION_FLAGS (COFF_SectionFlag_CntUninitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite) +#define PE_IDATA_SECTION_FLAGS PE_DATA_SECTION_FLAGS +#define PE_DEBUG_DIR_SECTION_FLAGS PE_DATA_SECTION_FLAGS +#define PE_RSRC_SECTION_FLAGS PE_DATA_SECTION_FLAGS +#define PE_RSRC1_SECTION_FLAGS (PE_DATA_SECTION_FLAGS | COFF_SectionFlag_Align4Bytes) +#define PE_RSRC2_SECTION_FLAGS (PE_DATA_SECTION_FLAGS | COFF_SectionFlag_Align4Bytes) +#define PE_XDATA_SECTION_FLAGS PE_RDATA_SECTION_FLAGS +#define PE_PDATA_SECTION_FLAGS PE_RDATA_SECTION_FLAGS +#define PE_EDATA_SECTION_FLAGS PE_RDATA_SECTION_FLAGS +#define PE_GFIDS_SECTION_FLAGS PE_RDATA_SECTION_FLAGS +#define PE_GIATS_SECTION_FLAGS PE_RDATA_SECTION_FLAGS +#define PE_GLJMP_SECTION_FLAGS PE_RDATA_SECTION_FLAGS +#define PE_GEHCONT_SECTION_FLAGS PE_RDATA_SECTION_FLAGS +#define PE_RELOC_SECTION_FLAGS (PE_RDATA_SECTION_FLAGS | COFF_SectionFlag_MemDiscardable) +#define PE_DEBUG_SECTION_FLAGS (PE_RDATA_SECTION_FLAGS | COFF_SectionFlag_MemDiscardable) + +#endif // PE_SECTION_FLAGS_H + diff --git a/src/torture/torture.c b/src/torture/torture.c index 64127fec..a8dd2135 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -1478,7 +1478,7 @@ t_import_export(void) coff_obj_writer_push_directive(obj_writer, str8_lit("/export:baf=baz.#1")); coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord,@5")); coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord2,@6,DATA")); - coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord3,@7,NONAME")); + coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord3,@7,NONAME,PRIVATE")); coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord4,@8,NONAME,DATA")); COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(export_text)); coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("_DllMainCRTStartup"), 0, text_sect); From 89239fc744a46690cff883f0523d28885920145a Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 15 May 2025 17:13:02 -0700 Subject: [PATCH 098/372] test reloc for section symbol with merged section --- src/torture/torture.c | 100 ++++++++++++++++++++++++++++++++---------- 1 file changed, 76 insertions(+), 24 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index a8dd2135..f3fc335f 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -24,6 +24,7 @@ #include "coff/coff_obj_writer.h" #include "coff/coff_lib_writer.h" #include "pe/pe.h" +#include "pe/pe_section_flags.h" #include "linker/hash_table.h" #include "base/base_inc.c" @@ -40,7 +41,6 @@ #include "linker/lnk_cmd_line.h" #include "linker/lnk_cmd_line.c" #include "linker/lnk_error.h" -#include "linker/lnk_image_section_flags.h" //////////////////////////////// @@ -296,19 +296,19 @@ typedef enum internal COFF_ObjSection * t_push_text_section(COFF_ObjWriter *obj_writer, String8 data) { - return coff_obj_writer_push_section(obj_writer, str8_lit(".text"), LNK_TEXT_SECTION_FLAGS, data); + return coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, data); } internal COFF_ObjSection * t_push_data_section(COFF_ObjWriter *obj_writer, String8 data) { - return coff_obj_writer_push_section(obj_writer, str8_lit(".data"), LNK_DATA_SECTION_FLAGS, data); + return coff_obj_writer_push_section(obj_writer, str8_lit(".data"), PE_DATA_SECTION_FLAGS, data); } internal COFF_ObjSection * t_push_rdata_section(COFF_ObjWriter *obj_writer, String8 data) { - return coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), LNK_RDATA_SECTION_FLAGS, data); + return coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS, data); } internal T_Result @@ -839,7 +839,7 @@ t_undef_section(void) U8 data[] = { 0, 0, 0, 0 }; COFF_ObjSection *data_section = t_push_data_section(obj_writer, str8_array_fixed(data)); - COFF_ObjSymbol *foo = coff_obj_writer_push_symbol_undef_section(obj_writer, str8_lit(".mysect"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead); + COFF_ObjSymbol *foo = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".mysect"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead); coff_obj_writer_section_push_reloc(obj_writer, data_section, 0, foo, COFF_Reloc_X64_Addr32Nb); U8 text[] = { 0xC3 }; @@ -881,6 +881,52 @@ t_undef_section(void) return result; } +internal T_Result +t_sect_symbol(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + String8 sect_obj_name = str8_lit("sect.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".mysect$1"), PE_RDATA_SECTION_FLAGS, str8_lit("hello, world")); + coff_obj_writer_push_directive(obj_writer, str8_lit("/merge:.mysect=.rdata")); + String8 sect_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(sect_obj_name, sect_obj)) { + goto exit; + } + } + + String8 main_obj_name = str8_lit("main.obj"); + { + U8 data[8] = {0}; + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_array_fixed(data)); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".mysect$2222"), PE_RDATA_SECTION_FLAGS); + coff_obj_writer_section_push_reloc_addr(obj_writer, sect, 0, symbol); + + U8 text[] = { 0xC3 }; + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); + + String8 main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + + if (!t_write_file(main_obj_name, main_obj)) { + goto exit; + } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe main.obj sect.obj"); + + exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_undef_reloc_section(void) { @@ -892,12 +938,12 @@ t_undef_reloc_section(void) COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); U8 text[] = { 0xC3 }; - COFF_ObjSection *text_section = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), LNK_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + COFF_ObjSection *text_section = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); COFF_ObjSymbol *my_entry_symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_section); U8 data[8] = { 0 }; COFF_ObjSection *data_section = t_push_data_section(obj_writer, str8_array_fixed(data)); - COFF_ObjSymbol *foo = coff_obj_writer_push_symbol_undef_section(obj_writer, str8_lit(".reloc"), LNK_RELOC_SECTION_FLAGS); + COFF_ObjSymbol *foo = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".reloc"), PE_RELOC_SECTION_FLAGS); coff_obj_writer_section_push_reloc(obj_writer, data_section, 0, foo, COFF_Reloc_X64_Addr64); main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); @@ -1494,22 +1540,27 @@ t_import_export(void) { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(import_payload)); - COFF_ObjSymbol *foo_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_foo")); - COFF_ObjSymbol *bar_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_bar")); - COFF_ObjSymbol *baz_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_baz")); - COFF_ObjSymbol *baf_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_baf")); - COFF_ObjSymbol *ord_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_ord")); - COFF_ObjSymbol *ord2_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_ord2")); - COFF_ObjSymbol *ord3_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_ord3")); - COFF_ObjSymbol *ord4_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_ord4")); - coff_obj_writer_section_push_reloc(obj_writer, data_sect, 0*4, foo_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, data_sect, 1*4, bar_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, data_sect, 2*4, baz_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, data_sect, 3*4, baf_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, data_sect, 4*4, ord_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, data_sect, 5*4, ord2_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, data_sect, 6*4, ord3_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, data_sect, 7*4, ord4_symbol, COFF_Reloc_X64_Addr32Nb); + + char *import_symbols[] = { + "__imp_foo", + "__imp_bar", + "__imp_baz", + "__imp_baf", + "__imp_ord", + //"__imp_ord2", + //"__imp_ord4", + "baf", + "bar", + "baz", + "foo", + "ord", + }; + + for (U64 i = 0; i < ArrayCount(import_symbols); ++i) { + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_cstring(import_symbols[i])); + coff_obj_writer_section_push_reloc_voff(obj_writer, data_sect, i * 4, symbol); + } + String8 import_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); if (!t_write_file(import_obj_name, import_obj)) { @@ -1588,7 +1639,7 @@ t_import_export(void) } } - int import_link_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe export.lib import.obj entry.obj"); + int import_link_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe /delayload:export.dll /export:my_entry kernel32.Lib delayimp.lib libcmt.lib export.lib import.obj entry.obj"); if (import_link_exit_code != 0) { goto exit; @@ -1624,6 +1675,7 @@ entry_point(CmdLine *cmdline) { "abs_vs_regular", t_abs_vs_regular }, { "abs_vs_common", t_abs_vs_common }, { "undef_weak", t_undef_weak }, + { "sect_symbol", t_sect_symbol }, { "weak_cycle", t_weak_cycle }, { "weak_tag", t_weak_tag }, { "find_merged_pdata", t_find_merged_pdata }, From 34a87e7828a80531464fa74cc9a4f36030d5c25b Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 15 May 2025 17:14:10 -0700 Subject: [PATCH 099/372] create member symbol only for imports with name --- src/coff/coff_lib_writer.c | 70 ++++++++++++++++---------------------- src/coff/coff_lib_writer.h | 12 +++---- 2 files changed, 35 insertions(+), 47 deletions(-) diff --git a/src/coff/coff_lib_writer.c b/src/coff/coff_lib_writer.c index e29370d5..ad7fa781 100644 --- a/src/coff/coff_lib_writer.c +++ b/src/coff/coff_lib_writer.c @@ -87,7 +87,7 @@ coff_lib_writer_release(COFF_LibWriter **writer_ptr) *writer_ptr = 0; } -internal void +internal U64 coff_lib_writer_push_obj(COFF_LibWriter *writer, String8 obj_path, String8 obj_data) { U64 member_idx = writer->member_list.count; @@ -126,57 +126,45 @@ coff_lib_writer_push_obj(COFF_LibWriter *writer, String8 obj_path, String8 obj_d } } } + + return member_idx; } internal void -coff_lib_writer_push_export(COFF_LibWriter *writer, String8 raw_import_header) +coff_lib_writer_push_import(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportByType import_by, String8 name, U16 hint_or_ordinal, COFF_ImportType import_type) { - U64 member_idx = writer->member_list.count; - COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(raw_import_header); - // push import member + U64 member_idx = lib_writer->member_list.count; COFF_LibWriterMember member = {0}; - member.name = import_header.dll_name; - member.data = raw_import_header; - coff_lib_writer_member_list_push(writer->arena, &writer->member_list, member); + member.name = dll_name; + member.data = coff_make_import_header(lib_writer->arena, machine, time_stamp, dll_name, import_by, name, hint_or_ordinal, import_type); + coff_lib_writer_member_list_push(lib_writer->arena, &lib_writer->member_list, member); - switch (import_header.type) { - case COFF_ImportHeader_Code: { - COFF_LibWriterSymbol def_symbol = {0}; - def_symbol.name = push_str8_copy(writer->arena, import_header.func_name); - def_symbol.member_idx = member_idx; - coff_lib_writer_symbol_list_push(writer->arena, &writer->symbol_list, def_symbol); + if (name.size) { + switch (import_type) { + case COFF_ImportHeader_Code: { + COFF_LibWriterSymbol thunk_symbol = {0}; + thunk_symbol.name = push_str8_copy(lib_writer->arena, name); + thunk_symbol.member_idx = member_idx; + coff_lib_writer_symbol_list_push(lib_writer->arena, &lib_writer->symbol_list, thunk_symbol); - COFF_LibWriterSymbol imp_symbol = {0}; - imp_symbol.name = push_str8f(writer->arena, "__imp_%S", import_header.func_name); - imp_symbol.member_idx = member_idx; - coff_lib_writer_symbol_list_push(writer->arena, &writer->symbol_list, def_symbol); - } break; - case COFF_ImportHeader_Data: { - COFF_LibWriterSymbol imp_symbol = {0}; - imp_symbol.name = push_str8f(writer->arena, "__imp_%S", import_header.func_name); - imp_symbol.member_idx = member_idx; - coff_lib_writer_symbol_list_push(writer->arena, &writer->symbol_list, imp_symbol); - } break; - case COFF_ImportHeader_Const: { NotImplemented; } break; - default: { InvalidPath; } break; + COFF_LibWriterSymbol imp_symbol = {0}; + imp_symbol.name = push_str8f(lib_writer->arena, "__imp_%S", name); + imp_symbol.member_idx = member_idx; + coff_lib_writer_symbol_list_push(lib_writer->arena, &lib_writer->symbol_list, imp_symbol); + } break; + case COFF_ImportHeader_Data: { + COFF_LibWriterSymbol imp_symbol = {0}; + imp_symbol.name = push_str8f(lib_writer->arena, "__imp_%S", name); + imp_symbol.member_idx = member_idx; + coff_lib_writer_symbol_list_push(lib_writer->arena, &lib_writer->symbol_list, imp_symbol); + } break; + case COFF_ImportHeader_Const: { NotImplemented; } break; + default: { InvalidPath; } break; + } } } -internal void -coff_lib_writer_push_export_by_ordinal(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, U16 ordinal) -{ - String8 import_header = coff_make_import_header_by_ordinal(lib_writer->arena, machine, time_stamp, dll_name, ordinal, import_type); - coff_lib_writer_push_export(lib_writer, import_header); -} - -internal void -coff_lib_writer_push_export_by_name(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, String8 name, U16 hint) -{ - String8 import_header = coff_make_import_header_by_name(lib_writer->arena, machine, time_stamp, dll_name, name, hint, import_type); - coff_lib_writer_push_export(lib_writer, import_header); -} - internal String8List coff_lib_writer_serialize(Arena *arena, COFF_LibWriter *lib_writer, COFF_TimeStamp time_stamp, U16 mode, B32 emit_second_member) { diff --git a/src/coff/coff_lib_writer.h b/src/coff/coff_lib_writer.h index 76dee152..76b283c0 100644 --- a/src/coff/coff_lib_writer.h +++ b/src/coff/coff_lib_writer.h @@ -53,17 +53,17 @@ typedef struct COFF_LibWriter internal COFF_LibWriterSymbolNode * coff_lib_writer_symbol_list_push(Arena *arena, COFF_LibWriterSymbolList *list, COFF_LibWriterSymbol symbol); internal COFF_LibWriterMemberNode * coff_lib_writer_member_list_push(Arena *arena, COFF_LibWriterMemberList *list, COFF_LibWriterMember member); + internal COFF_LibWriterSymbol * coff_lib_writer_symbol_array_from_list(Arena *arena, COFF_LibWriterSymbolList list); internal COFF_LibWriterMember * coff_lib_writer_member_array_from_list(Arena *arena, COFF_LibWriterMemberList list); + internal void coff_lib_writer_symbol_array_sort(COFF_LibWriterSymbol *arr, U64 count); internal COFF_LibWriter * coff_lib_writer_alloc(void); -internal void coff_lib_writer_release(COFF_LibWriter **writer_ptr); -internal void coff_lib_writer_push_obj(COFF_LibWriter *writer, String8 obj_path, String8 obj_data); -internal void coff_lib_writer_push_export(COFF_LibWriter *writer, String8 raw_import_header); -internal void coff_lib_writer_push_export_by_ordinal(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, U16 ordinal); -internal void coff_lib_writer_push_export_by_name(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportType import_type, String8 name, U16 hint); -internal String8List coff_lib_writer_serialize(Arena *arena, COFF_LibWriter *lib_writer, COFF_TimeStamp time_stamp, U16 mode, B32 emit_second_member); +internal void coff_lib_writer_release(COFF_LibWriter **writer_ptr); +internal U64 coff_lib_writer_push_obj(COFF_LibWriter *writer, String8 obj_path, String8 obj_data); +internal void coff_lib_writer_push_import(COFF_LibWriter *lib_writer, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportByType import_by, String8 name, U16 hint_or_ordinal, COFF_ImportType import_type); +internal String8List coff_lib_writer_serialize(Arena *arena, COFF_LibWriter *lib_writer, COFF_TimeStamp time_stamp, U16 mode, B32 emit_second_member); #endif // COFF_LIB_WRITER_H From 65944f04442c9bb8687aee0707a0ee55d6326b62 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 15 May 2025 17:15:11 -0700 Subject: [PATCH 100/372] clean up pass over COFF writer --- src/coff/coff_obj_writer.c | 436 +++++++++++++++++++------------------ src/coff/coff_obj_writer.h | 5 +- 2 files changed, 226 insertions(+), 215 deletions(-) diff --git a/src/coff/coff_obj_writer.c b/src/coff/coff_obj_writer.c index 9b730d9c..8992ba26 100644 --- a/src/coff/coff_obj_writer.c +++ b/src/coff/coff_obj_writer.c @@ -16,6 +16,228 @@ coff_obj_writer_release(COFF_ObjWriter **obj_writer) *obj_writer = 0; } +internal String8 +coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8List srl = {0}; + + String8List string_table = {0}; + U32 *string_table_size = push_array(scratch.arena, U32, 1); + *string_table_size = sizeof(*string_table_size); + str8_list_push(scratch.arena, &string_table, str8_struct(string_table_size)); + + // + // assing section numbers + // + U64 obj_sections_count; + COFF_ObjSection **obj_sections; + { + obj_sections_count = obj_writer->sect_count; + obj_sections = push_array(scratch.arena, COFF_ObjSection *, obj_writer->sect_count); + U64 sect_idx = 0; + for (COFF_ObjSectionNode *sect_n = obj_writer->sect_first; sect_n != 0; sect_n = sect_n->next, sect_idx += 1) { + COFF_ObjSection *sect = §_n->v; + sect->section_number = sect_idx+1; + obj_sections[sect_idx] = sect; + + } + } + AssertAlways(obj_sections_count <= max_U16); + + // + // serialize symbol table + // + String8List symbol_table = {0}; + { + U64 symbol_idx = 0; + for (COFF_ObjSymbolNode *symbol_n = obj_writer->symbol_first; symbol_n != 0; symbol_n = symbol_n->next) { + COFF_ObjSymbol *s = &symbol_n->v; + + // assign symbol index + s->idx = symbol_idx++; + + COFF_Symbol16 *d = push_array(scratch.arena, COFF_Symbol16, 1); + str8_list_push(scratch.arena, &symbol_table, str8_struct(d)); + + COFF_SymbolName name = {0}; + // long name + if (s->name.size > sizeof(name.short_name)) { + U64 string_table_offset = string_table.total_size; + str8_list_push_cstr(scratch.arena, &string_table, s->name); + + name.long_name.zeroes = 0; + name.long_name.string_table_offset = safe_cast_u32(string_table_offset); + } + // short name + else { + MemoryCopyStr8(name.short_name, s->name); + MemoryZeroTyped(name.short_name + s->name.size, sizeof(name.short_name) - s->name.size); + } + + // symbol header + AssertAlways(s->aux_symbols.node_count <= max_U8); + d->name = name; + d->value = s->value; + switch (s->loc.type) { + case COFF_SymbolLocation_Null: break; + case COFF_SymbolLocation_Section: d->section_number = safe_cast_u16(s->loc.u.section->section_number); break; + case COFF_SymbolLocation_Abs: d->section_number = COFF_Symbol_AbsSection16; break; + case COFF_SymbolLocation_Undef: d->section_number = COFF_Symbol_UndefinedSection; break; + } + d->type = s->type; + d->storage_class = s->storage_class; + d->aux_symbol_count = 0; + + U64 start_symbol_idx = symbol_idx; + if (s->storage_class == COFF_SymStorageClass_WeakExternal) { + if (s->aux_symbols.node_count > 0) { + COFF_ObjSymbolWeak *s_weak = (COFF_ObjSymbolWeak *)s->aux_symbols.first->string.str; + COFF_SymbolWeakExt *d_weak = push_array(scratch.arena, COFF_SymbolWeakExt, 1); + d_weak->tag_index = s_weak->tag->idx; + d_weak->characteristics = s_weak->characteristics; + + str8_list_push(scratch.arena, &symbol_table, str8_struct(d_weak)); + symbol_idx += 1; + } + } else if (s->storage_class == COFF_SymStorageClass_Static) { + if (s->aux_symbols.node_count > 0) { + Assert(s->loc.type == COFF_SymbolLocation_Section); + COFF_ObjSection *sect = s->loc.u.section; + + COFF_ObjSymbolSecDef *s_sd = (COFF_ObjSymbolSecDef *)s->aux_symbols.first->string.str; + COFF_SymbolSecDef *d_sd = push_array(scratch.arena, COFF_SymbolSecDef, 1); + + d_sd->length = safe_cast_u32(sect->data.total_size); + d_sd->number_of_relocations = (U16)sect->reloc_count; + d_sd->check_sum = 0; + d_sd->number_lo = (U16)sect->section_number; + d_sd->selection = s_sd->selection; + + str8_list_push(scratch.arena, &symbol_table, str8_struct(d_sd)); + symbol_idx += 1; + } + } + + U8 processed_aux_symbol_count = (U8)(symbol_idx - start_symbol_idx); + + for (U64 aux_idx = processed_aux_symbol_count; aux_idx < s->aux_symbols.node_count; aux_idx += 1) { + COFF_Symbol16 *a = push_array(scratch.arena, COFF_Symbol16, 1); + str8_list_push(scratch.arena, &symbol_table, str8_struct(a)); + } + + d->aux_symbol_count = (U8)s->aux_symbols.node_count; + } + } + + // + // file header + // + COFF_FileHeader *file_header = push_array(scratch.arena, COFF_FileHeader, 1); + file_header->machine = obj_writer->machine; + file_header->section_count = obj_sections_count; + file_header->time_stamp = obj_writer->time_stamp; + file_header->symbol_table_foff = 0; + file_header->symbol_count = safe_cast_u32(symbol_table.node_count); + file_header->optional_header_size = 0; + file_header->flags = 0; + str8_list_push(scratch.arena, &srl, str8_struct(file_header)); + + // + // section table + // + + COFF_SectionHeader *sectab = push_array(scratch.arena, COFF_SectionHeader, obj_sections_count); + str8_list_push(scratch.arena, &srl, str8_array(sectab, obj_sections_count)); + { + for (U64 sect_idx = 0; sect_idx < obj_sections_count; sect_idx += 1) { + COFF_ObjSection *s = obj_sections[sect_idx]; + COFF_SectionHeader *d = §ab[sect_idx]; + + // section name + String8 sect_name = s->name; + if (sect_name.size > sizeof(d->name)) { + U64 sect_name_off = string_table.total_size; + str8_list_push_cstr(scratch.arena, &string_table, sect_name); + + sect_name = push_str8f(scratch.arena, "/%u", sect_name_off); + AssertAlways(sect_name.size <= sizeof(d->name)); + } + + // alloc zero nodes + for (String8Node *data_n = s->data.first; data_n != 0; data_n = data_n->next) { + if (data_n->string.str == 0 && data_n->string.size > 0) { + data_n->string = str8(push_array(scratch.arena, U8, data_n->string.size), data_n->string.size); + } + } + + // section data + U64 data_foff = 0; + U64 data_size = 0; + if (s->data.total_size > 0) { + data_foff = srl.total_size; + data_size = s->data.total_size; + str8_list_concat_in_place(&srl, &s->data); + } + + // section relocs + U64 relocs_foff = 0; + if (s->reloc_count) { + AssertAlways(s->reloc_count <= max_U16); + COFF_Reloc *relocs = push_array(scratch.arena, COFF_Reloc, s->reloc_count); + U64 reloc_idx = 0; + for (COFF_ObjRelocNode *reloc_n = s->reloc_first; reloc_n != 0; reloc_n = reloc_n->next, reloc_idx += 1) { + COFF_ObjReloc *rs = &reloc_n->v; + COFF_Reloc *rd = &relocs[reloc_idx]; + rd->apply_off = rs->apply_off; + rd->isymbol = rs->symbol->idx; + rd->type = rs->type; + } + relocs_foff = srl.total_size; + str8_list_push(scratch.arena, &srl, str8_array(relocs, s->reloc_count)); + } + + // section header + MemoryCopyStr8(d->name, sect_name); + MemoryZeroTyped(d->name + sect_name.size, sizeof(d->name) - sect_name.size); + d->vsize = 0; + d->voff = 0; + d->fsize = data_size; + d->foff = data_foff; + d->relocs_foff = relocs_foff; + d->lines_foff = 0; + d->reloc_count = safe_cast_u32(s->reloc_count); + d->line_count = 0; + d->flags = s->flags; + } + } + + // + // symbol table + // + if (symbol_table.total_size || string_table.total_size > sizeof(*string_table_size)) { + file_header->symbol_table_foff = srl.total_size; + str8_list_concat_in_place(&srl, &symbol_table); + } + + // + // string table + // + if (string_table.total_size) { + *string_table_size = safe_cast_u32(string_table.total_size); + str8_list_concat_in_place(&srl, &string_table); + } + + // + // join + // + String8 obj = str8_list_join(arena, &srl, 0); + + scratch_end(scratch); + return obj; +} + internal COFF_ObjSection * coff_obj_writer_push_section(COFF_ObjWriter *obj_writer, String8 name, COFF_SectionFlags flags, String8 data) { @@ -227,219 +449,5 @@ coff_obj_section_is_before(void *raw_a, void *raw_b) return (*a)->section_number < (*b)->section_number; } -internal String8 -coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer) -{ - Temp scratch = scratch_begin(&arena, 1); - - String8List srl = {0}; - - String8List string_table = {0}; - U32 *string_table_size = push_array(scratch.arena, U32, 1); - *string_table_size = sizeof(*string_table_size); - str8_list_push(scratch.arena, &string_table, str8_struct(string_table_size)); - - // - // assing section numbers - // - U64 obj_sections_count; - COFF_ObjSection **obj_sections; - { - obj_sections_count = obj_writer->sect_count; - obj_sections = push_array(scratch.arena, COFF_ObjSection *, obj_writer->sect_count); - U64 sect_idx = 0; - for (COFF_ObjSectionNode *sect_n = obj_writer->sect_first; sect_n != 0; sect_n = sect_n->next, sect_idx += 1) { - COFF_ObjSection *sect = §_n->v; - sect->section_number = sect_idx+1; - obj_sections[sect_idx] = sect; - - } - } - AssertAlways(obj_sections_count <= max_U16); - - // - // serialize symbol table - // - String8List symbol_table = {0}; - { - U64 symbol_idx = 0; - for (COFF_ObjSymbolNode *symbol_n = obj_writer->symbol_first; symbol_n != 0; symbol_n = symbol_n->next) { - COFF_ObjSymbol *s = &symbol_n->v; - - // assign symbol index - s->idx = symbol_idx++; - - COFF_Symbol16 *d = push_array(scratch.arena, COFF_Symbol16, 1); - str8_list_push(scratch.arena, &symbol_table, str8_struct(d)); - - COFF_SymbolName name = {0}; - // long name - if (s->name.size > sizeof(name.short_name)) { - U64 string_table_offset = string_table.total_size; - str8_list_push_cstr(scratch.arena, &string_table, s->name); - - name.long_name.zeroes = 0; - name.long_name.string_table_offset = safe_cast_u32(string_table_offset); - } - // short name - else { - MemoryCopyStr8(name.short_name, s->name); - MemoryZeroTyped(name.short_name + s->name.size, sizeof(name.short_name) - s->name.size); - } - - // symbol header - AssertAlways(s->aux_symbols.node_count <= max_U8); - d->name = name; - d->value = s->value; - switch (s->loc.type) { - case COFF_SymbolLocation_Null: break; - case COFF_SymbolLocation_Section: d->section_number = safe_cast_u16(s->loc.u.section->section_number); break; - case COFF_SymbolLocation_Abs: d->section_number = COFF_Symbol_AbsSection16; break; - case COFF_SymbolLocation_Undef: d->section_number = COFF_Symbol_UndefinedSection; break; - } - d->type = s->type; - d->storage_class = s->storage_class; - d->aux_symbol_count = 0; - - U64 start_symbol_idx = symbol_idx; - if (s->storage_class == COFF_SymStorageClass_WeakExternal) { - if (s->aux_symbols.node_count > 0) { - COFF_ObjSymbolWeak *s_weak = (COFF_ObjSymbolWeak *)s->aux_symbols.first->string.str; - COFF_SymbolWeakExt *d_weak = push_array(scratch.arena, COFF_SymbolWeakExt, 1); - d_weak->tag_index = s_weak->tag->idx; - d_weak->characteristics = s_weak->characteristics; - - str8_list_push(scratch.arena, &symbol_table, str8_struct(d_weak)); - symbol_idx += 1; - } - } else if (s->storage_class == COFF_SymStorageClass_Static) { - if (s->aux_symbols.node_count > 0) { - Assert(s->loc.type == COFF_SymbolLocation_Section); - COFF_ObjSection *sect = s->loc.u.section; - - COFF_ObjSymbolSecDef *s_sd = (COFF_ObjSymbolSecDef *)s->aux_symbols.first->string.str; - COFF_SymbolSecDef *d_sd = push_array(scratch.arena, COFF_SymbolSecDef, 1); - - d_sd->length = safe_cast_u32(sect->data.total_size); - d_sd->number_of_relocations = (U16)sect->reloc_count; - d_sd->check_sum = 0; - d_sd->number_lo = (U16)sect->section_number; - d_sd->selection = s_sd->selection; - - str8_list_push(scratch.arena, &symbol_table, str8_struct(d_sd)); - symbol_idx += 1; - } - } - - U8 processed_aux_symbol_count = (U8)(symbol_idx - start_symbol_idx); - - for (U64 aux_idx = processed_aux_symbol_count; aux_idx < s->aux_symbols.node_count; aux_idx += 1) { - COFF_Symbol16 *a = push_array(scratch.arena, COFF_Symbol16, 1); - str8_list_push(scratch.arena, &symbol_table, str8_struct(a)); - } - - d->aux_symbol_count = (U8)s->aux_symbols.node_count; - } - } - - // - // file header - // - COFF_FileHeader *file_header = push_array(scratch.arena, COFF_FileHeader, 1); - file_header->machine = obj_writer->machine; - file_header->section_count = obj_sections_count; - file_header->time_stamp = obj_writer->time_stamp; - file_header->symbol_table_foff = 0; - file_header->symbol_count = safe_cast_u32(symbol_table.node_count); - file_header->optional_header_size = 0; - file_header->flags = 0; - str8_list_push(scratch.arena, &srl, str8_struct(file_header)); - - // - // section table - // - - COFF_SectionHeader *sectab = push_array(scratch.arena, COFF_SectionHeader, obj_sections_count); - str8_list_push(scratch.arena, &srl, str8_array(sectab, obj_sections_count)); - { - for (U64 sect_idx = 0; sect_idx < obj_sections_count; sect_idx += 1) { - COFF_ObjSection *s = obj_sections[sect_idx]; - COFF_SectionHeader *d = §ab[sect_idx]; - - // section name - String8 sect_name = s->name; - if (sect_name.size > sizeof(d->name)) { - U64 sect_name_off = string_table.total_size; - str8_list_push_cstr(scratch.arena, &string_table, sect_name); - - sect_name = push_str8f(scratch.arena, "/%u", sect_name_off); - AssertAlways(sect_name.size <= sizeof(d->name)); - } - - // section data - U64 data_foff = 0; - U64 data_size = 0; - if (s->data.total_size > 0) { - data_foff = srl.total_size; - data_size = s->data.total_size; - str8_list_concat_in_place(&srl, &s->data); - } - - // section relocs - U64 relocs_foff = 0; - if (s->reloc_count) { - AssertAlways(s->reloc_count <= max_U16); - COFF_Reloc *relocs = push_array(scratch.arena, COFF_Reloc, s->reloc_count); - U64 reloc_idx = 0; - for (COFF_ObjRelocNode *reloc_n = s->reloc_first; reloc_n != 0; reloc_n = reloc_n->next, reloc_idx += 1) { - COFF_ObjReloc *rs = &reloc_n->v; - COFF_Reloc *rd = &relocs[reloc_idx]; - rd->apply_off = rs->apply_off; - rd->isymbol = rs->symbol->idx; - rd->type = rs->type; - } - relocs_foff = srl.total_size; - str8_list_push(scratch.arena, &srl, str8_array(relocs, s->reloc_count)); - } - - // section header - MemoryCopyStr8(d->name, sect_name); - MemoryZeroTyped(d->name + sect_name.size, sizeof(d->name) - sect_name.size); - d->vsize = 0; - d->voff = 0; - d->fsize = data_size; - d->foff = data_foff; - d->relocs_foff = relocs_foff; - d->lines_foff = 0; - d->reloc_count = safe_cast_u32(s->reloc_count); - d->line_count = 0; - d->flags = s->flags; - } - } - - // - // symbol table - // - if (symbol_table.total_size || string_table.total_size > sizeof(*string_table_size)) { - file_header->symbol_table_foff = srl.total_size; - str8_list_concat_in_place(&srl, &symbol_table); - } - - // - // string table - // - if (string_table.total_size) { - *string_table_size = safe_cast_u32(string_table.total_size); - str8_list_concat_in_place(&srl, &string_table); - } - - // - // join - // - String8 obj = str8_list_join(arena, &srl, 0); - - scratch_end(scratch); - return obj; -} diff --git a/src/coff/coff_obj_writer.h b/src/coff/coff_obj_writer.h index e537a632..bcb7ca0a 100644 --- a/src/coff/coff_obj_writer.h +++ b/src/coff/coff_obj_writer.h @@ -95,7 +95,8 @@ typedef struct COFF_ObjWriter //////////////////////////////// internal COFF_ObjWriter * coff_obj_writer_alloc(COFF_TimeStamp time_stamp, COFF_MachineType machine); -internal void coff_obj_writer_release(COFF_ObjWriter **obj_writer); +internal void coff_obj_writer_release(COFF_ObjWriter **obj_writer); +internal String8 coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer); internal COFF_ObjSection * coff_obj_writer_push_section(COFF_ObjWriter *obj_writer, String8 name, COFF_SectionFlags flags, String8 data); @@ -115,5 +116,7 @@ internal COFF_ObjReloc * coff_obj_writer_section_push_reloc(COFF_ObjWriter *obj_ internal COFF_ObjReloc * coff_obj_writer_section_push_reloc_addr(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol); internal COFF_ObjReloc * coff_obj_writer_section_push_reloc_voff(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol); +internal void coff_obj_writer_push_directive(COFF_ObjWriter *obj_writer, String8 directive); + #endif // COFF_OBJ_WRITER_H From 71596b2f3e6beaf52cb0f0274460f777dae174fb Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 15 May 2025 17:15:37 -0700 Subject: [PATCH 101/372] collapse make API for imports --- src/coff/coff.c | 62 ++++++++----------------------------------------- src/coff/coff.h | 3 ++- 2 files changed, 12 insertions(+), 53 deletions(-) diff --git a/src/coff/coff.c b/src/coff/coff.c index a474f698..2cd9bf29 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -301,18 +301,19 @@ coff_ordinal_data_from_hint(Arena *arena, COFF_MachineType machine, U16 hint) } internal String8 -coff_make_import_header_by_name(Arena *arena, - COFF_MachineType machine, - COFF_TimeStamp time_stamp, - String8 dll_name, - String8 name, - U16 hint, - COFF_ImportType type) +coff_make_import_header(Arena *arena, + COFF_MachineType machine, + COFF_TimeStamp time_stamp, + String8 dll_name, + COFF_ImportByType import_by, + String8 name, + U16 hint_or_ordinal, + COFF_ImportType type) { COFF_ImportHeaderFlags flags = 0; flags |= (type & COFF_ImportHeader_TypeMask) << COFF_ImportHeader_TypeShift; - flags |= COFF_ImportBy_Name << COFF_ImportHeader_ImportByShift; - + flags |= import_by << COFF_ImportHeader_ImportByShift; + COFF_ImportHeader header = {0}; header.sig1 = COFF_MachineType_Unknown; header.sig2 = max_U16; @@ -320,7 +321,6 @@ coff_make_import_header_by_name(Arena *arena, header.machine = machine; header.time_stamp = time_stamp; header.data_size = safe_cast_u32(name.size + dll_name.size + 2); - header.hint_or_ordinal = hint; header.flags = flags; // alloc memory @@ -344,48 +344,6 @@ coff_make_import_header_by_name(Arena *arena, return import_data; } -internal String8 -coff_make_import_header_by_ordinal(Arena *arena, - COFF_MachineType machine, - COFF_TimeStamp time_stamp, - String8 dll_name, - U16 ordinal, - COFF_ImportType type) -{ - COFF_ImportHeaderFlags flags = 0; - flags |= (type & COFF_ImportHeader_TypeMask) << COFF_ImportHeader_TypeShift; - flags |= COFF_ImportBy_Ordinal << COFF_ImportHeader_ImportByShift; - - COFF_ImportHeader header = {0}; - header.sig1 = COFF_MachineType_Unknown; - header.sig2 = max_U16; - header.version = 0; - header.machine = machine; - header.time_stamp = time_stamp; - header.data_size = safe_cast_u32(dll_name.size + 2); - header.hint_or_ordinal = ordinal; - header.flags = flags; - - // alloc memory - U64 buffer_size = sizeof(header) + header.data_size; - U8 *buffer = push_array_no_zero(arena, U8, buffer_size); - - // copy header - MemoryCopy(buffer, &header, sizeof(header)); - - // no function name write zero - U8 *func_name = buffer + sizeof(header); - func_name[0] = 0; - - // copy dll name - U8 *dll_name_buffer = buffer + sizeof(header) + /* name.size */ + 1; - MemoryCopy(dll_name_buffer, dll_name.str, dll_name.size); - dll_name_buffer[dll_name.size] = 0; - - String8 import_data = str8(buffer, buffer_size); - return import_data; -} - internal U64 coff_word_size_from_machine(COFF_MachineType machine) { diff --git a/src/coff/coff.h b/src/coff/coff.h index 3cbe8f8e..c7c59b78 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -611,7 +611,8 @@ internal U32 coff_make_ordinal32(U16 hint); internal U64 coff_make_ordinal64(U16 hint); internal String8 coff_ordinal_data_from_hint(Arena *arena, COFF_MachineType machine, U16 hint); -internal String8 coff_make_import_lookup (Arena *arena, U16 hint, String8 name); +internal String8 coff_make_import_lookup(Arena *arena, U16 hint, String8 name); +internal String8 coff_make_import_header(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportByType import_by, String8 name, U16 hint_or_ordinal, COFF_ImportType type); //////////////////////////////// // Misc From f2c7e698445b9ceeacd9b2a06b953839212e9b66 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 15 May 2025 17:15:53 -0700 Subject: [PATCH 102/372] natvis for hash table --- src/linker/linker.natvis | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/linker/linker.natvis b/src/linker/linker.natvis index 82533c44..60194335 100644 --- a/src/linker/linker.natvis +++ b/src/linker/linker.natvis @@ -26,11 +26,11 @@ - + {{count={count} first={first} last={last} }} @@ -115,6 +115,28 @@ v + + + + empty + + + first + next + v + + + + + + cap + count + free_buckets + + cap + buckets + + From ac261b3eed2fcfa77915768b7a3ad20130c448fe Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 15 May 2025 17:18:06 -0700 Subject: [PATCH 103/372] trim obj paths pulled in from libs --- src/linker/lnk_error.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/linker/lnk_error.c b/src/linker/lnk_error.c index 7ff046f0..c2ee9ba7 100644 --- a/src/linker/lnk_error.c +++ b/src/linker/lnk_error.c @@ -74,7 +74,7 @@ lnk_error_with_loc_fv(LNK_ErrorCode code, String8 obj_path, String8 lib_path, ch String8 text = push_str8fv(scratch.arena, fmt, args); if (obj_path.size) { if (lib_path.size) { - lnk_error(code, "%S(%S): %S", lib_path, obj_path, text); + lnk_error(code, "%S(%S): %S", lib_path, str8_skip_last_slash(obj_path), text); } else { lnk_error(code, "%S: %S", obj_path, text); } From c209dd730a5e8518cb5dfad4552f65a23c180f98 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 15 May 2025 17:19:00 -0700 Subject: [PATCH 104/372] set ordinal low in export finalize path --- src/pe/pe_make_export_table.c | 18 +++++++++++++++++- src/pe/pe_make_export_table.h | 23 ++++++++++++----------- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/pe/pe_make_export_table.c b/src/pe/pe_make_export_table.c index e4d37e02..1c60867b 100644 --- a/src/pe/pe_make_export_table.c +++ b/src/pe/pe_make_export_table.c @@ -15,6 +15,20 @@ pe_name_from_export_parse(PE_ExportParse *exp) return name; } +internal U16 +pe_hint_or_ordinal_from_export_parse(PE_ExportParse *exp) +{ + U16 hint_or_ordinal; + if (exp->import_by == COFF_ImportBy_Ordinal) { + hint_or_ordinal = exp->ordinal; + } else if (exp->import_by == COFF_ImportBy_Name) { + hint_or_ordinal = exp->hint; + } else { + NotImplemented; + } + return hint_or_ordinal; +} + internal PE_ExportParsePtrArray pe_array_from_export_list(Arena *arena, PE_ExportParseList list) { @@ -168,6 +182,7 @@ pe_finalize_export_list(Arena *arena, PE_ExportParseList export_list) } PE_FinalizedExports result = {0}; + result.ordinal_low = ordinal_low; result.named_exports = named_exports; result.forwarder_exports = forwarder_exports; result.ordinal_exports = ordinal_exports; @@ -331,7 +346,8 @@ pe_make_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_s continue; } String8 name = pe_name_from_export_parse(exp); - coff_lib_writer_push_export_by_name(lib_writer, machine, time_stamp, dll_name, exp->type, name, exp->hint); + U16 hint_or_ordinal = pe_hint_or_ordinal_from_export_parse(exp); + coff_lib_writer_push_import(lib_writer, machine, time_stamp, dll_name, exp->import_by, name, hint_or_ordinal, exp->type); } // serialize lib diff --git a/src/pe/pe_make_export_table.h b/src/pe/pe_make_export_table.h index e5a5e6ad..3249d815 100644 --- a/src/pe/pe_make_export_table.h +++ b/src/pe/pe_make_export_table.h @@ -6,17 +6,18 @@ typedef struct PE_ExportParse { - String8 obj_path; - String8 lib_path; - String8 name; - String8 alias; - COFF_ImportType type; - U16 ordinal; - U16 hint; - B32 is_ordinal_assigned; - B32 is_noname_present; - B32 is_private; - B32 is_forwarder; + String8 obj_path; + String8 lib_path; + String8 name; + String8 alias; + COFF_ImportType type; + COFF_ImportByType import_by; + U16 hint; + U16 ordinal; + B32 is_ordinal_assigned; + B32 is_noname_present; + B32 is_private; + B32 is_forwarder; } PE_ExportParse; typedef struct PE_ExportParseNode From 1cc23e42ff90cfef6bae5e988e650e91afe26913 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 15 May 2025 17:19:22 -0700 Subject: [PATCH 105/372] delay import objs --- src/pe/pe_make_import_table.c | 180 ++++++++++++++++++---------------- src/pe/pe_make_import_table.h | 4 + 2 files changed, 100 insertions(+), 84 deletions(-) diff --git a/src/pe/pe_make_import_table.c b/src/pe/pe_make_import_table.c index 8935e0a9..15b54396 100644 --- a/src/pe/pe_make_import_table.c +++ b/src/pe/pe_make_import_table.c @@ -107,48 +107,92 @@ pe_make_tail_merge_thunk_x64(COFF_ObjWriter *obj_writer, COFF_ObjSection *code_s return tail_merge_symbol; } +internal String8 +pe_make_import_entry_obj_delayed(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols) +{ + ProfBeginFunction(); + + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); + String8 dll_name_cstr = push_cstr(arena, dll_name); + PE_DelayedImportEntry *null_import_entry = push_array(obj_writer->arena, PE_DelayedImportEntry, 1); + COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + COFF_ObjSection *didat2 = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$2"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(null_import_entry)); + COFF_ObjSection *didat6 = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$6"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); + coff_obj_writer_push_symbol_extern(obj_writer, push_str8f(obj_writer->arena, "__DELAY_IMPORT_DESCRIPTOR_%S", dll_name), 0, didat2); + coff_obj_writer_push_symbol_sect(obj_writer, didat2->name, didat2); + coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__NULL_DELAY_IMPORT_DESCRIPTOR")); + coff_obj_writer_push_symbol_undef(obj_writer, push_str8f(obj_writer->arena, "\x7f%S_NULL_THUNK_DATA_DLA", dll_name)); + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + coff_obj_writer_release(&obj_writer); + + ProfEnd(); + return obj; +} + +internal String8 +pe_make_null_import_descriptor_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols) +{ + ProfBeginFunction(); + + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); + PE_DelayedImportEntry *import_desc = push_array(obj_writer->arena, PE_DelayedImportEntry, 1); + COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + COFF_ObjSection *didat3 = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$3"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(import_desc)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("__NULL_DELAY_IMPORT_DESCRIPTOR"), 0, didat3); + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + coff_obj_writer_release(&obj_writer); + + ProfEnd(); + return obj; +} + +internal String8 +pe_make_null_thunk_data_obj_delayed(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols) +{ + ProfBeginFunction(); + + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); + String8 dll_name_cstr = push_cstr(obj_writer->arena, dll_name); + U64 import_size = coff_word_size_from_machine(machine); + String8 null_thunk = str8(push_array(obj_writer->arena, U8, import_size), import_size); + String8 null_lookup = str8(push_array(obj_writer->arena, U8, import_size), import_size); + COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + COFF_ObjSection *didat4 = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$4"), PE_IDATA_SECTION_FLAGS|coff_section_flag_from_align_size(import_size), null_lookup); + COFF_ObjSection *didat5 = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$5"), PE_IDATA_SECTION_FLAGS|coff_section_flag_from_align_size(import_size), null_thunk); + COFF_ObjSection *didat8 = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$8"), PE_IDATA_SECTION_FLAGS|coff_section_flag_from_align_size(import_size), null_thunk); + COFF_ObjSection *didat9 = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$9"), PE_IDATA_SECTION_FLAGS|coff_section_flag_from_align_size(import_size), null_thunk); + coff_obj_writer_push_symbol_extern(obj_writer, push_str8f(obj_writer->arena, "\x7f%S_NULL_THUNK_DATA_DLA", dll_name), 0, didat5); + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + + ProfEnd(); + return obj; +} + internal String8 pe_make_import_entry_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols) { ProfBeginFunction(); - - Assert(machine == COFF_MachineType_X64); - Assert(str8_match_lit("dll", str8_skip_last_dot(dll_name), StringMatchFlag_CaseInsensitive|StringMatchFlag_RightSideSloppy)); - - String8 dll_name_no_ext = str8_chop_last_dot(dll_name); COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); - String8 dll_name_cstr = push_cstr(obj_writer->arena, dll_name); + PE_ImportEntry *null_import_entry = push_array(obj_writer->arena, PE_ImportEntry, 1); COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); - COFF_ObjSection *idata2 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$2"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_zero()); - COFF_ObjSection *idata6 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$6"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); + COFF_ObjSection *idata2 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$2"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(null_import_entry)); + COFF_ObjSection *idata6 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$6"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); + coff_obj_writer_push_symbol_extern(obj_writer, push_str8f(obj_writer->arena, "__IMPORT_DESCRIPTOR_%S", dll_name), 0, idata2); + coff_obj_writer_push_symbol_sect(obj_writer, idata2->name, idata2); + + COFF_ObjSymbol *null_desc_undef = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__NULL_IMPORT_DESCRIPTOR")); + COFF_ObjSymbol *null_thunk_undef = coff_obj_writer_push_symbol_undef(obj_writer, push_str8f(arena, "\x7f%S_NULL_THUNK_DATA", dll_name)); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@comp.id"), 0x1018175, COFF_SymStorageClass_Static); - { - String8 symbol_name = push_str8f(arena, "__IMPORT_DESCRIPTOR_%S", dll_name_no_ext); - coff_obj_writer_push_symbol_extern(obj_writer, symbol_name, 0, idata2); - } - COFF_ObjSymbol *idata2_symbol = coff_obj_writer_push_symbol_sect(obj_writer, idata2->name, idata2); COFF_ObjSymbol *idata6_symbol = coff_obj_writer_push_symbol_static(obj_writer, idata6->name, 0, idata6); COFF_ObjSymbol *idata4_symbol = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".idata$4"), COFF_SectionFlag_MemWrite|COFF_SectionFlag_MemRead|COFF_SectionFlag_CntInitializedData); COFF_ObjSymbol *idata5_symbol = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".idata$5"), COFF_SectionFlag_MemWrite|COFF_SectionFlag_MemRead|COFF_SectionFlag_CntInitializedData); - coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__NULL_IMPORT_DESCRIPTOR")); - { - String8 symbol_name = push_str8f(arena, "\x7f%S_NULL_THUNK_DATA", dll_name_no_ext); - coff_obj_writer_push_symbol_undef(obj_writer, symbol_name); - } - - { - PE_ImportEntry *import_entry = push_array(obj_writer->arena, PE_ImportEntry, 1); - str8_list_push(obj_writer->arena, &idata2->data, str8_struct(import_entry)); - coff_obj_writer_section_push_reloc(obj_writer, idata2, OffsetOf(PE_ImportEntry, name_voff), idata6_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, idata2, OffsetOf(PE_ImportEntry, lookup_table_voff), idata4_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, idata2, OffsetOf(PE_ImportEntry, import_addr_table_voff), idata5_symbol, COFF_Reloc_X64_Addr32Nb); - } + coff_obj_writer_section_push_reloc_voff(obj_writer, idata2, OffsetOf(PE_ImportEntry, name_voff), idata6_symbol); + coff_obj_writer_section_push_reloc_voff(obj_writer, idata2, OffsetOf(PE_ImportEntry, lookup_table_voff), idata4_symbol); + coff_obj_writer_section_push_reloc_voff(obj_writer, idata2, OffsetOf(PE_ImportEntry, import_addr_table_voff), idata5_symbol); String8 obj = coff_obj_writer_serialize(arena, obj_writer); - coff_obj_writer_release(&obj_writer); ProfEnd(); @@ -161,16 +205,11 @@ pe_make_null_import_descriptor_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF ProfBeginFunction(); COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); - PE_ImportEntry *import_desc = push_array(obj_writer->arena, PE_ImportEntry, 1); COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); - COFF_ObjSection *idata3 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$3"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(import_desc)); - - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@comp.id"), 0x01018175, COFF_SymStorageClass_Static); + COFF_ObjSection *idata3 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$3"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_struct(import_desc)); coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("__NULL_IMPORT_DESCRIPTOR"), 0, idata3); - String8 obj = coff_obj_writer_serialize(arena, obj_writer); - coff_obj_writer_release(&obj_writer); ProfEnd(); @@ -181,35 +220,16 @@ internal String8 pe_make_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols) { ProfBeginFunction(); - - Assert(str8_match_lit("dll", str8_skip_last_dot(dll_name), StringMatchFlag_CaseInsensitive|StringMatchFlag_RightSideSloppy)); COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(time_stamp, machine); - - COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); - COFF_ObjSection *idata4 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$4"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite, str8_zero()); - COFF_ObjSection *idata5 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$5"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite, str8_zero()); - U64 import_size = coff_word_size_from_machine(machine); - - U8 *null_thunk = push_array(obj_writer->arena, U8, import_size); - U8 *null_lookup = push_array(obj_writer->arena, U8, import_size); - - str8_list_push(obj_writer->arena, &idata5->data, str8_array(null_thunk, import_size)); - str8_list_push(obj_writer->arena, &idata4->data, str8_array(null_lookup, import_size)); - - idata4->flags |= coff_section_flag_from_align_size(import_size); - idata5->flags |= coff_section_flag_from_align_size(import_size); - - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("@comp.id"), 0x1018175, COFF_SymStorageClass_Static); - { - String8 dll_name_no_ext = str8_chop_last_dot(dll_name); - String8 symbol_name = push_str8f(arena, "\x7f%S_NULL_THUNK_DATA", dll_name_no_ext); - coff_obj_writer_push_symbol_extern(obj_writer, symbol_name, 0, idata5); - } - + String8 null_lookup = str8(push_array(obj_writer->arena, U8, import_size), import_size); + String8 null_thunk = str8(push_array(obj_writer->arena, U8, import_size), import_size); + COFF_ObjSection *debugs = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + COFF_ObjSection *idata4 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$4"), PE_IDATA_SECTION_FLAGS|coff_section_flag_from_align_size(import_size), null_lookup); + COFF_ObjSection *idata5 = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$5"), PE_IDATA_SECTION_FLAGS|coff_section_flag_from_align_size(import_size), null_thunk); + coff_obj_writer_push_symbol_extern(obj_writer, push_str8f(obj_writer->arena, "\x7f%S_NULL_THUNK_DATA", dll_name), 0, idata5); String8 obj = coff_obj_writer_serialize(arena, obj_writer); - coff_obj_writer_release(&obj_writer); ProfEnd(); @@ -238,53 +258,45 @@ pe_make_import_dll_obj_static(Arena *arena, COFF_TimeStamp time_stamp, COFF_Mach COFF_ObjSymbol *iat_symbol = coff_obj_writer_push_symbol_static(obj_writer, iat_sect->name, 0, iat_sect); COFF_ObjSymbol *dll_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll_name_sect->name, 0, dll_name_sect); + // patch import DLL header coff_obj_writer_section_push_reloc_voff(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, lookup_table_voff), ilt_symbol); coff_obj_writer_section_push_reloc_voff(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, name_voff), dll_name_symbol); coff_obj_writer_section_push_reloc_voff(obj_writer, dll_sect, OffsetOf(PE_ImportEntry, import_addr_table_voff), iat_symbol); for (String8Node *import_header_n = import_headers.first; import_header_n != 0; import_header_n = import_header_n->next) { - COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(import_header_n->string); - - String8 iat_symbol_name = push_str8f(obj_writer->arena, "__imp_%S", import_header.func_name); - U64 iat_offset = iat_sect->data.total_size; - U64 ilt_offset = ilt_sect->data.total_size; - U64 int_offset = int_sect->data.total_size; + COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(import_header_n->string); COFF_ObjSymbol *iat_symbol = 0; switch (import_header.import_by) { case COFF_ImportBy_Ordinal: { String8 ordinal_data = coff_ordinal_data_from_hint(obj_writer->arena, import_header.machine, import_header.hint_or_ordinal); + String8 iat_symbol_name = push_str8f(obj_writer->arena, "__imp_%S", import_header.func_name); + iat_symbol = coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_sect->data.total_size, iat_sect); str8_list_push(obj_writer->arena, &ilt_sect->data, ordinal_data); str8_list_push(obj_writer->arena, &iat_sect->data, ordinal_data); - - iat_symbol = coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_offset, iat_sect); } break; case COFF_ImportBy_Name: { // put together name look up entry + COFF_ObjSymbol *int_symbol = coff_obj_writer_push_symbol_static(obj_writer, int_sect->name, int_sect->data.total_size, int_sect); String8 int_data = coff_make_import_lookup(obj_writer->arena, import_header.hint_or_ordinal, import_header.func_name); str8_list_push(obj_writer->arena, &int_sect->data, int_data); - // create symbol for lookup entry - COFF_ObjSymbol *int_symbol = coff_obj_writer_push_symbol_static(obj_writer, int_sect->name, int_offset, int_sect); - // in the file IAT mirrors ILT, dynamic linker later overwrites it with imported function addresses + String8 iat_symbol_name = push_str8f(obj_writer->arena, "__imp_%S", import_header.func_name); + iat_symbol = coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_sect->data.total_size, iat_sect); + + // patch IAT and ILT + coff_obj_writer_section_push_reloc_voff(obj_writer, ilt_sect, ilt_sect->data.total_size, int_symbol); + coff_obj_writer_section_push_reloc_voff(obj_writer, iat_sect, iat_sect->data.total_size, int_symbol); + U64 import_size = coff_word_size_from_machine(import_header.machine); U8 *import_entry = push_array(obj_writer->arena, U8, import_size); str8_list_push(obj_writer->arena, &ilt_sect->data, str8_array(import_entry, import_size)); str8_list_push(obj_writer->arena, &iat_sect->data, str8_array(import_entry, import_size)); - - iat_symbol = coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_offset, iat_sect); - - // patch IAT and ILT - coff_obj_writer_section_push_reloc_voff(obj_writer, ilt_sect, ilt_offset, int_symbol); - coff_obj_writer_section_push_reloc_voff(obj_writer, iat_sect, iat_offset, int_symbol); - } break; - case COFF_ImportBy_Undecorate: { - NotImplemented; - } break; - case COFF_ImportBy_NameNoPrefix: { - NotImplemented; } break; + case COFF_ImportBy_Undecorate: { NotImplemented; } break; + case COFF_ImportBy_NameNoPrefix: { NotImplemented; } break; + default: { InvalidPath; } break; } // emit thunks @@ -292,8 +304,8 @@ pe_make_import_dll_obj_static(Arena *arena, COFF_TimeStamp time_stamp, COFF_Mach if (import_header.type == COFF_ImportHeader_Code) { switch (import_header.machine) { case COFF_MachineType_Unknown: {} break; - case COFF_MachineType_X64: { jmp_thunk_symbol = pe_make_indirect_jump_thunk_x64(obj_writer, code_sect, iat_symbol, import_header.func_name); } break; - default: { NotImplemented; } break; + case COFF_MachineType_X64: { jmp_thunk_symbol = pe_make_indirect_jump_thunk_x64(obj_writer, code_sect, iat_symbol, import_header.func_name); } break; + default: { NotImplemented; } break; } } } diff --git a/src/pe/pe_make_import_table.h b/src/pe/pe_make_import_table.h index b88d3905..5ff7006e 100644 --- a/src/pe/pe_make_import_table.h +++ b/src/pe/pe_make_import_table.h @@ -11,6 +11,10 @@ internal COFF_ObjSymbol * pe_make_tail_merge_thunk_x64(COFF_ObjWriter *obj_write internal String8 pe_make_import_dll_obj_static(Arena *arena, COFF_TimeStamp time_stmap, COFF_MachineType machine, String8 dll_name, String8 debug_symbols, String8List import_headers); internal String8 pe_make_import_dll_obj_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 dll_name, String8 delay_load_helper_name, String8 debug_symbols, String8List import_headers, B32 emit_biat, B32 emit_uiat); +internal String8 pe_make_import_entry_obj_delayed(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols); +internal String8 pe_make_null_import_descriptor_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols); +internal String8 pe_make_null_thunk_data_delayed(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols); + internal String8 pe_make_import_entry_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols); internal String8 pe_make_null_import_descriptor_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols); internal String8 pe_make_null_thunk_data_obj(Arena *arena, String8 dll_name, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 debug_symbols); From a2bef106a137719539bf1dd578a547252895e491 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 15 May 2025 17:20:25 -0700 Subject: [PATCH 106/372] handle case where symbol doesn't have obj --- src/linker/lnk_obj.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 6a1f12da..a0c20dc8 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -5,7 +5,9 @@ internal void lnk_error_obj(LNK_ErrorCode code, LNK_Obj *obj, char *fmt, ...) { va_list args; va_start(args, fmt); - lnk_error_with_loc_fv(code, obj->path, obj->lib_path, fmt, args); + String8 obj_path = obj ? obj->path : str8_lit("RADLINK"); + String8 lib_path = obj ? obj->lib_path : str8_zero(); + lnk_error_with_loc_fv(code, obj_path, lib_path, fmt, args); va_end(args); } From 6fd9ab73889e6a5a6a8306d9c52567117a8bfb30 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 15 May 2025 17:21:33 -0700 Subject: [PATCH 107/372] strip postfix when searching for section --- src/linker/lnk_section_table.c | 14 +++++++------- src/linker/lnk_section_table.h | 1 - 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index 6cce1613..de6ed91b 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -189,20 +189,20 @@ lnk_section_table_remove(LNK_SectionTable *sectab, String8 name) } } - // push to free list - SLLQueuePush(sectab->free_list.first, sectab->free_list.last, node); - sectab->free_list.count += 1; - ProfEnd(); } internal LNK_Section * -lnk_section_table_search(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags flags) +lnk_section_table_search(LNK_SectionTable *sectab, String8 full_or_partial_name, COFF_SectionFlags flags) { Temp scratch = scratch_begin(0,0); - String8 name_with_flags = lnk_make_name_with_flags(scratch.arena, name, flags); - LNK_Section *section = 0; + String8 name = {0}; + String8 postfix = {0}; + coff_parse_section_name(full_or_partial_name, &name, &postfix); + + String8 name_with_flags = lnk_make_name_with_flags(scratch.arena, name, flags); + LNK_Section *section= 0; hash_table_search_string_raw(sectab->sect_ht, name_with_flags, §ion); scratch_end(scratch); diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index 3d0c2f8f..d44bcb81 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -67,7 +67,6 @@ typedef struct LNK_Section B32 is_merged; LNK_SectionContribChunkList contribs; - LNK_SectionContrib *first_contrib_chunk; U64 voff; U64 vsize; From d3c3b672eae964ad9693e5ba9bef9316edf27e88 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 15 May 2025 17:21:46 -0700 Subject: [PATCH 108/372] image name helper --- src/linker/lnk_config.c | 16 ++++++++++++++-- src/linker/lnk_config.h | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 632147b9..89c96599 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -364,6 +364,15 @@ lnk_error_invalid_uac_ui_access_param(LNK_ErrorCode error_code, String8 obj_path //////////////////////////////// +internal String8 +lnk_get_image_name(LNK_Config *config) +{ + String8 image_name = config->image_name; + image_name = str8_skip_last_slash(image_name); + image_name = str8_chop_last_dot(image_name); + return image_name; +} + internal U64 lnk_get_default_function_pad_min(COFF_MachineType machine) { @@ -835,8 +844,9 @@ lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_p } // does directive have ordinal? - U16 ordinal16 = 0; - String8 ordinal = {0}; + COFF_ImportByType import_by = COFF_ImportBy_Name; + U16 ordinal16 = 0; + String8 ordinal = {0}; String8 noname_flag = {0}; if (str8_match(str8_prefix(str8_list_first(&flags), 1), str8_lit("@"), 0)) { // parse ordinal @@ -845,6 +855,7 @@ lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_p U64 ordinal64 = u64_from_str8(ordinal, 10); if (ordinal64 <= max_U16) { ordinal16 = (U16)ordinal64; + import_by = COFF_ImportBy_Ordinal; } else { String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "ordinal value must fit into 16-bit integer, \"/EXPORT:%S\"", d); @@ -892,6 +903,7 @@ lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_p export_out->name = push_str8_copy(arena, name); export_out->alias = push_str8_copy(arena, alias); export_out->type = type; + export_out->import_by = import_by; export_out->ordinal = ordinal16; export_out->is_ordinal_assigned = ordinal.size > 0; export_out->is_noname_present = noname_flag.size > 0; diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index d139cf2d..377740db 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -529,6 +529,7 @@ internal void lnk_error_cmd_switch_invalid_param (LNK_ErrorCode code, Strin //////////////////////////////// // Getters +internal String8 lnk_get_image_name(LNK_Config *config); internal U64 lnk_get_default_function_pad_min(COFF_MachineType machine); internal U64 lnk_get_base_addr(LNK_Config *config); internal Version lnk_get_default_subsystem_version(PE_WindowsSubsystem subsystem, COFF_MachineType machine); From f75cdd23d772f838aebbcf61fef318d4d1541f17 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 15 May 2025 17:22:54 -0700 Subject: [PATCH 109/372] collapse linker input states into one state --- src/linker/lnk.c | 469 +++++++++++++++------------------- src/linker/lnk.h | 2 + src/linker/lnk_input.c | 20 +- src/linker/lnk_input.h | 26 +- src/linker/lnk_symbol_table.c | 32 ++- src/linker/lnk_symbol_table.h | 18 +- 6 files changed, 267 insertions(+), 300 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 7fec2c93..6cefa2b7 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -912,9 +912,11 @@ lnk_push_export(Arena *arena, HashTable *export_ht, PE_ExportParseList *export_l } } -internal LNK_InputObjList -lnk_push_linker_symbols(Arena *arena, LNK_Config *config) +internal String8 +lnk_make_linker_obj(Arena *arena, LNK_Config *config) { + ProfBeginFunction(); + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, config->machine); // Emit __ImageBase symbol. @@ -924,8 +926,7 @@ lnk_push_linker_symbols(Arena *arena, LNK_Config *config) // passing it around as a function argument. // // 100h: lea rax, [rip + ffffff00h] ; -100h - U64 base_addr = lnk_get_base_addr(config); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("__ImageBase"), base_addr, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("__ImageBase"), 0, COFF_SymStorageClass_External); { // load config symbols if (config->machine == COFF_MachineType_X86) { @@ -950,13 +951,8 @@ lnk_push_linker_symbols(Arena *arena, LNK_Config *config) String8 obj = coff_obj_writer_serialize(arena, obj_writer); coff_obj_writer_release(&obj_writer); - LNK_InputObjList result = {0}; - LNK_InputObj *input = lnk_input_obj_list_push(arena, &result); - input->path = str8_lit("* Linker Symbols *"); - input->dedup_id = input->path; - input->data = obj; - - return result; + ProfEnd(); + return obj; } internal void @@ -976,9 +972,9 @@ lnk_queue_lib_member_input(Arena *arena, switch (member_type) { case COFF_DataType_Null: break; case COFF_DataType_Import: { - LNK_InputImport *input = lnk_input_import_list_push(arena, input_import_list); - input->coff_import = member_info.data; - input->input_idx = input_idx; + LNK_InputImportNode *input = lnk_input_import_list_push(arena, input_import_list); + input->data.coff_import = member_info.data; + input->data.input_idx = input_idx; } break; case COFF_DataType_BigObj: case COFF_DataType_Obj: { @@ -2088,11 +2084,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { LNK_Obj *obj = objs[obj_idx]; COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; - String8 string_table = str8_substr(obj->data, obj->header.string_table_range); - - U32 obj_features = lnk_obj_get_features (obj); - B32 discards_guards = (obj_features & MSCRT_FeatFlag_GUARD_CF) || - (obj_features & MSCRT_FeatFlag_GUARD_EH_CONT); + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *sect_header = §ion_table[sect_idx]; @@ -2984,46 +2976,40 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S // patch import and import addr { - LNK_Symbol *dll_table_begin_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER_IMPORT_TABLE_DLL_BEGIN")); - LNK_Symbol *dll_table_end_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER_IMPORT_TABLE_DLL_END")); - if (dll_table_begin_symbol && dll_table_end_symbol) { - COFF_ParsedSymbol dll_table_begin_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dll_table_begin_symbol->u.defined.obj, dll_table_begin_symbol->u.defined.symbol_idx); - COFF_ParsedSymbol dll_table_end_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dll_table_end_symbol->u.defined.obj, dll_table_end_symbol->u.defined.symbol_idx); - U64 dll_table_voff = image_section_table[dll_table_begin_parsed.section_number]->voff + dll_table_begin_parsed.value; - U64 dll_table_vsize = dll_table_end_parsed.value - dll_table_begin_parsed.value; + LNK_Section *idata_sect = lnk_section_table_search(sectab, str8_lit(".idata"), PE_IDATA_SECTION_FLAGS); + LNK_Symbol *null_import_desc = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "__NULL_IMPORT_DESCRIPTOR"); + LNK_Symbol *last_import_desc = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "\x7f%S_NULL_THUNK_DATA", lnk_get_image_name(config)); + if (idata_sect && null_import_desc && last_import_desc) { + COFF_ParsedSymbol null_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_import_desc->u.defined.obj, null_import_desc->u.defined.symbol_idx); + LNK_SectionContrib *idata_first_contrib = lnk_get_first_section_contrib(idata_sect); PE_DataDirectory *import_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_IMPORT, sizeof(PE_DataDirectory)); - import_dir->virt_off = dll_table_voff; - import_dir->virt_size = dll_table_vsize; - } + import_dir->virt_off = image_section_table[idata_first_contrib->u.sect_idx + 1]->voff; + import_dir->virt_size = null_import_desc_parsed.value - idata_first_contrib->u.off; - LNK_Symbol *iat_begin_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER IMPORT_ADDRESS_TABLE_BEGIN")); - LNK_Symbol *iat_end_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER_IMPORT_ADDRESS_TABLE_END")); - if (iat_begin_symbol && iat_end_symbol) { - COFF_ParsedSymbol iat_begin_parsed = lnk_parsed_symbol_from_coff_symbol_idx(iat_begin_symbol->u.defined.obj, iat_begin_symbol->u.defined.symbol_idx); - COFF_ParsedSymbol iat_end_parsed = lnk_parsed_symbol_from_coff_symbol_idx(iat_end_symbol->u.defined.obj, iat_end_symbol->u.defined.symbol_idx); - U64 iat_voff = image_section_table[iat_begin_parsed.section_number]->voff + iat_begin_parsed.value; - U64 iat_vsize = iat_end_parsed.value - iat_begin_parsed.value; + COFF_ParsedSymbol last_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(last_import_desc->u.defined.obj, last_import_desc->u.defined.symbol_idx); + U64 last_import_desc_voff = image_section_table[last_import_desc_parsed.section_number]->voff + last_import_desc_parsed.value; + + U64 first_import_foff = image_section_table[idata_first_contrib->u.sect_idx+1]->foff; + PE_ImportEntry *first_import = str8_deserial_get_raw_ptr(image_data, first_import_foff, sizeof(*first_import)); PE_DataDirectory *import_addr_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_IMPORT_ADDR, sizeof(PE_DataDirectory)); - import_addr_dir->virt_off = iat_voff; - import_addr_dir->virt_size = iat_vsize; + import_addr_dir->virt_off = first_import->import_addr_table_voff; + import_addr_dir->virt_size = last_import_desc_voff - first_import->import_addr_table_voff /* null */ + coff_word_size_from_machine(config->machine); } } - // patch delay import + // patch delay imports { - LNK_Symbol *dll_table_begin_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER_IMPORT_TABLE_DLL_DELAY_BEGIN")); - LNK_Symbol *dll_table_end_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER_IMPORT_TABLE_DLL_DELAY_END")); - if (dll_table_begin_symbol && dll_table_end_symbol) { - COFF_ParsedSymbol dll_table_begin_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dll_table_begin_symbol->u.defined.obj, dll_table_begin_symbol->u.defined.symbol_idx); - COFF_ParsedSymbol dll_table_end_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dll_table_end_symbol->u.defined.obj, dll_table_end_symbol->u.defined.symbol_idx); - U64 dll_table_voff = image_section_table[dll_table_begin_parsed.section_number]->voff + dll_table_begin_parsed.value; - U64 dll_table_vsize = dll_table_end_parsed.value - dll_table_begin_parsed.value; - - PE_DataDirectory *delay_import_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_DELAY_IMPORT, sizeof(PE_DataDirectory)); - delay_import_dir->virt_off = dll_table_voff; - delay_import_dir->virt_size = dll_table_vsize; + LNK_Section *didat_sect = lnk_section_table_search(sectab, str8_lit(".didat"), PE_IDATA_SECTION_FLAGS); + LNK_Symbol *null_import_desc = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("__NULL_DELAY_IMPORT_DESCRIPTOR")); + LNK_Symbol *last_import_desc = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "\x7f%S_NULL_THUNK_DATA_DLA", lnk_get_image_name(config)); + if (didat_sect && null_import_desc && last_import_desc) { + COFF_ParsedSymbol null_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_import_desc->u.defined.obj, null_import_desc->u.defined.symbol_idx); + LNK_SectionContrib *didat_first_contrib = lnk_get_first_section_contrib(didat_sect); + PE_DataDirectory *import_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_DELAY_IMPORT, sizeof(PE_DataDirectory)); + import_dir->virt_off = image_section_table[didat_first_contrib->u.sect_idx]->voff; + import_dir->virt_size = null_import_desc_parsed.value - didat_first_contrib->u.off; } } @@ -3173,6 +3159,10 @@ THREAD_POOL_TASK_FUNC(lnk_undef_symbol_finder) if (has_defn) { continue; } + LNK_Symbol *has_import = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Import, symbol->name); + if (has_import) { + continue; + } LNK_Symbol *member_symbol = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Lib, symbol->name); if (member_symbol) { @@ -3198,6 +3188,10 @@ THREAD_POOL_TASK_FUNC(lnk_weak_symbol_finder) if (has_strong_defn) { continue; } + LNK_Symbol *has_import = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Import, symbol->name); + if (has_import) { + continue; + } LNK_Symbol *member_symbol = 0; { @@ -3289,9 +3283,9 @@ lnk_run_symbol_finder(TP_Context *tp, ProfEnd(); ProfBegin("Sort Imports [Count %llu]", result.input_import_list.count); - LNK_InputImport **input_imp_ptr_arr = lnk_input_import_arr_from_list(scratch.arena, result.input_import_list); + LNK_InputImportNode **input_imp_ptr_arr = lnk_input_import_arr_from_list(scratch.arena, result.input_import_list); //radsort(input_imp_ptr_arr, result.input_import_list.count, lnk_input_import_is_before); - qsort(input_imp_ptr_arr, result.input_import_list.count, sizeof(input_obj_ptr_arr[0]), lnk_input_import_compar); + qsort(input_imp_ptr_arr, result.input_import_list.count, sizeof(input_imp_ptr_arr[0]), lnk_input_import_node_compar); result.input_import_list = lnk_list_from_input_import_arr(input_imp_ptr_arr, result.input_import_list.count); ProfEnd(); @@ -3488,17 +3482,12 @@ lnk_run(int argc, char **argv) State_InputObjs, State_InputLibs, State_PushDllHelperUndefSymbol, - State_PushLinkerSymbols, + State_InputLinkerObjs, State_PushLoadConfigUndefSymbol, State_LookupUndef, State_LookupWeak, State_LookupEntryPoint, State_ReportUnresolvedSymbols, - State_InputImportObjs, - State_InputExportObjs, - State_InputResObj, - State_InputLinkerObj, - State_InputDebugDirObj, State_BuildImage, State_BuildImpLib, State_BuildRadChunkMap, @@ -3576,11 +3565,7 @@ lnk_run(int argc, char **argv) LNK_SymbolList unresolved_weak_list = {0}; U64 entry_point_lookup_attempts = 0; B32 report_unresolved_symbols = 1; - B32 input_import_objs = 1; - B32 input_export_objs = 1; - B32 input_res_obj = 1; - B32 input_linker_obj = lnk_do_debug_info(config); - B32 input_debug_dir_obj = lnk_do_debug_info(config); + B32 input_linker_objs = 1; B32 build_imp_lib = config->build_imp_lib; B32 build_rad_chunk_map = (config->rad_chunk_map == LNK_SwitchState_Yes); B32 build_debug_info = lnk_do_debug_info(config); @@ -3649,8 +3634,8 @@ lnk_run(int argc, char **argv) } break; case State_InputImports: { ProfBegin("Input Imports"); - for (LNK_InputImport *input = input_import_list.first; input != 0; input = input->next) { - COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(input->coff_import); + for (LNK_InputImportNode *input = input_import_list.first; input != 0; input = input->next) { + COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(input->data.coff_import); // import machine compat check if (import_header.machine != config->machine) { @@ -3661,23 +3646,17 @@ lnk_run(int argc, char **argv) continue; } - // create import stubs (later replaced with acutal imports generated by linker) - LNK_Symbol *thunk_symbol; - { - thunk_symbol = push_array(symtab->arena->v[0], LNK_Symbol, 1); - thunk_symbol->type = LNK_Symbol_Import; - thunk_symbol->name = import_header.func_name; - thunk_symbol->u.coff_import = input->coff_import; - - LNK_Symbol *iat_symbol = push_array(symtab->arena->v[0], LNK_Symbol, 1); - iat_symbol->type = LNK_Symbol_Import; - iat_symbol->name = push_str8f(symtab->arena->v[0], "__imp_%S", import_header.func_name); - iat_symbol->u.coff_import = input->coff_import; - - lnk_symbol_table_push(symtab, thunk_symbol); - lnk_symbol_table_push(symtab, iat_symbol); + // was import already created? + if (lnk_symbol_table_search(symtab, LNK_SymbolScope_Import, import_header.func_name)) { + continue; } - + + // create import stubs (later replaced with acutal imports generated by linker) + LNK_Symbol *thunk_symbol = lnk_make_import_symbol(scratch.arena, import_header.func_name, input->data.coff_import); + LNK_Symbol *imp_symbol = lnk_make_import_symbol(scratch.arena, push_str8f(scratch.arena, "__imp_%S", import_header.func_name), input->data.coff_import); + lnk_symbol_table_push(symtab, thunk_symbol); + lnk_symbol_table_push(symtab, imp_symbol); + // pick imports hash table HashTable *imports_ht; { @@ -3690,18 +3669,14 @@ lnk_run(int argc, char **argv) } // search DLL symbol list - String8List *import_symbols; - { - import_symbols = hash_table_search_path_raw(imports_ht, import_header.dll_name); - if (import_symbols == 0) { - import_symbols = push_array(scratch.arena, String8List, 1); - hash_table_push_path_raw(scratch.arena, imports_ht, import_header.dll_name, import_symbols); - } + String8List *import_symbols = hash_table_search_path_raw(imports_ht, import_header.dll_name); + if (import_symbols == 0) { + import_symbols = push_array(scratch.arena, String8List, 1); hash_table_push_path_raw(scratch.arena, imports_ht, import_header.dll_name, import_symbols); } // push symbol - str8_list_push(scratch.arena, import_symbols, input->coff_import); + str8_list_push(scratch.arena, import_symbols, input->data.coff_import); } // reset input @@ -3915,8 +3890,12 @@ lnk_run(int argc, char **argv) LNK_SymbolInputResult input_result = lnk_input_obj_symbols(tp, tp_arena, symtab, obj_node_arr); // schedule symbol input - lnk_symbol_list_concat_in_place(&input_weak_list, &input_result.weak_symbols); + lnk_symbol_list_concat_in_place(&input_weak_list, &input_result.weak_symbols); lnk_symbol_list_concat_in_place(&lookup_undef_list, &input_result.undef_symbols); + + // give another chance to unresolved symbols + lnk_symbol_list_concat_in_place(&lookup_undef_list, &unresolved_undef_list); + lnk_symbol_list_concat_in_place(&input_weak_list, &unresolved_weak_list); // reset input objs MemoryZeroStruct(&input_obj_list); @@ -4033,12 +4012,6 @@ lnk_run(int argc, char **argv) str8_list_push(scratch.arena, &include_symbol_list, delay_load_helper_name); ProfEnd(); } break; - case State_PushLinkerSymbols: { - ProfBegin("Push Linker Symbols"); - LNK_InputObjList linker_objs = lnk_push_linker_symbols(scratch.arena, config); - lnk_input_obj_list_concat_in_place(&input_obj_list, &linker_objs); - ProfEnd(); - } break; case State_PushLoadConfigUndefSymbol: { ProfBegin("Push Load Config Undef Symbol"); String8 load_config_name = str8_lit(LNK_LOAD_CONFIG_SYMBOL_NAME); @@ -4207,8 +4180,15 @@ lnk_run(int argc, char **argv) goto exit; } } break; - case State_InputImportObjs: { - ProfBegin("Build Import Table"); + case State_InputLinkerObjs: { + { + ProfBegin("Push Linker Symbols"); + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->path = str8_lit("* Linker Symbols *"); + input->dedup_id = input->path; + input->data = lnk_make_linker_obj(scratch.arena, config); + ProfEnd(); + } // warn about unused delayloads if (config->flags & LNK_ConfigFlag_CheckUnusedDelayLoadDll) { @@ -4221,76 +4201,72 @@ lnk_run(int argc, char **argv) // make and input delayed imports if (delayed_imports->count) { + ProfBegin("Build Delay Import Table"); + COFF_TimeStamp time_stamp = COFF_TimeStamp_Max; B32 emit_biat = config->import_table_emit_biat == LNK_SwitchState_Yes; B32 emit_uiat = config->import_table_emit_uiat == LNK_SwitchState_Yes; String8 *dll_names = keys_from_hash_table_string(scratch.arena, delayed_imports); - String8List *dll_import_headers = values_from_hash_table_raw(scratch.arena, delayed_imports); + String8List **dll_import_headers = values_from_hash_table_raw(scratch.arena, delayed_imports); for (U64 dll_idx = 0; dll_idx < delayed_imports->count; dll_idx += 1) { String8 import_debug_symbols = lnk_make_dll_import_debug_symbols(scratch.arena, config->machine, dll_names[dll_idx]); LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->input_idx = input_obj_list.count; - input->data = pe_make_import_dll_obj_delayed(scratch.arena, time_stamp, config->machine, dll_names[dll_idx], delay_load_helper_name, import_debug_symbols, dll_import_headers[dll_idx], emit_biat, emit_uiat); + input->data = pe_make_import_dll_obj_delayed(scratch.arena, time_stamp, config->machine, dll_names[dll_idx], delay_load_helper_name, import_debug_symbols, *dll_import_headers[dll_idx], emit_biat, emit_uiat); input->path = dll_names[dll_idx]; } String8 linker_debug_symbols = lnk_make_linker_debug_symbols(scratch.arena, config->machine); { LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->input_idx = input_obj_list.count; - input->data = pe_make_import_entry_obj(scratch.arena, config->image_name, time_stamp, config->machine, linker_debug_symbols); - input->path = str8_lit("* Delayed Import Entry Obj *"); - } - { - LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); - input->input_idx = input_obj_list.count; - input->data = pe_make_null_import_descriptor_obj(scratch.arena, time_stamp, config->machine, linker_debug_symbols); + input->data = pe_make_null_import_descriptor_delayed(scratch.arena, time_stamp, config->machine, linker_debug_symbols); input->path = str8_lit("* Delayed Null Import Descriptor *"); } { LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->input_idx = input_obj_list.count; - input->data = pe_make_null_thunk_data_obj(scratch.arena, config->image_name, time_stamp, config->machine, linker_debug_symbols); + input->data = pe_make_null_thunk_data_obj_delayed(scratch.arena, lnk_get_image_name(config), time_stamp, config->machine, linker_debug_symbols); input->path = str8_lit("* Delayed Null Thunk Data *"); } + + ProfEnd(); } // make and input static imports if (static_imports->count) { + ProfBegin("Build Static Import Table"); + COFF_TimeStamp time_stamp = COFF_TimeStamp_Max; String8 *dll_names = keys_from_hash_table_string(scratch.arena, static_imports); - String8List *dll_import_headers = values_from_hash_table_raw(scratch.arena, static_imports); + String8List **dll_import_headers = values_from_hash_table_raw(scratch.arena, static_imports); for (U64 dll_idx = 0; dll_idx < static_imports->count; dll_idx += 1) { String8 import_debug_symbols = lnk_make_dll_import_debug_symbols(scratch.arena, config->machine, dll_names[dll_idx]); LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->input_idx = input_obj_list.count; - input->data = pe_make_import_dll_obj_static(scratch.arena, time_stamp, config->machine, dll_names[dll_idx], import_debug_symbols, dll_import_headers[dll_idx]); + input->data = pe_make_import_dll_obj_static(scratch.arena, time_stamp, config->machine, dll_names[dll_idx], import_debug_symbols, *dll_import_headers[dll_idx]); input->path = dll_names[dll_idx]; + input->dedup_id = dll_names[dll_idx]; } String8 linker_debug_symbols = lnk_make_linker_debug_symbols(scratch.arena, config->machine); - { - LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); - input->input_idx = input_obj_list.count; - input->data = pe_make_import_entry_obj(scratch.arena, config->image_name, time_stamp, config->machine, linker_debug_symbols); - input->path = str8_lit("* Import Entry Obj *"); - } { LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->input_idx = input_obj_list.count; input->data = pe_make_null_import_descriptor_obj(scratch.arena, time_stamp, config->machine, linker_debug_symbols); input->path = str8_lit("* Null Import Descriptor *"); + input->dedup_id = input->path; } { LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->input_idx = input_obj_list.count; - input->data = pe_make_null_thunk_data_obj(scratch.arena, config->image_name, time_stamp, config->machine, linker_debug_symbols); + input->data = pe_make_null_thunk_data_obj(scratch.arena, lnk_get_image_name(config), time_stamp, config->machine, linker_debug_symbols); input->path = str8_lit("* Null Thunk Data *"); + input->dedup_id = input->path; } + + ProfEnd(); } - ProfEnd(); - } break; - case State_InputExportObjs: { if (export_symbol_list.count) { ProfBegin("Build Export Table"); @@ -4344,122 +4320,121 @@ lnk_run(int argc, char **argv) ProfEnd(); } - } break; - case State_InputResObj: { - String8List res_data_list = {0}; - String8List res_path_list = {0}; - - // do we have manifest deps passed through pragma alone? - LNK_ManifestOpt manifest_opt = config->manifest_opt; - if (manifest_dep_list.node_count > 0 && manifest_opt == LNK_ManifestOpt_Null) { - manifest_opt = LNK_ManifestOpt_Embed; - } - - switch (manifest_opt) { - case LNK_ManifestOpt_Embed: { - ProfBegin("Embed Manifest"); - // TODO: currently we convert manifest to res and parse res again, this unnecessary instead push manifest - // resource to the tree directly - String8 manifest_data = lnk_manifest_from_inputs(scratch.arena, config->mt_path, config->manifest_name, config->manifest_uac, config->manifest_level, config->manifest_ui_access, input_manifest_path_list, manifest_dep_list); - String8 manifest_res = pe_make_manifest_resource(scratch.arena, *config->manifest_resource_id, manifest_data); - str8_list_push(scratch.arena, &res_data_list, manifest_res); - str8_list_push(scratch.arena, &res_path_list, str8_lit("* Manifest *")); - ProfEnd(); - } break; - case LNK_ManifestOpt_WriteToFile: { - ProfBeginDynamic("Write Manifest To: %.*s", str8_varg(config->manifest_name)); - Temp temp = temp_begin(scratch.arena); - String8 manifest_data = lnk_manifest_from_inputs(temp.arena, config->mt_path, config->manifest_name, config->manifest_uac, config->manifest_level, config->manifest_ui_access, input_manifest_path_list, manifest_dep_list); - lnk_write_data_to_file_path(config->manifest_name, str8_zero(), manifest_data); - temp_end(temp); - ProfEnd(); - } break; - case LNK_ManifestOpt_Null: { - Assert(input_manifest_path_list.node_count == 0); - Assert(manifest_dep_list.node_count == 0); - } break; - case LNK_ManifestOpt_No: { - // omit manifest generation - } break; - } - - ProfBegin("Load .res files from disk"); - for (String8Node *node = config->input_list[LNK_Input_Res].first; node != 0; node = node->next) { - String8 res_data = lnk_read_data_from_file_path(scratch.arena, node->string); - if (res_data.size > 0) { - if (pe_is_res(res_data)) { - str8_list_push(scratch.arena, &res_data_list, res_data); - String8 stable_res_path = lnk_make_full_path(scratch.arena, config->path_style, config->work_dir, node->string); - str8_list_push(scratch.arena, &res_path_list, stable_res_path); - } else { - lnk_error(LNK_Error_LoadRes, "file is not of RES format: %S", node->string); - } - } else { - lnk_error(LNK_Error_LoadRes, "unable to open res file: %S", node->string); - } - } - ProfEnd(); - - if (res_data_list.node_count > 0) { - ProfBegin("Build * Resources *"); - - String8 obj_name = str8_lit("* Resources *"); - String8 obj_data = lnk_make_res_obj(scratch.arena, - res_data_list, - res_path_list, - config->machine, - config->time_stamp, - config->work_dir, - config->path_style, - obj_name); - - LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); - input->dedup_id = obj_name; - input->path = obj_name; - input->data = obj_data; - - ProfEnd(); - } - } break; - case State_InputLinkerObj: { - ProfBegin("Build * Linker * Obj"); - - String8 obj_name = str8_lit("* Linker *"); - String8 raw_cmd_line = str8_list_join(scratch.arena, &config->raw_cmd_line, &(StringJoin){ str8_lit_comp(""), str8_lit_comp(" "), str8_lit_comp("") }); - String8 obj_data = lnk_make_linker_coff_obj(scratch.arena, config->time_stamp, config->machine, config->work_dir, config->image_name, config->pdb_name, raw_cmd_line, obj_name); - - LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); - input->dedup_id = obj_name; - input->path = obj_name; - input->data = obj_data; - - ProfEnd(); - } break; - case State_InputDebugDirObj: { - ProfBegin("Build Debug Directory"); { - LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); - input->path = str8_lit("* Debug Directory *"); - input->dedup_id = input->path; - input->data = lnk_make_debug_directory_obj(scratch.arena, config); + String8List res_data_list = {0}; + String8List res_path_list = {0}; + + // do we have manifest deps passed through pragma alone? + LNK_ManifestOpt manifest_opt = config->manifest_opt; + if (manifest_dep_list.node_count > 0 && manifest_opt == LNK_ManifestOpt_Null) { + manifest_opt = LNK_ManifestOpt_Embed; + } + + switch (manifest_opt) { + case LNK_ManifestOpt_Embed: { + ProfBegin("Embed Manifest"); + // TODO: currently we convert manifest to res and parse res again, this unnecessary instead push manifest + // resource to the tree directly + String8 manifest_data = lnk_manifest_from_inputs(scratch.arena, config->mt_path, config->manifest_name, config->manifest_uac, config->manifest_level, config->manifest_ui_access, input_manifest_path_list, manifest_dep_list); + String8 manifest_res = pe_make_manifest_resource(scratch.arena, *config->manifest_resource_id, manifest_data); + str8_list_push(scratch.arena, &res_data_list, manifest_res); + str8_list_push(scratch.arena, &res_path_list, str8_lit("* Manifest *")); + ProfEnd(); + } break; + case LNK_ManifestOpt_WriteToFile: { + ProfBeginDynamic("Write Manifest To: %.*s", str8_varg(config->manifest_name)); + Temp temp = temp_begin(scratch.arena); + String8 manifest_data = lnk_manifest_from_inputs(temp.arena, config->mt_path, config->manifest_name, config->manifest_uac, config->manifest_level, config->manifest_ui_access, input_manifest_path_list, manifest_dep_list); + lnk_write_data_to_file_path(config->manifest_name, str8_zero(), manifest_data); + temp_end(temp); + ProfEnd(); + } break; + case LNK_ManifestOpt_Null: { + Assert(input_manifest_path_list.node_count == 0); + Assert(manifest_dep_list.node_count == 0); + } break; + case LNK_ManifestOpt_No: { + // omit manifest generation + } break; + } + + ProfBegin("Load .res files from disk"); + for (String8Node *node = config->input_list[LNK_Input_Res].first; node != 0; node = node->next) { + String8 res_data = lnk_read_data_from_file_path(scratch.arena, node->string); + if (res_data.size > 0) { + if (pe_is_res(res_data)) { + str8_list_push(scratch.arena, &res_data_list, res_data); + String8 stable_res_path = lnk_make_full_path(scratch.arena, config->path_style, config->work_dir, node->string); + str8_list_push(scratch.arena, &res_path_list, stable_res_path); + } else { + lnk_error(LNK_Error_LoadRes, "file is not of RES format: %S", node->string); + } + } else { + lnk_error(LNK_Error_LoadRes, "unable to open res file: %S", node->string); + } + } + ProfEnd(); + + if (res_data_list.node_count > 0) { + ProfBegin("Build * Resources *"); + + String8 obj_name = str8_lit("* Resources *"); + String8 obj_data = lnk_make_res_obj(scratch.arena, + res_data_list, + res_path_list, + config->machine, + config->time_stamp, + config->work_dir, + config->path_style, + obj_name); + + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->dedup_id = obj_name; + input->path = obj_name; + input->data = obj_data; + + ProfEnd(); + } } - if (config->debug_mode != LNK_DebugMode_None && config->debug_mode != LNK_DebugMode_Null) { - LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); - input->path = str8_lit("* Debug Directory PDB *"); - input->dedup_id = input->path; - input->data = lnk_make_debug_directory_pdb_obj(scratch.arena, config); - } + if (build_debug_info) { + { + ProfBegin("Build * Linker * Obj"); - if (config->rad_debug == LNK_SwitchState_Yes) { - LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); - input->path = str8_lit("* Debug Directory RDI *"); - input->dedup_id = input->path; - input->data = lnk_make_debug_directory_rdi_obj(scratch.arena, config); - } + String8 obj_name = str8_lit("* Linker *"); + String8 raw_cmd_line = str8_list_join(scratch.arena, &config->raw_cmd_line, &(StringJoin){ str8_lit_comp(""), str8_lit_comp(" "), str8_lit_comp("") }); + String8 obj_data = lnk_make_linker_coff_obj(scratch.arena, config->time_stamp, config->machine, config->work_dir, config->image_name, config->pdb_name, raw_cmd_line, obj_name); + + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->dedup_id = obj_name; + input->path = obj_name; + input->data = obj_data; - ProfEnd(); + ProfEnd(); + } + + ProfBegin("Build Debug Directory"); + { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->path = str8_lit("* Debug Directory *"); + input->dedup_id = input->path; + input->data = lnk_make_debug_directory_obj(scratch.arena, config); + } + if (config->debug_mode != LNK_DebugMode_None && config->debug_mode != LNK_DebugMode_Null) { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->path = str8_lit("* Debug Directory PDB *"); + input->dedup_id = input->path; + input->data = lnk_make_debug_directory_pdb_obj(scratch.arena, config); + } + if (config->rad_debug == LNK_SwitchState_Yes) { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->path = str8_lit("* Debug Directory RDI *"); + input->dedup_id = input->path; + input->data = lnk_make_debug_directory_rdi_obj(scratch.arena, config); + } + ProfEnd(); + } } break; case State_BuildImage: { // build image @@ -4623,6 +4598,11 @@ lnk_run(int argc, char **argv) entry_point_lookup_attempts += 1; continue; } + if (input_linker_objs) { + input_linker_objs = 0; + state_list_push(scratch.arena, state_list, State_InputLinkerObjs); + continue; + } if (unresolved_undef_list.count) { if (report_unresolved_symbols) { report_unresolved_symbols = 0; @@ -4630,35 +4610,6 @@ lnk_run(int argc, char **argv) continue; } } - - - if (input_import_objs) { - input_import_objs = 0; - state_list_push(scratch.arena, state_list, State_InputImportObjs); - continue; - } - if (input_export_objs) { - input_export_objs = 0; - state_list_push(scratch.arena, state_list, State_InputExportObjs); - continue; - } - if (input_res_obj) { - input_res_obj = 0; - state_list_push(scratch.arena, state_list, State_InputResObj); - continue; - } - if (input_linker_obj) { - input_linker_obj = 0; - state_list_push(scratch.arena, state_list, State_InputLinkerObj); - continue; - } - if (input_debug_dir_obj) { - input_debug_dir_obj = 0; - state_list_push(scratch.arena, state_list, State_InputDebugDirObj); - continue; - } - - if (image_data.size == 0) { state_list_push(scratch.arena, state_list, State_BuildImage); continue; diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 89842710..af76f03e 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -83,6 +83,8 @@ typedef struct typedef struct { LNK_InputObjList input_obj_list; + U64 input_imports_count; + LNK_InputImport *input_imports; LNK_InputImportList input_import_list; LNK_SymbolList unresolved_symbol_list; } LNK_SymbolFinderResult; diff --git a/src/linker/lnk_input.c b/src/linker/lnk_input.c index 5669a84b..919b1cce 100644 --- a/src/linker/lnk_input.c +++ b/src/linker/lnk_input.c @@ -90,10 +90,10 @@ lnk_input_obj_list_from_string_list(Arena *arena, String8List list) return input_list; } -internal LNK_InputImport * +internal LNK_InputImportNode * lnk_input_import_list_push(Arena *arena, LNK_InputImportList *list) { - LNK_InputImport *node = push_array(arena, LNK_InputImport, 1); + LNK_InputImportNode *node = push_array(arena, LNK_InputImportNode, 1); SLLQueuePush(list->first, list->last, node); list->count += 1; return node; @@ -105,12 +105,12 @@ lnk_input_import_list_concat_in_place(LNK_InputImportList *list, LNK_InputImport SLLConcatInPlace(list, to_concat); } -internal LNK_InputImport ** +internal LNK_InputImportNode ** lnk_input_import_arr_from_list(Arena *arena, LNK_InputImportList list) { - LNK_InputImport **result = push_array_no_zero(arena, LNK_InputImport *, list.count); + LNK_InputImportNode **result = push_array_no_zero(arena, LNK_InputImportNode *, list.count); U64 idx = 0; - for (LNK_InputImport *node = list.first; node != 0; node = node->next) { + for (LNK_InputImportNode *node = list.first; node != 0; node = node->next) { Assert(idx < list.count); result[idx++] = node; } @@ -118,7 +118,7 @@ lnk_input_import_arr_from_list(Arena *arena, LNK_InputImportList list) } internal LNK_InputImportList -lnk_list_from_input_import_arr(LNK_InputImport **arr, U64 count) +lnk_list_from_input_import_arr(LNK_InputImportNode **arr, U64 count) { LNK_InputImportList list = {0}; for (U64 i = 0; i < count; i += 1) { @@ -137,10 +137,10 @@ lnk_input_import_is_before(void *raw_a, void *raw_b) } int -lnk_input_import_compar(const void *raw_a, const void *raw_b) +lnk_input_import_node_compar(const void *raw_a, const void *raw_b) { - LNK_InputImport * const *a = raw_a; - LNK_InputImport * const *b = raw_b; - return u64_compar(&(*a)->input_idx, &(*b)->input_idx); + LNK_InputImportNode * const *a = raw_a; + LNK_InputImportNode * const *b = raw_b; + return u64_compar(&(*a)->data.input_idx, &(*b)->data.input_idx); } diff --git a/src/linker/lnk_input.h b/src/linker/lnk_input.h index bbd351eb..6760bddb 100644 --- a/src/linker/lnk_input.h +++ b/src/linker/lnk_input.h @@ -16,16 +16,22 @@ typedef String8List LNK_InputLibList; typedef struct LNK_InputImport { - struct LNK_InputImport *next; - String8 coff_import; - U64 input_idx; + String8 coff_import; + U64 input_idx; + struct LNK_Lib *lib; } LNK_InputImport; +typedef struct LNK_InputImportNode +{ + struct LNK_InputImportNode *next; + LNK_InputImport data; +} LNK_InputImportNode; + typedef struct LNK_InputImportList { - U64 count; - LNK_InputImport *first; - LNK_InputImport *last; + U64 count; + LNK_InputImportNode *first; + LNK_InputImportNode *last; } LNK_InputImportList; typedef struct LNK_InputObj @@ -59,8 +65,8 @@ internal LNK_InputObj ** lnk_array_from_input_obj_list(Arena *arena, LNK_InputO internal LNK_InputObjList lnk_list_from_input_obj_arr(LNK_InputObj **arr, U64 count); internal LNK_InputObjList lnk_input_obj_list_from_string_list(Arena *arena, String8List list); -internal LNK_InputImport * lnk_input_import_list_push(Arena *arena, LNK_InputImportList *list); -internal void lnk_input_import_list_concat_in_place(LNK_InputImportList *list, LNK_InputImportList *to_concat); -internal LNK_InputImport ** lnk_input_import_arr_from_list(Arena *arena, LNK_InputImportList list); -internal LNK_InputImportList lnk_list_from_input_import_arr(LNK_InputImport **arr, U64 count); +internal LNK_InputImportNode * lnk_input_import_list_push(Arena *arena, LNK_InputImportList *list); +internal void lnk_input_import_list_concat_in_place(LNK_InputImportList *list, LNK_InputImportList *to_concat); +internal LNK_InputImportNode ** lnk_input_import_arr_from_list(Arena *arena, LNK_InputImportList list); +internal LNK_InputImportList lnk_list_from_input_import_arr(LNK_InputImportNode **arr, U64 count); diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index 1e09f419..027e631e 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -7,9 +7,9 @@ internal LNK_Symbol * lnk_make_defined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj, U32 symbol_idx) { LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); - symbol->name = name; - symbol->type = LNK_Symbol_Defined; - symbol->u.defined.obj = obj; + symbol->name = name; + symbol->type = LNK_Symbol_Defined; + symbol->u.defined.obj = obj; symbol->u.defined.symbol_idx = symbol_idx; return symbol; } @@ -18,9 +18,9 @@ internal LNK_Symbol * lnk_make_lib_symbol(Arena *arena, String8 name, struct LNK_Lib *lib, U64 member_offset) { LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); - symbol->name = name; - symbol->type = LNK_Symbol_Lib; - symbol->u.lib.lib = lib; + symbol->name = name; + symbol->type = LNK_Symbol_Lib; + symbol->u.lib.lib = lib; symbol->u.lib.member_offset = member_offset; return symbol; } @@ -29,12 +29,22 @@ internal LNK_Symbol * lnk_make_undefined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj) { LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); - symbol->name = name; - symbol->type = LNK_Symbol_Undefined; + symbol->name = name; + symbol->type = LNK_Symbol_Undefined; symbol->u.undef.obj = obj; return symbol; } +internal LNK_Symbol * +lnk_make_import_symbol(Arena *arena, String8 name, String8 import_header) +{ + LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); + symbol->name = name; + symbol->type = LNK_Symbol_Import; + symbol->u.import.import_header = import_header; + return symbol; +} + //////////////////////////////// internal void @@ -491,9 +501,9 @@ lnk_symbol_table_push_hash(LNK_SymbolTable *symtab, U64 hash, LNK_Symbol *symbol { switch (symbol->type) { case LNK_Symbol_Null: break; - case LNK_Symbol_Defined: - case LNK_Symbol_Import: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Defined, hash, symbol); } break; - case LNK_Symbol_Lib: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Lib, hash, symbol); } break; + case LNK_Symbol_Defined: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Defined, hash, symbol); } break; + case LNK_Symbol_Import: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Import, hash, symbol); } break; + case LNK_Symbol_Lib: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Lib, hash, symbol); } break; default: { InvalidPath; } break; } } diff --git a/src/linker/lnk_symbol_table.h b/src/linker/lnk_symbol_table.h index d3cbd10c..6a355727 100644 --- a/src/linker/lnk_symbol_table.h +++ b/src/linker/lnk_symbol_table.h @@ -31,6 +31,11 @@ typedef struct LNK_SymbolUndefined struct LNK_Obj *obj; } LNK_SymbolUndefined; +typedef struct LNK_SymbolImport +{ + String8 import_header; +} LNK_SymbolImport; + typedef struct LNK_Symbol { String8 name; @@ -38,13 +43,11 @@ typedef struct LNK_Symbol union { LNK_SymbolDefined defined; LNK_SymbolLib lib; - String8 coff_import; + LNK_SymbolImport import; LNK_SymbolUndefined undef; } u; } LNK_Symbol; -//////////////////////////////// - typedef struct LNK_SymbolNode { struct LNK_SymbolNode *next; @@ -70,11 +73,10 @@ typedef struct LNK_SymbolArray LNK_Symbol *v; } LNK_SymbolArray; -//////////////////////////////// - typedef enum { LNK_SymbolScope_Defined, + LNK_SymbolScope_Import, LNK_SymbolScope_Lib, LNK_SymbolScope_Count } LNK_SymbolScope; @@ -120,14 +122,10 @@ typedef struct //////////////////////////////// -global read_only LNK_Symbol g_null_symbol = { str8_lit_comp("NULL"), LNK_Symbol_Null }; -global read_only LNK_Symbol *g_null_symbol_ptr = &g_null_symbol; - -//////////////////////////////// - internal LNK_Symbol * lnk_make_defined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj, U32 symbol_idx); internal LNK_Symbol * lnk_make_lib_symbol(Arena *arena, String8 name, struct LNK_Lib *lib, U64 member_offset); internal LNK_Symbol * lnk_make_undefined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj); +internal LNK_Symbol * lnk_make_import_symbol(Arena *arena, String8 name, String8 import_header); //////////////////////////////// From 03e4958190eab3f312b9d8dfd2c9d07af1b28602 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 16 May 2025 13:33:09 -0700 Subject: [PATCH 110/372] assign layout offsets and sizes to merged sections --- src/linker/lnk.c | 51 ++++++++++++++++++++++------------ src/linker/lnk_config.c | 5 ++-- src/linker/lnk_section_table.c | 48 +++++++++++++++++++++++++++++--- src/linker/lnk_section_table.h | 23 +++++++++------ 4 files changed, 95 insertions(+), 32 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 6cefa2b7..d94fe688 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2281,6 +2281,11 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S { ProfBegin("Finalize Sections Layout"); + // merge sections + if (config->flags & LNK_ConfigFlag_Merge) { + lnk_section_table_merge(sectab, config->merge_list); + } + // sort contribs for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { for (LNK_SectionContribChunk *sc_chunk = sect_n->data.contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { @@ -2289,32 +2294,31 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S } } - // merge sections - if (config->flags & LNK_ConfigFlag_Merge) { - lnk_section_table_merge(sectab, config->merge_list); - } - // assign contribs offsets, sizes, and section indices for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { lnk_finalize_section_layout(sectab, §_n->data, config->file_align); } // remove empty sections - String8List empty_sect_list = {0}; - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - LNK_Section *sect = §_n->data; - if (sect->vsize == 0) { - str8_list_push(scratch.arena, &empty_sect_list, sect->name); + { + String8List empty_sect_list = {0}; + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + LNK_Section *sect = §_n->data; + if (sect->vsize == 0) { + str8_list_push(scratch.arena, &empty_sect_list, sect->name); + } + } + for (String8Node *name_n = empty_sect_list.first; name_n != 0; name_n = name_n->next) { + lnk_section_table_remove(sectab, name_n->string); } - } - for (String8Node *name_n = empty_sect_list.first; name_n != 0; name_n = name_n->next) { - lnk_section_table_remove(sectab, name_n->string); } // assign section indices to sections - U64 sect_idx = 0; - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - sect_n->data.sect_idx = sect_idx++; + { + U64 sect_idx = 0; + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + sect_n->data.sect_idx = sect_idx++; + } } // assign section indices to contribs @@ -2327,6 +2331,19 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S } } + // assing layout offsets and sizes to merged sections + for (LNK_SectionNode *sect_n = sectab->merge_list.first; sect_n != 0; sect_n = sect_n->next) { + LNK_Section *sect = §_n->data; + LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); + LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(sect); + LNK_Section *final_sect = lnk_finalized_section_from_id(sectab, sect->merge_id); + sect->voff = final_sect->voff + first_sc->u.off; + sect->vsize = (last_sc->u.off - first_sc->u.off) + last_sc->u.size; + sect->foff = final_sect->foff + first_sc->u.off; + sect->fsize = (last_sc->u.off - first_sc->u.off) + last_sc->u.size; + sect->sect_idx = final_sect->sect_idx; + } + ProfEnd(); } @@ -3054,7 +3071,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S ProfEnd(); } - // patch Debug + // patch debug { LNK_Section *debug_dir_sect = lnk_section_table_search(sectab, str8_lit(".RAD_LINKER_DEBUG_DIR"), PE_RDATA_SECTION_FLAGS); if (debug_dir_sect) { diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 89c96599..3118a91f 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -1436,12 +1436,11 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam case LNK_CmdSwitch_Merge: { if (value_strings.node_count == 1) { - LNK_MergeDirective merge = {0};; + LNK_MergeDirective merge = {0}; if (lnk_parse_merge_directive(push_str8_copy(arena, value_strings.first->string), &merge)) { lnk_merge_directive_list_push(arena, &config->merge_list, merge); } else { - lnk_error_cmd_switch(LNK_Warning_InvalidMergeDirectiveFormat, obj_path, lib_path, cmd_switch, "invalid merge directive format expected \"/MERGE:FROM=TO\" but got \"%S\"", - value_strings.first->string); + lnk_error_cmd_switch(LNK_Warning_InvalidMergeDirectiveFormat, obj_path, lib_path, cmd_switch, "unable to parse merge directive, expected format \"/MERGE:FROM=TO\" but got \"%S\"", value_strings.first->string); } } else { lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters %d", value_strings.node_count); diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index de6ed91b..1d1edf09 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -91,6 +91,17 @@ lnk_get_first_section_contrib(LNK_Section *sect) return 0; } +internal LNK_SectionContrib * +lnk_get_last_section_contrib(LNK_Section *sect) +{ + if (sect->contribs.chunk_count > 0) { + if (sect->contribs.last->count > 0) { + return sect->contribs.last->v[0]; + } + } + return 0; +} + internal LNK_SectionTable * lnk_section_table_alloc(void) { @@ -148,7 +159,7 @@ lnk_section_table_push(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags return sect; } -internal void +internal LNK_SectionNode * lnk_section_table_remove(LNK_SectionTable *sectab, String8 name) { ProfBeginFunction(); @@ -190,6 +201,7 @@ lnk_section_table_remove(LNK_SectionTable *sectab, String8 name) } ProfEnd(); + return node; } internal LNK_Section * @@ -210,8 +222,12 @@ lnk_section_table_search(LNK_SectionTable *sectab, String8 full_or_partial_name, } internal LNK_SectionArray -lnk_section_table_search_many(Arena *arena, LNK_SectionTable *sectab, String8 name) +lnk_section_table_search_many(Arena *arena, LNK_SectionTable *sectab, String8 full_or_partial_name) { + String8 name = {0}; + String8 postfix = {0}; + coff_parse_section_name(full_or_partial_name, &name, &postfix); + U64 match_count = 0; for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { if (str8_match(sect_n->data.name, name, 0)) { @@ -223,7 +239,7 @@ lnk_section_table_search_many(Arena *arena, LNK_SectionTable *sectab, String8 na if (match_count > 0) { result.count = 0; - result.v = push_array(arena, LNK_Section *, match_count); + result.v = push_array(arena, LNK_Section *, match_count); for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { if (str8_match(sect_n->data.name, name, 0)) { @@ -307,9 +323,14 @@ lnk_section_table_merge(LNK_SectionTable *sectab, LNK_MergeDirectiveList merge_l // merge section with destination lnk_section_contrib_chunk_list_concat_in_place(&dst->contribs, &src->contribs); src->is_merged = 1; + src->merge_id = dst->id; // remove from output section list - lnk_section_table_remove(sectab, src->name); + LNK_SectionNode *merge_node = lnk_section_table_remove(sectab, src->name); + + // move node to the merge list + SLLQueuePush(sectab->merge_list.first, sectab->merge_list.last, merge_node); + sectab->merge_list.count += 1; } } scratch_end(scratch); @@ -387,3 +408,22 @@ lnk_assign_section_file_space(LNK_Section *sect, U64 *foff_cursor) } } +internal LNK_Section * +lnk_finalized_section_from_id(LNK_SectionTable *sectab, U64 id) +{ + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + if (sect_n->data.id == id) { + return §_n->data; + } + } + + for (LNK_SectionNode *sect_n = sectab->merge_list.first; sect_n != 0; sect_n = sect_n->next) { + if (sect_n->data.id == id) { + return lnk_finalized_section_from_id(sectab, sect_n->data.merge_id); + } + } + + return 0; +} + + diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index d44bcb81..2cdbf041 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -60,12 +60,12 @@ typedef struct LNK_SectionDefinition typedef struct LNK_Section { - U64 id; - String8 name; - COFF_SectionFlags flags; - B32 has_layout; - B32 is_merged; - + U64 id; + String8 name; + COFF_SectionFlags flags; + B32 has_layout; + B32 is_merged; + U64 merge_id; LNK_SectionContribChunkList contribs; U64 voff; @@ -101,7 +101,7 @@ typedef struct LNK_SectionTable U64 id_max; U64 next_sect_idx; LNK_SectionList list; - LNK_SectionList free_list; + LNK_SectionList merge_list; HashTable *sect_ht; // name -> LNK_Section * } LNK_SectionTable; @@ -116,11 +116,18 @@ internal LNK_SectionArray lnk_section_array_from_list(Arena *arena, LNK_SectionL //////////////////////////////// +internal LNK_SectionContrib * lnk_get_last_section_contrib(LNK_Section *sect); +internal LNK_SectionTable * lnk_section_table_alloc(void); + +//////////////////////////////// + internal LNK_SectionTable * lnk_section_table_alloc(void); internal void lnk_section_table_release(LNK_SectionTable **st_ptr); internal LNK_Section * lnk_section_table_push(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags flags); -internal void lnk_section_table_remove(LNK_SectionTable *sectab, String8 name); +internal LNK_SectionNode * lnk_section_table_remove(LNK_SectionTable *sectab, String8 name); internal LNK_Section * lnk_section_table_search(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags flags); +internal LNK_SectionArray lnk_section_table_search_many(Arena *arena, LNK_SectionTable *sectab, String8 full_or_partial_name); internal void lnk_section_table_merge(LNK_SectionTable *sectab, LNK_MergeDirectiveList merge_list); internal LNK_SectionArray lnk_section_table_get_output_sections(Arena *arena, LNK_SectionTable *sectab); +internal LNK_Section * lnk_finalized_section_from_id(LNK_SectionTable *sectab, U64 id); From 60d3f2505744c3dd6dfeee92db3601f49c2e1a77 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 18 May 2025 17:46:30 -0700 Subject: [PATCH 111/372] test for __ImageBase with relative and address relocations --- src/torture/torture.c | 61 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index f3fc335f..2ea537e7 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -1654,6 +1654,66 @@ exit:; return result; } +internal T_Result +t_image_base(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + String8 obj_name = str8_lit("image_base.obj"); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0x8D, 0x0D, 0x00, 0x00, 0x00, 0x00, // lea rcx, [__ImageBase] + 0x48, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // mov rax, __ImageBase + 0xC3 // ret + }; + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); + COFF_ObjSymbol *image_base_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__ImageBase")); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 3, image_base_symbol, COFF_Reloc_X64_Rel32); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 9, image_base_symbol, COFF_Reloc_X64_Addr64); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(obj_name, obj)) { + goto exit; + } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /base:0x2000000140000000 /out:a.exe image_base.obj"); + + if (linker_exit_code != 0) { + goto exit; + } + + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + + if (!text_section) { + goto exit; + } + + U8 expected_text[] = { + 0x48, 0x8D, 0x0D, 0xF9, 0xEF, 0xFF, 0xFF, + 0x48, 0xB8, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x20, + 0xC3 + }; + String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + sizeof(expected_text))); + if (!str8_match(text_data, str8_array_fixed(expected_text), 0)) { + goto exit; + } + + result = T_Result_Pass; + + exit:; + scratch_end(scratch); + return result; +} + //////////////////////////////////////////////////////////////// internal void @@ -1686,6 +1746,7 @@ entry_point(CmdLine *cmdline) { "base_relocs", t_base_relocs }, { "simple_lib_test", t_simple_lib_test }, { "import_export", t_import_export }, + { "image_base", t_image_base }, }; // From 73fe9d223a6c634f3ddd77d8c5076120bc811af2 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 18 May 2025 18:04:24 -0700 Subject: [PATCH 112/372] handle /ALTERNATENAME directive --- src/coff/coff.c | 8 +-- src/coff/coff.h | 2 +- src/linker/hash_table.c | 20 ++++--- src/linker/hash_table.h | 3 + src/linker/lnk.c | 106 +++++++++++++++++---------------- src/linker/lnk.h | 2 +- src/linker/lnk_config.c | 43 +++++-------- src/linker/lnk_config.h | 22 +++++-- src/linker/lnk_lib.c | 1 - src/linker/lnk_obj.c | 10 ++++ src/linker/lnk_section_table.c | 1 - src/linker/lnk_symbol_table.c | 20 +++++++ src/linker/lnk_symbol_table.h | 3 + 13 files changed, 142 insertions(+), 99 deletions(-) diff --git a/src/coff/coff.c b/src/coff/coff.c index 2cd9bf29..3e3bf852 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -174,11 +174,11 @@ coff_apply_size_from_reloc(COFF_MachineType machine, COFF_RelocType x) internal COFF_RelocValue coff_pick_reloc_value_x64(COFF_Reloc_X64 type, + U64 image_base, U64 reloc_virtual_offset, U32 symbol_section_number, U32 symbol_section_offset, - U32 symbol_virtual_offset, - U64 symbol_address) + U32 symbol_virtual_offset) { U64 reloc_value_size = 0; S64 reloc_value = 0; @@ -187,11 +187,11 @@ coff_pick_reloc_value_x64(COFF_Reloc_X64 type, case COFF_Reloc_X64_Abs: {} break; case COFF_Reloc_X64_Addr64: { reloc_value_size = 8; - reloc_value = symbol_address; + reloc_value = symbol_virtual_offset + image_base; } break; case COFF_Reloc_X64_Addr32: { reloc_value_size = 4; - reloc_value = symbol_address; + reloc_value = symbol_virtual_offset + image_base; } break; case COFF_Reloc_X64_Addr32Nb: { reloc_value_size = 4; diff --git a/src/coff/coff.h b/src/coff/coff.h index c7c59b78..1127b1db 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -602,7 +602,7 @@ internal String8 coff_read_symbol_name(String8 string_table, COFF_SymbolName *na internal U64 coff_apply_size_from_reloc_x64(COFF_Reloc_X64 x); internal U64 coff_apply_size_from_reloc_x86(COFF_Reloc_X86 x); -internal COFF_RelocValue coff_pick_reloc_value_x64(COFF_Reloc_X64 type, U64 reloc_virtual_offset, U32 symbol_section_number, U32 symbol_section_offset, U32 symbol_virtual_offset, U64 symbol_address); +internal COFF_RelocValue coff_pick_reloc_value_x64(COFF_Reloc_X64 type, U64 image_base, U64 reloc_virtual_offset, U32 symbol_section_number, U32 symbol_section_offset, U32 symbol_virtual_offset); //////////////////////////////// // Import diff --git a/src/linker/hash_table.c b/src/linker/hash_table.c index 964506aa..e6adec79 100644 --- a/src/linker/hash_table.c +++ b/src/linker/hash_table.c @@ -237,13 +237,6 @@ hash_table_search_path_raw(HashTable *ht, String8 path) return kv ? kv->value_raw : 0; } -internal void * -hash_table_(HashTable *ht, String8 path) -{ - KeyValuePair *result = hash_table_search_path(ht, path); - return result ? result->value_raw : 0; -} - internal B32 hash_table_search_path_u64(HashTable *ht, String8 key, U64 *value_out) { @@ -283,6 +276,19 @@ hash_table_search_string_raw(HashTable *ht, String8 key, void *value_out) return 0; } +internal B32 +hash_table_search_string_string(HashTable *ht, String8 key, String8 *value_out) +{ + KeyValuePair *result = hash_table_search_string(ht, key); + if (result) { + if (value_out) { + *value_out = result->value_string; + } + return 1; + } + return 0; +} + //////////////////////////////// internal int diff --git a/src/linker/hash_table.h b/src/linker/hash_table.h index 504aedc6..2bda690a 100644 --- a/src/linker/hash_table.h +++ b/src/linker/hash_table.h @@ -74,6 +74,9 @@ internal KeyValuePair * hash_table_search_path (HashTable *ht, String8 path internal void * hash_table_search_path_raw(HashTable *ht, String8 path ); internal B32 hash_table_search_path_u64(HashTable *ht, String8 key, U64 *value_out); +internal B32 hash_table_search_string_u64(HashTable *ht, String8 key, U64 *value_out); +internal B32 hash_table_search_string_raw(HashTable *ht, String8 key, void *value_out); +internal B32 hash_table_search_string_string(HashTable *ht, String8 key, String8 *value_out); //- key-value helpers diff --git a/src/linker/lnk.c b/src/linker/lnk.c index d94fe688..32f771e3 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1102,14 +1102,13 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) COFF_Reloc *reloc = &relocs[reloc_idx]; // compute relocation file/virtual offsets - U64 reloc_file_offset = section_header->foff + reloc->apply_off; - U64 reloc_virtual_offset = section_header->voff + reloc->apply_off; + U64 reloc_foff = section_header->foff + reloc->apply_off; + U64 reloc_voff = section_header->voff + reloc->apply_off; // compute symbol location values - U32 symbol_section_number = 0; - U32 symbol_section_offset = 0; - U32 symbol_virtual_offset = 0; - U64 symbol_address = 0; + U32 symbol_secnum = 0; + U32 symbol_secoff = 0; + U32 symbol_voff = 0; { COFF_ParsedSymbol symbol; if (obj_header.is_big_obj) { @@ -1120,15 +1119,13 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular) { - symbol_section_number = symbol.section_number; - symbol_section_offset = symbol.value; - symbol_virtual_offset = task->image_section_table[symbol.section_number]->voff + symbol_section_offset; - symbol_address = task->base_addr + symbol_virtual_offset; + symbol_secnum = symbol.section_number; + symbol_secoff = symbol.value; + symbol_voff = task->image_section_table[symbol.section_number]->voff + symbol_secoff; } else if (interp == COFF_SymbolValueInterp_Abs) { - symbol_section_number = max_U32; - symbol_section_offset = max_U32; - symbol_virtual_offset = symbol.value - task->base_addr; - symbol_address = symbol.value; + symbol_secnum = 0; + symbol_secoff = 0; + symbol_voff = safe_cast_u32(symbol.value); } else if (interp == COFF_SymbolValueInterp_Weak) { // unresolved weak } else if (interp == COFF_SymbolValueInterp_Undefined) { @@ -1142,21 +1139,21 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) COFF_RelocValue reloc_value = {0}; switch (obj_header.machine) { case COFF_MachineType_Unknown: {} break; - case COFF_MachineType_X64: { reloc_value = coff_pick_reloc_value_x64(reloc->type, reloc_virtual_offset, symbol_section_number, symbol_section_offset, symbol_virtual_offset, symbol_address); } break; + case COFF_MachineType_X64: { reloc_value = coff_pick_reloc_value_x64(reloc->type, task->image_base, reloc_voff, symbol_secnum, symbol_secoff, symbol_voff); } break; default: { NotImplemented; } break; } // read addend - Assert(reloc_file_offset + reloc_value.size <= task->image_data.size); + Assert(reloc_foff + reloc_value.size <= task->image_data.size); U64 raw_addend = 0; - str8_deserial_read(task->image_data, reloc_file_offset, &raw_addend, reloc_value.size, reloc_value.size); + str8_deserial_read(task->image_data, reloc_foff, &raw_addend, reloc_value.size, reloc_value.size); // compute new reloc value S64 addend = extend_sign64(raw_addend, reloc_value.size); U64 reloc_result = reloc_value.value + addend; // commit new reloc value - MemoryCopy(task->image_data.str + reloc_file_offset, &reloc_result, reloc_value.size); + MemoryCopy(task->image_data.str + reloc_foff, &reloc_result, reloc_value.size); } } } @@ -2270,9 +2267,12 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *sect_header = §ion_table[sect_idx]; if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symlinks[sect_idx]); - COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - sect_map[obj_idx][sect_idx] = sect_map[defn->u.defined.obj->input_idx][symbol.section_number-1]; + String8 comdat_name = symlinks[sect_idx]; + if (comdat_name.size) { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, comdat_name); + COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + sect_map[obj_idx][sect_idx] = sect_map[defn->u.defined.obj->input_idx][symbol.section_number-1]; + } } } } @@ -2473,15 +2473,25 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular) { - LNK_SectionContrib *sc = sect_map[obj_idx][symbol.section_number-1]; + U32 section_number = 0; + U32 value = 0; + { + COFF_SectionHeader *sect_header = lnk_section_header_from_section_number(obj, symbol.section_number); + if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { + LNK_SectionContrib *sc = sect_map[obj_idx][symbol.section_number-1]; + section_number = safe_cast_u32(sc->u.sect_idx + 1); + value = sc->u.off + symbol.value; + } + } + if (obj->header.is_big_obj) { COFF_Symbol32 *symbol32 = symbol.raw_symbol; - symbol32->section_number = safe_cast_u32(sc->u.sect_idx + 1); - symbol32->value = safe_cast_u32(sc->u.off + symbol32->value); + symbol32->section_number = section_number; + symbol32->value = value; } else { COFF_Symbol16 *symbol16 = symbol.raw_symbol; - symbol16->section_number = safe_cast_u16(sc->u.sect_idx + 1); - symbol16->value = safe_cast_u32(sc->u.off + symbol16->value); + symbol16->section_number = safe_cast_u16(section_number); + symbol16->value = value; } } } @@ -2918,7 +2928,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S LNK_ObjRelocPatcher task = {0}; task.image_data = image_data; task.objs = objs; - task.base_addr = pe.image_base; + task.image_base = pe.image_base; task.image_section_table = image_section_table; tp_for_parallel(tp, 0, objs_count, lnk_obj_reloc_patcher, &task); ProfEnd(); @@ -3546,7 +3556,6 @@ lnk_run(int argc, char **argv) String8List manifest_dep_list = str8_list_copy(scratch.arena, &config->manifest_dependency_list); PE_ExportParseList export_symbol_list = config->export_symbol_list; HashTable *export_ht = hash_table_init(scratch.arena, max_U16/2); - LNK_AltNameList alt_name_list = config->alt_name_list; LNK_InputObjList input_obj_list = {0}; LNK_InputImportList input_import_list = {0}; LNK_SymbolList input_weak_list = {0}; @@ -3624,6 +3633,13 @@ lnk_run(int argc, char **argv) for (PE_ExportParseNode *exp_n = config->export_symbol_list.first; exp_n != 0; exp_n = exp_n->next) { lnk_push_export(scratch.arena, export_ht, &export_symbol_list, &include_symbol_list, exp_n->data); } + + // + // Push config alternative names + // + for (LNK_AltNameNode *alt_n = config->alt_name_list.first; alt_n != 0; alt_n = alt_n->next) { + lnk_symbol_table_push_alt_name(symtab, 0, alt_n->data.from, alt_n->data.to); + } ProfBegin("Image"); // :EndImage lnk_timer_begin(LNK_Timer_Image); @@ -3711,21 +3727,6 @@ lnk_run(int argc, char **argv) lnk_symbol_list_push(scratch.arena, &lookup_undef_list, symbol); } ProfEnd(); - -#if 0 - ProfBegin("Push /ALTERNATIVENAME Symbols"); - Assert(alt_name_list.from_list.node_count == alt_name_list.to_list.node_count); - for (String8Node *from_node = alt_name_list.from_list.first, *to_node = alt_name_list.to_list.first; - from_node != 0; - from_node = from_node->next, to_node = to_node->next) { - LNK_Symbol *fallback = lnk_make_undefined_symbol(scratch.arena, to_node->string); - LNK_Symbol *weak = lnk_make_weak_symbol(scratch.arena, from_node->string, COFF_WeakExt_SearchAlias, fallback); - lnk_symbol_list_push(scratch.arena, &lookup_undef_list, fallback); - lnk_symbol_list_push(scratch.arena, &input_weak_list, weak); - lnk_symbol_table_push(symtab, weak); - } - ProfEnd(); -#endif // we defined new symbols, give unresolved symbols another chance to be resolved lnk_symbol_list_concat_in_place(&lookup_undef_list, &unresolved_undef_list); @@ -3734,7 +3735,6 @@ lnk_run(int argc, char **argv) // reset inputs MemoryZeroStruct(&include_symbol_list); - MemoryZeroStruct(&alt_name_list); MemoryZeroStruct(&input_weak_list); ProfEnd(); @@ -3880,10 +3880,16 @@ lnk_run(int argc, char **argv) } // /ALTERNATENAME - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_AlternateName].first; dir != 0; dir = dir->next) { - String8 *invalid_string = lnk_parse_alt_name_directive_list(scratch.arena, dir->value_list, &alt_name_list); - if (invalid_string) { - lnk_error_obj(LNK_Error_Cmdl, obj, "invalid syntax \"%S\", expected format \"FROM=TO\"", *invalid_string); + { + for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_AlternateName].first; dir != 0; dir = dir->next) { + for (String8Node *string_n = dir->value_list.first; string_n != 0; string_n = string_n->next) { + LNK_AltName alt_name; + if (lnk_parse_alt_name_directive(string_n->string, &alt_name)) { + lnk_symbol_table_push_alt_name(symtab, obj, alt_name.from, alt_name.to); + } else { + lnk_error_obj(LNK_Error_Cmdl, obj, "syntax error in \"%S\", expected format \"FROM=TO\"", string_n->string); + } + } } } @@ -4573,9 +4579,7 @@ lnk_run(int argc, char **argv) state_list_push(scratch.arena, state_list, State_InputImports); continue; } - if (input_weak_list.count || - include_symbol_list.node_count || - alt_name_list.from_list.node_count) { + if (input_weak_list.count || include_symbol_list.node_count) { state_list_push(scratch.arena, state_list, State_InputSymbols); continue; } diff --git a/src/linker/lnk.h b/src/linker/lnk.h index af76f03e..be0ba71e 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -102,7 +102,7 @@ typedef struct { String8 image_data; LNK_Obj **objs; - U64 base_addr; + U64 image_base; COFF_SectionHeader **image_section_table; } LNK_ObjRelocPatcher; diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 3118a91f..35e0665f 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -776,40 +776,21 @@ lnk_cmd_switch_parse_string_copy(Arena *arena, String8 obj_path, String8 lib_pat //////////////////////////////// -internal void -lnk_alt_name_list_concat_in_place(LNK_AltNameList *list, LNK_AltNameList *to_concat) -{ - str8_list_concat_in_place(&list->from_list, &to_concat->from_list); - str8_list_concat_in_place(&list->to_list, &to_concat->to_list); -} - internal B32 -lnk_parse_alt_name_directive(Arena *arena, String8 input, LNK_AltNameList *list_out) +lnk_parse_alt_name_directive(String8 input, LNK_AltName *alt_out) { - Temp scratch = scratch_begin(&arena, 1); + Temp scratch = scratch_begin(0,0); B32 is_parse_ok = 0; String8List pair = str8_split_by_string_chars(scratch.arena, input, str8_lit("="), 0); if (pair.node_count == 2) { - str8_list_push(arena, &list_out->from_list, pair.first->string); - str8_list_push(arena, &list_out->to_list, pair.last->string); + alt_out->from = pair.first->string; + alt_out->to = pair.last->string; is_parse_ok = 1; } scratch_end(scratch); return is_parse_ok; } -internal String8 * -lnk_parse_alt_name_directive_list(Arena *arena, String8List list, LNK_AltNameList *list_out) -{ - for (String8Node *str_n = list.first; str_n != 0; str_n = str_n->next) { - B32 is_parse_ok = lnk_parse_alt_name_directive(arena, str_n->string, list_out); - if ( ! is_parse_ok) { - return &str_n->string; - } - } - return 0; -} - internal B32 lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_path, String8 lib_path, PE_ExportParse *export_out) { @@ -1076,10 +1057,18 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_AlternateName: { - String8List value_strings_copy = str8_list_copy(arena, &value_strings); - String8 *error_string = lnk_parse_alt_name_directive_list(arena, value_strings_copy, &config->alt_name_list); - if (error_string != 0) { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid syntax \"%S\", expected format \"FROM=TO\"", *error_string); + if (value_strings.node_count == 1) { + LNK_AltName alt_name; + if (lnk_parse_alt_name_directive(value_strings.first->string, &alt_name)) { + LNK_AltNameNode *alt_name_n = push_array(arena, LNK_AltNameNode, 1); + alt_name_n->data = alt_name; + SLLQueuePush(config->alt_name_list.first, config->alt_name_list.last, alt_name_n); + config->alt_name_list.count += 1; + } else { + lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "syntax error in \"%S\", expected format \"FROM=TO\"", value_strings.first->string); + } + } else { + lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters"); } } break; diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index 377740db..5a361e1d 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -232,10 +232,23 @@ typedef enum LNK_ManifestOpt_No, } LNK_ManifestOpt; +typedef struct LNK_AltName +{ + String8 from; + String8 to; +} LNK_AltName; + +typedef struct LNK_AltNameNode +{ + struct LNK_AltNameNode *next; + LNK_AltName data; +} LNK_AltNameNode; + typedef struct LNK_AltNameList { - String8List from_list; - String8List to_list; + U64 count; + LNK_AltNameNode *first; + LNK_AltNameNode *last; } LNK_AltNameList; typedef struct LNK_MergeDirective @@ -556,10 +569,7 @@ internal void lnk_cmd_switch_parse_string_copy(Arena *arena, String8 obj_path, S //////////////////////////////// -internal void lnk_alt_name_list_concat_in_place(LNK_AltNameList *list, LNK_AltNameList *to_concat); -internal B32 lnk_parse_alt_name_directive (Arena *arena, String8 input, LNK_AltNameList *list_out); -internal String8 * lnk_parse_alt_name_directive_list(Arena *arena, String8List list, LNK_AltNameList *list_out); - +internal B32 lnk_parse_alt_name_directive(String8 input, LNK_AltName *alt_out); internal B32 lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_path, String8 lib_path, PE_ExportParse *export_out); internal B32 lnk_parse_export_directive(Arena *arena, String8 directive, String8 obj_path, String8 lib_path, PE_ExportParse *export_out); diff --git a/src/linker/lnk_lib.c b/src/linker/lnk_lib.c index a04e6961..b04db0b1 100644 --- a/src/linker/lnk_lib.c +++ b/src/linker/lnk_lib.c @@ -139,7 +139,6 @@ THREAD_POOL_TASK_FUNC(lnk_push_lib_symbols_task) String8Node *name_node = lib->symbol_name_list.first; for (U64 symbol_idx = 0; symbol_idx < lib->symbol_count; ++symbol_idx, name_node = name_node->next) { LNK_Symbol *symbol = lnk_make_lib_symbol(arena, name_node->string, lib, lib->member_off_arr[symbol_idx]); - U64 hash = lnk_symbol_hash(symbol->name); lnk_symbol_table_push_(symtab, arena, worker_id, LNK_SymbolScope_Lib, hash, symbol); } diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index a0c20dc8..c281de88 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -233,6 +233,16 @@ lnk_parsed_symbol_from_coff_symbol_idx(LNK_Obj *obj, U64 symbol_idx) return result; } +internal COFF_SectionHeader * +lnk_section_header_from_section_number(LNK_Obj *obj, U64 section_number) +{ + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + if (section_number > 0 && section_number <= obj->header.section_count_no_null) { + return §ion_table[section_number-1]; + } + return 0; +} + internal String8List * lnk_collect_obj_chunks_parallel(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8 name, String8 postfix, B32 collect_discarded) { diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index 1d1edf09..ed83c1fa 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -63,7 +63,6 @@ lnk_section_contrib_chunk_list_concat_in_place(LNK_SectionContribChunkList *list list->last->next = to_concat->first; list->last = to_concat->last; list->chunk_count += to_concat->chunk_count; - MemoryZeroStruct(to_concat); } } diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index 027e631e..b5053581 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -457,6 +457,7 @@ lnk_symbol_table_init(TP_Arena *arena) for (U64 i = 0; i < LNK_SymbolScope_Count; ++i) { symtab->chunk_lists[i] = push_array(arena->v[0], LNK_SymbolHashTrieChunkList, arena->count); } + symtab->alt_names = hash_table_init(arena->v[0], 1024); return symtab; } @@ -464,6 +465,13 @@ internal LNK_Symbol * lnk_symbol_table_search_hash(LNK_SymbolTable *symtab, LNK_SymbolScope scope, U64 hash, String8 name) { LNK_SymbolHashTrie *trie = lnk_symbol_hash_trie_search(symtab->scopes[scope], hash, name); + if (trie == 0) { + String8 alt_name = {0}; + if (hash_table_search_string_string(symtab->alt_names, name, &alt_name)) { + U64 alt_hash = lnk_symbol_hash(alt_name); + trie = lnk_symbol_hash_trie_search(symtab->scopes[scope], alt_hash, alt_name); + } + } return trie ? trie->symbol : 0; } @@ -525,4 +533,16 @@ lnk_symbol_table_remove(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 } } +internal void +lnk_symbol_table_push_alt_name(LNK_SymbolTable *symtab, LNK_Obj *obj, String8 from, String8 to) +{ + String8 to_extant; + if (hash_table_search_string_string(symtab->alt_names, from, &to_extant)) { + if (!str8_match(to_extant, to, 0)) { + lnk_error_obj(LNK_Error_AlternateNameConflict, obj, "conflicting alternative name: existing '%S=%S' vs. new '%S=%S'", from, to_extant, from, to); + } + } else { + hash_table_push_string_string(symtab->arena->v[0], symtab->alt_names, from, to); + } +} diff --git a/src/linker/lnk_symbol_table.h b/src/linker/lnk_symbol_table.h index 6a355727..5c5ee11b 100644 --- a/src/linker/lnk_symbol_table.h +++ b/src/linker/lnk_symbol_table.h @@ -108,6 +108,7 @@ typedef struct LNK_SymbolTable TP_Arena *arena; LNK_SymbolHashTrie *scopes[LNK_SymbolScope_Count]; LNK_SymbolHashTrieChunkList *chunk_lists[LNK_SymbolScope_Count]; + HashTable *alt_names; } LNK_SymbolTable; //////////////////////////////// @@ -162,3 +163,5 @@ internal void lnk_symbol_table_push_hash(LNK_SymbolTable *symtab, U internal void lnk_symbol_table_push(LNK_SymbolTable *symtab, LNK_Symbol *symbol); internal void lnk_symbol_table_remove(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 name); +internal void lnk_symbol_table_push_alt_name(LNK_SymbolTable *symtab, struct LNK_Obj *obj, String8 from, String8 to); + From ad069cb85497403ab9fc8e35c52f29578a6fb5dd Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 18 May 2025 18:06:07 -0700 Subject: [PATCH 113/372] unknown relocation --- src/coff/coff.c | 19 ++++++------------- src/coff/coff.h | 35 ++++++++++++++++++----------------- 2 files changed, 24 insertions(+), 30 deletions(-) diff --git a/src/coff/coff.c b/src/coff/coff.c index 3e3bf852..a8a1fb57 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -229,19 +229,12 @@ coff_pick_reloc_value_x64(COFF_Reloc_X64 type, reloc_value_size = 4; reloc_value = symbol_section_offset; } break; - case COFF_Reloc_X64_SecRel7: { - NotImplemented; - } break; - case COFF_Reloc_X64_Token: { - NotImplemented; - } break; - case COFF_Reloc_X64_SRel32: { - NotImplemented; - } break; - case COFF_Reloc_X64_Pair: { - NotImplemented; - } break; - case COFF_Reloc_X64_SSpan32: { + case COFF_Reloc_X64_SecRel7: + case COFF_Reloc_X64_Token: + case COFF_Reloc_X64_SRel32: + case COFF_Reloc_X64_Pair: + case COFF_Reloc_X64_SSpan32: + case COFF_Reloc_X64_Unknown_11: { NotImplemented; } break; } diff --git a/src/coff/coff.h b/src/coff/coff.h index 1127b1db..2dd187b6 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -367,23 +367,24 @@ typedef U16 COFF_RelocType; typedef COFF_RelocType COFF_Reloc_X64; enum { - COFF_Reloc_X64_Abs = 0x0, - COFF_Reloc_X64_Addr64 = 0x1, - COFF_Reloc_X64_Addr32 = 0x2, - COFF_Reloc_X64_Addr32Nb = 0x3, // NB => No Base - COFF_Reloc_X64_Rel32 = 0x4, - COFF_Reloc_X64_Rel32_1 = 0x5, - COFF_Reloc_X64_Rel32_2 = 0x6, - COFF_Reloc_X64_Rel32_3 = 0x7, - COFF_Reloc_X64_Rel32_4 = 0x8, - COFF_Reloc_X64_Rel32_5 = 0x9, - COFF_Reloc_X64_Section = 0xA, - COFF_Reloc_X64_SecRel = 0xB, - COFF_Reloc_X64_SecRel7 = 0xC, // TODO(nick): MSDN doesn't specify size for CLR token - COFF_Reloc_X64_Token = 0xD, - COFF_Reloc_X64_SRel32 = 0xE, // TODO(nick): MSDN doesn't specify size for PAIR - COFF_Reloc_X64_Pair = 0xF, - COFF_Reloc_X64_SSpan32 = 0x10 + COFF_Reloc_X64_Abs = 0x0, + COFF_Reloc_X64_Addr64 = 0x1, + COFF_Reloc_X64_Addr32 = 0x2, + COFF_Reloc_X64_Addr32Nb = 0x3, // NB => No Base + COFF_Reloc_X64_Rel32 = 0x4, + COFF_Reloc_X64_Rel32_1 = 0x5, + COFF_Reloc_X64_Rel32_2 = 0x6, + COFF_Reloc_X64_Rel32_3 = 0x7, + COFF_Reloc_X64_Rel32_4 = 0x8, + COFF_Reloc_X64_Rel32_5 = 0x9, + COFF_Reloc_X64_Section = 0xA, + COFF_Reloc_X64_SecRel = 0xB, + COFF_Reloc_X64_SecRel7 = 0xC, // TODO(nick): MSDN doesn't specify size for CLR token + COFF_Reloc_X64_Token = 0xD, + COFF_Reloc_X64_SRel32 = 0xE, // TODO(nick): MSDN doesn't specify size for PAIR + COFF_Reloc_X64_Pair = 0xF, + COFF_Reloc_X64_SSpan32 = 0x10, + COFF_Reloc_X64_Unknown_11 = 0x11, }; typedef COFF_RelocType COFF_Reloc_X86; From c98ae0925fd0afd87242bee6933fc61dd328bdac Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 18 May 2025 18:19:10 -0700 Subject: [PATCH 114/372] error check relocations --- src/coff/coff.h | 1 + src/linker/lnk.c | 19 ++++++++++++++++++- src/linker/lnk_error.h | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/coff/coff.h b/src/coff/coff.h index 2dd187b6..a0f18d2e 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -385,6 +385,7 @@ enum COFF_Reloc_X64_Pair = 0xF, COFF_Reloc_X64_SSpan32 = 0x10, COFF_Reloc_X64_Unknown_11 = 0x11, + COFF_Reloc_X64_Last = COFF_Reloc_X64_Unknown_11, }; typedef COFF_RelocType COFF_Reloc_X86; diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 32f771e3..47264f38 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1101,6 +1101,15 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { COFF_Reloc *reloc = &relocs[reloc_idx]; + // error check relocation + if (obj->header.machine == COFF_MachineType_X64) { + if (reloc->type > COFF_Reloc_X64_Last) { + lnk_error_obj(LNK_Error_IllegalRelocation, obj, "unknown relocation 0x%x", reloc->type); + } + } else if (obj->header.machine == COFF_MachineType_Unknown) { + NotImplemented; + } + // compute relocation file/virtual offsets U64 reloc_foff = section_header->foff + reloc->apply_off; U64 reloc_voff = section_header->voff + reloc->apply_off; @@ -1121,8 +1130,16 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) if (interp == COFF_SymbolValueInterp_Regular) { symbol_secnum = symbol.section_number; symbol_secoff = symbol.value; - symbol_voff = task->image_section_table[symbol.section_number]->voff + symbol_secoff; + symbol_voff = safe_cast_u32((U64)task->image_section_table[symbol.section_number]->voff + (U64)symbol_secoff); } else if (interp == COFF_SymbolValueInterp_Abs) { + // error check relocation + if (obj->header.machine == COFF_MachineType_X64) { + if (reloc->type == COFF_Reloc_X64_SecRel) { + lnk_error_obj(LNK_Error_IllegalRelocation, obj, "section-relative relocation (No. 0x%x) cannot be applied to absolute symbol (No. 0x%x)", reloc_idx, reloc->isymbol); + } + } else if (obj->header.machine != COFF_MachineType_Unknown) { + NotImplemented; + } symbol_secnum = 0; symbol_secoff = 0; symbol_voff = safe_cast_u32(symbol.value); diff --git a/src/linker/lnk_error.h b/src/linker/lnk_error.h index d1fa096c..af146ade 100644 --- a/src/linker/lnk_error.h +++ b/src/linker/lnk_error.h @@ -35,6 +35,7 @@ typedef enum LNK_Error_MultiplyDefinedSymbol, LNK_Error_SectRefsDiscardedMemory, LNK_Error_IllegalSectionMerge, + LNK_Error_IllegalRelocation, LNK_Error_StopLast, LNK_Error_First, From 971f6ec3682795466e1a1b7ec208394f5d4d2335 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 19 May 2025 10:59:55 -0700 Subject: [PATCH 115/372] test virtual offset relocation with __ImageBase --- src/torture/torture.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index 2ea537e7..681f821f 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -1667,12 +1667,14 @@ t_image_base(void) U8 text[] = { 0x48, 0x8D, 0x0D, 0x00, 0x00, 0x00, 0x00, // lea rcx, [__ImageBase] 0x48, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // mov rax, __ImageBase + 0xB8, 0x00, 0x00, 0x00, 0x00, // mov eax, __ImageBase 0xC3 // ret }; COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); COFF_ObjSymbol *image_base_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__ImageBase")); coff_obj_writer_section_push_reloc(obj_writer, text_sect, 3, image_base_symbol, COFF_Reloc_X64_Rel32); coff_obj_writer_section_push_reloc(obj_writer, text_sect, 9, image_base_symbol, COFF_Reloc_X64_Addr64); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 18, image_base_symbol, COFF_Reloc_X64_Addr32Nb); coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); @@ -1700,6 +1702,7 @@ t_image_base(void) U8 expected_text[] = { 0x48, 0x8D, 0x0D, 0xF9, 0xEF, 0xFF, 0xFF, 0x48, 0xB8, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x20, + 0xB8, 0x00, 0x00, 0x00, 0x00, 0xC3 }; String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + sizeof(expected_text))); From d5297e01acbced57446c525732bbe8ba1e7a49d7 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 19 May 2025 11:10:03 -0700 Subject: [PATCH 116/372] workaround for image base address --- src/linker/lnk.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 47264f38..b4623c28 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1140,9 +1140,17 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) } else if (obj->header.machine != COFF_MachineType_Unknown) { NotImplemented; } + symbol_secnum = 0; symbol_secoff = 0; - symbol_voff = safe_cast_u32(symbol.value); + // There aren't enough bits in COFF symbol to store full image base address, + // so we special case __ImageBase. A better solution would be to add + // a 64-bit symbol format to COFF. + if (str8_match(symbol.name, str8_lit("__ImageBase"), 0)) { + symbol_voff = 0; + } else { + symbol_voff = symbol.value - task->image_base; + } } else if (interp == COFF_SymbolValueInterp_Weak) { // unresolved weak } else if (interp == COFF_SymbolValueInterp_Undefined) { From 671431cfbdb111d50a9f9f5fd188e822128e7215 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 19 May 2025 11:10:15 -0700 Subject: [PATCH 117/372] remove unused define --- src/coff/coff.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/coff/coff.h b/src/coff/coff.h index a0f18d2e..5cf6abc6 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -290,9 +290,6 @@ typedef struct COFF_Symbol32 U8 aux_symbol_count; } COFF_Symbol32; -// Auxilary symbols are allocated with fixed size so that symbol table could be maintaned as array of regular size. -#define COFF_AuxSymbolSize 18 - typedef U32 COFF_WeakExtType; enum { From a3bcfe01e11cc828186521c6342963108fc0a20d Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 19 May 2025 13:13:44 -0700 Subject: [PATCH 118/372] fix signedness issue --- src/coff/coff.c | 8 ++++---- src/coff/coff.h | 2 +- src/linker/lnk.c | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/coff/coff.c b/src/coff/coff.c index a8a1fb57..9291a4b0 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -178,7 +178,7 @@ coff_pick_reloc_value_x64(COFF_Reloc_X64 type, U64 reloc_virtual_offset, U32 symbol_section_number, U32 symbol_section_offset, - U32 symbol_virtual_offset) + S64 symbol_virtual_offset) { U64 reloc_value_size = 0; S64 reloc_value = 0; @@ -187,15 +187,15 @@ coff_pick_reloc_value_x64(COFF_Reloc_X64 type, case COFF_Reloc_X64_Abs: {} break; case COFF_Reloc_X64_Addr64: { reloc_value_size = 8; - reloc_value = symbol_virtual_offset + image_base; + reloc_value = symbol_virtual_offset + (S64)image_base; } break; case COFF_Reloc_X64_Addr32: { reloc_value_size = 4; - reloc_value = symbol_virtual_offset + image_base; + reloc_value = safe_cast_s32(symbol_virtual_offset + (S64)image_base); } break; case COFF_Reloc_X64_Addr32Nb: { reloc_value_size = 4; - reloc_value = safe_cast_u32(symbol_virtual_offset); + reloc_value = symbol_virtual_offset; } break; case COFF_Reloc_X64_Rel32: { reloc_value_size = 4; diff --git a/src/coff/coff.h b/src/coff/coff.h index 5cf6abc6..32f8bc7b 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -601,7 +601,7 @@ internal String8 coff_read_symbol_name(String8 string_table, COFF_SymbolName *na internal U64 coff_apply_size_from_reloc_x64(COFF_Reloc_X64 x); internal U64 coff_apply_size_from_reloc_x86(COFF_Reloc_X86 x); -internal COFF_RelocValue coff_pick_reloc_value_x64(COFF_Reloc_X64 type, U64 image_base, U64 reloc_virtual_offset, U32 symbol_section_number, U32 symbol_section_offset, U32 symbol_virtual_offset); +internal COFF_RelocValue coff_pick_reloc_value_x64(COFF_Reloc_X64 type, U64 image_base, U64 reloc_virtual_offset, U32 symbol_section_number, U32 symbol_section_offset, S64 symbol_virtual_offset); //////////////////////////////// // Import diff --git a/src/linker/lnk.c b/src/linker/lnk.c index b4623c28..ea7505c2 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1117,7 +1117,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) // compute symbol location values U32 symbol_secnum = 0; U32 symbol_secoff = 0; - U32 symbol_voff = 0; + S64 symbol_voff = 0; { COFF_ParsedSymbol symbol; if (obj_header.is_big_obj) { @@ -1149,7 +1149,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) if (str8_match(symbol.name, str8_lit("__ImageBase"), 0)) { symbol_voff = 0; } else { - symbol_voff = symbol.value - task->image_base; + symbol_voff = (S64)symbol.value - (S64)task->image_base; } } else if (interp == COFF_SymbolValueInterp_Weak) { // unresolved weak From 681c1619fb90362ba5e8f519a363324cd71ad27a Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 19 May 2025 13:14:35 -0700 Subject: [PATCH 119/372] finish undefined section test --- src/torture/torture.c | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index 681f821f..36af1efb 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -888,11 +888,12 @@ t_sect_symbol(void) T_Result result = T_Result_Fail; + String8 sect_payload = str8_lit("hello, world"); String8 sect_obj_name = str8_lit("sect.obj"); { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".mysect$1"), PE_RDATA_SECTION_FLAGS, str8_lit("hello, world")); - coff_obj_writer_push_directive(obj_writer, str8_lit("/merge:.mysect=.rdata")); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".mysect$1"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, sect_payload); + coff_obj_writer_push_directive(obj_writer, str8_lit("/merge:.mysect=.data")); String8 sect_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); if (!t_write_file(sect_obj_name, sect_obj)) { @@ -905,7 +906,7 @@ t_sect_symbol(void) U8 data[8] = {0}; COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_array_fixed(data)); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".mysect$2222"), PE_RDATA_SECTION_FLAGS); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".mysect$2222"), PE_DATA_SECTION_FLAGS); coff_obj_writer_section_push_reloc_addr(obj_writer, sect, 0, symbol); U8 text[] = { 0xC3 }; @@ -922,6 +923,38 @@ t_sect_symbol(void) int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe main.obj sect.obj"); + if (linker_exit_code != 0) { + goto exit; + } + + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + + if (!sect) { + goto exit; + } + + String8 sect_data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + + String8 addr_data = str8_substr(sect_data, rng_1u64(0, sizeof(U64))); + if (addr_data.size != sizeof(U64)) { + goto exit; + } + U64 addr = *(U64 *)addr_data.str; + if (addr - (pe.image_base + sect->voff) != 8) { + goto exit; + } + + String8 payload_got = str8_substr(sect_data, rng_1u64(8, sect_data.size)); + if (!str8_match(payload_got, sect_payload, 0)) { + goto exit; + } + + result = T_Result_Pass; + exit:; scratch_end(scratch); return result; From c0613c2a7e819294cf3a54ada816371071f9bb79 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 19 May 2025 13:14:56 -0700 Subject: [PATCH 120/372] section align fixes --- src/coff/coff.c | 30 +++++++++++++++--------------- src/coff/coff.h | 1 + src/linker/lnk.c | 2 +- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/coff/coff.c b/src/coff/coff.c index 9291a4b0..b63f9d2b 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -8,7 +8,6 @@ coff_align_size_from_section_flags(COFF_SectionFlags flags) U32 align_index = COFF_SectionFlags_ExtractAlign(flags); switch (align_index) { default: break; - case 0: align = 1; break; // alignment isn't specified, default to 1 case COFF_SectionAlign_1Bytes: align = 1; break; case COFF_SectionAlign_2Bytes: align = 2; break; case COFF_SectionAlign_4Bytes: align = 4; break; @@ -32,20 +31,21 @@ coff_section_flag_from_align_size(U64 align) { COFF_SectionFlags flags = 0; switch (align) { - case 1: flags = COFF_SectionAlign_1Bytes; break; - case 2: flags = COFF_SectionAlign_2Bytes; break; - case 4: flags = COFF_SectionAlign_4Bytes; break; - case 8: flags = COFF_SectionAlign_8Bytes; break; - case 16: flags = COFF_SectionAlign_16Bytes; break; - case 32: flags = COFF_SectionAlign_32Bytes; break; - case 64: flags = COFF_SectionAlign_64Bytes; break; - case 128: flags = COFF_SectionAlign_128Bytes; break; - case 256: flags = COFF_SectionAlign_256Bytes; break; - case 512: flags = COFF_SectionAlign_512Bytes; break; - case 1024: flags = COFF_SectionAlign_1024Bytes; break; - case 2048: flags = COFF_SectionAlign_2048Bytes; break; - case 4096: flags = COFF_SectionAlign_4096Bytes; break; - case 8192: flags = COFF_SectionAlign_8192Bytes; break; + case 0: flags = COFF_SectionAlign_None; break; + case 1: flags = COFF_SectionAlign_1Bytes; break; + case 2: flags = COFF_SectionAlign_2Bytes; break; + case 4: flags = COFF_SectionAlign_4Bytes; break; + case 8: flags = COFF_SectionAlign_8Bytes; break; + case 16: flags = COFF_SectionAlign_16Bytes; break; + case 32: flags = COFF_SectionAlign_32Bytes; break; + case 64: flags = COFF_SectionAlign_64Bytes; break; + case 128: flags = COFF_SectionAlign_128Bytes; break; + case 256: flags = COFF_SectionAlign_256Bytes; break; + case 512: flags = COFF_SectionAlign_512Bytes; break; + case 1024: flags = COFF_SectionAlign_1024Bytes; break; + case 2048: flags = COFF_SectionAlign_2048Bytes; break; + case 4096: flags = COFF_SectionAlign_4096Bytes; break; + case 8192: flags = COFF_SectionAlign_8192Bytes; break; } flags <<= COFF_SectionFlag_AlignShift; return flags; diff --git a/src/coff/coff.h b/src/coff/coff.h index 32f8bc7b..2a6ca456 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -103,6 +103,7 @@ typedef struct COFF_BigObjHeader typedef U32 COFF_SectionAlign; enum { + COFF_SectionAlign_None = 0x0, COFF_SectionAlign_1Bytes = 0x1, COFF_SectionAlign_2Bytes = 0x2, COFF_SectionAlign_4Bytes = 0x3, diff --git a/src/linker/lnk.c b/src/linker/lnk.c index ea7505c2..d70dc380 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2239,7 +2239,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S String8 sect_data = str8_substr(obj->data, rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize)); // extract align - U16 sc_align = coff_align_size_from_section_flags(COFF_SectionFlags_ExtractAlign(sect_header->flags)); + U16 sc_align = coff_align_size_from_section_flags(sect_header->flags); if (sc_align == 0) { sc_align = default_align; } From 87acc95016f278f5798276157043f9fec6ebf44e Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 19 May 2025 13:23:04 -0700 Subject: [PATCH 121/372] set section align in common block test --- src/torture/torture.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index 36af1efb..997aa56a 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -1279,6 +1279,7 @@ t_common_block(void) COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_common(obj_writer, str8_lit("A"), 3); COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(a_data)); + data_sect->flags |= COFF_SectionFlag_Align1Bytes; coff_obj_writer_section_push_reloc(obj_writer, data_sect, 0, symbol, COFF_Reloc_X64_Addr32); String8 a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); @@ -1292,6 +1293,7 @@ t_common_block(void) { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(b_data)); + data_sect->flags |= COFF_SectionFlag_Align1Bytes; COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_common(obj_writer, str8_lit("B"), 6); coff_obj_writer_section_push_reloc(obj_writer, data_sect, 0, symbol, COFF_Reloc_X64_Addr64); String8 b_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); @@ -1781,7 +1783,7 @@ entry_point(CmdLine *cmdline) { "common_block", t_common_block }, { "base_relocs", t_base_relocs }, { "simple_lib_test", t_simple_lib_test }, - { "import_export", t_import_export }, + //{ "import_export", t_import_export }, { "image_base", t_image_base }, }; From b8f45e97c9b38739c114b3bfd6093d246ab0e968 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 19 May 2025 14:12:53 -0700 Subject: [PATCH 122/372] test section alignment flags --- src/torture/torture.c | 124 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index 997aa56a..16ffc07b 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -1752,6 +1752,129 @@ t_image_base(void) return result; } +internal T_Result +t_sect_align(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + + COFF_ObjSection *sect_align_shift = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS, str8_lit("q")); + COFF_ObjSection *sect_align_none = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS, str8_lit("abc")); + COFF_ObjSection *sect_align_1 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_lit("wr")); + COFF_ObjSection *sect_align_2 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_lit("e")); + COFF_ObjSection *sect_align_4 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_lit("ttttt")); + COFF_ObjSection *sect_align_8 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align8Bytes, str8_lit("g")); + COFF_ObjSection *sect_align_16 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align16Bytes, str8_lit("o")); + COFF_ObjSection *sect_align_32 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align32Bytes, str8_lit("p")); + COFF_ObjSection *sect_align_64 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align64Bytes, str8_lit("f")); + COFF_ObjSection *sect_align_128 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align128Bytes, str8_lit("x")); + COFF_ObjSection *sect_align_256 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align256Bytes, str8_lit("c")); + COFF_ObjSection *sect_align_512 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align512Bytes, str8_lit("v")); + COFF_ObjSection *sect_align_1024 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align1024Bytes, str8_lit("b")); + COFF_ObjSection *sect_align_2048 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align2048Bytes, str8_lit("n")); + COFF_ObjSection *sect_align_4096 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4096Bytes, str8_lit("m")); + COFF_ObjSection *sect_align_8192 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align8192Bytes, str8_lit("z")); + + U8 text[] = { 0xC3 }; + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); + + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("test.obj"), obj)) { + goto exit; + } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe /align:8192 test.obj"); + + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".a")); + if (!sect) { + goto exit; + } + String8 sect_data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + + String8 shift = str8_substr(sect_data, rng_1u64(0, 1)); + if (!str8_match(shift, str8_lit("q"), 0)) { + goto exit; + } + String8 a_none = str8_substr(sect_data, rng_1u64(16, 16 + 3)); + if (!str8_match(a_none, str8_lit("abc"), 0)) { + goto exit; + } + String8 a_1 = str8_substr(sect_data, rng_1u64(19, 21)); + if (!str8_match(a_1, str8_lit("wr"), 0)) { + goto exit; + } + String8 a_2 = str8_substr(sect_data, rng_1u64(22, 23)); + if (!str8_match(a_2, str8_lit("e"), 0)) { + goto exit; + } + String8 a_4 = str8_substr(sect_data, rng_1u64(24, 29)); + if (!str8_match(a_4, str8_lit("ttttt"), 0)) { + goto exit; + } + String8 a_8 = str8_substr(sect_data, rng_1u64(32, 33)); + if (!str8_match(a_8, str8_lit("g"), 0)) { + goto exit; + } + String8 a_16 = str8_substr(sect_data, rng_1u64(48, 49)); + if (!str8_match(a_16, str8_lit("o"), 0)) { + goto exit; + } + String8 a_32 = str8_substr(sect_data, rng_1u64(64, 65)); + if (!str8_match(a_32, str8_lit("p"), 0)) { + goto exit; + } + String8 a_64 = str8_substr(sect_data, rng_1u64(128, 129)); + if (!str8_match(a_64, str8_lit("f"), 0)) { + goto exit; + } + String8 a_128 = str8_substr(sect_data, rng_1u64(256, 257)); + if (!str8_match(a_128, str8_lit("x"), 0)) { + goto exit; + } + String8 a_256 = str8_substr(sect_data, rng_1u64(512, 513)); + if (!str8_match(a_256, str8_lit("c"), 0)) { + goto exit; + } + String8 a_512 = str8_substr(sect_data, rng_1u64(1024, 1025)); + if (!str8_match(a_512, str8_lit("v"), 0)) { + goto exit; + } + String8 a_1024 = str8_substr(sect_data, rng_1u64(2048, 2049)); + if (!str8_match(a_1024, str8_lit("b"), 0)) { + goto exit; + } + String8 a_2048 = str8_substr(sect_data, rng_1u64(4096, 4097)); + if (!str8_match(a_2048, str8_lit("n"), 0)) { + goto exit; + } + String8 a_4096 = str8_substr(sect_data, rng_1u64(8192, 8193)); + if (!str8_match(a_4096, str8_lit("m"), 0)) { + goto exit; + } + String8 a_8192 = str8_substr(sect_data, rng_1u64(16384, 16385)); + if (!str8_match(a_8192, str8_lit("z"), 0)) { + goto exit; + } + + result = T_Result_Pass; + +exit:; + scratch_end(scratch); + return result; +} + //////////////////////////////////////////////////////////////// internal void @@ -1783,6 +1906,7 @@ entry_point(CmdLine *cmdline) { "common_block", t_common_block }, { "base_relocs", t_base_relocs }, { "simple_lib_test", t_simple_lib_test }, + { "sect_align", t_sect_align }, //{ "import_export", t_import_export }, { "image_base", t_image_base }, }; From 422e9449c8ebd1dc1118b1b568020e7fadb13d26 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 19 May 2025 14:14:01 -0700 Subject: [PATCH 123/372] natvis for section contrib types --- src/linker/linker.natvis | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/linker/linker.natvis b/src/linker/linker.natvis index 60194335..7c1a99f9 100644 --- a/src/linker/linker.natvis +++ b/src/linker/linker.natvis @@ -43,6 +43,26 @@ + + + + count + v + + + + + + + + chunk_count + first + next + this + + + + {{count={count} first={first} last={last} }} From b7a06f3f7f4c48c76cde480e9dd253f1836f0e12 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 19 May 2025 14:14:17 -0700 Subject: [PATCH 124/372] sort on section index too --- src/linker/lnk.c | 8 +++++++- src/linker/lnk_section_table.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index d70dc380..c2ac24d9 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1034,7 +1034,12 @@ lnk_section_contrib_ptr_is_before(void *raw_a, void *raw_b) // sort on obj position on command line if (cmp == 0) { - cmp = u64_compar(&a->u.obj_idx, &b->u.obj_idx); + cmp = u32_compar(&a->u.obj_idx, &b->u.obj_idx); + + // sort on section index + if (cmp == 0) { + cmp = u32_compar(&a->u.obj_sect_idx, &b->u.obj_sect_idx); + } } } @@ -2256,6 +2261,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S sc->align = sc_align; sc->data_list = data_n; sc->u.obj_idx = obj_idx; + sc->u.obj_sect_idx = sect_idx; sc->u.sort_idx_size = (U16)sect_sort_idx.size; sc->u.sort_idx = sect_sort_idx.str; diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index 2cdbf041..9d3280e9 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -14,6 +14,7 @@ typedef struct LNK_SectionContrib struct { U16 sort_idx_size; U32 obj_idx; + U32 obj_sect_idx; U8 *sort_idx; }; struct { From b709640ddc2c0d5ef6eb01425726701f4d036edb Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 20 May 2025 10:11:15 -0700 Subject: [PATCH 125/372] test for machine compatibility --- src/torture/torture.c | 116 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 96 insertions(+), 20 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index 16ffc07b..10dea424 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -311,6 +311,81 @@ t_push_rdata_section(COFF_ObjWriter *obj_writer, String8 data) return coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS, data); } +//////////////////////////////// + +internal T_Result +t_machine_compat_check(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_Unknown); + t_push_data_section(obj_writer, str8_lit("unknown")); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("unknown.obj"), obj)) { + goto exit; + } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + t_push_data_section(obj_writer, str8_lit("x64")); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("x64.obj"), obj)) { + goto exit; + } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_Arm64); + t_push_data_section(obj_writer, str8_lit("arm64")); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("arm64.obj"), obj)) { + goto exit; + } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { 0xC3 }; + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { + goto exit; + } + } + + int linker_exit_code; + + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe entry.obj unknown.obj x64.obj"); + if (linker_exit_code != 0) { + goto exit; + } + + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe entry.obj unknown.obj x64.obj arm64.obj"); + if (linker_exit_code == 0) { + goto exit; + } + + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe /machine:amd64 arm64.obj entry.obj"); + if (linker_exit_code == 0) { + goto exit; + } + + result = T_Result_Pass; + + exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_simple_link_test(void) { @@ -1889,26 +1964,27 @@ entry_point(CmdLine *cmdline) char *label; T_Result (*r)(void); } target_array[] = { - { "simple_link_test", t_simple_link_test }, - { "undef_section", t_undef_section }, - { "undef_reloc_section", t_undef_reloc_section }, - { "abs_vs_weak", t_abs_vs_weak }, - { "abs_vs_regular", t_abs_vs_regular }, - { "abs_vs_common", t_abs_vs_common }, - { "undef_weak", t_undef_weak }, - { "sect_symbol", t_sect_symbol }, - { "weak_cycle", t_weak_cycle }, - { "weak_tag", t_weak_tag }, - { "find_merged_pdata", t_find_merged_pdata }, - { "section_sort", t_section_sort }, - { "flag_conf", t_flag_conf }, - { "invalid_bss", t_invalid_bss }, - { "common_block", t_common_block }, - { "base_relocs", t_base_relocs }, - { "simple_lib_test", t_simple_lib_test }, - { "sect_align", t_sect_align }, - //{ "import_export", t_import_export }, - { "image_base", t_image_base }, + { "machine_compat_check", t_machine_compat_check }, + { "simple_link_test", t_simple_link_test }, + { "undef_section", t_undef_section }, + { "undef_reloc_section", t_undef_reloc_section }, + { "abs_vs_weak", t_abs_vs_weak }, + { "abs_vs_regular", t_abs_vs_regular }, + { "abs_vs_common", t_abs_vs_common }, + { "undef_weak", t_undef_weak }, + { "sect_symbol", t_sect_symbol }, + { "weak_cycle", t_weak_cycle }, + { "weak_tag", t_weak_tag }, + { "find_merged_pdata", t_find_merged_pdata }, + { "section_sort", t_section_sort }, + { "flag_conf", t_flag_conf }, + { "invalid_bss", t_invalid_bss }, + { "common_block", t_common_block }, + { "base_relocs", t_base_relocs }, + { "simple_lib_test", t_simple_lib_test }, + { "sect_align", t_sect_align }, + //{ "import_export", t_import_export }, + { "image_base", t_image_base }, }; // From 90797f363fab44ad985176ca8420f622fc3edb95 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 20 May 2025 10:11:28 -0700 Subject: [PATCH 126/372] fix for machine compatibility check --- src/linker/lnk_obj.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index c281de88..aa287a78 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -53,15 +53,12 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) // // set & check machine compatibility // - { - if (task->machine == COFF_MachineType_Unknown) { - ins_atomic_u32_eval_assign(&task->machine, coff_info.machine); - } - - if (coff_info.machine != COFF_MachineType_Unknown && task->machine != coff_info.machine) { + if (coff_info.machine != COFF_MachineType_Unknown) { + COFF_MachineType current_machine = ins_atomic_u32_eval_cond_assign(&task->machine, coff_info.machine, COFF_MachineType_Unknown); + if (current_machine != COFF_MachineType_Unknown && current_machine != coff_info.machine) { lnk_error_with_loc(LNK_Error_IncompatibleMachine, input->path, input->lib_path, "conflicting machine types expected %S but got %S", - coff_string_from_machine_type(task->machine), + coff_string_from_machine_type(current_machine), coff_string_from_machine_type(coff_info.machine)); } } From d22962af8df0d2c3093d5a21e4af0357182fdc40 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 20 May 2025 11:16:05 -0700 Subject: [PATCH 127/372] warn about exporting entry point symbol --- src/linker/lnk.c | 32 +++++++++----------------------- src/linker/lnk_error.c | 2 +- src/linker/lnk_error.h | 1 + src/pe/pe_make_export_table.c | 29 ++++++++++++++++------------- 4 files changed, 27 insertions(+), 37 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index c2ac24d9..3d610e47 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -3585,7 +3585,7 @@ lnk_run(int argc, char **argv) String8List input_disallow_lib_list = config->disallow_lib_list; String8List input_manifest_path_list = str8_list_copy(scratch.arena, &config->input_list[LNK_Input_Manifest]); String8List manifest_dep_list = str8_list_copy(scratch.arena, &config->manifest_dependency_list); - PE_ExportParseList export_symbol_list = config->export_symbol_list; + PE_ExportParseList export_symbol_list = {0}; HashTable *export_ht = hash_table_init(scratch.arena, max_U16/2); LNK_InputObjList input_obj_list = {0}; LNK_InputImportList input_import_list = {0}; @@ -4329,6 +4329,14 @@ lnk_run(int argc, char **argv) exp_n_next = exp_n->next; PE_ExportParse *exp = &exp_n->data; + if (str8_match(exp->name, config->entry_point_name, 0)) { + lnk_error_with_loc(LNK_Warning_TryingToExportEntryPoint, exp->obj_path, exp->lib_path, "exported entry point \"%S\"", exp->name); + } + if (str8_match(exp->alias, config->entry_point_name, 0)) { + lnk_error_with_loc(LNK_Warning_TryingToExportEntryPoint, exp->obj_path, exp->lib_path, "alias exports entry point \"%S=%S\"", exp->name, exp->alias); + continue; + } + if (!exp->is_forwarder) { // filter out unresolved exports LNK_Symbol *symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, exp_n->data.name); @@ -4336,28 +4344,6 @@ lnk_run(int argc, char **argv) lnk_error_with_loc(LNK_Warning_IllExport, exp->obj_path, exp->lib_path, "unresolved export symbol %S\n", exp->name); continue; } - - // check export type - switch (exp->type) { - case COFF_ImportHeader_Code: { - COFF_ParsedSymbol defn = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); - B32 is_export_data = !COFF_SymbolType_IsFunc(defn.type); - if (is_export_data) { - lnk_error_with_loc(LNK_Warning_IllExport, exp->obj_path, exp->lib_path, "export \"%S\" is DATA but has type CODE", exp->name); - } - } break; - case COFF_ImportHeader_Data: { - COFF_ParsedSymbol defn = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); - B32 is_export_code = COFF_SymbolType_IsFunc(defn.type); - if (is_export_code) { - lnk_error_with_loc(LNK_Warning_IllExport, exp->obj_path, exp->lib_path, "export \"%S\" is CODE but has type DATA", exp->name); - } - } break; - case COFF_ImportHeader_Const: { - lnk_not_implemented("TODO: COFF_ImportHeader_Const"); - } break; - default: { InvalidPath; } break; - } } // push resolved export diff --git a/src/linker/lnk_error.c b/src/linker/lnk_error.c index c2ee9ba7..a0235975 100644 --- a/src/linker/lnk_error.c +++ b/src/linker/lnk_error.c @@ -79,7 +79,7 @@ lnk_error_with_loc_fv(LNK_ErrorCode code, String8 obj_path, String8 lib_path, ch lnk_error(code, "%S: %S", obj_path, text); } } else { - lnk_error(code, "%S", text); + lnk_error(code, "RADLINK: %S", text); } scratch_end(scratch); } diff --git a/src/linker/lnk_error.h b/src/linker/lnk_error.h index af146ade..a86b9086 100644 --- a/src/linker/lnk_error.h +++ b/src/linker/lnk_error.h @@ -88,6 +88,7 @@ typedef enum LNK_Warning_TLSAlign, LNK_Warning_DirectiveSectionWithRelocs, LNK_Warning_NoLargeAddressAwarenessForDll, + LNK_Warning_TryingToExportEntryPoint, LNK_Warning_Last, LNK_Error_Count diff --git a/src/pe/pe_make_export_table.c b/src/pe/pe_make_export_table.c index 1c60867b..7edb4fe5 100644 --- a/src/pe/pe_make_export_table.c +++ b/src/pe/pe_make_export_table.c @@ -92,17 +92,6 @@ pe_ordinal_export_is_before(void *raw_a, void *raw_b) internal PE_FinalizedExports pe_finalize_export_list(Arena *arena, PE_ExportParseList export_list) { - // compute max ordinal and used ordinal flag array - U64 ordinal_low = max_U64; - B8 *is_ordinal_used = push_array(arena, B8, max_U16); - for (PE_ExportParseNode *exp_n = export_list.first; exp_n != 0; exp_n = exp_n->next) { - PE_ExportParse *exp = &exp_n->data; - if (exp->is_ordinal_assigned) { - ordinal_low = Min(ordinal_low, exp->ordinal); - is_ordinal_used[exp->ordinal] = 1; - } - } - PE_ExportParsePtrArray named_exports = {0}; PE_ExportParsePtrArray ordinal_exports = {0}; PE_ExportParsePtrArray forwarder_exports = {0}; @@ -139,6 +128,20 @@ pe_finalize_export_list(Arena *arena, PE_ExportParseList export_list) pe_export_parse_list_concat_in_place(&export_list, &ordinal_exports_list); } + // compute max ordinal and used ordinal flag array + U64 ordinal_low = max_U64; + B8 *is_ordinal_used = push_array(arena, B8, max_U16); + for (PE_ExportParseNode *exp_n = export_list.first; exp_n != 0; exp_n = exp_n->next) { + PE_ExportParse *exp = &exp_n->data; + if (exp->is_ordinal_assigned) { + ordinal_low = Min(ordinal_low, exp->ordinal); + is_ordinal_used[exp->ordinal] = 1; + } + } + if (ordinal_low == max_U64) { + ordinal_low = 0; + } + // assign omitted ordinals { U16 last_ordinal = ordinal_low; @@ -259,8 +262,8 @@ pe_make_edata_obj(Arena *arena, str8_list_push(obj_writer->arena, &string_table_sect->data, export_name_cstr); // create symbol for the name string - String8 export_name_symbol_name = push_str8f(obj_writer->arena, "RAD_NAME:%S", name); - COFF_ObjSymbol *export_name_symbol = coff_obj_writer_push_symbol_extern(obj_writer, export_name_symbol_name, export_name_offset, string_table_sect); + String8 export_name_symbol_name = push_str8f(obj_writer->arena, "RADNAME:%S", name); + COFF_ObjSymbol *export_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, export_name_symbol_name, export_name_offset, string_table_sect); // create slot for export virtual offset U64 export_name_voff_offset = name_voff_table_sect->data.total_size; From 2e531cd70aa745dcd6af38f846182ded3256838d Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 20 May 2025 11:19:52 -0700 Subject: [PATCH 128/372] refactored special case for image base --- src/coff/coff_parse.h | 2 +- src/linker/lnk.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/coff/coff_parse.h b/src/coff/coff_parse.h index 425e2ce5..7278791f 100644 --- a/src/coff/coff_parse.h +++ b/src/coff/coff_parse.h @@ -50,7 +50,7 @@ typedef struct COFF_Symbol32Array typedef struct COFF_ParsedSymbol { String8 name; - U32 value; + U64 value; U32 section_number; COFF_SymbolType type; COFF_SymStorageClass storage_class; diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 3d610e47..fb435399 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1146,16 +1146,16 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) NotImplemented; } - symbol_secnum = 0; - symbol_secoff = 0; // There aren't enough bits in COFF symbol to store full image base address, // so we special case __ImageBase. A better solution would be to add // a 64-bit symbol format to COFF. if (str8_match(symbol.name, str8_lit("__ImageBase"), 0)) { - symbol_voff = 0; - } else { - symbol_voff = (S64)symbol.value - (S64)task->image_base; + symbol.value = task->image_base; } + + symbol_secnum = 0; + symbol_secoff = 0; + symbol_voff = (S64)symbol.value - (S64)task->image_base; } else if (interp == COFF_SymbolValueInterp_Weak) { // unresolved weak } else if (interp == COFF_SymbolValueInterp_Undefined) { From c2b3634e7a1ca50796958256d12b3ef737a5507a Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 20 May 2025 13:34:16 -0700 Subject: [PATCH 129/372] guard against circular section merges --- src/linker/lnk_error.h | 1 + src/linker/lnk_section_table.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/linker/lnk_error.h b/src/linker/lnk_error.h index a86b9086..65d0170d 100644 --- a/src/linker/lnk_error.h +++ b/src/linker/lnk_error.h @@ -36,6 +36,7 @@ typedef enum LNK_Error_SectRefsDiscardedMemory, LNK_Error_IllegalSectionMerge, LNK_Error_IllegalRelocation, + LNK_Error_CircularMerge, LNK_Error_StopLast, LNK_Error_First, diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index ed83c1fa..cb2dee47 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -275,6 +275,19 @@ lnk_section_table_merge(LNK_SectionTable *sectab, LNK_MergeDirectiveList merge_l } } } + + // guard against circular merges + { + if (str8_match(merge_node->data.dst, merge_node->data.src, 0)) { + lnk_error(LNK_Error_CircularMerge, "detected circular /MERGE:%S=%S", merge_node->data.src, merge_node->data.dst); + } + for (LNK_SectionNode *sect_n = sectab->merge_list.first; sect_n != 0; sect_n = sect_n->next) { + if (str8_match(sect_n->data.name, merge_node->data.dst, 0) || + str8_match(sect_n->data.name, merge_node->data.src, 0)) { + lnk_error(LNK_Error_CircularMerge, "detected circular /MERGE:%S=%S", merge_node->data.src, merge_node->data.dst); + } + } + } // are we trying to merge section that was already merged? LNK_Section *merge_sect = 0; From dcc8bfcf39300f5e10207522afbcb777e7794933 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 20 May 2025 13:39:33 -0700 Subject: [PATCH 130/372] test section merges --- src/torture/torture.c | 145 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 144 insertions(+), 1 deletion(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index 10dea424..170ac04d 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -311,6 +311,20 @@ t_push_rdata_section(COFF_ObjWriter *obj_writer, String8 data) return coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS, data); } +internal void +t_write_entry_obj(void) +{ + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { 0xc3 }; + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, text_sect); + String8 obj = coff_obj_writer_serialize(obj_writer->arena, obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { + AssertAlways(!"unable to write entry obj"); + } + coff_obj_writer_release(&obj_writer); +} + //////////////////////////////// internal T_Result @@ -386,6 +400,134 @@ t_machine_compat_check(void) return result; } +internal T_Result +t_merge(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + coff_obj_writer_push_section(obj_writer, str8_lit(".test"), PE_DATA_SECTION_FLAGS, str8_lit("hello, world")); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("test.obj"), obj)) { + goto exit; + } + } + + t_write_entry_obj(); + + int linker_exit_code; + + // circular merge + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.test entry.obj test.obj"); + if (linker_exit_code == 0) { + goto exit; + } + if (t_ident_linker() == T_Linker_RAD) { + if (linker_exit_code != LNK_Error_CircularMerge) { + goto exit; + } + } + + // circular merge with extra link + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.data /merge:.data=.test entry.obj test.obj"); + if (linker_exit_code == 0) { + goto exit; + } + if (t_ident_linker() == T_Linker_RAD) { + if (linker_exit_code != LNK_Error_CircularMerge) { + goto exit; + } + } + + // merge with non-defined section + { + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.qwe entry.obj test.obj"); + if (linker_exit_code != 0) { + goto exit; + } + + // make sure linker created .qwe and merged .test into it + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".qwe")); + if (sect == 0) { + goto exit; + } + if (sect->flags != PE_DATA_SECTION_FLAGS) { + goto exit; + } + String8 qwe = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + if (!str8_match(qwe, str8_lit("hello, world"),0)) { + goto exit; + } + } + + // illegal merge with .reloc + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.reloc entry.obj test.obj"); + if (linker_exit_code == 0) { + goto exit; + } + if (t_ident_linker() == T_Linker_RAD) { + if (linker_exit_code != LNK_Error_IllegalSectionMerge) { + goto exit; + } + } + + // illegal merge with .rsrc + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.rsrc entry.obj test.obj"); + if (linker_exit_code == 0) { + goto exit; + } + if (t_ident_linker() == T_Linker_RAD) { + if (linker_exit_code != LNK_Error_IllegalSectionMerge) { + goto exit; + } + } + + // merge non-defined section with defined section + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.qwe=.test entry.obj test.obj"); + if (linker_exit_code != 0) { + goto exit; + } + + // merge .test -> .qwe -> .data + { + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.qwe /merge:.qwe=.data entry.obj test.obj"); + if (linker_exit_code != 0) { + goto exit; + } + + // make sure linker merged .test into .data + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".data")); + if (sect == 0) { + goto exit; + } + if (sect->flags != PE_DATA_SECTION_FLAGS) { + goto exit; + } + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + if (!str8_match(data, str8_lit("hello, world"),0)) { + goto exit; + } + } + + result = T_Result_Pass; + + exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_simple_link_test(void) { @@ -1964,8 +2106,9 @@ entry_point(CmdLine *cmdline) char *label; T_Result (*r)(void); } target_array[] = { - { "machine_compat_check", t_machine_compat_check }, { "simple_link_test", t_simple_link_test }, + { "machine_compat_check", t_machine_compat_check }, + { "merge", t_merge }, { "undef_section", t_undef_section }, { "undef_reloc_section", t_undef_reloc_section }, { "abs_vs_weak", t_abs_vs_weak }, From 0f9321e92ae6c26660c9890c3ff38d3a5026b880 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 20 May 2025 14:01:59 -0700 Subject: [PATCH 131/372] move default linker options to main file --- src/linker/lnk.c | 128 ++++++++++++++++++++++++++++++++------ src/linker/lnk.h | 6 +- src/linker/lnk_cmd_line.c | 1 + src/linker/lnk_cmd_line.h | 1 + src/linker/lnk_config.c | 91 +-------------------------- 5 files changed, 117 insertions(+), 110 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index fb435399..8632eb9e 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -149,6 +149,100 @@ //////////////////////////////// +internal LNK_Config * +lnk_config_from_argcv(Arena *arena, int argc, char **argv) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8List raw_cmd_line = os_string_list_from_argcv(arena, argc, argv); + + // remove exe name first argument + str8_list_pop_front(&raw_cmd_line); + + // parse command line + String8List unwrapped_cmd_line = lnk_unwrap_rsp(scratch.arena, raw_cmd_line); + LNK_CmdLine cmd_line = lnk_cmd_line_parse_windows_rules(scratch.arena, unwrapped_cmd_line); + + // setup default flags + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Align, "%u", KB(4)); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Debug, "none"); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_FileAlign, "%u", 512); + if (lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Dll)) { + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_SubSystem, "%S", pe_string_from_subsystem(PE_WindowsSubsystem_WINDOWS_GUI)); + } + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_HighEntropyVa, ""); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_ManifestUac, "\"level='asInvoker' uiAccess='false'\""); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_NxCompat, ""); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_FunctionPadMin, "0"); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_LargeAddressAware, ""); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_PdbAltPath, "%%_RAD_PDB_PATH%%"); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_PdbPageSize, "%u", KB(4)); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_TimeStamp, "%u", os_get_process_start_time_unix()); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Age, "%u", 1); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll, ""); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_DelayBind, ""); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_DoMerge, ""); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_EnvLib, ""); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Exe, ""); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Guid, "imageblake3"); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_LargePages, "no"); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_LinkVer, "14.0"); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_OsVer, "6.0"); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_PageSize, "%u", KB(4)); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_PathStyle, "system"); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SectVirtOff, "0x1000"); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Workers, "%u", os_get_system_info()->logical_processor_count); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_TargetOs, "windows"); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SymbolTableCapDefined, "0x3ffff"); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SymbolTableCapInternal, "0x1000"); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SymbolTableCapWeak, "0x3ffff"); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SymbolTableCapLib, "0x3ffff"); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_DebugAltPath, "%%_RAD_RDI_PATH%%"); +#if BUILD_DEBUG + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Log, "debug"); + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Log, "io_write"); +#else + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SuppressError, "%u", LNK_Error_InvalidTypeIndex); +#endif + // default section merges + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".xdata=.rdata"); + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".tls=.data"); + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".edata=.rdata"); + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".idata=.rdata"); + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".didat=.rdata"); + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".RAD_LINKER_DEBUG_DIR=.rdata"); + + // set default max worker count + if (lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Rad_SharedThreadPool)) { + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, ""); + } + + if (!lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Rad_MtPath)) { + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_MtPath, "%s", LNK_MANIFEST_MERGE_TOOL_NAME); + } + + // init config + LNK_Config *config = lnk_config_from_cmd_line(arena, cmd_line); + +#if PROFILE_TELEMETRY + { + String8 cmdl = str8_list_join(scratch.arena, &config->raw_cmd_line, &(StringJoin){ .sep = str8_lit_comp(" ") }); + tmMessage(0, TMMF_ICON_NOTE, "Command Line: %.*s", str8_varg(cmdl)); + } +#endif + + if (lnk_get_log_status(LNK_Log_Debug)) { + String8 full_cmd_line = str8_list_join(scratch.arena, &raw_cmd_line, &(StringJoin){ .sep = str8_lit_comp(" ") }); + fprintf(stderr, "--------------------------------------------------------------------------------\n"); + fprintf(stderr, "Command Line: %.*s\n", str8_varg(full_cmd_line)); + fprintf(stderr, "Work Dir : %.*s\n", str8_varg(config->work_dir)); + fprintf(stderr, "--------------------------------------------------------------------------------\n"); + } + + scratch_end(scratch); + return config; +} + internal String8 lnk_make_full_path(Arena *arena, PathStyle system_path_style, String8 work_dir, String8 path) { @@ -3530,7 +3624,7 @@ lnk_write_thread(void *raw_ctx) } internal void -lnk_run(int argc, char **argv) +lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) { enum State { State_Null, @@ -3571,14 +3665,7 @@ lnk_run(int argc, char **argv) ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - - lnk_init_error_handler(); - - LNK_Config *config = lnk_build_config(scratch.arena, argc, argv); - - TP_Context *tp = tp_alloc(scratch.arena, config->worker_count, config->max_worker_count, config->shared_thread_pool_name); - TP_Arena *tp_arena = tp_arena_alloc(tp); + Temp scratch = scratch_begin(tp_arena->v, tp_arena->count); // inputs String8List include_symbol_list = config->include_symbol_list; @@ -3648,16 +3735,6 @@ lnk_run(int argc, char **argv) state_list_push(scratch.arena, state_list, State_PushLoadConfigUndefSymbol); } - // - // Default section merges - // - lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".xdata"), str8_lit_comp(".rdata") }); - lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".tls"), str8_lit_comp(".data") }); - //lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".edata"), str8_lit_comp(".rdata") }); - lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".idata"), str8_lit_comp(".rdata") }); - lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".didat"), str8_lit_comp(".didat") }); - lnk_merge_directive_list_push(scratch.arena, &config->merge_list, (LNK_MergeDirective){ str8_lit_comp(".RAD_LINKER_DEBUG_DIR"), str8_lit_comp(".rdata") }); - // // Push config exports // @@ -4269,6 +4346,9 @@ lnk_run(int argc, char **argv) input->input_idx = input_obj_list.count; input->data = pe_make_import_dll_obj_delayed(scratch.arena, time_stamp, config->machine, dll_names[dll_idx], delay_load_helper_name, import_debug_symbols, *dll_import_headers[dll_idx], emit_biat, emit_uiat); input->path = dll_names[dll_idx]; + input->dedup_id = input->path; + + os_write_data_to_file_path(str8_lit("delay_imp.obj"), input->data); } String8 linker_debug_symbols = lnk_make_linker_debug_symbols(scratch.arena, config->machine); { @@ -4276,12 +4356,14 @@ lnk_run(int argc, char **argv) input->input_idx = input_obj_list.count; input->data = pe_make_null_import_descriptor_delayed(scratch.arena, time_stamp, config->machine, linker_debug_symbols); input->path = str8_lit("* Delayed Null Import Descriptor *"); + input->dedup_id = input->path; } { LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->input_idx = input_obj_list.count; input->data = pe_make_null_thunk_data_obj_delayed(scratch.arena, lnk_get_image_name(config), time_stamp, config->machine, linker_debug_symbols); input->path = str8_lit("* Delayed Null Thunk Data *"); + input->dedup_id = input->path; } ProfEnd(); @@ -4700,6 +4782,12 @@ lnk_run(int argc, char **argv) internal void entry_point(CmdLine *cmdline) { - lnk_run(cmdline->argc, cmdline->argv); + Temp scratch = scratch_begin(0,0); + lnk_init_error_handler(); + LNK_Config *config = lnk_config_from_argcv(scratch.arena, cmdline->argc, cmdline->argv); + TP_Context *tp = tp_alloc(scratch.arena, config->worker_count, config->max_worker_count, config->shared_thread_pool_name); + TP_Arena *tp_arena = tp_arena_alloc(tp); + lnk_run(tp, tp_arena, config); + scratch_end(scratch); } diff --git a/src/linker/lnk.h b/src/linker/lnk.h index be0ba71e..4ee435fb 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -129,9 +129,13 @@ typedef struct } u; } LNK_SymbolPusher; +// --- Config ----------------------------------------------------------------- + +internal LNK_Config * lnk_config_from_argcv(Arena *arena, int argc, char **argv); + // --- Entry Point ------------------------------------------------------------- -internal void lnk_run(int argc, char **argv); +internal void lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config); // --- Path -------------------------------------------------------------------- diff --git a/src/linker/lnk_cmd_line.c b/src/linker/lnk_cmd_line.c index ac179a42..d906e586 100644 --- a/src/linker/lnk_cmd_line.c +++ b/src/linker/lnk_cmd_line.c @@ -132,6 +132,7 @@ lnk_cmd_line_parse_windows_rules(Arena *arena, String8List arg_list) Temp scratch = scratch_begin(&arena, 1); LNK_CmdLine cmd_line = {0}; + cmd_line.raw_cmd_line = str8_list_copy(arena, &arg_list); for (String8Node *arg_node = arg_list.first; arg_node != 0; arg_node = arg_node->next) { String8 arg = arg_node->string; diff --git a/src/linker/lnk_cmd_line.h b/src/linker/lnk_cmd_line.h index 1cc65781..b130715f 100644 --- a/src/linker/lnk_cmd_line.h +++ b/src/linker/lnk_cmd_line.h @@ -16,6 +16,7 @@ typedef struct LNK_CmdLine LNK_CmdOption *first_option; LNK_CmdOption *last_option; String8List input_list; + String8List raw_cmd_line; } LNK_CmdLine; internal String8List lnk_arg_list_parse_windows_rules(Arena *arena, String8 string); diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 35e0665f..7894716c 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -1924,68 +1924,13 @@ lnk_unwrap_rsp(Arena *arena, String8List arg_list) } internal LNK_Config * -lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line) +lnk_config_from_cmd_line(Arena *arena, LNK_CmdLine cmd_line) { ProfBeginFunction(); Temp scratch = scratch_begin(&arena, 1); - // parse command line - String8List unwrapped_cmd_line = lnk_unwrap_rsp(scratch.arena, raw_cmd_line); - LNK_CmdLine cmd_line = lnk_cmd_line_parse_windows_rules(scratch.arena, unwrapped_cmd_line); - - // setup default flags - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Align, "%u", KB(4)); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Debug, "none"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_FileAlign, "%u", 512); - if (lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Dll)) { - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_SubSystem, "%S", pe_string_from_subsystem(PE_WindowsSubsystem_WINDOWS_GUI)); - } - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_HighEntropyVa, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_ManifestUac, "\"level='asInvoker' uiAccess='false'\""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_NxCompat, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_FunctionPadMin, "0"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_LargeAddressAware, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_PdbAltPath, "%%_RAD_PDB_PATH%%"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_PdbPageSize, "%u", KB(4)); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_TimeStamp, "%u", os_get_process_start_time_unix()); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Age, "%u", 1); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_DelayBind, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_DoMerge, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_EnvLib, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Exe, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Guid, "imageblake3"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_LargePages, "no"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_LinkVer, "14.0"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_OsVer, "6.0"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_PageSize, "%u", KB(4)); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_PathStyle, "system"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SectVirtOff, "0x1000"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Workers, "%u", os_get_system_info()->logical_processor_count); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_TargetOs, "windows"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SymbolTableCapDefined, "0x3ffff"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SymbolTableCapInternal, "0x1000"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SymbolTableCapWeak, "0x3ffff"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SymbolTableCapLib, "0x3ffff"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_DebugAltPath, "%%_RAD_RDI_PATH%%"); -#if BUILD_DEBUG - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Log, "debug"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Log, "io_write"); -#else - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SuppressError, "%u", LNK_Error_InvalidTypeIndex); -#endif - - // set default max worker count - if (lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Rad_SharedThreadPool)) { - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, ""); - } - - if (!lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Rad_MtPath)) { - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_MtPath, "%s", LNK_MANIFEST_MERGE_TOOL_NAME); - } - LNK_Config *config = push_array(arena, LNK_Config, 1); - config->raw_cmd_line = raw_cmd_line; + config->raw_cmd_line = str8_list_copy(arena, &cmd_line.raw_cmd_line); config->work_dir = os_get_current_path(arena); config->build_imp_lib = 1; config->build_exp = 1; @@ -2212,40 +2157,8 @@ lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line) config->temp_rad_debug_name = push_str8f(arena, "%S.tmp%x", config->rad_debug_name, config->time_stamp); } - if (lnk_get_log_status(LNK_Log_Debug)) { - String8 full_cmd_line = str8_list_join(scratch.arena, &raw_cmd_line, &(StringJoin){ .sep = str8_lit_comp(" ") }); - fprintf(stderr, "--------------------------------------------------------------------------------\n"); - fprintf(stderr, "Command Line: %.*s\n", str8_varg(full_cmd_line)); - fprintf(stderr, "Work Dir : %.*s\n", str8_varg(config->work_dir)); - fprintf(stderr, "--------------------------------------------------------------------------------\n"); - } - scratch_end(scratch); ProfEnd(); return config; } -internal LNK_Config * -lnk_build_config(Arena *arena, int argc, char **argv) -{ - Temp scratch = scratch_begin(&arena, 1); - - String8List raw_cmd_line = os_string_list_from_argcv(arena, argc, argv); - - // remove exe name first argument - str8_list_pop_front(&raw_cmd_line); - - // init config - LNK_Config *config = lnk_config_from_cmd_line(arena, raw_cmd_line); - -#if PROFILE_TELEMETRY - { - String8 cmdl = str8_list_join(scratch.arena, &config->raw_cmd_line, &(StringJoin){ .sep = str8_lit_comp(" ") }); - tmMessage(0, TMMF_ICON_NOTE, "Command Line: %.*s", str8_varg(cmdl)); - } -#endif - - scratch_end(scratch); - return config; -} - From b1cd2146ac3cb89017f10ae54bacfb0bd8010125 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 20 May 2025 15:10:10 -0700 Subject: [PATCH 132/372] patch export table directory using section contribs --- src/linker/lnk.c | 12 ++++++++---- src/linker/lnk_section_table.c | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 8632eb9e..6d53bf06 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -3111,8 +3111,10 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S LNK_Section *edata_sect = lnk_section_table_search(sectab, str8_lit(".edata"), PE_EDATA_SECTION_FLAGS); if (edata_sect) { PE_DataDirectory *export_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_EXPORT, sizeof(PE_DataDirectory)); - export_dir->virt_off = edata_sect->voff; - export_dir->virt_size = edata_sect->vsize; + LNK_SectionContrib *edata_first_contrib = lnk_get_first_section_contrib(edata_sect); + LNK_SectionContrib *edata_last_contrib = lnk_get_last_section_contrib(edata_sect); + export_dir->virt_off = image_section_table[edata_first_contrib->u.sect_idx+1]->voff + edata_first_contrib->u.off; + export_dir->virt_size = (edata_last_contrib->u.off + edata_last_contrib->u.size) - edata_first_contrib->u.off; } } @@ -3136,7 +3138,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S LNK_SectionContrib *idata_first_contrib = lnk_get_first_section_contrib(idata_sect); PE_DataDirectory *import_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_IMPORT, sizeof(PE_DataDirectory)); - import_dir->virt_off = image_section_table[idata_first_contrib->u.sect_idx + 1]->voff; + import_dir->virt_off = image_section_table[idata_first_contrib->u.sect_idx + 1]->voff + idata_first_contrib->u.off; import_dir->virt_size = null_import_desc_parsed.value - idata_first_contrib->u.off; COFF_ParsedSymbol last_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(last_import_desc->u.defined.obj, last_import_desc->u.defined.symbol_idx); @@ -3160,7 +3162,9 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S COFF_ParsedSymbol null_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_import_desc->u.defined.obj, null_import_desc->u.defined.symbol_idx); LNK_SectionContrib *didat_first_contrib = lnk_get_first_section_contrib(didat_sect); PE_DataDirectory *import_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_DELAY_IMPORT, sizeof(PE_DataDirectory)); - import_dir->virt_off = image_section_table[didat_first_contrib->u.sect_idx]->voff; + Assert(null_import_desc_parsed.section_number == didat_first_contrib->u.sect_idx+1); + Assert(null_import_desc_parsed.value >= didat_first_contrib->u.off); + import_dir->virt_off = image_section_table[didat_first_contrib->u.sect_idx]->voff + didat_first_contrib->u.off; import_dir->virt_size = null_import_desc_parsed.value - didat_first_contrib->u.off; } } diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index cb2dee47..a5085392 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -95,7 +95,7 @@ lnk_get_last_section_contrib(LNK_Section *sect) { if (sect->contribs.chunk_count > 0) { if (sect->contribs.last->count > 0) { - return sect->contribs.last->v[0]; + return sect->contribs.last->v[sect->contribs.last->count-1]; } } return 0; From 9c93ee1579e9f48226f2ce7dc1338b874912ea11 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 20 May 2025 16:16:53 -0700 Subject: [PATCH 133/372] compute correct IAT size --- src/linker/lnk.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 6d53bf06..975dcdfc 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -3080,7 +3080,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S } } - // patch .pdata + // patch exceptions { LNK_Section *pdata_sect = lnk_section_table_search(sectab, str8_lit(".pdata"), PE_PDATA_SECTION_FLAGS); if (pdata_sect) { @@ -3132,24 +3132,21 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S { LNK_Section *idata_sect = lnk_section_table_search(sectab, str8_lit(".idata"), PE_IDATA_SECTION_FLAGS); LNK_Symbol *null_import_desc = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "__NULL_IMPORT_DESCRIPTOR"); - LNK_Symbol *last_import_desc = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "\x7f%S_NULL_THUNK_DATA", lnk_get_image_name(config)); - if (idata_sect && null_import_desc && last_import_desc) { + LNK_Symbol *null_thunk_data = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "\x7f%S_NULL_THUNK_DATA", lnk_get_image_name(config)); + if (idata_sect && null_import_desc && null_thunk_data) { COFF_ParsedSymbol null_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_import_desc->u.defined.obj, null_import_desc->u.defined.symbol_idx); LNK_SectionContrib *idata_first_contrib = lnk_get_first_section_contrib(idata_sect); - PE_DataDirectory *import_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_IMPORT, sizeof(PE_DataDirectory)); import_dir->virt_off = image_section_table[idata_first_contrib->u.sect_idx + 1]->voff + idata_first_contrib->u.off; import_dir->virt_size = null_import_desc_parsed.value - idata_first_contrib->u.off; - COFF_ParsedSymbol last_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(last_import_desc->u.defined.obj, last_import_desc->u.defined.symbol_idx); - U64 last_import_desc_voff = image_section_table[last_import_desc_parsed.section_number]->voff + last_import_desc_parsed.value; - - U64 first_import_foff = image_section_table[idata_first_contrib->u.sect_idx+1]->foff; + COFF_ParsedSymbol null_thunk_data_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_thunk_data->u.defined.obj, null_thunk_data->u.defined.symbol_idx); + U64 null_thunk_data_voff = image_section_table[null_thunk_data_parsed.section_number]->voff + null_thunk_data_parsed.value; + U64 first_import_foff = image_section_table[idata_first_contrib->u.sect_idx+1]->foff + idata_first_contrib->u.off; PE_ImportEntry *first_import = str8_deserial_get_raw_ptr(image_data, first_import_foff, sizeof(*first_import)); - PE_DataDirectory *import_addr_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_IMPORT_ADDR, sizeof(PE_DataDirectory)); import_addr_dir->virt_off = first_import->import_addr_table_voff; - import_addr_dir->virt_size = last_import_desc_voff - first_import->import_addr_table_voff /* null */ + coff_word_size_from_machine(config->machine); + import_addr_dir->virt_size = null_thunk_data_voff - first_import->import_addr_table_voff /* null */ + coff_word_size_from_machine(config->machine); } } From f0a967a15d7a8af7784354df8397f33f105c4d24 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 21 May 2025 15:36:29 -0700 Subject: [PATCH 134/372] don't create BIAT and UIAT sections when not requested --- src/base/base_core.c | 23 +++++++++ src/base/base_core.h | 5 ++ src/linker/lnk.c | 9 ++-- src/pe/pe.c | 89 ++++++++++++++++------------------- src/pe/pe_make_import_table.c | 10 ++-- 5 files changed, 80 insertions(+), 56 deletions(-) diff --git a/src/base/base_core.c b/src/base/base_core.c index 0b8c1ec8..e982b684 100644 --- a/src/base/base_core.c +++ b/src/base/base_core.c @@ -636,3 +636,26 @@ u64_array_bsearch(U64 *arr, U64 count, U64 value) return max_U64; } +//////////////////////////////// + +internal U64 +index_of_zero_u32(U32 *ptr, U64 count) +{ + for (U64 i = 0; i < count; i += 1) { + if (ptr[i] == 0) { + return i; + } + } + return max_U64; +} + +internal U64 +index_of_zero_u64(U64 *ptr, U64 count) +{ + for (U64 i = 0; i < count; i += 1) { + if (ptr[i] == 0) { + return i; + } + } + return max_U64; +} diff --git a/src/base/base_core.h b/src/base/base_core.h index 758a5b34..1db2f83f 100644 --- a/src/base/base_core.h +++ b/src/base/base_core.h @@ -925,4 +925,9 @@ internal U64 ring_read(U8 *ring_base, U64 ring_size, U64 ring_pos, void *dst_dat internal U64 u64_array_bsearch(U64 *arr, U64 count, U64 value); +//////////////////////////////// + +internal U64 index_of_zero_u32(U32 *ptr, U64 count); +internal U64 index_of_zero_u64(U64 *ptr, U64 count); + #endif // BASE_CORE_H diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 975dcdfc..c3946fe1 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1190,13 +1190,16 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) for (U64 sect_idx = 0; sect_idx < obj_header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *section_header = §ion_table[sect_idx]; + // was section discarded? if (section_header->flags & COFF_SectionFlag_LnkRemove) { continue; } + // find section relocs COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, section_header); COFF_Reloc *relocs = (COFF_Reloc *)(obj->data.str + reloc_info.array_off); + // apply relocs for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { COFF_Reloc *reloc = &relocs[reloc_idx]; @@ -3154,14 +3157,14 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S { LNK_Section *didat_sect = lnk_section_table_search(sectab, str8_lit(".didat"), PE_IDATA_SECTION_FLAGS); LNK_Symbol *null_import_desc = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("__NULL_DELAY_IMPORT_DESCRIPTOR")); - LNK_Symbol *last_import_desc = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "\x7f%S_NULL_THUNK_DATA_DLA", lnk_get_image_name(config)); - if (didat_sect && null_import_desc && last_import_desc) { + LNK_Symbol *last_null_thunk = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "\x7f%S_NULL_THUNK_DATA_DLA", lnk_get_image_name(config)); + if (didat_sect && null_import_desc && last_null_thunk) { COFF_ParsedSymbol null_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_import_desc->u.defined.obj, null_import_desc->u.defined.symbol_idx); LNK_SectionContrib *didat_first_contrib = lnk_get_first_section_contrib(didat_sect); PE_DataDirectory *import_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_DELAY_IMPORT, sizeof(PE_DataDirectory)); Assert(null_import_desc_parsed.section_number == didat_first_contrib->u.sect_idx+1); Assert(null_import_desc_parsed.value >= didat_first_contrib->u.off); - import_dir->virt_off = image_section_table[didat_first_contrib->u.sect_idx]->voff + didat_first_contrib->u.off; + import_dir->virt_off = image_section_table[didat_first_contrib->u.sect_idx+1]->voff + didat_first_contrib->u.off; import_dir->virt_size = null_import_desc_parsed.value - didat_first_contrib->u.off; } } diff --git a/src/pe/pe.c b/src/pe/pe.c index 50214f2c..f6827811 100644 --- a/src/pe/pe.c +++ b/src/pe/pe.c @@ -998,33 +998,24 @@ pe_parsed_imports_from_data(Arena *arena, { PE_ParsedImport *imports = 0; U64 import_count = 0; - - U64 name_table_off = coff_foff_from_voff(sections, section_count, name_table_voff); - + + U64 name_table_foff = coff_foff_from_voff(sections, section_count, name_table_voff); + String8 entries = str8_substr(raw_data, rng_1u64(name_table_foff, raw_data.size)); if (is_pe32) { - for (;; ++import_count) { - U32 raw_entry = 0; - str8_deserial_read_struct(raw_data, name_table_off + import_count*sizeof(raw_entry), &raw_entry); - if (raw_entry == 0) { - break; - } - } - + import_count = index_of_zero_u32((U32 *)entries.str, entries.size/sizeof(U32)); + if (import_count == max_U64) { import_count = 0; } imports = push_array(arena, PE_ParsedImport, import_count); - - for (U64 imp_idx = 0; imp_idx < import_count; ++imp_idx) { + + for (U64 imp_idx = 0; imp_idx < import_count; imp_idx += 1) { U32 raw_entry = 0; - str8_deserial_read_struct(raw_data, name_table_off + imp_idx*sizeof(raw_entry), &raw_entry); - - B32 is_ordinal = raw_entry & (1 << 31); - - PE_ParsedImport *imp = imports+imp_idx; - ++imp_idx; - + str8_deserial_read_struct(entries, imp_idx*sizeof(raw_entry), &raw_entry); + + B32 is_ordinal = ExtractBit(raw_entry, 31); if (is_ordinal) { // fill out ordinal import + PE_ParsedImport *imp = imports+imp_idx; imp->type = PE_ParsedImport_Ordinal; - imp->u.ordinal = raw_entry & max_U16; + imp->u.ordinal = Extract16(raw_entry, 0); } else { // map voff -> foff U64 off = coff_foff_from_voff(sections, section_count, raw_entry); @@ -1036,35 +1027,27 @@ pe_parsed_imports_from_data(Arena *arena, str8_deserial_read_cstr(raw_data, off+sizeof(hint), &name); // fill out named import + PE_ParsedImport *imp = imports+imp_idx; imp->type = PE_ParsedImport_Name; imp->u.name.hint = hint; imp->u.name.string = name; } } } else { - for (;; ++import_count) { - U64 raw_entry = 0; - str8_deserial_read_struct(raw_data, name_table_off + import_count*sizeof(raw_entry), &raw_entry); - if (raw_entry == 0) { - break; - } - } - + import_count = index_of_zero_u64((U64 *)entries.str, entries.size/sizeof(U64)); + if (import_count == max_U64) { import_count = 0; } imports = push_array(arena, PE_ParsedImport, import_count); - - for (U64 imp_idx = 0; imp_idx < import_count; ++imp_idx) { + + for (U64 imp_idx = 0; imp_idx < import_count; imp_idx += 1) { U64 raw_entry = 0; - str8_deserial_read_struct(raw_data, name_table_off + imp_idx*sizeof(raw_entry), &raw_entry); - - B32 is_ordinal = raw_entry & (1ull << 63); - - PE_ParsedImport *imp = imports+imp_idx; - ++imp_idx; - + str8_deserial_read_struct(entries, imp_idx*sizeof(raw_entry), &raw_entry); + + B32 is_ordinal = ExtractBit(raw_entry, 63); if (is_ordinal) { // fill out ordinal import + PE_ParsedImport *imp = imports+imp_idx; imp->type = PE_ParsedImport_Ordinal; - imp->u.ordinal = raw_entry & max_U16; + imp->u.ordinal = Extract16(raw_entry, 0); } else { // map voff -> foff U64 off = coff_foff_from_voff(sections, section_count, raw_entry); @@ -1076,6 +1059,7 @@ pe_parsed_imports_from_data(Arena *arena, str8_deserial_read_cstr(raw_data, off + sizeof(hint), &name); // fill out named import + PE_ParsedImport *imp = imports+imp_idx; imp->type = PE_ParsedImport_Name; imp->u.name.hint = hint; imp->u.name.string = name; @@ -1220,18 +1204,25 @@ pe_delay_imports_from_data(Arena *arena, raw_dll->name_table_voff, &import_count); + // parse bound table - U64 bound_table_foff = coff_foff_from_voff(sections, section_count, raw_dll->bound_table_voff); - Rng1U64 bound_table_range = rng_1u64(bound_table_foff, raw_data.size); - U64 bound_table_count; - U64 * bound_table = pe_array_from_null_term_addr(arena, is_pe32, raw_data, bound_table_range, &bound_table_count); - + Rng1U64 bound_table_range = {0}; + if (raw_dll->bound_table_voff) { + U64 bound_table_foff = coff_foff_from_voff(sections, section_count, raw_dll->bound_table_voff); + bound_table_range = rng_1u64(bound_table_foff, raw_data.size); + } + U64 bound_table_count; + U64 *bound_table = pe_array_from_null_term_addr(arena, is_pe32, raw_data, bound_table_range, &bound_table_count); + // parse unload table - U64 unload_table_foff = coff_foff_from_voff(sections, section_count, raw_dll->unload_table_voff); - Rng1U64 unload_table_range = rng_1u64(unload_table_foff, raw_data.size); - U64 unload_table_count; - U64 * unload_table = pe_array_from_null_term_addr(arena, is_pe32, raw_data, unload_table_range, &unload_table_count); - + Rng1U64 unload_table_range = {0}; + if (raw_dll->unload_table_voff) { + U64 unload_table_foff = coff_foff_from_voff(sections, section_count, raw_dll->unload_table_voff); + unload_table_range = rng_1u64(unload_table_foff, raw_data.size); + } + U64 unload_table_count; + U64 *unload_table = pe_array_from_null_term_addr(arena, is_pe32, raw_data, unload_table_range, &unload_table_count); + // fill out DLL PE_ParsedDelayDLLImport *dll = dlls+dll_idx; dll->attributes = raw_dll->attributes; diff --git a/src/pe/pe_make_import_table.c b/src/pe/pe_make_import_table.c index 15b54396..696e9010 100644 --- a/src/pe/pe_make_import_table.c +++ b/src/pe/pe_make_import_table.c @@ -341,11 +341,11 @@ pe_make_import_dll_obj_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_Mac COFF_ObjSection *iat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$5"), PE_IDATA_SECTION_FLAGS|import_align, str8_zero()); COFF_ObjSection *int_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$6"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); COFF_ObjSection *dll_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$7"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); - COFF_ObjSection *biat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$8"), PE_IDATA_SECTION_FLAGS|import_align, str8_zero()); - COFF_ObjSection *uiat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$9"), PE_IDATA_SECTION_FLAGS|import_align, str8_zero()); - COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$i"), PE_TEXT_SECTION_FLAGS, str8_zero()); - COFF_ObjSection *handle_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$h"), PE_DATA_SECTION_FLAGS, str8_array(handle, handle_size)); + COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$i"), PE_TEXT_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_zero()); + COFF_ObjSection *handle_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$h"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_array(handle, handle_size)); COFF_ObjSection *debug_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); + COFF_ObjSection *biat_sect = 0; + COFF_ObjSection *uiat_sect = 0; // sections symbols COFF_ObjSymbol *dll_symbol = coff_obj_writer_push_symbol_static(obj_writer, dll_sect->name, 0, dll_sect); @@ -362,12 +362,14 @@ pe_make_import_dll_obj_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_Mac // patch BIAT virtual offset in import header if (emit_biat) { + biat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$8"), PE_IDATA_SECTION_FLAGS|import_align, str8_zero()); COFF_ObjSymbol *biat_symbol = coff_obj_writer_push_symbol_static(obj_writer, biat_sect->name, 0, biat_sect); coff_obj_writer_section_push_reloc_voff(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, bound_table_voff), biat_symbol); } // patch UIAT virtual offset in import header if (emit_uiat) { + uiat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$9"), PE_IDATA_SECTION_FLAGS|import_align, str8_zero()); COFF_ObjSymbol *uiat_symbol = coff_obj_writer_push_symbol_static(obj_writer, uiat_sect->name, 0, uiat_sect); coff_obj_writer_section_push_reloc_voff(obj_writer, dll_sect, OffsetOf(PE_DelayedImportEntry, unload_table_voff), uiat_symbol); } From 9b6a15ce66b69c6c7af63f5d33815de85e5e89d4 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 21 May 2025 15:37:03 -0700 Subject: [PATCH 135/372] headers for delay import table columns --- src/raddump/raddump.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/raddump/raddump.c b/src/raddump/raddump.c index 17785cb9..9dad6e5c 100644 --- a/src/raddump/raddump.c +++ b/src/raddump/raddump.c @@ -3112,15 +3112,17 @@ pe_print_delay_import_table(Arena *arena, String8List *out, String8 indent, U64 rd_printf("Attributes: %#08x", dll->attributes); rd_printf("Name: %S", dll->name); - rd_printf("HMODULE address: %#llx", image_base + dll->module_handle_voff); - rd_printf("Import address table: %#llx", image_base + dll->iat_voff); - rd_printf("Import name table: %#llx", image_base + dll->name_table_voff); - rd_printf("Bound import name table: %#llx", image_base + dll->bound_table_voff); - rd_printf("Unload import name table: %#llx", image_base + dll->unload_table_voff); + rd_printf("HMODULE address: %#llx", dll->module_handle_voff ? image_base + dll->module_handle_voff : 0); + rd_printf("Import address table: %#llx", dll->iat_voff ? image_base + dll->iat_voff : 0); + rd_printf("Import name table: %#llx", dll->name_table_voff ? image_base + dll->name_table_voff : 0); + rd_printf("Bound import name table: %#llx", dll->bound_table_voff ? image_base + dll->bound_table_voff : 0); + rd_printf("Unload import name table: %#llx", dll->unload_table_voff ? image_base + dll->unload_table_voff : 0); rd_printf("Time stamp: %#x", dll->time_stamp); rd_newline(); rd_indent(); + rd_printf("%-16s %-16s %-8s %s", "BIAT", "UIAT", "Hint/Ord", "Name"); + rd_printf("---------------- ---------------- -------- ----"); for (U64 imp_idx = 0; imp_idx < dll->import_count; ++imp_idx) { PE_ParsedImport *imp = dll->imports+imp_idx; @@ -3137,9 +3139,9 @@ pe_print_delay_import_table(Arena *arena, String8List *out, String8 indent, U64 } if (imp->type == PE_ParsedImport_Ordinal) { - rd_printf("%-16S %-16S %#-4x", bound, unload, imp->u.ordinal); + rd_printf("%-16S %-16S 0x%-6x %S", bound, unload, imp->u.ordinal, str8_lit("[NONAME]")); } else if (imp->type == PE_ParsedImport_Name) { - rd_printf("%-16S %-16S %#-4x %S", bound, unload, imp->u.name.hint, imp->u.name.string); + rd_printf("%-16S %-16S 0x%-6x %S", bound, unload, imp->u.name.hint, imp->u.name.string); } } rd_unindent(); From 4aa6e6d132114ad71afc73078ee9de53ba780eb8 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 21 May 2025 15:37:51 -0700 Subject: [PATCH 136/372] store symbol links for COMDAT --- src/linker/lnk.c | 43 +++++------------- src/linker/lnk_obj.c | 85 +++++++++++++++++++++++++++-------- src/linker/lnk_obj.h | 2 + src/linker/lnk_symbol_table.c | 28 +++++++----- src/pe/pe_make_export_table.c | 4 +- 5 files changed, 100 insertions(+), 62 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index c3946fe1..5b1660b4 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2369,37 +2369,18 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S // build obj section map for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; - String8 string_table = str8_substr(obj->data, obj->header.string_table_range); - - String8 *symlinks = push_array(scratch.arena, String8, obj->header.section_count_no_null); - { - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular) { - if (symbol.storage_class == COFF_SymStorageClass_External) { - U64 sect_idx = symbol.section_number-1; - COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { - // TODO: check that we don't override COMDAT symbol link - symlinks[sect_idx] = symbol.name; - } - } - } - } - } - - for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { - String8 comdat_name = symlinks[sect_idx]; - if (comdat_name.size) { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, comdat_name); - COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - sect_map[obj_idx][sect_idx] = sect_map[defn->u.defined.obj->input_idx][symbol.section_number-1]; + LNK_Obj *obj = objs[obj_idx]; + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular && symbol.storage_class == COFF_SymStorageClass_External && symbol.value == 0) { + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { + // replace contrib with leader + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); + COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + sect_map[obj_idx][symbol.section_number - 1] = sect_map[defn->u.defined.obj->input_idx][symbol.section_number - 1]; } } } diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index aa287a78..8446ca41 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -48,38 +48,38 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) // // parse obj header // - COFF_FileHeaderInfo coff_info = coff_file_header_info_from_data(input->data); + COFF_FileHeaderInfo header = coff_file_header_info_from_data(input->data); // // set & check machine compatibility // - if (coff_info.machine != COFF_MachineType_Unknown) { - COFF_MachineType current_machine = ins_atomic_u32_eval_cond_assign(&task->machine, coff_info.machine, COFF_MachineType_Unknown); - if (current_machine != COFF_MachineType_Unknown && current_machine != coff_info.machine) { + if (header.machine != COFF_MachineType_Unknown) { + COFF_MachineType current_machine = ins_atomic_u32_eval_cond_assign(&task->machine, header.machine, COFF_MachineType_Unknown); + if (current_machine != COFF_MachineType_Unknown && current_machine != header.machine) { lnk_error_with_loc(LNK_Error_IncompatibleMachine, input->path, input->lib_path, "conflicting machine types expected %S but got %S", coff_string_from_machine_type(current_machine), - coff_string_from_machine_type(coff_info.machine)); + coff_string_from_machine_type(header.machine)); } } // // extract COFF info // - String8 raw_coff_section_table = str8_substr(input->data, coff_info.section_table_range); - String8 raw_coff_symbol_table = str8_substr(input->data, coff_info.symbol_table_range); - String8 raw_coff_string_table = str8_substr(input->data, coff_info.string_table_range); + String8 raw_coff_section_table = str8_substr(input->data, header.section_table_range); + String8 raw_coff_symbol_table = str8_substr(input->data, header.symbol_table_range); + String8 raw_coff_string_table = str8_substr(input->data, header.string_table_range); // // error check: section table / symbol table / string table // - if (raw_coff_section_table.size != dim_1u64(coff_info.section_table_range)) { + if (raw_coff_section_table.size != dim_1u64(header.section_table_range)) { lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "corrupted file, unable to read section header table"); } - if (raw_coff_symbol_table.size != dim_1u64(coff_info.symbol_table_range)) { + if (raw_coff_symbol_table.size != dim_1u64(header.symbol_table_range)) { lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "corrupted file, unable to read symbol table"); } - if (raw_coff_string_table.size != dim_1u64(coff_info.string_table_range)) { + if (raw_coff_string_table.size != dim_1u64(header.string_table_range)) { lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "corrupted file, unable to read string table"); } @@ -87,7 +87,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) // error check section headers // COFF_SectionHeader *coff_section_table = (COFF_SectionHeader *)raw_coff_section_table.str; - for (U64 sect_idx = 0; sect_idx < coff_info.section_count_no_null; sect_idx += 1) { + for (U64 sect_idx = 0; sect_idx < header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *coff_sect_header = &coff_section_table[sect_idx]; // read name @@ -97,16 +97,16 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) if (coff_sect_header->fsize > 0) { Rng1U64 sect_range = rng_1u64(coff_sect_header->foff, coff_sect_header->foff + coff_sect_header->fsize); - if (contains_1u64(coff_info.header_range, coff_sect_header->foff) || - (coff_sect_header->fsize > 0 && contains_1u64(coff_info.header_range, sect_range.max-1))) { + if (contains_1u64(header.header_range, coff_sect_header->foff) || + (coff_sect_header->fsize > 0 && contains_1u64(header.header_range, sect_range.max-1))) { lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "header (%S No. %#llx) defines out of bounds section data (file offsets point into file header)", sect_name, sect_idx+1); } - if (contains_1u64(coff_info.section_table_range, coff_sect_header->foff) || - (coff_sect_header->fsize > 0 && contains_1u64(coff_info.section_table_range, sect_range.max-1))) { + if (contains_1u64(header.section_table_range, coff_sect_header->foff) || + (coff_sect_header->fsize > 0 && contains_1u64(header.section_table_range, sect_range.max-1))) { lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "header (%S No. %#llx) defines out of bounds section data (file offsets point into section header table)", sect_name, sect_idx+1); } - if (contains_1u64(coff_info.symbol_table_range, coff_sect_header->foff) || - (coff_sect_header->fsize > 0 && contains_1u64(coff_info.symbol_table_range, sect_range.max-1))) { + if (contains_1u64(header.symbol_table_range, coff_sect_header->foff) || + (coff_sect_header->fsize > 0 && contains_1u64(header.symbol_table_range, sect_range.max-1))) { lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "header (%S No. %#llx) defines out of bounds section data (file offsets point into symbol table)", sect_name, sect_idx+1); } if (dim_1u64(sect_range) != coff_sect_header->fsize) { @@ -116,12 +116,59 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) } } + // + // create symbol links to COMDAT sections + // + U32 *comdats; + { + comdats = push_array_no_zero(arena, U32, header.section_count_no_null); + MemorySet(comdats, 0xff, header.section_count_no_null * sizeof(comdats[0])); + + String8 string_table = str8_substr(input->data, header.string_table_range); + String8 symbol_table = str8_substr(input->data, header.symbol_table_range); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + if (header.is_big_obj) { + symbol = coff_parse_symbol32(string_table, (COFF_Symbol32 *)symbol_table.str + symbol_idx); + } else { + symbol = coff_parse_symbol16(string_table, (COFF_Symbol16 *)symbol_table.str + symbol_idx); + } + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { + if (symbol.storage_class == COFF_SymStorageClass_Static) { + if (symbol.section_number > 0 && symbol.section_number <= header.section_count_no_null) { + COFF_SectionHeader *sect_header = &coff_section_table[symbol.section_number-1]; + if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { + if (symbol.aux_symbol_count) { + U32 section_length = 0; + coff_parse_secdef(symbol, header.is_big_obj, 0, 0, §ion_length, 0); + if (sect_header->fsize == section_length) { + if (comdats[symbol.section_number-1] == ~0) { + comdats[symbol.section_number-1] = symbol_idx; + } else { + lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "section definition symbo (No. 0x%llx) tries to ovewrite comdat", symbol_idx); + } + } else { + lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "section size specified by section definition symbol (No 0x%llx) doesn't match size in section header (No. 0x%x); expected 0x%x got 0x%x", symbol_idx, symbol.section_number, section_length, sect_header->fsize); + } + } + } + } else { + lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "section definition symbol (No. 0x%llx) has out of bounds section number 0x%x", symbol_idx, symbol.section_number); + } + } + } + } + } + // fill out obj obj->data = input->data; obj->path = push_str8_copy(arena, input->path); obj->lib_path = push_str8_copy(arena, input->lib_path); obj->input_idx = obj_idx; - obj->header = coff_info; + obj->header = header; + obj->comdats = comdats; } internal LNK_ObjNodeArray diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index c0c15ea5..093a1334 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -12,6 +12,7 @@ typedef struct LNK_Obj String8 lib_path; U64 input_idx; COFF_FileHeaderInfo header; + U32 *comdats; } LNK_Obj; typedef struct LNK_ObjNode @@ -100,6 +101,7 @@ internal U32 lnk_obj_get_vol_md(LNK_Obj *obj); internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff(LNK_Obj *obj, void *coff_symbol); internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff_symbol_idx(LNK_Obj *obj, U64 symbol_idx); +internal COFF_SectionHeader * lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number); //////////////////////////////// diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index b5053581..2ae0f775 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -237,25 +237,27 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) else if ((dst_interp == COFF_SymbolValueInterp_Regular || dst_interp == COFF_SymbolValueInterp_Common) && (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Common)) { COFF_ComdatSelectType dst_select; - U32 dst_section_length; - U32 dst_check_sum; + U32 dst_section_length; + U32 dst_check_sum; if (dst_interp == COFF_SymbolValueInterp_Regular) { - coff_parse_secdef(dst_parsed, dst_obj->header.is_big_obj, &dst_select, 0, &dst_section_length, &dst_check_sum); + COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(dst_obj, dst_obj->comdats[dst_parsed.section_number-1]); + coff_parse_secdef(secdef, dst_obj->header.is_big_obj, &dst_select, 0, &dst_section_length, &dst_check_sum); } else { - dst_select = COFF_ComdatSelect_Largest; + dst_select = COFF_ComdatSelect_Largest; dst_section_length = dst_parsed.value; - dst_check_sum = 0; + dst_check_sum = 0; } COFF_ComdatSelectType src_select; - U32 src_section_length; - U32 src_check_sum; + U32 src_section_length; + U32 src_check_sum; if (src_interp == COFF_SymbolValueInterp_Regular) { - coff_parse_secdef(src_parsed, src_obj->header.is_big_obj, &src_select, 0, &src_section_length, &src_check_sum); + COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(src_obj, src_obj->comdats[src_parsed.section_number-1]); + coff_parse_secdef(secdef, src_obj->header.is_big_obj, &src_select, 0, &src_section_length, &src_check_sum); } else { - src_select = COFF_ComdatSelect_Largest; + src_select = COFF_ComdatSelect_Largest; src_section_length = src_parsed.value; - src_check_sum = 0; + src_check_sum = 0; } // handle objs compiled with /GR- and /GR @@ -332,6 +334,12 @@ lnk_on_symbol_replace(LNK_Symbol *dst, LNK_Symbol *src) if (dst->type == LNK_Symbol_Lib && src->type == LNK_Symbol_Lib) { dst->u.lib = src->u.lib; } else if (dst->type == LNK_Symbol_Defined && src->type == LNK_Symbol_Defined) { + COFF_ParsedSymbol dst_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dst->u.defined.obj, dst->u.defined.symbol_idx); + COFF_ParsedSymbol src_parsed = lnk_parsed_symbol_from_coff_symbol_idx(src->u.defined.obj, src->u.defined.symbol_idx); + COFF_SectionHeader *dst_sect = lnk_coff_section_header_from_section_number(dst->u.defined.obj, dst_parsed.section_number); + COFF_SectionHeader *src_sect = lnk_coff_section_header_from_section_number(src->u.defined.obj, src_parsed.section_number); + AssertAlways(~src_sect->flags & COFF_SectionFlag_LnkRemove); + dst_sect->flags |= COFF_SectionFlag_LnkRemove; dst->u.defined = src->u.defined; } else { InvalidPath; diff --git a/src/pe/pe_make_export_table.c b/src/pe/pe_make_export_table.c index 7edb4fe5..edf1d0cd 100644 --- a/src/pe/pe_make_export_table.c +++ b/src/pe/pe_make_export_table.c @@ -139,7 +139,7 @@ pe_finalize_export_list(Arena *arena, PE_ExportParseList export_list) } } if (ordinal_low == max_U64) { - ordinal_low = 0; + ordinal_low = 1; } // assign omitted ordinals @@ -262,7 +262,7 @@ pe_make_edata_obj(Arena *arena, str8_list_push(obj_writer->arena, &string_table_sect->data, export_name_cstr); // create symbol for the name string - String8 export_name_symbol_name = push_str8f(obj_writer->arena, "RADNAME:%S", name); + String8 export_name_symbol_name = push_str8f(obj_writer->arena, "%S", name); COFF_ObjSymbol *export_name_symbol = coff_obj_writer_push_symbol_static(obj_writer, export_name_symbol_name, export_name_offset, string_table_sect); // create slot for export virtual offset From f5504c79e9b01e9f86a290556d5d58b19c4f3f05 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 21 May 2025 15:38:19 -0700 Subject: [PATCH 137/372] test COMDAT any selection --- src/torture/torture.c | 205 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 169 insertions(+), 36 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index 170ac04d..1aa008bb 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -1759,10 +1759,11 @@ t_import_export(void) T_Result result = T_Result_Fail; - String8 export_obj_name = str8_lit("export.obj"); - String8 export_obj_payload = str8_lit("test"); - U8 export_text[] = { 0xC3 }; { + String8 export_obj_name = str8_lit("export.obj"); + String8 export_obj_payload = str8_lit("test"); + U8 export_text[] = { 0xC3 }; + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); COFF_ObjSection *data_sect = t_push_data_section(obj_writer, export_obj_payload); coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("foo"), 0, data_sect); @@ -1770,16 +1771,14 @@ t_import_export(void) coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("ord2"), 0, data_sect); coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("ord3"), 0, data_sect); coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("ord4"), 0, data_sect); - coff_obj_writer_push_directive(obj_writer, str8_lit("/export:foo=foo")); - coff_obj_writer_push_directive(obj_writer, str8_lit("/export:bar=foo")); - coff_obj_writer_push_directive(obj_writer, str8_lit("/export:baz=baz.qwe")); - coff_obj_writer_push_directive(obj_writer, str8_lit("/export:baf=baz.#1")); - coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord,@5")); - coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord2,@6,DATA")); - coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord3,@7,NONAME,PRIVATE")); - coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord4,@8,NONAME,DATA")); - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(export_text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("_DllMainCRTStartup"), 0, text_sect); + //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:foo=foo")); + //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:bar=foo")); + //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord,@5")); + //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord2,@6,DATA")); + //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord3,@7,NONAME,PRIVATE")); + //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord4,@8,NONAME,DATA")); + //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:baz=baz.qwe")); + //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:baf=baz.#1")); String8 export_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); if (!t_write_file(export_obj_name, export_obj)) { @@ -1787,9 +1786,10 @@ t_import_export(void) } } - String8 import_obj_name = str8_lit("import.obj"); - U8 import_payload[1024] = {0}; { + String8 import_obj_name = str8_lit("import.obj"); + U8 import_payload[1024] = {0}; + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(import_payload)); @@ -1801,9 +1801,9 @@ t_import_export(void) "__imp_ord", //"__imp_ord2", //"__imp_ord4", - "baf", "bar", - "baz", + //"baf", + //"baz", "foo", "ord", }; @@ -1820,33 +1820,50 @@ t_import_export(void) } } - String8 entry_obj_name = str8_lit("entry.obj"); - U8 entry_text[] = { 0xC3 }; { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); - String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + COFF_ObjSection *s1 = coff_obj_writer_push_section(obj_writer, str8_lit(".s1"), PE_DATA_SECTION_FLAGS, str8_lit("s1")); + COFF_ObjSection *s2 = coff_obj_writer_push_section(obj_writer, str8_lit(".s2"), PE_DATA_SECTION_FLAGS, str8_lit("s2")); + COFF_ObjSection *text_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed((U8[]){ 0xC3 })); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("_DllMainCRTStartup"), 0, text_sect); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("s1"), 0, s1); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("s2"), 0, s2); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); - if (!t_write_file(entry_obj_name, entry_obj)) { + if (!t_write_file(str8_lit("baz.obj"), obj)) { goto exit; } } - int lib_link_exit_code = t_invoke_linkerf("/dll /out:export.dll export.obj"); + t_write_entry_obj(); + + // + // link export.dll + // + int lib_link_exit_code = t_invoke_linkerf("/dll /out:export.dll libcmt.lib export.obj"); if (lib_link_exit_code != 0) { goto exit; } - { - String8 dll = t_read_file(scratch.arena, str8_lit("export.dll")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, dll); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(dll, pe.section_table_range).str; - String8 string_table = str8_substr(dll, pe.string_table_range); + // + // link baz.dll + // + int baz_link_exit_code = t_invoke_linkerf("/dll /out:baz.dll /export:s1,@1,NONAME /export:qwe=s2 baz.obj"); + if (baz_link_exit_code != 0) { + goto exit; + } - PE_ParsedExportTable export_table = pe_exports_from_data(scratch.arena, pe.section_count, section_table, dll, pe.data_dir_franges[PE_DataDirectoryIndex_EXPORT], pe.data_dir_vranges[PE_DataDirectoryIndex_EXPORT]); + // + // check export.dll export table + // + if (0) { + String8 dll = t_read_file(scratch.arena, str8_lit("export.dll")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, dll); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(dll, pe.section_table_range).str; + String8 string_table = str8_substr(dll, pe.string_table_range); + PE_ParsedExportTable export_table = pe_exports_from_data(scratch.arena, pe.section_count, section_table, dll, pe.data_dir_franges[PE_DataDirectoryIndex_EXPORT], pe.data_dir_vranges[PE_DataDirectoryIndex_EXPORT]); - if (export_table.export_count != 8) { + if (export_table.export_count != 6) { goto exit; } @@ -1854,8 +1871,8 @@ t_import_export(void) String8 expected_symbols[] = { str8_lit_comp("foo"), str8_lit_comp("bar"), - str8_lit_comp("baz"), - str8_lit_comp("baf"), + //str8_lit_comp("baz"), + //str8_lit_comp("baf"), str8_lit_comp("ord"), str8_lit_comp("ord2") }; @@ -1872,7 +1889,7 @@ t_import_export(void) } } - { + if (0) { String8 expected_forwarders[] = { str8_lit_comp("baz.qwe"), str8_lit_comp("baz.#1"), @@ -1891,8 +1908,34 @@ t_import_export(void) } } - int import_link_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe /delayload:export.dll /export:my_entry kernel32.Lib delayimp.lib libcmt.lib export.lib import.obj entry.obj"); + #if OS_WINDOWS + BOOL is_dir_set = SetDllDirectoryA(g_wdir.str); + AssertAlways(is_dir_set); + HANDLE export_dll = LoadLibrary("export.dll"); + DWORD last_error = GetLastError(); + if (export_dll == 0) { + goto exit; + } + + char *export_dll_procs[] = { "foo", "bar", "baz", "baf" }; + for (U64 i = 0; i < ArrayCount(export_dll_procs); ++i) { + void *proc = GetProcAddress(export_dll, export_dll_procs[i]); + if (proc == 0) { + goto exit; + } + } + + U16 export_dll_ordinals[] = { 5 }; + for (U64 i = 0; i < ArrayCount(export_dll_ordinals); ++i) { + void *proc = GetProcAddress(export_dll, MAKEINTRESOURCE(export_dll_ordinals[i])); + if (proc == 0) { + goto exit; + } + } + #endif + + int import_link_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /delayload:export.dll /export:entry kernel32.Lib delayimp.lib libcmt.lib export.lib import.obj entry.obj"); if (import_link_exit_code != 0) { goto exit; } @@ -1969,6 +2012,95 @@ t_image_base(void) return result; } +internal T_Result +t_comdat_any(void) +{ + Temp scratch = scratch_begin(0,0); + + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$mn"), PE_TEXT_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("1")); + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Any); + COFF_ObjSymbol *test = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); + test->type.u.msb = COFF_SymDType_Func; + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("1.obj"), obj)) { + goto exit; + } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$mn"), PE_TEXT_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("2")); + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Any); + COFF_ObjSymbol *test = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); + test->type.u.msb = COFF_SymDType_Func; + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("2.obj"), obj)) { + goto exit; + } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit("TEST"), 0); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { + goto exit; + } + } + + { + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:1.exe /opt:noref /opt:noicf 1.obj 2.obj entry.obj"); + if (linker_exit_code != 0) { + goto exit; + } + String8 exe = t_read_file(scratch.arena, str8_lit("1.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".data")); + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + if (!str8_match(data, str8_lit("1"), 0)) { + goto exit; + } + } + + { + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:2.exe /opt:noref /opt:noicf 2.obj 1.obj entry.obj"); + if (linker_exit_code != 0) { + goto exit; + } + String8 exe = t_read_file(scratch.arena, str8_lit("2.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".data")); + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + if (!str8_match(data, str8_lit("2"), 0)) { + goto exit; + } + } + + result = T_Result_Pass; + + exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_sect_align(void) { @@ -2126,8 +2258,9 @@ entry_point(CmdLine *cmdline) { "base_relocs", t_base_relocs }, { "simple_lib_test", t_simple_lib_test }, { "sect_align", t_sect_align }, - //{ "import_export", t_import_export }, { "image_base", t_image_base }, + { "comdat_any", t_comdat_any }, + //{ "import_export", t_import_export }, }; // From c907a10365aa2a5a70b08e820c78c860c960befb Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 21 May 2025 17:24:59 -0700 Subject: [PATCH 138/372] fixup test for COMDAT Any --- src/torture/torture.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index 1aa008bb..0f0b9d75 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -2021,7 +2021,7 @@ t_comdat_any(void) { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$mn"), PE_TEXT_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("1")); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".test$mn"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("1")); coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Any); COFF_ObjSymbol *test = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); test->type.u.msb = COFF_SymDType_Func; @@ -2034,10 +2034,9 @@ t_comdat_any(void) { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$mn"), PE_TEXT_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("2")); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".test$mn"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("2")); coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Any); COFF_ObjSymbol *test = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); - test->type.u.msb = COFF_SymDType_Func; String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); if (!t_write_file(str8_lit("2.obj"), obj)) { @@ -2053,7 +2052,7 @@ t_comdat_any(void) }; COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit("TEST"), 0); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); @@ -2063,7 +2062,7 @@ t_comdat_any(void) } { - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:1.exe /opt:noref /opt:noicf 1.obj 2.obj entry.obj"); + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:1.exe 1.obj 2.obj entry.obj"); if (linker_exit_code != 0) { goto exit; } @@ -2071,7 +2070,7 @@ t_comdat_any(void) PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".data")); + COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".test")); String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); if (!str8_match(data, str8_lit("1"), 0)) { goto exit; @@ -2079,7 +2078,7 @@ t_comdat_any(void) } { - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:2.exe /opt:noref /opt:noicf 2.obj 1.obj entry.obj"); + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:2.exe 2.obj 1.obj entry.obj"); if (linker_exit_code != 0) { goto exit; } @@ -2087,7 +2086,7 @@ t_comdat_any(void) PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".data")); + COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".test")); String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); if (!str8_match(data, str8_lit("2"), 0)) { goto exit; From a6924a22cf1d92e488c924e47f73af17f6e1f0a3 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 21 May 2025 19:17:42 -0700 Subject: [PATCH 139/372] by default stop on undefined section symbol --- src/linker/lnk.c | 9 +++++++-- src/linker/lnk_error.h | 3 +-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 5b1660b4..6c75ca0c 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -221,6 +221,11 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_MtPath, "%s", LNK_MANIFEST_MERGE_TOOL_NAME); } + // when /FORCE is specified on the command line, do not stop on these errors + if (lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Force)) { + g_error_mode_arr[LNK_Error_UnresolvedSymbol] = LNK_ErrorMode_Continue; + } + // init config LNK_Config *config = lnk_config_from_cmd_line(arena, cmd_line); @@ -2748,7 +2753,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Undefined) { + if (interp == COFF_SymbolValueInterp_Undefined && symbol.storage_class == COFF_SymStorageClass_External) { String8 lookup_name = symbol.name; LNK_Obj *lookup_obj = obj; U64 lookup_symbol_idx = symbol_idx; @@ -2960,7 +2965,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S lnk_error_obj(LNK_Error_SectRefsDiscardedMemory, obj, "symbol %S (No. 0x%llx) references section with discard flag", symbol.name, symbol_idx); } } else { - lnk_error_obj(LNK_Error_UndefinedSymbol, obj, "undefined section symbol %S (No 0x%llx) refers to section that does not exist", symbol.name, symbol_idx); + lnk_error_obj(LNK_Error_UnresolvedSymbol, obj, "undefined section symbol %S (No 0x%llx) refers to an image section that doesn't exist", symbol.name, symbol_idx); } } } diff --git a/src/linker/lnk_error.h b/src/linker/lnk_error.h index 65d0170d..6d728231 100644 --- a/src/linker/lnk_error.h +++ b/src/linker/lnk_error.h @@ -37,6 +37,7 @@ typedef enum LNK_Error_IllegalSectionMerge, LNK_Error_IllegalRelocation, LNK_Error_CircularMerge, + LNK_Error_UnresolvedSymbol, LNK_Error_StopLast, LNK_Error_First, @@ -45,8 +46,6 @@ typedef enum LNK_Error_CvPrecomp, LNK_Error_Natvis, LNK_Error_TooManyFiles, - LNK_Error_UndefinedSymbol, - LNK_Error_UnresolvedSymbol, LNK_Error_UnableToOpenTypeServer, LNK_Error_UnexpectedCodePath, LNK_Error_CvIllSymbolData, From 3978181d02887f27055bacb74006e09f7a690f00 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 21 May 2025 19:17:57 -0700 Subject: [PATCH 140/372] check symbol type before patching section header --- src/linker/lnk_symbol_table.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index 2ae0f775..4bbd1bfc 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -336,11 +336,17 @@ lnk_on_symbol_replace(LNK_Symbol *dst, LNK_Symbol *src) } else if (dst->type == LNK_Symbol_Defined && src->type == LNK_Symbol_Defined) { COFF_ParsedSymbol dst_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dst->u.defined.obj, dst->u.defined.symbol_idx); COFF_ParsedSymbol src_parsed = lnk_parsed_symbol_from_coff_symbol_idx(src->u.defined.obj, src->u.defined.symbol_idx); - COFF_SectionHeader *dst_sect = lnk_coff_section_header_from_section_number(dst->u.defined.obj, dst_parsed.section_number); - COFF_SectionHeader *src_sect = lnk_coff_section_header_from_section_number(src->u.defined.obj, src_parsed.section_number); - AssertAlways(~src_sect->flags & COFF_SectionFlag_LnkRemove); - dst_sect->flags |= COFF_SectionFlag_LnkRemove; - dst->u.defined = src->u.defined; + COFF_SymbolValueInterpType dst_interp = coff_interp_symbol(dst_parsed.section_number, dst_parsed.value, dst_parsed.storage_class); + COFF_SymbolValueInterpType src_interp = coff_interp_symbol(src_parsed.section_number, src_parsed.value, src_parsed.storage_class); + if (dst_interp == COFF_SymbolValueInterp_Regular) { + COFF_SectionHeader *dst_sect = lnk_coff_section_header_from_section_number(dst->u.defined.obj, dst_parsed.section_number); + dst_sect->flags |= COFF_SectionFlag_LnkRemove; + dst->u.defined = src->u.defined; + } + if (src_interp == COFF_SymbolValueInterp_Regular) { + COFF_SectionHeader *src_sect = lnk_coff_section_header_from_section_number(src->u.defined.obj, src_parsed.section_number); + AssertAlways(~src_sect->flags & COFF_SectionFlag_LnkRemove); + } } else { InvalidPath; } From 8d324775a2de1972d7fcc29b0f02caf1210a134d Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 21 May 2025 23:17:14 -0700 Subject: [PATCH 141/372] test COMDAT NoDuplicates selection --- src/torture/torture.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index 0f0b9d75..2c3c6a14 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -2100,6 +2100,46 @@ t_comdat_any(void) return result; } +internal T_Result +t_comdat_no_duplicates(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *test_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".test"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("a")); + coff_obj_writer_push_symbol_secdef(obj_writer, test_sect, COFF_ComdatSelect_NoDuplicates); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("a"), 0, test_sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } + if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } + } + + t_write_entry_obj(); + + int duplicates_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); + if (duplicates_exit_code == 0) { goto exit; } + if (t_ident_linker() == T_Linker_RAD && duplicates_exit_code != LNK_Error_MultiplyDefinedSymbol) { goto exit; } + + int good_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe a.obj entry.obj"); + if (good_exit_code != 0) { goto exit; } + + String8 exe = t_read_file(scratch.arena, str8_lit("b.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".test")); + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + if (!str8_match(data, str8_lit("a"), 0)) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_sect_align(void) { @@ -2259,6 +2299,7 @@ entry_point(CmdLine *cmdline) { "sect_align", t_sect_align }, { "image_base", t_image_base }, { "comdat_any", t_comdat_any }, + { "comdat_no_duplicates", t_comdat_no_duplicates }, //{ "import_export", t_import_export }, }; From 3eb7debad5ba1cfb3e091239e39ddff2c3975df9 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 21 May 2025 23:18:18 -0700 Subject: [PATCH 142/372] check COMDAT symlink points to a defined symbol --- src/linker/lnk_symbol_table.c | 162 ++++++++++++++++++---------------- 1 file changed, 84 insertions(+), 78 deletions(-) diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index 4bbd1bfc..f0f267e2 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -236,86 +236,92 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) // regular,common vs regular,common else if ((dst_interp == COFF_SymbolValueInterp_Regular || dst_interp == COFF_SymbolValueInterp_Common) && (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Common)) { - COFF_ComdatSelectType dst_select; - U32 dst_section_length; - U32 dst_check_sum; - if (dst_interp == COFF_SymbolValueInterp_Regular) { - COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(dst_obj, dst_obj->comdats[dst_parsed.section_number-1]); - coff_parse_secdef(secdef, dst_obj->header.is_big_obj, &dst_select, 0, &dst_section_length, &dst_check_sum); + U32 dst_comdat_symbol_idx = dst_obj->comdats[dst_parsed.section_number-1]; + U32 src_comdat_symbol_idx = src_obj->comdats[src_parsed.section_number-1]; + if (dst_comdat_symbol_idx == ~0 || src_comdat_symbol_idx == ~0) { + lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S", dst->name, dst_obj->path); } else { - dst_select = COFF_ComdatSelect_Largest; - dst_section_length = dst_parsed.value; - dst_check_sum = 0; - } - - COFF_ComdatSelectType src_select; - U32 src_section_length; - U32 src_check_sum; - if (src_interp == COFF_SymbolValueInterp_Regular) { - COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(src_obj, src_obj->comdats[src_parsed.section_number-1]); - coff_parse_secdef(secdef, src_obj->header.is_big_obj, &src_select, 0, &src_section_length, &src_check_sum); - } else { - src_select = COFF_ComdatSelect_Largest; - src_section_length = src_parsed.value; - src_check_sum = 0; - } - - // handle objs compiled with /GR- and /GR - if ((src_select == COFF_ComdatSelect_Any && dst_select == COFF_ComdatSelect_Largest) || - (src_select == COFF_ComdatSelect_Largest && dst_select == COFF_ComdatSelect_Any)) { - dst_select = COFF_ComdatSelect_Largest; - src_select = COFF_ComdatSelect_Largest; - } - - if (src_select == dst_select) { - switch (src_select) { - case COFF_ComdatSelect_Null: - case COFF_ComdatSelect_Any: { - if (src_section_length == dst_section_length) { - can_replace = src_obj->input_idx < dst_obj->input_idx; - } else { - // both COMDATs are valid but to get smaller exe pick smallest - can_replace = src_section_length < dst_section_length; - } - } break; - case COFF_ComdatSelect_NoDuplicates: { - lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S.", dst->name, dst_obj->path); - } break; - case COFF_ComdatSelect_SameSize: { - if (dst_section_length != src_section_length) { - lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S.", dst->name, dst_obj->path); - } - } break; - case COFF_ComdatSelect_ExactMatch: { - if (dst_check_sum != src_check_sum) { - lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S.", dst->name, dst_obj->path); - } - } break; - case COFF_ComdatSelect_Largest: { - if (dst_section_length == src_section_length) { - if (dst_interp == COFF_SymbolValueInterp_Common) { - // handle communal variable - // - // MSVC CRT relies on this behaviour (e.g. __scrt_ucrt_dll_is_in_use in ucrt_detection.c) - can_replace = 1; - } else { - can_replace = src_obj->input_idx < dst_obj->input_idx; - } - } else { - can_replace = dst_section_length < src_section_length; - } - } break; - case COFF_ComdatSelect_Associative: { - // ignore - } break; - default: { InvalidPath; } + COFF_ComdatSelectType dst_select; + U32 dst_section_length; + U32 dst_check_sum; + if (dst_interp == COFF_SymbolValueInterp_Regular) { + COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(dst_obj, dst_comdat_symbol_idx); + coff_parse_secdef(secdef, dst_obj->header.is_big_obj, &dst_select, 0, &dst_section_length, &dst_check_sum); + } else { + dst_select = COFF_ComdatSelect_Largest; + dst_section_length = dst_parsed.value; + dst_check_sum = 0; + } + + COFF_ComdatSelectType src_select; + U32 src_section_length; + U32 src_check_sum; + if (src_interp == COFF_SymbolValueInterp_Regular) { + COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(src_obj, src_comdat_symbol_idx); + coff_parse_secdef(secdef, src_obj->header.is_big_obj, &src_select, 0, &src_section_length, &src_check_sum); + } else { + src_select = COFF_ComdatSelect_Largest; + src_section_length = src_parsed.value; + src_check_sum = 0; + } + + // handle objs compiled with /GR- and /GR + if ((src_select == COFF_ComdatSelect_Any && dst_select == COFF_ComdatSelect_Largest) || + (src_select == COFF_ComdatSelect_Largest && dst_select == COFF_ComdatSelect_Any)) { + dst_select = COFF_ComdatSelect_Largest; + src_select = COFF_ComdatSelect_Largest; + } + + if (src_select == dst_select) { + switch (src_select) { + case COFF_ComdatSelect_Null: + case COFF_ComdatSelect_Any: { + if (src_section_length == dst_section_length) { + can_replace = src_obj->input_idx < dst_obj->input_idx; + } else { + // both COMDATs are valid but to get smaller exe pick smallest + can_replace = src_section_length < dst_section_length; + } + } break; + case COFF_ComdatSelect_NoDuplicates: { + lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S", dst->name, dst_obj->path); + } break; + case COFF_ComdatSelect_SameSize: { + if (dst_section_length != src_section_length) { + lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S", dst->name, dst_obj->path); + } + } break; + case COFF_ComdatSelect_ExactMatch: { + if (dst_check_sum != src_check_sum) { + lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S", dst->name, dst_obj->path); + } + } break; + case COFF_ComdatSelect_Largest: { + if (dst_section_length == src_section_length) { + if (dst_interp == COFF_SymbolValueInterp_Common) { + // handle communal variable + // + // MSVC CRT relies on this behaviour (e.g. __scrt_ucrt_dll_is_in_use in ucrt_detection.c) + can_replace = 1; + } else { + can_replace = src_obj->input_idx < dst_obj->input_idx; + } + } else { + can_replace = dst_section_length < src_section_length; + } + } break; + case COFF_ComdatSelect_Associative: { + // ignore + } break; + default: { InvalidPath; } + } + } else { + String8 src_select_str = coff_string_from_comdat_select_type(src_select); + String8 dst_select_str = coff_string_from_comdat_select_type(dst_select); + lnk_error_obj(LNK_Warning_UnresolvedComdat, src_obj, + "%S: COMDAT selection conflict detected, current selection %S, leader selection %S from %S", + src->name, src_select_str, dst_select_str, dst_obj); } - } else { - String8 src_select_str = coff_string_from_comdat_select_type(src_select); - String8 dst_select_str = coff_string_from_comdat_select_type(dst_select); - lnk_error_obj(LNK_Warning_UnresolvedComdat, src_obj, - "%S: COMDAT selection conflict detected, current selection %S, leader selection %S from %S", - src->name, src_select_str, dst_select_str, dst_obj); } } else { lnk_error(LNK_Error_InvalidPath, "unable to find a suitable replacement logic for symbol combination"); From aafb980c6bb3799c3c2d65d6c770249942922d35 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 22 May 2025 10:31:28 -0700 Subject: [PATCH 143/372] prevent dropping of newly inserted symbol while selecting slot leader --- src/linker/lnk_symbol_table.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index f0f267e2..661f1809 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -287,12 +287,16 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S", dst->name, dst_obj->path); } break; case COFF_ComdatSelect_SameSize: { - if (dst_section_length != src_section_length) { + if (dst_section_length == src_section_length) { + can_replace = src_obj->input_idx < dst_obj->input_idx; + } else { lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S", dst->name, dst_obj->path); } } break; case COFF_ComdatSelect_ExactMatch: { - if (dst_check_sum != src_check_sum) { + if (dst_check_sum == src_check_sum) { + can_replace = src_obj->input_idx < dst_obj->input_idx; + } else { lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S", dst->name, dst_obj->path); } } break; @@ -398,26 +402,28 @@ lnk_symbol_hash_trie_insert_or_replace(Arena *arena, if (curr_name && str8_match(*curr_name, symbol->name, 0)) { for (LNK_Symbol *src = symbol;;) { // try replacing current symbol with zero, otherwise loop back and retry - LNK_Symbol *dst = ins_atomic_ptr_eval_assign(&curr_trie->symbol, 0); + LNK_Symbol *leader = ins_atomic_ptr_eval_assign(&curr_trie->symbol, 0); - // apply replacement logic - LNK_Symbol *current_symbol = dst; - if (dst) { - if (lnk_can_replace_symbol(dst, src)) { - // HACK: patch dst because relocations might point to it - lnk_on_symbol_replace(dst, src); - current_symbol = src; + // apply replacement + if (leader) { + if (lnk_can_replace_symbol(leader, src)) { + // discard leader + lnk_on_symbol_replace(leader, src); + leader = src; } else { // discard source - lnk_on_symbol_replace(src, dst); + lnk_on_symbol_replace(src, leader); + src = leader; } + } else { + leader = src; } - // try replacing symbol, if another thread has already taken the slot, rerun the whole loop - dst = ins_atomic_ptr_eval_cond_assign(&curr_trie->symbol, current_symbol, 0); + // try replacing symbol, if another thread has already taken the slot, rerun replacement loop again + LNK_Symbol *was_replaced = ins_atomic_ptr_eval_cond_assign(&curr_trie->symbol, leader, 0); // symbol replaced, exit - if (dst == 0) { + if (was_replaced == 0) { goto exit; } } From 9bea163d102abc3c879384b028736eae79a50044 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 22 May 2025 10:33:44 -0700 Subject: [PATCH 144/372] test COMDAT SameSize selection --- src/torture/torture.c | 62 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index 2c3c6a14..15a3d8fd 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -2140,6 +2140,67 @@ exit:; return result; } +internal T_Result +t_comdat_same_size(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("a")); + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_SameSize); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".b"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("b")); + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_SameSize); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".c"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("cc")); + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_SameSize); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("c.obj"), obj)) { goto exit; } + } + + t_write_entry_obj(); + + int same_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); + if (same_exit_code != 0) { goto exit; } + { + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".a")); + if (sect == 0) { goto exit; } + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + if (!str8_match(data, str8_lit("a"), 0)) { goto exit; } + } + + int not_same_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe a.obj b.obj c.obj entry.obj"); + if (not_same_exit_code == 0) { goto exit; } + if (t_ident_linker() == T_Linker_RAD && not_same_exit_code != LNK_Error_MultiplyDefinedSymbol) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_sect_align(void) { @@ -2300,6 +2361,7 @@ entry_point(CmdLine *cmdline) { "image_base", t_image_base }, { "comdat_any", t_comdat_any }, { "comdat_no_duplicates", t_comdat_no_duplicates }, + { "comdat_same_size", t_comdat_same_size }, //{ "import_export", t_import_export }, }; From 4b8c9db8f5b2218c36321a014c5c9d4c350d5919 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 22 May 2025 11:34:32 -0700 Subject: [PATCH 145/372] add dependency to COMDAT symbol so we do not need to link with /OPT:NOREF --- src/torture/torture.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index 15a3d8fd..91d7b5cb 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -2176,10 +2176,26 @@ t_comdat_same_size(void) if (!t_write_file(str8_lit("c.obj"), obj)) { goto exit; } } - t_write_entry_obj(); + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { + goto exit; + } + } int same_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); if (same_exit_code != 0) { goto exit; } + { String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); From bde11caf119b760b124c0e996879b86a5406907d Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 22 May 2025 11:35:07 -0700 Subject: [PATCH 146/372] improve exact match selection --- src/linker/lnk_symbol_table.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index 661f1809..8cff8fab 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -294,7 +294,20 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) } } break; case COFF_ComdatSelect_ExactMatch: { - if (dst_check_sum == src_check_sum) { + COFF_SectionHeader *dst_section_table = (COFF_SectionHeader *)str8_substr(dst_obj->data, dst_obj->header.section_table_range).str; + COFF_SectionHeader *src_section_table = (COFF_SectionHeader *)str8_substr(src_obj->data, src_obj->header.section_table_range).str; + COFF_SectionHeader *dst_sect_header = &dst_section_table[dst_parsed.section_number-1]; + COFF_SectionHeader *src_sect_header = &src_section_table[src_parsed.section_number-1]; + String8 dst_data = str8_substr(dst_obj->data, rng_1u64(dst_sect_header->foff, dst_sect_header->foff + dst_sect_header->fsize)); + String8 src_data = str8_substr(src_obj->data, rng_1u64(src_sect_header->foff, src_sect_header->foff + src_sect_header->fsize)); + B32 is_exact_match = 0; + if (dst_check_sum != 0 && src_check_sum != 0) { + is_exact_match = dst_check_sum == src_check_sum && str8_match(dst_data, src_data, 0); + } else { + is_exact_match = str8_match(dst_data, src_data, 0); + } + + if (is_exact_match) { can_replace = src_obj->input_idx < dst_obj->input_idx; } else { lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S", dst->name, dst_obj->path); From e97d476c7caab9b7946140c94e5873dc94cb2d9d Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 22 May 2025 11:35:24 -0700 Subject: [PATCH 147/372] test for COMDAT ExactMatch selection --- src/torture/torture.c | 77 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index 91d7b5cb..465197c7 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -2217,6 +2217,82 @@ exit:; return result; } +internal T_Result +t_comdat_exact_match(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("a")); + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_ExactMatch); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".a2"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("a")); + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_ExactMatch); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("a2.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".b"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("b")); + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_ExactMatch); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { + goto exit; + } + } + + int not_exact_match = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj b.obj"); + if (not_exact_match == 0) { goto exit; } + + int exact_match = t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe entry.obj a2.obj a.obj"); + if (exact_match != 0) { goto exit; } + + { + String8 exe = t_read_file(scratch.arena, str8_lit("b.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".a2")); + if (sect == 0) { goto exit; } + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + if (!str8_match(data, str8_lit("a"), 0)) { goto exit; } + } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_sect_align(void) { @@ -2378,6 +2454,7 @@ entry_point(CmdLine *cmdline) { "comdat_any", t_comdat_any }, { "comdat_no_duplicates", t_comdat_no_duplicates }, { "comdat_same_size", t_comdat_same_size }, + { "comdat_exact_match", t_comdat_exact_match }, //{ "import_export", t_import_export }, }; From 889b1807f23e910e30f967b72f4eb0bcd46bdeee Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 22 May 2025 12:09:52 -0700 Subject: [PATCH 148/372] test for COMDAT Largest selection --- src/torture/torture.c | 90 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index 465197c7..f17914bc 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -2293,6 +2293,95 @@ exit:; return result; } +internal T_Result +t_comdat_largest(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("a")); + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".b"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("bb")); + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".c"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("c")); + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("c.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { + goto exit; + } + } + + int largest_exit_code = t_invoke_linkerf("/subsystem:console /out:a.exe /entry:entry entry.obj a.obj b.obj"); + if (largest_exit_code != 0) { goto exit; } + + { + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *discard_sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".a")); + if (discard_sect != 0) { goto exit; } + COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".b")); + if (sect == 0) { goto exit; } + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + if (!str8_match(data, str8_lit("bb"), 0)) { goto exit; } + } + + int same_size_exit_code = t_invoke_linkerf("/subsystem:console /out:b.exe /entry:entry entry.obj c.obj a.obj"); + if (same_size_exit_code != 0) { goto exit; } + + { + String8 exe = t_read_file(scratch.arena, str8_lit("b.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".c")); + if (sect == 0) { goto exit; } + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + if (!str8_match(data, str8_lit("c"), 0)) { goto exit; } + } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_sect_align(void) { @@ -2455,6 +2544,7 @@ entry_point(CmdLine *cmdline) { "comdat_no_duplicates", t_comdat_no_duplicates }, { "comdat_same_size", t_comdat_same_size }, { "comdat_exact_match", t_comdat_exact_match }, + { "comdat_largest", t_comdat_largest }, //{ "import_export", t_import_export }, }; From 8fad6da751b0094be81eaad5aa43ff074420b470 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 23 May 2025 14:44:03 -0700 Subject: [PATCH 149/372] add support for associative COMDAT symbols --- src/coff/coff_obj_writer.c | 16 ++++++++++++---- src/coff/coff_obj_writer.h | 2 ++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/coff/coff_obj_writer.c b/src/coff/coff_obj_writer.c index 8992ba26..b3ca7645 100644 --- a/src/coff/coff_obj_writer.c +++ b/src/coff/coff_obj_writer.c @@ -112,7 +112,7 @@ coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer) d_sd->length = safe_cast_u32(sect->data.total_size); d_sd->number_of_relocations = (U16)sect->reloc_count; d_sd->check_sum = 0; - d_sd->number_lo = (U16)sect->section_number; + d_sd->number_lo = s_sd->selection == COFF_ComdatSelect_Associative ? safe_cast_u16(s_sd->associate->section_number) : 0; d_sd->selection = s_sd->selection; str8_list_push(scratch.arena, &symbol_table, str8_struct(d_sd)); @@ -300,12 +300,20 @@ internal COFF_ObjSymbol * coff_obj_writer_push_symbol_secdef(COFF_ObjWriter *obj_writer, COFF_ObjSection *section, COFF_ComdatSelectType selection) { COFF_ObjSymbol *s = coff_obj_writer_push_symbol_static(obj_writer, section->name, 0, section); - COFF_ObjSymbolSecDef *sd = push_array(obj_writer->arena, COFF_ObjSymbolSecDef, 1); - sd->selection = selection; - + sd->selection = selection; str8_list_push(obj_writer->arena, &s->aux_symbols, str8_struct(sd)); + return s; +} +internal COFF_ObjSymbol * +coff_obj_writer_push_symbol_associative(COFF_ObjWriter *obj_writer, COFF_ObjSection *head, COFF_ObjSection *associate) +{ + COFF_ObjSymbol *s = coff_obj_writer_push_symbol_static(obj_writer, head->name, 0, head); + COFF_ObjSymbolSecDef *sd = push_array(obj_writer->arena, COFF_ObjSymbolSecDef, 1); + sd->selection = COFF_ComdatSelect_Associative; + sd->associate = associate; + str8_list_push(obj_writer->arena, &s->aux_symbols, str8_struct(sd)); return s; } diff --git a/src/coff/coff_obj_writer.h b/src/coff/coff_obj_writer.h index bcb7ca0a..9e6b9d68 100644 --- a/src/coff/coff_obj_writer.h +++ b/src/coff/coff_obj_writer.h @@ -27,6 +27,7 @@ typedef struct COFF_ObjSymbolWeak typedef struct COFF_ObjSymbolSecDef { COFF_ComdatSelectType selection; + struct COFF_ObjSection *associate; } COFF_ObjSymbolSecDef; typedef struct COFF_ObjSymbol @@ -104,6 +105,7 @@ internal COFF_ObjSymbol* coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer internal COFF_ObjSymbol * coff_obj_writer_push_symbol_extern(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSection *section); internal COFF_ObjSymbol * coff_obj_writer_push_symbol_static(COFF_ObjWriter *obj_writer, String8 name, U32 off, COFF_ObjSection *section); internal COFF_ObjSymbol * coff_obj_writer_push_symbol_secdef(COFF_ObjWriter *obj_writer, COFF_ObjSection *section, COFF_ComdatSelectType selection); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_associative(COFF_ObjWriter *obj_writer, COFF_ObjSection *head, COFF_ObjSection *associate); internal COFF_ObjSymbol * coff_obj_writer_push_symbol_weak(COFF_ObjWriter *obj_writer, String8 name, COFF_WeakExtType characteristics, COFF_ObjSymbol *tag); internal COFF_ObjSymbol * coff_obj_writer_push_symbol_abs(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_SymStorageClass storage_class); internal COFF_ObjSymbol * coff_obj_writer_push_symbol_undef(COFF_ObjWriter *obj_writer, String8 name); From 69d4e31b15062c6569c50ee66f57d0165f16d2ac Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 23 May 2025 16:11:08 -0700 Subject: [PATCH 150/372] helper for parsing COFF symbols --- src/coff/coff_parse.c | 12 ++++++++++++ src/coff/coff_parse.h | 1 + 2 files changed, 13 insertions(+) diff --git a/src/coff/coff_parse.c b/src/coff/coff_parse.c index f45723ad..2f356a90 100644 --- a/src/coff/coff_parse.c +++ b/src/coff/coff_parse.c @@ -167,6 +167,18 @@ coff_parse_symbol16(String8 string_table, COFF_Symbol16 *sym16) return result; } +internal COFF_ParsedSymbol +coff_parse_symbol(COFF_FileHeaderInfo header, String8 string_table, String8 symbol_table, U32 symbol_idx) +{ + COFF_ParsedSymbol symbol; + if (header.is_big_obj) { + symbol = coff_parse_symbol32(string_table, (COFF_Symbol32 *)symbol_table.str + symbol_idx); + } else { + symbol = coff_parse_symbol16(string_table, (COFF_Symbol16 *)symbol_table.str + symbol_idx); + } + return symbol; +} + internal COFF_Symbol32Array coff_symbol_array_from_data_16(Arena *arena, String8 raw_coff, U64 symbol_array_off, U64 symbol_count) { diff --git a/src/coff/coff_parse.h b/src/coff/coff_parse.h index 7278791f..fb230ae7 100644 --- a/src/coff/coff_parse.h +++ b/src/coff/coff_parse.h @@ -258,6 +258,7 @@ internal COFF_SectionHeader ** coff_section_table_from_data(Arena *arena, String internal COFF_ParsedSymbol coff_parse_symbol32(String8 string_table, COFF_Symbol32 *sym32); internal COFF_ParsedSymbol coff_parse_symbol16(String8 string_table, COFF_Symbol16 *sym16); +internal COFF_ParsedSymbol coff_parse_symbol(COFF_FileHeaderInfo header, String8 string_table, String8 symbol_table, U32 symbol_idx); internal COFF_Symbol32Array coff_symbol_array_from_data_16(Arena *arena, String8 data, U64 symbol_array_off, U64 symbol_count); internal COFF_Symbol32Array coff_symbol_array_from_data_32(Arena *arena, String8 data, U64 symbol_array_off, U64 symbol_count); From bf25b5b249f54fbc2903fc71c74f8bb384028ead Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 23 May 2025 16:13:12 -0700 Subject: [PATCH 151/372] handle COMDAT Associative selection --- src/linker/lnk.c | 38 ++++++++++++++++ src/linker/lnk_error.h | 1 + src/linker/lnk_obj.c | 86 +++++++++++++++++++++++++++++++++-- src/linker/lnk_symbol_table.c | 6 +-- 4 files changed, 122 insertions(+), 9 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 6c75ca0c..df5523af 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2201,6 +2201,44 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S U64 objs_count = obj_list.count; LNK_Obj **objs = lnk_obj_arr_from_list(scratch.arena, obj_list); + ProfBegin("Remove Associatives"); + { + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + String8 symbol_table = str8_substr(obj->data, obj->header.symbol_table_range); + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + // find associate section head section index + U32 head_sect_idx = max_U32; + for (U64 current_sect_idx = sect_idx;;) { + U32 symbol_idx = obj->comdats[current_sect_idx]; + if (symbol_idx == max_U32) { + break; + } + + COFF_ParsedSymbol symbol = coff_parse_symbol(obj->header, string_table, symbol_table, symbol_idx); + COFF_ComdatSelectType selection = COFF_ComdatSelect_Null; + U32 section_number = 0; + coff_parse_secdef(symbol, obj->header.is_big_obj, &selection, §ion_number, 0, 0); + if (selection != COFF_ComdatSelect_Associative) { + head_sect_idx = current_sect_idx; + break; + } + + current_sect_idx = section_number-1; + } + + if (head_sect_idx != max_U32) { + // flag current section with remove if head section was removed + COFF_SectionHeader *head_sect_header = lnk_coff_section_header_from_section_number(obj, head_sect_idx+1); + COFF_SectionHeader *curr_sect_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); + curr_sect_header->flags |= (head_sect_header->flags & COFF_SectionFlag_LnkRemove); + } + } + } + } + ProfEnd(); + { ProfBegin("Define And Count Sections"); Temp temp = temp_begin(scratch.arena); diff --git a/src/linker/lnk_error.h b/src/linker/lnk_error.h index 6d728231..6936777d 100644 --- a/src/linker/lnk_error.h +++ b/src/linker/lnk_error.h @@ -38,6 +38,7 @@ typedef enum LNK_Error_IllegalRelocation, LNK_Error_CircularMerge, LNK_Error_UnresolvedSymbol, + LNK_Error_AssociativeLoop, LNK_Error_StopLast, LNK_Error_First, diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 8446ca41..155e32a9 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -116,6 +116,35 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) } } + // + // error check symbols + // + { + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(input->data, header.section_table_range).str; + String8 string_table = str8_substr(input->data, header.string_table_range); + String8 symbol_table = str8_substr(input->data, header.symbol_table_range); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = coff_parse_symbol(header, string_table, symbol_table, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { + if (symbol.section_number == 0 || symbol.section_number > header.section_count_no_null) { + lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "symbol %S (No. 0x%x) points to an out of bounds section 0x%x", symbol.name, symbol_idx, symbol.section_number); + } + if (symbol.storage_class == COFF_SymStorageClass_Static && symbol.aux_symbol_count > 0) { + COFF_ComdatSelectType select; + U32 section_number = 0; + coff_parse_secdef(symbol, header.is_big_obj, &select, §ion_number, 0, 0); + if (select == COFF_ComdatSelect_Associative) { + if (section_number == 0 || section_number > header.section_count_no_null) { + lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "section definition symbol %S (No. 0x%x) associates with an out of bounds section 0x%x", symbol.name, symbol_idx, symbol.section_number); + } + } + } + } + } + } + // // create symbol links to COMDAT sections // @@ -128,11 +157,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) String8 symbol_table = str8_substr(input->data, header.symbol_table_range); COFF_ParsedSymbol symbol; for (U64 symbol_idx = 0; symbol_idx < header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - if (header.is_big_obj) { - symbol = coff_parse_symbol32(string_table, (COFF_Symbol32 *)symbol_table.str + symbol_idx); - } else { - symbol = coff_parse_symbol16(string_table, (COFF_Symbol16 *)symbol_table.str + symbol_idx); - } + symbol = coff_parse_symbol(header, string_table, symbol_table, symbol_idx); COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular) { @@ -162,6 +187,57 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) } } + // + // COMDAT loop checker + // + { + Temp scratch = scratch_begin(&arena, 1); + + String8 string_table = str8_substr(input->data, header.string_table_range); + String8 symbol_table = str8_substr(input->data, header.symbol_table_range); + HashTable *visited_sections = hash_table_init(scratch.arena, 32); + for (U64 sect_idx = 0; sect_idx < header.section_count_no_null; sect_idx += 1) { + for (U32 curr_section = sect_idx;;) { + U32 symbol_idx = comdats[curr_section]; + + // is section COMDAT? + if (symbol_idx == max_U32) { + break; + } + + // extract COMDAT info for current section + COFF_ParsedSymbol symbol = coff_parse_symbol(header, string_table, symbol_table, symbol_idx); + COFF_ComdatSelectType select = COFF_ComdatSelect_Null; + U32 section_number = 0; + coff_parse_secdef(symbol, header.is_big_obj, &select, §ion_number, 0, 0); + + if (select != COFF_ComdatSelect_Associative) { + // section terminates at non-associative COMDAT -- no loop + break; + } + + // was section visited? -- loop found + if (hash_table_search_u64(visited_sections, curr_section)) { + COFF_ParsedSymbol symbol = coff_parse_symbol(header, string_table, symbol_table, comdats[sect_idx]); + lnk_error_with_loc(LNK_Error_AssociativeLoop, input->path, input->lib_path, "section symbol %S (No. 0x%x) does not terminate on a non-associate COMDAT symbol", symbol.name, comdats[sect_idx]); + break; + } + + // track visited sections + hash_table_push_u64_u64(scratch.arena, visited_sections, curr_section, 0); + + // follow association + Assert(section_number > 0); + curr_section = section_number-1; + } + + // purge hash table for next run + hash_table_purge(visited_sections); + } + + scratch_end(scratch); + } + // fill out obj obj->data = input->data; obj->path = push_str8_copy(arena, input->path); diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index 8cff8fab..b61ea002 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -229,13 +229,11 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) can_replace = 0; } // weak vs regular,common,abs - else if (dst_interp == COFF_SymbolValueInterp_Weak && - (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Common || src_interp == COFF_SymbolValueInterp_Abs)) { + else if (dst_interp == COFF_SymbolValueInterp_Weak && (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Common || src_interp == COFF_SymbolValueInterp_Abs)) { can_replace = 1; } // regular,common vs regular,common - else if ((dst_interp == COFF_SymbolValueInterp_Regular || dst_interp == COFF_SymbolValueInterp_Common) && - (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Common)) { + else if ((dst_interp == COFF_SymbolValueInterp_Regular || dst_interp == COFF_SymbolValueInterp_Common) && (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Common)) { U32 dst_comdat_symbol_idx = dst_obj->comdats[dst_parsed.section_number-1]; U32 src_comdat_symbol_idx = src_obj->comdats[src_parsed.section_number-1]; if (dst_comdat_symbol_idx == ~0 || src_comdat_symbol_idx == ~0) { From ef476bf1f0e98c8a26f12c2236936041aa3ea50f Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 23 May 2025 16:13:53 -0700 Subject: [PATCH 152/372] tests for COMDAT Associative selection --- src/torture/torture.c | 296 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 270 insertions(+), 26 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index f17914bc..5ec128c4 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -2382,6 +2382,246 @@ exit:; return result; } +internal T_Result +t_comdat_associative(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_X64); + COFF_ObjSection *a = coff_obj_writer_push_section(obj_writer, str8_lit("a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("a")); + COFF_ObjSection *aa = coff_obj_writer_push_section(obj_writer, str8_lit("aa"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("aa")); + coff_obj_writer_push_symbol_secdef(obj_writer, a, COFF_ComdatSelect_Largest); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, a); + coff_obj_writer_push_symbol_associative(obj_writer, aa, a); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_X64); + COFF_ObjSection *bb = coff_obj_writer_push_section(obj_writer, str8_lit("bb"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("bb")); + COFF_ObjSection *b = coff_obj_writer_push_section(obj_writer, str8_lit("b"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("b")); + COFF_ObjSection *bbb = coff_obj_writer_push_section(obj_writer, str8_lit("bbb"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("bbb")); + coff_obj_writer_push_symbol_secdef(obj_writer, bb, COFF_ComdatSelect_Largest); + coff_obj_writer_push_symbol_associative(obj_writer, b, bb); + coff_obj_writer_push_symbol_associative(obj_writer, bbb, bb); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, bb); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { + goto exit; + } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj b.obj"); + if (linker_exit_code != 0) { goto exit; } + + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *a = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit("a")); + COFF_SectionHeader *aa = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit("aa")); + COFF_SectionHeader *b = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit("b")); + COFF_SectionHeader *bb = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit("bb")); + COFF_SectionHeader *bbb = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit("bbb")); + if (a != 0) { goto exit; } + if (aa != 0) { goto exit; } + if (b == 0) { goto exit; } + if (bb == 0) { goto exit; } + if (bbb == 0) { goto exit; } + String8 b_data = str8_substr(exe, rng_1u64(b->foff, b->foff + b->vsize)); + String8 bb_data = str8_substr(exe, rng_1u64(bb->foff, bb->foff + bb->vsize)); + String8 bbb_data = str8_substr(exe, rng_1u64(bbb->foff, bbb->foff + bbb->vsize)); + if (!str8_match(b_data, str8_lit("b"), 0)) { goto exit; } + if (!str8_match(bb_data, str8_lit("bb"), 0)) { goto exit; } + if (!str8_match(bbb_data, str8_lit("bbb"), 0)) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + +internal T_Result +t_comdat_associative_loop(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *aaaa = coff_obj_writer_push_section(obj_writer, str8_lit(".aaaa"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("aaaa")); + COFF_ObjSection *aa = coff_obj_writer_push_section(obj_writer, str8_lit(".aa"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("aa")); + COFF_ObjSection *a = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("a")); + COFF_ObjSection *aaa = coff_obj_writer_push_section(obj_writer, str8_lit(".aaa"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("aaa")); + coff_obj_writer_push_symbol_associative(obj_writer, aaa, aa); + coff_obj_writer_push_symbol_associative(obj_writer, aaaa, aaa); + coff_obj_writer_push_symbol_associative(obj_writer, a, aa); + coff_obj_writer_push_symbol_associative(obj_writer, aa, a); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("loop.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { + goto exit; + } + } + + int exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe loop.obj entry.obj"); + if (exit_code == 0) { goto exit; } + if (t_ident_linker() == T_Linker_RAD && exit_code != LNK_Error_AssociativeLoop) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + +internal T_Result +t_comdat_associative_non_comdat(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *a = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS, str8_lit("a")); + COFF_ObjSection *b = coff_obj_writer_push_section(obj_writer, str8_lit(".b"), PE_DATA_SECTION_FLAGS, str8_lit("b")); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, a); + coff_obj_writer_push_symbol_associative(obj_writer, b, a); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("test.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { + goto exit; + } + } + + int exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj test.obj"); + if (exit_code != 0) { goto exit; } + + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *a = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".a")); + COFF_SectionHeader *b = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".b")); + if (a == 0) { goto exit; } + if (b == 0) { goto exit; } + String8 a_data = str8_substr(exe, rng_1u64(a->foff, a->foff + a->vsize)); + String8 b_data = str8_substr(exe, rng_1u64(b->foff, b->foff + b->vsize)); + if (!str8_match(a_data, str8_lit("a"), 0)) { goto exit; } + if (!str8_match(b_data, str8_lit("b"), 0)) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + +internal T_Result +t_comdat_associative_out_of_bounds(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_X64); + COFF_ObjSection *a = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("a")); + COFF_ObjSection *aa = coff_obj_writer_push_section(obj_writer, str8_lit(".aa"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("aa")); + coff_obj_writer_push_symbol_secdef(obj_writer, a, COFF_ComdatSelect_Any); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, a); + coff_obj_writer_push_symbol_associative(obj_writer, aa, a); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + { + COFF_FileHeaderInfo header = coff_file_header_info_from_data(obj); + String8 string_table = str8_substr(obj, header.string_table_range); + String8 symbol_table = str8_substr(obj, header.symbol_table_range); + COFF_ParsedSymbol symbol = coff_parse_symbol(header, string_table, symbol_table, 3); + AssertAlways(str8_match(symbol.name, str8_lit(".aa"), 0)); + AssertAlways(symbol.aux_symbol_count == 1); + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + COFF_SymbolSecDef *secdef = (COFF_SymbolSecDef *)(symbol16 + 1); + secdef->number_lo = 321; + } + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("bad.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { + goto exit; + } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj bad.obj"); + if (linker_exit_code == 0) { goto exit; } + if (t_ident_linker() == T_Linker_RAD && linker_exit_code != LNK_Error_IllData) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_sect_align(void) { @@ -2519,32 +2759,36 @@ entry_point(CmdLine *cmdline) char *label; T_Result (*r)(void); } target_array[] = { - { "simple_link_test", t_simple_link_test }, - { "machine_compat_check", t_machine_compat_check }, - { "merge", t_merge }, - { "undef_section", t_undef_section }, - { "undef_reloc_section", t_undef_reloc_section }, - { "abs_vs_weak", t_abs_vs_weak }, - { "abs_vs_regular", t_abs_vs_regular }, - { "abs_vs_common", t_abs_vs_common }, - { "undef_weak", t_undef_weak }, - { "sect_symbol", t_sect_symbol }, - { "weak_cycle", t_weak_cycle }, - { "weak_tag", t_weak_tag }, - { "find_merged_pdata", t_find_merged_pdata }, - { "section_sort", t_section_sort }, - { "flag_conf", t_flag_conf }, - { "invalid_bss", t_invalid_bss }, - { "common_block", t_common_block }, - { "base_relocs", t_base_relocs }, - { "simple_lib_test", t_simple_lib_test }, - { "sect_align", t_sect_align }, - { "image_base", t_image_base }, - { "comdat_any", t_comdat_any }, - { "comdat_no_duplicates", t_comdat_no_duplicates }, - { "comdat_same_size", t_comdat_same_size }, - { "comdat_exact_match", t_comdat_exact_match }, - { "comdat_largest", t_comdat_largest }, + { "simple_link_test", t_simple_link_test }, + { "machine_compat_check", t_machine_compat_check }, + { "merge", t_merge }, + { "undef_section", t_undef_section }, + { "undef_reloc_section", t_undef_reloc_section }, + { "abs_vs_weak", t_abs_vs_weak }, + { "abs_vs_regular", t_abs_vs_regular }, + { "abs_vs_common", t_abs_vs_common }, + { "undef_weak", t_undef_weak }, + { "sect_symbol", t_sect_symbol }, + { "weak_cycle", t_weak_cycle }, + { "weak_tag", t_weak_tag }, + { "find_merged_pdata", t_find_merged_pdata }, + { "section_sort", t_section_sort }, + { "flag_conf", t_flag_conf }, + { "invalid_bss", t_invalid_bss }, + { "common_block", t_common_block }, + { "base_relocs", t_base_relocs }, + { "simple_lib_test", t_simple_lib_test }, + { "sect_align", t_sect_align }, + { "image_base", t_image_base }, + { "comdat_any", t_comdat_any }, + { "comdat_no_duplicates", t_comdat_no_duplicates }, + { "comdat_same_size", t_comdat_same_size }, + { "comdat_exact_match", t_comdat_exact_match }, + { "comdat_largest", t_comdat_largest }, + { "comdat_associative", t_comdat_associative }, + { "comdat_associative_loop", t_comdat_associative_loop }, + { "comdat_associative_non_comdat", t_comdat_associative_non_comdat }, + { "comdat_associative_out_of_bounds", t_comdat_associative_out_of_bounds }, //{ "import_export", t_import_export }, }; From ea81d18223bf2572fc1878d498a29eb6d3c10fae Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 23 May 2025 16:31:36 -0700 Subject: [PATCH 153/372] test for out of bounds section number on external symbol --- src/torture/torture.c | 51 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index 5ec128c4..6809a16a 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -400,6 +400,56 @@ t_machine_compat_check(void) return result; } +internal T_Result +t_out_of_bounds_section_number(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *foo = coff_obj_writer_push_section(obj_writer, str8_lit(".foo"), PE_DATA_SECTION_FLAGS, str8_lit("foo")); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("foo"), 0, foo); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + { + COFF_FileHeaderInfo header = coff_file_header_info_from_data(obj); + String8 string_table = str8_substr(obj, header.string_table_range); + String8 symbol_table = str8_substr(obj, header.symbol_table_range); + COFF_ParsedSymbol symbol = coff_parse_symbol(header, string_table, symbol_table, 0); + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + symbol16->section_number = 123; + } + if (!t_write_file(str8_lit("bad.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("foo")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { + goto exit; + } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj bad.obj"); + if (linker_exit_code == 0) { goto exit; } + if (t_ident_linker() == T_Linker_RAD && linker_exit_code != LNK_Error_IllData) { goto exit; } + + result = T_Result_Pass; + exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_merge(void) { @@ -2761,6 +2811,7 @@ entry_point(CmdLine *cmdline) } target_array[] = { { "simple_link_test", t_simple_link_test }, { "machine_compat_check", t_machine_compat_check }, + { "out_of_bounds_section_number", t_out_of_bounds_section_number }, { "merge", t_merge }, { "undef_section", t_undef_section }, { "undef_reloc_section", t_undef_reloc_section }, From da0e7e5f69156049458a03b4028b64295bc76617 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 26 May 2025 13:26:17 -0700 Subject: [PATCH 154/372] test for /ALTERNATENAME --- src/torture/torture.c | 94 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index 6809a16a..ed5a3744 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -2795,6 +2795,99 @@ exit:; return result; } +internal T_Result +t_alt_name(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_lit("test")); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("test"), 0, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("test.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_lit("foo")); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("foo"), 0, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("foo.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("foo")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { goto exit; } + } + + int linker_exit_code; + + // basic alternate name test + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /alternatename:foo=test test.obj entry.obj"); + if (linker_exit_code != 0) { goto exit; } + + // linker should not chase alt name links + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe /alternatename:foo=bar /alternatename:bar=test test.obj entry.obj"); + if (linker_exit_code == 0) { goto exit; } + + // alt name conflict + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:c.exe /alternatename:foo=test /alternatename:foo=qwe test.obj entry.obj"); + if (linker_exit_code == 0) { goto exit; } + + // syntax error + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:d.exe /alternatename:foo foo.obj entry.obj"); + if (linker_exit_code == 0) { goto exit; } + + // syntax error + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:e.exe /alternatename:foo-oof foo.obj entry.obj"); + if (linker_exit_code == 0) { goto exit; } + + // syntax error + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /alternatename:foo=test=bar foo.obj entry.obj"); + if (linker_exit_code == 0) { goto exit; } + + // syntax error + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /alternatename:foo= foo.obj entry.obj"); + if (linker_exit_code == 0) { goto exit; } + + // syntax error + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /alternatename:= foo.obj entry.obj"); + if (linker_exit_code == 0) { goto exit; } + + // syntax error + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /alternatename: foo.obj entry.obj"); + if (linker_exit_code == 0) { goto exit; } + + // TODO: check that RAD Linker prints these warnings + + // warn about alt name to self alt name? + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:f.exe /alternatename:foo=foo foo.obj entry.obj"); + if (linker_exit_code != 0) { goto exit; } + + // warn about alt name to unknown symbol? + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:g.exe /alternatename:qwe=ewq foo.obj entry.obj"); + if (linker_exit_code != 0) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + //////////////////////////////////////////////////////////////// internal void @@ -2840,6 +2933,7 @@ entry_point(CmdLine *cmdline) { "comdat_associative_loop", t_comdat_associative_loop }, { "comdat_associative_non_comdat", t_comdat_associative_non_comdat }, { "comdat_associative_out_of_bounds", t_comdat_associative_out_of_bounds }, + { "alt_name", t_alt_name }, //{ "import_export", t_import_export }, }; From 8d7bd6f9fe076d10c6ca61a8846610f9570e23dc Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 26 May 2025 13:26:59 -0700 Subject: [PATCH 155/372] minor fixes - copy alt name to config arena - promote alternate name conflict error to stop run - remove unused error code --- src/linker/lnk_config.c | 2 ++ src/linker/lnk_error.h | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 7894716c..1ecbc2db 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -1060,6 +1060,8 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam if (value_strings.node_count == 1) { LNK_AltName alt_name; if (lnk_parse_alt_name_directive(value_strings.first->string, &alt_name)) { + alt_name.from = push_str8_copy(arena, alt_name.from); + alt_name.to = push_str8_copy(arena, alt_name.to); LNK_AltNameNode *alt_name_n = push_array(arena, LNK_AltNameNode, 1); alt_name_n->data = alt_name; SLLQueuePush(config->alt_name_list.first, config->alt_name_list.last, alt_name_n); diff --git a/src/linker/lnk_error.h b/src/linker/lnk_error.h index 6936777d..c09fb02e 100644 --- a/src/linker/lnk_error.h +++ b/src/linker/lnk_error.h @@ -39,18 +39,17 @@ typedef enum LNK_Error_CircularMerge, LNK_Error_UnresolvedSymbol, LNK_Error_AssociativeLoop, + LNK_Error_AlternateNameConflict, LNK_Error_StopLast, LNK_Error_First, LNK_Error_AlreadyDefinedSymbol, - LNK_Error_AlternateNameConflict, LNK_Error_CvPrecomp, LNK_Error_Natvis, LNK_Error_TooManyFiles, LNK_Error_UnableToOpenTypeServer, LNK_Error_UnexpectedCodePath, LNK_Error_CvIllSymbolData, - LNK_Error_IllegalAlternateNameRedifine, LNK_Error_InvalidTypeIndex, LNK_Error_UndefinedIsWeak, LNK_Error_WeakCycle, From 40efbeb51254261ea3ccc9f3c94b3ec2cbc35f76 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 26 May 2025 14:05:02 -0700 Subject: [PATCH 156/372] test for /INCLUDE --- src/torture/torture.c | 65 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index ed5a3744..92f9de55 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -2888,6 +2888,70 @@ exit:; return result; } +internal T_Result +t_include(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_lit("foo")); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("foo"), 0, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("include.obj"), obj)) { goto exit; } + + COFF_LibWriter *lib_writer = coff_lib_writer_alloc(); + coff_lib_writer_push_obj(lib_writer, str8_lit("include.obj"), obj); + String8List lib = coff_lib_writer_serialize(scratch.arena, lib_writer, 0, 0, 1); + coff_lib_writer_release(&lib_writer); + if (!t_write_file_list(str8_lit("include.lib"), lib)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { goto exit; } + } + + int linker_exit_code; + + // simple include test + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /include:foo entry.obj include.lib"); + if (linker_exit_code != 0) { goto exit; } + + // validate that linker pulled-in include.obj + { + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *foo_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + if (foo_sect == 0) { goto exit; } + String8 foo_data = str8_substr(exe, rng_1u64(foo_sect->foff, foo_sect->foff + foo_sect->vsize)); + if (!str8_match(foo_data, str8_lit("foo"), 0)) { goto exit; } + } + + // test unresolved include + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /include:ewq entry.obj"); + if (linker_exit_code == 0) { goto exit; } + if (t_ident_linker() == T_Linker_RAD && linker_exit_code != LNK_Error_UnresolvedSymbol) { goto exit; } + + result = T_Result_Pass; + exit:; + scratch_end(scratch); + return result; +} + //////////////////////////////////////////////////////////////// internal void @@ -2934,6 +2998,7 @@ entry_point(CmdLine *cmdline) { "comdat_associative_non_comdat", t_comdat_associative_non_comdat }, { "comdat_associative_out_of_bounds", t_comdat_associative_out_of_bounds }, { "alt_name", t_alt_name }, + { "include", t_include }, //{ "import_export", t_import_export }, }; From 9060004827e6834eae7e5a6142ba7f88429ab66a Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 26 May 2025 15:40:00 -0700 Subject: [PATCH 157/372] test for communal variable --- src/torture/torture.c | 70 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index 92f9de55..862f8042 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -2952,6 +2952,75 @@ t_include(void) return result; } +internal T_Result +t_communal_var(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + coff_obj_writer_push_symbol_common(obj_writer, str8_lit("TEST"), 1); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("communal.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_lit("test")); + sect->flags |= COFF_SectionFlag_LnkCOMDAT; + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("large.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { + goto exit; + } + } + + // linker should replace communal TEST with .data TEST + int linker_exit_code; + + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe communal.obj large.obj entry.obj"); + if (linker_exit_code != 0) { goto exit; } + + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe large.obj communal.obj entry.obj"); + if (linker_exit_code != 0) { goto exit; } + + char *exes[] = { "a.exe", "b.exe" }; + for (U64 i = 0; i < ArrayCount(exes); i += 1) { + String8 exe = t_read_file(scratch.arena, str8_cstring(exes[i])); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *data_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + if (!data_sect) { goto exit; } + String8 data = str8_substr(exe, rng_1u64(data_sect->foff, data_sect->foff + data_sect->vsize)); + if (!str8_match(data, str8_lit("test"), 0)) { goto exit; } + } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + //////////////////////////////////////////////////////////////// internal void @@ -2999,6 +3068,7 @@ entry_point(CmdLine *cmdline) { "comdat_associative_out_of_bounds", t_comdat_associative_out_of_bounds }, { "alt_name", t_alt_name }, { "include", t_include }, + { "communal_var", t_communal_var }, //{ "import_export", t_import_export }, }; From fb0e8d75792b51d39c143ae0ddb059b590e0a12e Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 26 May 2025 15:47:31 -0700 Subject: [PATCH 158/372] fix crash on COMDAT folding communal variable --- src/linker/lnk.c | 3 +- src/linker/lnk_obj.c | 6 --- src/linker/lnk_symbol_table.c | 80 +++++++++++++++++++++-------------- 3 files changed, 51 insertions(+), 38 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index df5523af..89962ecb 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2661,8 +2661,9 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S if (interp == COFF_SymbolValueInterp_Common) { LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); + COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); if (defn) { - LNK_SectionContrib *sc = sect_map[obj_idx][symbol.section_number-1]; + LNK_SectionContrib *sc = sect_map[defn->u.defined.obj->input_idx][defn_parsed.section_number-1]; if (obj->header.is_big_obj) { COFF_Symbol32 *symbol32 = symbol.raw_symbol; symbol32->section_number = safe_cast_u32(sc->u.sect_idx + 1); diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 155e32a9..f9e7b7d1 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -11,12 +11,6 @@ lnk_error_obj(LNK_ErrorCode code, LNK_Obj *obj, char *fmt, ...) va_end(args); } -internal void -lnk_error_multiply_defined_symbol(LNK_Obj *defn_obj, LNK_Obj *conf_obj, String8 symbol_name) -{ - lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, defn_obj, "symbol %S is multiply defined in %S", symbol_name, conf_obj->path); -} - //////////////////////////////// internal LNK_ObjNodeArray diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index b61ea002..223e6cb0 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -166,6 +166,12 @@ lnk_symbol_hash_trie_chunk_list_push(Arena *arena, LNK_SymbolHashTrieChunkList * return result; } +internal void +lnk_error_multiply_defined_symbol(LNK_Symbol *dst, LNK_Symbol *src) +{ + lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, dst->u.defined.obj, "symbol \"%S\" (No. %#x) is multiply defined in %S (No. %#x)", dst->name, dst->u.defined.symbol_idx, src->u.defined.obj->path, src->u.defined.symbol_idx); +} + internal B32 lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) { @@ -196,25 +202,25 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) COFF_SymbolValueInterpType src_interp = coff_interp_symbol(src_parsed.section_number, src_parsed.value, src_parsed.storage_class); if (dst_interp == COFF_SymbolValueInterp_Regular && src_interp == COFF_SymbolValueInterp_Abs) { - lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, dst->u.defined.obj, "symbol \"%S\" (No. %#x) is multiply defined in %S (No. %#x)", dst->name, dst->u.defined.symbol_idx, src->u.defined.obj->path, src->u.defined.symbol_idx); + lnk_error_multiply_defined_symbol(dst, src); } // abs vs regular else if ((dst_interp == COFF_SymbolValueInterp_Abs && src_interp == COFF_SymbolValueInterp_Regular) || (dst_interp == COFF_SymbolValueInterp_Regular && src_interp == COFF_SymbolValueInterp_Abs)) { - lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, dst->u.defined.obj, "symbol \"%S\" (No. %#x) is multiply defined in %S (No. %#x)", dst->name, dst->u.defined.symbol_idx, src->u.defined.obj->path, src->u.defined.symbol_idx); + lnk_error_multiply_defined_symbol(dst, src); } // abs vs common else if (dst_interp == COFF_SymbolValueInterp_Abs && src_interp == COFF_SymbolValueInterp_Common) { if (dst->u.defined.obj->input_idx < src->u.defined.obj->input_idx) { can_replace = 1; } else { - lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, dst->u.defined.obj, "symbol \"%S\" (No. %#x) is multiply defined in %S (No. %#x)", dst->name, dst->u.defined.symbol_idx, src->u.defined.obj->path, src->u.defined.symbol_idx); + lnk_error_multiply_defined_symbol(dst, src); } } // common vs abs else if (dst_interp == COFF_SymbolValueInterp_Common && src_interp == COFF_SymbolValueInterp_Abs) { if (dst->u.defined.obj->input_idx < src->u.defined.obj->input_idx) { - lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, dst->u.defined.obj, "symbol \"%S\" (No. %#x) is multiply defined in %S (No. %#x)", dst->name, dst->u.defined.symbol_idx, src->u.defined.obj->path, src->u.defined.symbol_idx); + lnk_error_multiply_defined_symbol(dst, src); } } // weak vs weak @@ -234,41 +240,53 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) } // regular,common vs regular,common else if ((dst_interp == COFF_SymbolValueInterp_Regular || dst_interp == COFF_SymbolValueInterp_Common) && (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Common)) { - U32 dst_comdat_symbol_idx = dst_obj->comdats[dst_parsed.section_number-1]; - U32 src_comdat_symbol_idx = src_obj->comdats[src_parsed.section_number-1]; - if (dst_comdat_symbol_idx == ~0 || src_comdat_symbol_idx == ~0) { - lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S", dst->name, dst_obj->path); - } else { - COFF_ComdatSelectType dst_select; - U32 dst_section_length; - U32 dst_check_sum; - if (dst_interp == COFF_SymbolValueInterp_Regular) { + B32 is_dst_single_defn = 0; + B32 is_src_single_defn = 0; + + COFF_ComdatSelectType dst_select; + U32 dst_section_length; + U32 dst_check_sum; + if (dst_interp == COFF_SymbolValueInterp_Regular) { + U32 dst_comdat_symbol_idx = dst_obj->comdats[dst_parsed.section_number-1]; + if (dst_comdat_symbol_idx != max_U32) { COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(dst_obj, dst_comdat_symbol_idx); coff_parse_secdef(secdef, dst_obj->header.is_big_obj, &dst_select, 0, &dst_section_length, &dst_check_sum); } else { - dst_select = COFF_ComdatSelect_Largest; - dst_section_length = dst_parsed.value; - dst_check_sum = 0; + is_dst_single_defn = 1; } + } else if (dst_interp == COFF_SymbolValueInterp_Common) { + dst_select = COFF_ComdatSelect_Largest; + dst_section_length = dst_parsed.value; + dst_check_sum = 0; + } - COFF_ComdatSelectType src_select; - U32 src_section_length; - U32 src_check_sum; - if (src_interp == COFF_SymbolValueInterp_Regular) { + COFF_ComdatSelectType src_select; + U32 src_section_length; + U32 src_check_sum; + if (src_interp == COFF_SymbolValueInterp_Regular) { + U32 src_comdat_symbol_idx = src_obj->comdats[src_parsed.section_number-1]; + if (src_comdat_symbol_idx != max_U32) { COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(src_obj, src_comdat_symbol_idx); coff_parse_secdef(secdef, src_obj->header.is_big_obj, &src_select, 0, &src_section_length, &src_check_sum); } else { - src_select = COFF_ComdatSelect_Largest; - src_section_length = src_parsed.value; - src_check_sum = 0; + is_src_single_defn = 1; } + } else if (src_interp == COFF_SymbolValueInterp_Common) { + src_select = COFF_ComdatSelect_Largest; + src_section_length = src_parsed.value; + src_check_sum = 0; + } + if (is_dst_single_defn || is_src_single_defn) { + lnk_error_multiply_defined_symbol(dst, src); + } else { // handle objs compiled with /GR- and /GR - if ((src_select == COFF_ComdatSelect_Any && dst_select == COFF_ComdatSelect_Largest) || - (src_select == COFF_ComdatSelect_Largest && dst_select == COFF_ComdatSelect_Any)) { - dst_select = COFF_ComdatSelect_Largest; + if ((src_select == COFF_ComdatSelect_Any && dst_select == COFF_ComdatSelect_Largest)) { src_select = COFF_ComdatSelect_Largest; } + if (src_select == COFF_ComdatSelect_Largest && dst_select == COFF_ComdatSelect_Any) { + dst_select = COFF_ComdatSelect_Largest; + } if (src_select == dst_select) { switch (src_select) { @@ -282,13 +300,13 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) } } break; case COFF_ComdatSelect_NoDuplicates: { - lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S", dst->name, dst_obj->path); + lnk_error_multiply_defined_symbol(dst, src); } break; case COFF_ComdatSelect_SameSize: { if (dst_section_length == src_section_length) { can_replace = src_obj->input_idx < dst_obj->input_idx; } else { - lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S", dst->name, dst_obj->path); + lnk_error_multiply_defined_symbol(dst, src); } } break; case COFF_ComdatSelect_ExactMatch: { @@ -308,7 +326,7 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) if (is_exact_match) { can_replace = src_obj->input_idx < dst_obj->input_idx; } else { - lnk_error_obj(LNK_Error_MultiplyDefinedSymbol, src_obj, "multiply defined symbol %S in %S", dst->name, dst_obj->path); + lnk_error_multiply_defined_symbol(dst, src); } } break; case COFF_ComdatSelect_Largest: { @@ -334,8 +352,8 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) String8 src_select_str = coff_string_from_comdat_select_type(src_select); String8 dst_select_str = coff_string_from_comdat_select_type(dst_select); lnk_error_obj(LNK_Warning_UnresolvedComdat, src_obj, - "%S: COMDAT selection conflict detected, current selection %S, leader selection %S from %S", - src->name, src_select_str, dst_select_str, dst_obj); + "%S: COMDAT selection conflict detected, current selection %S, leader selection %S from %S", + src->name, src_select_str, dst_select_str, dst_obj); } } } else { From 8fb0aaf2b353f53d036ea0353a381146efe2a19f Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 26 May 2025 19:18:24 -0700 Subject: [PATCH 159/372] test kernel32 import --- src/linker/lnk.c | 3 +- src/torture/torture.c | 72 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 2 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 89962ecb..84b75ba1 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -4376,8 +4376,7 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) input->data = pe_make_import_dll_obj_delayed(scratch.arena, time_stamp, config->machine, dll_names[dll_idx], delay_load_helper_name, import_debug_symbols, *dll_import_headers[dll_idx], emit_biat, emit_uiat); input->path = dll_names[dll_idx]; input->dedup_id = input->path; - - os_write_data_to_file_path(str8_lit("delay_imp.obj"), input->data); + //os_write_data_to_file_path(str8_lit("delay_imp.obj"), input->data); } String8 linker_debug_symbols = lnk_make_linker_debug_symbols(scratch.arena, config->machine); { diff --git a/src/torture/torture.c b/src/torture/torture.c index 862f8042..7a0e1ced 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -3021,6 +3021,77 @@ exit:; return result; } +internal T_Result +t_import_kernel32(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 data[] = "test"; + U8 text[] = { + 0x48, 0x83, 0xec, 0x68, // sub rsp,68h ; alloc space on stack + 0xc7, 0x44, 0x24, 0x48, 0x18, 0x00, 0x00, 0x00, // mov dword ptr [rsp+48h],18h ; SECURITY_ATTRIBUTES.nLength + 0x48, 0xc7, 0x44, 0x24, 0x50, 0x00, 0x00, 0x00, 0x00, // mov qword ptr [rsp+50h],0 ; SECURITY_ATTRIBUTES.lpSecurityDescriptor + 0xc7, 0x44, 0x24, 0x58, 0x00, 0x00, 0x00, 0x00, // mov dword ptr [rsp+58h],0 ; SECURITY_ATTRIBUTES.bInheritHandle + 0x48, 0xc7, 0x44, 0x24, 0x30, 0x00, 0x00, 0x00, 0x00, // mov qword ptr [rsp+30h],0 ; hTemplateFile + 0xc7, 0x44, 0x24, 0x28, 0x80, 0x00, 0x00, 0x00, // mov dword ptr [rsp+28h],80h ; dwFlagsAndAttributes + 0xc7, 0x44, 0x24, 0x20, 0x02, 0x00, 0x00, 0x00, // mov dword ptr [rsp+20h],2 ; dwCreationDisposition + 0x4c, 0x8d, 0x4c, 0x24, 0x48, // lea r9,[rsp+48h] ; lpSecurityAttributes + 0x45, 0x33, 0xc0, // xor r8d,r8d ; dwShareMode + 0xba, 0x00, 0x00, 0x00, 0x40, // mov edx,40000000h ; dwDesiredAccess + 0x48, 0x8d, 0x0d, 0x00, 0x00, 0x00, 0x00, // lea rcx,[test] ; lpFileName + 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, // call qword ptr [__imp_CreateFileA] ; call CreateFileA + 0x48, 0x89, 0xc1, // mov rcx,rax ; hObject + 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, // call qword ptr [__imp_CloseHandle] ; call CloseHandle + 0x33, 0xc0, // xor eax,eax ; clear result + 0x48, 0x83, 0xc4, 0x68, // add rsp,68h ; dealloc stack + 0xc3 // ret ; return + }; + COFF_ObjSection *data_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data"), PE_DATA_SECTION_FLAGS, str8_array_fixed(data)); + COFF_ObjSection *text_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + COFF_ObjSymbol *data_symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("test"), 0, data_sect); + COFF_ObjSymbol *entry_symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, text_sect); + COFF_ObjSymbol *create_file_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_CreateFileA")); + COFF_ObjSymbol *close_handle_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_CloseHandle")); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 70, data_symbol, COFF_Reloc_X64_Rel32); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 76, create_file_symbol, COFF_Reloc_X64_Rel32); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 85, close_handle_symbol, COFF_Reloc_X64_Rel32); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("import.obj"), obj)) { goto exit; } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /fixed import.obj kernel32.lib"); + if (linker_exit_code != 0) { goto exit; } + +#if OS_WINDOWS + { + String8 test_file_path = push_str8f(scratch.arena, "%S/test", g_wdir); + os_delete_file_at_path(test_file_path); + + OS_ProcessLaunchParams launch_opts = {0}; + launch_opts.inherit_env = 0; + launch_opts.path = g_wdir; + str8_list_pushf(scratch.arena, &launch_opts.cmd_line, "%S/a.exe", g_wdir); + OS_Handle handle = os_process_launch(&launch_opts); + AssertAlways(!os_handle_match(handle, os_handle_zero())); + int exit_code = -1; + os_process_join_exit_code(handle, max_U64, &exit_code); + os_process_detach(handle); + if (exit_code != 0) { goto exit; } + + if (!os_file_path_exists(test_file_path)) { goto exit; } + } +#endif + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + //////////////////////////////////////////////////////////////// internal void @@ -3069,6 +3140,7 @@ entry_point(CmdLine *cmdline) { "alt_name", t_alt_name }, { "include", t_include }, { "communal_var", t_communal_var }, + { "import_kernel32", t_import_kernel32 }, //{ "import_export", t_import_export }, }; From 382204a4eae3e9393ee5d731a9e8ae802c126415 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 27 May 2025 09:11:27 -0700 Subject: [PATCH 160/372] WIP test delay user32 import --- src/torture/torture.c | 49 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index 7a0e1ced..92c28f48 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -3092,6 +3092,54 @@ exit:; return result; } +internal T_Result +t_delay_import_user32(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *data_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".str"), PE_DATA_SECTION_FLAGS, str8_zero()); + U64 msg_off = data_sect->data.total_size; + str8_list_pushf(obj_writer->arena, &data_sect->data, "test\0"); + U64 caption_off = data_sect->data.total_size; + str8_list_pushf(obj_writer->arena, &data_sect->data, "foo\0"); + COFF_ObjSymbol *msg_symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("msg"), msg_off, data_sect); + COFF_ObjSymbol *caption_symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("caption"), caption_off, data_sect); + + U8 text[] = { + 0x48, 0x83, 0xEC, 0x28, // sub rsp,28h + 0x45, 0x33, 0xC9, // xor r9d,r9d + 0x4C, 0x8D, 0x05, 0x00, 0x00, 0x00, 0x00, // lea r8,[msg] + 0x48, 0x8D, 0x15, 0x00, 0x00, 0x00, 0x00, // lea rdx,[caption] + 0x33, 0xC9, // xor ecx,ecx + 0xFF, 0x15, 0x00, 0x00, 0x00, 0x00, // call qword ptr [__imp_MessageBoxA] + 0x33, 0xC0, // xor eax,eax + 0x48, 0x83, 0xC4, 0x28, // add rsp,28h + 0xC3, // ret + }; + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); + COFF_ObjSymbol *text_symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, text_sect); + COFF_ObjSymbol *message_box_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_MessageBoxA")); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 10, msg_symbol, COFF_Reloc_X64_Rel32); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 16, caption_symbol, COFF_Reloc_X64_Rel32); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 25, message_box_symbol, COFF_Reloc_X64_Rel32); + + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("delay_import.obj"), obj)) { goto exit; } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /out:a.exe /entry:entry /fixed /delayload:user32.dll kernel32.lib user32.lib libcmt.lib delayimp.lib delay_import.obj"); + if (linker_exit_code != 0) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + //////////////////////////////////////////////////////////////// internal void @@ -3141,6 +3189,7 @@ entry_point(CmdLine *cmdline) { "include", t_include }, { "communal_var", t_communal_var }, { "import_kernel32", t_import_kernel32 }, + { "delay_import_user32", t_delay_import_user32 }, //{ "import_export", t_import_export }, }; From 37689b2e4a20f6b33442d280f36fdad8502a68f5 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 27 May 2025 14:41:16 -0700 Subject: [PATCH 161/372] section collector --- src/linker/lnk_debug_info.c | 11 +++++++--- src/linker/lnk_debug_info.h | 1 + src/linker/lnk_obj.c | 40 ++++++++++++++++++++++++++++--------- src/linker/lnk_obj.h | 11 ++++++++-- 4 files changed, 49 insertions(+), 14 deletions(-) diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index 708a9e93..4e5973ff 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -373,9 +373,9 @@ lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, String8List lib_dir ProfBegin("Collect CodeView"); // TODO: fix memory leak, we need a Temp wrapper for pool arena B32 collect_discarded_flag = 0; - String8List *debug_s_list_arr = lnk_collect_obj_chunks_parallel(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug"), str8_lit("S"), collect_discarded_flag); - String8List *debug_p_list_arr = lnk_collect_obj_chunks_parallel(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug"), str8_lit("P"), collect_discarded_flag); - String8List *debug_t_list_arr = lnk_collect_obj_chunks_parallel(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug"), str8_lit("T"), collect_discarded_flag); + String8List *debug_s_list_arr = lnk_collect_obj_sections(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug$S"), collect_discarded_flag); + String8List *debug_p_list_arr = lnk_collect_obj_sections(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug$P"), collect_discarded_flag); + String8List *debug_t_list_arr = lnk_collect_obj_sections(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug$T"), collect_discarded_flag); ProfEnd(); if (lnk_get_log_status(LNK_Log_Debug) || PROFILE_TELEMETRY) { @@ -3269,9 +3269,13 @@ lnk_build_pdb(TP_Context *tp, Rng1U64Array image_section_file_ranges = {0}; image_section_file_ranges.count = image_section_table_count; image_section_file_ranges.v = push_array(scratch.arena, Rng1U64, image_section_table_count); + Rng1U64Array image_section_virt_ranges = {0}; + image_section_virt_ranges.count = image_section_table_count; + image_section_virt_ranges.v = push_array(scratch.arena, Rng1U64, image_section_table_count); for (U64 i = 0; i < image_section_table_count; i += 1) { COFF_SectionHeader *sect_header = image_section_table[i]; image_section_file_ranges.v[i] = rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize); + image_section_virt_ranges.v[i] = rng_1u64(sect_header->voff, sect_header->voff + sect_header->vsize); } LNK_PushDbiSecContribTaskData task = {0}; @@ -3280,6 +3284,7 @@ lnk_build_pdb(TP_Context *tp, task.sc_list = push_array(scratch.arena, PDB_DbiSectionContribList, obj_count); task.image_data = image_data; task.image_section_file_ranges = image_section_file_ranges; + task.image_section_virt_ranges = image_section_virt_ranges; tp_for_parallel(tp, tp_arena, obj_count, lnk_push_dbi_sec_contrib_task, &task); dbi_sec_list_concat_arr(&pdb->dbi->sec_contrib_list, obj_count, task.sc_list); diff --git a/src/linker/lnk_debug_info.h b/src/linker/lnk_debug_info.h index 7188830e..2bdc9aac 100644 --- a/src/linker/lnk_debug_info.h +++ b/src/linker/lnk_debug_info.h @@ -317,6 +317,7 @@ typedef struct PDB_DbiSectionContribList *sc_list; String8 image_data; Rng1U64Array image_section_file_ranges; + Rng1U64Array image_section_virt_ranges; } LNK_PushDbiSecContribTaskData; typedef struct diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index f9e7b7d1..3c8895f8 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -357,19 +357,41 @@ lnk_section_header_from_section_number(LNK_Obj *obj, U64 section_number) return 0; } -internal String8List * -lnk_collect_obj_chunks_parallel(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8 name, String8 postfix, B32 collect_discarded) +internal +THREAD_POOL_TASK_FUNC(lnk_collect_obj_chunks_task) { - NotImplemented; - return 0; + LNK_SectionCollector *task = raw_task; + LNK_Obj *obj = task->objs[task_id]; + + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + for (U32 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *section_header = §ion_table[sect_idx]; + + if (section_header->flags & COFF_SectionFlag_LnkRemove) { + if (!task->collect_discarded) { + continue; + } + } + + String8 section_name = coff_name_from_section_header(string_table, section_header); + if (str8_match(section_name, task->name, 0)) { + String8 section_data = str8_substr(obj->data, rng_1u64(section_header->foff, section_header->foff + section_header->fsize)); + str8_list_push(arena, &task->out_lists[task_id], section_data); + } + } } -internal String8List -lnk_collect_obj_chunks(Arena *arena, LNK_Obj *obj, String8 name, String8 postfix, B32 collect_discarded) +internal String8List * +lnk_collect_obj_sections(TP_Context *tp, TP_Arena *arena, U64 objs_count, LNK_Obj **objs, String8 name, B32 collect_discarded) { - NotImplemented; - String8List result = {0}; - return result; + LNK_SectionCollector task = {0}; + task.objs = objs; + task.name = name; + task.collect_discarded = collect_discarded; + task.out_lists = push_array(arena->v[0], String8List, objs_count); + tp_for_parallel(tp, arena, objs_count, lnk_collect_obj_chunks_task, &task); + return task.out_lists; } internal void diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index 093a1334..3f374609 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -81,6 +81,14 @@ typedef struct LNK_SymbolList *undef_lists; } LNK_InputCoffSymbolTable; +typedef struct +{ + LNK_Obj **objs; + String8 name; + B32 collect_discarded; + String8List *out_lists; +} LNK_SectionCollector; + //////////////////////////////// internal void lnk_error_obj(LNK_ErrorCode code, LNK_Obj *obj, char *fmt, ...); @@ -105,8 +113,7 @@ internal COFF_SectionHeader * lnk_coff_section_header_from_section_number(LNK_Ob //////////////////////////////// -internal String8List * lnk_collect_obj_chunks_parallel(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8 name, String8 postfix, B32 collect_discarded); -internal String8List lnk_collect_obj_chunks(Arena *arena, LNK_Obj *obj, String8 name, String8 postfix, B32 collect_discarded); +internal String8List * lnk_collect_obj_sections(TP_Context *tp, TP_Arena *arena, U64 objs_count, LNK_Obj **objs, String8 name, B32 collect_discarded); //////////////////////////////// From 64415e21f07d6e51f2443a25791ff379f798c5b7 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 27 May 2025 14:43:33 -0700 Subject: [PATCH 162/372] special case bss section contribs and fix off by one in range array bsearch --- src/base/base_math.c | 2 +- src/linker/lnk_debug_info.c | 21 ++++++++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/base/base_math.c b/src/base/base_math.c index 1a4d4293..aced70ba 100644 --- a/src/base/base_math.c +++ b/src/base/base_math.c @@ -750,7 +750,7 @@ rng1u64_array_from_list(Arena *arena, Rng1U64List *list) internal U64 rng_1u64_array_bsearch(Rng1U64Array arr, U64 value) { - if(arr.count > 0 && arr.v[0].min <= value && value < arr.v[arr.count-1].max) + if(arr.count > 0 && arr.v[0].min < value && value < arr.v[arr.count-1].max) { U64 l = 0; U64 r = arr.count - 1; diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index 4e5973ff..4bf717db 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -2985,20 +2985,31 @@ THREAD_POOL_TASK_FUNC(lnk_push_dbi_sec_contrib_task) continue; } - U64 sect_number = rng_1u64_array_bsearch(task->image_section_file_ranges, obj_sect_header->foff); - String8 sect_data = str8_substr(task->image_data, rng_1u64(obj_sect_header->foff, obj_sect_header->foff + obj_sect_header->fsize)); - U32 sect_off = obj_sect_header->foff - task->image_section_file_ranges.v[sect_number].min; + U64 sect_number; + String8 sect_data; + U32 sect_off; + U32 data_crc; + if (obj_sect_header->flags & COFF_SectionFlag_CntUninitializedData) { + sect_number = rng_1u64_array_bsearch(task->image_section_virt_ranges, obj_sect_header->voff); + sect_data = str8_zero(); + sect_off = obj_sect_header->voff - task->image_section_virt_ranges.v[sect_number].min; + data_crc = 0; + } else { + sect_number = rng_1u64_array_bsearch(task->image_section_file_ranges, obj_sect_header->foff); + sect_off = obj_sect_header->foff - task->image_section_file_ranges.v[sect_number].min; + data_crc = update_crc32(0, sect_data.str, sect_data.size); + } // fill out SC PDB_DbiSectionContribNode *sc = sc_arr + sc_count++; sc->data.base.sec = (U16)sect_number; sc->data.base.pad0 = 0; sc->data.base.sec_off = sect_off; - sc->data.base.size = obj_sect_header->foff; + sc->data.base.size = obj_sect_header->vsize; sc->data.base.flags = obj_sect_header->flags; sc->data.base.mod = mod->imod; sc->data.base.pad1 = 0; - sc->data.data_crc = update_crc32(0, sect_data.str, sect_data.size); + sc->data.data_crc = 0; sc->data.reloc_crc = 0; dbi_sec_contrib_list_push_node(&task->sc_list[obj_idx], sc); From dcc4f3870944516754623c9e7e7b1e7a35e2717e Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 27 May 2025 15:00:11 -0700 Subject: [PATCH 163/372] clean up pass over obj file --- src/linker/lnk.c | 2 +- src/linker/lnk_debug_info.c | 2 +- src/linker/lnk_obj.c | 235 ++++++++++++++++++------------------ src/linker/lnk_obj.h | 54 ++++----- 4 files changed, 141 insertions(+), 152 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 84b75ba1..bfb1a761 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2199,7 +2199,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S // obj list -> array // U64 objs_count = obj_list.count; - LNK_Obj **objs = lnk_obj_arr_from_list(scratch.arena, obj_list); + LNK_Obj **objs = lnk_array_from_obj_list(scratch.arena, obj_list); ProfBegin("Remove Associatives"); { diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index 4bf717db..d4c1bd60 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -367,7 +367,7 @@ lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, String8List lib_dir // obj list -> array U64 obj_count = obj_list.count; - LNK_Obj **obj_arr = lnk_obj_arr_from_list(tp_arena->v[0], obj_list); + LNK_Obj **obj_arr = lnk_array_from_obj_list(tp_arena->v[0], obj_list); // gather debug info sections from objs ProfBegin("Collect CodeView"); diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 3c8895f8..b84254f3 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -11,23 +11,14 @@ lnk_error_obj(LNK_ErrorCode code, LNK_Obj *obj, char *fmt, ...) va_end(args); } -//////////////////////////////// - -internal LNK_ObjNodeArray -lnk_obj_list_reserve(Arena *arena, LNK_ObjList *list, U64 count) +internal LNK_Obj ** +lnk_array_from_obj_list(Arena *arena, LNK_ObjList list) { - LNK_ObjNodeArray arr = {0}; - if (count) { - arr.count = count; - arr.v = push_array(arena, LNK_ObjNode, count); - for (LNK_ObjNode *ptr = arr.v, *opl = arr.v + arr.count; ptr < opl; ++ptr) { - SLLQueuePush(list->first, list->last, ptr); - } - list->count += count; - } else { - MemoryZeroStruct(&arr); + LNK_Obj **arr = push_array_no_zero(arena, LNK_Obj *, list.count); + U64 idx = 0; + for (LNK_ObjNode *node = list.first; node != 0; node = node->next, ++idx) { + arr[idx] = &node->data; } - return arr; } @@ -244,33 +235,131 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) internal LNK_ObjNodeArray lnk_obj_list_push_parallel(TP_Context *tp, TP_Arena *arena, - LNK_ObjList *obj_list, + LNK_ObjList *list, COFF_MachineType machine, U64 input_count, LNK_InputObj **inputs) { ProfBeginFunction(); + + // store base id + U64 obj_id_base = list->count; + + // reserve obj nodes + LNK_ObjNodeArray objs = {0}; + if (input_count > 0) { + objs.count = input_count; + objs.v = push_array(arena->v[0], LNK_ObjNode, input_count); + for (LNK_ObjNode *ptr = objs.v, *opl = objs.v + input_count; ptr < opl; ++ptr) { + SLLQueuePush(list->first, list->last, ptr); + } + list->count += input_count; + } + // fill out & run task LNK_ObjIniter task = {0}; task.inputs = inputs; - task.obj_id_base = obj_list->count; - task.objs = lnk_obj_list_reserve(arena->v[0], obj_list, input_count); + task.obj_id_base = obj_id_base; + task.objs = objs; task.machine = machine; tp_for_parallel(tp, arena, input_count, lnk_obj_initer, &task); ProfEnd(); - return task.objs; + return objs; } -internal LNK_Obj ** -lnk_obj_arr_from_list(Arena *arena, LNK_ObjList list) +internal +THREAD_POOL_TASK_FUNC(lnk_input_coff_symbol_table) { - LNK_Obj **arr = push_array_no_zero(arena, LNK_Obj *, list.count); - U64 idx = 0; - for (LNK_ObjNode *node = list.first; node != 0; node = node->next, ++idx) { - arr[idx] = &node->data; + LNK_InputCoffSymbolTable *task = raw_task; + LNK_Obj *obj = &task->objs.v[task_id].data; + + // + // parse obj header + // + COFF_FileHeaderInfo header = coff_file_header_info_from_data(obj->data); + + // + // extract COFF info + // + String8 raw_coff_section_table = str8_substr(obj->data, header.section_table_range); + String8 raw_coff_symbol_table = str8_substr(obj->data, header.symbol_table_range); + String8 raw_coff_string_table = str8_substr(obj->data, header.string_table_range); + + COFF_ParsedSymbol symbol = {0}; + for (U64 symbol_idx = 0; symbol_idx < header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + // read symbol + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + switch (interp) { + case COFF_SymbolValueInterp_Regular: { + if (symbol.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); + U64 hash = lnk_symbol_hash(symbol.name); + lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); + } + } break; + case COFF_SymbolValueInterp_Weak: { + LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); + U64 hash = lnk_symbol_hash(symbol.name); + lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); + + lnk_symbol_list_push(arena, &task->weak_lists[task_id], defn); + } break; + case COFF_SymbolValueInterp_Common: { + LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); + U64 hash = lnk_symbol_hash(symbol.name); + lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); + } break; + case COFF_SymbolValueInterp_Abs: { + if (symbol.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); + U64 hash = lnk_symbol_hash(symbol.name); + lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); + } + } break; + case COFF_SymbolValueInterp_Undefined: { + LNK_Symbol *s = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + if (s == 0) { + if (symbol.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *undef = lnk_make_undefined_symbol(arena, symbol.name, obj); + lnk_symbol_list_push(arena, &task->undef_lists[worker_id], undef); + } else if (symbol.storage_class == COFF_SymStorageClass_Section) { + // lookup is performed during image patching step + } else { + Assert(!"unexpected storage class on undefined symbol"); + } + } + } break; + case COFF_SymbolValueInterp_Debug: { + // not used + } break; + default: { InvalidPath; } break; + } } - return arr; +} + +internal LNK_SymbolInputResult +lnk_input_obj_symbols(TP_Context *tp, TP_Arena *arena, LNK_SymbolTable *symtab, LNK_ObjNodeArray objs) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(arena->v, arena->count); + + LNK_InputCoffSymbolTable task = {0}; + task.symtab = symtab; + task.objs = objs; + task.weak_lists = push_array(scratch.arena, LNK_SymbolList, tp->worker_count); + task.undef_lists = push_array(scratch.arena, LNK_SymbolList, tp->worker_count); + tp_for_parallel(tp, arena, objs.count, lnk_input_coff_symbol_table, &task); + + LNK_SymbolInputResult result = {0}; + SLLConcatInPlaceArray(&result.weak_symbols, task.weak_lists, tp->worker_count); + SLLConcatInPlaceArray(&result.undef_symbols, task.undef_lists, tp->worker_count); + + scratch_end(scratch); + ProfEnd(); + return result; } internal COFF_ParsedSymbol @@ -441,97 +530,3 @@ lnk_parse_msvc_linker_directive(Arena *arena, LNK_Obj *obj, LNK_DirectiveInfo *d scratch_end(scratch); } -internal -THREAD_POOL_TASK_FUNC(lnk_input_coff_symbol_table) -{ - LNK_InputCoffSymbolTable *task = raw_task; - LNK_Obj *obj = &task->objs.v[task_id].data; - - // - // parse obj header - // - COFF_FileHeaderInfo header = coff_file_header_info_from_data(obj->data); - - // - // extract COFF info - // - String8 raw_coff_section_table = str8_substr(obj->data, header.section_table_range); - String8 raw_coff_symbol_table = str8_substr(obj->data, header.symbol_table_range); - String8 raw_coff_string_table = str8_substr(obj->data, header.string_table_range); - - COFF_ParsedSymbol symbol = {0}; - for (U64 symbol_idx = 0; symbol_idx < header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - // read symbol - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - switch (interp) { - case COFF_SymbolValueInterp_Regular: { - if (symbol.storage_class == COFF_SymStorageClass_External) { - LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); - U64 hash = lnk_symbol_hash(symbol.name); - lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); - } - } break; - case COFF_SymbolValueInterp_Weak: { - LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); - U64 hash = lnk_symbol_hash(symbol.name); - lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); - - lnk_symbol_list_push(arena, &task->weak_lists[task_id], defn); - } break; - case COFF_SymbolValueInterp_Common: { - LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); - U64 hash = lnk_symbol_hash(symbol.name); - lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); - } break; - case COFF_SymbolValueInterp_Abs: { - if (symbol.storage_class == COFF_SymStorageClass_External) { - LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); - U64 hash = lnk_symbol_hash(symbol.name); - lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); - } - } break; - case COFF_SymbolValueInterp_Undefined: { - LNK_Symbol *s = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); - if (s == 0) { - if (symbol.storage_class == COFF_SymStorageClass_External) { - LNK_Symbol *undef = lnk_make_undefined_symbol(arena, symbol.name, obj); - lnk_symbol_list_push(arena, &task->undef_lists[worker_id], undef); - } else if (symbol.storage_class == COFF_SymStorageClass_Section) { - // lookup is performed during image patching step - } else { - Assert(!"unexpected storage class on undefined symbol"); - } - } - } break; - case COFF_SymbolValueInterp_Debug: { - // not used - } break; - default: { InvalidPath; } break; - } - } -} - -internal LNK_SymbolInputResult -lnk_input_obj_symbols(TP_Context *tp, TP_Arena *arena, LNK_SymbolTable *symtab, LNK_ObjNodeArray objs) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(arena->v, arena->count); - - LNK_InputCoffSymbolTable task = {0}; - task.symtab = symtab; - task.objs = objs; - task.weak_lists = push_array(scratch.arena, LNK_SymbolList, tp->worker_count); - task.undef_lists = push_array(scratch.arena, LNK_SymbolList, tp->worker_count); - tp_for_parallel(tp, arena, objs.count, lnk_input_coff_symbol_table, &task); - - LNK_SymbolInputResult result = {0}; - SLLConcatInPlaceArray(&result.weak_symbols, task.weak_lists, tp->worker_count); - SLLConcatInPlaceArray(&result.undef_symbols, task.undef_lists, tp->worker_count); - - scratch_end(scratch); - ProfEnd(); - return result; -} - diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index 3f374609..dd025992 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -3,7 +3,7 @@ #pragma once -//////////////////////////////// +// --- Input ------------------------------------------------------------------- typedef struct LNK_Obj { @@ -34,7 +34,13 @@ typedef struct LNK_ObjNodeArray LNK_ObjNode *v; } LNK_ObjNodeArray; -//////////////////////////////// +typedef struct LNK_SymbolInputResult +{ + LNK_SymbolList weak_symbols; + LNK_SymbolList undef_symbols; +} LNK_SymbolInputResult; + +// --- Directive Parser -------------------------------------------------------- typedef struct LNK_Directive { @@ -55,15 +61,7 @@ typedef struct LNK_DirectiveInfo LNK_DirectiveList v[LNK_CmdSwitch_Count]; } LNK_DirectiveInfo; -//////////////////////////////// - -typedef struct LNK_SymbolInputResult -{ - LNK_SymbolList weak_symbols; - LNK_SymbolList undef_symbols; -} LNK_SymbolInputResult; - -//////////////////////////////// +// --- Workers Contexts -------------------------------------------------------- typedef struct { @@ -83,43 +81,39 @@ typedef struct typedef struct { - LNK_Obj **objs; - String8 name; - B32 collect_discarded; + LNK_Obj **objs; + String8 name; + B32 collect_discarded; String8List *out_lists; } LNK_SectionCollector; -//////////////////////////////// +// --- Error ------------------------------------------------------------------- internal void lnk_error_obj(LNK_ErrorCode code, LNK_Obj *obj, char *fmt, ...); -//////////////////////////////// +// --- Input ------------------------------------------------------------------- -internal LNK_Obj ** lnk_obj_arr_from_list(Arena *arena, LNK_ObjList list); -internal LNK_ObjNodeArray lnk_obj_list_reserve(Arena *arena, LNK_ObjList *list, U64 count); -internal LNK_ObjNodeArray lnk_obj_list_push_parallel(TP_Context *tp, TP_Arena *tp_arena, LNK_ObjList *obj_list, COFF_MachineType machine, U64 input_count, LNK_InputObj **inputs); +internal LNK_Obj ** lnk_array_from_obj_list(Arena *arena, LNK_ObjList list); +internal LNK_ObjNodeArray lnk_obj_list_push_parallel(TP_Context *tp, TP_Arena *tp_arena, LNK_ObjList *obj_list, COFF_MachineType machine, U64 input_count, LNK_InputObj **inputs); +internal LNK_SymbolInputResult lnk_input_obj_symbols(TP_Context *tp, TP_Arena *arena, LNK_SymbolTable *symtab, LNK_ObjNodeArray objs); -internal LNK_Obj ** lnk_obj_arr_from_list(Arena *arena, LNK_ObjList list); - -//////////////////////////////// +// --- Metadata ---------------------------------------------------------------- internal U32 lnk_obj_get_features(LNK_Obj *obj); internal U32 lnk_obj_get_comp_id(LNK_Obj *obj); internal U32 lnk_obj_get_vol_md(LNK_Obj *obj); -internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff(LNK_Obj *obj, void *coff_symbol); -internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff_symbol_idx(LNK_Obj *obj, U64 symbol_idx); +// --- Symbol & Section Helpers ------------------------------------------------ + +internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff(LNK_Obj *obj, void *coff_symbol); +internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff_symbol_idx(LNK_Obj *obj, U64 symbol_idx); internal COFF_SectionHeader * lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number); -//////////////////////////////// +// --- Helpers ----------------------------------------------------------------- internal String8List * lnk_collect_obj_sections(TP_Context *tp, TP_Arena *arena, U64 objs_count, LNK_Obj **objs, String8 name, B32 collect_discarded); -//////////////////////////////// +// --- Directive Parser -------------------------------------------------------- internal void lnk_parse_msvc_linker_directive(Arena *arena, LNK_Obj *obj, LNK_DirectiveInfo *directive_info, String8 buffer); -//////////////////////////////// - -internal LNK_SymbolList lnk_run_symbol_collector(TP_Context *tp, TP_Arena *arena, LNK_ObjNodeArray arr, LNK_SymbolType symbol_type); - From d51fe49bab66148658e20c61c84c1ed6b7ebdb44 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 27 May 2025 15:02:28 -0700 Subject: [PATCH 164/372] delay import fix --- src/pe/pe_make_import_table.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/pe/pe_make_import_table.c b/src/pe/pe_make_import_table.c index 696e9010..a2d0246b 100644 --- a/src/pe/pe_make_import_table.c +++ b/src/pe/pe_make_import_table.c @@ -390,9 +390,10 @@ pe_make_import_dll_obj_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_Mac COFF_ObjSymbol *load_thunk_symbol = 0; if (import_header.type == COFF_ImportHeader_Code) { switch (machine) { + case COFF_MachineType_Unknown: {} break; case COFF_MachineType_X64: { String8 iat_symbol_name = push_str8f(obj_writer->arena, "__imp_%S", import_header.func_name); - coff_obj_writer_push_symbol_undef(obj_writer, iat_symbol_name); + coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_sect->data.total_size, iat_sect); // emit jmp thunk jmp_thunk_symbol = pe_make_indirect_jump_thunk_x64(obj_writer, code_sect, iat_symbol, import_header.func_name); @@ -411,10 +412,6 @@ pe_make_import_dll_obj_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_Mac str8_list_push(obj_writer->arena, &ilt_sect->data, ordinal_data); str8_list_push(obj_writer->arena, &iat_sect->data, ordinal_data); - String8 iat_symbol_name = push_str8f(obj_writer->arena, "__imp_%S", import_header.func_name); - iat_symbol = coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_offset, iat_sect); - - if (emit_biat) { U64 import_size = coff_word_size_from_machine(machine); U64 biat_offset = biat_sect->data.total_size; @@ -448,11 +445,11 @@ pe_make_import_dll_obj_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_Mac coff_obj_writer_section_push_reloc_voff(obj_writer, ilt_sect, ilt_data_offset, int_symbol); // in the file IAT mirrors ILT, dynamic linker later overwrites it with imported function addresses. - U64 iat_data_offset = iat_sect->data.total_size; + U64 iat_offset = iat_sect->data.total_size; str8_list_push(obj_writer->arena, &iat_sect->data, str8(0, import_size)); // patch-in thunk address - coff_obj_writer_section_push_reloc_addr(obj_writer, iat_sect, iat_data_offset, load_thunk_symbol); + coff_obj_writer_section_push_reloc_addr(obj_writer, iat_sect, iat_offset, load_thunk_symbol); if (emit_biat) { U64 biat_data_offset = biat_sect->data.total_size; From 9c59cfd4e7adf6eba74c3d20f57fce39f96a34a4 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 27 May 2025 15:04:00 -0700 Subject: [PATCH 165/372] pointless check, in .debug relocations point to __ImageBase --- src/linker/lnk.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index bfb1a761..d6d1ec90 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1239,15 +1239,6 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) symbol_secoff = symbol.value; symbol_voff = safe_cast_u32((U64)task->image_section_table[symbol.section_number]->voff + (U64)symbol_secoff); } else if (interp == COFF_SymbolValueInterp_Abs) { - // error check relocation - if (obj->header.machine == COFF_MachineType_X64) { - if (reloc->type == COFF_Reloc_X64_SecRel) { - lnk_error_obj(LNK_Error_IllegalRelocation, obj, "section-relative relocation (No. 0x%x) cannot be applied to absolute symbol (No. 0x%x)", reloc_idx, reloc->isymbol); - } - } else if (obj->header.machine != COFF_MachineType_Unknown) { - NotImplemented; - } - // There aren't enough bits in COFF symbol to store full image base address, // so we special case __ImageBase. A better solution would be to add // a 64-bit symbol format to COFF. @@ -1278,7 +1269,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) // read addend Assert(reloc_foff + reloc_value.size <= task->image_data.size); U64 raw_addend = 0; - str8_deserial_read(task->image_data, reloc_foff, &raw_addend, reloc_value.size, reloc_value.size); + str8_deserial_read(task->image_data, reloc_foff, &raw_addend, reloc_value.size, 1); // compute new reloc value S64 addend = extend_sign64(raw_addend, reloc_value.size); From 89e2ea15ad8ed490e6c3c8a54240e8a7408835af Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 28 May 2025 09:42:05 -0700 Subject: [PATCH 166/372] add /RAD_REMOVE_SECTION switch and special case debug sections --- src/linker/lnk.c | 135 +++++++++++++++++++++------------- src/linker/lnk.h | 2 +- src/linker/lnk_config.c | 9 +++ src/linker/lnk_config.h | 12 +-- src/linker/lnk_debug_helper.c | 2 +- src/linker/lnk_obj.c | 24 +++--- src/linker/lnk_obj.h | 1 + 7 files changed, 116 insertions(+), 69 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index d6d1ec90..4fdbd304 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -149,6 +149,10 @@ //////////////////////////////// +global read_only LNK_SectionContrib g_null_sc; + +//////////////////////////////// + internal LNK_Config * lnk_config_from_argcv(Arena *arena, int argc, char **argv) { @@ -204,6 +208,7 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) #else lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SuppressError, "%u", LNK_Error_InvalidTypeIndex); #endif + // default section merges lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".xdata=.rdata"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".tls=.data"); @@ -212,6 +217,9 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".didat=.rdata"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".RAD_LINKER_DEBUG_DIR=.rdata"); + // sections to remove from the image + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_RemoveSection, ".debug"); + // set default max worker count if (lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Rad_SharedThreadPool)) { lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, ""); @@ -1195,10 +1203,24 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) for (U64 sect_idx = 0; sect_idx < obj_header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *section_header = §ion_table[sect_idx]; - // was section discarded? + // was section removed? if (section_header->flags & COFF_SectionFlag_LnkRemove) { continue; } + if (section_header->flags & COFF_SectionFlag_CntUninitializedData) { + continue; + } + + // get section file range + Rng1U64 section_frange = rng_1u64(section_header->foff, section_header->foff + section_header->fsize); + + // get section bytes + String8 section_data; + if (lnk_is_coff_section_debug(obj, sect_idx)) { + section_data = str8_substr(obj->data, section_frange); + } else { + section_data = str8_substr(task->image_data, section_frange); + } // find section relocs COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, section_header); @@ -1217,8 +1239,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) NotImplemented; } - // compute relocation file/virtual offsets - U64 reloc_foff = section_header->foff + reloc->apply_off; + // compute virtual offsets U64 reloc_voff = section_header->voff + reloc->apply_off; // compute symbol location values @@ -1267,16 +1288,16 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) } // read addend - Assert(reloc_foff + reloc_value.size <= task->image_data.size); + Assert(reloc_value.size <= section_data.size); U64 raw_addend = 0; - str8_deserial_read(task->image_data, reloc_foff, &raw_addend, reloc_value.size, 1); + str8_deserial_read(section_data, reloc->apply_off, &raw_addend, reloc_value.size, 1); // compute new reloc value S64 addend = extend_sign64(raw_addend, reloc_value.size); U64 reloc_result = reloc_value.value + addend; // commit new reloc value - MemoryCopy(task->image_data.str + reloc_foff, &reloc_result, reloc_value.size); + MemoryCopy(section_data.str + reloc->apply_off, &reloc_result, reloc_value.size); } } } @@ -2174,7 +2195,7 @@ lnk_pdata_is_before_x8664(void *raw_a, void *raw_b) } internal String8 -lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, LNK_ObjList obj_list) +lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs) { Temp scratch = scratch_begin(arena->v, arena->count); @@ -2186,14 +2207,8 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S lnk_section_table_push(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); lnk_section_table_push(sectab, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS); - // - // obj list -> array - // - U64 objs_count = obj_list.count; - LNK_Obj **objs = lnk_array_from_obj_list(scratch.arena, obj_list); - - ProfBegin("Remove Associatives"); { + ProfBegin("Remove Associative Sections"); for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { LNK_Obj *obj = objs[obj_idx]; String8 string_table = str8_substr(obj->data, obj->header.string_table_range); @@ -2227,8 +2242,8 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S } } } + ProfEnd(); } - ProfEnd(); { ProfBegin("Define And Count Sections"); @@ -2247,7 +2262,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - // discard section + // remove section if (sect_header->flags & COFF_SectionFlag_LnkRemove) { continue; } @@ -2257,19 +2272,13 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S String8 sect_name, sect_sort_idx; coff_parse_section_name(full_sect_name, §_name, §_sort_idx); - // remove debug sections - if (str8_match(sect_name, str8_lit(".debug"), 0)) { - sect_header->flags |= COFF_SectionFlag_LnkRemove; - continue; - } - - // strip linker flags - COFF_SectionFlags sect_flags = sect_header->flags & ~COFF_SectionFlags_LnkFlags; - // was section defined? + COFF_SectionFlags sect_flags = sect_header->flags & ~COFF_SectionFlags_LnkFlags; String8 sect_name_with_flags = lnk_make_name_with_flags(temp.arena, sect_name, sect_flags); LNK_SectionDefinition *sect_defn = 0; hash_table_search_string_raw(sect_defn_ht, sect_name_with_flags, §_defn); + + // create section definition if (sect_defn == 0) { sect_defn = push_array(temp.arena, LNK_SectionDefinition, 1); sect_defn->name = sect_name; @@ -2314,20 +2323,30 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S for (U64 defn_idx = 0; defn_idx < sect_defns_count; defn_idx += 1) { LNK_SectionDefinition *sect_defn = sect_defns[defn_idx]; + // do not create definitions for sections that are removed from the image + { + B32 skip = 0; + for (String8Node *name_n = config->remove_sections.first; name_n != 0; name_n = name_n->next) { + if (str8_match(sect_defn->name, name_n->string, 0)) { + skip = 1; + break; + } + } + if (skip) { continue; } + } + // warn about conflicting section flags for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { LNK_Section *sect = §_n->data; if (str8_match(sect->name, sect_defn->name, 0)) { if (sect->flags != sect_defn->flags) { LNK_Obj *obj = sect_defn->obj; - String8 string_table = str8_substr(obj->data, obj->header.string_table_range); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; - COFF_SectionHeader *sect_header = §ion_table[sect_defn->obj_sect_idx]; - String8 full_sect_name = coff_name_from_section_header(string_table, sect_header); U32 sect_number = sect_defn->obj_sect_idx + 1; + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, sect_number); + String8 sect_name = coff_name_from_section_header(str8_substr(obj->data, obj->header.string_table_range), sect_header); String8 expected_flags_str = coff_string_from_section_flags(temp.arena, sect->flags); String8 current_flags_str = coff_string_from_section_flags(temp.arena, sect_defn->flags); - lnk_error_obj(LNK_Warning_SectionFlagsConflict, sect_defn->obj, "detected section flags conflict in %S(No. %X); expected {%S} but got {%S}", full_sect_name, sect_number, expected_flags_str, current_flags_str); + lnk_error_obj(LNK_Warning_SectionFlagsConflict, sect_defn->obj, "detected section flags conflict in %S(No. %X); expected {%S} but got {%S}", sect_name, sect_number, expected_flags_str, current_flags_str); } } } @@ -2371,30 +2390,36 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S String8 sect_name, sect_sort_idx; coff_parse_section_name(full_sect_name, §_name, §_sort_idx); - // extract section bytes - String8 sect_data = str8_substr(obj->data, rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize)); - - // extract align - U16 sc_align = coff_align_size_from_section_flags(sect_header->flags); - if (sc_align == 0) { - sc_align = default_align; - } - // search for section to contribute COFF_SectionFlags flags = sect_header->flags & ~COFF_SectionFlags_LnkFlags; LNK_Section *sect = lnk_section_table_search(sectab, sect_name, flags); - String8Node *data_n = push_array(sectab->arena, String8Node, 1); - data_n->string = sect_data; + LNK_SectionContrib *sc; + if (sect) { + // extract align + U16 sc_align = coff_align_size_from_section_flags(sect_header->flags); + if (sc_align == 0) { + sc_align = default_align; + } - // fill out contrib - LNK_SectionContrib *sc = lnk_section_contrib_chunk_push(sect->contribs.first, 1); - sc->align = sc_align; - sc->data_list = data_n; - sc->u.obj_idx = obj_idx; - sc->u.obj_sect_idx = sect_idx; - sc->u.sort_idx_size = (U16)sect_sort_idx.size; - sc->u.sort_idx = sect_sort_idx.str; + // extract section bytes + String8 sect_data = str8_substr(obj->data, rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize)); + + String8Node *data_n = push_array(sectab->arena, String8Node, 1); + data_n->string = sect_data; + + // fill out contrib + sc = lnk_section_contrib_chunk_push(sect->contribs.first, 1); + sc->align = sc_align; + sc->data_list = data_n; + sc->u.obj_idx = obj_idx; + sc->u.obj_sect_idx = sect_idx; + sc->u.sort_idx_size = (U16)sect_sort_idx.size; + sc->u.sort_idx = sect_sort_idx.str; + } else { + // section was removed, fill slot with pointer to null contrib + sc = &g_null_sc; + } sect_map[obj_idx][sect_idx] = sc; } @@ -2619,7 +2644,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S U32 section_number = 0; U32 value = 0; { - COFF_SectionHeader *sect_header = lnk_section_header_from_section_number(obj, symbol.section_number); + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { LNK_SectionContrib *sc = sect_map[obj_idx][symbol.section_number-1]; section_number = safe_cast_u32(sc->u.sect_idx + 1); @@ -2933,7 +2958,9 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { + B32 patch_section_header = (~sect_header->flags & COFF_SectionFlag_LnkRemove) && + !lnk_is_coff_section_debug(obj, sect_idx); + if (patch_section_header) { LNK_SectionContrib *sc = sect_map[obj_idx][sect_idx]; LNK_Section *sect = sects.v[sc->u.sect_idx]; if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { @@ -4578,8 +4605,12 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } } break; case State_BuildImage: { + // obj list -> array + U64 objs_count = obj_list.count; + LNK_Obj **objs = lnk_array_from_obj_list(scratch.arena, obj_list); + // build image - image_data = lnk_build_win32_image(tp_arena, tp, config, symtab, obj_list); + image_data = lnk_build_win32_image(tp_arena, tp, config, symtab, objs_count, objs); // write image to disk in a background thread { diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 4ee435fb..ebc84183 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -175,7 +175,7 @@ internal void lnk_queue_lib_member_input(Arena *arena, PathStyle pat internal String8List lnk_build_guard_tables(TP_Context *tp, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs, COFF_MachineType machine, String8 entry_point_name, LNK_GuardFlags guard_flags, B32 emit_suppress_flag); internal String8List lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_temp, LNK_Config *config, U64 objs_count, LNK_Obj **objs); internal String8List lnk_build_win32_image_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sect_arr, U64 expected_image_header_size); -internal String8 lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, LNK_ObjList obj_list); +internal String8 lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, U64 obj_count, LNK_Obj **objs); // --- Logger ------------------------------------------------------------------ diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 1ecbc2db..a1fca3da 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -145,6 +145,7 @@ global read_only LNK_CmdSwitch g_cmd_switch_map[] = { { LNK_CmdSwitch_Rad_PdbHashTypeNameLength, 0, "RAD_PDB_HASH_TYPE_NAME_LENGTH", ":#", "Number of hash bytes to use to replace type name. Default 8 bytes (Max 16)." }, { LNK_CmdSwitch_Rad_PdbHashTypeNameMap, 0, "RAD_PDB_HASH_TYPE_NAME_MAP", ":FILENAME", "Produce map file with hash -> type name mappings." }, { LNK_CmdSwitch_Rad_PdbHashTypeNames, 0, "RAD_PDB_HASH_TYPE_NAMES", ":{NONE|LENIENT|FULL}", "Replace type names in LF_STRUCTURE and LF_CLASS with hashes." }, + { LNK_CmdSwitch_Rad_RemoveSection, 0, "RAD_REMOVE_SECTION", ":NAME", "Removes a section from output image." }, { LNK_CmdSwitch_Rad_SectVirtOff, 0, "RAD_SECT_VIRT_OFF", ":#", "Set RVA where section data is placed in memory. For internal use only." }, { LNK_CmdSwitch_Rad_SharedThreadPool, 0, "RAD_SHARED_THREAD_POOL", "[:STRING]", "Default value \"" LNK_DEFAULT_THREAD_POOL_NAME "\"" }, { LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, 0, "RAD_SHARED_THREAD_POOL_MAX_WORKERS", ":#", "Sets maximum number of workers in a thread pool." }, @@ -1779,6 +1780,14 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &config->pdb_hash_type_name_length, 0); } break; + case LNK_CmdSwitch_Rad_RemoveSection: { + String8 sect_name = {0}; + if (lnk_cmd_switch_parse_string(obj_path, lib_path, cmd_switch, value_strings, §_name)) { + sect_name = push_str8_copy(arena, sect_name); + str8_list_push(arena, &config->remove_sections, sect_name); + } + } break; + case LNK_CmdSwitch_Rad_SectVirtOff: { U64 sect_virt_off; if (lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, §_virt_off, LNK_ParseU64Flag_CheckUnder32bit)) { diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index 5a361e1d..fdf7b4ae 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -130,8 +130,8 @@ typedef enum LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll, LNK_CmdSwitch_Rad_ChunkMap, LNK_CmdSwitch_Rad_Debug, - LNK_CmdSwitch_Rad_DebugName, LNK_CmdSwitch_Rad_DebugAltPath, + LNK_CmdSwitch_Rad_DebugName, LNK_CmdSwitch_Rad_DelayBind, LNK_CmdSwitch_Rad_DoMerge, LNK_CmdSwitch_Rad_EnvLib, @@ -145,22 +145,23 @@ typedef enum LNK_CmdSwitch_Rad_OsVer, LNK_CmdSwitch_Rad_PageSize, LNK_CmdSwitch_Rad_PathStyle, - LNK_CmdSwitch_Rad_PdbHashTypeNames, - LNK_CmdSwitch_Rad_PdbHashTypeNameMap, LNK_CmdSwitch_Rad_PdbHashTypeNameLength, + LNK_CmdSwitch_Rad_PdbHashTypeNameMap, + LNK_CmdSwitch_Rad_PdbHashTypeNames, + LNK_CmdSwitch_Rad_RemoveSection, LNK_CmdSwitch_Rad_SectVirtOff, LNK_CmdSwitch_Rad_SharedThreadPool, LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, LNK_CmdSwitch_Rad_SuppressError, LNK_CmdSwitch_Rad_SymbolTableCapDefined, LNK_CmdSwitch_Rad_SymbolTableCapInternal, - LNK_CmdSwitch_Rad_SymbolTableCapWeak, LNK_CmdSwitch_Rad_SymbolTableCapLib, - LNK_CmdSwitch_Rad_WriteTempFiles, + LNK_CmdSwitch_Rad_SymbolTableCapWeak, LNK_CmdSwitch_Rad_TargetOs, LNK_CmdSwitch_Rad_TimeStamp, LNK_CmdSwitch_Rad_Version, LNK_CmdSwitch_Rad_Workers, + LNK_CmdSwitch_Rad_WriteTempFiles, LNK_CmdSwitch_Help, @@ -380,6 +381,7 @@ typedef struct LNK_Config String8 temp_pdb_name; String8 temp_rad_debug_name; String8 temp_rad_chunk_map_name; + String8List remove_sections; } LNK_Config; typedef enum diff --git a/src/linker/lnk_debug_helper.c b/src/linker/lnk_debug_helper.c index b4190db4..aadcb79b 100644 --- a/src/linker/lnk_debug_helper.c +++ b/src/linker/lnk_debug_helper.c @@ -64,7 +64,7 @@ lnk_make_dll_import_debug_symbols(Arena *arena, COFF_MachineType machine, String cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); // S_END - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_END, str8_zero()); + //cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_END, str8_zero()); // TODO: add thunks diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index b84254f3..ccdf54fa 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -420,6 +420,20 @@ lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number) return section_header; } +internal B32 +lnk_is_coff_section_debug(LNK_Obj *obj, U64 sect_idx) +{ + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); + + String8 full_name = coff_name_from_section_header(string_table, section_header); + String8 name, postfix; + coff_parse_section_name(full_name, &name, &postfix); + + B32 is_debug = str8_match(name, str8_lit(".debug"), 0); + return is_debug; +} + internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff_symbol_idx(LNK_Obj *obj, U64 symbol_idx) { @@ -436,16 +450,6 @@ lnk_parsed_symbol_from_coff_symbol_idx(LNK_Obj *obj, U64 symbol_idx) return result; } -internal COFF_SectionHeader * -lnk_section_header_from_section_number(LNK_Obj *obj, U64 section_number) -{ - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; - if (section_number > 0 && section_number <= obj->header.section_count_no_null) { - return §ion_table[section_number-1]; - } - return 0; -} - internal THREAD_POOL_TASK_FUNC(lnk_collect_obj_chunks_task) { diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index dd025992..a39748b2 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -108,6 +108,7 @@ internal U32 lnk_obj_get_vol_md(LNK_Obj *obj); internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff(LNK_Obj *obj, void *coff_symbol); internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff_symbol_idx(LNK_Obj *obj, U64 symbol_idx); internal COFF_SectionHeader * lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number); +internal B32 lnk_is_coff_section_debug(LNK_Obj *obj, U64 sect_idx); // --- Helpers ----------------------------------------------------------------- From 7f6d8004a96b4ff30f42108d53cf2ba1d87a9e1d Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 27 May 2025 16:21:08 -0700 Subject: [PATCH 167/372] fix import dll debug symbols --- src/linker/lnk_debug_helper.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/linker/lnk_debug_helper.c b/src/linker/lnk_debug_helper.c index aadcb79b..9602f296 100644 --- a/src/linker/lnk_debug_helper.c +++ b/src/linker/lnk_debug_helper.c @@ -63,9 +63,6 @@ lnk_make_dll_import_debug_symbols(Arena *arena, COFF_MachineType machine, String String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); - // S_END - //cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_END, str8_zero()); - // TODO: add thunks // serialize symbols From e911bf5368b75ddd754db994197f027b4bc5977c Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 28 May 2025 14:16:03 -0700 Subject: [PATCH 168/372] move obj writer for PE debug directory to stand-alone file --- src/linker/lnk.c | 177 ++++++++++----------------------- src/linker/lnk.h | 3 - src/linker/lnk_debug_info.c | 5 + src/linker/lnk_section_table.c | 39 ++++++++ src/linker/lnk_section_table.h | 8 +- src/pe/pe_make_debug_dir.c | 47 +++++++++ src/pe/pe_make_debug_dir.h | 11 ++ src/pe/pe_section_flags.h | 2 +- 8 files changed, 165 insertions(+), 127 deletions(-) create mode 100644 src/pe/pe_make_debug_dir.c create mode 100644 src/pe/pe_make_debug_dir.h diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 4fdbd304..0e4d4f3d 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -44,6 +44,7 @@ #include "pe/pe_section_flags.h" #include "pe/pe_make_import_table.h" #include "pe/pe_make_export_table.h" +#include "pe/pe_make_debug_dir.h" #include "codeview/codeview.h" #include "codeview/codeview_parse.h" #include "codeview/codeview_enum.h" @@ -64,6 +65,7 @@ #include "pe/pe.c" #include "pe/pe_make_import_table.c" #include "pe/pe_make_export_table.c" +#include "pe/pe_make_debug_dir.c" #include "codeview/codeview.c" #include "codeview/codeview_enum.c" #include "codeview/codeview_parse.c" @@ -215,7 +217,8 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".edata=.rdata"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".idata=.rdata"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".didat=.rdata"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".RAD_LINKER_DEBUG_DIR=.rdata"); + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".RAD_LINK_PE_DEBUG_DIR=.rdata"); + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".RAD_LINK_PE_DEBUG_DATA=.rdata"); // sections to remove from the image lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_RemoveSection, ".debug"); @@ -865,61 +868,6 @@ lnk_make_linker_coff_obj(Arena *arena, return obj; } -internal void -lnk_push_pe_debug_data_directory(COFF_ObjWriter *obj_writer, - COFF_ObjSymbol *data_symbol, - U64 data_size, - String8 dir_name, - PE_DebugDirectoryType type, - COFF_TimeStamp time_stamp) -{ - // init directory - PE_DebugDirectory *dir = push_array(obj_writer->arena, PE_DebugDirectory, 1); - dir->time_stamp = time_stamp; - dir->type = type; - dir->size = data_size; - //dir->voff = 0; // relocated through 'data_symbol' - //dir->foff = 0; // relocated through 'data_symbol' - COFF_ObjSection *debug_dir_sect = coff_obj_writer_push_section(obj_writer, dir_name, PE_DATA_SECTION_FLAGS, str8_struct(dir)); - coff_obj_writer_section_push_reloc(obj_writer, debug_dir_sect, OffsetOf(PE_DebugDirectory, voff), data_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, debug_dir_sect, OffsetOf(PE_DebugDirectory, foff), data_symbol, COFF_Reloc_X64_Abs); -} - -internal String8 -lnk_make_debug_directory_obj(Arena *arena, LNK_Config *config) -{ - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, config->machine); - COFF_ObjSection *sect_a = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINKER_DEBUG_DIR$a"), PE_DATA_SECTION_FLAGS, str8_zero()); - COFF_ObjSection *sect_z = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINKER_DEBUG_DIR$z"), PE_DATA_SECTION_FLAGS, str8_zero()); - String8 obj = coff_obj_writer_serialize(arena, obj_writer); - coff_obj_writer_release(&obj_writer); - return obj; -} - -internal String8 -lnk_make_debug_directory_pdb_obj(Arena *arena, LNK_Config *config) -{ - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, config->machine); - String8 debug_pdb_data = pe_make_debug_header_pdb70(obj_writer->arena, config->guid, config->age, config->pdb_alt_path); - COFF_ObjSection *debug_pdb_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$z"), PE_DATA_SECTION_FLAGS, debug_pdb_data); - COFF_ObjSymbol *debug_pdb_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("PDB_DEBUG_HEADER_70"), 0, debug_pdb_sect); - lnk_push_pe_debug_data_directory(obj_writer, debug_pdb_symbol, debug_pdb_data.size, str8_lit(".RAD_LINKER_DEBUG_DIR$PDB"), PE_DebugDirectoryType_CODEVIEW, config->time_stamp); - String8 obj = coff_obj_writer_serialize(arena, obj_writer); - return obj; -} - -internal String8 -lnk_make_debug_directory_rdi_obj(Arena *arena, LNK_Config *config) -{ - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, COFF_MachineType_Unknown); - String8 debug_rdi_data = pe_make_debug_header_rdi(obj_writer->arena, config->guid, config->rad_debug_alt_path); - COFF_ObjSection *debug_rdi_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$z"), PE_DATA_SECTION_FLAGS, debug_rdi_data); - COFF_ObjSymbol *debug_rdi_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("RDI_DEBUG_HEADER"), 0, debug_rdi_sect); - lnk_push_pe_debug_data_directory(obj_writer, debug_rdi_symbol, debug_rdi_data.size, str8_lit("RAD_LINKER_DEBUG_DIR$RDI"), PE_DebugDirectoryType_CODEVIEW, config->time_stamp); - String8 obj = coff_obj_writer_serialize(arena, obj_writer); - return obj; -} - internal THREAD_POOL_TASK_FUNC(lnk_load_thin_objs_task) { @@ -1235,7 +1183,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) if (reloc->type > COFF_Reloc_X64_Last) { lnk_error_obj(LNK_Error_IllegalRelocation, obj, "unknown relocation 0x%x", reloc->type); } - } else if (obj->header.machine == COFF_MachineType_Unknown) { + } else if (obj->header.machine != COFF_MachineType_Unknown) { NotImplemented; } @@ -2941,7 +2889,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S lnk_finalize_section_layout(sectab, reloc, config->file_align); lnk_assign_section_virtual_space(reloc, config->sect_align, &voff_cursor); - sects = sects = lnk_section_array_from_list(scratch.arena, sectab->list); + sects = lnk_section_array_from_list(scratch.arena, sectab->list); expected_image_header_size = lnk_compute_win32_image_header_size(config, sects.count); } } @@ -3105,9 +3053,6 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S ProfEnd(); } - LNK_Obj *debug_dir_obj = 0; - //hash_table_search_string_raw(loaded_obj_ht, str8_lit("* Debug Directory *"), &debug_dir_obj); - // patch load config { LNK_Symbol *load_config_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit(LNK_LOAD_CONFIG_SYMBOL_NAME)); @@ -3147,8 +3092,8 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S ProfEnd(); PE_DataDirectory *pdata_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_EXCEPTIONS, sizeof(PE_DataDirectory)); - pdata_dir->virt_off = pdata_sect->voff; - pdata_dir->virt_size = pdata_sect->vsize; + pdata_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, pdata_sect); + pdata_dir->virt_size = lnk_get_section_contrib_size(pdata_sect); } } @@ -3159,8 +3104,8 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S PE_DataDirectory *export_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_EXPORT, sizeof(PE_DataDirectory)); LNK_SectionContrib *edata_first_contrib = lnk_get_first_section_contrib(edata_sect); LNK_SectionContrib *edata_last_contrib = lnk_get_last_section_contrib(edata_sect); - export_dir->virt_off = image_section_table[edata_first_contrib->u.sect_idx+1]->voff + edata_first_contrib->u.off; - export_dir->virt_size = (edata_last_contrib->u.off + edata_last_contrib->u.size) - edata_first_contrib->u.off; + export_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, edata_sect); + export_dir->virt_size = lnk_get_section_contrib_size(edata_sect); } } @@ -3169,8 +3114,8 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S LNK_Section *reloc_sect = lnk_section_table_search(sectab, str8_lit(".reloc"), PE_RELOC_SECTION_FLAGS); if (reloc_sect) { PE_DataDirectory *reloc_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_BASE_RELOC, sizeof(PE_DataDirectory)); - reloc_dir->virt_off = reloc_sect->voff; - reloc_dir->virt_size = reloc_sect->vsize; + reloc_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, reloc_sect); + reloc_dir->virt_size = lnk_get_section_contrib_size(reloc_sect); } } @@ -3191,7 +3136,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S U64 first_import_foff = image_section_table[idata_first_contrib->u.sect_idx+1]->foff + idata_first_contrib->u.off; PE_ImportEntry *first_import = str8_deserial_get_raw_ptr(image_data, first_import_foff, sizeof(*first_import)); PE_DataDirectory *import_addr_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_IMPORT_ADDR, sizeof(PE_DataDirectory)); - import_addr_dir->virt_off = first_import->import_addr_table_voff; + import_addr_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, idata_sect); import_addr_dir->virt_size = null_thunk_data_voff - first_import->import_addr_table_voff /* null */ + coff_word_size_from_machine(config->machine); } } @@ -3207,8 +3152,8 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S PE_DataDirectory *import_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_DELAY_IMPORT, sizeof(PE_DataDirectory)); Assert(null_import_desc_parsed.section_number == didat_first_contrib->u.sect_idx+1); Assert(null_import_desc_parsed.value >= didat_first_contrib->u.off); - import_dir->virt_off = image_section_table[didat_first_contrib->u.sect_idx+1]->voff + didat_first_contrib->u.off; - import_dir->virt_size = null_import_desc_parsed.value - didat_first_contrib->u.off; + import_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, didat_sect); + import_dir->virt_size = lnk_get_section_contrib_size(didat_sect); } } @@ -3247,36 +3192,33 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S } PE_DataDirectory *tls_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_TLS, sizeof(PE_DataDirectory)); - tls_dir->virt_off = tls_sect->voff; - tls_dir->virt_size = tls_sect->vsize; + tls_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, tls_sect); + tls_dir->virt_size = lnk_get_section_contrib_size(tls_sect); ProfEnd(); } // patch debug { - LNK_Section *debug_dir_sect = lnk_section_table_search(sectab, str8_lit(".RAD_LINKER_DEBUG_DIR"), PE_RDATA_SECTION_FLAGS); + LNK_Section *debug_dir_sect = lnk_section_table_search(sectab, str8_lit(".RAD_LINK_PE_DEBUG_DIR"), PE_RDATA_SECTION_FLAGS); if (debug_dir_sect) { + // patch directory PE_DataDirectory *debug_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_DEBUG, sizeof(PE_DataDirectory)); - debug_dir->virt_off = debug_dir_sect->voff; - debug_dir->virt_size = debug_dir_sect->vsize; + debug_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, debug_dir_sect); + debug_dir->virt_size = lnk_get_section_contrib_size(debug_dir_sect); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(debug_dir_obj->data, debug_dir_obj->header.section_table_range).str; - String8 string_table = str8_substr(debug_dir_obj->data, debug_dir_obj->header.string_table_range); - for (U64 sect_idx = 0; sect_idx < debug_dir_obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(debug_dir_obj->data, sect_header); - COFF_Reloc *relocs = (COFF_Reloc *)(debug_dir_obj->data.str + reloc_info.array_off); + // find debug directory begin and end pair + LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(debug_dir_sect); + LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(debug_dir_sect); + U64 debug_begin_foff = lnk_foff_from_section_contrib(image_section_table, first_sc); + U64 debug_end_fopl = lnk_fopl_from_section_contrib(image_section_table, last_sc); - for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { - COFF_Reloc *r = &relocs[reloc_idx]; - if (r->type == 0) { - COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(debug_dir_obj, r->isymbol); - - // patch PE_DebugDirectory.foff - U32 *debug_directory_foff = (U32 *)(image_data.str + sect_header->foff + r->apply_off); - *debug_directory_foff = image_section_table[symbol.section_number]->foff + symbol.value; - break; + // patch file offsets to the debug directories + for (U64 cursor = debug_begin_foff; cursor + sizeof(PE_DebugDirectory) <= debug_end_fopl; cursor += sizeof(PE_DebugDirectory)) { + PE_DebugDirectory *dir = str8_deserial_get_raw_ptr(image_data, cursor, sizeof(PE_DebugDirectory)); + for (U64 section_number = 1; section_number < pe.section_count+1; section_number += 1) { + if (image_section_table[section_number]->voff <= dir->voff && dir->voff < image_section_table[section_number]->voff + image_section_table[section_number]->vsize) { + dir->foff = image_section_table[section_number]->foff + (dir->voff - image_section_table[section_number]->voff); } } } @@ -3288,8 +3230,8 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S LNK_Section *rsrc_sect = lnk_section_table_search(sectab, str8_lit(".rsrc"), PE_RSRC_SECTION_FLAGS); if (rsrc_sect) { PE_DataDirectory *rsrc_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_RESOURCES, sizeof(PE_DataDirectory)); - rsrc_dir->virt_off = rsrc_sect->voff; - rsrc_dir->virt_size = rsrc_sect->vsize; + rsrc_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, rsrc_sect); + rsrc_dir->virt_size = lnk_get_section_contrib_size(rsrc_sect); } } @@ -3302,8 +3244,8 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S // compute image guid, and patch PDB and RDI guids { - LNK_Symbol *guid_pdb_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER_PDB_GUID")); - LNK_Symbol *guid_rdi_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINKER_RDI_GUID")); + LNK_Symbol *guid_pdb_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINK_PE_DEBUG_GUID_PDB")); + LNK_Symbol *guid_rdi_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINK_PE_DEBUG_GUID_RDI")); if (guid_pdb_symbol || guid_rdi_symbol) { switch (config->guid_type) { @@ -3318,19 +3260,15 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S } if (guid_pdb_symbol) { - LNK_Obj *obj = guid_pdb_symbol->u.defined.obj; - COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, guid_pdb_symbol->u.defined.symbol_idx); - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - Guid *cv_guid_pdb = str8_deserial_get_raw_ptr(image_data, section_header->foff, sizeof(*cv_guid_pdb)); - *cv_guid_pdb = config->guid; + U64 cv_guid_foff = lnk_file_off_from_symbol(image_section_table, guid_pdb_symbol); + Guid *cv_guid = str8_deserial_get_raw_ptr(image_data, cv_guid_foff, sizeof(*cv_guid)); + *cv_guid = config->guid; } if (guid_rdi_symbol) { - LNK_Obj *obj = guid_rdi_symbol->u.defined.obj; - COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, guid_rdi_symbol->u.defined.symbol_idx); - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - Guid *cv_guid_rdi = str8_deserial_get_raw_ptr(image_data, section_header->foff, sizeof(*cv_guid_rdi)); - *cv_guid_rdi = config->guid; + U64 cv_guid_foff = lnk_file_off_from_symbol(image_section_table, guid_rdi_symbol); + Guid *cv_guid = str8_deserial_get_raw_ptr(image_data, cv_guid_foff, sizeof(*cv_guid)); + *cv_guid = config->guid; } } @@ -4582,26 +4520,21 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfEnd(); } - ProfBegin("Build Debug Directory"); { - LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); - input->path = str8_lit("* Debug Directory *"); - input->dedup_id = input->path; - input->data = lnk_make_debug_directory_obj(scratch.arena, config); + if (config->debug_mode != LNK_DebugMode_None && config->debug_mode != LNK_DebugMode_Null) { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->path = str8_lit("* Debug Directory PDB *"); + input->dedup_id = input->path; + input->data = pe_make_debug_directory_pdb_obj(scratch.arena, config->machine, config->guid, config->age, config->time_stamp, config->pdb_alt_path); + } + if (config->rad_debug == LNK_SwitchState_Yes) { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->path = str8_lit("* Debug Directory RDI *"); + input->dedup_id = input->path; + input->data = pe_make_debug_directory_rdi_obj(scratch.arena, config->machine, config->guid, config->age, config->time_stamp, config->rad_debug_alt_path); + } + ProfEnd(); } - if (config->debug_mode != LNK_DebugMode_None && config->debug_mode != LNK_DebugMode_Null) { - LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); - input->path = str8_lit("* Debug Directory PDB *"); - input->dedup_id = input->path; - input->data = lnk_make_debug_directory_pdb_obj(scratch.arena, config); - } - if (config->rad_debug == LNK_SwitchState_Yes) { - LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); - input->path = str8_lit("* Debug Directory RDI *"); - input->dedup_id = input->path; - input->data = lnk_make_debug_directory_rdi_obj(scratch.arena, config); - } - ProfEnd(); } } break; case State_BuildImage: { diff --git a/src/linker/lnk.h b/src/linker/lnk.h index ebc84183..c00f2bbe 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -155,9 +155,6 @@ internal String8 lnk_manifest_from_inputs(Arena *arena, String8 mt_path, String8 internal String8 lnk_make_res_obj(Arena *arena, String8List res_file_list, String8List res_path_list, COFF_MachineType machine, U32 time_stamp, String8 work_dir, PathStyle system_path_style, String8 obj_name); internal String8 lnk_make_linker_coff_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 cwd_path, String8 exe_path, String8 pdb_path, String8 cmd_line, String8 obj_name); -internal String8 lnk_make_debug_directory_obj(Arena *arena, LNK_Config *config); -internal String8 lnk_make_debug_directory_pdb_obj(Arena *arena, LNK_Config *config); -internal String8 lnk_make_debug_directory_rdi_obj(Arena *arena, LNK_Config *config); // --- Symbol Resolver --------------------------------------------------------- diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index d4c1bd60..81659304 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -2984,6 +2984,9 @@ THREAD_POOL_TASK_FUNC(lnk_push_dbi_sec_contrib_task) if (obj_sect_header->flags & COFF_SectionFlag_LnkRemove) { continue; } + if (lnk_is_coff_section_debug(obj, sect_idx)) { + continue; + } U64 sect_number; String8 sect_data; @@ -2991,11 +2994,13 @@ THREAD_POOL_TASK_FUNC(lnk_push_dbi_sec_contrib_task) U32 data_crc; if (obj_sect_header->flags & COFF_SectionFlag_CntUninitializedData) { sect_number = rng_1u64_array_bsearch(task->image_section_virt_ranges, obj_sect_header->voff); + Assert(sect_number < task->image_section_virt_ranges.count); sect_data = str8_zero(); sect_off = obj_sect_header->voff - task->image_section_virt_ranges.v[sect_number].min; data_crc = 0; } else { sect_number = rng_1u64_array_bsearch(task->image_section_file_ranges, obj_sect_header->foff); + Assert(sect_number < task->image_section_file_ranges.count); sect_off = obj_sect_header->foff - task->image_section_file_ranges.v[sect_number].min; data_crc = update_crc32(0, sect_data.str, sect_data.size); } diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index a5085392..d6898a51 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -79,6 +79,29 @@ lnk_section_array_from_list(Arena *arena, LNK_SectionList list) return result; } +internal U64 +lnk_voff_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc) +{ + COFF_SectionHeader *sect_header = image_section_table[sc->u.sect_idx+1]; + U64 voff = sect_header->voff + sc->u.off; + return voff; +} + +internal U64 +lnk_foff_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc) +{ + COFF_SectionHeader *sect_header = image_section_table[sc->u.sect_idx+1]; + U64 foff = sect_header->foff + sc->u.off; + return foff; +} + +internal U64 +lnk_fopl_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc) +{ + U64 foff = lnk_foff_from_section_contrib(image_section_table, sc); + return foff + sc->u.size; +} + internal LNK_SectionContrib * lnk_get_first_section_contrib(LNK_Section *sect) { @@ -101,6 +124,22 @@ lnk_get_last_section_contrib(LNK_Section *sect) return 0; } +internal U64 +lnk_get_section_contrib_size(LNK_Section *sect) +{ + LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); + LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(sect); + U64 size = (last_sc->u.off - first_sc->u.off) + last_sc->u.size; + return size; +} + +internal U64 +lnk_get_first_section_contrib_voff(COFF_SectionHeader **image_section_table, LNK_Section *sect) +{ + LNK_SectionContrib *sc = lnk_get_first_section_contrib(sect); + return lnk_voff_from_section_contrib(image_section_table, sc); +} + internal LNK_SectionTable * lnk_section_table_alloc(void) { diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index 9d3280e9..de8d988c 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -117,8 +117,14 @@ internal LNK_SectionArray lnk_section_array_from_list(Arena *arena, LNK_SectionL //////////////////////////////// +internal U64 lnk_voff_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc); +internal U64 lnk_foff_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc); +internal U64 lnk_fopl_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc); + +internal LNK_SectionContrib * lnk_get_first_section_contrib(LNK_Section *sect); internal LNK_SectionContrib * lnk_get_last_section_contrib(LNK_Section *sect); -internal LNK_SectionTable * lnk_section_table_alloc(void); +internal U64 lnk_get_section_contrib_size(LNK_Section *sect); +internal U64 lnk_get_first_section_contrib_voff(COFF_SectionHeader **image_section_table, LNK_Section *sect); //////////////////////////////// diff --git a/src/pe/pe_make_debug_dir.c b/src/pe/pe_make_debug_dir.c new file mode 100644 index 00000000..0da26141 --- /dev/null +++ b/src/pe/pe_make_debug_dir.c @@ -0,0 +1,47 @@ +// Copyright (c) 2025 Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal String8 +pe_make_debug_directory_pdb_obj(Arena *arena, COFF_MachineType machine, Guid guid, U32 age, COFF_TimeStamp time_stamp, String8 path) +{ + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, machine); + + String8 debug_data = pe_make_debug_header_pdb70(obj_writer->arena, guid, age, path); + COFF_ObjSection *debug_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINK_PE_DEBUG_DATA"), PE_DEBUG_DIR_SECTION_FLAGS, debug_data); + COFF_ObjSymbol *debug_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("PDB_DEBUG_HEADER_70"), 0, debug_sect); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("RAD_LINK_PE_DEBUG_PDB"), 0, debug_sect); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("RAD_LINK_PE_DEBUG_GUID_PDB"), OffsetOf(PE_CvHeaderPDB70, guid), debug_sect); + + PE_DebugDirectory *dir = push_array(obj_writer->arena, PE_DebugDirectory, 1); + dir->time_stamp = time_stamp; + dir->type = PE_DebugDirectoryType_CODEVIEW; + dir->size = debug_data.size; + COFF_ObjSection *debug_dir_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINK_PE_DEBUG_DIR"), PE_DEBUG_DIR_SECTION_FLAGS, str8_struct(dir)); + coff_obj_writer_section_push_reloc_voff(obj_writer, debug_dir_sect, OffsetOf(PE_DebugDirectory, voff), debug_symbol); + + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + return obj; +} + +internal String8 +pe_make_debug_directory_rdi_obj(Arena *arena, COFF_MachineType machine, Guid guid, U32 age, COFF_TimeStamp time_stamp, String8 path) +{ + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(COFF_TimeStamp_Max, machine); + + String8 debug_data = pe_make_debug_header_rdi(obj_writer->arena, guid, path); + COFF_ObjSection *debug_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINK_PE_DEBUG_DATA"), PE_DEBUG_DIR_SECTION_FLAGS, debug_data); + COFF_ObjSymbol *debug_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("PDB_DEBUG_HEADER_RDI"), 0, debug_sect); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("RAD_LINK_PE_DEBUG_RDI"), 0, debug_sect); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("RAD_LINK_PE_DEBUG_GUID_RDI"), OffsetOf(PE_CvHeaderRDI, guid), debug_sect); + + PE_DebugDirectory *dir = push_array(obj_writer->arena, PE_DebugDirectory, 1); + dir->time_stamp = time_stamp; + dir->type = PE_DebugDirectoryType_CODEVIEW; + dir->size = debug_data.size; + COFF_ObjSection *dir_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".RAD_LINK_PE_DEBUG_DIR"), PE_DEBUG_DIR_SECTION_FLAGS, str8_struct(dir)); + coff_obj_writer_section_push_reloc_voff(obj_writer, dir_sect, OffsetOf(PE_DebugDirectory, voff), debug_symbol); + + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + return obj; +} + diff --git a/src/pe/pe_make_debug_dir.h b/src/pe/pe_make_debug_dir.h new file mode 100644 index 00000000..e63a64ca --- /dev/null +++ b/src/pe/pe_make_debug_dir.h @@ -0,0 +1,11 @@ +// Copyright (c) 2025 Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef PE_MAKE_DEBUG_DIR_H +#define PE_MAKE_DEBUG_DIR_H + +internal String8 pe_make_debug_directory_pdb_obj(Arena *arena, COFF_MachineType machine, Guid guid, U32 age, COFF_TimeStamp time_stamp, String8 path); +internal String8 pe_make_debug_directory_rdi_obj(Arena *arena, COFF_MachineType machine, Guid guid, U32 age, COFF_TimeStamp time_stamp, String8 path); + +#endif // PE_MAKE_DEBUG_DIR_H + diff --git a/src/pe/pe_section_flags.h b/src/pe/pe_section_flags.h index 4d9fdf54..7ac5807b 100644 --- a/src/pe/pe_section_flags.h +++ b/src/pe/pe_section_flags.h @@ -9,7 +9,7 @@ #define PE_RDATA_SECTION_FLAGS (COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead) #define PE_BSS_SECTION_FLAGS (COFF_SectionFlag_CntUninitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite) #define PE_IDATA_SECTION_FLAGS PE_DATA_SECTION_FLAGS -#define PE_DEBUG_DIR_SECTION_FLAGS PE_DATA_SECTION_FLAGS +#define PE_DEBUG_DIR_SECTION_FLAGS PE_RDATA_SECTION_FLAGS #define PE_RSRC_SECTION_FLAGS PE_DATA_SECTION_FLAGS #define PE_RSRC1_SECTION_FLAGS (PE_DATA_SECTION_FLAGS | COFF_SectionFlag_Align4Bytes) #define PE_RSRC2_SECTION_FLAGS (PE_DATA_SECTION_FLAGS | COFF_SectionFlag_Align4Bytes) From f2394b6cf782007bf9057269f56c841f29414d85 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 29 May 2025 13:59:26 -0700 Subject: [PATCH 169/372] off-by-one --- src/torture/torture.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index 92c28f48..3d29b5aa 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -3123,7 +3123,7 @@ t_delay_import_user32(void) COFF_ObjSymbol *text_symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, text_sect); COFF_ObjSymbol *message_box_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_MessageBoxA")); coff_obj_writer_section_push_reloc(obj_writer, text_sect, 10, msg_symbol, COFF_Reloc_X64_Rel32); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 16, caption_symbol, COFF_Reloc_X64_Rel32); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 17, caption_symbol, COFF_Reloc_X64_Rel32); coff_obj_writer_section_push_reloc(obj_writer, text_sect, 25, message_box_symbol, COFF_Reloc_X64_Rel32); String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); @@ -3131,7 +3131,7 @@ t_delay_import_user32(void) if (!t_write_file(str8_lit("delay_import.obj"), obj)) { goto exit; } } - int linker_exit_code = t_invoke_linkerf("/subsystem:console /out:a.exe /entry:entry /fixed /delayload:user32.dll kernel32.lib user32.lib libcmt.lib delayimp.lib delay_import.obj"); + int linker_exit_code = t_invoke_linkerf("/subsystem:console /out:a.exe /entry:entry /fixed /delayload:user32.dll kernel32.lib user32.lib libcmt.lib delayimp.lib delay_import.obj /debug:full"); if (linker_exit_code != 0) { goto exit; } result = T_Result_Pass; From 42bed0e5c621929e8048a3d9ac0c13657d55a96d Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 29 May 2025 14:00:21 -0700 Subject: [PATCH 170/372] merge delayed data section with .data --- src/linker/lnk.c | 2 +- src/linker/lnk_debug_info.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 0e4d4f3d..a7a2cdab 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -216,7 +216,7 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".tls=.data"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".edata=.rdata"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".idata=.rdata"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".didat=.rdata"); + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".didat=.data"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".RAD_LINK_PE_DEBUG_DIR=.rdata"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".RAD_LINK_PE_DEBUG_DATA=.rdata"); diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index 81659304..1d0341ec 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -3001,6 +3001,7 @@ THREAD_POOL_TASK_FUNC(lnk_push_dbi_sec_contrib_task) } else { sect_number = rng_1u64_array_bsearch(task->image_section_file_ranges, obj_sect_header->foff); Assert(sect_number < task->image_section_file_ranges.count); + sect_data = str8_substr(task->image_data, rng_1u64(obj_sect_header->foff, obj_sect_header->foff + obj_sect_header->fsize)); sect_off = obj_sect_header->foff - task->image_section_file_ranges.v[sect_number].min; data_crc = update_crc32(0, sect_data.str, sect_data.size); } From 3d2b1e19e35f7f335597090857870afd33bd4cbf Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 29 May 2025 16:19:44 -0700 Subject: [PATCH 171/372] handle communal var vs regular non-comdat symbol --- src/linker/lnk_symbol_table.c | 60 +++++++++++++++-------------- src/torture/torture.c | 72 ++++++++++++++++++++++++++++++++++- 2 files changed, 102 insertions(+), 30 deletions(-) diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index 223e6cb0..e9e4339b 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -181,6 +181,7 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) B32 can_replace = 0; + // lib vs lib if (dst->type == LNK_Symbol_Lib && src->type == LNK_Symbol_Lib) { // link.exe picks symbol from lib that is discovered first @@ -234,52 +235,60 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) else if (dst_interp == COFF_SymbolValueInterp_Abs && src_interp == COFF_SymbolValueInterp_Weak) { can_replace = 0; } - // weak vs regular,common,abs + // weak vs (regular, common, abs) else if (dst_interp == COFF_SymbolValueInterp_Weak && (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Common || src_interp == COFF_SymbolValueInterp_Abs)) { can_replace = 1; } - // regular,common vs regular,common + // (regular, common) vs (regular, common) else if ((dst_interp == COFF_SymbolValueInterp_Regular || dst_interp == COFF_SymbolValueInterp_Common) && (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Common)) { - B32 is_dst_single_defn = 0; - B32 is_src_single_defn = 0; - + B32 dst_is_comdat = 0; COFF_ComdatSelectType dst_select; - U32 dst_section_length; - U32 dst_check_sum; + U32 dst_section_length; + U32 dst_check_sum; if (dst_interp == COFF_SymbolValueInterp_Regular) { U32 dst_comdat_symbol_idx = dst_obj->comdats[dst_parsed.section_number-1]; if (dst_comdat_symbol_idx != max_U32) { COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(dst_obj, dst_comdat_symbol_idx); coff_parse_secdef(secdef, dst_obj->header.is_big_obj, &dst_select, 0, &dst_section_length, &dst_check_sum); - } else { - is_dst_single_defn = 1; + dst_is_comdat = 1; } } else if (dst_interp == COFF_SymbolValueInterp_Common) { - dst_select = COFF_ComdatSelect_Largest; + dst_select = COFF_ComdatSelect_Largest; dst_section_length = dst_parsed.value; - dst_check_sum = 0; + dst_check_sum = 0; + dst_is_comdat = 1; } + B32 src_is_comdat = 0; COFF_ComdatSelectType src_select; - U32 src_section_length; - U32 src_check_sum; + U32 src_section_length; + U32 src_check_sum; if (src_interp == COFF_SymbolValueInterp_Regular) { U32 src_comdat_symbol_idx = src_obj->comdats[src_parsed.section_number-1]; if (src_comdat_symbol_idx != max_U32) { COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(src_obj, src_comdat_symbol_idx); coff_parse_secdef(secdef, src_obj->header.is_big_obj, &src_select, 0, &src_section_length, &src_check_sum); - } else { - is_src_single_defn = 1; + src_is_comdat = 1; } } else if (src_interp == COFF_SymbolValueInterp_Common) { - src_select = COFF_ComdatSelect_Largest; + src_select = COFF_ComdatSelect_Largest; src_section_length = src_parsed.value; - src_check_sum = 0; + src_check_sum = 0; + src_is_comdat = 1; } - if (is_dst_single_defn || is_src_single_defn) { - lnk_error_multiply_defined_symbol(dst, src); - } else { + // regular non-comdat vs communal + if (dst_interp == COFF_SymbolValueInterp_Regular && !dst_is_comdat && + src_interp == COFF_SymbolValueInterp_Common) { + can_replace = 0; + } + // communal vs regular non-comdat + else if (dst_interp == COFF_SymbolValueInterp_Common && + src_interp == COFF_SymbolValueInterp_Regular && !src_is_comdat) { + can_replace = 1; + } + // handle COMDATs + else if (dst_is_comdat && src_is_comdat) { // handle objs compiled with /GR- and /GR if ((src_select == COFF_ComdatSelect_Any && dst_select == COFF_ComdatSelect_Largest)) { src_select = COFF_ComdatSelect_Largest; @@ -331,14 +340,7 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) } break; case COFF_ComdatSelect_Largest: { if (dst_section_length == src_section_length) { - if (dst_interp == COFF_SymbolValueInterp_Common) { - // handle communal variable - // - // MSVC CRT relies on this behaviour (e.g. __scrt_ucrt_dll_is_in_use in ucrt_detection.c) - can_replace = 1; - } else { - can_replace = src_obj->input_idx < dst_obj->input_idx; - } + can_replace = src_obj->input_idx < dst_obj->input_idx; } else { can_replace = dst_section_length < src_section_length; } @@ -355,6 +357,8 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) "%S: COMDAT selection conflict detected, current selection %S, leader selection %S from %S", src->name, src_select_str, dst_select_str, dst_obj); } + } else { + lnk_error_multiply_defined_symbol(dst, src); } } else { lnk_error(LNK_Error_InvalidPath, "unable to find a suitable replacement logic for symbol combination"); diff --git a/src/torture/torture.c b/src/torture/torture.c index 3d29b5aa..f1150d33 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -2953,7 +2953,74 @@ t_include(void) } internal T_Result -t_communal_var(void) +t_communal_var_vs_regular(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + coff_obj_writer_push_symbol_common(obj_writer, str8_lit("TEST"), 1); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("communal.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_lit("test")); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("defn.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { + goto exit; + } + } + + // linker should replace communal TEST with .data TEST + int linker_exit_code; + + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe communal.obj defn.obj entry.obj"); + if (linker_exit_code != 0) { goto exit; } + + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe defn.obj communal.obj entry.obj"); + if (linker_exit_code != 0) { goto exit; } + + char *exes[] = { "a.exe", "b.exe" }; + for (U64 i = 0; i < ArrayCount(exes); i += 1) { + String8 exe = t_read_file(scratch.arena, str8_cstring(exes[i])); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *data_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + if (!data_sect) { goto exit; } + String8 data = str8_substr(exe, rng_1u64(data_sect->foff, data_sect->foff + data_sect->vsize)); + if (!str8_match(data, str8_lit("test"), 0)) { goto exit; } + } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + +internal T_Result +t_communal_var_vs_regular_comdat(void) { Temp scratch = scratch_begin(0,0); T_Result result = T_Result_Fail; @@ -3187,7 +3254,8 @@ entry_point(CmdLine *cmdline) { "comdat_associative_out_of_bounds", t_comdat_associative_out_of_bounds }, { "alt_name", t_alt_name }, { "include", t_include }, - { "communal_var", t_communal_var }, + { "communal_var_vs_regular_comdat", t_communal_var_vs_regular_comdat }, + { "communal_var_vs_regular", t_communal_var_vs_regular }, { "import_kernel32", t_import_kernel32 }, { "delay_import_user32", t_delay_import_user32 }, //{ "import_export", t_import_export }, From 86556c68ed36b3c8cead86ada0e7bf149468dea6 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 29 May 2025 18:22:09 -0700 Subject: [PATCH 172/372] point TLS directory to TLS header --- src/linker/lnk.c | 115 ++++++++++++++++++-------------------- src/pe/pe.c | 10 ++++ src/pe/pe.h | 2 + src/pe/pe_section_flags.h | 1 + 4 files changed, 67 insertions(+), 61 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index a7a2cdab..c29d369d 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -3062,7 +3062,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S U32 load_config_size = 0; if (sizeof(load_config_size) <= load_config_data.size) { - PE_DataDirectory *load_config_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_LOAD_CONFIG, sizeof(PE_DataDirectory)); + PE_DataDirectory *load_config_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_LOAD_CONFIG); load_config_dir->virt_off = lnk_virt_off_from_symbol(image_section_table, load_config_symbol); load_config_dir->virt_size = load_config_size; } else { @@ -3091,7 +3091,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S } ProfEnd(); - PE_DataDirectory *pdata_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_EXCEPTIONS, sizeof(PE_DataDirectory)); + PE_DataDirectory *pdata_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_EXCEPTIONS); pdata_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, pdata_sect); pdata_dir->virt_size = lnk_get_section_contrib_size(pdata_sect); } @@ -3101,9 +3101,9 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S { LNK_Section *edata_sect = lnk_section_table_search(sectab, str8_lit(".edata"), PE_EDATA_SECTION_FLAGS); if (edata_sect) { - PE_DataDirectory *export_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_EXPORT, sizeof(PE_DataDirectory)); + PE_DataDirectory *export_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_EXPORT); LNK_SectionContrib *edata_first_contrib = lnk_get_first_section_contrib(edata_sect); - LNK_SectionContrib *edata_last_contrib = lnk_get_last_section_contrib(edata_sect); + LNK_SectionContrib *edata_last_contrib = lnk_get_last_section_contrib(edata_sect); export_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, edata_sect); export_dir->virt_size = lnk_get_section_contrib_size(edata_sect); } @@ -3113,7 +3113,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S { LNK_Section *reloc_sect = lnk_section_table_search(sectab, str8_lit(".reloc"), PE_RELOC_SECTION_FLAGS); if (reloc_sect) { - PE_DataDirectory *reloc_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_BASE_RELOC, sizeof(PE_DataDirectory)); + PE_DataDirectory *reloc_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_BASE_RELOC); reloc_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, reloc_sect); reloc_dir->virt_size = lnk_get_section_contrib_size(reloc_sect); } @@ -3121,81 +3121,74 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S // patch import and import addr { - LNK_Section *idata_sect = lnk_section_table_search(sectab, str8_lit(".idata"), PE_IDATA_SECTION_FLAGS); - LNK_Symbol *null_import_desc = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "__NULL_IMPORT_DESCRIPTOR"); - LNK_Symbol *null_thunk_data = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "\x7f%S_NULL_THUNK_DATA", lnk_get_image_name(config)); + LNK_Section *idata_sect = lnk_section_table_search(sectab, str8_lit(".idata"), PE_IDATA_SECTION_FLAGS); + LNK_Symbol *null_import_desc = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "__NULL_IMPORT_DESCRIPTOR"); + LNK_Symbol *null_thunk_data = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "\x7f%S_NULL_THUNK_DATA", lnk_get_image_name(config)); if (idata_sect && null_import_desc && null_thunk_data) { - COFF_ParsedSymbol null_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_import_desc->u.defined.obj, null_import_desc->u.defined.symbol_idx); - LNK_SectionContrib *idata_first_contrib = lnk_get_first_section_contrib(idata_sect); - PE_DataDirectory *import_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_IMPORT, sizeof(PE_DataDirectory)); - import_dir->virt_off = image_section_table[idata_first_contrib->u.sect_idx + 1]->voff + idata_first_contrib->u.off; + COFF_ParsedSymbol null_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_import_desc->u.defined.obj, null_import_desc->u.defined.symbol_idx); + LNK_SectionContrib *idata_first_contrib = lnk_get_first_section_contrib(idata_sect); + PE_DataDirectory *import_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_IMPORT); + import_dir->virt_off = image_section_table[idata_first_contrib->u.sect_idx + 1]->voff + idata_first_contrib->u.off; import_dir->virt_size = null_import_desc_parsed.value - idata_first_contrib->u.off; - COFF_ParsedSymbol null_thunk_data_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_thunk_data->u.defined.obj, null_thunk_data->u.defined.symbol_idx); - U64 null_thunk_data_voff = image_section_table[null_thunk_data_parsed.section_number]->voff + null_thunk_data_parsed.value; - U64 first_import_foff = image_section_table[idata_first_contrib->u.sect_idx+1]->foff + idata_first_contrib->u.off; - PE_ImportEntry *first_import = str8_deserial_get_raw_ptr(image_data, first_import_foff, sizeof(*first_import)); - PE_DataDirectory *import_addr_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_IMPORT_ADDR, sizeof(PE_DataDirectory)); - import_addr_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, idata_sect); + COFF_ParsedSymbol null_thunk_data_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_thunk_data->u.defined.obj, null_thunk_data->u.defined.symbol_idx); + U64 null_thunk_data_voff = image_section_table[null_thunk_data_parsed.section_number]->voff + null_thunk_data_parsed.value; + U64 first_import_foff = image_section_table[idata_first_contrib->u.sect_idx+1]->foff + idata_first_contrib->u.off; + PE_ImportEntry *first_import = str8_deserial_get_raw_ptr(image_data, first_import_foff, sizeof(*first_import)); + PE_DataDirectory *import_addr_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_IMPORT_ADDR); + import_addr_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, idata_sect); import_addr_dir->virt_size = null_thunk_data_voff - first_import->import_addr_table_voff /* null */ + coff_word_size_from_machine(config->machine); } } // patch delay imports { - LNK_Section *didat_sect = lnk_section_table_search(sectab, str8_lit(".didat"), PE_IDATA_SECTION_FLAGS); - LNK_Symbol *null_import_desc = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("__NULL_DELAY_IMPORT_DESCRIPTOR")); - LNK_Symbol *last_null_thunk = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "\x7f%S_NULL_THUNK_DATA_DLA", lnk_get_image_name(config)); + LNK_Section *didat_sect = lnk_section_table_search(sectab, str8_lit(".didat"), PE_IDATA_SECTION_FLAGS); + LNK_Symbol *null_import_desc = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("__NULL_DELAY_IMPORT_DESCRIPTOR")); + LNK_Symbol *last_null_thunk = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "\x7f%S_NULL_THUNK_DATA_DLA", lnk_get_image_name(config)); if (didat_sect && null_import_desc && last_null_thunk) { - COFF_ParsedSymbol null_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_import_desc->u.defined.obj, null_import_desc->u.defined.symbol_idx); - LNK_SectionContrib *didat_first_contrib = lnk_get_first_section_contrib(didat_sect); - PE_DataDirectory *import_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_DELAY_IMPORT, sizeof(PE_DataDirectory)); - Assert(null_import_desc_parsed.section_number == didat_first_contrib->u.sect_idx+1); - Assert(null_import_desc_parsed.value >= didat_first_contrib->u.off); - import_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, didat_sect); + COFF_ParsedSymbol null_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_import_desc->u.defined.obj, null_import_desc->u.defined.symbol_idx); + LNK_SectionContrib *didat_first_contrib = lnk_get_first_section_contrib(didat_sect); + PE_DataDirectory *import_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_DELAY_IMPORT); + import_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, didat_sect); import_dir->virt_size = lnk_get_section_contrib_size(didat_sect); } } // patch TLS - LNK_Symbol *tls_used_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, LNK_TLS_SYMBOL_NAME); - if (tls_used_symbol) { - ProfBegin("Patch TLS Align"); + { + LNK_Symbol *tls_used_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, LNK_TLS_SYMBOL_NAME); + if (tls_used_symbol) { + ProfBegin("Patch TLS"); - // loop over .tls sections and extract max alignment - LNK_Section *tls_sect = lnk_section_table_search(sectab, str8_lit(".tls"), PE_RDATA_SECTION_FLAGS); - U64 tls_align = 0; - - for (LNK_SectionContribChunk *sc_chunk = tls_sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { - for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { - LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; - tls_align = Max(tls_align, sc->align); + // find max align in .tls + U64 tls_align = 0; + LNK_Section *tls_sect = lnk_section_table_search(sectab, str8_lit(".tls"), PE_TLS_SECTION_FLAGS); + for (LNK_SectionContribChunk *sc_chunk = tls_sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { + for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { + Assert(IsPow2(sc_chunk->v[sc_idx]->align)); + tls_align = Max(tls_align, sc_chunk->v[sc_idx]->align); + } } - } - if (IsPow2(tls_align)) { - // compute TLS header offset + // patch-in align U64 tls_header_foff = lnk_file_off_from_symbol(image_section_table, tls_used_symbol); - - // patch TLS header - if (coff_word_size_from_machine(config->machine) == 8) { - String8 raw_tls_used = str8_substr(image_data, rng_1u64(tls_header_foff, tls_header_foff + sizeof(PE_TLSHeader64))); - PE_TLSHeader64 *tls_header = (PE_TLSHeader64 *) raw_tls_used.str; + B32 is_tls_header64 = coff_word_size_from_machine(config->machine) == 8; + if (is_tls_header64) { + PE_TLSHeader64 *tls_header = str8_deserial_get_raw_ptr(image_data, tls_header_foff, sizeof(*tls_header)); tls_header->characteristics |= coff_section_flag_from_align_size(tls_align); } else { - String8 raw_tls_used = str8_substr(image_data, rng_1u64(tls_header_foff, tls_header_foff + sizeof(PE_TLSHeader32))); - PE_TLSHeader32 *tls_header = (PE_TLSHeader32 *) raw_tls_used.str; + PE_TLSHeader32 *tls_header = str8_deserial_get_raw_ptr(image_data, tls_header_foff, sizeof(*tls_header)); tls_header->characteristics |= coff_section_flag_from_align_size(tls_align); } - } else { - lnk_error(LNK_Warning_TLSAlign, "unable to patch TLS Header characteristics, alignment must be power of two, align inferred from section flags: %llu", tls_align); + + // patch directory + PE_DataDirectory *tls_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_TLS); + tls_dir->virt_off = lnk_virt_off_from_symbol(image_section_table, tls_used_symbol); + tls_dir->virt_size = is_tls_header64 ? sizeof(PE_TLSHeader64) : sizeof(PE_TLSHeader32); + + ProfEnd(); } - - PE_DataDirectory *tls_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_TLS, sizeof(PE_DataDirectory)); - tls_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, tls_sect); - tls_dir->virt_size = lnk_get_section_contrib_size(tls_sect); - - ProfEnd(); } // patch debug @@ -3203,15 +3196,15 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S LNK_Section *debug_dir_sect = lnk_section_table_search(sectab, str8_lit(".RAD_LINK_PE_DEBUG_DIR"), PE_RDATA_SECTION_FLAGS); if (debug_dir_sect) { // patch directory - PE_DataDirectory *debug_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_DEBUG, sizeof(PE_DataDirectory)); - debug_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, debug_dir_sect); + PE_DataDirectory *debug_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_DEBUG); + debug_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, debug_dir_sect); debug_dir->virt_size = lnk_get_section_contrib_size(debug_dir_sect); // find debug directory begin and end pair LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(debug_dir_sect); - LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(debug_dir_sect); + LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(debug_dir_sect); U64 debug_begin_foff = lnk_foff_from_section_contrib(image_section_table, first_sc); - U64 debug_end_fopl = lnk_fopl_from_section_contrib(image_section_table, last_sc); + U64 debug_end_fopl = lnk_fopl_from_section_contrib(image_section_table, last_sc); // patch file offsets to the debug directories for (U64 cursor = debug_begin_foff; cursor + sizeof(PE_DebugDirectory) <= debug_end_fopl; cursor += sizeof(PE_DebugDirectory)) { @@ -3229,7 +3222,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S { LNK_Section *rsrc_sect = lnk_section_table_search(sectab, str8_lit(".rsrc"), PE_RSRC_SECTION_FLAGS); if (rsrc_sect) { - PE_DataDirectory *rsrc_dir = str8_deserial_get_raw_ptr(image_data, pe.data_dir_range.min + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_RESOURCES, sizeof(PE_DataDirectory)); + PE_DataDirectory *rsrc_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_RESOURCES); rsrc_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, rsrc_sect); rsrc_dir->virt_size = lnk_get_section_contrib_size(rsrc_sect); } diff --git a/src/pe/pe.c b/src/pe/pe.c index f6827811..1cb63a53 100644 --- a/src/pe/pe.c +++ b/src/pe/pe.c @@ -650,6 +650,16 @@ pe_bin_info_from_data(Arena *arena, String8 data) return info; } +internal PE_DataDirectory * +pe_data_directory_from_idx(String8 file_data, PE_BinInfo pe, PE_DataDirectoryIndex dir_idx) +{ + PE_DataDirectory *result = 0; + if (dir_idx < pe.data_dir_count) { + result = str8_deserial_get_raw_ptr(file_data, pe.data_dir_range.min + sizeof(*result)*dir_idx, sizeof(*result)); + } + return result; +} + internal PE_DebugInfoList pe_debug_info_list_from_raw_debug_dir(Arena *arena, String8 raw_image, String8 raw_debug_dir) { diff --git a/src/pe/pe.h b/src/pe/pe.h index 088b8775..3dbaeea2 100644 --- a/src/pe/pe.h +++ b/src/pe/pe.h @@ -1062,6 +1062,8 @@ internal String8 pe_string_from_dll_characteristics(Arena *arena, PE_DllCharacte internal B32 pe_check_magic(String8 data); internal PE_BinInfo pe_bin_info_from_data(Arena *arena, String8 data); +internal PE_DataDirectory * pe_data_directory_from_idx(String8 file_data, PE_BinInfo pe, PE_DataDirectoryIndex dir_idx); +internal PE_DebugInfoList pe_parse_debug_directory(Arena *arena, String8 raw_image, String8 raw_debug_dir); internal PE_DebugInfoList pe_debug_info_list_from_raw_debug_dir(Arena *arena, String8 raw_image, String8 raw_debug_dir); internal PE_ParsedStaticImportTable pe_static_imports_from_data(Arena *arena, B32 is_pe32, U64 section_count, COFF_SectionHeader *sections, String8 raw_data, Rng1U64 dir_file_range); internal PE_ParsedDelayImportTable pe_delay_imports_from_data(Arena *arena, B32 is_pe32, U64 section_count, COFF_SectionHeader *sections, String8 raw_data, Rng1U64 dir_file_range); diff --git a/src/pe/pe_section_flags.h b/src/pe/pe_section_flags.h index 7ac5807b..b6adfff1 100644 --- a/src/pe/pe_section_flags.h +++ b/src/pe/pe_section_flags.h @@ -22,6 +22,7 @@ #define PE_GEHCONT_SECTION_FLAGS PE_RDATA_SECTION_FLAGS #define PE_RELOC_SECTION_FLAGS (PE_RDATA_SECTION_FLAGS | COFF_SectionFlag_MemDiscardable) #define PE_DEBUG_SECTION_FLAGS (PE_RDATA_SECTION_FLAGS | COFF_SectionFlag_MemDiscardable) +#define PE_TLS_SECTION_FLAGS PE_DATA_SECTION_FLAGS #endif // PE_SECTION_FLAGS_H From 47e123221a4da88696e07ecb992256bf78301781 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 29 May 2025 16:22:20 -0700 Subject: [PATCH 173/372] minor fixes --- src/linker/lnk.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index c29d369d..f51e14f4 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -921,7 +921,7 @@ lnk_push_loaded_lib(Arena *arena, HashTable *loaded_lib_ht, String8 path) { if (!hash_table_search_path(loaded_lib_ht, path)) { String8 path_copy = push_str8_copy(arena, path); - hash_table_push_string_u64(arena, loaded_lib_ht, path_copy, 0); + hash_table_push_path_u64(arena, loaded_lib_ht, path_copy, 0); } } @@ -2386,8 +2386,8 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { // replace contrib with leader LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); - COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - sect_map[obj_idx][symbol.section_number - 1] = sect_map[defn->u.defined.obj->input_idx][symbol.section_number - 1]; + COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + sect_map[obj_idx][symbol.section_number - 1] = sect_map[defn->u.defined.obj->input_idx][defn_symbol.section_number - 1]; } } } From 1c656979d26cd433bb12c6b6db1ad2c8af9d5f8a Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 29 May 2025 18:26:13 -0700 Subject: [PATCH 174/372] move MSVC lib symbols to CRT layer --- src/linker/lnk.c | 52 ++++++++++++++++++++--------------------- src/linker/lnk.h | 28 ---------------------- src/msvc_crt/msvc_crt.h | 29 +++++++++++++++++++++++ 3 files changed, 55 insertions(+), 54 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index f51e14f4..b24e1de0 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -985,22 +985,22 @@ lnk_make_linker_obj(Arena *arena, LNK_Config *config) { // load config symbols if (config->machine == COFF_MachineType_X86) { - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_SAFE_SE_HANDLER_TABLE_SYMBOL_NAME), 0, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_SAFE_SE_HANDLER_COUNT_SYMBOL_NAME), 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(MSCRT_SAFE_SE_HANDLER_TABLE_SYMBOL_NAME), 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(MSCRT_SAFE_SE_HANDLER_COUNT_SYMBOL_NAME), 0, COFF_SymStorageClass_External); } // TODO: investigate IMAGE_ENCLAVE_CONFIG 32/64 - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_ENCLAVE_CONFIG_SYMBOL_NAME), 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(MSCRT_ENCLAVE_CONFIG_SYMBOL_NAME), 0, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_FLAGS_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_FIDS_TABLE_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_FIDS_COUNT_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_IAT_TABLE_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_IAT_COUNT_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_LONGJMP_TABLE_SYMBOL_NAME), 0, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_LONGJMP_COUNT_SYMBOL_NAME), 0, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_EHCONT_TABLE_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(LNK_GUARD_EHCONT_COUNT_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(MSCRT_GUARD_FLAGS_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(MSCRT_GUARD_FIDS_TABLE_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(MSCRT_GUARD_FIDS_COUNT_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(MSCRT_GUARD_IAT_TABLE_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(MSCRT_GUARD_IAT_COUNT_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(MSCRT_GUARD_LONGJMP_TABLE_SYMBOL_NAME), 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(MSCRT_GUARD_LONGJMP_COUNT_SYMBOL_NAME), 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(MSCRT_GUARD_EHCONT_TABLE_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit(MSCRT_GUARD_EHCONT_COUNT_SYMBOL_NAME) , 0, COFF_SymStorageClass_External); } String8 obj = coff_obj_writer_serialize(arena, obj_writer); @@ -1574,15 +1574,15 @@ lnk_build_guard_tables(TP_Context *tp, lnk_section_push_chunk_data(gljmp_sect, gljmp_array_chunk, gljmp_data, str8_zero()); lnk_section_push_chunk_data(gehcont_sect, gehcont_array_chunk, gehcont_data, str8_zero()); - LNK_Symbol *gflags_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_FLAGS_SYMBOL_NAME)); - LNK_Symbol *gfids_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_FIDS_TABLE_SYMBOL_NAME)); - LNK_Symbol *gfids_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_FIDS_COUNT_SYMBOL_NAME)); - LNK_Symbol *giats_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_IAT_TABLE_SYMBOL_NAME)); - LNK_Symbol *giats_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_IAT_COUNT_SYMBOL_NAME)); - LNK_Symbol *gljmp_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_LONGJMP_TABLE_SYMBOL_NAME)); - LNK_Symbol *gljmp_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_LONGJMP_COUNT_SYMBOL_NAME)); - LNK_Symbol *gehcont_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_EHCONT_TABLE_SYMBOL_NAME)); - LNK_Symbol *gehcont_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(LNK_GUARD_EHCONT_COUNT_SYMBOL_NAME)); + LNK_Symbol *gflags_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_FLAGS_SYMBOL_NAME)); + LNK_Symbol *gfids_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_FIDS_TABLE_SYMBOL_NAME)); + LNK_Symbol *gfids_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_FIDS_COUNT_SYMBOL_NAME)); + LNK_Symbol *giats_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_IAT_TABLE_SYMBOL_NAME)); + LNK_Symbol *giats_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_IAT_COUNT_SYMBOL_NAME)); + LNK_Symbol *gljmp_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_LONGJMP_TABLE_SYMBOL_NAME)); + LNK_Symbol *gljmp_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_LONGJMP_COUNT_SYMBOL_NAME)); + LNK_Symbol *gehcont_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_EHCONT_TABLE_SYMBOL_NAME)); + LNK_Symbol *gehcont_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_EHCONT_COUNT_SYMBOL_NAME)); LNK_DefinedSymbol *gflags_def = &gflags_symbol->u.defined; LNK_DefinedSymbol *gfids_table_def = &gfids_table_symbol->u.defined; @@ -3055,7 +3055,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S // patch load config { - LNK_Symbol *load_config_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit(LNK_LOAD_CONFIG_SYMBOL_NAME)); + LNK_Symbol *load_config_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit(MSCRT_LOAD_CONFIG_SYMBOL_NAME)); if (load_config_symbol) { U64 load_config_foff = lnk_file_off_from_symbol(image_section_table, load_config_symbol); String8 load_config_data = str8_skip(image_data, load_config_foff); @@ -3157,7 +3157,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S // patch TLS { - LNK_Symbol *tls_used_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, LNK_TLS_SYMBOL_NAME); + LNK_Symbol *tls_used_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, MSCRT_TLS_SYMBOL_NAME); if (tls_used_symbol) { ProfBegin("Patch TLS"); @@ -4113,8 +4113,8 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfBegin("Push Dll Helper Undef Symbol"); switch (config->machine) { - case COFF_MachineType_X86: delay_load_helper_name = str8_cstring(LNK_DELAY_LOAD_HELPER2_X86_SYMBOL_NAME); break; - case COFF_MachineType_X64: delay_load_helper_name = str8_cstring(LNK_DELAY_LOAD_HELPER2_SYMBOL_NAME); break; + case COFF_MachineType_X86: delay_load_helper_name = str8_cstring(MSCRT_DELAY_LOAD_HELPER2_X86_SYMBOL_NAME); break; + case COFF_MachineType_X64: delay_load_helper_name = str8_cstring(MSCRT_DELAY_LOAD_HELPER2_SYMBOL_NAME); break; default: { NotImplemented; } break; } @@ -4123,7 +4123,7 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } break; case State_PushLoadConfigUndefSymbol: { ProfBegin("Push Load Config Undef Symbol"); - String8 load_config_name = str8_lit(LNK_LOAD_CONFIG_SYMBOL_NAME); + String8 load_config_name = str8_lit(MSCRT_LOAD_CONFIG_SYMBOL_NAME); str8_list_push(scratch.arena, &include_symbol_list, load_config_name); ProfEnd(); } break; diff --git a/src/linker/lnk.h b/src/linker/lnk.h index c00f2bbe..0392f0ae 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -3,34 +3,6 @@ #pragma once -// --- CRT Symbols ------------------------------------------------------------- - -// _load_config_used points to PE_LoadConfig32/PE_LoadConfig64 -// and symbols below are used to patch patricual fields of the struct. -#define LNK_LOAD_CONFIG_SYMBOL_NAME "_load_config_used" -#define LNK_ENCLAVE_CONFIG_SYMBOL_NAME "__enclave_config" -#define LNK_GUARD_FLAGS_SYMBOL_NAME "__guard_flags" -#define LNK_GUARD_FIDS_TABLE_SYMBOL_NAME "__guard_fids_table" -#define LNK_GUARD_FIDS_COUNT_SYMBOL_NAME "__guard_fids_count" -#define LNK_GUARD_IAT_TABLE_SYMBOL_NAME "__guard_iat_table" -#define LNK_GUARD_IAT_COUNT_SYMBOL_NAME "__guard_iat_count" -#define LNK_GUARD_LONGJMP_TABLE_SYMBOL_NAME "__guard_longjmp_table" -#define LNK_GUARD_LONGJMP_COUNT_SYMBOL_NAME "__guard_longjmp_count" -#define LNK_GUARD_EHCONT_TABLE_SYMBOL_NAME "__guard_eh_cont_table" -#define LNK_GUARD_EHCONT_COUNT_SYMBOL_NAME "__guard_eh_cont_count" - -// x86 load config fields -#define LNK_SAFE_SE_HANDLER_TABLE_SYMBOL_NAME "__safe_se_handler_table" -#define LNK_SAFE_SE_HANDLER_COUNT_SYMBOL_NAME "__safe_se_handler_count" - -// load symbols from delayimp.lib -#define LNK_DELAY_LOAD_HELPER2_SYMBOL_NAME "__delayLoadHelper2" -#define LNK_DELAY_LOAD_HELPER2_X86_SYMBOL_NAME "___delayLoadHelper2@8" - -// _tls_used is a special section in CRT which has format of -// PE_TLSHeader32 or PE_TLSHeader64, according to machine type. -#define LNK_TLS_SYMBOL_NAME "_tls_used" - // --- Base Reloc -------------------------------------------------------------- typedef struct LNK_BaseRelocPage diff --git a/src/msvc_crt/msvc_crt.h b/src/msvc_crt/msvc_crt.h index c160afa3..840b1fe9 100644 --- a/src/msvc_crt/msvc_crt.h +++ b/src/msvc_crt/msvc_crt.h @@ -4,6 +4,35 @@ #ifndef MSVC_CRT #define MSVC_CRT +//////////////////////////////// +// CRT Symbols + +// _load_config_used points to PE_LoadConfig32/PE_LoadConfig64 +// and symbols below are used to patch patricual fields of the struct. +#define MSCRT_LOAD_CONFIG_SYMBOL_NAME "_load_config_used" +#define MSCRT_ENCLAVE_CONFIG_SYMBOL_NAME "__enclave_config" +#define MSCRT_GUARD_FLAGS_SYMBOL_NAME "__guard_flags" +#define MSCRT_GUARD_FIDS_TABLE_SYMBOL_NAME "__guard_fids_table" +#define MSCRT_GUARD_FIDS_COUNT_SYMBOL_NAME "__guard_fids_count" +#define MSCRT_GUARD_IAT_TABLE_SYMBOL_NAME "__guard_iat_table" +#define MSCRT_GUARD_IAT_COUNT_SYMBOL_NAME "__guard_iat_count" +#define MSCRT_GUARD_LONGJMP_TABLE_SYMBOL_NAME "__guard_longjmp_table" +#define MSCRT_GUARD_LONGJMP_COUNT_SYMBOL_NAME "__guard_longjmp_count" +#define MSCRT_GUARD_EHCONT_TABLE_SYMBOL_NAME "__guard_eh_cont_table" +#define MSCRT_GUARD_EHCONT_COUNT_SYMBOL_NAME "__guard_eh_cont_count" + +// x86 load config fields +#define MSCRT_SAFE_SE_HANDLER_TABLE_SYMBOL_NAME "__safe_se_handler_table" +#define MSCRT_SAFE_SE_HANDLER_COUNT_SYMBOL_NAME "__safe_se_handler_count" + +// load symbols from delayimp.lib +#define MSCRT_DELAY_LOAD_HELPER2_SYMBOL_NAME "__delayLoadHelper2" +#define MSCRT_DELAY_LOAD_HELPER2_X86_SYMBOL_NAME "___delayLoadHelper2@8" + +// _tls_used is a special section in CRT which has format of +// PE_TLSHeader32 or PE_TLSHeader64, according to machine type. +#define MSCRT_TLS_SYMBOL_NAME "_tls_used" + //////////////////////////////// // feature flags in absolute symbol @feat.00 From 54e7f9aafc707212c346b792260a3b033cb88271 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 29 May 2025 20:50:38 -0700 Subject: [PATCH 175/372] appease ASAN --- src/linker/lnk.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index b24e1de0..701776f0 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -504,6 +504,7 @@ lnk_res_number_id_is_before(void *raw_a, void *raw_b) return is_before; } + internal void lnk_serialize_pe_resource_tree(COFF_ObjWriter *obj_writer, PE_ResourceDir *root_dir) { @@ -520,18 +521,18 @@ lnk_serialize_pe_resource_tree(COFF_ObjWriter *obj_writer, PE_ResourceDir *root_ struct Stack *stack = push_array(scratch.arena, struct Stack, 1); // init stack { - PE_Resource root_wrapper = {0}; - root_wrapper.id.type = COFF_ResourceIDType_Number; - root_wrapper.id.u.number = 0; - root_wrapper.kind = PE_ResDataKind_DIR; - root_wrapper.u.dir = root_dir; + PE_Resource *root_wrapper = push_array(scratch.arena, PE_Resource, 1); + root_wrapper->id.type = COFF_ResourceIDType_Number; + root_wrapper->id.u.number = 0; + root_wrapper->kind = PE_ResDataKind_DIR; + root_wrapper->u.dir = root_dir; - COFF_ResourceDirEntry root_dir = {0}; + COFF_ResourceDirEntry *root_dir = push_array(scratch.arena, COFF_ResourceDirEntry, 1); stack->res_arr[0].count = 1; - stack->res_arr[0].v = &root_wrapper; + stack->res_arr[0].v = root_wrapper; - stack->coff_entry_arr[0] = &root_dir; + stack->coff_entry_arr[0] = root_dir; stack->coff_entry_arr[1] = 0; } From e65d1536b69f5dc53d843ad7c4de696bf793dfbe Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 29 May 2025 23:02:36 -0700 Subject: [PATCH 176/372] dynamic loader crashes if the import data is not in a stand-alone section --- src/linker/lnk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 701776f0..855b9477 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -215,7 +215,7 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".xdata=.rdata"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".tls=.data"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".edata=.rdata"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".idata=.rdata"); + //lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".idata=.rdata"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".didat=.data"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".RAD_LINK_PE_DEBUG_DIR=.rdata"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".RAD_LINK_PE_DEBUG_DATA=.rdata"); From e1278a654534f4ccae3bd8dfefc9bf0820ecb56e Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 29 May 2025 23:03:15 -0700 Subject: [PATCH 177/372] null terminate static imports --- src/pe/pe_make_import_table.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pe/pe_make_import_table.c b/src/pe/pe_make_import_table.c index a2d0246b..9ef5a2a5 100644 --- a/src/pe/pe_make_import_table.c +++ b/src/pe/pe_make_import_table.c @@ -310,6 +310,9 @@ pe_make_import_dll_obj_static(Arena *arena, COFF_TimeStamp time_stamp, COFF_Mach } } + str8_list_push(obj_writer->arena, &ilt_sect->data, str8(0, coff_word_size_from_machine(machine))); + str8_list_push(obj_writer->arena, &iat_sect->data, str8(0, coff_word_size_from_machine(machine))); + String8 dll_obj = coff_obj_writer_serialize(arena, obj_writer); coff_obj_writer_release(&obj_writer); return dll_obj; From c82b98cd49bb316954dc7c7b2d404bdc13944a16 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 29 May 2025 23:07:18 -0700 Subject: [PATCH 178/372] assign section index to .reloc --- src/linker/lnk.c | 35 +++++++++++++--------------------- src/linker/lnk_debug_info.c | 6 ++++-- src/linker/lnk_section_table.c | 14 ++++++++++++++ src/linker/lnk_section_table.h | 5 +++++ 4 files changed, 36 insertions(+), 24 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 855b9477..14ca6ef0 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1843,19 +1843,22 @@ lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config, U6 U64 total_entry_count = 0; total_entry_count += page->entries_addr32.count; total_entry_count += page->entries_addr64.count; + + U32 *page_voff_ptr; + U32 *block_size_ptr; + U16 *reloc_arr_base; // push buffer - U64 buf_align = sizeof(U32); - U64 buf_size = AlignPow2(sizeof(U32)*2 + sizeof(U16)*total_entry_count, buf_align); - U8 *buf = push_array_no_zero(arena, U8, buf_size); + U64 buf_size = AlignPow2(sizeof(*page_voff_ptr) + sizeof(*block_size_ptr) + sizeof(*reloc_arr_base)*total_entry_count, sizeof(U32)); + void *buf = push_array_no_zero(arena, U8, buf_size); // setup pointers into buffer - U32 *page_voff_ptr = (U32*)buf; - U32 *block_size_ptr = page_voff_ptr + 1; - U16 *reloc_arr_base = (U16*)(block_size_ptr + 1); - U16 *reloc_arr_ptr = reloc_arr_base; + page_voff_ptr = buf; + block_size_ptr = page_voff_ptr + 1; + reloc_arr_base = (U16*)(block_size_ptr + 1); // write 32-bit relocations + U16 *reloc_arr_ptr = reloc_arr_base; for (U64Node *i = page->entries_addr32.first; i != 0; i = i->next) { // was base reloc_entry made? if (hash_table_search_u64(voff_ht, i->data)) { @@ -1898,7 +1901,7 @@ lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config, U6 Assert(*block_size_ptr <= buf_size); // push page - str8_list_push(arena, &result, str8(buf, block_size)); + str8_list_push(arena, &result, str8(buf, buf_size)); // purge voffs for next page hash_table_purge(voff_ht); @@ -2431,21 +2434,8 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S } // assign section indices to sections - { - U64 sect_idx = 0; - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - sect_n->data.sect_idx = sect_idx++; - } - } - - // assign section indices to contribs for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - LNK_Section *sect = §_n->data; - for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { - for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { - sc_chunk->v[sc_idx]->u.sect_idx = sect->sect_idx; - } - } + lnk_assign_section_index(§_n->data, sectab->next_sect_idx++); } // assing layout offsets and sizes to merged sections @@ -2889,6 +2879,7 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S lnk_finalize_section_layout(sectab, reloc, config->file_align); lnk_assign_section_virtual_space(reloc, config->sect_align, &voff_cursor); + lnk_assign_section_index(reloc, sectab->next_sect_idx++); sects = lnk_section_array_from_list(scratch.arena, sectab->list); expected_image_header_size = lnk_compute_win32_image_header_size(config, sects.count); diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index 1d0341ec..451f7377 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -3284,14 +3284,16 @@ lnk_build_pdb(TP_Context *tp, { Rng1U64Array image_section_file_ranges = {0}; - image_section_file_ranges.count = image_section_table_count; + image_section_file_ranges.count = 0; image_section_file_ranges.v = push_array(scratch.arena, Rng1U64, image_section_table_count); Rng1U64Array image_section_virt_ranges = {0}; image_section_virt_ranges.count = image_section_table_count; image_section_virt_ranges.v = push_array(scratch.arena, Rng1U64, image_section_table_count); for (U64 i = 0; i < image_section_table_count; i += 1) { COFF_SectionHeader *sect_header = image_section_table[i]; - image_section_file_ranges.v[i] = rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize); + if (~sect_header->flags & COFF_SectionFlag_CntUninitializedData) { + image_section_file_ranges.v[image_section_file_ranges.count++] = rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize); + } image_section_virt_ranges.v[i] = rng_1u64(sect_header->voff, sect_header->voff + sect_header->vsize); } diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index d6898a51..dd902632 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -442,6 +442,20 @@ lnk_finalize_section_layout(LNK_SectionTable *sectab, LNK_Section *sect, U64 fil sect->vsize = cursor; } + +internal void +lnk_assign_section_index(LNK_Section *sect, U64 sect_idx) +{ + sect->sect_idx = sect_idx; + + // assign section indices to contribs + for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { + for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { + sc_chunk->v[sc_idx]->u.sect_idx = sect_idx; + } + } +} + internal void lnk_assign_section_virtual_space(LNK_Section *sect, U64 sect_align, U64 *voff_cursor) { diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index de8d988c..28d603eb 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -138,3 +138,8 @@ internal void lnk_section_table_merge(LNK_SectionTable *sectab, L internal LNK_SectionArray lnk_section_table_get_output_sections(Arena *arena, LNK_SectionTable *sectab); internal LNK_Section * lnk_finalized_section_from_id(LNK_SectionTable *sectab, U64 id); +internal LNK_SectionArray lnk_section_table_get_output_sections(Arena *arena, LNK_SectionTable *sectab); +internal void lnk_finalize_section_layout(LNK_SectionTable *sectab, LNK_Section *sect, U64 file_align); +internal void lnk_assign_section_index(LNK_Section *sect, U64 sect_idx); +internal void lnk_assign_section_virtual_space(LNK_Section *sect, U64 sect_align, U64 *voff_cursor); +internal void lnk_assign_section_file_space(LNK_Section *sect, U64 *foff_cursor); From aae3874521466a0b748a9375aec169582f25c271 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 1 Jun 2025 18:04:46 -0700 Subject: [PATCH 179/372] disable TLS merge for now --- src/linker/lnk.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 14ca6ef0..cea78b23 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -213,7 +213,8 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) // default section merges lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".xdata=.rdata"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".tls=.data"); + // TODO: .tls must be always first contribution in .data section because compiler generates TLS relative movs + //lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".tls=.data"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".edata=.rdata"); //lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".idata=.rdata"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".didat=.data"); From f055267e59a4fb3f1d0a85ba0c03efd25b30493e Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 1 Jun 2025 18:05:19 -0700 Subject: [PATCH 180/372] remove double init and equip of thread contexts --- src/linker/thread_pool/thread_pool.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/linker/thread_pool/thread_pool.c b/src/linker/thread_pool/thread_pool.c index 066efdd4..a99c821e 100644 --- a/src/linker/thread_pool/thread_pool.c +++ b/src/linker/thread_pool/thread_pool.c @@ -31,7 +31,6 @@ tp_run_tasks(TP_Context *pool, TP_Worker *worker) internal void tp_worker_main(void *raw_worker) { - TCTX tctx_; tctx_init_and_equip(&tctx_); TP_Worker *worker = raw_worker; TP_Context *pool = worker->pool; for (; pool->is_live; ) { @@ -44,7 +43,6 @@ tp_worker_main(void *raw_worker) internal void tp_worker_main_shared(void *raw_worker) { - TCTX tctx_; tctx_init_and_equip(&tctx_); TP_Worker *worker = raw_worker; TP_Context *pool = worker->pool; for (; pool->is_live; ) { From 578a7ebdee6e38c972d95cd3801fee473ec4112f Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 1 Jun 2025 19:36:01 -0700 Subject: [PATCH 181/372] factor out pdata code to PE layer --- src/linker/lnk.c | 26 ++------------------------ src/pe/pe.c | 25 +++++++++++++++++++++++++ src/pe/pe.h | 4 ++++ 3 files changed, 31 insertions(+), 24 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index cea78b23..abbe2e79 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2138,15 +2138,6 @@ lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config return result; } -internal int -lnk_pdata_is_before_x8664(void *raw_a, void *raw_b) -{ - PE_IntelPdata *a = raw_a; - PE_IntelPdata *b = raw_b; - int is_before = a->voff_first < b->voff_first; - return is_before; -} - internal String8 lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs) { @@ -3068,21 +3059,8 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S { LNK_Section *pdata_sect = lnk_section_table_search(sectab, str8_lit(".pdata"), PE_PDATA_SECTION_FLAGS); if (pdata_sect) { - String8 pdata = str8_substr(image_data, rng_1u64(pdata_sect->foff, pdata_sect->foff + pdata_sect->vsize)); - - ProfBegin("Sort Exception Info"); - if (pdata_sect) { - switch (config->machine) { - case COFF_MachineType_Unknown: break; - case COFF_MachineType_X86: - case COFF_MachineType_X64: { - U64 count = pdata.size / sizeof(PE_IntelPdata); - radsort((PE_IntelPdata *)pdata.str, count, lnk_pdata_is_before_x8664); - } break; - default: { NotImplemented; } break; - } - } - ProfEnd(); + String8 raw_pdata = str8_substr(image_data, rng_1u64(pdata_sect->foff, pdata_sect->foff + pdata_sect->vsize)); + pe_pdata_sort(config->machine, raw_pdata); PE_DataDirectory *pdata_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_EXCEPTIONS); pdata_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, pdata_sect); diff --git a/src/pe/pe.c b/src/pe/pe.c index 1cb63a53..a8e2ea3a 100644 --- a/src/pe/pe.c +++ b/src/pe/pe.c @@ -1790,3 +1790,28 @@ pe_has_plus_header(COFF_MachineType machine) } return has_plus_header; } + +//////////////////////////////// + +internal int +pe_pdata_is_before_x86_64(void *raw_a, void *raw_b) +{ + PE_IntelPdata *a = raw_a, *b = raw_b; + return a->voff_first < b->voff_first; +} + +internal void +pe_pdata_sort(COFF_MachineType machine, String8 raw_pdata) +{ + ProfBeginFunction(); + switch (machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X86: + case COFF_MachineType_X64: { + U64 count = raw_pdata.size / sizeof(PE_IntelPdata); + radsort((PE_IntelPdata *)raw_pdata.str, count, pe_pdata_is_before_x86_64); + } break; + default: { NotImplemented; } break; + } + ProfEnd(); +} diff --git a/src/pe/pe.h b/src/pe/pe.h index 3dbaeea2..cc225ffc 100644 --- a/src/pe/pe.h +++ b/src/pe/pe.h @@ -1106,4 +1106,8 @@ internal String8 pe_make_debug_header_rdi(Arena *arena, Guid guid, String8 rdi_p internal U32 pe_compute_checksum(U8 *buffer, U64 buffer_size); +//////////////////////////////// + +internal void pe_pdata_sort(COFF_MachineType machine, String8 raw_pdata); + #endif // PE_H From a4b2d40d157ec1ba0866d302fba1fd06a727424c Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 1 Jun 2025 19:36:37 -0700 Subject: [PATCH 182/372] fix sizeof section headers --- src/linker/lnk.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index abbe2e79..4e932f71 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2000,13 +2000,14 @@ lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config sizeof_uninited_data += sect->vsize; } if (sect->flags & COFF_SectionFlag_CntInitializedData) { - sizeof_inited_data += sect->fsize; + sizeof_inited_data += sect->vsize; } if (sect->flags & COFF_SectionFlag_CntCode) { - sizeof_code += sect->fsize; + sizeof_code += sect->vsize; } - sizeof_image = AlignPow2(Max(sizeof_image, sects.v[sect_idx]->voff + sects.v[sect_idx]->vsize), 4096); + sizeof_image = Max(sizeof_image, sects.v[sect_idx]->voff + sects.v[sect_idx]->vsize); } + sizeof_image = AlignPow2(sizeof_image, 4096); // // compute image headers size @@ -2016,6 +2017,7 @@ lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config sizeof_image_headers += sizeof(COFF_FileHeader); sizeof_image_headers += has_pe_plus_header ? sizeof(PE_OptionalHeader32Plus) : sizeof(PE_OptionalHeader32); sizeof_image_headers += sizeof(PE_DataDirectory) * config->data_dir_count; + sizeof_image_headers += sizeof(COFF_SectionHeader) * sects.count; sizeof_image_headers = AlignPow2(sizeof_image_headers, config->file_align); // From 881050addf359b7799ccfc141fd12cc814f197e8 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 1 Jun 2025 19:36:57 -0700 Subject: [PATCH 183/372] add default merges and section removes --- src/linker/lnk.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 4e932f71..95c259d6 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -213,6 +213,7 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) // default section merges lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".xdata=.rdata"); + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".00cfg=.rdata"); // TODO: .tls must be always first contribution in .data section because compiler generates TLS relative movs //lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".tls=.data"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".edata=.rdata"); @@ -223,6 +224,9 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) // sections to remove from the image lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_RemoveSection, ".debug"); + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_RemoveSection, ".gehcont"); + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_RemoveSection, ".gfids"); + lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_RemoveSection, ".gxfg"); // set default max worker count if (lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Rad_SharedThreadPool)) { From 47ef37ed8ec14742e2d687f9eddb7b1568922fcc Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 2 Jun 2025 00:08:12 -0700 Subject: [PATCH 184/372] fix section order --- src/linker/lnk.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 95c259d6..f0f9d7d4 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1082,11 +1082,16 @@ lnk_section_contrib_ptr_is_before(void *raw_a, void *raw_b) int cmp; - // place sections without sort postfix first - if (a->u.sort_idx_size == 0 && b->u.sort_idx_size > 0) { - cmp = -1; - } else if (a->u.sort_idx_size > 0 && b->u.sort_idx_size == 0) { - cmp = +1; + if (a->u.sort_idx_size <= 1 && b->u.sort_idx_size <= 1) { + if (a->u.sort_idx_size == b->u.sort_idx_size) { + cmp = cmp = u32_compar(&a->u.obj_idx, &b->u.obj_idx); + if (cmp == 0) { + cmp = u32_compar(&a->u.obj_sect_idx, &b->u.obj_sect_idx); + } + } else { + // place sections without sort postfix first + cmp = a->u.sort_idx_size < b->u.sort_idx_size; + } } else { // sort on section postfix String8 a_sort_idx = str8(a->u.sort_idx, a->u.sort_idx_size); From e971db7fdd9ad844b812ff05232dc68776d0edd8 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 1 Jun 2025 19:39:43 -0700 Subject: [PATCH 185/372] remove unused layout flag in section struct --- src/linker/lnk.c | 101 +++++++++++++++------------------ src/linker/lnk_section_table.c | 9 +-- src/linker/lnk_section_table.h | 1 - 3 files changed, 50 insertions(+), 61 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index f0f9d7d4..8bb50e90 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1999,9 +1999,6 @@ lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config U64 sizeof_image = 0; for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { LNK_Section *sect = sects.v[sect_idx]; - if ( ! sect->has_layout) { - continue; - } if (code_base == 0 && sect->flags & COFF_SectionFlag_CntCode) { code_base = sect->voff; } @@ -2091,9 +2088,6 @@ lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config { for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { LNK_Section *sect = sects.v[sect_idx]; - if (!sect->has_layout) { - continue; - } COFF_SectionHeader *coff_section = &coff_section_table[sect_idx]; @@ -3423,69 +3417,68 @@ lnk_build_rad_chunk_map(Arena *arena, String8 image_data, U64 thread_count, LNK_ str8_list_pushf(arena, &map, "# SECTIONS\n"); for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { LNK_Section *sect = §_n->data; - if (sect->has_layout) { - str8_list_pushf(arena, &map, "%S\n", sect->name); - str8_list_pushf(arena, &map, "%-8s %-8s %-8s %-8s %-16s %-8s %s\n", "FileOff", "VirtOff", "VirtSize", "FileSize", "Blake3", "SC", "Source"); - for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { - for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { - Temp temp = temp_begin(scratch.arena); - LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; + str8_list_pushf(arena, &map, "%S\n", sect->name); + str8_list_pushf(arena, &map, "%-8s %-8s %-8s %-8s %-16s %-8s %s\n", "FileOff", "VirtOff", "VirtSize", "FileSize", "Blake3", "SC", "Source"); - U64 file_off = image_section_table[sc->u.sect_idx]->foff + sc->u.off; - U64 virt_off = image_section_table[sc->u.sect_idx]->voff + sc->u.off; - U64 virt_size = sc->u.size; - U64 file_size = sc->u.size; - String8 sc_data = str8_substr(image_data, rng_1u64(file_off, file_off + virt_size)); + for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { + for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { + Temp temp = temp_begin(scratch.arena); + LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; - U128 sc_hash = {0}; - if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { - blake3_hasher hasher; blake3_hasher_init(&hasher); - blake3_hasher_update(&hasher, sc_data.str, sc_data.size); - blake3_hasher_finalize(&hasher, (U8 *)&sc_hash, sizeof(sc_hash)); - } + U64 file_off = image_section_table[sc->u.sect_idx]->foff + sc->u.off; + U64 virt_off = image_section_table[sc->u.sect_idx]->voff + sc->u.off; + U64 virt_size = sc->u.size; + U64 file_size = sc->u.size; + String8 sc_data = str8_substr(image_data, rng_1u64(file_off, file_off + virt_size)); - String8 file_off_str = push_str8f(temp.arena, "%08x", file_off); - String8 virt_off_str = push_str8f(temp.arena, "%08x", virt_off); - String8 virt_size_str = push_str8f(temp.arena, "%08x", virt_size); - String8 file_size_str = push_str8f(temp.arena, "%08x", file_size); - String8 sc_hash_str = push_str8f(temp.arena, "%08x%08x", sc_hash.u64[0], sc_hash.u64[1]); - String8 sc_idx_str = push_str8f(temp.arena, "%llx", sc_idx); - String8 source_str; - { - String8List source_list = {0}; + U128 sc_hash = {0}; + if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { + blake3_hasher hasher; blake3_hasher_init(&hasher); + blake3_hasher_update(&hasher, sc_data.str, sc_data.size); + blake3_hasher_finalize(&hasher, (U8 *)&sc_hash, sizeof(sc_hash)); + } + + String8 file_off_str = push_str8f(temp.arena, "%08x", file_off); + String8 virt_off_str = push_str8f(temp.arena, "%08x", virt_off); + String8 virt_size_str = push_str8f(temp.arena, "%08x", virt_size); + String8 file_size_str = push_str8f(temp.arena, "%08x", file_size); + String8 sc_hash_str = push_str8f(temp.arena, "%08x%08x", sc_hash.u64[0], sc_hash.u64[1]); + String8 sc_idx_str = push_str8f(temp.arena, "%llx", sc_idx); + String8 source_str; + { + String8List source_list = {0}; #if 0 - // location - if (chunk->obj) { - if (chunk->obj->lib_path.size) { - String8 lib_name = chunk->obj->lib_path; - lib_name = str8_skip_last_slash(lib_name); - lib_name = str8_chop_last_dot(lib_name); + // location + if (chunk->obj) { + if (chunk->obj->lib_path.size) { + String8 lib_name = chunk->obj->lib_path; + lib_name = str8_skip_last_slash(lib_name); + lib_name = str8_chop_last_dot(lib_name); - String8 obj_name = chunk->obj->path; - obj_name = str8_skip_last_slash(obj_name); + String8 obj_name = chunk->obj->path; + obj_name = str8_skip_last_slash(obj_name); - str8_list_pushf(temp.arena, &source_list, "%S:%S", lib_name, obj_name); - } else { - str8_list_push(temp.arena, &source_list, chunk->obj->path); - } + str8_list_pushf(temp.arena, &source_list, "%S:%S", lib_name, obj_name); + } else { + str8_list_push(temp.arena, &source_list, chunk->obj->path); } + } #else - str8_list_pushf(temp.arena, &source_list, ""); + str8_list_pushf(temp.arena, &source_list, ""); #endif - // string join - source_str = str8_list_join(temp.arena, &source_list, &(StringJoin){.sep=str8_lit(" ")}); - } - - str8_list_pushf(arena, &map, "%-8S %-8S %-8S %-8S %-16S %-8S %S\n", file_off_str, virt_off_str, virt_size_str, file_size_str, sc_hash, sc_idx_str, source_str); - - temp_end(temp); + // string join + source_str = str8_list_join(temp.arena, &source_list, &(StringJoin){.sep=str8_lit(" ")}); } + + str8_list_pushf(arena, &map, "%-8S %-8S %-8S %-8S %-16S %-8S %S\n", file_off_str, virt_off_str, virt_size_str, file_size_str, sc_hash, sc_idx_str, source_str); + + temp_end(temp); } - str8_list_pushf(arena, &map, "\n"); } + str8_list_pushf(arena, &map, "\n"); } ProfEnd(); diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index dd902632..402af6c8 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -184,7 +184,6 @@ lnk_section_table_push(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags sect->id = sectab->id_max++; sect->name = push_str8_copy(sectab->arena, name); sect->flags = flags; - sect->has_layout = 1; LNK_SectionList *sect_list = §ab->list; SLLQueuePush(sect_list->first, sect_list->last, sect_node); @@ -396,11 +395,9 @@ lnk_section_table_get_output_sections(Arena *arena, LNK_SectionTable *sectab) result.v = push_array(arena, LNK_Section *, sectab->list.count); for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != 0; sect_node = sect_node->next) { - if (sect_node->data.has_layout) { - Assert(result.count < sectab->list.count); - result.v[result.count] = §_node->data; - result.count += 1; - } + Assert(result.count < sectab->list.count); + result.v[result.count] = §_node->data; + result.count += 1; } U64 unused_entry_count = sectab->list.count - result.count; diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index 28d603eb..b9f48eab 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -64,7 +64,6 @@ typedef struct LNK_Section U64 id; String8 name; COFF_SectionFlags flags; - B32 has_layout; B32 is_merged; U64 merge_id; LNK_SectionContribChunkList contribs; From 1c08db270578048c19b8450dc325d0c974368ede Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 2 Jun 2025 00:11:02 -0700 Subject: [PATCH 186/372] move image, import lib, and debug info builders outside of the state machine --- src/linker/lnk.c | 492 ++++++++++++++++++------------------ src/linker/lnk.h | 26 +- src/linker/lnk_debug_info.c | 6 +- src/linker/lnk_debug_info.h | 2 +- 4 files changed, 273 insertions(+), 253 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 8bb50e90..faa8c3e7 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2143,18 +2143,19 @@ lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config return result; } -internal String8 -lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs) +internal LNK_ImageContext +lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs) { + ProfBegin("Image"); + lnk_timer_begin(LNK_Timer_Image); + Temp scratch = scratch_begin(arena->v, arena->count); - // // init section table - // LNK_SectionTable *sectab = lnk_section_table_alloc(); lnk_section_table_push(sectab, str8_lit(".text"), PE_TEXT_SECTION_FLAGS); - lnk_section_table_push(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); lnk_section_table_push(sectab, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS); + lnk_section_table_push(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); { ProfBegin("Remove Associative Sections"); @@ -3244,8 +3245,14 @@ lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_S ProfEnd(); } + LNK_ImageContext image_ctx = {0}; + image_ctx.image_data = image_data; + image_ctx.sectab = sectab; + + lnk_timer_end(LNK_Timer_Image); + ProfEnd(); // :EndImage scratch_end(scratch); - return image_data; + return image_ctx; } //////////////////////////////// @@ -3403,7 +3410,7 @@ lnk_run_symbol_finder(TP_Context *tp, //////////////////////////////// internal String8List -lnk_build_rad_chunk_map(Arena *arena, String8 image_data, U64 thread_count, LNK_ObjList objs, LNK_LibList lib_index[LNK_InputSource_Count], LNK_SectionTable *sectab) +lnk_build_rad_map(Arena *arena, String8 image_data, U64 thread_count, U64 objs_count, LNK_Obj **objs, LNK_LibList lib_index[LNK_InputSource_Count], LNK_SectionTable *sectab) { ProfBeginFunction(); Temp scratch = scratch_begin(&arena, 1); @@ -3486,8 +3493,8 @@ lnk_build_rad_chunk_map(Arena *arena, String8 image_data, U64 thread_count, LNK_ ProfBegin("SYMBOLS"); str8_list_pushf(arena, &map, "# SYMBOLS\n"); str8_list_pushf(arena, &map, "%-8s %s\n", "Sect:Idx", "Symbol"); - for (LNK_ObjNode *obj_n = objs.first; obj_n != 0; obj_n = obj_n->next) { - LNK_Obj *obj = &obj_n->data; + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; COFF_ParsedSymbol symbol; for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { @@ -3534,50 +3541,8 @@ lnk_build_rad_chunk_map(Arena *arena, String8 image_data, U64 thread_count, LNK_ //////////////////////////////// -internal void -lnk_log_timers(void) -{ - Temp scratch = scratch_begin(0, 0); - - U64 total_build_time_micro = 0; - for (U64 i = 0; i < LNK_Timer_Count; ++i) { - total_build_time_micro += g_timers[i].end - g_timers[i].begin; - } - - String8List output_list = {0}; - str8_list_pushf(scratch.arena, &output_list, "------ Link Times --------------------------------------------------------------"); - for (U64 i = 0; i < LNK_Timer_Count; ++i) { - U64 build_time_micro = g_timers[i].end - g_timers[i].begin; - if (build_time_micro != 0) { - String8 timer_name = lnk_string_from_timer_type(i); - DateTime time = date_time_from_micro_seconds(build_time_micro); - String8 time_str = string_from_elapsed_time(scratch.arena, time); - str8_list_pushf(scratch.arena, &output_list, " %-5S Time: %S", timer_name, time_str); - } - } - - DateTime total_time = date_time_from_micro_seconds(total_build_time_micro); - String8 total_time_str = string_from_elapsed_time(scratch.arena, total_time); - str8_list_pushf(scratch.arena, &output_list, " Total Time: %S", total_time_str); - - StringJoin new_line_join = { str8_lit_comp(""), str8_lit_comp("\n"), str8_lit_comp("") }; - String8 output = str8_list_join(scratch.arena, &output_list, &new_line_join); - lnk_log(LNK_Log_Timers, "%S\n", output); - - scratch_end(scratch); -} - -internal void -lnk_write_thread(void *raw_ctx) -{ - ProfBeginFunction(); - LNK_WriteThreadContext *ctx = raw_ctx; - lnk_write_data_to_file_path(ctx->path, ctx->temp_path, ctx->data); - ProfEnd(); -} - -internal void -lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) +internal LNK_LinkContext +lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) { enum State { State_Null, @@ -3593,10 +3558,6 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) State_LookupWeak, State_LookupEntryPoint, State_ReportUnresolvedSymbols, - State_BuildImage, - State_BuildImpLib, - State_BuildRadChunkMap, - State_BuildDebugInfo, }; struct StateNode { struct StateNode *next; @@ -3621,15 +3582,15 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) Temp scratch = scratch_begin(tp_arena->v, tp_arena->count); // inputs - String8List include_symbol_list = config->include_symbol_list; - String8List input_disallow_lib_list = config->disallow_lib_list; - String8List input_manifest_path_list = str8_list_copy(scratch.arena, &config->input_list[LNK_Input_Manifest]); - String8List manifest_dep_list = str8_list_copy(scratch.arena, &config->manifest_dependency_list); - PE_ExportParseList export_symbol_list = {0}; - HashTable *export_ht = hash_table_init(scratch.arena, max_U16/2); - LNK_InputObjList input_obj_list = {0}; - LNK_InputImportList input_import_list = {0}; - LNK_SymbolList input_weak_list = {0}; + String8List include_symbol_list = config->include_symbol_list; + String8List input_disallow_lib_list = config->disallow_lib_list; + String8List input_manifest_path_list = str8_list_copy(scratch.arena, &config->input_list[LNK_Input_Manifest]); + String8List manifest_dep_list = str8_list_copy(scratch.arena, &config->manifest_dependency_list); + PE_ExportParseList export_symbol_list = {0}; + HashTable *export_ht = hash_table_init(scratch.arena, max_U16/2); + LNK_InputObjList input_obj_list = {0}; + LNK_InputImportList input_import_list = {0}; + LNK_SymbolList input_weak_list = {0}; LNK_InputLibList input_libs[LNK_InputSource_Count] = { config->input_list[LNK_Input_Lib], // command line libs config->input_default_lib_list // default libs @@ -3663,12 +3624,7 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) U64 entry_point_lookup_attempts = 0; B32 report_unresolved_symbols = 1; B32 input_linker_objs = 1; - B32 build_imp_lib = config->build_imp_lib; - B32 build_rad_chunk_map = (config->rad_chunk_map == LNK_SwitchState_Yes); - B32 build_debug_info = lnk_do_debug_info(config); - String8 image_data = str8_zero(); - OS_Handle image_write_thread = {0}; - + // // Init state machine // @@ -3692,7 +3648,7 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) // Push config exports // for (PE_ExportParseNode *exp_n = config->export_symbol_list.first; exp_n != 0; exp_n = exp_n->next) { - lnk_push_export(scratch.arena, export_ht, &export_symbol_list, &include_symbol_list, exp_n->data); + lnk_push_export(tp_arena->v[0], export_ht, &export_symbol_list, &include_symbol_list, exp_n->data); } // @@ -3702,9 +3658,6 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) lnk_symbol_table_push_alt_name(symtab, 0, alt_n->data.from, alt_n->data.to); } - ProfBegin("Image"); // :EndImage - lnk_timer_begin(LNK_Timer_Image); - // run states for (;;) { while (state_list.count) { @@ -3904,7 +3857,7 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Export].first; dir != 0; dir = dir->next) { PE_ExportParse export_parse = {0}; lnk_parse_export_directive_ex(scratch.arena, dir->value_list, obj->path, obj->lib_path, &export_parse); - lnk_push_export(scratch.arena, export_ht, &export_symbol_list, &include_symbol_list, export_parse); + lnk_push_export(tp_arena->v[0], export_ht, &export_symbol_list, &include_symbol_list, export_parse); } } @@ -3918,7 +3871,9 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) for (String8Node *value_n = dir->value_list.first; value_n != 0; value_n = value_n->next) { LNK_MergeDirective merge_dir; if (lnk_parse_merge_directive(value_n->string, &merge_dir)) { - lnk_merge_directive_list_push(scratch.arena, &config->merge_list, merge_dir); + merge_dir.src = push_str8_copy(tp_arena->v[0], merge_dir.src); + merge_dir.dst = push_str8_copy(tp_arena->v[0], merge_dir.dst); + lnk_merge_directive_list_push(tp_arena->v[0], &config->merge_list, merge_dir); } else { lnk_error_obj(LNK_Warning_IllData, obj, "can't parse merge directive \"%S\"", value_n->string); } @@ -3946,6 +3901,8 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) for (String8Node *string_n = dir->value_list.first; string_n != 0; string_n = string_n->next) { LNK_AltName alt_name; if (lnk_parse_alt_name_directive(string_n->string, &alt_name)) { + alt_name.from = push_str8_copy(tp_arena->v[0], alt_name.from); + alt_name.to = push_str8_copy(tp_arena->v[0], alt_name.to); lnk_symbol_table_push_alt_name(symtab, obj, alt_name.from, alt_name.to); } else { lnk_error_obj(LNK_Error_Cmdl, obj, "syntax error in \"%S\", expected format \"FROM=TO\"", string_n->string); @@ -4270,7 +4227,7 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->path = str8_lit("* Linker Symbols *"); input->dedup_id = input->path; - input->data = lnk_make_linker_obj(scratch.arena, config); + input->data = lnk_make_linker_obj(tp_arena->v[0], config); ProfEnd(); } @@ -4297,23 +4254,22 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) String8 import_debug_symbols = lnk_make_dll_import_debug_symbols(scratch.arena, config->machine, dll_names[dll_idx]); LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->input_idx = input_obj_list.count; - input->data = pe_make_import_dll_obj_delayed(scratch.arena, time_stamp, config->machine, dll_names[dll_idx], delay_load_helper_name, import_debug_symbols, *dll_import_headers[dll_idx], emit_biat, emit_uiat); + input->data = pe_make_import_dll_obj_delayed(tp_arena->v[0], time_stamp, config->machine, dll_names[dll_idx], delay_load_helper_name, import_debug_symbols, *dll_import_headers[dll_idx], emit_biat, emit_uiat); input->path = dll_names[dll_idx]; input->dedup_id = input->path; - //os_write_data_to_file_path(str8_lit("delay_imp.obj"), input->data); } - String8 linker_debug_symbols = lnk_make_linker_debug_symbols(scratch.arena, config->machine); + String8 linker_debug_symbols = lnk_make_linker_debug_symbols(tp_arena->v[0], config->machine); { LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->input_idx = input_obj_list.count; - input->data = pe_make_null_import_descriptor_delayed(scratch.arena, time_stamp, config->machine, linker_debug_symbols); + input->data = pe_make_null_import_descriptor_delayed(tp_arena->v[0], time_stamp, config->machine, linker_debug_symbols); input->path = str8_lit("* Delayed Null Import Descriptor *"); input->dedup_id = input->path; } { LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->input_idx = input_obj_list.count; - input->data = pe_make_null_thunk_data_obj_delayed(scratch.arena, lnk_get_image_name(config), time_stamp, config->machine, linker_debug_symbols); + input->data = pe_make_null_thunk_data_obj_delayed(tp_arena->v[0], lnk_get_image_name(config), time_stamp, config->machine, linker_debug_symbols); input->path = str8_lit("* Delayed Null Thunk Data *"); input->dedup_id = input->path; } @@ -4332,7 +4288,7 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) String8 import_debug_symbols = lnk_make_dll_import_debug_symbols(scratch.arena, config->machine, dll_names[dll_idx]); LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->input_idx = input_obj_list.count; - input->data = pe_make_import_dll_obj_static(scratch.arena, time_stamp, config->machine, dll_names[dll_idx], import_debug_symbols, *dll_import_headers[dll_idx]); + input->data = pe_make_import_dll_obj_static(tp_arena->v[0], time_stamp, config->machine, dll_names[dll_idx], import_debug_symbols, *dll_import_headers[dll_idx]); input->path = dll_names[dll_idx]; input->dedup_id = dll_names[dll_idx]; } @@ -4340,14 +4296,14 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) { LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->input_idx = input_obj_list.count; - input->data = pe_make_null_import_descriptor_obj(scratch.arena, time_stamp, config->machine, linker_debug_symbols); + input->data = pe_make_null_import_descriptor_obj(tp_arena->v[0], time_stamp, config->machine, linker_debug_symbols); input->path = str8_lit("* Null Import Descriptor *"); input->dedup_id = input->path; } { LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->input_idx = input_obj_list.count; - input->data = pe_make_null_thunk_data_obj(scratch.arena, lnk_get_image_name(config), time_stamp, config->machine, linker_debug_symbols); + input->data = pe_make_null_thunk_data_obj(tp_arena->v[0], lnk_get_image_name(config), time_stamp, config->machine, linker_debug_symbols); input->path = str8_lit("* Null Thunk Data *"); input->dedup_id = input->path; } @@ -4385,7 +4341,7 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } PE_FinalizedExports finalized_exports = pe_finalize_export_list(scratch.arena, resolved_exports); - String8 edata_obj = pe_make_edata_obj(scratch.arena, str8_skip_last_slash(config->image_name), COFF_TimeStamp_Max, config->machine, finalized_exports); + String8 edata_obj = pe_make_edata_obj(tp_arena->v[0], str8_skip_last_slash(config->image_name), COFF_TimeStamp_Max, config->machine, finalized_exports); LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->path = str8_lit("* Exports *"); @@ -4454,7 +4410,7 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfBegin("Build * Resources *"); String8 obj_name = str8_lit("* Resources *"); - String8 obj_data = lnk_make_res_obj(scratch.arena, + String8 obj_data = lnk_make_res_obj(tp_arena->v[0], res_data_list, res_path_list, config->machine, @@ -4472,13 +4428,13 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } } - if (build_debug_info) { + if (lnk_do_debug_info(config)) { { ProfBegin("Build * Linker * Obj"); String8 obj_name = str8_lit("* Linker *"); String8 raw_cmd_line = str8_list_join(scratch.arena, &config->raw_cmd_line, &(StringJoin){ str8_lit_comp(""), str8_lit_comp(" "), str8_lit_comp("") }); - String8 obj_data = lnk_make_linker_coff_obj(scratch.arena, config->time_stamp, config->machine, config->work_dir, config->image_name, config->pdb_name, raw_cmd_line, obj_name); + String8 obj_data = lnk_make_linker_coff_obj(tp_arena->v[0], config->time_stamp, config->machine, config->work_dir, config->image_name, config->pdb_name, raw_cmd_line, obj_name); LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->dedup_id = obj_name; @@ -4493,131 +4449,18 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->path = str8_lit("* Debug Directory PDB *"); input->dedup_id = input->path; - input->data = pe_make_debug_directory_pdb_obj(scratch.arena, config->machine, config->guid, config->age, config->time_stamp, config->pdb_alt_path); + input->data = pe_make_debug_directory_pdb_obj(tp_arena->v[0], config->machine, config->guid, config->age, config->time_stamp, config->pdb_alt_path); } if (config->rad_debug == LNK_SwitchState_Yes) { LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->path = str8_lit("* Debug Directory RDI *"); input->dedup_id = input->path; - input->data = pe_make_debug_directory_rdi_obj(scratch.arena, config->machine, config->guid, config->age, config->time_stamp, config->rad_debug_alt_path); + input->data = pe_make_debug_directory_rdi_obj(tp_arena->v[0], config->machine, config->guid, config->age, config->time_stamp, config->rad_debug_alt_path); } ProfEnd(); } } } break; - case State_BuildImage: { - // obj list -> array - U64 objs_count = obj_list.count; - LNK_Obj **objs = lnk_array_from_obj_list(scratch.arena, obj_list); - - // build image - image_data = lnk_build_win32_image(tp_arena, tp, config, symtab, objs_count, objs); - - // write image to disk in a background thread - { - LNK_WriteThreadContext *ctx = push_array(scratch.arena, LNK_WriteThreadContext, 1); - ctx->path = config->image_name; - ctx->temp_path = config->temp_image_name; - ctx->data = image_data; - image_write_thread = os_thread_launch(lnk_write_thread, ctx, 0); - } - - // log - { - if (lnk_get_log_status(LNK_Log_InputObj)) { - U64 total_input_size = 0; - for (LNK_ObjNode *obj_n = obj_list.first; obj_n != 0; obj_n = obj_n->next) { total_input_size += obj_n->data.data.size; } - lnk_log(LNK_Log_InputObj, "[Total Obj Input Size %M]", total_input_size); - } - if (lnk_get_log_status(LNK_Log_InputLib)) { - U64 total_input_size = 0; - for (U64 i = 0; i < ArrayCount(lib_index); ++i) { - LNK_LibList list = lib_index[i]; - for (LNK_LibNode *lib_n = list.first; lib_n != 0; lib_n = lib_n->next) { total_input_size += lib_n->data.data.size; } - } - lnk_log(LNK_Log_InputLib, "[Total Lib Input Size %M]", total_input_size); - } - } - - lnk_timer_end(LNK_Timer_Image); - ProfEnd(); // :EndImage - } break; - case State_BuildImpLib: { - ProfBegin("Build Imp Lib"); - lnk_timer_begin(LNK_Timer_Lib); - String8 linker_debug_symbols = lnk_make_linker_debug_symbols(scratch.arena, config->machine); - String8List lib_list = pe_make_import_lib(tp_arena->v[0], config->machine, config->time_stamp, str8_skip_last_slash(config->image_name), linker_debug_symbols, export_symbol_list); - lnk_write_data_list_to_file_path(config->imp_lib_name, str8_zero(), lib_list); - lnk_timer_end(LNK_Timer_Lib); - ProfEnd(); - } break; - case State_BuildRadChunkMap: { - ProfBegin("RAD Chunk Map"); - String8List map = lnk_build_rad_chunk_map(scratch.arena, image_data, config->worker_count, obj_list, lib_index, sectab); - lnk_write_data_list_to_file_path(config->rad_chunk_map_name, config->temp_rad_chunk_map_name, map); - ProfEnd(); - } break; - case State_BuildDebugInfo: { - ProfBegin("Debug Info"); - lnk_timer_begin(LNK_Timer_Debug); - - LNK_CodeViewInput input = lnk_make_code_view_input(tp, tp_arena, config->lib_dir_list, obj_list); - CV_DebugT *types = lnk_import_types(tp, tp_arena, &input); - - if (config->rad_debug == LNK_SwitchState_Yes) { - lnk_timer_begin(LNK_Timer_Rdi); - RDI_Arch arch = rdi_arch_from_coff_machine(config->machine); - LNK_SectionArray image_sects = lnk_section_table_get_output_sections(scratch.arena, sectab); - - String8List rdi_data = lnk_build_rad_debug_info(tp, - tp_arena, - config->target_os, - arch, - config->image_name, - image_data, - image_sects, - input.count, - input.obj_arr, - input.debug_s_arr, - input.total_symbol_input_count, - input.symbol_inputs, - input.parsed_symbols, - types); - - lnk_write_data_list_to_file_path(config->rad_debug_name, config->temp_rad_debug_name, rdi_data); - - lnk_timer_end(LNK_Timer_Rdi); - } - - // TODO: Parallel debug info builds are currently blocked by the patch - // strings in $$FILE_CHECKSUM step in `lnk_process_c13_data_task`. - if (config->debug_mode == LNK_DebugMode_Full) { - lnk_timer_begin(LNK_Timer_Pdb); - - if (config->pdb_hash_type_names != LNK_TypeNameHashMode_Null && config->pdb_hash_type_names != LNK_TypeNameHashMode_None) { - lnk_replace_type_names_with_hashes(tp, tp_arena, types[CV_TypeIndexSource_TPI], config->pdb_hash_type_names, config->pdb_hash_type_name_length, config->pdb_hash_type_name_map); - } - - String8List pdb_data = lnk_build_pdb(tp, - tp_arena, - image_data, - config, - symtab, - input.count, - input.obj_arr, - input.debug_s_arr, - input.total_symbol_input_count, - input.symbol_inputs, - input.parsed_symbols, - types); - - lnk_write_data_list_to_file_path(config->pdb_name, config->temp_pdb_name, pdb_data); - lnk_timer_end(LNK_Timer_Pdb); - } - - lnk_timer_end(LNK_Timer_Debug); - ProfEnd(); - } break; } } @@ -4681,53 +4524,216 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) continue; } } - if (image_data.size == 0) { - state_list_push(scratch.arena, state_list, State_BuildImage); - continue; - } - if (build_imp_lib) { - build_imp_lib = 0; - if (config->file_characteristics & PE_ImageFileCharacteristic_FILE_DLL) { - state_list_push(scratch.arena, state_list, State_BuildImpLib); - continue; - } - } - if (build_rad_chunk_map) { - build_rad_chunk_map = 0; - state_list_push(scratch.arena, state_list, State_BuildRadChunkMap); - continue; - } - if (build_debug_info) { - build_debug_info = 0; - state_list_push(scratch.arena, state_list, State_BuildDebugInfo); - continue; - } - - // wait for the thread to finish writing image to disk - os_thread_join(image_write_thread, -1); break; } + // log + { + if (lnk_get_log_status(LNK_Log_InputObj)) { + U64 total_input_size = 0; + for (LNK_ObjNode *obj_n = obj_list.first; obj_n != 0; obj_n = obj_n->next) { total_input_size += obj_n->data.data.size; } + lnk_log(LNK_Log_InputObj, "[Total Obj Input Size %M]", total_input_size); + } + if (lnk_get_log_status(LNK_Log_InputLib)) { + U64 total_input_size = 0; + for (U64 i = 0; i < ArrayCount(lib_index); ++i) { + LNK_LibList list = lib_index[i]; + for (LNK_LibNode *lib_n = list.first; lib_n != 0; lib_n = lib_n->next) { total_input_size += lib_n->data.data.size; } + } + lnk_log(LNK_Log_InputLib, "[Total Lib Input Size %M]", total_input_size); + } + } + + exit:; + + LNK_LinkContext link_ctx = {0}; + link_ctx.symtab = symtab; + link_ctx.objs_count = obj_list.count; + link_ctx.objs = lnk_array_from_obj_list(tp_arena->v[0], obj_list); + link_ctx.export_symbol_list = export_symbol_list; + MemoryCopyTyped(&link_ctx.lib_index[0], &lib_index[0], ArrayCount(lib_index)); + + scratch_end(scratch); + return link_ctx; + +#undef state_list_push +#undef state_list_pop +} + +internal void +lnk_write_thread(void *raw_ctx) +{ + ProfBeginFunction(); + LNK_WriteThreadContext *ctx = raw_ctx; + lnk_write_data_to_file_path(ctx->path, ctx->temp_path, ctx->data); + ProfEnd(); +} + +internal void +lnk_log_timers(void) +{ + Temp scratch = scratch_begin(0, 0); + + U64 total_build_time_micro = 0; + for (U64 i = 0; i < LNK_Timer_Count; ++i) { + total_build_time_micro += g_timers[i].end - g_timers[i].begin; + } + + String8List output_list = {0}; + str8_list_pushf(scratch.arena, &output_list, "------ Link Times --------------------------------------------------------------"); + for (U64 i = 0; i < LNK_Timer_Count; ++i) { + U64 build_time_micro = g_timers[i].end - g_timers[i].begin; + if (build_time_micro != 0) { + String8 timer_name = lnk_string_from_timer_type(i); + DateTime time = date_time_from_micro_seconds(build_time_micro); + String8 time_str = string_from_elapsed_time(scratch.arena, time); + str8_list_pushf(scratch.arena, &output_list, " %-5S Time: %S", timer_name, time_str); + } + } + + DateTime total_time = date_time_from_micro_seconds(total_build_time_micro); + String8 total_time_str = string_from_elapsed_time(scratch.arena, total_time); + str8_list_pushf(scratch.arena, &output_list, " Total Time: %S", total_time_str); + + StringJoin new_line_join = { str8_lit_comp(""), str8_lit_comp("\n"), str8_lit_comp("") }; + String8 output = str8_list_join(scratch.arena, &output_list, &new_line_join); + lnk_log(LNK_Log_Timers, "%S\n", output); + + scratch_end(scratch); +} + +internal void +lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) +{ + ProfBeginFunction(); + + Temp scratch = scratch_begin(tp_arena->v, tp_arena->count); + + // + // Link Inputs + // + LNK_LinkContext link_ctx = lnk_build_link_context(tp, tp_arena, config); + + // + // Image + // + LNK_ImageContext image_ctx = lnk_build_image(tp_arena, tp, config, link_ctx.symtab, link_ctx.objs_count, link_ctx.objs); + + // Write image in the background + LNK_WriteThreadContext *image_write_ctx = push_array(scratch.arena, LNK_WriteThreadContext, 1); + image_write_ctx->path = config->image_name; + image_write_ctx->temp_path = config->temp_image_name; + image_write_ctx->data = image_ctx.image_data; + OS_Handle image_write_thread = os_thread_launch(lnk_write_thread, image_write_ctx, 0); + + // + // RAD Map + // + if (config->rad_chunk_map == LNK_SwitchState_Yes) { + String8List rad_map = lnk_build_rad_map(scratch.arena, image_ctx.image_data, config->worker_count, link_ctx.objs_count, link_ctx.objs, link_ctx.lib_index, image_ctx.sectab); + lnk_write_data_list_to_file_path(config->rad_chunk_map_name, config->temp_rad_chunk_map_name, rad_map); + } + + // + // Import Library + // + if (config->build_imp_lib && (config->file_characteristics & PE_ImageFileCharacteristic_FILE_DLL)) { + ProfBegin("Build Import Library"); + lnk_timer_begin(LNK_Timer_Lib); + String8 linker_debug_symbols = lnk_make_linker_debug_symbols(scratch.arena, config->machine); + String8List lib_list = pe_make_import_lib(tp_arena->v[0], config->machine, config->time_stamp, str8_skip_last_slash(config->image_name), linker_debug_symbols, link_ctx.export_symbol_list); + lnk_write_data_list_to_file_path(config->imp_lib_name, str8_zero(), lib_list); + lnk_timer_end(LNK_Timer_Lib); + ProfEnd(); + } + + // + // Debug Info + // + if (lnk_do_debug_info(config)) { + ProfBegin("Debug Info"); + lnk_timer_begin(LNK_Timer_Debug); + + // + // CodeView + // + LNK_CodeViewInput input = lnk_make_code_view_input(tp, tp_arena, config->lib_dir_list, link_ctx.objs_count, link_ctx.objs); + CV_DebugT *types = lnk_import_types(tp, tp_arena, &input); + + // + // RDI + // + if (config->rad_debug == LNK_SwitchState_Yes) { + lnk_timer_begin(LNK_Timer_Rdi); + RDI_Arch arch = rdi_arch_from_coff_machine(config->machine); + LNK_SectionArray image_sects = lnk_section_table_get_output_sections(scratch.arena, image_ctx.sectab); + + String8List rdi_data = lnk_build_rad_debug_info(tp, + tp_arena, + config->target_os, + arch, + config->image_name, + image_ctx.image_data, + image_sects, + input.count, + input.obj_arr, + input.debug_s_arr, + input.total_symbol_input_count, + input.symbol_inputs, + input.parsed_symbols, + types); + + lnk_write_data_list_to_file_path(config->rad_debug_name, config->temp_rad_debug_name, rdi_data); + + lnk_timer_end(LNK_Timer_Rdi); + } + + // + // PDB + // + // TODO: Parallel debug info builds are currently blocked by the patch + // strings in $$FILE_CHECKSUM step in `lnk_process_c13_data_task`. + if (config->debug_mode == LNK_DebugMode_Full) { + lnk_timer_begin(LNK_Timer_Pdb); + + if (config->pdb_hash_type_names != LNK_TypeNameHashMode_Null && config->pdb_hash_type_names != LNK_TypeNameHashMode_None) { + lnk_replace_type_names_with_hashes(tp, tp_arena, types[CV_TypeIndexSource_TPI], config->pdb_hash_type_names, config->pdb_hash_type_name_length, config->pdb_hash_type_name_map); + } + + String8List pdb_data = lnk_build_pdb(tp, + tp_arena, + image_ctx.image_data, + config, + link_ctx.symtab, + input.count, + input.obj_arr, + input.debug_s_arr, + input.total_symbol_input_count, + input.symbol_inputs, + input.parsed_symbols, + types); + + lnk_write_data_list_to_file_path(config->pdb_name, config->temp_pdb_name, pdb_data); + lnk_timer_end(LNK_Timer_Pdb); + } + + lnk_timer_end(LNK_Timer_Debug); + ProfEnd(); + } + + // wait for the thread to finish writing image to disk + os_thread_join(image_write_thread, -1); + + // + // Timers + // if (lnk_get_log_status(LNK_Log_Timers)) { lnk_log_timers(); } - exit:; - - // linker is done, punt memory release to OS - //arena_release(ht_arena); - //lnk_section_table_release(§ab); - //lnk_export_table_release(&export_table); - //lnk_import_table_release(&imptab_static); - //lnk_import_table_release(&imptab_delayed); - //tp_arena_release(&tp_arena); - scratch_end(scratch); ProfEnd(); - -#undef state_list_push -#undef state_list_pop } internal void diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 0392f0ae..ad7fca18 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -3,6 +3,23 @@ #pragma once +// --- Link -------------------------------------------------------------------- + +typedef struct LNK_LinkContext +{ + LNK_SymbolTable *symtab; + U64 objs_count; + LNK_Obj **objs; + PE_ExportParseList export_symbol_list; + LNK_LibList lib_index[LNK_InputSource_Count]; +} LNK_LinkContext; + +typedef struct LNK_ImageContext +{ + String8 image_data; + LNK_SectionTable *sectab; +} LNK_ImageContext; + // --- Base Reloc -------------------------------------------------------------- typedef struct LNK_BaseRelocPage @@ -141,10 +158,11 @@ internal void lnk_queue_lib_member_input(Arena *arena, PathStyle pat // --- Win32 Image ------------------------------------------------------------- -internal String8List lnk_build_guard_tables(TP_Context *tp, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs, COFF_MachineType machine, String8 entry_point_name, LNK_GuardFlags guard_flags, B32 emit_suppress_flag); -internal String8List lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_temp, LNK_Config *config, U64 objs_count, LNK_Obj **objs); -internal String8List lnk_build_win32_image_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sect_arr, U64 expected_image_header_size); -internal String8 lnk_build_win32_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, U64 obj_count, LNK_Obj **objs); +internal LNK_LinkContext lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config); +internal String8List lnk_build_guard_tables(TP_Context *tp, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs, COFF_MachineType machine, String8 entry_point_name, LNK_GuardFlags guard_flags, B32 emit_suppress_flag); +internal String8List lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_temp, LNK_Config *config, U64 objs_count, LNK_Obj **objs); +internal String8List lnk_build_win32_image_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sect_arr, U64 expected_image_header_size); +internal LNK_ImageContext lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, U64 obj_count, LNK_Obj **objs); // --- Logger ------------------------------------------------------------------ diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index 451f7377..4b8411f7 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -360,14 +360,10 @@ lnk_merge_debug_t_and_debug_p(Arena *arena, U64 obj_count, CV_DebugT *debug_t_ar } internal LNK_CodeViewInput -lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, String8List lib_dir_list, LNK_ObjList obj_list) +lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, String8List lib_dir_list, U64 obj_count, LNK_Obj **obj_arr) { ProfBegin("Extract CodeView"); Temp scratch = scratch_begin(0,0); - - // obj list -> array - U64 obj_count = obj_list.count; - LNK_Obj **obj_arr = lnk_array_from_obj_list(tp_arena->v[0], obj_list); // gather debug info sections from objs ProfBegin("Collect CodeView"); diff --git a/src/linker/lnk_debug_info.h b/src/linker/lnk_debug_info.h index 2bdc9aac..7f08f7da 100644 --- a/src/linker/lnk_debug_info.h +++ b/src/linker/lnk_debug_info.h @@ -500,7 +500,7 @@ internal CV_DebugT * lnk_parse_debug_t_sections(TP_Context *tp, TP_Arena * internal CV_SymbolList * lnk_cv_symbol_list_arr_from_debug_s_arr(TP_Context *tp, TP_Arena *arena, U64 obj_count, CV_DebugS *debug_s_arr); internal LNK_PchInfo * lnk_setup_pch(Arena *arena, U64 obj_count, LNK_Obj *obj_arr, CV_DebugT *debug_t_arr, CV_DebugT *debug_p_arr, CV_SymbolListArray *parsed_symbols); -internal LNK_CodeViewInput lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, String8List lib_dir_list, LNK_ObjList obj_list); +internal LNK_CodeViewInput lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, String8List lib_dir_list, U64 objs_count, LNK_Obj **objs); internal LNK_LeafRef lnk_leaf_ref(U32 idx, U32 leaf_idx); internal LNK_LeafRef lnk_obj_leaf_ref(U32 obj_idx, U32 leaf_idx); From c4a36f73dc24103efa828d980f5e5ca95e5cc48d Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 2 Jun 2025 11:49:58 -0700 Subject: [PATCH 187/372] redirect stdout and stderr to a file --- src/torture/torture.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index f1150d33..9bf2e9df 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -64,11 +64,13 @@ t_string_from_result(T_Result v) return 0; } +global String8 g_stdout_file_name = str8_lit_comp("torture"); global U64 g_linker_time_out; global String8 g_linker; global String8 g_wdir; global String8 g_out = str8_lit_comp("torture_out"); global B32 g_verbose; +global B32 g_redirect_stdout; #define T_LINKER_TIME_OUT_EXIT_CODE 999999 @@ -103,12 +105,19 @@ t_invoke_linker_with_time_out(U64 time_out, String8 cmdline) { Temp scratch = scratch_begin(0,0); + OS_Handle output_redirect = {0}; + if (g_redirect_stdout) { + output_redirect = os_file_open(OS_AccessFlag_Append|OS_AccessFlag_ShareRead|OS_AccessFlag_ShareWrite|OS_AccessFlag_Inherited, g_stdout_file_name); + } + // // Build Launch Options // OS_ProcessLaunchParams launch_opts = {0}; launch_opts.path = g_wdir; launch_opts.inherit_env = 1; + launch_opts.stdout_file = output_redirect; + launch_opts.stderr_file = output_redirect; str8_list_push(scratch.arena, &launch_opts.cmd_line, g_linker); str8_list_push(scratch.arena, &launch_opts.cmd_line, str8_lit("/nologo")); { @@ -3268,7 +3277,7 @@ entry_point(CmdLine *cmdline) B32 print_help = cmd_line_has_flag(cmdline, str8_lit("help")) || cmd_line_has_flag(cmdline, str8_lit("h")) || cmdline->argc == 1; - if (print_help) { + if (print_help) { fprintf(stderr, "--- Help -----------------------------------------------------------------------\n"); fprintf(stderr, " %s\n\n", BUILD_TITLE_STRING_LITERAL); fprintf(stderr, " Usage: torture [Options] [Files]\n\n"); @@ -3278,6 +3287,7 @@ entry_point(CmdLine *cmdline) fprintf(stderr, " -list Print available test targets and exit\n"); fprintf(stderr, " -out:{path} Directory path for test outputs (default \"%.*s\")\n", str8_varg(g_out)); fprintf(stderr, " -verbose Enable verbose mode\n"); + fprintf(stderr, " -print_stdout Print to console stdout and stderr of a run"); fprintf(stderr, " -help Print help menu and exit\n"); os_abort(0); } @@ -3357,6 +3367,13 @@ entry_point(CmdLine *cmdline) g_verbose = cmd_line_has_flag(cmdline, str8_lit("verbose")); } + // + // Handle -print_stdout + // + { + g_redirect_stdout = !cmd_line_has_flag(cmdline, str8_lit("print_stdout")); + } + // // Make Output Directory // @@ -3366,6 +3383,11 @@ entry_point(CmdLine *cmdline) os_abort(1); } + // + // Clean up output from previous run + // + os_delete_file_at_path(g_stdout_file_name); + // // Run Test Targets // @@ -3438,6 +3460,10 @@ entry_point(CmdLine *cmdline) fprintf(stdout, " Passed: %llu\n", pass_count); fprintf(stdout, " Failed: %llu\n", fail_count); fprintf(stdout, " Crashed: %llu\n", crash_count); + + if (fail_count + crash_count != 0) { + os_abort(fail_count + crash_count); + } } scratch_end(scratch); From fe967a3d36df1cf7ab0e5e745905854ebf7822aa Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 2 Jun 2025 12:00:23 -0700 Subject: [PATCH 188/372] more validity checks in simple_link_test --- src/torture/torture.c | 113 ++++++++++++++++++++++-------------------- 1 file changed, 60 insertions(+), 53 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index 9bf2e9df..6c43492b 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -614,61 +614,68 @@ t_simple_link_test(void) int virt_align = 4096; String8 out_name = str8_lit("a.exe"); int linker_exit_code = t_invoke_linkerf("/entry:my_entry /subsystem:console /fixed /filealign:%d /align:%d /out:%S %S", file_align, virt_align, out_name, main_obj_name); - if (linker_exit_code == 0) { - String8 exe = t_read_file(scratch.arena, out_name); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - - if (pe.is_pe32) { - goto exit; - } - if (pe.section_count == 0) { - goto exit; - } - if (pe.arch != Arch_x64) { - goto exit; - } - if (pe.subsystem != PE_WindowsSubsystem_WINDOWS_CUI) { - goto exit; - } - if (pe.virt_section_align != virt_align) { - goto exit; - } - if (pe.file_section_align != file_align) { - goto exit; - } - if (pe.symbol_count != 0) { - goto exit; - } - - // check section alignment - for (U64 sect_idx = 0; sect_idx < pe.section_count; sect_idx += 1) { - COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - if (AlignPadPow2(sect_header->fsize, file_align) != 0) { - goto exit; - } - if (AlignPadPow2(sect_header->voff, virt_align) != 0) { - goto exit; - } - } - - COFF_SectionHeader *text_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (!text_section) { - goto exit; - } - if (text_section->foff != file_align) { - goto exit; - } - - String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + text_section->vsize)); - if (!str8_match(text_data, str8_array_fixed(text_payload), 0)) { - goto exit; - } - - result = T_Result_Pass; + if (linker_exit_code != 0) { + goto exit; } + String8 exe = t_read_file(scratch.arena, out_name); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + if (pe.is_pe32) { + goto exit; + } + if (pe.section_count != 1) { + goto exit; + } + if (pe.arch != Arch_x64) { + goto exit; + } + if (pe.subsystem != PE_WindowsSubsystem_WINDOWS_CUI) { + goto exit; + } + if (pe.virt_section_align != virt_align) { + goto exit; + } + if (pe.file_section_align != file_align) { + goto exit; + } + if (pe.symbol_count != 0) { + goto exit; + } + if (pe.data_dir_count != PE_DataDirectoryIndex_COUNT) { + goto exit; + } + + // check section alignment + for (U64 sect_idx = 0; sect_idx < pe.section_count; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + if (AlignPadPow2(sect_header->fsize, file_align) != 0) { + goto exit; + } + if (AlignPadPow2(sect_header->voff, virt_align) != 0) { + goto exit; + } + } + + COFF_SectionHeader *text_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + if (!text_section) { + goto exit; + } + if (text_section->foff != file_align) { + goto exit; + } + if (pe.entry_point != text_section->voff) { + goto exit; + } + + String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + text_section->vsize)); + if (!str8_match(text_data, str8_array_fixed(text_payload), 0)) { + goto exit; + } + + result = T_Result_Pass; exit:; scratch_end(scratch); return result; From 25710d39b7e5829a61cfb86a860226b4bdd8d0ca Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 2 Jun 2025 13:39:32 -0700 Subject: [PATCH 189/372] test optional header fields --- src/linker/lnk.c | 6 ++-- src/pe/pe.c | 1 + src/pe/pe.h | 1 + src/torture/torture.c | 66 +++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 69 insertions(+), 5 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index faa8c3e7..17f2bbd3 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2005,11 +2005,11 @@ lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config if (sect->flags & COFF_SectionFlag_CntUninitializedData) { sizeof_uninited_data += sect->vsize; } - if (sect->flags & COFF_SectionFlag_CntInitializedData) { - sizeof_inited_data += sect->vsize; + if ((sect->flags & COFF_SectionFlag_CntInitializedData) || (sect->flags & COFF_SectionFlag_CntCode)) { + sizeof_inited_data += sect->fsize; } if (sect->flags & COFF_SectionFlag_CntCode) { - sizeof_code += sect->vsize; + sizeof_code += sect->fsize; } sizeof_image = Max(sizeof_image, sects.v[sect_idx]->voff + sects.v[sect_idx]->vsize); } diff --git a/src/pe/pe.c b/src/pe/pe.c index a8e2ea3a..93da7636 100644 --- a/src/pe/pe.c +++ b/src/pe/pe.c @@ -637,6 +637,7 @@ pe_bin_info_from_data(Arena *arena, String8 data) info.file_section_align = file_section_align; info.section_count = clamped_sec_count; info.symbol_count = symbol_count; + info.optional_header_off = optional_range.min; info.section_table_range = rng_1u64(sec_array_off, sec_array_off + sizeof(COFF_SectionHeader) * clamped_sec_count); info.symbol_table_range = rng_1u64(symbol_array_off, symbol_array_off + sizeof(COFF_Symbol16) * symbol_count); info.string_table_range = rng_1u64(string_table_off, data.size); diff --git a/src/pe/pe.h b/src/pe/pe.h index cc225ffc..74dce633 100644 --- a/src/pe/pe.h +++ b/src/pe/pe.h @@ -1003,6 +1003,7 @@ struct PE_BinInfo U64 file_section_align; U64 section_count; U64 symbol_count; + U64 optional_header_off; Rng1U64 section_table_range; Rng1U64 symbol_table_range; Rng1U64 string_table_range; diff --git a/src/torture/torture.c b/src/torture/torture.c index 6c43492b..74746b02 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -599,7 +599,9 @@ t_simple_link_test(void) String8 main_obj; { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *text_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), COFF_SectionFlag_CntCode, str8_array_fixed(text_payload)); + COFF_ObjSection *text_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text_payload)); + coff_obj_writer_push_section(obj_writer, str8_lit(".data"), PE_DATA_SECTION_FLAGS, str8_lit("qwe")); + coff_obj_writer_push_section(obj_writer, str8_lit(".bss"), PE_BSS_SECTION_FLAGS, str8(0, 5)); coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); @@ -626,7 +628,7 @@ t_simple_link_test(void) if (pe.is_pe32) { goto exit; } - if (pe.section_count != 1) { + if (pe.section_count != 3) { goto exit; } if (pe.arch != Arch_x64) { @@ -670,11 +672,71 @@ t_simple_link_test(void) goto exit; } + COFF_SectionHeader *data_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + if (data_section == 0) { + goto exit; + } + + COFF_SectionHeader *bss_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".bss")); + if (bss_section == 0) { + goto exit; + } + String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + text_section->vsize)); if (!str8_match(text_data, str8_array_fixed(text_payload), 0)) { goto exit; } + PE_OptionalHeader32Plus *opt = str8_deserial_get_raw_ptr(exe, pe.optional_header_off, sizeof(*opt)); + if (opt->sizeof_code != text_section->fsize) { + goto exit; + } + if (opt->sizeof_inited_data != text_section->fsize + data_section->fsize) { + goto exit; + } + if (opt->sizeof_uninited_data != 0) { + goto exit; + } + if (opt->code_base != 0x1000) { + goto exit; + } + if (opt->image_base != 0x140000000) { + goto exit; + } + if (opt->major_os_ver != 6) { + goto exit; + } + if (opt->minor_os_ver != 0) { + goto exit; + } + if (opt->major_img_ver != 0) { + goto exit; + } + if (opt->minor_img_ver != 0) { + goto exit; + } + if (opt->major_subsystem_ver != 6) { + goto exit; + } + if (opt->minor_subsystem_ver != 0) { + goto exit; + } + if (opt->win32_version_value != 0) { + goto exit; + } + if (opt->sizeof_image != 0x3000) { + goto exit; + } + if (opt->sizeof_headers != 0x200) { + goto exit; + } + if (opt->dll_characteristics != 0x8120) { + goto exit; + } + if (opt->loader_flags != 0) { + goto exit; + } + result = T_Result_Pass; exit:; scratch_end(scratch); From 7d77210a5fb5b8e8d813f646d7df32b79d9b55f6 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 2 Jun 2025 13:40:09 -0700 Subject: [PATCH 190/372] run test after build --- .github/workflows/builds.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml index 2c30d5fc..0c853c90 100644 --- a/.github/workflows/builds.yml +++ b/.github/workflows/builds.yml @@ -32,3 +32,8 @@ jobs: run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 call build ${{ matrix.target }} ${{ matrix.compiler }} ${{ matrix.mode }} || exit /b 1 + - name: run_torture + shell: cmd + if: ${{ matrix.target == 'torture' }} + run: torture -l:radlink || exit /b 1 + From 32a22779daf5f8be9e952bdfba974a06af2644a9 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 2 Jun 2025 13:45:17 -0700 Subject: [PATCH 191/372] fix run --- .github/workflows/builds.yml | 21 +++++++++++++++++---- src/base/base_core.h | 1 - src/linker/lnk.c | 2 +- src/torture/torture.c | 25 +++++++++++++++---------- 4 files changed, 33 insertions(+), 16 deletions(-) diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml index 0c853c90..12613392 100644 --- a/.github/workflows/builds.yml +++ b/.github/workflows/builds.yml @@ -32,8 +32,21 @@ jobs: run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 call build ${{ matrix.target }} ${{ matrix.compiler }} ${{ matrix.mode }} || exit /b 1 - - name: run_torture - shell: cmd - if: ${{ matrix.target == 'torture' }} - run: torture -l:radlink || exit /b 1 + run-torture: + runs-on: windows-2022 + steps: + # - name: Install ASAN + # shell: cmd + # run: | + # "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe" modify --installPath "C:\Program Files\Microsoft Visual Studio\2022\Enterprise" --quiet --force --norestart --add Microsoft.VisualStudio.Component.VC.ASAN + - name: checkout + uses: actions/checkout@v2 + - name: run-torture + shell: cmd + run: | + call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 + call build radlink asan debug no_meta || exit /b 1 + call build torture debug no_meta || exit /b 1 + cd build + torture -l:radlink || exit /b 1 diff --git a/src/base/base_core.h b/src/base/base_core.h index 1db2f83f..26e08d64 100644 --- a/src/base/base_core.h +++ b/src/base/base_core.h @@ -315,7 +315,6 @@ CheckNil(nil,p) ? \ #endif #if ASAN_ENABLED -#pragma comment(lib, "clang_rt.asan-x86_64.lib") C_LINKAGE void __asan_poison_memory_region(void const volatile *addr, size_t size); C_LINKAGE void __asan_unpoison_memory_region(void const volatile *addr, size_t size); # define AsanPoisonMemoryRegion(addr, size) __asan_poison_memory_region((addr), (size)) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 17f2bbd3..78909ba3 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1084,7 +1084,7 @@ lnk_section_contrib_ptr_is_before(void *raw_a, void *raw_b) if (a->u.sort_idx_size <= 1 && b->u.sort_idx_size <= 1) { if (a->u.sort_idx_size == b->u.sort_idx_size) { - cmp = cmp = u32_compar(&a->u.obj_idx, &b->u.obj_idx); + cmp = u32_compar(&a->u.obj_idx, &b->u.obj_idx); if (cmp == 0) { cmp = u32_compar(&a->u.obj_sect_idx, &b->u.obj_sect_idx); } diff --git a/src/torture/torture.c b/src/torture/torture.c index 74746b02..ac6bd47d 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -149,6 +149,10 @@ t_invoke_linker_with_time_out(U64 time_out, String8 cmdline) } } + if (g_redirect_stdout) { + os_file_close(output_redirect); + } + scratch_end(scratch); return exit_code; } @@ -191,6 +195,16 @@ t_make_file_path(Arena *arena, String8 name) return push_str8f(arena, "%S\\%S", g_wdir, name); } +internal B32 +t_write_file_list(String8 name, String8List data) +{ + Temp scratch = scratch_begin(0,0); + String8 path = t_make_file_path(scratch.arena, name); + B32 is_written = os_write_data_list_to_file_path(path, data); + scratch_end(scratch); + return is_written; +} + internal B32 t_write_file(String8 name, String8 data) { @@ -203,16 +217,6 @@ t_write_file(String8 name, String8 data) return t_write_file_list(name, temp_list); } -internal B32 -t_write_file_list(String8 name, String8List data) -{ - Temp scratch = scratch_begin(0,0); - String8 path = t_make_file_path(scratch.arena, name); - B32 is_written = os_write_data_list_to_file_path(path, data); - scratch_end(scratch); - return is_written; -} - internal String8 t_read_file(Arena *arena, String8 name) { @@ -3531,6 +3535,7 @@ entry_point(CmdLine *cmdline) fprintf(stdout, " Crashed: %llu\n", crash_count); if (fail_count + crash_count != 0) { + fflush(stdout); os_abort(fail_count + crash_count); } } From d604456def8fbfc7e76f5cd1f190f0f0d091bad9 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 2 Jun 2025 16:04:17 -0700 Subject: [PATCH 192/372] align sizeofs --- src/linker/lnk.c | 5 ++++- src/torture/torture.c | 10 +++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 78909ba3..58f0b588 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2013,7 +2013,10 @@ lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config } sizeof_image = Max(sizeof_image, sects.v[sect_idx]->voff + sects.v[sect_idx]->vsize); } - sizeof_image = AlignPow2(sizeof_image, 4096); + sizeof_code = AlignPow2(sizeof_code, config->file_align); + sizeof_inited_data = AlignPow2(sizeof_inited_data, config->file_align); + sizeof_uninited_data = AlignPow2(sizeof_uninited_data, config->file_align); + sizeof_image = AlignPow2(sizeof_image, 4096); // // compute image headers size diff --git a/src/torture/torture.c b/src/torture/torture.c index ac6bd47d..1bf492a2 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -605,7 +605,7 @@ t_simple_link_test(void) COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); COFF_ObjSection *text_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text_payload)); coff_obj_writer_push_section(obj_writer, str8_lit(".data"), PE_DATA_SECTION_FLAGS, str8_lit("qwe")); - coff_obj_writer_push_section(obj_writer, str8_lit(".bss"), PE_BSS_SECTION_FLAGS, str8(0, 5)); + coff_obj_writer_push_section(obj_writer, str8_lit(".zero"), PE_BSS_SECTION_FLAGS, str8(0, 5)); coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); @@ -681,8 +681,8 @@ t_simple_link_test(void) goto exit; } - COFF_SectionHeader *bss_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".bss")); - if (bss_section == 0) { + COFF_SectionHeader *zero_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".zero")); + if (zero_section == 0) { goto exit; } @@ -698,7 +698,7 @@ t_simple_link_test(void) if (opt->sizeof_inited_data != text_section->fsize + data_section->fsize) { goto exit; } - if (opt->sizeof_uninited_data != 0) { + if (opt->sizeof_uninited_data != 0x200) { goto exit; } if (opt->code_base != 0x1000) { @@ -728,7 +728,7 @@ t_simple_link_test(void) if (opt->win32_version_value != 0) { goto exit; } - if (opt->sizeof_image != 0x3000) { + if (opt->sizeof_image != 0x4000) { goto exit; } if (opt->sizeof_headers != 0x200) { From 205723f8d633217426b42d03b6616f80d46e3ca2 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 6 Jun 2025 08:48:21 -0700 Subject: [PATCH 193/372] parallelize symbol tables patching --- src/linker/lnk.c | 4812 ++++++++++++++++++++------------------- src/linker/lnk.h | 30 +- src/linker/lnk_config.c | 6 +- src/linker/lnk_config.h | 5 +- 4 files changed, 2520 insertions(+), 2333 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 58f0b588..6b2b1c1f 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -243,7 +243,7 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) } // init config - LNK_Config *config = lnk_config_from_cmd_line(arena, cmd_line); + LNK_Config *config = lnk_config_from_cmd_line(arena, raw_cmd_line, cmd_line); #if PROFILE_TELEMETRY { @@ -1071,2195 +1071,6 @@ lnk_queue_lib_member_input(Arena *arena, } } -internal int -lnk_section_contrib_ptr_is_before(void *raw_a, void *raw_b) -{ - // Grouped Sections (PE Format) - // "All contributions with the same object-section name are allocated contiguously in the image, - // and the blocks of contributions are sorted in lexical order by object-section name." - LNK_SectionContrib *a = *(LNK_SectionContrib **)raw_a; - LNK_SectionContrib *b = *(LNK_SectionContrib **)raw_b; - - int cmp; - - if (a->u.sort_idx_size <= 1 && b->u.sort_idx_size <= 1) { - if (a->u.sort_idx_size == b->u.sort_idx_size) { - cmp = u32_compar(&a->u.obj_idx, &b->u.obj_idx); - if (cmp == 0) { - cmp = u32_compar(&a->u.obj_sect_idx, &b->u.obj_sect_idx); - } - } else { - // place sections without sort postfix first - cmp = a->u.sort_idx_size < b->u.sort_idx_size; - } - } else { - // sort on section postfix - String8 a_sort_idx = str8(a->u.sort_idx, a->u.sort_idx_size); - String8 b_sort_idx = str8(b->u.sort_idx, b->u.sort_idx_size); - cmp = str8_compar_case_sensitive(&a_sort_idx, &b_sort_idx); - - // sort on obj position on command line - if (cmp == 0) { - cmp = u32_compar(&a->u.obj_idx, &b->u.obj_idx); - - // sort on section index - if (cmp == 0) { - cmp = u32_compar(&a->u.obj_sect_idx, &b->u.obj_sect_idx); - } - } - } - - int is_before = cmp < 0; - return is_before; -} - -internal int -lnk_common_block_contrib_is_before(void *raw_a, void *raw_b) -{ - LNK_CommonBlockContrib *a = raw_a; - LNK_CommonBlockContrib *b = raw_b; - - int is_before; - if (a->u.size == b->u.size) { - LNK_Symbol *a_symbol = a->symbol; - LNK_Symbol *b_symbol = b->symbol; - if (a_symbol->u.defined.obj->input_idx == b_symbol->u.defined.obj->input_idx) { - is_before = a_symbol->u.defined.symbol_idx < b_symbol->u.defined.symbol_idx; - } else { - is_before = a_symbol->u.defined.obj->input_idx < b_symbol->u.defined.obj->input_idx; - } - } else { - is_before = a->u.size > b->u.size; - } - - return is_before; -} - -internal U64 -lnk_compute_win32_image_header_size(LNK_Config *config, U64 sect_count) -{ - U64 image_header_size = 0; - image_header_size += sizeof(PE_DosHeader) + pe_dos_program.size; - image_header_size += sizeof(U32); // PE_MAGIC - image_header_size += sizeof(COFF_FileHeader); - image_header_size += pe_has_plus_header(config->machine) ? sizeof(PE_OptionalHeader32Plus) : sizeof(PE_OptionalHeader32); - image_header_size += sizeof(PE_DataDirectory) * config->data_dir_count; - image_header_size += sizeof(COFF_SectionHeader) * sect_count; - return image_header_size; -} - -internal -THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) -{ - LNK_ObjRelocPatcher *task = raw_task; - LNK_Obj *obj = task->objs[task_id]; - - COFF_FileHeaderInfo obj_header = obj->header; - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj_header.section_table_range).str; - String8 symbol_table = str8_substr(obj->data, obj_header.symbol_table_range); - String8 string_table = str8_substr(obj->data, obj_header.string_table_range); - - for (U64 sect_idx = 0; sect_idx < obj_header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *section_header = §ion_table[sect_idx]; - - // was section removed? - if (section_header->flags & COFF_SectionFlag_LnkRemove) { - continue; - } - if (section_header->flags & COFF_SectionFlag_CntUninitializedData) { - continue; - } - - // get section file range - Rng1U64 section_frange = rng_1u64(section_header->foff, section_header->foff + section_header->fsize); - - // get section bytes - String8 section_data; - if (lnk_is_coff_section_debug(obj, sect_idx)) { - section_data = str8_substr(obj->data, section_frange); - } else { - section_data = str8_substr(task->image_data, section_frange); - } - - // find section relocs - COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, section_header); - COFF_Reloc *relocs = (COFF_Reloc *)(obj->data.str + reloc_info.array_off); - - // apply relocs - for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { - COFF_Reloc *reloc = &relocs[reloc_idx]; - - // error check relocation - if (obj->header.machine == COFF_MachineType_X64) { - if (reloc->type > COFF_Reloc_X64_Last) { - lnk_error_obj(LNK_Error_IllegalRelocation, obj, "unknown relocation 0x%x", reloc->type); - } - } else if (obj->header.machine != COFF_MachineType_Unknown) { - NotImplemented; - } - - // compute virtual offsets - U64 reloc_voff = section_header->voff + reloc->apply_off; - - // compute symbol location values - U32 symbol_secnum = 0; - U32 symbol_secoff = 0; - S64 symbol_voff = 0; - { - COFF_ParsedSymbol symbol; - if (obj_header.is_big_obj) { - symbol = coff_parse_symbol32(string_table, (COFF_Symbol32 *)symbol_table.str + reloc->isymbol); - } else { - symbol = coff_parse_symbol16(string_table, (COFF_Symbol16 *)symbol_table.str + reloc->isymbol); - } - - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular) { - symbol_secnum = symbol.section_number; - symbol_secoff = symbol.value; - symbol_voff = safe_cast_u32((U64)task->image_section_table[symbol.section_number]->voff + (U64)symbol_secoff); - } else if (interp == COFF_SymbolValueInterp_Abs) { - // There aren't enough bits in COFF symbol to store full image base address, - // so we special case __ImageBase. A better solution would be to add - // a 64-bit symbol format to COFF. - if (str8_match(symbol.name, str8_lit("__ImageBase"), 0)) { - symbol.value = task->image_base; - } - - symbol_secnum = 0; - symbol_secoff = 0; - symbol_voff = (S64)symbol.value - (S64)task->image_base; - } else if (interp == COFF_SymbolValueInterp_Weak) { - // unresolved weak - } else if (interp == COFF_SymbolValueInterp_Undefined) { - // unresolved undefined - } else { - InvalidPath; - } - } - - // pick reloc value - COFF_RelocValue reloc_value = {0}; - switch (obj_header.machine) { - case COFF_MachineType_Unknown: {} break; - case COFF_MachineType_X64: { reloc_value = coff_pick_reloc_value_x64(reloc->type, task->image_base, reloc_voff, symbol_secnum, symbol_secoff, symbol_voff); } break; - default: { NotImplemented; } break; - } - - // read addend - Assert(reloc_value.size <= section_data.size); - U64 raw_addend = 0; - str8_deserial_read(section_data, reloc->apply_off, &raw_addend, reloc_value.size, 1); - - // compute new reloc value - S64 addend = extend_sign64(raw_addend, reloc_value.size); - U64 reloc_result = reloc_value.value + addend; - - // commit new reloc value - MemoryCopy(section_data.str + reloc->apply_off, &reloc_result, reloc_value.size); - } - } -} - -internal void -lnk_patch_weak_external_symbol(B32 is_big_obj, void *symbol, COFF_ParsedSymbol parsed_symbol) -{ - COFF_SymbolValueInterpType parsed_symbol_interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); - switch (parsed_symbol_interp) { - case COFF_SymbolValueInterp_Regular: { - if (is_big_obj) { - COFF_Symbol32 *symbol32 = symbol; - symbol32->section_number = parsed_symbol.section_number; - symbol32->value = parsed_symbol.value; - symbol32->type = parsed_symbol.type; - symbol32->storage_class = COFF_SymStorageClass_Static; - } else { - COFF_Symbol16 *symbol16 = symbol; - symbol16->section_number = safe_cast_u16(parsed_symbol.section_number); - symbol16->value = parsed_symbol.value; - symbol16->type = parsed_symbol.type; - symbol16->storage_class = COFF_SymStorageClass_Static; - } - } break; - case COFF_SymbolValueInterp_Common: { - InvalidPath; - } break; - case COFF_SymbolValueInterp_Abs: { - if (is_big_obj) { - COFF_Symbol32 *symbol32 = symbol; - symbol32->section_number = COFF_Symbol_AbsSection32; - symbol32->value = parsed_symbol.value; - symbol32->type = parsed_symbol.type; - symbol32->storage_class = COFF_SymStorageClass_Static; - } else { - COFF_Symbol16 *symbol16 = symbol; - symbol16->section_number = COFF_Symbol_AbsSection16; - symbol16->value = parsed_symbol.value; - symbol16->type = parsed_symbol.type; - symbol16->storage_class = COFF_SymStorageClass_Static; - } - } break; - case COFF_SymbolValueInterp_Weak: - case COFF_SymbolValueInterp_Debug: - case COFF_SymbolValueInterp_Undefined: { - InvalidPath; - } break; - default: { NotImplemented; } break; - } -} - -internal int -lnk_section_definition_is_before(void *raw_a, void *raw_b) -{ - LNK_SectionDefinition **a = raw_a; - LNK_SectionDefinition **b = raw_b; - int is_before; - if ((*a)->obj->input_idx == (*b)->obj->input_idx) { - is_before = (*a)->obj_sect_idx < (*b)->obj_sect_idx; - } else { - is_before = (*a)->obj->input_idx < (*b)->obj->input_idx; - } - return is_before; -} - -internal void -lnk_push_coff_symbols_from_data(Arena *arena, LNK_SymbolList *symbol_list, String8 data, LNK_SymbolArray obj_symbols) -{ - if (data.size % sizeof(U32)) { - // TODO: report invalid data size - } - U64 count = data.size / sizeof(U32); - for (U32 *ptr = (U32*)data.str, *opl = ptr + count; ptr < opl; ++ptr) { - U32 coff_symbol_idx = *ptr; - if (coff_symbol_idx >= obj_symbols.count) { - // TODO: report invalid symbol index - continue; - } - Assert(coff_symbol_idx < obj_symbols.count); - LNK_Symbol *symbol = obj_symbols.v + coff_symbol_idx; - lnk_symbol_list_push(arena, symbol_list, symbol); - } -} - -internal String8 -lnk_build_guard_data(Arena *arena, U64Array voff_arr, U64 stride) -{ - Assert(stride >= sizeof(U32)); - - // check for duplicates -#if DEBUG - for (U64 i = 1; i < voff_arr.count; ++i) { - Assert(voff_arr.[i-1] != voff_ptr[i]); - } -#endif - - U64 buffer_size = stride * voff_arr.count; - U8 *buffer = push_array(arena, U8, buffer_size); - for (U64 i = 0; i < voff_arr.count; ++i) { - U32 *voff_ptr = (U32*)(buffer + i * stride); - *voff_ptr = voff_arr.v[i]; - } - - String8 guard_data = str8(buffer, buffer_size); - return guard_data; -} - -internal String8List -lnk_build_guard_tables(TP_Context *tp, - LNK_SectionTable *sectab, - LNK_SymbolTable *symtab, - U64 objs_count, - LNK_Obj **objs, - COFF_MachineType machine, - String8 entry_point_name, - LNK_GuardFlags guard_flags, - B32 emit_suppress_flag) -{ - NotImplemented; - String8List result = {0}; - return result; -#if 0 - ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - - LNK_Section **sect_id_map = lnk_sect_id_map_from_section_table(scratch.arena, sectab); - - enum { GUARD_FIDS, GUARD_IATS, GUARD_LJMP, GUARD_EHCONT, GUARD_COUNT }; - LNK_SymbolList guard_symbol_list_table[GUARD_COUNT]; MemoryZeroStruct(&guard_symbol_list_table[0]); - - // collect symbols from objs - for (LNK_ObjNode *obj_node = obj_list.first; obj_node != NULL; obj_node = obj_node->next) { - LNK_Obj *obj = &obj_node->data; - MSCRT_FeatFlags feat_flags = lnk_obj_get_features(obj); - B32 has_guard_flags = (feat_flags & MSCRT_FeatFlag_GUARD_CF) || (feat_flags & MSCRT_FeatFlag_GUARD_EH_CONT); - if (has_guard_flags) { - LNK_SymbolArray symbol_arr = lnk_symbol_array_from_list(scratch.arena, obj->symbol_list); - if (guard_flags & LNK_Guard_Cf) { - String8List gfids_list = lnk_collect_obj_chunks(scratch.arena, obj, str8_lit(".gfids"), str8_zero(), 1); - for (String8Node *node = gfids_list.first; node != 0; node = node->next) { - lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], node->string, symbol_arr); - } - String8List giats_list = lnk_collect_obj_chunks(scratch.arena, obj, str8_lit(".giats"), str8_zero(), 1); - for (String8Node *node = giats_list.first; node != 0; node = node->next) { - lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_IATS], node->string, symbol_arr); - } - } - if (guard_flags & LNK_Guard_LongJmp) { - String8List gljmp_list = lnk_obj_search_chunks(scratch.arena, obj, str8_lit(".gljmp"), str8_zero(), 1); - for (String8Node *node = gljmp_list.first; node != 0; node = node->next) { - lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_LJMP], node->string, symbol_arr); - } - } - if (guard_flags & LNK_Guard_EhCont) { - String8List gehcont_list = lnk_obj_search_chunks(scratch.arena, obj, str8_lit(".gehcont"), str8_zero(), 1); - for (String8Node *node = gehcont_list.first; node != 0; node = node->next) { - lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_EHCONT], node->string, symbol_arr); - } - } - } else { - // TODO: loop over COFF relocs - NotImplemented; -#if 0 - // use relocation data in code sections to get function symbols - for (U64 isect = 0; isect < obj->sect_count; ++isect) { - LNK_Chunk *chunk = obj->chunk_arr[isect]; - if (!chunk) { - continue; - } - if (lnk_chunk_is_discarded(chunk)) { - continue; - } - if (~chunk->flags & COFF_SectionFlag_CntCode) { - continue; - } - Assert(chunk->type == LNK_Chunk_Leaf); - for (LNK_Reloc *reloc = obj->sect_reloc_list_arr[isect].first; reloc != 0; reloc = reloc->next) { - LNK_Symbol *symbol = lnk_resolve_symbol(symtab, reloc->symbol); - if (!LNK_Symbol_IsDefined(symbol->type)) { - continue; - } - LNK_DefinedSymbol *defined_symbol = &symbol->u.defined; - if (~defined_symbol->flags & LNK_DefinedSymbolFlag_IsFunc) { - continue; - } - LNK_Chunk *symbol_chunk = defined_symbol->u.chunk; - if (!symbol_chunk) { - continue; - } - if (symbol_chunk->type != LNK_Chunk_Leaf) { - continue; - } - if (~symbol_chunk->flags & COFF_SectionFlag_CntCode) { - continue; - } - lnk_symbol_list_push(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], symbol); - } - } -#endif - } - } - - // entry point - LNK_Symbol *entry_point_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, entry_point_name); - lnk_symbol_list_push(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], entry_point_symbol); - - // push exports - { - Temp temp = temp_begin(scratch.arena); - KeyValuePair *raw_exports = key_value_pairs_from_hash_table(temp.arena, exptab->name_export_ht); - for (U64 i = 0; i < exptab->name_export_ht->count; ++i) { - LNK_Export *exp = raw_exports[i].value_raw; - lnk_symbol_list_push(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], exp->symbol); - } - scratch_end(temp); - } - - // TODO: push noname exports - - NotImplemented; -#if 0 - // push thunks - LNK_SymbolScope scope_array[] = { LNK_SymbolScope_Defined, LNK_SymbolScope_Internal }; - for (U64 iscope = 0; iscope < ArrayCount(scope_array); ++iscope) { - LNK_SymbolScope scope = scope_array[iscope]; - for (U64 ibucket = 0; ibucket < symtab->bucket_count[scope]; ++ibucket) { - for (LNK_SymbolNode *symbol_node = symtab->buckets[scope][ibucket].first; - symbol_node != NULL; - symbol_node = symbol_node->next) { - LNK_Symbol *symbol = symbol_node->data; - if (!LNK_Symbol_IsDefined(symbol->type)) continue; - LNK_DefinedSymbol *defined_symbol = &symbol->u.defined; - if (~defined_symbol->flags & LNK_DefinedSymbolFlag_IsThunk) continue; - lnk_symbol_list_push(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], symbol); - } - } - } -#endif - - // build section data - lnk_section_table_build_data(tp, sectab, machine); - lnk_section_table_assign_virtual_offsets(sectab); - - // compute symbols virtual offsets - U64Array guard_voff_arr_table[GUARD_COUNT]; - for (U64 i = 0; i < ArrayCount(guard_symbol_list_table); ++i) { - U64List voff_list; MemoryZeroStruct(&voff_list); - LNK_SymbolList symbol_list = guard_symbol_list_table[i]; - for (LNK_SymbolNode *symbol_node = symbol_list.first; symbol_node != NULL; symbol_node = symbol_node->next) { - LNK_Symbol *symbol = lnk_resolve_symbol(symtab, symbol_node->data); - if (!LNK_Symbol_IsDefined(symbol->type)) { - continue; - } - LNK_DefinedSymbol *defined_symbol = &symbol->u.defined; - LNK_Chunk *chunk = defined_symbol->u.chunk; - if (!chunk) { - continue; - } - if (lnk_chunk_is_discarded(chunk)) { - continue; - } - U64 chunk_voff = lnk_virt_off_from_chunk_ref(sect_id_map, chunk->ref); - U64 symbol_voff = chunk_voff + defined_symbol->u.chunk_offset; - Assert(symbol_voff != 0); - u64_list_push(scratch.arena, &voff_list, symbol_voff); - } - U64Array voff_arr = u64_array_from_list(scratch.arena, &voff_list); - radsort(voff_arr.v, voff_arr.count, u64_compar_is_before); - guard_voff_arr_table[i] = u64_array_remove_duplicates(scratch.arena, voff_arr); - } - - // push guard sections - static struct { - char *name; - char *symbol; - int flags; - } sect_layout[] = { - { ".gfids", LNK_GFIDS_SYMBOL_NAME, LNK_GFIDS_SECTION_FLAGS }, - { ".giats", LNK_GIATS_SYMBOL_NAME, LNK_GIATS_SECTION_FLAGS }, - { ".gljmp", LNK_GLJMP_SYMBOL_NAME, LNK_GLJMP_SECTION_FLAGS }, - { ".gehcont", LNK_GEHCONT_SYMBOL_NAME, LNK_GEHCONT_SECTION_FLAGS }, - }; - for (U64 i = 0; i < ArrayCount(sect_layout); ++i) { - LNK_Section *sect = lnk_section_table_push(sectab, str8_cstring(sect_layout[i].name), sect_layout[i].flags); - } - - // TODO: emit table for SEH on X86 - if (machine == COFF_MachineType_X86) { - lnk_not_implemented("__safe_se_handler_table"); - lnk_not_implemented("__safe_se_handler_count"); - } - - LNK_Symbol *gfids_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Internal, str8_lit(LNK_GFIDS_SYMBOL_NAME)); - LNK_Symbol *giats_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Internal, str8_lit(LNK_GIATS_SYMBOL_NAME)); - LNK_Symbol *gljmp_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Internal, str8_lit(LNK_GLJMP_SYMBOL_NAME)); - LNK_Symbol *gehcont_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Internal, str8_lit(LNK_GEHCONT_SYMBOL_NAME)); - - LNK_Section *gfids_sect = lnk_section_table_search_id(sectab, gfids_symbol->u.defined.u.chunk->ref.sect_id); - LNK_Section *giats_sect = lnk_section_table_search_id(sectab, giats_symbol->u.defined.u.chunk->ref.sect_id); - LNK_Section *gljmp_sect = lnk_section_table_search_id(sectab, gljmp_symbol->u.defined.u.chunk->ref.sect_id); - LNK_Section *gehcont_sect = lnk_section_table_search_id(sectab, gehcont_symbol->u.defined.u.chunk->ref.sect_id); - - LNK_Chunk *gfids_array_chunk = gfids_sect->root; - LNK_Chunk *giats_array_chunk = giats_sect->root; - LNK_Chunk *gljmp_array_chunk = gljmp_sect->root; - LNK_Chunk *gehcont_array_chunk = gehcont_sect->root; - - // first 4 bytes are call's destination virtual offset - U64 entry_stride = sizeof(U32); - if (emit_suppress_flag) { - // 4th byte tells kernel what to do when destination VA is not in the bitmap. - // If byte is 1 exception is suppressed and program keeps running. - // If zero then exception is raised with nt!_KiRaiseSecurityCheckFailure(FAST_FAIL_GUARD_ICALL_CHECK_FAILURE) and exception code 0xA. - entry_stride = 5; - } - - // make guard data from virtual offsets - String8 gfids_data = lnk_build_guard_data(gfids_sect->arena, guard_voff_arr_table[GUARD_FIDS], entry_stride); - String8 giats_data = lnk_build_guard_data(giats_sect->arena, guard_voff_arr_table[GUARD_IATS], entry_stride); - String8 gljmp_data = lnk_build_guard_data(gljmp_sect->arena, guard_voff_arr_table[GUARD_LJMP], entry_stride); - String8 gehcont_data = lnk_build_guard_data(gehcont_sect->arena, guard_voff_arr_table[GUARD_EHCONT], entry_stride); - - // push guard data - lnk_section_push_chunk_data(gfids_sect, gfids_array_chunk, gfids_data, str8_zero()); - lnk_section_push_chunk_data(giats_sect, giats_array_chunk, giats_data, str8_zero()); - lnk_section_push_chunk_data(gljmp_sect, gljmp_array_chunk, gljmp_data, str8_zero()); - lnk_section_push_chunk_data(gehcont_sect, gehcont_array_chunk, gehcont_data, str8_zero()); - - LNK_Symbol *gflags_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_FLAGS_SYMBOL_NAME)); - LNK_Symbol *gfids_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_FIDS_TABLE_SYMBOL_NAME)); - LNK_Symbol *gfids_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_FIDS_COUNT_SYMBOL_NAME)); - LNK_Symbol *giats_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_IAT_TABLE_SYMBOL_NAME)); - LNK_Symbol *giats_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_IAT_COUNT_SYMBOL_NAME)); - LNK_Symbol *gljmp_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_LONGJMP_TABLE_SYMBOL_NAME)); - LNK_Symbol *gljmp_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_LONGJMP_COUNT_SYMBOL_NAME)); - LNK_Symbol *gehcont_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_EHCONT_TABLE_SYMBOL_NAME)); - LNK_Symbol *gehcont_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_EHCONT_COUNT_SYMBOL_NAME)); - - LNK_DefinedSymbol *gflags_def = &gflags_symbol->u.defined; - LNK_DefinedSymbol *gfids_table_def = &gfids_table_symbol->u.defined; - LNK_DefinedSymbol *gfids_count_def = &gfids_count_symbol->u.defined; - LNK_DefinedSymbol *giats_table_def = &giats_table_symbol->u.defined; - LNK_DefinedSymbol *giats_count_def = &giats_count_symbol->u.defined; - LNK_DefinedSymbol *gljmp_table_def = &gljmp_table_symbol->u.defined; - LNK_DefinedSymbol *gljmp_count_def = &gljmp_count_symbol->u.defined; - LNK_DefinedSymbol *gehcont_table_def = &gehcont_table_symbol->u.defined; - LNK_DefinedSymbol *gehcont_count_def = &gehcont_count_symbol->u.defined; - - // guard flags - gflags_def->value_type = LNK_DefinedSymbolValue_VA; - gflags_def->u.va = PE_LoadConfigGuardFlags_CF_INSTRUMENTED; - if ((guard_flags & LNK_Guard_Cf)) { - gflags_def->u.va |= PE_LoadConfigGuardFlags_CF_FUNCTION_TABLE_PRESENT; - } - if ((guard_flags & LNK_Guard_LongJmp) && guard_voff_arr_table[GUARD_LJMP].count) { - gflags_def->u.va |= PE_LoadConfigGuardFlags_CF_LONGJUMP_TABLE_PRESENT; - } - if ((guard_flags & LNK_Guard_EhCont) && guard_voff_arr_table[GUARD_EHCONT].count) { - gflags_def->u.va |= PE_LoadConfigGuardFlags_EH_CONTINUATION_TABLE_PRESENT; - } - { - LNK_Section *didat_sect = lnk_section_table_search(sectab, str8_lit(".didat")); - if (didat_sect) { - gflags_def->u.va |= PE_LoadConfigGuardFlags_DELAYLOAD_IAT_IN_ITS_OWN_SECTION; - } - } - if (entry_stride > sizeof(U32)) { - U64 size_bit = (entry_stride - 5); - if (emit_suppress_flag) { - gflags_def->u.va |= PE_LoadConfigGuardFlags_CF_EXPORT_SUPPRESSION_INFO_PRESENT; - } - gflags_def->u.va |= (1 << size_bit) << PE_LoadConfigGuardFlags_CF_FUNCTION_TABLE_SIZE_SHIFT; - } - - // gfids - if (guard_voff_arr_table[GUARD_FIDS].count) { - gfids_table_def->value_type = LNK_DefinedSymbolValue_Chunk; - gfids_table_def->u.chunk = gfids_array_chunk; - } - gfids_count_def->value_type = LNK_DefinedSymbolValue_VA; - gfids_count_def->u.va = guard_voff_arr_table[GUARD_FIDS].count; - - // giats - if (guard_voff_arr_table[GUARD_IATS].count) { - giats_table_def->value_type = LNK_DefinedSymbolValue_Chunk; - giats_table_def->u.chunk = giats_array_chunk; - } - giats_count_def->value_type = LNK_DefinedSymbolValue_VA; - giats_count_def->u.va = guard_voff_arr_table[GUARD_IATS].count; - - // gljmp - if (guard_voff_arr_table[GUARD_LJMP].count) { - gljmp_table_def->value_type = LNK_DefinedSymbolValue_Chunk; - gljmp_table_def->u.chunk = gljmp_array_chunk; - } - gljmp_count_def->value_type = LNK_DefinedSymbolValue_VA; - gljmp_count_def->u.va = guard_voff_arr_table[GUARD_LJMP].count; - - // gehcont - if (guard_voff_arr_table[GUARD_EHCONT].count) { - gehcont_table_def->value_type = LNK_DefinedSymbolValue_Chunk; - gehcont_table_def->u.chunk = gehcont_array_chunk; - } - gehcont_count_def->value_type = LNK_DefinedSymbolValue_VA; - gehcont_count_def->u.va = guard_voff_arr_table[GUARD_EHCONT].count; - - scratch_end(scratch); - ProfEnd(); -#endif -} - -internal -THREAD_POOL_TASK_FUNC(lnk_emit_base_relocs_from_objs_task) -{ - ProfBeginFunction(); - - LNK_ObjBaseRelocTask *task = raw_task; - Rng1U64 range = task->ranges[task_id]; - - HashTable *page_ht = task->page_ht_arr[task_id]; - LNK_BaseRelocPageList *page_list = &task->list_arr[task_id]; - - for (U64 obj_idx = range.min; obj_idx < range.max; ++obj_idx) { - LNK_Obj *obj = task->obj_arr[obj_idx]; - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; - for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - - if (sect_header->flags & COFF_SectionFlag_LnkRemove) { - continue; - } - - COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, sect_header); - COFF_Reloc *relocs = (COFF_Reloc *)(obj->data.str + reloc_info.array_off); - - for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { - COFF_Reloc *r = &relocs[reloc_idx]; - - COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, r->isymbol); - COFF_SymbolValueInterpType symbol_interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - B32 is_symbol_address = symbol_interp != COFF_SymbolValueInterp_Abs; - - if (is_symbol_address) { - B32 is_addr32 = 0, is_addr64 = 0; - switch (obj->header.machine) { - case COFF_MachineType_Unknown: {} break; - case COFF_MachineType_X64: { - is_addr32 = r->type == COFF_Reloc_X64_Addr32; - is_addr64 = r->type == COFF_Reloc_X64_Addr64; - } break; - default: { NotImplemented; } break; - } - - if (is_addr32 || is_addr64) { - U64 reloc_voff = sect_header->voff + r->apply_off; - U64 page_voff = AlignDownPow2(reloc_voff, task->page_size); - - LNK_BaseRelocPageNode *page; - { - KeyValuePair *is_page_present = hash_table_search_u64(page_ht, page_voff); - if (is_page_present) { - page = is_page_present->value_raw; - } else { - // fill out page - page = push_array(arena, LNK_BaseRelocPageNode, 1); - page->v.voff = page_voff; - - // push page - SLLQueuePush(page_list->first, page_list->last, page); - page_list->count += 1; - - // register page voff - hash_table_push_u64_raw(arena, page_ht, page_voff, page); - } - } - - if (is_addr32) { - if (task->is_large_addr_aware) { - COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, r->isymbol); - lnk_error_obj(LNK_Error_LargeAddrAwareRequired, obj, "found out of range ADDR32 relocation for '%S', link with /LARGEADDRESSAWARE:NO", symbol.name); - } else { - u64_list_push(arena, &page->v.entries_addr32, reloc_voff); - } - } else { - u64_list_push(arena, &page->v.entries_addr64, reloc_voff); - } - } - } - } - } - } - - ProfEnd(); -} - -int -lnk_base_reloc_page_compar(const void *raw_a, const void *raw_b) -{ - const LNK_BaseRelocPage *a = raw_a; - const LNK_BaseRelocPage *b = raw_b; - return u64_compar(&a->voff, &b->voff); -} - -int -lnk_base_reloc_page_is_before(void *raw_a, void *raw_b) -{ - LNK_BaseRelocPage* a = raw_a; - LNK_BaseRelocPage* b = raw_b; - return a->voff < b->voff; -} - -internal String8List -lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config, U64 objs_count, LNK_Obj **objs) -{ - ProfBeginFunction(); - - Arena *arena = tp_arena->v[0]; - Temp scratch = scratch_begin(tp_arena->v, tp_arena->count); - tp_arena->v[0] = scratch.arena; - TP_Temp tp_temp = tp_temp_begin(tp_arena); - - LNK_BaseRelocPageArray page_arr; - { - LNK_BaseRelocPageList *page_list_arr = push_array(scratch.arena, LNK_BaseRelocPageList, tp->worker_count); - HashTable **page_ht_arr = push_array_no_zero(scratch.arena, HashTable *, tp->worker_count); - for (U64 i = 0; i < tp->worker_count; ++i) { - page_ht_arr[i] = hash_table_init(scratch.arena, 1024); - } - - { - ProfBegin("Emit Relocs From Objs"); - LNK_ObjBaseRelocTask task = {0}; - task.ranges = tp_divide_work(scratch.arena, objs_count, tp->worker_count); - task.page_size = config->page_size; - task.page_ht_arr = page_ht_arr; - task.list_arr = page_list_arr; - task.obj_arr = objs; - task.is_large_addr_aware = !!(config->file_characteristics & PE_ImageFileCharacteristic_LARGE_ADDRESS_AWARE); - tp_for_parallel(tp, tp_arena, tp->worker_count, lnk_emit_base_relocs_from_objs_task, &task); - ProfEnd(); - } - - LNK_BaseRelocPageList *main_page_list = &page_list_arr[0]; - { - ProfBegin("Merge Worker Page Lists"); - HashTable *main_ht = page_ht_arr[0]; - for (U64 list_idx = 1; list_idx < tp->worker_count; ++list_idx) { - LNK_BaseRelocPageList src = page_list_arr[list_idx]; - - for (LNK_BaseRelocPageNode *src_page = src.first, *src_next; src_page != 0; src_page = src_next) { - src_next = src_page->next; - - KeyValuePair *is_page_present = hash_table_search_u64(main_ht, src_page->v.voff); - if (is_page_present) { - // page exists concat voffs - LNK_BaseRelocPageNode *page = is_page_present->value_raw; - Assert(page != src_page); - u64_list_concat_in_place(&page->v.entries_addr32, &src_page->v.entries_addr32); - u64_list_concat_in_place(&page->v.entries_addr64, &src_page->v.entries_addr64); - } else { - // push page to main list - SLLQueuePush(main_page_list->first, main_page_list->last, src_page); - main_page_list->count += 1; - - // store lookup voff - hash_table_push_u64_raw(scratch.arena, main_ht, src_page->v.voff, src_page); - } - } - } - ProfEnd(); - } - - ProfBegin("Page List -> Array"); - page_arr.count = 0; - page_arr.v = push_array_no_zero(scratch.arena, LNK_BaseRelocPage, main_page_list->count); - for (LNK_BaseRelocPageNode* n = main_page_list->first; n != 0; n = n->next) { - page_arr.v[page_arr.count++] = n->v; - } - ProfEnd(); - - ProfBegin("Sort Pages on VOFF"); - //radsort(page_arr.v, page_arr.count, lnk_base_reloc_page_is_before); - qsort(page_arr.v, page_arr.count, sizeof(page_arr.v[0]), lnk_base_reloc_page_compar); - ProfEnd(); - } - - String8List result = {0}; - if (page_arr.count) { - ProfBegin("Serialize Pages"); - HashTable *voff_ht = hash_table_init(scratch.arena, config->page_size); - for (U64 page_idx = 0; page_idx < page_arr.count; ++page_idx) { - LNK_BaseRelocPage *page = &page_arr.v[page_idx]; - - U64 total_entry_count = 0; - total_entry_count += page->entries_addr32.count; - total_entry_count += page->entries_addr64.count; - - U32 *page_voff_ptr; - U32 *block_size_ptr; - U16 *reloc_arr_base; - - // push buffer - U64 buf_size = AlignPow2(sizeof(*page_voff_ptr) + sizeof(*block_size_ptr) + sizeof(*reloc_arr_base)*total_entry_count, sizeof(U32)); - void *buf = push_array_no_zero(arena, U8, buf_size); - - // setup pointers into buffer - page_voff_ptr = buf; - block_size_ptr = page_voff_ptr + 1; - reloc_arr_base = (U16*)(block_size_ptr + 1); - - // write 32-bit relocations - U16 *reloc_arr_ptr = reloc_arr_base; - for (U64Node *i = page->entries_addr32.first; i != 0; i = i->next) { - // was base reloc_entry made? - if (hash_table_search_u64(voff_ht, i->data)) { - continue; - } - hash_table_push_u64_u64(scratch.arena, voff_ht, i->data, 0); - - // write entry - U64 rel_off = i->data - page->voff; - Assert(rel_off <= config->page_size); - *reloc_arr_ptr++ = PE_BaseRelocMake(PE_BaseRelocKind_HIGHLOW, rel_off); - } - - // write 64-bit relocations - for (U64Node *i = page->entries_addr64.first; i != 0; i = i->next) { - // was base reloc entry made? - if (hash_table_search_u64(voff_ht, i->data)) { - continue; - } - hash_table_push_u64_u64(scratch.arena, voff_ht, i->data, 0); - - // write entry - U64 rel_off = i->data - page->voff; - Assert(rel_off <= config->page_size); - *reloc_arr_ptr++ = PE_BaseRelocMake(PE_BaseRelocKind_DIR64, rel_off); - } - - // write pad - U64 pad_reloc_count = AlignPadPow2(total_entry_count, sizeof(reloc_arr_ptr[0])); - MemoryZeroTyped(reloc_arr_ptr, pad_reloc_count); // fill pad with PE_BaseRelocKind_ABSOLUTE - reloc_arr_ptr += pad_reloc_count; - - // compute block size - U64 reloc_arr_size = (U64)((U8*)reloc_arr_ptr - (U8*)reloc_arr_base); - U64 block_size = sizeof(*page_voff_ptr) + sizeof(*block_size_ptr) + reloc_arr_size; - - // write header - *page_voff_ptr = safe_cast_u32(page->voff); - *block_size_ptr = safe_cast_u32(block_size); - Assert(*block_size_ptr <= buf_size); - - // push page - str8_list_push(arena, &result, str8(buf, buf_size)); - - // purge voffs for next page - hash_table_purge(voff_ht); - } - ProfEnd(); - } - - tp_temp_end(tp_temp); // scratch is cleared here - tp_arena->v[0] = arena; - - ProfEnd(); - return result; -} - -internal String8List -lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sects, U64 expected_image_header_size) -{ - ProfBeginFunction(); - - String8List result = {0}; - - // - // DOS header - // - U32 dos_stub_size = sizeof(PE_DosHeader) + pe_dos_program.size; - { - PE_DosHeader *dos_header = push_array(arena, PE_DosHeader, 1); - dos_header->magic = PE_DOS_MAGIC; - dos_header->last_page_size = dos_stub_size % 512; - dos_header->page_count = CeilIntegerDiv(dos_stub_size, 512); - dos_header->paragraph_header_size = sizeof(PE_DosHeader) / 16; - dos_header->min_paragraph = 0; - dos_header->max_paragraph = 0; - dos_header->init_ss = 0; - dos_header->init_sp = 0; - dos_header->checksum = 0; - dos_header->init_ip = 0xFFFF; - dos_header->init_cs = 0; - dos_header->reloc_table_file_off = sizeof(PE_DosHeader); - dos_header->overlay_number = 0; - MemoryZeroStruct(dos_header->reserved); - dos_header->oem_id = 0; - dos_header->oem_info = 0; - MemoryZeroArray(dos_header->reserved2); - dos_header->coff_file_offset = dos_stub_size; - - str8_list_push(arena, &result, str8_struct(dos_header)); - str8_list_push(arena, &result, pe_dos_program); - } - - // - // PE magic - // - U32 *pe_magic = push_array(arena, U32, 1); - *pe_magic = PE_MAGIC; - str8_list_push(arena, &result, str8_struct(pe_magic)); - - // - // determine PE optional header type - // - B32 has_pe_plus_header = pe_has_plus_header(config->machine); - - // - // COFF file header - // - { - COFF_FileHeader *file_header = push_array_no_zero(arena, COFF_FileHeader, 1); - file_header->machine = config->machine; - file_header->time_stamp = config->time_stamp; - file_header->symbol_table_foff = 0; - file_header->symbol_count = 0; - file_header->section_count = sects.count; - file_header->optional_header_size = (has_pe_plus_header ? sizeof(PE_OptionalHeader32Plus) : sizeof(PE_OptionalHeader32)) + (sizeof(PE_DataDirectory) * config->data_dir_count); - file_header->flags = config->file_characteristics; - str8_list_push(arena, &result, str8_struct(file_header)); - } - - // - // compute code/inited/uninited sizes - // - U64 code_base = 0; - U64 sizeof_code = 0; - U64 sizeof_inited_data = 0; - U64 sizeof_uninited_data = 0; - U64 sizeof_image = 0; - for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { - LNK_Section *sect = sects.v[sect_idx]; - if (code_base == 0 && sect->flags & COFF_SectionFlag_CntCode) { - code_base = sect->voff; - } - if (sect->flags & COFF_SectionFlag_CntUninitializedData) { - sizeof_uninited_data += sect->vsize; - } - if ((sect->flags & COFF_SectionFlag_CntInitializedData) || (sect->flags & COFF_SectionFlag_CntCode)) { - sizeof_inited_data += sect->fsize; - } - if (sect->flags & COFF_SectionFlag_CntCode) { - sizeof_code += sect->fsize; - } - sizeof_image = Max(sizeof_image, sects.v[sect_idx]->voff + sects.v[sect_idx]->vsize); - } - sizeof_code = AlignPow2(sizeof_code, config->file_align); - sizeof_inited_data = AlignPow2(sizeof_inited_data, config->file_align); - sizeof_uninited_data = AlignPow2(sizeof_uninited_data, config->file_align); - sizeof_image = AlignPow2(sizeof_image, 4096); - - // - // compute image headers size - // - U64 sizeof_image_headers = 0; - sizeof_image_headers += dos_stub_size; - sizeof_image_headers += sizeof(COFF_FileHeader); - sizeof_image_headers += has_pe_plus_header ? sizeof(PE_OptionalHeader32Plus) : sizeof(PE_OptionalHeader32); - sizeof_image_headers += sizeof(PE_DataDirectory) * config->data_dir_count; - sizeof_image_headers += sizeof(COFF_SectionHeader) * sects.count; - sizeof_image_headers = AlignPow2(sizeof_image_headers, config->file_align); - - // - // fill out PE optional header - // - U32 *entry_point_va; - U32 *check_sum; - if (has_pe_plus_header) { - PE_OptionalHeader32Plus *opt_header = push_array_no_zero(arena, PE_OptionalHeader32Plus, 1); - opt_header->magic = PE_PE32PLUS_MAGIC; - opt_header->major_linker_version = config->link_ver.major; - opt_header->minor_linker_version = config->link_ver.minor; - opt_header->sizeof_code = safe_cast_u32(sizeof_code); - opt_header->sizeof_inited_data = safe_cast_u32(sizeof_inited_data); - opt_header->sizeof_uninited_data = safe_cast_u32(sizeof_uninited_data); - opt_header->entry_point_va = 0; - opt_header->code_base = code_base; - opt_header->image_base = lnk_get_base_addr(config); - opt_header->section_alignment = config->sect_align; - opt_header->file_alignment = config->file_align; - opt_header->major_os_ver = config->os_ver.major; - opt_header->minor_os_ver = config->os_ver.minor; - opt_header->major_img_ver = config->image_ver.major; - opt_header->minor_img_ver = config->image_ver.minor; - opt_header->major_subsystem_ver = config->subsystem_ver.major; - opt_header->minor_subsystem_ver = config->subsystem_ver.minor; - opt_header->win32_version_value = 0; // MSVC writes zero - opt_header->sizeof_image = sizeof_image; - opt_header->sizeof_headers = safe_cast_u32(sizeof_image_headers); - opt_header->check_sum = 0; // :check_sum - opt_header->subsystem = config->subsystem; - opt_header->dll_characteristics = config->dll_characteristics; - opt_header->sizeof_stack_reserve = config->stack_reserve; - opt_header->sizeof_stack_commit = config->stack_commit; - opt_header->sizeof_heap_reserve = config->heap_reserve; - opt_header->sizeof_heap_commit = config->heap_commit; - opt_header->loader_flags = 0; // for dynamic linker, always zero - opt_header->data_dir_count = safe_cast_u32(config->data_dir_count); - - entry_point_va = &opt_header->entry_point_va; - check_sum = &opt_header->check_sum; - - str8_list_push(arena, &result, str8_struct(opt_header)); - } else { - NotImplemented; - } - - // - // PE directories - // - PE_DataDirectory *directory_array; - { - directory_array = push_array(arena, PE_DataDirectory, config->data_dir_count); - str8_list_push(arena, &result, str8_array(directory_array, config->data_dir_count)); - } - - // - // COFF section table - // - COFF_SectionHeader *coff_section_table = push_array(arena, COFF_SectionHeader, sects.count); - U64 coff_section_table_count = 0; - { - for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { - LNK_Section *sect = sects.v[sect_idx]; - - COFF_SectionHeader *coff_section = &coff_section_table[sect_idx]; - - // TODO: for objs we can store long name in string table and write here /offset - if (sect->name.size > sizeof(coff_section->name)) { - lnk_error(LNK_Warning_LongSectionName, "not enough space in COFF section header to store entire name \"%S\"", sect->name); - } - - MemorySet(&coff_section->name[0], 0, sizeof(coff_section->name)); - MemoryCopy(&coff_section->name[0], sect->name.str, Min(sect->name.size, sizeof(coff_section->name))); - coff_section->vsize = sect->vsize; - coff_section->voff = sect->voff; - coff_section->fsize = sect->fsize; - coff_section->foff = sect->foff; - coff_section->relocs_foff = 0; // not present in image - coff_section->lines_foff = 0; // obsolete - coff_section->reloc_count = 0; // not present in image - coff_section->line_count = 0; // obsolete - coff_section->flags = sect->flags; - - coff_section_table_count += 1; - } - - str8_list_push(arena, &result, str8_array(coff_section_table, coff_section_table_count)); - } - - // align image headers - { - U64 image_headers_align_size = AlignPadPow2(result.total_size, config->file_align); - U8 *image_headers_align = push_array(arena, U8, image_headers_align_size); - str8_list_push(arena, &result, str8(image_headers_align, image_headers_align_size)); - } - - // - // entry point - // - { - Temp scratch = scratch_begin(&arena, 1); - - COFF_SectionHeader **section_table = push_array(arena, COFF_SectionHeader *, coff_section_table_count + 1); - for (U64 i = 1; i <= coff_section_table_count; i += 1) { section_table[i] = &coff_section_table[i-1]; } - - LNK_Symbol *entry_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, config->entry_point_name); - if (entry_symbol) { - *entry_point_va = safe_cast_u32(lnk_virt_off_from_symbol(section_table, entry_symbol)); - } - - scratch_end(scratch); - } - - Assert(result.total_size == expected_image_header_size); - ProfEnd(); - return result; -} - -internal LNK_ImageContext -lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs) -{ - ProfBegin("Image"); - lnk_timer_begin(LNK_Timer_Image); - - Temp scratch = scratch_begin(arena->v, arena->count); - - // init section table - LNK_SectionTable *sectab = lnk_section_table_alloc(); - lnk_section_table_push(sectab, str8_lit(".text"), PE_TEXT_SECTION_FLAGS); - lnk_section_table_push(sectab, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS); - lnk_section_table_push(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); - - { - ProfBegin("Remove Associative Sections"); - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - String8 string_table = str8_substr(obj->data, obj->header.string_table_range); - String8 symbol_table = str8_substr(obj->data, obj->header.symbol_table_range); - for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - // find associate section head section index - U32 head_sect_idx = max_U32; - for (U64 current_sect_idx = sect_idx;;) { - U32 symbol_idx = obj->comdats[current_sect_idx]; - if (symbol_idx == max_U32) { - break; - } - - COFF_ParsedSymbol symbol = coff_parse_symbol(obj->header, string_table, symbol_table, symbol_idx); - COFF_ComdatSelectType selection = COFF_ComdatSelect_Null; - U32 section_number = 0; - coff_parse_secdef(symbol, obj->header.is_big_obj, &selection, §ion_number, 0, 0); - if (selection != COFF_ComdatSelect_Associative) { - head_sect_idx = current_sect_idx; - break; - } - - current_sect_idx = section_number-1; - } - - if (head_sect_idx != max_U32) { - // flag current section with remove if head section was removed - COFF_SectionHeader *head_sect_header = lnk_coff_section_header_from_section_number(obj, head_sect_idx+1); - COFF_SectionHeader *curr_sect_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); - curr_sect_header->flags |= (head_sect_header->flags & COFF_SectionFlag_LnkRemove); - } - } - } - ProfEnd(); - } - - { - ProfBegin("Define And Count Sections"); - Temp temp = temp_begin(scratch.arena); - - HashTable **sect_defn_ht_arr = push_array(temp.arena, HashTable *, tp->worker_count); - for (U64 i = 0; i < tp->worker_count; i += 1) sect_defn_ht_arr[i] = hash_table_init(temp.arena, 128); - HashTable *sect_defn_ht = sect_defn_ht_arr[0]; - - ProfBegin("Gather Section Definitions"); - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; - String8 string_table = str8_substr(obj->data, obj->header.string_table_range); - - for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - - // remove section - if (sect_header->flags & COFF_SectionFlag_LnkRemove) { - continue; - } - - // parse section name - String8 full_sect_name = coff_name_from_section_header(string_table, sect_header); - String8 sect_name, sect_sort_idx; - coff_parse_section_name(full_sect_name, §_name, §_sort_idx); - - // was section defined? - COFF_SectionFlags sect_flags = sect_header->flags & ~COFF_SectionFlags_LnkFlags; - String8 sect_name_with_flags = lnk_make_name_with_flags(temp.arena, sect_name, sect_flags); - LNK_SectionDefinition *sect_defn = 0; - hash_table_search_string_raw(sect_defn_ht, sect_name_with_flags, §_defn); - - // create section definition - if (sect_defn == 0) { - sect_defn = push_array(temp.arena, LNK_SectionDefinition, 1); - sect_defn->name = sect_name; - sect_defn->flags = sect_flags; - sect_defn->obj = obj; - sect_defn->obj_sect_idx = sect_idx; - hash_table_push_string_raw(temp.arena, sect_defn_ht, sect_name_with_flags, sect_defn); - } - - // acc contrib count - sect_defn->contribs_count += 1; - } - } - ProfEnd(); - - ProfBegin("Merge Section Definitions"); - HashTable *main_sect_defns_ht = sect_defn_ht_arr[0]; - for (U64 worker_idx = 1; worker_idx < tp->worker_count; worker_idx += 1) { - U64 sect_defns_count = sect_defn_ht_arr[worker_idx]->count; - LNK_SectionDefinition **sect_defns = values_from_hash_table_raw(temp.arena, sect_defn_ht_arr[worker_idx]); - radsort(sect_defns, sect_defns_count, lnk_section_definition_is_before); - - for (U64 i = 0; i < sect_defns_count; i += 1) { - String8 name_with_flags = lnk_make_name_with_flags(temp.arena, sect_defns[i]->name, sect_defns[i]->flags); - LNK_SectionDefinition *main_defn = 0; - hash_table_search_string_raw(main_sect_defns_ht, name_with_flags, &main_defn); - if (main_defn == 0) { - main_defn = sect_defns[i]; - hash_table_push_string_raw(temp.arena, main_sect_defns_ht, name_with_flags, main_defn); - } else { - main_defn->contribs_count += sect_defns[i]->contribs_count; - } - } - } - ProfEnd(); - - ProfBegin("Push Sections And Reserve Section Contrib Memory"); - U64 sect_defns_count = main_sect_defns_ht->count; - LNK_SectionDefinition **sect_defns = values_from_hash_table_raw(temp.arena, main_sect_defns_ht); - radsort(sect_defns, sect_defns_count, lnk_section_definition_is_before); - - for (U64 defn_idx = 0; defn_idx < sect_defns_count; defn_idx += 1) { - LNK_SectionDefinition *sect_defn = sect_defns[defn_idx]; - - // do not create definitions for sections that are removed from the image - { - B32 skip = 0; - for (String8Node *name_n = config->remove_sections.first; name_n != 0; name_n = name_n->next) { - if (str8_match(sect_defn->name, name_n->string, 0)) { - skip = 1; - break; - } - } - if (skip) { continue; } - } - - // warn about conflicting section flags - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - LNK_Section *sect = §_n->data; - if (str8_match(sect->name, sect_defn->name, 0)) { - if (sect->flags != sect_defn->flags) { - LNK_Obj *obj = sect_defn->obj; - U32 sect_number = sect_defn->obj_sect_idx + 1; - COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, sect_number); - String8 sect_name = coff_name_from_section_header(str8_substr(obj->data, obj->header.string_table_range), sect_header); - String8 expected_flags_str = coff_string_from_section_flags(temp.arena, sect->flags); - String8 current_flags_str = coff_string_from_section_flags(temp.arena, sect_defn->flags); - lnk_error_obj(LNK_Warning_SectionFlagsConflict, sect_defn->obj, "detected section flags conflict in %S(No. %X); expected {%S} but got {%S}", sect_name, sect_number, expected_flags_str, current_flags_str); - } - } - } - - // reserve chunk for contribs - LNK_Section *sect = lnk_section_table_search(sectab, sect_defn->name, sect_defn->flags); - if (sect == 0) { - sect = lnk_section_table_push(sectab, sect_defn->name, sect_defn->flags); - } - AssertAlways(sect->contribs.chunk_count == 0); - lnk_section_contrib_chunk_list_push_chunk(sectab->arena, §->contribs, sect_defn->contribs_count); - } - ProfEnd(); - - temp_end(temp); - ProfEnd(); - } - - U64 expected_image_header_size; - { - // gather section contribs - LNK_SectionContrib ***sect_map = push_array(scratch.arena, LNK_SectionContrib **, objs_count); - { - U16 default_align = lnk_default_align_from_machine(config->machine); - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; - String8 string_table = str8_substr(obj->data, obj->header.string_table_range); - - sect_map[obj_idx] = push_array(scratch.arena, LNK_SectionContrib *, obj->header.section_count_no_null); - - for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - - if (sect_header->flags & COFF_SectionFlag_LnkRemove) { - continue; - } - - // parse section name - String8 full_sect_name = coff_name_from_section_header(string_table, sect_header); - String8 sect_name, sect_sort_idx; - coff_parse_section_name(full_sect_name, §_name, §_sort_idx); - - // search for section to contribute - COFF_SectionFlags flags = sect_header->flags & ~COFF_SectionFlags_LnkFlags; - LNK_Section *sect = lnk_section_table_search(sectab, sect_name, flags); - - LNK_SectionContrib *sc; - if (sect) { - // extract align - U16 sc_align = coff_align_size_from_section_flags(sect_header->flags); - if (sc_align == 0) { - sc_align = default_align; - } - - // extract section bytes - String8 sect_data = str8_substr(obj->data, rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize)); - - String8Node *data_n = push_array(sectab->arena, String8Node, 1); - data_n->string = sect_data; - - // fill out contrib - sc = lnk_section_contrib_chunk_push(sect->contribs.first, 1); - sc->align = sc_align; - sc->data_list = data_n; - sc->u.obj_idx = obj_idx; - sc->u.obj_sect_idx = sect_idx; - sc->u.sort_idx_size = (U16)sect_sort_idx.size; - sc->u.sort_idx = sect_sort_idx.str; - } else { - // section was removed, fill slot with pointer to null contrib - sc = &g_null_sc; - } - - sect_map[obj_idx][sect_idx] = sc; - } - } - } - - // build obj section map - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular && symbol.storage_class == COFF_SymStorageClass_External && symbol.value == 0) { - COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { - // replace contrib with leader - LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); - COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - sect_map[obj_idx][symbol.section_number - 1] = sect_map[defn->u.defined.obj->input_idx][defn_symbol.section_number - 1]; - } - } - } - } - - // finalize sections layouts - { - ProfBegin("Finalize Sections Layout"); - - // merge sections - if (config->flags & LNK_ConfigFlag_Merge) { - lnk_section_table_merge(sectab, config->merge_list); - } - - // sort contribs - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - for (LNK_SectionContribChunk *sc_chunk = sect_n->data.contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { - Assert(sc_chunk->count == sc_chunk->cap); - radsort(sc_chunk->v, sc_chunk->count, lnk_section_contrib_ptr_is_before); - } - } - - // assign contribs offsets, sizes, and section indices - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - lnk_finalize_section_layout(sectab, §_n->data, config->file_align); - } - - // remove empty sections - { - String8List empty_sect_list = {0}; - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - LNK_Section *sect = §_n->data; - if (sect->vsize == 0) { - str8_list_push(scratch.arena, &empty_sect_list, sect->name); - } - } - for (String8Node *name_n = empty_sect_list.first; name_n != 0; name_n = name_n->next) { - lnk_section_table_remove(sectab, name_n->string); - } - } - - // assign section indices to sections - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - lnk_assign_section_index(§_n->data, sectab->next_sect_idx++); - } - - // assing layout offsets and sizes to merged sections - for (LNK_SectionNode *sect_n = sectab->merge_list.first; sect_n != 0; sect_n = sect_n->next) { - LNK_Section *sect = §_n->data; - LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); - LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(sect); - LNK_Section *final_sect = lnk_finalized_section_from_id(sectab, sect->merge_id); - sect->voff = final_sect->voff + first_sc->u.off; - sect->vsize = (last_sc->u.off - first_sc->u.off) + last_sc->u.size; - sect->foff = final_sect->foff + first_sc->u.off; - sect->fsize = (last_sc->u.off - first_sc->u.off) + last_sc->u.size; - sect->sect_idx = final_sect->sect_idx; - } - - ProfEnd(); - } - - // build common block - // - // TODO: build common block in .bss and merge with .data - U64 common_block_contribs_count; - LNK_CommonBlockContrib *common_block_contribs; - LNK_Section *common_block_sect; - { - ProfBegin("Build Common Block"); - - ProfBegin("Count Contribs"); - common_block_contribs_count = 0; - for (U64 worker_id = 0; worker_id < tp->worker_count; worker_id += 1) { - for (LNK_SymbolHashTrieChunk *chunk = symtab->chunk_lists[LNK_SymbolScope_Defined][worker_id].first; - chunk != 0; - chunk = chunk->next) { - for (U64 i = 0; i < chunk->count; i += 1) { - LNK_Symbol *symbol = chunk->v[i].symbol; - COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); - COFF_SymbolValueInterpType parsed_interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); - if (parsed_interp == COFF_SymbolValueInterp_Common) { - common_block_contribs_count += 1; - } - } - } - } - ProfEnd(); - - ProfBegin("Gather Contribs"); - common_block_contribs = push_array(scratch.arena, LNK_CommonBlockContrib, common_block_contribs_count); - { - U64 cursor = 0; - for (U64 worker_id = 0; worker_id < tp->worker_count; worker_id += 1) { - for (LNK_SymbolHashTrieChunk *chunk = symtab->chunk_lists[LNK_SymbolScope_Defined][worker_id].first; - chunk != 0; - chunk = chunk->next) { - for (U64 i = 0; i < chunk->count; i += 1) { - LNK_Symbol *symbol = chunk->v[i].symbol; - COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); - COFF_SymbolValueInterpType parsed_interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); - if (parsed_interp == COFF_SymbolValueInterp_Common) { - LNK_CommonBlockContrib *contrib = &common_block_contribs[cursor++]; - contrib->symbol = chunk->v[i].symbol; - contrib->u.size = parsed_symbol.value; - } - } - } - } - } - ProfEnd(); - - if (common_block_contribs_count) { - ProfBeginV("Assign Common Block Offsets [count %llu]", common_block_contribs_count); - - // search/push .data - common_block_sect = lnk_section_table_search(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); - if (common_block_sect == 0) { - common_block_sect = lnk_section_table_push(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); - } - - // sort common blocks from largest to smallest for tighter packing - radsort(common_block_contribs, common_block_contribs_count, lnk_common_block_contrib_is_before); - - // compute common block offsets - for (U64 contrib_idx = 0; contrib_idx < common_block_contribs_count; contrib_idx += 1) { - LNK_CommonBlockContrib *contrib = &common_block_contribs[contrib_idx]; - U32 size = contrib->u.size; - U32 align = Min(32, u64_up_to_pow2(size)); // link.exe caps align at 32 bytes - common_block_sect->vsize = AlignPow2(common_block_sect->vsize, align); - contrib->u.offset = common_block_sect->vsize; - common_block_sect->vsize += size; - } - ProfEnd(); - } - - ProfEnd(); - } - - // - // section list -> array - // - LNK_SectionArray sects = lnk_section_array_from_list(scratch.arena, sectab->list); - - // patch symbol tables - { - ProfBegin("Patch Symbol Tables"); - - ProfBegin("Patch Common Block Leaders"); - B8 **was_patched = push_array(scratch.arena, B8 *, objs_count); - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - was_patched[obj_idx] = push_array(scratch.arena, B8, objs[obj_idx]->header.symbol_count); - } - - for (U64 contrib_idx = 0; contrib_idx < common_block_contribs_count; contrib_idx += 1) { - LNK_CommonBlockContrib *contrib = &common_block_contribs[contrib_idx]; - LNK_Symbol *symbol = contrib->symbol; - LNK_Obj *obj = symbol->u.defined.obj; - COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol->u.defined.symbol_idx); - - was_patched[obj->input_idx][symbol->u.defined.symbol_idx] = 1; - - if (obj->header.is_big_obj) { - COFF_Symbol32 *symbol32 = parsed_symbol.raw_symbol; - symbol32->value = contrib->u.offset; - symbol32->section_number = safe_cast_u32(common_block_sect->sect_idx + 1); - } else { - COFF_Symbol16 *symbol16 = parsed_symbol.raw_symbol; - symbol16->value = contrib->u.offset; - symbol16->section_number = safe_cast_u16(common_block_sect->sect_idx + 1); - } - } - ProfEnd(); - - ProfBegin("Patch Regular Symbols"); - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - - if (was_patched[obj_idx][symbol_idx]) { - continue; - } - - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular) { - U32 section_number = 0; - U32 value = 0; - { - COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { - LNK_SectionContrib *sc = sect_map[obj_idx][symbol.section_number-1]; - section_number = safe_cast_u32(sc->u.sect_idx + 1); - value = sc->u.off + symbol.value; - } - } - - if (obj->header.is_big_obj) { - COFF_Symbol32 *symbol32 = symbol.raw_symbol; - symbol32->section_number = section_number; - symbol32->value = value; - } else { - COFF_Symbol16 *symbol16 = symbol.raw_symbol; - symbol16->section_number = safe_cast_u16(section_number); - symbol16->value = value; - } - } - } - } - ProfEnd(); - - ProfBegin("Patch common blocks"); - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - - if (interp == COFF_SymbolValueInterp_Common) { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); - COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - if (defn) { - LNK_SectionContrib *sc = sect_map[defn->u.defined.obj->input_idx][defn_parsed.section_number-1]; - if (obj->header.is_big_obj) { - COFF_Symbol32 *symbol32 = symbol.raw_symbol; - symbol32->section_number = safe_cast_u32(sc->u.sect_idx + 1); - symbol32->value = safe_cast_u32(sc->u.off); - symbol32->storage_class = COFF_SymStorageClass_Static; - } else { - COFF_Symbol16 *symbol16 = symbol.raw_symbol; - symbol16->section_number = safe_cast_u16(sc->u.sect_idx + 1); - symbol16->value = safe_cast_u32(sc->u.off); - symbol16->storage_class = COFF_SymStorageClass_Static; - } - } - } - } - } - ProfEnd(); - - ProfBegin("Patch Abs"); - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - - if (interp == COFF_SymbolValueInterp_Abs && symbol.storage_class == COFF_SymStorageClass_External) { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); - - if (defn == 0) { - continue; - } - if (defn->u.defined.obj == obj && defn->u.defined.symbol_idx == symbol_idx) { - continue; - } - - COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_symbol.section_number, defn_symbol.value, defn_symbol.storage_class); - if (defn_interp == COFF_SymbolValueInterp_Regular) { - if (defn->u.defined.obj->header.is_big_obj) { - COFF_Symbol32 *symbol32 = symbol.raw_symbol; - symbol32->section_number = defn_symbol.section_number; - symbol32->value = defn_symbol.value; - symbol32->type = defn_symbol.type; - symbol32->storage_class = COFF_SymStorageClass_Static; - } else { - COFF_Symbol16 *symbol16 = symbol.raw_symbol; - symbol16->section_number = defn_symbol.section_number; - symbol16->value = defn_symbol.value; - symbol16->type = defn_symbol.type; - symbol16->storage_class = COFF_SymStorageClass_Static; - } - } else { - InvalidPath; - } - } - } - } - ProfEnd(); - - // patch undefined symbols - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Undefined) { - if (symbol.storage_class == COFF_SymStorageClass_External) { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); - if (defn) { - COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - - if (defn_symbol.storage_class == COFF_SymStorageClass_WeakExternal) { - continue; - } - - lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_symbol); - } else { - // TODO: collect unresolved undefined - } - } - } - } - } - - // patch weak symbols with strong definition - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Weak) { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); - if (defn) { - COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_symbol.section_number, defn_symbol.value, defn_symbol.storage_class); - if (defn_interp != COFF_SymbolValueInterp_Weak) { - lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_symbol); - } - } - } - } - } - - // patch weak with fallback definition - { - HashTable *visited_symbols_ht = hash_table_init(scratch.arena, 32); - struct LookupLocation { - struct LookupLocation *next; - LNK_Obj *obj; - U64 symbol_idx; - }; - struct LookupLocation *lookup_first = 0; - struct LookupLocation *lookup_last = 0; - struct LookupLocation *lookup_free_list = 0; - - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Undefined && symbol.storage_class == COFF_SymStorageClass_External) { - String8 lookup_name = symbol.name; - LNK_Obj *lookup_obj = obj; - U64 lookup_symbol_idx = symbol_idx; - for (;;) { - // lookup definition - LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, lookup_name); - if (defn == 0) { - break; - } - - // not external symbol? patch and move to next symbol - COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - if (defn_parsed.storage_class != COFF_SymStorageClass_WeakExternal) { - lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_parsed); - break; - } - - // check against cyclic refs - struct LookupLocation *was_visited = 0; - hash_table_search_string_raw(visited_symbols_ht, lookup_name, &was_visited); - if (was_visited != 0) { - Temp temp = temp_begin(scratch.arena); - - String8List list = {0}; - for (struct LookupLocation *l = lookup_first; l != 0; l = l->next) { - COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(l->obj, l->symbol_idx); - str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx) =>", l->obj->path, loc_symbol.name, l->symbol_idx); - } - { - COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(was_visited->obj, was_visited->symbol_idx); - str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx)", was_visited->obj->path, loc_symbol.name, was_visited->symbol_idx); - } - - String8 loc_string = str8_list_join(temp.arena, &list, &(StringJoin){.sep = str8_lit("\n") }); - lnk_error_obj(LNK_Error_WeakCycle, obj, "unable to resolve cyclic symbol %S; ref chain:\n%S", symbol.name, loc_string); - - temp_end(temp); - break; - } - struct LookupLocation *loc = lookup_free_list; - if (lookup_free_list) { - SLLStackPop(lookup_free_list); - } else { - loc = push_array(scratch.arena, struct LookupLocation, 1); - } - loc->obj = lookup_obj; - loc->symbol_idx = symbol_idx; - SLLQueuePush(lookup_first, lookup_last, loc); - hash_table_push_string_raw(scratch.arena, visited_symbols_ht, lookup_name, loc); - - // fallback to weak tag for definition - COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(defn_parsed, defn->u.defined.obj->header.is_big_obj); - COFF_ParsedSymbol parsed_tag = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, weak_ext->tag_index); - lookup_name = parsed_tag.name; - lookup_obj = defn->u.defined.obj; - lookup_symbol_idx = weak_ext->tag_index; - } - - hash_table_purge(visited_symbols_ht); - lookup_free_list = lookup_first; - lookup_first = 0; - lookup_last = 0; - } - } - } - } - - // patch weak symbols which have undefined tag - { - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Weak) { - COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(symbol, obj->header.is_big_obj); - AssertAlways(weak_ext->tag_index < symbol_idx); - - COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, weak_ext->tag_index); - COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_symbol.section_number, defn_symbol.value, defn_symbol.storage_class); - if (defn_interp != COFF_SymbolValueInterp_Undefined) { - lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_symbol); - } - } - } - } - } - - ProfEnd(); - } - - expected_image_header_size = lnk_compute_win32_image_header_size(config, sects.count); - - // assign virtual space - U64 voff_cursor = AlignPow2(expected_image_header_size + sizeof(COFF_SectionHeader), config->sect_align); - for (U64 i = 0; i < sects.count; i += 1) { - lnk_assign_section_virtual_space(sects.v[i], config->sect_align, &voff_cursor); - } - - // patch virtual offset and size in section headers - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; - for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { - LNK_SectionContrib *sc = sect_map[obj_idx][sect_idx]; - LNK_Section *sect = sects.v[sc->u.sect_idx]; - sect_header->vsize = sc->u.size; - sect_header->voff = sect->voff + sc->u.off; - } - } - } - - // build base relocs - if (~config->flags & LNK_ConfigFlag_Fixed) { - String8List base_relocs_data = lnk_build_base_relocs(tp, arena, config, objs_count, objs); - if (base_relocs_data.total_size) { - LNK_Section *reloc = lnk_section_table_push(sectab, str8_lit(".reloc"), PE_RELOC_SECTION_FLAGS); - LNK_SectionContribChunk *first_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &reloc->contribs, 1); - LNK_SectionContrib *sc = lnk_section_contrib_chunk_push(first_sc_chunk, 1); - sc->data_list = base_relocs_data.first; - sc->align = 1; - sc->u.sort_idx_size = 0; - sc->u.obj_idx = max_U32; - - lnk_finalize_section_layout(sectab, reloc, config->file_align); - lnk_assign_section_virtual_space(reloc, config->sect_align, &voff_cursor); - lnk_assign_section_index(reloc, sectab->next_sect_idx++); - - sects = lnk_section_array_from_list(scratch.arena, sectab->list); - expected_image_header_size = lnk_compute_win32_image_header_size(config, sects.count); - } - } - - // assign file space - U64 foff_cursor = AlignPow2(expected_image_header_size, config->file_align); - for (U64 i = 0; i < sects.count; i += 1) { - lnk_assign_section_file_space(sects.v[i], &foff_cursor); - } - - // patch file offset and size in section headers - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; - for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - B32 patch_section_header = (~sect_header->flags & COFF_SectionFlag_LnkRemove) && - !lnk_is_coff_section_debug(obj, sect_idx); - if (patch_section_header) { - LNK_SectionContrib *sc = sect_map[obj_idx][sect_idx]; - LNK_Section *sect = sects.v[sc->u.sect_idx]; - if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { - sect_header->fsize = sc->u.size; - sect_header->foff = sect->foff + sc->u.off; - } - } - } - } - } - - // build win32 image header - LNK_SectionArray sects; - { - sects = lnk_section_array_from_list(scratch.arena, sectab->list); - String8List image_header_data = lnk_build_win32_header(scratch.arena, symtab, config, sects, AlignPow2(expected_image_header_size, config->file_align)); - - LNK_Section *image_header_sect = lnk_section_table_push(sectab, str8_lit(".rad_linker_image_header_section"), 0); - LNK_SectionContribChunk *image_header_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &image_header_sect->contribs, 1); - LNK_SectionContrib *image_header_sc = lnk_section_contrib_chunk_push(image_header_sc_chunk, 1); - - image_header_sc->align = config->file_align; - image_header_sc->data_list = image_header_data.first; - image_header_sc->u.size = safe_cast_u32(image_header_data.total_size); - - lnk_finalize_section_layout(sectab, image_header_sect, config->file_align); - - sects = lnk_section_array_from_list(scratch.arena, sectab->list); - } - - // patch section symbols - { - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Undefined) { - if (symbol.storage_class == COFF_SymStorageClass_Section) { - LNK_Section *sect = lnk_section_table_search(sectab, symbol.name, symbol.value); - if (sect) { - if (~sect->flags & COFF_SectionFlag_MemDiscardable) { - LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); - if (obj->header.is_big_obj) { - COFF_Symbol32 *symbol32 = symbol.raw_symbol; - symbol32->section_number = safe_cast_u32(first_sc->u.sect_idx + 1); - symbol32->value = first_sc->u.off; - symbol32->storage_class = COFF_SymStorageClass_Static; - } else { - COFF_Symbol16 *symbol16 = symbol.raw_symbol; - symbol16->section_number = safe_cast_u16(first_sc->u.sect_idx + 1); - symbol16->value = first_sc->u.off; - symbol16->storage_class = COFF_SymStorageClass_Static; - } - } else { - lnk_error_obj(LNK_Error_SectRefsDiscardedMemory, obj, "symbol %S (No. 0x%llx) references section with discard flag", symbol.name, symbol_idx); - } - } else { - lnk_error_obj(LNK_Error_UnresolvedSymbol, obj, "undefined section symbol %S (No 0x%llx) refers to an image section that doesn't exist", symbol.name, symbol_idx); - } - } - } - } - } - } - - String8 image_data = {0}; - { - ProfBegin("Image Fill"); - - U64 image_size = 0; - for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { - image_size += sects.v[sect_idx]->fsize; - } - - image_data.size = image_size; - image_data.str = push_array_no_zero(arena->v[0], U8, image_size); - - for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { - LNK_Section *sect = sects.v[sect_idx]; - - if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { - // pick fill pick - U8 fill_byte = 0; - if (sect->flags & COFF_SectionFlag_CntCode) { - fill_byte = lnk_code_align_byte_from_machine(config->machine); - } - - // copy section contribution - U64 prev_sc_opl = 0; - for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { - for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { - LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; - - // fill align bytes - Assert(sc->u.off >= prev_sc_opl); - U64 fill_size = sc->u.off - prev_sc_opl; - MemorySet(image_data.str + sect->foff + prev_sc_opl, fill_byte, fill_size); - prev_sc_opl = sc->u.off + sc->u.size; - - // copy contrib contents - { - U64 cursor = 0; - for (String8Node *data_n = sc->data_list; data_n != 0; data_n = data_n->next) { - Assert(sc->u.off + data_n->string.size <= sect->vsize); - MemoryCopy(image_data.str + sect->foff + sc->u.off + cursor, data_n->string.str, data_n->string.size); - cursor += data_n->string.size; - } - } - } - } - - // fill section align bytes - { - U64 fill_size = sect->fsize - prev_sc_opl; - MemorySet(image_data.str + sect->foff + prev_sc_opl, fill_byte, fill_size); - } - } - } - - ProfEnd(); - } - - { - ProfBegin("Image Patch"); - - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, image_data); - COFF_SectionHeader **image_section_table = coff_section_table_from_data(scratch.arena, image_data, pe.section_table_range); - - // patch relocs - { - ProfBegin("Patch Relocs"); - LNK_ObjRelocPatcher task = {0}; - task.image_data = image_data; - task.objs = objs; - task.image_base = pe.image_base; - task.image_section_table = image_section_table; - tp_for_parallel(tp, 0, objs_count, lnk_obj_reloc_patcher, &task); - ProfEnd(); - } - - // patch load config - { - LNK_Symbol *load_config_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit(MSCRT_LOAD_CONFIG_SYMBOL_NAME)); - if (load_config_symbol) { - U64 load_config_foff = lnk_file_off_from_symbol(image_section_table, load_config_symbol); - String8 load_config_data = str8_skip(image_data, load_config_foff); - - U32 load_config_size = 0; - if (sizeof(load_config_size) <= load_config_data.size) { - PE_DataDirectory *load_config_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_LOAD_CONFIG); - load_config_dir->virt_off = lnk_virt_off_from_symbol(image_section_table, load_config_symbol); - load_config_dir->virt_size = load_config_size; - } else { - // TODO: report corrupted load config - } - } - } - - // patch exceptions - { - LNK_Section *pdata_sect = lnk_section_table_search(sectab, str8_lit(".pdata"), PE_PDATA_SECTION_FLAGS); - if (pdata_sect) { - String8 raw_pdata = str8_substr(image_data, rng_1u64(pdata_sect->foff, pdata_sect->foff + pdata_sect->vsize)); - pe_pdata_sort(config->machine, raw_pdata); - - PE_DataDirectory *pdata_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_EXCEPTIONS); - pdata_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, pdata_sect); - pdata_dir->virt_size = lnk_get_section_contrib_size(pdata_sect); - } - } - - // patch export - { - LNK_Section *edata_sect = lnk_section_table_search(sectab, str8_lit(".edata"), PE_EDATA_SECTION_FLAGS); - if (edata_sect) { - PE_DataDirectory *export_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_EXPORT); - LNK_SectionContrib *edata_first_contrib = lnk_get_first_section_contrib(edata_sect); - LNK_SectionContrib *edata_last_contrib = lnk_get_last_section_contrib(edata_sect); - export_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, edata_sect); - export_dir->virt_size = lnk_get_section_contrib_size(edata_sect); - } - } - - // patch base relocs - { - LNK_Section *reloc_sect = lnk_section_table_search(sectab, str8_lit(".reloc"), PE_RELOC_SECTION_FLAGS); - if (reloc_sect) { - PE_DataDirectory *reloc_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_BASE_RELOC); - reloc_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, reloc_sect); - reloc_dir->virt_size = lnk_get_section_contrib_size(reloc_sect); - } - } - - // patch import and import addr - { - LNK_Section *idata_sect = lnk_section_table_search(sectab, str8_lit(".idata"), PE_IDATA_SECTION_FLAGS); - LNK_Symbol *null_import_desc = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "__NULL_IMPORT_DESCRIPTOR"); - LNK_Symbol *null_thunk_data = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "\x7f%S_NULL_THUNK_DATA", lnk_get_image_name(config)); - if (idata_sect && null_import_desc && null_thunk_data) { - COFF_ParsedSymbol null_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_import_desc->u.defined.obj, null_import_desc->u.defined.symbol_idx); - LNK_SectionContrib *idata_first_contrib = lnk_get_first_section_contrib(idata_sect); - PE_DataDirectory *import_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_IMPORT); - import_dir->virt_off = image_section_table[idata_first_contrib->u.sect_idx + 1]->voff + idata_first_contrib->u.off; - import_dir->virt_size = null_import_desc_parsed.value - idata_first_contrib->u.off; - - COFF_ParsedSymbol null_thunk_data_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_thunk_data->u.defined.obj, null_thunk_data->u.defined.symbol_idx); - U64 null_thunk_data_voff = image_section_table[null_thunk_data_parsed.section_number]->voff + null_thunk_data_parsed.value; - U64 first_import_foff = image_section_table[idata_first_contrib->u.sect_idx+1]->foff + idata_first_contrib->u.off; - PE_ImportEntry *first_import = str8_deserial_get_raw_ptr(image_data, first_import_foff, sizeof(*first_import)); - PE_DataDirectory *import_addr_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_IMPORT_ADDR); - import_addr_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, idata_sect); - import_addr_dir->virt_size = null_thunk_data_voff - first_import->import_addr_table_voff /* null */ + coff_word_size_from_machine(config->machine); - } - } - - // patch delay imports - { - LNK_Section *didat_sect = lnk_section_table_search(sectab, str8_lit(".didat"), PE_IDATA_SECTION_FLAGS); - LNK_Symbol *null_import_desc = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("__NULL_DELAY_IMPORT_DESCRIPTOR")); - LNK_Symbol *last_null_thunk = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "\x7f%S_NULL_THUNK_DATA_DLA", lnk_get_image_name(config)); - if (didat_sect && null_import_desc && last_null_thunk) { - COFF_ParsedSymbol null_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_import_desc->u.defined.obj, null_import_desc->u.defined.symbol_idx); - LNK_SectionContrib *didat_first_contrib = lnk_get_first_section_contrib(didat_sect); - PE_DataDirectory *import_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_DELAY_IMPORT); - import_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, didat_sect); - import_dir->virt_size = lnk_get_section_contrib_size(didat_sect); - } - } - - // patch TLS - { - LNK_Symbol *tls_used_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, MSCRT_TLS_SYMBOL_NAME); - if (tls_used_symbol) { - ProfBegin("Patch TLS"); - - // find max align in .tls - U64 tls_align = 0; - LNK_Section *tls_sect = lnk_section_table_search(sectab, str8_lit(".tls"), PE_TLS_SECTION_FLAGS); - for (LNK_SectionContribChunk *sc_chunk = tls_sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { - for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { - Assert(IsPow2(sc_chunk->v[sc_idx]->align)); - tls_align = Max(tls_align, sc_chunk->v[sc_idx]->align); - } - } - - // patch-in align - U64 tls_header_foff = lnk_file_off_from_symbol(image_section_table, tls_used_symbol); - B32 is_tls_header64 = coff_word_size_from_machine(config->machine) == 8; - if (is_tls_header64) { - PE_TLSHeader64 *tls_header = str8_deserial_get_raw_ptr(image_data, tls_header_foff, sizeof(*tls_header)); - tls_header->characteristics |= coff_section_flag_from_align_size(tls_align); - } else { - PE_TLSHeader32 *tls_header = str8_deserial_get_raw_ptr(image_data, tls_header_foff, sizeof(*tls_header)); - tls_header->characteristics |= coff_section_flag_from_align_size(tls_align); - } - - // patch directory - PE_DataDirectory *tls_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_TLS); - tls_dir->virt_off = lnk_virt_off_from_symbol(image_section_table, tls_used_symbol); - tls_dir->virt_size = is_tls_header64 ? sizeof(PE_TLSHeader64) : sizeof(PE_TLSHeader32); - - ProfEnd(); - } - } - - // patch debug - { - LNK_Section *debug_dir_sect = lnk_section_table_search(sectab, str8_lit(".RAD_LINK_PE_DEBUG_DIR"), PE_RDATA_SECTION_FLAGS); - if (debug_dir_sect) { - // patch directory - PE_DataDirectory *debug_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_DEBUG); - debug_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, debug_dir_sect); - debug_dir->virt_size = lnk_get_section_contrib_size(debug_dir_sect); - - // find debug directory begin and end pair - LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(debug_dir_sect); - LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(debug_dir_sect); - U64 debug_begin_foff = lnk_foff_from_section_contrib(image_section_table, first_sc); - U64 debug_end_fopl = lnk_fopl_from_section_contrib(image_section_table, last_sc); - - // patch file offsets to the debug directories - for (U64 cursor = debug_begin_foff; cursor + sizeof(PE_DebugDirectory) <= debug_end_fopl; cursor += sizeof(PE_DebugDirectory)) { - PE_DebugDirectory *dir = str8_deserial_get_raw_ptr(image_data, cursor, sizeof(PE_DebugDirectory)); - for (U64 section_number = 1; section_number < pe.section_count+1; section_number += 1) { - if (image_section_table[section_number]->voff <= dir->voff && dir->voff < image_section_table[section_number]->voff + image_section_table[section_number]->vsize) { - dir->foff = image_section_table[section_number]->foff + (dir->voff - image_section_table[section_number]->voff); - } - } - } - } - } - - // patch resources - { - LNK_Section *rsrc_sect = lnk_section_table_search(sectab, str8_lit(".rsrc"), PE_RSRC_SECTION_FLAGS); - if (rsrc_sect) { - PE_DataDirectory *rsrc_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_RESOURCES); - rsrc_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, rsrc_sect); - rsrc_dir->virt_size = lnk_get_section_contrib_size(rsrc_sect); - } - } - - // image checksum - if (config->flags & LNK_ConfigFlag_WriteImageChecksum) { - ProfBegin("Image Checksum"); - *pe.check_sum = pe_compute_checksum(image_data.str, image_data.size); - ProfEnd(); - } - - // compute image guid, and patch PDB and RDI guids - { - LNK_Symbol *guid_pdb_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINK_PE_DEBUG_GUID_PDB")); - LNK_Symbol *guid_rdi_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINK_PE_DEBUG_GUID_RDI")); - - if (guid_pdb_symbol || guid_rdi_symbol) { - switch (config->guid_type) { - case LNK_DebugInfoGuid_Null: break; - case Lnk_DebugInfoGuid_ImageBlake3: { - ProfBegin("Hash Image With Blake3"); - U128 hash = lnk_blake3_hash_parallel(tp, 128, image_data); - MemoryCopy(&config->guid, hash.u8, sizeof(hash.u8)); - ProfEnd(); - } break; - } - } - - if (guid_pdb_symbol) { - U64 cv_guid_foff = lnk_file_off_from_symbol(image_section_table, guid_pdb_symbol); - Guid *cv_guid = str8_deserial_get_raw_ptr(image_data, cv_guid_foff, sizeof(*cv_guid)); - *cv_guid = config->guid; - } - - if (guid_rdi_symbol) { - U64 cv_guid_foff = lnk_file_off_from_symbol(image_section_table, guid_rdi_symbol); - Guid *cv_guid = str8_deserial_get_raw_ptr(image_data, cv_guid_foff, sizeof(*cv_guid)); - *cv_guid = config->guid; - } - } - - ProfEnd(); - } - - LNK_ImageContext image_ctx = {0}; - image_ctx.image_data = image_data; - image_ctx.sectab = sectab; - - lnk_timer_end(LNK_Timer_Image); - ProfEnd(); // :EndImage - scratch_end(scratch); - return image_ctx; -} - -//////////////////////////////// - internal THREAD_POOL_TASK_FUNC(lnk_undef_symbol_finder) { @@ -3410,140 +1221,6 @@ lnk_run_symbol_finder(TP_Context *tp, return result; } -//////////////////////////////// - -internal String8List -lnk_build_rad_map(Arena *arena, String8 image_data, U64 thread_count, U64 objs_count, LNK_Obj **objs, LNK_LibList lib_index[LNK_InputSource_Count], LNK_SectionTable *sectab) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, image_data); - COFF_SectionHeader **image_section_table = coff_section_table_from_data(scratch.arena, image_data, pe.section_table_range); - - String8List map = {0}; - - ProfBegin("SECTIONS"); - str8_list_pushf(arena, &map, "# SECTIONS\n"); - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - LNK_Section *sect = §_n->data; - - str8_list_pushf(arena, &map, "%S\n", sect->name); - str8_list_pushf(arena, &map, "%-8s %-8s %-8s %-8s %-16s %-8s %s\n", "FileOff", "VirtOff", "VirtSize", "FileSize", "Blake3", "SC", "Source"); - - for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { - for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { - Temp temp = temp_begin(scratch.arena); - LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; - - U64 file_off = image_section_table[sc->u.sect_idx]->foff + sc->u.off; - U64 virt_off = image_section_table[sc->u.sect_idx]->voff + sc->u.off; - U64 virt_size = sc->u.size; - U64 file_size = sc->u.size; - String8 sc_data = str8_substr(image_data, rng_1u64(file_off, file_off + virt_size)); - - U128 sc_hash = {0}; - if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { - blake3_hasher hasher; blake3_hasher_init(&hasher); - blake3_hasher_update(&hasher, sc_data.str, sc_data.size); - blake3_hasher_finalize(&hasher, (U8 *)&sc_hash, sizeof(sc_hash)); - } - - String8 file_off_str = push_str8f(temp.arena, "%08x", file_off); - String8 virt_off_str = push_str8f(temp.arena, "%08x", virt_off); - String8 virt_size_str = push_str8f(temp.arena, "%08x", virt_size); - String8 file_size_str = push_str8f(temp.arena, "%08x", file_size); - String8 sc_hash_str = push_str8f(temp.arena, "%08x%08x", sc_hash.u64[0], sc_hash.u64[1]); - String8 sc_idx_str = push_str8f(temp.arena, "%llx", sc_idx); - String8 source_str; - { - String8List source_list = {0}; - -#if 0 - // location - if (chunk->obj) { - if (chunk->obj->lib_path.size) { - String8 lib_name = chunk->obj->lib_path; - lib_name = str8_skip_last_slash(lib_name); - lib_name = str8_chop_last_dot(lib_name); - - String8 obj_name = chunk->obj->path; - obj_name = str8_skip_last_slash(obj_name); - - str8_list_pushf(temp.arena, &source_list, "%S:%S", lib_name, obj_name); - } else { - str8_list_push(temp.arena, &source_list, chunk->obj->path); - } - } -#else - str8_list_pushf(temp.arena, &source_list, ""); -#endif - - // string join - source_str = str8_list_join(temp.arena, &source_list, &(StringJoin){.sep=str8_lit(" ")}); - } - - str8_list_pushf(arena, &map, "%-8S %-8S %-8S %-8S %-16S %-8S %S\n", file_off_str, virt_off_str, virt_size_str, file_size_str, sc_hash, sc_idx_str, source_str); - - temp_end(temp); - } - } - str8_list_pushf(arena, &map, "\n"); - } - ProfEnd(); - - - ProfBegin("SYMBOLS"); - str8_list_pushf(arena, &map, "# SYMBOLS\n"); - str8_list_pushf(arena, &map, "%-8s %s\n", "Sect:Idx", "Symbol"); - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular) { - String8 sc = push_str8f(scratch.arena, "%x:%x", symbol.section_number, symbol.value); - - String8 lib_name = obj->lib_path; - lib_name = str8_skip_last_slash(lib_name); - lib_name = str8_chop_last_dot(lib_name); - - String8 obj_name = obj->path; - obj_name = str8_skip_last_slash(obj_name); - - str8_list_pushf(arena, &map, "%-8S (%S%s%S) %S\n", - sc, - lib_name, lib_name.size ? ":" : "", obj_name, - symbol.name); - } - } - } - str8_list_pushf(arena, &map, "\n"); - ProfEnd(); - - - ProfBegin("LIBS"); - for (U64 input_source = 0; input_source < LNK_InputSource_Count; ++input_source) { - if (lib_index[input_source].count) { - str8_list_pushf(arena, &map, "# LIBS (%S)\n", lnk_string_from_input_source(input_source)); - for (LNK_LibNode *lib_n = lib_index[input_source].first; lib_n != 0; lib_n = lib_n->next) { - str8_list_pushf(arena, &map, "%S\n", lib_n->data.path); - } - } - } - ProfEnd(); - - - scratch_end(scratch); - ProfEnd(); - return map; -} - -//////////////////////////////// - internal LNK_LinkContext lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) { @@ -4448,6 +2125,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } { + ProfBegin("Build * Debug Directories *"); if (config->debug_mode != LNK_DebugMode_None && config->debug_mode != LNK_DebugMode_Null) { LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); input->path = str8_lit("* Debug Directory PDB *"); @@ -4557,6 +2235,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) link_ctx.export_symbol_list = export_symbol_list; MemoryCopyTyped(&link_ctx.lib_index[0], &lib_index[0], ArrayCount(lib_index)); + ProfEnd(); scratch_end(scratch); return link_ctx; @@ -4564,6 +2243,2491 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) #undef state_list_pop } +internal +THREAD_POOL_TASK_FUNC(lnk_remove_associative_sections_task) +{ + LNK_BuildImageTask *task = raw_task; + + LNK_Obj *obj = task->objs[task_id]; + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + String8 symbol_table = str8_substr(obj->data, obj->header.symbol_table_range); + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + // find associate section head section index + U32 head_sect_idx = max_U32; + for (U64 current_sect_idx = sect_idx;;) { + U32 symbol_idx = obj->comdats[current_sect_idx]; + if (symbol_idx == max_U32) { + break; + } + + COFF_ParsedSymbol symbol = coff_parse_symbol(obj->header, string_table, symbol_table, symbol_idx); + COFF_ComdatSelectType selection = COFF_ComdatSelect_Null; + U32 section_number = 0; + coff_parse_secdef(symbol, obj->header.is_big_obj, &selection, §ion_number, 0, 0); + if (selection != COFF_ComdatSelect_Associative) { + head_sect_idx = current_sect_idx; + break; + } + + current_sect_idx = section_number-1; + } + + if (head_sect_idx != max_U32) { + // flag current section with remove if head section was removed + COFF_SectionHeader *head_sect_header = lnk_coff_section_header_from_section_number(obj, head_sect_idx+1); + COFF_SectionHeader *curr_sect_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); + curr_sect_header->flags |= (head_sect_header->flags & COFF_SectionFlag_LnkRemove); + } + } +} + +internal +THREAD_POOL_TASK_FUNC(lnk_gather_section_definitions_task) +{ + LNK_BuildImageTask *task = raw_task; + + HashTable *sect_defn_ht = task->u.gather_sects.defns[worker_id]; + LNK_Obj *obj = task->objs[task_id]; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + + // remove section + if (sect_header->flags & COFF_SectionFlag_LnkRemove) { + continue; + } + + // parse section name + String8 full_sect_name = coff_name_from_section_header(string_table, sect_header); + String8 sect_name, sect_sort_idx; + coff_parse_section_name(full_sect_name, §_name, §_sort_idx); + + // was section defined? + COFF_SectionFlags sect_flags = sect_header->flags & ~COFF_SectionFlags_LnkFlags; + String8 sect_name_with_flags = lnk_make_name_with_flags(arena, sect_name, sect_flags); + LNK_SectionDefinition *sect_defn = 0; + hash_table_search_string_raw(sect_defn_ht, sect_name_with_flags, §_defn); + + // create section definition + if (sect_defn == 0) { + sect_defn = push_array(arena, LNK_SectionDefinition, 1); + sect_defn->name = sect_name; + sect_defn->flags = sect_flags; + sect_defn->obj = obj; + sect_defn->obj_sect_idx = sect_idx; + hash_table_push_string_raw(arena, sect_defn_ht, sect_name_with_flags, sect_defn); + } + + // acc contrib count + sect_defn->contribs_count += 1; + } +} + +internal +THREAD_POOL_TASK_FUNC(lnk_gather_section_contribs_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + + LNK_Obj *obj = task->objs[obj_idx]; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + + ProfBeginV("Gather Section Contribs [%S]", obj->path); + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + + if (sect_header->flags & COFF_SectionFlag_LnkRemove) { + continue; + } + + // parse section name + String8 full_sect_name = coff_name_from_section_header(string_table, sect_header); + String8 sect_name, sect_sort_idx; + coff_parse_section_name(full_sect_name, §_name, §_sort_idx); + + // search for section to contribute + COFF_SectionFlags flags = sect_header->flags & ~COFF_SectionFlags_LnkFlags; + LNK_Section *sect = lnk_section_table_search(task->sectab, sect_name, flags); + + LNK_SectionContrib *sc; + if (sect) { + // extract align + U16 sc_align = coff_align_size_from_section_flags(sect_header->flags); + if (sc_align == 0) { + sc_align = task->default_align; + } + + // extract section bytes + String8 sect_data = str8_substr(obj->data, rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize)); + + // fill out contrib + sc = lnk_section_contrib_chunk_push_atomic(sect->contribs.first, 1); + + sc->node.next = 0; + sc->node.string = sect_data; + sc->data_list = &sc->node; + sc->align = sc_align; + sc->u.obj_idx = obj_idx; + sc->u.obj_sect_idx = sect_idx; + sc->u.sort_idx_size = (U16)sect_sort_idx.size; + sc->u.sort_idx = sect_sort_idx.str; + } else { + // section was removed, fill slot with pointer to null contrib + sc = &g_null_sc; + } + + task->sect_map[obj_idx][sect_idx] = sc; + } + ProfEnd(); +} + +internal +THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + ProfBeginV("Set COMDAT Leaders [%S]", obj->path); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular && symbol.storage_class == COFF_SymStorageClass_External && symbol.value == 0) { + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + task->sect_map[obj_idx][symbol.section_number - 1] = task->sect_map[defn->u.defined.obj->input_idx][defn_symbol.section_number - 1]; + } + } + } + ProfEnd(); +} + +internal int +lnk_section_contrib_ptr_is_before(void *raw_a, void *raw_b) +{ + // Grouped Sections (PE Format) + // "All contributions with the same object-section name are allocated contiguously in the image, + // and the blocks of contributions are sorted in lexical order by object-section name." + LNK_SectionContrib *a = *(LNK_SectionContrib **)raw_a; + LNK_SectionContrib *b = *(LNK_SectionContrib **)raw_b; + + int cmp; + + if (a->u.sort_idx_size <= 1 && b->u.sort_idx_size <= 1) { + if (a->u.sort_idx_size == b->u.sort_idx_size) { + cmp = u32_compar(&a->u.obj_idx, &b->u.obj_idx); + if (cmp == 0) { + cmp = u32_compar(&a->u.obj_sect_idx, &b->u.obj_sect_idx); + } + } else { + // place sections without sort postfix first + cmp = a->u.sort_idx_size < b->u.sort_idx_size; + } + } else { + // sort on section postfix + String8 a_sort_idx = str8(a->u.sort_idx, a->u.sort_idx_size); + String8 b_sort_idx = str8(b->u.sort_idx, b->u.sort_idx_size); + cmp = str8_compar_case_sensitive(&a_sort_idx, &b_sort_idx); + + // sort on obj position on command line + if (cmp == 0) { + cmp = u32_compar(&a->u.obj_idx, &b->u.obj_idx); + + // sort on section index + if (cmp == 0) { + cmp = u32_compar(&a->u.obj_sect_idx, &b->u.obj_sect_idx); + } + } + } + + int is_before = cmp < 0; + return is_before; +} + +internal +THREAD_POOL_TASK_FUNC(lnk_sort_contribs_task) +{ + LNK_BuildImageTask *task = raw_task; + LNK_SectionContribChunk *chunk = task->u.sort_contribs.chunks[task_id]; + Assert(chunk->count == chunk->cap); + radsort(chunk->v, chunk->count, lnk_section_contrib_ptr_is_before); +} + +internal int +lnk_common_block_contrib_is_before(void *raw_a, void *raw_b) +{ + LNK_CommonBlockContrib *a = raw_a; + LNK_CommonBlockContrib *b = raw_b; + + int is_before; + if (a->u.size == b->u.size) { + LNK_Symbol *a_symbol = a->symbol; + LNK_Symbol *b_symbol = b->symbol; + if (a_symbol->u.defined.obj->input_idx == b_symbol->u.defined.obj->input_idx) { + is_before = a_symbol->u.defined.symbol_idx < b_symbol->u.defined.symbol_idx; + } else { + is_before = a_symbol->u.defined.obj->input_idx < b_symbol->u.defined.obj->input_idx; + } + } else { + is_before = a->u.size > b->u.size; + } + + return is_before; +} + +internal +THREAD_POOL_TASK_FUNC(lnk_patch_common_block_leaders_task) +{ + ProfBeginFunction(); + + LNK_BuildImageTask *task = raw_task; + Rng1U64 contrib_range = task->u.patch_symtabs.ranges[task_id]; + + for (U64 contrib_idx = contrib_range.min; contrib_idx < contrib_range.max; contrib_idx += 1) { + LNK_CommonBlockContrib *contrib = &task->u.patch_symtabs.common_block_contribs[contrib_idx]; + LNK_Symbol *symbol = contrib->symbol; + LNK_Obj *obj = symbol->u.defined.obj; + COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol->u.defined.symbol_idx); + U64 section_number = task->u.patch_symtabs.common_block_sect->sect_idx + 1; + + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = parsed_symbol.raw_symbol; + symbol32->value = contrib->u.offset; + symbol32->section_number = safe_cast_u32(section_number); + } else { + COFF_Symbol16 *symbol16 = parsed_symbol.raw_symbol; + symbol16->value = contrib->u.offset; + symbol16->section_number = safe_cast_u16(section_number); + } + + task->u.patch_symtabs.was_symbol_patched[obj->input_idx][symbol->u.defined.symbol_idx] = 1; + } + + ProfEnd(); +} + +internal +THREAD_POOL_TASK_FUNC(lnk_patch_regular_symbols_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + ProfBegin("Patch Regular Symbols [%S]", obj->path); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + + if (task->u.patch_symtabs.was_symbol_patched[obj_idx][symbol_idx]) { + continue; + } + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { + U32 section_number = 0; + U32 value = 0; + { + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { + LNK_SectionContrib *sc = task->sect_map[obj_idx][symbol.section_number-1]; + section_number = safe_cast_u32(sc->u.sect_idx + 1); + value = sc->u.off + symbol.value; + } + } + + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = symbol.raw_symbol; + symbol32->section_number = section_number; + symbol32->value = value; + } else { + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + symbol16->section_number = safe_cast_u16(section_number); + symbol16->value = value; + } + } + } + ProfEnd(); +} + +internal +THREAD_POOL_TASK_FUNC(lnk_patch_common_block_symbols_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + ProfBeginV("Patch Common Block Symbols [%S]", obj->path); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + + if (interp == COFF_SymbolValueInterp_Common) { + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + if (defn) { + LNK_SectionContrib *sc = task->sect_map[defn->u.defined.obj->input_idx][defn_parsed.section_number-1]; + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = symbol.raw_symbol; + symbol32->section_number = safe_cast_u32(sc->u.sect_idx + 1); + symbol32->value = safe_cast_u32(sc->u.off); + symbol32->storage_class = COFF_SymStorageClass_Static; + } else { + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + symbol16->section_number = safe_cast_u16(sc->u.sect_idx + 1); + symbol16->value = safe_cast_u32(sc->u.off); + symbol16->storage_class = COFF_SymStorageClass_Static; + } + } + } + } + ProfEnd(); +} + +internal +THREAD_POOL_TASK_FUNC(lnk_patch_abs_symbols_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + ProfBeginV("Patch Absolute Symbols [%S]", obj->path); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + + if (interp == COFF_SymbolValueInterp_Abs && symbol.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + + if (defn == 0) { + continue; + } + if (defn->u.defined.obj == obj && defn->u.defined.symbol_idx == symbol_idx) { + continue; + } + + COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_symbol.section_number, defn_symbol.value, defn_symbol.storage_class); + if (defn_interp == COFF_SymbolValueInterp_Regular) { + if (defn->u.defined.obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = symbol.raw_symbol; + symbol32->section_number = defn_symbol.section_number; + symbol32->value = defn_symbol.value; + symbol32->type = defn_symbol.type; + symbol32->storage_class = COFF_SymStorageClass_Static; + } else { + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + symbol16->section_number = defn_symbol.section_number; + symbol16->value = defn_symbol.value; + symbol16->type = defn_symbol.type; + symbol16->storage_class = COFF_SymStorageClass_Static; + } + } else { + InvalidPath; + } + } + } + ProfEnd(); +} + +internal void +lnk_patch_weak_external_symbol(B32 is_big_obj, void *symbol, COFF_ParsedSymbol parsed_symbol) +{ + COFF_SymbolValueInterpType parsed_symbol_interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); + switch (parsed_symbol_interp) { + case COFF_SymbolValueInterp_Regular: { + if (is_big_obj) { + COFF_Symbol32 *symbol32 = symbol; + symbol32->section_number = parsed_symbol.section_number; + symbol32->value = parsed_symbol.value; + symbol32->type = parsed_symbol.type; + symbol32->storage_class = COFF_SymStorageClass_Static; + } else { + COFF_Symbol16 *symbol16 = symbol; + symbol16->section_number = safe_cast_u16(parsed_symbol.section_number); + symbol16->value = parsed_symbol.value; + symbol16->type = parsed_symbol.type; + symbol16->storage_class = COFF_SymStorageClass_Static; + } + } break; + case COFF_SymbolValueInterp_Common: { + InvalidPath; + } break; + case COFF_SymbolValueInterp_Abs: { + if (is_big_obj) { + COFF_Symbol32 *symbol32 = symbol; + symbol32->section_number = COFF_Symbol_AbsSection32; + symbol32->value = parsed_symbol.value; + symbol32->type = parsed_symbol.type; + symbol32->storage_class = COFF_SymStorageClass_Static; + } else { + COFF_Symbol16 *symbol16 = symbol; + symbol16->section_number = COFF_Symbol_AbsSection16; + symbol16->value = parsed_symbol.value; + symbol16->type = parsed_symbol.type; + symbol16->storage_class = COFF_SymStorageClass_Static; + } + } break; + case COFF_SymbolValueInterp_Weak: + case COFF_SymbolValueInterp_Debug: + case COFF_SymbolValueInterp_Undefined: { + InvalidPath; + } break; + default: { NotImplemented; } break; + } +} + +internal +THREAD_POOL_TASK_FUNC(lnk_patch_undefined_symbols_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + ProfBeginV("Patch Undefined Symbols [%S]", obj->path); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Undefined) { + if (symbol.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + if (defn) { + COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + + if (defn_symbol.storage_class == COFF_SymStorageClass_WeakExternal) { + continue; + } + + lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_symbol); + } else { + // TODO: collect unresolved undefined + } + } + } + } + ProfEnd(); +} + +internal +THREAD_POOL_TASK_FUNC(lnk_patch_weak_symbols_with_strong_definition_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + ProfBeginV("Patch Weak Symbols [%S]", obj->path); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Weak) { + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + if (defn) { + COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_symbol.section_number, defn_symbol.value, defn_symbol.storage_class); + if (defn_interp != COFF_SymbolValueInterp_Weak) { + lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_symbol); + } + } + } + } + ProfEnd(); +} + +internal +THREAD_POOL_TASK_FUNC(lnk_patch_weak_symbols_with_fallback_definition_task) +{ + Temp scratch = scratch_begin(&arena, 1); + + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + HashTable *visited_symbols_ht = hash_table_init(scratch.arena, 32); + struct LookupLocation { + struct LookupLocation *next; + LNK_Obj *obj; + U64 symbol_idx; + }; + struct LookupLocation *lookup_first = 0; + struct LookupLocation *lookup_last = 0; + struct LookupLocation *lookup_free_list = 0; + + ProfBegin("Patch Weak Symbols [%S]", obj->path); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Undefined && symbol.storage_class == COFF_SymStorageClass_External) { + String8 lookup_name = symbol.name; + LNK_Obj *lookup_obj = obj; + U64 lookup_symbol_idx = symbol_idx; + for (;;) { + // lookup definition + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, lookup_name); + if (defn == 0) { + break; + } + + // not external symbol? patch and move to next symbol + COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + if (defn_parsed.storage_class != COFF_SymStorageClass_WeakExternal) { + lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_parsed); + break; + } + + // check against cyclic refs + struct LookupLocation *was_visited = 0; + hash_table_search_string_raw(visited_symbols_ht, lookup_name, &was_visited); + if (was_visited != 0) { + Temp temp = temp_begin(scratch.arena); + + String8List list = {0}; + for (struct LookupLocation *l = lookup_first; l != 0; l = l->next) { + COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(l->obj, l->symbol_idx); + str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx) =>", l->obj->path, loc_symbol.name, l->symbol_idx); + } + { + COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(was_visited->obj, was_visited->symbol_idx); + str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx)", was_visited->obj->path, loc_symbol.name, was_visited->symbol_idx); + } + + String8 loc_string = str8_list_join(temp.arena, &list, &(StringJoin){.sep = str8_lit("\n") }); + lnk_error_obj(LNK_Error_WeakCycle, obj, "unable to resolve cyclic symbol %S; ref chain:\n%S", symbol.name, loc_string); + + temp_end(temp); + break; + } + struct LookupLocation *loc = lookup_free_list; + if (lookup_free_list) { + SLLStackPop(lookup_free_list); + } else { + loc = push_array(scratch.arena, struct LookupLocation, 1); + } + loc->obj = lookup_obj; + loc->symbol_idx = symbol_idx; + SLLQueuePush(lookup_first, lookup_last, loc); + hash_table_push_string_raw(scratch.arena, visited_symbols_ht, lookup_name, loc); + + // fallback to weak tag for definition + COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(defn_parsed, defn->u.defined.obj->header.is_big_obj); + COFF_ParsedSymbol parsed_tag = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, weak_ext->tag_index); + lookup_name = parsed_tag.name; + lookup_obj = defn->u.defined.obj; + lookup_symbol_idx = weak_ext->tag_index; + } + + hash_table_purge(visited_symbols_ht); + lookup_free_list = lookup_first; + lookup_first = 0; + lookup_last = 0; + } + } + ProfEnd(); + + scratch_end(scratch); +} + +internal +THREAD_POOL_TASK_FUNC(lnk_patch_weak_symbols_with_undefined_tag_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + ProfBeginV("Patch Weak Symbols [%S]", obj->path); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Weak) { + COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(symbol, obj->header.is_big_obj); + AssertAlways(weak_ext->tag_index < symbol_idx); + + COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, weak_ext->tag_index); + COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_symbol.section_number, defn_symbol.value, defn_symbol.storage_class); + if (defn_interp != COFF_SymbolValueInterp_Undefined) { + lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_symbol); + } + } + } + ProfEnd(); +} + +internal U64 +lnk_compute_win32_image_header_size(LNK_Config *config, U64 sect_count) +{ + U64 image_header_size = 0; + image_header_size += sizeof(PE_DosHeader) + pe_dos_program.size; + image_header_size += sizeof(U32); // PE_MAGIC + image_header_size += sizeof(COFF_FileHeader); + image_header_size += pe_has_plus_header(config->machine) ? sizeof(PE_OptionalHeader32Plus) : sizeof(PE_OptionalHeader32); + image_header_size += sizeof(PE_DataDirectory) * config->data_dir_count; + image_header_size += sizeof(COFF_SectionHeader) * sect_count; + return image_header_size; +} + +internal +THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) +{ + LNK_ObjRelocPatcher *task = raw_task; + LNK_Obj *obj = task->objs[task_id]; + + COFF_FileHeaderInfo obj_header = obj->header; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj_header.section_table_range).str; + String8 symbol_table = str8_substr(obj->data, obj_header.symbol_table_range); + String8 string_table = str8_substr(obj->data, obj_header.string_table_range); + + for (U64 sect_idx = 0; sect_idx < obj_header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *section_header = §ion_table[sect_idx]; + + // was section removed? + if (section_header->flags & COFF_SectionFlag_LnkRemove) { + continue; + } + if (section_header->flags & COFF_SectionFlag_CntUninitializedData) { + continue; + } + + // get section file range + Rng1U64 section_frange = rng_1u64(section_header->foff, section_header->foff + section_header->fsize); + + // get section bytes + String8 section_data; + if (lnk_is_coff_section_debug(obj, sect_idx)) { + section_data = str8_substr(obj->data, section_frange); + } else { + section_data = str8_substr(task->image_data, section_frange); + } + + // find section relocs + COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, section_header); + COFF_Reloc *relocs = (COFF_Reloc *)(obj->data.str + reloc_info.array_off); + + // apply relocs + for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { + COFF_Reloc *reloc = &relocs[reloc_idx]; + + // error check relocation + if (obj->header.machine == COFF_MachineType_X64) { + if (reloc->type > COFF_Reloc_X64_Last) { + lnk_error_obj(LNK_Error_IllegalRelocation, obj, "unknown relocation 0x%x", reloc->type); + } + } else if (obj->header.machine != COFF_MachineType_Unknown) { + NotImplemented; + } + + // compute virtual offsets + U64 reloc_voff = section_header->voff + reloc->apply_off; + + // compute symbol location values + U32 symbol_secnum = 0; + U32 symbol_secoff = 0; + S64 symbol_voff = 0; + { + COFF_ParsedSymbol symbol; + if (obj_header.is_big_obj) { + symbol = coff_parse_symbol32(string_table, (COFF_Symbol32 *)symbol_table.str + reloc->isymbol); + } else { + symbol = coff_parse_symbol16(string_table, (COFF_Symbol16 *)symbol_table.str + reloc->isymbol); + } + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { + symbol_secnum = symbol.section_number; + symbol_secoff = symbol.value; + symbol_voff = safe_cast_u32((U64)task->image_section_table[symbol.section_number]->voff + (U64)symbol_secoff); + } else if (interp == COFF_SymbolValueInterp_Abs) { + // There aren't enough bits in COFF symbol to store full image base address, + // so we special case __ImageBase. A better solution would be to add + // a 64-bit symbol format to COFF. + if (str8_match(symbol.name, str8_lit("__ImageBase"), 0)) { + symbol.value = task->image_base; + } + + symbol_secnum = 0; + symbol_secoff = 0; + symbol_voff = (S64)symbol.value - (S64)task->image_base; + } else if (interp == COFF_SymbolValueInterp_Weak) { + // unresolved weak + } else if (interp == COFF_SymbolValueInterp_Undefined) { + // unresolved undefined + } else { + InvalidPath; + } + } + + // pick reloc value + COFF_RelocValue reloc_value = {0}; + switch (obj_header.machine) { + case COFF_MachineType_Unknown: {} break; + case COFF_MachineType_X64: { reloc_value = coff_pick_reloc_value_x64(reloc->type, task->image_base, reloc_voff, symbol_secnum, symbol_secoff, symbol_voff); } break; + default: { NotImplemented; } break; + } + + // read addend + Assert(reloc_value.size <= section_data.size); + U64 raw_addend = 0; + str8_deserial_read(section_data, reloc->apply_off, &raw_addend, reloc_value.size, 1); + + // compute new reloc value + S64 addend = extend_sign64(raw_addend, reloc_value.size); + U64 reloc_result = reloc_value.value + addend; + + // commit new reloc value + MemoryCopy(section_data.str + reloc->apply_off, &reloc_result, reloc_value.size); + } + } +} + +internal int +lnk_section_definition_is_before(void *raw_a, void *raw_b) +{ + LNK_SectionDefinition **a = raw_a; + LNK_SectionDefinition **b = raw_b; + int is_before; + if ((*a)->obj->input_idx == (*b)->obj->input_idx) { + is_before = (*a)->obj_sect_idx < (*b)->obj_sect_idx; + } else { + is_before = (*a)->obj->input_idx < (*b)->obj->input_idx; + } + return is_before; +} + +internal void +lnk_push_coff_symbols_from_data(Arena *arena, LNK_SymbolList *symbol_list, String8 data, LNK_SymbolArray obj_symbols) +{ + if (data.size % sizeof(U32)) { + // TODO: report invalid data size + } + U64 count = data.size / sizeof(U32); + for (U32 *ptr = (U32*)data.str, *opl = ptr + count; ptr < opl; ++ptr) { + U32 coff_symbol_idx = *ptr; + if (coff_symbol_idx >= obj_symbols.count) { + // TODO: report invalid symbol index + continue; + } + Assert(coff_symbol_idx < obj_symbols.count); + LNK_Symbol *symbol = obj_symbols.v + coff_symbol_idx; + lnk_symbol_list_push(arena, symbol_list, symbol); + } +} + +internal String8 +lnk_build_guard_data(Arena *arena, U64Array voff_arr, U64 stride) +{ + Assert(stride >= sizeof(U32)); + + // check for duplicates +#if DEBUG + for (U64 i = 1; i < voff_arr.count; ++i) { + Assert(voff_arr.[i-1] != voff_ptr[i]); + } +#endif + + U64 buffer_size = stride * voff_arr.count; + U8 *buffer = push_array(arena, U8, buffer_size); + for (U64 i = 0; i < voff_arr.count; ++i) { + U32 *voff_ptr = (U32*)(buffer + i * stride); + *voff_ptr = voff_arr.v[i]; + } + + String8 guard_data = str8(buffer, buffer_size); + return guard_data; +} + +internal String8List +lnk_build_guard_tables(TP_Context *tp, + LNK_SectionTable *sectab, + LNK_SymbolTable *symtab, + U64 objs_count, + LNK_Obj **objs, + COFF_MachineType machine, + String8 entry_point_name, + LNK_GuardFlags guard_flags, + B32 emit_suppress_flag) +{ + NotImplemented; + String8List result = {0}; + return result; +#if 0 + ProfBeginFunction(); + Temp scratch = scratch_begin(0, 0); + + LNK_Section **sect_id_map = lnk_sect_id_map_from_section_table(scratch.arena, sectab); + + enum { GUARD_FIDS, GUARD_IATS, GUARD_LJMP, GUARD_EHCONT, GUARD_COUNT }; + LNK_SymbolList guard_symbol_list_table[GUARD_COUNT]; MemoryZeroStruct(&guard_symbol_list_table[0]); + + // collect symbols from objs + for (LNK_ObjNode *obj_node = obj_list.first; obj_node != NULL; obj_node = obj_node->next) { + LNK_Obj *obj = &obj_node->data; + MSCRT_FeatFlags feat_flags = lnk_obj_get_features(obj); + B32 has_guard_flags = (feat_flags & MSCRT_FeatFlag_GUARD_CF) || (feat_flags & MSCRT_FeatFlag_GUARD_EH_CONT); + if (has_guard_flags) { + LNK_SymbolArray symbol_arr = lnk_symbol_array_from_list(scratch.arena, obj->symbol_list); + if (guard_flags & LNK_Guard_Cf) { + String8List gfids_list = lnk_collect_obj_chunks(scratch.arena, obj, str8_lit(".gfids"), str8_zero(), 1); + for (String8Node *node = gfids_list.first; node != 0; node = node->next) { + lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], node->string, symbol_arr); + } + String8List giats_list = lnk_collect_obj_chunks(scratch.arena, obj, str8_lit(".giats"), str8_zero(), 1); + for (String8Node *node = giats_list.first; node != 0; node = node->next) { + lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_IATS], node->string, symbol_arr); + } + } + if (guard_flags & LNK_Guard_LongJmp) { + String8List gljmp_list = lnk_obj_search_chunks(scratch.arena, obj, str8_lit(".gljmp"), str8_zero(), 1); + for (String8Node *node = gljmp_list.first; node != 0; node = node->next) { + lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_LJMP], node->string, symbol_arr); + } + } + if (guard_flags & LNK_Guard_EhCont) { + String8List gehcont_list = lnk_obj_search_chunks(scratch.arena, obj, str8_lit(".gehcont"), str8_zero(), 1); + for (String8Node *node = gehcont_list.first; node != 0; node = node->next) { + lnk_push_coff_symbols_from_data(scratch.arena, &guard_symbol_list_table[GUARD_EHCONT], node->string, symbol_arr); + } + } + } else { + // TODO: loop over COFF relocs + NotImplemented; +#if 0 + // use relocation data in code sections to get function symbols + for (U64 isect = 0; isect < obj->sect_count; ++isect) { + LNK_Chunk *chunk = obj->chunk_arr[isect]; + if (!chunk) { + continue; + } + if (lnk_chunk_is_discarded(chunk)) { + continue; + } + if (~chunk->flags & COFF_SectionFlag_CntCode) { + continue; + } + Assert(chunk->type == LNK_Chunk_Leaf); + for (LNK_Reloc *reloc = obj->sect_reloc_list_arr[isect].first; reloc != 0; reloc = reloc->next) { + LNK_Symbol *symbol = lnk_resolve_symbol(symtab, reloc->symbol); + if (!LNK_Symbol_IsDefined(symbol->type)) { + continue; + } + LNK_DefinedSymbol *defined_symbol = &symbol->u.defined; + if (~defined_symbol->flags & LNK_DefinedSymbolFlag_IsFunc) { + continue; + } + LNK_Chunk *symbol_chunk = defined_symbol->u.chunk; + if (!symbol_chunk) { + continue; + } + if (symbol_chunk->type != LNK_Chunk_Leaf) { + continue; + } + if (~symbol_chunk->flags & COFF_SectionFlag_CntCode) { + continue; + } + lnk_symbol_list_push(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], symbol); + } + } +#endif + } + } + + // entry point + LNK_Symbol *entry_point_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, entry_point_name); + lnk_symbol_list_push(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], entry_point_symbol); + + // push exports + { + Temp temp = temp_begin(scratch.arena); + KeyValuePair *raw_exports = key_value_pairs_from_hash_table(temp.arena, exptab->name_export_ht); + for (U64 i = 0; i < exptab->name_export_ht->count; ++i) { + LNK_Export *exp = raw_exports[i].value_raw; + lnk_symbol_list_push(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], exp->symbol); + } + scratch_end(temp); + } + + // TODO: push noname exports + + NotImplemented; +#if 0 + // push thunks + LNK_SymbolScope scope_array[] = { LNK_SymbolScope_Defined, LNK_SymbolScope_Internal }; + for (U64 iscope = 0; iscope < ArrayCount(scope_array); ++iscope) { + LNK_SymbolScope scope = scope_array[iscope]; + for (U64 ibucket = 0; ibucket < symtab->bucket_count[scope]; ++ibucket) { + for (LNK_SymbolNode *symbol_node = symtab->buckets[scope][ibucket].first; + symbol_node != NULL; + symbol_node = symbol_node->next) { + LNK_Symbol *symbol = symbol_node->data; + if (!LNK_Symbol_IsDefined(symbol->type)) continue; + LNK_DefinedSymbol *defined_symbol = &symbol->u.defined; + if (~defined_symbol->flags & LNK_DefinedSymbolFlag_IsThunk) continue; + lnk_symbol_list_push(scratch.arena, &guard_symbol_list_table[GUARD_FIDS], symbol); + } + } + } +#endif + + // build section data + lnk_section_table_build_data(tp, sectab, machine); + lnk_section_table_assign_virtual_offsets(sectab); + + // compute symbols virtual offsets + U64Array guard_voff_arr_table[GUARD_COUNT]; + for (U64 i = 0; i < ArrayCount(guard_symbol_list_table); ++i) { + U64List voff_list; MemoryZeroStruct(&voff_list); + LNK_SymbolList symbol_list = guard_symbol_list_table[i]; + for (LNK_SymbolNode *symbol_node = symbol_list.first; symbol_node != NULL; symbol_node = symbol_node->next) { + LNK_Symbol *symbol = lnk_resolve_symbol(symtab, symbol_node->data); + if (!LNK_Symbol_IsDefined(symbol->type)) { + continue; + } + LNK_DefinedSymbol *defined_symbol = &symbol->u.defined; + LNK_Chunk *chunk = defined_symbol->u.chunk; + if (!chunk) { + continue; + } + if (lnk_chunk_is_discarded(chunk)) { + continue; + } + U64 chunk_voff = lnk_virt_off_from_chunk_ref(sect_id_map, chunk->ref); + U64 symbol_voff = chunk_voff + defined_symbol->u.chunk_offset; + Assert(symbol_voff != 0); + u64_list_push(scratch.arena, &voff_list, symbol_voff); + } + U64Array voff_arr = u64_array_from_list(scratch.arena, &voff_list); + radsort(voff_arr.v, voff_arr.count, u64_compar_is_before); + guard_voff_arr_table[i] = u64_array_remove_duplicates(scratch.arena, voff_arr); + } + + // push guard sections + static struct { + char *name; + char *symbol; + int flags; + } sect_layout[] = { + { ".gfids", LNK_GFIDS_SYMBOL_NAME, LNK_GFIDS_SECTION_FLAGS }, + { ".giats", LNK_GIATS_SYMBOL_NAME, LNK_GIATS_SECTION_FLAGS }, + { ".gljmp", LNK_GLJMP_SYMBOL_NAME, LNK_GLJMP_SECTION_FLAGS }, + { ".gehcont", LNK_GEHCONT_SYMBOL_NAME, LNK_GEHCONT_SECTION_FLAGS }, + }; + for (U64 i = 0; i < ArrayCount(sect_layout); ++i) { + LNK_Section *sect = lnk_section_table_push(sectab, str8_cstring(sect_layout[i].name), sect_layout[i].flags); + } + + // TODO: emit table for SEH on X86 + if (machine == COFF_MachineType_X86) { + lnk_not_implemented("__safe_se_handler_table"); + lnk_not_implemented("__safe_se_handler_count"); + } + + LNK_Symbol *gfids_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Internal, str8_lit(LNK_GFIDS_SYMBOL_NAME)); + LNK_Symbol *giats_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Internal, str8_lit(LNK_GIATS_SYMBOL_NAME)); + LNK_Symbol *gljmp_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Internal, str8_lit(LNK_GLJMP_SYMBOL_NAME)); + LNK_Symbol *gehcont_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Internal, str8_lit(LNK_GEHCONT_SYMBOL_NAME)); + + LNK_Section *gfids_sect = lnk_section_table_search_id(sectab, gfids_symbol->u.defined.u.chunk->ref.sect_id); + LNK_Section *giats_sect = lnk_section_table_search_id(sectab, giats_symbol->u.defined.u.chunk->ref.sect_id); + LNK_Section *gljmp_sect = lnk_section_table_search_id(sectab, gljmp_symbol->u.defined.u.chunk->ref.sect_id); + LNK_Section *gehcont_sect = lnk_section_table_search_id(sectab, gehcont_symbol->u.defined.u.chunk->ref.sect_id); + + LNK_Chunk *gfids_array_chunk = gfids_sect->root; + LNK_Chunk *giats_array_chunk = giats_sect->root; + LNK_Chunk *gljmp_array_chunk = gljmp_sect->root; + LNK_Chunk *gehcont_array_chunk = gehcont_sect->root; + + // first 4 bytes are call's destination virtual offset + U64 entry_stride = sizeof(U32); + if (emit_suppress_flag) { + // 4th byte tells kernel what to do when destination VA is not in the bitmap. + // If byte is 1 exception is suppressed and program keeps running. + // If zero then exception is raised with nt!_KiRaiseSecurityCheckFailure(FAST_FAIL_GUARD_ICALL_CHECK_FAILURE) and exception code 0xA. + entry_stride = 5; + } + + // make guard data from virtual offsets + String8 gfids_data = lnk_build_guard_data(gfids_sect->arena, guard_voff_arr_table[GUARD_FIDS], entry_stride); + String8 giats_data = lnk_build_guard_data(giats_sect->arena, guard_voff_arr_table[GUARD_IATS], entry_stride); + String8 gljmp_data = lnk_build_guard_data(gljmp_sect->arena, guard_voff_arr_table[GUARD_LJMP], entry_stride); + String8 gehcont_data = lnk_build_guard_data(gehcont_sect->arena, guard_voff_arr_table[GUARD_EHCONT], entry_stride); + + // push guard data + lnk_section_push_chunk_data(gfids_sect, gfids_array_chunk, gfids_data, str8_zero()); + lnk_section_push_chunk_data(giats_sect, giats_array_chunk, giats_data, str8_zero()); + lnk_section_push_chunk_data(gljmp_sect, gljmp_array_chunk, gljmp_data, str8_zero()); + lnk_section_push_chunk_data(gehcont_sect, gehcont_array_chunk, gehcont_data, str8_zero()); + + LNK_Symbol *gflags_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_FLAGS_SYMBOL_NAME)); + LNK_Symbol *gfids_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_FIDS_TABLE_SYMBOL_NAME)); + LNK_Symbol *gfids_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_FIDS_COUNT_SYMBOL_NAME)); + LNK_Symbol *giats_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_IAT_TABLE_SYMBOL_NAME)); + LNK_Symbol *giats_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_IAT_COUNT_SYMBOL_NAME)); + LNK_Symbol *gljmp_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_LONGJMP_TABLE_SYMBOL_NAME)); + LNK_Symbol *gljmp_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_LONGJMP_COUNT_SYMBOL_NAME)); + LNK_Symbol *gehcont_table_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_EHCONT_TABLE_SYMBOL_NAME)); + LNK_Symbol *gehcont_count_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Main, str8_lit(MSCRT_GUARD_EHCONT_COUNT_SYMBOL_NAME)); + + LNK_DefinedSymbol *gflags_def = &gflags_symbol->u.defined; + LNK_DefinedSymbol *gfids_table_def = &gfids_table_symbol->u.defined; + LNK_DefinedSymbol *gfids_count_def = &gfids_count_symbol->u.defined; + LNK_DefinedSymbol *giats_table_def = &giats_table_symbol->u.defined; + LNK_DefinedSymbol *giats_count_def = &giats_count_symbol->u.defined; + LNK_DefinedSymbol *gljmp_table_def = &gljmp_table_symbol->u.defined; + LNK_DefinedSymbol *gljmp_count_def = &gljmp_count_symbol->u.defined; + LNK_DefinedSymbol *gehcont_table_def = &gehcont_table_symbol->u.defined; + LNK_DefinedSymbol *gehcont_count_def = &gehcont_count_symbol->u.defined; + + // guard flags + gflags_def->value_type = LNK_DefinedSymbolValue_VA; + gflags_def->u.va = PE_LoadConfigGuardFlags_CF_INSTRUMENTED; + if ((guard_flags & LNK_Guard_Cf)) { + gflags_def->u.va |= PE_LoadConfigGuardFlags_CF_FUNCTION_TABLE_PRESENT; + } + if ((guard_flags & LNK_Guard_LongJmp) && guard_voff_arr_table[GUARD_LJMP].count) { + gflags_def->u.va |= PE_LoadConfigGuardFlags_CF_LONGJUMP_TABLE_PRESENT; + } + if ((guard_flags & LNK_Guard_EhCont) && guard_voff_arr_table[GUARD_EHCONT].count) { + gflags_def->u.va |= PE_LoadConfigGuardFlags_EH_CONTINUATION_TABLE_PRESENT; + } + { + LNK_Section *didat_sect = lnk_section_table_search(sectab, str8_lit(".didat")); + if (didat_sect) { + gflags_def->u.va |= PE_LoadConfigGuardFlags_DELAYLOAD_IAT_IN_ITS_OWN_SECTION; + } + } + if (entry_stride > sizeof(U32)) { + U64 size_bit = (entry_stride - 5); + if (emit_suppress_flag) { + gflags_def->u.va |= PE_LoadConfigGuardFlags_CF_EXPORT_SUPPRESSION_INFO_PRESENT; + } + gflags_def->u.va |= (1 << size_bit) << PE_LoadConfigGuardFlags_CF_FUNCTION_TABLE_SIZE_SHIFT; + } + + // gfids + if (guard_voff_arr_table[GUARD_FIDS].count) { + gfids_table_def->value_type = LNK_DefinedSymbolValue_Chunk; + gfids_table_def->u.chunk = gfids_array_chunk; + } + gfids_count_def->value_type = LNK_DefinedSymbolValue_VA; + gfids_count_def->u.va = guard_voff_arr_table[GUARD_FIDS].count; + + // giats + if (guard_voff_arr_table[GUARD_IATS].count) { + giats_table_def->value_type = LNK_DefinedSymbolValue_Chunk; + giats_table_def->u.chunk = giats_array_chunk; + } + giats_count_def->value_type = LNK_DefinedSymbolValue_VA; + giats_count_def->u.va = guard_voff_arr_table[GUARD_IATS].count; + + // gljmp + if (guard_voff_arr_table[GUARD_LJMP].count) { + gljmp_table_def->value_type = LNK_DefinedSymbolValue_Chunk; + gljmp_table_def->u.chunk = gljmp_array_chunk; + } + gljmp_count_def->value_type = LNK_DefinedSymbolValue_VA; + gljmp_count_def->u.va = guard_voff_arr_table[GUARD_LJMP].count; + + // gehcont + if (guard_voff_arr_table[GUARD_EHCONT].count) { + gehcont_table_def->value_type = LNK_DefinedSymbolValue_Chunk; + gehcont_table_def->u.chunk = gehcont_array_chunk; + } + gehcont_count_def->value_type = LNK_DefinedSymbolValue_VA; + gehcont_count_def->u.va = guard_voff_arr_table[GUARD_EHCONT].count; + + scratch_end(scratch); + ProfEnd(); +#endif +} + +internal +THREAD_POOL_TASK_FUNC(lnk_emit_base_relocs_from_objs_task) +{ + ProfBeginFunction(); + + LNK_ObjBaseRelocTask *task = raw_task; + Rng1U64 range = task->ranges[task_id]; + + HashTable *page_ht = task->page_ht_arr[task_id]; + LNK_BaseRelocPageList *page_list = &task->list_arr[task_id]; + + for (U64 obj_idx = range.min; obj_idx < range.max; ++obj_idx) { + LNK_Obj *obj = task->obj_arr[obj_idx]; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + + if (sect_header->flags & COFF_SectionFlag_LnkRemove) { + continue; + } + + COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, sect_header); + COFF_Reloc *relocs = (COFF_Reloc *)(obj->data.str + reloc_info.array_off); + + for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { + COFF_Reloc *r = &relocs[reloc_idx]; + + COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, r->isymbol); + COFF_SymbolValueInterpType symbol_interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + B32 is_symbol_address = symbol_interp != COFF_SymbolValueInterp_Abs; + + if (is_symbol_address) { + B32 is_addr32 = 0, is_addr64 = 0; + switch (obj->header.machine) { + case COFF_MachineType_Unknown: {} break; + case COFF_MachineType_X64: { + is_addr32 = r->type == COFF_Reloc_X64_Addr32; + is_addr64 = r->type == COFF_Reloc_X64_Addr64; + } break; + default: { NotImplemented; } break; + } + + if (is_addr32 || is_addr64) { + U64 reloc_voff = sect_header->voff + r->apply_off; + U64 page_voff = AlignDownPow2(reloc_voff, task->page_size); + + LNK_BaseRelocPageNode *page; + { + KeyValuePair *is_page_present = hash_table_search_u64(page_ht, page_voff); + if (is_page_present) { + page = is_page_present->value_raw; + } else { + // fill out page + page = push_array(arena, LNK_BaseRelocPageNode, 1); + page->v.voff = page_voff; + + // push page + SLLQueuePush(page_list->first, page_list->last, page); + page_list->count += 1; + + // register page voff + hash_table_push_u64_raw(arena, page_ht, page_voff, page); + } + } + + if (is_addr32) { + if (task->is_large_addr_aware) { + COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, r->isymbol); + lnk_error_obj(LNK_Error_LargeAddrAwareRequired, obj, "found out of range ADDR32 relocation for '%S', link with /LARGEADDRESSAWARE:NO", symbol.name); + } else { + u64_list_push(arena, &page->v.entries_addr32, reloc_voff); + } + } else { + u64_list_push(arena, &page->v.entries_addr64, reloc_voff); + } + } + } + } + } + } + + ProfEnd(); +} + +internal +THREAD_POOL_TASK_FUNC(lnk_patch_virtual_offsets_and_sizes_in_obj_section_headers_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + ProfBeginV("Patch Virtual Offset And Size In Section Headers [%S]", obj->path); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { + LNK_SectionContrib *sc = task->sect_map[obj_idx][sect_idx]; + LNK_Section *sect = task->image_sects.v[sc->u.sect_idx]; + sect_header->vsize = sc->u.size; + sect_header->voff = sect->voff + sc->u.off; + } + } + ProfEnd(); +} + +internal +THREAD_POOL_TASK_FUNC(lnk_patch_file_offsets_and_sizes_in_obj_section_headers_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + ProfBeginV("Patch File Offsets And Sizes In Obj Section Headers [%S]", obj->path); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + B32 patch_section_header = (~sect_header->flags & COFF_SectionFlag_LnkRemove) && + !lnk_is_coff_section_debug(obj, sect_idx); + if (patch_section_header) { + LNK_SectionContrib *sc = task->sect_map[obj_idx][sect_idx]; + LNK_Section *sect = task->image_sects.v[sc->u.sect_idx]; + if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { + sect_header->fsize = sc->u.size; + sect_header->foff = sect->foff + sc->u.off; + } + } + } + ProfEnd(); +} + +internal +THREAD_POOL_TASK_FUNC(lnk_patch_section_symbols_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + ProfBegin("Patch Section Symbols [%S]", obj->path); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Undefined) { + if (symbol.storage_class == COFF_SymStorageClass_Section) { + LNK_Section *sect = lnk_section_table_search(task->sectab, symbol.name, symbol.value); + if (sect) { + if (~sect->flags & COFF_SectionFlag_MemDiscardable) { + LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = symbol.raw_symbol; + symbol32->section_number = safe_cast_u32(first_sc->u.sect_idx + 1); + symbol32->value = first_sc->u.off; + symbol32->storage_class = COFF_SymStorageClass_Static; + } else { + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + symbol16->section_number = safe_cast_u16(first_sc->u.sect_idx + 1); + symbol16->value = first_sc->u.off; + symbol16->storage_class = COFF_SymStorageClass_Static; + } + } else { + lnk_error_obj(LNK_Error_SectRefsDiscardedMemory, obj, "symbol %S (No. 0x%llx) references section with discard flag", symbol.name, symbol_idx); + } + } else { + lnk_error_obj(LNK_Error_UnresolvedSymbol, obj, "undefined section symbol %S (No 0x%llx) refers to an image section that doesn't exist", symbol.name, symbol_idx); + } + } + } + } + ProfEnd(); +} + +int +lnk_base_reloc_page_compar(const void *raw_a, const void *raw_b) +{ + const LNK_BaseRelocPage *a = raw_a; + const LNK_BaseRelocPage *b = raw_b; + return u64_compar(&a->voff, &b->voff); +} + +int +lnk_base_reloc_page_is_before(void *raw_a, void *raw_b) +{ + LNK_BaseRelocPage* a = raw_a; + LNK_BaseRelocPage* b = raw_b; + return a->voff < b->voff; +} + +internal String8List +lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config, U64 objs_count, LNK_Obj **objs) +{ + ProfBeginFunction(); + + Arena *arena = tp_arena->v[0]; + Temp scratch = scratch_begin(tp_arena->v, tp_arena->count); + tp_arena->v[0] = scratch.arena; + TP_Temp tp_temp = tp_temp_begin(tp_arena); + + LNK_BaseRelocPageArray page_arr; + { + LNK_BaseRelocPageList *page_list_arr = push_array(scratch.arena, LNK_BaseRelocPageList, tp->worker_count); + HashTable **page_ht_arr = push_array_no_zero(scratch.arena, HashTable *, tp->worker_count); + for (U64 i = 0; i < tp->worker_count; ++i) { + page_ht_arr[i] = hash_table_init(scratch.arena, 1024); + } + + { + ProfBegin("Emit Relocs From Objs"); + LNK_ObjBaseRelocTask task = {0}; + task.ranges = tp_divide_work(scratch.arena, objs_count, tp->worker_count); + task.page_size = config->machine_page_size; + task.page_ht_arr = page_ht_arr; + task.list_arr = page_list_arr; + task.obj_arr = objs; + task.is_large_addr_aware = !!(config->file_characteristics & PE_ImageFileCharacteristic_LARGE_ADDRESS_AWARE); + tp_for_parallel(tp, tp_arena, tp->worker_count, lnk_emit_base_relocs_from_objs_task, &task); + ProfEnd(); + } + + LNK_BaseRelocPageList *main_page_list = &page_list_arr[0]; + { + ProfBegin("Merge Worker Page Lists"); + HashTable *main_ht = page_ht_arr[0]; + for (U64 list_idx = 1; list_idx < tp->worker_count; ++list_idx) { + LNK_BaseRelocPageList src = page_list_arr[list_idx]; + + for (LNK_BaseRelocPageNode *src_page = src.first, *src_next; src_page != 0; src_page = src_next) { + src_next = src_page->next; + + KeyValuePair *is_page_present = hash_table_search_u64(main_ht, src_page->v.voff); + if (is_page_present) { + // page exists concat voffs + LNK_BaseRelocPageNode *page = is_page_present->value_raw; + Assert(page != src_page); + u64_list_concat_in_place(&page->v.entries_addr32, &src_page->v.entries_addr32); + u64_list_concat_in_place(&page->v.entries_addr64, &src_page->v.entries_addr64); + } else { + // push page to main list + SLLQueuePush(main_page_list->first, main_page_list->last, src_page); + main_page_list->count += 1; + + // store lookup voff + hash_table_push_u64_raw(scratch.arena, main_ht, src_page->v.voff, src_page); + } + } + } + ProfEnd(); + } + + ProfBegin("Page List -> Array"); + page_arr.count = 0; + page_arr.v = push_array_no_zero(scratch.arena, LNK_BaseRelocPage, main_page_list->count); + for (LNK_BaseRelocPageNode* n = main_page_list->first; n != 0; n = n->next) { + page_arr.v[page_arr.count++] = n->v; + } + ProfEnd(); + + ProfBegin("Sort Pages on VOFF"); + //radsort(page_arr.v, page_arr.count, lnk_base_reloc_page_is_before); + qsort(page_arr.v, page_arr.count, sizeof(page_arr.v[0]), lnk_base_reloc_page_compar); + ProfEnd(); + } + + String8List result = {0}; + if (page_arr.count) { + ProfBegin("Serialize Pages"); + HashTable *voff_ht = hash_table_init(scratch.arena, config->machine_page_size); + for (U64 page_idx = 0; page_idx < page_arr.count; ++page_idx) { + LNK_BaseRelocPage *page = &page_arr.v[page_idx]; + + U64 total_entry_count = 0; + total_entry_count += page->entries_addr32.count; + total_entry_count += page->entries_addr64.count; + + U32 *page_voff_ptr; + U32 *block_size_ptr; + U16 *reloc_arr_base; + + // push buffer + U64 buf_size = AlignPow2(sizeof(*page_voff_ptr) + sizeof(*block_size_ptr) + sizeof(*reloc_arr_base)*total_entry_count, sizeof(U32)); + void *buf = push_array_no_zero(arena, U8, buf_size); + + // setup pointers into buffer + page_voff_ptr = buf; + block_size_ptr = page_voff_ptr + 1; + reloc_arr_base = (U16*)(block_size_ptr + 1); + + // write 32-bit relocations + U16 *reloc_arr_ptr = reloc_arr_base; + for (U64Node *i = page->entries_addr32.first; i != 0; i = i->next) { + // was base reloc_entry made? + if (hash_table_search_u64(voff_ht, i->data)) { + continue; + } + hash_table_push_u64_u64(scratch.arena, voff_ht, i->data, 0); + + // write entry + U64 rel_off = i->data - page->voff; + Assert(rel_off <= config->machine_page_size); + *reloc_arr_ptr++ = PE_BaseRelocMake(PE_BaseRelocKind_HIGHLOW, rel_off); + } + + // write 64-bit relocations + for (U64Node *i = page->entries_addr64.first; i != 0; i = i->next) { + // was base reloc entry made? + if (hash_table_search_u64(voff_ht, i->data)) { + continue; + } + hash_table_push_u64_u64(scratch.arena, voff_ht, i->data, 0); + + // write entry + U64 rel_off = i->data - page->voff; + Assert(rel_off <= config->machine_page_size); + *reloc_arr_ptr++ = PE_BaseRelocMake(PE_BaseRelocKind_DIR64, rel_off); + } + + // write pad + U64 pad_reloc_count = AlignPadPow2(total_entry_count, sizeof(reloc_arr_ptr[0])); + MemoryZeroTyped(reloc_arr_ptr, pad_reloc_count); // fill pad with PE_BaseRelocKind_ABSOLUTE + reloc_arr_ptr += pad_reloc_count; + + // compute block size + U64 reloc_arr_size = (U64)((U8*)reloc_arr_ptr - (U8*)reloc_arr_base); + U64 block_size = sizeof(*page_voff_ptr) + sizeof(*block_size_ptr) + reloc_arr_size; + + // write header + *page_voff_ptr = safe_cast_u32(page->voff); + *block_size_ptr = safe_cast_u32(block_size); + Assert(*block_size_ptr <= buf_size); + + // push page + str8_list_push(arena, &result, str8(buf, buf_size)); + + // purge voffs for next page + hash_table_purge(voff_ht); + } + ProfEnd(); + } + + tp_temp_end(tp_temp); // scratch is cleared here + tp_arena->v[0] = arena; + + ProfEnd(); + return result; +} + +internal String8List +lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sects, U64 expected_image_header_size) +{ + ProfBeginFunction(); + + String8List result = {0}; + + // + // DOS header + // + U32 dos_stub_size = sizeof(PE_DosHeader) + pe_dos_program.size; + { + PE_DosHeader *dos_header = push_array(arena, PE_DosHeader, 1); + dos_header->magic = PE_DOS_MAGIC; + dos_header->last_page_size = dos_stub_size % 512; + dos_header->page_count = CeilIntegerDiv(dos_stub_size, 512); + dos_header->paragraph_header_size = sizeof(PE_DosHeader) / 16; + dos_header->min_paragraph = 0; + dos_header->max_paragraph = 0; + dos_header->init_ss = 0; + dos_header->init_sp = 0; + dos_header->checksum = 0; + dos_header->init_ip = 0xFFFF; + dos_header->init_cs = 0; + dos_header->reloc_table_file_off = sizeof(PE_DosHeader); + dos_header->overlay_number = 0; + MemoryZeroStruct(dos_header->reserved); + dos_header->oem_id = 0; + dos_header->oem_info = 0; + MemoryZeroArray(dos_header->reserved2); + dos_header->coff_file_offset = dos_stub_size; + + str8_list_push(arena, &result, str8_struct(dos_header)); + str8_list_push(arena, &result, pe_dos_program); + } + + // + // PE magic + // + U32 *pe_magic = push_array(arena, U32, 1); + *pe_magic = PE_MAGIC; + str8_list_push(arena, &result, str8_struct(pe_magic)); + + // + // determine PE optional header type + // + B32 has_pe_plus_header = pe_has_plus_header(config->machine); + + // + // COFF file header + // + { + COFF_FileHeader *file_header = push_array_no_zero(arena, COFF_FileHeader, 1); + file_header->machine = config->machine; + file_header->time_stamp = config->time_stamp; + file_header->symbol_table_foff = 0; + file_header->symbol_count = 0; + file_header->section_count = sects.count; + file_header->optional_header_size = (has_pe_plus_header ? sizeof(PE_OptionalHeader32Plus) : sizeof(PE_OptionalHeader32)) + (sizeof(PE_DataDirectory) * config->data_dir_count); + file_header->flags = config->file_characteristics; + str8_list_push(arena, &result, str8_struct(file_header)); + } + + // + // compute code/inited/uninited sizes + // + U64 code_base = 0; + U64 sizeof_code = 0; + U64 sizeof_inited_data = 0; + U64 sizeof_uninited_data = 0; + U64 sizeof_image = 0; + for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { + LNK_Section *sect = sects.v[sect_idx]; + if (code_base == 0 && sect->flags & COFF_SectionFlag_CntCode) { + code_base = sect->voff; + } + if (sect->flags & COFF_SectionFlag_CntUninitializedData) { + sizeof_uninited_data += sect->vsize; + } + if ((sect->flags & COFF_SectionFlag_CntInitializedData) || (sect->flags & COFF_SectionFlag_CntCode)) { + sizeof_inited_data += sect->fsize; + } + if (sect->flags & COFF_SectionFlag_CntCode) { + sizeof_code += sect->fsize; + } + sizeof_image = Max(sizeof_image, sects.v[sect_idx]->voff + sects.v[sect_idx]->vsize); + } + sizeof_code = AlignPow2(sizeof_code, config->file_align); + sizeof_inited_data = AlignPow2(sizeof_inited_data, config->file_align); + sizeof_uninited_data = AlignPow2(sizeof_uninited_data, config->file_align); + sizeof_image = AlignPow2(sizeof_image, 4096); + + // + // compute image headers size + // + U64 sizeof_image_headers = 0; + sizeof_image_headers += dos_stub_size; + sizeof_image_headers += sizeof(COFF_FileHeader); + sizeof_image_headers += has_pe_plus_header ? sizeof(PE_OptionalHeader32Plus) : sizeof(PE_OptionalHeader32); + sizeof_image_headers += sizeof(PE_DataDirectory) * config->data_dir_count; + sizeof_image_headers += sizeof(COFF_SectionHeader) * sects.count; + sizeof_image_headers = AlignPow2(sizeof_image_headers, config->file_align); + + // + // fill out PE optional header + // + U32 *entry_point_va; + U32 *check_sum; + if (has_pe_plus_header) { + PE_OptionalHeader32Plus *opt_header = push_array_no_zero(arena, PE_OptionalHeader32Plus, 1); + opt_header->magic = PE_PE32PLUS_MAGIC; + opt_header->major_linker_version = config->link_ver.major; + opt_header->minor_linker_version = config->link_ver.minor; + opt_header->sizeof_code = safe_cast_u32(sizeof_code); + opt_header->sizeof_inited_data = safe_cast_u32(sizeof_inited_data); + opt_header->sizeof_uninited_data = safe_cast_u32(sizeof_uninited_data); + opt_header->entry_point_va = 0; + opt_header->code_base = code_base; + opt_header->image_base = lnk_get_base_addr(config); + opt_header->section_alignment = config->sect_align; + opt_header->file_alignment = config->file_align; + opt_header->major_os_ver = config->os_ver.major; + opt_header->minor_os_ver = config->os_ver.minor; + opt_header->major_img_ver = config->image_ver.major; + opt_header->minor_img_ver = config->image_ver.minor; + opt_header->major_subsystem_ver = config->subsystem_ver.major; + opt_header->minor_subsystem_ver = config->subsystem_ver.minor; + opt_header->win32_version_value = 0; // MSVC writes zero + opt_header->sizeof_image = sizeof_image; + opt_header->sizeof_headers = safe_cast_u32(sizeof_image_headers); + opt_header->check_sum = 0; // :check_sum + opt_header->subsystem = config->subsystem; + opt_header->dll_characteristics = config->dll_characteristics; + opt_header->sizeof_stack_reserve = config->stack_reserve; + opt_header->sizeof_stack_commit = config->stack_commit; + opt_header->sizeof_heap_reserve = config->heap_reserve; + opt_header->sizeof_heap_commit = config->heap_commit; + opt_header->loader_flags = 0; // for dynamic linker, always zero + opt_header->data_dir_count = safe_cast_u32(config->data_dir_count); + + entry_point_va = &opt_header->entry_point_va; + check_sum = &opt_header->check_sum; + + str8_list_push(arena, &result, str8_struct(opt_header)); + } else { + NotImplemented; + } + + // + // PE directories + // + PE_DataDirectory *directory_array; + { + directory_array = push_array(arena, PE_DataDirectory, config->data_dir_count); + str8_list_push(arena, &result, str8_array(directory_array, config->data_dir_count)); + } + + // + // COFF section table + // + COFF_SectionHeader *coff_section_table = push_array(arena, COFF_SectionHeader, sects.count); + U64 coff_section_table_count = 0; + { + for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { + LNK_Section *sect = sects.v[sect_idx]; + + COFF_SectionHeader *coff_section = &coff_section_table[sect_idx]; + + // TODO: for objs we can store long name in string table and write here /offset + if (sect->name.size > sizeof(coff_section->name)) { + lnk_error(LNK_Warning_LongSectionName, "not enough space in COFF section header to store entire name \"%S\"", sect->name); + } + + MemorySet(&coff_section->name[0], 0, sizeof(coff_section->name)); + MemoryCopy(&coff_section->name[0], sect->name.str, Min(sect->name.size, sizeof(coff_section->name))); + coff_section->vsize = sect->vsize; + coff_section->voff = sect->voff; + coff_section->fsize = sect->fsize; + coff_section->foff = sect->foff; + coff_section->relocs_foff = 0; // not present in image + coff_section->lines_foff = 0; // obsolete + coff_section->reloc_count = 0; // not present in image + coff_section->line_count = 0; // obsolete + coff_section->flags = sect->flags; + + coff_section_table_count += 1; + } + + str8_list_push(arena, &result, str8_array(coff_section_table, coff_section_table_count)); + } + + // align image headers + { + U64 image_headers_align_size = AlignPadPow2(result.total_size, config->file_align); + U8 *image_headers_align = push_array(arena, U8, image_headers_align_size); + str8_list_push(arena, &result, str8(image_headers_align, image_headers_align_size)); + } + + // + // entry point + // + { + Temp scratch = scratch_begin(&arena, 1); + + COFF_SectionHeader **section_table = push_array(arena, COFF_SectionHeader *, coff_section_table_count + 1); + for (U64 i = 1; i <= coff_section_table_count; i += 1) { section_table[i] = &coff_section_table[i-1]; } + + LNK_Symbol *entry_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, config->entry_point_name); + if (entry_symbol) { + *entry_point_va = safe_cast_u32(lnk_virt_off_from_symbol(section_table, entry_symbol)); + } + + scratch_end(scratch); + } + + Assert(result.total_size == expected_image_header_size); + ProfEnd(); + return result; +} + +internal LNK_ImageContext +lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs) +{ + ProfBegin("Image"); + lnk_timer_begin(LNK_Timer_Image); + + Temp scratch = scratch_begin(arena->v, arena->count); + + // init section table + LNK_SectionTable *sectab = lnk_section_table_alloc(); + lnk_section_table_push(sectab, str8_lit(".text"), PE_TEXT_SECTION_FLAGS); + lnk_section_table_push(sectab, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS); + lnk_section_table_push(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); + + LNK_BuildImageTask task = {0}; + task.symtab = symtab; + task.sectab = sectab; + task.default_align = lnk_default_align_from_machine(config->machine); + task.objs_count = objs_count; + task.objs = objs; + task.sect_map = 0; + + ProfBegin("Remove Associative Sections"); + tp_for_parallel(tp, 0, objs_count, lnk_remove_associative_sections_task, &task); + ProfEnd(); + + { + ProfBegin("Define And Count Sections"); + TP_Temp temp = tp_temp_begin(arena); + + // init hash tables for gathering section definitions + task.u.gather_sects.defns = push_array(arena->v[0], HashTable *, tp->worker_count); + for (U64 worker_idx = 0; worker_idx < tp->worker_count; worker_idx += 1) task.u.gather_sects.defns[worker_idx] = hash_table_init(arena->v[0], 128); + + ProfBegin("Gather Section Definitions"); + tp_for_parallel(tp, arena, objs_count, lnk_gather_section_definitions_task, &task); + ProfEnd(); + + ProfBegin("Merge Section Definitions Hash Tables"); + for (U64 worker_idx = 1; worker_idx < tp->worker_count; worker_idx += 1) { + U64 sect_defns_count = task.u.gather_sects.defns[worker_idx]->count; + LNK_SectionDefinition **sect_defns = values_from_hash_table_raw(arena->v[0], task.u.gather_sects.defns[worker_idx]); + radsort(sect_defns, sect_defns_count, lnk_section_definition_is_before); + + for (U64 defn_idx = 0; defn_idx < sect_defns_count; defn_idx += 1) { + String8 name_with_flags = lnk_make_name_with_flags(arena->v[0], sect_defns[defn_idx]->name, sect_defns[defn_idx]->flags); + LNK_SectionDefinition *main_defn = 0; + hash_table_search_string_raw(task.u.gather_sects.defns[0], name_with_flags, &main_defn); + if (main_defn == 0) { + main_defn = sect_defns[defn_idx]; + hash_table_push_string_raw(arena->v[0], task.u.gather_sects.defns[0], name_with_flags, main_defn); + } else { + main_defn->contribs_count += sect_defns[defn_idx]->contribs_count; + } + } + } + ProfEnd(); + + U64 sect_defns_count = task.u.gather_sects.defns[0]->count; + LNK_SectionDefinition **sect_defns = values_from_hash_table_raw(arena->v[0], task.u.gather_sects.defns[0]); + + ProfBegin("Sort Sections Definitions"); + radsort(sect_defns, sect_defns_count, lnk_section_definition_is_before); + ProfEnd(); + + ProfBegin("Push Sections And Reserve Section Contrib Memory"); + for (U64 defn_idx = 0; defn_idx < sect_defns_count; defn_idx += 1) { + LNK_SectionDefinition *sect_defn = sect_defns[defn_idx]; + + // do not create definitions for sections that are removed from the image + { + B32 skip = 0; + for (String8Node *name_n = config->remove_sections.first; name_n != 0; name_n = name_n->next) { + if (str8_match(sect_defn->name, name_n->string, 0)) { + skip = 1; + break; + } + } + if (skip) { continue; } + } + + // warn about conflicting section flags + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + LNK_Section *sect = §_n->data; + if (str8_match(sect->name, sect_defn->name, 0)) { + if (sect->flags != sect_defn->flags) { + LNK_Obj *obj = sect_defn->obj; + U32 sect_number = sect_defn->obj_sect_idx + 1; + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, sect_number); + String8 sect_name = coff_name_from_section_header(str8_substr(obj->data, obj->header.string_table_range), sect_header); + String8 expected_flags_str = coff_string_from_section_flags(arena->v[0], sect->flags); + String8 current_flags_str = coff_string_from_section_flags(arena->v[0], sect_defn->flags); + lnk_error_obj(LNK_Warning_SectionFlagsConflict, sect_defn->obj, "detected section flags conflict in %S(No. %X); expected {%S} but got {%S}", sect_name, sect_number, expected_flags_str, current_flags_str); + } + } + } + + ProfBeginV("Reserve Section Contrib Chunks [%S]", sect_defn->name); + LNK_Section *sect = lnk_section_table_search(sectab, sect_defn->name, sect_defn->flags); + if (sect == 0) { + sect = lnk_section_table_push(sectab, sect_defn->name, sect_defn->flags); + } + AssertAlways(sect->contribs.chunk_count == 0); + lnk_section_contrib_chunk_list_push_chunk(sectab->arena, §->contribs, sect_defn->contribs_count); + ProfEnd(); + + } + ProfEnd(); + + tp_temp_end(temp); + ProfEnd(); + } + + U64 expected_image_header_size; + { + ProfBegin("Alloc Section Map"); + task.sect_map = push_array(scratch.arena, LNK_SectionContrib **, objs_count); + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) task.sect_map[obj_idx] = push_array(scratch.arena, LNK_SectionContrib *, objs[obj_idx]->header.section_count_no_null); + ProfEnd(); + + ProfBegin("Gather Section Contribs"); + tp_for_parallel(tp, 0, objs_count, lnk_gather_section_contribs_task, &task); + ProfEnd(); + + ProfBegin("Set COMDAT Leaders"); + tp_for_parallel(tp, 0, objs_count, lnk_set_comdat_leaders_task, &task); + ProfEnd(); + + // finalize sections layouts + { + ProfBegin("Finalize Sections Layout"); + + // merge sections + if (config->flags & LNK_ConfigFlag_Merge) { + lnk_section_table_merge(sectab, config->merge_list); + } + + ProfBegin("Sort Section Contribs"); + { + U64 total_chunk_count = 0; + LNK_SectionContribChunk **chunks = 0; + { + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + total_chunk_count += sect_n->data.contribs.chunk_count; + } + U64 cursor = 0; + chunks = push_array(scratch.arena, LNK_SectionContribChunk *, total_chunk_count); + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + for (LNK_SectionContribChunk *chunk_n = sect_n->data.contribs.first; chunk_n != 0; chunk_n = chunk_n->next) { + chunks[cursor++] = chunk_n; + } + } + Assert(cursor == total_chunk_count); + } + task.u.sort_contribs.chunks = chunks; + tp_for_parallel(tp, 0, total_chunk_count, lnk_sort_contribs_task, &task); + } + ProfEnd(); + + // assign contribs offsets, sizes, and section indices + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + lnk_finalize_section_layout(sectab, §_n->data, config->file_align); + } + + // remove empty sections + { + String8List empty_sect_list = {0}; + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + LNK_Section *sect = §_n->data; + if (sect->vsize == 0) { + str8_list_push(scratch.arena, &empty_sect_list, sect->name); + } + } + for (String8Node *name_n = empty_sect_list.first; name_n != 0; name_n = name_n->next) { + lnk_section_table_remove(sectab, name_n->string); + } + } + + // assign section indices to sections + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + lnk_assign_section_index(§_n->data, sectab->next_sect_idx++); + } + + // assing layout offsets and sizes to merged sections + for (LNK_SectionNode *sect_n = sectab->merge_list.first; sect_n != 0; sect_n = sect_n->next) { + LNK_Section *sect = §_n->data; + LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); + LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(sect); + LNK_Section *final_sect = lnk_finalized_section_from_id(sectab, sect->merge_id); + sect->voff = final_sect->voff + first_sc->u.off; + sect->vsize = (last_sc->u.off - first_sc->u.off) + last_sc->u.size; + sect->foff = final_sect->foff + first_sc->u.off; + sect->fsize = (last_sc->u.off - first_sc->u.off) + last_sc->u.size; + sect->sect_idx = final_sect->sect_idx; + } + + ProfEnd(); + } + + // build common block + // + // TODO: build common block in .bss and merge with .data + U64 common_block_contribs_count; + LNK_CommonBlockContrib *common_block_contribs; + LNK_Section *common_block_sect; + { + ProfBegin("Build Common Block"); + + ProfBegin("Count Contribs"); + common_block_contribs_count = 0; + for (U64 worker_id = 0; worker_id < tp->worker_count; worker_id += 1) { + for (LNK_SymbolHashTrieChunk *chunk = symtab->chunk_lists[LNK_SymbolScope_Defined][worker_id].first; + chunk != 0; + chunk = chunk->next) { + for (U64 i = 0; i < chunk->count; i += 1) { + LNK_Symbol *symbol = chunk->v[i].symbol; + COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + COFF_SymbolValueInterpType parsed_interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); + if (parsed_interp == COFF_SymbolValueInterp_Common) { + common_block_contribs_count += 1; + } + } + } + } + ProfEnd(); + + ProfBegin("Gather Contribs"); + common_block_contribs = push_array(scratch.arena, LNK_CommonBlockContrib, common_block_contribs_count); + { + U64 cursor = 0; + for (U64 worker_id = 0; worker_id < tp->worker_count; worker_id += 1) { + for (LNK_SymbolHashTrieChunk *chunk = symtab->chunk_lists[LNK_SymbolScope_Defined][worker_id].first; + chunk != 0; + chunk = chunk->next) { + for (U64 i = 0; i < chunk->count; i += 1) { + LNK_Symbol *symbol = chunk->v[i].symbol; + COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + COFF_SymbolValueInterpType parsed_interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); + if (parsed_interp == COFF_SymbolValueInterp_Common) { + LNK_CommonBlockContrib *contrib = &common_block_contribs[cursor++]; + contrib->symbol = chunk->v[i].symbol; + contrib->u.size = parsed_symbol.value; + } + } + } + } + } + ProfEnd(); + + if (common_block_contribs_count) { + ProfBeginV("Assign Common Block Offsets [count %llu]", common_block_contribs_count); + + // search/push .data + common_block_sect = lnk_section_table_search(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); + if (common_block_sect == 0) { + common_block_sect = lnk_section_table_push(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); + } + + // sort common blocks from largest to smallest for tighter packing + radsort(common_block_contribs, common_block_contribs_count, lnk_common_block_contrib_is_before); + + // compute common block offsets + for (U64 contrib_idx = 0; contrib_idx < common_block_contribs_count; contrib_idx += 1) { + LNK_CommonBlockContrib *contrib = &common_block_contribs[contrib_idx]; + U32 size = contrib->u.size; + U32 align = Min(32, u64_up_to_pow2(size)); // link.exe caps align at 32 bytes + common_block_sect->vsize = AlignPow2(common_block_sect->vsize, align); + contrib->u.offset = common_block_sect->vsize; + common_block_sect->vsize += size; + } + ProfEnd(); + } + + ProfEnd(); + } + + // + // patch symbol tables + // + { + ProfBegin("Patch Symbol Tables"); + Temp temp = temp_begin(scratch.arena); + + ProfBegin("Alloc Patch Flags"); + task.u.patch_symtabs.was_symbol_patched = push_array(scratch.arena, B8 *, objs_count); + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + task.u.patch_symtabs.was_symbol_patched[obj_idx] = push_array(temp.arena, B8, objs[obj_idx]->header.symbol_count); + } + task.u.patch_symtabs.common_block_sect = common_block_sect; + task.u.patch_symtabs.ranges = tp_divide_work(scratch.arena, common_block_contribs_count, tp->worker_count); + task.u.patch_symtabs.common_block_contribs = common_block_contribs; + ProfEnd(); + + ProfBegin("Patch Common Block Leaders"); + tp_for_parallel(tp, 0, tp->worker_count, lnk_patch_common_block_leaders_task, &task); + ProfEnd(); + + ProfBegin("Patch Regular Symbols"); + tp_for_parallel(tp, 0, task.objs_count, lnk_patch_regular_symbols_task, &task); + ProfEnd(); + + ProfBegin("Patch Common blocks"); + tp_for_parallel(tp, 0, task.objs_count, lnk_patch_common_block_symbols_task, &task); + ProfEnd(); + + ProfBegin("Patch Absolute Symbols"); + tp_for_parallel(tp, 0, task.objs_count, lnk_patch_abs_symbols_task, &task); + ProfEnd(); + + ProfBegin("Patch Undefined Symbols"); + tp_for_parallel(tp, 0, task.objs_count, lnk_patch_undefined_symbols_task, &task); + ProfEnd(); + + ProfBegin("Patch Weak Symbols With Strong Definition"); + tp_for_parallel(tp, 0, task.objs_count, lnk_patch_weak_symbols_with_strong_definition_task, &task); + ProfEnd(); + + ProfBegin("Patch Weak Symbols With Fallback Definition"); + tp_for_parallel(tp, 0, task.objs_count, lnk_patch_weak_symbols_with_fallback_definition_task, &task); + ProfEnd(); + + ProfBegin("Patch Weak Symbols With Undefined Tag"); + tp_for_parallel(tp, 0, task.objs_count, lnk_patch_weak_symbols_with_undefined_tag_task, &task); + ProfEnd(); + + temp_end(temp); + ProfEnd(); + } + + // section list -> array + task.image_sects = lnk_section_array_from_list(scratch.arena, sectab->list); + + expected_image_header_size = lnk_compute_win32_image_header_size(config, task.image_sects.count); + + // assign virtual space + U64 voff_cursor = AlignPow2(expected_image_header_size + sizeof(COFF_SectionHeader), config->sect_align); + for (U64 i = 0; i < task.image_sects.count; i += 1) { + lnk_assign_section_virtual_space(task.image_sects.v[i], config->sect_align, &voff_cursor); + } + + ProfBegin("Patch Virtual Offsets and SIzes in Obj Section Headers"); + tp_for_parallel(tp, 0, task.objs_count, lnk_patch_virtual_offsets_and_sizes_in_obj_section_headers_task, &task); + ProfEnd(); + + // build base relocs + if (~config->flags & LNK_ConfigFlag_Fixed) { + String8List base_relocs_data = lnk_build_base_relocs(tp, arena, config, objs_count, objs); + if (base_relocs_data.total_size) { + LNK_Section *reloc = lnk_section_table_push(sectab, str8_lit(".reloc"), PE_RELOC_SECTION_FLAGS); + LNK_SectionContribChunk *first_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &reloc->contribs, 1); + LNK_SectionContrib *sc = lnk_section_contrib_chunk_push(first_sc_chunk, 1); + sc->data_list = base_relocs_data.first; + sc->align = 1; + sc->u.sort_idx_size = 0; + sc->u.obj_idx = max_U32; + + lnk_finalize_section_layout(sectab, reloc, config->file_align); + lnk_assign_section_virtual_space(reloc, config->sect_align, &voff_cursor); + lnk_assign_section_index(reloc, sectab->next_sect_idx++); + + task.image_sects = lnk_section_array_from_list(scratch.arena, sectab->list); + expected_image_header_size = lnk_compute_win32_image_header_size(config, task.image_sects.count); + } + } + + // assign file space + U64 foff_cursor = AlignPow2(expected_image_header_size, config->file_align); + for (U64 i = 0; i < task.image_sects.count; i += 1) { + lnk_assign_section_file_space(task.image_sects.v[i], &foff_cursor); + } + + ProfBegin("Patch File Offsets And Sizes In Section Headers"); + tp_for_parallel(tp, 0, task.objs_count, lnk_patch_file_offsets_and_sizes_in_obj_section_headers_task, &task); + ProfEnd(); + } + + // build win32 image header + { + String8List image_header_data = lnk_build_win32_header(scratch.arena, symtab, config, task.image_sects, AlignPow2(expected_image_header_size, config->file_align)); + + LNK_Section *image_header_sect = lnk_section_table_push(sectab, str8_lit(".rad_linker_image_header_section"), 0); + LNK_SectionContribChunk *image_header_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &image_header_sect->contribs, 1); + LNK_SectionContrib *image_header_sc = lnk_section_contrib_chunk_push(image_header_sc_chunk, 1); + + image_header_sc->align = config->file_align; + image_header_sc->data_list = image_header_data.first; + image_header_sc->u.size = safe_cast_u32(image_header_data.total_size); + + lnk_finalize_section_layout(sectab, image_header_sect, config->file_align); + } + + ProfBegin("Patch Section Symbols"); + tp_for_parallel(tp, 0, task.objs_count, lnk_patch_section_symbols_task, &task); + ProfEnd(); + + String8 image_data = {0}; + { + ProfBegin("Image Fill"); + + LNK_SectionArray sects = lnk_section_array_from_list(scratch.arena, sectab->list); + + U64 image_size = 0; + for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { + image_size += sects.v[sect_idx]->fsize; + } + + image_data.size = image_size; + image_data.str = push_array_no_zero(arena->v[0], U8, image_size); + + for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { + LNK_Section *sect = sects.v[sect_idx]; + + if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { + // pick fill pick + U8 fill_byte = 0; + if (sect->flags & COFF_SectionFlag_CntCode) { + fill_byte = lnk_code_align_byte_from_machine(config->machine); + } + + // copy section contribution + U64 prev_sc_opl = 0; + for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { + for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { + LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; + + // fill align bytes + Assert(sc->u.off >= prev_sc_opl); + U64 fill_size = sc->u.off - prev_sc_opl; + MemorySet(image_data.str + sect->foff + prev_sc_opl, fill_byte, fill_size); + prev_sc_opl = sc->u.off + sc->u.size; + + // copy contrib contents + { + U64 cursor = 0; + for (String8Node *data_n = sc->data_list; data_n != 0; data_n = data_n->next) { + Assert(sc->u.off + data_n->string.size <= sect->vsize); + MemoryCopy(image_data.str + sect->foff + sc->u.off + cursor, data_n->string.str, data_n->string.size); + cursor += data_n->string.size; + } + } + } + } + + // fill section align bytes + { + U64 fill_size = sect->fsize - prev_sc_opl; + MemorySet(image_data.str + sect->foff + prev_sc_opl, fill_byte, fill_size); + } + } + } + + ProfEnd(); + } + + { + ProfBegin("Image Patch"); + + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, image_data); + COFF_SectionHeader **image_section_table = coff_section_table_from_data(scratch.arena, image_data, pe.section_table_range); + + // patch relocs + { + ProfBegin("Patch Relocs"); + LNK_ObjRelocPatcher task = {0}; + task.image_data = image_data; + task.objs = objs; + task.image_base = pe.image_base; + task.image_section_table = image_section_table; + tp_for_parallel(tp, 0, objs_count, lnk_obj_reloc_patcher, &task); + ProfEnd(); + } + + // patch load config + { + LNK_Symbol *load_config_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit(MSCRT_LOAD_CONFIG_SYMBOL_NAME)); + if (load_config_symbol) { + U64 load_config_foff = lnk_file_off_from_symbol(image_section_table, load_config_symbol); + String8 load_config_data = str8_skip(image_data, load_config_foff); + + U32 load_config_size = 0; + if (sizeof(load_config_size) <= load_config_data.size) { + PE_DataDirectory *load_config_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_LOAD_CONFIG); + load_config_dir->virt_off = lnk_virt_off_from_symbol(image_section_table, load_config_symbol); + load_config_dir->virt_size = load_config_size; + } else { + // TODO: report corrupted load config + } + } + } + + // patch exceptions + { + LNK_Section *pdata_sect = lnk_section_table_search(sectab, str8_lit(".pdata"), PE_PDATA_SECTION_FLAGS); + if (pdata_sect) { + String8 raw_pdata = str8_substr(image_data, rng_1u64(pdata_sect->foff, pdata_sect->foff + pdata_sect->vsize)); + pe_pdata_sort(config->machine, raw_pdata); + + PE_DataDirectory *pdata_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_EXCEPTIONS); + pdata_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, pdata_sect); + pdata_dir->virt_size = lnk_get_section_contrib_size(pdata_sect); + } + } + + // patch export + { + LNK_Section *edata_sect = lnk_section_table_search(sectab, str8_lit(".edata"), PE_EDATA_SECTION_FLAGS); + if (edata_sect) { + PE_DataDirectory *export_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_EXPORT); + LNK_SectionContrib *edata_first_contrib = lnk_get_first_section_contrib(edata_sect); + LNK_SectionContrib *edata_last_contrib = lnk_get_last_section_contrib(edata_sect); + export_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, edata_sect); + export_dir->virt_size = lnk_get_section_contrib_size(edata_sect); + } + } + + // patch base relocs + { + LNK_Section *reloc_sect = lnk_section_table_search(sectab, str8_lit(".reloc"), PE_RELOC_SECTION_FLAGS); + if (reloc_sect) { + PE_DataDirectory *reloc_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_BASE_RELOC); + reloc_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, reloc_sect); + reloc_dir->virt_size = lnk_get_section_contrib_size(reloc_sect); + } + } + + // patch import and import addr + { + LNK_Section *idata_sect = lnk_section_table_search(sectab, str8_lit(".idata"), PE_IDATA_SECTION_FLAGS); + LNK_Symbol *null_import_desc = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "__NULL_IMPORT_DESCRIPTOR"); + LNK_Symbol *null_thunk_data = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "\x7f%S_NULL_THUNK_DATA", lnk_get_image_name(config)); + if (idata_sect && null_import_desc && null_thunk_data) { + COFF_ParsedSymbol null_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_import_desc->u.defined.obj, null_import_desc->u.defined.symbol_idx); + LNK_SectionContrib *idata_first_contrib = lnk_get_first_section_contrib(idata_sect); + PE_DataDirectory *import_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_IMPORT); + import_dir->virt_off = image_section_table[idata_first_contrib->u.sect_idx + 1]->voff + idata_first_contrib->u.off; + import_dir->virt_size = null_import_desc_parsed.value - idata_first_contrib->u.off; + + COFF_ParsedSymbol null_thunk_data_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_thunk_data->u.defined.obj, null_thunk_data->u.defined.symbol_idx); + U64 null_thunk_data_voff = image_section_table[null_thunk_data_parsed.section_number]->voff + null_thunk_data_parsed.value; + U64 first_import_foff = image_section_table[idata_first_contrib->u.sect_idx+1]->foff + idata_first_contrib->u.off; + PE_ImportEntry *first_import = str8_deserial_get_raw_ptr(image_data, first_import_foff, sizeof(*first_import)); + PE_DataDirectory *import_addr_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_IMPORT_ADDR); + import_addr_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, idata_sect); + import_addr_dir->virt_size = null_thunk_data_voff - first_import->import_addr_table_voff /* null */ + coff_word_size_from_machine(config->machine); + } + } + + // patch delay imports + { + LNK_Section *didat_sect = lnk_section_table_search(sectab, str8_lit(".didat"), PE_IDATA_SECTION_FLAGS); + LNK_Symbol *null_import_desc = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("__NULL_DELAY_IMPORT_DESCRIPTOR")); + LNK_Symbol *last_null_thunk = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, "\x7f%S_NULL_THUNK_DATA_DLA", lnk_get_image_name(config)); + if (didat_sect && null_import_desc && last_null_thunk) { + COFF_ParsedSymbol null_import_desc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(null_import_desc->u.defined.obj, null_import_desc->u.defined.symbol_idx); + LNK_SectionContrib *didat_first_contrib = lnk_get_first_section_contrib(didat_sect); + PE_DataDirectory *import_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_DELAY_IMPORT); + import_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, didat_sect); + import_dir->virt_size = lnk_get_section_contrib_size(didat_sect); + } + } + + // patch TLS + { + LNK_Symbol *tls_used_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, MSCRT_TLS_SYMBOL_NAME); + if (tls_used_symbol) { + ProfBegin("Patch TLS"); + + // find max align in .tls + U64 tls_align = 0; + LNK_Section *tls_sect = lnk_section_table_search(sectab, str8_lit(".tls"), PE_TLS_SECTION_FLAGS); + for (LNK_SectionContribChunk *sc_chunk = tls_sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { + for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { + Assert(IsPow2(sc_chunk->v[sc_idx]->align)); + tls_align = Max(tls_align, sc_chunk->v[sc_idx]->align); + } + } + + // patch-in align + U64 tls_header_foff = lnk_file_off_from_symbol(image_section_table, tls_used_symbol); + B32 is_tls_header64 = coff_word_size_from_machine(config->machine) == 8; + if (is_tls_header64) { + PE_TLSHeader64 *tls_header = str8_deserial_get_raw_ptr(image_data, tls_header_foff, sizeof(*tls_header)); + tls_header->characteristics |= coff_section_flag_from_align_size(tls_align); + } else { + PE_TLSHeader32 *tls_header = str8_deserial_get_raw_ptr(image_data, tls_header_foff, sizeof(*tls_header)); + tls_header->characteristics |= coff_section_flag_from_align_size(tls_align); + } + + // patch directory + PE_DataDirectory *tls_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_TLS); + tls_dir->virt_off = lnk_virt_off_from_symbol(image_section_table, tls_used_symbol); + tls_dir->virt_size = is_tls_header64 ? sizeof(PE_TLSHeader64) : sizeof(PE_TLSHeader32); + + ProfEnd(); + } + } + + // patch debug + { + LNK_Section *debug_dir_sect = lnk_section_table_search(sectab, str8_lit(".RAD_LINK_PE_DEBUG_DIR"), PE_RDATA_SECTION_FLAGS); + if (debug_dir_sect) { + // patch directory + PE_DataDirectory *debug_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_DEBUG); + debug_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, debug_dir_sect); + debug_dir->virt_size = lnk_get_section_contrib_size(debug_dir_sect); + + // find debug directory begin and end pair + LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(debug_dir_sect); + LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(debug_dir_sect); + U64 debug_begin_foff = lnk_foff_from_section_contrib(image_section_table, first_sc); + U64 debug_end_fopl = lnk_fopl_from_section_contrib(image_section_table, last_sc); + + // patch file offsets to the debug directories + for (U64 cursor = debug_begin_foff; cursor + sizeof(PE_DebugDirectory) <= debug_end_fopl; cursor += sizeof(PE_DebugDirectory)) { + PE_DebugDirectory *dir = str8_deserial_get_raw_ptr(image_data, cursor, sizeof(PE_DebugDirectory)); + for (U64 section_number = 1; section_number < pe.section_count+1; section_number += 1) { + if (image_section_table[section_number]->voff <= dir->voff && dir->voff < image_section_table[section_number]->voff + image_section_table[section_number]->vsize) { + dir->foff = image_section_table[section_number]->foff + (dir->voff - image_section_table[section_number]->voff); + } + } + } + } + } + + // patch resources + { + LNK_Section *rsrc_sect = lnk_section_table_search(sectab, str8_lit(".rsrc"), PE_RSRC_SECTION_FLAGS); + if (rsrc_sect) { + PE_DataDirectory *rsrc_dir = pe_data_directory_from_idx(image_data, pe, PE_DataDirectoryIndex_RESOURCES); + rsrc_dir->virt_off = lnk_get_first_section_contrib_voff(image_section_table, rsrc_sect); + rsrc_dir->virt_size = lnk_get_section_contrib_size(rsrc_sect); + } + } + + // image checksum + if (config->flags & LNK_ConfigFlag_WriteImageChecksum) { + ProfBegin("Image Checksum"); + *pe.check_sum = pe_compute_checksum(image_data.str, image_data.size); + ProfEnd(); + } + + // compute image guid, and patch PDB and RDI guids + { + LNK_Symbol *guid_pdb_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINK_PE_DEBUG_GUID_PDB")); + LNK_Symbol *guid_rdi_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit("RAD_LINK_PE_DEBUG_GUID_RDI")); + + if (guid_pdb_symbol || guid_rdi_symbol) { + switch (config->guid_type) { + case LNK_DebugInfoGuid_Null: break; + case Lnk_DebugInfoGuid_ImageBlake3: { + ProfBegin("Hash Image With Blake3"); + U128 hash = lnk_blake3_hash_parallel(tp, 128, image_data); + MemoryCopy(&config->guid, hash.u8, sizeof(hash.u8)); + ProfEnd(); + } break; + } + } + + if (guid_pdb_symbol) { + U64 cv_guid_foff = lnk_file_off_from_symbol(image_section_table, guid_pdb_symbol); + Guid *cv_guid = str8_deserial_get_raw_ptr(image_data, cv_guid_foff, sizeof(*cv_guid)); + *cv_guid = config->guid; + } + + if (guid_rdi_symbol) { + U64 cv_guid_foff = lnk_file_off_from_symbol(image_section_table, guid_rdi_symbol); + Guid *cv_guid = str8_deserial_get_raw_ptr(image_data, cv_guid_foff, sizeof(*cv_guid)); + *cv_guid = config->guid; + } + } + + ProfEnd(); + } + + LNK_ImageContext image_ctx = {0}; + image_ctx.image_data = image_data; + image_ctx.sectab = sectab; + + lnk_timer_end(LNK_Timer_Image); + ProfEnd(); // :EndImage + scratch_end(scratch); + return image_ctx; +} + +internal String8List +lnk_build_rad_map(Arena *arena, String8 image_data, U64 thread_count, U64 objs_count, LNK_Obj **objs, LNK_LibList lib_index[LNK_InputSource_Count], LNK_SectionTable *sectab) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(&arena, 1); + + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, image_data); + COFF_SectionHeader **image_section_table = coff_section_table_from_data(scratch.arena, image_data, pe.section_table_range); + + String8List map = {0}; + + ProfBegin("SECTIONS"); + str8_list_pushf(arena, &map, "# SECTIONS\n"); + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + LNK_Section *sect = §_n->data; + + str8_list_pushf(arena, &map, "%S\n", sect->name); + str8_list_pushf(arena, &map, "%-8s %-8s %-8s %-8s %-16s %-8s %s\n", "FileOff", "VirtOff", "VirtSize", "FileSize", "Blake3", "SC", "Source"); + + for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { + for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { + Temp temp = temp_begin(scratch.arena); + LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; + + U64 file_off = image_section_table[sc->u.sect_idx]->foff + sc->u.off; + U64 virt_off = image_section_table[sc->u.sect_idx]->voff + sc->u.off; + U64 virt_size = sc->u.size; + U64 file_size = sc->u.size; + String8 sc_data = str8_substr(image_data, rng_1u64(file_off, file_off + virt_size)); + + U128 sc_hash = {0}; + if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { + blake3_hasher hasher; blake3_hasher_init(&hasher); + blake3_hasher_update(&hasher, sc_data.str, sc_data.size); + blake3_hasher_finalize(&hasher, (U8 *)&sc_hash, sizeof(sc_hash)); + } + + String8 file_off_str = push_str8f(temp.arena, "%08x", file_off); + String8 virt_off_str = push_str8f(temp.arena, "%08x", virt_off); + String8 virt_size_str = push_str8f(temp.arena, "%08x", virt_size); + String8 file_size_str = push_str8f(temp.arena, "%08x", file_size); + String8 sc_hash_str = push_str8f(temp.arena, "%08x%08x", sc_hash.u64[0], sc_hash.u64[1]); + String8 sc_idx_str = push_str8f(temp.arena, "%llx", sc_idx); + String8 source_str; + { + String8List source_list = {0}; + +#if 0 + // location + if (chunk->obj) { + if (chunk->obj->lib_path.size) { + String8 lib_name = chunk->obj->lib_path; + lib_name = str8_skip_last_slash(lib_name); + lib_name = str8_chop_last_dot(lib_name); + + String8 obj_name = chunk->obj->path; + obj_name = str8_skip_last_slash(obj_name); + + str8_list_pushf(temp.arena, &source_list, "%S:%S", lib_name, obj_name); + } else { + str8_list_push(temp.arena, &source_list, chunk->obj->path); + } + } +#else + str8_list_pushf(temp.arena, &source_list, ""); +#endif + + // string join + source_str = str8_list_join(temp.arena, &source_list, &(StringJoin){.sep=str8_lit(" ")}); + } + + str8_list_pushf(arena, &map, "%-8S %-8S %-8S %-8S %-16S %-8S %S\n", file_off_str, virt_off_str, virt_size_str, file_size_str, sc_hash, sc_idx_str, source_str); + + temp_end(temp); + } + } + str8_list_pushf(arena, &map, "\n"); + } + ProfEnd(); + + + ProfBegin("SYMBOLS"); + str8_list_pushf(arena, &map, "# SYMBOLS\n"); + str8_list_pushf(arena, &map, "%-8s %s\n", "Sect:Idx", "Symbol"); + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { + String8 sc = push_str8f(scratch.arena, "%x:%x", symbol.section_number, symbol.value); + + String8 lib_name = obj->lib_path; + lib_name = str8_skip_last_slash(lib_name); + lib_name = str8_chop_last_dot(lib_name); + + String8 obj_name = obj->path; + obj_name = str8_skip_last_slash(obj_name); + + str8_list_pushf(arena, &map, "%-8S (%S%s%S) %S\n", + sc, + lib_name, lib_name.size ? ":" : "", obj_name, + symbol.name); + } + } + } + str8_list_pushf(arena, &map, "\n"); + ProfEnd(); + + + ProfBegin("LIBS"); + for (U64 input_source = 0; input_source < LNK_InputSource_Count; ++input_source) { + if (lib_index[input_source].count) { + str8_list_pushf(arena, &map, "# LIBS (%S)\n", lnk_string_from_input_source(input_source)); + for (LNK_LibNode *lib_n = lib_index[input_source].first; lib_n != 0; lib_n = lib_n->next) { + str8_list_pushf(arena, &map, "%S\n", lib_n->data.path); + } + } + } + ProfEnd(); + + + scratch_end(scratch); + ProfEnd(); + return map; +} + internal void lnk_write_thread(void *raw_ctx) { diff --git a/src/linker/lnk.h b/src/linker/lnk.h index ad7fca18..e7772cbe 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -50,6 +50,31 @@ typedef struct LNK_BaseRelocPageArray // --- Workers Contexts -------------------------------------------------------- +typedef struct +{ + LNK_SymbolTable *symtab; + LNK_SectionTable *sectab; + U64 default_align; + U64 objs_count; + LNK_Obj **objs; + LNK_SectionContrib ***sect_map; + LNK_SectionArray image_sects; + union { + struct { + HashTable **defns; + } gather_sects; + struct { + LNK_SectionContribChunk **chunks; + } sort_contribs; + struct { + B8 **was_symbol_patched; + LNK_Section *common_block_sect; + Rng1U64 *ranges; + LNK_CommonBlockContrib *common_block_contribs; + } patch_symtabs; + } u; +} LNK_BuildImageTask; + typedef struct { U64 page_size; @@ -145,7 +170,7 @@ internal String8 lnk_manifest_from_inputs(Arena *arena, String8 mt_path, String8 internal String8 lnk_make_res_obj(Arena *arena, String8List res_file_list, String8List res_path_list, COFF_MachineType machine, U32 time_stamp, String8 work_dir, PathStyle system_path_style, String8 obj_name); internal String8 lnk_make_linker_coff_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 cwd_path, String8 exe_path, String8 pdb_path, String8 cmd_line, String8 obj_name); -// --- Symbol Resolver --------------------------------------------------------- +// --- Link Context ------------------------------------------------------------ internal String8 lnk_get_lib_name(String8 path); internal B32 lnk_is_lib_disallowed(HashTable *disallow_lib_ht, String8 path); @@ -156,9 +181,10 @@ internal void lnk_push_loaded_lib(Arena *arena, HashTable *loaded_lib_ht, Str internal LNK_InputObjList lnk_push_linker_symbols(Arena *arena, LNK_Config *config); internal void lnk_queue_lib_member_input(Arena *arena, PathStyle path_style, LNK_SymbolLib *symbol, LNK_InputImportList *input_import_list, LNK_InputObjList *input_obj_list); +internal LNK_LinkContext lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config); + // --- Win32 Image ------------------------------------------------------------- -internal LNK_LinkContext lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config); internal String8List lnk_build_guard_tables(TP_Context *tp, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs, COFF_MachineType machine, String8 entry_point_name, LNK_GuardFlags guard_flags, B32 emit_suppress_flag); internal String8List lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_temp, LNK_Config *config, U64 objs_count, LNK_Obj **objs); internal String8List lnk_build_win32_image_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sect_arr, U64 expected_image_header_size); diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index a1fca3da..893c77f4 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -1740,7 +1740,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_Rad_PageSize: { - lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &config->page_size, 0); + lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &config->machine_page_size, 0); } break; case LNK_CmdSwitch_Rad_PathStyle: { @@ -1935,13 +1935,13 @@ lnk_unwrap_rsp(Arena *arena, String8List arg_list) } internal LNK_Config * -lnk_config_from_cmd_line(Arena *arena, LNK_CmdLine cmd_line) +lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line, LNK_CmdLine cmd_line) { ProfBeginFunction(); Temp scratch = scratch_begin(&arena, 1); LNK_Config *config = push_array(arena, LNK_Config, 1); - config->raw_cmd_line = str8_list_copy(arena, &cmd_line.raw_cmd_line); + config->raw_cmd_line = str8_list_copy(arena, &raw_cmd_line); config->work_dir = os_get_current_path(arena); config->build_imp_lib = 1; config->build_exp = 1; diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index fdf7b4ae..b5377b92 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -319,7 +319,7 @@ typedef struct LNK_Config U64 heap_commit; U64 user_base_addr; U64 max_image_size; - U64 page_size; + U64 machine_page_size; U64 pdb_page_size; U64 worker_count; U64 max_worker_count; @@ -583,6 +583,3 @@ internal B32 lnk_parse_merge_directive(String8 string, LNK_MergeDirective *parse internal void lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 name, String8List value_list, String8 obj_path, String8 lib_path); -internal LNK_Config * lnk_config_from_raw_cmd_line(Arena *arena, String8List raw_cmd_line); -internal LNK_Config * lnk_build_config (Arena *arena, int argc, char **argv); - From af00acd0f56042cf57293c161da04ad1edd3db49 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 6 Jun 2025 08:48:56 -0700 Subject: [PATCH 194/372] add missing symbol replacement logic --- src/linker/lnk_symbol_table.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index e9e4339b..50f5778d 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -239,6 +239,10 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) else if (dst_interp == COFF_SymbolValueInterp_Weak && (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Common || src_interp == COFF_SymbolValueInterp_Abs)) { can_replace = 1; } + // regular vs weak + else if (dst_interp == COFF_SymbolValueInterp_Regular && src_interp == COFF_SymbolValueInterp_Weak) { + can_replace = 0; + } // (regular, common) vs (regular, common) else if ((dst_interp == COFF_SymbolValueInterp_Regular || dst_interp == COFF_SymbolValueInterp_Common) && (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Common)) { B32 dst_is_comdat = 0; From 5fd06f44668a993a3fc623f9def2de4dbfacb8cb Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 6 Jun 2025 08:49:42 -0700 Subject: [PATCH 195/372] do not push section contribs for sections without bytes --- src/linker/lnk_debug_info.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index 4b8411f7..5882152f 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -2989,12 +2989,18 @@ THREAD_POOL_TASK_FUNC(lnk_push_dbi_sec_contrib_task) U32 sect_off; U32 data_crc; if (obj_sect_header->flags & COFF_SectionFlag_CntUninitializedData) { + if (obj_sect_header->vsize == 0) { + continue; + } sect_number = rng_1u64_array_bsearch(task->image_section_virt_ranges, obj_sect_header->voff); Assert(sect_number < task->image_section_virt_ranges.count); sect_data = str8_zero(); sect_off = obj_sect_header->voff - task->image_section_virt_ranges.v[sect_number].min; data_crc = 0; } else { + if (obj_sect_header->fsize == 0) { + continue; + } sect_number = rng_1u64_array_bsearch(task->image_section_file_ranges, obj_sect_header->foff); Assert(sect_number < task->image_section_file_ranges.count); sect_data = str8_substr(task->image_data, rng_1u64(obj_sect_header->foff, obj_sect_header->foff + obj_sect_header->fsize)); From 75d02f1c1e7a348397d1632198c9440feec704c7 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 6 Jun 2025 08:50:25 -0700 Subject: [PATCH 196/372] check symbol presence using stable name pointer --- src/linker/lnk_symbol_table.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index 50f5778d..537c7539 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -482,11 +482,9 @@ lnk_symbol_hash_trie_search(LNK_SymbolHashTrie *trie, U64 hash, String8 name) if (curr == 0) { break; } - if (curr->symbol) { - if (str8_match(curr->symbol->name, name, 0)) { - result = curr; - break; - } + if (curr->name && str8_match(*curr->name, name, 0)) { + result = curr; + break; } curr_ptr = curr->child + (h >> 62); } From 439fd0324d2a43146c48579fc833b4993324e91c Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 6 Jun 2025 08:51:19 -0700 Subject: [PATCH 197/372] typos --- src/linker/lnk_debug_info.c | 2 +- src/linker/lnk_obj.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index 5882152f..b2fb9f30 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -3140,7 +3140,7 @@ lnk_build_pdb(TP_Context *tp, U64 image_section_table_count = pe.section_count+1; ProfBegin("Setup PDB Context"); - PDB_Context *pdb = pdb_alloc(config->page_size, config->machine, config->time_stamp, config->age, config->guid); + PDB_Context *pdb = pdb_alloc(config->pdb_page_size, config->machine, config->time_stamp, config->age, config->guid); ProfEnd(); // move patched type data diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index ccdf54fa..ccbfce74 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -305,7 +305,7 @@ THREAD_POOL_TASK_FUNC(lnk_input_coff_symbol_table) U64 hash = lnk_symbol_hash(symbol.name); lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); - lnk_symbol_list_push(arena, &task->weak_lists[task_id], defn); + lnk_symbol_list_push(arena, &task->weak_lists[worker_id], defn); } break; case COFF_SymbolValueInterp_Common: { LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); From 3fb5e21d73a151222e095d5331f7ae4e113eb34c Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 6 Jun 2025 08:51:45 -0700 Subject: [PATCH 198/372] profiler markup --- src/linker/lnk_obj.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index ccbfce74..6cdb1287 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -30,6 +30,8 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) LNK_Obj *obj = &task->objs.v[task_id].data; U64 obj_idx = task->obj_id_base + task_id; + ProfBeginV("Init Obj [%S%s%S]", input->lib_path, (input->lib_path.size ? ": " : 0), input->path); + // // parse obj header // @@ -230,6 +232,8 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) obj->input_idx = obj_idx; obj->header = header; obj->comdats = comdats; + + ProfEnd(); } internal LNK_ObjNodeArray From b3aadbd49a47d9d4e9e8b2151efc2b0832512112 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 6 Jun 2025 08:52:41 -0700 Subject: [PATCH 199/372] store first data node in section contrib --- src/linker/lnk_section_table.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index b9f48eab..2fad2e80 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -6,10 +6,13 @@ typedef struct LNK_SectionContrib { U16 align; + union { String8Node *data_list; U64 bss_size; }; + String8Node node; + union { struct { U16 sort_idx_size; From 626d94104d33120735cda62558e8a1d19155473a Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 6 Jun 2025 08:52:47 -0700 Subject: [PATCH 200/372] atomic contrib push --- src/linker/lnk_section_table.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index 402af6c8..050f6471 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -40,6 +40,15 @@ lnk_section_contrib_chunk_push(LNK_SectionContribChunk *chunk, U64 count) return result; } +internal LNK_SectionContrib * +lnk_section_contrib_chunk_push_atomic(LNK_SectionContribChunk *chunk, U64 count) +{ + U64 pos = ins_atomic_u64_add_eval(&chunk->count, count) - count; + Assert(pos + count <= chunk->cap); + LNK_SectionContrib *result = chunk->v[pos]; + return result; +} + internal LNK_SectionContribChunk * lnk_section_contrib_chunk_list_push_chunk(Arena *arena, LNK_SectionContribChunkList *list, U64 cap) { From 490b22f6f9c72439b02bec8b21731285dad7f0e0 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 6 Jun 2025 10:44:29 -0700 Subject: [PATCH 201/372] put common blocks in .bss --- src/linker/lnk.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 6b2b1c1f..ab6a8520 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -3927,6 +3927,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT lnk_section_table_push(sectab, str8_lit(".text"), PE_TEXT_SECTION_FLAGS); lnk_section_table_push(sectab, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS); lnk_section_table_push(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); + lnk_section_table_push(sectab, str8_lit(".bss"), PE_BSS_SECTION_FLAGS); LNK_BuildImageTask task = {0}; task.symtab = symtab; @@ -4166,11 +4167,8 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT if (common_block_contribs_count) { ProfBeginV("Assign Common Block Offsets [count %llu]", common_block_contribs_count); - // search/push .data - common_block_sect = lnk_section_table_search(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); - if (common_block_sect == 0) { - common_block_sect = lnk_section_table_push(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); - } + // grab .bss section + common_block_sect = lnk_section_table_search(sectab, str8_lit(".bss"), PE_BSS_SECTION_FLAGS); // sort common blocks from largest to smallest for tighter packing radsort(common_block_contribs, common_block_contribs_count, lnk_common_block_contrib_is_before); From 246bbf1e234e807b0e6c6c7eeaa5264e670474ae Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 6 Jun 2025 10:44:46 -0700 Subject: [PATCH 202/372] fix common block patch --- src/linker/lnk.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index ab6a8520..535ce0df 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2570,17 +2570,17 @@ THREAD_POOL_TASK_FUNC(lnk_patch_common_block_symbols_task) if (interp == COFF_SymbolValueInterp_Common) { LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + Assert(coff_interp_symbol(defn_parsed.section_number, defn_parsed.value, defn_parsed.storage_class) == COFF_SymbolValueInterp_Regular); if (defn) { - LNK_SectionContrib *sc = task->sect_map[defn->u.defined.obj->input_idx][defn_parsed.section_number-1]; if (obj->header.is_big_obj) { COFF_Symbol32 *symbol32 = symbol.raw_symbol; - symbol32->section_number = safe_cast_u32(sc->u.sect_idx + 1); - symbol32->value = safe_cast_u32(sc->u.off); + symbol32->section_number = defn_parsed.section_number; + symbol32->value = safe_cast_u32(defn_parsed.value); symbol32->storage_class = COFF_SymStorageClass_Static; } else { COFF_Symbol16 *symbol16 = symbol.raw_symbol; - symbol16->section_number = safe_cast_u16(sc->u.sect_idx + 1); - symbol16->value = safe_cast_u32(sc->u.off); + symbol16->section_number = safe_cast_u16(defn_parsed.section_number); + symbol16->value = safe_cast_u32(defn_parsed.value); symbol16->storage_class = COFF_SymStorageClass_Static; } } From f64265aafe0cb9e86b668d685bde1354e0b4fc8d Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 6 Jun 2025 10:44:52 -0700 Subject: [PATCH 203/372] typo in contrib sort --- src/linker/lnk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 535ce0df..3eef835a 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2426,7 +2426,7 @@ lnk_section_contrib_ptr_is_before(void *raw_a, void *raw_b) } } else { // place sections without sort postfix first - cmp = a->u.sort_idx_size < b->u.sort_idx_size; + cmp = u16_compar(&a->u.sort_idx_size, &b->u.sort_idx_size); } } else { // sort on section postfix From 15836572f44c0b091a5aebf2a84def89867c9f84 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 6 Jun 2025 19:50:13 -0700 Subject: [PATCH 204/372] factor out section sort index into contribution chunk and simplify contribution sorting --- src/linker/lnk.c | 387 +++++++++++++++------------------ src/linker/lnk.h | 1 + src/linker/lnk_obj.h | 2 +- src/linker/lnk_section_table.c | 52 ++++- src/linker/lnk_section_table.h | 28 +-- 5 files changed, 237 insertions(+), 233 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 3eef835a..875b9a5e 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2284,51 +2284,57 @@ THREAD_POOL_TASK_FUNC(lnk_remove_associative_sections_task) internal THREAD_POOL_TASK_FUNC(lnk_gather_section_definitions_task) { - LNK_BuildImageTask *task = raw_task; + Temp scratch = scratch_begin(&arena, 1); + + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; HashTable *sect_defn_ht = task->u.gather_sects.defns[worker_id]; - LNK_Obj *obj = task->objs[task_id]; + LNK_Obj *obj = task->objs[obj_idx]; COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - // remove section - if (sect_header->flags & COFF_SectionFlag_LnkRemove) { - continue; + if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { + Temp temp = temp_begin(scratch.arena); + + // was section defined? + String8 sect_name = coff_name_from_section_header(string_table, sect_header); + String8 sect_name_with_flags = lnk_make_name_with_flags(temp.arena, sect_name, sect_header->flags & ~COFF_SectionFlags_LnkFlags); + LNK_SectionDefinition *sect_defn = 0; + hash_table_search_string_raw(sect_defn_ht, sect_name_with_flags, §_defn); + + // push new section definition + if (sect_defn == 0) { + sect_defn = push_array(arena, LNK_SectionDefinition, 1); + sect_defn->name = sect_name; + sect_defn->obj = obj; + sect_defn->obj_sect_idx = sect_idx; + sect_defn->flags = sect_header->flags & ~COFF_SectionFlags_LnkFlags; + + sect_name_with_flags = push_str8_copy(arena, sect_name_with_flags); + hash_table_push_string_raw(arena, sect_defn_ht, sect_name_with_flags, sect_defn); + } + + // acc contrib count + sect_defn->contribs_count += 1; + + temp_end(temp); } - - // parse section name - String8 full_sect_name = coff_name_from_section_header(string_table, sect_header); - String8 sect_name, sect_sort_idx; - coff_parse_section_name(full_sect_name, §_name, §_sort_idx); - - // was section defined? - COFF_SectionFlags sect_flags = sect_header->flags & ~COFF_SectionFlags_LnkFlags; - String8 sect_name_with_flags = lnk_make_name_with_flags(arena, sect_name, sect_flags); - LNK_SectionDefinition *sect_defn = 0; - hash_table_search_string_raw(sect_defn_ht, sect_name_with_flags, §_defn); - - // create section definition - if (sect_defn == 0) { - sect_defn = push_array(arena, LNK_SectionDefinition, 1); - sect_defn->name = sect_name; - sect_defn->flags = sect_flags; - sect_defn->obj = obj; - sect_defn->obj_sect_idx = sect_idx; - hash_table_push_string_raw(arena, sect_defn_ht, sect_name_with_flags, sect_defn); - } - - // acc contrib count - sect_defn->contribs_count += 1; } + + scratch_end(scratch); } internal THREAD_POOL_TASK_FUNC(lnk_gather_section_contribs_task) { - LNK_BuildImageTask *task = raw_task; - U64 obj_idx = task_id; + Temp scratch = scratch_begin(&arena, 1); + + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; LNK_Obj *obj = task->objs[obj_idx]; COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; @@ -2336,51 +2342,34 @@ THREAD_POOL_TASK_FUNC(lnk_gather_section_contribs_task) ProfBeginV("Gather Section Contribs [%S]", obj->path); for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + LNK_SectionContrib *sc = &g_null_sc; COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { + Temp temp = temp_begin(scratch.arena); - if (sect_header->flags & COFF_SectionFlag_LnkRemove) { - continue; - } + String8 sect_name = coff_name_from_section_header(string_table, sect_header); + String8 sect_name_with_flags = lnk_make_name_with_flags(temp.arena, sect_name, sect_header->flags & ~COFF_SectionFlags_LnkFlags); + LNK_SectionContribChunk *sc_chunk = 0; + hash_table_search_string_raw(task->contribs_ht, sect_name_with_flags, &sc_chunk); - // parse section name - String8 full_sect_name = coff_name_from_section_header(string_table, sect_header); - String8 sect_name, sect_sort_idx; - coff_parse_section_name(full_sect_name, §_name, §_sort_idx); - - // search for section to contribute - COFF_SectionFlags flags = sect_header->flags & ~COFF_SectionFlags_LnkFlags; - LNK_Section *sect = lnk_section_table_search(task->sectab, sect_name, flags); - - LNK_SectionContrib *sc; - if (sect) { - // extract align - U16 sc_align = coff_align_size_from_section_flags(sect_header->flags); - if (sc_align == 0) { - sc_align = task->default_align; + if (sc_chunk) { + U16 sc_align = coff_align_size_from_section_flags(sect_header->flags); + sc = lnk_section_contrib_chunk_push_atomic(sc_chunk, 1); + sc->node.next = 0; + sc->node.string = str8_substr(obj->data, rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize)); + sc->data_list = &sc->node; + sc->align = sc_align == 0 ? task->default_align : sc_align; + sc->u.obj_idx = obj_idx; + sc->u.obj_sect_idx = sect_idx; } - // extract section bytes - String8 sect_data = str8_substr(obj->data, rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize)); - - // fill out contrib - sc = lnk_section_contrib_chunk_push_atomic(sect->contribs.first, 1); - - sc->node.next = 0; - sc->node.string = sect_data; - sc->data_list = &sc->node; - sc->align = sc_align; - sc->u.obj_idx = obj_idx; - sc->u.obj_sect_idx = sect_idx; - sc->u.sort_idx_size = (U16)sect_sort_idx.size; - sc->u.sort_idx = sect_sort_idx.str; - } else { - // section was removed, fill slot with pointer to null contrib - sc = &g_null_sc; + temp_end(temp); } - task->sect_map[obj_idx][sect_idx] = sc; } ProfEnd(); + + scratch_end(scratch); } internal @@ -2410,43 +2399,10 @@ THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_task) internal int lnk_section_contrib_ptr_is_before(void *raw_a, void *raw_b) { - // Grouped Sections (PE Format) - // "All contributions with the same object-section name are allocated contiguously in the image, - // and the blocks of contributions are sorted in lexical order by object-section name." - LNK_SectionContrib *a = *(LNK_SectionContrib **)raw_a; - LNK_SectionContrib *b = *(LNK_SectionContrib **)raw_b; - - int cmp; - - if (a->u.sort_idx_size <= 1 && b->u.sort_idx_size <= 1) { - if (a->u.sort_idx_size == b->u.sort_idx_size) { - cmp = u32_compar(&a->u.obj_idx, &b->u.obj_idx); - if (cmp == 0) { - cmp = u32_compar(&a->u.obj_sect_idx, &b->u.obj_sect_idx); - } - } else { - // place sections without sort postfix first - cmp = u16_compar(&a->u.sort_idx_size, &b->u.sort_idx_size); - } - } else { - // sort on section postfix - String8 a_sort_idx = str8(a->u.sort_idx, a->u.sort_idx_size); - String8 b_sort_idx = str8(b->u.sort_idx, b->u.sort_idx_size); - cmp = str8_compar_case_sensitive(&a_sort_idx, &b_sort_idx); - - // sort on obj position on command line - if (cmp == 0) { - cmp = u32_compar(&a->u.obj_idx, &b->u.obj_idx); - - // sort on section index - if (cmp == 0) { - cmp = u32_compar(&a->u.obj_sect_idx, &b->u.obj_sect_idx); - } - } - } - - int is_before = cmp < 0; - return is_before; + LNK_SectionContrib **a = raw_a, **b = raw_b; + U64 input_idx_a = Compose64Bit((*a)->u.obj_idx, (*a)->u.obj_sect_idx); + U64 input_idx_b = Compose64Bit((*b)->u.obj_idx, (*b)->u.obj_sect_idx); + return u64_compar_is_before(&input_idx_a, &input_idx_b); } internal @@ -2454,8 +2410,9 @@ THREAD_POOL_TASK_FUNC(lnk_sort_contribs_task) { LNK_BuildImageTask *task = raw_task; LNK_SectionContribChunk *chunk = task->u.sort_contribs.chunks[task_id]; - Assert(chunk->count == chunk->cap); + ProfBeginV("[%llu]", chunk->count); radsort(chunk->v, chunk->count, lnk_section_contrib_ptr_is_before); + ProfEnd(); } internal int @@ -2992,15 +2949,10 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) internal int lnk_section_definition_is_before(void *raw_a, void *raw_b) { - LNK_SectionDefinition **a = raw_a; - LNK_SectionDefinition **b = raw_b; - int is_before; - if ((*a)->obj->input_idx == (*b)->obj->input_idx) { - is_before = (*a)->obj_sect_idx < (*b)->obj_sect_idx; - } else { - is_before = (*a)->obj->input_idx < (*b)->obj->input_idx; - } - return is_before; + LNK_SectionDefinition **a = raw_a, **b = raw_b; + U64 input_idx_a = Compose64Bit((*a)->obj->input_idx, (*a)->obj_sect_idx); + U64 input_idx_b = Compose64Bit((*b)->obj->input_idx, (*b)->obj_sect_idx); + return u64_compar_is_before(&input_idx_a, &input_idx_b); } internal void @@ -3960,7 +3912,8 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT radsort(sect_defns, sect_defns_count, lnk_section_definition_is_before); for (U64 defn_idx = 0; defn_idx < sect_defns_count; defn_idx += 1) { - String8 name_with_flags = lnk_make_name_with_flags(arena->v[0], sect_defns[defn_idx]->name, sect_defns[defn_idx]->flags); + LNK_SectionDefinition *defn = sect_defns[defn_idx]; + String8 name_with_flags = lnk_make_name_with_flags(arena->v[0], defn->name, defn->flags); LNK_SectionDefinition *main_defn = 0; hash_table_search_string_raw(task.u.gather_sects.defns[0], name_with_flags, &main_defn); if (main_defn == 0) { @@ -3981,46 +3934,54 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT ProfEnd(); ProfBegin("Push Sections And Reserve Section Contrib Memory"); + task.contribs_ht = hash_table_init(sectab->arena, sect_defns_count); for (U64 defn_idx = 0; defn_idx < sect_defns_count; defn_idx += 1) { LNK_SectionDefinition *sect_defn = sect_defns[defn_idx]; + // parse section name + String8 sect_name, sort_idx; + coff_parse_section_name(sect_defn->name, §_name, &sort_idx); + // do not create definitions for sections that are removed from the image { B32 skip = 0; - for (String8Node *name_n = config->remove_sections.first; name_n != 0; name_n = name_n->next) { - if (str8_match(sect_defn->name, name_n->string, 0)) { - skip = 1; - break; - } + for (String8Node *name_n = config->remove_sections.first; name_n != 0 && !skip; name_n = name_n->next) { + skip = str8_match(sect_name, name_n->string, 0); } if (skip) { continue; } } // warn about conflicting section flags for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - LNK_Section *sect = §_n->data; - if (str8_match(sect->name, sect_defn->name, 0)) { - if (sect->flags != sect_defn->flags) { - LNK_Obj *obj = sect_defn->obj; - U32 sect_number = sect_defn->obj_sect_idx + 1; - COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, sect_number); - String8 sect_name = coff_name_from_section_header(str8_substr(obj->data, obj->header.string_table_range), sect_header); - String8 expected_flags_str = coff_string_from_section_flags(arena->v[0], sect->flags); - String8 current_flags_str = coff_string_from_section_flags(arena->v[0], sect_defn->flags); - lnk_error_obj(LNK_Warning_SectionFlagsConflict, sect_defn->obj, "detected section flags conflict in %S(No. %X); expected {%S} but got {%S}", sect_name, sect_number, expected_flags_str, current_flags_str); - } + if (str8_match(sect_n->data.name, sect_name, 0) && sect_n->data.flags != sect_defn->flags) { + LNK_Obj *obj = sect_defn->obj; + U32 sect_number = sect_defn->obj_sect_idx + 1; + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, sect_number); + String8 sect_name = coff_name_from_section_header(str8_substr(obj->data, obj->header.string_table_range), sect_header); + String8 expected_flags_str = coff_string_from_section_flags(arena->v[0], sect_n->data.flags); + String8 current_flags_str = coff_string_from_section_flags(arena->v[0], sect_defn->flags); + lnk_error_obj(LNK_Warning_SectionFlagsConflict, sect_defn->obj, "detected section flags conflict in %S(No. %X); expected {%S} but got {%S}", sect_name, sect_number, expected_flags_str, current_flags_str); } } - ProfBeginV("Reserve Section Contrib Chunks [%S]", sect_defn->name); - LNK_Section *sect = lnk_section_table_search(sectab, sect_defn->name, sect_defn->flags); - if (sect == 0) { - sect = lnk_section_table_push(sectab, sect_defn->name, sect_defn->flags); - } - AssertAlways(sect->contribs.chunk_count == 0); - lnk_section_contrib_chunk_list_push_chunk(sectab->arena, §->contribs, sect_defn->contribs_count); - ProfEnd(); + { + ProfBeginV("Reserve Section Contrib Chunks [%S]", sect_defn->name); + LNK_Section *sect = lnk_section_table_search(sectab, sect_name, sect_defn->flags); + if (!sect) { + sect = lnk_section_table_push(sectab, sect_name, sect_defn->flags); + } + + String8 defn_name_with_flags = lnk_make_name_with_flags(sectab->arena, sect_defn->name, sect_defn->flags); + LNK_SectionContribChunk *contrib_chunk = 0; + hash_table_search_string_raw(task.contribs_ht, defn_name_with_flags, &contrib_chunk); + if (!contrib_chunk) { + contrib_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, §->contribs, sect_defn->contribs_count, sort_idx); + hash_table_push_string_raw(sectab->arena, task.contribs_ht, defn_name_with_flags, contrib_chunk); + } + + ProfEnd(); + } } ProfEnd(); @@ -4039,81 +4000,33 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT tp_for_parallel(tp, 0, objs_count, lnk_gather_section_contribs_task, &task); ProfEnd(); + // ensure determinism by sorting section contribs in chunks by input index + { + ProfBegin("Sort Section Contribs"); + U64 total_chunk_count = 0; + LNK_SectionContribChunk **chunks = 0; + { + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + total_chunk_count += sect_n->data.contribs.chunk_count; + } + U64 cursor = 0; + chunks = push_array(scratch.arena, LNK_SectionContribChunk *, total_chunk_count); + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + for (LNK_SectionContribChunk *chunk_n = sect_n->data.contribs.first; chunk_n != 0; chunk_n = chunk_n->next) { + chunks[cursor++] = chunk_n; + } + } + Assert(cursor == total_chunk_count); + } + task.u.sort_contribs.chunks = chunks; + tp_for_parallel(tp, 0, total_chunk_count, lnk_sort_contribs_task, &task); + ProfEnd(); + } + ProfBegin("Set COMDAT Leaders"); tp_for_parallel(tp, 0, objs_count, lnk_set_comdat_leaders_task, &task); ProfEnd(); - // finalize sections layouts - { - ProfBegin("Finalize Sections Layout"); - - // merge sections - if (config->flags & LNK_ConfigFlag_Merge) { - lnk_section_table_merge(sectab, config->merge_list); - } - - ProfBegin("Sort Section Contribs"); - { - U64 total_chunk_count = 0; - LNK_SectionContribChunk **chunks = 0; - { - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - total_chunk_count += sect_n->data.contribs.chunk_count; - } - U64 cursor = 0; - chunks = push_array(scratch.arena, LNK_SectionContribChunk *, total_chunk_count); - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - for (LNK_SectionContribChunk *chunk_n = sect_n->data.contribs.first; chunk_n != 0; chunk_n = chunk_n->next) { - chunks[cursor++] = chunk_n; - } - } - Assert(cursor == total_chunk_count); - } - task.u.sort_contribs.chunks = chunks; - tp_for_parallel(tp, 0, total_chunk_count, lnk_sort_contribs_task, &task); - } - ProfEnd(); - - // assign contribs offsets, sizes, and section indices - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - lnk_finalize_section_layout(sectab, §_n->data, config->file_align); - } - - // remove empty sections - { - String8List empty_sect_list = {0}; - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - LNK_Section *sect = §_n->data; - if (sect->vsize == 0) { - str8_list_push(scratch.arena, &empty_sect_list, sect->name); - } - } - for (String8Node *name_n = empty_sect_list.first; name_n != 0; name_n = name_n->next) { - lnk_section_table_remove(sectab, name_n->string); - } - } - - // assign section indices to sections - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - lnk_assign_section_index(§_n->data, sectab->next_sect_idx++); - } - - // assing layout offsets and sizes to merged sections - for (LNK_SectionNode *sect_n = sectab->merge_list.first; sect_n != 0; sect_n = sect_n->next) { - LNK_Section *sect = §_n->data; - LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); - LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(sect); - LNK_Section *final_sect = lnk_finalized_section_from_id(sectab, sect->merge_id); - sect->voff = final_sect->voff + first_sc->u.off; - sect->vsize = (last_sc->u.off - first_sc->u.off) + last_sc->u.size; - sect->foff = final_sect->foff + first_sc->u.off; - sect->fsize = (last_sc->u.off - first_sc->u.off) + last_sc->u.size; - sect->sect_idx = final_sect->sect_idx; - } - - ProfEnd(); - } - // build common block // // TODO: build common block in .bss and merge with .data @@ -4188,6 +4101,55 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT ProfEnd(); } + // finalize sections layouts + { + ProfBegin("Finalize Sections Layout"); + + // merge sections + if (config->flags & LNK_ConfigFlag_Merge) { + lnk_section_table_merge(sectab, config->merge_list); + } + + // assign contribs offsets, sizes, and section indices + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + lnk_finalize_section_layout(sectab, §_n->data, config->file_align); + } + + // remove empty sections + { + String8List empty_sect_list = {0}; + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + LNK_Section *sect = §_n->data; + if (sect->vsize == 0) { + str8_list_push(scratch.arena, &empty_sect_list, sect->name); + } + } + for (String8Node *name_n = empty_sect_list.first; name_n != 0; name_n = name_n->next) { + lnk_section_table_remove(sectab, name_n->string); + } + } + + // assign section indices to sections + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + lnk_assign_section_index(§_n->data, sectab->next_sect_idx++); + } + + // assing layout offsets and sizes to merged sections + for (LNK_SectionNode *sect_n = sectab->merge_list.first; sect_n != 0; sect_n = sect_n->next) { + LNK_Section *sect = §_n->data; + LNK_Section *final_sect = lnk_finalized_section_from_id(sectab, sect->merge_id); + LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); + LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(sect); + sect->voff = final_sect->voff + first_sc->u.off; + sect->vsize = (last_sc->u.off - first_sc->u.off) + last_sc->u.size; + sect->foff = final_sect->foff + first_sc->u.off; + sect->fsize = (last_sc->u.off - first_sc->u.off) + last_sc->u.size; + sect->sect_idx = final_sect->sect_idx; + } + + ProfEnd(); + } + // // patch symbol tables // @@ -4261,11 +4223,10 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT String8List base_relocs_data = lnk_build_base_relocs(tp, arena, config, objs_count, objs); if (base_relocs_data.total_size) { LNK_Section *reloc = lnk_section_table_push(sectab, str8_lit(".reloc"), PE_RELOC_SECTION_FLAGS); - LNK_SectionContribChunk *first_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &reloc->contribs, 1); + LNK_SectionContribChunk *first_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &reloc->contribs, 1, str8_zero()); LNK_SectionContrib *sc = lnk_section_contrib_chunk_push(first_sc_chunk, 1); sc->data_list = base_relocs_data.first; sc->align = 1; - sc->u.sort_idx_size = 0; sc->u.obj_idx = max_U32; lnk_finalize_section_layout(sectab, reloc, config->file_align); @@ -4293,7 +4254,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT String8List image_header_data = lnk_build_win32_header(scratch.arena, symtab, config, task.image_sects, AlignPow2(expected_image_header_size, config->file_align)); LNK_Section *image_header_sect = lnk_section_table_push(sectab, str8_lit(".rad_linker_image_header_section"), 0); - LNK_SectionContribChunk *image_header_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &image_header_sect->contribs, 1); + LNK_SectionContribChunk *image_header_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &image_header_sect->contribs, 1, str8_zero()); LNK_SectionContrib *image_header_sc = lnk_section_contrib_chunk_push(image_header_sc_chunk, 1); image_header_sc->align = config->file_align; diff --git a/src/linker/lnk.h b/src/linker/lnk.h index e7772cbe..29128877 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -58,6 +58,7 @@ typedef struct U64 objs_count; LNK_Obj **objs; LNK_SectionContrib ***sect_map; + HashTable *contribs_ht; LNK_SectionArray image_sects; union { struct { diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index a39748b2..436c155d 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -10,7 +10,7 @@ typedef struct LNK_Obj String8 data; String8 path; String8 lib_path; - U64 input_idx; + U32 input_idx; COFF_FileHeaderInfo header; U32 *comdats; } LNK_Obj; diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index 050f6471..b07b4001 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -50,13 +50,14 @@ lnk_section_contrib_chunk_push_atomic(LNK_SectionContribChunk *chunk, U64 count) } internal LNK_SectionContribChunk * -lnk_section_contrib_chunk_list_push_chunk(Arena *arena, LNK_SectionContribChunkList *list, U64 cap) +lnk_section_contrib_chunk_list_push_chunk(Arena *arena, LNK_SectionContribChunkList *list, U64 cap, String8 sort_idx) { LNK_SectionContribChunk *chunk = push_array(arena, LNK_SectionContribChunk, 1); - chunk->count = 0; - chunk->cap = cap; - chunk->v = push_array(arena, LNK_SectionContrib *, cap); - chunk->v2 = push_array(arena, LNK_SectionContrib, cap); + chunk->count = 0; + chunk->cap = cap; + chunk->v = push_array(arena, LNK_SectionContrib *, cap); + chunk->v2 = push_array(arena, LNK_SectionContrib, cap); + chunk->sort_idx = sort_idx; for (U64 i = 0; i < cap; i += 1) { chunk->v[i] = &chunk->v2[i]; } SLLQueuePush(list->first, list->last, chunk); list->chunk_count += 1; @@ -75,6 +76,17 @@ lnk_section_contrib_chunk_list_concat_in_place(LNK_SectionContribChunkList *list } } +internal LNK_SectionContribChunk ** +lnk_array_from_section_contrib_chunk_list(Arena *arena, LNK_SectionContribChunkList list) +{ + LNK_SectionContribChunk **result = push_array(arena, LNK_SectionContribChunk *, list.chunk_count); + U64 i = 0; + for (LNK_SectionContribChunk *chunk = list.first; chunk != 0; chunk = chunk->next, i += 1) { + result[i] = chunk; + } + return result; +} + internal LNK_SectionArray lnk_section_array_from_list(Arena *arena, LNK_SectionList list) { @@ -415,9 +427,36 @@ lnk_section_table_get_output_sections(Arena *arena, LNK_SectionTable *sectab) return result; } +internal int +lnk_section_contrib_chunk_is_before(void *raw_a, void *raw_b) +{ + LNK_SectionContribChunk **a = raw_a, **b = raw_b; + return str8_is_before_case_sensitive(&(*a)->sort_idx, &(*b)->sort_idx); +} + internal void lnk_finalize_section_layout(LNK_SectionTable *sectab, LNK_Section *sect, U64 file_align) { + Temp scratch = scratch_begin(0,0); + + ProfBegin("Sort Section Contribs"); + { + // Grouped Sections (PE Format) + // "All contributions with the same object-section name are allocated contiguously in the image, + // and the blocks of contributions are sorted in lexical order by object-section name." + LNK_SectionContribChunk **chunks = lnk_array_from_section_contrib_chunk_list(scratch.arena, sect->contribs); + radsort(chunks, sect->contribs.chunk_count, lnk_section_contrib_chunk_is_before); + + // repopulate chunk list in sorted order + sect->contribs.first = 0; + sect->contribs.last = 0; + for (U64 chunk_idx = 0; chunk_idx < sect->contribs.chunk_count; chunk_idx += 1) { + SLLQueuePush(sect->contribs.first, sect->contribs.last, chunks[chunk_idx]); + } + } + ProfEnd(); + + ProfBegin("Layout Contribs"); U64 cursor = 0; for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { @@ -441,11 +480,14 @@ lnk_finalize_section_layout(LNK_SectionTable *sectab, LNK_Section *sect, U64 fil sc->u.size = sc_size; } } + ProfEnd(); if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { sect->fsize = AlignPow2(cursor, file_align); } sect->vsize = cursor; + + scratch_end(scratch); } diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index 2fad2e80..6361d01d 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -5,27 +5,26 @@ typedef struct LNK_SectionContrib { + union { + struct { + U32 obj_idx; + U32 obj_sect_idx; + }; + struct { + U32 off; + U32 size; + U16 sect_idx; + }; + } u; + U16 align; union { String8Node *data_list; U64 bss_size; }; - String8Node node; - union { - struct { - U16 sort_idx_size; - U32 obj_idx; - U32 obj_sect_idx; - U8 *sort_idx; - }; - struct { - U16 sect_idx; - U32 off; - U32 size; - }; - } u; + String8Node node; } LNK_SectionContrib; typedef struct LNK_CommonBlockContrib @@ -42,6 +41,7 @@ typedef struct LNK_SectionContribChunk struct LNK_SectionContribChunk *next; U64 count; U64 cap; + String8 sort_idx; LNK_SectionContrib **v; LNK_SectionContrib *v2; } LNK_SectionContribChunk; From 95bea877abdd968cc1bd9351daf4e33b002b7f1d Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 6 Jun 2025 20:09:37 -0700 Subject: [PATCH 205/372] merge .bss with custom section to simplify linker output verification --- src/torture/torture.c | 51 +++++++++++++++---------------------------- 1 file changed, 17 insertions(+), 34 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index 1bf492a2..ff175d87 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -1632,9 +1632,7 @@ t_common_block(void) coff_obj_writer_section_push_reloc(obj_writer, data_sect, 0, symbol, COFF_Reloc_X64_Addr32); String8 a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); - if (!t_write_file(a_obj_name, a_obj)) { - goto exit; - } + if (!t_write_file(a_obj_name, a_obj)) { goto exit; } } String8 b_obj_name = str8_lit("b.obj"); @@ -1647,9 +1645,7 @@ t_common_block(void) coff_obj_writer_section_push_reloc(obj_writer, data_sect, 0, symbol, COFF_Reloc_X64_Addr64); String8 b_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); - if (!t_write_file(b_obj_name, b_obj)) { - goto exit; - } + if (!t_write_file(b_obj_name, b_obj)) { goto exit; } } String8 entry_obj_name = str8_lit("entry.obj"); @@ -1660,45 +1656,32 @@ t_common_block(void) coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); - if (!t_write_file(entry_obj_name, entry_obj)) { - goto exit; - } + if (!t_write_file(entry_obj_name, entry_obj)) { goto exit; } } - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe /fixed /largeaddressaware:no a.obj b.obj entry.obj"); - - if (linker_exit_code != 0) { - goto exit; - } + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe /fixed /largeaddressaware:no /merge:.bss=.comm a.obj b.obj entry.obj"); + if (linker_exit_code != 0) { goto exit; } String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); String8 string_table = str8_substr(exe, pe.string_table_range); COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + COFF_SectionHeader *comm_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".comm")); + COFF_SectionHeader *data_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + if (comm_sect == 0) { goto exit; } + if (data_sect == 0) { goto exit; } - COFF_SectionHeader *data_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); - if (data_sect == 0) { - goto exit; - } + // blocks must be sorted in descending order to reduce alignment padding + if (comm_sect->vsize != 0xB) { goto exit; } - // test common block sort, if absent vsize is 0x1D - if (data_sect->vsize != 0x1B) { - goto exit; - } - - String8 data = str8_substr(exe, rng_1u64(data_sect->foff, data_sect->foff + data_sect->fsize)); - U32 *a_addr = (U32 *)data.str; - U64 *b_addr = (U64 *)(data.str + sizeof(a_data)); - if ((*a_addr) - (pe.image_base + data_sect->voff) != 0x18) { - goto exit; - } - if ((*b_addr) - (pe.image_base + data_sect->voff) != 0x10) { - goto exit; - } + // ensure linker correctly patched addresses for symbols pointing into common block + String8 data = str8_substr(exe, rng_1u64(data_sect->foff, data_sect->foff + data_sect->fsize)); + U32 *a_addr = (U32 *)data.str; + U64 *b_addr = (U64 *)(data.str + sizeof(a_data)); + if (*a_addr != (pe.image_base + comm_sect->voff + 0x8)) { goto exit; } + if (*b_addr != (pe.image_base + comm_sect->voff + 0x0)) { goto exit; } result = T_Result_Pass; - - exit:; scratch_end(scratch); return result; From a484906cf96e047551e0c1dace9876ed70241223 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 9 Jun 2025 14:08:37 -0700 Subject: [PATCH 206/372] create section contribution for common block --- src/linker/lnk.c | 48 +++++++++++++++++++++------------- src/linker/lnk_section_table.c | 23 +++++++++------- src/linker/lnk_section_table.h | 25 ++++++++---------- src/torture/torture.c | 7 ++--- 4 files changed, 59 insertions(+), 44 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 875b9a5e..ab34c89b 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -3399,7 +3399,7 @@ THREAD_POOL_TASK_FUNC(lnk_patch_virtual_offsets_and_sizes_in_obj_section_headers if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { LNK_SectionContrib *sc = task->sect_map[obj_idx][sect_idx]; LNK_Section *sect = task->image_sects.v[sc->u.sect_idx]; - sect_header->vsize = sc->u.size; + sect_header->vsize = lnk_size_from_section_contribution(sc); sect_header->voff = sect->voff + sc->u.off; } } @@ -3423,7 +3423,7 @@ THREAD_POOL_TASK_FUNC(lnk_patch_file_offsets_and_sizes_in_obj_section_headers_ta LNK_SectionContrib *sc = task->sect_map[obj_idx][sect_idx]; LNK_Section *sect = task->image_sects.v[sc->u.sect_idx]; if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { - sect_header->fsize = sc->u.size; + sect_header->fsize = lnk_size_from_section_contribution(sc); sect_header->foff = sect->foff + sc->u.off; } } @@ -3880,6 +3880,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT lnk_section_table_push(sectab, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS); lnk_section_table_push(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); lnk_section_table_push(sectab, str8_lit(".bss"), PE_BSS_SECTION_FLAGS); + LNK_Section *common_block_sect = lnk_section_table_search(sectab, str8_lit(".bss"), PE_BSS_SECTION_FLAGS); LNK_BuildImageTask task = {0}; task.symtab = symtab; @@ -4032,7 +4033,6 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT // TODO: build common block in .bss and merge with .data U64 common_block_contribs_count; LNK_CommonBlockContrib *common_block_contribs; - LNK_Section *common_block_sect; { ProfBegin("Build Common Block"); @@ -4078,23 +4078,35 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT ProfEnd(); if (common_block_contribs_count) { - ProfBeginV("Assign Common Block Offsets [count %llu]", common_block_contribs_count); + ProfBeginV("Make Common Block [count %llu]", common_block_contribs_count); - // grab .bss section - common_block_sect = lnk_section_table_search(sectab, str8_lit(".bss"), PE_BSS_SECTION_FLAGS); - - // sort common blocks from largest to smallest for tighter packing + // sort common blocks from for tighter packing radsort(common_block_contribs, common_block_contribs_count, lnk_common_block_contrib_is_before); - // compute common block offsets + // compute .bss virtual size - this marks start of the common block + lnk_finalize_section_layout(sectab, common_block_sect, config->file_align); + U64 common_block_cursor = common_block_sect->vsize; + + // compute and assign offsets into the common block for (U64 contrib_idx = 0; contrib_idx < common_block_contribs_count; contrib_idx += 1) { LNK_CommonBlockContrib *contrib = &common_block_contribs[contrib_idx]; U32 size = contrib->u.size; U32 align = Min(32, u64_up_to_pow2(size)); // link.exe caps align at 32 bytes - common_block_sect->vsize = AlignPow2(common_block_sect->vsize, align); - contrib->u.offset = common_block_sect->vsize; - common_block_sect->vsize += size; + common_block_cursor = AlignPow2(common_block_cursor, align); + contrib->u.offset = common_block_cursor; + common_block_cursor += size; } + + // append common block's contribution + LNK_SectionContribChunk *common_block_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &common_block_sect->contribs, 1, str8(0,0)); + LNK_SectionContrib *common_block_sc = lnk_section_contrib_chunk_push(common_block_chunk, 1); + common_block_sc->u.obj_idx = max_U32; + common_block_sc->u.obj_sect_idx = max_U32; + common_block_sc->align = 1; + common_block_sc->node.next = 0; + common_block_sc->node.string = str8(0, common_block_cursor - common_block_sect->vsize); + common_block_sc->data_list = &common_block_sc->node; + ProfEnd(); } @@ -4140,10 +4152,11 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT LNK_Section *final_sect = lnk_finalized_section_from_id(sectab, sect->merge_id); LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(sect); + U64 last_sc_size = lnk_size_from_section_contribution(last_sc); sect->voff = final_sect->voff + first_sc->u.off; - sect->vsize = (last_sc->u.off - first_sc->u.off) + last_sc->u.size; + sect->vsize = (last_sc->u.off - first_sc->u.off) + last_sc_size; sect->foff = final_sect->foff + first_sc->u.off; - sect->fsize = (last_sc->u.off - first_sc->u.off) + last_sc->u.size; + sect->fsize = (last_sc->u.off - first_sc->u.off) + last_sc_size; sect->sect_idx = final_sect->sect_idx; } @@ -4259,7 +4272,6 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT image_header_sc->align = config->file_align; image_header_sc->data_list = image_header_data.first; - image_header_sc->u.size = safe_cast_u32(image_header_data.total_size); lnk_finalize_section_layout(sectab, image_header_sect, config->file_align); } @@ -4302,7 +4314,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT Assert(sc->u.off >= prev_sc_opl); U64 fill_size = sc->u.off - prev_sc_opl; MemorySet(image_data.str + sect->foff + prev_sc_opl, fill_byte, fill_size); - prev_sc_opl = sc->u.off + sc->u.size; + prev_sc_opl = sc->u.off + lnk_size_from_section_contribution(sc); // copy contrib contents { @@ -4583,8 +4595,8 @@ lnk_build_rad_map(Arena *arena, String8 image_data, U64 thread_count, U64 objs_c U64 file_off = image_section_table[sc->u.sect_idx]->foff + sc->u.off; U64 virt_off = image_section_table[sc->u.sect_idx]->voff + sc->u.off; - U64 virt_size = sc->u.size; - U64 file_size = sc->u.size; + U64 virt_size = lnk_size_from_section_contribution(sc); + U64 file_size = lnk_size_from_section_contribution(sc); String8 sc_data = str8_substr(image_data, rng_1u64(file_off, file_off + virt_size)); U128 sc_hash = {0}; diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index b07b4001..07ea2b00 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -100,6 +100,16 @@ lnk_section_array_from_list(Arena *arena, LNK_SectionList list) return result; } +internal U64 +lnk_size_from_section_contribution(LNK_SectionContrib *sc) +{ + U64 size = 0; + for (String8Node *n = sc->data_list; n != 0; n = n->next) { + size += n->string.size; + } + return size; +} + internal U64 lnk_voff_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc) { @@ -120,7 +130,7 @@ internal U64 lnk_fopl_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc) { U64 foff = lnk_foff_from_section_contrib(image_section_table, sc); - return foff + sc->u.size; + return foff + lnk_size_from_section_contribution(sc); } internal LNK_SectionContrib * @@ -150,7 +160,7 @@ lnk_get_section_contrib_size(LNK_Section *sect) { LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(sect); - U64 size = (last_sc->u.off - first_sc->u.off) + last_sc->u.size; + U64 size = (last_sc->u.off - first_sc->u.off) + lnk_size_from_section_contribution(last_sc); return size; } @@ -468,16 +478,11 @@ lnk_finalize_section_layout(LNK_SectionTable *sectab, LNK_Section *sect, U64 fil U64 sc_off = cursor; // compute contrib size - U64 sc_size = 0; - for (String8Node *data_n = sc->data_list; data_n != 0; data_n = data_n->next) { - sc_size += data_n->string.size; - } - + U64 sc_size = lnk_size_from_section_contribution(sc); cursor += sc_size; // assign offset and size - sc->u.off = sc_off; - sc->u.size = sc_size; + sc->u.off = sc_off; } } ProfEnd(); diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index 6361d01d..14b2bbf8 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -5,26 +5,22 @@ typedef struct LNK_SectionContrib { + String8Node node; // most contributions require at least one data node, so preallocate it here + String8Node *data_list; // list of data nodes that contribute to final section union { + // used before section layout is finalized struct { - U32 obj_idx; - U32 obj_sect_idx; + U32 obj_idx; // index of the input obj that contributes to the image section + U32 obj_sect_idx; // index into contributing obj's section table }; + // used after section layout is finalized struct { - U32 off; - U32 size; - U16 sect_idx; + U32 off; // contribution offset within the image section + U16 sect_idx; // section index in the image + U8 unused[2]; }; } u; - - U16 align; - - union { - String8Node *data_list; - U64 bss_size; - }; - - String8Node node; + U16 align; // alignment of the contribution in the image } LNK_SectionContrib; typedef struct LNK_CommonBlockContrib @@ -119,6 +115,7 @@ internal LNK_SectionArray lnk_section_array_from_list(Arena *arena, LNK_SectionL //////////////////////////////// +internal U64 lnk_size_from_section_contrib(LNK_SectionContrib *sc); internal U64 lnk_voff_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc); internal U64 lnk_foff_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc); internal U64 lnk_fopl_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc); diff --git a/src/torture/torture.c b/src/torture/torture.c index ff175d87..8a63e196 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -1629,6 +1629,7 @@ t_common_block(void) COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_common(obj_writer, str8_lit("A"), 3); COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(a_data)); data_sect->flags |= COFF_SectionFlag_Align1Bytes; + coff_obj_writer_push_section(obj_writer, str8_lit(".bss"), PE_BSS_SECTION_FLAGS, str8(0, 1)); // shift common block's initial position coff_obj_writer_section_push_reloc(obj_writer, data_sect, 0, symbol, COFF_Reloc_X64_Addr32); String8 a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); @@ -1672,14 +1673,14 @@ t_common_block(void) if (data_sect == 0) { goto exit; } // blocks must be sorted in descending order to reduce alignment padding - if (comm_sect->vsize != 0xB) { goto exit; } + if (comm_sect->vsize != 0x13) { goto exit; } // ensure linker correctly patched addresses for symbols pointing into common block String8 data = str8_substr(exe, rng_1u64(data_sect->foff, data_sect->foff + data_sect->fsize)); U32 *a_addr = (U32 *)data.str; U64 *b_addr = (U64 *)(data.str + sizeof(a_data)); - if (*a_addr != (pe.image_base + comm_sect->voff + 0x8)) { goto exit; } - if (*b_addr != (pe.image_base + comm_sect->voff + 0x0)) { goto exit; } + if (*a_addr != (pe.image_base + comm_sect->voff + 0x10)) { goto exit; } + if (*b_addr != (pe.image_base + comm_sect->voff + 0x8)) { goto exit; } result = T_Result_Pass; exit:; From ecdee57c60550b63094741261a14c1f088c740ee Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 9 Jun 2025 16:58:51 -0700 Subject: [PATCH 207/372] move helpers to COFF layer --- src/coff/coff.c | 29 +++++++++++++++++++++++++++++ src/coff/coff.h | 2 ++ 2 files changed, 31 insertions(+) diff --git a/src/coff/coff.c b/src/coff/coff.c index b63f9d2b..5b42d057 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -337,6 +337,35 @@ coff_make_import_header(Arena *arena, return import_data; } +internal U8 +coff_code_align_byte_from_machine(COFF_MachineType machine) +{ + U8 align_byte = 0; + switch (machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X64: + case COFF_MachineType_X86: { + align_byte = 0xCC; + } break; + default: { NotImplemented; } break; + } + return align_byte; +} + +internal U16 +coff_default_align_from_machine(COFF_MachineType machine) +{ + U16 align = 0; + switch (machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X64: { + align = 16; + } break; + default: { NotImplemented; } break; + } + return align; +} + internal U64 coff_word_size_from_machine(COFF_MachineType machine) { diff --git a/src/coff/coff.h b/src/coff/coff.h index 2a6ca456..afbd9a2e 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -617,6 +617,8 @@ internal String8 coff_make_import_header(Arena *arena, COFF_MachineType machine, //////////////////////////////// // Misc +internal U16 coff_default_align_from_machine (COFF_MachineType machine); +internal U8 coff_code_align_byte_from_machine (COFF_MachineType machine); internal U64 coff_word_size_from_machine (COFF_MachineType machine); internal U64 coff_default_exe_base_from_machine(COFF_MachineType machine); internal U64 coff_default_dll_base_from_machine(COFF_MachineType machine); From 9d93eda3ed9fe7c291d6a6c9e314c66353d2b0eb Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 9 Jun 2025 17:02:37 -0700 Subject: [PATCH 208/372] simplify section table --- src/linker/lnk.c | 33 ++--- src/linker/lnk.h | 20 +++ src/linker/lnk_debug_info.c | 31 ++-- src/linker/lnk_debug_info.h | 3 +- src/linker/lnk_section_table.c | 250 ++++++++++++--------------------- src/linker/lnk_section_table.h | 80 +++++------ 6 files changed, 175 insertions(+), 242 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index ab34c89b..8bee6700 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -3399,7 +3399,7 @@ THREAD_POOL_TASK_FUNC(lnk_patch_virtual_offsets_and_sizes_in_obj_section_headers if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { LNK_SectionContrib *sc = task->sect_map[obj_idx][sect_idx]; LNK_Section *sect = task->image_sects.v[sc->u.sect_idx]; - sect_header->vsize = lnk_size_from_section_contribution(sc); + sect_header->vsize = lnk_size_from_section_contrib(sc); sect_header->voff = sect->voff + sc->u.off; } } @@ -3423,7 +3423,7 @@ THREAD_POOL_TASK_FUNC(lnk_patch_file_offsets_and_sizes_in_obj_section_headers_ta LNK_SectionContrib *sc = task->sect_map[obj_idx][sect_idx]; LNK_Section *sect = task->image_sects.v[sc->u.sect_idx]; if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { - sect_header->fsize = lnk_size_from_section_contribution(sc); + sect_header->fsize = lnk_size_from_section_contrib(sc); sect_header->foff = sect->foff + sc->u.off; } } @@ -3885,7 +3885,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT LNK_BuildImageTask task = {0}; task.symtab = symtab; task.sectab = sectab; - task.default_align = lnk_default_align_from_machine(config->machine); + task.default_align = coff_default_align_from_machine(config->machine); task.objs_count = objs_count; task.objs = objs; task.sect_map = 0; @@ -4084,13 +4084,13 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT radsort(common_block_contribs, common_block_contribs_count, lnk_common_block_contrib_is_before); // compute .bss virtual size - this marks start of the common block - lnk_finalize_section_layout(sectab, common_block_sect, config->file_align); + lnk_finalize_section_layout(common_block_sect, config->file_align); U64 common_block_cursor = common_block_sect->vsize; // compute and assign offsets into the common block for (U64 contrib_idx = 0; contrib_idx < common_block_contribs_count; contrib_idx += 1) { LNK_CommonBlockContrib *contrib = &common_block_contribs[contrib_idx]; - U32 size = contrib->u.size; + U32 size = contrib->u.size; U32 align = Min(32, u64_up_to_pow2(size)); // link.exe caps align at 32 bytes common_block_cursor = AlignPow2(common_block_cursor, align); contrib->u.offset = common_block_cursor; @@ -4124,7 +4124,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT // assign contribs offsets, sizes, and section indices for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - lnk_finalize_section_layout(sectab, §_n->data, config->file_align); + lnk_finalize_section_layout(§_n->data, config->file_align); } // remove empty sections @@ -4149,10 +4149,10 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT // assing layout offsets and sizes to merged sections for (LNK_SectionNode *sect_n = sectab->merge_list.first; sect_n != 0; sect_n = sect_n->next) { LNK_Section *sect = §_n->data; - LNK_Section *final_sect = lnk_finalized_section_from_id(sectab, sect->merge_id); + LNK_Section *final_sect = sect->merge_dst; LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(sect); - U64 last_sc_size = lnk_size_from_section_contribution(last_sc); + U64 last_sc_size = lnk_size_from_section_contrib(last_sc); sect->voff = final_sect->voff + first_sc->u.off; sect->vsize = (last_sc->u.off - first_sc->u.off) + last_sc_size; sect->foff = final_sect->foff + first_sc->u.off; @@ -4242,7 +4242,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT sc->align = 1; sc->u.obj_idx = max_U32; - lnk_finalize_section_layout(sectab, reloc, config->file_align); + lnk_finalize_section_layout(reloc, config->file_align); lnk_assign_section_virtual_space(reloc, config->sect_align, &voff_cursor); lnk_assign_section_index(reloc, sectab->next_sect_idx++); @@ -4273,7 +4273,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT image_header_sc->align = config->file_align; image_header_sc->data_list = image_header_data.first; - lnk_finalize_section_layout(sectab, image_header_sect, config->file_align); + lnk_finalize_section_layout(image_header_sect, config->file_align); } ProfBegin("Patch Section Symbols"); @@ -4301,7 +4301,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT // pick fill pick U8 fill_byte = 0; if (sect->flags & COFF_SectionFlag_CntCode) { - fill_byte = lnk_code_align_byte_from_machine(config->machine); + fill_byte = coff_code_align_byte_from_machine(config->machine); } // copy section contribution @@ -4314,7 +4314,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT Assert(sc->u.off >= prev_sc_opl); U64 fill_size = sc->u.off - prev_sc_opl; MemorySet(image_data.str + sect->foff + prev_sc_opl, fill_byte, fill_size); - prev_sc_opl = sc->u.off + lnk_size_from_section_contribution(sc); + prev_sc_opl = sc->u.off + lnk_size_from_section_contrib(sc); // copy contrib contents { @@ -4595,8 +4595,8 @@ lnk_build_rad_map(Arena *arena, String8 image_data, U64 thread_count, U64 objs_c U64 file_off = image_section_table[sc->u.sect_idx]->foff + sc->u.off; U64 virt_off = image_section_table[sc->u.sect_idx]->voff + sc->u.off; - U64 virt_size = lnk_size_from_section_contribution(sc); - U64 file_size = lnk_size_from_section_contribution(sc); + U64 virt_size = lnk_size_from_section_contrib(sc); + U64 file_size = lnk_size_from_section_contrib(sc); String8 sc_data = str8_substr(image_data, rng_1u64(file_off, file_off + virt_size)); U128 sc_hash = {0}; @@ -4804,16 +4804,13 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) // if (config->rad_debug == LNK_SwitchState_Yes) { lnk_timer_begin(LNK_Timer_Rdi); - RDI_Arch arch = rdi_arch_from_coff_machine(config->machine); - LNK_SectionArray image_sects = lnk_section_table_get_output_sections(scratch.arena, image_ctx.sectab); String8List rdi_data = lnk_build_rad_debug_info(tp, tp_arena, config->target_os, - arch, + rdi_arch_from_coff_machine(config->machine), config->image_name, image_ctx.image_data, - image_sects, input.count, input.obj_arr, input.debug_s_arr, diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 29128877..55facdc0 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -14,12 +14,32 @@ typedef struct LNK_LinkContext LNK_LibList lib_index[LNK_InputSource_Count]; } LNK_LinkContext; +// -- Image -------------------------------------------------------------------- + typedef struct LNK_ImageContext { String8 image_data; LNK_SectionTable *sectab; } LNK_ImageContext; +typedef struct LNK_SectionDefinition +{ + String8 name; + COFF_SectionFlags flags; + U64 contribs_count; + struct LNK_Obj *obj; + U64 obj_sect_idx; +} LNK_SectionDefinition; + +typedef struct LNK_CommonBlockContrib +{ + struct LNK_Symbol *symbol; + union { + U32 size; + U32 offset; + } u; +} LNK_CommonBlockContrib; + // --- Base Reloc -------------------------------------------------------------- typedef struct LNK_BaseRelocPage diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index b2fb9f30..031e9a8a 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -4440,11 +4440,11 @@ lnk_type_from_itype(CV_TypeIndex itype, Rng1U64 tpi_itype_range, RDIB_Type **tpi } internal U64 -lnk_voff_from_sect_off(U64 sect_idx, U64 sect_off, LNK_SectionArray image_sects, LNK_Obj *obj, CV_SymKind symbol_kind, U64 symbol_offset) +lnk_voff_from_sect_off(U64 sect_idx, U64 sect_off, COFF_SectionHeaderArray image_sects, LNK_Obj *obj, CV_SymKind symbol_kind, U64 symbol_offset) { U64 voff = 0; if (sect_idx < image_sects.count) { - voff = image_sects.v[sect_idx]->voff + sect_off; + voff = image_sects.v[sect_idx].voff + sect_off; } else { lnk_error_obj(LNK_Error_CvIllSymbolData, obj, "Out of bounds section index 0x%x in S_%S @ 0x%llx.", sect_idx, cv_string_from_sym_kind(symbol_kind), symbol_offset); @@ -4453,11 +4453,11 @@ lnk_voff_from_sect_off(U64 sect_idx, U64 sect_off, LNK_SectionArray image_sects, } internal Rng1U64 -lnk_virt_range_from_sect_off_size(U64 sect_idx, U64 sect_off, U64 size, LNK_SectionArray image_sects, LNK_Obj *obj, CV_SymKind symbol_kind, U64 symbol_offset) +lnk_virt_range_from_sect_off_size(U64 sect_idx, U64 sect_off, U64 size, COFF_SectionHeaderArray image_sects, LNK_Obj *obj, CV_SymKind symbol_kind, U64 symbol_offset) { Rng1U64 virt_range = {0}; if (sect_idx < image_sects.count) { - U64 voff = image_sects.v[sect_idx]->voff + sect_off; + U64 voff = image_sects.v[sect_idx].voff + sect_off; virt_range = rng_1u64(voff, voff + size); } else { lnk_error_obj(LNK_Error_CvIllSymbolData, obj, "Out of bounds section index 0x%x in S_%S @ 0x%llx.", @@ -4590,8 +4590,8 @@ THREAD_POOL_TASK_FUNC(lnk_convert_line_tables_to_rdi_task) lnk_error_obj(LNK_Warning_IllData, obj, "Out of bounds section index (%u) in $$LINES; skip line info for \"%S\".", parsed_lines.sec_idx, file_path); continue; } - LNK_Section *sect = task->image_sects.v[parsed_lines.sec_idx]; - CV_LineArray lines = cv_c13_line_array_from_data(arena, raw_lines, sect->voff, parsed_lines); + COFF_SectionHeader *sect = &task->image_sects.v[parsed_lines.sec_idx]; + CV_LineArray lines = cv_c13_line_array_from_data(arena, raw_lines, sect->voff, parsed_lines); // find source file for this line table String8 normal_path = lnk_normalize_src_file_path(scratch.arena, file_path); @@ -5362,7 +5362,6 @@ lnk_build_rad_debug_info(TP_Context *tp, RDI_Arch arch, String8 image_name, String8 image_data, - LNK_SectionArray image_sects, U64 obj_count, LNK_Obj *obj_arr, CV_DebugS *debug_s_arr, @@ -5372,15 +5371,24 @@ lnk_build_rad_debug_info(TP_Context *tp, CV_DebugT types[CV_TypeIndexSource_COUNT]) { ProfBegin("RDI"); - Temp scratch = scratch_begin(0,0); + Temp scratch = scratch_begin(tp_arena->v,tp_arena->count); RDIB_Input input = rdib_init_input(scratch.arena); + COFF_SectionHeaderArray image_sects; + String8 image_strtab; + { + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, image_data); + image_sects.count = pe.section_count; + image_sects.v = (COFF_SectionHeader *)str8_substr(image_data, pe.section_table_range).str; + image_strtab = str8_substr(image_data, pe.string_table_range); + } + ProfBegin("Top Level Info"); { U64 image_vsize = 0; for (U64 sect_idx = 0; sect_idx < image_sects.count; sect_idx++) { - LNK_Section *sect = image_sects.v[sect_idx]; + COFF_SectionHeader *sect = &image_sects.v[sect_idx]; image_vsize = Max(image_vsize, sect->voff + sect->vsize); } @@ -5397,10 +5405,11 @@ lnk_build_rad_debug_info(TP_Context *tp, input.sect_count = image_sects.count; input.sections = push_array(scratch.arena, RDIB_BinarySection, image_sects.count); for (U64 sect_idx = 0; sect_idx < image_sects.count; ++sect_idx) { - LNK_Section *src = image_sects.v[sect_idx]; + COFF_SectionHeader *src = &image_sects.v[sect_idx]; RDIB_BinarySection *dst = &input.sections[sect_idx]; + String8 sect_name = coff_name_from_section_header(image_strtab, src); - dst->name = push_str8_copy(scratch.arena, src->name); + dst->name = push_str8_copy(scratch.arena, sect_name); dst->flags = rdi_binary_section_flags_from_coff_section_flags(src->flags); dst->voff_first = src->voff; dst->voff_opl = src->voff + src->vsize; diff --git a/src/linker/lnk_debug_info.h b/src/linker/lnk_debug_info.h index 7f08f7da..4ed75c34 100644 --- a/src/linker/lnk_debug_info.h +++ b/src/linker/lnk_debug_info.h @@ -453,7 +453,7 @@ typedef struct typedef struct { - LNK_SectionArray image_sects; + COFF_SectionHeaderArray image_sects; LNK_Obj *obj_arr; CV_DebugS *debug_s_arr; CV_DebugT ipi; @@ -555,7 +555,6 @@ internal String8List lnk_build_rad_debug_info(TP_Context *tp, RDI_Arch arch, String8 image_name, String8 image_data, - LNK_SectionArray image_sects, U64 obj_count, LNK_Obj *obj_arr, CV_DebugS *debug_s_arr, diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index 07ea2b00..c441c401 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -1,36 +1,6 @@ // Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -internal U8 -lnk_code_align_byte_from_machine(COFF_MachineType machine) -{ - U8 align_byte = 0; - switch (machine) { - case COFF_MachineType_X64: - case COFF_MachineType_X86: { - align_byte = 0xCC; - } break; - default: { - lnk_not_implemented("TODO: set align value for machine %S", coff_string_from_machine_type(machine)); - } break; - } - return align_byte; -} - -internal U16 -lnk_default_align_from_machine(COFF_MachineType machine) -{ - U16 align = 0; - switch (machine) { - case COFF_MachineType_Unknown: break; - case COFF_MachineType_X64: { - align = 16; - } break; - default: { NotImplemented; } break; - } - return align; -} - internal LNK_SectionContrib * lnk_section_contrib_chunk_push(LNK_SectionContribChunk *chunk, U64 count) { @@ -100,75 +70,16 @@ lnk_section_array_from_list(Arena *arena, LNK_SectionList list) return result; } -internal U64 -lnk_size_from_section_contribution(LNK_SectionContrib *sc) +internal String8 +lnk_make_name_with_flags(Arena *arena, String8 name, COFF_SectionFlags flags) { - U64 size = 0; - for (String8Node *n = sc->data_list; n != 0; n = n->next) { - size += n->string.size; - } - return size; -} - -internal U64 -lnk_voff_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc) -{ - COFF_SectionHeader *sect_header = image_section_table[sc->u.sect_idx+1]; - U64 voff = sect_header->voff + sc->u.off; - return voff; -} - -internal U64 -lnk_foff_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc) -{ - COFF_SectionHeader *sect_header = image_section_table[sc->u.sect_idx+1]; - U64 foff = sect_header->foff + sc->u.off; - return foff; -} - -internal U64 -lnk_fopl_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc) -{ - U64 foff = lnk_foff_from_section_contrib(image_section_table, sc); - return foff + lnk_size_from_section_contribution(sc); -} - -internal LNK_SectionContrib * -lnk_get_first_section_contrib(LNK_Section *sect) -{ - if (sect->contribs.chunk_count > 0) { - if (sect->contribs.first->count > 0) { - return sect->contribs.first->v[0]; - } - } - return 0; -} - -internal LNK_SectionContrib * -lnk_get_last_section_contrib(LNK_Section *sect) -{ - if (sect->contribs.chunk_count > 0) { - if (sect->contribs.last->count > 0) { - return sect->contribs.last->v[sect->contribs.last->count-1]; - } - } - return 0; -} - -internal U64 -lnk_get_section_contrib_size(LNK_Section *sect) -{ - LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); - LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(sect); - U64 size = (last_sc->u.off - first_sc->u.off) + lnk_size_from_section_contribution(last_sc); - return size; -} - -internal U64 -lnk_get_first_section_contrib_voff(COFF_SectionHeader **image_section_table, LNK_Section *sect) -{ - LNK_SectionContrib *sc = lnk_get_first_section_contrib(sect); - return lnk_voff_from_section_contrib(image_section_table, sc); + Temp scratch = scratch_begin(&arena, 1); + String8List l = {0}; + str8_list_push(scratch.arena, &l, name); + str8_list_push(scratch.arena, &l, str8_struct(&flags)); + String8 name_with_flags = str8_list_join(arena, &l, 0); + scratch_end(scratch); + return name_with_flags; } internal LNK_SectionTable * @@ -184,27 +95,15 @@ lnk_section_table_alloc(void) } internal void -lnk_section_table_release(LNK_SectionTable **st_ptr) +lnk_section_table_release(LNK_SectionTable **sectab_ptr) { ProfBeginFunction(); - LNK_SectionTable *sectab = *st_ptr; + LNK_SectionTable *sectab = *sectab_ptr; arena_release(sectab->arena); - *st_ptr = 0; + *sectab_ptr = 0; ProfEnd(); } -internal String8 -lnk_make_name_with_flags(Arena *arena, String8 name, COFF_SectionFlags flags) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List l = {0}; - str8_list_push(scratch.arena, &l, name); - str8_list_push(scratch.arena, &l, str8_struct(&flags)); - String8 name_with_flags = str8_list_join(arena, &l, 0); - scratch_end(scratch); - return name_with_flags; -} - internal LNK_Section * lnk_section_table_push(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags flags) { @@ -212,9 +111,8 @@ lnk_section_table_push(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags LNK_SectionNode *sect_node = push_array(sectab->arena, LNK_SectionNode, 1); LNK_Section *sect = §_node->data; - sect->id = sectab->id_max++; - sect->name = push_str8_copy(sectab->arena, name); - sect->flags = flags; + sect->name = push_str8_copy(sectab->arena, name); + sect->flags = flags; LNK_SectionList *sect_list = §ab->list; SLLQueuePush(sect_list->first, sect_list->last, sect_node); @@ -277,12 +175,12 @@ lnk_section_table_search(LNK_SectionTable *sectab, String8 full_or_partial_name, { Temp scratch = scratch_begin(0,0); - String8 name = {0}; + String8 name = {0}; String8 postfix = {0}; coff_parse_section_name(full_or_partial_name, &name, &postfix); - String8 name_with_flags = lnk_make_name_with_flags(scratch.arena, name, flags); - LNK_Section *section= 0; + String8 name_with_flags = lnk_make_name_with_flags(scratch.arena, name, flags); + LNK_Section *section = 0; hash_table_search_string_raw(sectab->sect_ht, name_with_flags, §ion); scratch_end(scratch); @@ -292,7 +190,7 @@ lnk_section_table_search(LNK_SectionTable *sectab, String8 full_or_partial_name, internal LNK_SectionArray lnk_section_table_search_many(Arena *arena, LNK_SectionTable *sectab, String8 full_or_partial_name) { - String8 name = {0}; + String8 name = {0}; String8 postfix = {0}; coff_parse_section_name(full_or_partial_name, &name, &postfix); @@ -325,7 +223,6 @@ lnk_section_table_merge(LNK_SectionTable *sectab, LNK_MergeDirectiveList merge_l ProfBeginFunction(); Temp scratch = scratch_begin(0, 0); - LNK_Section **src_dst = push_array(scratch.arena, LNK_Section *, sectab->id_max); for (LNK_MergeDirectiveNode *merge_node = merge_list.first; merge_node != 0; merge_node = merge_node->next) { LNK_MergeDirective *merge = &merge_node->data; @@ -361,8 +258,8 @@ lnk_section_table_merge(LNK_SectionTable *sectab, LNK_MergeDirectiveList merge_l // are we trying to merge section that was already merged? LNK_Section *merge_sect = 0; hash_table_search_string_raw(sectab->sect_ht, merge->src, &merge_sect); - if (merge_sect && merge_sect->is_merged) { - LNK_Section *dst = src_dst[merge_sect->id]; + if (merge_sect && merge_sect->merge_dst) { + LNK_Section *dst = merge_sect->merge_dst; B32 is_ambiguous_merge = !str8_match(dst->name, merge->dst, 0); if (is_ambiguous_merge) { lnk_error(LNK_Warning_AmbiguousMerge, "Detected ambiguous section merge:"); @@ -398,13 +295,9 @@ lnk_section_table_merge(LNK_SectionTable *sectab, LNK_MergeDirectiveList merge_l for (U64 src_idx = 0; src_idx < src_matches.count; src_idx += 1) { LNK_Section *src = src_matches.v[src_idx]; - // update map - src_dst[src->id] = dst; - // merge section with destination lnk_section_contrib_chunk_list_concat_in_place(&dst->contribs, &src->contribs); - src->is_merged = 1; - src->merge_id = dst->id; + src->merge_dst = dst; // remove from output section list LNK_SectionNode *merge_node = lnk_section_table_remove(sectab, src->name); @@ -418,25 +311,6 @@ lnk_section_table_merge(LNK_SectionTable *sectab, LNK_MergeDirectiveList merge_l ProfEnd(); } -internal LNK_SectionArray -lnk_section_table_get_output_sections(Arena *arena, LNK_SectionTable *sectab) -{ - LNK_SectionArray result = {0}; - result.count = 0; - result.v = push_array(arena, LNK_Section *, sectab->list.count); - - for (LNK_SectionNode *sect_node = sectab->list.first; sect_node != 0; sect_node = sect_node->next) { - Assert(result.count < sectab->list.count); - result.v[result.count] = §_node->data; - result.count += 1; - } - - U64 unused_entry_count = sectab->list.count - result.count; - arena_pop(arena, unused_entry_count * sizeof(result.v[0])); - - return result; -} - internal int lnk_section_contrib_chunk_is_before(void *raw_a, void *raw_b) { @@ -445,7 +319,7 @@ lnk_section_contrib_chunk_is_before(void *raw_a, void *raw_b) } internal void -lnk_finalize_section_layout(LNK_SectionTable *sectab, LNK_Section *sect, U64 file_align) +lnk_finalize_section_layout(LNK_Section *sect, U64 file_align) { Temp scratch = scratch_begin(0,0); @@ -459,7 +333,7 @@ lnk_finalize_section_layout(LNK_SectionTable *sectab, LNK_Section *sect, U64 fil // repopulate chunk list in sorted order sect->contribs.first = 0; - sect->contribs.last = 0; + sect->contribs.last = 0; for (U64 chunk_idx = 0; chunk_idx < sect->contribs.chunk_count; chunk_idx += 1) { SLLQueuePush(sect->contribs.first, sect->contribs.last, chunks[chunk_idx]); } @@ -478,7 +352,7 @@ lnk_finalize_section_layout(LNK_SectionTable *sectab, LNK_Section *sect, U64 fil U64 sc_off = cursor; // compute contrib size - U64 sc_size = lnk_size_from_section_contribution(sc); + U64 sc_size = lnk_size_from_section_contrib(sc); cursor += sc_size; // assign offset and size @@ -495,7 +369,6 @@ lnk_finalize_section_layout(LNK_SectionTable *sectab, LNK_Section *sect, U64 fil scratch_end(scratch); } - internal void lnk_assign_section_index(LNK_Section *sect, U64 sect_idx) { @@ -526,22 +399,73 @@ lnk_assign_section_file_space(LNK_Section *sect, U64 *foff_cursor) } } -internal LNK_Section * -lnk_finalized_section_from_id(LNK_SectionTable *sectab, U64 id) +internal U64 +lnk_size_from_section_contrib(LNK_SectionContrib *sc) { - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - if (sect_n->data.id == id) { - return §_n->data; + U64 size = 0; + for (String8Node *n = sc->data_list; n != 0; n = n->next) { + size += n->string.size; + } + return size; +} + +internal U64 +lnk_voff_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc) +{ + COFF_SectionHeader *sect_header = image_section_table[sc->u.sect_idx+1]; + U64 voff = sect_header->voff + sc->u.off; + return voff; +} + +internal U64 +lnk_foff_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc) +{ + COFF_SectionHeader *sect_header = image_section_table[sc->u.sect_idx+1]; + U64 foff = sect_header->foff + sc->u.off; + return foff; +} + +internal U64 +lnk_fopl_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc) +{ + U64 foff = lnk_foff_from_section_contrib(image_section_table, sc); + return foff + lnk_size_from_section_contrib(sc); +} + +internal LNK_SectionContrib * +lnk_get_first_section_contrib(LNK_Section *sect) +{ + if (sect->contribs.chunk_count > 0) { + if (sect->contribs.first->count > 0) { + return sect->contribs.first->v[0]; } } - - for (LNK_SectionNode *sect_n = sectab->merge_list.first; sect_n != 0; sect_n = sect_n->next) { - if (sect_n->data.id == id) { - return lnk_finalized_section_from_id(sectab, sect_n->data.merge_id); - } - } - return 0; } +internal LNK_SectionContrib * +lnk_get_last_section_contrib(LNK_Section *sect) +{ + if (sect->contribs.chunk_count > 0) { + if (sect->contribs.last->count > 0) { + return sect->contribs.last->v[sect->contribs.last->count-1]; + } + } + return 0; +} +internal U64 +lnk_get_section_contrib_size(LNK_Section *sect) +{ + LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); + LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(sect); + U64 size = (last_sc->u.off - first_sc->u.off) + lnk_size_from_section_contrib(last_sc); + return size; +} + +internal U64 +lnk_get_first_section_contrib_voff(COFF_SectionHeader **image_section_table, LNK_Section *sect) +{ + LNK_SectionContrib *sc = lnk_get_first_section_contrib(sect); + return lnk_voff_from_section_contrib(image_section_table, sc); +} diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index 14b2bbf8..7cd12460 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -20,18 +20,9 @@ typedef struct LNK_SectionContrib U8 unused[2]; }; } u; - U16 align; // alignment of the contribution in the image + U16 align; // contribution alignment in the image } LNK_SectionContrib; -typedef struct LNK_CommonBlockContrib -{ - struct LNK_Symbol *symbol; - union { - U32 size; - U32 offset; - } u; -} LNK_CommonBlockContrib; - typedef struct LNK_SectionContribChunk { struct LNK_SectionContribChunk *next; @@ -49,24 +40,14 @@ typedef struct LNK_SectionContribChunkList LNK_SectionContribChunk *last; } LNK_SectionContribChunkList; -typedef struct LNK_SectionDefinition -{ - String8 name; - COFF_SectionFlags flags; - U64 contribs_count; - struct LNK_Obj *obj; - U64 obj_sect_idx; -} LNK_SectionDefinition; - typedef struct LNK_Section { - U64 id; String8 name; COFF_SectionFlags flags; - B32 is_merged; - U64 merge_id; LNK_SectionContribChunkList contribs; + struct LNK_Section *merge_dst; + U64 voff; U64 vsize; U64 fsize; @@ -97,23 +78,44 @@ typedef struct LNK_SectionArray typedef struct LNK_SectionTable { Arena *arena; - U64 id_max; - U64 next_sect_idx; LNK_SectionList list; LNK_SectionList merge_list; - HashTable *sect_ht; // name -> LNK_Section * + HashTable *sect_ht; // (name * COFF_SectionFlags) -> LNK_Section * + U64 next_sect_idx; } LNK_SectionTable; -//////////////////////////////// +// --- Section Contrib Chunk List ---------------------------------------------- -internal U8 lnk_code_align_byte_from_machine(COFF_MachineType machine); -internal U16 lnk_default_align_from_machine(COFF_MachineType machine); +internal LNK_SectionContrib * lnk_section_contrib_chunk_push(LNK_SectionContribChunk *chunk, U64 count); +internal LNK_SectionContrib * lnk_section_contrib_chunk_push_atomic(LNK_SectionContribChunk *chunk, U64 count); +internal LNK_SectionContribChunk * lnk_section_contrib_chunk_list_push_chunk(Arena *arena, LNK_SectionContribChunkList *list, U64 cap, String8 sort_idx); +internal void lnk_section_contrib_chunk_list_concat_in_place(LNK_SectionContribChunkList *list, LNK_SectionContribChunkList *to_concat); +internal LNK_SectionContribChunk ** lnk_array_from_section_contrib_chunk_list(Arena *arena, LNK_SectionContribChunkList list); -//////////////////////////////// +// --- Section List ------------------------------------------------------------ internal LNK_SectionArray lnk_section_array_from_list(Arena *arena, LNK_SectionList list); -//////////////////////////////// +// --- Section Table ----------------------------------------------------------- + +internal String8 lnk_make_name_with_flags(Arena *arena, String8 name, COFF_SectionFlags flags); + +internal LNK_SectionTable * lnk_section_table_alloc(void); +internal void lnk_section_table_release(LNK_SectionTable **sectab_ptr); +internal LNK_Section * lnk_section_table_push(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags flags); +internal LNK_SectionNode * lnk_section_table_remove(LNK_SectionTable *sectab, String8 name); +internal LNK_Section * lnk_section_table_search(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags flags); +internal LNK_SectionArray lnk_section_table_search_many(Arena *arena, LNK_SectionTable *sectab, String8 full_or_partial_name); +internal void lnk_section_table_merge(LNK_SectionTable *sectab, LNK_MergeDirectiveList merge_list); + +// --- Section Finalization ---------------------------------------------------- + +internal void lnk_finalize_section_layout (LNK_Section *sect, U64 file_align); +internal void lnk_assign_section_index (LNK_Section *sect, U64 sect_idx); +internal void lnk_assign_section_virtual_space(LNK_Section *sect, U64 sect_align, U64 *voff_cursor); +internal void lnk_assign_section_file_space (LNK_Section *sect, U64 *foff_cursor); + +// --- Section Contribution ---------------------------------------------------- internal U64 lnk_size_from_section_contrib(LNK_SectionContrib *sc); internal U64 lnk_voff_from_section_contrib(COFF_SectionHeader **image_section_table, LNK_SectionContrib *sc); @@ -124,21 +126,3 @@ internal LNK_SectionContrib * lnk_get_first_section_contrib(LNK_Section *sect); internal LNK_SectionContrib * lnk_get_last_section_contrib(LNK_Section *sect); internal U64 lnk_get_section_contrib_size(LNK_Section *sect); internal U64 lnk_get_first_section_contrib_voff(COFF_SectionHeader **image_section_table, LNK_Section *sect); - -//////////////////////////////// - -internal LNK_SectionTable * lnk_section_table_alloc(void); -internal void lnk_section_table_release(LNK_SectionTable **st_ptr); -internal LNK_Section * lnk_section_table_push(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags flags); -internal LNK_SectionNode * lnk_section_table_remove(LNK_SectionTable *sectab, String8 name); -internal LNK_Section * lnk_section_table_search(LNK_SectionTable *sectab, String8 name, COFF_SectionFlags flags); -internal LNK_SectionArray lnk_section_table_search_many(Arena *arena, LNK_SectionTable *sectab, String8 full_or_partial_name); -internal void lnk_section_table_merge(LNK_SectionTable *sectab, LNK_MergeDirectiveList merge_list); -internal LNK_SectionArray lnk_section_table_get_output_sections(Arena *arena, LNK_SectionTable *sectab); -internal LNK_Section * lnk_finalized_section_from_id(LNK_SectionTable *sectab, U64 id); - -internal LNK_SectionArray lnk_section_table_get_output_sections(Arena *arena, LNK_SectionTable *sectab); -internal void lnk_finalize_section_layout(LNK_SectionTable *sectab, LNK_Section *sect, U64 file_align); -internal void lnk_assign_section_index(LNK_Section *sect, U64 sect_idx); -internal void lnk_assign_section_virtual_space(LNK_Section *sect, U64 sect_align, U64 *voff_cursor); -internal void lnk_assign_section_file_space(LNK_Section *sect, U64 *foff_cursor); From 5fb0d978b9a57b11b8d954f45f1865c4d451f291 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 10 Jun 2025 10:03:48 -0700 Subject: [PATCH 209/372] WIP function pad min --- src/linker/base_ext/base_core.c | 36 ++++-- src/linker/lnk.c | 195 ++++++++++++++++++++++++++------ src/linker/lnk.h | 3 +- src/linker/lnk_config.c | 8 +- src/linker/lnk_config.h | 1 + src/linker/lnk_section_table.c | 23 ++-- src/linker/lnk_section_table.h | 9 +- 7 files changed, 211 insertions(+), 64 deletions(-) diff --git a/src/linker/base_ext/base_core.c b/src/linker/base_ext/base_core.c index 3239be28..b1873b10 100644 --- a/src/linker/base_ext/base_core.c +++ b/src/linker/base_ext/base_core.c @@ -8,16 +8,12 @@ safe_cast_u16x(U64 x) return (U16)x; } -//////////////////////////////// - internal U64 u128_mod64(U128 a, U64 b) { return a.u64[1] % b; } -//////////////////////////////// - internal Version make_version(U64 major, U64 minor) { @@ -45,8 +41,6 @@ version_compar(Version a, Version b) return cmp; } -//////////////////////////////// - internal ISectOff isect_off(U32 isect, U32 off) { @@ -54,8 +48,6 @@ isect_off(U32 isect, U32 off) return result; } -//////////////////////////////// - internal int u16_compar(const void *raw_a, const void *raw_b) { @@ -123,7 +115,6 @@ u64_compar_is_before(void *raw_a, void *raw_b) return is_before; } - internal int u8_is_before(void *raw_a, void *raw_b) { @@ -212,8 +203,33 @@ pair_u64_compar_v1(const void *raw_a, const void *raw_b) return u64_compar(&a->v1, &b->v1); } +internal U64 +pair_u64_nearest_v0(PairU64 *arr, U64 count, U64 v) +{ + U64 result = max_U64; -//////////////////////////////// + if (count > 1 && arr[0].v0 <= v && v < arr[count-1].v0) { + U64 l = 0; + U64 r = count - 1; + for (; l <= r; ) { + U64 m = l + (r - l) / 2; + if (arr[m].v0 == v) { + return m; + } else if (arr[m].v0 < v) { + l = m + 1; + } else { + r = m - 1; + } + } + result = l; + } else if (count == 1 && arr[0].v0 == v) { + result = 0; + } else if (count > 0 && v >= arr[count-1].v0) { + result = count-1; + } + + return result; +} internal void str8_list_concat_in_place_array(String8List *list, String8List *arr, U64 count) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 8bee6700..2b809166 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1490,6 +1490,12 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) for (U64 obj_idx = 0; obj_idx < obj_node_arr.count; obj_idx += 1) { if (obj_node_arr.v[obj_idx].data.header.machine != COFF_MachineType_Unknown) { config->machine = obj_node_arr.v[obj_idx].data.header.machine; + + if (config->do_function_pad_min == LNK_SwitchState_Yes && config->function_pad_min == 0) { + config->function_pad_min = push_array(tp_arena->v[0], U64, 1); + *config->function_pad_min = lnk_get_default_function_pad_min(config->machine); + } + break; } } @@ -2355,12 +2361,12 @@ THREAD_POOL_TASK_FUNC(lnk_gather_section_contribs_task) if (sc_chunk) { U16 sc_align = coff_align_size_from_section_flags(sect_header->flags); sc = lnk_section_contrib_chunk_push_atomic(sc_chunk, 1); - sc->node.next = 0; - sc->node.string = str8_substr(obj->data, rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize)); - sc->data_list = &sc->node; - sc->align = sc_align == 0 ? task->default_align : sc_align; - sc->u.obj_idx = obj_idx; - sc->u.obj_sect_idx = sect_idx; + sc->first_data_node.next = 0; + sc->first_data_node.string = str8_substr(obj->data, rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize)); + sc->last_data_node = &sc->first_data_node; + sc->align = sc_align == 0 ? task->default_align : sc_align; + sc->u.obj_idx = obj_idx; + sc->u.obj_sect_idx = sect_idx; } temp_end(temp); @@ -2396,6 +2402,122 @@ THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_task) ProfEnd(); } +internal +THREAD_POOL_TASK_FUNC(lnk_split_func_contribs_task) +{ + Temp scratch = scratch_begin(&arena, 1); + + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + + ProfBeginV("%S", obj->path); + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + + // is this a function symbol? + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular && COFF_SymbolType_IsFunc(symbol.type)) { + if (symbol.section_number == 0 || symbol.section_number > obj->header.section_count_no_null) { + lnk_error_obj(LNK_Error_IllData, obj, "out ouf bounds section index in symbol \"%S (%u)\"", symbol.name, symbol.section_number); + } + + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + if (symbol.value > section_header->fsize) { + lnk_error_obj(LNK_Error_IllData, obj, "out of bounds section offset in symbol \"%S (%u)\"", symbol.name, symbol.value); + } + + if (~section_header->flags & COFF_SectionFlag_CntCode) { + String8 section_name = coff_name_from_section_header(string_table, section_header); + lnk_error_obj(LNK_Error_IllData, obj, "symbol %S (No. 0x%x) has a function type but points into section that is not declared as code %S (No. 0x%x)", + symbol.name, symbol_idx, section_name, symbol.section_number); + continue; + } + + if (symbol.value > 0) { + // find chunk that is near symbol + LNK_SectionContrib *sc = task->sect_map[obj_idx][symbol.section_number-1]; + String8Node *current = &sc->first_data_node; + U64 offset_cursor = 0; + for (String8Node *c = current; c != 0; c = c->next) { + if (offset_cursor + c->string.size >= symbol.value) { + current = c; + break; + } + offset_cursor += c->string.size; + } + + if (offset_cursor < symbol.value) { + // bifurcate chunk at symbol offset + U64 split_pos = symbol.value - offset_cursor; + String8 left = str8_substr(current->string, rng_1u64(0, split_pos)); + String8 right = str8_substr(current->string, rng_1u64(split_pos, current->string.size)); + + // update split node data + current->string = left; + + // create new data node + String8Node *split_node = push_array(arena, String8Node, 1); + split_node->string = right; + + // insert split node after current node + split_node->next = current->next; + current->next = split_node; + if (sc->last_data_node == current) { + sc->last_data_node = split_node; + } + } + } + } + } + + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); + if (~section_header->flags & COFF_SectionFlag_CntCode) { continue; } + COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, section_header); + COFF_Reloc *relocs = (COFF_Reloc *)(obj->data.str + reloc_info.array_off); + LNK_SectionContrib *sc = task->sect_map[obj_idx][sect_idx]; + + U64 offset_map_count = 0; + for (String8Node *data_n = &sc->first_data_node; data_n != 0; data_n = data_n->next) { + offset_map_count += 1; + } + if (offset_map_count <= 1) { continue; } + + Temp temp = temp_begin(scratch.arena); + PairU64 *offset_map = push_array(temp.arena, PairU64, offset_map_count); + U64 data_node_idx = 0; + U64 prev_cursor_offset = 0; + U64 new_cursor_offset = 0; + for (String8Node *data_n = &sc->first_data_node; data_n != 0; data_n = data_n->next, data_node_idx += 1) { + offset_map[data_node_idx].v0 = prev_cursor_offset; + offset_map[data_node_idx].v1 = new_cursor_offset; + prev_cursor_offset += data_n->string.size; + new_cursor_offset += Max(task->function_pad_min, data_n->string.size); + } + + for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { + COFF_Reloc *reloc = &relocs[reloc_idx]; + U64 offset_idx = pair_u64_nearest_v0(offset_map, offset_map_count, reloc->apply_off); + if (offset_idx < offset_map_count) { + reloc->apply_off = offset_map[offset_idx].v1 + (reloc->apply_off - offset_map[offset_idx].v0); + } else { + InvalidPath; + } + } + temp_end(temp); + } + + // TODO: update symbols with new offsets + + ProfEnd(); + + scratch_end(scratch); +} + internal int lnk_section_contrib_ptr_is_before(void *raw_a, void *raw_b) { @@ -3883,12 +4005,13 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT LNK_Section *common_block_sect = lnk_section_table_search(sectab, str8_lit(".bss"), PE_BSS_SECTION_FLAGS); LNK_BuildImageTask task = {0}; - task.symtab = symtab; - task.sectab = sectab; - task.default_align = coff_default_align_from_machine(config->machine); - task.objs_count = objs_count; - task.objs = objs; - task.sect_map = 0; + task.symtab = symtab; + task.sectab = sectab; + task.function_pad_min = *config->function_pad_min; + task.default_align = coff_default_align_from_machine(config->machine); + task.objs_count = objs_count; + task.objs = objs; + task.sect_map = 0; ProfBegin("Remove Associative Sections"); tp_for_parallel(tp, 0, objs_count, lnk_remove_associative_sections_task, &task); @@ -3977,7 +4100,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT LNK_SectionContribChunk *contrib_chunk = 0; hash_table_search_string_raw(task.contribs_ht, defn_name_with_flags, &contrib_chunk); if (!contrib_chunk) { - contrib_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, §->contribs, sect_defn->contribs_count, sort_idx); + contrib_chunk = lnk_section_contrib_chunk_list_push_chunk(arena->v[0], §->contribs, sect_defn->contribs_count, sort_idx); hash_table_push_string_raw(sectab->arena, task.contribs_ht, defn_name_with_flags, contrib_chunk); } @@ -4001,6 +4124,12 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT tp_for_parallel(tp, 0, objs_count, lnk_gather_section_contribs_task, &task); ProfEnd(); + if (config->do_function_pad_min == LNK_SwitchState_Yes) { + ProfBegin("Split Code Sections"); + tp_for_parallel(tp, arena, objs_count, lnk_split_func_contribs_task, &task); + ProfEnd(); + } + // ensure determinism by sorting section contribs in chunks by input index { ProfBegin("Sort Section Contribs"); @@ -4084,7 +4213,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT radsort(common_block_contribs, common_block_contribs_count, lnk_common_block_contrib_is_before); // compute .bss virtual size - this marks start of the common block - lnk_finalize_section_layout(common_block_sect, config->file_align); + lnk_finalize_section_layout(common_block_sect, config->file_align, *config->function_pad_min); U64 common_block_cursor = common_block_sect->vsize; // compute and assign offsets into the common block @@ -4100,12 +4229,12 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT // append common block's contribution LNK_SectionContribChunk *common_block_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &common_block_sect->contribs, 1, str8(0,0)); LNK_SectionContrib *common_block_sc = lnk_section_contrib_chunk_push(common_block_chunk, 1); - common_block_sc->u.obj_idx = max_U32; - common_block_sc->u.obj_sect_idx = max_U32; - common_block_sc->align = 1; - common_block_sc->node.next = 0; - common_block_sc->node.string = str8(0, common_block_cursor - common_block_sect->vsize); - common_block_sc->data_list = &common_block_sc->node; + common_block_sc->u.obj_idx = max_U32; + common_block_sc->u.obj_sect_idx = max_U32; + common_block_sc->align = 1; + common_block_sc->first_data_node.next = 0; + common_block_sc->first_data_node.string = str8(0, common_block_cursor - common_block_sect->vsize); + common_block_sc->last_data_node = &common_block_sc->first_data_node; ProfEnd(); } @@ -4124,7 +4253,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT // assign contribs offsets, sizes, and section indices for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - lnk_finalize_section_layout(§_n->data, config->file_align); + lnk_finalize_section_layout(§_n->data, config->file_align, *config->function_pad_min); } // remove empty sections @@ -4238,11 +4367,12 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT LNK_Section *reloc = lnk_section_table_push(sectab, str8_lit(".reloc"), PE_RELOC_SECTION_FLAGS); LNK_SectionContribChunk *first_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &reloc->contribs, 1, str8_zero()); LNK_SectionContrib *sc = lnk_section_contrib_chunk_push(first_sc_chunk, 1); - sc->data_list = base_relocs_data.first; - sc->align = 1; - sc->u.obj_idx = max_U32; + sc->first_data_node = *base_relocs_data.first; + sc->last_data_node = base_relocs_data.last; + sc->align = 1; + sc->u.obj_idx = max_U32; - lnk_finalize_section_layout(reloc, config->file_align); + lnk_finalize_section_layout(reloc, config->file_align, *config->function_pad_min); lnk_assign_section_virtual_space(reloc, config->sect_align, &voff_cursor); lnk_assign_section_index(reloc, sectab->next_sect_idx++); @@ -4270,10 +4400,11 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT LNK_SectionContribChunk *image_header_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &image_header_sect->contribs, 1, str8_zero()); LNK_SectionContrib *image_header_sc = lnk_section_contrib_chunk_push(image_header_sc_chunk, 1); - image_header_sc->align = config->file_align; - image_header_sc->data_list = image_header_data.first; + image_header_sc->align = config->file_align; + image_header_sc->first_data_node = *image_header_data.first; + image_header_sc->last_data_node = image_header_data.last; - lnk_finalize_section_layout(image_header_sect, config->file_align); + lnk_finalize_section_layout(image_header_sect, config->file_align, *config->function_pad_min); } ProfBegin("Patch Section Symbols"); @@ -4319,7 +4450,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT // copy contrib contents { U64 cursor = 0; - for (String8Node *data_n = sc->data_list; data_n != 0; data_n = data_n->next) { + for (String8Node *data_n = &sc->first_data_node; data_n != 0; data_n = data_n->next) { Assert(sc->u.off + data_n->string.size <= sect->vsize); MemoryCopy(image_data.str + sect->foff + sc->u.off + cursor, data_n->string.str, data_n->string.size); cursor += data_n->string.size; @@ -4876,9 +5007,9 @@ entry_point(CmdLine *cmdline) { Temp scratch = scratch_begin(0,0); lnk_init_error_handler(); - LNK_Config *config = lnk_config_from_argcv(scratch.arena, cmdline->argc, cmdline->argv); - TP_Context *tp = tp_alloc(scratch.arena, config->worker_count, config->max_worker_count, config->shared_thread_pool_name); - TP_Arena *tp_arena = tp_arena_alloc(tp); + LNK_Config *config = lnk_config_from_argcv(scratch.arena, cmdline->argc, cmdline->argv); + TP_Context *tp = tp_alloc(scratch.arena, config->worker_count, config->max_worker_count, config->shared_thread_pool_name); + TP_Arena *tp_arena = tp_arena_alloc(tp); lnk_run(tp, tp_arena, config); scratch_end(scratch); } diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 55facdc0..b5f44e12 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -74,9 +74,10 @@ typedef struct { LNK_SymbolTable *symtab; LNK_SectionTable *sectab; + U64 function_pad_min; U64 default_align; U64 objs_count; - LNK_Obj **objs; + LNK_Obj **objs; LNK_SectionContrib ***sect_map; HashTable *contribs_ht; LNK_SectionArray image_sects; diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 893c77f4..fda0eba0 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -1202,12 +1202,12 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam case LNK_CmdSwitch_FunctionPadMin: { if (value_strings.node_count == 0) { - config->function_pad_min = 0; // :function_pad_min + config->function_pad_min = 0; } else { - local_persist U64 function_pad_min; - lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &function_pad_min, LNK_ParseU64Flag_CheckUnder32bit); - config->function_pad_min = &function_pad_min; + config->function_pad_min = push_array(arena, U64, 1); + lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, config->function_pad_min, LNK_ParseU64Flag_CheckUnder32bit); } + config->do_function_pad_min = LNK_SwitchState_Yes; } break; case LNK_CmdSwitch_Heap: { diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index b5377b92..07a07f21 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -324,6 +324,7 @@ typedef struct LNK_Config U64 worker_count; U64 max_worker_count; String8 shared_thread_pool_name; + LNK_SwitchState do_function_pad_min; U64 *function_pad_min; U64 *manifest_resource_id; B32 no_default_libs; diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index c441c401..f2db71cb 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -319,7 +319,7 @@ lnk_section_contrib_chunk_is_before(void *raw_a, void *raw_b) } internal void -lnk_finalize_section_layout(LNK_Section *sect, U64 file_align) +lnk_finalize_section_layout(LNK_Section *sect, U64 file_align, U64 function_pad_min) { Temp scratch = scratch_begin(0,0); @@ -341,22 +341,19 @@ lnk_finalize_section_layout(LNK_Section *sect, U64 file_align) ProfEnd(); ProfBegin("Layout Contribs"); - U64 cursor = 0; + U64 min_sc_size = sect->flags & COFF_SectionFlag_CntCode ? function_pad_min : 0; + U64 cursor = 0; for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; - cursor = AlignPow2(cursor, sc->align); - - // store section contribution start offset - U64 sc_off = cursor; - - // compute contrib size - U64 sc_size = lnk_size_from_section_contrib(sc); - cursor += sc_size; - // assign offset and size - sc->u.off = sc_off; + cursor = AlignPow2(cursor, sc->align); + sc->u.off = cursor; + + // advance cursor + U64 sc_size = lnk_size_from_section_contrib(sc); + cursor += Max(min_sc_size, sc_size); } } ProfEnd(); @@ -403,7 +400,7 @@ internal U64 lnk_size_from_section_contrib(LNK_SectionContrib *sc) { U64 size = 0; - for (String8Node *n = sc->data_list; n != 0; n = n->next) { + for (String8Node *n = &sc->first_data_node; n != 0; n = n->next) { size += n->string.size; } return size; diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index 7cd12460..a6b21afb 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -5,14 +5,15 @@ typedef struct LNK_SectionContrib { - String8Node node; // most contributions require at least one data node, so preallocate it here - String8Node *data_list; // list of data nodes that contribute to final section + String8Node first_data_node; // most contributions require at least one data node, so preallocate it here + String8Node *last_data_node; // list of data nodes that contribute to final section union { - // used before section layout is finalized + // used to sort sections to get deterministic output struct { U32 obj_idx; // index of the input obj that contributes to the image section U32 obj_sect_idx; // index into contributing obj's section table }; + // used after section layout is finalized struct { U32 off; // contribution offset within the image section @@ -110,7 +111,7 @@ internal void lnk_section_table_merge(LNK_SectionTable *sectab, L // --- Section Finalization ---------------------------------------------------- -internal void lnk_finalize_section_layout (LNK_Section *sect, U64 file_align); +internal void lnk_finalize_section_layout (LNK_Section *sect, U64 file_align, U64 function_pad_min); internal void lnk_assign_section_index (LNK_Section *sect, U64 sect_idx); internal void lnk_assign_section_virtual_space(LNK_Section *sect, U64 sect_align, U64 *voff_cursor); internal void lnk_assign_section_file_space (LNK_Section *sect, U64 *foff_cursor); From d7b8de5998f750bc015e6798cbfcf8d4175d15d6 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 10 Jun 2025 16:28:19 -0700 Subject: [PATCH 210/372] test empty section and section with removed flag --- src/torture/torture.c | 81 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index 8a63e196..74023605 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -3273,6 +3273,85 @@ exit:; return result; } +internal T_Result +t_empty_section(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *test = coff_obj_writer_push_section(obj_writer, str8_lit(".test"), PE_TEXT_SECTION_FLAGS, str8(0,0)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, test); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("empty_section.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); + COFF_ObjSymbol *test_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); + coff_obj_writer_section_push_reloc_voff(obj_writer, text_sect, 3, test_symbol); // relocation against removed section + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, text_sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { goto exit; } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe empty_section.obj entry.obj"); + if (linker_exit_code == 0) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + +internal T_Result +t_removed_section(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 test_text[] = { 0xc3 }; + COFF_ObjSection *test_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".test"), PE_TEXT_SECTION_FLAGS | COFF_SectionFlag_LnkRemove, str8_array_fixed(test_text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, test_sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("test.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); + COFF_ObjSymbol *test_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); + coff_obj_writer_section_push_reloc_voff(obj_writer, text_sect, 3, test_symbol); // relocation against removed section + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, text_sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { goto exit; } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe test.obj entry.obj"); + if (linker_exit_code == 0) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + //////////////////////////////////////////////////////////////// internal void @@ -3324,6 +3403,8 @@ entry_point(CmdLine *cmdline) { "communal_var_vs_regular", t_communal_var_vs_regular }, { "import_kernel32", t_import_kernel32 }, { "delay_import_user32", t_delay_import_user32 }, + { "empty_section", t_empty_section }, + { "removed_section", t_removed_section }, //{ "import_export", t_import_export }, }; From a5119e3b512eca37db634a9fea2bdc6b03189544 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 10 Jun 2025 19:38:43 -0700 Subject: [PATCH 211/372] WIP function pad min --- src/coff/coff_obj_writer.c | 9 ++ src/coff/coff_obj_writer.h | 1 + src/linker/lnk.c | 211 +++++++++++++++++++++------------ src/linker/lnk.h | 2 + src/linker/lnk_config.c | 6 +- src/linker/lnk_config.h | 3 +- src/linker/lnk_error.h | 1 + src/linker/lnk_obj.c | 4 + src/linker/lnk_section_table.c | 2 +- src/torture/torture.c | 43 +++++++ 10 files changed, 204 insertions(+), 78 deletions(-) diff --git a/src/coff/coff_obj_writer.c b/src/coff/coff_obj_writer.c index b3ca7645..33da32fb 100644 --- a/src/coff/coff_obj_writer.c +++ b/src/coff/coff_obj_writer.c @@ -283,6 +283,15 @@ coff_obj_writer_push_symbol_extern(COFF_ObjWriter *obj_writer, String8 name, U32 return s; } +internal COFF_ObjSymbol * +coff_obj_writer_push_symbol_extern_func(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSection *section) +{ + COFF_SymbolType type = { .u.msb = COFF_SymDType_Func }; + COFF_SymbolLocation loc = { .type = COFF_SymbolLocation_Section, .u.section = section }; + COFF_ObjSymbol *s = coff_obj_writer_push_symbol(obj_writer, name, value, loc, type, COFF_SymStorageClass_External); + return s; +} + internal COFF_ObjSymbol * coff_obj_writer_push_symbol_static(COFF_ObjWriter *obj_writer, String8 name, U32 off, COFF_ObjSection *section) { diff --git a/src/coff/coff_obj_writer.h b/src/coff/coff_obj_writer.h index 9e6b9d68..9068822a 100644 --- a/src/coff/coff_obj_writer.h +++ b/src/coff/coff_obj_writer.h @@ -102,6 +102,7 @@ internal String8 coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter internal COFF_ObjSection * coff_obj_writer_push_section(COFF_ObjWriter *obj_writer, String8 name, COFF_SectionFlags flags, String8 data); internal COFF_ObjSymbol* coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_SymbolLocation loc, COFF_SymbolType type, COFF_SymStorageClass storage_class); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_extern_func(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSection *section); internal COFF_ObjSymbol * coff_obj_writer_push_symbol_extern(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSection *section); internal COFF_ObjSymbol * coff_obj_writer_push_symbol_static(COFF_ObjWriter *obj_writer, String8 name, U32 off, COFF_ObjSection *section); internal COFF_ObjSymbol * coff_obj_writer_push_symbol_secdef(COFF_ObjWriter *obj_writer, COFF_ObjSection *section, COFF_ComdatSelectType selection); diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 2b809166..f85db038 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -179,7 +179,6 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_HighEntropyVa, ""); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_ManifestUac, "\"level='asInvoker' uiAccess='false'\""); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_NxCompat, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_FunctionPadMin, "0"); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_LargeAddressAware, ""); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_PdbAltPath, "%%_RAD_PDB_PATH%%"); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_PdbPageSize, "%u", KB(4)); @@ -1491,9 +1490,8 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) if (obj_node_arr.v[obj_idx].data.header.machine != COFF_MachineType_Unknown) { config->machine = obj_node_arr.v[obj_idx].data.header.machine; - if (config->do_function_pad_min == LNK_SwitchState_Yes && config->function_pad_min == 0) { - config->function_pad_min = push_array(tp_arena->v[0], U64, 1); - *config->function_pad_min = lnk_get_default_function_pad_min(config->machine); + if (config->infer_function_pad_min) { + config->function_pad_min = lnk_get_default_function_pad_min(config->machine); } break; @@ -2348,15 +2346,17 @@ THREAD_POOL_TASK_FUNC(lnk_gather_section_contribs_task) ProfBeginV("Gather Section Contribs [%S]", obj->path); for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - LNK_SectionContrib *sc = &g_null_sc; + LNK_SectionContrib *sc = &g_null_sc; COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { - Temp temp = temp_begin(scratch.arena); - - String8 sect_name = coff_name_from_section_header(string_table, sect_header); - String8 sect_name_with_flags = lnk_make_name_with_flags(temp.arena, sect_name, sect_header->flags & ~COFF_SectionFlags_LnkFlags); - LNK_SectionContribChunk *sc_chunk = 0; - hash_table_search_string_raw(task->contribs_ht, sect_name_with_flags, &sc_chunk); + if (~sect_header->flags & COFF_SectionFlag_LnkRemove && sect_header->fsize > 0) { + LNK_SectionContribChunk *sc_chunk = 0; + { + Temp temp = temp_begin(scratch.arena); + String8 sect_name = coff_name_from_section_header(string_table, sect_header); + String8 sect_name_with_flags = lnk_make_name_with_flags(temp.arena, sect_name, sect_header->flags & ~COFF_SectionFlags_LnkFlags); + hash_table_search_string_raw(task->contribs_ht, sect_name_with_flags, &sc_chunk); + temp_end(temp); + } if (sc_chunk) { U16 sc_align = coff_align_size_from_section_flags(sect_header->flags); @@ -2368,8 +2368,6 @@ THREAD_POOL_TASK_FUNC(lnk_gather_section_contribs_task) sc->u.obj_idx = obj_idx; sc->u.obj_sect_idx = sect_idx; } - - temp_end(temp); } task->sect_map[obj_idx][sect_idx] = sc; } @@ -2402,6 +2400,43 @@ THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_task) ProfEnd(); } +internal +THREAD_POOL_TASK_FUNC(lnk_patch_comdats_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + ProfBeginV("Patch COMDATs [%S]", obj->path); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular && symbol.storage_class == COFF_SymStorageClass_External && symbol.value == 0) { + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + + if (defn->u.defined.obj == obj && defn->u.defined.symbol_idx == symbol_idx) { + LNK_SectionContrib *sc = task->sect_map[obj_idx][symbol.section_number-1]; + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = symbol.raw_symbol; + symbol32->section_number = sc->u.sect_idx+1; + symbol32->value = safe_cast_u32(sc->u.off + symbol.value); + } else { + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + symbol16->section_number = safe_cast_u16(sc->u.sect_idx+1); + symbol16->value = safe_cast_u32(sc->u.off + symbol.value); + } + + task->u.patch_symtabs.was_symbol_patched[obj_idx][symbol_idx] = 1; + } + } + } + } + ProfEnd(); +} + internal THREAD_POOL_TASK_FUNC(lnk_split_func_contribs_task) { @@ -2414,6 +2449,7 @@ THREAD_POOL_TASK_FUNC(lnk_split_func_contribs_task) ProfBeginV("%S", obj->path); + U64List func_list = {0}; COFF_ParsedSymbol symbol; for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); @@ -2471,24 +2507,22 @@ THREAD_POOL_TASK_FUNC(lnk_split_func_contribs_task) } } } + + u64_list_push(scratch.arena, &func_list, symbol_idx); } } + U64 *sect_offset_map_counts = push_array(scratch.arena, U64, obj->header.section_count_no_null); + PairU64 **sect_offset_map = push_array(scratch.arena, PairU64 *, obj->header.section_count_no_null); for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); - if (~section_header->flags & COFF_SectionFlag_CntCode) { continue; } - COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, section_header); - COFF_Reloc *relocs = (COFF_Reloc *)(obj->data.str + reloc_info.array_off); - LNK_SectionContrib *sc = task->sect_map[obj_idx][sect_idx]; + LNK_SectionContrib *sc = task->sect_map[obj_idx][sect_idx]; U64 offset_map_count = 0; for (String8Node *data_n = &sc->first_data_node; data_n != 0; data_n = data_n->next) { offset_map_count += 1; } - if (offset_map_count <= 1) { continue; } - Temp temp = temp_begin(scratch.arena); - PairU64 *offset_map = push_array(temp.arena, PairU64, offset_map_count); + PairU64 *offset_map = push_array(scratch.arena, PairU64, offset_map_count); U64 data_node_idx = 0; U64 prev_cursor_offset = 0; U64 new_cursor_offset = 0; @@ -2499,19 +2533,43 @@ THREAD_POOL_TASK_FUNC(lnk_split_func_contribs_task) new_cursor_offset += Max(task->function_pad_min, data_n->string.size); } - for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { - COFF_Reloc *reloc = &relocs[reloc_idx]; - U64 offset_idx = pair_u64_nearest_v0(offset_map, offset_map_count, reloc->apply_off); - if (offset_idx < offset_map_count) { - reloc->apply_off = offset_map[offset_idx].v1 + (reloc->apply_off - offset_map[offset_idx].v0); - } else { - InvalidPath; - } - } - temp_end(temp); + sect_offset_map_counts[sect_idx] = offset_map_count; + sect_offset_map[sect_idx] = offset_map; } - // TODO: update symbols with new offsets + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); + if (section_header->flags & COFF_SectionFlag_CntCode) { + COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, section_header); + COFF_Reloc *relocs = (COFF_Reloc *)(obj->data.str + reloc_info.array_off); + LNK_SectionContrib *sc = task->sect_map[obj_idx][sect_idx]; + U64 offset_map_count = sect_offset_map_counts[sect_idx]; + PairU64 *offset_map = sect_offset_map[sect_idx]; + if (offset_map_count > 0) { + for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { + COFF_Reloc *reloc = &relocs[reloc_idx]; + U64 offset_idx = pair_u64_nearest_v0(offset_map, offset_map_count, reloc->apply_off); + if (offset_idx < offset_map_count) { + reloc->apply_off = offset_map[offset_idx].v1 + (reloc->apply_off - offset_map[offset_idx].v0); + } else { + InvalidPath; + } + } + } + } + } + + for (U64Node *func_n = func_list.first; func_n != 0; func_n = func_n->next) { + COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, func_n->data); + + U64 offset_map_count = sect_offset_map_counts[symbol.section_number-1]; + PairU64 *offset_map = sect_offset_map[symbol.section_number-1]; + U64 offset_idx = pair_u64_nearest_v0(offset_map, offset_map_count, symbol.value); + AssertAlways(offset_idx < offset_map_count); + + U32 *value_ptr = obj->header.is_big_obj ? &((COFF_Symbol32 *)symbol.raw_symbol)->value : &((COFF_Symbol16 *)symbol.raw_symbol)->value; + *value_ptr = offset_map[offset_idx].v1 + (*value_ptr - offset_map[offset_idx].v0); + } ProfEnd(); @@ -2608,15 +2666,17 @@ THREAD_POOL_TASK_FUNC(lnk_patch_regular_symbols_task) COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular) { - U32 section_number = 0; - U32 value = 0; - { - COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { - LNK_SectionContrib *sc = task->sect_map[obj_idx][symbol.section_number-1]; - section_number = safe_cast_u32(sc->u.sect_idx + 1); - value = sc->u.off + symbol.value; - } + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + + LNK_SectionContrib *sc = task->sect_map[obj_idx][symbol.section_number-1]; + U16 section_number; + U32 value; + if (sc == &g_null_sc) { + section_number = LNK_REMOVED_SECTION_NUMBER; + value = max_U32; + } else { + section_number = safe_cast_u32(sc->u.sect_idx + 1); + value = sc->u.off + symbol.value; } if (obj->header.is_big_obj) { @@ -3013,18 +3073,20 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) U32 symbol_secoff = 0; S64 symbol_voff = 0; { - COFF_ParsedSymbol symbol; - if (obj_header.is_big_obj) { - symbol = coff_parse_symbol32(string_table, (COFF_Symbol32 *)symbol_table.str + reloc->isymbol); - } else { - symbol = coff_parse_symbol16(string_table, (COFF_Symbol16 *)symbol_table.str + reloc->isymbol); - } - + COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, reloc->isymbol); COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular) { + if (symbol.section_number == LNK_REMOVED_SECTION_NUMBER) { + if (!lnk_is_coff_section_debug(obj, sect_idx)) { + String8 sect_name = coff_name_from_section_header(string_table, §ion_table[sect_idx]); + lnk_error_obj(LNK_Error_RelocationAgainstRemovedSection, obj, "relocating against symbol that is in a removed section (symbol: %S, reloc-section: %S 0x%llx, reloc: 0x%llx)", symbol.name, sect_name, sect_idx+1, reloc_idx); + } + continue; + } + symbol_secnum = symbol.section_number; symbol_secoff = symbol.value; - symbol_voff = safe_cast_u32((U64)task->image_section_table[symbol.section_number]->voff + (U64)symbol_secoff); + symbol_voff = safe_cast_u32((U64)task->image_section_table[symbol.section_number]->voff + (U64)symbol_secoff); } else if (interp == COFF_SymbolValueInterp_Abs) { // There aren't enough bits in COFF symbol to store full image base address, // so we special case __ImageBase. A better solution would be to add @@ -3035,7 +3097,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) symbol_secnum = 0; symbol_secoff = 0; - symbol_voff = (S64)symbol.value - (S64)task->image_base; + symbol_voff = (S64)symbol.value - (S64)task->image_base; } else if (interp == COFF_SymbolValueInterp_Weak) { // unresolved weak } else if (interp == COFF_SymbolValueInterp_Undefined) { @@ -3540,7 +3602,7 @@ THREAD_POOL_TASK_FUNC(lnk_patch_file_offsets_and_sizes_in_obj_section_headers_ta for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *sect_header = §ion_table[sect_idx]; B32 patch_section_header = (~sect_header->flags & COFF_SectionFlag_LnkRemove) && - !lnk_is_coff_section_debug(obj, sect_idx); + !lnk_is_coff_section_debug(obj, sect_idx); if (patch_section_header) { LNK_SectionContrib *sc = task->sect_map[obj_idx][sect_idx]; LNK_Section *sect = task->image_sects.v[sc->u.sect_idx]; @@ -4007,7 +4069,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT LNK_BuildImageTask task = {0}; task.symtab = symtab; task.sectab = sectab; - task.function_pad_min = *config->function_pad_min; + task.function_pad_min = config->function_pad_min; task.default_align = coff_default_align_from_machine(config->machine); task.objs_count = objs_count; task.objs = objs; @@ -4153,10 +4215,6 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT ProfEnd(); } - ProfBegin("Set COMDAT Leaders"); - tp_for_parallel(tp, 0, objs_count, lnk_set_comdat_leaders_task, &task); - ProfEnd(); - // build common block // // TODO: build common block in .bss and merge with .data @@ -4213,7 +4271,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT radsort(common_block_contribs, common_block_contribs_count, lnk_common_block_contrib_is_before); // compute .bss virtual size - this marks start of the common block - lnk_finalize_section_layout(common_block_sect, config->file_align, *config->function_pad_min); + lnk_finalize_section_layout(common_block_sect, config->file_align, config->function_pad_min); U64 common_block_cursor = common_block_sect->vsize; // compute and assign offsets into the common block @@ -4253,7 +4311,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT // assign contribs offsets, sizes, and section indices for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - lnk_finalize_section_layout(§_n->data, config->file_align, *config->function_pad_min); + lnk_finalize_section_layout(§_n->data, config->file_align, config->function_pad_min); } // remove empty sections @@ -4277,16 +4335,15 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT // assing layout offsets and sizes to merged sections for (LNK_SectionNode *sect_n = sectab->merge_list.first; sect_n != 0; sect_n = sect_n->next) { - LNK_Section *sect = §_n->data; - LNK_Section *final_sect = sect->merge_dst; - LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); - LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(sect); - U64 last_sc_size = lnk_size_from_section_contrib(last_sc); - sect->voff = final_sect->voff + first_sc->u.off; - sect->vsize = (last_sc->u.off - first_sc->u.off) + last_sc_size; - sect->foff = final_sect->foff + first_sc->u.off; - sect->fsize = (last_sc->u.off - first_sc->u.off) + last_sc_size; - sect->sect_idx = final_sect->sect_idx; + LNK_Section *sect = §_n->data; + LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); + LNK_SectionContrib *last_sc = lnk_get_last_section_contrib(sect); + U64 last_sc_size = lnk_size_from_section_contrib(last_sc); + sect->voff = sect->merge_dst->voff + first_sc->u.off; + sect->vsize = (last_sc->u.off - first_sc->u.off) + last_sc_size; + sect->foff = sect->merge_dst->foff + first_sc->u.off; + sect->fsize = (last_sc->u.off - first_sc->u.off) + last_sc_size; + lnk_assign_section_index(sect, sect->merge_dst->sect_idx); } ProfEnd(); @@ -4309,6 +4366,14 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT task.u.patch_symtabs.common_block_contribs = common_block_contribs; ProfEnd(); + ProfBegin("Set COMDAT Leaders"); + tp_for_parallel(tp, 0, objs_count, lnk_set_comdat_leaders_task, &task); + ProfEnd(); + + ProfBegin("Patch COMDAT Leaders"); + tp_for_parallel(tp, 0, objs_count, lnk_patch_comdats_task, &task); + ProfEnd(); + ProfBegin("Patch Common Block Leaders"); tp_for_parallel(tp, 0, tp->worker_count, lnk_patch_common_block_leaders_task, &task); ProfEnd(); @@ -4369,10 +4434,10 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT LNK_SectionContrib *sc = lnk_section_contrib_chunk_push(first_sc_chunk, 1); sc->first_data_node = *base_relocs_data.first; sc->last_data_node = base_relocs_data.last; - sc->align = 1; - sc->u.obj_idx = max_U32; + sc->align = 1; + sc->u.obj_idx = max_U32; - lnk_finalize_section_layout(reloc, config->file_align, *config->function_pad_min); + lnk_finalize_section_layout(reloc, config->file_align, config->function_pad_min); lnk_assign_section_virtual_space(reloc, config->sect_align, &voff_cursor); lnk_assign_section_index(reloc, sectab->next_sect_idx++); @@ -4404,7 +4469,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT image_header_sc->first_data_node = *image_header_data.first; image_header_sc->last_data_node = image_header_data.last; - lnk_finalize_section_layout(image_header_sect, config->file_align, *config->function_pad_min); + lnk_finalize_section_layout(image_header_sect, config->file_align, config->function_pad_min); } ProfBegin("Patch Section Symbols"); diff --git a/src/linker/lnk.h b/src/linker/lnk.h index b5f44e12..84c07ce2 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -16,6 +16,8 @@ typedef struct LNK_LinkContext // -- Image -------------------------------------------------------------------- +#define LNK_REMOVED_SECTION_NUMBER (U16)-3 + typedef struct LNK_ImageContext { String8 image_data; diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index fda0eba0..55d156f2 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -1202,10 +1202,10 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam case LNK_CmdSwitch_FunctionPadMin: { if (value_strings.node_count == 0) { - config->function_pad_min = 0; + config->function_pad_min = 0; + config->infer_function_pad_min = 1; } else { - config->function_pad_min = push_array(arena, U64, 1); - lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, config->function_pad_min, LNK_ParseU64Flag_CheckUnder32bit); + lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &config->function_pad_min, LNK_ParseU64Flag_CheckUnder32bit); } config->do_function_pad_min = LNK_SwitchState_Yes; } break; diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index 07a07f21..a2db79a3 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -325,7 +325,8 @@ typedef struct LNK_Config U64 max_worker_count; String8 shared_thread_pool_name; LNK_SwitchState do_function_pad_min; - U64 *function_pad_min; + B32 infer_function_pad_min; + U64 function_pad_min; U64 *manifest_resource_id; B32 no_default_libs; Version link_ver; diff --git a/src/linker/lnk_error.h b/src/linker/lnk_error.h index c09fb02e..e10db029 100644 --- a/src/linker/lnk_error.h +++ b/src/linker/lnk_error.h @@ -40,6 +40,7 @@ typedef enum LNK_Error_UnresolvedSymbol, LNK_Error_AssociativeLoop, LNK_Error_AlternateNameConflict, + LNK_Error_RelocationAgainstRemovedSection, LNK_Error_StopLast, LNK_Error_First, diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 6cdb1287..40540dde 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -299,6 +299,10 @@ THREAD_POOL_TASK_FUNC(lnk_input_coff_symbol_table) switch (interp) { case COFF_SymbolValueInterp_Regular: { if (symbol.storage_class == COFF_SymStorageClass_External) { + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + if (sect_header->flags & COFF_SectionFlag_LnkRemove) { + break; + } LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); U64 hash = lnk_symbol_hash(symbol.name); lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index f2db71cb..aee79dc0 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -347,7 +347,7 @@ lnk_finalize_section_layout(LNK_Section *sect, U64 file_align, U64 function_pad_ for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; - // assign offset and size + // assign offset cursor = AlignPow2(cursor, sc->align); sc->u.off = cursor; diff --git a/src/torture/torture.c b/src/torture/torture.c index 74023605..92d692dd 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -3352,6 +3352,48 @@ exit:; return result; } +internal T_Result +t_function_pad_min(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 ret[] = { 0xc3, 0xc3, 0xc3 }; + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(ret)); + coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("A"), 0, text_sect); + coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("B"), 1, text_sect); + coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("C"), 2, text_sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("funcs.obj"), obj)) { goto exit; } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:A /functionpadmin:8 /out:a.exe funcs.obj"); + if (linker_exit_code != 0) { goto exit; } + + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + if (text_sect == 0) { goto exit; } + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + + U8 expected_text[] = { + 0xc3, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, + 0xc3, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, + 0xc3, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc + }; + if (!str8_match(text_data, str8_array_fixed(expected_text), 0)) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + //////////////////////////////////////////////////////////////// internal void @@ -3405,6 +3447,7 @@ entry_point(CmdLine *cmdline) { "delay_import_user32", t_delay_import_user32 }, { "empty_section", t_empty_section }, { "removed_section", t_removed_section }, + { "function_pad_min", t_function_pad_min }, //{ "import_export", t_import_export }, }; From bbb825adf446f45a5fe66aec6127fe70c782b65f Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 11 Jun 2025 09:08:31 -0700 Subject: [PATCH 212/372] extract hotpatch flag from compile symbol --- src/linker/codeview_ext/codeview.c | 11 ++++++-- src/linker/codeview_ext/codeview.h | 1 + src/linker/lnk_obj.c | 40 ++++++++++++++++++++++++++++++ src/linker/lnk_obj.h | 1 + 4 files changed, 51 insertions(+), 2 deletions(-) diff --git a/src/linker/codeview_ext/codeview.c b/src/linker/codeview_ext/codeview.c index b932a4be..af4aeba7 100644 --- a/src/linker/codeview_ext/codeview.c +++ b/src/linker/codeview_ext/codeview.c @@ -1213,9 +1213,10 @@ cv_str8_list_from_debug_t_parallel(TP_Context *tp, Arena *arena, CV_DebugT debug // $$Symbols internal void -cv_parse_symbol_sub_section(Arena *arena, CV_SymbolList *list, U64 offset_base, String8 data, U64 align) +cv_parse_symbol_sub_section_capped(Arena *arena, CV_SymbolList *list, U64 offset_base, String8 data, U64 align, U64 cap) { - for (U64 cursor = 0, opl = data.size; cursor < opl; ) { + U64 count = 0; + for (U64 cursor = 0, opl = data.size; cursor < opl && count < cap; count += 1) { // read symbol header CV_SymbolHeader header; cursor += str8_deserial_read_struct(data, cursor, &header); @@ -1249,6 +1250,12 @@ cv_parse_symbol_sub_section(Arena *arena, CV_SymbolList *list, U64 offset_base, } } +internal void +cv_parse_symbol_sub_section(Arena *arena, CV_SymbolList *list, U64 offset_base, String8 data, U64 align) +{ + cv_parse_symbol_sub_section_capped(arena, list, offset_base, data, align, max_U64); +} + internal CV_SymbolList cv_symbol_list_from_data_list(Arena *arena, String8List data_list, U64 align) { diff --git a/src/linker/codeview_ext/codeview.h b/src/linker/codeview_ext/codeview.h index d4b4ac4e..3b0315ad 100644 --- a/src/linker/codeview_ext/codeview.h +++ b/src/linker/codeview_ext/codeview.h @@ -432,6 +432,7 @@ internal String8List cv_str8_list_from_debug_t_parallel(TP_Context *tp, Arena *a //~ Sub Section helpers // $$Symbols +internal void cv_parse_symbol_sub_section_capped(Arena *arena, CV_SymbolList *list, U64 offset_base, String8 data, U64 align, U64 cap); internal void cv_parse_symbol_sub_section(Arena *arena, CV_SymbolList *list, U64 offset_base, String8 data, U64 align); internal void cv_symbol_list_push_node(CV_SymbolList *list, CV_SymbolNode *node); internal CV_SymbolNode * cv_symbol_list_push(Arena *arena, CV_SymbolList *list); diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 40540dde..16879a0d 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -224,6 +224,45 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) scratch_end(scratch); } + + // + // Extract obj features from compile symbol in .debug$S + // + B8 hotpatch = 0; + { + Temp scratch = scratch_begin(&arena, 1); + + CV_Symbol comp_symbol = {0}; + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = &coff_section_table[sect_idx]; + String8 name = str8_cstring_capped_reverse(sect_header->name, sect_header->name+sizeof(sect_header->name)); + if (str8_match(name, str8_lit(".debug$S"), 0)) { + Temp temp = temp_begin(scratch.arena); + String8 debug_s_data = str8_substr(input->data, rng_1u64(sect_header->foff, sect_header->foff+sect_header->fsize)); + CV_DebugS debug_s = cv_parse_debug_s(temp.arena, debug_s_data); + for (String8Node *symbols_n = debug_s.data_list[CV_C13SubSectionIdxKind_Symbols].first; symbols_n != 0; symbols_n = symbols_n->next) { + CV_SymbolList symbol_list = {0}; + cv_parse_symbol_sub_section_capped(scratch.arena, &symbol_list, 0, symbols_n->string, CV_SymbolAlign, 2); + if (symbol_list.first->data.kind == CV_SymKind_COMPILE3) { + comp_symbol = symbol_list.first->data; + goto found_comp_symbol; + } else if (symbol_list.last->data.kind == CV_SymKind_COMPILE3) { + comp_symbol = symbol_list.last->data; + goto found_comp_symbol; + } + } + temp_end(temp); + } + } + found_comp_symbol:; + + if (comp_symbol.kind == CV_SymKind_COMPILE3 && comp_symbol.data.size >= sizeof(CV_SymCompile3)) { + CV_SymCompile3 *comp = (CV_SymCompile3 *)comp_symbol.data.str; + hotpatch = !!(comp->flags & CV_Compile3Flag_HotPatch); + } + + scratch_end(scratch); + } // fill out obj obj->data = input->data; @@ -232,6 +271,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) obj->input_idx = obj_idx; obj->header = header; obj->comdats = comdats; + obj->hotpatch = hotpatch; ProfEnd(); } diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index 436c155d..3f79365c 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -13,6 +13,7 @@ typedef struct LNK_Obj U32 input_idx; COFF_FileHeaderInfo header; U32 *comdats; + B8 hotpatch; } LNK_Obj; typedef struct LNK_ObjNode From b19be0574c31c75a31fca39d28e10af8b564bb57 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 11 Jun 2025 14:56:07 -0700 Subject: [PATCH 213/372] function pad min - final pass over --- src/linker/lnk.c | 217 ++++++++------------------------- src/linker/lnk_obj.c | 4 +- src/linker/lnk_section_table.c | 12 +- src/linker/lnk_section_table.h | 3 +- src/torture/torture.c | 24 ++-- 5 files changed, 79 insertions(+), 181 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index f85db038..fe820f8e 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2437,145 +2437,6 @@ THREAD_POOL_TASK_FUNC(lnk_patch_comdats_task) ProfEnd(); } -internal -THREAD_POOL_TASK_FUNC(lnk_split_func_contribs_task) -{ - Temp scratch = scratch_begin(&arena, 1); - - LNK_BuildImageTask *task = raw_task; - U64 obj_idx = task_id; - LNK_Obj *obj = task->objs[obj_idx]; - String8 string_table = str8_substr(obj->data, obj->header.string_table_range); - - ProfBeginV("%S", obj->path); - - U64List func_list = {0}; - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - - // is this a function symbol? - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular && COFF_SymbolType_IsFunc(symbol.type)) { - if (symbol.section_number == 0 || symbol.section_number > obj->header.section_count_no_null) { - lnk_error_obj(LNK_Error_IllData, obj, "out ouf bounds section index in symbol \"%S (%u)\"", symbol.name, symbol.section_number); - } - - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - if (symbol.value > section_header->fsize) { - lnk_error_obj(LNK_Error_IllData, obj, "out of bounds section offset in symbol \"%S (%u)\"", symbol.name, symbol.value); - } - - if (~section_header->flags & COFF_SectionFlag_CntCode) { - String8 section_name = coff_name_from_section_header(string_table, section_header); - lnk_error_obj(LNK_Error_IllData, obj, "symbol %S (No. 0x%x) has a function type but points into section that is not declared as code %S (No. 0x%x)", - symbol.name, symbol_idx, section_name, symbol.section_number); - continue; - } - - if (symbol.value > 0) { - // find chunk that is near symbol - LNK_SectionContrib *sc = task->sect_map[obj_idx][symbol.section_number-1]; - String8Node *current = &sc->first_data_node; - U64 offset_cursor = 0; - for (String8Node *c = current; c != 0; c = c->next) { - if (offset_cursor + c->string.size >= symbol.value) { - current = c; - break; - } - offset_cursor += c->string.size; - } - - if (offset_cursor < symbol.value) { - // bifurcate chunk at symbol offset - U64 split_pos = symbol.value - offset_cursor; - String8 left = str8_substr(current->string, rng_1u64(0, split_pos)); - String8 right = str8_substr(current->string, rng_1u64(split_pos, current->string.size)); - - // update split node data - current->string = left; - - // create new data node - String8Node *split_node = push_array(arena, String8Node, 1); - split_node->string = right; - - // insert split node after current node - split_node->next = current->next; - current->next = split_node; - if (sc->last_data_node == current) { - sc->last_data_node = split_node; - } - } - } - - u64_list_push(scratch.arena, &func_list, symbol_idx); - } - } - - U64 *sect_offset_map_counts = push_array(scratch.arena, U64, obj->header.section_count_no_null); - PairU64 **sect_offset_map = push_array(scratch.arena, PairU64 *, obj->header.section_count_no_null); - for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - LNK_SectionContrib *sc = task->sect_map[obj_idx][sect_idx]; - - U64 offset_map_count = 0; - for (String8Node *data_n = &sc->first_data_node; data_n != 0; data_n = data_n->next) { - offset_map_count += 1; - } - - PairU64 *offset_map = push_array(scratch.arena, PairU64, offset_map_count); - U64 data_node_idx = 0; - U64 prev_cursor_offset = 0; - U64 new_cursor_offset = 0; - for (String8Node *data_n = &sc->first_data_node; data_n != 0; data_n = data_n->next, data_node_idx += 1) { - offset_map[data_node_idx].v0 = prev_cursor_offset; - offset_map[data_node_idx].v1 = new_cursor_offset; - prev_cursor_offset += data_n->string.size; - new_cursor_offset += Max(task->function_pad_min, data_n->string.size); - } - - sect_offset_map_counts[sect_idx] = offset_map_count; - sect_offset_map[sect_idx] = offset_map; - } - - for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); - if (section_header->flags & COFF_SectionFlag_CntCode) { - COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, section_header); - COFF_Reloc *relocs = (COFF_Reloc *)(obj->data.str + reloc_info.array_off); - LNK_SectionContrib *sc = task->sect_map[obj_idx][sect_idx]; - U64 offset_map_count = sect_offset_map_counts[sect_idx]; - PairU64 *offset_map = sect_offset_map[sect_idx]; - if (offset_map_count > 0) { - for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { - COFF_Reloc *reloc = &relocs[reloc_idx]; - U64 offset_idx = pair_u64_nearest_v0(offset_map, offset_map_count, reloc->apply_off); - if (offset_idx < offset_map_count) { - reloc->apply_off = offset_map[offset_idx].v1 + (reloc->apply_off - offset_map[offset_idx].v0); - } else { - InvalidPath; - } - } - } - } - } - - for (U64Node *func_n = func_list.first; func_n != 0; func_n = func_n->next) { - COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, func_n->data); - - U64 offset_map_count = sect_offset_map_counts[symbol.section_number-1]; - PairU64 *offset_map = sect_offset_map[symbol.section_number-1]; - U64 offset_idx = pair_u64_nearest_v0(offset_map, offset_map_count, symbol.value); - AssertAlways(offset_idx < offset_map_count); - - U32 *value_ptr = obj->header.is_big_obj ? &((COFF_Symbol32 *)symbol.raw_symbol)->value : &((COFF_Symbol16 *)symbol.raw_symbol)->value; - *value_ptr = offset_map[offset_idx].v1 + (*value_ptr - offset_map[offset_idx].v0); - } - - ProfEnd(); - - scratch_end(scratch); -} - internal int lnk_section_contrib_ptr_is_before(void *raw_a, void *raw_b) { @@ -3139,6 +3000,25 @@ lnk_section_definition_is_before(void *raw_a, void *raw_b) return u64_compar_is_before(&input_idx_a, &input_idx_b); } +internal +THREAD_POOL_TASK_FUNC(lnk_flag_hotpatch_contribs_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular && COFF_SymbolType_IsFunc(symbol.type)) { + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + LNK_SectionContrib *sc = task->sect_map[obj_idx][symbol.section_number-1]; + sc->hotpatch = !!(section_header->flags & COFF_SectionFlag_CntCode); + } + } +} + internal void lnk_push_coff_symbols_from_data(Arena *arena, LNK_SymbolList *symbol_list, String8 data, LNK_SymbolArray obj_symbols) { @@ -3659,8 +3539,7 @@ THREAD_POOL_TASK_FUNC(lnk_patch_section_symbols_task) int lnk_base_reloc_page_compar(const void *raw_a, const void *raw_b) { - const LNK_BaseRelocPage *a = raw_a; - const LNK_BaseRelocPage *b = raw_b; + const LNK_BaseRelocPage *a = raw_a, *b = raw_b; return u64_compar(&a->voff, &b->voff); } @@ -4083,38 +3962,46 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT ProfBegin("Define And Count Sections"); TP_Temp temp = tp_temp_begin(arena); - // init hash tables for gathering section definitions + ProfBegin("Init Hash Tables For Gathering Section Definitions"); task.u.gather_sects.defns = push_array(arena->v[0], HashTable *, tp->worker_count); for (U64 worker_idx = 0; worker_idx < tp->worker_count; worker_idx += 1) task.u.gather_sects.defns[worker_idx] = hash_table_init(arena->v[0], 128); + ProfEnd(); ProfBegin("Gather Section Definitions"); tp_for_parallel(tp, arena, objs_count, lnk_gather_section_definitions_task, &task); ProfEnd(); ProfBegin("Merge Section Definitions Hash Tables"); - for (U64 worker_idx = 1; worker_idx < tp->worker_count; worker_idx += 1) { - U64 sect_defns_count = task.u.gather_sects.defns[worker_idx]->count; - LNK_SectionDefinition **sect_defns = values_from_hash_table_raw(arena->v[0], task.u.gather_sects.defns[worker_idx]); - radsort(sect_defns, sect_defns_count, lnk_section_definition_is_before); + U64 sect_defns_count; + LNK_SectionDefinition **sect_defns; + { + for (U64 worker_idx = 1; worker_idx < tp->worker_count; worker_idx += 1) { + U64 sect_defns_count = task.u.gather_sects.defns[worker_idx]->count; + LNK_SectionDefinition **sect_defns = values_from_hash_table_raw(arena->v[0], task.u.gather_sects.defns[worker_idx]); + radsort(sect_defns, sect_defns_count, lnk_section_definition_is_before); - for (U64 defn_idx = 0; defn_idx < sect_defns_count; defn_idx += 1) { - LNK_SectionDefinition *defn = sect_defns[defn_idx]; - String8 name_with_flags = lnk_make_name_with_flags(arena->v[0], defn->name, defn->flags); - LNK_SectionDefinition *main_defn = 0; - hash_table_search_string_raw(task.u.gather_sects.defns[0], name_with_flags, &main_defn); - if (main_defn == 0) { - main_defn = sect_defns[defn_idx]; - hash_table_push_string_raw(arena->v[0], task.u.gather_sects.defns[0], name_with_flags, main_defn); - } else { - main_defn->contribs_count += sect_defns[defn_idx]->contribs_count; + for (U64 defn_idx = 0; defn_idx < sect_defns_count; defn_idx += 1) { + LNK_SectionDefinition *defn = sect_defns[defn_idx]; + String8 name_with_flags = lnk_make_name_with_flags(arena->v[0], defn->name, defn->flags); + LNK_SectionDefinition *main_defn = 0; + hash_table_search_string_raw(task.u.gather_sects.defns[0], name_with_flags, &main_defn); + if (main_defn == 0) { + main_defn = sect_defns[defn_idx]; + hash_table_push_string_raw(arena->v[0], task.u.gather_sects.defns[0], name_with_flags, main_defn); + } else { + if (lnk_section_definition_is_before(§_defns[defn_idx], &main_defn)) { + main_defn->obj = sect_defns[defn_idx]->obj; + main_defn->obj_sect_idx = sect_defns[defn_idx]->obj_sect_idx; + } + main_defn->contribs_count += sect_defns[defn_idx]->contribs_count; + } } } + sect_defns_count = task.u.gather_sects.defns[0]->count; + sect_defns = values_from_hash_table_raw(arena->v[0], task.u.gather_sects.defns[0]); } ProfEnd(); - U64 sect_defns_count = task.u.gather_sects.defns[0]->count; - LNK_SectionDefinition **sect_defns = values_from_hash_table_raw(arena->v[0], task.u.gather_sects.defns[0]); - ProfBegin("Sort Sections Definitions"); radsort(sect_defns, sect_defns_count, lnk_section_definition_is_before); ProfEnd(); @@ -4186,12 +4073,6 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT tp_for_parallel(tp, 0, objs_count, lnk_gather_section_contribs_task, &task); ProfEnd(); - if (config->do_function_pad_min == LNK_SwitchState_Yes) { - ProfBegin("Split Code Sections"); - tp_for_parallel(tp, arena, objs_count, lnk_split_func_contribs_task, &task); - ProfEnd(); - } - // ensure determinism by sorting section contribs in chunks by input index { ProfBegin("Sort Section Contribs"); @@ -4309,6 +4190,12 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT lnk_section_table_merge(sectab, config->merge_list); } + if (config->do_function_pad_min == LNK_SwitchState_Yes) { + ProfBegin("Flag Hotpatch Section Contribs"); + tp_for_parallel(tp, arena, objs_count, lnk_flag_hotpatch_contribs_task, &task); + ProfEnd(); + } + // assign contribs offsets, sizes, and section indices for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { lnk_finalize_section_layout(§_n->data, config->file_align, config->function_pad_min); diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 16879a0d..b3590d8a 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -229,7 +229,9 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) // Extract obj features from compile symbol in .debug$S // B8 hotpatch = 0; - { + if (header.machine == COFF_MachineType_X64) { + hotpatch = 1; + } else { Temp scratch = scratch_begin(&arena, 1); CV_Symbol comp_symbol = {0}; diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index aee79dc0..565e2490 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -319,7 +319,7 @@ lnk_section_contrib_chunk_is_before(void *raw_a, void *raw_b) } internal void -lnk_finalize_section_layout(LNK_Section *sect, U64 file_align, U64 function_pad_min) +lnk_finalize_section_layout(LNK_Section *sect, U64 file_align, U64 pad_size) { Temp scratch = scratch_begin(0,0); @@ -341,19 +341,23 @@ lnk_finalize_section_layout(LNK_Section *sect, U64 file_align, U64 function_pad_ ProfEnd(); ProfBegin("Layout Contribs"); - U64 min_sc_size = sect->flags & COFF_SectionFlag_CntCode ? function_pad_min : 0; - U64 cursor = 0; + U64 cursor = 0; for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; + // add section pad bytes + if (sc->hotpatch) { + cursor += pad_size; + } + // assign offset cursor = AlignPow2(cursor, sc->align); sc->u.off = cursor; // advance cursor U64 sc_size = lnk_size_from_section_contrib(sc); - cursor += Max(min_sc_size, sc_size); + cursor += sc_size; } } ProfEnd(); diff --git a/src/linker/lnk_section_table.h b/src/linker/lnk_section_table.h index a6b21afb..4f08c3c1 100644 --- a/src/linker/lnk_section_table.h +++ b/src/linker/lnk_section_table.h @@ -22,6 +22,7 @@ typedef struct LNK_SectionContrib }; } u; U16 align; // contribution alignment in the image + B8 hotpatch; } LNK_SectionContrib; typedef struct LNK_SectionContribChunk @@ -111,7 +112,7 @@ internal void lnk_section_table_merge(LNK_SectionTable *sectab, L // --- Section Finalization ---------------------------------------------------- -internal void lnk_finalize_section_layout (LNK_Section *sect, U64 file_align, U64 function_pad_min); +internal void lnk_finalize_section_layout (LNK_Section *sect, U64 file_align, U64 pad_size); internal void lnk_assign_section_index (LNK_Section *sect, U64 sect_idx); internal void lnk_assign_section_virtual_space(LNK_Section *sect, U64 sect_align, U64 *voff_cursor); internal void lnk_assign_section_file_space (LNK_Section *sect, U64 *foff_cursor); diff --git a/src/torture/torture.c b/src/torture/torture.c index 92d692dd..12f1ee14 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -309,7 +309,7 @@ typedef enum internal COFF_ObjSection * t_push_text_section(COFF_ObjWriter *obj_writer, String8 data) { - return coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, data); + return coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS | COFF_SectionFlag_Align1Bytes, data); } internal COFF_ObjSection * @@ -3360,17 +3360,21 @@ t_function_pad_min(void) { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 ret[] = { 0xc3, 0xc3, 0xc3 }; - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(ret)); - coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("A"), 0, text_sect); - coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("B"), 1, text_sect); - coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("C"), 2, text_sect); + U8 ret[] = { 0xc3 }; + COFF_ObjSection *text_sect_0 = t_push_text_section(obj_writer, str8_array_fixed(ret)); + COFF_ObjSection *text_sect_1 = t_push_text_section(obj_writer, str8_array_fixed(ret)); + COFF_ObjSection *text_sect_2 = t_push_text_section(obj_writer, str8_array_fixed(ret)); + text_sect_0->flags |= COFF_SectionFlag_Align4Bytes; + text_sect_1->flags |= COFF_SectionFlag_Align2Bytes; + coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("A"), 0, text_sect_0); + coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("B"), 0, text_sect_1); + coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("C"), 0, text_sect_2); String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); if (!t_write_file(str8_lit("funcs.obj"), obj)) { goto exit; } } - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:A /functionpadmin:8 /out:a.exe funcs.obj"); + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:A /functionpadmin:1 /out:a.exe funcs.obj"); if (linker_exit_code != 0) { goto exit; } String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); @@ -3382,9 +3386,9 @@ t_function_pad_min(void) String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); U8 expected_text[] = { - 0xc3, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, - 0xc3, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, - 0xc3, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc + 0xcc, 0xcc, 0xcc, 0xcc, 0xc3, + 0xcc, 0xcc, 0xcc, 0xc3, + 0xcc, 0xc3, }; if (!str8_match(text_data, str8_array_fixed(expected_text), 0)) { goto exit; } From cccbbfc74c6dd9392c9de16d280ec7c05dd7a46f Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 12 Jun 2025 14:45:24 -0700 Subject: [PATCH 214/372] do not patch debug section symbols and patch replaced COMDATs in separate pass --- src/linker/lnk.c | 144 ++++++++++++++++++++++++++++++--- src/linker/lnk_section_table.c | 33 ++++---- 2 files changed, 151 insertions(+), 26 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index fe820f8e..f51f30a1 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -176,6 +176,7 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) if (lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Dll)) { lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_SubSystem, "%S", pe_string_from_subsystem(PE_WindowsSubsystem_WINDOWS_GUI)); } + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_FunctionPadMin, ""); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_HighEntropyVa, ""); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_ManifestUac, "\"level='asInvoker' uiAccess='false'\""); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_NxCompat, ""); @@ -1445,7 +1446,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) continue; } - String8 full_path = os_full_path_from_path(scratch.arena, input->dedup_id); + String8 full_path = input->dedup_id.size ? os_full_path_from_path(scratch.arena, input->dedup_id) : str8_zero(); B32 was_full_path_used = hash_table_search_path_u64(loaded_obj_ht, full_path, 0); if (was_full_path_used) { continue; @@ -1918,7 +1919,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) // warn about unused delayloads if (config->flags & LNK_ConfigFlag_CheckUnusedDelayLoadDll) { for (String8Node *dll_name_n = config->delay_load_dll_list.first; dll_name_n != 0; dll_name_n = dll_name_n->next) { - if (!hash_table_search_string_raw(delayed_imports, dll_name_n->string, 0)) { + if (!hash_table_search_path_raw(delayed_imports, dll_name_n->string)) { lnk_error(LNK_Warning_UnusedDelayLoadDll, "/DELAYLOAD: %S found no imports", dll_name_n->string); } } @@ -2376,6 +2377,25 @@ THREAD_POOL_TASK_FUNC(lnk_gather_section_contribs_task) scratch_end(scratch); } +internal +THREAD_POOL_TASK_FUNC(lnk_flag_debug_symbols_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { + if (lnk_is_coff_section_debug(obj, symbol.section_number-1)) { + task->u.patch_symtabs.was_symbol_patched[obj_idx][symbol_idx] = 1; + } + } + } +} + internal THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_task) { @@ -2388,7 +2408,7 @@ THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_task) for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular && symbol.storage_class == COFF_SymStorageClass_External && symbol.value == 0) { + if (interp == COFF_SymbolValueInterp_Regular && symbol.storage_class == COFF_SymStorageClass_External) { COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); @@ -2401,18 +2421,21 @@ THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_task) } internal -THREAD_POOL_TASK_FUNC(lnk_patch_comdats_task) +THREAD_POOL_TASK_FUNC(lnk_patch_comdat_leaders_task) { LNK_BuildImageTask *task = raw_task; U64 obj_idx = task_id; LNK_Obj *obj = task->objs[obj_idx]; - ProfBeginV("Patch COMDATs [%S]", obj->path); + ProfBeginV("Patch COMDAT Leaders [%S]", obj->path); COFF_ParsedSymbol symbol; for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + + if (task->u.patch_symtabs.was_symbol_patched[obj_idx][symbol_idx]) { continue; } + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular && symbol.storage_class == COFF_SymStorageClass_External && symbol.value == 0) { + if (interp == COFF_SymbolValueInterp_Regular && symbol.storage_class == COFF_SymStorageClass_External) { COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); @@ -2437,6 +2460,87 @@ THREAD_POOL_TASK_FUNC(lnk_patch_comdats_task) ProfEnd(); } +internal +THREAD_POOL_TASK_FUNC(lnk_patch_replaced_comdats_task) +{ + Temp scratch = scratch_begin(&arena, 1); + + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + ProfBeginV("%S", obj->path); + + LNK_Symbol **symlinks = push_array(scratch.arena, LNK_Symbol *, obj->header.section_count_no_null+1); + + ProfBegin("Build Symlinks"); + { + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular && symbol.aux_symbol_count == 0 && symbol.storage_class == COFF_SymStorageClass_External) { + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { + if (symlinks[symbol.section_number] == 0 || symbol.value == 0) { + symlinks[symbol.section_number] = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + } + } + } + } + } + ProfEnd(); + + ProfBegin("Patch"); + { + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + + if (task->u.patch_symtabs.was_symbol_patched[obj_idx][symbol_idx]) { continue; } + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { + + + LNK_Symbol *comdat_leader = symlinks[symbol.section_number]; + COFF_ParsedSymbol comdat_leader_parsed; + LNK_SectionContrib *comdat_leader_sc; + if (comdat_leader) { + B32 is_this_leader_symbol = comdat_leader->u.defined.obj == obj && comdat_leader->u.defined.symbol_idx == symbol_idx; + if (is_this_leader_symbol) continue; + + comdat_leader_parsed = lnk_parsed_symbol_from_coff_symbol_idx(comdat_leader->u.defined.obj, comdat_leader->u.defined.symbol_idx); + comdat_leader_sc = task->sect_map[comdat_leader->u.defined.obj->input_idx][comdat_leader_parsed.section_number-1]; + } else { + Assert(symbol.storage_class != COFF_SymStorageClass_External); + comdat_leader_sc = task->sect_map[obj_idx][symbol.section_number-1]; + } + + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = symbol.raw_symbol; + symbol32->section_number = comdat_leader_sc->u.sect_idx+1; + symbol32->value = safe_cast_u32(comdat_leader_sc->u.off + symbol.value); + } else { + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + symbol16->section_number = safe_cast_u16(comdat_leader_sc->u.sect_idx+1); + symbol16->value = safe_cast_u32(comdat_leader_sc->u.off + symbol.value); + } + + task->u.patch_symtabs.was_symbol_patched[obj_idx][symbol_idx] = 1; + } + } + } + } + ProfEnd(); + + scratch_end(scratch); + + ProfEnd(); +} + internal int lnk_section_contrib_ptr_is_before(void *raw_a, void *raw_b) { @@ -2528,8 +2632,10 @@ THREAD_POOL_TASK_FUNC(lnk_patch_regular_symbols_task) COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular) { COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + Assert(~sect_header->flags & COFF_SectionFlag_LnkCOMDAT); LNK_SectionContrib *sc = task->sect_map[obj_idx][symbol.section_number-1]; + U16 section_number; U32 value; if (sc == &g_null_sc) { @@ -3013,8 +3119,10 @@ THREAD_POOL_TASK_FUNC(lnk_flag_hotpatch_contribs_task) COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular && COFF_SymbolType_IsFunc(symbol.type)) { COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - LNK_SectionContrib *sc = task->sect_map[obj_idx][symbol.section_number-1]; - sc->hotpatch = !!(section_header->flags & COFF_SectionFlag_CntCode); + LNK_SectionContrib *sc = task->sect_map[obj_idx][symbol.section_number-1]; + if (sc != &g_null_sc) { + sc->hotpatch = !!(section_header->flags & COFF_SectionFlag_CntCode); + } } } } @@ -4185,6 +4293,15 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT { ProfBegin("Finalize Sections Layout"); + // Grouped Sections (PE Format) + // "All contributions with the same object-section name are allocated contiguously in the image, + // and the blocks of contributions are sorted in lexical order by object-section name." + ProfBegin("Sort Sections"); + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + lnk_sort_section_contribs(§_n->data); + } + ProfEnd(); + // merge sections if (config->flags & LNK_ConfigFlag_Merge) { lnk_section_table_merge(sectab, config->merge_list); @@ -4253,12 +4370,21 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT task.u.patch_symtabs.common_block_contribs = common_block_contribs; ProfEnd(); + // flag debug symbols to prevent them from being patched in subsequent passes + ProfBegin("Flag Debug Symbols"); + tp_for_parallel(tp, 0, objs_count, lnk_flag_debug_symbols_task, &task); + ProfEnd(); + ProfBegin("Set COMDAT Leaders"); tp_for_parallel(tp, 0, objs_count, lnk_set_comdat_leaders_task, &task); ProfEnd(); + ProfBegin("Patch replaced COMDATs"); + tp_for_parallel(tp, 0, objs_count, lnk_patch_replaced_comdats_task, &task); + ProfEnd(); + ProfBegin("Patch COMDAT Leaders"); - tp_for_parallel(tp, 0, objs_count, lnk_patch_comdats_task, &task); + tp_for_parallel(tp, 0, objs_count, lnk_patch_comdat_leaders_task, &task); ProfEnd(); ProfBegin("Patch Common Block Leaders"); diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index 565e2490..227f7c77 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -319,27 +319,28 @@ lnk_section_contrib_chunk_is_before(void *raw_a, void *raw_b) } internal void -lnk_finalize_section_layout(LNK_Section *sect, U64 file_align, U64 pad_size) +lnk_sort_section_contribs(LNK_Section *sect) { + ProfBeginFunction(); Temp scratch = scratch_begin(0,0); - ProfBegin("Sort Section Contribs"); - { - // Grouped Sections (PE Format) - // "All contributions with the same object-section name are allocated contiguously in the image, - // and the blocks of contributions are sorted in lexical order by object-section name." - LNK_SectionContribChunk **chunks = lnk_array_from_section_contrib_chunk_list(scratch.arena, sect->contribs); - radsort(chunks, sect->contribs.chunk_count, lnk_section_contrib_chunk_is_before); + LNK_SectionContribChunk **chunks = lnk_array_from_section_contrib_chunk_list(scratch.arena, sect->contribs); + radsort(chunks, sect->contribs.chunk_count, lnk_section_contrib_chunk_is_before); - // repopulate chunk list in sorted order - sect->contribs.first = 0; - sect->contribs.last = 0; - for (U64 chunk_idx = 0; chunk_idx < sect->contribs.chunk_count; chunk_idx += 1) { - SLLQueuePush(sect->contribs.first, sect->contribs.last, chunks[chunk_idx]); - } + // repopulate chunk list in sorted order + sect->contribs.first = 0; + sect->contribs.last = 0; + for (U64 chunk_idx = 0; chunk_idx < sect->contribs.chunk_count; chunk_idx += 1) { + SLLQueuePush(sect->contribs.first, sect->contribs.last, chunks[chunk_idx]); } - ProfEnd(); + scratch_end(scratch); + ProfEnd(); +} + +internal void +lnk_finalize_section_layout(LNK_Section *sect, U64 file_align, U64 pad_size) +{ ProfBegin("Layout Contribs"); U64 cursor = 0; for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { @@ -366,8 +367,6 @@ lnk_finalize_section_layout(LNK_Section *sect, U64 file_align, U64 pad_size) sect->fsize = AlignPow2(cursor, file_align); } sect->vsize = cursor; - - scratch_end(scratch); } internal void From 3c4edba465963a8c26a91607b8d78b0695cedfe7 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 15 Jun 2025 13:38:20 -0700 Subject: [PATCH 215/372] validate section flags on merge --- src/linker/lnk_section_table.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index 227f7c77..dd85728f 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -284,7 +284,7 @@ lnk_section_table_merge(LNK_SectionTable *sectab, LNK_MergeDirectiveList merge_l continue; } - // handle case where destination section doesn't exist + // push a new section if the destination section does not exist if (dst_matches.count == 0) { dst = lnk_section_table_push(sectab, merge->dst, src_matches.v[0]->flags); } else { @@ -295,6 +295,11 @@ lnk_section_table_merge(LNK_SectionTable *sectab, LNK_MergeDirectiveList merge_l for (U64 src_idx = 0; src_idx < src_matches.count; src_idx += 1) { LNK_Section *src = src_matches.v[src_idx]; + if (src->flags != dst->flags) { + lnk_error(LNK_Warning_AmbiguousMerge, "unable to merge %S=%S because of conflicting section flags", merge->src, merge->dst); + continue; + } + // merge section with destination lnk_section_contrib_chunk_list_concat_in_place(&dst->contribs, &src->contribs); src->merge_dst = dst; From 8ba64238a21812aacdba62486a96223d91350644 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 15 Jun 2025 13:38:36 -0700 Subject: [PATCH 216/372] delay load test --- src/torture/torture.c | 159 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index 12f1ee14..f79bd702 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -3225,6 +3225,164 @@ exit:; return result; } +internal T_Result +t_delay_import(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 return_0[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, 0 + 0xc3 // ret + }; + U8 return_1[] = { + 0x48, 0xC7, 0xC0, 0x01, 0x00, 0x00, 0x00, // mov rax, 1 + 0xc3 // ret + }; + U8 return_2[] = { + 0x48, 0xC7, 0xC0, 0x02, 0x00, 0x00, 0x00, // mov rax, 2 + 0xc3 // ret + }; + COFF_ObjSection *return_0_sect = t_push_text_section(obj_writer, str8_array_fixed(return_0)); + COFF_ObjSection *return_1_sect = t_push_text_section(obj_writer, str8_array_fixed(return_1)); + COFF_ObjSection *return_2_sect = t_push_text_section(obj_writer, str8_array_fixed(return_2)); + coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("return_1"), 0, return_1_sect); + coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("return_2"), 0, return_2_sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 return_0[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, 0 + 0xc3 // ret + }; + U8 return_123[] = { + 0x48, 0xC7, 0xC0, 0x7B, 0x00, 0x00, 0x00, // mov rax, 123 + 0xc3 // ret + }; + U8 return_321[] = { + 0x48, 0xC7, 0xC0, 0x41, 0x01, 0x00, 0x00, // mov rax, 321 + 0xc3 // ret + }; + COFF_ObjSection *return_0_sect = t_push_text_section(obj_writer, str8_array_fixed(return_0)); + COFF_ObjSection *return_123_sect = t_push_text_section(obj_writer, str8_array_fixed(return_123)); + COFF_ObjSection *return_321_sect = t_push_text_section(obj_writer, str8_array_fixed(return_321)); + coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("return_123"), 0, return_123_sect); + coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("return_321"), 0, return_321_sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } + } + + { + U8 text[] = { + 0x56, // push rsi + 0x57, // push rdi + 0x48, 0x83, 0xEC, 0x28, // sub rsp,28h + 0xE8, 0x00, 0x00, 0x00, 0x00, // call return_1 + 0x89, 0xC6, // mov esi,eax + 0xE8, 0x00, 0x00, 0x00, 0x00, // call return_2 + 0x89, 0xC7, // mov edi,eax + 0x01, 0xF7, // add edi,esi + 0xE8, 0x00, 0x00, 0x00, 0x00, // call return_123 + 0x89, 0xC6, // mov esi,eax + 0xE8, 0x00, 0x00, 0x00, 0x00, // call return_321 + 0x01, 0xF0, // add eax,esi + 0x01, 0xF8, // add eax,edi + 0x48, 0x83, 0xC4, 0x28, // add rsp,28h + 0x5F, // pop rdi + 0x5E, // pop rsi + 0xC3, // ret + }; + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_X64); + COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, text_sect); + COFF_ObjSymbol *return_1_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("return_1")); + COFF_ObjSymbol *return_2_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("return_2")); + COFF_ObjSymbol *return_123_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("return_123")); + COFF_ObjSymbol *return_321_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("return_321")); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 7, return_1_symbol, COFF_Reloc_X64_Rel32); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 14, return_2_symbol, COFF_Reloc_X64_Rel32); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 23, return_123_symbol, COFF_Reloc_X64_Rel32); + coff_obj_writer_section_push_reloc(obj_writer, text_sect, 30, return_321_symbol, COFF_Reloc_X64_Rel32); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("main.obj"), obj)) { goto exit; } + } + + int linker_exit_code; + + linker_exit_code = t_invoke_linkerf("/dll /implib:a.lib /export:return_1 /export:return_2 a.obj libcmt.lib"); + if (linker_exit_code != 0) { goto exit; } + + linker_exit_code = t_invoke_linkerf("/dll /implib:b.lib /export:return_123 /export:return_321 b.obj libcmt.lib"); + if (linker_exit_code != 0) { goto exit; } + + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /fixed /debug:full main.obj a.lib b.lib kernel32.lib delayimp.lib libcmt.lib /delayload:a.dll /delayload:b.dll"); + if (linker_exit_code != 0) { goto exit; } + + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + PE_ParsedDelayImportTable delay_import_table = pe_delay_imports_from_data(scratch.arena, pe.is_pe32, pe.section_count, section_table, exe, pe.data_dir_franges[PE_DataDirectoryIndex_DELAY_IMPORT]); + + PE_ParsedDelayDLLImport *a_import = &delay_import_table.v[0]; + if (a_import->attributes != 1) { goto exit; } + if (!str8_match(a_import->name, str8_lit("a.dll"), 0)) { goto exit; } + if (a_import->module_handle_voff == 0) { goto exit; } + if (a_import->name_table_voff == 0) { goto exit; } + if (a_import->bound_table_voff == 0) { goto exit; } + if (a_import->unload_table_voff != 0) { goto exit; } + if (a_import->time_stamp != 0) { goto exit; } + if (a_import->bound_table_count != 0) { goto exit; } + if (a_import->unload_table_count != 0) { goto exit; } + if (a_import->import_count != 2) { goto exit; } + + PE_ParsedImport *return_1 = &a_import->imports[0]; + if (return_1->type != PE_ParsedImport_Name) { goto exit; } + if (!str8_match(return_1->u.name.string, str8_lit("return_1"), 0)) { goto exit; } + if (return_1->u.name.hint != 0) { goto exit; } + + PE_ParsedImport *return_2 = &a_import->imports[1]; + if (return_2->type != PE_ParsedImport_Name) { goto exit; } + if (!str8_match(return_2->u.name.string, str8_lit("return_2"), 0)) { goto exit; } + if (return_2->u.name.hint != 1) { goto exit; } + + PE_ParsedDelayDLLImport *b_import = &delay_import_table.v[1]; + if (b_import->attributes != 1) { goto exit; } + if (!str8_match(b_import->name, str8_lit("b.dll"), 0)) { goto exit; } + if (b_import->module_handle_voff == 0) { goto exit; } + if (b_import->name_table_voff == 0) { goto exit; } + if (b_import->bound_table_voff == 0) { goto exit; } + if (b_import->unload_table_voff != 0) { goto exit; } + if (b_import->time_stamp != 0) { goto exit; } + if (b_import->bound_table_count != 0) { goto exit; } + if (b_import->unload_table_count != 0) { goto exit; } + if (b_import->import_count != 2) { goto exit; } + + PE_ParsedImport *return_123 = &b_import->imports[0]; + if (return_123->type != PE_ParsedImport_Name) { goto exit; } + if (!str8_match(return_123->u.name.string, str8_lit("return_123"), 0)) { goto exit; } + if (return_123->u.name.hint != 0) { goto exit; } + + PE_ParsedImport *return_321 = &b_import->imports[1]; + if (return_321->type != PE_ParsedImport_Name) { goto exit; } + if (!str8_match(return_321->u.name.string, str8_lit("return_321"), 0)) { goto exit; } + if (return_321->u.name.hint != 1) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_delay_import_user32(void) { @@ -3449,6 +3607,7 @@ entry_point(CmdLine *cmdline) { "communal_var_vs_regular", t_communal_var_vs_regular }, { "import_kernel32", t_import_kernel32 }, { "delay_import_user32", t_delay_import_user32 }, + { "delay_import", t_delay_import }, { "empty_section", t_empty_section }, { "removed_section", t_removed_section }, { "function_pad_min", t_function_pad_min }, From a4b4d5799a9070ca15da4360b03c068d07d5f7bc Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 15 Jun 2025 13:39:41 -0700 Subject: [PATCH 217/372] fixes for delay import by ordinal and null terminate ILT, IAT, BIAT, and UIAT --- src/pe/pe_make_import_table.c | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/pe/pe_make_import_table.c b/src/pe/pe_make_import_table.c index 9ef5a2a5..2c1adcb9 100644 --- a/src/pe/pe_make_import_table.c +++ b/src/pe/pe_make_import_table.c @@ -344,8 +344,8 @@ pe_make_import_dll_obj_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_Mac COFF_ObjSection *iat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$5"), PE_IDATA_SECTION_FLAGS|import_align, str8_zero()); COFF_ObjSection *int_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$6"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); COFF_ObjSection *dll_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$7"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); - COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$i"), PE_TEXT_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_zero()); - COFF_ObjSection *handle_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$h"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_array(handle, handle_size)); + COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$"), PE_TEXT_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_zero()); + COFF_ObjSection *handle_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_array(handle, handle_size)); COFF_ObjSection *debug_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); COFF_ObjSection *biat_sect = 0; COFF_ObjSection *uiat_sect = 0; @@ -396,13 +396,11 @@ pe_make_import_dll_obj_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_Mac case COFF_MachineType_Unknown: {} break; case COFF_MachineType_X64: { String8 iat_symbol_name = push_str8f(obj_writer->arena, "__imp_%S", import_header.func_name); - coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_sect->data.total_size, iat_sect); + iat_symbol = coff_obj_writer_push_symbol_extern(obj_writer, iat_symbol_name, iat_sect->data.total_size, iat_sect); - // emit jmp thunk - jmp_thunk_symbol = pe_make_indirect_jump_thunk_x64(obj_writer, code_sect, iat_symbol, import_header.func_name); - - // emit load thunk - load_thunk_symbol = pe_make_load_thunk_x64(obj_writer, code_sect, iat_symbol, tail_merge_symbol, import_header.func_name); + // emit thunks + jmp_thunk_symbol = pe_make_indirect_jump_thunk_x64(obj_writer, code_sect, iat_symbol, import_header.func_name); + load_thunk_symbol = pe_make_load_thunk_x64(obj_writer, code_sect, iat_symbol, tail_merge_symbol, import_header.func_name); } break; default: { NotImplemented; } break; } @@ -410,10 +408,15 @@ pe_make_import_dll_obj_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_Mac switch (import_header.import_by) { case COFF_ImportBy_Ordinal: { - U64 iat_offset = iat_sect->data.total_size; String8 ordinal_data = coff_ordinal_data_from_hint(obj_writer->arena, import_header.machine, import_header.hint_or_ordinal); str8_list_push(obj_writer->arena, &ilt_sect->data, ordinal_data); - str8_list_push(obj_writer->arena, &iat_sect->data, ordinal_data); + + // in the file IAT mirrors ILT, dynamic linker later overwrites it with imported function addresses. + U64 iat_offset = iat_sect->data.total_size; + str8_list_push(obj_writer->arena, &iat_sect->data, str8(0, import_size)); + + // patch-in thunk address + coff_obj_writer_section_push_reloc_addr(obj_writer, iat_sect, iat_offset, load_thunk_symbol); if (emit_biat) { U64 import_size = coff_word_size_from_machine(machine); @@ -475,6 +478,15 @@ pe_make_import_dll_obj_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_Mac } } + str8_list_push(obj_writer->arena, &ilt_sect->data, str8(0, coff_word_size_from_machine(machine))); + str8_list_push(obj_writer->arena, &iat_sect->data, str8(0, coff_word_size_from_machine(machine))); + if (emit_biat) { + str8_list_push(obj_writer->arena, &biat_sect->data, str8(0, coff_word_size_from_machine(machine))); + } + if (emit_uiat) { + str8_list_push(obj_writer->arena, &uiat_sect->data, str8(0, coff_word_size_from_machine(machine))); + } + String8 obj = coff_obj_writer_serialize(arena, obj_writer); coff_obj_writer_release(&obj_writer); return obj; From 048600260c695ac149f63288e98c84abf2982df2 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 15 Jun 2025 13:40:10 -0700 Subject: [PATCH 218/372] special case fill for bss contribs --- src/linker/lnk.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index f51f30a1..3d25e575 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2360,10 +2360,17 @@ THREAD_POOL_TASK_FUNC(lnk_gather_section_contribs_task) } if (sc_chunk) { + String8 data; + if (sect_header->flags & COFF_SectionFlag_CntUninitializedData) { + data = str8(0, sect_header->fsize); + } else { + data = str8_substr(obj->data, rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize)); + } + U16 sc_align = coff_align_size_from_section_flags(sect_header->flags); sc = lnk_section_contrib_chunk_push_atomic(sc_chunk, 1); sc->first_data_node.next = 0; - sc->first_data_node.string = str8_substr(obj->data, rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize)); + sc->first_data_node.string = data; sc->last_data_node = &sc->first_data_node; sc->align = sc_align == 0 ? task->default_align : sc_align; sc->u.obj_idx = obj_idx; From 06e844abaa0fcf1ce2a5068ea8715228d63ccde5 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 15 Jun 2025 13:40:20 -0700 Subject: [PATCH 219/372] remove default delay bind table --- src/linker/lnk.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 3d25e575..212691e7 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -186,7 +186,6 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_TimeStamp, "%u", os_get_process_start_time_unix()); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Age, "%u", 1); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_DelayBind, ""); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_DoMerge, ""); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_EnvLib, ""); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Exe, ""); From 1fde5a5120cc3084d0cf024155be17d3acf52191 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 15 Jun 2025 13:40:26 -0700 Subject: [PATCH 220/372] linker natvis --- src/linker/linker.natvis | 1 + 1 file changed, 1 insertion(+) diff --git a/src/linker/linker.natvis b/src/linker/linker.natvis index 7c1a99f9..a5186ebc 100644 --- a/src/linker/linker.natvis +++ b/src/linker/linker.natvis @@ -27,6 +27,7 @@ + From c7d6145ec97af2a69c8c43a858b3f435eaccadc7 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 15 Jun 2025 20:50:42 -0700 Subject: [PATCH 221/372] print section contributions in RAD_MAP --- src/linker/lnk.c | 182 +++++++++++++++++++++++++++++++--------- src/linker/lnk_config.c | 14 +++- src/linker/lnk_config.h | 4 +- 3 files changed, 159 insertions(+), 41 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 212691e7..1853f900 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2301,7 +2301,7 @@ THREAD_POOL_TASK_FUNC(lnk_gather_section_definitions_task) for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { + if (~sect_header->flags & COFF_SectionFlag_LnkRemove && sect_header->fsize > 0) { Temp temp = temp_begin(scratch.arena); // was section defined? @@ -3991,6 +3991,8 @@ lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config COFF_SectionHeader *coff_section = &coff_section_table[sect_idx]; + if (coff_section->flags & COFF_SectionFlag_LnkRemove) { continue; } + // TODO: for objs we can store long name in string table and write here /offset if (sect->name.size > sizeof(coff_section->name)) { lnk_error(LNK_Warning_LongSectionName, "not enough space in COFF section header to store entire name \"%S\"", sect->name); @@ -4130,13 +4132,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT coff_parse_section_name(sect_defn->name, §_name, &sort_idx); // do not create definitions for sections that are removed from the image - { - B32 skip = 0; - for (String8Node *name_n = config->remove_sections.first; name_n != 0 && !skip; name_n = name_n->next) { - skip = str8_match(sect_name, name_n->string, 0); - } - if (skip) { continue; } - } + if (lnk_is_section_removed(config, sect_name)) { continue; } // warn about conflicting section flags for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { @@ -4187,6 +4183,14 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT tp_for_parallel(tp, 0, objs_count, lnk_gather_section_contribs_task, &task); ProfEnd(); +#if BUILD_DEBUG + for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { + for (LNK_SectionContribChunk *chunk = sect_n->data.contribs.first; chunk != 0; chunk = chunk->next) { + AssertAlways(chunk->count == chunk->cap); + } + } +#endif + // ensure determinism by sorting section contribs in chunks by input index { ProfBegin("Sort Section Contribs"); @@ -4478,7 +4482,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT // build win32 image header { - String8List image_header_data = lnk_build_win32_header(scratch.arena, symtab, config, task.image_sects, AlignPow2(expected_image_header_size, config->file_align)); + String8List image_header_data = lnk_build_win32_header(sectab->arena, symtab, config, task.image_sects, AlignPow2(expected_image_header_size, config->file_align)); LNK_Section *image_header_sect = lnk_section_table_push(sectab, str8_lit(".rad_linker_image_header_section"), 0); LNK_SectionContribChunk *image_header_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &image_header_sect->contribs, 1, str8_zero()); @@ -4784,8 +4788,105 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT return image_ctx; } +internal PairU32 * +lnk_obj_sect_idx_from_section(Arena *arena, U64 objs_count, LNK_Obj **objs, LNK_Section *sect, LNK_Config *config, U64 *obj_sect_idxs_count_out) +{ + U64 max_contribs = 0; + for (LNK_SectionContribChunk *chunk = sect->contribs.first; chunk != 0; chunk = chunk->next) { + max_contribs += chunk->count; + } + + U64 obj_sect_idxs_count = 0; + PairU32 *obj_sect_idxs = push_array(arena, PairU32, max_contribs); + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + COFF_SectionHeader *section_table = str8_deserial_get_raw_ptr(obj->data, obj->header.section_table_range.min, 0); + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *section_header = §ion_table[sect_idx]; + String8 full_section_name = coff_name_from_section_header(string_table, section_header); + String8 section_name, section_postfix; + coff_parse_section_name(full_section_name, §ion_name, §ion_postfix); + + if (section_header->flags & COFF_SectionFlag_LnkRemove) { continue; } + if (section_header->fsize == 0) { continue; } + if (lnk_is_section_removed(config, section_name)) { continue; } + + if (sect->voff <= section_header->voff && section_header->voff < sect->voff + sect->vsize) { + Assert(obj_sect_idxs_count < max_contribs); + obj_sect_idxs[obj_sect_idxs_count].v0 = obj_idx; + obj_sect_idxs[obj_sect_idxs_count].v1 = sect_idx; + obj_sect_idxs_count += 1; + } + } + } + + U64 pop_size = (max_contribs - obj_sect_idxs_count) * sizeof(obj_sect_idxs[0]); + arena_pop(arena, pop_size); + + *obj_sect_idxs_count_out = obj_sect_idxs_count; + + return obj_sect_idxs; +} + +internal COFF_SectionHeader * +lnk_coff_section_header_from_obj_sect_idx_pair(LNK_Obj **objs, PairU32 p) +{ + LNK_Obj *obj = objs[p.v0]; + COFF_SectionHeader *section_table = str8_deserial_get_raw_ptr(obj->data, obj->header.section_table_range.min, 0); + return §ion_table[p.v1]; +} + +global LNK_Obj **g_rad_map_objs; + +internal int +lnk_obj_sect_idx_is_before(void *raw_a, void *raw_b) +{ + PairU32 *a = raw_a, *b = raw_b; + COFF_SectionHeader *section_header_a = lnk_coff_section_header_from_obj_sect_idx_pair(g_rad_map_objs, *a); + COFF_SectionHeader *section_header_b = lnk_coff_section_header_from_obj_sect_idx_pair(g_rad_map_objs, *b); + return section_header_a->voff < section_header_b->voff; +} + +internal U64 +lnk_pair_u32_nearest_section(PairU32 *arr, U64 count, LNK_Obj **objs, U32 voff) +{ + U64 result = max_U64; + + if (count > 0) { + COFF_SectionHeader *first = lnk_coff_section_header_from_obj_sect_idx_pair(objs, arr[0]); + if (first->voff == voff) { + return 0; + } + + COFF_SectionHeader *last = lnk_coff_section_header_from_obj_sect_idx_pair(objs, arr[count-1]); + if (last->voff <= voff) { + return count - 1; + } + + if (first->voff <= voff && voff < last->voff + last->vsize) { + U64 l = 0; + U64 r = count - 1; + for (; l <= r; ) { + U64 m = l + (r - l) / 2; + COFF_SectionHeader *s = lnk_coff_section_header_from_obj_sect_idx_pair(objs, arr[m]); + if (s->voff == voff) { + return m; + } else if (s->voff < voff) { + l = m + 1; + } else { + r = m - 1; + } + } + result = l; + } + } + + return result; +} + internal String8List -lnk_build_rad_map(Arena *arena, String8 image_data, U64 thread_count, U64 objs_count, LNK_Obj **objs, LNK_LibList lib_index[LNK_InputSource_Count], LNK_SectionTable *sectab) +lnk_build_rad_map(Arena *arena, String8 image_data, LNK_Config *config, U64 objs_count, LNK_Obj **objs, LNK_LibList lib_index[LNK_InputSource_Count], LNK_SectionTable *sectab) { ProfBeginFunction(); Temp scratch = scratch_begin(&arena, 1); @@ -4801,19 +4902,33 @@ lnk_build_rad_map(Arena *arena, String8 image_data, U64 thread_count, U64 objs_c LNK_Section *sect = §_n->data; str8_list_pushf(arena, &map, "%S\n", sect->name); - str8_list_pushf(arena, &map, "%-8s %-8s %-8s %-8s %-16s %-8s %s\n", "FileOff", "VirtOff", "VirtSize", "FileSize", "Blake3", "SC", "Source"); + str8_list_pushf(arena, &map, "%-4s %-8s %-8s %-8s %-8s %-16s %s\n", "No.", "FileOff", "VirtOff", "VirtSize", "FileSize", "Blake3", "SC"); + U64 obj_sect_idxs_count = 0; + PairU32 *obj_sect_idxs = lnk_obj_sect_idx_from_section(scratch.arena, objs_count, objs, sect, config, &obj_sect_idxs_count); + g_rad_map_objs = objs; + radsort(obj_sect_idxs, obj_sect_idxs_count, lnk_obj_sect_idx_is_before); + + U64 global_sc_idx = 0; for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { - for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { + for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1, global_sc_idx += 1) { Temp temp = temp_begin(scratch.arena); LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; - U64 file_off = image_section_table[sc->u.sect_idx]->foff + sc->u.off; - U64 virt_off = image_section_table[sc->u.sect_idx]->voff + sc->u.off; + U64 file_off = image_section_table[sc->u.sect_idx+1]->foff + sc->u.off; + U64 virt_off = image_section_table[sc->u.sect_idx+1]->voff + sc->u.off; U64 virt_size = lnk_size_from_section_contrib(sc); U64 file_size = lnk_size_from_section_contrib(sc); String8 sc_data = str8_substr(image_data, rng_1u64(file_off, file_off + virt_size)); + LNK_Obj *obj = 0; + U32 sect_idx = 0; + U64 obj_sect_idx_idx = lnk_pair_u32_nearest_section(obj_sect_idxs, obj_sect_idxs_count, objs, virt_off); + if (obj_sect_idx_idx < obj_sect_idxs_count) { + obj = objs[obj_sect_idxs[obj_sect_idx_idx].v0]; + sect_idx = obj_sect_idxs[obj_sect_idx_idx].v1; + } + U128 sc_hash = {0}; if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { blake3_hasher hasher; blake3_hasher_init(&hasher); @@ -4821,41 +4936,30 @@ lnk_build_rad_map(Arena *arena, String8 image_data, U64 thread_count, U64 objs_c blake3_hasher_finalize(&hasher, (U8 *)&sc_hash, sizeof(sc_hash)); } + String8 sc_idx_str = push_str8f(temp.arena, "%4llx", global_sc_idx); String8 file_off_str = push_str8f(temp.arena, "%08x", file_off); String8 virt_off_str = push_str8f(temp.arena, "%08x", virt_off); String8 virt_size_str = push_str8f(temp.arena, "%08x", virt_size); String8 file_size_str = push_str8f(temp.arena, "%08x", file_size); String8 sc_hash_str = push_str8f(temp.arena, "%08x%08x", sc_hash.u64[0], sc_hash.u64[1]); - String8 sc_idx_str = push_str8f(temp.arena, "%llx", sc_idx); - String8 source_str; + String8 contrib_str; { String8List source_list = {0}; - -#if 0 - // location - if (chunk->obj) { - if (chunk->obj->lib_path.size) { - String8 lib_name = chunk->obj->lib_path; - lib_name = str8_skip_last_slash(lib_name); - lib_name = str8_chop_last_dot(lib_name); - - String8 obj_name = chunk->obj->path; - obj_name = str8_skip_last_slash(obj_name); - - str8_list_pushf(temp.arena, &source_list, "%S:%S", lib_name, obj_name); + if (obj) { + if (obj->lib_path.size) { + String8 lib_name = str8_chop_last_dot(str8_skip_last_slash(obj->lib_path)); + String8 obj_name = str8_skip_last_slash(obj->path); + str8_list_pushf(temp.arena, &source_list, "%S(%S) SECT%X", lib_name, obj_name, sect_idx+1); } else { - str8_list_push(temp.arena, &source_list, chunk->obj->path); + str8_list_pushf(temp.arena, &source_list, "%S SECT%X", obj->path, sect_idx+1); } + } else { + str8_list_pushf(temp.arena, &source_list, ""); } -#else - str8_list_pushf(temp.arena, &source_list, ""); -#endif - - // string join - source_str = str8_list_join(temp.arena, &source_list, &(StringJoin){.sep=str8_lit(" ")}); + contrib_str = str8_list_join(temp.arena, &source_list, &(StringJoin){.sep=str8_lit(" ")}); } - str8_list_pushf(arena, &map, "%-8S %-8S %-8S %-8S %-16S %-8S %S\n", file_off_str, virt_off_str, virt_size_str, file_size_str, sc_hash, sc_idx_str, source_str); + str8_list_pushf(arena, &map, "%S %S %S %S %S %S %S\n", sc_idx_str, file_off_str, virt_off_str, virt_size_str, file_size_str, sc_hash_str, contrib_str); temp_end(temp); } @@ -4865,6 +4969,7 @@ lnk_build_rad_map(Arena *arena, String8 image_data, U64 thread_count, U64 objs_c ProfEnd(); +#if 0 ProfBegin("SYMBOLS"); str8_list_pushf(arena, &map, "# SYMBOLS\n"); str8_list_pushf(arena, &map, "%-8s %s\n", "Sect:Idx", "Symbol"); @@ -4895,6 +5000,7 @@ lnk_build_rad_map(Arena *arena, String8 image_data, U64 thread_count, U64 objs_c } str8_list_pushf(arena, &map, "\n"); ProfEnd(); +#endif ProfBegin("LIBS"); @@ -4984,7 +5090,7 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) // RAD Map // if (config->rad_chunk_map == LNK_SwitchState_Yes) { - String8List rad_map = lnk_build_rad_map(scratch.arena, image_ctx.image_data, config->worker_count, link_ctx.objs_count, link_ctx.objs, link_ctx.lib_index, image_ctx.sectab); + String8List rad_map = lnk_build_rad_map(scratch.arena, image_ctx.image_data, config, link_ctx.objs_count, link_ctx.objs, link_ctx.lib_index, image_ctx.sectab); lnk_write_data_list_to_file_path(config->rad_chunk_map_name, config->temp_rad_chunk_map_name, rad_map); } diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 55d156f2..872d9a6a 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -126,7 +126,7 @@ global read_only LNK_CmdSwitch g_cmd_switch_map[] = { { LNK_CmdSwitch_Rad_Age, 0, "RAD_AGE", ":#", "Age embeded in EXE and PDB, used to validate incremental build. Default is 1." }, { LNK_CmdSwitch_Rad_BuildInfo, 0, "RAD_BUILD_INFO", "", "Print build info and exit." }, { LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll, 0, "RAD_CHECK_UNUSED_DELAY_LOAD_DLL", "[:NO]", "" }, - { LNK_CmdSwitch_Rad_ChunkMap, 0, "RAD_CHUNK_MAP", ":FILENAME", "Emit file with the output image's layout description." }, + { LNK_CmdSwitch_Rad_Map, 0, "RAD_MAP", ":FILENAME", "Emit file with the output image's layout description." }, { LNK_CmdSwitch_Rad_Debug, 0, "RAD_DEBUG", "[:NO]", "Emit RAD debug info file." }, { LNK_CmdSwitch_Rad_DebugAltPath, 0, "RAD_DEBUGALTPATH", "", "" }, { LNK_CmdSwitch_Rad_DebugName, 0, "RAD_DEBUG_NAME", ":FILENAME", "Sets file name for RAD debug info file." }, @@ -530,6 +530,16 @@ lnk_is_thread_pool_shared(LNK_Config *config) return config->shared_thread_pool_name.size > 0; } +internal B32 +lnk_is_section_removed(LNK_Config *config, String8 section_name) +{ + B32 is_removed = 0; + for (String8Node *name_n = config->remove_sections.first; name_n != 0 && !is_removed; name_n = name_n->next) { + is_removed = str8_match(section_name, name_n->string, 0); + } + return is_removed; +} + //////////////////////////////// internal B32 @@ -1620,7 +1630,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam lnk_cmd_switch_set_flag_64(obj_path, lib_path, cmd_switch, value_strings, &config->flags, LNK_ConfigFlag_CheckUnusedDelayLoadDll); } break; - case LNK_CmdSwitch_Rad_ChunkMap: { + case LNK_CmdSwitch_Rad_Map: { lnk_cmd_switch_parse_string_copy(arena, obj_path, lib_path, cmd_switch, value_strings, &config->rad_chunk_map_name); config->rad_chunk_map = LNK_SwitchState_Yes; } break; diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index a2db79a3..68740997 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -128,7 +128,7 @@ typedef enum LNK_CmdSwitch_Rad_Age, LNK_CmdSwitch_Rad_BuildInfo, LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll, - LNK_CmdSwitch_Rad_ChunkMap, + LNK_CmdSwitch_Rad_Map, LNK_CmdSwitch_Rad_Debug, LNK_CmdSwitch_Rad_DebugAltPath, LNK_CmdSwitch_Rad_DebugName, @@ -555,6 +555,8 @@ internal Version lnk_get_min_subsystem_version(PE_WindowsSubsystem subsystem, CO internal B32 lnk_do_debug_info (LNK_Config *config); internal B32 lnk_is_thread_pool_shared(LNK_Config *config); +internal B32 lnk_is_section_removed(LNK_Config *config, String8 section_name); + //////////////////////////////// // Specialized Parsers From bddf088df1f68ae206c07a47cd48259255c44bc2 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 16 Jun 2025 12:11:21 -0700 Subject: [PATCH 222/372] collect type indices in L_THREAD32 --- src/codeview/codeview_parse.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/codeview/codeview_parse.c b/src/codeview/codeview_parse.c index 391ad855..e7f3da9c 100644 --- a/src/codeview/codeview_parse.c +++ b/src/codeview/codeview_parse.c @@ -615,7 +615,8 @@ cv_get_symbol_type_index_offsets(Arena *arena, CV_SymKind kind, String8 data) case CV_SymKind_UDT: { cv_symbol_type_index_info_push(arena, &list, CV_TypeIndexSource_TPI, OffsetOf(CV_SymUDT, itype)); } break; - case CV_SymKind_GTHREAD32: { + case CV_SymKind_GTHREAD32: + case CV_SymKind_LTHREAD32: { cv_symbol_type_index_info_push(arena, &list, CV_TypeIndexSource_TPI, OffsetOf(CV_SymThread32, itype)); } break; case CV_SymKind_FILESTATIC: { From 422829b196c9cf812cea7f0adcc0e2071fb3488b Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 16 Jun 2025 14:49:48 -0700 Subject: [PATCH 223/372] print align and debug sections --- src/linker/lnk.c | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 1853f900..19fb044d 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -4902,7 +4902,7 @@ lnk_build_rad_map(Arena *arena, String8 image_data, LNK_Config *config, U64 objs LNK_Section *sect = §_n->data; str8_list_pushf(arena, &map, "%S\n", sect->name); - str8_list_pushf(arena, &map, "%-4s %-8s %-8s %-8s %-8s %-16s %s\n", "No.", "FileOff", "VirtOff", "VirtSize", "FileSize", "Blake3", "SC"); + str8_list_pushf(arena, &map, "%-4s %-8s %-8s %-8s %-8s %-16s %-4s %s\n", "No.", "FileOff", "VirtOff", "VirtSize", "FileSize", "Blake3", "Algn", "SC"); U64 obj_sect_idxs_count = 0; PairU32 *obj_sect_idxs = lnk_obj_sect_idx_from_section(scratch.arena, objs_count, objs, sect, config, &obj_sect_idxs_count); @@ -4942,16 +4942,20 @@ lnk_build_rad_map(Arena *arena, String8 image_data, LNK_Config *config, U64 objs String8 virt_size_str = push_str8f(temp.arena, "%08x", virt_size); String8 file_size_str = push_str8f(temp.arena, "%08x", file_size); String8 sc_hash_str = push_str8f(temp.arena, "%08x%08x", sc_hash.u64[0], sc_hash.u64[1]); + String8 align_str = push_str8f(temp.arena, "%4x", sc->align); String8 contrib_str; { String8List source_list = {0}; if (obj) { + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + String8 section_name = coff_name_from_section_header(string_table, section_header); if (obj->lib_path.size) { String8 lib_name = str8_chop_last_dot(str8_skip_last_slash(obj->lib_path)); String8 obj_name = str8_skip_last_slash(obj->path); - str8_list_pushf(temp.arena, &source_list, "%S(%S) SECT%X", lib_name, obj_name, sect_idx+1); + str8_list_pushf(temp.arena, &source_list, "%S(%S) SECT%X (%S)", lib_name, obj_name, sect_idx+1, section_name); } else { - str8_list_pushf(temp.arena, &source_list, "%S SECT%X", obj->path, sect_idx+1); + str8_list_pushf(temp.arena, &source_list, "%S SECT%X (%S)", obj->path, sect_idx+1, section_name); } } else { str8_list_pushf(temp.arena, &source_list, ""); @@ -4959,7 +4963,7 @@ lnk_build_rad_map(Arena *arena, String8 image_data, LNK_Config *config, U64 objs contrib_str = str8_list_join(temp.arena, &source_list, &(StringJoin){.sep=str8_lit(" ")}); } - str8_list_pushf(arena, &map, "%S %S %S %S %S %S %S\n", sc_idx_str, file_off_str, virt_off_str, virt_size_str, file_size_str, sc_hash_str, contrib_str); + str8_list_pushf(arena, &map, "%S %S %S %S %S %S %S %S\n", sc_idx_str, file_off_str, virt_off_str, virt_size_str, file_size_str, sc_hash_str, align_str, contrib_str); temp_end(temp); } @@ -4968,6 +4972,27 @@ lnk_build_rad_map(Arena *arena, String8 image_data, LNK_Config *config, U64 objs } ProfEnd(); + str8_list_pushf(arena, &map, "# DEBUG\n"); + for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { + LNK_Obj *obj = objs[obj_idx]; + COFF_SectionHeader *section_table = str8_deserial_get_raw_ptr(obj->data, obj->header.section_table_range.min, 0); + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + if (lnk_is_coff_section_debug(obj, sect_idx)) { + COFF_SectionHeader *section_header = §ion_table[sect_idx]; + if (~section_header->flags & COFF_SectionFlag_LnkRemove) { + if (obj->lib_path.size) { + String8 lib_name = str8_chop_last_dot(str8_skip_last_slash(obj->lib_path)); + String8 obj_name = str8_skip_last_slash(obj->path); + str8_list_pushf(arena, &map, "%S(%S) SECT%X\n", lib_name, obj_name, sect_idx+1); + } else { + str8_list_pushf(arena, &map, "%S SECT%X\n", obj->path, sect_idx+1); + } + } + } + } + } + str8_list_pushf(arena, &map, "\n"); + #if 0 ProfBegin("SYMBOLS"); From 4c972c0fbad7d81052df470caa62ac72e382de0a Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 17 Jun 2025 16:46:38 -0700 Subject: [PATCH 224/372] handle COMDAT symbols with non-zero section offset --- src/linker/lnk.c | 166 ++++++++++++------------------------------ src/linker/lnk.h | 3 +- src/torture/torture.c | 52 +++++++++++++ 3 files changed, 102 insertions(+), 119 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 19fb044d..e867573f 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2404,70 +2404,6 @@ THREAD_POOL_TASK_FUNC(lnk_flag_debug_symbols_task) internal THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_task) -{ - LNK_BuildImageTask *task = raw_task; - U64 obj_idx = task_id; - LNK_Obj *obj = task->objs[obj_idx]; - - ProfBeginV("Set COMDAT Leaders [%S]", obj->path); - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular && symbol.storage_class == COFF_SymStorageClass_External) { - COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { - LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); - COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - task->sect_map[obj_idx][symbol.section_number - 1] = task->sect_map[defn->u.defined.obj->input_idx][defn_symbol.section_number - 1]; - } - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_patch_comdat_leaders_task) -{ - LNK_BuildImageTask *task = raw_task; - U64 obj_idx = task_id; - LNK_Obj *obj = task->objs[obj_idx]; - - ProfBeginV("Patch COMDAT Leaders [%S]", obj->path); - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - - if (task->u.patch_symtabs.was_symbol_patched[obj_idx][symbol_idx]) { continue; } - - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular && symbol.storage_class == COFF_SymStorageClass_External) { - COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { - LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); - - if (defn->u.defined.obj == obj && defn->u.defined.symbol_idx == symbol_idx) { - LNK_SectionContrib *sc = task->sect_map[obj_idx][symbol.section_number-1]; - if (obj->header.is_big_obj) { - COFF_Symbol32 *symbol32 = symbol.raw_symbol; - symbol32->section_number = sc->u.sect_idx+1; - symbol32->value = safe_cast_u32(sc->u.off + symbol.value); - } else { - COFF_Symbol16 *symbol16 = symbol.raw_symbol; - symbol16->section_number = safe_cast_u16(sc->u.sect_idx+1); - symbol16->value = safe_cast_u32(sc->u.off + symbol.value); - } - - task->u.patch_symtabs.was_symbol_patched[obj_idx][symbol_idx] = 1; - } - } - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_patch_replaced_comdats_task) { Temp scratch = scratch_begin(&arena, 1); @@ -2477,9 +2413,8 @@ THREAD_POOL_TASK_FUNC(lnk_patch_replaced_comdats_task) ProfBeginV("%S", obj->path); - LNK_Symbol **symlinks = push_array(scratch.arena, LNK_Symbol *, obj->header.section_count_no_null+1); - ProfBegin("Build Symlinks"); + LNK_Symbol **symlinks = push_array(scratch.arena, LNK_Symbol *, obj->header.section_count_no_null+1); { COFF_ParsedSymbol symbol; for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { @@ -2497,54 +2432,59 @@ THREAD_POOL_TASK_FUNC(lnk_patch_replaced_comdats_task) } ProfEnd(); - ProfBegin("Patch"); - { - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + ProfBeginV("Set COMDAT Section Contribs"); + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); + if (section_header->flags & COFF_SectionFlag_LnkCOMDAT) { + LNK_Symbol *sym = symlinks[sect_idx+1]; + if (sym) { + COFF_ParsedSymbol parsed_sym = lnk_parsed_symbol_from_coff_symbol_idx(sym->u.defined.obj, sym->u.defined.symbol_idx); + task->sect_map[obj_idx][sect_idx] = task->sect_map[sym->u.defined.obj->input_idx][parsed_sym.section_number - 1]; + } + } + } + ProfEnd(); - if (task->u.patch_symtabs.was_symbol_patched[obj_idx][symbol_idx]) { continue; } - - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular) { - COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { - - - LNK_Symbol *comdat_leader = symlinks[symbol.section_number]; - COFF_ParsedSymbol comdat_leader_parsed; - LNK_SectionContrib *comdat_leader_sc; - if (comdat_leader) { - B32 is_this_leader_symbol = comdat_leader->u.defined.obj == obj && comdat_leader->u.defined.symbol_idx == symbol_idx; - if (is_this_leader_symbol) continue; - - comdat_leader_parsed = lnk_parsed_symbol_from_coff_symbol_idx(comdat_leader->u.defined.obj, comdat_leader->u.defined.symbol_idx); - comdat_leader_sc = task->sect_map[comdat_leader->u.defined.obj->input_idx][comdat_leader_parsed.section_number-1]; - } else { - Assert(symbol.storage_class != COFF_SymStorageClass_External); - comdat_leader_sc = task->sect_map[obj_idx][symbol.section_number-1]; - } - - if (obj->header.is_big_obj) { - COFF_Symbol32 *symbol32 = symbol.raw_symbol; - symbol32->section_number = comdat_leader_sc->u.sect_idx+1; - symbol32->value = safe_cast_u32(comdat_leader_sc->u.off + symbol.value); - } else { - COFF_Symbol16 *symbol16 = symbol.raw_symbol; - symbol16->section_number = safe_cast_u16(comdat_leader_sc->u.sect_idx+1); - symbol16->value = safe_cast_u32(comdat_leader_sc->u.off + symbol.value); - } + ProfBegin("Patch COMDAT Offsets"); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { + LNK_Symbol *symlink = symlinks[symbol.section_number]; + if (symlink && symlink->u.defined.obj != obj) { + U32 section_number; + U32 value; + if (symbol.storage_class == COFF_SymStorageClass_External) { + // COMDAT leader may be at a different offset, so update this symbol with leader's offset + COFF_ParsedSymbol parsed_symlink = lnk_parsed_symbol_from_coff_symbol_idx(symlink->u.defined.obj, symlink->u.defined.symbol_idx); + section_number = symbol.section_number; + value = parsed_symlink.value; + } else { + // COMDAT section may have static symbols which are now invalid to relocate against + section_number = LNK_REMOVED_SECTION_NUMBER_32; + value = max_U32; task->u.patch_symtabs.was_symbol_patched[obj_idx][symbol_idx] = 1; } + + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = symbol.raw_symbol; + symbol32->section_number = section_number; + symbol32->value = value; + } else { + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + symbol16->section_number = (U16)section_number; + symbol16->value = value; + } } } } ProfEnd(); - scratch_end(scratch); - ProfEnd(); + + scratch_end(scratch); } internal int @@ -2638,14 +2578,12 @@ THREAD_POOL_TASK_FUNC(lnk_patch_regular_symbols_task) COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular) { COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - Assert(~sect_header->flags & COFF_SectionFlag_LnkCOMDAT); LNK_SectionContrib *sc = task->sect_map[obj_idx][symbol.section_number-1]; - - U16 section_number; - U32 value; + U16 section_number; + U32 value; if (sc == &g_null_sc) { - section_number = LNK_REMOVED_SECTION_NUMBER; + section_number = LNK_REMOVED_SECTION_NUMBER_16; value = max_U32; } else { section_number = safe_cast_u32(sc->u.sect_idx + 1); @@ -3049,7 +2987,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, reloc->isymbol); COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular) { - if (symbol.section_number == LNK_REMOVED_SECTION_NUMBER) { + if (symbol.section_number == LNK_REMOVED_SECTION_NUMBER_16 || symbol.section_number == LNK_REMOVED_SECTION_NUMBER_32) { if (!lnk_is_coff_section_debug(obj, sect_idx)) { String8 sect_name = coff_name_from_section_header(string_table, §ion_table[sect_idx]); lnk_error_obj(LNK_Error_RelocationAgainstRemovedSection, obj, "relocating against symbol that is in a removed section (symbol: %S, reloc-section: %S 0x%llx, reloc: 0x%llx)", symbol.name, sect_name, sect_idx+1, reloc_idx); @@ -4389,14 +4327,6 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT tp_for_parallel(tp, 0, objs_count, lnk_set_comdat_leaders_task, &task); ProfEnd(); - ProfBegin("Patch replaced COMDATs"); - tp_for_parallel(tp, 0, objs_count, lnk_patch_replaced_comdats_task, &task); - ProfEnd(); - - ProfBegin("Patch COMDAT Leaders"); - tp_for_parallel(tp, 0, objs_count, lnk_patch_comdat_leaders_task, &task); - ProfEnd(); - ProfBegin("Patch Common Block Leaders"); tp_for_parallel(tp, 0, tp->worker_count, lnk_patch_common_block_leaders_task, &task); ProfEnd(); diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 84c07ce2..68d49ce8 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -16,7 +16,8 @@ typedef struct LNK_LinkContext // -- Image -------------------------------------------------------------------- -#define LNK_REMOVED_SECTION_NUMBER (U16)-3 +#define LNK_REMOVED_SECTION_NUMBER_32 (U32)-3 +#define LNK_REMOVED_SECTION_NUMBER_16 (U16)-3 typedef struct LNK_ImageContext { diff --git a/src/torture/torture.c b/src/torture/torture.c index f79bd702..41c07766 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -2738,6 +2738,57 @@ exit:; return result; } +internal T_Result +t_comdat_test(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 a[] = "1Hello, World!"; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_array_fixed(a)); + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 1, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 a[] = "Hello, World!"; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_array_fixed(a)); + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 1, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 3, symbol); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { goto exit; } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); + +exit:; + result = T_Result_Pass; + scratch_end(scratch); + return result; +} + internal T_Result t_sect_align(void) { @@ -3601,6 +3652,7 @@ entry_point(CmdLine *cmdline) { "comdat_associative_loop", t_comdat_associative_loop }, { "comdat_associative_non_comdat", t_comdat_associative_non_comdat }, { "comdat_associative_out_of_bounds", t_comdat_associative_out_of_bounds }, + { "comdat_test", t_comdat_test }, { "alt_name", t_alt_name }, { "include", t_include }, { "communal_var_vs_regular_comdat", t_communal_var_vs_regular_comdat }, From ad3e6e0b798161ee669300680f888f8595c26972 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 17 Jun 2025 21:39:55 -0700 Subject: [PATCH 225/372] pipe obj reads through IO layer --- src/linker/lnk.c | 25 +++++++++++-------------- src/linker/lnk_input.c | 26 ++++++++++++++++++++++++++ src/linker/lnk_input.h | 2 ++ 3 files changed, 39 insertions(+), 14 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index e867573f..5ad8905f 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -873,16 +873,6 @@ lnk_make_linker_coff_obj(Arena *arena, return obj; } -internal -THREAD_POOL_TASK_FUNC(lnk_load_thin_objs_task) -{ - LNK_InputObj *input = ((LNK_InputObj **)raw_task)[task_id]; - if (input->is_thin) { - input->data = lnk_read_data_from_file_path(arena, input->path); - input->has_disk_read_failed = (input->data.size == 0); - } -} - internal String8 lnk_get_lib_name(String8 path) { @@ -1461,12 +1451,19 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } ProfEnd(); - ProfBegin("Load Objs From Disk"); - LNK_InputObj **input_obj_arr = lnk_array_from_input_obj_list(scratch.arena, unique_obj_input_list); - tp_for_parallel(tp, tp_arena, unique_obj_input_list.count, lnk_load_thin_objs_task, input_obj_arr); + ProfBegin("Load Objs From Disk"); + U64 thin_inputs_count = 0; + LNK_InputObj **thin_inputs = lnk_thin_array_from_input_obj_list(scratch.arena, unique_obj_input_list, &thin_inputs_count); + String8Array thin_input_paths = lnk_path_array_from_input_obj_array(scratch.arena, thin_inputs, thin_inputs_count); + String8Array thin_input_datas = lnk_read_data_from_file_path_parallel(tp, tp_arena->v[0], thin_input_paths); + for (U64 thin_input_idx = 0; thin_input_idx < thin_inputs_count; thin_input_idx += 1) { + thin_inputs[thin_input_idx]->has_disk_read_failed = thin_input_datas.v[thin_input_idx].size == 0; + thin_inputs[thin_input_idx]->data = thin_input_datas.v[thin_input_idx]; + } ProfEnd(); - + ProfBegin("Disk Read Check"); + LNK_InputObj **input_obj_arr = lnk_array_from_input_obj_list(scratch.arena, unique_obj_input_list); for (U64 input_idx = 0; input_idx < unique_obj_input_list.count; ++input_idx) { if (input_obj_arr[input_idx]->has_disk_read_failed) { lnk_error(LNK_Error_InvalidPath, "unable to find obj \"%S\"", input_obj_arr[input_idx]->path); diff --git a/src/linker/lnk_input.c b/src/linker/lnk_input.c index 919b1cce..3d690d4c 100644 --- a/src/linker/lnk_input.c +++ b/src/linker/lnk_input.c @@ -47,6 +47,32 @@ lnk_array_from_input_obj_list(Arena *arena, LNK_InputObjList list) return result; } +internal LNK_InputObj ** +lnk_thin_array_from_input_obj_list(Arena *arena, LNK_InputObjList list, U64 *count_out) +{ + for (LNK_InputObj *input = list.first; input != 0; input = input->next) { + if (input->is_thin) { *count_out += 1; } + } + LNK_InputObj **thin_inputs = push_array(arena, LNK_InputObj *, *count_out); + U64 input_idx = 0; + for (LNK_InputObj *input = list.first; input != 0; input = input->next) { + if (input->is_thin) { thin_inputs[input_idx++] = input; } + } + return thin_inputs; +} + +internal String8Array +lnk_path_array_from_input_obj_array(Arena *arena, LNK_InputObj **arr, U64 count) +{ + String8Array paths = {0}; + paths.count = count; + paths.v = push_array(arena, String8, count); + for (U64 i = 0; i < count; i += 1) { + paths.v[i] = arr[i]->path; + } + return paths; +} + internal int lnk_input_obj_compar(const void *raw_a, const void *raw_b) { diff --git a/src/linker/lnk_input.h b/src/linker/lnk_input.h index 6760bddb..b802c0ff 100644 --- a/src/linker/lnk_input.h +++ b/src/linker/lnk_input.h @@ -62,6 +62,8 @@ internal LNK_InputObj * lnk_input_obj_list_push(Arena *arena, LNK_InputObjList internal void lnk_input_obj_list_concat_in_place(LNK_InputObjList *list, LNK_InputObjList *to_concat); internal LNK_InputObj ** lnk_array_from_input_obj_list(Arena *arena, LNK_InputObjList list); +internal LNK_InputObj ** lnk_thin_array_from_input_obj_list(Arena *arena, LNK_InputObjList list, U64 *count_out); +internal String8Array lnk_path_array_from_input_obj_array(Arena *arena, LNK_InputObj **arr, U64 count); internal LNK_InputObjList lnk_list_from_input_obj_arr(LNK_InputObj **arr, U64 count); internal LNK_InputObjList lnk_input_obj_list_from_string_list(Arena *arena, String8List list); From ba326924ee886da23c59cf643e678c50f5c4bbdb Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 18 Jun 2025 12:27:09 -0700 Subject: [PATCH 226/372] test for relocation against removed COMDAT --- src/linker/lnk.c | 2 +- src/torture/torture.c | 67 ++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 64 insertions(+), 5 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 5ad8905f..f621f680 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2987,7 +2987,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) if (symbol.section_number == LNK_REMOVED_SECTION_NUMBER_16 || symbol.section_number == LNK_REMOVED_SECTION_NUMBER_32) { if (!lnk_is_coff_section_debug(obj, sect_idx)) { String8 sect_name = coff_name_from_section_header(string_table, §ion_table[sect_idx]); - lnk_error_obj(LNK_Error_RelocationAgainstRemovedSection, obj, "relocating against symbol that is in a removed section (symbol: %S, reloc-section: %S 0x%llx, reloc: 0x%llx)", symbol.name, sect_name, sect_idx+1, reloc_idx); + lnk_error_obj(LNK_Error_RelocationAgainstRemovedSection, obj, "relocating against symbol that is in a removed section (symbol: %S, reloc-section: %S %llxh, reloc-index: %llxh)", symbol.name, sect_name, sect_idx+1, reloc_idx); } continue; } diff --git a/src/torture/torture.c b/src/torture/torture.c index 41c07766..4e67fe3b 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -2739,7 +2739,7 @@ exit:; } internal T_Result -t_comdat_test(void) +t_comdat_with_offset(void) { Temp scratch = scratch_begin(0,0); T_Result result = T_Result_Fail; @@ -2782,6 +2782,65 @@ t_comdat_test(void) } int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); + if (linker_exit_code != 0) { goto exit; } + +exit:; + result = T_Result_Pass; + scratch_end(scratch); + return result; +} + +internal T_Result +t_reloc_against_removed_comdat(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 a[] = "1Hello, World!"; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_array_fixed(a)); + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 1, sect); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 a[] = "H"; + COFF_ObjSection *comdat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_array_fixed(a)); + coff_obj_writer_push_symbol_secdef(obj_writer, comdat_sect, COFF_ComdatSelect_Largest); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 1, comdat_sect); + COFF_ObjSymbol *static_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("STATIC"), 2, comdat_sect); + + U8 rdata[4] = {0}; + COFF_ObjSection *regular_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS, str8_array_fixed(rdata)); + coff_obj_writer_section_push_reloc_voff(obj_writer, regular_sect, 0, static_symbol); + + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } + } + + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 3, symbol); + String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + if (!t_write_file(str8_lit("entry.obj"), obj)) { goto exit; } + } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj c.obj entry.obj"); + if (linker_exit_code != LNK_Error_RelocationAgainstRemovedSection) { goto exit; } exit:; result = T_Result_Pass; @@ -3618,8 +3677,7 @@ entry_point(CmdLine *cmdline) // Targets // static struct { - char *label; - T_Result (*r)(void); + char *label; T_Result (*r)(void); } target_array[] = { { "simple_link_test", t_simple_link_test }, { "machine_compat_check", t_machine_compat_check }, @@ -3652,7 +3710,8 @@ entry_point(CmdLine *cmdline) { "comdat_associative_loop", t_comdat_associative_loop }, { "comdat_associative_non_comdat", t_comdat_associative_non_comdat }, { "comdat_associative_out_of_bounds", t_comdat_associative_out_of_bounds }, - { "comdat_test", t_comdat_test }, + { "comdat_with_offset", t_comdat_with_offset }, + { "reloc_against_removed_comdat", t_reloc_against_removed_comdat }, { "alt_name", t_alt_name }, { "include", t_include }, { "communal_var_vs_regular_comdat", t_communal_var_vs_regular_comdat }, From e487fbc494a63241c53014035d8952d0a9b272f2 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 18 Jun 2025 14:00:02 -0700 Subject: [PATCH 227/372] minor torture fixes --- src/torture/torture.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index 4e67fe3b..12d3d854 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -2784,8 +2784,8 @@ t_comdat_with_offset(void) int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); if (linker_exit_code != 0) { goto exit; } -exit:; result = T_Result_Pass; +exit:; scratch_end(scratch); return result; } @@ -3448,7 +3448,7 @@ t_delay_import(void) if (!str8_match(a_import->name, str8_lit("a.dll"), 0)) { goto exit; } if (a_import->module_handle_voff == 0) { goto exit; } if (a_import->name_table_voff == 0) { goto exit; } - if (a_import->bound_table_voff == 0) { goto exit; } + if (a_import->bound_table_voff != 0) { goto exit; } if (a_import->unload_table_voff != 0) { goto exit; } if (a_import->time_stamp != 0) { goto exit; } if (a_import->bound_table_count != 0) { goto exit; } @@ -3470,7 +3470,7 @@ t_delay_import(void) if (!str8_match(b_import->name, str8_lit("b.dll"), 0)) { goto exit; } if (b_import->module_handle_voff == 0) { goto exit; } if (b_import->name_table_voff == 0) { goto exit; } - if (b_import->bound_table_voff == 0) { goto exit; } + if (b_import->bound_table_voff != 0) { goto exit; } if (b_import->unload_table_voff != 0) { goto exit; } if (b_import->time_stamp != 0) { goto exit; } if (b_import->bound_table_count != 0) { goto exit; } From 65095437b7262151f4c51bd201769336517e85c3 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 18 Jun 2025 14:01:09 -0700 Subject: [PATCH 228/372] allow forward reference tag symbols --- src/linker/lnk.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index f621f680..b41cff48 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2894,14 +2894,11 @@ THREAD_POOL_TASK_FUNC(lnk_patch_weak_symbols_with_undefined_tag_task) COFF_ParsedSymbol symbol; for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Weak) { - COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(symbol, obj->header.is_big_obj); - AssertAlways(weak_ext->tag_index < symbol_idx); - - COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, weak_ext->tag_index); - COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_symbol.section_number, defn_symbol.value, defn_symbol.storage_class); + COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(symbol, obj->header.is_big_obj); + COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, weak_ext->tag_index); + COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_symbol.section_number, defn_symbol.value, defn_symbol.storage_class); if (defn_interp != COFF_SymbolValueInterp_Undefined) { lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_symbol); } From 6b3a63f4743990eb13f134ccf14a31d7e753c05a Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 18 Jun 2025 14:09:44 -0700 Subject: [PATCH 229/372] correct task name for weak symbol patch --- src/linker/lnk.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index b41cff48..6a79c0a8 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2884,7 +2884,7 @@ THREAD_POOL_TASK_FUNC(lnk_patch_weak_symbols_with_fallback_definition_task) } internal -THREAD_POOL_TASK_FUNC(lnk_patch_weak_symbols_with_undefined_tag_task) +THREAD_POOL_TASK_FUNC(lnk_patch_weak_symbols_with_defined_tags_task) { LNK_BuildImageTask *task = raw_task; U64 obj_idx = task_id; @@ -4349,8 +4349,8 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT tp_for_parallel(tp, 0, task.objs_count, lnk_patch_weak_symbols_with_fallback_definition_task, &task); ProfEnd(); - ProfBegin("Patch Weak Symbols With Undefined Tag"); - tp_for_parallel(tp, 0, task.objs_count, lnk_patch_weak_symbols_with_undefined_tag_task, &task); + ProfBegin("Patch Weak Symbols With Defined Tag"); + tp_for_parallel(tp, 0, task.objs_count, lnk_patch_weak_symbols_with_defined_tags_task, &task); ProfEnd(); temp_end(temp); From 16e72fd57324f9a52638f8f003e81a93bed1e301 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 18 Jun 2025 20:08:29 -0700 Subject: [PATCH 230/372] remove unused switch --- src/linker/lnk_config.c | 12 ------------ src/linker/lnk_config.h | 1 - 2 files changed, 13 deletions(-) diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 872d9a6a..92c3f3b0 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -146,7 +146,6 @@ global read_only LNK_CmdSwitch g_cmd_switch_map[] = { { LNK_CmdSwitch_Rad_PdbHashTypeNameMap, 0, "RAD_PDB_HASH_TYPE_NAME_MAP", ":FILENAME", "Produce map file with hash -> type name mappings." }, { LNK_CmdSwitch_Rad_PdbHashTypeNames, 0, "RAD_PDB_HASH_TYPE_NAMES", ":{NONE|LENIENT|FULL}", "Replace type names in LF_STRUCTURE and LF_CLASS with hashes." }, { LNK_CmdSwitch_Rad_RemoveSection, 0, "RAD_REMOVE_SECTION", ":NAME", "Removes a section from output image." }, - { LNK_CmdSwitch_Rad_SectVirtOff, 0, "RAD_SECT_VIRT_OFF", ":#", "Set RVA where section data is placed in memory. For internal use only." }, { LNK_CmdSwitch_Rad_SharedThreadPool, 0, "RAD_SHARED_THREAD_POOL", "[:STRING]", "Default value \"" LNK_DEFAULT_THREAD_POOL_NAME "\"" }, { LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, 0, "RAD_SHARED_THREAD_POOL_MAX_WORKERS", ":#", "Sets maximum number of workers in a thread pool." }, { LNK_CmdSwitch_Rad_SuppressError, 0, "RAD_SUPPRESS_ERROR", ":#", "" }, @@ -1798,17 +1797,6 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } } break; - case LNK_CmdSwitch_Rad_SectVirtOff: { - U64 sect_virt_off; - if (lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, §_virt_off, LNK_ParseU64Flag_CheckUnder32bit)) { - if (sect_virt_off >= 0x1000) { - config->section_virt_off = sect_virt_off; - } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "section virtual offset must be >= 0x1000"); - } - } - } break; - case LNK_CmdSwitch_Rad_SharedThreadPool: { if (value_strings.node_count == 0) { config->shared_thread_pool_name = str8_lit(LNK_DEFAULT_THREAD_POOL_NAME); diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index 68740997..1567607b 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -310,7 +310,6 @@ typedef struct LNK_Config Guid guid; COFF_TimeStamp time_stamp; U32 age; - U64 section_virt_off; U64 file_align; U64 sect_align; U64 stack_reserve; From 46663688e21a46be71e4d6dc6f28de4632203d6e Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 19 Jun 2025 15:12:18 -0700 Subject: [PATCH 231/372] on read memory map files --- src/linker/lnk.c | 16 +- src/linker/lnk.h | 2 +- src/linker/lnk_config.c | 532 ++++++++++++++++++------------------ src/linker/lnk_config.h | 102 ++++--- src/linker/lnk_debug_info.c | 6 +- src/linker/lnk_debug_info.h | 2 +- src/linker/lnk_io.c | 108 +++++--- src/linker/lnk_io.h | 14 +- 8 files changed, 405 insertions(+), 377 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 6a79c0a8..bc70f354 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -203,6 +203,7 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SymbolTableCapWeak, "0x3ffff"); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SymbolTableCapLib, "0x3ffff"); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_DebugAltPath, "%%_RAD_RDI_PATH%%"); + lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_MemoryMapFiles, ""); #if BUILD_DEBUG lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Log, "debug"); lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Log, "io_write"); @@ -435,6 +436,7 @@ lnk_merge_manifest_files(String8 mt_path, String8 out_name, String8List manifest internal String8 lnk_manifest_from_inputs(Arena *arena, + LNK_IO_Flags io_flags, String8 mt_path, String8 manifest_name, B32 manifest_uac, @@ -468,7 +470,7 @@ lnk_manifest_from_inputs(Arena *arena, lnk_merge_manifest_files(mt_path, merged_manifest_path, unique_input_manifest_paths); // read mt.exe output from disk - manifest_data = lnk_read_data_from_file_path(arena, merged_manifest_path); + manifest_data = lnk_read_data_from_file_path(arena, io_flags, merged_manifest_path); if (manifest_data.size == 0) { lnk_error(LNK_Error_Mt, "unable to find mt.exe output manifest on disk, expected path \"%S\"", merged_manifest_path); } @@ -1455,7 +1457,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) U64 thin_inputs_count = 0; LNK_InputObj **thin_inputs = lnk_thin_array_from_input_obj_list(scratch.arena, unique_obj_input_list, &thin_inputs_count); String8Array thin_input_paths = lnk_path_array_from_input_obj_array(scratch.arena, thin_inputs, thin_inputs_count); - String8Array thin_input_datas = lnk_read_data_from_file_path_parallel(tp, tp_arena->v[0], thin_input_paths); + String8Array thin_input_datas = lnk_read_data_from_file_path_parallel(tp, tp_arena->v[0], config->io_flags, thin_input_paths); for (U64 thin_input_idx = 0; thin_input_idx < thin_inputs_count; thin_input_idx += 1) { thin_inputs[thin_input_idx]->has_disk_read_failed = thin_input_datas.v[thin_input_idx].size == 0; thin_inputs[thin_input_idx]->data = thin_input_datas.v[thin_input_idx]; @@ -1696,7 +1698,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfBegin("Disk Read Libs"); String8Array paths = str8_array_from_list(temp.arena, &unique_input_lib_list); - String8Array datas = lnk_read_data_from_file_path_parallel(tp, tp_arena->v[0], paths); + String8Array datas = lnk_read_data_from_file_path_parallel(tp, tp_arena->v[0], config->io_flags, paths); ProfEnd(); ProfBegin("Lib Init"); @@ -2047,7 +2049,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfBegin("Embed Manifest"); // TODO: currently we convert manifest to res and parse res again, this unnecessary instead push manifest // resource to the tree directly - String8 manifest_data = lnk_manifest_from_inputs(scratch.arena, config->mt_path, config->manifest_name, config->manifest_uac, config->manifest_level, config->manifest_ui_access, input_manifest_path_list, manifest_dep_list); + String8 manifest_data = lnk_manifest_from_inputs(scratch.arena, config->io_flags, config->mt_path, config->manifest_name, config->manifest_uac, config->manifest_level, config->manifest_ui_access, input_manifest_path_list, manifest_dep_list); String8 manifest_res = pe_make_manifest_resource(scratch.arena, *config->manifest_resource_id, manifest_data); str8_list_push(scratch.arena, &res_data_list, manifest_res); str8_list_push(scratch.arena, &res_path_list, str8_lit("* Manifest *")); @@ -2056,7 +2058,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) case LNK_ManifestOpt_WriteToFile: { ProfBeginDynamic("Write Manifest To: %.*s", str8_varg(config->manifest_name)); Temp temp = temp_begin(scratch.arena); - String8 manifest_data = lnk_manifest_from_inputs(temp.arena, config->mt_path, config->manifest_name, config->manifest_uac, config->manifest_level, config->manifest_ui_access, input_manifest_path_list, manifest_dep_list); + String8 manifest_data = lnk_manifest_from_inputs(temp.arena, config->io_flags, config->mt_path, config->manifest_name, config->manifest_uac, config->manifest_level, config->manifest_ui_access, input_manifest_path_list, manifest_dep_list); lnk_write_data_to_file_path(config->manifest_name, str8_zero(), manifest_data); temp_end(temp); ProfEnd(); @@ -2072,7 +2074,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfBegin("Load .res files from disk"); for (String8Node *node = config->input_list[LNK_Input_Res].first; node != 0; node = node->next) { - String8 res_data = lnk_read_data_from_file_path(scratch.arena, node->string); + String8 res_data = lnk_read_data_from_file_path(scratch.arena, config->io_flags, node->string); if (res_data.size > 0) { if (pe_is_res(res_data)) { str8_list_push(scratch.arena, &res_data_list, res_data); @@ -5066,7 +5068,7 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) // // CodeView // - LNK_CodeViewInput input = lnk_make_code_view_input(tp, tp_arena, config->lib_dir_list, link_ctx.objs_count, link_ctx.objs); + LNK_CodeViewInput input = lnk_make_code_view_input(tp, tp_arena, config->io_flags, config->lib_dir_list, link_ctx.objs_count, link_ctx.objs); CV_DebugT *types = lnk_import_types(tp, tp_arena, &input); // diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 68d49ce8..16438043 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -188,7 +188,7 @@ internal U128 lnk_blake3_hash_parallel(TP_Context *tp, U64 chunk_count, String8 internal String8 lnk_make_linker_manifest(Arena *arena, B32 manifest_uac, String8 manifest_level, String8 manifest_ui_access, String8List manifest_dependency_list); internal void lnk_merge_manifest_files(String8 mt_path, String8 out_name, String8List manifest_path_list); -internal String8 lnk_manifest_from_inputs(Arena *arena, String8 mt_path, String8 manifest_name, B32 manifest_uac, String8 manifest_level, String8 manifest_ui_access, String8List input_manifest_path_list, String8List deps_list); +internal String8 lnk_manifest_from_inputs(Arena *arena, LNK_IO_Flags io_flags, String8 mt_path, String8 manifest_name, B32 manifest_uac, String8 manifest_level, String8 manifest_ui_access, String8List input_manifest_path_list, String8List deps_list); // --- Internal Objs ----------------------------------------------------------- diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 92c3f3b0..338afe57 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -1,10 +1,8 @@ // Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -//////////////////////////////// -// Enum <-> String - -global read_only LNK_CmdSwitch g_cmd_switch_map[] = { +global read_only LNK_CmdSwitch g_cmd_switch_map[] = +{ { LNK_CmdSwitch_Null, 0, "", "", "" }, { LNK_CmdSwitch_NotImplemented, 0, "NOT_IMPLEMENTED", "", "" }, { LNK_CmdSwitch_Align, 0, "ALIGN", ":#", "" }, @@ -123,40 +121,42 @@ global read_only LNK_CmdSwitch g_cmd_switch_map[] = { { LNK_CmdSwitch_NotImplemented, 0, "WX", "", "" }, //- internal switches - { LNK_CmdSwitch_Rad_Age, 0, "RAD_AGE", ":#", "Age embeded in EXE and PDB, used to validate incremental build. Default is 1." }, - { LNK_CmdSwitch_Rad_BuildInfo, 0, "RAD_BUILD_INFO", "", "Print build info and exit." }, - { LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll, 0, "RAD_CHECK_UNUSED_DELAY_LOAD_DLL", "[:NO]", "" }, - { LNK_CmdSwitch_Rad_Map, 0, "RAD_MAP", ":FILENAME", "Emit file with the output image's layout description." }, - { LNK_CmdSwitch_Rad_Debug, 0, "RAD_DEBUG", "[:NO]", "Emit RAD debug info file." }, - { LNK_CmdSwitch_Rad_DebugAltPath, 0, "RAD_DEBUGALTPATH", "", "" }, - { LNK_CmdSwitch_Rad_DebugName, 0, "RAD_DEBUG_NAME", ":FILENAME", "Sets file name for RAD debug info file." }, - { LNK_CmdSwitch_Rad_DelayBind, 0, "RAD_DELAY_BIND", "[:NO]", "" }, - { LNK_CmdSwitch_Rad_DoMerge, 0, "RAD_DO_MERGE", "[:NO]", "" }, - { LNK_CmdSwitch_Rad_EnvLib, 0, "RAD_ENV_LIB", "[:NO]", "" }, - { LNK_CmdSwitch_Rad_Exe, 0, "RAD_EXE", "[:NO]", "" }, - { LNK_CmdSwitch_Rad_Guid, 0, "RAD_GUID", ":{IMAGEBLAKE3|XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX}", "" }, - { LNK_CmdSwitch_Rad_LargePages, 0, "RAD_LARGE_PAGES", "[:NO]", "Disabled by default on Windows." }, - { LNK_CmdSwitch_Rad_LinkVer, 0, "RAD_LINK_VER", ":##,##", "" }, - { LNK_CmdSwitch_Rad_Log, 0, "RAD_LOG", ":{ALL,INPUT_OBJ,INPUT_LIB,IO,LINK_STATS,TIMERS}", "" }, - { LNK_CmdSwitch_Rad_MtPath, 0, "RAD_MT_PATH", ":EXEPATH", "Exe path to manifest tool, default: " LNK_MANIFEST_MERGE_TOOL_NAME }, - { LNK_CmdSwitch_Rad_OsVer, 0, "RAD_OS_VER", ":##,##", "" }, - { LNK_CmdSwitch_Rad_PageSize, 0, "RAD_PAGE_SIZE", ":#", "Must be power of two." }, - { LNK_CmdSwitch_Rad_PathStyle, 0, "RAD_PATH_STYLE", ":{WindowsAbsolute|UnixAbsolute}", "" }, - { LNK_CmdSwitch_Rad_PdbHashTypeNameLength, 0, "RAD_PDB_HASH_TYPE_NAME_LENGTH", ":#", "Number of hash bytes to use to replace type name. Default 8 bytes (Max 16)." }, - { LNK_CmdSwitch_Rad_PdbHashTypeNameMap, 0, "RAD_PDB_HASH_TYPE_NAME_MAP", ":FILENAME", "Produce map file with hash -> type name mappings." }, - { LNK_CmdSwitch_Rad_PdbHashTypeNames, 0, "RAD_PDB_HASH_TYPE_NAMES", ":{NONE|LENIENT|FULL}", "Replace type names in LF_STRUCTURE and LF_CLASS with hashes." }, - { LNK_CmdSwitch_Rad_RemoveSection, 0, "RAD_REMOVE_SECTION", ":NAME", "Removes a section from output image." }, - { LNK_CmdSwitch_Rad_SharedThreadPool, 0, "RAD_SHARED_THREAD_POOL", "[:STRING]", "Default value \"" LNK_DEFAULT_THREAD_POOL_NAME "\"" }, - { LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, 0, "RAD_SHARED_THREAD_POOL_MAX_WORKERS", ":#", "Sets maximum number of workers in a thread pool." }, - { LNK_CmdSwitch_Rad_SuppressError, 0, "RAD_SUPPRESS_ERROR", ":#", "" }, - { LNK_CmdSwitch_Rad_SymbolTableCapDefined, 0, "RAD_SYMBOL_TABLE_CAP_DEFINED", ":#", "Number of buckets allocated in the symbol table for defined symbols." }, - { LNK_CmdSwitch_Rad_SymbolTableCapInternal, 0, "RAD_SYMBOL_TABLE_CAP_INTERNAL", ":#", "Number of buckets allocated in the symbol table for internal symbols." }, - { LNK_CmdSwitch_Rad_SymbolTableCapLib, 0, "RAD_SYMBOL_TABLE_CAP_LIB", ":#", "Number of buckets allocated in the symbol table for library symbols." }, - { LNK_CmdSwitch_Rad_SymbolTableCapWeak, 0, "RAD_SYMBOL_TABLE_CAP_WEAK", ":#", "Number of buckets allocated in the symbol table for weak symbols." }, - { LNK_CmdSwitch_Rad_TargetOs, 0, "RAD_TARGET_OS", ":{WINDOWS,LINUX,MAC}" }, + { LNK_CmdSwitch_Rad_Age, 0, "RAD_AGE", ":#", "Age embeded in EXE and PDB, used to validate incremental build. Default is 1." }, + { LNK_CmdSwitch_Rad_BuildInfo, 0, "RAD_BUILD_INFO", "", "Print build info and exit." }, + { LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll, 0, "RAD_CHECK_UNUSED_DELAY_LOAD_DLL", "[:NO]", "" }, + { LNK_CmdSwitch_Rad_Map, 0, "RAD_MAP", ":FILENAME", "Emit file with the output image's layout description." }, + { LNK_CmdSwitch_Rad_MemoryMapFiles, 0, "RAD_MEMORY_MAP_FILES", "[:NO]", "When enabled, files are memory-mapped instead of being read entirely on request." }, + { LNK_CmdSwitch_Rad_Debug, 0, "RAD_DEBUG", "[:NO]", "Emit RAD debug info file." }, + { LNK_CmdSwitch_Rad_DebugAltPath, 0, "RAD_DEBUGALTPATH", "", "" }, + { LNK_CmdSwitch_Rad_DebugName, 0, "RAD_DEBUG_NAME", ":FILENAME", "Sets file name for RAD debug info file." }, + { LNK_CmdSwitch_Rad_DelayBind, 0, "RAD_DELAY_BIND", "[:NO]", "" }, + { LNK_CmdSwitch_Rad_DoMerge, 0, "RAD_DO_MERGE", "[:NO]", "" }, + { LNK_CmdSwitch_Rad_EnvLib, 0, "RAD_ENV_LIB", "[:NO]", "" }, + { LNK_CmdSwitch_Rad_Exe, 0, "RAD_EXE", "[:NO]", "" }, + { LNK_CmdSwitch_Rad_Guid, 0, "RAD_GUID", ":{IMAGEBLAKE3|XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX}", "" }, + { LNK_CmdSwitch_Rad_LargePages, 0, "RAD_LARGE_PAGES", "[:NO]", "Disabled by default on Windows." }, + { LNK_CmdSwitch_Rad_LinkVer, 0, "RAD_LINK_VER", ":##,##", "" }, + { LNK_CmdSwitch_Rad_Log, 0, "RAD_LOG", ":{ALL,INPUT_OBJ,INPUT_LIB,IO,LINK_STATS,TIMERS}", "" }, + { LNK_CmdSwitch_Rad_MtPath, 0, "RAD_MT_PATH", ":EXEPATH", "Exe path to manifest tool, default: " LNK_MANIFEST_MERGE_TOOL_NAME }, + { LNK_CmdSwitch_Rad_OsVer, 0, "RAD_OS_VER", ":##,##", "" }, + { LNK_CmdSwitch_Rad_PageSize, 0, "RAD_PAGE_SIZE", ":#", "Must be power of two." }, + { LNK_CmdSwitch_Rad_PathStyle, 0, "RAD_PATH_STYLE", ":{WindowsAbsolute|UnixAbsolute}", "" }, + { LNK_CmdSwitch_Rad_PdbHashTypeNameLength, 0, "RAD_PDB_HASH_TYPE_NAME_LENGTH", ":#", "Number of hash bytes to use to replace type name. Default 8 bytes (Max 16)." }, + { LNK_CmdSwitch_Rad_PdbHashTypeNameMap, 0, "RAD_PDB_HASH_TYPE_NAME_MAP", ":FILENAME", "Produce map file with hash -> type name mappings." }, + { LNK_CmdSwitch_Rad_PdbHashTypeNames, 0, "RAD_PDB_HASH_TYPE_NAMES", ":{NONE|LENIENT|FULL}", "Replace type names in LF_STRUCTURE and LF_CLASS with hashes." }, + { LNK_CmdSwitch_Rad_RemoveSection, 0, "RAD_REMOVE_SECTION", ":NAME", "Removes a section from output image." }, + { LNK_CmdSwitch_Rad_SectVirtOff, 0, "RAD_SECT_VIRT_OFF", ":#", "Set RVA where section data is placed in memory. For internal use only." }, + { LNK_CmdSwitch_Rad_SharedThreadPool, 0, "RAD_SHARED_THREAD_POOL", "[:STRING]", "Default value \"" LNK_DEFAULT_THREAD_POOL_NAME "\"" }, + { LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, 0, "RAD_SHARED_THREAD_POOL_MAX_WORKERS", ":#", "Sets maximum number of workers in a thread pool." }, + { LNK_CmdSwitch_Rad_SuppressError, 0, "RAD_SUPPRESS_ERROR", ":#", "" }, + { LNK_CmdSwitch_Rad_SymbolTableCapDefined, 0, "RAD_SYMBOL_TABLE_CAP_DEFINED", ":#", "Number of buckets allocated in the symbol table for defined symbols." }, + { LNK_CmdSwitch_Rad_SymbolTableCapInternal, 0, "RAD_SYMBOL_TABLE_CAP_INTERNAL", ":#", "Number of buckets allocated in the symbol table for internal symbols." }, + { LNK_CmdSwitch_Rad_SymbolTableCapLib, 0, "RAD_SYMBOL_TABLE_CAP_LIB", ":#", "Number of buckets allocated in the symbol table for library symbols." }, + { LNK_CmdSwitch_Rad_SymbolTableCapWeak, 0, "RAD_SYMBOL_TABLE_CAP_WEAK", ":#", "Number of buckets allocated in the symbol table for weak symbols." }, + { LNK_CmdSwitch_Rad_TargetOs, 0, "RAD_TARGET_OS", ":{WINDOWS,LINUX,MAC}" }, { LNK_CmdSwitch_Rad_WriteTempFiles, 0, "RAD_WRITE_TEMP_FILES", "[:NO]", "When speicifed linker writes image and debug info to temporary files and renames after link is done." }, - { LNK_CmdSwitch_Rad_TimeStamp, 0, "RAD_TIME_STAMP", ":#", "Time stamp embeded in EXE and PDB." }, - { LNK_CmdSwitch_Rad_Version, 0, "RAD_VERSION", "", "Print version and exit." }, + { LNK_CmdSwitch_Rad_TimeStamp, 0, "RAD_TIME_STAMP", ":#", "Time stamp embeded in EXE and PDB." }, + { LNK_CmdSwitch_Rad_Version, 0, "RAD_VERSION", "", "Print version and exit." }, { LNK_CmdSwitch_Rad_Workers, 0, "RAD_WORKERS", ":#", "Sets number of workers created in the pool. Number is capped at 1024. When /RAD_SHARED_THREAD_POOL is specified this number cant exceed /RAD_SHARED_THREAD_POOL_MAX_WORKERS." }, { LNK_CmdSwitch_Help, 0, "HELP", "", "" }, @@ -270,8 +270,6 @@ lnk_type_name_hash_mode_from_string(String8 name) return LNK_TypeNameHashMode_Null; } -//////////////////////////////// - internal LNK_CmdOption * lnk_cmd_line_push_option_if_not_presentf(Arena *arena, LNK_CmdLine *cmd_line, LNK_CmdSwitchType cmd_switch_type, char *param_fmt, ...) { @@ -307,8 +305,6 @@ lnk_cmd_line_has_switch(LNK_CmdLine cmd_line, LNK_CmdSwitchType cmd_switch) return lnk_cmd_line_has_option_string(cmd_line, cmd_switch_name); } -//////////////////////////////// - internal void lnk_error_cmd_switch(LNK_ErrorCode code, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, char *fmt, ...) { @@ -362,185 +358,6 @@ lnk_error_invalid_uac_ui_access_param(LNK_ErrorCode error_code, String8 obj_path lnk_error_cmd_switch(error_code, obj_path, lib_path, cmd_switch, "invalid param format, expected \"uiAccess={'true'|'false'}\" but got \"%S\"", input); } -//////////////////////////////// - -internal String8 -lnk_get_image_name(LNK_Config *config) -{ - String8 image_name = config->image_name; - image_name = str8_skip_last_slash(image_name); - image_name = str8_chop_last_dot(image_name); - return image_name; -} - -internal U64 -lnk_get_default_function_pad_min(COFF_MachineType machine) -{ - U64 function_pad_min = 0; - switch (machine) { - case COFF_MachineType_Unknown: break; - case COFF_MachineType_X86: { - function_pad_min = 5; - } break; - case COFF_MachineType_X64: { - function_pad_min = 6; - } break; - default: { - lnk_error_cmd_switch(LNK_Error_Cmdl, - str8_zero(), - str8_zero(), - LNK_CmdSwitch_FunctionPadMin, - "default paramter is not defined for: %S", - coff_string_from_machine_type(machine)); - } break; - } - return function_pad_min; -} - -internal U64 -lnk_get_base_addr(LNK_Config *config) -{ - U64 base_addr = config->user_base_addr; - if (base_addr == 0) { - if (config->file_characteristics & PE_ImageFileCharacteristic_FILE_DLL) { - base_addr = coff_default_dll_base_from_machine(config->machine); - } else if (config->file_characteristics & PE_ImageFileCharacteristic_EXE) { - if ((~config->file_characteristics & PE_ImageFileCharacteristic_LARGE_ADDRESS_AWARE) && config->machine == COFF_MachineType_X64) { - base_addr = coff_default_exe_base_from_machine(COFF_MachineType_X86); - } else { - base_addr = coff_default_exe_base_from_machine(config->machine); - } - } else { - lnk_error(LNK_Error_Cmdl, "image type is not specified."); - } - } - return base_addr; -} - -internal Version -lnk_get_default_subsystem_version(PE_WindowsSubsystem subsystem, COFF_MachineType machine) -{ - Version ver = make_version(0,0); - switch (subsystem) { - case PE_WindowsSubsystem_WINDOWS_BOOT_APPLICATION: ver = make_version(1,0); break; - - case PE_WindowsSubsystem_WINDOWS_CUI: { - switch (machine) { - case COFF_MachineType_X64: - case COFF_MachineType_X86: ver = make_version(6,0); break; - - case COFF_MachineType_ArmNt: - case COFF_MachineType_Arm64: - case COFF_MachineType_Arm: ver = make_version(6,2); break; - - default: lnk_not_implemented("define subsystem(%S) version for %S", pe_string_from_subsystem(subsystem), coff_string_from_machine_type(machine)); break; - } - } break; - - case PE_WindowsSubsystem_WINDOWS_GUI: { - switch (machine) { - case COFF_MachineType_X64: - case COFF_MachineType_X86: ver = make_version(6,0); break; - - case COFF_MachineType_ArmNt: - case COFF_MachineType_Arm64: - case COFF_MachineType_Arm: ver = make_version(6,2); break; - - default: lnk_not_implemented("define subsystem(%S) version for %S", pe_string_from_subsystem(subsystem), coff_string_from_machine_type(machine)); break; - } - } break; - - case PE_WindowsSubsystem_POSIX_CUI: ver = make_version(19,90); break; - - case PE_WindowsSubsystem_EFI_APPLICATION: - case PE_WindowsSubsystem_EFI_BOOT_SERVICE_DRIVER: - case PE_WindowsSubsystem_EFI_ROM: - case PE_WindowsSubsystem_EFI_RUNTIME_DRIVER: ver = make_version(1,0); break; - - case PE_WindowsSubsystem_NATIVE_WINDOWS: - case PE_WindowsSubsystem_NATIVE: lnk_not_implemented("detect -drive=WDM switch"); break; - - default: lnk_not_implemented("unknown subsystem kind %u", subsystem); break; - } - return ver; -} - -internal Version -lnk_get_min_subsystem_version(PE_WindowsSubsystem subsystem, COFF_MachineType machine) -{ - Version ver = make_version(0,0); - switch (subsystem) { - case PE_WindowsSubsystem_WINDOWS_BOOT_APPLICATION: ver = make_version(1,0); break; - - case PE_WindowsSubsystem_WINDOWS_CUI: { - switch (machine) { - case COFF_MachineType_X86: ver = make_version(5,1); break; - - case COFF_MachineType_X64: ver = make_version(5,2); break; - - case COFF_MachineType_ArmNt: - case COFF_MachineType_Arm64: - case COFF_MachineType_Arm: ver = make_version(6,2); break; - - default: lnk_not_implemented("define min subsystem(%S) version for %S", pe_string_from_subsystem(subsystem), coff_string_from_machine_type(machine)); break; - } - } break; - - case PE_WindowsSubsystem_WINDOWS_GUI: { - switch (machine) { - case COFF_MachineType_X86: ver = make_version(5,1); break; - - case COFF_MachineType_X64: ver = make_version(5,2); break; - - case COFF_MachineType_ArmNt: - case COFF_MachineType_Arm64: - case COFF_MachineType_Arm: ver = make_version(6,2); break; - - default: lnk_not_implemented("define min subsystem(%S) version for %S", pe_string_from_subsystem(subsystem), coff_string_from_machine_type(machine)); break; - } - } break; - - case PE_WindowsSubsystem_POSIX_CUI: ver = make_version(1,0); break; - - case PE_WindowsSubsystem_EFI_APPLICATION: - case PE_WindowsSubsystem_EFI_BOOT_SERVICE_DRIVER: - case PE_WindowsSubsystem_EFI_ROM: - case PE_WindowsSubsystem_EFI_RUNTIME_DRIVER: ver = make_version(1,0); break; - - case PE_WindowsSubsystem_NATIVE_WINDOWS: - case PE_WindowsSubsystem_NATIVE: lnk_not_implemented("detect -drive=WDM switch"); break; - - default: lnk_not_implemented("unknown subsystem kind %u", subsystem); - } - return ver; -} - -internal B32 -lnk_do_debug_info(LNK_Config *config) -{ - B32 do_debug_info = config->rad_debug == LNK_SwitchState_Yes || - (config->debug_mode != LNK_DebugMode_None && config->debug_mode != LNK_DebugMode_Null); - return do_debug_info; -} - -internal B32 -lnk_is_thread_pool_shared(LNK_Config *config) -{ - return config->shared_thread_pool_name.size > 0; -} - -internal B32 -lnk_is_section_removed(LNK_Config *config, String8 section_name) -{ - B32 is_removed = 0; - for (String8Node *name_n = config->remove_sections.first; name_n != 0 && !is_removed; name_n = name_n->next) { - is_removed = str8_match(section_name, name_n->string, 0); - } - return is_removed; -} - -//////////////////////////////// - internal B32 lnk_cmd_switch_parse_version(String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, Version *ver_out) { @@ -784,8 +601,6 @@ lnk_cmd_switch_parse_string_copy(Arena *arena, String8 obj_path, String8 lib_pat } } -//////////////////////////////// - internal B32 lnk_parse_alt_name_directive(String8 input, LNK_AltName *alt_out) { @@ -947,7 +762,180 @@ lnk_parse_merge_directive(String8 string, LNK_MergeDirective *out) return is_parse_ok; } -//////////////////////////////// +internal String8 +lnk_get_image_name(LNK_Config *config) +{ + String8 image_name = config->image_name; + image_name = str8_skip_last_slash(image_name); + image_name = str8_chop_last_dot(image_name); + return image_name; +} + +internal U64 +lnk_get_default_function_pad_min(COFF_MachineType machine) +{ + U64 function_pad_min = 0; + switch (machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X86: { + function_pad_min = 5; + } break; + case COFF_MachineType_X64: { + function_pad_min = 6; + } break; + default: { + lnk_error_cmd_switch(LNK_Error_Cmdl, + str8_zero(), + str8_zero(), + LNK_CmdSwitch_FunctionPadMin, + "default paramter is not defined for: %S", + coff_string_from_machine_type(machine)); + } break; + } + return function_pad_min; +} + +internal U64 +lnk_get_base_addr(LNK_Config *config) +{ + U64 base_addr = config->user_base_addr; + if (base_addr == 0) { + if (config->file_characteristics & PE_ImageFileCharacteristic_FILE_DLL) { + base_addr = coff_default_dll_base_from_machine(config->machine); + } else if (config->file_characteristics & PE_ImageFileCharacteristic_EXE) { + if ((~config->file_characteristics & PE_ImageFileCharacteristic_LARGE_ADDRESS_AWARE) && config->machine == COFF_MachineType_X64) { + base_addr = coff_default_exe_base_from_machine(COFF_MachineType_X86); + } else { + base_addr = coff_default_exe_base_from_machine(config->machine); + } + } else { + lnk_error(LNK_Error_Cmdl, "image type is not specified."); + } + } + return base_addr; +} + +internal Version +lnk_get_default_subsystem_version(PE_WindowsSubsystem subsystem, COFF_MachineType machine) +{ + Version ver = make_version(0,0); + switch (subsystem) { + case PE_WindowsSubsystem_WINDOWS_BOOT_APPLICATION: ver = make_version(1,0); break; + + case PE_WindowsSubsystem_WINDOWS_CUI: { + switch (machine) { + case COFF_MachineType_X64: + case COFF_MachineType_X86: ver = make_version(6,0); break; + + case COFF_MachineType_ArmNt: + case COFF_MachineType_Arm64: + case COFF_MachineType_Arm: ver = make_version(6,2); break; + + default: lnk_not_implemented("define subsystem(%S) version for %S", pe_string_from_subsystem(subsystem), coff_string_from_machine_type(machine)); break; + } + } break; + + case PE_WindowsSubsystem_WINDOWS_GUI: { + switch (machine) { + case COFF_MachineType_X64: + case COFF_MachineType_X86: ver = make_version(6,0); break; + + case COFF_MachineType_ArmNt: + case COFF_MachineType_Arm64: + case COFF_MachineType_Arm: ver = make_version(6,2); break; + + default: lnk_not_implemented("define subsystem(%S) version for %S", pe_string_from_subsystem(subsystem), coff_string_from_machine_type(machine)); break; + } + } break; + + case PE_WindowsSubsystem_POSIX_CUI: ver = make_version(19,90); break; + + case PE_WindowsSubsystem_EFI_APPLICATION: + case PE_WindowsSubsystem_EFI_BOOT_SERVICE_DRIVER: + case PE_WindowsSubsystem_EFI_ROM: + case PE_WindowsSubsystem_EFI_RUNTIME_DRIVER: ver = make_version(1,0); break; + + case PE_WindowsSubsystem_NATIVE_WINDOWS: + case PE_WindowsSubsystem_NATIVE: lnk_not_implemented("detect -drive=WDM switch"); break; + + default: lnk_not_implemented("unknown subsystem kind %u", subsystem); break; + } + return ver; +} + +internal Version +lnk_get_min_subsystem_version(PE_WindowsSubsystem subsystem, COFF_MachineType machine) +{ + Version ver = make_version(0,0); + switch (subsystem) { + case PE_WindowsSubsystem_WINDOWS_BOOT_APPLICATION: ver = make_version(1,0); break; + + case PE_WindowsSubsystem_WINDOWS_CUI: { + switch (machine) { + case COFF_MachineType_X86: ver = make_version(5,1); break; + + case COFF_MachineType_X64: ver = make_version(5,2); break; + + case COFF_MachineType_ArmNt: + case COFF_MachineType_Arm64: + case COFF_MachineType_Arm: ver = make_version(6,2); break; + + default: lnk_not_implemented("define min subsystem(%S) version for %S", pe_string_from_subsystem(subsystem), coff_string_from_machine_type(machine)); break; + } + } break; + + case PE_WindowsSubsystem_WINDOWS_GUI: { + switch (machine) { + case COFF_MachineType_X86: ver = make_version(5,1); break; + + case COFF_MachineType_X64: ver = make_version(5,2); break; + + case COFF_MachineType_ArmNt: + case COFF_MachineType_Arm64: + case COFF_MachineType_Arm: ver = make_version(6,2); break; + + default: lnk_not_implemented("define min subsystem(%S) version for %S", pe_string_from_subsystem(subsystem), coff_string_from_machine_type(machine)); break; + } + } break; + + case PE_WindowsSubsystem_POSIX_CUI: ver = make_version(1,0); break; + + case PE_WindowsSubsystem_EFI_APPLICATION: + case PE_WindowsSubsystem_EFI_BOOT_SERVICE_DRIVER: + case PE_WindowsSubsystem_EFI_ROM: + case PE_WindowsSubsystem_EFI_RUNTIME_DRIVER: ver = make_version(1,0); break; + + case PE_WindowsSubsystem_NATIVE_WINDOWS: + case PE_WindowsSubsystem_NATIVE: lnk_not_implemented("detect -drive=WDM switch"); break; + + default: lnk_not_implemented("unknown subsystem kind %u", subsystem); + } + return ver; +} + +internal B32 +lnk_do_debug_info(LNK_Config *config) +{ + B32 do_debug_info = config->rad_debug == LNK_SwitchState_Yes || + (config->debug_mode != LNK_DebugMode_None && config->debug_mode != LNK_DebugMode_Null); + return do_debug_info; +} + +internal B32 +lnk_is_thread_pool_shared(LNK_Config *config) +{ + return config->shared_thread_pool_name.size > 0; +} + +internal B32 +lnk_is_section_removed(LNK_Config *config, String8 section_name) +{ + B32 is_removed = 0; + for (String8Node *name_n = config->remove_sections.first; name_n != 0 && !is_removed; name_n = name_n->next) { + is_removed = str8_match(section_name, name_n->string, 0); + } + return is_removed; +} internal void lnk_print_build_info() @@ -999,8 +987,6 @@ lnk_print_help(void) scratch_end(scratch); } -//////////////////////////////// - internal String8 lnk_expand_env_vars_windows(Arena *arena, HashTable *env_vars, String8 string) { @@ -1034,6 +1020,46 @@ lnk_expand_env_vars_windows(Arena *arena, HashTable *env_vars, String8 string) return result; } +internal String8List +lnk_unwrap_rsp(Arena *arena, String8List arg_list) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8List result = {0}; + + for (String8Node *curr = arg_list.first; curr != 0; curr = curr->next) { + B32 is_rsp = str8_match_lit("@", curr->string, StringMatchFlag_RightSideSloppy); + if (is_rsp) { + // remove "@" + String8 name = str8_skip(curr->string, 1); + + if (os_file_path_exists(name)) { + // read rsp from disk + String8 file = lnk_read_data_from_file_path(scratch.arena, 0, name); + + // parse rsp + String8List rsp_args = lnk_arg_list_parse_windows_rules(scratch.arena, file); + + // handle case where rsp references another rsp + String8List list = lnk_unwrap_rsp(arena, rsp_args); + + // push arguments from rsp + list = str8_list_copy(arena, &list); + str8_list_concat_in_place(&result, &list); + } else { + lnk_error(LNK_Error_Cmdl, "unable to find rsp: %S", name); + } + } else { + // push regular argument + String8 str = push_str8_copy(arena, curr->string); + str8_list_push(arena, &result, str); + } + } + + scratch_end(scratch); + return result; +} + internal void lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_name, String8List value_strings, String8 obj_path, String8 lib_path) { @@ -1634,9 +1660,14 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam config->rad_chunk_map = LNK_SwitchState_Yes; } break; + case LNK_CmdSwitch_Rad_MemoryMapFiles: { + lnk_cmd_switch_set_flag_32(obj_path, lib_path, cmd_switch, value_strings, &config->io_flags, LNK_IO_Flags_MemoryMapFiles); + } break; + case LNK_CmdSwitch_Rad_Debug: { lnk_cmd_switch_parse_flag(obj_path, lib_path, cmd_switch, value_strings, &config->rad_debug); } break; + case LNK_CmdSwitch_Rad_DebugName: { // :Rad_DebugAltPath lnk_cmd_switch_parse_string_copy(arena, obj_path, lib_path, cmd_switch, value_strings, &config->rad_debug_name); @@ -1797,6 +1828,17 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } } break; + case LNK_CmdSwitch_Rad_SectVirtOff: { + U64 sect_virt_off; + if (lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, §_virt_off, LNK_ParseU64Flag_CheckUnder32bit)) { + if (sect_virt_off >= 0x1000) { + config->section_virt_off = sect_virt_off; + } else { + lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "section virtual offset must be >= 0x1000"); + } + } + } break; + case LNK_CmdSwitch_Rad_SharedThreadPool: { if (value_strings.node_count == 0) { config->shared_thread_pool_name = str8_lit(LNK_DEFAULT_THREAD_POOL_NAME); @@ -1892,46 +1934,6 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam scratch_end(scratch); } -internal String8List -lnk_unwrap_rsp(Arena *arena, String8List arg_list) -{ - Temp scratch = scratch_begin(&arena, 1); - - String8List result = {0}; - - for (String8Node *curr = arg_list.first; curr != 0; curr = curr->next) { - B32 is_rsp = str8_match_lit("@", curr->string, StringMatchFlag_RightSideSloppy); - if (is_rsp) { - // remove "@" - String8 name = str8_skip(curr->string, 1); - - if (os_file_path_exists(name)) { - // read rsp from disk - String8 file = lnk_read_data_from_file_path(scratch.arena, name); - - // parse rsp - String8List rsp_args = lnk_arg_list_parse_windows_rules(scratch.arena, file); - - // handle case where rsp references another rsp - String8List list = lnk_unwrap_rsp(arena, rsp_args); - - // push arguments from rsp - list = str8_list_copy(arena, &list); - str8_list_concat_in_place(&result, &list); - } else { - lnk_error(LNK_Error_Cmdl, "unable to find rsp: %S", name); - } - } else { - // push regular argument - String8 str = push_str8_copy(arena, curr->string); - str8_list_push(arena, &result, str); - } - } - - scratch_end(scratch); - return result; -} - internal LNK_Config * lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line, LNK_CmdLine cmd_line) { diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index 1567607b..5411058a 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -3,6 +3,29 @@ #pragma once +#if OS_WINDOWS +# define LNK_MANIFEST_MERGE_TOOL_NAME "mt.exe" +#elif OS_LINUX || OS_MAC +# define LNK_MANIFEST_MERGE_TOOL_NAME "llvm-mt" +#else +# error +#endif + +#define LNK_DEFAULT_THREAD_POOL_NAME "RADLINK_THREAD_POOL" + +typedef enum +{ + LNK_ParseU64Flag_CheckUnder32bit = (1 << 0), + LNK_ParseU64Flag_CheckPow2 = (1 << 1), +} LNK_ParseU64Flags; + +typedef enum +{ + LNK_SwitchState_Null, + LNK_SwitchState_No, + LNK_SwitchState_Yes +} LNK_SwitchState; + typedef enum { LNK_CmdSwitch_Null, @@ -128,7 +151,6 @@ typedef enum LNK_CmdSwitch_Rad_Age, LNK_CmdSwitch_Rad_BuildInfo, LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll, - LNK_CmdSwitch_Rad_Map, LNK_CmdSwitch_Rad_Debug, LNK_CmdSwitch_Rad_DebugAltPath, LNK_CmdSwitch_Rad_DebugName, @@ -141,6 +163,8 @@ typedef enum LNK_CmdSwitch_Rad_LinkVer, LNK_CmdSwitch_Rad_Log, LNK_CmdSwitch_Rad_Logo, + LNK_CmdSwitch_Rad_Map, + LNK_CmdSwitch_Rad_MemoryMapFiles, LNK_CmdSwitch_Rad_MtPath, LNK_CmdSwitch_Rad_OsVer, LNK_CmdSwitch_Rad_PageSize, @@ -177,13 +201,6 @@ typedef struct LNK_CmdSwitch char *desc; } LNK_CmdSwitch; -typedef enum -{ - LNK_SwitchState_Null, - LNK_SwitchState_No, - LNK_SwitchState_Yes -} LNK_SwitchState; - typedef enum { LNK_Input_Null, @@ -285,16 +302,6 @@ typedef enum LNK_TypeNameHashMode_Full, } LNK_TypeNameHashMode; -#if OS_WINDOWS -# define LNK_MANIFEST_MERGE_TOOL_NAME "mt.exe" -#elif OS_LINUX || OS_MAC -# define LNK_MANIFEST_MERGE_TOOL_NAME "llvm-mt" -#else -# error -#endif - -#define LNK_DEFAULT_THREAD_POOL_NAME "RADLINK_THREAD_POOL" - typedef struct LNK_Config { LNK_ConfigFlags flags; @@ -383,15 +390,10 @@ typedef struct LNK_Config String8 temp_rad_debug_name; String8 temp_rad_chunk_map_name; String8List remove_sections; + LNK_IO_Flags io_flags; } LNK_Config; -typedef enum -{ - LNK_ParseU64Flag_CheckUnder32bit = (1 << 0), - LNK_ParseU64Flag_CheckPow2 = (1 << 1), -} LNK_ParseU64Flags; - -//////////////////////////////// +// --- MSVC Error Codes -------------------------------------------------------- typedef enum { @@ -518,8 +520,7 @@ typedef enum LNK_MsWarningCode_Lnk4286 = 4286, } LNK_MsErrorCode; -//////////////////////////////// -// Enum <-> String +// --- Enum <-> String --------------------------------------------------------- internal String8 lnk_string_cmd_switch_type(LNK_CmdSwitchType type); internal LNK_CmdSwitchType lnk_cmd_switch_type_from_string(String8 string); @@ -528,36 +529,20 @@ internal LNK_InputType lnk_input_type_from_string(String8 string); internal LNK_DebugMode lnk_debug_mode_from_string(String8 string); internal LNK_TypeNameHashMode lnk_type_name_hash_mode_from_string(String8 string); -//////////////////////////////// -// Command Line Helpers +// --- Command Line Helpers ---------------------------------------------------- internal LNK_CmdOption * lnk_cmd_line_push_option_if_not_presentf(Arena *arena, LNK_CmdLine *cmd_line, LNK_CmdSwitchType cmd_switch_type, char *param_fmt, ...); internal LNK_CmdOption * lnk_cmd_line_push_optionf (Arena *arena, LNK_CmdLine *cmd_line, LNK_CmdSwitchType cmd_switch_type, char *param_fmt, ...); -internal B32 lnk_cmd_line_has_switch(LNK_CmdLine cmd_line, LNK_CmdSwitchType cmd_switch_type); -//////////////////////////////// -// Errors +internal B32 lnk_cmd_line_has_switch(LNK_CmdLine cmd_line, LNK_CmdSwitchType cmd_switch_type); + +// --- Errors ------------------------------------------------------------------ internal void lnk_error_cmd_switch (LNK_ErrorCode code, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, char *fmt, ...); internal void lnk_error_cmd_switch_invalid_param_count(LNK_ErrorCode code, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch); internal void lnk_error_cmd_switch_invalid_param (LNK_ErrorCode code, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8 param); -//////////////////////////////// -// Getters - -internal String8 lnk_get_image_name(LNK_Config *config); -internal U64 lnk_get_default_function_pad_min(COFF_MachineType machine); -internal U64 lnk_get_base_addr(LNK_Config *config); -internal Version lnk_get_default_subsystem_version(PE_WindowsSubsystem subsystem, COFF_MachineType machine); -internal Version lnk_get_min_subsystem_version(PE_WindowsSubsystem subsystem, COFF_MachineType machine); - -internal B32 lnk_do_debug_info (LNK_Config *config); -internal B32 lnk_is_thread_pool_shared(LNK_Config *config); - -internal B32 lnk_is_section_removed(LNK_Config *config, String8 section_name); - -//////////////////////////////// -// Specialized Parsers +// --- Specialized Parsers ------------------------------------------------------ internal B32 lnk_cmd_switch_parse_version (String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, Version *ver_out); internal B32 lnk_cmd_switch_parse_tuple (String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, Rng1U64 *tuple_out); @@ -572,17 +557,28 @@ internal void lnk_cmd_switch_set_flag_64 (String8 obj_path, String8 lib_path, internal B32 lnk_cmd_switch_parse_string (String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, String8 *string_out); internal void lnk_cmd_switch_parse_string_copy(Arena *arena, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, String8 *string_out); -//////////////////////////////// - internal B32 lnk_parse_alt_name_directive(String8 input, LNK_AltName *alt_out); internal B32 lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_path, String8 lib_path, PE_ExportParse *export_out); internal B32 lnk_parse_export_directive(Arena *arena, String8 directive, String8 obj_path, String8 lib_path, PE_ExportParse *export_out); - internal LNK_MergeDirectiveNode * lnk_merge_directive_list_push(Arena *arena, LNK_MergeDirectiveList *list, LNK_MergeDirective data); - internal B32 lnk_parse_merge_directive(String8 string, LNK_MergeDirective *parse_out); -//////////////////////////////// +// --- Getters ----------------------------------------------------------------- + +internal String8 lnk_get_image_name(LNK_Config *config); +internal U64 lnk_get_default_function_pad_min(COFF_MachineType machine); +internal U64 lnk_get_base_addr(LNK_Config *config); +internal Version lnk_get_default_subsystem_version(PE_WindowsSubsystem subsystem, COFF_MachineType machine); +internal Version lnk_get_min_subsystem_version(PE_WindowsSubsystem subsystem, COFF_MachineType machine); + +internal B32 lnk_do_debug_info (LNK_Config *config); +internal B32 lnk_is_thread_pool_shared(LNK_Config *config); + +internal B32 lnk_is_section_removed(LNK_Config *config, String8 section_name); + +// --- Config ------------------------------------------------------------------ internal void lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 name, String8List value_list, String8 obj_path, String8 lib_path); +internal LNK_Config * lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line, LNK_CmdLine cmd_line); + diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index 031e9a8a..ec930b22 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -360,7 +360,7 @@ lnk_merge_debug_t_and_debug_p(Arena *arena, U64 obj_count, CV_DebugT *debug_t_ar } internal LNK_CodeViewInput -lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, String8List lib_dir_list, U64 obj_count, LNK_Obj **obj_arr) +lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, LNK_IO_Flags io_flags, String8List lib_dir_list, U64 obj_count, LNK_Obj **obj_arr) { ProfBegin("Extract CodeView"); Temp scratch = scratch_begin(0,0); @@ -675,7 +675,7 @@ lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, String8List lib_dir // read type servers from disk in parallel { ProfBegin("Read External Type Servers"); - String8Array msf_data_arr = lnk_read_data_from_file_path_parallel(tp, scratch.arena, ts_path_arr); + String8Array msf_data_arr = lnk_read_data_from_file_path_parallel(tp, scratch.arena, 0, ts_path_arr); ProfEnd(); MSF_Parsed **msf_parse_arr = lnk_msf_parsed_from_data_parallel(tp_arena, tp, msf_data_arr); @@ -3315,7 +3315,7 @@ lnk_build_pdb(TP_Context *tp, ProfBegin("Build NatVis"); { String8Array natvis_file_path_arr = str8_array_from_list(scratch.arena, &config->natvis_list); - String8Array natvis_file_data_arr = lnk_read_data_from_file_path_parallel(tp, scratch.arena, natvis_file_path_arr); + String8Array natvis_file_data_arr = lnk_read_data_from_file_path_parallel(tp, scratch.arena, config->io_flags, natvis_file_path_arr); for (U64 i = 0; i < natvis_file_data_arr.count; ++i) { String8 natvis_file_path = natvis_file_path_arr.v[i]; diff --git a/src/linker/lnk_debug_info.h b/src/linker/lnk_debug_info.h index 4ed75c34..43e208be 100644 --- a/src/linker/lnk_debug_info.h +++ b/src/linker/lnk_debug_info.h @@ -500,7 +500,7 @@ internal CV_DebugT * lnk_parse_debug_t_sections(TP_Context *tp, TP_Arena * internal CV_SymbolList * lnk_cv_symbol_list_arr_from_debug_s_arr(TP_Context *tp, TP_Arena *arena, U64 obj_count, CV_DebugS *debug_s_arr); internal LNK_PchInfo * lnk_setup_pch(Arena *arena, U64 obj_count, LNK_Obj *obj_arr, CV_DebugT *debug_t_arr, CV_DebugT *debug_p_arr, CV_SymbolListArray *parsed_symbols); -internal LNK_CodeViewInput lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, String8List lib_dir_list, U64 objs_count, LNK_Obj **objs); +internal LNK_CodeViewInput lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, LNK_IO_Flags io_flags, String8List lib_dir_list, U64 objs_count, LNK_Obj **objs); internal LNK_LeafRef lnk_leaf_ref(U32 idx, U32 leaf_idx); internal LNK_LeafRef lnk_obj_leaf_ref(U32 obj_idx, U32 leaf_idx); diff --git a/src/linker/lnk_io.c b/src/linker/lnk_io.c index 6b9aee8d..bb67b134 100644 --- a/src/linker/lnk_io.c +++ b/src/linker/lnk_io.c @@ -172,31 +172,13 @@ lnk_log_read(String8 path, U64 size) } internal String8 -lnk_read_data_from_file_path(Arena *arena, String8 path) +lnk_read_data_from_file_path(Arena *arena, LNK_IO_Flags io_flags, String8 path) { - String8 data = str8_zero(); - OS_Handle handle = {0}; - int is_open = lnk_open_file_read((char*)path.str, path.size, &handle, sizeof(handle)); - if (is_open) { - U64 buffer_size = lnk_size_from_file(&handle); - U8 *buffer = push_array_no_zero(arena, U8, buffer_size); - U64 read_size = lnk_read_file(&handle, buffer, buffer_size); - - data = str8(buffer, read_size); - - lnk_close_file(&handle); - - if (read_size != buffer_size) { - lnk_error(LNK_Warning_IllData, "incomplete file read occurred, read %u bytes, expected %u bytes, file %S", path); - } - - if (lnk_get_log_status(LNK_Log_IO_Read)) { - lnk_log_read(path, data.size); - } - } else { - lnk_error(LNK_Error_FileNotFound, "unable to open file %S", path); - } - return data; + Temp scratch = scratch_begin(&arena, 1); + TP_Context *single_thread_ctx = tp_alloc(scratch.arena, 1, 1, str8_zero()); + String8Array data_arr = lnk_read_data_from_file_path_parallel(single_thread_ctx, arena, io_flags, (String8Array){ .count = 1, .v = &path }); + scratch_end(scratch); + return data_arr.v[0]; } internal @@ -232,33 +214,72 @@ THREAD_POOL_TASK_FUNC(lnk_data_from_file_path_task) task->data_arr.v[task_id] = str8(buffer, read_size); } -internal String8Array -lnk_read_data_from_file_path_parallel(TP_Context *tp, Arena *arena, String8Array path_arr) +internal +THREAD_POOL_TASK_FUNC(lnk_memory_map_file_task) { - Temp scratch = scratch_begin(&arena,1); + LNK_DiskReader *task = raw_task; +#if _WIN32 + Temp scratch = scratch_begin(&arena, 1); + String16 path16 = str16_from_8(scratch.arena, task->path_arr.v[task_id]); + HANDLE file_handle = CreateFileW(path16.str, GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + if (file_handle != INVALID_HANDLE_VALUE) { + HANDLE mapping_handle = CreateFileMappingA(file_handle, 0, PAGE_WRITECOPY, 0, 0, 0); + if (mapping_handle != INVALID_HANDLE_VALUE) { + LARGE_INTEGER file_size = {0}; + GetFileSizeEx(file_handle, &file_size); + void *file_data = MapViewOfFile(mapping_handle, FILE_MAP_COPY, 0, 0, file_size.QuadPart); + if (file_data) { + task->data_arr.v[task_id] = str8(file_data, file_size.QuadPart); + } + CloseHandle(mapping_handle); + } + CloseHandle(file_handle); + } + scratch_end(scratch); +#else +# error "memory mapping files is not supported on this platform" +#endif +} +internal String8Array +lnk_read_data_from_file_path_parallel(TP_Context *tp, Arena *arena, LNK_IO_Flags io_flags, String8Array path_arr) +{ LNK_DiskReader reader = {0}; - reader.path_arr = path_arr; - reader.handle_arr = push_array_no_zero(scratch.arena, OS_Handle, path_arr.count); - reader.size_arr = push_array_no_zero(scratch.arena, U64, path_arr.count); - // open handles and get sizes - tp_for_parallel(tp, 0, path_arr.count, lnk_data_size_from_file_path_task, &reader); + if (io_flags & LNK_IO_Flags_MemoryMapFiles) { + reader.io_flags = io_flags; + reader.path_arr = path_arr; + reader.data_arr.count = path_arr.count; + reader.data_arr.v = push_array(arena, String8, path_arr.count); + tp_for_parallel(tp, 0, path_arr.count, lnk_memory_map_file_task, &reader); + } else { + Temp scratch = scratch_begin(&arena,1); - // compute file buffer size - U64 total_data_size = sum_array_u64(path_arr.count, reader.size_arr); + reader.path_arr = path_arr; + reader.handle_arr = push_array_no_zero(scratch.arena, OS_Handle, path_arr.count); + reader.size_arr = push_array_no_zero(scratch.arena, U64, path_arr.count); - // assign offsets into file buffer - U64 *off_arr = push_array_no_zero(scratch.arena, U64, path_arr.count); - MemoryCopyTyped(off_arr, reader.size_arr, path_arr.count); - counts_to_offsets_array_u64(path_arr.count, off_arr); + // open handles and get sizes + tp_for_parallel(tp, 0, path_arr.count, lnk_data_size_from_file_path_task, &reader); - reader.data_arr = str8_array_reserve(arena, path_arr.count); - reader.off_arr = off_arr; - reader.buffer = push_array_no_zero(arena, U8, total_data_size); + // compute file buffer size + U64 total_data_size = sum_array_u64(path_arr.count, reader.size_arr); - // read files and close handles - tp_for_parallel(tp, 0, path_arr.count, lnk_data_from_file_path_task, &reader); + // assign offsets into file buffer + U64 *off_arr = push_array_no_zero(scratch.arena, U64, path_arr.count); + MemoryCopyTyped(off_arr, reader.size_arr, path_arr.count); + counts_to_offsets_array_u64(path_arr.count, off_arr); + + reader.io_flags = io_flags; + reader.data_arr = str8_array_reserve(arena, path_arr.count); + reader.off_arr = off_arr; + reader.buffer = push_array_no_zero(arena, U8, total_data_size); + + // read files and close handles + tp_for_parallel(tp, 0, path_arr.count, lnk_data_from_file_path_task, &reader); + + scratch_end(scratch); + } String8Array result = {0}; result.count = path_arr.count; @@ -270,7 +291,6 @@ lnk_read_data_from_file_path_parallel(TP_Context *tp, Arena *arena, String8Array } } - scratch_end(scratch); return result; } diff --git a/src/linker/lnk_io.h b/src/linker/lnk_io.h index 13b0d777..9ff2a085 100644 --- a/src/linker/lnk_io.h +++ b/src/linker/lnk_io.h @@ -2,8 +2,17 @@ //////////////////////////////// +typedef U32 LNK_IO_Flags; +enum +{ + LNK_IO_Flags_MemoryMapFiles = (1 << 0), +}; + +//////////////////////////////// + typedef struct { + LNK_IO_Flags io_flags; String8Array path_arr; String8Array data_arr; OS_Handle *handle_arr; @@ -30,10 +39,9 @@ internal OS_Handle lnk_file_open_with_rename_permissions(String8 path); internal B32 lnk_file_set_delete_on_close(OS_Handle handle, B32 delete_file); internal B32 lnk_file_rename(OS_Handle handle, String8 new_name); -internal String8 lnk_read_data_from_file_path(Arena *arena, String8 path); -internal String8Array lnk_read_data_from_file_path_parallel(TP_Context *tp, Arena *arena, String8Array path_arr); +internal String8 lnk_read_data_from_file_path(Arena *arena, LNK_IO_Flags io_flags, String8 path); +internal String8Array lnk_read_data_from_file_path_parallel(TP_Context *tp, Arena *arena, LNK_IO_Flags io_flags, String8Array path_arr); internal void lnk_write_data_list_to_file_path(String8 path, String8 temp_path, String8List list); internal void lnk_write_data_to_file_path(String8 path, String8 temp_path, String8 data); - From 0aadf60359d4e69f14dc27e30e3eb0c4ff383d18 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 19 Jun 2025 15:26:40 -0700 Subject: [PATCH 232/372] update code block dividers --- src/linker/lnk.c | 27 +++-------- src/linker/lnk_debug_info.c | 16 ------ src/linker/lnk_debug_info.h | 27 +++++------ src/linker/lnk_io.c | 18 +++---- src/linker/lnk_io.h | 9 +--- src/linker/lnk_lib.h | 4 -- src/linker/lnk_symbol_table.c | 91 ++++++++++++++++------------------- src/linker/lnk_symbol_table.h | 35 +++++--------- 8 files changed, 79 insertions(+), 148 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index bc70f354..aa95ce58 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1,18 +1,16 @@ // Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -//////////////////////////////// -// Build Options +// --- Build Options ----------------------------------------------------------- #define BUILD_CONSOLE_INTERFACE 1 #define BUILD_TITLE "Epic Games Tools (R) RAD PE/COFF Linker" -//////////////////////////////// +// --- Arena ------------------------------------------------------------------- #define ARENA_FREE_LIST 1 -//////////////////////////////// -// Third Party +// --- Third Party ------------------------------------------------------------- #include "base_ext/base_blake3.h" #include "base_ext/base_blake3.c" @@ -22,8 +20,7 @@ #include "third_party/xxHash/xxhash.h" #include "third_party/radsort/radsort.h" -//////////////////////////////// -// Code Base +// --- Code Base --------------------------------------------------------------- #if defined(__clang__) # pragma clang diagnostic push @@ -78,8 +75,7 @@ # pragma clang diagnostic pop #endif -//////////////////////////////// -// RDI +// --- RDI --------------------------------------------------------------------- #include "rdi/rdi_overrides.h" #include "lib_rdi_format/rdi_format.h" @@ -87,8 +83,7 @@ #include "lib_rdi_format/rdi_format.c" #include "rdi/rdi.c" -//////////////////////////////// -// Code Base Extensions +// --- Code Base Extensions ---------------------------------------------------- #include "base_ext/base_inc.h" #include "thread_pool/thread_pool.h" @@ -106,8 +101,7 @@ #include "pdb_ext/pdb_helpers.c" #include "pdb_ext/pdb_builder.c" -//////////////////////////////// -// RDI Builder +// --- RDI Builder ------------------------------------------------------------- #include "rdi/rdi_builder.h" #include "rdi/rdi_coff.h" @@ -117,8 +111,7 @@ #include "rdi/rdi_coff.c" #include "rdi/rdi_cv.c" -//////////////////////////////// -// Linker +// --- Linker ------------------------------------------------------------------ #include "lnk_error.h" #include "lnk_log.h" @@ -149,12 +142,8 @@ #include "lnk_lib.c" #include "lnk_debug_info.c" -//////////////////////////////// - global read_only LNK_SectionContrib g_null_sc; -//////////////////////////////// - internal LNK_Config * lnk_config_from_argcv(Arena *arena, int argc, char **argv) { diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index ec930b22..f19dff44 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -1,8 +1,6 @@ // Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -//////////////////////////////// - internal THREAD_POOL_TASK_FUNC(lnk_parse_debug_s_task) { @@ -802,10 +800,6 @@ lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, LNK_IO_Flags io_fla return cv; } -//////////////////////////////// -// Leaf Deduper - - internal LNK_LeafRef lnk_leaf_ref(U32 enc_loc_idx, U32 enc_leaf_idx) { @@ -1451,8 +1445,6 @@ lnk_leaf_hash_table_search(LNK_LeafHashTable *ht, LNK_CodeViewInput *input, LNK_ return match; } -//////////////////////////////// - internal THREAD_POOL_TASK_FUNC(lnk_count_per_source_leaf_task) { @@ -2674,9 +2666,6 @@ lnk_replace_type_names_with_hashes(TP_Context *tp, TP_Arena *arena, CV_DebugT de ProfEnd(); } -//////////////////////////////// -// PDB Builder - internal THREAD_POOL_TASK_FUNC(lnk_filter_out_gsi_symbols_task) { @@ -3034,8 +3023,6 @@ THREAD_POOL_TASK_FUNC(lnk_push_dbi_sec_contrib_task) } } -//////////////////////////////// - internal THREAD_POOL_TASK_FUNC(lnk_build_pdb_public_symbols_defined_task) { @@ -3369,9 +3356,6 @@ lnk_build_pdb(TP_Context *tp, return page_data_list; } -//////////////////////////////// -// RAD Debug Info - internal U64 lnk_udt_name_hash_table_hash(String8 string) { diff --git a/src/linker/lnk_debug_info.h b/src/linker/lnk_debug_info.h index 43e208be..36ff5923 100644 --- a/src/linker/lnk_debug_info.h +++ b/src/linker/lnk_debug_info.h @@ -3,7 +3,7 @@ #pragma once -//////////////////////////////// +// --- Code View Input --------------------------------------------------------- typedef struct LNK_PchInfo { @@ -60,7 +60,7 @@ typedef struct LNK_CodeViewInput Rng1U64 external_obj_range; } LNK_CodeViewInput; -//////////////////////////////// +// --- Leaf Ref ---------------------------------------------------------------- typedef enum { @@ -118,7 +118,7 @@ typedef union U128Array **v[CV_TypeIndexSource_COUNT]; } LNK_LeafHashes; -//////////////////////////////// +// --- Symbol Parsing Tasks ---------------------------------------------------- typedef struct { @@ -155,7 +155,7 @@ typedef struct B8 *is_corrupted; } LNK_GetExternalLeavesTask; -//////////////////////////////// +// --- Leaf Deduping Tasks ----------------------------------------------------- typedef struct { @@ -261,7 +261,7 @@ typedef struct Arena **fixed_arena_arr; } LNK_PatchLeavesTask; -//////////////////////////////// +// --- Code View Processing Trasks --------------------------------------------- typedef struct { @@ -378,8 +378,7 @@ typedef struct String8List *maps; } LNK_TypeNameReplacer; -//////////////////////////////// -// RAD Debug Info +// --- RAD Debug Info ---------------------------------------------------------- typedef struct { @@ -405,7 +404,7 @@ typedef struct CV_TypeIndex *fwdmap; } LNK_BuildUDTFwdMapTask; -//////////////////////////////// +// --- RDI Conversion Tasks ---------------------------------------------------- typedef struct { @@ -492,8 +491,7 @@ typedef struct RDIB_LineTableChunkList *line_tables; } LNK_ConvertUnitToRDITask; -//////////////////////////////// -// CodeView +// --- CodeView ---------------------------------------------------------------- internal CV_DebugS * lnk_parse_debug_s_sections(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8List *sect_list_arr); internal CV_DebugT * lnk_parse_debug_t_sections(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8List *debug_t_list_arr); @@ -536,8 +534,7 @@ internal CV_DebugT * lnk_import_types(TP_Context *tp, TP_Arena *tp_temp, internal void lnk_replace_type_names_with_hashes(TP_Context *tp, TP_Arena *arena, CV_DebugT debug_t, LNK_TypeNameHashMode mode, U64 hash_length, String8 map_name); -//////////////////////////////// -// RAD Debug info +// --- RAD Debug info ---------------------------------------------------------- internal U64 lnk_udt_name_hash_table_hash(String8 string); internal LNK_UDTNameBucket ** lnk_udt_name_hash_table_from_debug_t(TP_Context *tp, TP_Arena *arena, CV_DebugT debug_t, U64 *buckets_cap_out); @@ -563,8 +560,7 @@ internal String8List lnk_build_rad_debug_info(TP_Context *tp, CV_SymbolListArray *parsed_symbols, CV_DebugT types[CV_TypeIndexSource_COUNT]); -//////////////////////////////// -// PDB +// --- PDB --------------------------------------------------------------------- internal LNK_ProcessedCodeViewC11Data lnk_process_c11_data(TP_Context *tp, TP_Arena *arena, U64 obj_count, CV_DebugS *debug_s_arr, U64 string_data_base_offset, CV_StringHashTable string_ht, MSF_Context *msf, PDB_DbiModule **mod_arr); internal LNK_ProcessedCodeViewC13Data lnk_process_c13_data(TP_Context *tp, TP_Arena *arena, U64 obj_count, CV_DebugS *debug_s_arr, U64 string_data_base_offset, CV_StringHashTable string_ht, MSF_Context *msf, PDB_DbiModule **mod_arr); @@ -586,8 +582,7 @@ internal String8List lnk_build_pdb(TP_Context *tp, CV_SymbolListArray *parsed_symbols, CV_DebugT types[CV_TypeIndexSource_COUNT]); -//////////////////////////////// -// RAD Debug Info +// --- RAD Debug Info ---------------------------------------------------------- internal U64 lnk_udt_name_hash_table_hash(String8 string); internal LNK_UDTNameBucket ** lnk_udt_name_hash_table_from_debug_t(TP_Context *tp, TP_Arena *arena, CV_DebugT debug_t, U64 *buckets_cap_out); diff --git a/src/linker/lnk_io.c b/src/linker/lnk_io.c index bb67b134..1ff236be 100644 --- a/src/linker/lnk_io.c +++ b/src/linker/lnk_io.c @@ -1,6 +1,3 @@ -//////////////////////////////// -// Shared File API - shared_function int lnk_open_file_read(char *path, uint64_t path_size, void *handle_buffer, uint64_t handle_buffer_max) { @@ -51,8 +48,6 @@ lnk_write_file(void *raw_handle, uint64_t offset, void *buffer, uint64_t buffer_ return write_size; } -//////////////////////////////// - internal String8List lnk_file_search(Arena *arena, String8List dir_list, String8 file_path) { @@ -104,7 +99,7 @@ internal OS_Handle lnk_file_open_with_rename_permissions(String8 path) { OS_Handle file_handle = os_handle_zero(); -#if _WIN32 +#if OS_WINDOWS Temp scratch = scratch_begin(0,0); // open file with permissions to rename @@ -123,7 +118,7 @@ lnk_file_open_with_rename_permissions(String8 path) scratch_end(scratch); #else -#error "TODO: file rename" +# error "TODO: file rename" #endif return file_handle; } @@ -131,12 +126,12 @@ lnk_file_open_with_rename_permissions(String8 path) internal B32 lnk_file_set_delete_on_close(OS_Handle handle, B32 delete_file) { -#if _WIN32 +#if OS_WINDOWS FILE_DISPOSITION_INFO file_disposition = {0}; file_disposition.DeleteFile = (BOOL)delete_file; B32 is_set = SetFileInformationByHandle((HANDLE)handle.u64[0], FileDispositionInfo, &file_disposition, sizeof(file_disposition)); #else -#error "TODO: file rename" +# error "TODO: file rename" #endif return is_set; } @@ -145,7 +140,7 @@ internal B32 lnk_file_rename(OS_Handle handle, String8 new_name) { Temp scratch = scratch_begin(0,0); -#if _WIN32 +#if OS_WINDOWS String16 new_name16 = str16_from_8(scratch.arena, new_name); U64 file_rename_info_size = sizeof(FILE_RENAME_INFO); @@ -218,7 +213,7 @@ internal THREAD_POOL_TASK_FUNC(lnk_memory_map_file_task) { LNK_DiskReader *task = raw_task; -#if _WIN32 +#if OS_WINDOWS Temp scratch = scratch_begin(&arena, 1); String16 path16 = str16_from_8(scratch.arena, task->path_arr.v[task_id]); HANDLE file_handle = CreateFileW(path16.str, GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); @@ -376,4 +371,3 @@ lnk_write_data_to_file_path(String8 path, String8 temp_path, String8 data) scratch_end(scratch); } - diff --git a/src/linker/lnk_io.h b/src/linker/lnk_io.h index 9ff2a085..3e1b1705 100644 --- a/src/linker/lnk_io.h +++ b/src/linker/lnk_io.h @@ -1,15 +1,11 @@ #pragma once -//////////////////////////////// - typedef U32 LNK_IO_Flags; enum { LNK_IO_Flags_MemoryMapFiles = (1 << 0), }; -//////////////////////////////// - typedef struct { LNK_IO_Flags io_flags; @@ -21,8 +17,7 @@ typedef struct U8 *buffer; } LNK_DiskReader; -//////////////////////////////// -// Shared File API +// --- Shared File API --------------------------------------------------------- shared_function int lnk_open_file_read(char *path, uint64_t path_size, void *handle_buffer, uint64_t handle_buffer_max); shared_function int lnk_open_file_write(char *path, uint64_t path_size, void *handle_buffer, uint64_t handle_buffer_max); @@ -31,7 +26,7 @@ shared_function uint64_t lnk_size_from_file(void *raw_handle); shared_function uint64_t lnk_read_file(void *raw_handle, void *buffer, uint64_t buffer_max); shared_function uint64_t lnk_write_file(void *raw_handle, uint64_t offset, void *buffer, uint64_t buffer_size); -//////////////////////////////// +// --- IO Functions ------------------------------------------------------------ internal String8List lnk_file_search(Arena *arena, String8List dir_list, String8 file_path); diff --git a/src/linker/lnk_lib.h b/src/linker/lnk_lib.h index c15d0687..daff7528 100644 --- a/src/linker/lnk_lib.h +++ b/src/linker/lnk_lib.h @@ -34,8 +34,6 @@ typedef struct LNK_LibList struct LNK_LibNode *last; } LNK_LibList; -//////////////////////////////// - typedef struct { LNK_LibNode *node_arr; @@ -44,8 +42,6 @@ typedef struct U64 base_input_idx; } LNK_LibIniter; -//////////////////////////////// - internal LNK_Lib lnk_lib_from_data(Arena *arena, String8 data, String8 path); internal LNK_LibNodeArray lnk_lib_list_push_parallel(TP_Context *tp, TP_Arena *arena, LNK_LibList *list, String8Array data_arr, String8Array path_arr); diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index 537c7539..6dd393c4 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -1,8 +1,6 @@ // Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -//////////////////////////////// - internal LNK_Symbol * lnk_make_defined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj, U32 symbol_idx) { @@ -45,8 +43,6 @@ lnk_make_import_symbol(Arena *arena, String8 name, String8 import_header) return symbol; } -//////////////////////////////// - internal void lnk_symbol_list_push_node(LNK_SymbolList *list, LNK_SymbolNode *node) { @@ -107,50 +103,6 @@ lnk_symbol_array_from_list(Arena *arena, LNK_SymbolList list) return arr; } -//////////////////////////////// - -internal ISectOff -lnk_sc_from_symbol(LNK_Symbol *symbol) -{ - COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); - - ISectOff sc = {0}; - sc.isect = parsed_symbol.section_number; - sc.off = parsed_symbol.value; - - return sc; -} - -internal U64 -lnk_isect_from_symbol(LNK_Symbol *symbol) -{ - return lnk_sc_from_symbol(symbol).isect; -} - -internal U64 -lnk_sect_off_from_symbol(LNK_Symbol *symbol) -{ - return lnk_sc_from_symbol(symbol).off; -} - -internal U64 -lnk_virt_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol) -{ - ISectOff sc = lnk_sc_from_symbol(symbol); - U64 voff = section_table[sc.isect]->voff + sc.off; - return voff; -} - -internal U64 -lnk_file_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol) -{ - ISectOff sc = lnk_sc_from_symbol(symbol); - U64 foff = section_table[sc.isect]->foff + sc.off; - return foff; -} - -//////////////////////////////// - internal LNK_SymbolHashTrie * lnk_symbol_hash_trie_chunk_list_push(Arena *arena, LNK_SymbolHashTrieChunkList *list, U64 cap) { @@ -498,8 +450,6 @@ lnk_symbol_hash_trie_remove(LNK_SymbolHashTrie *trie) ins_atomic_ptr_eval_assign(&trie->symbol, 0); } -//////////////////////////////// - internal U64 lnk_symbol_hash(String8 string) { @@ -607,3 +557,44 @@ lnk_symbol_table_push_alt_name(LNK_SymbolTable *symtab, LNK_Obj *obj, String8 fr } } +internal ISectOff +lnk_sc_from_symbol(LNK_Symbol *symbol) +{ + COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + + ISectOff sc = {0}; + sc.isect = parsed_symbol.section_number; + sc.off = parsed_symbol.value; + + return sc; +} + +internal U64 +lnk_isect_from_symbol(LNK_Symbol *symbol) +{ + return lnk_sc_from_symbol(symbol).isect; +} + +internal U64 +lnk_sect_off_from_symbol(LNK_Symbol *symbol) +{ + return lnk_sc_from_symbol(symbol).off; +} + +internal U64 +lnk_virt_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol) +{ + ISectOff sc = lnk_sc_from_symbol(symbol); + U64 voff = section_table[sc.isect]->voff + sc.off; + return voff; +} + +internal U64 +lnk_file_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol) +{ + ISectOff sc = lnk_sc_from_symbol(symbol); + U64 foff = section_table[sc.isect]->foff + sc.off; + return foff; +} + + diff --git a/src/linker/lnk_symbol_table.h b/src/linker/lnk_symbol_table.h index 5c5ee11b..80f11b3a 100644 --- a/src/linker/lnk_symbol_table.h +++ b/src/linker/lnk_symbol_table.h @@ -3,8 +3,6 @@ #pragma once -//////////////////////////////// - typedef enum { LNK_Symbol_Null, @@ -111,24 +109,14 @@ typedef struct LNK_SymbolTable HashTable *alt_names; } LNK_SymbolTable; -//////////////////////////////// -// parallel for wrappers - -typedef struct -{ - LNK_SymbolTable *symtab; - Rng1U64 *ranges; - LNK_Symbol *arr; -} LNK_LazySymbolInserter; - -//////////////////////////////// +// --- Symbol Make ------------------------------------------------------------- internal LNK_Symbol * lnk_make_defined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj, U32 symbol_idx); internal LNK_Symbol * lnk_make_lib_symbol(Arena *arena, String8 name, struct LNK_Lib *lib, U64 member_offset); internal LNK_Symbol * lnk_make_undefined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj); internal LNK_Symbol * lnk_make_import_symbol(Arena *arena, String8 name, String8 import_header); -//////////////////////////////// +// --- Symbol List ------------------------------------------------------------- internal void lnk_symbol_list_push_node(LNK_SymbolList *list, LNK_SymbolNode *node); internal LNK_SymbolNode * lnk_symbol_list_push(Arena *arena, LNK_SymbolList *list, LNK_Symbol *symbol); @@ -137,21 +125,13 @@ internal LNK_SymbolList lnk_symbol_list_from_array(Arena *arena, LNK_Symbol internal LNK_SymbolNodeArray lnk_symbol_node_array_from_list(Arena *arena, LNK_SymbolList list); internal LNK_SymbolArray lnk_symbol_array_from_list(Arena *arena, LNK_SymbolList list); -//////////////////////////////// - -internal ISectOff lnk_sc_from_symbol (LNK_Symbol *symbol); -internal U64 lnk_isect_from_symbol (LNK_Symbol *symbol); -internal U64 lnk_sect_off_from_symbol(LNK_Symbol *symbol); -internal U64 lnk_virt_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol); -internal U64 lnk_file_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol); - -//////////////////////////////// +// --- Symbol Hash Trie -------------------------------------------------------- internal void lnk_symbol_hash_trie_insert_or_replace(Arena *arena, LNK_SymbolHashTrieChunkList *chunks, LNK_SymbolHashTrie **trie, U64 hash, LNK_Symbol *symbol); internal LNK_SymbolHashTrie * lnk_symbol_hash_trie_search(LNK_SymbolHashTrie *trie, U64 hash, String8 name); internal void lnk_symbol_hash_trie_remove(LNK_SymbolHashTrie *trie); -//////////////////////////////// +// --- Symbol Table ------------------------------------------------------------ internal U64 lnk_symbol_hash(String8 string); @@ -165,3 +145,10 @@ internal void lnk_symbol_table_remove(LNK_SymbolTable *symtab, LNK_ internal void lnk_symbol_table_push_alt_name(LNK_SymbolTable *symtab, struct LNK_Obj *obj, String8 from, String8 to); +// --- Symbol Contrib Helpers -------------------------------------------------- + +internal ISectOff lnk_sc_from_symbol (LNK_Symbol *symbol); +internal U64 lnk_isect_from_symbol (LNK_Symbol *symbol); +internal U64 lnk_sect_off_from_symbol(LNK_Symbol *symbol); +internal U64 lnk_virt_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol); +internal U64 lnk_file_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol); From f5b19675cb120ce18c065b8580262a72b69c1a2a Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 19 Jun 2025 16:39:12 -0700 Subject: [PATCH 233/372] merge conflict --- src/linker/lnk.c | 1 - src/linker/lnk_config.c | 12 ------------ src/linker/lnk_config.h | 1 - 3 files changed, 14 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index aa95ce58..608d12d4 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -184,7 +184,6 @@ lnk_config_from_argcv(Arena *arena, int argc, char **argv) lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_OsVer, "6.0"); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_PageSize, "%u", KB(4)); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_PathStyle, "system"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SectVirtOff, "0x1000"); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Workers, "%u", os_get_system_info()->logical_processor_count); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_TargetOs, "windows"); lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SymbolTableCapDefined, "0x3ffff"); diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 338afe57..e362c2c6 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -145,7 +145,6 @@ global read_only LNK_CmdSwitch g_cmd_switch_map[] = { LNK_CmdSwitch_Rad_PdbHashTypeNameMap, 0, "RAD_PDB_HASH_TYPE_NAME_MAP", ":FILENAME", "Produce map file with hash -> type name mappings." }, { LNK_CmdSwitch_Rad_PdbHashTypeNames, 0, "RAD_PDB_HASH_TYPE_NAMES", ":{NONE|LENIENT|FULL}", "Replace type names in LF_STRUCTURE and LF_CLASS with hashes." }, { LNK_CmdSwitch_Rad_RemoveSection, 0, "RAD_REMOVE_SECTION", ":NAME", "Removes a section from output image." }, - { LNK_CmdSwitch_Rad_SectVirtOff, 0, "RAD_SECT_VIRT_OFF", ":#", "Set RVA where section data is placed in memory. For internal use only." }, { LNK_CmdSwitch_Rad_SharedThreadPool, 0, "RAD_SHARED_THREAD_POOL", "[:STRING]", "Default value \"" LNK_DEFAULT_THREAD_POOL_NAME "\"" }, { LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, 0, "RAD_SHARED_THREAD_POOL_MAX_WORKERS", ":#", "Sets maximum number of workers in a thread pool." }, { LNK_CmdSwitch_Rad_SuppressError, 0, "RAD_SUPPRESS_ERROR", ":#", "" }, @@ -1828,17 +1827,6 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } } break; - case LNK_CmdSwitch_Rad_SectVirtOff: { - U64 sect_virt_off; - if (lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, §_virt_off, LNK_ParseU64Flag_CheckUnder32bit)) { - if (sect_virt_off >= 0x1000) { - config->section_virt_off = sect_virt_off; - } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "section virtual offset must be >= 0x1000"); - } - } - } break; - case LNK_CmdSwitch_Rad_SharedThreadPool: { if (value_strings.node_count == 0) { config->shared_thread_pool_name = str8_lit(LNK_DEFAULT_THREAD_POOL_NAME); diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index 5411058a..f601a85f 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -173,7 +173,6 @@ typedef enum LNK_CmdSwitch_Rad_PdbHashTypeNameMap, LNK_CmdSwitch_Rad_PdbHashTypeNames, LNK_CmdSwitch_Rad_RemoveSection, - LNK_CmdSwitch_Rad_SectVirtOff, LNK_CmdSwitch_Rad_SharedThreadPool, LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, LNK_CmdSwitch_Rad_SuppressError, From a395398bdfa3e83bec191e9922cf15d7ae7358ed Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 19 Jun 2025 16:17:53 -0700 Subject: [PATCH 234/372] remove global variable for null section contrib --- src/linker/lnk.c | 9 ++++----- src/linker/lnk.h | 1 + 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 608d12d4..7d1a4149 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -142,8 +142,6 @@ #include "lnk_lib.c" #include "lnk_debug_info.c" -global read_only LNK_SectionContrib g_null_sc; - internal LNK_Config * lnk_config_from_argcv(Arena *arena, int argc, char **argv) { @@ -2333,7 +2331,7 @@ THREAD_POOL_TASK_FUNC(lnk_gather_section_contribs_task) ProfBeginV("Gather Section Contribs [%S]", obj->path); for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - LNK_SectionContrib *sc = &g_null_sc; + LNK_SectionContrib *sc = task->null_sc; COFF_SectionHeader *sect_header = §ion_table[sect_idx]; if (~sect_header->flags & COFF_SectionFlag_LnkRemove && sect_header->fsize > 0) { LNK_SectionContribChunk *sc_chunk = 0; @@ -2569,7 +2567,7 @@ THREAD_POOL_TASK_FUNC(lnk_patch_regular_symbols_task) LNK_SectionContrib *sc = task->sect_map[obj_idx][symbol.section_number-1]; U16 section_number; U32 value; - if (sc == &g_null_sc) { + if (sc == task->null_sc) { section_number = LNK_REMOVED_SECTION_NUMBER_16; value = max_U32; } else { @@ -3048,7 +3046,7 @@ THREAD_POOL_TASK_FUNC(lnk_flag_hotpatch_contribs_task) if (interp == COFF_SymbolValueInterp_Regular && COFF_SymbolType_IsFunc(symbol.type)) { COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); LNK_SectionContrib *sc = task->sect_map[obj_idx][symbol.section_number-1]; - if (sc != &g_null_sc) { + if (sc != task->null_sc) { sc->hotpatch = !!(section_header->flags & COFF_SectionFlag_CntCode); } } @@ -3986,6 +3984,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT LNK_BuildImageTask task = {0}; task.symtab = symtab; task.sectab = sectab; + task.null_sc = push_array(arena->v[0], LNK_SectionContrib, 1); task.function_pad_min = config->function_pad_min; task.default_align = coff_default_align_from_machine(config->machine); task.objs_count = objs_count; diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 16438043..6356980d 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -77,6 +77,7 @@ typedef struct { LNK_SymbolTable *symtab; LNK_SectionTable *sectab; + LNK_SectionContrib *null_sc; U64 function_pad_min; U64 default_align; U64 objs_count; From 2fbaafa32c5102e6891ed47743f6d33d09c5eeff Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 19 Jun 2025 21:52:52 -0700 Subject: [PATCH 235/372] parallel compute common block --- src/linker/lnk.c | 86 ++++++++++++++++++++++++++++-------------------- src/linker/lnk.h | 5 +++ 2 files changed, 55 insertions(+), 36 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 7d1a4149..ca0cc77e 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -3032,6 +3032,45 @@ lnk_section_definition_is_before(void *raw_a, void *raw_b) return u64_compar_is_before(&input_idx_a, &input_idx_b); } +internal +THREAD_POOL_TASK_FUNC(lnk_count_common_block_contribs_task) +{ + LNK_BuildImageTask *task = raw_task; + LNK_SymbolTable *symtab = task->symtab; + + for (LNK_SymbolHashTrieChunk *chunk = symtab->chunk_lists[LNK_SymbolScope_Defined][task_id].first; chunk != 0; chunk = chunk->next) { + for (U64 i = 0; i < chunk->count; i += 1) { + LNK_Symbol *symbol = chunk->v[i].symbol; + COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + COFF_SymbolValueInterpType parsed_interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); + if (parsed_interp == COFF_SymbolValueInterp_Common) { + task->u.common_block.counts[task_id] += 1; + } + } + } +} + +internal +THREAD_POOL_TASK_FUNC(lnk_fill_out_common_block_contribs_task) +{ + LNK_BuildImageTask *task = raw_task; + LNK_SymbolTable *symtab = task->symtab; + U64 cursor = task->u.common_block.offsets[task_id]; + + for (LNK_SymbolHashTrieChunk *chunk = symtab->chunk_lists[LNK_SymbolScope_Defined][task_id].first; chunk != 0; chunk = chunk->next) { + for (U64 i = 0; i < chunk->count; i += 1) { + LNK_Symbol *symbol = chunk->v[i].symbol; + COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + COFF_SymbolValueInterpType parsed_interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); + if (parsed_interp == COFF_SymbolValueInterp_Common) { + LNK_CommonBlockContrib *contrib = &task->u.common_block.contribs[cursor++]; + contrib->symbol = chunk->v[i].symbol; + contrib->u.size = parsed_symbol.value; + } + } + } +} + internal THREAD_POOL_TASK_FUNC(lnk_flag_hotpatch_contribs_task) { @@ -4144,44 +4183,19 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT ProfBegin("Build Common Block"); ProfBegin("Count Contribs"); - common_block_contribs_count = 0; - for (U64 worker_id = 0; worker_id < tp->worker_count; worker_id += 1) { - for (LNK_SymbolHashTrieChunk *chunk = symtab->chunk_lists[LNK_SymbolScope_Defined][worker_id].first; - chunk != 0; - chunk = chunk->next) { - for (U64 i = 0; i < chunk->count; i += 1) { - LNK_Symbol *symbol = chunk->v[i].symbol; - COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); - COFF_SymbolValueInterpType parsed_interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); - if (parsed_interp == COFF_SymbolValueInterp_Common) { - common_block_contribs_count += 1; - } - } - } - } + task.u.common_block.counts = push_array(scratch.arena, U64, tp->worker_count); + tp_for_parallel(tp, 0, tp->worker_count, lnk_count_common_block_contribs_task, &task); ProfEnd(); - ProfBegin("Gather Contribs"); - common_block_contribs = push_array(scratch.arena, LNK_CommonBlockContrib, common_block_contribs_count); - { - U64 cursor = 0; - for (U64 worker_id = 0; worker_id < tp->worker_count; worker_id += 1) { - for (LNK_SymbolHashTrieChunk *chunk = symtab->chunk_lists[LNK_SymbolScope_Defined][worker_id].first; - chunk != 0; - chunk = chunk->next) { - for (U64 i = 0; i < chunk->count; i += 1) { - LNK_Symbol *symbol = chunk->v[i].symbol; - COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); - COFF_SymbolValueInterpType parsed_interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); - if (parsed_interp == COFF_SymbolValueInterp_Common) { - LNK_CommonBlockContrib *contrib = &common_block_contribs[cursor++]; - contrib->symbol = chunk->v[i].symbol; - contrib->u.size = parsed_symbol.value; - } - } - } - } - } + ProfBegin("Push Contribs"); + common_block_contribs_count = sum_array_u64(tp->worker_count, task.u.common_block.counts); + common_block_contribs = push_array(scratch.arena, LNK_CommonBlockContrib, common_block_contribs_count); + ProfEnd(); + + ProfBegin("Fill Out Contribs [%Iu64]", common_block_contribs_count); + task.u.common_block.offsets = offsets_from_counts_array_u64(scratch.arena, task.u.common_block.counts, tp->worker_count); + task.u.common_block.contribs = common_block_contribs; + tp_for_parallel(tp, 0, tp->worker_count, lnk_fill_out_common_block_contribs_task, &task); ProfEnd(); if (common_block_contribs_count) { diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 6356980d..53fab1ce 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -89,6 +89,11 @@ typedef struct struct { HashTable **defns; } gather_sects; + struct { + U64 *counts; + U64 *offsets; + LNK_CommonBlockContrib *contribs; + } common_block; struct { LNK_SectionContribChunk **chunks; } sort_contribs; From 7120d0c1a4d9210d3ec90d654a5125c94963c090 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 19 Jun 2025 21:53:21 -0700 Subject: [PATCH 236/372] share memory mapped files --- src/linker/lnk_io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/linker/lnk_io.c b/src/linker/lnk_io.c index 1ff236be..f3513117 100644 --- a/src/linker/lnk_io.c +++ b/src/linker/lnk_io.c @@ -216,7 +216,7 @@ THREAD_POOL_TASK_FUNC(lnk_memory_map_file_task) #if OS_WINDOWS Temp scratch = scratch_begin(&arena, 1); String16 path16 = str16_from_8(scratch.arena, task->path_arr.v[task_id]); - HANDLE file_handle = CreateFileW(path16.str, GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + HANDLE file_handle = CreateFileW(path16.str, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (file_handle != INVALID_HANDLE_VALUE) { HANDLE mapping_handle = CreateFileMappingA(file_handle, 0, PAGE_WRITECOPY, 0, 0, 0); if (mapping_handle != INVALID_HANDLE_VALUE) { From 790c95fc806953a598fe49e351a6d98e752b3ac9 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 20 Jun 2025 13:02:50 -0700 Subject: [PATCH 237/372] organization pass over symbol table files --- src/linker/lnk_symbol_table.c | 93 +++++++++++++---------------------- src/linker/lnk_symbol_table.h | 38 ++++++++------ 2 files changed, 57 insertions(+), 74 deletions(-) diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index 6dd393c4..bf86be2c 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -5,9 +5,9 @@ internal LNK_Symbol * lnk_make_defined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj, U32 symbol_idx) { LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); - symbol->name = name; - symbol->type = LNK_Symbol_Defined; - symbol->u.defined.obj = obj; + symbol->name = name; + symbol->type = LNK_Symbol_Defined; + symbol->u.defined.obj = obj; symbol->u.defined.symbol_idx = symbol_idx; return symbol; } @@ -16,9 +16,9 @@ internal LNK_Symbol * lnk_make_lib_symbol(Arena *arena, String8 name, struct LNK_Lib *lib, U64 member_offset) { LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); - symbol->name = name; - symbol->type = LNK_Symbol_Lib; - symbol->u.lib.lib = lib; + symbol->name = name; + symbol->type = LNK_Symbol_Lib; + symbol->u.lib.lib = lib; symbol->u.lib.member_offset = member_offset; return symbol; } @@ -27,8 +27,8 @@ internal LNK_Symbol * lnk_make_undefined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj) { LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); - symbol->name = name; - symbol->type = LNK_Symbol_Undefined; + symbol->name = name; + symbol->type = LNK_Symbol_Undefined; symbol->u.undef.obj = obj; return symbol; } @@ -37,9 +37,9 @@ internal LNK_Symbol * lnk_make_import_symbol(Arena *arena, String8 name, String8 import_header) { LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); - symbol->name = name; - symbol->type = LNK_Symbol_Import; - symbol->u.import.import_header = import_header; + symbol->name = name; + symbol->type = LNK_Symbol_Import; + symbol->u.imp.import_header = import_header; return symbol; } @@ -472,9 +472,29 @@ lnk_symbol_table_init(TP_Arena *arena) return symtab; } -internal LNK_Symbol * -lnk_symbol_table_search_hash(LNK_SymbolTable *symtab, LNK_SymbolScope scope, U64 hash, String8 name) +internal void +lnk_symbol_table_push_(LNK_SymbolTable *symtab, Arena *arena, U64 worker_id, LNK_SymbolScope scope, U64 hash, LNK_Symbol *symbol) { + lnk_symbol_hash_trie_insert_or_replace(arena, &symtab->chunk_lists[scope][worker_id], &symtab->scopes[scope], hash, symbol); +} + +internal void +lnk_symbol_table_push(LNK_SymbolTable *symtab, LNK_Symbol *symbol) +{ + U64 hash = lnk_symbol_hash(symbol->name); + switch (symbol->type) { + case LNK_Symbol_Null: break; + case LNK_Symbol_Defined: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Defined, hash, symbol); } break; + case LNK_Symbol_Import: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Import, hash, symbol); } break; + case LNK_Symbol_Lib: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Lib, hash, symbol); } break; + default: { InvalidPath; } break; + } +} + +internal LNK_Symbol * +lnk_symbol_table_search(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 name) +{ + U64 hash = lnk_symbol_hash(name); LNK_SymbolHashTrie *trie = lnk_symbol_hash_trie_search(symtab->scopes[scope], hash, name); if (trie == 0) { String8 alt_name = {0}; @@ -486,20 +506,12 @@ lnk_symbol_table_search_hash(LNK_SymbolTable *symtab, LNK_SymbolScope scope, U64 return trie ? trie->symbol : 0; } -internal LNK_Symbol * -lnk_symbol_table_search(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 name) -{ - U64 hash = lnk_symbol_hash(name); - return lnk_symbol_table_search_hash(symtab, scope, hash, name); -} - internal LNK_Symbol * lnk_symbol_table_searchf(LNK_SymbolTable *symtab, LNK_SymbolScope scope, char *fmt, ...) { Temp scratch = scratch_begin(0, 0); - - va_list args; - va_start(args, fmt); + + va_list args; va_start(args, fmt); String8 name = push_str8fv(scratch.arena, fmt, args); va_end(args); @@ -509,41 +521,6 @@ lnk_symbol_table_searchf(LNK_SymbolTable *symtab, LNK_SymbolScope scope, char *f return symbol; } -internal void -lnk_symbol_table_push_(LNK_SymbolTable *symtab, Arena *arena, U64 worker_id, LNK_SymbolScope scope, U64 hash, LNK_Symbol *symbol) -{ - lnk_symbol_hash_trie_insert_or_replace(arena, &symtab->chunk_lists[scope][worker_id], &symtab->scopes[scope], hash, symbol); -} - -internal void -lnk_symbol_table_push_hash(LNK_SymbolTable *symtab, U64 hash, LNK_Symbol *symbol) -{ - switch (symbol->type) { - case LNK_Symbol_Null: break; - case LNK_Symbol_Defined: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Defined, hash, symbol); } break; - case LNK_Symbol_Import: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Import, hash, symbol); } break; - case LNK_Symbol_Lib: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Lib, hash, symbol); } break; - default: { InvalidPath; } break; - } -} - -internal void -lnk_symbol_table_push(LNK_SymbolTable *symtab, LNK_Symbol *symbol) -{ - U64 hash = lnk_symbol_hash(symbol->name); - lnk_symbol_table_push_hash(symtab, hash, symbol); -} - -internal void -lnk_symbol_table_remove(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 name) -{ - U64 hash = lnk_symbol_hash(name); - LNK_SymbolHashTrie *trie = lnk_symbol_hash_trie_search(symtab->scopes[scope], hash, name); - if (trie) { - lnk_symbol_hash_trie_remove(trie); - } -} - internal void lnk_symbol_table_push_alt_name(LNK_SymbolTable *symtab, LNK_Obj *obj, String8 from, String8 to) { diff --git a/src/linker/lnk_symbol_table.h b/src/linker/lnk_symbol_table.h index 80f11b3a..41d2c3c4 100644 --- a/src/linker/lnk_symbol_table.h +++ b/src/linker/lnk_symbol_table.h @@ -3,6 +3,8 @@ #pragma once +// --- Symbol ------------------------------------------------------------------ + typedef enum { LNK_Symbol_Null, @@ -41,11 +43,13 @@ typedef struct LNK_Symbol union { LNK_SymbolDefined defined; LNK_SymbolLib lib; - LNK_SymbolImport import; + LNK_SymbolImport imp; LNK_SymbolUndefined undef; } u; } LNK_Symbol; +// --- Symbol Containers ------------------------------------------------------- + typedef struct LNK_SymbolNode { struct LNK_SymbolNode *next; @@ -71,13 +75,7 @@ typedef struct LNK_SymbolArray LNK_Symbol *v; } LNK_SymbolArray; -typedef enum -{ - LNK_SymbolScope_Defined, - LNK_SymbolScope_Import, - LNK_SymbolScope_Lib, - LNK_SymbolScope_Count -} LNK_SymbolScope; +// --- Symbol Hash Trie -------------------------------------------------------- typedef struct LNK_SymbolHashTrie { @@ -101,6 +99,16 @@ typedef struct LNK_SymbolHashTrieChunkList LNK_SymbolHashTrieChunk *last; } LNK_SymbolHashTrieChunkList; +// --- Symbol Table ------------------------------------------------------------ + +typedef enum +{ + LNK_SymbolScope_Defined, + LNK_SymbolScope_Import, + LNK_SymbolScope_Lib, + LNK_SymbolScope_Count +} LNK_SymbolScope; + typedef struct LNK_SymbolTable { TP_Arena *arena; @@ -116,7 +124,7 @@ internal LNK_Symbol * lnk_make_lib_symbol(Arena *arena, String8 name, struct LNK internal LNK_Symbol * lnk_make_undefined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj); internal LNK_Symbol * lnk_make_import_symbol(Arena *arena, String8 name, String8 import_header); -// --- Symbol List ------------------------------------------------------------- +// --- Symbol Containers ------------------------------------------------------ internal void lnk_symbol_list_push_node(LNK_SymbolList *list, LNK_SymbolNode *node); internal LNK_SymbolNode * lnk_symbol_list_push(Arena *arena, LNK_SymbolList *list, LNK_Symbol *symbol); @@ -133,22 +141,20 @@ internal void lnk_symbol_hash_trie_remove(LNK_SymbolHashTrie *tr // --- Symbol Table ------------------------------------------------------------ -internal U64 lnk_symbol_hash(String8 string); +internal U64 lnk_symbol_hash(String8 string); internal LNK_SymbolTable * lnk_symbol_table_init(TP_Arena *arena); -internal LNK_Symbol * lnk_symbol_table_search_hash(LNK_SymbolTable *symtab, LNK_SymbolScope scope, U64 hash, String8 name); +internal void lnk_symbol_table_push(LNK_SymbolTable *symtab, LNK_Symbol *symbol); internal LNK_Symbol * lnk_symbol_table_search(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 name); internal LNK_Symbol * lnk_symbol_table_searchf(LNK_SymbolTable *symtab, LNK_SymbolScope scope, char *fmt, ...); -internal void lnk_symbol_table_push_hash(LNK_SymbolTable *symtab, U64 hash, LNK_Symbol *symbol); -internal void lnk_symbol_table_push(LNK_SymbolTable *symtab, LNK_Symbol *symbol); -internal void lnk_symbol_table_remove(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 name); internal void lnk_symbol_table_push_alt_name(LNK_SymbolTable *symtab, struct LNK_Obj *obj, String8 from, String8 to); // --- Symbol Contrib Helpers -------------------------------------------------- -internal ISectOff lnk_sc_from_symbol (LNK_Symbol *symbol); -internal U64 lnk_isect_from_symbol (LNK_Symbol *symbol); +internal ISectOff lnk_sc_from_symbol(LNK_Symbol *symbol); +internal U64 lnk_isect_from_symbol(LNK_Symbol *symbol); internal U64 lnk_sect_off_from_symbol(LNK_Symbol *symbol); internal U64 lnk_virt_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol); internal U64 lnk_file_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol); + From 153d78ec6ab6a8fa60c58b5940722ca202e8bd2f Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 20 Jun 2025 13:03:01 -0700 Subject: [PATCH 238/372] unpoison memory-mapped files --- src/linker/lnk_io.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/linker/lnk_io.c b/src/linker/lnk_io.c index f3513117..c9626617 100644 --- a/src/linker/lnk_io.c +++ b/src/linker/lnk_io.c @@ -224,6 +224,8 @@ THREAD_POOL_TASK_FUNC(lnk_memory_map_file_task) GetFileSizeEx(file_handle, &file_size); void *file_data = MapViewOfFile(mapping_handle, FILE_MAP_COPY, 0, 0, file_size.QuadPart); if (file_data) { + // asan crashes for an unknown reason on memory-mapped files, even though the allocation is perfectly fine + AsanUnpoisonMemoryRegion(file_data, file_size.QuadPart); task->data_arr.v[task_id] = str8(file_data, file_size.QuadPart); } CloseHandle(mapping_handle); From 2ba9f2a61b865101d98f13e32a1df57baa28e624 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 20 Jun 2025 13:07:07 -0700 Subject: [PATCH 239/372] fix uinited var warning --- src/pe/pe_make_export_table.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pe/pe_make_export_table.c b/src/pe/pe_make_export_table.c index edf1d0cd..761a61ae 100644 --- a/src/pe/pe_make_export_table.c +++ b/src/pe/pe_make_export_table.c @@ -18,7 +18,7 @@ pe_name_from_export_parse(PE_ExportParse *exp) internal U16 pe_hint_or_ordinal_from_export_parse(PE_ExportParse *exp) { - U16 hint_or_ordinal; + U16 hint_or_ordinal = max_U16; if (exp->import_by == COFF_ImportBy_Ordinal) { hint_or_ordinal = exp->ordinal; } else if (exp->import_by == COFF_ImportBy_Name) { From b1723ce066e0fbe1ec5cfa56e2da7330df983466 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 23 Jun 2025 11:03:48 -0700 Subject: [PATCH 240/372] gracefully handle invalid libs --- src/linker/linker.natvis | 2 +- src/linker/lnk_error.h | 1 + src/linker/lnk_lib.c | 160 +++++++++++++++++++++++++++------------ src/linker/lnk_lib.h | 24 +++--- 4 files changed, 127 insertions(+), 60 deletions(-) diff --git a/src/linker/linker.natvis b/src/linker/linker.natvis index a5186ebc..3c82cf96 100644 --- a/src/linker/linker.natvis +++ b/src/linker/linker.natvis @@ -33,7 +33,7 @@ - {{count={count} first={first} last={last} }} + {{count={count} first={first} }} count diff --git a/src/linker/lnk_error.h b/src/linker/lnk_error.h index e10db029..40e52eeb 100644 --- a/src/linker/lnk_error.h +++ b/src/linker/lnk_error.h @@ -54,6 +54,7 @@ typedef enum LNK_Error_InvalidTypeIndex, LNK_Error_UndefinedIsWeak, LNK_Error_WeakCycle, + LNK_Error_InvalidLib, LNK_Error_Last, LNK_Warning_First, diff --git a/src/linker/lnk_lib.c b/src/linker/lnk_lib.c index b04db0b1..c3ec1625 100644 --- a/src/linker/lnk_lib.c +++ b/src/linker/lnk_lib.c @@ -2,41 +2,77 @@ // Licensed under the MIT license (https://opensource.org/license/mit/) internal LNK_LibNode * -lnk_lib_list_reserve(Arena *arena, LNK_LibList *list, U64 count) +lnk_lib_list_pop_node_atomic(LNK_LibList *list) { - LNK_LibNode *arr = 0; - if (count) { - arr = push_array(arena, LNK_LibNode, count); - for (LNK_LibNode *ptr = arr, *opl = arr + count; ptr < opl; ++ptr) { - SLLQueuePush(list->first, list->last, ptr); + for (;;) { + LNK_LibNode *expected = list->first; + LNK_LibNode *current = ins_atomic_ptr_eval_cond_assign(&list->first, expected->next, expected); + if (expected == current) { + ins_atomic_u64_dec_eval(&list->count); + return expected; } - list->count += count; } - return arr; } -internal LNK_Lib -lnk_lib_from_data(Arena *arena, String8 data, String8 path) +internal void +lnk_lib_list_push_node_atomic(LNK_LibList *list, LNK_LibNode *node) +{ + for (;;) { + LNK_LibNode *expected = list->first; + LNK_LibNode *current = ins_atomic_ptr_eval_cond_assign(&list->first, node, expected); + if (current == expected) { + node->next = expected; + ins_atomic_u64_inc_eval(&list->count); + return; + } + } +} + +internal void +lnk_lib_list_push_node(LNK_LibList *list, LNK_LibNode *node) +{ + SLLStackPush(list->first, node); + list->count += 1; +} + +internal LNK_LibList +lnk_lib_list_reserve(Arena *arena, U64 count) +{ + LNK_LibList result = {0}; + LNK_LibNode *nodes = push_array(arena, LNK_LibNode, count); + for (U64 i = 0; i < count; i += 1) { lnk_lib_list_push_node(&result, &nodes[i]); } + return result; +} + +internal LNK_LibNodeArray +lnk_array_from_lib_list(Arena *arena, LNK_LibList list) +{ + LNK_LibNodeArray result = {0}; + result.v = push_array(arena, LNK_LibNode, list.count); + for (LNK_LibNode *n = list.first; n != 0; n = n->next) { result.v[result.count++] = *n; } + return result; +} + +internal B32 +lnk_lib_from_data(Arena *arena, String8 data, String8 path, LNK_Lib *lib_out) { ProfBeginFunction(); + // is data archive? + COFF_ArchiveType type = coff_archive_type_from_data(data); + if (type == COFF_Archive_Null) { + return 0; + } + + COFF_ArchiveParse parse = coff_archive_parse_from_data(data); + if (parse.error.size) { + return 0; + } + U64 symbol_count; String8 string_table; U32 *member_off_arr; - // is data archive? - COFF_ArchiveType type = coff_archive_type_from_data(data); - if (type == COFF_Archive_Null) { - lnk_not_implemented("TODO: data is not archive"); - } - - COFF_ArchiveParse parse = coff_archive_parse_from_data(data); - - // report archive parser errors - if (parse.error.size) { - lnk_error(LNK_Error_IllData, "%S: %S", path, parse.error); - } - // try to init library from optional second member if (parse.second_member.member_count) { COFF_ArchiveSecondMember second_member = parse.second_member; @@ -84,49 +120,73 @@ lnk_lib_from_data(Arena *arena, String8 data, String8 path) symbol_count = Min(symbol_count, symbol_name_list.node_count); // init lib - LNK_Lib lib = {0}; - lib.path = push_str8_copy(arena, path); - lib.data = data; - lib.type = type; - lib.symbol_count = symbol_count; - lib.member_off_arr = member_off_arr; - lib.symbol_name_list = symbol_name_list; - lib.long_names = parse.long_names; + lib_out->path = push_str8_copy(arena, path); + lib_out->data = data; + lib_out->type = type; + lib_out->symbol_count = symbol_count; + lib_out->member_off_arr = member_off_arr; + lib_out->symbol_name_list = symbol_name_list; + lib_out->long_names = parse.long_names; ProfEnd(); - return lib; + return 1; } internal THREAD_POOL_TASK_FUNC(lnk_lib_initer) { - LNK_LibIniter *task = raw_task; - LNK_LibNode *lib_node = task->node_arr + task_id; - LNK_Lib *lib = &lib_node->data; - String8 data = task->data_arr[task_id]; - String8 path = task->path_arr[task_id]; - - *lib = lnk_lib_from_data(arena, data, path); - lib->input_idx = task->base_input_idx + task_id; + LNK_LibIniter *task = raw_task; + + LNK_LibNode *lib_node = lnk_lib_list_pop_node_atomic(&task->free_libs); + lib_node->data.input_idx = task_id; + + B32 is_valid_lib = lnk_lib_from_data(arena, task->data_arr[task_id], task->path_arr[task_id], &lib_node->data); + if (is_valid_lib) { + lnk_lib_list_push_node_atomic(&task->valid_libs, lib_node); + } else { + lnk_lib_list_push_node_atomic(&task->invalid_libs, lib_node); + } +} + +internal int +lnk_lib_node_is_before(void *a, void *b) +{ + return ((LNK_LibNode*)a)->data.input_idx < ((LNK_LibNode*)b)->data.input_idx; } internal LNK_LibNodeArray lnk_lib_list_push_parallel(TP_Context *tp, TP_Arena *arena, LNK_LibList *list, String8Array data_arr, String8Array path_arr) { + Temp scratch = scratch_begin(arena->v, arena->count); + Assert(data_arr.count == path_arr.count); U64 lib_count = data_arr.count; - - LNK_LibIniter task = {0}; - task.node_arr = lnk_lib_list_reserve(arena->v[0], list, lib_count); - task.data_arr = data_arr.v; - task.path_arr = path_arr.v; - task.base_input_idx = list->count; + + // parse libs in parallel + LNK_LibIniter task = {0}; + task.free_libs = lnk_lib_list_reserve(scratch.arena, lib_count); + task.data_arr = data_arr.v; + task.path_arr = path_arr.v; tp_for_parallel(tp, arena, lib_count, lnk_lib_initer, &task); - LNK_LibNodeArray arr = {0}; - arr.count = lib_count; - arr.v = task.node_arr; - return arr; + // report invalid libs + LNK_LibNodeArray invalid_libs = lnk_array_from_lib_list(scratch.arena, task.invalid_libs); + radsort(invalid_libs.v, invalid_libs.count, lnk_lib_node_is_before); + for (U64 i = 0; i < task.invalid_libs.count; i += 1) { + U64 input_idx = invalid_libs.v[i].data.input_idx; + lnk_error(LNK_Error_InvalidLib, "%S: failed to parse library", path_arr.v[input_idx]); + } + + // push parsed libs + LNK_LibNodeArray result = lnk_array_from_lib_list(arena->v[0], task.valid_libs); + radsort(result.v, result.count, lnk_lib_node_is_before); + for (U64 i = result.count; i > 0; i -= 1) { + result.v[i-1].data.input_idx = list->count; + lnk_lib_list_push_node(list, &result.v[i-1]); + } + + scratch_end(scratch); + return result; } internal diff --git a/src/linker/lnk_lib.h b/src/linker/lnk_lib.h index daff7528..7b5f1c27 100644 --- a/src/linker/lnk_lib.h +++ b/src/linker/lnk_lib.h @@ -9,7 +9,7 @@ typedef struct LNK_Lib String8 data; COFF_ArchiveType type; U32 symbol_count; - U32 * member_off_arr; + U32 *member_off_arr; String8List symbol_name_list; String8 long_names; U64 input_idx; @@ -17,8 +17,8 @@ typedef struct LNK_Lib typedef struct LNK_LibNode { - struct LNK_LibNode *next; LNK_Lib data; + struct LNK_LibNode *next; } LNK_LibNode; typedef struct LNK_LibNodeArray @@ -31,17 +31,23 @@ typedef struct LNK_LibList { U64 count; struct LNK_LibNode *first; - struct LNK_LibNode *last; } LNK_LibList; - + typedef struct { - LNK_LibNode *node_arr; - String8 *data_arr; - String8 *path_arr; - U64 base_input_idx; + String8 *data_arr; + String8 *path_arr; + LNK_LibList free_libs; + LNK_LibList valid_libs; + LNK_LibList invalid_libs; } LNK_LibIniter; -internal LNK_Lib lnk_lib_from_data(Arena *arena, String8 data, String8 path); +internal LNK_LibNode * lnk_lib_list_pop_node_atomic(LNK_LibList *list); +internal void lnk_lib_list_push_node_atomic(LNK_LibList *list, LNK_LibNode *node); +internal void lnk_lib_list_push_node(LNK_LibList *list, LNK_LibNode *node); +internal LNK_LibList lnk_lib_list_reserve(Arena *arena, U64 count); +internal LNK_LibNodeArray lnk_array_from_lib_list(Arena *arena, LNK_LibList list); + +internal B32 lnk_lib_from_data(Arena *arena, String8 data, String8 path, LNK_Lib *lib_out); internal LNK_LibNodeArray lnk_lib_list_push_parallel(TP_Context *tp, TP_Arena *arena, LNK_LibList *list, String8Array data_arr, String8Array path_arr); From fcb06579a4e43f7f7e32048cfc9d487cf6a53bb8 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 23 Jun 2025 13:13:34 -0700 Subject: [PATCH 241/372] collapse symbol scope and symbol type enums --- src/linker/lnk.c | 4 +- src/linker/lnk_debug_info.c | 1 - src/linker/lnk_lib.c | 3 +- src/linker/lnk_obj.c | 12 ++---- src/linker/lnk_symbol_table.c | 76 ++++++++++++++--------------------- src/linker/lnk_symbol_table.h | 28 +++++-------- 6 files changed, 47 insertions(+), 77 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index ca0cc77e..dbac54f8 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1358,8 +1358,8 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) // create import stubs (later replaced with acutal imports generated by linker) LNK_Symbol *thunk_symbol = lnk_make_import_symbol(scratch.arena, import_header.func_name, input->data.coff_import); LNK_Symbol *imp_symbol = lnk_make_import_symbol(scratch.arena, push_str8f(scratch.arena, "__imp_%S", import_header.func_name), input->data.coff_import); - lnk_symbol_table_push(symtab, thunk_symbol); - lnk_symbol_table_push(symtab, imp_symbol); + lnk_symbol_table_push(symtab, LNK_SymbolScope_Import, thunk_symbol); + lnk_symbol_table_push(symtab, LNK_SymbolScope_Import, imp_symbol); // pick imports hash table HashTable *imports_ht; diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index f19dff44..ecb147c3 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -3037,7 +3037,6 @@ THREAD_POOL_TASK_FUNC(lnk_build_pdb_public_symbols_defined_task) for (U64 i = 0, node_idx = 0; i < chunk->count; ++i) { LNK_Symbol *symbol = chunk->v[i].symbol; - Assert(symbol->type == LNK_Symbol_Defined); COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); COFF_SymbolValueInterpType interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); diff --git a/src/linker/lnk_lib.c b/src/linker/lnk_lib.c index c3ec1625..14d69774 100644 --- a/src/linker/lnk_lib.c +++ b/src/linker/lnk_lib.c @@ -199,8 +199,7 @@ THREAD_POOL_TASK_FUNC(lnk_push_lib_symbols_task) String8Node *name_node = lib->symbol_name_list.first; for (U64 symbol_idx = 0; symbol_idx < lib->symbol_count; ++symbol_idx, name_node = name_node->next) { LNK_Symbol *symbol = lnk_make_lib_symbol(arena, name_node->string, lib, lib->member_off_arr[symbol_idx]); - U64 hash = lnk_symbol_hash(symbol->name); - lnk_symbol_table_push_(symtab, arena, worker_id, LNK_SymbolScope_Lib, hash, symbol); + lnk_symbol_table_push_(symtab, arena, worker_id, LNK_SymbolScope_Lib, symbol); } } diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index b3590d8a..98f8e08a 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -346,27 +346,23 @@ THREAD_POOL_TASK_FUNC(lnk_input_coff_symbol_table) break; } LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); - U64 hash = lnk_symbol_hash(symbol.name); - lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); + lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, defn); } } break; case COFF_SymbolValueInterp_Weak: { LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); - U64 hash = lnk_symbol_hash(symbol.name); - lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); + lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, defn); lnk_symbol_list_push(arena, &task->weak_lists[worker_id], defn); } break; case COFF_SymbolValueInterp_Common: { LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); - U64 hash = lnk_symbol_hash(symbol.name); - lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); + lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, defn); } break; case COFF_SymbolValueInterp_Abs: { if (symbol.storage_class == COFF_SymStorageClass_External) { LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); - U64 hash = lnk_symbol_hash(symbol.name); - lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, hash, defn); + lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, defn); } } break; case COFF_SymbolValueInterp_Undefined: { diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index bf86be2c..da34ed4c 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -6,7 +6,6 @@ lnk_make_defined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj, U32 sym { LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); symbol->name = name; - symbol->type = LNK_Symbol_Defined; symbol->u.defined.obj = obj; symbol->u.defined.symbol_idx = symbol_idx; return symbol; @@ -17,32 +16,29 @@ lnk_make_lib_symbol(Arena *arena, String8 name, struct LNK_Lib *lib, U64 member_ { LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); symbol->name = name; - symbol->type = LNK_Symbol_Lib; symbol->u.lib.lib = lib; symbol->u.lib.member_offset = member_offset; return symbol; } -internal LNK_Symbol * -lnk_make_undefined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj) -{ - LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); - symbol->name = name; - symbol->type = LNK_Symbol_Undefined; - symbol->u.undef.obj = obj; - return symbol; -} - internal LNK_Symbol * lnk_make_import_symbol(Arena *arena, String8 name, String8 import_header) { LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); symbol->name = name; - symbol->type = LNK_Symbol_Import; symbol->u.imp.import_header = import_header; return symbol; } +internal LNK_Symbol * +lnk_make_undefined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj) +{ + LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); + symbol->name = name; + symbol->u.undef.obj = obj; + return symbol; +} + internal void lnk_symbol_list_push_node(LNK_SymbolList *list, LNK_SymbolNode *node) { @@ -125,26 +121,23 @@ lnk_error_multiply_defined_symbol(LNK_Symbol *dst, LNK_Symbol *src) } internal B32 -lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) +lnk_can_replace_symbol(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) { - Assert(src->type != LNK_Symbol_Undefined); + //Assert(src->type != LNK_Symbol_Undefined); Assert(dst != src); Assert(str8_match(dst->name, src->name, 0)); B32 can_replace = 0; - - // lib vs lib - if (dst->type == LNK_Symbol_Lib && src->type == LNK_Symbol_Lib) { + switch (scope) { + case LNK_SymbolScope_Lib: { // link.exe picks symbol from lib that is discovered first can_replace = src->u.lib.lib->input_idx < dst->u.lib.lib->input_idx; - } - else if (dst->type == LNK_Symbol_Import) { - AssertAlways(src->type != LNK_Symbol_Import); + } break; + case LNK_SymbolScope_Import: { can_replace = 1; - } - // defined vs defined - else if (dst->type == LNK_Symbol_Defined && src->type == LNK_Symbol_Defined) { + } break; + case LNK_SymbolScope_Defined: { LNK_Obj *dst_obj = dst->u.defined.obj; LNK_Obj *src_obj = src->u.defined.obj; @@ -319,20 +312,20 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) } else { lnk_error(LNK_Error_InvalidPath, "unable to find a suitable replacement logic for symbol combination"); } - } else { - lnk_error(LNK_Error_InvalidPath, "unable to find a suitable replacement logic for symbol combination"); + } break; + default: { InvalidPath; } } return can_replace; } internal void -lnk_on_symbol_replace(LNK_Symbol *dst, LNK_Symbol *src) +lnk_on_symbol_replace(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) { Assert(dst != src); - if (dst->type == LNK_Symbol_Lib && src->type == LNK_Symbol_Lib) { + if (scope == LNK_SymbolScope_Lib) { dst->u.lib = src->u.lib; - } else if (dst->type == LNK_Symbol_Defined && src->type == LNK_Symbol_Defined) { + } else if (scope == LNK_SymbolScope_Defined) { COFF_ParsedSymbol dst_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dst->u.defined.obj, dst->u.defined.symbol_idx); COFF_ParsedSymbol src_parsed = lnk_parsed_symbol_from_coff_symbol_idx(src->u.defined.obj, src->u.defined.symbol_idx); COFF_SymbolValueInterpType dst_interp = coff_interp_symbol(dst_parsed.section_number, dst_parsed.value, dst_parsed.storage_class); @@ -346,8 +339,6 @@ lnk_on_symbol_replace(LNK_Symbol *dst, LNK_Symbol *src) COFF_SectionHeader *src_sect = lnk_coff_section_header_from_section_number(src->u.defined.obj, src_parsed.section_number); AssertAlways(~src_sect->flags & COFF_SectionFlag_LnkRemove); } - } else { - InvalidPath; } } @@ -356,6 +347,7 @@ lnk_symbol_hash_trie_insert_or_replace(Arena *arena, LNK_SymbolHashTrieChunkList *chunks, LNK_SymbolHashTrie **trie, U64 hash, + LNK_SymbolScope scope, LNK_Symbol *symbol) { LNK_SymbolHashTrie **curr_trie_ptr = trie; @@ -395,13 +387,13 @@ lnk_symbol_hash_trie_insert_or_replace(Arena *arena, // apply replacement if (leader) { - if (lnk_can_replace_symbol(leader, src)) { + if (lnk_can_replace_symbol(scope, leader, src)) { // discard leader - lnk_on_symbol_replace(leader, src); + lnk_on_symbol_replace(scope, leader, src); leader = src; } else { // discard source - lnk_on_symbol_replace(src, leader); + lnk_on_symbol_replace(scope, src, leader); src = leader; } } else { @@ -473,22 +465,16 @@ lnk_symbol_table_init(TP_Arena *arena) } internal void -lnk_symbol_table_push_(LNK_SymbolTable *symtab, Arena *arena, U64 worker_id, LNK_SymbolScope scope, U64 hash, LNK_Symbol *symbol) +lnk_symbol_table_push_(LNK_SymbolTable *symtab, Arena *arena, U64 worker_id, LNK_SymbolScope scope, LNK_Symbol *symbol) { - lnk_symbol_hash_trie_insert_or_replace(arena, &symtab->chunk_lists[scope][worker_id], &symtab->scopes[scope], hash, symbol); + U64 hash = lnk_symbol_hash(symbol->name); + lnk_symbol_hash_trie_insert_or_replace(arena, &symtab->chunk_lists[scope][worker_id], &symtab->scopes[scope], hash, scope, symbol); } internal void -lnk_symbol_table_push(LNK_SymbolTable *symtab, LNK_Symbol *symbol) +lnk_symbol_table_push(LNK_SymbolTable *symtab, LNK_SymbolScope scope, LNK_Symbol *symbol) { - U64 hash = lnk_symbol_hash(symbol->name); - switch (symbol->type) { - case LNK_Symbol_Null: break; - case LNK_Symbol_Defined: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Defined, hash, symbol); } break; - case LNK_Symbol_Import: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Import, hash, symbol); } break; - case LNK_Symbol_Lib: { lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, LNK_SymbolScope_Lib, hash, symbol); } break; - default: { InvalidPath; } break; - } + lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, scope, symbol); } internal LNK_Symbol * diff --git a/src/linker/lnk_symbol_table.h b/src/linker/lnk_symbol_table.h index 41d2c3c4..eec6c878 100644 --- a/src/linker/lnk_symbol_table.h +++ b/src/linker/lnk_symbol_table.h @@ -5,14 +5,13 @@ // --- Symbol ------------------------------------------------------------------ -typedef enum +typedef enum { - LNK_Symbol_Null, - LNK_Symbol_Defined, - LNK_Symbol_Import, - LNK_Symbol_Lib, - LNK_Symbol_Undefined, -} LNK_SymbolType; + LNK_SymbolScope_Defined, + LNK_SymbolScope_Import, + LNK_SymbolScope_Lib, + LNK_SymbolScope_Count +} LNK_SymbolScope; typedef struct LNK_SymbolDefined { @@ -38,8 +37,7 @@ typedef struct LNK_SymbolImport typedef struct LNK_Symbol { - String8 name; - LNK_SymbolType type; + String8 name; union { LNK_SymbolDefined defined; LNK_SymbolLib lib; @@ -101,14 +99,6 @@ typedef struct LNK_SymbolHashTrieChunkList // --- Symbol Table ------------------------------------------------------------ -typedef enum -{ - LNK_SymbolScope_Defined, - LNK_SymbolScope_Import, - LNK_SymbolScope_Lib, - LNK_SymbolScope_Count -} LNK_SymbolScope; - typedef struct LNK_SymbolTable { TP_Arena *arena; @@ -135,7 +125,7 @@ internal LNK_SymbolArray lnk_symbol_array_from_list(Arena *arena, LNK_Symbol // --- Symbol Hash Trie -------------------------------------------------------- -internal void lnk_symbol_hash_trie_insert_or_replace(Arena *arena, LNK_SymbolHashTrieChunkList *chunks, LNK_SymbolHashTrie **trie, U64 hash, LNK_Symbol *symbol); +internal void lnk_symbol_hash_trie_insert_or_replace(Arena *arena, LNK_SymbolHashTrieChunkList *chunks, LNK_SymbolHashTrie **trie, U64 hash, LNK_SymbolScope scope, LNK_Symbol *symbol); internal LNK_SymbolHashTrie * lnk_symbol_hash_trie_search(LNK_SymbolHashTrie *trie, U64 hash, String8 name); internal void lnk_symbol_hash_trie_remove(LNK_SymbolHashTrie *trie); @@ -144,7 +134,7 @@ internal void lnk_symbol_hash_trie_remove(LNK_SymbolHashTrie *tr internal U64 lnk_symbol_hash(String8 string); internal LNK_SymbolTable * lnk_symbol_table_init(TP_Arena *arena); -internal void lnk_symbol_table_push(LNK_SymbolTable *symtab, LNK_Symbol *symbol); +internal void lnk_symbol_table_push(LNK_SymbolTable *symtab, LNK_SymbolScope scope, LNK_Symbol *symbol); internal LNK_Symbol * lnk_symbol_table_search(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 name); internal LNK_Symbol * lnk_symbol_table_searchf(LNK_SymbolTable *symtab, LNK_SymbolScope scope, char *fmt, ...); From a954c2125cbe0bf1db0457b4d45df8941e471cf4 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 23 Jun 2025 14:21:20 -0700 Subject: [PATCH 242/372] merge fixups --- src/base/base_strings.c | 2 ++ src/linker/lnk.c | 13 ++----------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/base/base_strings.c b/src/base/base_strings.c index ab34f01a..4564ce20 100644 --- a/src/base/base_strings.c +++ b/src/base/base_strings.c @@ -2814,6 +2814,8 @@ str8_is_before_case_sensitive(const void *a, const void *b) { int cmp = str8_compar_case_sensitive(a, b); return cmp < 0; +} + //~ rjf: Basic String Hashes #if !defined(XXH_IMPLEMENTATION) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index dbac54f8..04ff5b72 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -30,10 +30,8 @@ #include "base/base_inc.h" #include "os/os_inc.h" -#include "path/path.h" #include "hash_table.h" #include "coff/coff.h" -#include "coff/coff_enum.h" #include "coff/coff_parse.h" #include "coff/coff_obj_writer.h" #include "coff/coff_lib_writer.h" @@ -44,7 +42,6 @@ #include "pe/pe_make_debug_dir.h" #include "codeview/codeview.h" #include "codeview/codeview_parse.h" -#include "codeview/codeview_enum.h" #include "msf/msf.h" #include "msf/msf_parse.h" #include "pdb/pdb.h" @@ -52,10 +49,8 @@ #include "base/base_inc.c" #include "os/os_inc.c" -#include "path/path.c" #include "hash_table.c" #include "coff/coff.c" -#include "coff/coff_enum.c" #include "coff/coff_parse.c" #include "coff/coff_obj_writer.c" #include "coff/coff_lib_writer.c" @@ -64,7 +59,6 @@ #include "pe/pe_make_export_table.c" #include "pe/pe_make_debug_dir.c" #include "codeview/codeview.c" -#include "codeview/codeview_enum.c" #include "codeview/codeview_parse.c" #include "msf/msf.c" #include "msf/msf_parse.c" @@ -77,11 +71,8 @@ // --- RDI --------------------------------------------------------------------- -#include "rdi/rdi_overrides.h" -#include "lib_rdi_format/rdi_format.h" -#include "rdi/rdi.h" -#include "lib_rdi_format/rdi_format.c" -#include "rdi/rdi.c" +#include "rdi/rdi_local.h" +#include "rdi/rdi_local.c" // --- Code Base Extensions ---------------------------------------------------- From 91ddd214b3948836d8e616b778232feb096d3f69 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 23 Jun 2025 14:21:44 -0700 Subject: [PATCH 243/372] fix string to U64 conversion - handle zero on input string - handle upper and lower case prefixes --- src/base/base_strings.c | 49 ++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/src/base/base_strings.c b/src/base/base_strings.c index 4564ce20..030f993b 100644 --- a/src/base/base_strings.c +++ b/src/base/base_strings.c @@ -616,36 +616,35 @@ s32_from_str8(String8 string, U32 radix) internal B32 try_u64_from_str8_c_rules(String8 string, U64 *x) { - B32 is_integer = 0; - if(str8_is_integer(string, 10) && !str8_match(str8_prefix(string, 1), str8_lit("0"), 0)) + U64 radix, prefix_size; + // hex + if(str8_match(str8_prefix(string, 2), str8_lit("0x"), StringMatchFlag_CaseInsensitive)) { - is_integer = 1; - *x = u64_from_str8(string, 10); + radix = 0x10, prefix_size = 2; } + // binary + else if(str8_match(str8_prefix(string, 2), str8_lit("0b"), StringMatchFlag_CaseInsensitive)) + { + radix = 2, prefix_size = 2; + } + // octal + else if(str8_match(str8_prefix(string, 1), str8_lit("0"), StringMatchFlag_CaseInsensitive) && string.size > 1) + { + radix = 010, prefix_size = 1; + } + // decimal else { - String8 hex_string = str8_skip(string, 2); - if(str8_match(str8_prefix(string, 2), str8_lit("0x"), 0) && - str8_is_integer(hex_string, 0x10)) - { - is_integer = 1; - *x = u64_from_str8(hex_string, 0x10); - } - else if(str8_match(str8_prefix(string, 2), str8_lit("0b"), 0) && str8_is_integer(hex_string, 2)) - { - is_integer = 1; - *x = u64_from_str8(hex_string, 2); - } - else - { - String8 oct_string = str8_skip(string, 1); - if(str8_match(str8_prefix(string, 1), str8_lit("0"), 0) && str8_is_integer(hex_string, 010)) - { - is_integer = 1; - *x = u64_from_str8(oct_string, 010); - } - } + radix = 10, prefix_size = 0; } + + String8 integer = str8_skip(string, prefix_size); + B32 is_integer = str8_is_integer(integer, radix); + if(is_integer) + { + *x = u64_from_str8(integer, radix); + } + return is_integer; } From 7769a485ba9c316aa6fb2af639330b8a81e588c4 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 23 Jun 2025 14:32:48 -0700 Subject: [PATCH 244/372] more merge fixes --- src/coff/coff.c | 49 +++++++++++++++++++++++-------------------- src/coff/coff.h | 2 +- src/torture/torture.c | 4 ---- 3 files changed, 27 insertions(+), 28 deletions(-) diff --git a/src/coff/coff.c b/src/coff/coff.c index 5b42d057..08bc3123 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -246,6 +246,31 @@ coff_pick_reloc_value_x64(COFF_Reloc_X64 type, return result; } +internal String8 +coff_make_lib_member_header(Arena *arena, String8 name, COFF_TimeStamp time_stamp, U16 user_id, U16 group_id, U16 mode, U32 size) +{ + Assert(name.size < 16); + Assert(user_id < 10000); + Assert(group_id < 10000); + Assert(mode < 10000); + Assert(size < 1000000000); + + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + str8_list_pushf(scratch.arena, &list, "%-16.*s", str8_varg(name)); + str8_list_pushf(scratch.arena, &list, "%-12u", time_stamp); + str8_list_pushf(scratch.arena, &list, "%-6u", user_id); + str8_list_pushf(scratch.arena, &list, "%-6u", group_id); + str8_list_pushf(scratch.arena, &list, "%-8u", mode); + str8_list_pushf(scratch.arena, &list, "%-10u", size); + str8_list_pushf(scratch.arena, &list, "`\n"); + String8 result = str8_list_join(arena, &list, 0); + + Assert(result.size == sizeof(COFF_ArchiveMemberHeader)); + scratch_end(scratch); + return result; +} + internal String8 coff_make_import_lookup(Arena *arena, U16 hint, String8 name) { @@ -314,6 +339,7 @@ coff_make_import_header(Arena *arena, header.machine = machine; header.time_stamp = time_stamp; header.data_size = safe_cast_u32(name.size + dll_name.size + 2); + header.hint_or_ordinal = hint_or_ordinal; header.flags = flags; // alloc memory @@ -910,27 +936,4 @@ coff_import_header_type_from_string(String8 name) } return COFF_ImportType_Invalid; } -internal String8 -coff_make_lib_member_header(Arena *arena, String8 name, COFF_TimeStamp time_stamp, U16 user_id, U16 group_id, U16 mode, U32 size) -{ - Assert(name.size < 16); - Assert(user_id < 10000); - Assert(group_id < 10000); - Assert(mode < 10000); - Assert(size < 1000000000); - - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - str8_list_pushf(scratch.arena, &list, "%-16.*s", str8_varg(name)); - str8_list_pushf(scratch.arena, &list, "%-12u", time_stamp); - str8_list_pushf(scratch.arena, &list, "%-6u", user_id); - str8_list_pushf(scratch.arena, &list, "%-6u", group_id); - str8_list_pushf(scratch.arena, &list, "%-8u", mode); - str8_list_pushf(scratch.arena, &list, "%-10u", size); - str8_list_pushf(scratch.arena, &list, "`\n"); - String8 result = str8_list_join(arena, &list, 0); - Assert(result.size == sizeof(COFF_ArchiveMemberHeader)); - scratch_end(scratch); - return result; -} diff --git a/src/coff/coff.h b/src/coff/coff.h index afbd9a2e..1648df0e 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -611,6 +611,7 @@ internal U32 coff_make_ordinal32(U16 hint); internal U64 coff_make_ordinal64(U16 hint); internal String8 coff_ordinal_data_from_hint(Arena *arena, COFF_MachineType machine, U16 hint); +internal String8 coff_make_lib_member_header(Arena *arena, String8 name, COFF_TimeStamp time_stamp, U16 user_id, U16 group_id, U16 mode, U32 size); internal String8 coff_make_import_lookup(Arena *arena, U16 hint, String8 name); internal String8 coff_make_import_header(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, COFF_ImportByType import_by, String8 name, U16 hint_or_ordinal, COFF_ImportType type); @@ -648,6 +649,5 @@ internal String8 coff_string_from_reloc(COFF_MachineType machine, COFF_RelocType internal COFF_MachineType coff_machine_from_string(String8 string); internal COFF_ImportType coff_import_header_type_from_string(String8 name); -internal String8 coff_make_lib_member_header(Arena *arena, String8 name, COFF_TimeStamp time_stamp, U16 user_id, U16 group_id, U16 mode, U32 size); #endif // COFF_H diff --git a/src/torture/torture.c b/src/torture/torture.c index 12d3d854..fb304c88 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -17,9 +17,7 @@ #include "base/base_inc.h" #include "os/os_inc.h" -#include "path/path.h" #include "coff/coff.h" -#include "coff/coff_enum.h" #include "coff/coff_parse.h" #include "coff/coff_obj_writer.h" #include "coff/coff_lib_writer.h" @@ -29,9 +27,7 @@ #include "base/base_inc.c" #include "os/os_inc.c" -#include "path/path.c" #include "coff/coff.c" -#include "coff/coff_enum.c" #include "coff/coff_parse.c" #include "coff/coff_obj_writer.c" #include "coff/coff_lib_writer.c" From 08f2b749e85bf67eb635d405c88cd58b9ae893e4 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 23 Jun 2025 17:31:59 -0700 Subject: [PATCH 245/372] omit file offset, file size, and hash on bss sections --- src/linker/lnk.c | 48 ++++++------------------------------------------ 1 file changed, 6 insertions(+), 42 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 04ff5b72..476ec359 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -4820,7 +4820,7 @@ lnk_build_rad_map(Arena *arena, String8 image_data, LNK_Config *config, U64 objs LNK_Section *sect = §_n->data; str8_list_pushf(arena, &map, "%S\n", sect->name); - str8_list_pushf(arena, &map, "%-4s %-8s %-8s %-8s %-8s %-16s %-4s %s\n", "No.", "FileOff", "VirtOff", "VirtSize", "FileSize", "Blake3", "Algn", "SC"); + str8_list_pushf(arena, &map, "%-4s %-8s %-8s %-8s %-8s %-16s %-4s %s\n", "No.", "VirtOff", "VirtSize", "FileOff", "FileSize", "Blake3", "Algn", "SC"); U64 obj_sect_idxs_count = 0; PairU32 *obj_sect_idxs = lnk_obj_sect_idx_from_section(scratch.arena, objs_count, objs, sect, config, &obj_sect_idxs_count); @@ -4855,11 +4855,11 @@ lnk_build_rad_map(Arena *arena, String8 image_data, LNK_Config *config, U64 objs } String8 sc_idx_str = push_str8f(temp.arena, "%4llx", global_sc_idx); - String8 file_off_str = push_str8f(temp.arena, "%08x", file_off); - String8 virt_off_str = push_str8f(temp.arena, "%08x", virt_off); String8 virt_size_str = push_str8f(temp.arena, "%08x", virt_size); - String8 file_size_str = push_str8f(temp.arena, "%08x", file_size); - String8 sc_hash_str = push_str8f(temp.arena, "%08x%08x", sc_hash.u64[0], sc_hash.u64[1]); + String8 sc_hash_str = (~sect->flags & COFF_SectionFlag_CntUninitializedData) ? push_str8f(temp.arena, "%08x%08x", sc_hash.u64[0], sc_hash.u64[1]) : str8_lit("--------"); + String8 file_off_str = (~sect->flags & COFF_SectionFlag_CntUninitializedData) ? push_str8f(temp.arena, "%08x", file_off) : str8_lit("--------"); + String8 file_size_str = (~sect->flags & COFF_SectionFlag_CntUninitializedData) ? push_str8f(temp.arena, "%08x", file_size) : str8_lit("--------"); + String8 virt_off_str = push_str8f(temp.arena, "%08x", virt_off); String8 align_str = push_str8f(temp.arena, "%4x", sc->align); String8 contrib_str; { @@ -4881,7 +4881,7 @@ lnk_build_rad_map(Arena *arena, String8 image_data, LNK_Config *config, U64 objs contrib_str = str8_list_join(temp.arena, &source_list, &(StringJoin){.sep=str8_lit(" ")}); } - str8_list_pushf(arena, &map, "%S %S %S %S %S %S %S %S\n", sc_idx_str, file_off_str, virt_off_str, virt_size_str, file_size_str, sc_hash_str, align_str, contrib_str); + str8_list_pushf(arena, &map, "%S %S %S %S %S %S %S %S\n", sc_idx_str, virt_off_str, virt_size_str, file_off_str, file_size_str, sc_hash_str, align_str, contrib_str); temp_end(temp); } @@ -4911,41 +4911,6 @@ lnk_build_rad_map(Arena *arena, String8 image_data, LNK_Config *config, U64 objs } str8_list_pushf(arena, &map, "\n"); - -#if 0 - ProfBegin("SYMBOLS"); - str8_list_pushf(arena, &map, "# SYMBOLS\n"); - str8_list_pushf(arena, &map, "%-8s %s\n", "Sect:Idx", "Symbol"); - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - LNK_Obj *obj = objs[obj_idx]; - - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular) { - String8 sc = push_str8f(scratch.arena, "%x:%x", symbol.section_number, symbol.value); - - String8 lib_name = obj->lib_path; - lib_name = str8_skip_last_slash(lib_name); - lib_name = str8_chop_last_dot(lib_name); - - String8 obj_name = obj->path; - obj_name = str8_skip_last_slash(obj_name); - - str8_list_pushf(arena, &map, "%-8S (%S%s%S) %S\n", - sc, - lib_name, lib_name.size ? ":" : "", obj_name, - symbol.name); - } - } - } - str8_list_pushf(arena, &map, "\n"); - ProfEnd(); -#endif - - ProfBegin("LIBS"); for (U64 input_source = 0; input_source < LNK_InputSource_Count; ++input_source) { if (lib_index[input_source].count) { @@ -4956,7 +4921,6 @@ lnk_build_rad_map(Arena *arena, String8 image_data, LNK_Config *config, U64 objs } } ProfEnd(); - scratch_end(scratch); ProfEnd(); From 17ca83697bf749583695f8bf13b226163237ddb8 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 24 Jun 2025 11:00:15 -0700 Subject: [PATCH 246/372] draft symbol table fixups to prepare for refactoring symbol table patching step --- src/linker/lnk.c | 324 ++++++++++++++++++++++++++++++++++++++++------- src/linker/lnk.h | 47 +++++-- 2 files changed, 312 insertions(+), 59 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 476ec359..7d815324 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2223,6 +2223,227 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) #undef state_list_pop } +internal LNK_SymbolTableFixup * +lnk_symbol_table_fixup_list_push(Arena *arena, LNK_SymbolTableFixupList *list) +{ + LNK_SymbolTableFixupNode *node = push_array(arena, LNK_SymbolTableFixupNode, 1); + SLLQueuePush(list->first, list->last, node); + list->count += 1; + return &node->data; +} + +internal LNK_SymbolTableFixup * +lnk_array_from_symbol_table_fixup_list(Arena *arena, LNK_SymbolTableFixupList list) +{ + LNK_SymbolTableFixup *result = push_array(arena, LNK_SymbolTableFixup, list.count); + U64 idx = 0; + for (LNK_SymbolTableFixupNode *n = list.first; n != 0; n = n->next, idx += 1) { + result[idx] = n->data; + } + return result; +} + +/* +internal +THREAD_POOL_TASK_FUNC(lnk_gather_symtab_fixups_task) +{ + Temp scratch = scratch_begin(&arena, 1); + + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[task_id]; + + ProfBeginV("%S", obj->path); + + ProfBegin("Build Symlinks"); + LNK_Symbol **symlinks = push_array(scratch.arena, LNK_Symbol *, obj->header.section_count_no_null+1); + { + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular && symbol.aux_symbol_count == 0 && symbol.storage_class == COFF_SymStorageClass_External) { + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { + if (symlinks[symbol.section_number] == 0 || symbol.value == 0) { + symlinks[symbol.section_number] = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + } + } + } + } + } + ProfEnd(); + + struct LookupLocation { + struct LookupLocation *next; + LNK_Obj *obj; + U64 symbol_idx; + }; + struct LookupLocation *lookup_first = 0; + struct LookupLocation *lookup_last = 0; + struct LookupLocation *lookup_free_list = 0; + HashTable *visited_symbols_ht = hash_table_init(scratch.arena, 32); + + LNK_SymbolTableFixupList fixups = {0}; + { + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular) { + LNK_Symbol *symlink = symlinks[symbol.section_number]; + if (symlink && symlink->u.defined.obj != obj) { + if (symbol.storage_class == COFF_SymStorageClass_External) { + // COMDAT leader may be at a different offset, so update this symbol with leader's offset + LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); + fixup->idx = symbol_idx; + fixup->obj_idx = symlink->u.defined.obj->input_idx; + fixup->obj_symbol_idx = symlink->u.defined.symbol_idx; + } else { + // COMDAT section may have static symbols which are now invalid to relocate against + LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); + fixup->idx = symbol_idx; + fixup->obj_idx = max_U32; + fixup->obj_symbol_idx = max_U32; + task->u.patch_symtabs.was_symbol_patched[obj_idx][symbol_idx] = 1; + } + } + } else if (interp == COFF_SymbolValueInterp_Common) { + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + if (defn) { + LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); + fixup->idx = symbol_idx; + fixup->obj_idx = defn->u.defined.obj->input_idx; + fixup->obj_symbol_idx = defn->u.defined.symbol_idx; + } + } else if (interp == COFF_SymbolValueInterp_Abs) { + if (symbol.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + + if (defn == 0) { + continue; + } + if (defn->u.defined.obj == obj && defn->u.defined.symbol_idx == symbol_idx) { + continue; + } + + LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); + fixup->idx = symbol_idx; + fixup->obj_idx = defn->u.defined.obj->input_idx; + fixup->obj_symbol_idx = defn->u.defined.symbol_idx; + } + } else if (interp == COFF_SymbolValueInterp_Undefined) { + if (symbol.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + if (defn) { + LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); + fixup->idx = symbol_idx; + fixup->obj_idx = defn->u.defined.obj->input_idx; + fixup->obj_symbol_idx = defn->u.defined.symbol_idx; + } + } + } else if (interp == COFF_SymbolValueInterp_Weak) { + String8 lookup_name = symbol.name; + LNK_Obj *lookup_obj = obj; + U64 lookup_symbol_idx = symbol_idx; + for (;;) { + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, lookup_name); + if (defn == 0) { + break; + } + + // not external symbol -- symbol resolved + COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + if (defn_parsed.storage_class != COFF_SymStorageClass_WeakExternal) { + LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); + fixup->idx = symbol_idx; + fixup->obj_idx = defn->u.defined.obj->input_idx; + fixup->obj_symbol_idx = defn->u.defined.symbol_idx; + break; + } + + // check against cyclic refs + struct LookupLocation *was_visited = 0; + hash_table_search_string_raw(visited_symbols_ht, lookup_name, &was_visited); + if (was_visited != 0) { + Temp temp = temp_begin(scratch.arena); + + String8List list = {0}; + for (struct LookupLocation *l = lookup_first; l != 0; l = l->next) { + COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(l->obj, l->symbol_idx); + str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx) =>", l->obj->path, loc_symbol.name, l->symbol_idx); + } + { + COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(was_visited->obj, was_visited->symbol_idx); + str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx)", was_visited->obj->path, loc_symbol.name, was_visited->symbol_idx); + } + + String8 loc_string = str8_list_join(temp.arena, &list, &(StringJoin){.sep = str8_lit("\n") }); + lnk_error_obj(LNK_Error_WeakCycle, obj, "unable to resolve cyclic symbol %S; ref chain:\n%S", symbol.name, loc_string); + + temp_end(temp); + break; + } + struct LookupLocation *loc = lookup_free_list; + if (lookup_free_list) { + SLLStackPop(lookup_free_list); + } else { + loc = push_array(scratch.arena, struct LookupLocation, 1); + } + loc->obj = lookup_obj; + loc->symbol_idx = symbol_idx; + SLLQueuePush(lookup_first, lookup_last, loc); + hash_table_push_string_raw(scratch.arena, visited_symbols_ht, lookup_name, loc); + + // fallback to weak tag for definition + COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(defn_parsed, defn->u.defined.obj->header.is_big_obj); + COFF_ParsedSymbol parsed_tag = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, weak_ext->tag_index); + lookup_name = parsed_tag.name; + lookup_obj = defn->u.defined.obj; + lookup_symbol_idx = weak_ext->tag_index; + } + } + } + } + + task->obj_symtab_fixups[obj_idx] = lnk_array_from_symbol_table_fixup_list(arena, fixups); + + ProfEnd(); + scratch_end(scratch); +} + +internal void +lnk_gc_sections(U64 objs_count, LNK_Obj **objs, LNK_SymbolTableFixupArray *objs_fixups, PairU32 root) +{ + for (;;) { + LNK_Obj *obj = objs[root.v0]; + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, root.v1); + COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, section_header); + COFF_Reloc *relocs = str8_deserial_get_raw_ptr(obj->data, reloc_info.array_off, sizeof(*relocs)*reloc_info.count); + LNK_SymbolTableFixupArray *fixups = objs_fixups[root.v0]; + + for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { + COFF_Reloc *reloc = &relocs[reloc_idx]; + LNK_SymbolTableFixup *fixup = lnk_bsearch_symbol_table_fixup_array(fixups, reloc->isymbol); + + LNK_Obj *symbol_obj; + U64 symbol_idx; + if (fixup == 0) { + symbol_obj = obj; + symbol_idx = reloc->isymbol; + } else { + symbol_obj = objs[fixup->obj_idx]; + symbol_idx = fixup->obj_symbol_idx; + } + + COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol_obj, symbol_idx); + COFF_SectionHeader *symbol_section_header = ; + } + } +} +*/ + internal THREAD_POOL_TASK_FUNC(lnk_remove_associative_sections_task) { @@ -2379,7 +2600,7 @@ THREAD_POOL_TASK_FUNC(lnk_flag_debug_symbols_task) } internal -THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_task) +THREAD_POOL_TASK_FUNC(lnk_patch_comdat_leaders_task) { Temp scratch = scratch_begin(&arena, 1); @@ -2535,6 +2756,41 @@ THREAD_POOL_TASK_FUNC(lnk_patch_common_block_leaders_task) ProfEnd(); } +internal +THREAD_POOL_TASK_FUNC(lnk_patch_common_block_symbols_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + ProfBeginV("Patch Common Block Symbols [%S]", obj->path); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + + if (interp == COFF_SymbolValueInterp_Common) { + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + Assert(coff_interp_symbol(defn_parsed.section_number, defn_parsed.value, defn_parsed.storage_class) == COFF_SymbolValueInterp_Regular); + if (defn) { + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = symbol.raw_symbol; + symbol32->section_number = defn_parsed.section_number; + symbol32->value = safe_cast_u32(defn_parsed.value); + symbol32->storage_class = COFF_SymStorageClass_Static; + } else { + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + symbol16->section_number = safe_cast_u16(defn_parsed.section_number); + symbol16->value = safe_cast_u32(defn_parsed.value); + symbol16->storage_class = COFF_SymStorageClass_Static; + } + } + } + } + ProfEnd(); +} + internal THREAD_POOL_TASK_FUNC(lnk_patch_regular_symbols_task) { @@ -2580,41 +2836,6 @@ THREAD_POOL_TASK_FUNC(lnk_patch_regular_symbols_task) ProfEnd(); } -internal -THREAD_POOL_TASK_FUNC(lnk_patch_common_block_symbols_task) -{ - LNK_BuildImageTask *task = raw_task; - U64 obj_idx = task_id; - LNK_Obj *obj = task->objs[obj_idx]; - - ProfBeginV("Patch Common Block Symbols [%S]", obj->path); - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - - if (interp == COFF_SymbolValueInterp_Common) { - LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); - COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - Assert(coff_interp_symbol(defn_parsed.section_number, defn_parsed.value, defn_parsed.storage_class) == COFF_SymbolValueInterp_Regular); - if (defn) { - if (obj->header.is_big_obj) { - COFF_Symbol32 *symbol32 = symbol.raw_symbol; - symbol32->section_number = defn_parsed.section_number; - symbol32->value = safe_cast_u32(defn_parsed.value); - symbol32->storage_class = COFF_SymStorageClass_Static; - } else { - COFF_Symbol16 *symbol16 = symbol.raw_symbol; - symbol16->section_number = safe_cast_u16(defn_parsed.section_number); - symbol16->value = safe_cast_u32(defn_parsed.value); - symbol16->storage_class = COFF_SymStorageClass_Static; - } - } - } - } - ProfEnd(); -} - internal THREAD_POOL_TASK_FUNC(lnk_patch_abs_symbols_task) { @@ -4003,6 +4224,12 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT Temp scratch = scratch_begin(arena->v, arena->count); + /* + ProfBegin("Gather Symbol Tables Fixups"); + tp_for_parallel(tp, 0, objs_count, lnk_gather_symtab_fixups_task, &task); + ProfEnd(); + */ + // init section table LNK_SectionTable *sectab = lnk_section_table_alloc(); lnk_section_table_push(sectab, str8_lit(".text"), PE_TEXT_SECTION_FLAGS); @@ -4012,14 +4239,15 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT LNK_Section *common_block_sect = lnk_section_table_search(sectab, str8_lit(".bss"), PE_BSS_SECTION_FLAGS); LNK_BuildImageTask task = {0}; - task.symtab = symtab; - task.sectab = sectab; - task.null_sc = push_array(arena->v[0], LNK_SectionContrib, 1); - task.function_pad_min = config->function_pad_min; - task.default_align = coff_default_align_from_machine(config->machine); - task.objs_count = objs_count; - task.objs = objs; - task.sect_map = 0; + task.symtab = symtab; + task.sectab = sectab; + task.null_sc = push_array(arena->v[0], LNK_SectionContrib, 1); + task.obj_symtab_fixups = push_array(scratch.arena, LNK_SymbolTableFixupArray, 1); + task.function_pad_min = config->function_pad_min; + task.default_align = coff_default_align_from_machine(config->machine); + task.objs_count = objs_count; + task.objs = objs; + task.sect_map = 0; ProfBegin("Remove Associative Sections"); tp_for_parallel(tp, 0, objs_count, lnk_remove_associative_sections_task, &task); @@ -4289,9 +4517,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT ProfEnd(); } - // // patch symbol tables - // { ProfBegin("Patch Symbol Tables"); Temp temp = temp_begin(scratch.arena); @@ -4311,8 +4537,8 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT tp_for_parallel(tp, 0, objs_count, lnk_flag_debug_symbols_task, &task); ProfEnd(); - ProfBegin("Set COMDAT Leaders"); - tp_for_parallel(tp, 0, objs_count, lnk_set_comdat_leaders_task, &task); + ProfBegin("Patch COMDAT Leaders"); + tp_for_parallel(tp, 0, objs_count, lnk_patch_comdat_leaders_task, &task); ProfEnd(); ProfBegin("Patch Common Block Leaders"); @@ -4323,7 +4549,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT tp_for_parallel(tp, 0, task.objs_count, lnk_patch_regular_symbols_task, &task); ProfEnd(); - ProfBegin("Patch Common blocks"); + ProfBegin("Patch Common Block Symbols"); tp_for_parallel(tp, 0, task.objs_count, lnk_patch_common_block_symbols_task, &task); ProfEnd(); diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 53fab1ce..e29eb645 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -25,6 +25,32 @@ typedef struct LNK_ImageContext LNK_SectionTable *sectab; } LNK_ImageContext; +typedef struct LNK_SymbolTableFixup +{ + U32 idx; + U32 obj_idx; + U32 obj_symbol_idx; +} LNK_SymbolTableFixup; + +typedef struct LNK_SymbolTableFixupNode +{ + LNK_SymbolTableFixup data; + struct LNK_SymbolTableFixupNode *next; +} LNK_SymbolTableFixupNode; + +typedef struct LNK_SymbolTableFixupList +{ + U64 count; + LNK_SymbolTableFixupNode *first; + LNK_SymbolTableFixupNode *last; +} LNK_SymbolTableFixupList; + +typedef struct LNK_SymbolTableFixupArray +{ + U64 count; + LNK_SymbolTableFixup *v; +} LNK_SymbolTableFixupArray; + typedef struct LNK_SectionDefinition { String8 name; @@ -75,16 +101,17 @@ typedef struct LNK_BaseRelocPageArray typedef struct { - LNK_SymbolTable *symtab; - LNK_SectionTable *sectab; - LNK_SectionContrib *null_sc; - U64 function_pad_min; - U64 default_align; - U64 objs_count; - LNK_Obj **objs; - LNK_SectionContrib ***sect_map; - HashTable *contribs_ht; - LNK_SectionArray image_sects; + LNK_SymbolTable *symtab; + LNK_SectionTable *sectab; + LNK_SectionContrib *null_sc; + LNK_SymbolTableFixupArray *obj_symtab_fixups; + U64 function_pad_min; + U64 default_align; + U64 objs_count; + LNK_Obj **objs; + LNK_SectionContrib ***sect_map; + HashTable *contribs_ht; + LNK_SectionArray image_sects; union { struct { HashTable **defns; From 4322c9ccfcd616b57e5e62332480ae77c808521b Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 24 Jun 2025 11:15:27 -0700 Subject: [PATCH 247/372] change torture to assume default liker to be radlink, typo fix, and added progress report --- src/torture/torture.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index fb304c88..c7130d18 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -3726,8 +3726,7 @@ entry_point(CmdLine *cmdline) // { B32 print_help = cmd_line_has_flag(cmdline, str8_lit("help")) || - cmd_line_has_flag(cmdline, str8_lit("h")) || - cmdline->argc == 1; + cmd_line_has_flag(cmdline, str8_lit("h")); if (print_help) { fprintf(stderr, "--- Help -----------------------------------------------------------------------\n"); fprintf(stderr, " %s\n\n", BUILD_TITLE_STRING_LITERAL); @@ -3738,7 +3737,7 @@ entry_point(CmdLine *cmdline) fprintf(stderr, " -list Print available test targets and exit\n"); fprintf(stderr, " -out:{path} Directory path for test outputs (default \"%.*s\")\n", str8_varg(g_out)); fprintf(stderr, " -verbose Enable verbose mode\n"); - fprintf(stderr, " -print_stdout Print to console stdout and stderr of a run"); + fprintf(stderr, " -print_stdout Print to console stdout and stderr of a run\n"); fprintf(stderr, " -help Print help menu and exit\n"); os_abort(0); } @@ -3774,8 +3773,8 @@ entry_point(CmdLine *cmdline) os_abort(1); } } else { - fprintf(stderr, "ERROR: missing -linker option\n"); - os_abort(1); + // assume default linker + g_linker = str8_lit("radlink"); } } @@ -3895,6 +3894,9 @@ entry_point(CmdLine *cmdline) U64 dots_count = (max_label_size - cstring8_length(target_array[target_idx].label)) + dots_min; String8 msg = push_str8f(scratch.arena, "%s%.*s%s", target_array[target_idx].label, dots_count, dots, t_string_from_result(result)); + // run progress + fprintf(stdout, "[%2llu/%2llu] ", i+1, target_indices_count); + if (result == T_Result_Pass) { fprintf(stdout, "\x1b[32m" "%.*s" "\x1b[0m" "\n", str8_varg(msg)); pass_count += 1; From 0d75e8e5e02c3659775693e0b987aef8e2d097bf Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 25 Jun 2025 17:36:03 -0700 Subject: [PATCH 248/372] fix raddbg_is_attached data marker - static won't work, will be stripped... --- src/lib_raddbg_markup/raddbg_markup.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib_raddbg_markup/raddbg_markup.h b/src/lib_raddbg_markup/raddbg_markup.h index fce7545b..10987a3f 100644 --- a/src/lib_raddbg_markup/raddbg_markup.h +++ b/src/lib_raddbg_markup/raddbg_markup.h @@ -70,6 +70,7 @@ //~ Global Symbols #if !defined(RADDBG_MARKUP_STUBS) +extern unsigned char raddbg_is_attached_byte_marker[1]; int raddbg_is_attached__impl(void); int raddbg_thread_id__impl(void); void raddbg_thread_name__impl(int id, char *fmt, ...); @@ -98,7 +99,7 @@ void raddbg_annotate_vaddr_range__impl(void *ptr, unsigned __int64 size, char *f #endif //- first byte of exe data section -> is attached -static raddbg_exe_data unsigned char raddbg_is_attached_byte_marker[1]; +raddbg_exe_data unsigned char raddbg_is_attached_byte_marker[1] = {0}; //- types From a702e187efeb657c61a31b8acdccc3c03c264669 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 27 Jun 2025 11:24:59 -0700 Subject: [PATCH 249/372] expand match store cache to include all match info --- src/dbgi/dbgi.c | 39 +++++++++++++++++++++++++++++++++------ src/dbgi/dbgi.h | 25 +++++++++++++++++++------ src/raddbg/raddbg_core.c | 2 +- 3 files changed, 53 insertions(+), 13 deletions(-) diff --git a/src/dbgi/dbgi.c b/src/dbgi/dbgi.c index 2be972d8..4563fed9 100644 --- a/src/dbgi/dbgi.c +++ b/src/dbgi/dbgi.c @@ -1590,6 +1590,10 @@ di_match_store_alloc(void) store->u2m_ring_mutex = os_mutex_alloc(); store->u2m_ring_size = KB(2); store->u2m_ring_base = push_array_no_zero(arena, U8, store->u2m_ring_size); + store->m2u_ring_cv = os_condition_variable_alloc(); + store->m2u_ring_mutex = os_mutex_alloc(); + store->m2u_ring_size = KB(2); + store->m2u_ring_base = push_array_no_zero(arena, U8, store->m2u_ring_size); return store; } @@ -1638,13 +1642,21 @@ di_match_store_begin(DI_MatchStore *store, DI_KeyArray keys) } } + // rjf: pop new matches +#if 0 + for(;;) + { + U64 unconsumed_size = store->m2u_ring_write_pos - store->m2u_ring_read_pos; + } +#endif + ProfEnd(); } -internal RDI_SectionKind -di_match_store_section_kind_from_name(DI_MatchStore *store, String8 name, U64 endt_us) +internal DI_Match +di_match_from_name(DI_MatchStore *store, String8 name, U64 endt_us) { - RDI_SectionKind result = 0; + DI_Match result = {0}; { // rjf: unpack name U64 hash = di_hash_from_string(name, 0); @@ -1743,7 +1755,7 @@ di_match_store_section_kind_from_name(DI_MatchStore *store, String8 name, U64 en } // rjf: return node present info - result = node->section_kind; + result = node->primary_match; } return result; } @@ -1783,7 +1795,9 @@ ASYNC_WORK_DEF(di_match_work) params_hash = store->params_hash; } - //- rjf: do match + //- rjf: gather matches + DI_MatchNode *first_match = 0; + DI_MatchNode *last_match = 0; RDI_NameMapKind name_map_kinds[] = { RDI_NameMapKind_GlobalVariables, @@ -1815,7 +1829,20 @@ ASYNC_WORK_DEF(di_match_work) U32 *run = rdi_matches_from_map_node(rdi, map_node, &num); if(num != 0) { - ins_atomic_u32_eval_assign(&node->section_kind, name_map_section_kinds[name_map_kind_idx]); + // rjf: atomically update the node's primary match + ins_atomic_u64_eval_assign(&node->primary_match.dbgi_idx, dbgi_idx); + ins_atomic_u32_eval_assign(&node->primary_match.section, name_map_section_kinds[name_map_kind_idx]); + ins_atomic_u32_eval_assign(&node->primary_match.idx, run[0]); + + // rjf: gather all alternate matches + for(U32 match_idx = 1; match_idx < num; match_idx += 1) + { + DI_MatchNode *m = push_array(scratch.arena, DI_MatchNode, 1); + SLLQueuePush(first_match, last_match, m); + m->v.dbgi_idx = dbgi_idx; + m->v.section = name_map_section_kinds[name_map_kind_idx]; + m->v.idx = run[match_idx]; + } } } di_scope_close(di_scope); diff --git a/src/dbgi/dbgi.h b/src/dbgi/dbgi.h index 3d243cde..20699773 100644 --- a/src/dbgi/dbgi.h +++ b/src/dbgi/dbgi.h @@ -263,13 +263,18 @@ struct DI_SearchThread typedef struct DI_Match DI_Match; struct DI_Match { - DI_Match *next; - DI_Match *prev; U64 dbgi_idx; RDI_SectionKind section; U32 idx; }; +typedef struct DI_MatchNode DI_MatchNode; +struct DI_MatchNode +{ + DI_MatchNode *next; + DI_Match v; +}; + typedef struct DI_MatchNameNode DI_MatchNameNode; struct DI_MatchNameNode { @@ -289,9 +294,9 @@ struct DI_MatchNameNode // rjf: atomically written by match work U64 cmp_count; U64 cmp_params_hash; - RDI_SectionKind section_kind; - // DI_Match *first_match; - // DI_Match *last_match; + DI_Match primary_match; + // DI_MatchNode *first_alt_match; + // DI_MatchNode *last_alt_match; }; typedef struct DI_MatchNameSlot DI_MatchNameSlot; @@ -332,6 +337,14 @@ struct DI_MatchStore U8 *u2m_ring_base; U64 u2m_ring_write_pos; U64 u2m_ring_read_pos; + + // rjf: match -> user work ring buffer + OS_Handle m2u_ring_cv; + OS_Handle m2u_ring_mutex; + U64 m2u_ring_size; + U8 *m2u_ring_base; + U64 m2u_ring_write_pos; + U64 m2u_ring_read_pos; }; //////////////////////////////// @@ -470,7 +483,7 @@ internal void di_search_evictor_thread__entry_point(void *p); internal DI_MatchStore *di_match_store_alloc(void); internal void di_match_store_begin(DI_MatchStore *store, DI_KeyArray keys); -internal RDI_SectionKind di_match_store_section_kind_from_name(DI_MatchStore *store, String8 name, U64 endt_us); +internal DI_Match di_match_from_name(DI_MatchStore *store, String8 name, U64 endt_us); ASYNC_WORK_DEF(di_match_work); #endif // DBGI_H diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 80f16d70..9acb9a82 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -10287,7 +10287,7 @@ rd_code_color_slot_from_txt_token_kind_lookup_string(TXT_TokenKind kind, String8 // rjf: try to map using asynchronous matching system if(!mapped && kind == TXT_TokenKind_Identifier) { - RDI_SectionKind section_kind = di_match_store_section_kind_from_name(rd_state->match_store, string, 0); + RDI_SectionKind section_kind = di_match_from_name(rd_state->match_store, string, 0).section; mapped = 1; switch(section_kind) { From b315bf681113c2e735b062a889fd233ebcde4b72 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 27 Jun 2025 11:58:04 -0700 Subject: [PATCH 250/372] switch eval debug info symbol name resolution to using async match store --- src/dbgi/dbgi.c | 3 + src/eval/eval_core.h | 1 + src/eval/eval_ir.c | 231 ++++++++++++++++++++++++++++++++++----- src/eval/eval_ir.h | 21 +--- src/raddbg/raddbg_core.c | 25 +++-- 5 files changed, 227 insertions(+), 54 deletions(-) diff --git a/src/dbgi/dbgi.c b/src/dbgi/dbgi.c index 4563fed9..1070860d 100644 --- a/src/dbgi/dbgi.c +++ b/src/dbgi/dbgi.c @@ -1657,6 +1657,7 @@ internal DI_Match di_match_from_name(DI_MatchStore *store, String8 name, U64 endt_us) { DI_Match result = {0}; + if(name.size != 0) { // rjf: unpack name U64 hash = di_hash_from_string(name, 0); @@ -1802,6 +1803,7 @@ ASYNC_WORK_DEF(di_match_work) { RDI_NameMapKind_GlobalVariables, RDI_NameMapKind_ThreadVariables, + RDI_NameMapKind_Constants, RDI_NameMapKind_Procedures, RDI_NameMapKind_Types, }; @@ -1809,6 +1811,7 @@ ASYNC_WORK_DEF(di_match_work) { RDI_SectionKind_GlobalVariables, RDI_SectionKind_ThreadVariables, + RDI_SectionKind_Constants, RDI_SectionKind_Procedures, RDI_SectionKind_TypeNodes, }; diff --git a/src/eval/eval_core.h b/src/eval/eval_core.h index b3f0f567..5f64436d 100644 --- a/src/eval/eval_core.h +++ b/src/eval/eval_core.h @@ -760,6 +760,7 @@ struct E_BaseCtx E_Module *modules; U64 modules_count; E_Module *primary_module; + DI_MatchStore *dbgi_match_store; // rjf: space hooks void *space_rw_user_data; diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index fa740c8a..f9315bd2 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -1599,7 +1599,6 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I String8 qualifier = expr->qualifier; String8 string = expr->string; String8 string__redirected = string; - String8List namespaceified_strings = {0}; B32 string_mapped = 0; B32 string_is_implicit_member_name = 0; E_TypeKey mapped_type_key = zero_struct; @@ -1739,39 +1738,210 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I } }break; - //- rjf: globals / procedures / types / constants - case E_IdentifierResolutionPath_Globals: - case E_IdentifierResolutionPath_Procedures: - case E_IdentifierResolutionPath_ThreadLocals: - case E_IdentifierResolutionPath_Constants: + //- rjf: built-ins + case E_IdentifierResolutionPath_BuiltIns: { - //- rjf: form namespaceified fallback versions of this lookup string - if(!string_mapped) + // rjf: "true" + if(!string_mapped && str8_match(string, str8_lit("true"), 0)) { - E_Module *module = e_base_ctx->primary_module; - RDI_Parsed *rdi = module->rdi; - RDI_Procedure *procedure = e_cache->thread_ip_procedure; - U64 name_size = 0; - U8 *name_ptr = rdi_string_from_idx(rdi, procedure->name_string_idx, &name_size); - String8 containing_procedure_name = str8(name_ptr, name_size); - U64 last_past_scope_resolution_pos = 0; - for(;;) + string_mapped = 1; + E_OpList oplist = {0}; + e_oplist_push_uconst(arena, &oplist, 1); + mapped_type_key = e_type_key_basic(E_TypeKind_Bool); + mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); + mapped_bytecode_mode = E_Mode_Value; + } + + // rjf: "false" + if(!string_mapped && str8_match(string, str8_lit("false"), 0)) + { + string_mapped = 1; + E_OpList oplist = {0}; + e_oplist_push_uconst(arena, &oplist, 0); + mapped_type_key = e_type_key_basic(E_TypeKind_Bool); + mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); + mapped_bytecode_mode = E_Mode_Value; + } + + // rjf: built-in type names + if(0){} +#define BuiltInType_XList \ +BasicCase("uint8", U8)\ +BasicCase("uint8_t", U8)\ +BasicCase("uchar", UChar8)\ +BasicCase("uchar8", UChar8)\ +BasicCase("uint16", U16)\ +BasicCase("uint16_t", U16)\ +BasicCase("uchar16", UChar16)\ +BasicCase("uint32", U32)\ +BasicCase("uint32_t", U32)\ +BasicCase("uchar32", UChar32)\ +BasicCase("uint64", U64)\ +BasicCase("uint64_t", U64)\ +BasicCase("uint128", U128)\ +BasicCase("uint128_t", U128)\ +BasicCase("uint256", U256)\ +BasicCase("uint256_t", U256)\ +BasicCase("uint512", U512)\ +BasicCase("uint512_t", U512)\ +BasicCase("int8", S8)\ +BasicCase("int8_t", S8)\ +BasicCase("char", Char8)\ +BasicCase("char8", Char8)\ +BasicCase("int16", S16)\ +BasicCase("int16_t", S16)\ +BasicCase("char16", Char16)\ +BasicCase("int32", S32)\ +BasicCase("int32_t", S32)\ +BasicCase("char32", Char32)\ +BasicCase("int64", S64)\ +BasicCase("int64_t", S64)\ +BasicCase("int128", S128)\ +BasicCase("int128_t", S128)\ +BasicCase("int256", S256)\ +BasicCase("int256_t", S256)\ +BasicCase("int512", S512)\ +BasicCase("int512_t", S512)\ +BasicCase("void", Void)\ +BasicCase("bool", Bool)\ +BasicCase("float", F32)\ +BasicCase("float32", F32)\ +BasicCase("double", F64)\ +BasicCase("float64", F64)\ + +#define BasicCase(str, kind) else if(str8_match(string, str8_lit(str), 0)) {mapped_type_key = e_type_key_basic(E_TypeKind_##kind);} + BuiltInType_XList +#undef BasicCase + }break; + + //- rjf: debug info matches + case E_IdentifierResolutionPath_DebugInfoMatch: + { + if(!string_mapped && e_base_ctx->dbgi_match_store != 0 && (qualifier.size == 0 || str8_match(qualifier, str8_lit("symbol"), 0))) + { + DI_Match match = di_match_from_name(e_base_ctx->dbgi_match_store, string, 0); + if(match.idx == 0) { - U64 past_next_dbl_colon_pos = str8_find_needle(containing_procedure_name, last_past_scope_resolution_pos, str8_lit("::"), 0)+2; - U64 past_next_dot_pos = str8_find_needle(containing_procedure_name, last_past_scope_resolution_pos, str8_lit("."), 0)+1; - U64 past_next_scope_resolution_pos = Min(past_next_dbl_colon_pos, past_next_dot_pos); - if(past_next_scope_resolution_pos >= containing_procedure_name.size) + String8List namespaceified_strings = {0}; { - break; + E_Module *module = e_base_ctx->primary_module; + RDI_Parsed *rdi = module->rdi; + RDI_Procedure *procedure = e_cache->thread_ip_procedure; + U64 name_size = 0; + U8 *name_ptr = rdi_string_from_idx(rdi, procedure->name_string_idx, &name_size); + String8 containing_procedure_name = str8(name_ptr, name_size); + U64 last_past_scope_resolution_pos = 0; + for(;;) + { + U64 past_next_dbl_colon_pos = str8_find_needle(containing_procedure_name, last_past_scope_resolution_pos, str8_lit("::"), 0)+2; + U64 past_next_dot_pos = str8_find_needle(containing_procedure_name, last_past_scope_resolution_pos, str8_lit("."), 0)+1; + U64 past_next_scope_resolution_pos = Min(past_next_dbl_colon_pos, past_next_dot_pos); + if(past_next_scope_resolution_pos >= containing_procedure_name.size) + { + break; + } + String8 new_namespace_prefix_possibility = str8_prefix(containing_procedure_name, past_next_scope_resolution_pos); + String8 namespaceified_string = push_str8f(scratch.arena, "%S%S", new_namespace_prefix_possibility, string); + str8_list_push_front(scratch.arena, &namespaceified_strings, namespaceified_string); + last_past_scope_resolution_pos = past_next_scope_resolution_pos; + } + } + for(String8Node *n = namespaceified_strings.first; n != 0; n = n->next) + { + match = di_match_from_name(e_base_ctx->dbgi_match_store, n->string, 0); + if(match.idx != 0) + { + break; + } + } + } + if(match.idx != 0) + { + E_Module *module = &e_base_ctx->modules[match.dbgi_idx]; + RDI_Parsed *rdi = module->rdi; + switch(match.section) + { + default:{}break; + case RDI_SectionKind_GlobalVariables: + { + RDI_GlobalVariable *global_var = rdi_element_from_name_idx(rdi, GlobalVariables, match.idx); + U32 type_idx = global_var->type_idx; + RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); + E_OpList oplist = {0}; + e_oplist_push_op(arena, &oplist, RDI_EvalOp_ConstU64, e_value_u64(module->vaddr_range.min + global_var->voff)); + string_mapped = 1; + mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, (U32)match.dbgi_idx); + mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); + mapped_bytecode_mode = E_Mode_Offset; + mapped_bytecode_space = module->space; + }break; + case RDI_SectionKind_ThreadVariables: + { + RDI_ThreadVariable *thread_var = rdi_element_from_name_idx(rdi, ThreadVariables, match.idx); + U32 type_idx = thread_var->type_idx; + RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); + E_OpList oplist = {0}; + e_oplist_push_op(arena, &oplist, RDI_EvalOp_TLSOff, e_value_u64(thread_var->tls_off)); + string_mapped = 1; + mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, (U32)match.dbgi_idx); + mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); + mapped_bytecode_mode = E_Mode_Offset; + mapped_bytecode_space = module->space; + }break; + case RDI_SectionKind_Constants: + { + RDI_Constant *constant = rdi_element_from_name_idx(rdi, Constants, match.idx); + U32 type_idx = constant->type_idx; + RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); + RDI_U32 constant_value_off = *rdi_element_from_name_idx(rdi, ConstantValueTable, constant->constant_value_idx); + RDI_U32 constant_value_size = *rdi_element_from_name_idx(rdi, ConstantValueTable, constant->constant_value_idx+1) - constant_value_off; + if(constant_value_size <= 8) + { + RDI_U64 constant_value_data_size = 0; + RDI_U8 *constant_value_data = rdi_table_from_name(rdi, ConstantValueData, &constant_value_data_size); + if(0 <= constant_value_off && constant_value_off + constant_value_size <= constant_value_data_size) + { + RDI_U64 value = 0; + MemoryCopy(&value, constant_value_data+constant_value_off, constant_value_size); + E_OpList oplist = {0}; + e_oplist_push_op(arena, &oplist, RDI_EvalOp_ConstU64, e_value_u64(value)); + string_mapped = 1; + mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, (U32)match.dbgi_idx); + mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); + mapped_bytecode_mode = E_Mode_Value; + mapped_bytecode_space = module->space; + break; + } + } + }break; + case RDI_SectionKind_Procedures: + { + RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, match.idx); + RDI_Scope *scope = rdi_element_from_name_idx(rdi, Scopes, procedure->root_scope_idx); + U64 voff = *rdi_element_from_name_idx(rdi, ScopeVOffData, scope->voff_range_first); + U32 type_idx = procedure->type_idx; + RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); + E_OpList oplist = {0}; + e_oplist_push_op(arena, &oplist, RDI_EvalOp_ConstU64, e_value_u64(module->vaddr_range.min + voff)); + string_mapped = 1; + mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, (U32)match.dbgi_idx); + mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); + mapped_bytecode_mode = E_Mode_Value; + mapped_bytecode_space = module->space; + }break; + case RDI_SectionKind_TypeNodes: + { + U32 type_idx = match.idx; + RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); + mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, (U32)match.dbgi_idx); + string_mapped = 1; + }break; } - String8 new_namespace_prefix_possibility = str8_prefix(containing_procedure_name, past_next_scope_resolution_pos); - String8 namespaceified_string = push_str8f(scratch.arena, "%S%S", new_namespace_prefix_possibility, string); - str8_list_push_front(scratch.arena, &namespaceified_strings, namespaceified_string); - last_past_scope_resolution_pos = past_next_scope_resolution_pos; } } //- rjf: try globals +#if 0 if(path == E_IdentifierResolutionPath_Globals && !string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("global"), 0))) { for(U64 module_idx = 0; module_idx < e_base_ctx->modules_count; module_idx += 1) @@ -1809,8 +1979,9 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I } } } - +#endif //- rjf: try thread-locals +#if 0 if(path == E_IdentifierResolutionPath_ThreadLocals && !string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("thread_local"), 0))) { for(U64 module_idx = 0; module_idx < e_base_ctx->modules_count; module_idx += 1) @@ -1848,8 +2019,10 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I } } } +#endif //- rjf: try constants +#if 0 if(path == E_IdentifierResolutionPath_Constants && !string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("constant"), 0))) { if(str8_match(string, str8_lit("true"), 0)) @@ -1917,8 +2090,10 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I } } } +#endif //- rjf: try procedures +#if 0 if(path == E_IdentifierResolutionPath_Procedures && !string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("procedure"), 0))) { for(U64 module_idx = 0; module_idx < e_base_ctx->modules_count; module_idx += 1) @@ -1958,9 +2133,11 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I } } } +#endif }break; //- rjf: try types +#if 0 case E_IdentifierResolutionPath_Types: if(!string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("type"), 0))) { @@ -1970,7 +2147,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I string_mapped = 1; } }break; - +#endif //- rjf: try registers case E_IdentifierResolutionPath_Registers: diff --git a/src/eval/eval_ir.h b/src/eval/eval_ir.h index 105250ae..9673b4fa 100644 --- a/src/eval/eval_ir.h +++ b/src/eval/eval_ir.h @@ -14,11 +14,8 @@ typedef enum E_IdentifierResolutionPath E_IdentifierResolutionPath_ParentExprMember, E_IdentifierResolutionPath_ImplicitThisMember, E_IdentifierResolutionPath_Local, - E_IdentifierResolutionPath_Globals, - E_IdentifierResolutionPath_ThreadLocals, - E_IdentifierResolutionPath_Constants, - E_IdentifierResolutionPath_Procedures, - E_IdentifierResolutionPath_Types, + E_IdentifierResolutionPath_DebugInfoMatch, + E_IdentifierResolutionPath_BuiltIns, E_IdentifierResolutionPath_Registers, E_IdentifierResolutionPath_RegisterAliases, E_IdentifierResolutionPath_Macros, @@ -87,11 +84,8 @@ E_IdentifierResolutionPath e_default_identifier_resolution_paths[] = E_IdentifierResolutionPath_ParentExprMember, E_IdentifierResolutionPath_ImplicitThisMember, E_IdentifierResolutionPath_Local, - E_IdentifierResolutionPath_Globals, - E_IdentifierResolutionPath_ThreadLocals, - E_IdentifierResolutionPath_Constants, - E_IdentifierResolutionPath_Procedures, - E_IdentifierResolutionPath_Types, + E_IdentifierResolutionPath_BuiltIns, + E_IdentifierResolutionPath_DebugInfoMatch, E_IdentifierResolutionPath_Registers, E_IdentifierResolutionPath_RegisterAliases, E_IdentifierResolutionPath_Macros, @@ -110,11 +104,8 @@ E_IdentifierResolutionPath e_callable_identifier_resolution_paths[] = E_IdentifierResolutionPath_ParentExprMember, E_IdentifierResolutionPath_ImplicitThisMember, E_IdentifierResolutionPath_Local, - E_IdentifierResolutionPath_Globals, - E_IdentifierResolutionPath_ThreadLocals, - E_IdentifierResolutionPath_Constants, - E_IdentifierResolutionPath_Procedures, - E_IdentifierResolutionPath_Types, + E_IdentifierResolutionPath_BuiltIns, + E_IdentifierResolutionPath_DebugInfoMatch, E_IdentifierResolutionPath_Registers, E_IdentifierResolutionPath_RegisterAliases, }; diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 9acb9a82..a6cabd33 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -11700,6 +11700,15 @@ rd_frame(void) } } + ////////////////////////////// + //- rjf: set name matching parameters; begin matching + // + { + DI_KeyList keys_list = d_push_active_dbgi_key_list(scratch.arena); + DI_KeyArray keys = di_key_array_from_list(scratch.arena, &keys_list); + di_match_store_begin(rd_state->match_store, keys); + } + ////////////////////////////// //- rjf: loop - consume events in core, tick engine, and repeat // @@ -11765,9 +11774,10 @@ rd_frame(void) ctx->thread_unwind_count = unwind_count; //- rjf: fill modules - ctx->modules = eval_modules; - ctx->modules_count = eval_modules_count; - ctx->primary_module = eval_modules_primary; + ctx->modules = eval_modules; + ctx->modules_count = eval_modules_count; + ctx->primary_module = eval_modules_primary; + ctx->dbgi_match_store = rd_state->match_store; //- rjf: fill space hooks ctx->space_gen = rd_eval_space_gen; @@ -16991,15 +17001,6 @@ rd_frame(void) scratch_end(scratch); } - ////////////////////////////// - //- rjf: set name matching parameters; begin matching - // - { - DI_KeyList keys_list = d_push_active_dbgi_key_list(scratch.arena); - DI_KeyArray keys = di_key_array_from_list(scratch.arena, &keys_list); - di_match_store_begin(rd_state->match_store, keys); - } - ////////////////////////////// //- rjf: compute animation rates, given config // From 460dbe52fe2fb13c0303cbb3abe934828247da5c Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 27 Jun 2025 12:19:07 -0700 Subject: [PATCH 251/372] fix invalid strtbl validity check in pdb_has_file_ref path --- src/pdb/pdb_parse.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pdb/pdb_parse.c b/src/pdb/pdb_parse.c index 36f5e7ad..0caff005 100644 --- a/src/pdb/pdb_parse.c +++ b/src/pdb/pdb_parse.c @@ -1121,7 +1121,7 @@ pdb_has_file_ref(String8 msf_data, String8List file_list, MSF_RawStreamTable *st MSF_StreamNumber strtbl_sn = named_streams->sn[PDB_NamedStream_StringTable]; String8 strtbl_data = msf_data_from_stream_number(scratch.arena, msf_data, st, strtbl_sn); PDB_Strtbl *strtbl = pdb_strtbl_from_data(scratch.arena, strtbl_data); - if(strtbl) + if(strtbl->bucket_count != 0) { for(String8Node *file_n = file_list.first; file_n != 0; file_n = file_n->next) { From 29886171b390e99936472b89b2b3ee0206c767b2 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 27 Jun 2025 12:24:58 -0700 Subject: [PATCH 252/372] fix missing strtbl stream case in msf parser --- src/msf/msf_parse.c | 63 ++++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/src/msf/msf_parse.c b/src/msf/msf_parse.c index aa64411f..6fcd65fe 100644 --- a/src/msf/msf_parse.c +++ b/src/msf/msf_parse.c @@ -230,41 +230,44 @@ msf_raw_stream_table_from_data(Arena *arena, String8 msf_data) internal String8 msf_data_from_stream_number(Arena *arena, String8 msf_data, MSF_RawStreamTable *st, MSF_StreamNumber sn) { - MSF_RawStream stream = st->streams[sn]; - - U8 *stream_buf = push_array_no_zero(arena, U8, stream.size); - U8 *stream_out_ptr = stream_buf; - for (U32 i = 0; i < stream.page_count; ++i) { - U64 page_idx; - if (st->index_size == 4) { - page_idx = stream.u.page_indices_u32[i]; - } else { - page_idx = stream.u.page_indices_u16[i]; + String8 result = {0}; + if(sn < st->stream_count) + { + MSF_RawStream stream = st->streams[sn]; + U8 *stream_buf = push_array_no_zero(arena, U8, stream.size); + U8 *stream_out_ptr = stream_buf; + for (U32 i = 0; i < stream.page_count; ++i) { + U64 page_idx; + if (st->index_size == 4) { + page_idx = stream.u.page_indices_u32[i]; + } else { + page_idx = stream.u.page_indices_u16[i]; + } + + U64 stream_page_off = (U64)page_idx * st->page_size; + if (stream_page_off + st->page_size > msf_data.size) { + break; + } + + U8 *stream_page_base = msf_data.str + stream_page_off; + + // clamp copy size by end of stream + U32 stream_pos = (U32) (stream_out_ptr - stream_buf); + U32 remaining_size = stream.size - stream_pos; + U32 copy_size = ClampTop(st->page_size, remaining_size); + + // copy page data + MemoryCopy(stream_out_ptr, stream_page_base, copy_size); + stream_out_ptr += copy_size; } - U64 stream_page_off = (U64)page_idx * st->page_size; - if (stream_page_off + st->page_size > msf_data.size) { - break; - } + U64 copy_size = (U64)(stream_out_ptr - stream_buf); - U8 *stream_page_base = msf_data.str + stream_page_off; + U64 unused_buf_size = stream.size - copy_size; + arena_pop(arena, unused_buf_size); - // clamp copy size by end of stream - U32 stream_pos = (U32) (stream_out_ptr - stream_buf); - U32 remaining_size = stream.size - stream_pos; - U32 copy_size = ClampTop(st->page_size, remaining_size); - - // copy page data - MemoryCopy(stream_out_ptr, stream_page_base, copy_size); - stream_out_ptr += copy_size; + result = str8(stream_buf, copy_size); } - - U64 copy_size = (U64)(stream_out_ptr - stream_buf); - - U64 unused_buf_size = stream.size - copy_size; - arena_pop(arena, unused_buf_size); - - String8 result = str8(stream_buf, copy_size); return result; } From 5750c17c8031c40ebc7e9729d126c50a8909f9f2 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 27 Jun 2025 12:34:46 -0700 Subject: [PATCH 253/372] eliminate old slow identifier resolution path --- src/eval/eval_ir.c | 210 +-------------------------------------------- 1 file changed, 1 insertion(+), 209 deletions(-) diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index f9315bd2..a6232a64 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -1809,7 +1809,7 @@ BasicCase("float32", F32)\ BasicCase("double", F64)\ BasicCase("float64", F64)\ -#define BasicCase(str, kind) else if(str8_match(string, str8_lit(str), 0)) {mapped_type_key = e_type_key_basic(E_TypeKind_##kind);} +#define BasicCase(str, kind) else if(str8_match(string, str8_lit(str), 0)) {string_mapped = 1; mapped_type_key = e_type_key_basic(E_TypeKind_##kind);} BuiltInType_XList #undef BasicCase }break; @@ -1939,216 +1939,8 @@ BasicCase("float64", F64)\ } } } - - //- rjf: try globals -#if 0 - if(path == E_IdentifierResolutionPath_Globals && !string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("global"), 0))) - { - for(U64 module_idx = 0; module_idx < e_base_ctx->modules_count; module_idx += 1) - { - E_Module *module = &e_base_ctx->modules[module_idx]; - RDI_Parsed *rdi = module->rdi; - RDI_NameMap *name_map = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_GlobalVariables); - RDI_ParsedNameMap parsed_name_map = {0}; - rdi_parsed_from_name_map(rdi, name_map, &parsed_name_map); - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &parsed_name_map, string.str, string.size); - U32 matches_count = 0; - U32 *matches = rdi_matches_from_map_node(rdi, node, &matches_count); - for(String8Node *n = namespaceified_strings.first; - n != 0 && matches_count == 0; - n = n->next) - { - node = rdi_name_map_lookup(rdi, &parsed_name_map, n->string.str, n->string.size); - matches_count = 0; - matches = rdi_matches_from_map_node(rdi, node, &matches_count); - } - if(matches_count != 0) - { - U32 match_idx = matches[matches_count-1]; - RDI_GlobalVariable *global_var = rdi_element_from_name_idx(rdi, GlobalVariables, match_idx); - U32 type_idx = global_var->type_idx; - RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); - E_OpList oplist = {0}; - e_oplist_push_op(arena, &oplist, RDI_EvalOp_ConstU64, e_value_u64(module->vaddr_range.min + global_var->voff)); - string_mapped = 1; - mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, (U32)module_idx); - mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); - mapped_bytecode_mode = E_Mode_Offset; - mapped_bytecode_space = module->space; - break; - } - } - } -#endif - //- rjf: try thread-locals -#if 0 - if(path == E_IdentifierResolutionPath_ThreadLocals && !string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("thread_local"), 0))) - { - for(U64 module_idx = 0; module_idx < e_base_ctx->modules_count; module_idx += 1) - { - E_Module *module = &e_base_ctx->modules[module_idx]; - RDI_Parsed *rdi = module->rdi; - RDI_NameMap *name_map = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_ThreadVariables); - RDI_ParsedNameMap parsed_name_map = {0}; - rdi_parsed_from_name_map(rdi, name_map, &parsed_name_map); - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &parsed_name_map, string.str, string.size); - U32 matches_count = 0; - U32 *matches = rdi_matches_from_map_node(rdi, node, &matches_count); - for(String8Node *n = namespaceified_strings.first; - n != 0 && matches_count == 0; - n = n->next) - { - node = rdi_name_map_lookup(rdi, &parsed_name_map, n->string.str, n->string.size); - matches_count = 0; - matches = rdi_matches_from_map_node(rdi, node, &matches_count); - } - if(matches_count != 0) - { - U32 match_idx = matches[matches_count-1]; - RDI_ThreadVariable *thread_var = rdi_element_from_name_idx(rdi, ThreadVariables, match_idx); - U32 type_idx = thread_var->type_idx; - RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); - E_OpList oplist = {0}; - e_oplist_push_op(arena, &oplist, RDI_EvalOp_TLSOff, e_value_u64(thread_var->tls_off)); - string_mapped = 1; - mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, (U32)module_idx); - mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); - mapped_bytecode_mode = E_Mode_Offset; - mapped_bytecode_space = module->space; - break; - } - } - } -#endif - - //- rjf: try constants -#if 0 - if(path == E_IdentifierResolutionPath_Constants && !string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("constant"), 0))) - { - if(str8_match(string, str8_lit("true"), 0)) - { - string_mapped = 1; - E_OpList oplist = {0}; - e_oplist_push_uconst(arena, &oplist, 1); - mapped_type_key = e_type_key_basic(E_TypeKind_Bool); - mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); - mapped_bytecode_mode = E_Mode_Value; - } - else if(str8_match(string, str8_lit("false"), 0)) - { - string_mapped = 1; - E_OpList oplist = {0}; - e_oplist_push_uconst(arena, &oplist, 0); - mapped_type_key = e_type_key_basic(E_TypeKind_Bool); - mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); - mapped_bytecode_mode = E_Mode_Value; - } - else for(U64 module_idx = 0; module_idx < e_base_ctx->modules_count; module_idx += 1) - { - E_Module *module = &e_base_ctx->modules[module_idx]; - RDI_Parsed *rdi = module->rdi; - RDI_NameMap *name_map = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_Constants); - RDI_ParsedNameMap parsed_name_map = {0}; - rdi_parsed_from_name_map(rdi, name_map, &parsed_name_map); - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &parsed_name_map, string.str, string.size); - U32 matches_count = 0; - U32 *matches = rdi_matches_from_map_node(rdi, node, &matches_count); - for(String8Node *n = namespaceified_strings.first; - n != 0 && matches_count == 0; - n = n->next) - { - node = rdi_name_map_lookup(rdi, &parsed_name_map, n->string.str, n->string.size); - matches_count = 0; - matches = rdi_matches_from_map_node(rdi, node, &matches_count); - } - if(matches_count != 0) - { - U32 match_idx = matches[matches_count-1]; - RDI_Constant *constant = rdi_element_from_name_idx(rdi, Constants, match_idx); - U32 type_idx = constant->type_idx; - RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); - RDI_U32 constant_value_off = *rdi_element_from_name_idx(rdi, ConstantValueTable, constant->constant_value_idx); - RDI_U32 constant_value_size = *rdi_element_from_name_idx(rdi, ConstantValueTable, constant->constant_value_idx+1) - constant_value_off; - if(constant_value_size <= 8) - { - RDI_U64 constant_value_data_size = 0; - RDI_U8 *constant_value_data = rdi_table_from_name(rdi, ConstantValueData, &constant_value_data_size); - if(0 <= constant_value_off && constant_value_off + constant_value_size <= constant_value_data_size) - { - RDI_U64 value = 0; - MemoryCopy(&value, constant_value_data+constant_value_off, constant_value_size); - E_OpList oplist = {0}; - e_oplist_push_op(arena, &oplist, RDI_EvalOp_ConstU64, e_value_u64(value)); - string_mapped = 1; - mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, (U32)module_idx); - mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); - mapped_bytecode_mode = E_Mode_Value; - mapped_bytecode_space = module->space; - break; - } - } - } - } - } -#endif - - //- rjf: try procedures -#if 0 - if(path == E_IdentifierResolutionPath_Procedures && !string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("procedure"), 0))) - { - for(U64 module_idx = 0; module_idx < e_base_ctx->modules_count; module_idx += 1) - { - E_Module *module = &e_base_ctx->modules[module_idx]; - RDI_Parsed *rdi = module->rdi; - RDI_NameMap *name_map = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_Procedures); - RDI_ParsedNameMap parsed_name_map = {0}; - rdi_parsed_from_name_map(rdi, name_map, &parsed_name_map); - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &parsed_name_map, string.str, string.size); - U32 matches_count = 0; - U32 *matches = rdi_matches_from_map_node(rdi, node, &matches_count); - for(String8Node *n = namespaceified_strings.first; - n != 0 && matches_count == 0; - n = n->next) - { - node = rdi_name_map_lookup(rdi, &parsed_name_map, n->string.str, n->string.size); - matches_count = 0; - matches = rdi_matches_from_map_node(rdi, node, &matches_count); - } - if(matches_count != 0) - { - U32 match_idx = matches[matches_count-1]; - RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, match_idx); - RDI_Scope *scope = rdi_element_from_name_idx(rdi, Scopes, procedure->root_scope_idx); - U64 voff = *rdi_element_from_name_idx(rdi, ScopeVOffData, scope->voff_range_first); - U32 type_idx = procedure->type_idx; - RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); - E_OpList oplist = {0}; - e_oplist_push_op(arena, &oplist, RDI_EvalOp_ConstU64, e_value_u64(module->vaddr_range.min + voff)); - string_mapped = 1; - mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, (U32)module_idx); - mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); - mapped_bytecode_mode = E_Mode_Value; - mapped_bytecode_space = module->space; - break; - } - } - } -#endif }break; - //- rjf: try types -#if 0 - case E_IdentifierResolutionPath_Types: - if(!string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("type"), 0))) - { - mapped_type_key = e_leaf_type_from_name(string); - if(!e_type_key_match(e_type_key_zero(), mapped_type_key)) - { - string_mapped = 1; - } - }break; -#endif - //- rjf: try registers case E_IdentifierResolutionPath_Registers: if(!string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("reg"), 0))) From 09a047feee7df68a19393da1117d950bd516385a Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 27 Jun 2025 12:36:27 -0700 Subject: [PATCH 254/372] zero match store dbgi/idx selection info if params hash has changed; we can still return the section kind (e.g. for syntax highlighting), but we no longer want to try to refer to any specific debug info slot, since it may have been evicted. --- src/dbgi/dbgi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/dbgi/dbgi.c b/src/dbgi/dbgi.c index 1070860d..d061096c 100644 --- a/src/dbgi/dbgi.c +++ b/src/dbgi/dbgi.c @@ -1757,6 +1757,11 @@ di_match_from_name(DI_MatchStore *store, String8 name, U64 endt_us) // rjf: return node present info result = node->primary_match; + if(node->cmp_params_hash != store->params_hash) + { + result.dbgi_idx = 0; + result.idx = 0; + } } return result; } From d723a0097937cc18177672b9a159fbf18b78cc92 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 27 Jun 2025 12:52:13 -0700 Subject: [PATCH 255/372] zero precise match info before doing matches in dbgi async match path, so we don't keep stale ones around too long, once they've been invalidated --- src/dbgi/dbgi.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/dbgi/dbgi.c b/src/dbgi/dbgi.c index d061096c..83048aee 100644 --- a/src/dbgi/dbgi.c +++ b/src/dbgi/dbgi.c @@ -1801,6 +1801,10 @@ ASYNC_WORK_DEF(di_match_work) params_hash = store->params_hash; } + //- rjf: zero match info + ins_atomic_u64_eval_assign(&node->primary_match.dbgi_idx, 0); + ins_atomic_u32_eval_assign(&node->primary_match.idx, 0); + //- rjf: gather matches DI_MatchNode *first_match = 0; DI_MatchNode *last_match = 0; From d4c15d9089b5de56e36342eeef3185c398be7f48 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 27 Jun 2025 13:55:18 -0700 Subject: [PATCH 256/372] pull out type-only identifier resolution and switch to match store; eliminate synchronous matching work --- src/eval/eval_ir.c | 61 ++--------- src/eval/eval_ir.h | 9 +- src/eval/eval_parse.c | 213 ++++++++++++--------------------------- src/eval/eval_parse.h | 3 +- src/raddbg/raddbg_core.c | 40 +++++--- 5 files changed, 107 insertions(+), 219 deletions(-) diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index a6232a64..9c6e30ae 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -1738,8 +1738,8 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I } }break; - //- rjf: built-ins - case E_IdentifierResolutionPath_BuiltIns: + //- rjf: built-in constants + case E_IdentifierResolutionPath_BuiltInConstants: { // rjf: "true" if(!string_mapped && str8_match(string, str8_lit("true"), 0)) @@ -1762,56 +1762,13 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); mapped_bytecode_mode = E_Mode_Value; } - - // rjf: built-in type names - if(0){} -#define BuiltInType_XList \ -BasicCase("uint8", U8)\ -BasicCase("uint8_t", U8)\ -BasicCase("uchar", UChar8)\ -BasicCase("uchar8", UChar8)\ -BasicCase("uint16", U16)\ -BasicCase("uint16_t", U16)\ -BasicCase("uchar16", UChar16)\ -BasicCase("uint32", U32)\ -BasicCase("uint32_t", U32)\ -BasicCase("uchar32", UChar32)\ -BasicCase("uint64", U64)\ -BasicCase("uint64_t", U64)\ -BasicCase("uint128", U128)\ -BasicCase("uint128_t", U128)\ -BasicCase("uint256", U256)\ -BasicCase("uint256_t", U256)\ -BasicCase("uint512", U512)\ -BasicCase("uint512_t", U512)\ -BasicCase("int8", S8)\ -BasicCase("int8_t", S8)\ -BasicCase("char", Char8)\ -BasicCase("char8", Char8)\ -BasicCase("int16", S16)\ -BasicCase("int16_t", S16)\ -BasicCase("char16", Char16)\ -BasicCase("int32", S32)\ -BasicCase("int32_t", S32)\ -BasicCase("char32", Char32)\ -BasicCase("int64", S64)\ -BasicCase("int64_t", S64)\ -BasicCase("int128", S128)\ -BasicCase("int128_t", S128)\ -BasicCase("int256", S256)\ -BasicCase("int256_t", S256)\ -BasicCase("int512", S512)\ -BasicCase("int512_t", S512)\ -BasicCase("void", Void)\ -BasicCase("bool", Bool)\ -BasicCase("float", F32)\ -BasicCase("float32", F32)\ -BasicCase("double", F64)\ -BasicCase("float64", F64)\ - -#define BasicCase(str, kind) else if(str8_match(string, str8_lit(str), 0)) {string_mapped = 1; mapped_type_key = e_type_key_basic(E_TypeKind_##kind);} - BuiltInType_XList -#undef BasicCase + }break; + + //- rjf: built-in types + case E_IdentifierResolutionPath_BuiltInTypes: + { + mapped_type_key = e_leaf_builtin_type_key_from_name(string); + string_mapped = !e_type_key_match(mapped_type_key, e_type_key_zero()); }break; //- rjf: debug info matches diff --git a/src/eval/eval_ir.h b/src/eval/eval_ir.h index 9673b4fa..4b463442 100644 --- a/src/eval/eval_ir.h +++ b/src/eval/eval_ir.h @@ -15,7 +15,8 @@ typedef enum E_IdentifierResolutionPath E_IdentifierResolutionPath_ImplicitThisMember, E_IdentifierResolutionPath_Local, E_IdentifierResolutionPath_DebugInfoMatch, - E_IdentifierResolutionPath_BuiltIns, + E_IdentifierResolutionPath_BuiltInConstants, + E_IdentifierResolutionPath_BuiltInTypes, E_IdentifierResolutionPath_Registers, E_IdentifierResolutionPath_RegisterAliases, E_IdentifierResolutionPath_Macros, @@ -84,7 +85,8 @@ E_IdentifierResolutionPath e_default_identifier_resolution_paths[] = E_IdentifierResolutionPath_ParentExprMember, E_IdentifierResolutionPath_ImplicitThisMember, E_IdentifierResolutionPath_Local, - E_IdentifierResolutionPath_BuiltIns, + E_IdentifierResolutionPath_BuiltInConstants, + E_IdentifierResolutionPath_BuiltInTypes, E_IdentifierResolutionPath_DebugInfoMatch, E_IdentifierResolutionPath_Registers, E_IdentifierResolutionPath_RegisterAliases, @@ -104,7 +106,8 @@ E_IdentifierResolutionPath e_callable_identifier_resolution_paths[] = E_IdentifierResolutionPath_ParentExprMember, E_IdentifierResolutionPath_ImplicitThisMember, E_IdentifierResolutionPath_Local, - E_IdentifierResolutionPath_BuiltIns, + E_IdentifierResolutionPath_BuiltInConstants, + E_IdentifierResolutionPath_BuiltInTypes, E_IdentifierResolutionPath_DebugInfoMatch, E_IdentifierResolutionPath_Registers, E_IdentifierResolutionPath_RegisterAliases, diff --git a/src/eval/eval_parse.c b/src/eval/eval_parse.c index a3b7cd29..664ec814 100644 --- a/src/eval/eval_parse.c +++ b/src/eval/eval_parse.c @@ -526,156 +526,75 @@ e_string_from_expr(Arena *arena, E_Expr *expr, String8 parent_expr_string) //~ rjf: Parsing Functions internal E_TypeKey -e_leaf_type_from_name(String8 name) +e_leaf_builtin_type_key_from_name(String8 name) { - ProfBeginFunction(); - E_TypeKey key = zero_struct; - B32 found = 0; - if(!found) + E_TypeKey result = {0}; + if(0){} +#define BuiltInType_XList \ +BasicCase("uint8", U8)\ +BasicCase("uint8_t", U8)\ +BasicCase("uchar", UChar8)\ +BasicCase("uchar8", UChar8)\ +BasicCase("uint16", U16)\ +BasicCase("uint16_t", U16)\ +BasicCase("uchar16", UChar16)\ +BasicCase("uint32", U32)\ +BasicCase("uint32_t", U32)\ +BasicCase("uchar32", UChar32)\ +BasicCase("uint64", U64)\ +BasicCase("uint64_t", U64)\ +BasicCase("uint128", U128)\ +BasicCase("uint128_t", U128)\ +BasicCase("uint256", U256)\ +BasicCase("uint256_t", U256)\ +BasicCase("uint512", U512)\ +BasicCase("uint512_t", U512)\ +BasicCase("int8", S8)\ +BasicCase("int8_t", S8)\ +BasicCase("char", Char8)\ +BasicCase("char8", Char8)\ +BasicCase("int16", S16)\ +BasicCase("int16_t", S16)\ +BasicCase("char16", Char16)\ +BasicCase("int32", S32)\ +BasicCase("int32_t", S32)\ +BasicCase("char32", Char32)\ +BasicCase("int64", S64)\ +BasicCase("int64_t", S64)\ +BasicCase("int128", S128)\ +BasicCase("int128_t", S128)\ +BasicCase("int256", S256)\ +BasicCase("int256_t", S256)\ +BasicCase("int512", S512)\ +BasicCase("int512_t", S512)\ +BasicCase("void", Void)\ +BasicCase("bool", Bool)\ +BasicCase("float", F32)\ +BasicCase("float32", F32)\ +BasicCase("double", F64)\ +BasicCase("float64", F64) +#define BasicCase(str, kind) else if(str8_match(name, str8_lit(str), 0)) {result = e_type_key_basic(E_TypeKind_##kind);} + BuiltInType_XList +#undef BasicCase + return result; +} + +internal E_TypeKey +e_leaf_type_key_from_name(String8 name) +{ + E_TypeKey key = e_leaf_builtin_type_key_from_name(name); + if(!e_type_key_match(e_type_key_zero(), key)) { -#define Case(str) (str8_match(name, str8_lit(str), 0)) - if(0){} - else if(Case("uint8") || Case("uint8_t")) + DI_Match match = di_match_from_name(e_base_ctx->dbgi_match_store, name, 0); + if(match.section == RDI_SectionKind_TypeNodes) { - found = 1; - key = e_type_key_basic(E_TypeKind_U8); - } - else if(Case("uchar8") || Case("uchar")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_UChar8); - } - else if(Case("uint16") || Case("uint16_t")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_U16); - } - else if(Case("uchar16")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_UChar16); - } - else if(Case("uint32") || Case("uint32_t")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_U32); - } - else if(Case("uchar32")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_UChar32); - } - else if(Case("uint64") || Case("uint64_t")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_U64); - } - else if(Case("uint128") || Case("uint128_t")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_U128); - } - else if(Case("uint256") || Case("uint256_t")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_U256); - } - else if(Case("uint512") || Case("uint512_t")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_U512); - } - else if(Case("s8") || Case("b8") || Case("B8") || Case("i8") || Case("int8") || Case("int8_t")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_S8); - } - else if(Case("char8") || Case("char")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_Char8); - } - else if(Case("int16") || Case("int16_t")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_S16); - } - else if(Case("char16")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_Char16); - } - else if(Case("int32") || Case("int32_t") || Case("char32")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_S32); - } - else if(Case("char32")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_Char32); - } - else if(Case("int64") || Case("int64_t")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_S64); - } - else if(Case("int256") || Case("int256_t")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_S256); - } - else if(Case("int512") || Case("int512_t")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_S512); - } - else if(Case("void")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_Void); - } - else if(Case("bool")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_Bool); - } - else if(Case("float") || Case("float32")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_F32); - } - else if(Case("double") || Case("float64")) - { - found = 1; - key = e_type_key_basic(E_TypeKind_F64); - } -#undef Case - } - if(!found) - { - for(U64 module_idx = 0; module_idx < e_base_ctx->modules_count; module_idx += 1) - { - RDI_Parsed *rdi = e_base_ctx->modules[module_idx].rdi; - RDI_NameMap *name_map = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_Types); - RDI_ParsedNameMap parsed_name_map = {0}; - rdi_parsed_from_name_map(rdi, name_map, &parsed_name_map); - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &parsed_name_map, name.str, name.size); - if(node != 0) - { - U32 match_count = 0; - U32 *matches = rdi_matches_from_map_node(rdi, node, &match_count); - if(match_count != 0) - { - RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, matches[0]); - found = (type_node->kind != RDI_TypeKind_NULL); - key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), matches[0], module_idx); - break; - } - } + E_Module *module = &e_base_ctx->modules[match.dbgi_idx]; + RDI_Parsed *rdi = module->rdi; + U32 type_idx = match.idx; + RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); + key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, (U32)match.dbgi_idx); } } - ProfEnd(); return key; } @@ -690,7 +609,7 @@ e_type_key_from_expr(E_Expr *expr) default:{}break; case E_ExprKind_LeafIdentifier: { - result = e_leaf_type_from_name(expr->string); + result = e_leaf_type_key_from_name(expr->string); }break; case E_ExprKind_TypeIdent: { @@ -744,7 +663,7 @@ e_push_type_parse_from_text_tokens(Arena *arena, String8 text, E_TokenArray toke { token_string = str8_substr(token_string, r1u64(1, token_string.size-1)); } - E_TypeKey type_key = e_leaf_type_from_name(token_string); + E_TypeKey type_key = e_leaf_type_key_from_name(token_string); if(!e_type_key_match(e_type_key_zero(), type_key)) { token_it += 1; diff --git a/src/eval/eval_parse.h b/src/eval/eval_parse.h index d3021dcc..1f14b160 100644 --- a/src/eval/eval_parse.h +++ b/src/eval/eval_parse.h @@ -34,7 +34,8 @@ internal String8 e_string_from_expr(Arena *arena, E_Expr *expr, String8 parent_e //////////////////////////////// //~ rjf: Parsing Functions -internal E_TypeKey e_leaf_type_from_name(String8 name); +internal E_TypeKey e_leaf_builtin_type_key_from_name(String8 name); +internal E_TypeKey e_leaf_type_key_from_name(String8 name); internal E_TypeKey e_type_key_from_expr(E_Expr *expr); internal E_Parse e_push_type_parse_from_text_tokens(Arena *arena, String8 text, E_TokenArray tokens); internal E_Parse e_push_parse_from_string_tokens__prec(Arena *arena, String8 text, E_TokenArray tokens, S64 max_precedence, U64 max_chain_count); diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index a6cabd33..f6c6b039 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -12420,24 +12420,27 @@ rd_frame(void) // RD_CfgList immediate_type_views = {0}; CTRL_EntityArray modules = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Module); - for EachIndex(idx, modules.count) + ProfScope("gather config from loaded modules") { - CTRL_Entity *module = modules.v[idx]; - String8 raddbg_data = ctrl_raddbg_data_from_module(scratch.arena, module->handle); - U8 split_char = 0; - String8List raddbg_data_text_parts = str8_split(scratch.arena, raddbg_data, &split_char, 1, 0); - U64 cfg_idx = 0; - for(String8Node *text_n = raddbg_data_text_parts.first; text_n != 0; text_n = text_n->next) + for EachIndex(idx, modules.count) { - String8 text = text_n->string; - RD_CfgList cfgs = rd_cfg_tree_list_from_string(scratch.arena, str8_zero(), text); - String8 module_name = ctrl_string_from_handle(scratch.arena, module->handle); - for(RD_CfgNode *n = cfgs.first; n != 0; n = n->next, cfg_idx += 1) + CTRL_Entity *module = modules.v[idx]; + String8 raddbg_data = ctrl_raddbg_data_from_module(scratch.arena, module->handle); + U8 split_char = 0; + String8List raddbg_data_text_parts = str8_split(scratch.arena, raddbg_data, &split_char, 1, 0); + U64 cfg_idx = 0; + for(String8Node *text_n = raddbg_data_text_parts.first; text_n != 0; text_n = text_n->next) { - RD_Cfg *immediate_root = rd_immediate_cfg_from_keyf("module_%S_cfg_%I64x", module_name, cfg_idx); - rd_cfg_release_all_children(immediate_root); - rd_cfg_insert_child(immediate_root, immediate_root->last, n->v); - rd_cfg_list_push(scratch.arena, &immediate_type_views, n->v); + String8 text = text_n->string; + RD_CfgList cfgs = rd_cfg_tree_list_from_string(scratch.arena, str8_zero(), text); + String8 module_name = ctrl_string_from_handle(scratch.arena, module->handle); + for(RD_CfgNode *n = cfgs.first; n != 0; n = n->next, cfg_idx += 1) + { + RD_Cfg *immediate_root = rd_immediate_cfg_from_keyf("module_%S_cfg_%I64x", module_name, cfg_idx); + rd_cfg_release_all_children(immediate_root); + rd_cfg_insert_child(immediate_root, immediate_root->last, n->v); + rd_cfg_list_push(scratch.arena, &immediate_type_views, n->v); + } } } } @@ -12445,6 +12448,7 @@ rd_frame(void) //////////////////////////// //- rjf: construct default immediate-mode configs based on loaded modules // + ProfScope("construct default immediate-mode configs based on loaded modules") { local_persist read_only struct { @@ -12571,7 +12575,7 @@ rd_frame(void) //////////////////////////// //- rjf: process top-level graphical commands // - if(rd_state->frame_depth == 1) + if(rd_state->frame_depth == 1) ProfScope("process top-level graphical commands") { for(;rd_next_cmd(&cmd);) RD_RegsScope() { @@ -17113,6 +17117,10 @@ rd_frame(void) ////////////////////////////// //- rjf: close frame scopes // + // NOTE(rjf): this always must happen before the refresh, since that + // will sleep for vsync, and we do not want to hold handles for long, + // since eviction threads may be waiting to get rid of stuff. + // di_scope_close(rd_state->frame_di_scope); ctrl_scope_close(rd_state->frame_ctrl_scope); rd_state->frame_di_scope = frame_di_scope_restore; From 0018147b95083d128f3d692afb1e20f660dd2ed8 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 27 Jun 2025 14:40:13 -0700 Subject: [PATCH 257/372] bounds-check di matches --- src/eval/eval_ir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index 9c6e30ae..a7c59754 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -1812,7 +1812,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I } } } - if(match.idx != 0) + if(match.idx != 0 && match.dbgi_idx < e_base_ctx->modules_count) { E_Module *module = &e_base_ctx->modules[match.dbgi_idx]; RDI_Parsed *rdi = module->rdi; From 5ba9b6abd884748867283d65bc72c0db232e8fd9 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 27 Jun 2025 22:54:34 -0700 Subject: [PATCH 258/372] regression debugging & notes --- src/ctrl/ctrl_core.c | 56 +++++----------------------------------- src/raddbg/raddbg_main.c | 7 ++++- 2 files changed, 13 insertions(+), 50 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 764a8936..53afdd25 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -1691,7 +1691,7 @@ ctrl_key_from_process_vaddr_range(CTRL_Handle process, Rng1U64 vaddr_range, B32 } } end_fast_lookup:; - if(os_now_microseconds() >= endt_us || !id_working) + if(!id_stale || !id_working || os_now_microseconds() >= endt_us) { break; } @@ -1747,7 +1747,7 @@ ctrl_key_from_process_vaddr_range(CTRL_Handle process, Rng1U64 vaddr_range, B32 } else { - node_needs_stream = (range_n->mem_gen < mem_gen); + node_needs_stream = (range_n->mem_gen < mem_gen && range_n->working_count == 0); } if(node_needs_stream) { @@ -1762,34 +1762,14 @@ ctrl_key_from_process_vaddr_range(CTRL_Handle process, Rng1U64 vaddr_range, B32 { if(ctrl_u2ms_enqueue_req(key, process, vaddr_range, zero_terminated, endt_us)) { - async_push_work(ctrl_mem_stream_work, .working_counter = node_working_count); + async_push_work(ctrl_mem_stream_work); requested = 1; } - else OS_MutexScopeR(process_stripe->rw_mutex) - { - for(CTRL_ProcessMemoryCacheNode *process_n = process_slot->first; process_n != 0; process_n = process_n->next) - { - if(ctrl_handle_match(process_n->handle, process)) - { - U64 range_slot_idx = range_hash%process_n->range_hash_slots_count; - CTRL_ProcessMemoryRangeHashSlot *range_slot = &process_n->range_hash_slots[range_slot_idx]; - for(CTRL_ProcessMemoryRangeHashNode *n = range_slot->first; n != 0; n = n->next) - { - if(hs_id_match(n->id, id)) - { - ins_atomic_u64_dec_eval(&n->working_count); - goto end_fail_work; - } - } - } - } - end_fail_work:; - } } } //- rjf: step 4: if we didn't request, and if we aren't working, then exit - if(!requested && !id_working) + if(!requested) { break; } @@ -6832,7 +6812,6 @@ ASYNC_WORK_DEF(ctrl_mem_stream_work) void *range_base = 0; U64 zero_terminated_size = 0; U64 pre_read_mem_gen = ctrl_mem_gen(); - U64 post_read_mem_gen = 0; { range_size = dim_1u64(vaddr_range_clamped); U64 page_size = os_get_system_info()->page_size; @@ -6845,29 +6824,7 @@ ASYNC_WORK_DEF(ctrl_mem_stream_work) else { range_base = push_array_no_zero(range_arena, U8, range_size); - U64 bytes_read = 0; - U64 retry_count = 0; - U64 retry_limit = range_size > page_size ? 64 : 0; - for(Rng1U64 vaddr_range_clamped_retry = vaddr_range_clamped; - retry_count <= retry_limit; - retry_count += 1) - { - bytes_read = dmn_process_read(process.dmn_handle, vaddr_range_clamped_retry, range_base); - if(bytes_read == 0 && vaddr_range_clamped_retry.max > vaddr_range_clamped_retry.min) - { - U64 diff = (vaddr_range_clamped_retry.max-vaddr_range_clamped_retry.min)/2; - vaddr_range_clamped_retry.max -= diff; - vaddr_range_clamped_retry.max = AlignDownPow2(vaddr_range_clamped_retry.max, page_size); - if(diff == 0) - { - break; - } - } - else - { - break; - } - } + U64 bytes_read = dmn_process_read(process.dmn_handle, vaddr_range_clamped, range_base); if(bytes_read == 0) { arena_release(range_arena); @@ -6892,8 +6849,8 @@ ASYNC_WORK_DEF(ctrl_mem_stream_work) } } } - post_read_mem_gen = dmn_mem_gen(); } + U64 post_read_mem_gen = ctrl_mem_gen(); //- rjf: read successful -> submit to hash store U128 hash = {0}; @@ -6923,6 +6880,7 @@ ASYNC_WORK_DEF(ctrl_mem_stream_work) { range_n->mem_gen = post_read_mem_gen; } + ins_atomic_u64_dec_eval(&range_n->working_count); goto commit__break_all; } } diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index 91b5943f..15e0a71b 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -2,7 +2,12 @@ // Licensed under the MIT license (https://opensource.org/license/mit/) //////////////////////////////// -//~ rjf: post-0.9.19 TODO notes +//~ rjf: post-0.9.20 TODO notes +// +//- urgent fixes +// [ ] process memory cache not correctly invalidating - race in lookup +// [ ] hardware breakpoints regression +// [ ] process memory waiting regression // //- memory view // [ ] have smaller visible range than entire memory From b67d7f729b7c25af9372ad99d3f4af464cabf673 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 27 Jun 2025 22:59:10 -0700 Subject: [PATCH 259/372] do not require eval cache for breakpoint touched-symbols parse/check; reintroduce memory read retry loop - necessary in some cases --- src/ctrl/ctrl_core.c | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 53afdd25..52695c74 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -3708,8 +3708,8 @@ ctrl_thread__entry_point(void *p) { continue; } - E_Parse addr_parse = e_parse_from_string(n->v.string); - E_Parse cnd_parse = e_parse_from_string(n->v.condition); + E_Parse addr_parse = e_push_parse_from_string(scratch.arena, n->v.string); + E_Parse cnd_parse = e_push_parse_from_string(scratch.arena, n->v.condition); E_Expr *exprs[] = {addr_parse.expr, cnd_parse.expr}; for EachElement(idx, exprs) { @@ -6824,7 +6824,29 @@ ASYNC_WORK_DEF(ctrl_mem_stream_work) else { range_base = push_array_no_zero(range_arena, U8, range_size); - U64 bytes_read = dmn_process_read(process.dmn_handle, vaddr_range_clamped, range_base); + U64 bytes_read = 0; + U64 retry_count = 0; + U64 retry_limit = range_size > page_size ? 64 : 0; + for(Rng1U64 vaddr_range_clamped_retry = vaddr_range_clamped; + retry_count <= retry_limit; + retry_count += 1) + { + bytes_read = dmn_process_read(process.dmn_handle, vaddr_range_clamped_retry, range_base); + if(bytes_read == 0 && vaddr_range_clamped_retry.max > vaddr_range_clamped_retry.min) + { + U64 diff = (vaddr_range_clamped_retry.max-vaddr_range_clamped_retry.min)/2; + vaddr_range_clamped_retry.max -= diff; + vaddr_range_clamped_retry.max = AlignDownPow2(vaddr_range_clamped_retry.max, page_size); + if(diff == 0) + { + break; + } + } + else + { + break; + } + } if(bytes_read == 0) { arena_release(range_arena); From ac8c40286839e99c3500d1f334f1cdd3688a6601 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 27 Jun 2025 23:03:16 -0700 Subject: [PATCH 260/372] note --- src/raddbg/raddbg_main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index 15e0a71b..6438ef4e 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -8,6 +8,7 @@ // [ ] process memory cache not correctly invalidating - race in lookup // [ ] hardware breakpoints regression // [ ] process memory waiting regression +// [ ] "evict module image info from cache" crash, on module close sometimes // //- memory view // [ ] have smaller visible range than entire memory From e34e8adbaa216ddf6ce9d220f09fe93887d32e35 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 27 Jun 2025 23:15:02 -0700 Subject: [PATCH 261/372] do not disqualify flagged expr breakpoints if 0 --- src/ctrl/ctrl_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 52695c74..7fd6f642 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -3927,7 +3927,7 @@ ctrl_thread__append_resolved_module_user_bp_traps(Arena *arena, CTRL_EvalScope * { String8 expr = bp->string; E_Value value = e_value_from_string(expr); - if(value.u64 != 0) + if(value.u64 != 0 || bp->flags != 0) { DMN_Trap trap = {process.dmn_handle, value.u64, (U64)bp}; trap.flags = ctrl_dmn_trap_flags_from_user_breakpoint_flags(bp->flags); From 709bc2cfaba70ec375e1f9b92ee9a92da6deb3bd Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sat, 28 Jun 2025 10:02:51 -0700 Subject: [PATCH 262/372] float run/mem/reg generations out of demon, into core; fix issue of demon access synchronization w/ mem gens, causing failure-to-update-stale-parts-of-process-memory-cache --- src/ctrl/ctrl_core.c | 79 ++++++++++++++++++++++++++---- src/ctrl/ctrl_core.h | 5 ++ src/demon/demon_core.h | 5 -- src/demon/linux/demon_core_linux.c | 20 -------- src/demon/win32/demon_core_win32.c | 34 ++----------- src/demon/win32/demon_core_win32.h | 5 -- src/raddbg/raddbg_core.c | 7 ++- src/raddbg/raddbg_main.c | 5 ++ 8 files changed, 87 insertions(+), 73 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 7fd6f642..f4c66218 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -1684,7 +1684,7 @@ ctrl_key_from_process_vaddr_range(CTRL_Handle process, Rng1U64 vaddr_range, B32 { id_exists = 1; id_stale = (n->mem_gen < mem_gen); - id_working = (ins_atomic_u64_eval(&n->working_count) != 0); + id_working = (n->working_count != 0); goto end_fast_lookup; } } @@ -1718,7 +1718,6 @@ ctrl_key_from_process_vaddr_range(CTRL_Handle process, Rng1U64 vaddr_range, B32 if(!id_exists || (id_exists && id_stale && !id_working)) { B32 node_needs_stream = 0; - U64 *node_working_count = 0; OS_MutexScopeW(process_stripe->rw_mutex) { for(CTRL_ProcessMemoryCacheNode *process_n = process_slot->first; process_n != 0; process_n = process_n->next) @@ -1751,9 +1750,8 @@ ctrl_key_from_process_vaddr_range(CTRL_Handle process, Rng1U64 vaddr_range, B32 } if(node_needs_stream) { - ins_atomic_u64_inc_eval(&range_n->working_count); + range_n->working_count += 1; } - node_working_count = &range_n->working_count; break; } } @@ -1762,9 +1760,33 @@ ctrl_key_from_process_vaddr_range(CTRL_Handle process, Rng1U64 vaddr_range, B32 { if(ctrl_u2ms_enqueue_req(key, process, vaddr_range, zero_terminated, endt_us)) { + // NOTE(rjf): debugging +#if 0 + raddbg_log("[0x%I64x, 0x%I64x) push: (gen: %I64u)\n", vaddr_range.min, vaddr_range.max, mem_gen); +#endif async_push_work(ctrl_mem_stream_work); requested = 1; } + else OS_MutexScopeW(process_stripe->rw_mutex) + { + for(CTRL_ProcessMemoryCacheNode *process_n = process_slot->first; process_n != 0; process_n = process_n->next) + { + if(ctrl_handle_match(process_n->handle, process)) + { + U64 range_slot_idx = range_hash%process_n->range_hash_slots_count; + CTRL_ProcessMemoryRangeHashSlot *range_slot = &process_n->range_hash_slots[range_slot_idx]; + CTRL_ProcessMemoryRangeHashNode *range_n = 0; + for(CTRL_ProcessMemoryRangeHashNode *n = range_slot->first; n != 0; n = n->next) + { + if(hs_id_match(n->id, id)) + { + n->working_count -= 1; + break; + } + } + } + } + } } } @@ -1960,6 +1982,12 @@ ctrl_process_write(CTRL_Handle process, Rng1U64 range, void *src) ProfBeginFunction(); B32 result = dmn_process_write(process.dmn_handle, range, src); + //- rjf: success -> bump generation + if(result) + { + ins_atomic_u64_inc_eval(&ctrl_state->mem_gen); + } + //- rjf: success -> wait for cache updates, for small regions - prefer relatively seamless // writes within calling frame's "view" of the memory, at the expense of a small amount of // time. @@ -2066,7 +2094,7 @@ ctrl_reg_block_from_thread(Arena *arena, CTRL_EntityCtx *ctx, CTRL_Handle handle // rjf: copy from node if(node) { - U64 current_reg_gen = dmn_reg_gen(); + U64 current_reg_gen = ctrl_reg_gen(); B32 need_stale = 1; if(node->reg_gen != current_reg_gen && dmn_thread_read_reg_block(handle.dmn_handle, result)) { @@ -2124,6 +2152,10 @@ ctrl_thread_write_reg_block(CTRL_Handle thread, void *block) { // TODO(rjf): @callstacks immediately reflect this in the call stack cache B32 good = dmn_thread_write_reg_block(thread.dmn_handle, block); + if(good) + { + ins_atomic_u64_inc_eval(&ctrl_state->reg_gen); + } return good; } @@ -3492,26 +3524,26 @@ ctrl_halt(void) //////////////////////////////// //~ rjf: Shared Accessor Functions -//- rjf: run generation counter +//- rjf: generation counters internal U64 ctrl_run_gen(void) { - U64 result = dmn_run_gen(); + U64 result = ins_atomic_u64_eval(&ctrl_state->run_gen); return result; } internal U64 ctrl_mem_gen(void) { - U64 result = dmn_mem_gen(); + U64 result = ins_atomic_u64_eval(&ctrl_state->mem_gen); return result; } internal U64 ctrl_reg_gen(void) { - U64 result = dmn_reg_gen(); + U64 result = ins_atomic_u64_eval(&ctrl_state->reg_gen); return result; } @@ -3831,6 +3863,9 @@ ctrl_thread__entry_point(void *p) } ins_atomic_u64_eval_assign(&ctrl_state->ctrl_thread_run_state, 0); } + ins_atomic_u64_inc_eval(&ctrl_state->run_gen); + ins_atomic_u64_inc_eval(&ctrl_state->mem_gen); + ins_atomic_u64_inc_eval(&ctrl_state->reg_gen); //- rjf: gather & output logs LogScopeResult log = log_scope_end(scratch.arena); @@ -6777,6 +6812,7 @@ ctrl_u2ms_dequeue_req(HS_Key *out_key, CTRL_Handle *out_process, Rng1U64 *out_va ASYNC_WORK_DEF(ctrl_mem_stream_work) { +#define CTRL_MEM_STREAM_WORK_DEBUG 0 ProfBeginFunction(); CTRL_ProcessMemoryCache *cache = &ctrl_state->process_memory_cache; @@ -6812,6 +6848,12 @@ ASYNC_WORK_DEF(ctrl_mem_stream_work) void *range_base = 0; U64 zero_terminated_size = 0; U64 pre_read_mem_gen = ctrl_mem_gen(); + B32 pre_run_state = ins_atomic_u64_eval(&ctrl_state->ctrl_thread_run_state); +#if CTRL_MEM_STREAM_WORK_DEBUG + Log *log = log_alloc(); + log_select(log); + log_scope_begin(); +#endif { range_size = dim_1u64(vaddr_range_clamped); U64 page_size = os_get_system_info()->page_size; @@ -6873,6 +6915,23 @@ ASYNC_WORK_DEF(ctrl_mem_stream_work) } } U64 post_read_mem_gen = ctrl_mem_gen(); + B32 post_run_state = ins_atomic_u64_eval(&ctrl_state->ctrl_thread_run_state); + // NOTE(rjf): debugging +#if CTRL_MEM_STREAM_WORK_DEBUG + { + Temp scratch = scratch_begin(0, 0); + String8 sample_data_str = str8_lit("no data"); + if(range_base != 0) + { + String8 sample_data = str8((U8*)range_base + 0x100, 16); + String8List sample_data_strs = numeric_str8_list_from_data(scratch.arena, 16, sample_data, 1); + sample_data_str = str8_list_join(scratch.arena, &sample_data_strs, &(StringJoin){.sep = str8_lit(", ")}); + } + LogScopeResult log = log_scope_end(scratch.arena); + raddbg_log("[0x%I64x, 0x%I64x) { pre_gen: %I64u, post_gen: %I64u, pre_run: %i, post_run: %i, bytes: [%S], info:```%S``` }\n", vaddr_range.min, vaddr_range.max, pre_read_mem_gen, post_read_mem_gen, pre_run_state, post_run_state, sample_data_str, log.strings[LogMsgKind_Info]); + scratch_end(scratch); + } +#endif //- rjf: read successful -> submit to hash store U128 hash = {0}; @@ -6902,7 +6961,7 @@ ASYNC_WORK_DEF(ctrl_mem_stream_work) { range_n->mem_gen = post_read_mem_gen; } - ins_atomic_u64_dec_eval(&range_n->working_count); + range_n->working_count -= 1; goto commit__break_all; } } diff --git a/src/ctrl/ctrl_core.h b/src/ctrl/ctrl_core.h index f7d5b1af..e3f785cd 100644 --- a/src/ctrl/ctrl_core.h +++ b/src/ctrl/ctrl_core.h @@ -792,6 +792,11 @@ struct CTRL_State CTRL_CallStackCache call_stack_cache; CTRL_ModuleImageInfoCache module_image_info_cache; + // rjf: generations + U64 run_gen; + U64 mem_gen; + U64 reg_gen; + // rjf: user -> ctrl msg ring buffer U64 u2c_ring_size; U8 *u2c_ring_base; diff --git a/src/demon/demon_core.h b/src/demon/demon_core.h index 7904fbf1..21d8a5a4 100644 --- a/src/demon/demon_core.h +++ b/src/demon/demon_core.h @@ -221,11 +221,6 @@ internal void dmn_halt(U64 code, U64 user_data); //////////////////////////////// //~ rjf: @dmn_os_hooks Introspection Functions (Implemented Per-OS) -//- rjf: run/memory/register counters -internal U64 dmn_run_gen(void); -internal U64 dmn_mem_gen(void); -internal U64 dmn_reg_gen(void); - //- rjf: non-blocking-control-thread access barriers internal B32 dmn_access_open(void); internal void dmn_access_close(void); diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c index c6edab7f..d8433013 100644 --- a/src/demon/linux/demon_core_linux.c +++ b/src/demon/linux/demon_core_linux.c @@ -71,26 +71,6 @@ dmn_halt(U64 code, U64 user_data) //////////////////////////////// //~ rjf: @dmn_os_hooks Introspection Functions (Implemented Per-OS) -//- rjf: run/memory/register counters - -internal U64 -dmn_run_gen(void) -{ - return 0; -} - -internal U64 -dmn_mem_gen(void) -{ - return 0; -} - -internal U64 -dmn_reg_gen(void) -{ - return 0; -} - //- rjf: non-blocking-control-thread access barriers internal B32 diff --git a/src/demon/win32/demon_core_win32.c b/src/demon/win32/demon_core_win32.c index 1ded7853..1b99996d 100644 --- a/src/demon/win32/demon_core_win32.c +++ b/src/demon/win32/demon_core_win32.c @@ -320,7 +320,10 @@ dmn_w32_process_read(HANDLE process, Rng1U64 range, void *dst) SIZE_T actual_read = 0; if(!ReadProcessMemory(process, (LPCVOID)cursor, ptr, to_read, &actual_read)) { + DWORD error = GetLastError(); + log_infof("'Win32 ReadProcessMemory failure': { [0x%I64x, 0x%I64x), code: %i }\n", range.min, range.max, error); bytes_read += actual_read; + (void)error; break; } ptr += actual_read; @@ -349,7 +352,6 @@ dmn_w32_process_write(HANDLE process, Rng1U64 range, void *src) ptr += actual_write; cursor += actual_write; } - ins_atomic_u64_inc_eval(&dmn_w32_shared->mem_gen); return result; } @@ -1112,7 +1114,6 @@ dmn_w32_thread_write_reg_block(Arch arch, HANDLE thread, void *reg_block) scratch_end(scratch); }break; } - ins_atomic_u64_inc_eval(&dmn_w32_shared->reg_gen); ProfEnd(); return result; } @@ -1541,7 +1542,6 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) U64 new_rflags = rflags | 0x100; single_step_thread_ctx->EFlags = new_rflags; SetThreadContext(thread->handle, single_step_thread_ctx); - ins_atomic_u64_inc_eval(&dmn_w32_shared->reg_gen); } }break; } @@ -1891,9 +1891,6 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) (void)err; keep_going = 1; } - ins_atomic_u64_inc_eval(&dmn_w32_shared->run_gen); - ins_atomic_u64_inc_eval(&dmn_w32_shared->mem_gen); - ins_atomic_u64_inc_eval(&dmn_w32_shared->reg_gen); } } @@ -2327,7 +2324,6 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) U64 new_rip = instruction_pointer; ctx->Rip = new_rip; SetThreadContext(thread->handle, ctx); - ins_atomic_u64_inc_eval(&dmn_w32_shared->reg_gen); } }break; } @@ -2841,7 +2837,6 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) U64 new_rflags = rflags & ~0x100; single_step_thread_ctx->EFlags = new_rflags; SetThreadContext(thread->handle, single_step_thread_ctx); - ins_atomic_u64_inc_eval(&dmn_w32_shared->reg_gen); } }break; } @@ -2938,29 +2933,6 @@ dmn_halt(U64 code, U64 user_data) //////////////////////////////// //~ rjf: @dmn_os_hooks Introspection Functions (Implemented Per-OS) -//- rjf: run/memory/register counters - -internal U64 -dmn_run_gen(void) -{ - U64 result = ins_atomic_u64_eval(&dmn_w32_shared->run_gen); - return result; -} - -internal U64 -dmn_mem_gen(void) -{ - U64 result = ins_atomic_u64_eval(&dmn_w32_shared->mem_gen); - return result; -} - -internal U64 -dmn_reg_gen(void) -{ - U64 result = ins_atomic_u64_eval(&dmn_w32_shared->reg_gen); - return result; -} - //- rjf: non-blocking-control-thread access barriers internal B32 diff --git a/src/demon/win32/demon_core_win32.h b/src/demon/win32/demon_core_win32.h index bb3fbfbe..b06f1d85 100644 --- a/src/demon/win32/demon_core_win32.h +++ b/src/demon/win32/demon_core_win32.h @@ -200,11 +200,6 @@ struct DMN_W32_Shared OS_Handle access_mutex; B32 access_run_state; - // rjf: run/mem/reg gens - U64 run_gen; - U64 mem_gen; - U64 reg_gen; - // rjf: detaching info Arena *detach_arena; DMN_HandleList detach_processes; diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index f6c6b039..c5714470 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -17193,10 +17193,13 @@ rd_frame(void) os_append_data_to_file_path(rd_state->log_path, log.strings[LogMsgKind_Info]); if(log.strings[LogMsgKind_UserError].size != 0) { + String8 error_log = log.strings[LogMsgKind_UserError]; + String8List error_log_lines = str8_split(scratch.arena, error_log, (U8 *)"\n", 1, 0); + String8 error_log_string = str8_list_join(scratch.arena, &error_log_lines, &(StringJoin){.sep = str8_lit(" ")}); for(RD_WindowState *ws = rd_state->first_window_state; ws != &rd_nil_window_state; ws = ws->order_next) { - ws->error_string_size = Min(sizeof(ws->error_buffer), log.strings[LogMsgKind_UserError].size); - MemoryCopy(ws->error_buffer, log.strings[LogMsgKind_UserError].str, ws->error_string_size); + ws->error_string_size = Min(sizeof(ws->error_buffer), error_log_string.size); + MemoryCopy(ws->error_buffer, error_log_string.str, ws->error_string_size); ws->error_t = 1.f; } } diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index 6438ef4e..30ba6b25 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -9,6 +9,11 @@ // [ ] hardware breakpoints regression // [ ] process memory waiting regression // [ ] "evict module image info from cache" crash, on module close sometimes +// - reproduction steps: +// - raddbg debugging raddbg +// - [parent] breakpoint on memory read failure case +// - [child] breakpoint on ctrl_bindings init in g0 +// - f5x3 // //- memory view // [ ] have smaller visible range than entire memory From 89cfd65f9ccbca8ddfba11a1eb41ecf6884be780 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sat, 28 Jun 2025 11:07:43 -0700 Subject: [PATCH 263/372] fix incorrect programmatic bp generation on vaddr range notes... --- src/ctrl/ctrl_core.c | 5 +++-- src/lib_raddbg_markup/raddbg_markup.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index f4c66218..077e32cd 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -3941,6 +3941,7 @@ ctrl_thread__append_resolved_module_user_bp_traps(Arena *arena, CTRL_EvalScope * } // rjf: src_id * pt -> push + if(src_id != 0) { RDI_SourceFile *src = rdi_element_from_name_idx(rdi, SourceFiles, src_id); RDI_SourceLineMap *src_line_map = rdi_element_from_name_idx(rdi, SourceLineMaps, src->source_line_map_idx); @@ -3986,7 +3987,7 @@ ctrl_thread__append_resolved_process_user_bp_traps(Arena *arena, CTRL_EvalScope { String8 expr = bp->string; E_Value value = e_value_from_string(expr); - if(value.u64 != 0) + if(value.u64 != 0 || bp->flags != 0) { DMN_Trap trap = {process.dmn_handle, value.u64, (U64)bp}; trap.flags = ctrl_dmn_trap_flags_from_user_breakpoint_flags(bp->flags); @@ -4761,7 +4762,7 @@ ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg, out_evt->msg_id = msg->msg_id; out_evt->vaddr_rng = r1u64(event->address, event->address + event->size); out_evt->string = event->string; - } + }break; case DMN_EventKind_SetBreakpoint: { CTRL_Event *out_evt = ctrl_event_list_push(scratch.arena, &evts); diff --git a/src/lib_raddbg_markup/raddbg_markup.h b/src/lib_raddbg_markup/raddbg_markup.h index 10987a3f..3f975ca2 100644 --- a/src/lib_raddbg_markup/raddbg_markup.h +++ b/src/lib_raddbg_markup/raddbg_markup.h @@ -317,7 +317,7 @@ raddbg_thread_name__impl(int id, char *fmt, ...) #pragma warning(disable: 6320 6322) __try { - RaiseException(0x406D1388, 0, sizeof(info) / sizeof(void *), (const ULONG_PTR *)&info); + RaiseException(0x406D1388u, 0, sizeof(info) / sizeof(void *), (const ULONG_PTR *)&info); } __except(1) { From 124c71c19a05d7d981568430bcbca306eb85e602 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sat, 28 Jun 2025 11:15:02 -0700 Subject: [PATCH 264/372] notes & bump version --- src/base/base_context_cracking.h | 2 +- src/raddbg/raddbg_main.c | 10 +--------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/src/base/base_context_cracking.h b/src/base/base_context_cracking.h index b0a9b2b0..7edbd59b 100644 --- a/src/base/base_context_cracking.h +++ b/src/base/base_context_cracking.h @@ -159,7 +159,7 @@ #endif #if !defined(BUILD_VERSION_PATCH) -# define BUILD_VERSION_PATCH 20 +# define BUILD_VERSION_PATCH 21 #endif #define BUILD_VERSION_STRING_LITERAL Stringify(BUILD_VERSION_MAJOR) "." Stringify(BUILD_VERSION_MINOR) "." Stringify(BUILD_VERSION_PATCH) diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index 30ba6b25..9e4f2d91 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -5,15 +5,7 @@ //~ rjf: post-0.9.20 TODO notes // //- urgent fixes -// [ ] process memory cache not correctly invalidating - race in lookup -// [ ] hardware breakpoints regression -// [ ] process memory waiting regression -// [ ] "evict module image info from cache" crash, on module close sometimes -// - reproduction steps: -// - raddbg debugging raddbg -// - [parent] breakpoint on memory read failure case -// - [child] breakpoint on ctrl_bindings init in g0 -// - f5x3 +// [ ] hardware breakpoints regression (global eval in ctrl) // //- memory view // [ ] have smaller visible range than entire memory From 74e1ccd1470e29ee8fe4bc724b479491712ede61 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sat, 28 Jun 2025 11:18:02 -0700 Subject: [PATCH 265/372] invalidate mem/reg/run generations on every dmn run --- src/ctrl/ctrl_core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 077e32cd..10cbed1d 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -4583,6 +4583,9 @@ ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg, } } DMN_EventList events = dmn_ctrl_run(scratch.arena, ctrl_ctx, run_ctrls); + ins_atomic_u64_inc_eval(&ctrl_state->mem_gen); + ins_atomic_u64_inc_eval(&ctrl_state->reg_gen); + ins_atomic_u64_inc_eval(&ctrl_state->run_gen); for(DMN_EventNode *src_n = events.first; src_n != 0; src_n = src_n->next) { DMN_EventNode *dst_n = ctrl_state->free_dmn_event_node; From 15a7efab4319d356308afca24b7e869f88e4edd9 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sun, 29 Jun 2025 18:22:03 -0700 Subject: [PATCH 266/372] slice-of-slice ambiguity debugging note --- src/raddbg/raddbg_main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index 9e4f2d91..0a41d192 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -6,6 +6,7 @@ // //- urgent fixes // [ ] hardware breakpoints regression (global eval in ctrl) +// [ ] []string being sized by [0], due to `.` applying to first ^string // //- memory view // [ ] have smaller visible range than entire memory From dc79c06031a7b5387ffc6957c24595bb289d3236 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 30 Jun 2025 09:33:23 -0700 Subject: [PATCH 267/372] adjust implicit accessing rules with nested auto hooks (slice-of-slices case); prefer to not show address value with string prefix content in single-line eval stringification --- src/eval/eval_ir.c | 20 ++++++++++++++----- src/eval/eval_types.c | 2 +- .../eval_visualization_core.c | 4 +++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index a7c59754..8f2aa277 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -686,10 +686,16 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I } // rjf: call into hook to do access - result = lhs_access(arena, parent, expr, lhs_irtree_try); + E_IRTreeAndType new_result_maybe = lhs_access(arena, parent, expr, lhs_irtree_try); - // rjf: end chain if we found a result - if(result.root != &e_irnode_nil) + // rjf: if we got a valid result -> store + if(new_result_maybe.root != &e_irnode_nil && (result.root == &e_irnode_nil || lhs_irtree_try->auto_hook == 0)) + { + result = new_result_maybe; + } + + // rjf: end chain if we found a result that is not an autohook + if(new_result_maybe.root != &e_irnode_nil && lhs_irtree_try->auto_hook == 0) { break; } @@ -1672,7 +1678,8 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I for(E_IRTreeAndType *prev = parent; prev != 0; prev = prev->prev) { E_Expr *access = e_expr_irext_member_access(scratch.arena, &e_expr_nil, prev, string); - E_IRTreeAndType access_irtree = e_push_irtree_and_type_from_expr(scratch.arena, root_parent, &e_default_identifier_resolution_rule, disallow_autohooks, 1, access); + E_IRTreeAndType access_parent = {&e_irnode_nil}; + E_IRTreeAndType access_irtree = e_push_irtree_and_type_from_expr(scratch.arena, prev->prev ? prev->prev : &access_parent, &e_default_identifier_resolution_rule, 1, 1, access); if(access_irtree.root != &e_irnode_nil) { string_mapped = 1; @@ -1681,7 +1688,10 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); mapped_bytecode_mode = access_irtree.mode; e_msg_list_concat_in_place(&result.msgs, &access_irtree.msgs); - break; + if(!prev->auto_hook) + { + break; + } } } }break; diff --git a/src/eval/eval_types.c b/src/eval/eval_types.c index 1dde0f1d..e045ef6e 100644 --- a/src/eval/eval_types.c +++ b/src/eval/eval_types.c @@ -2541,7 +2541,7 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(array) { E_Type *type = e_type_from_key(eval.irtree.type_key); U64 count = 1; - if(type->args != 0 && type->count > 0) E_ParentKey(e_key_match(e_key_zero(), eval.parent_key) ? eval.key : eval.parent_key) + if(type->args != 0 && type->count > 0) E_ParentKey(eval.key) { E_Key count_key = e_key_from_expr(type->args[0]); E_Value count_value = e_value_from_key(count_key); diff --git a/src/eval_visualization/eval_visualization_core.c b/src/eval_visualization/eval_visualization_core.c index c6bbab59..34f56f76 100644 --- a/src/eval_visualization/eval_visualization_core.c +++ b/src/eval_visualization/eval_visualization_core.c @@ -1776,6 +1776,7 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) B32 ptee_has_content; B32 ptee_has_string; B32 did_prefix_content; + B32 did_prefix_string; B32 did_redirect; }; EV_StringPtrData *ptr_data = it->top_task->user_data; @@ -1862,6 +1863,7 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) // rjf: report *out_string = push_str8_copy(arena, string__escaped_and_quoted); ptr_data->did_prefix_content = 1; + ptr_data->did_prefix_string = 1; scratch_end(scratch); } @@ -2043,7 +2045,7 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) // // rjf: [read only] if we did prefix content, do a parenthesized pointer value - if(!(params->flags & EV_StringFlag_DisableAddresses) && params->flags & EV_StringFlag_ReadOnlyDisplayRules && ptr_data->did_prefix_content) + if(!(params->flags & EV_StringFlag_DisableAddresses) && params->flags & EV_StringFlag_ReadOnlyDisplayRules && ptr_data->did_prefix_content && !ptr_data->did_prefix_string) { *out_string = push_str8f(arena, " (%S)", ptr_value_string); } From a4d0fbcb4601d8bc0ad782c2d78b80531fa0877b Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Tue, 1 Jul 2025 09:46:12 -0700 Subject: [PATCH 268/372] always show null pointer address values with string visualization --- src/eval_visualization/eval_visualization_core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/eval_visualization/eval_visualization_core.c b/src/eval_visualization/eval_visualization_core.c index 34f56f76..105ccd92 100644 --- a/src/eval_visualization/eval_visualization_core.c +++ b/src/eval_visualization/eval_visualization_core.c @@ -2045,7 +2045,9 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) // // rjf: [read only] if we did prefix content, do a parenthesized pointer value - if(!(params->flags & EV_StringFlag_DisableAddresses) && params->flags & EV_StringFlag_ReadOnlyDisplayRules && ptr_data->did_prefix_content && !ptr_data->did_prefix_string) + if(!(params->flags & EV_StringFlag_DisableAddresses) && params->flags & EV_StringFlag_ReadOnlyDisplayRules && + ptr_data->did_prefix_content && + (!ptr_data->did_prefix_string || ptr_data->value_eval.value.u64 == 0)) { *out_string = push_str8f(arena, " (%S)", ptr_value_string); } From 0902d9fafb4b6df3008bae96d0ce8f7e22b7e80e Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Tue, 1 Jul 2025 20:08:44 -0700 Subject: [PATCH 269/372] detach in control menu --- src/raddbg/raddbg_core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index c5714470..0d80c480 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -7717,6 +7717,7 @@ rd_window_frame(void) rd_cmd_kind_info_table[D_CmdKind_StepOver].string, rd_cmd_kind_info_table[D_CmdKind_StepOut].string, rd_cmd_kind_info_table[D_CmdKind_Attach].string, + rd_cmd_kind_info_table[D_CmdKind_Detach].string, }; U32 codepoints[] = { @@ -7728,6 +7729,7 @@ rd_window_frame(void) 'o', 't', 'a', + 'd', }; Assert(ArrayCount(codepoints) == ArrayCount(cmds)); rd_cmd_list_menu_buttons(ArrayCount(cmds), cmds, codepoints); From 26f9e09483dbad09d4cefb386d27cc206dbcf3d3 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 16 Jul 2025 10:35:02 -0700 Subject: [PATCH 270/372] eliminate cases where typekind_function was being assumed when building keys for function & inline site types - this cannot be assumed, and will lead to bad type info interpretation --- src/eval_visualization/eval_visualization_core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/eval_visualization/eval_visualization_core.c b/src/eval_visualization/eval_visualization_core.c index 105ccd92..b6b6eef5 100644 --- a/src/eval_visualization/eval_visualization_core.c +++ b/src/eval_visualization/eval_visualization_core.c @@ -1931,7 +1931,8 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) } if(inline_site != 0) { - E_TypeKey type = e_type_key_ext(E_TypeKind_Function, inline_site->type_idx, module_idx); + RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, inline_site->type_idx); + E_TypeKey type = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), inline_site->type_idx, module_idx); String8 name = {0}; name.str = rdi_string_from_idx(rdi, inline_site->name_string_idx, &name.size); if(inline_site->type_idx != 0) @@ -1960,7 +1961,8 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) RDI_Scope *scope = rdi_element_from_name_idx(rdi, Scopes, scope_idx); U64 proc_idx = scope->proc_idx; RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, proc_idx); - E_TypeKey type = e_type_key_ext(E_TypeKind_Function, procedure->type_idx, module_idx); + RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, procedure->type_idx); + E_TypeKey type = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), procedure->type_idx, module_idx); String8 name = {0}; name.str = rdi_string_from_idx(rdi, procedure->name_string_idx, &name.size); if(procedure->type_idx != 0) From fc8b521b2c2b895a19e7f6077ffdfa863d0a9522 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 16 Jul 2025 11:54:02 -0700 Subject: [PATCH 271/372] adjust demon to correctly produce, & ctrl to correctly process, breakpoint events which cannot be correlated to a high-level UI-defined breakpoint state. this catches, for example, data breakpoints which are programmatically set by the user program. --- src/ctrl/ctrl_core.c | 8 ++++++++ src/demon/win32/demon_core_win32.c | 9 ++++----- src/raddbg/raddbg_core.c | 8 ++++++++ 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 10cbed1d..cf42ce18 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -6334,6 +6334,14 @@ ctrl_thread__run(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg) } } + // rjf: programmatic user breakpoints (we do not have state for it, + // but the target program(s) did something breakpoint-like, and we + // want to treat it as if we did) + if(event->address != 0) + { + hit_user_bp = 1; + } + // rjf: evaluate hit stop conditions if(conditions.node_count != 0) ProfScope("evaluate hit stop conditions") { diff --git a/src/demon/win32/demon_core_win32.c b/src/demon/win32/demon_core_win32.c index 1b99996d..f27ba706 100644 --- a/src/demon/win32/demon_core_win32.c +++ b/src/demon/win32/demon_core_win32.c @@ -2383,7 +2383,6 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) // hit - so if we have data breakpoints set, we need to // check this thread's debug registers, to determine if this // is a regular single-step or a data breakpoint hit. - if(first_flagged_trap_task != 0) { // rjf: first determine the flagged trap index U64 flagged_trap_idx = 0; @@ -2398,10 +2397,10 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) { e->kind = DMN_EventKind_Breakpoint; if(0){} - else if(regs.dr7.u64 & (1ull<<0) && regs.dr6.u64 & (1ull<<0)) { flagged_trap_idx = 0; } - else if(regs.dr7.u64 & (1ull<<2) && regs.dr6.u64 & (1ull<<1)) { flagged_trap_idx = 1; } - else if(regs.dr7.u64 & (1ull<<4) && regs.dr6.u64 & (1ull<<2)) { flagged_trap_idx = 2; } - else if(regs.dr7.u64 & (1ull<<8) && regs.dr6.u64 & (1ull<<3)) { flagged_trap_idx = 3; } + else if(regs.dr7.u64 & (1ull<<0) && regs.dr6.u64 & (1ull<<0)) { flagged_trap_idx = 0; e->address = regs.dr0.u64; } + else if(regs.dr7.u64 & (1ull<<2) && regs.dr6.u64 & (1ull<<1)) { flagged_trap_idx = 1; e->address = regs.dr1.u64; } + else if(regs.dr7.u64 & (1ull<<4) && regs.dr6.u64 & (1ull<<2)) { flagged_trap_idx = 2; e->address = regs.dr2.u64; } + else if(regs.dr7.u64 & (1ull<<8) && regs.dr6.u64 & (1ull<<3)) { flagged_trap_idx = 3; e->address = regs.dr3.u64; } } }break; } diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 0d80c480..788a4419 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -10405,6 +10405,14 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event) dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(" ")); dr_fstrs_concat_in_place(&fstrs, &thread_fstrs); dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(" hit a breakpoint")); + if(event->vaddr_rng.min != 0) + { + dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(" (Address: ")); + dr_fstrs_push_new(arena, &fstrs, ¶ms, push_str8f(arena, "0x%I64x", event->vaddr_rng.min), + .font = rd_font_from_slot(RD_FontSlot_Code), + .raster_flags = rd_raster_flags_from_slot(RD_FontSlot_Code)); + dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(")")); + } } }break; From f6931ef0b7e1e63b9d3cecf1c2bbb62617d2098c Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 16 Jul 2025 13:10:35 -0700 Subject: [PATCH 272/372] apply string size limitations from explicit array types in eval string iterator --- src/eval_visualization/eval_visualization_core.c | 4 ++++ src/mule/mule_main.cpp | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/src/eval_visualization/eval_visualization_core.c b/src/eval_visualization/eval_visualization_core.c index b6b6eef5..b874d4d0 100644 --- a/src/eval_visualization/eval_visualization_core.c +++ b/src/eval_visualization/eval_visualization_core.c @@ -1850,6 +1850,10 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) { string = str8_prefix(string, params->limit_strings_size); } + else if(type_kind == E_TypeKind_Array && ptr_data->type->count != 0) + { + string = str8_prefix(string, ptr_data->type->count); + } // rjf: escape and quote B32 string__is_escaped_and_quoted = (!(params->flags & EV_StringFlag_DisableStringQuotes) || depth > 0); diff --git a/src/mule/mule_main.cpp b/src/mule/mule_main.cpp index 24b82025..a6f92e21 100644 --- a/src/mule/mule_main.cpp +++ b/src/mule/mule_main.cpp @@ -404,6 +404,15 @@ type_coverage_eval_tests(void) wchar_t a_wide_string[] = L"This is a string, but instead of being encoded in a stream of bytes,\n" L"it is encoded in a stream of 2-byte packages!\n"; + char some_data_with_a_string[] = + { + 'H', 'e', 'l', 'l', 'o', 27, 27, 2, 27, 125, + }; + struct SomeDataStructured + { + char data[4]; + }; + SomeDataStructured *some_data = (SomeDataStructured *)&some_data_with_a_string[0]; const char *const_string = "Hello, World!"; const char const_string_array[] = "Hello, World!"; From 5e04734444df921737bd711f65405abe90ff0956 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 16 Jul 2025 13:52:49 -0700 Subject: [PATCH 273/372] source_files collection evaluation; expand switch to allow file evaluations --- src/dbgi/dbgi.c | 47 ++++++++++++++++++++++++------ src/raddbg/generated/raddbg.meta.c | 2 +- src/raddbg/raddbg.mdesk | 2 +- src/raddbg/raddbg_core.c | 16 ++++++++-- src/raddbg/raddbg_eval.c | 24 +++++++++++++++ 5 files changed, 77 insertions(+), 14 deletions(-) diff --git a/src/dbgi/dbgi.c b/src/dbgi/dbgi.c index 83048aee..3ad4e2aa 100644 --- a/src/dbgi/dbgi.c +++ b/src/dbgi/dbgi.c @@ -1259,6 +1259,10 @@ ASYNC_WORK_DEF(di_search_work) { // NOTE(rjf): name must be determined from self_type_idx }break; + case RDI_SectionKind_SourceFiles: + { + // NOTE(rjf): name must be determined from file path node chain + }break; } //- rjf: loop through table, gather matches @@ -1288,16 +1292,41 @@ ASYNC_WORK_DEF(di_search_work) //- rjf: get element, map to string; if empty, continue to next element void *element = (U8 *)table_base + element_size*idx; U32 *name_idx_ptr = (U32 *)((U8 *)element + element_name_idx_off); - if(in->section_kind == RDI_SectionKind_UDTs) + String8 name = {0}; + switch(in->section_kind) { - RDI_UDT *udt = (RDI_UDT *)element; - RDI_TypeNode *type_node = rdi_element_from_name_idx(in->rdi, TypeNodes, udt->self_type_idx); - name_idx_ptr = &type_node->user_defined.name_string_idx; + case RDI_SectionKind_UDTs: + { + RDI_UDT *udt = (RDI_UDT *)element; + RDI_TypeNode *type_node = rdi_element_from_name_idx(in->rdi, TypeNodes, udt->self_type_idx); + name_idx_ptr = &type_node->user_defined.name_string_idx; + }break; + case RDI_SectionKind_SourceFiles: + { + Temp scratch = scratch_begin(&arena, 1); + RDI_SourceFile *file = (RDI_SourceFile *)element; + String8List path_parts = {0}; + for(RDI_FilePathNode *fpn = rdi_element_from_name_idx(in->rdi, FilePathNodes, file->file_path_node_idx); + fpn != rdi_element_from_name_idx(in->rdi, FilePathNodes, 0); + fpn = rdi_element_from_name_idx(in->rdi, FilePathNodes, fpn->parent_path_node)) + { + String8 path_part = {0}; + path_part.str = rdi_string_from_idx(in->rdi, fpn->name_string_idx, &path_part.size); + str8_list_push_front(scratch.arena, &path_parts, path_part); + } + StringJoin join = {0}; + join.sep = str8_lit("/"); + name = str8_list_join(arena, &path_parts, &join); + scratch_end(scratch); + }break; + default: + { + U32 name_idx = *name_idx_ptr; + U64 name_size = 0; + U8 *name_base = rdi_string_from_idx(in->rdi, name_idx, &name_size); + name = str8(name_base, name_size); + }break; } - U32 name_idx = *name_idx_ptr; - U64 name_size = 0; - U8 *name_base = rdi_string_from_idx(in->rdi, name_idx, &name_size); - String8 name = str8(name_base, name_size); if(name.size == 0) { continue; } //- rjf: fuzzy match against query @@ -1319,7 +1348,7 @@ ASYNC_WORK_DEF(di_search_work) chunk->v[chunk->count].idx = idx; chunk->v[chunk->count].dbgi_idx = in->dbgi_idx; chunk->v[chunk->count].match_ranges = matches; - chunk->v[chunk->count].missed_size = (name_size > matches.total_dim) ? (name_size-matches.total_dim) : 0; + chunk->v[chunk->count].missed_size = (name.size > matches.total_dim) ? (name.size-matches.total_dim) : 0; chunk->count += 1; out->items.total_count += 1; } diff --git a/src/raddbg/generated/raddbg.meta.c b/src/raddbg/generated/raddbg.meta.c index 76f0087d..83fe8eb6 100644 --- a/src/raddbg/generated/raddbg.meta.c +++ b/src/raddbg/generated/raddbg.meta.c @@ -640,7 +640,7 @@ RD_CmdKindInfo rd_cmd_kind_info_table[244] = { str8_lit_comp("tab_settings"), str8_lit_comp("Opens settings for a tab."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("set_current_path"), str8_lit_comp("Sets the debugger's current path, which is used as a starting point when browsing for files."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("open"), str8_lit_comp("Opens a file."), str8_lit_comp("code,source,file"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("switch"), str8_lit_comp("Switches to a recent file."), str8_lit_comp("code,source,file"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:recent_files"), str8_lit_comp(""), CTRL_EntityKind_Null}}, +{ str8_lit_comp("switch"), str8_lit_comp("Switches to a recent file."), str8_lit_comp("code,source,file"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:recent_files, query:source_files"), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("switch_to_partner_file"), str8_lit_comp("Switches to the focused file's partner; or from header to implementation or vice versa."), str8_lit_comp("code,source,file"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("record_file_in_project"), str8_lit_comp("Records the passed file path as a recent file in the currently loaded project."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("show_file_in_explorer"), str8_lit_comp("Opens the operating system's file explorer and shows the selected file."), str8_lit_comp(""), str8_lit_comp("$file,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, diff --git a/src/raddbg/raddbg.mdesk b/src/raddbg/raddbg.mdesk index 8cd6e9ae..46a7bda9 100644 --- a/src/raddbg/raddbg.mdesk +++ b/src/raddbg/raddbg.mdesk @@ -893,7 +893,7 @@ RD_CmdTable: // | | | | //- rjf: files {SetCurrentPath 0 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 FileOutline "set_current_path" "Set Current Path" "Sets the debugger's current path, which is used as a starting point when browsing for files." "" "" } {Open 1 1 0 0 `folder:\\"$input\\"` FilePath null Nil Null 1 0 0 0 0 1 1 FileOutline "open" "Open" "Opens a file." "code,source,file" "" } - {Switch 1 0 0 0 "query:recent_files" Cfg null RecentFile Null 0 0 0 0 0 1 1 FileOutline "switch" "Switch" "Switches to a recent file." "code,source,file" "" } + {Switch 1 0 0 0 "query:recent_files, query:source_files" Cfg null RecentFile Null 0 0 0 0 0 1 1 FileOutline "switch" "Switch" "Switches to a recent file." "code,source,file" "" } {SwitchToPartnerFile 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 FileOutline "switch_to_partner_file" "Switch To Partner File" "Switches to the focused file's partner; or from header to implementation or vice versa." "code,source,file" "" } {RecordFileInProject 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 FileOutline "record_file_in_project" "Record File In Project" "Records the passed file path as a recent file in the currently loaded project." "" "" } {ShowFileInExplorer 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 FolderClosedFilled "show_file_in_explorer" "Show File In Explorer" "Opens the operating system's file explorer and shows the selected file." "" "$file," } diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 788a4419..1b38ecab 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -12271,6 +12271,7 @@ rd_frame(void) str8_lit_comp("constants"), str8_lit_comp("globals"), str8_lit_comp("types"), + str8_lit_comp("source_files"), }; for EachElement(idx, debug_info_table_collection_names) { @@ -12741,6 +12742,7 @@ rd_frame(void) str8_list_pushf(scratch.arena, &exprs, "query:types"); str8_list_pushf(scratch.arena, &exprs, "query:globals"); str8_list_pushf(scratch.arena, &exprs, "query:thread_locals"); + str8_list_pushf(scratch.arena, &exprs, "query:source_files"); } String8 expr = str8_list_join(scratch.arena, &exprs, &(StringJoin){.sep = str8_lit(", ")}); rd_cmd(RD_CmdKind_PushQuery, .expr = expr, .do_implicit_root = 1, .do_lister = 1, .do_big_rows = 1, .view = tab->id, .tab = tab->id); @@ -14139,9 +14141,17 @@ rd_frame(void) }break; case RD_CmdKind_Switch: { - RD_Cfg *recent_file = rd_cfg_from_id(rd_regs()->cfg); - RD_Cfg *path_root = rd_cfg_child_from_string(recent_file, str8_lit("path")); - String8 path = path_root->first->string; + String8 path = {0}; + if(path.size == 0) + { + RD_Cfg *recent_file = rd_cfg_from_id(rd_regs()->cfg); + RD_Cfg *path_root = rd_cfg_child_from_string(recent_file, str8_lit("path")); + path = path_root->first->string; + } + if(path.size == 0) + { + path = rd_regs()->file_path; + } rd_cmd(RD_CmdKind_FindCodeLocation, .file_path = path, .cursor = txt_pt(0, 0), .vaddr = 0, .force_focus = 1); }break; case RD_CmdKind_SwitchToPartnerFile: diff --git a/src/raddbg/raddbg_eval.c b/src/raddbg/raddbg_eval.c index e548ed48..aea1d37b 100644 --- a/src/raddbg/raddbg_eval.c +++ b/src/raddbg/raddbg_eval.c @@ -1556,6 +1556,7 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(debug_info_table) else if(str8_match(lhs_type->name, str8_lit("thread_locals"), 0)) {section = RDI_SectionKind_ThreadVariables;} else if(str8_match(lhs_type->name, str8_lit("constants"), 0)) {section = RDI_SectionKind_Constants;} else if(str8_match(lhs_type->name, str8_lit("types"), 0)) {section = RDI_SectionKind_UDTs;} + else if(str8_match(lhs_type->name, str8_lit("source_files"), 0)) {section = RDI_SectionKind_SourceFiles;} } // rjf: gather debug info table items @@ -1614,6 +1615,7 @@ E_TYPE_EXPAND_RANGE_FUNCTION_DEF(debug_info_table) // rjf: get item's string String8 item_string = {0}; + B32 item_is_path = 0; { U64 element_idx = item->idx; switch(accel->section) @@ -1663,11 +1665,33 @@ E_TYPE_EXPAND_RANGE_FUNCTION_DEF(debug_info_table) name.str = rdi_string_from_idx(module->rdi, type_node->user_defined.name_string_idx, &name.size); item_string = name; }break; + case RDI_SectionKind_SourceFiles: + { + RDI_SourceFile *sf = rdi_element_from_name_idx(module->rdi, SourceFiles, element_idx); + String8List path_parts = {0}; + for(RDI_FilePathNode *fpn = rdi_element_from_name_idx(rdi, FilePathNodes, sf->file_path_node_idx); + fpn != rdi_element_from_name_idx(rdi, FilePathNodes, 0); + fpn = rdi_element_from_name_idx(rdi, FilePathNodes, fpn->parent_path_node)) + { + String8 path_part = {0}; + path_part.str = rdi_string_from_idx(rdi, fpn->name_string_idx, &path_part.size); + str8_list_push_front(scratch.arena, &path_parts, path_part); + } + StringJoin join = {0}; + join.sep = str8_lit("/"); + item_string = str8_list_join(scratch.arena, &path_parts, &join); + item_is_path = 1; + }break; } } // rjf: build a valid expression string given item string String8 item_expr = item_string; + if(item_is_path) + { + item_expr = push_str8f(scratch.arena, "file:\"%S\"", item_string); + } + else { B32 string_can_be_evalled = 1; E_TokenArray tokens = e_token_array_from_text(scratch.arena, item_string); From 093e43d2fff91c80c45db9f8f7669e8d5a330611 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 7 Jul 2025 14:23:36 -0700 Subject: [PATCH 274/372] change output folder name --- src/torture/torture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index c7130d18..94dab1a2 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -64,7 +64,7 @@ global String8 g_stdout_file_name = str8_lit_comp("torture"); global U64 g_linker_time_out; global String8 g_linker; global String8 g_wdir; -global String8 g_out = str8_lit_comp("torture_out"); +global String8 g_out = str8_lit_comp("torture"); global B32 g_verbose; global B32 g_redirect_stdout; From db52ba32e60a48c7e222b8bfc3fa428eba94beb4 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 7 Jul 2025 14:24:23 -0700 Subject: [PATCH 275/372] helper for profiling parallel fors --- src/linker/thread_pool/thread_pool.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/linker/thread_pool/thread_pool.h b/src/linker/thread_pool/thread_pool.h index f03e2a1e..abea5cbd 100644 --- a/src/linker/thread_pool/thread_pool.h +++ b/src/linker/thread_pool/thread_pool.h @@ -49,6 +49,7 @@ internal TP_Arena * tp_arena_alloc(TP_Context *pool); internal void tp_arena_release(TP_Arena **arena_ptr); internal TP_Temp tp_temp_begin(TP_Arena *arena); internal void tp_temp_end(TP_Temp temp); +#define tp_for_parallel_prof(pool, arena, task_count, task_func, task_data, zone_name) ProfBegin(zone_name); tp_for_parallel(pool, arena, task_count, task_func, task_data); ProfEnd(); internal void tp_for_parallel(TP_Context *pool, TP_Arena *arena, U64 task_count, TP_TaskFunc *task_func, void *task_data); internal Rng1U64 * tp_divide_work(Arena *arena, U64 item_count, U32 worker_count); From 6e6a2df0cbb41908323e6471e75928f8f30c5eee Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 16 Jul 2025 15:38:27 -0700 Subject: [PATCH 276/372] implement 'priority thread' in demon, to prefer debug events from selected thread - greatly improves multithreaded stepping --- src/ctrl/ctrl_core.c | 1 + src/demon/demon_core.h | 1 + src/demon/win32/demon_core_win32.c | 98 ++++++++++++++++++++---------- src/raddbg/raddbg_main.c | 12 ++-- 4 files changed, 73 insertions(+), 39 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index cf42ce18..60293720 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -5870,6 +5870,7 @@ ctrl_thread__run(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg) //- rjf: setup run controls // DMN_RunCtrls run_ctrls = {0}; + run_ctrls.priority_thread = target_thread.dmn_handle; run_ctrls.ignore_previous_exception = 1; run_ctrls.run_entity_count = frozen_threads.count; run_ctrls.run_entities = push_array(scratch.arena, DMN_Handle, run_ctrls.run_entity_count); diff --git a/src/demon/demon_core.h b/src/demon/demon_core.h index 21d8a5a4..b46f316b 100644 --- a/src/demon/demon_core.h +++ b/src/demon/demon_core.h @@ -139,6 +139,7 @@ struct DMN_TrapChunkList typedef struct DMN_RunCtrls DMN_RunCtrls; struct DMN_RunCtrls { + DMN_Handle priority_thread; DMN_Handle single_step_thread; B8 ignore_previous_exception; B8 run_entities_are_unfrozen; diff --git a/src/demon/win32/demon_core_win32.c b/src/demon/win32/demon_core_win32.c index f27ba706..100cc98c 100644 --- a/src/demon/win32/demon_core_win32.c +++ b/src/demon/win32/demon_core_win32.c @@ -1801,40 +1801,14 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) } } - ////////////////////////// - //- rjf: resume threads which will run - // - ProfScope("resume threads which will run") - { - for(DMN_W32_EntityNode *n = first_run_thread; n != 0; n = n->next) - { - DMN_W32_Entity *thread = n->v; - DWORD resume_result = ResumeThread(thread->handle); - switch(resume_result) - { - case 0xffffffffu: - { - // TODO(rjf): error - unknown cause. need to do GetLastError, FormatMessage - }break; - default: - { - DWORD desired_counter = 0; - DWORD current_counter = resume_result - 1; - if(current_counter != desired_counter) - { - // NOTE(rjf): Warning. The user has manually suspended this thread, - // so even though from Demon's perspective it thinks this thread - // should run, it will not, because the user has manually called - // SuspendThread or used CREATE_SUSPENDED or whatever. - } - }break; - } - } - } - ////////////////////////// //- rjf: loop, consume win32 debug events until we produce the relevant demon events // + B32 priority_mode = !dmn_handle_match(dmn_handle_zero(), ctrls->priority_thread); + B32 did_priority_mode = priority_mode; + B32 do_threads_resume = 1; + DMN_W32_EntityNode *first_ran_thread = 0; + DMN_W32_EntityNode *last_ran_thread = 0; U64 begin_time = os_now_microseconds(); String8List debug_strings = {0}; DMN_Event *debug_strings_event = 0; @@ -1842,6 +1816,54 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) { keep_going = 0; + //////////////////////// + //- rjf: resume threads that we want to run + // + // if priority mode? => first, just resume priority thread + // if not? => resume all non-priority threads + // + if(do_threads_resume) + { + do_threads_resume = 0; + for(DMN_W32_EntityNode *n = first_run_thread; n != 0; n = n->next) + { + DMN_W32_Entity *thread = n->v; + B32 thread_is_priority = dmn_handle_match(dmn_w32_handle_from_entity(thread), ctrls->priority_thread); + if((priority_mode && !thread_is_priority) || + (!priority_mode && did_priority_mode && thread_is_priority)) + { + continue; + } + DWORD resume_result = ResumeThread(thread->handle); + DMN_W32_EntityNode *n = push_array(scratch.arena, DMN_W32_EntityNode, 1); + SLLQueuePush(first_ran_thread, last_ran_thread, n); + n->v = thread; + switch(resume_result) + { + case 0xffffffffu: + { + // TODO(rjf): error - unknown cause. need to do GetLastError, FormatMessage + }break; + default: + { + DWORD desired_counter = 0; + DWORD current_counter = resume_result - 1; + if(current_counter != desired_counter) + { + // NOTE(rjf): Warning. The user has manually suspended this thread, + // so even though from Demon's perspective it thinks this thread + // should run, it will not, because the user has manually called + // SuspendThread or used CREATE_SUSPENDED or whatever. + } + }break; + } + if(priority_mode && thread_is_priority) + { + break; + } + } + } + //////////////////////// //- rjf: choose win32 resume code // @@ -1878,7 +1900,12 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) } if(resume_good) { - evt_good = !!WaitForDebugEvent(&evt, 100); + DWORD wait_ms = 100; + if(priority_mode) + { + wait_ms = 30; + } + evt_good = !!WaitForDebugEvent(&evt, wait_ms); if(evt_good) { dmn_w32_shared->resume_needed = 1; @@ -1891,6 +1918,11 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) (void)err; keep_going = 1; } + if(priority_mode) + { + priority_mode = 0; + do_threads_resume = 1; + } } } @@ -2664,7 +2696,7 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) // ProfScope("suspend threads which ran") { - for(DMN_W32_EntityNode *n = first_run_thread; n != 0; n = n->next) + for(DMN_W32_EntityNode *n = first_ran_thread; n != 0; n = n->next) { DMN_W32_Entity *thread = n->v; if(thread->kind != DMN_W32_EntityKind_Thread) diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index 0a41d192..5ef120b9 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -6,7 +6,6 @@ // //- urgent fixes // [ ] hardware breakpoints regression (global eval in ctrl) -// [ ] []string being sized by [0], due to `.` applying to first ^string // //- memory view // [ ] have smaller visible range than entire memory @@ -21,9 +20,6 @@ // [ ] disassembly sometimes has a problem where source line annotations are // periodically removed/inserted... maybe updating on fs change when we // shouldn't, non-deterministic line annotation path? -// [ ] process memory cache sometimes is not correctly updating - best repro -// case so far is (for some reason?) only hover evaluation - only spotted -// on laptop in debug builds. g0 ctrl_bindings.bindings initialization. // //- watch improvements // [ ] *ALL* expressions in watch windows need to be editable. @@ -115,7 +111,6 @@ //- eval improvements // [ ] maybe add extra caching layer to process memory querying? we pay a pretty // heavy cost even to just read 8 bytes... -// [ ] evaluate `foo.bar` symbol names without escape hatch? // [ ] serializing eval view maps (?) // [ ] EVAL LOOKUP RULES -> currently going 0 -> rdis_count, but we need // to prioritize the primary rdi @@ -149,7 +144,6 @@ // [ ] investigate wide-conversion performance // [ ] oversubscribing cores? // [ ] conversion crashes? -// [ ] fastpath lookup to determine debug info relevance? // [ ] live++ investigations - ctrl+alt+f11 in UE? // //- memory usage improvements @@ -189,6 +183,12 @@ // is not correctly incremented. // [x] output: add option for scroll-to-bottom - ensure this shows up in universal ctx menu // [x] auto-annotations for non-locals +// [x] []string being sized by [0], due to `.` applying to first ^string +// [x] process memory cache sometimes is not correctly updating - best repro +// case so far is (for some reason?) only hover evaluation - only spotted +// on laptop in debug builds. g0 ctrl_bindings.bindings initialization. +// [x] evaluate `foo.bar` symbol names without escape hatch? +// [x] fastpath lookup to determine debug info relevance? //////////////////////////////// //~ rjf: Build Options From 190b3384f96452d5db3521b4408c8981d8299424 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 16 Jul 2025 15:52:41 -0700 Subject: [PATCH 277/372] preserve selected thread info on continues --- src/dbg_engine/dbg_engine_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dbg_engine/dbg_engine_core.c b/src/dbg_engine/dbg_engine_core.c index 62618361..ad61e676 100644 --- a/src/dbg_engine/dbg_engine_core.c +++ b/src/dbg_engine/dbg_engine_core.c @@ -1843,7 +1843,7 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints, D_P { need_run = 1; run_kind = D_RunKind_Run; - run_thread = &ctrl_entity_nil; + run_thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, params->thread); } else { @@ -1970,7 +1970,7 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints, D_P CTRL_EntityArray processes = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Process); if(processes.count != 0) { - d_cmd(D_CmdKind_Continue); + d_cmd(D_CmdKind_Continue, .machine = params->machine, .process = params->process, .thread = params->thread); } else if(!d_ctrl_targets_running()) { From 0610d5ae137e48f48047c38b3b82cdba75e9aefc Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 17 Jul 2025 14:08:44 -0700 Subject: [PATCH 278/372] demon/linux: pid extraction, module extraction, most of launching path --- project.4coder | 8 +- src/base/base_strings.c | 23 +- src/base/base_strings.h | 15 +- src/demon/linux/demon_core_linux.c | 631 +++++++++++++++++++++++++++++ src/demon/linux/demon_core_linux.h | 123 ++++++ src/elf/elf.h | 32 +- 6 files changed, 799 insertions(+), 33 deletions(-) diff --git a/project.4coder b/project.4coder index 2d3c8b01..db6f3af3 100644 --- a/project.4coder +++ b/project.4coder @@ -46,7 +46,10 @@ load_paths = commands = { //- rjf: [raddbg] - .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + + //- rjf: [raddbg wsl] + .f1 = { .win = "wsl ./build.sh raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [scratch] .f2 = { .win = "raddbg_stable --ipc kill_all && build radbin && pushd build && radbin.exe mule_main.rdi --out:a.dump && popd", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, @@ -61,7 +64,8 @@ commands = // .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: running target - .f3 = { .win = "raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f3 = { .win = "raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f3 = { .win = "wsl ./build/raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f3 = { .win = "pushd build && raddbg --user:dev.raddbg_user && popd", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f3 = { .win = "C:/devel/raddebugger/build/raddbg.exe --capture --user:C:/devel/raddebugger/build/local_dev.raddbg_user --project:C:/devel/raddebugger/build/local_dev.raddbg_project", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f3 = { .win = "wsl_launch /mnt/c/devel/raddebugger/build/raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, diff --git a/src/base/base_strings.c b/src/base/base_strings.c index 030f993b..5088f164 100644 --- a/src/base/base_strings.c +++ b/src/base/base_strings.c @@ -480,28 +480,30 @@ str8_skip_chop_slashes(String8 string) //~ rjf: String Formatting & Copying internal String8 -push_str8_cat(Arena *arena, String8 s1, String8 s2){ +str8_cat(Arena *arena, String8 s1, String8 s2) +{ String8 str; str.size = s1.size + s2.size; str.str = push_array_no_zero(arena, U8, str.size + 1); MemoryCopy(str.str, s1.str, s1.size); MemoryCopy(str.str + s1.size, s2.str, s2.size); str.str[str.size] = 0; - return(str); + return str; } internal String8 -push_str8_copy(Arena *arena, String8 s){ +str8_copy(Arena *arena, String8 s) +{ String8 str; str.size = s.size; str.str = push_array_no_zero(arena, U8, str.size + 1); MemoryCopy(str.str, s.str, s.size); str.str[str.size] = 0; - return(str); + return str; } internal String8 -push_str8fv(Arena *arena, char *fmt, va_list args){ +str8fv(Arena *arena, char *fmt, va_list args){ va_list args2; va_copy(args2, args); U32 needed_bytes = raddbg_vsnprintf(0, 0, fmt, args) + 1; @@ -510,16 +512,17 @@ push_str8fv(Arena *arena, char *fmt, va_list args){ result.size = raddbg_vsnprintf((char*)result.str, needed_bytes, fmt, args2); result.str[result.size] = 0; va_end(args2); - return(result); + return result; } internal String8 -push_str8f(Arena *arena, char *fmt, ...){ +str8f(Arena *arena, char *fmt, ...) +{ va_list args; va_start(args, fmt); String8 result = push_str8fv(arena, fmt, args); va_end(args); - return(result); + return result; } internal String8 @@ -637,14 +640,14 @@ try_u64_from_str8_c_rules(String8 string, U64 *x) { radix = 10, prefix_size = 0; } - + String8 integer = str8_skip(string, prefix_size); B32 is_integer = str8_is_integer(integer, radix); if(is_integer) { *x = u64_from_str8(integer, radix); } - + return is_integer; } diff --git a/src/base/base_strings.h b/src/base/base_strings.h index 14e71c74..1c3a5d63 100644 --- a/src/base/base_strings.h +++ b/src/base/base_strings.h @@ -228,11 +228,16 @@ internal String8 str8_skip_chop_slashes(String8 string); //////////////////////////////// //~ rjf: String Formatting & Copying -internal String8 push_str8_cat(Arena *arena, String8 s1, String8 s2); -internal String8 push_str8_copy(Arena *arena, String8 s); -internal String8 push_str8fv(Arena *arena, char *fmt, va_list args); -internal String8 push_str8f(Arena *arena, char *fmt, ...); -internal String8 push_cstr(Arena *arena, String8 str); +internal String8 str8_cat(Arena *arena, String8 s1, String8 s2); +internal String8 str8_copy(Arena *arena, String8 s); +internal String8 str8fv(Arena *arena, char *fmt, va_list args); +internal String8 str8f(Arena *arena, char *fmt, ...); +// TODO(rjf): remove these once we're ready to convert all usages: +#define push_str8_cat(arena, s1, s2) str8_cat((arena), (s1), (s2)) +#define push_str8_copy(arena, s) str8_copy((arena), (s)) +#define push_str8fv(arena, fmt, args) str8fv((arena), (fmt), (args)) +#define push_str8f(arena, ...) str8f((arena), __VA_ARGS__) +internal String8 push_cstr(Arena *arena, String8 str); // TODO(rjf): this is unnecessary - this is implied by `push_str8_copy`. need to remove. //////////////////////////////// //~ rjf: String <=> Integer Conversions diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c index d8433013..858355be 100644 --- a/src/demon/linux/demon_core_linux.c +++ b/src/demon/linux/demon_core_linux.c @@ -1,12 +1,484 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) +//////////////////////////////// +//~ rjf: Helpers + +//- rjf: file descriptor memory reading/writing helpers + +internal U64 +dmn_lnx_read(int memory_fd, Rng1U64 range, void *dst) +{ + U64 bytes_read = 0; + U8 *ptr = (U8 *)dst; + U8 *opl = ptr + dim_1u64(range); + U64 cursor = range.min; + for(;ptr < opl;) + { + size_t to_read = (size_t)(opl - ptr); + ssize_t actual_read = pread(memory_fd, ptr, to_read, cursor); + if(actual_read == -1) + { + break; + } + ptr += actual_read; + cursor += actual_read; + bytes_read += actual_read; + } + return bytes_read; +} + +internal B32 +dmn_lnx_write(int memory_fd, Rng1U64 range, void *src) +{ + B32 result = 1; + U8 *ptr = (U8 *)src; + U8 *opl = ptr + dim_1u64(range); + U64 cursor = range.min; + for(;ptr < opl;) + { + size_t to_write = (size_t)(opl - ptr); + ssize_t actual_write = pwrite(memory_fd, ptr, to_write, cursor); + if(actual_write == -1) + { + result = 0; + break; + } + ptr += actual_write; + cursor += actual_write; + } + return result; +} + +//- rjf: pid => info extraction + +internal String8 +dmn_lnx_exe_path_from_pid(Arena *arena, pid_t pid) +{ + Temp scratch = scratch_begin(&arena, 1); + + //- rjf: get exe link path + String8 exe_link_path = str8f(scratch.arena, "/proc/%d/exe", pid); + + //- rjf: read the link + Temp restore_point = temp_begin(arena); + B32 good = 0; + U8 *buffer = 0; + int readlink_result = 0; + S64 cap = PATH_MAX; + for(S64 r = 0; r < 4; cap *= 2, r += 1) + { + temp_end(restore_point); + buffer = push_array_no_zero(arena, U8, cap); + readlink_result = readlink((char *)exe_link_path.str, (char *)buffer, cap); + if(readlink_result < cap) + { + good = 1; + break; + } + } + + //- rjf: package result + String8 result = {0}; + if(!good || readlink_result == -1) + { + temp_end(restore_point); + } + else + { + arena_pop(arena, (cap - readlink_result - 1)); + result = str8(buffer, readlink_result + 1); + } + + scratch_end(scratch); + return result; +} + +internal Arch +dmn_lnx_arch_from_pid(pid_t pid) +{ + Arch result = Arch_Null; + { + Temp scratch = scratch_begin(0, 0); + String8 exe_path = dmn_lnx_exe_path_from_pid(scratch.arena, pid); + + // rjf: unpack exe handle + int exe_fd = -1; + if(exe_path.size != 0) + { + exe_fd = open((char*)exe_path.str, O_RDONLY); + } + + // rjf: unpack elf identifier + U8 e_ident[ELF_Identifier_Max] = {0}; + B32 is_elf = 0; + U8 elf_class = 0; + if(exe_fd >= 0 && + pread(exe_fd, e_ident, sizeof(e_ident), 0) == sizeof(e_ident)) + { + is_elf = (e_ident[ELF_Identifier_Mag0] == 0x7f && + e_ident[ELF_Identifier_Mag1] == 'E' && + e_ident[ELF_Identifier_Mag2] == 'L' && + e_ident[ELF_Identifier_Mag3] == 'F'); + elf_class = e_ident[ELF_Identifier_Class]; + } + + // rjf: read elf header + ELF_Hdr64 hdr = {0}; + switch(elf_class) + { + case 1: + { + ELF_Hdr32 hdr32 = {0}; + if(pread(exe_fd, &hdr32, sizeof(hdr32), 0) == sizeof(hdr32)) + { + hdr = elf_hdr64_from_hdr32(hdr32); + } + }break; + case 2: + { + pread(exe_fd, &hdr, sizeof(hdr), 0); + }break; + } + + // rjf: determine arch from elf machine kind + result = arch_from_elf_machine(hdr.e_machine); + + scratch_end(scratch); + } + return result; +} + +internal DMN_LNX_ProcessAux +dmn_lnx_aux_from_pid(pid_t pid, Arch arch) +{ + Temp scratch = scratch_begin(0, 0); + DMN_LNX_ProcessAux result = {0}; + + // rjf: open aux data + String8 auxv_path = push_str8f(scratch.arena, "/proc/%d/auxv", pid); + int aux_fd = open((char*)auxv_path.str, O_RDONLY); + + // rjf: scan aux data + if(aux_fd >= 0) + { + B32 addr_32bit = (arch == Arch_x86 || arch == Arch_arm32); + for(;;) + { + result.filled = 1; + + // rjf: read next aux + U64 type = 0; + U64 val = 0; + if(addr_32bit) + { + ELF_Auxv32 aux = {0}; + if(read(aux_fd, &aux, sizeof(aux)) != sizeof(aux)) + { + goto brkloop; + } + type = aux.a_type; + val = aux.a_val; + } + else + { + ELF_Auxv64 aux = {0}; + if(read(aux_fd, &aux, sizeof(aux)) != sizeof(aux)) + { + goto brkloop; + } + type = aux.a_type; + val = aux.a_val; + } + + // rjf: fill result + switch(type) + { + default:{}break; + case ELF_AuxType_Null: goto brkloop; break; + case ELF_AuxType_Phnum: result.phnum = val; break; + case ELF_AuxType_Phent: result.phent = val; break; + case ELF_AuxType_Phdr: result.phdr = val; break; + case ELF_AuxType_ExecFn: result.execfn = val; break; + } + } + brkloop:; + close(aux_fd); + } + + scratch_end(scratch); + return result; +} + +//- rjf: phdr info extraction + +internal DMN_LNX_PhdrInfo +dmn_lnx_phdr_info_from_memory(int memory_fd, B32 is_32bit, U64 phvaddr, U64 phsize, U64 phcount) +{ + DMN_LNX_PhdrInfo result = {0}; + + // rjf: determine how much phdr we'll read + U64 phdr_size_expected = (is_32bit ? sizeof(ELF_Phdr32) : sizeof(ELF_Phdr64)); + U64 phdr_stride = (phsize ? phsize : phdr_size_expected); + U64 phdr_read_size = ClampTop(phsize, phdr_size_expected); + + // rjf: scan table + U64 va = phvaddr; + for(U64 i = 0; i < phcount; i += 1, va += phdr_stride) + { + // rjf: read type and range + ELF_PType p_type = 0; + U64 p_vaddr = 0; + U64 p_memsz = 0; + if(is_32bit) + { + ELF_Phdr32 phdr32 = {0}; + dmn_lnx_read_struct(memory_fd, va, &phdr32); + p_type = phdr32.p_type; + p_vaddr = phdr32.p_vaddr; + p_memsz = phdr32.p_memsz; + } + else + { + ELF_Phdr64 phdr64 = {0}; + dmn_lnx_read_struct(memory_fd, va, &phdr64); + p_type = phdr64.p_type; + p_vaddr = phdr64.p_vaddr; + p_memsz = phdr64.p_memsz; + } + + // rjf: save + switch(p_type) + { + case ELF_PType_Dynamic: + { + result.dynamic = p_vaddr; + }break; + case ELF_PType_Load: + { + U64 min = p_vaddr; + U64 max = p_vaddr + p_memsz; + result.range.min = Min(result.range.min, min); + result.range.max = Max(result.range.max, max); + }break; + } + } + + return result; +} + +//- rjf: process entity => info extraction + +internal DMN_LNX_ModuleInfoList +dmn_lnx_module_info_list_from_process(Arena *arena, DMN_LNX_Entity *process) +{ + Arch arch = process->arch; + B32 is_32bit = (arch == Arch_x86 || arch == Arch_arm32); + int memory_fd = (int)process->fd; + + //- rjf: pid => aux + DMN_LNX_ProcessAux aux = dmn_lnx_aux_from_pid((pid_t)process->id, arch); + + //- rjf: memory => phdr info + DMN_LNX_PhdrInfo phdr_info = dmn_lnx_phdr_info_from_memory(memory_fd, is_32bit, + aux.phdr, aux.phent, aux.phnum); + + //- rjf: memory space & vaddr => linkmap first + U64 first_linkmap_vaddr = 0; + if(phdr_info.dynamic != 0) + { + U64 off = phdr_info.dynamic; + for(;;) + { + // rjf: read next dyn entry + ELF_Dyn64 dyn = {0}; + if(is_32bit) + { + ELF_Dyn32 dyn32 = {0}; + dmn_lnx_read_struct(memory_fd, off, &dyn32); + dyn.tag = dyn32.tag; + dyn.val = dyn32.val; + off += sizeof(dyn32); + } + else + { + dmn_lnx_read_struct(memory_fd, off, &dyn); + off += sizeof(dyn); + } + + // rjf: break on zero + if(dyn.tag == ELF_DynTag_Null) + { + break; + } + + // rjf: pltgot => grab first linkmap address + if(dyn.tag == ELF_DynTag_PltGot) + { + // True for x86 and x64 + // vas[0] virtual address of .dynamic + // vas[2] callback for resolving function address of relocation and if successful jumps to it. + // + // Code that sets up PLTGOT is in glibc/sysdeps/x86_64/dl_machine.h -> elf_machine_runtime_setup + // + U64 vas_off = dyn.val; + U64 vas[3] = {0}; + dmn_lnx_read(memory_fd, r1u64(vas_off, vas_off+sizeof(vas)), vas); + first_linkmap_vaddr = vas[1]; + break; + } + } + } + + //- rjf: push main module + DMN_LNX_ModuleInfoList list = {0}; + { + DMN_LNX_ModuleInfoNode *n = push_array(arena, DMN_LNX_ModuleInfoNode, 1); + SLLQueuePush(list.first, list.last, n); + list.count += 1; + n->v.vaddr_range = phdr_info.range; + n->v.name = aux.execfn; + } + + //- rjf: iterate link maps + if(first_linkmap_vaddr != 0) + { + U64 linkmap_vaddr = first_linkmap_vaddr; + for(;linkmap_vaddr != 0;) + { + // rjf: read next linkmap entry + ELF_LinkMap64 linkmap = {0}; + if(is_32bit) + { + // TODO(rjf): endianness + ELF_LinkMap32 linkmap32 = {0}; + dmn_lnx_read_struct(memory_fd, linkmap_vaddr, &linkmap32); + linkmap.base = linkmap32.base; + linkmap.name = linkmap32.name; + linkmap.ld = linkmap32.ld; + linkmap.next = linkmap32.next; + } + else + { + dmn_lnx_read_struct(memory_fd, linkmap_vaddr, &linkmap); + } + + // rjf: push module for next link map + if(linkmap.base != 0) + { + // rjf: find phdr info for this module + U64 phvaddr = 0; + U64 phentsize = 0; + U64 phcount = 0; + if(is_32bit) + { + ELF_Hdr32 ehdr = {0}; + dmn_lnx_read_struct(memory_fd, linkmap.base, &ehdr); + phvaddr = ehdr.e_phoff + linkmap.base; + phentsize = ehdr.e_phentsize; + phcount = ehdr.e_phnum; + } + else + { + ELF_Hdr64 ehdr = {0}; + dmn_lnx_read_struct(memory_fd, linkmap.base, &ehdr); + phvaddr = ehdr.e_phoff + linkmap.base; + phentsize = ehdr.e_phentsize; + phcount = ehdr.e_phnum; + } + + // rjf: extract info from module's phdrs + DMN_LNX_PhdrInfo module_phdr_info = dmn_lnx_phdr_info_from_memory(memory_fd, is_32bit, phvaddr, phentsize, phcount); + + // rjf: push + DMN_LNX_ModuleInfoNode *n = push_array(arena, DMN_LNX_ModuleInfoNode, 1); + SLLQueuePush(list.first, list.last, n); + list.count += 1; + n->v.vaddr_range = r1u64(linkmap.base, linkmap.base + dim_1u64(module_phdr_info.range)); + n->v.name = linkmap.name; + } + + // rjf: iterate + linkmap_vaddr = linkmap.next; + } + } + + return list; +} + +//////////////////////////////// +//~ rjf: Entity Functions + +internal DMN_LNX_Entity * +dmn_lnx_entity_alloc(DMN_LNX_Entity *parent, DMN_LNX_EntityKind kind) +{ + DMN_LNX_Entity *entity = dmn_lnx_state->free_entity; + if(entity != 0) + { + SLLStackPop(dmn_lnx_state->free_entity); + } + else + { + entity = push_array(dmn_lnx_state->entities_arena, DMN_LNX_Entity, 1); + dmn_lnx_state->entities_count += 1; + } + U32 gen = entity->gen; + MemoryCopyStruct(entity, &dmn_lnx_nil_entity); + entity->gen += 1; + if(parent != &dmn_lnx_nil_entity) + { + DLLPushBack_NPZ(&dmn_lnx_nil_entity, parent->first, parent->last, entity, next, prev); + entity->parent = parent; + } + entity->kind = kind; + return entity; +} + +internal void +dmn_lnx_entity_release(DMN_LNX_Entity *entity) +{ + SLLStackPush(dmn_lnx_state->free_entity, entity); +} + +internal DMN_Handle +dmn_lnx_handle_from_entity(DMN_LNX_Entity *entity) +{ + DMN_Handle handle = {0}; + U64 index = (U64)(entity - dmn_lnx_state->entities_base); + if(index <= 0xffffffffu) + { + handle.u32[0] = index; + handle.u32[1] = entity->gen; + } + return handle; +} + +internal DMN_LNX_Entity * +dmn_lnx_entity_from_handle(DMN_Handle handle) +{ + DMN_LNX_Entity *result = &dmn_lnx_nil_entity; + U64 index = (U64)handle.u32[0]; + if(index < dmn_lnx_state->entities_count && + dmn_lnx_state->entities_base[index].gen == handle.u32[1]) + { + result = &dmn_lnx_state->entities_base[index]; + } + return result; +} + //////////////////////////////// //~ rjf: @dmn_os_hooks Main Layer Initialization (Implemented Per-OS) internal void dmn_init(void) { + Arena *arena = arena_alloc(); + dmn_lnx_state = push_array(arena, DMN_LNX_State, 1); + dmn_lnx_state->arena = arena; + dmn_lnx_state->deferred_events_arena = arena_alloc(); + dmn_lnx_state->entities_arena = arena_alloc(.reserve_size = GB(32), .commit_size = KB(64), .flags = ArenaFlag_NoChain); + dmn_lnx_state->entities_base = push_array(dmn_lnx_state->entities_arena, DMN_LNX_Entity, 0); + dmn_lnx_state->root_entity = dmn_lnx_entity_alloc(&dmn_lnx_nil_entity, DMN_LNX_EntityKind_Root); } //////////////////////////////// @@ -32,6 +504,165 @@ dmn_ctrl_exclusive_access_end(void) internal U32 dmn_ctrl_launch(DMN_CtrlCtx *ctx, OS_ProcessLaunchParams *params) { + Temp scratch = scratch_begin(0, 0); + + //- rjf: unpack command line + char **argv = 0; + int argc = 0; + { + argc = (int)(params->cmd_line.node_count); + argv = push_array(scratch.arena, char *, argc+1); + { + U64 idx = 0; + for(String8Node *n = params->cmd_line.first; n != 0; n = n->next, idx += 1) + { + argv[idx] = (char *)push_str8_copy(scratch.arena, n->string).str; + } + } + } + + //- rjf: unpack path + char *path = (char *)push_str8_copy(scratch.arena, params->path).str; + + //- rjf: unpack environment + char **env = 0; + { + env = push_array(scratch.arena, char *, params->env.node_count+1); + { + U64 idx = 0; + for(String8Node *n = params->env.first; n != 0; n = n->next, idx += 1) + { + env[idx] = (char *)push_str8_copy(scratch.arena, n->string).str; + } + } + } + + //- rjf: create & set up new process + if(argv != 0 && argv[0] != 0) + { + pid_t pid = 0; + int ptrace_result = 0; + int chdir_result = 0; + int setoptions_result = 0; + B32 error__need_child_kill = 0; + + //- rjf: fork + pid = fork(); + if(pid == -1) { goto error; } + + //- rjf: child process -> execute actual target + if(pid == 0) + { + ptrace_result = ptrace(PTRACE_TRACEME, 0, 0, 0); + if(ptrace_result == -1) { goto error; } + chdir_result = chdir(path); + if(chdir_result == -1) { goto error; } + execve(argv[0], argv, env); + abort(); + } + + //- rjf: parent process + if(pid != 0) + { + //- rjf: wait for child + int status = 0; + pid_t wait_id = waitpid(pid, &status, __WALL); + if(wait_id != pid) + { + // NOTE(rjf): we do not know what this means - needs study if this actually arises. + goto error; + } + + //- rjf: determine child launch status + typedef enum LaunchStatus + { + LaunchStatus_Null, + LaunchStatus_FailBeforePtrace, + LaunchStatus_FailAfterPtrace, + LaunchStatus_Success, + } + LaunchStatus; + LaunchStatus launch_status = LaunchStatus_Null; + { + B32 wifstopped = WIFSTOPPED(status); + int wstopsig = WSTOPSIG(status); + if(0){} + else if(wifstopped && wstopsig == SIGTRAP) { launch_status = LaunchStatus_Success; } + else if(wifstopped && wstopsig != SIGTRAP) { launch_status = LaunchStatus_FailAfterPtrace; } + else { launch_status = LaunchStatus_FailBeforePtrace; } + } + + //- rjf: respond to launch status appropriately + switch(launch_status) + { + //- rjf: no understood handling path + default:{}break; + + //- rjf: failure, after ptrace => we need to explicitly obtain the + // result code & exit the process, otherwise it will become a zombie, + // since it is ptrace'd. + case LaunchStatus_FailAfterPtrace: + { + B32 cleanup_good = 0; + int detach_result = ptrace(PTRACE_DETACH, pid, 0, (void*)SIGCONT); + if(detach_result != -1) + { + int status_cleanup = 0; + pid_t wait_id_cleanup = waitpid(pid, &status_cleanup, __WALL); + if(wait_id_cleanup == pid) + { + cleanup_good = 1; + } + } + if(cleanup_good) + { + // TODO(rjf): child initialization failed, but we at least cleaned it up. + } + else + { + // TODO(rjf): child initialization failed, *and* we couldn't clean it up, so we've created + // yet-another zombie. + } + }break; + + //- rjf: successful launch + case LaunchStatus_Success: + { + setoptions_result = ptrace(PTRACE_SETOPTIONS, pid, 0, PtrFromInt(DMN_LNX_PTRACE_OPTIONS)); + if(setoptions_result == -1) { error__need_child_kill = 1; goto error; } + + //- rjf: build initial process/thread/modules entities + DMN_LNX_Entity *process = &dmn_lnx_nil_entity; + { + // rjf: build process + process = dmn_lnx_entity_alloc(dmn_lnx_state->root_entity, DMN_LNX_EntityKind_Process); + + // rjf: build thread + { + DMN_LNX_Entity *thread = dmn_lnx_entity_alloc(process, DMN_LNX_EntityKind_Thread); + } + + + } + }break; + } + } + + //- rjf: error case + goto success; + error:; + { + if(error__need_child_kill) + { + // TODO(rjf) + } + } + + //- rjf: success + success:; + } + + scratch_end(scratch); return 0; } diff --git a/src/demon/linux/demon_core_linux.h b/src/demon/linux/demon_core_linux.h index e11072f7..96128143 100644 --- a/src/demon/linux/demon_core_linux.h +++ b/src/demon/linux/demon_core_linux.h @@ -4,4 +4,127 @@ #ifndef DEMON_CORE_LINUX_H #define DEMON_CORE_LINUX_H +#include +#include +#include +#include +#include +#include +#include + +#define DMN_LNX_PTRACE_OPTIONS (PTRACE_O_TRACEEXIT|\ +PTRACE_O_EXITKILL|\ +PTRACE_O_TRACEFORK|\ +PTRACE_O_TRACEVFORK|\ +PTRACE_O_TRACECLONE) + +typedef struct DMN_LNX_ProcessAux DMN_LNX_ProcessAux; +struct DMN_LNX_ProcessAux +{ + B32 filled; + U64 phnum; + U64 phent; + U64 phdr; + U64 execfn; +}; + +typedef struct DMN_LNX_PhdrInfo DMN_LNX_PhdrInfo; +struct DMN_LNX_PhdrInfo +{ + Rng1U64 range; + U64 dynamic; +}; + +typedef struct DMN_LNX_ModuleInfo DMN_LNX_ModuleInfo; +struct DMN_LNX_ModuleInfo +{ + Rng1U64 vaddr_range; + U64 name; +}; + +typedef struct DMN_LNX_ModuleInfoNode DMN_LNX_ModuleInfoNode; +struct DMN_LNX_ModuleInfoNode +{ + DMN_LNX_ModuleInfoNode *next; + DMN_LNX_ModuleInfo v; +}; + +typedef struct DMN_LNX_ModuleInfoList DMN_LNX_ModuleInfoList; +struct DMN_LNX_ModuleInfoList +{ + DMN_LNX_ModuleInfoNode *first; + DMN_LNX_ModuleInfoNode *last; + U64 count; +}; + +typedef enum DMN_LNX_EntityKind +{ + DMN_LNX_EntityKind_Null, + DMN_LNX_EntityKind_Root, + DMN_LNX_EntityKind_Process, + DMN_LNX_EntityKind_Thread, + DMN_LNX_EntityKind_Module, + DMN_LNX_EntityKind_COUNT +} +DMN_LNX_EntityKind; + +typedef struct DMN_LNX_Entity DMN_LNX_Entity; +struct DMN_LNX_Entity +{ + DMN_LNX_Entity *first; + DMN_LNX_Entity *last; + DMN_LNX_Entity *next; + DMN_LNX_Entity *prev; + DMN_LNX_Entity *parent; + DMN_LNX_EntityKind kind; + U32 gen; + Arch arch; + U64 id; + int fd; +}; + +typedef struct DMN_LNX_State DMN_LNX_State; +struct DMN_LNX_State +{ + Arena *arena; + Arena *deferred_events_arena; + DMN_EventList deferred_events; + Arena *entities_arena; + DMN_LNX_Entity *entities_base; + U64 entities_count; + DMN_LNX_Entity *root_entity; + DMN_LNX_Entity *free_entity; +}; + +read_only global DMN_LNX_Entity dmn_lnx_nil_entity = {&dmn_lnx_nil_entity, &dmn_lnx_nil_entity, &dmn_lnx_nil_entity, &dmn_lnx_nil_entity, &dmn_lnx_nil_entity}; +global DMN_LNX_State *dmn_lnx_state = 0; + +//////////////////////////////// +//~ rjf: Helpers + +//- rjf: file descriptor memory reading/writing helpers +internal U64 dmn_lnx_read(int memory_fd, Rng1U64 range, void *dst); +internal B32 dmn_lnx_write(int memory_fd, Rng1U64 range, void *src); +#define dmn_lnx_read_struct(fd, vaddr, ptr) dmn_lnx_read((fd), r1u64((vaddr), (vaddr)+sizeof(*(ptr))), (ptr)) +#define dmn_lnx_write_struct(fd, vaddr, ptr) dmn_lnx_write((fd), r1u64((vaddr), (vaddr)+sizeof(*(ptr))), (ptr)) + +//- rjf: pid => info extraction +internal String8 dmn_lnx_exe_path_from_pid(Arena *arena, pid_t pid); +internal Arch dmn_lnx_arch_from_pid(pid_t pid); +internal DMN_LNX_ProcessAux dmn_lnx_aux_from_pid(pid_t pid, Arch arch); + +//- rjf: phdr info extraction +internal DMN_LNX_PhdrInfo dmn_lnx_phdr_info_from_memory(int memory_fd, B32 is_32bit, U64 phvaddr, U64 phsize, U64 phcount); + +//- rjf: process entity => info extraction +internal DMN_LNX_ModuleInfoList dmn_lnx_module_info_list_from_process(Arena *arena, DMN_LNX_Entity *process); + +//////////////////////////////// +//~ rjf: Entity Functions + +internal DMN_LNX_Entity *dmn_lnx_entity_alloc(DMN_LNX_Entity *parent, DMN_LNX_EntityKind kind); +internal void dmn_lnx_entity_release(DMN_LNX_Entity *entity); +internal DMN_Handle dmn_lnx_handle_from_entity(DMN_LNX_Entity *entity); +internal DMN_LNX_Entity *dmn_lnx_entity_from_handle(DMN_Handle handle); + #endif // DEMON_CORE_LINUX_H diff --git a/src/elf/elf.h b/src/elf/elf.h index 791b8351..d5c648b6 100644 --- a/src/elf/elf.h +++ b/src/elf/elf.h @@ -119,10 +119,10 @@ enum ELF_PType_Tls = 7, ELF_PType_LoOs = 0x60000000, ELF_PType_HiOs = 0x6fffffff, - + ELF_PType_LowProc = 0x70000000, ELF_PType_HighProc = 0x7fffffff, - + // specific to Sun ELF_PType_LowSunW = 0x6ffffffa, ELF_PType_SunWBSS = 0x6ffffffb, @@ -169,7 +169,7 @@ enum ELF_SectionCode_SUNW_verdef = 0x6ffffffd, ELF_SectionCode_SUNW_verneed = 0x6ffffffe, // Versions defined by file ELF_SectionCode_SUNW_versym = 0x6fffffff, // Versions needed by file - + // Symbol versions ELF_SectionCode_GNU_verdef = ELF_SectionCode_SUNW_verdef, ELF_SectionCode_GNU_verneed = ELF_SectionCode_SUNW_verneed, @@ -185,22 +185,22 @@ enum ELF_SectionIndex_Undef = 0, // Symbol with section index is undefined and must be resolved by the link editor ELF_SectionIndex_Abs = 0xfff1, // Symbol has absolute value and wont change after relocations ELF_SectionIndex_Common = 0xfff2, // This symbol indicates to linker to allocate the storage at address multiple of st_value - + ELF_SectionIndex_LoReserve = 0xff00, ELF_SectionIndex_HiReserve = 0xffff, - + // Processor specific ELF_SectionIndex_LoProc = ELF_SectionIndex_LoReserve, ELF_SectionIndex_HiProc = 0xff1f, - + // Reserved for OS ELF_SectionIndex_LoOs = 0xff20, ELF_SectionIndex_HiOs = 0xff3f, - + ELF_SectionIndex_IA64_ASNI_Common = ELF_SectionIndex_LoProc, ELF_SectionIndex_X8664_LCommon = 0xff02, ELF_SectionIndex_MIPS_SCommon = 0xff03, - + ELF_SectionIndex_TIC6X_Common = ELF_SectionIndex_LoReserve, ELF_SectionIndex_MIPS_SUndefined = 0xff04, }; @@ -271,7 +271,7 @@ typedef U32 ELF_DynTag; enum { ELF_DynTag_Null = 0, - + ELF_DynTag_Needed = 1, ELF_DynTag_PltRelsz = 2, ELF_DynTag_PltGot = 3, @@ -305,10 +305,10 @@ enum ELF_DynTag_PreInitArray = 32, ELF_DynTag_PreInitArraysz = 33, ELF_DynTag_SymtabShndx = 34, - + ELF_DynTag_LoOs = 0x6000000D, ELF_DynTag_HiOs = 0x6ffff000, - + ELF_DynTag_ValRngLo = 0x6ffffd00, ELF_DynTag_GNU_PreLinked = 0x6ffffdf5, ELF_DynTag_GNU_Conflictsz = 0x6ffffdf6, @@ -322,7 +322,7 @@ enum ELF_DynTag_SymInSz = 0x6ffffdfe, ELF_DynTag_SymInEnt = 0x6ffffdff, ELF_DynTag_ValRngHi = ELF_DynTag_SymInEnt, - + ELF_DynTag_AddrRngLo = 0x6ffffe00, ELF_DynTag_GNU_Hash = 0x6ffffef5, ELF_DynTag_TlsDescPlt = 0x6ffffef6, @@ -336,7 +336,7 @@ enum ELF_DynTag_MoveTab = 0x6ffffefe, ELF_DynTag_SymInfo = 0x6ffffeff, ELF_DynTag_AddrRngHi = ELF_DynTag_SymInfo, - + ELF_DynTag_RelaCount = 0x6ffffff9, ELF_DynTag_RelCount = 0x6ffffffa, ELF_DynTag_Flags_1 = 0x6ffffffb, @@ -951,10 +951,10 @@ enum ELF_CompressTypeEnum ELF_CompressType_None = 0, ELF_CompressType_ZLib = 1, ELF_CompressType_ZStd = 2, - + ELF_CompressType_LoOs = 0x60000000, ELF_CompressType_HiOs = 0x6fffffff, - + ELF_CompressType_LoProc = 0x70000000, ELF_CompressType_HiProc = 0x7fffffff, }; @@ -975,7 +975,7 @@ typedef struct ELF_Chdr64 //////////////////////////////// -internal ELF_Hdr64 elf_hdr64_from_ehdr32(ELF_Hdr32 h32); +internal ELF_Hdr64 elf_hdr64_from_hdr32(ELF_Hdr32 h32); internal ELF_Shdr64 elf_shdr64_from_shdr32(ELF_Shdr32 h32); internal ELF_Phdr64 elf_phdr64_from_phdr32(ELF_Phdr32 h32); internal ELF_Dyn64 elf_dyn64_from_dyn32 (ELF_Dyn32 h32); From 2db6b826a1df226ac32c2a26c9d42732f9f800c5 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 17 Jul 2025 14:31:57 -0700 Subject: [PATCH 279/372] demon/linux: launching events/entity builds; access synchronization --- src/demon/linux/demon_core_linux.c | 67 +++++++++++++++++++++++++++++- src/demon/linux/demon_core_linux.h | 9 ++++ 2 files changed, 75 insertions(+), 1 deletion(-) diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c index 858355be..57d584fa 100644 --- a/src/demon/linux/demon_core_linux.c +++ b/src/demon/linux/demon_core_linux.c @@ -479,6 +479,7 @@ dmn_init(void) dmn_lnx_state->entities_arena = arena_alloc(.reserve_size = GB(32), .commit_size = KB(64), .flags = ArenaFlag_NoChain); dmn_lnx_state->entities_base = push_array(dmn_lnx_state->entities_arena, DMN_LNX_Entity, 0); dmn_lnx_state->root_entity = dmn_lnx_entity_alloc(&dmn_lnx_nil_entity, DMN_LNX_EntityKind_Root); + dmn_lnx_state->access_mutex = os_mutex_alloc(); } //////////////////////////////// @@ -488,17 +489,26 @@ internal DMN_CtrlCtx * dmn_ctrl_begin(void) { DMN_CtrlCtx *ctx = (DMN_CtrlCtx *)1; + dmn_lnx_ctrl_thread = 1; return ctx; } internal void dmn_ctrl_exclusive_access_begin(void) { + OS_MutexScope(dmn_lnx_state->access_mutex) + { + dmn_lnx_state->access_run_state = 1; + } } internal void dmn_ctrl_exclusive_access_end(void) { + OS_MutexScope(dmn_lnx_state->access_mutex) + { + dmn_lnx_state->access_run_state = 1; + } } internal U32 @@ -633,16 +643,57 @@ dmn_ctrl_launch(DMN_CtrlCtx *ctx, OS_ProcessLaunchParams *params) //- rjf: build initial process/thread/modules entities DMN_LNX_Entity *process = &dmn_lnx_nil_entity; + DMN_LNX_Entity *main_thread = &dmn_lnx_nil_entity; { // rjf: build process process = dmn_lnx_entity_alloc(dmn_lnx_state->root_entity, DMN_LNX_EntityKind_Process); + process->arch = dmn_lnx_arch_from_pid(pid); + process->id = pid; + process->fd = open((char*)str8f(scratch.arena, "/proc/%d/mem", pid).str, O_RDWR); + { + DMN_Event *e = dmn_event_list_push(dmn_lnx_state->deferred_events_arena, &dmn_lnx_state->deferred_events); + e->kind = DMN_EventKind_CreateProcess; + e->process = dmn_lnx_handle_from_entity(process); + } // rjf: build thread { DMN_LNX_Entity *thread = dmn_lnx_entity_alloc(process, DMN_LNX_EntityKind_Thread); + thread->id = pid; + thread->arch = process->arch; + { + DMN_Event *e = dmn_event_list_push(dmn_lnx_state->deferred_events_arena, &dmn_lnx_state->deferred_events); + e->kind = DMN_EventKind_CreateThread; + e->process = dmn_lnx_handle_from_entity(process); + e->thread = dmn_lnx_handle_from_entity(thread); + } + main_thread = thread; } + // rjf: gather all process module infos + DMN_LNX_ModuleInfoList module_infos = dmn_lnx_module_info_list_from_process(scratch.arena, process); + for(DMN_LNX_ModuleInfoNode *n = module_infos.first; n != 0; n = n->next) + { + DMN_LNX_Entity *module = dmn_lnx_entity_alloc(process, DMN_LNX_EntityKind_Module); + module->id = n->v.name; + { + DMN_Event *e = dmn_event_list_push(dmn_lnx_state->deferred_events_arena, &dmn_lnx_state->deferred_events); + e->kind = DMN_EventKind_LoadModule; + e->process = dmn_lnx_handle_from_entity(process); + e->thread = dmn_lnx_handle_from_entity(main_thread); + e->module = dmn_lnx_handle_from_entity(module); + e->address = n->v.vaddr_range.min; + e->size = dim_1u64(n->v.vaddr_range); + } + } + // rjf: handshake event + { + DMN_Event *e = dmn_event_list_push(dmn_lnx_state->deferred_events_arena, &dmn_lnx_state->deferred_events); + e->kind = DMN_EventKind_HandshakeComplete; + e->process = dmn_lnx_handle_from_entity(process); + e->thread = dmn_lnx_handle_from_entity(main_thread); + } } }break; } @@ -707,12 +758,26 @@ dmn_halt(U64 code, U64 user_data) internal B32 dmn_access_open(void) { - return 0; + B32 result = 0; + if(dmn_lnx_ctrl_thread) + { + result = 1; + } + else + { + os_mutex_take(dmn_lnx_state->access_mutex); + result = !dmn_lnx_state->access_run_state; + } + return result; } internal void dmn_access_close(void) { + if(!dmn_lnx_ctrl_thread) + { + os_mutex_drop(dmn_lnx_state->access_mutex); + } } //- rjf: processes diff --git a/src/demon/linux/demon_core_linux.h b/src/demon/linux/demon_core_linux.h index 96128143..c8c0c347 100644 --- a/src/demon/linux/demon_core_linux.h +++ b/src/demon/linux/demon_core_linux.h @@ -87,8 +87,16 @@ typedef struct DMN_LNX_State DMN_LNX_State; struct DMN_LNX_State { Arena *arena; + + // rjf: access locking mechanism + OS_Handle access_mutex; + B32 access_run_state; + + // rjf: deferred events Arena *deferred_events_arena; DMN_EventList deferred_events; + + // rjf: entity storage Arena *entities_arena; DMN_LNX_Entity *entities_base; U64 entities_count; @@ -98,6 +106,7 @@ struct DMN_LNX_State read_only global DMN_LNX_Entity dmn_lnx_nil_entity = {&dmn_lnx_nil_entity, &dmn_lnx_nil_entity, &dmn_lnx_nil_entity, &dmn_lnx_nil_entity, &dmn_lnx_nil_entity}; global DMN_LNX_State *dmn_lnx_state = 0; +thread_static B32 dmn_lnx_ctrl_thread = 0; //////////////////////////////// //~ rjf: Helpers From 3466779d41b2f4e7b2bd9167889d6b743ea2c39a Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 17 Jul 2025 14:45:08 -0700 Subject: [PATCH 280/372] demon/linux: kill, detach, process iteration --- src/demon/linux/demon_core_linux.c | 78 ++++++++++++++++++++++++++++-- 1 file changed, 74 insertions(+), 4 deletions(-) diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c index 57d584fa..c7ddf455 100644 --- a/src/demon/linux/demon_core_linux.c +++ b/src/demon/linux/demon_core_linux.c @@ -726,13 +726,27 @@ dmn_ctrl_attach(DMN_CtrlCtx *ctx, U32 pid) internal B32 dmn_ctrl_kill(DMN_CtrlCtx *ctx, DMN_Handle process, U32 exit_code) { - return 0; + B32 result = 0; + DMN_LNX_Entity *process_entity = dmn_lnx_entity_from_handle(process); + if(process_entity != &dmn_lnx_nil_entity && + kill(process_entity->id, SIGKILL) != -1) + { + result = 1; + } + return result; } internal B32 dmn_ctrl_detach(DMN_CtrlCtx *ctx, DMN_Handle process) { - return 0; + B32 result = 0; + DMN_LNX_Entity *process_entity = dmn_lnx_entity_from_handle(process); + if(process_entity != &dmn_lnx_nil_entity && + ptrace(PTRACE_DETACH, process_entity->id, 0, 0) != -1) + { + result = 1; + } + return result; } internal DMN_EventList @@ -825,7 +839,8 @@ dmn_process_write(DMN_Handle process, Rng1U64 range, void *src) internal Arch dmn_arch_from_thread(DMN_Handle handle) { - return Arch_Null; + DMN_LNX_Entity *thread = dmn_lnx_entity_from_handle(handle); + return thread->arch; } internal U64 @@ -857,15 +872,70 @@ dmn_thread_write_reg_block(DMN_Handle handle, void *reg_block) internal void dmn_process_iter_begin(DMN_ProcessIter *iter) { + DIR *dir = opendir("/proc"); + MemoryZeroStruct(iter); + iter->v[0] = IntFromPtr(dir); } internal B32 dmn_process_iter_next(Arena *arena, DMN_ProcessIter *iter, DMN_ProcessInfo *info_out) { - return 0; + // rjf: scan for the next process ID in the directory + B32 got_pid = 0; + String8 pid_string = {0}; + { + DIR *dir = (DIR*)PtrFromInt(iter->v[0]); + if(dir != 0 && iter->v[1] == 0) + { + for(;;) + { + // rjf: get next entry + struct dirent *d = readdir(dir); + if(d == 0) + { + break; + } + + // rjf: check file name is integer + String8 file_name = str8_cstring((char*)d->d_name); + B32 is_integer = str8_is_integer(file_name, 10); + + // rjf: break on integers (which represent processes) + if(is_integer) + { + got_pid = 1; + pid_string = file_name; + break; + } + } + } + } + + // rjf: if we found a process id, map id => info + B32 result = 0; + if(got_pid) + { + pid_t pid = u64_from_str8(pid_string, 10); + String8 name = dmn_lnx_exe_path_from_pid(arena, pid); + if(name.size == 0) + { + name = str8_lit("(unknown process)"); + } + info_out->name = name; + info_out->pid = pid; + result = 1; + } + + return result; } internal void dmn_process_iter_end(DMN_ProcessIter *iter) { + DIR *dir = (DIR*)PtrFromInt(iter->v[0]); + if(dir != 0) + { + closedir(dir); + } + MemoryZeroStruct(iter); } From eba2aff0f09f0ef057819dfe443bfe6f07ec5647 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 17 Jul 2025 14:46:31 -0700 Subject: [PATCH 281/372] demon/linux: process read/write --- src/demon/linux/demon_core_linux.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c index c7ddf455..84a7bc42 100644 --- a/src/demon/linux/demon_core_linux.c +++ b/src/demon/linux/demon_core_linux.c @@ -825,13 +825,17 @@ dmn_process_memory_protect(DMN_Handle process, U64 vaddr, U64 size, OS_AccessFla internal U64 dmn_process_read(DMN_Handle process, Rng1U64 range, void *dst) { - return 0; + DMN_LNX_Entity *entity = dmn_lnx_entity_from_handle(process); + U64 result = dmn_lnx_read(entity->fd, range, dst); + return result; } internal B32 dmn_process_write(DMN_Handle process, Rng1U64 range, void *src) { - return 0; + DMN_LNX_Entity *entity = dmn_lnx_entity_from_handle(process); + B32 result = dmn_lnx_write(entity->fd, range, src); + return result; } //- rjf: threads From 145ad87967ed0f7c5129bb0af4631efedddd953c Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 17 Jul 2025 15:18:02 -0700 Subject: [PATCH 282/372] fix incorrect font metrics in freetype font provider --- src/font_provider/freetype/font_provider_freetype.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/font_provider/freetype/font_provider_freetype.c b/src/font_provider/freetype/font_provider_freetype.c index 338efdbb..b45b8399 100644 --- a/src/font_provider/freetype/font_provider_freetype.c +++ b/src/font_provider/freetype/font_provider_freetype.c @@ -68,9 +68,9 @@ fp_metrics_from_font(FP_Handle handle) FP_Metrics result = {0}; if(font.face != 0) { - result.design_units_per_em = (F32)(font.face->units_per_EM * 72.f/96.f); + result.design_units_per_em = (F32)(font.face->units_per_EM); result.ascent = (F32)font.face->ascender; - result.descent = (F32)font.face->descender; + result.descent = -(F32)font.face->descender; result.line_gap = (F32)(font.face->height - font.face->ascender + font.face->descender); result.capital_height = (F32)(font.face->ascender); } From d5380998a72230e426f7871fa5a96ae7c252d97e Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 17 Jul 2025 16:32:12 -0700 Subject: [PATCH 283/372] os/linux: fix rwlock cv waits --- src/os/core/linux/os_core_linux.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/os/core/linux/os_core_linux.c b/src/os/core/linux/os_core_linux.c index 38d2046f..ccfb5e7b 100644 --- a/src/os/core/linux/os_core_linux.c +++ b/src/os/core/linux/os_core_linux.c @@ -1004,23 +1004,24 @@ os_condition_variable_wait_rw_r(OS_Handle cv, OS_Handle mutex_rw, U64 endt_us) endt_timespec.tv_sec = endt_us/Million(1); endt_timespec.tv_nsec = Thousand(1) * (endt_us - (endt_us/Million(1))*Million(1)); B32 result = 0; + pthread_rwlock_unlock(&rw_mutex_entity->rwmutex_handle); + pthread_mutex_lock(&cv_entity->cv.rwlock_mutex_handle); for(;;) { - pthread_mutex_lock(&cv_entity->cv.rwlock_mutex_handle); int wait_result = pthread_cond_timedwait(&cv_entity->cv.cond_handle, &cv_entity->cv.rwlock_mutex_handle, &endt_timespec); if(wait_result != ETIMEDOUT) { pthread_rwlock_rdlock(&rw_mutex_entity->rwmutex_handle); - pthread_mutex_unlock(&cv_entity->cv.rwlock_mutex_handle); result = 1; break; } - pthread_mutex_unlock(&cv_entity->cv.rwlock_mutex_handle); if(wait_result == ETIMEDOUT) { + pthread_rwlock_rdlock(&rw_mutex_entity->rwmutex_handle); break; } } + pthread_mutex_unlock(&cv_entity->cv.rwlock_mutex_handle); return result; } @@ -1039,23 +1040,24 @@ os_condition_variable_wait_rw_w(OS_Handle cv, OS_Handle mutex_rw, U64 endt_us) endt_timespec.tv_sec = endt_us/Million(1); endt_timespec.tv_nsec = Thousand(1) * (endt_us - (endt_us/Million(1))*Million(1)); B32 result = 0; + pthread_rwlock_unlock(&rw_mutex_entity->rwmutex_handle); + pthread_mutex_lock(&cv_entity->cv.rwlock_mutex_handle); for(;;) { - pthread_mutex_lock(&cv_entity->cv.rwlock_mutex_handle); int wait_result = pthread_cond_timedwait(&cv_entity->cv.cond_handle, &cv_entity->cv.rwlock_mutex_handle, &endt_timespec); if(wait_result != ETIMEDOUT) { pthread_rwlock_wrlock(&rw_mutex_entity->rwmutex_handle); - pthread_mutex_unlock(&cv_entity->cv.rwlock_mutex_handle); result = 1; break; } - pthread_mutex_unlock(&cv_entity->cv.rwlock_mutex_handle); if(wait_result == ETIMEDOUT) { + pthread_rwlock_wrlock(&rw_mutex_entity->rwmutex_handle); break; } } + pthread_mutex_unlock(&cv_entity->cv.rwlock_mutex_handle); return result; } From 6fb406d6c508cc41b44350e125c50422add75cc9 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 17 Jul 2025 18:05:00 -0700 Subject: [PATCH 284/372] demon/linux: launch event info coverage, module path strings, pipe deferred debug info events first on dmn_ctrl_run --- src/demon/linux/demon_core_linux.c | 49 ++++++++++++++++++++++++++++++ src/demon/linux/demon_core_linux.h | 1 + src/raddbg/raddbg_widgets.c | 1 + 3 files changed, 51 insertions(+) diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c index 84a7bc42..11915b04 100644 --- a/src/demon/linux/demon_core_linux.c +++ b/src/demon/linux/demon_core_linux.c @@ -50,6 +50,33 @@ dmn_lnx_write(int memory_fd, Rng1U64 range, void *src) return result; } +internal String8 +dmn_lnx_read_string(Arena *arena, int memory_fd, U64 base_vaddr) +{ + String8 result = {0}; + U64 string_size = 0; + for(U64 vaddr = base_vaddr; string_size < 4096; vaddr += 1, string_size += 1) + { + char byte = 0; + if(pread(memory_fd, &byte, sizeof(byte), vaddr) == 0) + { + break; + } + if(byte == '\0' || byte == '\n') + { + break; + } + } + if(string_size != 0) + { + char *buf = push_array_no_zero(arena, char, string_size+1); + pread(memory_fd, buf, string_size, base_vaddr); + buf[string_size] = '\0'; + result = str8((U8 *)buf, string_size); + } + return result; +} + //- rjf: pid => info extraction internal String8 @@ -654,6 +681,8 @@ dmn_ctrl_launch(DMN_CtrlCtx *ctx, OS_ProcessLaunchParams *params) DMN_Event *e = dmn_event_list_push(dmn_lnx_state->deferred_events_arena, &dmn_lnx_state->deferred_events); e->kind = DMN_EventKind_CreateProcess; e->process = dmn_lnx_handle_from_entity(process); + e->arch = process->arch; + e->code = pid; } // rjf: build thread @@ -666,6 +695,8 @@ dmn_ctrl_launch(DMN_CtrlCtx *ctx, OS_ProcessLaunchParams *params) e->kind = DMN_EventKind_CreateThread; e->process = dmn_lnx_handle_from_entity(process); e->thread = dmn_lnx_handle_from_entity(thread); + e->arch = thread->arch; + e->code = thread->id; } main_thread = thread; } @@ -684,6 +715,7 @@ dmn_ctrl_launch(DMN_CtrlCtx *ctx, OS_ProcessLaunchParams *params) e->module = dmn_lnx_handle_from_entity(module); e->address = n->v.vaddr_range.min; e->size = dim_1u64(n->v.vaddr_range); + e->string = dmn_lnx_read_string(dmn_lnx_state->deferred_events_arena, process->fd, n->v.name); } } @@ -693,6 +725,7 @@ dmn_ctrl_launch(DMN_CtrlCtx *ctx, OS_ProcessLaunchParams *params) e->kind = DMN_EventKind_HandshakeComplete; e->process = dmn_lnx_handle_from_entity(process); e->thread = dmn_lnx_handle_from_entity(main_thread); + e->arch = process->arch; } } }break; @@ -753,6 +786,22 @@ internal DMN_EventList dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) { DMN_EventList evts = {0}; + { + //////////////////////////// + //- rjf: push any deferred events + // + { + for(DMN_EventNode *n = dmn_lnx_state->deferred_events.first; n != 0; n = n->next) + { + DMN_Event *e_src = &n->v; + DMN_Event *e_dst = dmn_event_list_push(arena, &evts); + MemoryCopyStruct(e_dst, e_src); + e_dst->string = str8_copy(arena, e_dst->string); + } + MemoryZeroStruct(&dmn_lnx_state->deferred_events); + arena_clear(dmn_lnx_state->deferred_events_arena); + } + } return evts; } diff --git a/src/demon/linux/demon_core_linux.h b/src/demon/linux/demon_core_linux.h index c8c0c347..82ce77eb 100644 --- a/src/demon/linux/demon_core_linux.h +++ b/src/demon/linux/demon_core_linux.h @@ -116,6 +116,7 @@ internal U64 dmn_lnx_read(int memory_fd, Rng1U64 range, void *dst); internal B32 dmn_lnx_write(int memory_fd, Rng1U64 range, void *src); #define dmn_lnx_read_struct(fd, vaddr, ptr) dmn_lnx_read((fd), r1u64((vaddr), (vaddr)+sizeof(*(ptr))), (ptr)) #define dmn_lnx_write_struct(fd, vaddr, ptr) dmn_lnx_write((fd), r1u64((vaddr), (vaddr)+sizeof(*(ptr))), (ptr)) +internal String8 dmn_lnx_read_string(Arena *arena, int memory_fd, U64 base_vaddr); //- rjf: pid => info extraction internal String8 dmn_lnx_exe_path_from_pid(Arena *arena, pid_t pid); diff --git a/src/raddbg/raddbg_widgets.c b/src/raddbg/raddbg_widgets.c index 65bc1aa3..2d0f9197 100644 --- a/src/raddbg/raddbg_widgets.c +++ b/src/raddbg/raddbg_widgets.c @@ -2315,6 +2315,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe vaddr = params->line_vaddrs[cursor->line - params->line_num_range.min]; lines = params->line_infos[cursor->line - params->line_num_range.min]; } + rd_cmd(RD_CmdKind_FocusPanel); rd_cmd(RD_CmdKind_PushQuery, .expr = txt_pt_match(*cursor, *mark) ? str8_lit("query:text_pt_commands") : str8_lit("query:text_range_commands"), .do_implicit_root = 1, From fcf3e73f5fc1e2d89acb5192005a23060d03593c Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 17 Jul 2025 18:51:40 -0700 Subject: [PATCH 285/372] demon/linux: thread resuming in dmn_ctrl_run --- src/demon/linux/demon_core_linux.c | 124 ++++++++++++++++++++++++++++- src/demon/linux/demon_core_linux.h | 8 +- 2 files changed, 129 insertions(+), 3 deletions(-) diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c index 11915b04..05d8bdb4 100644 --- a/src/demon/linux/demon_core_linux.c +++ b/src/demon/linux/demon_core_linux.c @@ -505,7 +505,7 @@ dmn_init(void) dmn_lnx_state->deferred_events_arena = arena_alloc(); dmn_lnx_state->entities_arena = arena_alloc(.reserve_size = GB(32), .commit_size = KB(64), .flags = ArenaFlag_NoChain); dmn_lnx_state->entities_base = push_array(dmn_lnx_state->entities_arena, DMN_LNX_Entity, 0); - dmn_lnx_state->root_entity = dmn_lnx_entity_alloc(&dmn_lnx_nil_entity, DMN_LNX_EntityKind_Root); + dmn_lnx_entity_alloc(&dmn_lnx_nil_entity, DMN_LNX_EntityKind_Root); dmn_lnx_state->access_mutex = os_mutex_alloc(); } @@ -673,7 +673,7 @@ dmn_ctrl_launch(DMN_CtrlCtx *ctx, OS_ProcessLaunchParams *params) DMN_LNX_Entity *main_thread = &dmn_lnx_nil_entity; { // rjf: build process - process = dmn_lnx_entity_alloc(dmn_lnx_state->root_entity, DMN_LNX_EntityKind_Process); + process = dmn_lnx_entity_alloc(dmn_lnx_state->entities_base, DMN_LNX_EntityKind_Process); process->arch = dmn_lnx_arch_from_pid(pid); process->id = pid; process->fd = open((char*)str8f(scratch.arena, "/proc/%d/mem", pid).str, O_RDWR); @@ -787,6 +787,8 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) { DMN_EventList evts = {0}; { + Temp scratch = scratch_begin(&arena, 1); + //////////////////////////// //- rjf: push any deferred events // @@ -801,6 +803,124 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) MemoryZeroStruct(&dmn_lnx_state->deferred_events); arena_clear(dmn_lnx_state->deferred_events_arena); } + + //////////////////////////// + //- rjf: no processes, no output events -> not attached + // + if(evts.count == 0 && dmn_lnx_state->entities_base->first == &dmn_lnx_nil_entity) + { + DMN_Event *e = dmn_event_list_push(arena, &evts); + e->kind = DMN_EventKind_Error; + e->error_kind = DMN_ErrorKind_NotAttached; + } + + //////////////////////////// + //- rjf: gather all threads which we should run + // + DMN_LNX_EntityNode *first_run_thread = 0; + DMN_LNX_EntityNode *last_run_thread = 0; + ProfScope("gather all threads which we should run") + { + //- rjf: scan all processes + for(DMN_LNX_Entity *process = dmn_lnx_state->entities_base->first; + process != &dmn_lnx_nil_entity; + process = process->next) + { + if(process->kind != DMN_LNX_EntityKind_Process) {continue;} + + //- rjf: determine if this process is frozen + B32 process_is_frozen = 0; + if(ctrls->run_entities_are_processes) + { + for(U64 idx = 0; idx < ctrls->run_entity_count; idx += 1) + { + if(dmn_handle_match(ctrls->run_entities[idx], dmn_lnx_handle_from_entity(process))) + { + process_is_frozen = 1; + break; + } + } + } + + //- rjf: scan all threads in this process + for(DMN_LNX_Entity *thread = process->first; + thread != &dmn_lnx_nil_entity; + thread = thread->next) + { + if(thread->kind != DMN_LNX_EntityKind_Thread) {continue;} + + //- rjf: determine if this thread is frozen + B32 is_frozen = 0; + { + // rjf: single-step? freeze if not the single-step thread. + if(!dmn_handle_match(dmn_handle_zero(), ctrls->single_step_thread)) + { + is_frozen = !dmn_handle_match(dmn_lnx_handle_from_entity(thread), ctrls->single_step_thread); + } + + // rjf: not single-stepping? determine based on run controls freezing info + else + { + if(ctrls->run_entities_are_processes) + { + is_frozen = process_is_frozen; + } + else for(U64 idx = 0; idx < ctrls->run_entity_count; idx += 1) + { + if(dmn_handle_match(ctrls->run_entities[idx], dmn_lnx_handle_from_entity(thread))) + { + is_frozen = 1; + break; + } + } + if(ctrls->run_entities_are_unfrozen) + { + is_frozen ^= 1; + } + } + } + + //- rjf: disregard all other rules if this is the halter thread + // TODO(rjf): halting - here is what we do on windows... +#if 0 + if(dmn_w32_shared->halter_tid == thread->id) + { + is_frozen = 0; + } +#endif + + //- rjf: add to list + if(!is_frozen) + { + DMN_LNX_EntityNode *n = push_array(scratch.arena, DMN_LNX_EntityNode, 1); + n->v = thread; + SLLQueuePush(first_run_thread, last_run_thread, n); + } + } + } + } + + //////////////////////////// + //- rjf: resume all threads we need to run + // + DMN_LNX_EntityNode *first_ran_thread = 0; + DMN_LNX_EntityNode *last_ran_thread = 0; + for(DMN_LNX_EntityNode *n = first_run_thread; n != 0; n = n->next) + { + ptrace(PTRACE_CONT, (pid_t)n->v->id, 0, 0); + DMN_LNX_EntityNode *n2 = push_array_no_zero(scratch.arena, DMN_LNX_EntityNode, 1); + SLLQueuePush(first_ran_thread, last_ran_thread, n2); + n2->v = n->v; + } + + //////////////////////////// + //- rjf: wait for next stop + // + int status = 0; + pid_t wait_id = waitpid(-1, &status, __WALL); + + + scratch_end(scratch); } return evts; } diff --git a/src/demon/linux/demon_core_linux.h b/src/demon/linux/demon_core_linux.h index 82ce77eb..bb3b4c8a 100644 --- a/src/demon/linux/demon_core_linux.h +++ b/src/demon/linux/demon_core_linux.h @@ -83,6 +83,13 @@ struct DMN_LNX_Entity int fd; }; +typedef struct DMN_LNX_EntityNode DMN_LNX_EntityNode; +struct DMN_LNX_EntityNode +{ + DMN_LNX_EntityNode *next; + DMN_LNX_Entity *v; +}; + typedef struct DMN_LNX_State DMN_LNX_State; struct DMN_LNX_State { @@ -100,7 +107,6 @@ struct DMN_LNX_State Arena *entities_arena; DMN_LNX_Entity *entities_base; U64 entities_count; - DMN_LNX_Entity *root_entity; DMN_LNX_Entity *free_entity; }; From 64a0682611c661f0e7e350d84b3b91c619dfc691 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 23 Jul 2025 10:34:27 -0700 Subject: [PATCH 286/372] fix processing of select-alls in watch tabnles --- project.4coder | 8 ++++---- src/raddbg/raddbg_core.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/project.4coder b/project.4coder index db6f3af3..c47b6ec8 100644 --- a/project.4coder +++ b/project.4coder @@ -46,10 +46,10 @@ load_paths = commands = { //- rjf: [raddbg] - // .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [raddbg wsl] - .f1 = { .win = "wsl ./build.sh raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f1 = { .win = "wsl ./build.sh raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [scratch] .f2 = { .win = "raddbg_stable --ipc kill_all && build radbin && pushd build && radbin.exe mule_main.rdi --out:a.dump && popd", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, @@ -64,8 +64,8 @@ commands = // .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: running target - // .f3 = { .win = "raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, - .f3 = { .win = "wsl ./build/raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f3 = { .win = "raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f3 = { .win = "wsl ./build/raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f3 = { .win = "pushd build && raddbg --user:dev.raddbg_user && popd", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f3 = { .win = "C:/devel/raddebugger/build/raddbg.exe --capture --user:C:/devel/raddebugger/build/local_dev.raddbg_user --project:C:/devel/raddebugger/build/local_dev.raddbg_project", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f3 = { .win = "wsl_launch /mnt/c/devel/raddebugger/build/raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 1b38ecab..6592b6f6 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -3898,7 +3898,7 @@ rd_view_ui(Rng2F32 rect) { for EachEnumVal(Axis2, axis) { - cursor_tbl.v[axis] = (delta.v[axis]>0 ? cursor_tbl_range.max.v[axis] : delta.v[axis]<0 ? cursor_tbl_range.min.v[axis] + !!cursor_tbl_min_is_empty_selection[axis] : cursor_tbl.v[axis]); + cursor_tbl.v[axis] = (delta.v[0]>0 ? cursor_tbl_range.max.v[axis] : delta.v[0]<0 ? cursor_tbl_range.min.v[axis] + !!cursor_tbl_min_is_empty_selection[axis] : cursor_tbl.v[axis]); } }break; } From 6026ac16d4a042e8e1e2ac9b4841c083a64f7ccc Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 23 Jul 2025 10:38:59 -0700 Subject: [PATCH 287/372] fix call stack flickering; do not timeout early if we need to fall back to stale results after requesting new call stack compute --- src/ctrl/ctrl_core.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 60293720..9815847c 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -3426,7 +3426,7 @@ ctrl_call_stack_from_thread(CTRL_Scope *scope, CTRL_EntityCtx *entity_ctx, CTRL_ //- rjf: loop: try to grab cached call stack; request; wait // B32 can_request = !ins_atomic_u64_eval(&ctrl_state->ctrl_thread_run_state); - for(;;) + for(U64 retry_idx = 0;; retry_idx += 1) { //- rjf: [read-only] try to look for current call stack; wait if working B32 node_exists = 0; @@ -3462,6 +3462,12 @@ ctrl_call_stack_from_thread(CTRL_Scope *scope, CTRL_EntityCtx *entity_ctx, CTRL_ } } + //- rjf: out of time => exit + if(retry_idx > 0 && os_now_microseconds() >= endt_us) + { + break; + } + //- rjf: [write] node does not exist => create; request if new or stale B32 need_request = (!node_exists || node_stale); CTRL_CallStackCacheNode *node_to_request = 0; @@ -3501,12 +3507,6 @@ ctrl_call_stack_from_thread(CTRL_Scope *scope, CTRL_EntityCtx *entity_ctx, CTRL_ node_to_request->working_count -= 1; } } - - //- rjf: out of time => exit - if(os_now_microseconds() >= endt_us) - { - break; - } } return call_stack; From 87fa6b9239429828b6bc7fa069fec0471f48e7fe Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 23 Jul 2025 13:26:23 -0700 Subject: [PATCH 288/372] fix <64-bit integer eval stringification path, to not interpret too many bits --- src/eval/eval_core.h | 4 +++- .../eval_visualization_core.c | 24 +++++++++++-------- src/mule/mule_main.cpp | 3 +++ src/raddbg/raddbg_core.c | 17 +++++++++++++ 4 files changed, 37 insertions(+), 11 deletions(-) diff --git a/src/eval/eval_core.h b/src/eval/eval_core.h index 5f64436d..d439979a 100644 --- a/src/eval/eval_core.h +++ b/src/eval/eval_core.h @@ -57,9 +57,11 @@ union E_Value U64 u64; U32 u32; U16 u16; + U8 u8; S64 s64; S32 s32; - S32 s16; + S16 s16; + S8 s8; F64 f64; F32 f32; }; diff --git a/src/eval_visualization/eval_visualization_core.c b/src/eval_visualization/eval_visualization_core.c index b874d4d0..d791877e 100644 --- a/src/eval_visualization/eval_visualization_core.c +++ b/src/eval_visualization/eval_visualization_core.c @@ -1292,6 +1292,8 @@ ev_string_from_simple_typed_eval(Arena *arena, EV_StringParams *params, E_Eval e { digit_group_separator = 0; } + S64 s64 = 0; + U64 u64 = 0; F64 f64 = 0; switch(type_kind) { @@ -1366,20 +1368,22 @@ ev_string_from_simple_typed_eval(Arena *arena, EV_StringParams *params, E_Eval e } }break; - case E_TypeKind_S8: - case E_TypeKind_S16: - case E_TypeKind_S32: - case E_TypeKind_S64: + case E_TypeKind_S8: s64 = (S64)eval.value.s8; goto sint_path; + case E_TypeKind_S16: s64 = (S64)eval.value.s16; goto sint_path; + case E_TypeKind_S32: s64 = (S64)eval.value.s32; goto sint_path; + case E_TypeKind_S64: s64 = (S64)eval.value.s64; goto sint_path; + sint_path:; { - result = str8_from_s64(arena, eval.value.s64, params->radix, params->min_digits, digit_group_separator); + result = str8_from_s64(arena, s64, params->radix, params->min_digits, digit_group_separator); }break; - case E_TypeKind_U8: - case E_TypeKind_U16: - case E_TypeKind_U32: - case E_TypeKind_U64: + case E_TypeKind_U8: u64 = (U64)eval.value.u8; goto uint_path; + case E_TypeKind_U16: u64 = (U64)eval.value.u16; goto uint_path; + case E_TypeKind_U32: u64 = (U64)eval.value.u32; goto uint_path; + case E_TypeKind_U64: u64 = (U64)eval.value.u64; goto uint_path; + uint_path:; { - result = str8_from_u64(arena, eval.value.u64, params->radix, params->min_digits, digit_group_separator); + result = str8_from_u64(arena, u64, params->radix, params->min_digits, digit_group_separator); }break; case E_TypeKind_U128: diff --git a/src/mule/mule_main.cpp b/src/mule/mule_main.cpp index a6f92e21..e17f2fd2 100644 --- a/src/mule/mule_main.cpp +++ b/src/mule/mule_main.cpp @@ -395,6 +395,9 @@ type_coverage_eval_tests(void) Basics basics = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001}; Basics_Stdint basics_stdint = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001}; + uint32_t a = (1<<31); + int32_t b = (1<<31); + char string[] = "Hello World!"; char longer_text[] = "Suppose there was some text\n" diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 6592b6f6..92ffb674 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -5072,6 +5072,23 @@ rd_view_ui(Rng2F32 rect) //- rjf: handle interactions // { + // rjf: hover -> debug log + if(DEV_eval_compiler_tooltips) + { + if(ui_hovering(sig)) UI_Tooltip + { + String8 text = e_debug_log_from_expr_string(scratch.arena, cell->eval.string); + String8List lines = str8_split(scratch.arena, text, (U8 *)"\n", 1, StringSplitFlag_KeepEmpties); + for(String8Node *n = lines.first; n != 0; n = n->next) + { + if(n->string.size != 0) + { + ui_label(n->string); + } + } + } + } + // rjf: hover -> rich hover cfgs if(ui_hovering(sig) && cell_info.cfg != &rd_nil_cfg) { From a85284793b80135a04e71191f05cbabe490dc0f6 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 23 Jul 2025 14:03:39 -0700 Subject: [PATCH 289/372] be more robust to user/project paths passed via command line to raddbg; do not interpret them as targets --- src/raddbg/raddbg_core.c | 114 +++++++++++++++++++++++++++++++++++++++ src/raddbg/raddbg_main.c | 77 -------------------------- 2 files changed, 114 insertions(+), 77 deletions(-) diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 92ffb674..defef61b 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -10986,6 +10986,112 @@ rd_init(CmdLine *cmdln) rd_state->view_state_slots = push_array(arena, RD_ViewStateSlot, rd_state->view_state_slots_count); } + //- rjf: setup initial target from command line args + String8 implicit_user_arg = {0}; + String8 implicit_project_arg = {0}; + { + Temp scratch = scratch_begin(0, 0); + String8List target_args = {0}; + { + B32 after_first_non_flag = 0; + for(U64 idx = 1; idx < cmdln->argc; idx += 1) + { + String8 arg = str8_cstring(cmdln->argv[idx]); + B32 is_flag = (str8_match(str8_prefix(arg, 1), str8_lit("-"), 0) || + str8_match(str8_prefix(arg, 1), str8_lit("--"), 0) || + str8_match(str8_prefix(arg, 1), str8_lit("/"), 0)); + B32 is_cfg = 0; + if(!is_flag && !after_first_non_flag) + { + OS_Handle file = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead, arg); + U8 raddbg_cfg_magic[] = "// raddbg "; + U8 file_magic_maybe[ArrayCount(raddbg_cfg_magic)] = {0}; + os_file_read(file, r1u64(0, 10), file_magic_maybe); + if(MemoryMatchArray(raddbg_cfg_magic, file_magic_maybe)) + { + is_cfg = 1; + U8 header_suffix_buffer[256] = {0}; + String8 header_suffix = {0}; + header_suffix.str = header_suffix_buffer; + header_suffix.size = os_file_read(file, r1u64(10, 10+256), header_suffix_buffer); + String8 header_type_suffix = str8_skip(header_suffix, str8_find_needle(header_suffix, 0, str8_lit(" "), 0)+1); + if(str8_match(header_type_suffix, str8_lit("user"), StringMatchFlag_RightSideSloppy)) + { + implicit_user_arg = arg; + } + else if(str8_match(header_type_suffix, str8_lit("project"), StringMatchFlag_RightSideSloppy)) + { + implicit_project_arg = arg; + } + } + os_file_close(file); + } + if(!is_flag) + { + after_first_non_flag = 1; + } + if(after_first_non_flag && !is_cfg) + { + str8_list_push(scratch.arena, &target_args, arg); + } + } + } + if(target_args.node_count > 0 && target_args.first->string.size != 0) + { + //- rjf: unpack command line inputs + String8 executable_name_string = {0}; + String8 arguments_string = {0}; + String8 working_directory_string = {0}; + { + // rjf: unpack full executable path + if(target_args.first->string.size != 0) + { + String8 exe_name = target_args.first->string; + PathStyle style = path_style_from_str8(exe_name); + if(style == PathStyle_Relative) + { + String8 current_path = os_get_current_path(scratch.arena); + exe_name = push_str8f(scratch.arena, "%S/%S", current_path, exe_name); + exe_name = path_normalized_from_string(scratch.arena, exe_name); + } + executable_name_string = exe_name; + } + + // rjf: unpack working directory + if(target_args.first->string.size != 0) + { + String8 path_part_of_arg = str8_chop_last_slash(target_args.first->string); + if(path_part_of_arg.size != 0) + { + String8 path = push_str8f(scratch.arena, "%S/", path_part_of_arg); + working_directory_string = path; + } + } + + // rjf: unpack arguments + String8List passthrough_args_list = {0}; + for(String8Node *n = target_args.first->next; n != 0; n = n->next) + { + str8_list_push(scratch.arena, &passthrough_args_list, n->string); + } + StringJoin join = {str8_lit(""), str8_lit(" "), str8_lit("")}; + arguments_string = str8_list_join(scratch.arena, &passthrough_args_list, &join); + } + + //- rjf: build config tree + RD_Cfg *command_line_root = rd_cfg_child_from_string(rd_state->root_cfg, str8_lit("command_line")); + RD_Cfg *target = rd_cfg_new(command_line_root, str8_lit("target")); + RD_Cfg *exe = rd_cfg_new(target, str8_lit("executable")); + RD_Cfg *args = rd_cfg_new(target, str8_lit("arguments")); + RD_Cfg *wdir = rd_cfg_new(target, str8_lit("working_directory")); + rd_cfg_new(exe, executable_name_string); + rd_cfg_new(args, arguments_string); + rd_cfg_new(wdir, working_directory_string); + rd_cmd(RD_CmdKind_SelectTarget, .cfg = target->id); + } + scratch_end(scratch); + } + // rjf: set up user / project paths { Temp scratch = scratch_begin(0, 0); @@ -11008,6 +11114,10 @@ rd_init(CmdLine *cmdln) String8 user_data_folder = push_str8f(scratch.arena, "%S/raddbg", user_program_data_path); os_make_directory(user_data_folder); if(user_path.size == 0) + { + user_path = implicit_user_arg; + } + if(user_path.size == 0) { String8 last_user_path = push_str8f(scratch.arena, "%S/last_user", user_data_folder); user_path = os_data_from_file_path(scratch.arena, last_user_path); @@ -11017,6 +11127,10 @@ rd_init(CmdLine *cmdln) user_path = push_str8f(scratch.arena, "%S/default.raddbg_user", user_data_folder); } } + if(project_path.size == 0) + { + project_path = implicit_project_arg; + } if(project_path.size != 0) { arena_clear(rd_state->project_path_arena); diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index 5ef120b9..9795474f 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -494,83 +494,6 @@ entry_point(CmdLine *cmd_line) rd_init(cmd_line); } - //- rjf: setup initial target from command line args - { - Temp scratch = scratch_begin(0, 0); - String8List target_args = {0}; - { - B32 after_first_non_flag = 0; - for(U64 idx = 1; idx < cmd_line->argc; idx += 1) - { - String8 arg = str8_cstring(cmd_line->argv[idx]); - if(!str8_match(str8_prefix(arg, 1), str8_lit("-"), 0) && - !str8_match(str8_prefix(arg, 1), str8_lit("--"), 0) && - !str8_match(str8_prefix(arg, 1), str8_lit("/"), 0)) - { - after_first_non_flag = 1; - } - if(after_first_non_flag) - { - str8_list_push(scratch.arena, &target_args, arg); - } - } - } - if(target_args.node_count > 0 && target_args.first->string.size != 0) - { - //- rjf: unpack command line inputs - String8 executable_name_string = {0}; - String8 arguments_string = {0}; - String8 working_directory_string = {0}; - { - // rjf: unpack full executable path - if(target_args.first->string.size != 0) - { - String8 exe_name = target_args.first->string; - PathStyle style = path_style_from_str8(exe_name); - if(style == PathStyle_Relative) - { - String8 current_path = os_get_current_path(scratch.arena); - exe_name = push_str8f(scratch.arena, "%S/%S", current_path, exe_name); - exe_name = path_normalized_from_string(scratch.arena, exe_name); - } - executable_name_string = exe_name; - } - - // rjf: unpack working directory - if(target_args.first->string.size != 0) - { - String8 path_part_of_arg = str8_chop_last_slash(target_args.first->string); - if(path_part_of_arg.size != 0) - { - String8 path = push_str8f(scratch.arena, "%S/", path_part_of_arg); - working_directory_string = path; - } - } - - // rjf: unpack arguments - String8List passthrough_args_list = {0}; - for(String8Node *n = target_args.first->next; n != 0; n = n->next) - { - str8_list_push(scratch.arena, &passthrough_args_list, n->string); - } - StringJoin join = {str8_lit(""), str8_lit(" "), str8_lit("")}; - arguments_string = str8_list_join(scratch.arena, &passthrough_args_list, &join); - } - - //- rjf: build config tree - RD_Cfg *command_line_root = rd_cfg_child_from_string(rd_state->root_cfg, str8_lit("command_line")); - RD_Cfg *target = rd_cfg_new(command_line_root, str8_lit("target")); - RD_Cfg *exe = rd_cfg_new(target, str8_lit("executable")); - RD_Cfg *args = rd_cfg_new(target, str8_lit("arguments")); - RD_Cfg *wdir = rd_cfg_new(target, str8_lit("working_directory")); - rd_cfg_new(exe, executable_name_string); - rd_cfg_new(args, arguments_string); - rd_cfg_new(wdir, working_directory_string); - rd_cmd(RD_CmdKind_SelectTarget, .cfg = target->id); - } - scratch_end(scratch); - } - //- rjf: set up shared resources for ipc to this instance; launch IPC signaler thread { Temp scratch = scratch_begin(0, 0); From 8d1de1b24c232a4da58c8b30846f022820528d4c Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 23 Jul 2025 14:06:17 -0700 Subject: [PATCH 290/372] report user errors from ctrl thread more vigorously --- src/ctrl/ctrl_core.c | 29 +++++++++++------------------ src/ctrl/ctrl_core.h | 5 ++--- 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 9815847c..bbebf606 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -3868,16 +3868,7 @@ ctrl_thread__entry_point(void *p) ins_atomic_u64_inc_eval(&ctrl_state->reg_gen); //- rjf: gather & output logs - LogScopeResult log = log_scope_end(scratch.arena); - ctrl_thread__flush_info_log(log.strings[LogMsgKind_Info]); - if(log.strings[LogMsgKind_UserError].size != 0) - { - CTRL_EventList evts = {0}; - CTRL_Event *evt = ctrl_event_list_push(scratch.arena, &evts); - evt->kind = CTRL_EventKind_Error; - evt->string = log.strings[LogMsgKind_UserError]; - ctrl_c2u_push_events(&evts); - } + ctrl_thread__end_and_flush_log(); } scratch_end(scratch); @@ -5279,17 +5270,19 @@ ctrl_thread__eval_scope_end(CTRL_EvalScope *scope) //- rjf: log flusher internal void -ctrl_thread__flush_info_log(String8 string) -{ - os_append_data_to_file_path(ctrl_state->ctrl_thread_log_path, string); -} - -internal void -ctrl_thread__end_and_flush_info_log(void) +ctrl_thread__end_and_flush_log(void) { Temp scratch = scratch_begin(0, 0); LogScopeResult log = log_scope_end(scratch.arena); - ctrl_thread__flush_info_log(log.strings[LogMsgKind_Info]); + os_append_data_to_file_path(ctrl_state->ctrl_thread_log_path, log.strings[LogMsgKind_Info]); + if(log.strings[LogMsgKind_UserError].size != 0) + { + CTRL_EventList evts = {0}; + CTRL_Event *evt = ctrl_event_list_push(scratch.arena, &evts); + evt->kind = CTRL_EventKind_Error; + evt->string = log.strings[LogMsgKind_UserError]; + ctrl_c2u_push_events(&evts); + } scratch_end(scratch); } diff --git a/src/ctrl/ctrl_core.h b/src/ctrl/ctrl_core.h index e3f785cd..d31a5e1b 100644 --- a/src/ctrl/ctrl_core.h +++ b/src/ctrl/ctrl_core.h @@ -873,7 +873,7 @@ thread_static CTRL_EntityCtxLookupAccel *ctrl_entity_ctx_lookup_accel = 0; //////////////////////////////// //~ rjf: Logging Markup -#define CTRL_CtrlThreadLogScope DeferLoop(log_scope_begin(), ctrl_thread__end_and_flush_info_log()) +#define CTRL_CtrlThreadLogScope DeferLoop(log_scope_begin(), ctrl_thread__end_and_flush_log()) //////////////////////////////// //~ rjf: Basic Type Functions @@ -1124,8 +1124,7 @@ internal CTRL_EvalScope *ctrl_thread__eval_scope_begin(Arena *arena, CTRL_UserBr internal void ctrl_thread__eval_scope_end(CTRL_EvalScope *scope); //- rjf: log flusher -internal void ctrl_thread__flush_info_log(String8 string); -internal void ctrl_thread__end_and_flush_info_log(void); +internal void ctrl_thread__end_and_flush_log(void); //- rjf: msg kind implementations internal void ctrl_thread__launch(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg); From cd64d959ef6f552bb933fe2e6581b536efd35b8f Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 23 Jul 2025 14:31:51 -0700 Subject: [PATCH 291/372] apply integer truncation operations on both sign/size changes, rather than just size --- src/eval/eval_ir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index 8f2aa277..6f015ae7 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -873,7 +873,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I { new_tree = e_irtree_convert_lo(arena, in_tree, out_group, in_group); } - if(cast_type_byte_size < casted_type_byte_size && e_type_kind_is_integer(cast_type_kind)) + if(cast_type_kind != casted_type_kind && e_type_kind_is_integer(cast_type_kind)) { new_tree = e_irtree_trunc(arena, in_tree, cast_type); } From 38f769c00d925a2e090b11d551cefdca9b16f8d9 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 23 Jul 2025 14:36:20 -0700 Subject: [PATCH 292/372] only apply truncation to integer types, oops --- src/eval/eval_ir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index 6f015ae7..996dd033 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -873,7 +873,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I { new_tree = e_irtree_convert_lo(arena, in_tree, out_group, in_group); } - if(cast_type_kind != casted_type_kind && e_type_kind_is_integer(cast_type_kind)) + if(cast_type_kind != casted_type_kind && e_type_kind_is_integer(cast_type_kind) && e_type_kind_is_integer(casted_type_kind)) { new_tree = e_irtree_trunc(arena, in_tree, cast_type); } From cf9d736ff5943aa9d2e03ac0d575d74e8b004f2a Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 23 Jul 2025 15:00:05 -0700 Subject: [PATCH 293/372] promote register space -> primary space, on space reads --- src/eval/eval_interpret.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/eval/eval_interpret.c b/src/eval/eval_interpret.c index 842c6945..4bc92189 100644 --- a/src/eval/eval_interpret.c +++ b/src/eval/eval_interpret.c @@ -206,6 +206,10 @@ e_interpret(String8 bytecode) result.code = E_InterpretationCode_BadMemRead; goto done; } + if(e_space_match(selected_space, e_interpret_ctx->reg_space)) + { + selected_space = e_interpret_ctx->primary_space; + } }break; case RDI_EvalOp_RegRead: From a776f5337937048e78fd73e52d447ce2a2a06df2 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 23 Jul 2025 15:20:41 -0700 Subject: [PATCH 294/372] skip block group row unpack paths when we're doing the special case of a root block row generation --- src/raddbg/raddbg_views.c | 51 ++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/src/raddbg/raddbg_views.c b/src/raddbg/raddbg_views.c index 53ab8126..2d874959 100644 --- a/src/raddbg/raddbg_views.c +++ b/src/raddbg/raddbg_views.c @@ -945,6 +945,7 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row) E_Type *row_type = e_type_from_key(row->eval.irtree.type_key); EV_Key key = row->key; EV_Block *block = row->block; + B32 block_is_root = (block->parent == &ev_nil_block); E_Eval block_eval = e_eval_from_key(row->block->eval.key); E_TypeKey block_type_key = e_type_key_unwrap(block_eval.irtree.type_key, E_TypeUnwrapFlag_Meta); E_TypeKind block_type_kind = e_type_kind_from_key(block_type_key); @@ -1027,46 +1028,58 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row) //////////////////////////// //- rjf: fill row's ctrl entity // - if(block_type_kind == E_TypeKind_Set && (block_eval.space.kind == RD_EvalSpaceKind_MetaQuery || - block_eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity)) + if(!block_is_root) { - info.group_entity = rd_ctrl_entity_from_eval_space(row->eval.space); + if(block_type_kind == E_TypeKind_Set && (block_eval.space.kind == RD_EvalSpaceKind_MetaQuery || + block_eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity)) + { + info.group_entity = rd_ctrl_entity_from_eval_space(row->eval.space); + } } //////////////////////////// //- rjf: fill row's cfg group name / parent // - if(block_type_kind == E_TypeKind_Set && (block_eval.space.kind == RD_EvalSpaceKind_MetaQuery || - block_eval.space.kind == RD_EvalSpaceKind_MetaCfg)) + if(!block_is_root) { - info.group_cfg_parent = rd_cfg_from_eval_space(block_eval.space); + if(block_type_kind == E_TypeKind_Set && (block_eval.space.kind == RD_EvalSpaceKind_MetaQuery || + block_eval.space.kind == RD_EvalSpaceKind_MetaCfg)) + { + info.group_cfg_parent = rd_cfg_from_eval_space(block_eval.space); + } } //////////////////////////// //- rjf: fill row's group cfg name // - if(block_type_kind == E_TypeKind_Set) + if(!block_is_root) { - String8 singular_name = rd_singular_from_code_name_plural(block_type->name); - if(singular_name.size != 0) + if(block_type_kind == E_TypeKind_Set) { - info.group_cfg_name = singular_name; - } - else - { - info.group_cfg_name = block_type->name; + String8 singular_name = rd_singular_from_code_name_plural(block_type->name); + if(singular_name.size != 0) + { + info.group_cfg_name = singular_name; + } + else + { + info.group_cfg_name = block_type->name; + } } } //////////////////////////// //- rjf: fill row's group cfg // - if(info.group_cfg_name.size != 0 && (block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(cfgs_slice) || - block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(watches) || - block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(environment))) + if(!block_is_root) { - RD_CfgID id = row->key.child_id; - info.group_cfg_child = rd_cfg_from_id(id); + if(info.group_cfg_name.size != 0 && (block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(cfgs_slice) || + block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(watches) || + block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(environment))) + { + RD_CfgID id = row->key.child_id; + info.group_cfg_child = rd_cfg_from_id(id); + } } //////////////////////////// From 3ae3f94db01ff247690d7fabc08e10d2092e0cd1 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 23 Jul 2025 16:04:59 -0700 Subject: [PATCH 295/372] split unsigned => signed casting case from shrinking conversion truncation cast path --- src/eval/eval_ir.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index 996dd033..069c3d90 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -873,7 +873,11 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I { new_tree = e_irtree_convert_lo(arena, in_tree, out_group, in_group); } - if(cast_type_kind != casted_type_kind && e_type_kind_is_integer(cast_type_kind) && e_type_kind_is_integer(casted_type_kind)) + if(cast_type_byte_size < casted_type_byte_size && e_type_kind_is_integer(cast_type_kind)) + { + new_tree = e_irtree_trunc(arena, in_tree, cast_type); + } + if(e_type_kind_is_signed(cast_type_kind) && e_type_kind_is_integer(casted_type_kind) && !e_type_kind_is_signed(casted_type_kind)) { new_tree = e_irtree_trunc(arena, in_tree, cast_type); } From 051bacf1240100fe5ab8c91084af235b3e5a4d21 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 23 Jul 2025 16:05:30 -0700 Subject: [PATCH 296/372] reflect cast changes in cast-calls --- src/eval/eval_ir.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index 069c3d90..74f076c1 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -1436,6 +1436,10 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I { new_tree = e_irtree_trunc(arena, in_tree, cast_type); } + if(e_type_kind_is_signed(cast_type_kind) && e_type_kind_is_integer(casted_type_kind) && !e_type_kind_is_signed(casted_type_kind)) + { + new_tree = e_irtree_trunc(arena, in_tree, cast_type); + } result.root = new_tree; result.type_key = cast_type; result.mode = E_Mode_Value; From 7cd5a670e3e1c57dcc84218fa7d1a3bf1fb4adeb Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 7 Jul 2025 14:30:48 -0700 Subject: [PATCH 297/372] WIP factoring out symbol table fixups --- src/linker/lnk.c | 831 ++++++++++++++++++++-------------- src/linker/lnk.h | 17 +- src/linker/lnk_obj.c | 2 +- src/linker/lnk_symbol_table.c | 7 + 4 files changed, 505 insertions(+), 352 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 7d815324..b66ed10c 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2224,246 +2224,29 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } internal LNK_SymbolTableFixup * -lnk_symbol_table_fixup_list_push(Arena *arena, LNK_SymbolTableFixupList *list) +lnk_bsearch_symbol_table_fixup_array(LNK_SymbolTableFixupArray array, U64 symbol_idx) { - LNK_SymbolTableFixupNode *node = push_array(arena, LNK_SymbolTableFixupNode, 1); - SLLQueuePush(list->first, list->last, node); - list->count += 1; - return &node->data; + NotImplemented; + return 0; } -internal LNK_SymbolTableFixup * -lnk_array_from_symbol_table_fixup_list(Arena *arena, LNK_SymbolTableFixupList list) -{ - LNK_SymbolTableFixup *result = push_array(arena, LNK_SymbolTableFixup, list.count); - U64 idx = 0; - for (LNK_SymbolTableFixupNode *n = list.first; n != 0; n = n->next, idx += 1) { - result[idx] = n->data; - } - return result; -} - -/* -internal -THREAD_POOL_TASK_FUNC(lnk_gather_symtab_fixups_task) -{ - Temp scratch = scratch_begin(&arena, 1); - - LNK_BuildImageTask *task = raw_task; - U64 obj_idx = task_id; - LNK_Obj *obj = task->objs[task_id]; - - ProfBeginV("%S", obj->path); - - ProfBegin("Build Symlinks"); - LNK_Symbol **symlinks = push_array(scratch.arena, LNK_Symbol *, obj->header.section_count_no_null+1); - { - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular && symbol.aux_symbol_count == 0 && symbol.storage_class == COFF_SymStorageClass_External) { - COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { - if (symlinks[symbol.section_number] == 0 || symbol.value == 0) { - symlinks[symbol.section_number] = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); - } - } - } - } - } - ProfEnd(); - - struct LookupLocation { - struct LookupLocation *next; - LNK_Obj *obj; - U64 symbol_idx; - }; - struct LookupLocation *lookup_first = 0; - struct LookupLocation *lookup_last = 0; - struct LookupLocation *lookup_free_list = 0; - HashTable *visited_symbols_ht = hash_table_init(scratch.arena, 32); - - LNK_SymbolTableFixupList fixups = {0}; - { - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular) { - LNK_Symbol *symlink = symlinks[symbol.section_number]; - if (symlink && symlink->u.defined.obj != obj) { - if (symbol.storage_class == COFF_SymStorageClass_External) { - // COMDAT leader may be at a different offset, so update this symbol with leader's offset - LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); - fixup->idx = symbol_idx; - fixup->obj_idx = symlink->u.defined.obj->input_idx; - fixup->obj_symbol_idx = symlink->u.defined.symbol_idx; - } else { - // COMDAT section may have static symbols which are now invalid to relocate against - LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); - fixup->idx = symbol_idx; - fixup->obj_idx = max_U32; - fixup->obj_symbol_idx = max_U32; - task->u.patch_symtabs.was_symbol_patched[obj_idx][symbol_idx] = 1; - } - } - } else if (interp == COFF_SymbolValueInterp_Common) { - LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); - if (defn) { - LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); - fixup->idx = symbol_idx; - fixup->obj_idx = defn->u.defined.obj->input_idx; - fixup->obj_symbol_idx = defn->u.defined.symbol_idx; - } - } else if (interp == COFF_SymbolValueInterp_Abs) { - if (symbol.storage_class == COFF_SymStorageClass_External) { - LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); - - if (defn == 0) { - continue; - } - if (defn->u.defined.obj == obj && defn->u.defined.symbol_idx == symbol_idx) { - continue; - } - - LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); - fixup->idx = symbol_idx; - fixup->obj_idx = defn->u.defined.obj->input_idx; - fixup->obj_symbol_idx = defn->u.defined.symbol_idx; - } - } else if (interp == COFF_SymbolValueInterp_Undefined) { - if (symbol.storage_class == COFF_SymStorageClass_External) { - LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); - if (defn) { - LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); - fixup->idx = symbol_idx; - fixup->obj_idx = defn->u.defined.obj->input_idx; - fixup->obj_symbol_idx = defn->u.defined.symbol_idx; - } - } - } else if (interp == COFF_SymbolValueInterp_Weak) { - String8 lookup_name = symbol.name; - LNK_Obj *lookup_obj = obj; - U64 lookup_symbol_idx = symbol_idx; - for (;;) { - LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, lookup_name); - if (defn == 0) { - break; - } - - // not external symbol -- symbol resolved - COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - if (defn_parsed.storage_class != COFF_SymStorageClass_WeakExternal) { - LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); - fixup->idx = symbol_idx; - fixup->obj_idx = defn->u.defined.obj->input_idx; - fixup->obj_symbol_idx = defn->u.defined.symbol_idx; - break; - } - - // check against cyclic refs - struct LookupLocation *was_visited = 0; - hash_table_search_string_raw(visited_symbols_ht, lookup_name, &was_visited); - if (was_visited != 0) { - Temp temp = temp_begin(scratch.arena); - - String8List list = {0}; - for (struct LookupLocation *l = lookup_first; l != 0; l = l->next) { - COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(l->obj, l->symbol_idx); - str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx) =>", l->obj->path, loc_symbol.name, l->symbol_idx); - } - { - COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(was_visited->obj, was_visited->symbol_idx); - str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx)", was_visited->obj->path, loc_symbol.name, was_visited->symbol_idx); - } - - String8 loc_string = str8_list_join(temp.arena, &list, &(StringJoin){.sep = str8_lit("\n") }); - lnk_error_obj(LNK_Error_WeakCycle, obj, "unable to resolve cyclic symbol %S; ref chain:\n%S", symbol.name, loc_string); - - temp_end(temp); - break; - } - struct LookupLocation *loc = lookup_free_list; - if (lookup_free_list) { - SLLStackPop(lookup_free_list); - } else { - loc = push_array(scratch.arena, struct LookupLocation, 1); - } - loc->obj = lookup_obj; - loc->symbol_idx = symbol_idx; - SLLQueuePush(lookup_first, lookup_last, loc); - hash_table_push_string_raw(scratch.arena, visited_symbols_ht, lookup_name, loc); - - // fallback to weak tag for definition - COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(defn_parsed, defn->u.defined.obj->header.is_big_obj); - COFF_ParsedSymbol parsed_tag = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, weak_ext->tag_index); - lookup_name = parsed_tag.name; - lookup_obj = defn->u.defined.obj; - lookup_symbol_idx = weak_ext->tag_index; - } - } - } - } - - task->obj_symtab_fixups[obj_idx] = lnk_array_from_symbol_table_fixup_list(arena, fixups); - - ProfEnd(); - scratch_end(scratch); -} - -internal void -lnk_gc_sections(U64 objs_count, LNK_Obj **objs, LNK_SymbolTableFixupArray *objs_fixups, PairU32 root) -{ - for (;;) { - LNK_Obj *obj = objs[root.v0]; - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, root.v1); - COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, section_header); - COFF_Reloc *relocs = str8_deserial_get_raw_ptr(obj->data, reloc_info.array_off, sizeof(*relocs)*reloc_info.count); - LNK_SymbolTableFixupArray *fixups = objs_fixups[root.v0]; - - for (U64 reloc_idx = 0; reloc_idx < reloc_info.count; reloc_idx += 1) { - COFF_Reloc *reloc = &relocs[reloc_idx]; - LNK_SymbolTableFixup *fixup = lnk_bsearch_symbol_table_fixup_array(fixups, reloc->isymbol); - - LNK_Obj *symbol_obj; - U64 symbol_idx; - if (fixup == 0) { - symbol_obj = obj; - symbol_idx = reloc->isymbol; - } else { - symbol_obj = objs[fixup->obj_idx]; - symbol_idx = fixup->obj_symbol_idx; - } - - COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol_obj, symbol_idx); - COFF_SectionHeader *symbol_section_header = ; - } - } -} -*/ - internal THREAD_POOL_TASK_FUNC(lnk_remove_associative_sections_task) { - LNK_BuildImageTask *task = raw_task; - - LNK_Obj *obj = task->objs[task_id]; - String8 string_table = str8_substr(obj->data, obj->header.string_table_range); - String8 symbol_table = str8_substr(obj->data, obj->header.symbol_table_range); - for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + LNK_BuildImageTask *task = raw_task; + LNK_Obj *obj = task->objs[task_id]; + String8 string_table = str8_substr(obj->data, obj->header.string_table_range); + String8 symbol_table = str8_substr(obj->data, obj->header.symbol_table_range); + for EachIndex(sect_idx, obj->header.section_count_no_null) { // find associate section head section index U32 head_sect_idx = max_U32; for (U64 current_sect_idx = sect_idx;;) { U32 symbol_idx = obj->comdats[current_sect_idx]; - if (symbol_idx == max_U32) { - break; - } + if (symbol_idx == max_U32) { break; } - COFF_ParsedSymbol symbol = coff_parse_symbol(obj->header, string_table, symbol_table, symbol_idx); - COFF_ComdatSelectType selection = COFF_ComdatSelect_Null; - U32 section_number = 0; + COFF_ParsedSymbol symbol = coff_parse_symbol(obj->header, string_table, symbol_table, symbol_idx); + COFF_ComdatSelectType selection = COFF_ComdatSelect_Null; + U32 section_number = 0; coff_parse_secdef(symbol, obj->header.is_big_obj, &selection, §ion_number, 0, 0); if (selection != COFF_ComdatSelect_Associative) { head_sect_idx = current_sect_idx; @@ -2599,6 +2382,410 @@ THREAD_POOL_TASK_FUNC(lnk_flag_debug_symbols_task) } } +internal +THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_contribs_task) +{ + Temp scratch = scratch_begin(&arena, 1); + + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + + ProfBegin("Build Symlinks"); + LNK_Symbol **symlinks = push_array(scratch.arena, LNK_Symbol *, obj->header.section_count_no_null+1); + { + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular && symbol.aux_symbol_count == 0 && symbol.storage_class == COFF_SymStorageClass_External) { + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { + if (symlinks[symbol.section_number] == 0 || symbol.value == 0) { + symlinks[symbol.section_number] = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + } + } + } + } + } + ProfEnd(); + + ProfBeginV("Set COMDAT Section Contribs"); + for EachIndex(sect_idx, obj->header.section_count_no_null) { + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); + if (section_header->flags & COFF_SectionFlag_LnkCOMDAT) { + LNK_Symbol *sym = symlinks[sect_idx+1]; + if (sym) { + COFF_ParsedSymbol parsed_sym = lnk_parsed_symbol_from_coff_symbol_idx(sym->u.defined.obj, sym->u.defined.symbol_idx); + task->sect_map[obj_idx][sect_idx] = task->sect_map[sym->u.defined.obj->input_idx][parsed_sym.section_number - 1]; + } + } + } + ProfEnd(); + + scratch_end(scratch); +} + +internal LNK_SymbolTableFixup * +lnk_symbol_table_fixup_list_push(Arena *arena, LNK_SymbolTableFixupList *list) +{ + LNK_SymbolTableFixupNode *node = push_array(arena, LNK_SymbolTableFixupNode, 1); + SLLQueuePush(list->first, list->last, node); + list->count += 1; + return &node->data; +} + +internal LNK_SymbolTableFixupArray +lnk_array_from_symbol_table_fixup_list(Arena *arena, LNK_SymbolTableFixupList list) +{ + LNK_SymbolTableFixupArray result = {0}; + result.v = push_array(arena, LNK_SymbolTableFixup, list.count); + for (LNK_SymbolTableFixupNode *n = list.first; n != 0; n = n->next) { + result.v[result.count++] = n->data; + } + return result; +} + +internal +THREAD_POOL_TASK_FUNC(lnk_gather_symtab_fixups_task) +{ + Temp scratch = scratch_begin(&arena, 1); + + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[task_id]; + + ProfBeginV("%S", obj->path); + + LNK_SymbolTableFixupList fixups = {0}; + + HashTable *visited_symbols_ht = hash_table_init(scratch.arena, 32); + struct LookupLocation { struct LookupLocation *next; LNK_Obj *obj; U64 symbol_idx; }; + struct LookupLocation *lookup_first = 0, *lookup_last = 0, *lookup_free_list = 0; + + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + + COFF_ParsedSymbol fixup_symbol = symbol; + COFF_SymbolValueInterpType fixup_interp = interp; + + for (String8 lookup_name = symbol.name; fixup_interp == COFF_SymbolValueInterp_Weak;) { + // search external symbol table for definition + LNK_Symbol *defn_symbol = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, lookup_name); + COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_defined(defn_symbol); + COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_parsed.section_number, defn_parsed.value, defn_parsed.storage_class); + + // was weak symbol replaced by strong symbol? + if (defn_interp != COFF_SymbolValueInterp_Weak) { + fixup_interp = defn_interp; + fixup_symbol = defn_parsed; + break; + } + + // strong symbol not found, fallback to tag symbol + COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(defn_parsed, defn_symbol->u.defined.obj->header.is_big_obj); + COFF_ParsedSymbol tag_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn_symbol->u.defined.obj, weak_ext->tag_index); + COFF_SymbolValueInterpType tag_interp = coff_interp_symbol(tag_parsed.section_number, tag_parsed.value, tag_parsed.storage_class); + + // validate tag symbol + if (tag_interp == COFF_SymbolValueInterp_Weak) { + Assert(!"TODO: report that tag symbol must not be weak"); + break; + } + + // tag is a resolved symbol + if (tag_interp != COFF_SymbolValueInterp_Undefined) { + fixup_interp = tag_interp; + fixup_symbol = tag_parsed; + break; + } + + // guard against self-referencing weak symbols + struct LookupLocation *was_visited = 0; + hash_table_search_string_raw(visited_symbols_ht, tag_parsed.name, &was_visited); + if (was_visited) { + Temp temp = temp_begin(scratch.arena); + + String8List list = {0}; + for (struct LookupLocation *l = lookup_first; l != 0; l = l->next) { + COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(l->obj, l->symbol_idx); + str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx) =>", l->obj->path, loc_symbol.name, l->symbol_idx); + } + COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(was_visited->obj, was_visited->symbol_idx); + str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx)", was_visited->obj->path, loc_symbol.name, was_visited->symbol_idx); + + String8 loc_string = str8_list_join(temp.arena, &list, &(StringJoin){.sep = str8_lit("\n") }); + lnk_error_obj(LNK_Error_WeakCycle, obj, "unable to resolve cyclic symbol %S; ref chain:\n%S", symbol.name, loc_string); + + temp_end(temp); + break; + } + + // alloc lookup location + struct LookupLocation *loc = lookup_free_list; + if (lookup_free_list) { SLLStackPop(lookup_free_list); } + else { loc = push_array(scratch.arena, struct LookupLocation, 1); } + + // fill out lookup location + loc->obj = defn_symbol->u.defined.obj; + loc->symbol_idx = symbol_idx; + SLLQueuePush(lookup_first, lookup_last, loc); + hash_table_push_string_raw(scratch.arena, visited_symbols_ht, lookup_name, loc); + + // follow undefined tag symbol + lookup_name = tag_parsed.name; + } + + if (fixup_interp == COFF_SymbolValueInterp_Common) { + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, fixup_symbol.name); + if (defn) { + LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); + fixup->idx = symbol_idx; + fixup->obj_idx = defn->u.defined.obj->input_idx; + fixup->obj_symbol_idx = defn->u.defined.symbol_idx; + } + } else if (fixup_interp == COFF_SymbolValueInterp_Abs) { + if (fixup_symbol.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, fixup_symbol.name); + + if (defn == 0) { continue; } + if (defn->u.defined.obj == obj && defn->u.defined.symbol_idx == symbol_idx) { continue; } + + LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); + fixup->idx = symbol_idx; + fixup->obj_idx = defn->u.defined.obj->input_idx; + fixup->obj_symbol_idx = defn->u.defined.symbol_idx; + } + } else if (fixup_interp == COFF_SymbolValueInterp_Undefined) { + if (symbol.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + if (defn) { + LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); + fixup->idx = symbol_idx; + fixup->obj_idx = defn->u.defined.obj->input_idx; + fixup->obj_symbol_idx = defn->u.defined.symbol_idx; + } + } + } + } + + task->obj_symtab_fixups[obj_idx] = lnk_array_from_symbol_table_fixup_list(arena, fixups); + + ProfEnd(); + scratch_end(scratch); +} + +internal +THREAD_POOL_TASK_FUNC(lnk_apply_symtab_fixups_task) +{ + LNK_BuildImageTask *task = raw_task; + U64 obj_idx = task_id; + LNK_Obj *obj = task->objs[obj_idx]; + LNK_SymbolTableFixupArray fixups = task->obj_symtab_fixups[obj_idx]; + + ProfBeginV("%S\n", obj->path); + for EachIndex(fixup_idx, fixups.count) { + LNK_SymbolTableFixup *fixup = &fixups.v[fixup_idx]; + + COFF_ParsedSymbol fixup_dst = lnk_parsed_symbol_from_coff_symbol_idx(obj, fixup->idx); + COFF_SymbolValueInterpType fixup_dst_type = coff_interp_symbol(fixup_dst.section_number, fixup_dst.value, fixup_dst.storage_class); + if (task->u.patch_symtabs.fixup_type != fixup_dst_type) { continue; } + + LNK_Obj *fixup_obj_src = task->objs[fixup->obj_idx]; + COFF_ParsedSymbol fixup_src = lnk_parsed_symbol_from_coff_symbol_idx(fixup_obj_src, fixup->obj_symbol_idx); + COFF_SymbolValueInterpType fixup_type = coff_interp_symbol(fixup_src.section_number, fixup_src.value, fixup_src.storage_class); + + if (fixup_type == COFF_SymbolValueInterp_Regular) { + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = fixup_dst.raw_symbol; + symbol32->section_number = fixup_src.section_number; + symbol32->value = safe_cast_u32(fixup_src.value); + symbol32->type = fixup_src.type; + symbol32->storage_class = COFF_SymStorageClass_Static; + } else { + COFF_Symbol16 *symbol16 = fixup_dst.raw_symbol; + symbol16->section_number = safe_cast_u16(fixup_src.section_number); + symbol16->value = safe_cast_u32(fixup_src.value); + symbol16->type = fixup_src.type; + symbol16->storage_class = COFF_SymStorageClass_Static; + } + } else if (fixup_type == COFF_SymbolValueInterp_Abs) { + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = fixup_dst.raw_symbol; + symbol32->section_number = COFF_Symbol_AbsSection32; + symbol32->value = safe_cast_u32(fixup_src.value); + symbol32->type = fixup_src.type; + symbol32->storage_class = COFF_SymStorageClass_Static; + } else { + COFF_Symbol16 *symbol16 = fixup_dst.raw_symbol; + symbol16->section_number = COFF_Symbol_AbsSection16; + symbol16->value = safe_cast_u32(fixup_src.value); + symbol16->type = fixup_src.type; + symbol16->storage_class = COFF_SymStorageClass_Static; + } + } else { + InvalidPath; + } + } + ProfEnd(); +} + +internal void +lnk_gc_sections(U64 objs_count, LNK_Obj **objs, LNK_SectionContrib ***sect_map, LNK_SymbolTableFixupArray *obj_symtab_fixups, U64 roots_count, LNK_Symbol **roots) +{ + Temp scratch = scratch_begin(0,0); + + for EachIndex(obj_idx, objs_count) { + LNK_Obj *obj = objs[obj_idx]; + for EachIndex(sect_idx, obj->header.section_count_no_null) { + // is this a COMDAT section? + U32 comdat_idx = obj->comdats[sect_idx]; + if (comdat_idx == max_U32) { continue; } + + // is this COMDAT associative section? + COFF_ParsedSymbol comdat_symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, comdat_idx); + COFF_ComdatSelectType comdat_selection = COFF_ComdatSelect_Null; + U32 comdat_section_number = 0; + coff_parse_secdef(comdat_symbol, obj->header.is_big_obj, &comdat_selection, &comdat_section_number, 0, 0); + if (comdat_selection != COFF_ComdatSelect_Associative) { continue; } + + // parse head section definition + COFF_ParsedSymbol head_symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, obj->comdats[comdat_section_number-1]); + U32 head_section_number = 0; + coff_parse_secdef(head_symbol, obj->header.is_big_obj, 0, &comdat_section_number, 0, 0); + + // patch section definitions + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = comdat_symbol.raw_symbol; + COFF_SymbolSecDef *secdef = (COFF_SymbolSecDef *)(symbol32 + 1); + secdef->number_lo = Extract16(head_section_number, 0); + secdef->number_hi = Extract16(head_section_number, 1); + + COFF_Symbol32 *head_symbol32 = head_symbol.raw_symbol; + COFF_SymbolSecDef *head_secdef = (COFF_SymbolSecDef *)(head_symbol32 + 1); + head_secdef->number_lo = Extract16(sect_idx + 1, 0); + head_secdef->number_hi = Extract16(sect_idx + 1, 1); + } else { + COFF_Symbol16 *symbol16 = comdat_symbol.raw_symbol; + COFF_SymbolSecDef *secdef = (COFF_SymbolSecDef *)(symbol16 + 1); + secdef->number_lo = safe_cast_u16(head_section_number); + + COFF_Symbol16 *head_symbol16 = head_symbol.raw_symbol; + COFF_SymbolSecDef *head_secdef = (COFF_SymbolSecDef *)(head_symbol16 + 1); + head_secdef->number_lo = safe_cast_u16(sect_idx + 1); + } + } + } + + struct Task { + struct Task *next; + LNK_Obj *obj; + COFF_RelocArray relocs; + }; + + U64 relocs_per_task = 1024; + struct Task *tasks = 0; + + for EachIndex(root_idx, roots_count) { + LNK_Symbol *root = roots[root_idx]; + LNK_Obj *root_obj = root->u.defined.obj; + COFF_ParsedSymbol root_symbol = lnk_parsed_symbol_from_coff_symbol_idx(root_obj, root->u.defined.symbol_idx); + COFF_SymbolValueInterpType root_interp = coff_interp_symbol(root_symbol.section_number, root_symbol.value, root_symbol.storage_class); + + if (root_interp == COFF_SymbolValueInterp_Regular) { + LNK_SectionContrib *sc = sect_map[root_obj->input_idx][root_symbol.section_number-1]; + LNK_Obj *sc_obj = objs[sc->u.obj_idx]; + COFF_SectionHeader *sc_section_header = lnk_coff_section_header_from_section_number(sc_obj, sc->u.obj_sect_idx+1); + + if (sc_section_header->flags & COFF_SectionFlag_LnkRemove) { continue; } + + COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(sc_obj->data, sc_section_header); + COFF_Reloc *relocs = str8_deserial_get_raw_ptr(sc_obj->data, reloc_info.array_off, sizeof(*relocs)*reloc_info.count); + + U64 new_task_count = CeilIntegerDiv(reloc_info.count, relocs_per_task); + struct Task *new_tasks = push_array(scratch.arena, struct Task, new_task_count); + + for EachIndex(new_task_idx, new_task_count) { + struct Task *t = new_tasks + new_task_idx; + t->obj = sc_obj; + t->relocs.count = Min(relocs_per_task, reloc_info.count - (new_task_idx * relocs_per_task)); + t->relocs.v = relocs + (new_task_idx * relocs_per_task); + SLLStackPush(tasks, t); + } + } + } + + B8 **was_section_visited = push_array(scratch.arena, B8 *, objs_count); + for EachIndex(obj_idx, objs_count) { was_section_visited[obj_idx] = push_array(scratch.arena, B8, objs[obj_idx]->header.section_count_no_null + 1); } + + for (; tasks; ) { + struct Task *t = tasks; SLLStackPop(tasks); + + for EachIndex(reloc_idx, t->relocs.count) { + COFF_Reloc *reloc = &t->relocs.v[reloc_idx]; + + LNK_SymbolTableFixup *fixup = lnk_bsearch_symbol_table_fixup_array(obj_symtab_fixups[t->obj->input_idx], reloc->isymbol); + LNK_Obj *reloc_obj; U32 reloc_symbol_idx; + if (fixup == 0) { reloc_obj = t->obj, reloc_symbol_idx = reloc->isymbol; } + else { reloc_obj = objs[fixup->obj_idx]; reloc_symbol_idx = fixup->obj_symbol_idx; } + + COFF_ParsedSymbol reloc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(reloc_obj, reloc_symbol_idx); + COFF_SymbolValueInterpType reloc_symbol_interp = coff_interp_symbol(reloc_symbol.section_number, reloc_symbol.value, reloc_symbol.storage_class); + + if (reloc_symbol_interp == COFF_SymbolValueInterp_Regular) { + U64List section_number_list = {0}; + for (U32 current_section_number = reloc_symbol.section_number;;) { + // sotre section number + u64_list_push(scratch.arena, §ion_number_list, current_section_number); + + // does section have a section definition symbol? + U32 comdat_symbol_idx = reloc_obj->comdats[reloc_symbol.section_number-1]; + if (comdat_symbol_idx == max_U32) { break; } + COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(reloc_obj, comdat_symbol_idx); + + // parse section definition symbol and recurse to associative section + U32 associate_section_number; + coff_parse_secdef(secdef, reloc_obj->header.is_big_obj, 0, &associate_section_number, 0, 0); + if (associate_section_number == 0) { break; } + + // recurse to associate section + current_section_number = associate_section_number; + } + + // push section headers relocations to the task stack + for (U64Node *section_number_n = section_number_list.first; section_number_n != 0; section_number_n = section_number_n->next) { + if (was_section_visited[t->obj->input_idx][section_number_n->data]) { continue; } + was_section_visited[t->obj->input_idx][section_number_n->data] = 1; + + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(t->obj, section_number_n->data); + if (section_header->flags & COFF_SectionFlag_LnkRemove) { continue; } + + // extract reloc info + COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(reloc_obj->data, section_header); + COFF_Reloc *relocs = str8_deserial_get_raw_ptr(reloc_obj->data, reloc_info.array_off, sizeof(*relocs)*reloc_info.count); + + // alloc new tasks + U64 new_task_count = CeilIntegerDiv(reloc_info.count, relocs_per_task); + struct Task *new_tasks = push_array(scratch.arena, struct Task, new_task_count); + + // push tasks + for EachIndex(new_task_idx, new_task_count) { + struct Task *t = new_tasks + new_task_idx; + t->obj = reloc_obj; + t->relocs.count = Min(relocs_per_task, reloc_info.count - (new_task_idx * relocs_per_task)); + t->relocs.v = relocs + (new_task_idx * relocs_per_task); + SLLStackPush(tasks, t); + } + } + } + } + } + + scratch_end(scratch); +} + internal THREAD_POOL_TASK_FUNC(lnk_patch_comdat_leaders_task) { @@ -2629,19 +2816,6 @@ THREAD_POOL_TASK_FUNC(lnk_patch_comdat_leaders_task) } ProfEnd(); - ProfBeginV("Set COMDAT Section Contribs"); - for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); - if (section_header->flags & COFF_SectionFlag_LnkCOMDAT) { - LNK_Symbol *sym = symlinks[sect_idx+1]; - if (sym) { - COFF_ParsedSymbol parsed_sym = lnk_parsed_symbol_from_coff_symbol_idx(sym->u.defined.obj, sym->u.defined.symbol_idx); - task->sect_map[obj_idx][sect_idx] = task->sect_map[sym->u.defined.obj->input_idx][parsed_sym.section_number - 1]; - } - } - } - ProfEnd(); - ProfBegin("Patch COMDAT Offsets"); COFF_ParsedSymbol symbol; for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { @@ -4224,34 +4398,25 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT Temp scratch = scratch_begin(arena->v, arena->count); - /* - ProfBegin("Gather Symbol Tables Fixups"); - tp_for_parallel(tp, 0, objs_count, lnk_gather_symtab_fixups_task, &task); - ProfEnd(); - */ - // init section table LNK_SectionTable *sectab = lnk_section_table_alloc(); - lnk_section_table_push(sectab, str8_lit(".text"), PE_TEXT_SECTION_FLAGS); + lnk_section_table_push(sectab, str8_lit(".text" ), PE_TEXT_SECTION_FLAGS ); lnk_section_table_push(sectab, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS); - lnk_section_table_push(sectab, str8_lit(".data"), PE_DATA_SECTION_FLAGS); - lnk_section_table_push(sectab, str8_lit(".bss"), PE_BSS_SECTION_FLAGS); + lnk_section_table_push(sectab, str8_lit(".data" ), PE_DATA_SECTION_FLAGS ); + lnk_section_table_push(sectab, str8_lit(".bss" ), PE_BSS_SECTION_FLAGS ); + LNK_Section *common_block_sect = lnk_section_table_search(sectab, str8_lit(".bss"), PE_BSS_SECTION_FLAGS); LNK_BuildImageTask task = {0}; task.symtab = symtab; task.sectab = sectab; - task.null_sc = push_array(arena->v[0], LNK_SectionContrib, 1); - task.obj_symtab_fixups = push_array(scratch.arena, LNK_SymbolTableFixupArray, 1); - task.function_pad_min = config->function_pad_min; - task.default_align = coff_default_align_from_machine(config->machine); task.objs_count = objs_count; task.objs = objs; - task.sect_map = 0; + task.function_pad_min = config->function_pad_min; + task.default_align = coff_default_align_from_machine(config->machine); + task.null_sc = push_array(arena->v[0], LNK_SectionContrib, 1); - ProfBegin("Remove Associative Sections"); tp_for_parallel(tp, 0, objs_count, lnk_remove_associative_sections_task, &task); - ProfEnd(); { ProfBegin("Define And Count Sections"); @@ -4259,7 +4424,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT ProfBegin("Init Hash Tables For Gathering Section Definitions"); task.u.gather_sects.defns = push_array(arena->v[0], HashTable *, tp->worker_count); - for (U64 worker_idx = 0; worker_idx < tp->worker_count; worker_idx += 1) task.u.gather_sects.defns[worker_idx] = hash_table_init(arena->v[0], 128); + for EachIndex(worker_id, tp->worker_count) { task.u.gather_sects.defns[worker_id] = hash_table_init(arena->v[0], 128); } ProfEnd(); ProfBegin("Gather Section Definitions"); @@ -4267,34 +4432,30 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT ProfEnd(); ProfBegin("Merge Section Definitions Hash Tables"); - U64 sect_defns_count; - LNK_SectionDefinition **sect_defns; - { - for (U64 worker_idx = 1; worker_idx < tp->worker_count; worker_idx += 1) { - U64 sect_defns_count = task.u.gather_sects.defns[worker_idx]->count; - LNK_SectionDefinition **sect_defns = values_from_hash_table_raw(arena->v[0], task.u.gather_sects.defns[worker_idx]); - radsort(sect_defns, sect_defns_count, lnk_section_definition_is_before); + for (U64 worker_idx = 1; worker_idx < tp->worker_count; worker_idx += 1) { + U64 sect_defns_count = task.u.gather_sects.defns[worker_idx]->count; + LNK_SectionDefinition **sect_defns = values_from_hash_table_raw(arena->v[0], task.u.gather_sects.defns[worker_idx]); + radsort(sect_defns, sect_defns_count, lnk_section_definition_is_before); - for (U64 defn_idx = 0; defn_idx < sect_defns_count; defn_idx += 1) { - LNK_SectionDefinition *defn = sect_defns[defn_idx]; - String8 name_with_flags = lnk_make_name_with_flags(arena->v[0], defn->name, defn->flags); - LNK_SectionDefinition *main_defn = 0; - hash_table_search_string_raw(task.u.gather_sects.defns[0], name_with_flags, &main_defn); - if (main_defn == 0) { - main_defn = sect_defns[defn_idx]; - hash_table_push_string_raw(arena->v[0], task.u.gather_sects.defns[0], name_with_flags, main_defn); - } else { - if (lnk_section_definition_is_before(§_defns[defn_idx], &main_defn)) { - main_defn->obj = sect_defns[defn_idx]->obj; - main_defn->obj_sect_idx = sect_defns[defn_idx]->obj_sect_idx; - } - main_defn->contribs_count += sect_defns[defn_idx]->contribs_count; + for EachIndex(defn_idx, sect_defns_count) { + LNK_SectionDefinition *defn = sect_defns[defn_idx]; + String8 name_with_flags = lnk_make_name_with_flags(arena->v[0], defn->name, defn->flags); + LNK_SectionDefinition *main_defn = 0; + hash_table_search_string_raw(task.u.gather_sects.defns[0], name_with_flags, &main_defn); + if (main_defn == 0) { + main_defn = sect_defns[defn_idx]; + hash_table_push_string_raw(arena->v[0], task.u.gather_sects.defns[0], name_with_flags, main_defn); + } else { + if (lnk_section_definition_is_before(§_defns[defn_idx], &main_defn)) { + main_defn->obj = sect_defns[defn_idx]->obj; + main_defn->obj_sect_idx = sect_defns[defn_idx]->obj_sect_idx; } + main_defn->contribs_count += sect_defns[defn_idx]->contribs_count; } } - sect_defns_count = task.u.gather_sects.defns[0]->count; - sect_defns = values_from_hash_table_raw(arena->v[0], task.u.gather_sects.defns[0]); } + U64 sect_defns_count = task.u.gather_sects.defns[0]->count; + LNK_SectionDefinition **sect_defns = values_from_hash_table_raw(arena->v[0], task.u.gather_sects.defns[0]); ProfEnd(); ProfBegin("Sort Sections Definitions"); @@ -4303,7 +4464,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT ProfBegin("Push Sections And Reserve Section Contrib Memory"); task.contribs_ht = hash_table_init(sectab->arena, sect_defns_count); - for (U64 defn_idx = 0; defn_idx < sect_defns_count; defn_idx += 1) { + for EachIndex(defn_idx, sect_defns_count) { LNK_SectionDefinition *sect_defn = sect_defns[defn_idx]; // parse section name @@ -4355,21 +4516,13 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT { ProfBegin("Alloc Section Map"); task.sect_map = push_array(scratch.arena, LNK_SectionContrib **, objs_count); - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) task.sect_map[obj_idx] = push_array(scratch.arena, LNK_SectionContrib *, objs[obj_idx]->header.section_count_no_null); + for EachIndex(obj_idx, objs_count) { task.sect_map[obj_idx] = push_array(scratch.arena, LNK_SectionContrib *, objs[obj_idx]->header.section_count_no_null); } ProfEnd(); ProfBegin("Gather Section Contribs"); tp_for_parallel(tp, 0, objs_count, lnk_gather_section_contribs_task, &task); ProfEnd(); -#if BUILD_DEBUG - for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { - for (LNK_SectionContribChunk *chunk = sect_n->data.contribs.first; chunk != 0; chunk = chunk->next) { - AssertAlways(chunk->count == chunk->cap); - } - } -#endif - // ensure determinism by sorting section contribs in chunks by input index { ProfBegin("Sort Section Contribs"); @@ -4393,6 +4546,20 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT ProfEnd(); } + ProfBegin("Update Section Map With COMDAT Leader Contribs"); + tp_for_parallel(tp, 0, objs_count, lnk_set_comdat_leaders_contribs_task, &task); + ProfEnd(); + + ProfBegin("Gather Obj Symbol Tables Fixups"); + task.obj_symtab_fixups = push_array(scratch.arena, LNK_SymbolTableFixupArray, objs_count); + tp_for_parallel(tp, arena, objs_count, lnk_gather_symtab_fixups_task, &task); + ProfEnd(); + + if (config->opt_ref == LNK_SwitchState_Yes) { + //LNK_Symbol *entry_point_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, config->entry_point_name); + //lnk_gc_sections(objs_count, objs, task.sect_map, task.obj_symtab_fixups, 1, &entry_point_symbol); + } + // build common block // // TODO: build common block in .bss and merge with .data @@ -4522,56 +4689,34 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT ProfBegin("Patch Symbol Tables"); Temp temp = temp_begin(scratch.arena); - ProfBegin("Alloc Patch Flags"); - task.u.patch_symtabs.was_symbol_patched = push_array(scratch.arena, B8 *, objs_count); - for (U64 obj_idx = 0; obj_idx < objs_count; obj_idx += 1) { - task.u.patch_symtabs.was_symbol_patched[obj_idx] = push_array(temp.arena, B8, objs[obj_idx]->header.symbol_count); - } + B8 **was_symbol_patched = push_array(temp.arena, B8 *, objs_count); + for EachIndex(obj_idx, objs_count) { was_symbol_patched[obj_idx] = push_array(temp.arena, B8, objs[obj_idx]->header.symbol_count); } + + task.u.patch_symtabs.was_symbol_patched = was_symbol_patched; task.u.patch_symtabs.common_block_sect = common_block_sect; - task.u.patch_symtabs.ranges = tp_divide_work(scratch.arena, common_block_contribs_count, tp->worker_count); + task.u.patch_symtabs.ranges = tp_divide_work(temp.arena, common_block_contribs_count, tp->worker_count); task.u.patch_symtabs.common_block_contribs = common_block_contribs; - ProfEnd(); // flag debug symbols to prevent them from being patched in subsequent passes - ProfBegin("Flag Debug Symbols"); - tp_for_parallel(tp, 0, objs_count, lnk_flag_debug_symbols_task, &task); - ProfEnd(); + tp_for_parallel_prof(tp, 0, objs_count, lnk_flag_debug_symbols_task, &task, "Flag Debug Symbols"); + tp_for_parallel_prof(tp, 0, objs_count, lnk_patch_comdat_leaders_task, &task, "Patch COMDAT Leaders"); + tp_for_parallel_prof(tp, 0, tp->worker_count, lnk_patch_common_block_leaders_task, &task, "Patch Common Block Leaders"); + tp_for_parallel_prof(tp, 0, objs_count, lnk_patch_regular_symbols_task, &task, "Patch Regular Symbols"); - ProfBegin("Patch COMDAT Leaders"); - tp_for_parallel(tp, 0, objs_count, lnk_patch_comdat_leaders_task, &task); - ProfEnd(); + task.u.patch_symtabs.fixup_type = COFF_SymbolValueInterp_Common; + tp_for_parallel_prof(tp, 0, objs_count, lnk_apply_symtab_fixups_task, &task, "Fixup Common Symbols"); - ProfBegin("Patch Common Block Leaders"); - tp_for_parallel(tp, 0, tp->worker_count, lnk_patch_common_block_leaders_task, &task); - ProfEnd(); + task.u.patch_symtabs.fixup_type = COFF_SymbolValueInterp_Abs; + tp_for_parallel_prof(tp, 0, objs_count, lnk_apply_symtab_fixups_task, &task, "Fixup Absolute Symbols"); - ProfBegin("Patch Regular Symbols"); - tp_for_parallel(tp, 0, task.objs_count, lnk_patch_regular_symbols_task, &task); - ProfEnd(); + task.u.patch_symtabs.fixup_type = COFF_SymbolValueInterp_Undefined; + tp_for_parallel_prof(tp, 0, objs_count, lnk_apply_symtab_fixups_task, &task, "Fixup Undefined Symbols"); - ProfBegin("Patch Common Block Symbols"); - tp_for_parallel(tp, 0, task.objs_count, lnk_patch_common_block_symbols_task, &task); - ProfEnd(); + task.u.patch_symtabs.fixup_type = COFF_SymbolValueInterp_Weak; + tp_for_parallel_prof(tp, 0, objs_count, lnk_apply_symtab_fixups_task, &task, "Fixup Weak Symbols"); - ProfBegin("Patch Absolute Symbols"); - tp_for_parallel(tp, 0, task.objs_count, lnk_patch_abs_symbols_task, &task); - ProfEnd(); - - ProfBegin("Patch Undefined Symbols"); - tp_for_parallel(tp, 0, task.objs_count, lnk_patch_undefined_symbols_task, &task); - ProfEnd(); - - ProfBegin("Patch Weak Symbols With Strong Definition"); - tp_for_parallel(tp, 0, task.objs_count, lnk_patch_weak_symbols_with_strong_definition_task, &task); - ProfEnd(); - - ProfBegin("Patch Weak Symbols With Fallback Definition"); - tp_for_parallel(tp, 0, task.objs_count, lnk_patch_weak_symbols_with_fallback_definition_task, &task); - ProfEnd(); - - ProfBegin("Patch Weak Symbols With Defined Tag"); - tp_for_parallel(tp, 0, task.objs_count, lnk_patch_weak_symbols_with_defined_tags_task, &task); - ProfEnd(); + task.u.patch_symtabs.fixup_type = COFF_SymbolValueInterp_Undefined; + tp_for_parallel_prof(tp, 0, objs_count, lnk_apply_symtab_fixups_task, &task, "Fixup Undefined Symbols"); temp_end(temp); ProfEnd(); @@ -5196,21 +5341,21 @@ lnk_log_timers(void) } internal void -lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) +lnk_run(TP_Context *tp, TP_Arena *arena, LNK_Config *config) { ProfBeginFunction(); - Temp scratch = scratch_begin(tp_arena->v, tp_arena->count); + Temp scratch = scratch_begin(arena->v, arena->count); // // Link Inputs // - LNK_LinkContext link_ctx = lnk_build_link_context(tp, tp_arena, config); + LNK_LinkContext link_ctx = lnk_build_link_context(tp, arena, config); // // Image // - LNK_ImageContext image_ctx = lnk_build_image(tp_arena, tp, config, link_ctx.symtab, link_ctx.objs_count, link_ctx.objs); + LNK_ImageContext image_ctx = lnk_build_image(arena, tp, config, link_ctx.symtab, link_ctx.objs_count, link_ctx.objs); // Write image in the background LNK_WriteThreadContext *image_write_ctx = push_array(scratch.arena, LNK_WriteThreadContext, 1); @@ -5234,7 +5379,7 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfBegin("Build Import Library"); lnk_timer_begin(LNK_Timer_Lib); String8 linker_debug_symbols = lnk_make_linker_debug_symbols(scratch.arena, config->machine); - String8List lib_list = pe_make_import_lib(tp_arena->v[0], config->machine, config->time_stamp, str8_skip_last_slash(config->image_name), linker_debug_symbols, link_ctx.export_symbol_list); + String8List lib_list = pe_make_import_lib(arena->v[0], config->machine, config->time_stamp, str8_skip_last_slash(config->image_name), linker_debug_symbols, link_ctx.export_symbol_list); lnk_write_data_list_to_file_path(config->imp_lib_name, str8_zero(), lib_list); lnk_timer_end(LNK_Timer_Lib); ProfEnd(); @@ -5250,8 +5395,8 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) // // CodeView // - LNK_CodeViewInput input = lnk_make_code_view_input(tp, tp_arena, config->io_flags, config->lib_dir_list, link_ctx.objs_count, link_ctx.objs); - CV_DebugT *types = lnk_import_types(tp, tp_arena, &input); + LNK_CodeViewInput input = lnk_make_code_view_input(tp, arena, config->io_flags, config->lib_dir_list, link_ctx.objs_count, link_ctx.objs); + CV_DebugT *types = lnk_import_types(tp, arena, &input); // // RDI @@ -5260,7 +5405,7 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) lnk_timer_begin(LNK_Timer_Rdi); String8List rdi_data = lnk_build_rad_debug_info(tp, - tp_arena, + arena, config->target_os, rdi_arch_from_coff_machine(config->machine), config->image_name, @@ -5287,11 +5432,11 @@ lnk_run(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) lnk_timer_begin(LNK_Timer_Pdb); if (config->pdb_hash_type_names != LNK_TypeNameHashMode_Null && config->pdb_hash_type_names != LNK_TypeNameHashMode_None) { - lnk_replace_type_names_with_hashes(tp, tp_arena, types[CV_TypeIndexSource_TPI], config->pdb_hash_type_names, config->pdb_hash_type_name_length, config->pdb_hash_type_name_map); + lnk_replace_type_names_with_hashes(tp, arena, types[CV_TypeIndexSource_TPI], config->pdb_hash_type_names, config->pdb_hash_type_name_length, config->pdb_hash_type_name_map); } String8List pdb_data = lnk_build_pdb(tp, - tp_arena, + arena, image_ctx.image_data, config, link_ctx.symtab, diff --git a/src/linker/lnk.h b/src/linker/lnk.h index e29eb645..2502a31a 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -103,12 +103,12 @@ typedef struct { LNK_SymbolTable *symtab; LNK_SectionTable *sectab; - LNK_SectionContrib *null_sc; - LNK_SymbolTableFixupArray *obj_symtab_fixups; - U64 function_pad_min; - U64 default_align; U64 objs_count; LNK_Obj **objs; + U64 function_pad_min; + U64 default_align; + LNK_SectionContrib *null_sc; + LNK_SymbolTableFixupArray *obj_symtab_fixups; LNK_SectionContrib ***sect_map; HashTable *contribs_ht; LNK_SectionArray image_sects; @@ -125,10 +125,11 @@ typedef struct LNK_SectionContribChunk **chunks; } sort_contribs; struct { - B8 **was_symbol_patched; - LNK_Section *common_block_sect; - Rng1U64 *ranges; - LNK_CommonBlockContrib *common_block_contribs; + B8 **was_symbol_patched; + LNK_Section *common_block_sect; + Rng1U64 *ranges; + LNK_CommonBlockContrib *common_block_contribs; + COFF_SymbolValueInterpType fixup_type; } patch_symtabs; } u; } LNK_BuildImageTask; diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 98f8e08a..3dd6d0e5 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -226,7 +226,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) } // - // Extract obj features from compile symbol in .debug$S + // extract obj features from compile symbol in .debug$S // B8 hotpatch = 0; if (header.machine == COFF_MachineType_X64) { diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index da34ed4c..c2313d23 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -171,6 +171,7 @@ lnk_can_replace_symbol(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) } // weak vs weak else if (dst_interp == COFF_SymbolValueInterp_Weak && src_interp == COFF_SymbolValueInterp_Weak) { + can_replace = src->u.defined.obj->input_idx < dst->u.defined.obj->input_idx; } // weak vs abs else if (dst_interp == COFF_SymbolValueInterp_Weak && src_interp == COFF_SymbolValueInterp_Abs) { @@ -520,6 +521,12 @@ lnk_symbol_table_push_alt_name(LNK_SymbolTable *symtab, LNK_Obj *obj, String8 fr } } +internal COFF_ParsedSymbol +lnk_parsed_symbol_from_defined(LNK_Symbol *symbol) +{ + return lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); +} + internal ISectOff lnk_sc_from_symbol(LNK_Symbol *symbol) { From d32667546dbb0a0401c2fe605475cd53ebd7f941 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 15 Jul 2025 14:31:49 -0700 Subject: [PATCH 298/372] factor out weak symbol resolution logic and apply it to the symbol table when building link context --- src/coff/coff_parse.c | 6 + src/coff/coff_parse.h | 1 + src/linker/lnk.c | 709 +++++++--------------------------- src/linker/lnk.h | 29 +- src/linker/lnk_obj.c | 21 +- src/linker/lnk_obj.h | 1 + src/linker/lnk_symbol_table.c | 239 ++++++++---- src/linker/lnk_symbol_table.h | 10 + src/torture/torture.c | 227 ++++++++--- 9 files changed, 516 insertions(+), 727 deletions(-) diff --git a/src/coff/coff_parse.c b/src/coff/coff_parse.c index 2f356a90..9d734c48 100644 --- a/src/coff/coff_parse.c +++ b/src/coff/coff_parse.c @@ -279,6 +279,12 @@ coff_interp_symbol(U32 section_number, U32 value, COFF_SymStorageClass storage_c return COFF_SymbolValueInterp_Regular; } +internal COFF_SymbolValueInterpType +coff_interp_from_parsed_symbol(COFF_ParsedSymbol symbol) +{ + return coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); +} + internal void coff_parse_secdef(COFF_ParsedSymbol symbol, B32 is_big_obj, COFF_ComdatSelectType *selection_out, U32 *number_out, U32 *length_out, U32 *check_sum_out) { diff --git a/src/coff/coff_parse.h b/src/coff/coff_parse.h index fb230ae7..92106867 100644 --- a/src/coff/coff_parse.h +++ b/src/coff/coff_parse.h @@ -267,6 +267,7 @@ internal COFF_Symbol32Array coff_symbol_array_from_data (Arena *arena, String8 internal COFF_Symbol16Node *coff_symbol16_list_push(Arena *arena, COFF_Symbol16List *list, COFF_Symbol16 symbol); internal COFF_SymbolValueInterpType coff_interp_symbol(U32 section_number, U32 value, COFF_SymStorageClass storage_class); +internal COFF_SymbolValueInterpType coff_interp_from_parsed_symbol(COFF_ParsedSymbol symbol); internal void coff_parse_secdef(COFF_ParsedSymbol symbol, B32 is_big_obj, COFF_ComdatSelectType *selection_out, U32 *number_out, U32 *length_out, U32 *check_sum_out); internal COFF_SymbolWeakExt * coff_parse_weak_tag(COFF_ParsedSymbol symbol, B32 is_big_obj); diff --git a/src/linker/lnk.c b/src/linker/lnk.c index b66ed10c..a62701c4 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2189,6 +2189,9 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) break; } + // pass over symbol table and replace weak symbols without a strong definition with fallback definitions + lnk_finalize_weak_symbols(tp, symtab); + // log { if (lnk_get_log_status(LNK_Log_InputObj)) { @@ -2207,7 +2210,6 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } exit:; - LNK_LinkContext link_ctx = {0}; link_ctx.symtab = symtab; link_ctx.objs_count = obj_list.count; @@ -2223,13 +2225,6 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) #undef state_list_pop } -internal LNK_SymbolTableFixup * -lnk_bsearch_symbol_table_fixup_array(LNK_SymbolTableFixupArray array, U64 symbol_idx) -{ - NotImplemented; - return 0; -} - internal THREAD_POOL_TASK_FUNC(lnk_remove_associative_sections_task) { @@ -2426,214 +2421,51 @@ THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_contribs_task) scratch_end(scratch); } -internal LNK_SymbolTableFixup * -lnk_symbol_table_fixup_list_push(Arena *arena, LNK_SymbolTableFixupList *list) +internal B32 +lnk_resolve_symbol(LNK_SymbolTable *symtab, LNK_SymbolDefined symbol, LNK_SymbolDefined *symbol_out) { - LNK_SymbolTableFixupNode *node = push_array(arena, LNK_SymbolTableFixupNode, 1); - SLLQueuePush(list->first, list->last, node); - list->count += 1; - return &node->data; -} - -internal LNK_SymbolTableFixupArray -lnk_array_from_symbol_table_fixup_list(Arena *arena, LNK_SymbolTableFixupList list) -{ - LNK_SymbolTableFixupArray result = {0}; - result.v = push_array(arena, LNK_SymbolTableFixup, list.count); - for (LNK_SymbolTableFixupNode *n = list.first; n != 0; n = n->next) { - result.v[result.count++] = n->data; - } - return result; -} - -internal -THREAD_POOL_TASK_FUNC(lnk_gather_symtab_fixups_task) -{ - Temp scratch = scratch_begin(&arena, 1); - - LNK_BuildImageTask *task = raw_task; - U64 obj_idx = task_id; - LNK_Obj *obj = task->objs[task_id]; - - ProfBeginV("%S", obj->path); - - LNK_SymbolTableFixupList fixups = {0}; - - HashTable *visited_symbols_ht = hash_table_init(scratch.arena, 32); - struct LookupLocation { struct LookupLocation *next; LNK_Obj *obj; U64 symbol_idx; }; - struct LookupLocation *lookup_first = 0, *lookup_last = 0, *lookup_free_list = 0; - - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - - COFF_ParsedSymbol fixup_symbol = symbol; - COFF_SymbolValueInterpType fixup_interp = interp; - - for (String8 lookup_name = symbol.name; fixup_interp == COFF_SymbolValueInterp_Weak;) { - // search external symbol table for definition - LNK_Symbol *defn_symbol = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, lookup_name); - COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_defined(defn_symbol); - COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_parsed.section_number, defn_parsed.value, defn_parsed.storage_class); - - // was weak symbol replaced by strong symbol? - if (defn_interp != COFF_SymbolValueInterp_Weak) { - fixup_interp = defn_interp; - fixup_symbol = defn_parsed; - break; - } - - // strong symbol not found, fallback to tag symbol - COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(defn_parsed, defn_symbol->u.defined.obj->header.is_big_obj); - COFF_ParsedSymbol tag_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn_symbol->u.defined.obj, weak_ext->tag_index); - COFF_SymbolValueInterpType tag_interp = coff_interp_symbol(tag_parsed.section_number, tag_parsed.value, tag_parsed.storage_class); - - // validate tag symbol - if (tag_interp == COFF_SymbolValueInterp_Weak) { - Assert(!"TODO: report that tag symbol must not be weak"); - break; - } - - // tag is a resolved symbol - if (tag_interp != COFF_SymbolValueInterp_Undefined) { - fixup_interp = tag_interp; - fixup_symbol = tag_parsed; - break; - } - - // guard against self-referencing weak symbols - struct LookupLocation *was_visited = 0; - hash_table_search_string_raw(visited_symbols_ht, tag_parsed.name, &was_visited); - if (was_visited) { - Temp temp = temp_begin(scratch.arena); - - String8List list = {0}; - for (struct LookupLocation *l = lookup_first; l != 0; l = l->next) { - COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(l->obj, l->symbol_idx); - str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx) =>", l->obj->path, loc_symbol.name, l->symbol_idx); - } - COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(was_visited->obj, was_visited->symbol_idx); - str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx)", was_visited->obj->path, loc_symbol.name, was_visited->symbol_idx); - - String8 loc_string = str8_list_join(temp.arena, &list, &(StringJoin){.sep = str8_lit("\n") }); - lnk_error_obj(LNK_Error_WeakCycle, obj, "unable to resolve cyclic symbol %S; ref chain:\n%S", symbol.name, loc_string); - - temp_end(temp); - break; - } - - // alloc lookup location - struct LookupLocation *loc = lookup_free_list; - if (lookup_free_list) { SLLStackPop(lookup_free_list); } - else { loc = push_array(scratch.arena, struct LookupLocation, 1); } - - // fill out lookup location - loc->obj = defn_symbol->u.defined.obj; - loc->symbol_idx = symbol_idx; - SLLQueuePush(lookup_first, lookup_last, loc); - hash_table_push_string_raw(scratch.arena, visited_symbols_ht, lookup_name, loc); - - // follow undefined tag symbol - lookup_name = tag_parsed.name; - } - - if (fixup_interp == COFF_SymbolValueInterp_Common) { - LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, fixup_symbol.name); - if (defn) { - LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); - fixup->idx = symbol_idx; - fixup->obj_idx = defn->u.defined.obj->input_idx; - fixup->obj_symbol_idx = defn->u.defined.symbol_idx; - } - } else if (fixup_interp == COFF_SymbolValueInterp_Abs) { - if (fixup_symbol.storage_class == COFF_SymStorageClass_External) { - LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, fixup_symbol.name); - - if (defn == 0) { continue; } - if (defn->u.defined.obj == obj && defn->u.defined.symbol_idx == symbol_idx) { continue; } - - LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); - fixup->idx = symbol_idx; - fixup->obj_idx = defn->u.defined.obj->input_idx; - fixup->obj_symbol_idx = defn->u.defined.symbol_idx; - } - } else if (fixup_interp == COFF_SymbolValueInterp_Undefined) { - if (symbol.storage_class == COFF_SymStorageClass_External) { - LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); - if (defn) { - LNK_SymbolTableFixup *fixup = lnk_symbol_table_fixup_list_push(scratch.arena, &fixups); - fixup->idx = symbol_idx; - fixup->obj_idx = defn->u.defined.obj->input_idx; - fixup->obj_symbol_idx = defn->u.defined.symbol_idx; - } - } - } - } - - task->obj_symtab_fixups[obj_idx] = lnk_array_from_symbol_table_fixup_list(arena, fixups); - - ProfEnd(); - scratch_end(scratch); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_apply_symtab_fixups_task) -{ - LNK_BuildImageTask *task = raw_task; - U64 obj_idx = task_id; - LNK_Obj *obj = task->objs[obj_idx]; - LNK_SymbolTableFixupArray fixups = task->obj_symtab_fixups[obj_idx]; - - ProfBeginV("%S\n", obj->path); - for EachIndex(fixup_idx, fixups.count) { - LNK_SymbolTableFixup *fixup = &fixups.v[fixup_idx]; - - COFF_ParsedSymbol fixup_dst = lnk_parsed_symbol_from_coff_symbol_idx(obj, fixup->idx); - COFF_SymbolValueInterpType fixup_dst_type = coff_interp_symbol(fixup_dst.section_number, fixup_dst.value, fixup_dst.storage_class); - if (task->u.patch_symtabs.fixup_type != fixup_dst_type) { continue; } - - LNK_Obj *fixup_obj_src = task->objs[fixup->obj_idx]; - COFF_ParsedSymbol fixup_src = lnk_parsed_symbol_from_coff_symbol_idx(fixup_obj_src, fixup->obj_symbol_idx); - COFF_SymbolValueInterpType fixup_type = coff_interp_symbol(fixup_src.section_number, fixup_src.value, fixup_src.storage_class); - - if (fixup_type == COFF_SymbolValueInterp_Regular) { - if (obj->header.is_big_obj) { - COFF_Symbol32 *symbol32 = fixup_dst.raw_symbol; - symbol32->section_number = fixup_src.section_number; - symbol32->value = safe_cast_u32(fixup_src.value); - symbol32->type = fixup_src.type; - symbol32->storage_class = COFF_SymStorageClass_Static; - } else { - COFF_Symbol16 *symbol16 = fixup_dst.raw_symbol; - symbol16->section_number = safe_cast_u16(fixup_src.section_number); - symbol16->value = safe_cast_u32(fixup_src.value); - symbol16->type = fixup_src.type; - symbol16->storage_class = COFF_SymStorageClass_Static; - } - } else if (fixup_type == COFF_SymbolValueInterp_Abs) { - if (obj->header.is_big_obj) { - COFF_Symbol32 *symbol32 = fixup_dst.raw_symbol; - symbol32->section_number = COFF_Symbol_AbsSection32; - symbol32->value = safe_cast_u32(fixup_src.value); - symbol32->type = fixup_src.type; - symbol32->storage_class = COFF_SymStorageClass_Static; - } else { - COFF_Symbol16 *symbol16 = fixup_dst.raw_symbol; - symbol16->section_number = COFF_Symbol_AbsSection16; - symbol16->value = safe_cast_u32(fixup_src.value); - symbol16->type = fixup_src.type; - symbol16->storage_class = COFF_SymStorageClass_Static; - } + B32 is_resolved = 1; + COFF_ParsedSymbol symbol_parsed = lnk_parsed_symbol_from_coff_symbol_idx(symbol.obj, symbol.symbol_idx); + COFF_SymbolValueInterpType symbol_interp = coff_interp_symbol(symbol_parsed.section_number, symbol_parsed.value, symbol_parsed.storage_class); + switch (symbol_interp) { + case COFF_SymbolValueInterp_Regular: { *symbol_out = symbol; } break; + case COFF_SymbolValueInterp_Weak: { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol_parsed.name); + COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_parsed.section_number, defn_parsed.value, defn_parsed.storage_class); + if (defn_interp != COFF_SymbolValueInterp_Undefined) { + *symbol_out = defn->u.defined; } else { - InvalidPath; + is_resolved = 0; } + } break; + case COFF_SymbolValueInterp_Undefined: { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol_parsed.name); + if (defn) { + *symbol_out = defn->u.defined; + } else { + is_resolved = 0; + } + } break; + case COFF_SymbolValueInterp_Common: { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol_parsed.name); + *symbol_out = defn->u.defined; + } break; + case COFF_SymbolValueInterp_Abs: { + if (symbol_parsed.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol_parsed.name); + *symbol_out = defn->u.defined; + } else { + *symbol_out = symbol; + } + } break; + case COFF_SymbolValueInterp_Debug: { *symbol_out = symbol; } break; } - ProfEnd(); + return is_resolved; } internal void -lnk_gc_sections(U64 objs_count, LNK_Obj **objs, LNK_SectionContrib ***sect_map, LNK_SymbolTableFixupArray *obj_symtab_fixups, U64 roots_count, LNK_Symbol **roots) +lnk_gc_sections(LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs, LNK_SectionContrib ***sect_map, U64 roots_count, LNK_Symbol **roots) { Temp scratch = scratch_begin(0,0); @@ -2726,10 +2558,13 @@ lnk_gc_sections(U64 objs_count, LNK_Obj **objs, LNK_SectionContrib ***sect_map, for EachIndex(reloc_idx, t->relocs.count) { COFF_Reloc *reloc = &t->relocs.v[reloc_idx]; - LNK_SymbolTableFixup *fixup = lnk_bsearch_symbol_table_fixup_array(obj_symtab_fixups[t->obj->input_idx], reloc->isymbol); - LNK_Obj *reloc_obj; U32 reloc_symbol_idx; - if (fixup == 0) { reloc_obj = t->obj, reloc_symbol_idx = reloc->isymbol; } - else { reloc_obj = objs[fixup->obj_idx]; reloc_symbol_idx = fixup->obj_symbol_idx; } + LNK_SymbolDefined symbol_to_resolve = { .obj = t->obj, .symbol_idx = reloc->isymbol }; + LNK_SymbolDefined resolved_symbol = {0}; + B32 is_symbol_resolved = lnk_resolve_symbol(symtab, symbol_to_resolve, &resolved_symbol); + if ( ! is_symbol_resolved) { continue; } + + LNK_Obj *reloc_obj = resolved_symbol.obj; + U32 reloc_symbol_idx = resolved_symbol.symbol_idx; COFF_ParsedSymbol reloc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(reloc_obj, reloc_symbol_idx); COFF_SymbolValueInterpType reloc_symbol_interp = coff_interp_symbol(reloc_symbol.section_number, reloc_symbol.value, reloc_symbol.storage_class); @@ -2905,7 +2740,7 @@ THREAD_POOL_TASK_FUNC(lnk_patch_common_block_leaders_task) ProfBeginFunction(); LNK_BuildImageTask *task = raw_task; - Rng1U64 contrib_range = task->u.patch_symtabs.ranges[task_id]; + Rng1U64 contrib_range = task->u.patch_symtabs.common_block_ranges[task_id]; for (U64 contrib_idx = contrib_range.min; contrib_idx < contrib_range.max; contrib_idx += 1) { LNK_CommonBlockContrib *contrib = &task->u.patch_symtabs.common_block_contribs[contrib_idx]; @@ -3010,275 +2845,76 @@ THREAD_POOL_TASK_FUNC(lnk_patch_regular_symbols_task) ProfEnd(); } -internal -THREAD_POOL_TASK_FUNC(lnk_patch_abs_symbols_task) +internal void +lnk_patch_obj_symtab(LNK_SymbolTable *symtab, LNK_Obj *obj, B8 *was_symbol_patched, COFF_SymbolValueInterpType fixup_type) { - LNK_BuildImageTask *task = raw_task; - U64 obj_idx = task_id; - LNK_Obj *obj = task->objs[obj_idx]; + ProfBeginV("%S\n", obj->path); - ProfBeginV("Patch Absolute Symbols [%S]", obj->path); - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + COFF_ParsedSymbol fixup_dst; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + fixup_dst.aux_symbol_count)) { + fixup_dst = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + if (was_symbol_patched[symbol_idx]) { continue; } - if (interp == COFF_SymbolValueInterp_Abs && symbol.storage_class == COFF_SymStorageClass_External) { - LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); + COFF_SymbolValueInterpType fixup_dst_type = coff_interp_symbol(fixup_dst.section_number, fixup_dst.value, fixup_dst.storage_class); + if (fixup_type != fixup_dst_type) { continue; } - if (defn == 0) { - continue; - } - if (defn->u.defined.obj == obj && defn->u.defined.symbol_idx == symbol_idx) { - continue; - } + LNK_SymbolDefined symbol_to_resolve = { .obj = obj, .symbol_idx = symbol_idx }; + LNK_SymbolDefined fixup_symbol = {0}; + B32 is_resolved = lnk_resolve_symbol(symtab, symbol_to_resolve, &fixup_symbol); + if (is_resolved) { + COFF_ParsedSymbol fixup_src = lnk_parsed_symbol_from_coff_symbol_idx(fixup_symbol.obj, fixup_symbol.symbol_idx); + COFF_SymbolValueInterpType fixup_type = coff_interp_symbol(fixup_src.section_number, fixup_src.value, fixup_src.storage_class); + AssertAlways(fixup_type == COFF_SymbolValueInterp_Regular || + fixup_type == COFF_SymbolValueInterp_Abs || + fixup_type == COFF_SymbolValueInterp_Common); - COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_symbol.section_number, defn_symbol.value, defn_symbol.storage_class); - if (defn_interp == COFF_SymbolValueInterp_Regular) { - if (defn->u.defined.obj->header.is_big_obj) { - COFF_Symbol32 *symbol32 = symbol.raw_symbol; - symbol32->section_number = defn_symbol.section_number; - symbol32->value = defn_symbol.value; - symbol32->type = defn_symbol.type; - symbol32->storage_class = COFF_SymStorageClass_Static; - } else { - COFF_Symbol16 *symbol16 = symbol.raw_symbol; - symbol16->section_number = defn_symbol.section_number; - symbol16->value = defn_symbol.value; - symbol16->type = defn_symbol.type; - symbol16->storage_class = COFF_SymStorageClass_Static; - } + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = fixup_dst.raw_symbol; + symbol32->section_number = fixup_src.section_number; + symbol32->value = fixup_src.value; + symbol32->type = fixup_src.type; + symbol32->storage_class = COFF_SymStorageClass_Static; } else { - InvalidPath; + COFF_Symbol16 *symbol16 = fixup_dst.raw_symbol; + symbol16->section_number = (U16)fixup_src.section_number; + symbol16->value = fixup_src.value; + symbol16->type = fixup_src.type; + symbol16->storage_class = COFF_SymStorageClass_Static; } + + was_symbol_patched[symbol_idx] = 1; } } + ProfEnd(); } -internal void -lnk_patch_weak_external_symbol(B32 is_big_obj, void *symbol, COFF_ParsedSymbol parsed_symbol) +internal +THREAD_POOL_TASK_FUNC(lnk_patch_common_symbols_task) { - COFF_SymbolValueInterpType parsed_symbol_interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); - switch (parsed_symbol_interp) { - case COFF_SymbolValueInterp_Regular: { - if (is_big_obj) { - COFF_Symbol32 *symbol32 = symbol; - symbol32->section_number = parsed_symbol.section_number; - symbol32->value = parsed_symbol.value; - symbol32->type = parsed_symbol.type; - symbol32->storage_class = COFF_SymStorageClass_Static; - } else { - COFF_Symbol16 *symbol16 = symbol; - symbol16->section_number = safe_cast_u16(parsed_symbol.section_number); - symbol16->value = parsed_symbol.value; - symbol16->type = parsed_symbol.type; - symbol16->storage_class = COFF_SymStorageClass_Static; - } - } break; - case COFF_SymbolValueInterp_Common: { - InvalidPath; - } break; - case COFF_SymbolValueInterp_Abs: { - if (is_big_obj) { - COFF_Symbol32 *symbol32 = symbol; - symbol32->section_number = COFF_Symbol_AbsSection32; - symbol32->value = parsed_symbol.value; - symbol32->type = parsed_symbol.type; - symbol32->storage_class = COFF_SymStorageClass_Static; - } else { - COFF_Symbol16 *symbol16 = symbol; - symbol16->section_number = COFF_Symbol_AbsSection16; - symbol16->value = parsed_symbol.value; - symbol16->type = parsed_symbol.type; - symbol16->storage_class = COFF_SymStorageClass_Static; - } - } break; - case COFF_SymbolValueInterp_Weak: - case COFF_SymbolValueInterp_Debug: - case COFF_SymbolValueInterp_Undefined: { - InvalidPath; - } break; - default: { NotImplemented; } break; - } + LNK_BuildImageTask *task = raw_task; + lnk_patch_obj_symtab(task->symtab, task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Common); +} + +internal +THREAD_POOL_TASK_FUNC(lnk_patch_abs_symbols_task) +{ + LNK_BuildImageTask *task = raw_task; + lnk_patch_obj_symtab(task->symtab, task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Abs); } internal THREAD_POOL_TASK_FUNC(lnk_patch_undefined_symbols_task) { - LNK_BuildImageTask *task = raw_task; - U64 obj_idx = task_id; - LNK_Obj *obj = task->objs[obj_idx]; - - ProfBeginV("Patch Undefined Symbols [%S]", obj->path); - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Undefined) { - if (symbol.storage_class == COFF_SymStorageClass_External) { - LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); - if (defn) { - COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - - if (defn_symbol.storage_class == COFF_SymStorageClass_WeakExternal) { - continue; - } - - lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_symbol); - } else { - // TODO: collect unresolved undefined - } - } - } - } - ProfEnd(); + LNK_BuildImageTask *task = raw_task; + lnk_patch_obj_symtab(task->symtab, task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Undefined); } internal -THREAD_POOL_TASK_FUNC(lnk_patch_weak_symbols_with_strong_definition_task) +THREAD_POOL_TASK_FUNC(lnk_patch_weak_symbols_task) { - LNK_BuildImageTask *task = raw_task; - U64 obj_idx = task_id; - LNK_Obj *obj = task->objs[obj_idx]; - - ProfBeginV("Patch Weak Symbols [%S]", obj->path); - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Weak) { - LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); - if (defn) { - COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_symbol.section_number, defn_symbol.value, defn_symbol.storage_class); - if (defn_interp != COFF_SymbolValueInterp_Weak) { - lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_symbol); - } - } - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_patch_weak_symbols_with_fallback_definition_task) -{ - Temp scratch = scratch_begin(&arena, 1); - - LNK_BuildImageTask *task = raw_task; - U64 obj_idx = task_id; - LNK_Obj *obj = task->objs[obj_idx]; - - HashTable *visited_symbols_ht = hash_table_init(scratch.arena, 32); - struct LookupLocation { - struct LookupLocation *next; - LNK_Obj *obj; - U64 symbol_idx; - }; - struct LookupLocation *lookup_first = 0; - struct LookupLocation *lookup_last = 0; - struct LookupLocation *lookup_free_list = 0; - - ProfBegin("Patch Weak Symbols [%S]", obj->path); - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Undefined && symbol.storage_class == COFF_SymStorageClass_External) { - String8 lookup_name = symbol.name; - LNK_Obj *lookup_obj = obj; - U64 lookup_symbol_idx = symbol_idx; - for (;;) { - // lookup definition - LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, lookup_name); - if (defn == 0) { - break; - } - - // not external symbol? patch and move to next symbol - COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - if (defn_parsed.storage_class != COFF_SymStorageClass_WeakExternal) { - lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_parsed); - break; - } - - // check against cyclic refs - struct LookupLocation *was_visited = 0; - hash_table_search_string_raw(visited_symbols_ht, lookup_name, &was_visited); - if (was_visited != 0) { - Temp temp = temp_begin(scratch.arena); - - String8List list = {0}; - for (struct LookupLocation *l = lookup_first; l != 0; l = l->next) { - COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(l->obj, l->symbol_idx); - str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx) =>", l->obj->path, loc_symbol.name, l->symbol_idx); - } - { - COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(was_visited->obj, was_visited->symbol_idx); - str8_list_pushf(temp.arena, &list, "\t%S Symbol %S (No.%#llx)", was_visited->obj->path, loc_symbol.name, was_visited->symbol_idx); - } - - String8 loc_string = str8_list_join(temp.arena, &list, &(StringJoin){.sep = str8_lit("\n") }); - lnk_error_obj(LNK_Error_WeakCycle, obj, "unable to resolve cyclic symbol %S; ref chain:\n%S", symbol.name, loc_string); - - temp_end(temp); - break; - } - struct LookupLocation *loc = lookup_free_list; - if (lookup_free_list) { - SLLStackPop(lookup_free_list); - } else { - loc = push_array(scratch.arena, struct LookupLocation, 1); - } - loc->obj = lookup_obj; - loc->symbol_idx = symbol_idx; - SLLQueuePush(lookup_first, lookup_last, loc); - hash_table_push_string_raw(scratch.arena, visited_symbols_ht, lookup_name, loc); - - // fallback to weak tag for definition - COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(defn_parsed, defn->u.defined.obj->header.is_big_obj); - COFF_ParsedSymbol parsed_tag = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, weak_ext->tag_index); - lookup_name = parsed_tag.name; - lookup_obj = defn->u.defined.obj; - lookup_symbol_idx = weak_ext->tag_index; - } - - hash_table_purge(visited_symbols_ht); - lookup_free_list = lookup_first; - lookup_first = 0; - lookup_last = 0; - } - } - ProfEnd(); - - scratch_end(scratch); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_patch_weak_symbols_with_defined_tags_task) -{ - LNK_BuildImageTask *task = raw_task; - U64 obj_idx = task_id; - LNK_Obj *obj = task->objs[obj_idx]; - - ProfBeginV("Patch Weak Symbols [%S]", obj->path); - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Weak) { - COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(symbol, obj->header.is_big_obj); - COFF_ParsedSymbol defn_symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, weak_ext->tag_index); - COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_symbol.section_number, defn_symbol.value, defn_symbol.storage_class); - if (defn_interp != COFF_SymbolValueInterp_Undefined) { - lnk_patch_weak_external_symbol(obj->header.is_big_obj, symbol.raw_symbol, defn_symbol); - } - } - } - ProfEnd(); + LNK_BuildImageTask *task = raw_task; + lnk_patch_obj_symtab(task->symtab, task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Weak); } internal U64 @@ -4407,14 +4043,15 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT LNK_Section *common_block_sect = lnk_section_table_search(sectab, str8_lit(".bss"), PE_BSS_SECTION_FLAGS); - LNK_BuildImageTask task = {0}; - task.symtab = symtab; - task.sectab = sectab; - task.objs_count = objs_count; - task.objs = objs; - task.function_pad_min = config->function_pad_min; - task.default_align = coff_default_align_from_machine(config->machine); - task.null_sc = push_array(arena->v[0], LNK_SectionContrib, 1); + LNK_BuildImageTask task = { + .symtab = symtab, + .sectab = sectab, + .objs_count = objs_count, + .objs = objs, + .function_pad_min = config->function_pad_min, + .default_align = coff_default_align_from_machine(config->machine), + .null_sc = push_array(arena->v[0], LNK_SectionContrib, 1), + }; tp_for_parallel(tp, 0, objs_count, lnk_remove_associative_sections_task, &task); @@ -4427,9 +4064,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT for EachIndex(worker_id, tp->worker_count) { task.u.gather_sects.defns[worker_id] = hash_table_init(arena->v[0], 128); } ProfEnd(); - ProfBegin("Gather Section Definitions"); - tp_for_parallel(tp, arena, objs_count, lnk_gather_section_definitions_task, &task); - ProfEnd(); + tp_for_parallel_prof(tp, arena, objs_count, lnk_gather_section_definitions_task, &task, "Gather Section Definitions"); ProfBegin("Merge Section Definitions Hash Tables"); for (U64 worker_idx = 1; worker_idx < tp->worker_count; worker_idx += 1) { @@ -4519,45 +4154,40 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT for EachIndex(obj_idx, objs_count) { task.sect_map[obj_idx] = push_array(scratch.arena, LNK_SectionContrib *, objs[obj_idx]->header.section_count_no_null); } ProfEnd(); - ProfBegin("Gather Section Contribs"); - tp_for_parallel(tp, 0, objs_count, lnk_gather_section_contribs_task, &task); - ProfEnd(); + tp_for_parallel_prof(tp, 0, objs_count, lnk_gather_section_contribs_task, &task, "Gather Section Contribs"); // ensure determinism by sorting section contribs in chunks by input index { ProfBegin("Sort Section Contribs"); - U64 total_chunk_count = 0; - LNK_SectionContribChunk **chunks = 0; + + U64 total_chunk_count = 0; { for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { total_chunk_count += sect_n->data.contribs.chunk_count; } + } + + { U64 cursor = 0; - chunks = push_array(scratch.arena, LNK_SectionContribChunk *, total_chunk_count); + task.u.sort_contribs.chunks = push_array(scratch.arena, LNK_SectionContribChunk *, total_chunk_count); for (LNK_SectionNode *sect_n = sectab->list.first; sect_n != 0; sect_n = sect_n->next) { for (LNK_SectionContribChunk *chunk_n = sect_n->data.contribs.first; chunk_n != 0; chunk_n = chunk_n->next) { - chunks[cursor++] = chunk_n; + task.u.sort_contribs.chunks[cursor++] = chunk_n; } } Assert(cursor == total_chunk_count); } - task.u.sort_contribs.chunks = chunks; + tp_for_parallel(tp, 0, total_chunk_count, lnk_sort_contribs_task, &task); + ProfEnd(); } - ProfBegin("Update Section Map With COMDAT Leader Contribs"); - tp_for_parallel(tp, 0, objs_count, lnk_set_comdat_leaders_contribs_task, &task); - ProfEnd(); - - ProfBegin("Gather Obj Symbol Tables Fixups"); - task.obj_symtab_fixups = push_array(scratch.arena, LNK_SymbolTableFixupArray, objs_count); - tp_for_parallel(tp, arena, objs_count, lnk_gather_symtab_fixups_task, &task); - ProfEnd(); + tp_for_parallel_prof(tp, 0, objs_count, lnk_set_comdat_leaders_contribs_task, &task, "Update Section Map With COMDAT Leader Contribs"); if (config->opt_ref == LNK_SwitchState_Yes) { //LNK_Symbol *entry_point_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, config->entry_point_name); - //lnk_gc_sections(objs_count, objs, task.sect_map, task.obj_symtab_fixups, 1, &entry_point_symbol); + //lnk_gc_sections(symtab, objs_count, objs, task.sect_map, task.obj_symtab_fixups, 1, &entry_point_symbol); } // build common block @@ -4568,10 +4198,8 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT { ProfBegin("Build Common Block"); - ProfBegin("Count Contribs"); task.u.common_block.counts = push_array(scratch.arena, U64, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, lnk_count_common_block_contribs_task, &task); - ProfEnd(); + tp_for_parallel_prof(tp, 0, tp->worker_count, lnk_count_common_block_contribs_task, &task, "Count Contribs"); ProfBegin("Push Contribs"); common_block_contribs_count = sum_array_u64(tp->worker_count, task.u.common_block.counts); @@ -4595,7 +4223,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT U64 common_block_cursor = common_block_sect->vsize; // compute and assign offsets into the common block - for (U64 contrib_idx = 0; contrib_idx < common_block_contribs_count; contrib_idx += 1) { + for EachIndex(contrib_idx, common_block_contribs_count) { LNK_CommonBlockContrib *contrib = &common_block_contribs[contrib_idx]; U32 size = contrib->u.size; U32 align = Min(32, u64_up_to_pow2(size)); // link.exe caps align at 32 bytes @@ -4620,7 +4248,6 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT ProfEnd(); } - // finalize sections layouts { ProfBegin("Finalize Sections Layout"); @@ -4639,9 +4266,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT } if (config->do_function_pad_min == LNK_SwitchState_Yes) { - ProfBegin("Flag Hotpatch Section Contribs"); - tp_for_parallel(tp, arena, objs_count, lnk_flag_hotpatch_contribs_task, &task); - ProfEnd(); + tp_for_parallel_prof(tp, arena, objs_count, lnk_flag_hotpatch_contribs_task, &task, "Flag Hotpatch Section Contribs"); } // assign contribs offsets, sizes, and section indices @@ -4684,39 +4309,29 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT ProfEnd(); } - // patch symbol tables { ProfBegin("Patch Symbol Tables"); Temp temp = temp_begin(scratch.arena); - B8 **was_symbol_patched = push_array(temp.arena, B8 *, objs_count); - for EachIndex(obj_idx, objs_count) { was_symbol_patched[obj_idx] = push_array(temp.arena, B8, objs[obj_idx]->header.symbol_count); } - - task.u.patch_symtabs.was_symbol_patched = was_symbol_patched; + // set up context for patch tasks task.u.patch_symtabs.common_block_sect = common_block_sect; - task.u.patch_symtabs.ranges = tp_divide_work(temp.arena, common_block_contribs_count, tp->worker_count); + task.u.patch_symtabs.common_block_ranges = tp_divide_work(temp.arena, common_block_contribs_count, tp->worker_count); task.u.patch_symtabs.common_block_contribs = common_block_contribs; + task.u.patch_symtabs.was_symbol_patched = push_array(temp.arena, B8 *, objs_count); + for EachIndex(obj_idx, objs_count) { task.u.patch_symtabs.was_symbol_patched[obj_idx] = push_array(temp.arena, B8, objs[obj_idx]->header.symbol_count); } // flag debug symbols to prevent them from being patched in subsequent passes - tp_for_parallel_prof(tp, 0, objs_count, lnk_flag_debug_symbols_task, &task, "Flag Debug Symbols"); - tp_for_parallel_prof(tp, 0, objs_count, lnk_patch_comdat_leaders_task, &task, "Patch COMDAT Leaders"); - tp_for_parallel_prof(tp, 0, tp->worker_count, lnk_patch_common_block_leaders_task, &task, "Patch Common Block Leaders"); - tp_for_parallel_prof(tp, 0, objs_count, lnk_patch_regular_symbols_task, &task, "Patch Regular Symbols"); + tp_for_parallel_prof(tp, 0, objs_count, lnk_flag_debug_symbols_task, &task, "Flag Debug Symbols"); - task.u.patch_symtabs.fixup_type = COFF_SymbolValueInterp_Common; - tp_for_parallel_prof(tp, 0, objs_count, lnk_apply_symtab_fixups_task, &task, "Fixup Common Symbols"); - - task.u.patch_symtabs.fixup_type = COFF_SymbolValueInterp_Abs; - tp_for_parallel_prof(tp, 0, objs_count, lnk_apply_symtab_fixups_task, &task, "Fixup Absolute Symbols"); - - task.u.patch_symtabs.fixup_type = COFF_SymbolValueInterp_Undefined; - tp_for_parallel_prof(tp, 0, objs_count, lnk_apply_symtab_fixups_task, &task, "Fixup Undefined Symbols"); - - task.u.patch_symtabs.fixup_type = COFF_SymbolValueInterp_Weak; - tp_for_parallel_prof(tp, 0, objs_count, lnk_apply_symtab_fixups_task, &task, "Fixup Weak Symbols"); - - task.u.patch_symtabs.fixup_type = COFF_SymbolValueInterp_Undefined; - tp_for_parallel_prof(tp, 0, objs_count, lnk_apply_symtab_fixups_task, &task, "Fixup Undefined Symbols"); + // patch symbols + tp_for_parallel_prof(tp, 0, objs_count, lnk_patch_comdat_leaders_task, &task, "COMDAT Leaders" ); + tp_for_parallel_prof(tp, 0, tp->worker_count, lnk_patch_common_block_leaders_task, &task, "Common Block Leaders"); + tp_for_parallel_prof(tp, 0, objs_count, lnk_patch_regular_symbols_task, &task, "Regular Symbols" ); + tp_for_parallel_prof(tp, 0, objs_count, lnk_patch_common_symbols_task, &task, "Common Symbols" ); + tp_for_parallel_prof(tp, 0, objs_count, lnk_patch_abs_symbols_task, &task, "Absolute Symbols" ); + tp_for_parallel_prof(tp, 0, objs_count, lnk_patch_undefined_symbols_task, &task, "Undefined Symbols" ); + tp_for_parallel_prof(tp, 0, objs_count, lnk_patch_weak_symbols_task, &task, "Weak Symbols" ); + tp_for_parallel_prof(tp, 0, objs_count, lnk_patch_undefined_symbols_task, &task, "Undefined Symbols" ); temp_end(temp); ProfEnd(); @@ -4725,17 +4340,11 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT // section list -> array task.image_sects = lnk_section_array_from_list(scratch.arena, sectab->list); + // assign virtual offsets to sections expected_image_header_size = lnk_compute_win32_image_header_size(config, task.image_sects.count); - - // assign virtual space U64 voff_cursor = AlignPow2(expected_image_header_size + sizeof(COFF_SectionHeader), config->sect_align); - for (U64 i = 0; i < task.image_sects.count; i += 1) { - lnk_assign_section_virtual_space(task.image_sects.v[i], config->sect_align, &voff_cursor); - } - - ProfBegin("Patch Virtual Offsets and SIzes in Obj Section Headers"); - tp_for_parallel(tp, 0, task.objs_count, lnk_patch_virtual_offsets_and_sizes_in_obj_section_headers_task, &task); - ProfEnd(); + for EachIndex(sect_idx, task.image_sects.count) { lnk_assign_section_virtual_space(task.image_sects.v[sect_idx], config->sect_align, &voff_cursor); } + tp_for_parallel_prof(tp, 0, task.objs_count, lnk_patch_virtual_offsets_and_sizes_in_obj_section_headers_task, &task, "Patch Virtual Offsets and Sizes in Obj Section Headers"); // build base relocs if (~config->flags & LNK_ConfigFlag_Fixed) { @@ -4758,35 +4367,25 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT } } - // assign file space + // assign file offsets to sections U64 foff_cursor = AlignPow2(expected_image_header_size, config->file_align); - for (U64 i = 0; i < task.image_sects.count; i += 1) { - lnk_assign_section_file_space(task.image_sects.v[i], &foff_cursor); - } - - ProfBegin("Patch File Offsets And Sizes In Section Headers"); - tp_for_parallel(tp, 0, task.objs_count, lnk_patch_file_offsets_and_sizes_in_obj_section_headers_task, &task); - ProfEnd(); + for EachIndex(sect_idx, task.image_sects.count) { lnk_assign_section_file_space(task.image_sects.v[sect_idx], &foff_cursor); } + tp_for_parallel_prof(tp, 0, task.objs_count, lnk_patch_file_offsets_and_sizes_in_obj_section_headers_task, &task, "Patch File Offsets And Sizes In Section Headers"); } // build win32 image header { - String8List image_header_data = lnk_build_win32_header(sectab->arena, symtab, config, task.image_sects, AlignPow2(expected_image_header_size, config->file_align)); - + String8List image_header_data = lnk_build_win32_header(sectab->arena, symtab, config, task.image_sects, AlignPow2(expected_image_header_size, config->file_align)); LNK_Section *image_header_sect = lnk_section_table_push(sectab, str8_lit(".rad_linker_image_header_section"), 0); LNK_SectionContribChunk *image_header_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &image_header_sect->contribs, 1, str8_zero()); LNK_SectionContrib *image_header_sc = lnk_section_contrib_chunk_push(image_header_sc_chunk, 1); - image_header_sc->align = config->file_align; image_header_sc->first_data_node = *image_header_data.first; image_header_sc->last_data_node = image_header_data.last; - lnk_finalize_section_layout(image_header_sect, config->file_align, config->function_pad_min); } - ProfBegin("Patch Section Symbols"); - tp_for_parallel(tp, 0, task.objs_count, lnk_patch_section_symbols_task, &task); - ProfEnd(); + tp_for_parallel_prof(tp, 0, task.objs_count, lnk_patch_section_symbols_task, &task, "Patch Section Symbols"); String8 image_data = {0}; { @@ -4795,14 +4394,12 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT LNK_SectionArray sects = lnk_section_array_from_list(scratch.arena, sectab->list); U64 image_size = 0; - for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { - image_size += sects.v[sect_idx]->fsize; - } + for EachIndex(sect_idx, sects.count) { image_size += sects.v[sect_idx]->fsize; } image_data.size = image_size; image_data.str = push_array_no_zero(arena->v[0], U8, image_size); - for (U64 sect_idx = 0; sect_idx < sects.count; sect_idx += 1) { + for EachIndex(sect_idx, sects.count) { LNK_Section *sect = sects.v[sect_idx]; if (~sect->flags & COFF_SectionFlag_CntUninitializedData) { @@ -4815,7 +4412,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT // copy section contribution U64 prev_sc_opl = 0; for (LNK_SectionContribChunk *sc_chunk = sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { - for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { + for EachIndex(sc_idx, sc_chunk->count) { LNK_SectionContrib *sc = sc_chunk->v[sc_idx]; // fill align bytes @@ -4855,14 +4452,8 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT // patch relocs { - ProfBegin("Patch Relocs"); - LNK_ObjRelocPatcher task = {0}; - task.image_data = image_data; - task.objs = objs; - task.image_base = pe.image_base; - task.image_section_table = image_section_table; - tp_for_parallel(tp, 0, objs_count, lnk_obj_reloc_patcher, &task); - ProfEnd(); + LNK_ObjRelocPatcher task = { .image_data = image_data, .objs = objs, .image_base = pe.image_base, .image_section_table = image_section_table }; + tp_for_parallel_prof(tp, 0, objs_count, lnk_obj_reloc_patcher, &task, "Patch Relocs"); } // patch load config @@ -4964,7 +4555,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT U64 tls_align = 0; LNK_Section *tls_sect = lnk_section_table_search(sectab, str8_lit(".tls"), PE_TLS_SECTION_FLAGS); for (LNK_SectionContribChunk *sc_chunk = tls_sect->contribs.first; sc_chunk != 0; sc_chunk = sc_chunk->next) { - for (U64 sc_idx = 0; sc_idx < sc_chunk->count; sc_idx += 1) { + for EachIndex (sc_idx, sc_chunk->count) { Assert(IsPow2(sc_chunk->v[sc_idx]->align)); tls_align = Max(tls_align, sc_chunk->v[sc_idx]->align); } diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 2502a31a..206847e5 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -25,32 +25,6 @@ typedef struct LNK_ImageContext LNK_SectionTable *sectab; } LNK_ImageContext; -typedef struct LNK_SymbolTableFixup -{ - U32 idx; - U32 obj_idx; - U32 obj_symbol_idx; -} LNK_SymbolTableFixup; - -typedef struct LNK_SymbolTableFixupNode -{ - LNK_SymbolTableFixup data; - struct LNK_SymbolTableFixupNode *next; -} LNK_SymbolTableFixupNode; - -typedef struct LNK_SymbolTableFixupList -{ - U64 count; - LNK_SymbolTableFixupNode *first; - LNK_SymbolTableFixupNode *last; -} LNK_SymbolTableFixupList; - -typedef struct LNK_SymbolTableFixupArray -{ - U64 count; - LNK_SymbolTableFixup *v; -} LNK_SymbolTableFixupArray; - typedef struct LNK_SectionDefinition { String8 name; @@ -108,7 +82,6 @@ typedef struct U64 function_pad_min; U64 default_align; LNK_SectionContrib *null_sc; - LNK_SymbolTableFixupArray *obj_symtab_fixups; LNK_SectionContrib ***sect_map; HashTable *contribs_ht; LNK_SectionArray image_sects; @@ -127,7 +100,7 @@ typedef struct struct { B8 **was_symbol_patched; LNK_Section *common_block_sect; - Rng1U64 *ranges; + Rng1U64 *common_block_ranges; LNK_CommonBlockContrib *common_block_contribs; COFF_SymbolValueInterpType fixup_type; } patch_symtabs; diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 3dd6d0e5..0d161af7 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -352,7 +352,6 @@ THREAD_POOL_TASK_FUNC(lnk_input_coff_symbol_table) case COFF_SymbolValueInterp_Weak: { LNK_Symbol *defn = lnk_make_defined_symbol(arena, symbol.name, obj, symbol_idx); lnk_symbol_table_push_(task->symtab, arena, worker_id, LNK_SymbolScope_Defined, defn); - lnk_symbol_list_push(arena, &task->weak_lists[worker_id], defn); } break; case COFF_SymbolValueInterp_Common: { @@ -466,6 +465,19 @@ lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number) return section_header; } +internal B32 +lnk_try_comdat_props_from_section_number(LNK_Obj *obj, U32 section_number, COFF_ComdatSelectType *select_out, U32 *section_length_out, U32 *check_sum_out) +{ + Assert(section_number > 0); + U32 symbol_idx = obj->comdats[section_number-1]; + if (symbol_idx != max_U32) { + COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + coff_parse_secdef(secdef, obj->header.is_big_obj, select_out, 0, section_length_out, check_sum_out); + return 1; + } + return 0; +} + internal B32 lnk_is_coff_section_debug(LNK_Obj *obj, U64 sect_idx) { @@ -533,6 +545,13 @@ lnk_collect_obj_sections(TP_Context *tp, TP_Arena *arena, U64 objs_count, LNK_Ob return task.out_lists; } +internal B32 +lnk_obj_is_before(void *raw_a, void *raw_b) +{ + LNK_Obj *a = raw_a, *b = raw_b; + return a->input_idx < b->input_idx; +} + internal void lnk_parse_msvc_linker_directive(Arena *arena, LNK_Obj *obj, LNK_DirectiveInfo *directive_info, String8 buffer) { diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index 3f79365c..5a844569 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -109,6 +109,7 @@ internal U32 lnk_obj_get_vol_md(LNK_Obj *obj); internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff(LNK_Obj *obj, void *coff_symbol); internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff_symbol_idx(LNK_Obj *obj, U64 symbol_idx); internal COFF_SectionHeader * lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number); +internal B32 lnk_try_comdat_props_from_section_number(LNK_Obj *obj, U32 section_number, COFF_ComdatSelectType *select_out, U32 *section_length_out, U32 *check_sum_out); internal B32 lnk_is_coff_section_debug(LNK_Obj *obj, U64 sect_idx); // --- Helpers ----------------------------------------------------------------- diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index c2313d23..9c732876 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -39,6 +39,20 @@ lnk_make_undefined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj) return symbol; } +internal B32 +lnk_symbol_defined_is_before(void *raw_a, void *raw_b) +{ + LNK_Symbol *a = raw_a, *b = raw_b; + return a->u.defined.obj->input_idx < b->u.defined.obj->input_idx; +} + +internal B32 +lnk_symbol_lib_is_before(void *raw_a, void *raw_b) +{ + LNK_Symbol *a = raw_a, *b = raw_b; + return a->u.lib.lib->input_idx < b->u.lib.lib->input_idx; +} + internal void lnk_symbol_list_push_node(LNK_SymbolList *list, LNK_SymbolNode *node) { @@ -123,41 +137,27 @@ lnk_error_multiply_defined_symbol(LNK_Symbol *dst, LNK_Symbol *src) internal B32 lnk_can_replace_symbol(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) { - //Assert(src->type != LNK_Symbol_Undefined); - Assert(dst != src); - Assert(str8_match(dst->name, src->name, 0)); - B32 can_replace = 0; - switch (scope) { - case LNK_SymbolScope_Lib: { - // link.exe picks symbol from lib that is discovered first - can_replace = src->u.lib.lib->input_idx < dst->u.lib.lib->input_idx; - } break; - case LNK_SymbolScope_Import: { - can_replace = 1; - } break; case LNK_SymbolScope_Defined: { - LNK_Obj *dst_obj = dst->u.defined.obj; - LNK_Obj *src_obj = src->u.defined.obj; - - COFF_ParsedSymbol dst_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dst->u.defined.obj, dst->u.defined.symbol_idx); - COFF_ParsedSymbol src_parsed = lnk_parsed_symbol_from_coff_symbol_idx(src->u.defined.obj, src->u.defined.symbol_idx); - - COFF_SymbolValueInterpType dst_interp = coff_interp_symbol(dst_parsed.section_number, dst_parsed.value, dst_parsed.storage_class); - COFF_SymbolValueInterpType src_interp = coff_interp_symbol(src_parsed.section_number, src_parsed.value, src_parsed.storage_class); + LNK_Obj *dst_obj = dst->u.defined.obj; + LNK_Obj *src_obj = src->u.defined.obj; + COFF_ParsedSymbol dst_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dst->u.defined.obj, dst->u.defined.symbol_idx); + COFF_ParsedSymbol src_parsed = lnk_parsed_symbol_from_coff_symbol_idx(src->u.defined.obj, src->u.defined.symbol_idx); + COFF_SymbolValueInterpType dst_interp = coff_interp_from_parsed_symbol(dst_parsed); + COFF_SymbolValueInterpType src_interp = coff_interp_from_parsed_symbol(src_parsed); + // regular vs abs if (dst_interp == COFF_SymbolValueInterp_Regular && src_interp == COFF_SymbolValueInterp_Abs) { lnk_error_multiply_defined_symbol(dst, src); } // abs vs regular - else if ((dst_interp == COFF_SymbolValueInterp_Abs && src_interp == COFF_SymbolValueInterp_Regular) || - (dst_interp == COFF_SymbolValueInterp_Regular && src_interp == COFF_SymbolValueInterp_Abs)) { + else if (dst_interp == COFF_SymbolValueInterp_Abs && src_interp == COFF_SymbolValueInterp_Regular) { lnk_error_multiply_defined_symbol(dst, src); } // abs vs common else if (dst_interp == COFF_SymbolValueInterp_Abs && src_interp == COFF_SymbolValueInterp_Common) { - if (dst->u.defined.obj->input_idx < src->u.defined.obj->input_idx) { + if (lnk_symbol_defined_is_before(dst, src)) { can_replace = 1; } else { lnk_error_multiply_defined_symbol(dst, src); @@ -165,43 +165,35 @@ lnk_can_replace_symbol(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) } // common vs abs else if (dst_interp == COFF_SymbolValueInterp_Common && src_interp == COFF_SymbolValueInterp_Abs) { - if (dst->u.defined.obj->input_idx < src->u.defined.obj->input_idx) { + if (lnk_symbol_defined_is_before(dst, src)) { lnk_error_multiply_defined_symbol(dst, src); } } + // abs vs abs + else if (dst_interp == COFF_SymbolValueInterp_Abs && src_interp == COFF_SymbolValueInterp_Abs) { + lnk_error_multiply_defined_symbol(dst, src); + } // weak vs weak else if (dst_interp == COFF_SymbolValueInterp_Weak && src_interp == COFF_SymbolValueInterp_Weak) { - can_replace = src->u.defined.obj->input_idx < dst->u.defined.obj->input_idx; + can_replace = lnk_symbol_defined_is_before(src, dst); } - // weak vs abs - else if (dst_interp == COFF_SymbolValueInterp_Weak && src_interp == COFF_SymbolValueInterp_Abs) { + // weak vs regular/abs/common + else if (dst_interp == COFF_SymbolValueInterp_Weak && (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Abs || src_interp == COFF_SymbolValueInterp_Common)) { can_replace = 1; } - // abs vs weak - else if (dst_interp == COFF_SymbolValueInterp_Abs && src_interp == COFF_SymbolValueInterp_Weak) { + // regular/abs/common vs weak + else if ((dst_interp == COFF_SymbolValueInterp_Regular || dst_interp == COFF_SymbolValueInterp_Abs || dst_interp == COFF_SymbolValueInterp_Common) && src_interp == COFF_SymbolValueInterp_Weak) { can_replace = 0; } - // weak vs (regular, common, abs) - else if (dst_interp == COFF_SymbolValueInterp_Weak && (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Common || src_interp == COFF_SymbolValueInterp_Abs)) { - can_replace = 1; - } - // regular vs weak - else if (dst_interp == COFF_SymbolValueInterp_Regular && src_interp == COFF_SymbolValueInterp_Weak) { - can_replace = 0; - } - // (regular, common) vs (regular, common) + // regular/common vs regular/common else if ((dst_interp == COFF_SymbolValueInterp_Regular || dst_interp == COFF_SymbolValueInterp_Common) && (src_interp == COFF_SymbolValueInterp_Regular || src_interp == COFF_SymbolValueInterp_Common)) { + // parse dst symbol properties B32 dst_is_comdat = 0; COFF_ComdatSelectType dst_select; U32 dst_section_length; U32 dst_check_sum; if (dst_interp == COFF_SymbolValueInterp_Regular) { - U32 dst_comdat_symbol_idx = dst_obj->comdats[dst_parsed.section_number-1]; - if (dst_comdat_symbol_idx != max_U32) { - COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(dst_obj, dst_comdat_symbol_idx); - coff_parse_secdef(secdef, dst_obj->header.is_big_obj, &dst_select, 0, &dst_section_length, &dst_check_sum); - dst_is_comdat = 1; - } + dst_is_comdat = lnk_try_comdat_props_from_section_number(dst->u.defined.obj, dst_parsed.section_number, &dst_select, &dst_section_length, &dst_check_sum); } else if (dst_interp == COFF_SymbolValueInterp_Common) { dst_select = COFF_ComdatSelect_Largest; dst_section_length = dst_parsed.value; @@ -209,17 +201,13 @@ lnk_can_replace_symbol(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) dst_is_comdat = 1; } + // parse src symbol properties B32 src_is_comdat = 0; COFF_ComdatSelectType src_select; - U32 src_section_length; + U32 src_section_length, src_checks; U32 src_check_sum; if (src_interp == COFF_SymbolValueInterp_Regular) { - U32 src_comdat_symbol_idx = src_obj->comdats[src_parsed.section_number-1]; - if (src_comdat_symbol_idx != max_U32) { - COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(src_obj, src_comdat_symbol_idx); - coff_parse_secdef(secdef, src_obj->header.is_big_obj, &src_select, 0, &src_section_length, &src_check_sum); - src_is_comdat = 1; - } + src_is_comdat = lnk_try_comdat_props_from_section_number(src->u.defined.obj, src_parsed.section_number, &src_select, &src_section_length, &src_check_sum); } else if (src_interp == COFF_SymbolValueInterp_Common) { src_select = COFF_ComdatSelect_Largest; src_section_length = src_parsed.value; @@ -228,18 +216,15 @@ lnk_can_replace_symbol(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) } // regular non-comdat vs communal - if (dst_interp == COFF_SymbolValueInterp_Regular && !dst_is_comdat && - src_interp == COFF_SymbolValueInterp_Common) { + if (dst_interp == COFF_SymbolValueInterp_Regular && !dst_is_comdat && src_interp == COFF_SymbolValueInterp_Common) { can_replace = 0; } // communal vs regular non-comdat - else if (dst_interp == COFF_SymbolValueInterp_Common && - src_interp == COFF_SymbolValueInterp_Regular && !src_is_comdat) { + else if (dst_interp == COFF_SymbolValueInterp_Common && src_interp == COFF_SymbolValueInterp_Regular && !src_is_comdat) { can_replace = 1; } // handle COMDATs else if (dst_is_comdat && src_is_comdat) { - // handle objs compiled with /GR- and /GR if ((src_select == COFF_ComdatSelect_Any && dst_select == COFF_ComdatSelect_Largest)) { src_select = COFF_ComdatSelect_Largest; } @@ -252,7 +237,7 @@ lnk_can_replace_symbol(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) case COFF_ComdatSelect_Null: case COFF_ComdatSelect_Any: { if (src_section_length == dst_section_length) { - can_replace = src_obj->input_idx < dst_obj->input_idx; + can_replace = lnk_obj_is_before(src_obj, dst_obj); } else { // both COMDATs are valid but to get smaller exe pick smallest can_replace = src_section_length < dst_section_length; @@ -263,19 +248,17 @@ lnk_can_replace_symbol(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) } break; case COFF_ComdatSelect_SameSize: { if (dst_section_length == src_section_length) { - can_replace = src_obj->input_idx < dst_obj->input_idx; + can_replace = lnk_obj_is_before(src_obj, dst_obj); } else { lnk_error_multiply_defined_symbol(dst, src); } } break; case COFF_ComdatSelect_ExactMatch: { - COFF_SectionHeader *dst_section_table = (COFF_SectionHeader *)str8_substr(dst_obj->data, dst_obj->header.section_table_range).str; - COFF_SectionHeader *src_section_table = (COFF_SectionHeader *)str8_substr(src_obj->data, src_obj->header.section_table_range).str; - COFF_SectionHeader *dst_sect_header = &dst_section_table[dst_parsed.section_number-1]; - COFF_SectionHeader *src_sect_header = &src_section_table[src_parsed.section_number-1]; - String8 dst_data = str8_substr(dst_obj->data, rng_1u64(dst_sect_header->foff, dst_sect_header->foff + dst_sect_header->fsize)); - String8 src_data = str8_substr(src_obj->data, rng_1u64(src_sect_header->foff, src_sect_header->foff + src_sect_header->fsize)); - B32 is_exact_match = 0; + COFF_SectionHeader *dst_sect_header = lnk_coff_section_header_from_section_number(dst_obj, dst_parsed.section_number); + COFF_SectionHeader *src_sect_header = lnk_coff_section_header_from_section_number(src_obj, src_parsed.section_number); + String8 dst_data = str8_substr(dst_obj->data, rng_1u64(dst_sect_header->foff, dst_sect_header->foff + dst_sect_header->fsize)); + String8 src_data = str8_substr(src_obj->data, rng_1u64(src_sect_header->foff, src_sect_header->foff + src_sect_header->fsize)); + B32 is_exact_match = 0; if (dst_check_sum != 0 && src_check_sum != 0) { is_exact_match = dst_check_sum == src_check_sum && str8_match(dst_data, src_data, 0); } else { @@ -283,29 +266,25 @@ lnk_can_replace_symbol(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) } if (is_exact_match) { - can_replace = src_obj->input_idx < dst_obj->input_idx; + can_replace = lnk_obj_is_before(src_obj, dst_obj); } else { lnk_error_multiply_defined_symbol(dst, src); } } break; case COFF_ComdatSelect_Largest: { if (dst_section_length == src_section_length) { - can_replace = src_obj->input_idx < dst_obj->input_idx; + can_replace = lnk_obj_is_before(src_obj, dst_obj); } else { can_replace = dst_section_length < src_section_length; } } break; - case COFF_ComdatSelect_Associative: { - // ignore - } break; - default: { InvalidPath; } + case COFF_ComdatSelect_Associative: { /* ignore */ } break; + default: { InvalidPath; } break; } } else { - String8 src_select_str = coff_string_from_comdat_select_type(src_select); - String8 dst_select_str = coff_string_from_comdat_select_type(dst_select); lnk_error_obj(LNK_Warning_UnresolvedComdat, src_obj, "%S: COMDAT selection conflict detected, current selection %S, leader selection %S from %S", - src->name, src_select_str, dst_select_str, dst_obj); + src->name, coff_string_from_comdat_select_type(src_select), coff_string_from_comdat_select_type(dst_select), dst_obj); } } else { lnk_error_multiply_defined_symbol(dst, src); @@ -314,9 +293,15 @@ lnk_can_replace_symbol(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) lnk_error(LNK_Error_InvalidPath, "unable to find a suitable replacement logic for symbol combination"); } } break; + case LNK_SymbolScope_Import: { + lnk_error_multiply_defined_symbol(dst, src); + } break; + case LNK_SymbolScope_Lib: { + // link.exe picks symbol from lib that is discovered first + can_replace = lnk_symbol_lib_is_before(src, dst); + } break; default: { InvalidPath; } } - return can_replace; } @@ -521,6 +506,110 @@ lnk_symbol_table_push_alt_name(LNK_SymbolTable *symtab, LNK_Obj *obj, String8 fr } } +internal +THREAD_POOL_TASK_FUNC(lnk_finalize_weak_symbols_task) +{ + Temp scratch = scratch_begin(&arena,1); + + LNK_FinalizeWeakSymbolsTask *task = raw_task; + LNK_SymbolTable *symtab = task->symtab; + LNK_SymbolHashTrieChunk *chunk = task->chunks[task_id]; + + for EachIndex(i, chunk->count) { + LNK_Symbol *symbol = chunk->v[i].symbol; + COFF_ParsedSymbol symbol_parsed = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + COFF_SymbolValueInterpType symbol_interp = coff_interp_symbol(symbol_parsed.section_number, symbol_parsed.value, symbol_parsed.storage_class); + if (symbol_interp == COFF_SymbolValueInterp_Weak) { + struct LookupLocation { struct LookupLocation *next; LNK_SymbolDefined symbol; }; + struct LookupLocation *lookup_first = 0, *lookup_last = 0; + + LNK_SymbolDefined current_symbol = symbol->u.defined; + for (;;) { + // guard against self-referencing weak symbols + struct LookupLocation *was_visited = 0; + for (struct LookupLocation *l = lookup_first; l != 0; l = l->next) { + if (MemoryCompare(&l->symbol, ¤t_symbol, sizeof(LNK_SymbolDefined)) == 0) { was_visited = l; break; } + } + if (was_visited) { + Temp temp = temp_begin(scratch.arena); + + String8List ref_list = {0}; + for (struct LookupLocation *l = lookup_first; l != 0; l = l->next) { + COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(l->symbol.obj, l->symbol.symbol_idx); + str8_list_pushf(temp.arena, &ref_list, "\t%S Symbol %S (No. %#x) =>", l->symbol.obj->path, loc_symbol.name, l->symbol.symbol_idx); + } + COFF_ParsedSymbol loc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(lookup_first->symbol.obj, lookup_first->symbol.symbol_idx); + str8_list_pushf(temp.arena, &ref_list, "\t%S Symbol %S (No. %#x)", lookup_first->symbol.obj->path, loc_symbol.name, lookup_first->symbol.symbol_idx); + + COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); + String8 loc_string = str8_list_join(temp.arena, &ref_list, &(StringJoin){ .sep = str8_lit("\n") }); + lnk_error_obj(LNK_Error_WeakCycle, symbol->u.defined.obj, "unable to resolve cyclic symbol %S; ref chain:\n%S", parsed_symbol.name, loc_string); + + MemoryZeroStruct(¤t_symbol); + + temp_end(temp); + break; + } + + // record visited symbol + struct LookupLocation *loc = push_array(scratch.arena, struct LookupLocation, 1); + loc->symbol = current_symbol; + SLLQueuePush(lookup_first, lookup_last, loc); + + COFF_ParsedSymbol current_parsed = lnk_parsed_symbol_from_coff_symbol_idx(current_symbol.obj, current_symbol.symbol_idx); + COFF_SymbolValueInterpType current_interp = coff_interp_symbol(current_parsed.section_number, current_parsed.value, current_parsed.storage_class); + if (current_interp != COFF_SymbolValueInterp_Weak && current_interp != COFF_SymbolValueInterp_Undefined) { + break; + } + + // does weak symbol have the strong definition? + LNK_Symbol *defn_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, current_parsed.name); + COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn_symbol->u.defined.obj, defn_symbol->u.defined.symbol_idx); + COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_parsed.section_number, defn_parsed.value, defn_parsed.storage_class); + if (defn_interp != COFF_SymbolValueInterp_Weak) { + current_symbol = defn_symbol->u.defined; + break; + } + + // no strong definition fallback to the tag + COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(current_parsed, current_symbol.obj->header.is_big_obj); + COFF_ParsedSymbol tag_parsed = lnk_parsed_symbol_from_coff_symbol_idx(current_symbol.obj, weak_ext->tag_index); + COFF_SymbolValueInterpType tag_interp = coff_interp_symbol(tag_parsed.section_number, tag_parsed.value, tag_parsed.storage_class); + current_symbol = (LNK_SymbolDefined){ .obj = current_symbol.obj, .symbol_idx = weak_ext->tag_index }; + } + + // replace weak symbol with it's tag + symbol->u.defined = current_symbol; + } + } + + scratch_end(scratch); +} + +internal void +lnk_finalize_weak_symbols(TP_Context *tp, LNK_SymbolTable *symtab) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(0,0); + + U64 chunks_count = 0; + for EachIndex(worker_id, tp->worker_count) { chunks_count += symtab->chunk_lists[LNK_SymbolScope_Defined][worker_id].count; } + + LNK_SymbolHashTrieChunk **chunks = push_array(scratch.arena, LNK_SymbolHashTrieChunk *, chunks_count); + U64 chunks_cursor = 0; + for EachIndex(worker_id, tp->worker_count) { + for (LNK_SymbolHashTrieChunk *chunk = symtab->chunk_lists[LNK_SymbolScope_Defined][worker_id].first; chunk != 0; chunk = chunk->next) { + chunks[chunks_cursor++] = chunk; + } + } + + LNK_FinalizeWeakSymbolsTask task = { .symtab = symtab, .chunks = chunks }; + tp_for_parallel(tp, 0, chunks_count, lnk_finalize_weak_symbols_task, &task); + + scratch_end(scratch); + ProfEnd(); +} + internal COFF_ParsedSymbol lnk_parsed_symbol_from_defined(LNK_Symbol *symbol) { diff --git a/src/linker/lnk_symbol_table.h b/src/linker/lnk_symbol_table.h index eec6c878..e85490c5 100644 --- a/src/linker/lnk_symbol_table.h +++ b/src/linker/lnk_symbol_table.h @@ -107,6 +107,14 @@ typedef struct LNK_SymbolTable HashTable *alt_names; } LNK_SymbolTable; +// --- Workers Contensts ------------------------------------------------------- + +typedef struct +{ + LNK_SymbolTable *symtab; + LNK_SymbolHashTrieChunk **chunks; +} LNK_FinalizeWeakSymbolsTask; + // --- Symbol Make ------------------------------------------------------------- internal LNK_Symbol * lnk_make_defined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj, U32 symbol_idx); @@ -140,6 +148,8 @@ internal LNK_Symbol * lnk_symbol_table_searchf(LNK_SymbolTable *symtab, LNK internal void lnk_symbol_table_push_alt_name(LNK_SymbolTable *symtab, struct LNK_Obj *obj, String8 from, String8 to); +internal void lnk_finalize_weak_symbols(TP_Context *tp, LNK_SymbolTable *symtab); + // --- Symbol Contrib Helpers -------------------------------------------------- internal ISectOff lnk_sc_from_symbol(LNK_Symbol *symbol); diff --git a/src/torture/torture.c b/src/torture/torture.c index 94dab1a2..6e7641af 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -60,13 +60,13 @@ t_string_from_result(T_Result v) return 0; } -global String8 g_stdout_file_name = str8_lit_comp("torture"); +global String8 g_stdout_file_name = str8_lit_comp("torture.out"); global U64 g_linker_time_out; global String8 g_linker; global String8 g_wdir; global String8 g_out = str8_lit_comp("torture"); global B32 g_verbose; -global B32 g_redirect_stdout; +global B32 g_redirect_stdout = 1; #define T_LINKER_TIME_OUT_EXIT_CODE 999999 @@ -743,6 +743,128 @@ exit:; return result; } +internal T_Result +t_weak_vs_weak(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + String8 a_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS, str8_lit("a")); + COFF_ObjSymbol *sect_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("_a"), 0, sect); + coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchLibrary, sect_symbol); + a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + String8 b_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".b"), PE_DATA_SECTION_FLAGS, str8_lit("b")); + COFF_ObjSymbol *sect_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("_b"), 0, sect); + coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchLibrary, sect_symbol); + b_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + + String8 entry_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("w")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } + if (!t_write_file(str8_lit("b.obj"), b_obj)) { goto exit; } + if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); + if (linker_exit_code != 0) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + +internal T_Result +t_weak_vs_common(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + String8 weak_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS, str8_lit("a")); + COFF_ObjSymbol *sect_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("_a"), 0, sect); + coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchLibrary, sect_symbol); + weak_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + String8 common_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + coff_obj_writer_push_symbol_common(obj_writer, str8_lit("w"), 2); + common_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + String8 entry_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("w")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + if (!t_write_file(str8_lit("weak.obj"), weak_obj)) { goto exit; } + if (!t_write_file(str8_lit("common.obj"), common_obj)) { goto exit; } + if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } + + int linker_exit_code; + + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe common.obj weak.obj entry.obj"); + if (linker_exit_code != 0) { goto exit; } + + linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe weak.obj common.obj entry.obj"); + if (linker_exit_code != 0) { goto exit; } + + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *bss = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".bss")); + if (!bss) { goto exit; } + if (bss->fsize != 0) { goto exit; } + if (bss->vsize != 2) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_abs_vs_weak(void) { @@ -750,8 +872,8 @@ t_abs_vs_weak(void) T_Result result = T_Result_Fail; - U32 abs_value = 0x123; - U8 text_code[] = { 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3 }; + U32 abs_value = 0x123; + U8 text_code[] = { 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3 }; String8 abs_obj; { @@ -777,27 +899,14 @@ t_abs_vs_weak(void) coff_obj_writer_release(&obj_writer); } - { - B32 was_file_written = 0; - was_file_written = t_write_file(str8_lit("abs.obj"), abs_obj); - if (!was_file_written) { - goto exit; - } - was_file_written = t_write_file(str8_lit("text.obj"), text_obj); - if (!was_file_written) { - goto exit; - } - } + if (!t_write_file(str8_lit("abs.obj"), abs_obj)) { goto exit; } + if (!t_write_file(str8_lit("text.obj"), text_obj)) { goto exit; } int abs_vs_weak_exit_code = t_invoke_linker(str8_lit("/subsystem:console /entry:my_entry /out:a.exe abs.obj text.obj")); - if (abs_vs_weak_exit_code != 0) { - goto exit; - } + if (abs_vs_weak_exit_code != 0) { goto exit; } int weak_vs_abs_exit_code = t_invoke_linker(str8_lit("/subsystem:console /entry:my_entry /out:a.exe text.obj abs.obj")); - if (weak_vs_abs_exit_code != 0) { - goto exit; - } + if (weak_vs_abs_exit_code != 0) { goto exit; } String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); @@ -805,18 +914,17 @@ t_abs_vs_weak(void) String8 string_table = str8_substr(exe, pe.string_table_range); COFF_SectionHeader *text_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_section) { - String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + text_section->fsize)); - String8 inst = str8_prefix(text_data, 2); - if (str8_match(inst, str8_array(text_code, 2), 0)) { - String8 imm = str8_prefix(str8_skip(text_data, 2), 8); - U64 expected_imm = abs_value; - if (str8_match(imm, str8_struct(&expected_imm), 0)) { - result = T_Result_Pass; - } - } - } - + if (text_section == 0) { goto exit; } + + String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + text_section->fsize)); + String8 inst = str8_prefix(text_data, 2); + if (!str8_match(inst, str8_array(text_code, 2), 0)) { goto exit; } + + String8 imm = str8_prefix(str8_skip(text_data, 2), 8); + U64 expected_imm = abs_value; + if (!str8_match(imm, str8_struct(&expected_imm), 0)) { goto exit; } + + result = T_Result_Pass; exit:; scratch_end(scratch); return result; @@ -1100,30 +1208,27 @@ internal T_Result t_weak_tag(void) { Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - U32 weak_tag_expected_value = 0x12345678; - String8 weak_tag_obj_name = str8_lit("weak_tag.obj"); + U32 weak_tag_expected_value = 0x12345678; + String8 weak_tag_obj_name = str8_lit("weak_tag.obj"); { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); COFF_ObjSymbol *tag_symbol = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("abs"), weak_tag_expected_value, COFF_SymStorageClass_Static); COFF_ObjSymbol *weak_first = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("strong_first"), COFF_WeakExt_SearchAlias, tag_symbol); COFF_ObjSymbol *weak_second = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("strong_second"), COFF_WeakExt_SearchAlias, weak_first); - U8 sect_data[] = { 0, 0, 0, 0 }; + U8 sect_data[4] = {0}; COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_array_fixed(sect_data)); coff_obj_writer_section_push_reloc(obj_writer, sect, 0, weak_second, COFF_Reloc_X64_Addr32); String8 weak_tag_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); - if (!t_write_file(weak_tag_obj_name, weak_tag_obj)) { - goto exit; - } + if (!t_write_file(weak_tag_obj_name, weak_tag_obj)) { goto exit; } } - String8 entry_name = str8_lit("my_entry"); - U8 entry_text[] = { 0xC3 }; + String8 entry_name = str8_lit("my_entry"); + U8 entry_text[] = { 0xC3 }; String8 entry_obj_name = str8_lit("entry.obj"); { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); @@ -1131,31 +1236,23 @@ t_weak_tag(void) coff_obj_writer_push_symbol_extern(obj_writer, entry_name, 0, text_sect); String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); - if (!t_write_file(entry_obj_name, entry_obj)) { - goto exit; - } + if (!t_write_file(entry_obj_name, entry_obj)) { goto exit; } } int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe %S %S", weak_tag_obj_name, entry_obj_name); - if (linker_exit_code == 0) { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); + if (linker_exit_code != 0) { goto exit; } - COFF_SectionHeader *data_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); - if (!data_section) { - goto exit; - } - if (data_section->vsize != 4) { - goto exit; - } - String8 data = str8_substr(exe, rng_1u64(data_section->foff, data_section->foff + data_section->vsize)); - if (str8_match(data, str8_struct(&weak_tag_expected_value), 0)) { - result = T_Result_Pass; - } - } + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *data_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + String8 data = str8_substr(exe, rng_1u64(data_section->foff, data_section->foff + data_section->vsize)); + if (!data_section) { goto exit; } + if (data_section->vsize != 4) { goto exit; } + if (!str8_match(data, str8_struct(&weak_tag_expected_value), 0)) { goto exit; } + result = T_Result_Pass; exit:; scratch_end(scratch); return result; @@ -3670,7 +3767,7 @@ entry_point(CmdLine *cmdline) Temp scratch = scratch_begin(0,0); // - // Targets + // Test Targets // static struct { char *label; T_Result (*r)(void); @@ -3681,6 +3778,8 @@ entry_point(CmdLine *cmdline) { "merge", t_merge }, { "undef_section", t_undef_section }, { "undef_reloc_section", t_undef_reloc_section }, + { "weak_vs_weak", t_weak_vs_weak }, + { "weak_vs_common", t_weak_vs_common }, { "abs_vs_weak", t_abs_vs_weak }, { "abs_vs_regular", t_abs_vs_regular }, { "abs_vs_common", t_abs_vs_common }, From a4ac07162ede8e23288b9213958f8f3780884a25 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 15 Jul 2025 14:41:30 -0700 Subject: [PATCH 299/372] test abs vs abs --- src/torture/torture.c | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index 6e7641af..35f9943a 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -1004,9 +1004,7 @@ t_abs_vs_regular(void) internal T_Result t_abs_vs_common(void) { - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; String8 shared_symbol_name = str8_lit("foo"); @@ -1066,6 +1064,41 @@ exit:; return result; } +internal T_Result +t_abs_vs_abs(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + String8 a_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("foo"), 'a', COFF_SymStorageClass_External); + a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + String8 b_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("foo"), 'b', COFF_SymStorageClass_External); + b_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } + if (!t_write_file(str8_lit("b.obj"), b_obj)) { goto exit; } + t_write_entry_obj(); + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); + if (linker_exit_code != LNK_Error_MultiplyDefinedSymbol) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + internal T_Result t_undef_weak(void) { @@ -3783,6 +3816,7 @@ entry_point(CmdLine *cmdline) { "abs_vs_weak", t_abs_vs_weak }, { "abs_vs_regular", t_abs_vs_regular }, { "abs_vs_common", t_abs_vs_common }, + { "abs_vs_abs", t_abs_vs_abs }, { "undef_weak", t_undef_weak }, { "sect_symbol", t_sect_symbol }, { "weak_cycle", t_weak_cycle }, From a6b2cf64ba6c34a563dd8cb3f428e9e0a80ad6a9 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 16 Jul 2025 15:37:52 -0700 Subject: [PATCH 300/372] WIP collect sections associations --- src/base/base_core.h | 3 +- src/coff/coff_parse.c | 2 +- src/linker/base_ext/base_arrays.h | 6 ++ src/linker/lnk.c | 2 - src/linker/lnk_obj.c | 44 ++++++++++++--- src/linker/lnk_obj.h | 3 +- src/linker/lnk_symbol_table.c | 94 ++++++++++++++++++++----------- 7 files changed, 107 insertions(+), 47 deletions(-) diff --git a/src/base/base_core.h b/src/base/base_core.h index 26e08d64..319837ba 100644 --- a/src/base/base_core.h +++ b/src/base/base_core.h @@ -348,7 +348,8 @@ C_LINKAGE void __asan_unpoison_memory_region(void const volatile *addr, size_t s #endif #define PtrFromInt(i) (void*)(i) -#define Compose64Bit(a,b) ((((U64)a) << 32) | ((U64)b)); +#define Compose64Bit(a,b) ((((U64)a) << 32) | ((U64)b)) +#define Compose32Bit(a,b) ((((U32)a) << 16) | ((U32)b)) #define AlignPow2(x,b) (((x) + (b) - 1)&(~((b) - 1))) #define AlignDownPow2(x,b) ((x)&(~((b) - 1))) #define AlignPadPow2(x,b) ((0-(x)) & ((b) - 1)) diff --git a/src/coff/coff_parse.c b/src/coff/coff_parse.c index 9d734c48..f8b2a3a4 100644 --- a/src/coff/coff_parse.c +++ b/src/coff/coff_parse.c @@ -296,7 +296,7 @@ coff_parse_secdef(COFF_ParsedSymbol symbol, B32 is_big_obj, COFF_ComdatSelectTyp if (selection_out) *selection_out = sd->selection; if (length_out) *length_out = sd->length; if (check_sum_out) *check_sum_out = sd->check_sum; - if (number_out) *number_out = sd->number_lo | ((U32)sd->number_hi << 16); + if (number_out) *number_out = Compose32Bit(sd->number_hi, sd->number_lo); } else { COFF_SymbolSecDef *sd = (COFF_SymbolSecDef *)((COFF_Symbol16 *)symbol.raw_symbol + 1); if (selection_out) *selection_out = sd->selection; diff --git a/src/linker/base_ext/base_arrays.h b/src/linker/base_ext/base_arrays.h index b2c45bd5..1c6f6f4d 100644 --- a/src/linker/base_ext/base_arrays.h +++ b/src/linker/base_ext/base_arrays.h @@ -3,6 +3,12 @@ #pragma once +typedef struct U32Node +{ + struct U32Node *next; + U32 data; +} U32Node; + typedef struct U64Node { struct U64Node *next; diff --git a/src/linker/lnk.c b/src/linker/lnk.c index a62701c4..6ac30d13 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -4053,8 +4053,6 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT .null_sc = push_array(arena->v[0], LNK_SectionContrib, 1), }; - tp_for_parallel(tp, 0, objs_count, lnk_remove_associative_sections_task, &task); - { ProfBegin("Define And Count Sections"); TP_Temp temp = tp_temp_begin(arena); diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 0d161af7..8ce4827e 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -224,6 +224,31 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) scratch_end(scratch); } + + // + // collect sections associations + // + U32Node **associated_sections = push_array(arena, U32Node *, header.section_count_no_null + 1); + { + String8 string_table = str8_substr(input->data, header.string_table_range); + String8 symbol_table = str8_substr(input->data, header.symbol_table_range); + + COFF_ParsedSymbol symbol; + for (U32 symbol_idx = 0; symbol_idx < header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = coff_parse_symbol(header, string_table, symbol_table, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_from_parsed_symbol(symbol); + if (interp == COFF_SymbolValueInterp_Regular && symbol.storage_class == COFF_SymStorageClass_Static && symbol.aux_symbol_count > 0) { + COFF_ComdatSelectType selection = COFF_ComdatSelect_Null; + U32 section_number = 0; + coff_parse_secdef(symbol, header.is_big_obj, &selection, §ion_number, 0, 0); + if (selection != COFF_ComdatSelect_Associative) { continue; } + + U32Node *associated_node = push_array(arena, U32Node, 1); + associated_node->data = symbol.section_number; + SLLStackPush(associated_sections[section_number], associated_node); + } + } + } // // extract obj features from compile symbol in .debug$S @@ -267,13 +292,14 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) } // fill out obj - obj->data = input->data; - obj->path = push_str8_copy(arena, input->path); - obj->lib_path = push_str8_copy(arena, input->lib_path); - obj->input_idx = obj_idx; - obj->header = header; - obj->comdats = comdats; - obj->hotpatch = hotpatch; + obj->data = input->data; + obj->path = push_str8_copy(arena, input->path); + obj->lib_path = push_str8_copy(arena, input->lib_path); + obj->input_idx = obj_idx; + obj->header = header; + obj->comdats = comdats; + obj->hotpatch = hotpatch; + obj->associated_sections = associated_sections; ProfEnd(); } @@ -466,13 +492,13 @@ lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number) } internal B32 -lnk_try_comdat_props_from_section_number(LNK_Obj *obj, U32 section_number, COFF_ComdatSelectType *select_out, U32 *section_length_out, U32 *check_sum_out) +lnk_try_comdat_props_from_section_number(LNK_Obj *obj, U32 section_number, COFF_ComdatSelectType *select_out, U32 *section_number_out, U32 *section_length_out, U32 *check_sum_out) { Assert(section_number > 0); U32 symbol_idx = obj->comdats[section_number-1]; if (symbol_idx != max_U32) { COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - coff_parse_secdef(secdef, obj->header.is_big_obj, select_out, 0, section_length_out, check_sum_out); + coff_parse_secdef(secdef, obj->header.is_big_obj, select_out, section_number_out, section_length_out, check_sum_out); return 1; } return 0; diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index 5a844569..1f0d08f3 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -14,6 +14,7 @@ typedef struct LNK_Obj COFF_FileHeaderInfo header; U32 *comdats; B8 hotpatch; + U32Node **associated_sections; } LNK_Obj; typedef struct LNK_ObjNode @@ -109,7 +110,7 @@ internal U32 lnk_obj_get_vol_md(LNK_Obj *obj); internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff(LNK_Obj *obj, void *coff_symbol); internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff_symbol_idx(LNK_Obj *obj, U64 symbol_idx); internal COFF_SectionHeader * lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number); -internal B32 lnk_try_comdat_props_from_section_number(LNK_Obj *obj, U32 section_number, COFF_ComdatSelectType *select_out, U32 *section_length_out, U32 *check_sum_out); +internal B32 lnk_try_comdat_props_from_section_number(LNK_Obj *obj, U32 section_number, COFF_ComdatSelectType *select_out, U32 *section_number_out, U32 *section_length_out, U32 *check_sum_out); internal B32 lnk_is_coff_section_debug(LNK_Obj *obj, U64 sect_idx); // --- Helpers ----------------------------------------------------------------- diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index 9c732876..89c5f66e 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -193,7 +193,7 @@ lnk_can_replace_symbol(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) U32 dst_section_length; U32 dst_check_sum; if (dst_interp == COFF_SymbolValueInterp_Regular) { - dst_is_comdat = lnk_try_comdat_props_from_section_number(dst->u.defined.obj, dst_parsed.section_number, &dst_select, &dst_section_length, &dst_check_sum); + dst_is_comdat = lnk_try_comdat_props_from_section_number(dst->u.defined.obj, dst_parsed.section_number, &dst_select, 0, &dst_section_length, &dst_check_sum); } else if (dst_interp == COFF_SymbolValueInterp_Common) { dst_select = COFF_ComdatSelect_Largest; dst_section_length = dst_parsed.value; @@ -207,7 +207,7 @@ lnk_can_replace_symbol(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) U32 src_section_length, src_checks; U32 src_check_sum; if (src_interp == COFF_SymbolValueInterp_Regular) { - src_is_comdat = lnk_try_comdat_props_from_section_number(src->u.defined.obj, src_parsed.section_number, &src_select, &src_section_length, &src_check_sum); + src_is_comdat = lnk_try_comdat_props_from_section_number(src->u.defined.obj, src_parsed.section_number, &src_select, 0, &src_section_length, &src_check_sum); } else if (src_interp == COFF_SymbolValueInterp_Common) { src_select = COFF_ComdatSelect_Largest; src_section_length = src_parsed.value; @@ -308,23 +308,44 @@ lnk_can_replace_symbol(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) internal void lnk_on_symbol_replace(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) { - Assert(dst != src); - if (scope == LNK_SymbolScope_Lib) { - dst->u.lib = src->u.lib; - } else if (scope == LNK_SymbolScope_Defined) { - COFF_ParsedSymbol dst_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dst->u.defined.obj, dst->u.defined.symbol_idx); - COFF_ParsedSymbol src_parsed = lnk_parsed_symbol_from_coff_symbol_idx(src->u.defined.obj, src->u.defined.symbol_idx); - COFF_SymbolValueInterpType dst_interp = coff_interp_symbol(dst_parsed.section_number, dst_parsed.value, dst_parsed.storage_class); - COFF_SymbolValueInterpType src_interp = coff_interp_symbol(src_parsed.section_number, src_parsed.value, src_parsed.storage_class); + switch (scope) { + case LNK_SymbolScope_Defined: { + COFF_ParsedSymbol dst_parsed = lnk_parsed_symbol_from_coff_symbol_idx(dst->u.defined.obj, dst->u.defined.symbol_idx); + COFF_SymbolValueInterpType dst_interp = coff_interp_from_parsed_symbol(dst_parsed); if (dst_interp == COFF_SymbolValueInterp_Regular) { + // remove replaced section from the output COFF_SectionHeader *dst_sect = lnk_coff_section_header_from_section_number(dst->u.defined.obj, dst_parsed.section_number); dst_sect->flags |= COFF_SectionFlag_LnkRemove; - dst->u.defined = src->u.defined; + + // remove associated sections from the output + for (U32Node *associated_section = dst->u.defined.obj->associated_sections[dst_parsed.section_number]; + associated_section != 0; + associated_section = associated_section->next) { + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(dst->u.defined.obj, associated_section->data); + section_header->flags |= COFF_SectionFlag_LnkRemove; + } } - if (src_interp == COFF_SymbolValueInterp_Regular) { - COFF_SectionHeader *src_sect = lnk_coff_section_header_from_section_number(src->u.defined.obj, src_parsed.section_number); - AssertAlways(~src_sect->flags & COFF_SectionFlag_LnkRemove); + + // make sure leader section is not removed from the output +#if BUILD_DEBUG + { + COFF_ParsedSymbol src_parsed = lnk_parsed_symbol_from_coff_symbol_idx(src->u.defined.obj, src->u.defined.symbol_idx); + COFF_SymbolValueInterpType src_interp = coff_interp_from_parsed_symbol(src_parsed); + if (src_interp == COFF_SymbolValueInterp_Regular) { + COFF_SectionHeader *src_sect = lnk_coff_section_header_from_section_number(src->u.defined.obj, src_parsed.section_number); + AssertAlways(~src_sect->flags & COFF_SectionFlag_LnkRemove); + } } +#endif + } break; + case LNK_SymbolScope_Import: { + // illegal to replace imports + InvalidPath; + } break; + case LNK_SymbolScope_Lib: { + // nothing to replace + } break; + default: { InvalidPath; } } } @@ -551,31 +572,38 @@ THREAD_POOL_TASK_FUNC(lnk_finalize_weak_symbols_task) break; } - // record visited symbol - struct LookupLocation *loc = push_array(scratch.arena, struct LookupLocation, 1); - loc->symbol = current_symbol; - SLLQueuePush(lookup_first, lookup_last, loc); - COFF_ParsedSymbol current_parsed = lnk_parsed_symbol_from_coff_symbol_idx(current_symbol.obj, current_symbol.symbol_idx); COFF_SymbolValueInterpType current_interp = coff_interp_symbol(current_parsed.section_number, current_parsed.value, current_parsed.storage_class); - if (current_interp != COFF_SymbolValueInterp_Weak && current_interp != COFF_SymbolValueInterp_Undefined) { - break; - } + if (current_interp == COFF_SymbolValueInterp_Weak) { + // record visited symbol + struct LookupLocation *loc = push_array(scratch.arena, struct LookupLocation, 1); + loc->symbol = current_symbol; + SLLQueuePush(lookup_first, lookup_last, loc); - // does weak symbol have the strong definition? - LNK_Symbol *defn_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, current_parsed.name); - COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn_symbol->u.defined.obj, defn_symbol->u.defined.symbol_idx); - COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_parsed.section_number, defn_parsed.value, defn_parsed.storage_class); - if (defn_interp != COFF_SymbolValueInterp_Weak) { + // does weak symbol have a definition? + LNK_Symbol *defn_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, current_parsed.name); + COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn_symbol->u.defined.obj, defn_symbol->u.defined.symbol_idx); + COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_parsed.section_number, defn_parsed.value, defn_parsed.storage_class); + if (defn_interp != COFF_SymbolValueInterp_Weak) { + current_symbol = defn_symbol->u.defined; + break; + } + + // no definition fallback to the tag + COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(current_parsed, current_symbol.obj->header.is_big_obj); + COFF_ParsedSymbol tag_parsed = lnk_parsed_symbol_from_coff_symbol_idx(current_symbol.obj, weak_ext->tag_index); + COFF_SymbolValueInterpType tag_interp = coff_interp_symbol(tag_parsed.section_number, tag_parsed.value, tag_parsed.storage_class); + current_symbol = (LNK_SymbolDefined){ .obj = current_symbol.obj, .symbol_idx = weak_ext->tag_index }; + } else if (current_interp == COFF_SymbolValueInterp_Undefined) { + LNK_Symbol *defn_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, current_parsed.name); + if (defn_symbol == 0) { + MemoryZeroStruct(¤t_symbol); + break; + } current_symbol = defn_symbol->u.defined; + } else { break; } - - // no strong definition fallback to the tag - COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(current_parsed, current_symbol.obj->header.is_big_obj); - COFF_ParsedSymbol tag_parsed = lnk_parsed_symbol_from_coff_symbol_idx(current_symbol.obj, weak_ext->tag_index); - COFF_SymbolValueInterpType tag_interp = coff_interp_symbol(tag_parsed.section_number, tag_parsed.value, tag_parsed.storage_class); - current_symbol = (LNK_SymbolDefined){ .obj = current_symbol.obj, .symbol_idx = weak_ext->tag_index }; } // replace weak symbol with it's tag From 17d35cd3272df0d6c172bead0ff58c7e4e556c8f Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 17 Jul 2025 16:26:00 -0700 Subject: [PATCH 301/372] add garbage collector for COMDAT sections --- src/linker/lnk.c | 562 +++++++++++++++++++++---------------------- src/linker/lnk.h | 5 +- src/linker/lnk_obj.c | 47 ++++ src/linker/lnk_obj.h | 2 + 4 files changed, 324 insertions(+), 292 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 6ac30d13..a6d7930a 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -2210,11 +2210,13 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } exit:; - LNK_LinkContext link_ctx = {0}; - link_ctx.symtab = symtab; - link_ctx.objs_count = obj_list.count; - link_ctx.objs = lnk_array_from_obj_list(tp_arena->v[0], obj_list); - link_ctx.export_symbol_list = export_symbol_list; + // TODO: include symbol list + LNK_LinkContext link_ctx = {0}; + link_ctx.symtab = symtab; + link_ctx.objs_count = obj_list.count; + link_ctx.objs = lnk_array_from_obj_list(tp_arena->v[0], obj_list); + link_ctx.export_symbol_list = export_symbol_list; + link_ctx.delay_load_helper_name = delay_load_helper_name; MemoryCopyTyped(&link_ctx.lib_index[0], &lib_index[0], ArrayCount(lib_index)); ProfEnd(); @@ -2225,39 +2227,241 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) #undef state_list_pop } -internal -THREAD_POOL_TASK_FUNC(lnk_remove_associative_sections_task) +internal B32 +lnk_resolve_symbol(LNK_SymbolTable *symtab, LNK_Symbol **symlinks, LNK_SymbolDefined symbol, LNK_SymbolDefined *symbol_out) { - LNK_BuildImageTask *task = raw_task; - LNK_Obj *obj = task->objs[task_id]; - String8 string_table = str8_substr(obj->data, obj->header.string_table_range); - String8 symbol_table = str8_substr(obj->data, obj->header.symbol_table_range); - for EachIndex(sect_idx, obj->header.section_count_no_null) { - // find associate section head section index - U32 head_sect_idx = max_U32; - for (U64 current_sect_idx = sect_idx;;) { - U32 symbol_idx = obj->comdats[current_sect_idx]; - if (symbol_idx == max_U32) { break; } + B32 is_resolved = 1; + COFF_ParsedSymbol symbol_parsed = lnk_parsed_symbol_from_coff_symbol_idx(symbol.obj, symbol.symbol_idx); + COFF_SymbolValueInterpType symbol_interp = coff_interp_symbol(symbol_parsed.section_number, symbol_parsed.value, symbol_parsed.storage_class); + switch (symbol_interp) { + case COFF_SymbolValueInterp_Regular: { + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(symbol.obj, symbol_parsed.section_number); + LNK_Symbol *symlink = section_header->flags & COFF_SectionFlag_LnkCOMDAT ? symlinks[symbol_parsed.section_number] : 0; + *symbol_out = symlink ? symlink->u.defined : symbol; + } break; + case COFF_SymbolValueInterp_Weak: { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol_parsed.name); + COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); + COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_parsed.section_number, defn_parsed.value, defn_parsed.storage_class); + if (defn_interp != COFF_SymbolValueInterp_Undefined) { + *symbol_out = defn->u.defined; + } else { + is_resolved = 0; + } + } break; + case COFF_SymbolValueInterp_Undefined: { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol_parsed.name); + if (defn) { + *symbol_out = defn->u.defined; + } else { + is_resolved = 0; + } + } break; + case COFF_SymbolValueInterp_Common: { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol_parsed.name); + *symbol_out = defn->u.defined; + } break; + case COFF_SymbolValueInterp_Abs: { + if (symbol_parsed.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol_parsed.name); + *symbol_out = defn->u.defined; + } else { + *symbol_out = symbol; + } + } break; + case COFF_SymbolValueInterp_Debug: { *symbol_out = symbol; } break; + } + return is_resolved; +} - COFF_ParsedSymbol symbol = coff_parse_symbol(obj->header, string_table, symbol_table, symbol_idx); - COFF_ComdatSelectType selection = COFF_ComdatSelect_Null; - U32 section_number = 0; - coff_parse_secdef(symbol, obj->header.is_big_obj, &selection, §ion_number, 0, 0); - if (selection != COFF_ComdatSelect_Associative) { - head_sect_idx = current_sect_idx; - break; - } +internal void +lnk_gc_comdats(LNK_SymbolTable *symtab, + U64 objs_count, + LNK_Obj **objs, + LNK_Symbol ***symlinks, + LNK_Config *config, + PE_ExportParseList export_symbol_list, + String8List include_symbol_list, + String8 delay_load_helper_name) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(0,0); - current_sect_idx = section_number-1; + struct Task { struct Task *next; LNK_Obj *obj; COFF_RelocArray relocs; }; + struct Task *task_stack = 0; + const U64 RELOCS_PER_TASK = 1024; + + // + // define roots + // + { + String8List roots = {0}; + + // entry point + str8_list_push(scratch.arena, &roots, config->entry_point_name); + + // exports + for (PE_ExportParseNode *exp_n = export_symbol_list.first; exp_n != 0; exp_n = exp_n->next) { + PE_ExportParse *exp = &exp_n->data; + str8_list_push(scratch.arena, &roots, exp->name); } - if (head_sect_idx != max_U32) { - // flag current section with remove if head section was removed - COFF_SectionHeader *head_sect_header = lnk_coff_section_header_from_section_number(obj, head_sect_idx+1); - COFF_SectionHeader *curr_sect_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); - curr_sect_header->flags |= (head_sect_header->flags & COFF_SectionFlag_LnkRemove); + // load config + LNK_Symbol *load_config_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, MSCRT_LOAD_CONFIG_SYMBOL_NAME); + if (load_config_symbol) { + str8_list_push(scratch.arena, &roots, load_config_symbol->name); + } + + // delay load helper + if (delay_load_helper_name.size) { + str8_list_push(scratch.arena, &roots, delay_load_helper_name); + } + + // tls + LNK_Symbol *tls_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, MSCRT_TLS_SYMBOL_NAME); + if (tls_symbol) { + str8_list_pushf(scratch.arena, &roots, MSCRT_TLS_SYMBOL_NAME); + } + + // include symbols + str8_list_concat_in_place(&roots, &include_symbol_list); + + // push tasks for each root symbol + for (String8Node *root_n = roots.first; root_n != 0; root_n = root_n->next) { + LNK_Symbol *root = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, root_n->string); + + struct Task *t = push_array(scratch.arena, struct Task, 1); + t->obj = root->u.defined.obj; + t->relocs.count = 1; + t->relocs.v = push_array(scratch.arena, COFF_Reloc, 1); + t->relocs.v[0].isymbol = root->u.defined.symbol_idx; + + SLLStackPush(task_stack, t); + } + + // push task for every non-COMDAT section + for EachIndex(obj_idx, objs_count) { + LNK_Obj *obj = objs[obj_idx]; + for EachIndex(sect_idx, obj->header.section_count_no_null) { + if (lnk_is_coff_section_debug(obj, sect_idx)) { continue; } + + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); + if ((~section_header->flags & COFF_SectionFlag_LnkCOMDAT) && (~section_header->flags & COFF_SectionFlag_LnkRemove)) { + // extract reloc info + COFF_RelocArray relocs = lnk_coff_reloc_info_from_section_number(obj, sect_idx+1); + + // alloc new tasks + U64 new_task_count = CeilIntegerDiv(relocs.count, RELOCS_PER_TASK); + struct Task *new_tasks = push_array(scratch.arena, struct Task, new_task_count); + + // divide relocs and push tasks + for EachIndex(new_task_idx, new_task_count) { + struct Task *t = new_tasks + new_task_idx; + t->obj = obj; + t->relocs.count = Min(RELOCS_PER_TASK, relocs.count - (new_task_idx * RELOCS_PER_TASK)); + t->relocs.v = relocs.v + (new_task_idx * RELOCS_PER_TASK); + SLLStackPush(task_stack, t); + } + } + } } } + + // + // begin with COMDAT sections flagged as removed + // + for EachIndex(obj_idx, objs_count) { + LNK_Obj *obj = objs[obj_idx]; + COFF_SectionHeader *section_table = lnk_coff_section_table_from_obj(obj); + for EachIndex(sect_idx, obj->header.section_count_no_null) { + COFF_SectionHeader *section_header = §ion_table[sect_idx]; + if (section_header->flags & COFF_SectionFlag_LnkCOMDAT) { + section_header->flags |= COFF_SectionFlag_LnkRemove; + } + } + } + + // + // init per section flag array + // + B8 **was_section_visited = push_array(scratch.arena, B8 *, objs_count); + for EachIndex(obj_idx, objs_count) { was_section_visited[obj_idx] = push_array(scratch.arena, B8, objs[obj_idx]->header.section_count_no_null + 1); } + + // + // walk relocations and unset the remove flag on visited sections + // + for (; task_stack; ) { + struct Task *t = task_stack; SLLStackPop(task_stack); + for EachIndex(reloc_idx, t->relocs.count) { + COFF_Reloc *reloc = &t->relocs.v[reloc_idx]; + LNK_SymbolDefined reloc_symbol = {0}; + B32 is_reloc_symbol_resolved = lnk_resolve_symbol(symtab, symlinks[t->obj->input_idx], (LNK_SymbolDefined){ .obj = t->obj, .symbol_idx = reloc->isymbol }, &reloc_symbol); + if (is_reloc_symbol_resolved) { + // parse and interp reloc symbol + LNK_Obj *reloc_obj = reloc_symbol.obj; + COFF_ParsedSymbol reloc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(reloc_obj, reloc_symbol.symbol_idx); + COFF_SymbolValueInterpType reloc_interp = coff_interp_from_parsed_symbol(reloc_parsed); + if (reloc_interp == COFF_SymbolValueInterp_Regular) { + // make section number list (reloc section + associates) + U32Node *section_number_list = push_array(scratch.arena, U32Node, 1); + section_number_list->data = reloc_parsed.section_number; + section_number_list->next = reloc_obj->associated_sections[reloc_parsed.section_number]; + + // push section headers relocations to the task stack + for (U32Node *section_number_n = section_number_list; section_number_n != 0; section_number_n = section_number_n->next) { + if (was_section_visited[reloc_symbol.obj->input_idx][section_number_n->data]) { continue; } + was_section_visited[reloc_symbol.obj->input_idx][section_number_n->data] = 1; + + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(reloc_symbol.obj, section_number_n->data); + if (lnk_is_coff_section_debug(reloc_obj, section_number_n->data-1)) { continue; } + + // skip regular sections that were removed + if (~section_header->flags & COFF_SectionFlag_LnkCOMDAT && section_header->flags & COFF_SectionFlag_LnkRemove) { continue; } + + // on reachable COMDAT sections, unset remove flag + if (section_header->flags & COFF_SectionFlag_LnkCOMDAT) { section_header->flags &= ~COFF_SectionFlag_LnkRemove; } + + // extract reloc info + COFF_RelocArray relocs = lnk_coff_reloc_info_from_section_number(reloc_symbol.obj, section_number_n->data); + + // alloc new tasks + U64 new_task_count = CeilIntegerDiv(relocs.count, RELOCS_PER_TASK); + struct Task *new_tasks = push_array(scratch.arena, struct Task, new_task_count); + + // divide relocs and push tasks + for EachIndex(new_task_idx, new_task_count) { + struct Task *t = new_tasks + new_task_idx; + t->obj = reloc_obj; + t->relocs.count = Min(RELOCS_PER_TASK, relocs.count - (new_task_idx * RELOCS_PER_TASK)); + t->relocs.v = relocs.v + (new_task_idx * RELOCS_PER_TASK); + SLLStackPush(task_stack, t); + } + } + } + } + } + } + + // + // unset flag on debug sections that associate with live sections + // + for EachIndex(obj_idx, objs_count) { + LNK_Obj *obj = objs[obj_idx]; + for EachIndex(sect_idx, obj->header.section_count_no_null) { + U32 section_number = sect_idx+1; + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, section_number); + if (section_header->flags & COFF_SectionFlag_LnkRemove) { continue; } + for (U32Node *section_number_n = obj->associated_sections[section_number]; section_number_n != 0; section_number_n = section_number_n->next) { + if (lnk_is_coff_section_debug(obj, section_number_n->data-1)) { + COFF_SectionHeader *associated_section_header = lnk_coff_section_header_from_section_number(obj, section_number_n->data); + associated_section_header->flags &= ~COFF_SectionFlag_LnkRemove; + } + } + } + } + + scratch_end(scratch); + ProfEnd(); } internal @@ -2380,36 +2584,15 @@ THREAD_POOL_TASK_FUNC(lnk_flag_debug_symbols_task) internal THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_contribs_task) { - Temp scratch = scratch_begin(&arena, 1); - LNK_BuildImageTask *task = raw_task; U64 obj_idx = task_id; LNK_Obj *obj = task->objs[obj_idx]; - ProfBegin("Build Symlinks"); - LNK_Symbol **symlinks = push_array(scratch.arena, LNK_Symbol *, obj->header.section_count_no_null+1); - { - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular && symbol.aux_symbol_count == 0 && symbol.storage_class == COFF_SymStorageClass_External) { - COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { - if (symlinks[symbol.section_number] == 0 || symbol.value == 0) { - symlinks[symbol.section_number] = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); - } - } - } - } - } - ProfEnd(); - - ProfBeginV("Set COMDAT Section Contribs"); + ProfBeginV("Set COMDAT Section Contribs [%S]", obj->path); for EachIndex(sect_idx, obj->header.section_count_no_null) { COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); if (section_header->flags & COFF_SectionFlag_LnkCOMDAT) { - LNK_Symbol *sym = symlinks[sect_idx+1]; + LNK_Symbol *sym = task->symlinks[obj_idx][sect_idx+1]; if (sym) { COFF_ParsedSymbol parsed_sym = lnk_parsed_symbol_from_coff_symbol_idx(sym->u.defined.obj, sym->u.defined.symbol_idx); task->sect_map[obj_idx][sect_idx] = task->sect_map[sym->u.defined.obj->input_idx][parsed_sym.section_number - 1]; @@ -2417,208 +2600,6 @@ THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_contribs_task) } } ProfEnd(); - - scratch_end(scratch); -} - -internal B32 -lnk_resolve_symbol(LNK_SymbolTable *symtab, LNK_SymbolDefined symbol, LNK_SymbolDefined *symbol_out) -{ - B32 is_resolved = 1; - COFF_ParsedSymbol symbol_parsed = lnk_parsed_symbol_from_coff_symbol_idx(symbol.obj, symbol.symbol_idx); - COFF_SymbolValueInterpType symbol_interp = coff_interp_symbol(symbol_parsed.section_number, symbol_parsed.value, symbol_parsed.storage_class); - switch (symbol_interp) { - case COFF_SymbolValueInterp_Regular: { *symbol_out = symbol; } break; - case COFF_SymbolValueInterp_Weak: { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol_parsed.name); - COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_coff_symbol_idx(defn->u.defined.obj, defn->u.defined.symbol_idx); - COFF_SymbolValueInterpType defn_interp = coff_interp_symbol(defn_parsed.section_number, defn_parsed.value, defn_parsed.storage_class); - if (defn_interp != COFF_SymbolValueInterp_Undefined) { - *symbol_out = defn->u.defined; - } else { - is_resolved = 0; - } - } break; - case COFF_SymbolValueInterp_Undefined: { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol_parsed.name); - if (defn) { - *symbol_out = defn->u.defined; - } else { - is_resolved = 0; - } - } break; - case COFF_SymbolValueInterp_Common: { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol_parsed.name); - *symbol_out = defn->u.defined; - } break; - case COFF_SymbolValueInterp_Abs: { - if (symbol_parsed.storage_class == COFF_SymStorageClass_External) { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol_parsed.name); - *symbol_out = defn->u.defined; - } else { - *symbol_out = symbol; - } - } break; - case COFF_SymbolValueInterp_Debug: { *symbol_out = symbol; } break; - } - return is_resolved; -} - -internal void -lnk_gc_sections(LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs, LNK_SectionContrib ***sect_map, U64 roots_count, LNK_Symbol **roots) -{ - Temp scratch = scratch_begin(0,0); - - for EachIndex(obj_idx, objs_count) { - LNK_Obj *obj = objs[obj_idx]; - for EachIndex(sect_idx, obj->header.section_count_no_null) { - // is this a COMDAT section? - U32 comdat_idx = obj->comdats[sect_idx]; - if (comdat_idx == max_U32) { continue; } - - // is this COMDAT associative section? - COFF_ParsedSymbol comdat_symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, comdat_idx); - COFF_ComdatSelectType comdat_selection = COFF_ComdatSelect_Null; - U32 comdat_section_number = 0; - coff_parse_secdef(comdat_symbol, obj->header.is_big_obj, &comdat_selection, &comdat_section_number, 0, 0); - if (comdat_selection != COFF_ComdatSelect_Associative) { continue; } - - // parse head section definition - COFF_ParsedSymbol head_symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, obj->comdats[comdat_section_number-1]); - U32 head_section_number = 0; - coff_parse_secdef(head_symbol, obj->header.is_big_obj, 0, &comdat_section_number, 0, 0); - - // patch section definitions - if (obj->header.is_big_obj) { - COFF_Symbol32 *symbol32 = comdat_symbol.raw_symbol; - COFF_SymbolSecDef *secdef = (COFF_SymbolSecDef *)(symbol32 + 1); - secdef->number_lo = Extract16(head_section_number, 0); - secdef->number_hi = Extract16(head_section_number, 1); - - COFF_Symbol32 *head_symbol32 = head_symbol.raw_symbol; - COFF_SymbolSecDef *head_secdef = (COFF_SymbolSecDef *)(head_symbol32 + 1); - head_secdef->number_lo = Extract16(sect_idx + 1, 0); - head_secdef->number_hi = Extract16(sect_idx + 1, 1); - } else { - COFF_Symbol16 *symbol16 = comdat_symbol.raw_symbol; - COFF_SymbolSecDef *secdef = (COFF_SymbolSecDef *)(symbol16 + 1); - secdef->number_lo = safe_cast_u16(head_section_number); - - COFF_Symbol16 *head_symbol16 = head_symbol.raw_symbol; - COFF_SymbolSecDef *head_secdef = (COFF_SymbolSecDef *)(head_symbol16 + 1); - head_secdef->number_lo = safe_cast_u16(sect_idx + 1); - } - } - } - - struct Task { - struct Task *next; - LNK_Obj *obj; - COFF_RelocArray relocs; - }; - - U64 relocs_per_task = 1024; - struct Task *tasks = 0; - - for EachIndex(root_idx, roots_count) { - LNK_Symbol *root = roots[root_idx]; - LNK_Obj *root_obj = root->u.defined.obj; - COFF_ParsedSymbol root_symbol = lnk_parsed_symbol_from_coff_symbol_idx(root_obj, root->u.defined.symbol_idx); - COFF_SymbolValueInterpType root_interp = coff_interp_symbol(root_symbol.section_number, root_symbol.value, root_symbol.storage_class); - - if (root_interp == COFF_SymbolValueInterp_Regular) { - LNK_SectionContrib *sc = sect_map[root_obj->input_idx][root_symbol.section_number-1]; - LNK_Obj *sc_obj = objs[sc->u.obj_idx]; - COFF_SectionHeader *sc_section_header = lnk_coff_section_header_from_section_number(sc_obj, sc->u.obj_sect_idx+1); - - if (sc_section_header->flags & COFF_SectionFlag_LnkRemove) { continue; } - - COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(sc_obj->data, sc_section_header); - COFF_Reloc *relocs = str8_deserial_get_raw_ptr(sc_obj->data, reloc_info.array_off, sizeof(*relocs)*reloc_info.count); - - U64 new_task_count = CeilIntegerDiv(reloc_info.count, relocs_per_task); - struct Task *new_tasks = push_array(scratch.arena, struct Task, new_task_count); - - for EachIndex(new_task_idx, new_task_count) { - struct Task *t = new_tasks + new_task_idx; - t->obj = sc_obj; - t->relocs.count = Min(relocs_per_task, reloc_info.count - (new_task_idx * relocs_per_task)); - t->relocs.v = relocs + (new_task_idx * relocs_per_task); - SLLStackPush(tasks, t); - } - } - } - - B8 **was_section_visited = push_array(scratch.arena, B8 *, objs_count); - for EachIndex(obj_idx, objs_count) { was_section_visited[obj_idx] = push_array(scratch.arena, B8, objs[obj_idx]->header.section_count_no_null + 1); } - - for (; tasks; ) { - struct Task *t = tasks; SLLStackPop(tasks); - - for EachIndex(reloc_idx, t->relocs.count) { - COFF_Reloc *reloc = &t->relocs.v[reloc_idx]; - - LNK_SymbolDefined symbol_to_resolve = { .obj = t->obj, .symbol_idx = reloc->isymbol }; - LNK_SymbolDefined resolved_symbol = {0}; - B32 is_symbol_resolved = lnk_resolve_symbol(symtab, symbol_to_resolve, &resolved_symbol); - if ( ! is_symbol_resolved) { continue; } - - LNK_Obj *reloc_obj = resolved_symbol.obj; - U32 reloc_symbol_idx = resolved_symbol.symbol_idx; - - COFF_ParsedSymbol reloc_symbol = lnk_parsed_symbol_from_coff_symbol_idx(reloc_obj, reloc_symbol_idx); - COFF_SymbolValueInterpType reloc_symbol_interp = coff_interp_symbol(reloc_symbol.section_number, reloc_symbol.value, reloc_symbol.storage_class); - - if (reloc_symbol_interp == COFF_SymbolValueInterp_Regular) { - U64List section_number_list = {0}; - for (U32 current_section_number = reloc_symbol.section_number;;) { - // sotre section number - u64_list_push(scratch.arena, §ion_number_list, current_section_number); - - // does section have a section definition symbol? - U32 comdat_symbol_idx = reloc_obj->comdats[reloc_symbol.section_number-1]; - if (comdat_symbol_idx == max_U32) { break; } - COFF_ParsedSymbol secdef = lnk_parsed_symbol_from_coff_symbol_idx(reloc_obj, comdat_symbol_idx); - - // parse section definition symbol and recurse to associative section - U32 associate_section_number; - coff_parse_secdef(secdef, reloc_obj->header.is_big_obj, 0, &associate_section_number, 0, 0); - if (associate_section_number == 0) { break; } - - // recurse to associate section - current_section_number = associate_section_number; - } - - // push section headers relocations to the task stack - for (U64Node *section_number_n = section_number_list.first; section_number_n != 0; section_number_n = section_number_n->next) { - if (was_section_visited[t->obj->input_idx][section_number_n->data]) { continue; } - was_section_visited[t->obj->input_idx][section_number_n->data] = 1; - - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(t->obj, section_number_n->data); - if (section_header->flags & COFF_SectionFlag_LnkRemove) { continue; } - - // extract reloc info - COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(reloc_obj->data, section_header); - COFF_Reloc *relocs = str8_deserial_get_raw_ptr(reloc_obj->data, reloc_info.array_off, sizeof(*relocs)*reloc_info.count); - - // alloc new tasks - U64 new_task_count = CeilIntegerDiv(reloc_info.count, relocs_per_task); - struct Task *new_tasks = push_array(scratch.arena, struct Task, new_task_count); - - // push tasks - for EachIndex(new_task_idx, new_task_count) { - struct Task *t = new_tasks + new_task_idx; - t->obj = reloc_obj; - t->relocs.count = Min(relocs_per_task, reloc_info.count - (new_task_idx * relocs_per_task)); - t->relocs.v = relocs + (new_task_idx * relocs_per_task); - SLLStackPush(tasks, t); - } - } - } - } - } - - scratch_end(scratch); } internal @@ -2632,25 +2613,6 @@ THREAD_POOL_TASK_FUNC(lnk_patch_comdat_leaders_task) ProfBeginV("%S", obj->path); - ProfBegin("Build Symlinks"); - LNK_Symbol **symlinks = push_array(scratch.arena, LNK_Symbol *, obj->header.section_count_no_null+1); - { - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular && symbol.aux_symbol_count == 0 && symbol.storage_class == COFF_SymStorageClass_External) { - COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { - if (symlinks[symbol.section_number] == 0 || symbol.value == 0) { - symlinks[symbol.section_number] = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol.name); - } - } - } - } - } - ProfEnd(); - ProfBegin("Patch COMDAT Offsets"); COFF_ParsedSymbol symbol; for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { @@ -2658,7 +2620,7 @@ THREAD_POOL_TASK_FUNC(lnk_patch_comdat_leaders_task) COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular) { - LNK_Symbol *symlink = symlinks[symbol.section_number]; + LNK_Symbol *symlink = task->symlinks[obj_idx][symbol.section_number]; if (symlink && symlink->u.defined.obj != obj) { U32 section_number; U32 value; @@ -2846,7 +2808,7 @@ THREAD_POOL_TASK_FUNC(lnk_patch_regular_symbols_task) } internal void -lnk_patch_obj_symtab(LNK_SymbolTable *symtab, LNK_Obj *obj, B8 *was_symbol_patched, COFF_SymbolValueInterpType fixup_type) +lnk_patch_obj_symtab(LNK_SymbolTable *symtab, LNK_Symbol **symlinks, LNK_Obj *obj, B8 *was_symbol_patched, COFF_SymbolValueInterpType fixup_type) { ProfBeginV("%S\n", obj->path); @@ -2860,7 +2822,7 @@ lnk_patch_obj_symtab(LNK_SymbolTable *symtab, LNK_Obj *obj, B8 *was_symbol_patch LNK_SymbolDefined symbol_to_resolve = { .obj = obj, .symbol_idx = symbol_idx }; LNK_SymbolDefined fixup_symbol = {0}; - B32 is_resolved = lnk_resolve_symbol(symtab, symbol_to_resolve, &fixup_symbol); + B32 is_resolved = lnk_resolve_symbol(symtab, symlinks, symbol_to_resolve, &fixup_symbol); if (is_resolved) { COFF_ParsedSymbol fixup_src = lnk_parsed_symbol_from_coff_symbol_idx(fixup_symbol.obj, fixup_symbol.symbol_idx); COFF_SymbolValueInterpType fixup_type = coff_interp_symbol(fixup_src.section_number, fixup_src.value, fixup_src.storage_class); @@ -2893,28 +2855,28 @@ internal THREAD_POOL_TASK_FUNC(lnk_patch_common_symbols_task) { LNK_BuildImageTask *task = raw_task; - lnk_patch_obj_symtab(task->symtab, task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Common); + lnk_patch_obj_symtab(task->symtab, task->symlinks[task_id], task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Common); } internal THREAD_POOL_TASK_FUNC(lnk_patch_abs_symbols_task) { LNK_BuildImageTask *task = raw_task; - lnk_patch_obj_symtab(task->symtab, task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Abs); + lnk_patch_obj_symtab(task->symtab, task->symlinks[task_id], task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Abs); } internal THREAD_POOL_TASK_FUNC(lnk_patch_undefined_symbols_task) { LNK_BuildImageTask *task = raw_task; - lnk_patch_obj_symtab(task->symtab, task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Undefined); + lnk_patch_obj_symtab(task->symtab, task->symlinks[task_id], task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Undefined); } internal THREAD_POOL_TASK_FUNC(lnk_patch_weak_symbols_task) { LNK_BuildImageTask *task = raw_task; - lnk_patch_obj_symtab(task->symtab, task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Weak); + lnk_patch_obj_symtab(task->symtab, task->symlinks[task_id], task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Weak); } internal U64 @@ -2994,7 +2956,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) if (symbol.section_number == LNK_REMOVED_SECTION_NUMBER_16 || symbol.section_number == LNK_REMOVED_SECTION_NUMBER_32) { if (!lnk_is_coff_section_debug(obj, sect_idx)) { String8 sect_name = coff_name_from_section_header(string_table, §ion_table[sect_idx]); - lnk_error_obj(LNK_Error_RelocationAgainstRemovedSection, obj, "relocating against symbol that is in a removed section (symbol: %S, reloc-section: %S %llxh, reloc-index: %llxh)", symbol.name, sect_name, sect_idx+1, reloc_idx); + lnk_error_obj(LNK_Error_RelocationAgainstRemovedSection, obj, "relocating against symbol that is in a removed section (symbol: %S, reloc-section: %S 0x%llx, reloc-index: 0x%llx)", symbol.name, sect_name, sect_idx+1, reloc_idx); } continue; } @@ -4027,20 +3989,42 @@ lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config } internal LNK_ImageContext -lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs) +lnk_build_image(TP_Arena *arena, + TP_Context *tp, + LNK_Config *config, + LNK_SymbolTable *symtab, + PE_ExportParseList export_symbol_list, + String8List include_symbol_list, + String8 delay_load_helper_name, + U64 objs_count, + LNK_Obj **objs) { ProfBegin("Image"); lnk_timer_begin(LNK_Timer_Image); Temp scratch = scratch_begin(arena->v, arena->count); + // + // gather symbol links to COMDAT sections + // + LNK_Symbol ***symlinks = push_array(arena->v[0], LNK_Symbol **, objs_count); + for EachIndex(obj_idx, objs_count) { symlinks[obj_idx] = lnk_symlinks_from_obj(scratch.arena, symtab, objs[obj_idx]); } + + // + // remove unreachable COMDAT sections + // + if (config->opt_ref == LNK_SwitchState_Yes) { + lnk_gc_comdats(symtab, objs_count, objs, symlinks, config, export_symbol_list, include_symbol_list, delay_load_helper_name); + } + + // // init section table + // LNK_SectionTable *sectab = lnk_section_table_alloc(); lnk_section_table_push(sectab, str8_lit(".text" ), PE_TEXT_SECTION_FLAGS ); lnk_section_table_push(sectab, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS); lnk_section_table_push(sectab, str8_lit(".data" ), PE_DATA_SECTION_FLAGS ); lnk_section_table_push(sectab, str8_lit(".bss" ), PE_BSS_SECTION_FLAGS ); - LNK_Section *common_block_sect = lnk_section_table_search(sectab, str8_lit(".bss"), PE_BSS_SECTION_FLAGS); LNK_BuildImageTask task = { @@ -4051,6 +4035,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT .function_pad_min = config->function_pad_min, .default_align = coff_default_align_from_machine(config->machine), .null_sc = push_array(arena->v[0], LNK_SectionContrib, 1), + .symlinks = symlinks, }; { @@ -4183,11 +4168,6 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT tp_for_parallel_prof(tp, 0, objs_count, lnk_set_comdat_leaders_contribs_task, &task, "Update Section Map With COMDAT Leader Contribs"); - if (config->opt_ref == LNK_SwitchState_Yes) { - //LNK_Symbol *entry_point_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, config->entry_point_name); - //lnk_gc_sections(symtab, objs_count, objs, task.sect_map, task.obj_symtab_fixups, 1, &entry_point_symbol); - } - // build common block // // TODO: build common block in .bss and merge with .data @@ -4944,7 +4924,7 @@ lnk_run(TP_Context *tp, TP_Arena *arena, LNK_Config *config) // // Image // - LNK_ImageContext image_ctx = lnk_build_image(arena, tp, config, link_ctx.symtab, link_ctx.objs_count, link_ctx.objs); + LNK_ImageContext image_ctx = lnk_build_image(arena, tp, config, link_ctx.symtab, link_ctx.export_symbol_list, link_ctx.include_symbol_list, link_ctx.delay_load_helper_name, link_ctx.objs_count, link_ctx.objs); // Write image in the background LNK_WriteThreadContext *image_write_ctx = push_array(scratch.arena, LNK_WriteThreadContext, 1); diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 206847e5..b8bb1b61 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -11,6 +11,8 @@ typedef struct LNK_LinkContext U64 objs_count; LNK_Obj **objs; PE_ExportParseList export_symbol_list; + String8List include_symbol_list; + String8 delay_load_helper_name; LNK_LibList lib_index[LNK_InputSource_Count]; } LNK_LinkContext; @@ -82,6 +84,7 @@ typedef struct U64 function_pad_min; U64 default_align; LNK_SectionContrib *null_sc; + LNK_Symbol ***symlinks; LNK_SectionContrib ***sect_map; HashTable *contribs_ht; LNK_SectionArray image_sects; @@ -220,7 +223,7 @@ internal LNK_LinkContext lnk_build_link_context(TP_Context *tp, TP_Arena *tp_are internal String8List lnk_build_guard_tables(TP_Context *tp, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs, COFF_MachineType machine, String8 entry_point_name, LNK_GuardFlags guard_flags, B32 emit_suppress_flag); internal String8List lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_temp, LNK_Config *config, U64 objs_count, LNK_Obj **objs); internal String8List lnk_build_win32_image_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sect_arr, U64 expected_image_header_size); -internal LNK_ImageContext lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, U64 obj_count, LNK_Obj **objs); +internal LNK_ImageContext lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, PE_ExportParseList export_symbol_list, String8List include_symbol_list, String8 delay_load_helper_name, U64 obj_count, LNK_Obj **objs); // --- Logger ------------------------------------------------------------------ diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 8ce4827e..cde39126 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -491,6 +491,53 @@ lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number) return section_header; } +internal COFF_SectionHeader * +lnk_coff_section_table_from_obj(LNK_Obj *obj) +{ + return (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; +} + +internal LNK_Symbol ** +lnk_symlinks_from_obj(Arena *arena, LNK_SymbolTable *symtab, LNK_Obj *obj) +{ + LNK_Symbol **symlinks = push_array(arena, LNK_Symbol *, obj->header.section_count_no_null+1); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular && symbol.aux_symbol_count == 0 && symbol.storage_class == COFF_SymStorageClass_External) { + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { + if (symlinks[symbol.section_number] == 0 || symbol.value == 0) { + symlinks[symbol.section_number] = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); + } + } + } + } + return symlinks; +} + +internal String8 +lnk_symlink_from_section_number(LNK_Obj *obj, U64 section_number) +{ + COFF_ParsedSymbol symbol = {0}; + U32 symbol_idx = obj->symlinks[section_number]; + if (symbol_idx != max_U32) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + } + return symbol.name; +} + +internal COFF_RelocArray +lnk_coff_reloc_info_from_section_number(LNK_Obj *obj, U64 section_number) +{ + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, section_number); + COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, section_header); + COFF_Reloc *relocs = str8_deserial_get_raw_ptr(obj->data, reloc_info.array_off, sizeof(*relocs)*reloc_info.count); + COFF_RelocArray result = { .count = reloc_info.count, .v = relocs }; + return result; +} + internal B32 lnk_try_comdat_props_from_section_number(LNK_Obj *obj, U32 section_number, COFF_ComdatSelectType *select_out, U32 *section_number_out, U32 *section_length_out, U32 *check_sum_out) { diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index 1f0d08f3..adeb0aeb 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -15,6 +15,7 @@ typedef struct LNK_Obj U32 *comdats; B8 hotpatch; U32Node **associated_sections; + U32 *symlinks; } LNK_Obj; typedef struct LNK_ObjNode @@ -110,6 +111,7 @@ internal U32 lnk_obj_get_vol_md(LNK_Obj *obj); internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff(LNK_Obj *obj, void *coff_symbol); internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff_symbol_idx(LNK_Obj *obj, U64 symbol_idx); internal COFF_SectionHeader * lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number); +internal COFF_SectionHeader * lnk_coff_section_table_from_obj(LNK_Obj *obj); internal B32 lnk_try_comdat_props_from_section_number(LNK_Obj *obj, U32 section_number, COFF_ComdatSelectType *select_out, U32 *section_number_out, U32 *section_length_out, U32 *check_sum_out); internal B32 lnk_is_coff_section_debug(LNK_Obj *obj, U64 sect_idx); From ffc9317067870c35845b7d6bcad764bc7aee8592 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 17 Jul 2025 16:27:14 -0700 Subject: [PATCH 302/372] add a relocation to "a" to prevent linker from removing .test --- src/torture/torture.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/torture/torture.c b/src/torture/torture.c index 35f9943a..9288e298 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -2348,18 +2348,34 @@ t_comdat_no_duplicates(void) Temp scratch = scratch_begin(0,0); T_Result result = T_Result_Fail; + String8 test_obj; { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); COFF_ObjSection *test_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".test"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("a")); coff_obj_writer_push_symbol_secdef(obj_writer, test_sect, COFF_ComdatSelect_NoDuplicates); coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("a"), 0, test_sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + test_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } - if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } } - t_write_entry_obj(); + String8 entry_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("a")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + if (!t_write_file(str8_lit("a.obj"), test_obj)) { goto exit; } + if (!t_write_file(str8_lit("b.obj"), test_obj)) { goto exit; } + if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } int duplicates_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); if (duplicates_exit_code == 0) { goto exit; } @@ -2373,6 +2389,7 @@ t_comdat_no_duplicates(void) COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; String8 string_table = str8_substr(exe, pe.string_table_range); COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".test")); + if (!sect) { goto exit; } String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); if (!str8_match(data, str8_lit("a"), 0)) { goto exit; } From 07c71787702fcd0c3410a96167626760b791dc71 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 18 Jul 2025 23:31:56 -0700 Subject: [PATCH 303/372] filter out removed COMDATs from the PDB public symbols --- src/linker/lnk.c | 170 +++++++++++++++++++--------------- src/linker/lnk.h | 3 + src/linker/lnk_debug_info.c | 53 ++++------- src/linker/lnk_obj.h | 1 + src/linker/lnk_symbol_table.c | 11 +-- src/linker/lnk_symbol_table.h | 2 + 6 files changed, 122 insertions(+), 118 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index a6d7930a..acb7b1fe 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -465,6 +465,29 @@ lnk_manifest_from_inputs(Arena *arena, return manifest_data; } +internal String8 +lnk_make_null_obj(Arena *arena) +{ + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_Unknown); + + // push .debug$T sections with null leaf + String8 null_debug_data; + { + String8 raw_null_leaf = cv_serialize_raw_leaf(obj_writer->arena, CV_LeafKind_NOTYPE, str8(0,0), 1); + + String8List srl = {0}; + str8_serial_begin(obj_writer->arena, &srl); + str8_serial_push_u32(obj_writer->arena, &srl, CV_Signature_C13); + str8_serial_push_string(obj_writer->arena, &srl, raw_null_leaf); + null_debug_data = str8_serial_end(obj_writer->arena, &srl); + } + coff_obj_writer_push_section(obj_writer, str8_lit(".debug$T"), PE_DEBUG_SECTION_FLAGS, null_debug_data); + + String8 obj = coff_obj_writer_serialize(arena, obj_writer); + coff_obj_writer_release(&obj_writer); + return obj; +} + internal int lnk_res_string_id_is_before(void *raw_a, void *raw_b) { @@ -487,7 +510,6 @@ lnk_res_number_id_is_before(void *raw_a, void *raw_b) return is_before; } - internal void lnk_serialize_pe_resource_tree(COFF_ObjWriter *obj_writer, PE_ResourceDir *root_dir) { @@ -852,6 +874,12 @@ lnk_make_linker_coff_obj(Arena *arena, return obj; } +internal U32 +lnk_removed_section_number_from_obj(LNK_Obj *obj) +{ + return obj->header.is_big_obj ? LNK_REMOVED_SECTION_NUMBER_32 : LNK_REMOVED_SECTION_NUMBER_16; +} + internal String8 lnk_get_lib_name(String8 path) { @@ -1207,16 +1235,8 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) State_LookupEntryPoint, State_ReportUnresolvedSymbols, }; - struct StateNode { - struct StateNode *next; - enum State state; - }; - struct StateList { - U64 count; - struct StateNode *first; - struct StateNode *last; - }; - + struct StateNode { struct StateNode *next; enum State state; }; + struct StateList { U64 count; struct StateNode *first; struct StateNode *last; }; #define state_list_push(a, l, s) do { \ struct StateNode *node = push_array(a, struct StateNode, 1); \ node->state = s; \ @@ -1226,52 +1246,54 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) #define state_list_pop(l) (l).first->state; SLLQueuePop((l).first, (l).last); (l).count -= 1 ProfBeginFunction(); - Temp scratch = scratch_begin(tp_arena->v, tp_arena->count); // inputs - String8List include_symbol_list = config->include_symbol_list; - String8List input_disallow_lib_list = config->disallow_lib_list; - String8List input_manifest_path_list = str8_list_copy(scratch.arena, &config->input_list[LNK_Input_Manifest]); - String8List manifest_dep_list = str8_list_copy(scratch.arena, &config->manifest_dependency_list); - PE_ExportParseList export_symbol_list = {0}; - HashTable *export_ht = hash_table_init(scratch.arena, max_U16/2); - LNK_InputObjList input_obj_list = {0}; - LNK_InputImportList input_import_list = {0}; - LNK_SymbolList input_weak_list = {0}; - LNK_InputLibList input_libs[LNK_InputSource_Count] = { - config->input_list[LNK_Input_Lib], // command line libs - config->input_default_lib_list // default libs - }; + String8List include_symbol_list = config->include_symbol_list; + String8List input_disallow_lib_list = config->disallow_lib_list; + String8List input_manifest_path_list = str8_list_copy(scratch.arena, &config->input_list[LNK_Input_Manifest]); + String8List manifest_dep_list = str8_list_copy(scratch.arena, &config->manifest_dependency_list); + PE_ExportParseList export_symbol_list = {0}; + HashTable *export_ht = hash_table_init(scratch.arena, max_U16/2); + LNK_InputObjList input_obj_list = {0}; + LNK_InputImportList input_import_list = {0}; + LNK_SymbolList input_weak_list = {0}; + LNK_InputLibList input_libs[LNK_InputSource_Count] = { config->input_list[LNK_Input_Lib], config->input_default_lib_list }; - // :null_obj - lnk_input_obj_list_push(scratch.arena, &input_obj_list); + // input :null_obj + { + LNK_InputObj *null_obj_input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + null_obj_input->path = str8_lit("* Null Obj *"); + null_obj_input->dedup_id = null_obj_input->path; + null_obj_input->data = lnk_make_null_obj(tp_arena->v[0]); + os_write_data_to_file_path(str8_lit("null.obj"), null_obj_input->data); + } // input command line objs LNK_InputObjList cmd_line_obj_inputs = lnk_input_obj_list_from_string_list(scratch.arena, config->input_list[LNK_Input_Obj]); lnk_input_obj_list_concat_in_place(&input_obj_list, &cmd_line_obj_inputs); // state - LNK_SymbolTable *symtab = lnk_symbol_table_init(tp_arena); - LNK_SectionTable *sectab = 0; - HashTable *static_imports = hash_table_init(scratch.arena, 512); - HashTable *delayed_imports = hash_table_init(scratch.arena, 512); - LNK_ObjList obj_list = {0}; - LNK_LibList lib_index[LNK_InputSource_Count] = {0}; - Arena *ht_arena = arena_alloc(); - String8 delay_load_helper_name = {0}; - HashTable *disallow_lib_ht = hash_table_init(scratch.arena, 0x100); - HashTable *delay_load_dll_ht = hash_table_init(scratch.arena, 0x100); - HashTable *loaded_lib_ht = hash_table_init(scratch.arena, 0x100); - HashTable *missing_lib_ht = hash_table_init(scratch.arena, 0x100); - HashTable *loaded_obj_ht = hash_table_init(scratch.arena, 0x4000); - LNK_SymbolList lookup_undef_list = {0}; - LNK_SymbolList lookup_weak_list = {0}; - LNK_SymbolList unresolved_undef_list = {0}; - LNK_SymbolList unresolved_weak_list = {0}; - U64 entry_point_lookup_attempts = 0; - B32 report_unresolved_symbols = 1; - B32 input_linker_objs = 1; + LNK_SymbolTable *symtab = lnk_symbol_table_init(tp_arena); + LNK_SectionTable *sectab = 0; + HashTable *static_imports = hash_table_init(scratch.arena, 512); + HashTable *delayed_imports = hash_table_init(scratch.arena, 512); + LNK_ObjList obj_list = {0}; + LNK_LibList lib_index[LNK_InputSource_Count] = {0}; + Arena *ht_arena = arena_alloc(); + String8 delay_load_helper_name = {0}; + HashTable *disallow_lib_ht = hash_table_init(scratch.arena, 0x100); + HashTable *delay_load_dll_ht = hash_table_init(scratch.arena, 0x100); + HashTable *loaded_lib_ht = hash_table_init(scratch.arena, 0x100); + HashTable *missing_lib_ht = hash_table_init(scratch.arena, 0x100); + HashTable *loaded_obj_ht = hash_table_init(scratch.arena, 0x4000); + LNK_SymbolList lookup_undef_list = {0}; + LNK_SymbolList lookup_weak_list = {0}; + LNK_SymbolList unresolved_undef_list = {0}; + LNK_SymbolList unresolved_weak_list = {0}; + U64 entry_point_lookup_attempts = 0; + B32 report_unresolved_symbols = 1; + B32 input_linker_objs = 1; // // Init state machine @@ -1306,9 +1328,11 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) lnk_symbol_table_push_alt_name(symtab, 0, alt_n->data.from, alt_n->data.to); } - // run states + // + // Run states + // for (;;) { - while (state_list.count) { + for (; state_list.count > 0; ) { enum State state = state_list_pop(state_list); switch (state) { case State_Null: break; @@ -2275,7 +2299,8 @@ lnk_resolve_symbol(LNK_SymbolTable *symtab, LNK_Symbol **symlinks, LNK_SymbolDef } internal void -lnk_gc_comdats(LNK_SymbolTable *symtab, +lnk_gc_comdats(TP_Context *tp, + LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs, LNK_Symbol ***symlinks, @@ -2590,14 +2615,16 @@ THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_contribs_task) ProfBeginV("Set COMDAT Section Contribs [%S]", obj->path); for EachIndex(sect_idx, obj->header.section_count_no_null) { - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); - if (section_header->flags & COFF_SectionFlag_LnkCOMDAT) { - LNK_Symbol *sym = task->symlinks[obj_idx][sect_idx+1]; - if (sym) { - COFF_ParsedSymbol parsed_sym = lnk_parsed_symbol_from_coff_symbol_idx(sym->u.defined.obj, sym->u.defined.symbol_idx); - task->sect_map[obj_idx][sect_idx] = task->sect_map[sym->u.defined.obj->input_idx][parsed_sym.section_number - 1]; - } - } + U64 section_number = sect_idx+1; + + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, section_number); + if (~section_header->flags & COFF_SectionFlag_LnkCOMDAT) { continue; } + + LNK_Symbol *symlink = task->symlinks[obj_idx][section_number]; + if (symlink == 0) { continue; } + + COFF_ParsedSymbol symlink_parsed = lnk_parsed_symbol_from_defined(symlink); + task->sect_map[obj_idx][sect_idx] = task->sect_map[symlink->u.defined.obj->input_idx][symlink_parsed.section_number - 1]; } ProfEnd(); } @@ -2906,24 +2933,13 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) for (U64 sect_idx = 0; sect_idx < obj_header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *section_header = §ion_table[sect_idx]; - // was section removed? - if (section_header->flags & COFF_SectionFlag_LnkRemove) { - continue; - } - if (section_header->flags & COFF_SectionFlag_CntUninitializedData) { - continue; - } + if (section_header->flags & COFF_SectionFlag_LnkRemove) { continue; } + if (section_header->flags & COFF_SectionFlag_CntUninitializedData) { continue; } - // get section file range + // get section bytes (special case debug info because it is not copied to the image) + String8 data = lnk_is_coff_section_debug(obj, sect_idx) ? obj->data : task->image_data; Rng1U64 section_frange = rng_1u64(section_header->foff, section_header->foff + section_header->fsize); - - // get section bytes - String8 section_data; - if (lnk_is_coff_section_debug(obj, sect_idx)) { - section_data = str8_substr(obj->data, section_frange); - } else { - section_data = str8_substr(task->image_data, section_frange); - } + String8 section_data = str8_substr(data, section_frange); // find section relocs COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, section_header); @@ -2936,7 +2952,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) // error check relocation if (obj->header.machine == COFF_MachineType_X64) { if (reloc->type > COFF_Reloc_X64_Last) { - lnk_error_obj(LNK_Error_IllegalRelocation, obj, "unknown relocation 0x%x", reloc->type); + lnk_error_obj(LNK_Error_IllegalRelocation, obj, "unknown relocation type 0x%x", reloc->type); } } else if (obj->header.machine != COFF_MachineType_Unknown) { NotImplemented; @@ -2953,7 +2969,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, reloc->isymbol); COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular) { - if (symbol.section_number == LNK_REMOVED_SECTION_NUMBER_16 || symbol.section_number == LNK_REMOVED_SECTION_NUMBER_32) { + if (symbol.section_number == lnk_removed_section_number_from_obj(obj)) { if (!lnk_is_coff_section_debug(obj, sect_idx)) { String8 sect_name = coff_name_from_section_header(string_table, §ion_table[sect_idx]); lnk_error_obj(LNK_Error_RelocationAgainstRemovedSection, obj, "relocating against symbol that is in a removed section (symbol: %S, reloc-section: %S 0x%llx, reloc-index: 0x%llx)", symbol.name, sect_name, sect_idx+1, reloc_idx); @@ -4014,7 +4030,7 @@ lnk_build_image(TP_Arena *arena, // remove unreachable COMDAT sections // if (config->opt_ref == LNK_SwitchState_Yes) { - lnk_gc_comdats(symtab, objs_count, objs, symlinks, config, export_symbol_list, include_symbol_list, delay_load_helper_name); + lnk_gc_comdats(tp, symtab, objs_count, objs, symlinks, config, export_symbol_list, include_symbol_list, delay_load_helper_name); } // diff --git a/src/linker/lnk.h b/src/linker/lnk.h index b8bb1b61..b0549059 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -202,9 +202,12 @@ internal String8 lnk_manifest_from_inputs(Arena *arena, LNK_IO_Flags io_flags, S // --- Internal Objs ----------------------------------------------------------- +internal String8 lnk_make_null_obj(Arena *arena); internal String8 lnk_make_res_obj(Arena *arena, String8List res_file_list, String8List res_path_list, COFF_MachineType machine, U32 time_stamp, String8 work_dir, PathStyle system_path_style, String8 obj_name); internal String8 lnk_make_linker_coff_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 cwd_path, String8 exe_path, String8 pdb_path, String8 cmd_line, String8 obj_name); +internal U32 lnk_removed_section_number_from_obj(LNK_Obj *obj); + // --- Link Context ------------------------------------------------------------ internal String8 lnk_get_lib_name(String8 path); diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index ecb147c3..d2de6b57 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -397,19 +397,6 @@ lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, LNK_IO_Flags io_fla } } - // TODO: temp hack, remove when we have null obj with .debug$T - { - String8 raw_null_leaf = cv_serialize_raw_leaf(scratch.arena, CV_LeafKind_NOTYPE, str8(0,0), 1); - - String8List srl = {0}; - str8_serial_begin(scratch.arena, &srl); - str8_serial_push_u32(scratch.arena, &srl, CV_Signature_C13); - str8_serial_push_string(scratch.arena, &srl, raw_null_leaf); - String8 null_debug_data = str8_serial_end(tp_arena->v[0], &srl); - - str8_list_push(tp_arena->v[0], &debug_t_list_arr[0], null_debug_data); - } - ProfBegin("Parse CodeView"); CV_DebugS *debug_s_arr = lnk_parse_debug_s_sections(tp, tp_arena, obj_count, obj_arr, debug_s_list_arr); CV_DebugT *debug_p_arr = lnk_parse_debug_t_sections(tp, tp_arena, obj_count, obj_arr, debug_p_list_arr); @@ -3028,33 +3015,29 @@ THREAD_POOL_TASK_FUNC(lnk_build_pdb_public_symbols_defined_task) { ProfBeginFunction(); - LNK_BuildPublicSymbolsTask *task = raw_task; - CV_SymbolList *pub_list = &task->pub_list_arr[task_id]; - LNK_SymbolHashTrieChunkList chunk_list = task->chunk_lists[task_id]; + LNK_BuildPublicSymbolsTask *task = raw_task; + for (LNK_SymbolHashTrieChunk *chunk = task->chunk_lists[task_id].first; chunk != 0; chunk = chunk->next) { + CV_SymbolNode *nodes = push_array_no_zero(arena, CV_SymbolNode, chunk->count); + U64 node_idx = 0; + for EachIndex(i, chunk->count) { + LNK_Symbol *symbol = chunk->v[i].symbol; + COFF_ParsedSymbol symbol_parsed = lnk_parsed_symbol_from_defined(symbol); - for (LNK_SymbolHashTrieChunk *chunk = chunk_list.first; chunk != 0; chunk = chunk->next) { - CV_SymbolNode *nodes = push_array_no_zero(arena, CV_SymbolNode, chunk->count); + if (symbol_parsed.section_number == lnk_removed_section_number_from_obj(symbol->u.defined.obj)) { continue; } - for (U64 i = 0, node_idx = 0; i < chunk->count; ++i) { - LNK_Symbol *symbol = chunk->v[i].symbol; + COFF_SymbolValueInterpType symbol_interp = coff_interp_from_parsed_symbol(symbol_parsed); + if (symbol_interp != COFF_SymbolValueInterp_Regular) { continue; } - COFF_ParsedSymbol parsed_symbol = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(parsed_symbol.section_number, parsed_symbol.value, parsed_symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular) { - CV_Pub32Flags flags = 0; - if (COFF_SymbolType_IsFunc(parsed_symbol.type)) { - flags |= CV_Pub32Flag_Function; - } + CV_Pub32Flags flags = 0; + if (COFF_SymbolType_IsFunc(symbol_parsed.type)) { flags |= CV_Pub32Flag_Function; } - ISectOff sc = lnk_sc_from_symbol(symbol); - U16 symbol_isect16 = safe_cast_u16(sc.isect); - U32 symbol_off32 = safe_cast_u32(sc.off); + ISectOff sc = lnk_sc_from_symbol(symbol); + U16 symbol_isect16 = safe_cast_u16(sc.isect); + U32 symbol_off32 = safe_cast_u32(sc.off); - nodes[node_idx].data = cv_make_pub32(arena, flags, symbol_off32, symbol_isect16, symbol->name); - cv_symbol_list_push_node(pub_list, &nodes[node_idx]); - - node_idx += 1; - } + nodes[node_idx].data = cv_make_pub32(arena, flags, symbol_off32, symbol_isect16, symbol->name); + cv_symbol_list_push_node(&task->pub_list_arr[task_id], &nodes[node_idx]); + node_idx += 1; } } diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index adeb0aeb..13e76c80 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -118,6 +118,7 @@ internal B32 lnk_is_coff_section_debug(LNK_Obj *obj, U64 sect_i // --- Helpers ----------------------------------------------------------------- internal String8List * lnk_collect_obj_sections(TP_Context *tp, TP_Arena *arena, U64 objs_count, LNK_Obj **objs, String8 name, B32 collect_discarded); +internal B32 lnk_obj_is_before(void *raw_a, void *raw_b); // --- Directive Parser -------------------------------------------------------- diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index 89c5f66e..89888a75 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -638,12 +638,6 @@ lnk_finalize_weak_symbols(TP_Context *tp, LNK_SymbolTable *symtab) ProfEnd(); } -internal COFF_ParsedSymbol -lnk_parsed_symbol_from_defined(LNK_Symbol *symbol) -{ - return lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); -} - internal ISectOff lnk_sc_from_symbol(LNK_Symbol *symbol) { @@ -684,4 +678,9 @@ lnk_file_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol) return foff; } +internal COFF_ParsedSymbol +lnk_parsed_symbol_from_defined(LNK_Symbol *symbol) +{ + return lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); +} diff --git a/src/linker/lnk_symbol_table.h b/src/linker/lnk_symbol_table.h index e85490c5..2598f234 100644 --- a/src/linker/lnk_symbol_table.h +++ b/src/linker/lnk_symbol_table.h @@ -158,3 +158,5 @@ internal U64 lnk_sect_off_from_symbol(LNK_Symbol *symbol); internal U64 lnk_virt_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol); internal U64 lnk_file_off_from_symbol(COFF_SectionHeader **section_table, LNK_Symbol *symbol); +internal COFF_ParsedSymbol lnk_parsed_symbol_from_defined(LNK_Symbol *symbol); + From 295a82288907beda1349a146feafe4a3cf1b1b43 Mon Sep 17 00:00:00 2001 From: Nikita Date: Tue, 22 Jul 2025 10:57:43 -0700 Subject: [PATCH 304/372] put quotes around arguments to prevent command injection --- .github/workflows/builds.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml index 12613392..f9263756 100644 --- a/.github/workflows/builds.yml +++ b/.github/workflows/builds.yml @@ -31,7 +31,7 @@ jobs: shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 - call build ${{ matrix.target }} ${{ matrix.compiler }} ${{ matrix.mode }} || exit /b 1 + call build "${{ matrix.target }}" "${{ matrix.compiler }}" "${{ matrix.mode }}" || exit /b 1 run-torture: runs-on: windows-2022 From 9fab69002cd336217b9d0728d457a4b3c3e84c0c Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 22 Jul 2025 11:04:00 -0700 Subject: [PATCH 305/372] fix buffer over-read in sinfl.h --- src/third_party/sinfl/sinfl.h | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/third_party/sinfl/sinfl.h b/src/third_party/sinfl/sinfl.h index 8075a12d..5ac05e94 100644 --- a/src/third_party/sinfl/sinfl.h +++ b/src/third_party/sinfl/sinfl.h @@ -126,6 +126,7 @@ extern "C" { struct sinfl { const unsigned char *bitptr; + const unsigned char *bitend; unsigned long long bitbuf; int bitcnt; @@ -215,9 +216,22 @@ sinfl_copy128(unsigned char **dst, unsigned char **src) { #endif static void sinfl_refill(struct sinfl *s) { - s->bitbuf |= sinfl_read64(s->bitptr) << s->bitcnt; - s->bitptr += (63 - s->bitcnt) >> 3; - s->bitcnt |= 56; /* bitcount in range [56,63] */ + if (s->bitend - s->bitptr >= 8) { + // @raysan5: original code, only those 3 lines + s->bitbuf |= sinfl_read64(s->bitptr) << s->bitcnt; + s->bitptr += (63 - s->bitcnt) >> 3; + s->bitcnt |= 56; /* bitcount in range [56,63] */ + } else { + // @raysan5: added this case when bits remaining < 8 + int bitswant = 63 - s->bitcnt; + int byteswant = bitswant >> 3; + int bytesuse = s->bitend - s->bitptr <= byteswant ? (int)(s->bitend - s->bitptr) : byteswant; + unsigned long long n = 0; + memcpy(&n, s->bitptr, bytesuse); + s->bitbuf |= n << s->bitcnt; + s->bitptr += bytesuse; + s->bitcnt += bytesuse << 3; + } } static int sinfl_peek(struct sinfl *s, int cnt) { @@ -389,6 +403,7 @@ sinfl_decompress(unsigned char *out, size_t cap, const unsigned char *in, size_t int last = 0; s.bitptr = in; + s.bitend = e; while (1) { switch (state) { case hdr: { From 9b91a0f9073d8d9a2c943013faeee88b9065e759 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 23 Jul 2025 01:04:10 -0700 Subject: [PATCH 306/372] github actions fun --- .github/workflows/builds.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml index f9263756..a1a3dd9a 100644 --- a/.github/workflows/builds.yml +++ b/.github/workflows/builds.yml @@ -31,7 +31,7 @@ jobs: shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 - call build "${{ matrix.target }}" "${{ matrix.compiler }}" "${{ matrix.mode }}" || exit /b 1 + call build %${{ matrix.target }}% %${{ matrix.compiler }}% %${{ matrix.mode }}% || exit /b 1 run-torture: runs-on: windows-2022 From 45d1f8e58b9fff15af4587ef802691d3802bec03 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 23 Jul 2025 16:24:34 -0700 Subject: [PATCH 307/372] clear overwritten path on cfg writes --- src/raddbg/raddbg_core.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index defef61b..206f8881 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -13426,6 +13426,7 @@ rd_frame(void) } String8 data = str8_list_join(scratch.arena, &strings, 0); B32 temp_write_good = os_write_data_to_file_path(temp_path, data); + B32 old_del_good = (temp_write_good && os_delete_file_at_path(overwritten_path)); B32 old_move_good = (temp_write_good && (!dst_exists || os_move_file_path(overwritten_path, dst_path))); B32 new_move_good = (old_move_good && os_move_file_path(dst_path, temp_path)); if(new_move_good && dst_exists) From 66d5d93fc9a68fb0f58ddf23d8bdfd75e4549f7d Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 23 Jul 2025 17:18:54 -0700 Subject: [PATCH 308/372] build path tree via non-case-mutated (non-normalized) src file paths in rdi build; still sanitize paths, but do not normalize them until we actually have to build the normalized file path map build --- project.4coder | 1 + src/base/base_strings.c | 3 +- src/lib_rdi_make/rdi_make.c | 38 ++++++++--- src/lib_rdi_make/rdi_make.h | 3 +- src/radbin/radbin.c | 2 +- src/rdi_from_dwarf/rdi_from_dwarf.c | 9 ++- src/rdi_from_pdb/rdi_from_pdb.c | 98 ++++++++++++++--------------- 7 files changed, 90 insertions(+), 64 deletions(-) diff --git a/project.4coder b/project.4coder index c47b6ec8..b5a61eb5 100644 --- a/project.4coder +++ b/project.4coder @@ -47,6 +47,7 @@ commands = { //- rjf: [raddbg] .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [raddbg wsl] // .f1 = { .win = "wsl ./build.sh raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, diff --git a/src/base/base_strings.c b/src/base/base_strings.c index 5088f164..36ed92c4 100644 --- a/src/base/base_strings.c +++ b/src/base/base_strings.c @@ -1473,7 +1473,8 @@ str8_path_list_resolve_dots_in_place(String8List *path, PathStyle style) } internal String8 -str8_path_list_join_by_style(Arena *arena, String8List *path, PathStyle style){ +str8_path_list_join_by_style(Arena *arena, String8List *path, PathStyle style) +{ StringJoin params = {0}; switch(style) { diff --git a/src/lib_rdi_make/rdi_make.c b/src/lib_rdi_make/rdi_make.c index 4af2d48c..f5c0c745 100644 --- a/src/lib_rdi_make/rdi_make.c +++ b/src/lib_rdi_make/rdi_make.c @@ -196,6 +196,21 @@ rdim_str8_match(RDIM_String8 a, RDIM_String8 b, RDIM_StringMatchFlags flags) return result; } +RDI_PROC RDIM_String8 +rdim_lower_from_str8(RDIM_Arena *arena, RDIM_String8 string) +{ + RDIM_String8 result = rdim_str8_copy(arena, string); + for(RDI_U64 idx = 0; idx < result.RDIM_String8_SizeMember; idx += 1) + { + RDI_U8 byte = result.RDIM_String8_BaseMember[idx]; + if('A' <= byte && byte <= 'Z') + { + result.RDIM_String8_BaseMember[idx] += ('a' - 'A'); + } + } + return result; +} + //- rjf: string lists RDI_PROC void @@ -1949,7 +1964,7 @@ rdim_bake_path_node_from_string(RDIM_BakePathTree *tree, RDIM_String8 string) RDIM_BakePathNode *sub_dir_node = 0; for(RDIM_BakePathNode *child = node->first_child; child != 0; child = child->next_sibling) { - if(rdim_str8_match(child->name, sub_dir, RDIM_StringMatchFlag_CaseInsensitive)) + if(rdim_str8_match(child->name, sub_dir, 0)) { sub_dir_node = child; } @@ -2022,7 +2037,7 @@ rdim_bake_path_tree_insert(RDIM_Arena *arena, RDIM_BakePathTree *tree, RDIM_Stri RDIM_BakePathNode *sub_dir_node = 0; for(RDIM_BakePathNode *child = node->first_child; child != 0; child = child->next_sibling) { - if(rdim_str8_match(child->name, sub_dir, RDIM_StringMatchFlag_CaseInsensitive)) + if(rdim_str8_match(child->name, sub_dir, 0)) { sub_dir_node = child; } @@ -2210,7 +2225,10 @@ rdim_bake_string_map_loose_push_src_file_slice(RDIM_Arena *arena, RDIM_BakeStrin { for(RDI_U64 idx = 0; idx < count; idx += 1) { - rdim_bake_string_map_loose_insert(arena, top, map, 1, v[idx].normal_full_path); + RDIM_Temp scratch = rdim_scratch_begin(&arena, 1); + RDIM_String8 normalized_path = rdim_lower_from_str8(scratch.arena, v[idx].path); + rdim_bake_string_map_loose_insert(arena, top, map, 1, normalized_path); + rdim_scratch_end(scratch); } } @@ -2437,8 +2455,11 @@ rdim_bake_name_map_from_kind_params(RDIM_Arena *arena, RDI_NameMapKind kind, RDI { for(RDI_U64 idx = 0; idx < n->count; idx += 1) { + RDIM_Temp scratch = rdim_scratch_begin(&arena, 1); RDI_U64 src_file_idx = rdim_idx_from_src_file(&n->v[idx]); - rdim_bake_name_map_push(arena, map, n->v[idx].normal_full_path, (RDI_U32)src_file_idx); // TODO(rjf): @u64_to_u32 + RDIM_String8 normalized_path = rdim_lower_from_str8(scratch.arena, n->v[idx].path); + rdim_bake_name_map_push(arena, map, normalized_path, (RDI_U32)src_file_idx); // TODO(rjf): @u64_to_u32 + rdim_scratch_end(scratch); } } }break; @@ -2545,7 +2566,7 @@ rdim_bake_path_tree_from_params(RDIM_Arena *arena, RDIM_BakeParams *params) { for(RDI_U64 idx = 0; idx < n->count; idx += 1) { - RDIM_BakePathNode *node = rdim_bake_path_tree_insert(arena, tree, n->v[idx].normal_full_path); + RDIM_BakePathNode *node = rdim_bake_path_tree_insert(arena, tree, n->v[idx].path); node->src_file = &n->v[idx]; } } @@ -3056,9 +3077,12 @@ rdim_bake_src_files(RDIM_Arena *arena, RDIM_BakeStringMapTight *strings, RDIM_Ba //////////////////////// //- rjf: fill file info // - dst_file->file_path_node_idx = rdim_bake_path_node_idx_from_string(path_tree, src_file->normal_full_path); - dst_file->normal_full_path_string_idx = rdim_bake_idx_from_string(strings, src_file->normal_full_path); + RDI_U64 scratch_pos_restore = rdim_arena_pos(scratch.arena); + RDIM_String8 normalized_path = rdim_lower_from_str8(scratch.arena, src_file->path); + dst_file->file_path_node_idx = rdim_bake_path_node_idx_from_string(path_tree, src_file->path); + dst_file->normal_full_path_string_idx = rdim_bake_idx_from_string(strings, normalized_path); dst_file->source_line_map_idx = (RDI_U32)(dst_map ? (dst_map - dst_maps) : 0); + rdim_arena_pop_to(scratch.arena, scratch_pos_restore); } } diff --git a/src/lib_rdi_make/rdi_make.h b/src/lib_rdi_make/rdi_make.h index a798af08..624b79c9 100644 --- a/src/lib_rdi_make/rdi_make.h +++ b/src/lib_rdi_make/rdi_make.h @@ -535,7 +535,7 @@ typedef struct RDIM_SrcFile RDIM_SrcFile; struct RDIM_SrcFile { struct RDIM_SrcFileChunkNode *chunk; - RDIM_String8 normal_full_path; + RDIM_String8 path; RDIM_SrcFileLineMapFragment *first_line_map_fragment; RDIM_SrcFileLineMapFragment *last_line_map_fragment; }; @@ -1411,6 +1411,7 @@ RDI_PROC RDI_S32 rdim_str8_match(RDIM_String8 a, RDIM_String8 b, RDIM_StringMatc #define rdim_str8_lit(S) rdim_str8((RDI_U8*)(S), sizeof(S) - 1) #define rdim_str8_struct(S) rdim_str8((RDI_U8*)(S), sizeof(*(S))) #define rdim_str8_struct_array(S, C) rdim_str8((RDI_U8*)(S), sizeof(*(S)) * (C)) +RDI_PROC RDIM_String8 rdim_lower_from_str8(RDIM_Arena *arena, RDIM_String8 string); //- rjf: string lists RDI_PROC void rdim_str8_list_push(RDIM_Arena *arena, RDIM_String8List *list, RDIM_String8 string); diff --git a/src/radbin/radbin.c b/src/radbin/radbin.c index 1106bb06..4a071a6f 100644 --- a/src/radbin/radbin.c +++ b/src/radbin/radbin.c @@ -762,7 +762,7 @@ rb_entry_point(CmdLine *cmdline) for(U64 idx = 0; idx < n->count; idx += 1) { U64 file_idx = rdim_idx_from_src_file(&n->v[idx]); - String8 src_path = n->v[idx].normal_full_path; + String8 src_path = n->v[idx].path; str8_list_pushf(arena, &dump, "FILE %I64u %S\n", file_idx, src_path); } } diff --git a/src/rdi_from_dwarf/rdi_from_dwarf.c b/src/rdi_from_dwarf/rdi_from_dwarf.c index 4bee8f72..a7c3703c 100644 --- a/src/rdi_from_dwarf/rdi_from_dwarf.c +++ b/src/rdi_from_dwarf/rdi_from_dwarf.c @@ -1238,12 +1238,11 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) String8List file_path_split = str8_split_path(scratch.arena, file_path); str8_path_list_resolve_dots_in_place(&file_path_split, PathStyle_WindowsAbsolute); String8 file_path_resolved = str8_path_list_join_by_style(scratch.arena, &file_path_split, PathStyle_WindowsAbsolute); - String8 file_path_normalized = lower_from_str8(scratch.arena, file_path_resolved); - RDIM_SrcFile *src_file = hash_table_search_path_raw(source_file_ht, file_path_normalized); + RDIM_SrcFile *src_file = hash_table_search_path_raw(source_file_ht, file_path_resolved); if (src_file == 0) { - src_file = rdim_src_file_chunk_list_push(arena, &src_files, SRC_FILE_CAP); - src_file->normal_full_path = push_str8_copy(arena, file_path_normalized); - hash_table_push_path_raw(scratch.arena, source_file_ht, src_file->normal_full_path, src_file); + src_file = rdim_src_file_chunk_list_push(arena, &src_files, SRC_FILE_CAP); + src_file->path = push_str8_copy(arena, file_path_resolved); + hash_table_push_path_raw(scratch.arena, source_file_ht, src_file->path, src_file); } src_file_map[file_idx] = src_file; } diff --git a/src/rdi_from_pdb/rdi_from_pdb.c b/src/rdi_from_pdb/rdi_from_pdb.c index 93fc40f4..cd4ff652 100644 --- a/src/rdi_from_pdb/rdi_from_pdb.c +++ b/src/rdi_from_pdb/rdi_from_pdb.c @@ -525,30 +525,30 @@ ASYNC_WORK_DEF(p2r_gather_unit_src_file_work) lines_n != 0; lines_n = lines_n->next) { - // rjf: file name -> normalized file path + // rjf: file name -> sanitized file path String8 file_path = lines_n->v.file_name; - String8 file_path_normalized = lower_from_str8(scratch.arena, str8_skip_chop_whitespace(file_path)); + String8 file_path_sanitized = str8_copy(scratch.arena, str8_skip_chop_whitespace(file_path)); { - PathStyle file_path_normalized_style = path_style_from_str8(file_path_normalized); - String8List file_path_normalized_parts = str8_split_path(scratch.arena, file_path_normalized); - if(file_path_normalized_style == PathStyle_Relative) + PathStyle file_path_sanitized_style = path_style_from_str8(file_path_sanitized); + String8List file_path_sanitized_parts = str8_split_path(scratch.arena, file_path_sanitized); + if(file_path_sanitized_style == PathStyle_Relative) { String8List obj_folder_path_parts = str8_split_path(scratch.arena, obj_folder_path); - str8_list_concat_in_place(&obj_folder_path_parts, &file_path_normalized_parts); - file_path_normalized_parts = obj_folder_path_parts; - file_path_normalized_style = path_style_from_str8(obj_folder_path); + str8_list_concat_in_place(&obj_folder_path_parts, &file_path_sanitized_parts); + file_path_sanitized_parts = obj_folder_path_parts; + file_path_sanitized_style = path_style_from_str8(obj_folder_path); } - str8_path_list_resolve_dots_in_place(&file_path_normalized_parts, file_path_normalized_style); - file_path_normalized = str8_path_list_join_by_style(scratch.arena, &file_path_normalized_parts, file_path_normalized_style); + str8_path_list_resolve_dots_in_place(&file_path_sanitized_parts, file_path_sanitized_style); + file_path_sanitized = str8_path_list_join_by_style(scratch.arena, &file_path_sanitized_parts, file_path_sanitized_style); } - // rjf: normalized file path -> source file node - U64 file_path_normalized_hash = rdi_hash(file_path_normalized.str, file_path_normalized.size); - U64 hit_path_slot = file_path_normalized_hash%hit_path_slots_count; + // rjf: sanitized file path -> source file node + U64 file_path_sanitized_hash = rdi_hash(file_path_sanitized.str, file_path_sanitized.size); + U64 hit_path_slot = file_path_sanitized_hash%hit_path_slots_count; String8Node *hit_path_node = 0; for(String8Node *n = hit_path_slots[hit_path_slot]; n != 0; n = n->next) { - if(str8_match(n->string, file_path_normalized, 0)) + if(str8_match(n->string, file_path_sanitized, 0)) { hit_path_node = n; break; @@ -558,8 +558,8 @@ ASYNC_WORK_DEF(p2r_gather_unit_src_file_work) { hit_path_node = push_array(scratch.arena, String8Node, 1); SLLStackPush(hit_path_slots[hit_path_slot], hit_path_node); - hit_path_node->string = file_path_normalized; - str8_list_push(scratch.arena, &src_file_paths, push_str8_copy(arena, file_path_normalized)); + hit_path_node->string = file_path_sanitized; + str8_list_push(scratch.arena, &src_file_paths, push_str8_copy(arena, file_path_sanitized)); } } } @@ -788,32 +788,32 @@ ASYNC_WORK_DEF(p2r_unit_convert_work) { CV_C13LinesParsed *lines = &lines_n->v; - // rjf: file name -> normalized file path + // rjf: file name -> sanitized file path String8 file_path = lines->file_name; - String8 file_path_normalized = lower_from_str8(scratch.arena, str8_skip_chop_whitespace(file_path)); + String8 file_path_sanitized = str8_copy(scratch.arena, str8_skip_chop_whitespace(file_path)); { - PathStyle file_path_normalized_style = path_style_from_str8(file_path_normalized); - String8List file_path_normalized_parts = str8_split_path(scratch.arena, file_path_normalized); - if(file_path_normalized_style == PathStyle_Relative) + PathStyle file_path_sanitized_style = path_style_from_str8(file_path_sanitized); + String8List file_path_sanitized_parts = str8_split_path(scratch.arena, file_path_sanitized); + if(file_path_sanitized_style == PathStyle_Relative) { String8List obj_folder_path_parts = str8_split_path(scratch.arena, obj_folder_path); - str8_list_concat_in_place(&obj_folder_path_parts, &file_path_normalized_parts); - file_path_normalized_parts = obj_folder_path_parts; - file_path_normalized_style = path_style_from_str8(obj_folder_path); + str8_list_concat_in_place(&obj_folder_path_parts, &file_path_sanitized_parts); + file_path_sanitized_parts = obj_folder_path_parts; + file_path_sanitized_style = path_style_from_str8(obj_folder_path); } - str8_path_list_resolve_dots_in_place(&file_path_normalized_parts, file_path_normalized_style); - file_path_normalized = str8_path_list_join_by_style(scratch.arena, &file_path_normalized_parts, file_path_normalized_style); + str8_path_list_resolve_dots_in_place(&file_path_sanitized_parts, file_path_sanitized_style); + file_path_sanitized = str8_path_list_join_by_style(scratch.arena, &file_path_sanitized_parts, file_path_sanitized_style); } - // rjf: normalized file path -> source file node - U64 file_path_normalized_hash = rdi_hash(file_path_normalized.str, file_path_normalized.size); - U64 src_file_slot = file_path_normalized_hash%in->src_file_map->slots_count; + // rjf: sanitized file path -> source file node + U64 file_path_sanitized_hash = rdi_hash(file_path_sanitized.str, file_path_sanitized.size); + U64 src_file_slot = file_path_sanitized_hash%in->src_file_map->slots_count; P2R_SrcFileNode *src_file_node = 0; if(lines->line_count != 0) { for(P2R_SrcFileNode *n = in->src_file_map->slots[src_file_slot]; n != 0; n = n->next) { - if(str8_match(n->src_file->normal_full_path, file_path_normalized, 0)) + if(str8_match(n->src_file->path, file_path_sanitized, 0)) { src_file_node = n; break; @@ -984,30 +984,30 @@ ASYNC_WORK_DEF(p2r_unit_convert_work) seq_file_name = pdb_strtbl_string_from_off(in->pdb_strtbl, name_off); } - // rjf: file name -> normalized file path + // rjf: file name -> sanitized file path String8 file_path = seq_file_name; - String8 file_path_normalized = lower_from_str8(scratch.arena, str8_skip_chop_whitespace(file_path)); + String8 file_path_sanitized = str8_copy(scratch.arena, str8_skip_chop_whitespace(file_path)); { - PathStyle file_path_normalized_style = path_style_from_str8(file_path_normalized); - String8List file_path_normalized_parts = str8_split_path(scratch.arena, file_path_normalized); - if(file_path_normalized_style == PathStyle_Relative) + PathStyle file_path_sanitized_style = path_style_from_str8(file_path_sanitized); + String8List file_path_sanitized_parts = str8_split_path(scratch.arena, file_path_sanitized); + if(file_path_sanitized_style == PathStyle_Relative) { String8List obj_folder_path_parts = str8_split_path(scratch.arena, obj_folder_path); - str8_list_concat_in_place(&obj_folder_path_parts, &file_path_normalized_parts); - file_path_normalized_parts = obj_folder_path_parts; - file_path_normalized_style = path_style_from_str8(obj_folder_path); + str8_list_concat_in_place(&obj_folder_path_parts, &file_path_sanitized_parts); + file_path_sanitized_parts = obj_folder_path_parts; + file_path_sanitized_style = path_style_from_str8(obj_folder_path); } - str8_path_list_resolve_dots_in_place(&file_path_normalized_parts, file_path_normalized_style); - file_path_normalized = str8_path_list_join_by_style(scratch.arena, &file_path_normalized_parts, file_path_normalized_style); + str8_path_list_resolve_dots_in_place(&file_path_sanitized_parts, file_path_sanitized_style); + file_path_sanitized = str8_path_list_join_by_style(scratch.arena, &file_path_sanitized_parts, file_path_sanitized_style); } - // rjf: normalized file path -> source file node - U64 file_path_normalized_hash = rdi_hash(file_path_normalized.str, file_path_normalized.size); - U64 src_file_slot = file_path_normalized_hash%in->src_file_map->slots_count; + // rjf: sanitized file path -> source file node + U64 file_path_sanitized_hash = rdi_hash(file_path_sanitized.str, file_path_sanitized.size); + U64 src_file_slot = file_path_sanitized_hash%in->src_file_map->slots_count; P2R_SrcFileNode *src_file_node = 0; for(P2R_SrcFileNode *n = in->src_file_map->slots[src_file_slot]; n != 0; n = n->next) { - if(str8_match(n->src_file->normal_full_path, file_path_normalized, 0)) + if(str8_match(n->src_file->path, file_path_sanitized, 0)) { src_file_node = n; break; @@ -3518,13 +3518,13 @@ p2r_convert(Arena *arena, ASYNC_Root *async_root, P2R_ConvertParams *in) { for EachIndex(path_idx, tasks_outputs[idx].src_file_paths.count) { - String8 file_path_normalized = tasks_outputs[idx].src_file_paths.v[path_idx]; - U64 file_path_normalized_hash = rdi_hash(file_path_normalized.str, file_path_normalized.size); - U64 src_file_slot = file_path_normalized_hash%src_file_map.slots_count; + String8 file_path_sanitized = tasks_outputs[idx].src_file_paths.v[path_idx]; + U64 file_path_sanitized_hash = rdi_hash(file_path_sanitized.str, file_path_sanitized.size); + U64 src_file_slot = file_path_sanitized_hash%src_file_map.slots_count; P2R_SrcFileNode *src_file_node = 0; for(P2R_SrcFileNode *n = src_file_map.slots[src_file_slot]; n != 0; n = n->next) { - if(str8_match(n->src_file->normal_full_path, file_path_normalized, 0)) + if(str8_match(n->src_file->path, file_path_sanitized, 0)) { src_file_node = n; break; @@ -3535,7 +3535,7 @@ p2r_convert(Arena *arena, ASYNC_Root *async_root, P2R_ConvertParams *in) src_file_node = push_array(scratch.arena, P2R_SrcFileNode, 1); SLLStackPush(src_file_map.slots[src_file_slot], src_file_node); src_file_node->src_file = rdim_src_file_chunk_list_push(arena, &all_src_files__sequenceless, total_path_count); - src_file_node->src_file->normal_full_path = push_str8_copy(arena, file_path_normalized); + src_file_node->src_file->path = push_str8_copy(arena, file_path_sanitized); } } } From 955a5f01caa82c5c86e730c7e317070e1886b8e4 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 23 Jul 2025 17:28:14 -0700 Subject: [PATCH 309/372] fix normalized path allocation --- src/lib_rdi_make/rdi_make.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/lib_rdi_make/rdi_make.c b/src/lib_rdi_make/rdi_make.c index f5c0c745..bb7362b8 100644 --- a/src/lib_rdi_make/rdi_make.c +++ b/src/lib_rdi_make/rdi_make.c @@ -2225,10 +2225,8 @@ rdim_bake_string_map_loose_push_src_file_slice(RDIM_Arena *arena, RDIM_BakeStrin { for(RDI_U64 idx = 0; idx < count; idx += 1) { - RDIM_Temp scratch = rdim_scratch_begin(&arena, 1); - RDIM_String8 normalized_path = rdim_lower_from_str8(scratch.arena, v[idx].path); + RDIM_String8 normalized_path = rdim_lower_from_str8(arena, v[idx].path); rdim_bake_string_map_loose_insert(arena, top, map, 1, normalized_path); - rdim_scratch_end(scratch); } } @@ -2455,11 +2453,9 @@ rdim_bake_name_map_from_kind_params(RDIM_Arena *arena, RDI_NameMapKind kind, RDI { for(RDI_U64 idx = 0; idx < n->count; idx += 1) { - RDIM_Temp scratch = rdim_scratch_begin(&arena, 1); RDI_U64 src_file_idx = rdim_idx_from_src_file(&n->v[idx]); - RDIM_String8 normalized_path = rdim_lower_from_str8(scratch.arena, n->v[idx].path); + RDIM_String8 normalized_path = rdim_lower_from_str8(arena, n->v[idx].path); rdim_bake_name_map_push(arena, map, normalized_path, (RDI_U32)src_file_idx); // TODO(rjf): @u64_to_u32 - rdim_scratch_end(scratch); } } }break; From cc6e56eee1fd64b9f951ad1726276e7e3ac9067c Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 22 Jul 2025 11:29:12 -0700 Subject: [PATCH 310/372] do full path check for thin objs only --- src/linker/lnk.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index acb7b1fe..7e290037 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1432,25 +1432,24 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) LNK_InputObjList unique_obj_input_list = {0}; for (LNK_InputObj *input = input_obj_list.first, *next; input != 0; input = next) { next = input->next; - + B32 was_obj_loaded = hash_table_search_path_u64(loaded_obj_ht, input->dedup_id, 0); - if (was_obj_loaded) { - continue; + if (was_obj_loaded) { continue; } + + if (input->is_thin) { + String8 full_path = input->dedup_id.size ? os_full_path_from_path(scratch.arena, input->dedup_id) : str8_zero(); + B32 was_full_path_used = hash_table_search_path_u64(loaded_obj_ht, full_path, 0); + if (was_full_path_used) { continue; } + if (!str8_match(input->dedup_id, full_path, StringMatchFlag_CaseInsensitive|StringMatchFlag_SlashInsensitive)) { + hash_table_push_path_u64(scratch.arena, loaded_obj_ht, full_path, 0); + } } - - String8 full_path = input->dedup_id.size ? os_full_path_from_path(scratch.arena, input->dedup_id) : str8_zero(); - B32 was_full_path_used = hash_table_search_path_u64(loaded_obj_ht, full_path, 0); - if (was_full_path_used) { - continue; - } - + hash_table_push_path_u64(scratch.arena, loaded_obj_ht, input->dedup_id, 0); - if (!str8_match(input->dedup_id, full_path, StringMatchFlag_CaseInsensitive|StringMatchFlag_SlashInsensitive)) { - hash_table_push_path_u64(scratch.arena, loaded_obj_ht, full_path, 0); - } - + lnk_input_obj_list_push_node(&unique_obj_input_list, input); - lnk_log(LNK_Log_InputObj, "Input Obj: %S", full_path); + + lnk_log(LNK_Log_InputObj, "Input Obj: %S", input->path); } ProfEnd(); From 2d52e274ced62bb0a1fcd15f7772f0a09286f32a Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 22 Jul 2025 15:15:21 -0700 Subject: [PATCH 311/372] remove debug code --- src/linker/lnk.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 7e290037..69fb277e 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1266,7 +1266,6 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) null_obj_input->path = str8_lit("* Null Obj *"); null_obj_input->dedup_id = null_obj_input->path; null_obj_input->data = lnk_make_null_obj(tp_arena->v[0]); - os_write_data_to_file_path(str8_lit("null.obj"), null_obj_input->data); } // input command line objs From 6cc5be006543af8ac0619c5eb07828a1fa95310f Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 23 Jul 2025 13:00:39 -0700 Subject: [PATCH 312/372] opt ref test --- src/torture/torture.c | 83 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/src/torture/torture.c b/src/torture/torture.c index 9288e298..0aa3f83d 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -3809,6 +3809,88 @@ exit:; return result; } +internal T_Result +t_opt_ref_dangling_section(void) +{ + Temp scratch = scratch_begin(0,0); + T_Result result = T_Result_Fail; + + String8 entry_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + U8 text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); + COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("f")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); + entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + String8 a_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + + U8 data[] = "A0000"; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data"), PE_DATA_SECTION_FLAGS | COFF_SectionFlag_LnkCOMDAT, str8_array_fixed(data)); + + COFF_ObjSymbol *q = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("q")); + coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, q); + + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("f"), 0, sect); + a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + String8 b_obj; + { + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); + + U8 q[] = { 1,2,3,4}; + COFF_ObjSection *q_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".q"), PE_DATA_SECTION_FLAGS, str8_array_fixed(q)); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("q"), 0, q_sect); + + U8 data[] = "BBBBBBBBBBBBBBB"; + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data"), PE_DATA_SECTION_FLAGS | COFF_SectionFlag_LnkCOMDAT, str8_array_fixed(data)); + coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); + coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("f"), 0, sect); + + b_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); + coff_obj_writer_release(&obj_writer); + } + + String8List b_lib; + { + COFF_LibWriter *lib_writer = coff_lib_writer_alloc(); + coff_lib_writer_push_obj(lib_writer, str8_lit("b.obj"), b_obj); + b_lib = coff_lib_writer_serialize(scratch.arena, lib_writer, 0, 0, 1); + coff_lib_writer_release(&lib_writer); + } + + if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } + if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } + if (!t_write_file_list(str8_lit("b.lib"), b_lib)) { goto exit; } + + int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj b.lib"); + if (linker_exit_code != 0) { goto exit; } + + String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".q")); + if (sect != 0) { goto exit; } + + result = T_Result_Pass; +exit:; + scratch_end(scratch); + return result; +} + //////////////////////////////////////////////////////////////// internal void @@ -3868,6 +3950,7 @@ entry_point(CmdLine *cmdline) { "empty_section", t_empty_section }, { "removed_section", t_removed_section }, { "function_pad_min", t_function_pad_min }, + //{ "opt_ref_dangling_section", t_opt_ref_dangling_section }, //{ "import_export", t_import_export }, }; From 54fad8a89cc54c575b3bf3cd6cc3dfadb7d2d1d0 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 24 Jul 2025 16:02:25 -0700 Subject: [PATCH 313/372] validate strong symbol interp type --- src/linker/lnk.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 69fb277e..49bd67f9 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1107,9 +1107,13 @@ THREAD_POOL_TASK_FUNC(lnk_weak_symbol_finder) LNK_SymbolNode *symbol_n = task->lookup_node_arr.v[symbol_idx]; LNK_Symbol *symbol = symbol_n->data; - LNK_Symbol *has_strong_defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol->name); - if (has_strong_defn) { - continue; + LNK_Symbol *defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol->name); + if (defn) { + COFF_ParsedSymbol defn_parsed = lnk_parsed_symbol_from_defined(defn); + COFF_SymbolValueInterpType defn_interp = coff_interp_from_parsed_symbol(defn_parsed); + if (defn_interp != COFF_SymbolValueInterp_Weak) { + continue; + } } LNK_Symbol *has_import = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Import, symbol->name); if (has_import) { From 6fda20ec9c94197b3291fe86e177378007d9bbdc Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 24 Jul 2025 17:44:02 -0700 Subject: [PATCH 314/372] helper script for extracting obj paths out of pdb --- src/linker/scripts/obj_paths_from_pdb.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/linker/scripts/obj_paths_from_pdb.py diff --git a/src/linker/scripts/obj_paths_from_pdb.py b/src/linker/scripts/obj_paths_from_pdb.py new file mode 100644 index 00000000..da7d2ab3 --- /dev/null +++ b/src/linker/scripts/obj_paths_from_pdb.py @@ -0,0 +1,16 @@ +import subprocess +import sys +import os + +def get_sorted_objs(pdb_path): + result = subprocess.run(["llvm-pdbutil", "dump", "--modules", pdb_path], stdout=subprocess.PIPE, text=True) + lines = result.stdout.strip().split('\n') + filtered_lines = [line for line in lines if line.startswith("Mod ")] + # sort by the obj_path portion (line format: "Mod ") + def extract_path(line): return line.split(maxsplit=2)[2].lower() + sorted_lines = sorted(filtered_lines, key=extract_path) + return sorted_lines + +if __name__ == "__main__": + sorted_objs = get_sorted_objs(sys.argv[1]) + for l in sorted_objs: print(l) From 81b51446a47c05e7f251ded226577365c0c28c20 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 25 Jul 2025 11:26:08 -0700 Subject: [PATCH 315/372] cap maximum frame latency --- src/render/d3d11/render_d3d11.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/render/d3d11/render_d3d11.c b/src/render/d3d11/render_d3d11.c index ca533e80..e14650c3 100644 --- a/src/render/d3d11/render_d3d11.c +++ b/src/render/d3d11/render_d3d11.c @@ -229,6 +229,7 @@ r_init(CmdLine *cmdln) error = r_d3d11_state->device->lpVtbl->QueryInterface(r_d3d11_state->device, &IID_IDXGIDevice1, (void **)(&r_d3d11_state->dxgi_device)); error = r_d3d11_state->dxgi_device->lpVtbl->GetAdapter(r_d3d11_state->dxgi_device, &r_d3d11_state->dxgi_adapter); error = r_d3d11_state->dxgi_adapter->lpVtbl->GetParent(r_d3d11_state->dxgi_adapter, &IID_IDXGIFactory2, (void **)(&r_d3d11_state->dxgi_factory)); + error = r_d3d11_state->dxgi_device->lpVtbl->SetMaximumFrameLatency(r_d3d11_state->dxgi_device, 1); ProfEnd(); //- rjf: create main rasterizer From c43697fb181e6bc6e1924c12dda5e22aac8d9d83 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 25 Jul 2025 13:29:08 -0700 Subject: [PATCH 316/372] fix type debug info table evaluations; fix preference for auto-hook-applied lhs evaluation when doing member/array accesses --- src/dbgi/dbgi.c | 6 +-- src/eval/eval_ir.c | 91 +++++++++++++++++++++++++--------------------- 2 files changed, 52 insertions(+), 45 deletions(-) diff --git a/src/dbgi/dbgi.c b/src/dbgi/dbgi.c index 3ad4e2aa..4fd6798d 100644 --- a/src/dbgi/dbgi.c +++ b/src/dbgi/dbgi.c @@ -1291,7 +1291,6 @@ ASYNC_WORK_DEF(di_search_work) //- rjf: get element, map to string; if empty, continue to next element void *element = (U8 *)table_base + element_size*idx; - U32 *name_idx_ptr = (U32 *)((U8 *)element + element_name_idx_off); String8 name = {0}; switch(in->section_kind) { @@ -1299,7 +1298,8 @@ ASYNC_WORK_DEF(di_search_work) { RDI_UDT *udt = (RDI_UDT *)element; RDI_TypeNode *type_node = rdi_element_from_name_idx(in->rdi, TypeNodes, udt->self_type_idx); - name_idx_ptr = &type_node->user_defined.name_string_idx; + name.str = rdi_string_from_idx(in->rdi, type_node->user_defined.name_string_idx, &name.size); + name = str8_copy(arena, name); }break; case RDI_SectionKind_SourceFiles: { @@ -1321,7 +1321,7 @@ ASYNC_WORK_DEF(di_search_work) }break; default: { - U32 name_idx = *name_idx_ptr; + U32 name_idx = *(U32 *)((U8 *)element + element_name_idx_off); U64 name_size = 0; U8 *name_base = rdi_string_from_idx(in->rdi, name_idx, &name_size); name = str8(name_base, name_size); diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index 74f076c1..7082c615 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -644,58 +644,61 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I { // rjf: unpack left-hand-side E_Expr *lhs = expr->first; - E_IRTreeAndType lhs_irtree = e_push_irtree_and_type_from_expr(arena, parent, &e_default_identifier_resolution_rule, 0, 1, lhs); - e_msg_list_concat_in_place(&result.msgs, &lhs_irtree.msgs); - // rjf: try all IR trees in chain - for(E_IRTreeAndType *lhs_irtree_try = &lhs_irtree; lhs_irtree_try != 0; lhs_irtree_try = lhs_irtree_try->prev) + // rjf: try left-hand-side, first *without* autohooks, then *with* autohooks. + for(B32 autohooks_enabled = 0; autohooks_enabled < 2; autohooks_enabled += 1) { - // rjf: gather inherited lenses from the left-hand-side + E_IRTreeAndType lhs_irtree_try = e_push_irtree_and_type_from_expr(arena, parent, &e_default_identifier_resolution_rule, !autohooks_enabled, 1, lhs); + for(E_IRTreeAndType *lhs_irtree_try_chain = &lhs_irtree_try; lhs_irtree_try_chain != 0; lhs_irtree_try_chain = lhs_irtree_try_chain->prev) { - E_TypeKey k = lhs_irtree_try->type_key; - E_TypeKind kind = e_type_kind_from_key(k); - for(;kind == E_TypeKind_Lens;) + // rjf: pick access hook based on type + E_Type *lhs_type = e_type_from_key(lhs_irtree_try_chain->type_key); + E_TypeAccessFunctionType *lhs_access = lhs_type->access; + for(E_Type *lens_type = lhs_type; + lens_type->kind == E_TypeKind_Lens || lens_type->kind == E_TypeKind_Set; + lens_type = e_type_from_key(lens_type->direct_type_key)) { - E_Type *lens_type = e_type_from_key(k); - if((lens_type->flags & E_TypeFlag_InheritedByMembers && expr->kind == E_ExprKind_MemberAccess) || - (lens_type->flags & E_TypeFlag_InheritedByElements && expr->kind == E_ExprKind_ArrayIndex)) + if(lens_type->access != 0) { - e_type_key_list_push_front(scratch.arena, &inherited_lenses, k); + lhs_access = lens_type->access; + break; } - k = e_type_key_direct(k); - kind = e_type_kind_from_key(k); } - } - - // rjf: pick access hook based on type - E_Type *lhs_type = e_type_from_key(lhs_irtree_try->type_key); - E_TypeAccessFunctionType *lhs_access = lhs_type->access; - for(E_Type *lens_type = lhs_type; - lens_type->kind == E_TypeKind_Lens || lens_type->kind == E_TypeKind_Set; - lens_type = e_type_from_key(lens_type->direct_type_key)) - { - if(lens_type->access != 0) + if(lhs_access == 0) { - lhs_access = lens_type->access; + lhs_access = E_TYPE_ACCESS_FUNCTION_NAME(default); + } + + // rjf: call into hook to do access + E_IRTreeAndType new_result_maybe = lhs_access(arena, parent, expr, lhs_irtree_try_chain); + + // rjf: if we got a valid result -> gather info from this irtree + if(new_result_maybe.root != &e_irnode_nil) + { + E_TypeKey k = lhs_irtree_try_chain->type_key; + E_TypeKind kind = e_type_kind_from_key(k); + for(;kind == E_TypeKind_Lens;) + { + E_Type *lens_type = e_type_from_key(k); + if((lens_type->flags & E_TypeFlag_InheritedByMembers && expr->kind == E_ExprKind_MemberAccess) || + (lens_type->flags & E_TypeFlag_InheritedByElements && expr->kind == E_ExprKind_ArrayIndex)) + { + e_type_key_list_push_front(scratch.arena, &inherited_lenses, k); + } + k = e_type_key_direct(k); + kind = e_type_kind_from_key(k); + } + e_msg_list_concat_in_place(&result.msgs, &lhs_irtree_try_chain->msgs); + } + + // rjf: if we got a valid result -> we're done + if(new_result_maybe.root != &e_irnode_nil) + { + result = new_result_maybe; break; } } - if(lhs_access == 0) - { - lhs_access = E_TYPE_ACCESS_FUNCTION_NAME(default); - } - - // rjf: call into hook to do access - E_IRTreeAndType new_result_maybe = lhs_access(arena, parent, expr, lhs_irtree_try); - - // rjf: if we got a valid result -> store - if(new_result_maybe.root != &e_irnode_nil && (result.root == &e_irnode_nil || lhs_irtree_try->auto_hook == 0)) - { - result = new_result_maybe; - } - - // rjf: end chain if we found a result that is not an autohook - if(new_result_maybe.root != &e_irnode_nil && lhs_irtree_try->auto_hook == 0) + if(result.root != &e_irnode_nil) { break; } @@ -733,7 +736,11 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I String8 full_qualified_name = str8_list_join(scratch.arena, &parts, &(StringJoin){.sep = str8_lit(".")}); E_Expr *leaf_expr_name = e_push_expr(scratch.arena, E_ExprKind_LeafIdentifier, r1u64(0, 0)); leaf_expr_name->string = full_qualified_name; - result = e_push_irtree_and_type_from_expr(arena, parent, &e_default_identifier_resolution_rule, disallow_autohooks, disallow_autohooks, leaf_expr_name); + E_IRTreeAndType new_result_maybe = e_push_irtree_and_type_from_expr(arena, parent, &e_default_identifier_resolution_rule, disallow_autohooks, disallow_autohooks, leaf_expr_name); + if(new_result_maybe.root != &e_irnode_nil) + { + result = new_result_maybe; + } } } }break; From b5accc9105ff07e5cc2448482d19fae3e9ed12ec Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 25 Jul 2025 14:00:23 -0700 Subject: [PATCH 317/372] apply floating flag to tooltip correctly --- src/ui/ui_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/ui_core.c b/src/ui/ui_core.c index c83cb7a7..8bd50c8f 100644 --- a/src/ui/ui_core.c +++ b/src/ui/ui_core.c @@ -2014,7 +2014,7 @@ ui_tooltip_begin(void) ui_tooltip_begin_base(); ui_set_next_squish(0.1f-ui_state->tooltip_open_t*0.1f); ui_set_next_transparency(1-ui_state->tooltip_open_t); - UI_Flags(UI_BoxFlag_DrawBorder|UI_BoxFlag_DrawBackground|UI_BoxFlag_DrawBackgroundBlur|UI_BoxFlag_DrawDropShadow|UI_BoxFlag_SquishAnchored) + UI_Flags(UI_BoxFlag_Floating|UI_BoxFlag_DrawBorder|UI_BoxFlag_DrawBackground|UI_BoxFlag_DrawBackgroundBlur|UI_BoxFlag_DrawDropShadow|UI_BoxFlag_SquishAnchored) UI_PrefWidth(ui_children_sum(1)) UI_PrefHeight(ui_children_sum(1)) UI_CornerRadius(ui_top_font_size()*0.25f) From 4d7088d3215a320aceba2a095d3ca500eff3e6ca Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 25 Jul 2025 14:21:31 -0700 Subject: [PATCH 318/372] do not pre-emptively exit the debug event loop on timeout unless we actually have debug strings --- src/demon/win32/demon_core_win32.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/demon/win32/demon_core_win32.c b/src/demon/win32/demon_core_win32.c index 100cc98c..6a157f18 100644 --- a/src/demon/win32/demon_core_win32.c +++ b/src/demon/win32/demon_core_win32.c @@ -1822,7 +1822,7 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) // if priority mode? => first, just resume priority thread // if not? => resume all non-priority threads // - if(do_threads_resume) + if(do_threads_resume) ProfScope("resume threads that we want to run") { do_threads_resume = 0; for(DMN_W32_EntityNode *n = first_run_thread; n != 0; n = n->next) @@ -2676,7 +2676,7 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) //////////////////////// //- rjf: exit loop after a little while, so we keep pumping e.g. debug strings // - if(os_now_microseconds() >= begin_time+100000) + if(os_now_microseconds() >= begin_time+100000 && debug_strings.total_size != 0) { keep_going = 0; } From 1d67eb42a2ffab213fa1588580d334dc2f56f0a4 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 25 Jul 2025 14:27:38 -0700 Subject: [PATCH 319/372] os win32 -> upgrade clipboard paths for unicode --- src/os/gfx/win32/os_gfx_win32.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/os/gfx/win32/os_gfx_win32.c b/src/os/gfx/win32/os_gfx_win32.c index 93ad7dcf..8385d188 100644 --- a/src/os/gfx/win32/os_gfx_win32.c +++ b/src/os/gfx/win32/os_gfx_win32.c @@ -996,37 +996,41 @@ os_get_gfx_info(void) internal void os_set_clipboard_text(String8 string) { + Temp scratch = scratch_begin(0, 0); if(OpenClipboard(0)) { EmptyClipboard(); - HANDLE string_copy_handle = GlobalAlloc(GMEM_MOVEABLE, string.size+1); - if(string_copy_handle) + String16 string16 = str16_from_8(scratch.arena, string); + HANDLE string16_copy_handle = GlobalAlloc(GMEM_MOVEABLE, string16.size*sizeof(string16.str[0])+1); + if(string16_copy_handle) { - U8 *copy_buffer = (U8 *)GlobalLock(string_copy_handle); - MemoryCopy(copy_buffer, string.str, string.size); - copy_buffer[string.size] = 0; - GlobalUnlock(string_copy_handle); - SetClipboardData(CF_TEXT, string_copy_handle); + U16 *copy_buffer = (U16 *)GlobalLock(string16_copy_handle); + MemoryCopy(copy_buffer, string16.str, string16.size*sizeof(string16.str[0])); + copy_buffer[string16.size] = 0; + GlobalUnlock(string16_copy_handle); + SetClipboardData(CF_UNICODETEXT, string16_copy_handle); } CloseClipboard(); } + scratch_end(scratch); } internal String8 os_get_clipboard_text(Arena *arena) { String8 result = {0}; - if(IsClipboardFormatAvailable(CF_TEXT) && + if(IsClipboardFormatAvailable(CF_UNICODETEXT) && OpenClipboard(0)) { - HANDLE data_handle = GetClipboardData(CF_TEXT); + HANDLE data_handle = GetClipboardData(CF_UNICODETEXT); if(data_handle) { - U8 *buffer = (U8 *)GlobalLock(data_handle); + U16 *buffer = (U16 *)GlobalLock(data_handle); if(buffer) { - U64 size = cstring8_length(buffer); - result = push_str8_copy(arena, str8(buffer, size)); + U64 size = cstring16_length(buffer); + String16 string16 = str16(buffer, size); + result = str8_from_16(arena, string16); GlobalUnlock(data_handle); } } From 1c2855a31473ccdfa5aa4456c71131a0e66db9fc Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 25 Jul 2025 15:17:39 -0700 Subject: [PATCH 320/372] unwrap decorative type operators on casts when building ops for casting, to allow for graceful enum casting; gracefully skip struct/enum symbol name prefixes --- src/eval/eval_ir.c | 8 +++++--- src/eval/eval_parse.c | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index 7082c615..f6775432 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -841,6 +841,8 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I e_msg_list_concat_in_place(&result.msgs, &cast_irtree.msgs); E_TypeKey cast_type = cast_irtree.type_key; E_TypeKind cast_type_kind = e_type_kind_from_key(cast_type); + E_TypeKey cast_type_unwrapped = e_type_key_unwrap(cast_irtree.type_key, E_TypeUnwrapFlag_AllDecorative); + E_TypeKind cast_type_unwrapped_kind = e_type_kind_from_key(cast_type_unwrapped); U64 cast_type_byte_size = e_type_byte_size_from_key(cast_type); E_IRTreeAndType casted_tree = e_push_irtree_and_type_from_expr(arena, parent, &e_default_identifier_resolution_rule, disallow_autohooks, 1, casted_expr); e_msg_list_concat_in_place(&result.msgs, &casted_tree.msgs); @@ -848,7 +850,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I E_TypeKind casted_type_kind = e_type_kind_from_key(casted_type); U64 casted_type_byte_size = e_type_byte_size_from_key(casted_type); U8 in_group = e_type_group_from_kind(casted_type_kind); - U8 out_group = e_type_group_from_kind(cast_type_kind); + U8 out_group = e_type_group_from_kind(cast_type_unwrapped_kind); RDI_EvalConversionKind conversion_rule = rdi_eval_conversion_kind_from_typegroups(in_group, out_group); // rjf: bad conditions? -> error if applicable, exit @@ -880,11 +882,11 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I { new_tree = e_irtree_convert_lo(arena, in_tree, out_group, in_group); } - if(cast_type_byte_size < casted_type_byte_size && e_type_kind_is_integer(cast_type_kind)) + if(cast_type_byte_size < casted_type_byte_size && e_type_kind_is_integer(cast_type_unwrapped_kind)) { new_tree = e_irtree_trunc(arena, in_tree, cast_type); } - if(e_type_kind_is_signed(cast_type_kind) && e_type_kind_is_integer(casted_type_kind) && !e_type_kind_is_signed(casted_type_kind)) + if(e_type_kind_is_signed(cast_type_unwrapped_kind) && e_type_kind_is_integer(casted_type_kind) && !e_type_kind_is_signed(casted_type_kind)) { new_tree = e_irtree_trunc(arena, in_tree, cast_type); } diff --git a/src/eval/eval_parse.c b/src/eval/eval_parse.c index 664ec814..bf244b4b 100644 --- a/src/eval/eval_parse.c +++ b/src/eval/eval_parse.c @@ -1001,6 +1001,21 @@ e_push_parse_from_string_tokens__prec(Arena *arena, String8 text, E_TokenArray t { E_Token token = e_token_at_it(it, &tokens); String8 token_string = str8_substr(text, token.range); + + // rjf: skip no-op prefix keywords + if(token.kind == E_TokenKind_Identifier && + (str8_match(token_string, str8_lit("struct"), 0) || + str8_match(token_string, str8_lit("union"), 0) || + str8_match(token_string, str8_lit("enum"), 0) || + str8_match(token_string, str8_lit("class"), 0) || + str8_match(token_string, str8_lit("typename"), 0))) + { + it += 1; + token = e_token_at_it(it, &tokens); + token_string = str8_substr(text, token.range); + } + + // rjf: build identifier atom if(token.kind == E_TokenKind_Identifier) { String8 identifier_string = token_string; From 393c291f6369884018602b1e687b2f155a9c55d1 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 25 Jul 2025 15:19:35 -0700 Subject: [PATCH 321/372] reflect casting changes to call-cast style --- src/eval/eval_ir.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index f6775432..b349ee83 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -1404,12 +1404,14 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I e_msg_list_concat_in_place(&result.msgs, &casted_tree.msgs); E_TypeKey cast_type = lhs_irtree.type_key; E_TypeKind cast_type_kind = e_type_kind_from_key(cast_type); + E_TypeKey cast_type_unwrapped = e_type_key_unwrap(lhs_irtree.type_key, E_TypeUnwrapFlag_AllDecorative); + E_TypeKind cast_type_unwrapped_kind = e_type_kind_from_key(cast_type_unwrapped); U64 cast_type_byte_size = e_type_byte_size_from_key(cast_type); E_TypeKey casted_type = casted_tree.type_key; E_TypeKind casted_type_kind = e_type_kind_from_key(casted_type); U64 casted_type_byte_size = e_type_byte_size_from_key(casted_type); U8 in_group = e_type_group_from_kind(casted_type_kind); - U8 out_group = e_type_group_from_kind(cast_type_kind); + U8 out_group = e_type_group_from_kind(cast_type_unwrapped_kind); RDI_EvalConversionKind conversion_rule = rdi_eval_conversion_kind_from_typegroups(in_group, out_group); // rjf: bad conditions? -> error if applicable, exit @@ -1433,7 +1435,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I break; } - // rjf: generate casted result + // rjf: generate { E_IRNode *in_tree = e_irtree_resolve_to_value(arena, casted_tree.mode, casted_tree.root, casted_type); E_IRNode *new_tree = in_tree; @@ -1441,11 +1443,11 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I { new_tree = e_irtree_convert_lo(arena, in_tree, out_group, in_group); } - if(cast_type_byte_size < casted_type_byte_size && e_type_kind_is_integer(cast_type_kind)) + if(cast_type_byte_size < casted_type_byte_size && e_type_kind_is_integer(cast_type_unwrapped_kind)) { new_tree = e_irtree_trunc(arena, in_tree, cast_type); } - if(e_type_kind_is_signed(cast_type_kind) && e_type_kind_is_integer(casted_type_kind) && !e_type_kind_is_signed(casted_type_kind)) + if(e_type_kind_is_signed(cast_type_unwrapped_kind) && e_type_kind_is_integer(casted_type_kind) && !e_type_kind_is_signed(casted_type_kind)) { new_tree = e_irtree_trunc(arena, in_tree, cast_type); } From 163b79e4c0f7050cd0c40a8b998eda309cbd4417 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 25 Jul 2025 15:29:34 -0700 Subject: [PATCH 322/372] decay bitfield types in casting path, allow casting to integer types --- src/eval/eval_ir.c | 13 ++++++++----- src/eval/eval_types.c | 1 + src/eval/eval_types.h | 3 ++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index b349ee83..6e0338d8 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -848,8 +848,10 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I e_msg_list_concat_in_place(&result.msgs, &casted_tree.msgs); E_TypeKey casted_type = e_type_key_unwrap(casted_tree.type_key, E_TypeUnwrapFlag_AllDecorative); E_TypeKind casted_type_kind = e_type_kind_from_key(casted_type); + E_TypeKey casted_type_unwrapped = e_type_key_unwrap(casted_type, E_TypeUnwrapFlag_Bitfields|E_TypeUnwrapFlag_AllDecorative); + E_TypeKind casted_type_unwrapped_kind = e_type_kind_from_key(casted_type_unwrapped); U64 casted_type_byte_size = e_type_byte_size_from_key(casted_type); - U8 in_group = e_type_group_from_kind(casted_type_kind); + U8 in_group = e_type_group_from_kind(casted_type_unwrapped_kind); U8 out_group = e_type_group_from_kind(cast_type_unwrapped_kind); RDI_EvalConversionKind conversion_rule = rdi_eval_conversion_kind_from_typegroups(in_group, out_group); @@ -886,7 +888,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I { new_tree = e_irtree_trunc(arena, in_tree, cast_type); } - if(e_type_kind_is_signed(cast_type_unwrapped_kind) && e_type_kind_is_integer(casted_type_kind) && !e_type_kind_is_signed(casted_type_kind)) + if(e_type_kind_is_signed(cast_type_unwrapped_kind) && e_type_kind_is_integer(casted_type_unwrapped_kind) && !e_type_kind_is_signed(casted_type_unwrapped_kind)) { new_tree = e_irtree_trunc(arena, in_tree, cast_type); } @@ -1408,9 +1410,10 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I E_TypeKind cast_type_unwrapped_kind = e_type_kind_from_key(cast_type_unwrapped); U64 cast_type_byte_size = e_type_byte_size_from_key(cast_type); E_TypeKey casted_type = casted_tree.type_key; - E_TypeKind casted_type_kind = e_type_kind_from_key(casted_type); + E_TypeKey casted_type_unwrapped = e_type_key_unwrap(casted_type, E_TypeUnwrapFlag_Bitfields|E_TypeUnwrapFlag_AllDecorative); + E_TypeKind casted_type_unwrapped_kind = e_type_kind_from_key(casted_type_unwrapped); U64 casted_type_byte_size = e_type_byte_size_from_key(casted_type); - U8 in_group = e_type_group_from_kind(casted_type_kind); + U8 in_group = e_type_group_from_kind(casted_type_unwrapped_kind); U8 out_group = e_type_group_from_kind(cast_type_unwrapped_kind); RDI_EvalConversionKind conversion_rule = rdi_eval_conversion_kind_from_typegroups(in_group, out_group); @@ -1447,7 +1450,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I { new_tree = e_irtree_trunc(arena, in_tree, cast_type); } - if(e_type_kind_is_signed(cast_type_unwrapped_kind) && e_type_kind_is_integer(casted_type_kind) && !e_type_kind_is_signed(casted_type_kind)) + if(e_type_kind_is_signed(cast_type_unwrapped_kind) && e_type_kind_is_integer(casted_type_unwrapped_kind) && !e_type_kind_is_signed(casted_type_unwrapped_kind)) { new_tree = e_irtree_trunc(arena, in_tree, cast_type); } diff --git a/src/eval/eval_types.c b/src/eval/eval_types.c index e045ef6e..6d7a8e48 100644 --- a/src/eval/eval_types.c +++ b/src/eval/eval_types.c @@ -1509,6 +1509,7 @@ e_type_key_unwrap(E_TypeKey key, E_TypeUnwrapFlags flags) case E_TypeKind_MetaExpr: {done = !(flags & E_TypeUnwrapFlag_Meta);}break; case E_TypeKind_Enum: {done = !(flags & E_TypeUnwrapFlag_Enums);}break; case E_TypeKind_Alias: {done = !(flags & E_TypeUnwrapFlag_Aliases);}break; + case E_TypeKind_Bitfield: {done = !(flags & E_TypeUnwrapFlag_Bitfields);}break; case E_TypeKind_Array: case E_TypeKind_Ptr: case E_TypeKind_RRef: diff --git a/src/eval/eval_types.h b/src/eval/eval_types.h index b8274315..c6f8c66e 100644 --- a/src/eval/eval_types.h +++ b/src/eval/eval_types.h @@ -16,8 +16,9 @@ enum E_TypeUnwrapFlag_Meta = (1<<3), E_TypeUnwrapFlag_Enums = (1<<4), E_TypeUnwrapFlag_Aliases = (1<<5), + E_TypeUnwrapFlag_Bitfields = (1<<6), E_TypeUnwrapFlag_All = 0xffffffff, - E_TypeUnwrapFlag_AllDecorative = (E_TypeUnwrapFlag_All & ~E_TypeUnwrapFlag_Pointers) + E_TypeUnwrapFlag_AllDecorative = (E_TypeUnwrapFlag_All & ~(E_TypeUnwrapFlag_Pointers|E_TypeUnwrapFlag_Bitfields)) }; //////////////////////////////// From cb68abe8448b67829690ff3754c6b0a028e2f5af Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 25 Jul 2025 15:31:22 -0700 Subject: [PATCH 323/372] packed bits test in mule --- src/mule/mule_main.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/mule/mule_main.cpp b/src/mule/mule_main.cpp index e17f2fd2..f7733c56 100644 --- a/src/mule/mule_main.cpp +++ b/src/mule/mule_main.cpp @@ -1825,6 +1825,17 @@ basic_inline_tests(void) //////////////////////////////// //~ rjf: Fancy Visualization Eval Tests +struct PackedBits +{ + unsigned char b1 : 1; + unsigned char b2 : 1; + unsigned char b3 : 1; + unsigned char b4 : 1; + unsigned char b5 : 1; + unsigned char b6 : 1; +}; +raddbg_type_view(unsigned char : 1, bool($)); + struct Bitmap { unsigned char *base; @@ -1860,6 +1871,10 @@ fancy_viz_eval_tests(void) bool bool1 = 0; raddbg_pin(bool1); bool bool2 = 1; raddbg_pin(bool2); bool bool3 = 0; raddbg_pin(bool3); + PackedBits packed_bits = {}; + packed_bits.b1 = 1; + packed_bits.b3 = 1; + packed_bits.b5 = 1; //- rjf: sliders float slide1 = 500.f; raddbg_pin(range1(slide1, 0, 1000)); From 2e14f34cc867d68ae23bc2ca9d10470592560e49 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 25 Jul 2025 16:11:15 -0700 Subject: [PATCH 324/372] derefence pointer/reference evaluations when generating block tree, to match expected behavior, & what the string iterator does --- src/eval_visualization/eval_visualization_core.c | 12 ++++++++++++ src/mule/mule_main.cpp | 3 +++ 2 files changed, 15 insertions(+) diff --git a/src/eval_visualization/eval_visualization_core.c b/src/eval_visualization/eval_visualization_core.c index d791877e..669f4703 100644 --- a/src/eval_visualization/eval_visualization_core.c +++ b/src/eval_visualization/eval_visualization_core.c @@ -528,6 +528,18 @@ ev_block_tree_from_eval(Arena *arena, EV_View *view, String8 filter, E_Eval root // rjf: unpack eval E_Mode mode = t->eval.irtree.mode; E_Eval eval = t->eval; + + // rjf: pointers/reference evaluations -> dereference for expansion + { + E_TypeKey type_key = e_type_key_unwrap(eval.irtree.type_key, E_TypeUnwrapFlag_Modifiers|E_TypeUnwrapFlag_Meta); + E_TypeKind type_kind = e_type_kind_from_key(type_key); + if(e_type_kind_is_pointer_or_ref(type_kind)) + { + eval = e_eval_wrapf(eval, "*($)"); + } + } + + // rjf: unpack type key we'll use for expanding this eval E_TypeKey expansion_type_key = ev_expansion_type_from_key(eval.irtree.type_key); if(!e_type_key_match(expansion_type_key, e_type_key_zero())) { diff --git a/src/mule/mule_main.cpp b/src/mule/mule_main.cpp index f7733c56..203b6036 100644 --- a/src/mule/mule_main.cpp +++ b/src/mule/mule_main.cpp @@ -626,6 +626,9 @@ type_coverage_eval_tests(void) int_vector.push_back(6); int_vector.push_back(7); + std::vector *pint_vector = &int_vector; + std::vector &rint_vector = int_vector; + std::vector dynamic_array_vector; dynamic_array_vector.push_back(dynamic); dynamic_array_vector.push_back(dynamic); From 7dca3fd954a9a76f5a62aa8bf38a43423304f88d Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sun, 27 Jul 2025 20:02:18 -0700 Subject: [PATCH 325/372] os/gfx/win32: fix bad alloc size in new utf16 clipboard path --- src/os/gfx/win32/os_gfx_win32.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/os/gfx/win32/os_gfx_win32.c b/src/os/gfx/win32/os_gfx_win32.c index 8385d188..dac8bde7 100644 --- a/src/os/gfx/win32/os_gfx_win32.c +++ b/src/os/gfx/win32/os_gfx_win32.c @@ -1001,7 +1001,7 @@ os_set_clipboard_text(String8 string) { EmptyClipboard(); String16 string16 = str16_from_8(scratch.arena, string); - HANDLE string16_copy_handle = GlobalAlloc(GMEM_MOVEABLE, string16.size*sizeof(string16.str[0])+1); + HANDLE string16_copy_handle = GlobalAlloc(GMEM_MOVEABLE, (string16.size+1)*sizeof(string16.str[0])); if(string16_copy_handle) { U16 *copy_buffer = (U16 *)GlobalLock(string16_copy_handle); From e3a79dae862eb03d7bd40a8640182be39146cc35 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sun, 27 Jul 2025 21:02:34 -0700 Subject: [PATCH 326/372] apply slash insensitivity to fuzzy matches --- src/base/base_strings.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/base/base_strings.c b/src/base/base_strings.c index 36ed92c4..84f19d77 100644 --- a/src/base/base_strings.c +++ b/src/base/base_strings.c @@ -2491,7 +2491,7 @@ fuzzy_match_find(Arena *arena, String8 needle, String8 haystack) U64 find_pos = 0; for(;find_pos < haystack.size;) { - find_pos = str8_find_needle(haystack, find_pos, needle_n->string, StringMatchFlag_CaseInsensitive); + find_pos = str8_find_needle(haystack, find_pos, needle_n->string, StringMatchFlag_CaseInsensitive|StringMatchFlag_SlashInsensitive); B32 is_in_gathered_ranges = 0; for(FuzzyMatchRangeNode *n = result.first; n != 0; n = n->next) { From 9b28ab68f21e428e3eb0569e95df55a1f005c1e0 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 28 Jul 2025 11:26:55 -0700 Subject: [PATCH 327/372] adjust open user/project path to be more robust in cases of loading corrupted data on startup --- src/raddbg/raddbg_core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 206f8881..583fbf67 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -13125,7 +13125,10 @@ rd_frame(void) //- rjf: determine if the file is good B32 file_is_okay = 0; { + String8 stored_path = (kind == RD_CmdKind_OpenUser ? rd_state->user_path : rd_state->project_path); file_is_okay = ((file_props.size == 0 && file_props.created == 0) || + str8_match(file_path, stored_path, 0) || + stored_path.size == 0 || str8_match(str8_prefix(file_data, 9), str8_lit("// raddbg"), 0)); } From 97b4abd6dea4eb187f41ae4898898f18880eb2cf Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 28 Jul 2025 11:36:43 -0700 Subject: [PATCH 328/372] measure os file write helper success by bytes written - do not assume the write completes if the file handle is valid --- src/os/core/os_core.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/os/core/os_core.c b/src/os/core/os_core.c index 048072e0..e4cb49e6 100644 --- a/src/os/core/os_core.c +++ b/src/os/core/os_core.c @@ -75,8 +75,8 @@ os_write_data_to_file_path(String8 path, String8 data) OS_Handle file = os_file_open(OS_AccessFlag_Write, path); if(!os_handle_match(file, os_handle_zero())) { - good = 1; - os_file_write(file, r1u64(0, data.size), data.str); + U64 bytes_written = os_file_write(file, r1u64(0, data.size), data.str); + good = (bytes_written == data.size); os_file_close(file); } return good; @@ -89,13 +89,13 @@ os_write_data_list_to_file_path(String8 path, String8List list) OS_Handle file = os_file_open(OS_AccessFlag_Write, path); if(!os_handle_match(file, os_handle_zero())) { - good = 1; Temp scratch = scratch_begin(0, 0); U64 write_buffer_size = KB(64); U8 *write_buffer = push_array_no_zero(scratch.arena, U8, write_buffer_size); U64 write_buffer_write_pos = 0; U64 write_buffer_read_pos = 0; U64 file_off = 0; + U64 total_bytes_written = 0; { for(String8Node *n = list.first; n != 0; n = n->next) { @@ -119,9 +119,10 @@ os_write_data_list_to_file_path(String8 path, String8List list) } if(write_buffer_write_pos > write_buffer_read_pos) { - os_file_write(file, r1u64(file_off, file_off + (write_buffer_write_pos-write_buffer_read_pos)), write_buffer); + total_bytes_written += os_file_write(file, r1u64(file_off, file_off + (write_buffer_write_pos-write_buffer_read_pos)), write_buffer); } } + good = (total_bytes_written == list.total_size); os_file_close(file); scratch_end(scratch); } @@ -137,9 +138,9 @@ os_append_data_to_file_path(String8 path, String8 data) OS_Handle file = os_file_open(OS_AccessFlag_Write|OS_AccessFlag_Append, path); if(!os_handle_match(file, os_handle_zero())) { - good = 1; U64 pos = os_properties_from_file(file).size; - os_file_write(file, r1u64(pos, pos+data.size), data.str); + U64 bytes_written = os_file_write(file, r1u64(pos, pos+data.size), data.str); + good = (bytes_written == data.size); os_file_close(file); } } From c22ecf8e715dd5c94d393ffdd6d6067ef5c84106 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 28 Jul 2025 12:05:37 -0700 Subject: [PATCH 329/372] output clearing path --- src/raddbg/generated/raddbg.meta.c | 10 ++++++---- src/raddbg/generated/raddbg.meta.h | 3 ++- src/raddbg/raddbg.mdesk | 6 +++++- src/raddbg/raddbg_core.c | 7 +++++++ src/raddbg/raddbg_eval.c | 25 +++++++++++++++++-------- 5 files changed, 37 insertions(+), 14 deletions(-) diff --git a/src/raddbg/generated/raddbg.meta.c b/src/raddbg/generated/raddbg.meta.c index 83fe8eb6..bbdc8c35 100644 --- a/src/raddbg/generated/raddbg.meta.c +++ b/src/raddbg/generated/raddbg.meta.c @@ -60,7 +60,7 @@ str8_lit_comp(""), str8_lit_comp(""), }; -RD_VocabInfo rd_vocab_info_table[351] = +RD_VocabInfo rd_vocab_info_table[352] = { {str8_lit_comp("type_view"), str8_lit_comp("type_views"), str8_lit_comp("Type View"), str8_lit_comp("Type Views"), RD_IconKind_Binoculars}, {str8_lit_comp("file_path_map"), str8_lit_comp("file_path_maps"), str8_lit_comp("File Path Map"), str8_lit_comp("File Path Maps"), RD_IconKind_FileOutline}, @@ -358,6 +358,7 @@ RD_VocabInfo rd_vocab_info_table[351] = {str8_lit_comp("disable_breakpoint"), str8_lit_comp(""), str8_lit_comp("Disable Breakpoint"), str8_lit_comp(""), RD_IconKind_CheckHollow}, {str8_lit_comp("clear_breakpoints"), str8_lit_comp(""), str8_lit_comp("Clear Breakpoints"), str8_lit_comp(""), RD_IconKind_Trash}, {str8_lit_comp("list_breakpoints"), str8_lit_comp(""), str8_lit_comp("List Breakpoints"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("clear_output"), str8_lit_comp(""), str8_lit_comp("Clear Output"), str8_lit_comp(""), RD_IconKind_Null}, {str8_lit_comp("add_watch_pin"), str8_lit_comp(""), str8_lit_comp("Add Watch Pin"), str8_lit_comp(""), RD_IconKind_Pin}, {str8_lit_comp("toggle_watch_pin"), str8_lit_comp(""), str8_lit_comp("Toggle Watch Pin"), str8_lit_comp(""), RD_IconKind_Pin}, {str8_lit_comp("add_type_view"), str8_lit_comp(""), str8_lit_comp("Add Type View"), str8_lit_comp(""), RD_IconKind_Binoculars}, @@ -423,8 +424,8 @@ RD_NameSchemaInfo rd_name_schema_info_table[24] = {str8_lit_comp("window"), str8_lit_comp("x:\n{\n //- rjf: text rasterization settings\n @default(1) @display_name('Smooth UI Text') @description(\"Controls whether or not UI text is fully anti-aliased, for a smoother appearance.\")\n 'smooth_ui_text': bool,\n @default(1) @display_name('Hint UI Text') @description(\"Controls whether or not UI text is hinted, for better text readability at small sizes.\")\n 'hint_ui_text': bool,\n @default(0) @display_name('Smooth Code Text') @description(\"Controls whether or not code text is fully anti-aliased, for a smoother appearance.\")\n 'smooth_code_text': bool,\n @default(1) @display_name('Hint Code Text') @description(\"Controls whether or not code text is hinted, for better text readability at small sizes.\")\n 'hint_code_text': bool,\n @default(11) @display_name('Window Font Size') @description(\"Controls the window's default font size. Does not apply to tabs with their own font size set.\")\n 'font_size': @range[6, 72] u64,\n\n //- rjf: size settings\n @default(3.f) @display_name('Window Row Height') @description(\"Controls the window's default row height, in multiples of the font size. Does not apply to tabs with their own row height set.\")\n 'row_height': @range[1.75f, 5.f] f32,\n @default(3.f) @description(\"Controls the height of tabs, in multiples of the font size.\")\n 'tab_height': @range[1.75f, 5.f] f32,\n\n //- rjf: theme settings\n @default(1) @display_name('Use Project Theme') @description(\"Prefer using the project theme for this window, if any. If off, only the user's theme settings will be used.\")\n 'use_project_theme': bool,\n}\n")}, {str8_lit_comp("tab"), str8_lit_comp("@row_commands(@file copy_tab_full_path, @file show_file_in_explorer, duplicate_tab, close_tab)\nx:\n{\n @override @display_name('Tab Font Size') @description(\"Controls the tab's font size.\") @no_callee_helper\n 'font_size': @range[6, 72] u64,\n}\n")}, {str8_lit_comp("watch"), str8_lit_comp("@inherit(tab) x:\n{\n @override @display_name('Tab Row Height') @description(\"Controls the tab's row height, in multiples of the font size.\")\n 'row_height': @range[1.75f, 5.f] f32,\n 'label': code_string,\n @description(\"The root expression which is evaluated to produce the watch window.\")\n 'expression': expr_string,\n @no_expand 'watches': query,\n}\n")}, -{str8_lit_comp("text"), str8_lit_comp("@inherit(tab) x:\n{\n @description(\"An expression to describe data which should be viewed as text or code.\")\n 'expression': expr_string,\n @description(\"The language that the text should be interpreted as being within. Used for syntax highlighting and other parsing features.\")\n 'lang': code_string,\n @default(1) @description(\"Controls whether or not line numbers are shown.\")\n 'show_line_numbers':bool,\n @no_callee_helper @default(0) @display_name('Scroll To Bottom On Change') @description(\"Scrolls to the bottom if the text is changed.\")\n 'scroll_to_bottom_on_change':bool,\n @no_callee_helper @no_revert @default(0) @display_name('Transient') @description(\"Controls whether or not this tab will be automatically replaced by the debugger when it snaps to new source code locations.\")\n 'auto': bool,\n}\n")}, -{str8_lit_comp("disasm"), str8_lit_comp("@inherit(tab) x:\n{\n @description(\"An expression to describe the base address or offset of the disassembly.\")\n 'expression': expr_string,\n 'arch': code_string,\n 'syntax': code_string,\n 'size': expr_string,\n @no_callee_helper @default(1) @description(\"Controls whether or not addresses are shown in the disassembly text.\")\n 'show_addresses': bool,\n @no_callee_helper @default(0) @description(\"Controls whether or not code bytes are shown in the disassembly text.\")\n 'show_code_bytes': bool,\n @no_callee_helper @default(1) @description(\"Controls whether or not source lines, corresponding to disassembly instruction ranges, are shown in the disassembly text.\")\n 'show_source_lines': bool,\n @no_callee_helper @default(1) @description(\"Controls whether or not disassembly text is decorated with symbol names.\")\n 'show_symbol_names': bool,\n @no_callee_helper @default(1) @description(\"Controls whether or not line numbers are shown.\")\n 'show_line_numbers': bool,\n}\n")}, +{str8_lit_comp("text"), str8_lit_comp("@inherit(tab) @expand_commands(@output clear_output) x:\n{\n @description(\"An expression to describe data which should be viewed as text or code.\")\n 'expression': expr_string,\n @description(\"The language that the text should be interpreted as being within. Used for syntax highlighting and other parsing features.\")\n 'lang': code_string,\n @default(1) @description(\"Controls whether or not line numbers are shown.\")\n 'show_line_numbers':bool,\n @no_callee_helper @default(0) @display_name('Scroll To Bottom On Change') @description(\"Scrolls to the bottom if the text is changed.\")\n 'scroll_to_bottom_on_change':bool,\n @no_callee_helper @no_revert @default(0) @display_name('Transient') @description(\"Controls whether or not this tab will be automatically replaced by the debugger when it snaps to new source code locations.\")\n 'auto': bool,\n}\n")}, +{str8_lit_comp("disasm"), str8_lit_comp("@inherit(tab) x:\n{\n @description(\"An expression to describe the base address or offset of the disassembly.\")\n 'expression': expr_string,\n 'arch': code_string,\n 'syntax': code_string,\n 'size': expr_string,\n @no_callee_helper @default(1) @description(\"Controls whether or not addresses are shown in the disassembly text.\")\n 'show_addresses': bool,\n @no_callee_helper @default(0) @description(\"Controls whether or not code bytes are shown in the disassembly text.\")\n 'show_code_bytes': bool,\n @no_callee_helper @default(1) @description(\"Controls whether or not source lines, corresponding to disassembly instruction ranges, are shown in the disassembly text.\")\n 'show_source_lines': bool,\n @no_callee_helper @default(1) @description(\"Controls whether or not disassembly text is decorated with symbol names.\")\n 'show_symbol_names': bool,\n @no_callee_helper @default(1) @description(\"Controls whether or not line numbers are shown.\")\n 'show_line_numbers': bool,\n\n}\n")}, {str8_lit_comp("memory"), str8_lit_comp("@inherit(tab) x:\n{\n @description(\"An expression which refers to the base address of data which should be viewed as memory.\")\n 'expression': expr_string,\n @display_name(\"Address Range Size\") @description(\"The number of bytes of the viewed memory range.\")\n 'size': expr_string,\n @display_name(\"Cursor Address\") @description(\"The address of the cursor.\")\n 'cursor': expr_string,\n @display_name(\"Cursor Size\") @description(\"The size, in bytes, of the cursor.\")\n 'cursor_size': @range[1, 16] u64,\n @default(16) @description(\"The number of columns to build before building new rows.\")\n 'num_columns': @range[1, 64] u64,\n @default(1) @display_name(\"Track Mark To Cursor\") @description(\"Ensures that the mark always follows the cursor, if the cursor value is updated.\")\n 'track_mark_to_cursor': bool,\n}\n")}, {str8_lit_comp("bitmap"), str8_lit_comp("@inherit(tab) x:\n{\n @description(\"An expression which refers to the base address of data which should be viewed as a bitmap.\")\n 'expression': expr_string,\n @description(\"An expression describing the width of the bitmap, in pixels.\") @order(0) 'w': u64,\n @description(\"An expression describing the height of the bitmap, in pixels.\") @order(1) 'h': u64,\n @display_name(\"Bitmap Format\") @description(\"The pixel format that the bitmap data should be interpreted as being within.\")\n 'fmt': code_string,\n}\n")}, {str8_lit_comp("color"), str8_lit_comp("@inherit(tab) x:\n{\n @display_name(\"Value\") @description(\"An expression to describe the value or location of the color.\")\n 'expression': expr_string,\n}\n")}, @@ -545,7 +546,7 @@ Rng1U64 rd_reg_slot_range_table[47] = {OffsetOf(RD_Regs, os_event), OffsetOf(RD_Regs, os_event) + sizeof(OS_Event *)}, }; -RD_CmdKindInfo rd_cmd_kind_info_table[244] = +RD_CmdKindInfo rd_cmd_kind_info_table[245] = { {0}, { str8_lit_comp("launch_and_run"), str8_lit_comp("Starts debugging a new instance of a target, then runs."), str8_lit_comp("launch,start,run,target"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, @@ -736,6 +737,7 @@ RD_CmdKindInfo rd_cmd_kind_info_table[244] = { str8_lit_comp("disable_breakpoint"), str8_lit_comp("Disables a breakpoint."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:breakpoints"), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("clear_breakpoints"), str8_lit_comp("Removes all breakpoints."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("list_breakpoints"), str8_lit_comp("Lists all breakpoints."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, +{ str8_lit_comp("clear_output"), str8_lit_comp("Clears all output."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("add_watch_pin"), str8_lit_comp("Places a watch pin at a given location (file path and line number or address)."), str8_lit_comp(""), str8_lit_comp("$watch_pins,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Expr, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("toggle_watch_pin"), str8_lit_comp("Places or removes a watch pin at a given location (file path and line number or address)."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Expr, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("add_type_view"), str8_lit_comp("Adds a new type view."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_String, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, diff --git a/src/raddbg/generated/raddbg.meta.h b/src/raddbg/generated/raddbg.meta.h index 1473a73d..d54928ee 100644 --- a/src/raddbg/generated/raddbg.meta.h +++ b/src/raddbg/generated/raddbg.meta.h @@ -249,6 +249,7 @@ RD_CmdKind_EnableBreakpoint, RD_CmdKind_DisableBreakpoint, RD_CmdKind_ClearBreakpoints, RD_CmdKind_ListBreakpoints, +RD_CmdKind_ClearOutput, RD_CmdKind_AddWatchPin, RD_CmdKind_ToggleWatchPin, RD_CmdKind_AddTypeView, @@ -590,7 +591,7 @@ Z(getting_started)\ C_LINKAGE_BEGIN extern String8 rd_tab_fast_path_view_name_table[24]; extern String8 rd_tab_fast_path_query_name_table[24]; -extern RD_VocabInfo rd_vocab_info_table[351]; +extern RD_VocabInfo rd_vocab_info_table[352]; extern RD_NameSchemaInfo rd_name_schema_info_table[24]; extern String8 rd_reg_slot_code_name_table[47]; extern Rng1U64 rd_reg_slot_range_table[47]; diff --git a/src/raddbg/raddbg.mdesk b/src/raddbg/raddbg.mdesk index 46a7bda9..f89a0014 100644 --- a/src/raddbg/raddbg.mdesk +++ b/src/raddbg/raddbg.mdesk @@ -469,7 +469,7 @@ RD_VocabTable: { text, ``` - @inherit(tab) x: + @inherit(tab) @expand_commands(@output clear_output) x: { @description("An expression to describe data which should be viewed as text or code.") 'expression': expr_string, @@ -504,6 +504,7 @@ RD_VocabTable: 'show_symbol_names': bool, @no_callee_helper @default(1) @description("Controls whether or not line numbers are shown.") 'show_line_numbers': bool, + } ``` } @@ -1018,6 +1019,9 @@ RD_CmdTable: // | | | | {ClearBreakpoints 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Trash "clear_breakpoints" "Clear Breakpoints" "Removes all breakpoints." "" "" } {ListBreakpoints 0 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "list_breakpoints" "List Breakpoints" "Lists all breakpoints." "" "" } + //- rjf: output + {ClearOutput 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "clear_output" "Clear Output" "Clears all output." "" "" } + //- rjf: watch pins {AddWatchPin 1 1 0 0 "" Expr null Nil Null 0 0 0 0 1 1 1 Pin "add_watch_pin" "Add Watch Pin" "Places a watch pin at a given location (file path and line number or address)." "" "$watch_pins," } {ToggleWatchPin 1 0 0 0 "" Expr null Nil Null 0 0 0 0 1 1 1 Pin "toggle_watch_pin" "Toggle Watch Pin" "Places or removes a watch pin at a given location (file path and line number or address)." "" "" } diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 583fbf67..60a32c6a 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -15825,6 +15825,13 @@ rd_frame(void) } }break; + //- rjf: output + case RD_CmdKind_ClearOutput: + { + MTX_Op op = {r1u64(0, 0xffffffffffffffffull), str8_lit("")}; + mtx_push_op(d_state->output_log_key, op); + }break; + //- rjf: watch pins case RD_CmdKind_AddWatchPin: case RD_CmdKind_ToggleWatchPin: diff --git a/src/raddbg/raddbg_eval.c b/src/raddbg/raddbg_eval.c index aea1d37b..20d9e521 100644 --- a/src/raddbg/raddbg_eval.c +++ b/src/raddbg/raddbg_eval.c @@ -511,15 +511,24 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(schema) MD_Node *tag = md_tag_from_string(schema, str8_lit("expand_commands"), 0); for MD_EachNode(arg, tag->first) { - RD_CmdKindInfo *cmd_kind_info = rd_cmd_kind_info_from_string(arg->string); - FuzzyMatchRangeList name_matches = fuzzy_match_find(scratch.arena, filter, rd_display_from_code_name(cmd_kind_info->string)); - FuzzyMatchRangeList desc_matches = fuzzy_match_find(scratch.arena, filter, cmd_kind_info->description); - FuzzyMatchRangeList tags_matches = fuzzy_match_find(scratch.arena, filter, cmd_kind_info->search_tags); - if(name_matches.count == name_matches.needle_part_count || - desc_matches.count == desc_matches.needle_part_count || - tags_matches.count == tags_matches.needle_part_count) + B32 filtered = 0; + if(md_node_has_tag(arg, str8_lit("output"), 0)) { - str8_list_push(scratch.arena, &commands_list, arg->string); + String8 expr = rd_expr_from_cfg(ext->cfg); + filtered = (!str8_match(expr, str8_lit("query:output"), 0)); + } + if(!filtered) + { + RD_CmdKindInfo *cmd_kind_info = rd_cmd_kind_info_from_string(arg->string); + FuzzyMatchRangeList name_matches = fuzzy_match_find(scratch.arena, filter, rd_display_from_code_name(cmd_kind_info->string)); + FuzzyMatchRangeList desc_matches = fuzzy_match_find(scratch.arena, filter, cmd_kind_info->description); + FuzzyMatchRangeList tags_matches = fuzzy_match_find(scratch.arena, filter, cmd_kind_info->search_tags); + if(name_matches.count == name_matches.needle_part_count || + desc_matches.count == desc_matches.needle_part_count || + tags_matches.count == tags_matches.needle_part_count) + { + str8_list_push(scratch.arena, &commands_list, arg->string); + } } } } From 5134d1ce4c0bfd3f6ad0944b0eae55137ffab7de Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 28 Jul 2025 14:32:47 -0700 Subject: [PATCH 330/372] adjust eval -> space range mapping to fix a few edge cases --- src/eval/eval_core.c | 53 +++++++++++++++++++++------------------ src/eval/eval_core.h | 3 +-- src/raddbg/raddbg_core.c | 12 +++++++++ src/raddbg/raddbg_core.h | 1 + src/raddbg/raddbg_views.c | 34 ++++++------------------- 5 files changed, 49 insertions(+), 54 deletions(-) diff --git a/src/eval/eval_core.c b/src/eval/eval_core.c index fa02c57e..a1f3c268 100644 --- a/src/eval/eval_core.c +++ b/src/eval/eval_core.c @@ -1350,38 +1350,41 @@ e_key_wrapf(E_Key key, char *fmt, ...) //////////////////////////////// //~ rjf: Eval Info Extraction -internal U64 -e_base_offset_from_eval(E_Eval eval) +internal Rng1U64 +e_range_from_eval(E_Eval eval) { - if(e_type_kind_is_pointer_or_ref(e_type_kind_from_key(e_type_key_unwrap(eval.irtree.type_key, E_TypeUnwrapFlag_AllDecorative)))) + // rjf: choose base offset + U64 base_offset = 0; { - eval = e_value_eval_from_eval(eval); - } - return eval.value.u64; -} - -internal U64 -e_range_size_from_eval(E_Eval eval) -{ - U64 result = KB(16); - { - E_TypeKey type_core = e_type_key_unwrap(eval.irtree.type_key, E_TypeUnwrapFlag_AllDecorative); - E_TypeKind type_core_kind = e_type_kind_from_key(type_core); - B32 got_size = 0; - - // rjf: try getting size from intrinsic type (e.g. arrays/etc.) - if(!got_size) + E_Eval base_off_eval = eval; + if(e_type_kind_is_pointer_or_ref(e_type_kind_from_key(e_type_key_unwrap(base_off_eval.irtree.type_key, E_TypeUnwrapFlag_AllDecorative)))) { - if(type_core_kind == E_TypeKind_Array || - type_core_kind == E_TypeKind_Struct || - type_core_kind == E_TypeKind_Union || - type_core_kind == E_TypeKind_Class) + base_off_eval = e_value_eval_from_eval(base_off_eval); + } + base_offset = base_off_eval.value.u64; + } + + // rjf: choose size + U64 size = KB(16); + { + E_TypeKey type_key = e_type_key_unwrap(eval.irtree.type_key, E_TypeUnwrapFlag_AllDecorative); + E_TypeKind type_kind = e_type_kind_from_key(type_key); + if(type_kind == E_TypeKind_Ptr) + { + E_Eval ptee_eval = e_eval_wrapf(eval, "*$"); + U64 ptee_size = e_type_byte_size_from_key(ptee_eval.irtree.type_key); + if(ptee_size > 8) { - result = e_type_byte_size_from_key(type_core); - got_size = 1; + size = ptee_size; } } + else + { + size = e_type_byte_size_from_key(type_key); + } } + + Rng1U64 result = r1u64(base_offset, base_offset+size); return result; } diff --git a/src/eval/eval_core.h b/src/eval/eval_core.h index d439979a..0de42d9d 100644 --- a/src/eval/eval_core.h +++ b/src/eval/eval_core.h @@ -1294,8 +1294,7 @@ internal E_Key e_key_wrapf(E_Key key, char *fmt, ...); //////////////////////////////// //~ rjf: Eval Info Extraction -internal U64 e_base_offset_from_eval(E_Eval eval); -internal U64 e_range_size_from_eval(E_Eval eval); +internal Rng1U64 e_range_from_eval(E_Eval eval); //////////////////////////////// //~ rjf: Debug Functions diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 60a32c6a..08186ae4 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -5640,6 +5640,18 @@ rd_view_setting_f32_from_name(String8 name) //- rjf: evaluation & tag (a view's 'call') parameter extraction +internal Rng1U64 +rd_space_range_from_eval(E_Eval eval) +{ + Rng1U64 range = e_range_from_eval(eval); + U64 size_setting = rd_view_setting_value_from_name(str8_lit("size")).u64; + if(size_setting != 0) + { + range.max = range.min + size_setting; + } + return range; +} + internal TXT_LangKind rd_lang_kind_from_eval(E_Eval eval) { diff --git a/src/raddbg/raddbg_core.h b/src/raddbg/raddbg_core.h index 1555917f..adc9f532 100644 --- a/src/raddbg/raddbg_core.h +++ b/src/raddbg/raddbg_core.h @@ -934,6 +934,7 @@ internal U64 rd_view_setting_u64_from_name(String8 string); internal F32 rd_view_setting_f32_from_name(String8 string); //- rjf: evaluation & tag (a view's 'call') parameter extraction +internal Rng1U64 rd_space_range_from_eval(E_Eval eval); internal TXT_LangKind rd_lang_kind_from_eval(E_Eval eval); internal Arch rd_arch_from_eval(E_Eval eval); diff --git a/src/raddbg/raddbg_views.c b/src/raddbg/raddbg_views.c index 2d874959..2d9275ae 100644 --- a/src/raddbg/raddbg_views.c +++ b/src/raddbg/raddbg_views.c @@ -2061,13 +2061,7 @@ RD_VIEW_UI_FUNCTION_DEF(text) if(rd_regs()->cursor.column == 0) { rd_regs()->cursor.column = 1; } if(rd_regs()->mark.line == 0) { rd_regs()->mark.line = 1; } if(rd_regs()->mark.column == 0) { rd_regs()->mark.column = 1; } - U64 base_offset = e_base_offset_from_eval(eval); - U64 size = rd_view_setting_value_from_name(str8_lit("size")).u64; - if(size == 0) - { - size = e_range_size_from_eval(eval); - } - Rng1U64 range = r1u64(base_offset, base_offset+size); + Rng1U64 range = rd_space_range_from_eval(eval); rd_regs()->text_key = rd_key_from_eval_space_range(eval.space, range, 1); String8 lang = rd_view_setting_from_name(str8_lit("lang")); if(lang.size == 0) @@ -2346,13 +2340,7 @@ RD_VIEW_UI_FUNCTION_DEF(disasm) { space = auto_space; } - U64 base_offset = e_base_offset_from_eval(eval); - U64 size = rd_view_setting_value_from_name(str8_lit("size")).u64; - if(size == 0) - { - size = e_range_size_from_eval(eval); - } - Rng1U64 range = r1u64(base_offset, base_offset+size); + Rng1U64 range = rd_space_range_from_eval(eval); Arch arch = rd_arch_from_eval(eval); CTRL_Entity *space_entity = rd_ctrl_entity_from_eval_space(space); CTRL_Entity *dasm_module = &ctrl_entity_nil; @@ -2535,22 +2523,12 @@ RD_VIEW_UI_FUNCTION_DEF(memory) Vec4F32 main_tx_color_rgba = ui_color_from_name(str8_lit("text")); Vec4F32 main_tx_color_hsva = hsva_from_rgba(main_tx_color_rgba); F32 main_font_size = ui_bottom_font_size(); - U64 base_offset = e_base_offset_from_eval(eval); - U64 size = rd_view_setting_value_from_name(str8_lit("size")).u64; - if(size == 0) - { - size = e_range_size_from_eval(eval); - } - Rng1U64 view_range = r1u64(base_offset, base_offset+size); + Rng1U64 view_range = rd_space_range_from_eval(eval); if(eval.space.kind == 0) { eval.space = rd_eval_space_from_ctrl_entity(ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->process), RD_EvalSpaceKind_CtrlEntity); view_range = rd_whole_range_from_eval_space(eval.space); } - if(eval.space.kind == RD_EvalSpaceKind_CtrlEntity && dim_1u64(view_range) == KB(16)) - { - view_range = r1u64(0, 0x7FFFFFFFFFFFull); - } U64 cursor_base_vaddr = rd_view_setting_u64_from_name(str8_lit("cursor")); U64 mark_base_vaddr = rd_view_setting_u64_from_name(str8_lit("mark")); U64 cursor_size = rd_view_setting_u64_from_name(str8_lit("cursor_size")); @@ -3848,7 +3826,8 @@ RD_VIEW_UI_FUNCTION_DEF(bitmap) break; } } - U64 base_offset = e_base_offset_from_eval(eval); + Rng1U64 eval_range = e_range_from_eval(eval); + U64 base_offset = eval_range.min; U64 expected_size = dim.x*dim.y*r_tex2d_format_bytes_per_pixel_table[fmt]; Rng1U64 offset_range = r1u64(base_offset, base_offset + expected_size); @@ -4361,7 +4340,8 @@ RD_VIEW_UI_FUNCTION_DEF(geo3d) ////////////////////////////// //- rjf: evaluate & unpack expression // - U64 base_offset = e_base_offset_from_eval(eval); + Rng1U64 eval_range = e_range_from_eval(eval); + U64 base_offset = eval_range.min; Rng1U64 idxs_range = r1u64(base_offset, base_offset+count*sizeof(U32)); Rng1U64 vtxs_range = r1u64(vtx_base_off, vtx_base_off+vtx_size); HS_Key idxs_key = rd_key_from_eval_space_range(eval.space, idxs_range, 0); From 2e8c0875c8ee1b22628be30dee10607e0d5fbdd2 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 28 Jul 2025 14:34:46 -0700 Subject: [PATCH 331/372] only use type-derived sizes in eval ranges when the evaluation is an offset, not a value --- src/eval/eval_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/eval/eval_core.c b/src/eval/eval_core.c index a1f3c268..ac1e174b 100644 --- a/src/eval/eval_core.c +++ b/src/eval/eval_core.c @@ -1378,7 +1378,7 @@ e_range_from_eval(E_Eval eval) size = ptee_size; } } - else + else if(eval.irtree.mode == E_Mode_Offset) { size = e_type_byte_size_from_key(type_key); } From 09f9cc25df173cc6a21618a5e6895aa52100b060 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 28 Jul 2025 14:54:48 -0700 Subject: [PATCH 332/372] os/linux: move-file-path impl --- project.4coder | 8 ++++---- src/os/core/linux/os_core_linux.c | 12 ++++++++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/project.4coder b/project.4coder index b5a61eb5..8f0e3d02 100644 --- a/project.4coder +++ b/project.4coder @@ -46,11 +46,11 @@ load_paths = commands = { //- rjf: [raddbg] - .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [raddbg wsl] - // .f1 = { .win = "wsl ./build.sh raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f1 = { .win = "wsl ./build.sh raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [scratch] .f2 = { .win = "raddbg_stable --ipc kill_all && build radbin && pushd build && radbin.exe mule_main.rdi --out:a.dump && popd", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, @@ -65,8 +65,8 @@ commands = // .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: running target - .f3 = { .win = "raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, - // .f3 = { .win = "wsl ./build/raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f3 = { .win = "raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f3 = { .win = "wsl ./build/raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f3 = { .win = "pushd build && raddbg --user:dev.raddbg_user && popd", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f3 = { .win = "C:/devel/raddebugger/build/raddbg.exe --capture --user:C:/devel/raddebugger/build/local_dev.raddbg_user --project:C:/devel/raddebugger/build/local_dev.raddbg_project", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f3 = { .win = "wsl_launch /mnt/c/devel/raddebugger/build/raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, diff --git a/src/os/core/linux/os_core_linux.c b/src/os/core/linux/os_core_linux.c index ccfb5e7b..be10e519 100644 --- a/src/os/core/linux/os_core_linux.c +++ b/src/os/core/linux/os_core_linux.c @@ -446,8 +446,16 @@ os_copy_file_path(String8 dst, String8 src) internal B32 os_move_file_path(String8 dst, String8 src) { - // TODO(rjf) - return 0; + B32 good = 0; + Temp scratch = scratch_begin(0, 0); + { + char *src_cstr = (char *)push_str8_copy(scratch.arena, src).str; + char *dst_cstr = (char *)push_str8_copy(scratch.arena, dst).str; + int rename_result = rename(src_cstr, dst_cstr); + good = (rename_result != -1); + } + scratch_end(scratch); + return good; } internal String8 From 48f5df252354296b688c3ae2df22a25d2e9097c3 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 28 Jul 2025 16:13:45 -0700 Subject: [PATCH 333/372] cleanup pass over elf parsing; base addr calculation? --- project.4coder | 2 +- src/dwarf/dwarf_elf.c | 184 ++++++++++------------ src/dwarf/dwarf_elf.h | 4 +- src/elf/elf.h | 4 +- src/elf/elf_parse.c | 233 +++++++++++++++------------- src/elf/elf_parse.h | 50 ++++-- src/radbin/radbin.c | 19 +-- src/radcon/radcon.c | 12 +- src/raddump/raddump.c | 4 +- src/rdi_from_dwarf/rdi_from_dwarf.c | 35 +---- 10 files changed, 273 insertions(+), 274 deletions(-) diff --git a/project.4coder b/project.4coder index 8f0e3d02..ff65fba6 100644 --- a/project.4coder +++ b/project.4coder @@ -53,7 +53,7 @@ commands = .f1 = { .win = "wsl ./build.sh raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [scratch] - .f2 = { .win = "raddbg_stable --ipc kill_all && build radbin && pushd build && radbin.exe mule_main.rdi --out:a.dump && popd", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f2 = { .win = "build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [textperf] // .f1 = { .win = "raddbg_stable --ipc kill_all && build no_meta telemetry textperf && raddbg_stable --ipc bring_to_front && raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, diff --git a/src/dwarf/dwarf_elf.c b/src/dwarf/dwarf_elf.c index 9154741b..220223b1 100644 --- a/src/dwarf/dwarf_elf.c +++ b/src/dwarf/dwarf_elf.c @@ -2,34 +2,25 @@ // Licensed under the MIT license (https://opensource.org/license/mit/) internal B32 -dw_is_dwarf_present_elf_section_table(String8 raw_image, ELF_BinInfo *bin) +dw_is_dwarf_present_from_elf_bin(String8 data, ELF_Bin *bin) { - Temp scratch = scratch_begin(0,0); - B32 is_dwarf_present = 0; - - ELF_Shdr64Array sections = elf_shdr64_array_from_bin(scratch.arena, raw_image, &bin->hdr); - - for (U64 i = 0; i < sections.count; ++i) { - ELF_Shdr64 *shdr = §ions.v[i]; - String8 name = elf_name_from_shdr64(raw_image, &bin->hdr, bin->sh_name_range, shdr); - - if (shdr->sh_type != ELF_SectionCode_ProgBits) { - continue; - } - + for EachIndex(idx, bin->shdrs.count) + { + ELF_Shdr64 *shdr = &bin->shdrs.v[idx]; + if(shdr->sh_type != ELF_SectionCode_ProgBits) { continue; } + String8 name = elf_name_from_shdr64(data, bin, shdr); DW_SectionKind s = dw_section_kind_from_string(name); - if (s == DW_Section_Null) { + if(s == DW_Section_Null) + { s = dw_section_dwo_kind_from_string(name); } - - is_dwarf_present = s != DW_Section_Null; - if (is_dwarf_present) { + is_dwarf_present = (s != DW_Section_Null); + if(is_dwarf_present) + { break; } } - - scratch_end(scratch); return is_dwarf_present; } @@ -37,99 +28,86 @@ dw_is_dwarf_present_elf_section_table(String8 raw_image, ELF_BinInfo *bin) #include "third_party/sinfl/sinfl.h" internal DW_Input -dw_input_from_elf_section_table(Arena *arena, String8 raw_image, ELF_BinInfo *bin) +dw_input_from_elf_bin(Arena *arena, String8 data, ELF_Bin *bin) { + DW_Input result = {0}; + B32 is_section_present[ArrayCount(result.sec)] = {0}; Temp scratch = scratch_begin(&arena, 1); - - DW_Input result = {0}; - B32 sect_status[ArrayCount(result.sec)] = {0}; - - ELF_Shdr64Array sections = elf_shdr64_array_from_bin(scratch.arena, raw_image, &bin->hdr); - - for (U64 sect_idx = 1; sect_idx < sections.count; ++sect_idx) { - ELF_Shdr64 *shdr = §ions.v[sect_idx]; + for(U64 section_idx = 1; section_idx < bin->shdrs.count; section_idx += 1) + { + ELF_Shdr64 *shdr = &bin->shdrs.v[section_idx]; + if(shdr->sh_type != ELF_SectionCode_ProgBits) { continue; } // skip BSS sections - // skip BSS sections - if (shdr->sh_type != ELF_SectionCode_ProgBits) { - continue; - } - - String8 name = elf_name_from_shdr64(raw_image, &bin->hdr, bin->sh_name_range, shdr); - - DW_SectionKind s = dw_section_kind_from_string(name); - B32 is_dwo = 0; - if (s == DW_Section_Null) { - s = dw_section_dwo_kind_from_string(name); + //- rjf: unpack section + String8 section_name = elf_name_from_shdr64(data, bin, shdr); + DW_SectionKind section_kind = dw_section_kind_from_string(section_name); + String8 section_data__maybe_compressed = str8_substr(data, r1u64(shdr->sh_offset, shdr->sh_offset + shdr->sh_size)); + B32 is_dwo = 0; + if(section_kind == DW_Section_Null) + { + section_kind = dw_section_dwo_kind_from_string(section_name); is_dwo = 1; } - if (s != DW_Section_Null) { - if (sect_status[s]) { - Assert(!"too many debug sections with identical name, picking first"); - } else { - Rng1U64 raw_data_range = rng_1u64(shdr->sh_offset, shdr->sh_offset + shdr->sh_size); - String8 data = str8_substr(raw_image, raw_data_range); - - // ELF was compiled with compressed debug info - if (shdr->sh_flags & ELF_Shf_Compressed) { - String8 comp_data_with_header = data; - - // read header - ELF_Chdr64 chdr64 = {0}; - U64 chdr_size = 0; - if (ELF_HdrIs64Bit(bin->hdr.e_ident)) { - chdr_size = str8_deserial_read_struct(comp_data_with_header, 0, &chdr64); - if (chdr_size != sizeof(chdr64)) { - Assert(!"not enough bytes to read header"); - } - } else if (ELF_HdrIs32Bit(bin->hdr.e_ident)) { - ELF_Chdr32 chdr32 = {0}; - chdr_size = str8_deserial_read_struct(comp_data_with_header, 0, &chdr32); - if (chdr_size == sizeof(chdr32)) { - chdr64 = elf_chdr64_from_chdr32(chdr32); - } - } - - AssertAlways(IsPow2(chdr64.ch_addr_align)); - - // skip header - String8 comp_data = str8_skip(comp_data_with_header, chdr_size); - - // push buffer for the decompressor - U8 *decomp_buffer = push_array_no_zero_aligned(arena, U8, chdr64.ch_size, chdr64.ch_addr_align); - U64 actual_decomp_size = 0; - - // decompress - switch (chdr64.ch_type) { - case ELF_CompressType_None: { - AssertAlways(!"unexpected compression type"); - } break; - case ELF_CompressType_ZLib: { - actual_decomp_size = zsinflate(decomp_buffer, chdr64.ch_size, comp_data.str, comp_data.size); - } break; - case ELF_CompressType_ZStd: { - // TODO: zstd lib - NotImplemented; - } break; - default: InvalidPath; break; - } - - // TODO: error handling - AssertAlways(actual_decomp_size == chdr64.ch_size); - - // set decompressed section data - data = str8(decomp_buffer, actual_decomp_size); + //- rjf: decompress section data if needed + String8 section_data__uncompressed = {0}; + if(!(shdr->sh_flags & ELF_Shf_Compressed)) + { + section_data__uncompressed = section_data__maybe_compressed; + } + else + { + // rjf: read compressed-section header + ELF_Chdr64 chdr64 = {0}; + U64 chdr_size = 0; + if(ELF_HdrIs64Bit(bin->hdr.e_ident)) + { + chdr_size = str8_deserial_read_struct(section_data__maybe_compressed, 0, &chdr64); + } + else if(ELF_HdrIs32Bit(bin->hdr.e_ident)) + { + ELF_Chdr32 chdr32 = {0}; + chdr_size = str8_deserial_read_struct(section_data__maybe_compressed, 0, &chdr32); + if(chdr_size == sizeof(chdr32)) + { + chdr64 = elf_chdr64_from_chdr32(chdr32); + } + } + + // rjf: decompress + { + String8 section_data__compressed_contents = str8_skip(section_data__maybe_compressed, chdr_size); + switch(chdr64.ch_type) + { + default: + case ELF_CompressType_None: + { + section_data__uncompressed = section_data__compressed_contents; + }break; + case ELF_CompressType_ZLib: + { + U8 *section_data_uncompressed_buffer = push_array_no_zero_aligned(arena, U8, chdr64.ch_size, chdr64.ch_addr_align); + U64 section_data_uncompressed_size = 0; + section_data_uncompressed_size = zsinflate(section_data_uncompressed_buffer, chdr64.ch_size, section_data__compressed_contents.str, section_data__compressed_contents.size); + section_data__uncompressed = str8(section_data_uncompressed_buffer, section_data_uncompressed_size); + }break; + case ELF_CompressType_ZStd: + { + NotImplemented; + }break; } - - sect_status[s] = 1; - DW_Section *d = &result.sec[s]; - d->name = push_str8_copy(arena, name); - d->data = data; - d->is_dwo = is_dwo; } } + + //- rjf: store + { + is_section_present[section_kind] = 1; + DW_Section *d = &result.sec[section_kind]; + d->name = push_str8_copy(arena, section_name); + d->data = section_data__uncompressed; + d->is_dwo = is_dwo; + } } - scratch_end(scratch); return result; } diff --git a/src/dwarf/dwarf_elf.h b/src/dwarf/dwarf_elf.h index a54c1487..f4ec79ce 100644 --- a/src/dwarf/dwarf_elf.h +++ b/src/dwarf/dwarf_elf.h @@ -4,7 +4,7 @@ #ifndef DWARF_ELF_H #define DWARF_ELF_H -internal B32 dw_is_dwarf_present_elf_section_table(String8 raw_image, ELF_BinInfo *bin); -internal DW_Input dw_input_from_elf_section_table(Arena *arena, String8 raw_image, ELF_BinInfo *bin); +internal B32 dw_is_dwarf_present_from_elf_bin(String8 raw_image, ELF_Bin *bin); +internal DW_Input dw_input_from_elf_bin(Arena *arena, String8 raw_image, ELF_Bin *bin); #endif // DWARF_ELF_H diff --git a/src/elf/elf.h b/src/elf/elf.h index d5c648b6..5e1291a2 100644 --- a/src/elf/elf.h +++ b/src/elf/elf.h @@ -671,6 +671,9 @@ typedef enum ELF_Identifier ELF_Identifier_Max = 16, } ELF_Identifier; +read_only global U8 elf_magic[] = {0x7f, 'E', 'L', 'F'}; +read_only global String8 elf_magic_string = {elf_magic, sizeof(elf_magic)}; + typedef U16 ELF_Type; typedef enum ELF_TypeEnum { @@ -993,4 +996,3 @@ internal String8 elf_string_from_class(Arena *arena, ELF_Class v); internal Arch arch_from_elf_machine(ELF_MachineKind machine); #endif // ELF_H - diff --git a/src/elf/elf_parse.c b/src/elf/elf_parse.c index ebd58bfd..3b804c0f 100644 --- a/src/elf/elf_parse.c +++ b/src/elf/elf_parse.c @@ -1,143 +1,166 @@ // Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -internal B32 -elf_check_magic(String8 data) -{ - U8 sig[ELF_Identifier_Max] = {0}; - str8_deserial_read(data, 0, &sig[0], sizeof(sig), 1); - B32 is_magic_valid = (sig[ELF_Identifier_Mag0] == 0x7f && sig[ELF_Identifier_Mag1] == 'E' && sig[ELF_Identifier_Mag2] == 'L' && sig[ELF_Identifier_Mag3] == 'F'); - return is_magic_valid; -} +//- rjf: top-level binary parsing -internal ELF_BinInfo -elf_bin_from_data(String8 data) +internal ELF_Bin +elf_bin_from_data(Arena *arena, String8 data) { - ELF_Hdr64 hdr64 = {0}; - Rng1U64 sh_name_range = rng_1u64(0,0); - - if (elf_check_magic(data)) { + ELF_Bin bin = {0}; + if(str8_match(str8_prefix(data, elf_magic_string.size), elf_magic_string, 0) && + data.size >= ELF_Identifier_Max) + { + //- rjf: parse sig/header U8 sig[ELF_Identifier_Max] = {0}; str8_deserial_read(data, 0, &sig[0], sizeof(sig), 1); - - switch (sig[ELF_Identifier_Class]) { - case ELF_Class_None: break; - case ELF_Class_32: { - ELF_Hdr32 hdr32 = {0}; - U64 hdr_size = str8_deserial_read_struct(data, 0, &hdr32); - if (hdr_size == sizeof(hdr32)) { - hdr64 = elf_hdr64_from_hdr32(hdr32); - - U64 shstr_off = hdr32.e_shoff + hdr32.e_shentsize*hdr32.e_shstrndx; - ELF_Shdr32 shdr = {0}; - U64 shdr_size = str8_deserial_read_struct(data, shstr_off, &shdr); - - if (shdr_size == sizeof(shdr)) { - sh_name_range = rng_1u64(shdr.sh_offset, shdr.sh_offset + shdr.sh_size); + switch(sig[ELF_Identifier_Class]) + { + default: + case ELF_Class_None:{}break; + case ELF_Class_32: + { + ELF_Hdr32 hdr32 = {0}; + U64 hdr_size = str8_deserial_read_struct(data, 0, &hdr32); + if(hdr_size == sizeof(hdr32)) + { + bin.hdr = elf_hdr64_from_hdr32(hdr32); + U64 shstr_off = hdr32.e_shoff + hdr32.e_shentsize*hdr32.e_shstrndx; + ELF_Shdr32 shdr = {0}; + U64 shdr_size = str8_deserial_read_struct(data, shstr_off, &shdr); + if(shdr_size == sizeof(shdr)) + { + bin.sh_name_range = rng_1u64(shdr.sh_offset, shdr.sh_offset + shdr.sh_size); + } + } + }break; + case ELF_Class_64: + { + ELF_Hdr64 hdr64 = {0}; + U64 hdr_size = str8_deserial_read_struct(data, 0, &hdr64); + if(hdr_size == sizeof(hdr64)) + { + bin.hdr = hdr64; + U64 shstr_off = hdr64.e_shoff + hdr64.e_shentsize*hdr64.e_shstrndx; + ELF_Shdr64 shdr = {0}; + U64 shdr_size = str8_deserial_read_struct(data, shstr_off, &shdr); + if(shdr_size == sizeof(shdr)) + { + bin.sh_name_range = rng_1u64(shdr.sh_offset, shdr.sh_offset + shdr.sh_size); + } + } + }break; + } + + //- rjf: gather all shdrs + { + ELF_Hdr64 *hdr = &bin.hdr; + bin.shdrs.count = hdr->e_shnum; + bin.shdrs.v = push_array(arena, ELF_Shdr64, hdr->e_shnum); + Rng1U64 shdr_range = rng_1u64(hdr->e_shoff, hdr->e_shoff + hdr->e_shentsize*hdr->e_shnum); + String8 shdr_data = str8_substr(data, shdr_range); + for EachIndex(shdr_idx, hdr->e_shnum) + { + switch(hdr->e_ident[ELF_Identifier_Class]) + { + default: + case ELF_Class_None: + {}break; + case ELF_Class_32: + { + ELF_Shdr32 shdr32 = {0}; + str8_deserial_read_struct(shdr_data, shdr_idx * sizeof(ELF_Shdr32), &shdr32); + bin.shdrs.v[shdr_idx] = elf_shdr64_from_shdr32(shdr32); + }break; + case ELF_Class_64: + { + str8_deserial_read_struct(shdr_data, shdr_idx * sizeof(ELF_Shdr64), &bin.shdrs.v[shdr_idx]); + }break; } } - } break; - case ELF_Class_64: { - U64 hdr_size = str8_deserial_read_struct(data, 0, &hdr64); - if (hdr_size == sizeof(hdr64)) { - U64 shstr_off = hdr64.e_shoff + hdr64.e_shentsize*hdr64.e_shstrndx; - ELF_Shdr64 shdr = {0}; - U64 shdr_size = str8_deserial_read_struct(data, shstr_off, &shdr); - - if (shdr_size == sizeof(shdr)) { - sh_name_range = rng_1u64(shdr.sh_offset, shdr.sh_offset + shdr.sh_size); + } + + //- rjf: gather all phdrs + { + ELF_Hdr64 *hdr = &bin.hdr; + bin.phdrs.count = hdr->e_phnum; + bin.phdrs.v = push_array(arena, ELF_Phdr64, hdr->e_phnum); + Rng1U64 phdr_range = rng_1u64(hdr->e_phoff, hdr->e_phoff + hdr->e_phentsize*hdr->e_phnum); + String8 phdr_data = str8_substr(data, phdr_range); + for EachIndex(phdr_idx, hdr->e_phnum) + { + switch(hdr->e_ident[ELF_Identifier_Class]) + { + default: + case ELF_Class_None: + {}break; + case ELF_Class_32: + { + ELF_Phdr32 phdr32 = {0}; + str8_deserial_read_struct(phdr_data, phdr_idx * sizeof(ELF_Phdr32), &phdr32); + bin.phdrs.v[phdr_idx] = elf_phdr64_from_phdr32(phdr32); + }break; + case ELF_Class_64: + { + str8_deserial_read_struct(phdr_data, phdr_idx * sizeof(ELF_Phdr64), &bin.phdrs.v[phdr_idx]); + }break; } } - } break; - default: Assert(!"invalid elf header"); break; - } - } - - ELF_BinInfo info = {0}; - info.hdr = hdr64; - info.sh_name_range = sh_name_range; - - return info; -} - -internal ELF_Shdr64Array -elf_shdr64_array_from_bin(Arena *arena, String8 raw_data, ELF_Hdr64 *hdr) -{ - Rng1U64 shdr_range = rng_1u64(hdr->e_shoff, hdr->e_shoff + hdr->e_shentsize*hdr->e_shnum); - String8 shdr_data = str8_substr(raw_data, shdr_range); - - ELF_Shdr64Array result = {0}; - result.count = hdr->e_shnum; - result.v = push_array(arena, ELF_Shdr64, hdr->e_shnum); - - for(U64 shdr_idx = 0; shdr_idx < hdr->e_shnum; ++shdr_idx) { - switch (hdr->e_ident[ELF_Identifier_Class]) { - case ELF_Class_None: break; - case ELF_Class_32: { - ELF_Shdr32 shdr32 = {0}; - str8_deserial_read_struct(shdr_data, shdr_idx * sizeof(ELF_Shdr32), &shdr32); - result.v[shdr_idx] = elf_shdr64_from_shdr32(shdr32); - } break; - case ELF_Class_64: { - str8_deserial_read_struct(shdr_data, shdr_idx * sizeof(ELF_Shdr64), &result.v[shdr_idx]); - } break; - default: InvalidPath; break; } } - - return result; + return bin; } +//- rjf: extra bin info extraction + internal String8 -elf_name_from_shdr64(String8 raw_data, ELF_Hdr64 *hdr, Rng1U64 sh_name_range, ELF_Shdr64 *shdr) +elf_name_from_shdr64(String8 data, ELF_Bin *bin, ELF_Shdr64 *shdr) { - String8 sh_names = str8_substr(raw_data, sh_name_range); + String8 sh_names = str8_substr(data, bin->sh_name_range); String8 name = {0}; str8_deserial_read_cstr(sh_names, shdr->sh_name, &name); return name; } internal U64 -elf_base_addr_from_bin(ELF_Hdr64 *hdr) +elf_base_addr_from_bin(ELF_Bin *bin) { - NotImplemented; - return 0; + U64 base_vaddr = 0; + for EachIndex(phdr_idx, bin->phdrs.count) + { + ELF_Phdr64 *phdr = &bin->phdrs.v[phdr_idx]; + if(phdr->p_type == ELF_PType_Load && + (base_vaddr == 0 || phdr->p_vaddr < base_vaddr)) + { + base_vaddr = phdr->p_vaddr; + } + } + return base_vaddr; } -internal B32 -elf_parse_debug_link(String8 raw_data, ELF_BinInfo *elf, ELF_GnuDebugLink *debug_link_out) +internal ELF_GnuDebugLink +elf_gnu_debug_link_from_bin(String8 raw_data, ELF_Bin *bin) { - Temp scratch = scratch_begin(0,0); - - B32 is_debug_link_present = 0; - ELF_Shdr64Array sections = elf_shdr64_array_from_bin(scratch.arena, raw_data, &elf->hdr); - for (U64 i = 0; i < sections.count; ++i) { - ELF_Shdr64 *shdr = §ions.v[i]; - String8 name = elf_name_from_shdr64(raw_data, &elf->hdr, elf->sh_name_range, shdr); - - if (str8_match(name, str8_lit(".gnu_debuglink"), 0)) { + ELF_GnuDebugLink result = {0}; + for EachIndex(idx, bin->shdrs.count) + { + ELF_Shdr64 *shdr = &bin->shdrs.v[idx]; + String8 name = elf_name_from_shdr64(raw_data, bin, shdr); + if(str8_match(name, str8_lit(".gnu_debuglink"), 0)) + { Rng1U64 raw_data_range = rng_1u64(shdr->sh_offset, shdr->sh_offset + shdr->sh_size); - String8 data = str8_substr(raw_data, raw_data_range); - - String8 path = {0}; - U32 checksum = 0; + String8 data = str8_substr(raw_data, raw_data_range); + String8 path = {0}; + U32 checksum = 0; { U64 cursor = 0; cursor += str8_deserial_read_cstr(data, cursor, &path); - cursor = AlignPow2(cursor, 4); cursor += str8_deserial_read_struct(data, cursor, &checksum); } - - debug_link_out->path = path; - debug_link_out->checksum = checksum; - - is_debug_link_present = 1; + result.path = path; + result.checksum = checksum; break; } } - - scratch_end(scratch); - return is_debug_link_present; + return result; } - diff --git a/src/elf/elf_parse.h b/src/elf/elf_parse.h index 1d1d1ba4..1eec7c09 100644 --- a/src/elf/elf_parse.h +++ b/src/elf/elf_parse.h @@ -5,32 +5,48 @@ #define ELF_PARSE_H //////////////////////////////// +//~ rjf: Parsed Structure Types -typedef struct ELF_BinInfo +typedef struct ELF_Shdr64Array ELF_Shdr64Array; +struct ELF_Shdr64Array +{ + ELF_Shdr64 *v; + U64 count; +}; + +typedef struct ELF_Phdr64Array ELF_Phdr64Array; +struct ELF_Phdr64Array +{ + ELF_Phdr64 *v; + U64 count; +}; + +typedef struct ELF_Bin ELF_Bin; +struct ELF_Bin { ELF_Hdr64 hdr; - Rng1U64 sh_name_range; -} ELF_BinInfo; + Rng1U64 sh_name_range; + ELF_Shdr64Array shdrs; + ELF_Phdr64Array phdrs; +}; -typedef struct ELF_Shdr64Array -{ - U64 count; - ELF_Shdr64 *v; -} ELF_Shdr64Array; - -typedef struct ELF_GnuDebugLink +typedef struct ELF_GnuDebugLink ELF_GnuDebugLink; +struct ELF_GnuDebugLink { String8 path; - U32 checksum; -} ELF_GnuDebugLink; + U32 checksum; +}; //////////////////////////////// +//~ rjf: Parsing Functions -internal B32 elf_check_magic(String8 data); -internal ELF_BinInfo elf_bin_from_data(String8 data); +//- rjf: top-level binary parsing +internal ELF_Bin elf_bin_from_data(Arena *arena, String8 data); -internal ELF_Shdr64Array elf_shdr64_array_from_bin(Arena *arena, String8 raw_data, ELF_Hdr64 *hdr); -internal String8 elf_name_from_shdr64(String8 raw_data, ELF_Hdr64 *hdr, Rng1U64 sh_name_range, ELF_Shdr64 *shdr); -internal U64 elf_base_addr_from_bin(ELF_Hdr64 *hdr); +//- rjf: extra bin info extraction +internal B32 elf_is_dwarf_present_from_bin(String8 data, ELF_Bin *bin); +internal String8 elf_name_from_shdr64(String8 raw_data, ELF_Bin *bin, ELF_Shdr64 *shdr); +internal U64 elf_base_addr_from_bin(ELF_Bin *bin); +internal ELF_GnuDebugLink elf_gnu_debug_link_from_bin(String8 raw_data, ELF_Bin *bin); #endif // ELF_PARSE_H diff --git a/src/radbin/radbin.c b/src/radbin/radbin.c index 4a071a6f..63bb4d84 100644 --- a/src/radbin/radbin.c +++ b/src/radbin/radbin.c @@ -264,13 +264,14 @@ rb_entry_point(CmdLine *cmdline) if(file_format == RB_FileFormat_ELF32 || file_format == RB_FileFormat_ELF64) { - ELF_BinInfo elf = elf_bin_from_data(file_data); - ELF_GnuDebugLink debug_link = {0}; - if(elf_parse_debug_link(file_data, &elf, &debug_link) && - debug_link.path.size != 0) + Temp scratch = scratch_begin(&arena, 1); + ELF_Bin bin = elf_bin_from_data(scratch.arena, file_data); + ELF_GnuDebugLink debug_link = elf_gnu_debug_link_from_bin(file_data, &bin); + if(debug_link.path.size != 0) { str8_list_push(arena, &input_file_path_tasks, debug_link.path); } + scratch_end(scratch); } ////////////////////////// @@ -298,8 +299,8 @@ rb_entry_point(CmdLine *cmdline) file_format == RB_FileFormat_ELF64) { Temp scratch = scratch_begin(&arena, 1); - ELF_BinInfo elf_bin = elf_bin_from_data(file_data); - if(dw_is_dwarf_present_elf_section_table(file_data, &elf_bin)) + ELF_Bin elf_bin = elf_bin_from_data(scratch.arena, file_data); + if(dw_is_dwarf_present_from_elf_bin(file_data, &elf_bin)) { file_format_flags |= RB_FileFormatFlag_HasDWARF; } @@ -898,7 +899,7 @@ rb_entry_point(CmdLine *cmdline) //- rjf: unpack file parses Arch arch = Arch_Null; PE_BinInfo pe = {0}; - ELF_BinInfo elf = {0}; + ELF_Bin elf = {0}; DW_Input dw = {0}; { if(f->format == RB_FileFormat_PE) @@ -909,7 +910,7 @@ rb_entry_point(CmdLine *cmdline) if(f->format == RB_FileFormat_ELF32 || f->format == RB_FileFormat_ELF64) { - elf = elf_bin_from_data(f->data); + elf = elf_bin_from_data(arena, f->data); arch = arch_from_elf_machine(elf.hdr.e_machine); } if(f->format_flags & RB_FileFormatFlag_HasDWARF) @@ -925,7 +926,7 @@ rb_entry_point(CmdLine *cmdline) else if(f->format == RB_FileFormat_ELF32 || f->format == RB_FileFormat_ELF64) { - dw = dw_input_from_elf_section_table(arena, f->data, &elf); + dw = dw_input_from_elf_bin(arena, f->data, &elf); } } } diff --git a/src/radcon/radcon.c b/src/radcon/radcon.c index 55593b54..1cd0643b 100644 --- a/src/radcon/radcon.c +++ b/src/radcon/radcon.c @@ -110,8 +110,8 @@ rc_context_from_cmd_line(Arena *arena, CmdLine *cmdl) pe_name = input_n->string; is_pe_present = 1; } else if (elf_check_magic(input_data)) { - ELF_BinInfo elf = elf_bin_from_data(input_data); - B32 is_dwarf_present = dw_is_dwarf_present_elf_section_table(input_data, &elf); + ELF_Bin elf = elf_bin_from_data(input_data); + B32 is_dwarf_present = dw_is_dwarf_present_from_bin(input_data, &elf); if (is_dwarf_present) { if (is_elf_debug_present) { fprintf(stderr, "error: ambiguous input, both ELFs have DWARF debug sections, please use --elf: --elf_debug: to clarify inputs.\n"); @@ -234,8 +234,8 @@ rc_context_from_cmd_line(Arena *arena, CmdLine *cmdl) // // Load image ELF // - ELF_BinInfo elf = elf_bin_from_data(elf_data); - B32 has_elf_dwarf = dw_is_dwarf_present_elf_section_table(elf_data, &elf); + ELF_Bin elf = elf_bin_from_data(elf_data); + B32 has_elf_dwarf = dw_is_dwarf_present_from_elf_bin(elf_data, &elf); // // ELF doesn't have debug info and no .debug was specified on command line, @@ -252,8 +252,8 @@ rc_context_from_cmd_line(Arena *arena, CmdLine *cmdl) // // Load .debug ELF // - ELF_BinInfo elf_debug = elf_bin_from_data(elf_debug_data); - B32 has_elf_debug_dwarf = dw_is_dwarf_present_elf_section_table(elf_debug_data, &elf_debug); + ELF_Bin elf_debug = elf_bin_from_data(elf_debug_data); + B32 has_elf_debug_dwarf = dw_is_dwarf_present_from_elf_bin(elf_debug_data, &elf_debug); // // Input is image ELF and .debug ELF diff --git a/src/raddump/raddump.c b/src/raddump/raddump.c index 9dad6e5c..edb6a2f4 100644 --- a/src/raddump/raddump.c +++ b/src/raddump/raddump.c @@ -4078,9 +4078,9 @@ elf_print_dwarf_expressions(Arena *arena, String8List *out, String8 indent, Stri { Temp scratch = scratch_begin(&arena, 1); - ELF_BinInfo bin = elf_bin_from_data(raw_data); + ELF_Bin bin = elf_bin_from_data(raw_data); Arch arch = arch_from_elf_machine(bin.hdr.e_machine); - DW_Input dwarf_input = dw_input_from_elf_section_table(scratch.arena, raw_data, &bin); + DW_Input dwarf_input = dw_input_from_elf_bin(scratch.arena, raw_data, &bin); ELF_Class elf_class = bin.hdr.e_ident[ELF_Identifier_Class]; ExecutableImageKind image_type = elf_class == ELF_Class_32 ? ExecutableImageKind_Elf32 : elf_class == ELF_Class_64 ? ExecutableImageKind_Elf64 : ELF_Class_None; B32 relaxed = 1; diff --git a/src/rdi_from_dwarf/rdi_from_dwarf.c b/src/rdi_from_dwarf/rdi_from_dwarf.c index a7c3703c..8853262a 100644 --- a/src/rdi_from_dwarf/rdi_from_dwarf.c +++ b/src/rdi_from_dwarf/rdi_from_dwarf.c @@ -1097,44 +1097,23 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) case ExecutableImageKind_CoffPe: { PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, params->exe_data); - - // get image arch arch = pe.arch; - - // get image base image_base = pe.image_base; - - // get image sections - String8 raw_sections = str8_substr(params->exe_data, pe.section_table_range); - U64 section_count = raw_sections.size / sizeof(COFF_SectionHeader); + String8 raw_sections = str8_substr(params->exe_data, pe.section_table_range); + U64 section_count = raw_sections.size / sizeof(COFF_SectionHeader); COFF_SectionHeader *section_table = (COFF_SectionHeader *)raw_sections.str; - - // convert sections String8 string_table = str8_substr(params->exe_data, pe.string_table_range); binary_sections = c2r_rdi_binary_sections_from_coff_sections(arena, params->exe_data, string_table, section_count, section_table); - - // make DWARF input input = dw_input_from_coff_section_table(scratch.arena, params->exe_data, string_table, section_count, section_table); }break; case ExecutableImageKind_Elf32: case ExecutableImageKind_Elf64: { - ELF_BinInfo elf = elf_bin_from_data(params->dbg_data); - - // get image arch - arch = arch_from_elf_machine(elf.hdr.e_machine); - - // get image base - image_base = elf_base_addr_from_bin(&elf.hdr); - - // get image sections - ELF_Shdr64Array shdrs = elf_shdr64_array_from_bin(scratch.arena, params->dbg_data, &elf.hdr); - - // convert sections - binary_sections = e2r_rdi_binary_sections_from_elf_section_table(arena, shdrs); - - // make DWARF input - input = dw_input_from_elf_section_table(scratch.arena, params->dbg_data, &elf); + ELF_Bin bin = elf_bin_from_data(scratch.arena, params->dbg_data); + arch = arch_from_elf_machine(bin.hdr.e_machine); + image_base = elf_base_addr_from_bin(&bin); + binary_sections = e2r_rdi_binary_sections_from_elf_section_table(arena, bin.shdrs); + input = dw_input_from_elf_bin(scratch.arena, params->dbg_data, &bin); }break; } From 122c27eabe9e36ef7c2712b469a2ff56c6cb6a76 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 28 Jul 2025 16:22:23 -0700 Subject: [PATCH 334/372] do not funnel non-dwarf sections in dwarf input prep pass --- src/dwarf/dwarf_elf.c | 76 +++++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/src/dwarf/dwarf_elf.c b/src/dwarf/dwarf_elf.c index 220223b1..1e4c8bdd 100644 --- a/src/dwarf/dwarf_elf.c +++ b/src/dwarf/dwarf_elf.c @@ -46,60 +46,64 @@ dw_input_from_elf_bin(Arena *arena, String8 data, ELF_Bin *bin) if(section_kind == DW_Section_Null) { section_kind = dw_section_dwo_kind_from_string(section_name); - is_dwo = 1; + is_dwo = (section_kind != DW_Section_Null); } //- rjf: decompress section data if needed String8 section_data__uncompressed = {0}; - if(!(shdr->sh_flags & ELF_Shf_Compressed)) + if(section_kind != DW_Section_Null) { - section_data__uncompressed = section_data__maybe_compressed; - } - else - { - // rjf: read compressed-section header - ELF_Chdr64 chdr64 = {0}; - U64 chdr_size = 0; - if(ELF_HdrIs64Bit(bin->hdr.e_ident)) + if(!(shdr->sh_flags & ELF_Shf_Compressed)) { - chdr_size = str8_deserial_read_struct(section_data__maybe_compressed, 0, &chdr64); + section_data__uncompressed = section_data__maybe_compressed; } - else if(ELF_HdrIs32Bit(bin->hdr.e_ident)) + else { - ELF_Chdr32 chdr32 = {0}; - chdr_size = str8_deserial_read_struct(section_data__maybe_compressed, 0, &chdr32); - if(chdr_size == sizeof(chdr32)) + // rjf: read compressed-section header + ELF_Chdr64 chdr64 = {0}; + U64 chdr_size = 0; + if(ELF_HdrIs64Bit(bin->hdr.e_ident)) { - chdr64 = elf_chdr64_from_chdr32(chdr32); + chdr_size = str8_deserial_read_struct(section_data__maybe_compressed, 0, &chdr64); } - } - - // rjf: decompress - { - String8 section_data__compressed_contents = str8_skip(section_data__maybe_compressed, chdr_size); - switch(chdr64.ch_type) + else if(ELF_HdrIs32Bit(bin->hdr.e_ident)) { - default: - case ELF_CompressType_None: + ELF_Chdr32 chdr32 = {0}; + chdr_size = str8_deserial_read_struct(section_data__maybe_compressed, 0, &chdr32); + if(chdr_size == sizeof(chdr32)) { - section_data__uncompressed = section_data__compressed_contents; - }break; - case ELF_CompressType_ZLib: + chdr64 = elf_chdr64_from_chdr32(chdr32); + } + } + + // rjf: decompress + { + String8 section_data__compressed_contents = str8_skip(section_data__maybe_compressed, chdr_size); + switch(chdr64.ch_type) { - U8 *section_data_uncompressed_buffer = push_array_no_zero_aligned(arena, U8, chdr64.ch_size, chdr64.ch_addr_align); - U64 section_data_uncompressed_size = 0; - section_data_uncompressed_size = zsinflate(section_data_uncompressed_buffer, chdr64.ch_size, section_data__compressed_contents.str, section_data__compressed_contents.size); - section_data__uncompressed = str8(section_data_uncompressed_buffer, section_data_uncompressed_size); - }break; - case ELF_CompressType_ZStd: - { - NotImplemented; - }break; + default: + case ELF_CompressType_None: + { + section_data__uncompressed = section_data__compressed_contents; + }break; + case ELF_CompressType_ZLib: + { + U8 *section_data_uncompressed_buffer = push_array_no_zero_aligned(arena, U8, chdr64.ch_size, chdr64.ch_addr_align); + U64 section_data_uncompressed_size = 0; + section_data_uncompressed_size = zsinflate(section_data_uncompressed_buffer, chdr64.ch_size, section_data__compressed_contents.str, section_data__compressed_contents.size); + section_data__uncompressed = str8(section_data_uncompressed_buffer, section_data_uncompressed_size); + }break; + case ELF_CompressType_ZStd: + { + NotImplemented; + }break; + } } } } //- rjf: store + if(section_kind != DW_Section_Null) { is_section_present[section_kind] = 1; DW_Section *d = &result.sec[section_kind]; From 64c2d98edeadb61963d846d049a8f645c465ec11 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 28 Jul 2025 17:25:24 -0700 Subject: [PATCH 335/372] demon/linux: sketch out signal interpretation, more ptrace study --- src/demon/linux/demon_core_linux.c | 180 ++++++++++++++++++++++++++++- src/demon/linux/demon_core_linux.h | 2 + 2 files changed, 178 insertions(+), 4 deletions(-) diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c index 05d8bdb4..7be1b3c9 100644 --- a/src/demon/linux/demon_core_linux.c +++ b/src/demon/linux/demon_core_linux.c @@ -464,7 +464,28 @@ dmn_lnx_entity_alloc(DMN_LNX_Entity *parent, DMN_LNX_EntityKind kind) internal void dmn_lnx_entity_release(DMN_LNX_Entity *entity) { - SLLStackPush(dmn_lnx_state->free_entity, entity); + if(entity->parent != &dmn_lnx_nil_entity) + { + DLLRemove_NPZ(&dmn_lnx_nil_entity, entity->parent->first, entity->parent->last, entity, next, prev); + entity->parent = &dmn_lnx_nil_entity; + } + { + Temp scratch = scratch_begin(0, 0); + DMN_LNX_EntityNode start_task = {0, entity}; + DMN_LNX_EntityNode *first_task = &start_task; + for(DMN_LNX_EntityNode *t = first_task; t != 0; t = t->next) + { + SLLStackPush(dmn_lnx_state->free_entity, t->v); + for(DMN_LNX_Entity *child = t->v->first; child != &dmn_lnx_nil_entity; child = child->next) + { + DMN_LNX_EntityNode *task = push_array(scratch.arena, DMN_LNX_EntityNode, 1); + task->next = t->next; + t->next = task; + task->v = child; + } + } + scratch_end(scratch); + } } internal DMN_Handle @@ -493,6 +514,24 @@ dmn_lnx_entity_from_handle(DMN_Handle handle) return result; } +internal DMN_LNX_Entity * +dmn_lnx_thread_from_pid(pid_t pid) +{ + DMN_LNX_Entity *result = &dmn_lnx_nil_entity; + if(pid != 0) + { + for EachIndex(idx, dmn_lnx_state->entities_count) + { + if(dmn_lnx_state->entities_base[idx].kind == DMN_LNX_EntityKind_Thread && (pid_t)dmn_lnx_state->entities_base[idx].id == pid) + { + result = &dmn_lnx_state->entities_base[idx]; + break; + } + } + } + return result; +} + //////////////////////////////// //~ rjf: @dmn_os_hooks Main Layer Initialization (Implemented Per-OS) @@ -914,11 +953,144 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) } //////////////////////////// - //- rjf: wait for next stop + //- rjf: loop: wait for next stop, produce debug events // - int status = 0; - pid_t wait_id = waitpid(-1, &status, __WALL); + pid_t final_wait_pid = 0; + for(B32 done = 0; !done;) + { + //- rjf: wait for next event + int status = 0; + pid_t wait_id = waitpid(-1, &status, __WALL); + final_wait_pid = wait_id; + + //- rjf: unpack event + int wifexited = WIFEXITED(status); + int wifsignaled = WIFSIGNALED(status); + int wifstopped = WIFSTOPPED(status); + int wstopsig = WSTOPSIG(status); + int ptrace_event_code = (status>>8); + DMN_LNX_Entity *thread = dmn_lnx_thread_from_pid(wait_id); + DMN_LNX_Entity *process = thread->parent; + B32 thread_is_process_root = (thread->id == process->id); + + //- rjf: WIFEXITED(status) -> thread exit + B32 thread_exit = 0; + U64 exit_code = 0; + if(wifexited) + { + thread_exit = 1; + } + + //- rjf: WIFEXITED(status) -> thread exit w/ exit code + if(wifsignaled) + { + exit_code = WTERMSIG(status); + thread_exit = 1; + } + + //- rjf: SIGTRAP:PTRACE_EVENT_EXIT + if(wifstopped && wstopsig == SIGTRAP && ptrace_event_code == PTRACE_EVENT_EXIT) + { + // TODO(rjf): verify + thread_exit = 1; + } + + //- rjf: SIGTRAP:PTRACE_EVENT_CLONE + if(wifstopped && wstopsig == SIGTRAP && ptrace_event_code == PTRACE_EVENT_CLONE) + { + // TODO(rjf) + } + + //- rjf: SIGTRAP:PTRACE_EVENT_FORK, or SIGTRAP:PTRACE_EVENT_VFORK + if(wifstopped && wstopsig == SIGTRAP && + (ptrace_event_code == PTRACE_EVENT_FORK || + ptrace_event_code == PTRACE_EVENT_VFORK)) + { + // TODO(rjf) + } + + //- rjf: WSTOPSIG(status) is SIGSTOP + if(wifstopped && wstopsig == SIGSTOP) + { + // TODO(rjf): how do we tell the following apart?: + // - SIGSTOP All-Stop + // - SIGSTOP Halt + // - SIGSTOP "User" + } + + //- rjf: WSTOPSIG(status) is an unrecoverable exception (unless user does something to fix state first) + if(wifstopped && + (wstopsig == SIGABRT || + wstopsig == SIGFPE || + wstopsig == SIGSEGV)) + { + // TODO(rjf) + } + + //- rjf: thread exit, thread is process' "root thread" -> eliminate this entire entity subtree + if(thread_exit && thread_is_process_root) + { + // rjf: generate exit-thread / unload-module events + for(DMN_LNX_Entity *child = process->first; child != &dmn_lnx_nil_entity; child = child->next) + { + switch(child->kind) + { + default:{}break; + case DMN_LNX_EntityKind_Thread: + { + DMN_Event *e = dmn_event_list_push(arena, &evts); + e->kind = DMN_EventKind_ExitThread; + e->process = dmn_lnx_handle_from_entity(process); + e->thread = dmn_lnx_handle_from_entity(child); + }break; + case DMN_LNX_EntityKind_Module: + { + DMN_Event *e = dmn_event_list_push(arena, &evts); + e->kind = DMN_EventKind_UnloadModule; + e->process = dmn_lnx_handle_from_entity(process); + e->module = dmn_lnx_handle_from_entity(child); + // TODO(rjf): e->string = ...; + }break; + } + } + + // rjf: generate exit process event + { + DMN_Event *e = dmn_event_list_push(arena, &evts); + e->kind = DMN_EventKind_ExitProcess; + e->process = dmn_lnx_handle_from_entity(process); + e->code = exit_code; + } + + // rjf: eliminate entity tree + dmn_lnx_entity_release(process); + } + + //- rjf: thread exit, thread is *not* process root -> just exit this one thread + if(thread_exit && !thread_is_process_root) + { + DMN_Event *e = dmn_event_list_push(arena, &evts); + e->kind = DMN_EventKind_ExitThread; + e->process = dmn_lnx_handle_from_entity(process); + e->thread = dmn_lnx_handle_from_entity(thread); + dmn_lnx_entity_release(thread); + } + } + //////////////////////////// + //- rjf: stop all threads + // + for(DMN_LNX_EntityNode *n = first_ran_thread; n != 0; n = n->next) + { + DMN_LNX_Entity *thread = n->v; + pid_t thread_id = (pid_t)thread->id; + if(thread_id != final_wait_pid) + { + union sigval sv = {0}; + sigqueue(thread_id, SIGSTOP, sv); + thread->expecting_dummy_sigstop = 1; + } + } scratch_end(scratch); } diff --git a/src/demon/linux/demon_core_linux.h b/src/demon/linux/demon_core_linux.h index bb3b4c8a..92b54d0e 100644 --- a/src/demon/linux/demon_core_linux.h +++ b/src/demon/linux/demon_core_linux.h @@ -81,6 +81,7 @@ struct DMN_LNX_Entity Arch arch; U64 id; int fd; + B32 expecting_dummy_sigstop; }; typedef struct DMN_LNX_EntityNode DMN_LNX_EntityNode; @@ -142,5 +143,6 @@ internal DMN_LNX_Entity *dmn_lnx_entity_alloc(DMN_LNX_Entity *parent, DMN_LNX_En internal void dmn_lnx_entity_release(DMN_LNX_Entity *entity); internal DMN_Handle dmn_lnx_handle_from_entity(DMN_LNX_Entity *entity); internal DMN_LNX_Entity *dmn_lnx_entity_from_handle(DMN_Handle handle); +internal DMN_LNX_Entity *dmn_lnx_thread_from_pid(pid_t pid); #endif // DEMON_CORE_LINUX_H From 0e9f2ee03c7c8ffd8e11ea1548f5e7fd5a73eb3a Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 28 Jul 2025 17:47:50 -0700 Subject: [PATCH 336/372] demon/linux: halting, sigstop cases --- src/demon/linux/demon_core_linux.c | 40 ++++++++++++++++++++++++++++++ src/demon/linux/demon_core_linux.h | 5 ++++ 2 files changed, 45 insertions(+) diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c index 7be1b3c9..9d027151 100644 --- a/src/demon/linux/demon_core_linux.c +++ b/src/demon/linux/demon_core_linux.c @@ -962,6 +962,7 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) int status = 0; pid_t wait_id = waitpid(-1, &status, __WALL); final_wait_pid = wait_id; + done = 1; //- rjf: unpack event int wifexited = WIFEXITED(status); @@ -1012,10 +1013,35 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) //- rjf: WSTOPSIG(status) is SIGSTOP if(wifstopped && wstopsig == SIGSTOP) { + // // TODO(rjf): how do we tell the following apart?: // - SIGSTOP All-Stop // - SIGSTOP Halt // - SIGSTOP "User" + // + // we are currently just assuming that, if we've queried a SIGSTOP to halt, then + // the first one that comes back is our "dummy" sigstop. this is likely not + // necessarily true. + // + if(thread->expecting_dummy_sigstop) + { + thread->expecting_dummy_sigstop = 0; + done = 0; + } + else if(dmn_lnx_state->has_halt_injection) + { + DMN_Event *e = dmn_event_list_push(arena, &evts); + e->kind = DMN_EventKind_Halt; + e->process = dmn_lnx_handle_from_entity(process); + e->thread = dmn_lnx_handle_from_entity(thread); + } + else + { + // TODO(rjf): study this case; old notes: + // + // a signal we don't want to mess with (except to record that it + // happened maybe) we should "hand it back" + } } //- rjf: WSTOPSIG(status) is an unrecoverable exception (unless user does something to fix state first) @@ -1103,6 +1129,20 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) internal void dmn_halt(U64 code, U64 user_data) { + if(!dmn_lnx_state->has_halt_injection) + { + DMN_LNX_Entity *process = dmn_lnx_state->entities_base->first; + if(process != &dmn_lnx_nil_entity) + { + union sigval sv = {0}; + if(sigqueue(process->id, SIGSTOP, sv) != -1) + { + dmn_lnx_state->has_halt_injection = 1; + dmn_lnx_state->halt_code = code; + dmn_lnx_state->halt_user_data = user_data; + } + } + } } //////////////////////////////// diff --git a/src/demon/linux/demon_core_linux.h b/src/demon/linux/demon_core_linux.h index 92b54d0e..9a399d22 100644 --- a/src/demon/linux/demon_core_linux.h +++ b/src/demon/linux/demon_core_linux.h @@ -109,6 +109,11 @@ struct DMN_LNX_State DMN_LNX_Entity *entities_base; U64 entities_count; DMN_LNX_Entity *free_entity; + + // rjf: halting mechanism + B32 has_halt_injection; + U64 halt_code; + U64 halt_user_data; }; read_only global DMN_LNX_Entity dmn_lnx_nil_entity = {&dmn_lnx_nil_entity, &dmn_lnx_nil_entity, &dmn_lnx_nil_entity, &dmn_lnx_nil_entity, &dmn_lnx_nil_entity}; From 0b37fac81ca976822a807157d4310ab4b00d4b95 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 25 Jul 2025 16:05:04 -0700 Subject: [PATCH 337/372] move delay load helper to mscrt layer --- src/linker/lnk.c | 8 +------- src/msvc_crt/msvc_crt.c | 13 +++++++++++++ src/msvc_crt/msvc_crt.h | 4 ++++ 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 49bd67f9..59b268b8 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1729,13 +1729,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } break; case State_PushDllHelperUndefSymbol: { ProfBegin("Push Dll Helper Undef Symbol"); - - switch (config->machine) { - case COFF_MachineType_X86: delay_load_helper_name = str8_cstring(MSCRT_DELAY_LOAD_HELPER2_X86_SYMBOL_NAME); break; - case COFF_MachineType_X64: delay_load_helper_name = str8_cstring(MSCRT_DELAY_LOAD_HELPER2_SYMBOL_NAME); break; - default: { NotImplemented; } break; - } - + delay_load_helper_name = mscrt_delay_load_helper_name_from_machine(config->machine); str8_list_push(scratch.arena, &include_symbol_list, delay_load_helper_name); ProfEnd(); } break; diff --git a/src/msvc_crt/msvc_crt.c b/src/msvc_crt/msvc_crt.c index 3431fa0a..c251a7b7 100644 --- a/src/msvc_crt/msvc_crt.c +++ b/src/msvc_crt/msvc_crt.c @@ -1,6 +1,19 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) +internal String8 +mscrt_delay_load_helper_name_from_machine(COFF_MachineType machine) +{ + String8 delay_load_helper_name = str8_zero(); + switch (machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X86: delay_load_helper_name = str8_cstring(MSCRT_DELAY_LOAD_HELPER2_X86_SYMBOL_NAME); break; + case COFF_MachineType_X64: delay_load_helper_name = str8_cstring(MSCRT_DELAY_LOAD_HELPER2_SYMBOL_NAME); break; + default: { NotImplemented; } break; + } + return delay_load_helper_name; +} + internal U64 mscrt_parse_func_info(Arena *arena, String8 raw_data, diff --git a/src/msvc_crt/msvc_crt.h b/src/msvc_crt/msvc_crt.h index 840b1fe9..11000af2 100644 --- a/src/msvc_crt/msvc_crt.h +++ b/src/msvc_crt/msvc_crt.h @@ -343,6 +343,10 @@ typedef struct MSCRT_ParsedFuncInfoV4 MSCRT_IP2State32V4 ip2state_map; } MSCRT_ParsedFuncInfoV4; +//- Delay Load Helper + +internal String8 mscrt_delay_load_helper_name_from_machine(COFF_MachineType machine); + //- Exception info < v4 internal U64 mscrt_parse_func_info(Arena *arena, String8 raw_data, U64 section_count, COFF_SectionHeader *sections, U64 off, MSCRT_FuncInfo *func_info); From 4cb09e73c23090567701a240514bcbf2675bd9bd Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 25 Jul 2025 16:05:40 -0700 Subject: [PATCH 338/372] remove warning pragma --- src/linker/lnk.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 59b268b8..4b7c2e54 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -22,12 +22,6 @@ // --- Code Base --------------------------------------------------------------- -#if defined(__clang__) -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Winitializer-overrides" -# pragma clang diagnostic ignored "-Wswitch" -#endif - #include "base/base_inc.h" #include "os/os_inc.h" #include "hash_table.h" @@ -65,10 +59,6 @@ #include "pdb/pdb.c" #include "msvc_crt/msvc_crt.c" -#if defined(__clang__) -# pragma clang diagnostic pop -#endif - // --- RDI --------------------------------------------------------------------- #include "rdi/rdi_local.h" @@ -133,6 +123,8 @@ #include "lnk_lib.c" #include "lnk_debug_info.c" +// ----------------------------------------------------------------------------- + internal LNK_Config * lnk_config_from_argcv(Arena *arena, int argc, char **argv) { From 1e1d903878e092e9c99bd7aa241ae98ebada67a2 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 28 Jul 2025 17:28:52 -0700 Subject: [PATCH 339/372] store library pointer in the obj instead of path; required for prioritized symbol lookup implementation --- src/linker/lnk.c | 20 +++++++------- src/linker/lnk_debug_info.c | 4 +-- src/linker/lnk_input.c | 8 ++++++ src/linker/lnk_input.h | 4 ++- src/linker/lnk_obj.c | 53 ++++++++++++++++++------------------- src/linker/lnk_obj.h | 10 +++---- 6 files changed, 55 insertions(+), 44 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 4b7c2e54..a47a4b7d 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1053,7 +1053,7 @@ lnk_queue_lib_member_input(Arena *arena, input->dedup_id = push_str8f(arena, "%S/%S", lib->path, obj_path); input->path = obj_path; input->data = member_info.data; - input->lib_path = lib->path; + input->lib = lib; input->input_idx = input_idx; } break; } @@ -1534,7 +1534,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) { for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Export].first; dir != 0; dir = dir->next) { PE_ExportParse export_parse = {0}; - lnk_parse_export_directive_ex(scratch.arena, dir->value_list, obj->path, obj->lib_path, &export_parse); + lnk_parse_export_directive_ex(scratch.arena, dir->value_list, obj->path, lnk_obj_get_lib_path(obj), &export_parse); lnk_push_export(tp_arena->v[0], export_ht, &export_symbol_list, &include_symbol_list, export_parse); } } @@ -1591,17 +1591,17 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) // /ENTRY for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Entry].first; dir != 0; dir = dir->next) { - lnk_apply_cmd_option_to_config(scratch.arena, config, dir->id, dir->value_list, obj->path, obj->lib_path); + lnk_apply_cmd_option_to_config(scratch.arena, config, dir->id, dir->value_list, obj->path, lnk_obj_get_lib_path(obj)); } // /SUBSYSTEM for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_SubSystem].first; dir != 0; dir = dir->next) { - lnk_apply_cmd_option_to_config(scratch.arena, config, dir->id, dir->value_list, obj->path, obj->lib_path); + lnk_apply_cmd_option_to_config(scratch.arena, config, dir->id, dir->value_list, obj->path, lnk_obj_get_lib_path(obj)); } // /STACK for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Stack].first; dir != 0; dir = dir->next) { - lnk_apply_cmd_option_to_config(scratch.arena, config, dir->id, dir->value_list, obj->path, obj->lib_path); + lnk_apply_cmd_option_to_config(scratch.arena, config, dir->id, dir->value_list, obj->path, lnk_obj_get_lib_path(obj)); } } ProfEnd(); @@ -4812,8 +4812,9 @@ lnk_build_rad_map(Arena *arena, String8 image_data, LNK_Config *config, U64 objs COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, sect_idx+1); String8 string_table = str8_substr(obj->data, obj->header.string_table_range); String8 section_name = coff_name_from_section_header(string_table, section_header); - if (obj->lib_path.size) { - String8 lib_name = str8_chop_last_dot(str8_skip_last_slash(obj->lib_path)); + if (obj->lib) { + String8 lib_path = lnk_obj_get_lib_path(obj); + String8 lib_name = str8_chop_last_dot(str8_skip_last_slash(lib_path)); String8 obj_name = str8_skip_last_slash(obj->path); str8_list_pushf(temp.arena, &source_list, "%S(%S) SECT%X (%S)", lib_name, obj_name, sect_idx+1, section_name); } else { @@ -4842,8 +4843,9 @@ lnk_build_rad_map(Arena *arena, String8 image_data, LNK_Config *config, U64 objs if (lnk_is_coff_section_debug(obj, sect_idx)) { COFF_SectionHeader *section_header = §ion_table[sect_idx]; if (~section_header->flags & COFF_SectionFlag_LnkRemove) { - if (obj->lib_path.size) { - String8 lib_name = str8_chop_last_dot(str8_skip_last_slash(obj->lib_path)); + if (obj->lib) { + String8 lib_path = lnk_obj_get_lib_path(obj); + String8 lib_name = str8_chop_last_dot(str8_skip_last_slash(lib_path)); String8 obj_name = str8_skip_last_slash(obj->path); str8_list_pushf(arena, &map, "%S(%S) SECT%X\n", lib_name, obj_name, sect_idx+1); } else { diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index d2de6b57..42833b3a 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -3133,7 +3133,7 @@ lnk_build_pdb(TP_Context *tp, PDB_DbiModule **mod_arr = push_array(tp_arena->v[0], PDB_DbiModule *, obj_count); for (U64 obj_idx = 0; obj_idx < obj_count; ++obj_idx) { LNK_Obj *obj = obj_arr + obj_idx; - mod_arr[obj_idx] = dbi_push_module(pdb->dbi, obj->path, obj->lib_path); + mod_arr[obj_idx] = dbi_push_module(pdb->dbi, obj->path, lnk_obj_get_lib_path(obj)); // we don't support symbol append Assert(mod_arr[obj_idx]->sn == MSF_INVALID_STREAM_NUMBER); @@ -4502,7 +4502,7 @@ THREAD_POOL_TASK_FUNC(lnk_find_obj_compiler_info_task) dst->compiler_name = comp_info->compiler_name; dst->source_file = str8_zero(); dst->object_file = push_str8_copy(arena, obj->path); - dst->archive_file = push_str8_copy(arena, obj->lib_path); + dst->archive_file = lnk_obj_get_lib_path(obj); dst->build_path = str8_zero(); dst->language = rdi_language_from_cv_language(comp_info->language); diff --git a/src/linker/lnk_input.c b/src/linker/lnk_input.c index 3d690d4c..a7f543bf 100644 --- a/src/linker/lnk_input.c +++ b/src/linker/lnk_input.c @@ -1,6 +1,14 @@ // Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) +internal void +lnk_error_input_obj(LNK_ErrorCode code, LNK_InputObj *input, char *fmt, ...) +{ + va_list args; va_start(args, fmt); + lnk_error_with_loc_fv(code, input->path, input->lib ? input->lib->path : str8_zero(), fmt, args); + va_end(args); +} + internal String8 lnk_string_from_input_source(LNK_InputSourceType input_source) { diff --git a/src/linker/lnk_input.h b/src/linker/lnk_input.h index b802c0ff..f139e39c 100644 --- a/src/linker/lnk_input.h +++ b/src/linker/lnk_input.h @@ -42,7 +42,7 @@ typedef struct LNK_InputObj String8 dedup_id; String8 path; String8 data; - String8 lib_path; + struct LNK_Lib *lib; U64 input_idx; } LNK_InputObj; @@ -55,6 +55,8 @@ typedef struct LNK_InputObjList //////////////////////////////// +internal void lnk_error_input_obj(LNK_ErrorCode code, LNK_InputObj *input, char *fmt, ...); + internal String8 lnk_string_from_input_source(LNK_InputSourceType input_source); internal void lnk_input_obj_list_push_node(LNK_InputObjList *list, LNK_InputObj *node); diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index cde39126..0f1fb974 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -6,7 +6,7 @@ lnk_error_obj(LNK_ErrorCode code, LNK_Obj *obj, char *fmt, ...) { va_list args; va_start(args, fmt); String8 obj_path = obj ? obj->path : str8_lit("RADLINK"); - String8 lib_path = obj ? obj->lib_path : str8_zero(); + String8 lib_path = lnk_obj_get_lib_path(obj); lnk_error_with_loc_fv(code, obj_path, lib_path, fmt, args); va_end(args); } @@ -43,7 +43,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) if (header.machine != COFF_MachineType_Unknown) { COFF_MachineType current_machine = ins_atomic_u32_eval_cond_assign(&task->machine, header.machine, COFF_MachineType_Unknown); if (current_machine != COFF_MachineType_Unknown && current_machine != header.machine) { - lnk_error_with_loc(LNK_Error_IncompatibleMachine, input->path, input->lib_path, + lnk_error_input_obj(LNK_Error_IncompatibleMachine, input, "conflicting machine types expected %S but got %S", coff_string_from_machine_type(current_machine), coff_string_from_machine_type(header.machine)); @@ -61,13 +61,13 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) // error check: section table / symbol table / string table // if (raw_coff_section_table.size != dim_1u64(header.section_table_range)) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "corrupted file, unable to read section header table"); + lnk_error_input_obj(LNK_Error_IllData, input, "corrupted file, unable to read section header table"); } if (raw_coff_symbol_table.size != dim_1u64(header.symbol_table_range)) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "corrupted file, unable to read symbol table"); + lnk_error_input_obj(LNK_Error_IllData, input, "corrupted file, unable to read symbol table"); } if (raw_coff_string_table.size != dim_1u64(header.string_table_range)) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "corrupted file, unable to read string table"); + lnk_error_input_obj(LNK_Error_IllData, input, "corrupted file, unable to read string table"); } // @@ -86,18 +86,18 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) if (contains_1u64(header.header_range, coff_sect_header->foff) || (coff_sect_header->fsize > 0 && contains_1u64(header.header_range, sect_range.max-1))) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "header (%S No. %#llx) defines out of bounds section data (file offsets point into file header)", sect_name, sect_idx+1); + lnk_error_input_obj(LNK_Error_IllData, input, "header (%S No. %#llx) defines out of bounds section data (file offsets point into file header)", sect_name, sect_idx+1); } if (contains_1u64(header.section_table_range, coff_sect_header->foff) || (coff_sect_header->fsize > 0 && contains_1u64(header.section_table_range, sect_range.max-1))) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "header (%S No. %#llx) defines out of bounds section data (file offsets point into section header table)", sect_name, sect_idx+1); + lnk_error_input_obj(LNK_Error_IllData, input, "header (%S No. %#llx) defines out of bounds section data (file offsets point into section header table)", sect_name, sect_idx+1); } if (contains_1u64(header.symbol_table_range, coff_sect_header->foff) || (coff_sect_header->fsize > 0 && contains_1u64(header.symbol_table_range, sect_range.max-1))) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "header (%S No. %#llx) defines out of bounds section data (file offsets point into symbol table)", sect_name, sect_idx+1); + lnk_error_input_obj(LNK_Error_IllData, input, "header (%S No. %#llx) defines out of bounds section data (file offsets point into symbol table)", sect_name, sect_idx+1); } if (dim_1u64(sect_range) != coff_sect_header->fsize) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "header (%S No. %#llx) defines out of bounds section data", sect_name, sect_idx+1); + lnk_error_input_obj(LNK_Error_IllData, input, "header (%S No. %#llx) defines out of bounds section data", sect_name, sect_idx+1); } } } @@ -116,7 +116,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular) { if (symbol.section_number == 0 || symbol.section_number > header.section_count_no_null) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "symbol %S (No. 0x%x) points to an out of bounds section 0x%x", symbol.name, symbol_idx, symbol.section_number); + lnk_error_input_obj(LNK_Error_IllData, input, "symbol %S (No. 0x%x) points to an out of bounds section 0x%x", symbol.name, symbol_idx, symbol.section_number); } if (symbol.storage_class == COFF_SymStorageClass_Static && symbol.aux_symbol_count > 0) { COFF_ComdatSelectType select; @@ -124,7 +124,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) coff_parse_secdef(symbol, header.is_big_obj, &select, §ion_number, 0, 0); if (select == COFF_ComdatSelect_Associative) { if (section_number == 0 || section_number > header.section_count_no_null) { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "section definition symbol %S (No. 0x%x) associates with an out of bounds section 0x%x", symbol.name, symbol_idx, symbol.section_number); + lnk_error_input_obj(LNK_Error_IllData, input, "section definition symbol %S (No. 0x%x) associates with an out of bounds section 0x%x", symbol.name, symbol_idx, symbol.section_number); } } } @@ -159,15 +159,15 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) if (comdats[symbol.section_number-1] == ~0) { comdats[symbol.section_number-1] = symbol_idx; } else { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "section definition symbo (No. 0x%llx) tries to ovewrite comdat", symbol_idx); + lnk_error_input_obj(LNK_Error_IllData, input, "section definition symbo (No. 0x%llx) tries to ovewrite comdat", symbol_idx); } } else { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "section size specified by section definition symbol (No 0x%llx) doesn't match size in section header (No. 0x%x); expected 0x%x got 0x%x", symbol_idx, symbol.section_number, section_length, sect_header->fsize); + lnk_error_input_obj(LNK_Error_IllData, input, "section size specified by section definition symbol (No 0x%llx) doesn't match size in section header (No. 0x%x); expected 0x%x got 0x%x", symbol_idx, symbol.section_number, section_length, sect_header->fsize); } } } } else { - lnk_error_with_loc(LNK_Error_IllData, input->path, input->lib_path, "section definition symbol (No. 0x%llx) has out of bounds section number 0x%x", symbol_idx, symbol.section_number); + lnk_error_input_obj(LNK_Error_IllData, input, "section definition symbol (No. 0x%llx) has out of bounds section number 0x%x", symbol_idx, symbol.section_number); } } } @@ -206,7 +206,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) // was section visited? -- loop found if (hash_table_search_u64(visited_sections, curr_section)) { COFF_ParsedSymbol symbol = coff_parse_symbol(header, string_table, symbol_table, comdats[sect_idx]); - lnk_error_with_loc(LNK_Error_AssociativeLoop, input->path, input->lib_path, "section symbol %S (No. 0x%x) does not terminate on a non-associate COMDAT symbol", symbol.name, comdats[sect_idx]); + lnk_error_input_obj(LNK_Error_AssociativeLoop, input, "section symbol %S (No. 0x%x) does not terminate on a non-associate COMDAT symbol", symbol.name, comdats[sect_idx]); break; } @@ -294,7 +294,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) // fill out obj obj->data = input->data; obj->path = push_str8_copy(arena, input->path); - obj->lib_path = push_str8_copy(arena, input->lib_path); + obj->lib = input->lib; obj->input_idx = obj_idx; obj->header = header; obj->comdats = comdats; @@ -483,6 +483,16 @@ lnk_obj_get_vol_md(LNK_Obj *obj) return lnk_obj_match_symbol(obj, str8_lit("@vol.md")).value; } +internal String8 +lnk_obj_get_lib_path(LNK_Obj *obj) +{ + String8 lib_path = {0}; + if (obj && obj->lib) { + lib_path = obj->lib->path; + } + return lib_path; +} + internal COFF_SectionHeader * lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number) { @@ -517,17 +527,6 @@ lnk_symlinks_from_obj(Arena *arena, LNK_SymbolTable *symtab, LNK_Obj *obj) return symlinks; } -internal String8 -lnk_symlink_from_section_number(LNK_Obj *obj, U64 section_number) -{ - COFF_ParsedSymbol symbol = {0}; - U32 symbol_idx = obj->symlinks[section_number]; - if (symbol_idx != max_U32) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - } - return symbol.name; -} - internal COFF_RelocArray lnk_coff_reloc_info_from_section_number(LNK_Obj *obj, U64 section_number) { diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index 13e76c80..036ad1d5 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -9,13 +9,12 @@ typedef struct LNK_Obj { String8 data; String8 path; - String8 lib_path; + struct LNK_Lib *lib; U32 input_idx; COFF_FileHeaderInfo header; U32 *comdats; B8 hotpatch; U32Node **associated_sections; - U32 *symlinks; } LNK_Obj; typedef struct LNK_ObjNode @@ -102,9 +101,10 @@ internal LNK_SymbolInputResult lnk_input_obj_symbols(TP_Context *tp, TP_Arena *a // --- Metadata ---------------------------------------------------------------- -internal U32 lnk_obj_get_features(LNK_Obj *obj); -internal U32 lnk_obj_get_comp_id(LNK_Obj *obj); -internal U32 lnk_obj_get_vol_md(LNK_Obj *obj); +internal U32 lnk_obj_get_features(LNK_Obj *obj); +internal U32 lnk_obj_get_comp_id(LNK_Obj *obj); +internal U32 lnk_obj_get_vol_md(LNK_Obj *obj); +internal String8 lnk_obj_get_lib_path(LNK_Obj *obj); // --- Symbol & Section Helpers ------------------------------------------------ From b3efce4b9ab87c81053fb051ff99435ff817ca19 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 28 Jul 2025 17:32:12 -0700 Subject: [PATCH 340/372] better place for this helper function --- src/linker/lnk.c | 8 +------- src/linker/lnk.h | 2 -- src/linker/lnk_debug_info.c | 2 +- src/linker/lnk_obj.c | 6 ++++++ src/linker/lnk_obj.h | 1 + 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index a47a4b7d..7c5cb0fb 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -866,12 +866,6 @@ lnk_make_linker_coff_obj(Arena *arena, return obj; } -internal U32 -lnk_removed_section_number_from_obj(LNK_Obj *obj) -{ - return obj->header.is_big_obj ? LNK_REMOVED_SECTION_NUMBER_32 : LNK_REMOVED_SECTION_NUMBER_16; -} - internal String8 lnk_get_lib_name(String8 path) { @@ -2957,7 +2951,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) COFF_ParsedSymbol symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, reloc->isymbol); COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular) { - if (symbol.section_number == lnk_removed_section_number_from_obj(obj)) { + if (symbol.section_number == lnk_obj_get_removed_section_number(obj)) { if (!lnk_is_coff_section_debug(obj, sect_idx)) { String8 sect_name = coff_name_from_section_header(string_table, §ion_table[sect_idx]); lnk_error_obj(LNK_Error_RelocationAgainstRemovedSection, obj, "relocating against symbol that is in a removed section (symbol: %S, reloc-section: %S 0x%llx, reloc-index: 0x%llx)", symbol.name, sect_name, sect_idx+1, reloc_idx); diff --git a/src/linker/lnk.h b/src/linker/lnk.h index b0549059..815b277e 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -206,8 +206,6 @@ internal String8 lnk_make_null_obj(Arena *arena); internal String8 lnk_make_res_obj(Arena *arena, String8List res_file_list, String8List res_path_list, COFF_MachineType machine, U32 time_stamp, String8 work_dir, PathStyle system_path_style, String8 obj_name); internal String8 lnk_make_linker_coff_obj(Arena *arena, COFF_TimeStamp time_stamp, COFF_MachineType machine, String8 cwd_path, String8 exe_path, String8 pdb_path, String8 cmd_line, String8 obj_name); -internal U32 lnk_removed_section_number_from_obj(LNK_Obj *obj); - // --- Link Context ------------------------------------------------------------ internal String8 lnk_get_lib_name(String8 path); diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index 42833b3a..ff4d2d72 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -3023,7 +3023,7 @@ THREAD_POOL_TASK_FUNC(lnk_build_pdb_public_symbols_defined_task) LNK_Symbol *symbol = chunk->v[i].symbol; COFF_ParsedSymbol symbol_parsed = lnk_parsed_symbol_from_defined(symbol); - if (symbol_parsed.section_number == lnk_removed_section_number_from_obj(symbol->u.defined.obj)) { continue; } + if (symbol_parsed.section_number == lnk_obj_get_removed_section_number(symbol->u.defined.obj)) { continue; } COFF_SymbolValueInterpType symbol_interp = coff_interp_from_parsed_symbol(symbol_parsed); if (symbol_interp != COFF_SymbolValueInterp_Regular) { continue; } diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 0f1fb974..b69d4328 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -493,6 +493,12 @@ lnk_obj_get_lib_path(LNK_Obj *obj) return lib_path; } +internal U32 +lnk_obj_get_removed_section_number(LNK_Obj *obj) +{ + return obj->header.is_big_obj ? LNK_REMOVED_SECTION_NUMBER_32 : LNK_REMOVED_SECTION_NUMBER_16; +} + internal COFF_SectionHeader * lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number) { diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index 036ad1d5..4e543440 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -105,6 +105,7 @@ internal U32 lnk_obj_get_features(LNK_Obj *obj); internal U32 lnk_obj_get_comp_id(LNK_Obj *obj); internal U32 lnk_obj_get_vol_md(LNK_Obj *obj); internal String8 lnk_obj_get_lib_path(LNK_Obj *obj); +internal U32 lnk_obj_get_removed_section_number(LNK_Obj *obj); // --- Symbol & Section Helpers ------------------------------------------------ From 72e073e4e6cd0805ca6d489b4db075a0c0342b85 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 28 Jul 2025 17:43:08 -0700 Subject: [PATCH 341/372] fix typo that broke /NODEFAULTLIB usage --- src/linker/lnk.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 7c5cb0fb..e9297068 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1619,12 +1619,8 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfBegin("Input Libs"); // input libs from command line only - U64 input_source_opl = ArrayCount(input_libs); - if (config->no_default_libs) { - input_source_opl = LNK_InputSource_Default; - } - - for (U64 input_source = 0; input_source < ArrayCount(input_libs); ++input_source) { + U64 input_source_opl = config->no_default_libs ? LNK_InputSource_Default: LNK_InputSource_Count; + for EachIndex(input_source, input_source_opl) { ProfBeginV("Input Source %S", lnk_string_from_input_source(input_source)); Temp temp = temp_begin(scratch.arena); From 7be9df0e9032344112adf7d5530c01084b0879da Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 28 Jul 2025 17:47:01 -0700 Subject: [PATCH 342/372] move directive section gather logic to obj layer --- src/linker/lnk.c | 36 +++--------------------------------- src/linker/lnk_obj.c | 40 ++++++++++++++++++++++++++++++++++++++++ src/linker/lnk_obj.h | 4 +++- 3 files changed, 46 insertions(+), 34 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index e9297068..9bd70879 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1488,41 +1488,11 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } ProfBegin("Handle Directives"); - for (U64 obj_idx = 0; obj_idx < obj_node_arr.count; obj_idx += 1) { + for EachIndex(obj_idx, obj_node_arr.count) { LNK_Obj *obj = &obj_node_arr.v[obj_idx].data; - LNK_DirectiveInfo directive_info = {0}; - { - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; - - String8List drectve_data = {0}; - for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - if (sect_header->flags & COFF_SectionFlag_LnkInfo) { - String8 sect_name = str8_cstring_capped(sect_header->name, sect_header->name + sizeof(sect_header->name)); - if (str8_match(sect_name, str8_lit(".drectve"), 0)) { - if (sect_header->flags & COFF_SectionFlag_CntUninitializedData) { - lnk_error_obj(LNK_Error_IllData, obj, ".drectve section header has flag COFF_SectionFlag_CntUninitializedData"); - break; - } - if (sect_header->fsize < 3) { - lnk_error_obj(LNK_Error_IllData, obj, "not enough bytes to parse .drectve"); - break; - } - if (sect_header->reloc_count > 0) { - lnk_error_obj(LNK_Error_IllData, obj, ".drectve must not have relocations"); - break; - } - Rng1U64 sect_range = rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize); - str8_list_push(scratch.arena, &drectve_data, str8_substr(obj->data, sect_range)); - } - } - } - - for (String8Node *drectve_n = drectve_data.first; drectve_n != 0; drectve_n = drectve_n->next) { - lnk_parse_msvc_linker_directive(scratch.arena, obj, &directive_info, drectve_n->string); - } - } + String8List raw_directives = lnk_raw_directives_from_obj(scratch.arena, obj); + LNK_DirectiveInfo directive_info = lnk_directive_info_from_raw_directives(scratch.arena, obj, raw_directives); // /EXPORT { diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index b69d4328..0e750dde 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -630,6 +630,36 @@ lnk_obj_is_before(void *raw_a, void *raw_b) return a->input_idx < b->input_idx; } +internal String8List +lnk_raw_directives_from_obj(Arena *arena, LNK_Obj *obj) +{ + COFF_SectionHeader *section_table = lnk_coff_section_table_from_obj(obj); + String8List drectve_data = {0}; + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + if (sect_header->flags & COFF_SectionFlag_LnkInfo) { + String8 sect_name = str8_cstring_capped(sect_header->name, sect_header->name + sizeof(sect_header->name)); + if (str8_match(sect_name, str8_lit(".drectve"), 0)) { + if (sect_header->flags & COFF_SectionFlag_CntUninitializedData) { + lnk_error_obj(LNK_Error_IllData, obj, ".drectve section header has flag COFF_SectionFlag_CntUninitializedData"); + break; + } + if (sect_header->fsize < 3) { + lnk_error_obj(LNK_Error_IllData, obj, "not enough bytes to parse .drectve"); + break; + } + if (sect_header->reloc_count > 0) { + lnk_error_obj(LNK_Error_IllData, obj, ".drectve must not have relocations"); + break; + } + Rng1U64 sect_range = rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize); + str8_list_push(arena, &drectve_data, str8_substr(obj->data, sect_range)); + } + } + } + return drectve_data; +} + internal void lnk_parse_msvc_linker_directive(Arena *arena, LNK_Obj *obj, LNK_DirectiveInfo *directive_info, String8 buffer) { @@ -677,3 +707,13 @@ lnk_parse_msvc_linker_directive(Arena *arena, LNK_Obj *obj, LNK_DirectiveInfo *d scratch_end(scratch); } +internal LNK_DirectiveInfo +lnk_directive_info_from_raw_directives(Arena *arena, LNK_Obj *obj, String8List raw_directives) +{ + LNK_DirectiveInfo directive_info = {0}; + for (String8Node *drectve_n = raw_directives.first; drectve_n != 0; drectve_n = drectve_n->next) { + lnk_parse_msvc_linker_directive(arena, obj, &directive_info, drectve_n->string); + } + return directive_info; +} + diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index 4e543440..e3f44fda 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -123,5 +123,7 @@ internal B32 lnk_obj_is_before(void *raw_a, void *raw_b); // --- Directive Parser -------------------------------------------------------- -internal void lnk_parse_msvc_linker_directive(Arena *arena, LNK_Obj *obj, LNK_DirectiveInfo *directive_info, String8 buffer); +internal void lnk_parse_msvc_linker_directive(Arena *arena, LNK_Obj *obj, LNK_DirectiveInfo *directive_info, String8 buffer); +internal String8List lnk_raw_directives_from_obj(Arena *arena, LNK_Obj *obj); +internal LNK_DirectiveInfo lnk_directive_info_from_raw_directives(Arena *arena, LNK_Obj *obj, String8List raw_directives); From 0b904f4e241c5c0b337a43f5a0e6b4d5f449a98c Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 28 Jul 2025 17:50:37 -0700 Subject: [PATCH 343/372] extract function size infer logic into its own block --- src/linker/lnk.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 9bd70879..c4df04e7 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1470,23 +1470,22 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) LNK_ObjNodeArray obj_node_arr = lnk_obj_list_push_parallel(tp, tp_arena, &obj_list, config->machine, unique_obj_input_list.count, input_obj_arr); - // // if the machine was omitted on the command line, derive machine from obj - // if (config->machine == COFF_MachineType_Unknown) { for (U64 obj_idx = 0; obj_idx < obj_node_arr.count; obj_idx += 1) { if (obj_node_arr.v[obj_idx].data.header.machine != COFF_MachineType_Unknown) { config->machine = obj_node_arr.v[obj_idx].data.header.machine; - - if (config->infer_function_pad_min) { - config->function_pad_min = lnk_get_default_function_pad_min(config->machine); - } - break; } } } + // infer minimal padding size for functions from the target machine + if (config->machine != COFF_MachineType_Unknown && config->infer_function_pad_min) { + config->function_pad_min = lnk_get_default_function_pad_min(config->machine); + config->infer_function_pad_min = 0; + } + ProfBegin("Handle Directives"); for EachIndex(obj_idx, obj_node_arr.count) { LNK_Obj *obj = &obj_node_arr.v[obj_idx].data; From 18f83521e451315e90f7718b2db298436f3b5fd6 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 28 Jul 2025 18:40:51 -0700 Subject: [PATCH 344/372] clean up pass over directives handler; preparing to collapse code paths --- src/linker/lnk.c | 41 +++++++++++--------------- src/linker/lnk_cmd_line.c | 4 --- src/linker/lnk_config.c | 25 ++++++++-------- src/linker/lnk_config.h | 4 +-- src/linker/lnk_obj.c | 60 +++++++++++++++++++-------------------- 5 files changed, 60 insertions(+), 74 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index c4df04e7..b1583ccc 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1488,18 +1488,15 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfBegin("Handle Directives"); for EachIndex(obj_idx, obj_node_arr.count) { - LNK_Obj *obj = &obj_node_arr.v[obj_idx].data; - - String8List raw_directives = lnk_raw_directives_from_obj(scratch.arena, obj); - LNK_DirectiveInfo directive_info = lnk_directive_info_from_raw_directives(scratch.arena, obj, raw_directives); + LNK_Obj *obj = &obj_node_arr.v[obj_idx].data; + String8List raw_directives = lnk_raw_directives_from_obj(scratch.arena, obj); + LNK_DirectiveInfo directive_info = lnk_directive_info_from_raw_directives(scratch.arena, obj, raw_directives); // /EXPORT - { - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Export].first; dir != 0; dir = dir->next) { - PE_ExportParse export_parse = {0}; - lnk_parse_export_directive_ex(scratch.arena, dir->value_list, obj->path, lnk_obj_get_lib_path(obj), &export_parse); - lnk_push_export(tp_arena->v[0], export_ht, &export_symbol_list, &include_symbol_list, export_parse); - } + for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Export].first; dir != 0; dir = dir->next) { + PE_ExportParse export_parse = {0}; + lnk_parse_export_directive_ex(scratch.arena, dir->value_list, obj->path, lnk_obj_get_lib_path(obj), &export_parse); + lnk_push_export(tp_arena->v[0], export_ht, &export_symbol_list, &include_symbol_list, export_parse); } // /INCLUDESYMBOL @@ -1511,13 +1508,11 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Merge].first; dir != 0; dir = dir->next) { for (String8Node *value_n = dir->value_list.first; value_n != 0; value_n = value_n->next) { LNK_MergeDirective merge_dir; - if (lnk_parse_merge_directive(value_n->string, &merge_dir)) { + if (lnk_parse_merge_directive(value_n->string, obj->path, lnk_obj_get_lib_path(obj), &merge_dir)) { merge_dir.src = push_str8_copy(tp_arena->v[0], merge_dir.src); merge_dir.dst = push_str8_copy(tp_arena->v[0], merge_dir.dst); lnk_merge_directive_list_push(tp_arena->v[0], &config->merge_list, merge_dir); - } else { - lnk_error_obj(LNK_Warning_IllData, obj, "can't parse merge directive \"%S\"", value_n->string); - } + } } } @@ -1537,17 +1532,13 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } // /ALTERNATENAME - { - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_AlternateName].first; dir != 0; dir = dir->next) { - for (String8Node *string_n = dir->value_list.first; string_n != 0; string_n = string_n->next) { - LNK_AltName alt_name; - if (lnk_parse_alt_name_directive(string_n->string, &alt_name)) { - alt_name.from = push_str8_copy(tp_arena->v[0], alt_name.from); - alt_name.to = push_str8_copy(tp_arena->v[0], alt_name.to); - lnk_symbol_table_push_alt_name(symtab, obj, alt_name.from, alt_name.to); - } else { - lnk_error_obj(LNK_Error_Cmdl, obj, "syntax error in \"%S\", expected format \"FROM=TO\"", string_n->string); - } + for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_AlternateName].first; dir != 0; dir = dir->next) { + for (String8Node *string_n = dir->value_list.first; string_n != 0; string_n = string_n->next) { + LNK_AltName alt_name; + if (lnk_parse_alt_name_directive(string_n->string, obj->path, lnk_obj_get_lib_path(obj), &alt_name)) { + alt_name.from = push_str8_copy(tp_arena->v[0], alt_name.from); + alt_name.to = push_str8_copy(tp_arena->v[0], alt_name.to); + lnk_symbol_table_push_alt_name(symtab, obj, alt_name.from, alt_name.to); } } } diff --git a/src/linker/lnk_cmd_line.c b/src/linker/lnk_cmd_line.c index d906e586..f2828156 100644 --- a/src/linker/lnk_cmd_line.c +++ b/src/linker/lnk_cmd_line.c @@ -129,8 +129,6 @@ lnk_cmd_line_push_option_if_not_present(Arena *arena, LNK_CmdLine *cmd_line, cha internal LNK_CmdLine lnk_cmd_line_parse_windows_rules(Arena *arena, String8List arg_list) { - Temp scratch = scratch_begin(&arena, 1); - LNK_CmdLine cmd_line = {0}; cmd_line.raw_cmd_line = str8_list_copy(arena, &arg_list); @@ -157,8 +155,6 @@ lnk_cmd_line_parse_windows_rules(Arena *arena, String8List arg_list) str8_list_push(arena, &cmd_line.input_list, arg); } } - - scratch_end(scratch); return cmd_line; } diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index e362c2c6..3eb42ddc 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -601,15 +601,16 @@ lnk_cmd_switch_parse_string_copy(Arena *arena, String8 obj_path, String8 lib_pat } internal B32 -lnk_parse_alt_name_directive(String8 input, LNK_AltName *alt_out) +lnk_parse_alt_name_directive(String8 string, String8 obj_path, String8 lib_path, LNK_AltName *alt_out) { Temp scratch = scratch_begin(0,0); B32 is_parse_ok = 0; - String8List pair = str8_split_by_string_chars(scratch.arena, input, str8_lit("="), 0); + String8List pair = str8_split_by_string_chars(scratch.arena, string, str8_lit("="), 0); if (pair.node_count == 2) { alt_out->from = pair.first->string; - alt_out->to = pair.last->string; - is_parse_ok = 1; + alt_out->to = pair.last->string; + } else { + lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, LNK_CmdSwitch_AlternateName, "syntax error in \"%S\", expected format \"FROM=TO\"", string); } scratch_end(scratch); return is_parse_ok; @@ -745,18 +746,18 @@ lnk_merge_directive_list_push(Arena *arena, LNK_MergeDirectiveList *list, LNK_Me } internal B32 -lnk_parse_merge_directive(String8 string, LNK_MergeDirective *out) +lnk_parse_merge_directive(String8 string, String8 obj_path, String8 lib_path, LNK_MergeDirective *out) { Temp scratch = scratch_begin(0, 0); B32 is_parse_ok = 0; - String8List list = str8_split_by_string_chars(scratch.arena, string, str8_lit("="), 0); if (list.node_count == 2) { out->src = list.first->string; out->dst = list.last->string; is_parse_ok = 1; + } else { + lnk_error_cmd_switch(LNK_Warning_InvalidMergeDirectiveFormat, obj_path, lib_path, LNK_CmdSwitch_Merge, "unable to parse merge directive, expected format \"/MERGE:FROM=TO\" but got \"%S\"", string); } - scratch_end(scratch); return is_parse_ok; } @@ -1094,15 +1095,13 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam case LNK_CmdSwitch_AlternateName: { if (value_strings.node_count == 1) { LNK_AltName alt_name; - if (lnk_parse_alt_name_directive(value_strings.first->string, &alt_name)) { + if (lnk_parse_alt_name_directive(value_strings.first->string, obj_path, lib_path, &alt_name)) { alt_name.from = push_str8_copy(arena, alt_name.from); alt_name.to = push_str8_copy(arena, alt_name.to); LNK_AltNameNode *alt_name_n = push_array(arena, LNK_AltNameNode, 1); alt_name_n->data = alt_name; SLLQueuePush(config->alt_name_list.first, config->alt_name_list.last, alt_name_n); config->alt_name_list.count += 1; - } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "syntax error in \"%S\", expected format \"FROM=TO\"", value_strings.first->string); } } else { lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters"); @@ -1463,10 +1462,10 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam case LNK_CmdSwitch_Merge: { if (value_strings.node_count == 1) { LNK_MergeDirective merge = {0}; - if (lnk_parse_merge_directive(push_str8_copy(arena, value_strings.first->string), &merge)) { + if (lnk_parse_merge_directive(value_strings.first->string, obj_path, lib_path, &merge)) { + merge.src = push_str8_copy(arena, merge.src); + merge.dst = push_str8_copy(arena, merge.dst); lnk_merge_directive_list_push(arena, &config->merge_list, merge); - } else { - lnk_error_cmd_switch(LNK_Warning_InvalidMergeDirectiveFormat, obj_path, lib_path, cmd_switch, "unable to parse merge directive, expected format \"/MERGE:FROM=TO\" but got \"%S\"", value_strings.first->string); } } else { lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters %d", value_strings.node_count); diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index f601a85f..a3d806f1 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -556,11 +556,11 @@ internal void lnk_cmd_switch_set_flag_64 (String8 obj_path, String8 lib_path, internal B32 lnk_cmd_switch_parse_string (String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, String8 *string_out); internal void lnk_cmd_switch_parse_string_copy(Arena *arena, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, String8 *string_out); -internal B32 lnk_parse_alt_name_directive(String8 input, LNK_AltName *alt_out); +internal B32 lnk_parse_alt_name_directive(String8 string, String8 obj_path, String8 lib_path, LNK_AltName *alt_out); internal B32 lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_path, String8 lib_path, PE_ExportParse *export_out); internal B32 lnk_parse_export_directive(Arena *arena, String8 directive, String8 obj_path, String8 lib_path, PE_ExportParse *export_out); internal LNK_MergeDirectiveNode * lnk_merge_directive_list_push(Arena *arena, LNK_MergeDirectiveList *list, LNK_MergeDirective data); -internal B32 lnk_parse_merge_directive(String8 string, LNK_MergeDirective *parse_out); +internal B32 lnk_parse_merge_directive(String8 string, String8 obj_path, String8 lib_path, LNK_MergeDirective *parse_out); // --- Getters ----------------------------------------------------------------- diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 0e750dde..557620cb 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -630,36 +630,6 @@ lnk_obj_is_before(void *raw_a, void *raw_b) return a->input_idx < b->input_idx; } -internal String8List -lnk_raw_directives_from_obj(Arena *arena, LNK_Obj *obj) -{ - COFF_SectionHeader *section_table = lnk_coff_section_table_from_obj(obj); - String8List drectve_data = {0}; - for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - if (sect_header->flags & COFF_SectionFlag_LnkInfo) { - String8 sect_name = str8_cstring_capped(sect_header->name, sect_header->name + sizeof(sect_header->name)); - if (str8_match(sect_name, str8_lit(".drectve"), 0)) { - if (sect_header->flags & COFF_SectionFlag_CntUninitializedData) { - lnk_error_obj(LNK_Error_IllData, obj, ".drectve section header has flag COFF_SectionFlag_CntUninitializedData"); - break; - } - if (sect_header->fsize < 3) { - lnk_error_obj(LNK_Error_IllData, obj, "not enough bytes to parse .drectve"); - break; - } - if (sect_header->reloc_count > 0) { - lnk_error_obj(LNK_Error_IllData, obj, ".drectve must not have relocations"); - break; - } - Rng1U64 sect_range = rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize); - str8_list_push(arena, &drectve_data, str8_substr(obj->data, sect_range)); - } - } - } - return drectve_data; -} - internal void lnk_parse_msvc_linker_directive(Arena *arena, LNK_Obj *obj, LNK_DirectiveInfo *directive_info, String8 buffer) { @@ -707,6 +677,36 @@ lnk_parse_msvc_linker_directive(Arena *arena, LNK_Obj *obj, LNK_DirectiveInfo *d scratch_end(scratch); } +internal String8List +lnk_raw_directives_from_obj(Arena *arena, LNK_Obj *obj) +{ + COFF_SectionHeader *section_table = lnk_coff_section_table_from_obj(obj); + String8List drectve_data = {0}; + for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + if (sect_header->flags & COFF_SectionFlag_LnkInfo) { + String8 sect_name = str8_cstring_capped(sect_header->name, sect_header->name + sizeof(sect_header->name)); + if (str8_match(sect_name, str8_lit(".drectve"), 0)) { + if (sect_header->flags & COFF_SectionFlag_CntUninitializedData) { + lnk_error_obj(LNK_Error_IllData, obj, ".drectve section header has flag COFF_SectionFlag_CntUninitializedData"); + break; + } + if (sect_header->fsize < 3) { + lnk_error_obj(LNK_Error_IllData, obj, "not enough bytes to parse .drectve"); + break; + } + if (sect_header->reloc_count > 0) { + lnk_error_obj(LNK_Error_IllData, obj, ".drectve must not have relocations"); + break; + } + Rng1U64 sect_range = rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize); + str8_list_push(arena, &drectve_data, str8_substr(obj->data, sect_range)); + } + } + } + return drectve_data; +} + internal LNK_DirectiveInfo lnk_directive_info_from_raw_directives(Arena *arena, LNK_Obj *obj, String8List raw_directives) { From 92e6069104c52c737f097dbd487fc0dbbb36e44f Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 28 Jul 2025 20:07:48 -0700 Subject: [PATCH 345/372] collapse obj directive directive code paths --- src/linker/lnk.c | 267 +++++++++++----------------------------- src/linker/lnk.h | 5 +- src/linker/lnk_config.c | 51 +++++++- src/linker/lnk_config.h | 2 + 4 files changed, 117 insertions(+), 208 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index b1583ccc..02938e2a 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -913,48 +913,6 @@ lnk_push_loaded_lib(Arena *arena, HashTable *loaded_lib_ht, String8 path) } } -internal void -lnk_push_export(Arena *arena, HashTable *export_ht, PE_ExportParseList *export_list, String8List *include_symbol_list, PE_ExportParse export_parse) -{ - PE_ExportParseNode *exp_n = 0; - String8 export_name = pe_name_from_export_parse(&export_parse); - hash_table_search_string_raw(export_ht, export_name, &exp_n); - - if (exp_n == 0) { - // make sure export is defined - if (!export_parse.is_forwarder) { - str8_list_push(arena, include_symbol_list, export_parse.name); - } - - // push new export - exp_n = pe_export_parse_list_push(arena, export_list, export_parse); - - hash_table_push_string_raw(arena, export_ht, export_name, exp_n); - } else { - B32 is_ambiguous = 1; - PE_ExportParse *extant_export = &exp_n->data; - - if (extant_export->alias.size && export_parse.alias.size && !str8_match(extant_export->alias, export_parse.alias, 0)) { - goto report; - } - - if (extant_export->ordinal != export_parse.ordinal) { - goto report; - } - - is_ambiguous = 0; - - if (extant_export->alias.size == 0 && export_parse.alias.size != 0) { - extant_export->alias = export_parse.alias; - } - - report:; - if (is_ambiguous) { - lnk_error_with_loc(LNK_Error_IllExport, export_parse.obj_path, export_parse.lib_path, "ambiguous symbol export %S", export_parse.name); - } - } -} - internal String8 lnk_make_linker_obj(Arena *arena, LNK_Config *config) { @@ -1063,6 +1021,10 @@ THREAD_POOL_TASK_FUNC(lnk_undef_symbol_finder) for (U64 symbol_idx = range.min; symbol_idx < range.max; symbol_idx += 1) { LNK_SymbolNode *symbol_n = task->lookup_node_arr.v[symbol_idx]; LNK_Symbol *symbol = symbol_n->data; + + if (str8_match(symbol->name, str8_lit("return_1"), 0)) { + int x = 0; + } LNK_Symbol *has_defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol->name); if (has_defn) { @@ -1217,6 +1179,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) State_InputSymbols, State_InputObjs, State_InputLibs, + State_InputAlternateNames, State_PushDllHelperUndefSymbol, State_InputLinkerObjs, State_PushLoadConfigUndefSymbol, @@ -1239,17 +1202,18 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) Temp scratch = scratch_begin(tp_arena->v, tp_arena->count); // inputs - String8List include_symbol_list = config->include_symbol_list; - String8List input_disallow_lib_list = config->disallow_lib_list; - String8List input_manifest_path_list = str8_list_copy(scratch.arena, &config->input_list[LNK_Input_Manifest]); - String8List manifest_dep_list = str8_list_copy(scratch.arena, &config->manifest_dependency_list); - PE_ExportParseList export_symbol_list = {0}; - HashTable *export_ht = hash_table_init(scratch.arena, max_U16/2); + String8Node **last_include_symbol = &config->include_symbol_list.first; + String8Node **last_disallow_lib = &config->disallow_lib_list.first; + LNK_AltNameNode **last_alt_name = &config->alt_name_list.first; LNK_InputObjList input_obj_list = {0}; LNK_InputImportList input_import_list = {0}; LNK_SymbolList input_weak_list = {0}; - LNK_InputLibList input_libs[LNK_InputSource_Count] = { config->input_list[LNK_Input_Lib], config->input_default_lib_list }; - + LNK_InputLib **input_libs[LNK_InputSource_Count] = { + &config->input_list[LNK_Input_Lib].first, + &config->input_default_lib_list.first, + &config->input_obj_lib_list.first + }; + // input :null_obj { LNK_InputObj *null_obj_input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); @@ -1302,20 +1266,6 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) if (config->guard_flags != LNK_Guard_None) { state_list_push(scratch.arena, state_list, State_PushLoadConfigUndefSymbol); } - - // - // Push config exports - // - for (PE_ExportParseNode *exp_n = config->export_symbol_list.first; exp_n != 0; exp_n = exp_n->next) { - lnk_push_export(tp_arena->v[0], export_ht, &export_symbol_list, &include_symbol_list, exp_n->data); - } - - // - // Push config alternative names - // - for (LNK_AltNameNode *alt_n = config->alt_name_list.first; alt_n != 0; alt_n = alt_n->next) { - lnk_symbol_table_push_alt_name(symtab, 0, alt_n->data.from, alt_n->data.to); - } // // Run states @@ -1328,16 +1278,11 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) case State_InputDisallowLibs: { ProfBegin("Input /disallowlib"); - - for (String8Node *name_n = input_disallow_lib_list.first; name_n != 0; name_n = name_n->next) { - if ( ! lnk_is_lib_disallowed(disallow_lib_ht, name_n->string)) { - lnk_push_disallow_lib(scratch.arena, disallow_lib_ht, name_n->string); + for (; *last_disallow_lib; last_disallow_lib = &(*last_disallow_lib)->next) { + if ( ! lnk_is_lib_disallowed(disallow_lib_ht, (*last_disallow_lib)->string)) { + lnk_push_disallow_lib(scratch.arena, disallow_lib_ht, (*last_disallow_lib)->string); } } - - // reset input - MemoryZeroStruct(&input_disallow_lib_list); - ProfEnd(); } break; case State_InputImports: { @@ -1396,8 +1341,8 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfBegin("Input Symbols"); ProfBegin("Push /INCLUDE Symbols"); - for (String8Node *include_node = include_symbol_list.first; include_node != 0; include_node = include_node->next) { - String8 name = push_str8_copy(symtab->arena->v[0], include_node->string); + for (; *last_include_symbol; last_include_symbol = &(*last_include_symbol)->next) { + String8 name = push_str8_copy(symtab->arena->v[0], (*last_include_symbol)->string); LNK_Symbol *symbol = lnk_make_undefined_symbol(symtab->arena->v[0], name, 0); lnk_symbol_list_push(scratch.arena, &lookup_undef_list, symbol); } @@ -1409,7 +1354,6 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) lnk_symbol_list_concat_in_place(&lookup_weak_list, &unresolved_weak_list); // reset inputs - MemoryZeroStruct(&include_symbol_list); MemoryZeroStruct(&input_weak_list); ProfEnd(); @@ -1447,7 +1391,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) LNK_InputObj **thin_inputs = lnk_thin_array_from_input_obj_list(scratch.arena, unique_obj_input_list, &thin_inputs_count); String8Array thin_input_paths = lnk_path_array_from_input_obj_array(scratch.arena, thin_inputs, thin_inputs_count); String8Array thin_input_datas = lnk_read_data_from_file_path_parallel(tp, tp_arena->v[0], config->io_flags, thin_input_paths); - for (U64 thin_input_idx = 0; thin_input_idx < thin_inputs_count; thin_input_idx += 1) { + for EachIndex(thin_input_idx, thin_inputs_count) { thin_inputs[thin_input_idx]->has_disk_read_failed = thin_input_datas.v[thin_input_idx].size == 0; thin_inputs[thin_input_idx]->data = thin_input_datas.v[thin_input_idx]; } @@ -1455,7 +1399,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfBegin("Disk Read Check"); LNK_InputObj **input_obj_arr = lnk_array_from_input_obj_list(scratch.arena, unique_obj_input_list); - for (U64 input_idx = 0; input_idx < unique_obj_input_list.count; ++input_idx) { + for EachIndex(input_idx, unique_obj_input_list.count) { if (input_obj_arr[input_idx]->has_disk_read_failed) { lnk_error(LNK_Error_InvalidPath, "unable to find obj \"%S\"", input_obj_arr[input_idx]->path); } @@ -1464,7 +1408,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) if (lnk_get_log_status(LNK_Log_InputObj)) { U64 input_size = 0; - for (U64 i = 0; i < unique_obj_input_list.count; ++i) { input_size += input_obj_arr[i]->data.size; } + for EachIndex(i, unique_obj_input_list.count) { input_size += input_obj_arr[i]->data.size; } lnk_log(LNK_Log_InputObj, "[ Obj Input Size %M ]", input_size); } @@ -1486,80 +1430,20 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) config->infer_function_pad_min = 0; } - ProfBegin("Handle Directives"); + ProfBegin("Apply Directives"); for EachIndex(obj_idx, obj_node_arr.count) { LNK_Obj *obj = &obj_node_arr.v[obj_idx].data; String8List raw_directives = lnk_raw_directives_from_obj(scratch.arena, obj); LNK_DirectiveInfo directive_info = lnk_directive_info_from_raw_directives(scratch.arena, obj, raw_directives); - - // /EXPORT - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Export].first; dir != 0; dir = dir->next) { - PE_ExportParse export_parse = {0}; - lnk_parse_export_directive_ex(scratch.arena, dir->value_list, obj->path, lnk_obj_get_lib_path(obj), &export_parse); - lnk_push_export(tp_arena->v[0], export_ht, &export_symbol_list, &include_symbol_list, export_parse); - } - - // /INCLUDESYMBOL - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Include].first; dir != 0; dir = dir->next) { - str8_list_concat_in_place(&include_symbol_list, &dir->value_list); - } - - // /MERGE - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Merge].first; dir != 0; dir = dir->next) { - for (String8Node *value_n = dir->value_list.first; value_n != 0; value_n = value_n->next) { - LNK_MergeDirective merge_dir; - if (lnk_parse_merge_directive(value_n->string, obj->path, lnk_obj_get_lib_path(obj), &merge_dir)) { - merge_dir.src = push_str8_copy(tp_arena->v[0], merge_dir.src); - merge_dir.dst = push_str8_copy(tp_arena->v[0], merge_dir.dst); - lnk_merge_directive_list_push(tp_arena->v[0], &config->merge_list, merge_dir); - } + for EachIndex(i, ArrayCount(directive_info.v)) { + for (LNK_Directive *dir = directive_info.v[i].first; dir != 0; dir = dir->next) { + lnk_apply_cmd_option_to_config(tp_arena->v[0], config, dir->id, dir->value_list, obj->path, lnk_obj_get_lib_path(obj)); } } - - // /MANIFESTDEPENDENCY - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_ManifestDependency].first; dir != 0; dir = dir->next) { - str8_list_concat_in_place(&manifest_dep_list, &dir->value_list); - } - - // /DISALLOWLIB - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_DisallowLib].first; dir != 0; dir = dir->next) { - str8_list_concat_in_place(&input_disallow_lib_list, &dir->value_list); - } - - // /DEFAULTLIB - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_DefaultLib].first; dir != 0; dir = dir->next) { - str8_list_concat_in_place(&input_libs[LNK_InputSource_Obj], &dir->value_list); - } - - // /ALTERNATENAME - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_AlternateName].first; dir != 0; dir = dir->next) { - for (String8Node *string_n = dir->value_list.first; string_n != 0; string_n = string_n->next) { - LNK_AltName alt_name; - if (lnk_parse_alt_name_directive(string_n->string, obj->path, lnk_obj_get_lib_path(obj), &alt_name)) { - alt_name.from = push_str8_copy(tp_arena->v[0], alt_name.from); - alt_name.to = push_str8_copy(tp_arena->v[0], alt_name.to); - lnk_symbol_table_push_alt_name(symtab, obj, alt_name.from, alt_name.to); - } - } - } - - // /ENTRY - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Entry].first; dir != 0; dir = dir->next) { - lnk_apply_cmd_option_to_config(scratch.arena, config, dir->id, dir->value_list, obj->path, lnk_obj_get_lib_path(obj)); - } - - // /SUBSYSTEM - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_SubSystem].first; dir != 0; dir = dir->next) { - lnk_apply_cmd_option_to_config(scratch.arena, config, dir->id, dir->value_list, obj->path, lnk_obj_get_lib_path(obj)); - } - - // /STACK - for (LNK_Directive *dir = directive_info.v[LNK_CmdSwitch_Stack].first; dir != 0; dir = dir->next) { - lnk_apply_cmd_option_to_config(scratch.arena, config, dir->id, dir->value_list, obj->path, lnk_obj_get_lib_path(obj)); - } } ProfEnd(); + // input extern symbols from each obj to the symbol table LNK_SymbolInputResult input_result = lnk_input_obj_symbols(tp, tp_arena, symtab, obj_node_arr); // schedule symbol input @@ -1584,12 +1468,11 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfBeginV("Input Source %S", lnk_string_from_input_source(input_source)); Temp temp = temp_begin(scratch.arena); - LNK_InputLibList input_lib_list = input_libs[input_source]; LNK_InputLibList unique_input_lib_list = {0}; ProfBegin("Collect unique input libs"); - for (LNK_InputLib *input = input_lib_list.first; input != 0; input = input->next) { - String8 path = input->string; + for (; *input_libs[input_source] != 0; input_libs[input_source] = &(*input_libs[input_source])->next) { + String8 path = (*input_libs[input_source])->string; if (input_source == LNK_InputSource_Default || input_source == LNK_InputSource_Obj) { if (!str8_ends_with(path, str8_lit(".lib"), StringMatchFlag_CaseInsensitive)) { @@ -1664,21 +1547,33 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfEnd(); } - // reset input libs - MemoryZeroArray(input_libs); - ProfEnd(); } break; + case State_InputAlternateNames: { + for (; *last_alt_name; last_alt_name = &(*last_alt_name)->next) { + lnk_symbol_table_push_alt_name(symtab, 0, (*last_alt_name)->data.from, (*last_alt_name)->data.to); + } + } break; case State_PushDllHelperUndefSymbol: { ProfBegin("Push Dll Helper Undef Symbol"); delay_load_helper_name = mscrt_delay_load_helper_name_from_machine(config->machine); - str8_list_push(scratch.arena, &include_symbol_list, delay_load_helper_name); + + // TODO: config_refactor + String8List value_strings = {0}; + str8_list_push(scratch.arena, &value_strings, delay_load_helper_name); + lnk_apply_cmd_option_to_config(tp_arena->v[0], config, str8_lit("include"), value_strings, str8_zero(), str8_zero()); + ProfEnd(); } break; case State_PushLoadConfigUndefSymbol: { ProfBegin("Push Load Config Undef Symbol"); String8 load_config_name = str8_lit(MSCRT_LOAD_CONFIG_SYMBOL_NAME); - str8_list_push(scratch.arena, &include_symbol_list, load_config_name); + + // TODO: config_refactor + String8List value_strings = {0}; + str8_list_push(scratch.arena, &value_strings, load_config_name); + lnk_apply_cmd_option_to_config(tp_arena->v[0], config, str8_lit("include"), value_strings, str8_zero(), str8_zero()); + ProfEnd(); } break; case State_LookupUndef: { @@ -1799,7 +1694,10 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) // generate undefined symbol so in case obj is in lib it will be linked if (config->entry_point_name.size) { - str8_list_push(scratch.arena, &include_symbol_list, config->entry_point_name); + // TODO: config_refactor + String8List value_strings = {0}; + str8_list_push(scratch.arena, &value_strings, config->entry_point_name); + lnk_apply_cmd_option_to_config(tp_arena->v[0], config, str8_lit("include"), value_strings, str8_zero(), str8_zero()); } // no entry point, error and exit else { @@ -1933,11 +1831,11 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfEnd(); } - if (export_symbol_list.count) { + if (config->export_symbol_list.count) { ProfBegin("Build Export Table"); PE_ExportParseList resolved_exports = {0}; - for (PE_ExportParseNode *exp_n = export_symbol_list.first, *exp_n_next; exp_n != 0; exp_n = exp_n_next) { + for (PE_ExportParseNode *exp_n = config->export_symbol_list.first, *exp_n_next; exp_n != 0; exp_n = exp_n_next) { exp_n_next = exp_n->next; PE_ExportParse *exp = &exp_n->data; @@ -1979,7 +1877,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) // do we have manifest deps passed through pragma alone? LNK_ManifestOpt manifest_opt = config->manifest_opt; - if (manifest_dep_list.node_count > 0 && manifest_opt == LNK_ManifestOpt_Null) { + if (config->manifest_dependency_list.node_count > 0 && manifest_opt == LNK_ManifestOpt_Null) { manifest_opt = LNK_ManifestOpt_Embed; } @@ -1988,7 +1886,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfBegin("Embed Manifest"); // TODO: currently we convert manifest to res and parse res again, this unnecessary instead push manifest // resource to the tree directly - String8 manifest_data = lnk_manifest_from_inputs(scratch.arena, config->io_flags, config->mt_path, config->manifest_name, config->manifest_uac, config->manifest_level, config->manifest_ui_access, input_manifest_path_list, manifest_dep_list); + String8 manifest_data = lnk_manifest_from_inputs(scratch.arena, config->io_flags, config->mt_path, config->manifest_name, config->manifest_uac, config->manifest_level, config->manifest_ui_access, config->input_list[LNK_Input_Manifest], config->manifest_dependency_list); String8 manifest_res = pe_make_manifest_resource(scratch.arena, *config->manifest_resource_id, manifest_data); str8_list_push(scratch.arena, &res_data_list, manifest_res); str8_list_push(scratch.arena, &res_path_list, str8_lit("* Manifest *")); @@ -1997,14 +1895,14 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) case LNK_ManifestOpt_WriteToFile: { ProfBeginDynamic("Write Manifest To: %.*s", str8_varg(config->manifest_name)); Temp temp = temp_begin(scratch.arena); - String8 manifest_data = lnk_manifest_from_inputs(temp.arena, config->io_flags, config->mt_path, config->manifest_name, config->manifest_uac, config->manifest_level, config->manifest_ui_access, input_manifest_path_list, manifest_dep_list); + String8 manifest_data = lnk_manifest_from_inputs(temp.arena, config->io_flags, config->mt_path, config->manifest_name, config->manifest_uac, config->manifest_level, config->manifest_ui_access, config->input_list[LNK_Input_Manifest], config->manifest_dependency_list); lnk_write_data_to_file_path(config->manifest_name, str8_zero(), manifest_data); temp_end(temp); ProfEnd(); } break; case LNK_ManifestOpt_Null: { - Assert(input_manifest_path_list.node_count == 0); - Assert(manifest_dep_list.node_count == 0); + Assert(config->input_list[LNK_Input_Manifest].node_count == 0); + Assert(config->manifest_dependency_list.node_count == 0); } break; case LNK_ManifestOpt_No: { // omit manifest generation @@ -2087,7 +1985,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } } - if (input_disallow_lib_list.node_count) { + if (*last_disallow_lib != 0) { state_list_push(scratch.arena, state_list, State_InputDisallowLibs); continue; } @@ -2095,7 +1993,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) state_list_push(scratch.arena, state_list, State_InputImports); continue; } - if (input_weak_list.count || include_symbol_list.node_count) { + if (input_weak_list.count || *last_include_symbol != 0) { state_list_push(scratch.arena, state_list, State_InputSymbols); continue; } @@ -2106,7 +2004,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) { B32 have_pending_lib_inputs = 0; for (U64 i = 0; i < ArrayCount(input_libs); ++i) { - if (input_libs[i].node_count) { + if (*input_libs[i] != 0) { have_pending_lib_inputs = 1; break; } @@ -2116,6 +2014,10 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) continue; } } + if (*last_alt_name != 0) { + state_list_push(scratch.arena, state_list, State_InputAlternateNames); + continue; + } if (lookup_undef_list.count) { state_list_push(scratch.arena, state_list, State_LookupUndef); continue; @@ -2177,8 +2079,6 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) link_ctx.symtab = symtab; link_ctx.objs_count = obj_list.count; link_ctx.objs = lnk_array_from_obj_list(tp_arena->v[0], obj_list); - link_ctx.export_symbol_list = export_symbol_list; - link_ctx.delay_load_helper_name = delay_load_helper_name; MemoryCopyTyped(&link_ctx.lib_index[0], &lib_index[0], ArrayCount(lib_index)); ProfEnd(); @@ -2242,10 +2142,7 @@ lnk_gc_comdats(TP_Context *tp, U64 objs_count, LNK_Obj **objs, LNK_Symbol ***symlinks, - LNK_Config *config, - PE_ExportParseList export_symbol_list, - String8List include_symbol_list, - String8 delay_load_helper_name) + LNK_Config *config) { ProfBeginFunction(); Temp scratch = scratch_begin(0,0); @@ -2258,27 +2155,7 @@ lnk_gc_comdats(TP_Context *tp, // define roots // { - String8List roots = {0}; - - // entry point - str8_list_push(scratch.arena, &roots, config->entry_point_name); - - // exports - for (PE_ExportParseNode *exp_n = export_symbol_list.first; exp_n != 0; exp_n = exp_n->next) { - PE_ExportParse *exp = &exp_n->data; - str8_list_push(scratch.arena, &roots, exp->name); - } - - // load config - LNK_Symbol *load_config_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, MSCRT_LOAD_CONFIG_SYMBOL_NAME); - if (load_config_symbol) { - str8_list_push(scratch.arena, &roots, load_config_symbol->name); - } - - // delay load helper - if (delay_load_helper_name.size) { - str8_list_push(scratch.arena, &roots, delay_load_helper_name); - } + String8List roots = str8_list_copy(scratch.arena, &config->include_symbol_list); // tls LNK_Symbol *tls_symbol = lnk_symbol_table_searchf(symtab, LNK_SymbolScope_Defined, MSCRT_TLS_SYMBOL_NAME); @@ -2286,9 +2163,6 @@ lnk_gc_comdats(TP_Context *tp, str8_list_pushf(scratch.arena, &roots, MSCRT_TLS_SYMBOL_NAME); } - // include symbols - str8_list_concat_in_place(&roots, &include_symbol_list); - // push tasks for each root symbol for (String8Node *root_n = roots.first; root_n != 0; root_n = root_n->next) { LNK_Symbol *root = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, root_n->string); @@ -3947,9 +3821,6 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, - PE_ExportParseList export_symbol_list, - String8List include_symbol_list, - String8 delay_load_helper_name, U64 objs_count, LNK_Obj **objs) { @@ -3968,7 +3839,7 @@ lnk_build_image(TP_Arena *arena, // remove unreachable COMDAT sections // if (config->opt_ref == LNK_SwitchState_Yes) { - lnk_gc_comdats(tp, symtab, objs_count, objs, symlinks, config, export_symbol_list, include_symbol_list, delay_load_helper_name); + lnk_gc_comdats(tp, symtab, objs_count, objs, symlinks, config); } // @@ -4880,7 +4751,7 @@ lnk_run(TP_Context *tp, TP_Arena *arena, LNK_Config *config) // // Image // - LNK_ImageContext image_ctx = lnk_build_image(arena, tp, config, link_ctx.symtab, link_ctx.export_symbol_list, link_ctx.include_symbol_list, link_ctx.delay_load_helper_name, link_ctx.objs_count, link_ctx.objs); + LNK_ImageContext image_ctx = lnk_build_image(arena, tp, config, link_ctx.symtab, link_ctx.objs_count, link_ctx.objs); // Write image in the background LNK_WriteThreadContext *image_write_ctx = push_array(scratch.arena, LNK_WriteThreadContext, 1); @@ -4904,7 +4775,7 @@ lnk_run(TP_Context *tp, TP_Arena *arena, LNK_Config *config) ProfBegin("Build Import Library"); lnk_timer_begin(LNK_Timer_Lib); String8 linker_debug_symbols = lnk_make_linker_debug_symbols(scratch.arena, config->machine); - String8List lib_list = pe_make_import_lib(arena->v[0], config->machine, config->time_stamp, str8_skip_last_slash(config->image_name), linker_debug_symbols, link_ctx.export_symbol_list); + String8List lib_list = pe_make_import_lib(arena->v[0], config->machine, config->time_stamp, str8_skip_last_slash(config->image_name), linker_debug_symbols, config->export_symbol_list); lnk_write_data_list_to_file_path(config->imp_lib_name, str8_zero(), lib_list); lnk_timer_end(LNK_Timer_Lib); ProfEnd(); diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 815b277e..2f579854 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -10,9 +10,6 @@ typedef struct LNK_LinkContext LNK_SymbolTable *symtab; U64 objs_count; LNK_Obj **objs; - PE_ExportParseList export_symbol_list; - String8List include_symbol_list; - String8 delay_load_helper_name; LNK_LibList lib_index[LNK_InputSource_Count]; } LNK_LinkContext; @@ -224,7 +221,7 @@ internal LNK_LinkContext lnk_build_link_context(TP_Context *tp, TP_Arena *tp_are internal String8List lnk_build_guard_tables(TP_Context *tp, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs, COFF_MachineType machine, String8 entry_point_name, LNK_GuardFlags guard_flags, B32 emit_suppress_flag); internal String8List lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_temp, LNK_Config *config, U64 objs_count, LNK_Obj **objs); internal String8List lnk_build_win32_image_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sect_arr, U64 expected_image_header_size); -internal LNK_ImageContext lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, PE_ExportParseList export_symbol_list, String8List include_symbol_list, String8 delay_load_helper_name, U64 obj_count, LNK_Obj **objs); +internal LNK_ImageContext lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, U64 obj_count, LNK_Obj **objs); // --- Logger ------------------------------------------------------------------ diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 3eb42ddc..026b7f8d 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -609,6 +609,7 @@ lnk_parse_alt_name_directive(String8 string, String8 obj_path, String8 lib_path, if (pair.node_count == 2) { alt_out->from = pair.first->string; alt_out->to = pair.last->string; + is_parse_ok = 1; } else { lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, LNK_CmdSwitch_AlternateName, "syntax error in \"%S\", expected format \"FROM=TO\"", string); } @@ -1163,7 +1164,11 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam case LNK_CmdSwitch_DefaultLib: { String8List default_lib_list = str8_list_copy(arena, &value_strings); - str8_list_concat_in_place(&config->input_default_lib_list, &default_lib_list); + if (obj_path.size) { + str8_list_concat_in_place(&config->input_obj_lib_list, &default_lib_list); + } else { + str8_list_concat_in_place(&config->input_default_lib_list, &default_lib_list); + } } break; case LNK_CmdSwitch_Delay: { @@ -1190,10 +1195,6 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam config->file_characteristics |= PE_ImageFileCharacteristic_FILE_DLL; } break; - case LNK_CmdSwitch_DisallowLib: { - lnk_not_implemented("TODO: how is this switch different from /nodefaultlib?"); - } break; - case LNK_CmdSwitch_DynamicBase: { lnk_cmd_switch_set_flag_16(obj_path, lib_path, cmd_switch, value_strings, &config->dll_characteristics, PE_DllCharacteristic_DYNAMIC_BASE); } break; @@ -1217,7 +1218,43 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam case LNK_CmdSwitch_Export: { PE_ExportParse export_parse = {0}; if (lnk_parse_export_directive_ex(arena, value_strings, obj_path, lib_path, &export_parse)) { - pe_export_parse_list_push(arena, &config->export_symbol_list, export_parse); + PE_ExportParseNode *exp_n = 0; + String8 export_name = pe_name_from_export_parse(&export_parse); + hash_table_search_string_raw(config->export_ht, export_name, &exp_n); + + if (exp_n == 0) { + // make sure export is defined + if (!export_parse.is_forwarder) { + str8_list_push(arena, &config->include_symbol_list, export_parse.name); + } + + // push new export + exp_n = pe_export_parse_list_push(arena, &config->export_symbol_list, export_parse); + + hash_table_push_string_raw(arena, config->export_ht, export_name, exp_n); + } else { + B32 is_ambiguous = 1; + PE_ExportParse *extant_export = &exp_n->data; + + if (extant_export->alias.size && export_parse.alias.size && !str8_match(extant_export->alias, export_parse.alias, 0)) { + goto report; + } + + if (extant_export->ordinal != export_parse.ordinal) { + goto report; + } + + is_ambiguous = 0; + + if (extant_export->alias.size == 0 && export_parse.alias.size != 0) { + extant_export->alias = export_parse.alias; + } + + report:; + if (is_ambiguous) { + lnk_error_with_loc(LNK_Error_IllExport, export_parse.obj_path, export_parse.lib_path, "ambiguous symbol export %S", export_parse.name); + } + } } } break; @@ -1485,6 +1522,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam str8_list_concat_in_place(&config->natvis_list, &natvis_list); } break; + case LNK_CmdSwitch_DisallowLib: case LNK_CmdSwitch_NoDefaultLib: { if (value_strings.node_count == 0) { config->no_default_libs = 1; @@ -1939,6 +1977,7 @@ lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line, LNK_CmdLine cmd config->pdb_hash_type_names = LNK_TypeNameHashMode_None; config->pdb_hash_type_name_length = 8; config->data_dir_count = PE_DataDirectoryIndex_COUNT; + config->export_ht = hash_table_init(scratch.arena, max_U16/2); // process command line switches for (LNK_CmdOption *cmd = cmd_line.first_option; cmd != 0; cmd = cmd->next) { diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index a3d806f1..812acd4e 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -359,6 +359,7 @@ typedef struct LNK_Config U64 pdb_hash_type_name_length; PE_ExportParseList export_symbol_list; String8List input_list[LNK_Input_Count]; + String8List input_obj_lib_list; String8List input_default_lib_list; String8List disallow_lib_list; String8List delay_load_dll_list; @@ -390,6 +391,7 @@ typedef struct LNK_Config String8 temp_rad_chunk_map_name; String8List remove_sections; LNK_IO_Flags io_flags; + HashTable *export_ht; } LNK_Config; // --- MSVC Error Codes -------------------------------------------------------- From 7403a8ea3b5e65a8ef69fe74a3555affbf2c3eab Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Tue, 29 Jul 2025 14:19:35 -0700 Subject: [PATCH 346/372] demon/linux: x64 register reading --- src/demon/linux/demon_core_linux.c | 234 ++++++++++++++++++++++++++++- src/demon/linux/demon_core_linux.h | 182 ++++++++++++++++++++++ src/os/core/linux/os_core_linux.c | 4 +- src/regs/generated/regs.meta.c | 4 +- src/regs/generated/regs.meta.h | 4 +- src/regs/regs.mdesk | 4 +- 6 files changed, 419 insertions(+), 13 deletions(-) diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c index 9d027151..6b6b7d2a 100644 --- a/src/demon/linux/demon_core_linux.c +++ b/src/demon/linux/demon_core_linux.c @@ -532,6 +532,174 @@ dmn_lnx_thread_from_pid(pid_t pid) return result; } +internal B32 +dmn_lnx_thread_read_reg_block(DMN_LNX_Entity *thread, void *reg_block) +{ + B32 result = 0; + { + REGS_RegBlockX64 *dst = (REGS_RegBlockX64 *)reg_block; + pid_t tid = (pid_t)thread->id; + + //- rjf: read GPR + B32 got_gpr = 0; + { + DMN_LNX_UserX64 ctx = {0}; + struct iovec iov_gpr = {0}; + iov_gpr.iov_len = sizeof(ctx); + iov_gpr.iov_base = &ctx; + if(ptrace(PTRACE_GETREGSET, tid, (void*)NT_PRSTATUS, &iov_gpr) != -1) + { + got_gpr = 1; + DMN_LNX_UserRegsX64 *src = &ctx.regs; + dst->rax.u64 = src->rax; + dst->rcx.u64 = src->rcx; + dst->rdx.u64 = src->rdx; + dst->rbx.u64 = src->rbx; + dst->rsp.u64 = src->rsp; + dst->rbp.u64 = src->rbp; + dst->rsi.u64 = src->rsi; + dst->rdi.u64 = src->rdi; + dst->r8.u64 = src->r8; + dst->r9.u64 = src->r9; + dst->r10.u64 = src->r10; + dst->r11.u64 = src->r11; + dst->r12.u64 = src->r12; + dst->r13.u64 = src->r13; + dst->r14.u64 = src->r14; + dst->r15.u64 = src->r15; + dst->cs.u16 = src->cs; + dst->ds.u16 = src->ds; + dst->es.u16 = src->es; + dst->fs.u16 = src->fs; + dst->gs.u16 = src->gs; + dst->ss.u16 = src->ss; + dst->fsbase.u64 = src->fsbase; + dst->gsbase.u64 = src->gsbase; + dst->rip.u64 = src->rip; + dst->rflags.u64 = src->rflags; + } + } + + //- rjf: read FPR + B32 got_fpr = 0; + if(got_gpr) + { + Temp scratch = scratch_begin(0, 0); + DMN_LNX_XSave *xsave = 0; + DMN_LNX_XSaveLegacy *xsave_legacy = 0; + + // rjf: try xsave + if(!xsave_legacy) + { + U8 xsave_buffer[KB(4)]; + struct iovec iov_xsave = {0}; + iov_xsave.iov_len = sizeof(xsave_buffer); + iov_xsave.iov_base = xsave_buffer; + if(ptrace(PTRACE_GETREGSET, tid, (void*)NT_X86_XSTATE, &iov_xsave) != -1) + { + xsave = push_array_no_zero(scratch.arena, DMN_LNX_XSave, 1); + MemoryCopy(xsave, xsave_buffer, sizeof(*xsave)); + xsave_legacy = &xsave->legacy; + } + } + + // rjf: try fxsave + if(!xsave_legacy) + { + DMN_LNX_XSaveLegacy fxsave = {0}; + struct iovec iov_fxsave = {0}; + iov_fxsave.iov_len = sizeof(fxsave); + iov_fxsave.iov_base = &fxsave; + if(ptrace(PTRACE_GETREGSET, tid, (void *)NT_FPREGSET, &iov_fxsave) != -1) + { + xsave_legacy = push_array_no_zero(scratch.arena, DMN_LNX_XSaveLegacy, 1); + MemoryCopy(xsave_legacy, &fxsave, sizeof(*xsave_legacy)); + } + } + + // rjf: fill from xsave legacy + if(xsave_legacy) + { + DMN_LNX_XSaveLegacy *src = xsave_legacy; + dst->fcw.u16 = src->fcw; + dst->fsw.u16 = src->fsw; + dst->ftw.u16 = src->ftw; // TODO(rjf): old: fix tag word (?) + dst->fop.u16 = src->fop; + dst->fip.u64 = src->b64.fip; + // TODO(rjf): these 16-bit registers do not belong in x64 + dst->fcs.u16 = 0; + dst->fdp.u64 = src->b64.fdp; + dst->fds.u16 = 0; + dst->mxcsr.u32 = src->mxcsr; + dst->mxcsr_mask.u32 = src->mxcsr_mask; + { + U8 *float_s = src->st_space.u8; + REGS_Reg80 *float_d = &dst->st0; + for(U32 n = 0; n < 8; n += 1, float_s += 16, float_d += 1) + { + MemoryCopy(float_d, float_s, sizeof(*float_d)); + } + } + { + U8 *xmm_s = src->xmm_space.u8; + REGS_Reg512 *xmm_d = &dst->zmm0; + for(U32 n = 0; n < 16; n += 1, xmm_s += 16, xmm_d += 1) + { + MemoryCopy(xmm_d, xmm_s, 16); + } + } + } + + // rjf: fill from ymm registers + // TODO(rjf): this is a lie; ymm can technically move around. study & fix. + if(xsave) + { + B32 has_ymm_registers = ((xsave->header.xstate_bv & 4) != 0); + if(has_ymm_registers) + { + U8 *ymm_s = (U8 *)xsave->ymmh; + REGS_Reg512 *ymm_d = &dst->zmm0; + for(U32 n = 0; n < 16; n += 1, ymm_s += 16, ymm_d += 1) + { + MemoryCopy(((U8*)ymm_d) + 16, ymm_s, 16); + } + } + } + + got_fpr = (xsave || xsave_legacy); + scratch_end(scratch); + } + + //- rjf: read debug registers + B32 got_debug = 0; + if(got_fpr) + { + got_debug = 1; + REGS_Reg64 *dr_d = &dst->dr0; + for(U32 i = 0; i < 8; i += 1, dr_d += 1) + { + if(i != 4 && i != 5) + { + U64 offset = OffsetOf(DMN_LNX_UserX64, u_debugreg[i]); + errno = 0; + int peek_result = ptrace(PTRACE_PEEKUSER, tid, PtrFromInt(offset), 0); + if(errno == 0) + { + dr_d->u64 = (U64)peek_result; + } + else + { + got_debug = 0; + } + } + } + } + + result = got_debug; + } + return result; +} + //////////////////////////////// //~ rjf: @dmn_os_hooks Main Layer Initialization (Implemented Per-OS) @@ -828,6 +996,11 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) { Temp scratch = scratch_begin(&arena, 1); + //////////////////////////// + //- rjf: unpack controls + // + DMN_LNX_Entity *single_step_thread = dmn_lnx_entity_from_handle(ctrls->single_step_thread); + //////////////////////////// //- rjf: push any deferred events // @@ -853,12 +1026,17 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) e->error_kind = DMN_ErrorKind_NotAttached; } + //////////////////////////// + //- rjf: determine if we need to wait for new events + // + B32 need_wait_on_events = (evts.count == 0); + //////////////////////////// //- rjf: gather all threads which we should run // DMN_LNX_EntityNode *first_run_thread = 0; DMN_LNX_EntityNode *last_run_thread = 0; - ProfScope("gather all threads which we should run") + if(need_wait_on_events) ProfScope("gather all threads which we should run") { //- rjf: scan all processes for(DMN_LNX_Entity *process = dmn_lnx_state->entities_base->first; @@ -956,7 +1134,7 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) //- rjf: loop: wait for next stop, produce debug events // pid_t final_wait_pid = 0; - for(B32 done = 0; !done;) + if(need_wait_on_events) for(B32 done = 0; !done;) { //- rjf: wait for next event int status = 0; @@ -974,6 +1152,17 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) DMN_LNX_Entity *process = thread->parent; B32 thread_is_process_root = (thread->id == process->id); + //- rjf: unpack thread's registers + U64 rip = 0; + void *regs_block = 0; + if(thread != &dmn_lnx_nil_entity) + { + U64 regs_block_size = regs_block_size_from_arch(thread->arch); + regs_block = push_array(scratch.arena, U8, regs_block_size); + dmn_lnx_thread_read_reg_block(thread, regs_block); + rip = regs_rip_from_arch_block(thread->arch, regs_block); + } + //- rjf: WIFEXITED(status) -> thread exit B32 thread_exit = 0; U64 exit_code = 0; @@ -1003,11 +1192,40 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) } //- rjf: SIGTRAP:PTRACE_EVENT_FORK, or SIGTRAP:PTRACE_EVENT_VFORK - if(wifstopped && wstopsig == SIGTRAP && + B32 sigtrap_handled = 0; + if(!sigtrap_handled && wifstopped && wstopsig == SIGTRAP && (ptrace_event_code == PTRACE_EVENT_FORK || ptrace_event_code == PTRACE_EVENT_VFORK)) { - // TODO(rjf) + sigtrap_handled = 1; + } + + //- rjf: SIGTRAP + if(!sigtrap_handled && wifstopped && wstopsig == SIGTRAP) + { + // rjf: this is the single step thread => this is a single step completion + DMN_EventKind e_kind = DMN_EventKind_Trap; + if(thread == single_step_thread) + { + e_kind = DMN_EventKind_SingleStep; + } + + // rjf: this matches a specified trap => breakpoint + { + // TODO(rjf) + } + + // rjf: after breakpoint -> rollback + if(e_kind == DMN_EventKind_Breakpoint) + { + // TODO(rjf) + } + + // rjf: push event + DMN_Event *e = dmn_event_list_push(arena, &evts); + e->kind = e_kind; + e->process = dmn_lnx_handle_from_entity(process); + e->thread = dmn_lnx_handle_from_entity(thread); } //- rjf: WSTOPSIG(status) is SIGSTOP @@ -1243,7 +1461,13 @@ dmn_tls_root_vaddr_from_thread(DMN_Handle handle) internal B32 dmn_thread_read_reg_block(DMN_Handle handle, void *reg_block) { - return 0; + B32 result = 0; + DMN_AccessScope + { + DMN_LNX_Entity *thread = dmn_lnx_entity_from_handle(handle); + result = dmn_lnx_thread_read_reg_block(thread, reg_block); + } + return result; } internal B32 diff --git a/src/demon/linux/demon_core_linux.h b/src/demon/linux/demon_core_linux.h index 9a399d22..a1433116 100644 --- a/src/demon/linux/demon_core_linux.h +++ b/src/demon/linux/demon_core_linux.h @@ -4,20 +4,195 @@ #ifndef DEMON_CORE_LINUX_H #define DEMON_CORE_LINUX_H +//////////////////////////////// +//~ rjf: Includes + #include #include #include +#include #include #include #include #include +//////////////////////////////// +//~ rjf: ptrace options + #define DMN_LNX_PTRACE_OPTIONS (PTRACE_O_TRACEEXIT|\ PTRACE_O_EXITKILL|\ PTRACE_O_TRACEFORK|\ PTRACE_O_TRACEVFORK|\ PTRACE_O_TRACECLONE) +//////////////////////////////// +//~ rjf: Register Layouts +// +// These are defined in , but only for one architecture at a time + +#pragma pack(push, 1) + +typedef struct DMN_LNX_UserRegsX64 DMN_LNX_UserRegsX64; +struct DMN_LNX_UserRegsX64 +{ + U64 r15; + U64 r14; + U64 r13; + U64 r12; + U64 rbp; + U64 rbx; + U64 r11; + U64 r10; + U64 r9; + U64 r8; + U64 rax; + U64 rcx; + U64 rdx; + U64 rsi; + U64 rdi; + U64 orig_rax; + U64 rip; + U64 cs; + U64 rflags; + U64 rsp; + U64 ss; + U64 fsbase; + U64 gsbase; + U64 ds; + U64 es; + U64 fs; + U64 gs; +}; + +typedef struct DMN_LNX_XSaveLegacy DMN_LNX_XSaveLegacy; +struct DMN_LNX_XSaveLegacy +{ + U16 fcw; + U16 fsw; + U16 ftw; + U16 fop; + union + { + struct + { + U64 fip; + U64 fdp; + } b64; + struct + { + U32 fip; + U16 fcs, _pad0; + U32 fdp; + U16 fds, _pad1; + } b32; + }; + U32 mxcsr; + U32 mxcsr_mask; + U128 st_space; + U256 xmm_space; + U8 padding[96]; +}; + +typedef struct DMN_LNX_XSaveHeader DMN_LNX_XSaveHeader; +struct DMN_LNX_XSaveHeader +{ + U64 xstate_bv; + U64 xcomp_bv; + U8 reserved[48]; +}; + +// TODO(rjf): +// +// this one is hacked; ymmh is not gauranteed to be at a fixed location +// and there can be more after that. Requires CPUID to be totally compliant to the standard. +// See intel's manual on the xsave format for more info. +// +typedef struct DMN_LNX_XSave DMN_LNX_XSave; +struct DMN_LNX_XSave +{ + DMN_LNX_XSaveLegacy legacy; + DMN_LNX_XSaveHeader header; + U8 ymmh[256]; +}; + +typedef struct DMN_LNX_UserX64 DMN_LNX_UserX64; +struct DMN_LNX_UserX64 +{ + DMN_LNX_UserRegsX64 regs; + S32 u_fpvalid, _pad0; + DMN_LNX_XSaveLegacy i387; + U64 u_tsize, u_dsize, u_ssize, start_code, start_stack; + U64 signal; + S32 reserved, _pad1; + U64 u_ar0, u_fpstate; + U64 magic; + U8 u_comm[32]; + U64 u_debugreg[8]; +}; + +typedef struct DMN_LNX_UserRegsX86 DMN_LNX_UserRegsX86; +struct DMN_LNX_UserRegsX86 +{ + U32 ebx; + U32 ecx; + U32 edx; + U32 esi; + U32 edi; + U32 ebp; + U32 eax; + U32 ds; + U32 es; + U32 fs; + U32 gs; + U32 orig_eax; + U32 eip; + U32 cs; + U32 eflags; + U32 sp; + U32 ss; +}; + +// NOTE(rjf): (32-Bit Protected Mode Format) +typedef struct DMN_LNX_FSave DMN_LNX_FSave; +struct DMN_LNX_FSave +{ + // control registers + U16 fcw; + U16 _pad0; + U16 fsw; + U16 _pad1; + U16 ftw; + U16 _pad2; + U32 fip; + U16 fips; + U16 fop; + U32 fdp; + U16 fds; + U16 _pad3; + + // data registers + U8 st[80]; +}; + +typedef struct DMN_LNX_UserX86 DMN_LNX_UserX86; +struct DMN_LNX_UserX86 +{ + DMN_LNX_UserRegsX86 regs; + S32 u_fpvalid; + DMN_LNX_FSave i387; + U32 u_tsize, u_dsize, u_ssize, start_code, start_stack; + S32 signal, reserved; + U32 u_ar0, u_fpstate; + U32 magic; + U8 u_comm[32]; + U32 u_debugreg[8]; +}; + +#pragma pack(pop) + +//////////////////////////////// +//~ rjf: Process Info Extraction Types + typedef struct DMN_LNX_ProcessAux DMN_LNX_ProcessAux; struct DMN_LNX_ProcessAux { @@ -57,6 +232,9 @@ struct DMN_LNX_ModuleInfoList U64 count; }; +//////////////////////////////// +//~ rjf: Entity Types + typedef enum DMN_LNX_EntityKind { DMN_LNX_EntityKind_Null, @@ -91,6 +269,9 @@ struct DMN_LNX_EntityNode DMN_LNX_Entity *v; }; +//////////////////////////////// +//~ rjf: Main State Bundle + typedef struct DMN_LNX_State DMN_LNX_State; struct DMN_LNX_State { @@ -149,5 +330,6 @@ internal void dmn_lnx_entity_release(DMN_LNX_Entity *entity); internal DMN_Handle dmn_lnx_handle_from_entity(DMN_LNX_Entity *entity); internal DMN_LNX_Entity *dmn_lnx_entity_from_handle(DMN_Handle handle); internal DMN_LNX_Entity *dmn_lnx_thread_from_pid(pid_t pid); +internal B32 dmn_lnx_thread_read_reg_block(DMN_LNX_Entity *thread, void *reg_block); #endif // DEMON_CORE_LINUX_H diff --git a/src/os/core/linux/os_core_linux.c b/src/os/core/linux/os_core_linux.c index be10e519..d8ded967 100644 --- a/src/os/core/linux/os_core_linux.c +++ b/src/os/core/linux/os_core_linux.c @@ -1012,8 +1012,8 @@ os_condition_variable_wait_rw_r(OS_Handle cv, OS_Handle mutex_rw, U64 endt_us) endt_timespec.tv_sec = endt_us/Million(1); endt_timespec.tv_nsec = Thousand(1) * (endt_us - (endt_us/Million(1))*Million(1)); B32 result = 0; - pthread_rwlock_unlock(&rw_mutex_entity->rwmutex_handle); pthread_mutex_lock(&cv_entity->cv.rwlock_mutex_handle); + pthread_rwlock_unlock(&rw_mutex_entity->rwmutex_handle); for(;;) { int wait_result = pthread_cond_timedwait(&cv_entity->cv.cond_handle, &cv_entity->cv.rwlock_mutex_handle, &endt_timespec); @@ -1048,8 +1048,8 @@ os_condition_variable_wait_rw_w(OS_Handle cv, OS_Handle mutex_rw, U64 endt_us) endt_timespec.tv_sec = endt_us/Million(1); endt_timespec.tv_nsec = Thousand(1) * (endt_us - (endt_us/Million(1))*Million(1)); B32 result = 0; - pthread_rwlock_unlock(&rw_mutex_entity->rwmutex_handle); pthread_mutex_lock(&cv_entity->cv.rwlock_mutex_handle); + pthread_rwlock_unlock(&rw_mutex_entity->rwmutex_handle); for(;;) { int wait_result = pthread_cond_timedwait(&cv_entity->cv.cond_handle, &cv_entity->cv.rwlock_mutex_handle, &endt_timespec); diff --git a/src/regs/generated/regs.meta.c b/src/regs/generated/regs.meta.c index 0805b542..61b2632f 100644 --- a/src/regs/generated/regs.meta.c +++ b/src/regs/generated/regs.meta.c @@ -566,8 +566,8 @@ REGS_Rng regs_g_reg_code_x64_rng_table[101] = {(U16)OffsetOf(REGS_RegBlockX64, fop), 2}, {(U16)OffsetOf(REGS_RegBlockX64, fcs), 2}, {(U16)OffsetOf(REGS_RegBlockX64, fds), 2}, -{(U16)OffsetOf(REGS_RegBlockX64, fip), 4}, -{(U16)OffsetOf(REGS_RegBlockX64, fdp), 4}, +{(U16)OffsetOf(REGS_RegBlockX64, fip), 8}, +{(U16)OffsetOf(REGS_RegBlockX64, fdp), 8}, {(U16)OffsetOf(REGS_RegBlockX64, mxcsr), 4}, {(U16)OffsetOf(REGS_RegBlockX64, mxcsr_mask), 4}, {(U16)OffsetOf(REGS_RegBlockX64, ss), 2}, diff --git a/src/regs/generated/regs.meta.h b/src/regs/generated/regs.meta.h index 0f6f75a3..4adc08d4 100644 --- a/src/regs/generated/regs.meta.h +++ b/src/regs/generated/regs.meta.h @@ -373,8 +373,8 @@ REGS_Reg16 ftw; REGS_Reg16 fop; REGS_Reg16 fcs; REGS_Reg16 fds; -REGS_Reg32 fip; -REGS_Reg32 fdp; +REGS_Reg64 fip; +REGS_Reg64 fdp; REGS_Reg32 mxcsr; REGS_Reg32 mxcsr_mask; REGS_Reg16 ss; diff --git a/src/regs/regs.mdesk b/src/regs/regs.mdesk index 2d7bc1ba..56076b33 100644 --- a/src/regs/regs.mdesk +++ b/src/regs/regs.mdesk @@ -57,8 +57,8 @@ REGS_RegTableX64: {fop 16 Normal} {fcs 16 Normal} {fds 16 Normal} - {fip 32 Normal} - {fdp 32 Normal} + {fip 64 Normal} + {fdp 64 Normal} {mxcsr 32 Normal} {mxcsr_mask 32 Normal} {ss 16 Normal} From 9ef87e9d56da68187fca1277b7339ee74f1b19db Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Tue, 29 Jul 2025 14:22:23 -0700 Subject: [PATCH 347/372] fix to match 32 -> 64 change in demon/win32 --- src/demon/win32/demon_core_win32.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/demon/win32/demon_core_win32.c b/src/demon/win32/demon_core_win32.c index 6a157f18..2998bc41 100644 --- a/src/demon/win32/demon_core_win32.c +++ b/src/demon/win32/demon_core_win32.c @@ -768,8 +768,8 @@ dmn_w32_thread_read_reg_block(Arch arch, HANDLE thread, void *reg_block) dst->fop.u16 = xsave->ErrorOpcode; dst->fcs.u16 = xsave->ErrorSelector; dst->fds.u16 = xsave->DataSelector; - dst->fip.u32 = xsave->ErrorOffset; - dst->fdp.u32 = xsave->DataOffset; + dst->fip.u64 = xsave->ErrorOffset; + dst->fdp.u64 = xsave->DataOffset; dst->mxcsr.u32 = xsave->MxCsr; dst->mxcsr_mask.u32 = xsave->MxCsr_Mask; { @@ -1037,8 +1037,8 @@ dmn_w32_thread_write_reg_block(Arch arch, HANDLE thread, void *reg_block) fxsave->ErrorOpcode = src->fop.u16; fxsave->ErrorSelector = src->fcs.u16; fxsave->DataSelector = src->fds.u16; - fxsave->ErrorOffset = src->fip.u32; - fxsave->DataOffset = src->fdp.u32; + fxsave->ErrorOffset = src->fip.u64; + fxsave->DataOffset = src->fdp.u64; { M128A *float_d = fxsave->FloatRegisters; REGS_Reg80 *float_s = &src->fpr0; From ad735dab5ebff52d59e229e36fabfd984b37dadc Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 31 Jul 2025 13:15:37 -0700 Subject: [PATCH 348/372] pull raddbg byte attachment aside into standalone section - this guarantees byte placement, does not rely on ordering, and does not require symbols --- src/ctrl/ctrl_core.c | 12 +++++++++--- src/lib_raddbg_markup/raddbg_markup.h | 5 +++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index bbebf606..345b8601 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -4026,6 +4026,7 @@ ctrl_thread__module_open(CTRL_Handle process, CTRL_Handle module, Rng1U64 vaddr_ String8 rdi_dbg_path = str8_zero(); String8 raddbg_data = str8_zero(); Rng1U64 raddbg_section_voff_range = r1u64(0, 0); + Rng1U64 raddbg_is_attached_section_voff_range = r1u64(0, 0); ProfScope("unpack relevant PE info") { B32 is_valid = 1; @@ -4224,6 +4225,11 @@ ctrl_thread__module_open(CTRL_Handle process, CTRL_Handle module, Rng1U64 vaddr_ raddbg_section_voff_range.min = sec[idx].voff; raddbg_section_voff_range.max = sec[idx].voff + sec[idx].vsize; } + else if(str8_match(section_name, str8_lit(".rdbgia"), 0)) + { + raddbg_is_attached_section_voff_range.min = sec[idx].voff; + raddbg_is_attached_section_voff_range.max = sec[idx].voff + sec[idx].vsize; + } } raddbg_data.size = dim_1u64(raddbg_section_voff_range); raddbg_data.str = push_array(arena, U8, raddbg_data.size); @@ -4232,11 +4238,11 @@ ctrl_thread__module_open(CTRL_Handle process, CTRL_Handle module, Rng1U64 vaddr_ scratch_end(scratch); } - // rjf: if we have a raddbg section, mark the first byte as 1, to signify attachment - if(raddbg_section_voff_range.max != raddbg_section_voff_range.min) + // rjf: if we have a "raddbg is attached" section, mark the first byte as 1, to signify attachment + if(raddbg_is_attached_section_voff_range.max != raddbg_is_attached_section_voff_range.min) { U8 new_value = 1; - dmn_process_write_struct(process.dmn_handle, vaddr_range.min + raddbg_section_voff_range.min, &new_value); + dmn_process_write_struct(process.dmn_handle, vaddr_range.min + raddbg_is_attached_section_voff_range.min, &new_value); } } } diff --git a/src/lib_raddbg_markup/raddbg_markup.h b/src/lib_raddbg_markup/raddbg_markup.h index 3f975ca2..97112df0 100644 --- a/src/lib_raddbg_markup/raddbg_markup.h +++ b/src/lib_raddbg_markup/raddbg_markup.h @@ -98,8 +98,9 @@ void raddbg_annotate_vaddr_range__impl(void *ptr, unsigned __int64 size, char *f #include #endif -//- first byte of exe data section -> is attached -raddbg_exe_data unsigned char raddbg_is_attached_byte_marker[1] = {0}; +//- special section gets "is attached" byte +#pragma section(".rdbgia", read, write) +__declspec(allocate(".rdbgia")) unsigned char raddbg_is_attached_byte_marker[1] = {0}; //- types From 1a19bf96634aa8c586357bbc8174e5013083006b Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 31 Jul 2025 14:09:42 -0700 Subject: [PATCH 349/372] render/d3d11: adjust allowed frame 'latency' (frames-in-queue) based on number of active windows, to not unnecessarily block if we have two windows to build frames for; demon/linux: sketch out register writing path, ensure reg read/write paths have slots for other architectures --- src/demon/linux/demon_core_linux.c | 353 ++++++++++++++++------------- src/demon/linux/demon_core_linux.h | 1 + src/render/d3d11/render_d3d11.c | 4 + src/render/d3d11/render_d3d11.h | 1 + 4 files changed, 203 insertions(+), 156 deletions(-) diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c index 6b6b7d2a..dd833704 100644 --- a/src/demon/linux/demon_core_linux.c +++ b/src/demon/linux/demon_core_linux.c @@ -536,166 +536,200 @@ internal B32 dmn_lnx_thread_read_reg_block(DMN_LNX_Entity *thread, void *reg_block) { B32 result = 0; + switch(thread->arch) { - REGS_RegBlockX64 *dst = (REGS_RegBlockX64 *)reg_block; - pid_t tid = (pid_t)thread->id; + case Arch_Null: + case Arch_COUNT:{}break; + case Arch_x86: + case Arch_arm64: + case Arch_arm32: + {NotImplemented;}break; - //- rjf: read GPR - B32 got_gpr = 0; + //- rjf: [x64] + case Arch_x64: { - DMN_LNX_UserX64 ctx = {0}; - struct iovec iov_gpr = {0}; - iov_gpr.iov_len = sizeof(ctx); - iov_gpr.iov_base = &ctx; - if(ptrace(PTRACE_GETREGSET, tid, (void*)NT_PRSTATUS, &iov_gpr) != -1) + REGS_RegBlockX64 *dst = (REGS_RegBlockX64 *)reg_block; + pid_t tid = (pid_t)thread->id; + + //- rjf: read GPR + B32 got_gpr = 0; { - got_gpr = 1; - DMN_LNX_UserRegsX64 *src = &ctx.regs; - dst->rax.u64 = src->rax; - dst->rcx.u64 = src->rcx; - dst->rdx.u64 = src->rdx; - dst->rbx.u64 = src->rbx; - dst->rsp.u64 = src->rsp; - dst->rbp.u64 = src->rbp; - dst->rsi.u64 = src->rsi; - dst->rdi.u64 = src->rdi; - dst->r8.u64 = src->r8; - dst->r9.u64 = src->r9; - dst->r10.u64 = src->r10; - dst->r11.u64 = src->r11; - dst->r12.u64 = src->r12; - dst->r13.u64 = src->r13; - dst->r14.u64 = src->r14; - dst->r15.u64 = src->r15; - dst->cs.u16 = src->cs; - dst->ds.u16 = src->ds; - dst->es.u16 = src->es; - dst->fs.u16 = src->fs; - dst->gs.u16 = src->gs; - dst->ss.u16 = src->ss; - dst->fsbase.u64 = src->fsbase; - dst->gsbase.u64 = src->gsbase; - dst->rip.u64 = src->rip; - dst->rflags.u64 = src->rflags; + DMN_LNX_UserX64 ctx = {0}; + struct iovec iov_gpr = {0}; + iov_gpr.iov_len = sizeof(ctx); + iov_gpr.iov_base = &ctx; + if(ptrace(PTRACE_GETREGSET, tid, (void*)NT_PRSTATUS, &iov_gpr) != -1) + { + got_gpr = 1; + DMN_LNX_UserRegsX64 *src = &ctx.regs; + dst->rax.u64 = src->rax; + dst->rcx.u64 = src->rcx; + dst->rdx.u64 = src->rdx; + dst->rbx.u64 = src->rbx; + dst->rsp.u64 = src->rsp; + dst->rbp.u64 = src->rbp; + dst->rsi.u64 = src->rsi; + dst->rdi.u64 = src->rdi; + dst->r8.u64 = src->r8; + dst->r9.u64 = src->r9; + dst->r10.u64 = src->r10; + dst->r11.u64 = src->r11; + dst->r12.u64 = src->r12; + dst->r13.u64 = src->r13; + dst->r14.u64 = src->r14; + dst->r15.u64 = src->r15; + dst->cs.u16 = src->cs; + dst->ds.u16 = src->ds; + dst->es.u16 = src->es; + dst->fs.u16 = src->fs; + dst->gs.u16 = src->gs; + dst->ss.u16 = src->ss; + dst->fsbase.u64 = src->fsbase; + dst->gsbase.u64 = src->gsbase; + dst->rip.u64 = src->rip; + dst->rflags.u64 = src->rflags; + } } - } + + //- rjf: read FPR + B32 got_fpr = 0; + if(got_gpr) + { + Temp scratch = scratch_begin(0, 0); + DMN_LNX_XSave *xsave = 0; + DMN_LNX_XSaveLegacy *xsave_legacy = 0; + + // rjf: try xsave + if(!xsave_legacy) + { + U8 xsave_buffer[KB(4)]; + struct iovec iov_xsave = {0}; + iov_xsave.iov_len = sizeof(xsave_buffer); + iov_xsave.iov_base = xsave_buffer; + if(ptrace(PTRACE_GETREGSET, tid, (void*)NT_X86_XSTATE, &iov_xsave) != -1) + { + xsave = push_array_no_zero(scratch.arena, DMN_LNX_XSave, 1); + MemoryCopy(xsave, xsave_buffer, sizeof(*xsave)); + xsave_legacy = &xsave->legacy; + } + } + + // rjf: try fxsave + if(!xsave_legacy) + { + DMN_LNX_XSaveLegacy fxsave = {0}; + struct iovec iov_fxsave = {0}; + iov_fxsave.iov_len = sizeof(fxsave); + iov_fxsave.iov_base = &fxsave; + if(ptrace(PTRACE_GETREGSET, tid, (void *)NT_FPREGSET, &iov_fxsave) != -1) + { + xsave_legacy = push_array_no_zero(scratch.arena, DMN_LNX_XSaveLegacy, 1); + MemoryCopy(xsave_legacy, &fxsave, sizeof(*xsave_legacy)); + } + } + + // rjf: fill from xsave legacy + if(xsave_legacy) + { + DMN_LNX_XSaveLegacy *src = xsave_legacy; + dst->fcw.u16 = src->fcw; + dst->fsw.u16 = src->fsw; + dst->ftw.u16 = src->ftw; // TODO(rjf): old: fix tag word (?) + dst->fop.u16 = src->fop; + dst->fip.u64 = src->b64.fip; + // TODO(rjf): these 16-bit registers do not belong in x64 + dst->fcs.u16 = 0; + dst->fdp.u64 = src->b64.fdp; + dst->fds.u16 = 0; + dst->mxcsr.u32 = src->mxcsr; + dst->mxcsr_mask.u32 = src->mxcsr_mask; + { + U8 *float_s = src->st_space.u8; + REGS_Reg80 *float_d = &dst->st0; + for(U32 n = 0; n < 8; n += 1, float_s += 16, float_d += 1) + { + MemoryCopy(float_d, float_s, sizeof(*float_d)); + } + } + { + U8 *xmm_s = src->xmm_space.u8; + REGS_Reg512 *xmm_d = &dst->zmm0; + for(U32 n = 0; n < 16; n += 1, xmm_s += 16, xmm_d += 1) + { + MemoryCopy(xmm_d, xmm_s, 16); + } + } + } + + // rjf: fill from ymm registers + // TODO(rjf): this is a lie; ymm can technically move around. study & fix. + if(xsave) + { + B32 has_ymm_registers = ((xsave->header.xstate_bv & 4) != 0); + if(has_ymm_registers) + { + U8 *ymm_s = (U8 *)xsave->ymmh; + REGS_Reg512 *ymm_d = &dst->zmm0; + for(U32 n = 0; n < 16; n += 1, ymm_s += 16, ymm_d += 1) + { + MemoryCopy(((U8*)ymm_d) + 16, ymm_s, 16); + } + } + } + + got_fpr = (xsave || xsave_legacy); + scratch_end(scratch); + } + + //- rjf: read debug registers + B32 got_debug = 0; + if(got_fpr) + { + got_debug = 1; + REGS_Reg64 *dr_d = &dst->dr0; + for(U32 i = 0; i < 8; i += 1, dr_d += 1) + { + if(i != 4 && i != 5) + { + U64 offset = OffsetOf(DMN_LNX_UserX64, u_debugreg[i]); + errno = 0; + int peek_result = ptrace(PTRACE_PEEKUSER, tid, PtrFromInt(offset), 0); + if(errno == 0) + { + dr_d->u64 = (U64)peek_result; + } + else + { + got_debug = 0; + } + } + } + } + + result = got_debug; + }break; + } + return result; +} + +internal B32 +dmn_lnx_thread_write_reg_block(DMN_LNX_Entity *thread, void *reg_block) +{ + B32 result = 0; + switch(thread->arch) + { + case Arch_Null: + case Arch_COUNT:{}break; + case Arch_x86: + case Arch_arm64: + case Arch_arm32: + {NotImplemented;}break; - //- rjf: read FPR - B32 got_fpr = 0; - if(got_gpr) + //- rjf: [x64] + case Arch_x64: { - Temp scratch = scratch_begin(0, 0); - DMN_LNX_XSave *xsave = 0; - DMN_LNX_XSaveLegacy *xsave_legacy = 0; - // rjf: try xsave - if(!xsave_legacy) - { - U8 xsave_buffer[KB(4)]; - struct iovec iov_xsave = {0}; - iov_xsave.iov_len = sizeof(xsave_buffer); - iov_xsave.iov_base = xsave_buffer; - if(ptrace(PTRACE_GETREGSET, tid, (void*)NT_X86_XSTATE, &iov_xsave) != -1) - { - xsave = push_array_no_zero(scratch.arena, DMN_LNX_XSave, 1); - MemoryCopy(xsave, xsave_buffer, sizeof(*xsave)); - xsave_legacy = &xsave->legacy; - } - } - - // rjf: try fxsave - if(!xsave_legacy) - { - DMN_LNX_XSaveLegacy fxsave = {0}; - struct iovec iov_fxsave = {0}; - iov_fxsave.iov_len = sizeof(fxsave); - iov_fxsave.iov_base = &fxsave; - if(ptrace(PTRACE_GETREGSET, tid, (void *)NT_FPREGSET, &iov_fxsave) != -1) - { - xsave_legacy = push_array_no_zero(scratch.arena, DMN_LNX_XSaveLegacy, 1); - MemoryCopy(xsave_legacy, &fxsave, sizeof(*xsave_legacy)); - } - } - - // rjf: fill from xsave legacy - if(xsave_legacy) - { - DMN_LNX_XSaveLegacy *src = xsave_legacy; - dst->fcw.u16 = src->fcw; - dst->fsw.u16 = src->fsw; - dst->ftw.u16 = src->ftw; // TODO(rjf): old: fix tag word (?) - dst->fop.u16 = src->fop; - dst->fip.u64 = src->b64.fip; - // TODO(rjf): these 16-bit registers do not belong in x64 - dst->fcs.u16 = 0; - dst->fdp.u64 = src->b64.fdp; - dst->fds.u16 = 0; - dst->mxcsr.u32 = src->mxcsr; - dst->mxcsr_mask.u32 = src->mxcsr_mask; - { - U8 *float_s = src->st_space.u8; - REGS_Reg80 *float_d = &dst->st0; - for(U32 n = 0; n < 8; n += 1, float_s += 16, float_d += 1) - { - MemoryCopy(float_d, float_s, sizeof(*float_d)); - } - } - { - U8 *xmm_s = src->xmm_space.u8; - REGS_Reg512 *xmm_d = &dst->zmm0; - for(U32 n = 0; n < 16; n += 1, xmm_s += 16, xmm_d += 1) - { - MemoryCopy(xmm_d, xmm_s, 16); - } - } - } - - // rjf: fill from ymm registers - // TODO(rjf): this is a lie; ymm can technically move around. study & fix. - if(xsave) - { - B32 has_ymm_registers = ((xsave->header.xstate_bv & 4) != 0); - if(has_ymm_registers) - { - U8 *ymm_s = (U8 *)xsave->ymmh; - REGS_Reg512 *ymm_d = &dst->zmm0; - for(U32 n = 0; n < 16; n += 1, ymm_s += 16, ymm_d += 1) - { - MemoryCopy(((U8*)ymm_d) + 16, ymm_s, 16); - } - } - } - - got_fpr = (xsave || xsave_legacy); - scratch_end(scratch); - } - - //- rjf: read debug registers - B32 got_debug = 0; - if(got_fpr) - { - got_debug = 1; - REGS_Reg64 *dr_d = &dst->dr0; - for(U32 i = 0; i < 8; i += 1, dr_d += 1) - { - if(i != 4 && i != 5) - { - U64 offset = OffsetOf(DMN_LNX_UserX64, u_debugreg[i]); - errno = 0; - int peek_result = ptrace(PTRACE_PEEKUSER, tid, PtrFromInt(offset), 0); - if(errno == 0) - { - dr_d->u64 = (U64)peek_result; - } - else - { - got_debug = 0; - } - } - } - } - - result = got_debug; + }break; } return result; } @@ -1223,9 +1257,10 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) // rjf: push event DMN_Event *e = dmn_event_list_push(arena, &evts); - e->kind = e_kind; - e->process = dmn_lnx_handle_from_entity(process); - e->thread = dmn_lnx_handle_from_entity(thread); + e->kind = e_kind; + e->process = dmn_lnx_handle_from_entity(process); + e->thread = dmn_lnx_handle_from_entity(thread); + e->instruction_pointer = rip; } //- rjf: WSTOPSIG(status) is SIGSTOP @@ -1473,7 +1508,13 @@ dmn_thread_read_reg_block(DMN_Handle handle, void *reg_block) internal B32 dmn_thread_write_reg_block(DMN_Handle handle, void *reg_block) { - return 0; + B32 result = 0; + DMN_AccessScope + { + DMN_LNX_Entity *thread = dmn_lnx_entity_from_handle(handle); + result = dmn_lnx_thread_write_reg_block(thread, reg_block); + } + return result; } //- rjf: system process listing diff --git a/src/demon/linux/demon_core_linux.h b/src/demon/linux/demon_core_linux.h index a1433116..bfe31aef 100644 --- a/src/demon/linux/demon_core_linux.h +++ b/src/demon/linux/demon_core_linux.h @@ -331,5 +331,6 @@ internal DMN_Handle dmn_lnx_handle_from_entity(DMN_LNX_Entity *entity); internal DMN_LNX_Entity *dmn_lnx_entity_from_handle(DMN_Handle handle); internal DMN_LNX_Entity *dmn_lnx_thread_from_pid(pid_t pid); internal B32 dmn_lnx_thread_read_reg_block(DMN_LNX_Entity *thread, void *reg_block); +internal B32 dmn_lnx_thread_write_reg_block(DMN_LNX_Entity *thread, void *reg_block); #endif // DEMON_CORE_LINUX_H diff --git a/src/render/d3d11/render_d3d11.c b/src/render/d3d11/render_d3d11.c index e14650c3..4a4e979c 100644 --- a/src/render/d3d11/render_d3d11.c +++ b/src/render/d3d11/render_d3d11.c @@ -548,6 +548,8 @@ r_window_equip(OS_Handle handle) r_d3d11_state->device->lpVtbl->CreateRenderTargetView(r_d3d11_state->device, (ID3D11Resource *)window->framebuffer, &framebuffer_rtv_desc, &window->framebuffer_rtv); result = r_d3d11_handle_from_window(window); + r_d3d11_state->window_count += 1; + r_d3d11_state->dxgi_device->lpVtbl->SetMaximumFrameLatency(r_d3d11_state->dxgi_device, Clamp(1, r_d3d11_state->window_count, 16)); } ProfEnd(); return result; @@ -571,6 +573,8 @@ r_window_unequip(OS_Handle handle, R_Handle equip_handle) window->swapchain->lpVtbl->Release(window->swapchain); window->generation += 1; SLLStackPush(r_d3d11_state->first_free_window, window); + r_d3d11_state->window_count -= 1; + r_d3d11_state->dxgi_device->lpVtbl->SetMaximumFrameLatency(r_d3d11_state->dxgi_device, Clamp(1, r_d3d11_state->window_count, 16)); } ProfEnd(); } diff --git a/src/render/d3d11/render_d3d11.h b/src/render/d3d11/render_d3d11.h index 0344ff74..5ad8934b 100644 --- a/src/render/d3d11/render_d3d11.h +++ b/src/render/d3d11/render_d3d11.h @@ -129,6 +129,7 @@ struct R_D3D11_State { // rjf: state Arena *arena; + U64 window_count; R_D3D11_Window *first_free_window; R_D3D11_Tex2D *first_free_tex2d; R_D3D11_Buffer *first_free_buffer; From 7c99e799818442c0ff9ee9c71f4394492a65c2c7 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 31 Jul 2025 14:54:28 -0700 Subject: [PATCH 350/372] demon/linux: first pass port at x64 register writing --- src/demon/linux/demon_core_linux.c | 130 +++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c index dd833704..8047cf76 100644 --- a/src/demon/linux/demon_core_linux.c +++ b/src/demon/linux/demon_core_linux.c @@ -545,7 +545,9 @@ dmn_lnx_thread_read_reg_block(DMN_LNX_Entity *thread, void *reg_block) case Arch_arm32: {NotImplemented;}break; + //////////////////////////// //- rjf: [x64] + // case Arch_x64: { REGS_RegBlockX64 *dst = (REGS_RegBlockX64 *)reg_block; @@ -725,10 +727,138 @@ dmn_lnx_thread_write_reg_block(DMN_LNX_Entity *thread, void *reg_block) case Arch_arm32: {NotImplemented;}break; + //////////////////////////// //- rjf: [x64] + // case Arch_x64: { + REGS_RegBlockX64 *src = (REGS_RegBlockX64 *)reg_block; + pid_t tid = (pid_t)thread->id; + //- rjf: write GPR + B32 did_gpr = 0; + { + DMN_LNX_UserX64 dst = {0}; + dst.regs.rax = src->rax.u64; + dst.regs.rcx = src->rcx.u64; + dst.regs.rdx = src->rdx.u64; + dst.regs.rbx = src->rbx.u64; + dst.regs.rsp = src->rsp.u64; + dst.regs.rbp = src->rbp.u64; + dst.regs.rsi = src->rsi.u64; + dst.regs.rdi = src->rdi.u64; + dst.regs.r8 = src->r8.u64; + dst.regs.r9 = src->r9.u64; + dst.regs.r10 = src->r10.u64; + dst.regs.r11 = src->r11.u64; + dst.regs.r12 = src->r12.u64; + dst.regs.r13 = src->r13.u64; + dst.regs.r14 = src->r14.u64; + dst.regs.r15 = src->r15.u64; + dst.regs.cs = src->cs.u16; + dst.regs.ds = src->ds.u16; + dst.regs.es = src->es.u16; + dst.regs.fs = src->fs.u16; + dst.regs.gs = src->gs.u16; + dst.regs.ss = src->ss.u16; + dst.regs.fsbase = src->fsbase.u64; + dst.regs.gsbase = src->gsbase.u64; + dst.regs.rip = src->rip.u64; + dst.regs.rflags = src->rflags.u64; + struct iovec iov_gpr = {0}; + iov_gpr.iov_base = &dst; + iov_gpr.iov_len = sizeof(dst); + int gpr_result = ptrace(PTRACE_SETREGSET, tid, (void*)NT_PRSTATUS, &iov_gpr); + did_gpr = (gpr_result != -1); + } + + //- rjf: write FPR + B32 did_fpr = 0; + if(did_gpr) + { + // rjf: fill xsave structure + DMN_LNX_XSave xsave = {0}; + { + xsave.legacy.fcw = src->fcw.u16; + xsave.legacy.fsw = src->fsw.u16; + xsave.legacy.ftw = src->ftw.u16; + xsave.legacy.fop = src->fop.u16; + xsave.legacy.b64.fip = src->fip.u64; + xsave.legacy.b64.fdp = src->fdp.u64; + xsave.legacy.mxcsr = src->mxcsr.u32; + xsave.legacy.mxcsr_mask = src->mxcsr_mask.u32; + { + U8 *float_d = xsave.legacy.st_space.u8; + REGS_Reg80 *float_s = &src->st0; + for(U32 n = 0; n < 8; n += 1, float_s += 1, float_d += 16) + { + MemoryCopy(float_d, float_s, sizeof(*float_s)); + } + } + { + U8 *xmm_d = xsave.legacy.xmm_space.u8; + REGS_Reg512 *xmm_s = &src->zmm0; + for(U32 n = 0; n < 16; n += 1, xmm_s += 1, xmm_d += 16) + { + MemoryCopy(xmm_d, xmm_s, 16); + } + } + xsave.header.xstate_bv = 7; + { + // TODO(rjf): this is a lie; ymm can technically move around. study & fix. + U8 *ymm_d = xsave.ymmh; + REGS_Reg512 *ymm_s = &src->zmm0; + for(U32 n = 0; n < 16; n += 1, ymm_s += 1, ymm_d += 16) + { + MemoryCopy(ymm_d, ((U8 *)ymm_s) + 16, 16); + } + } + } + + // rjf: try xsave + int xsave_result = -1; + { + struct iovec iov_xsave = {0}; + iov_xsave.iov_base = &xsave; + iov_xsave.iov_len = sizeof(xsave); + xsave_result = ptrace(PTRACE_SETREGSET, tid, (void*)NT_X86_XSTATE, &iov_xsave); + } + + // rjf: try fxsave + int fxsave_result = -1; + if(xsave_result == -1) + { + struct iovec iov_fxsave = {0}; + iov_fxsave.iov_base = &xsave.legacy; + iov_fxsave.iov_len = sizeof(xsave.legacy); + fxsave_result = ptrace(PTRACE_SETREGSET, tid, (void*)NT_FPREGSET, &iov_fxsave); + } + + // rjf: good finish requires xsave or fxsave + did_fpr = (xsave_result != -1 || fxsave_result != -1); + } + + //- rjf: write debug registers + B32 did_dbg = 0; + if(did_fpr) + { + did_dbg = 1; + REGS_Reg64 *dr_s = &src->dr0; + for(U32 i = 0; i < 8; i += 1, dr_s += 1) + { + if(i != 4 && i != 5) + { + U64 offset = OffsetOf(DMN_LNX_UserX64, u_debugreg[i]); + int poke_result = ptrace(PTRACE_POKEUSER, tid, PtrFromInt(offset), dr_s->u64); + if(poke_result == -1) + { + did_dbg = 0; + } + } + } + } + + result = (did_dbg); }break; } return result; From a323aec6d03620a9de09e5c9bc7ad6871a2a5cbf Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 31 Jul 2025 15:10:25 -0700 Subject: [PATCH 351/372] demon/linux: x64 trap writing --- src/demon/linux/demon_core_linux.c | 72 ++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c index 8047cf76..feb3c6c5 100644 --- a/src/demon/linux/demon_core_linux.c +++ b/src/demon/linux/demon_core_linux.c @@ -1195,6 +1195,29 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) // B32 need_wait_on_events = (evts.count == 0); + //////////////////////////// + //- rjf: write all traps into memory + // + U8 *trap_swap_bytes = push_array_no_zero(scratch.arena, U8, ctrls->traps.trap_count); + ProfScope("write all traps into memory") + { + U64 trap_idx = 0; + for(DMN_TrapChunkNode *n = ctrls->traps.first; n != 0; n = n->next) + { + for(U64 n_idx = 0; n_idx < n->count; n_idx += 1, trap_idx += 1) + { + DMN_Trap *trap = n->v+n_idx; + if(trap->flags == 0) + { + trap_swap_bytes[trap_idx] = 0xCC; + dmn_process_read(trap->process, r1u64(trap->vaddr, trap->vaddr+1), trap_swap_bytes+trap_idx); + U8 int3 = 0xCC; + dmn_process_write(trap->process, r1u64(trap->vaddr, trap->vaddr+1), &int3); + } + } + } + } + //////////////////////////// //- rjf: gather all threads which we should run // @@ -1306,6 +1329,32 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) final_wait_pid = wait_id; done = 1; + // NOTE(rjf): siginfo hint from old code: +#if 0 + { + switch(siginfo.si_code) + { + // SI_KERNEL (hit int3; 0xCC) + case 0x80: + { + // TODO(rjf): breakpoint event + }break; + // +----------------------"breakpoint" + // | + // v----------v----------------------"hardware breakpoint" + // TRAP_UNK, TRAP_HWBKPT, TRAP_BRKPT, TRAP_TRACE + case 0x5: case 0x4: case 0x1: case 0x2: + { + // TODO(rjf): breakpoint event (?) + }break; + case 0x3: case 0x0: + { + // TODO(rjf): do nothing(?) + }break; + } + } +#endif + //- rjf: unpack event int wifexited = WIFEXITED(status); int wifsignaled = WIFSIGNALED(status); @@ -1501,6 +1550,29 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) } } + ////////////////////////// + //- rjf: restore original memory at trap locations + // + ProfScope("restore original memory at trap locations") + { + U64 trap_idx = 0; + for(DMN_TrapChunkNode *n = ctrls->traps.first; n != 0; n = n->next) + { + for(U64 n_idx = 0; n_idx < n->count; n_idx += 1, trap_idx += 1) + { + DMN_Trap *trap = n->v+n_idx; + if(trap->flags == 0) + { + U8 og_byte = trap_swap_bytes[trap_idx]; + if(og_byte != 0xCC) + { + dmn_process_write(trap->process, r1u64(trap->vaddr, trap->vaddr+1), &og_byte); + } + } + } + } + } + scratch_end(scratch); } return evts; From 25963dc9b40a4c357c5240da156a57e6a0ee2cca Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 31 Jul 2025 17:33:58 -0700 Subject: [PATCH 352/372] demon/linux: correct main module address range formation; further progress on event processing --- src/demon/linux/demon_core_linux.c | 48 ++++++++++++++++++------------ src/demon/linux/demon_core_linux.h | 1 + 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c index feb3c6c5..13220220 100644 --- a/src/demon/linux/demon_core_linux.c +++ b/src/demon/linux/demon_core_linux.c @@ -171,6 +171,7 @@ dmn_lnx_arch_from_pid(pid_t pid) // rjf: determine arch from elf machine kind result = arch_from_elf_machine(hdr.e_machine); + close(exe_fd); scratch_end(scratch); } return result; @@ -227,6 +228,7 @@ dmn_lnx_aux_from_pid(pid_t pid, Arch arch) case ELF_AuxType_Phent: result.phent = val; break; case ELF_AuxType_Phdr: result.phdr = val; break; case ELF_AuxType_ExecFn: result.execfn = val; break; + case ELF_AuxType_Pagesz: result.pagesz = val; break; } } brkloop:; @@ -243,6 +245,7 @@ internal DMN_LNX_PhdrInfo dmn_lnx_phdr_info_from_memory(int memory_fd, B32 is_32bit, U64 phvaddr, U64 phsize, U64 phcount) { DMN_LNX_PhdrInfo result = {0}; + result.range.min = max_U64; // rjf: determine how much phdr we'll read U64 phdr_size_expected = (is_32bit ? sizeof(ELF_Phdr32) : sizeof(ELF_Phdr64)); @@ -277,6 +280,7 @@ dmn_lnx_phdr_info_from_memory(int memory_fd, B32 is_32bit, U64 phvaddr, U64 phsi // rjf: save switch(p_type) { + default:{}break; case ELF_PType_Dynamic: { result.dynamic = p_vaddr; @@ -307,8 +311,7 @@ dmn_lnx_module_info_list_from_process(Arena *arena, DMN_LNX_Entity *process) DMN_LNX_ProcessAux aux = dmn_lnx_aux_from_pid((pid_t)process->id, arch); //- rjf: memory => phdr info - DMN_LNX_PhdrInfo phdr_info = dmn_lnx_phdr_info_from_memory(memory_fd, is_32bit, - aux.phdr, aux.phent, aux.phnum); + DMN_LNX_PhdrInfo phdr_info = dmn_lnx_phdr_info_from_memory(memory_fd, is_32bit, aux.phdr, aux.phent, aux.phnum); //- rjf: memory space & vaddr => linkmap first U64 first_linkmap_vaddr = 0; @@ -360,10 +363,11 @@ dmn_lnx_module_info_list_from_process(Arena *arena, DMN_LNX_Entity *process) //- rjf: push main module DMN_LNX_ModuleInfoList list = {0}; { + U64 base_vaddr = (aux.phdr & ~(aux.pagesz-1)); DMN_LNX_ModuleInfoNode *n = push_array(arena, DMN_LNX_ModuleInfoNode, 1); SLLQueuePush(list.first, list.last, n); list.count += 1; - n->v.vaddr_range = phdr_info.range; + n->v.vaddr_range = shift_1u64(phdr_info.range, base_vaddr); n->v.name = aux.execfn; } @@ -1084,6 +1088,7 @@ dmn_ctrl_launch(DMN_CtrlCtx *ctx, OS_ProcessLaunchParams *params) e->process = dmn_lnx_handle_from_entity(process); e->thread = dmn_lnx_handle_from_entity(main_thread); e->module = dmn_lnx_handle_from_entity(module); + e->arch = process->arch; e->address = n->v.vaddr_range.min; e->size = dim_1u64(n->v.vaddr_range); e->string = dmn_lnx_read_string(dmn_lnx_state->deferred_events_arena, process->fd, n->v.name); @@ -1360,7 +1365,7 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) int wifsignaled = WIFSIGNALED(status); int wifstopped = WIFSTOPPED(status); int wstopsig = WSTOPSIG(status); - int ptrace_event_code = (status>>8); + int ptrace_event_code = (status>>16); DMN_LNX_Entity *thread = dmn_lnx_thread_from_pid(wait_id); DMN_LNX_Entity *process = thread->parent; B32 thread_is_process_root = (thread->id == process->id); @@ -1385,36 +1390,34 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) } //- rjf: WIFEXITED(status) -> thread exit w/ exit code - if(wifsignaled) + else if(wifsignaled) { exit_code = WTERMSIG(status); thread_exit = 1; } //- rjf: SIGTRAP:PTRACE_EVENT_EXIT - if(wifstopped && wstopsig == SIGTRAP && ptrace_event_code == PTRACE_EVENT_EXIT) + else if(wifstopped && wstopsig == SIGTRAP && ptrace_event_code == PTRACE_EVENT_EXIT) { // TODO(rjf): verify thread_exit = 1; } //- rjf: SIGTRAP:PTRACE_EVENT_CLONE - if(wifstopped && wstopsig == SIGTRAP && ptrace_event_code == PTRACE_EVENT_CLONE) + else if(wifstopped && wstopsig == SIGTRAP && ptrace_event_code == PTRACE_EVENT_CLONE) { // TODO(rjf) } //- rjf: SIGTRAP:PTRACE_EVENT_FORK, or SIGTRAP:PTRACE_EVENT_VFORK - B32 sigtrap_handled = 0; - if(!sigtrap_handled && wifstopped && wstopsig == SIGTRAP && - (ptrace_event_code == PTRACE_EVENT_FORK || - ptrace_event_code == PTRACE_EVENT_VFORK)) + else if(wifstopped && wstopsig == SIGTRAP && + (ptrace_event_code == PTRACE_EVENT_FORK || + ptrace_event_code == PTRACE_EVENT_VFORK)) { - sigtrap_handled = 1; } //- rjf: SIGTRAP - if(!sigtrap_handled && wifstopped && wstopsig == SIGTRAP) + else if(wifstopped && wstopsig == SIGTRAP) { // rjf: this is the single step thread => this is a single step completion DMN_EventKind e_kind = DMN_EventKind_Trap; @@ -1443,7 +1446,7 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) } //- rjf: WSTOPSIG(status) is SIGSTOP - if(wifstopped && wstopsig == SIGSTOP) + else if(wifstopped && wstopsig == SIGSTOP) { // // TODO(rjf): how do we tell the following apart?: @@ -1477,12 +1480,19 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) } //- rjf: WSTOPSIG(status) is an unrecoverable exception (unless user does something to fix state first) - if(wifstopped && - (wstopsig == SIGABRT || - wstopsig == SIGFPE || - wstopsig == SIGSEGV)) + else if(wifstopped) { - // TODO(rjf) + // TODO(rjf): possible cases: + // SIGABRT + // SIGFPE + // SIGSEGV + // SIGILL + DMN_Event *e = dmn_event_list_push(arena, &evts); + e->kind = DMN_EventKind_Exception; + e->process = dmn_lnx_handle_from_entity(process); + e->thread = dmn_lnx_handle_from_entity(thread); + e->instruction_pointer = rip; + e->signo = wstopsig; } //- rjf: thread exit, thread is process' "root thread" -> eliminate this entire entity subtree diff --git a/src/demon/linux/demon_core_linux.h b/src/demon/linux/demon_core_linux.h index bfe31aef..18347a4f 100644 --- a/src/demon/linux/demon_core_linux.h +++ b/src/demon/linux/demon_core_linux.h @@ -201,6 +201,7 @@ struct DMN_LNX_ProcessAux U64 phent; U64 phdr; U64 execfn; + U64 pagesz; }; typedef struct DMN_LNX_PhdrInfo DMN_LNX_PhdrInfo; From 209c5e96b8efd39a9f50c6848ee06b86e18bf910 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 1 Aug 2025 11:45:28 -0700 Subject: [PATCH 353/372] bitmap view -> rich hover --- src/raddbg/raddbg_views.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/raddbg/raddbg_views.c b/src/raddbg/raddbg_views.c index 2d9275ae..eaab6fcc 100644 --- a/src/raddbg/raddbg_views.c +++ b/src/raddbg/raddbg_views.c @@ -3944,7 +3944,7 @@ RD_VIEW_UI_FUNCTION_DEF(bitmap) //- rjf: image-region canvas interaction // Vec2S32 mouse_bmp = {-1, -1}; - if(ui_hovering(canvas_sig) && !ui_dragging(canvas_sig)) RD_Font(RD_FontSlot_Code) + if(ui_hovering(canvas_sig) && !ui_dragging(canvas_sig)) { Vec2F32 mouse_scr = sub_2f32(ui_mouse(), rect.p0); Vec2F32 mouse_cvs = rd_bitmap_canvas_from_screen_pos(view_center_pos, zoom, canvas_rect, mouse_scr); @@ -3956,6 +3956,9 @@ RD_VIEW_UI_FUNCTION_DEF(bitmap) if(0 <= off_bytes && off_bytes+r_tex2d_format_bytes_per_pixel_table[topology.fmt] <= data.size && r_tex2d_format_bytes_per_pixel_table[topology.fmt] != 0) { + RD_RegsScope(.vaddr_range = r1u64(offset_range.min + off_bytes, offset_range.min + off_bytes + r_tex2d_format_bytes_per_pixel_table[topology.fmt]), + .eval_space = eval.space) + rd_set_hover_regs(RD_RegSlot_VaddrRange); B32 color_is_good = 1; Vec4F32 color = {0}; switch(topology.fmt) From 9c2bdf492ff49430a838df6efedf46c0e2ca15c9 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 4 Aug 2025 12:36:04 -0700 Subject: [PATCH 354/372] ptrace register reading debugging --- src/demon/linux/demon_core_linux.c | 32 ++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c index 13220220..206bb56b 100644 --- a/src/demon/linux/demon_core_linux.c +++ b/src/demon/linux/demon_core_linux.c @@ -564,7 +564,8 @@ dmn_lnx_thread_read_reg_block(DMN_LNX_Entity *thread, void *reg_block) struct iovec iov_gpr = {0}; iov_gpr.iov_len = sizeof(ctx); iov_gpr.iov_base = &ctx; - if(ptrace(PTRACE_GETREGSET, tid, (void*)NT_PRSTATUS, &iov_gpr) != -1) + int ptrace_result = ptrace(PTRACE_GETREGSET, tid, (void*)NT_PRSTATUS, &iov_gpr); + if(ptrace_result != -1) { got_gpr = 1; DMN_LNX_UserRegsX64 *src = &ctx.regs; @@ -595,6 +596,13 @@ dmn_lnx_thread_read_reg_block(DMN_LNX_Entity *thread, void *reg_block) dst->rip.u64 = src->rip; dst->rflags.u64 = src->rflags; } + else + { + int error_code = errno; + (void)error_code; + int x = 0; + (void)x; + } } //- rjf: read FPR @@ -612,12 +620,20 @@ dmn_lnx_thread_read_reg_block(DMN_LNX_Entity *thread, void *reg_block) struct iovec iov_xsave = {0}; iov_xsave.iov_len = sizeof(xsave_buffer); iov_xsave.iov_base = xsave_buffer; - if(ptrace(PTRACE_GETREGSET, tid, (void*)NT_X86_XSTATE, &iov_xsave) != -1) + int ptrace_result = ptrace(PTRACE_GETREGSET, tid, (void*)NT_X86_XSTATE, &iov_xsave); + if(ptrace_result != -1) { xsave = push_array_no_zero(scratch.arena, DMN_LNX_XSave, 1); MemoryCopy(xsave, xsave_buffer, sizeof(*xsave)); xsave_legacy = &xsave->legacy; } + else + { + int error_code = errno; + (void)error_code; + int x = 0; + (void)x; + } } // rjf: try fxsave @@ -627,11 +643,19 @@ dmn_lnx_thread_read_reg_block(DMN_LNX_Entity *thread, void *reg_block) struct iovec iov_fxsave = {0}; iov_fxsave.iov_len = sizeof(fxsave); iov_fxsave.iov_base = &fxsave; - if(ptrace(PTRACE_GETREGSET, tid, (void *)NT_FPREGSET, &iov_fxsave) != -1) + int ptrace_result = ptrace(PTRACE_GETREGSET, tid, (void *)NT_FPREGSET, &iov_fxsave); + if(ptrace_result != -1) { xsave_legacy = push_array_no_zero(scratch.arena, DMN_LNX_XSaveLegacy, 1); MemoryCopy(xsave_legacy, &fxsave, sizeof(*xsave_legacy)); } + else + { + int error_code = errno; + (void)error_code; + int x = 0; + (void)x; + } } // rjf: fill from xsave legacy @@ -909,7 +933,7 @@ dmn_ctrl_exclusive_access_end(void) { OS_MutexScope(dmn_lnx_state->access_mutex) { - dmn_lnx_state->access_run_state = 1; + dmn_lnx_state->access_run_state = 0; } } From b31b4612e91d04607e43a3ee076727c113d20fb8 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 4 Aug 2025 13:13:18 -0700 Subject: [PATCH 355/372] pre-emptive thread register cache updating on ctrl thread - cache reading/updating on ui thread should always be allowed to gracefully fail, since it is literally impossible on linux, but we can always rely on the ctrl thread to pipe the right thing through eventually. --- src/ctrl/ctrl_core.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 345b8601..2415dc36 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -3867,6 +3867,22 @@ ctrl_thread__entry_point(void *p) ins_atomic_u64_inc_eval(&ctrl_state->mem_gen); ins_atomic_u64_inc_eval(&ctrl_state->reg_gen); + //- rjf: update thread register cache + ProfScope("update thread register cache") + { + CTRL_EntityCtx *entity_ctx = &ctrl_state->ctrl_thread_entity_store->ctx; + CTRL_EntityArray threads = ctrl_entity_array_from_kind(entity_ctx, CTRL_EntityKind_Thread); + REGS_RegBlockX64 *blocks = push_array(scratch.arena, REGS_RegBlockX64, threads.count); + { + for EachIndex(idx, threads.count) + { + Temp scratch = scratch_begin(0, 0); + ctrl_reg_block_from_thread(scratch.arena, entity_ctx, threads.v[idx]->handle); + scratch_end(scratch); + } + } + } + //- rjf: gather & output logs ctrl_thread__end_and_flush_log(); } From 31973ac2ac51a37242ea77983221537bd4e30a11 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 4 Aug 2025 14:18:52 -0700 Subject: [PATCH 356/372] eliminate extra type stuff in rdim, organize / reslice dwarf conversion code, start reading through dwarf conversion --- project.4coder | 8 +- src/lib_rdi_make/rdi_make.c | 49 ++------ src/lib_rdi_make/rdi_make.h | 21 ++-- src/rdi_from_dwarf/rdi_from_dwarf.c | 176 +++++++++++++--------------- src/rdi_from_dwarf/rdi_from_dwarf.h | 63 +++++++++- src/rdi_from_pdb/rdi_from_pdb.c | 64 ++++++---- src/rdi_make/rdi_make_local.c | 2 +- src/rdi_make/rdi_make_local.h | 4 +- 8 files changed, 204 insertions(+), 183 deletions(-) diff --git a/project.4coder b/project.4coder index ff65fba6..bd53fe4b 100644 --- a/project.4coder +++ b/project.4coder @@ -47,10 +47,10 @@ commands = { //- rjf: [raddbg] // .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, - // .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [raddbg wsl] - .f1 = { .win = "wsl ./build.sh raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f1 = { .win = "wsl ./build.sh raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [scratch] .f2 = { .win = "build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, @@ -65,8 +65,8 @@ commands = // .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: running target - // .f3 = { .win = "raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, - .f3 = { .win = "wsl ./build/raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f3 = { .win = "raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f3 = { .win = "wsl ./build/raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f3 = { .win = "pushd build && raddbg --user:dev.raddbg_user && popd", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f3 = { .win = "C:/devel/raddebugger/build/raddbg.exe --capture --user:C:/devel/raddebugger/build/local_dev.raddbg_user --project:C:/devel/raddebugger/build/local_dev.raddbg_project", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f3 = { .win = "wsl_launch /mnt/c/devel/raddebugger/build/raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, diff --git a/src/lib_rdi_make/rdi_make.c b/src/lib_rdi_make/rdi_make.c index bb7362b8..54d402ad 100644 --- a/src/lib_rdi_make/rdi_make.c +++ b/src/lib_rdi_make/rdi_make.c @@ -479,7 +479,7 @@ rdim_rng1u64_chunk_list_push(RDIM_Arena *arena, RDIM_Rng1U64ChunkList *list, RDI //~ Data Model RDI_PROC RDI_TypeKind -rdim_short_type_from_data_model(RDIM_DataModel data_model) +rdim_short_type_kind_from_data_model(RDIM_DataModel data_model) { switch(data_model) { @@ -495,7 +495,7 @@ rdim_short_type_from_data_model(RDIM_DataModel data_model) } RDI_PROC RDI_TypeKind -rdim_unsigned_short_type_from_data_model(RDIM_DataModel data_model) +rdim_unsigned_short_type_kind_from_data_model(RDIM_DataModel data_model) { switch(data_model) { @@ -543,7 +543,7 @@ rdim_unsigned_int_type_from_data_model(RDIM_DataModel data_model) } RDI_PROC RDI_TypeKind -rdim_long_type_from_data_model(RDIM_DataModel data_model) +rdim_long_type_kind_from_data_model(RDIM_DataModel data_model) { switch(data_model) { @@ -559,7 +559,7 @@ rdim_long_type_from_data_model(RDIM_DataModel data_model) } RDI_PROC RDI_TypeKind -rdim_unsigned_long_type_from_data_model(RDIM_DataModel data_model) +rdim_unsigned_long_type_kind_from_data_model(RDIM_DataModel data_model) { switch(data_model) { @@ -575,7 +575,7 @@ rdim_unsigned_long_type_from_data_model(RDIM_DataModel data_model) } RDI_PROC RDI_TypeKind -rdim_long_long_type_from_data_model(RDIM_DataModel data_model) +rdim_long_long_type_kind_from_data_model(RDIM_DataModel data_model) { switch(data_model) { @@ -591,7 +591,7 @@ rdim_long_long_type_from_data_model(RDIM_DataModel data_model) } RDI_PROC RDI_TypeKind -rdim_unsigned_long_long_type_from_data_model(RDIM_DataModel data_model) +rdim_unsigned_long_long_type_kind_from_data_model(RDIM_DataModel data_model) { switch(data_model) { @@ -607,7 +607,7 @@ rdim_unsigned_long_long_type_from_data_model(RDIM_DataModel data_model) } RDI_PROC RDI_TypeKind -rdim_pointer_size_t_type_from_data_model(RDIM_DataModel data_model) +rdim_pointer_size_t_type_kind_from_data_model(RDIM_DataModel data_model) { switch(data_model) { @@ -1346,41 +1346,6 @@ rdim_count_from_location_block_chunk_list(RDIM_String8List *list) return count; } -//////////////////////////////// - -RDI_PROC RDIM_Type * -rdim_builtin_type_from_kind(RDIM_TypeChunkList list, RDI_TypeKind type_kind) -{ - return &list.first->v[type_kind]; -} - -RDI_PROC RDIM_TypeChunkList -rdim_init_type_chunk_list(RDIM_Arena *arena, RDI_Arch arch) -{ - RDIM_TypeChunkList list = {0}; - - RDI_U64 type_cap = (RDI_TypeKind_LastBuiltIn - RDI_TypeKind_FirstBuiltIn) + 2; - - // RDI_TypeKind_NULL - rdim_type_chunk_list_push(arena, &list, type_cap); - - for(RDI_TypeKind type_kind = RDI_TypeKind_FirstBuiltIn; type_kind <= RDI_TypeKind_LastBuiltIn; type_kind += 1) - { - RDIM_Type *type = rdim_type_chunk_list_push(arena, &list, type_cap); - type->name.str = rdi_string_from_type_kind(type_kind, &type->name.size); - type->kind = type_kind; - type->byte_size = rdi_size_from_basic_type_kind(type_kind); - } - - RDIM_Type *void_type = rdim_builtin_type_from_kind(list, RDI_TypeKind_Void); - void_type->byte_size = rdi_addr_size_from_arch(arch); - - RDIM_Type *handle_type = rdim_builtin_type_from_kind(list, RDI_TypeKind_Handle); - handle_type->byte_size = rdi_addr_size_from_arch(arch); - - return list; -} - //////////////////////////////// //~ rjf: [Baking Helpers] Baked VMap Building diff --git a/src/lib_rdi_make/rdi_make.h b/src/lib_rdi_make/rdi_make.h index 624b79c9..7dd6a216 100644 --- a/src/lib_rdi_make/rdi_make.h +++ b/src/lib_rdi_make/rdi_make.h @@ -1429,15 +1429,15 @@ RDI_PROC void rdim_rng1u64_chunk_list_push(RDIM_Arena *arena, RDIM_Rng1U64ChunkL //////////////////////////////// //~ Data Model -RDI_PROC RDI_TypeKind rdim_short_type_from_data_model(RDIM_DataModel data_model); -RDI_PROC RDI_TypeKind rdim_unsigned_short_type_from_data_model(RDIM_DataModel data_model); +RDI_PROC RDI_TypeKind rdim_short_type_kind_from_data_model(RDIM_DataModel data_model); +RDI_PROC RDI_TypeKind rdim_unsigned_short_type_kind_from_data_model(RDIM_DataModel data_model); RDI_PROC RDI_TypeKind rdim_int_type_from_data_model(RDIM_DataModel data_model); RDI_PROC RDI_TypeKind rdim_unsigned_int_type_from_data_model(RDIM_DataModel data_model); -RDI_PROC RDI_TypeKind rdim_long_type_from_data_model(RDIM_DataModel data_model); -RDI_PROC RDI_TypeKind rdim_unsigned_long_type_from_data_model(RDIM_DataModel data_model); -RDI_PROC RDI_TypeKind rdim_long_long_type_from_data_model(RDIM_DataModel data_model); -RDI_PROC RDI_TypeKind rdim_unsigned_long_long_type_from_data_model(RDIM_DataModel data_model); -RDI_PROC RDI_TypeKind rdim_pointer_size_t_type_from_data_model(RDIM_DataModel data_model); +RDI_PROC RDI_TypeKind rdim_long_type_kind_from_data_model(RDIM_DataModel data_model); +RDI_PROC RDI_TypeKind rdim_unsigned_long_type_kind_from_data_model(RDIM_DataModel data_model); +RDI_PROC RDI_TypeKind rdim_long_long_type_kind_from_data_model(RDIM_DataModel data_model); +RDI_PROC RDI_TypeKind rdim_unsigned_long_long_type_kind_from_data_model(RDIM_DataModel data_model); +RDI_PROC RDI_TypeKind rdim_pointer_size_t_type_kind_from_data_model(RDIM_DataModel data_model); //////////////////////////////// //~ rjf: [Building] Binary Section Info Building @@ -1520,15 +1520,10 @@ RDI_PROC RDIM_Location *rdim_push_location_val_reg(RDIM_Arena *arena, RDI_U8 reg //- rjf: location sets RDI_PROC void rdim_location_set_push_case(RDIM_Arena *arena, RDIM_ScopeChunkList *scopes, RDIM_LocationSet *locset, RDIM_Rng1U64 voff_range, RDIM_Location *location); -//- rjf:location block chunk list +//- rjf: location block chunk list RDI_PROC RDI_LocationBlock *rdim_location_block_chunk_list_push_array(RDIM_Arena *arena, RDIM_String8List *list, RDI_U32 count); RDI_PROC RDI_U32 rdim_count_from_location_block_chunk_list(RDIM_String8List *list); -//////////////////////////////// - -RDI_PROC RDIM_TypeChunkList rdim_init_type_chunk_list(RDIM_Arena *arena, RDI_Arch arch); -RDI_PROC RDIM_Type * rdim_builtin_type_from_kind(RDIM_TypeChunkList list, RDI_TypeKind type_kind); - //////////////////////////////// //~ rjf: [Baking Helpers] Baked VMap Building diff --git a/src/rdi_from_dwarf/rdi_from_dwarf.c b/src/rdi_from_dwarf/rdi_from_dwarf.c index 8853262a..963a7164 100644 --- a/src/rdi_from_dwarf/rdi_from_dwarf.c +++ b/src/rdi_from_dwarf/rdi_from_dwarf.c @@ -7,42 +7,81 @@ // however it is optional and in case it is missing converter has to generate the ranges from scopes. // [ ] Error handling -internal RDI_RegCode -d2r_rdi_reg_from_dw_reg_code_x64(U64 reg_code) +//////////////////////////////// +//~ rjf: Enum Conversion Helpers + +internal RDI_Language +d2r_rdi_language_from_dw_language(DW_Language v) { - switch (reg_code) { -#define X(reg_name_dw, reg_code_dw, reg_name_rdi, reg_pos, reg_size) case DW_RegX64_##reg_name_dw: return RDI_RegCodeX64_##reg_name_rdi; - DW_Regs_X64_XList(X) -#undef X + RDI_Language result = RDI_Language_NULL; + switch(v) + { + default:{}break; + + case DW_Language_C89: + case DW_Language_C99: + case DW_Language_C11: + case DW_Language_C: + { + result = RDI_Language_C; + }break; + + case DW_Language_CPlusPlus03: + case DW_Language_CPlusPlus11: + case DW_Language_CPlusPlus14: + case DW_Language_CPlusPlus: + { + result = RDI_Language_CPlusPlus; + }break; } - InvalidPath; - return 0; + return result; } -internal RDI_RegCode -d2r_rdi_reg_from_dw_reg_code_x86(U64 reg_code) +internal RDI_RegCodeX86 +d2r_rdi_reg_code_from_dw_reg_x86(DW_RegX86 v) { - switch (reg_code) { -#define X(reg_name_dw, reg_code_dw, reg_name_rdi, reg_pos, reg_size) case DW_RegX86_##reg_name_dw: return RDI_RegCodeX86_##reg_name_rdi; + RDI_RegCodeX86 result = RDI_RegCode_nil; + switch(v) + { + default:{}break; +#define X(reg_dw, val_dw, reg_rdi, ...) case DW_RegX86_##reg_dw: result = RDI_RegCodeX86_##reg_rdi; break; DW_Regs_X86_XList(X) #undef X } - InvalidPath; - return 0; + return result; +} + +internal RDI_RegCodeX64 +d2r_rdi_reg_code_from_dw_reg_x64(DW_RegX64 v) +{ + RDI_RegCodeX64 result = RDI_RegCode_nil; + switch(v) + { + default:{}break; +#define X(reg_dw, val_dw, reg_rdi, off, size) case DW_RegX64_##reg_dw:{result = RDI_RegCodeX64_##reg_rdi;}break; + DW_Regs_X64_XList(X) +#undef X + } + return result; } internal RDI_RegCode -d2r_rdi_reg_from_dw_reg_code(Arch arch, U64 reg_code) +d2r_rdi_reg_code_from_dw_reg(Arch arch, DW_Reg v) { - switch (arch) { - case Arch_Null: return 0; - case Arch_x64: return d2r_rdi_reg_from_dw_reg_code_x64(reg_code); - case Arch_x86: return d2r_rdi_reg_from_dw_reg_code_x86(reg_code); - default: InvalidPath; + RDI_RegCode result = RDI_RegCode_nil; + switch(arch) + { + default: + case Arch_Null: + case Arch_x86:{result = d2r_rdi_reg_code_from_dw_reg_x86(v);}break; + case Arch_x64:{result = d2r_rdi_reg_code_from_dw_reg_x64(v);}break; } - return 0; + return result; } +//////////////////////////////// +//~ rjf: Type Conversion Helpers + internal RDIM_Type * d2r_create_type(Arena *arena, D2R_TypeTable *type_table) { @@ -89,7 +128,8 @@ d2r_type_from_attrib(Arena *arena, D2R_TypeTable *type_table, DW_Input *input, D Assert(!"unexpected attrib class"); } } else if (attrib->attrib_kind == DW_AttribKind_Null) { - type = rdim_builtin_type_from_kind(*type_table->types, RDI_TypeKind_NULL); + // TODO(rjf): + // type = rdim_builtin_type_from_kind(*type_table->types, RDI_TypeKind_NULL); } return type; @@ -238,6 +278,9 @@ d2r_type_group_from_type_kind(RDI_TypeKind x) return RDI_EvalTypeGroup_Other; } +//////////////////////////////// +//~ rjf: Bytecode Conversion Helpers + internal RDIM_EvalBytecode d2r_bytecode_from_expression(Arena *arena, DW_Input *input, @@ -404,7 +447,7 @@ SLLStackPush(stack, f); \ U64 reg_size = dw_reg_size_from_code(arch, reg_code_dw); U64 reg_pos = dw_reg_pos_from_code(arch, reg_code_dw); - RDI_RegCode reg_code_rdi = d2r_rdi_reg_from_dw_reg_code(arch, reg_code_dw); + RDI_RegCode reg_code_rdi = d2r_rdi_reg_code_from_dw_reg(arch, reg_code_dw); U32 regread_param = RDI_EncodeRegReadParam(reg_code_rdi, reg_size, reg_pos); rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegRead, regread_param); push_of_type(d2r_unsigned_type_kind_from_size(reg_size)); @@ -417,7 +460,7 @@ SLLStackPush(stack, f); \ U64 reg_size = dw_reg_size_from_code(arch, reg_code_dw); U64 reg_pos = dw_reg_pos_from_code(arch, reg_code_dw); - RDI_RegCode reg_code_rdi = d2r_rdi_reg_from_dw_reg_code(arch, reg_code_dw); + RDI_RegCode reg_code_rdi = d2r_rdi_reg_code_from_dw_reg(arch, reg_code_dw); U32 regread_param = RDI_EncodeRegReadParam(reg_code_rdi, reg_size, reg_pos); rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegRead, regread_param); push_of_type(d2r_unsigned_type_kind_from_size(reg_size)); @@ -501,7 +544,7 @@ SLLStackPush(stack, f); \ S64 reg_off = 0; cursor += str8_deserial_read_sleb128(expr, cursor, ®_off); - RDI_RegCode reg_code_rdi = d2r_rdi_reg_from_dw_reg_code(arch, reg_code_dw); + RDI_RegCode reg_code_rdi = d2r_rdi_reg_code_from_dw_reg(arch, reg_code_dw); rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegReadDyn, reg_code_rdi); if (reg_off > 0) { rdim_bytecode_push_sconst(arena, &bc, reg_off); @@ -518,7 +561,7 @@ SLLStackPush(stack, f); \ cursor += str8_deserial_read_uleb128(expr, cursor, ®_code_dw); cursor += str8_deserial_read_sleb128(expr, cursor, ®_off); - RDI_RegCode reg_code_rdi = d2r_rdi_reg_from_dw_reg_code(arch, reg_code_dw); + RDI_RegCode reg_code_rdi = d2r_rdi_reg_code_from_dw_reg(arch, reg_code_dw); rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegReadDyn, reg_code_rdi); if (reg_off > 0) { rdim_bytecode_push_sconst(arena, &bc, reg_off); @@ -1031,6 +1074,9 @@ d2r_cu_contrib_map_from_aranges(Arena *arena, DW_Input *input, U64 image_base) return cm; } +//////////////////////////////// +//~ rjf: Compilation Unit / Scope Conversion Helpers + internal RDIM_Rng1U64ChunkList d2r_voff_ranges_from_cu_info_off(D2R_CompUnitContribMap map, U64 info_off) { @@ -1073,6 +1119,9 @@ d2r_push_scope(Arena *arena, RDIM_ScopeChunkList *scopes, U64 scope_chunk_cap, D return scope; } +//////////////////////////////// +//~ rjf: Main Conversion Entry Point + internal RDIM_BakeParams d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) { @@ -1140,7 +1189,7 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) RDIM_UnitChunkList units = {0}; RDIM_UDTChunkList udts = {0}; - RDIM_TypeChunkList types = rdim_init_type_chunk_list(arena, arch); + RDIM_TypeChunkList types = {0}; RDIM_SymbolChunkList gvars = {0}; RDIM_SymbolChunkList tvars = {0}; RDIM_SymbolChunkList procs = {0}; @@ -1336,7 +1385,7 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) unit->object_file = str8_zero(); unit->archive_file = str8_zero(); unit->build_path = cu_dir; - unit->language = rdi_language_from_dw_language(cu_lang); + unit->language = d2r_rdi_language_from_dw_language(cu_lang); unit->line_table = cu_line_tables_rdi[cu_idx]; unit->voff_ranges = cu_voff_ranges; @@ -1583,7 +1632,11 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) default: AssertAlways(!"unexpected base type encoding"); break; // TODO: error handling } - RDIM_Type *base_type = rdim_builtin_type_from_kind(types, kind); + // TODO(rjf): this is not good. we can't grab existing type nodes & mutate them here. + // to parallelize this properly, we need to *produce* new data only, otherwise threads + // will stomp over each other everywhere. + // + RDIM_Type *base_type = 0; // rdim_builtin_type_from_kind(types, kind); base_type->kind = kind; base_type->byte_size = byte_size; @@ -2070,68 +2123,3 @@ d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params) scratch_end(scratch); return bake_params; } - -internal RDI_Language -rdi_language_from_dw_language(DW_Language v) -{ - RDI_Language result = RDI_Language_NULL; - switch (v) { - case DW_Language_Null: result = RDI_Language_NULL; break; - - case DW_Language_C89: - case DW_Language_C99: - case DW_Language_C11: - case DW_Language_C: - result = RDI_Language_C; - break; - - case DW_Language_CPlusPlus03: - case DW_Language_CPlusPlus11: - case DW_Language_CPlusPlus14: - case DW_Language_CPlusPlus: - result = RDI_Language_CPlusPlus; - break; - - default: NotImplemented; break; - } - return result; -} - -internal RDI_RegCodeX86 -rdi_reg_from_dw_reg_x86(DW_RegX86 v) -{ - RDI_RegCodeX86 result = RDI_RegCode_nil; - switch (v) { -#define X(reg_dw, val_dw, reg_rdi, ...) case DW_RegX86_##reg_dw: result = RDI_RegCodeX86_##reg_rdi; break; - DW_Regs_X86_XList(X) -#undef X - default: NotImplemented; break; - } - return result; -} - -internal B32 -rdi_reg_from_dw_reg_x64(DW_RegX64 v, RDI_RegCodeX64 *code_out, U64 *off_out, U64 *size_out) -{ - RDI_RegCodeX64 result = RDI_RegCode_nil; - switch (v) { -#define X(reg_dw, val_dw, reg_rdi, off, size) case DW_RegX64_##reg_dw: result = RDI_RegCodeX64_##reg_rdi; *off_out = off; *size_out = size; break; - DW_Regs_X64_XList(X) -#undef X - default: NotImplemented; break; - } - return result; -} - -internal B32 -rdi_reg_from_dw_reg(Arch arch, DW_Reg v, RDI_RegCode *code_out, U64 *off_out, U64 *size_out) -{ - RDI_RegCode result = RDI_RegCode_nil; - switch (arch) { - case Arch_Null: break; - case Arch_x86: ; break; - case Arch_x64: return rdi_reg_from_dw_reg_x64(v, code_out, off_out, size_out); - default: NotImplemented; break; - } - return 0; -} diff --git a/src/rdi_from_dwarf/rdi_from_dwarf.h b/src/rdi_from_dwarf/rdi_from_dwarf.h index 1831367c..50ee8d8e 100644 --- a/src/rdi_from_dwarf/rdi_from_dwarf.h +++ b/src/rdi_from_dwarf/rdi_from_dwarf.h @@ -39,12 +39,65 @@ typedef struct D2R_CompUnitContribMap } D2R_CompUnitContribMap; //////////////////////////////// +//~ rjf: Enum Conversion Helpers -internal RDIM_BakeParams d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params); +internal RDI_Language d2r_rdi_language_from_dw_language(DW_Language v); +internal RDI_RegCodeX86 d2r_rdi_reg_code_from_dw_reg_x86(DW_RegX86 v); +internal RDI_RegCodeX64 d2r_rdi_reg_code_from_dw_reg_x64(DW_RegX64 v); +internal RDI_RegCode d2r_rdi_reg_code_from_dw_reg(Arch arch, DW_Reg v); //////////////////////////////// +//~ rjf: Type Conversion Helpers -internal RDI_Language rdi_language_from_dw_language(DW_Language v); -internal RDI_RegCodeX86 rdi_reg_from_dw_reg_x86(DW_RegX86 v); -internal B32 rdi_reg_from_dw_reg_x64(DW_RegX64 v, RDI_RegCodeX64 *code_out, U64 *off_out, U64 *size_out); -internal B32 rdi_reg_from_dw_reg(Arch arch, DW_Reg v, RDI_RegCode *code_out, U64 *off_out, U64 *size_out); +internal RDIM_Type *d2r_create_type(Arena *arena, D2R_TypeTable *type_table); +internal RDIM_Type *d2r_find_or_create_type_from_offset(Arena *arena, D2R_TypeTable *type_table, U64 info_off); +internal RDIM_Type *d2r_type_from_attrib(Arena *arena, D2R_TypeTable *type_table, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal Rng1U64List d2r_range_list_from_tag(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 image_base, DW_Tag tag); +internal RDIM_Type **d2r_collect_proc_params(Arena *arena, D2R_TypeTable *type_table, DW_Input *input, DW_CompUnit *cu, DW_TagNode *cur_node, U64 *param_count_out); +internal RDI_TypeKind d2r_unsigned_type_kind_from_size(U64 byte_size); +internal RDI_TypeKind d2r_signed_type_kind_from_size(U64 byte_size); +internal RDI_EvalTypeGroup d2r_type_group_from_type_kind(RDI_TypeKind x); + +//////////////////////////////// +//~ rjf: Bytecode Conversion Helpers + +internal RDIM_EvalBytecode +d2r_bytecode_from_expression(Arena *arena, + DW_Input *input, + U64 image_base, + U64 address_size, + Arch arch, + DW_ListUnit *addr_lu, + String8 expr, + DW_CompUnit *cu, + B32 *is_addr_out); +internal RDIM_Location *d2r_transpile_expression(Arena *arena, DW_Input *input, U64 image_base, U64 address_size, Arch arch, DW_ListUnit *addr_lu, DW_CompUnit *cu, String8 expr); +internal RDIM_Location *d2r_location_from_attrib(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 image_base, Arch arch, DW_Tag tag, DW_AttribKind kind); +internal RDIM_LocationSet d2r_locset_from_attrib(Arena *arena, + DW_Input *input, + DW_CompUnit *cu, + RDIM_ScopeChunkList *scopes, + RDIM_Scope *curr_scope, + U64 image_base, + Arch arch, + DW_Tag tag, + DW_AttribKind kind); +internal RDIM_LocationSet d2r_var_locset_from_tag(Arena *arena, + DW_Input *input, + DW_CompUnit *cu, + RDIM_ScopeChunkList *scopes, + RDIM_Scope *curr_scope, + U64 image_base, + Arch arch, + DW_Tag tag); + +//////////////////////////////// +//~ rjf: Compilation Unit / Scope Conversion Helpers + +internal D2R_CompUnitContribMap d2r_cu_contrib_map_from_aranges(Arena *arena, DW_Input *input, U64 image_base); +internal RDIM_Rng1U64ChunkList d2r_voff_ranges_from_cu_info_off(D2R_CompUnitContribMap map, U64 info_off); + +//////////////////////////////// +//~ rjf: Main Conversion Entry Point + +internal RDIM_BakeParams d2r_convert(Arena *arena, ASYNC_Root *async_root, D2R_ConvertParams *params); diff --git a/src/rdi_from_pdb/rdi_from_pdb.c b/src/rdi_from_pdb/rdi_from_pdb.c index cd4ff652..263db893 100644 --- a/src/rdi_from_pdb/rdi_from_pdb.c +++ b/src/rdi_from_pdb/rdi_from_pdb.c @@ -3708,25 +3708,43 @@ p2r_convert(Arena *arena, ASYNC_Root *async_root, P2R_ConvertParams *in) // from regular type info. // RDIM_Type **itype_type_ptrs = 0; - RDIM_TypeChunkList all_types = rdim_init_type_chunk_list(arena, top_level_info.arch); + RDIM_Type **basic_type_ptrs = 0; + RDIM_TypeChunkList all_types = {0}; +#define p2r_builtin_type_ptr_from_kind(kind) ((basic_type_ptrs && RDI_TypeKind_FirstBuiltIn <= (kind) && (kind) <= RDI_TypeKind_LastBuiltIn) ? (basic_type_ptrs[(kind) - RDI_TypeKind_FirstBuiltIn]) : 0) #define p2r_type_ptr_from_itype(itype) ((itype_type_ptrs && (itype) < itype_opl) ? (itype_type_ptrs[(itype_fwd_map[(itype)] ? itype_fwd_map[(itype)] : (itype))]) : 0) if(in->subset_flags & RDIM_SubsetFlag_Types) ProfScope("types pass 3: construct all root/stub types from TPI") { itype_type_ptrs = push_array(arena, RDIM_Type *, (U64)(itype_opl)); + basic_type_ptrs = push_array(arena, RDIM_Type *, (RDI_TypeKind_LastBuiltIn - RDI_TypeKind_FirstBuiltIn + 1)); - ////////////////////////// - //- basic type aliases + //////////////////////////// + //- rjf: build basic types // { - RDIM_DataModel data_model = rdim_infer_data_model(OperatingSystem_Windows, top_level_info.arch); - RDI_TypeKind short_type = rdim_short_type_from_data_model(data_model); - RDI_TypeKind ushort_type = rdim_unsigned_short_type_from_data_model(data_model); - RDI_TypeKind long_type = rdim_long_type_from_data_model(data_model); - RDI_TypeKind ulong_type = rdim_unsigned_long_type_from_data_model(data_model); - RDI_TypeKind long_long_type = rdim_long_long_type_from_data_model(data_model); - RDI_TypeKind ulong_long_type = rdim_unsigned_long_long_type_from_data_model(data_model); - RDI_TypeKind ptr_type = rdim_pointer_size_t_type_from_data_model(data_model); - + for(RDI_TypeKind type_kind = RDI_TypeKind_FirstBuiltIn; + type_kind <= RDI_TypeKind_LastBuiltIn; + type_kind += 1) + { + RDIM_Type *type = rdim_type_chunk_list_push(arena, &all_types, 512); + type->name.str = rdi_string_from_type_kind(type_kind, &type->name.size); + type->kind = type_kind; + type->byte_size = rdi_size_from_basic_type_kind(type_kind); + basic_type_ptrs[type_kind - RDI_TypeKind_FirstBuiltIn] = type; + } + } + + //////////////////////////// + //- rjf: build basic type aliases + // + { + RDIM_DataModel data_model = rdim_data_model_from_os_arch(OperatingSystem_Windows, top_level_info.arch); + RDI_TypeKind short_type = rdim_short_type_kind_from_data_model(data_model); + RDI_TypeKind ushort_type = rdim_unsigned_short_type_kind_from_data_model(data_model); + RDI_TypeKind long_type = rdim_long_type_kind_from_data_model(data_model); + RDI_TypeKind ulong_type = rdim_unsigned_long_type_kind_from_data_model(data_model); + RDI_TypeKind long_long_type = rdim_long_long_type_kind_from_data_model(data_model); + RDI_TypeKind ulong_long_type = rdim_unsigned_long_long_type_kind_from_data_model(data_model); + RDI_TypeKind ptr_type = rdim_pointer_size_t_type_kind_from_data_model(data_model); struct { char * name; @@ -3776,22 +3794,22 @@ p2r_convert(Arena *arena, ASYNC_Root *async_root, P2R_ConvertParams *in) { "char32_t" , RDI_TypeKind_Char32 , CV_BasicType_CHAR32 }, // always UTF-32 { "__pointer" , ptr_type , CV_BasicType_PTR } }; - - itype_type_ptrs[CV_BasicType_NOTYPE] = rdim_builtin_type_from_kind(all_types, RDI_TypeKind_NULL); - itype_type_ptrs[CV_BasicType_HRESULT] = rdim_builtin_type_from_kind(all_types, RDI_TypeKind_HResult); - itype_type_ptrs[CV_BasicType_VOID] = rdim_builtin_type_from_kind(all_types, RDI_TypeKind_Void); - - for(U64 i = 0; i < ArrayCount(table); i += 1) + for EachElement(idx, table) { RDIM_Type *builtin_alias = rdim_type_chunk_list_push(arena, &all_types, tpi_leaf->itype_opl); builtin_alias->kind = RDI_TypeKind_Alias; - builtin_alias->name = str8_cstring(table[i].name); - builtin_alias->direct_type = rdim_builtin_type_from_kind(all_types, table[i].kind_rdi); - builtin_alias->byte_size = rdi_size_from_basic_type_kind(table[i].kind_rdi); - itype_type_ptrs[table[i].kind_cv] = builtin_alias; + builtin_alias->name = str8_cstring(table[idx].name); + builtin_alias->direct_type = p2r_builtin_type_ptr_from_kind(table[idx].kind_rdi); + builtin_alias->byte_size = rdi_size_from_basic_type_kind(table[idx].kind_rdi); + itype_type_ptrs[table[idx].kind_cv] = builtin_alias; } + itype_type_ptrs[CV_BasicType_HRESULT] = basic_type_ptrs[RDI_TypeKind_HResult - RDI_TypeKind_FirstBuiltIn]; + itype_type_ptrs[CV_BasicType_VOID] = basic_type_ptrs[RDI_TypeKind_HResult - RDI_TypeKind_Void]; } + //////////////////////////// + //- rjf: build types from TPI + // for(CV_TypeId root_itype = 0; root_itype < itype_opl; root_itype += 1) { for(P2R_TypeIdChain *itype_chain = itype_chains[root_itype]; @@ -4222,6 +4240,8 @@ p2r_convert(Arena *arena, ASYNC_Root *async_root, P2R_ConvertParams *in) } } } +#undef p2r_type_ptr_from_itype +#undef p2r_builtin_type_ptr_from_kind ////////////////////////////////////////////////////////////// //- rjf: types pass 4: kick off UDT build diff --git a/src/rdi_make/rdi_make_local.c b/src/rdi_make/rdi_make_local.c index 3fd652cb..a751530b 100644 --- a/src/rdi_make/rdi_make_local.c +++ b/src/rdi_make/rdi_make_local.c @@ -6,7 +6,7 @@ //////////////////////////////// internal RDIM_DataModel -rdim_infer_data_model(OperatingSystem os, RDI_Arch arch) +rdim_data_model_from_os_arch(OperatingSystem os, RDI_Arch arch) { RDIM_DataModel data_model = RDIM_DataModel_Null; #define Case(os_name, arch_name, model_name) if(os == OperatingSystem_##os_name && arch == Arch_##arch_name) { data_model = RDIM_DataModel_##model_name; } diff --git a/src/rdi_make/rdi_make_local.h b/src/rdi_make/rdi_make_local.h index 0a920532..437f7bce 100644 --- a/src/rdi_make/rdi_make_local.h +++ b/src/rdi_make/rdi_make_local.h @@ -326,7 +326,7 @@ struct RDIM_BakeIdxRunsIn //////////////////////////////// -internal RDIM_DataModel rdim_infer_data_model(OperatingSystem os, RDI_Arch arch); +internal RDIM_DataModel rdim_data_model_from_os_arch(OperatingSystem os, RDI_Arch arch); //////////////////////////////// //~ rjf: Baking Stage Tasks @@ -376,7 +376,7 @@ global ASYNC_Root *rdim_local_async_root = 0; //////////////////////////////// -internal RDIM_DataModel rdim_infer_data_model(OperatingSystem os, RDI_Arch arch); +internal RDIM_DataModel rdim_data_model_from_os_arch(OperatingSystem os, RDI_Arch arch); internal RDIM_TopLevelInfo rdim_make_top_level_info(String8 image_name, Arch arch, U64 exe_hash, RDIM_BinarySectionList sections); //////////////////////////////// From 8d246d0c6a43a061c95edc720ec6a3b321b2250b Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 29 Jul 2025 09:35:15 -0700 Subject: [PATCH 357/372] pass down to config obj; preparing to refactor alternate name out of the symbol table --- src/linker/lnk.c | 8 +- src/linker/lnk_config.c | 387 ++++++++++++++++++++-------------------- src/linker/lnk_config.h | 41 ++--- 3 files changed, 216 insertions(+), 220 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 02938e2a..212ae949 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1437,7 +1437,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) LNK_DirectiveInfo directive_info = lnk_directive_info_from_raw_directives(scratch.arena, obj, raw_directives); for EachIndex(i, ArrayCount(directive_info.v)) { for (LNK_Directive *dir = directive_info.v[i].first; dir != 0; dir = dir->next) { - lnk_apply_cmd_option_to_config(tp_arena->v[0], config, dir->id, dir->value_list, obj->path, lnk_obj_get_lib_path(obj)); + lnk_apply_cmd_option_to_config(tp_arena->v[0], config, dir->id, dir->value_list, obj); } } } @@ -1561,7 +1561,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) // TODO: config_refactor String8List value_strings = {0}; str8_list_push(scratch.arena, &value_strings, delay_load_helper_name); - lnk_apply_cmd_option_to_config(tp_arena->v[0], config, str8_lit("include"), value_strings, str8_zero(), str8_zero()); + lnk_apply_cmd_option_to_config(tp_arena->v[0], config, str8_lit("include"), value_strings, 0); ProfEnd(); } break; @@ -1572,7 +1572,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) // TODO: config_refactor String8List value_strings = {0}; str8_list_push(scratch.arena, &value_strings, load_config_name); - lnk_apply_cmd_option_to_config(tp_arena->v[0], config, str8_lit("include"), value_strings, str8_zero(), str8_zero()); + lnk_apply_cmd_option_to_config(tp_arena->v[0], config, str8_lit("include"), value_strings, 0); ProfEnd(); } break; @@ -1697,7 +1697,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) // TODO: config_refactor String8List value_strings = {0}; str8_list_push(scratch.arena, &value_strings, config->entry_point_name); - lnk_apply_cmd_option_to_config(tp_arena->v[0], config, str8_lit("include"), value_strings, str8_zero(), str8_zero()); + lnk_apply_cmd_option_to_config(tp_arena->v[0], config, str8_lit("include"), value_strings, 0); } // no entry point, error and exit else { diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 026b7f8d..657bdfbe 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -305,32 +305,32 @@ lnk_cmd_line_has_switch(LNK_CmdLine cmd_line, LNK_CmdSwitchType cmd_switch) } internal void -lnk_error_cmd_switch(LNK_ErrorCode code, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, char *fmt, ...) +lnk_error_cmd_switch(LNK_ErrorCode code, LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, char *fmt, ...) { Temp scratch = scratch_begin(0,0); va_list args; va_start(args, fmt); String8 switch_name = lnk_string_from_cmd_switch_type(cmd_switch); String8 message = push_str8fv(scratch.arena, fmt, args); String8 output = push_str8f(scratch.arena, "/%S: %S", switch_name, message); - lnk_error_with_loc(code, obj_path, lib_path, "%S", output); + lnk_error_obj(code, obj, "%S", output); va_end(args); scratch_end(scratch); } internal void -lnk_error_cmd_switch_invalid_param_count(LNK_ErrorCode code, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch) +lnk_error_cmd_switch_invalid_param_count(LNK_ErrorCode code, LNK_Obj *obj, LNK_CmdSwitchType cmd_switch) { - lnk_error_cmd_switch(code, obj_path, lib_path, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch(code, obj, cmd_switch, "invalid number of parameters"); } internal void -lnk_error_cmd_switch_invalid_param(LNK_ErrorCode code, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8 param) +lnk_error_cmd_switch_invalid_param(LNK_ErrorCode code, LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8 param) { - lnk_error_cmd_switch(code, obj_path, lib_path, cmd_switch, "invalid parameter \"%S\"", param); + lnk_error_cmd_switch(code, obj, cmd_switch, "invalid parameter \"%S\"", param); } internal String8 -lnk_error_check_and_strip_quotes(LNK_ErrorCode error_code, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8 string) +lnk_error_check_and_strip_quotes(LNK_ErrorCode error_code, LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8 string) { String8 result = string; B32 starts_with_quote = str8_match_lit("\"", string, StringMatchFlag_RightSideSloppy); @@ -339,26 +339,26 @@ lnk_error_check_and_strip_quotes(LNK_ErrorCode error_code, String8 obj_path, Str result = str8_skip(result, 1); result = str8_chop(result, 1); } else { - lnk_error_cmd_switch(error_code, obj_path, lib_path, cmd_switch, "detected unmatched \" in \"%S\"", string); + lnk_error_cmd_switch(error_code, obj, cmd_switch, "detected unmatched \" in \"%S\"", string); } } return result; } internal void -lnk_error_invalid_uac_level_param(LNK_ErrorCode error_code, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8 input) +lnk_error_invalid_uac_level_param(LNK_ErrorCode error_code, LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8 input) { - lnk_error_cmd_switch(error_code, obj_path, lib_path, cmd_switch, "invalid param format, expected \"level={'asInvoker'|'highestAvailable'|'requireAdministrator'}\" but got \"%S\"", input); + lnk_error_cmd_switch(error_code, obj, cmd_switch, "invalid param format, expected \"level={'asInvoker'|'highestAvailable'|'requireAdministrator'}\" but got \"%S\"", input); } internal void -lnk_error_invalid_uac_ui_access_param(LNK_ErrorCode error_code, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8 input) +lnk_error_invalid_uac_ui_access_param(LNK_ErrorCode error_code, LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8 input) { - lnk_error_cmd_switch(error_code, obj_path, lib_path, cmd_switch, "invalid param format, expected \"uiAccess={'true'|'false'}\" but got \"%S\"", input); + lnk_error_cmd_switch(error_code, obj, cmd_switch, "invalid param format, expected \"uiAccess={'true'|'false'}\" but got \"%S\"", input); } internal B32 -lnk_cmd_switch_parse_version(String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, Version *ver_out) +lnk_cmd_switch_parse_version(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, Version *ver_out) { Temp scratch = scratch_begin(0,0); B32 is_parsed = 0; @@ -374,7 +374,7 @@ lnk_cmd_switch_parse_version(String8 obj_path, String8 lib_path, LNK_CmdSwitchTy maj_str = split_list.first->string; min_str = split_list.last->string; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid version format, too many dots, expected format: {N[.N]}"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid version format, too many dots, expected format: {N[.N]}"); goto exit; } @@ -384,13 +384,13 @@ lnk_cmd_switch_parse_version(String8 obj_path, String8 lib_path, LNK_CmdSwitchTy *ver_out = make_version(maj, min); is_parsed = 1; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unable to parse minor version"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unable to parse minor version"); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unable to parse major version"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unable to parse major version"); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); } exit:; @@ -399,7 +399,7 @@ exit:; } internal B32 -lnk_cmd_switch_parse_tuple(String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, Rng1U64 *tuple_out) +lnk_cmd_switch_parse_tuple(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, Rng1U64 *tuple_out) { if (value_strings.node_count == 1) { U64 value; @@ -407,7 +407,7 @@ lnk_cmd_switch_parse_tuple(String8 obj_path, String8 lib_path, LNK_CmdSwitchType tuple_out->v[0] = value; return 1; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unable to parse the parameter \"%S\"", value_strings.first->string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unable to parse the parameter \"%S\"", value_strings.first->string); } } else if (value_strings.node_count == 2) { U64 a,b; @@ -417,13 +417,13 @@ lnk_cmd_switch_parse_tuple(String8 obj_path, String8 lib_path, LNK_CmdSwitchType tuple_out->v[1] = b; return 1; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unable ot parse second parameter \"%S\"", value_strings.last->string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unable ot parse second parameter \"%S\"", value_strings.last->string); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unable to parse first parameter \"%S\"", value_strings.first->string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unable to parse first parameter \"%S\"", value_strings.first->string); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); } return 0; } @@ -448,24 +448,24 @@ lnk_try_parse_u64(String8 string, LNK_ParseU64Flags flags, U64 *value_out) } internal B32 -lnk_cmd_switch_parse_u64(String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, U64 *value_out, LNK_ParseU64Flags flags) +lnk_cmd_switch_parse_u64(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U64 *value_out, LNK_ParseU64Flags flags) { if (value_strings.node_count != 1) { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters, exepcted integer number as input"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters, exepcted integer number as input"); return 0; } if (!lnk_try_parse_u64(value_strings.first->string, flags, value_out)) { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unable to parse string \"%S\"", value_strings.first->string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unable to parse string \"%S\"", value_strings.first->string); return 0; } return 1; } internal B32 -lnk_cmd_switch_parse_u32(String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, U32 *value_out, LNK_ParseU64Flags flags) +lnk_cmd_switch_parse_u32(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U32 *value_out, LNK_ParseU64Flags flags) { U64 value; - if (lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &value, flags | LNK_ParseU64Flag_CheckUnder32bit)) { + if (lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &value, flags | LNK_ParseU64Flag_CheckUnder32bit)) { *value_out = (U32)value; return 1; } @@ -473,7 +473,7 @@ lnk_cmd_switch_parse_u32(String8 obj_path, String8 lib_path, LNK_CmdSwitchType c } internal B32 -lnk_cmd_switch_parse_u64_list(Arena *arena, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, U64List *list_out, LNK_ParseU64Flags flags) +lnk_cmd_switch_parse_u64_list(Arena *arena, LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U64List *list_out, LNK_ParseU64Flags flags) { for (String8Node *string_n = value_strings.first; string_n != 0; string_n = string_n->next) { U64 value; @@ -486,11 +486,11 @@ lnk_cmd_switch_parse_u64_list(Arena *arena, String8 obj_path, String8 lib_path, } internal B32 -lnk_cmd_switch_parse_flag(String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, LNK_SwitchState *value_out) +lnk_cmd_switch_parse_flag(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, LNK_SwitchState *value_out) { B32 is_parsed = 0; if (value_strings.node_count > 1) { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "too many parameters"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "too many parameters"); } else if (value_strings.node_count == 1) { if (str8_match_lit("no", value_strings.first->string, StringMatchFlag_CaseInsensitive)) { *value_out = LNK_SwitchState_No; @@ -502,7 +502,7 @@ lnk_cmd_switch_parse_flag(String8 obj_path, String8 lib_path, LNK_CmdSwitchType *value_out = 1; is_parsed = 1; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid parameter \"%S\"", value_strings.first->string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid parameter \"%S\"", value_strings.first->string); } } else { *value_out = LNK_SwitchState_Yes; @@ -512,10 +512,10 @@ lnk_cmd_switch_parse_flag(String8 obj_path, String8 lib_path, LNK_CmdSwitchType } internal void -lnk_cmd_switch_set_flag_inv_16(String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, U16 *flags, U16 bits) +lnk_cmd_switch_set_flag_inv_16(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U16 *flags, U16 bits) { LNK_SwitchState state; - if (lnk_cmd_switch_parse_flag(obj_path, lib_path, cmd_switch, value_strings, &state)) { + if (lnk_cmd_switch_parse_flag(obj, cmd_switch, value_strings, &state)) { switch (state) { case LNK_SwitchState_Null: break; case LNK_SwitchState_Yes : *flags |= bits; break; @@ -525,10 +525,10 @@ lnk_cmd_switch_set_flag_inv_16(String8 obj_path, String8 lib_path, LNK_CmdSwitch } internal void -lnk_cmd_switch_set_flag_inv_64(String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, U64 *flags, U64 bits) +lnk_cmd_switch_set_flag_inv_64(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U64 *flags, U64 bits) { LNK_SwitchState state; - if (lnk_cmd_switch_parse_flag(obj_path, lib_path, cmd_switch, value_strings, &state)) { + if (lnk_cmd_switch_parse_flag(obj, cmd_switch, value_strings, &state)) { switch (state) { case LNK_SwitchState_Null: break; case LNK_SwitchState_Yes : *flags |= bits; break; @@ -538,10 +538,10 @@ lnk_cmd_switch_set_flag_inv_64(String8 obj_path, String8 lib_path, LNK_CmdSwitch } internal void -lnk_cmd_switch_set_flag_16(String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, U16 *flags, U16 bits) +lnk_cmd_switch_set_flag_16(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U16 *flags, U16 bits) { LNK_SwitchState state; - if (lnk_cmd_switch_parse_flag(obj_path, lib_path, cmd_switch, value_strings, &state)) { + if (lnk_cmd_switch_parse_flag(obj, cmd_switch, value_strings, &state)) { switch (state) { case LNK_SwitchState_Null: break; case LNK_SwitchState_Yes : *flags |= bits; break; @@ -551,10 +551,10 @@ lnk_cmd_switch_set_flag_16(String8 obj_path, String8 lib_path, LNK_CmdSwitchType } internal void -lnk_cmd_switch_set_flag_32(String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, U32 *flags, U32 bits) +lnk_cmd_switch_set_flag_32(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U32 *flags, U32 bits) { LNK_SwitchState state; - if (lnk_cmd_switch_parse_flag(obj_path, lib_path, cmd_switch, value_strings, &state)) { + if (lnk_cmd_switch_parse_flag(obj, cmd_switch, value_strings, &state)) { switch (state) { case LNK_SwitchState_Null: break; case LNK_SwitchState_Yes : *flags |= bits; break; @@ -564,10 +564,10 @@ lnk_cmd_switch_set_flag_32(String8 obj_path, String8 lib_path, LNK_CmdSwitchType } internal void -lnk_cmd_switch_set_flag_64(String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, U64 *flags, U64 bits) +lnk_cmd_switch_set_flag_64(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U64 *flags, U64 bits) { LNK_SwitchState state; - if (lnk_cmd_switch_parse_flag(obj_path, lib_path, cmd_switch, value_strings, &state)) { + if (lnk_cmd_switch_parse_flag(obj, cmd_switch, value_strings, &state)) { switch (state) { case LNK_SwitchState_Null: break; case LNK_SwitchState_Yes : *flags |= bits; break; @@ -577,31 +577,31 @@ lnk_cmd_switch_set_flag_64(String8 obj_path, String8 lib_path, LNK_CmdSwitchType } internal B32 -lnk_cmd_switch_parse_string(String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, String8 *string_out) +lnk_cmd_switch_parse_string(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, String8 *string_out) { if (value_strings.node_count == 1) { if (value_strings.first->string.size > 0) { *string_out = value_strings.first->string; return 1; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "empty string is not permitted"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "empty string is not permitted"); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); } return 0; } internal void -lnk_cmd_switch_parse_string_copy(Arena *arena, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, String8 *string_out) +lnk_cmd_switch_parse_string_copy(Arena *arena, LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, String8 *string_out) { - if (lnk_cmd_switch_parse_string(obj_path, lib_path, cmd_switch, value_strings, string_out)) { + if (lnk_cmd_switch_parse_string(obj, cmd_switch, value_strings, string_out)) { *string_out = push_str8_copy(arena, *string_out); } } internal B32 -lnk_parse_alt_name_directive(String8 string, String8 obj_path, String8 lib_path, LNK_AltName *alt_out) +lnk_parse_alt_name_directive(String8 string, LNK_Obj *obj, LNK_AltName *alt_out) { Temp scratch = scratch_begin(0,0); B32 is_parse_ok = 0; @@ -611,14 +611,14 @@ lnk_parse_alt_name_directive(String8 string, String8 obj_path, String8 lib_path, alt_out->to = pair.last->string; is_parse_ok = 1; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, LNK_CmdSwitch_AlternateName, "syntax error in \"%S\", expected format \"FROM=TO\"", string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, LNK_CmdSwitch_AlternateName, "syntax error in \"%S\", expected format \"FROM=TO\"", string); } scratch_end(scratch); return is_parse_ok; } internal B32 -lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_path, String8 lib_path, PE_ExportParse *export_out) +lnk_parse_export_directive_ex(Arena *arena, String8List directive, LNK_Obj *obj, PE_ExportParse *export_out) { ProfBeginFunction(); Temp scratch = scratch_begin(&arena, 1); @@ -637,7 +637,7 @@ lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_p name = alias_name_split.first->string; } else { String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); - lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); + lnk_error_obj(LNK_Error_IllExport, obj, "invalid export directive \"/EXPORT:%S\"", d); goto exit; } @@ -665,12 +665,12 @@ lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_p import_by = COFF_ImportBy_Ordinal; } else { String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); - lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "ordinal value must fit into 16-bit integer, \"/EXPORT:%S\"", d); + lnk_error_obj(LNK_Error_IllExport, obj, "ordinal value must fit into 16-bit integer, \"/EXPORT:%S\"", d); goto exit; } } else { String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); - lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); + lnk_error_obj(LNK_Error_IllExport, obj, "invalid export directive \"/EXPORT:%S\"", d); goto exit; } @@ -692,7 +692,7 @@ lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_p type = coff_import_header_type_from_string(str8_list_pop_front(&flags)->string); if (type == COFF_ImportType_Invalid) { String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); - lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); + lnk_error_obj(LNK_Error_IllExport, obj, "invalid export directive \"/EXPORT:%S\"", d); goto exit; } } @@ -700,13 +700,13 @@ lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_p // are there leftover nodes? if (flags.node_count != 0) { String8 d = str8_list_join(scratch.arena, &directive, &(StringJoin){.sep=str8_lit(",")}); - lnk_error_with_loc(LNK_Error_IllExport, obj_path, lib_path, "invalid export directive \"/EXPORT:%S\"", d); + lnk_error_obj(LNK_Error_IllExport, obj, "invalid export directive \"/EXPORT:%S\"", d); goto exit; } // fill out export - export_out->obj_path = obj_path; - export_out->lib_path = lib_path; + export_out->obj_path = obj->path; + export_out->lib_path = lnk_obj_get_lib_path(obj); export_out->name = push_str8_copy(arena, name); export_out->alias = push_str8_copy(arena, alias); export_out->type = type; @@ -726,11 +726,11 @@ exit:; } internal B32 -lnk_parse_export_directive(Arena *arena, String8 directive, String8 obj_path, String8 lib_path, PE_ExportParse *export_out) +lnk_parse_export_directive(Arena *arena, String8 directive, LNK_Obj *obj, PE_ExportParse *export_out) { Temp scratch = scratch_begin(&arena, 1); String8List split_directive = str8_split_by_string_chars(scratch.arena, directive, str8_lit(","), 0); - B32 is_parsed = lnk_parse_export_directive_ex(arena, split_directive, obj_path, lib_path, export_out); + B32 is_parsed = lnk_parse_export_directive_ex(arena, split_directive, obj, export_out); scratch_end(scratch); return is_parsed; } @@ -747,7 +747,7 @@ lnk_merge_directive_list_push(Arena *arena, LNK_MergeDirectiveList *list, LNK_Me } internal B32 -lnk_parse_merge_directive(String8 string, String8 obj_path, String8 lib_path, LNK_MergeDirective *out) +lnk_parse_merge_directive(String8 string, LNK_Obj *obj, LNK_MergeDirective *out) { Temp scratch = scratch_begin(0, 0); B32 is_parse_ok = 0; @@ -757,7 +757,7 @@ lnk_parse_merge_directive(String8 string, String8 obj_path, String8 lib_path, LN out->dst = list.last->string; is_parse_ok = 1; } else { - lnk_error_cmd_switch(LNK_Warning_InvalidMergeDirectiveFormat, obj_path, lib_path, LNK_CmdSwitch_Merge, "unable to parse merge directive, expected format \"/MERGE:FROM=TO\" but got \"%S\"", string); + lnk_error_cmd_switch(LNK_Warning_InvalidMergeDirectiveFormat, obj, LNK_CmdSwitch_Merge, "unable to parse merge directive, expected format \"/MERGE:FROM=TO\" but got \"%S\"", string); } scratch_end(scratch); return is_parse_ok; @@ -785,12 +785,7 @@ lnk_get_default_function_pad_min(COFF_MachineType machine) function_pad_min = 6; } break; default: { - lnk_error_cmd_switch(LNK_Error_Cmdl, - str8_zero(), - str8_zero(), - LNK_CmdSwitch_FunctionPadMin, - "default paramter is not defined for: %S", - coff_string_from_machine_type(machine)); + lnk_error_cmd_switch(LNK_Error_Cmdl, 0, LNK_CmdSwitch_FunctionPadMin, "default paramter is not defined for: %S", coff_string_from_machine_type(machine)); } break; } return function_pad_min; @@ -1062,7 +1057,7 @@ lnk_unwrap_rsp(Arena *arena, String8List arg_list) } internal void -lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_name, String8List value_strings, String8 obj_path, String8 lib_path) +lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_name, String8List value_strings, LNK_Obj *obj) { Temp scratch = scratch_begin(&arena,1); @@ -1071,7 +1066,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam switch (cmd_switch) { case LNK_CmdSwitch_Null: { String8 value = str8_list_join(scratch.arena, &value_strings, &(StringJoin){.sep=str8_lit_comp(",")}); - lnk_error_with_loc(LNK_Warning_UnknownSwitch, obj_path, lib_path, "unknown switch: \"/%S%s%S\"", cmd_name, value.size ? ":" : "", value); + lnk_error_obj(LNK_Warning_UnknownSwitch, obj, "unknown switch: \"/%S%s%S\"", cmd_name, value.size ? ":" : "", value); } break; default: break; @@ -1082,21 +1077,21 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_Align: { - lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &config->sect_align, LNK_ParseU64Flag_CheckPow2); + lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &config->sect_align, LNK_ParseU64Flag_CheckPow2); } break; case LNK_CmdSwitch_AllowBind: { - lnk_cmd_switch_set_flag_inv_16(obj_path, lib_path, cmd_switch, value_strings, &config->dll_characteristics, PE_DllCharacteristic_NO_BIND); + lnk_cmd_switch_set_flag_inv_16(obj, cmd_switch, value_strings, &config->dll_characteristics, PE_DllCharacteristic_NO_BIND); } break; case LNK_CmdSwitch_AllowIsolation: { - lnk_cmd_switch_set_flag_inv_16(obj_path, lib_path, cmd_switch, value_strings, &config->dll_characteristics, PE_DllCharacteristic_NO_ISOLATION); + lnk_cmd_switch_set_flag_inv_16(obj, cmd_switch, value_strings, &config->dll_characteristics, PE_DllCharacteristic_NO_ISOLATION); } break; case LNK_CmdSwitch_AlternateName: { if (value_strings.node_count == 1) { LNK_AltName alt_name; - if (lnk_parse_alt_name_directive(value_strings.first->string, obj_path, lib_path, &alt_name)) { + if (lnk_parse_alt_name_directive(value_strings.first->string, obj, &alt_name)) { alt_name.from = push_str8_copy(arena, alt_name.from); alt_name.to = push_str8_copy(arena, alt_name.to); LNK_AltNameNode *alt_name_n = push_array(arena, LNK_AltNameNode, 1); @@ -1105,12 +1100,12 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam config->alt_name_list.count += 1; } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); } } break; case LNK_CmdSwitch_AppContainer: { - lnk_cmd_switch_set_flag_16(obj_path, lib_path, cmd_switch, value_strings, &config->dll_characteristics, PE_DllCharacteristic_APPCONTAINER); + lnk_cmd_switch_set_flag_16(obj, cmd_switch, value_strings, &config->dll_characteristics, PE_DllCharacteristic_APPCONTAINER); } break; case LNK_CmdSwitch_Base: { @@ -1124,20 +1119,20 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam lnk_not_implemented("Response files are not implemented for /BASE"); } else { Rng1U64 addr_size = {0}; - if (lnk_cmd_switch_parse_tuple(obj_path, lib_path, cmd_switch, value_strings, &addr_size)) { + if (lnk_cmd_switch_parse_tuple(obj, cmd_switch, value_strings, &addr_size)) { config->user_base_addr = addr_size.v[0]; config->max_image_size = addr_size.v[1]; } } } else if (value_strings.node_count == 1) { U64 addr; - if (lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &addr, 0)) { + if (lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &addr, 0)) { config->user_base_addr = addr; } } else if (value_strings.node_count == 0) { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "expected at least 1 parameter"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "expected at least 1 parameter"); } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "too many parameters"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "too many parameters"); } } break; @@ -1148,23 +1143,23 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam LNK_DebugMode debug_mode = lnk_debug_mode_from_string(value_strings.first->string); if (debug_mode == LNK_DebugMode_GHash) { config->debug_mode = LNK_DebugMode_Full; - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj_path, lib_path, cmd_switch, "GHASH is not supported, switching to FULL"); + lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "GHASH is not supported, switching to FULL"); } else if (debug_mode == LNK_DebugMode_FastLink) { config->debug_mode = LNK_DebugMode_Full; - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj_path, lib_path, cmd_switch, "FASTLINK is not supported, switching to FULL"); + lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "FASTLINK is not supported, switching to FULL"); } else if (debug_mode != LNK_DebugMode_Null) { config->debug_mode = debug_mode; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid parameter \"%S\"", value_strings.first->string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid parameter \"%S\"", value_strings.first->string); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); } } break; case LNK_CmdSwitch_DefaultLib: { String8List default_lib_list = str8_list_copy(arena, &value_strings); - if (obj_path.size) { + if (obj) { str8_list_concat_in_place(&config->input_obj_lib_list, &default_lib_list); } else { str8_list_concat_in_place(&config->input_default_lib_list, &default_lib_list); @@ -1173,7 +1168,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam case LNK_CmdSwitch_Delay: { if (value_strings.node_count == 0 || value_strings.node_count > 1) { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); } else { String8 value = value_strings.first->string; if (str8_match_lit("unload", value, StringMatchFlag_CaseInsensitive)) { @@ -1181,7 +1176,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } else if (str8_match_lit("nobind", value, StringMatchFlag_CaseInsensitive)) { config->import_table_emit_biat = 0; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unknown parameter \"%S\"", value); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unknown parameter \"%S\"", value); } } } break; @@ -1196,19 +1191,19 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_DynamicBase: { - lnk_cmd_switch_set_flag_16(obj_path, lib_path, cmd_switch, value_strings, &config->dll_characteristics, PE_DllCharacteristic_DYNAMIC_BASE); + lnk_cmd_switch_set_flag_16(obj, cmd_switch, value_strings, &config->dll_characteristics, PE_DllCharacteristic_DYNAMIC_BASE); } break; case LNK_CmdSwitch_Dump: { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unsupported switch; binary dump is done by passing /DUMP to link.exe"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unsupported switch; binary dump is done by passing /DUMP to link.exe"); } break; case LNK_CmdSwitch_Entry: { String8 new_entry_point_name = {0}; - lnk_cmd_switch_parse_string_copy(arena, obj_path, lib_path, cmd_switch, value_strings, &new_entry_point_name); + lnk_cmd_switch_parse_string_copy(arena, obj, cmd_switch, value_strings, &new_entry_point_name); if (config->entry_point_name.size) { - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj_path, lib_path, cmd_switch, "unable to redefine entry point \"%S\" to \"%S\"", config->entry_point_name, new_entry_point_name); + lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "unable to redefine entry point \"%S\" to \"%S\"", config->entry_point_name, new_entry_point_name); break; } @@ -1217,7 +1212,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam case LNK_CmdSwitch_Export: { PE_ExportParse export_parse = {0}; - if (lnk_parse_export_directive_ex(arena, value_strings, obj_path, lib_path, &export_parse)) { + if (lnk_parse_export_directive_ex(arena, value_strings, obj, &export_parse)) { PE_ExportParseNode *exp_n = 0; String8 export_name = pe_name_from_export_parse(&export_parse); hash_table_search_string_raw(config->export_ht, export_name, &exp_n); @@ -1252,7 +1247,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam report:; if (is_ambiguous) { - lnk_error_with_loc(LNK_Error_IllExport, export_parse.obj_path, export_parse.lib_path, "ambiguous symbol export %S", export_parse.name); + lnk_error_obj(LNK_Error_IllExport, obj, "ambiguous symbol export %S", export_parse.name); } } } @@ -1263,11 +1258,11 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_FileAlign: { - lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &config->file_align, LNK_ParseU64Flag_CheckPow2); + lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &config->file_align, LNK_ParseU64Flag_CheckPow2); } break; case LNK_CmdSwitch_Fixed: { - lnk_cmd_switch_set_flag_64(obj_path, lib_path, cmd_switch, value_strings, &config->flags, LNK_ConfigFlag_Fixed); + lnk_cmd_switch_set_flag_64(obj, cmd_switch, value_strings, &config->flags, LNK_ConfigFlag_Fixed); } break; case LNK_CmdSwitch_FunctionPadMin: { @@ -1275,7 +1270,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam config->function_pad_min = 0; config->infer_function_pad_min = 1; } else { - lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &config->function_pad_min, LNK_ParseU64Flag_CheckUnder32bit); + lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &config->function_pad_min, LNK_ParseU64Flag_CheckUnder32bit); } config->do_function_pad_min = LNK_SwitchState_Yes; } break; @@ -1284,33 +1279,33 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam Rng1U64 reserve_commit; reserve_commit.v[0] = config->heap_reserve; reserve_commit.v[1] = config->heap_commit; - if (lnk_cmd_switch_parse_tuple(obj_path, lib_path, cmd_switch, value_strings, &reserve_commit)) { + if (lnk_cmd_switch_parse_tuple(obj, cmd_switch, value_strings, &reserve_commit)) { if (reserve_commit.v[0] >= reserve_commit.v[1]) { U64 reserve_aligned = AlignPow2(reserve_commit.v[0], 4); U64 commit_aligned = AlignPow2(reserve_commit.v[1], 4); #if 0 if (reserve_aligned != reserve_commit.v[0]) { - lnk_error_cmd_switch(LNK_WARNING_CMDL, obj_path, lib_path, cmd_switch, "reserve is not power of two, aligned to %u bytes", reserve_aligned); + lnk_error_cmd_switch(LNK_WARNING_CMDL, obj, cmd_switch, "reserve is not power of two, aligned to %u bytes", reserve_aligned); } if (commit_aligned != reserve_commit.v[1]) { - lnk_error_cmd_switch(LNK_WARNING_CMDL, obj_path, lib_path, cmd_switch, "commit is not power of two, aligned to %u bytes", commit_aligned); + lnk_error_cmd_switch(LNK_WARNING_CMDL, obj, cmd_switch, "commit is not power of two, aligned to %u bytes", commit_aligned); } #endif config->heap_reserve = reserve_aligned; config->heap_commit = commit_aligned; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "commit(%llu) is greater than reserve(%llu)", reserve_commit.v[1], reserve_commit.v[0]); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "commit(%llu) is greater than reserve(%llu)", reserve_commit.v[1], reserve_commit.v[0]); } } } break; case LNK_CmdSwitch_HighEntropyVa: { - lnk_cmd_switch_set_flag_16(obj_path, lib_path, cmd_switch, value_strings, &config->dll_characteristics, PE_DllCharacteristic_HIGH_ENTROPY_VA); + lnk_cmd_switch_set_flag_16(obj, cmd_switch, value_strings, &config->dll_characteristics, PE_DllCharacteristic_HIGH_ENTROPY_VA); } break; case LNK_CmdSwitch_Ignore: { U64 error_code; - if (lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &error_code, 0)) { + if (lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &error_code, 0)) { switch (error_code) { case LNK_MsWarningCode_UnsuedDelayLoadDll: { lnk_suppress_error(LNK_Warning_UnusedDelayLoadDll); @@ -1329,7 +1324,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_ImpLib: { - lnk_cmd_switch_parse_string_copy(arena, obj_path, lib_path, cmd_switch, value_strings, &config->imp_lib_name); + lnk_cmd_switch_parse_string_copy(arena, obj, cmd_switch, value_strings, &config->imp_lib_name); } break; case LNK_CmdSwitch_Include: { @@ -1339,19 +1334,19 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam case LNK_CmdSwitch_Incremental: { LNK_SwitchState state; - if (lnk_cmd_switch_parse_flag(obj_path, lib_path, cmd_switch, value_strings, &state)) { + if (lnk_cmd_switch_parse_flag(obj, cmd_switch, value_strings, &state)) { if (state == LNK_SwitchState_Yes) { - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj_path, lib_path, cmd_switch, "incremental linkage is not supported"); + lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "incremental linkage is not supported"); } } } break; case LNK_CmdSwitch_LargeAddressAware: { - lnk_cmd_switch_set_flag_16(obj_path, lib_path, cmd_switch, value_strings, &config->file_characteristics, PE_ImageFileCharacteristic_LARGE_ADDRESS_AWARE); + lnk_cmd_switch_set_flag_16(obj, cmd_switch, value_strings, &config->file_characteristics, PE_ImageFileCharacteristic_LARGE_ADDRESS_AWARE); } break; case LNK_CmdSwitch_Lib: { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unsupported switch; static library is created by passing /LIB to link.exe"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unsupported switch; static library is created by passing /LIB to link.exe"); } break; case LNK_CmdSwitch_LibPath: { @@ -1359,7 +1354,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam for (String8Node *dir_n = lib_dir_list.first; dir_n != 0; dir_n = dir_n->next) { if (!os_folder_path_exists(dir_n->string)) { String8 full_path = os_full_path_from_path(scratch.arena, dir_n->string); - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj_path, lib_path, cmd_switch, "path doesn't exist %S", full_path); + lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "path doesn't exist %S", full_path); } } str8_list_concat_in_place(&config->lib_dir_list, &lib_dir_list); @@ -1371,10 +1366,10 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam if (machine != COFF_MachineType_Unknown) { config->machine = machine; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unknown parameter \"%S\"", value_strings.first->string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unknown parameter \"%S\"", value_strings.first->string); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); } } break; @@ -1397,29 +1392,29 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam if (try_u64_from_str8_c_rules(res_id_arr.v[1], &resource_id)) { config->manifest_resource_id = push_u64(arena, resource_id); } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unable to parse resource_id \"%S\"", res_id_arr.v[1]); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unable to parse resource_id \"%S\"", res_id_arr.v[1]); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid syntax expected form ID=# but got \"%S\"", param_arr.v[1]); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid syntax expected form ID=# but got \"%S\"", param_arr.v[1]); } } else { - lnk_error_cmd_switch_invalid_param(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, param_arr.v[0]); + lnk_error_cmd_switch_invalid_param(LNK_Error_Cmdl, obj, cmd_switch, param_arr.v[0]); } } else { - lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } } else if (str8_match_lit("no", param_arr.v[0], StringMatchFlag_CaseInsensitive)) { config->manifest_opt = LNK_ManifestOpt_No; } else { - lnk_error_cmd_switch_invalid_param(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, param_arr.v[0]); + lnk_error_cmd_switch_invalid_param(LNK_Error_Cmdl, obj, cmd_switch, param_arr.v[0]); } } else { - lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } } else if (value_strings.node_count == 0) { config->manifest_opt = LNK_ManifestOpt_WriteToFile; } else { - lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } } break; @@ -1433,7 +1428,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_ManifestFile: { - lnk_cmd_switch_parse_string_copy(arena, obj_path, lib_path, cmd_switch, value_strings, &config->manifest_name); + lnk_cmd_switch_parse_string_copy(arena, obj, cmd_switch, value_strings, &config->manifest_name); } break; case LNK_CmdSwitch_ManifestInput: { @@ -1442,7 +1437,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam case LNK_CmdSwitch_ManifestUac: { if (value_strings.node_count == 1) { - String8 uac = lnk_error_check_and_strip_quotes(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, value_strings.first->string); + String8 uac = lnk_error_check_and_strip_quotes(LNK_Error_Cmdl, obj, cmd_switch, value_strings.first->string); String8List param_list = str8_split_by_string_chars(scratch.arena, uac, str8_lit(" "), 0); String8Array param_arr = str8_array_from_list(scratch.arena, ¶m_list); if (param_arr.count > 0) { @@ -1468,44 +1463,44 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam // ui access was parsed! config->manifest_ui_access = push_str8_copy(arena, ui_access); } else { - lnk_error_invalid_uac_ui_access_param(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, ui_access_param); + lnk_error_invalid_uac_ui_access_param(LNK_Error_Cmdl, obj, cmd_switch, ui_access_param); } } else { - lnk_error_invalid_uac_ui_access_param(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, ui_access_param); + lnk_error_invalid_uac_ui_access_param(LNK_Error_Cmdl, obj, cmd_switch, ui_access_param); } } } else { - lnk_error_invalid_uac_level_param(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, level_param); + lnk_error_invalid_uac_level_param(LNK_Error_Cmdl, obj, cmd_switch, level_param); } } else { - lnk_error_invalid_uac_level_param(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, level_param); + lnk_error_invalid_uac_level_param(LNK_Error_Cmdl, obj, cmd_switch, level_param); } } else { - lnk_error_invalid_uac_level_param(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, level_param); + lnk_error_invalid_uac_level_param(LNK_Error_Cmdl, obj, cmd_switch, level_param); } } else if (str8_match_lit("no", param_arr.v[0], StringMatchFlag_CaseInsensitive)) { config->manifest_uac = 0; } else { - lnk_error_cmd_switch_invalid_param(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, param_arr.v[0]); + lnk_error_cmd_switch_invalid_param(LNK_Error_Cmdl, obj, cmd_switch, param_arr.v[0]); } } else { - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj_path, lib_path, cmd_switch, "empty param string"); + lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "empty param string"); } } else { - lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } } break; case LNK_CmdSwitch_Merge: { if (value_strings.node_count == 1) { LNK_MergeDirective merge = {0}; - if (lnk_parse_merge_directive(value_strings.first->string, obj_path, lib_path, &merge)) { + if (lnk_parse_merge_directive(value_strings.first->string, obj, &merge)) { merge.src = push_str8_copy(arena, merge.src); merge.dst = push_str8_copy(arena, merge.dst); lnk_merge_directive_list_push(arena, &config->merge_list, merge); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters %d", value_strings.node_count); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters %d", value_strings.node_count); } } break; @@ -1514,7 +1509,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam for (String8Node *node = value_strings.first; node != 0; node = node->next) { String8 ext = str8_skip_last_dot(node->string); if (!str8_match_lit("natvis", ext, StringMatchFlag_CaseInsensitive)) { - lnk_error_cmd_switch(LNK_Warning_InvalidNatvisFileExt, obj_path, lib_path, cmd_switch, "Visual Studio expects .natvis extension: \"%S\"", node->string); + lnk_error_cmd_switch(LNK_Warning_InvalidNatvisFileExt, obj, cmd_switch, "Visual Studio expects .natvis extension: \"%S\"", node->string); } } @@ -1545,7 +1540,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_NxCompat: { - lnk_cmd_switch_set_flag_16(obj_path, lib_path, cmd_switch, value_strings, &config->dll_characteristics, PE_DllCharacteristic_NX_COMPAT); + lnk_cmd_switch_set_flag_16(obj, cmd_switch, value_strings, &config->dll_characteristics, PE_DllCharacteristic_NX_COMPAT); } break; case LNK_CmdSwitch_Opt: { @@ -1559,13 +1554,13 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam str8_match_lit("icf=", param, StringMatchFlag_CaseInsensitive | StringMatchFlag_RightSideSloppy)) { String8List vals = str8_split_by_string_chars(scratch.arena, param, str8_lit("="), 0); if (vals.node_count > 2) { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "too many parameters for iteration"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "too many parameters for iteration"); continue; } if (vals.node_count == 2) { B32 is_parsed = try_u64_from_str8_c_rules(vals.last->string, &config->opt_iter_count); if (!is_parsed) { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unable to parse iterations \"%S\"", vals.last->string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unable to parse iterations \"%S\"", vals.last->string); continue; } } @@ -1577,35 +1572,35 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } else if (str8_match_lit("nolibr", param, StringMatchFlag_CaseInsensitive)) { config->opt_lbr = LNK_SwitchState_No; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unknown option \"%S\"", param); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unknown option \"%S\"", param); } } } break; case LNK_CmdSwitch_Out: { - lnk_cmd_switch_parse_string_copy(arena, obj_path, lib_path, cmd_switch, value_strings, &config->image_name); + lnk_cmd_switch_parse_string_copy(arena, obj, cmd_switch, value_strings, &config->image_name); } break; case LNK_CmdSwitch_Pdb: { - lnk_cmd_switch_parse_string_copy(arena, obj_path, lib_path, cmd_switch, value_strings, &config->pdb_name); + lnk_cmd_switch_parse_string_copy(arena, obj, cmd_switch, value_strings, &config->pdb_name); } break; case LNK_CmdSwitch_PdbAltPath: { // see :PdbAltPath - lnk_cmd_switch_parse_string_copy(arena, obj_path, lib_path, cmd_switch, value_strings, &config->pdb_alt_path); + lnk_cmd_switch_parse_string_copy(arena, obj, cmd_switch, value_strings, &config->pdb_alt_path); } break; case LNK_CmdSwitch_PdbPageSize: { U64 page_size; - if (lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &page_size, LNK_ParseU64Flag_CheckPow2)) { + if (lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &page_size, LNK_ParseU64Flag_CheckPow2)) { if (page_size >= MSF_MIN_PAGE_SIZE) { if (page_size < MSF_MAX_PAGE_SIZE) { config->pdb_page_size = page_size; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "page size must be <= %u bytes", MSF_MAX_PAGE_SIZE); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "page size must be <= %u bytes", MSF_MAX_PAGE_SIZE); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "page size must be >= %u bytes", MSF_MIN_PAGE_SIZE); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "page size must be >= %u bytes", MSF_MIN_PAGE_SIZE); } } } break; @@ -1614,7 +1609,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam if (value_strings.node_count == 0) { config->flags |= LNK_ConfigFlag_WriteImageChecksum; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); } } break; @@ -1622,22 +1617,22 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam Rng1U64 reserve_commit; reserve_commit.v[0] = config->stack_reserve; reserve_commit.v[1] = config->stack_commit; - if (lnk_cmd_switch_parse_tuple(obj_path, lib_path, cmd_switch, value_strings, &reserve_commit)) { + if (lnk_cmd_switch_parse_tuple(obj, cmd_switch, value_strings, &reserve_commit)) { if (reserve_commit.v[0] >= reserve_commit.v[1]) { U64 reserve_aligned = AlignPow2(reserve_commit.v[0], 4); U64 commit_aligned = AlignPow2(reserve_commit.v[1], 4); #if 0 if (reserve_aligned != reserve_commit.v[0]) { - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj_path, lib_path, cmd_switch, "reserve is not power of two, aligned to %u", reserve_aligned); + lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "reserve is not power of two, aligned to %u", reserve_aligned); } if (commit_aligned != reserve_commit.v[1]) { - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj_path, lib_path, cmd_switch, "commit is not power of two, aligned to %u", commit_aligned); + lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "commit is not power of two, aligned to %u", commit_aligned); } #endif config->stack_reserve = reserve_aligned; config->stack_commit = commit_aligned; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "commit(%llu) is greater than reserve(%llu)", reserve_commit.v[1], reserve_commit.v[0]); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "commit(%llu) is greater than reserve(%llu)", reserve_commit.v[1], reserve_commit.v[0]); } } } break; @@ -1648,7 +1643,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam PE_WindowsSubsystem subsystem = pe_subsystem_from_string(value_strings.first->string); if (subsystem != PE_WindowsSubsystem_UNKNOWN) { if (config->subsystem != PE_WindowsSubsystem_UNKNOWN) { - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj_path, lib_path, cmd_switch, "overriding subystem \"%S\" with \"%S\"", + lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "overriding subystem \"%S\" with \"%S\"", pe_string_from_subsystem(config->subsystem), pe_string_from_subsystem(subsystem)); } @@ -1657,13 +1652,13 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam // parse version (optional) if (value_strings.node_count == 2) { str8_list_pop_front(&value_strings); // pop subsystem parameter - lnk_cmd_switch_parse_version(obj_path, lib_path, cmd_switch, value_strings, &config->subsystem_ver); + lnk_cmd_switch_parse_version(obj, cmd_switch, value_strings, &config->subsystem_ver); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid subsystem \"%S\"", value_strings.first->string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid subsystem \"%S\"", value_strings.first->string); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); } } break; @@ -1671,15 +1666,15 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_TsAware: { - lnk_cmd_switch_set_flag_inv_64(obj_path, lib_path, cmd_switch, value_strings, &config->flags, LNK_ConfigFlag_NoTsAware); + lnk_cmd_switch_set_flag_inv_64(obj, cmd_switch, value_strings, &config->flags, LNK_ConfigFlag_NoTsAware); } break; case LNK_CmdSwitch_Version: { - lnk_cmd_switch_parse_version(obj_path, lib_path, cmd_switch, value_strings, &config->image_ver); + lnk_cmd_switch_parse_version(obj, cmd_switch, value_strings, &config->image_ver); } break; case LNK_CmdSwitch_Rad_Age: { - lnk_cmd_switch_parse_u32(obj_path, lib_path, cmd_switch, value_strings, &config->age, 0); + lnk_cmd_switch_parse_u32(obj, cmd_switch, value_strings, &config->age, 0); } break; case LNK_CmdSwitch_Rad_BuildInfo: { @@ -1688,45 +1683,45 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll: { - lnk_cmd_switch_set_flag_64(obj_path, lib_path, cmd_switch, value_strings, &config->flags, LNK_ConfigFlag_CheckUnusedDelayLoadDll); + lnk_cmd_switch_set_flag_64(obj, cmd_switch, value_strings, &config->flags, LNK_ConfigFlag_CheckUnusedDelayLoadDll); } break; case LNK_CmdSwitch_Rad_Map: { - lnk_cmd_switch_parse_string_copy(arena, obj_path, lib_path, cmd_switch, value_strings, &config->rad_chunk_map_name); + lnk_cmd_switch_parse_string_copy(arena, obj, cmd_switch, value_strings, &config->rad_chunk_map_name); config->rad_chunk_map = LNK_SwitchState_Yes; } break; case LNK_CmdSwitch_Rad_MemoryMapFiles: { - lnk_cmd_switch_set_flag_32(obj_path, lib_path, cmd_switch, value_strings, &config->io_flags, LNK_IO_Flags_MemoryMapFiles); + lnk_cmd_switch_set_flag_32(obj, cmd_switch, value_strings, &config->io_flags, LNK_IO_Flags_MemoryMapFiles); } break; case LNK_CmdSwitch_Rad_Debug: { - lnk_cmd_switch_parse_flag(obj_path, lib_path, cmd_switch, value_strings, &config->rad_debug); + lnk_cmd_switch_parse_flag(obj, cmd_switch, value_strings, &config->rad_debug); } break; case LNK_CmdSwitch_Rad_DebugName: { // :Rad_DebugAltPath - lnk_cmd_switch_parse_string_copy(arena, obj_path, lib_path, cmd_switch, value_strings, &config->rad_debug_name); + lnk_cmd_switch_parse_string_copy(arena, obj, cmd_switch, value_strings, &config->rad_debug_name); } break; case LNK_CmdSwitch_Rad_DebugAltPath: { - lnk_cmd_switch_parse_string_copy(arena, obj_path, lib_path, cmd_switch, value_strings, &config->rad_debug_alt_path); + lnk_cmd_switch_parse_string_copy(arena, obj, cmd_switch, value_strings, &config->rad_debug_alt_path); } break; case LNK_CmdSwitch_Rad_DelayBind: { - lnk_cmd_switch_parse_flag(obj_path, lib_path, cmd_switch, value_strings, &config->import_table_emit_biat); + lnk_cmd_switch_parse_flag(obj, cmd_switch, value_strings, &config->import_table_emit_biat); } break; case LNK_CmdSwitch_Rad_DoMerge: { - lnk_cmd_switch_set_flag_64(obj_path, lib_path, cmd_switch, value_strings, &config->flags, LNK_ConfigFlag_Merge); + lnk_cmd_switch_set_flag_64(obj, cmd_switch, value_strings, &config->flags, LNK_ConfigFlag_Merge); } break; case LNK_CmdSwitch_Rad_EnvLib: { - lnk_cmd_switch_set_flag_64(obj_path, lib_path, cmd_switch, value_strings, &config->flags, LNK_ConfigFlag_EnvLib); + lnk_cmd_switch_set_flag_64(obj, cmd_switch, value_strings, &config->flags, LNK_ConfigFlag_EnvLib); } break; case LNK_CmdSwitch_Rad_Exe: { - lnk_cmd_switch_set_flag_16(obj_path, lib_path, cmd_switch, value_strings, &config->file_characteristics, PE_ImageFileCharacteristic_EXE); + lnk_cmd_switch_set_flag_16(obj, cmd_switch, value_strings, &config->file_characteristics, PE_ImageFileCharacteristic_EXE); } break; case LNK_CmdSwitch_Rad_Guid: { @@ -1740,11 +1735,11 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam if (try_guid_from_string(value_strings.first->string, &guid)) { config->guid = guid; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unable to parse \"%S\"", value_strings.first->string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unable to parse \"%S\"", value_strings.first->string); } } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters, expected GUID formatted as following: \"0000000-0000-0000-0000-000000000000\""); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters, expected GUID formatted as following: \"0000000-0000-0000-0000-000000000000\""); } } break; @@ -1754,7 +1749,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam if (process_info->large_pages_allowed) { arena_default_flags |= ArenaFlag_LargePages; } else { - lnk_error_cmd_switch(LNK_Warning_LargePages, obj_path, lib_path, cmd_switch, "Large pages aren't enabled on this system."); + lnk_error_cmd_switch(LNK_Warning_LargePages, obj, cmd_switch, "Large pages aren't enabled on this system."); #if OS_WINDOWS lnk_supplement_error("To enable large pages:"); lnk_supplement_error("\t- Press Win+R and open \"gpedit.msc\""); @@ -1774,15 +1769,15 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } else if (str8_match_lit("no", value_strings.first->string, StringMatchFlag_CaseInsensitive)) { arena_default_flags &= ~ArenaFlag_LargePages; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid parameter: \"%S\", expected NO or QUIET", value_strings.first->string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid parameter: \"%S\", expected NO or QUIET", value_strings.first->string); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); } } break; case LNK_CmdSwitch_Rad_LinkVer: { - lnk_cmd_switch_parse_version(obj_path, lib_path, cmd_switch, value_strings, &config->link_ver); + lnk_cmd_switch_parse_version(obj, cmd_switch, value_strings, &config->link_ver); } break; case LNK_CmdSwitch_Rad_Log: { @@ -1797,26 +1792,26 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } else { LNK_LogType log_type = lnk_log_type_from_string(value_strings.first->string); if (log_type == LNK_Log_Null) { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unknown parameter \"%S\"", value_strings.first->string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unknown parameter \"%S\"", value_strings.first->string); } else { lnk_set_log_status(log_type, 1); } } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters, expected 1"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters, expected 1"); } } break; case LNK_CmdSwitch_Rad_MtPath: { - lnk_cmd_switch_parse_string_copy(arena, obj_path, lib_path, cmd_switch, value_strings, &config->mt_path); + lnk_cmd_switch_parse_string_copy(arena, obj, cmd_switch, value_strings, &config->mt_path); } break; case LNK_CmdSwitch_Rad_OsVer: { - lnk_cmd_switch_parse_version(obj_path, lib_path, cmd_switch, value_strings, &config->os_ver); + lnk_cmd_switch_parse_version(obj, cmd_switch, value_strings, &config->os_ver); } break; case LNK_CmdSwitch_Rad_PageSize: { - lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &config->machine_page_size, 0); + lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &config->machine_page_size, 0); } break; case LNK_CmdSwitch_Rad_PathStyle: { @@ -1825,10 +1820,10 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam if (path_style != PathStyle_Null) { config->path_style = path_style; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unable to parse parameter \"%S\"", value_strings.first->string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unable to parse parameter \"%S\"", value_strings.first->string); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); } } break; @@ -1841,7 +1836,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } else { mode = lnk_type_name_hash_mode_from_string(mode_string); if (mode == LNK_TypeNameHashMode_Null) { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unknown parameter: \"%S\"", mode_string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unknown parameter: \"%S\"", mode_string); } else { config->pdb_hash_type_names = mode; } @@ -1849,16 +1844,16 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_Rad_PdbHashTypeNameMap: { - lnk_cmd_switch_parse_string_copy(arena, obj_path, lib_path, cmd_switch, value_strings, &config->pdb_hash_type_name_map); + lnk_cmd_switch_parse_string_copy(arena, obj, cmd_switch, value_strings, &config->pdb_hash_type_name_map); } break; case LNK_CmdSwitch_Rad_PdbHashTypeNameLength: { - lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &config->pdb_hash_type_name_length, 0); + lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &config->pdb_hash_type_name_length, 0); } break; case LNK_CmdSwitch_Rad_RemoveSection: { String8 sect_name = {0}; - if (lnk_cmd_switch_parse_string(obj_path, lib_path, cmd_switch, value_strings, §_name)) { + if (lnk_cmd_switch_parse_string(obj, cmd_switch, value_strings, §_name)) { sect_name = push_str8_copy(arena, sect_name); str8_list_push(arena, &config->remove_sections, sect_name); } @@ -1868,9 +1863,9 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam if (value_strings.node_count == 0) { config->shared_thread_pool_name = str8_lit(LNK_DEFAULT_THREAD_POOL_NAME); } else { - lnk_cmd_switch_parse_string(obj_path, lib_path, cmd_switch, value_strings, &config->shared_thread_pool_name); + lnk_cmd_switch_parse_string(obj, cmd_switch, value_strings, &config->shared_thread_pool_name); if (config->shared_thread_pool_name.size == 0) { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "invalid empty string for thread pool name"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid empty string for thread pool name"); } } } break; @@ -1880,11 +1875,11 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam if (value_strings.node_count == 0) { config->max_worker_count = sysinfo->logical_processor_count; } else { - lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &config->max_worker_count, 0); + lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &config->max_worker_count, 0); if (config->max_worker_count == 0) { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "number of workers must be greater than zero"); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "number of workers must be greater than zero"); } else if (config->max_worker_count > sysinfo->logical_processor_count) { - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj_path, lib_path, cmd_switch, "number of workers %llu exceeds processor count %llu", config->max_worker_count, sysinfo->logical_processor_count); + lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "number of workers %llu exceeds processor count %llu", config->max_worker_count, sysinfo->logical_processor_count); config->max_worker_count = sysinfo->logical_processor_count; } } @@ -1892,28 +1887,28 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam case LNK_CmdSwitch_Rad_SuppressError: { U64List error_code_list = {0}; - if (lnk_cmd_switch_parse_u64_list(scratch.arena, obj_path, lib_path, cmd_switch, value_strings, &error_code_list, 0)) { + if (lnk_cmd_switch_parse_u64_list(scratch.arena, obj, cmd_switch, value_strings, &error_code_list, 0)) { for (U64Node *error_code_n = error_code_list.first; error_code_n != 0; error_code_n = error_code_n->next) { if (error_code_n->data < LNK_Error_Count) { lnk_suppress_error(error_code_n->data); } else { - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj_path, lib_path, cmd_switch, "unknown error code %llu", error_code_n->data); + lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "unknown error code %llu", error_code_n->data); } } } } break; case LNK_CmdSwitch_Rad_SymbolTableCapDefined: { - lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &config->symbol_table_cap_defined, 0); + lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &config->symbol_table_cap_defined, 0); } break; case LNK_CmdSwitch_Rad_SymbolTableCapInternal: { - lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &config->symbol_table_cap_internal, 0); + lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &config->symbol_table_cap_internal, 0); } break; case LNK_CmdSwitch_Rad_SymbolTableCapWeak: { - lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &config->symbol_table_cap_weak, 0); + lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &config->symbol_table_cap_weak, 0); } break; case LNK_CmdSwitch_Rad_SymbolTableCapLib: { - lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &config->symbol_table_cap_lib, 0); + lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &config->symbol_table_cap_lib, 0); } break; case LNK_CmdSwitch_Rad_TargetOs: { @@ -1923,19 +1918,19 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam if (target_os != OperatingSystem_Null) { config->target_os = target_os; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj_path, lib_path, cmd_switch, "unknown operating system type %S", os_string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unknown operating system type %S", os_string); } } else { - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj_path, lib_path, cmd_switch, "expected 1 parameter"); + lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "expected 1 parameter"); } } break; case LNK_CmdSwitch_Rad_WriteTempFiles: { - lnk_cmd_switch_parse_flag(obj_path, lib_path, cmd_switch, value_strings, &config->write_temp_files); + lnk_cmd_switch_parse_flag(obj, cmd_switch, value_strings, &config->write_temp_files); } break; case LNK_CmdSwitch_Rad_TimeStamp: { - lnk_cmd_switch_parse_u32(obj_path, lib_path, cmd_switch, value_strings, &config->time_stamp, 0); + lnk_cmd_switch_parse_u32(obj, cmd_switch, value_strings, &config->time_stamp, 0); } break; case LNK_CmdSwitch_Rad_Version: { @@ -1945,7 +1940,7 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam case LNK_CmdSwitch_Rad_Workers: { U64 worker_count; - if (lnk_cmd_switch_parse_u64(obj_path, lib_path, cmd_switch, value_strings, &worker_count, 0)) { + if (lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &worker_count, 0)) { config->worker_count = worker_count; } } break; @@ -1981,7 +1976,7 @@ lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line, LNK_CmdLine cmd // process command line switches for (LNK_CmdOption *cmd = cmd_line.first_option; cmd != 0; cmd = cmd->next) { - lnk_apply_cmd_option_to_config(arena, config, cmd->string, cmd->value_strings, str8_zero(), str8_zero()); + lnk_apply_cmd_option_to_config(arena, config, cmd->string, cmd->value_strings, 0); } // :manifest_input @@ -1995,7 +1990,7 @@ lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line, LNK_CmdLine cmd } } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, str8_zero(), str8_zero(), LNK_CmdSwitch_ManifestInput, "missing /MANIFEST:EMBED"); + lnk_error_cmd_switch(LNK_Error_Cmdl, 0, LNK_CmdSwitch_ManifestInput, "missing /MANIFEST:EMBED"); } } @@ -2080,7 +2075,7 @@ lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line, LNK_CmdLine cmd if (lnk_is_thread_pool_shared(config)) { if (config->worker_count > config->max_worker_count) { config->worker_count = config->max_worker_count; - lnk_error_cmd_switch(LNK_Warning_Cmdl, str8_zero(), str8_zero(), LNK_CmdSwitch_Rad_Workers, "worker count %llu exceeds thread pool max worker count %llu; claping count to max", config->worker_count, config->max_worker_count); + lnk_error_cmd_switch(LNK_Warning_Cmdl, 0, LNK_CmdSwitch_Rad_Workers, "worker count %llu exceeds thread pool max worker count %llu; claping count to max", config->worker_count, config->max_worker_count); } } diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index 812acd4e..960fee52 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -539,30 +539,31 @@ internal B32 lnk_cmd_line_has_switch(LNK_CmdLine cmd_line, LNK_CmdSwitchType cmd // --- Errors ------------------------------------------------------------------ -internal void lnk_error_cmd_switch (LNK_ErrorCode code, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, char *fmt, ...); -internal void lnk_error_cmd_switch_invalid_param_count(LNK_ErrorCode code, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch); -internal void lnk_error_cmd_switch_invalid_param (LNK_ErrorCode code, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8 param); +internal void lnk_error_cmd_switch (LNK_ErrorCode code, struct LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, char *fmt, ...); +internal void lnk_error_cmd_switch_invalid_param_count(LNK_ErrorCode code, struct LNK_Obj *obj, LNK_CmdSwitchType cmd_switch); +internal void lnk_error_cmd_switch_invalid_param (LNK_ErrorCode code, struct LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8 param); // --- Specialized Parsers ------------------------------------------------------ -internal B32 lnk_cmd_switch_parse_version (String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, Version *ver_out); -internal B32 lnk_cmd_switch_parse_tuple (String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, Rng1U64 *tuple_out); -internal B32 lnk_cmd_switch_parse_u64 (String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, U64 *value_out, LNK_ParseU64Flags flags); -internal B32 lnk_cmd_switch_parse_u32 (String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, U32 *value_out, LNK_ParseU64Flags flags); -internal B32 lnk_cmd_switch_parse_flag (String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, LNK_SwitchState *value_out); -internal void lnk_cmd_switch_set_flag_inv_16(String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, U16 *flags, U16 bits); -internal void lnk_cmd_switch_set_flag_inv_64(String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, U64 *flags, U64 bits); -internal void lnk_cmd_switch_set_flag_16 (String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, U16 *flags, U16 bits); -internal void lnk_cmd_switch_set_flag_32 (String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, U32 *flags, U32 bits); -internal void lnk_cmd_switch_set_flag_64 (String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, U64 *flags, U64 bits); -internal B32 lnk_cmd_switch_parse_string (String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, String8 *string_out); -internal void lnk_cmd_switch_parse_string_copy(Arena *arena, String8 obj_path, String8 lib_path, LNK_CmdSwitchType cmd_switch, String8List value_strings, String8 *string_out); +internal B32 lnk_cmd_switch_parse_version (struct LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, Version *ver_out); +internal B32 lnk_cmd_switch_parse_tuple (struct LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, Rng1U64 *tuple_out); +internal B32 lnk_cmd_switch_parse_u64 (struct LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U64 *value_out, LNK_ParseU64Flags flags); +internal B32 lnk_cmd_switch_parse_u32 (struct LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U32 *value_out, LNK_ParseU64Flags flags); +internal B32 lnk_cmd_switch_parse_flag (struct LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, LNK_SwitchState *value_out); +internal void lnk_cmd_switch_set_flag_inv_16(struct LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U16 *flags, U16 bits); +internal void lnk_cmd_switch_set_flag_inv_64(struct LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U64 *flags, U64 bits); +internal void lnk_cmd_switch_set_flag_16 (struct LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U16 *flags, U16 bits); +internal void lnk_cmd_switch_set_flag_32 (struct LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U32 *flags, U32 bits); +internal void lnk_cmd_switch_set_flag_64 (struct LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U64 *flags, U64 bits); +internal B32 lnk_cmd_switch_parse_string (struct LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, String8 *string_out); +internal void lnk_cmd_switch_parse_string_copy(Arena *arena, struct LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, String8 *string_out); + +internal B32 lnk_parse_alt_name_directive (String8 string, struct LNK_Obj *obj, LNK_AltName *alt_out); +internal B32 lnk_parse_merge_directive (String8 string, struct LNK_Obj *obj, LNK_MergeDirective *parse_out); +internal B32 lnk_parse_export_directive (Arena *arena, String8 directive, struct LNK_Obj *obj, PE_ExportParse *export_out); +internal B32 lnk_parse_export_directive_ex(Arena *arena, String8List directive, struct LNK_Obj *obj, PE_ExportParse *export_out); -internal B32 lnk_parse_alt_name_directive(String8 string, String8 obj_path, String8 lib_path, LNK_AltName *alt_out); -internal B32 lnk_parse_export_directive_ex(Arena *arena, String8List directive, String8 obj_path, String8 lib_path, PE_ExportParse *export_out); -internal B32 lnk_parse_export_directive(Arena *arena, String8 directive, String8 obj_path, String8 lib_path, PE_ExportParse *export_out); internal LNK_MergeDirectiveNode * lnk_merge_directive_list_push(Arena *arena, LNK_MergeDirectiveList *list, LNK_MergeDirective data); -internal B32 lnk_parse_merge_directive(String8 string, String8 obj_path, String8 lib_path, LNK_MergeDirective *parse_out); // --- Getters ----------------------------------------------------------------- @@ -579,7 +580,7 @@ internal B32 lnk_is_section_removed(LNK_Config *config, String8 section_name); // --- Config ------------------------------------------------------------------ -internal void lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 name, String8List value_list, String8 obj_path, String8 lib_path); +internal void lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 name, String8List value_list, struct LNK_Obj *obj); internal LNK_Config * lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line, LNK_CmdLine cmd_line); From c1958809ebede89002bbe2095bc449f218938521 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Wed, 30 Jul 2025 15:21:10 -0700 Subject: [PATCH 358/372] make use of undocumented anti-dependency search property on weak symbols to implement alternate name using weak symbols --- src/coff/coff.h | 7 +-- src/linker/lnk.c | 36 ++++++++++++--- src/linker/lnk_config.c | 27 ++++++++--- src/linker/lnk_config.h | 3 ++ src/linker/lnk_symbol_table.c | 84 ++++++++++++++++++++++++++--------- src/linker/lnk_symbol_table.h | 7 ++- 6 files changed, 123 insertions(+), 41 deletions(-) diff --git a/src/coff/coff.h b/src/coff/coff.h index 1648df0e..68038f0c 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -294,9 +294,10 @@ typedef struct COFF_Symbol32 typedef U32 COFF_WeakExtType; enum { - COFF_WeakExt_NoLibrary = 1, - COFF_WeakExt_SearchLibrary = 2, - COFF_WeakExt_SearchAlias = 3 + COFF_WeakExt_NoLibrary = 1, + COFF_WeakExt_SearchLibrary = 2, + COFF_WeakExt_SearchAlias = 3, + COFF_WeakExt_AntiDependency = 4, // default symbol must not reference a weak symbol }; // storage class: External diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 212ae949..fcdd68ab 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1076,6 +1076,7 @@ THREAD_POOL_TASK_FUNC(lnk_weak_symbol_finder) case COFF_WeakExt_NoLibrary: { // NOLIBRARY means weak symbol should be resolved in case where strong definition pulls in lib member. } break; + case COFF_WeakExt_AntiDependency: case COFF_WeakExt_SearchLibrary: { member_symbol = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Lib, symbol->name); } break; @@ -1550,9 +1551,32 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) ProfEnd(); } break; case State_InputAlternateNames: { + ProfBegin("Input Alternate Names"); + COFF_ObjWriter *obj_writer = 0; for (; *last_alt_name; last_alt_name = &(*last_alt_name)->next) { - lnk_symbol_table_push_alt_name(symtab, 0, (*last_alt_name)->data.from, (*last_alt_name)->data.to); + // make object writer if it was reset + if (obj_writer == 0) { + obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_Unknown); + } + + // append weak symbol + COFF_ObjSymbol *tag = coff_obj_writer_push_symbol_undef(obj_writer, (*last_alt_name)->data.to); + coff_obj_writer_push_symbol_weak(obj_writer, (*last_alt_name)->data.from, COFF_WeakExt_AntiDependency, tag); + + // flush on last directive or next directive is issued from a different obj + if ((*last_alt_name)->next == 0 || (*last_alt_name)->data.obj != (*last_alt_name)->next->data.obj) { + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->path = (*last_alt_name)->data.obj ? (*last_alt_name)->data.obj->path : str8_lit("RADLINK"); + input->dedup_id = push_str8f(scratch.arena, "* ALTERNATE NAMES FOR %S *", input->path); + input->data = coff_obj_writer_serialize(tp_arena->v[0], obj_writer); + input->lib = (*last_alt_name)->data.obj ? (*last_alt_name)->data.obj->lib : 0; + + // reset obj writer + coff_obj_writer_release(&obj_writer); + obj_writer = 0; + } } + ProfEnd(); } break; case State_PushDllHelperUndefSymbol: { ProfBegin("Push Dll Helper Undef Symbol"); @@ -1997,6 +2021,10 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) state_list_push(scratch.arena, state_list, State_InputSymbols); continue; } + if (*last_alt_name != 0) { + state_list_push(scratch.arena, state_list, State_InputAlternateNames); + continue; + } if (input_obj_list.count) { state_list_push(scratch.arena, state_list, State_InputObjs); continue; @@ -2014,10 +2042,6 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) continue; } } - if (*last_alt_name != 0) { - state_list_push(scratch.arena, state_list, State_InputAlternateNames); - continue; - } if (lookup_undef_list.count) { state_list_push(scratch.arena, state_list, State_LookupUndef); continue; @@ -2054,7 +2078,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } // pass over symbol table and replace weak symbols without a strong definition with fallback definitions - lnk_finalize_weak_symbols(tp, symtab); + lnk_finalize_weak_symbols(tp_arena, tp, symtab); // log { diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 657bdfbe..5cf2475d 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -609,6 +609,7 @@ lnk_parse_alt_name_directive(String8 string, LNK_Obj *obj, LNK_AltName *alt_out) if (pair.node_count == 2) { alt_out->from = pair.first->string; alt_out->to = pair.last->string; + alt_out->obj = obj; is_parse_ok = 1; } else { lnk_error_cmd_switch(LNK_Error_Cmdl, obj, LNK_CmdSwitch_AlternateName, "syntax error in \"%S\", expected format \"FROM=TO\"", string); @@ -1092,12 +1093,25 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam if (value_strings.node_count == 1) { LNK_AltName alt_name; if (lnk_parse_alt_name_directive(value_strings.first->string, obj, &alt_name)) { - alt_name.from = push_str8_copy(arena, alt_name.from); - alt_name.to = push_str8_copy(arena, alt_name.to); - LNK_AltNameNode *alt_name_n = push_array(arena, LNK_AltNameNode, 1); - alt_name_n->data = alt_name; - SLLQueuePush(config->alt_name_list.first, config->alt_name_list.last, alt_name_n); - config->alt_name_list.count += 1; + String8 to_extant = {0}; + if (hash_table_search_string_string(config->alt_name_ht, alt_name.from, &to_extant)) { + if (str8_match(to_extant, alt_name.to, 0)) { + // ignore, duplicate + } else { + lnk_error_obj(LNK_Error_AlternateNameConflict, obj, "conflicting alternative name: existing '%S=%S' vs. new '%S=%S'", alt_name.from, to_extant, alt_name.from, alt_name.to); + } + } else { + hash_table_push_string_string(arena, config->alt_name_ht, alt_name.from, alt_name.to); + + alt_name.from = push_str8_copy(arena, alt_name.from); + alt_name.to = push_str8_copy(arena, alt_name.to); + + LNK_AltNameNode *alt_name_n = push_array(arena, LNK_AltNameNode, 1); + alt_name_n->data = alt_name; + + SLLQueuePush(config->alt_name_list.first, config->alt_name_list.last, alt_name_n); + config->alt_name_list.count += 1; + } } } else { lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); @@ -1973,6 +1987,7 @@ lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line, LNK_CmdLine cmd config->pdb_hash_type_name_length = 8; config->data_dir_count = PE_DataDirectoryIndex_COUNT; config->export_ht = hash_table_init(scratch.arena, max_U16/2); + config->alt_name_ht = hash_table_init(scratch.arena, 0x100); // process command line switches for (LNK_CmdOption *cmd = cmd_line.first_option; cmd != 0; cmd = cmd->next) { diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index 960fee52..07eee00c 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -253,6 +253,7 @@ typedef struct LNK_AltName { String8 from; String8 to; + struct LNK_Obj *obj; } LNK_AltName; typedef struct LNK_AltNameNode @@ -392,6 +393,7 @@ typedef struct LNK_Config String8List remove_sections; LNK_IO_Flags io_flags; HashTable *export_ht; + HashTable *alt_name_ht; } LNK_Config; // --- MSVC Error Codes -------------------------------------------------------- @@ -563,6 +565,7 @@ internal B32 lnk_parse_merge_directive (String8 string, struct LNK_Obj *obj, internal B32 lnk_parse_export_directive (Arena *arena, String8 directive, struct LNK_Obj *obj, PE_ExportParse *export_out); internal B32 lnk_parse_export_directive_ex(Arena *arena, String8List directive, struct LNK_Obj *obj, PE_ExportParse *export_out); +internal LNK_AltNameNode * lnk_alt_name_list_push(Arena *arena, LNK_AltNameList *list, LNK_AltName data); internal LNK_MergeDirectiveNode * lnk_merge_directive_list_push(Arena *arena, LNK_MergeDirectiveList *list, LNK_MergeDirective data); // --- Getters ----------------------------------------------------------------- diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index 89888a75..babde339 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -75,6 +75,12 @@ lnk_symbol_list_concat_in_place(LNK_SymbolList *list, LNK_SymbolList *to_concat) SLLConcatInPlace(list, to_concat); } +internal void +lnk_symbol_concat_in_place_array(LNK_SymbolList *list, LNK_SymbolList *to_concat, U64 to_concat_count) +{ + SLLConcatInPlaceArray(list, to_concat, to_concat_count); +} + internal LNK_SymbolList lnk_symbol_list_from_array(Arena *arena, LNK_SymbolArray arr) { @@ -467,7 +473,6 @@ lnk_symbol_table_init(TP_Arena *arena) for (U64 i = 0; i < LNK_SymbolScope_Count; ++i) { symtab->chunk_lists[i] = push_array(arena->v[0], LNK_SymbolHashTrieChunkList, arena->count); } - symtab->alt_names = hash_table_init(arena->v[0], 1024); return symtab; } @@ -487,15 +492,8 @@ lnk_symbol_table_push(LNK_SymbolTable *symtab, LNK_SymbolScope scope, LNK_Symbol internal LNK_Symbol * lnk_symbol_table_search(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 name) { - U64 hash = lnk_symbol_hash(name); + U64 hash = lnk_symbol_hash(name); LNK_SymbolHashTrie *trie = lnk_symbol_hash_trie_search(symtab->scopes[scope], hash, name); - if (trie == 0) { - String8 alt_name = {0}; - if (hash_table_search_string_string(symtab->alt_names, name, &alt_name)) { - U64 alt_hash = lnk_symbol_hash(alt_name); - trie = lnk_symbol_hash_trie_search(symtab->scopes[scope], alt_hash, alt_name); - } - } return trie ? trie->symbol : 0; } @@ -514,16 +512,39 @@ lnk_symbol_table_searchf(LNK_SymbolTable *symtab, LNK_SymbolScope scope, char *f return symbol; } -internal void -lnk_symbol_table_push_alt_name(LNK_SymbolTable *symtab, LNK_Obj *obj, String8 from, String8 to) +internal +THREAD_POOL_TASK_FUNC(lnk_check_anti_dependecy_task) { - String8 to_extant; - if (hash_table_search_string_string(symtab->alt_names, from, &to_extant)) { - if (!str8_match(to_extant, to, 0)) { - lnk_error_obj(LNK_Error_AlternateNameConflict, obj, "conflicting alternative name: existing '%S=%S' vs. new '%S=%S'", from, to_extant, from, to); + LNK_FinalizeWeakSymbolsTask *task = raw_task; + LNK_SymbolTable *symtab = task->symtab; + LNK_SymbolHashTrieChunk *chunk = task->chunks[task_id]; + + for EachIndex(i, chunk->count) { + LNK_Symbol *symbol = chunk->v[i].symbol; + COFF_ParsedSymbol symbol_parsed = lnk_parsed_symbol_from_defined(symbol); + COFF_SymbolValueInterpType symbol_interp = coff_interp_from_parsed_symbol(symbol_parsed); + if (symbol_interp == COFF_SymbolValueInterp_Weak) { + COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(symbol_parsed, symbol->u.defined.obj->header.is_big_obj); + if (weak_ext->characteristics == COFF_WeakExt_AntiDependency) { + COFF_ParsedSymbol default_symbol_parsed = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, weak_ext->tag_index); + COFF_SymbolValueInterpType default_symbol_interp = coff_interp_from_parsed_symbol(default_symbol_parsed); + + COFF_SymbolValueInterpType actual_default_symbol_interp = default_symbol_interp; + if (default_symbol_interp == COFF_SymbolValueInterp_Undefined) { + LNK_Symbol *actual_default_symbol = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, default_symbol_parsed.name); + if (actual_default_symbol) { + COFF_ParsedSymbol actual_default_symbol_parsed = lnk_parsed_symbol_from_defined(actual_default_symbol); + actual_default_symbol_interp = coff_interp_from_parsed_symbol(actual_default_symbol_parsed); + } + } + + if (actual_default_symbol_interp == COFF_SymbolValueInterp_Weak) { + LNK_SymbolNode *symbol_n = push_array(arena, LNK_SymbolNode, 1); + symbol_n->data = symbol; + lnk_symbol_list_push_node(&task->anti_dependency_symbols[task_id], symbol_n); + } + } } - } else { - hash_table_push_string_string(symtab->arena->v[0], symtab->alt_names, from, to); } } @@ -538,10 +559,10 @@ THREAD_POOL_TASK_FUNC(lnk_finalize_weak_symbols_task) for EachIndex(i, chunk->count) { LNK_Symbol *symbol = chunk->v[i].symbol; - COFF_ParsedSymbol symbol_parsed = lnk_parsed_symbol_from_coff_symbol_idx(symbol->u.defined.obj, symbol->u.defined.symbol_idx); - COFF_SymbolValueInterpType symbol_interp = coff_interp_symbol(symbol_parsed.section_number, symbol_parsed.value, symbol_parsed.storage_class); + COFF_ParsedSymbol symbol_parsed = lnk_parsed_symbol_from_defined(symbol); + COFF_SymbolValueInterpType symbol_interp = coff_interp_from_parsed_symbol(symbol_parsed); if (symbol_interp == COFF_SymbolValueInterp_Weak) { - struct LookupLocation { struct LookupLocation *next; LNK_SymbolDefined symbol; }; + struct LookupLocation { struct LookupLocation *next; LNK_SymbolDefined symbol; B32 is_anti_dependency; }; struct LookupLocation *lookup_first = 0, *lookup_last = 0; LNK_SymbolDefined current_symbol = symbol->u.defined; @@ -615,10 +636,10 @@ THREAD_POOL_TASK_FUNC(lnk_finalize_weak_symbols_task) } internal void -lnk_finalize_weak_symbols(TP_Context *tp, LNK_SymbolTable *symtab) +lnk_finalize_weak_symbols(TP_Arena *arena, TP_Context *tp, LNK_SymbolTable *symtab) { ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); + Temp scratch = scratch_begin(arena->v, arena->count); U64 chunks_count = 0; for EachIndex(worker_id, tp->worker_count) { chunks_count += symtab->chunk_lists[LNK_SymbolScope_Defined][worker_id].count; } @@ -632,6 +653,25 @@ lnk_finalize_weak_symbols(TP_Context *tp, LNK_SymbolTable *symtab) } LNK_FinalizeWeakSymbolsTask task = { .symtab = symtab, .chunks = chunks }; + + { + TP_Temp temp = tp_temp_begin(arena); + task.anti_dependency_symbols = push_array(scratch.arena, LNK_SymbolList, tp->worker_count); + tp_for_parallel(tp, arena, chunks_count, lnk_check_anti_dependecy_task, &task); + + LNK_SymbolList anti_dependency_symbol_list = {0}; + lnk_symbol_concat_in_place_array(&anti_dependency_symbol_list, task.anti_dependency_symbols, tp->worker_count); + LNK_SymbolArray anti_dependency_symbols = lnk_symbol_array_from_list(scratch.arena, anti_dependency_symbol_list); + radsort(anti_dependency_symbols.v, anti_dependency_symbols.count, lnk_symbol_defined_is_before); + + for EachIndex(symbol_idx, anti_dependency_symbols.count) { + LNK_Symbol *s = &anti_dependency_symbols.v[symbol_idx]; + lnk_error_obj(LNK_Error_UnresolvedSymbol, s->u.defined.obj, "unresolved symbol %S", s->name); + } + + tp_temp_end(temp); + } + tp_for_parallel(tp, 0, chunks_count, lnk_finalize_weak_symbols_task, &task); scratch_end(scratch); diff --git a/src/linker/lnk_symbol_table.h b/src/linker/lnk_symbol_table.h index 2598f234..ed1003c5 100644 --- a/src/linker/lnk_symbol_table.h +++ b/src/linker/lnk_symbol_table.h @@ -104,7 +104,6 @@ typedef struct LNK_SymbolTable TP_Arena *arena; LNK_SymbolHashTrie *scopes[LNK_SymbolScope_Count]; LNK_SymbolHashTrieChunkList *chunk_lists[LNK_SymbolScope_Count]; - HashTable *alt_names; } LNK_SymbolTable; // --- Workers Contensts ------------------------------------------------------- @@ -113,6 +112,7 @@ typedef struct { LNK_SymbolTable *symtab; LNK_SymbolHashTrieChunk **chunks; + LNK_SymbolList *anti_dependency_symbols; } LNK_FinalizeWeakSymbolsTask; // --- Symbol Make ------------------------------------------------------------- @@ -127,6 +127,7 @@ internal LNK_Symbol * lnk_make_import_symbol(Arena *arena, String8 name, String8 internal void lnk_symbol_list_push_node(LNK_SymbolList *list, LNK_SymbolNode *node); internal LNK_SymbolNode * lnk_symbol_list_push(Arena *arena, LNK_SymbolList *list, LNK_Symbol *symbol); internal void lnk_symbol_list_concat_in_place(LNK_SymbolList *list, LNK_SymbolList *to_concat); +internal void lnk_symbol_concat_in_place_array(LNK_SymbolList *list, LNK_SymbolList *to_concat, U64 to_concat_count); internal LNK_SymbolList lnk_symbol_list_from_array(Arena *arena, LNK_SymbolArray arr); internal LNK_SymbolNodeArray lnk_symbol_node_array_from_list(Arena *arena, LNK_SymbolList list); internal LNK_SymbolArray lnk_symbol_array_from_list(Arena *arena, LNK_SymbolList list); @@ -146,9 +147,7 @@ internal void lnk_symbol_table_push(LNK_SymbolTable *symtab, LNK_Sy internal LNK_Symbol * lnk_symbol_table_search(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 name); internal LNK_Symbol * lnk_symbol_table_searchf(LNK_SymbolTable *symtab, LNK_SymbolScope scope, char *fmt, ...); -internal void lnk_symbol_table_push_alt_name(LNK_SymbolTable *symtab, struct LNK_Obj *obj, String8 from, String8 to); - -internal void lnk_finalize_weak_symbols(TP_Context *tp, LNK_SymbolTable *symtab); +internal void lnk_finalize_weak_symbols(TP_Arena *arena, TP_Context *tp, LNK_SymbolTable *symtab); // --- Symbol Contrib Helpers -------------------------------------------------- From 1fe85acff8199d7a21c25774c5620bef8ec442d4 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Thu, 31 Jul 2025 22:19:24 -0700 Subject: [PATCH 359/372] refactor include symbols to go through same code path as alternate name symbols --- src/linker/lnk.c | 34 +++++++++++++++------------------- src/linker/lnk_config.c | 17 +++++++++++++---- src/linker/lnk_config.h | 1 + 3 files changed, 29 insertions(+), 23 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index fcdd68ab..7ed2f76a 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1208,7 +1208,6 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) LNK_AltNameNode **last_alt_name = &config->alt_name_list.first; LNK_InputObjList input_obj_list = {0}; LNK_InputImportList input_import_list = {0}; - LNK_SymbolList input_weak_list = {0}; LNK_InputLib **input_libs[LNK_InputSource_Count] = { &config->input_list[LNK_Input_Lib].first, &config->input_default_lib_list.first, @@ -1341,21 +1340,21 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) case State_InputSymbols: { ProfBegin("Input Symbols"); - ProfBegin("Push /INCLUDE Symbols"); + // push a relocation which references an undefined include symbol + COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_Unknown); + COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".radinc$"), 0, str8_zero()); for (; *last_include_symbol; last_include_symbol = &(*last_include_symbol)->next) { - String8 name = push_str8_copy(symtab->arena->v[0], (*last_include_symbol)->string); - LNK_Symbol *symbol = lnk_make_undefined_symbol(symtab->arena->v[0], name, 0); - lnk_symbol_list_push(scratch.arena, &lookup_undef_list, symbol); + COFF_ObjSymbol *include_symbol = coff_obj_writer_push_symbol_undef(obj_writer, (*last_include_symbol)->string); + coff_obj_writer_section_push_reloc(obj_writer, sect, 0, include_symbol, 0); } - ProfEnd(); - // we defined new symbols, give unresolved symbols another chance to be resolved - lnk_symbol_list_concat_in_place(&lookup_undef_list, &unresolved_undef_list); - lnk_symbol_list_concat_in_place(&lookup_weak_list, &input_weak_list); - lnk_symbol_list_concat_in_place(&lookup_weak_list, &unresolved_weak_list); - - // reset inputs - MemoryZeroStruct(&input_weak_list); + // input obj with includes + LNK_InputObj *input = lnk_input_obj_list_push(scratch.arena, &input_obj_list); + input->path = str8_lit("* INCLUDE SYMBOLS *"); + input->dedup_id = push_str8f(scratch.arena, "%S %llu", input->path, input_obj_list.count); + input->data = coff_obj_writer_serialize(tp_arena->v[0], obj_writer); + + coff_obj_writer_release(&obj_writer); ProfEnd(); } break; @@ -1448,12 +1447,9 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) LNK_SymbolInputResult input_result = lnk_input_obj_symbols(tp, tp_arena, symtab, obj_node_arr); // schedule symbol input - lnk_symbol_list_concat_in_place(&input_weak_list, &input_result.weak_symbols); - lnk_symbol_list_concat_in_place(&lookup_undef_list, &input_result.undef_symbols); - - // give another chance to unresolved symbols lnk_symbol_list_concat_in_place(&lookup_undef_list, &unresolved_undef_list); - lnk_symbol_list_concat_in_place(&input_weak_list, &unresolved_weak_list); + lnk_symbol_list_concat_in_place(&lookup_undef_list, &input_result.undef_symbols); + lnk_symbol_list_concat_in_place(&lookup_weak_list, &input_result.weak_symbols); // reset input objs MemoryZeroStruct(&input_obj_list); @@ -2017,7 +2013,7 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) state_list_push(scratch.arena, state_list, State_InputImports); continue; } - if (input_weak_list.count || *last_include_symbol != 0) { + if (*last_include_symbol != 0) { state_list_push(scratch.arena, state_list, State_InputSymbols); continue; } diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 5cf2475d..426a5b25 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -1342,8 +1342,16 @@ lnk_apply_cmd_option_to_config(Arena *arena, LNK_Config *config, String8 cmd_nam } break; case LNK_CmdSwitch_Include: { - String8List include_symbol_list = str8_list_copy(arena, &value_strings); - str8_list_concat_in_place(&config->include_symbol_list, &include_symbol_list); + for (String8Node *value_n = value_strings.first; value_n != 0; value_n = value_n->next) { + // is this a duplicate symbol? + if (hash_table_search_string_raw(config->include_symbol_ht, value_n->string, 0)) { + continue; + } + + String8 include_symbol = push_str8_copy(arena, value_n->string); + hash_table_push_string_raw(arena, config->include_symbol_ht, include_symbol, 0); + str8_list_push(arena, &config->include_symbol_list, include_symbol); + } } break; case LNK_CmdSwitch_Incremental: { @@ -1986,8 +1994,9 @@ lnk_config_from_cmd_line(Arena *arena, String8List raw_cmd_line, LNK_CmdLine cmd config->pdb_hash_type_names = LNK_TypeNameHashMode_None; config->pdb_hash_type_name_length = 8; config->data_dir_count = PE_DataDirectoryIndex_COUNT; - config->export_ht = hash_table_init(scratch.arena, max_U16/2); - config->alt_name_ht = hash_table_init(scratch.arena, 0x100); + config->export_ht = hash_table_init(arena, max_U16/2); + config->alt_name_ht = hash_table_init(arena, 0x100); + config->include_symbol_ht = hash_table_init(arena, 0x100); // process command line switches for (LNK_CmdOption *cmd = cmd_line.first_option; cmd != 0; cmd = cmd->next) { diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index 07eee00c..aa6cdba1 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -394,6 +394,7 @@ typedef struct LNK_Config LNK_IO_Flags io_flags; HashTable *export_ht; HashTable *alt_name_ht; + HashTable *include_symbol_ht; } LNK_Config; // --- MSVC Error Codes -------------------------------------------------------- From dd715dacf75dd1f3236a3bb02c56e2045a8a10be Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 1 Aug 2025 11:41:20 -0700 Subject: [PATCH 360/372] assign COMDAT symlinks as soon as the symbol table is processed --- src/linker/lnk.c | 43 +++++++-------------- src/linker/lnk.h | 1 - src/linker/lnk_obj.c | 73 ++++++++++++++++++----------------- src/linker/lnk_obj.h | 28 +++++++------- src/linker/lnk_symbol_table.c | 10 ++++- 5 files changed, 74 insertions(+), 81 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 7ed2f76a..ce3cc0de 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -1021,10 +1021,6 @@ THREAD_POOL_TASK_FUNC(lnk_undef_symbol_finder) for (U64 symbol_idx = range.min; symbol_idx < range.max; symbol_idx += 1) { LNK_SymbolNode *symbol_n = task->lookup_node_arr.v[symbol_idx]; LNK_Symbol *symbol = symbol_n->data; - - if (str8_match(symbol->name, str8_lit("return_1"), 0)) { - int x = 0; - } LNK_Symbol *has_defn = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Defined, symbol->name); if (has_defn) { @@ -2110,15 +2106,14 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } internal B32 -lnk_resolve_symbol(LNK_SymbolTable *symtab, LNK_Symbol **symlinks, LNK_SymbolDefined symbol, LNK_SymbolDefined *symbol_out) +lnk_resolve_symbol(LNK_SymbolTable *symtab, LNK_SymbolDefined symbol, LNK_SymbolDefined *symbol_out) { B32 is_resolved = 1; COFF_ParsedSymbol symbol_parsed = lnk_parsed_symbol_from_coff_symbol_idx(symbol.obj, symbol.symbol_idx); COFF_SymbolValueInterpType symbol_interp = coff_interp_symbol(symbol_parsed.section_number, symbol_parsed.value, symbol_parsed.storage_class); switch (symbol_interp) { case COFF_SymbolValueInterp_Regular: { - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(symbol.obj, symbol_parsed.section_number); - LNK_Symbol *symlink = section_header->flags & COFF_SectionFlag_LnkCOMDAT ? symlinks[symbol_parsed.section_number] : 0; + LNK_Symbol *symlink = lnk_obj_get_comdat_symlink(symbol.obj, symbol_parsed.section_number); *symbol_out = symlink ? symlink->u.defined : symbol; } break; case COFF_SymbolValueInterp_Weak: { @@ -2157,12 +2152,7 @@ lnk_resolve_symbol(LNK_SymbolTable *symtab, LNK_Symbol **symlinks, LNK_SymbolDef } internal void -lnk_gc_comdats(TP_Context *tp, - LNK_SymbolTable *symtab, - U64 objs_count, - LNK_Obj **objs, - LNK_Symbol ***symlinks, - LNK_Config *config) +lnk_gc_comdats(TP_Context *tp, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs, LNK_Config *config) { ProfBeginFunction(); Temp scratch = scratch_begin(0,0); @@ -2252,7 +2242,7 @@ lnk_gc_comdats(TP_Context *tp, for EachIndex(reloc_idx, t->relocs.count) { COFF_Reloc *reloc = &t->relocs.v[reloc_idx]; LNK_SymbolDefined reloc_symbol = {0}; - B32 is_reloc_symbol_resolved = lnk_resolve_symbol(symtab, symlinks[t->obj->input_idx], (LNK_SymbolDefined){ .obj = t->obj, .symbol_idx = reloc->isymbol }, &reloc_symbol); + B32 is_reloc_symbol_resolved = lnk_resolve_symbol(symtab, (LNK_SymbolDefined){ .obj = t->obj, .symbol_idx = reloc->isymbol }, &reloc_symbol); if (is_reloc_symbol_resolved) { // parse and interp reloc symbol LNK_Obj *reloc_obj = reloc_symbol.obj; @@ -2452,7 +2442,7 @@ THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_contribs_task) COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, section_number); if (~section_header->flags & COFF_SectionFlag_LnkCOMDAT) { continue; } - LNK_Symbol *symlink = task->symlinks[obj_idx][section_number]; + LNK_Symbol *symlink = lnk_obj_get_comdat_symlink(obj, section_number); if (symlink == 0) { continue; } COFF_ParsedSymbol symlink_parsed = lnk_parsed_symbol_from_defined(symlink); @@ -2479,7 +2469,7 @@ THREAD_POOL_TASK_FUNC(lnk_patch_comdat_leaders_task) COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular) { - LNK_Symbol *symlink = task->symlinks[obj_idx][symbol.section_number]; + LNK_Symbol *symlink = lnk_obj_get_comdat_symlink(obj, symbol.section_number); if (symlink && symlink->u.defined.obj != obj) { U32 section_number; U32 value; @@ -2667,7 +2657,7 @@ THREAD_POOL_TASK_FUNC(lnk_patch_regular_symbols_task) } internal void -lnk_patch_obj_symtab(LNK_SymbolTable *symtab, LNK_Symbol **symlinks, LNK_Obj *obj, B8 *was_symbol_patched, COFF_SymbolValueInterpType fixup_type) +lnk_patch_obj_symtab(LNK_SymbolTable *symtab, LNK_Obj *obj, B8 *was_symbol_patched, COFF_SymbolValueInterpType fixup_type) { ProfBeginV("%S\n", obj->path); @@ -2681,7 +2671,7 @@ lnk_patch_obj_symtab(LNK_SymbolTable *symtab, LNK_Symbol **symlinks, LNK_Obj *ob LNK_SymbolDefined symbol_to_resolve = { .obj = obj, .symbol_idx = symbol_idx }; LNK_SymbolDefined fixup_symbol = {0}; - B32 is_resolved = lnk_resolve_symbol(symtab, symlinks, symbol_to_resolve, &fixup_symbol); + B32 is_resolved = lnk_resolve_symbol(symtab, symbol_to_resolve, &fixup_symbol); if (is_resolved) { COFF_ParsedSymbol fixup_src = lnk_parsed_symbol_from_coff_symbol_idx(fixup_symbol.obj, fixup_symbol.symbol_idx); COFF_SymbolValueInterpType fixup_type = coff_interp_symbol(fixup_src.section_number, fixup_src.value, fixup_src.storage_class); @@ -2714,28 +2704,28 @@ internal THREAD_POOL_TASK_FUNC(lnk_patch_common_symbols_task) { LNK_BuildImageTask *task = raw_task; - lnk_patch_obj_symtab(task->symtab, task->symlinks[task_id], task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Common); + lnk_patch_obj_symtab(task->symtab, task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Common); } internal THREAD_POOL_TASK_FUNC(lnk_patch_abs_symbols_task) { LNK_BuildImageTask *task = raw_task; - lnk_patch_obj_symtab(task->symtab, task->symlinks[task_id], task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Abs); + lnk_patch_obj_symtab(task->symtab, task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Abs); } internal THREAD_POOL_TASK_FUNC(lnk_patch_undefined_symbols_task) { LNK_BuildImageTask *task = raw_task; - lnk_patch_obj_symtab(task->symtab, task->symlinks[task_id], task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Undefined); + lnk_patch_obj_symtab(task->symtab, task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Undefined); } internal THREAD_POOL_TASK_FUNC(lnk_patch_weak_symbols_task) { LNK_BuildImageTask *task = raw_task; - lnk_patch_obj_symtab(task->symtab, task->symlinks[task_id], task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Weak); + lnk_patch_obj_symtab(task->symtab, task->objs[task_id], task->u.patch_symtabs.was_symbol_patched[task_id], COFF_SymbolValueInterp_Weak); } internal U64 @@ -3849,17 +3839,11 @@ lnk_build_image(TP_Arena *arena, Temp scratch = scratch_begin(arena->v, arena->count); - // - // gather symbol links to COMDAT sections - // - LNK_Symbol ***symlinks = push_array(arena->v[0], LNK_Symbol **, objs_count); - for EachIndex(obj_idx, objs_count) { symlinks[obj_idx] = lnk_symlinks_from_obj(scratch.arena, symtab, objs[obj_idx]); } - // // remove unreachable COMDAT sections // if (config->opt_ref == LNK_SwitchState_Yes) { - lnk_gc_comdats(tp, symtab, objs_count, objs, symlinks, config); + lnk_gc_comdats(tp, symtab, objs_count, objs, config); } // @@ -3880,7 +3864,6 @@ lnk_build_image(TP_Arena *arena, .function_pad_min = config->function_pad_min, .default_align = coff_default_align_from_machine(config->machine), .null_sc = push_array(arena->v[0], LNK_SectionContrib, 1), - .symlinks = symlinks, }; { diff --git a/src/linker/lnk.h b/src/linker/lnk.h index 2f579854..a9e72113 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -81,7 +81,6 @@ typedef struct U64 function_pad_min; U64 default_align; LNK_SectionContrib *null_sc; - LNK_Symbol ***symlinks; LNK_SectionContrib ***sect_map; HashTable *contribs_ht; LNK_SectionArray image_sects; diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 557620cb..38cbce44 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -346,24 +346,11 @@ THREAD_POOL_TASK_FUNC(lnk_input_coff_symbol_table) LNK_InputCoffSymbolTable *task = raw_task; LNK_Obj *obj = &task->objs.v[task_id].data; - // - // parse obj header - // - COFF_FileHeaderInfo header = coff_file_header_info_from_data(obj->data); - - // - // extract COFF info - // - String8 raw_coff_section_table = str8_substr(obj->data, header.section_table_range); - String8 raw_coff_symbol_table = str8_substr(obj->data, header.symbol_table_range); - String8 raw_coff_string_table = str8_substr(obj->data, header.string_table_range); - COFF_ParsedSymbol symbol = {0}; - for (U64 symbol_idx = 0; symbol_idx < header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - // read symbol + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + COFF_SymbolValueInterpType interp = coff_interp_from_parsed_symbol(symbol); switch (interp) { case COFF_SymbolValueInterp_Regular: { if (symbol.storage_class == COFF_SymStorageClass_External) { @@ -411,6 +398,34 @@ THREAD_POOL_TASK_FUNC(lnk_input_coff_symbol_table) } } +internal LNK_SymbolHashTrie ** +lnk_symlinks_from_obj(Arena *arena, LNK_SymbolTable *symtab, LNK_Obj *obj) +{ + LNK_SymbolHashTrie **symlinks = push_array(arena, LNK_SymbolHashTrie *, obj->header.section_count_no_null+1); + COFF_ParsedSymbol symbol; + for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { + symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); + COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); + if (interp == COFF_SymbolValueInterp_Regular && symbol.aux_symbol_count == 0 && symbol.storage_class == COFF_SymStorageClass_External) { + COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); + if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { + if (symlinks[symbol.section_number] == 0 || symbol.value == 0) { + symlinks[symbol.section_number] = lnk_symbol_table_search_(symtab, LNK_SymbolScope_Defined, symbol.name); + } + } + } + } + return symlinks; +} + +internal +THREAD_POOL_TASK_FUNC(lnk_assign_comdat_symlinks_task) +{ + LNK_InputCoffSymbolTable *task = raw_task; + LNK_Obj *obj = &task->objs.v[task_id].data; + obj->symlinks = lnk_symlinks_from_obj(arena, task->symtab, obj); +} + internal LNK_SymbolInputResult lnk_input_obj_symbols(TP_Context *tp, TP_Arena *arena, LNK_SymbolTable *symtab, LNK_ObjNodeArray objs) { @@ -423,6 +438,7 @@ lnk_input_obj_symbols(TP_Context *tp, TP_Arena *arena, LNK_SymbolTable *symtab, task.weak_lists = push_array(scratch.arena, LNK_SymbolList, tp->worker_count); task.undef_lists = push_array(scratch.arena, LNK_SymbolList, tp->worker_count); tp_for_parallel(tp, arena, objs.count, lnk_input_coff_symbol_table, &task); + tp_for_parallel(tp, arena, objs.count, lnk_assign_comdat_symlinks_task, &task); LNK_SymbolInputResult result = {0}; SLLConcatInPlaceArray(&result.weak_symbols, task.weak_lists, tp->worker_count); @@ -499,6 +515,13 @@ lnk_obj_get_removed_section_number(LNK_Obj *obj) return obj->header.is_big_obj ? LNK_REMOVED_SECTION_NUMBER_32 : LNK_REMOVED_SECTION_NUMBER_16; } +internal LNK_Symbol * +lnk_obj_get_comdat_symlink(LNK_Obj *obj, U64 section_number) +{ + LNK_SymbolHashTrie *symlink = obj->symlinks[section_number]; + return symlink ? symlink->symbol : 0; +} + internal COFF_SectionHeader * lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number) { @@ -513,26 +536,6 @@ lnk_coff_section_table_from_obj(LNK_Obj *obj) return (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; } -internal LNK_Symbol ** -lnk_symlinks_from_obj(Arena *arena, LNK_SymbolTable *symtab, LNK_Obj *obj) -{ - LNK_Symbol **symlinks = push_array(arena, LNK_Symbol *, obj->header.section_count_no_null+1); - COFF_ParsedSymbol symbol; - for (U64 symbol_idx = 0; symbol_idx < obj->header.symbol_count; symbol_idx += (1 + symbol.aux_symbol_count)) { - symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); - COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); - if (interp == COFF_SymbolValueInterp_Regular && symbol.aux_symbol_count == 0 && symbol.storage_class == COFF_SymStorageClass_External) { - COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { - if (symlinks[symbol.section_number] == 0 || symbol.value == 0) { - symlinks[symbol.section_number] = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, symbol.name); - } - } - } - } - return symlinks; -} - internal COFF_RelocArray lnk_coff_reloc_info_from_section_number(LNK_Obj *obj, U64 section_number) { diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index e3f44fda..78510b80 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -7,14 +7,15 @@ typedef struct LNK_Obj { - String8 data; - String8 path; - struct LNK_Lib *lib; - U32 input_idx; - COFF_FileHeaderInfo header; - U32 *comdats; - B8 hotpatch; - U32Node **associated_sections; + String8 data; + String8 path; + struct LNK_Lib *lib; + U32 input_idx; + COFF_FileHeaderInfo header; + U32 *comdats; + B8 hotpatch; + U32Node **associated_sections; + LNK_SymbolHashTrie **symlinks; } LNK_Obj; typedef struct LNK_ObjNode @@ -101,11 +102,12 @@ internal LNK_SymbolInputResult lnk_input_obj_symbols(TP_Context *tp, TP_Arena *a // --- Metadata ---------------------------------------------------------------- -internal U32 lnk_obj_get_features(LNK_Obj *obj); -internal U32 lnk_obj_get_comp_id(LNK_Obj *obj); -internal U32 lnk_obj_get_vol_md(LNK_Obj *obj); -internal String8 lnk_obj_get_lib_path(LNK_Obj *obj); -internal U32 lnk_obj_get_removed_section_number(LNK_Obj *obj); +internal U32 lnk_obj_get_features(LNK_Obj *obj); +internal U32 lnk_obj_get_comp_id(LNK_Obj *obj); +internal U32 lnk_obj_get_vol_md(LNK_Obj *obj); +internal String8 lnk_obj_get_lib_path(LNK_Obj *obj); +internal U32 lnk_obj_get_removed_section_number(LNK_Obj *obj); +internal LNK_Symbol * lnk_obj_get_comdat_symlink(LNK_Obj *obj, U64 section_number); // --- Symbol & Section Helpers ------------------------------------------------ diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index babde339..e34046da 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -489,11 +489,17 @@ lnk_symbol_table_push(LNK_SymbolTable *symtab, LNK_SymbolScope scope, LNK_Symbol lnk_symbol_table_push_(symtab, symtab->arena->v[0], 0, scope, symbol); } +internal LNK_SymbolHashTrie * +lnk_symbol_table_search_(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 name) +{ + U64 hash = lnk_symbol_hash(name); + return lnk_symbol_hash_trie_search(symtab->scopes[scope], hash, name); +} + internal LNK_Symbol * lnk_symbol_table_search(LNK_SymbolTable *symtab, LNK_SymbolScope scope, String8 name) { - U64 hash = lnk_symbol_hash(name); - LNK_SymbolHashTrie *trie = lnk_symbol_hash_trie_search(symtab->scopes[scope], hash, name); + LNK_SymbolHashTrie *trie = lnk_symbol_table_search_(symtab, scope, name); return trie ? trie->symbol : 0; } From d3dedd8befa70c0976c6df24098a6705bac94d67 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Mon, 4 Aug 2025 23:33:38 -0700 Subject: [PATCH 361/372] simplifying symbol table scopes Linker cannot register extern import symbols initially because the import object files are not available until all other object files are resolved. To work around this, we create a stub weak symbol and assign it to each import symbol. This allows linker to proceed. Once the import object files are generated, linker replaces the stub symbol with the actual ones from the import objects. --- src/linker/lnk.c | 25 ++++++++++++------------- src/linker/lnk.h | 1 + src/linker/lnk_symbol_table.c | 16 ---------------- src/linker/lnk_symbol_table.h | 8 -------- 4 files changed, 13 insertions(+), 37 deletions(-) diff --git a/src/linker/lnk.c b/src/linker/lnk.c index ce3cc0de..87081b2a 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -462,6 +462,12 @@ lnk_make_null_obj(Arena *arena) { COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_Unknown); + // make import stub + { + COFF_ObjSymbol *tag = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("RAD_IMPORT_STUB_NULL"), 0, COFF_SymStorageClass_Static); + coff_obj_writer_push_symbol_weak(obj_writer, str8_lit(LNK_IMPORT_STUB), COFF_WeakExt_AntiDependency, tag); + } + // push .debug$T sections with null leaf String8 null_debug_data; { @@ -1026,10 +1032,6 @@ THREAD_POOL_TASK_FUNC(lnk_undef_symbol_finder) if (has_defn) { continue; } - LNK_Symbol *has_import = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Import, symbol->name); - if (has_import) { - continue; - } LNK_Symbol *member_symbol = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Lib, symbol->name); if (member_symbol) { @@ -1059,10 +1061,6 @@ THREAD_POOL_TASK_FUNC(lnk_weak_symbol_finder) continue; } } - LNK_Symbol *has_import = lnk_symbol_table_search(task->symtab, LNK_SymbolScope_Import, symbol->name); - if (has_import) { - continue; - } LNK_Symbol *member_symbol = 0; { @@ -1296,15 +1294,16 @@ lnk_build_link_context(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config) } // was import already created? - if (lnk_symbol_table_search(symtab, LNK_SymbolScope_Import, import_header.func_name)) { + if (lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, import_header.func_name)) { continue; } // create import stubs (later replaced with acutal imports generated by linker) - LNK_Symbol *thunk_symbol = lnk_make_import_symbol(scratch.arena, import_header.func_name, input->data.coff_import); - LNK_Symbol *imp_symbol = lnk_make_import_symbol(scratch.arena, push_str8f(scratch.arena, "__imp_%S", import_header.func_name), input->data.coff_import); - lnk_symbol_table_push(symtab, LNK_SymbolScope_Import, thunk_symbol); - lnk_symbol_table_push(symtab, LNK_SymbolScope_Import, imp_symbol); + LNK_Symbol *import_stub = lnk_symbol_table_search(symtab, LNK_SymbolScope_Defined, str8_lit(LNK_IMPORT_STUB)); + LNK_Symbol *thunk_symbol = lnk_make_defined_symbol(scratch.arena, import_header.func_name, import_stub->u.defined.obj, import_stub->u.defined.symbol_idx); + LNK_Symbol *imp_symbol = lnk_make_defined_symbol(scratch.arena, push_str8f(scratch.arena, "__imp_%S", import_header.func_name), import_stub->u.defined.obj, import_stub->u.defined.symbol_idx); + lnk_symbol_table_push(symtab, LNK_SymbolScope_Defined, thunk_symbol); + lnk_symbol_table_push(symtab, LNK_SymbolScope_Defined, imp_symbol); // pick imports hash table HashTable *imports_ht; diff --git a/src/linker/lnk.h b/src/linker/lnk.h index a9e72113..3d7ce197 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -15,6 +15,7 @@ typedef struct LNK_LinkContext // -- Image -------------------------------------------------------------------- +#define LNK_IMPORT_STUB "*** RAD_IMPORT_STUB ***" #define LNK_REMOVED_SECTION_NUMBER_32 (U32)-3 #define LNK_REMOVED_SECTION_NUMBER_16 (U16)-3 diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index e34046da..7d5b5dda 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -21,15 +21,6 @@ lnk_make_lib_symbol(Arena *arena, String8 name, struct LNK_Lib *lib, U64 member_ return symbol; } -internal LNK_Symbol * -lnk_make_import_symbol(Arena *arena, String8 name, String8 import_header) -{ - LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); - symbol->name = name; - symbol->u.imp.import_header = import_header; - return symbol; -} - internal LNK_Symbol * lnk_make_undefined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj) { @@ -299,9 +290,6 @@ lnk_can_replace_symbol(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) lnk_error(LNK_Error_InvalidPath, "unable to find a suitable replacement logic for symbol combination"); } } break; - case LNK_SymbolScope_Import: { - lnk_error_multiply_defined_symbol(dst, src); - } break; case LNK_SymbolScope_Lib: { // link.exe picks symbol from lib that is discovered first can_replace = lnk_symbol_lib_is_before(src, dst); @@ -344,10 +332,6 @@ lnk_on_symbol_replace(LNK_SymbolScope scope, LNK_Symbol *dst, LNK_Symbol *src) } #endif } break; - case LNK_SymbolScope_Import: { - // illegal to replace imports - InvalidPath; - } break; case LNK_SymbolScope_Lib: { // nothing to replace } break; diff --git a/src/linker/lnk_symbol_table.h b/src/linker/lnk_symbol_table.h index ed1003c5..f6fed011 100644 --- a/src/linker/lnk_symbol_table.h +++ b/src/linker/lnk_symbol_table.h @@ -8,7 +8,6 @@ typedef enum { LNK_SymbolScope_Defined, - LNK_SymbolScope_Import, LNK_SymbolScope_Lib, LNK_SymbolScope_Count } LNK_SymbolScope; @@ -30,18 +29,12 @@ typedef struct LNK_SymbolUndefined struct LNK_Obj *obj; } LNK_SymbolUndefined; -typedef struct LNK_SymbolImport -{ - String8 import_header; -} LNK_SymbolImport; - typedef struct LNK_Symbol { String8 name; union { LNK_SymbolDefined defined; LNK_SymbolLib lib; - LNK_SymbolImport imp; LNK_SymbolUndefined undef; } u; } LNK_Symbol; @@ -120,7 +113,6 @@ typedef struct internal LNK_Symbol * lnk_make_defined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj, U32 symbol_idx); internal LNK_Symbol * lnk_make_lib_symbol(Arena *arena, String8 name, struct LNK_Lib *lib, U64 member_offset); internal LNK_Symbol * lnk_make_undefined_symbol(Arena *arena, String8 name, struct LNK_Obj *obj); -internal LNK_Symbol * lnk_make_import_symbol(Arena *arena, String8 name, String8 import_header); // --- Symbol Containers ------------------------------------------------------ From cff6426741a4cdd87f89272e7dd6b00bb105cd1c Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 5 Aug 2025 03:43:50 -0700 Subject: [PATCH 362/372] null check for obj --- src/linker/lnk_config.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index 426a5b25..ae28b190 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -706,7 +706,7 @@ lnk_parse_export_directive_ex(Arena *arena, String8List directive, LNK_Obj *obj, } // fill out export - export_out->obj_path = obj->path; + export_out->obj_path = obj ? obj->path : str8_zero(); export_out->lib_path = lnk_obj_get_lib_path(obj); export_out->name = push_str8_copy(arena, name); export_out->alias = push_str8_copy(arena, alias); @@ -736,7 +736,6 @@ lnk_parse_export_directive(Arena *arena, String8 directive, LNK_Obj *obj, PE_Exp return is_parsed; } - internal LNK_MergeDirectiveNode * lnk_merge_directive_list_push(Arena *arena, LNK_MergeDirectiveList *list, LNK_MergeDirective data) { From 1856c52e585d9273bb812296288069359dee23e6 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Tue, 5 Aug 2025 09:27:31 -0700 Subject: [PATCH 363/372] xxhash for ctrl layer --- src/ctrl/ctrl_core.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 2415dc36..26b59be8 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -9,14 +9,16 @@ //////////////////////////////// //~ rjf: Basic Type Functions +#if !defined(XXH_IMPLEMENTATION) +# define XXH_IMPLEMENTATION +# define XXH_STATIC_LINKING_ONLY +# include "third_party/xxHash/xxhash.h" +#endif + internal U64 ctrl_hash_from_string(String8 string) { - U64 result = 5381; - for(U64 i = 0; i < string.size; i += 1) - { - result = ((result << 5) + result) + string.str[i]; - } + U64 result = XXH3_64bits_withSeed(string.str, string.size, 5381); return result; } From 9cff2bc7dd3adbb4b75c86c56bdaf598a4fb48b3 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Tue, 5 Aug 2025 10:21:42 -0700 Subject: [PATCH 364/372] symbolof operation in eval --- src/eval/eval.mdesk | 1 + src/eval/eval_ir.c | 47 ++++++++++++++++++++++++++++++++++ src/eval/generated/eval.meta.c | 6 +++-- src/eval/generated/eval.meta.h | 5 ++-- 4 files changed, 55 insertions(+), 4 deletions(-) diff --git a/src/eval/eval.mdesk b/src/eval/eval.mdesk index 34c570bb..ae0e0459 100644 --- a/src/eval/eval.mdesk +++ b/src/eval/eval.mdesk @@ -93,6 +93,7 @@ E_ExprKindTable: { Cast Null 1 "cast(" ")" "" "" } { Sizeof UnaryPrefix 1 "sizeof " "" "" "" } { Typeof UnaryPrefix 1 "typeof " "" "" "" } + { Symbolof UnaryPrefix 1 "symbolof " "" "" "" } { ByteSwap UnaryPrefix 1 "bswap " "" "" "" } { Pos UnaryPrefix 2 "+" "" "" "" } diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index 6e0338d8..a551bba4 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -953,6 +953,53 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I result.mode = E_Mode_Null; }break; + //- rjf: symbolof + case E_ExprKind_Symbolof: + { + E_IRTreeAndType r_tree = e_push_irtree_and_type_from_expr(arena, parent, &e_default_identifier_resolution_rule, disallow_autohooks, 1, expr->first); + E_IRNode *r_value_tree = e_irtree_resolve_to_value(arena, r_tree.mode, r_tree.root, r_tree.type_key); + E_OpList oplist = e_oplist_from_irtree(scratch.arena, r_value_tree); + String8 bytecode = e_bytecode_from_oplist(scratch.arena, &oplist); + E_Interpretation interpretation = e_interpret(bytecode); + E_Module *module = &e_module_nil; + U32 rdi_idx = 0; + for EachIndex(idx, e_base_ctx->modules_count) + { + E_Module *m = &e_base_ctx->modules[idx]; + if(e_space_match(interpretation.space, m->space) && contains_1u64(m->vaddr_range, interpretation.value.u64)) + { + module = m; + rdi_idx = (U32)idx; + break; + } + } + if(module != &e_module_nil) + { + U64 voff = interpretation.value.u64 - module->vaddr_range.min; + U64 new_vaddr = 0; + RDI_Procedure *p = rdi_procedure_from_voff(module->rdi, voff); + RDI_GlobalVariable *g = rdi_global_variable_from_voff(module->rdi, voff); + U32 type_idx = 0; + if(p->name_string_idx != 0) + { + type_idx = p->type_idx; + new_vaddr = module->vaddr_range.min + rdi_first_voff_from_procedure(module->rdi, p); + } + else if(g->name_string_idx != 0) + { + type_idx = g->type_idx; + new_vaddr = module->vaddr_range.min + g->voff; + } + if(type_idx != 0) + { + RDI_TypeNode *t = rdi_element_from_name_idx(module->rdi, TypeNodes, type_idx); + result.root = e_irtree_const_u(arena, new_vaddr); + result.mode = E_Mode_Value; + result.type_key = e_type_key_ext(e_type_kind_from_rdi(t->kind), type_idx, rdi_idx); + } + } + }break; + //- rjf: byteswap case E_ExprKind_ByteSwap: { diff --git a/src/eval/generated/eval.meta.c b/src/eval/generated/eval.meta.c index c4be0989..5459b3a4 100644 --- a/src/eval/generated/eval.meta.c +++ b/src/eval/generated/eval.meta.c @@ -144,7 +144,7 @@ U8 e_type_kind_basic_byte_size_table[61] = 0, }; -String8 e_expr_kind_strings[49] = +String8 e_expr_kind_strings[50] = { str8_lit_comp("Nil"), str8_lit_comp("Ref"), @@ -155,6 +155,7 @@ str8_lit_comp("Address"), str8_lit_comp("Cast"), str8_lit_comp("Sizeof"), str8_lit_comp("Typeof"), +str8_lit_comp("Symbolof"), str8_lit_comp("ByteSwap"), str8_lit_comp("Pos"), str8_lit_comp("Neg"), @@ -197,7 +198,7 @@ str8_lit_comp("Unsigned"), str8_lit_comp("Define"), }; -E_OpInfo e_expr_kind_op_info_table[49] = +E_OpInfo e_expr_kind_op_info_table[50] = { { E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, { E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, @@ -208,6 +209,7 @@ E_OpInfo e_expr_kind_op_info_table[49] = { E_OpKind_Null, 1, str8_lit_comp("cast("), str8_lit_comp(")"), str8_lit_comp(""), str8_lit_comp("") }, { E_OpKind_UnaryPrefix, 1, str8_lit_comp("sizeof "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, { E_OpKind_UnaryPrefix, 1, str8_lit_comp("typeof "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_UnaryPrefix, 1, str8_lit_comp("symbolof "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, { E_OpKind_UnaryPrefix, 1, str8_lit_comp("bswap "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, { E_OpKind_UnaryPrefix, 2, str8_lit_comp("+"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, { E_OpKind_UnaryPrefix, 2, str8_lit_comp("-"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, diff --git a/src/eval/generated/eval.meta.h b/src/eval/generated/eval.meta.h index 178dec89..26785c11 100644 --- a/src/eval/generated/eval.meta.h +++ b/src/eval/generated/eval.meta.h @@ -107,6 +107,7 @@ E_ExprKind_Address, E_ExprKind_Cast, E_ExprKind_Sizeof, E_ExprKind_Typeof, +E_ExprKind_Symbolof, E_ExprKind_ByteSwap, E_ExprKind_Pos, E_ExprKind_Neg, @@ -170,8 +171,8 @@ C_LINKAGE_BEGIN extern String8 e_token_kind_strings[6]; extern String8 e_type_kind_basic_string_table[61]; extern U8 e_type_kind_basic_byte_size_table[61]; -extern String8 e_expr_kind_strings[49]; -extern E_OpInfo e_expr_kind_op_info_table[49]; +extern String8 e_expr_kind_strings[50]; +extern E_OpInfo e_expr_kind_op_info_table[50]; extern String8 e_interpretation_code_display_strings[11]; C_LINKAGE_END From c4374810cbe24c37fc1bc86805b54f998532073e Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Tue, 5 Aug 2025 13:41:10 -0700 Subject: [PATCH 365/372] fix wrong void type in pdb -> rdi --- src/rdi_from_pdb/rdi_from_pdb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rdi_from_pdb/rdi_from_pdb.c b/src/rdi_from_pdb/rdi_from_pdb.c index 263db893..09ab8fb2 100644 --- a/src/rdi_from_pdb/rdi_from_pdb.c +++ b/src/rdi_from_pdb/rdi_from_pdb.c @@ -3804,7 +3804,7 @@ p2r_convert(Arena *arena, ASYNC_Root *async_root, P2R_ConvertParams *in) itype_type_ptrs[table[idx].kind_cv] = builtin_alias; } itype_type_ptrs[CV_BasicType_HRESULT] = basic_type_ptrs[RDI_TypeKind_HResult - RDI_TypeKind_FirstBuiltIn]; - itype_type_ptrs[CV_BasicType_VOID] = basic_type_ptrs[RDI_TypeKind_HResult - RDI_TypeKind_Void]; + itype_type_ptrs[CV_BasicType_VOID] = basic_type_ptrs[RDI_TypeKind_Void - RDI_TypeKind_FirstBuiltIn]; } //////////////////////////// From 5a5fd53bfaecc39034070a21b2fa1090582b8afc Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Tue, 5 Aug 2025 14:28:49 -0700 Subject: [PATCH 366/372] scope tree / sorted scope endpoints parsing in text cache parsing --- src/text_cache/text_cache.c | 114 +++++++++++++++++++++++++++++++++++- src/text_cache/text_cache.h | 33 +++++++++++ 2 files changed, 144 insertions(+), 3 deletions(-) diff --git a/src/text_cache/text_cache.c b/src/text_cache/text_cache.c index 920ab6c0..c973c7f2 100644 --- a/src/text_cache/text_cache.c +++ b/src/text_cache/text_cache.c @@ -2291,11 +2291,9 @@ ASYNC_WORK_DEF(txt_parse_work) ins_atomic_u64_eval_assign(bytes_processed_ptr, Min(data.size, 1024) + data.size + data.size); } - //- rjf: lang -> lex function - TXT_LangLexFunctionType *lex_function = txt_lex_function_from_lang_kind(lang); - //- rjf: lex function * data -> tokens TXT_TokenArray tokens = {0}; + TXT_LangLexFunctionType *lex_function = txt_lex_function_from_lang_kind(lang); if(lex_function != 0) { tokens = lex_function(info_arena, bytes_processed_ptr, data); @@ -2307,6 +2305,116 @@ ASYNC_WORK_DEF(txt_parse_work) { ins_atomic_u64_eval_assign(bytes_processed_ptr, Min(data.size, 1024) + data.size + data.size + data.size*(lex_function != 0)); } + + //- rjf: count scope points + U64 scope_pt_opener_count = 0; + U64 scope_pt_count = 0; + for EachIndex(idx, tokens.count) + { + if(tokens.v[idx].kind == TXT_TokenKind_Symbol) + { + String8 token_string = str8_substr(data, tokens.v[idx].range); + B32 is_opener = (token_string.str[0] == '{' || + token_string.str[0] == '(' || + token_string.str[0] == '['); + B32 is_closer = (token_string.str[0] == '}' || + token_string.str[0] == ')' || + token_string.str[0] == ']'); + if(token_string.size == 1 && (is_opener || is_closer)) + { + scope_pt_count += 1; + scope_pt_opener_count += !!is_opener; + } + } + } + + //- rjf: allocate & fill scope data + info.scope_pts.count = scope_pt_count; + info.scope_pts.v = push_array_no_zero(info_arena, TXT_ScopePt, info.scope_pts.count); + info.scope_nodes.count = scope_pt_opener_count; + info.scope_nodes.v = push_array_no_zero(info_arena, TXT_ScopeNode, info.scope_nodes.count); + { + typedef struct ScopeTask ScopeTask; + struct ScopeTask + { + ScopeTask *next; + U64 scope_idx; + }; + Temp scratch = scratch_begin(0, 0); + ScopeTask *top_scope_task = 0; + ScopeTask *free_scope_task = 0; + U64 pt_idx = 0; + U64 scope_idx = 0; + for EachIndex(token_idx, tokens.count) + { + if(tokens.v[token_idx].kind == TXT_TokenKind_Symbol) + { + String8 token_string = str8_substr(data, tokens.v[token_idx].range); + B32 is_opener = (token_string.str[0] == '{' || + token_string.str[0] == '(' || + token_string.str[0] == '['); + B32 is_closer = (token_string.str[0] == '}' || + token_string.str[0] == ')' || + token_string.str[0] == ']'); + + // rjf: opener symbols -> push scope + if(is_opener) + { + // rjf: insert into scope tree + TXT_ScopeNode *new_scope = &info.scope_nodes.v[scope_idx]; + new_scope->token_idx_range.min = token_idx; + if(top_scope_task) + { + U64 new_scope_num = scope_idx+1; + TXT_ScopeNode *parent = &info.scope_nodes.v[top_scope_task->scope_idx]; + if(parent->first_num == 0) + { + parent->first_num = new_scope_num; + } + if(parent->last_num != 0) + { + TXT_ScopeNode *prev_scope = &info.scope_nodes.v[parent->last_num-1]; + prev_scope->next_num = new_scope_num; + } + parent->last_num = new_scope_num; + new_scope->parent_num = top_scope_task->scope_idx+1; + } + + // rjf: push onto scope stack + ScopeTask *scope_task = free_scope_task; + if(scope_task) + { + SLLStackPop(free_scope_task); + } + else + { + scope_task = push_array(scratch.arena, ScopeTask, 1); + } + scope_task->scope_idx = scope_idx; + scope_idx += 1; + SLLStackPush(top_scope_task, scope_task); + } + + // rjf: opener or closer -> fill endpoint + if(top_scope_task && (is_opener || is_closer)) + { + info.scope_pts.v[pt_idx].token_idx = token_idx; + info.scope_pts.v[pt_idx].scope_idx = top_scope_task->scope_idx; + pt_idx += 1; + } + + // rjf: closer symbols -> pop + if(is_closer && top_scope_task != 0) + { + ScopeTask *popped = top_scope_task; + info.scope_nodes.v[popped->scope_idx].token_idx_range.max = token_idx; + SLLStackPop(top_scope_task); + SLLStackPush(free_scope_task, popped); + } + } + } + scratch_end(scratch); + } } //- rjf: commit results to cache diff --git a/src/text_cache/text_cache.h b/src/text_cache/text_cache.h index 4a2595a2..9a4159f2 100644 --- a/src/text_cache/text_cache.h +++ b/src/text_cache/text_cache.h @@ -86,6 +86,37 @@ struct TXT_TokenArrayArray TXT_TokenArray *v; }; +typedef struct TXT_ScopeNode TXT_ScopeNode; +struct TXT_ScopeNode +{ + U64 first_num; + U64 last_num; + U64 next_num; + U64 parent_num; + Rng1U64 token_idx_range; +}; + +typedef struct TXT_ScopeNodeArray TXT_ScopeNodeArray; +struct TXT_ScopeNodeArray +{ + TXT_ScopeNode *v; + U64 count; +}; + +typedef struct TXT_ScopePt TXT_ScopePt; +struct TXT_ScopePt +{ + U64 token_idx; + U64 scope_idx; +}; + +typedef struct TXT_ScopePtArray TXT_ScopePtArray; +struct TXT_ScopePtArray +{ + TXT_ScopePt *v; + U64 count; +}; + typedef struct TXT_TextInfo TXT_TextInfo; struct TXT_TextInfo { @@ -94,6 +125,8 @@ struct TXT_TextInfo U64 lines_max_size; TXT_LineEndKind line_end_kind; TXT_TokenArray tokens; + TXT_ScopePtArray scope_pts; + TXT_ScopeNodeArray scope_nodes; U64 bytes_processed; U64 bytes_to_process; }; From 230f452edb45e25751c6488b3ed39b838e33a976 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Tue, 5 Aug 2025 16:11:49 -0700 Subject: [PATCH 367/372] text cache scope tree lookup paths --- src/raddbg/raddbg_widgets.c | 528 ++++++++++++++++++------------------ src/text_cache/text_cache.c | 49 ++++ src/text_cache/text_cache.h | 4 + 3 files changed, 317 insertions(+), 264 deletions(-) diff --git a/src/raddbg/raddbg_widgets.c b/src/raddbg/raddbg_widgets.c index 2d0f9197..29ad0885 100644 --- a/src/raddbg/raddbg_widgets.c +++ b/src/raddbg/raddbg_widgets.c @@ -1280,71 +1280,6 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe pop_color = ui_color_from_name(str8_lit("background")); } - ////////////////////////////// - //- rjf: produce fancy strings for each line - // - DR_FStrList *lines_fstrs = push_array(scratch.arena, DR_FStrList, dim_1s64(params->line_num_range)+1); - { - DR_FStrParams fstr_params = - { - params->font, - rd_raster_flags_from_slot(RD_FontSlot_Code), - rd_rgba_from_code_color_slot(RD_CodeColorSlot_CodeDefault), - params->font_size, - }; - U64 line_idx = 0; - for(S64 line_num = params->line_num_range.min; - line_num <= params->line_num_range.max; - line_num += 1, line_idx += 1) - { - String8 line_string = params->line_text[line_idx]; - Rng1U64 line_range = params->line_ranges[line_idx]; - TXT_TokenArray *line_tokens = ¶ms->line_tokens[line_idx]; - DR_FStrList fstrs = {0}; - if(line_tokens->count == 0) - { - dr_fstrs_push_new(scratch.arena, &fstrs, &fstr_params, line_string); - } - else - { - TXT_Token *line_tokens_first = line_tokens->v; - TXT_Token *line_tokens_opl = line_tokens->v + line_tokens->count; - for(TXT_Token *token = line_tokens_first; token < line_tokens_opl; token += 1) - { - // rjf: token -> token string - String8 token_string = {0}; - { - Rng1U64 token_range = r1u64(0, line_string.size); - if(token->range.min > line_range.min) - { - token_range.min += token->range.min-line_range.min; - } - if(token->range.max < line_range.max) - { - token_range.max = token->range.max-line_range.min; - } - token_string = str8_substr(line_string, token_range); - } - - // rjf: token -> token color - RD_CodeColorSlot token_color_slot = rd_code_color_slot_from_txt_token_kind(token->kind); - RD_CodeColorSlot lookup_color_slot = rd_code_color_slot_from_txt_token_kind_lookup_string(token->kind, token_string); - Vec4F32 token_color = rd_rgba_from_code_color_slot(token_color_slot); - if(lookup_color_slot != RD_CodeColorSlot_CodeDefault) - { - Vec4F32 lookup_color = rd_rgba_from_code_color_slot(lookup_color_slot); - F32 lookup_color_mix_t = ui_anim(ui_key_from_stringf(ui_key_zero(), "%S_lookup", token_string), 1.f); - token_color = mix_4f32(token_color, lookup_color, lookup_color_mix_t); - } - - // rjf: push fancy string - dr_fstrs_push_new(scratch.arena, &fstrs, &fstr_params, token_string, .color = token_color); - } - } - lines_fstrs[line_idx] = fstrs; - } - } - ////////////////////////////// //- rjf: build top-level container // @@ -1979,6 +1914,270 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe text_container_box = ui_build_box_from_string(UI_BoxFlag_Clickable*!!(params->flags & RD_CodeSliceFlag_Clickable), str8_lit("text_container")); } + ////////////////////////////// + //- rjf: mouse -> text coordinates + // + TxtPt mouse_pt = {0}; + ProfScope("mouse -> text coordinates") + { + Vec2F32 mouse = ui_mouse(); + + // rjf: mouse y => index + U64 mouse_y_line_idx = (U64)((mouse.y - text_container_box->rect.y0) / params->line_height_px); + + // rjf: index => line num + S64 line_num = (params->line_num_range.min + mouse_y_line_idx); + String8 line_string = (params->line_num_range.min <= line_num && line_num <= params->line_num_range.max) ? (params->line_text[mouse_y_line_idx]) : str8_zero(); + + // rjf: mouse x * string => column + S64 column = fnt_char_pos_from_tag_size_string_p(params->font, params->font_size, 0, params->tab_size, line_string, mouse.x-text_container_box->rect.x0-params->line_num_width_px-line_num_padding_px)+1; + + // rjf: bundle + mouse_pt = txt_pt(line_num, column); + + // rjf: clamp + { + U64 last_line_size = params->line_text[dim_1s64(params->line_num_range)].size; + TxtRng legal_pt_rng = txt_rng(txt_pt(params->line_num_range.min, 1), + txt_pt(params->line_num_range.max, last_line_size+1)); + if(txt_pt_less_than(mouse_pt, legal_pt_rng.min)) + { + mouse_pt = legal_pt_rng.min; + } + if(txt_pt_less_than(legal_pt_rng.max, mouse_pt)) + { + mouse_pt = legal_pt_rng.max; + } + } + + result.mouse_pt = mouse_pt; + } + + ////////////////////////////// + //- rjf: mouse point -> mouse token range, mouse line range + // + TxtRng mouse_token_rng = txt_rng(mouse_pt, mouse_pt); + TxtRng mouse_line_rng = txt_rng(mouse_pt, mouse_pt); + if(contains_1s64(params->line_num_range, mouse_pt.line)) + { + TXT_TokenArray *line_tokens = ¶ms->line_tokens[mouse_pt.line-params->line_num_range.min]; + Rng1U64 line_range = params->line_ranges[mouse_pt.line-params->line_num_range.min]; + U64 mouse_pt_off = (mouse_pt.column-1) + line_range.min; + for(U64 line_token_idx = 0; line_token_idx < line_tokens->count; line_token_idx += 1) + { + TXT_Token *line_token = &line_tokens->v[line_token_idx]; + if(contains_1u64(line_token->range, mouse_pt_off)) + { + Rng1U64 line_token_range_clamped = intersect_1u64(line_token->range, line_range); + mouse_token_rng = txt_rng(txt_pt(mouse_pt.line, 1+line_token_range_clamped.min-line_range.min), txt_pt(mouse_pt.line, 1+line_token_range_clamped.max-line_range.min)); + break; + } + } + mouse_line_rng = txt_rng(txt_pt(mouse_pt.line, 1), txt_pt(mouse_pt.line, 1+(line_range.max-line_range.min))); + } + + ////////////////////////////// + //- rjf: interact with margin box & text box + // + B32 search_query_invalidated = 0; + UI_Signal priority_margin_container_sig = ui_signal_from_box(priority_margin_container_box); + UI_Signal catchall_margin_container_sig = ui_signal_from_box(catchall_margin_container_box); + UI_Signal text_container_sig = ui_signal_from_box(text_container_box); + { + //- rjf: determine mouse drag range + TxtRng mouse_drag_rng = txt_rng(mouse_pt, mouse_pt); + if(text_container_sig.f & UI_SignalFlag_LeftTripleDragging) + { + mouse_drag_rng = mouse_line_rng; + } + else if(text_container_sig.f & UI_SignalFlag_LeftDoubleDragging) + { + mouse_drag_rng = mouse_token_rng; + } + + //- rjf: clicking/dragging over the text container + if(!ctrlified && ui_dragging(text_container_sig)) + { + if(mouse_pt.line == 0) + { + mouse_pt.column = 1; + if(ui_mouse().y <= top_container_box->rect.y0) + { + mouse_pt.line = params->line_num_range.min - 2; + } + else if(ui_mouse().y >= top_container_box->rect.y1) + { + mouse_pt.line = params->line_num_range.max + 2; + } + } + if(ui_pressed(text_container_sig)) + { + *cursor = mouse_drag_rng.max; + *mark = mouse_drag_rng.min; + } + if(txt_pt_less_than(mouse_pt, *mark)) + { + *cursor = mouse_drag_rng.min; + } + else + { + *cursor = mouse_drag_rng.max; + } + *preferred_column = cursor->column; + } + + //- rjf: dragging will invalidate the search string, so we don't want to draw it while dragging/releasing + if(ui_dragging(text_container_sig) || ui_released(text_container_sig)) + { + search_query_invalidated = 1; + } + + //- rjf: right-click => code context menu + if(ui_right_clicked(text_container_sig)) + { + if(txt_pt_match(*cursor, *mark)) + { + *cursor = *mark = mouse_pt; + } + U64 vaddr = 0; + D_LineList lines = {0}; + if(params->line_num_range.min <= cursor->line && cursor->line < params->line_num_range.max) + { + vaddr = params->line_vaddrs[cursor->line - params->line_num_range.min]; + lines = params->line_infos[cursor->line - params->line_num_range.min]; + } + rd_cmd(RD_CmdKind_FocusPanel); + rd_cmd(RD_CmdKind_PushQuery, + .expr = txt_pt_match(*cursor, *mark) ? str8_lit("query:text_pt_commands") : str8_lit("query:text_range_commands"), + .do_implicit_root = 1, + .do_lister = 1, + .ui_key = ui_get_selected_state()->root->key, + .off_px = ui_mouse(), + .cursor = *cursor, + .mark = *mark, + .vaddr = vaddr, + .lines = lines); + } + + //- rjf: drop target is dropped -> process + if(drop_can_hit_lines && ui_key_match(ui_drop_hot_key(), drop_site_key) && rd_drag_drop()) + { + if(rd_state->drag_drop_regs_slot == RD_RegSlot_Expr) + { + S64 line_num = mouse_pt.line; + U64 line_idx = line_num - params->line_num_range.min; + U64 line_vaddr = params->line_vaddrs[line_idx]; + rd_cmd(RD_CmdKind_AddWatchPin, + .expr = rd_state->drag_drop_regs->expr, + .file_path = line_vaddr == 0 ? rd_regs()->file_path : str8_zero(), + .cursor = line_vaddr == 0 ? txt_pt(line_num, 1) : txt_pt(0, 0), + .vaddr = line_vaddr); + } + if(rd_state->drag_drop_regs_slot == RD_RegSlot_Cfg && drop_cfg != &rd_nil_cfg) + { + S64 line_num = mouse_pt.line; + U64 line_idx = line_num - params->line_num_range.min; + U64 line_vaddr = params->line_vaddrs[line_idx]; + rd_cmd(RD_CmdKind_RelocateCfg, + .cfg = drop_cfg->id, + .file_path = line_vaddr == 0 ? rd_regs()->file_path : str8_zero(), + .cursor = line_vaddr == 0 ? txt_pt(line_num, 1) : txt_pt(0, 0), + .vaddr = line_vaddr); + } + if(drop_thread != &ctrl_entity_nil) + { + S64 line_num = mouse_pt.line; + U64 line_idx = line_num - params->line_num_range.min; + U64 line_vaddr = params->line_vaddrs[line_idx]; + CTRL_Entity *thread = drop_thread; + U64 new_rip_vaddr = line_vaddr; + if(params->line_vaddrs[line_idx] == 0) + { + D_LineList *lines = ¶ms->line_infos[line_idx]; + for(D_LineNode *n = lines->first; n != 0; n = n->next) + { + CTRL_EntityList modules = ctrl_modules_from_dbgi_key(scratch.arena, &d_state->ctrl_entity_store->ctx, &n->v.dbgi_key); + CTRL_Entity *module = ctrl_module_from_thread_candidates(&d_state->ctrl_entity_store->ctx, thread, &modules); + if(module != &ctrl_entity_nil) + { + new_rip_vaddr = ctrl_vaddr_from_voff(module, n->v.voff_range.min); + break; + } + } + } + rd_cmd(RD_CmdKind_SetThreadIP, .thread = thread->handle, .vaddr = new_rip_vaddr); + } + } + + //- rjf: commit text container signal to main output + result.base = text_container_sig; + } + + ////////////////////////////// + //- rjf: produce fancy strings for each line + // + DR_FStrList *lines_fstrs = push_array(scratch.arena, DR_FStrList, dim_1s64(params->line_num_range)+1); + { + DR_FStrParams fstr_params = + { + params->font, + rd_raster_flags_from_slot(RD_FontSlot_Code), + rd_rgba_from_code_color_slot(RD_CodeColorSlot_CodeDefault), + params->font_size, + }; + U64 line_idx = 0; + for(S64 line_num = params->line_num_range.min; + line_num <= params->line_num_range.max; + line_num += 1, line_idx += 1) + { + String8 line_string = params->line_text[line_idx]; + Rng1U64 line_range = params->line_ranges[line_idx]; + TXT_TokenArray *line_tokens = ¶ms->line_tokens[line_idx]; + DR_FStrList fstrs = {0}; + if(line_tokens->count == 0) + { + dr_fstrs_push_new(scratch.arena, &fstrs, &fstr_params, line_string); + } + else + { + TXT_Token *line_tokens_first = line_tokens->v; + TXT_Token *line_tokens_opl = line_tokens->v + line_tokens->count; + for(TXT_Token *token = line_tokens_first; token < line_tokens_opl; token += 1) + { + // rjf: token -> token string + String8 token_string = {0}; + { + Rng1U64 token_range = r1u64(0, line_string.size); + if(token->range.min > line_range.min) + { + token_range.min += token->range.min-line_range.min; + } + if(token->range.max < line_range.max) + { + token_range.max = token->range.max-line_range.min; + } + token_string = str8_substr(line_string, token_range); + } + + // rjf: token -> token color + RD_CodeColorSlot token_color_slot = rd_code_color_slot_from_txt_token_kind(token->kind); + RD_CodeColorSlot lookup_color_slot = rd_code_color_slot_from_txt_token_kind_lookup_string(token->kind, token_string); + Vec4F32 token_color = rd_rgba_from_code_color_slot(token_color_slot); + if(lookup_color_slot != RD_CodeColorSlot_CodeDefault) + { + Vec4F32 lookup_color = rd_rgba_from_code_color_slot(lookup_color_slot); + F32 lookup_color_mix_t = ui_anim(ui_key_from_stringf(ui_key_zero(), "%S_lookup", token_string), 1.f); + token_color = mix_4f32(token_color, lookup_color, lookup_color_mix_t); + } + + // rjf: push fancy string + dr_fstrs_push_new(scratch.arena, &fstrs, &fstr_params, token_string, .color = token_color); + } + } + lines_fstrs[line_idx] = fstrs; + } + } + ////////////////////////////// //- rjf: determine starting offset for each at line, at which we can begin placing extra info to the right // @@ -2183,205 +2382,6 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe di_scope_close(scope); } - ////////////////////////////// - //- rjf: mouse -> text coordinates - // - TxtPt mouse_pt = {0}; - ProfScope("mouse -> text coordinates") - { - Vec2F32 mouse = ui_mouse(); - - // rjf: mouse y => index - U64 mouse_y_line_idx = (U64)((mouse.y - text_container_box->rect.y0) / params->line_height_px); - - // rjf: index => line num - S64 line_num = (params->line_num_range.min + mouse_y_line_idx); - String8 line_string = (params->line_num_range.min <= line_num && line_num <= params->line_num_range.max) ? (params->line_text[mouse_y_line_idx]) : str8_zero(); - - // rjf: mouse x * string => column - S64 column = fnt_char_pos_from_tag_size_string_p(params->font, params->font_size, 0, params->tab_size, line_string, mouse.x-text_container_box->rect.x0-params->line_num_width_px-line_num_padding_px)+1; - - // rjf: bundle - mouse_pt = txt_pt(line_num, column); - - // rjf: clamp - { - U64 last_line_size = params->line_text[dim_1s64(params->line_num_range)].size; - TxtRng legal_pt_rng = txt_rng(txt_pt(params->line_num_range.min, 1), - txt_pt(params->line_num_range.max, last_line_size+1)); - if(txt_pt_less_than(mouse_pt, legal_pt_rng.min)) - { - mouse_pt = legal_pt_rng.min; - } - if(txt_pt_less_than(legal_pt_rng.max, mouse_pt)) - { - mouse_pt = legal_pt_rng.max; - } - } - - result.mouse_pt = mouse_pt; - } - - ////////////////////////////// - //- rjf: mouse point -> mouse token range, mouse line range - // - TxtRng mouse_token_rng = txt_rng(mouse_pt, mouse_pt); - TxtRng mouse_line_rng = txt_rng(mouse_pt, mouse_pt); - if(contains_1s64(params->line_num_range, mouse_pt.line)) - { - TXT_TokenArray *line_tokens = ¶ms->line_tokens[mouse_pt.line-params->line_num_range.min]; - Rng1U64 line_range = params->line_ranges[mouse_pt.line-params->line_num_range.min]; - U64 mouse_pt_off = (mouse_pt.column-1) + line_range.min; - for(U64 line_token_idx = 0; line_token_idx < line_tokens->count; line_token_idx += 1) - { - TXT_Token *line_token = &line_tokens->v[line_token_idx]; - if(contains_1u64(line_token->range, mouse_pt_off)) - { - Rng1U64 line_token_range_clamped = intersect_1u64(line_token->range, line_range); - mouse_token_rng = txt_rng(txt_pt(mouse_pt.line, 1+line_token_range_clamped.min-line_range.min), txt_pt(mouse_pt.line, 1+line_token_range_clamped.max-line_range.min)); - break; - } - } - mouse_line_rng = txt_rng(txt_pt(mouse_pt.line, 1), txt_pt(mouse_pt.line, 1+(line_range.max-line_range.min))); - } - - ////////////////////////////// - //- rjf: interact with margin box & text box - // - B32 search_query_invalidated = 0; - UI_Signal priority_margin_container_sig = ui_signal_from_box(priority_margin_container_box); - UI_Signal catchall_margin_container_sig = ui_signal_from_box(catchall_margin_container_box); - UI_Signal text_container_sig = ui_signal_from_box(text_container_box); - { - //- rjf: determine mouse drag range - TxtRng mouse_drag_rng = txt_rng(mouse_pt, mouse_pt); - if(text_container_sig.f & UI_SignalFlag_LeftTripleDragging) - { - mouse_drag_rng = mouse_line_rng; - } - else if(text_container_sig.f & UI_SignalFlag_LeftDoubleDragging) - { - mouse_drag_rng = mouse_token_rng; - } - - //- rjf: clicking/dragging over the text container - if(!ctrlified && ui_dragging(text_container_sig)) - { - if(mouse_pt.line == 0) - { - mouse_pt.column = 1; - if(ui_mouse().y <= top_container_box->rect.y0) - { - mouse_pt.line = params->line_num_range.min - 2; - } - else if(ui_mouse().y >= top_container_box->rect.y1) - { - mouse_pt.line = params->line_num_range.max + 2; - } - } - if(ui_pressed(text_container_sig)) - { - *cursor = mouse_drag_rng.max; - *mark = mouse_drag_rng.min; - } - if(txt_pt_less_than(mouse_pt, *mark)) - { - *cursor = mouse_drag_rng.min; - } - else - { - *cursor = mouse_drag_rng.max; - } - *preferred_column = cursor->column; - } - - //- rjf: dragging will invalidate the search string, so we don't want to draw it while dragging/releasing - if(ui_dragging(text_container_sig) || ui_released(text_container_sig)) - { - search_query_invalidated = 1; - } - - //- rjf: right-click => code context menu - if(ui_right_clicked(text_container_sig)) - { - if(txt_pt_match(*cursor, *mark)) - { - *cursor = *mark = mouse_pt; - } - U64 vaddr = 0; - D_LineList lines = {0}; - if(params->line_num_range.min <= cursor->line && cursor->line < params->line_num_range.max) - { - vaddr = params->line_vaddrs[cursor->line - params->line_num_range.min]; - lines = params->line_infos[cursor->line - params->line_num_range.min]; - } - rd_cmd(RD_CmdKind_FocusPanel); - rd_cmd(RD_CmdKind_PushQuery, - .expr = txt_pt_match(*cursor, *mark) ? str8_lit("query:text_pt_commands") : str8_lit("query:text_range_commands"), - .do_implicit_root = 1, - .do_lister = 1, - .ui_key = ui_get_selected_state()->root->key, - .off_px = ui_mouse(), - .cursor = *cursor, - .mark = *mark, - .vaddr = vaddr, - .lines = lines); - } - - //- rjf: drop target is dropped -> process - if(drop_can_hit_lines && ui_key_match(ui_drop_hot_key(), drop_site_key) && rd_drag_drop()) - { - if(rd_state->drag_drop_regs_slot == RD_RegSlot_Expr) - { - S64 line_num = mouse_pt.line; - U64 line_idx = line_num - params->line_num_range.min; - U64 line_vaddr = params->line_vaddrs[line_idx]; - rd_cmd(RD_CmdKind_AddWatchPin, - .expr = rd_state->drag_drop_regs->expr, - .file_path = line_vaddr == 0 ? rd_regs()->file_path : str8_zero(), - .cursor = line_vaddr == 0 ? txt_pt(line_num, 1) : txt_pt(0, 0), - .vaddr = line_vaddr); - } - if(rd_state->drag_drop_regs_slot == RD_RegSlot_Cfg && drop_cfg != &rd_nil_cfg) - { - S64 line_num = mouse_pt.line; - U64 line_idx = line_num - params->line_num_range.min; - U64 line_vaddr = params->line_vaddrs[line_idx]; - rd_cmd(RD_CmdKind_RelocateCfg, - .cfg = drop_cfg->id, - .file_path = line_vaddr == 0 ? rd_regs()->file_path : str8_zero(), - .cursor = line_vaddr == 0 ? txt_pt(line_num, 1) : txt_pt(0, 0), - .vaddr = line_vaddr); - } - if(drop_thread != &ctrl_entity_nil) - { - S64 line_num = mouse_pt.line; - U64 line_idx = line_num - params->line_num_range.min; - U64 line_vaddr = params->line_vaddrs[line_idx]; - CTRL_Entity *thread = drop_thread; - U64 new_rip_vaddr = line_vaddr; - if(params->line_vaddrs[line_idx] == 0) - { - D_LineList *lines = ¶ms->line_infos[line_idx]; - for(D_LineNode *n = lines->first; n != 0; n = n->next) - { - CTRL_EntityList modules = ctrl_modules_from_dbgi_key(scratch.arena, &d_state->ctrl_entity_store->ctx, &n->v.dbgi_key); - CTRL_Entity *module = ctrl_module_from_thread_candidates(&d_state->ctrl_entity_store->ctx, thread, &modules); - if(module != &ctrl_entity_nil) - { - new_rip_vaddr = ctrl_vaddr_from_voff(module, n->v.voff_range.min); - break; - } - } - } - rd_cmd(RD_CmdKind_SetThreadIP, .thread = thread->handle, .vaddr = new_rip_vaddr); - } - } - - //- rjf: commit text container signal to main output - result.base = text_container_sig; - } - ////////////////////////////// //- rjf: mouse -> expression range info // diff --git a/src/text_cache/text_cache.c b/src/text_cache/text_cache.c index c973c7f2..b30cd406 100644 --- a/src/text_cache/text_cache.c +++ b/src/text_cache/text_cache.c @@ -2086,6 +2086,55 @@ txt_line_tokens_slice_from_info_data_line_range(Arena *arena, TXT_TextInfo *info return result; } +internal TXT_ScopeNode * +txt_scope_node_from_info_num(TXT_TextInfo *info, U64 num) +{ + TXT_ScopeNode *result = &txt_scope_node_nil; + if(1 <= num && num <= info->scope_nodes.count) + { + result = &info->scope_nodes.v[num-1]; + } + return result; +} + +internal TXT_ScopeNode * +txt_scope_node_from_info_data_off(TXT_TextInfo *info, U64 off) +{ + TXT_ScopeNode *result = &txt_scope_node_nil; + { + U64 first = 0; + U64 opl = info->scope_pts.count; + for(;;) + { + U64 mid = (opl - first) / 2; + if(mid >= info->scope_pts.count) { break; } + U64 mid_off = info->tokens.v[info->scope_pts.v[mid].token_idx].range.min; + if(off == mid_off || (first == mid && opl == mid+1)) + { + result = &info->scope_nodes.v[info->scope_pts.v[mid].scope_idx]; + break; + } + else if(off < mid_off) + { + opl = mid; + } + else if(mid_off < off) + { + first = mid; + } + } + } + return result; +} + +internal TXT_ScopeNode * +txt_scope_node_from_info_data_pt(TXT_TextInfo *info, TxtPt pt) +{ + U64 off = txt_off_from_info_pt(info, pt); + TXT_ScopeNode *result = txt_scope_node_from_info_data_off(info, off); + return result; +} + //////////////////////////////// //~ rjf: Transfer Threads diff --git a/src/text_cache/text_cache.h b/src/text_cache/text_cache.h index 9a4159f2..b20f2fc0 100644 --- a/src/text_cache/text_cache.h +++ b/src/text_cache/text_cache.h @@ -258,6 +258,7 @@ struct TXT_Shared //////////////////////////////// //~ rjf: Globals +read_only global TXT_ScopeNode txt_scope_node_nil = {0}; thread_static TXT_TCTX *txt_tctx = 0; global TXT_Shared *txt_shared = 0; @@ -320,6 +321,9 @@ internal Rng1U64 txt_expr_off_range_from_info_data_pt(TXT_TextInfo *info, String internal String8 txt_string_from_info_data_txt_rng(TXT_TextInfo *info, String8 data, TxtRng rng); internal String8 txt_string_from_info_data_line_num(TXT_TextInfo *info, String8 data, S64 line_num); internal TXT_LineTokensSlice txt_line_tokens_slice_from_info_data_line_range(Arena *arena, TXT_TextInfo *info, String8 data, Rng1S64 line_range); +internal TXT_ScopeNode *txt_scope_node_from_info_num(TXT_TextInfo *info, U64 num); +internal TXT_ScopeNode *txt_scope_node_from_info_data_off(TXT_TextInfo *info, U64 off); +internal TXT_ScopeNode *txt_scope_node_from_info_data_pt(TXT_TextInfo *info, TxtPt pt); //////////////////////////////// //~ rjf: Parse Threads From 01f60834e9d3c956d65b01e1008dc0712cd59124 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Tue, 5 Aug 2025 16:36:59 -0700 Subject: [PATCH 368/372] plug in text scope tree to code slice visualization --- src/raddbg/raddbg_views.c | 1 + src/raddbg/raddbg_widgets.c | 22 ++++++++++++++++++++++ src/raddbg/raddbg_widgets.h | 1 + src/text_cache/text_cache.c | 8 ++++---- src/text_cache/text_cache.h | 4 ++-- 5 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/raddbg/raddbg_views.c b/src/raddbg/raddbg_views.c index eaab6fcc..00f38832 100644 --- a/src/raddbg/raddbg_views.c +++ b/src/raddbg/raddbg_views.c @@ -207,6 +207,7 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla code_slice_params.line_pins = push_array(scratch.arena, RD_CfgList, visible_line_count); code_slice_params.line_vaddrs = push_array(scratch.arena, U64, visible_line_count); code_slice_params.line_infos = push_array(scratch.arena, D_LineList, visible_line_count); + code_slice_params.text_info = text_info; code_slice_params.font = code_font; code_slice_params.font_size = code_font_size; code_slice_params.tab_size = code_tab_size; diff --git a/src/raddbg/raddbg_widgets.c b/src/raddbg/raddbg_widgets.c index 29ad0885..f4e7b521 100644 --- a/src/raddbg/raddbg_widgets.c +++ b/src/raddbg/raddbg_widgets.c @@ -2113,6 +2113,15 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe result.base = text_container_sig; } + ////////////////////////////// + //- rjf: cursor -> scope info + // + TXT_ScopeNode *cursor_scope_node = &txt_scope_node_nil; + if(params->text_info != 0) + { + cursor_scope_node = txt_scope_node_from_info_pt(params->text_info, rd_regs()->cursor); + } + ////////////////////////////// //- rjf: produce fancy strings for each line // @@ -2170,6 +2179,19 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe token_color = mix_4f32(token_color, lookup_color, lookup_color_mix_t); } + // rjf: scope endpoints enclosing cursor -> highlight + for(TXT_ScopeNode *scope_n = cursor_scope_node; + scope_n != &txt_scope_node_nil; + scope_n = txt_scope_node_from_info_num(params->text_info, scope_n->parent_num)) + { + if(params->text_info->tokens.v[scope_n->token_idx_range.min].range.min == token->range.min || + params->text_info->tokens.v[scope_n->token_idx_range.max].range.min == token->range.min) + { + token_color = pop_color; + break; + } + } + // rjf: push fancy string dr_fstrs_push_new(scratch.arena, &fstrs, &fstr_params, token_string, .color = token_color); } diff --git a/src/raddbg/raddbg_widgets.h b/src/raddbg/raddbg_widgets.h index 54d638c8..afdf4bee 100644 --- a/src/raddbg/raddbg_widgets.h +++ b/src/raddbg/raddbg_widgets.h @@ -105,6 +105,7 @@ struct RD_CodeSliceParams U64 *line_vaddrs; D_LineList *line_infos; DI_KeyList relevant_dbgi_keys; + TXT_TextInfo *text_info; // rjf: visual parameters FNT_Tag font; diff --git a/src/text_cache/text_cache.c b/src/text_cache/text_cache.c index b30cd406..b76ccafa 100644 --- a/src/text_cache/text_cache.c +++ b/src/text_cache/text_cache.c @@ -2098,7 +2098,7 @@ txt_scope_node_from_info_num(TXT_TextInfo *info, U64 num) } internal TXT_ScopeNode * -txt_scope_node_from_info_data_off(TXT_TextInfo *info, U64 off) +txt_scope_node_from_info_off(TXT_TextInfo *info, U64 off) { TXT_ScopeNode *result = &txt_scope_node_nil; { @@ -2106,7 +2106,7 @@ txt_scope_node_from_info_data_off(TXT_TextInfo *info, U64 off) U64 opl = info->scope_pts.count; for(;;) { - U64 mid = (opl - first) / 2; + U64 mid = first + (opl - first) / 2; if(mid >= info->scope_pts.count) { break; } U64 mid_off = info->tokens.v[info->scope_pts.v[mid].token_idx].range.min; if(off == mid_off || (first == mid && opl == mid+1)) @@ -2128,10 +2128,10 @@ txt_scope_node_from_info_data_off(TXT_TextInfo *info, U64 off) } internal TXT_ScopeNode * -txt_scope_node_from_info_data_pt(TXT_TextInfo *info, TxtPt pt) +txt_scope_node_from_info_pt(TXT_TextInfo *info, TxtPt pt) { U64 off = txt_off_from_info_pt(info, pt); - TXT_ScopeNode *result = txt_scope_node_from_info_data_off(info, off); + TXT_ScopeNode *result = txt_scope_node_from_info_off(info, off); return result; } diff --git a/src/text_cache/text_cache.h b/src/text_cache/text_cache.h index b20f2fc0..f7f062f8 100644 --- a/src/text_cache/text_cache.h +++ b/src/text_cache/text_cache.h @@ -322,8 +322,8 @@ internal String8 txt_string_from_info_data_txt_rng(TXT_TextInfo *info, String8 d internal String8 txt_string_from_info_data_line_num(TXT_TextInfo *info, String8 data, S64 line_num); internal TXT_LineTokensSlice txt_line_tokens_slice_from_info_data_line_range(Arena *arena, TXT_TextInfo *info, String8 data, Rng1S64 line_range); internal TXT_ScopeNode *txt_scope_node_from_info_num(TXT_TextInfo *info, U64 num); -internal TXT_ScopeNode *txt_scope_node_from_info_data_off(TXT_TextInfo *info, U64 off); -internal TXT_ScopeNode *txt_scope_node_from_info_data_pt(TXT_TextInfo *info, TxtPt pt); +internal TXT_ScopeNode *txt_scope_node_from_info_off(TXT_TextInfo *info, U64 off); +internal TXT_ScopeNode *txt_scope_node_from_info_pt(TXT_TextInfo *info, TxtPt pt); //////////////////////////////// //~ rjf: Parse Threads From 4c10e84e5fbd31fcb1a3f868488b3a7ad0e1c02e Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Tue, 5 Aug 2025 21:17:50 -0700 Subject: [PATCH 369/372] fix txt cache scope lookup binary search --- src/raddbg/raddbg_widgets.c | 15 ++++++++++++++- src/raddbg/raddbg_widgets.h | 1 + src/text_cache/text_cache.c | 27 +++++++++++++++++++++------ 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/src/raddbg/raddbg_widgets.c b/src/raddbg/raddbg_widgets.c index f4e7b521..acd86329 100644 --- a/src/raddbg/raddbg_widgets.c +++ b/src/raddbg/raddbg_widgets.c @@ -1279,6 +1279,11 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe { pop_color = ui_color_from_name(str8_lit("background")); } + Vec4F32 highlight_color = {0}; + UI_TagF("focus") + { + highlight_color = ui_color_from_name(str8_lit("border")); + } ////////////////////////////// //- rjf: build top-level container @@ -2122,6 +2127,14 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe cursor_scope_node = txt_scope_node_from_info_pt(params->text_info, rd_regs()->cursor); } + ////////////////////////////// + //- rjf: equip cursor scope rendering info + // + if(cursor_scope_node != &txt_scope_node_nil) + { + + } + ////////////////////////////// //- rjf: produce fancy strings for each line // @@ -2187,7 +2200,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe if(params->text_info->tokens.v[scope_n->token_idx_range.min].range.min == token->range.min || params->text_info->tokens.v[scope_n->token_idx_range.max].range.min == token->range.min) { - token_color = pop_color; + token_color = highlight_color; break; } } diff --git a/src/raddbg/raddbg_widgets.h b/src/raddbg/raddbg_widgets.h index afdf4bee..ba158481 100644 --- a/src/raddbg/raddbg_widgets.h +++ b/src/raddbg/raddbg_widgets.h @@ -159,6 +159,7 @@ internal UI_Signal rd_icon_buttonf(RD_IconKind kind, FuzzyMatchRangeList *matche //////////////////////////////// //~ rjf: UI Widgets: Text View +internal UI_BOX_CUSTOM_DRAW(rd_code_slice_text_draw_extensions); internal UI_BOX_CUSTOM_DRAW(rd_thread_box_draw_extensions); internal UI_BOX_CUSTOM_DRAW(rd_bp_box_draw_extensions); internal RD_CodeSliceSignal rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *preferred_column, String8 string); diff --git a/src/text_cache/text_cache.c b/src/text_cache/text_cache.c index b76ccafa..c142a844 100644 --- a/src/text_cache/text_cache.c +++ b/src/text_cache/text_cache.c @@ -2101,26 +2101,41 @@ internal TXT_ScopeNode * txt_scope_node_from_info_off(TXT_TextInfo *info, U64 off) { TXT_ScopeNode *result = &txt_scope_node_nil; + if(info->scope_pts.count != 0) { U64 first = 0; U64 opl = info->scope_pts.count; for(;;) { - U64 mid = first + (opl - first) / 2; - if(mid >= info->scope_pts.count) { break; } + U64 mid = (first + opl) / 2; U64 mid_off = info->tokens.v[info->scope_pts.v[mid].token_idx].range.min; - if(off == mid_off || (first == mid && opl == mid+1)) + if(mid_off < off) { - result = &info->scope_nodes.v[info->scope_pts.v[mid].scope_idx]; - break; + first = mid; } else if(off < mid_off) { opl = mid; } - else if(mid_off < off) + else { first = mid; + break; + } + if(opl - first <= 1) + { + break; + } + } + TXT_ScopeNode *closest_node = &info->scope_nodes.v[info->scope_pts.v[first].scope_idx]; + for(TXT_ScopeNode *scope_n = closest_node; + scope_n != &txt_scope_node_nil; + scope_n = txt_scope_node_from_info_num(info, scope_n->parent_num)) + { + if(off < info->tokens.v[scope_n->token_idx_range.max].range.max) + { + result = scope_n; + break; } } } From cd8c3a217248728c5ce78be497b71cc4e3977d33 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 6 Aug 2025 11:50:01 -0700 Subject: [PATCH 370/372] enable read/write bits on just read data breakpoint on x64 - there is no way to do a read-only (without write) data breakpoint --- src/demon/win32/demon_core_win32.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/demon/win32/demon_core_win32.c b/src/demon/win32/demon_core_win32.c index 2998bc41..5c23ba35 100644 --- a/src/demon/win32/demon_core_win32.c +++ b/src/demon/win32/demon_core_win32.c @@ -1684,6 +1684,7 @@ dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) }break; case DMN_TrapFlag_BreakOnRead|DMN_TrapFlag_BreakOnWrite|DMN_TrapFlag_BreakOnExecute: case DMN_TrapFlag_BreakOnRead|DMN_TrapFlag_BreakOnWrite: + case DMN_TrapFlag_BreakOnRead: { regs.dr7.u64 |= (((U64)bit17) << (trap_idx*4)); regs.dr7.u64 |= (((U64)bit18) << (trap_idx*4)); From a227aff8f642f9fb3125369ab2a540a3f2e04103 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 6 Aug 2025 14:24:12 -0700 Subject: [PATCH 371/372] finish containing-scope visualization --- project.4coder | 4 +- src/base/base_math.c | 8 + src/base/base_math.h | 1 + src/draw/draw.c | 15 +- src/raddbg/raddbg_views.c | 1 + src/raddbg/raddbg_widgets.c | 434 +++++++++++++++++++++--------------- src/raddbg/raddbg_widgets.h | 1 + 7 files changed, 282 insertions(+), 182 deletions(-) diff --git a/project.4coder b/project.4coder index bd53fe4b..6fc96e05 100644 --- a/project.4coder +++ b/project.4coder @@ -46,8 +46,8 @@ load_paths = commands = { //- rjf: [raddbg] - // .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, - .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [raddbg wsl] // .f1 = { .win = "wsl ./build.sh raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, diff --git a/src/base/base_math.c b/src/base/base_math.c index aced70ba..a5d00232 100644 --- a/src/base/base_math.c +++ b/src/base/base_math.c @@ -81,6 +81,14 @@ internal F32 length_3f32(Vec3F32 v) {F32 c = sqrt_f3 internal Vec3F32 normalize_3f32(Vec3F32 v) {v = scale_3f32(v, 1.f/length_3f32(v)); return v;} internal Vec3F32 mix_3f32(Vec3F32 a, Vec3F32 b, F32 t) {Vec3F32 c = {mix_1f32(a.x, b.x, t), mix_1f32(a.y, b.y, t), mix_1f32(a.z, b.z, t)}; return c;} internal Vec3F32 cross_3f32(Vec3F32 a, Vec3F32 b) {Vec3F32 c = {a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x}; return c;} +internal Vec3F32 xform_3f32(Vec3F32 v, Mat3x3F32 m) +{ + Vec3F32 result; + result.x = v.x*m.v[0][0] + v.y*m.v[1][0] + v.z*m.v[2][0]; + result.y = v.x*m.v[0][1] + v.y*m.v[1][1] + v.z*m.v[2][1]; + result.z = v.x*m.v[0][2] + v.y*m.v[1][2] + v.z*m.v[2][2]; + return result; +} internal Vec3S32 vec_3s32(S32 x, S32 y, S32 z) {Vec3S32 v = {x, y, z}; return v;} internal Vec3S32 add_3s32(Vec3S32 a, Vec3S32 b) {Vec3S32 c = {a.x+b.x, a.y+b.y, a.z+b.z}; return c;} diff --git a/src/base/base_math.h b/src/base/base_math.h index b33b139d..dbabea0b 100644 --- a/src/base/base_math.h +++ b/src/base/base_math.h @@ -485,6 +485,7 @@ internal F32 length_3f32(Vec3F32 v); internal Vec3F32 normalize_3f32(Vec3F32 v); internal Vec3F32 mix_3f32(Vec3F32 a, Vec3F32 b, F32 t); internal Vec3F32 cross_3f32(Vec3F32 a, Vec3F32 b); +internal Vec3F32 xform_3f32(Vec3F32 v, Mat3x3F32 m); #define v3s32(x, y, z) vec_3s32((x), (y), (z)) internal Vec3S32 vec_3s32(S32 x, S32 y, S32 z); diff --git a/src/draw/draw.c b/src/draw/draw.c index 5c31e93e..82145c4a 100644 --- a/src/draw/draw.c +++ b/src/draw/draw.c @@ -507,12 +507,19 @@ dr_sub_bucket(DR_Bucket *bucket) MemoryCopyStruct(&dst_group_n->params, &src_group_n->params); dst_group_n->batches = src_group_n->batches; dst_group_n->params.xform = dr_top_xform2d(); + B32 clip_is_set = !(dst_group_n->params.clip.x0 == 0 && + dst_group_n->params.clip.y0 == 0 && + dst_group_n->params.clip.x1 == 0 && + dst_group_n->params.clip.y1 == 0); + if(clip_is_set) + { + Rng2F32 og_clip = dst_group_n->params.clip; + Mat3x3F32 xform = dst_group_n->params.xform; + dst_group_n->params.clip = r2f32(xform_3f32(v3f32(og_clip.x0, og_clip.y0, 1), xform).xy, + xform_3f32(v3f32(og_clip.x1, og_clip.y1, 1), xform).xy); + } if(dst_clip_is_set) { - B32 clip_is_set = !(dst_group_n->params.clip.x0 == 0 && - dst_group_n->params.clip.y0 == 0 && - dst_group_n->params.clip.x1 == 0 && - dst_group_n->params.clip.y1 == 0); dst_group_n->params.clip = clip_is_set ? intersect_2f32(dst_clip, dst_group_n->params.clip) : dst_clip; } } diff --git a/src/raddbg/raddbg_views.c b/src/raddbg/raddbg_views.c index 00f38832..1379a785 100644 --- a/src/raddbg/raddbg_views.c +++ b/src/raddbg/raddbg_views.c @@ -208,6 +208,7 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla code_slice_params.line_vaddrs = push_array(scratch.arena, U64, visible_line_count); code_slice_params.line_infos = push_array(scratch.arena, D_LineList, visible_line_count); code_slice_params.text_info = text_info; + code_slice_params.text_data = text_data; code_slice_params.font = code_font; code_slice_params.font_size = code_font_size; code_slice_params.tab_size = code_tab_size; diff --git a/src/raddbg/raddbg_widgets.c b/src/raddbg/raddbg_widgets.c index acd86329..e02c8e73 100644 --- a/src/raddbg/raddbg_widgets.c +++ b/src/raddbg/raddbg_widgets.c @@ -1981,6 +1981,179 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe mouse_line_rng = txt_rng(txt_pt(mouse_pt.line, 1), txt_pt(mouse_pt.line, 1+(line_range.max-line_range.min))); } + ////////////////////////////// + //- rjf: determine starting offset for each at line, at which we can begin placing extra info to the right + // + F32 *line_extras_off = push_array(scratch.arena, F32, dim_1s64(params->line_num_range)+1); + { + U64 line_idx = 0; + for(S64 line_num = params->line_num_range.min; + line_num <= params->line_num_range.max; + line_num += 1, line_idx += 1) + { + F32 line_text_dim = fnt_dim_from_tag_size_string(params->font, params->font_size, 0, params->tab_size, params->line_text[line_idx]).x + params->line_num_width_px + params->catchall_margin_width_px + params->priority_margin_width_px; + line_extras_off[line_idx] = Max(line_text_dim, params->font_size*30); + } + } + + ////////////////////////////// + //- rjf: produce per-line extra annotation containers + // + UI_Box **line_extras_boxes = push_array(scratch.arena, UI_Box *, dim_1s64(params->line_num_range)+1); + UI_PrefWidth(ui_children_sum(1)) UI_PrefHeight(ui_px(params->line_height_px, 1.f)) UI_Parent(text_container_box) UI_Focus(UI_FocusKind_Off) + { + U64 line_idx = 0; + for(S64 line_num = params->line_num_range.min; + line_num < params->line_num_range.max; + line_num += 1, line_idx += 1) + { + ui_set_next_fixed_x(line_extras_off[line_idx]); + ui_set_next_fixed_y(line_idx*params->line_height_px); + line_extras_boxes[line_idx] = ui_build_box_from_stringf(0, "###extras_%I64x", line_idx); + } + } + + ////////////////////////////// + //- rjf: build watch pin annotations + // + UI_Focus(UI_FocusKind_Off) + { + DI_Scope *scope = di_scope_open(); + U64 line_idx = 0; + for(S64 line_num = params->line_num_range.min; + line_num < params->line_num_range.max; + line_num += 1, line_idx += 1) + { + RD_CfgList immediate_pins = {0}; + String8 line_text = params->line_text[line_idx]; + for(U64 off = 0, next_off = line_text.size; + off < line_text.size; + off = next_off) + { + // rjf: find next opener + String8 markup_opener = str8_lit("raddbg_pin("); + next_off = str8_find_needle(line_text, off, markup_opener, 0); + next_off += markup_opener.size; + + // rjf: extract contents of markup + String8 contents = {0}; + S32 nest = 1; + for(U64 off2 = next_off; off2 < line_text.size; off2 += 1) + { + if(line_text.str[off2] == '(') + { + nest += 1; + } + else if(line_text.str[off2] == ')') + { + nest -= 1; + if(nest == 0) + { + contents = str8_substr(line_text, r1u64(next_off, off2)); + break; + } + } + } + + // rjf: gather arguments + String8List args = {0}; + { + S32 nest = 0; + U64 arg_start_off = 0; + for(U64 contents_off = 0; contents_off <= contents.size; contents_off += 1) + { + if(nest == 0 && (contents_off == contents.size || contents.str[contents_off] == ',')) + { + String8 arg = str8_substr(contents, r1u64(arg_start_off, contents_off)); + arg = str8_skip_chop_whitespace(arg); + str8_list_push(scratch.arena, &args, arg); + arg_start_off = contents_off+1; + } + if(contents_off < contents.size) + { + if(contents.str[contents_off] == '(') + { + nest += 1; + } + else if(contents.str[contents_off] == ')') + { + nest -= 1; + } + } + } + } + + // rjf: extract fixed arguments + String8 expr_string = {0}; + if(args.first != 0) + { + expr_string = args.first->string; + } + + // rjf: build immediate pin for this markup + if(expr_string.size != 0) + { + RD_Cfg *immediate_root = rd_immediate_cfg_from_keyf("markup_pin_%I64x_%I64x", line_num, off); + RD_Cfg *pin = rd_cfg_child_from_string_or_alloc(immediate_root, str8_lit("watch_pin")); + RD_Cfg *expr = rd_cfg_child_from_string_or_alloc(pin, str8_lit("expression")); + rd_cfg_new_replace(expr, expr_string); + rd_cfg_list_push(scratch.arena, &immediate_pins, pin); + } + } + RD_CfgList pin_lists[] = + { + params->line_pins[line_idx], + immediate_pins, + }; + E_ParentKey(e_key_zero()) for EachElement(list_idx, pin_lists) + { + RD_CfgList pins = pin_lists[list_idx]; + if(pins.count != 0) UI_Parent(line_extras_boxes[line_idx]) + RD_Font(RD_FontSlot_Code) + UI_FontSize(params->font_size) + UI_PrefHeight(ui_px(params->line_height_px, 1.f)) + { + for(RD_CfgNode *n = pins.first; n != 0; n = n->next) + { + RD_Cfg *pin = n->v; + String8 pin_expr = rd_expr_from_cfg(pin); + E_Eval eval = e_eval_from_string(pin_expr); + String8 eval_string = {0}; + if(!e_type_key_match(e_type_key_zero(), eval.irtree.type_key)) + { + EV_StringParams string_params = {.flags = EV_StringFlag_ReadOnlyDisplayRules, .radix = 10}; + eval_string = rd_value_string_from_eval(scratch.arena, str8_zero(), &string_params, params->font, params->font_size, params->font_size*60.f, eval); + } + ui_spacer(ui_em(1.5f, 1.f)); + ui_set_next_pref_width(ui_children_sum(1)); + UI_Key pin_box_key = ui_key_from_stringf(ui_key_zero(), "###pin_%p", pin); + UI_Box *pin_box = ui_build_box_from_key(UI_BoxFlag_AnimatePos| + UI_BoxFlag_Clickable*!!(params->flags & RD_CodeSliceFlag_Clickable)| + UI_BoxFlag_DrawHotEffects| + UI_BoxFlag_DrawBorder, pin_box_key); + UI_Parent(pin_box) UI_PrefWidth(ui_text_dim(10, 1)) + { + Vec4F32 pin_color = rd_color_from_cfg(pin); + if(pin_color.w == 0) + { + pin_color = ui_color_from_name(str8_lit("text")); + } + Vec4F32 default_code_color = ui_color_from_name(str8_lit("code_default")); + rd_code_label(0.8f, 1, default_code_color, pin_expr); + rd_code_label(0.6f, 1, default_code_color, eval_string); + } + UI_Signal pin_sig = ui_signal_from_box(pin_box); + if(ui_key_match(pin_box_key, ui_hot_key())) + { + rd_set_hover_eval(v2f32(pin_box->rect.x0, pin_box->rect.y1-2.f), pin_expr); + } + } + } + } + } + di_scope_close(scope); + } + ////////////////////////////// //- rjf: interact with margin box & text box // @@ -2127,14 +2300,6 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe cursor_scope_node = txt_scope_node_from_info_pt(params->text_info, rd_regs()->cursor); } - ////////////////////////////// - //- rjf: equip cursor scope rendering info - // - if(cursor_scope_node != &txt_scope_node_nil) - { - - } - ////////////////////////////// //- rjf: produce fancy strings for each line // @@ -2214,36 +2379,92 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe } ////////////////////////////// - //- rjf: determine starting offset for each at line, at which we can begin placing extra info to the right + //- rjf: equip cursor scope rendering info // - F32 *line_extras_off = push_array(scratch.arena, F32, dim_1s64(params->line_num_range)+1); + if(cursor_scope_node != &txt_scope_node_nil) { - U64 line_idx = 0; - for(S64 line_num = params->line_num_range.min; - line_num <= params->line_num_range.max; - line_num += 1, line_idx += 1) + Vec4F32 scope_line_color = highlight_color; + scope_line_color.w *= 0.25f; + DR_Bucket *bucket = dr_bucket_make(); + DR_BucketScope(bucket) { - DR_FStrList line_fstrs = lines_fstrs[line_idx]; - F32 line_text_dim = dr_dim_from_fstrs(params->tab_size, &line_fstrs).x + params->line_num_width_px + params->catchall_margin_width_px + params->priority_margin_width_px; - line_extras_off[line_idx] = Max(line_text_dim, params->font_size*30); - } - } - - ////////////////////////////// - //- rjf: produce per-line extra annotation containers - // - UI_Box **line_extras_boxes = push_array(scratch.arena, UI_Box *, dim_1s64(params->line_num_range)+1); - UI_PrefWidth(ui_children_sum(1)) UI_PrefHeight(ui_px(params->line_height_px, 1.f)) UI_Parent(text_container_box) UI_Focus(UI_FocusKind_Off) - { - U64 line_idx = 0; - for(S64 line_num = params->line_num_range.min; - line_num < params->line_num_range.max; - line_num += 1, line_idx += 1) - { - ui_set_next_fixed_x(line_extras_off[line_idx]); - ui_set_next_fixed_y(line_idx*params->line_height_px); - line_extras_boxes[line_idx] = ui_build_box_from_stringf(0, "###extras_%I64x", line_idx); + Vec2F32 text_base_pos = v2f32(text_container_box->rect.x0 + params->line_num_width_px + line_num_padding_px, + text_container_box->rect.y0); + for(TXT_ScopeNode *scope_n = cursor_scope_node; + scope_n != &txt_scope_node_nil; + scope_n = txt_scope_node_from_info_num(params->text_info, scope_n->parent_num)) + { + Rng1U64 token_idx_range = scope_n->token_idx_range; + Rng1U64 off_range = r1u64(params->text_info->tokens.v[token_idx_range.min].range.min, params->text_info->tokens.v[token_idx_range.max].range.min); + TxtRng txt_range = txt_rng(txt_pt_from_info_off__linear_scan(params->text_info, off_range.min), txt_pt_from_info_off__linear_scan(params->text_info, off_range.max)); + + //- rjf: single-line scopes (underline) + if(txt_range.min.line == txt_range.max.line && contains_1s64(params->line_num_range, txt_range.min.line)) + { + S64 line_num = txt_range.min.line; + U64 line_idx = (U64)(line_num - params->line_num_range.min); + String8 line_string = params->line_text[line_idx]; + Rng1U64 line_off_range = r1u64(off_range.min - params->line_ranges[line_idx].min, off_range.max+1 - params->line_ranges[line_idx].min); + Rng1F32 x_px_range = r1f32(fnt_dim_from_tag_size_string(params->font, params->font_size, 0, params->tab_size, str8_prefix(line_string, line_off_range.min)).x, + fnt_dim_from_tag_size_string(params->font, params->font_size, 0, params->tab_size, str8_prefix(line_string, line_off_range.max)).x); + F32 line_y = line_idx*params->line_height_px; + Rng2F32 underline_rect = r2f32p(text_base_pos.x + x_px_range.min, + text_base_pos.y + line_y + params->line_height_px*0.5f, + text_base_pos.x + x_px_range.max+1, + text_base_pos.y + line_y + params->line_height_px + params->font_size*0.1f); + F32 midpoint = center_1f32(r1f32(underline_rect.x0, underline_rect.x1)); + F32 t = ui_anim(ui_key_from_stringf(text_container_box->key, "###scope_%I64x_%I64x", scope_n->token_idx_range.min, scope_n->token_idx_range.max), 1.f); + Rng2F32 underline_clip = {0}; + underline_clip.x0 = mix_1f32(midpoint, underline_rect.x0 - params->font_size, t); + underline_clip.x1 = mix_1f32(midpoint, underline_rect.x1 + params->font_size, t); + underline_clip.y0 = underline_rect.y0 + (underline_rect.y1 - underline_rect.y0) * 0.65f; + underline_clip.y1 = 10000; + DR_ClipScope(underline_clip) + { + dr_rect(underline_rect, scope_line_color, params->font_size*0.1f, 1.f, 1.f); + } + } + + //- rjf: cross-line scopes + if(txt_range.min.line != txt_range.max.line && params->line_num_range.max > txt_range.min.line && params->line_num_range.min < txt_range.max.line) + { + String8 opener_line = txt_string_from_info_data_line_num(params->text_info, params->text_data, txt_range.min.line); + String8 closer_line = txt_string_from_info_data_line_num(params->text_info, params->text_data, txt_range.max.line); + String8 opener_line_pre_opener = str8_prefix(opener_line, txt_range.min.column-1); + String8 closer_line_pre_closer = str8_prefix(closer_line, txt_range.max.column-1); + F32 opener_line_pre_opener_px = fnt_dim_from_tag_size_string(params->font, params->font_size, 0, params->tab_size, opener_line_pre_opener).x; + F32 closer_line_pre_closer_px = fnt_dim_from_tag_size_string(params->font, params->font_size, 0, params->tab_size, closer_line_pre_closer).x; + F32 indent_depth_px = Min(opener_line_pre_opener_px, closer_line_pre_closer_px); + Rng1F32 scope_range_y_px = r1f32(0, dim_2f32(text_container_box->rect).y); + if(contains_1s64(params->line_num_range, txt_range.min.line)) + { + scope_range_y_px.min = (txt_range.min.line - params->line_num_range.min) * params->line_height_px; + } + if(contains_1s64(params->line_num_range, txt_range.max.line)) + { + scope_range_y_px.max = ((txt_range.max.line - params->line_num_range.min) + 1) * params->line_height_px; + } + F32 midpoint = center_1f32(scope_range_y_px); + F32 t = ui_anim(ui_key_from_stringf(text_container_box->key, "###scope_%I64x_%I64x", scope_n->token_idx_range.min, scope_n->token_idx_range.max), 1.f); + Rng2F32 scope_rect = r2f32p(text_base_pos.x + indent_depth_px - params->font_size*0.2f, + text_base_pos.y + scope_range_y_px.min, + text_base_pos.x + indent_depth_px - params->font_size*0.2f + params->font_size*1.f, + text_base_pos.y + scope_range_y_px.max); + Rng2F32 scope_clip_rect = {0}; + { + scope_clip_rect.x0 = scope_rect.x0 - params->font_size*10.f; + scope_clip_rect.x1 = scope_rect.x0 + (scope_rect.x1 - scope_rect.x0)*0.4f; + scope_clip_rect.y0 = mix_1f32(midpoint, scope_rect.y0 - params->font_size*0.1f, t); + scope_clip_rect.y1 = mix_1f32(midpoint, scope_rect.y1 + params->font_size*0.1f, t); + } + DR_ClipScope(scope_clip_rect) + { + dr_rect(scope_rect, scope_line_color, params->font_size*0.1f, 1.f, 1.f); + } + } + } } + ui_box_equip_draw_bucket(text_container_box, bucket); } ////////////////////////////// @@ -2276,147 +2497,6 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe } } - ////////////////////////////// - //- rjf: build watch pin annotations - // - UI_Focus(UI_FocusKind_Off) - { - DI_Scope *scope = di_scope_open(); - U64 line_idx = 0; - for(S64 line_num = params->line_num_range.min; - line_num < params->line_num_range.max; - line_num += 1, line_idx += 1) - { - RD_CfgList immediate_pins = {0}; - String8 line_text = params->line_text[line_idx]; - for(U64 off = 0, next_off = line_text.size; - off < line_text.size; - off = next_off) - { - // rjf: find next opener - String8 markup_opener = str8_lit("raddbg_pin("); - next_off = str8_find_needle(line_text, off, markup_opener, 0); - next_off += markup_opener.size; - - // rjf: extract contents of markup - String8 contents = {0}; - S32 nest = 1; - for(U64 off2 = next_off; off2 < line_text.size; off2 += 1) - { - if(line_text.str[off2] == '(') - { - nest += 1; - } - else if(line_text.str[off2] == ')') - { - nest -= 1; - if(nest == 0) - { - contents = str8_substr(line_text, r1u64(next_off, off2)); - break; - } - } - } - - // rjf: gather arguments - String8List args = {0}; - { - S32 nest = 0; - U64 arg_start_off = 0; - for(U64 contents_off = 0; contents_off <= contents.size; contents_off += 1) - { - if(nest == 0 && (contents_off == contents.size || contents.str[contents_off] == ',')) - { - String8 arg = str8_substr(contents, r1u64(arg_start_off, contents_off)); - arg = str8_skip_chop_whitespace(arg); - str8_list_push(scratch.arena, &args, arg); - arg_start_off = contents_off+1; - } - if(contents_off < contents.size) - { - if(contents.str[contents_off] == '(') - { - nest += 1; - } - else if(contents.str[contents_off] == ')') - { - nest -= 1; - } - } - } - } - - // rjf: extract fixed arguments - String8 expr_string = {0}; - if(args.first != 0) - { - expr_string = args.first->string; - } - - // rjf: build immediate pin for this markup - if(expr_string.size != 0) - { - RD_Cfg *immediate_root = rd_immediate_cfg_from_keyf("markup_pin_%I64x_%I64x", line_num, off); - RD_Cfg *pin = rd_cfg_child_from_string_or_alloc(immediate_root, str8_lit("watch_pin")); - RD_Cfg *expr = rd_cfg_child_from_string_or_alloc(pin, str8_lit("expression")); - rd_cfg_new_replace(expr, expr_string); - rd_cfg_list_push(scratch.arena, &immediate_pins, pin); - } - } - RD_CfgList pin_lists[] = - { - params->line_pins[line_idx], - immediate_pins, - }; - E_ParentKey(e_key_zero()) for EachElement(list_idx, pin_lists) - { - RD_CfgList pins = pin_lists[list_idx]; - if(pins.count != 0) UI_Parent(line_extras_boxes[line_idx]) - RD_Font(RD_FontSlot_Code) - UI_FontSize(params->font_size) - UI_PrefHeight(ui_px(params->line_height_px, 1.f)) - { - for(RD_CfgNode *n = pins.first; n != 0; n = n->next) - { - RD_Cfg *pin = n->v; - String8 pin_expr = rd_expr_from_cfg(pin); - E_Eval eval = e_eval_from_string(pin_expr); - String8 eval_string = {0}; - if(!e_type_key_match(e_type_key_zero(), eval.irtree.type_key)) - { - EV_StringParams string_params = {.flags = EV_StringFlag_ReadOnlyDisplayRules, .radix = 10}; - eval_string = rd_value_string_from_eval(scratch.arena, str8_zero(), &string_params, params->font, params->font_size, params->font_size*60.f, eval); - } - ui_spacer(ui_em(1.5f, 1.f)); - ui_set_next_pref_width(ui_children_sum(1)); - UI_Key pin_box_key = ui_key_from_stringf(ui_key_zero(), "###pin_%p", pin); - UI_Box *pin_box = ui_build_box_from_key(UI_BoxFlag_AnimatePos| - UI_BoxFlag_Clickable*!!(params->flags & RD_CodeSliceFlag_Clickable)| - UI_BoxFlag_DrawHotEffects| - UI_BoxFlag_DrawBorder, pin_box_key); - UI_Parent(pin_box) UI_PrefWidth(ui_text_dim(10, 1)) - { - Vec4F32 pin_color = rd_color_from_cfg(pin); - if(pin_color.w == 0) - { - pin_color = ui_color_from_name(str8_lit("text")); - } - Vec4F32 default_code_color = ui_color_from_name(str8_lit("code_default")); - rd_code_label(0.8f, 1, default_code_color, pin_expr); - rd_code_label(0.6f, 1, default_code_color, eval_string); - } - UI_Signal pin_sig = ui_signal_from_box(pin_box); - if(ui_key_match(pin_box_key, ui_hot_key())) - { - rd_set_hover_eval(v2f32(pin_box->rect.x0, pin_box->rect.y1-2.f), pin_expr); - } - } - } - } - } - di_scope_close(scope); - } - ////////////////////////////// //- rjf: mouse -> expression range info // @@ -2485,7 +2565,9 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe if(!ui_dragging(text_container_sig) && text_container_sig.event_flags == 0 && mouse_expr.size != 0) { E_Eval eval = e_eval_from_string(mouse_expr); - if(eval.msgs.max_kind == E_MsgKind_Null && (eval.irtree.mode != E_Mode_Null || mouse_expr_is_explicit)) + B32 eval_implicit_hover = (eval.irtree.mode != E_Mode_Null && + eval.space.kind == RD_EvalSpaceKind_CtrlEntity); + if(eval.msgs.max_kind == E_MsgKind_Null && (eval_implicit_hover || mouse_expr_is_explicit)) { U64 line_vaddr = 0; if(contains_1s64(params->line_num_range, mouse_pt.line)) diff --git a/src/raddbg/raddbg_widgets.h b/src/raddbg/raddbg_widgets.h index ba158481..88678f99 100644 --- a/src/raddbg/raddbg_widgets.h +++ b/src/raddbg/raddbg_widgets.h @@ -106,6 +106,7 @@ struct RD_CodeSliceParams D_LineList *line_infos; DI_KeyList relevant_dbgi_keys; TXT_TextInfo *text_info; + String8 text_data; // rjf: visual parameters FNT_Tag font; From af5dcffdac91ee312bda2583f6c5ec284a0d6600 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 6 Aug 2025 14:33:17 -0700 Subject: [PATCH 372/372] tie scope rendering to settings --- src/raddbg/generated/raddbg.meta.c | 2 +- src/raddbg/raddbg.mdesk | 4 ++++ src/raddbg/raddbg_widgets.c | 7 ++++--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/raddbg/generated/raddbg.meta.c b/src/raddbg/generated/raddbg.meta.c index bbdc8c35..0be16561 100644 --- a/src/raddbg/generated/raddbg.meta.c +++ b/src/raddbg/generated/raddbg.meta.c @@ -418,7 +418,7 @@ RD_VocabInfo rd_vocab_info_table[352] = RD_NameSchemaInfo rd_name_schema_info_table[24] = { -{str8_lit_comp("user"), str8_lit_comp("@expand_commands(edit_user_theme) x:\n{\n //- rjf: animations\n @display_name('Animations') @description(\"Enables animations.\")\n @default(1) 'animations': bool,\n @display_name('Scrolling Animations') @description(\"Enables scrolling animations.\")\n @expand_if(\"$.animations\") @default(1) 'scrolling_animations': bool,\n @display_name('Tooltip Animations') @description(\"Enables tooltip animations.\")\n @expand_if(\"$.animations\") @default(1) 'tooltip_animations': bool,\n @display_name('Menu Animations') @description(\"Enables menu animations.\")\n @expand_if(\"$.animations\") @default(1) 'menu_animations': bool,\n\n //- rjf: fonts\n @display_name('UI Font') @description(\"The name of, or path to, the font used when displaying non-code UI elements.\")\n @default('') 'main_font': string,\n @display_name('Code Font') @description(\"The name of, or path to, the font used when displaying code.\")\n @default('') 'code_font': string,\n\n //- rjf: theme\n @default(\"Default (Dark)\") @display_name('User Theme')\n @description(\"The user's theme, which describes all colors used throughout the UI.\")\n 'theme': string,\n @no_expand @display_name('User Theme')\n 'theme_colors': query,\n\n //- rjf: autocompletion\n @display_name('Autocompletion Lister') @description(\"Enables the autocompletion lister while typing expressions.\") @default(1)\n 'autocompletion_lister': bool,\n @display_name('View Call Argument Helper') @description(\"Enables the view call argument helper, which shows view arguments and documentation, while typing expressions.\") @default(1)\n 'view_call_argument_helper': bool,\n\n //- rjf: thread & breakpoint decorations\n @default(1) @display_name('Thread Lines') @description(\"Controls whether or not a long horizontal line is drawn before the next line or instruction that the selected thread will execute in source and disassembly views.\")\n 'thread_lines': bool,\n @default(1) @display_name('Thread Glow') @description(\"Controls whether or not a glowing effect is drawn on the selected thread in source and disassembly views.\")\n 'thread_glow': bool,\n @default(1) @display_name('Breakpoint Lines') @description(\"Controls whether or not a long horizontal line is drawn before the line or instruction at which a breakpoint is placed, in source and disassembly views.\")\n 'breakpoint_lines': bool,\n @default(1) @display_name('Breakpoint Glow') @description(\"Controls whether or not a glowing effect is drawn on breakpoints in source and disassembly views.\")\n 'breakpoint_glow': bool,\n\n //- rjf: occluding background settings\n @default(0) @display_name('Opaque Backgrounds') @description(\"Controls whether or not all floating background colors are forced to be fully opaque.\")\n 'opaque_backgrounds': bool,\n @default(1) @display_name('Background Blur') @description(\"Controls whether or not occluded regions behind floating elements are blurred.\")\n 'background_blur': bool,\n\n //- rjf: appearance settings\n @default(1) @display_name('Drop Shadows') @description(\"Controls whether or not drop shadows are drawn.\")\n 'drop_shadows': bool,\n @default(1.f) @display_name('Rounded Corner Amount') @description(\"Controls the degree to which UI corners are rounded.\")\n 'rounded_corner_amount': @range[0, 1] f32,\n\n //- rjf: code formatting settings\n @default(2) @display_name('User Tab Width') 'tab_width': @range[1, 32] u64,\n\n //- rjf: windows style menu bar\n @default(1) @display_name('Focus Menu Bar With Alt') @description(\"Mimics standard Windows behavior of focusing the menu bar using the Alt key.\")\n 'focus_menu_bar_with_alt': bool,\n\n //- rjf: native filesystem dialogues\n @default(0) @display_name('Use Native File System Dialog') @description(\"Uses the operating system's file system dialog box, rather than the debugger's built-in UI.\")\n 'use_native_file_system_dialog': bool,\n}\n")}, +{str8_lit_comp("user"), str8_lit_comp("@expand_commands(edit_user_theme) x:\n{\n //- rjf: animations\n @display_name('Animations') @description(\"Enables animations.\")\n @default(1) 'animations': bool,\n @display_name('Scrolling Animations') @description(\"Enables scrolling animations.\")\n @expand_if(\"$.animations\") @default(1) 'scrolling_animations': bool,\n @display_name('Tooltip Animations') @description(\"Enables tooltip animations.\")\n @expand_if(\"$.animations\") @default(1) 'tooltip_animations': bool,\n @display_name('Menu Animations') @description(\"Enables menu animations.\")\n @expand_if(\"$.animations\") @default(1) 'menu_animations': bool,\n\n //- rjf: fonts\n @display_name('UI Font') @description(\"The name of, or path to, the font used when displaying non-code UI elements.\")\n @default('') 'main_font': string,\n @display_name('Code Font') @description(\"The name of, or path to, the font used when displaying code.\")\n @default('') 'code_font': string,\n\n //- rjf: theme\n @default(\"Default (Dark)\") @display_name('User Theme')\n @description(\"The user's theme, which describes all colors used throughout the UI.\")\n 'theme': string,\n @no_expand @display_name('User Theme')\n 'theme_colors': query,\n\n //- rjf: autocompletion\n @display_name('Autocompletion Lister') @description(\"Enables the autocompletion lister while typing expressions.\") @default(1)\n 'autocompletion_lister': bool,\n @display_name('View Call Argument Helper') @description(\"Enables the view call argument helper, which shows view arguments and documentation, while typing expressions.\") @default(1)\n 'view_call_argument_helper': bool,\n\n //- rjf: scope decorations\n @default(1) @display_name('Cursor Scope Lines') @description(\"Controls whether or not scopes containing the cursor in text views are drawn.\")\n 'cursor_scope_lines': bool,\n\n //- rjf: thread & breakpoint decorations\n @default(1) @display_name('Thread Lines') @description(\"Controls whether or not a long horizontal line is drawn before the next line or instruction that the selected thread will execute in source and disassembly views.\")\n 'thread_lines': bool,\n @default(1) @display_name('Thread Glow') @description(\"Controls whether or not a glowing effect is drawn on the selected thread in source and disassembly views.\")\n 'thread_glow': bool,\n @default(1) @display_name('Breakpoint Lines') @description(\"Controls whether or not a long horizontal line is drawn before the line or instruction at which a breakpoint is placed, in source and disassembly views.\")\n 'breakpoint_lines': bool,\n @default(1) @display_name('Breakpoint Glow') @description(\"Controls whether or not a glowing effect is drawn on breakpoints in source and disassembly views.\")\n 'breakpoint_glow': bool,\n\n //- rjf: occluding background settings\n @default(0) @display_name('Opaque Backgrounds') @description(\"Controls whether or not all floating background colors are forced to be fully opaque.\")\n 'opaque_backgrounds': bool,\n @default(1) @display_name('Background Blur') @description(\"Controls whether or not occluded regions behind floating elements are blurred.\")\n 'background_blur': bool,\n\n //- rjf: appearance settings\n @default(1) @display_name('Drop Shadows') @description(\"Controls whether or not drop shadows are drawn.\")\n 'drop_shadows': bool,\n @default(1.f) @display_name('Rounded Corner Amount') @description(\"Controls the degree to which UI corners are rounded.\")\n 'rounded_corner_amount': @range[0, 1] f32,\n\n //- rjf: code formatting settings\n @default(2) @display_name('User Tab Width') 'tab_width': @range[1, 32] u64,\n\n //- rjf: windows style menu bar\n @default(1) @display_name('Focus Menu Bar With Alt') @description(\"Mimics standard Windows behavior of focusing the menu bar using the Alt key.\")\n 'focus_menu_bar_with_alt': bool,\n\n //- rjf: native filesystem dialogues\n @default(0) @display_name('Use Native File System Dialog') @description(\"Uses the operating system's file system dialog box, rather than the debugger's built-in UI.\")\n 'use_native_file_system_dialog': bool,\n}\n")}, {str8_lit_comp("project"), str8_lit_comp("@expand_commands(edit_project_theme) x:\n{\n @default(2) @display_name('Project Tab Width') 'tab_width': @range[1, 32] u64,\n\n //- rjf: visualizers\n @display_name('Use Default C++ STL Type Visualizers') @description(\"Enables the built-in type views for C++ STL types.\")\n @default(1) use_default_stl_type_views: bool,\n @display_name('Use Default Unreal Engine Type Visualizers') @description(\"Enables the built-in type views for Unreal Engine types.\")\n @default(1) use_default_ue_type_views: bool,\n\n //- rjf: theme\n @default(\"None\") @display_name('Project Theme') @description(\"The project's theme, which describes all colors used throughout the UI, and can override the user's theme.\")\n 'theme': string,\n @no_expand @display_name('Project Theme') @description(\"The project's theme, which describes all colors used throughout the UI, and can override the user's theme.\")\n 'theme_colors': query,\n\n //- rjf: exception settings\n @default(1) @display_name(\"Break On Win32 Control-C Exceptions\") @description(\"Code: 0x40010005\")\n win32_ctrl_c: bool;\n @default(1) @display_name(\"Break On Win32 Control-Break Exceptions\") @description(\"Code: 0x40010008\")\n win32_ctrl_break: bool;\n @default(0) @display_name(\"Break On Win32 WinRT Originate Error Exceptions\") @description(\"Code: 0x40080201\")\n win32_win_rt_originate_error: bool;\n @default(0) @display_name(\"Break On Win32 WinRT Transform Error Exceptions\") @description(\"Code: 0x40080202\")\n win32_win_rt_transform_error: bool;\n @default(0) @display_name(\"Break On Win32 RPC Call Cancelled Exceptions\") @description(\"Code: 0x0000071a\")\n win32_rpc_call_cancelled: bool;\n @default(0) @display_name(\"Break On Win32 Data Type Misalignment Exceptions\") @description(\"Code: 0x80000002\")\n win32_datatype_misalignment: bool;\n @default(1) @display_name(\"Break On Win32 Access Violation Exceptions\") @description(\"Code: 0xc0000005\")\n win32_access_violation: bool;\n @default(0) @display_name(\"Break On Win32 In Page Error Exceptions\") @description(\"Code: 0xc0000006\")\n win32_in_page_error: bool;\n @default(1) @display_name(\"Break On Win32 Invalid Handle Specified Exceptions\") @description(\"Code: 0xc0000008\")\n win32_invalid_handle: bool;\n @default(0) @display_name(\"Break On Win32 Not Enough Quota Exceptions\") @description(\"Code: 0xc0000017\")\n win32_not_enough_quota: bool;\n @default(0) @display_name(\"Break On Win32 Illegal Instruction Exceptions\") @description(\"Code: 0xc000001d\")\n win32_illegal_instruction: bool;\n @default(0) @display_name(\"Break On Win32 Cannot Continue From Exception Exceptions\") @description(\"Code: 0xc0000025\")\n win32_cannot_continue_exception: bool;\n @default(0) @display_name(\"Break On Win32 Invalid Exception Disposition Returned By Handler Exceptions\") @description(\"Code: 0xc0000026\")\n win32_invalid_exception_disposition: bool;\n @default(0) @display_name(\"Break On Win32 Array Bounds Exceeded Exceptions\") @description(\"Code: 0xc000008c\")\n win32_array_bounds_exceeded: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Denormal Operand Exceptions\") @description(\"Code: 0xc000008d\")\n win32_floating_point_denormal_operand: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Division By Zero Exceptions\") @description(\"Code: 0xc000008e\")\n win32_floating_point_division_by_zero: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Inexact Result Exceptions\") @description(\"Code: 0xc000008f\")\n win32_floating_point_inexact_result: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Invalid Operation Exceptions\") @description(\"Code: 0xc0000090\")\n win32_floating_point_invalid_operation: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Overflow Exceptions\") @description(\"Code: 0xc0000091\")\n win32_floating_point_overflow: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Stack Check Exceptions\") @description(\"Code: 0xc0000092\")\n win32_floating_point_stack_check: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Underflow Exceptions\") @description(\"Code: 0xc0000093\")\n win32_floating_point_underflow: bool;\n @default(0) @display_name(\"Break On Win32 Integer Division By Zero Exceptions\") @description(\"Code: 0xc0000094\")\n win32_integer_division_by_zero: bool;\n @default(0) @display_name(\"Break On Win32 Integer Overflow Exceptions\") @description(\"Code: 0xc0000095\")\n win32_integer_overflow: bool;\n @default(0) @display_name(\"Break On Win32 Privileged Instruction Exceptions\") @description(\"Code: 0xc0000096\")\n win32_privileged_instruction: bool;\n @default(0) @display_name(\"Break On Win32 Stack Overflow Exceptions\") @description(\"Code: 0xc00000fd\")\n win32_stack_overflow: bool;\n @default(0) @display_name(\"Break On Win32 Unable To Locate DLL Exceptions\") @description(\"Code: 0xc0000135\")\n win32_unable_to_locate_dll: bool;\n @default(0) @display_name(\"Break On Win32 Ordinal Not Found Exceptions\") @description(\"Code: 0xc0000138\")\n win32_ordinal_not_found: bool;\n @default(0) @display_name(\"Break On Win32 Entry Point Not Found Exceptions\") @description(\"Code: 0xc0000139\")\n win32_entry_point_not_found: bool;\n @default(0) @display_name(\"Break On Win32 DLL Initialization Failed Exceptions\") @description(\"Code: 0xc0000142\")\n win32_dll_initialization_failed: bool;\n @default(0) @display_name(\"Break On Win32 Floating Point SSE Multiple Faults Exceptions\") @description(\"Code: 0xc00002b4\")\n win32_floating_point_sse_multiple_faults: bool;\n @default(0) @display_name(\"Break On Win32 Floating Point SSE Multiple Traps Exceptions\") @description(\"Code: 0xc00002b5\")\n win32_floating_point_sse_multiple_traps: bool;\n @default(1) @display_name(\"Break On Win32 Assertion Failed Exceptions\") @description(\"Code: 0xc0000420\")\n win32_assertion_failed: bool;\n @default(0) @display_name(\"Break On Win32 Module Not Found Exceptions\") @description(\"Code: 0xc06d007e\")\n win32_module_not_found: bool;\n @default(0) @display_name(\"Break On Win32 Procedure Not Found Exceptions\") @description(\"Code: 0xc06d007f\")\n win32_procedure_not_found: bool;\n @default(1) @display_name(\"Break On Win32 Sanitizer Error Detected Exceptions\") @description(\"Code: 0xe073616e\")\n win32_sanitizer_error_detected: bool;\n @default(0) @display_name(\"Break On Win32 Sanitizer Raw Access Violation Exceptions\") @description(\"Code: 0xe0736171\")\n win32_sanitizer_raw_access_violation: bool;\n @default(1) @display_name(\"Break On Win32 DirectX Debug Layer Exceptions\") @description(\"Code: 0x0000087a\")\n win32_directx_debug_layer: bool;\n}\n")}, {str8_lit_comp("theme_color"), str8_lit_comp("@collection_commands(add_theme_color, fork_theme, save_theme, save_and_set_theme)\n@row_commands(duplicate_cfg, remove_cfg)\nx:\n{\n @display_name('Tags') tags: string,\n @display_name('Value') value: @color @hex u32,\n}\n")}, {str8_lit_comp("window"), str8_lit_comp("x:\n{\n //- rjf: text rasterization settings\n @default(1) @display_name('Smooth UI Text') @description(\"Controls whether or not UI text is fully anti-aliased, for a smoother appearance.\")\n 'smooth_ui_text': bool,\n @default(1) @display_name('Hint UI Text') @description(\"Controls whether or not UI text is hinted, for better text readability at small sizes.\")\n 'hint_ui_text': bool,\n @default(0) @display_name('Smooth Code Text') @description(\"Controls whether or not code text is fully anti-aliased, for a smoother appearance.\")\n 'smooth_code_text': bool,\n @default(1) @display_name('Hint Code Text') @description(\"Controls whether or not code text is hinted, for better text readability at small sizes.\")\n 'hint_code_text': bool,\n @default(11) @display_name('Window Font Size') @description(\"Controls the window's default font size. Does not apply to tabs with their own font size set.\")\n 'font_size': @range[6, 72] u64,\n\n //- rjf: size settings\n @default(3.f) @display_name('Window Row Height') @description(\"Controls the window's default row height, in multiples of the font size. Does not apply to tabs with their own row height set.\")\n 'row_height': @range[1.75f, 5.f] f32,\n @default(3.f) @description(\"Controls the height of tabs, in multiples of the font size.\")\n 'tab_height': @range[1.75f, 5.f] f32,\n\n //- rjf: theme settings\n @default(1) @display_name('Use Project Theme') @description(\"Prefer using the project theme for this window, if any. If off, only the user's theme settings will be used.\")\n 'use_project_theme': bool,\n}\n")}, diff --git a/src/raddbg/raddbg.mdesk b/src/raddbg/raddbg.mdesk index f89a0014..0e0d27c2 100644 --- a/src/raddbg/raddbg.mdesk +++ b/src/raddbg/raddbg.mdesk @@ -256,6 +256,10 @@ RD_VocabTable: @display_name('View Call Argument Helper') @description("Enables the view call argument helper, which shows view arguments and documentation, while typing expressions.") @default(1) 'view_call_argument_helper': bool, + //- rjf: scope decorations + @default(1) @display_name('Cursor Scope Lines') @description("Controls whether or not scopes containing the cursor in text views are drawn.") + 'cursor_scope_lines': bool, + //- rjf: thread & breakpoint decorations @default(1) @display_name('Thread Lines') @description("Controls whether or not a long horizontal line is drawn before the next line or instruction that the selected thread will execute in source and disassembly views.") 'thread_lines': bool, diff --git a/src/raddbg/raddbg_widgets.c b/src/raddbg/raddbg_widgets.c index e02c8e73..286a38cc 100644 --- a/src/raddbg/raddbg_widgets.c +++ b/src/raddbg/raddbg_widgets.c @@ -1274,6 +1274,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe B32 do_thread_glow = rd_setting_b32_from_name(str8_lit("thread_glow")); B32 do_bp_lines = rd_setting_b32_from_name(str8_lit("breakpoint_lines")); B32 do_bp_glow = rd_setting_b32_from_name(str8_lit("breakpoint_glow")); + B32 do_scope_lines = rd_setting_b32_from_name(str8_lit("cursor_scope_lines")); Vec4F32 pop_color = {0}; UI_TagF("pop") { @@ -2381,7 +2382,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe ////////////////////////////// //- rjf: equip cursor scope rendering info // - if(cursor_scope_node != &txt_scope_node_nil) + if(do_scope_lines && cursor_scope_node != &txt_scope_node_nil) { Vec4F32 scope_line_color = highlight_color; scope_line_color.w *= 0.25f; @@ -2413,7 +2414,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe text_base_pos.x + x_px_range.max+1, text_base_pos.y + line_y + params->line_height_px + params->font_size*0.1f); F32 midpoint = center_1f32(r1f32(underline_rect.x0, underline_rect.x1)); - F32 t = ui_anim(ui_key_from_stringf(text_container_box->key, "###scope_%I64x_%I64x", scope_n->token_idx_range.min, scope_n->token_idx_range.max), 1.f); + F32 t = ui_anim(ui_key_from_stringf(text_container_box->key, "###scope_%I64x_%I64x", scope_n->token_idx_range.min, scope_n->token_idx_range.max), 1.f, .rate = rd_state->catchall_animation_rate); Rng2F32 underline_clip = {0}; underline_clip.x0 = mix_1f32(midpoint, underline_rect.x0 - params->font_size, t); underline_clip.x1 = mix_1f32(midpoint, underline_rect.x1 + params->font_size, t); @@ -2445,7 +2446,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe scope_range_y_px.max = ((txt_range.max.line - params->line_num_range.min) + 1) * params->line_height_px; } F32 midpoint = center_1f32(scope_range_y_px); - F32 t = ui_anim(ui_key_from_stringf(text_container_box->key, "###scope_%I64x_%I64x", scope_n->token_idx_range.min, scope_n->token_idx_range.max), 1.f); + F32 t = ui_anim(ui_key_from_stringf(text_container_box->key, "###scope_%I64x_%I64x", scope_n->token_idx_range.min, scope_n->token_idx_range.max), 1.f, .rate = rd_state->catchall_animation_rate); Rng2F32 scope_rect = r2f32p(text_base_pos.x + indent_depth_px - params->font_size*0.2f, text_base_pos.y + scope_range_y_px.min, text_base_pos.x + indent_depth_px - params->font_size*0.2f + params->font_size*1.f,